about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--index.html2
-rw-r--r--table.connusers5
-rw-r--r--wiki/.htaccess.dist43
-rw-r--r--wiki/COPYING339
-rw-r--r--wiki/README10
-rw-r--r--wiki/VERSION1
-rw-r--r--wiki/bin/.htaccess7
-rwxr-xr-xwiki/bin/dwpage.php322
-rwxr-xr-xwiki/bin/gittool.php340
-rwxr-xr-xwiki/bin/indexer.php107
-rwxr-xr-xwiki/bin/plugin.php103
-rwxr-xr-xwiki/bin/render.php64
-rwxr-xr-xwiki/bin/striplangs.php114
-rwxr-xr-xwiki/bin/wantedpages.php186
-rwxr-xr-xwiki/conf/.htaccess8
-rw-r--r--wiki/conf/acl.auth.php10
-rwxr-xr-xwiki/conf/acl.auth.php.dist21
-rwxr-xr-xwiki/conf/acronyms.conf61
-rwxr-xr-xwiki/conf/dokuwiki.php180
-rwxr-xr-xwiki/conf/entities.conf22
-rwxr-xr-xwiki/conf/interwiki.conf41
-rwxr-xr-xwiki/conf/license.php36
-rw-r--r--wiki/conf/local.php11
-rwxr-xr-xwiki/conf/local.php.dist16
-rwxr-xr-xwiki/conf/manifest.json3
-rwxr-xr-xwiki/conf/mediameta.php91
-rwxr-xr-xwiki/conf/mime.conf72
-rwxr-xr-xwiki/conf/mysql.conf.php.example253
-rw-r--r--wiki/conf/plugins.local.php12
-rwxr-xr-xwiki/conf/plugins.php6
-rwxr-xr-xwiki/conf/plugins.required.php12
-rwxr-xr-xwiki/conf/scheme.conf11
-rwxr-xr-xwiki/conf/smileys.conf28
-rw-r--r--wiki/conf/users.auth.php12
-rwxr-xr-xwiki/conf/users.auth.php.dist10
-rwxr-xr-xwiki/conf/wordblock.conf29
-rw-r--r--wiki/data/.htaccess7
-rw-r--r--wiki/data/_dummy1
-rw-r--r--wiki/data/attic/_dummy1
-rw-r--r--wiki/data/attic/start.1543882518.txt.gzbin183 -> 0 bytes
-rw-r--r--wiki/data/attic/start.1543882598.txt.gzbin195 -> 0 bytes
-rw-r--r--wiki/data/cache/0/0a789d617165bc7ce31c0e886fb959c6.i1
-rw-r--r--wiki/data/cache/0/0a789d617165bc7ce31c0e886fb959c6.metadata1
-rw-r--r--wiki/data/cache/0/0a789d617165bc7ce31c0e886fb959c6.xhtml5
-rw-r--r--wiki/data/cache/0/0d09dae0d3d26ffad9c51e79ca29903c.feed66
-rw-r--r--wiki/data/cache/1/110bdf6aedb6f63f9ed28137868a8da9.feed35
-rw-r--r--wiki/data/cache/1/178682a2542f32e3738ed4651b98f1fc.i1
-rw-r--r--wiki/data/cache/1/178682a2542f32e3738ed4651b98f1fc.xhtml4
-rw-r--r--wiki/data/cache/2/236187688f853302efdf9c8b5eab05fb.i1
-rw-r--r--wiki/data/cache/2/236187688f853302efdf9c8b5eab05fb.xhtml9
-rw-r--r--wiki/data/cache/2/2d0321e94bd5683a6040a2908ef41193.css1
-rw-r--r--wiki/data/cache/2/2d0321e94bd5683a6040a2908ef41193.css.gzbin12345 -> 0 bytes
-rw-r--r--wiki/data/cache/2/2db9031e3827768e2f0f1d73b3156df6.i1
-rw-r--r--wiki/data/cache/2/2db9031e3827768e2f0f1d73b3156df6.xhtml4
-rw-r--r--wiki/data/cache/2/2e184ae72761172b1ff4575713eea600.i1
-rw-r--r--wiki/data/cache/2/2e184ae72761172b1ff4575713eea600.xhtml9
-rw-r--r--wiki/data/cache/3/32a9a75f5d429fcabb53a056a7202d7e.i1
-rw-r--r--wiki/data/cache/3/32a9a75f5d429fcabb53a056a7202d7e.xhtml9
-rw-r--r--wiki/data/cache/3/38d4974a56ca0861373b167c0e088f76.i1
-rw-r--r--wiki/data/cache/3/38d4974a56ca0861373b167c0e088f76.xhtml9
-rw-r--r--wiki/data/cache/3/399487010b014e7a9004b1cb1c4d5958.updmsg0
-rw-r--r--wiki/data/cache/3/3c9e188c526aba70c30c6ea8de3009f4.code3
-rw-r--r--wiki/data/cache/5/51fd921306ec5f6045b59a77c3fdb988.i1
-rw-r--r--wiki/data/cache/5/51fd921306ec5f6045b59a77c3fdb988.xhtml9
-rw-r--r--wiki/data/cache/5/54f73be88eb86109ec13c3959a29b54e.code1
-rw-r--r--wiki/data/cache/5/5703506371aeb18ad601eaa94685615d.i1
-rw-r--r--wiki/data/cache/5/5703506371aeb18ad601eaa94685615d.xhtml9
-rw-r--r--wiki/data/cache/6/65330cf069cbc11061bf95019a710ebe.code1
-rw-r--r--wiki/data/cache/6/69276c86ade2f1fadddca57fc678bf3f.i1
-rw-r--r--wiki/data/cache/6/69276c86ade2f1fadddca57fc678bf3f.metadata1
-rw-r--r--wiki/data/cache/6/69276c86ade2f1fadddca57fc678bf3f.xhtml134
-rw-r--r--wiki/data/cache/6/6d079fddabcf4cf2934c3775101efc7d.code9
-rw-r--r--wiki/data/cache/8/8f5bc759475edf615b95a919d2efe57d.i1
-rw-r--r--wiki/data/cache/8/8f5bc759475edf615b95a919d2efe57d.xhtml9
-rw-r--r--wiki/data/cache/9/9265672c70bbd9bd2800a662f9ea0858.i1
-rw-r--r--wiki/data/cache/9/9265672c70bbd9bd2800a662f9ea0858.xhtml9
-rw-r--r--wiki/data/cache/9/9480c58e18d507b30da4c62f6a221a01.css1
-rw-r--r--wiki/data/cache/9/9480c58e18d507b30da4c62f6a221a01.css.gzbin35931 -> 0 bytes
-rw-r--r--wiki/data/cache/9/9689bfbd7d43b4a685d7c569561dfe48.i123
-rw-r--r--wiki/data/cache/9/9689bfbd7d43b4a685d7c569561dfe48.metadata1
-rw-r--r--wiki/data/cache/9/9689bfbd7d43b4a685d7c569561dfe48.xhtml862
-rw-r--r--wiki/data/cache/_dummy1
-rw-r--r--wiki/data/cache/a/a3d36dbdbecd1b1c781714df17e53321.i1
-rw-r--r--wiki/data/cache/a/a3d36dbdbecd1b1c781714df17e53321.xhtml9
-rw-r--r--wiki/data/cache/a/a644499e91b18989ac47a40900dffb28.i2
-rw-r--r--wiki/data/cache/a/a644499e91b18989ac47a40900dffb28.metadata1
-rw-r--r--wiki/data/cache/a/a644499e91b18989ac47a40900dffb28.xhtml5
-rw-r--r--wiki/data/cache/autosubmit.txt0
-rw-r--r--wiki/data/cache/b/b6c77d919feacb98b75d6cb2c2fe2328.feed25
-rw-r--r--wiki/data/cache/b/bd4c36ae9b8ec93276ddd2f520c6414d.feed34
-rw-r--r--wiki/data/cache/c/c1c88364d9ccbc542c730d17d7c77946.feed35
-rw-r--r--wiki/data/cache/c/c768e64cf6b3cd83f316600743dc59b8.code3
-rw-r--r--wiki/data/cache/c/cb68741488368edf01be033a7c681628.code1
-rw-r--r--wiki/data/cache/d/d223e1439188e478349d52476506c22e.js20
-rw-r--r--wiki/data/cache/d/d223e1439188e478349d52476506c22e.js.gzbin99736 -> 0 bytes
-rw-r--r--wiki/data/cache/d/db35ee3f00312dd531002a2d1baf11c8.i1
-rw-r--r--wiki/data/cache/d/db35ee3f00312dd531002a2d1baf11c8.xhtml9
-rw-r--r--wiki/data/cache/d/dce413c5fa52ff56f6a8e022efc1a63c.i2
-rw-r--r--wiki/data/cache/d/dce413c5fa52ff56f6a8e022efc1a63c.metadata1
-rw-r--r--wiki/data/cache/d/dce413c5fa52ff56f6a8e022efc1a63c.xhtml67
-rw-r--r--wiki/data/cache/d/de942b410ae52d0d38d5a338ce78e74f.i1
-rw-r--r--wiki/data/cache/d/de942b410ae52d0d38d5a338ce78e74f.xhtml9
-rw-r--r--wiki/data/cache/e/ec88cda25cd00b321ecce97f589815b4.i1
-rw-r--r--wiki/data/cache/e/ec88cda25cd00b321ecce97f589815b4.xhtml5
-rw-r--r--wiki/data/cache/f/f724e027053cd84fef3f83b6517c65cf.js1
-rw-r--r--wiki/data/cache/f/f724e027053cd84fef3f83b6517c65cf.js.gzbin34763 -> 0 bytes
-rw-r--r--wiki/data/cache/purgefile1
-rw-r--r--wiki/data/deleted.files718
-rw-r--r--wiki/data/dont-panic-if-you-see-this-in-your-logs-it-means-your-directory-permissions-are-correct.pngbin6516 -> 0 bytes
-rw-r--r--wiki/data/dont-panic-if-you-see-this-in-your-logs-it-means-your-directory-permissions-are-correct.xcfbin12093 -> 0 bytes
-rw-r--r--wiki/data/index/_dummy1
-rw-r--r--wiki/data/index/i1.idx6
-rw-r--r--wiki/data/index/i10.idx59
-rw-r--r--wiki/data/index/i11.idx34
-rw-r--r--wiki/data/index/i12.idx18
-rw-r--r--wiki/data/index/i13.idx16
-rw-r--r--wiki/data/index/i14.idx2
-rw-r--r--wiki/data/index/i15.idx2
-rw-r--r--wiki/data/index/i2.idx38
-rw-r--r--wiki/data/index/i3.idx107
-rw-r--r--wiki/data/index/i4.idx155
-rw-r--r--wiki/data/index/i5.idx152
-rw-r--r--wiki/data/index/i6.idx152
-rw-r--r--wiki/data/index/i7.idx138
-rw-r--r--wiki/data/index/i8.idx108
-rw-r--r--wiki/data/index/i9.idx74
-rw-r--r--wiki/data/index/metadata.idx2
-rw-r--r--wiki/data/index/page.idx5
-rw-r--r--wiki/data/index/pageword.idx5
-rw-r--r--wiki/data/index/relation_media_i.idx1
-rw-r--r--wiki/data/index/relation_media_p.idx5
-rw-r--r--wiki/data/index/relation_media_w.idx1
-rw-r--r--wiki/data/index/relation_references_i.idx8
-rw-r--r--wiki/data/index/relation_references_p.idx5
-rw-r--r--wiki/data/index/relation_references_w.idx8
-rw-r--r--wiki/data/index/title.idx5
-rw-r--r--wiki/data/index/w1.idx6
-rw-r--r--wiki/data/index/w10.idx59
-rw-r--r--wiki/data/index/w11.idx34
-rw-r--r--wiki/data/index/w12.idx18
-rw-r--r--wiki/data/index/w13.idx16
-rw-r--r--wiki/data/index/w14.idx2
-rw-r--r--wiki/data/index/w15.idx2
-rw-r--r--wiki/data/index/w2.idx38
-rw-r--r--wiki/data/index/w3.idx107
-rw-r--r--wiki/data/index/w4.idx155
-rw-r--r--wiki/data/index/w5.idx152
-rw-r--r--wiki/data/index/w6.idx152
-rw-r--r--wiki/data/index/w7.idx138
-rw-r--r--wiki/data/index/w8.idx108
-rw-r--r--wiki/data/index/w9.idx74
-rw-r--r--wiki/data/locks/20b24a383ec17d9f9b13e66ebe3110e7.lock1
-rw-r--r--wiki/data/locks/_dummy1
-rw-r--r--wiki/data/media/wiki/dokuwiki-128.pngbin27895 -> 0 bytes
-rw-r--r--wiki/data/media/wiki/dokuwiki.svg586
-rw-r--r--wiki/data/media_attic/_dummy1
-rw-r--r--wiki/data/media_meta/_dummy1
-rw-r--r--wiki/data/meta/_dokuwiki.changes2
-rw-r--r--wiki/data/meta/_dokuwiki.changes.trimmed0
-rw-r--r--wiki/data/meta/_dummy1
-rw-r--r--wiki/data/meta/_htcookiesalt21
-rw-r--r--wiki/data/meta/playground/playground.indexed1
-rw-r--r--wiki/data/meta/playground/playground.meta1
-rw-r--r--wiki/data/meta/start.changes2
-rw-r--r--wiki/data/meta/start.indexed1
-rw-r--r--wiki/data/meta/start.meta2
-rw-r--r--wiki/data/meta/wiki/dokuwiki.indexed1
-rw-r--r--wiki/data/meta/wiki/dokuwiki.meta3
-rw-r--r--wiki/data/meta/wiki/syntax.indexed1
-rw-r--r--wiki/data/meta/wiki/syntax.meta3
-rw-r--r--wiki/data/meta/wiki/welcome.indexed1
-rw-r--r--wiki/data/meta/wiki/welcome.meta11
-rw-r--r--wiki/data/pages/playground/playground.txt1
-rw-r--r--wiki/data/pages/start.txt2
-rw-r--r--wiki/data/pages/wiki/dokuwiki.txt64
-rw-r--r--wiki/data/pages/wiki/syntax.txt525
-rw-r--r--wiki/data/pages/wiki/welcome.txt30
-rw-r--r--wiki/data/tmp/_dummy1
-rw-r--r--wiki/doku.php125
-rw-r--r--wiki/feed.php510
-rw-r--r--wiki/inc/.htaccess8
-rw-r--r--wiki/inc/Action/AbstractAclAction.php25
-rw-r--r--wiki/inc/Action/AbstractAction.php88
-rw-r--r--wiki/inc/Action/AbstractAliasAction.php28
-rw-r--r--wiki/inc/Action/AbstractUserAction.php25
-rw-r--r--wiki/inc/Action/Admin.php56
-rw-r--r--wiki/inc/Action/Backlink.php24
-rw-r--r--wiki/inc/Action/Cancel.php25
-rw-r--r--wiki/inc/Action/Check.php26
-rw-r--r--wiki/inc/Action/Conflict.php34
-rw-r--r--wiki/inc/Action/Denied.php23
-rw-r--r--wiki/inc/Action/Diff.php35
-rw-r--r--wiki/inc/Action/Draft.php39
-rw-r--r--wiki/inc/Action/Draftdel.php36
-rw-r--r--wiki/inc/Action/Edit.php91
-rw-r--r--wiki/inc/Action/Exception/ActionAbort.php20
-rw-r--r--wiki/inc/Action/Exception/ActionAclRequiredException.php17
-rw-r--r--wiki/inc/Action/Exception/ActionDisabledException.php17
-rw-r--r--wiki/inc/Action/Exception/ActionException.php66
-rw-r--r--wiki/inc/Action/Exception/ActionUserRequiredException.php17
-rw-r--r--wiki/inc/Action/Exception/FatalException.php29
-rw-r--r--wiki/inc/Action/Exception/NoActionException.php15
-rw-r--r--wiki/inc/Action/Export.php112
-rw-r--r--wiki/inc/Action/Index.php25
-rw-r--r--wiki/inc/Action/Locked.php24
-rw-r--r--wiki/inc/Action/Login.php36
-rw-r--r--wiki/inc/Action/Logout.php50
-rw-r--r--wiki/inc/Action/Media.php24
-rw-r--r--wiki/inc/Action/Plugin.php32
-rw-r--r--wiki/inc/Action/Preview.php58
-rw-r--r--wiki/inc/Action/Profile.php45
-rw-r--r--wiki/inc/Action/ProfileDelete.php42
-rw-r--r--wiki/inc/Action/Recent.php40
-rw-r--r--wiki/inc/Action/Recover.php21
-rw-r--r--wiki/inc/Action/Redirect.php64
-rw-r--r--wiki/inc/Action/Register.php45
-rw-r--r--wiki/inc/Action/Resendpwd.php177
-rw-r--r--wiki/inc/Action/Revert.php65
-rw-r--r--wiki/inc/Action/Revisions.php24
-rw-r--r--wiki/inc/Action/Save.php60
-rw-r--r--wiki/inc/Action/Search.php135
-rw-r--r--wiki/inc/Action/Show.php36
-rw-r--r--wiki/inc/Action/Sitemap.php65
-rw-r--r--wiki/inc/Action/Source.php36
-rw-r--r--wiki/inc/Action/Subscribe.php166
-rw-r--r--wiki/inc/ActionRouter.php228
-rw-r--r--wiki/inc/Ajax.php446
-rw-r--r--wiki/inc/DifferenceEngine.php1544
-rw-r--r--wiki/inc/FeedParser.php84
-rw-r--r--wiki/inc/Form/ButtonElement.php34
-rw-r--r--wiki/inc/Form/CheckableElement.php62
-rw-r--r--wiki/inc/Form/DropdownElement.php190
-rw-r--r--wiki/inc/Form/Element.php151
-rw-r--r--wiki/inc/Form/FieldsetCloseElement.php30
-rw-r--r--wiki/inc/Form/FieldsetOpenElement.php36
-rw-r--r--wiki/inc/Form/Form.php456
-rw-r--r--wiki/inc/Form/HTMLElement.php29
-rw-r--r--wiki/inc/Form/InputElement.php159
-rw-r--r--wiki/inc/Form/LabelElement.php27
-rw-r--r--wiki/inc/Form/LegacyForm.php181
-rw-r--r--wiki/inc/Form/OptGroup.php100
-rw-r--r--wiki/inc/Form/TagCloseElement.php88
-rw-r--r--wiki/inc/Form/TagElement.php29
-rw-r--r--wiki/inc/Form/TagOpenElement.php30
-rw-r--r--wiki/inc/Form/TextareaElement.php51
-rw-r--r--wiki/inc/Form/ValueElement.php45
-rw-r--r--wiki/inc/HTTPClient.php943
-rw-r--r--wiki/inc/IXR_Library.php1132
-rw-r--r--wiki/inc/Input.class.php335
-rw-r--r--wiki/inc/JSON.php656
-rw-r--r--wiki/inc/JpegMeta.php3188
-rw-r--r--wiki/inc/Mailer.class.php730
-rw-r--r--wiki/inc/Manifest.php80
-rw-r--r--wiki/inc/Menu/AbstractMenu.php95
-rw-r--r--wiki/inc/Menu/DetailMenu.php21
-rw-r--r--wiki/inc/Menu/Item/AbstractItem.php253
-rw-r--r--wiki/inc/Menu/Item/Admin.php24
-rw-r--r--wiki/inc/Menu/Item/Back.php29
-rw-r--r--wiki/inc/Menu/Item/Backlink.php18
-rw-r--r--wiki/inc/Menu/Item/Edit.php65
-rw-r--r--wiki/inc/Menu/Item/ImgBackto.php24
-rw-r--r--wiki/inc/Menu/Item/Index.php27
-rw-r--r--wiki/inc/Menu/Item/Login.php29
-rw-r--r--wiki/inc/Menu/Item/Media.php21
-rw-r--r--wiki/inc/Menu/Item/MediaManager.php32
-rw-r--r--wiki/inc/Menu/Item/Profile.php24
-rw-r--r--wiki/inc/Menu/Item/Recent.php20
-rw-r--r--wiki/inc/Menu/Item/Register.php24
-rw-r--r--wiki/inc/Menu/Item/Resendpwd.php24
-rw-r--r--wiki/inc/Menu/Item/Revert.php26
-rw-r--r--wiki/inc/Menu/Item/Revisions.php21
-rw-r--r--wiki/inc/Menu/Item/Subscribe.php24
-rw-r--r--wiki/inc/Menu/Item/Top.php36
-rw-r--r--wiki/inc/Menu/MenuInterface.php20
-rw-r--r--wiki/inc/Menu/MobileMenu.php91
-rw-r--r--wiki/inc/Menu/PageMenu.php23
-rw-r--r--wiki/inc/Menu/SiteMenu.php20
-rw-r--r--wiki/inc/Menu/UserMenu.php21
-rw-r--r--wiki/inc/PassHash.class.php639
-rw-r--r--wiki/inc/Plugin.php11
-rw-r--r--wiki/inc/PluginInterface.php158
-rw-r--r--wiki/inc/PluginTrait.php238
-rw-r--r--wiki/inc/RemoteAPICore.php960
-rw-r--r--wiki/inc/SafeFN.class.php158
-rw-r--r--wiki/inc/Sitemapper.php220
-rw-r--r--wiki/inc/StyleUtils.php118
-rw-r--r--wiki/inc/Ui/Admin.php173
-rw-r--r--wiki/inc/Ui/Search.php644
-rw-r--r--wiki/inc/Ui/SearchState.php141
-rw-r--r--wiki/inc/Ui/Ui.php20
-rw-r--r--wiki/inc/actions.php64
-rw-r--r--wiki/inc/auth.php1267
-rw-r--r--wiki/inc/cache.php337
-rw-r--r--wiki/inc/changelog.php1059
-rw-r--r--wiki/inc/cli.php655
-rw-r--r--wiki/inc/common.php2087
-rw-r--r--wiki/inc/compatibility.php82
-rw-r--r--wiki/inc/config_cascade.php87
-rw-r--r--wiki/inc/confutils.php467
-rw-r--r--wiki/inc/events.php257
-rw-r--r--wiki/inc/farm.php150
-rw-r--r--wiki/inc/fetch.functions.php186
-rw-r--r--wiki/inc/form.php1098
-rw-r--r--wiki/inc/fulltext.php919
-rw-r--r--wiki/inc/html.php2255
-rw-r--r--wiki/inc/httputils.php346
-rw-r--r--wiki/inc/indexer.php1611
-rw-r--r--wiki/inc/infoutils.php530
-rw-r--r--wiki/inc/init.php601
-rw-r--r--wiki/inc/io.php827
-rw-r--r--wiki/inc/lang/af/jquery.ui.datepicker.js37
-rw-r--r--wiki/inc/lang/af/lang.php68
-rw-r--r--wiki/inc/lang/ar/admin.txt3
-rw-r--r--wiki/inc/lang/ar/adminplugins.txt1
-rw-r--r--wiki/inc/lang/ar/backlinks.txt3
-rw-r--r--wiki/inc/lang/ar/conflict.txt5
-rw-r--r--wiki/inc/lang/ar/denied.txt3
-rw-r--r--wiki/inc/lang/ar/diff.txt3
-rw-r--r--wiki/inc/lang/ar/draft.txt5
-rw-r--r--wiki/inc/lang/ar/edit.txt1
-rw-r--r--wiki/inc/lang/ar/editrev.txt2
-rw-r--r--wiki/inc/lang/ar/index.txt3
-rw-r--r--wiki/inc/lang/ar/install.html12
-rw-r--r--wiki/inc/lang/ar/jquery.ui.datepicker.js39
-rw-r--r--wiki/inc/lang/ar/lang.php348
-rw-r--r--wiki/inc/lang/ar/locked.txt3
-rw-r--r--wiki/inc/lang/ar/login.txt3
-rw-r--r--wiki/inc/lang/ar/mailtext.txt12
-rw-r--r--wiki/inc/lang/ar/mailwrap.html13
-rw-r--r--wiki/inc/lang/ar/newpage.txt3
-rw-r--r--wiki/inc/lang/ar/norev.txt3
-rw-r--r--wiki/inc/lang/ar/password.txt6
-rw-r--r--wiki/inc/lang/ar/preview.txt3
-rw-r--r--wiki/inc/lang/ar/pwconfirm.txt6
-rw-r--r--wiki/inc/lang/ar/read.txt1
-rw-r--r--wiki/inc/lang/ar/recent.txt3
-rw-r--r--wiki/inc/lang/ar/register.txt3
-rw-r--r--wiki/inc/lang/ar/registermail.txt10
-rw-r--r--wiki/inc/lang/ar/resendpwd.txt3
-rw-r--r--wiki/inc/lang/ar/resetpwd.txt3
-rw-r--r--wiki/inc/lang/ar/revisions.txt2
-rw-r--r--wiki/inc/lang/ar/searchpage.txt4
-rw-r--r--wiki/inc/lang/ar/showrev.txt2
-rw-r--r--wiki/inc/lang/ar/stopwords.txt192
-rw-r--r--wiki/inc/lang/ar/subscr_digest.txt16
-rw-r--r--wiki/inc/lang/ar/subscr_form.txt3
-rw-r--r--wiki/inc/lang/ar/subscr_list.txt13
-rw-r--r--wiki/inc/lang/ar/subscr_single.txt19
-rw-r--r--wiki/inc/lang/ar/updateprofile.txt3
-rw-r--r--wiki/inc/lang/ar/uploadmail.txt10
-rw-r--r--wiki/inc/lang/az/admin.txt4
-rw-r--r--wiki/inc/lang/az/adminplugins.txt1
-rw-r--r--wiki/inc/lang/az/backlinks.txt4
-rw-r--r--wiki/inc/lang/az/conflict.txt5
-rw-r--r--wiki/inc/lang/az/denied.txt3
-rw-r--r--wiki/inc/lang/az/diff.txt4
-rw-r--r--wiki/inc/lang/az/draft.txt5
-rw-r--r--wiki/inc/lang/az/edit.txt1
-rw-r--r--wiki/inc/lang/az/editrev.txt2
-rw-r--r--wiki/inc/lang/az/index.txt4
-rw-r--r--wiki/inc/lang/az/install.html7
-rw-r--r--wiki/inc/lang/az/jquery.ui.datepicker.js37
-rw-r--r--wiki/inc/lang/az/lang.php231
-rw-r--r--wiki/inc/lang/az/locked.txt3
-rw-r--r--wiki/inc/lang/az/login.txt4
-rw-r--r--wiki/inc/lang/az/mailtext.txt12
-rw-r--r--wiki/inc/lang/az/newpage.txt3
-rw-r--r--wiki/inc/lang/az/norev.txt4
-rw-r--r--wiki/inc/lang/az/password.txt6
-rw-r--r--wiki/inc/lang/az/preview.txt4
-rw-r--r--wiki/inc/lang/az/pwconfirm.txt9
-rw-r--r--wiki/inc/lang/az/read.txt2
-rw-r--r--wiki/inc/lang/az/recent.txt5
-rw-r--r--wiki/inc/lang/az/register.txt3
-rw-r--r--wiki/inc/lang/az/registermail.txt10
-rw-r--r--wiki/inc/lang/az/resendpwd.txt3
-rw-r--r--wiki/inc/lang/az/revisions.txt3
-rw-r--r--wiki/inc/lang/az/searchpage.txt4
-rw-r--r--wiki/inc/lang/az/showrev.txt2
-rw-r--r--wiki/inc/lang/az/stopwords.txt64
-rw-r--r--wiki/inc/lang/az/updateprofile.txt5
-rw-r--r--wiki/inc/lang/az/uploadmail.txt10
-rw-r--r--wiki/inc/lang/az/wordblock.txt3
-rw-r--r--wiki/inc/lang/be/admin.txt3
-rw-r--r--wiki/inc/lang/be/adminplugins.txt1
-rw-r--r--wiki/inc/lang/bg/admin.txt3
-rw-r--r--wiki/inc/lang/bg/adminplugins.txt1
-rw-r--r--wiki/inc/lang/bg/backlinks.txt3
-rw-r--r--wiki/inc/lang/bg/conflict.txt6
-rw-r--r--wiki/inc/lang/bg/denied.txt4
-rw-r--r--wiki/inc/lang/bg/diff.txt3
-rw-r--r--wiki/inc/lang/bg/draft.txt6
-rw-r--r--wiki/inc/lang/bg/edit.txt2
-rw-r--r--wiki/inc/lang/bg/editrev.txt2
-rw-r--r--wiki/inc/lang/bg/index.txt4
-rw-r--r--wiki/inc/lang/bg/install.html15
-rw-r--r--wiki/inc/lang/bg/jquery.ui.datepicker.js38
-rw-r--r--wiki/inc/lang/bg/lang.php337
-rw-r--r--wiki/inc/lang/bg/locked.txt3
-rw-r--r--wiki/inc/lang/bg/login.txt3
-rw-r--r--wiki/inc/lang/bg/mailtext.txt12
-rw-r--r--wiki/inc/lang/bg/mailwrap.html13
-rw-r--r--wiki/inc/lang/bg/newpage.txt4
-rw-r--r--wiki/inc/lang/bg/norev.txt4
-rw-r--r--wiki/inc/lang/bg/password.txt6
-rw-r--r--wiki/inc/lang/bg/preview.txt3
-rw-r--r--wiki/inc/lang/bg/pwconfirm.txt10
-rw-r--r--wiki/inc/lang/bg/read.txt2
-rw-r--r--wiki/inc/lang/bg/recent.txt4
-rw-r--r--wiki/inc/lang/bg/register.txt4
-rw-r--r--wiki/inc/lang/bg/registermail.txt10
-rw-r--r--wiki/inc/lang/bg/resendpwd.txt3
-rw-r--r--wiki/inc/lang/bg/resetpwd.txt4
-rw-r--r--wiki/inc/lang/bg/revisions.txt4
-rw-r--r--wiki/inc/lang/bg/searchpage.txt4
-rw-r--r--wiki/inc/lang/bg/showrev.txt2
-rw-r--r--wiki/inc/lang/bg/stopwords.txt29
-rw-r--r--wiki/inc/lang/bg/subscr_digest.txt15
-rw-r--r--wiki/inc/lang/bg/subscr_form.txt3
-rw-r--r--wiki/inc/lang/bg/subscr_list.txt12
-rw-r--r--wiki/inc/lang/bg/subscr_single.txt18
-rw-r--r--wiki/inc/lang/bg/updateprofile.txt3
-rw-r--r--wiki/inc/lang/bg/uploadmail.txt10
-rw-r--r--wiki/inc/lang/bn/admin.txt3
-rw-r--r--wiki/inc/lang/bn/adminplugins.txt1
-rw-r--r--wiki/inc/lang/bn/backlinks.txt3
-rw-r--r--wiki/inc/lang/bn/conflict.txt5
-rw-r--r--wiki/inc/lang/bn/denied.txt3
-rw-r--r--wiki/inc/lang/bn/diff.txt3
-rw-r--r--wiki/inc/lang/bn/draft.txt5
-rw-r--r--wiki/inc/lang/bn/edit.txt1
-rw-r--r--wiki/inc/lang/bn/editrev.txt2
-rw-r--r--wiki/inc/lang/bn/index.txt3
-rw-r--r--wiki/inc/lang/bn/lang.php226
-rw-r--r--wiki/inc/lang/ca-valencia/admin.txt4
-rw-r--r--wiki/inc/lang/ca-valencia/adminplugins.txt1
-rw-r--r--wiki/inc/lang/ca-valencia/backlinks.txt3
-rw-r--r--wiki/inc/lang/ca-valencia/conflict.txt6
-rw-r--r--wiki/inc/lang/ca-valencia/denied.txt4
-rw-r--r--wiki/inc/lang/ca-valencia/diff.txt4
-rw-r--r--wiki/inc/lang/ca-valencia/draft.txt6
-rw-r--r--wiki/inc/lang/ca-valencia/edit.txt2
-rw-r--r--wiki/inc/lang/ca-valencia/editrev.txt2
-rw-r--r--wiki/inc/lang/ca-valencia/index.txt4
-rw-r--r--wiki/inc/lang/ca-valencia/install.html8
-rw-r--r--wiki/inc/lang/ca-valencia/lang.php223
-rw-r--r--wiki/inc/lang/ca-valencia/locked.txt3
-rw-r--r--wiki/inc/lang/ca-valencia/login.txt4
-rw-r--r--wiki/inc/lang/ca-valencia/mailtext.txt12
-rw-r--r--wiki/inc/lang/ca-valencia/newpage.txt3
-rw-r--r--wiki/inc/lang/ca-valencia/norev.txt3
-rw-r--r--wiki/inc/lang/ca-valencia/password.txt6
-rw-r--r--wiki/inc/lang/ca-valencia/preview.txt4
-rw-r--r--wiki/inc/lang/ca-valencia/pwconfirm.txt11
-rw-r--r--wiki/inc/lang/ca-valencia/read.txt2
-rw-r--r--wiki/inc/lang/ca-valencia/recent.txt5
-rw-r--r--wiki/inc/lang/ca-valencia/register.txt4
-rw-r--r--wiki/inc/lang/ca-valencia/registermail.txt10
-rw-r--r--wiki/inc/lang/ca-valencia/resendpwd.txt4
-rw-r--r--wiki/inc/lang/ca-valencia/revisions.txt4
-rw-r--r--wiki/inc/lang/ca-valencia/searchpage.txt4
-rw-r--r--wiki/inc/lang/ca-valencia/showrev.txt2
-rw-r--r--wiki/inc/lang/ca-valencia/stopwords.txt73
-rw-r--r--wiki/inc/lang/ca-valencia/updateprofile.txt5
-rw-r--r--wiki/inc/lang/ca-valencia/uploadmail.txt10
-rw-r--r--wiki/inc/lang/ca/admin.txt4
-rw-r--r--wiki/inc/lang/ca/adminplugins.txt1
-rw-r--r--wiki/inc/lang/ca/backlinks.txt4
-rw-r--r--wiki/inc/lang/ca/conflict.txt6
-rw-r--r--wiki/inc/lang/ca/denied.txt4
-rw-r--r--wiki/inc/lang/ca/diff.txt4
-rw-r--r--wiki/inc/lang/ca/draft.txt5
-rw-r--r--wiki/inc/lang/ca/edit.txt2
-rw-r--r--wiki/inc/lang/ca/editrev.txt2
-rw-r--r--wiki/inc/lang/ca/index.txt4
-rw-r--r--wiki/inc/lang/ca/install.html8
-rw-r--r--wiki/inc/lang/ca/jquery.ui.datepicker.js37
-rw-r--r--wiki/inc/lang/ca/lang.php347
-rw-r--r--wiki/inc/lang/ca/locked.txt3
-rw-r--r--wiki/inc/lang/ca/login.txt4
-rw-r--r--wiki/inc/lang/ca/mailtext.txt11
-rw-r--r--wiki/inc/lang/ca/mailwrap.html13
-rw-r--r--wiki/inc/lang/ca/newpage.txt3
-rw-r--r--wiki/inc/lang/ca/norev.txt5
-rw-r--r--wiki/inc/lang/ca/password.txt6
-rw-r--r--wiki/inc/lang/ca/preview.txt4
-rw-r--r--wiki/inc/lang/ca/pwconfirm.txt11
-rw-r--r--wiki/inc/lang/ca/read.txt2
-rw-r--r--wiki/inc/lang/ca/recent.txt5
-rw-r--r--wiki/inc/lang/ca/register.txt4
-rw-r--r--wiki/inc/lang/ca/registermail.txt10
-rw-r--r--wiki/inc/lang/ca/resendpwd.txt3
-rw-r--r--wiki/inc/lang/ca/resetpwd.txt3
-rw-r--r--wiki/inc/lang/ca/revisions.txt4
-rw-r--r--wiki/inc/lang/ca/searchpage.txt4
-rw-r--r--wiki/inc/lang/ca/showrev.txt2
-rw-r--r--wiki/inc/lang/ca/stopwords.txt106
-rw-r--r--wiki/inc/lang/ca/subscr_digest.txt16
-rw-r--r--wiki/inc/lang/ca/subscr_form.txt3
-rw-r--r--wiki/inc/lang/ca/subscr_list.txt16
-rw-r--r--wiki/inc/lang/ca/subscr_single.txt16
-rw-r--r--wiki/inc/lang/ca/updateprofile.txt3
-rw-r--r--wiki/inc/lang/ca/uploadmail.txt10
-rw-r--r--wiki/inc/lang/cs/admin.txt3
-rw-r--r--wiki/inc/lang/cs/adminplugins.txt1
-rw-r--r--wiki/inc/lang/cs/backlinks.txt3
-rw-r--r--wiki/inc/lang/cs/conflict.txt5
-rw-r--r--wiki/inc/lang/cs/denied.txt3
-rw-r--r--wiki/inc/lang/cs/diff.txt4
-rw-r--r--wiki/inc/lang/cs/draft.txt5
-rw-r--r--wiki/inc/lang/cs/edit.txt1
-rw-r--r--wiki/inc/lang/cs/editrev.txt2
-rw-r--r--wiki/inc/lang/cs/index.txt3
-rw-r--r--wiki/inc/lang/cs/install.html23
-rw-r--r--wiki/inc/lang/cs/jquery.ui.datepicker.js37
-rw-r--r--wiki/inc/lang/cs/lang.php366
-rw-r--r--wiki/inc/lang/cs/locked.txt3
-rw-r--r--wiki/inc/lang/cs/login.txt3
-rw-r--r--wiki/inc/lang/cs/mailtext.txt12
-rw-r--r--wiki/inc/lang/cs/mailwrap.html13
-rw-r--r--wiki/inc/lang/cs/newpage.txt3
-rw-r--r--wiki/inc/lang/cs/norev.txt3
-rw-r--r--wiki/inc/lang/cs/password.txt7
-rw-r--r--wiki/inc/lang/cs/preview.txt3
-rw-r--r--wiki/inc/lang/cs/pwconfirm.txt9
-rw-r--r--wiki/inc/lang/cs/read.txt1
-rw-r--r--wiki/inc/lang/cs/recent.txt3
-rw-r--r--wiki/inc/lang/cs/register.txt3
-rw-r--r--wiki/inc/lang/cs/registermail.txt10
-rw-r--r--wiki/inc/lang/cs/resendpwd.txt3
-rw-r--r--wiki/inc/lang/cs/resetpwd.txt3
-rw-r--r--wiki/inc/lang/cs/revisions.txt3
-rw-r--r--wiki/inc/lang/cs/searchpage.txt4
-rw-r--r--wiki/inc/lang/cs/showrev.txt2
-rw-r--r--wiki/inc/lang/cs/stopwords.txt944
-rw-r--r--wiki/inc/lang/cs/subscr_digest.txt18
-rw-r--r--wiki/inc/lang/cs/subscr_form.txt3
-rw-r--r--wiki/inc/lang/cs/subscr_list.txt15
-rw-r--r--wiki/inc/lang/cs/subscr_single.txt21
-rw-r--r--wiki/inc/lang/cs/updateprofile.txt5
-rw-r--r--wiki/inc/lang/cs/uploadmail.txt10
-rw-r--r--wiki/inc/lang/cy/admin.txt4
-rw-r--r--wiki/inc/lang/cy/adminplugins.txt2
-rw-r--r--wiki/inc/lang/cy/backlinks.txt4
-rw-r--r--wiki/inc/lang/cy/conflict.txt6
-rw-r--r--wiki/inc/lang/cy/denied.txt4
-rw-r--r--wiki/inc/lang/cy/diff.txt4
-rw-r--r--wiki/inc/lang/cy/draft.txt8
-rw-r--r--wiki/inc/lang/cy/edit.txt2
-rw-r--r--wiki/inc/lang/cy/editrev.txt2
-rw-r--r--wiki/inc/lang/cy/index.txt4
-rw-r--r--wiki/inc/lang/cy/install.html24
-rw-r--r--wiki/inc/lang/cy/jquery.ui.datepicker.js45
-rw-r--r--wiki/inc/lang/cy/lang.php372
-rw-r--r--wiki/inc/lang/cy/locked.txt3
-rw-r--r--wiki/inc/lang/cy/login.txt4
-rw-r--r--wiki/inc/lang/cy/mailtext.txt17
-rw-r--r--wiki/inc/lang/cy/mailwrap.html13
-rw-r--r--wiki/inc/lang/cy/newpage.txt4
-rw-r--r--wiki/inc/lang/cy/norev.txt4
-rw-r--r--wiki/inc/lang/cy/password.txt10
-rw-r--r--wiki/inc/lang/cy/preview.txt4
-rw-r--r--wiki/inc/lang/cy/pwconfirm.txt15
-rw-r--r--wiki/inc/lang/cy/read.txt2
-rw-r--r--wiki/inc/lang/cy/recent.txt5
-rw-r--r--wiki/inc/lang/cy/register.txt4
-rw-r--r--wiki/inc/lang/cy/registermail.txt14
-rw-r--r--wiki/inc/lang/cy/resendpwd.txt4
-rw-r--r--wiki/inc/lang/cy/resetpwd.txt4
-rw-r--r--wiki/inc/lang/cy/revisions.txt4
-rw-r--r--wiki/inc/lang/cy/searchpage.txt4
-rw-r--r--wiki/inc/lang/cy/showrev.txt2
-rw-r--r--wiki/inc/lang/cy/stopwords.txt31
-rw-r--r--wiki/inc/lang/cy/subscr_digest.txt20
-rw-r--r--wiki/inc/lang/cy/subscr_form.txt3
-rw-r--r--wiki/inc/lang/cy/subscr_list.txt17
-rw-r--r--wiki/inc/lang/cy/subscr_single.txt23
-rw-r--r--wiki/inc/lang/cy/updateprofile.txt5
-rw-r--r--wiki/inc/lang/cy/uploadmail.txt15
-rw-r--r--wiki/inc/lang/da/admin.txt4
-rw-r--r--wiki/inc/lang/da/adminplugins.txt1
-rw-r--r--wiki/inc/lang/da/backlinks.txt4
-rw-r--r--wiki/inc/lang/da/conflict.txt5
-rw-r--r--wiki/inc/lang/da/denied.txt3
-rw-r--r--wiki/inc/lang/da/diff.txt4
-rw-r--r--wiki/inc/lang/da/draft.txt6
-rw-r--r--wiki/inc/lang/da/edit.txt2
-rw-r--r--wiki/inc/lang/da/editrev.txt2
-rw-r--r--wiki/inc/lang/da/index.txt3
-rw-r--r--wiki/inc/lang/da/install.html24
-rw-r--r--wiki/inc/lang/da/jquery.ui.datepicker.js37
-rw-r--r--wiki/inc/lang/da/lang.php356
-rw-r--r--wiki/inc/lang/da/locked.txt3
-rw-r--r--wiki/inc/lang/da/login.txt3
-rw-r--r--wiki/inc/lang/da/mailtext.txt12
-rw-r--r--wiki/inc/lang/da/mailwrap.html13
-rw-r--r--wiki/inc/lang/da/newpage.txt3
-rw-r--r--wiki/inc/lang/da/norev.txt4
-rw-r--r--wiki/inc/lang/da/password.txt6
-rw-r--r--wiki/inc/lang/da/preview.txt4
-rw-r--r--wiki/inc/lang/da/pwconfirm.txt10
-rw-r--r--wiki/inc/lang/da/read.txt2
-rw-r--r--wiki/inc/lang/da/recent.txt5
-rw-r--r--wiki/inc/lang/da/register.txt4
-rw-r--r--wiki/inc/lang/da/registermail.txt10
-rw-r--r--wiki/inc/lang/da/resendpwd.txt3
-rw-r--r--wiki/inc/lang/da/resetpwd.txt3
-rw-r--r--wiki/inc/lang/da/revisions.txt3
-rw-r--r--wiki/inc/lang/da/searchpage.txt4
-rw-r--r--wiki/inc/lang/da/showrev.txt2
-rw-r--r--wiki/inc/lang/da/stopwords.txt87
-rw-r--r--wiki/inc/lang/da/subscr_digest.txt16
-rw-r--r--wiki/inc/lang/da/subscr_form.txt3
-rw-r--r--wiki/inc/lang/da/subscr_list.txt13
-rw-r--r--wiki/inc/lang/da/subscr_single.txt19
-rw-r--r--wiki/inc/lang/da/updateprofile.txt3
-rw-r--r--wiki/inc/lang/da/uploadmail.txt10
-rw-r--r--wiki/inc/lang/de-informal/admin.txt4
-rw-r--r--wiki/inc/lang/de-informal/adminplugins.txt1
-rw-r--r--wiki/inc/lang/de-informal/backlinks.txt5
-rw-r--r--wiki/inc/lang/de-informal/conflict.txt6
-rw-r--r--wiki/inc/lang/de-informal/denied.txt4
-rw-r--r--wiki/inc/lang/de-informal/diff.txt5
-rw-r--r--wiki/inc/lang/de-informal/draft.txt6
-rw-r--r--wiki/inc/lang/de-informal/edit.txt4
-rw-r--r--wiki/inc/lang/de-informal/editrev.txt2
-rw-r--r--wiki/inc/lang/de-informal/index.txt4
-rw-r--r--wiki/inc/lang/de-informal/install.html27
-rw-r--r--wiki/inc/lang/de-informal/jquery.ui.datepicker.js37
-rw-r--r--wiki/inc/lang/de-informal/lang.php358
-rw-r--r--wiki/inc/lang/de-informal/locked.txt4
-rw-r--r--wiki/inc/lang/de-informal/login.txt4
-rw-r--r--wiki/inc/lang/de-informal/mailtext.txt12
-rw-r--r--wiki/inc/lang/de-informal/mailwrap.html13
-rw-r--r--wiki/inc/lang/de-informal/newpage.txt5
-rw-r--r--wiki/inc/lang/de-informal/norev.txt4
-rw-r--r--wiki/inc/lang/de-informal/password.txt6
-rw-r--r--wiki/inc/lang/de-informal/preview.txt5
-rw-r--r--wiki/inc/lang/de-informal/pwconfirm.txt12
-rw-r--r--wiki/inc/lang/de-informal/read.txt2
-rw-r--r--wiki/inc/lang/de-informal/recent.txt5
-rw-r--r--wiki/inc/lang/de-informal/register.txt4
-rw-r--r--wiki/inc/lang/de-informal/registermail.txt10
-rw-r--r--wiki/inc/lang/de-informal/resendpwd.txt3
-rw-r--r--wiki/inc/lang/de-informal/resetpwd.txt4
-rw-r--r--wiki/inc/lang/de-informal/revisions.txt4
-rw-r--r--wiki/inc/lang/de-informal/searchpage.txt4
-rw-r--r--wiki/inc/lang/de-informal/showrev.txt2
-rw-r--r--wiki/inc/lang/de-informal/stopwords.txt125
-rw-r--r--wiki/inc/lang/de-informal/subscr_digest.txt16
-rw-r--r--wiki/inc/lang/de-informal/subscr_form.txt3
-rw-r--r--wiki/inc/lang/de-informal/subscr_list.txt13
-rw-r--r--wiki/inc/lang/de-informal/subscr_single.txt19
-rw-r--r--wiki/inc/lang/de-informal/updateprofile.txt5
-rw-r--r--wiki/inc/lang/de-informal/uploadmail.txt11
-rw-r--r--wiki/inc/lang/de/admin.txt4
-rw-r--r--wiki/inc/lang/de/adminplugins.txt1
-rw-r--r--wiki/inc/lang/de/backlinks.txt5
-rw-r--r--wiki/inc/lang/de/conflict.txt6
-rw-r--r--wiki/inc/lang/de/denied.txt4
-rw-r--r--wiki/inc/lang/de/diff.txt5
-rw-r--r--wiki/inc/lang/de/draft.txt6
-rw-r--r--wiki/inc/lang/de/edit.txt4
-rw-r--r--wiki/inc/lang/de/editrev.txt2
-rw-r--r--wiki/inc/lang/de/index.txt4
-rw-r--r--wiki/inc/lang/de/install.html27
-rw-r--r--wiki/inc/lang/de/jquery.ui.datepicker.js37
-rw-r--r--wiki/inc/lang/de/lang.php384
-rw-r--r--wiki/inc/lang/de/locked.txt4
-rw-r--r--wiki/inc/lang/de/login.txt4
-rw-r--r--wiki/inc/lang/de/mailtext.txt12
-rw-r--r--wiki/inc/lang/de/mailwrap.html13
-rw-r--r--wiki/inc/lang/de/newpage.txt5
-rw-r--r--wiki/inc/lang/de/norev.txt4
-rw-r--r--wiki/inc/lang/de/password.txt6
-rw-r--r--wiki/inc/lang/de/preview.txt5
-rw-r--r--wiki/inc/lang/de/pwconfirm.txt12
-rw-r--r--wiki/inc/lang/de/read.txt2
-rw-r--r--wiki/inc/lang/de/recent.txt5
-rw-r--r--wiki/inc/lang/de/register.txt4
-rw-r--r--wiki/inc/lang/de/registermail.txt10
-rw-r--r--wiki/inc/lang/de/resendpwd.txt3
-rw-r--r--wiki/inc/lang/de/resetpwd.txt4
-rw-r--r--wiki/inc/lang/de/revisions.txt4
-rw-r--r--wiki/inc/lang/de/searchpage.txt3
-rw-r--r--wiki/inc/lang/de/showrev.txt2
-rw-r--r--wiki/inc/lang/de/stopwords.txt125
-rw-r--r--wiki/inc/lang/de/subscr_digest.txt16
-rw-r--r--wiki/inc/lang/de/subscr_form.txt3
-rw-r--r--wiki/inc/lang/de/subscr_list.txt13
-rw-r--r--wiki/inc/lang/de/subscr_single.txt19
-rw-r--r--wiki/inc/lang/de/updateprofile.txt5
-rw-r--r--wiki/inc/lang/de/uploadmail.txt11
-rw-r--r--wiki/inc/lang/el/admin.txt3
-rw-r--r--wiki/inc/lang/el/adminplugins.txt1
-rw-r--r--wiki/inc/lang/el/backlinks.txt3
-rw-r--r--wiki/inc/lang/el/conflict.txt8
-rw-r--r--wiki/inc/lang/el/denied.txt4
-rw-r--r--wiki/inc/lang/el/diff.txt3
-rw-r--r--wiki/inc/lang/el/draft.txt9
-rw-r--r--wiki/inc/lang/el/edit.txt3
-rw-r--r--wiki/inc/lang/el/editrev.txt2
-rw-r--r--wiki/inc/lang/el/index.txt3
-rw-r--r--wiki/inc/lang/el/install.html26
-rw-r--r--wiki/inc/lang/el/jquery.ui.datepicker.js37
-rw-r--r--wiki/inc/lang/el/lang.php338
-rw-r--r--wiki/inc/lang/el/locked.txt5
-rw-r--r--wiki/inc/lang/el/login.txt5
-rw-r--r--wiki/inc/lang/el/mailtext.txt13
-rw-r--r--wiki/inc/lang/el/mailwrap.html13
-rw-r--r--wiki/inc/lang/el/newpage.txt4
-rw-r--r--wiki/inc/lang/el/norev.txt5
-rw-r--r--wiki/inc/lang/el/password.txt6
-rw-r--r--wiki/inc/lang/el/preview.txt5
-rw-r--r--wiki/inc/lang/el/pwconfirm.txt10
-rw-r--r--wiki/inc/lang/el/read.txt2
-rw-r--r--wiki/inc/lang/el/recent.txt3
-rw-r--r--wiki/inc/lang/el/register.txt5
-rw-r--r--wiki/inc/lang/el/registermail.txt10
-rw-r--r--wiki/inc/lang/el/resendpwd.txt6
-rw-r--r--wiki/inc/lang/el/resetpwd.txt3
-rw-r--r--wiki/inc/lang/el/revisions.txt8
-rw-r--r--wiki/inc/lang/el/searchpage.txt4
-rw-r--r--wiki/inc/lang/el/showrev.txt2
-rw-r--r--wiki/inc/lang/el/stopwords.txt103
-rw-r--r--wiki/inc/lang/el/subscr_digest.txt16
-rw-r--r--wiki/inc/lang/el/subscr_form.txt3
-rw-r--r--wiki/inc/lang/el/subscr_list.txt16
-rw-r--r--wiki/inc/lang/el/subscr_single.txt18
-rw-r--r--wiki/inc/lang/el/updateprofile.txt4
-rw-r--r--wiki/inc/lang/el/uploadmail.txt11
-rw-r--r--wiki/inc/lang/en/admin.txt4
-rw-r--r--wiki/inc/lang/en/adminplugins.txt2
-rw-r--r--wiki/inc/lang/en/backlinks.txt4
-rw-r--r--wiki/inc/lang/en/conflict.txt6
-rw-r--r--wiki/inc/lang/en/denied.txt4
-rw-r--r--wiki/inc/lang/en/diff.txt4
-rw-r--r--wiki/inc/lang/en/draft.txt6
-rw-r--r--wiki/inc/lang/en/edit.txt2
-rw-r--r--wiki/inc/lang/en/editrev.txt2
-rw-r--r--wiki/inc/lang/en/index.txt4
-rw-r--r--wiki/inc/lang/en/install.html24
-rw-r--r--wiki/inc/lang/en/lang.php389
-rw-r--r--wiki/inc/lang/en/locked.txt3
-rw-r--r--wiki/inc/lang/en/login.txt4
-rw-r--r--wiki/inc/lang/en/mailtext.txt12
-rw-r--r--wiki/inc/lang/en/mailwrap.html13
-rw-r--r--wiki/inc/lang/en/newpage.txt4
-rw-r--r--wiki/inc/lang/en/norev.txt4
-rw-r--r--wiki/inc/lang/en/password.txt6
-rw-r--r--wiki/inc/lang/en/preview.txt4
-rw-r--r--wiki/inc/lang/en/pwconfirm.txt11
-rw-r--r--wiki/inc/lang/en/read.txt2
-rw-r--r--wiki/inc/lang/en/recent.txt5
-rw-r--r--wiki/inc/lang/en/register.txt4
-rw-r--r--wiki/inc/lang/en/registermail.txt10
-rw-r--r--wiki/inc/lang/en/resendpwd.txt4
-rw-r--r--wiki/inc/lang/en/resetpwd.txt4
-rw-r--r--wiki/inc/lang/en/revisions.txt4
-rw-r--r--wiki/inc/lang/en/searchpage.txt4
-rw-r--r--wiki/inc/lang/en/showrev.txt2
-rw-r--r--wiki/inc/lang/en/stopwords.txt39
-rw-r--r--wiki/inc/lang/en/subscr_digest.txt16
-rw-r--r--wiki/inc/lang/en/subscr_form.txt3
-rw-r--r--wiki/inc/lang/en/subscr_list.txt13
-rw-r--r--wiki/inc/lang/en/subscr_single.txt19
-rw-r--r--wiki/inc/lang/en/updateprofile.txt5
-rw-r--r--wiki/inc/lang/en/uploadmail.txt11
-rw-r--r--wiki/inc/lang/eo/admin.txt3
-rw-r--r--wiki/inc/lang/eo/adminplugins.txt1
-rw-r--r--wiki/inc/lang/eo/backlinks.txt3
-rw-r--r--wiki/inc/lang/eo/conflict.txt5
-rw-r--r--wiki/inc/lang/eo/denied.txt4
-rw-r--r--wiki/inc/lang/eo/diff.txt4
-rw-r--r--wiki/inc/lang/eo/draft.txt5
-rw-r--r--wiki/inc/lang/eo/edit.txt1
-rw-r--r--wiki/inc/lang/eo/editrev.txt2
-rw-r--r--wiki/inc/lang/eo/index.txt3
-rw-r--r--wiki/inc/lang/eo/install.html9
-rw-r--r--wiki/inc/lang/eo/jquery.ui.datepicker.js37
-rw-r--r--wiki/inc/lang/eo/lang.php340
-rw-r--r--wiki/inc/lang/eo/locked.txt3
-rw-r--r--wiki/inc/lang/eo/login.txt3
-rw-r--r--wiki/inc/lang/eo/mailtext.txt12
-rw-r--r--wiki/inc/lang/eo/mailwrap.html13
-rw-r--r--wiki/inc/lang/eo/newpage.txt4
-rw-r--r--wiki/inc/lang/eo/norev.txt3
-rw-r--r--wiki/inc/lang/eo/password.txt6
-rw-r--r--wiki/inc/lang/eo/preview.txt3
-rw-r--r--wiki/inc/lang/eo/pwconfirm.txt10
-rw-r--r--wiki/inc/lang/eo/read.txt2
-rw-r--r--wiki/inc/lang/eo/recent.txt3
-rw-r--r--wiki/inc/lang/eo/register.txt4
-rw-r--r--wiki/inc/lang/eo/registermail.txt10
-rw-r--r--wiki/inc/lang/eo/resendpwd.txt3
-rw-r--r--wiki/inc/lang/eo/resetpwd.txt4
-rw-r--r--wiki/inc/lang/eo/revisions.txt3
-rw-r--r--wiki/inc/lang/eo/searchpage.txt4
-rw-r--r--wiki/inc/lang/eo/showrev.txt2
-rw-r--r--wiki/inc/lang/eo/stopwords.txt20
-rw-r--r--wiki/inc/lang/eo/subscr_digest.txt16
-rw-r--r--wiki/inc/lang/eo/subscr_form.txt3
-rw-r--r--wiki/inc/lang/eo/subscr_list.txt13
-rw-r--r--wiki/inc/lang/eo/subscr_single.txt19
-rw-r--r--wiki/inc/lang/eo/updateprofile.txt3
-rw-r--r--wiki/inc/lang/eo/uploadmail.txt10
-rw-r--r--wiki/inc/lang/es/admin.txt3
-rw-r--r--wiki/inc/lang/es/adminplugins.txt1
-rw-r--r--wiki/inc/lang/es/backlinks.txt4
-rw-r--r--wiki/inc/lang/es/conflict.txt5
-rw-r--r--wiki/inc/lang/es/denied.txt4
-rw-r--r--wiki/inc/lang/es/diff.txt4
-rw-r--r--wiki/inc/lang/es/draft.txt6
-rw-r--r--wiki/inc/lang/es/edit.txt2
-rw-r--r--wiki/inc/lang/es/editrev.txt2
-rw-r--r--wiki/inc/lang/es/index.txt4
-rw-r--r--wiki/inc/lang/es/install.html14
-rw-r--r--wiki/inc/lang/es/jquery.ui.datepicker.js37
-rw-r--r--wiki/inc/lang/es/lang.php395
-rw-r--r--wiki/inc/lang/es/locked.txt3
-rw-r--r--wiki/inc/lang/es/login.txt3
-rw-r--r--wiki/inc/lang/es/mailtext.txt12
-rw-r--r--wiki/inc/lang/es/mailwrap.html13
-rw-r--r--wiki/inc/lang/es/newpage.txt3
-rw-r--r--wiki/inc/lang/es/norev.txt4
-rw-r--r--wiki/inc/lang/es/password.txt6
-rw-r--r--wiki/inc/lang/es/preview.txt4
-rw-r--r--wiki/inc/lang/es/pwconfirm.txt11
-rw-r--r--wiki/inc/lang/es/read.txt1
-rw-r--r--wiki/inc/lang/es/recent.txt5
-rw-r--r--wiki/inc/lang/es/register.txt3
-rw-r--r--wiki/inc/lang/es/registermail.txt10
-rw-r--r--wiki/inc/lang/es/resendpwd.txt3
-rw-r--r--wiki/inc/lang/es/resetpwd.txt3
-rw-r--r--wiki/inc/lang/es/revisions.txt4
-rw-r--r--wiki/inc/lang/es/searchpage.txt4
-rw-r--r--wiki/inc/lang/es/showrev.txt2
-rw-r--r--wiki/inc/lang/es/stopwords.txt171
-rw-r--r--wiki/inc/lang/es/subscr_digest.txt16
-rw-r--r--wiki/inc/lang/es/subscr_form.txt3
-rw-r--r--wiki/inc/lang/es/subscr_list.txt13
-rw-r--r--wiki/inc/lang/es/subscr_single.txt19
-rw-r--r--wiki/inc/lang/es/updateprofile.txt3
-rw-r--r--wiki/inc/lang/es/uploadmail.txt11
-rw-r--r--wiki/inc/lang/et/admin.txt4
-rw-r--r--wiki/inc/lang/et/adminplugins.txt1
-rw-r--r--wiki/inc/lang/et/backlinks.txt4
-rw-r--r--wiki/inc/lang/et/conflict.txt6
-rw-r--r--wiki/inc/lang/et/denied.txt4
-rw-r--r--wiki/inc/lang/et/diff.txt4
-rw-r--r--wiki/inc/lang/et/draft.txt6
-rw-r--r--wiki/inc/lang/et/edit.txt2
-rw-r--r--wiki/inc/lang/et/editrev.txt3
-rw-r--r--wiki/inc/lang/et/index.txt3
-rw-r--r--wiki/inc/lang/et/jquery.ui.datepicker.js45
-rw-r--r--wiki/inc/lang/et/lang.php336
-rw-r--r--wiki/inc/lang/et/locked.txt3
-rw-r--r--wiki/inc/lang/et/login.txt3
-rw-r--r--wiki/inc/lang/et/mailtext.txt12
-rw-r--r--wiki/inc/lang/et/newpage.txt3
-rw-r--r--wiki/inc/lang/et/norev.txt4
-rw-r--r--wiki/inc/lang/et/password.txt6
-rw-r--r--wiki/inc/lang/et/preview.txt3
-rw-r--r--wiki/inc/lang/et/pwconfirm.txt8
-rw-r--r--wiki/inc/lang/et/read.txt2
-rw-r--r--wiki/inc/lang/et/recent.txt5
-rw-r--r--wiki/inc/lang/et/register.txt4
-rw-r--r--wiki/inc/lang/et/registermail.txt10
-rw-r--r--wiki/inc/lang/et/resendpwd.txt4
-rw-r--r--wiki/inc/lang/et/resetpwd.txt3
-rw-r--r--wiki/inc/lang/et/revisions.txt4
-rw-r--r--wiki/inc/lang/et/searchpage.txt4
-rw-r--r--wiki/inc/lang/et/showrev.txt2
-rw-r--r--wiki/inc/lang/et/stopwords.txt15
-rw-r--r--wiki/inc/lang/et/subscr_digest.txt17
-rw-r--r--wiki/inc/lang/et/subscr_form.txt3
-rw-r--r--wiki/inc/lang/et/subscr_list.txt15
-rw-r--r--wiki/inc/lang/et/subscr_single.txt19
-rw-r--r--wiki/inc/lang/et/updateprofile.txt5
-rw-r--r--wiki/inc/lang/et/uploadmail.txt12
-rw-r--r--wiki/inc/lang/eu/admin.txt3
-rw-r--r--wiki/inc/lang/eu/adminplugins.txt1
-rw-r--r--wiki/inc/lang/eu/backlinks.txt3
-rw-r--r--wiki/inc/lang/eu/conflict.txt5
-rw-r--r--wiki/inc/lang/eu/denied.txt4
-rw-r--r--wiki/inc/lang/eu/diff.txt4
-rw-r--r--wiki/inc/lang/eu/draft.txt5
-rw-r--r--wiki/inc/lang/eu/edit.txt1
-rw-r--r--wiki/inc/lang/eu/editrev.txt2
-rw-r--r--wiki/inc/lang/eu/index.txt4
-rw-r--r--wiki/inc/lang/eu/install.html9
-rw-r--r--wiki/inc/lang/eu/jquery.ui.datepicker.js36
-rw-r--r--wiki/inc/lang/eu/lang.php339
-rw-r--r--wiki/inc/lang/eu/locked.txt3
-rw-r--r--wiki/inc/lang/eu/login.txt4
-rw-r--r--wiki/inc/lang/eu/mailtext.txt12
-rw-r--r--wiki/inc/lang/eu/mailwrap.html13
-rw-r--r--wiki/inc/lang/eu/newpage.txt3
-rw-r--r--wiki/inc/lang/eu/norev.txt3
-rw-r--r--wiki/inc/lang/eu/password.txt6
-rw-r--r--wiki/inc/lang/eu/preview.txt3
-rw-r--r--wiki/inc/lang/eu/pwconfirm.txt9
-rw-r--r--wiki/inc/lang/eu/read.txt1
-rw-r--r--wiki/inc/lang/eu/recent.txt3
-rw-r--r--wiki/inc/lang/eu/register.txt3
-rw-r--r--wiki/inc/lang/eu/registermail.txt10
-rw-r--r--wiki/inc/lang/eu/resendpwd.txt3
-rw-r--r--wiki/inc/lang/eu/resetpwd.txt3
-rw-r--r--wiki/inc/lang/eu/revisions.txt3
-rw-r--r--wiki/inc/lang/eu/searchpage.txt4
-rw-r--r--wiki/inc/lang/eu/showrev.txt2
-rw-r--r--wiki/inc/lang/eu/stopwords.txt26
-rw-r--r--wiki/inc/lang/eu/subscr_digest.txt16
-rw-r--r--wiki/inc/lang/eu/subscr_form.txt3
-rw-r--r--wiki/inc/lang/eu/subscr_list.txt13
-rw-r--r--wiki/inc/lang/eu/subscr_single.txt19
-rw-r--r--wiki/inc/lang/eu/updateprofile.txt3
-rw-r--r--wiki/inc/lang/eu/uploadmail.txt10
-rw-r--r--wiki/inc/lang/fa/admin.txt3
-rw-r--r--wiki/inc/lang/fa/adminplugins.txt1
-rw-r--r--wiki/inc/lang/fa/backlinks.txt3
-rw-r--r--wiki/inc/lang/fa/conflict.txt5
-rw-r--r--wiki/inc/lang/fa/denied.txt4
-rw-r--r--wiki/inc/lang/fa/diff.txt3
-rw-r--r--wiki/inc/lang/fa/draft.txt5
-rw-r--r--wiki/inc/lang/fa/edit.txt1
-rw-r--r--wiki/inc/lang/fa/editrev.txt2
-rw-r--r--wiki/inc/lang/fa/index.txt3
-rw-r--r--wiki/inc/lang/fa/install.html12
-rw-r--r--wiki/inc/lang/fa/jquery.ui.datepicker.js73
-rw-r--r--wiki/inc/lang/fa/lang.php353
-rw-r--r--wiki/inc/lang/fa/locked.txt3
-rw-r--r--wiki/inc/lang/fa/login.txt3
-rw-r--r--wiki/inc/lang/fa/mailtext.txt12
-rw-r--r--wiki/inc/lang/fa/mailwrap.html13
-rw-r--r--wiki/inc/lang/fa/newpage.txt3
-rw-r--r--wiki/inc/lang/fa/norev.txt3
-rw-r--r--wiki/inc/lang/fa/password.txt6
-rw-r--r--wiki/inc/lang/fa/preview.txt3
-rw-r--r--wiki/inc/lang/fa/pwconfirm.txt9
-rw-r--r--wiki/inc/lang/fa/read.txt1
-rw-r--r--wiki/inc/lang/fa/recent.txt3
-rw-r--r--wiki/inc/lang/fa/register.txt3
-rw-r--r--wiki/inc/lang/fa/registermail.txt10
-rw-r--r--wiki/inc/lang/fa/resendpwd.txt3
-rw-r--r--wiki/inc/lang/fa/resetpwd.txt3
-rw-r--r--wiki/inc/lang/fa/revisions.txt3
-rw-r--r--wiki/inc/lang/fa/searchpage.txt4
-rw-r--r--wiki/inc/lang/fa/showrev.txt2
-rw-r--r--wiki/inc/lang/fa/stopwords.txt445
-rw-r--r--wiki/inc/lang/fa/subscr_digest.txt13
-rw-r--r--wiki/inc/lang/fa/subscr_form.txt3
-rw-r--r--wiki/inc/lang/fa/subscr_list.txt13
-rw-r--r--wiki/inc/lang/fa/subscr_single.txt16
-rw-r--r--wiki/inc/lang/fa/updateprofile.txt3
-rw-r--r--wiki/inc/lang/fa/uploadmail.txt10
-rw-r--r--wiki/inc/lang/fi/admin.txt3
-rw-r--r--wiki/inc/lang/fi/adminplugins.txt1
-rw-r--r--wiki/inc/lang/fi/backlinks.txt4
-rw-r--r--wiki/inc/lang/fi/conflict.txt5
-rw-r--r--wiki/inc/lang/fi/denied.txt4
-rw-r--r--wiki/inc/lang/fi/diff.txt3
-rw-r--r--wiki/inc/lang/fi/draft.txt5
-rw-r--r--wiki/inc/lang/fi/edit.txt1
-rw-r--r--wiki/inc/lang/fi/editrev.txt2
-rw-r--r--wiki/inc/lang/fi/index.txt3
-rw-r--r--wiki/inc/lang/fi/install.html21
-rw-r--r--wiki/inc/lang/fi/jquery.ui.datepicker.js37
-rw-r--r--wiki/inc/lang/fi/lang.php342
-rw-r--r--wiki/inc/lang/fi/locked.txt3
-rw-r--r--wiki/inc/lang/fi/login.txt3
-rw-r--r--wiki/inc/lang/fi/mailtext.txt12
-rw-r--r--wiki/inc/lang/fi/mailwrap.html13
-rw-r--r--wiki/inc/lang/fi/newpage.txt3
-rw-r--r--wiki/inc/lang/fi/norev.txt3
-rw-r--r--wiki/inc/lang/fi/password.txt6
-rw-r--r--wiki/inc/lang/fi/preview.txt3
-rw-r--r--wiki/inc/lang/fi/pwconfirm.txt9
-rw-r--r--wiki/inc/lang/fi/read.txt1
-rw-r--r--wiki/inc/lang/fi/recent.txt4
-rw-r--r--wiki/inc/lang/fi/register.txt3
-rw-r--r--wiki/inc/lang/fi/registermail.txt10
-rw-r--r--wiki/inc/lang/fi/resendpwd.txt3
-rw-r--r--wiki/inc/lang/fi/resetpwd.txt3
-rw-r--r--wiki/inc/lang/fi/revisions.txt3
-rw-r--r--wiki/inc/lang/fi/searchpage.txt4
-rw-r--r--wiki/inc/lang/fi/showrev.txt2
-rw-r--r--wiki/inc/lang/fi/stopwords.txt11
-rw-r--r--wiki/inc/lang/fi/subscr_digest.txt16
-rw-r--r--wiki/inc/lang/fi/subscr_form.txt3
-rw-r--r--wiki/inc/lang/fi/subscr_list.txt13
-rw-r--r--wiki/inc/lang/fi/subscr_single.txt19
-rw-r--r--wiki/inc/lang/fi/updateprofile.txt3
-rw-r--r--wiki/inc/lang/fi/uploadmail.txt10
-rw-r--r--wiki/inc/lang/fo/admin.txt4
-rw-r--r--wiki/inc/lang/fo/backlinks.txt4
-rw-r--r--wiki/inc/lang/fo/conflict.txt5
-rw-r--r--wiki/inc/lang/fo/denied.txt4
-rw-r--r--wiki/inc/lang/fo/diff.txt4
-rw-r--r--wiki/inc/lang/fo/edit.txt2
-rw-r--r--wiki/inc/lang/fo/editrev.txt2
-rw-r--r--wiki/inc/lang/fo/index.txt3
-rw-r--r--wiki/inc/lang/fo/jquery.ui.datepicker.js45
-rw-r--r--wiki/inc/lang/fo/lang.php170
-rw-r--r--wiki/inc/lang/fo/locked.txt3
-rw-r--r--wiki/inc/lang/fo/login.txt3
-rw-r--r--wiki/inc/lang/fo/mailtext.txt12
-rw-r--r--wiki/inc/lang/fo/newpage.txt3
-rw-r--r--wiki/inc/lang/fo/norev.txt4
-rw-r--r--wiki/inc/lang/fo/password.txt6
-rw-r--r--wiki/inc/lang/fo/preview.txt4
-rw-r--r--wiki/inc/lang/fo/read.txt2
-rw-r--r--wiki/inc/lang/fo/recent.txt5
-rw-r--r--wiki/inc/lang/fo/register.txt4
-rw-r--r--wiki/inc/lang/fo/resendpwd.txt3
-rw-r--r--wiki/inc/lang/fo/revisions.txt3
-rw-r--r--wiki/inc/lang/fo/searchpage.txt4
-rw-r--r--wiki/inc/lang/fo/showrev.txt2
-rw-r--r--wiki/inc/lang/fo/stopwords.txt87
-rw-r--r--wiki/inc/lang/fo/subscr_digest.txt16
-rw-r--r--wiki/inc/lang/fo/updateprofile.txt3
-rw-r--r--wiki/inc/lang/fr/admin.txt3
-rw-r--r--wiki/inc/lang/fr/adminplugins.txt1
-rw-r--r--wiki/inc/lang/fr/backlinks.txt4
-rw-r--r--wiki/inc/lang/fr/conflict.txt6
-rw-r--r--wiki/inc/lang/fr/denied.txt4
-rw-r--r--wiki/inc/lang/fr/diff.txt4
-rw-r--r--wiki/inc/lang/fr/draft.txt6
-rw-r--r--wiki/inc/lang/fr/edit.txt2
-rw-r--r--wiki/inc/lang/fr/editrev.txt2
-rw-r--r--wiki/inc/lang/fr/index.txt4
-rw-r--r--wiki/inc/lang/fr/install.html13
-rw-r--r--wiki/inc/lang/fr/jquery.ui.datepicker.js39
-rw-r--r--wiki/inc/lang/fr/lang.php389
-rw-r--r--wiki/inc/lang/fr/locked.txt3
-rw-r--r--wiki/inc/lang/fr/login.txt3
-rw-r--r--wiki/inc/lang/fr/mailtext.txt13
-rw-r--r--wiki/inc/lang/fr/mailwrap.html13
-rw-r--r--wiki/inc/lang/fr/newpage.txt4
-rw-r--r--wiki/inc/lang/fr/norev.txt4
-rw-r--r--wiki/inc/lang/fr/password.txt6
-rw-r--r--wiki/inc/lang/fr/preview.txt4
-rw-r--r--wiki/inc/lang/fr/pwconfirm.txt11
-rw-r--r--wiki/inc/lang/fr/read.txt2
-rw-r--r--wiki/inc/lang/fr/recent.txt5
-rw-r--r--wiki/inc/lang/fr/register.txt3
-rw-r--r--wiki/inc/lang/fr/registermail.txt10
-rw-r--r--wiki/inc/lang/fr/resendpwd.txt4
-rw-r--r--wiki/inc/lang/fr/resetpwd.txt3
-rw-r--r--wiki/inc/lang/fr/revisions.txt4
-rw-r--r--wiki/inc/lang/fr/searchpage.txt4
-rw-r--r--wiki/inc/lang/fr/showrev.txt2
-rw-r--r--wiki/inc/lang/fr/stopwords.txt112
-rw-r--r--wiki/inc/lang/fr/subscr_digest.txt15
-rw-r--r--wiki/inc/lang/fr/subscr_form.txt3
-rw-r--r--wiki/inc/lang/fr/subscr_list.txt12
-rw-r--r--wiki/inc/lang/fr/subscr_single.txt18
-rw-r--r--wiki/inc/lang/fr/updateprofile.txt5
-rw-r--r--wiki/inc/lang/fr/uploadmail.txt10
-rw-r--r--wiki/inc/lang/gl/admin.txt4
-rw-r--r--wiki/inc/lang/gl/adminplugins.txt1
-rw-r--r--wiki/inc/lang/gl/backlinks.txt4
-rw-r--r--wiki/inc/lang/gl/conflict.txt6
-rw-r--r--wiki/inc/lang/gl/denied.txt4
-rw-r--r--wiki/inc/lang/gl/diff.txt4
-rw-r--r--wiki/inc/lang/gl/draft.txt6
-rw-r--r--wiki/inc/lang/gl/edit.txt2
-rw-r--r--wiki/inc/lang/gl/editrev.txt2
-rw-r--r--wiki/inc/lang/gl/index.txt4
-rw-r--r--wiki/inc/lang/gl/install.html25
-rw-r--r--wiki/inc/lang/gl/jquery.ui.datepicker.js37
-rw-r--r--wiki/inc/lang/gl/lang.php318
-rw-r--r--wiki/inc/lang/gl/locked.txt3
-rw-r--r--wiki/inc/lang/gl/login.txt4
-rw-r--r--wiki/inc/lang/gl/mailtext.txt12
-rw-r--r--wiki/inc/lang/gl/mailwrap.html13
-rw-r--r--wiki/inc/lang/gl/newpage.txt4
-rw-r--r--wiki/inc/lang/gl/norev.txt4
-rw-r--r--wiki/inc/lang/gl/password.txt6
-rw-r--r--wiki/inc/lang/gl/preview.txt4
-rw-r--r--wiki/inc/lang/gl/pwconfirm.txt11
-rw-r--r--wiki/inc/lang/gl/read.txt2
-rw-r--r--wiki/inc/lang/gl/recent.txt5
-rw-r--r--wiki/inc/lang/gl/register.txt4
-rw-r--r--wiki/inc/lang/gl/registermail.txt10
-rw-r--r--wiki/inc/lang/gl/resendpwd.txt3
-rw-r--r--wiki/inc/lang/gl/resetpwd.txt3
-rw-r--r--wiki/inc/lang/gl/revisions.txt4
-rw-r--r--wiki/inc/lang/gl/searchpage.txt4
-rw-r--r--wiki/inc/lang/gl/showrev.txt2
-rw-r--r--wiki/inc/lang/gl/stopwords.txt692
-rw-r--r--wiki/inc/lang/gl/subscr_digest.txt16
-rw-r--r--wiki/inc/lang/gl/subscr_form.txt3
-rw-r--r--wiki/inc/lang/gl/subscr_list.txt13
-rw-r--r--wiki/inc/lang/gl/subscr_single.txt19
-rw-r--r--wiki/inc/lang/gl/updateprofile.txt5
-rw-r--r--wiki/inc/lang/gl/uploadmail.txt10
-rw-r--r--wiki/inc/lang/gl/wordblock.txt4
-rw-r--r--wiki/inc/lang/he/admin.txt4
-rw-r--r--wiki/inc/lang/he/adminplugins.txt1
-rw-r--r--wiki/inc/lang/he/backlinks.txt3
-rw-r--r--wiki/inc/lang/he/conflict.txt6
-rw-r--r--wiki/inc/lang/he/denied.txt4
-rw-r--r--wiki/inc/lang/he/diff.txt4
-rw-r--r--wiki/inc/lang/he/draft.txt5
-rw-r--r--wiki/inc/lang/he/edit.txt1
-rw-r--r--wiki/inc/lang/he/editrev.txt2
-rw-r--r--wiki/inc/lang/he/index.txt4
-rw-r--r--wiki/inc/lang/he/install.html13
-rw-r--r--wiki/inc/lang/he/jquery.ui.datepicker.js37
-rw-r--r--wiki/inc/lang/he/lang.php353
-rw-r--r--wiki/inc/lang/he/locked.txt3
-rw-r--r--wiki/inc/lang/he/login.txt3
-rw-r--r--wiki/inc/lang/he/mailtext.txt12
-rw-r--r--wiki/inc/lang/he/newpage.txt3
-rw-r--r--wiki/inc/lang/he/norev.txt4
-rw-r--r--wiki/inc/lang/he/password.txt6
-rw-r--r--wiki/inc/lang/he/preview.txt4
-rw-r--r--wiki/inc/lang/he/pwconfirm.txt9
-rw-r--r--wiki/inc/lang/he/read.txt2
-rw-r--r--wiki/inc/lang/he/recent.txt5
-rw-r--r--wiki/inc/lang/he/register.txt3
-rw-r--r--wiki/inc/lang/he/registermail.txt10
-rw-r--r--wiki/inc/lang/he/resendpwd.txt4
-rw-r--r--wiki/inc/lang/he/resetpwd.txt3
-rw-r--r--wiki/inc/lang/he/revisions.txt4
-rw-r--r--wiki/inc/lang/he/searchpage.txt4
-rw-r--r--wiki/inc/lang/he/showrev.txt2
-rw-r--r--wiki/inc/lang/he/stopwords.txt29
-rw-r--r--wiki/inc/lang/he/subscr_digest.txt16
-rw-r--r--wiki/inc/lang/he/subscr_single.txt18
-rw-r--r--wiki/inc/lang/he/updateprofile.txt5
-rw-r--r--wiki/inc/lang/he/uploadmail.txt10
-rw-r--r--wiki/inc/lang/hi/diff.txt3
-rw-r--r--wiki/inc/lang/hi/jquery.ui.datepicker.js37
-rw-r--r--wiki/inc/lang/hi/lang.php116
-rw-r--r--wiki/inc/lang/hr/admin.txt3
-rw-r--r--wiki/inc/lang/hr/adminplugins.txt1
-rw-r--r--wiki/inc/lang/hr/backlinks.txt3
-rw-r--r--wiki/inc/lang/hr/conflict.txt5
-rw-r--r--wiki/inc/lang/hr/denied.txt4
-rw-r--r--wiki/inc/lang/hr/diff.txt3
-rw-r--r--wiki/inc/lang/hr/draft.txt4
-rw-r--r--wiki/inc/lang/hr/edit.txt1
-rw-r--r--wiki/inc/lang/hr/editrev.txt2
-rw-r--r--wiki/inc/lang/hr/index.txt3
-rw-r--r--wiki/inc/lang/hr/jquery.ui.datepicker.js37
-rw-r--r--wiki/inc/lang/hr/lang.php359
-rw-r--r--wiki/inc/lang/hr/locked.txt3
-rw-r--r--wiki/inc/lang/hr/login.txt3
-rw-r--r--wiki/inc/lang/hr/mailtext.txt12
-rw-r--r--wiki/inc/lang/hr/newpage.txt3
-rw-r--r--wiki/inc/lang/hr/norev.txt3
-rw-r--r--wiki/inc/lang/hr/password.txt6
-rw-r--r--wiki/inc/lang/hr/preview.txt3
-rw-r--r--wiki/inc/lang/hr/pwconfirm.txt9
-rw-r--r--wiki/inc/lang/hr/read.txt1
-rw-r--r--wiki/inc/lang/hr/recent.txt3
-rw-r--r--wiki/inc/lang/hr/register.txt3
-rw-r--r--wiki/inc/lang/hr/registermail.txt10
-rw-r--r--wiki/inc/lang/hr/resendpwd.txt3
-rw-r--r--wiki/inc/lang/hr/resetpwd.txt3
-rw-r--r--wiki/inc/lang/hr/revisions.txt3
-rw-r--r--wiki/inc/lang/hr/searchpage.txt4
-rw-r--r--wiki/inc/lang/hr/showrev.txt2
-rw-r--r--wiki/inc/lang/hr/stopwords.txt29
-rw-r--r--wiki/inc/lang/hr/subscr_digest.txt15
-rw-r--r--wiki/inc/lang/hr/subscr_form.txt3
-rw-r--r--wiki/inc/lang/hr/subscr_list.txt11
-rw-r--r--wiki/inc/lang/hr/subscr_single.txt18
-rw-r--r--wiki/inc/lang/hr/updateprofile.txt3
-rw-r--r--wiki/inc/lang/hr/uploadmail.txt11
-rw-r--r--wiki/inc/lang/hu-formal/admin.txt3
-rw-r--r--wiki/inc/lang/hu-formal/adminplugins.txt1
-rw-r--r--wiki/inc/lang/hu-formal/backlinks.txt3
-rw-r--r--wiki/inc/lang/hu-formal/conflict.txt5
-rw-r--r--wiki/inc/lang/hu-formal/denied.txt4
-rw-r--r--wiki/inc/lang/hu-formal/diff.txt3
-rw-r--r--wiki/inc/lang/hu-formal/draft.txt5
-rw-r--r--wiki/inc/lang/hu-formal/edit.txt1
-rw-r--r--wiki/inc/lang/hu-formal/editrev.txt2
-rw-r--r--wiki/inc/lang/hu-formal/index.txt3
-rw-r--r--wiki/inc/lang/hu-formal/lang.php29
-rw-r--r--wiki/inc/lang/hu/admin.txt3
-rw-r--r--wiki/inc/lang/hu/adminplugins.txt1
-rw-r--r--wiki/inc/lang/hu/backlinks.txt5
-rw-r--r--wiki/inc/lang/hu/conflict.txt7
-rw-r--r--wiki/inc/lang/hu/denied.txt4
-rw-r--r--wiki/inc/lang/hu/diff.txt4
-rw-r--r--wiki/inc/lang/hu/draft.txt5
-rw-r--r--wiki/inc/lang/hu/edit.txt1
-rw-r--r--wiki/inc/lang/hu/editrev.txt2
-rw-r--r--wiki/inc/lang/hu/index.txt4
-rw-r--r--wiki/inc/lang/hu/install.html26
-rw-r--r--wiki/inc/lang/hu/jquery.ui.datepicker.js36
-rw-r--r--wiki/inc/lang/hu/lang.php350
-rw-r--r--wiki/inc/lang/hu/locked.txt4
-rw-r--r--wiki/inc/lang/hu/login.txt5
-rw-r--r--wiki/inc/lang/hu/mailtext.txt12
-rw-r--r--wiki/inc/lang/hu/mailwrap.html13
-rw-r--r--wiki/inc/lang/hu/newpage.txt3
-rw-r--r--wiki/inc/lang/hu/norev.txt5
-rw-r--r--wiki/inc/lang/hu/password.txt6
-rw-r--r--wiki/inc/lang/hu/preview.txt3
-rw-r--r--wiki/inc/lang/hu/pwconfirm.txt11
-rw-r--r--wiki/inc/lang/hu/read.txt1
-rw-r--r--wiki/inc/lang/hu/recent.txt5
-rw-r--r--wiki/inc/lang/hu/register.txt4
-rw-r--r--wiki/inc/lang/hu/registermail.txt10
-rw-r--r--wiki/inc/lang/hu/resendpwd.txt3
-rw-r--r--wiki/inc/lang/hu/resetpwd.txt3
-rw-r--r--wiki/inc/lang/hu/revisions.txt3
-rw-r--r--wiki/inc/lang/hu/searchpage.txt4
-rw-r--r--wiki/inc/lang/hu/showrev.txt2
-rw-r--r--wiki/inc/lang/hu/stopwords.txt39
-rw-r--r--wiki/inc/lang/hu/subscr_digest.txt13
-rw-r--r--wiki/inc/lang/hu/subscr_form.txt3
-rw-r--r--wiki/inc/lang/hu/subscr_list.txt10
-rw-r--r--wiki/inc/lang/hu/subscr_single.txt16
-rw-r--r--wiki/inc/lang/hu/updateprofile.txt3
-rw-r--r--wiki/inc/lang/hu/uploadmail.txt10
-rw-r--r--wiki/inc/lang/ia/admin.txt3
-rw-r--r--wiki/inc/lang/ia/adminplugins.txt1
-rw-r--r--wiki/inc/lang/ia/backlinks.txt3
-rw-r--r--wiki/inc/lang/ia/conflict.txt5
-rw-r--r--wiki/inc/lang/ia/denied.txt4
-rw-r--r--wiki/inc/lang/ia/diff.txt3
-rw-r--r--wiki/inc/lang/ia/draft.txt5
-rw-r--r--wiki/inc/lang/ia/edit.txt1
-rw-r--r--wiki/inc/lang/ia/editrev.txt2
-rw-r--r--wiki/inc/lang/ia/index.txt3
-rw-r--r--wiki/inc/lang/ia/install.html13
-rw-r--r--wiki/inc/lang/ia/lang.php261
-rw-r--r--wiki/inc/lang/ia/locked.txt3
-rw-r--r--wiki/inc/lang/ia/login.txt3
-rw-r--r--wiki/inc/lang/ia/mailtext.txt12
-rw-r--r--wiki/inc/lang/ia/newpage.txt3
-rw-r--r--wiki/inc/lang/ia/norev.txt3
-rw-r--r--wiki/inc/lang/ia/password.txt6
-rw-r--r--wiki/inc/lang/ia/preview.txt3
-rw-r--r--wiki/inc/lang/ia/pwconfirm.txt10
-rw-r--r--wiki/inc/lang/ia/read.txt1
-rw-r--r--wiki/inc/lang/ia/recent.txt3
-rw-r--r--wiki/inc/lang/ia/register.txt3
-rw-r--r--wiki/inc/lang/ia/registermail.txt10
-rw-r--r--wiki/inc/lang/ia/resendpwd.txt3
-rw-r--r--wiki/inc/lang/ia/revisions.txt3
-rw-r--r--wiki/inc/lang/ia/searchpage.txt4
-rw-r--r--wiki/inc/lang/ia/showrev.txt2
-rw-r--r--wiki/inc/lang/ia/stopwords.txt38
-rw-r--r--wiki/inc/lang/ia/subscr_digest.txt16
-rw-r--r--wiki/inc/lang/ia/subscr_form.txt4
-rw-r--r--wiki/inc/lang/ia/subscr_list.txt13
-rw-r--r--wiki/inc/lang/ia/subscr_single.txt19
-rw-r--r--wiki/inc/lang/ia/updateprofile.txt3
-rw-r--r--wiki/inc/lang/ia/uploadmail.txt10
-rw-r--r--wiki/inc/lang/id-ni/lang.php76
-rw-r--r--wiki/inc/lang/id/admin.txt4
-rw-r--r--wiki/inc/lang/id/adminplugins.txt1
-rw-r--r--wiki/inc/lang/id/backlinks.txt3
-rw-r--r--wiki/inc/lang/id/conflict.txt6
-rw-r--r--wiki/inc/lang/id/denied.txt4
-rw-r--r--wiki/inc/lang/id/diff.txt4
-rw-r--r--wiki/inc/lang/id/draft.txt5
-rw-r--r--wiki/inc/lang/id/edit.txt2
-rw-r--r--wiki/inc/lang/id/editrev.txt2
-rw-r--r--wiki/inc/lang/id/index.txt4
-rw-r--r--wiki/inc/lang/id/install.html25
-rw-r--r--wiki/inc/lang/id/jquery.ui.datepicker.js37
-rw-r--r--wiki/inc/lang/id/lang.php312
-rw-r--r--wiki/inc/lang/id/locked.txt3
-rw-r--r--wiki/inc/lang/id/login.txt4
-rw-r--r--wiki/inc/lang/id/mailtext.txt12
-rw-r--r--wiki/inc/lang/id/newpage.txt3
-rw-r--r--wiki/inc/lang/id/norev.txt4
-rw-r--r--wiki/inc/lang/id/password.txt6
-rw-r--r--wiki/inc/lang/id/preview.txt4
-rw-r--r--wiki/inc/lang/id/pwconfirm.txt9
-rw-r--r--wiki/inc/lang/id/read.txt2
-rw-r--r--wiki/inc/lang/id/recent.txt5
-rw-r--r--wiki/inc/lang/id/register.txt4
-rw-r--r--wiki/inc/lang/id/registermail.txt10
-rw-r--r--wiki/inc/lang/id/resendpwd.txt3
-rw-r--r--wiki/inc/lang/id/resetpwd.txt3
-rw-r--r--wiki/inc/lang/id/revisions.txt4
-rw-r--r--wiki/inc/lang/id/searchpage.txt4
-rw-r--r--wiki/inc/lang/id/showrev.txt2
-rw-r--r--wiki/inc/lang/id/stopwords.txt37
-rw-r--r--wiki/inc/lang/id/subscr_digest.txt14
-rw-r--r--wiki/inc/lang/id/updateprofile.txt3
-rw-r--r--wiki/inc/lang/id/uploadmail.txt10
-rw-r--r--wiki/inc/lang/is/adminplugins.txt1
-rw-r--r--wiki/inc/lang/is/diff.txt3
-rw-r--r--wiki/inc/lang/is/jquery.ui.datepicker.js45
-rw-r--r--wiki/inc/lang/is/lang.php181
-rw-r--r--wiki/inc/lang/is/login.txt3
-rw-r--r--wiki/inc/lang/is/recent.txt3
-rw-r--r--wiki/inc/lang/is/resendpwd.txt3
-rw-r--r--wiki/inc/lang/it/admin.txt4
-rw-r--r--wiki/inc/lang/it/adminplugins.txt1
-rw-r--r--wiki/inc/lang/it/backlinks.txt4
-rw-r--r--wiki/inc/lang/it/conflict.txt6
-rw-r--r--wiki/inc/lang/it/denied.txt4
-rw-r--r--wiki/inc/lang/it/diff.txt4
-rw-r--r--wiki/inc/lang/it/draft.txt6
-rw-r--r--wiki/inc/lang/it/edit.txt2
-rw-r--r--wiki/inc/lang/it/editrev.txt2
-rw-r--r--wiki/inc/lang/it/index.txt4
-rw-r--r--wiki/inc/lang/it/install.html24
-rw-r--r--wiki/inc/lang/it/jquery.ui.datepicker.js37
-rw-r--r--wiki/inc/lang/it/lang.php370
-rw-r--r--wiki/inc/lang/it/locked.txt3
-rw-r--r--wiki/inc/lang/it/login.txt4
-rw-r--r--wiki/inc/lang/it/mailtext.txt12
-rw-r--r--wiki/inc/lang/it/mailwrap.html13
-rw-r--r--wiki/inc/lang/it/newpage.txt3
-rw-r--r--wiki/inc/lang/it/norev.txt3
-rw-r--r--wiki/inc/lang/it/password.txt6
-rw-r--r--wiki/inc/lang/it/preview.txt5
-rw-r--r--wiki/inc/lang/it/pwconfirm.txt11
-rw-r--r--wiki/inc/lang/it/read.txt1
-rw-r--r--wiki/inc/lang/it/recent.txt4
-rw-r--r--wiki/inc/lang/it/register.txt3
-rw-r--r--wiki/inc/lang/it/registermail.txt10
-rw-r--r--wiki/inc/lang/it/resendpwd.txt3
-rw-r--r--wiki/inc/lang/it/resetpwd.txt1
-rw-r--r--wiki/inc/lang/it/revisions.txt3
-rw-r--r--wiki/inc/lang/it/searchpage.txt4
-rw-r--r--wiki/inc/lang/it/showrev.txt2
-rw-r--r--wiki/inc/lang/it/stopwords.txt119
-rw-r--r--wiki/inc/lang/it/subscr_digest.txt16
-rw-r--r--wiki/inc/lang/it/subscr_form.txt3
-rw-r--r--wiki/inc/lang/it/subscr_list.txt14
-rw-r--r--wiki/inc/lang/it/subscr_single.txt20
-rw-r--r--wiki/inc/lang/it/updateprofile.txt3
-rw-r--r--wiki/inc/lang/it/uploadmail.txt10
-rw-r--r--wiki/inc/lang/ja/admin.txt4
-rw-r--r--wiki/inc/lang/ja/adminplugins.txt1
-rw-r--r--wiki/inc/lang/ja/backlinks.txt4
-rw-r--r--wiki/inc/lang/ja/conflict.txt6
-rw-r--r--wiki/inc/lang/ja/denied.txt4
-rw-r--r--wiki/inc/lang/ja/diff.txt4
-rw-r--r--wiki/inc/lang/ja/draft.txt6
-rw-r--r--wiki/inc/lang/ja/edit.txt4
-rw-r--r--wiki/inc/lang/ja/editrev.txt2
-rw-r--r--wiki/inc/lang/ja/index.txt4
-rw-r--r--wiki/inc/lang/ja/install.html14
-rw-r--r--wiki/inc/lang/ja/jquery.ui.datepicker.js37
-rw-r--r--wiki/inc/lang/ja/lang.php348
-rw-r--r--wiki/inc/lang/ja/locked.txt3
-rw-r--r--wiki/inc/lang/ja/login.txt4
-rw-r--r--wiki/inc/lang/ja/mailtext.txt12
-rw-r--r--wiki/inc/lang/ja/mailwrap.html13
-rw-r--r--wiki/inc/lang/ja/newpage.txt4
-rw-r--r--wiki/inc/lang/ja/norev.txt4
-rw-r--r--wiki/inc/lang/ja/password.txt6
-rw-r--r--wiki/inc/lang/ja/preview.txt4
-rw-r--r--wiki/inc/lang/ja/pwconfirm.txt9
-rw-r--r--wiki/inc/lang/ja/read.txt2
-rw-r--r--wiki/inc/lang/ja/recent.txt5
-rw-r--r--wiki/inc/lang/ja/register.txt4
-rw-r--r--wiki/inc/lang/ja/registermail.txt10
-rw-r--r--wiki/inc/lang/ja/resendpwd.txt4
-rw-r--r--wiki/inc/lang/ja/resetpwd.txt3
-rw-r--r--wiki/inc/lang/ja/revisions.txt4
-rw-r--r--wiki/inc/lang/ja/searchpage.txt4
-rw-r--r--wiki/inc/lang/ja/showrev.txt2
-rw-r--r--wiki/inc/lang/ja/stopwords.txt29
-rw-r--r--wiki/inc/lang/ja/subscr_digest.txt17
-rw-r--r--wiki/inc/lang/ja/subscr_form.txt3
-rw-r--r--wiki/inc/lang/ja/subscr_list.txt15
-rw-r--r--wiki/inc/lang/ja/subscr_single.txt20
-rw-r--r--wiki/inc/lang/ja/updateprofile.txt5
-rw-r--r--wiki/inc/lang/ja/uploadmail.txt10
-rw-r--r--wiki/inc/lang/ka/admin.txt4
-rw-r--r--wiki/inc/lang/ka/adminplugins.txt1
-rw-r--r--wiki/inc/lang/ka/backlinks.txt4
-rw-r--r--wiki/inc/lang/ka/conflict.txt5
-rw-r--r--wiki/inc/lang/ka/denied.txt3
-rw-r--r--wiki/inc/lang/ka/diff.txt3
-rw-r--r--wiki/inc/lang/ka/draft.txt3
-rw-r--r--wiki/inc/lang/ka/edit.txt2
-rw-r--r--wiki/inc/lang/ka/editrev.txt2
-rw-r--r--wiki/inc/lang/ka/index.txt1
-rw-r--r--wiki/inc/lang/ka/jquery.ui.datepicker.js48
-rw-r--r--wiki/inc/lang/ka/lang.php279
-rw-r--r--wiki/inc/lang/kk/jquery.ui.datepicker.js37
-rw-r--r--wiki/inc/lang/kk/lang.php129
-rw-r--r--wiki/inc/lang/km/admin.txt3
-rw-r--r--wiki/inc/lang/km/backlinks.txt5
-rw-r--r--wiki/inc/lang/km/conflict.txt3
-rw-r--r--wiki/inc/lang/km/denied.txt4
-rw-r--r--wiki/inc/lang/km/edit.txt3
-rw-r--r--wiki/inc/lang/km/editrev.txt2
-rw-r--r--wiki/inc/lang/km/index.txt2
-rw-r--r--wiki/inc/lang/km/jquery.ui.datepicker.js37
-rw-r--r--wiki/inc/lang/km/lang.php202
-rw-r--r--wiki/inc/lang/km/login.txt5
-rw-r--r--wiki/inc/lang/km/newpage.txt4
-rw-r--r--wiki/inc/lang/km/norev.txt2
-rw-r--r--wiki/inc/lang/km/password.txt6
-rw-r--r--wiki/inc/lang/km/pwconfirm.txt9
-rw-r--r--wiki/inc/lang/km/recent.txt3
-rw-r--r--wiki/inc/lang/km/register.txt7
-rw-r--r--wiki/inc/lang/km/revisions.txt4
-rw-r--r--wiki/inc/lang/kn/admin.txt2
-rw-r--r--wiki/inc/lang/kn/adminplugins.txt1
-rw-r--r--wiki/inc/lang/kn/backlinks.txt2
-rw-r--r--wiki/inc/lang/kn/conflict.txt4
-rw-r--r--wiki/inc/lang/ko/admin.txt3
-rw-r--r--wiki/inc/lang/ko/adminplugins.txt1
-rw-r--r--wiki/inc/lang/ko/backlinks.txt3
-rw-r--r--wiki/inc/lang/ko/conflict.txt5
-rw-r--r--wiki/inc/lang/ko/denied.txt3
-rw-r--r--wiki/inc/lang/ko/diff.txt3
-rw-r--r--wiki/inc/lang/ko/draft.txt5
-rw-r--r--wiki/inc/lang/ko/edit.txt1
-rw-r--r--wiki/inc/lang/ko/editrev.txt2
-rw-r--r--wiki/inc/lang/ko/index.txt3
-rw-r--r--wiki/inc/lang/ko/install.html22
-rw-r--r--wiki/inc/lang/ko/jquery.ui.datepicker.js37
-rw-r--r--wiki/inc/lang/ko/lang.php352
-rw-r--r--wiki/inc/lang/ko/locked.txt3
-rw-r--r--wiki/inc/lang/ko/login.txt3
-rw-r--r--wiki/inc/lang/ko/mailtext.txt12
-rw-r--r--wiki/inc/lang/ko/mailwrap.html13
-rw-r--r--wiki/inc/lang/ko/newpage.txt3
-rw-r--r--wiki/inc/lang/ko/norev.txt3
-rw-r--r--wiki/inc/lang/ko/password.txt6
-rw-r--r--wiki/inc/lang/ko/preview.txt3
-rw-r--r--wiki/inc/lang/ko/pwconfirm.txt10
-rw-r--r--wiki/inc/lang/ko/read.txt1
-rw-r--r--wiki/inc/lang/ko/recent.txt3
-rw-r--r--wiki/inc/lang/ko/register.txt3
-rw-r--r--wiki/inc/lang/ko/registermail.txt10
-rw-r--r--wiki/inc/lang/ko/resendpwd.txt3
-rw-r--r--wiki/inc/lang/ko/resetpwd.txt3
-rw-r--r--wiki/inc/lang/ko/revisions.txt3
-rw-r--r--wiki/inc/lang/ko/searchpage.txt4
-rw-r--r--wiki/inc/lang/ko/showrev.txt2
-rw-r--r--wiki/inc/lang/ko/stopwords.txt39
-rw-r--r--wiki/inc/lang/ko/subscr_digest.txt15
-rw-r--r--wiki/inc/lang/ko/subscr_form.txt3
-rw-r--r--wiki/inc/lang/ko/subscr_list.txt11
-rw-r--r--wiki/inc/lang/ko/subscr_single.txt17
-rw-r--r--wiki/inc/lang/ko/updateprofile.txt3
-rw-r--r--wiki/inc/lang/ko/uploadmail.txt11
-rw-r--r--wiki/inc/lang/ku/backlinks.txt4
-rw-r--r--wiki/inc/lang/ku/conflict.txt6
-rw-r--r--wiki/inc/lang/ku/diff.txt4
-rw-r--r--wiki/inc/lang/ku/edit.txt2
-rw-r--r--wiki/inc/lang/ku/index.txt3
-rw-r--r--wiki/inc/lang/ku/lang.php45
-rw-r--r--wiki/inc/lang/ku/newpage.txt3
-rw-r--r--wiki/inc/lang/ku/preview.txt3
-rw-r--r--wiki/inc/lang/ku/recent.txt3
-rw-r--r--wiki/inc/lang/ku/searchpage.txt4
-rw-r--r--wiki/inc/lang/la/admin.txt3
-rw-r--r--wiki/inc/lang/la/adminplugins.txt1
-rw-r--r--wiki/inc/lang/la/backlinks.txt3
-rw-r--r--wiki/inc/lang/la/conflict.txt5
-rw-r--r--wiki/inc/lang/la/denied.txt4
-rw-r--r--wiki/inc/lang/la/diff.txt3
-rw-r--r--wiki/inc/lang/la/draft.txt5
-rw-r--r--wiki/inc/lang/la/edit.txt1
-rw-r--r--wiki/inc/lang/la/editrev.txt2
-rw-r--r--wiki/inc/lang/la/index.txt3
-rw-r--r--wiki/inc/lang/la/install.html8
-rw-r--r--wiki/inc/lang/la/lang.php261
-rw-r--r--wiki/inc/lang/la/locked.txt3
-rw-r--r--wiki/inc/lang/la/login.txt3
-rw-r--r--wiki/inc/lang/la/mailtext.txt11
-rw-r--r--wiki/inc/lang/la/newpage.txt3
-rw-r--r--wiki/inc/lang/la/norev.txt3
-rw-r--r--wiki/inc/lang/la/password.txt6
-rw-r--r--wiki/inc/lang/la/preview.txt3
-rw-r--r--wiki/inc/lang/la/pwconfirm.txt10
-rw-r--r--wiki/inc/lang/la/read.txt1
-rw-r--r--wiki/inc/lang/la/recent.txt3
-rw-r--r--wiki/inc/lang/la/register.txt3
-rw-r--r--wiki/inc/lang/la/registermail.txt10
-rw-r--r--wiki/inc/lang/la/resendpwd.txt3
-rw-r--r--wiki/inc/lang/la/revisions.txt3
-rw-r--r--wiki/inc/lang/la/searchpage.txt4
-rw-r--r--wiki/inc/lang/la/showrev.txt2
-rw-r--r--wiki/inc/lang/la/stopwords.txt37
-rw-r--r--wiki/inc/lang/la/subscr_digest.txt16
-rw-r--r--wiki/inc/lang/la/subscr_form.txt3
-rw-r--r--wiki/inc/lang/la/subscr_list.txt13
-rw-r--r--wiki/inc/lang/la/subscr_single.txt19
-rw-r--r--wiki/inc/lang/la/updateprofile.txt3
-rw-r--r--wiki/inc/lang/la/uploadmail.txt10
-rw-r--r--wiki/inc/lang/lb/admin.txt3
-rw-r--r--wiki/inc/lang/lb/adminplugins.txt1
-rw-r--r--wiki/inc/lang/lb/backlinks.txt3
-rw-r--r--wiki/inc/lang/lb/conflict.txt5
-rw-r--r--wiki/inc/lang/lb/denied.txt4
-rw-r--r--wiki/inc/lang/lb/diff.txt3
-rw-r--r--wiki/inc/lang/lb/draft.txt5
-rw-r--r--wiki/inc/lang/lb/edit.txt1
-rw-r--r--wiki/inc/lang/lb/editrev.txt2
-rw-r--r--wiki/inc/lang/lb/index.txt3
-rw-r--r--wiki/inc/lang/lb/jquery.ui.datepicker.js45
-rw-r--r--wiki/inc/lang/lb/lang.php195
-rw-r--r--wiki/inc/lang/lb/locked.txt3
-rw-r--r--wiki/inc/lang/lb/login.txt3
-rw-r--r--wiki/inc/lang/lb/mailtext.txt12
-rw-r--r--wiki/inc/lang/lb/newpage.txt4
-rw-r--r--wiki/inc/lang/lb/norev.txt3
-rw-r--r--wiki/inc/lang/lb/password.txt6
-rw-r--r--wiki/inc/lang/lb/preview.txt3
-rw-r--r--wiki/inc/lang/lb/pwconfirm.txt11
-rw-r--r--wiki/inc/lang/lb/read.txt1
-rw-r--r--wiki/inc/lang/lb/recent.txt4
-rw-r--r--wiki/inc/lang/lb/register.txt4
-rw-r--r--wiki/inc/lang/lb/registermail.txt10
-rw-r--r--wiki/inc/lang/lb/resendpwd.txt3
-rw-r--r--wiki/inc/lang/lb/revisions.txt3
-rw-r--r--wiki/inc/lang/lb/searchpage.txt4
-rw-r--r--wiki/inc/lang/lb/showrev.txt2
-rw-r--r--wiki/inc/lang/lb/updateprofile.txt4
-rw-r--r--wiki/inc/lang/lb/uploadmail.txt10
-rw-r--r--wiki/inc/lang/lt/admin.txt4
-rw-r--r--wiki/inc/lang/lt/backlinks.txt4
-rw-r--r--wiki/inc/lang/lt/conflict.txt6
-rw-r--r--wiki/inc/lang/lt/denied.txt4
-rw-r--r--wiki/inc/lang/lt/diff.txt4
-rw-r--r--wiki/inc/lang/lt/edit.txt2
-rw-r--r--wiki/inc/lang/lt/editrev.txt2
-rw-r--r--wiki/inc/lang/lt/index.txt4
-rw-r--r--wiki/inc/lang/lt/jquery.ui.datepicker.js45
-rw-r--r--wiki/inc/lang/lt/lang.php183
-rw-r--r--wiki/inc/lang/lt/locked.txt3
-rw-r--r--wiki/inc/lang/lt/login.txt5
-rw-r--r--wiki/inc/lang/lt/mailtext.txt14
-rw-r--r--wiki/inc/lang/lt/newpage.txt4
-rw-r--r--wiki/inc/lang/lt/norev.txt5
-rw-r--r--wiki/inc/lang/lt/password.txt6
-rw-r--r--wiki/inc/lang/lt/preview.txt5
-rw-r--r--wiki/inc/lang/lt/read.txt3
-rw-r--r--wiki/inc/lang/lt/recent.txt5
-rw-r--r--wiki/inc/lang/lt/register.txt4
-rw-r--r--wiki/inc/lang/lt/resendpwd.txt3
-rw-r--r--wiki/inc/lang/lt/revisions.txt4
-rw-r--r--wiki/inc/lang/lt/searchpage.txt4
-rw-r--r--wiki/inc/lang/lt/showrev.txt2
-rw-r--r--wiki/inc/lang/lt/updateprofile.txt4
-rw-r--r--wiki/inc/lang/lv/admin.txt6
-rw-r--r--wiki/inc/lang/lv/adminplugins.txt1
-rw-r--r--wiki/inc/lang/lv/backlinks.txt5
-rw-r--r--wiki/inc/lang/lv/conflict.txt8
-rw-r--r--wiki/inc/lang/lv/denied.txt4
-rw-r--r--wiki/inc/lang/lv/diff.txt7
-rw-r--r--wiki/inc/lang/lv/draft.txt5
-rw-r--r--wiki/inc/lang/lv/edit.txt2
-rw-r--r--wiki/inc/lang/lv/editrev.txt1
-rw-r--r--wiki/inc/lang/lv/index.txt4
-rw-r--r--wiki/inc/lang/lv/install.html12
-rw-r--r--wiki/inc/lang/lv/jquery.ui.datepicker.js45
-rw-r--r--wiki/inc/lang/lv/lang.php339
-rw-r--r--wiki/inc/lang/lv/locked.txt5
-rw-r--r--wiki/inc/lang/lv/login.txt3
-rw-r--r--wiki/inc/lang/lv/mailtext.txt12
-rw-r--r--wiki/inc/lang/lv/mailwrap.html13
-rw-r--r--wiki/inc/lang/lv/newpage.txt5
-rw-r--r--wiki/inc/lang/lv/norev.txt5
-rw-r--r--wiki/inc/lang/lv/password.txt6
-rw-r--r--wiki/inc/lang/lv/preview.txt5
-rw-r--r--wiki/inc/lang/lv/pwconfirm.txt10
-rw-r--r--wiki/inc/lang/lv/read.txt4
-rw-r--r--wiki/inc/lang/lv/recent.txt8
-rw-r--r--wiki/inc/lang/lv/register.txt4
-rw-r--r--wiki/inc/lang/lv/registermail.txt10
-rw-r--r--wiki/inc/lang/lv/resendpwd.txt3
-rw-r--r--wiki/inc/lang/lv/resetpwd.txt3
-rw-r--r--wiki/inc/lang/lv/revisions.txt5
-rw-r--r--wiki/inc/lang/lv/searchpage.txt4
-rw-r--r--wiki/inc/lang/lv/showrev.txt2
-rw-r--r--wiki/inc/lang/lv/stopwords.txt48
-rw-r--r--wiki/inc/lang/lv/subscr_digest.txt15
-rw-r--r--wiki/inc/lang/lv/subscr_form.txt3
-rw-r--r--wiki/inc/lang/lv/subscr_list.txt12
-rw-r--r--wiki/inc/lang/lv/subscr_single.txt19
-rw-r--r--wiki/inc/lang/lv/updateprofile.txt8
-rw-r--r--wiki/inc/lang/lv/uploadmail.txt10
-rw-r--r--wiki/inc/lang/mg/admin.txt4
-rw-r--r--wiki/inc/lang/mg/backlinks.txt5
-rw-r--r--wiki/inc/lang/mg/conflict.txt6
-rw-r--r--wiki/inc/lang/mg/denied.txt4
-rw-r--r--wiki/inc/lang/mg/diff.txt4
-rw-r--r--wiki/inc/lang/mg/edit.txt2
-rw-r--r--wiki/inc/lang/mg/editrev.txt2
-rw-r--r--wiki/inc/lang/mg/index.txt4
-rw-r--r--wiki/inc/lang/mg/lang.php119
-rw-r--r--wiki/inc/lang/mg/locked.txt4
-rw-r--r--wiki/inc/lang/mg/login.txt4
-rw-r--r--wiki/inc/lang/mg/mailtext.txt12
-rw-r--r--wiki/inc/lang/mg/newpage.txt3
-rw-r--r--wiki/inc/lang/mg/norev.txt4
-rw-r--r--wiki/inc/lang/mg/password.txt6
-rw-r--r--wiki/inc/lang/mg/preview.txt5
-rw-r--r--wiki/inc/lang/mg/read.txt3
-rw-r--r--wiki/inc/lang/mg/recent.txt5
-rw-r--r--wiki/inc/lang/mg/register.txt5
-rw-r--r--wiki/inc/lang/mg/revisions.txt5
-rw-r--r--wiki/inc/lang/mg/searchpage.txt4
-rw-r--r--wiki/inc/lang/mg/showrev.txt2
-rw-r--r--wiki/inc/lang/mk/adminplugins.txt1
-rw-r--r--wiki/inc/lang/mk/jquery.ui.datepicker.js37
-rw-r--r--wiki/inc/lang/mk/lang.php226
-rw-r--r--wiki/inc/lang/mk/read.txt1
-rw-r--r--wiki/inc/lang/mk/recent.txt3
-rw-r--r--wiki/inc/lang/mk/showrev.txt2
-rw-r--r--wiki/inc/lang/ml/admin.txt3
-rw-r--r--wiki/inc/lang/ml/jquery.ui.datepicker.js37
-rw-r--r--wiki/inc/lang/mr/admin.txt3
-rw-r--r--wiki/inc/lang/mr/backlinks.txt3
-rw-r--r--wiki/inc/lang/mr/conflict.txt5
-rw-r--r--wiki/inc/lang/mr/denied.txt4
-rw-r--r--wiki/inc/lang/mr/diff.txt3
-rw-r--r--wiki/inc/lang/mr/draft.txt5
-rw-r--r--wiki/inc/lang/mr/edit.txt1
-rw-r--r--wiki/inc/lang/mr/editrev.txt2
-rw-r--r--wiki/inc/lang/mr/index.txt3
-rw-r--r--wiki/inc/lang/mr/install.html10
-rw-r--r--wiki/inc/lang/mr/lang.php265
-rw-r--r--wiki/inc/lang/mr/locked.txt3
-rw-r--r--wiki/inc/lang/mr/login.txt3
-rw-r--r--wiki/inc/lang/mr/mailtext.txt12
-rw-r--r--wiki/inc/lang/mr/newpage.txt3
-rw-r--r--wiki/inc/lang/mr/norev.txt3
-rw-r--r--wiki/inc/lang/mr/password.txt6
-rw-r--r--wiki/inc/lang/mr/preview.txt3
-rw-r--r--wiki/inc/lang/mr/pwconfirm.txt8
-rw-r--r--wiki/inc/lang/mr/read.txt1
-rw-r--r--wiki/inc/lang/mr/recent.txt3
-rw-r--r--wiki/inc/lang/mr/register.txt3
-rw-r--r--wiki/inc/lang/mr/registermail.txt10
-rw-r--r--wiki/inc/lang/mr/resendpwd.txt3
-rw-r--r--wiki/inc/lang/mr/revisions.txt3
-rw-r--r--wiki/inc/lang/mr/searchpage.txt4
-rw-r--r--wiki/inc/lang/mr/showrev.txt2
-rw-r--r--wiki/inc/lang/mr/stopwords.txt39
-rw-r--r--wiki/inc/lang/mr/updateprofile.txt3
-rw-r--r--wiki/inc/lang/mr/uploadmail.txt10
-rw-r--r--wiki/inc/lang/ms/jquery.ui.datepicker.js37
-rw-r--r--wiki/inc/lang/ms/lang.php95
-rw-r--r--wiki/inc/lang/ne/admin.txt2
-rw-r--r--wiki/inc/lang/ne/adminplugins.txt1
-rw-r--r--wiki/inc/lang/ne/backlinks.txt2
-rw-r--r--wiki/inc/lang/ne/conflict.txt5
-rw-r--r--wiki/inc/lang/ne/denied.txt4
-rw-r--r--wiki/inc/lang/ne/diff.txt3
-rw-r--r--wiki/inc/lang/ne/draft.txt5
-rw-r--r--wiki/inc/lang/ne/edit.txt1
-rw-r--r--wiki/inc/lang/ne/editrev.txt2
-rw-r--r--wiki/inc/lang/ne/index.txt3
-rw-r--r--wiki/inc/lang/ne/lang.php204
-rw-r--r--wiki/inc/lang/ne/locked.txt3
-rw-r--r--wiki/inc/lang/ne/norev.txt2
-rw-r--r--wiki/inc/lang/ne/pwconfirm.txt9
-rw-r--r--wiki/inc/lang/ne/read.txt1
-rw-r--r--wiki/inc/lang/ne/recent.txt2
-rw-r--r--wiki/inc/lang/ne/resendpwd.txt3
-rw-r--r--wiki/inc/lang/ne/searchpage.txt4
-rw-r--r--wiki/inc/lang/ne/showrev.txt2
-rw-r--r--wiki/inc/lang/ne/updateprofile.txt3
-rw-r--r--wiki/inc/lang/ne/uploadmail.txt9
-rw-r--r--wiki/inc/lang/nl/admin.txt3
-rw-r--r--wiki/inc/lang/nl/adminplugins.txt1
-rw-r--r--wiki/inc/lang/nl/backlinks.txt4
-rw-r--r--wiki/inc/lang/nl/conflict.txt5
-rw-r--r--wiki/inc/lang/nl/denied.txt4
-rw-r--r--wiki/inc/lang/nl/diff.txt3
-rw-r--r--wiki/inc/lang/nl/draft.txt5
-rw-r--r--wiki/inc/lang/nl/edit.txt1
-rw-r--r--wiki/inc/lang/nl/editrev.txt2
-rw-r--r--wiki/inc/lang/nl/index.txt4
-rw-r--r--wiki/inc/lang/nl/install.html14
-rw-r--r--wiki/inc/lang/nl/jquery.ui.datepicker.js37
-rw-r--r--wiki/inc/lang/nl/lang.php381
-rw-r--r--wiki/inc/lang/nl/locked.txt3
-rw-r--r--wiki/inc/lang/nl/login.txt3
-rw-r--r--wiki/inc/lang/nl/mailtext.txt12
-rw-r--r--wiki/inc/lang/nl/mailwrap.html13
-rw-r--r--wiki/inc/lang/nl/newpage.txt3
-rw-r--r--wiki/inc/lang/nl/norev.txt4
-rw-r--r--wiki/inc/lang/nl/password.txt6
-rw-r--r--wiki/inc/lang/nl/preview.txt4
-rw-r--r--wiki/inc/lang/nl/pwconfirm.txt9
-rw-r--r--wiki/inc/lang/nl/read.txt2
-rw-r--r--wiki/inc/lang/nl/recent.txt3
-rw-r--r--wiki/inc/lang/nl/register.txt4
-rw-r--r--wiki/inc/lang/nl/registermail.txt10
-rw-r--r--wiki/inc/lang/nl/resendpwd.txt3
-rw-r--r--wiki/inc/lang/nl/resetpwd.txt3
-rw-r--r--wiki/inc/lang/nl/revisions.txt4
-rw-r--r--wiki/inc/lang/nl/searchpage.txt4
-rw-r--r--wiki/inc/lang/nl/showrev.txt2
-rw-r--r--wiki/inc/lang/nl/stopwords.txt37
-rw-r--r--wiki/inc/lang/nl/subscr_digest.txt12
-rw-r--r--wiki/inc/lang/nl/subscr_form.txt3
-rw-r--r--wiki/inc/lang/nl/subscr_list.txt9
-rw-r--r--wiki/inc/lang/nl/subscr_single.txt16
-rw-r--r--wiki/inc/lang/nl/updateprofile.txt3
-rw-r--r--wiki/inc/lang/nl/uploadmail.txt11
-rw-r--r--wiki/inc/lang/no/admin.txt3
-rw-r--r--wiki/inc/lang/no/adminplugins.txt1
-rw-r--r--wiki/inc/lang/no/backlinks.txt3
-rw-r--r--wiki/inc/lang/no/conflict.txt6
-rw-r--r--wiki/inc/lang/no/denied.txt4
-rw-r--r--wiki/inc/lang/no/diff.txt4
-rw-r--r--wiki/inc/lang/no/draft.txt6
-rw-r--r--wiki/inc/lang/no/edit.txt2
-rw-r--r--wiki/inc/lang/no/editrev.txt2
-rw-r--r--wiki/inc/lang/no/index.txt4
-rw-r--r--wiki/inc/lang/no/install.html24
-rw-r--r--wiki/inc/lang/no/jquery.ui.datepicker.js50
-rw-r--r--wiki/inc/lang/no/lang.php366
-rw-r--r--wiki/inc/lang/no/locked.txt3
-rw-r--r--wiki/inc/lang/no/login.txt4
-rw-r--r--wiki/inc/lang/no/mailtext.txt12
-rw-r--r--wiki/inc/lang/no/newpage.txt3
-rw-r--r--wiki/inc/lang/no/norev.txt4
-rw-r--r--wiki/inc/lang/no/password.txt6
-rw-r--r--wiki/inc/lang/no/preview.txt4
-rw-r--r--wiki/inc/lang/no/pwconfirm.txt11
-rw-r--r--wiki/inc/lang/no/read.txt2
-rw-r--r--wiki/inc/lang/no/recent.txt5
-rw-r--r--wiki/inc/lang/no/register.txt4
-rw-r--r--wiki/inc/lang/no/registermail.txt10
-rw-r--r--wiki/inc/lang/no/resendpwd.txt4
-rw-r--r--wiki/inc/lang/no/resetpwd.txt3
-rw-r--r--wiki/inc/lang/no/revisions.txt4
-rw-r--r--wiki/inc/lang/no/searchpage.txt4
-rw-r--r--wiki/inc/lang/no/showrev.txt2
-rw-r--r--wiki/inc/lang/no/stopwords.txt68
-rw-r--r--wiki/inc/lang/no/subscr_digest.txt16
-rw-r--r--wiki/inc/lang/no/subscr_form.txt3
-rw-r--r--wiki/inc/lang/no/subscr_list.txt13
-rw-r--r--wiki/inc/lang/no/subscr_single.txt19
-rw-r--r--wiki/inc/lang/no/updateprofile.txt5
-rw-r--r--wiki/inc/lang/no/uploadmail.txt11
-rw-r--r--wiki/inc/lang/pl/admin.txt4
-rw-r--r--wiki/inc/lang/pl/adminplugins.txt1
-rw-r--r--wiki/inc/lang/pl/backlinks.txt4
-rw-r--r--wiki/inc/lang/pl/conflict.txt6
-rw-r--r--wiki/inc/lang/pl/denied.txt4
-rw-r--r--wiki/inc/lang/pl/diff.txt4
-rw-r--r--wiki/inc/lang/pl/draft.txt6
-rw-r--r--wiki/inc/lang/pl/edit.txt4
-rw-r--r--wiki/inc/lang/pl/editrev.txt2
-rw-r--r--wiki/inc/lang/pl/index.txt4
-rw-r--r--wiki/inc/lang/pl/install.html23
-rw-r--r--wiki/inc/lang/pl/jquery.ui.datepicker.js37
-rw-r--r--wiki/inc/lang/pl/lang.php358
-rw-r--r--wiki/inc/lang/pl/locked.txt3
-rw-r--r--wiki/inc/lang/pl/login.txt4
-rw-r--r--wiki/inc/lang/pl/mailtext.txt13
-rw-r--r--wiki/inc/lang/pl/mailwrap.html13
-rw-r--r--wiki/inc/lang/pl/newpage.txt4
-rw-r--r--wiki/inc/lang/pl/norev.txt4
-rw-r--r--wiki/inc/lang/pl/password.txt6
-rw-r--r--wiki/inc/lang/pl/preview.txt4
-rw-r--r--wiki/inc/lang/pl/pwconfirm.txt9
-rw-r--r--wiki/inc/lang/pl/read.txt2
-rw-r--r--wiki/inc/lang/pl/recent.txt5
-rw-r--r--wiki/inc/lang/pl/register.txt4
-rw-r--r--wiki/inc/lang/pl/registermail.txt11
-rw-r--r--wiki/inc/lang/pl/resendpwd.txt4
-rw-r--r--wiki/inc/lang/pl/resetpwd.txt3
-rw-r--r--wiki/inc/lang/pl/revisions.txt4
-rw-r--r--wiki/inc/lang/pl/searchpage.txt4
-rw-r--r--wiki/inc/lang/pl/showrev.txt2
-rw-r--r--wiki/inc/lang/pl/stopwords.txt89
-rw-r--r--wiki/inc/lang/pl/subscr_digest.txt17
-rw-r--r--wiki/inc/lang/pl/subscr_form.txt3
-rw-r--r--wiki/inc/lang/pl/subscr_list.txt14
-rw-r--r--wiki/inc/lang/pl/subscr_single.txt20
-rw-r--r--wiki/inc/lang/pl/updateprofile.txt5
-rw-r--r--wiki/inc/lang/pl/uploadmail.txt12
-rw-r--r--wiki/inc/lang/pt-br/admin.txt4
-rw-r--r--wiki/inc/lang/pt-br/adminplugins.txt1
-rw-r--r--wiki/inc/lang/pt-br/backlinks.txt4
-rw-r--r--wiki/inc/lang/pt-br/conflict.txt5
-rw-r--r--wiki/inc/lang/pt-br/denied.txt4
-rw-r--r--wiki/inc/lang/pt-br/diff.txt3
-rw-r--r--wiki/inc/lang/pt-br/draft.txt5
-rw-r--r--wiki/inc/lang/pt-br/edit.txt2
-rw-r--r--wiki/inc/lang/pt-br/editrev.txt4
-rw-r--r--wiki/inc/lang/pt-br/index.txt3
-rw-r--r--wiki/inc/lang/pt-br/install.html7
-rw-r--r--wiki/inc/lang/pt-br/jquery.ui.datepicker.js45
-rw-r--r--wiki/inc/lang/pt-br/lang.php361
-rw-r--r--wiki/inc/lang/pt-br/locked.txt3
-rw-r--r--wiki/inc/lang/pt-br/login.txt3
-rw-r--r--wiki/inc/lang/pt-br/mailtext.txt12
-rw-r--r--wiki/inc/lang/pt-br/mailwrap.html13
-rw-r--r--wiki/inc/lang/pt-br/newpage.txt3
-rw-r--r--wiki/inc/lang/pt-br/norev.txt3
-rw-r--r--wiki/inc/lang/pt-br/password.txt6
-rw-r--r--wiki/inc/lang/pt-br/preview.txt3
-rw-r--r--wiki/inc/lang/pt-br/pwconfirm.txt9
-rw-r--r--wiki/inc/lang/pt-br/read.txt1
-rw-r--r--wiki/inc/lang/pt-br/recent.txt4
-rw-r--r--wiki/inc/lang/pt-br/register.txt4
-rw-r--r--wiki/inc/lang/pt-br/registermail.txt10
-rw-r--r--wiki/inc/lang/pt-br/resendpwd.txt3
-rw-r--r--wiki/inc/lang/pt-br/resetpwd.txt3
-rw-r--r--wiki/inc/lang/pt-br/revisions.txt4
-rw-r--r--wiki/inc/lang/pt-br/searchpage.txt4
-rw-r--r--wiki/inc/lang/pt-br/showrev.txt2
-rw-r--r--wiki/inc/lang/pt-br/stopwords.txt55
-rw-r--r--wiki/inc/lang/pt-br/subscr_digest.txt16
-rw-r--r--wiki/inc/lang/pt-br/subscr_form.txt3
-rw-r--r--wiki/inc/lang/pt-br/subscr_list.txt26
-rw-r--r--wiki/inc/lang/pt-br/subscr_single.txt19
-rw-r--r--wiki/inc/lang/pt-br/updateprofile.txt5
-rw-r--r--wiki/inc/lang/pt-br/uploadmail.txt10
-rw-r--r--wiki/inc/lang/pt/admin.txt3
-rw-r--r--wiki/inc/lang/pt/adminplugins.txt1
-rw-r--r--wiki/inc/lang/pt/backlinks.txt4
-rw-r--r--wiki/inc/lang/pt/conflict.txt5
-rw-r--r--wiki/inc/lang/pt/denied.txt4
-rw-r--r--wiki/inc/lang/pt/diff.txt3
-rw-r--r--wiki/inc/lang/pt/draft.txt7
-rw-r--r--wiki/inc/lang/pt/edit.txt4
-rw-r--r--wiki/inc/lang/pt/editrev.txt1
-rw-r--r--wiki/inc/lang/pt/index.txt3
-rw-r--r--wiki/inc/lang/pt/install.html8
-rw-r--r--wiki/inc/lang/pt/jquery.ui.datepicker.js44
-rw-r--r--wiki/inc/lang/pt/lang.php350
-rw-r--r--wiki/inc/lang/pt/locked.txt3
-rw-r--r--wiki/inc/lang/pt/login.txt3
-rw-r--r--wiki/inc/lang/pt/mailtext.txt14
-rw-r--r--wiki/inc/lang/pt/newpage.txt3
-rw-r--r--wiki/inc/lang/pt/norev.txt7
-rw-r--r--wiki/inc/lang/pt/password.txt6
-rw-r--r--wiki/inc/lang/pt/preview.txt3
-rw-r--r--wiki/inc/lang/pt/pwconfirm.txt9
-rw-r--r--wiki/inc/lang/pt/read.txt1
-rw-r--r--wiki/inc/lang/pt/recent.txt3
-rw-r--r--wiki/inc/lang/pt/register.txt3
-rw-r--r--wiki/inc/lang/pt/registermail.txt10
-rw-r--r--wiki/inc/lang/pt/resendpwd.txt3
-rw-r--r--wiki/inc/lang/pt/resetpwd.txt3
-rw-r--r--wiki/inc/lang/pt/revisions.txt3
-rw-r--r--wiki/inc/lang/pt/searchpage.txt4
-rw-r--r--wiki/inc/lang/pt/showrev.txt1
-rw-r--r--wiki/inc/lang/pt/stopwords.txt141
-rw-r--r--wiki/inc/lang/pt/subscr_digest.txt16
-rw-r--r--wiki/inc/lang/pt/subscr_form.txt3
-rw-r--r--wiki/inc/lang/pt/subscr_list.txt13
-rw-r--r--wiki/inc/lang/pt/subscr_single.txt19
-rw-r--r--wiki/inc/lang/pt/updateprofile.txt3
-rw-r--r--wiki/inc/lang/pt/uploadmail.txt11
-rw-r--r--wiki/inc/lang/ro/admin.txt3
-rw-r--r--wiki/inc/lang/ro/adminplugins.txt1
-rw-r--r--wiki/inc/lang/ro/backlinks.txt3
-rw-r--r--wiki/inc/lang/ro/conflict.txt7
-rw-r--r--wiki/inc/lang/ro/denied.txt4
-rw-r--r--wiki/inc/lang/ro/diff.txt3
-rw-r--r--wiki/inc/lang/ro/draft.txt8
-rw-r--r--wiki/inc/lang/ro/edit.txt1
-rw-r--r--wiki/inc/lang/ro/editrev.txt3
-rw-r--r--wiki/inc/lang/ro/index.txt4
-rw-r--r--wiki/inc/lang/ro/install.html10
-rw-r--r--wiki/inc/lang/ro/jquery.ui.datepicker.js40
-rw-r--r--wiki/inc/lang/ro/lang.php338
-rw-r--r--wiki/inc/lang/ro/locked.txt4
-rw-r--r--wiki/inc/lang/ro/login.txt4
-rw-r--r--wiki/inc/lang/ro/mailtext.txt13
-rw-r--r--wiki/inc/lang/ro/newpage.txt3
-rw-r--r--wiki/inc/lang/ro/norev.txt4
-rw-r--r--wiki/inc/lang/ro/password.txt6
-rw-r--r--wiki/inc/lang/ro/preview.txt3
-rw-r--r--wiki/inc/lang/ro/pwconfirm.txt10
-rw-r--r--wiki/inc/lang/ro/read.txt2
-rw-r--r--wiki/inc/lang/ro/recent.txt3
-rw-r--r--wiki/inc/lang/ro/register.txt4
-rw-r--r--wiki/inc/lang/ro/registermail.txt11
-rw-r--r--wiki/inc/lang/ro/resendpwd.txt5
-rw-r--r--wiki/inc/lang/ro/resetpwd.txt3
-rw-r--r--wiki/inc/lang/ro/revisions.txt5
-rw-r--r--wiki/inc/lang/ro/searchpage.txt4
-rw-r--r--wiki/inc/lang/ro/showrev.txt2
-rw-r--r--wiki/inc/lang/ro/stopwords.txt31
-rw-r--r--wiki/inc/lang/ro/subscr_digest.txt16
-rw-r--r--wiki/inc/lang/ro/subscr_form.txt4
-rw-r--r--wiki/inc/lang/ro/subscr_list.txt13
-rw-r--r--wiki/inc/lang/ro/subscr_single.txt19
-rw-r--r--wiki/inc/lang/ro/updateprofile.txt4
-rw-r--r--wiki/inc/lang/ro/uploadmail.txt12
-rw-r--r--wiki/inc/lang/ru/admin.txt4
-rw-r--r--wiki/inc/lang/ru/adminplugins.txt1
-rw-r--r--wiki/inc/lang/ru/backlinks.txt4
-rw-r--r--wiki/inc/lang/ru/conflict.txt5
-rw-r--r--wiki/inc/lang/ru/denied.txt4
-rw-r--r--wiki/inc/lang/ru/diff.txt3
-rw-r--r--wiki/inc/lang/ru/draft.txt5
-rw-r--r--wiki/inc/lang/ru/edit.txt1
-rw-r--r--wiki/inc/lang/ru/editrev.txt2
-rw-r--r--wiki/inc/lang/ru/index.txt4
-rw-r--r--wiki/inc/lang/ru/install.html7
-rw-r--r--wiki/inc/lang/ru/jquery.ui.datepicker.js37
-rw-r--r--wiki/inc/lang/ru/lang.php391
-rw-r--r--wiki/inc/lang/ru/locked.txt3
-rw-r--r--wiki/inc/lang/ru/login.txt4
-rw-r--r--wiki/inc/lang/ru/mailtext.txt12
-rw-r--r--wiki/inc/lang/ru/newpage.txt3
-rw-r--r--wiki/inc/lang/ru/norev.txt3
-rw-r--r--wiki/inc/lang/ru/password.txt6
-rw-r--r--wiki/inc/lang/ru/preview.txt4
-rw-r--r--wiki/inc/lang/ru/pwconfirm.txt9
-rw-r--r--wiki/inc/lang/ru/read.txt2
-rw-r--r--wiki/inc/lang/ru/recent.txt5
-rw-r--r--wiki/inc/lang/ru/register.txt3
-rw-r--r--wiki/inc/lang/ru/registermail.txt10
-rw-r--r--wiki/inc/lang/ru/resendpwd.txt3
-rw-r--r--wiki/inc/lang/ru/resetpwd.txt3
-rw-r--r--wiki/inc/lang/ru/revisions.txt3
-rw-r--r--wiki/inc/lang/ru/searchpage.txt4
-rw-r--r--wiki/inc/lang/ru/showrev.txt2
-rw-r--r--wiki/inc/lang/ru/stopwords.txt93
-rw-r--r--wiki/inc/lang/ru/subscr_digest.txt15
-rw-r--r--wiki/inc/lang/ru/subscr_form.txt3
-rw-r--r--wiki/inc/lang/ru/subscr_list.txt13
-rw-r--r--wiki/inc/lang/ru/subscr_single.txt19
-rw-r--r--wiki/inc/lang/ru/updateprofile.txt5
-rw-r--r--wiki/inc/lang/ru/uploadmail.txt11
-rw-r--r--wiki/inc/lang/ru/wordblock.txt3
-rw-r--r--wiki/inc/lang/sk/admin.txt5
-rw-r--r--wiki/inc/lang/sk/adminplugins.txt1
-rw-r--r--wiki/inc/lang/sk/backlinks.txt3
-rw-r--r--wiki/inc/lang/sk/conflict.txt5
-rw-r--r--wiki/inc/lang/sk/denied.txt4
-rw-r--r--wiki/inc/lang/sk/diff.txt4
-rw-r--r--wiki/inc/lang/sk/draft.txt6
-rw-r--r--wiki/inc/lang/sk/edit.txt1
-rw-r--r--wiki/inc/lang/sk/editrev.txt1
-rw-r--r--wiki/inc/lang/sk/index.txt3
-rw-r--r--wiki/inc/lang/sk/install.html23
-rw-r--r--wiki/inc/lang/sk/jquery.ui.datepicker.js37
-rw-r--r--wiki/inc/lang/sk/lang.php340
-rw-r--r--wiki/inc/lang/sk/locked.txt3
-rw-r--r--wiki/inc/lang/sk/login.txt3
-rw-r--r--wiki/inc/lang/sk/mailtext.txt12
-rw-r--r--wiki/inc/lang/sk/mailwrap.html13
-rw-r--r--wiki/inc/lang/sk/newpage.txt3
-rw-r--r--wiki/inc/lang/sk/norev.txt3
-rw-r--r--wiki/inc/lang/sk/password.txt7
-rw-r--r--wiki/inc/lang/sk/preview.txt3
-rw-r--r--wiki/inc/lang/sk/pwconfirm.txt11
-rw-r--r--wiki/inc/lang/sk/read.txt2
-rw-r--r--wiki/inc/lang/sk/recent.txt3
-rw-r--r--wiki/inc/lang/sk/register.txt3
-rw-r--r--wiki/inc/lang/sk/registermail.txt10
-rw-r--r--wiki/inc/lang/sk/resendpwd.txt3
-rw-r--r--wiki/inc/lang/sk/resetpwd.txt3
-rw-r--r--wiki/inc/lang/sk/revisions.txt3
-rw-r--r--wiki/inc/lang/sk/searchpage.txt4
-rw-r--r--wiki/inc/lang/sk/showrev.txt2
-rw-r--r--wiki/inc/lang/sk/stopwords.txt28
-rw-r--r--wiki/inc/lang/sk/subscr_digest.txt16
-rw-r--r--wiki/inc/lang/sk/subscr_form.txt3
-rw-r--r--wiki/inc/lang/sk/subscr_list.txt13
-rw-r--r--wiki/inc/lang/sk/subscr_single.txt19
-rw-r--r--wiki/inc/lang/sk/updateprofile.txt6
-rw-r--r--wiki/inc/lang/sk/uploadmail.txt10
-rw-r--r--wiki/inc/lang/sl/admin.txt3
-rw-r--r--wiki/inc/lang/sl/adminplugins.txt1
-rw-r--r--wiki/inc/lang/sl/backlinks.txt3
-rw-r--r--wiki/inc/lang/sl/conflict.txt5
-rw-r--r--wiki/inc/lang/sl/denied.txt4
-rw-r--r--wiki/inc/lang/sl/diff.txt3
-rw-r--r--wiki/inc/lang/sl/draft.txt5
-rw-r--r--wiki/inc/lang/sl/edit.txt1
-rw-r--r--wiki/inc/lang/sl/editrev.txt2
-rw-r--r--wiki/inc/lang/sl/index.txt4
-rw-r--r--wiki/inc/lang/sl/install.html20
-rw-r--r--wiki/inc/lang/sl/jquery.ui.datepicker.js38
-rw-r--r--wiki/inc/lang/sl/lang.php334
-rw-r--r--wiki/inc/lang/sl/locked.txt3
-rw-r--r--wiki/inc/lang/sl/login.txt3
-rw-r--r--wiki/inc/lang/sl/mailtext.txt12
-rw-r--r--wiki/inc/lang/sl/newpage.txt3
-rw-r--r--wiki/inc/lang/sl/norev.txt3
-rw-r--r--wiki/inc/lang/sl/password.txt6
-rw-r--r--wiki/inc/lang/sl/preview.txt3
-rw-r--r--wiki/inc/lang/sl/pwconfirm.txt8
-rw-r--r--wiki/inc/lang/sl/read.txt2
-rw-r--r--wiki/inc/lang/sl/recent.txt3
-rw-r--r--wiki/inc/lang/sl/register.txt3
-rw-r--r--wiki/inc/lang/sl/registermail.txt11
-rw-r--r--wiki/inc/lang/sl/resendpwd.txt3
-rw-r--r--wiki/inc/lang/sl/resetpwd.txt1
-rw-r--r--wiki/inc/lang/sl/revisions.txt3
-rw-r--r--wiki/inc/lang/sl/searchpage.txt4
-rw-r--r--wiki/inc/lang/sl/showrev.txt2
-rw-r--r--wiki/inc/lang/sl/stopwords.txt18
-rw-r--r--wiki/inc/lang/sl/subscr_digest.txt16
-rw-r--r--wiki/inc/lang/sl/subscr_form.txt3
-rw-r--r--wiki/inc/lang/sl/subscr_list.txt13
-rw-r--r--wiki/inc/lang/sl/subscr_single.txt19
-rw-r--r--wiki/inc/lang/sl/updateprofile.txt3
-rw-r--r--wiki/inc/lang/sl/uploadmail.txt11
-rw-r--r--wiki/inc/lang/sq/admin.txt3
-rw-r--r--wiki/inc/lang/sq/adminplugins.txt1
-rw-r--r--wiki/inc/lang/sq/backlinks.txt3
-rw-r--r--wiki/inc/lang/sq/conflict.txt5
-rw-r--r--wiki/inc/lang/sq/denied.txt4
-rw-r--r--wiki/inc/lang/sq/diff.txt3
-rw-r--r--wiki/inc/lang/sq/draft.txt5
-rw-r--r--wiki/inc/lang/sq/edit.txt1
-rw-r--r--wiki/inc/lang/sq/editrev.txt2
-rw-r--r--wiki/inc/lang/sq/index.txt3
-rw-r--r--wiki/inc/lang/sq/install.html8
-rw-r--r--wiki/inc/lang/sq/jquery.ui.datepicker.js37
-rw-r--r--wiki/inc/lang/sq/lang.php236
-rw-r--r--wiki/inc/lang/sq/locked.txt3
-rw-r--r--wiki/inc/lang/sq/login.txt3
-rw-r--r--wiki/inc/lang/sq/mailtext.txt16
-rw-r--r--wiki/inc/lang/sq/newpage.txt3
-rw-r--r--wiki/inc/lang/sq/norev.txt3
-rw-r--r--wiki/inc/lang/sq/password.txt10
-rw-r--r--wiki/inc/lang/sq/preview.txt3
-rw-r--r--wiki/inc/lang/sq/pwconfirm.txt9
-rw-r--r--wiki/inc/lang/sq/read.txt1
-rw-r--r--wiki/inc/lang/sq/recent.txt3
-rw-r--r--wiki/inc/lang/sq/register.txt3
-rw-r--r--wiki/inc/lang/sq/registermail.txt10
-rw-r--r--wiki/inc/lang/sq/resendpwd.txt3
-rw-r--r--wiki/inc/lang/sq/revisions.txt3
-rw-r--r--wiki/inc/lang/sq/searchpage.txt4
-rw-r--r--wiki/inc/lang/sq/showrev.txt2
-rw-r--r--wiki/inc/lang/sq/stopwords.txt39
-rw-r--r--wiki/inc/lang/sq/subscr_digest.txt16
-rw-r--r--wiki/inc/lang/sq/subscr_form.txt3
-rw-r--r--wiki/inc/lang/sq/subscr_list.txt9
-rw-r--r--wiki/inc/lang/sq/subscr_single.txt19
-rw-r--r--wiki/inc/lang/sq/updateprofile.txt3
-rw-r--r--wiki/inc/lang/sq/uploadmail.txt10
-rw-r--r--wiki/inc/lang/sr/admin.txt4
-rw-r--r--wiki/inc/lang/sr/adminplugins.txt1
-rw-r--r--wiki/inc/lang/sr/backlinks.txt4
-rw-r--r--wiki/inc/lang/sr/conflict.txt6
-rw-r--r--wiki/inc/lang/sr/denied.txt4
-rw-r--r--wiki/inc/lang/sr/diff.txt4
-rw-r--r--wiki/inc/lang/sr/draft.txt5
-rw-r--r--wiki/inc/lang/sr/edit.txt2
-rw-r--r--wiki/inc/lang/sr/editrev.txt2
-rw-r--r--wiki/inc/lang/sr/index.txt4
-rw-r--r--wiki/inc/lang/sr/install.html12
-rw-r--r--wiki/inc/lang/sr/jquery.ui.datepicker.js37
-rw-r--r--wiki/inc/lang/sr/lang.php342
-rw-r--r--wiki/inc/lang/sr/locked.txt3
-rw-r--r--wiki/inc/lang/sr/login.txt4
-rw-r--r--wiki/inc/lang/sr/mailtext.txt12
-rw-r--r--wiki/inc/lang/sr/newpage.txt3
-rw-r--r--wiki/inc/lang/sr/norev.txt4
-rw-r--r--wiki/inc/lang/sr/password.txt6
-rw-r--r--wiki/inc/lang/sr/preview.txt4
-rw-r--r--wiki/inc/lang/sr/pwconfirm.txt9
-rw-r--r--wiki/inc/lang/sr/read.txt2
-rw-r--r--wiki/inc/lang/sr/recent.txt5
-rw-r--r--wiki/inc/lang/sr/register.txt4
-rw-r--r--wiki/inc/lang/sr/registermail.txt10
-rw-r--r--wiki/inc/lang/sr/resendpwd.txt3
-rw-r--r--wiki/inc/lang/sr/resetpwd.txt3
-rw-r--r--wiki/inc/lang/sr/revisions.txt4
-rw-r--r--wiki/inc/lang/sr/searchpage.txt4
-rw-r--r--wiki/inc/lang/sr/showrev.txt2
-rw-r--r--wiki/inc/lang/sr/stopwords.txt12
-rw-r--r--wiki/inc/lang/sr/subscr_digest.txt16
-rw-r--r--wiki/inc/lang/sr/subscr_form.txt3
-rw-r--r--wiki/inc/lang/sr/subscr_list.txt13
-rw-r--r--wiki/inc/lang/sr/subscr_single.txt19
-rw-r--r--wiki/inc/lang/sr/updateprofile.txt3
-rw-r--r--wiki/inc/lang/sr/uploadmail.txt10
-rw-r--r--wiki/inc/lang/sv/admin.txt4
-rw-r--r--wiki/inc/lang/sv/adminplugins.txt1
-rw-r--r--wiki/inc/lang/sv/backlinks.txt3
-rw-r--r--wiki/inc/lang/sv/conflict.txt6
-rw-r--r--wiki/inc/lang/sv/denied.txt4
-rw-r--r--wiki/inc/lang/sv/diff.txt4
-rw-r--r--wiki/inc/lang/sv/draft.txt6
-rw-r--r--wiki/inc/lang/sv/edit.txt2
-rw-r--r--wiki/inc/lang/sv/editrev.txt2
-rw-r--r--wiki/inc/lang/sv/index.txt4
-rw-r--r--wiki/inc/lang/sv/install.html25
-rw-r--r--wiki/inc/lang/sv/jquery.ui.datepicker.js37
-rw-r--r--wiki/inc/lang/sv/lang.php351
-rw-r--r--wiki/inc/lang/sv/locked.txt3
-rw-r--r--wiki/inc/lang/sv/login.txt4
-rw-r--r--wiki/inc/lang/sv/mailtext.txt12
-rw-r--r--wiki/inc/lang/sv/mailwrap.html13
-rw-r--r--wiki/inc/lang/sv/newpage.txt3
-rw-r--r--wiki/inc/lang/sv/norev.txt4
-rw-r--r--wiki/inc/lang/sv/password.txt6
-rw-r--r--wiki/inc/lang/sv/preview.txt4
-rw-r--r--wiki/inc/lang/sv/pwconfirm.txt12
-rw-r--r--wiki/inc/lang/sv/read.txt2
-rw-r--r--wiki/inc/lang/sv/recent.txt5
-rw-r--r--wiki/inc/lang/sv/register.txt4
-rw-r--r--wiki/inc/lang/sv/registermail.txt10
-rw-r--r--wiki/inc/lang/sv/resendpwd.txt4
-rw-r--r--wiki/inc/lang/sv/resetpwd.txt3
-rw-r--r--wiki/inc/lang/sv/revisions.txt4
-rw-r--r--wiki/inc/lang/sv/searchpage.txt4
-rw-r--r--wiki/inc/lang/sv/showrev.txt2
-rw-r--r--wiki/inc/lang/sv/stopwords.txt129
-rw-r--r--wiki/inc/lang/sv/subscr_digest.txt15
-rw-r--r--wiki/inc/lang/sv/subscr_form.txt3
-rw-r--r--wiki/inc/lang/sv/subscr_list.txt9
-rw-r--r--wiki/inc/lang/sv/subscr_single.txt19
-rw-r--r--wiki/inc/lang/sv/updateprofile.txt5
-rw-r--r--wiki/inc/lang/sv/uploadmail.txt10
-rw-r--r--wiki/inc/lang/ta/admin.txt3
-rw-r--r--wiki/inc/lang/ta/adminplugins.txt1
-rw-r--r--wiki/inc/lang/ta/backlinks.txt3
-rw-r--r--wiki/inc/lang/ta/conflict.txt3
-rw-r--r--wiki/inc/lang/ta/denied.txt1
-rw-r--r--wiki/inc/lang/ta/diff.txt3
-rw-r--r--wiki/inc/lang/ta/draft.txt1
-rw-r--r--wiki/inc/lang/ta/edit.txt1
-rw-r--r--wiki/inc/lang/ta/jquery.ui.datepicker.js53
-rw-r--r--wiki/inc/lang/ta/lang.php55
-rw-r--r--wiki/inc/lang/th/admin.txt3
-rw-r--r--wiki/inc/lang/th/adminplugins.txt1
-rw-r--r--wiki/inc/lang/th/backlinks.txt3
-rw-r--r--wiki/inc/lang/th/conflict.txt5
-rw-r--r--wiki/inc/lang/th/denied.txt4
-rw-r--r--wiki/inc/lang/th/diff.txt3
-rw-r--r--wiki/inc/lang/th/draft.txt5
-rw-r--r--wiki/inc/lang/th/edit.txt1
-rw-r--r--wiki/inc/lang/th/editrev.txt2
-rw-r--r--wiki/inc/lang/th/index.txt2
-rw-r--r--wiki/inc/lang/th/jquery.ui.datepicker.js37
-rw-r--r--wiki/inc/lang/th/lang.php245
-rw-r--r--wiki/inc/lang/th/locked.txt3
-rw-r--r--wiki/inc/lang/th/login.txt4
-rw-r--r--wiki/inc/lang/th/mailtext.txt12
-rw-r--r--wiki/inc/lang/th/newpage.txt3
-rw-r--r--wiki/inc/lang/th/norev.txt3
-rw-r--r--wiki/inc/lang/th/password.txt6
-rw-r--r--wiki/inc/lang/th/preview.txt3
-rw-r--r--wiki/inc/lang/th/pwconfirm.txt10
-rw-r--r--wiki/inc/lang/th/read.txt1
-rw-r--r--wiki/inc/lang/th/recent.txt3
-rw-r--r--wiki/inc/lang/th/register.txt3
-rw-r--r--wiki/inc/lang/th/registermail.txt10
-rw-r--r--wiki/inc/lang/th/resendpwd.txt3
-rw-r--r--wiki/inc/lang/th/revisions.txt3
-rw-r--r--wiki/inc/lang/th/searchpage.txt4
-rw-r--r--wiki/inc/lang/th/showrev.txt2
-rw-r--r--wiki/inc/lang/th/updateprofile.txt3
-rw-r--r--wiki/inc/lang/th/uploadmail.txt10
-rw-r--r--wiki/inc/lang/tr/admin.txt3
-rw-r--r--wiki/inc/lang/tr/adminplugins.txt1
-rw-r--r--wiki/inc/lang/tr/backlinks.txt4
-rw-r--r--wiki/inc/lang/tr/conflict.txt6
-rw-r--r--wiki/inc/lang/tr/denied.txt4
-rw-r--r--wiki/inc/lang/tr/diff.txt4
-rw-r--r--wiki/inc/lang/tr/draft.txt5
-rw-r--r--wiki/inc/lang/tr/edit.txt2
-rw-r--r--wiki/inc/lang/tr/editrev.txt2
-rw-r--r--wiki/inc/lang/tr/index.txt4
-rw-r--r--wiki/inc/lang/tr/install.html8
-rw-r--r--wiki/inc/lang/tr/jquery.ui.datepicker.js37
-rw-r--r--wiki/inc/lang/tr/lang.php342
-rw-r--r--wiki/inc/lang/tr/locked.txt4
-rw-r--r--wiki/inc/lang/tr/login.txt4
-rw-r--r--wiki/inc/lang/tr/mailtext.txt12
-rw-r--r--wiki/inc/lang/tr/newpage.txt4
-rw-r--r--wiki/inc/lang/tr/norev.txt4
-rw-r--r--wiki/inc/lang/tr/password.txt7
-rw-r--r--wiki/inc/lang/tr/preview.txt4
-rw-r--r--wiki/inc/lang/tr/pwconfirm.txt9
-rw-r--r--wiki/inc/lang/tr/read.txt2
-rw-r--r--wiki/inc/lang/tr/recent.txt5
-rw-r--r--wiki/inc/lang/tr/register.txt4
-rw-r--r--wiki/inc/lang/tr/registermail.txt10
-rw-r--r--wiki/inc/lang/tr/resendpwd.txt3
-rw-r--r--wiki/inc/lang/tr/resetpwd.txt3
-rw-r--r--wiki/inc/lang/tr/revisions.txt4
-rw-r--r--wiki/inc/lang/tr/searchpage.txt4
-rw-r--r--wiki/inc/lang/tr/showrev.txt2
-rw-r--r--wiki/inc/lang/tr/stopwords.txt29
-rw-r--r--wiki/inc/lang/tr/subscr_form.txt3
-rw-r--r--wiki/inc/lang/tr/updateprofile.txt3
-rw-r--r--wiki/inc/lang/tr/uploadmail.txt10
-rw-r--r--wiki/inc/lang/uk/admin.txt4
-rw-r--r--wiki/inc/lang/uk/adminplugins.txt1
-rw-r--r--wiki/inc/lang/uk/backlinks.txt3
-rw-r--r--wiki/inc/lang/uk/conflict.txt8
-rw-r--r--wiki/inc/lang/uk/denied.txt4
-rw-r--r--wiki/inc/lang/uk/diff.txt4
-rw-r--r--wiki/inc/lang/uk/draft.txt6
-rw-r--r--wiki/inc/lang/uk/edit.txt1
-rw-r--r--wiki/inc/lang/uk/editrev.txt2
-rw-r--r--wiki/inc/lang/uk/index.txt4
-rw-r--r--wiki/inc/lang/uk/install.html21
-rw-r--r--wiki/inc/lang/uk/jquery.ui.datepicker.js38
-rw-r--r--wiki/inc/lang/uk/lang.php354
-rw-r--r--wiki/inc/lang/uk/locked.txt3
-rw-r--r--wiki/inc/lang/uk/login.txt4
-rw-r--r--wiki/inc/lang/uk/mailtext.txt12
-rw-r--r--wiki/inc/lang/uk/newpage.txt4
-rw-r--r--wiki/inc/lang/uk/norev.txt4
-rw-r--r--wiki/inc/lang/uk/password.txt6
-rw-r--r--wiki/inc/lang/uk/preview.txt4
-rw-r--r--wiki/inc/lang/uk/pwconfirm.txt10
-rw-r--r--wiki/inc/lang/uk/read.txt2
-rw-r--r--wiki/inc/lang/uk/recent.txt4
-rw-r--r--wiki/inc/lang/uk/register.txt4
-rw-r--r--wiki/inc/lang/uk/registermail.txt10
-rw-r--r--wiki/inc/lang/uk/resendpwd.txt3
-rw-r--r--wiki/inc/lang/uk/resetpwd.txt3
-rw-r--r--wiki/inc/lang/uk/revisions.txt4
-rw-r--r--wiki/inc/lang/uk/searchpage.txt4
-rw-r--r--wiki/inc/lang/uk/showrev.txt2
-rw-r--r--wiki/inc/lang/uk/stopwords.txt3
-rw-r--r--wiki/inc/lang/uk/subscr_digest.txt14
-rw-r--r--wiki/inc/lang/uk/subscr_form.txt3
-rw-r--r--wiki/inc/lang/uk/subscr_list.txt11
-rw-r--r--wiki/inc/lang/uk/subscr_single.txt17
-rw-r--r--wiki/inc/lang/uk/updateprofile.txt5
-rw-r--r--wiki/inc/lang/uk/uploadmail.txt10
-rw-r--r--wiki/inc/lang/vi/admin.txt3
-rw-r--r--wiki/inc/lang/vi/backlinks.txt3
-rw-r--r--wiki/inc/lang/vi/conflict.txt5
-rw-r--r--wiki/inc/lang/vi/denied.txt4
-rw-r--r--wiki/inc/lang/vi/diff.txt4
-rw-r--r--wiki/inc/lang/vi/edit.txt1
-rw-r--r--wiki/inc/lang/vi/editrev.txt2
-rw-r--r--wiki/inc/lang/vi/index.txt3
-rw-r--r--wiki/inc/lang/vi/jquery.ui.datepicker.js37
-rw-r--r--wiki/inc/lang/vi/lang.php242
-rw-r--r--wiki/inc/lang/vi/locked.txt3
-rw-r--r--wiki/inc/lang/vi/login.txt3
-rw-r--r--wiki/inc/lang/vi/mailtext.txt12
-rw-r--r--wiki/inc/lang/vi/newpage.txt3
-rw-r--r--wiki/inc/lang/vi/norev.txt3
-rw-r--r--wiki/inc/lang/vi/password.txt6
-rw-r--r--wiki/inc/lang/vi/preview.txt3
-rw-r--r--wiki/inc/lang/vi/read.txt1
-rw-r--r--wiki/inc/lang/vi/recent.txt3
-rw-r--r--wiki/inc/lang/vi/register.txt3
-rw-r--r--wiki/inc/lang/vi/revisions.txt3
-rw-r--r--wiki/inc/lang/vi/searchpage.txt4
-rw-r--r--wiki/inc/lang/vi/showrev.txt2
-rw-r--r--wiki/inc/lang/zh-tw/admin.txt3
-rw-r--r--wiki/inc/lang/zh-tw/adminplugins.txt1
-rw-r--r--wiki/inc/lang/zh-tw/backlinks.txt4
-rw-r--r--wiki/inc/lang/zh-tw/conflict.txt5
-rw-r--r--wiki/inc/lang/zh-tw/denied.txt4
-rw-r--r--wiki/inc/lang/zh-tw/diff.txt3
-rw-r--r--wiki/inc/lang/zh-tw/draft.txt5
-rw-r--r--wiki/inc/lang/zh-tw/edit.txt1
-rw-r--r--wiki/inc/lang/zh-tw/editrev.txt2
-rw-r--r--wiki/inc/lang/zh-tw/index.txt3
-rw-r--r--wiki/inc/lang/zh-tw/install.html8
-rw-r--r--wiki/inc/lang/zh-tw/jquery.ui.datepicker.js37
-rw-r--r--wiki/inc/lang/zh-tw/lang.php348
-rw-r--r--wiki/inc/lang/zh-tw/locked.txt3
-rw-r--r--wiki/inc/lang/zh-tw/login.txt4
-rw-r--r--wiki/inc/lang/zh-tw/mailtext.txt12
-rw-r--r--wiki/inc/lang/zh-tw/mailwrap.html13
-rw-r--r--wiki/inc/lang/zh-tw/newpage.txt3
-rw-r--r--wiki/inc/lang/zh-tw/norev.txt3
-rw-r--r--wiki/inc/lang/zh-tw/password.txt6
-rw-r--r--wiki/inc/lang/zh-tw/preview.txt4
-rw-r--r--wiki/inc/lang/zh-tw/pwconfirm.txt9
-rw-r--r--wiki/inc/lang/zh-tw/read.txt1
-rw-r--r--wiki/inc/lang/zh-tw/recent.txt5
-rw-r--r--wiki/inc/lang/zh-tw/register.txt3
-rw-r--r--wiki/inc/lang/zh-tw/registermail.txt10
-rw-r--r--wiki/inc/lang/zh-tw/resendpwd.txt3
-rw-r--r--wiki/inc/lang/zh-tw/resetpwd.txt3
-rw-r--r--wiki/inc/lang/zh-tw/revisions.txt3
-rw-r--r--wiki/inc/lang/zh-tw/searchpage.txt4
-rw-r--r--wiki/inc/lang/zh-tw/showrev.txt2
-rw-r--r--wiki/inc/lang/zh-tw/stopwords.txt31
-rw-r--r--wiki/inc/lang/zh-tw/subscr_digest.txt15
-rw-r--r--wiki/inc/lang/zh-tw/subscr_form.txt3
-rw-r--r--wiki/inc/lang/zh-tw/subscr_list.txt12
-rw-r--r--wiki/inc/lang/zh-tw/subscr_single.txt18
-rw-r--r--wiki/inc/lang/zh-tw/updateprofile.txt3
-rw-r--r--wiki/inc/lang/zh-tw/uploadmail.txt10
-rw-r--r--wiki/inc/lang/zh/admin.txt3
-rw-r--r--wiki/inc/lang/zh/adminplugins.txt1
-rw-r--r--wiki/inc/lang/zh/backlinks.txt3
-rw-r--r--wiki/inc/lang/zh/conflict.txt5
-rw-r--r--wiki/inc/lang/zh/denied.txt4
-rw-r--r--wiki/inc/lang/zh/diff.txt3
-rw-r--r--wiki/inc/lang/zh/draft.txt7
-rw-r--r--wiki/inc/lang/zh/edit.txt1
-rw-r--r--wiki/inc/lang/zh/editrev.txt2
-rw-r--r--wiki/inc/lang/zh/index.txt3
-rw-r--r--wiki/inc/lang/zh/install.html8
-rw-r--r--wiki/inc/lang/zh/jquery.ui.datepicker.js37
-rw-r--r--wiki/inc/lang/zh/lang.php370
-rw-r--r--wiki/inc/lang/zh/locked.txt3
-rw-r--r--wiki/inc/lang/zh/login.txt3
-rw-r--r--wiki/inc/lang/zh/mailtext.txt12
-rw-r--r--wiki/inc/lang/zh/mailwrap.html13
-rw-r--r--wiki/inc/lang/zh/newpage.txt3
-rw-r--r--wiki/inc/lang/zh/norev.txt3
-rw-r--r--wiki/inc/lang/zh/password.txt5
-rw-r--r--wiki/inc/lang/zh/preview.txt3
-rw-r--r--wiki/inc/lang/zh/pwconfirm.txt9
-rw-r--r--wiki/inc/lang/zh/read.txt2
-rw-r--r--wiki/inc/lang/zh/recent.txt5
-rw-r--r--wiki/inc/lang/zh/register.txt3
-rw-r--r--wiki/inc/lang/zh/registermail.txt10
-rw-r--r--wiki/inc/lang/zh/resendpwd.txt5
-rw-r--r--wiki/inc/lang/zh/resetpwd.txt3
-rw-r--r--wiki/inc/lang/zh/revisions.txt3
-rw-r--r--wiki/inc/lang/zh/searchpage.txt4
-rw-r--r--wiki/inc/lang/zh/showrev.txt2
-rw-r--r--wiki/inc/lang/zh/stopwords.txt29
-rw-r--r--wiki/inc/lang/zh/subscr_digest.txt15
-rw-r--r--wiki/inc/lang/zh/subscr_form.txt3
-rw-r--r--wiki/inc/lang/zh/subscr_list.txt12
-rw-r--r--wiki/inc/lang/zh/subscr_single.txt18
-rw-r--r--wiki/inc/lang/zh/updateprofile.txt5
-rw-r--r--wiki/inc/lang/zh/uploadmail.txt12
-rw-r--r--wiki/inc/load.php159
-rw-r--r--wiki/inc/mail.php348
-rw-r--r--wiki/inc/media.php2498
-rw-r--r--wiki/inc/pageutils.php775
-rw-r--r--wiki/inc/parser/code.php73
-rw-r--r--wiki/inc/parser/handler.php1811
-rw-r--r--wiki/inc/parser/lexer.php614
-rw-r--r--wiki/inc/parser/metadata.php694
-rw-r--r--wiki/inc/parser/parser.php1034
-rw-r--r--wiki/inc/parser/renderer.php883
-rw-r--r--wiki/inc/parser/xhtml.php1970
-rw-r--r--wiki/inc/parser/xhtmlsummary.php89
-rw-r--r--wiki/inc/parserutils.php790
-rw-r--r--wiki/inc/plugincontroller.class.php347
-rw-r--r--wiki/inc/pluginutils.php136
-rw-r--r--wiki/inc/preload.php.dist17
-rw-r--r--wiki/inc/remote.php357
-rw-r--r--wiki/inc/search.php518
-rw-r--r--wiki/inc/subscription.php693
-rw-r--r--wiki/inc/template.php1873
-rw-r--r--wiki/inc/toolbar.php257
-rw-r--r--wiki/inc/utf8.php1771
-rw-r--r--wiki/index.html1
-rw-r--r--wiki/index.php68
-rw-r--r--wiki/lib/exe/ajax.php25
-rw-r--r--wiki/lib/exe/css.php635
-rw-r--r--wiki/lib/exe/detail.php53
-rw-r--r--wiki/lib/exe/fetch.php99
-rw-r--r--wiki/lib/exe/index.html11
-rw-r--r--wiki/lib/exe/indexer.php209
-rw-r--r--wiki/lib/exe/jquery.php43
-rw-r--r--wiki/lib/exe/js.php484
-rw-r--r--wiki/lib/exe/manifest.php14
-rw-r--r--wiki/lib/exe/mediamanager.php126
-rw-r--r--wiki/lib/exe/opensearch.php38
-rw-r--r--wiki/lib/exe/xmlrpc.php67
-rw-r--r--wiki/lib/images/README6
-rw-r--r--wiki/lib/images/_deprecated.txt2
-rw-r--r--wiki/lib/images/admin/README4
-rw-r--r--wiki/lib/images/admin/acl.pngbin1065 -> 0 bytes
-rw-r--r--wiki/lib/images/admin/config.pngbin1484 -> 0 bytes
-rw-r--r--wiki/lib/images/admin/plugin.pngbin1115 -> 0 bytes
-rw-r--r--wiki/lib/images/admin/popularity.pngbin1172 -> 0 bytes
-rw-r--r--wiki/lib/images/admin/revert.pngbin1295 -> 0 bytes
-rw-r--r--wiki/lib/images/admin/styling.pngbin970 -> 0 bytes
-rw-r--r--wiki/lib/images/admin/usermanager.pngbin1460 -> 0 bytes
-rw-r--r--wiki/lib/images/blank.gifbin42 -> 0 bytes
-rw-r--r--wiki/lib/images/bullet.pngbin101 -> 0 bytes
-rw-r--r--wiki/lib/images/closed-rtl.pngbin111 -> 0 bytes
-rw-r--r--wiki/lib/images/closed.pngbin110 -> 0 bytes
-rw-r--r--wiki/lib/images/diff.pngbin190 -> 0 bytes
-rw-r--r--wiki/lib/images/email.pngbin370 -> 0 bytes
-rw-r--r--wiki/lib/images/error.pngbin637 -> 0 bytes
-rw-r--r--wiki/lib/images/external-link.pngbin431 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/32x32/7z.pngbin911 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/32x32/asm.pngbin955 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/32x32/bash.pngbin966 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/32x32/bz2.pngbin920 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/32x32/c.pngbin929 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/32x32/cc.pngbin933 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/32x32/conf.pngbin666 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/32x32/cpp.pngbin943 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/32x32/cs.pngbin944 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/32x32/csh.pngbin952 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/32x32/css.pngbin952 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/32x32/csv.pngbin663 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/32x32/deb.pngbin914 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/32x32/diff.pngbin942 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/32x32/doc.pngbin956 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/32x32/docx.pngbin970 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/32x32/file.pngbin543 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/32x32/gif.pngbin873 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/32x32/gz.pngbin914 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/32x32/h.pngbin884 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/32x32/hpp.pngbin942 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/32x32/htm.pngbin945 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/32x32/html.pngbin945 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/32x32/ico.pngbin865 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/32x32/java.pngbin961 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/32x32/jpeg.pngbin877 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/32x32/jpg.pngbin877 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/32x32/js.pngbin937 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/32x32/json.pngbin966 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/32x32/lua.pngbin941 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/32x32/mp3.pngbin896 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/32x32/mp4.pngbin1116 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/32x32/odc.pngbin946 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/32x32/odf.pngbin951 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/32x32/odg.pngbin949 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/32x32/odi.pngbin944 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/32x32/odp.pngbin949 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/32x32/ods.pngbin955 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/32x32/odt.pngbin949 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/32x32/ogg.pngbin885 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/32x32/ogv.pngbin1106 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/32x32/pas.pngbin945 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/32x32/pdf.pngbin1003 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/32x32/php.pngbin952 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/32x32/pl.pngbin936 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/32x32/png.pngbin877 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/32x32/ppt.pngbin850 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/32x32/pptx.pngbin866 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/32x32/ps.pngbin996 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/32x32/py.pngbin942 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/32x32/rar.pngbin914 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/32x32/rb.pngbin936 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/32x32/rpm.pngbin920 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/32x32/rtf.pngbin738 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/32x32/sh.pngbin941 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/32x32/sql.pngbin664 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/32x32/swf.pngbin1173 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/32x32/sxc.pngbin964 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/32x32/sxd.pngbin965 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/32x32/sxi.pngbin962 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/32x32/sxw.pngbin968 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/32x32/tar.pngbin914 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/32x32/tgz.pngbin919 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/32x32/txt.pngbin661 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/32x32/wav.pngbin888 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/32x32/webm.pngbin1210 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/32x32/xls.pngbin1124 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/32x32/xlsx.pngbin1131 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/32x32/xml.pngbin560 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/32x32/zip.pngbin914 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/7z.pngbin375 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/README2
-rw-r--r--wiki/lib/images/fileicons/asm.pngbin379 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/bash.pngbin378 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/bz2.pngbin378 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/c.pngbin369 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/cc.pngbin369 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/conf.pngbin370 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/cpp.pngbin377 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/cs.pngbin374 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/csh.pngbin378 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/css.pngbin374 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/csv.pngbin371 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/deb.pngbin376 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/diff.pngbin376 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/doc.pngbin372 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/docx.pngbin375 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/file.pngbin249 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/gif.pngbin374 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/gz.pngbin374 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/h.pngbin368 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/hpp.pngbin376 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/htm.pngbin375 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/html.pngbin375 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/ico.pngbin372 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/index.php67
-rw-r--r--wiki/lib/images/fileicons/java.pngbin376 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/jpeg.pngbin376 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/jpg.pngbin376 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/js.pngbin374 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/json.pngbin379 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/lua.pngbin374 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/mp3.pngbin378 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/mp4.pngbin377 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/odc.pngbin369 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/odf.pngbin373 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/odg.pngbin370 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/odi.pngbin371 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/odp.pngbin374 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/ods.pngbin373 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/odt.pngbin372 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/ogg.pngbin373 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/ogv.pngbin376 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/pas.pngbin380 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/pdf.pngbin377 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/php.pngbin376 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/pl.pngbin372 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/png.pngbin375 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/ppt.pngbin375 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/pptx.pngbin375 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/ps.pngbin377 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/py.pngbin374 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/rar.pngbin377 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/rb.pngbin375 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/rpm.pngbin374 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/rtf.pngbin376 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/sh.pngbin375 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/sql.pngbin373 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/swf.pngbin379 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/sxc.pngbin377 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/sxd.pngbin377 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/sxi.pngbin377 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/sxw.pngbin376 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/tar.pngbin377 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/tgz.pngbin377 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/txt.pngbin371 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/wav.pngbin375 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/webm.pngbin378 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/xls.pngbin378 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/xlsx.pngbin379 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/xml.pngbin376 -> 0 bytes
-rw-r--r--wiki/lib/images/fileicons/zip.pngbin377 -> 0 bytes
-rw-r--r--wiki/lib/images/history.pngbin149 -> 0 bytes
-rw-r--r--wiki/lib/images/icon-list.pngbin584 -> 0 bytes
-rw-r--r--wiki/lib/images/icon-sort.pngbin211 -> 0 bytes
-rw-r--r--wiki/lib/images/index.html11
-rw-r--r--wiki/lib/images/info.pngbin721 -> 0 bytes
-rw-r--r--wiki/lib/images/interwiki.pngbin442 -> 0 bytes
-rw-r--r--wiki/lib/images/interwiki/amazon.de.gifbin132 -> 0 bytes
-rw-r--r--wiki/lib/images/interwiki/amazon.gifbin132 -> 0 bytes
-rw-r--r--wiki/lib/images/interwiki/amazon.uk.gifbin132 -> 0 bytes
-rw-r--r--wiki/lib/images/interwiki/callto.gifbin177 -> 0 bytes
-rw-r--r--wiki/lib/images/interwiki/doku.gifbin188 -> 0 bytes
-rw-r--r--wiki/lib/images/interwiki/google.gifbin170 -> 0 bytes
-rw-r--r--wiki/lib/images/interwiki/paypal.gifbin139 -> 0 bytes
-rw-r--r--wiki/lib/images/interwiki/phpfn.gifbin164 -> 0 bytes
-rw-r--r--wiki/lib/images/interwiki/skype.gifbin142 -> 0 bytes
-rw-r--r--wiki/lib/images/interwiki/tel.gifbin177 -> 0 bytes
-rw-r--r--wiki/lib/images/interwiki/user.pngbin684 -> 0 bytes
-rw-r--r--wiki/lib/images/interwiki/wp.gifbin171 -> 0 bytes
-rw-r--r--wiki/lib/images/interwiki/wpde.gifbin171 -> 0 bytes
-rw-r--r--wiki/lib/images/interwiki/wpes.gifbin171 -> 0 bytes
-rw-r--r--wiki/lib/images/interwiki/wpfr.gifbin171 -> 0 bytes
-rw-r--r--wiki/lib/images/interwiki/wpjp.gifbin171 -> 0 bytes
-rw-r--r--wiki/lib/images/interwiki/wpmeta.gifbin171 -> 0 bytes
-rw-r--r--wiki/lib/images/interwiki/wppl.gifbin171 -> 0 bytes
-rw-r--r--wiki/lib/images/larger.gifbin87 -> 0 bytes
-rw-r--r--wiki/lib/images/license/badge/cc-by-nc-nd.pngbin1456 -> 0 bytes
-rw-r--r--wiki/lib/images/license/badge/cc-by-nc-sa.pngbin1567 -> 0 bytes
-rw-r--r--wiki/lib/images/license/badge/cc-by-nc.pngbin1401 -> 0 bytes
-rw-r--r--wiki/lib/images/license/badge/cc-by-nd.pngbin1261 -> 0 bytes
-rw-r--r--wiki/lib/images/license/badge/cc-by-sa.pngbin1407 -> 0 bytes
-rw-r--r--wiki/lib/images/license/badge/cc-by.pngbin1186 -> 0 bytes
-rw-r--r--wiki/lib/images/license/badge/cc-zero.pngbin1182 -> 0 bytes
-rw-r--r--wiki/lib/images/license/badge/cc.pngbin846 -> 0 bytes
-rw-r--r--wiki/lib/images/license/badge/gnufdl.pngbin1649 -> 0 bytes
-rw-r--r--wiki/lib/images/license/badge/publicdomain.pngbin1326 -> 0 bytes
-rw-r--r--wiki/lib/images/license/button/cc-by-nc-nd.pngbin391 -> 0 bytes
-rw-r--r--wiki/lib/images/license/button/cc-by-nc-sa.pngbin396 -> 0 bytes
-rw-r--r--wiki/lib/images/license/button/cc-by-nc.pngbin381 -> 0 bytes
-rw-r--r--wiki/lib/images/license/button/cc-by-nd.pngbin382 -> 0 bytes
-rw-r--r--wiki/lib/images/license/button/cc-by-sa.pngbin379 -> 0 bytes
-rw-r--r--wiki/lib/images/license/button/cc-by.pngbin364 -> 0 bytes
-rw-r--r--wiki/lib/images/license/button/cc-zero.pngbin381 -> 0 bytes
-rw-r--r--wiki/lib/images/license/button/cc.pngbin391 -> 0 bytes
-rw-r--r--wiki/lib/images/license/button/gnufdl.pngbin497 -> 0 bytes
-rw-r--r--wiki/lib/images/license/button/publicdomain.pngbin364 -> 0 bytes
-rw-r--r--wiki/lib/images/magnifier.pngbin565 -> 0 bytes
-rw-r--r--wiki/lib/images/media_align_center.pngbin249 -> 0 bytes
-rw-r--r--wiki/lib/images/media_align_left.pngbin247 -> 0 bytes
-rw-r--r--wiki/lib/images/media_align_noalign.pngbin218 -> 0 bytes
-rw-r--r--wiki/lib/images/media_align_right.pngbin250 -> 0 bytes
-rw-r--r--wiki/lib/images/media_link_direct.pngbin714 -> 0 bytes
-rw-r--r--wiki/lib/images/media_link_displaylnk.pngbin304 -> 0 bytes
-rw-r--r--wiki/lib/images/media_link_lnk.pngbin578 -> 0 bytes
-rw-r--r--wiki/lib/images/media_link_nolnk.pngbin452 -> 0 bytes
-rw-r--r--wiki/lib/images/media_size_large.pngbin100 -> 0 bytes
-rw-r--r--wiki/lib/images/media_size_medium.pngbin226 -> 0 bytes
-rw-r--r--wiki/lib/images/media_size_original.pngbin210 -> 0 bytes
-rw-r--r--wiki/lib/images/media_size_small.pngbin206 -> 0 bytes
-rw-r--r--wiki/lib/images/mediamanager.pngbin455 -> 0 bytes
-rw-r--r--wiki/lib/images/menu/00-default_checkbox-blank-circle-outline.svg1
-rw-r--r--wiki/lib/images/menu/01-edit_pencil.svg1
-rw-r--r--wiki/lib/images/menu/02-create_pencil.svg1
-rw-r--r--wiki/lib/images/menu/03-draft_android-studio.svg1
-rw-r--r--wiki/lib/images/menu/04-show_file-document.svg1
-rw-r--r--wiki/lib/images/menu/05-source_file-xml.svg1
-rw-r--r--wiki/lib/images/menu/06-revert_replay.svg1
-rw-r--r--wiki/lib/images/menu/07-revisions_history.svg1
-rw-r--r--wiki/lib/images/menu/08-backlink_link-variant.svg1
-rw-r--r--wiki/lib/images/menu/09-subscribe_email-outline.svg1
-rw-r--r--wiki/lib/images/menu/10-top_arrow-up.svg1
-rw-r--r--wiki/lib/images/menu/11-mediamanager_folder-image.svg1
-rw-r--r--wiki/lib/images/menu/12-back_arrow-left.svg1
-rw-r--r--wiki/lib/images/menu/account-card-details.svg1
-rw-r--r--wiki/lib/images/menu/account-plus.svg1
-rw-r--r--wiki/lib/images/menu/calendar-clock.svg1
-rw-r--r--wiki/lib/images/menu/file-tree.svg1
-rw-r--r--wiki/lib/images/menu/folder-multiple-image.svg1
-rw-r--r--wiki/lib/images/menu/lock-reset.svg1
-rw-r--r--wiki/lib/images/menu/login.svg1
-rw-r--r--wiki/lib/images/menu/logout.svg1
-rw-r--r--wiki/lib/images/menu/settings.svg1
-rw-r--r--wiki/lib/images/minus.gifbin85 -> 0 bytes
-rw-r--r--wiki/lib/images/notify.pngbin735 -> 0 bytes
-rw-r--r--wiki/lib/images/ns.pngbin799 -> 0 bytes
-rw-r--r--wiki/lib/images/open.pngbin107 -> 0 bytes
-rw-r--r--wiki/lib/images/page.pngbin582 -> 0 bytes
-rw-r--r--wiki/lib/images/plus.gifbin88 -> 0 bytes
-rw-r--r--wiki/lib/images/resizecol.pngbin148 -> 0 bytes
-rw-r--r--wiki/lib/images/smaller.gifbin86 -> 0 bytes
-rw-r--r--wiki/lib/images/smileys/delete.gifbin448 -> 0 bytes
-rw-r--r--wiki/lib/images/smileys/facepalm.gifbin185 -> 0 bytes
-rw-r--r--wiki/lib/images/smileys/fixme.gifbin450 -> 0 bytes
-rw-r--r--wiki/lib/images/smileys/icon_arrow.gifbin170 -> 0 bytes
-rw-r--r--wiki/lib/images/smileys/icon_biggrin.gifbin172 -> 0 bytes
-rw-r--r--wiki/lib/images/smileys/icon_confused.gifbin171 -> 0 bytes
-rw-r--r--wiki/lib/images/smileys/icon_cool.gifbin172 -> 0 bytes
-rw-r--r--wiki/lib/images/smileys/icon_cry.gifbin424 -> 0 bytes
-rw-r--r--wiki/lib/images/smileys/icon_doubt.gifbin178 -> 0 bytes
-rw-r--r--wiki/lib/images/smileys/icon_doubt2.gifbin180 -> 0 bytes
-rw-r--r--wiki/lib/images/smileys/icon_eek.gifbin170 -> 0 bytes
-rw-r--r--wiki/lib/images/smileys/icon_evil.gifbin188 -> 0 bytes
-rw-r--r--wiki/lib/images/smileys/icon_exclaim.gifbin171 -> 0 bytes
-rw-r--r--wiki/lib/images/smileys/icon_frown.gifbin171 -> 0 bytes
-rw-r--r--wiki/lib/images/smileys/icon_fun.gifbin179 -> 0 bytes
-rw-r--r--wiki/lib/images/smileys/icon_idea.gifbin176 -> 0 bytes
-rw-r--r--wiki/lib/images/smileys/icon_kaddi.gifbin179 -> 0 bytes
-rw-r--r--wiki/lib/images/smileys/icon_lol.gifbin344 -> 0 bytes
-rw-r--r--wiki/lib/images/smileys/icon_mrgreen.gifbin168 -> 0 bytes
-rw-r--r--wiki/lib/images/smileys/icon_neutral.gifbin171 -> 0 bytes
-rw-r--r--wiki/lib/images/smileys/icon_question.gifbin182 -> 0 bytes
-rw-r--r--wiki/lib/images/smileys/icon_razz.gifbin176 -> 0 bytes
-rw-r--r--wiki/lib/images/smileys/icon_redface.gifbin669 -> 0 bytes
-rw-r--r--wiki/lib/images/smileys/icon_rolleyes.gifbin471 -> 0 bytes
-rw-r--r--wiki/lib/images/smileys/icon_sad.gifbin171 -> 0 bytes
-rw-r--r--wiki/lib/images/smileys/icon_silenced.gifbin177 -> 0 bytes
-rw-r--r--wiki/lib/images/smileys/icon_smile.gifbin174 -> 0 bytes
-rw-r--r--wiki/lib/images/smileys/icon_smile2.gifbin174 -> 0 bytes
-rw-r--r--wiki/lib/images/smileys/icon_surprised.gifbin174 -> 0 bytes
-rw-r--r--wiki/lib/images/smileys/icon_twisted.gifbin180 -> 0 bytes
-rw-r--r--wiki/lib/images/smileys/icon_wink.gifbin170 -> 0 bytes
-rw-r--r--wiki/lib/images/smileys/index.php48
-rw-r--r--wiki/lib/images/success.pngbin725 -> 0 bytes
-rw-r--r--wiki/lib/images/throbber.gifbin746 -> 0 bytes
-rw-r--r--wiki/lib/images/toolbar/bold.pngbin249 -> 0 bytes
-rw-r--r--wiki/lib/images/toolbar/chars.pngbin493 -> 0 bytes
-rw-r--r--wiki/lib/images/toolbar/h.pngbin257 -> 0 bytes
-rw-r--r--wiki/lib/images/toolbar/h1.pngbin287 -> 0 bytes
-rw-r--r--wiki/lib/images/toolbar/h2.pngbin319 -> 0 bytes
-rw-r--r--wiki/lib/images/toolbar/h3.pngbin320 -> 0 bytes
-rw-r--r--wiki/lib/images/toolbar/h4.pngbin310 -> 0 bytes
-rw-r--r--wiki/lib/images/toolbar/h5.pngbin318 -> 0 bytes
-rw-r--r--wiki/lib/images/toolbar/hequal.pngbin306 -> 0 bytes
-rw-r--r--wiki/lib/images/toolbar/hminus.pngbin403 -> 0 bytes
-rw-r--r--wiki/lib/images/toolbar/hplus.pngbin391 -> 0 bytes
-rw-r--r--wiki/lib/images/toolbar/hr.pngbin251 -> 0 bytes
-rw-r--r--wiki/lib/images/toolbar/image.pngbin539 -> 0 bytes
-rw-r--r--wiki/lib/images/toolbar/italic.pngbin239 -> 0 bytes
-rw-r--r--wiki/lib/images/toolbar/link.pngbin402 -> 0 bytes
-rw-r--r--wiki/lib/images/toolbar/linkextern.pngbin902 -> 0 bytes
-rw-r--r--wiki/lib/images/toolbar/mono.pngbin293 -> 0 bytes
-rw-r--r--wiki/lib/images/toolbar/ol.pngbin302 -> 0 bytes
-rw-r--r--wiki/lib/images/toolbar/sig.pngbin471 -> 0 bytes
-rw-r--r--wiki/lib/images/toolbar/smiley.pngbin680 -> 0 bytes
-rw-r--r--wiki/lib/images/toolbar/strike.pngbin316 -> 0 bytes
-rw-r--r--wiki/lib/images/toolbar/ul.pngbin288 -> 0 bytes
-rw-r--r--wiki/lib/images/toolbar/underline.pngbin297 -> 0 bytes
-rw-r--r--wiki/lib/images/trash.pngbin423 -> 0 bytes
-rw-r--r--wiki/lib/images/unc.pngbin290 -> 0 bytes
-rw-r--r--wiki/lib/images/up.pngbin248 -> 0 bytes
-rw-r--r--wiki/lib/images/wrap.gifbin86 -> 0 bytes
-rw-r--r--wiki/lib/index.html11
-rw-r--r--wiki/lib/plugins/acl/action.php88
-rw-r--r--wiki/lib/plugins/acl/admin.php815
-rw-r--r--wiki/lib/plugins/acl/admin.svg1
-rw-r--r--wiki/lib/plugins/acl/lang/af/lang.php10
-rw-r--r--wiki/lib/plugins/acl/lang/ar/help.txt11
-rw-r--r--wiki/lib/plugins/acl/lang/ar/lang.php38
-rw-r--r--wiki/lib/plugins/acl/lang/bg/help.txt9
-rw-r--r--wiki/lib/plugins/acl/lang/bg/lang.php37
-rw-r--r--wiki/lib/plugins/acl/lang/ca-valencia/help.txt15
-rw-r--r--wiki/lib/plugins/acl/lang/ca-valencia/lang.php37
-rw-r--r--wiki/lib/plugins/acl/lang/ca/help.txt11
-rw-r--r--wiki/lib/plugins/acl/lang/ca/lang.php39
-rw-r--r--wiki/lib/plugins/acl/lang/cs/help.txt8
-rw-r--r--wiki/lib/plugins/acl/lang/cs/lang.php43
-rw-r--r--wiki/lib/plugins/acl/lang/cy/help.txt10
-rw-r--r--wiki/lib/plugins/acl/lang/cy/lang.php47
-rw-r--r--wiki/lib/plugins/acl/lang/da/help.txt11
-rw-r--r--wiki/lib/plugins/acl/lang/da/lang.php44
-rw-r--r--wiki/lib/plugins/acl/lang/de-informal/help.txt11
-rw-r--r--wiki/lib/plugins/acl/lang/de-informal/lang.php42
-rw-r--r--wiki/lib/plugins/acl/lang/de/help.txt11
-rw-r--r--wiki/lib/plugins/acl/lang/de/lang.php52
-rw-r--r--wiki/lib/plugins/acl/lang/el/help.txt10
-rw-r--r--wiki/lib/plugins/acl/lang/el/lang.php43
-rw-r--r--wiki/lib/plugins/acl/lang/en/help.txt9
-rw-r--r--wiki/lib/plugins/acl/lang/en/lang.php46
-rw-r--r--wiki/lib/plugins/acl/lang/eo/help.txt11
-rw-r--r--wiki/lib/plugins/acl/lang/eo/lang.php38
-rw-r--r--wiki/lib/plugins/acl/lang/es/help.txt11
-rw-r--r--wiki/lib/plugins/acl/lang/es/lang.php54
-rw-r--r--wiki/lib/plugins/acl/lang/et/help.txt9
-rw-r--r--wiki/lib/plugins/acl/lang/et/lang.php37
-rw-r--r--wiki/lib/plugins/acl/lang/eu/help.txt11
-rw-r--r--wiki/lib/plugins/acl/lang/eu/lang.php36
-rw-r--r--wiki/lib/plugins/acl/lang/fa/help.txt11
-rw-r--r--wiki/lib/plugins/acl/lang/fa/lang.php41
-rw-r--r--wiki/lib/plugins/acl/lang/fi/help.txt11
-rw-r--r--wiki/lib/plugins/acl/lang/fi/lang.php38
-rw-r--r--wiki/lib/plugins/acl/lang/fr/help.txt11
-rw-r--r--wiki/lib/plugins/acl/lang/fr/lang.php54
-rw-r--r--wiki/lib/plugins/acl/lang/gl/help.txt11
-rw-r--r--wiki/lib/plugins/acl/lang/gl/lang.php36
-rw-r--r--wiki/lib/plugins/acl/lang/he/help.txt11
-rw-r--r--wiki/lib/plugins/acl/lang/he/lang.php36
-rw-r--r--wiki/lib/plugins/acl/lang/hr/help.txt11
-rw-r--r--wiki/lib/plugins/acl/lang/hr/lang.php37
-rw-r--r--wiki/lib/plugins/acl/lang/hu/help.txt12
-rw-r--r--wiki/lib/plugins/acl/lang/hu/lang.php41
-rw-r--r--wiki/lib/plugins/acl/lang/ia/help.txt11
-rw-r--r--wiki/lib/plugins/acl/lang/ia/lang.php35
-rw-r--r--wiki/lib/plugins/acl/lang/id/lang.php21
-rw-r--r--wiki/lib/plugins/acl/lang/is/lang.php15
-rw-r--r--wiki/lib/plugins/acl/lang/it/help.txt11
-rw-r--r--wiki/lib/plugins/acl/lang/it/lang.php41
-rw-r--r--wiki/lib/plugins/acl/lang/ja/help.txt8
-rw-r--r--wiki/lib/plugins/acl/lang/ja/lang.php41
-rw-r--r--wiki/lib/plugins/acl/lang/kk/lang.php10
-rw-r--r--wiki/lib/plugins/acl/lang/ko/help.txt8
-rw-r--r--wiki/lib/plugins/acl/lang/ko/lang.php44
-rw-r--r--wiki/lib/plugins/acl/lang/la/help.txt11
-rw-r--r--wiki/lib/plugins/acl/lang/la/lang.php34
-rw-r--r--wiki/lib/plugins/acl/lang/lb/help.txt11
-rw-r--r--wiki/lib/plugins/acl/lang/lt/lang.php22
-rw-r--r--wiki/lib/plugins/acl/lang/lv/help.txt11
-rw-r--r--wiki/lib/plugins/acl/lang/lv/lang.php35
-rw-r--r--wiki/lib/plugins/acl/lang/mk/lang.php22
-rw-r--r--wiki/lib/plugins/acl/lang/mr/help.txt12
-rw-r--r--wiki/lib/plugins/acl/lang/mr/lang.php37
-rw-r--r--wiki/lib/plugins/acl/lang/ne/lang.php28
-rw-r--r--wiki/lib/plugins/acl/lang/nl/help.txt8
-rw-r--r--wiki/lib/plugins/acl/lang/nl/lang.php48
-rw-r--r--wiki/lib/plugins/acl/lang/no/help.txt11
-rw-r--r--wiki/lib/plugins/acl/lang/no/lang.php49
-rw-r--r--wiki/lib/plugins/acl/lang/pl/help.txt11
-rw-r--r--wiki/lib/plugins/acl/lang/pl/lang.php45
-rw-r--r--wiki/lib/plugins/acl/lang/pt-br/help.txt11
-rw-r--r--wiki/lib/plugins/acl/lang/pt-br/lang.php48
-rw-r--r--wiki/lib/plugins/acl/lang/pt/help.txt9
-rw-r--r--wiki/lib/plugins/acl/lang/pt/lang.php40
-rw-r--r--wiki/lib/plugins/acl/lang/ro/help.txt11
-rw-r--r--wiki/lib/plugins/acl/lang/ro/lang.php43
-rw-r--r--wiki/lib/plugins/acl/lang/ru/help.txt8
-rw-r--r--wiki/lib/plugins/acl/lang/ru/lang.php46
-rw-r--r--wiki/lib/plugins/acl/lang/sk/help.txt11
-rw-r--r--wiki/lib/plugins/acl/lang/sk/lang.php38
-rw-r--r--wiki/lib/plugins/acl/lang/sl/help.txt11
-rw-r--r--wiki/lib/plugins/acl/lang/sl/lang.php38
-rw-r--r--wiki/lib/plugins/acl/lang/sq/help.txt11
-rw-r--r--wiki/lib/plugins/acl/lang/sq/lang.php34
-rw-r--r--wiki/lib/plugins/acl/lang/sr/help.txt11
-rw-r--r--wiki/lib/plugins/acl/lang/sr/lang.php38
-rw-r--r--wiki/lib/plugins/acl/lang/sv/help.txt8
-rw-r--r--wiki/lib/plugins/acl/lang/sv/lang.php43
-rw-r--r--wiki/lib/plugins/acl/lang/th/help.txt11
-rw-r--r--wiki/lib/plugins/acl/lang/th/lang.php28
-rw-r--r--wiki/lib/plugins/acl/lang/tr/help.txt11
-rw-r--r--wiki/lib/plugins/acl/lang/tr/lang.php40
-rw-r--r--wiki/lib/plugins/acl/lang/uk/help.txt11
-rw-r--r--wiki/lib/plugins/acl/lang/uk/lang.php37
-rw-r--r--wiki/lib/plugins/acl/lang/vi/help.txt12
-rw-r--r--wiki/lib/plugins/acl/lang/vi/lang.php35
-rw-r--r--wiki/lib/plugins/acl/lang/zh-tw/help.txt11
-rw-r--r--wiki/lib/plugins/acl/lang/zh-tw/lang.php44
-rw-r--r--wiki/lib/plugins/acl/lang/zh/help.txt11
-rw-r--r--wiki/lib/plugins/acl/lang/zh/lang.php42
-rw-r--r--wiki/lib/plugins/acl/pix/group.pngbin699 -> 0 bytes
-rw-r--r--wiki/lib/plugins/acl/pix/ns.pngbin799 -> 0 bytes
-rw-r--r--wiki/lib/plugins/acl/pix/page.pngbin582 -> 0 bytes
-rw-r--r--wiki/lib/plugins/acl/pix/user.pngbin650 -> 0 bytes
-rw-r--r--wiki/lib/plugins/acl/plugin.info.txt7
-rw-r--r--wiki/lib/plugins/acl/remote.php87
-rw-r--r--wiki/lib/plugins/acl/script.js121
-rw-r--r--wiki/lib/plugins/acl/style.css135
-rw-r--r--wiki/lib/plugins/action.php25
-rw-r--r--wiki/lib/plugins/admin.php96
-rw-r--r--wiki/lib/plugins/auth.php438
-rw-r--r--wiki/lib/plugins/authad/action.php91
-rw-r--r--wiki/lib/plugins/authad/adLDAP/adLDAP.php949
-rw-r--r--wiki/lib/plugins/authad/adLDAP/classes/adLDAPComputers.php153
-rw-r--r--wiki/lib/plugins/authad/adLDAP/classes/adLDAPContacts.php294
-rw-r--r--wiki/lib/plugins/authad/adLDAP/classes/adLDAPExchange.php390
-rw-r--r--wiki/lib/plugins/authad/adLDAP/classes/adLDAPFolders.php179
-rw-r--r--wiki/lib/plugins/authad/adLDAP/classes/adLDAPGroups.php631
-rw-r--r--wiki/lib/plugins/authad/adLDAP/classes/adLDAPUsers.php682
-rw-r--r--wiki/lib/plugins/authad/adLDAP/classes/adLDAPUtils.php268
-rw-r--r--wiki/lib/plugins/authad/adLDAP/collections/adLDAPCollection.php137
-rw-r--r--wiki/lib/plugins/authad/adLDAP/collections/adLDAPComputerCollection.php46
-rw-r--r--wiki/lib/plugins/authad/adLDAP/collections/adLDAPContactCollection.php46
-rw-r--r--wiki/lib/plugins/authad/adLDAP/collections/adLDAPGroupCollection.php46
-rw-r--r--wiki/lib/plugins/authad/adLDAP/collections/adLDAPUserCollection.php46
-rw-r--r--wiki/lib/plugins/authad/auth.php730
-rw-r--r--wiki/lib/plugins/authad/conf/default.php17
-rw-r--r--wiki/lib/plugins/authad/conf/metadata.php17
-rw-r--r--wiki/lib/plugins/authad/lang/ar/lang.php10
-rw-r--r--wiki/lib/plugins/authad/lang/ar/settings.php12
-rw-r--r--wiki/lib/plugins/authad/lang/bg/lang.php8
-rw-r--r--wiki/lib/plugins/authad/lang/bg/settings.php19
-rw-r--r--wiki/lib/plugins/authad/lang/ca/lang.php14
-rw-r--r--wiki/lib/plugins/authad/lang/ca/settings.php19
-rw-r--r--wiki/lib/plugins/authad/lang/cs/lang.php13
-rw-r--r--wiki/lib/plugins/authad/lang/cs/settings.php25
-rw-r--r--wiki/lib/plugins/authad/lang/cy/lang.php16
-rw-r--r--wiki/lib/plugins/authad/lang/cy/settings.php15
-rw-r--r--wiki/lib/plugins/authad/lang/da/lang.php12
-rw-r--r--wiki/lib/plugins/authad/lang/da/settings.php23
-rw-r--r--wiki/lib/plugins/authad/lang/de-informal/lang.php13
-rw-r--r--wiki/lib/plugins/authad/lang/de-informal/settings.php26
-rw-r--r--wiki/lib/plugins/authad/lang/de/lang.php14
-rw-r--r--wiki/lib/plugins/authad/lang/de/settings.php26
-rw-r--r--wiki/lib/plugins/authad/lang/el/lang.php8
-rw-r--r--wiki/lib/plugins/authad/lang/el/settings.php8
-rw-r--r--wiki/lib/plugins/authad/lang/en/lang.php15
-rw-r--r--wiki/lib/plugins/authad/lang/en/settings.php17
-rw-r--r--wiki/lib/plugins/authad/lang/eo/lang.php9
-rw-r--r--wiki/lib/plugins/authad/lang/eo/settings.php20
-rw-r--r--wiki/lib/plugins/authad/lang/es/lang.php15
-rw-r--r--wiki/lib/plugins/authad/lang/es/settings.php26
-rw-r--r--wiki/lib/plugins/authad/lang/et/lang.php8
-rw-r--r--wiki/lib/plugins/authad/lang/eu/lang.php10
-rw-r--r--wiki/lib/plugins/authad/lang/eu/settings.php13
-rw-r--r--wiki/lib/plugins/authad/lang/fa/lang.php14
-rw-r--r--wiki/lib/plugins/authad/lang/fa/settings.php24
-rw-r--r--wiki/lib/plugins/authad/lang/fi/lang.php8
-rw-r--r--wiki/lib/plugins/authad/lang/fi/settings.php9
-rw-r--r--wiki/lib/plugins/authad/lang/fr/lang.php15
-rw-r--r--wiki/lib/plugins/authad/lang/fr/settings.php24
-rw-r--r--wiki/lib/plugins/authad/lang/gl/lang.php8
-rw-r--r--wiki/lib/plugins/authad/lang/he/lang.php10
-rw-r--r--wiki/lib/plugins/authad/lang/he/settings.php8
-rw-r--r--wiki/lib/plugins/authad/lang/hr/lang.php12
-rw-r--r--wiki/lib/plugins/authad/lang/hr/settings.php22
-rw-r--r--wiki/lib/plugins/authad/lang/hu/lang.php11
-rw-r--r--wiki/lib/plugins/authad/lang/hu/settings.php21
-rw-r--r--wiki/lib/plugins/authad/lang/it/lang.php13
-rw-r--r--wiki/lib/plugins/authad/lang/it/settings.php23
-rw-r--r--wiki/lib/plugins/authad/lang/ja/lang.php15
-rw-r--r--wiki/lib/plugins/authad/lang/ja/settings.php24
-rw-r--r--wiki/lib/plugins/authad/lang/ka/lang.php8
-rw-r--r--wiki/lib/plugins/authad/lang/ko/lang.php13
-rw-r--r--wiki/lib/plugins/authad/lang/ko/settings.php23
-rw-r--r--wiki/lib/plugins/authad/lang/lv/lang.php13
-rw-r--r--wiki/lib/plugins/authad/lang/lv/settings.php13
-rw-r--r--wiki/lib/plugins/authad/lang/nl/lang.php15
-rw-r--r--wiki/lib/plugins/authad/lang/nl/settings.php24
-rw-r--r--wiki/lib/plugins/authad/lang/no/lang.php16
-rw-r--r--wiki/lib/plugins/authad/lang/no/settings.php26
-rw-r--r--wiki/lib/plugins/authad/lang/pl/lang.php13
-rw-r--r--wiki/lib/plugins/authad/lang/pl/settings.php29
-rw-r--r--wiki/lib/plugins/authad/lang/pt-br/lang.php14
-rw-r--r--wiki/lib/plugins/authad/lang/pt-br/settings.php25
-rw-r--r--wiki/lib/plugins/authad/lang/pt/lang.php13
-rw-r--r--wiki/lib/plugins/authad/lang/pt/settings.php25
-rw-r--r--wiki/lib/plugins/authad/lang/ro/lang.php11
-rw-r--r--wiki/lib/plugins/authad/lang/ru/lang.php15
-rw-r--r--wiki/lib/plugins/authad/lang/ru/settings.php30
-rw-r--r--wiki/lib/plugins/authad/lang/sk/lang.php12
-rw-r--r--wiki/lib/plugins/authad/lang/sk/settings.php22
-rw-r--r--wiki/lib/plugins/authad/lang/sl/lang.php8
-rw-r--r--wiki/lib/plugins/authad/lang/sl/settings.php11
-rw-r--r--wiki/lib/plugins/authad/lang/sr/lang.php12
-rw-r--r--wiki/lib/plugins/authad/lang/sr/settings.php19
-rw-r--r--wiki/lib/plugins/authad/lang/sv/lang.php13
-rw-r--r--wiki/lib/plugins/authad/lang/sv/settings.php20
-rw-r--r--wiki/lib/plugins/authad/lang/tr/lang.php8
-rw-r--r--wiki/lib/plugins/authad/lang/uk/lang.php14
-rw-r--r--wiki/lib/plugins/authad/lang/uk/settings.php17
-rw-r--r--wiki/lib/plugins/authad/lang/zh-tw/lang.php10
-rw-r--r--wiki/lib/plugins/authad/lang/zh-tw/settings.php21
-rw-r--r--wiki/lib/plugins/authad/lang/zh/lang.php14
-rw-r--r--wiki/lib/plugins/authad/lang/zh/settings.php25
-rw-r--r--wiki/lib/plugins/authad/plugin.info.txt7
-rw-r--r--wiki/lib/plugins/authldap/auth.php649
-rw-r--r--wiki/lib/plugins/authldap/conf/default.php22
-rw-r--r--wiki/lib/plugins/authldap/conf/metadata.php21
-rw-r--r--wiki/lib/plugins/authldap/lang/ar/settings.php13
-rw-r--r--wiki/lib/plugins/authldap/lang/bg/settings.php20
-rw-r--r--wiki/lib/plugins/authldap/lang/ca/lang.php9
-rw-r--r--wiki/lib/plugins/authldap/lang/ca/settings.php10
-rw-r--r--wiki/lib/plugins/authldap/lang/cs/lang.php9
-rw-r--r--wiki/lib/plugins/authldap/lang/cs/settings.php34
-rw-r--r--wiki/lib/plugins/authldap/lang/cy/lang.php11
-rw-r--r--wiki/lib/plugins/authldap/lang/cy/settings.php29
-rw-r--r--wiki/lib/plugins/authldap/lang/da/lang.php10
-rw-r--r--wiki/lib/plugins/authldap/lang/da/settings.php29
-rw-r--r--wiki/lib/plugins/authldap/lang/de-informal/lang.php9
-rw-r--r--wiki/lib/plugins/authldap/lang/de-informal/settings.php35
-rw-r--r--wiki/lib/plugins/authldap/lang/de/lang.php10
-rw-r--r--wiki/lib/plugins/authldap/lang/de/settings.php36
-rw-r--r--wiki/lib/plugins/authldap/lang/en/lang.php11
-rw-r--r--wiki/lib/plugins/authldap/lang/en/settings.php29
-rw-r--r--wiki/lib/plugins/authldap/lang/eo/settings.php27
-rw-r--r--wiki/lib/plugins/authldap/lang/es/lang.php10
-rw-r--r--wiki/lib/plugins/authldap/lang/es/settings.php36
-rw-r--r--wiki/lib/plugins/authldap/lang/et/settings.php9
-rw-r--r--wiki/lib/plugins/authldap/lang/eu/lang.php8
-rw-r--r--wiki/lib/plugins/authldap/lang/eu/settings.php11
-rw-r--r--wiki/lib/plugins/authldap/lang/fa/lang.php9
-rw-r--r--wiki/lib/plugins/authldap/lang/fa/settings.php37
-rw-r--r--wiki/lib/plugins/authldap/lang/fi/settings.php11
-rw-r--r--wiki/lib/plugins/authldap/lang/fr/lang.php9
-rw-r--r--wiki/lib/plugins/authldap/lang/fr/settings.php33
-rw-r--r--wiki/lib/plugins/authldap/lang/he/settings.php14
-rw-r--r--wiki/lib/plugins/authldap/lang/hr/lang.php9
-rw-r--r--wiki/lib/plugins/authldap/lang/hr/settings.php32
-rw-r--r--wiki/lib/plugins/authldap/lang/hu/lang.php9
-rw-r--r--wiki/lib/plugins/authldap/lang/hu/settings.php33
-rw-r--r--wiki/lib/plugins/authldap/lang/it/lang.php9
-rw-r--r--wiki/lib/plugins/authldap/lang/it/settings.php35
-rw-r--r--wiki/lib/plugins/authldap/lang/ja/lang.php9
-rw-r--r--wiki/lib/plugins/authldap/lang/ja/settings.php37
-rw-r--r--wiki/lib/plugins/authldap/lang/ko/lang.php9
-rw-r--r--wiki/lib/plugins/authldap/lang/ko/settings.php32
-rw-r--r--wiki/lib/plugins/authldap/lang/lv/settings.php9
-rw-r--r--wiki/lib/plugins/authldap/lang/nl/lang.php9
-rw-r--r--wiki/lib/plugins/authldap/lang/nl/settings.php34
-rw-r--r--wiki/lib/plugins/authldap/lang/no/lang.php9
-rw-r--r--wiki/lib/plugins/authldap/lang/no/settings.php35
-rw-r--r--wiki/lib/plugins/authldap/lang/pl/lang.php9
-rw-r--r--wiki/lib/plugins/authldap/lang/pl/settings.php34
-rw-r--r--wiki/lib/plugins/authldap/lang/pt-br/lang.php9
-rw-r--r--wiki/lib/plugins/authldap/lang/pt-br/settings.php34
-rw-r--r--wiki/lib/plugins/authldap/lang/pt/lang.php9
-rw-r--r--wiki/lib/plugins/authldap/lang/pt/settings.php34
-rw-r--r--wiki/lib/plugins/authldap/lang/ru/lang.php9
-rw-r--r--wiki/lib/plugins/authldap/lang/ru/settings.php37
-rw-r--r--wiki/lib/plugins/authldap/lang/sk/lang.php9
-rw-r--r--wiki/lib/plugins/authldap/lang/sk/settings.php29
-rw-r--r--wiki/lib/plugins/authldap/lang/sl/settings.php10
-rw-r--r--wiki/lib/plugins/authldap/lang/sr/lang.php9
-rw-r--r--wiki/lib/plugins/authldap/lang/sr/settings.php17
-rw-r--r--wiki/lib/plugins/authldap/lang/sv/lang.php9
-rw-r--r--wiki/lib/plugins/authldap/lang/sv/settings.php23
-rw-r--r--wiki/lib/plugins/authldap/lang/tr/settings.php8
-rw-r--r--wiki/lib/plugins/authldap/lang/uk/lang.php10
-rw-r--r--wiki/lib/plugins/authldap/lang/uk/settings.php23
-rw-r--r--wiki/lib/plugins/authldap/lang/zh-tw/settings.php26
-rw-r--r--wiki/lib/plugins/authldap/lang/zh/lang.php9
-rw-r--r--wiki/lib/plugins/authldap/lang/zh/settings.php35
-rw-r--r--wiki/lib/plugins/authldap/plugin.info.txt7
-rw-r--r--wiki/lib/plugins/authmysql/auth.php1110
-rw-r--r--wiki/lib/plugins/authmysql/conf/default.php34
-rw-r--r--wiki/lib/plugins/authmysql/conf/metadata.php34
-rw-r--r--wiki/lib/plugins/authmysql/lang/bg/lang.php10
-rw-r--r--wiki/lib/plugins/authmysql/lang/bg/settings.php19
-rw-r--r--wiki/lib/plugins/authmysql/lang/cs/lang.php11
-rw-r--r--wiki/lib/plugins/authmysql/lang/cs/settings.php43
-rw-r--r--wiki/lib/plugins/authmysql/lang/cy/lang.php13
-rw-r--r--wiki/lib/plugins/authmysql/lang/cy/settings.php39
-rw-r--r--wiki/lib/plugins/authmysql/lang/da/lang.php12
-rw-r--r--wiki/lib/plugins/authmysql/lang/da/settings.php31
-rw-r--r--wiki/lib/plugins/authmysql/lang/de-informal/lang.php11
-rw-r--r--wiki/lib/plugins/authmysql/lang/de-informal/settings.php43
-rw-r--r--wiki/lib/plugins/authmysql/lang/de/lang.php13
-rw-r--r--wiki/lib/plugins/authmysql/lang/de/settings.php43
-rw-r--r--wiki/lib/plugins/authmysql/lang/en/lang.php13
-rw-r--r--wiki/lib/plugins/authmysql/lang/en/settings.php39
-rw-r--r--wiki/lib/plugins/authmysql/lang/eo/lang.php8
-rw-r--r--wiki/lib/plugins/authmysql/lang/eo/settings.php41
-rw-r--r--wiki/lib/plugins/authmysql/lang/es/lang.php11
-rw-r--r--wiki/lib/plugins/authmysql/lang/es/settings.php46
-rw-r--r--wiki/lib/plugins/authmysql/lang/eu/lang.php10
-rw-r--r--wiki/lib/plugins/authmysql/lang/eu/settings.php14
-rw-r--r--wiki/lib/plugins/authmysql/lang/fa/lang.php12
-rw-r--r--wiki/lib/plugins/authmysql/lang/fa/settings.php43
-rw-r--r--wiki/lib/plugins/authmysql/lang/fi/settings.php11
-rw-r--r--wiki/lib/plugins/authmysql/lang/fr/lang.php11
-rw-r--r--wiki/lib/plugins/authmysql/lang/fr/settings.php42
-rw-r--r--wiki/lib/plugins/authmysql/lang/he/settings.php12
-rw-r--r--wiki/lib/plugins/authmysql/lang/hr/lang.php11
-rw-r--r--wiki/lib/plugins/authmysql/lang/hr/settings.php42
-rw-r--r--wiki/lib/plugins/authmysql/lang/hu/lang.php11
-rw-r--r--wiki/lib/plugins/authmysql/lang/hu/settings.php43
-rw-r--r--wiki/lib/plugins/authmysql/lang/it/lang.php11
-rw-r--r--wiki/lib/plugins/authmysql/lang/it/settings.php46
-rw-r--r--wiki/lib/plugins/authmysql/lang/ja/lang.php11
-rw-r--r--wiki/lib/plugins/authmysql/lang/ja/settings.php42
-rw-r--r--wiki/lib/plugins/authmysql/lang/ko/lang.php12
-rw-r--r--wiki/lib/plugins/authmysql/lang/ko/settings.php43
-rw-r--r--wiki/lib/plugins/authmysql/lang/lv/settings.php12
-rw-r--r--wiki/lib/plugins/authmysql/lang/nl/lang.php11
-rw-r--r--wiki/lib/plugins/authmysql/lang/nl/settings.php42
-rw-r--r--wiki/lib/plugins/authmysql/lang/no/lang.php11
-rw-r--r--wiki/lib/plugins/authmysql/lang/no/settings.php44
-rw-r--r--wiki/lib/plugins/authmysql/lang/pl/lang.php11
-rw-r--r--wiki/lib/plugins/authmysql/lang/pl/settings.php45
-rw-r--r--wiki/lib/plugins/authmysql/lang/pt-br/lang.php11
-rw-r--r--wiki/lib/plugins/authmysql/lang/pt-br/settings.php43
-rw-r--r--wiki/lib/plugins/authmysql/lang/pt/lang.php12
-rw-r--r--wiki/lib/plugins/authmysql/lang/pt/settings.php43
-rw-r--r--wiki/lib/plugins/authmysql/lang/ru/lang.php12
-rw-r--r--wiki/lib/plugins/authmysql/lang/ru/settings.php45
-rw-r--r--wiki/lib/plugins/authmysql/lang/sk/lang.php11
-rw-r--r--wiki/lib/plugins/authmysql/lang/sk/settings.php42
-rw-r--r--wiki/lib/plugins/authmysql/lang/sl/settings.php11
-rw-r--r--wiki/lib/plugins/authmysql/lang/sr/lang.php11
-rw-r--r--wiki/lib/plugins/authmysql/lang/sr/settings.php42
-rw-r--r--wiki/lib/plugins/authmysql/lang/sv/lang.php11
-rw-r--r--wiki/lib/plugins/authmysql/lang/sv/settings.php29
-rw-r--r--wiki/lib/plugins/authmysql/lang/tr/lang.php9
-rw-r--r--wiki/lib/plugins/authmysql/lang/tr/settings.php41
-rw-r--r--wiki/lib/plugins/authmysql/lang/uk/lang.php10
-rw-r--r--wiki/lib/plugins/authmysql/lang/zh-tw/settings.php42
-rw-r--r--wiki/lib/plugins/authmysql/lang/zh/lang.php11
-rw-r--r--wiki/lib/plugins/authmysql/lang/zh/settings.php42
-rw-r--r--wiki/lib/plugins/authmysql/plugin.info.txt7
-rw-r--r--wiki/lib/plugins/authpdo/README27
-rw-r--r--wiki/lib/plugins/authpdo/auth.php781
-rw-r--r--wiki/lib/plugins/authpdo/conf/default.php118
-rw-r--r--wiki/lib/plugins/authpdo/conf/metadata.php27
-rw-r--r--wiki/lib/plugins/authpdo/lang/bg/lang.php9
-rw-r--r--wiki/lib/plugins/authpdo/lang/cs/lang.php10
-rw-r--r--wiki/lib/plugins/authpdo/lang/cy/lang.php12
-rw-r--r--wiki/lib/plugins/authpdo/lang/de/lang.php12
-rw-r--r--wiki/lib/plugins/authpdo/lang/en/lang.php12
-rw-r--r--wiki/lib/plugins/authpdo/lang/en/settings.php25
-rw-r--r--wiki/lib/plugins/authpdo/lang/es/lang.php10
-rw-r--r--wiki/lib/plugins/authpdo/lang/fa/lang.php11
-rw-r--r--wiki/lib/plugins/authpdo/lang/fr/lang.php10
-rw-r--r--wiki/lib/plugins/authpdo/lang/hr/lang.php10
-rw-r--r--wiki/lib/plugins/authpdo/lang/hu/lang.php10
-rw-r--r--wiki/lib/plugins/authpdo/lang/it/lang.php10
-rw-r--r--wiki/lib/plugins/authpdo/lang/ja/lang.php10
-rw-r--r--wiki/lib/plugins/authpdo/lang/ko/lang.php11
-rw-r--r--wiki/lib/plugins/authpdo/lang/nl/lang.php10
-rw-r--r--wiki/lib/plugins/authpdo/lang/pt-br/lang.php10
-rw-r--r--wiki/lib/plugins/authpdo/lang/pt/lang.php9
-rw-r--r--wiki/lib/plugins/authpdo/lang/ru/lang.php11
-rw-r--r--wiki/lib/plugins/authpdo/lang/sk/lang.php10
-rw-r--r--wiki/lib/plugins/authpdo/lang/tr/lang.php8
-rw-r--r--wiki/lib/plugins/authpdo/lang/zh/lang.php10
-rw-r--r--wiki/lib/plugins/authpdo/plugin.info.txt7
-rw-r--r--wiki/lib/plugins/authpgsql/auth.php431
-rw-r--r--wiki/lib/plugins/authpgsql/conf/default.php33
-rw-r--r--wiki/lib/plugins/authpgsql/conf/metadata.php33
-rw-r--r--wiki/lib/plugins/authpgsql/lang/bg/settings.php13
-rw-r--r--wiki/lib/plugins/authpgsql/lang/cs/settings.php39
-rw-r--r--wiki/lib/plugins/authpgsql/lang/cy/settings.php33
-rw-r--r--wiki/lib/plugins/authpgsql/lang/da/settings.php22
-rw-r--r--wiki/lib/plugins/authpgsql/lang/de-informal/settings.php39
-rw-r--r--wiki/lib/plugins/authpgsql/lang/de/settings.php39
-rw-r--r--wiki/lib/plugins/authpgsql/lang/en/settings.php33
-rw-r--r--wiki/lib/plugins/authpgsql/lang/eo/settings.php37
-rw-r--r--wiki/lib/plugins/authpgsql/lang/es/settings.php41
-rw-r--r--wiki/lib/plugins/authpgsql/lang/fa/settings.php40
-rw-r--r--wiki/lib/plugins/authpgsql/lang/fr/settings.php38
-rw-r--r--wiki/lib/plugins/authpgsql/lang/hr/settings.php38
-rw-r--r--wiki/lib/plugins/authpgsql/lang/hu/settings.php39
-rw-r--r--wiki/lib/plugins/authpgsql/lang/it/settings.php40
-rw-r--r--wiki/lib/plugins/authpgsql/lang/ja/settings.php38
-rw-r--r--wiki/lib/plugins/authpgsql/lang/ko/settings.php39
-rw-r--r--wiki/lib/plugins/authpgsql/lang/lv/settings.php9
-rw-r--r--wiki/lib/plugins/authpgsql/lang/nl/settings.php38
-rw-r--r--wiki/lib/plugins/authpgsql/lang/no/settings.php38
-rw-r--r--wiki/lib/plugins/authpgsql/lang/pl/settings.php40
-rw-r--r--wiki/lib/plugins/authpgsql/lang/pt-br/settings.php39
-rw-r--r--wiki/lib/plugins/authpgsql/lang/pt/settings.php39
-rw-r--r--wiki/lib/plugins/authpgsql/lang/ru/settings.php42
-rw-r--r--wiki/lib/plugins/authpgsql/lang/sk/settings.php38
-rw-r--r--wiki/lib/plugins/authpgsql/lang/sl/settings.php16
-rw-r--r--wiki/lib/plugins/authpgsql/lang/sr/settings.php18
-rw-r--r--wiki/lib/plugins/authpgsql/lang/sv/settings.php29
-rw-r--r--wiki/lib/plugins/authpgsql/lang/tr/settings.php13
-rw-r--r--wiki/lib/plugins/authpgsql/lang/uk/settings.php8
-rw-r--r--wiki/lib/plugins/authpgsql/lang/zh-tw/settings.php38
-rw-r--r--wiki/lib/plugins/authpgsql/lang/zh/settings.php38
-rw-r--r--wiki/lib/plugins/authpgsql/plugin.info.txt7
-rw-r--r--wiki/lib/plugins/authplain/auth.php443
-rw-r--r--wiki/lib/plugins/authplain/lang/af/lang.php6
-rw-r--r--wiki/lib/plugins/authplain/lang/ar/lang.php6
-rw-r--r--wiki/lib/plugins/authplain/lang/az/lang.php7
-rw-r--r--wiki/lib/plugins/authplain/lang/bg/lang.php9
-rw-r--r--wiki/lib/plugins/authplain/lang/bn/lang.php6
-rw-r--r--wiki/lib/plugins/authplain/lang/ca-valencia/lang.php6
-rw-r--r--wiki/lib/plugins/authplain/lang/ca/lang.php7
-rw-r--r--wiki/lib/plugins/authplain/lang/cs/lang.php12
-rw-r--r--wiki/lib/plugins/authplain/lang/cy/lang.php8
-rw-r--r--wiki/lib/plugins/authplain/lang/da/lang.php9
-rw-r--r--wiki/lib/plugins/authplain/lang/de-informal/lang.php11
-rw-r--r--wiki/lib/plugins/authplain/lang/de/lang.php12
-rw-r--r--wiki/lib/plugins/authplain/lang/el/lang.php7
-rw-r--r--wiki/lib/plugins/authplain/lang/en/lang.php9
-rw-r--r--wiki/lib/plugins/authplain/lang/eo/lang.php9
-rw-r--r--wiki/lib/plugins/authplain/lang/es/lang.php12
-rw-r--r--wiki/lib/plugins/authplain/lang/et/lang.php6
-rw-r--r--wiki/lib/plugins/authplain/lang/eu/lang.php7
-rw-r--r--wiki/lib/plugins/authplain/lang/fa/lang.php12
-rw-r--r--wiki/lib/plugins/authplain/lang/fi/lang.php7
-rw-r--r--wiki/lib/plugins/authplain/lang/fo/lang.php6
-rw-r--r--wiki/lib/plugins/authplain/lang/fr/lang.php13
-rw-r--r--wiki/lib/plugins/authplain/lang/gl/lang.php6
-rw-r--r--wiki/lib/plugins/authplain/lang/he/lang.php7
-rw-r--r--wiki/lib/plugins/authplain/lang/hr/lang.php11
-rw-r--r--wiki/lib/plugins/authplain/lang/hu/lang.php10
-rw-r--r--wiki/lib/plugins/authplain/lang/ia/lang.php6
-rw-r--r--wiki/lib/plugins/authplain/lang/id-ni/lang.php6
-rw-r--r--wiki/lib/plugins/authplain/lang/id/lang.php6
-rw-r--r--wiki/lib/plugins/authplain/lang/is/lang.php6
-rw-r--r--wiki/lib/plugins/authplain/lang/it/lang.php12
-rw-r--r--wiki/lib/plugins/authplain/lang/ja/lang.php11
-rw-r--r--wiki/lib/plugins/authplain/lang/ka/lang.php7
-rw-r--r--wiki/lib/plugins/authplain/lang/kk/lang.php6
-rw-r--r--wiki/lib/plugins/authplain/lang/km/lang.php6
-rw-r--r--wiki/lib/plugins/authplain/lang/ko/lang.php11
-rw-r--r--wiki/lib/plugins/authplain/lang/ku/lang.php6
-rw-r--r--wiki/lib/plugins/authplain/lang/la/lang.php6
-rw-r--r--wiki/lib/plugins/authplain/lang/lb/lang.php6
-rw-r--r--wiki/lib/plugins/authplain/lang/lt/lang.php6
-rw-r--r--wiki/lib/plugins/authplain/lang/lv/lang.php7
-rw-r--r--wiki/lib/plugins/authplain/lang/mg/lang.php6
-rw-r--r--wiki/lib/plugins/authplain/lang/mk/lang.php6
-rw-r--r--wiki/lib/plugins/authplain/lang/mr/lang.php6
-rw-r--r--wiki/lib/plugins/authplain/lang/ms/lang.php6
-rw-r--r--wiki/lib/plugins/authplain/lang/ne/lang.php6
-rw-r--r--wiki/lib/plugins/authplain/lang/nl/lang.php12
-rw-r--r--wiki/lib/plugins/authplain/lang/no/lang.php11
-rw-r--r--wiki/lib/plugins/authplain/lang/pl/lang.php11
-rw-r--r--wiki/lib/plugins/authplain/lang/pt-br/lang.php12
-rw-r--r--wiki/lib/plugins/authplain/lang/pt/lang.php11
-rw-r--r--wiki/lib/plugins/authplain/lang/ro/lang.php7
-rw-r--r--wiki/lib/plugins/authplain/lang/ru/lang.php13
-rw-r--r--wiki/lib/plugins/authplain/lang/sk/lang.php11
-rw-r--r--wiki/lib/plugins/authplain/lang/sl/lang.php7
-rw-r--r--wiki/lib/plugins/authplain/lang/sq/lang.php6
-rw-r--r--wiki/lib/plugins/authplain/lang/sr/lang.php7
-rw-r--r--wiki/lib/plugins/authplain/lang/sv/lang.php10
-rw-r--r--wiki/lib/plugins/authplain/lang/th/lang.php7
-rw-r--r--wiki/lib/plugins/authplain/lang/tr/lang.php7
-rw-r--r--wiki/lib/plugins/authplain/lang/uk/lang.php9
-rw-r--r--wiki/lib/plugins/authplain/lang/vi/lang.php6
-rw-r--r--wiki/lib/plugins/authplain/lang/zh-tw/lang.php7
-rw-r--r--wiki/lib/plugins/authplain/lang/zh/lang.php12
-rw-r--r--wiki/lib/plugins/authplain/plugin.info.txt7
-rw-r--r--wiki/lib/plugins/cli.php11
-rw-r--r--wiki/lib/plugins/config/admin.php404
-rw-r--r--wiki/lib/plugins/config/admin.svg1
-rw-r--r--wiki/lib/plugins/config/images/danger.pngbin637 -> 0 bytes
-rw-r--r--wiki/lib/plugins/config/images/security.pngbin682 -> 0 bytes
-rw-r--r--wiki/lib/plugins/config/images/warning.pngbin606 -> 0 bytes
-rw-r--r--wiki/lib/plugins/config/lang/af/lang.php23
-rw-r--r--wiki/lib/plugins/config/lang/ar/intro.txt7
-rw-r--r--wiki/lib/plugins/config/lang/ar/lang.php192
-rw-r--r--wiki/lib/plugins/config/lang/bg/intro.txt7
-rw-r--r--wiki/lib/plugins/config/lang/bg/lang.php195
-rw-r--r--wiki/lib/plugins/config/lang/ca-valencia/intro.txt10
-rw-r--r--wiki/lib/plugins/config/lang/ca-valencia/lang.php177
-rw-r--r--wiki/lib/plugins/config/lang/ca/intro.txt7
-rw-r--r--wiki/lib/plugins/config/lang/ca/lang.php188
-rw-r--r--wiki/lib/plugins/config/lang/cs/intro.txt7
-rw-r--r--wiki/lib/plugins/config/lang/cs/lang.php226
-rw-r--r--wiki/lib/plugins/config/lang/cy/intro.txt7
-rw-r--r--wiki/lib/plugins/config/lang/cy/lang.php262
-rw-r--r--wiki/lib/plugins/config/lang/da/intro.txt7
-rw-r--r--wiki/lib/plugins/config/lang/da/lang.php200
-rw-r--r--wiki/lib/plugins/config/lang/de-informal/intro.txt7
-rw-r--r--wiki/lib/plugins/config/lang/de-informal/lang.php208
-rw-r--r--wiki/lib/plugins/config/lang/de/intro.txt7
-rw-r--r--wiki/lib/plugins/config/lang/de/lang.php225
-rw-r--r--wiki/lib/plugins/config/lang/el/intro.txt7
-rw-r--r--wiki/lib/plugins/config/lang/el/lang.php199
-rw-r--r--wiki/lib/plugins/config/lang/en/intro.txt7
-rw-r--r--wiki/lib/plugins/config/lang/en/lang.php279
-rw-r--r--wiki/lib/plugins/config/lang/eo/intro.txt7
-rw-r--r--wiki/lib/plugins/config/lang/eo/lang.php202
-rw-r--r--wiki/lib/plugins/config/lang/es/intro.txt7
-rw-r--r--wiki/lib/plugins/config/lang/es/lang.php228
-rw-r--r--wiki/lib/plugins/config/lang/et/lang.php30
-rw-r--r--wiki/lib/plugins/config/lang/eu/intro.txt7
-rw-r--r--wiki/lib/plugins/config/lang/eu/lang.php185
-rw-r--r--wiki/lib/plugins/config/lang/fa/intro.txt8
-rw-r--r--wiki/lib/plugins/config/lang/fa/lang.php204
-rw-r--r--wiki/lib/plugins/config/lang/fi/intro.txt7
-rw-r--r--wiki/lib/plugins/config/lang/fi/lang.php198
-rw-r--r--wiki/lib/plugins/config/lang/fr/intro.txt7
-rw-r--r--wiki/lib/plugins/config/lang/fr/lang.php233
-rw-r--r--wiki/lib/plugins/config/lang/gl/intro.txt7
-rw-r--r--wiki/lib/plugins/config/lang/gl/lang.php194
-rw-r--r--wiki/lib/plugins/config/lang/he/intro.txt7
-rw-r--r--wiki/lib/plugins/config/lang/he/lang.php166
-rw-r--r--wiki/lib/plugins/config/lang/hi/lang.php14
-rw-r--r--wiki/lib/plugins/config/lang/hr/intro.txt7
-rw-r--r--wiki/lib/plugins/config/lang/hr/lang.php210
-rw-r--r--wiki/lib/plugins/config/lang/hu/intro.txt9
-rw-r--r--wiki/lib/plugins/config/lang/hu/lang.php202
-rw-r--r--wiki/lib/plugins/config/lang/ia/intro.txt7
-rw-r--r--wiki/lib/plugins/config/lang/ia/lang.php175
-rw-r--r--wiki/lib/plugins/config/lang/id-ni/intro.txt7
-rw-r--r--wiki/lib/plugins/config/lang/id-ni/lang.php68
-rw-r--r--wiki/lib/plugins/config/lang/id/intro.txt5
-rw-r--r--wiki/lib/plugins/config/lang/is/lang.php57
-rw-r--r--wiki/lib/plugins/config/lang/it/intro.txt7
-rw-r--r--wiki/lib/plugins/config/lang/it/lang.php214
-rw-r--r--wiki/lib/plugins/config/lang/ja/intro.txt11
-rw-r--r--wiki/lib/plugins/config/lang/ja/lang.php207
-rw-r--r--wiki/lib/plugins/config/lang/ko/intro.txt7
-rw-r--r--wiki/lib/plugins/config/lang/ko/lang.php211
-rw-r--r--wiki/lib/plugins/config/lang/la/intro.txt7
-rw-r--r--wiki/lib/plugins/config/lang/la/lang.php176
-rw-r--r--wiki/lib/plugins/config/lang/lb/intro.txt7
-rw-r--r--wiki/lib/plugins/config/lang/lt/intro.txt7
-rw-r--r--wiki/lib/plugins/config/lang/lt/lang.php22
-rw-r--r--wiki/lib/plugins/config/lang/lv/intro.txt7
-rw-r--r--wiki/lib/plugins/config/lang/lv/lang.php185
-rw-r--r--wiki/lib/plugins/config/lang/mr/intro.txt10
-rw-r--r--wiki/lib/plugins/config/lang/mr/lang.php177
-rw-r--r--wiki/lib/plugins/config/lang/ne/lang.php68
-rw-r--r--wiki/lib/plugins/config/lang/nl/intro.txt7
-rw-r--r--wiki/lib/plugins/config/lang/nl/lang.php219
-rw-r--r--wiki/lib/plugins/config/lang/no/intro.txt7
-rw-r--r--wiki/lib/plugins/config/lang/no/lang.php214
-rw-r--r--wiki/lib/plugins/config/lang/pl/intro.txt7
-rw-r--r--wiki/lib/plugins/config/lang/pl/lang.php215
-rw-r--r--wiki/lib/plugins/config/lang/pt-br/intro.txt7
-rw-r--r--wiki/lib/plugins/config/lang/pt-br/lang.php217
-rw-r--r--wiki/lib/plugins/config/lang/pt/intro.txt7
-rw-r--r--wiki/lib/plugins/config/lang/pt/lang.php193
-rw-r--r--wiki/lib/plugins/config/lang/ro/intro.txt7
-rw-r--r--wiki/lib/plugins/config/lang/ro/lang.php195
-rw-r--r--wiki/lib/plugins/config/lang/ru/intro.txt7
-rw-r--r--wiki/lib/plugins/config/lang/ru/lang.php222
-rw-r--r--wiki/lib/plugins/config/lang/sk/intro.txt7
-rw-r--r--wiki/lib/plugins/config/lang/sk/lang.php198
-rw-r--r--wiki/lib/plugins/config/lang/sl/intro.txt7
-rw-r--r--wiki/lib/plugins/config/lang/sl/lang.php189
-rw-r--r--wiki/lib/plugins/config/lang/sq/intro.txt7
-rw-r--r--wiki/lib/plugins/config/lang/sq/lang.php175
-rw-r--r--wiki/lib/plugins/config/lang/sr/intro.txt7
-rw-r--r--wiki/lib/plugins/config/lang/sr/lang.php185
-rw-r--r--wiki/lib/plugins/config/lang/sv/intro.txt7
-rw-r--r--wiki/lib/plugins/config/lang/sv/lang.php197
-rw-r--r--wiki/lib/plugins/config/lang/th/lang.php105
-rw-r--r--wiki/lib/plugins/config/lang/tr/intro.txt7
-rw-r--r--wiki/lib/plugins/config/lang/tr/lang.php135
-rw-r--r--wiki/lib/plugins/config/lang/uk/intro.txt7
-rw-r--r--wiki/lib/plugins/config/lang/uk/lang.php189
-rw-r--r--wiki/lib/plugins/config/lang/zh-tw/intro.txt7
-rw-r--r--wiki/lib/plugins/config/lang/zh-tw/lang.php201
-rw-r--r--wiki/lib/plugins/config/lang/zh/intro.txt7
-rw-r--r--wiki/lib/plugins/config/lang/zh/lang.php221
-rw-r--r--wiki/lib/plugins/config/plugin.info.txt7
-rw-r--r--wiki/lib/plugins/config/settings/config.class.php1430
-rw-r--r--wiki/lib/plugins/config/settings/config.metadata.php240
-rw-r--r--wiki/lib/plugins/config/settings/extra.class.php309
-rw-r--r--wiki/lib/plugins/config/style.css167
-rw-r--r--wiki/lib/plugins/extension/action.php85
-rw-r--r--wiki/lib/plugins/extension/admin.php159
-rw-r--r--wiki/lib/plugins/extension/admin.svg1
-rw-r--r--wiki/lib/plugins/extension/all.less37
-rw-r--r--wiki/lib/plugins/extension/helper/extension.php1162
-rw-r--r--wiki/lib/plugins/extension/helper/gui.php193
-rw-r--r--wiki/lib/plugins/extension/helper/list.php567
-rw-r--r--wiki/lib/plugins/extension/helper/repository.php191
-rw-r--r--wiki/lib/plugins/extension/images/bug.gifbin194 -> 0 bytes
-rw-r--r--wiki/lib/plugins/extension/images/disabled.pngbin1163 -> 0 bytes
-rw-r--r--wiki/lib/plugins/extension/images/donate.pngbin677 -> 0 bytes
-rw-r--r--wiki/lib/plugins/extension/images/down.pngbin197 -> 0 bytes
-rw-r--r--wiki/lib/plugins/extension/images/enabled.pngbin1172 -> 0 bytes
-rw-r--r--wiki/lib/plugins/extension/images/icons.xcfbin67195 -> 0 bytes
-rw-r--r--wiki/lib/plugins/extension/images/license.txt4
-rw-r--r--wiki/lib/plugins/extension/images/overlay.pngbin68 -> 0 bytes
-rw-r--r--wiki/lib/plugins/extension/images/plugin.pngbin4054 -> 0 bytes
-rw-r--r--wiki/lib/plugins/extension/images/tag.pngbin341 -> 0 bytes
-rw-r--r--wiki/lib/plugins/extension/images/template.pngbin5206 -> 0 bytes
-rw-r--r--wiki/lib/plugins/extension/images/up.pngbin197 -> 0 bytes
-rw-r--r--wiki/lib/plugins/extension/images/warning.pngbin606 -> 0 bytes
-rw-r--r--wiki/lib/plugins/extension/lang/bg/intro_install.txt1
-rw-r--r--wiki/lib/plugins/extension/lang/bg/intro_plugins.txt1
-rw-r--r--wiki/lib/plugins/extension/lang/bg/intro_search.txt1
-rw-r--r--wiki/lib/plugins/extension/lang/bg/intro_templates.txt1
-rw-r--r--wiki/lib/plugins/extension/lang/bg/lang.php84
-rw-r--r--wiki/lib/plugins/extension/lang/cs/intro_install.txt1
-rw-r--r--wiki/lib/plugins/extension/lang/cs/intro_plugins.txt1
-rw-r--r--wiki/lib/plugins/extension/lang/cs/intro_search.txt1
-rw-r--r--wiki/lib/plugins/extension/lang/cs/intro_templates.txt1
-rw-r--r--wiki/lib/plugins/extension/lang/cs/lang.php98
-rw-r--r--wiki/lib/plugins/extension/lang/cy/intro_install.txt1
-rw-r--r--wiki/lib/plugins/extension/lang/cy/intro_plugins.txt1
-rw-r--r--wiki/lib/plugins/extension/lang/cy/intro_search.txt1
-rw-r--r--wiki/lib/plugins/extension/lang/cy/intro_templates.txt1
-rw-r--r--wiki/lib/plugins/extension/lang/cy/lang.php111
-rw-r--r--wiki/lib/plugins/extension/lang/da/intro_install.txt1
-rw-r--r--wiki/lib/plugins/extension/lang/da/intro_plugins.txt1
-rw-r--r--wiki/lib/plugins/extension/lang/da/intro_templates.txt1
-rw-r--r--wiki/lib/plugins/extension/lang/da/lang.php80
-rw-r--r--wiki/lib/plugins/extension/lang/de-informal/intro_install.txt1
-rw-r--r--wiki/lib/plugins/extension/lang/de-informal/intro_plugins.txt1
-rw-r--r--wiki/lib/plugins/extension/lang/de-informal/intro_search.txt1
-rw-r--r--wiki/lib/plugins/extension/lang/de-informal/intro_templates.txt1
-rw-r--r--wiki/lib/plugins/extension/lang/de-informal/lang.php95
-rw-r--r--wiki/lib/plugins/extension/lang/de/intro_install.txt1
-rw-r--r--wiki/lib/plugins/extension/lang/de/intro_plugins.txt1
-rw-r--r--wiki/lib/plugins/extension/lang/de/intro_search.txt1
-rw-r--r--wiki/lib/plugins/extension/lang/de/intro_templates.txt1
-rw-r--r--wiki/lib/plugins/extension/lang/de/lang.php102
-rw-r--r--wiki/lib/plugins/extension/lang/en/intro_install.txt1
-rw-r--r--wiki/lib/plugins/extension/lang/en/intro_plugins.txt1
-rw-r--r--wiki/lib/plugins/extension/lang/en/intro_search.txt1
-rw-r--r--wiki/lib/plugins/extension/lang/en/intro_templates.txt1
-rw-r--r--wiki/lib/plugins/extension/lang/en/lang.php109
-rw-r--r--wiki/lib/plugins/extension/lang/eo/intro_install.txt1
-rw-r--r--wiki/lib/plugins/extension/lang/eo/intro_plugins.txt1
-rw-r--r--wiki/lib/plugins/extension/lang/eo/intro_search.txt1
-rw-r--r--wiki/lib/plugins/extension/lang/eo/intro_templates.txt1
-rw-r--r--wiki/lib/plugins/extension/lang/eo/lang.php89
-rw-r--r--wiki/lib/plugins/extension/lang/es/intro_install.txt1
-rw-r--r--wiki/lib/plugins/extension/lang/es/intro_plugins.txt1
-rw-r--r--wiki/lib/plugins/extension/lang/es/intro_search.txt1
-rw-r--r--wiki/lib/plugins/extension/lang/es/intro_templates.txt1
-rw-r--r--wiki/lib/plugins/extension/lang/es/lang.php100
-rw-r--r--wiki/lib/plugins/extension/lang/fa/intro_install.txt1
-rw-r--r--wiki/lib/plugins/extension/lang/fa/intro_plugins.txt1
-rw-r--r--wiki/lib/plugins/extension/lang/fa/intro_search.txt1
-rw-r--r--wiki/lib/plugins/extension/lang/fa/intro_templates.txt1
-rw-r--r--wiki/lib/plugins/extension/lang/fa/lang.php97
-rw-r--r--wiki/lib/plugins/extension/lang/fi/lang.php37
-rw-r--r--wiki/lib/plugins/extension/lang/fr/intro_install.txt1
-rw-r--r--wiki/lib/plugins/extension/lang/fr/intro_plugins.txt1
-rw-r--r--wiki/lib/plugins/extension/lang/fr/intro_search.txt1
-rw-r--r--wiki/lib/plugins/extension/lang/fr/intro_templates.txt1
-rw-r--r--wiki/lib/plugins/extension/lang/fr/lang.php99
-rw-r--r--wiki/lib/plugins/extension/lang/he/lang.php26
-rw-r--r--wiki/lib/plugins/extension/lang/hr/intro_install.txt1
-rw-r--r--wiki/lib/plugins/extension/lang/hr/intro_plugins.txt1
-rw-r--r--wiki/lib/plugins/extension/lang/hr/intro_search.txt1
-rw-r--r--wiki/lib/plugins/extension/lang/hr/intro_templates.txt1
-rw-r--r--wiki/lib/plugins/extension/lang/hr/lang.php95
-rw-r--r--wiki/lib/plugins/extension/lang/hu/intro_install.txt1
-rw-r--r--wiki/lib/plugins/extension/lang/hu/intro_plugins.txt1
-rw-r--r--wiki/lib/plugins/extension/lang/hu/intro_search.txt1
-rw-r--r--wiki/lib/plugins/extension/lang/hu/intro_templates.txt1
-rw-r--r--wiki/lib/plugins/extension/lang/hu/lang.php95
-rw-r--r--wiki/lib/plugins/extension/lang/it/intro_install.txt1
-rw-r--r--wiki/lib/plugins/extension/lang/it/intro_plugins.txt1
-rw-r--r--wiki/lib/plugins/extension/lang/it/intro_search.txt1
-rw-r--r--wiki/lib/plugins/extension/lang/it/intro_templates.txt1
-rw-r--r--wiki/lib/plugins/extension/lang/it/lang.php98
-rw-r--r--wiki/lib/plugins/extension/lang/ja/intro_install.txt1
-rw-r--r--wiki/lib/plugins/extension/lang/ja/intro_plugins.txt1
-rw-r--r--wiki/lib/plugins/extension/lang/ja/intro_search.txt1
-rw-r--r--wiki/lib/plugins/extension/lang/ja/intro_templates.txt1
-rw-r--r--wiki/lib/plugins/extension/lang/ja/lang.php98
-rw-r--r--wiki/lib/plugins/extension/lang/ko/intro_install.txt1
-rw-r--r--wiki/lib/plugins/extension/lang/ko/intro_plugins.txt1
-rw-r--r--wiki/lib/plugins/extension/lang/ko/intro_search.txt1
-rw-r--r--wiki/lib/plugins/extension/lang/ko/intro_templates.txt1
-rw-r--r--wiki/lib/plugins/extension/lang/ko/lang.php97
-rw-r--r--wiki/lib/plugins/extension/lang/lv/intro_templates.txt1
-rw-r--r--wiki/lib/plugins/extension/lang/lv/lang.php8
-rw-r--r--wiki/lib/plugins/extension/lang/nl/intro_install.txt1
-rw-r--r--wiki/lib/plugins/extension/lang/nl/intro_plugins.txt1
-rw-r--r--wiki/lib/plugins/extension/lang/nl/intro_search.txt1
-rw-r--r--wiki/lib/plugins/extension/lang/nl/intro_templates.txt1
-rw-r--r--wiki/lib/plugins/extension/lang/nl/lang.php101
-rw-r--r--wiki/lib/plugins/extension/lang/no/intro_install.txt1
-rw-r--r--wiki/lib/plugins/extension/lang/no/intro_plugins.txt1
-rw-r--r--wiki/lib/plugins/extension/lang/no/intro_search.txt1
-rw-r--r--wiki/lib/plugins/extension/lang/no/intro_templates.txt2
-rw-r--r--wiki/lib/plugins/extension/lang/no/lang.php95
-rw-r--r--wiki/lib/plugins/extension/lang/pl/intro_install.txt1
-rw-r--r--wiki/lib/plugins/extension/lang/pl/intro_plugins.txt1
-rw-r--r--wiki/lib/plugins/extension/lang/pl/intro_search.txt1
-rw-r--r--wiki/lib/plugins/extension/lang/pl/intro_templates.txt1
-rw-r--r--wiki/lib/plugins/extension/lang/pl/lang.php97
-rw-r--r--wiki/lib/plugins/extension/lang/pt-br/intro_install.txt1
-rw-r--r--wiki/lib/plugins/extension/lang/pt-br/intro_plugins.txt1
-rw-r--r--wiki/lib/plugins/extension/lang/pt-br/intro_search.txt1
-rw-r--r--wiki/lib/plugins/extension/lang/pt-br/intro_templates.txt1
-rw-r--r--wiki/lib/plugins/extension/lang/pt-br/lang.php97
-rw-r--r--wiki/lib/plugins/extension/lang/pt/intro_install.txt1
-rw-r--r--wiki/lib/plugins/extension/lang/pt/intro_plugins.txt1
-rw-r--r--wiki/lib/plugins/extension/lang/pt/intro_search.txt1
-rw-r--r--wiki/lib/plugins/extension/lang/pt/intro_templates.txt1
-rw-r--r--wiki/lib/plugins/extension/lang/pt/lang.php140
-rw-r--r--wiki/lib/plugins/extension/lang/ru/intro_install.txt1
-rw-r--r--wiki/lib/plugins/extension/lang/ru/intro_plugins.txt1
-rw-r--r--wiki/lib/plugins/extension/lang/ru/intro_search.txt1
-rw-r--r--wiki/lib/plugins/extension/lang/ru/intro_templates.txt1
-rw-r--r--wiki/lib/plugins/extension/lang/ru/lang.php100
-rw-r--r--wiki/lib/plugins/extension/lang/sk/lang.php61
-rw-r--r--wiki/lib/plugins/extension/lang/sr/intro_install.txt1
-rw-r--r--wiki/lib/plugins/extension/lang/sr/lang.php66
-rw-r--r--wiki/lib/plugins/extension/lang/sv/lang.php67
-rw-r--r--wiki/lib/plugins/extension/lang/tr/lang.php61
-rw-r--r--wiki/lib/plugins/extension/lang/zh-tw/intro_install.txt1
-rw-r--r--wiki/lib/plugins/extension/lang/zh-tw/intro_plugins.txt1
-rw-r--r--wiki/lib/plugins/extension/lang/zh-tw/lang.php85
-rw-r--r--wiki/lib/plugins/extension/lang/zh/intro_install.txt1
-rw-r--r--wiki/lib/plugins/extension/lang/zh/intro_plugins.txt1
-rw-r--r--wiki/lib/plugins/extension/lang/zh/intro_search.txt1
-rw-r--r--wiki/lib/plugins/extension/lang/zh/intro_templates.txt1
-rw-r--r--wiki/lib/plugins/extension/lang/zh/lang.php101
-rw-r--r--wiki/lib/plugins/extension/plugin.info.txt7
-rw-r--r--wiki/lib/plugins/extension/script.js145
-rw-r--r--wiki/lib/plugins/extension/style.less386
-rw-r--r--wiki/lib/plugins/index.html11
-rw-r--r--wiki/lib/plugins/info/plugin.info.txt7
-rw-r--r--wiki/lib/plugins/info/syntax.php294
-rw-r--r--wiki/lib/plugins/popularity/action.php60
-rw-r--r--wiki/lib/plugins/popularity/admin.php152
-rw-r--r--wiki/lib/plugins/popularity/admin.svg1
-rw-r--r--wiki/lib/plugins/popularity/helper.php340
-rw-r--r--wiki/lib/plugins/popularity/lang/af/lang.php6
-rw-r--r--wiki/lib/plugins/popularity/lang/ar/intro.txt9
-rw-r--r--wiki/lib/plugins/popularity/lang/ar/lang.php16
-rw-r--r--wiki/lib/plugins/popularity/lang/ar/submitted.txt3
-rw-r--r--wiki/lib/plugins/popularity/lang/bg/intro.txt9
-rw-r--r--wiki/lib/plugins/popularity/lang/bg/lang.php15
-rw-r--r--wiki/lib/plugins/popularity/lang/bg/submitted.txt3
-rw-r--r--wiki/lib/plugins/popularity/lang/ca-valencia/intro.txt9
-rw-r--r--wiki/lib/plugins/popularity/lang/ca-valencia/lang.php9
-rw-r--r--wiki/lib/plugins/popularity/lang/ca/intro.txt9
-rw-r--r--wiki/lib/plugins/popularity/lang/ca/lang.php12
-rw-r--r--wiki/lib/plugins/popularity/lang/cs/intro.txt9
-rw-r--r--wiki/lib/plugins/popularity/lang/cs/lang.php21
-rw-r--r--wiki/lib/plugins/popularity/lang/cs/submitted.txt3
-rw-r--r--wiki/lib/plugins/popularity/lang/cy/intro.txt11
-rw-r--r--wiki/lib/plugins/popularity/lang/cy/lang.php9
-rw-r--r--wiki/lib/plugins/popularity/lang/cy/submitted.txt3
-rw-r--r--wiki/lib/plugins/popularity/lang/da/intro.txt9
-rw-r--r--wiki/lib/plugins/popularity/lang/da/lang.php20
-rw-r--r--wiki/lib/plugins/popularity/lang/da/submitted.txt3
-rw-r--r--wiki/lib/plugins/popularity/lang/de-informal/intro.txt9
-rw-r--r--wiki/lib/plugins/popularity/lang/de-informal/lang.php21
-rw-r--r--wiki/lib/plugins/popularity/lang/de-informal/submitted.txt3
-rw-r--r--wiki/lib/plugins/popularity/lang/de/intro.txt11
-rw-r--r--wiki/lib/plugins/popularity/lang/de/lang.php26
-rw-r--r--wiki/lib/plugins/popularity/lang/de/submitted.txt3
-rw-r--r--wiki/lib/plugins/popularity/lang/el/intro.txt9
-rw-r--r--wiki/lib/plugins/popularity/lang/el/lang.php17
-rw-r--r--wiki/lib/plugins/popularity/lang/el/submitted.txt3
-rw-r--r--wiki/lib/plugins/popularity/lang/en/intro.txt11
-rw-r--r--wiki/lib/plugins/popularity/lang/en/lang.php9
-rw-r--r--wiki/lib/plugins/popularity/lang/en/submitted.txt3
-rw-r--r--wiki/lib/plugins/popularity/lang/eo/intro.txt9
-rw-r--r--wiki/lib/plugins/popularity/lang/eo/lang.php16
-rw-r--r--wiki/lib/plugins/popularity/lang/eo/submitted.txt3
-rw-r--r--wiki/lib/plugins/popularity/lang/es/intro.txt10
-rw-r--r--wiki/lib/plugins/popularity/lang/es/lang.php31
-rw-r--r--wiki/lib/plugins/popularity/lang/es/submitted.txt3
-rw-r--r--wiki/lib/plugins/popularity/lang/eu/intro.txt9
-rw-r--r--wiki/lib/plugins/popularity/lang/eu/lang.php15
-rw-r--r--wiki/lib/plugins/popularity/lang/eu/submitted.txt3
-rw-r--r--wiki/lib/plugins/popularity/lang/fa/intro.txt9
-rw-r--r--wiki/lib/plugins/popularity/lang/fa/lang.php20
-rw-r--r--wiki/lib/plugins/popularity/lang/fa/submitted.txt2
-rw-r--r--wiki/lib/plugins/popularity/lang/fi/intro.txt9
-rw-r--r--wiki/lib/plugins/popularity/lang/fi/lang.php16
-rw-r--r--wiki/lib/plugins/popularity/lang/fi/submitted.txt3
-rw-r--r--wiki/lib/plugins/popularity/lang/fr/intro.txt10
-rw-r--r--wiki/lib/plugins/popularity/lang/fr/lang.php26
-rw-r--r--wiki/lib/plugins/popularity/lang/fr/submitted.txt3
-rw-r--r--wiki/lib/plugins/popularity/lang/gl/intro.txt10
-rw-r--r--wiki/lib/plugins/popularity/lang/gl/lang.php15
-rw-r--r--wiki/lib/plugins/popularity/lang/gl/submitted.txt3
-rw-r--r--wiki/lib/plugins/popularity/lang/he/intro.txt9
-rw-r--r--wiki/lib/plugins/popularity/lang/he/lang.php12
-rw-r--r--wiki/lib/plugins/popularity/lang/hi/lang.php9
-rw-r--r--wiki/lib/plugins/popularity/lang/hr/intro.txt7
-rw-r--r--wiki/lib/plugins/popularity/lang/hr/lang.php14
-rw-r--r--wiki/lib/plugins/popularity/lang/hr/submitted.txt3
-rw-r--r--wiki/lib/plugins/popularity/lang/hu/intro.txt9
-rw-r--r--wiki/lib/plugins/popularity/lang/hu/lang.php20
-rw-r--r--wiki/lib/plugins/popularity/lang/hu/submitted.txt3
-rw-r--r--wiki/lib/plugins/popularity/lang/ia/intro.txt9
-rw-r--r--wiki/lib/plugins/popularity/lang/ia/lang.php9
-rw-r--r--wiki/lib/plugins/popularity/lang/id-ni/intro.txt7
-rw-r--r--wiki/lib/plugins/popularity/lang/id-ni/lang.php9
-rw-r--r--wiki/lib/plugins/popularity/lang/is/lang.php9
-rw-r--r--wiki/lib/plugins/popularity/lang/it/intro.txt9
-rw-r--r--wiki/lib/plugins/popularity/lang/it/lang.php18
-rw-r--r--wiki/lib/plugins/popularity/lang/it/submitted.txt3
-rw-r--r--wiki/lib/plugins/popularity/lang/ja/intro.txt9
-rw-r--r--wiki/lib/plugins/popularity/lang/ja/lang.php19
-rw-r--r--wiki/lib/plugins/popularity/lang/ja/submitted.txt3
-rw-r--r--wiki/lib/plugins/popularity/lang/ko/intro.txt9
-rw-r--r--wiki/lib/plugins/popularity/lang/ko/lang.php20
-rw-r--r--wiki/lib/plugins/popularity/lang/ko/submitted.txt3
-rw-r--r--wiki/lib/plugins/popularity/lang/la/intro.txt10
-rw-r--r--wiki/lib/plugins/popularity/lang/la/lang.php13
-rw-r--r--wiki/lib/plugins/popularity/lang/la/submitted.txt3
-rw-r--r--wiki/lib/plugins/popularity/lang/lt/lang.php10
-rw-r--r--wiki/lib/plugins/popularity/lang/lv/intro.txt9
-rw-r--r--wiki/lib/plugins/popularity/lang/lv/lang.php14
-rw-r--r--wiki/lib/plugins/popularity/lang/lv/submitted.txt3
-rw-r--r--wiki/lib/plugins/popularity/lang/mr/intro.txt8
-rw-r--r--wiki/lib/plugins/popularity/lang/mr/lang.php11
-rw-r--r--wiki/lib/plugins/popularity/lang/ne/lang.php10
-rw-r--r--wiki/lib/plugins/popularity/lang/nl/intro.txt9
-rw-r--r--wiki/lib/plugins/popularity/lang/nl/lang.php22
-rw-r--r--wiki/lib/plugins/popularity/lang/nl/submitted.txt3
-rw-r--r--wiki/lib/plugins/popularity/lang/no/intro.txt9
-rw-r--r--wiki/lib/plugins/popularity/lang/no/lang.php25
-rw-r--r--wiki/lib/plugins/popularity/lang/no/submitted.txt3
-rw-r--r--wiki/lib/plugins/popularity/lang/pl/intro.txt9
-rw-r--r--wiki/lib/plugins/popularity/lang/pl/lang.php24
-rw-r--r--wiki/lib/plugins/popularity/lang/pl/submitted.txt3
-rw-r--r--wiki/lib/plugins/popularity/lang/pt-br/intro.txt9
-rw-r--r--wiki/lib/plugins/popularity/lang/pt-br/lang.php24
-rw-r--r--wiki/lib/plugins/popularity/lang/pt-br/submitted.txt3
-rw-r--r--wiki/lib/plugins/popularity/lang/pt/intro.txt9
-rw-r--r--wiki/lib/plugins/popularity/lang/pt/lang.php17
-rw-r--r--wiki/lib/plugins/popularity/lang/pt/submitted.txt3
-rw-r--r--wiki/lib/plugins/popularity/lang/ro/intro.txt9
-rw-r--r--wiki/lib/plugins/popularity/lang/ro/lang.php20
-rw-r--r--wiki/lib/plugins/popularity/lang/ro/submitted.txt3
-rw-r--r--wiki/lib/plugins/popularity/lang/ru/intro.txt10
-rw-r--r--wiki/lib/plugins/popularity/lang/ru/lang.php24
-rw-r--r--wiki/lib/plugins/popularity/lang/ru/submitted.txt3
-rw-r--r--wiki/lib/plugins/popularity/lang/sk/intro.txt9
-rw-r--r--wiki/lib/plugins/popularity/lang/sk/lang.php16
-rw-r--r--wiki/lib/plugins/popularity/lang/sk/submitted.txt3
-rw-r--r--wiki/lib/plugins/popularity/lang/sl/intro.txt9
-rw-r--r--wiki/lib/plugins/popularity/lang/sl/lang.php14
-rw-r--r--wiki/lib/plugins/popularity/lang/sl/submitted.txt3
-rw-r--r--wiki/lib/plugins/popularity/lang/sq/intro.txt9
-rw-r--r--wiki/lib/plugins/popularity/lang/sq/lang.php8
-rw-r--r--wiki/lib/plugins/popularity/lang/sr/intro.txt9
-rw-r--r--wiki/lib/plugins/popularity/lang/sr/lang.php11
-rw-r--r--wiki/lib/plugins/popularity/lang/sv/intro.txt11
-rw-r--r--wiki/lib/plugins/popularity/lang/sv/lang.php20
-rw-r--r--wiki/lib/plugins/popularity/lang/sv/submitted.txt3
-rw-r--r--wiki/lib/plugins/popularity/lang/th/lang.php12
-rw-r--r--wiki/lib/plugins/popularity/lang/tr/intro.txt9
-rw-r--r--wiki/lib/plugins/popularity/lang/tr/lang.php14
-rw-r--r--wiki/lib/plugins/popularity/lang/uk/intro.txt9
-rw-r--r--wiki/lib/plugins/popularity/lang/uk/lang.php15
-rw-r--r--wiki/lib/plugins/popularity/lang/uk/submitted.txt2
-rw-r--r--wiki/lib/plugins/popularity/lang/zh-tw/intro.txt9
-rw-r--r--wiki/lib/plugins/popularity/lang/zh-tw/lang.php22
-rw-r--r--wiki/lib/plugins/popularity/lang/zh-tw/submitted.txt3
-rw-r--r--wiki/lib/plugins/popularity/lang/zh/intro.txt9
-rw-r--r--wiki/lib/plugins/popularity/lang/zh/lang.php22
-rw-r--r--wiki/lib/plugins/popularity/lang/zh/submitted.txt3
-rw-r--r--wiki/lib/plugins/popularity/plugin.info.txt7
-rw-r--r--wiki/lib/plugins/remote.php104
-rw-r--r--wiki/lib/plugins/revert/admin.php184
-rw-r--r--wiki/lib/plugins/revert/admin.svg1
-rw-r--r--wiki/lib/plugins/revert/lang/ar/intro.txt3
-rw-r--r--wiki/lib/plugins/revert/lang/ar/lang.php22
-rw-r--r--wiki/lib/plugins/revert/lang/bg/intro.txt4
-rw-r--r--wiki/lib/plugins/revert/lang/bg/lang.php18
-rw-r--r--wiki/lib/plugins/revert/lang/ca-valencia/intro.txt4
-rw-r--r--wiki/lib/plugins/revert/lang/ca-valencia/lang.php15
-rw-r--r--wiki/lib/plugins/revert/lang/ca/intro.txt3
-rw-r--r--wiki/lib/plugins/revert/lang/ca/lang.php20
-rw-r--r--wiki/lib/plugins/revert/lang/cs/intro.txt3
-rw-r--r--wiki/lib/plugins/revert/lang/cs/lang.php37
-rw-r--r--wiki/lib/plugins/revert/lang/cy/intro.txt3
-rw-r--r--wiki/lib/plugins/revert/lang/cy/lang.php22
-rw-r--r--wiki/lib/plugins/revert/lang/da/intro.txt3
-rw-r--r--wiki/lib/plugins/revert/lang/da/lang.php22
-rw-r--r--wiki/lib/plugins/revert/lang/de-informal/intro.txt3
-rw-r--r--wiki/lib/plugins/revert/lang/de-informal/lang.php23
-rw-r--r--wiki/lib/plugins/revert/lang/de/intro.txt3
-rw-r--r--wiki/lib/plugins/revert/lang/de/lang.php29
-rw-r--r--wiki/lib/plugins/revert/lang/el/intro.txt3
-rw-r--r--wiki/lib/plugins/revert/lang/el/lang.php21
-rw-r--r--wiki/lib/plugins/revert/lang/en/intro.txt3
-rw-r--r--wiki/lib/plugins/revert/lang/en/lang.php23
-rw-r--r--wiki/lib/plugins/revert/lang/eo/intro.txt3
-rw-r--r--wiki/lib/plugins/revert/lang/eo/lang.php19
-rw-r--r--wiki/lib/plugins/revert/lang/es/intro.txt3
-rw-r--r--wiki/lib/plugins/revert/lang/es/lang.php34
-rw-r--r--wiki/lib/plugins/revert/lang/et/lang.php9
-rw-r--r--wiki/lib/plugins/revert/lang/eu/intro.txt3
-rw-r--r--wiki/lib/plugins/revert/lang/eu/lang.php21
-rw-r--r--wiki/lib/plugins/revert/lang/fa/intro.txt3
-rw-r--r--wiki/lib/plugins/revert/lang/fa/lang.php22
-rw-r--r--wiki/lib/plugins/revert/lang/fi/intro.txt3
-rw-r--r--wiki/lib/plugins/revert/lang/fi/lang.php19
-rw-r--r--wiki/lib/plugins/revert/lang/fr/intro.txt3
-rw-r--r--wiki/lib/plugins/revert/lang/fr/lang.php30
-rw-r--r--wiki/lib/plugins/revert/lang/gl/intro.txt3
-rw-r--r--wiki/lib/plugins/revert/lang/gl/lang.php17
-rw-r--r--wiki/lib/plugins/revert/lang/he/intro.txt3
-rw-r--r--wiki/lib/plugins/revert/lang/he/lang.php19
-rw-r--r--wiki/lib/plugins/revert/lang/hr/intro.txt3
-rw-r--r--wiki/lib/plugins/revert/lang/hr/lang.php16
-rw-r--r--wiki/lib/plugins/revert/lang/hu/intro.txt3
-rw-r--r--wiki/lib/plugins/revert/lang/hu/lang.php23
-rw-r--r--wiki/lib/plugins/revert/lang/ia/intro.txt3
-rw-r--r--wiki/lib/plugins/revert/lang/ia/lang.php16
-rw-r--r--wiki/lib/plugins/revert/lang/is/lang.php10
-rw-r--r--wiki/lib/plugins/revert/lang/it/intro.txt3
-rw-r--r--wiki/lib/plugins/revert/lang/it/lang.php20
-rw-r--r--wiki/lib/plugins/revert/lang/ja/intro.txt3
-rw-r--r--wiki/lib/plugins/revert/lang/ja/lang.php21
-rw-r--r--wiki/lib/plugins/revert/lang/ko/intro.txt3
-rw-r--r--wiki/lib/plugins/revert/lang/ko/lang.php25
-rw-r--r--wiki/lib/plugins/revert/lang/la/intro.txt3
-rw-r--r--wiki/lib/plugins/revert/lang/la/lang.php15
-rw-r--r--wiki/lib/plugins/revert/lang/lb/intro.txt3
-rw-r--r--wiki/lib/plugins/revert/lang/lv/intro.txt3
-rw-r--r--wiki/lib/plugins/revert/lang/lv/lang.php16
-rw-r--r--wiki/lib/plugins/revert/lang/mr/intro.txt5
-rw-r--r--wiki/lib/plugins/revert/lang/mr/lang.php18
-rw-r--r--wiki/lib/plugins/revert/lang/ne/lang.php17
-rw-r--r--wiki/lib/plugins/revert/lang/nl/intro.txt3
-rw-r--r--wiki/lib/plugins/revert/lang/nl/lang.php26
-rw-r--r--wiki/lib/plugins/revert/lang/no/intro.txt3
-rw-r--r--wiki/lib/plugins/revert/lang/no/lang.php38
-rw-r--r--wiki/lib/plugins/revert/lang/pl/intro.txt3
-rw-r--r--wiki/lib/plugins/revert/lang/pl/lang.php26
-rw-r--r--wiki/lib/plugins/revert/lang/pt-br/intro.txt3
-rw-r--r--wiki/lib/plugins/revert/lang/pt-br/lang.php27
-rw-r--r--wiki/lib/plugins/revert/lang/pt/intro.txt3
-rw-r--r--wiki/lib/plugins/revert/lang/pt/lang.php20
-rw-r--r--wiki/lib/plugins/revert/lang/ro/intro.txt3
-rw-r--r--wiki/lib/plugins/revert/lang/ro/lang.php24
-rw-r--r--wiki/lib/plugins/revert/lang/ru/intro.txt3
-rw-r--r--wiki/lib/plugins/revert/lang/ru/lang.php28
-rw-r--r--wiki/lib/plugins/revert/lang/sk/intro.txt3
-rw-r--r--wiki/lib/plugins/revert/lang/sk/lang.php18
-rw-r--r--wiki/lib/plugins/revert/lang/sl/intro.txt3
-rw-r--r--wiki/lib/plugins/revert/lang/sl/lang.php16
-rw-r--r--wiki/lib/plugins/revert/lang/sq/intro.txt3
-rw-r--r--wiki/lib/plugins/revert/lang/sq/lang.php15
-rw-r--r--wiki/lib/plugins/revert/lang/sr/intro.txt3
-rw-r--r--wiki/lib/plugins/revert/lang/sr/lang.php18
-rw-r--r--wiki/lib/plugins/revert/lang/sv/intro.txt3
-rw-r--r--wiki/lib/plugins/revert/lang/sv/lang.php30
-rw-r--r--wiki/lib/plugins/revert/lang/th/intro.txt3
-rw-r--r--wiki/lib/plugins/revert/lang/th/lang.php20
-rw-r--r--wiki/lib/plugins/revert/lang/tr/intro.txt3
-rw-r--r--wiki/lib/plugins/revert/lang/tr/lang.php20
-rw-r--r--wiki/lib/plugins/revert/lang/uk/intro.txt3
-rw-r--r--wiki/lib/plugins/revert/lang/uk/lang.php17
-rw-r--r--wiki/lib/plugins/revert/lang/zh-tw/intro.txt3
-rw-r--r--wiki/lib/plugins/revert/lang/zh-tw/lang.php24
-rw-r--r--wiki/lib/plugins/revert/lang/zh/intro.txt3
-rw-r--r--wiki/lib/plugins/revert/lang/zh/lang.php23
-rw-r--r--wiki/lib/plugins/revert/plugin.info.txt7
-rw-r--r--wiki/lib/plugins/safefnrecode/action.php68
-rw-r--r--wiki/lib/plugins/safefnrecode/plugin.info.txt7
-rw-r--r--wiki/lib/plugins/styling/README27
-rw-r--r--wiki/lib/plugins/styling/action.php60
-rw-r--r--wiki/lib/plugins/styling/admin.php211
-rw-r--r--wiki/lib/plugins/styling/admin.svg1
-rw-r--r--wiki/lib/plugins/styling/iris.js1488
-rw-r--r--wiki/lib/plugins/styling/lang/bg/lang.php21
-rw-r--r--wiki/lib/plugins/styling/lang/cs/intro.txt2
-rw-r--r--wiki/lib/plugins/styling/lang/cs/lang.php24
-rw-r--r--wiki/lib/plugins/styling/lang/cy/intro.txt2
-rw-r--r--wiki/lib/plugins/styling/lang/cy/lang.php36
-rw-r--r--wiki/lib/plugins/styling/lang/de-informal/intro.txt2
-rw-r--r--wiki/lib/plugins/styling/lang/de-informal/lang.php23
-rw-r--r--wiki/lib/plugins/styling/lang/de/intro.txt2
-rw-r--r--wiki/lib/plugins/styling/lang/de/lang.php24
-rw-r--r--wiki/lib/plugins/styling/lang/en/intro.txt2
-rw-r--r--wiki/lib/plugins/styling/lang/en/lang.php35
-rw-r--r--wiki/lib/plugins/styling/lang/eo/lang.php9
-rw-r--r--wiki/lib/plugins/styling/lang/es/intro.txt2
-rw-r--r--wiki/lib/plugins/styling/lang/es/lang.php23
-rw-r--r--wiki/lib/plugins/styling/lang/fa/intro.txt2
-rw-r--r--wiki/lib/plugins/styling/lang/fa/lang.php24
-rw-r--r--wiki/lib/plugins/styling/lang/fr/intro.txt2
-rw-r--r--wiki/lib/plugins/styling/lang/fr/lang.php25
-rw-r--r--wiki/lib/plugins/styling/lang/hr/intro.txt2
-rw-r--r--wiki/lib/plugins/styling/lang/hr/lang.php23
-rw-r--r--wiki/lib/plugins/styling/lang/hu/intro.txt2
-rw-r--r--wiki/lib/plugins/styling/lang/hu/lang.php23
-rw-r--r--wiki/lib/plugins/styling/lang/it/intro.txt2
-rw-r--r--wiki/lib/plugins/styling/lang/it/lang.php23
-rw-r--r--wiki/lib/plugins/styling/lang/ja/intro.txt2
-rw-r--r--wiki/lib/plugins/styling/lang/ja/lang.php23
-rw-r--r--wiki/lib/plugins/styling/lang/ko/intro.txt2
-rw-r--r--wiki/lib/plugins/styling/lang/ko/lang.php23
-rw-r--r--wiki/lib/plugins/styling/lang/nl/intro.txt2
-rw-r--r--wiki/lib/plugins/styling/lang/nl/lang.php24
-rw-r--r--wiki/lib/plugins/styling/lang/no/intro.txt2
-rw-r--r--wiki/lib/plugins/styling/lang/no/lang.php24
-rw-r--r--wiki/lib/plugins/styling/lang/pl/intro.txt1
-rw-r--r--wiki/lib/plugins/styling/lang/pl/lang.php24
-rw-r--r--wiki/lib/plugins/styling/lang/pt-br/intro.txt2
-rw-r--r--wiki/lib/plugins/styling/lang/pt-br/lang.php23
-rw-r--r--wiki/lib/plugins/styling/lang/pt/lang.php19
-rw-r--r--wiki/lib/plugins/styling/lang/ru/intro.txt1
-rw-r--r--wiki/lib/plugins/styling/lang/ru/lang.php23
-rw-r--r--wiki/lib/plugins/styling/lang/sk/lang.php18
-rw-r--r--wiki/lib/plugins/styling/lang/sv/lang.php17
-rw-r--r--wiki/lib/plugins/styling/lang/zh-tw/lang.php15
-rw-r--r--wiki/lib/plugins/styling/lang/zh/intro.txt1
-rw-r--r--wiki/lib/plugins/styling/lang/zh/lang.php23
-rw-r--r--wiki/lib/plugins/styling/plugin.info.txt7
-rw-r--r--wiki/lib/plugins/styling/popup.php30
-rw-r--r--wiki/lib/plugins/styling/script.js97
-rw-r--r--wiki/lib/plugins/styling/style.less13
-rw-r--r--wiki/lib/plugins/syntax.php134
-rw-r--r--wiki/lib/plugins/usermanager/admin.php1083
-rw-r--r--wiki/lib/plugins/usermanager/admin.svg1
-rw-r--r--wiki/lib/plugins/usermanager/images/search.pngbin549 -> 0 bytes
-rw-r--r--wiki/lib/plugins/usermanager/lang/af/lang.php14
-rw-r--r--wiki/lib/plugins/usermanager/lang/ar/add.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/ar/delete.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/ar/edit.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/ar/intro.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/ar/lang.php50
-rw-r--r--wiki/lib/plugins/usermanager/lang/ar/list.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/bg/add.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/bg/delete.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/bg/edit.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/bg/intro.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/bg/lang.php59
-rw-r--r--wiki/lib/plugins/usermanager/lang/bg/list.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/ca-valencia/add.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/ca-valencia/delete.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/ca-valencia/edit.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/ca-valencia/intro.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/ca-valencia/lang.php49
-rw-r--r--wiki/lib/plugins/usermanager/lang/ca-valencia/list.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/ca/add.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/ca/delete.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/ca/edit.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/ca/intro.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/ca/lang.php52
-rw-r--r--wiki/lib/plugins/usermanager/lang/ca/list.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/cs/add.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/cs/delete.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/cs/edit.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/cs/import.txt9
-rw-r--r--wiki/lib/plugins/usermanager/lang/cs/intro.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/cs/lang.php86
-rw-r--r--wiki/lib/plugins/usermanager/lang/cs/list.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/cy/add.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/cy/delete.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/cy/edit.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/cy/import.txt9
-rw-r--r--wiki/lib/plugins/usermanager/lang/cy/intro.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/cy/lang.php87
-rw-r--r--wiki/lib/plugins/usermanager/lang/cy/list.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/da/add.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/da/delete.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/da/edit.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/da/import.txt9
-rw-r--r--wiki/lib/plugins/usermanager/lang/da/intro.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/da/lang.php74
-rw-r--r--wiki/lib/plugins/usermanager/lang/da/list.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/de-informal/add.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/de-informal/delete.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/de-informal/edit.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/de-informal/import.txt7
-rw-r--r--wiki/lib/plugins/usermanager/lang/de-informal/intro.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/de-informal/lang.php83
-rw-r--r--wiki/lib/plugins/usermanager/lang/de-informal/list.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/de/add.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/de/delete.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/de/edit.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/de/import.txt8
-rw-r--r--wiki/lib/plugins/usermanager/lang/de/intro.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/de/lang.php95
-rw-r--r--wiki/lib/plugins/usermanager/lang/de/list.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/el/add.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/el/delete.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/el/edit.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/el/intro.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/el/lang.php54
-rw-r--r--wiki/lib/plugins/usermanager/lang/el/list.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/en/add.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/en/delete.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/en/edit.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/en/import.txt9
-rw-r--r--wiki/lib/plugins/usermanager/lang/en/intro.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/en/lang.php86
-rw-r--r--wiki/lib/plugins/usermanager/lang/en/list.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/eo/add.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/eo/delete.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/eo/edit.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/eo/import.txt9
-rw-r--r--wiki/lib/plugins/usermanager/lang/eo/intro.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/eo/lang.php69
-rw-r--r--wiki/lib/plugins/usermanager/lang/eo/list.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/es/add.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/es/delete.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/es/edit.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/es/import.txt9
-rw-r--r--wiki/lib/plugins/usermanager/lang/es/intro.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/es/lang.php100
-rw-r--r--wiki/lib/plugins/usermanager/lang/es/list.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/et/lang.php33
-rw-r--r--wiki/lib/plugins/usermanager/lang/eu/add.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/eu/delete.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/eu/edit.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/eu/intro.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/eu/lang.php50
-rw-r--r--wiki/lib/plugins/usermanager/lang/eu/list.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/fa/add.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/fa/delete.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/fa/edit.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/fa/import.txt6
-rw-r--r--wiki/lib/plugins/usermanager/lang/fa/intro.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/fa/lang.php83
-rw-r--r--wiki/lib/plugins/usermanager/lang/fa/list.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/fi/add.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/fi/delete.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/fi/edit.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/fi/intro.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/fi/lang.php61
-rw-r--r--wiki/lib/plugins/usermanager/lang/fi/list.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/fr/add.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/fr/delete.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/fr/edit.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/fr/import.txt11
-rw-r--r--wiki/lib/plugins/usermanager/lang/fr/intro.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/fr/lang.php93
-rw-r--r--wiki/lib/plugins/usermanager/lang/fr/list.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/gl/add.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/gl/delete.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/gl/edit.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/gl/intro.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/gl/lang.php49
-rw-r--r--wiki/lib/plugins/usermanager/lang/gl/list.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/he/add.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/he/delete.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/he/edit.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/he/intro.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/he/lang.php50
-rw-r--r--wiki/lib/plugins/usermanager/lang/he/list.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/hr/add.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/hr/delete.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/hr/edit.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/hr/import.txt9
-rw-r--r--wiki/lib/plugins/usermanager/lang/hr/intro.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/hr/lang.php74
-rw-r--r--wiki/lib/plugins/usermanager/lang/hr/list.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/hu/add.txt2
-rw-r--r--wiki/lib/plugins/usermanager/lang/hu/delete.txt2
-rw-r--r--wiki/lib/plugins/usermanager/lang/hu/edit.txt2
-rw-r--r--wiki/lib/plugins/usermanager/lang/hu/import.txt9
-rw-r--r--wiki/lib/plugins/usermanager/lang/hu/intro.txt2
-rw-r--r--wiki/lib/plugins/usermanager/lang/hu/lang.php74
-rw-r--r--wiki/lib/plugins/usermanager/lang/hu/list.txt2
-rw-r--r--wiki/lib/plugins/usermanager/lang/ia/add.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/ia/delete.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/ia/edit.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/ia/intro.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/ia/lang.php49
-rw-r--r--wiki/lib/plugins/usermanager/lang/ia/list.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/id/add.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/id/delete.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/id/edit.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/id/intro.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/id/lang.php48
-rw-r--r--wiki/lib/plugins/usermanager/lang/id/list.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/is/delete.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/is/lang.php18
-rw-r--r--wiki/lib/plugins/usermanager/lang/it/add.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/it/delete.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/it/edit.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/it/import.txt9
-rw-r--r--wiki/lib/plugins/usermanager/lang/it/intro.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/it/lang.php84
-rw-r--r--wiki/lib/plugins/usermanager/lang/it/list.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/ja/add.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/ja/delete.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/ja/edit.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/ja/import.txt10
-rw-r--r--wiki/lib/plugins/usermanager/lang/ja/intro.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/ja/lang.php82
-rw-r--r--wiki/lib/plugins/usermanager/lang/ja/list.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/kk/lang.php9
-rw-r--r--wiki/lib/plugins/usermanager/lang/ko/add.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/ko/delete.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/ko/edit.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/ko/import.txt9
-rw-r--r--wiki/lib/plugins/usermanager/lang/ko/intro.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/ko/lang.php81
-rw-r--r--wiki/lib/plugins/usermanager/lang/ko/list.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/la/add.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/la/delete.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/la/edit.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/la/intro.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/la/lang.php47
-rw-r--r--wiki/lib/plugins/usermanager/lang/la/list.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/lb/list.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/lt/add.txt2
-rw-r--r--wiki/lib/plugins/usermanager/lang/lt/delete.txt2
-rw-r--r--wiki/lib/plugins/usermanager/lang/lt/edit.txt2
-rw-r--r--wiki/lib/plugins/usermanager/lang/lt/intro.txt2
-rw-r--r--wiki/lib/plugins/usermanager/lang/lt/lang.php49
-rw-r--r--wiki/lib/plugins/usermanager/lang/lt/list.txt2
-rw-r--r--wiki/lib/plugins/usermanager/lang/lv/add.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/lv/delete.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/lv/edit.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/lv/import.txt9
-rw-r--r--wiki/lib/plugins/usermanager/lang/lv/intro.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/lv/lang.php48
-rw-r--r--wiki/lib/plugins/usermanager/lang/lv/list.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/mk/add.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/mk/delete.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/mk/edit.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/mk/intro.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/mk/lang.php38
-rw-r--r--wiki/lib/plugins/usermanager/lang/mk/list.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/mr/add.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/mr/delete.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/mr/edit.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/mr/intro.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/mr/lang.php50
-rw-r--r--wiki/lib/plugins/usermanager/lang/mr/list.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/ne/add.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/ne/delete.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/ne/edit.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/ne/intro.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/ne/lang.php50
-rw-r--r--wiki/lib/plugins/usermanager/lang/ne/list.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/nl/add.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/nl/delete.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/nl/edit.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/nl/import.txt8
-rw-r--r--wiki/lib/plugins/usermanager/lang/nl/intro.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/nl/lang.php84
-rw-r--r--wiki/lib/plugins/usermanager/lang/nl/list.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/no/add.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/no/delete.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/no/edit.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/no/import.txt7
-rw-r--r--wiki/lib/plugins/usermanager/lang/no/intro.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/no/lang.php87
-rw-r--r--wiki/lib/plugins/usermanager/lang/no/list.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/pl/add.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/pl/delete.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/pl/edit.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/pl/import.txt6
-rw-r--r--wiki/lib/plugins/usermanager/lang/pl/intro.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/pl/lang.php86
-rw-r--r--wiki/lib/plugins/usermanager/lang/pl/list.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/pt-br/add.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/pt-br/delete.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/pt-br/edit.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/pt-br/import.txt9
-rw-r--r--wiki/lib/plugins/usermanager/lang/pt-br/intro.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/pt-br/lang.php90
-rw-r--r--wiki/lib/plugins/usermanager/lang/pt-br/list.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/pt/add.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/pt/delete.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/pt/edit.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/pt/import.txt9
-rw-r--r--wiki/lib/plugins/usermanager/lang/pt/intro.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/pt/lang.php77
-rw-r--r--wiki/lib/plugins/usermanager/lang/pt/list.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/ro/add.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/ro/delete.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/ro/edit.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/ro/intro.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/ro/lang.php56
-rw-r--r--wiki/lib/plugins/usermanager/lang/ro/list.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/ru/add.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/ru/delete.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/ru/edit.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/ru/import.txt9
-rw-r--r--wiki/lib/plugins/usermanager/lang/ru/intro.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/ru/lang.php92
-rw-r--r--wiki/lib/plugins/usermanager/lang/ru/list.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/sk/add.txt2
-rw-r--r--wiki/lib/plugins/usermanager/lang/sk/delete.txt2
-rw-r--r--wiki/lib/plugins/usermanager/lang/sk/edit.txt2
-rw-r--r--wiki/lib/plugins/usermanager/lang/sk/import.txt9
-rw-r--r--wiki/lib/plugins/usermanager/lang/sk/intro.txt2
-rw-r--r--wiki/lib/plugins/usermanager/lang/sk/lang.php74
-rw-r--r--wiki/lib/plugins/usermanager/lang/sk/list.txt2
-rw-r--r--wiki/lib/plugins/usermanager/lang/sl/add.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/sl/delete.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/sl/edit.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/sl/intro.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/sl/lang.php70
-rw-r--r--wiki/lib/plugins/usermanager/lang/sl/list.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/sq/add.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/sq/delete.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/sq/edit.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/sq/intro.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/sq/lang.php48
-rw-r--r--wiki/lib/plugins/usermanager/lang/sq/list.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/sr/add.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/sr/delete.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/sr/edit.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/sr/intro.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/sr/lang.php50
-rw-r--r--wiki/lib/plugins/usermanager/lang/sr/list.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/sv/add.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/sv/delete.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/sv/edit.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/sv/intro.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/sv/lang.php73
-rw-r--r--wiki/lib/plugins/usermanager/lang/sv/list.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/th/add.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/th/delete.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/th/edit.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/th/intro.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/th/lang.php48
-rw-r--r--wiki/lib/plugins/usermanager/lang/th/list.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/tr/add.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/tr/delete.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/tr/edit.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/tr/intro.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/tr/lang.php52
-rw-r--r--wiki/lib/plugins/usermanager/lang/tr/list.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/uk/add.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/uk/delete.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/uk/edit.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/uk/intro.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/uk/lang.php50
-rw-r--r--wiki/lib/plugins/usermanager/lang/uk/list.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/zh-tw/add.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/zh-tw/delete.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/zh-tw/edit.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/zh-tw/import.txt9
-rw-r--r--wiki/lib/plugins/usermanager/lang/zh-tw/intro.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/zh-tw/lang.php76
-rw-r--r--wiki/lib/plugins/usermanager/lang/zh-tw/list.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/zh/add.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/zh/delete.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/zh/edit.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/zh/import.txt7
-rw-r--r--wiki/lib/plugins/usermanager/lang/zh/intro.txt1
-rw-r--r--wiki/lib/plugins/usermanager/lang/zh/lang.php85
-rw-r--r--wiki/lib/plugins/usermanager/lang/zh/list.txt1
-rw-r--r--wiki/lib/plugins/usermanager/plugin.info.txt7
-rw-r--r--wiki/lib/plugins/usermanager/script.js8
-rw-r--r--wiki/lib/plugins/usermanager/style.css33
-rw-r--r--wiki/lib/scripts/behaviour.js195
-rw-r--r--wiki/lib/scripts/compatibility.js42
-rw-r--r--wiki/lib/scripts/cookie.js64
-rw-r--r--wiki/lib/scripts/delay.js70
-rw-r--r--wiki/lib/scripts/edit.js308
-rw-r--r--wiki/lib/scripts/editor.js205
-rw-r--r--wiki/lib/scripts/fileuploader.js1249
-rw-r--r--wiki/lib/scripts/fileuploaderextended.js345
-rw-r--r--wiki/lib/scripts/helpers.js69
-rw-r--r--wiki/lib/scripts/hotkeys.js302
-rw-r--r--wiki/lib/scripts/index.html11
-rw-r--r--wiki/lib/scripts/index.js16
-rw-r--r--wiki/lib/scripts/jquery/jquery-migrate.min.js2
-rw-r--r--wiki/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_glass_55_fbf9ee_1x400.pngbin393 -> 0 bytes
-rw-r--r--wiki/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_glass_65_ffffff_1x400.pngbin265 -> 0 bytes
-rw-r--r--wiki/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_glass_75_dadada_1x400.pngbin323 -> 0 bytes
-rw-r--r--wiki/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_glass_75_e6e6e6_1x400.pngbin324 -> 0 bytes
-rw-r--r--wiki/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_glass_95_fef1ec_1x400.png0
-rw-r--r--wiki/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_highlight-soft_75_cccccc_1x100.pngbin325 -> 0 bytes
-rw-r--r--wiki/lib/scripts/jquery/jquery-ui-theme/images/ui-icons_222222_256x240.pngbin7025 -> 0 bytes
-rw-r--r--wiki/lib/scripts/jquery/jquery-ui-theme/images/ui-icons_2e83ff_256x240.pngbin4676 -> 0 bytes
-rw-r--r--wiki/lib/scripts/jquery/jquery-ui-theme/images/ui-icons_454545_256x240.pngbin7090 -> 0 bytes
-rw-r--r--wiki/lib/scripts/jquery/jquery-ui-theme/images/ui-icons_888888_256x240.pngbin7111 -> 0 bytes
-rw-r--r--wiki/lib/scripts/jquery/jquery-ui-theme/images/ui-icons_cd0a0a_256x240.pngbin4676 -> 0 bytes
-rw-r--r--wiki/lib/scripts/jquery/jquery-ui-theme/smoothness.css1311
-rw-r--r--wiki/lib/scripts/jquery/jquery-ui.min.js13
-rw-r--r--wiki/lib/scripts/jquery/jquery.cookie.js95
-rw-r--r--wiki/lib/scripts/jquery/jquery.min.js4
-rwxr-xr-xwiki/lib/scripts/jquery/update.sh50
-rw-r--r--wiki/lib/scripts/jquery/versions4
-rw-r--r--wiki/lib/scripts/linkwiz.js339
-rw-r--r--wiki/lib/scripts/locktimer.js115
-rw-r--r--wiki/lib/scripts/media.js966
-rw-r--r--wiki/lib/scripts/page.js190
-rw-r--r--wiki/lib/scripts/qsearch.js191
-rw-r--r--wiki/lib/scripts/script.js30
-rw-r--r--wiki/lib/scripts/search.js48
-rw-r--r--wiki/lib/scripts/textselection.js152
-rw-r--r--wiki/lib/scripts/toolbar.js282
-rw-r--r--wiki/lib/scripts/tree.js107
-rw-r--r--wiki/lib/styles/all.css68
-rw-r--r--wiki/lib/styles/feed.css63
-rw-r--r--wiki/lib/styles/geshi.less144
-rw-r--r--wiki/lib/styles/index.html11
-rw-r--r--wiki/lib/styles/print.css15
-rw-r--r--wiki/lib/styles/screen.css96
-rw-r--r--wiki/lib/tpl/dokuwiki/css/_admin.less61
-rw-r--r--wiki/lib/tpl/dokuwiki/css/_diff.css137
-rw-r--r--wiki/lib/tpl/dokuwiki/css/_edit.css140
-rw-r--r--wiki/lib/tpl/dokuwiki/css/_fileuploader.css107
-rw-r--r--wiki/lib/tpl/dokuwiki/css/_footnotes.css31
-rw-r--r--wiki/lib/tpl/dokuwiki/css/_forms.css106
-rw-r--r--wiki/lib/tpl/dokuwiki/css/_imgdetail.css38
-rw-r--r--wiki/lib/tpl/dokuwiki/css/_links.css69
-rw-r--r--wiki/lib/tpl/dokuwiki/css/_media_fullscreen.css541
-rw-r--r--wiki/lib/tpl/dokuwiki/css/_media_popup.css208
-rw-r--r--wiki/lib/tpl/dokuwiki/css/_modal.css94
-rw-r--r--wiki/lib/tpl/dokuwiki/css/_recent.css75
-rw-r--r--wiki/lib/tpl/dokuwiki/css/_search.less204
-rw-r--r--wiki/lib/tpl/dokuwiki/css/_tabs.css85
-rw-r--r--wiki/lib/tpl/dokuwiki/css/_toc.css93
-rw-r--r--wiki/lib/tpl/dokuwiki/css/basic.less460
-rw-r--r--wiki/lib/tpl/dokuwiki/css/content.less393
-rw-r--r--wiki/lib/tpl/dokuwiki/css/design.less354
-rw-r--r--wiki/lib/tpl/dokuwiki/css/mobile.less332
-rw-r--r--wiki/lib/tpl/dokuwiki/css/pagetools.less124
-rw-r--r--wiki/lib/tpl/dokuwiki/css/print.css177
-rw-r--r--wiki/lib/tpl/dokuwiki/css/structure.less89
-rw-r--r--wiki/lib/tpl/dokuwiki/css/usertools.less50
-rw-r--r--wiki/lib/tpl/dokuwiki/detail.php105
-rw-r--r--wiki/lib/tpl/dokuwiki/images/apple-touch-icon.pngbin6336 -> 0 bytes
-rw-r--r--wiki/lib/tpl/dokuwiki/images/button-css.pngbin297 -> 0 bytes
-rw-r--r--wiki/lib/tpl/dokuwiki/images/button-donate.gifbin187 -> 0 bytes
-rw-r--r--wiki/lib/tpl/dokuwiki/images/button-dw.pngbin398 -> 0 bytes
-rw-r--r--wiki/lib/tpl/dokuwiki/images/button-html5.pngbin305 -> 0 bytes
-rw-r--r--wiki/lib/tpl/dokuwiki/images/button-php.gifbin207 -> 0 bytes
-rw-r--r--wiki/lib/tpl/dokuwiki/images/button-rss.pngbin178 -> 0 bytes
-rw-r--r--wiki/lib/tpl/dokuwiki/images/favicon.icobin7406 -> 0 bytes
-rw-r--r--wiki/lib/tpl/dokuwiki/images/license.txt5
-rw-r--r--wiki/lib/tpl/dokuwiki/images/logo.pngbin3744 -> 0 bytes
-rw-r--r--wiki/lib/tpl/dokuwiki/images/page-background.svg8
-rw-r--r--wiki/lib/tpl/dokuwiki/images/page-gradient.pngbin209 -> 0 bytes
-rw-r--r--wiki/lib/tpl/dokuwiki/images/pagetools-build.php123
-rw-r--r--wiki/lib/tpl/dokuwiki/images/pagetools-sprite.pngbin7759 -> 0 bytes
-rw-r--r--wiki/lib/tpl/dokuwiki/images/pagetools/00_default.pngbin494 -> 0 bytes
-rw-r--r--wiki/lib/tpl/dokuwiki/images/pagetools/01_edit.pngbin519 -> 0 bytes
-rw-r--r--wiki/lib/tpl/dokuwiki/images/pagetools/02_create.pngbin580 -> 0 bytes
-rw-r--r--wiki/lib/tpl/dokuwiki/images/pagetools/03_draft.pngbin592 -> 0 bytes
-rw-r--r--wiki/lib/tpl/dokuwiki/images/pagetools/04_show.pngbin321 -> 0 bytes
-rw-r--r--wiki/lib/tpl/dokuwiki/images/pagetools/05_source.pngbin478 -> 0 bytes
-rw-r--r--wiki/lib/tpl/dokuwiki/images/pagetools/06_revert.pngbin462 -> 0 bytes
-rw-r--r--wiki/lib/tpl/dokuwiki/images/pagetools/07_revisions.pngbin769 -> 0 bytes
-rw-r--r--wiki/lib/tpl/dokuwiki/images/pagetools/08_backlink.pngbin527 -> 0 bytes
-rw-r--r--wiki/lib/tpl/dokuwiki/images/pagetools/09_subscribe.pngbin374 -> 0 bytes
-rw-r--r--wiki/lib/tpl/dokuwiki/images/pagetools/10_top.pngbin297 -> 0 bytes
-rw-r--r--wiki/lib/tpl/dokuwiki/images/pagetools/11_mediamanager.pngbin320 -> 0 bytes
-rw-r--r--wiki/lib/tpl/dokuwiki/images/pagetools/12_back.pngbin288 -> 0 bytes
-rw-r--r--wiki/lib/tpl/dokuwiki/images/pagetools/license.txt4
-rw-r--r--wiki/lib/tpl/dokuwiki/images/search.pngbin307 -> 0 bytes
-rw-r--r--wiki/lib/tpl/dokuwiki/images/toc-arrows.pngbin225 -> 0 bytes
-rw-r--r--wiki/lib/tpl/dokuwiki/images/toc-bullet.pngbin113 -> 0 bytes
-rw-r--r--wiki/lib/tpl/dokuwiki/images/usertools.pngbin1428 -> 0 bytes
-rw-r--r--wiki/lib/tpl/dokuwiki/lang/bg/lang.php13
-rw-r--r--wiki/lib/tpl/dokuwiki/lang/cs/lang.php15
-rw-r--r--wiki/lib/tpl/dokuwiki/lang/cs/style.txt2
-rw-r--r--wiki/lib/tpl/dokuwiki/lang/cy/lang.php12
-rw-r--r--wiki/lib/tpl/dokuwiki/lang/cy/style.txt4
-rw-r--r--wiki/lib/tpl/dokuwiki/lang/de-informal/lang.php15
-rw-r--r--wiki/lib/tpl/dokuwiki/lang/de-informal/style.txt1
-rw-r--r--wiki/lib/tpl/dokuwiki/lang/de/lang.php15
-rw-r--r--wiki/lib/tpl/dokuwiki/lang/de/style.txt1
-rw-r--r--wiki/lib/tpl/dokuwiki/lang/en/lang.php13
-rw-r--r--wiki/lib/tpl/dokuwiki/lang/en/style.txt4
-rw-r--r--wiki/lib/tpl/dokuwiki/lang/es/lang.php16
-rw-r--r--wiki/lib/tpl/dokuwiki/lang/es/style.txt1
-rw-r--r--wiki/lib/tpl/dokuwiki/lang/fa/lang.php15
-rw-r--r--wiki/lib/tpl/dokuwiki/lang/fa/style.txt1
-rw-r--r--wiki/lib/tpl/dokuwiki/lang/fr/lang.php17
-rw-r--r--wiki/lib/tpl/dokuwiki/lang/fr/style.txt1
-rw-r--r--wiki/lib/tpl/dokuwiki/lang/hr/lang.php16
-rw-r--r--wiki/lib/tpl/dokuwiki/lang/hr/style.txt1
-rw-r--r--wiki/lib/tpl/dokuwiki/lang/hu/lang.php15
-rw-r--r--wiki/lib/tpl/dokuwiki/lang/hu/style.txt1
-rw-r--r--wiki/lib/tpl/dokuwiki/lang/it/lang.php15
-rw-r--r--wiki/lib/tpl/dokuwiki/lang/it/style.txt1
-rw-r--r--wiki/lib/tpl/dokuwiki/lang/ja/lang.php15
-rw-r--r--wiki/lib/tpl/dokuwiki/lang/ja/style.txt5
-rw-r--r--wiki/lib/tpl/dokuwiki/lang/ko/lang.php15
-rw-r--r--wiki/lib/tpl/dokuwiki/lang/ko/style.txt4
-rw-r--r--wiki/lib/tpl/dokuwiki/lang/nl/lang.php17
-rw-r--r--wiki/lib/tpl/dokuwiki/lang/nl/style.txt1
-rw-r--r--wiki/lib/tpl/dokuwiki/lang/no/lang.php15
-rw-r--r--wiki/lib/tpl/dokuwiki/lang/no/style.txt1
-rw-r--r--wiki/lib/tpl/dokuwiki/lang/pl/lang.php15
-rw-r--r--wiki/lib/tpl/dokuwiki/lang/pl/style.txt1
-rw-r--r--wiki/lib/tpl/dokuwiki/lang/pt-br/lang.php15
-rw-r--r--wiki/lib/tpl/dokuwiki/lang/pt-br/style.txt1
-rw-r--r--wiki/lib/tpl/dokuwiki/lang/ru/lang.php18
-rw-r--r--wiki/lib/tpl/dokuwiki/lang/ru/style.txt1
-rw-r--r--wiki/lib/tpl/dokuwiki/lang/sk/lang.php11
-rw-r--r--wiki/lib/tpl/dokuwiki/lang/sv/lang.php12
-rw-r--r--wiki/lib/tpl/dokuwiki/lang/zh/lang.php15
-rw-r--r--wiki/lib/tpl/dokuwiki/lang/zh/style.txt1
-rw-r--r--wiki/lib/tpl/dokuwiki/main.php88
-rw-r--r--wiki/lib/tpl/dokuwiki/mediamanager.php44
-rw-r--r--wiki/lib/tpl/dokuwiki/script.js79
-rw-r--r--wiki/lib/tpl/dokuwiki/style.ini89
-rw-r--r--wiki/lib/tpl/dokuwiki/template.info.txt7
-rw-r--r--wiki/lib/tpl/dokuwiki/tpl_footer.php33
-rw-r--r--wiki/lib/tpl/dokuwiki/tpl_header.php84
-rw-r--r--wiki/lib/tpl/index.php72
-rw-r--r--wiki/vendor/.htaccess7
-rw-r--r--wiki/vendor/README6
-rw-r--r--wiki/vendor/autoload.php7
-rw-r--r--wiki/vendor/aziraphale/email-address-validator/EmailAddressValidator.php183
-rw-r--r--wiki/vendor/aziraphale/email-address-validator/README.md59
-rw-r--r--wiki/vendor/composer/ClassLoader.php445
-rw-r--r--wiki/vendor/composer/LICENSE21
-rw-r--r--wiki/vendor/composer/autoload_classmap.php35
-rw-r--r--wiki/vendor/composer/autoload_files.php11
-rw-r--r--wiki/vendor/composer/autoload_namespaces.php11
-rw-r--r--wiki/vendor/composer/autoload_psr4.php12
-rw-r--r--wiki/vendor/composer/autoload_real.php70
-rw-r--r--wiki/vendor/composer/autoload_static.php97
-rw-r--r--wiki/vendor/composer/installed.json506
-rw-r--r--wiki/vendor/geshi/geshi/BUGS29
-rw-r--r--wiki/vendor/geshi/geshi/CHANGELOG1013
-rw-r--r--wiki/vendor/geshi/geshi/LICENSE339
-rw-r--r--wiki/vendor/geshi/geshi/README.md36
-rw-r--r--wiki/vendor/geshi/geshi/THANKS284
-rw-r--r--wiki/vendor/geshi/geshi/build.properties.dist1
-rw-r--r--wiki/vendor/geshi/geshi/build.xml216
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi.php4735
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/4cs.php137
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/6502acme.php228
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/6502kickass.php239
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/6502tasm.php187
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/68000devpac.php166
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/abap.php1407
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/actionscript.php195
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/actionscript3.php471
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/ada.php130
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/aimms.php316
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/algol68.php328
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/apache.php481
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/applescript.php155
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/apt_sources.php153
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/arm.php3316
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/asm.php601
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/asp.php162
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/asymptote.php1850
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/autoconf.php510
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/autohotkey.php371
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/autoit.php1888
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/avisynth.php193
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/awk.php156
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/bascomavr.php183
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/bash.php472
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/basic4gl.php339
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/batch.php228
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/bf.php113
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/biblatex.php200
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/bibtex.php181
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/blitzbasic.php183
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/bnf.php117
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/boo.php215
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/c.php279
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/c_loadrunner.php321
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/c_mac.php225
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/c_winapi.php870
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/caddcl.php124
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/cadlisp.php184
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/ceylon.php171
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/cfdg.php122
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/cfm.php297
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/chaiscript.php138
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/chapel.php169
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/cil.php194
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/clojure.php132
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/cmake.php179
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/cobol.php457
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/coffeescript.php144
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/cpp-qt.php622
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/cpp-winapi.php836
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/cpp.php250
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/csharp.php257
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/css.php944
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/cuesheet.php136
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/d.php250
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/dart.php159
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/dcl.php190
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/dcpu16.php129
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/dcs.php180
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/delphi.php299
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/diff.php194
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/div.php124
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/dos.php225
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/dot.php162
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/e.php206
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/ecmascript.php208
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/eiffel.php393
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/email.php220
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/epc.php152
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/erlang.php439
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/euphoria.php138
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/ezt.php134
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/f1.php149
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/falcon.php217
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/fo.php326
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/fortran.php158
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/freebasic.php139
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/freeswitch.php166
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/fsharp.php211
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/gambas.php212
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/gdb.php194
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/genero.php461
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/genie.php155
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/gettext.php95
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/glsl.php203
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/gml.php367
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/gnuplot.php294
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/go.php373
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/groovy.php1009
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/gwbasic.php151
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/haskell.php193
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/haxe.php158
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/hicest.php106
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/hq9plus.php102
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/html4strict.php188
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/html5.php210
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/icon.php210
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/idl.php121
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/ini.php127
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/inno.php210
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/intercal.php120
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/io.php136
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/ispfpanel.php165
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/j.php188
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/java.php980
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/java5.php1035
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/javascript.php172
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/jcl.php155
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/jquery.php236
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/julia.php171
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/kixtart.php327
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/klonec.php280
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/klonecpp.php308
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/kotlin.php959
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/latex.php221
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/lb.php160
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/ldif.php114
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/lisp.php147
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/llvm.php389
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/locobasic.php128
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/logtalk.php343
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/lolcode.php159
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/lotusformulas.php316
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/lotusscript.php189
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/lscript.php385
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/lsl2.php1276
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/lua.php175
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/m68k.php141
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/magiksf.php191
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/make.php149
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/mapbasic.php906
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/mathematica.php5035
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/matlab.php225
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/mercury.php130
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/metapost.php399
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/mirc.php169
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/mk-61.php106
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/mmix.php191
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/modula2.php134
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/modula3.php133
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/mpasm.php162
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/mxml.php143
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/mysql.php472
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/nagios.php223
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/netrexx.php161
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/newlisp.php189
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/nginx.php868
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/nimrod.php201
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/nsis.php351
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/oberon2.php133
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/objc.php356
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/objeck.php114
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/ocaml-brief.php110
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/ocaml.php185
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/octave.php513
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/oobas.php133
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/oorexx.php169
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/oracle11.php612
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/oracle8.php494
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/oxygene.php155
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/oz.php142
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/parasail.php128
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/parigp.php293
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/pascal.php163
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/pcre.php186
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/per.php300
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/perl.php211
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/perl6.php195
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/pf.php176
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/phix.php439
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/php-brief.php220
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/php.php1115
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/pic16.php139
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/pike.php101
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/pixelbender.php173
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/pli.php198
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/plsql.php254
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/postgresql.php285
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/postscript.php217
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/povray.php198
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/powerbuilder.php417
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/powershell.php275
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/proftpd.php372
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/progress.php483
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/prolog.php141
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/properties.php125
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/providex.php297
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/purebasic.php301
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/pycon.php62
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/pys60.php271
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/python.php242
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/q.php147
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/qbasic.php160
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/qml.php351
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/racket.php964
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/rails.php404
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/rbs.php224
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/rebol.php194
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/reg.php231
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/rexx.php160
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/robots.php98
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/rpmspec.php131
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/rsplus.php481
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/ruby.php229
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/rust.php235
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/sas.php288
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/sass.php590
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/scala.php136
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/scheme.php168
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/scilab.php293
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/scl.php148
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/sdlbasic.php163
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/smalltalk.php152
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/smarty.php190
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/spark.php127
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/sparql.php153
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/sql.php168
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/standardml.php216
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/stonescript.php305
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/swift.php557
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/systemverilog.php315
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/tcl.php192
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/tclegg.php501
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/teraterm.php352
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/texgraph.php1137
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/text.php82
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/thinbasic.php866
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/tsql.php819
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/twig.php286
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/typoscript.php298
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/unicon.php208
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/upc.php268
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/urbi.php198
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/uscript.php297
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/vala.php149
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/vb.php155
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/vbnet.php180
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/vbscript.php153
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/vedit.php101
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/verilog.php193
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/vhdl.php181
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/vim.php418
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/visualfoxpro.php454
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/visualprolog.php127
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/whitespace.php119
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/whois.php178
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/winbatch.php367
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/xbasic.php141
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/xml.php155
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/xojo.php279
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/xorg_conf.php122
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/xpp.php434
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/yaml.php149
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/z80.php142
-rw-r--r--wiki/vendor/geshi/geshi/src/geshi/zxbasic.php148
-rw-r--r--wiki/vendor/marcusschwarz/lesserphp/HISTORY.md29
-rw-r--r--wiki/vendor/marcusschwarz/lesserphp/LICENSE661
-rw-r--r--wiki/vendor/marcusschwarz/lesserphp/README.md97
-rw-r--r--wiki/vendor/marcusschwarz/lesserphp/lessc.inc.php4019
-rw-r--r--wiki/vendor/openpsa/universalfeedcreator/README.md161
-rw-r--r--wiki/vendor/openpsa/universalfeedcreator/lib/Creator/AtomCreator03.php95
-rw-r--r--wiki/vendor/openpsa/universalfeedcreator/lib/Creator/AtomCreator10.php163
-rw-r--r--wiki/vendor/openpsa/universalfeedcreator/lib/Creator/FeedCreator.php274
-rw-r--r--wiki/vendor/openpsa/universalfeedcreator/lib/Creator/GPXCreator.php50
-rw-r--r--wiki/vendor/openpsa/universalfeedcreator/lib/Creator/HTMLCreator.php162
-rw-r--r--wiki/vendor/openpsa/universalfeedcreator/lib/Creator/JSCreator.php45
-rw-r--r--wiki/vendor/openpsa/universalfeedcreator/lib/Creator/KMLCreator.php107
-rw-r--r--wiki/vendor/openpsa/universalfeedcreator/lib/Creator/MBOXCreator.php111
-rw-r--r--wiki/vendor/openpsa/universalfeedcreator/lib/Creator/OPMLCreator.php68
-rw-r--r--wiki/vendor/openpsa/universalfeedcreator/lib/Creator/PHPCreator.php57
-rw-r--r--wiki/vendor/openpsa/universalfeedcreator/lib/Creator/PIECreator01.php63
-rw-r--r--wiki/vendor/openpsa/universalfeedcreator/lib/Creator/RSSCreator091.php198
-rw-r--r--wiki/vendor/openpsa/universalfeedcreator/lib/Creator/RSSCreator10.php113
-rw-r--r--wiki/vendor/openpsa/universalfeedcreator/lib/Creator/RSSCreator20.php23
-rw-r--r--wiki/vendor/openpsa/universalfeedcreator/lib/Element/FeedDate.php130
-rw-r--r--wiki/vendor/openpsa/universalfeedcreator/lib/Element/FeedHtmlField.php60
-rw-r--r--wiki/vendor/openpsa/universalfeedcreator/lib/Element/FeedImage.php21
-rw-r--r--wiki/vendor/openpsa/universalfeedcreator/lib/Element/FeedItem.php54
-rw-r--r--wiki/vendor/openpsa/universalfeedcreator/lib/Element/HtmlDescribable.php39
-rw-r--r--wiki/vendor/openpsa/universalfeedcreator/lib/UniversalFeedCreator.php171
-rw-r--r--wiki/vendor/paragonie/random_compat/LICENSE22
-rw-r--r--wiki/vendor/paragonie/random_compat/lib/byte_safe_strings.php181
-rw-r--r--wiki/vendor/paragonie/random_compat/lib/cast_to_int.php75
-rw-r--r--wiki/vendor/paragonie/random_compat/lib/error_polyfill.php49
-rw-r--r--wiki/vendor/paragonie/random_compat/lib/random.php225
-rw-r--r--wiki/vendor/paragonie/random_compat/lib/random_bytes_com_dotnet.php88
-rw-r--r--wiki/vendor/paragonie/random_compat/lib/random_bytes_dev_urandom.php167
-rw-r--r--wiki/vendor/paragonie/random_compat/lib/random_bytes_libsodium.php88
-rw-r--r--wiki/vendor/paragonie/random_compat/lib/random_bytes_libsodium_legacy.php92
-rw-r--r--wiki/vendor/paragonie/random_compat/lib/random_bytes_mcrypt.php77
-rw-r--r--wiki/vendor/paragonie/random_compat/lib/random_int.php190
-rw-r--r--wiki/vendor/paragonie/random_compat/psalm-autoload.php9
-rw-r--r--wiki/vendor/paragonie/random_compat/psalm.xml18
-rw-r--r--wiki/vendor/phpseclib/phpseclib/AUTHORS6
-rw-r--r--wiki/vendor/phpseclib/phpseclib/LICENSE21
-rw-r--r--wiki/vendor/phpseclib/phpseclib/README.md74
-rw-r--r--wiki/vendor/phpseclib/phpseclib/phpseclib/Crypt/AES.php126
-rw-r--r--wiki/vendor/phpseclib/phpseclib/phpseclib/Crypt/Base.php2708
-rw-r--r--wiki/vendor/phpseclib/phpseclib/phpseclib/Crypt/Blowfish.php571
-rw-r--r--wiki/vendor/phpseclib/phpseclib/phpseclib/Crypt/DES.php1443
-rw-r--r--wiki/vendor/phpseclib/phpseclib/phpseclib/Crypt/Hash.php829
-rw-r--r--wiki/vendor/phpseclib/phpseclib/phpseclib/Crypt/RC2.php688
-rw-r--r--wiki/vendor/phpseclib/phpseclib/phpseclib/Crypt/RC4.php342
-rw-r--r--wiki/vendor/phpseclib/phpseclib/phpseclib/Crypt/RSA.php3057
-rw-r--r--wiki/vendor/phpseclib/phpseclib/phpseclib/Crypt/Random.php274
-rw-r--r--wiki/vendor/phpseclib/phpseclib/phpseclib/Crypt/Rijndael.php936
-rw-r--r--wiki/vendor/phpseclib/phpseclib/phpseclib/Crypt/TripleDES.php460
-rw-r--r--wiki/vendor/phpseclib/phpseclib/phpseclib/Crypt/Twofish.php816
-rw-r--r--wiki/vendor/phpseclib/phpseclib/phpseclib/File/ANSI.php577
-rw-r--r--wiki/vendor/phpseclib/phpseclib/phpseclib/File/ASN1.php1325
-rw-r--r--wiki/vendor/phpseclib/phpseclib/phpseclib/File/ASN1/Element.php47
-rw-r--r--wiki/vendor/phpseclib/phpseclib/phpseclib/File/X509.php5046
-rw-r--r--wiki/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger.php3767
-rw-r--r--wiki/vendor/phpseclib/phpseclib/phpseclib/Net/SCP.php337
-rw-r--r--wiki/vendor/phpseclib/phpseclib/phpseclib/Net/SFTP.php3104
-rw-r--r--wiki/vendor/phpseclib/phpseclib/phpseclib/Net/SFTP/Stream.php795
-rw-r--r--wiki/vendor/phpseclib/phpseclib/phpseclib/Net/SSH1.php1642
-rw-r--r--wiki/vendor/phpseclib/phpseclib/phpseclib/Net/SSH2.php4619
-rw-r--r--wiki/vendor/phpseclib/phpseclib/phpseclib/System/SSH/Agent.php308
-rw-r--r--wiki/vendor/phpseclib/phpseclib/phpseclib/System/SSH/Agent/Identity.php158
-rw-r--r--wiki/vendor/phpseclib/phpseclib/phpseclib/bootstrap.php16
-rw-r--r--wiki/vendor/phpseclib/phpseclib/phpseclib/openssl.cnf6
-rw-r--r--wiki/vendor/simplepie/simplepie/LICENSE.txt26
-rw-r--r--wiki/vendor/simplepie/simplepie/README.markdown113
-rw-r--r--wiki/vendor/simplepie/simplepie/autoloader.php85
-rw-r--r--wiki/vendor/simplepie/simplepie/idn/LICENCE502
-rw-r--r--wiki/vendor/simplepie/simplepie/idn/ReadMe.txt123
-rw-r--r--wiki/vendor/simplepie/simplepie/idn/idna_convert.class.php969
-rw-r--r--wiki/vendor/simplepie/simplepie/idn/npdata.ser1
-rwxr-xr-xwiki/vendor/simplepie/simplepie/library/SimplePie.php3293
-rw-r--r--wiki/vendor/simplepie/simplepie/library/SimplePie/Author.php156
-rw-r--r--wiki/vendor/simplepie/simplepie/library/SimplePie/Cache.php134
-rw-r--r--wiki/vendor/simplepie/simplepie/library/SimplePie/Cache/Base.php113
-rw-r--r--wiki/vendor/simplepie/simplepie/library/SimplePie/Cache/DB.php136
-rw-r--r--wiki/vendor/simplepie/simplepie/library/SimplePie/Cache/File.php164
-rw-r--r--wiki/vendor/simplepie/simplepie/library/SimplePie/Cache/Memcache.php180
-rwxr-xr-xwiki/vendor/simplepie/simplepie/library/SimplePie/Cache/Memcached.php166
-rw-r--r--wiki/vendor/simplepie/simplepie/library/SimplePie/Cache/MySQL.php454
-rw-r--r--wiki/vendor/simplepie/simplepie/library/SimplePie/Cache/Redis.php166
-rw-r--r--wiki/vendor/simplepie/simplepie/library/SimplePie/Caption.php209
-rw-r--r--wiki/vendor/simplepie/simplepie/library/SimplePie/Category.php163
-rw-r--r--wiki/vendor/simplepie/simplepie/library/SimplePie/Content/Type/Sniffer.php331
-rw-r--r--wiki/vendor/simplepie/simplepie/library/SimplePie/Copyright.php129
-rw-r--r--wiki/vendor/simplepie/simplepie/library/SimplePie/Core.php56
-rw-r--r--wiki/vendor/simplepie/simplepie/library/SimplePie/Credit.php155
-rw-r--r--wiki/vendor/simplepie/simplepie/library/SimplePie/Decode/HTML/Entities.php615
-rw-r--r--wiki/vendor/simplepie/simplepie/library/SimplePie/Enclosure.php1379
-rw-r--r--wiki/vendor/simplepie/simplepie/library/SimplePie/Exception.php51
-rw-r--r--wiki/vendor/simplepie/simplepie/library/SimplePie/File.php305
-rw-r--r--wiki/vendor/simplepie/simplepie/library/SimplePie/HTTP/Parser.php520
-rw-r--r--wiki/vendor/simplepie/simplepie/library/SimplePie/IRI.php1257
-rw-r--r--wiki/vendor/simplepie/simplepie/library/SimplePie/Item.php3009
-rw-r--r--wiki/vendor/simplepie/simplepie/library/SimplePie/Locator.php429
-rw-r--r--wiki/vendor/simplepie/simplepie/library/SimplePie/Misc.php2279
-rw-r--r--wiki/vendor/simplepie/simplepie/library/SimplePie/Net/IPv6.php275
-rw-r--r--wiki/vendor/simplepie/simplepie/library/SimplePie/Parse/Date.php983
-rw-r--r--wiki/vendor/simplepie/simplepie/library/SimplePie/Parser.php665
-rw-r--r--wiki/vendor/simplepie/simplepie/library/SimplePie/Rating.php128
-rwxr-xr-xwiki/vendor/simplepie/simplepie/library/SimplePie/Registry.php224
-rw-r--r--wiki/vendor/simplepie/simplepie/library/SimplePie/Restriction.php154
-rw-r--r--wiki/vendor/simplepie/simplepie/library/SimplePie/Sanitize.php591
-rw-r--r--wiki/vendor/simplepie/simplepie/library/SimplePie/Source.php610
-rw-r--r--wiki/vendor/simplepie/simplepie/library/SimplePie/XML/Declaration/Parser.php361
-rw-r--r--wiki/vendor/simplepie/simplepie/library/SimplePie/gzdecode.php370
-rw-r--r--wiki/vendor/splitbrain/php-archive/LICENSE19
-rw-r--r--wiki/vendor/splitbrain/php-archive/README.md70
-rw-r--r--wiki/vendor/splitbrain/php-archive/phpunit.xml22
-rw-r--r--wiki/vendor/splitbrain/php-archive/src/Archive.php132
-rw-r--r--wiki/vendor/splitbrain/php-archive/src/FileInfo.php344
-rw-r--r--wiki/vendor/splitbrain/php-archive/src/Tar.php667
-rw-r--r--wiki/vendor/splitbrain/php-archive/src/Zip.php879
-rw-r--r--wiki/vendor/splitbrain/php-cli/LICENSE21
-rw-r--r--wiki/vendor/splitbrain/php-cli/README.md158
-rw-r--r--wiki/vendor/splitbrain/php-cli/src/CLI.php318
-rw-r--r--wiki/vendor/splitbrain/php-cli/src/Colors.php170
-rw-r--r--wiki/vendor/splitbrain/php-cli/src/Exception.php35
-rw-r--r--wiki/vendor/splitbrain/php-cli/src/Options.php470
-rw-r--r--wiki/vendor/splitbrain/php-cli/src/PSR3CLI.php13
-rw-r--r--wiki/vendor/splitbrain/php-cli/src/TableFormatter.php307
4585 files changed, 3 insertions, 316042 deletions
diff --git a/index.html b/index.html
index c519c19..3be05c2 100644
--- a/index.html
+++ b/index.html
@@ -55,6 +55,8 @@
         <p>Feel free to contact ahriman via <a href="mailto:ahriman@tilde.institute">ahriman@tilde.institute</a> or on chat in #institute if you need another compiler or shell available, or if you would like your homepage's index changed from index to something else (index.cgi, index.php, etc). I can also provide access to MySQL / MariaDB on a request basis.</p>
         <div id="news">
             <h1>News &amp; Updates</h1>
+            <em>2019 January 01</em>
+            <p>So DokuWiki is apparently very buggy and hasn't been playing nice. I'm working on a new wiki to replace it. It will be something DIY that users can contribute to via pull requests at our git repo. More details to come.</p>
             <em>2018 December 16</em>
             <p>I got the IRC peering done. tilde.institute is now a node on the larger tildeverse IRC network. Local IRC configs have been updated en masse and the <a href="irc.html">IRC page</a> has been updated to reflect the new info.</p>
             <em>2018 December 14</em>
diff --git a/table.connusers b/table.connusers
index c314531..91c5656 100644
--- a/table.connusers
+++ b/table.connusers
@@ -1,8 +1,5 @@
 <ul>
-<li>mshroyer</li>
-<li>xvetrd</li>
+<li>lorenzo</li>
 <li>nimbius</li>
 <li>rnelson</li>
-<li>lorenzo</li>
-<li>ftlrunner</li>
 </ul>
diff --git a/wiki/.htaccess.dist b/wiki/.htaccess.dist
deleted file mode 100644
index d8845e7..0000000
--- a/wiki/.htaccess.dist
+++ /dev/null
@@ -1,43 +0,0 @@
-## You should disable Indexes and MultiViews either here or in the
-## global config. Symlinks maybe needed for URL rewriting.
-#Options -Indexes -MultiViews +FollowSymLinks
-
-## make sure nobody gets the htaccess, README, COPYING or VERSION files
-<Files ~ "^([\._]ht|README$|VERSION$|COPYING$)">
-    <IfModule mod_authz_host>
-        Require all denied
-    </IfModule>
-    <IfModule !mod_authz_host>
-        Order allow,deny
-        Deny from all
-    </IfModule>
-</Files>
-
-## Don't allow access to git directories
-<IfModule alias_module>
-    RedirectMatch 404 /\.git
-</IfModule>
-
-## Uncomment these rules if you want to have nice URLs using
-## $conf['userewrite'] = 1 - not needed for rewrite mode 2
-#RewriteEngine on
-#
-#RewriteRule ^_media/(.*)              lib/exe/fetch.php?media=$1  [QSA,L]
-#RewriteRule ^_detail/(.*)             lib/exe/detail.php?media=$1  [QSA,L]
-#RewriteRule ^_export/([^/]+)/(.*)     doku.php?do=export_$1&id=$2  [QSA,L]
-#RewriteRule ^$                        doku.php  [L]
-#RewriteCond %{REQUEST_FILENAME}       !-f
-#RewriteCond %{REQUEST_FILENAME}       !-d
-#RewriteRule (.*)                      doku.php?id=$1  [QSA,L]
-#RewriteRule ^index.php$               doku.php
-#
-## Not all installations will require the following line.  If you do,
-## change "/dokuwiki" to the path to your dokuwiki directory relative
-## to your document root.
-#RewriteBase /dokuwiki
-#
-## If you enable DokuWikis XML-RPC interface, you should consider to
-## restrict access to it over HTTPS only! Uncomment the following two
-## rules if your server setup allows HTTPS.
-#RewriteCond %{HTTPS} !=on
-#RewriteRule ^lib/exe/xmlrpc.php$      https://%{SERVER_NAME}%{REQUEST_URI} [L,R=301]
diff --git a/wiki/COPYING b/wiki/COPYING
deleted file mode 100644
index d159169..0000000
--- a/wiki/COPYING
+++ /dev/null
@@ -1,339 +0,0 @@
-                    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/wiki/README b/wiki/README
deleted file mode 100644
index 3e7cb62..0000000
--- a/wiki/README
+++ /dev/null
@@ -1,10 +0,0 @@
-All documentation for DokuWiki is available online
-at http://www.dokuwiki.org/
-
-For Installation Instructions see
-http://www.dokuwiki.org/install
-
-DokuWiki - 2004-2018 (c) Andreas Gohr <andi@splitbrain.org>
-                         and the DokuWiki Community
-See COPYING and file headers for license info
-
diff --git a/wiki/VERSION b/wiki/VERSION
deleted file mode 100644
index c2aa3bd..0000000
--- a/wiki/VERSION
+++ /dev/null
@@ -1 +0,0 @@
-2018-04-22a "Greebo"
diff --git a/wiki/bin/.htaccess b/wiki/bin/.htaccess
deleted file mode 100644
index 5f279f1..0000000
--- a/wiki/bin/.htaccess
+++ /dev/null
@@ -1,7 +0,0 @@
-<IfModule mod_authz_host>
-    Require all denied
-</IfModule>
-<IfModule !mod_authz_host>
-    Order allow,deny
-    Deny from all
-</IfModule>
diff --git a/wiki/bin/dwpage.php b/wiki/bin/dwpage.php
deleted file mode 100755
index 3124563..0000000
--- a/wiki/bin/dwpage.php
+++ /dev/null
@@ -1,322 +0,0 @@
-#!/usr/bin/php
-<?php
-
-use splitbrain\phpcli\CLI;
-use splitbrain\phpcli\Options;
-
-if(!defined('DOKU_INC')) define('DOKU_INC', realpath(dirname(__FILE__) . '/../') . '/');
-define('NOSESSION', 1);
-require_once(DOKU_INC . 'inc/init.php');
-
-/**
- * Checkout and commit pages from the command line while maintaining the history
- */
-class PageCLI extends CLI {
-
-    protected $force = false;
-    protected $username = '';
-
-    /**
-     * Register options and arguments on the given $options object
-     *
-     * @param Options $options
-     * @return void
-     */
-    protected function setup(Options $options) {
-        /* global */
-        $options->registerOption(
-            'force',
-            'force obtaining a lock for the page (generally bad idea)',
-            'f'
-        );
-        $options->registerOption(
-            'user',
-            'work as this user. defaults to current CLI user',
-            'u',
-            'username'
-        );
-        $options->setHelp(
-            'Utility to help command line Dokuwiki page editing, allow ' .
-            'pages to be checked out for editing then committed after changes'
-        );
-
-        /* checkout command */
-        $options->registerCommand(
-            'checkout',
-            'Checks out a file from the repository, using the wiki id and obtaining ' .
-            'a lock for the page. ' . "\n" .
-            'If a working_file is specified, this is where the page is copied to. ' .
-            'Otherwise defaults to the same as the wiki page in the current ' .
-            'working directory.'
-        );
-        $options->registerArgument(
-            'wikipage',
-            'The wiki page to checkout',
-            true,
-            'checkout'
-        );
-        $options->registerArgument(
-            'workingfile',
-            'How to name the local checkout',
-            false,
-            'checkout'
-        );
-
-        /* commit command */
-        $options->registerCommand(
-            'commit',
-            'Checks in the working_file into the repository using the specified ' .
-            'wiki id, archiving the previous version.'
-        );
-        $options->registerArgument(
-            'workingfile',
-            'The local file to commit',
-            true,
-            'commit'
-        );
-        $options->registerArgument(
-            'wikipage',
-            'The wiki page to create or update',
-            true,
-            'commit'
-        );
-        $options->registerOption(
-            'message',
-            'Summary describing the change (required)',
-            'm',
-            'summary',
-            'commit'
-        );
-        $options->registerOption(
-            'trivial',
-            'minor change',
-            't',
-            false,
-            'commit'
-        );
-
-        /* lock command */
-        $options->registerCommand(
-            'lock',
-            'Obtains or updates a lock for a wiki page'
-        );
-        $options->registerArgument(
-            'wikipage',
-            'The wiki page to lock',
-            true,
-            'lock'
-        );
-
-        /* unlock command */
-        $options->registerCommand(
-            'unlock',
-            'Removes a lock for a wiki page.'
-        );
-        $options->registerArgument(
-            'wikipage',
-            'The wiki page to unlock',
-            true,
-            'unlock'
-        );
-    }
-
-    /**
-     * Your main program
-     *
-     * Arguments and options have been parsed when this is run
-     *
-     * @param Options $options
-     * @return void
-     */
-    protected function main(Options $options) {
-        $this->force = $options->getOpt('force', false);
-        $this->username = $options->getOpt('user', $this->getUser());
-
-        $command = $options->getCmd();
-        $args = $options->getArgs();
-        switch($command) {
-            case 'checkout':
-                $wiki_id = array_shift($args);
-                $localfile = array_shift($args);
-                $this->commandCheckout($wiki_id, $localfile);
-                break;
-            case 'commit':
-                $localfile = array_shift($args);
-                $wiki_id = array_shift($args);
-                $this->commandCommit(
-                    $localfile,
-                    $wiki_id,
-                    $options->getOpt('message', ''),
-                    $options->getOpt('trivial', false)
-                );
-                break;
-            case 'lock':
-                $wiki_id = array_shift($args);
-                $this->obtainLock($wiki_id);
-                $this->success("$wiki_id locked");
-                break;
-            case 'unlock':
-                $wiki_id = array_shift($args);
-                $this->clearLock($wiki_id);
-                $this->success("$wiki_id unlocked");
-                break;
-            default:
-                echo $options->help();
-        }
-    }
-
-    /**
-     * Check out a file
-     *
-     * @param string $wiki_id
-     * @param string $localfile
-     */
-    protected function commandCheckout($wiki_id, $localfile) {
-        global $conf;
-
-        $wiki_id = cleanID($wiki_id);
-        $wiki_fn = wikiFN($wiki_id);
-
-        if(!file_exists($wiki_fn)) {
-            $this->fatal("$wiki_id does not yet exist");
-        }
-
-        if(empty($localfile)) {
-            $localfile = getcwd() . '/' . utf8_basename($wiki_fn);
-        }
-
-        if(!file_exists(dirname($localfile))) {
-            $this->fatal("Directory " . dirname($localfile) . " does not exist");
-        }
-
-        if(stristr(realpath(dirname($localfile)), realpath($conf['datadir'])) !== false) {
-            $this->fatal("Attempt to check out file into data directory - not allowed");
-        }
-
-        $this->obtainLock($wiki_id);
-
-        if(!copy($wiki_fn, $localfile)) {
-            $this->clearLock($wiki_id);
-            $this->fatal("Unable to copy $wiki_fn to $localfile");
-        }
-
-        $this->success("$wiki_id > $localfile");
-    }
-
-    /**
-     * Save a file as a new page revision
-     *
-     * @param string $localfile
-     * @param string $wiki_id
-     * @param string $message
-     * @param bool $minor
-     */
-    protected function commandCommit($localfile, $wiki_id, $message, $minor) {
-        $wiki_id = cleanID($wiki_id);
-        $message = trim($message);
-
-        if(!file_exists($localfile)) {
-            $this->fatal("$localfile does not exist");
-        }
-
-        if(!is_readable($localfile)) {
-            $this->fatal("Cannot read from $localfile");
-        }
-
-        if(!$message) {
-            $this->fatal("Summary message required");
-        }
-
-        $this->obtainLock($wiki_id);
-
-        saveWikiText($wiki_id, file_get_contents($localfile), $message, $minor);
-
-        $this->clearLock($wiki_id);
-
-        $this->success("$localfile > $wiki_id");
-    }
-
-    /**
-     * Lock the given page or exit
-     *
-     * @param string $wiki_id
-     */
-    protected function obtainLock($wiki_id) {
-        if($this->force) $this->deleteLock($wiki_id);
-
-        $_SERVER['REMOTE_USER'] = $this->username;
-
-        if(checklock($wiki_id)) {
-            $this->error("Page $wiki_id is already locked by another user");
-            exit(1);
-        }
-
-        lock($wiki_id);
-
-        if(checklock($wiki_id)) {
-            $this->error("Unable to obtain lock for $wiki_id ");
-            var_dump(checklock($wiki_id));
-            exit(1);
-        }
-    }
-
-    /**
-     * Clear the lock on the given page
-     *
-     * @param string $wiki_id
-     */
-    protected function clearLock($wiki_id) {
-        if($this->force) $this->deleteLock($wiki_id);
-
-        $_SERVER['REMOTE_USER'] = $this->username;
-        if(checklock($wiki_id)) {
-            $this->error("Page $wiki_id is locked by another user");
-            exit(1);
-        }
-
-        unlock($wiki_id);
-
-        if(file_exists(wikiLockFN($wiki_id))) {
-            $this->error("Unable to clear lock for $wiki_id");
-            exit(1);
-        }
-    }
-
-    /**
-     * Forcefully remove a lock on the page given
-     *
-     * @param string $wiki_id
-     */
-    protected function deleteLock($wiki_id) {
-        $wikiLockFN = wikiLockFN($wiki_id);
-
-        if(file_exists($wikiLockFN)) {
-            if(!unlink($wikiLockFN)) {
-                $this->error("Unable to delete $wikiLockFN");
-                exit(1);
-            }
-        }
-    }
-
-    /**
-     * Get the current user's username from the environment
-     *
-     * @return string
-     */
-    protected function getUser() {
-        $user = getenv('USER');
-        if(empty ($user)) {
-            $user = getenv('USERNAME');
-        } else {
-            return $user;
-        }
-        if(empty ($user)) {
-            $user = 'admin';
-        }
-        return $user;
-    }
-}
-
-// Main
-$cli = new PageCLI();
-$cli->run();
diff --git a/wiki/bin/gittool.php b/wiki/bin/gittool.php
deleted file mode 100755
index 63d5b44..0000000
--- a/wiki/bin/gittool.php
+++ /dev/null
@@ -1,340 +0,0 @@
-#!/usr/bin/php
-<?php
-
-use splitbrain\phpcli\CLI;
-use splitbrain\phpcli\Options;
-
-if(!defined('DOKU_INC')) define('DOKU_INC', realpath(dirname(__FILE__) . '/../') . '/');
-define('NOSESSION', 1);
-require_once(DOKU_INC . 'inc/init.php');
-
-/**
- * Easily manage DokuWiki git repositories
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- */
-class GitToolCLI extends CLI {
-
-    /**
-     * Register options and arguments on the given $options object
-     *
-     * @param Options $options
-     * @return void
-     */
-    protected function setup(Options $options) {
-        $options->setHelp(
-            "Manage git repositories for DokuWiki and its plugins and templates.\n\n" .
-            "$> ./bin/gittool.php clone gallery template:ach\n" .
-            "$> ./bin/gittool.php repos\n" .
-            "$> ./bin/gittool.php origin -v"
-        );
-
-        $options->registerArgument(
-            'command',
-            'Command to execute. See below',
-            true
-        );
-
-        $options->registerCommand(
-            'clone',
-            'Tries to install a known plugin or template (prefix with template:) via git. Uses the DokuWiki.org ' .
-            'plugin repository to find the proper git repository. Multiple extensions can be given as parameters'
-        );
-        $options->registerArgument(
-            'extension',
-            'name of the extension to install, prefix with \'template:\' for templates',
-            true,
-            'clone'
-        );
-
-        $options->registerCommand(
-            'install',
-            'The same as clone, but when no git source repository can be found, the extension is installed via ' .
-            'download'
-        );
-        $options->registerArgument(
-            'extension',
-            'name of the extension to install, prefix with \'template:\' for templates',
-            true,
-            'install'
-        );
-
-        $options->registerCommand(
-            'repos',
-            'Lists all git repositories found in this DokuWiki installation'
-        );
-
-        $options->registerCommand(
-            '*',
-            'Any unknown commands are assumed to be arguments to git and will be executed in all repositories ' .
-            'found within this DokuWiki installation'
-        );
-    }
-
-    /**
-     * Your main program
-     *
-     * Arguments and options have been parsed when this is run
-     *
-     * @param Options $options
-     * @return void
-     */
-    protected function main(Options $options) {
-        $command = $options->getCmd();
-        $args = $options->getArgs();
-        if(!$command) $command = array_shift($args);
-
-        switch($command) {
-            case '':
-                echo $options->help();
-                break;
-            case 'clone':
-                $this->cmd_clone($args);
-                break;
-            case 'install':
-                $this->cmd_install($args);
-                break;
-            case 'repo':
-            case 'repos':
-                $this->cmd_repos();
-                break;
-            default:
-                $this->cmd_git($command, $args);
-        }
-    }
-
-    /**
-     * Tries to install the given extensions using git clone
-     *
-     * @param array $extensions
-     */
-    public function cmd_clone($extensions) {
-        $errors = array();
-        $succeeded = array();
-
-        foreach($extensions as $ext) {
-            $repo = $this->getSourceRepo($ext);
-
-            if(!$repo) {
-                $this->error("could not find a repository for $ext");
-                $errors[] = $ext;
-            } else {
-                if($this->cloneExtension($ext, $repo)) {
-                    $succeeded[] = $ext;
-                } else {
-                    $errors[] = $ext;
-                }
-            }
-        }
-
-        echo "\n";
-        if($succeeded) $this->success('successfully cloned the following extensions: ' . join(', ', $succeeded));
-        if($errors) $this->error('failed to clone the following extensions: ' . join(', ', $errors));
-    }
-
-    /**
-     * Tries to install the given extensions using git clone with fallback to install
-     *
-     * @param array $extensions
-     */
-    public function cmd_install($extensions) {
-        $errors = array();
-        $succeeded = array();
-
-        foreach($extensions as $ext) {
-            $repo = $this->getSourceRepo($ext);
-
-            if(!$repo) {
-                $this->info("could not find a repository for $ext");
-                if($this->downloadExtension($ext)) {
-                    $succeeded[] = $ext;
-                } else {
-                    $errors[] = $ext;
-                }
-            } else {
-                if($this->cloneExtension($ext, $repo)) {
-                    $succeeded[] = $ext;
-                } else {
-                    $errors[] = $ext;
-                }
-            }
-        }
-
-        echo "\n";
-        if($succeeded) $this->success('successfully installed the following extensions: ' . join(', ', $succeeded));
-        if($errors) $this->error('failed to install the following extensions: ' . join(', ', $errors));
-    }
-
-    /**
-     * Executes the given git command in every repository
-     *
-     * @param $cmd
-     * @param $arg
-     */
-    public function cmd_git($cmd, $arg) {
-        $repos = $this->findRepos();
-
-        $shell = array_merge(array('git', $cmd), $arg);
-        $shell = array_map('escapeshellarg', $shell);
-        $shell = join(' ', $shell);
-
-        foreach($repos as $repo) {
-            if(!@chdir($repo)) {
-                $this->error("Could not change into $repo");
-                continue;
-            }
-
-            $this->info("executing $shell in $repo");
-            $ret = 0;
-            system($shell, $ret);
-
-            if($ret == 0) {
-                $this->success("git succeeded in $repo");
-            } else {
-                $this->error("git failed in $repo");
-            }
-        }
-    }
-
-    /**
-     * Simply lists the repositories
-     */
-    public function cmd_repos() {
-        $repos = $this->findRepos();
-        foreach($repos as $repo) {
-            echo "$repo\n";
-        }
-    }
-
-    /**
-     * Install extension from the given download URL
-     *
-     * @param string $ext
-     * @return bool|null
-     */
-    private function downloadExtension($ext) {
-        /** @var helper_plugin_extension_extension $plugin */
-        $plugin = plugin_load('helper', 'extension_extension');
-        if(!$ext) die("extension plugin not available, can't continue");
-
-        $plugin->setExtension($ext);
-
-        $url = $plugin->getDownloadURL();
-        if(!$url) {
-            $this->error("no download URL for $ext");
-            return false;
-        }
-
-        $ok = false;
-        try {
-            $this->info("installing $ext via download from $url");
-            $ok = $plugin->installFromURL($url);
-        } catch(Exception $e) {
-            $this->error($e->getMessage());
-        }
-
-        if($ok) {
-            $this->success("installed $ext via download");
-            return true;
-        } else {
-            $this->success("failed to install $ext via download");
-            return false;
-        }
-    }
-
-    /**
-     * Clones the extension from the given repository
-     *
-     * @param string $ext
-     * @param string $repo
-     * @return bool
-     */
-    private function cloneExtension($ext, $repo) {
-        if(substr($ext, 0, 9) == 'template:') {
-            $target = fullpath(tpl_incdir() . '../' . substr($ext, 9));
-        } else {
-            $target = DOKU_PLUGIN . $ext;
-        }
-
-        $this->info("cloning $ext from $repo to $target");
-        $ret = 0;
-        system("git clone $repo $target", $ret);
-        if($ret === 0) {
-            $this->success("cloning of $ext succeeded");
-            return true;
-        } else {
-            $this->error("cloning of $ext failed");
-            return false;
-        }
-    }
-
-    /**
-     * Returns all git repositories in this DokuWiki install
-     *
-     * Looks in root, template and plugin directories only.
-     *
-     * @return array
-     */
-    private function findRepos() {
-        $this->info('Looking for .git directories');
-        $data = array_merge(
-            glob(DOKU_INC . '.git', GLOB_ONLYDIR),
-            glob(DOKU_PLUGIN . '*/.git', GLOB_ONLYDIR),
-            glob(fullpath(tpl_incdir() . '../') . '/*/.git', GLOB_ONLYDIR)
-        );
-
-        if(!$data) {
-            $this->error('Found no .git directories');
-        } else {
-            $this->success('Found ' . count($data) . ' .git directories');
-        }
-        $data = array_map('fullpath', array_map('dirname', $data));
-        return $data;
-    }
-
-    /**
-     * Returns the repository for the given extension
-     *
-     * @param $extension
-     * @return false|string
-     */
-    private function getSourceRepo($extension) {
-        /** @var helper_plugin_extension_extension $ext */
-        $ext = plugin_load('helper', 'extension_extension');
-        if(!$ext) die("extension plugin not available, can't continue");
-
-        $ext->setExtension($extension);
-
-        $repourl = $ext->getSourcerepoURL();
-        if(!$repourl) return false;
-
-        // match github repos
-        if(preg_match('/github\.com\/([^\/]+)\/([^\/]+)/i', $repourl, $m)) {
-            $user = $m[1];
-            $repo = $m[2];
-            return 'https://github.com/' . $user . '/' . $repo . '.git';
-        }
-
-        // match gitorious repos
-        if(preg_match('/gitorious.org\/([^\/]+)\/([^\/]+)?/i', $repourl, $m)) {
-            $user = $m[1];
-            $repo = $m[2];
-            if(!$repo) $repo = $user;
-
-            return 'https://git.gitorious.org/' . $user . '/' . $repo . '.git';
-        }
-
-        // match bitbucket repos - most people seem to use mercurial there though
-        if(preg_match('/bitbucket\.org\/([^\/]+)\/([^\/]+)/i', $repourl, $m)) {
-            $user = $m[1];
-            $repo = $m[2];
-            return 'https://bitbucket.org/' . $user . '/' . $repo . '.git';
-        }
-
-        return false;
-    }
-}
-
-// Main
-$cli = new GitToolCLI();
-$cli->run();
diff --git a/wiki/bin/indexer.php b/wiki/bin/indexer.php
deleted file mode 100755
index 4d19a95..0000000
--- a/wiki/bin/indexer.php
+++ /dev/null
@@ -1,107 +0,0 @@
-#!/usr/bin/php
-<?php
-
-use splitbrain\phpcli\CLI;
-use splitbrain\phpcli\Options;
-
-if(!defined('DOKU_INC')) define('DOKU_INC', realpath(dirname(__FILE__) . '/../') . '/');
-define('NOSESSION', 1);
-require_once(DOKU_INC . 'inc/init.php');
-
-/**
- * Update the Search Index from command line
- */
-class IndexerCLI extends CLI {
-
-    private $quiet = false;
-    private $clear = false;
-
-    /**
-     * Register options and arguments on the given $options object
-     *
-     * @param Options $options
-     * @return void
-     */
-    protected function setup(Options $options) {
-        $options->setHelp(
-            'Updates the searchindex by indexing all new or changed pages. When the -c option is ' .
-            'given the index is cleared first.'
-        );
-
-        $options->registerOption(
-            'clear',
-            'clear the index before updating',
-            'c'
-        );
-        $options->registerOption(
-            'quiet',
-            'don\'t produce any output',
-            'q'
-        );
-    }
-
-    /**
-     * Your main program
-     *
-     * Arguments and options have been parsed when this is run
-     *
-     * @param Options $options
-     * @return void
-     */
-    protected function main(Options $options) {
-        $this->clear = $options->getOpt('clear');
-        $this->quiet = $options->getOpt('quiet');
-
-        if($this->clear) $this->clearindex();
-
-        $this->update();
-    }
-
-    /**
-     * Update the index
-     */
-    function update() {
-        global $conf;
-        $data = array();
-        $this->quietecho("Searching pages... ");
-        search($data, $conf['datadir'], 'search_allpages', array('skipacl' => true));
-        $this->quietecho(count($data) . " pages found.\n");
-
-        foreach($data as $val) {
-            $this->index($val['id']);
-        }
-    }
-
-    /**
-     * Index the given page
-     *
-     * @param string $id
-     */
-    function index($id) {
-        $this->quietecho("$id... ");
-        idx_addPage($id, !$this->quiet, $this->clear);
-        $this->quietecho("done.\n");
-    }
-
-    /**
-     * Clear all index files
-     */
-    function clearindex() {
-        $this->quietecho("Clearing index... ");
-        idx_get_indexer()->clear();
-        $this->quietecho("done.\n");
-    }
-
-    /**
-     * Print message if not supressed
-     *
-     * @param string $msg
-     */
-    function quietecho($msg) {
-        if(!$this->quiet) echo $msg;
-    }
-}
-
-// Main
-$cli = new IndexerCLI();
-$cli->run();
diff --git a/wiki/bin/plugin.php b/wiki/bin/plugin.php
deleted file mode 100755
index cbe0b1f..0000000
--- a/wiki/bin/plugin.php
+++ /dev/null
@@ -1,103 +0,0 @@
-#!/usr/bin/php
-<?php
-
-use splitbrain\phpcli\CLI;
-use splitbrain\phpcli\Colors;
-use splitbrain\phpcli\Options;
-
-if(!defined('DOKU_INC')) define('DOKU_INC', realpath(dirname(__FILE__) . '/../') . '/');
-define('NOSESSION', 1);
-require_once(DOKU_INC . 'inc/init.php');
-
-class PluginCLI extends CLI {
-
-    /**
-     * Register options and arguments on the given $options object
-     *
-     * @param Options $options
-     * @return void
-     */
-    protected function setup(Options $options) {
-        $options->setHelp('Excecutes Plugin command line tools');
-        $options->registerArgument('plugin', 'The plugin CLI you want to run. Leave off to see list', false);
-    }
-
-    /**
-     * Your main program
-     *
-     * Arguments and options have been parsed when this is run
-     *
-     * @param Options $options
-     * @return void
-     */
-    protected function main(Options $options) {
-        global $argv;
-        $argv = $options->getArgs();
-
-        if($argv) {
-            $plugin = $this->loadPlugin($argv[0]);
-            if($plugin !== null) {
-                $plugin->run();
-            } else {
-                $this->fatal('Command {cmd} not found.', ['cmd' => $argv[0]]);
-            }
-        } else {
-            echo $options->help();
-            $this->listPlugins();
-        }
-    }
-
-    /**
-     * List available plugins
-     */
-    protected function listPlugins() {
-        /** @var Doku_Plugin_Controller $plugin_controller */
-        global $plugin_controller;
-
-        echo "\n";
-        echo "\n";
-        echo $this->colors->wrap('AVAILABLE PLUGINS:', Colors::C_BROWN);
-        echo "\n";
-
-        $list = $plugin_controller->getList('cli');
-        sort($list);
-        if(!count($list)) {
-            echo $this->colors->wrap("  No plugins providing CLI components available\n", Colors::C_RED);
-        } else {
-            $tf = new \splitbrain\phpcli\TableFormatter($this->colors);
-
-            foreach($list as $name) {
-                $plugin = $this->loadPlugin($name);
-                if($plugin === null) continue;
-                $info = $plugin->getInfo();
-
-                echo $tf->format(
-                    [2, '30%', '*'],
-                    ['', $name, $info['desc']],
-                    ['', Colors::C_CYAN, '']
-
-                );
-            }
-        }
-    }
-
-    /**
-     * Instantiate a CLI plugin
-     *
-     * @param string $name
-     * @return DokuWiki_CLI_Plugin|null
-     */
-    protected
-    function loadPlugin($name) {
-        // execute the plugin CLI
-        $class = "cli_plugin_$name";
-        if(class_exists($class)) {
-            return new $class();
-        }
-        return null;
-    }
-}
-
-// Main
-$cli = new PluginCLI();
-$cli->run();
diff --git a/wiki/bin/render.php b/wiki/bin/render.php
deleted file mode 100755
index cc4a003..0000000
--- a/wiki/bin/render.php
+++ /dev/null
@@ -1,64 +0,0 @@
-#!/usr/bin/php
-<?php
-
-use splitbrain\phpcli\CLI;
-use splitbrain\phpcli\Options;
-
-if(!defined('DOKU_INC')) define('DOKU_INC', realpath(dirname(__FILE__) . '/../') . '/');
-define('NOSESSION', 1);
-require_once(DOKU_INC . 'inc/init.php');
-
-/**
- * A simple commandline tool to render some DokuWiki syntax with a given
- * renderer.
- *
- * This may not work for plugins that expect a certain environment to be
- * set up before rendering, but should work for most or even all standard
- * DokuWiki markup
- *
- * @license GPL2
- * @author  Andreas Gohr <andi@splitbrain.org>
- */
-class RenderCLI extends CLI {
-
-    /**
-     * Register options and arguments on the given $options object
-     *
-     * @param Options $options
-     * @return void
-     */
-    protected function setup(Options $options) {
-        $options->setHelp(
-            'A simple commandline tool to render some DokuWiki syntax with a given renderer.' .
-            "\n\n" .
-            'This may not work for plugins that expect a certain environment to be ' .
-            'set up before rendering, but should work for most or even all standard ' .
-            'DokuWiki markup'
-        );
-        $options->registerOption('renderer', 'The renderer mode to use. Defaults to xhtml', 'r', 'mode');
-    }
-
-    /**
-     * Your main program
-     *
-     * Arguments and options have been parsed when this is run
-     *
-     * @param Options $options
-     * @throws DokuCLI_Exception
-     * @return void
-     */
-    protected function main(Options $options) {
-        $renderer = $options->getOpt('renderer', 'xhtml');
-
-        // do the action
-        $source = stream_get_contents(STDIN);
-        $info = array();
-        $result = p_render($renderer, p_get_instructions($source), $info);
-        if(is_null($result)) throw new DokuCLI_Exception("No such renderer $renderer");
-        echo $result;
-    }
-}
-
-// Main
-$cli = new RenderCLI();
-$cli->run();
diff --git a/wiki/bin/striplangs.php b/wiki/bin/striplangs.php
deleted file mode 100755
index 1800971..0000000
--- a/wiki/bin/striplangs.php
+++ /dev/null
@@ -1,114 +0,0 @@
-#!/usr/bin/php
-<?php
-
-use splitbrain\phpcli\CLI;
-use splitbrain\phpcli\Options;
-
-if(!defined('DOKU_INC')) define('DOKU_INC', realpath(dirname(__FILE__) . '/../') . '/');
-define('NOSESSION', 1);
-require_once(DOKU_INC . 'inc/init.php');
-
-/**
- * Remove unwanted languages from a DokuWiki install
- */
-class StripLangsCLI extends CLI {
-
-    /**
-     * Register options and arguments on the given $options object
-     *
-     * @param Options $options
-     * @return void
-     */
-    protected function setup(Options $options) {
-
-        $options->setHelp(
-            'Remove all languages from the installation, besides the ones specified. English language ' .
-            'is never removed!'
-        );
-
-        $options->registerOption(
-            'keep',
-            'Comma separated list of languages to keep in addition to English.',
-            'k',
-            'langcodes'
-        );
-        $options->registerOption(
-            'english-only',
-            'Remove all languages except English',
-            'e'
-        );
-    }
-
-    /**
-     * Your main program
-     *
-     * Arguments and options have been parsed when this is run
-     *
-     * @param Options $options
-     * @return void
-     */
-    protected function main(Options $options) {
-        if($options->getOpt('keep')) {
-            $keep = explode(',', $options->getOpt('keep'));
-            if(!in_array('en', $keep)) $keep[] = 'en';
-        } elseif($options->getOpt('english-only')) {
-            $keep = array('en');
-        } else {
-            echo $options->help();
-            exit(0);
-        }
-
-        // Kill all language directories in /inc/lang and /lib/plugins besides those in $langs array
-        $this->stripDirLangs(realpath(dirname(__FILE__) . '/../inc/lang'), $keep);
-        $this->processExtensions(realpath(dirname(__FILE__) . '/../lib/plugins'), $keep);
-        $this->processExtensions(realpath(dirname(__FILE__) . '/../lib/tpl'), $keep);
-    }
-
-    /**
-     * Strip languages from extensions
-     *
-     * @param string $path path to plugin or template dir
-     * @param array $keep_langs languages to keep
-     */
-    protected function processExtensions($path, $keep_langs) {
-        if(is_dir($path)) {
-            $entries = scandir($path);
-
-            foreach($entries as $entry) {
-                if($entry != "." && $entry != "..") {
-                    if(is_dir($path . '/' . $entry)) {
-
-                        $plugin_langs = $path . '/' . $entry . '/lang';
-
-                        if(is_dir($plugin_langs)) {
-                            $this->stripDirLangs($plugin_langs, $keep_langs);
-                        }
-                    }
-                }
-            }
-        }
-    }
-
-    /**
-     * Strip languages from path
-     *
-     * @param string $path path to lang dir
-     * @param array $keep_langs languages to keep
-     */
-    protected function stripDirLangs($path, $keep_langs) {
-        $dir = dir($path);
-
-        while(($cur_dir = $dir->read()) !== false) {
-            if($cur_dir != '.' and $cur_dir != '..' and is_dir($path . '/' . $cur_dir)) {
-
-                if(!in_array($cur_dir, $keep_langs, true)) {
-                    io_rmdir($path . '/' . $cur_dir, true);
-                }
-            }
-        }
-        $dir->close();
-    }
-}
-
-$cli = new StripLangsCLI();
-$cli->run();
diff --git a/wiki/bin/wantedpages.php b/wiki/bin/wantedpages.php
deleted file mode 100755
index 0240eb9..0000000
--- a/wiki/bin/wantedpages.php
+++ /dev/null
@@ -1,186 +0,0 @@
-#!/usr/bin/php
-<?php
-
-use splitbrain\phpcli\CLI;
-use splitbrain\phpcli\Options;
-
-if(!defined('DOKU_INC')) define('DOKU_INC', realpath(dirname(__FILE__) . '/../') . '/');
-define('NOSESSION', 1);
-require_once(DOKU_INC . 'inc/init.php');
-
-/**
- * Find wanted pages
- */
-class WantedPagesCLI extends CLI {
-
-    const DIR_CONTINUE = 1;
-    const DIR_NS = 2;
-    const DIR_PAGE = 3;
-
-    private $skip = false;
-    private $sort = 'wanted';
-
-    private $result = array();
-
-    /**
-     * Register options and arguments on the given $options object
-     *
-     * @param Options $options
-     * @return void
-     */
-    protected function setup(Options $options) {
-        $options->setHelp(
-            'Outputs a list of wanted pages (pages that do not exist yet) and their origin pages ' .
-            ' (the pages that are linkin to these missing pages).'
-        );
-        $options->registerArgument(
-            'namespace',
-            'The namespace to lookup. Defaults to root namespace',
-            false
-        );
-
-        $options->registerOption(
-            'sort',
-            'Sort by wanted or origin page',
-            's',
-            '(wanted|origin)'
-        );
-
-        $options->registerOption(
-            'skip',
-            'Do not show the second dimension',
-            'k'
-        );
-    }
-
-    /**
-     * Your main program
-     *
-     * Arguments and options have been parsed when this is run
-     *
-     * @param Options $options
-     * @return void
-     */
-    protected function main(Options $options) {
-        $args = $options->getArgs();
-        if($args) {
-            $startdir = dirname(wikiFN($args[0] . ':xxx'));
-        } else {
-            $startdir = dirname(wikiFN('xxx'));
-        }
-
-        $this->skip = $options->getOpt('skip');
-        $this->sort = $options->getOpt('sort');
-
-        $this->info("searching $startdir");
-
-        foreach($this->get_pages($startdir) as $page) {
-            $this->internal_links($page);
-        }
-        ksort($this->result);
-        foreach($this->result as $main => $subs) {
-            if($this->skip) {
-                print "$main\n";
-            } else {
-                $subs = array_unique($subs);
-                sort($subs);
-                foreach($subs as $sub) {
-                    printf("%-40s %s\n", $main, $sub);
-                }
-            }
-        }
-    }
-
-    /**
-     * Determine directions of the search loop
-     *
-     * @param string $entry
-     * @param string $basepath
-     * @return int
-     */
-    protected function dir_filter($entry, $basepath) {
-        if($entry == '.' || $entry == '..') {
-            return WantedPagesCLI::DIR_CONTINUE;
-        }
-        if(is_dir($basepath . '/' . $entry)) {
-            if(strpos($entry, '_') === 0) {
-                return WantedPagesCLI::DIR_CONTINUE;
-            }
-            return WantedPagesCLI::DIR_NS;
-        }
-        if(preg_match('/\.txt$/', $entry)) {
-            return WantedPagesCLI::DIR_PAGE;
-        }
-        return WantedPagesCLI::DIR_CONTINUE;
-    }
-
-    /**
-     * Collects recursively the pages in a namespace
-     *
-     * @param string $dir
-     * @return array
-     * @throws DokuCLI_Exception
-     */
-    protected function get_pages($dir) {
-        static $trunclen = null;
-        if(!$trunclen) {
-            global $conf;
-            $trunclen = strlen($conf['datadir'] . ':');
-        }
-
-        if(!is_dir($dir)) {
-            throw new DokuCLI_Exception("Unable to read directory $dir");
-        }
-
-        $pages = array();
-        $dh = opendir($dir);
-        while(false !== ($entry = readdir($dh))) {
-            $status = $this->dir_filter($entry, $dir);
-            if($status == WantedPagesCLI::DIR_CONTINUE) {
-                continue;
-            } else if($status == WantedPagesCLI::DIR_NS) {
-                $pages = array_merge($pages, $this->get_pages($dir . '/' . $entry));
-            } else {
-                $page = array(
-                    'id' => pathID(substr($dir . '/' . $entry, $trunclen)),
-                    'file' => $dir . '/' . $entry,
-                );
-                $pages[] = $page;
-            }
-        }
-        closedir($dh);
-        return $pages;
-    }
-
-    /**
-     * Parse instructions and add the non-existing links to the result array
-     *
-     * @param array $page array with page id and file path
-     */
-    function internal_links($page) {
-        global $conf;
-        $instructions = p_get_instructions(file_get_contents($page['file']));
-        $cns = getNS($page['id']);
-        $exists = false;
-        $pid = $page['id'];
-        foreach($instructions as $ins) {
-            if($ins[0] == 'internallink' || ($conf['camelcase'] && $ins[0] == 'camelcaselink')) {
-                $mid = $ins[1][0];
-                resolve_pageid($cns, $mid, $exists);
-                if(!$exists) {
-                    list($mid) = explode('#', $mid); //record pages without hashes
-
-                    if($this->sort == 'origin') {
-                        $this->result[$pid][] = $mid;
-                    } else {
-                        $this->result[$mid][] = $pid;
-                    }
-                }
-            }
-        }
-    }
-}
-
-// Main
-$cli = new WantedPagesCLI();
-$cli->run();
diff --git a/wiki/conf/.htaccess b/wiki/conf/.htaccess
deleted file mode 100755
index b3ffca5..0000000
--- a/wiki/conf/.htaccess
+++ /dev/null
@@ -1,8 +0,0 @@
-## no access to the conf directory
-<IfModule mod_authz_host>
-    Require all denied
-</IfModule>
-<IfModule !mod_authz_host>
-    Order allow,deny
-    Deny from all
-</IfModule>
diff --git a/wiki/conf/acl.auth.php b/wiki/conf/acl.auth.php
deleted file mode 100644
index 2e22206..0000000
--- a/wiki/conf/acl.auth.php
+++ /dev/null
@@ -1,10 +0,0 @@
-# acl.auth.php
-# <?php exit()?>
-# Don't modify the lines above
-#
-# Access Control Lists
-#
-# Auto-generated by install script
-# Date: Tue, 04 Dec 2018 00:11:39 +0000
-*               @ALL          1
-*               @user         8
diff --git a/wiki/conf/acl.auth.php.dist b/wiki/conf/acl.auth.php.dist
deleted file mode 100755
index 14344d7..0000000
--- a/wiki/conf/acl.auth.php.dist
+++ /dev/null
@@ -1,21 +0,0 @@
-# acl.auth.php
-# <?php exit()?>
-# Don't modify the lines above
-#
-# Access Control Lists
-#
-# Editing this file by hand shouldn't be necessary. Use the ACL
-# Manager interface instead.
-#
-# If your auth backend allows special char like spaces in groups
-# or user names you need to urlencode them (only chars <128, leave
-# UTF-8 multibyte chars as is)
-#
-# none   0
-# read   1
-# edit   2
-# create 4
-# upload 8
-# delete 16
-
-*               @ALL        8
diff --git a/wiki/conf/acronyms.conf b/wiki/conf/acronyms.conf
deleted file mode 100755
index 9363f94..0000000
--- a/wiki/conf/acronyms.conf
+++ /dev/null
@@ -1,61 +0,0 @@
-# Acronyms.
-
-ACL          Access Control List
-AFAICS       As far as I can see
-AFAIK        As far as I know
-AFAIR        As far as I remember
-API          Application Programming Interface
-ASAP         As soon as possible
-ASCII        American Standard Code for Information Interchange
-BTW          By the way
-CMS          Content Management System
-CSS          Cascading Style Sheets
-DNS          Domain Name System
-EOF          End of file
-EOL          End of line
-EOM          End of message
-EOT          End of text
-FAQ          Frequently Asked Questions
-FTP          File Transfer Protocol
-FOSS         Free & Open-Source Software
-FLOSS        Free/Libre and Open Source Software
-FUD          Fear, Uncertainty, and Doubt
-GB           Gigabyte
-GHz          Gigahertz
-GPL          GNU General Public License
-GUI          Graphical User Interface
-HTML         HyperText Markup Language
-IANAL        I am not a lawyer (but)
-IE           Internet Explorer
-IIRC         If I remember correctly
-IMHO         In my humble opinion
-IMO          In my opinion
-IOW          In other words
-IRC          Internet Relay Chat
-IRL          In real life
-KISS         Keep it simple stupid
-LAN          Local Area Network
-LGPL         GNU Lesser General Public License
-LOL          Laughing out loud
-MathML       Mathematical Markup Language
-MB           Megabyte
-MHz          Megahertz
-MSIE         Microsoft Internet Explorer
-OMG          Oh my God
-OS           Operating System
-OSS          Open Source Software
-OTOH         On the other hand
-PITA         Pain in the Ass
-RFC          Request for Comments
-ROTFL        Rolling on the floor laughing
-RTFM         Read The Fine Manual
-spec         specification
-TIA          Thanks in advance
-TL;DR        Too long; didn't read
-TOC          Table of Contents
-URI          Uniform Resource Identifier
-URL          Uniform Resource Locator
-W3C          World Wide Web Consortium
-WTF?         What the f***
-WYSIWYG      What You See Is What You Get
-YMMV         Your mileage may vary
diff --git a/wiki/conf/dokuwiki.php b/wiki/conf/dokuwiki.php
deleted file mode 100755
index d57cf1c..0000000
--- a/wiki/conf/dokuwiki.php
+++ /dev/null
@@ -1,180 +0,0 @@
-<?php
-/**
- * This is DokuWiki's Main Configuration file
- *
- * All the default values are kept here, you should not modify it but use
- * a local.php file instead to override the settings from here.
- *
- * This is a piece of PHP code so PHP syntax applies!
- *
- * For help with the configuration and a more detailed explanation of the various options
- * see http://www.dokuwiki.org/config
- */
-
-
-/* Basic Settings */
-$conf['title']       = 'DokuWiki';        //what to show in the title
-$conf['start']       = 'start';           //name of start page
-$conf['lang']        = 'en';              //your language
-$conf['template']    = 'dokuwiki';         //see lib/tpl directory
-$conf['tagline']     = '';                //tagline in header (if template supports it)
-$conf['sidebar']     = 'sidebar';         //name of sidebar in root namespace (if template supports it)
-$conf['license']     = 'cc-by-nc-sa';     //see conf/license.php
-$conf['savedir']     = './data';          //where to store all the files
-$conf['basedir']     = '';                //absolute dir from serveroot - blank for autodetection
-$conf['baseurl']     = '';                //URL to server including protocol - blank for autodetect
-$conf['cookiedir']   = '';                //path to use in cookies - blank for basedir
-$conf['dmode']       = 0755;              //set directory creation mode
-$conf['fmode']       = 0644;              //set file creation mode
-$conf['allowdebug']  = 0;                 //allow debug output, enable if needed 0|1
-
-/* Display Settings */
-$conf['recent']      = 20;                //how many entries to show in recent
-$conf['recent_days'] = 7;                 //How many days of recent changes to keep. (days)
-$conf['breadcrumbs'] = 10;                //how many recent visited pages to show
-$conf['youarehere']  = 0;                 //show "You are here" navigation? 0|1
-$conf['fullpath']    = 0;                 //show full path of the document or relative to datadir only? 0|1
-$conf['typography']  = 1;                 //smartquote conversion 0=off, 1=doublequotes, 2=all quotes
-$conf['dformat']     = '%Y/%m/%d %H:%M';  //dateformat accepted by PHPs strftime() function
-$conf['signature']   = ' --- //[[@MAIL@|@NAME@]] @DATE@//'; //signature see wiki page for details
-$conf['showuseras']  = 'loginname';       // 'loginname' users login name
-                                          // 'username' users full name
-                                          // 'email' e-mail address (will be obfuscated as per mailguard)
-                                          // 'email_link' e-mail address as a mailto: link (obfuscated)
-$conf['toptoclevel'] = 1;                 //Level starting with and below to include in AutoTOC (max. 5)
-$conf['tocminheads'] = 3;                 //Minimum amount of headlines that determines if a TOC is built
-$conf['maxtoclevel'] = 3;                 //Up to which level include into AutoTOC (max. 5)
-$conf['maxseclevel'] = 3;                 //Up to which level create editable sections (max. 5)
-$conf['camelcase']   = 0;                 //Use CamelCase for linking? (I don't like it) 0|1
-$conf['deaccent']    = 1;                 //deaccented chars in pagenames (1) or romanize (2) or keep (0)?
-$conf['useheading']  = 0;                 //use the first heading in a page as its name
-$conf['sneaky_index']= 0;                 //check for namespace read permission in index view (0|1) (1 might cause unexpected behavior)
-$conf['hidepages']   = '';                //Regexp for pages to be skipped from RSS, Search and Recent Changes
-
-/* Authentication Settings */
-$conf['useacl']      = 0;                //Use Access Control Lists to restrict access?
-$conf['autopasswd']  = 1;                //autogenerate passwords and email them to user
-$conf['authtype']    = 'authplain';      //which authentication backend should be used
-$conf['passcrypt']   = 'smd5';           //Used crypt method (smd5,md5,sha1,ssha,crypt,mysql,my411)
-$conf['defaultgroup']= 'user';           //Default groups new Users are added to
-$conf['superuser']   = '!!not set!!';    //The admin can be user or @group or comma separated list user1,@group1,user2
-$conf['manager']     = '!!not set!!';    //The manager can be user or @group or comma separated list user1,@group1,user2
-$conf['profileconfirm'] = 1;             //Require current password to confirm changes to user profile
-$conf['rememberme'] = 1;                 //Enable/disable remember me on login
-$conf['disableactions'] = '';            //comma separated list of actions to disable
-$conf['auth_security_timeout'] = 900;    //time (seconds) auth data is considered valid, set to 0 to recheck on every page view
-$conf['securecookie'] = 1;               //never send HTTPS cookies via HTTP
-$conf['remote']      = 0;                //Enable/disable remote interfaces
-$conf['remoteuser']  = '!!not set!!';    //user/groups that have access to remote interface (comma separated)
-
-/* Antispam Features */
-$conf['usewordblock']= 1;                //block spam based on words? 0|1
-$conf['relnofollow'] = 1;                //use rel="nofollow" for external links?
-$conf['indexdelay']  = 60*60*24*5;       //allow indexing after this time (seconds) default is 5 days
-$conf['mailguard']   = 'hex';            //obfuscate email addresses against spam harvesters?
-                                         //valid entries are:
-                                         //  'visible' - replace @ with [at], . with [dot] and - with [dash]
-                                         //  'hex'     - use hex entities to encode the mail address
-                                         //  'none'    - do not obfuscate addresses
-$conf['iexssprotect']= 1;                // check for JavaScript and HTML in uploaded files 0|1
-
-/* Editing Settings */
-$conf['usedraft']    = 1;                //automatically save a draft while editing (0|1)
-$conf['htmlok']      = 0;                //may raw HTML be embedded? This may break layout and XHTML validity 0|1
-$conf['phpok']       = 0;                //may PHP code be embedded? Never do this on the internet! 0|1
-$conf['locktime']    = 15*60;            //maximum age for lockfiles (defaults to 15 minutes)
-$conf['cachetime']   = 60*60*24;         //maximum age for cachefile in seconds (defaults to a day)
-
-/* Link Settings */
-// Set target to use when creating links - leave empty for same window
-$conf['target']['wiki']      = '';
-$conf['target']['interwiki'] = '';
-$conf['target']['extern']    = '';
-$conf['target']['media']     = '';
-$conf['target']['windows']   = '';
-
-/* Media Settings */
-$conf['mediarevisions'] = 1;             //enable/disable media revisions
-$conf['refcheck']    = 1;                //check for references before deleting media files
-$conf['gdlib']       = 2;                //the GDlib version (0, 1 or 2) 2 tries to autodetect
-$conf['im_convert']  = '';               //path to ImageMagicks convert (will be used instead of GD)
-$conf['jpg_quality'] = '70';             //quality of compression when scaling jpg images (0-100)
-$conf['fetchsize']   = 0;                //maximum size (bytes) fetch.php may download from extern, disabled by default
-
-/* Notification Settings */
-$conf['subscribers'] = 0;                //enable change notice subscription support
-$conf['subscribe_time'] = 24*60*60;      //Time after which digests / lists are sent (in sec, default 1 day)
-                                         //Should be smaller than the time specified in recent_days
-$conf['notify']      = '';               //send change info to this email (leave blank for nobody)
-$conf['registernotify'] = '';            //send info about newly registered users to this email (leave blank for nobody)
-$conf['mailfrom']    = '';               //use this email when sending mails
-$conf['mailreturnpath']    = '';         //use this email as returnpath for bounce mails
-$conf['mailprefix']  = '';               //use this as prefix of outgoing mails
-$conf['htmlmail']    = 1;                //send HTML multipart mails
-
-/* Syndication Settings */
-$conf['sitemap']     = 0;                //Create a google sitemap? How often? In days.
-$conf['rss_type']    = 'rss1';           //type of RSS feed to provide, by default:
-                                         //  'rss'  - RSS 0.91
-                                         //  'rss1' - RSS 1.0
-                                         //  'rss2' - RSS 2.0
-                                         //  'atom' - Atom 0.3
-                                         //  'atom1' - Atom 1.0
-$conf['rss_linkto'] = 'diff';            //what page RSS entries link to:
-                                         //  'diff'    - page showing revision differences
-                                         //  'page'    - the revised page itself
-                                         //  'rev'     - page showing all revisions
-                                         //  'current' - most recent revision of page
-$conf['rss_content'] = 'abstract';       //what to put in the items by default?
-                                         //  'abstract' - plain text, first paragraph or so
-                                         //  'diff'     - plain text unified diff wrapped in <pre> tags
-                                         //  'htmldiff' - diff as HTML table
-                                         //  'html'     - the full page rendered in XHTML
-$conf['rss_media']   = 'both';           //what should be listed?
-                                         //  'both'     - page and media changes
-                                         //  'pages'    - page changes only
-                                         //  'media'    - media changes only
-$conf['rss_update'] = 5*60;              //Update the RSS feed every n seconds (defaults to 5 minutes)
-$conf['rss_show_summary'] = 1;           //Add revision summary to title? 0|1
-
-/* Advanced Settings */
-$conf['updatecheck'] = 1;                //automatically check for new releases?
-$conf['userewrite']  = 0;                //this makes nice URLs: 0: off 1: .htaccess 2: internal
-$conf['useslash']    = 0;                //use slash instead of colon? only when rewrite is on
-$conf['sepchar']     = '_';              //word separator character in page names; may be a
-                                         //  letter, a digit, '_', '-', or '.'.
-$conf['canonical']   = 0;                //Should all URLs use full canonical http://... style?
-$conf['fnencode']    = 'url';            //encode filenames (url|safe|utf-8)
-$conf['autoplural']  = 0;                //try (non)plural form of nonexisting files?
-$conf['compression'] = 'gz';             //compress old revisions: (0: off) ('gz': gnuzip) ('bz2': bzip)
-                                         //  bz2 generates smaller files, but needs more cpu-power
-$conf['gzip_output'] = 0;                //use gzip content encodeing for the output xhtml (if allowed by browser)
-$conf['compress']    = 1;                //Strip whitespaces and comments from Styles and JavaScript? 1|0
-$conf['cssdatauri']  = 512;              //Maximum byte size of small images to embed into CSS, won't work on IE<8
-$conf['send404']     = 0;                //Send a HTTP 404 status for non existing pages?
-$conf['broken_iua']  = 0;                //Platform with broken ignore_user_abort (IIS+CGI) 0|1
-$conf['xsendfile']   = 0;                //Use X-Sendfile (1 = lighttpd, 2 = standard)
-$conf['renderer_xhtml'] = 'xhtml';       //renderer to use for main page generation
-$conf['readdircache'] = 0;               //time cache in second for the readdir operation, 0 to deactivate.
-$conf['search_nslimit'] = 0;             //limit the search to the current X namespaces
-$conf['search_fragment'] = 'exact';      //specify the default fragment search behavior
-
-/* Network Settings */
-$conf['dnslookups'] = 1;                 //disable to disallow IP to hostname lookups
-$conf['jquerycdn']  = 0;                 //use a CDN for delivering jQuery?
-// Proxy setup - if your Server needs a proxy to access the web set these
-$conf['proxy']['host']    = '';
-$conf['proxy']['port']    = '';
-$conf['proxy']['user']    = '';
-$conf['proxy']['pass']    = '';
-$conf['proxy']['ssl']     = 0;
-$conf['proxy']['except']  = '';
-// Safemode Hack - read http://www.dokuwiki.org/config:safemodehack !
-$conf['safemodehack'] = 0;
-$conf['ftp']['host'] = 'localhost';
-$conf['ftp']['port'] = '21';
-$conf['ftp']['user'] = 'user';
-$conf['ftp']['pass'] = 'password';
-$conf['ftp']['root'] = '/home/user/htdocs';
-
-
diff --git a/wiki/conf/entities.conf b/wiki/conf/entities.conf
deleted file mode 100755
index c0d653c..0000000
--- a/wiki/conf/entities.conf
+++ /dev/null
@@ -1,22 +0,0 @@
-# Typography replacements
-#
-# Order does matter!
-#
-# You can use HTML entities here, but it is not recommended because it may break
-# non-HTML renderers. Use UTF-8 chars directly instead.
-
-<->     ↔
-->      →
-<-      â†
-<=>     ⇔
-=>      ⇒
-<=      â‡
->>      »
-<<      «
----     —
---      –
-(c)     ©
-(tm)    â„¢
-(r)     ®
-...     …
-
diff --git a/wiki/conf/interwiki.conf b/wiki/conf/interwiki.conf
deleted file mode 100755
index 2432f11..0000000
--- a/wiki/conf/interwiki.conf
+++ /dev/null
@@ -1,41 +0,0 @@
-# Each URL may contain one of these placeholders
-# {URL}  is replaced by the URL encoded representation of the wikiname
-#        this is the right thing to do in most cases
-# {NAME} this is replaced by the wikiname as given in the document
-#        only mandatory encoded is done, urlencoding if the link
-#        is an external URL, or encoding as a wikiname if it is an
-#        internal link (begins with a colon)
-# {SCHEME}
-# {HOST}
-# {PORT}
-# {PATH}
-# {QUERY} these placeholders will be replaced with the appropriate part
-#         of the link when parsed as a URL
-# If no placeholder is defined the urlencoded name is appended to the URL
-
-# To prevent losing your added InterWiki shortcuts after an upgrade,
-# you should add new ones to interwiki.local.conf
-
-wp        https://en.wikipedia.org/wiki/{NAME}
-wpfr      https://fr.wikipedia.org/wiki/{NAME}
-wpde      https://de.wikipedia.org/wiki/{NAME}
-wpes      https://es.wikipedia.org/wiki/{NAME}
-wppl      https://pl.wikipedia.org/wiki/{NAME}
-wpjp      https://ja.wikipedia.org/wiki/{NAME}
-wpmeta    https://meta.wikipedia.org/wiki/{NAME}
-doku      https://www.dokuwiki.org/
-rfc       https://tools.ietf.org/html/rfc
-man       http://man.cx/
-amazon    https://www.amazon.com/dp/{URL}?tag=splitbrain-20
-amazon.de https://www.amazon.de/dp/{URL}?tag=splitbrain-21
-amazon.uk https://www.amazon.co.uk/dp/{URL}
-paypal    https://www.paypal.com/cgi-bin/webscr?cmd=_xclick&amp;business=
-phpfn     https://secure.php.net/{NAME}
-skype     skype:{NAME}
-google.de https://www.google.de/search?q=
-go        https://www.google.com/search?q={URL}&amp;btnI=lucky
-user      :user:{NAME}
-
-# To support VoIP/SIP/TEL links
-callto    callto://{NAME}
-tel       tel:{NAME}
diff --git a/wiki/conf/license.php b/wiki/conf/license.php
deleted file mode 100755
index 30d409e..0000000
--- a/wiki/conf/license.php
+++ /dev/null
@@ -1,36 +0,0 @@
-<?php
-/**
- * This file defines multiple available licenses you can license your
- * wiki contents under. Do not change this file, but create a
- * license.local.php instead.
- */
-
-$license['cc-zero'] = array(
-    'name' => 'CC0 1.0 Universal',
-    'url'  => 'http://creativecommons.org/publicdomain/zero/1.0/',
-);
-$license['publicdomain'] = array(
-    'name' => 'Public Domain',
-    'url'  => 'http://creativecommons.org/licenses/publicdomain/',
-);
-$license['cc-by'] = array(
-    'name' => 'CC Attribution 4.0 International',
-    'url'  => 'http://creativecommons.org/licenses/by/4.0/',
-);
-$license['cc-by-sa'] = array(
-    'name' => 'CC Attribution-Share Alike 4.0 International',
-    'url'  => 'http://creativecommons.org/licenses/by-sa/4.0/',
-);
-$license['gnufdl'] = array(
-    'name' => 'GNU Free Documentation License 1.3',
-    'url'  => 'http://www.gnu.org/licenses/fdl-1.3.html',
-);
-$license['cc-by-nc'] = array(
-    'name' => 'CC Attribution-Noncommercial 4.0 International',
-    'url'  => 'http://creativecommons.org/licenses/by-nc/4.0/',
-);
-$license['cc-by-nc-sa'] = array(
-    'name' => 'CC Attribution-Noncommercial-Share Alike 4.0 International',
-    'url'  => 'http://creativecommons.org/licenses/by-nc-sa/4.0/',
-);
-
diff --git a/wiki/conf/local.php b/wiki/conf/local.php
deleted file mode 100644
index b0cc327..0000000
--- a/wiki/conf/local.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-/**
- * Dokuwiki's Main Configuration File - Local Settings
- * Auto-generated by install script
- * Date: Tue, 04 Dec 2018 00:11:39 +0000
- */
-$conf['title'] = 'tilde.institute';
-$conf['lang'] = 'en';
-$conf['license'] = 'cc-by-nc-sa';
-$conf['useacl'] = 1;
-$conf['superuser'] = '@admin';
diff --git a/wiki/conf/local.php.dist b/wiki/conf/local.php.dist
deleted file mode 100755
index 0397954..0000000
--- a/wiki/conf/local.php.dist
+++ /dev/null
@@ -1,16 +0,0 @@
-<?php
-/**
- * This is an example of how a local.php could look like.
- * Simply copy the options you want to change from dokuwiki.php
- * to this file and change them.
- *
- * When using the installer, a correct local.php file be generated for
- * you automatically.
- */
-
-
-//$conf['title']       = 'My Wiki';        //what to show in the title
-
-//$conf['useacl']      = 1;                //Use Access Control Lists to restrict access?
-//$conf['superuser']   = 'joe';
-
diff --git a/wiki/conf/manifest.json b/wiki/conf/manifest.json
deleted file mode 100755
index 891bd79..0000000
--- a/wiki/conf/manifest.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
-    "display": "standalone"
-}
diff --git a/wiki/conf/mediameta.php b/wiki/conf/mediameta.php
deleted file mode 100755
index f75fa08..0000000
--- a/wiki/conf/mediameta.php
+++ /dev/null
@@ -1,91 +0,0 @@
-<?php
-/**
- * This configures which meta data will be editable through
- * the media manager. Each field of the array is an array with the
- * following contents:
- *   fieldname - Where data will be saved (EXIF or IPTC field)
- *   label     - key to lookup in the $lang var, if not found printed as is
- *   htmltype  - 'text', 'textarea' or 'date'
- *   lookups   - array additional fields to lookup the data (EXIF or IPTC fields)
- *
- * The fields are not ordered continously to make inserting additional items
- * in between simpler.
- *
- * This is a PHP snippet, so PHP syntax applies.
- *
- * Note: $fields is not a global variable and will not be available to any
- *       other functions or templates later
- *
- * You may extend or overwrite this variable in a optional
- * conf/mediameta.local.php file
- *
- * For a list of available EXIF/IPTC fields refer to
- * http://www.dokuwiki.org/devel:templates:detail.php
- */
-
-
-$fields = array(
-    10 => array('Iptc.Headline',
-                'img_title',
-                'text'),
-
-    20 => array('',
-                'img_date',
-                'date',
-                array('Date.EarliestTime')),
-
-    30 => array('',
-                'img_fname',
-                'text',
-                array('File.Name')),
-
-    40 => array('Iptc.Caption',
-                'img_caption',
-                'textarea',
-                array('Exif.UserComment',
-                      'Exif.TIFFImageDescription',
-                      'Exif.TIFFUserComment')),
-
-    50 => array('Iptc.Byline',
-                'img_artist',
-                'text',
-                array('Exif.TIFFArtist',
-                      'Exif.Artist',
-                      'Iptc.Credit')),
-
-    60 => array('Iptc.CopyrightNotice',
-                'img_copyr',
-                'text',
-                array('Exif.TIFFCopyright',
-                      'Exif.Copyright')),
-
-    70 => array('',
-                'img_format',
-                'text',
-                array('File.Format')),
-
-    80 => array('',
-                'img_fsize',
-                'text',
-                array('File.NiceSize')),
-
-    90 => array('',
-                'img_width',
-                'text',
-                array('File.Width')),
-
-    100 => array('',
-                'img_height',
-                'text',
-                array('File.Height')),
-
-    110 => array('',
-                'img_camera',
-                'text',
-                array('Simple.Camera')),
-
-    120 => array('Iptc.Keywords',
-                'img_keywords',
-                'text',
-                array('Exif.Category')),
-);
diff --git a/wiki/conf/mime.conf b/wiki/conf/mime.conf
deleted file mode 100755
index 56b72a4..0000000
--- a/wiki/conf/mime.conf
+++ /dev/null
@@ -1,72 +0,0 @@
-# Allowed uploadable file extensions and mimetypes are defined here.
-# To extend this file it is recommended to create a mime.local.conf
-# file. Mimetypes that should be downloadable and not be opened in the
-# should be prefixed with a !
-
-jpg     image/jpeg
-jpeg    image/jpeg
-gif     image/gif
-png     image/png
-ico     image/vnd.microsoft.icon
-
-mp3     audio/mpeg
-ogg     audio/ogg
-wav     audio/wav
-webm    video/webm
-ogv     video/ogg
-mp4     video/mp4
-vtt     text/vtt
-
-tgz     !application/octet-stream
-tar     !application/x-gtar
-gz      !application/octet-stream
-bz2     !application/octet-stream
-zip     !application/zip
-rar     !application/rar
-7z      !application/x-7z-compressed
-
-pdf     application/pdf
-ps      !application/postscript
-
-rpm     !application/octet-stream
-deb     !application/octet-stream
-
-doc     !application/msword
-xls     !application/msexcel
-ppt     !application/mspowerpoint
-rtf     !application/msword
-
-docx    !application/vnd.openxmlformats-officedocument.wordprocessingml.document
-xlsx    !application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
-pptx    !application/vnd.openxmlformats-officedocument.presentationml.presentation
-
-sxw     !application/soffice
-sxc     !application/soffice
-sxi     !application/soffice
-sxd     !application/soffice
-
-odc     !application/vnd.oasis.opendocument.chart
-odf     !application/vnd.oasis.opendocument.formula
-odg     !application/vnd.oasis.opendocument.graphics
-odi     !application/vnd.oasis.opendocument.image
-odp     !application/vnd.oasis.opendocument.presentation
-ods     !application/vnd.oasis.opendocument.spreadsheet
-odt     !application/vnd.oasis.opendocument.text
-
-# You should enable HTML and Text uploads only for restricted Wikis.
-# Spammers are known to upload spam pages through unprotected Wikis.
-# Note: Enabling HTML opens Cross Site Scripting vulnerabilities
-#       through JavaScript. Only enable this with trusted users. You
-#       need to disable the iexssprotect option additionally to
-#       adding the mime type here
-#html    text/html
-#htm     text/html
-#txt     text/plain
-#conf    text/plain
-#xml     text/xml
-#csv     text/csv
-
-# Also flash may be able to execute arbitrary scripts in the website's
-# context
-#swf     application/x-shockwave-flash
-
diff --git a/wiki/conf/mysql.conf.php.example b/wiki/conf/mysql.conf.php.example
deleted file mode 100755
index 8337f51..0000000
--- a/wiki/conf/mysql.conf.php.example
+++ /dev/null
@@ -1,253 +0,0 @@
-<?php
-/*
- * This is an example configuration for the mysql auth plugin.
- *
- * This SQL statements are optimized for following table structure.
- * If you use a different one you have to change them accordingly.
- * See comments of every statement for details.
- *
- * TABLE users
- *     uid   login   pass   firstname   lastname   email
- *
- * TABLE groups
- *     gid   name
- *
- * TABLE usergroup
- *     uid   gid
- *
- * To use this configuration you have to copy them to local.protected.php
- * or at least include this file in local.protected.php.
- */
-
-/* Options to configure database access. You need to set up this
- * options carefully, otherwise you won't be able to access you
- * database.
- */
-$conf['plugin']['authmysql']['server']   = '';
-$conf['plugin']['authmysql']['user']     = '';
-$conf['plugin']['authmysql']['password'] = '';
-$conf['plugin']['authmysql']['database'] = '';
-
-/* This option enables debug messages in the mysql plugin. It is
- * mostly useful for system admins.
- */
-$conf['plugin']['authmysql']['debug'] = 0;
-
-/* Normally password encryption is done by DokuWiki (recommended) but for
- * some reasons it might be usefull to let the database do the encryption.
- * Set 'forwardClearPass' to '1' and the cleartext password is forwarded to
- * the database, otherwise the encrypted one.
- */
-$conf['plugin']['authmysql']['forwardClearPass'] = 0;
-
-/* Multiple table operations will be protected by locks. This array tolds
- * the plugin which tables to lock. If you use any aliases for table names
- * these array must also contain these aliases. Any unamed alias will cause
- * a warning during operation. See the example below.
- */
-$conf['plugin']['authmysql']['TablesToLock']= array("users", "users AS u","groups", "groups AS g", "usergroup", "usergroup AS ug");
-
-/***********************************************************************/
-/*       Basic SQL statements for user authentication (required)       */
-/***********************************************************************/
-
-/* This statement is used to grant or deny access to the wiki. The result
- * should be a table with exact one line containing at least the password
- * of the user. If the result table is empty or contains more than one
- * row, access will be denied.
- *
- * The plugin accesses the password as 'pass' so an alias might be necessary.
- *
- * Following patters will be replaced:
- *   %{user}    user name
- *   %{pass}    encrypted or clear text password (depends on 'encryptPass')
- *   %{dgroup}  default group name
- */
-$conf['plugin']['authmysql']['checkPass']   = "SELECT pass
-                                               FROM usergroup AS ug
-                                               JOIN users AS u ON u.uid=ug.uid
-                                               JOIN groups AS g ON g.gid=ug.gid
-                                               WHERE login='%{user}'
-                                               AND name='%{dgroup}'";
-
-/* This statement should return a table with exact one row containing
- * information about one user. The field needed are:
- * 'pass'  containing the encrypted or clear text password
- * 'name'  the user's full name
- * 'mail'  the user's email address
- *
- * Keep in mind that Dokuwiki will access thise information through the
- * names listed above so aliasses might be neseccary.
- *
- * Following patters will be replaced:
- *   %{user}    user name
- */
-$conf['plugin']['authmysql']['getUserInfo'] = "SELECT pass, CONCAT(firstname,' ',lastname) AS name, email AS mail
-                                               FROM users
-                                               WHERE login='%{user}'";
-
-/* This statement is used to get all groups a user is member of. The
- * result should be a table containing all groups the given user is
- * member of. The plugin accesses the group name as 'group' so an alias
- * might be nessecary.
- *
- * Following patters will be replaced:
- *   %{user}    user name
- */
-$conf['plugin']['authmysql']['getGroups']   = "SELECT name as `group`
-                                               FROM groups g, users u, usergroup ug
-                                               WHERE u.uid = ug.uid
-                                               AND g.gid = ug.gid
-                                               AND u.login='%{user}'";
-
-/***********************************************************************/
-/*      Additional minimum SQL statements to use the user manager      */
-/***********************************************************************/
-
-/* This statement should return a table containing all user login names
- * that meet certain filter criteria. The filter expressions will be added
- * case dependend by the plugin. At the end a sort expression will be added.
- * Important is that this list contains no double entries for a user. Each
- * user name is only allowed once in the table.
- *
- * The login name will be accessed as 'user' to an alias might be neseccary.
- * No patterns will be replaced in this statement but following patters
- * will be replaced in the filter expressions:
- *   %{user}    in FilterLogin  user's login name
- *   %{name}    in FilterName   user's full name
- *   %{email}   in FilterEmail  user's email address
- *   %{group}   in FilterGroup  group name
- */
-$conf['plugin']['authmysql']['getUsers']    = "SELECT DISTINCT login AS user
-                                               FROM users AS u
-                                               LEFT JOIN usergroup AS ug ON u.uid=ug.uid
-                                               LEFT JOIN groups AS g ON ug.gid=g.gid";
-$conf['plugin']['authmysql']['FilterLogin'] = "login LIKE '%{user}'";
-$conf['plugin']['authmysql']['FilterName']  = "CONCAT(firstname,' ',lastname) LIKE '%{name}'";
-$conf['plugin']['authmysql']['FilterEmail'] = "email LIKE '%{email}'";
-$conf['plugin']['authmysql']['FilterGroup'] = "name LIKE '%{group}'";
-$conf['plugin']['authmysql']['SortOrder']   = "ORDER BY login";
-
-/***********************************************************************/
-/*   Additional SQL statements to add new users with the user manager  */
-/***********************************************************************/
-
-/* This statement should add a user to the database. Minimum information
- * to store are: login name, password, email address and full name.
- *
- * Following patterns will be replaced:
- *   %{user}    user's login name
- *   %{pass}    password (encrypted or clear text, depends on 'encryptPass')
- *   %{email}   email address
- *   %{name}    user's full name
- */
-$conf['plugin']['authmysql']['addUser']     = "INSERT INTO users
-                                               (login, pass, email, firstname, lastname)
-                                               VALUES ('%{user}', '%{pass}', '%{email}',
-                                               SUBSTRING_INDEX('%{name}',' ', 1),
-                                               SUBSTRING_INDEX('%{name}',' ', -1))";
-
-/* This statement should add a group to the database.
- * Following patterns will be replaced:
- *   %{group}   group name
- */
-$conf['plugin']['authmysql']['addGroup']    = "INSERT INTO groups (name)
-                                               VALUES ('%{group}')";
-
-/* This statement should connect a user to a group (a user become member
- * of that group).
- * Following patterns will be replaced:
- *   %{user}    user's login name
- *   %{uid}     id of a user dataset
- *   %{group}   group name
- *   %{gid}     id of a group dataset
- */
-$conf['plugin']['authmysql']['addUserGroup']= "INSERT INTO usergroup (uid, gid)
-                                               VALUES ('%{uid}', '%{gid}')";
-
-/* This statement should remove a group fom the database.
- * Following patterns will be replaced:
- *   %{group}   group name
- *   %{gid}     id of a group dataset
- */
-$conf['plugin']['authmysql']['delGroup']    = "DELETE FROM groups
-                                               WHERE gid='%{gid}'";
-
-/* This statement should return the database index of a given user name.
- * The plugin will access the index with the name 'id' so an alias might be
- * necessary.
- * following patters will be replaced:
- *   %{user}    user name
- */
-$conf['plugin']['authmysql']['getUserID']   = "SELECT uid AS id
-                                               FROM users
-                                               WHERE login='%{user}'";
-
-/***********************************************************************/
-/*   Additional SQL statements to delete users with the user manager   */
-/***********************************************************************/
-
-/* This statement should remove a user fom the database.
- * Following patterns will be replaced:
- *   %{user}    user's login name
- *   %{uid}     id of a user dataset
- */
-$conf['plugin']['authmysql']['delUser']     = "DELETE FROM users
-                                               WHERE uid='%{uid}'";
-
-/* This statement should remove all connections from a user to any group
- * (a user quits membership of all groups).
- * Following patterns will be replaced:
- *   %{uid}     id of a user dataset
- */
-$conf['plugin']['authmysql']['delUserRefs'] = "DELETE FROM usergroup
-                                               WHERE uid='%{uid}'";
-
-/***********************************************************************/
-/*   Additional SQL statements to modify users with the user manager   */
-/***********************************************************************/
-
-/* This statements should modify a user entry in the database. The
- * statements UpdateLogin, UpdatePass, UpdateEmail and UpdateName will be
- * added to updateUser on demand. Only changed parameters will be used.
- *
- * Following patterns will be replaced:
- *   %{user}    user's login name
- *   %{pass}    password (encrypted or clear text, depends on 'encryptPass')
- *   %{email}   email address
- *   %{name}    user's full name
- *   %{uid}     user id that should be updated
- */
-$conf['plugin']['authmysql']['updateUser']  = "UPDATE users SET";
-$conf['plugin']['authmysql']['UpdateLogin'] = "login='%{user}'";
-$conf['plugin']['authmysql']['UpdatePass']  = "pass='%{pass}'";
-$conf['plugin']['authmysql']['UpdateEmail'] = "email='%{email}'";
-$conf['plugin']['authmysql']['UpdateName']  = "firstname=SUBSTRING_INDEX('%{name}',' ', 1),
-                                               lastname=SUBSTRING_INDEX('%{name}',' ', -1)";
-$conf['plugin']['authmysql']['UpdateTarget']= "WHERE uid=%{uid}";
-
-/* This statement should remove a single connection from a user to a
- * group (a user quits membership of that group).
- *
- * Following patterns will be replaced:
- *   %{user}    user's login name
- *   %{uid}     id of a user dataset
- *   %{group}   group name
- *   %{gid}     id of a group dataset
- */
-$conf['plugin']['authmysql']['delUserGroup']= "DELETE FROM usergroup
-                                               WHERE uid='%{uid}'
-                                               AND gid='%{gid}'";
-
-/* This statement should return the database index of a given group name.
- * The plugin will access the index with the name 'id' so an alias might
- * be necessary.
- *
- * Following patters will be replaced:
- *   %{group}   group name
- */
-$conf['plugin']['authmysql']['getGroupID']  = "SELECT gid AS id
-                                               FROM groups
-                                               WHERE name='%{group}'";
-
-
diff --git a/wiki/conf/plugins.local.php b/wiki/conf/plugins.local.php
deleted file mode 100644
index 393238e..0000000
--- a/wiki/conf/plugins.local.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-/*
- * Local plugin enable/disable settings
- *
- * Auto-generated by install script
- * Date: Tue, 04 Dec 2018 00:11:39 +0000
- */
-
-$plugins['authad']    = 0;
-$plugins['authldap']  = 0;
-$plugins['authmysql'] = 0;
-$plugins['authpgsql'] = 0;
diff --git a/wiki/conf/plugins.php b/wiki/conf/plugins.php
deleted file mode 100755
index b2c7997..0000000
--- a/wiki/conf/plugins.php
+++ /dev/null
@@ -1,6 +0,0 @@
-<?php
-/**
- * This file configures the default states of available plugins. All settings in
- * the plugins.*.php files will override those here.
- */
-$plugins['testing'] = 0;
diff --git a/wiki/conf/plugins.required.php b/wiki/conf/plugins.required.php
deleted file mode 100755
index 75336da..0000000
--- a/wiki/conf/plugins.required.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-/**
- * This file configures the enabled/disabled status of plugins, which are also protected
- * from changes by the extention manager. These settings will override any local settings.
- * It is not recommended to change this file, as it is overwritten on DokuWiki upgrades.
- */
-$plugins['acl']               = 1;
-$plugins['authplain']         = 1;
-$plugins['extension']         = 1;
-$plugins['config']            = 1;
-$plugins['usermanager']       = 1;
-$plugins['template:dokuwiki'] = 1; // not a plugin, but this should not be uninstalled either
diff --git a/wiki/conf/scheme.conf b/wiki/conf/scheme.conf
deleted file mode 100755
index 88cb3c4..0000000
--- a/wiki/conf/scheme.conf
+++ /dev/null
@@ -1,11 +0,0 @@
-#Add URL schemes you want to be recognized as links here
-
-http
-https
-telnet
-gopher
-wais
-ftp
-ed2k
-irc
-ldap
\ No newline at end of file
diff --git a/wiki/conf/smileys.conf b/wiki/conf/smileys.conf
deleted file mode 100755
index 80daed5..0000000
--- a/wiki/conf/smileys.conf
+++ /dev/null
@@ -1,28 +0,0 @@
-# Smileys configured here will be replaced by the
-# configured images in the smiley directory
-
-8-)         icon_cool.gif
-8-O         icon_eek.gif
-8-o         icon_eek.gif
-:-(         icon_sad.gif
-:-)         icon_smile.gif
-=)          icon_smile2.gif
-:-/         icon_doubt.gif
-:-\         icon_doubt2.gif
-:-?         icon_confused.gif
-:-D         icon_biggrin.gif
-:-P         icon_razz.gif
-:-o         icon_surprised.gif
-:-O         icon_surprised.gif
-:-x         icon_silenced.gif
-:-X         icon_silenced.gif
-:-|         icon_neutral.gif
-;-)         icon_wink.gif
-m(          facepalm.gif
-^_^         icon_fun.gif
-:?:         icon_question.gif
-:!:         icon_exclaim.gif
-LOL         icon_lol.gif
-FIXME       fixme.gif
-DELETEME    delete.gif
-
diff --git a/wiki/conf/users.auth.php b/wiki/conf/users.auth.php
deleted file mode 100644
index 5e2a4ac..0000000
--- a/wiki/conf/users.auth.php
+++ /dev/null
@@ -1,12 +0,0 @@
-# users.auth.php
-# <?php exit()?>
-# Don't modify the lines above
-#
-# Userfile
-#
-# Format:
-#
-# login:passwordhash:Real Name:email:groups,comma,separated
-
-
-ahriman:$1$lQneqQgd$dFNTq6hx8rvaYavSImhG/.:ahriman:ahriman@falte.red:admin,user
diff --git a/wiki/conf/users.auth.php.dist b/wiki/conf/users.auth.php.dist
deleted file mode 100755
index 8231aa5..0000000
--- a/wiki/conf/users.auth.php.dist
+++ /dev/null
@@ -1,10 +0,0 @@
-# users.auth.php
-# <?php exit()?>
-# Don't modify the lines above
-#
-# Userfile
-#
-# Format:
-#
-# login:passwordhash:Real Name:email:groups,comma,separated
-
diff --git a/wiki/conf/wordblock.conf b/wiki/conf/wordblock.conf
deleted file mode 100755
index 3040fa0..0000000
--- a/wiki/conf/wordblock.conf
+++ /dev/null
@@ -1,29 +0,0 @@
-# This blacklist is maintained by the DokuWiki community
-# patches welcome
-#
-https?:\/\/(\S*?)(-side-effects|top|pharm|pill|discount|discount-|deal|price|order|now|best|cheap|cheap-|online|buy|buy-|sale|sell)(\S*?)(cialis|viagra|prazolam|xanax|zanax|soma|vicodin|zenical|xenical|meridia|paxil|prozac|claritin|allegra|lexapro|wellbutrin|zoloft|retin|valium|levitra|phentermine)
-https?:\/\/(\S*?)(bi\s*sex|gay\s*sex|fetish|incest|penis|\brape\b)
-zoosex
-gang\s*bang
-facials
-ladyboy
-\btits\b
-bolea\.com
-52crystal
-baida\.org
-web-directory\.awardspace\.us
-korsan-team\.com
-BUDA TAMAMDIR
-wow-powerleveling-wow\.com
-wow gold
-wow-gold\.dinmo\.cn
-downgrade-vista\.com
-downgradetowindowsxp\.com
-elegantugg\.com
-classicedhardy\.com
-research-service\.com
-https?:\/\/(\S*?)(2-pay-secure|911essay|academia-research|anypapers|applicationessay|bestbuyessay|bestdissertation|bestessay|bestresume|besttermpaper|businessessay|college-paper|customessay|custom-made-paper|custom-writing|degree-?result|dissertationblog|dissertation-service|dissertations?expert|essaybank|essay-?blog|essaycapital|essaylogic|essaymill|essayontime|essaypaper|essays?land|essaytownsucks|essay-?writ|fastessays|freelancercareers|genuinecontent|genuineessay|genuinepaper|goessay|grandresume|killer-content|ma-dissertation|managementessay|masterpaper|mightystudent|needessay|researchedge|researchpaper-blog|resumecvservice|resumesexperts|resumesplanet|rushessay|samedayessay|superiorcontent|superiorpaper|superiorthesis|term-paper|termpaper-blog|term-paper-research|thesisblog|universalresearch|valwriting|vdwriters|wisetranslation|writersassembly|writers\.com\.ph|writers\.ph)
-flatsinmumbai\.co\.in
-https?:\/\/(\S*?)penny-?stock
-mattressreview\.biz
-(just|simply) (my|a) profile (site|webpage|page)
diff --git a/wiki/data/.htaccess b/wiki/data/.htaccess
deleted file mode 100644
index 5f279f1..0000000
--- a/wiki/data/.htaccess
+++ /dev/null
@@ -1,7 +0,0 @@
-<IfModule mod_authz_host>
-    Require all denied
-</IfModule>
-<IfModule !mod_authz_host>
-    Order allow,deny
-    Deny from all
-</IfModule>
diff --git a/wiki/data/_dummy b/wiki/data/_dummy
deleted file mode 100644
index e492265..0000000
--- a/wiki/data/_dummy
+++ /dev/null
@@ -1 +0,0 @@
-You can safely delete this file.
\ No newline at end of file
diff --git a/wiki/data/attic/_dummy b/wiki/data/attic/_dummy
deleted file mode 100644
index e492265..0000000
--- a/wiki/data/attic/_dummy
+++ /dev/null
@@ -1 +0,0 @@
-You can safely delete this file.
\ No newline at end of file
diff --git a/wiki/data/attic/start.1543882518.txt.gz b/wiki/data/attic/start.1543882518.txt.gz
deleted file mode 100644
index c11a626..0000000
--- a/wiki/data/attic/start.1543882518.txt.gz
+++ /dev/null
Binary files differdiff --git a/wiki/data/attic/start.1543882598.txt.gz b/wiki/data/attic/start.1543882598.txt.gz
deleted file mode 100644
index 22d5d8e..0000000
--- a/wiki/data/attic/start.1543882598.txt.gz
+++ /dev/null
Binary files differdiff --git a/wiki/data/cache/0/0a789d617165bc7ce31c0e886fb959c6.i b/wiki/data/cache/0/0a789d617165bc7ce31c0e886fb959c6.i
deleted file mode 100644
index ef36055..0000000
--- a/wiki/data/cache/0/0a789d617165bc7ce31c0e886fb959c6.i
+++ /dev/null
@@ -1 +0,0 @@
-a:5:{i:0;a:3:{i:0;s:14:"document_start";i:1;a:0:{}i:2;i:0;}i:1;a:3:{i:0;s:6:"header";i:1;a:3:{i:0;s:10:"PlayGround";i:1;i:1;i:2;i:1;}i:2;i:1;}i:2;a:3:{i:0;s:12:"section_open";i:1;a:1:{i:0;i:1;}i:2;i:1;}i:3;a:3:{i:0;s:13:"section_close";i:1;a:0:{}i:2;i:26;}i:4;a:3:{i:0;s:12:"document_end";i:1;a:0:{}i:2;i:26;}}
\ No newline at end of file
diff --git a/wiki/data/cache/0/0a789d617165bc7ce31c0e886fb959c6.metadata b/wiki/data/cache/0/0a789d617165bc7ce31c0e886fb959c6.metadata
deleted file mode 100644
index ad3cb2b..0000000
--- a/wiki/data/cache/0/0a789d617165bc7ce31c0e886fb959c6.metadata
+++ /dev/null
@@ -1 +0,0 @@
-1546006437
\ No newline at end of file
diff --git a/wiki/data/cache/0/0a789d617165bc7ce31c0e886fb959c6.xhtml b/wiki/data/cache/0/0a789d617165bc7ce31c0e886fb959c6.xhtml
deleted file mode 100644
index ee73bf7..0000000
--- a/wiki/data/cache/0/0a789d617165bc7ce31c0e886fb959c6.xhtml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-<h1 class="sectionedit1" id="playground">PlayGround</h1>
-<div class="level1">
-
-</div>
diff --git a/wiki/data/cache/0/0d09dae0d3d26ffad9c51e79ca29903c.feed b/wiki/data/cache/0/0d09dae0d3d26ffad9c51e79ca29903c.feed
deleted file mode 100644
index bb7beb9..0000000
--- a/wiki/data/cache/0/0d09dae0d3d26ffad9c51e79ca29903c.feed
+++ /dev/null
@@ -1,66 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- generator="FeedCreator 1.8" -->
-<?xml-stylesheet href="https://tilde.institute/wiki/lib/exe/css.php?s=feed" type="text/css"?>
-<rdf:RDF
-    xmlns="http://purl.org/rss/1.0/"
-    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
-    xmlns:dc="http://purl.org/dc/elements/1.1/">
-    <channel rdf:about="https://tilde.institute/wiki/feed.php">
-        <title>tilde.institute wiki</title>
-        <description></description>
-        <link>https://tilde.institute/wiki/</link>
-        <image rdf:resource="https://tilde.institute/wiki/lib/tpl/dokuwiki/images/favicon.ico" />
-       <dc:date>2018-12-28T14:13:47+0000</dc:date>
-        <items>
-            <rdf:Seq>
-                <rdf:li rdf:resource="https://tilde.institute/wiki/doku.php?id=wiki:dokuwiki&amp;rev=1543881884&amp;do=diff"/>
-                <rdf:li rdf:resource="https://tilde.institute/wiki/doku.php?id=wiki:syntax&amp;rev=1543881884&amp;do=diff"/>
-                <rdf:li rdf:resource="https://tilde.institute/wiki/doku.php?id=wiki:welcome&amp;rev=1543881884&amp;do=diff"/>
-            </rdf:Seq>
-        </items>
-    </channel>
-    <image rdf:about="https://tilde.institute/wiki/lib/tpl/dokuwiki/images/favicon.ico">
-        <title>tilde.institute</title>
-        <link>https://tilde.institute/wiki/</link>
-        <url>https://tilde.institute/wiki/lib/tpl/dokuwiki/images/favicon.ico</url>
-    </image>
-    <item rdf:about="https://tilde.institute/wiki/doku.php?id=wiki:dokuwiki&amp;rev=1543881884&amp;do=diff">
-        <dc:format>text/html</dc:format>
-        <dc:date>2018-12-04T00:04:44+0000</dc:date>
-        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
-        <title>wiki:dokuwiki</title>
-        <link>https://tilde.institute/wiki/doku.php?id=wiki:dokuwiki&amp;rev=1543881884&amp;do=diff</link>
-        <description>DokuWiki
-
-wiki:dokuwiki DokuWiki is a simple to use and highly versatile Open Source wiki software that doesn't require a database. It is loved by users for its clean and readable syntax. The ease of maintenance, backup and integration makes it an administrator's favorite. Built in</description>
-    </item>
-    <item rdf:about="https://tilde.institute/wiki/doku.php?id=wiki:syntax&amp;rev=1543881884&amp;do=diff">
-        <dc:format>text/html</dc:format>
-        <dc:date>2018-12-04T00:04:44+0000</dc:date>
-        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
-        <title>wiki:syntax</title>
-        <link>https://tilde.institute/wiki/doku.php?id=wiki:syntax&amp;rev=1543881884&amp;do=diff</link>
-        <description>Formatting Syntax
-
-DokuWiki supports some simple markup language, which tries to make the datafiles to be as readable as possible. This page contains all possible syntax you may use when editing the pages. Simply have a look at the source of this page by pressing</description>
-    </item>
-    <item rdf:about="https://tilde.institute/wiki/doku.php?id=wiki:welcome&amp;rev=1543881884&amp;do=diff">
-        <dc:format>text/html</dc:format>
-        <dc:date>2018-12-04T00:04:44+0000</dc:date>
-        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
-        <title>wiki:welcome</title>
-        <link>https://tilde.institute/wiki/doku.php?id=wiki:welcome&amp;rev=1543881884&amp;do=diff</link>
-        <description>Welcome to your new DokuWiki
-
-Congratulations, your wiki is now up and running. Here are a few more tips to get you started.
-
-Enjoy your work with DokuWiki,
-
--- the developers
-
-Create your first pages
-
-Your wiki needs to have a start page. As long as it doesn't exist, this link will be red:</description>
-    </item>
-</rdf:RDF>
diff --git a/wiki/data/cache/1/110bdf6aedb6f63f9ed28137868a8da9.feed b/wiki/data/cache/1/110bdf6aedb6f63f9ed28137868a8da9.feed
deleted file mode 100644
index 7255c1c..0000000
--- a/wiki/data/cache/1/110bdf6aedb6f63f9ed28137868a8da9.feed
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- generator="FeedCreator 1.8" -->
-<?xml-stylesheet href="https://tilde.institute/wiki/lib/exe/css.php?s=feed" type="text/css"?>
-<rdf:RDF
-    xmlns="http://purl.org/rss/1.0/"
-    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
-    xmlns:dc="http://purl.org/dc/elements/1.1/">
-    <channel rdf:about="https://tilde.institute/wiki/feed.php">
-        <title>tilde.institute</title>
-        <description></description>
-        <link>https://tilde.institute/wiki/</link>
-        <image rdf:resource="https://tilde.institute/wiki/lib/tpl/dokuwiki/images/favicon.ico" />
-       <dc:date>2019-01-01T05:48:31+0000</dc:date>
-        <items>
-            <rdf:Seq>
-                <rdf:li rdf:resource="https://tilde.institute/wiki/doku.php?id=start&amp;rev=1543882598&amp;do=diff"/>
-            </rdf:Seq>
-        </items>
-    </channel>
-    <image rdf:about="https://tilde.institute/wiki/lib/tpl/dokuwiki/images/favicon.ico">
-        <title>tilde.institute</title>
-        <link>https://tilde.institute/wiki/</link>
-        <url>https://tilde.institute/wiki/lib/tpl/dokuwiki/images/favicon.ico</url>
-    </image>
-    <item rdf:about="https://tilde.institute/wiki/doku.php?id=start&amp;rev=1543882598&amp;do=diff">
-        <dc:format>text/html</dc:format>
-        <dc:date>2018-12-04T00:16:38+0000</dc:date>
-        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
-        <title>start</title>
-        <link>https://tilde.institute/wiki/doku.php?id=start&amp;rev=1543882598&amp;do=diff</link>
-        <description>Welcome to the tilde.institute wiki!
-This is the place to record anything new you've learned and anything cool you've done at the institute. Share information with others to help spread knowledge of the OpenBSD operating system. We'll learn together!</description>
-    </item>
-</rdf:RDF>
diff --git a/wiki/data/cache/1/178682a2542f32e3738ed4651b98f1fc.i b/wiki/data/cache/1/178682a2542f32e3738ed4651b98f1fc.i
deleted file mode 100644
index 8420538..0000000
--- a/wiki/data/cache/1/178682a2542f32e3738ed4651b98f1fc.i
+++ /dev/null
@@ -1 +0,0 @@
-a:17:{i:0;a:3:{i:0;s:14:"document_start";i:1;a:0:{}i:2;i:0;}i:1;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:0;}i:2;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:22:"Edit the page and hit ";}i:2;i:1;}i:3;a:3:{i:0;s:14:"monospace_open";i:1;a:0:{}i:2;i:23;}i:4;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:4:"Save";}i:2;i:25;}i:5;a:3:{i:0;s:15:"monospace_close";i:1;a:0:{}i:2;i:29;}i:6;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:6:". See ";}i:2;i:31;}i:7;a:3:{i:0;s:12:"internallink";i:1;a:2:{i:0;s:11:"wiki:syntax";i:1;N;}i:2;i:37;}i:8;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:55:" for Wiki syntax. Please edit the page only if you can ";}i:2;i:52;}i:9;a:3:{i:0;s:11:"strong_open";i:1;a:0:{}i:2;i:107;}i:10;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:7:"improve";}i:2;i:109;}i:11;a:3:{i:0;s:12:"strong_close";i:1;a:0:{}i:2;i:116;}i:12;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:76:" it. If you want to test some things, learn to make your first steps on the ";}i:2;i:118;}i:13;a:3:{i:0;s:12:"internallink";i:1;a:2:{i:0;s:21:"playground:playground";i:1;s:10:"playground";}i:2;i:194;}i:14;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:".";}i:2;i:230;}i:15;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:231;}i:16;a:3:{i:0;s:12:"document_end";i:1;a:0:{}i:2;i:231;}}
\ No newline at end of file
diff --git a/wiki/data/cache/1/178682a2542f32e3738ed4651b98f1fc.xhtml b/wiki/data/cache/1/178682a2542f32e3738ed4651b98f1fc.xhtml
deleted file mode 100644
index 5f3f748..0000000
--- a/wiki/data/cache/1/178682a2542f32e3738ed4651b98f1fc.xhtml
+++ /dev/null
@@ -1,4 +0,0 @@
-
-<p>
-Edit the page and hit <code>Save</code>. See <a href="/wiki/doku.php?id=wiki:syntax" class="wikilink1" title="wiki:syntax">syntax</a> for Wiki syntax. Please edit the page only if you can <strong>improve</strong> it. If you want to test some things, learn to make your first steps on the <a href="/wiki/doku.php?id=playground:playground" class="wikilink1" title="playground:playground">playground</a>.
-</p>
diff --git a/wiki/data/cache/2/236187688f853302efdf9c8b5eab05fb.i b/wiki/data/cache/2/236187688f853302efdf9c8b5eab05fb.i
deleted file mode 100644
index 413f299..0000000
--- a/wiki/data/cache/2/236187688f853302efdf9c8b5eab05fb.i
+++ /dev/null
@@ -1 +0,0 @@
-a:8:{i:0;a:3:{i:0;s:14:"document_start";i:1;a:0:{}i:2;i:0;}i:1;a:3:{i:0;s:6:"header";i:1;a:3:{i:0;s:17:"Permission Denied";i:1;i:1;i:2;i:1;}i:2;i:1;}i:2;a:3:{i:0;s:12:"section_open";i:1;a:1:{i:0;i:1;}i:2;i:1;}i:3;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:1;}i:4;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:48:"Sorry, you don't have enough rights to continue.";}i:2;i:34;}i:5;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:82;}i:6;a:3:{i:0;s:13:"section_close";i:1;a:0:{}i:2;i:84;}i:7;a:3:{i:0;s:12:"document_end";i:1;a:0:{}i:2;i:84;}}
\ No newline at end of file
diff --git a/wiki/data/cache/2/236187688f853302efdf9c8b5eab05fb.xhtml b/wiki/data/cache/2/236187688f853302efdf9c8b5eab05fb.xhtml
deleted file mode 100644
index 0691e9f..0000000
--- a/wiki/data/cache/2/236187688f853302efdf9c8b5eab05fb.xhtml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-<h1 class="sectionedit1" id="permission_denied">Permission Denied</h1>
-<div class="level1">
-
-<p>
-Sorry, you don&#039;t have enough rights to continue.
-</p>
-
-</div>
diff --git a/wiki/data/cache/2/2d0321e94bd5683a6040a2908ef41193.css b/wiki/data/cache/2/2d0321e94bd5683a6040a2908ef41193.css
deleted file mode 100644
index c2aecd7..0000000
--- a/wiki/data/cache/2/2d0321e94bd5683a6040a2908ef41193.css
+++ /dev/null
@@ -1 +0,0 @@
-@media screen{a.interwiki{background:transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAw1BMVEUAAAACAgIaHB0bHB0bHR0aHB4cHh8dHx8eICIfISIUKT4dJzAnKywpLCwhLTkfPl8nN0clPVM9QUMvVXU8WnVBREZESEpKYXVWZXBpbnJqb3JtcXRuc3VvdXhzdnhyeHtefJVdf5xtjKV+mrJ8nLZ7n7uKpruXp7OCpsGVscOfv9Wius2ku82iwtitxdW+yc+yxta70eC51OS/1OHAyc3Bys7Cy8/Dys/N0dXR1djA1eLD1+TK2eXX3OHc4uTg5en////YsFbQAAAAN3RSTlP///////////////////////////////////////////////////////////////////////8AEFmdiwAAAG9JREFUeAFjMEMDxApIsjAyssoiBITkLO1sLXjEYAJSvPbWRsY26jzyUAEmc20tXUMDHQl2qACjvoqqhpWepjgjVMABBBTVlAXhAgwMDA7CSgp8bHAVQAF+EQFOGbgKIOTi5hA1QzaDkVmaaL+gAQDUCy6hGMOdlgAAAABJRU5ErkJggg==) 0 1px no-repeat;padding:1px 0 1px 16px;}a.iw_wp{background-image:url(data:image/gif;base64,R0lGODlhEAAQAPMJADIxMlRUVG9vb4B/gJGRka6urtTV1N/g3/j5+P///wAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAAkALAAAAAAQABAAAARYMMlJq70W6c017SBCGUKBEMRhpAVBHQGBFIDRzsVHAAcspLPDxwAw0Uw24URDCPQAsoLpgyAWDAEnkIoIlAoxk2jJhCIEPA8ZcSAYqjK1hHPY1OWYvJ4SAQA7);}a.iw_wpfr{background-image:url(data:image/gif;base64,R0lGODlhEAAQAPMJADIxMlRUVG9vb4B/gJGRka6urtTV1N/g3/j5+P///wAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAAkALAAAAAAQABAAAARYMMlJq70W6c017SBCGUKBEMRhpAVBHQGBFIDRzsVHAAcspLPDxwAw0Uw24URDCPQAsoLpgyAWDAEnkIoIlAoxk2jJhCIEPA8ZcSAYqjK1hHPY1OWYvJ4SAQA7);}a.iw_wpde{background-image:url(data:image/gif;base64,R0lGODlhEAAQAPMJADIxMlRUVG9vb4B/gJGRka6urtTV1N/g3/j5+P///wAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAAkALAAAAAAQABAAAARYMMlJq70W6c017SBCGUKBEMRhpAVBHQGBFIDRzsVHAAcspLPDxwAw0Uw24URDCPQAsoLpgyAWDAEnkIoIlAoxk2jJhCIEPA8ZcSAYqjK1hHPY1OWYvJ4SAQA7);}a.iw_wpes{background-image:url(data:image/gif;base64,R0lGODlhEAAQAPMJADIxMlRUVG9vb4B/gJGRka6urtTV1N/g3/j5+P///wAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAAkALAAAAAAQABAAAARYMMlJq70W6c017SBCGUKBEMRhpAVBHQGBFIDRzsVHAAcspLPDxwAw0Uw24URDCPQAsoLpgyAWDAEnkIoIlAoxk2jJhCIEPA8ZcSAYqjK1hHPY1OWYvJ4SAQA7);}a.iw_wppl{background-image:url(data:image/gif;base64,R0lGODlhEAAQAPMJADIxMlRUVG9vb4B/gJGRka6urtTV1N/g3/j5+P///wAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAAkALAAAAAAQABAAAARYMMlJq70W6c017SBCGUKBEMRhpAVBHQGBFIDRzsVHAAcspLPDxwAw0Uw24URDCPQAsoLpgyAWDAEnkIoIlAoxk2jJhCIEPA8ZcSAYqjK1hHPY1OWYvJ4SAQA7);}a.iw_wpjp{background-image:url(data:image/gif;base64,R0lGODlhEAAQAPMJADIxMlRUVG9vb4B/gJGRka6urtTV1N/g3/j5+P///wAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAAkALAAAAAAQABAAAARYMMlJq70W6c017SBCGUKBEMRhpAVBHQGBFIDRzsVHAAcspLPDxwAw0Uw24URDCPQAsoLpgyAWDAEnkIoIlAoxk2jJhCIEPA8ZcSAYqjK1hHPY1OWYvJ4SAQA7);}a.iw_wpmeta{background-image:url(data:image/gif;base64,R0lGODlhEAAQAPMJADIxMlRUVG9vb4B/gJGRka6urtTV1N/g3/j5+P///wAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAAkALAAAAAAQABAAAARYMMlJq70W6c017SBCGUKBEMRhpAVBHQGBFIDRzsVHAAcspLPDxwAw0Uw24URDCPQAsoLpgyAWDAEnkIoIlAoxk2jJhCIEPA8ZcSAYqjK1hHPY1OWYvJ4SAQA7);}a.iw_doku{background-image:url(data:image/gif;base64,R0lGODlhEAAQAPMOAKpvR8JMK0umTje1J6rCc7SrnrfHtNvEq8vLy87hzvbqxvv98uze3rattP///wB9ACH5BAEAAA4ALAAAAAAQABAAAARp0MlJq72XHWOKOUkBNFRRKGiSLEVwABSiGE1Dt4FLNQcisznAoXI4oBaHXGFhIBqTgABgsSBRFrIECLFIGBIWhEFAMCC8qyaF83gMBAYqp7Icv99f9aSxYDDGZAMrFWgNMggCVhiLjBcRADs=);}a.iw_amazon{background-image:url(data:image/gif;base64,R0lGODlhEAAQAPIHAAAAAPnQi6+1v3V1dfv15To6Ov+uNP///yH5BAUKAAcALAAAAAAQABAAAANJeLrcfkQMQd4aIGdhMSgeUDlYoXicBQnF1rUakDbehD6ZedxOrsAzBqwA+xACAYYgJpEdk5BkZCYIGJAL6xVp6AZGjSfyqyofEgA7);}a.iw_amazon_de{background-image:url(data:image/gif;base64,R0lGODlhEAAQAPIHAAAAAPnQi6+1v3V1dfv15To6Ov+uNP///yH5BAUKAAcALAAAAAAQABAAAANJeLrcfkQMQd4aIGdhMSgeUDlYoXicBQnF1rUakDbehD6ZedxOrsAzBqwA+xACAYYgJpEdk5BkZCYIGJAL6xVp6AZGjSfyqyofEgA7);}a.iw_amazon_uk{background-image:url(data:image/gif;base64,R0lGODlhEAAQAPIHAAAAAPnQi6+1v3V1dfv15To6Ov+uNP///yH5BAUKAAcALAAAAAAQABAAAANJeLrcfkQMQd4aIGdhMSgeUDlYoXicBQnF1rUakDbehD6ZedxOrsAzBqwA+xACAYYgJpEdk5BkZCYIGJAL6xVp6AZGjSfyqyofEgA7);}a.iw_paypal{background-image:url(data:image/gif;base64,R0lGODlhEAAQAPIHAFNTU2RlZO/y7sjLx3h5eKKlooyNiwAAACH5BAUAAAcALAAAAAAQABAAAANQeHrQDiuqQGuAcoYyRqnZQQ0LERBNZAYLQBkXJlLPaMpPExjkxyoNzkBA1BAmqcKtRhK5Dqgcoek8XnjDYgtgYAAKIYU2GI7EyuYnWqzNJAAAOw==);}a.iw_phpfn{background-image:url(data:image/gif;base64,R0lGODlhEAAQAPMOAAcMFB4eMCw2UTpEakVNaVRmlWJqklhqo2J0rGeDt3iT2H+a5YGU1Y6q7AAAAAAAACH5BAEAAA4ALAAAAAAQABAAAARR0MlJq704681p+w0DgE3VLEwqImwheAihpAB7IAMASGGaAAEWojCgLAYEg1B4eE0UAQIiYSsMnZKjBMEIeAUuiqLoYO0cBCJlQPaedeeO3BIBADs=);}a.iw_skype{background-image:url(data:image/gif;base64,R0lGODlhEAAQAPIHAHh4eJmZmV1dXf7+/ri4uNvb2+zs7AAAACH5BAUAAAcALAAAAAAQABAAAANTeLrcHTAAt0CEINNAeDEFAQjCAxmDgRbjpFjcwFqF5CrRIBMiWVaRj65GYlgyggxhQChWLIMAKcAk3Q6ZQgplkDoVSQshlNE4ypnI1WRbU95wRwIAOw==);}a.iw_user{background-image:url(/wiki/lib/images/interwiki/user.png);}a.iw_callto{background-image:url(data:image/gif;base64,R0lGODlhEAAQAOMPAMwwK16QCxl1zxmQ5iqd6lih4ZeYmqyur52go9TW2eni3d3f4fPx7t/f38S+vP///yH5BAEKAA8ALAAAAAAQABAAAARe8Mk53XGO6srY2c8hWgeziNuhdJ2lfJoqzEXdwFQpEHX9pooBYUgY/GJBYlGB2CBY0EVTg1gEAo4EACB1LhLgcJe6MBjA5jGlmlh8G+0pxcBAGBRMumFj7vv3IIESEQA7);}a.iw_tel{background-image:url(data:image/gif;base64,R0lGODlhEAAQAOMPAMwwK16QCxl1zxmQ5iqd6lih4ZeYmqyur52go9TW2eni3d3f4fPx7t/f38S+vP///yH5BAEKAA8ALAAAAAAQABAAAARe8Mk53XGO6srY2c8hWgeziNuhdJ2lfJoqzEXdwFQpEHX9pooBYUgY/GJBYlGB2CBY0EVTg1gEAo4EACB1LhLgcJe6MBjA5jGlmlh8G+0pxcBAGBRMumFj7vv3IIESEQA7);}.mediafile{background:transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAAwElEQVR4AW3PPUoDURQF4O/OBHsb0yi4ByG4TUELl+Q2bMQ0Roz5IfPedRgIg+Gd037cw40U3Frq/c/ae1YkPBw2pzLk3EM+P7nXJQmrU9nm79Tv/MrPkXzky0QIrIbc5zH3Y39yk+sR7HKbryMJIUfwVkCVBkfXgMXjAqAT6BS9KxvV4AZnIEDoQUwQM4CZTMttQExz87QWode1LiRIoTKDFuraIKQALkCKMzGnyi4TtexVl6llp0QK7iyb/xTrP+DMapMFm/pGAAAAAElFTkSuQmCC) 0 1px no-repeat;padding-left:18px;padding-bottom:1px;}.mf_7z{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAACZZgCUlJSVlZWZmZl+VACZZgCPXwD4+Pj5+fn5+fn7+/v8/PyZZgCxij6xiz/m5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///9o3RgLAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACOSURBVHjaVc3ZEoMgDEDRICBdtIvazbZWKyKG//+/BoZh6p3kIecBgAGXKiYyxgjkscLQvCUhUNWote67B953IgMAhcYa8/20OI17EcBaa6bhiZQKsCAus+5f7S0C5WXo3gSbsvnrWoC/nXNhqQM0IRfWB+s7gZ8IZYT0xvqXSwEM8nONsfokCXiuUpL/AMD2FfR4jF10AAAAAElFTkSuQmCC);}.mf_asm{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAzZpmUlJSVlZWZmZkqVH4zZpkvX4/4+Pj5+fn5+fn7+/v8/PwzZplkirFli7Hm5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///+1eJgJAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACSSURBVHjaXY2JDoIwEAW3QKkHoAJeqAhSSln+//98NNAYJ007md2kJCiUaiEKhECQh5wdwxYFQeWd1rqp73zbRQERKTbWmM+74r7bRy5Ya03fPhgoF0bmcdDNs7ouAcylrV8Im7T84ZJQWk6QacKZLSPcztYXASOYD+vch9SJ38j+fjknJCg+FbxQHCVCGCuPDL8/VxdkUml3JgAAAABJRU5ErkJggg==);}.mf_bash{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAzZpmUlJSVlZWZmZkqVH4zZpkvX4/4+Pj5+fn5+fn7+/v8/PwzZplkirFli7Hm5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///+1eJgJAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACRSURBVHjaXY2LDoIwDEU7tjEfiAr4QuUhY4zu///P0iyGeJr2JqdNCgKkNhGVCEFCHwtkpi0ZEqYYrLVd88D7TiUAYNB55z5tjeOwVyy8927sn0gYFjPiPNnuVd+iIBbTN28Sm0O14ppBCJTcgSLkwMFV8eSLsIyYsNqvLqhi5n9fLhkISM8lRsqTJiFT80PLL3flF/w9UVhDAAAAAElFTkSuQmCC);}.mf_bz2{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAACZZgCUlJSVlZWZmZl+VACZZgCPXwD4+Pj5+fn5+fn7+/v8/PyZZgCxij6xiz/m5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///9o3RgLAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACRSURBVHjaXc2LDoIgFIDhg4J0USulm5VpIuLx/d+vA2Pk+hkDvjEABqmQIZ4wRiAOFfqmLQmBrAatddfe8bbjCQBINNaYz7vBcdhzD9ZaM/YPpKSHGXGedPdsrgEoJ337ItgUatUlh0Iti6K5+FWVQAcaKk4Hv3OAeMe1fsNtyr9fzjkwyE41huqjIEgzGRPpFxZIFvFd9hAvAAAAAElFTkSuQmCC);}.mf_c{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAzZpmUlJSVlZWZmZkqVH4zZpkvX4/4+Pj5+fn5+fn7+/v8/PwzZplkirFli7Hm5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///+1eJgJAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACISURBVHjahc3bDoIwDIDhjm0MFU+AJ1QOMsYo7/9+1tkQoxf+N0u/LC0IkNpwKhKCQG8zDA0LEgKTddbaprrgeakiADDovHOPusS+W6kA3nvXt1ekTIARcRxscytPDNRL2upOkKyLj44p8DxN73cDPM9//sPPjq8rhxQExPscuXynCWRs5rR8Am9iFSUntQHzAAAAAElFTkSuQmCC);}.mf_cc{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAzZpmUlJSVlZWZmZkqVH4zZpkvX4/4+Pj5+fn5+fn7+/v8/PwzZplkirFli7Hm5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///+1eJgJAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACISURBVHjahc3JEoIwDIDhlLbEBTdwRUWQUkp4//czZDqOowf/mRzyHRJQoC3GTKIUg93kJPVzFgbMW+dcXV3ovDAJACD54P3zUVLXLo1ACMF3zZU4FBiIht7Vt/IUgZukqe4Ms9X+o2MGso+jDLcG2eNM/YefG19fDhkoSHcFxYqtZdApvrP6BaqXFcY0fXcvAAAAAElFTkSuQmCC);}.mf_conf{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAgVBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAACZmZmUlJSVlZWZmZl+fn6ZmZmPj4/4+Pj5+fn5+fn7+/v8/PyZmZmxsbHm5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz////7VrU3AAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACMSURBVHjaZc2LDoIgFIDhg4B000rpYmWaiHh4/wfswKjV/IENvjEABlyqlMgYI5D7CmPTmoRAVYMxpmuveNmIDAAUWmft69ngOGxFBOecHfsbUirCjDhPprs35wRUkL59EKwK/dNpB4X3WocZly/Bk/s0wv4f6LC8kd74QLn8hUF+rDFVHyQBz9U3yd8SKRcS0TX7RQAAAABJRU5ErkJggg==);}.mf_cpp{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAzZpmUlJSVlZWZmZkqVH4zZpkvX4/4+Pj5+fn5+fn7+/v8/PwzZplkirFli7Hm5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///+1eJgJAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACQSURBVHgBXc2NDoIgEMDxQ0D6MCulj6xMExHP93+/Tnaz1l9vg98YgACpDacSIQj0vsDYsCYhMEXnnGvqG143KgEAgz54/35V2HdbFSGE4Pv2jpSJMCKOg2se1YVhjqStnwSrnf3pnAHtp2n+49gcaGFp+LOWgU98gYfiOxbI/145ZSAgPZbIlQdNIFOzpOUHABcWlTpZEbgAAAAASUVORK5CYII=);}.mf_cs{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAzZpmUlJSVlZWZmZkqVH4zZpkvX4/4+Pj5+fn5+fn7+/v8/PwzZplkirFli7Hm5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///+1eJgJAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACNSURBVHgBXc3pDoIwDMDxjm3MAw/BQ1ERZIxR3v/9bOrSGP+hJP196ECBti5lMqUI7K5EblySELiy9963zQ2vK5MBgMMQQ3i/ahz6tWGIMYahuyPlGCbEafTto74kQGTpmifBYnP86VwA7/PMQ22Bd55vAkkE5C836OMbf6+cClCQHypMVXtLoHMnWf0BqoAVxt/yR5wAAAAASUVORK5CYII=);}.mf_csh{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAzZpmUlJSVlZWZmZkqVH4zZpkvX4/4+Pj5+fn5+fn7+/v8/PwzZplkirFli7Hm5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///+1eJgJAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACRSURBVHjaXc2JEoIgEAbgRUQ67FK6rEwTEdf3f7/WnZ1q+mFh+GAWUKCNlaSJUgRmVyBnWJIQ2KLz3jf1FS+rNAEAiyGG8HpW2HfrlCHGGPr2hhTLMCKOg2/u1VmAMktbPwgWG/eTUw50niauebgtONqkeBVw/OgLcs/APeYpPf5+OeagIDuUKCn3hkBn9hOj3wYFFsPJBIaBAAAAAElFTkSuQmCC);}.mf_css{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAzZpmUlJSVlZWZmZkqVH4zZpkvX4/4+Pj5+fn5+fn7+/v8/PwzZplkirFli7Hm5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///+1eJgJAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACNSURBVHjaXc3bDoIwDIDhjm0MFQ8cPKEiyBijvP/72SwNM/5Js/S76ECA1IZTiRAE+lhiaNqQEJhysNZ27R1vW5UAgEHnnfu8GxyHnQrgvXdj/0DKBJgR58l2z+bKgBikb18E2b7+6ZID7csS5wD01utQDCwRovANPkE3/n455yAgLSrkqpMmkKlZ0/IL5Z4WZ+e0150AAAAASUVORK5CYII=);}.mf_csv{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAgVBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAACZmZmUlJSVlZWZmZl+fn6ZmZmPj4/4+Pj5+fn5+fn7+/v8/PyZmZmxsbHm5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz////7VrU3AAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACNSURBVHjaZc2LDoIgFIDhg4B0tVK6WJkmIh7e/wE7slNr9TNgfBsAAqQ2nMqEINC7ElPjkoTAlL1zrm0ueF6pDAAM+uD981Hj0K9VghCCH7orUibBhDiNrr3VJwZqlq65Eyy29qvjBugcY5rzsAVY2nimlcHGH2Ch+I34vlf8/yIgP1TIVXtNIHPzScsXt94WID7+3/QAAAAASUVORK5CYII=);}.mf_deb{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAACZZgCUlJSVlZWZmZl+VACZZgCPXwD4+Pj5+fn5+fn7+/v8/PyZZgCxij6xiz/m5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///9o3RgLAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACPSURBVHjaZc2JEoIgEIDhRUQ6tEO3y8o0EXF5//drI6Zp8meA4RsGQIBUOpYmQjCobUmhccnCoMveGNM2Fzqv0gQANFln7fNR09Cv0wDOOTt0V+J0gIloGk17q08RuLd0zZ1hUeBPxxwK9B55+rDjBvgQBsb1A/EWcrMbszf+fjnkICDbVxSrdopBZvqbki8yUBc22OoLRgAAAABJRU5ErkJggg==);}.mf_diff{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAzZpmUlJSVlZWZmZkqVH4zZpkvX4/4+Pj5+fn5+fn7+/v8/PwzZplkirFli7Hm5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///+1eJgJAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACPSURBVBgZBcExUsMwEADAvZMcewINQyGq8P9v0allJoABSdmNWCUTMOZSyWt5A+Pjb64Stv1ljnGe9+v6nwr1poi15lGff2ZCSiXDtr+XChFilu1zjlcVgkhiFOLYdgDkV91uutYbvdGz7nrr6OhcEqChIQE6OvLUOgB+49h2AMR3xLo8ZQP0cY9YpQSAOR/GcTKGT9w7fQAAAABJRU5ErkJggg==);}.mf_doc{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAAmZmUlJSVlZWZmZkAfn4AmZkAj4/4+Pj5+fn5+fn7+/v8/PwAmZk+sbE/sbHm5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///9DXRlxAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACLSURBVHjahc3ZDoMgEEDRQcDpol3UbrZ1qYg4/v//dSTENO1DL2Eg5wFAgNQYUpEQDHqfkW9YszBg1hljmupG142KAADJOmtfdUl9t1UenHO2b+/EoYeRaBxM8ygvAbhZ2urJsEqLj84JpMU08c1vHjvgc1lz/+Hnja9fTgkIiI85hfKDZpAxLmn5Bgi3FsNZ58xbAAAAAElFTkSuQmCC);}.mf_docx{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAAmZmUlJSVlZWZmZkAfn4AmZkAj4/4+Pj5+fn5+fn7+/v8/PwAmZk+sbE/sbHm5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///9DXRlxAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACOSURBVHjaZY+LDoIwDEU72CgqPnj4QkWQMUb5//+zWxajcprdLifNloKAWGFARkKwUPuCPOOKDQsseq1121zpspYRACAZa8zrWdPQb6QX1lozdDdi0IuJaBp1e6/PQTDOdM2DRbqtvjhlMM/c3eEL1w44QlU+f4SLxcTijb9fjhkISPKSAuVBufUT/KDiN1njF6Cqto7pAAAAAElFTkSuQmCC);}.mf_gif{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAACZmQCUlJSVlZWZmZl+fgCZmQCPjwD4+Pj5+fn5+fn7+/v8/PyZmQCxsT6xsT/m5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///9OLlm4AAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACNSURBVBgZBcExTgMxEADA2bUdnwINojAV/P9bdNciBQhgm5mIXTIBc22VvJYXMN9/1y6h9ac15/1+u+6/pVBfFbH3Ourj90pIqWRo/a1UiBCrtI81n1UIIolZiKN1AORnts4YhjEGK2tnnOCES4IBAyQAJ8g75wDgJ47WARBfEfvykANwzlvELiUArPUPdzEtUeoVt8IAAAAASUVORK5CYII=);}.mf_gz{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAACZZgCUlJSVlZWZmZl+VACZZgCPXwD4+Pj5+fn5+fn7+/v8/PyZZgCxij6xiz/m5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///9o3RgLAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACNSURBVHjaZc3bEoIgEIDhRUA62EntZGWaiLi8//u17jDl1D8Ms/tdAAiQ2sRUIgSB3uXIDUsSApN31tqmvuJlpRIAMOi8c69nhX23Vgzee9e3N6QMw4g4Dra5V+cI1CRt/SBYbMpZpwx4D4FOmKYt8F5+7wiB9xkwcX9v/PxyzEBAeigwVuw1gUzNJy3fypMWIlnpGFAAAAAASUVORK5CYII=);}.mf_h{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAzZpmUlJSVlZWZmZkqVH4zZpkvX4/4+Pj5+fn5+fn7+/v8/PwzZplkirFli7Hm5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///+1eJgJAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACHSURBVBgZBcExTsQwEADA2XV8jg4aRBEq+P+36K5FOiCA18xErJYJmLVs5LW9gPn+W6uFPp5qzvO8X9dfaWyvmlir9u3xuxJSahn6eGsbRIhq/aPmsw2CSGI2Yu8DAPmZfcDhAJU5AIBLAg6ABNwA8gQAfmLvAwDxFbEuD3kAbvMesVoLAFX/LqQp8yOzf7kAAAAASUVORK5CYII=);}.mf_hpp{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAzZpmUlJSVlZWZmZkqVH4zZpkvX4/4+Pj5+fn5+fn7+/v8/PwzZplkirFli7Hm5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///+1eJgJAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACPSURBVBgZBcExTgMxEADA2fU5PgUaRGEq+P+36NwiBQhgm5mIXTIBc20HeS0vYL7/rl1CbU9rzvv9dt1/S+F4VcTe6zwev1dCSiVDbW/lgAixSv1Y89kBQSQxC3HWBoD8zNq6rnd6Z2U2YHRG55Lo6IM+kBgYGJB3AOAnztoAEF8R+/KQHTDmLWKXEgDW+gd5djAhVjbuBwAAAABJRU5ErkJggg==);}.mf_htm{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAzZpmUlJSVlZWZmZkqVH4zZpkvX4/4+Pj5+fn5+fn7+/v8/PwzZplkirFli7Hm5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///+1eJgJAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACOSURBVBgZBcExUsMwEADAvZMVewINQyGq8P9v0allJoABSdmNWCUTMOaykdfyBsbH31wl1P1ljnGe9+v6nwrbTRFrzWN7/pkJKZUMdX8vG0SIWernHK82CCKJUYij7gDIr6w3TWtNa5qZuUPX6a03l6QBgKQDgDwBgN846g6A+I5Yl6dsgD7uEauUADDnAxq5Lk/oBDS6AAAAAElFTkSuQmCC);}.mf_html{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAzZpmUlJSVlZWZmZkqVH4zZpkvX4/4+Pj5+fn5+fn7+/v8/PwzZplkirFli7Hm5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///+1eJgJAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACOSURBVBgZBcExUsMwEADAvZMVewINQyGq8P9v0allJoABSdmNWCUTMOaykdfyBsbH31wl1P1ljnGe9+v6nwrbTRFrzWN7/pkJKZUMdX8vG0SIWernHK82CCKJUYij7gDIr6w3TWtNa5qZuUPX6a03l6QBgKQDgDwBgN846g6A+I5Yl6dsgD7uEauUADDnAxq5Lk/oBDS6AAAAAElFTkSuQmCC);}.mf_ico{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAACZmQCUlJSVlZWZmZl+fgCZmQCPjwD4+Pj5+fn5+fn7+/v8/PyZmQCxsT6xsT/m5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///9OLlm4AAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACLSURBVHjahc3bEoIgEIDhRcDtYCe1k5WHRMT1/d+vhWGapi76B3bguwAQIDXGVCIEg97lFBqXLAyY98aYtr7SZaUSAECyztpnU9HQr1UA55wduhtxGGAimkbT3qtzBM5LVz8YFpvyo1MGfJ95+e1lC6U/zXFy/+Hnja9fjhkISA8FxYq9ZpApvtPyBd1xFlBBEvkSAAAAAElFTkSuQmCC);}.mf_java{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAzZpmUlJSVlZWZmZkqVH4zZpkvX4/4+Pj5+fn5+fn7+/v8/PwzZplkirFli7Hm5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///+1eJgJAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACPSURBVHjaXc2LDoIgFIDhg4B0ESu1m5VpIuLh/d+vM6Rm/bAz+DYGMOBSxUTCGIHcFRga1yQEquiNMW1zxctGJACg0DprX88ah34rAjjn7NDdkFIBJsRpNO29PkdADNI1D4KVrhadMtCVr8KeRw40f9YMPl79BxbPQMdDhPzvl2MGDNJDibFyLwl4qr5J/gZGtRd7aOy9qQAAAABJRU5ErkJggg==);}.mf_jpeg{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAACZmQCUlJSVlZWZmZl+fgCZmQCPjwD4+Pj5+fn5+fn7+/v8/PyZmQCxsT6xsT/m5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///9OLlm4AAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACPSURBVBgZBcExTgMxEADA2fU5PgUaRGEq+P+36NwiBQhgm5mIXTIBc20HeS0vYL7/rl1CbU9rzvv9dt1/S+F4VcTe6zwev1dCSiVDbW/lgAixSv1Y89kBQSQxC3HWBoD8zNroekfvVmYDRtfH4JKAPtCRgAGQd/oAo+MnztoAEF8R+/KQHTDmLWKXEgDW+gdf7TAh9+HjlgAAAABJRU5ErkJggg==);}.mf_jpg{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAACZmQCUlJSVlZWZmZl+fgCZmQCPjwD4+Pj5+fn5+fn7+/v8/PyZmQCxsT6xsT/m5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///9OLlm4AAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACPSURBVBgZBcExTgMxEADA2fU5PgUaRGEq+P+36NwiBQhgm5mIXTIBc20HeS0vYL7/rl1CbU9rzvv9dt1/S+F4VcTe6zwev1dCSiVDbW/lgAixSv1Y89kBQSQxC3HWBoD8zNroekfvVmYDRtfH4JKAPtCRgAGQd/oAo+MnztoAEF8R+/KQHTDmLWKXEgDW+gdf7TAh9+HjlgAAAABJRU5ErkJggg==);}.mf_js{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAzZpmUlJSVlZWZmZkqVH4zZpkvX4/4+Pj5+fn5+fn7+/v8/PwzZplkirFli7Hm5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///+1eJgJAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACNSURBVBgZBcExTgMxEADA2bUdnwINojAV/P9bdNciBQhgm5mIXTIBc22VvJYXMN9/1y6h9ac15/1+u+6/pVBfFbH3Ourj90pIqWRo/a1UiBCrtI81n1UIIolZiKN1AORntg6DMbCydsA4wSUBzgEkgHOAeu8Yp+GEnzhaB0B8RezLQw7AOW8Ru5QAsNY/ecIuFToHoc8AAAAASUVORK5CYII=);}.mf_json{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAzZpmUlJSVlZWZmZkqVH4zZpkvX4/4+Pj5+fn5+fn7+/v8/PwzZplkirFli7Hm5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///+1eJgJAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACSSURBVHjaXc2JDoMgDAbgIiA71G3KLrc5nYhY3//91gA74t+UJh8lAAMuVYxIGCOQuxJ9xjUJgSp7Y0zbXPGyEQkAKLTO2tezxqHfCg/OOTt0N6QoDxPiNJr2Xp8jIHrpmgfBKtd/OWWQ61nrmTqMAmhQ0RkLwtUCqH+Qh7efrWLxyzEDBumhwphqLwl4qr6R/A0ucxc24TsSHgAAAABJRU5ErkJggg==);}.mf_lua{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAzZpmUlJSVlZWZmZkqVH4zZpkvX4/4+Pj5+fn5+fn7+/v8/PwzZplkirFli7Hm5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///+1eJgJAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACNSURBVBgZBcExUsMwEADAvZMVeQINQyEq+P+36NxmJgEDktiNWCUTMOaykdfyBsbn71wl1PYyxzjP+3X9TYXtXRFrzX17/p4JKZUMtX2UDSLELPU2x6sNgkhiFGKvDQD5yNp0uk5nZjYA/ehcEgAdEgAH5Inu6AfwE3ttAIiviHV5yg44xj1ilRIA5vwHLpUtOKOumKMAAAAASUVORK5CYII=);}.mf_mp3{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAAmQCUlJSVlZWZmZkAfgAAmQAAjwD4+Pj5+fn5+fn7+/v8/PwAmQA+sT4/sT/m5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///+Fu/hnAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACRSURBVHjaXc2JDoMgDIDhIiI7dIeyy21OJyKW93+/VdORZT9pAl8IgACpNJcmQhCofYlL45qEQJe9tbZtbnjdpAkAaHTeuferxqHfpgt4793Q3ZHSC0yI02jbR31hoGbpmifBqjA/nXMoQjDBmMCzAxPiMvNE4HME2vON4gv8xt8vpxwEZMcKueqgCGSmY0p+ADg+Fza7o1PlAAAAAElFTkSuQmCC);}.mf_mp4{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAACZAJmUlJSVlZWZmZl+AH6ZAJmPAI/4+Pj5+fn5+fn7+/v8/PyZAJmxPrGxP7Hm5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///982useAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACQSURBVBgZBcExTgMxEADA2fVdLgo0iGKpwv+/RecWKUAA25mJWC0TMOaykZf2BsbH31wt7MfLHON+v13W/9TYrppYa56355+ZkFLLsB/vbYMIMdv+OcerDYJIYjTivB8AyK/cr6WogpqZh1696EVxSoDqqiMBOgp5B6B3fuO8HwCI74h1esoC9HGLWK0FgDkf0fYxODR9v0UAAAAASUVORK5CYII=);}.mf_odc{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAAmZmUlJSVlZWZmZkAfn4AmZkAj4/4+Pj5+fn5+fn7+/v8/PwAmZk+sbE/sbHm5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///9DXRlxAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACISURBVHjahc3ZEoIgGIbhHwFpsU1brUwTEf/u//76ZBinqYNetuE5ABIktYmpRAiA3uQc6ucQgMlba21dXfi8UAkRGXbeueej5K5dqgDee9c1V0YmwMA89La+lacIaJSmugNmq/1Hx4xwf2FihW1NOKcx9h9+3vj65ZCRoHRXcKzYaoBMzZSWbwf/FsPJgGO4AAAAAElFTkSuQmCC);}.mf_odf{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAAmZmUlJSVlZWZmZkAfn4AmZkAj4/4+Pj5+fn5+fn7+/v8/PwAmZk+sbE/sbHm5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///9DXRlxAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACMSURBVHjaZc2JEoIgEIDhRUA6zEo7rTwSEbf3f7/WHcZh6ucY/IYRECC1CalECAK9L5Ab1yQEpuittW19x9tGJQBg0Hnn3k2FQ79VDN57N3QPpAzDhDiNtn1W1wDULF39IljtTlGXDOj7Q5MXbTnQYRlzMbD83Yj+wZD/vHLOQEB6LDFUHjSBTM2Sll8WdhbasocFuAAAAABJRU5ErkJggg==);}.mf_odg{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAAmZmUlJSVlZWZmZkAfn4AmZkAj4/4+Pj5+fn5+fn7+/v8/PwAmZk+sbE/sbHm5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///9DXRlxAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACJSURBVHjabc3pEoIgFIbhg4C02KatVqaJiMf7v78+Gcdpe9mG5weQIKnNmIqEAOhNyqF2DgGYtLbWlsWFzwsVEZFh5517PnJu6qUK4L13TXVlZAJ0zF1ry1t+GgENUhV3wGy1f+uYEO49JlbY1oRzGkMf0P+Dnze+fjkkJCjeZTyWbTVAxmZKyxcWdhbxy+uSowAAAABJRU5ErkJggg==);}.mf_odi{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAAmZmUlJSVlZWZmZkAfn4AmZkAj4/4+Pj5+fn5+fn7+/v8/PwAmZk+sbE/sbHm5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///9DXRlxAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACKSURBVHjahY/bDoIwDEA72KgXvIFXVAQZY9T//z/bZSFGHzxtk/Y8tCkoSA1GdKIUC7MpKDDM2bDAorPWNvWFzgudAACS8849HxX13VIH4b13fXslBoMYicbBNrfqFAUjpq3vLGar/QfHHGR+cUpxuwaZp2D+i58dX1cOOSjIdiVFyq2R9zOcMOkb9g8WlVdNv/QAAAAASUVORK5CYII=);}.mf_odp{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAAmZmUlJSVlZWZmZkAfn4AmZkAj4/4+Pj5+fn5+fn7+/v8/PwAmZk+sbE/sbHm5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///9DXRlxAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACNSURBVHjaXc3bEoIgEIDhRcDtYFZqJyvTRMTt/d+vlWEc6gcu9rtYQIDUGFKJEAx6X5BvXLMwYNEbY9rmRteNSgAAyTpr36+ahn6rPDjn7NDdiUMPE9E0mvZRXwJws3TNk2G1q6LOGfD84RtelcM8L4clBp5/wW+JdnjI/345ZSAgPZYUKg+aQaa4pOUXFO8W2rtQrO8AAAAASUVORK5CYII=);}.mf_ods{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAAmZmUlJSVlZWZmZkAfn4AmZkAj4/4+Pj5+fn5+fn7+/v8/PwAmZk+sbE/sbHm5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///9DXRlxAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACMSURBVHjaXY3ZEoIwDEVTSqkLooIrKouUUuL//5+XTodhONkm5yEhQVLpQBwJAaGOOXuGLQyEzjtjTFM9+bGLIyLSbJ2137rkvtvHXjjnbN++GGgvRuZxMM27vAcBJtNWH4jN4bLglhL2HxLlW0aYc0wsBHIlfM03wp1s9eWakqDkXHCgOCkImegZJf8H6BbDR85zawAAAABJRU5ErkJggg==);}.mf_odt{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAAmZmUlJSVlZWZmZkAfn4AmZkAj4/4+Pj5+fn5+fn7+/v8/PwAmZk+sbE/sbHm5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///9DXRlxAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACLSURBVHjahc3ZEoIgGIbhHwFpMStttXJJRPy7//vri2Eap5NeloHnAEiQ1CamEiEAeltwaFxCAKborbVtfeXLSiVEZNh5555NxUO/VgG8927oboxMgIl5Gm17r84R0Ee6+gFYbA6zThnh/sIMC1tOOMSBif7D7I0A+c8vx4wEpfuSY+VOA2Rqvmn5Bg4EFsPk/fZwAAAAAElFTkSuQmCC);}.mf_ogg{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAAmQCUlJSVlZWZmZkAfgAAmQAAjwD4+Pj5+fn5+fn7+/v8/PwAmQA+sT4/sT/m5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///+Fu/hnAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACMSURBVHgBZc3rEoIgEIbhRUE62CG1Q1amiYjr/d9fX8Q4Tb7MDsPzgyVBsdIhGQkBULuMff0SAtBZa4ypqytfVjIiIs3WWft6lty1a+nBOWe75sZIexiYh97U9/IcAH2kqR6Axab46ZQS3mOBGb+zJdz+eEcTBJ7D7I+/LceUBCWHnEP5XgHiRE+p+A0MOBbaEKLOCwAAAABJRU5ErkJggg==);}.mf_ogv{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAACZAJmUlJSVlZWZmZl+AH6ZAJmPAI/4+Pj5+fn5+fn7+/v8/PyZAJmxPrGxP7Hm5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///982useAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACPSURBVHjaZc3rEoIgEIbhRUE6mJXayco0EXG9//vrixinqXcQlucHkqBY6ZCMhACobc6+YQkB6LwzxjT1hc8rGRGRZuusfT4q7ru19OCcs317ZaQ9jMzjYJpbdQqA3tLWd8BiU351TAn3qcQ34cCQEebPGPYZpn/AQvMbAbKfvxxSEpTsCw4VOwWIEz2n4hcKVRbDgIphDwAAAABJRU5ErkJggg==);}.mf_pas{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAzZpmUlJSVlZWZmZkqVH4zZpkvX4/4+Pj5+fn5+fn7+/v8/PwzZplkirFli7Hm5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///+1eJgJAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACTSURBVHjaXc2JEoIgEIDhRUE6xErtsjJNRFze//1aiZimn+GYbwYABqmQIZ4wRiB2JfqmNQmBLAetddde8bLhCQBINNaY17PBcdhyD9ZaM/Y3pKSHGXGedHdvzgGoRfr2QbBS9U+nHFTtHJ38pKUA2uNYWsDR9EuAz43vPVAR/FvF3y/HHBhkhwpD1V4QpJmMifQNCZ0Ww23Bq94AAAAASUVORK5CYII=);}.mf_pdf{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAABmZmaUlJSVlZWZmZlUVFRmZmZfX1/4+Pj5+fn5+fn7+/v8/PxmZmaKioqLi4vm5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz////WBPdaAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACQSURBVBgZBcExTgMxEADA2fU5PgUaRGEq+P+36NwiBQhgm5mIXTIBc20HeS0vYL7/rl1CbU9rzvv9dt1/S+F4VcTe6zwev1dCSiVDbW/lgAixSv1Y89kBQSQxC3HWBoD8PGrrhm7ojJXZGJ3RGYNLog+gQ2IABuQd6AP4ibM2AMRXxL48ZAeMeYvYpQSAtf4BGyczgtpbtDIAAAAASUVORK5CYII=);}.mf_php{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAzZpmUlJSVlZWZmZkqVH4zZpkvX4/4+Pj5+fn5+fn7+/v8/PwzZplkirFli7Hm5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///+1eJgJAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACPSURBVBgZBcExTgMxEADA2fU5PgUaRGEq+P+36NwiBQhgm5mIXTIBc20HeS0vYL7/rl1CbU9rzvv9dt1/S+F4VcTe6zwev1dCSiVDbW/lgAixSv1Y89kBQSQxC3HWBoD8zNp6p+t6Z2U2RgdG55Log44+kBgYGJB3AOAnztoAEF8R+/KQHTDmLWKXEgDW+geBGjAhZ/XNiQAAAABJRU5ErkJggg==);}.mf_pl{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAzZpmUlJSVlZWZmZkqVH4zZpkvX4/4+Pj5+fn5+fn7+/v8/PwzZplkirFli7Hm5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///+1eJgJAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACLSURBVBgZBcExUsMwEADAvZMVeQINQyEq+P+36NxmJgEDktiNWCUTMOaykdfyBsbn71wl1PYyxzjP+3X9TYXtXRFrzX17/p4JKZUMtX2UDSLELPU2x6sNgkhiFGKvDQD5yNrQOx1mZgNHB1wS6AdAAgeAPAF0+Im9NgDEV8S6PGUHHOMesUoJAHP+AwXgLAr8fJP1AAAAAElFTkSuQmCC);}.mf_png{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAACZmQCUlJSVlZWZmZl+fgCZmQCPjwD4+Pj5+fn5+fn7+/v8/PyZmQCxsT6xsT/m5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///9OLlm4AAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACOSURBVHjaVc3ZDoMgEEDRQUS6aBelm22tVkQc/v//OhBC6p0AyXkYgAEXMpZnjBGIY42heUtCIOtRa913D7zv8gwAJBprzPfT4jTu8wDWWjMNT6RkgAVxmXX/am8RKC9D9ybYVOqvawmVck6FE64D0JvG58EljKBWUCWIO9a/XEpgUJwbjDUnQcALmRL8BxtQFvFpmdeOAAAAAElFTkSuQmCC);}.mf_ppt{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAAmZmUlJSVlZWZmZkAfn4AmZkAj4/4+Pj5+fn5+fn7+/v8/PwAmZk+sbE/sbHm5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///9DXRlxAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACOSURBVHjaXc2JDoIwDIDhjm3Mg6ECXqgcMsYo7/9+Nktj0H9Hmi9LBgKkNpxKhCDQhwJj05aEwBSDc65r7njbqQQADPrg/butcRz2KkIIwY/9AykTYUacJ9c96ysDYpS+eRFsbLXqkoGtlqXiQ1cONPCiTRHwixXwzGB/If/75ZyBgPRUIlceNYFMzTctPwbUFpX4yNz1AAAAAElFTkSuQmCC);}.mf_pptx{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAAmZmUlJSVlZWZmZkAfn4AmZkAj4/4+Pj5+fn5+fn7+/v8/PwAmZk+sbE/sbHm5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///9DXRlxAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACOSURBVHjaXY2LDoIwDEU7tjEfiArzhYogY4zy//9n0yyL4dw+kpMmBQFSm4jKhCChjxUy05YMCVMNzrmufeB9pzIAMOiD999Pg+OwVyxCCH7sn0gYFjPiPLnu1dyiQGTTt28Sm4P941rAsljLTYNSAg0OFyVd2NgQd7pYi3L15VKAgPxcY6Q+aRIyNwktf1ekF3KNxyMhAAAAAElFTkSuQmCC);}.mf_ps{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAABmZmaUlJSVlZWZmZlUVFRmZmZfX1/4+Pj5+fn5+fn7+/v8/PxmZmaKioqLi4vm5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz////WBPdaAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACQSURBVHgBXc0LD4IgEMDxQ0F6mJXaIyvTRMTj+3+/jsfK9We7jd9uAAxSIWM8YYxA7Ev0TWsSAlkOSqmuveF1wxMAkKiN1u9Xg+Ow5R6MMXrs70hJDzPiPKnu0VwiUE769kmw2tWLzjm4u7VhUAW4af0JBfAbS6h/M7wRt6ji75dTDgyyY4Wx6iAI0kx+E+kHt/oV3fRIhzYAAAAASUVORK5CYII=);}.mf_py{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAzZpmUlJSVlZWZmZkqVH4zZpkvX4/4+Pj5+fn5+fn7+/v8/PwzZplkirFli7Hm5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///+1eJgJAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACNSURBVBgZBcExTsQwEADA2XV8jg4aBJKp4P/fokuLdEAA2zcTsUomYMxlI6/lFYyPv7lKqO1pjnGet+v6nwrbmyLWmvv2+DMTUioZansvG0SIWernHM82CCKJUYi9NgDkV9ZG73QdM7PB0QEu8YLuoB8gwQFAngDAb+y1ASC+I9blITvgGLeIVUoAmPMOcdYtHctHeLIAAAAASUVORK5CYII=);}.mf_rar{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAACZZgCUlJSVlZWZmZl+VACZZgCPXwD4+Pj5+fn5+fn7+/v8/PyZZgCxij6xiz/m5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///9o3RgLAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACQSURBVHjaZc2LDoIgFIDhg4B0USu1m5VpIuLh/d+vA2Ouy88YZx9sAAMuVUwkjBHIXYmhaU1CoMpBa921V7xsRAIACo015vVscBy2IoC11oz9DSkVYEacJ93dm3MEykvfPghWef3RKYO8do4m2uEsgIZlefEQbp0/qf8X+TcUP78cM2CQHiqMVXtJwFO1JPkbLuYXNikSVMcAAAAASUVORK5CYII=);}.mf_rb{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAzZpmUlJSVlZWZmZkqVH4zZpkvX4/4+Pj5+fn5+fn7+/v8/PwzZplkirFli7Hm5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///+1eJgJAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACOSURBVHgBZc3pEoIgEMDxRUA6tEPpyMo0EXF9//drIWo6/gwf+M0OCwy4VDGRMEYg1wWGhjkJgSo6Y0xTn/C4EAkAKLTO2vutwr5bigDOOdu3Z6RUgBFxHExzqQ4RfCRtfSWY5fqjfQb+PU3PS61Ae4jHR/A1of8n8givP3627DJgkG5LjJUbScBT9U7yB92IFlCum6zJAAAAAElFTkSuQmCC);}.mf_rpm{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAACZZgCUlJSVlZWZmZl+VACZZgCPXwD4+Pj5+fn5+fn7+/v8/PyZZgCxij6xiz/m5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///9o3RgLAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACNSURBVHjaXc3ZFoIgEIDhQUBa1Epps3JJRBzf//2aw6Gi/jnMxTcXAAMuVUgkjBHIXYm+aU1CoMrBGNM1V7xsRAIACq2z9tnWOA5b4cE5Z8f+hpTyMCPOk+nu9TkAope+eRCsch11yiBfFq3Do10A7Xg0vK8R+PlC/gvF3y/HDBikhwpD1V4S8FR9kvwFUA0Xe2kW3HcAAAAASUVORK5CYII=);}.mf_rtf{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAAmZmUlJSVlZWZmZkAfn4AmZkAj4/4+Pj5+fn5+fn7+/v8/PwAmZk+sbE/sbHm5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///9DXRlxAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACPSURBVBgZBcExTgMxEADA2fU5PgUaRGEq+P+36NwiBQhgm5mIXTIBc20HeS0vYL7/rl1CbU9rzvv9dt1/S+F4VcTe6zwev1dCSiVDbW/lgAixSv1Y89kBQSQxC3HWBoD8PGrrhs7ojJXZGN0wGINLog+gQ2J0YEDeAYCfOGsDQHxF7MtDdsCYt4hdSgBY6x9BfDNrMYRJ5gAAAABJRU5ErkJggg==);}.mf_sh{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAzZpmUlJSVlZWZmZkqVH4zZpkvX4/4+Pj5+fn5+fn7+/v8/PwzZplkirFli7Hm5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///+1eJgJAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACOSURBVBgZBcExTgMxEADA2bUdnwINojAV/P9bdNciBQhgm5mIXTIBc22VvJYXMN9/1y6h9ac15/1+u+6/pVBfFbH3Ourj90pIqWRo/a1UiBCrtI81n1UIIolZiKN1AORnto4xDAMra8c4AVwSzoEBJDgHJ1DvneEE+ImjdQDEV8S+POQAnPMWsUsJAGv9A6T3LixCBrmLAAAAAElFTkSuQmCC);}.mf_sql{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAgVBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAACZmZmUlJSVlZWZmZl+fn6ZmZmPj4/4+Pj5+fn5+fn7+/v8/PyZmZmxsbHm5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz////7VrU3AAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACPSURBVHjaTc3bEoIgEIDhRUQ6qaV2sDJNRFze/wFbdpj0hx1mvxtAgFQ6liZCEKiyQm7ekxDoajTG9N0D74c0AQCN1ln7/bQ4jceUwTlnp+GJlGZYEJfZ9K/2FoEKMnRvgl3ebLqeIOze0/BtCgh7GD4UAcsWWFbIafVs/BbrLz7+IiC71Birz4pAZvqfkj+rPBYgDgv2twAAAABJRU5ErkJggg==);}.mf_swf{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAACZAACUlJSVlZWZmZl+AACZAACPAAD4+Pj5+fn5+fn7+/v8/PyZAACxPj6xPz/m5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///+6PAoIAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACSSURBVHjaXc3bEoIgEIDhRUQ6iJXSyco0EXF9//drZZBp+rlhv1kGYMCFDKUJYwTiUKJv3JIQyLI3xrTNHW+7NAEAidZZ+3nXOPT71INzzg7dAynpYUKcRtM+62sAapGueRFslP7pkoPS86zDoVsBdNF6JQqWKW54CGPcUPP6xkPx98s5BwbZqcJQdRQEPJMxwb8yORcf5PtSuAAAAABJRU5ErkJggg==);}.mf_sxc{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAAmZmUlJSVlZWZmZkAfn4AmZkAj4/4+Pj5+fn5+fn7+/v8/PwAmZk+sbE/sbHm5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///9DXRlxAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACQSURBVHjaXc3pEoIgFIbhg4i0aIvaZuWSiHi8//vri2Gs6eUHw3MGIEFS6VAcCQFQ+5x94xoC0HlvjGnrG183cUREmq2z9tVUPPTb2INzzg7dnZH2MDFPo2kf1SUA+khXPwGrrPzpnBLO81xi+b3cEXZMAiFAkAWWeYDMX/2+8ffLKSVBybHgUHFQAJnoJSXf9oIWldwE9NgAAAAASUVORK5CYII=);}.mf_sxd{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAAmZmUlJSVlZWZmZkAfn4AmZkAj4/4+Pj5+fn5+fn7+/v8/PwAmZk+sbE/sbHm5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///9DXRlxAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACQSURBVHjaXc3bEoIgEIDhRUA6aAe1k5VpIuLy/u/Xzg4TTT8XwMcAIEBqE1OZEAR6XyE3r0kITDVaa/vuhteNygDAoPPOvV8tTuNWMXjv3TTckTIMC+Iy2/7RXiIgsgzdk2BVNj+dC6B9CA2PQLID2tPMwCuCKAnSOUPJd9Mbf7+cChCQH2uM1QdNIHPzTcsPDuoW2hcHNPEAAAAASUVORK5CYII=);}.mf_sxi{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAAmZmUlJSVlZWZmZkAfn4AmZkAj4/4+Pj5+fn5+fn7+/v8/PwAmZk+sbE/sbHm5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///9DXRlxAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACQSURBVHgBXc2JDoIwDIDhDhjzAA/AQ1QEGWOU938/u6YR49+Q0I+kgIJYGymJlCLQ+wK5cU1CYIreWts2N7xukggADDrv3PtV49BvEwbvvRu6O1KGYUKcRts+6osAFaRrngSrvPrpnEHY57niodcdhJ2fMFQAkQXku0DOJ5Ybf385ZaAgPZYolQdNEKfmm44/5M8WZ5t1w/gAAAAASUVORK5CYII=);}.mf_sxw{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAAmZmUlJSVlZWZmZkAfn4AmZkAj4/4+Pj5+fn5+fn7+/v8/PwAmZk+sbE/sbHm5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///9DXRlxAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACPSURBVHjaXc3bDoMgDIDhIiA7qNuUndzmYSJief/3W0OImv1Nmua7KTDgUsVEwhiBPJUYmvYkBKocjDFd88THQSQAoNA6a79tjeNwFAGcc3bsX0ipADPiPJnuXd8jIAbpmw/BLtebbhnk2nu9TgG09AY06CgrxHOB3PtAcRV/X64ZMEgvFcaqsyTgqVqS/Aczkhc2+6BxjgAAAABJRU5ErkJggg==);}.mf_tar{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAACZZgCUlJSVlZWZmZl+VACZZgCPXwD4+Pj5+fn5+fn7+/v8/PyZZgCxij6xiz/m5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///9o3RgLAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACQSURBVBgZBcExTsQwEADA2XVyiQ4aRLFU8P9v0blFOuAA28xErJYJGHPZyGt7AeP9d64W9uNpjnG/367rb2psr5pYa57b4/dMSKll2I+3tkGEmG3/mOPZBkEkMRpx7gcA8jP3o6ooqpiZh66rXvTikoBCdSSgoxfyDgD8xLkfAIiviHV5yAL0cYtYrQWAOf8BtG0wOGBUSrIAAAAASUVORK5CYII=);}.mf_tgz{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAACZZgCUlJSVlZWZmZl+VACZZgCPXwD4+Pj5+fn5+fn7+/v8/PyZZgCxij6xiz/m5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///9o3RgLAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACQSURBVHgBVc2JDoMgDIDhoiI7dIeyY25zOhGxvP/7ranEsD+kJF8IBQGpVKEsEYJAHivkpi0JgaoGY0zXPvC+yxIAUGidtd9Pg+Owzxicc3bsn0gphhlxnkz3am4BEFn69k2wKXXUtYBSe+81jeU+ALHno5e5QtAIwisoGaI//rdcChCQn2sM1SdJkOZqTaY/CyQWw//eXYwAAAAASUVORK5CYII=);}.mf_txt{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAgVBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAACZmZmUlJSVlZWZmZl+fn6ZmZmPj4/4+Pj5+fn5+fn7+/v8/PyZmZmxsbHm5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz////7VrU3AAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACNSURBVHjaZc0ND4IgEIDhQ0C0wkrpw8o0EfH4/z+wG7FW84WD7RkbwIBLlRIZYwRyX2NsLkkIVD1aa/vuipeNyABAofPOvZ4tTuNWRPDeu2m4IaUiLIjLbPt7e06AGGXoHgSFNj+ddqBNCMHQirepgDjQ/hxUgjTU+oX+h2r9C4P82GCqOUgCnqtvkr8Bx4IWNhl/XsoAAAAASUVORK5CYII=);}.mf_wav{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAAmQCUlJSVlZWZmZkAfgAAmQAAjwD4+Pj5+fn5+fn7+/v8/PwAmQA+sT4/sT/m5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///+Fu/hnAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACOSURBVHjaXc2JDoMgDIDhIiA71G3KLrc5nYhY3//9Vglhx1+Ski8hAAMuVUgkjBHIXYm+cU1CoMreGNM2V7xsRAIACq2z9vWscei3woNzzg7dDSnlYUKcRtPe63MAapGueRCscv3VKYN81sv4Q1OAX5/REeYfiM8Icn+PUPz9csyAQXqoMFTtJQFPVUzyN0ebF2R4ZiSEAAAAAElFTkSuQmCC);}.mf_webm{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAACZAJmUlJSVlZWZmZl+AH6ZAJmPAI/4+Pj5+fn5+fn7+/v8/PyZAJmxPrGxP7Hm5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///982useAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACRSURBVHgBXc2JDoIwDIDhDjbmAR4wD1ERZIxR3v/97GZjDH9DSD/IBgJSpTmZCEGg9iXGxjUJgS57a23b3PC6kQkAaHTeuferxqHfygjeezd0d6R0hAlxGm37qC8MVJCueRKsCvPXOYfZ0MzhMSa8vmBo4YnAXxmWfxS08RkBdotbTjkIyI4VctVBEaSZ/qXSD5IIGCm2cUO0AAAAAElFTkSuQmCC);}.mf_xls{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAAmZmUlJSVlZWZmZkAfn4AmZkAj4/4+Pj5+fn5+fn7+/v8/PwAmZk+sbE/sbHm5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///9DXRlxAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACRSURBVHjaXc+JEoIgEAbgVUE67FK7rDwSEbf3f79+iaGmnx2Y/YZZBoookcpHxFEEkLucXcYlBKDyXmvd1le+rERMRIqNNebZVDz0a+HAWmuG7saIcjAxT6Nu79XZAzJLVz8Ai035k1NG6F9u4cS2pTIACpnh03n53vASZrjCjL9Xjhn+kh4K9in2EpCkKkQmb+q9Fn7tTGMlAAAAAElFTkSuQmCC);}.mf_xlsx{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAAmZmUlJSVlZWZmZkAfn4AmZkAj4/4+Pj5+fn5+fn7+/v8/PwAmZk+sbE/sbHm5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///9DXRlxAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACSSURBVHjaXY2LDoMgDEWLgOyheyh7uc3pRMT6//+3piNk2aFNLidNCwKkNhGVCUFC7ytkpjUZEqYanHNde8PrRmUAYNAH79+vBsdhq1iEEPzY35EwLGbEeXLdo7lEgcimb58kVqX94VxAuVh6lBcOO7BRUHEA+/2lThM2hriDi3f8XTkVICA/1hipD5qEzE1Cyw816BdN8Suc7AAAAABJRU5ErkJggg==);}.mf_xml{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAACZAACUlJSVlZWZmZl+AACZAACPAAD4+Pj5+fn5+fn7+/v8/PyZAACxPj6xPz/m5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///+6PAoIAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACPSURBVBgZBcExTsQwEADA2XV8iQ4aRLFU8P9v0aVFOuAA28xErJYJGHPZyGt7AeP9d64W+v40x7jfb9f1NzW2V02sNY/t8XsmpNQy9P2tbRAhZusfczzbIIgkRiOOvgMgP7PvpVQpyszcgbPOgkty1gmApM4CQN4BoPzE0XcAxFfEujxkAc5xi1itBYA5/wECji5mbbd2fAAAAABJRU5ErkJggg==);}.mf_zip{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAACZZgCUlJSVlZWZmZl+VACZZgCPXwD4+Pj5+fn5+fn7+/v8/PyZZgCxij6xiz/m5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///9o3RgLAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACQSURBVBgZBcExTsQwEADA2XVyiQ4aRLFU8P9v0blFOuAA28xErJYJGHPZyGt7AeP9d64W9uNpjnG/367rb2psr5pYa57b4/dMSKll2I+3tkGEmG3/mOPZBkEkMRpx7gcA8jP3Q1UpVZiZB72DXrgkVIfqkKgOOsg7qgD8xLkfAIiviHV5yAL0cYtYrQWAOf8Bo8cwOFk9D0UAAAAASUVORK5CYII=);}}@media feed{rss channel,feed,RDF{font:80% "Lucida Grande",Verdana,Lucida,Helvetica,Arial,sans-serif;background-color:#fff;color:#333;margin:0;padding:0;}link,description,language,managingEditor,copyright,lastBuildDate,date,pubDate,generator,webMaster,ttl,docs,tagline,author,copyright,generator,content,created,issued,modified,subject,id,format,creator,category,image{display:none;}item link,entry id{display:block;color:__extern__;text-decoration:underline;}channel title,feed title{display:block;font-size:200%;font-weight:bolder;color:__extern__;text-decoration:none;border-bottom:20px solid #eee;}:root:before{content:"This data file is meant to be read in a XML feed reader. See document source.";}item,entry{display:block;margin:1em 180px 1em 1em;border-bottom:1px solid #ccc;padding-bottom:1em;}item title,entry title{display:block;background:transparent none;border:0 solid __background_other__;padding:0;color:#999;font-size:1.4em;font-weight:bold;}item pubDate,entry modified,item date{display:inline;color:#666;font:1em trebuchet ms,arial,helvetica,sans-serif;}item description,entry summary{display:block;clear:both;padding-top:.5em;}}
\ No newline at end of file
diff --git a/wiki/data/cache/2/2d0321e94bd5683a6040a2908ef41193.css.gz b/wiki/data/cache/2/2d0321e94bd5683a6040a2908ef41193.css.gz
deleted file mode 100644
index 71d81fc..0000000
--- a/wiki/data/cache/2/2d0321e94bd5683a6040a2908ef41193.css.gz
+++ /dev/null
Binary files differdiff --git a/wiki/data/cache/2/2db9031e3827768e2f0f1d73b3156df6.i b/wiki/data/cache/2/2db9031e3827768e2f0f1d73b3156df6.i
deleted file mode 100644
index 612e333..0000000
--- a/wiki/data/cache/2/2db9031e3827768e2f0f1d73b3156df6.i
+++ /dev/null
@@ -1 +0,0 @@
-a:5:{i:0;a:3:{i:0;s:14:"document_start";i:1;a:0:{}i:2;i:0;}i:1;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:0;}i:2;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:118:"This page is read only. You can view the source, but not change it. Ask your administrator if you think this is wrong.";}i:2;i:1;}i:3;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:119;}i:4;a:3:{i:0;s:12:"document_end";i:1;a:0:{}i:2;i:119;}}
\ No newline at end of file
diff --git a/wiki/data/cache/2/2db9031e3827768e2f0f1d73b3156df6.xhtml b/wiki/data/cache/2/2db9031e3827768e2f0f1d73b3156df6.xhtml
deleted file mode 100644
index 16a2480..0000000
--- a/wiki/data/cache/2/2db9031e3827768e2f0f1d73b3156df6.xhtml
+++ /dev/null
@@ -1,4 +0,0 @@
-
-<p>
-This page is read only. You can view the source, but not change it. Ask your administrator if you think this is wrong.
-</p>
diff --git a/wiki/data/cache/2/2e184ae72761172b1ff4575713eea600.i b/wiki/data/cache/2/2e184ae72761172b1ff4575713eea600.i
deleted file mode 100644
index b1f1fc1..0000000
--- a/wiki/data/cache/2/2e184ae72761172b1ff4575713eea600.i
+++ /dev/null
@@ -1 +0,0 @@
-a:8:{i:0;a:3:{i:0;s:14:"document_start";i:1;a:0:{}i:2;i:0;}i:1;a:3:{i:0;s:6:"header";i:1;a:3:{i:0;s:5:"Login";i:1;i:1;i:2;i:1;}i:2;i:1;}i:2;a:3:{i:0;s:12:"section_open";i:1;a:1:{i:0;i:1;}i:2;i:1;}i:3;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:1;}i:4;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:131:"You are currently not logged in! Enter your authentication credentials below to log in. You need to have cookies enabled to log in.";}i:2;i:22;}i:5;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:153;}i:6;a:3:{i:0;s:13:"section_close";i:1;a:0:{}i:2;i:155;}i:7;a:3:{i:0;s:12:"document_end";i:1;a:0:{}i:2;i:155;}}
\ No newline at end of file
diff --git a/wiki/data/cache/2/2e184ae72761172b1ff4575713eea600.xhtml b/wiki/data/cache/2/2e184ae72761172b1ff4575713eea600.xhtml
deleted file mode 100644
index b9b46b2..0000000
--- a/wiki/data/cache/2/2e184ae72761172b1ff4575713eea600.xhtml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-<h1 class="sectionedit1" id="login">Login</h1>
-<div class="level1">
-
-<p>
-You are currently not logged in! Enter your authentication credentials below to log in. You need to have cookies enabled to log in.
-</p>
-
-</div>
diff --git a/wiki/data/cache/3/32a9a75f5d429fcabb53a056a7202d7e.i b/wiki/data/cache/3/32a9a75f5d429fcabb53a056a7202d7e.i
deleted file mode 100644
index ab55052..0000000
--- a/wiki/data/cache/3/32a9a75f5d429fcabb53a056a7202d7e.i
+++ /dev/null
@@ -1 +0,0 @@
-a:14:{i:0;a:3:{i:0;s:14:"document_start";i:1;a:0:{}i:2;i:0;}i:1;a:3:{i:0;s:6:"header";i:1;a:3:{i:0;s:20:"Register as new user";i:1;i:1;i:2;i:1;}i:2;i:1;}i:2;a:3:{i:0;s:12:"section_open";i:1;a:1:{i:0;i:1;}i:2;i:1;}i:3;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:1;}i:4;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:95:"Fill in all the information below to create a new account in this wiki. Make sure you supply a ";}i:2;i:37;}i:5;a:3:{i:0;s:11:"strong_open";i:1;a:0:{}i:2;i:132;}i:6;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:20:"valid e-mail address";}i:2;i:134;}i:7;a:3:{i:0;s:12:"strong_close";i:1;a:0:{}i:2;i:154;}i:8;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:123:" - if you are not asked to enter a password here, a new one will be sent to that address. The login name should be a valid ";}i:2;i:156;}i:9;a:3:{i:0;s:13:"interwikilink";i:1;a:4:{i:0;s:13:"doku>pagename";i:1;s:8:"pagename";i:2;s:4:"doku";i:3;s:8:"pagename";}i:2;i:279;}i:10;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:".";}i:2;i:305;}i:11;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:306;}i:12;a:3:{i:0;s:13:"section_close";i:1;a:0:{}i:2;i:308;}i:13;a:3:{i:0;s:12:"document_end";i:1;a:0:{}i:2;i:308;}}
\ No newline at end of file
diff --git a/wiki/data/cache/3/32a9a75f5d429fcabb53a056a7202d7e.xhtml b/wiki/data/cache/3/32a9a75f5d429fcabb53a056a7202d7e.xhtml
deleted file mode 100644
index c77f38f..0000000
--- a/wiki/data/cache/3/32a9a75f5d429fcabb53a056a7202d7e.xhtml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-<h1 class="sectionedit1" id="register_as_new_user">Register as new user</h1>
-<div class="level1">
-
-<p>
-Fill in all the information below to create a new account in this wiki. Make sure you supply a <strong>valid e-mail address</strong> - if you are not asked to enter a password here, a new one will be sent to that address. The login name should be a valid <a href="https://www.dokuwiki.org/pagename" class="interwiki iw_doku" title="https://www.dokuwiki.org/pagename">pagename</a>.
-</p>
-
-</div>
diff --git a/wiki/data/cache/3/38d4974a56ca0861373b167c0e088f76.i b/wiki/data/cache/3/38d4974a56ca0861373b167c0e088f76.i
deleted file mode 100644
index f9673f9..0000000
--- a/wiki/data/cache/3/38d4974a56ca0861373b167c0e088f76.i
+++ /dev/null
@@ -1 +0,0 @@
-a:12:{i:0;a:3:{i:0;s:14:"document_start";i:1;a:0:{}i:2;i:0;}i:1;a:3:{i:0;s:6:"header";i:1;a:3:{i:0;s:13:"Old Revisions";i:1;i:1;i:2;i:1;}i:2;i:1;}i:2;a:3:{i:0;s:12:"section_open";i:1;a:1:{i:0;i:1;}i:2;i:1;}i:3;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:1;}i:4;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:112:"These are the older revisons of the current document. To revert to an old revision, select it from below, click ";}i:2;i:30;}i:5;a:3:{i:0;s:14:"monospace_open";i:1;a:0:{}i:2;i:142;}i:6;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:14:"Edit this page";}i:2;i:144;}i:7;a:3:{i:0;s:15:"monospace_close";i:1;a:0:{}i:2;i:158;}i:8;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:13:" and save it.";}i:2;i:160;}i:9;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:173;}i:10;a:3:{i:0;s:13:"section_close";i:1;a:0:{}i:2;i:175;}i:11;a:3:{i:0;s:12:"document_end";i:1;a:0:{}i:2;i:175;}}
\ No newline at end of file
diff --git a/wiki/data/cache/3/38d4974a56ca0861373b167c0e088f76.xhtml b/wiki/data/cache/3/38d4974a56ca0861373b167c0e088f76.xhtml
deleted file mode 100644
index 838fc30..0000000
--- a/wiki/data/cache/3/38d4974a56ca0861373b167c0e088f76.xhtml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-<h1 class="sectionedit1" id="old_revisions">Old Revisions</h1>
-<div class="level1">
-
-<p>
-These are the older revisons of the current document. To revert to an old revision, select it from below, click <code>Edit this page</code> and save it.
-</p>
-
-</div>
diff --git a/wiki/data/cache/3/399487010b014e7a9004b1cb1c4d5958.updmsg b/wiki/data/cache/3/399487010b014e7a9004b1cb1c4d5958.updmsg
deleted file mode 100644
index e69de29..0000000
--- a/wiki/data/cache/3/399487010b014e7a9004b1cb1c4d5958.updmsg
+++ /dev/null
diff --git a/wiki/data/cache/3/3c9e188c526aba70c30c6ea8de3009f4.code b/wiki/data/cache/3/3c9e188c526aba70c30c6ea8de3009f4.code
deleted file mode 100644
index 435278a..0000000
--- a/wiki/data/cache/3/3c9e188c526aba70c30c6ea8de3009f4.code
+++ /dev/null
@@ -1,3 +0,0 @@
-<span class="kw1">echo</span> <span class="st_h">'The PHP version: '</span><span class="sy0">;</span>
-<span class="kw1">echo</span> <a href="http://www.php.net/phpversion"><span class="kw3">phpversion</span></a><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
-<span class="kw1">echo</span> <span class="st_h">' (inline HTML)'</span><span class="sy0">;</span>
\ No newline at end of file
diff --git a/wiki/data/cache/5/51fd921306ec5f6045b59a77c3fdb988.i b/wiki/data/cache/5/51fd921306ec5f6045b59a77c3fdb988.i
deleted file mode 100644
index c59e14f..0000000
--- a/wiki/data/cache/5/51fd921306ec5f6045b59a77c3fdb988.i
+++ /dev/null
@@ -1 +0,0 @@
-a:8:{i:0;a:3:{i:0;s:14:"document_start";i:1;a:0:{}i:2;i:0;}i:1;a:3:{i:0;s:6:"header";i:1;a:3:{i:0;s:11:"Differences";i:1;i:1;i:2;i:1;}i:2;i:1;}i:2;a:3:{i:0;s:12:"section_open";i:1;a:1:{i:0;i:1;}i:2;i:1;}i:3;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:1;}i:4;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:64:"This shows you the differences between two versions of the page.";}i:2;i:28;}i:5;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:92;}i:6;a:3:{i:0;s:13:"section_close";i:1;a:0:{}i:2;i:94;}i:7;a:3:{i:0;s:12:"document_end";i:1;a:0:{}i:2;i:94;}}
\ No newline at end of file
diff --git a/wiki/data/cache/5/51fd921306ec5f6045b59a77c3fdb988.xhtml b/wiki/data/cache/5/51fd921306ec5f6045b59a77c3fdb988.xhtml
deleted file mode 100644
index ff8cdb7..0000000
--- a/wiki/data/cache/5/51fd921306ec5f6045b59a77c3fdb988.xhtml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-<h1 class="sectionedit1" id="differences">Differences</h1>
-<div class="level1">
-
-<p>
-This shows you the differences between two versions of the page.
-</p>
-
-</div>
diff --git a/wiki/data/cache/5/54f73be88eb86109ec13c3959a29b54e.code b/wiki/data/cache/5/54f73be88eb86109ec13c3959a29b54e.code
deleted file mode 100644
index c3a8e56..0000000
--- a/wiki/data/cache/5/54f73be88eb86109ec13c3959a29b54e.code
+++ /dev/null
@@ -1 +0,0 @@
-<span class="sc2">&lt;<a href="http://december.com/html/4/element/p.html"><span class="kw2">p</span></a> <span class="kw3">style</span><span class="sy0">=</span><span class="st0">&quot;border:2px dashed red;&quot;</span>&gt;</span>And this is some block HTML<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/p.html"><span class="kw2">p</span></a>&gt;</span>
\ No newline at end of file
diff --git a/wiki/data/cache/5/5703506371aeb18ad601eaa94685615d.i b/wiki/data/cache/5/5703506371aeb18ad601eaa94685615d.i
deleted file mode 100644
index 399b49d..0000000
--- a/wiki/data/cache/5/5703506371aeb18ad601eaa94685615d.i
+++ /dev/null
@@ -1 +0,0 @@
-a:8:{i:0;a:3:{i:0;s:14:"document_start";i:1;a:0:{}i:2;i:0;}i:1;a:3:{i:0;s:6:"header";i:1;a:3:{i:0;s:6:"Search";i:1;i:1;i:2;i:1;}i:2;i:1;}i:2;a:3:{i:0;s:12:"section_open";i:1;a:1:{i:0;i:1;}i:2;i:1;}i:3;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:1;}i:4;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:63:"You can find the results of your search below. @CREATEPAGEINFO@";}i:2;i:23;}i:5;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:86;}i:6;a:3:{i:0;s:13:"section_close";i:1;a:0:{}i:2;i:88;}i:7;a:3:{i:0;s:12:"document_end";i:1;a:0:{}i:2;i:88;}}
\ No newline at end of file
diff --git a/wiki/data/cache/5/5703506371aeb18ad601eaa94685615d.xhtml b/wiki/data/cache/5/5703506371aeb18ad601eaa94685615d.xhtml
deleted file mode 100644
index 0cfecf0..0000000
--- a/wiki/data/cache/5/5703506371aeb18ad601eaa94685615d.xhtml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-<h1 class="sectionedit1" id="search">Search</h1>
-<div class="level1">
-
-<p>
-You can find the results of your search below. @CREATEPAGEINFO@
-</p>
-
-</div>
diff --git a/wiki/data/cache/6/65330cf069cbc11061bf95019a710ebe.code b/wiki/data/cache/6/65330cf069cbc11061bf95019a710ebe.code
deleted file mode 100644
index 544480f..0000000
--- a/wiki/data/cache/6/65330cf069cbc11061bf95019a710ebe.code
+++ /dev/null
@@ -1 +0,0 @@
-This is some <span class="sc2">&lt;<a href="http://december.com/html/4/element/span.html"><span class="kw2">span</span></a> <span class="kw3">style</span><span class="sy0">=</span><span class="st0">&quot;color:red;font-size:150%;&quot;</span>&gt;</span>inline HTML<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/span.html"><span class="kw2">span</span></a>&gt;</span>
\ No newline at end of file
diff --git a/wiki/data/cache/6/69276c86ade2f1fadddca57fc678bf3f.i b/wiki/data/cache/6/69276c86ade2f1fadddca57fc678bf3f.i
deleted file mode 100644
index 5511b10..0000000
--- a/wiki/data/cache/6/69276c86ade2f1fadddca57fc678bf3f.i
+++ /dev/null
@@ -1 +0,0 @@
-a:272:{i:0;a:3:{i:0;s:14:"document_start";i:1;a:0:{}i:2;i:0;}i:1;a:3:{i:0;s:6:"header";i:1;a:3:{i:0;s:8:"DokuWiki";i:1;i:1;i:2;i:1;}i:2;i:1;}i:2;a:3:{i:0;s:12:"section_open";i:1;a:1:{i:0;i:1;}i:2;i:1;}i:3;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:1;}i:4;a:3:{i:0;s:13:"interwikilink";i:1;a:4:{i:0;s:18:"doku>wiki:dokuwiki";i:1;a:8:{s:4:"type";s:13:"internalmedia";s:3:"src";s:21:"wiki:dokuwiki-128.png";s:5:"title";N;s:5:"align";s:4:"left";s:5:"width";N;s:6:"height";N;s:5:"cache";s:5:"cache";s:7:"linking";s:7:"details";}i:2;s:4:"doku";i:3;s:13:"wiki:dokuwiki";}i:2;i:25;}i:5;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:62:" DokuWiki is a simple to use and highly versatile Open Source ";}i:2;i:74;}i:6;a:3:{i:0;s:13:"interwikilink";i:1;a:4:{i:0;s:7:"wp>wiki";i:1;N;i:2;s:2:"wp";i:3;s:4:"wiki";}i:2;i:136;}i:7;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:91:" software that doesn't require a database. It is loved by users for its clean and readable ";}i:2;i:147;}i:8;a:3:{i:0;s:12:"internallink";i:1;a:2:{i:0;s:11:"wiki:syntax";i:1;N;}i:2;i:238;}i:9;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:97:". The ease of maintenance, backup and integration makes it an administrator's favorite. Built in ";}i:2;i:253;}i:10;a:3:{i:0;s:13:"interwikilink";i:1;a:4:{i:0;s:8:"doku>acl";i:1;s:15:"access controls";i:2;s:4:"doku";i:3;s:3:"acl";}i:2;i:350;}i:11;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:5:" and ";}i:2;i:378;}i:12;a:3:{i:0;s:13:"interwikilink";i:1;a:4:{i:0;s:9:"doku>auth";i:1;s:25:"authentication connectors";i:2;s:4:"doku";i:3;s:4:"auth";}i:2;i:383;}i:13;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:83:" make DokuWiki especially useful in the enterprise context and the large number of ";}i:2;i:422;}i:14;a:3:{i:0;s:13:"interwikilink";i:1;a:4:{i:0;s:12:"doku>plugins";i:1;N;i:2;s:4:"doku";i:3;s:7:"plugins";}i:2;i:505;}i:15;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:101:" contributed by its vibrant community allow for a broad range of use cases beyond a traditional wiki.";}i:2;i:521;}i:16;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:622;}i:17;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:622;}i:18;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:9:"Read the ";}i:2;i:624;}i:19;a:3:{i:0;s:13:"interwikilink";i:1;a:4:{i:0;s:11:"doku>manual";i:1;s:15:"DokuWiki Manual";i:2;s:4:"doku";i:3;s:6:"manual";}i:2;i:633;}i:20;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:39:" to unleash the full power of DokuWiki.";}i:2;i:664;}i:21;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:703;}i:22;a:3:{i:0;s:13:"section_close";i:1;a:0:{}i:2;i:705;}i:23;a:3:{i:0;s:6:"header";i:1;a:3:{i:0;s:8:"Download";i:1;i:2;i:2;i:705;}i:2;i:705;}i:24;a:3:{i:0;s:12:"section_open";i:1;a:1:{i:0;i:2;}i:2;i:705;}i:25;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:705;}i:26;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:25:"DokuWiki is available at ";}i:2;i:727;}i:27;a:3:{i:0;s:12:"externallink";i:1;a:2:{i:0;s:29:"http://download.dokuwiki.org/";i:1;N;}i:2;i:752;}i:28;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:781;}i:29;a:3:{i:0;s:13:"section_close";i:1;a:0:{}i:2;i:784;}i:30;a:3:{i:0;s:6:"header";i:1;a:3:{i:0;s:9:"Read More";i:1;i:2;i:2;i:784;}i:2;i:784;}i:31;a:3:{i:0;s:12:"section_open";i:1;a:1:{i:0;i:2;}i:2;i:784;}i:32;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:784;}i:33;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:57:"All documentation and additional information besides the ";}i:2;i:807;}i:34;a:3:{i:0;s:12:"internallink";i:1;a:2:{i:0;s:6:"syntax";i:1;s:18:"syntax description";}i:2;i:864;}i:35;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:34:" is maintained in the DokuWiki at ";}i:2;i:893;}i:36;a:3:{i:0;s:13:"interwikilink";i:1;a:4:{i:0;s:5:"doku>";i:1;s:16:"www.dokuwiki.org";i:2;s:4:"doku";i:3;s:0:"";}i:2;i:927;}i:37;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:".";}i:2;i:953;}i:38;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:954;}i:39;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:954;}i:40;a:3:{i:0;s:11:"strong_open";i:1;a:0:{}i:2;i:956;}i:41;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:14:"About DokuWiki";}i:2;i:958;}i:42;a:3:{i:0;s:12:"strong_close";i:1;a:0:{}i:2;i:972;}i:43;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:0:"";}i:2;i:974;}i:44;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:975;}i:45;a:3:{i:0;s:10:"listu_open";i:1;a:0:{}i:2;i:975;}i:46;a:3:{i:0;s:13:"listitem_open";i:1;a:1:{i:0;i:1;}i:2;i:975;}i:47;a:3:{i:0;s:16:"listcontent_open";i:1;a:0:{}i:2;i:975;}i:48;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:" ";}i:2;i:979;}i:49;a:3:{i:0;s:13:"interwikilink";i:1;a:4:{i:0;s:13:"doku>features";i:1;s:14:"A feature list";i:2;s:4:"doku";i:3;s:8:"features";}i:2;i:980;}i:50;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:" ";}i:2;i:1012;}i:51;a:3:{i:0;s:6:"smiley";i:1;a:1:{i:0;s:3:":!:";}i:2;i:1013;}i:52;a:3:{i:0;s:17:"listcontent_close";i:1;a:0:{}i:2;i:1016;}i:53;a:3:{i:0;s:14:"listitem_close";i:1;a:0:{}i:2;i:1016;}i:54;a:3:{i:0;s:13:"listitem_open";i:1;a:1:{i:0;i:1;}i:2;i:1016;}i:55;a:3:{i:0;s:16:"listcontent_open";i:1;a:0:{}i:2;i:1016;}i:56;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:" ";}i:2;i:1020;}i:57;a:3:{i:0;s:13:"interwikilink";i:1;a:4:{i:0;s:10:"doku>users";i:1;s:11:"Happy Users";i:2;s:4:"doku";i:3;s:5:"users";}i:2;i:1021;}i:58;a:3:{i:0;s:17:"listcontent_close";i:1;a:0:{}i:2;i:1047;}i:59;a:3:{i:0;s:14:"listitem_close";i:1;a:0:{}i:2;i:1047;}i:60;a:3:{i:0;s:13:"listitem_open";i:1;a:1:{i:0;i:1;}i:2;i:1047;}i:61;a:3:{i:0;s:16:"listcontent_open";i:1;a:0:{}i:2;i:1047;}i:62;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:" ";}i:2;i:1051;}i:63;a:3:{i:0;s:13:"interwikilink";i:1;a:4:{i:0;s:10:"doku>press";i:1;s:18:"Who wrote about it";i:2;s:4:"doku";i:3;s:5:"press";}i:2;i:1052;}i:64;a:3:{i:0;s:17:"listcontent_close";i:1;a:0:{}i:2;i:1085;}i:65;a:3:{i:0;s:14:"listitem_close";i:1;a:0:{}i:2;i:1085;}i:66;a:3:{i:0;s:13:"listitem_open";i:1;a:1:{i:0;i:1;}i:2;i:1085;}i:67;a:3:{i:0;s:16:"listcontent_open";i:1;a:0:{}i:2;i:1085;}i:68;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:" ";}i:2;i:1089;}i:69;a:3:{i:0;s:13:"interwikilink";i:1;a:4:{i:0;s:13:"doku>blogroll";i:1;s:19:"What Bloggers think";i:2;s:4:"doku";i:3;s:8:"blogroll";}i:2;i:1090;}i:70;a:3:{i:0;s:17:"listcontent_close";i:1;a:0:{}i:2;i:1127;}i:71;a:3:{i:0;s:14:"listitem_close";i:1;a:0:{}i:2;i:1127;}i:72;a:3:{i:0;s:13:"listitem_open";i:1;a:1:{i:0;i:1;}i:2;i:1127;}i:73;a:3:{i:0;s:16:"listcontent_open";i:1;a:0:{}i:2;i:1127;}i:74;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:" ";}i:2;i:1131;}i:75;a:3:{i:0;s:12:"externallink";i:1;a:2:{i:0;s:39:"http://www.wikimatrix.org/show/DokuWiki";i:1;s:35:"Compare it with other wiki software";}i:2;i:1132;}i:76;a:3:{i:0;s:17:"listcontent_close";i:1;a:0:{}i:2;i:1211;}i:77;a:3:{i:0;s:14:"listitem_close";i:1;a:0:{}i:2;i:1211;}i:78;a:3:{i:0;s:11:"listu_close";i:1;a:0:{}i:2;i:1211;}i:79;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:1211;}i:80;a:3:{i:0;s:11:"strong_open";i:1;a:0:{}i:2;i:1213;}i:81;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:19:"Installing DokuWiki";}i:2;i:1215;}i:82;a:3:{i:0;s:12:"strong_close";i:1;a:0:{}i:2;i:1234;}i:83;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:0:"";}i:2;i:1236;}i:84;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:1237;}i:85;a:3:{i:0;s:10:"listu_open";i:1;a:0:{}i:2;i:1237;}i:86;a:3:{i:0;s:13:"listitem_open";i:1;a:1:{i:0;i:1;}i:2;i:1237;}i:87;a:3:{i:0;s:16:"listcontent_open";i:1;a:0:{}i:2;i:1237;}i:88;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:" ";}i:2;i:1241;}i:89;a:3:{i:0;s:13:"interwikilink";i:1;a:4:{i:0;s:17:"doku>requirements";i:1;s:19:"System Requirements";i:2;s:4:"doku";i:3;s:12:"requirements";}i:2;i:1242;}i:90;a:3:{i:0;s:17:"listcontent_close";i:1;a:0:{}i:2;i:1283;}i:91;a:3:{i:0;s:14:"listitem_close";i:1;a:0:{}i:2;i:1283;}i:92;a:3:{i:0;s:13:"listitem_open";i:1;a:1:{i:0;i:1;}i:2;i:1283;}i:93;a:3:{i:0;s:16:"listcontent_open";i:1;a:0:{}i:2;i:1283;}i:94;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:" ";}i:2;i:1287;}i:95;a:3:{i:0;s:12:"externallink";i:1;a:2:{i:0;s:29:"http://download.dokuwiki.org/";i:1;s:17:"Download DokuWiki";}i:2;i:1288;}i:96;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:" ";}i:2;i:1339;}i:97;a:3:{i:0;s:6:"smiley";i:1;a:1:{i:0;s:3:":!:";}i:2;i:1340;}i:98;a:3:{i:0;s:17:"listcontent_close";i:1;a:0:{}i:2;i:1343;}i:99;a:3:{i:0;s:14:"listitem_close";i:1;a:0:{}i:2;i:1343;}i:100;a:3:{i:0;s:13:"listitem_open";i:1;a:1:{i:0;i:1;}i:2;i:1343;}i:101;a:3:{i:0;s:16:"listcontent_open";i:1;a:0:{}i:2;i:1343;}i:102;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:" ";}i:2;i:1347;}i:103;a:3:{i:0;s:13:"interwikilink";i:1;a:4:{i:0;s:12:"doku>changes";i:1;s:10:"Change Log";i:2;s:4:"doku";i:3;s:7:"changes";}i:2;i:1348;}i:104;a:3:{i:0;s:17:"listcontent_close";i:1;a:0:{}i:2;i:1375;}i:105;a:3:{i:0;s:14:"listitem_close";i:1;a:0:{}i:2;i:1375;}i:106;a:3:{i:0;s:13:"listitem_open";i:1;a:1:{i:0;i:1;}i:2;i:1375;}i:107;a:3:{i:0;s:16:"listcontent_open";i:1;a:0:{}i:2;i:1375;}i:108;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:" ";}i:2;i:1379;}i:109;a:3:{i:0;s:13:"interwikilink";i:1;a:4:{i:0;s:12:"doku>Install";i:1;s:25:"How to install or upgrade";i:2;s:4:"doku";i:3;s:7:"Install";}i:2;i:1380;}i:110;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:" ";}i:2;i:1422;}i:111;a:3:{i:0;s:6:"smiley";i:1;a:1:{i:0;s:3:":!:";}i:2;i:1423;}i:112;a:3:{i:0;s:17:"listcontent_close";i:1;a:0:{}i:2;i:1426;}i:113;a:3:{i:0;s:14:"listitem_close";i:1;a:0:{}i:2;i:1426;}i:114;a:3:{i:0;s:13:"listitem_open";i:1;a:1:{i:0;i:1;}i:2;i:1426;}i:115;a:3:{i:0;s:16:"listcontent_open";i:1;a:0:{}i:2;i:1426;}i:116;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:" ";}i:2;i:1430;}i:117;a:3:{i:0;s:13:"interwikilink";i:1;a:4:{i:0;s:11:"doku>config";i:1;s:13:"Configuration";i:2;s:4:"doku";i:3;s:6:"config";}i:2;i:1431;}i:118;a:3:{i:0;s:17:"listcontent_close";i:1;a:0:{}i:2;i:1460;}i:119;a:3:{i:0;s:14:"listitem_close";i:1;a:0:{}i:2;i:1460;}i:120;a:3:{i:0;s:11:"listu_close";i:1;a:0:{}i:2;i:1460;}i:121;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:1460;}i:122;a:3:{i:0;s:11:"strong_open";i:1;a:0:{}i:2;i:1462;}i:123;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:14:"Using DokuWiki";}i:2;i:1464;}i:124;a:3:{i:0;s:12:"strong_close";i:1;a:0:{}i:2;i:1478;}i:125;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:0:"";}i:2;i:1480;}i:126;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:1481;}i:127;a:3:{i:0;s:10:"listu_open";i:1;a:0:{}i:2;i:1481;}i:128;a:3:{i:0;s:13:"listitem_open";i:1;a:1:{i:0;i:1;}i:2;i:1481;}i:129;a:3:{i:0;s:16:"listcontent_open";i:1;a:0:{}i:2;i:1481;}i:130;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:" ";}i:2;i:1485;}i:131;a:3:{i:0;s:13:"interwikilink";i:1;a:4:{i:0;s:11:"doku>syntax";i:1;s:11:"Wiki Syntax";i:2;s:4:"doku";i:3;s:6:"syntax";}i:2;i:1486;}i:132;a:3:{i:0;s:17:"listcontent_close";i:1;a:0:{}i:2;i:1513;}i:133;a:3:{i:0;s:14:"listitem_close";i:1;a:0:{}i:2;i:1513;}i:134;a:3:{i:0;s:13:"listitem_open";i:1;a:1:{i:0;i:1;}i:2;i:1513;}i:135;a:3:{i:0;s:16:"listcontent_open";i:1;a:0:{}i:2;i:1513;}i:136;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:" ";}i:2;i:1517;}i:137;a:3:{i:0;s:13:"interwikilink";i:1;a:4:{i:0;s:11:"doku>manual";i:1;s:10:"The manual";i:2;s:4:"doku";i:3;s:6:"manual";}i:2;i:1518;}i:138;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:" ";}i:2;i:1544;}i:139;a:3:{i:0;s:6:"smiley";i:1;a:1:{i:0;s:3:":!:";}i:2;i:1545;}i:140;a:3:{i:0;s:17:"listcontent_close";i:1;a:0:{}i:2;i:1548;}i:141;a:3:{i:0;s:14:"listitem_close";i:1;a:0:{}i:2;i:1548;}i:142;a:3:{i:0;s:13:"listitem_open";i:1;a:1:{i:0;i:1;}i:2;i:1548;}i:143;a:3:{i:0;s:16:"listcontent_open";i:1;a:0:{}i:2;i:1548;}i:144;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:" ";}i:2;i:1552;}i:145;a:3:{i:0;s:13:"interwikilink";i:1;a:4:{i:0;s:8:"doku>FAQ";i:1;s:32:"Frequently Asked Questions (FAQ)";i:2;s:4:"doku";i:3;s:3:"FAQ";}i:2;i:1553;}i:146;a:3:{i:0;s:17:"listcontent_close";i:1;a:0:{}i:2;i:1598;}i:147;a:3:{i:0;s:14:"listitem_close";i:1;a:0:{}i:2;i:1598;}i:148;a:3:{i:0;s:13:"listitem_open";i:1;a:1:{i:0;i:1;}i:2;i:1598;}i:149;a:3:{i:0;s:16:"listcontent_open";i:1;a:0:{}i:2;i:1598;}i:150;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:" ";}i:2;i:1602;}i:151;a:3:{i:0;s:13:"interwikilink";i:1;a:4:{i:0;s:13:"doku>glossary";i:1;s:8:"Glossary";i:2;s:4:"doku";i:3;s:8:"glossary";}i:2;i:1603;}i:152;a:3:{i:0;s:17:"listcontent_close";i:1;a:0:{}i:2;i:1629;}i:153;a:3:{i:0;s:14:"listitem_close";i:1;a:0:{}i:2;i:1629;}i:154;a:3:{i:0;s:13:"listitem_open";i:1;a:1:{i:0;i:1;}i:2;i:1629;}i:155;a:3:{i:0;s:16:"listcontent_open";i:1;a:0:{}i:2;i:1629;}i:156;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:" ";}i:2;i:1633;}i:157;a:3:{i:0;s:12:"externallink";i:1;a:2:{i:0;s:26:"http://search.dokuwiki.org";i:1;s:42:"Search for DokuWiki help and documentation";}i:2;i:1634;}i:158;a:3:{i:0;s:17:"listcontent_close";i:1;a:0:{}i:2;i:1707;}i:159;a:3:{i:0;s:14:"listitem_close";i:1;a:0:{}i:2;i:1707;}i:160;a:3:{i:0;s:11:"listu_close";i:1;a:0:{}i:2;i:1707;}i:161;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:1707;}i:162;a:3:{i:0;s:11:"strong_open";i:1;a:0:{}i:2;i:1709;}i:163;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:20:"Customizing DokuWiki";}i:2;i:1711;}i:164;a:3:{i:0;s:12:"strong_close";i:1;a:0:{}i:2;i:1731;}i:165;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:0:"";}i:2;i:1733;}i:166;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:1734;}i:167;a:3:{i:0;s:10:"listu_open";i:1;a:0:{}i:2;i:1734;}i:168;a:3:{i:0;s:13:"listitem_open";i:1;a:1:{i:0;i:1;}i:2;i:1734;}i:169;a:3:{i:0;s:16:"listcontent_open";i:1;a:0:{}i:2;i:1734;}i:170;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:" ";}i:2;i:1738;}i:171;a:3:{i:0;s:13:"interwikilink";i:1;a:4:{i:0;s:9:"doku>tips";i:1;s:15:"Tips and Tricks";i:2;s:4:"doku";i:3;s:4:"tips";}i:2;i:1739;}i:172;a:3:{i:0;s:17:"listcontent_close";i:1;a:0:{}i:2;i:1768;}i:173;a:3:{i:0;s:14:"listitem_close";i:1;a:0:{}i:2;i:1768;}i:174;a:3:{i:0;s:13:"listitem_open";i:1;a:1:{i:0;i:1;}i:2;i:1768;}i:175;a:3:{i:0;s:16:"listcontent_open";i:1;a:0:{}i:2;i:1768;}i:176;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:" ";}i:2;i:1772;}i:177;a:3:{i:0;s:13:"interwikilink";i:1;a:4:{i:0;s:13:"doku>Template";i:1;s:31:"How to create and use templates";i:2;s:4:"doku";i:3;s:8:"Template";}i:2;i:1773;}i:178;a:3:{i:0;s:17:"listcontent_close";i:1;a:0:{}i:2;i:1822;}i:179;a:3:{i:0;s:14:"listitem_close";i:1;a:0:{}i:2;i:1822;}i:180;a:3:{i:0;s:13:"listitem_open";i:1;a:1:{i:0;i:1;}i:2;i:1822;}i:181;a:3:{i:0;s:16:"listcontent_open";i:1;a:0:{}i:2;i:1822;}i:182;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:" ";}i:2;i:1826;}i:183;a:3:{i:0;s:13:"interwikilink";i:1;a:4:{i:0;s:12:"doku>plugins";i:1;s:18:"Installing plugins";i:2;s:4:"doku";i:3;s:7:"plugins";}i:2;i:1827;}i:184;a:3:{i:0;s:17:"listcontent_close";i:1;a:0:{}i:2;i:1862;}i:185;a:3:{i:0;s:14:"listitem_close";i:1;a:0:{}i:2;i:1862;}i:186;a:3:{i:0;s:13:"listitem_open";i:1;a:1:{i:0;i:1;}i:2;i:1862;}i:187;a:3:{i:0;s:16:"listcontent_open";i:1;a:0:{}i:2;i:1862;}i:188;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:" ";}i:2;i:1866;}i:189;a:3:{i:0;s:13:"interwikilink";i:1;a:4:{i:0;s:16:"doku>development";i:1;s:21:"Development Resources";i:2;s:4:"doku";i:3;s:11:"development";}i:2;i:1867;}i:190;a:3:{i:0;s:17:"listcontent_close";i:1;a:0:{}i:2;i:1909;}i:191;a:3:{i:0;s:14:"listitem_close";i:1;a:0:{}i:2;i:1909;}i:192;a:3:{i:0;s:11:"listu_close";i:1;a:0:{}i:2;i:1909;}i:193;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:1909;}i:194;a:3:{i:0;s:11:"strong_open";i:1;a:0:{}i:2;i:1911;}i:195;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:31:"DokuWiki Feedback and Community";}i:2;i:1913;}i:196;a:3:{i:0;s:12:"strong_close";i:1;a:0:{}i:2;i:1944;}i:197;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:0:"";}i:2;i:1946;}i:198;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:1947;}i:199;a:3:{i:0;s:10:"listu_open";i:1;a:0:{}i:2;i:1947;}i:200;a:3:{i:0;s:13:"listitem_open";i:1;a:1:{i:0;i:1;}i:2;i:1947;}i:201;a:3:{i:0;s:16:"listcontent_open";i:1;a:0:{}i:2;i:1947;}i:202;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:" ";}i:2;i:1951;}i:203;a:3:{i:0;s:13:"interwikilink";i:1;a:4:{i:0;s:15:"doku>newsletter";i:1;s:27:"Subscribe to the newsletter";i:2;s:4:"doku";i:3;s:10:"newsletter";}i:2;i:1952;}i:204;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:" ";}i:2;i:1999;}i:205;a:3:{i:0;s:6:"smiley";i:1;a:1:{i:0;s:3:":!:";}i:2;i:2000;}i:206;a:3:{i:0;s:17:"listcontent_close";i:1;a:0:{}i:2;i:2003;}i:207;a:3:{i:0;s:14:"listitem_close";i:1;a:0:{}i:2;i:2003;}i:208;a:3:{i:0;s:13:"listitem_open";i:1;a:1:{i:0;i:1;}i:2;i:2003;}i:209;a:3:{i:0;s:16:"listcontent_open";i:1;a:0:{}i:2;i:2003;}i:210;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:" ";}i:2;i:2007;}i:211;a:3:{i:0;s:13:"interwikilink";i:1;a:4:{i:0;s:16:"doku>mailinglist";i:1;s:21:"Join the mailing list";i:2;s:4:"doku";i:3;s:11:"mailinglist";}i:2;i:2008;}i:212;a:3:{i:0;s:17:"listcontent_close";i:1;a:0:{}i:2;i:2050;}i:213;a:3:{i:0;s:14:"listitem_close";i:1;a:0:{}i:2;i:2050;}i:214;a:3:{i:0;s:13:"listitem_open";i:1;a:1:{i:0;i:1;}i:2;i:2050;}i:215;a:3:{i:0;s:16:"listcontent_open";i:1;a:0:{}i:2;i:2050;}i:216;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:" ";}i:2;i:2054;}i:217;a:3:{i:0;s:12:"externallink";i:1;a:2:{i:0;s:25:"http://forum.dokuwiki.org";i:1;s:24:"Check out the user forum";}i:2;i:2055;}i:218;a:3:{i:0;s:17:"listcontent_close";i:1;a:0:{}i:2;i:2109;}i:219;a:3:{i:0;s:14:"listitem_close";i:1;a:0:{}i:2;i:2109;}i:220;a:3:{i:0;s:13:"listitem_open";i:1;a:1:{i:0;i:1;}i:2;i:2109;}i:221;a:3:{i:0;s:16:"listcontent_open";i:1;a:0:{}i:2;i:2109;}i:222;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:" ";}i:2;i:2113;}i:223;a:3:{i:0;s:13:"interwikilink";i:1;a:4:{i:0;s:8:"doku>irc";i:1;s:38:"Talk to other users in the IRC channel";i:2;s:4:"doku";i:3;s:3:"irc";}i:2;i:2114;}i:224;a:3:{i:0;s:17:"listcontent_close";i:1;a:0:{}i:2;i:2165;}i:225;a:3:{i:0;s:14:"listitem_close";i:1;a:0:{}i:2;i:2165;}i:226;a:3:{i:0;s:13:"listitem_open";i:1;a:1:{i:0;i:1;}i:2;i:2165;}i:227;a:3:{i:0;s:16:"listcontent_open";i:1;a:0:{}i:2;i:2165;}i:228;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:" ";}i:2;i:2169;}i:229;a:3:{i:0;s:12:"externallink";i:1;a:2:{i:0;s:45:"https://github.com/splitbrain/dokuwiki/issues";i:1;s:30:"Submit bugs and feature wishes";}i:2;i:2170;}i:230;a:3:{i:0;s:17:"listcontent_close";i:1;a:0:{}i:2;i:2250;}i:231;a:3:{i:0;s:14:"listitem_close";i:1;a:0:{}i:2;i:2250;}i:232;a:3:{i:0;s:13:"listitem_open";i:1;a:1:{i:0;i:1;}i:2;i:2250;}i:233;a:3:{i:0;s:16:"listcontent_open";i:1;a:0:{}i:2;i:2250;}i:234;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:" ";}i:2;i:2254;}i:235;a:3:{i:0;s:12:"externallink";i:1;a:2:{i:0;s:51:"http://www.wikimatrix.org/forum/viewforum.php?id=10";i:1;s:46:"Share your experiences in the WikiMatrix forum";}i:2;i:2255;}i:236;a:3:{i:0;s:17:"listcontent_close";i:1;a:0:{}i:2;i:2357;}i:237;a:3:{i:0;s:14:"listitem_close";i:1;a:0:{}i:2;i:2357;}i:238;a:3:{i:0;s:13:"listitem_open";i:1;a:1:{i:0;i:1;}i:2;i:2357;}i:239;a:3:{i:0;s:16:"listcontent_open";i:1;a:0:{}i:2;i:2357;}i:240;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:" ";}i:2;i:2361;}i:241;a:3:{i:0;s:13:"interwikilink";i:1;a:4:{i:0;s:11:"doku>thanks";i:1;s:18:"Some humble thanks";i:2;s:4:"doku";i:3;s:6:"thanks";}i:2;i:2362;}i:242;a:3:{i:0;s:17:"listcontent_close";i:1;a:0:{}i:2;i:2396;}i:243;a:3:{i:0;s:14:"listitem_close";i:1;a:0:{}i:2;i:2396;}i:244;a:3:{i:0;s:11:"listu_close";i:1;a:0:{}i:2;i:2396;}i:245;a:3:{i:0;s:13:"section_close";i:1;a:0:{}i:2;i:2399;}i:246;a:3:{i:0;s:6:"header";i:1;a:3:{i:0;s:9:"Copyright";i:1;i:2;i:2;i:2399;}i:2;i:2399;}i:247;a:3:{i:0;s:12:"section_open";i:1;a:1:{i:0;i:2;}i:2;i:2399;}i:248;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:2399;}i:249;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:10:"2004-2015 ";}i:2;i:2422;}i:250;a:3:{i:0;s:6:"entity";i:1;a:1:{i:0;s:3:"(c)";}i:2;i:2432;}i:251;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:14:" Andreas Gohr ";}i:2;i:2435;}i:252;a:3:{i:0;s:9:"emaillink";i:1;a:2:{i:0;s:19:"andi@splitbrain.org";i:1;N;}i:2;i:2449;}i:253;a:3:{i:0;s:4:"nest";i:1;a:1:{i:0;a:9:{i:0;a:3:{i:0;s:13:"footnote_open";i:1;a:0:{}i:2;i:2470;}i:1;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:46:"Please do not contact me for help and support ";}i:2;i:2472;}i:2;a:3:{i:0;s:6:"entity";i:1;a:1:{i:0;s:2:"--";}i:2;i:2518;}i:3;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:9:" use the ";}i:2;i:2520;}i:4;a:3:{i:0;s:13:"interwikilink";i:1;a:4:{i:0;s:16:"doku>mailinglist";i:1;N;i:2;s:4:"doku";i:3;s:11:"mailinglist";}i:2;i:2529;}i:5;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:4:" or ";}i:2;i:2549;}i:6;a:3:{i:0;s:12:"externallink";i:1;a:2:{i:0;s:25:"http://forum.dokuwiki.org";i:1;s:5:"forum";}i:2;i:2553;}i:7;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:8:" instead";}i:2;i:2588;}i:8;a:3:{i:0;s:14:"footnote_close";i:1;a:0:{}i:2;i:2596;}}}i:2;i:2470;}i:254;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:27:" and the DokuWiki Community";}i:2;i:2598;}i:255;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:2625;}i:256;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:2625;}i:257;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:38:"The DokuWiki engine is licensed under ";}i:2;i:2627;}i:258;a:3:{i:0;s:12:"externallink";i:1;a:2:{i:0;s:36:"http://www.gnu.org/licenses/gpl.html";i:1;s:26:"GNU General Public License";}i:2;i:2665;}i:259;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:58:" Version 2. If you use DokuWiki in your company, consider ";}i:2;i:2732;}i:260;a:3:{i:0;s:13:"interwikilink";i:1;a:4:{i:0;s:11:"doku>donate";i:1;s:8:"donating";i:2;s:4:"doku";i:3;s:6:"donate";}i:2;i:2790;}i:261;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:13:" a few bucks ";}i:2;i:2814;}i:262;a:3:{i:0;s:6:"smiley";i:1;a:1:{i:0;s:3:";-)";}i:2;i:2827;}i:263;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:".";}i:2;i:2830;}i:264;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:2831;}i:265;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:2831;}i:266;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:34:"Not sure what this means? See the ";}i:2;i:2833;}i:267;a:3:{i:0;s:13:"interwikilink";i:1;a:4:{i:0;s:16:"doku>faq:license";i:1;s:19:"FAQ on the Licenses";i:2;s:4:"doku";i:3;s:11:"faq:license";}i:2;i:2867;}i:268;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:".";}i:2;i:2907;}i:269;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:2908;}i:270;a:3:{i:0;s:13:"section_close";i:1;a:0:{}i:2;i:2909;}i:271;a:3:{i:0;s:12:"document_end";i:1;a:0:{}i:2;i:2909;}}
\ No newline at end of file
diff --git a/wiki/data/cache/6/69276c86ade2f1fadddca57fc678bf3f.metadata b/wiki/data/cache/6/69276c86ade2f1fadddca57fc678bf3f.metadata
deleted file mode 100644
index 9ca43db..0000000
--- a/wiki/data/cache/6/69276c86ade2f1fadddca57fc678bf3f.metadata
+++ /dev/null
@@ -1 +0,0 @@
-1546006425
\ No newline at end of file
diff --git a/wiki/data/cache/6/69276c86ade2f1fadddca57fc678bf3f.xhtml b/wiki/data/cache/6/69276c86ade2f1fadddca57fc678bf3f.xhtml
deleted file mode 100644
index 3db3456..0000000
--- a/wiki/data/cache/6/69276c86ade2f1fadddca57fc678bf3f.xhtml
+++ /dev/null
@@ -1,134 +0,0 @@
-
-<h1 class="sectionedit1" id="dokuwiki">DokuWiki</h1>
-<div class="level1">
-
-<p>
-<a href="https://www.dokuwiki.org/wiki%3Adokuwiki" class="media" title="https://www.dokuwiki.org/wiki%3Adokuwiki"><img src="/wiki/lib/exe/fetch.php?media=wiki:dokuwiki-128.png" class="medialeft" alt="" /></a> DokuWiki is a simple to use and highly versatile Open Source <a href="https://en.wikipedia.org/wiki/wiki" class="interwiki iw_wp" title="https://en.wikipedia.org/wiki/wiki">wiki</a> software that doesn&#039;t require a database. It is loved by users for its clean and readable <a href="/wiki/doku.php?id=wiki:syntax" class="wikilink1" title="wiki:syntax">syntax</a>. The ease of maintenance, backup and integration makes it an administrator&#039;s favorite. Built in <a href="https://www.dokuwiki.org/acl" class="interwiki iw_doku" title="https://www.dokuwiki.org/acl">access controls</a> and <a href="https://www.dokuwiki.org/auth" class="interwiki iw_doku" title="https://www.dokuwiki.org/auth">authentication connectors</a> make DokuWiki especially useful in the enterprise context and the large number of <a href="https://www.dokuwiki.org/plugins" class="interwiki iw_doku" title="https://www.dokuwiki.org/plugins">plugins</a> contributed by its vibrant community allow for a broad range of use cases beyond a traditional wiki.
-</p>
-
-<p>
-Read the <a href="https://www.dokuwiki.org/manual" class="interwiki iw_doku" title="https://www.dokuwiki.org/manual">DokuWiki Manual</a> to unleash the full power of DokuWiki.
-</p>
-
-</div>
-<!-- EDIT{&quot;target&quot;:&quot;section&quot;,&quot;name&quot;:&quot;DokuWiki&quot;,&quot;hid&quot;:&quot;dokuwiki&quot;,&quot;codeblockOffset&quot;:0,&quot;secid&quot;:1,&quot;range&quot;:&quot;1-704&quot;} -->
-<h2 class="sectionedit2" id="download">Download</h2>
-<div class="level2">
-
-<p>
-DokuWiki is available at <a href="http://download.dokuwiki.org/" class="urlextern" title="http://download.dokuwiki.org/" rel="nofollow">http://download.dokuwiki.org/</a>
-</p>
-
-</div>
-<!-- EDIT{&quot;target&quot;:&quot;section&quot;,&quot;name&quot;:&quot;Download&quot;,&quot;hid&quot;:&quot;download&quot;,&quot;codeblockOffset&quot;:0,&quot;secid&quot;:2,&quot;range&quot;:&quot;705-783&quot;} -->
-<h2 class="sectionedit3" id="read_more">Read More</h2>
-<div class="level2">
-
-<p>
-All documentation and additional information besides the <a href="/wiki/doku.php?id=wiki:syntax" class="wikilink1" title="wiki:syntax">syntax description</a> is maintained in the DokuWiki at <a href="https://www.dokuwiki.org/" class="interwiki iw_doku" title="https://www.dokuwiki.org/">www.dokuwiki.org</a>.
-</p>
-
-<p>
-<strong>About DokuWiki</strong>
-</p>
-<ul>
-<li class="level1"><div class="li"> <a href="https://www.dokuwiki.org/features" class="interwiki iw_doku" title="https://www.dokuwiki.org/features">A feature list</a> <img src="/wiki/lib/images/smileys/icon_exclaim.gif" class="icon" alt=":!:" /></div>
-</li>
-<li class="level1"><div class="li"> <a href="https://www.dokuwiki.org/users" class="interwiki iw_doku" title="https://www.dokuwiki.org/users">Happy Users</a></div>
-</li>
-<li class="level1"><div class="li"> <a href="https://www.dokuwiki.org/press" class="interwiki iw_doku" title="https://www.dokuwiki.org/press">Who wrote about it</a></div>
-</li>
-<li class="level1"><div class="li"> <a href="https://www.dokuwiki.org/blogroll" class="interwiki iw_doku" title="https://www.dokuwiki.org/blogroll">What Bloggers think</a></div>
-</li>
-<li class="level1"><div class="li"> <a href="http://www.wikimatrix.org/show/DokuWiki" class="urlextern" title="http://www.wikimatrix.org/show/DokuWiki" rel="nofollow">Compare it with other wiki software</a></div>
-</li>
-</ul>
-
-<p>
-<strong>Installing DokuWiki</strong>
-</p>
-<ul>
-<li class="level1"><div class="li"> <a href="https://www.dokuwiki.org/requirements" class="interwiki iw_doku" title="https://www.dokuwiki.org/requirements">System Requirements</a></div>
-</li>
-<li class="level1"><div class="li"> <a href="http://download.dokuwiki.org/" class="urlextern" title="http://download.dokuwiki.org/" rel="nofollow">Download DokuWiki</a> <img src="/wiki/lib/images/smileys/icon_exclaim.gif" class="icon" alt=":!:" /></div>
-</li>
-<li class="level1"><div class="li"> <a href="https://www.dokuwiki.org/changes" class="interwiki iw_doku" title="https://www.dokuwiki.org/changes">Change Log</a></div>
-</li>
-<li class="level1"><div class="li"> <a href="https://www.dokuwiki.org/Install" class="interwiki iw_doku" title="https://www.dokuwiki.org/Install">How to install or upgrade</a> <img src="/wiki/lib/images/smileys/icon_exclaim.gif" class="icon" alt=":!:" /></div>
-</li>
-<li class="level1"><div class="li"> <a href="https://www.dokuwiki.org/config" class="interwiki iw_doku" title="https://www.dokuwiki.org/config">Configuration</a></div>
-</li>
-</ul>
-
-<p>
-<strong>Using DokuWiki</strong>
-</p>
-<ul>
-<li class="level1"><div class="li"> <a href="https://www.dokuwiki.org/syntax" class="interwiki iw_doku" title="https://www.dokuwiki.org/syntax">Wiki Syntax</a></div>
-</li>
-<li class="level1"><div class="li"> <a href="https://www.dokuwiki.org/manual" class="interwiki iw_doku" title="https://www.dokuwiki.org/manual">The manual</a> <img src="/wiki/lib/images/smileys/icon_exclaim.gif" class="icon" alt=":!:" /></div>
-</li>
-<li class="level1"><div class="li"> <a href="https://www.dokuwiki.org/FAQ" class="interwiki iw_doku" title="https://www.dokuwiki.org/FAQ">Frequently Asked Questions (FAQ)</a></div>
-</li>
-<li class="level1"><div class="li"> <a href="https://www.dokuwiki.org/glossary" class="interwiki iw_doku" title="https://www.dokuwiki.org/glossary">Glossary</a></div>
-</li>
-<li class="level1"><div class="li"> <a href="http://search.dokuwiki.org" class="urlextern" title="http://search.dokuwiki.org" rel="nofollow">Search for DokuWiki help and documentation</a></div>
-</li>
-</ul>
-
-<p>
-<strong>Customizing DokuWiki</strong>
-</p>
-<ul>
-<li class="level1"><div class="li"> <a href="https://www.dokuwiki.org/tips" class="interwiki iw_doku" title="https://www.dokuwiki.org/tips">Tips and Tricks</a></div>
-</li>
-<li class="level1"><div class="li"> <a href="https://www.dokuwiki.org/Template" class="interwiki iw_doku" title="https://www.dokuwiki.org/Template">How to create and use templates</a></div>
-</li>
-<li class="level1"><div class="li"> <a href="https://www.dokuwiki.org/plugins" class="interwiki iw_doku" title="https://www.dokuwiki.org/plugins">Installing plugins</a></div>
-</li>
-<li class="level1"><div class="li"> <a href="https://www.dokuwiki.org/development" class="interwiki iw_doku" title="https://www.dokuwiki.org/development">Development Resources</a></div>
-</li>
-</ul>
-
-<p>
-<strong>DokuWiki Feedback and Community</strong>
-</p>
-<ul>
-<li class="level1"><div class="li"> <a href="https://www.dokuwiki.org/newsletter" class="interwiki iw_doku" title="https://www.dokuwiki.org/newsletter">Subscribe to the newsletter</a> <img src="/wiki/lib/images/smileys/icon_exclaim.gif" class="icon" alt=":!:" /></div>
-</li>
-<li class="level1"><div class="li"> <a href="https://www.dokuwiki.org/mailinglist" class="interwiki iw_doku" title="https://www.dokuwiki.org/mailinglist">Join the mailing list</a></div>
-</li>
-<li class="level1"><div class="li"> <a href="http://forum.dokuwiki.org" class="urlextern" title="http://forum.dokuwiki.org" rel="nofollow">Check out the user forum</a></div>
-</li>
-<li class="level1"><div class="li"> <a href="https://www.dokuwiki.org/irc" class="interwiki iw_doku" title="https://www.dokuwiki.org/irc">Talk to other users in the IRC channel</a></div>
-</li>
-<li class="level1"><div class="li"> <a href="https://github.com/splitbrain/dokuwiki/issues" class="urlextern" title="https://github.com/splitbrain/dokuwiki/issues" rel="nofollow">Submit bugs and feature wishes</a></div>
-</li>
-<li class="level1"><div class="li"> <a href="http://www.wikimatrix.org/forum/viewforum.php?id=10" class="urlextern" title="http://www.wikimatrix.org/forum/viewforum.php?id=10" rel="nofollow">Share your experiences in the WikiMatrix forum</a></div>
-</li>
-<li class="level1"><div class="li"> <a href="https://www.dokuwiki.org/thanks" class="interwiki iw_doku" title="https://www.dokuwiki.org/thanks">Some humble thanks</a></div>
-</li>
-</ul>
-
-</div>
-<!-- EDIT{&quot;target&quot;:&quot;section&quot;,&quot;name&quot;:&quot;Read More&quot;,&quot;hid&quot;:&quot;read_more&quot;,&quot;codeblockOffset&quot;:0,&quot;secid&quot;:3,&quot;range&quot;:&quot;784-2398&quot;} -->
-<h2 class="sectionedit4" id="copyright">Copyright</h2>
-<div class="level2">
-
-<p>
-2004-2015 © Andreas Gohr <a href="mailto:&#x61;&#x6e;&#x64;&#x69;&#x40;&#x73;&#x70;&#x6c;&#x69;&#x74;&#x62;&#x72;&#x61;&#x69;&#x6e;&#x2e;&#x6f;&#x72;&#x67;" class="mail" title="&#x61;&#x6e;&#x64;&#x69;&#x40;&#x73;&#x70;&#x6c;&#x69;&#x74;&#x62;&#x72;&#x61;&#x69;&#x6e;&#x2e;&#x6f;&#x72;&#x67;">&#x61;&#x6e;&#x64;&#x69;&#x40;&#x73;&#x70;&#x6c;&#x69;&#x74;&#x62;&#x72;&#x61;&#x69;&#x6e;&#x2e;&#x6f;&#x72;&#x67;</a><sup><a href="#fn__1" id="fnt__1" class="fn_top">1)</a></sup> and the DokuWiki Community
-</p>
-
-<p>
-The DokuWiki engine is licensed under <a href="http://www.gnu.org/licenses/gpl.html" class="urlextern" title="http://www.gnu.org/licenses/gpl.html" rel="nofollow">GNU General Public License</a> Version 2. If you use DokuWiki in your company, consider <a href="https://www.dokuwiki.org/donate" class="interwiki iw_doku" title="https://www.dokuwiki.org/donate">donating</a> a few bucks <img src="/wiki/lib/images/smileys/icon_wink.gif" class="icon" alt=";-)" />.
-</p>
-
-<p>
-Not sure what this means? See the <a href="https://www.dokuwiki.org/faq%3Alicense" class="interwiki iw_doku" title="https://www.dokuwiki.org/faq%3Alicense">FAQ on the Licenses</a>.
-</p>
-
-</div>
-<!-- EDIT{&quot;target&quot;:&quot;section&quot;,&quot;name&quot;:&quot;Copyright&quot;,&quot;hid&quot;:&quot;copyright&quot;,&quot;codeblockOffset&quot;:0,&quot;secid&quot;:4,&quot;range&quot;:&quot;2399-&quot;} --><div class="footnotes">
-<div class="fn"><sup><a href="#fnt__1" id="fn__1" class="fn_bot">1)</a></sup> 
-<div class="content">Please do not contact me for help and support – use the <a href="https://www.dokuwiki.org/mailinglist" class="interwiki iw_doku" title="https://www.dokuwiki.org/mailinglist">mailinglist</a> or <a href="http://forum.dokuwiki.org" class="urlextern" title="http://forum.dokuwiki.org" rel="nofollow">forum</a> instead</div></div>
-</div>
diff --git a/wiki/data/cache/6/6d079fddabcf4cf2934c3775101efc7d.code b/wiki/data/cache/6/6d079fddabcf4cf2934c3775101efc7d.code
deleted file mode 100644
index 05e2c07..0000000
--- a/wiki/data/cache/6/6d079fddabcf4cf2934c3775101efc7d.code
+++ /dev/null
@@ -1,9 +0,0 @@
-<span class="co3">/**
- * The HelloWorldApp class implements an application that
- * simply displays &quot;Hello World!&quot; to the standard output.
- */</span>
-<span class="kw1">class</span> HelloWorldApp <span class="br0">&#123;</span>
-    <span class="kw1">public</span> <span class="kw1">static</span> <span class="kw4">void</span> main<span class="br0">&#40;</span><a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Adocs.oracle.com+javase+docs+api+string"><span class="kw3">String</span></a><span class="br0">&#91;</span><span class="br0">&#93;</span> args<span class="br0">&#41;</span> <span class="br0">&#123;</span>
-        <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Adocs.oracle.com+javase+docs+api+system"><span class="kw3">System</span></a>.<span class="me1">out</span>.<span class="me1">println</span><span class="br0">&#40;</span><span class="st0">&quot;Hello World!&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="co1">//Display the string.</span>
-    <span class="br0">&#125;</span>
-<span class="br0">&#125;</span>
\ No newline at end of file
diff --git a/wiki/data/cache/8/8f5bc759475edf615b95a919d2efe57d.i b/wiki/data/cache/8/8f5bc759475edf615b95a919d2efe57d.i
deleted file mode 100644
index 85fa3b4..0000000
--- a/wiki/data/cache/8/8f5bc759475edf615b95a919d2efe57d.i
+++ /dev/null
@@ -1 +0,0 @@
-a:8:{i:0;a:3:{i:0;s:14:"document_start";i:1;a:0:{}i:2;i:0;}i:1;a:3:{i:0;s:6:"header";i:1;a:3:{i:0;s:9:"Backlinks";i:1;i:1;i:2;i:1;}i:2;i:1;}i:2;a:3:{i:0;s:12:"section_open";i:1;a:1:{i:0;i:1;}i:2;i:1;}i:3;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:1;}i:4;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:67:"This is a list of pages that seem to link back to the current page.";}i:2;i:26;}i:5;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:93;}i:6;a:3:{i:0;s:13:"section_close";i:1;a:0:{}i:2;i:95;}i:7;a:3:{i:0;s:12:"document_end";i:1;a:0:{}i:2;i:95;}}
\ No newline at end of file
diff --git a/wiki/data/cache/8/8f5bc759475edf615b95a919d2efe57d.xhtml b/wiki/data/cache/8/8f5bc759475edf615b95a919d2efe57d.xhtml
deleted file mode 100644
index fdd2b11..0000000
--- a/wiki/data/cache/8/8f5bc759475edf615b95a919d2efe57d.xhtml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-<h1 class="sectionedit1" id="backlinks">Backlinks</h1>
-<div class="level1">
-
-<p>
-This is a list of pages that seem to link back to the current page.
-</p>
-
-</div>
diff --git a/wiki/data/cache/9/9265672c70bbd9bd2800a662f9ea0858.i b/wiki/data/cache/9/9265672c70bbd9bd2800a662f9ea0858.i
deleted file mode 100644
index 70af65c..0000000
--- a/wiki/data/cache/9/9265672c70bbd9bd2800a662f9ea0858.i
+++ /dev/null
@@ -1 +0,0 @@
-a:12:{i:0;a:3:{i:0;s:14:"document_start";i:1;a:0:{}i:2;i:0;}i:1;a:3:{i:0;s:6:"header";i:1;a:3:{i:0;s:29:"This topic does not exist yet";i:1;i:1;i:2;i:1;}i:2;i:1;}i:2;a:3:{i:0;s:12:"section_open";i:1;a:1:{i:0;i:1;}i:2;i:1;}i:3;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:1;}i:4;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:113:"You've followed a link to a topic that doesn't exist yet. If permissions allow, you may create it by clicking on ";}i:2;i:46;}i:5;a:3:{i:0;s:18:"doublequoteopening";i:1;a:0:{}i:2;i:159;}i:6;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:16:"Create this page";}i:2;i:160;}i:7;a:3:{i:0;s:18:"doublequoteclosing";i:1;a:0:{}i:2;i:176;}i:8;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:".";}i:2;i:177;}i:9;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:178;}i:10;a:3:{i:0;s:13:"section_close";i:1;a:0:{}i:2;i:180;}i:11;a:3:{i:0;s:12:"document_end";i:1;a:0:{}i:2;i:180;}}
\ No newline at end of file
diff --git a/wiki/data/cache/9/9265672c70bbd9bd2800a662f9ea0858.xhtml b/wiki/data/cache/9/9265672c70bbd9bd2800a662f9ea0858.xhtml
deleted file mode 100644
index fb442dc..0000000
--- a/wiki/data/cache/9/9265672c70bbd9bd2800a662f9ea0858.xhtml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-<h1 class="sectionedit1" id="this_topic_does_not_exist_yet">This topic does not exist yet</h1>
-<div class="level1">
-
-<p>
-You&#039;ve followed a link to a topic that doesn&#039;t exist yet. If permissions allow, you may create it by clicking on “Create this pageâ€.
-</p>
-
-</div>
diff --git a/wiki/data/cache/9/9480c58e18d507b30da4c62f6a221a01.css b/wiki/data/cache/9/9480c58e18d507b30da4c62f6a221a01.css
deleted file mode 100644
index c448661..0000000
--- a/wiki/data/cache/9/9480c58e18d507b30da4c62f6a221a01.css
+++ /dev/null
@@ -1 +0,0 @@
-@media screen{a.interwiki{background:transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAw1BMVEUAAAACAgIaHB0bHB0bHR0aHB4cHh8dHx8eICIfISIUKT4dJzAnKywpLCwhLTkfPl8nN0clPVM9QUMvVXU8WnVBREZESEpKYXVWZXBpbnJqb3JtcXRuc3VvdXhzdnhyeHtefJVdf5xtjKV+mrJ8nLZ7n7uKpruXp7OCpsGVscOfv9Wius2ku82iwtitxdW+yc+yxta70eC51OS/1OHAyc3Bys7Cy8/Dys/N0dXR1djA1eLD1+TK2eXX3OHc4uTg5en////YsFbQAAAAN3RSTlP///////////////////////////////////////////////////////////////////////8AEFmdiwAAAG9JREFUeAFjMEMDxApIsjAyssoiBITkLO1sLXjEYAJSvPbWRsY26jzyUAEmc20tXUMDHQl2qACjvoqqhpWepjgjVMABBBTVlAXhAgwMDA7CSgp8bHAVQAF+EQFOGbgKIOTi5hA1QzaDkVmaaL+gAQDUCy6hGMOdlgAAAABJRU5ErkJggg==) 0 1px no-repeat;padding:1px 0 1px 16px;}a.iw_wp{background-image:url(data:image/gif;base64,R0lGODlhEAAQAPMJADIxMlRUVG9vb4B/gJGRka6urtTV1N/g3/j5+P///wAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAAkALAAAAAAQABAAAARYMMlJq70W6c017SBCGUKBEMRhpAVBHQGBFIDRzsVHAAcspLPDxwAw0Uw24URDCPQAsoLpgyAWDAEnkIoIlAoxk2jJhCIEPA8ZcSAYqjK1hHPY1OWYvJ4SAQA7);}a.iw_wpfr{background-image:url(data:image/gif;base64,R0lGODlhEAAQAPMJADIxMlRUVG9vb4B/gJGRka6urtTV1N/g3/j5+P///wAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAAkALAAAAAAQABAAAARYMMlJq70W6c017SBCGUKBEMRhpAVBHQGBFIDRzsVHAAcspLPDxwAw0Uw24URDCPQAsoLpgyAWDAEnkIoIlAoxk2jJhCIEPA8ZcSAYqjK1hHPY1OWYvJ4SAQA7);}a.iw_wpde{background-image:url(data:image/gif;base64,R0lGODlhEAAQAPMJADIxMlRUVG9vb4B/gJGRka6urtTV1N/g3/j5+P///wAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAAkALAAAAAAQABAAAARYMMlJq70W6c017SBCGUKBEMRhpAVBHQGBFIDRzsVHAAcspLPDxwAw0Uw24URDCPQAsoLpgyAWDAEnkIoIlAoxk2jJhCIEPA8ZcSAYqjK1hHPY1OWYvJ4SAQA7);}a.iw_wpes{background-image:url(data:image/gif;base64,R0lGODlhEAAQAPMJADIxMlRUVG9vb4B/gJGRka6urtTV1N/g3/j5+P///wAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAAkALAAAAAAQABAAAARYMMlJq70W6c017SBCGUKBEMRhpAVBHQGBFIDRzsVHAAcspLPDxwAw0Uw24URDCPQAsoLpgyAWDAEnkIoIlAoxk2jJhCIEPA8ZcSAYqjK1hHPY1OWYvJ4SAQA7);}a.iw_wppl{background-image:url(data:image/gif;base64,R0lGODlhEAAQAPMJADIxMlRUVG9vb4B/gJGRka6urtTV1N/g3/j5+P///wAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAAkALAAAAAAQABAAAARYMMlJq70W6c017SBCGUKBEMRhpAVBHQGBFIDRzsVHAAcspLPDxwAw0Uw24URDCPQAsoLpgyAWDAEnkIoIlAoxk2jJhCIEPA8ZcSAYqjK1hHPY1OWYvJ4SAQA7);}a.iw_wpjp{background-image:url(data:image/gif;base64,R0lGODlhEAAQAPMJADIxMlRUVG9vb4B/gJGRka6urtTV1N/g3/j5+P///wAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAAkALAAAAAAQABAAAARYMMlJq70W6c017SBCGUKBEMRhpAVBHQGBFIDRzsVHAAcspLPDxwAw0Uw24URDCPQAsoLpgyAWDAEnkIoIlAoxk2jJhCIEPA8ZcSAYqjK1hHPY1OWYvJ4SAQA7);}a.iw_wpmeta{background-image:url(data:image/gif;base64,R0lGODlhEAAQAPMJADIxMlRUVG9vb4B/gJGRka6urtTV1N/g3/j5+P///wAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAAkALAAAAAAQABAAAARYMMlJq70W6c017SBCGUKBEMRhpAVBHQGBFIDRzsVHAAcspLPDxwAw0Uw24URDCPQAsoLpgyAWDAEnkIoIlAoxk2jJhCIEPA8ZcSAYqjK1hHPY1OWYvJ4SAQA7);}a.iw_doku{background-image:url(data:image/gif;base64,R0lGODlhEAAQAPMOAKpvR8JMK0umTje1J6rCc7SrnrfHtNvEq8vLy87hzvbqxvv98uze3rattP///wB9ACH5BAEAAA4ALAAAAAAQABAAAARp0MlJq72XHWOKOUkBNFRRKGiSLEVwABSiGE1Dt4FLNQcisznAoXI4oBaHXGFhIBqTgABgsSBRFrIECLFIGBIWhEFAMCC8qyaF83gMBAYqp7Icv99f9aSxYDDGZAMrFWgNMggCVhiLjBcRADs=);}a.iw_amazon{background-image:url(data:image/gif;base64,R0lGODlhEAAQAPIHAAAAAPnQi6+1v3V1dfv15To6Ov+uNP///yH5BAUKAAcALAAAAAAQABAAAANJeLrcfkQMQd4aIGdhMSgeUDlYoXicBQnF1rUakDbehD6ZedxOrsAzBqwA+xACAYYgJpEdk5BkZCYIGJAL6xVp6AZGjSfyqyofEgA7);}a.iw_amazon_de{background-image:url(data:image/gif;base64,R0lGODlhEAAQAPIHAAAAAPnQi6+1v3V1dfv15To6Ov+uNP///yH5BAUKAAcALAAAAAAQABAAAANJeLrcfkQMQd4aIGdhMSgeUDlYoXicBQnF1rUakDbehD6ZedxOrsAzBqwA+xACAYYgJpEdk5BkZCYIGJAL6xVp6AZGjSfyqyofEgA7);}a.iw_amazon_uk{background-image:url(data:image/gif;base64,R0lGODlhEAAQAPIHAAAAAPnQi6+1v3V1dfv15To6Ov+uNP///yH5BAUKAAcALAAAAAAQABAAAANJeLrcfkQMQd4aIGdhMSgeUDlYoXicBQnF1rUakDbehD6ZedxOrsAzBqwA+xACAYYgJpEdk5BkZCYIGJAL6xVp6AZGjSfyqyofEgA7);}a.iw_paypal{background-image:url(data:image/gif;base64,R0lGODlhEAAQAPIHAFNTU2RlZO/y7sjLx3h5eKKlooyNiwAAACH5BAUAAAcALAAAAAAQABAAAANQeHrQDiuqQGuAcoYyRqnZQQ0LERBNZAYLQBkXJlLPaMpPExjkxyoNzkBA1BAmqcKtRhK5Dqgcoek8XnjDYgtgYAAKIYU2GI7EyuYnWqzNJAAAOw==);}a.iw_phpfn{background-image:url(data:image/gif;base64,R0lGODlhEAAQAPMOAAcMFB4eMCw2UTpEakVNaVRmlWJqklhqo2J0rGeDt3iT2H+a5YGU1Y6q7AAAAAAAACH5BAEAAA4ALAAAAAAQABAAAARR0MlJq704681p+w0DgE3VLEwqImwheAihpAB7IAMASGGaAAEWojCgLAYEg1B4eE0UAQIiYSsMnZKjBMEIeAUuiqLoYO0cBCJlQPaedeeO3BIBADs=);}a.iw_skype{background-image:url(data:image/gif;base64,R0lGODlhEAAQAPIHAHh4eJmZmV1dXf7+/ri4uNvb2+zs7AAAACH5BAUAAAcALAAAAAAQABAAAANTeLrcHTAAt0CEINNAeDEFAQjCAxmDgRbjpFjcwFqF5CrRIBMiWVaRj65GYlgyggxhQChWLIMAKcAk3Q6ZQgplkDoVSQshlNE4ypnI1WRbU95wRwIAOw==);}a.iw_user{background-image:url(/wiki/lib/images/interwiki/user.png);}a.iw_callto{background-image:url(data:image/gif;base64,R0lGODlhEAAQAOMPAMwwK16QCxl1zxmQ5iqd6lih4ZeYmqyur52go9TW2eni3d3f4fPx7t/f38S+vP///yH5BAEKAA8ALAAAAAAQABAAAARe8Mk53XGO6srY2c8hWgeziNuhdJ2lfJoqzEXdwFQpEHX9pooBYUgY/GJBYlGB2CBY0EVTg1gEAo4EACB1LhLgcJe6MBjA5jGlmlh8G+0pxcBAGBRMumFj7vv3IIESEQA7);}a.iw_tel{background-image:url(data:image/gif;base64,R0lGODlhEAAQAOMPAMwwK16QCxl1zxmQ5iqd6lih4ZeYmqyur52go9TW2eni3d3f4fPx7t/f38S+vP///yH5BAEKAA8ALAAAAAAQABAAAARe8Mk53XGO6srY2c8hWgeziNuhdJ2lfJoqzEXdwFQpEHX9pooBYUgY/GJBYlGB2CBY0EVTg1gEAo4EACB1LhLgcJe6MBjA5jGlmlh8G+0pxcBAGBRMumFj7vv3IIESEQA7);}.mediafile{background:transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAAwElEQVR4AW3PPUoDURQF4O/OBHsb0yi4ByG4TUELl+Q2bMQ0Roz5IfPedRgIg+Gd037cw40U3Frq/c/ae1YkPBw2pzLk3EM+P7nXJQmrU9nm79Tv/MrPkXzky0QIrIbc5zH3Y39yk+sR7HKbryMJIUfwVkCVBkfXgMXjAqAT6BS9KxvV4AZnIEDoQUwQM4CZTMttQExz87QWode1LiRIoTKDFuraIKQALkCKMzGnyi4TtexVl6llp0QK7iyb/xTrP+DMapMFm/pGAAAAAElFTkSuQmCC) 0 1px no-repeat;padding-left:18px;padding-bottom:1px;}.mf_7z{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAACZZgCUlJSVlZWZmZl+VACZZgCPXwD4+Pj5+fn5+fn7+/v8/PyZZgCxij6xiz/m5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///9o3RgLAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACOSURBVHjaVc3ZEoMgDEDRICBdtIvazbZWKyKG//+/BoZh6p3kIecBgAGXKiYyxgjkscLQvCUhUNWote67B953IgMAhcYa8/20OI17EcBaa6bhiZQKsCAus+5f7S0C5WXo3gSbsvnrWoC/nXNhqQM0IRfWB+s7gZ8IZYT0xvqXSwEM8nONsfokCXiuUpL/AMD2FfR4jF10AAAAAElFTkSuQmCC);}.mf_asm{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAzZpmUlJSVlZWZmZkqVH4zZpkvX4/4+Pj5+fn5+fn7+/v8/PwzZplkirFli7Hm5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///+1eJgJAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACSSURBVHjaXY2JDoIwEAW3QKkHoAJeqAhSSln+//98NNAYJ007md2kJCiUaiEKhECQh5wdwxYFQeWd1rqp73zbRQERKTbWmM+74r7bRy5Ya03fPhgoF0bmcdDNs7ouAcylrV8Im7T84ZJQWk6QacKZLSPcztYXASOYD+vch9SJ38j+fjknJCg+FbxQHCVCGCuPDL8/VxdkUml3JgAAAABJRU5ErkJggg==);}.mf_bash{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAzZpmUlJSVlZWZmZkqVH4zZpkvX4/4+Pj5+fn5+fn7+/v8/PwzZplkirFli7Hm5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///+1eJgJAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACRSURBVHjaXY2LDoIwDEU7tjEfiAr4QuUhY4zu///P0iyGeJr2JqdNCgKkNhGVCEFCHwtkpi0ZEqYYrLVd88D7TiUAYNB55z5tjeOwVyy8927sn0gYFjPiPNnuVd+iIBbTN28Sm0O14ppBCJTcgSLkwMFV8eSLsIyYsNqvLqhi5n9fLhkISM8lRsqTJiFT80PLL3flF/w9UVhDAAAAAElFTkSuQmCC);}.mf_bz2{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAACZZgCUlJSVlZWZmZl+VACZZgCPXwD4+Pj5+fn5+fn7+/v8/PyZZgCxij6xiz/m5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///9o3RgLAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACRSURBVHjaXc2LDoIgFIDhg4J0USulm5VpIuLx/d+vA2Pk+hkDvjEABqmQIZ4wRiAOFfqmLQmBrAatddfe8bbjCQBINNaYz7vBcdhzD9ZaM/YPpKSHGXGedPdsrgEoJ337ItgUatUlh0Iti6K5+FWVQAcaKk4Hv3OAeMe1fsNtyr9fzjkwyE41huqjIEgzGRPpFxZIFvFd9hAvAAAAAElFTkSuQmCC);}.mf_c{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAzZpmUlJSVlZWZmZkqVH4zZpkvX4/4+Pj5+fn5+fn7+/v8/PwzZplkirFli7Hm5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///+1eJgJAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACISURBVHjahc3bDoIwDIDhjm0MFU+AJ1QOMsYo7/9+1tkQoxf+N0u/LC0IkNpwKhKCQG8zDA0LEgKTddbaprrgeakiADDovHOPusS+W6kA3nvXt1ekTIARcRxscytPDNRL2upOkKyLj44p8DxN73cDPM9//sPPjq8rhxQExPscuXynCWRs5rR8Am9iFSUntQHzAAAAAElFTkSuQmCC);}.mf_cc{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAzZpmUlJSVlZWZmZkqVH4zZpkvX4/4+Pj5+fn5+fn7+/v8/PwzZplkirFli7Hm5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///+1eJgJAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACISURBVHjahc3JEoIwDIDhlLbEBTdwRUWQUkp4//czZDqOowf/mRzyHRJQoC3GTKIUg93kJPVzFgbMW+dcXV3ovDAJACD54P3zUVLXLo1ACMF3zZU4FBiIht7Vt/IUgZukqe4Ms9X+o2MGso+jDLcG2eNM/YefG19fDhkoSHcFxYqtZdApvrP6BaqXFcY0fXcvAAAAAElFTkSuQmCC);}.mf_conf{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAgVBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAACZmZmUlJSVlZWZmZl+fn6ZmZmPj4/4+Pj5+fn5+fn7+/v8/PyZmZmxsbHm5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz////7VrU3AAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACMSURBVHjaZc2LDoIgFIDhg4B000rpYmWaiHh4/wfswKjV/IENvjEABlyqlMgYI5D7CmPTmoRAVYMxpmuveNmIDAAUWmft69ngOGxFBOecHfsbUirCjDhPprs35wRUkL59EKwK/dNpB4X3WocZly/Bk/s0wv4f6LC8kd74QLn8hUF+rDFVHyQBz9U3yd8SKRcS0TX7RQAAAABJRU5ErkJggg==);}.mf_cpp{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAzZpmUlJSVlZWZmZkqVH4zZpkvX4/4+Pj5+fn5+fn7+/v8/PwzZplkirFli7Hm5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///+1eJgJAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACQSURBVHgBXc2NDoIgEMDxQ0D6MCulj6xMExHP93+/Tnaz1l9vg98YgACpDacSIQj0vsDYsCYhMEXnnGvqG143KgEAgz54/35V2HdbFSGE4Pv2jpSJMCKOg2se1YVhjqStnwSrnf3pnAHtp2n+49gcaGFp+LOWgU98gYfiOxbI/145ZSAgPZbIlQdNIFOzpOUHABcWlTpZEbgAAAAASUVORK5CYII=);}.mf_cs{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAzZpmUlJSVlZWZmZkqVH4zZpkvX4/4+Pj5+fn5+fn7+/v8/PwzZplkirFli7Hm5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///+1eJgJAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACNSURBVHgBXc3pDoIwDMDxjm3MAw/BQ1ERZIxR3v/9bOrSGP+hJP196ECBti5lMqUI7K5EblySELiy9963zQ2vK5MBgMMQQ3i/ahz6tWGIMYahuyPlGCbEafTto74kQGTpmifBYnP86VwA7/PMQ22Bd55vAkkE5C836OMbf6+cClCQHypMVXtLoHMnWf0BqoAVxt/yR5wAAAAASUVORK5CYII=);}.mf_csh{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAzZpmUlJSVlZWZmZkqVH4zZpkvX4/4+Pj5+fn5+fn7+/v8/PwzZplkirFli7Hm5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///+1eJgJAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACRSURBVHjaXc2JEoIgEAbgRUQ67FK6rEwTEdf3f7/WnZ1q+mFh+GAWUKCNlaSJUgRmVyBnWJIQ2KLz3jf1FS+rNAEAiyGG8HpW2HfrlCHGGPr2hhTLMCKOg2/u1VmAMktbPwgWG/eTUw50niauebgtONqkeBVw/OgLcs/APeYpPf5+OeagIDuUKCn3hkBn9hOj3wYFFsPJBIaBAAAAAElFTkSuQmCC);}.mf_css{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAzZpmUlJSVlZWZmZkqVH4zZpkvX4/4+Pj5+fn5+fn7+/v8/PwzZplkirFli7Hm5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///+1eJgJAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACNSURBVHjaXc3bDoIwDIDhjm0MFQ8cPKEiyBijvP/72SwNM/5Js/S76ECA1IZTiRAE+lhiaNqQEJhysNZ27R1vW5UAgEHnnfu8GxyHnQrgvXdj/0DKBJgR58l2z+bKgBikb18E2b7+6ZID7csS5wD01utQDCwRovANPkE3/n455yAgLSrkqpMmkKlZ0/IL5Z4WZ+e0150AAAAASUVORK5CYII=);}.mf_csv{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAgVBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAACZmZmUlJSVlZWZmZl+fn6ZmZmPj4/4+Pj5+fn5+fn7+/v8/PyZmZmxsbHm5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz////7VrU3AAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACNSURBVHjaZc2LDoIgFIDhg4B0tVK6WJkmIh7e/wE7slNr9TNgfBsAAqQ2nMqEINC7ElPjkoTAlL1zrm0ueF6pDAAM+uD981Hj0K9VghCCH7orUibBhDiNrr3VJwZqlq65Eyy29qvjBugcY5rzsAVY2nimlcHGH2Ch+I34vlf8/yIgP1TIVXtNIHPzScsXt94WID7+3/QAAAAASUVORK5CYII=);}.mf_deb{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAACZZgCUlJSVlZWZmZl+VACZZgCPXwD4+Pj5+fn5+fn7+/v8/PyZZgCxij6xiz/m5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///9o3RgLAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACPSURBVHjaZc2JEoIgEIDhRUQ6tEO3y8o0EXF5//drI6Zp8meA4RsGQIBUOpYmQjCobUmhccnCoMveGNM2Fzqv0gQANFln7fNR09Cv0wDOOTt0V+J0gIloGk17q08RuLd0zZ1hUeBPxxwK9B55+rDjBvgQBsb1A/EWcrMbszf+fjnkICDbVxSrdopBZvqbki8yUBc22OoLRgAAAABJRU5ErkJggg==);}.mf_diff{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAzZpmUlJSVlZWZmZkqVH4zZpkvX4/4+Pj5+fn5+fn7+/v8/PwzZplkirFli7Hm5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///+1eJgJAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACPSURBVBgZBcExUsMwEADAvZMcewINQyGq8P9v0allJoABSdmNWCUTMOZSyWt5A+Pjb64Stv1ljnGe9+v6nwr1poi15lGff2ZCSiXDtr+XChFilu1zjlcVgkhiFOLYdgDkV91uutYbvdGz7nrr6OhcEqChIQE6OvLUOgB+49h2AMR3xLo8ZQP0cY9YpQSAOR/GcTKGT9w7fQAAAABJRU5ErkJggg==);}.mf_doc{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAAmZmUlJSVlZWZmZkAfn4AmZkAj4/4+Pj5+fn5+fn7+/v8/PwAmZk+sbE/sbHm5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///9DXRlxAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACLSURBVHjahc3ZDoMgEEDRQcDpol3UbrZ1qYg4/v//dSTENO1DL2Eg5wFAgNQYUpEQDHqfkW9YszBg1hljmupG142KAADJOmtfdUl9t1UenHO2b+/EoYeRaBxM8ygvAbhZ2urJsEqLj84JpMU08c1vHjvgc1lz/+Hnja9fTgkIiI85hfKDZpAxLmn5Bgi3FsNZ58xbAAAAAElFTkSuQmCC);}.mf_docx{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAAmZmUlJSVlZWZmZkAfn4AmZkAj4/4+Pj5+fn5+fn7+/v8/PwAmZk+sbE/sbHm5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///9DXRlxAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACOSURBVHjaZY+LDoIwDEU72CgqPnj4QkWQMUb5//+zWxajcprdLifNloKAWGFARkKwUPuCPOOKDQsseq1121zpspYRACAZa8zrWdPQb6QX1lozdDdi0IuJaBp1e6/PQTDOdM2DRbqtvjhlMM/c3eEL1w44QlU+f4SLxcTijb9fjhkISPKSAuVBufUT/KDiN1njF6Cqto7pAAAAAElFTkSuQmCC);}.mf_gif{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAACZmQCUlJSVlZWZmZl+fgCZmQCPjwD4+Pj5+fn5+fn7+/v8/PyZmQCxsT6xsT/m5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///9OLlm4AAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACNSURBVBgZBcExTgMxEADA2bUdnwINojAV/P9bdNciBQhgm5mIXTIBc22VvJYXMN9/1y6h9ac15/1+u+6/pVBfFbH3Ourj90pIqWRo/a1UiBCrtI81n1UIIolZiKN1AORnts4YhjEGK2tnnOCES4IBAyQAJ8g75wDgJ47WARBfEfvykANwzlvELiUArPUPdzEtUeoVt8IAAAAASUVORK5CYII=);}.mf_gz{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAACZZgCUlJSVlZWZmZl+VACZZgCPXwD4+Pj5+fn5+fn7+/v8/PyZZgCxij6xiz/m5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///9o3RgLAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACNSURBVHjaZc3bEoIgEIDhRUA62EntZGWaiLi8//u17jDl1D8Ms/tdAAiQ2sRUIgSB3uXIDUsSApN31tqmvuJlpRIAMOi8c69nhX23Vgzee9e3N6QMw4g4Dra5V+cI1CRt/SBYbMpZpwx4D4FOmKYt8F5+7wiB9xkwcX9v/PxyzEBAeigwVuw1gUzNJy3fypMWIlnpGFAAAAAASUVORK5CYII=);}.mf_h{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAzZpmUlJSVlZWZmZkqVH4zZpkvX4/4+Pj5+fn5+fn7+/v8/PwzZplkirFli7Hm5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///+1eJgJAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACHSURBVBgZBcExTsQwEADA2XV8jg4aRBEq+P+36K5FOiCA18xErJYJmLVs5LW9gPn+W6uFPp5qzvO8X9dfaWyvmlir9u3xuxJSahn6eGsbRIhq/aPmsw2CSGI2Yu8DAPmZfcDhAJU5AIBLAg6ABNwA8gQAfmLvAwDxFbEuD3kAbvMesVoLAFX/LqQp8yOzf7kAAAAASUVORK5CYII=);}.mf_hpp{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAzZpmUlJSVlZWZmZkqVH4zZpkvX4/4+Pj5+fn5+fn7+/v8/PwzZplkirFli7Hm5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///+1eJgJAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACPSURBVBgZBcExTgMxEADA2fU5PgUaRGEq+P+36NwiBQhgm5mIXTIBc20HeS0vYL7/rl1CbU9rzvv9dt1/S+F4VcTe6zwev1dCSiVDbW/lgAixSv1Y89kBQSQxC3HWBoD8zNq6rnd6Z2U2YHRG55Lo6IM+kBgYGJB3AOAnztoAEF8R+/KQHTDmLWKXEgDW+gd5djAhVjbuBwAAAABJRU5ErkJggg==);}.mf_htm{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAzZpmUlJSVlZWZmZkqVH4zZpkvX4/4+Pj5+fn5+fn7+/v8/PwzZplkirFli7Hm5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///+1eJgJAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACOSURBVBgZBcExUsMwEADAvZMVewINQyGq8P9v0allJoABSdmNWCUTMOaykdfyBsbH31wl1P1ljnGe9+v6nwrbTRFrzWN7/pkJKZUMdX8vG0SIWernHK82CCKJUYij7gDIr6w3TWtNa5qZuUPX6a03l6QBgKQDgDwBgN846g6A+I5Yl6dsgD7uEauUADDnAxq5Lk/oBDS6AAAAAElFTkSuQmCC);}.mf_html{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAzZpmUlJSVlZWZmZkqVH4zZpkvX4/4+Pj5+fn5+fn7+/v8/PwzZplkirFli7Hm5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///+1eJgJAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACOSURBVBgZBcExUsMwEADAvZMVewINQyGq8P9v0allJoABSdmNWCUTMOaykdfyBsbH31wl1P1ljnGe9+v6nwrbTRFrzWN7/pkJKZUMdX8vG0SIWernHK82CCKJUYij7gDIr6w3TWtNa5qZuUPX6a03l6QBgKQDgDwBgN846g6A+I5Yl6dsgD7uEauUADDnAxq5Lk/oBDS6AAAAAElFTkSuQmCC);}.mf_ico{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAACZmQCUlJSVlZWZmZl+fgCZmQCPjwD4+Pj5+fn5+fn7+/v8/PyZmQCxsT6xsT/m5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///9OLlm4AAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACLSURBVHjahc3bEoIgEIDhRcDtYCe1k5WHRMT1/d+vhWGapi76B3bguwAQIDXGVCIEg97lFBqXLAyY98aYtr7SZaUSAECyztpnU9HQr1UA55wduhtxGGAimkbT3qtzBM5LVz8YFpvyo1MGfJ95+e1lC6U/zXFy/+Hnja9fjhkISA8FxYq9ZpApvtPyBd1xFlBBEvkSAAAAAElFTkSuQmCC);}.mf_java{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAzZpmUlJSVlZWZmZkqVH4zZpkvX4/4+Pj5+fn5+fn7+/v8/PwzZplkirFli7Hm5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///+1eJgJAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACPSURBVHjaXc2LDoIgFIDhg4B0ESu1m5VpIuLh/d+vM6Rm/bAz+DYGMOBSxUTCGIHcFRga1yQEquiNMW1zxctGJACg0DprX88ah34rAjjn7NDdkFIBJsRpNO29PkdADNI1D4KVrhadMtCVr8KeRw40f9YMPl79BxbPQMdDhPzvl2MGDNJDibFyLwl4qr5J/gZGtRd7aOy9qQAAAABJRU5ErkJggg==);}.mf_jpeg{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAACZmQCUlJSVlZWZmZl+fgCZmQCPjwD4+Pj5+fn5+fn7+/v8/PyZmQCxsT6xsT/m5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///9OLlm4AAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACPSURBVBgZBcExTgMxEADA2fU5PgUaRGEq+P+36NwiBQhgm5mIXTIBc20HeS0vYL7/rl1CbU9rzvv9dt1/S+F4VcTe6zwev1dCSiVDbW/lgAixSv1Y89kBQSQxC3HWBoD8zNroekfvVmYDRtfH4JKAPtCRgAGQd/oAo+MnztoAEF8R+/KQHTDmLWKXEgDW+gdf7TAh9+HjlgAAAABJRU5ErkJggg==);}.mf_jpg{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAACZmQCUlJSVlZWZmZl+fgCZmQCPjwD4+Pj5+fn5+fn7+/v8/PyZmQCxsT6xsT/m5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///9OLlm4AAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACPSURBVBgZBcExTgMxEADA2fU5PgUaRGEq+P+36NwiBQhgm5mIXTIBc20HeS0vYL7/rl1CbU9rzvv9dt1/S+F4VcTe6zwev1dCSiVDbW/lgAixSv1Y89kBQSQxC3HWBoD8zNroekfvVmYDRtfH4JKAPtCRgAGQd/oAo+MnztoAEF8R+/KQHTDmLWKXEgDW+gdf7TAh9+HjlgAAAABJRU5ErkJggg==);}.mf_js{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAzZpmUlJSVlZWZmZkqVH4zZpkvX4/4+Pj5+fn5+fn7+/v8/PwzZplkirFli7Hm5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///+1eJgJAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACNSURBVBgZBcExTgMxEADA2bUdnwINojAV/P9bdNciBQhgm5mIXTIBc22VvJYXMN9/1y6h9ac15/1+u+6/pVBfFbH3Ourj90pIqWRo/a1UiBCrtI81n1UIIolZiKN1AORntg6DMbCydsA4wSUBzgEkgHOAeu8Yp+GEnzhaB0B8RezLQw7AOW8Ru5QAsNY/ecIuFToHoc8AAAAASUVORK5CYII=);}.mf_json{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAzZpmUlJSVlZWZmZkqVH4zZpkvX4/4+Pj5+fn5+fn7+/v8/PwzZplkirFli7Hm5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///+1eJgJAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACSSURBVHjaXc2JDoMgDAbgIiA71G3KLrc5nYhY3//91gA74t+UJh8lAAMuVYxIGCOQuxJ9xjUJgSp7Y0zbXPGyEQkAKLTO2tezxqHfCg/OOTt0N6QoDxPiNJr2Xp8jIHrpmgfBKtd/OWWQ61nrmTqMAmhQ0RkLwtUCqH+Qh7efrWLxyzEDBumhwphqLwl4qr6R/A0ucxc24TsSHgAAAABJRU5ErkJggg==);}.mf_lua{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAzZpmUlJSVlZWZmZkqVH4zZpkvX4/4+Pj5+fn5+fn7+/v8/PwzZplkirFli7Hm5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///+1eJgJAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACNSURBVBgZBcExUsMwEADAvZMVeQINQyEq+P+36NxmJgEDktiNWCUTMOaykdfyBsbn71wl1PYyxzjP+3X9TYXtXRFrzX17/p4JKZUMtX2UDSLELPU2x6sNgkhiFGKvDQD5yNp0uk5nZjYA/ehcEgAdEgAH5Inu6AfwE3ttAIiviHV5yg44xj1ilRIA5vwHLpUtOKOumKMAAAAASUVORK5CYII=);}.mf_mp3{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAAmQCUlJSVlZWZmZkAfgAAmQAAjwD4+Pj5+fn5+fn7+/v8/PwAmQA+sT4/sT/m5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///+Fu/hnAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACRSURBVHjaXc2JDoMgDIDhIiI7dIeyy21OJyKW93+/VdORZT9pAl8IgACpNJcmQhCofYlL45qEQJe9tbZtbnjdpAkAaHTeuferxqHfpgt4793Q3ZHSC0yI02jbR31hoGbpmifBqjA/nXMoQjDBmMCzAxPiMvNE4HME2vON4gv8xt8vpxwEZMcKueqgCGSmY0p+ADg+Fza7o1PlAAAAAElFTkSuQmCC);}.mf_mp4{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAACZAJmUlJSVlZWZmZl+AH6ZAJmPAI/4+Pj5+fn5+fn7+/v8/PyZAJmxPrGxP7Hm5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///982useAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACQSURBVBgZBcExTgMxEADA2fVdLgo0iGKpwv+/RecWKUAA25mJWC0TMOaykZf2BsbH31wt7MfLHON+v13W/9TYrppYa56355+ZkFLLsB/vbYMIMdv+OcerDYJIYjTivB8AyK/cr6WogpqZh1696EVxSoDqqiMBOgp5B6B3fuO8HwCI74h1esoC9HGLWK0FgDkf0fYxODR9v0UAAAAASUVORK5CYII=);}.mf_odc{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAAmZmUlJSVlZWZmZkAfn4AmZkAj4/4+Pj5+fn5+fn7+/v8/PwAmZk+sbE/sbHm5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///9DXRlxAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACISURBVHjahc3ZEoIgGIbhHwFpsU1brUwTEf/u//76ZBinqYNetuE5ABIktYmpRAiA3uQc6ucQgMlba21dXfi8UAkRGXbeueej5K5dqgDee9c1V0YmwMA89La+lacIaJSmugNmq/1Hx4xwf2FihW1NOKcx9h9+3vj65ZCRoHRXcKzYaoBMzZSWbwf/FsPJgGO4AAAAAElFTkSuQmCC);}.mf_odf{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAAmZmUlJSVlZWZmZkAfn4AmZkAj4/4+Pj5+fn5+fn7+/v8/PwAmZk+sbE/sbHm5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///9DXRlxAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACMSURBVHjaZc2JEoIgEIDhRUA6zEo7rTwSEbf3f7/WHcZh6ucY/IYRECC1CalECAK9L5Ab1yQEpuittW19x9tGJQBg0Hnn3k2FQ79VDN57N3QPpAzDhDiNtn1W1wDULF39IljtTlGXDOj7Q5MXbTnQYRlzMbD83Yj+wZD/vHLOQEB6LDFUHjSBTM2Sll8WdhbasocFuAAAAABJRU5ErkJggg==);}.mf_odg{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAAmZmUlJSVlZWZmZkAfn4AmZkAj4/4+Pj5+fn5+fn7+/v8/PwAmZk+sbE/sbHm5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///9DXRlxAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACJSURBVHjabc3pEoIgFIbhg4C02KatVqaJiMf7v78+Gcdpe9mG5weQIKnNmIqEAOhNyqF2DgGYtLbWlsWFzwsVEZFh5517PnJu6qUK4L13TXVlZAJ0zF1ry1t+GgENUhV3wGy1f+uYEO49JlbY1oRzGkMf0P+Dnze+fjkkJCjeZTyWbTVAxmZKyxcWdhbxy+uSowAAAABJRU5ErkJggg==);}.mf_odi{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAAmZmUlJSVlZWZmZkAfn4AmZkAj4/4+Pj5+fn5+fn7+/v8/PwAmZk+sbE/sbHm5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///9DXRlxAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACKSURBVHjahY/bDoIwDEA72KgXvIFXVAQZY9T//z/bZSFGHzxtk/Y8tCkoSA1GdKIUC7MpKDDM2bDAorPWNvWFzgudAACS8849HxX13VIH4b13fXslBoMYicbBNrfqFAUjpq3vLGar/QfHHGR+cUpxuwaZp2D+i58dX1cOOSjIdiVFyq2R9zOcMOkb9g8WlVdNv/QAAAAASUVORK5CYII=);}.mf_odp{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAAmZmUlJSVlZWZmZkAfn4AmZkAj4/4+Pj5+fn5+fn7+/v8/PwAmZk+sbE/sbHm5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///9DXRlxAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACNSURBVHjaXc3bEoIgEIDhRcDtYFZqJyvTRMTt/d+vlWEc6gcu9rtYQIDUGFKJEAx6X5BvXLMwYNEbY9rmRteNSgAAyTpr36+ahn6rPDjn7NDdiUMPE9E0mvZRXwJws3TNk2G1q6LOGfD84RtelcM8L4clBp5/wW+JdnjI/345ZSAgPZYUKg+aQaa4pOUXFO8W2rtQrO8AAAAASUVORK5CYII=);}.mf_ods{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAAmZmUlJSVlZWZmZkAfn4AmZkAj4/4+Pj5+fn5+fn7+/v8/PwAmZk+sbE/sbHm5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///9DXRlxAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACMSURBVHjaXY3ZEoIwDEVTSqkLooIrKouUUuL//5+XTodhONkm5yEhQVLpQBwJAaGOOXuGLQyEzjtjTFM9+bGLIyLSbJ2137rkvtvHXjjnbN++GGgvRuZxMM27vAcBJtNWH4jN4bLglhL2HxLlW0aYc0wsBHIlfM03wp1s9eWakqDkXHCgOCkImegZJf8H6BbDR85zawAAAABJRU5ErkJggg==);}.mf_odt{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAAmZmUlJSVlZWZmZkAfn4AmZkAj4/4+Pj5+fn5+fn7+/v8/PwAmZk+sbE/sbHm5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///9DXRlxAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACLSURBVHjahc3ZEoIgGIbhHwFpMStttXJJRPy7//vri2Eap5NeloHnAEiQ1CamEiEAeltwaFxCAKborbVtfeXLSiVEZNh5555NxUO/VgG8927oboxMgIl5Gm17r84R0Ee6+gFYbA6zThnh/sIMC1tOOMSBif7D7I0A+c8vx4wEpfuSY+VOA2Rqvmn5Bg4EFsPk/fZwAAAAAElFTkSuQmCC);}.mf_ogg{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAAmQCUlJSVlZWZmZkAfgAAmQAAjwD4+Pj5+fn5+fn7+/v8/PwAmQA+sT4/sT/m5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///+Fu/hnAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACMSURBVHgBZc3rEoIgEIbhRUE62CG1Q1amiYjr/d9fX8Q4Tb7MDsPzgyVBsdIhGQkBULuMff0SAtBZa4ypqytfVjIiIs3WWft6lty1a+nBOWe75sZIexiYh97U9/IcAH2kqR6Axab46ZQS3mOBGb+zJdz+eEcTBJ7D7I+/LceUBCWHnEP5XgHiRE+p+A0MOBbaEKLOCwAAAABJRU5ErkJggg==);}.mf_ogv{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAACZAJmUlJSVlZWZmZl+AH6ZAJmPAI/4+Pj5+fn5+fn7+/v8/PyZAJmxPrGxP7Hm5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///982useAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACPSURBVHjaZc3rEoIgEIbhRUE6mJXayco0EXG9//vrixinqXcQlucHkqBY6ZCMhACobc6+YQkB6LwzxjT1hc8rGRGRZuusfT4q7ru19OCcs317ZaQ9jMzjYJpbdQqA3tLWd8BiU351TAn3qcQ34cCQEebPGPYZpn/AQvMbAbKfvxxSEpTsCw4VOwWIEz2n4hcKVRbDgIphDwAAAABJRU5ErkJggg==);}.mf_pas{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAzZpmUlJSVlZWZmZkqVH4zZpkvX4/4+Pj5+fn5+fn7+/v8/PwzZplkirFli7Hm5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///+1eJgJAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACTSURBVHjaXc2JEoIgEIDhRUE6xErtsjJNRFze//1aiZimn+GYbwYABqmQIZ4wRiB2JfqmNQmBLAetddde8bLhCQBINNaY17PBcdhyD9ZaM/Y3pKSHGXGedHdvzgGoRfr2QbBS9U+nHFTtHJ38pKUA2uNYWsDR9EuAz43vPVAR/FvF3y/HHBhkhwpD1V4QpJmMifQNCZ0Ww23Bq94AAAAASUVORK5CYII=);}.mf_pdf{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAABmZmaUlJSVlZWZmZlUVFRmZmZfX1/4+Pj5+fn5+fn7+/v8/PxmZmaKioqLi4vm5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz////WBPdaAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACQSURBVBgZBcExTgMxEADA2fU5PgUaRGEq+P+36NwiBQhgm5mIXTIBc20HeS0vYL7/rl1CbU9rzvv9dt1/S+F4VcTe6zwev1dCSiVDbW/lgAixSv1Y89kBQSQxC3HWBoD8PGrrhm7ojJXZGJ3RGYNLog+gQ2IABuQd6AP4ibM2AMRXxL48ZAeMeYvYpQSAtf4BGyczgtpbtDIAAAAASUVORK5CYII=);}.mf_php{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAzZpmUlJSVlZWZmZkqVH4zZpkvX4/4+Pj5+fn5+fn7+/v8/PwzZplkirFli7Hm5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///+1eJgJAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACPSURBVBgZBcExTgMxEADA2fU5PgUaRGEq+P+36NwiBQhgm5mIXTIBc20HeS0vYL7/rl1CbU9rzvv9dt1/S+F4VcTe6zwev1dCSiVDbW/lgAixSv1Y89kBQSQxC3HWBoD8zNp6p+t6Z2U2RgdG55Log44+kBgYGJB3AOAnztoAEF8R+/KQHTDmLWKXEgDW+geBGjAhZ/XNiQAAAABJRU5ErkJggg==);}.mf_pl{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAzZpmUlJSVlZWZmZkqVH4zZpkvX4/4+Pj5+fn5+fn7+/v8/PwzZplkirFli7Hm5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///+1eJgJAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACLSURBVBgZBcExUsMwEADAvZMVeQINQyEq+P+36NxmJgEDktiNWCUTMOaykdfyBsbn71wl1PYyxzjP+3X9TYXtXRFrzX17/p4JKZUMtX2UDSLELPU2x6sNgkhiFGKvDQD5yNrQOx1mZgNHB1wS6AdAAgeAPAF0+Im9NgDEV8S6PGUHHOMesUoJAHP+AwXgLAr8fJP1AAAAAElFTkSuQmCC);}.mf_png{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAACZmQCUlJSVlZWZmZl+fgCZmQCPjwD4+Pj5+fn5+fn7+/v8/PyZmQCxsT6xsT/m5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///9OLlm4AAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACOSURBVHjaVc3ZDoMgEEDRQUS6aBelm22tVkQc/v//OhBC6p0AyXkYgAEXMpZnjBGIY42heUtCIOtRa913D7zv8gwAJBprzPfT4jTu8wDWWjMNT6RkgAVxmXX/am8RKC9D9ybYVOqvawmVck6FE64D0JvG58EljKBWUCWIO9a/XEpgUJwbjDUnQcALmRL8BxtQFvFpmdeOAAAAAElFTkSuQmCC);}.mf_ppt{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAAmZmUlJSVlZWZmZkAfn4AmZkAj4/4+Pj5+fn5+fn7+/v8/PwAmZk+sbE/sbHm5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///9DXRlxAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACOSURBVHjaXc2JDoIwDIDhjm3Mg6ECXqgcMsYo7/9+Nktj0H9Hmi9LBgKkNpxKhCDQhwJj05aEwBSDc65r7njbqQQADPrg/butcRz2KkIIwY/9AykTYUacJ9c96ysDYpS+eRFsbLXqkoGtlqXiQ1cONPCiTRHwixXwzGB/If/75ZyBgPRUIlceNYFMzTctPwbUFpX4yNz1AAAAAElFTkSuQmCC);}.mf_pptx{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAAmZmUlJSVlZWZmZkAfn4AmZkAj4/4+Pj5+fn5+fn7+/v8/PwAmZk+sbE/sbHm5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///9DXRlxAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACOSURBVHjaXY2LDoIwDEU7tjEfiArzhYogY4zy//9n0yyL4dw+kpMmBQFSm4jKhCChjxUy05YMCVMNzrmufeB9pzIAMOiD999Pg+OwVyxCCH7sn0gYFjPiPLnu1dyiQGTTt28Sm4P941rAsljLTYNSAg0OFyVd2NgQd7pYi3L15VKAgPxcY6Q+aRIyNwktf1ekF3KNxyMhAAAAAElFTkSuQmCC);}.mf_ps{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAABmZmaUlJSVlZWZmZlUVFRmZmZfX1/4+Pj5+fn5+fn7+/v8/PxmZmaKioqLi4vm5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz////WBPdaAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACQSURBVHgBXc0LD4IgEMDxQ0F6mJXaIyvTRMTj+3+/jsfK9We7jd9uAAxSIWM8YYxA7Ev0TWsSAlkOSqmuveF1wxMAkKiN1u9Xg+Ow5R6MMXrs70hJDzPiPKnu0VwiUE769kmw2tWLzjm4u7VhUAW4af0JBfAbS6h/M7wRt6ji75dTDgyyY4Wx6iAI0kx+E+kHt/oV3fRIhzYAAAAASUVORK5CYII=);}.mf_py{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAzZpmUlJSVlZWZmZkqVH4zZpkvX4/4+Pj5+fn5+fn7+/v8/PwzZplkirFli7Hm5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///+1eJgJAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACNSURBVBgZBcExTsQwEADA2XV8jg4aBJKp4P/fokuLdEAA2zcTsUomYMxlI6/lFYyPv7lKqO1pjnGet+v6nwrbmyLWmvv2+DMTUioZansvG0SIWernHM82CCKJUYi9NgDkV9ZG73QdM7PB0QEu8YLuoB8gwQFAngDAb+y1ASC+I9blITvgGLeIVUoAmPMOcdYtHctHeLIAAAAASUVORK5CYII=);}.mf_rar{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAACZZgCUlJSVlZWZmZl+VACZZgCPXwD4+Pj5+fn5+fn7+/v8/PyZZgCxij6xiz/m5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///9o3RgLAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACQSURBVHjaZc2LDoIgFIDhg4B0USu1m5VpIuLh/d+vA2Ouy88YZx9sAAMuVUwkjBHIXYmhaU1CoMpBa921V7xsRAIACo015vVscBy2IoC11oz9DSkVYEacJ93dm3MEykvfPghWef3RKYO8do4m2uEsgIZlefEQbp0/qf8X+TcUP78cM2CQHiqMVXtJwFO1JPkbLuYXNikSVMcAAAAASUVORK5CYII=);}.mf_rb{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAzZpmUlJSVlZWZmZkqVH4zZpkvX4/4+Pj5+fn5+fn7+/v8/PwzZplkirFli7Hm5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///+1eJgJAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACOSURBVHgBZc3pEoIgEMDxRUA6tEPpyMo0EXF9//drIWo6/gwf+M0OCwy4VDGRMEYg1wWGhjkJgSo6Y0xTn/C4EAkAKLTO2vutwr5bigDOOdu3Z6RUgBFxHExzqQ4RfCRtfSWY5fqjfQb+PU3PS61Ae4jHR/A1of8n8givP3627DJgkG5LjJUbScBT9U7yB92IFlCum6zJAAAAAElFTkSuQmCC);}.mf_rpm{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAACZZgCUlJSVlZWZmZl+VACZZgCPXwD4+Pj5+fn5+fn7+/v8/PyZZgCxij6xiz/m5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///9o3RgLAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACNSURBVHjaXc3ZFoIgEIDhQUBa1Epps3JJRBzf//2aw6Gi/jnMxTcXAAMuVUgkjBHIXYm+aU1CoMrBGNM1V7xsRAIACq2z9tnWOA5b4cE5Z8f+hpTyMCPOk+nu9TkAope+eRCsch11yiBfFq3Do10A7Xg0vK8R+PlC/gvF3y/HDBikhwpD1V4S8FR9kvwFUA0Xe2kW3HcAAAAASUVORK5CYII=);}.mf_rtf{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAAmZmUlJSVlZWZmZkAfn4AmZkAj4/4+Pj5+fn5+fn7+/v8/PwAmZk+sbE/sbHm5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///9DXRlxAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACPSURBVBgZBcExTgMxEADA2fU5PgUaRGEq+P+36NwiBQhgm5mIXTIBc20HeS0vYL7/rl1CbU9rzvv9dt1/S+F4VcTe6zwev1dCSiVDbW/lgAixSv1Y89kBQSQxC3HWBoD8PGrrhs7ojJXZGN0wGINLog+gQ2J0YEDeAYCfOGsDQHxF7MtDdsCYt4hdSgBY6x9BfDNrMYRJ5gAAAABJRU5ErkJggg==);}.mf_sh{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAzZpmUlJSVlZWZmZkqVH4zZpkvX4/4+Pj5+fn5+fn7+/v8/PwzZplkirFli7Hm5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///+1eJgJAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACOSURBVBgZBcExTgMxEADA2bUdnwINojAV/P9bdNciBQhgm5mIXTIBc22VvJYXMN9/1y6h9ac15/1+u+6/pVBfFbH3Ourj90pIqWRo/a1UiBCrtI81n1UIIolZiKN1AORnto4xDAMra8c4AVwSzoEBJDgHJ1DvneEE+ImjdQDEV8S+POQAnPMWsUsJAGv9A6T3LixCBrmLAAAAAElFTkSuQmCC);}.mf_sql{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAgVBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAACZmZmUlJSVlZWZmZl+fn6ZmZmPj4/4+Pj5+fn5+fn7+/v8/PyZmZmxsbHm5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz////7VrU3AAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACPSURBVHjaTc3bEoIgEIDhRUQ6qaV2sDJNRFze/wFbdpj0hx1mvxtAgFQ6liZCEKiyQm7ekxDoajTG9N0D74c0AQCN1ln7/bQ4jceUwTlnp+GJlGZYEJfZ9K/2FoEKMnRvgl3ebLqeIOze0/BtCgh7GD4UAcsWWFbIafVs/BbrLz7+IiC71Birz4pAZvqfkj+rPBYgDgv2twAAAABJRU5ErkJggg==);}.mf_swf{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAACZAACUlJSVlZWZmZl+AACZAACPAAD4+Pj5+fn5+fn7+/v8/PyZAACxPj6xPz/m5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///+6PAoIAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACSSURBVHjaXc3bEoIgEIDhRUQ6iJXSyco0EXF9//drZZBp+rlhv1kGYMCFDKUJYwTiUKJv3JIQyLI3xrTNHW+7NAEAidZZ+3nXOPT71INzzg7dAynpYUKcRtM+62sAapGueRFslP7pkoPS86zDoVsBdNF6JQqWKW54CGPcUPP6xkPx98s5BwbZqcJQdRQEPJMxwb8yORcf5PtSuAAAAABJRU5ErkJggg==);}.mf_sxc{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAAmZmUlJSVlZWZmZkAfn4AmZkAj4/4+Pj5+fn5+fn7+/v8/PwAmZk+sbE/sbHm5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///9DXRlxAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACQSURBVHjaXc3pEoIgFIbhg4i0aIvaZuWSiHi8//vri2Gs6eUHw3MGIEFS6VAcCQFQ+5x94xoC0HlvjGnrG183cUREmq2z9tVUPPTb2INzzg7dnZH2MDFPo2kf1SUA+khXPwGrrPzpnBLO81xi+b3cEXZMAiFAkAWWeYDMX/2+8ffLKSVBybHgUHFQAJnoJSXf9oIWldwE9NgAAAAASUVORK5CYII=);}.mf_sxd{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAAmZmUlJSVlZWZmZkAfn4AmZkAj4/4+Pj5+fn5+fn7+/v8/PwAmZk+sbE/sbHm5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///9DXRlxAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACQSURBVHjaXc3bEoIgEIDhRUA6aAe1k5VpIuLy/u/Xzg4TTT8XwMcAIEBqE1OZEAR6XyE3r0kITDVaa/vuhteNygDAoPPOvV8tTuNWMXjv3TTckTIMC+Iy2/7RXiIgsgzdk2BVNj+dC6B9CA2PQLID2tPMwCuCKAnSOUPJd9Mbf7+cChCQH2uM1QdNIHPzTcsPDuoW2hcHNPEAAAAASUVORK5CYII=);}.mf_sxi{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAAmZmUlJSVlZWZmZkAfn4AmZkAj4/4+Pj5+fn5+fn7+/v8/PwAmZk+sbE/sbHm5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///9DXRlxAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACQSURBVHgBXc2JDoIwDIDhDhjzAA/AQ1QEGWOU938/u6YR49+Q0I+kgIJYGymJlCLQ+wK5cU1CYIreWts2N7xukggADDrv3PtV49BvEwbvvRu6O1KGYUKcRts+6osAFaRrngSrvPrpnEHY57niodcdhJ2fMFQAkQXku0DOJ5Ybf385ZaAgPZYolQdNEKfmm44/5M8WZ5t1w/gAAAAASUVORK5CYII=);}.mf_sxw{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAAmZmUlJSVlZWZmZkAfn4AmZkAj4/4+Pj5+fn5+fn7+/v8/PwAmZk+sbE/sbHm5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///9DXRlxAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACPSURBVHjaXc3bDoMgDIDhIiA7qNuUndzmYSJief/3W0OImv1Nmua7KTDgUsVEwhiBPJUYmvYkBKocjDFd88THQSQAoNA6a79tjeNwFAGcc3bsX0ipADPiPJnuXd8jIAbpmw/BLtebbhnk2nu9TgG09AY06CgrxHOB3PtAcRV/X64ZMEgvFcaqsyTgqVqS/Aczkhc2+6BxjgAAAABJRU5ErkJggg==);}.mf_tar{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAACZZgCUlJSVlZWZmZl+VACZZgCPXwD4+Pj5+fn5+fn7+/v8/PyZZgCxij6xiz/m5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///9o3RgLAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACQSURBVBgZBcExTsQwEADA2XVyiQ4aRLFU8P9v0blFOuAA28xErJYJGHPZyGt7AeP9d64W9uNpjnG/367rb2psr5pYa57b4/dMSKll2I+3tkGEmG3/mOPZBkEkMRpx7gcA8jP3o6ooqpiZh66rXvTikoBCdSSgoxfyDgD8xLkfAIiviHV5yAL0cYtYrQWAOf8BtG0wOGBUSrIAAAAASUVORK5CYII=);}.mf_tgz{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAACZZgCUlJSVlZWZmZl+VACZZgCPXwD4+Pj5+fn5+fn7+/v8/PyZZgCxij6xiz/m5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///9o3RgLAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACQSURBVHgBVc2JDoMgDIDhoiI7dIeyY25zOhGxvP/7ranEsD+kJF8IBQGpVKEsEYJAHivkpi0JgaoGY0zXPvC+yxIAUGidtd9Pg+Owzxicc3bsn0gphhlxnkz3am4BEFn69k2wKXXUtYBSe+81jeU+ALHno5e5QtAIwisoGaI//rdcChCQn2sM1SdJkOZqTaY/CyQWw//eXYwAAAAASUVORK5CYII=);}.mf_txt{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAgVBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAACZmZmUlJSVlZWZmZl+fn6ZmZmPj4/4+Pj5+fn5+fn7+/v8/PyZmZmxsbHm5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz////7VrU3AAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACNSURBVHjaZc0ND4IgEIDhQ0C0wkrpw8o0EfH4/z+wG7FW84WD7RkbwIBLlRIZYwRyX2NsLkkIVD1aa/vuipeNyABAofPOvZ4tTuNWRPDeu2m4IaUiLIjLbPt7e06AGGXoHgSFNj+ddqBNCMHQirepgDjQ/hxUgjTU+oX+h2r9C4P82GCqOUgCnqtvkr8Bx4IWNhl/XsoAAAAASUVORK5CYII=);}.mf_wav{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAAmQCUlJSVlZWZmZkAfgAAmQAAjwD4+Pj5+fn5+fn7+/v8/PwAmQA+sT4/sT/m5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///+Fu/hnAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACOSURBVHjaXc2JDoMgDIDhIiA71G3KLrc5nYhY3//9Vglhx1+Ski8hAAMuVUgkjBHIXYm+cU1CoMreGNM2V7xsRAIACq2z9vWscei3woNzzg7dDSnlYUKcRtPe63MAapGueRCscv3VKYN81sv4Q1OAX5/REeYfiM8Icn+PUPz9csyAQXqoMFTtJQFPVUzyN0ebF2R4ZiSEAAAAAElFTkSuQmCC);}.mf_webm{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAACZAJmUlJSVlZWZmZl+AH6ZAJmPAI/4+Pj5+fn5+fn7+/v8/PyZAJmxPrGxP7Hm5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///982useAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACRSURBVHgBXc2JDoIwDIDhDjbmAR4wD1ERZIxR3v/97GZjDH9DSD/IBgJSpTmZCEGg9iXGxjUJgS57a23b3PC6kQkAaHTeuferxqHfygjeezd0d6R0hAlxGm37qC8MVJCueRKsCvPXOYfZ0MzhMSa8vmBo4YnAXxmWfxS08RkBdotbTjkIyI4VctVBEaSZ/qXSD5IIGCm2cUO0AAAAAElFTkSuQmCC);}.mf_xls{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAAmZmUlJSVlZWZmZkAfn4AmZkAj4/4+Pj5+fn5+fn7+/v8/PwAmZk+sbE/sbHm5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///9DXRlxAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACRSURBVHjaXc+JEoIgEAbgVUE67FK7rDwSEbf3f79+iaGmnx2Y/YZZBoookcpHxFEEkLucXcYlBKDyXmvd1le+rERMRIqNNebZVDz0a+HAWmuG7saIcjAxT6Nu79XZAzJLVz8Ai035k1NG6F9u4cS2pTIACpnh03n53vASZrjCjL9Xjhn+kh4K9in2EpCkKkQmb+q9Fn7tTGMlAAAAAElFTkSuQmCC);}.mf_xlsx{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAAmZmUlJSVlZWZmZkAfn4AmZkAj4/4+Pj5+fn5+fn7+/v8/PwAmZk+sbE/sbHm5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///9DXRlxAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACSSURBVHjaXY2LDoMgDEWLgOyheyh7uc3pRMT6//+3piNk2aFNLidNCwKkNhGVCUFC7ytkpjUZEqYanHNde8PrRmUAYNAH79+vBsdhq1iEEPzY35EwLGbEeXLdo7lEgcimb58kVqX94VxAuVh6lBcOO7BRUHEA+/2lThM2hriDi3f8XTkVICA/1hipD5qEzE1Cyw816BdN8Suc7AAAAABJRU5ErkJggg==);}.mf_xml{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAACZAACUlJSVlZWZmZl+AACZAACPAAD4+Pj5+fn5+fn7+/v8/PyZAACxPj6xPz/m5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///+6PAoIAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACPSURBVBgZBcExTsQwEADA2XV8iQ4aRLFU8P9v0aVFOuAA28xErJYJGHPZyGt7AeP9d64W+v40x7jfb9f1NzW2V02sNY/t8XsmpNQy9P2tbRAhZusfczzbIIgkRiOOvgMgP7PvpVQpyszcgbPOgkty1gmApM4CQN4BoPzE0XcAxFfEujxkAc5xi1itBYA5/wECji5mbbd2fAAAAABJRU5ErkJggg==);}.mf_zip{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAhFBMVEUAAAD///8AAAAAAAAAAAAAAAAAAAAAAACZZgCUlJSVlZWZmZl+VACZZgCPXwD4+Pj5+fn5+fn7+/v8/PyZZgCxij6xiz/m5ubn5+fp6enq6urr6+vs7Ozt7e3v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn7+/v8/Pz///9o3RgLAAAAFHRSTlMAAAIcIDI0Nn6RkZGbv83x8/X9/b9Y2vAAAACQSURBVBgZBcExTsQwEADA2XVyiQ4aRLFU8P9v0blFOuAA28xErJYJGHPZyGt7AeP9d64W9uNpjnG/367rb2psr5pYa57b4/dMSKll2I+3tkGEmG3/mOPZBkEkMRpx7gcA8jP3Q1UpVZiZB72DXrgkVIfqkKgOOsg7qgD8xLkfAIiviHV5yAL0cYtYrQWAOf8Bo8cwOFk9D0UAAAAASUVORK5CYII=);}}@media screen{div.error,div.info,div.success,div.notify{color:#000;background-repeat:no-repeat;background-position:8px 50%;border:1px solid;font-size:90%;margin:0 0 .5em;padding:.4em;padding-left:32px;overflow:hidden;border-radius:5px;}[dir=rtl] div.error,[dir=rtl] div.info,[dir=rtl] div.success,[dir=rtl] div.notify{background-position:99% 50%;padding-left:.4em;padding-right:32px;}div.error{background-color:#fcc;background-image:url(/wiki/lib/styles/../images/error.png);border-color:#ebb;}div.info{background-color:#ccf;background-image:url(/wiki/lib/styles/../images/info.png);border-color:#bbe;}div.success{background-color:#cfc;background-image:url(/wiki/lib/styles/../images/success.png);border-color:#beb;}div.notify{background-color:#ffc;background-image:url(/wiki/lib/styles/../images/notify.png);border-color:#eeb;}.JSpopup,#link__wiz{position:absolute;background-color:#fff;color:#000;z-index:20;overflow:hidden;}#link__wiz .ui-dialog-content{padding-left:0;padding-right:0;}#media__popup_content button.button{border:1px outset;}#media__popup_content button.selected{border-style:inset;}.a11y{position:absolute !important;left:-99999em !important;top:auto !important;width:1px !important;height:1px !important;overflow:hidden !important;}[dir=rtl] .a11y{left:auto !important;right:-99999em !important;}.code .co0{color:#666;font-style:italic;}.code .co4{color:#c00;font-style:italic;}.code .es5{color:#069;font-weight:bold;}.code .es6{color:#093;font-weight:bold;}.code .kw2{color:#000;font-weight:bold;}.code .kw5{color:#008000;}.code .kw6{color:#f08;font-weight:bold;}.code .me0{color:#004000;}.code .nu0{color:#c6c;}.code .re0{color:#00f;}.code .re3{color:#f33;font-weight:bold;}.code .re4{color:#099;}.code .re5{color:#603;}.code .re7{color:#911;}.code .re8{color:#00b000;}.code .sc-2{color:#404040;}.code .sy3{color:#000040;}.code .br0,.code .sy0{color:#6c6;}.code .co1,.code .coMULTI,.code .sc-1{color:#808080;font-style:italic;}.code .co2,.code .sy1{color:#393;}.code .co3,.code .sy4{color:#008080;}.code .es0,.code .es1,.code .esHARD{color:#009;font-weight:bold;}.code .es2,.code .es3,.code .es4{color:#609;font-weight:bold;}.code .kw1,.code .kw8{color:#b1b100;}.code .kw10,.code .kw11,.code .kw12,.code .kw9{color:#039;font-weight:bold;}.code .kw13,.code .kw14,.code .kw15,.code .kw16,.code .me1,.code .me2{color:#060;}.code .kw3,.code .kw7,.code .sy2{color:#006;}.code .kw4,.code .re2{color:#933;}.code .re1,.code .st0,.code .st_h{color:#f00;}.code li,.code .li1{font-weight:normal;vertical-align:top;}.code .ln-xtra{background-color:#ffc;}.ui-helper-hidden{display:none;}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none;}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse;}.ui-helper-clearfix:after{clear:both;}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0);}.ui-front{z-index:100;}.ui-state-disabled{cursor:default !important;pointer-events:none;}.ui-icon{display:inline-block;vertical-align:middle;margin-top:-0.25em;position:relative;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat;}.ui-widget-icon-block{left:50%;margin-left:-8px;display:block;}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%;}.ui-accordion .ui-accordion-header{display:block;cursor:pointer;position:relative;margin:2px 0 0 0;padding:.5em .5em .5em .7em;font-size:100%;}.ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;overflow:auto;}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default;}.ui-menu{list-style:none;padding:0;margin:0;display:block;outline:0;}.ui-menu .ui-menu{position:absolute;}.ui-menu .ui-menu-item{margin:0;cursor:pointer;list-style-image:url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7");}.ui-menu .ui-menu-item-wrapper{position:relative;padding:3px 1em 3px .4em;}.ui-menu .ui-menu-divider{margin:5px 0;height:0;font-size:0;line-height:0;border-width:1px 0 0 0;}.ui-menu .ui-state-focus,.ui-menu .ui-state-active{margin:-1px;}.ui-menu-icons{position:relative;}.ui-menu-icons .ui-menu-item-wrapper{padding-left:2em;}.ui-menu .ui-icon{position:absolute;top:0;bottom:0;left:.2em;margin:auto 0;}.ui-menu .ui-menu-icon{left:auto;right:0;}.ui-button{padding:.4em 1em;display:inline-block;position:relative;line-height:normal;margin-right:.1em;cursor:pointer;vertical-align:middle;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;overflow:visible;}.ui-button,.ui-button:link,.ui-button:visited,.ui-button:hover,.ui-button:active{text-decoration:none;}.ui-button-icon-only{width:2em;box-sizing:border-box;text-indent:-9999px;white-space:nowrap;}input.ui-button.ui-button-icon-only{text-indent:0;}.ui-button-icon-only .ui-icon{position:absolute;top:50%;left:50%;margin-top:-8px;margin-left:-8px;}.ui-button.ui-icon-notext .ui-icon{padding:0;width:2.1em;height:2.1em;text-indent:-9999px;white-space:nowrap;}input.ui-button.ui-icon-notext .ui-icon{width:auto;height:auto;text-indent:0;white-space:normal;padding:.4em 1em;}input.ui-button::-moz-focus-inner,button.ui-button::-moz-focus-inner{border:0;padding:0;}.ui-controlgroup{vertical-align:middle;display:inline-block;}.ui-controlgroup > .ui-controlgroup-item{float:left;margin-left:0;margin-right:0;}.ui-controlgroup > .ui-controlgroup-item:focus,.ui-controlgroup > .ui-controlgroup-item.ui-visual-focus{z-index:9999;}.ui-controlgroup-vertical > .ui-controlgroup-item{display:block;float:none;width:100%;margin-top:0;margin-bottom:0;text-align:left;}.ui-controlgroup-vertical .ui-controlgroup-item{box-sizing:border-box;}.ui-controlgroup .ui-controlgroup-label{padding:.4em 1em;}.ui-controlgroup .ui-controlgroup-label span{font-size:80%;}.ui-controlgroup-horizontal .ui-controlgroup-label + .ui-controlgroup-item{border-left:none;}.ui-controlgroup-vertical .ui-controlgroup-label + .ui-controlgroup-item{border-top:none;}.ui-controlgroup-horizontal .ui-controlgroup-label.ui-widget-content{border-right:none;}.ui-controlgroup-vertical .ui-controlgroup-label.ui-widget-content{border-bottom:none;}.ui-controlgroup-vertical .ui-spinner-input{width:75%;width:calc(97.6%);}.ui-controlgroup-vertical .ui-spinner .ui-spinner-up{border-top-style:solid;}.ui-checkboxradio-label .ui-icon-background{box-shadow:inset 1px 1px 1px #ccc;border-radius:.12em;border:none;}.ui-checkboxradio-radio-label .ui-icon-background{width:16px;height:16px;border-radius:1em;overflow:visible;border:none;}.ui-checkboxradio-radio-label.ui-checkboxradio-checked .ui-icon,.ui-checkboxradio-radio-label.ui-checkboxradio-checked:hover .ui-icon{background-image:none;width:8px;height:8px;border-width:4px;border-style:solid;}.ui-checkboxradio-disabled{pointer-events:none;}.ui-datepicker{width:17em;padding:.2em .2em 0;display:none;}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0;}.ui-datepicker .ui-datepicker-prev,.ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em;}.ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-datepicker-next-hover{top:1px;}.ui-datepicker .ui-datepicker-prev{left:2px;}.ui-datepicker .ui-datepicker-next{right:2px;}.ui-datepicker .ui-datepicker-prev-hover{left:1px;}.ui-datepicker .ui-datepicker-next-hover{right:1px;}.ui-datepicker .ui-datepicker-prev span,.ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px;}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center;}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0;}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:45%;}.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em;}.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:bold;border:0;}.ui-datepicker td{border:0;padding:1px;}.ui-datepicker td span,.ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none;}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0;}.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible;}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left;}.ui-datepicker.ui-datepicker-multi{width:auto;}.ui-datepicker-multi .ui-datepicker-group{float:left;}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em;}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%;}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%;}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%;}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0;}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left;}.ui-datepicker-row-break{clear:both;width:100%;font-size:0;}.ui-datepicker-rtl{direction:rtl;}.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto;}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto;}.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto;}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto;}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right;}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left;}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,.ui-datepicker-rtl .ui-datepicker-group{float:right;}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px;}.ui-datepicker .ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat;left:.5em;top:.3em;}.ui-dialog{position:absolute;top:0;left:0;padding:.2em;outline:0;}.ui-dialog .ui-dialog-titlebar{padding:.4em 1em;position:relative;}.ui-dialog .ui-dialog-title{float:left;margin:.1em 0;white-space:nowrap;width:90%;overflow:hidden;text-overflow:ellipsis;}.ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:20px;margin:-10px 0 0 0;padding:1px;height:20px;}.ui-dialog .ui-dialog-content{position:relative;border:0;padding:.5em 1em;background:none;overflow:auto;}.ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin-top:.5em;padding:.3em 1em .5em .4em;}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right;}.ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer;}.ui-dialog .ui-resizable-n{height:2px;top:0;}.ui-dialog .ui-resizable-e{width:2px;right:0;}.ui-dialog .ui-resizable-s{height:2px;bottom:0;}.ui-dialog .ui-resizable-w{width:2px;left:0;}.ui-dialog .ui-resizable-se,.ui-dialog .ui-resizable-sw,.ui-dialog .ui-resizable-ne,.ui-dialog .ui-resizable-nw{width:7px;height:7px;}.ui-dialog .ui-resizable-se{right:0;bottom:0;}.ui-dialog .ui-resizable-sw{left:0;bottom:0;}.ui-dialog .ui-resizable-ne{right:0;top:0;}.ui-dialog .ui-resizable-nw{left:0;top:0;}.ui-draggable .ui-dialog-titlebar{cursor:move;}.ui-draggable-handle{-ms-touch-action:none;touch-action:none;}.ui-resizable{position:relative;}.ui-resizable-handle{position:absolute;font-size:.1px;display:block;-ms-touch-action:none;touch-action:none;}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none;}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0;}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0;}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%;}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%;}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px;}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px;}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px;}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px;}.ui-progressbar{height:2em;text-align:left;overflow:hidden;}.ui-progressbar .ui-progressbar-value{margin:-1px;height:100%;}.ui-progressbar .ui-progressbar-overlay{background:url("data:image/gif;base64,R0lGODlhKAAoAIABAAAAAP///yH/C05FVFNDQVBFMi4wAwEAAAAh+QQJAQABACwAAAAAKAAoAAACkYwNqXrdC52DS06a7MFZI+4FHBCKoDeWKXqymPqGqxvJrXZbMx7Ttc+w9XgU2FB3lOyQRWET2IFGiU9m1frDVpxZZc6bfHwv4c1YXP6k1Vdy292Fb6UkuvFtXpvWSzA+HycXJHUXiGYIiMg2R6W459gnWGfHNdjIqDWVqemH2ekpObkpOlppWUqZiqr6edqqWQAAIfkECQEAAQAsAAAAACgAKAAAApSMgZnGfaqcg1E2uuzDmmHUBR8Qil95hiPKqWn3aqtLsS18y7G1SzNeowWBENtQd+T1JktP05nzPTdJZlR6vUxNWWjV+vUWhWNkWFwxl9VpZRedYcflIOLafaa28XdsH/ynlcc1uPVDZxQIR0K25+cICCmoqCe5mGhZOfeYSUh5yJcJyrkZWWpaR8doJ2o4NYq62lAAACH5BAkBAAEALAAAAAAoACgAAAKVDI4Yy22ZnINRNqosw0Bv7i1gyHUkFj7oSaWlu3ovC8GxNso5fluz3qLVhBVeT/Lz7ZTHyxL5dDalQWPVOsQWtRnuwXaFTj9jVVh8pma9JjZ4zYSj5ZOyma7uuolffh+IR5aW97cHuBUXKGKXlKjn+DiHWMcYJah4N0lYCMlJOXipGRr5qdgoSTrqWSq6WFl2ypoaUAAAIfkECQEAAQAsAAAAACgAKAAAApaEb6HLgd/iO7FNWtcFWe+ufODGjRfoiJ2akShbueb0wtI50zm02pbvwfWEMWBQ1zKGlLIhskiEPm9R6vRXxV4ZzWT2yHOGpWMyorblKlNp8HmHEb/lCXjcW7bmtXP8Xt229OVWR1fod2eWqNfHuMjXCPkIGNileOiImVmCOEmoSfn3yXlJWmoHGhqp6ilYuWYpmTqKUgAAIfkECQEAAQAsAAAAACgAKAAAApiEH6kb58biQ3FNWtMFWW3eNVcojuFGfqnZqSebuS06w5V80/X02pKe8zFwP6EFWOT1lDFk8rGERh1TTNOocQ61Hm4Xm2VexUHpzjymViHrFbiELsefVrn6XKfnt2Q9G/+Xdie499XHd2g4h7ioOGhXGJboGAnXSBnoBwKYyfioubZJ2Hn0RuRZaflZOil56Zp6iioKSXpUAAAh+QQJAQABACwAAAAAKAAoAAACkoQRqRvnxuI7kU1a1UU5bd5tnSeOZXhmn5lWK3qNTWvRdQxP8qvaC+/yaYQzXO7BMvaUEmJRd3TsiMAgswmNYrSgZdYrTX6tSHGZO73ezuAw2uxuQ+BbeZfMxsexY35+/Qe4J1inV0g4x3WHuMhIl2jXOKT2Q+VU5fgoSUI52VfZyfkJGkha6jmY+aaYdirq+lQAACH5BAkBAAEALAAAAAAoACgAAAKWBIKpYe0L3YNKToqswUlvznigd4wiR4KhZrKt9Upqip61i9E3vMvxRdHlbEFiEXfk9YARYxOZZD6VQ2pUunBmtRXo1Lf8hMVVcNl8JafV38aM2/Fu5V16Bn63r6xt97j09+MXSFi4BniGFae3hzbH9+hYBzkpuUh5aZmHuanZOZgIuvbGiNeomCnaxxap2upaCZsq+1kAACH5BAkBAAEALAAAAAAoACgAAAKXjI8By5zf4kOxTVrXNVlv1X0d8IGZGKLnNpYtm8Lr9cqVeuOSvfOW79D9aDHizNhDJidFZhNydEahOaDH6nomtJjp1tutKoNWkvA6JqfRVLHU/QUfau9l2x7G54d1fl995xcIGAdXqMfBNadoYrhH+Mg2KBlpVpbluCiXmMnZ2Sh4GBqJ+ckIOqqJ6LmKSllZmsoq6wpQAAAh+QQJAQABACwAAAAAKAAoAAAClYx/oLvoxuJDkU1a1YUZbJ59nSd2ZXhWqbRa2/gF8Gu2DY3iqs7yrq+xBYEkYvFSM8aSSObE+ZgRl1BHFZNr7pRCavZ5BW2142hY3AN/zWtsmf12p9XxxFl2lpLn1rseztfXZjdIWIf2s5dItwjYKBgo9yg5pHgzJXTEeGlZuenpyPmpGQoKOWkYmSpaSnqKileI2FAAACH5BAkBAAEALAAAAAAoACgAAAKVjB+gu+jG4kORTVrVhRlsnn2dJ3ZleFaptFrb+CXmO9OozeL5VfP99HvAWhpiUdcwkpBH3825AwYdU8xTqlLGhtCosArKMpvfa1mMRae9VvWZfeB2XfPkeLmm18lUcBj+p5dnN8jXZ3YIGEhYuOUn45aoCDkp16hl5IjYJvjWKcnoGQpqyPlpOhr3aElaqrq56Bq7VAAAOw==");height:100%;filter:alpha(opacity=25);opacity:0.25;}.ui-progressbar-indeterminate .ui-progressbar-value{background-image:none;}.ui-selectable{-ms-touch-action:none;touch-action:none;}.ui-selectable-helper{position:absolute;z-index:100;border:1px dotted black;}.ui-selectmenu-menu{padding:0;margin:0;position:absolute;top:0;left:0;display:none;}.ui-selectmenu-menu .ui-menu{overflow:auto;overflow-x:hidden;padding-bottom:1px;}.ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup{font-size:1em;font-weight:bold;line-height:1.5;padding:2px .4em;margin:.5em 0 0 0;height:auto;border:0;}.ui-selectmenu-open{display:block;}.ui-selectmenu-text{display:block;margin-right:20px;overflow:hidden;text-overflow:ellipsis;}.ui-selectmenu-button.ui-button{text-align:left;white-space:nowrap;width:14em;}.ui-selectmenu-icon.ui-icon{float:right;margin-top:0;}.ui-slider{position:relative;text-align:left;}.ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:default;-ms-touch-action:none;touch-action:none;}.ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0;}.ui-slider.ui-state-disabled .ui-slider-handle,.ui-slider.ui-state-disabled .ui-slider-range{filter:inherit;}.ui-slider-horizontal{height:.8em;}.ui-slider-horizontal .ui-slider-handle{top:-0.3em;margin-left:-0.6em;}.ui-slider-horizontal .ui-slider-range{top:0;height:100%;}.ui-slider-horizontal .ui-slider-range-min{left:0;}.ui-slider-horizontal .ui-slider-range-max{right:0;}.ui-slider-vertical{width:.8em;height:100px;}.ui-slider-vertical .ui-slider-handle{left:-0.3em;margin-left:0;margin-bottom:-0.6em;}.ui-slider-vertical .ui-slider-range{left:0;width:100%;}.ui-slider-vertical .ui-slider-range-min{bottom:0;}.ui-slider-vertical .ui-slider-range-max{top:0;}.ui-sortable-handle{-ms-touch-action:none;touch-action:none;}.ui-spinner{position:relative;display:inline-block;overflow:hidden;padding:0;vertical-align:middle;}.ui-spinner-input{border:none;background:none;color:inherit;padding:.222em 0;margin:.2em 0;vertical-align:middle;margin-left:.4em;margin-right:2em;}.ui-spinner-button{width:1.6em;height:50%;font-size:.5em;padding:0;margin:0;text-align:center;position:absolute;cursor:default;display:block;overflow:hidden;right:0;}.ui-spinner a.ui-spinner-button{border-top-style:none;border-bottom-style:none;border-right-style:none;}.ui-spinner-up{top:0;}.ui-spinner-down{bottom:0;}.ui-tabs{position:relative;padding:.2em;}.ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0;}.ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:0;margin:1px .2em 0 0;border-bottom-width:0;padding:0;white-space:nowrap;}.ui-tabs .ui-tabs-nav .ui-tabs-anchor{float:left;padding:.5em 1em;text-decoration:none;}.ui-tabs .ui-tabs-nav li.ui-tabs-active{margin-bottom:-1px;padding-bottom:1px;}.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor{cursor:text;}.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor{cursor:pointer;}.ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:none;}.ui-tooltip{padding:8px;position:absolute;z-index:9999;max-width:300px;}body .ui-tooltip{border-width:2px;}.ui-widget{font-size:1.1em;}.ui-widget .ui-widget{font-size:1em;}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-size:1em;}.ui-widget.ui-widget-content{border:1px solid #d3d3d3;}.ui-widget-content{border:1px solid #aaa;background:#fff;color:#222;}.ui-widget-content a{color:#222;}.ui-widget-header{border:1px solid #aaa;background:#ccc url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAABkEAAAAAAy19n/AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0T//xSrMc0AAAAHdElNRQfgCQ4MHyImfxJ+AAAATUlEQVQY073OoQ2AQBAF0Z/p4qrZbuiMam414iQUQLKg+Sgc+pInR4yODWmKof1EgQM3XLjwhbvGjTtOnLjzrLhw4vrKwA0typx1++MFHrwm/bbhD4gAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTYtMDktMTRUMTI6MzE6MzQtMDQ6MDAt1BHuAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE2LTA5LTE0VDEyOjMxOjM0LTA0OjAwXImpUgAAAABJRU5ErkJggg==") 50% 50% repeat-x;color:#222;font-weight:bold;}.ui-widget-header a{color:#222;}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default,.ui-button,html .ui-button.ui-state-disabled:hover,html .ui-button.ui-state-disabled:active{border:1px solid #d3d3d3;background:#e6e6e6 url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAGQEAAAAAAao4lEAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0T//xSrMc0AAAAHdElNRQfgCQ4MHyImfxJ+AAAATElEQVQ4y2N4l8fEwDCKRhF1EcOzZwzPjRie32Fi3MvEeIGJ8SsT4zcmRg4mRk4mxm9MjF+ZGB8zfGRmYljF8EmOiUF4wB08ioYEAgDUMBI63vAgyAAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxNi0wOS0xNFQxMjozMTozNC0wNDowMC3UEe4AAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTYtMDktMTRUMTI6MzE6MzQtMDQ6MDBcialSAAAAAElFTkSuQmCC") 50% 50% repeat-x;font-weight:normal;color:#555;}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited,a.ui-button,a:link.ui-button,a:visited.ui-button,.ui-button{color:#555;text-decoration:none;}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus,.ui-button:hover,.ui-button:focus{border:1px solid #999;background:#dadada url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAGQEAAAAAAao4lEAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0T//xSrMc0AAAAHdElNRQfgCQ4MHyImfxJ+AAAAS0lEQVQ4y2N4+p+JgWEUjSIqo6+3GW57MTH+YWIUZ2I0Ybj/h4kph+HRByamdoanjxme+zExBjAxmjAx/mZiXMHEIDPwDh5FQwEBABzuEyBfPm9/AAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE2LTA5LTE0VDEyOjMxOjM0LTA0OjAwLdQR7gAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNi0wOS0xNFQxMjozMTozNC0wNDowMFyJqVIAAAAASUVORK5CYII=") 50% 50% repeat-x;font-weight:normal;color:#212121;}.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited,.ui-state-focus a,.ui-state-focus a:hover,.ui-state-focus a:link,.ui-state-focus a:visited,a.ui-button:hover,a.ui-button:focus{color:#212121;text-decoration:none;}.ui-visual-focus{box-shadow:0 0 3px 1px #5e9ed6;}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active,a.ui-button:active,.ui-button:active,.ui-button.ui-state-active:hover{border:1px solid #aaa;background:#fff url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAGQAQAAAABHIzd2AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QAAd2KE6QAAAAHdElNRQfgCQ4MHyImfxJ+AAAAEUlEQVQoz2NoYBiFo3AU4oAAlWjIAdM0sWkAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTYtMDktMTRUMTI6MzE6MzQtMDQ6MDAt1BHuAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE2LTA5LTE0VDEyOjMxOjM0LTA0OjAwXImpUgAAAABJRU5ErkJggg==") 50% 50% repeat-x;font-weight:normal;color:#212121;}.ui-icon-background,.ui-state-active .ui-icon-background{border:#aaa;background-color:#212121;}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#212121;text-decoration:none;}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #fcefa1;background:#fbf9ee url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAGQEAIAAACwqkHPAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABmJLR0T///////8JWPfcAAAAB3RJTUUH4AkODB8iJn8SfgAAAI1JREFUSMftzyEKAkEUgOF/nmIQbIOIsKMGQRgxewjrVqtZMGnd+3gDwYN4hRV2i+MbweIVRMNLX/jTT77ppjkLABiGYRjfBtWU6prcffbuXvAESmHIjK0wYu52QkHkJBQs3VGYsKIiXzQ08dPIDz20U3FjFux5Rb22SfAEVwoDPGtB6ND/i2nDMIwf8gY8YSRTiOx5LgAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxNi0wOS0xNFQxMjozMTozNC0wNDowMC3UEe4AAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTYtMDktMTRUMTI6MzE6MzQtMDQ6MDBcialSAAAAAElFTkSuQmCC") 50% 50% repeat-x;color:#363636;}.ui-state-checked{border:1px solid #fcefa1;background:#fbf9ee;}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#363636;}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#fef1ec url("/wiki/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_glass_95_fef1ec_1x400.png") 50% 50% repeat-x;color:#cd0a0a;}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#cd0a0a;}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#cd0a0a;}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold;}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal;}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none;}.ui-state-disabled .ui-icon{filter:Alpha(Opacity=35);}.ui-icon{width:16px;height:16px;}.ui-icon,.ui-widget-content .ui-icon{background-image:url("/wiki/lib/scripts/jquery/jquery-ui-theme/images/ui-icons_222222_256x240.png");}.ui-widget-header .ui-icon{background-image:url("/wiki/lib/scripts/jquery/jquery-ui-theme/images/ui-icons_222222_256x240.png");}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon,.ui-button:hover .ui-icon,.ui-button:focus .ui-icon{background-image:url("/wiki/lib/scripts/jquery/jquery-ui-theme/images/ui-icons_454545_256x240.png");}.ui-state-active .ui-icon,.ui-button:active .ui-icon{background-image:url("/wiki/lib/scripts/jquery/jquery-ui-theme/images/ui-icons_454545_256x240.png");}.ui-state-highlight .ui-icon,.ui-button .ui-state-highlight.ui-icon{background-image:url("/wiki/lib/scripts/jquery/jquery-ui-theme/images/ui-icons_2e83ff_256x240.png");}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url("/wiki/lib/scripts/jquery/jquery-ui-theme/images/ui-icons_cd0a0a_256x240.png");}.ui-button .ui-icon{background-image:url("/wiki/lib/scripts/jquery/jquery-ui-theme/images/ui-icons_888888_256x240.png");}.ui-icon-blank{background-position:16px 16px;}.ui-icon-caret-1-n{background-position:0 0;}.ui-icon-caret-1-ne{background-position:-16px 0;}.ui-icon-caret-1-e{background-position:-32px 0;}.ui-icon-caret-1-se{background-position:-48px 0;}.ui-icon-caret-1-s{background-position:-65px 0;}.ui-icon-caret-1-sw{background-position:-80px 0;}.ui-icon-caret-1-w{background-position:-96px 0;}.ui-icon-caret-1-nw{background-position:-112px 0;}.ui-icon-caret-2-n-s{background-position:-128px 0;}.ui-icon-caret-2-e-w{background-position:-144px 0;}.ui-icon-triangle-1-n{background-position:0 -16px;}.ui-icon-triangle-1-ne{background-position:-16px -16px;}.ui-icon-triangle-1-e{background-position:-32px -16px;}.ui-icon-triangle-1-se{background-position:-48px -16px;}.ui-icon-triangle-1-s{background-position:-65px -16px;}.ui-icon-triangle-1-sw{background-position:-80px -16px;}.ui-icon-triangle-1-w{background-position:-96px -16px;}.ui-icon-triangle-1-nw{background-position:-112px -16px;}.ui-icon-triangle-2-n-s{background-position:-128px -16px;}.ui-icon-triangle-2-e-w{background-position:-144px -16px;}.ui-icon-arrow-1-n{background-position:0 -32px;}.ui-icon-arrow-1-ne{background-position:-16px -32px;}.ui-icon-arrow-1-e{background-position:-32px -32px;}.ui-icon-arrow-1-se{background-position:-48px -32px;}.ui-icon-arrow-1-s{background-position:-65px -32px;}.ui-icon-arrow-1-sw{background-position:-80px -32px;}.ui-icon-arrow-1-w{background-position:-96px -32px;}.ui-icon-arrow-1-nw{background-position:-112px -32px;}.ui-icon-arrow-2-n-s{background-position:-128px -32px;}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px;}.ui-icon-arrow-2-e-w{background-position:-160px -32px;}.ui-icon-arrow-2-se-nw{background-position:-176px -32px;}.ui-icon-arrowstop-1-n{background-position:-192px -32px;}.ui-icon-arrowstop-1-e{background-position:-208px -32px;}.ui-icon-arrowstop-1-s{background-position:-224px -32px;}.ui-icon-arrowstop-1-w{background-position:-240px -32px;}.ui-icon-arrowthick-1-n{background-position:1px -48px;}.ui-icon-arrowthick-1-ne{background-position:-16px -48px;}.ui-icon-arrowthick-1-e{background-position:-32px -48px;}.ui-icon-arrowthick-1-se{background-position:-48px -48px;}.ui-icon-arrowthick-1-s{background-position:-64px -48px;}.ui-icon-arrowthick-1-sw{background-position:-80px -48px;}.ui-icon-arrowthick-1-w{background-position:-96px -48px;}.ui-icon-arrowthick-1-nw{background-position:-112px -48px;}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px;}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px;}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px;}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px;}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px;}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px;}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px;}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px;}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px;}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px;}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px;}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px;}.ui-icon-arrowreturn-1-w{background-position:-64px -64px;}.ui-icon-arrowreturn-1-n{background-position:-80px -64px;}.ui-icon-arrowreturn-1-e{background-position:-96px -64px;}.ui-icon-arrowreturn-1-s{background-position:-112px -64px;}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px;}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px;}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px;}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px;}.ui-icon-arrow-4{background-position:0 -80px;}.ui-icon-arrow-4-diag{background-position:-16px -80px;}.ui-icon-extlink{background-position:-32px -80px;}.ui-icon-newwin{background-position:-48px -80px;}.ui-icon-refresh{background-position:-64px -80px;}.ui-icon-shuffle{background-position:-80px -80px;}.ui-icon-transfer-e-w{background-position:-96px -80px;}.ui-icon-transferthick-e-w{background-position:-112px -80px;}.ui-icon-folder-collapsed{background-position:0 -96px;}.ui-icon-folder-open{background-position:-16px -96px;}.ui-icon-document{background-position:-32px -96px;}.ui-icon-document-b{background-position:-48px -96px;}.ui-icon-note{background-position:-64px -96px;}.ui-icon-mail-closed{background-position:-80px -96px;}.ui-icon-mail-open{background-position:-96px -96px;}.ui-icon-suitcase{background-position:-112px -96px;}.ui-icon-comment{background-position:-128px -96px;}.ui-icon-person{background-position:-144px -96px;}.ui-icon-print{background-position:-160px -96px;}.ui-icon-trash{background-position:-176px -96px;}.ui-icon-locked{background-position:-192px -96px;}.ui-icon-unlocked{background-position:-208px -96px;}.ui-icon-bookmark{background-position:-224px -96px;}.ui-icon-tag{background-position:-240px -96px;}.ui-icon-home{background-position:0 -112px;}.ui-icon-flag{background-position:-16px -112px;}.ui-icon-calendar{background-position:-32px -112px;}.ui-icon-cart{background-position:-48px -112px;}.ui-icon-pencil{background-position:-64px -112px;}.ui-icon-clock{background-position:-80px -112px;}.ui-icon-disk{background-position:-96px -112px;}.ui-icon-calculator{background-position:-112px -112px;}.ui-icon-zoomin{background-position:-128px -112px;}.ui-icon-zoomout{background-position:-144px -112px;}.ui-icon-search{background-position:-160px -112px;}.ui-icon-wrench{background-position:-176px -112px;}.ui-icon-gear{background-position:-192px -112px;}.ui-icon-heart{background-position:-208px -112px;}.ui-icon-star{background-position:-224px -112px;}.ui-icon-link{background-position:-240px -112px;}.ui-icon-cancel{background-position:0 -128px;}.ui-icon-plus{background-position:-16px -128px;}.ui-icon-plusthick{background-position:-32px -128px;}.ui-icon-minus{background-position:-48px -128px;}.ui-icon-minusthick{background-position:-64px -128px;}.ui-icon-close{background-position:-80px -128px;}.ui-icon-closethick{background-position:-96px -128px;}.ui-icon-key{background-position:-112px -128px;}.ui-icon-lightbulb{background-position:-128px -128px;}.ui-icon-scissors{background-position:-144px -128px;}.ui-icon-clipboard{background-position:-160px -128px;}.ui-icon-copy{background-position:-176px -128px;}.ui-icon-contact{background-position:-192px -128px;}.ui-icon-image{background-position:-208px -128px;}.ui-icon-video{background-position:-224px -128px;}.ui-icon-script{background-position:-240px -128px;}.ui-icon-alert{background-position:0 -144px;}.ui-icon-info{background-position:-16px -144px;}.ui-icon-notice{background-position:-32px -144px;}.ui-icon-help{background-position:-48px -144px;}.ui-icon-check{background-position:-64px -144px;}.ui-icon-bullet{background-position:-80px -144px;}.ui-icon-radio-on{background-position:-96px -144px;}.ui-icon-radio-off{background-position:-112px -144px;}.ui-icon-pin-w{background-position:-128px -144px;}.ui-icon-pin-s{background-position:-144px -144px;}.ui-icon-play{background-position:0 -160px;}.ui-icon-pause{background-position:-16px -160px;}.ui-icon-seek-next{background-position:-32px -160px;}.ui-icon-seek-prev{background-position:-48px -160px;}.ui-icon-seek-end{background-position:-64px -160px;}.ui-icon-seek-start{background-position:-80px -160px;}.ui-icon-seek-first{background-position:-80px -160px;}.ui-icon-stop{background-position:-96px -160px;}.ui-icon-eject{background-position:-112px -160px;}.ui-icon-volume-off{background-position:-128px -160px;}.ui-icon-volume-on{background-position:-144px -160px;}.ui-icon-power{background-position:0 -176px;}.ui-icon-signal-diag{background-position:-16px -176px;}.ui-icon-signal{background-position:-32px -176px;}.ui-icon-battery-0{background-position:-48px -176px;}.ui-icon-battery-1{background-position:-64px -176px;}.ui-icon-battery-2{background-position:-80px -176px;}.ui-icon-battery-3{background-position:-96px -176px;}.ui-icon-circle-plus{background-position:0 -192px;}.ui-icon-circle-minus{background-position:-16px -192px;}.ui-icon-circle-close{background-position:-32px -192px;}.ui-icon-circle-triangle-e{background-position:-48px -192px;}.ui-icon-circle-triangle-s{background-position:-64px -192px;}.ui-icon-circle-triangle-w{background-position:-80px -192px;}.ui-icon-circle-triangle-n{background-position:-96px -192px;}.ui-icon-circle-arrow-e{background-position:-112px -192px;}.ui-icon-circle-arrow-s{background-position:-128px -192px;}.ui-icon-circle-arrow-w{background-position:-144px -192px;}.ui-icon-circle-arrow-n{background-position:-160px -192px;}.ui-icon-circle-zoomin{background-position:-176px -192px;}.ui-icon-circle-zoomout{background-position:-192px -192px;}.ui-icon-circle-check{background-position:-208px -192px;}.ui-icon-circlesmall-plus{background-position:0 -208px;}.ui-icon-circlesmall-minus{background-position:-16px -208px;}.ui-icon-circlesmall-close{background-position:-32px -208px;}.ui-icon-squaresmall-plus{background-position:-48px -208px;}.ui-icon-squaresmall-minus{background-position:-64px -208px;}.ui-icon-squaresmall-close{background-position:-80px -208px;}.ui-icon-grip-dotted-vertical{background-position:0 -224px;}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px;}.ui-icon-grip-solid-vertical{background-position:-32px -224px;}.ui-icon-grip-solid-horizontal{background-position:-48px -224px;}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px;}.ui-icon-grip-diagonal-se{background-position:-80px -224px;}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{border-top-left-radius:4px;}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{border-top-right-radius:4px;}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{border-bottom-left-radius:4px;}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{border-bottom-right-radius:4px;}.ui-widget-overlay{background:#aaa;opacity:.3;filter:Alpha(Opacity=30);}.ui-widget-shadow{-webkit-box-shadow:-8px -8px 8px #aaa;box-shadow:-8px -8px 8px #aaa;}#acl__tree{font-size:90%;width:25%;height:300px;float:left;overflow:auto;border:1px solid #ccc;text-align:left;}[dir=rtl] #acl__tree{float:right;text-align:right;}#acl__tree a.cur{background-color:#ff9;font-weight:bold;}#acl__tree ul{list-style-type:none;margin:0;padding:0;}#acl__tree li{padding-left:1em;list-style-image:none;}[dir=rtl] #acl__tree li{padding-left:0;padding-right:1em;}#acl__tree ul img{margin-right:.25em;cursor:pointer;}[dir=rtl] #acl__tree ul img{margin-left:.25em;margin-right:0;}#acl__detail{width:73%;height:300px;float:right;overflow:auto;}[dir=rtl] #acl__detail{float:left;}#acl__detail fieldset{width:90%;}#acl__detail div#acl__user{border:1px solid #ccc;padding:.5em;margin-bottom:.6em;}#acl_manager table.inline{width:100%;margin:0;}#acl_manager table .check{text-align:center;}#acl_manager table .action{text-align:right;}#acl_manager .aclgroup{background:transparent url(/wiki/lib/plugins/acl/pix/group.png) 0 1px no-repeat;padding:1px 0 1px 18px;}[dir=rtl] #acl_manager .aclgroup{background:transparent url(/wiki/lib/plugins/acl/pix/group.png) right 1px no-repeat;padding:1px 18px 1px 0;}#acl_manager .acluser{background:transparent url(/wiki/lib/plugins/acl/pix/user.png) 0 1px no-repeat;padding:1px 0 1px 18px;}[dir=rtl] #acl_manager .acluser{background:transparent url(/wiki/lib/plugins/acl/pix/user.png) right 1px no-repeat;padding:1px 18px 1px 0;}#acl_manager .aclpage{background:transparent url(/wiki/lib/plugins/acl/pix/page.png) 0 1px no-repeat;padding:1px 0 1px 18px;}[dir=rtl] #acl_manager .aclpage{background:transparent url(/wiki/lib/plugins/acl/pix/page.png) right 1px no-repeat;padding:1px 18px 1px 0;}#acl_manager .aclns{background:transparent url(/wiki/lib/plugins/acl/pix/ns.png) 0 1px no-repeat;padding:1px 0 1px 18px;}[dir=rtl] #acl_manager .aclns{background:transparent url(/wiki/lib/plugins/acl/pix/ns.png) right 1px no-repeat;padding:1px 18px 1px 0;}#acl_manager label.disabled{opacity:.5;cursor:auto;}#acl_manager label{text-align:left;font-weight:normal;display:inline;}#acl_manager table{margin-left:10%;width:80%;}#acl_manager table tr{background-color:inherit;}#acl_manager table tr:hover{background-color:#eee;}#config__manager div.success,#config__manager div.error,#config__manager div.info{background-position:.5em;padding:.5em;text-align:center;}#config__manager fieldset{margin:1em;width:auto;margin-bottom:2em;background-color:#eee;color:#333;padding:0 1em;}[dir=rtl] #config__manager fieldset{clear:both;}#config__manager legend{font-size:1.25em;}#config__manager table{margin:1em 0;width:100%;}#config__manager fieldset td{text-align:left;}[dir=rtl] #config__manager fieldset td{text-align:right;}#config__manager fieldset td.value{width:31em;}[dir=rtl] #config__manager label{text-align:right;}[dir=rtl] #config__manager td.value input.checkbox{float:right;padding-left:0;padding-right:.7em;}[dir=rtl] #config__manager td.value label{float:left;}#config__manager td.label{padding:.8em 0 .6em 1em;vertical-align:top;}[dir=rtl] #config__manager td.label{padding:.8em 1em .6em 0;}#config__manager td.label label{clear:left;display:block;}[dir=rtl] #config__manager td.label label{clear:right;}#config__manager td.label img{padding:0 10px;vertical-align:middle;float:right;}[dir=rtl] #config__manager td.label img{float:left;}#config__manager td.label span.outkey{font-size:70%;margin-top:-1.7em;margin-left:-1em;display:block;background-color:#fff;color:#666;float:left;padding:0 .1em;position:relative;z-index:1;}[dir=rtl] #config__manager td.label span.outkey{float:right;margin-right:1em;}#config__manager td input.edit{width:30em;}#config__manager td .input{width:30.8em;}#config__manager td textarea.edit{width:27.5em;height:4em;}#config__manager td textarea.edit:focus{height:10em;}#config__manager tr .input,#config__manager tr input,#config__manager tr textarea,#config__manager tr select{background-color:#fff;color:#000;}#config__manager tr.default .input,#config__manager tr.default input,#config__manager tr.default textarea,#config__manager tr.default select,#config__manager .selectiondefault{background-color:#cdf;color:#000;}#config__manager tr.protected .input,#config__manager tr.protected input,#config__manager tr.protected textarea,#config__manager tr.protected select,#config__manager tr.protected .selection{background-color:#fcc !important;color:#000 !important;}#config__manager td.error{background-color:red;color:#000;}#config__manager .selection{width:14.8em;float:left;margin:0 .3em 2px 0;}[dir=rtl] #config__manager .selection{width:14.8em;float:right;margin:0 0 2px .3em;}#config__manager .selection label{float:right;width:14em;font-size:90%;}#config__manager .other{clear:both;padding-top:.5em;}#config__manager .other label{padding-left:2px;font-size:90%;}#plugin__extensionlightbox{position:fixed;top:0;left:0;width:100%;height:100%;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR4AWNg2AwAALYAtJA+g34AAAAASUVORK5CYII=) repeat;text-align:center;cursor:pointer;z-index:9999;}#plugin__extensionlightbox p{text-align:right;color:#fff;margin-right:20px;font-size:12px;}#plugin__extensionlightbox img{box-shadow:0 0 25px #111;max-width:90%;max-height:90%;}#extension__manager ul.tabs li.active a{background-color:#eee;border-bottom:solid 1px #eee;z-index:2;}#extension__manager .panelHeader{background-color:#eee;margin:0 0 10px 0;padding:10px 10px 8px;overflow:hidden;}#extension__manager div.msg{margin:.4em 0 0 0;}#extension__list ul.extensionList{margin-left:0;margin-right:0;padding:0;list-style:none;}#extension__list ul.extensionList li{margin:0 0 .5em;padding:0 0 .5em;color:#333;border-bottom:1px solid #ccc;overflow:hidden;}#extension__list button{margin-bottom:.3em;}#extension__list .legend{position:relative;width:75%;float:left;}#extension__list .legend > div{padding:0 .5em 0 132px;border-right:1px solid #eee;overflow:hidden;}#extension__list .legend div.screenshot{margin-top:4px;margin-left:-132px;max-width:120px;float:left;position:relative;}#extension__list .legend div.screenshot img{width:120px;height:70px;border-radius:5px;box-shadow:2px 2px 2px #666;}#extension__list .legend div.screenshot span{min-height:24px;min-width:24px;position:absolute;left:0;top:0;}#extension__list .legend h2{width:100%;float:right;margin:.2em 0 .5em;font-size:100%;font-weight:normal;border:none;}#extension__list .legend h2 strong{font-size:120%;font-weight:bold;vertical-align:baseline;}#extension__list .legend p{margin:0 0 .6em 0;}#extension__list .legend div.popularity{background-color:#fff;border:1px solid silver;height:.4em;margin:0 auto;padding:1px;width:5.5em;position:absolute;right:.5em;top:.2em;}#extension__list .legend div.popularity div{background-color:#ccc;height:100%;}#extension__list .legend div.linkbar{font-size:85%;}#extension__list .legend div.linkbar span.tags{padding-left:18px;background:transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAABHElEQVR4AV3KT0sCQRjH8edNeC16F8LS69D+YKRlhAeXRAkxliWWPUhIRIcgJIKILl68SBdB6BL0AjwJXQKPEiM9l2/DNIgbX4Zh5veRW27ocUWXlIQ4h2STa3TVyJLOPyI9lCEpA0eGxDQzRLooCUj0MeMbtbBNfY1I6j6jn87nnCnPKC80qK2IJKhtyZwZTUKeUHvqVD2R2LyjLJjSIOKSliMP1Cg7IhfbbfOGMiYkJiXxpE+VkiXWtIKGmaBMOPOkySPKHWX2coItDOpmvCIJ5/Ze0ueInU3BVQtOzasjIS06fP3NW4jgOwmOzciRiIWbi3ZeA0glODRD1Nan4ucMQA7yJTPg3s9Z4NvP75oKBT97kK2YL2ysv38BeXJNZj9ZoigAAAAASUVORK5CYII=) no-repeat 0 0;}#extension__list .legend div.linkbar a.bugs{padding-left:18px;background:transparent url(data:image/gif;base64,R0lGODlhEAAQAPMPAJGRkYuLi6Ojo1lZWbS0tIyMjGlpaU9PT4WFhXJycn9/f0dHR76+vsjIyNjY2AAAACH5BAUAAA8ALAAAAAAQABAAAARv8Mn5wCw0S4Af0tUUBEmiGBpgFQGCEM6nsUDTEInAlIYlIQGGYKhIABaSkQsg5DAJhsPEpWgIOAUCAIqaKLaAQDYMHZglX8LoGrgOMkVBmyUwvDWJAUFQcB+kGgY9AAOAB0gaZoWAIBl/jSALiBMRADs=) no-repeat 0 0;}#extension__list .legend a.info{background:transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA0AAAANCAMAAABFNRROAAAAQlBMVEW7xdG8xtK9x9PAydPAydTBytXHz9jJ0NnK0dnS2d/V2t/W2uDb4Obg5Oni5enr7vHu8PP09fb5+fr9/f39/f7///8blOpbAAAAPklEQVR4AWMQRQYk8PgZEECAQZSXEQb4QSp5mCCAF6xPmJMZBPigpgizsbCwcAnDzBRiZ+UWQdggyCFE0HYAuFoKlJBmmk4AAAAASUVORK5CYII=) no-repeat 0 0;border-width:0;height:13px;width:13px;text-indent:-9999px;float:right;margin:.5em 0 0;overflow:hidden;}#extension__list .legend a.info.close{background:transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA0AAAANCAMAAABFNRROAAAAQlBMVEW7xdG8xtK9x9PAydPAydTBytXHz9jJ0NnK0dnS2d/V2t/W2uDb4Obg5Oni5enr7vHu8PP09fb5+fr9/f39/f7///8blOpbAAAAPklEQVR4AWMQRQbYeIIcQgieEDsrtwiMJ8zGwsLCJQzhCXMygwAfhMfDBAG8IB4vIwzwizLwMyCAAKp9xPMAzXYKlP+8464AAAAASUVORK5CYII=) no-repeat 0 0;}#extension__list .legend dl.details{margin:.4em 0 0 0;font-size:85%;border-top:1px solid #eee;clear:both;}#extension__list .legend dl.details dt{clear:left;float:left;width:25%;margin:0;text-align:right;font-weight:normal;padding:.2em 5px 0 0;font-weight:bold;}#extension__list .legend dl.details dd{margin-left:25%;padding:.2em 0 0 5px;}#extension__list .legend dl.details dd a.donate{padding-left:18px;background:transparent url(/wiki/lib/plugins/extension/images/donate.png) left center no-repeat;}[dir=rtl] #extension__list .legend{float:right;}[dir=rtl] #extension__list .legend > div{padding:0 132px 0 .5em;border-left:1px solid #eee;border-right-width:0;}[dir=rtl] #extension__list .legend div.screenshot{margin-left:0;margin-right:-132px;float:right;}[dir=rtl] #extension__list .legend div.screenshot span{left:auto;right:0;}[dir=rtl] #extension__list .legend h2{float:left;}[dir=rtl] #extension__list .legend div.popularity{right:auto;left:.5em;}[dir=rtl] #extension__list .legend div.linkbar span.tags,[dir=rtl] #extension__list .legend dl.details dd a.donate{padding-left:0;padding-right:18px;background-position:top right;}[dir=rtl] #extension__list .legend a.info{float:left;}[dir=rtl] #extension__list .legend dl.details dt{clear:right;float:right;text-align:left;padding-left:5px;padding-right:0;}[dir=rtl] #extension__list .legend dl.details dd{margin-left:0;margin-right:25%;padding-left:0;padding-right:5px;}#extension__list.hasDisplayOptions .enabled,#extension__list.hasDisplayOptions .disabled,#extension__list.hasDisplayOptions .updatable{display:none;}#extension__list.hasDisplayOptions.enabled .enabled,#extension__list.hasDisplayOptions.disabled .disabled,#extension__list.hasDisplayOptions.updatable .updatable{display:block;}#extension__list .enabled div.screenshot span{background:transparent url(/wiki/lib/plugins/extension/images/enabled.png) no-repeat 2px 2px;}#extension__list .disabled div.screenshot span{background:transparent url(/wiki/lib/plugins/extension/images/disabled.png) no-repeat 2px 2px;}#extension__list .disabled .legend{opacity:0.7;}#extension__manager .actions{padding:0;font-size:95%;width:25%;float:right;text-align:right;}#extension__manager .actions .version{display:block;}#extension__manager .actions p{margin:.2em 0;text-align:center;}#extension__manager .actions p.permerror{margin-left:.4em;text-align:left;padding-left:19px;background:transparent url(/wiki/lib/plugins/extension/images/warning.png) center left no-repeat;line-height:18px;font-size:12px;}[dir=rtl] #extension__manager .actions{float:left;text-align:left;}[dir=rtl] #extension__manager .actions p.permerror{margin-left:0;margin-right:.4em;text-align:right;padding-left:0;padding-right:19px;background-position:center right;}#extension__manager form.search{display:block;margin-bottom:2em;}#extension__manager form.search span{font-weight:bold;}#extension__manager form.search input.edit{width:25em;}#extension__manager form.install{text-align:center;display:block;width:60%;}#extension__viewoptions label{margin-left:1em;vertical-align:baseline;}#plugin__styling button.primary{font-weight:bold;}[dir=rtl] #plugin__styling table input{text-align:right;}#plugin__styling_loader{display:none;}#user__manager tr.disabled{color:#6f6f6f;background:#e4e4e4;}#user__manager tr.user_info{vertical-align:top;}#user__manager div.edit_user{width:46%;float:left;}#user__manager table{margin-bottom:1em;}#user__manager ul.notes{padding-left:0;padding-right:1.4em;}#user__manager button[disabled]{color:#ccc !important;border-color:#ccc !important;}#user__manager .import_users{margin-top:1.4em;}#user__manager .import_failures{margin-top:1.4em;}#user__manager .import_failures td.lineno{text-align:center;}html{overflow-x:auto;overflow-y:scroll;}html,body{color:#333;background:#fbfaf9 url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAABzCAYAAABZ/2hDAAAAmElEQVQoz+3IIU5DURRF0X32ff2/oQlp6yDB1CGYAAMgwTCMjhwMDoEr72KYAq5LLlhvHyROIS2hpdN/p1NwitWStGS0OKb0RMYyBVJctovsb6awpLiMjRx2CDsqP5Z93Ee+q4uxDjlskfduuZtIgvlYpn0ilU2Uz/u2nypkdRT9Enn+Cgkl/UrlsYNB+/gGAhJin89c/adf1hUppirdLEYAAAAASUVORK5CYII=) top left repeat-x;margin:0;padding:0;}body{font:normal 87.5%/1.4 Arial,sans-serif;-webkit-text-size-adjust:100%;}caption,figcaption,summary,legend{padding:0;margin:0 0 .35em;line-height:1.2;}h1,h2,h3,h4,h5,h6{font-weight:bold;padding:0;line-height:1.2;clear:left;}[dir=rtl] h1,[dir=rtl] h2,[dir=rtl] h3,[dir=rtl] h4,[dir=rtl] h5,[dir=rtl] h6{clear:right;}h1{font-size:2em;margin:0 0 .444em;}h2{font-size:1.5em;margin:0 0 .666em;}h3{font-size:1.125em;margin:0 0 .888em;}h4{font-size:1em;margin:0 0 1em;}h5{font-size:.875em;margin:0 0 1.1428em;}h6{font-size:.75em;margin:0 0 1.333em;}p,ul,ol,dl,pre,table,hr,blockquote,figure,details,fieldset,address{margin:0 0 1.4em 0;padding:0;}div,video,audio{margin:0;padding:0;}ul,ol{padding:0 0 0 1.5em;}[dir=rtl] ul,[dir=rtl] ol{padding:0 1.5em 0 0;}li,dd{padding:0;margin:0 0 0 1.5em;}[dir=rtl] li,[dir=rtl] dd{margin:0 1.5em 0 0;}dt{font-weight:bold;margin:0;padding:0;}li ul,li ol,li dl,dl ul,dl ol,dl dl{margin-bottom:0;padding:0;}li li{font-size:100%;}ul{list-style:square outside;}ol{list-style:decimal outside;}ol ol{list-style-type:lower-alpha;}ol ol ol{list-style-type:upper-roman;}ol ol ol ol{list-style-type:upper-alpha;}ol ol ol ol ol{list-style-type:lower-roman;}table{border-collapse:collapse;empty-cells:show;border-spacing:0;border:1px solid #ccc;}caption{caption-side:top;text-align:left;}[dir=rtl] caption{text-align:right;}th,td{padding:.3em .5em;margin:0;vertical-align:top;border:1px solid #ccc;}th{font-weight:bold;background-color:#eee;text-align:left;}[dir=rtl] th{text-align:right;}a{outline:none;}a:link,a:visited{text-decoration:none;color:#2b73b7;}a:link:hover,a:visited:hover,a:link:focus,a:visited:focus,a:link:active,a:visited:active{text-decoration:underline;}img{border-width:0;vertical-align:middle;color:#666;background-color:transparent;font-style:italic;height:auto;}video{height:auto;}img,object,embed,iframe,video,audio{max-width:100%;}button img{max-width:none;}hr{border-top:solid #ccc;border-bottom:solid #fff;border-width:1px 0;height:0;text-align:center;clear:both;}acronym,abbr{cursor:help;border-bottom:1px dotted;font-style:normal;}em acronym,em abbr{font-style:italic;}mark{background-color:#ff9;color:inherit;}pre,code,samp,kbd{font-family:Consolas,"Andale Mono WT","Andale Mono","Bitstream Vera Sans Mono","Nimbus Mono L",Monaco,"Courier New",monospace;font-size:1em;direction:ltr;text-align:left;background-color:#fbfaf9;color:#333;box-shadow:inset 0 0 .3em #ccc;border-radius:2px;}pre{overflow:auto;word-wrap:normal;border:1px solid #ccc;border-radius:2px;box-shadow:inset 0 0 .5em #ccc;padding:.7em 1em;}blockquote{padding:0 .5em;border:solid #ccc;border-width:0 0 0 .25em;}[dir=rtl] blockquote{border-width:0 .25em 0 0;}q:before,q:after{content:'';}sub,sup{font-size:.8em;line-height:1;}sub{vertical-align:sub;}sup{vertical-align:super;}small{font-size:.8em;}form{display:inline;margin:0;padding:0;}fieldset{padding:.7em 1em 0;padding:.7rem 1rem;border:1px solid #999;}fieldset > :last-child{margin-bottom:0;}legend{margin:0;padding:0 .1em;}label{vertical-align:middle;cursor:pointer;}input,textarea,button,select,optgroup,option,keygen,output,meter,progress{font:inherit;font-weight:normal;color:#333;background-color:#fff;line-height:normal;margin:0;vertical-align:middle;box-sizing:border-box;}select{max-width:100%;}optgroup{font-style:italic;font-weight:bold;}option{font-style:normal;font-weight:normal;}input,textarea,select,keygen{border:1px solid #ccc;box-shadow:inset 0 0 1px #eee;border-radius:2px;}input:active,input:focus,textarea:active,textarea:focus,select:active,select:focus,keygen:active,keygen:focus{border-color:#999;}input[type=radio],input[type=checkbox],input[type=image]{padding:0;border-style:none;box-shadow:none;}input[type=submit],input[type=button],input[type=reset],input.button,a.button,button,.qq-upload-button{color:#333;background-color:#eee;background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIHZpZXdCb3g9IjAgMCAxIDEiIHByZXNlcnZlQXNwZWN0UmF0aW89Im5vbmUiPgo8bGluZWFyR3JhZGllbnQgaWQ9Imc4MjQiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iMCUiIHkxPSIwJSIgeDI9IjAlIiB5Mj0iMTAwJSI+CjxzdG9wIHN0b3AtY29sb3I9IiNGRkZGRkYiIG9mZnNldD0iMCIvPjxzdG9wIHN0b3AtY29sb3I9IiNGNEY0RjQiIG9mZnNldD0iMC4zIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0VFRUVFRSIgb2Zmc2V0PSIwLjk5Ii8+PHN0b3Agc3RvcC1jb2xvcj0iI0NDQ0NDQyIgb2Zmc2V0PSIuOTkiLz4KPC9saW5lYXJHcmFkaWVudD4KPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNnODI0KSIgLz4KPC9zdmc+);background-image:linear-gradient(to bottom,#fff 0,#f4f4f4 30%,#eee 99%,#ccc 99%);border:1px solid #ccc;border-radius:2px;padding:.1em .5em;cursor:pointer;}input[type=submit]:hover,input[type=submit]:active,input[type=submit]:focus,input[type=button]:hover,input[type=button]:active,input[type=button]:hover,input[type=reset]:hover,input[type=reset]:active,input[type=reset]:hover,input.button:hover,input.button:active,input.button:focus,a.button:hover,a.button:active,a.button:focus,button:hover,button:active,button:focus,.qq-upload-button:hover{border-color:#999;background-color:#ddd;background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIHZpZXdCb3g9IjAgMCAxIDEiIHByZXNlcnZlQXNwZWN0UmF0aW89Im5vbmUiPgo8bGluZWFyR3JhZGllbnQgaWQ9Imc2NzAiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iMCUiIHkxPSIwJSIgeDI9IjAlIiB5Mj0iMTAwJSI+CjxzdG9wIHN0b3AtY29sb3I9IiNGRkZGRkYiIG9mZnNldD0iMCIvPjxzdG9wIHN0b3AtY29sb3I9IiNGNEY0RjQiIG9mZnNldD0iMC4zIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0RERERERCIgb2Zmc2V0PSIwLjk5Ii8+PHN0b3Agc3RvcC1jb2xvcj0iI0JCQkJCQiIgb2Zmc2V0PSIuOTkiLz4KPC9saW5lYXJHcmFkaWVudD4KPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNnNjcwKSIgLz4KPC9zdmc+);background-image:linear-gradient(to bottom,#fff 0,#f4f4f4 30%,#ddd 99%,#bbb 99%);}input::-moz-focus-inner,button::-moz-focus-inner{border:0;padding:0;}input[disabled],button[disabled],select[disabled],textarea[disabled],option[disabled],input[readonly],button[readonly],select[readonly],textarea[readonly]{cursor:auto;opacity:.5;background-color:#eee;}#dokuwiki__detail{padding:1em;}#dokuwiki__detail img{float:left;margin:0 1.5em .5em 0;}[dir=rtl] #dokuwiki__detail div.content img{float:right;margin-right:0;margin-left:1.5em;}#dokuwiki__detail div.img_detail{float:left;}[dir=rtl] #dokuwiki__detail div.content div.img_detail{float:right;}#dokuwiki__detail p.back{clear:both;}html.popup{overflow:auto;}#media__manager{height:100%;overflow:hidden;}#mediamgr__aside{width:30%;height:100%;overflow:auto;position:absolute;left:0;border-right:1px solid #ccc;}[dir=rtl] #mediamgr__aside{left:auto;right:0;border-right-width:0;border-left:1px solid #ccc;}#mediamgr__aside .pad{padding:.5em;}#mediamgr__content{width:69.7%;height:100%;overflow:auto;position:absolute;right:0;}[dir=rtl] #mediamgr__content{right:auto;left:0;}#mediamgr__content .pad{padding:.5em;}#media__manager h1,#media__manager h2{font-size:1.5em;margin-bottom:.5em;padding-bottom:.2em;border-bottom:1px solid #ccc;}#media__opts{margin-bottom:.5em;}#media__opts input{margin-right:.3em;}[dir=rtl] #media__opts input{margin-right:0;margin-left:.3em;}#media__tree ul{padding-left:.2em;}[dir=rtl] #media__tree ul{padding-left:0;padding-right:.2em;}#media__tree ul li{clear:left;list-style-type:none;list-style-image:none;margin-left:0;}[dir=rtl] #media__tree ul li{clear:right;margin-right:0;}#media__tree ul li img{float:left;padding:.5em .3em 0 0;}[dir=rtl] #media__tree ul li img{float:right;padding:.5em 0 0 .3em;}#media__tree ul li div.li{display:inline;}#media__tree ul li li{margin-left:1.5em;}[dir=rtl] #media__tree ul li li{margin-left:0;margin-right:1.5em;}#media__content div.upload{font-size:.9em;margin-bottom:.5em;}#mediamanager__uploader{margin-bottom:1em;}#mediamanager__uploader p{margin-bottom:.5em;}#media__content img.load{margin:1em auto;}#media__content .odd,#media__content .even{padding:.5em;}#media__content .odd{background-color:#eee;}#media__content #scroll__here{border:1px dashed #ccc;}#media__content a.mediafile{margin-right:1.5em;font-weight:bold;cursor:pointer;}[dir=rtl] #media__content a.mediafile{margin-right:0;margin-left:1.5em;}#media__content img.btn{vertical-align:text-bottom;}#media__content div.example{color:#666;margin-left:1em;}#media__content div.detail{padding:.2em 0;}#media__content div.detail div.thumb{float:left;margin:0 .5em 0 18px;}[dir=rtl] #media__content div.detail div.thumb{float:right;margin:0 18px 0 .5em;}#media__content div.detail div.thumb a{display:block;cursor:pointer;}#media__content div.detail p{margin-bottom:0;}#mediamanager__page h1{margin-bottom:.5em;}#mediamanager__page{min-width:50em;width:100%;text-align:left;}[dir=rtl] #mediamanager__page{text-align:right;}#mediamanager__page .panel{float:left;}[dir=rtl] #mediamanager__page .panel{float:right;}#mediamanager__page .namespaces{width:20%;min-width:10em;left:0 !important;}#mediamanager__page .filelist{width:50%;min-width:25em;left:0 !important;}#mediamanager__page .file{width:30%;min-width:15em;}#mediamanager__page .tabs li{white-space:nowrap;}#mediamanager__page .panelHeader{background-color:#eee;margin:0 10px 10px 0;padding:10px 10px 8px;text-align:left;min-height:20px;overflow:hidden;}[dir=rtl] #mediamanager__page .panelHeader{text-align:right;margin:0 0 10px 10px;}#mediamanager__page .panelContent{overflow-y:auto;overflow-x:hidden;padding:0;margin:0 10px 10px 0;position:relative;}[dir=rtl] #mediamanager__page .panelContent{text-align:right;margin:0 0 10px 10px;}#mediamanager__page .file .panelHeader,#mediamanager__page .file .panelContent{margin-right:0;}[dir=rtl] #mediamanager__page .file .panelHeader,[dir=rtl] #mediamanager__page .file .panelContent{margin-left:0;}#mediamanager__page .ui-resizable-e{width:6px;right:2px;background:transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAgBAMAAADDFxRQAAAAFVBMVEUzMzMzMzMzMzMzMzMzMzMzMzMAAAC/StzQAAAAB3RSTlMQEQQPAX8A/rYeMAAAACdJREFUeAFjSDNLY0gLg2AVMK0GxG4MYWFhVMVsYWIgc0H2IHBaGgAKAiA/dIJU/QAAAABJRU5ErkJggg==) center center no-repeat;}#mediamanager__page .ui-resizable-e:hover{background-color:#eee;}[dir=rtl] #mediamanager__page .ui-resizable-w{width:6px;left:2px;background:transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAgBAMAAADDFxRQAAAAFVBMVEUzMzMzMzMzMzMzMzMzMzMzMzMAAAC/StzQAAAAB3RSTlMQEQQPAX8A/rYeMAAAACdJREFUeAFjSDNLY0gLg2AVMK0GxG4MYWFhVMVsYWIgc0H2IHBaGgAKAiA/dIJU/QAAAABJRU5ErkJggg==) center center no-repeat;}[dir=rtl] #mediamanager__page .ui-resizable-w:hover{background-color:#eee;}#mediamanager__page dd{margin:0;}#mediamanager__page .panelHeader h3{float:left;font-weight:normal;font-size:1em;padding:0;margin:0 0 3px;}[dir=rtl] #mediamanager__page .panelHeader h3{float:right;}[dir=rtl] #mediamanager__page .namespaces{text-align:right;}#mediamanager__page .namespaces h2{font-size:1em;display:inline-block;padding:.3em .8em;margin:0 0 0 .3em;border-radius:.5em .5em 0 0;font-weight:normal;background-color:#eee;color:#333;border:1px solid #ccc;border-bottom-color:#eee;line-height:1.4em;position:relative;bottom:-1px;z-index:2;}[dir=rtl] #mediamanager__page .namespaces h2{margin:0 .3em 0 0;position:relative;right:10px;}#mediamanager__page .namespaces .panelHeader{border-top:1px solid #ccc;z-index:1;}#mediamanager__page .namespaces ul{margin-left:.2em;margin-bottom:0;padding:0;list-style:none;}[dir=rtl] #mediamanager__page .namespaces ul{margin-left:0;margin-right:.2em;}#mediamanager__page .namespaces ul ul{margin-left:1em;}[dir=rtl] #mediamanager__page .namespaces ul ul{margin-left:0;margin-right:1em;}#mediamanager__page .namespaces ul ul li{margin:0;}#mediamanager__page .namespaces ul .selected{background-color:#ff9;font-weight:bold;}#mediamanager__page .panelHeader form.options{float:right;margin-top:-3px;}[dir=rtl] #mediamanager__page .panelHeader form.options{float:left;}#mediamanager__page .panelHeader ul{list-style:none;margin:0;padding:0;}#mediamanager__page .panelHeader ul li{color:#333;float:left;line-height:1;padding-left:3px;}[dir=rtl] #mediamanager__page .panelHeader ul li{padding-right:3px;padding-left:0;float:right;}#mediamanager__page .panelHeader ul li.ui-controlgroup-horizontal{padding-left:30px;margin:0 0 0 5px;}#mediamanager__page .panelHeader ul li.listType{background:url('/wiki/lib/tpl/dokuwiki/../../images/icon-list.png') 3px 1px no-repeat;}#mediamanager__page .panelHeader ul li.sortBy{background:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABcAAAAXBAMAAAASBMmTAAAAJFBMVEUAAAAxTmwAAAAAAAAAAAAAAAAAAAAxTmx9o3ezya/R3s/k7OMWHTSjAAAABnRSTlMAVWqhwdU2LKdOAAAAWElEQVR4AWNABeLlhQhOORDi4JSX41GGGyQQIaWAJMiUhCSltkxBDS6R1ZGUBqTT0kCkWkfbNpAoSypIKqOzDcRxMwBrmgHisCSDNWV3tMEl2CBaQSSRAACrsRYJGMgpLgAAAABJRU5ErkJggg==') 3px 1px no-repeat;}[dir=rtl] #mediamanager__page .panelHeader ul li.ui-controlgroup-horizontal{padding-left:0;padding-right:30px;margin:0 5px 0 0;background-position:right 1px;}#mediamanager__page .panelHeader form.options .ui-controlgroup-horizontal label{font-size:90%;margin-right:-0.4em;padding:.3em .5em;line-height:1;}#mediamanager__page .filelist ul{padding:0;margin:0 10px 0 0;}[dir=rtl] #mediamanager__page .filelist ul{margin:0 0 0 10px;}#mediamanager__page .filelist ul.rows{margin:0;}#mediamanager__page .filelist .panelContent ul li:hover{background-color:#eee;}#mediamanager__page .filelist li dt a{vertical-align:middle;display:table-cell;overflow:hidden;}#mediamanager__page .filelist .thumbs li{width:100px;min-height:130px;display:inline-block;margin:0 6px 10px 0;background-color:#ddd;color:#333;padding:5px;vertical-align:top;text-align:center;position:relative;line-height:1.2;}[dir=rtl] #mediamanager__page .filelist .thumbs li{margin-right:0;margin-left:6px;}#mediamanager__page .filelist .thumbs li dt a{width:100px;height:90px;}#mediamanager__page .filelist .thumbs li dt a img{max-width:90px;max-height:90px;}#mediamanager__page .filelist .thumbs li .name,#mediamanager__page .filelist .thumbs li .size,#mediamanager__page .filelist .thumbs li .filesize,#mediamanager__page .filelist .thumbs li .date{display:block;overflow:hidden;text-overflow:ellipsis;width:90px;white-space:nowrap;}#mediamanager__page .filelist .thumbs li .name{padding:5px 0;font-weight:bold;}#mediamanager__page .filelist .thumbs li .date{font-style:italic;white-space:normal;}#mediamanager__page .filelist .rows li{list-style:none;display:block;position:relative;max-height:50px;margin:0 0 3px 0;background-color:#fff;color:#333;overflow:hidden;}#mediamanager__page .filelist .rows li:nth-child(2n+1){background-color:#ddd;}#mediamanager__page .filelist .rows li dt{float:left;width:10%;height:40px;text-align:center;}[dir=rtl] #mediamanager__page .filelist .rows li dt{float:right;}#mediamanager__page .filelist .rows li dt a{width:100px;height:40px;}#mediamanager__page .filelist .rows li dt a img{max-width:40px;max-height:40px;}#mediamanager__page .filelist .rows li .name,#mediamanager__page .filelist .rows li .size,#mediamanager__page .filelist .rows li .filesize,#mediamanager__page .filelist .rows li .date{overflow:hidden;text-overflow:ellipsis;float:left;margin-left:1%;white-space:nowrap;}[dir=rtl] #mediamanager__page .filelist .rows li .name,[dir=rtl] #mediamanager__page .filelist .rows li .size,[dir=rtl] #mediamanager__page .filelist .rows li .filesize,[dir=rtl] #mediamanager__page .filelist .rows li .date{float:right;margin-left:0;margin-right:1%;}#mediamanager__page .filelist .rows li .name{width:30%;font-weight:bold;}#mediamanager__page .filelist .rows li .size,#mediamanager__page .filelist .rows li .filesize{width:15%;}#mediamanager__page .filelist .rows li .date{width:20%;font-style:italic;white-space:normal;}#mediamanager__page div.upload{padding-bottom:.5em;}#mediamanager__page .file ul.actions{text-align:center;margin:0 0 5px;padding:0;list-style:none;}#mediamanager__page .file ul.actions li{display:inline;margin:0;}#mediamanager__page .file div.image{margin-bottom:5px;text-align:center;}#mediamanager__page .file div.image img{width:100%;}#mediamanager__page .file dl{margin-bottom:0;}#mediamanager__page .file dl dt{font-weight:bold;display:block;background-color:#eee;}#mediamanager__page .file dl dd{display:block;background-color:#ddd;}#mediamanager__page form.meta div.row{margin-bottom:5px;}#mediamanager__page form.meta label span{display:block;}#mediamanager__page form.meta input{width:50%;}#mediamanager__page form.meta button{width:auto;}#mediamanager__page form.meta textarea.edit{height:6em;width:95%;min-width:95%;max-width:95%;}#mediamanager__page form.changes ul{margin-left:10px;padding:0;list-style-type:none;}[dir=rtl] #mediamanager__page form.changes ul{margin-left:0;margin-right:10px;}#mediamanager__page form.changes ul li div.li div{font-size:90%;color:#666;padding-left:18px;}[dir=rtl] #mediamanager__page form.changes ul li div.li div{padding-left:0;padding-right:18px;}#mediamanager__page form.changes ul li div.li input{position:relative;top:1px;}#mediamanager__diff table{table-layout:fixed;border-width:0;}#mediamanager__diff td,#mediamanager__diff th{width:48%;margin:0 5px 10px 0;padding:0;vertical-align:top;text-align:left;border-color:#fff;}[dir=rtl] #mediamanager__diff td,[dir=rtl] #mediamanager__diff th{margin:0 0 10px 5px;text-align:right;}#mediamanager__diff th{font-weight:normal;background-color:#fff;line-height:1.2;}#mediamanager__diff th a{font-weight:bold;}#mediamanager__diff th span{font-size:90%;}#mediamanager__diff dl dd strong{background-color:#ff9;color:#333;font-weight:normal;}#mediamanager__page .file form.diffView{margin-bottom:10px;display:block;}#mediamanager__diff div.slider{margin:10px;width:95%;}#mediamanager__diff .imageDiff{position:relative;}#mediamanager__diff .imageDiff .image2{position:absolute;top:0;left:0;}#mediamanager__diff .imageDiff.opacity .image2{opacity:0.5;}#mediamanager__diff .imageDiff.portions .image2{border-right:1px solid red;overflow:hidden;}#mediamanager__diff .imageDiff.portions img{float:left;}#mediamanager__diff .imageDiff img{width:100%;max-width:none;}.qq-uploader{position:relative;width:100%;}.qq-uploader .error{color:#f00;background-color:#fff;}.qq-upload-button{display:inline-block;text-decoration:none;font-size:100%;cursor:pointer;margin:1px 1px 5px;}.qq-upload-button-focus{outline:1px dotted;}.qq-upload-drop-area{position:absolute;top:0;left:0;width:100%;height:100%;min-height:70px;z-index:2;background:#ddd;color:#333;text-align:center;}.qq-upload-drop-area span{display:block;position:absolute;top:50%;width:100%;margin-top:-8px;font-size:120%;}.qq-upload-drop-area-active{background:#eee;}div.qq-uploader ul{margin:0;padding:0;list-style:none;}.qq-uploader li{margin:0 0 5px;color:#333;}.qq-uploader li span,.qq-uploader li input,.qq-uploader li a{margin-right:5px;}.qq-upload-file{display:block;font-weight:bold;}.qq-upload-spinner{display:inline-block;background:url("/wiki/lib/tpl/dokuwiki/../../images/throbber.gif");width:15px;height:15px;vertical-align:text-bottom;}.qq-upload-size,.qq-upload-cancel{font-size:85%;}.qq-upload-failed-text{display:none;}.qq-upload-fail .qq-upload-failed-text{display:inline;}.qq-action-container *{vertical-align:middle;}.qq-overwrite-check input{margin-left:10px;}.dokuwiki .tabs > ul,.dokuwiki ul.tabs{padding:0;margin:0;overflow:hidden;position:relative;}.dokuwiki .tabs > ul:after,.dokuwiki ul.tabs:after{position:absolute;content:"";width:100%;bottom:0;left:0;border-bottom:1px solid #ccc;z-index:1;}.dokuwiki .tabs > ul li,.dokuwiki ul.tabs li{float:left;padding:0;margin:0;list-style:none;}[dir=rtl] .dokuwiki .tabs > ul li,[dir=rtl] .dokuwiki ul.tabs li{float:right;}.dokuwiki .tabs > ul li a,.dokuwiki ul.tabs li strong,.dokuwiki ul.tabs li a{display:inline-block;padding:.3em .8em;margin:0 0 0 .3em;background-color:#ddd;color:#333;border:1px solid #ccc;border-radius:.5em .5em 0 0;position:relative;z-index:0;}[dir=rtl] .dokuwiki .tabs > ul li a,[dir=rtl] .dokuwiki ul.tabs li strong,[dir=rtl] .dokuwiki ul.tabs li a{margin:0 .3em 0 0;}.dokuwiki ul.tabs li strong{font-weight:normal;}.dokuwiki .tabs > ul li a:hover,.dokuwiki .tabs > ul li a:active,.dokuwiki .tabs > ul li a:focus,.dokuwiki .tabs > ul li .curid a,.dokuwiki .tabs > ul .active a,.dokuwiki ul.tabs li a:hover,.dokuwiki ul.tabs li a:active,.dokuwiki ul.tabs li a:focus,.dokuwiki ul.tabs li.active a,.dokuwiki ul.tabs li strong{background-color:#eee;color:#333;text-decoration:none;font-weight:normal;}.dokuwiki .tabs > ul li .curid a,.dokuwiki .tabs > ul li .active a,.dokuwiki .tabs > ul li .active a,.dokuwiki ul.tabs li.active a,.dokuwiki ul.tabs li strong{z-index:2;border-bottom-color:#eee;}.dokuwiki a.wikilink2{text-decoration:none;}.dokuwiki a.wikilink2:link,.dokuwiki a.wikilink2:visited{border-bottom:1px dashed;}.dokuwiki a.wikilink2:hover,.dokuwiki a.wikilink2:active,.dokuwiki a.wikilink2:focus{border-bottom-width:0;}.dokuwiki span.curid a{font-weight:bold;}.dokuwiki a.urlextern,.dokuwiki a.windows,.dokuwiki a.mail,.dokuwiki a.mediafile,.dokuwiki a.interwiki{background-repeat:no-repeat;background-position:0 center;padding:0 0 0 18px;}.dokuwiki a.urlextern{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAABdklEQVR4AWMgAVRo1zY3rGk41rC+rqvCBCJWBpPM4WoomLHtdtuv/t9Lfk263TtrQ0t7Oj9cbzZDc/W6s/8T7khD+P+F/8bv29PZlswJVVBu0vPuVZyNYHFZbmAqE1SR0cbjXR6pjGBO58am962Ta3e3ftqy6B5LCcMasOj7gInrm9jBzI4vTX+bfjT/7/4/p/w/zFXybUmt71u4wJzGfxP/t/xvA+KaP2XnQSKVFpWPav/U/6+HKJjz++OVJUDp1n9N/+r+19QyMCz1mPC/8X/X/26Igrn3GiUeL5n/v+F/8//6/9NOMTC0hDUDefP/L4MoOL6ickVeSQ1QqAGooPdBJE/lnloge/fhixBHftFd9bLkR83/+n/1QAXVP8qX1Pyv/L/s/12f/4xQNz8s3Pa/6X/Vvzqgour/5f/r/q//f2fmLy54WP7lfJN74eMSoKIyoNFz/5/+9ar+Px9aZL3Xfjvz7aO3/96+eLvsnSVE7CPhOAYA9nvIX0UoNU8AAAAASUVORK5CYII=);}.dokuwiki a.windows{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAA6UlEQVR4AWMYkqAMTFYwlCKESoOrrlVdrbpeub0sCcRPYCk0QtHT8LblfxsQtvyr+1t1qkStZkfvlrKGksA81iIFsILOf+3/O/51/G/9v/Bfy/+GLwfPz7kz+cOEAzXX6p+BFRx4Ovf/rP+T/7f87/lw4PfEv93vd+xf82Ti36l/XxwEK/jv+2/B/zX3Tiz6W/e/8uOm73Peth3q+LP0/9M1/7mRXPJf/OG03f8m/i/53/Bvzv+DLz7U/+eCS34EQqASnm9h146d/3/h/d2FP+3/o/v/I9Scf+r/lf7zgdif0JV8QtNAJAAAS/98wKXZc5gAAAAASUVORK5CYII=);}.dokuwiki a.mail{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAABOUlEQVR4AaXJMWoUUQDG8f/33ltldyZB3E2xaCAxIQREFKwD2lhb6QmsxMIL6BlU8AhCjmBADdqlWLyACKZKF7LZmUzmzXwiSMTKwl/7478Jng9OXa5fviRzwTS5/j40OcHo2fSofH10tUcXHVg9q54cj3kleOnRj/uHh3e+FVgCbK2drX/dn5xuogAD8uqnyfXZRi3J+tXN2uxj2WwkEgFw0vnW3srmwbU2K2uat2fvi/ObSbII0Kl3VL+9O975PPXEOwe7sb8dZXfqSGB6YWm89Wb+dF+jt+3K3ZoeYUDwwgOjK14wV7tHNXhYUvgEqzUhQeegZVcsSOYBRFeCIXN3ggBoiYYTJBOJIHmhhiWEEHzwl3ycIhjxm5y1nO8FYoJbj268A0D8ISAWj0HQyEOE+Zuwasy//ATU93+97E8p8AAAAABJRU5ErkJggg==);}[dir=rtl] .dokuwiki a.urlextern,[dir=rtl] .dokuwiki a.windows,[dir=rtl] .dokuwiki a.mail,[dir=rtl] .dokuwiki a.interwiki,[dir=rtl] .dokuwiki a.mediafile{background-position:right center;padding:0 18px 0 0;}#dw__toc{float:right;margin:0 0 1.4em 1.4em;width:12em;background-color:#eee;color:inherit;}[dir=rtl] #dw__toc{float:left;margin:0 1.4em 1.4em 0;}.dokuwiki h3.toggle{padding:.2em .5em;font-weight:bold;}.dokuwiki .toggle strong{float:right;margin:0 .2em;}[dir=rtl] .dokuwiki .toggle strong{float:left;}#dw__toc > div{padding:.2em .5em;}#dw__toc ul{padding:0;margin:0;}#dw__toc ul li{list-style:none;padding:0;margin:0;line-height:1.1;}#dw__toc ul li div.li{padding:.15em 0;}#dw__toc ul ul{padding-left:1em;}[dir=rtl] #dw__toc ul ul{padding-left:0;padding-right:1em;}.dokuwiki ul.idx{padding-left:0;}[dir=rtl] .dokuwiki ul.idx{padding-right:0;}.dokuwiki ul.idx li{list-style-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAHAQMAAAD+nMWQAAAABlBMVEUAAACZmZl+9SADAAAAAXRSTlMAQObYZgAAAA1JREFUeAFjsIFCMAAACW4A8TlryZgAAAAASUVORK5CYII=);}.dokuwiki ul.idx li.open{list-style-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAHAQMAAAD+nMWQAAAABlBMVEUAAACZmZl+9SADAAAAAXRSTlMAQObYZgAAABNJREFUeAFj+AeENQwWDAIMQAAAHhICwcrz0MAAAAAASUVORK5CYII=);}.dokuwiki ul.idx li.closed{list-style-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAJAQMAAADAY3TdAAAABlBMVEUAAACZmZl+9SADAAAAAXRSTlMAQObYZgAAABZJREFUeAFjZmA+wNwAhiXMGcwBzAsAI6QEKNehQp8AAAAASUVORK5CYII=);}[dir=rtl] .dokuwiki ul.idx li.closed{list-style-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAJAQMAAADAY3TdAAAABlBMVEUAAACZmZl+9SADAAAAAXRSTlMAQObYZgAAABdJREFUeAFjYGCQYFJgcmD4wfwHBBkYAB3ABHJeYPgfAAAAAElFTkSuQmCC);}div.insitu-footnote{max-width:40%;min-width:5em;}.dokuwiki div.footnotes{border-top:1px solid #ccc;padding:.5em 0 0 0;margin:1em 0 0 0;clear:both;}.dokuwiki div.footnotes div.fn div.content{display:inline;}.dokuwiki div.footnotes div.fn sup a.fn_bot{font-weight:bold;}.dokuwiki .search_hit{color:#333;background-color:#ff9;}.dokuwiki div.nothing{margin-bottom:1.4em;}.dokuwiki .search-results-form fieldset.search-form{width:100%;margin:1em 0;}.dokuwiki .search-results-form fieldset.search-form input[name="q"]{width:50%;}.dokuwiki .search-results-form fieldset.search-form button.toggleAssistant{float:right;}.dokuwiki .search-results-form fieldset.search-form .advancedOptions{padding:1em 0;}.dokuwiki .search-results-form fieldset.search-form .advancedOptions > div{display:inline-block;position:relative;margin:0 .5em;}.dokuwiki .search-results-form fieldset.search-form .advancedOptions div.toggle div.current{cursor:pointer;max-width:10em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.dokuwiki .search-results-form fieldset.search-form .advancedOptions div.toggle div.current::after{content:'â–¼';font-size:smaller;color:#999;}.dokuwiki .search-results-form fieldset.search-form .advancedOptions div.toggle div.changed{font-weight:bold;}.dokuwiki .search-results-form fieldset.search-form .advancedOptions div.toggle ul{display:none;position:absolute;border:1px solid #ccc;background-color:#fff;padding:.25em .5em;text-align:left;min-width:10em;max-width:15em;max-height:50vh;overflow:auto;z-index:100;}.dokuwiki .search-results-form fieldset.search-form .advancedOptions div.toggle ul li{margin:.25em 0;list-style:none;}.dokuwiki .search-results-form fieldset.search-form .advancedOptions div.toggle ul li a{display:block;}.dokuwiki .search-results-form fieldset.search-form .advancedOptions div.toggle.open div.current::after{content:'â–²';}.dokuwiki .search-results-form fieldset.search-form .advancedOptions div.toggle.open ul{display:block;}[dir=rtl] .search-results-form fieldset.search-form .advancedOptions div.toggle ul{text-align:right;}.dokuwiki div.search_quickresult{margin-bottom:1.4em;}.dokuwiki div.search_quickresult ul{padding:0;}.dokuwiki div.search_quickresult ul li{float:left;width:12em;margin:0 1.5em;}[dir=rtl] .dokuwiki div.search_quickresult ul li{float:right;}.dokuwiki dl.search_results{margin-bottom:1.2em;}.dokuwiki dl.search_results dt{font-weight:normal;margin-bottom:.2em;}.dokuwiki dl.search_results dd.meta{margin:0 0 .2em 0;}.dokuwiki dl.search_results dd.snippet{color:#999;background-color:inherit;margin:0 0 1.2em 0;}.dokuwiki dl.search_results dd.snippet strong.search_hit{font-weight:normal;}.dokuwiki dl.search_results dd.snippet .search_sep{color:#333;background-color:inherit;}.dokuwiki form.search div.no{position:relative;}.dokuwiki form.search div.ajax_qsearch{position:absolute;top:0;left:-13.5em;width:12em;padding:.5em;font-size:.9em;z-index:20;text-align:left;display:none;}.dokuwiki form.search div.ajax_qsearch strong{display:block;margin-bottom:.3em;}.dokuwiki form.search div.ajax_qsearch ul{margin:0 !important;padding:0 !important;}.dokuwiki form.search div.ajax_qsearch ul li{margin:0;padding:0;display:block !important;}[dir=rtl] .dokuwiki form.search div.ajax_qsearch{left:auto;right:-13.5em;text-align:right;}.dokuwiki .changeType{margin-bottom:.5em;}.dokuwiki form.changes ul li{list-style:none;margin-left:0;}[dir=rtl] .dokuwiki form.changes ul li{margin-right:0;}.dokuwiki form.changes ul li span,.dokuwiki form.changes ul li a{vertical-align:middle;}.dokuwiki form.changes ul li span.user a{vertical-align:bottom;}.dokuwiki form.changes ul li.minor{opacity:.7;}.dokuwiki form.changes li a.diff_link{vertical-align:baseline;}.dokuwiki form.changes li a.revisions_link{vertical-align:baseline;}.dokuwiki form.changes li span.sum{font-weight:bold;}.dokuwiki form.changes li .sizechange{font-size:80%;border-radius:.2em;padding:.1em .2em;background-color:#ddd;}.dokuwiki form.changes li .sizechange.positive{background-color:#cfc;}.dokuwiki form.changes li .sizechange.negative{background-color:#fdd;}.dokuwiki div.pagenav{text-align:center;margin:1.4em 0;}.dokuwiki div.pagenav-prev,.dokuwiki div.pagenav-next{display:inline;margin:0 .5em;}.dokuwiki table.diff{width:100%;border-width:0;}.dokuwiki table.diff th,.dokuwiki table.diff td{vertical-align:top;padding:0;border-width:0;background-color:#fff;color:#333;}.dokuwiki table.diff th{border-bottom:1px solid #ccc;font-size:110%;font-weight:normal;}.dokuwiki table.diff th a{font-weight:bold;}.dokuwiki table.diff th span.user{font-size:.9em;}.dokuwiki table.diff th span.sum{font-size:.9em;font-weight:bold;}.dokuwiki table.diff th.minor{color:#999;}.dokuwiki table.diff_sidebyside th{width:50%;}.dokuwiki table.diff .diff-lineheader{width:.7em;text-align:right;}[dir=rtl] .dokuwiki table.diff .diff-lineheader{text-align:left;}.dokuwiki table.diff .diff-lineheader,.dokuwiki table.diff td{font-family:Consolas,"Andale Mono WT","Andale Mono","Bitstream Vera Sans Mono","Nimbus Mono L",Monaco,"Courier New",monospace;}.dokuwiki table.diff td.diff-blockheader{font-weight:bold;}.dokuwiki table.diff .diff-addedline{background-color:#cfc;color:inherit;}.dokuwiki table.diff .diff-deletedline{background-color:#fdd;color:inherit;}.dokuwiki table.diff td.diff-context{background-color:#eee;color:inherit;}.dokuwiki table.diff td.diff-addedline strong,.dokuwiki table.diff td.diff-deletedline strong{color:#f00;background-color:inherit;font-weight:bold;}.dokuwiki .diffoptions form{float:left;}.dokuwiki .diffoptions p{float:right;}.dokuwiki table.diff_sidebyside td.diffnav{padding-bottom:.7em;}.dokuwiki .diffnav a{display:inline-block;vertical-align:middle;}.dokuwiki .diffnav a span{display:none;}.dokuwiki .diffnav a:hover,.dokuwiki .diffnav a:active,.dokuwiki .diffnav a:focus{background-color:#eee;text-decoration:none;}.dokuwiki .diffnav a:before{display:inline-block;line-height:1;padding:.2em .4em;border:1px solid #ccc;border-radius:2px;color:#333;}.dokuwiki .diffnav a.diffprevrev:before{content:'\25C0';}.dokuwiki .diffnav a.diffnextrev:before,.dokuwiki .diffnav a.difflastrev:before{content:'\25B6';}.dokuwiki .diffnav a.diffbothprevrev:before{content:'\25C0\25C0';}.dokuwiki .diffnav a.diffbothnextrev:before{content:'\25B6\25B6';}.dokuwiki .diffnav select{width:60%;min-width:9em;height:1.5em;}.dokuwiki .diffnav select option[selected]{font-weight:bold;}.dokuwiki div.toolbar{margin-bottom:.5em;}#draft__status{float:right;color:#999;background-color:inherit;}[dir=rtl] #draft__status{float:left;}#tool__bar{float:left;}[dir=rtl] #tool__bar{float:right;}div.picker{width:300px;border:1px solid #ccc;background-color:#eee;color:inherit;}div.picker.pk_hl{width:auto;}div.picker button.pickerbutton,div.picker button.toolbutton{padding:.1em .35em;border-width:0;}.dokuwiki textarea.edit{width:100%;margin-bottom:.5em;}.dokuwiki div.editBar{overflow:hidden;margin-bottom:.5em;}#size__ctl{float:right;}[dir=rtl] #size__ctl{float:left;}#size__ctl img{cursor:pointer;}.dokuwiki .editBar .editButtons{display:inline;margin-right:1em;}[dir=rtl] .dokuwiki .editBar .editButtons{margin-right:0;margin-left:1em;}.dokuwiki .editBar .summary{display:inline;}.dokuwiki .editBar .summary label{vertical-align:middle;white-space:nowrap;}.dokuwiki .editBar .summary label span{vertical-align:middle;}.dokuwiki .editBar .summary input.missing{color:#333;background-color:#fcc;}.dokuwiki div.preview{border:dotted #ccc;border-width:.2em 0;padding:1.4em 0;margin-bottom:1.4em;}.dokuwiki .secedit{float:right;margin-top:-1.4em;}[dir=rtl] .dokuwiki .secedit{float:left;}.dokuwiki .secedit button{font-size:75%;}.dokuwiki div.section_highlight{margin:0 -1em;padding:0 .5em;border:solid #eee;border-width:0 .5em;}.dokuwiki .ui-widget{font-size:100%;}[dir=rtl] #link__wiz_close{float:left;}#link__wiz_result{background-color:#fff;width:293px;height:193px;overflow:auto;border:1px solid #ccc;margin:3px auto;text-align:left;line-height:1;}[dir=rtl] #link__wiz_result{text-align:right;}#link__wiz_result div{padding:3px 3px 3px 0;}#link__wiz_result div a{display:block;padding-left:22px;min-height:16px;background:transparent 3px center no-repeat;}[dir=rtl] #link__wiz_result div a{padding:3px 22px 3px 3px;background-position:257px 3px;}#link__wiz_result div.type_u a{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAS1BMVEWQobeQobeZp7efsMSsu8yuvM6vvc+vv9GwvtCxv9GywdOzwdO0xde5ydy+z+LD1OjEzdfH2e3J1uTL3fLN2unR3u3U4vHX5fXa6fmfrfPkAAAAAXRSTlMAQObYZgAAAFtJREFUeNp1zOsOQDAMQOEe5jb3Ddv7PymhWRC+f6dpKwrkgbbl0TZGy62b4H1oSF1v82Gr0S7X8bSWnF0sg1oKjjauT5xBgLxTOVxHlUIuJPL2t8Gk0iBTn093r9IEibebz/EAAAAASUVORK5CYII=);}#link__wiz_result div.type_f a{background-image:url(/wiki/lib/tpl/dokuwiki/../../images/page.png);}#link__wiz_result div.type_d a{background-image:url(/wiki/lib/tpl/dokuwiki/../../images/ns.png);}#link__wiz_result div.even{background-color:#ddd;}#link__wiz_result div.selected{background-color:#eee;}#link__wiz_result span{display:block;color:#666;margin-left:22px;}#media__popup{display:none;}#media__popup_content p{margin:0 0 .5em;}#media__popup_content label{margin-right:.5em;cursor:default;}#media__popup_content button{margin-right:1px;cursor:pointer;}.dokuwiki form{border:none;display:inline;}.dokuwiki label.block{display:block;text-align:right;font-weight:bold;}[dir=rtl] .dokuwiki label.block{text-align:left;}.dokuwiki label.simple{display:block;text-align:left;font-weight:normal;}[dir=rtl] .dokuwiki label.simple{text-align:right;}.dokuwiki label.block select,.dokuwiki label.block input.edit{width:50%;}.dokuwiki label span{vertical-align:middle;}.dokuwiki fieldset{width:400px;text-align:center;border:1px solid #ccc;padding:.5em;margin:auto;}.dokuwiki input.edit,.dokuwiki select.edit{vertical-align:middle;}.dokuwiki select.edit{padding:.1em 0;}.dokuwiki button{vertical-align:middle;}#dw__login label[for="remember__me"]{margin-left:50%;margin-bottom:1.4em;}#dw__login fieldset,#dw__resendpwd fieldset,#dw__register fieldset{padding-bottom:.7em;}#dw__profiledelete{display:block;margin-top:2.8em;}#subscribe__form{display:block;width:400px;text-align:center;}#subscribe__form fieldset{text-align:left;margin:.5em 0;}[dir=rtl] #subscribe__form fieldset{text-align:right;}#subscribe__form label{display:block;margin:0 .5em .5em;}.dokuwiki div.ui-admin ul.admin_tasks{float:left;width:40%;list-style-type:none;font-size:1.125em;}[dir=rtl] .dokuwiki div.ui-admin ul.admin_tasks{float:right;}.dokuwiki div.ui-admin ul{padding:0;}.dokuwiki div.ui-admin ul li{margin:0 0 1em 0;font-weight:bold;list-style-type:none;white-space:nowrap;}.dokuwiki div.ui-admin ul li a span{display:inline-block;}.dokuwiki div.ui-admin ul li a span.icon{width:1.5em;min-height:1.5em;margin:0 .5em;vertical-align:top;}.dokuwiki div.ui-admin ul li a span.icon svg{width:1.5em;height:1.5em;fill:#2b73b7;display:inline-block;}.dokuwiki div.ui-admin ul li a span.icon svg path{fill:#2b73b7;}.dokuwiki div.ui-admin ul li a span.prompt{white-space:normal;}.dokuwiki div.ui-admin #admin__version{clear:left;float:right;color:#666;background-color:inherit;}[dir=rtl] .dokuwiki div.ui-admin #admin__version{clear:right;float:left;}body{margin:0 auto;}#dokuwiki__site{margin:0 auto;max-width:75em;}#dokuwiki__site > .site{padding:0 .5em;}#dokuwiki__header{width:100%;}#dokuwiki__header .headings{float:left;}#dokuwiki__header .tools{float:right;text-align:right;}[dir=rtl] #dokuwiki__header .headings{float:right;text-align:right;}[dir=rtl] #dokuwiki__header .tools{float:left;text-align:left;}#dokuwiki__site .wrapper{position:relative;}#dokuwiki__aside{width:16em;float:left;position:relative;display:block;}#dokuwiki__aside > .pad{margin:0 1.5em 0 0;}[dir=rtl] #dokuwiki__aside{float:right;}[dir=rtl] #dokuwiki__aside > .pad{margin:0 0 0 1.5em;}.showSidebar #dokuwiki__content{float:right;margin-left:-16em;width:100%;}.showSidebar #dokuwiki__content > .pad{margin-left:16em;}[dir=rtl] .showSidebar #dokuwiki__content{float:left;margin-left:0;margin-right:-16em;}[dir=rtl] .showSidebar #dokuwiki__content > .pad{margin-left:0;margin-right:16em;}#dokuwiki__footer{clear:both;}#dokuwiki__header{padding:2em 0 1.5em;}#dokuwiki__header .headings,#dokuwiki__header .tools{margin-bottom:1.5em;width:49%;}#dokuwiki__header .tools{margin-top:.2em;}#dokuwiki__header h1{margin:0;font-size:1.5em;font-weight:normal;}#dokuwiki__header h1 img{float:left;margin-right:.5em;}#dokuwiki__header h1 span{display:block;padding-top:10px;}#dokuwiki__header h1 a{text-decoration:none;color:#333;background-color:inherit;}#dokuwiki__header p.claim{margin-bottom:0;font-size:.875em;}#dokuwiki__header a{color:#2b73b7;background-color:inherit;}[dir=rtl] #dokuwiki__header h1 img{float:right;margin-left:.5em;margin-right:0;}.mode_admin a.action.admin,.mode_login a.action.login,.mode_register a.action.register,.mode_profile a.action.profile,.mode_recent a.action.recent,.mode_index a.action.index,.mode_media a.action.media,.mode_revisions a.action.revs,.mode_backlink a.action.backlink,.mode_subscribe a.action.subscribe{font-weight:bold;}#dokuwiki__header .tools ul{padding-left:0;margin-bottom:0;}#dokuwiki__header .tools li{font-size:.875em;margin-left:1em;list-style:none;display:inline;}#dokuwiki__header .tools form.search div.ajax_qsearch li{font-size:1em;margin-left:0;display:block;overflow:hidden;text-overflow:ellipsis;}[dir=rtl] #dokuwiki__header .tools li{margin-right:1em;margin-left:0;}#dokuwiki__header .mobileTools{display:none;}#dokuwiki__sitetools{text-align:right;}#dokuwiki__sitetools form.search{font-size:.875em;}[dir=rtl] #dokuwiki__sitetools{text-align:left;}form.search{display:block;position:relative;margin-bottom:.5em;}form.search input{width:18em;padding:.35em 22px .35em .1em;}form.search button{background:transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAMAAAAolt3jAAAAY1BMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmaHTeAAAAIXRSTlMHNEEkTD4WPVEtKzcMQ1NATkc4VFJGHDEhJ0Q6RS8uVQBDAjEGAAAAXklEQVR4AS3HVQ4CUQDF0MHdGZfe/a+SNLz+NKeKNSnJCTj2Sn55rl9w+XNiTNLfaWRFHZsZ5cYZtew4xK7cZD7EBmaZFdtz9gO0MtlRWmTSvafH3GpZOulCWwBpxT/nGxX5oR8AJgAAAABJRU5ErkJggg==) no-repeat 0 0;border-width:0;width:19px;height:14px;text-indent:-99999px;margin-left:-20px;box-shadow:none;padding:0;}[dir=rtl] form.search input{padding:.35em .1em .35em 22px;}[dir=rtl] form.search button{background-position:5px 0;margin-left:0;margin-right:-20px;position:relative;}.dokuwiki div.breadcrumbs{border-top:1px solid #ccc;border-bottom:1px solid #fff;margin-bottom:.5em;font-size:.875em;clear:both;}.dokuwiki div.breadcrumbs div{padding:.1em .35em;}.dokuwiki div.breadcrumbs div:only-child{border-top:1px solid #fff;border-bottom:1px solid #ccc;}.dokuwiki div.breadcrumbs div:first-child{border-top:1px solid #fff;}.dokuwiki div.breadcrumbs div:last-child{border-bottom:1px solid #ccc;}.dokuwiki div.breadcrumbs .bcsep{font-size:.75em;}.dokuwiki .aside{font-size:.875em;overflow:hidden;word-wrap:break-word;}.dokuwiki .aside h1{font-size:1.714em;margin-bottom:.292em;}.dokuwiki .aside h2{margin-bottom:.333em;}.dokuwiki .aside h3{margin-bottom:.444em;}.dokuwiki .aside h4{margin-bottom:.5em;}.dokuwiki .aside h5{margin-bottom:.5714em;}.dokuwiki .aside p,.dokuwiki .aside ul,.dokuwiki .aside ol,.dokuwiki .aside dl,.dokuwiki .aside pre,.dokuwiki .aside table,.dokuwiki .aside fieldset,.dokuwiki .aside hr,.dokuwiki .aside blockquote,.dokuwiki .aside address{margin-bottom:.7em;}.dokuwiki .aside ul,.dokuwiki .aside ol{padding-left:.5em;}.dokuwiki .aside li ul,.dokuwiki .aside li ol{margin-bottom:0;padding:0;}.dokuwiki .aside a:link,.dokuwiki .aside a:visited{color:#2b73b7;background-color:inherit;}[dir=rtl] .dokuwiki .aside ul,[dir=rtl] .dokuwiki .aside ol{padding-right:.5em;}.dokuwiki .pageId{float:right;margin-right:-1em;margin-bottom:-1px;margin-top:-1.5em;overflow:hidden;padding:.5em 1em 0;}.dokuwiki .pageId span{font-size:.875em;border:solid #eee;border-width:1px 1px 0;background-color:#fff;color:#999;padding:.1em .35em;border-top-left-radius:2px;border-top-right-radius:2px;box-shadow:0 0 .5em #999;display:block;}.dokuwiki div.page{clear:both;background:#fff;color:inherit;border:1px solid #eee;box-shadow:0 0 .5em #999;border-radius:2px;padding:1.556em 2em 2em;margin-bottom:.5em;overflow:hidden;word-wrap:break-word;}.dokuwiki .docInfo{font-size:.875em;text-align:right;}.dokuwiki div.license{font-size:93.75%;}[dir=rtl] .dokuwiki .docInfo{text-align:left;}[dir=rtl] .dokuwiki .pageId{float:left;margin-left:-1em;margin-right:0;}.dokuwiki .wrapper{margin-bottom:1.4em;}#dokuwiki__footer{margin-bottom:1em;text-align:center;}#dokuwiki__footer > .pad{font-size:.875em;}#dokuwiki__footer div.license{margin-bottom:.5em;font-size:100%;}#dokuwiki__footer div.buttons a img{opacity:0.5;}#dokuwiki__footer div.buttons a:hover img,#dokuwiki__footer div.buttons a:active img,#dokuwiki__footer div.buttons a:focus img{opacity:1;}[dir=rtl] #dokuwiki__footer .license img{margin:0 0 0 .5em;}#dokuwiki__usertools{position:absolute;top:.5em;right:40px;text-align:right;width:100%;}#dokuwiki__usertools ul{margin:0 auto;padding:0;max-width:75em;}#dokuwiki__usertools li.action a{display:inline-flex;flex-direction:row-reverse;flex-wrap:nowrap;}#dokuwiki__usertools li.action a svg{height:1.4em;width:1.4em;vertical-align:middle;fill:#ccc;margin-right:.2em;}#dokuwiki__usertools li.action a:hover svg,#dokuwiki__usertools li.action a:active svg{fill:#2b73b7;}[dir=rtl] #dokuwiki__usertools{text-align:left;left:40px;right:auto;}[dir=rtl] #dokuwiki__usertools li.action a svg{margin-right:0;margin-left:.2em;}#dokuwiki__site > .site{padding-right:40px;padding-left:40px;}.dokuwiki div.page{height:190px;min-height:190px;height:auto;}#dokuwiki__pagetools{position:absolute;right:-44px;top:2em;width:44px;}#dokuwiki__pagetools div.tools{position:fixed;width:44px;}#dokuwiki__pagetools div.tools ul{position:absolute;right:0;text-align:right;margin:0;padding:0;border:1px solid transparent;z-index:10;}#dokuwiki__pagetools div.tools ul li{padding:0;margin:0;list-style:none;font-size:.875em;}#dokuwiki__pagetools div.tools ul li a{display:block;border:1px solid transparent;white-space:nowrap;line-height:36px;vertical-align:middle;height:36px;}#dokuwiki__pagetools div.tools ul li a span{display:none;margin:0 8px;}#dokuwiki__pagetools div.tools ul li a svg{width:28px;height:28px;margin:0 8px;display:inline-block;vertical-align:middle;fill:#ccc;}#dokuwiki__pagetools div.tools ul li a:active,#dokuwiki__pagetools div.tools ul li a:focus,#dokuwiki__pagetools div.tools ul li a:hover{background-color:#eee;}#dokuwiki__pagetools div.tools ul li a:active span,#dokuwiki__pagetools div.tools ul li a:focus span,#dokuwiki__pagetools div.tools ul li a:hover span{display:inline-block;}#dokuwiki__pagetools div.tools ul li a:active svg,#dokuwiki__pagetools div.tools ul li a:focus svg,#dokuwiki__pagetools div.tools ul li a:hover svg{fill:#2b73b7;}[dir=rtl] #dokuwiki__pagetools{right:auto;left:-44px;}[dir=rtl] #dokuwiki__pagetools div.tools ul{right:auto;left:0;text-align:left;}#dokuwiki__pagetools:hover div.tools ul{background-color:#fff;border-color:#ccc;border-radius:2px;box-shadow:2px 2px 2px #999;}#dokuwiki__pagetools:hover div.tools ul li a span{display:inline-block;}.dokuwiki a.wikilink1{color:#080;background-color:inherit;}.dokuwiki a.wikilink2{color:#d30;background-color:inherit;}.dokuwiki img.media{margin:.2em 0;}.dokuwiki img.medialeft{margin:.2em 1em .2em 0;}.dokuwiki img.mediaright{margin:.2em 0 .2em 1em;}.dokuwiki img.mediacenter{margin:.2em auto;}.dokuwiki .page ul li,.dokuwiki .aside ul li{color:#999;}.dokuwiki .page ol li,.dokuwiki .aside ol li{color:#666;}.dokuwiki .page li .li,.dokuwiki .aside li .li{color:#333;}.dokuwiki div.table{overflow-x:auto;margin-bottom:1.4em;}.dokuwiki div.table table{margin-bottom:0;}.dokuwiki table.inline{min-width:50%;}.dokuwiki table.inline tr:hover td{background-color:#eee;}.dokuwiki table.inline tr:hover th{background-color:#ccc;}.dokuwiki em.u code{text-decoration:underline;}.dokuwiki dl.code dt,.dokuwiki dl.file dt{background-color:#fbfaf9;background:linear-gradient(to bottom,#eee 0,#fbfaf9 100%);color:inherit;border:1px solid #ccc;border-bottom-color:#fbfaf9;border-top-left-radius:.3em;border-top-right-radius:.3em;padding:.3em .6em .1em;margin-bottom:-1px;float:left;}.dokuwiki dl.code dt a,.dokuwiki dl.file dt a{background-color:transparent;font-size:.875em;font-weight:normal;display:block;min-height:16px;}.dokuwiki dl.code dd,.dokuwiki dl.file dd{margin:0;clear:left;}.dokuwiki dl.code pre,.dokuwiki dl.file pre{box-shadow:inset -4px -4px .5em -0.3em #ccc;}[dir=rtl] .dokuwiki dl.code dt,[dir=rtl] .dokuwiki dl.file dt{float:right;}[dir=rtl] .dokuwiki dl.code dd,[dir=rtl] .dokuwiki dl.file dd{clear:right;}.dokuwiki dl.file pre,.dokuwiki dl.file dt{border-style:dashed;}.dokuwiki dl.file dt{border-bottom-style:solid;}.JSpopup{background-color:#fff;color:#333;border:1px solid #ccc;box-shadow:.1em .1em .1em #ccc;border-radius:2px;padding:.3em .5em;font-size:.9em;}.dokuwiki form.search div.ajax_qsearch{top:-0.35em;font-size:1em;text-overflow:ellipsis;}.JSpopup ul,.JSpopup ol{padding-left:0;}[dir=rtl] .JSpopup ul,[dir=rtl] .JSpopup ol{padding-right:0;}#acl__tree li{margin:0;}#dokuwiki__content span.curid a{font-weight:normal;}#dokuwiki__content strong span.curid a{font-weight:bold;}.dokuwiki div.toolbar button.toolbutton{border-radius:0;border-left-width:0;padding:.1em .35em;}.dokuwiki div.toolbar button.toolbutton:first-child{border-top-left-radius:4px;border-bottom-left-radius:4px;border-left-width:1px;}.dokuwiki div.toolbar button.toolbutton:last-child{border-top-right-radius:4px;border-bottom-right-radius:4px;}[dir=rtl] .dokuwiki div.toolbar button.toolbutton:last-child{border-top-left-radius:4px;border-bottom-left-radius:4px;border-top-right-radius:0;border-bottom-right-radius:0;border-left-width:1px;}[dir=rtl] .dokuwiki div.toolbar button.toolbutton:first-child{border-top-left-radius:0;border-bottom-left-radius:0;border-top-right-radius:4px;border-bottom-right-radius:4px;border-left-width:0;border-right-width:1px;}.dokuwiki div.section_highlight{margin:0 -2em;padding:0 1em;border-width:0 1em;}.dokuwiki textarea.edit{font-family:Consolas,"Andale Mono WT","Andale Mono","Bitstream Vera Sans Mono","Nimbus Mono L",Monaco,"Courier New",monospace;}.dokuwiki div.preview{margin:0 -2em;padding:0 2em;}.dokuwiki.hasSidebar div.preview{border-right:16em solid #eee;}[dir=rtl] .dokuwiki.hasSidebar div.preview{border-right-width:0;border-left:16em solid #eee;}.dokuwiki div.preview div.pad{padding:1.556em 0 2em;}#dw__toc{margin:-1.556em -2em .5em 1.4em;width:16em;border-left:1px solid #ccc;background:#fff;color:inherit;}[dir=rtl] #dw__toc{margin:-1.556em 1.4em .5em -2em;border-left-width:0;border-right:1px solid #ccc;}.dokuwiki h3.toggle{padding:.5em 1em;margin-bottom:0;font-size:.875em;letter-spacing:.1em;}#dokuwiki__aside h3.toggle{display:none;}.dokuwiki .toggle strong{background:transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAKCAMAAAC+Ge+yAAAAQlBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACO4fbyAAAAFnRSTlMONR0rATsVCD8ELigXODwpSSMnMjcAXQ+QPwAAADhJREFUeNo9jMcJADAMA53ee7z/qnE+AiEOVIiZzREj0Zz+g+1XxSSw29g3M4Wz9CquAhChjDkOH9FOBKVcmAk8AAAAAElFTkSuQmCC) 0 0;width:8px;height:5px;margin:.4em 0 0;}.dokuwiki .toggle.closed strong{background-position:0 -5px;}.dokuwiki .toggle strong span{display:none;}#dw__toc > div{font-size:.875em;padding:.5em 1em 1em;}#dw__toc ul{padding:0 0 0 1.2em;}#dw__toc ul li{list-style-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAHAgMAAAC9yW99AAAACVBMVEUAAADd3d27u7saETAbAAAAAXRSTlMAQObYZgAAABZJREFUeAFj4GBg0GJgWNYAJIFsCAAAFSEBi77tmgYAAAAASUVORK5CYII=);}#dw__toc ul li.clear{list-style:none;}#dw__toc ul li div.li{padding:.2em 0;}[dir=rtl] #dw__toc ul{padding:0 1.5em 0 0;}#dokuwiki__detail{padding:0;}#dokuwiki__detail img{float:none;margin-bottom:1.4em;}#dokuwiki__detail div.img_detail{float:none;}#dokuwiki__detail div.img_detail dl{overflow:hidden;}#dokuwiki__detail div.img_detail dl dt{float:left;width:9em;text-align:right;clear:left;}#dokuwiki__detail div.img_detail dl dd{margin-left:9.5em;}[dir=rtl] #dokuwiki__detail div.img_detail dl dt{float:right;text-align:left;clear:right;}[dir=rtl] #dokuwiki__detail div.img_detail dl dd{margin-left:0;margin-right:9.5em;}}div.clearer{clear:both;font-size:0;line-height:0;height:0;overflow:hidden;}.group{display:inline-block;}.group{display:block;}.group:before,.group:after{content:"";display:table;}.group:after{clear:both;}div.no{display:inline;margin:0;padding:0;}.hidden{display:none;}.medialeft{float:left;}.mediaright{float:right;}.mediacenter{display:block;margin-left:auto;margin-right:auto;}.leftalign{text-align:left;}.centeralign{text-align:center;}.rightalign{text-align:right;}[dir=rtl] .leftalign{text-align:left;}[dir=rtl] .centeralign{text-align:center;}[dir=rtl] .rightalign{text-align:right;}em.u{font-style:normal;text-decoration:underline;}em em.u{font-style:italic;}@media only screen and (max-width:600px){#extension__list .legend > div{padding-left:0;}#extension__list .legend div.screenshot{margin:0 .5em .5em 0;}#extension__list .legend h2{width:auto;float:none;}#extension__list .legend div.linkbar{clear:left;}[dir=rtl] #extension__list .legend > div{padding-right:0;}[dir=rtl] #extension__list .legend div.screenshot{margin:0 0 .5em .5em;}[dir=rtl] #extension__list .legend div.linkbar{clear:right;}}#screen__mode{position:relative;z-index:0;}@media only screen and (max-width:800px){#screen__mode{z-index:1;}#dokuwiki__aside{width:100%;float:none;margin-bottom:1.5em;}#dokuwiki__aside > .pad,[dir=rtl] #dokuwiki__aside > .pad{margin:0 0 .5em;background:#fff;color:inherit;border:1px solid #eee;box-shadow:0 0 .5em #999;border-radius:2px;padding:1em;margin-bottom:.5em;}#dokuwiki__aside h3.toggle{font-size:1em;}#dokuwiki__aside h3.toggle.closed{margin-bottom:0;padding-bottom:0;}#dokuwiki__aside h3.toggle.open{border-bottom:1px solid #ccc;}.showSidebar #dokuwiki__content{float:none;margin-left:0;width:100%;}.showSidebar #dokuwiki__content > .pad{margin-left:0;}[dir=rtl] .showSidebar #dokuwiki__content,[dir=rtl] .showSidebar #dokuwiki__content > .pad{margin-right:0;}.dokuwiki.hasSidebar div.preview{border-right:none;}[dir=rtl] .dokuwiki.hasSidebar div.preview{border-left:none;}#dw__toc{float:none;margin:0 0 1em 0;width:auto;border-left-width:0;border-bottom:1px solid #ccc;}[dir=rtl] #dw__toc{float:none;margin:0 0 1em 0;border-right-width:0;}.dokuwiki h3.toggle{padding:0 .5em .5em 0;}#dw__toc > div,#dokuwiki__aside div.content{padding:.2em 0 .5em;}.dokuwiki div.page{padding:1em;}.mode_media div.page{overflow:auto;}#dokuwiki__pagetools{top:0;}.showSidebar #dokuwiki__pagetools{top:3.5em;}.dokuwiki div.section_highlight{margin:0 -1em;padding:0 .5em;border-width:0 .5em;}.dokuwiki div.preview{margin:0 -1em;padding:1em;}.dokuwiki form.changes ul{padding-left:0;}[dir=rtl] .dokuwiki form.changes ul{padding-right:0;}}@media only screen and (max-width:480px){#screen__mode{z-index:2;}body{font-size:100%;}#dokuwiki__site{max-width:100%;}#dokuwiki__site > .site{padding:0 .5em;}#dokuwiki__aside{margin-bottom:0;}#dokuwiki__header{padding:.5em 0;}#dokuwiki__header ul.a11y.skip{position:static !important;left:0 !important;width:auto !important;height:auto !important;float:right;font-size:.875em;list-style:none;padding-left:0;margin:0;}#dokuwiki__header ul.a11y.skip li{margin-left:.35em;display:inline;}[dir=rtl] #dokuwiki__header ul.a11y.skip{left:auto !important;right:0 !important;float:left;padding-right:0;}[dir=rtl] #dokuwiki__header ul.a11y.skip li{margin:0 .35em 0 0;}#dokuwiki__header .headings,#dokuwiki__header .tools{float:none;text-align:left;width:auto;margin-bottom:.5em;}[dir=rtl] #dokuwiki__header .headings,[dir=rtl] #dokuwiki__header .tools{float:none;text-align:right;width:auto;}#dokuwiki__sitetools{text-align:left;}[dir=rtl] #dokuwiki__sitetools{text-align:right;}#dokuwiki__usertools,#dokuwiki__sitetools ul,#dokuwiki__sitetools h3,#dokuwiki__pagetools,.dokuwiki div.breadcrumbs,.dokuwiki .pageId{display:none;}#dokuwiki__sitetools form.search{float:left;margin:0 .2em .2em 0;width:49%;}[dir=rtl] #dokuwiki__sitetools form.search{float:right;margin:0 0 .2em .2em;}#dokuwiki__sitetools form.search input{width:100% !important;}.dokuwiki form.search div.ajax_qsearch{display:none !important;}#dokuwiki__header .mobileTools{display:block;font-size:.875em;margin:0 0 .2em 0;float:right;width:49%;}[dir=rtl] #dokuwiki__header .mobileTools{float:left;}#dokuwiki__header .mobileTools select{padding:.3em .1em;width:100% !important;}#dokuwiki__sitetools form.search input,#dokuwiki__header .mobileTools select{height:2.1em;line-height:2.1em;overflow:visible;}#dokuwiki__aside > .pad,.dokuwiki div.page{padding:.5em;}#config__manager fieldset td.value,#config__manager td .input,.dokuwiki fieldset,.dokuwiki input.edit,.dokuwiki textarea{width:auto !important;max-width:100% !important;}.dokuwiki select{max-width:100% !important;}#config__manager fieldset{margin-left:0;margin-right:0;}.dokuwiki label.block{text-align:left;}.dokuwiki label.block span{display:block;}[dir=rtl] .dokuwiki label.block{text-align:right;}.dokuwiki div.section_highlight{margin:0;padding:0;border-width:0;}.dokuwiki div.preview{margin:0 -0.5em;padding:.5em;}}@media only screen and (max-height:400px){#dokuwiki__pagetools div.tools{position:static;}}@media print{div.error,div.info,div.success,div.notify,.secedit,.a11y,.JSpopup,#link__wiz{display:none;}body{font:normal 87.5%/1.3 Garamond,Baskerville,"Hoefler Text","Nimbus Roman No9 L",serif;background-color:#fff;color:#000;}.a11y,audio,video,#dokuwiki__header .tools,#dokuwiki__aside,.dokuwiki .breadcrumbs,.dokuwiki .pageId,#dw__toc,h3.toggle,#dokuwiki__pagetools,#dokuwiki__footer{display:none;}h1,h2,h3,h4,h5,caption,legend{clear:both;}ul{list-style:disc outside;}ol{list-style:decimal outside;}ol ol{list-style-type:lower-alpha;}ol ol ol{list-style-type:upper-roman;}ol ol ol ol{list-style-type:upper-alpha;}ol ol ol ol ol{list-style-type:lower-roman;}a:link,a:visited{text-decoration:none;border-bottom:1pt dotted;color:#333;background-color:inherit;}a.urlextern:after,a.interwiki:after,a.mail:after{content:" [" attr(href) "]";font-size:90%;}pre{font-family:monospace;}dl.code dt,dl.file dt{font-weight:bold;}mark{font-weight:bold;}img{border-width:0;vertical-align:middle;}img.media{margin:.2em 0;}img.medialeft{margin:.2em 1em .2em 0;}img.mediaright{margin:.2em 0 .2em 1em;}img.mediacenter{margin:.2em auto;}blockquote{padding:0 10pt;margin:0;border:solid #ccc;border-width:0 0 0 2pt;}[dir=rtl] blockquote{border-width:0 2pt 0 0;}.dokuwiki div.table{margin-bottom:1.4em;}table{border-collapse:collapse;empty-cells:show;border-spacing:0;border:1pt solid #ccc;}th,td{padding:3pt 5pt;margin:0;vertical-align:top;border:1pt solid #666;}th{font-weight:bold;text-align:left;}[dir=rtl] th{text-align:right;}#dokuwiki__header{border-bottom:2pt solid #ccc;}#dokuwiki__header h1{font-size:1.5em;}#dokuwiki__header h1 a{text-decoration:none;border-width:0;}#dokuwiki__header h1 img{float:left;margin-right:.5em;}[dir=rtl] #dokuwiki__header h1 img{float:right;margin-right:0;margin-left:.5em;}.dokuwiki div.footnotes{clear:both;border-top:1pt dotted #999;margin-top:10pt;}.dokuwiki div.docInfo{font-size:90%;text-align:right;clear:both;padding-top:2pt;border-top:1pt solid #999;margin-top:10pt;}[dir=rtl] .dokuwiki div.docInfo{text-align:left;}}
\ No newline at end of file
diff --git a/wiki/data/cache/9/9480c58e18d507b30da4c62f6a221a01.css.gz b/wiki/data/cache/9/9480c58e18d507b30da4c62f6a221a01.css.gz
deleted file mode 100644
index 69657f2..0000000
--- a/wiki/data/cache/9/9480c58e18d507b30da4c62f6a221a01.css.gz
+++ /dev/null
Binary files differdiff --git a/wiki/data/cache/9/9689bfbd7d43b4a685d7c569561dfe48.i b/wiki/data/cache/9/9689bfbd7d43b4a685d7c569561dfe48.i
deleted file mode 100644
index bad8d4a..0000000
--- a/wiki/data/cache/9/9689bfbd7d43b4a685d7c569561dfe48.i
+++ /dev/null
@@ -1,123 +0,0 @@
-a:1351:{i:0;a:3:{i:0;s:14:"document_start";i:1;a:0:{}i:2;i:0;}i:1;a:3:{i:0;s:6:"header";i:1;a:3:{i:0;s:17:"Formatting Syntax";i:1;i:1;i:2;i:1;}i:2;i:1;}i:2;a:3:{i:0;s:12:"section_open";i:1;a:1:{i:0;i:1;}i:2;i:1;}i:3;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:1;}i:4;a:3:{i:0;s:13:"interwikilink";i:1;a:4:{i:0;s:13:"doku>DokuWiki";i:1;N;i:2;s:4:"doku";i:3;s:8:"DokuWiki";}i:2;i:34;}i:5;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:237:" supports some simple markup language, which tries to make the datafiles to be as readable as possible. This page contains all possible syntax you may use when editing the pages. Simply have a look at the source of this page by pressing ";}i:2;i:51;}i:6;a:3:{i:0;s:18:"doublequoteopening";i:1;a:0:{}i:2;i:288;}i:7;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:14:"Edit this page";}i:2;i:289;}i:8;a:3:{i:0;s:18:"doublequoteclosing";i:1;a:0:{}i:2;i:303;}i:9;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:45:". If you want to try something, just use the ";}i:2;i:304;}i:10;a:3:{i:0;s:12:"internallink";i:1;a:2:{i:0;s:21:"playground:playground";i:1;s:10:"playground";}i:2;i:349;}i:11;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:51:" page. The simpler markup is easily accessible via ";}i:2;i:385;}i:12;a:3:{i:0;s:13:"interwikilink";i:1;a:4:{i:0;s:12:"doku>toolbar";i:1;s:12:"quickbuttons";i:2;s:4:"doku";i:3;s:7:"toolbar";}i:2;i:436;}i:13;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:6:", too.";}i:2;i:465;}i:14;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:471;}i:15;a:3:{i:0;s:13:"section_close";i:1;a:0:{}i:2;i:473;}i:16;a:3:{i:0;s:6:"header";i:1;a:3:{i:0;s:21:"Basic Text Formatting";i:1;i:2;i:2;i:473;}i:2;i:473;}i:17;a:3:{i:0;s:12:"section_open";i:1;a:1:{i:0;i:2;}i:2;i:473;}i:18;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:473;}i:19;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:18:"DokuWiki supports ";}i:2;i:508;}i:20;a:3:{i:0;s:11:"strong_open";i:1;a:0:{}i:2;i:526;}i:21;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:4:"bold";}i:2;i:528;}i:22;a:3:{i:0;s:12:"strong_close";i:1;a:0:{}i:2;i:532;}i:23;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:2:", ";}i:2;i:534;}i:24;a:3:{i:0;s:13:"emphasis_open";i:1;a:0:{}i:2;i:536;}i:25;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:6:"italic";}i:2;i:538;}i:26;a:3:{i:0;s:14:"emphasis_close";i:1;a:0:{}i:2;i:544;}i:27;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:2:", ";}i:2;i:546;}i:28;a:3:{i:0;s:14:"underline_open";i:1;a:0:{}i:2;i:548;}i:29;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:10:"underlined";}i:2;i:550;}i:30;a:3:{i:0;s:15:"underline_close";i:1;a:0:{}i:2;i:560;}i:31;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:5:" and ";}i:2;i:562;}i:32;a:3:{i:0;s:14:"monospace_open";i:1;a:0:{}i:2;i:567;}i:33;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:10:"monospaced";}i:2;i:569;}i:34;a:3:{i:0;s:15:"monospace_close";i:1;a:0:{}i:2;i:579;}i:35;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:26:" texts. Of course you can ";}i:2;i:581;}i:36;a:3:{i:0;s:11:"strong_open";i:1;a:0:{}i:2;i:607;}i:37;a:3:{i:0;s:14:"underline_open";i:1;a:0:{}i:2;i:609;}i:38;a:3:{i:0;s:13:"emphasis_open";i:1;a:0:{}i:2;i:611;}i:39;a:3:{i:0;s:14:"monospace_open";i:1;a:0:{}i:2;i:613;}i:40;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:7:"combine";}i:2;i:615;}i:41;a:3:{i:0;s:15:"monospace_close";i:1;a:0:{}i:2;i:622;}i:42;a:3:{i:0;s:14:"emphasis_close";i:1;a:0:{}i:2;i:624;}i:43;a:3:{i:0;s:15:"underline_close";i:1;a:0:{}i:2;i:626;}i:44;a:3:{i:0;s:12:"strong_close";i:1;a:0:{}i:2;i:628;}i:45;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:11:" all these.";}i:2;i:630;}i:46;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:642;}i:47;a:3:{i:0;s:12:"preformatted";i:1;a:1:{i:0;s:133:"DokuWiki supports **bold**, //italic//, __underlined__ and ''monospaced'' texts.
-Of course you can **__//''combine''//__** all these.";}i:2;i:642;}i:48;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:642;}i:49;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:12:"You can use ";}i:2;i:782;}i:50;a:3:{i:0;s:14:"subscript_open";i:1;a:0:{}i:2;i:794;}i:51;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:9:"subscript";}i:2;i:799;}i:52;a:3:{i:0;s:15:"subscript_close";i:1;a:0:{}i:2;i:808;}i:53;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:5:" and ";}i:2;i:814;}i:54;a:3:{i:0;s:16:"superscript_open";i:1;a:0:{}i:2;i:819;}i:55;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:11:"superscript";}i:2;i:824;}i:56;a:3:{i:0;s:17:"superscript_close";i:1;a:0:{}i:2;i:835;}i:57;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:6:", too.";}i:2;i:841;}i:58;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:848;}i:59;a:3:{i:0;s:12:"preformatted";i:1;a:1:{i:0;s:65:"You can use <sub>subscript</sub> and <sup>superscript</sup>, too.";}i:2;i:848;}i:60;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:848;}i:61;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:26:"You can mark something as ";}i:2;i:918;}i:62;a:3:{i:0;s:12:"deleted_open";i:1;a:0:{}i:2;i:944;}i:63;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:7:"deleted";}i:2;i:949;}i:64;a:3:{i:0;s:13:"deleted_close";i:1;a:0:{}i:2;i:956;}i:65;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:9:" as well.";}i:2;i:962;}i:66;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:972;}i:67;a:3:{i:0;s:12:"preformatted";i:1;a:1:{i:0;s:53:"You can mark something as <del>deleted</del> as well.";}i:2;i:972;}i:68;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:972;}i:69;a:3:{i:0;s:11:"strong_open";i:1;a:0:{}i:2;i:1030;}i:70;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:10:"Paragraphs";}i:2;i:1032;}i:71;a:3:{i:0;s:12:"strong_close";i:1;a:0:{}i:2;i:1042;}i:72;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:46:" are created from blank lines. If you want to ";}i:2;i:1044;}i:73;a:3:{i:0;s:11:"strong_open";i:1;a:0:{}i:2;i:1090;}i:74;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:15:"force a newline";}i:2;i:1092;}i:75;a:3:{i:0;s:12:"strong_close";i:1;a:0:{}i:2;i:1107;}i:76;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:94:" without a paragraph, you can use two backslashes followed by a whitespace or the end of line.";}i:2;i:1109;}i:77;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:1203;}i:78;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:1203;}i:79;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:38:"This is some text with some linebreaks";}i:2;i:1205;}i:80;a:3:{i:0;s:9:"linebreak";i:1;a:0:{}i:2;i:1243;}i:81;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:70:"Note that the
-two backslashes are only recognized at the end of a line";}i:2;i:1246;}i:82;a:3:{i:0;s:9:"linebreak";i:1;a:0:{}i:2;i:1316;}i:83;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:15:"
-or followed by";}i:2;i:1318;}i:84;a:3:{i:0;s:9:"linebreak";i:1;a:0:{}i:2;i:1333;}i:85;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:39:"a whitespace \\this happens without it.";}i:2;i:1336;}i:86;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:1376;}i:87;a:3:{i:0;s:12:"preformatted";i:1;a:1:{i:0;s:170:"This is some text with some linebreaks\\ Note that the
-two backslashes are only recognized at the end of a line\\
-or followed by\\ a whitespace \\this happens without it.";}i:2;i:1376;}i:88;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:1376;}i:89;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:53:"You should use forced newlines only if really needed.";}i:2;i:1555;}i:90;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:1608;}i:91;a:3:{i:0;s:13:"section_close";i:1;a:0:{}i:2;i:1610;}i:92;a:3:{i:0;s:6:"header";i:1;a:3:{i:0;s:5:"Links";i:1;i:2;i:2;i:1610;}i:2;i:1610;}i:93;a:3:{i:0;s:12:"section_open";i:1;a:1:{i:0;i:2;}i:2;i:1610;}i:94;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:1610;}i:95;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:50:"DokuWiki supports multiple ways of creating links.";}i:2;i:1629;}i:96;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:1679;}i:97;a:3:{i:0;s:13:"section_close";i:1;a:0:{}i:2;i:1681;}i:98;a:3:{i:0;s:6:"header";i:1;a:3:{i:0;s:8:"External";i:1;i:3;i:2;i:1681;}i:2;i:1681;}i:99;a:3:{i:0;s:12:"section_open";i:1;a:1:{i:0;i:3;}i:2;i:1681;}i:100;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:1681;}i:101;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:45:"External links are recognized automagically: ";}i:2;i:1701;}i:102;a:3:{i:0;s:12:"externallink";i:1;a:2:{i:0;s:21:"http://www.google.com";i:1;N;}i:2;i:1746;}i:103;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:11:" or simply ";}i:2;i:1767;}i:104;a:3:{i:0;s:12:"externallink";i:1;a:2:{i:0;s:21:"http://www.google.com";i:1;s:14:"www.google.com";}i:2;i:1778;}i:105;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:38:" - You can set the link text as well: ";}i:2;i:1792;}i:106;a:3:{i:0;s:12:"externallink";i:1;a:2:{i:0;s:21:"http://www.google.com";i:1;s:26:"This Link points to google";}i:2;i:1830;}i:107;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:33:". Email addresses like this one: ";}i:2;i:1882;}i:108;a:3:{i:0;s:9:"emaillink";i:1;a:2:{i:0;s:19:"andi@splitbrain.org";i:1;N;}i:2;i:1915;}i:109;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:21:" are recognized, too.";}i:2;i:1936;}i:110;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:1958;}i:111;a:3:{i:0;s:12:"preformatted";i:1;a:1:{i:0;s:303:"DokuWiki supports multiple ways of creating links. External links are recognized
-automagically: http://www.google.com or simply www.google.com - You can set
-link text as well: [[http://www.google.com|This Link points to google]]. Email
-addresses like this one: <andi@splitbrain.org> are recognized, too.";}i:2;i:1958;}i:112;a:3:{i:0;s:13:"section_close";i:1;a:0:{}i:2;i:2272;}i:113;a:3:{i:0;s:6:"header";i:1;a:3:{i:0;s:8:"Internal";i:1;i:3;i:2;i:2272;}i:2;i:2272;}i:114;a:3:{i:0;s:12:"section_open";i:1;a:1:{i:0;i:3;}i:2;i:2272;}i:115;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:2272;}i:116;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:80:"Internal links are created by using square brackets. You can either just give a ";}i:2;i:2292;}i:117;a:3:{i:0;s:12:"internallink";i:1;a:2:{i:0;s:8:"pagename";i:1;N;}i:2;i:2372;}i:118;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:22:" or use an additional ";}i:2;i:2384;}i:119;a:3:{i:0;s:12:"internallink";i:1;a:2:{i:0;s:8:"pagename";i:1;s:9:"link text";}i:2;i:2406;}i:120;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:".";}i:2;i:2428;}i:121;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:2430;}i:122;a:3:{i:0;s:12:"preformatted";i:1;a:1:{i:0;s:137:"Internal links are created by using square brackets. You can either just give
-a [[pagename]] or use an additional [[pagename|link text]].";}i:2;i:2430;}i:123;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:2430;}i:124;a:3:{i:0;s:13:"interwikilink";i:1;a:4:{i:0;s:13:"doku>pagename";i:1;s:14:"Wiki pagenames";i:2;s:4:"doku";i:3;s:8:"pagename";}i:2;i:2574;}i:125;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:78:" are converted to lowercase automatically, special characters are not allowed.";}i:2;i:2606;}i:126;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:2684;}i:127;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:2684;}i:128;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:12:"You can use ";}i:2;i:2686;}i:129;a:3:{i:0;s:12:"internallink";i:1;a:2:{i:0;s:15:"some:namespaces";i:1;N;}i:2;i:2698;}i:130;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:34:" by using a colon in the pagename.";}i:2;i:2717;}i:131;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:2752;}i:132;a:3:{i:0;s:12:"preformatted";i:1;a:1:{i:0;s:65:"You can use [[some:namespaces]] by using a colon in the pagename.";}i:2;i:2752;}i:133;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:2752;}i:134;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:33:"For details about namespaces see ";}i:2;i:2822;}i:135;a:3:{i:0;s:13:"interwikilink";i:1;a:4:{i:0;s:15:"doku>namespaces";i:1;N;i:2;s:4:"doku";i:3;s:10:"namespaces";}i:2;i:2855;}i:136;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:".";}i:2;i:2874;}i:137;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:2875;}i:138;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:2875;}i:139;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:112:"Linking to a specific section is possible, too. Just add the section name behind a hash character as known from ";}i:2;i:2877;}i:140;a:3:{i:0;s:7:"acronym";i:1;a:1:{i:0;s:4:"HTML";}i:2;i:2989;}i:141;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:16:". This links to ";}i:2;i:2993;}i:142;a:3:{i:0;s:12:"internallink";i:1;a:2:{i:0;s:15:"syntax#internal";i:1;s:12:"this Section";}i:2;i:3009;}i:143;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:".";}i:2;i:3041;}i:144;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:3043;}i:145;a:3:{i:0;s:12:"preformatted";i:1;a:1:{i:0;s:47:"This links to [[syntax#internal|this Section]].";}i:2;i:3043;}i:146;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:3043;}i:147;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:6:"Notes:";}i:2;i:3095;}i:148;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:3102;}i:149;a:3:{i:0;s:10:"listu_open";i:1;a:0:{}i:2;i:3102;}i:150;a:3:{i:0;s:13:"listitem_open";i:1;a:1:{i:0;i:1;}i:2;i:3102;}i:151;a:3:{i:0;s:16:"listcontent_open";i:1;a:0:{}i:2;i:3102;}i:152;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:10:" Links to ";}i:2;i:3106;}i:153;a:3:{i:0;s:12:"internallink";i:1;a:2:{i:0;s:6:"syntax";i:1;s:14:"existing pages";}i:2;i:3116;}i:154;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:37:" are shown in a different style from ";}i:2;i:3141;}i:155;a:3:{i:0;s:12:"internallink";i:1;a:2:{i:0;s:11:"nonexisting";i:1;N;}i:2;i:3178;}i:156;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:6:" ones.";}i:2;i:3193;}i:157;a:3:{i:0;s:17:"listcontent_close";i:1;a:0:{}i:2;i:3199;}i:158;a:3:{i:0;s:14:"listitem_close";i:1;a:0:{}i:2;i:3199;}i:159;a:3:{i:0;s:13:"listitem_open";i:1;a:1:{i:0;i:1;}i:2;i:3199;}i:160;a:3:{i:0;s:16:"listcontent_open";i:1;a:0:{}i:2;i:3199;}i:161;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:23:" DokuWiki does not use ";}i:2;i:3203;}i:162;a:3:{i:0;s:13:"interwikilink";i:1;a:4:{i:0;s:12:"wp>CamelCase";i:1;N;i:2;s:2:"wp";i:3;s:9:"CamelCase";}i:2;i:3226;}i:163;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:83:" to automatically create links by default, but this behavior can be enabled in the ";}i:2;i:3242;}i:164;a:3:{i:0;s:13:"interwikilink";i:1;a:4:{i:0;s:11:"doku>config";i:1;N;i:2;s:4:"doku";i:3;s:6:"config";}i:2;i:3325;}i:165;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:54:" file. Hint: If DokuWiki is a link, then it's enabled.";}i:2;i:3340;}i:166;a:3:{i:0;s:17:"listcontent_close";i:1;a:0:{}i:2;i:3394;}i:167;a:3:{i:0;s:14:"listitem_close";i:1;a:0:{}i:2;i:3394;}i:168;a:3:{i:0;s:13:"listitem_open";i:1;a:1:{i:0;i:1;}i:2;i:3394;}i:169;a:3:{i:0;s:16:"listcontent_open";i:1;a:0:{}i:2;i:3394;}i:170;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:107:" When a section's heading is changed, its bookmark changes, too. So don't rely on section linking too much.";}i:2;i:3398;}i:171;a:3:{i:0;s:17:"listcontent_close";i:1;a:0:{}i:2;i:3505;}i:172;a:3:{i:0;s:14:"listitem_close";i:1;a:0:{}i:2;i:3505;}i:173;a:3:{i:0;s:11:"listu_close";i:1;a:0:{}i:2;i:3505;}i:174;a:3:{i:0;s:13:"section_close";i:1;a:0:{}i:2;i:3507;}i:175;a:3:{i:0;s:6:"header";i:1;a:3:{i:0;s:9:"Interwiki";i:1;i:3;i:2;i:3507;}i:2;i:3507;}i:176;a:3:{i:0;s:12:"section_open";i:1;a:1:{i:0;i:3;}i:2;i:3507;}i:177;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:3507;}i:178;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:18:"DokuWiki supports ";}i:2;i:3528;}i:179;a:3:{i:0;s:13:"interwikilink";i:1;a:4:{i:0;s:14:"doku>Interwiki";i:1;N;i:2;s:4:"doku";i:3;s:9:"Interwiki";}i:2;i:3546;}i:180;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:106:" links. These are quick links to other Wikis. For example this is a link to Wikipedia's page about Wikis: ";}i:2;i:3564;}i:181;a:3:{i:0;s:13:"interwikilink";i:1;a:4:{i:0;s:7:"wp>Wiki";i:1;N;i:2;s:2:"wp";i:3;s:4:"Wiki";}i:2;i:3670;}i:182;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:".";}i:2;i:3681;}i:183;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:3683;}i:184;a:3:{i:0;s:12:"preformatted";i:1;a:1:{i:0;s:154:"DokuWiki supports [[doku>Interwiki]] links. These are quick links to other Wikis.
-For example this is a link to Wikipedia's page about Wikis: [[wp>Wiki]].";}i:2;i:3683;}i:185;a:3:{i:0;s:13:"section_close";i:1;a:0:{}i:2;i:3844;}i:186;a:3:{i:0;s:6:"header";i:1;a:3:{i:0;s:14:"Windows Shares";i:1;i:3;i:2;i:3844;}i:2;i:3844;}i:187;a:3:{i:0;s:12:"section_open";i:1;a:1:{i:0;i:3;}i:2;i:3844;}i:188;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:3844;}i:189;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:20:"Windows shares like ";}i:2;i:3870;}i:190;a:3:{i:0;s:16:"windowssharelink";i:1;a:2:{i:0;s:14:"\\server\share";i:1;s:4:"this";}i:2;i:3890;}i:191;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:106:" are recognized, too. Please note that these only make sense in a homogeneous user group like a corporate ";}i:2;i:3913;}i:192;a:3:{i:0;s:13:"interwikilink";i:1;a:4:{i:0;s:11:"wp>Intranet";i:1;N;i:2;s:2:"wp";i:3;s:8:"Intranet";}i:2;i:4019;}i:193;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:".";}i:2;i:4034;}i:194;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:4036;}i:195;a:3:{i:0;s:12:"preformatted";i:1;a:1:{i:0;s:64:"Windows Shares like [[\\server\share|this]] are recognized, too.";}i:2;i:4036;}i:196;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:4036;}i:197;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:6:"Notes:";}i:2;i:4105;}i:198;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:4112;}i:199;a:3:{i:0;s:10:"listu_open";i:1;a:0:{}i:2;i:4112;}i:200;a:3:{i:0;s:13:"listitem_open";i:1;a:1:{i:0;i:1;}i:2;i:4112;}i:201;a:3:{i:0;s:16:"listcontent_open";i:1;a:0:{}i:2;i:4112;}i:202;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:127:" For security reasons direct browsing of windows shares only works in Microsoft Internet Explorer per default (and only in the ";}i:2;i:4116;}i:203;a:3:{i:0;s:18:"doublequoteopening";i:1;a:0:{}i:2;i:4243;}i:204;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:10:"local zone";}i:2;i:4244;}i:205;a:3:{i:0;s:18:"doublequoteclosing";i:1;a:0:{}i:2;i:4254;}i:206;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:2:").";}i:2;i:4255;}i:207;a:3:{i:0;s:17:"listcontent_close";i:1;a:0:{}i:2;i:4257;}i:208;a:3:{i:0;s:14:"listitem_close";i:1;a:0:{}i:2;i:4257;}i:209;a:3:{i:0;s:13:"listitem_open";i:1;a:1:{i:0;i:1;}i:2;i:4257;}i:210;a:3:{i:0;s:16:"listcontent_open";i:1;a:0:{}i:2;i:4257;}i:211;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:89:" For Mozilla and Firefox it can be enabled through different workaround mentioned in the ";}i:2;i:4261;}i:212;a:3:{i:0;s:12:"externallink";i:1;a:2:{i:0;s:58:"http://kb.mozillazine.org/Links_to_local_pages_do_not_work";i:1;s:22:"Mozilla Knowledge Base";}i:2;i:4350;}i:213;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:156:". However, there will still be a JavaScript warning about trying to open a Windows Share. To remove this warning (for all users), put the following line in ";}i:2;i:4435;}i:214;a:3:{i:0;s:14:"monospace_open";i:1;a:0:{}i:2;i:4591;}i:215;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:21:"conf/lang/en/lang.php";}i:2;i:4593;}i:216;a:3:{i:0;s:15:"monospace_close";i:1;a:0:{}i:2;i:4614;}i:217;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:18:" (more details at ";}i:2;i:4616;}i:218;a:3:{i:0;s:13:"interwikilink";i:1;a:4:{i:0;s:80:"doku>localization#changing_some_localized_texts_and_strings_in_your_installation";i:1;s:12:"localization";i:2;s:4:"doku";i:3;s:75:"localization#changing_some_localized_texts_and_strings_in_your_installation";}i:2;i:4634;}i:219;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:3:"): ";}i:2;i:4731;}i:220;a:3:{i:0;s:4:"code";i:1;a:3:{i:0;s:144:"
-<?php
-/**
- * Customization of the english language file
- * Copy only the strings that needs to be modified
- */
-$lang['js']['nosmblinks'] = '';
-";i:1;N;i:2;s:21:"conf/lang/en/lang.php";}i:2;i:4739;}i:221;a:3:{i:0;s:17:"listcontent_close";i:1;a:0:{}i:2;i:4915;}i:222;a:3:{i:0;s:14:"listitem_close";i:1;a:0:{}i:2;i:4915;}i:223;a:3:{i:0;s:11:"listu_close";i:1;a:0:{}i:2;i:4915;}i:224;a:3:{i:0;s:13:"section_close";i:1;a:0:{}i:2;i:4917;}i:225;a:3:{i:0;s:6:"header";i:1;a:3:{i:0;s:11:"Image Links";i:1;i:3;i:2;i:4917;}i:2;i:4917;}i:226;a:3:{i:0;s:12:"section_open";i:1;a:1:{i:0;i:3;}i:2;i:4917;}i:227;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:4917;}i:228;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:109:"You can also use an image to link to another internal or external page by combining the syntax for links and ";}i:2;i:4940;}i:229;a:3:{i:0;s:9:"locallink";i:1;a:2:{i:0;s:22:"images_and_other_files";i:1;s:6:"images";}i:2;i:5049;}i:230;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:23:" (see below) like this:";}i:2;i:5083;}i:231;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:5107;}i:232;a:3:{i:0;s:12:"preformatted";i:1;a:1:{i:0;s:44:"[[http://php.net|{{wiki:dokuwiki-128.png}}]]";}i:2;i:5107;}i:233;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:5107;}i:234;a:3:{i:0;s:12:"externallink";i:1;a:2:{i:0;s:14:"http://php.net";i:1;a:8:{s:4:"type";s:13:"internalmedia";s:3:"src";s:21:"wiki:dokuwiki-128.png";s:5:"title";N;s:5:"align";N;s:5:"width";N;s:6:"height";N;s:5:"cache";s:5:"cache";s:7:"linking";s:7:"details";}}i:2;i:5156;}i:235;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:5200;}i:236;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:5200;}i:237;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:87:"Please note: The image formatting is the only formatting syntax accepted in link names.";}i:2;i:5202;}i:238;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:5289;}i:239;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:5289;}i:240;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:10:"The whole ";}i:2;i:5291;}i:241;a:3:{i:0;s:9:"locallink";i:1;a:2:{i:0;s:22:"images_and_other_files";i:1;s:5:"image";}i:2;i:5301;}i:242;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:5:" and ";}i:2;i:5334;}i:243;a:3:{i:0;s:9:"locallink";i:1;a:2:{i:0;s:5:"links";i:1;s:4:"link";}i:2;i:5339;}i:244;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:107:" syntax is supported (including image resizing, internal and external images and URLs and interwiki links).";}i:2;i:5354;}i:245;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:5461;}i:246;a:3:{i:0;s:13:"section_close";i:1;a:0:{}i:2;i:5463;}i:247;a:3:{i:0;s:6:"header";i:1;a:3:{i:0;s:9:"Footnotes";i:1;i:2;i:2;i:5463;}i:2;i:5463;}i:248;a:3:{i:0;s:12:"section_open";i:1;a:1:{i:0;i:2;}i:2;i:5463;}i:249;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:5463;}i:250;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:22:"You can add footnotes ";}i:2;i:5486;}i:251;a:3:{i:0;s:4:"nest";i:1;a:1:{i:0;a:3:{i:0;a:3:{i:0;s:13:"footnote_open";i:1;a:0:{}i:2;i:5508;}i:1;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:18:"This is a footnote";}i:2;i:5510;}i:2;a:3:{i:0;s:14:"footnote_close";i:1;a:0:{}i:2;i:5528;}}}i:2;i:5508;}i:252;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:29:" by using double parentheses.";}i:2;i:5530;}i:253;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:5560;}i:254;a:3:{i:0;s:12:"preformatted";i:1;a:1:{i:0;s:73:"You can add footnotes ((This is a footnote)) by using double parentheses.";}i:2;i:5560;}i:255;a:3:{i:0;s:13:"section_close";i:1;a:0:{}i:2;i:5638;}i:256;a:3:{i:0;s:6:"header";i:1;a:3:{i:0;s:10:"Sectioning";i:1;i:2;i:2;i:5638;}i:2;i:5638;}i:257;a:3:{i:0;s:12:"section_open";i:1;a:1:{i:0;i:2;}i:2;i:5638;}i:258;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:5638;}i:259;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:166:"You can use up to five different levels of headlines to structure your content. If you have more than three headlines, a table of contents is generated automatically ";}i:2;i:5662;}i:260;a:3:{i:0;s:6:"entity";i:1;a:1:{i:0;s:2:"--";}i:2;i:5828;}i:261;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:46:" this can be disabled by including the string ";}i:2;i:5830;}i:262;a:3:{i:0;s:14:"monospace_open";i:1;a:0:{}i:2;i:5876;}i:263;a:3:{i:0;s:11:"unformatted";i:1;a:1:{i:0;s:9:"~~NOTOC~~";}i:2;i:5886;}i:264;a:3:{i:0;s:15:"monospace_close";i:1;a:0:{}i:2;i:5904;}i:265;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:17:" in the document.";}i:2;i:5906;}i:266;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:5923;}i:267;a:3:{i:0;s:13:"section_close";i:1;a:0:{}i:2;i:5925;}i:268;a:3:{i:0;s:6:"header";i:1;a:3:{i:0;s:16:"Headline Level 3";i:1;i:3;i:2;i:5925;}i:2;i:5925;}i:269;a:3:{i:0;s:12:"section_open";i:1;a:1:{i:0;i:3;}i:2;i:5925;}i:270;a:3:{i:0;s:13:"section_close";i:1;a:0:{}i:2;i:5952;}i:271;a:3:{i:0;s:6:"header";i:1;a:3:{i:0;s:16:"Headline Level 4";i:1;i:4;i:2;i:5952;}i:2;i:5952;}i:272;a:3:{i:0;s:12:"section_open";i:1;a:1:{i:0;i:4;}i:2;i:5952;}i:273;a:3:{i:0;s:13:"section_close";i:1;a:0:{}i:2;i:5977;}i:274;a:3:{i:0;s:6:"header";i:1;a:3:{i:0;s:16:"Headline Level 5";i:1;i:5;i:2;i:5977;}i:2;i:5977;}i:275;a:3:{i:0;s:12:"section_open";i:1;a:1:{i:0;i:5;}i:2;i:5977;}i:276;a:3:{i:0;s:12:"preformatted";i:1;a:1:{i:0;s:74:"==== Headline Level 3 ====
-=== Headline Level 4 ===
-== Headline Level 5 ==";}i:2;i:6000;}i:277;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:6000;}i:278;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:61:"By using four or more dashes, you can make a horizontal line:";}i:2;i:6083;}i:279;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:6145;}i:280;a:3:{i:0;s:2:"hr";i:1;a:0:{}i:2;i:6145;}i:281;a:3:{i:0;s:13:"section_close";i:1;a:0:{}i:2;i:6152;}i:282;a:3:{i:0;s:6:"header";i:1;a:3:{i:0;s:11:"Media Files";i:1;i:2;i:2;i:6152;}i:2;i:6152;}i:283;a:3:{i:0;s:12:"section_open";i:1;a:1:{i:0;i:2;}i:2;i:6152;}i:284;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:6152;}i:285;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:38:"You can include external and internal ";}i:2;i:6177;}i:286;a:3:{i:0;s:13:"interwikilink";i:1;a:4:{i:0;s:11:"doku>images";i:1;s:30:"images, videos and audio files";i:2;s:4:"doku";i:3;s:6:"images";}i:2;i:6215;}i:287;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:66:" with curly brackets. Optionally you can specify the size of them.";}i:2;i:6261;}i:288;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:6327;}i:289;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:6327;}i:290;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:34:"Real size:                        ";}i:2;i:6329;}i:291;a:3:{i:0;s:13:"internalmedia";i:1;a:7:{i:0;s:21:"wiki:dokuwiki-128.png";i:1;N;i:2;N;i:3;N;i:4;N;i:5;s:5:"cache";i:6;s:7:"details";}i:2;i:6363;}i:292;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:6388;}i:293;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:6388;}i:294;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:34:"Resize to given width:            ";}i:2;i:6390;}i:295;a:3:{i:0;s:13:"internalmedia";i:1;a:7:{i:0;s:21:"wiki:dokuwiki-128.png";i:1;N;i:2;N;i:3;s:2:"50";i:4;N;i:5;s:5:"cache";i:6;s:7:"details";}i:2;i:6424;}i:296;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:6452;}i:297;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:6452;}i:298;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:32:"Resize to given width and height";}i:2;i:6454;}i:299;a:3:{i:0;s:4:"nest";i:1;a:1:{i:0;a:3:{i:0;a:3:{i:0;s:13:"footnote_open";i:1;a:0:{}i:2;i:6486;}i:1;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:136:"when the aspect ratio of the given width and height doesn't match that of the image, it will be cropped to the new ratio before resizing";}i:2;i:6488;}i:2;a:3:{i:0;s:14:"footnote_close";i:1;a:0:{}i:2;i:6624;}}}i:2;i:6486;}i:300;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:2:": ";}i:2;i:6626;}i:301;a:3:{i:0;s:13:"internalmedia";i:1;a:7:{i:0;s:21:"wiki:dokuwiki-128.png";i:1;N;i:2;N;i:3;s:3:"200";i:4;s:2:"50";i:5;s:5:"cache";i:6;s:7:"details";}i:2;i:6628;}i:302;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:6660;}i:303;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:6660;}i:304;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:34:"Resized external image:           ";}i:2;i:6662;}i:305;a:3:{i:0;s:13:"externalmedia";i:1;a:7:{i:0;s:29:"http://php.net/images/php.gif";i:1;N;i:2;N;i:3;s:3:"200";i:4;s:2:"50";i:5;s:5:"cache";i:6;s:7:"details";}i:2;i:6696;}i:306;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:0:"";}i:2;i:6736;}i:307;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:6737;}i:308;a:3:{i:0;s:12:"preformatted";i:1;a:1:{i:0;s:264:"Real size:                        {{wiki:dokuwiki-128.png}}
-Resize to given width:            {{wiki:dokuwiki-128.png?50}}
-Resize to given width and height: {{wiki:dokuwiki-128.png?200x50}}
-Resized external image:           {{http://php.net/images/php.gif?200x50}}";}i:2;i:6737;}i:309;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:6737;}i:310;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:64:"By using left or right whitespaces you can choose the alignment.";}i:2;i:7013;}i:311;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:7077;}i:312;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:7077;}i:313;a:3:{i:0;s:13:"internalmedia";i:1;a:7:{i:0;s:21:"wiki:dokuwiki-128.png";i:1;N;i:2;s:5:"right";i:3;N;i:4;N;i:5;s:5:"cache";i:6;s:7:"details";}i:2;i:7079;}i:314;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:7105;}i:315;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:7105;}i:316;a:3:{i:0;s:13:"internalmedia";i:1;a:7:{i:0;s:21:"wiki:dokuwiki-128.png";i:1;N;i:2;s:4:"left";i:3;N;i:4;N;i:5;s:5:"cache";i:6;s:7:"details";}i:2;i:7107;}i:317;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:7133;}i:318;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:7133;}i:319;a:3:{i:0;s:13:"internalmedia";i:1;a:7:{i:0;s:21:"wiki:dokuwiki-128.png";i:1;N;i:2;s:6:"center";i:3;N;i:4;N;i:5;s:5:"cache";i:6;s:7:"details";}i:2;i:7135;}i:320;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:0:"";}i:2;i:7162;}i:321;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:7163;}i:322;a:3:{i:0;s:12:"preformatted";i:1;a:1:{i:0;s:81:"{{ wiki:dokuwiki-128.png}}
-{{wiki:dokuwiki-128.png }}
-{{ wiki:dokuwiki-128.png }}";}i:2;i:7163;}i:323;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:7163;}i:324;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:78:"Of course, you can add a title (displayed as a tooltip by most browsers), too.";}i:2;i:7253;}i:325;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:7331;}i:326;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:7331;}i:327;a:3:{i:0;s:13:"internalmedia";i:1;a:7:{i:0;s:21:"wiki:dokuwiki-128.png";i:1;s:19:"This is the caption";i:2;s:6:"center";i:3;N;i:4;N;i:5;s:5:"cache";i:6;s:7:"details";}i:2;i:7333;}i:328;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:0:"";}i:2;i:7380;}i:329;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:7381;}i:330;a:3:{i:0;s:12:"preformatted";i:1;a:1:{i:0;s:47:"{{ wiki:dokuwiki-128.png |This is the caption}}";}i:2;i:7381;}i:331;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:7381;}i:332;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:41:"For linking an image to another page see ";}i:2;i:7433;}i:333;a:3:{i:0;s:9:"locallink";i:1;a:2:{i:0;s:11:"Image Links";i:1;N;}i:2;i:7474;}i:334;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:7:" above.";}i:2;i:7490;}i:335;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:7497;}i:336;a:3:{i:0;s:13:"section_close";i:1;a:0:{}i:2;i:7499;}i:337;a:3:{i:0;s:6:"header";i:1;a:3:{i:0;s:23:"Supported Media Formats";i:1;i:3;i:2;i:7499;}i:2;i:7499;}i:338;a:3:{i:0;s:12:"section_open";i:1;a:1:{i:0;i:3;}i:2;i:7499;}i:339;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:7499;}i:340;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:56:"DokuWiki can embed the following media formats directly.";}i:2;i:7534;}i:341;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:7591;}i:342;a:3:{i:0;s:10:"table_open";i:1;a:3:{i:0;i:2;i:1;i:4;i:2;i:7592;}i:2;i:7591;}i:343;a:3:{i:0;s:13:"tablerow_open";i:1;a:0:{}i:2;i:7591;}i:344;a:3:{i:0;s:14:"tablecell_open";i:1;a:3:{i:0;i:1;i:1;N;i:2;i:1;}i:2;i:7591;}i:345;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:7:" Image ";}i:2;i:7593;}i:346;a:3:{i:0;s:15:"tablecell_close";i:1;a:0:{}i:2;i:7600;}i:347;a:3:{i:0;s:14:"tablecell_open";i:1;a:3:{i:0;i:1;i:1;s:4:"left";i:2;i:1;}i:2;i:7600;}i:348;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:" ";}i:2;i:7601;}i:349;a:3:{i:0;s:14:"monospace_open";i:1;a:0:{}i:2;i:7602;}i:350;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:3:"gif";}i:2;i:7604;}i:351;a:3:{i:0;s:15:"monospace_close";i:1;a:0:{}i:2;i:7607;}i:352;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:2:", ";}i:2;i:7609;}i:353;a:3:{i:0;s:14:"monospace_open";i:1;a:0:{}i:2;i:7611;}i:354;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:3:"jpg";}i:2;i:7613;}i:355;a:3:{i:0;s:15:"monospace_close";i:1;a:0:{}i:2;i:7616;}i:356;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:2:", ";}i:2;i:7618;}i:357;a:3:{i:0;s:14:"monospace_open";i:1;a:0:{}i:2;i:7620;}i:358;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:3:"png";}i:2;i:7622;}i:359;a:3:{i:0;s:15:"monospace_close";i:1;a:0:{}i:2;i:7625;}i:360;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:2:"  ";}i:2;i:7627;}i:361;a:3:{i:0;s:15:"tablecell_close";i:1;a:0:{}i:2;i:7629;}i:362;a:3:{i:0;s:14:"tablerow_close";i:1;a:0:{}i:2;i:7630;}i:363;a:3:{i:0;s:13:"tablerow_open";i:1;a:0:{}i:2;i:7630;}i:364;a:3:{i:0;s:14:"tablecell_open";i:1;a:3:{i:0;i:1;i:1;N;i:2;i:1;}i:2;i:7630;}i:365;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:7:" Video ";}i:2;i:7632;}i:366;a:3:{i:0;s:15:"tablecell_close";i:1;a:0:{}i:2;i:7639;}i:367;a:3:{i:0;s:14:"tablecell_open";i:1;a:3:{i:0;i:1;i:1;N;i:2;i:1;}i:2;i:7639;}i:368;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:" ";}i:2;i:7640;}i:369;a:3:{i:0;s:14:"monospace_open";i:1;a:0:{}i:2;i:7641;}i:370;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:4:"webm";}i:2;i:7643;}i:371;a:3:{i:0;s:15:"monospace_close";i:1;a:0:{}i:2;i:7647;}i:372;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:2:", ";}i:2;i:7649;}i:373;a:3:{i:0;s:14:"monospace_open";i:1;a:0:{}i:2;i:7651;}i:374;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:3:"ogv";}i:2;i:7653;}i:375;a:3:{i:0;s:15:"monospace_close";i:1;a:0:{}i:2;i:7656;}i:376;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:2:", ";}i:2;i:7658;}i:377;a:3:{i:0;s:14:"monospace_open";i:1;a:0:{}i:2;i:7660;}i:378;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:3:"mp4";}i:2;i:7662;}i:379;a:3:{i:0;s:15:"monospace_close";i:1;a:0:{}i:2;i:7665;}i:380;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:" ";}i:2;i:7667;}i:381;a:3:{i:0;s:15:"tablecell_close";i:1;a:0:{}i:2;i:7668;}i:382;a:3:{i:0;s:14:"tablerow_close";i:1;a:0:{}i:2;i:7669;}i:383;a:3:{i:0;s:13:"tablerow_open";i:1;a:0:{}i:2;i:7669;}i:384;a:3:{i:0;s:14:"tablecell_open";i:1;a:3:{i:0;i:1;i:1;N;i:2;i:1;}i:2;i:7669;}i:385;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:7:" Audio ";}i:2;i:7671;}i:386;a:3:{i:0;s:15:"tablecell_close";i:1;a:0:{}i:2;i:7678;}i:387;a:3:{i:0;s:14:"tablecell_open";i:1;a:3:{i:0;i:1;i:1;s:4:"left";i:2;i:1;}i:2;i:7678;}i:388;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:" ";}i:2;i:7679;}i:389;a:3:{i:0;s:14:"monospace_open";i:1;a:0:{}i:2;i:7680;}i:390;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:3:"ogg";}i:2;i:7682;}i:391;a:3:{i:0;s:15:"monospace_close";i:1;a:0:{}i:2;i:7685;}i:392;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:2:", ";}i:2;i:7687;}i:393;a:3:{i:0;s:14:"monospace_open";i:1;a:0:{}i:2;i:7689;}i:394;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:3:"mp3";}i:2;i:7691;}i:395;a:3:{i:0;s:15:"monospace_close";i:1;a:0:{}i:2;i:7694;}i:396;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:2:", ";}i:2;i:7696;}i:397;a:3:{i:0;s:14:"monospace_open";i:1;a:0:{}i:2;i:7698;}i:398;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:3:"wav";}i:2;i:7700;}i:399;a:3:{i:0;s:15:"monospace_close";i:1;a:0:{}i:2;i:7703;}i:400;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:2:"  ";}i:2;i:7705;}i:401;a:3:{i:0;s:15:"tablecell_close";i:1;a:0:{}i:2;i:7707;}i:402;a:3:{i:0;s:14:"tablerow_close";i:1;a:0:{}i:2;i:7708;}i:403;a:3:{i:0;s:13:"tablerow_open";i:1;a:0:{}i:2;i:7708;}i:404;a:3:{i:0;s:14:"tablecell_open";i:1;a:3:{i:0;i:1;i:1;N;i:2;i:1;}i:2;i:7708;}i:405;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:7:" Flash ";}i:2;i:7710;}i:406;a:3:{i:0;s:15:"tablecell_close";i:1;a:0:{}i:2;i:7717;}i:407;a:3:{i:0;s:14:"tablecell_open";i:1;a:3:{i:0;i:1;i:1;s:4:"left";i:2;i:1;}i:2;i:7717;}i:408;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:" ";}i:2;i:7718;}i:409;a:3:{i:0;s:14:"monospace_open";i:1;a:0:{}i:2;i:7719;}i:410;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:3:"swf";}i:2;i:7721;}i:411;a:3:{i:0;s:15:"monospace_close";i:1;a:0:{}i:2;i:7724;}i:412;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:20:"                    ";}i:2;i:7726;}i:413;a:3:{i:0;s:15:"tablecell_close";i:1;a:0:{}i:2;i:7746;}i:414;a:3:{i:0;s:14:"tablerow_close";i:1;a:0:{}i:2;i:7747;}i:415;a:3:{i:0;s:11:"table_close";i:1;a:1:{i:0;i:7747;}i:2;i:7747;}i:416;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:7747;}i:417;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:108:"If you specify a filename that is not a supported media format, then it will be displayed as a link instead.";}i:2;i:7749;}i:418;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:7857;}i:419;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:7857;}i:420;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:10:"By adding ";}i:2;i:7859;}i:421;a:3:{i:0;s:14:"monospace_open";i:1;a:0:{}i:2;i:7869;}i:422;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:9:"?linkonly";}i:2;i:7871;}i:423;a:3:{i:0;s:15:"monospace_close";i:1;a:0:{}i:2;i:7880;}i:424;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:61:" you provide a link to the media without displaying it inline";}i:2;i:7882;}i:425;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:7944;}i:426;a:3:{i:0;s:12:"preformatted";i:1;a:1:{i:0;s:34:"{{wiki:dokuwiki-128.png?linkonly}}";}i:2;i:7944;}i:427;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:7944;}i:428;a:3:{i:0;s:13:"internalmedia";i:1;a:7:{i:0;s:21:"wiki:dokuwiki-128.png";i:1;N;i:2;N;i:3;N;i:4;N;i:5;s:5:"cache";i:6;s:8:"linkonly";}i:2;i:7983;}i:429;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:34:" This is just a link to the image.";}i:2;i:8017;}i:430;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:8051;}i:431;a:3:{i:0;s:13:"section_close";i:1;a:0:{}i:2;i:8053;}i:432;a:3:{i:0;s:6:"header";i:1;a:3:{i:0;s:16:"Fallback Formats";i:1;i:3;i:2;i:8053;}i:2;i:8053;}i:433;a:3:{i:0;s:12:"section_open";i:1;a:1:{i:0;i:3;}i:2;i:8053;}i:434;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:8053;}i:435;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:176:"Unfortunately not all browsers understand all video and audio formats. To mitigate the problem, you can upload your file in different formats for maximum browser compatibility.";}i:2;i:8081;}i:436;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:8257;}i:437;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:8257;}i:438;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:45:"For example consider this embedded mp4 video:";}i:2;i:8259;}i:439;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:8305;}i:440;a:3:{i:0;s:12:"preformatted";i:1;a:1:{i:0;s:27:"{{video.mp4|A funny video}}";}i:2;i:8305;}i:441;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:8305;}i:442;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:18:"When you upload a ";}i:2;i:8337;}i:443;a:3:{i:0;s:14:"monospace_open";i:1;a:0:{}i:2;i:8355;}i:444;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:10:"video.webm";}i:2;i:8357;}i:445;a:3:{i:0;s:15:"monospace_close";i:1;a:0:{}i:2;i:8367;}i:446;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:5:" and ";}i:2;i:8369;}i:447;a:3:{i:0;s:14:"monospace_open";i:1;a:0:{}i:2;i:8374;}i:448;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:9:"video.ogv";}i:2;i:8376;}i:449;a:3:{i:0;s:15:"monospace_close";i:1;a:0:{}i:2;i:8385;}i:450;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:24:" next to the referenced ";}i:2;i:8387;}i:451;a:3:{i:0;s:14:"monospace_open";i:1;a:0:{}i:2;i:8411;}i:452;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:9:"video.mp4";}i:2;i:8413;}i:453;a:3:{i:0;s:15:"monospace_close";i:1;a:0:{}i:2;i:8422;}i:454;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:116:", DokuWiki will automatically add them as alternatives so that one of the three files is understood by your browser.";}i:2;i:8424;}i:455;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:8540;}i:456;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:8540;}i:457;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:33:"Additionally DokuWiki supports a ";}i:2;i:8542;}i:458;a:3:{i:0;s:18:"doublequoteopening";i:1;a:0:{}i:2;i:8575;}i:459;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:6:"poster";}i:2;i:8576;}i:460;a:3:{i:0;s:18:"doublequoteclosing";i:1;a:0:{}i:2;i:8582;}i:461;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:169:" image which will be shown before the video has started. That image needs to have the same filename as the video and be either a jpg or png file. In the example above a ";}i:2;i:8583;}i:462;a:3:{i:0;s:14:"monospace_open";i:1;a:0:{}i:2;i:8752;}i:463;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:9:"video.jpg";}i:2;i:8754;}i:464;a:3:{i:0;s:15:"monospace_close";i:1;a:0:{}i:2;i:8763;}i:465;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:17:" file would work.";}i:2;i:8765;}i:466;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:8782;}i:467;a:3:{i:0;s:13:"section_close";i:1;a:0:{}i:2;i:8784;}i:468;a:3:{i:0;s:6:"header";i:1;a:3:{i:0;s:5:"Lists";i:1;i:2;i:2;i:8784;}i:2;i:8784;}i:469;a:3:{i:0;s:12:"section_open";i:1;a:1:{i:0;i:2;}i:2;i:8784;}i:470;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:8784;}i:471;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:111:"Dokuwiki supports ordered and unordered lists. To create a list item, indent your text by two spaces and use a ";}i:2;i:8803;}i:472;a:3:{i:0;s:14:"monospace_open";i:1;a:0:{}i:2;i:8914;}i:473;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:"*";}i:2;i:8916;}i:474;a:3:{i:0;s:15:"monospace_close";i:1;a:0:{}i:2;i:8917;}i:475;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:26:" for unordered lists or a ";}i:2;i:8919;}i:476;a:3:{i:0;s:14:"monospace_open";i:1;a:0:{}i:2;i:8945;}i:477;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:"-";}i:2;i:8947;}i:478;a:3:{i:0;s:15:"monospace_close";i:1;a:0:{}i:2;i:8948;}i:479;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:18:" for ordered ones.";}i:2;i:8950;}i:480;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:8969;}i:481;a:3:{i:0;s:10:"listu_open";i:1;a:0:{}i:2;i:8969;}i:482;a:3:{i:0;s:13:"listitem_open";i:1;a:1:{i:0;i:1;}i:2;i:8969;}i:483;a:3:{i:0;s:16:"listcontent_open";i:1;a:0:{}i:2;i:8969;}i:484;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:15:" This is a list";}i:2;i:8973;}i:485;a:3:{i:0;s:17:"listcontent_close";i:1;a:0:{}i:2;i:8988;}i:486;a:3:{i:0;s:14:"listitem_close";i:1;a:0:{}i:2;i:8988;}i:487;a:3:{i:0;s:13:"listitem_open";i:1;a:2:{i:0;i:1;i:1;i:1;}i:2;i:8988;}i:488;a:3:{i:0;s:16:"listcontent_open";i:1;a:0:{}i:2;i:8988;}i:489;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:16:" The second item";}i:2;i:8992;}i:490;a:3:{i:0;s:17:"listcontent_close";i:1;a:0:{}i:2;i:9008;}i:491;a:3:{i:0;s:10:"listu_open";i:1;a:0:{}i:2;i:9008;}i:492;a:3:{i:0;s:13:"listitem_open";i:1;a:1:{i:0;i:2;}i:2;i:9008;}i:493;a:3:{i:0;s:16:"listcontent_open";i:1;a:0:{}i:2;i:9008;}i:494;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:30:" You may have different levels";}i:2;i:9014;}i:495;a:3:{i:0;s:17:"listcontent_close";i:1;a:0:{}i:2;i:9044;}i:496;a:3:{i:0;s:14:"listitem_close";i:1;a:0:{}i:2;i:9044;}i:497;a:3:{i:0;s:11:"listu_close";i:1;a:0:{}i:2;i:9044;}i:498;a:3:{i:0;s:14:"listitem_close";i:1;a:0:{}i:2;i:9044;}i:499;a:3:{i:0;s:13:"listitem_open";i:1;a:1:{i:0;i:1;}i:2;i:9044;}i:500;a:3:{i:0;s:16:"listcontent_open";i:1;a:0:{}i:2;i:9044;}i:501;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:13:" Another item";}i:2;i:9048;}i:502;a:3:{i:0;s:17:"listcontent_close";i:1;a:0:{}i:2;i:9061;}i:503;a:3:{i:0;s:14:"listitem_close";i:1;a:0:{}i:2;i:9061;}i:504;a:3:{i:0;s:11:"listu_close";i:1;a:0:{}i:2;i:9061;}i:505;a:3:{i:0;s:10:"listo_open";i:1;a:0:{}i:2;i:9062;}i:506;a:3:{i:0;s:13:"listitem_open";i:1;a:1:{i:0;i:1;}i:2;i:9062;}i:507;a:3:{i:0;s:16:"listcontent_open";i:1;a:0:{}i:2;i:9062;}i:508;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:26:" The same list but ordered";}i:2;i:9066;}i:509;a:3:{i:0;s:17:"listcontent_close";i:1;a:0:{}i:2;i:9092;}i:510;a:3:{i:0;s:14:"listitem_close";i:1;a:0:{}i:2;i:9092;}i:511;a:3:{i:0;s:13:"listitem_open";i:1;a:2:{i:0;i:1;i:1;i:1;}i:2;i:9092;}i:512;a:3:{i:0;s:16:"listcontent_open";i:1;a:0:{}i:2;i:9092;}i:513;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:13:" Another item";}i:2;i:9096;}i:514;a:3:{i:0;s:17:"listcontent_close";i:1;a:0:{}i:2;i:9109;}i:515;a:3:{i:0;s:10:"listo_open";i:1;a:0:{}i:2;i:9109;}i:516;a:3:{i:0;s:13:"listitem_open";i:1;a:1:{i:0;i:2;}i:2;i:9109;}i:517;a:3:{i:0;s:16:"listcontent_open";i:1;a:0:{}i:2;i:9109;}i:518;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:37:" Just use indention for deeper levels";}i:2;i:9115;}i:519;a:3:{i:0;s:17:"listcontent_close";i:1;a:0:{}i:2;i:9152;}i:520;a:3:{i:0;s:14:"listitem_close";i:1;a:0:{}i:2;i:9152;}i:521;a:3:{i:0;s:11:"listo_close";i:1;a:0:{}i:2;i:9152;}i:522;a:3:{i:0;s:14:"listitem_close";i:1;a:0:{}i:2;i:9152;}i:523;a:3:{i:0;s:13:"listitem_open";i:1;a:1:{i:0;i:1;}i:2;i:9152;}i:524;a:3:{i:0;s:16:"listcontent_open";i:1;a:0:{}i:2;i:9152;}i:525;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:10:" That's it";}i:2;i:9156;}i:526;a:3:{i:0;s:17:"listcontent_close";i:1;a:0:{}i:2;i:9166;}i:527;a:3:{i:0;s:14:"listitem_close";i:1;a:0:{}i:2;i:9166;}i:528;a:3:{i:0;s:11:"listo_close";i:1;a:0:{}i:2;i:9166;}i:529;a:3:{i:0;s:4:"code";i:1;a:3:{i:0;s:198:"
-  * This is a list
-  * The second item
-    * You may have different levels
-  * Another item
-
-  - The same list but ordered
-  - Another item
-    - Just use indention for deeper levels
-  - That's it
-";i:1;N;i:2;N;}i:2;i:9173;}i:530;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:9173;}i:531;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:24:"Also take a look at the ";}i:2;i:9381;}i:532;a:3:{i:0;s:13:"interwikilink";i:1;a:4:{i:0;s:14:"doku>faq:lists";i:1;s:17:"FAQ on list items";i:2;s:4:"doku";i:3;s:9:"faq:lists";}i:2;i:9405;}i:533;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:".";}i:2;i:9441;}i:534;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:9442;}i:535;a:3:{i:0;s:13:"section_close";i:1;a:0:{}i:2;i:9444;}i:536;a:3:{i:0;s:6:"header";i:1;a:3:{i:0;s:16:"Text Conversions";i:1;i:2;i:2;i:9444;}i:2;i:9444;}i:537;a:3:{i:0;s:12:"section_open";i:1;a:1:{i:0;i:2;}i:2;i:9444;}i:538;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:9444;}i:539;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:92:"DokuWiki can convert certain pre-defined characters or strings into images or other text or ";}i:2;i:9474;}i:540;a:3:{i:0;s:7:"acronym";i:1;a:1:{i:0;s:4:"HTML";}i:2;i:9566;}i:541;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:".";}i:2;i:9570;}i:542;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:9571;}i:543;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:9571;}i:544;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:73:"The text to image conversion is mainly done for smileys. And the text to ";}i:2;i:9573;}i:545;a:3:{i:0;s:7:"acronym";i:1;a:1:{i:0;s:4:"HTML";}i:2;i:9646;}i:546;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:84:" conversion is used for typography replacements, but can be configured to use other ";}i:2;i:9650;}i:547;a:3:{i:0;s:7:"acronym";i:1;a:1:{i:0;s:4:"HTML";}i:2;i:9734;}i:548;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:9:" as well.";}i:2;i:9738;}i:549;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:9747;}i:550;a:3:{i:0;s:13:"section_close";i:1;a:0:{}i:2;i:9749;}i:551;a:3:{i:0;s:6:"header";i:1;a:3:{i:0;s:25:"Text to Image Conversions";i:1;i:3;i:2;i:9749;}i:2;i:9749;}i:552;a:3:{i:0;s:12:"section_open";i:1;a:1:{i:0;i:3;}i:2;i:9749;}i:553;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:9749;}i:554;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:32:"DokuWiki converts commonly used ";}i:2;i:9786;}i:555;a:3:{i:0;s:13:"interwikilink";i:1;a:4:{i:0;s:11:"wp>emoticon";i:1;N;i:2;s:2:"wp";i:3;s:8:"emoticon";}i:2;i:9818;}i:556;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:40:"s to their graphical equivalents. Those ";}i:2;i:9833;}i:557;a:3:{i:0;s:13:"interwikilink";i:1;a:4:{i:0;s:12:"doku>Smileys";i:1;N;i:2;s:4:"doku";i:3;s:7:"Smileys";}i:2;i:9873;}i:558;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:102:" and other images can be configured and extended. Here is an overview of Smileys included in DokuWiki:";}i:2;i:9889;}i:559;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:9992;}i:560;a:3:{i:0;s:10:"listu_open";i:1;a:0:{}i:2;i:9992;}i:561;a:3:{i:0;s:13:"listitem_open";i:1;a:1:{i:0;i:1;}i:2;i:9992;}i:562;a:3:{i:0;s:16:"listcontent_open";i:1;a:0:{}i:2;i:9992;}i:563;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:" ";}i:2;i:9996;}i:564;a:3:{i:0;s:6:"smiley";i:1;a:1:{i:0;s:3:"8-)";}i:2;i:9997;}i:565;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:" ";}i:2;i:10000;}i:566;a:3:{i:0;s:11:"unformatted";i:1;a:1:{i:0;s:7:"  8-)  ";}i:2;i:10003;}i:567;a:3:{i:0;s:17:"listcontent_close";i:1;a:0:{}i:2;i:10012;}i:568;a:3:{i:0;s:14:"listitem_close";i:1;a:0:{}i:2;i:10012;}i:569;a:3:{i:0;s:13:"listitem_open";i:1;a:1:{i:0;i:1;}i:2;i:10012;}i:570;a:3:{i:0;s:16:"listcontent_open";i:1;a:0:{}i:2;i:10012;}i:571;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:" ";}i:2;i:10016;}i:572;a:3:{i:0;s:6:"smiley";i:1;a:1:{i:0;s:3:"8-O";}i:2;i:10017;}i:573;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:" ";}i:2;i:10020;}i:574;a:3:{i:0;s:11:"unformatted";i:1;a:1:{i:0;s:7:"  8-O  ";}i:2;i:10023;}i:575;a:3:{i:0;s:17:"listcontent_close";i:1;a:0:{}i:2;i:10032;}i:576;a:3:{i:0;s:14:"listitem_close";i:1;a:0:{}i:2;i:10032;}i:577;a:3:{i:0;s:13:"listitem_open";i:1;a:1:{i:0;i:1;}i:2;i:10032;}i:578;a:3:{i:0;s:16:"listcontent_open";i:1;a:0:{}i:2;i:10032;}i:579;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:" ";}i:2;i:10036;}i:580;a:3:{i:0;s:6:"smiley";i:1;a:1:{i:0;s:3:":-(";}i:2;i:10037;}i:581;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:" ";}i:2;i:10040;}i:582;a:3:{i:0;s:11:"unformatted";i:1;a:1:{i:0;s:7:"  :-(  ";}i:2;i:10043;}i:583;a:3:{i:0;s:17:"listcontent_close";i:1;a:0:{}i:2;i:10052;}i:584;a:3:{i:0;s:14:"listitem_close";i:1;a:0:{}i:2;i:10052;}i:585;a:3:{i:0;s:13:"listitem_open";i:1;a:1:{i:0;i:1;}i:2;i:10052;}i:586;a:3:{i:0;s:16:"listcontent_open";i:1;a:0:{}i:2;i:10052;}i:587;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:" ";}i:2;i:10056;}i:588;a:3:{i:0;s:6:"smiley";i:1;a:1:{i:0;s:3:":-)";}i:2;i:10057;}i:589;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:" ";}i:2;i:10060;}i:590;a:3:{i:0;s:11:"unformatted";i:1;a:1:{i:0;s:7:"  :-)  ";}i:2;i:10063;}i:591;a:3:{i:0;s:17:"listcontent_close";i:1;a:0:{}i:2;i:10072;}i:592;a:3:{i:0;s:14:"listitem_close";i:1;a:0:{}i:2;i:10072;}i:593;a:3:{i:0;s:13:"listitem_open";i:1;a:1:{i:0;i:1;}i:2;i:10072;}i:594;a:3:{i:0;s:16:"listcontent_open";i:1;a:0:{}i:2;i:10072;}i:595;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:" ";}i:2;i:10076;}i:596;a:3:{i:0;s:6:"smiley";i:1;a:1:{i:0;s:2:"=)";}i:2;i:10077;}i:597;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:2:"  ";}i:2;i:10079;}i:598;a:3:{i:0;s:11:"unformatted";i:1;a:1:{i:0;s:7:"  =)   ";}i:2;i:10083;}i:599;a:3:{i:0;s:17:"listcontent_close";i:1;a:0:{}i:2;i:10092;}i:600;a:3:{i:0;s:14:"listitem_close";i:1;a:0:{}i:2;i:10092;}i:601;a:3:{i:0;s:13:"listitem_open";i:1;a:1:{i:0;i:1;}i:2;i:10092;}i:602;a:3:{i:0;s:16:"listcontent_open";i:1;a:0:{}i:2;i:10092;}i:603;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:" ";}i:2;i:10096;}i:604;a:3:{i:0;s:6:"smiley";i:1;a:1:{i:0;s:3:":-/";}i:2;i:10097;}i:605;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:" ";}i:2;i:10100;}i:606;a:3:{i:0;s:11:"unformatted";i:1;a:1:{i:0;s:7:"  :-/  ";}i:2;i:10103;}i:607;a:3:{i:0;s:17:"listcontent_close";i:1;a:0:{}i:2;i:10112;}i:608;a:3:{i:0;s:14:"listitem_close";i:1;a:0:{}i:2;i:10112;}i:609;a:3:{i:0;s:13:"listitem_open";i:1;a:1:{i:0;i:1;}i:2;i:10112;}i:610;a:3:{i:0;s:16:"listcontent_open";i:1;a:0:{}i:2;i:10112;}i:611;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:" ";}i:2;i:10116;}i:612;a:3:{i:0;s:6:"smiley";i:1;a:1:{i:0;s:3:":-\";}i:2;i:10117;}i:613;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:" ";}i:2;i:10120;}i:614;a:3:{i:0;s:11:"unformatted";i:1;a:1:{i:0;s:7:"  :-\  ";}i:2;i:10123;}i:615;a:3:{i:0;s:17:"listcontent_close";i:1;a:0:{}i:2;i:10132;}i:616;a:3:{i:0;s:14:"listitem_close";i:1;a:0:{}i:2;i:10132;}i:617;a:3:{i:0;s:13:"listitem_open";i:1;a:1:{i:0;i:1;}i:2;i:10132;}i:618;a:3:{i:0;s:16:"listcontent_open";i:1;a:0:{}i:2;i:10132;}i:619;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:" ";}i:2;i:10136;}i:620;a:3:{i:0;s:6:"smiley";i:1;a:1:{i:0;s:3:":-?";}i:2;i:10137;}i:621;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:" ";}i:2;i:10140;}i:622;a:3:{i:0;s:11:"unformatted";i:1;a:1:{i:0;s:7:"  :-?  ";}i:2;i:10143;}i:623;a:3:{i:0;s:17:"listcontent_close";i:1;a:0:{}i:2;i:10152;}i:624;a:3:{i:0;s:14:"listitem_close";i:1;a:0:{}i:2;i:10152;}i:625;a:3:{i:0;s:13:"listitem_open";i:1;a:1:{i:0;i:1;}i:2;i:10152;}i:626;a:3:{i:0;s:16:"listcontent_open";i:1;a:0:{}i:2;i:10152;}i:627;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:" ";}i:2;i:10156;}i:628;a:3:{i:0;s:6:"smiley";i:1;a:1:{i:0;s:3:":-D";}i:2;i:10157;}i:629;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:" ";}i:2;i:10160;}i:630;a:3:{i:0;s:11:"unformatted";i:1;a:1:{i:0;s:7:"  :-D  ";}i:2;i:10163;}i:631;a:3:{i:0;s:17:"listcontent_close";i:1;a:0:{}i:2;i:10172;}i:632;a:3:{i:0;s:14:"listitem_close";i:1;a:0:{}i:2;i:10172;}i:633;a:3:{i:0;s:13:"listitem_open";i:1;a:1:{i:0;i:1;}i:2;i:10172;}i:634;a:3:{i:0;s:16:"listcontent_open";i:1;a:0:{}i:2;i:10172;}i:635;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:" ";}i:2;i:10176;}i:636;a:3:{i:0;s:6:"smiley";i:1;a:1:{i:0;s:3:":-P";}i:2;i:10177;}i:637;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:" ";}i:2;i:10180;}i:638;a:3:{i:0;s:11:"unformatted";i:1;a:1:{i:0;s:7:"  :-P  ";}i:2;i:10183;}i:639;a:3:{i:0;s:17:"listcontent_close";i:1;a:0:{}i:2;i:10192;}i:640;a:3:{i:0;s:14:"listitem_close";i:1;a:0:{}i:2;i:10192;}i:641;a:3:{i:0;s:13:"listitem_open";i:1;a:1:{i:0;i:1;}i:2;i:10192;}i:642;a:3:{i:0;s:16:"listcontent_open";i:1;a:0:{}i:2;i:10192;}i:643;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:" ";}i:2;i:10196;}i:644;a:3:{i:0;s:6:"smiley";i:1;a:1:{i:0;s:3:":-O";}i:2;i:10197;}i:645;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:" ";}i:2;i:10200;}i:646;a:3:{i:0;s:11:"unformatted";i:1;a:1:{i:0;s:7:"  :-O  ";}i:2;i:10203;}i:647;a:3:{i:0;s:17:"listcontent_close";i:1;a:0:{}i:2;i:10212;}i:648;a:3:{i:0;s:14:"listitem_close";i:1;a:0:{}i:2;i:10212;}i:649;a:3:{i:0;s:13:"listitem_open";i:1;a:1:{i:0;i:1;}i:2;i:10212;}i:650;a:3:{i:0;s:16:"listcontent_open";i:1;a:0:{}i:2;i:10212;}i:651;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:" ";}i:2;i:10216;}i:652;a:3:{i:0;s:6:"smiley";i:1;a:1:{i:0;s:3:":-X";}i:2;i:10217;}i:653;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:" ";}i:2;i:10220;}i:654;a:3:{i:0;s:11:"unformatted";i:1;a:1:{i:0;s:7:"  :-X  ";}i:2;i:10223;}i:655;a:3:{i:0;s:17:"listcontent_close";i:1;a:0:{}i:2;i:10232;}i:656;a:3:{i:0;s:14:"listitem_close";i:1;a:0:{}i:2;i:10232;}i:657;a:3:{i:0;s:13:"listitem_open";i:1;a:1:{i:0;i:1;}i:2;i:10232;}i:658;a:3:{i:0;s:16:"listcontent_open";i:1;a:0:{}i:2;i:10232;}i:659;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:" ";}i:2;i:10236;}i:660;a:3:{i:0;s:6:"smiley";i:1;a:1:{i:0;s:3:":-|";}i:2;i:10237;}i:661;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:" ";}i:2;i:10240;}i:662;a:3:{i:0;s:11:"unformatted";i:1;a:1:{i:0;s:7:"  :-|  ";}i:2;i:10243;}i:663;a:3:{i:0;s:17:"listcontent_close";i:1;a:0:{}i:2;i:10252;}i:664;a:3:{i:0;s:14:"listitem_close";i:1;a:0:{}i:2;i:10252;}i:665;a:3:{i:0;s:13:"listitem_open";i:1;a:1:{i:0;i:1;}i:2;i:10252;}i:666;a:3:{i:0;s:16:"listcontent_open";i:1;a:0:{}i:2;i:10252;}i:667;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:" ";}i:2;i:10256;}i:668;a:3:{i:0;s:6:"smiley";i:1;a:1:{i:0;s:3:";-)";}i:2;i:10257;}i:669;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:" ";}i:2;i:10260;}i:670;a:3:{i:0;s:11:"unformatted";i:1;a:1:{i:0;s:7:"  ;-)  ";}i:2;i:10263;}i:671;a:3:{i:0;s:17:"listcontent_close";i:1;a:0:{}i:2;i:10272;}i:672;a:3:{i:0;s:14:"listitem_close";i:1;a:0:{}i:2;i:10272;}i:673;a:3:{i:0;s:13:"listitem_open";i:1;a:1:{i:0;i:1;}i:2;i:10272;}i:674;a:3:{i:0;s:16:"listcontent_open";i:1;a:0:{}i:2;i:10272;}i:675;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:" ";}i:2;i:10276;}i:676;a:3:{i:0;s:6:"smiley";i:1;a:1:{i:0;s:3:"^_^";}i:2;i:10277;}i:677;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:" ";}i:2;i:10280;}i:678;a:3:{i:0;s:11:"unformatted";i:1;a:1:{i:0;s:7:"  ^_^  ";}i:2;i:10283;}i:679;a:3:{i:0;s:17:"listcontent_close";i:1;a:0:{}i:2;i:10292;}i:680;a:3:{i:0;s:14:"listitem_close";i:1;a:0:{}i:2;i:10292;}i:681;a:3:{i:0;s:13:"listitem_open";i:1;a:1:{i:0;i:1;}i:2;i:10292;}i:682;a:3:{i:0;s:16:"listcontent_open";i:1;a:0:{}i:2;i:10292;}i:683;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:" ";}i:2;i:10296;}i:684;a:3:{i:0;s:6:"smiley";i:1;a:1:{i:0;s:3:":?:";}i:2;i:10297;}i:685;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:" ";}i:2;i:10300;}i:686;a:3:{i:0;s:11:"unformatted";i:1;a:1:{i:0;s:7:"  :?:  ";}i:2;i:10303;}i:687;a:3:{i:0;s:17:"listcontent_close";i:1;a:0:{}i:2;i:10312;}i:688;a:3:{i:0;s:14:"listitem_close";i:1;a:0:{}i:2;i:10312;}i:689;a:3:{i:0;s:13:"listitem_open";i:1;a:1:{i:0;i:1;}i:2;i:10312;}i:690;a:3:{i:0;s:16:"listcontent_open";i:1;a:0:{}i:2;i:10312;}i:691;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:" ";}i:2;i:10316;}i:692;a:3:{i:0;s:6:"smiley";i:1;a:1:{i:0;s:3:":!:";}i:2;i:10317;}i:693;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:" ";}i:2;i:10320;}i:694;a:3:{i:0;s:11:"unformatted";i:1;a:1:{i:0;s:7:"  :!:  ";}i:2;i:10323;}i:695;a:3:{i:0;s:17:"listcontent_close";i:1;a:0:{}i:2;i:10332;}i:696;a:3:{i:0;s:14:"listitem_close";i:1;a:0:{}i:2;i:10332;}i:697;a:3:{i:0;s:13:"listitem_open";i:1;a:1:{i:0;i:1;}i:2;i:10332;}i:698;a:3:{i:0;s:16:"listcontent_open";i:1;a:0:{}i:2;i:10332;}i:699;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:" ";}i:2;i:10336;}i:700;a:3:{i:0;s:6:"smiley";i:1;a:1:{i:0;s:3:"LOL";}i:2;i:10337;}i:701;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:" ";}i:2;i:10340;}i:702;a:3:{i:0;s:11:"unformatted";i:1;a:1:{i:0;s:7:"  LOL  ";}i:2;i:10343;}i:703;a:3:{i:0;s:17:"listcontent_close";i:1;a:0:{}i:2;i:10352;}i:704;a:3:{i:0;s:14:"listitem_close";i:1;a:0:{}i:2;i:10352;}i:705;a:3:{i:0;s:13:"listitem_open";i:1;a:1:{i:0;i:1;}i:2;i:10352;}i:706;a:3:{i:0;s:16:"listcontent_open";i:1;a:0:{}i:2;i:10352;}i:707;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:" ";}i:2;i:10356;}i:708;a:3:{i:0;s:6:"smiley";i:1;a:1:{i:0;s:5:"FIXME";}i:2;i:10357;}i:709;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:" ";}i:2;i:10362;}i:710;a:3:{i:0;s:11:"unformatted";i:1;a:1:{i:0;s:8:"  FIXME ";}i:2;i:10365;}i:711;a:3:{i:0;s:17:"listcontent_close";i:1;a:0:{}i:2;i:10375;}i:712;a:3:{i:0;s:14:"listitem_close";i:1;a:0:{}i:2;i:10375;}i:713;a:3:{i:0;s:13:"listitem_open";i:1;a:1:{i:0;i:1;}i:2;i:10375;}i:714;a:3:{i:0;s:16:"listcontent_open";i:1;a:0:{}i:2;i:10375;}i:715;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:" ";}i:2;i:10379;}i:716;a:3:{i:0;s:6:"smiley";i:1;a:1:{i:0;s:8:"DELETEME";}i:2;i:10380;}i:717;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:" ";}i:2;i:10388;}i:718;a:3:{i:0;s:11:"unformatted";i:1;a:1:{i:0;s:10:" DELETEME ";}i:2;i:10391;}i:719;a:3:{i:0;s:17:"listcontent_close";i:1;a:0:{}i:2;i:10403;}i:720;a:3:{i:0;s:14:"listitem_close";i:1;a:0:{}i:2;i:10403;}i:721;a:3:{i:0;s:11:"listu_close";i:1;a:0:{}i:2;i:10403;}i:722;a:3:{i:0;s:13:"section_close";i:1;a:0:{}i:2;i:10405;}i:723;a:3:{i:0;s:6:"header";i:1;a:3:{i:0;s:24:"Text to HTML Conversions";i:1;i:3;i:2;i:10405;}i:2;i:10405;}i:724;a:3:{i:0;s:12:"section_open";i:1;a:1:{i:0;i:3;}i:2;i:10405;}i:725;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:10405;}i:726;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:12:"Typography: ";}i:2;i:10441;}i:727;a:3:{i:0;s:12:"internallink";i:1;a:2:{i:0;s:8:"DokuWiki";i:1;N;}i:2;i:10453;}i:728;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:123:" can convert simple text characters to their typographically correct entities. Here is an example of recognized characters.";}i:2;i:10465;}i:729;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:10588;}i:730;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:10588;}i:731;a:3:{i:0;s:6:"entity";i:1;a:1:{i:0;s:2:"->";}i:2;i:10590;}i:732;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:" ";}i:2;i:10592;}i:733;a:3:{i:0;s:6:"entity";i:1;a:1:{i:0;s:2:"<-";}i:2;i:10593;}i:734;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:" ";}i:2;i:10595;}i:735;a:3:{i:0;s:6:"entity";i:1;a:1:{i:0;s:3:"<->";}i:2;i:10596;}i:736;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:" ";}i:2;i:10599;}i:737;a:3:{i:0;s:6:"entity";i:1;a:1:{i:0;s:2:"=>";}i:2;i:10600;}i:738;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:" ";}i:2;i:10602;}i:739;a:3:{i:0;s:6:"entity";i:1;a:1:{i:0;s:2:"<=";}i:2;i:10603;}i:740;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:" ";}i:2;i:10605;}i:741;a:3:{i:0;s:6:"entity";i:1;a:1:{i:0;s:3:"<=>";}i:2;i:10606;}i:742;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:" ";}i:2;i:10609;}i:743;a:3:{i:0;s:6:"entity";i:1;a:1:{i:0;s:2:">>";}i:2;i:10610;}i:744;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:" ";}i:2;i:10612;}i:745;a:3:{i:0;s:6:"entity";i:1;a:1:{i:0;s:2:"<<";}i:2;i:10613;}i:746;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:" ";}i:2;i:10615;}i:747;a:3:{i:0;s:6:"entity";i:1;a:1:{i:0;s:2:"--";}i:2;i:10616;}i:748;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:" ";}i:2;i:10618;}i:749;a:3:{i:0;s:6:"entity";i:1;a:1:{i:0;s:3:"---";}i:2;i:10619;}i:750;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:" ";}i:2;i:10622;}i:751;a:3:{i:0;s:14:"multiplyentity";i:1;a:2:{i:0;s:3:"640";i:1;s:3:"480";}i:2;i:10623;}i:752;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:" ";}i:2;i:10630;}i:753;a:3:{i:0;s:6:"entity";i:1;a:1:{i:0;s:3:"(c)";}i:2;i:10631;}i:754;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:" ";}i:2;i:10634;}i:755;a:3:{i:0;s:6:"entity";i:1;a:1:{i:0;s:4:"(tm)";}i:2;i:10635;}i:756;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:" ";}i:2;i:10639;}i:757;a:3:{i:0;s:6:"entity";i:1;a:1:{i:0;s:3:"(r)";}i:2;i:10640;}i:758;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:"
-";}i:2;i:10643;}i:759;a:3:{i:0;s:18:"doublequoteopening";i:1;a:0:{}i:2;i:10644;}i:760;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:31:"He thought 'It's a man's world'";}i:2;i:10645;}i:761;a:3:{i:0;s:6:"entity";i:1;a:1:{i:0;s:3:"...";}i:2;i:10676;}i:762;a:3:{i:0;s:18:"doublequoteclosing";i:1;a:0:{}i:2;i:10679;}i:763;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:10680;}i:764;a:3:{i:0;s:4:"code";i:1;a:3:{i:0;s:92:"
--> <- <-> => <= <=> >> << -- --- 640x480 (c) (tm) (r)
-"He thought 'It's a man's world'..."
-";i:1;N;i:2;N;}i:2;i:10687;}i:765;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:10687;}i:766;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:44:"The same can be done to produce any kind of ";}i:2;i:10789;}i:767;a:3:{i:0;s:7:"acronym";i:1;a:1:{i:0;s:4:"HTML";}i:2;i:10833;}i:768;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:35:", it just needs to be added to the ";}i:2;i:10837;}i:769;a:3:{i:0;s:13:"interwikilink";i:1;a:4:{i:0;s:13:"doku>entities";i:1;s:12:"pattern file";i:2;s:4:"doku";i:3;s:8:"entities";}i:2;i:10872;}i:770;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:".";}i:2;i:10902;}i:771;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:10903;}i:772;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:10903;}i:773;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:92:"There are three exceptions which do not come from that pattern file: multiplication entity (";}i:2;i:10905;}i:774;a:3:{i:0;s:14:"multiplyentity";i:1;a:2:{i:0;s:3:"640";i:1;s:3:"480";}i:2;i:10997;}i:775;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:16:"), 'single' and ";}i:2;i:11004;}i:776;a:3:{i:0;s:18:"doublequoteopening";i:1;a:0:{}i:2;i:11020;}i:777;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:13:"double quotes";}i:2;i:11021;}i:778;a:3:{i:0;s:18:"doublequoteclosing";i:1;a:0:{}i:2;i:11034;}i:779;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:35:". They can be turned off through a ";}i:2;i:11035;}i:780;a:3:{i:0;s:13:"interwikilink";i:1;a:4:{i:0;s:22:"doku>config:typography";i:1;s:13:"config option";i:2;s:4:"doku";i:3;s:17:"config:typography";}i:2;i:11070;}i:781;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:".";}i:2;i:11110;}i:782;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:11111;}i:783;a:3:{i:0;s:13:"section_close";i:1;a:0:{}i:2;i:11113;}i:784;a:3:{i:0;s:6:"header";i:1;a:3:{i:0;s:7:"Quoting";i:1;i:2;i:2;i:11113;}i:2;i:11113;}i:785;a:3:{i:0;s:12:"section_open";i:1;a:1:{i:0;i:2;}i:2;i:11113;}i:786;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:11113;}i:787;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:104:"Some times you want to mark some text to show it's a reply or comment. You can use the following syntax:";}i:2;i:11134;}i:788;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:11238;}i:789;a:3:{i:0;s:4:"code";i:1;a:3:{i:0;s:112:"
-I think we should do it
-
-> No we shouldn't
-
->> Well, I say we should
-
-> Really?
-
->> Yes!
-
->>> Then lets do it!
-";i:1;N;i:2;N;}i:2;i:11245;}i:790;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:11245;}i:791;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:23:"I think we should do it";}i:2;i:11367;}i:792;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:11391;}i:793;a:3:{i:0;s:10:"quote_open";i:1;a:0:{}i:2;i:11391;}i:794;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:16:" No we shouldn't";}i:2;i:11393;}i:795;a:3:{i:0;s:11:"quote_close";i:1;a:0:{}i:2;i:11409;}i:796;a:3:{i:0;s:10:"quote_open";i:1;a:0:{}i:2;i:11410;}i:797;a:3:{i:0;s:10:"quote_open";i:1;a:0:{}i:2;i:11410;}i:798;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:22:" Well, I say we should";}i:2;i:11413;}i:799;a:3:{i:0;s:11:"quote_close";i:1;a:0:{}i:2;i:11435;}i:800;a:3:{i:0;s:11:"quote_close";i:1;a:0:{}i:2;i:11435;}i:801;a:3:{i:0;s:10:"quote_open";i:1;a:0:{}i:2;i:11436;}i:802;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:8:" Really?";}i:2;i:11438;}i:803;a:3:{i:0;s:11:"quote_close";i:1;a:0:{}i:2;i:11446;}i:804;a:3:{i:0;s:10:"quote_open";i:1;a:0:{}i:2;i:11447;}i:805;a:3:{i:0;s:10:"quote_open";i:1;a:0:{}i:2;i:11447;}i:806;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:5:" Yes!";}i:2;i:11450;}i:807;a:3:{i:0;s:11:"quote_close";i:1;a:0:{}i:2;i:11455;}i:808;a:3:{i:0;s:11:"quote_close";i:1;a:0:{}i:2;i:11455;}i:809;a:3:{i:0;s:10:"quote_open";i:1;a:0:{}i:2;i:11456;}i:810;a:3:{i:0;s:10:"quote_open";i:1;a:0:{}i:2;i:11456;}i:811;a:3:{i:0;s:10:"quote_open";i:1;a:0:{}i:2;i:11456;}i:812;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:17:" Then lets do it!";}i:2;i:11460;}i:813;a:3:{i:0;s:11:"quote_close";i:1;a:0:{}i:2;i:11477;}i:814;a:3:{i:0;s:11:"quote_close";i:1;a:0:{}i:2;i:11477;}i:815;a:3:{i:0;s:11:"quote_close";i:1;a:0:{}i:2;i:11477;}i:816;a:3:{i:0;s:13:"section_close";i:1;a:0:{}i:2;i:11479;}i:817;a:3:{i:0;s:6:"header";i:1;a:3:{i:0;s:6:"Tables";i:1;i:2;i:2;i:11479;}i:2;i:11479;}i:818;a:3:{i:0;s:12:"section_open";i:1;a:1:{i:0;i:2;}i:2;i:11479;}i:819;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:11479;}i:820;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:51:"DokuWiki supports a simple syntax to create tables.";}i:2;i:11499;}i:821;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:11551;}i:822;a:3:{i:0;s:10:"table_open";i:1;a:3:{i:0;i:3;i:1;i:4;i:2;i:11552;}i:2;i:11551;}i:823;a:3:{i:0;s:15:"tablethead_open";i:1;a:0:{}i:2;i:11551;}i:824;a:3:{i:0;s:13:"tablerow_open";i:1;a:0:{}i:2;i:11551;}i:825;a:3:{i:0;s:16:"tableheader_open";i:1;a:3:{i:0;i:1;i:1;s:4:"left";i:2;i:1;}i:2;i:11551;}i:826;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:16:" Heading 1      ";}i:2;i:11553;}i:827;a:3:{i:0;s:17:"tableheader_close";i:1;a:0:{}i:2;i:11569;}i:828;a:3:{i:0;s:16:"tableheader_open";i:1;a:3:{i:0;i:1;i:1;s:4:"left";i:2;i:1;}i:2;i:11569;}i:829;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:17:" Heading 2       ";}i:2;i:11570;}i:830;a:3:{i:0;s:17:"tableheader_close";i:1;a:0:{}i:2;i:11587;}i:831;a:3:{i:0;s:16:"tableheader_open";i:1;a:3:{i:0;i:1;i:1;s:4:"left";i:2;i:1;}i:2;i:11587;}i:832;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:20:" Heading 3          ";}i:2;i:11588;}i:833;a:3:{i:0;s:17:"tableheader_close";i:1;a:0:{}i:2;i:11608;}i:834;a:3:{i:0;s:14:"tablerow_close";i:1;a:0:{}i:2;i:11609;}i:835;a:3:{i:0;s:16:"tablethead_close";i:1;a:0:{}i:2;i:11609;}i:836;a:3:{i:0;s:13:"tablerow_open";i:1;a:0:{}i:2;i:11609;}i:837;a:3:{i:0;s:14:"tablecell_open";i:1;a:3:{i:0;i:1;i:1;s:4:"left";i:2;i:1;}i:2;i:11609;}i:838;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:16:" Row 1 Col 1    ";}i:2;i:11611;}i:839;a:3:{i:0;s:15:"tablecell_close";i:1;a:0:{}i:2;i:11627;}i:840;a:3:{i:0;s:14:"tablecell_open";i:1;a:3:{i:0;i:1;i:1;s:4:"left";i:2;i:1;}i:2;i:11627;}i:841;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:17:" Row 1 Col 2     ";}i:2;i:11628;}i:842;a:3:{i:0;s:15:"tablecell_close";i:1;a:0:{}i:2;i:11645;}i:843;a:3:{i:0;s:14:"tablecell_open";i:1;a:3:{i:0;i:1;i:1;s:4:"left";i:2;i:1;}i:2;i:11645;}i:844;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:20:" Row 1 Col 3        ";}i:2;i:11646;}i:845;a:3:{i:0;s:15:"tablecell_close";i:1;a:0:{}i:2;i:11666;}i:846;a:3:{i:0;s:14:"tablerow_close";i:1;a:0:{}i:2;i:11667;}i:847;a:3:{i:0;s:13:"tablerow_open";i:1;a:0:{}i:2;i:11667;}i:848;a:3:{i:0;s:14:"tablecell_open";i:1;a:3:{i:0;i:1;i:1;s:4:"left";i:2;i:1;}i:2;i:11667;}i:849;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:16:" Row 2 Col 1    ";}i:2;i:11669;}i:850;a:3:{i:0;s:15:"tablecell_close";i:1;a:0:{}i:2;i:11685;}i:851;a:3:{i:0;s:14:"tablecell_open";i:1;a:3:{i:0;i:2;i:1;N;i:2;i:1;}i:2;i:11685;}i:852;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:37:" some colspan (note the double pipe) ";}i:2;i:11686;}i:853;a:3:{i:0;s:15:"tablecell_close";i:1;a:0:{}i:2;i:11723;}i:854;a:3:{i:0;s:14:"tablerow_close";i:1;a:0:{}i:2;i:11725;}i:855;a:3:{i:0;s:13:"tablerow_open";i:1;a:0:{}i:2;i:11725;}i:856;a:3:{i:0;s:14:"tablecell_open";i:1;a:3:{i:0;i:1;i:1;s:4:"left";i:2;i:1;}i:2;i:11725;}i:857;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:16:" Row 3 Col 1    ";}i:2;i:11727;}i:858;a:3:{i:0;s:15:"tablecell_close";i:1;a:0:{}i:2;i:11743;}i:859;a:3:{i:0;s:14:"tablecell_open";i:1;a:3:{i:0;i:1;i:1;s:4:"left";i:2;i:1;}i:2;i:11743;}i:860;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:17:" Row 3 Col 2     ";}i:2;i:11744;}i:861;a:3:{i:0;s:15:"tablecell_close";i:1;a:0:{}i:2;i:11761;}i:862;a:3:{i:0;s:14:"tablecell_open";i:1;a:3:{i:0;i:1;i:1;s:4:"left";i:2;i:1;}i:2;i:11761;}i:863;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:20:" Row 3 Col 3        ";}i:2;i:11762;}i:864;a:3:{i:0;s:15:"tablecell_close";i:1;a:0:{}i:2;i:11782;}i:865;a:3:{i:0;s:14:"tablerow_close";i:1;a:0:{}i:2;i:11783;}i:866;a:3:{i:0;s:11:"table_close";i:1;a:1:{i:0;i:11783;}i:2;i:11783;}i:867;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:11783;}i:868;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:40:"Table rows have to start and end with a ";}i:2;i:11785;}i:869;a:3:{i:0;s:14:"monospace_open";i:1;a:0:{}i:2;i:11825;}i:870;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:"|";}i:2;i:11827;}i:871;a:3:{i:0;s:15:"monospace_close";i:1;a:0:{}i:2;i:11828;}i:872;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:22:" for normal rows or a ";}i:2;i:11830;}i:873;a:3:{i:0;s:14:"monospace_open";i:1;a:0:{}i:2;i:11852;}i:874;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:"^";}i:2;i:11854;}i:875;a:3:{i:0;s:15:"monospace_close";i:1;a:0:{}i:2;i:11855;}i:876;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:13:" for headers.";}i:2;i:11857;}i:877;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:11871;}i:878;a:3:{i:0;s:12:"preformatted";i:1;a:1:{i:0;s:231:"^ Heading 1      ^ Heading 2       ^ Heading 3          ^
-| Row 1 Col 1    | Row 1 Col 2     | Row 1 Col 3        |
-| Row 2 Col 1    | some colspan (note the double pipe) ||
-| Row 3 Col 1    | Row 3 Col 2     | Row 3 Col 3        |";}i:2;i:11871;}i:879;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:11871;}i:880;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:146:"To connect cells horizontally, just make the next cell completely empty as shown above. Be sure to have always the same amount of cell separators!";}i:2;i:12113;}i:881;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:12259;}i:882;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:12259;}i:883;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:40:"Vertical tableheaders are possible, too.";}i:2;i:12261;}i:884;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:12302;}i:885;a:3:{i:0;s:10:"table_open";i:1;a:3:{i:0;i:3;i:1;i:4;i:2;i:12303;}i:2;i:12302;}i:886;a:3:{i:0;s:15:"tablethead_open";i:1;a:0:{}i:2;i:12302;}i:887;a:3:{i:0;s:13:"tablerow_open";i:1;a:0:{}i:2;i:12302;}i:888;a:3:{i:0;s:14:"tablecell_open";i:1;a:3:{i:0;i:1;i:1;s:4:"left";i:2;i:1;}i:2;i:12302;}i:889;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:14:"              ";}i:2;i:12304;}i:890;a:3:{i:0;s:15:"tablecell_close";i:1;a:0:{}i:2;i:12318;}i:891;a:3:{i:0;s:16:"tableheader_open";i:1;a:3:{i:0;i:1;i:1;s:4:"left";i:2;i:1;}i:2;i:12318;}i:892;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:22:" Heading 1            ";}i:2;i:12319;}i:893;a:3:{i:0;s:17:"tableheader_close";i:1;a:0:{}i:2;i:12341;}i:894;a:3:{i:0;s:16:"tableheader_open";i:1;a:3:{i:0;i:1;i:1;s:4:"left";i:2;i:1;}i:2;i:12341;}i:895;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:20:" Heading 2          ";}i:2;i:12342;}i:896;a:3:{i:0;s:17:"tableheader_close";i:1;a:0:{}i:2;i:12362;}i:897;a:3:{i:0;s:14:"tablerow_close";i:1;a:0:{}i:2;i:12363;}i:898;a:3:{i:0;s:16:"tablethead_close";i:1;a:0:{}i:2;i:12363;}i:899;a:3:{i:0;s:13:"tablerow_open";i:1;a:0:{}i:2;i:12363;}i:900;a:3:{i:0;s:16:"tableheader_open";i:1;a:3:{i:0;i:1;i:1;s:4:"left";i:2;i:1;}i:2;i:12363;}i:901;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:14:" Heading 3    ";}i:2;i:12365;}i:902;a:3:{i:0;s:17:"tableheader_close";i:1;a:0:{}i:2;i:12379;}i:903;a:3:{i:0;s:14:"tablecell_open";i:1;a:3:{i:0;i:1;i:1;s:4:"left";i:2;i:1;}i:2;i:12379;}i:904;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:22:" Row 1 Col 2          ";}i:2;i:12380;}i:905;a:3:{i:0;s:15:"tablecell_close";i:1;a:0:{}i:2;i:12402;}i:906;a:3:{i:0;s:14:"tablecell_open";i:1;a:3:{i:0;i:1;i:1;s:4:"left";i:2;i:1;}i:2;i:12402;}i:907;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:20:" Row 1 Col 3        ";}i:2;i:12403;}i:908;a:3:{i:0;s:15:"tablecell_close";i:1;a:0:{}i:2;i:12423;}i:909;a:3:{i:0;s:14:"tablerow_close";i:1;a:0:{}i:2;i:12424;}i:910;a:3:{i:0;s:13:"tablerow_open";i:1;a:0:{}i:2;i:12424;}i:911;a:3:{i:0;s:16:"tableheader_open";i:1;a:3:{i:0;i:1;i:1;s:4:"left";i:2;i:1;}i:2;i:12424;}i:912;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:14:" Heading 4    ";}i:2;i:12426;}i:913;a:3:{i:0;s:17:"tableheader_close";i:1;a:0:{}i:2;i:12440;}i:914;a:3:{i:0;s:14:"tablecell_open";i:1;a:3:{i:0;i:1;i:1;N;i:2;i:1;}i:2;i:12440;}i:915;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:22:" no colspan this time ";}i:2;i:12441;}i:916;a:3:{i:0;s:15:"tablecell_close";i:1;a:0:{}i:2;i:12463;}i:917;a:3:{i:0;s:14:"tablecell_open";i:1;a:3:{i:0;i:1;i:1;s:4:"left";i:2;i:1;}i:2;i:12463;}i:918;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:20:"                    ";}i:2;i:12464;}i:919;a:3:{i:0;s:15:"tablecell_close";i:1;a:0:{}i:2;i:12484;}i:920;a:3:{i:0;s:14:"tablerow_close";i:1;a:0:{}i:2;i:12485;}i:921;a:3:{i:0;s:13:"tablerow_open";i:1;a:0:{}i:2;i:12485;}i:922;a:3:{i:0;s:16:"tableheader_open";i:1;a:3:{i:0;i:1;i:1;s:4:"left";i:2;i:1;}i:2;i:12485;}i:923;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:14:" Heading 5    ";}i:2;i:12487;}i:924;a:3:{i:0;s:17:"tableheader_close";i:1;a:0:{}i:2;i:12501;}i:925;a:3:{i:0;s:14:"tablecell_open";i:1;a:3:{i:0;i:1;i:1;s:4:"left";i:2;i:1;}i:2;i:12501;}i:926;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:22:" Row 2 Col 2          ";}i:2;i:12502;}i:927;a:3:{i:0;s:15:"tablecell_close";i:1;a:0:{}i:2;i:12524;}i:928;a:3:{i:0;s:14:"tablecell_open";i:1;a:3:{i:0;i:1;i:1;s:4:"left";i:2;i:1;}i:2;i:12524;}i:929;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:20:" Row 2 Col 3        ";}i:2;i:12525;}i:930;a:3:{i:0;s:15:"tablecell_close";i:1;a:0:{}i:2;i:12545;}i:931;a:3:{i:0;s:14:"tablerow_close";i:1;a:0:{}i:2;i:12546;}i:932;a:3:{i:0;s:11:"table_close";i:1;a:1:{i:0;i:12546;}i:2;i:12546;}i:933;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:12546;}i:934;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:89:"As you can see, it's the cell separator before a cell which decides about the formatting:";}i:2;i:12548;}i:935;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:12638;}i:936;a:3:{i:0;s:12:"preformatted";i:1;a:1:{i:0;s:243:"|              ^ Heading 1            ^ Heading 2          ^
-^ Heading 3    | Row 1 Col 2          | Row 1 Col 3        |
-^ Heading 4    | no colspan this time |                    |
-^ Heading 5    | Row 2 Col 2          | Row 2 Col 3        |";}i:2;i:12638;}i:937;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:12638;}i:938;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:61:"You can have rowspans (vertically connected cells) by adding ";}i:2;i:12892;}i:939;a:3:{i:0;s:14:"monospace_open";i:1;a:0:{}i:2;i:12953;}i:940;a:3:{i:0;s:11:"unformatted";i:1;a:1:{i:0;s:3:":::";}i:2;i:12957;}i:941;a:3:{i:0;s:15:"monospace_close";i:1;a:0:{}i:2;i:12962;}i:942;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:59:" into the cells below the one to which they should connect.";}i:2;i:12964;}i:943;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:13024;}i:944;a:3:{i:0;s:10:"table_open";i:1;a:3:{i:0;i:3;i:1;i:4;i:2;i:13025;}i:2;i:13024;}i:945;a:3:{i:0;s:15:"tablethead_open";i:1;a:0:{}i:2;i:13024;}i:946;a:3:{i:0;s:13:"tablerow_open";i:1;a:0:{}i:2;i:13024;}i:947;a:3:{i:0;s:16:"tableheader_open";i:1;a:3:{i:0;i:1;i:1;s:4:"left";i:2;i:1;}i:2;i:13024;}i:948;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:16:" Heading 1      ";}i:2;i:13026;}i:949;a:3:{i:0;s:17:"tableheader_close";i:1;a:0:{}i:2;i:13042;}i:950;a:3:{i:0;s:16:"tableheader_open";i:1;a:3:{i:0;i:1;i:1;s:4:"left";i:2;i:1;}i:2;i:13042;}i:951;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:28:" Heading 2                  ";}i:2;i:13043;}i:952;a:3:{i:0;s:17:"tableheader_close";i:1;a:0:{}i:2;i:13071;}i:953;a:3:{i:0;s:16:"tableheader_open";i:1;a:3:{i:0;i:1;i:1;s:4:"left";i:2;i:1;}i:2;i:13071;}i:954;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:20:" Heading 3          ";}i:2;i:13072;}i:955;a:3:{i:0;s:17:"tableheader_close";i:1;a:0:{}i:2;i:13092;}i:956;a:3:{i:0;s:14:"tablerow_close";i:1;a:0:{}i:2;i:13093;}i:957;a:3:{i:0;s:16:"tablethead_close";i:1;a:0:{}i:2;i:13093;}i:958;a:3:{i:0;s:13:"tablerow_open";i:1;a:0:{}i:2;i:13093;}i:959;a:3:{i:0;s:14:"tablecell_open";i:1;a:3:{i:0;i:1;i:1;s:4:"left";i:2;i:1;}i:2;i:13093;}i:960;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:16:" Row 1 Col 1    ";}i:2;i:13095;}i:961;a:3:{i:0;s:15:"tablecell_close";i:1;a:0:{}i:2;i:13111;}i:962;a:3:{i:0;s:14:"tablecell_open";i:1;a:3:{i:0;i:1;i:1;N;i:2;i:3;}i:2;i:13111;}i:963;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:28:" this cell spans vertically ";}i:2;i:13112;}i:964;a:3:{i:0;s:15:"tablecell_close";i:1;a:0:{}i:2;i:13140;}i:965;a:3:{i:0;s:14:"tablecell_open";i:1;a:3:{i:0;i:1;i:1;s:4:"left";i:2;i:1;}i:2;i:13140;}i:966;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:20:" Row 1 Col 3        ";}i:2;i:13141;}i:967;a:3:{i:0;s:15:"tablecell_close";i:1;a:0:{}i:2;i:13161;}i:968;a:3:{i:0;s:14:"tablerow_close";i:1;a:0:{}i:2;i:13162;}i:969;a:3:{i:0;s:13:"tablerow_open";i:1;a:0:{}i:2;i:13162;}i:970;a:3:{i:0;s:14:"tablecell_open";i:1;a:3:{i:0;i:1;i:1;s:4:"left";i:2;i:1;}i:2;i:13162;}i:971;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:16:" Row 2 Col 1    ";}i:2;i:13164;}i:972;a:3:{i:0;s:15:"tablecell_close";i:1;a:0:{}i:2;i:13180;}i:973;a:3:{i:0;s:14:"tablecell_open";i:1;a:3:{i:0;i:1;i:1;s:4:"left";i:2;i:1;}i:2;i:13209;}i:974;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:20:" Row 2 Col 3        ";}i:2;i:13210;}i:975;a:3:{i:0;s:15:"tablecell_close";i:1;a:0:{}i:2;i:13230;}i:976;a:3:{i:0;s:14:"tablerow_close";i:1;a:0:{}i:2;i:13231;}i:977;a:3:{i:0;s:13:"tablerow_open";i:1;a:0:{}i:2;i:13231;}i:978;a:3:{i:0;s:14:"tablecell_open";i:1;a:3:{i:0;i:1;i:1;s:4:"left";i:2;i:1;}i:2;i:13231;}i:979;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:16:" Row 3 Col 1    ";}i:2;i:13233;}i:980;a:3:{i:0;s:15:"tablecell_close";i:1;a:0:{}i:2;i:13249;}i:981;a:3:{i:0;s:14:"tablecell_open";i:1;a:3:{i:0;i:1;i:1;s:4:"left";i:2;i:1;}i:2;i:13278;}i:982;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:20:" Row 2 Col 3        ";}i:2;i:13279;}i:983;a:3:{i:0;s:15:"tablecell_close";i:1;a:0:{}i:2;i:13299;}i:984;a:3:{i:0;s:14:"tablerow_close";i:1;a:0:{}i:2;i:13300;}i:985;a:3:{i:0;s:11:"table_close";i:1;a:1:{i:0;i:13300;}i:2;i:13300;}i:986;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:13300;}i:987;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:75:"Apart from the rowspan syntax those cells should not contain anything else.";}i:2;i:13302;}i:988;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:13378;}i:989;a:3:{i:0;s:12:"preformatted";i:1;a:1:{i:0;s:275:"^ Heading 1      ^ Heading 2                  ^ Heading 3          ^
-| Row 1 Col 1    | this cell spans vertically | Row 1 Col 3        |
-| Row 2 Col 1    | :::                        | Row 2 Col 3        |
-| Row 3 Col 1    | :::                        | Row 2 Col 3        |";}i:2;i:13378;}i:990;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:13378;}i:991;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:243:"You can align the table contents, too. Just add at least two whitespaces at the opposite end of your text: Add two spaces on the left to align right, two spaces on the right to align left and two spaces at least at both ends for centered text.";}i:2;i:13664;}i:992;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:13908;}i:993;a:3:{i:0;s:10:"table_open";i:1;a:3:{i:0;i:3;i:1;i:4;i:2;i:13909;}i:2;i:13908;}i:994;a:3:{i:0;s:15:"tablethead_open";i:1;a:0:{}i:2;i:13908;}i:995;a:3:{i:0;s:13:"tablerow_open";i:1;a:0:{}i:2;i:13908;}i:996;a:3:{i:0;s:16:"tableheader_open";i:1;a:3:{i:0;i:3;i:1;s:6:"center";i:2;i:1;}i:2;i:13908;}i:997;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:42:"           Table with alignment           ";}i:2;i:13910;}i:998;a:3:{i:0;s:17:"tableheader_close";i:1;a:0:{}i:2;i:13952;}i:999;a:3:{i:0;s:14:"tablerow_close";i:1;a:0:{}i:2;i:13955;}i:1000;a:3:{i:0;s:16:"tablethead_close";i:1;a:0:{}i:2;i:13955;}i:1001;a:3:{i:0;s:13:"tablerow_open";i:1;a:0:{}i:2;i:13955;}i:1002;a:3:{i:0;s:14:"tablecell_open";i:1;a:3:{i:0;i:1;i:1;s:5:"right";i:2;i:1;}i:2;i:13955;}i:1003;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:14:"         right";}i:2;i:13957;}i:1004;a:3:{i:0;s:15:"tablecell_close";i:1;a:0:{}i:2;i:13971;}i:1005;a:3:{i:0;s:14:"tablecell_open";i:1;a:3:{i:0;i:1;i:1;s:6:"center";i:2;i:1;}i:2;i:13971;}i:1006;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:14:"    center    ";}i:2;i:13972;}i:1007;a:3:{i:0;s:15:"tablecell_close";i:1;a:0:{}i:2;i:13986;}i:1008;a:3:{i:0;s:14:"tablecell_open";i:1;a:3:{i:0;i:1;i:1;s:4:"left";i:2;i:1;}i:2;i:13986;}i:1009;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:14:"left          ";}i:2;i:13987;}i:1010;a:3:{i:0;s:15:"tablecell_close";i:1;a:0:{}i:2;i:14001;}i:1011;a:3:{i:0;s:14:"tablerow_close";i:1;a:0:{}i:2;i:14002;}i:1012;a:3:{i:0;s:13:"tablerow_open";i:1;a:0:{}i:2;i:14002;}i:1013;a:3:{i:0;s:14:"tablecell_open";i:1;a:3:{i:0;i:1;i:1;s:4:"left";i:2;i:1;}i:2;i:14002;}i:1014;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:14:"left          ";}i:2;i:14004;}i:1015;a:3:{i:0;s:15:"tablecell_close";i:1;a:0:{}i:2;i:14018;}i:1016;a:3:{i:0;s:14:"tablecell_open";i:1;a:3:{i:0;i:1;i:1;s:5:"right";i:2;i:1;}i:2;i:14018;}i:1017;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:14:"         right";}i:2;i:14019;}i:1018;a:3:{i:0;s:15:"tablecell_close";i:1;a:0:{}i:2;i:14033;}i:1019;a:3:{i:0;s:14:"tablecell_open";i:1;a:3:{i:0;i:1;i:1;s:6:"center";i:2;i:1;}i:2;i:14033;}i:1020;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:14:"    center    ";}i:2;i:14034;}i:1021;a:3:{i:0;s:15:"tablecell_close";i:1;a:0:{}i:2;i:14048;}i:1022;a:3:{i:0;s:14:"tablerow_close";i:1;a:0:{}i:2;i:14049;}i:1023;a:3:{i:0;s:13:"tablerow_open";i:1;a:0:{}i:2;i:14049;}i:1024;a:3:{i:0;s:14:"tablecell_open";i:1;a:3:{i:0;i:1;i:1;N;i:2;i:1;}i:2;i:14049;}i:1025;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:14:" xxxxxxxxxxxx ";}i:2;i:14051;}i:1026;a:3:{i:0;s:15:"tablecell_close";i:1;a:0:{}i:2;i:14065;}i:1027;a:3:{i:0;s:14:"tablecell_open";i:1;a:3:{i:0;i:1;i:1;N;i:2;i:1;}i:2;i:14065;}i:1028;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:14:" xxxxxxxxxxxx ";}i:2;i:14066;}i:1029;a:3:{i:0;s:15:"tablecell_close";i:1;a:0:{}i:2;i:14080;}i:1030;a:3:{i:0;s:14:"tablecell_open";i:1;a:3:{i:0;i:1;i:1;N;i:2;i:1;}i:2;i:14080;}i:1031;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:14:" xxxxxxxxxxxx ";}i:2;i:14081;}i:1032;a:3:{i:0;s:15:"tablecell_close";i:1;a:0:{}i:2;i:14095;}i:1033;a:3:{i:0;s:14:"tablerow_close";i:1;a:0:{}i:2;i:14096;}i:1034;a:3:{i:0;s:11:"table_close";i:1;a:1:{i:0;i:14096;}i:2;i:14096;}i:1035;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:14096;}i:1036;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:35:"This is how it looks in the source:";}i:2;i:14098;}i:1037;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:14134;}i:1038;a:3:{i:0;s:12:"preformatted";i:1;a:1:{i:0;s:187:"^           Table with alignment           ^^^
-|         right|    center    |left          |
-|left          |         right|    center    |
-| xxxxxxxxxxxx | xxxxxxxxxxxx | xxxxxxxxxxxx |";}i:2;i:14134;}i:1039;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:14134;}i:1040;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:42:"Note: Vertical alignment is not supported.";}i:2;i:14332;}i:1041;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:14374;}i:1042;a:3:{i:0;s:13:"section_close";i:1;a:0:{}i:2;i:14376;}i:1043;a:3:{i:0;s:6:"header";i:1;a:3:{i:0;s:13:"No Formatting";i:1;i:2;i:2;i:14376;}i:2;i:14376;}i:1044;a:3:{i:0;s:12:"section_open";i:1;a:1:{i:0;i:2;}i:2;i:14376;}i:1045;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:14376;}i:1046;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:108:"If you need to display text exactly like it is typed (without any formatting), enclose the area either with ";}i:2;i:14403;}i:1047;a:3:{i:0;s:14:"monospace_open";i:1;a:0:{}i:2;i:14511;}i:1048;a:3:{i:0;s:11:"unformatted";i:1;a:1:{i:0;s:8:"<nowiki>";}i:2;i:14515;}i:1049;a:3:{i:0;s:15:"monospace_close";i:1;a:0:{}i:2;i:14525;}i:1050;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:49:" tags or even simpler, with double percent signs ";}i:2;i:14527;}i:1051;a:3:{i:0;s:14:"monospace_open";i:1;a:0:{}i:2;i:14576;}i:1052;a:3:{i:0;s:11:"unformatted";i:1;a:1:{i:0;s:2:"%%";}i:2;i:14586;}i:1053;a:3:{i:0;s:15:"monospace_close";i:1;a:0:{}i:2;i:14597;}i:1054;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:".";}i:2;i:14599;}i:1055;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:14600;}i:1056;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:14600;}i:1057;a:3:{i:0;s:11:"unformatted";i:1;a:1:{i:0;s:130:"
-This is some text which contains addresses like this: http://www.splitbrain.org and **formatting**, but nothing is done with it.
-";}i:2;i:14610;}i:1058;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:22:"
-The same is true for ";}i:2;i:14749;}i:1059;a:3:{i:0;s:11:"unformatted";i:1;a:1:{i:0;s:35:"//__this__ text// with a smiley ;-)";}i:2;i:14773;}i:1060;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:".";}i:2;i:14810;}i:1061;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:14812;}i:1062;a:3:{i:0;s:12:"preformatted";i:1;a:1:{i:0;s:209:"<nowiki>
-This is some text which contains addresses like this: http://www.splitbrain.org and **formatting**, but nothing is done with it.
-</nowiki>
-The same is true for %%//__this__ text// with a smiley ;-)%%.";}i:2;i:14812;}i:1063;a:3:{i:0;s:13:"section_close";i:1;a:0:{}i:2;i:15032;}i:1064;a:3:{i:0;s:6:"header";i:1;a:3:{i:0;s:11:"Code Blocks";i:1;i:2;i:2;i:15032;}i:2;i:15032;}i:1065;a:3:{i:0;s:12:"section_open";i:1;a:1:{i:0;i:2;}i:2;i:15032;}i:1066;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:15032;}i:1067;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:155:"You can include code blocks into your documents by either indenting them by at least two spaces (like used for the previous examples) or by using the tags ";}i:2;i:15057;}i:1068;a:3:{i:0;s:14:"monospace_open";i:1;a:0:{}i:2;i:15212;}i:1069;a:3:{i:0;s:11:"unformatted";i:1;a:1:{i:0;s:6:"<code>";}i:2;i:15216;}i:1070;a:3:{i:0;s:15:"monospace_close";i:1;a:0:{}i:2;i:15224;}i:1071;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:4:" or ";}i:2;i:15226;}i:1072;a:3:{i:0;s:14:"monospace_open";i:1;a:0:{}i:2;i:15230;}i:1073;a:3:{i:0;s:11:"unformatted";i:1;a:1:{i:0;s:6:"<file>";}i:2;i:15234;}i:1074;a:3:{i:0;s:15:"monospace_close";i:1;a:0:{}i:2;i:15242;}i:1075;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:".";}i:2;i:15244;}i:1076;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:15246;}i:1077;a:3:{i:0;s:12:"preformatted";i:1;a:1:{i:0;s:39:"This is text is indented by two spaces.";}i:2;i:15246;}i:1078;a:3:{i:0;s:4:"code";i:1;a:3:{i:0;s:78:"
-This is preformatted code all spaces are preserved: like              <-this
-";i:1;N;i:2;N;}i:2;i:15295;}i:1079;a:3:{i:0;s:4:"file";i:1;a:3:{i:0;s:84:"
-This is pretty much the same, but you could use it to show that you quoted a file.
-";i:1;N;i:2;N;}i:2;i:15388;}i:1080;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:15388;}i:1081;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:41:"Those blocks were created by this source:";}i:2;i:15482;}i:1082;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:15524;}i:1083;a:3:{i:0;s:12:"preformatted";i:1;a:1:{i:0;s:41:"  This is text is indented by two spaces.";}i:2;i:15524;}i:1084;a:3:{i:0;s:12:"preformatted";i:1;a:1:{i:0;s:91:"<code>
-This is preformatted code all spaces are preserved: like              <-this
-</code>";}i:2;i:15569;}i:1085;a:3:{i:0;s:12:"preformatted";i:1;a:1:{i:0;s:97:"<file>
-This is pretty much the same, but you could use it to show that you quoted a file.
-</file>";}i:2;i:15668;}i:1086;a:3:{i:0;s:13:"section_close";i:1;a:0:{}i:2;i:15774;}i:1087;a:3:{i:0;s:6:"header";i:1;a:3:{i:0;s:19:"Syntax Highlighting";i:1;i:3;i:2;i:15774;}i:2;i:15774;}i:1088;a:3:{i:0;s:12:"section_open";i:1;a:1:{i:0;i:3;}i:2;i:15774;}i:1089;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:15774;}i:1090;a:3:{i:0;s:12:"internallink";i:1;a:2:{i:0;s:13:"wiki:DokuWiki";i:1;N;}i:2;i:15805;}i:1091;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:70:" can highlight sourcecode, which makes it easier to read. It uses the ";}i:2;i:15822;}i:1092;a:3:{i:0;s:12:"externallink";i:1;a:2:{i:0;s:28:"http://qbnz.com/highlighter/";i:1;s:5:"GeSHi";}i:2;i:15892;}i:1093;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:28:" Generic Syntax Highlighter ";}i:2;i:15930;}i:1094;a:3:{i:0;s:6:"entity";i:1;a:1:{i:0;s:2:"--";}i:2;i:15958;}i:1095;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:228:" so any language supported by GeSHi is supported. The syntax uses the same code and file blocks described in the previous section, but this time the name of the language syntax to be highlighted is included inside the tag, e.g. ";}i:2;i:15960;}i:1096;a:3:{i:0;s:14:"monospace_open";i:1;a:0:{}i:2;i:16188;}i:1097;a:3:{i:0;s:11:"unformatted";i:1;a:1:{i:0;s:11:"<code java>";}i:2;i:16198;}i:1098;a:3:{i:0;s:15:"monospace_close";i:1;a:0:{}i:2;i:16218;}i:1099;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:4:" or ";}i:2;i:16220;}i:1100;a:3:{i:0;s:14:"monospace_open";i:1;a:0:{}i:2;i:16224;}i:1101;a:3:{i:0;s:11:"unformatted";i:1;a:1:{i:0;s:11:"<file java>";}i:2;i:16234;}i:1102;a:3:{i:0;s:15:"monospace_close";i:1;a:0:{}i:2;i:16254;}i:1103;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:".";}i:2;i:16256;}i:1104;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:16257;}i:1105;a:3:{i:0;s:4:"code";i:1;a:3:{i:0;s:266:"
-/**
- * The HelloWorldApp class implements an application that
- * simply displays "Hello World!" to the standard output.
- */
-class HelloWorldApp {
-    public static void main(String[] args) {
-        System.out.println("Hello World!"); //Display the string.
-    }
-}
-";i:1;s:4:"java";i:2;N;}i:2;i:16264;}i:1106;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:16264;}i:1107;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:57:"The following language strings are currently recognized: ";}i:2;i:16545;}i:1108;a:3:{i:0;s:13:"emphasis_open";i:1;a:0:{}i:2;i:16602;}i:1109;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1775:"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";}i:2;i:16604;}i:1110;a:3:{i:0;s:14:"emphasis_close";i:1;a:0:{}i:2;i:18379;}i:1111;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:18381;}i:1112;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:18381;}i:1113;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:21:"There are additional ";}i:2;i:18383;}i:1114;a:3:{i:0;s:13:"interwikilink";i:1;a:4:{i:0;s:24:"doku>syntax_highlighting";i:1;s:16:"advanced options";i:2;s:4:"doku";i:3;s:19:"syntax_highlighting";}i:2;i:18404;}i:1115;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:86:" available for syntax highlighting, such as highlighting lines or adding line numbers.";}i:2;i:18449;}i:1116;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:18535;}i:1117;a:3:{i:0;s:13:"section_close";i:1;a:0:{}i:2;i:18537;}i:1118;a:3:{i:0;s:6:"header";i:1;a:3:{i:0;s:24:"Downloadable Code Blocks";i:1;i:3;i:2;i:18537;}i:2;i:18537;}i:1119;a:3:{i:0;s:12:"section_open";i:1;a:1:{i:0;i:3;}i:2;i:18537;}i:1120;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:18537;}i:1121;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:17:"When you use the ";}i:2;i:18573;}i:1122;a:3:{i:0;s:14:"monospace_open";i:1;a:0:{}i:2;i:18590;}i:1123;a:3:{i:0;s:11:"unformatted";i:1;a:1:{i:0;s:6:"<code>";}i:2;i:18594;}i:1124;a:3:{i:0;s:15:"monospace_close";i:1;a:0:{}i:2;i:18602;}i:1125;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:4:" or ";}i:2;i:18604;}i:1126;a:3:{i:0;s:14:"monospace_open";i:1;a:0:{}i:2;i:18608;}i:1127;a:3:{i:0;s:11:"unformatted";i:1;a:1:{i:0;s:6:"<file>";}i:2;i:18612;}i:1128;a:3:{i:0;s:15:"monospace_close";i:1;a:0:{}i:2;i:18620;}i:1129;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:160:" syntax as above, you might want to make the shown code available for download as well. You can do this by specifying a file name after language code like this:";}i:2;i:18622;}i:1130;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:18782;}i:1131;a:3:{i:0;s:4:"code";i:1;a:3:{i:0;s:64:"
-<file php myexample.php>
-<?php echo "hello world!"; ?>
-</file>
-";i:1;N;i:2;N;}i:2;i:18789;}i:1132;a:3:{i:0;s:4:"file";i:1;a:3:{i:0;s:31:"
-<?php echo "hello world!"; ?>
-";i:1;s:3:"php";i:2;s:13:"myexample.php";}i:2;i:18868;}i:1133;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:18868;}i:1134;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:81:"If you don't want any highlighting but want a downloadable file, specify a dash (";}i:2;i:18927;}i:1135;a:3:{i:0;s:14:"monospace_open";i:1;a:0:{}i:2;i:19008;}i:1136;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:"-";}i:2;i:19010;}i:1137;a:3:{i:0;s:15:"monospace_close";i:1;a:0:{}i:2;i:19011;}i:1138;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:24:") as the language code: ";}i:2;i:19013;}i:1139;a:3:{i:0;s:14:"monospace_open";i:1;a:0:{}i:2;i:19037;}i:1140;a:3:{i:0;s:11:"unformatted";i:1;a:1:{i:0;s:19:"<code - myfile.foo>";}i:2;i:19041;}i:1141;a:3:{i:0;s:15:"monospace_close";i:1;a:0:{}i:2;i:19062;}i:1142;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:".";}i:2;i:19064;}i:1143;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:19065;}i:1144;a:3:{i:0;s:13:"section_close";i:1;a:0:{}i:2;i:19068;}i:1145;a:3:{i:0;s:6:"header";i:1;a:3:{i:0;s:22:"Embedding HTML and PHP";i:1;i:2;i:2;i:19068;}i:2;i:19068;}i:1146;a:3:{i:0;s:12:"section_open";i:1;a:1:{i:0;i:2;}i:2;i:19068;}i:1147;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:19068;}i:1148;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:18:"You can embed raw ";}i:2;i:19104;}i:1149;a:3:{i:0;s:7:"acronym";i:1;a:1:{i:0;s:4:"HTML";}i:2;i:19122;}i:1150;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:46:" or PHP code into your documents by using the ";}i:2;i:19126;}i:1151;a:3:{i:0;s:14:"monospace_open";i:1;a:0:{}i:2;i:19172;}i:1152;a:3:{i:0;s:11:"unformatted";i:1;a:1:{i:0;s:6:"<html>";}i:2;i:19176;}i:1153;a:3:{i:0;s:15:"monospace_close";i:1;a:0:{}i:2;i:19184;}i:1154;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:4:" or ";}i:2;i:19186;}i:1155;a:3:{i:0;s:14:"monospace_open";i:1;a:0:{}i:2;i:19190;}i:1156;a:3:{i:0;s:11:"unformatted";i:1;a:1:{i:0;s:5:"<php>";}i:2;i:19194;}i:1157;a:3:{i:0;s:15:"monospace_close";i:1;a:0:{}i:2;i:19201;}i:1158;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:72:" tags. (Use uppercase tags if you need to enclose block level elements.)";}i:2;i:19203;}i:1159;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:19275;}i:1160;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:19275;}i:1161;a:3:{i:0;s:7:"acronym";i:1;a:1:{i:0;s:4:"HTML";}i:2;i:19277;}i:1162;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:9:" example:";}i:2;i:19281;}i:1163;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:19290;}i:1164;a:3:{i:0;s:4:"code";i:1;a:3:{i:0;s:169:"
-<html>
-This is some <span style="color:red;font-size:150%;">inline HTML</span>
-</html>
-<HTML>
-<p style="border:2px dashed red;">And this is some block HTML</p>
-</HTML>
-";i:1;N;i:2;N;}i:2;i:19297;}i:1165;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:19297;}i:1166;a:3:{i:0;s:4:"html";i:1;a:1:{i:0;s:73:"
-This is some <span style="color:red;font-size:150%;">inline HTML</span>
-";}i:2;i:19482;}i:1167;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:0:"";}i:2;i:19562;}i:1168;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:19569;}i:1169;a:3:{i:0;s:9:"htmlblock";i:1;a:1:{i:0;s:67:"
-<p style="border:2px dashed red;">And this is some block HTML</p>
-";}i:2;i:19569;}i:1170;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:19569;}i:1171;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:12:"PHP example:";}i:2;i:19645;}i:1172;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:19657;}i:1173;a:3:{i:0;s:4:"code";i:1;a:3:{i:0;s:248:"
-<php>
-echo 'The PHP version: ';
-echo phpversion();
-echo ' (generated inline HTML)';
-</php>
-<PHP>
-echo '<table class="inline"><tr><td>The same, but inside a block level element:</td>';
-echo '<td>'.phpversion().'</td>';
-echo '</tr></table>';
-</PHP>
-";i:1;N;i:2;N;}i:2;i:19664;}i:1174;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:19664;}i:1175;a:3:{i:0;s:3:"php";i:1;a:1:{i:0;s:69:"
-echo 'The PHP version: ';
-echo phpversion();
-echo ' (inline HTML)';
-";}i:2;i:19927;}i:1176;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:0:"";}i:2;i:20002;}i:1177;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:20008;}i:1178;a:3:{i:0;s:8:"phpblock";i:1;a:1:{i:0;s:144:"
-echo '<table class="inline"><tr><td>The same, but inside a block level element:</td>';
-echo '<td>'.phpversion().'</td>';
-echo '</tr></table>';
-";}i:2;i:20008;}i:1179;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:20008;}i:1180;a:3:{i:0;s:11:"strong_open";i:1;a:0:{}i:2;i:20160;}i:1181;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:11:"Please Note";}i:2;i:20162;}i:1182;a:3:{i:0;s:12:"strong_close";i:1;a:0:{}i:2;i:20173;}i:1183;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:2:": ";}i:2;i:20175;}i:1184;a:3:{i:0;s:7:"acronym";i:1;a:1:{i:0;s:4:"HTML";}i:2;i:20177;}i:1185;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:119:" and PHP embedding is disabled by default in the configuration. If disabled, the code is displayed instead of executed.";}i:2;i:20181;}i:1186;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:20300;}i:1187;a:3:{i:0;s:13:"section_close";i:1;a:0:{}i:2;i:20302;}i:1188;a:3:{i:0;s:6:"header";i:1;a:3:{i:0;s:25:"RSS/ATOM Feed Aggregation";i:1;i:2;i:2;i:20302;}i:2;i:20302;}i:1189;a:3:{i:0;s:12:"section_open";i:1;a:1:{i:0;i:2;}i:2;i:20302;}i:1190;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:20302;}i:1191;a:3:{i:0;s:12:"internallink";i:1;a:2:{i:0;s:8:"DokuWiki";i:1;N;}i:2;i:20340;}i:1192;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:72:" can integrate data from external XML feeds. For parsing the XML feeds, ";}i:2;i:20352;}i:1193;a:3:{i:0;s:12:"externallink";i:1;a:2:{i:0;s:21:"http://simplepie.org/";i:1;s:9:"SimplePie";}i:2;i:20424;}i:1194;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:161:" is used. All formats understood by SimplePie can be used in DokuWiki as well. You can influence the rendering by multiple additional space separated parameters:";}i:2;i:20459;}i:1195;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:20621;}i:1196;a:3:{i:0;s:10:"table_open";i:1;a:3:{i:0;i:2;i:1;i:8;i:2;i:20622;}i:2;i:20621;}i:1197;a:3:{i:0;s:15:"tablethead_open";i:1;a:0:{}i:2;i:20621;}i:1198;a:3:{i:0;s:13:"tablerow_open";i:1;a:0:{}i:2;i:20621;}i:1199;a:3:{i:0;s:16:"tableheader_open";i:1;a:3:{i:0;i:1;i:1;s:4:"left";i:2;i:1;}i:2;i:20621;}i:1200;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:12:" Parameter  ";}i:2;i:20623;}i:1201;a:3:{i:0;s:17:"tableheader_close";i:1;a:0:{}i:2;i:20635;}i:1202;a:3:{i:0;s:16:"tableheader_open";i:1;a:3:{i:0;i:1;i:1;N;i:2;i:1;}i:2;i:20635;}i:1203;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:13:" Description ";}i:2;i:20636;}i:1204;a:3:{i:0;s:17:"tableheader_close";i:1;a:0:{}i:2;i:20649;}i:1205;a:3:{i:0;s:14:"tablerow_close";i:1;a:0:{}i:2;i:20650;}i:1206;a:3:{i:0;s:16:"tablethead_close";i:1;a:0:{}i:2;i:20650;}i:1207;a:3:{i:0;s:13:"tablerow_open";i:1;a:0:{}i:2;i:20650;}i:1208;a:3:{i:0;s:14:"tablecell_open";i:1;a:3:{i:0;i:1;i:1;N;i:2;i:1;}i:2;i:20650;}i:1209;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:12:" any number ";}i:2;i:20652;}i:1210;a:3:{i:0;s:15:"tablecell_close";i:1;a:0:{}i:2;i:20664;}i:1211;a:3:{i:0;s:14:"tablecell_open";i:1;a:3:{i:0;i:1;i:1;N;i:2;i:1;}i:2;i:20664;}i:1212;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:61:" will be used as maximum number items to show, defaults to 8 ";}i:2;i:20665;}i:1213;a:3:{i:0;s:15:"tablecell_close";i:1;a:0:{}i:2;i:20726;}i:1214;a:3:{i:0;s:14:"tablerow_close";i:1;a:0:{}i:2;i:20727;}i:1215;a:3:{i:0;s:13:"tablerow_open";i:1;a:0:{}i:2;i:20727;}i:1216;a:3:{i:0;s:14:"tablecell_open";i:1;a:3:{i:0;i:1;i:1;s:4:"left";i:2;i:1;}i:2;i:20727;}i:1217;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:12:" reverse    ";}i:2;i:20729;}i:1218;a:3:{i:0;s:15:"tablecell_close";i:1;a:0:{}i:2;i:20741;}i:1219;a:3:{i:0;s:14:"tablecell_open";i:1;a:3:{i:0;i:1;i:1;N;i:2;i:1;}i:2;i:20741;}i:1220;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:42:" display the last items in the feed first ";}i:2;i:20742;}i:1221;a:3:{i:0;s:15:"tablecell_close";i:1;a:0:{}i:2;i:20784;}i:1222;a:3:{i:0;s:14:"tablerow_close";i:1;a:0:{}i:2;i:20785;}i:1223;a:3:{i:0;s:13:"tablerow_open";i:1;a:0:{}i:2;i:20785;}i:1224;a:3:{i:0;s:14:"tablecell_open";i:1;a:3:{i:0;i:1;i:1;s:4:"left";i:2;i:1;}i:2;i:20785;}i:1225;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:12:" author     ";}i:2;i:20787;}i:1226;a:3:{i:0;s:15:"tablecell_close";i:1;a:0:{}i:2;i:20799;}i:1227;a:3:{i:0;s:14:"tablecell_open";i:1;a:3:{i:0;i:1;i:1;N;i:2;i:1;}i:2;i:20799;}i:1228;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:25:" show item authors names ";}i:2;i:20800;}i:1229;a:3:{i:0;s:15:"tablecell_close";i:1;a:0:{}i:2;i:20825;}i:1230;a:3:{i:0;s:14:"tablerow_close";i:1;a:0:{}i:2;i:20826;}i:1231;a:3:{i:0;s:13:"tablerow_open";i:1;a:0:{}i:2;i:20826;}i:1232;a:3:{i:0;s:14:"tablecell_open";i:1;a:3:{i:0;i:1;i:1;s:4:"left";i:2;i:1;}i:2;i:20826;}i:1233;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:12:" date       ";}i:2;i:20828;}i:1234;a:3:{i:0;s:15:"tablecell_close";i:1;a:0:{}i:2;i:20840;}i:1235;a:3:{i:0;s:14:"tablecell_open";i:1;a:3:{i:0;i:1;i:1;N;i:2;i:1;}i:2;i:20840;}i:1236;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:17:" show item dates ";}i:2;i:20841;}i:1237;a:3:{i:0;s:15:"tablecell_close";i:1;a:0:{}i:2;i:20858;}i:1238;a:3:{i:0;s:14:"tablerow_close";i:1;a:0:{}i:2;i:20859;}i:1239;a:3:{i:0;s:13:"tablerow_open";i:1;a:0:{}i:2;i:20859;}i:1240;a:3:{i:0;s:14:"tablecell_open";i:1;a:3:{i:0;i:1;i:1;N;i:2;i:1;}i:2;i:20859;}i:1241;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:12:" description";}i:2;i:20861;}i:1242;a:3:{i:0;s:15:"tablecell_close";i:1;a:0:{}i:2;i:20873;}i:1243;a:3:{i:0;s:14:"tablecell_open";i:1;a:3:{i:0;i:1;i:1;N;i:2;i:1;}i:2;i:20873;}i:1244;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:31:" show the item description. If ";}i:2;i:20874;}i:1245;a:3:{i:0;s:13:"interwikilink";i:1;a:4:{i:0;s:18:"doku>config:htmlok";i:1;s:4:"HTML";i:2;s:4:"doku";i:3;s:13:"config:htmlok";}i:2;i:20905;}i:1246;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:39:" is disabled all tags will be stripped ";}i:2;i:20932;}i:1247;a:3:{i:0;s:15:"tablecell_close";i:1;a:0:{}i:2;i:20971;}i:1248;a:3:{i:0;s:14:"tablerow_close";i:1;a:0:{}i:2;i:20972;}i:1249;a:3:{i:0;s:13:"tablerow_open";i:1;a:0:{}i:2;i:20972;}i:1250;a:3:{i:0;s:14:"tablecell_open";i:1;a:3:{i:0;i:1;i:1;s:4:"left";i:2;i:1;}i:2;i:20972;}i:1251;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:12:" nosort     ";}i:2;i:20974;}i:1252;a:3:{i:0;s:15:"tablecell_close";i:1;a:0:{}i:2;i:20986;}i:1253;a:3:{i:0;s:14:"tablecell_open";i:1;a:3:{i:0;i:1;i:1;N;i:2;i:1;}i:2;i:20986;}i:1254;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:35:" do not sort the items in the feed ";}i:2;i:20987;}i:1255;a:3:{i:0;s:15:"tablecell_close";i:1;a:0:{}i:2;i:21022;}i:1256;a:3:{i:0;s:14:"tablerow_close";i:1;a:0:{}i:2;i:21023;}i:1257;a:3:{i:0;s:13:"tablerow_open";i:1;a:0:{}i:2;i:21023;}i:1258;a:3:{i:0;s:14:"tablecell_open";i:1;a:3:{i:0;i:1;i:1;N;i:2;i:1;}i:2;i:21023;}i:1259;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:" ";}i:2;i:21025;}i:1260;a:3:{i:0;s:13:"emphasis_open";i:1;a:0:{}i:2;i:21026;}i:1261;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:"n";}i:2;i:21028;}i:1262;a:3:{i:0;s:14:"emphasis_close";i:1;a:0:{}i:2;i:21029;}i:1263;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:6:"[dhm] ";}i:2;i:21031;}i:1264;a:3:{i:0;s:15:"tablecell_close";i:1;a:0:{}i:2;i:21037;}i:1265;a:3:{i:0;s:14:"tablecell_open";i:1;a:3:{i:0;i:1;i:1;N;i:2;i:1;}i:2;i:21037;}i:1266;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:74:" refresh period, where d=days, h=hours, m=minutes. (e.g. 12h = 12 hours). ";}i:2;i:21038;}i:1267;a:3:{i:0;s:15:"tablecell_close";i:1;a:0:{}i:2;i:21112;}i:1268;a:3:{i:0;s:14:"tablerow_close";i:1;a:0:{}i:2;i:21113;}i:1269;a:3:{i:0;s:11:"table_close";i:1;a:1:{i:0;i:21113;}i:2;i:21113;}i:1270;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:21113;}i:1271;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:98:"The refresh period defaults to 4 hours. Any value below 10 minutes will be treated as 10 minutes. ";}i:2;i:21115;}i:1272;a:3:{i:0;s:12:"internallink";i:1;a:2:{i:0;s:13:"wiki:DokuWiki";i:1;N;}i:2;i:21213;}i:1273;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:159:" will generally try to supply a cached version of a page, obviously this is inappropriate when the page contains dynamic external content. The parameter tells ";}i:2;i:21230;}i:1274;a:3:{i:0;s:12:"internallink";i:1;a:2:{i:0;s:13:"wiki:DokuWiki";i:1;N;}i:2;i:21389;}i:1275;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:42:" to re-render the page if it is more than ";}i:2;i:21406;}i:1276;a:3:{i:0;s:13:"emphasis_open";i:1;a:0:{}i:2;i:21448;}i:1277;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:14:"refresh period";}i:2;i:21450;}i:1278;a:3:{i:0;s:14:"emphasis_close";i:1;a:0:{}i:2;i:21464;}i:1279;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:34:" since the page was last rendered.";}i:2;i:21466;}i:1280;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:21500;}i:1281;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:21500;}i:1282;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:106:"By default the feed will be sorted by date, newest items first. You can sort it by oldest first using the ";}i:2;i:21502;}i:1283;a:3:{i:0;s:14:"monospace_open";i:1;a:0:{}i:2;i:21608;}i:1284;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:7:"reverse";}i:2;i:21610;}i:1285;a:3:{i:0;s:15:"monospace_close";i:1;a:0:{}i:2;i:21617;}i:1286;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:43:" parameter, or display the feed as is with ";}i:2;i:21619;}i:1287;a:3:{i:0;s:14:"monospace_open";i:1;a:0:{}i:2;i:21662;}i:1288;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:6:"nosort";}i:2;i:21664;}i:1289;a:3:{i:0;s:15:"monospace_close";i:1;a:0:{}i:2;i:21670;}i:1290;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:".";}i:2;i:21672;}i:1291;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:21673;}i:1292;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:21673;}i:1293;a:3:{i:0;s:11:"strong_open";i:1;a:0:{}i:2;i:21675;}i:1294;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:8:"Example:";}i:2;i:21677;}i:1295;a:3:{i:0;s:12:"strong_close";i:1;a:0:{}i:2;i:21685;}i:1296;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:0:"";}i:2;i:21687;}i:1297;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:21688;}i:1298;a:3:{i:0;s:12:"preformatted";i:1;a:1:{i:0;s:55:"{{rss>http://slashdot.org/index.rss 5 author date 1h }}";}i:2;i:21688;}i:1299;a:3:{i:0;s:3:"rss";i:1;a:2:{i:0;s:29:"http://slashdot.org/index.rss";i:1;a:7:{s:3:"max";s:1:"5";s:7:"reverse";i:0;s:6:"author";i:1;s:4:"date";i:1;s:7:"details";i:0;s:6:"nosort";i:0;s:7:"refresh";i:3600;}}i:2;i:21748;}i:1300;a:3:{i:0;s:13:"section_close";i:1;a:0:{}i:2;i:21806;}i:1301;a:3:{i:0;s:6:"header";i:1;a:3:{i:0;s:14:"Control Macros";i:1;i:2;i:2;i:21806;}i:2;i:21806;}i:1302;a:3:{i:0;s:12:"section_open";i:1;a:1:{i:0;i:2;}i:2;i:21806;}i:1303;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:21806;}i:1304;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:130:"Some syntax influences how DokuWiki renders a page without creating any output it self. The following control macros are availble:";}i:2;i:21834;}i:1305;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:21965;}i:1306;a:3:{i:0;s:10:"table_open";i:1;a:3:{i:0;i:2;i:1;i:3;i:2;i:21966;}i:2;i:21965;}i:1307;a:3:{i:0;s:15:"tablethead_open";i:1;a:0:{}i:2;i:21965;}i:1308;a:3:{i:0;s:13:"tablerow_open";i:1;a:0:{}i:2;i:21965;}i:1309;a:3:{i:0;s:16:"tableheader_open";i:1;a:3:{i:0;i:1;i:1;s:4:"left";i:2;i:1;}i:2;i:21965;}i:1310;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:17:" Macro           ";}i:2;i:21967;}i:1311;a:3:{i:0;s:17:"tableheader_close";i:1;a:0:{}i:2;i:21984;}i:1312;a:3:{i:0;s:16:"tableheader_open";i:1;a:3:{i:0;i:1;i:1;N;i:2;i:1;}i:2;i:21984;}i:1313;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:13:" Description ";}i:2;i:21985;}i:1314;a:3:{i:0;s:17:"tableheader_close";i:1;a:0:{}i:2;i:21998;}i:1315;a:3:{i:0;s:14:"tablerow_close";i:1;a:0:{}i:2;i:21999;}i:1316;a:3:{i:0;s:16:"tablethead_close";i:1;a:0:{}i:2;i:21999;}i:1317;a:3:{i:0;s:13:"tablerow_open";i:1;a:0:{}i:2;i:21999;}i:1318;a:3:{i:0;s:14:"tablecell_open";i:1;a:3:{i:0;i:1;i:1;s:4:"left";i:2;i:1;}i:2;i:21999;}i:1319;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:" ";}i:2;i:22001;}i:1320;a:3:{i:0;s:11:"unformatted";i:1;a:1:{i:0;s:9:"~~NOTOC~~";}i:2;i:22004;}i:1321;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:3:"   ";}i:2;i:22015;}i:1322;a:3:{i:0;s:15:"tablecell_close";i:1;a:0:{}i:2;i:22018;}i:1323;a:3:{i:0;s:14:"tablecell_open";i:1;a:3:{i:0;i:1;i:1;N;i:2;i:1;}i:2;i:22018;}i:1324;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:74:" If this macro is found on the page, no table of contents will be created ";}i:2;i:22019;}i:1325;a:3:{i:0;s:15:"tablecell_close";i:1;a:0:{}i:2;i:22093;}i:1326;a:3:{i:0;s:14:"tablerow_close";i:1;a:0:{}i:2;i:22094;}i:1327;a:3:{i:0;s:13:"tablerow_open";i:1;a:0:{}i:2;i:22094;}i:1328;a:3:{i:0;s:14:"tablecell_open";i:1;a:3:{i:0;i:1;i:1;N;i:2;i:1;}i:2;i:22094;}i:1329;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:" ";}i:2;i:22096;}i:1330;a:3:{i:0;s:11:"unformatted";i:1;a:1:{i:0;s:11:"~~NOCACHE~~";}i:2;i:22099;}i:1331;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:" ";}i:2;i:22112;}i:1332;a:3:{i:0;s:15:"tablecell_close";i:1;a:0:{}i:2;i:22113;}i:1333;a:3:{i:0;s:14:"tablecell_open";i:1;a:3:{i:0;i:1;i:1;N;i:2;i:1;}i:2;i:22113;}i:1334;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:89:" DokuWiki caches all output by default. Sometimes this might not be wanted (eg. when the ";}i:2;i:22114;}i:1335;a:3:{i:0;s:11:"unformatted";i:1;a:1:{i:0;s:5:"<php>";}i:2;i:22205;}i:1336;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:95:" syntax above is used), adding this macro will force DokuWiki to rerender a page on every call ";}i:2;i:22212;}i:1337;a:3:{i:0;s:15:"tablecell_close";i:1;a:0:{}i:2;i:22307;}i:1338;a:3:{i:0;s:14:"tablerow_close";i:1;a:0:{}i:2;i:22308;}i:1339;a:3:{i:0;s:11:"table_close";i:1;a:1:{i:0;i:22308;}i:2;i:22308;}i:1340;a:3:{i:0;s:13:"section_close";i:1;a:0:{}i:2;i:22310;}i:1341;a:3:{i:0;s:6:"header";i:1;a:3:{i:0;s:14:"Syntax Plugins";i:1;i:2;i:2;i:22310;}i:2;i:22310;}i:1342;a:3:{i:0;s:12:"section_open";i:1;a:1:{i:0;i:2;}i:2;i:22310;}i:1343;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:22310;}i:1344;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:37:"DokuWiki's syntax can be extended by ";}i:2;i:22338;}i:1345;a:3:{i:0;s:13:"interwikilink";i:1;a:4:{i:0;s:12:"doku>plugins";i:1;s:7:"Plugins";i:2;s:4:"doku";i:3;s:7:"plugins";}i:2;i:22375;}i:1346;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:174:". How the installed plugins are used is described on their appropriate description pages. The following syntax plugins are available in this particular DokuWiki installation:";}i:2;i:22399;}i:1347;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:22573;}i:1348;a:3:{i:0;s:6:"plugin";i:1;a:4:{i:0;s:4:"info";i:1;a:1:{i:0;s:13:"syntaxplugins";}i:2;i:5;i:3;s:22:"~~INFO:syntaxplugins~~";}i:2;i:22575;}i:1349;a:3:{i:0;s:13:"section_close";i:1;a:0:{}i:2;i:22598;}i:1350;a:3:{i:0;s:12:"document_end";i:1;a:0:{}i:2;i:22598;}}
\ No newline at end of file
diff --git a/wiki/data/cache/9/9689bfbd7d43b4a685d7c569561dfe48.metadata b/wiki/data/cache/9/9689bfbd7d43b4a685d7c569561dfe48.metadata
deleted file mode 100644
index 9ca43db..0000000
--- a/wiki/data/cache/9/9689bfbd7d43b4a685d7c569561dfe48.metadata
+++ /dev/null
@@ -1 +0,0 @@
-1546006425
\ No newline at end of file
diff --git a/wiki/data/cache/9/9689bfbd7d43b4a685d7c569561dfe48.xhtml b/wiki/data/cache/9/9689bfbd7d43b4a685d7c569561dfe48.xhtml
deleted file mode 100644
index 9d4f7ea..0000000
--- a/wiki/data/cache/9/9689bfbd7d43b4a685d7c569561dfe48.xhtml
+++ /dev/null
@@ -1,862 +0,0 @@
-
-<h1 class="sectionedit1" id="formatting_syntax">Formatting Syntax</h1>
-<div class="level1">
-
-<p>
-<a href="https://www.dokuwiki.org/DokuWiki" class="interwiki iw_doku" title="https://www.dokuwiki.org/DokuWiki">DokuWiki</a> supports some simple markup language, which tries to make the datafiles to be as readable as possible. This page contains all possible syntax you may use when editing the pages. Simply have a look at the source of this page by pressing “Edit this pageâ€. If you want to try something, just use the <a href="/wiki/doku.php?id=playground:playground" class="wikilink1" title="playground:playground">playground</a> page. The simpler markup is easily accessible via <a href="https://www.dokuwiki.org/toolbar" class="interwiki iw_doku" title="https://www.dokuwiki.org/toolbar">quickbuttons</a>, too.
-</p>
-
-</div>
-<!-- EDIT{&quot;target&quot;:&quot;section&quot;,&quot;name&quot;:&quot;Formatting Syntax&quot;,&quot;hid&quot;:&quot;formatting_syntax&quot;,&quot;codeblockOffset&quot;:0,&quot;secid&quot;:1,&quot;range&quot;:&quot;1-472&quot;} -->
-<h2 class="sectionedit2" id="basic_text_formatting">Basic Text Formatting</h2>
-<div class="level2">
-
-<p>
-DokuWiki supports <strong>bold</strong>, <em>italic</em>, <em class="u">underlined</em> and <code>monospaced</code> texts. Of course you can <strong><em class="u"><em><code>combine</code></em></em></strong> all these.
-</p>
-<pre class="code">DokuWiki supports **bold**, //italic//, __underlined__ and &#039;&#039;monospaced&#039;&#039; texts.
-Of course you can **__//&#039;&#039;combine&#039;&#039;//__** all these.</pre>
-
-<p>
-You can use <sub>subscript</sub> and <sup>superscript</sup>, too.
-</p>
-<pre class="code">You can use &lt;sub&gt;subscript&lt;/sub&gt; and &lt;sup&gt;superscript&lt;/sup&gt;, too.</pre>
-
-<p>
-You can mark something as <del>deleted</del> as well.
-</p>
-<pre class="code">You can mark something as &lt;del&gt;deleted&lt;/del&gt; as well.</pre>
-
-<p>
-<strong>Paragraphs</strong> are created from blank lines. If you want to <strong>force a newline</strong> without a paragraph, you can use two backslashes followed by a whitespace or the end of line.
-</p>
-
-<p>
-This is some text with some linebreaks<br/>
-Note that the
-two backslashes are only recognized at the end of a line<br/>
-
-or followed by<br/>
-a whitespace \\this happens without it.
-</p>
-<pre class="code">This is some text with some linebreaks\\ Note that the
-two backslashes are only recognized at the end of a line\\
-or followed by\\ a whitespace \\this happens without it.</pre>
-
-<p>
-You should use forced newlines only if really needed.
-</p>
-
-</div>
-<!-- EDIT{&quot;target&quot;:&quot;section&quot;,&quot;name&quot;:&quot;Basic Text Formatting&quot;,&quot;hid&quot;:&quot;basic_text_formatting&quot;,&quot;codeblockOffset&quot;:0,&quot;secid&quot;:2,&quot;range&quot;:&quot;473-1609&quot;} -->
-<h2 class="sectionedit3" id="links">Links</h2>
-<div class="level2">
-
-<p>
-DokuWiki supports multiple ways of creating links.
-</p>
-
-</div>
-<!-- EDIT{&quot;target&quot;:&quot;section&quot;,&quot;name&quot;:&quot;Links&quot;,&quot;hid&quot;:&quot;links&quot;,&quot;codeblockOffset&quot;:0,&quot;secid&quot;:3,&quot;range&quot;:&quot;1610-1680&quot;} -->
-<h3 class="sectionedit4" id="external">External</h3>
-<div class="level3">
-
-<p>
-External links are recognized automagically: <a href="http://www.google.com" class="urlextern" title="http://www.google.com" rel="nofollow">http://www.google.com</a> or simply <a href="http://www.google.com" class="urlextern" title="http://www.google.com" rel="nofollow">www.google.com</a> - You can set the link text as well: <a href="http://www.google.com" class="urlextern" title="http://www.google.com" rel="nofollow">This Link points to google</a>. Email addresses like this one: <a href="mailto:&#x61;&#x6e;&#x64;&#x69;&#x40;&#x73;&#x70;&#x6c;&#x69;&#x74;&#x62;&#x72;&#x61;&#x69;&#x6e;&#x2e;&#x6f;&#x72;&#x67;" class="mail" title="&#x61;&#x6e;&#x64;&#x69;&#x40;&#x73;&#x70;&#x6c;&#x69;&#x74;&#x62;&#x72;&#x61;&#x69;&#x6e;&#x2e;&#x6f;&#x72;&#x67;">&#x61;&#x6e;&#x64;&#x69;&#x40;&#x73;&#x70;&#x6c;&#x69;&#x74;&#x62;&#x72;&#x61;&#x69;&#x6e;&#x2e;&#x6f;&#x72;&#x67;</a> are recognized, too.
-</p>
-<pre class="code">DokuWiki supports multiple ways of creating links. External links are recognized
-automagically: http://www.google.com or simply www.google.com - You can set
-link text as well: [[http://www.google.com|This Link points to google]]. Email
-addresses like this one: &lt;andi@splitbrain.org&gt; are recognized, too.</pre>
-
-</div>
-<!-- EDIT{&quot;target&quot;:&quot;section&quot;,&quot;name&quot;:&quot;External&quot;,&quot;hid&quot;:&quot;external&quot;,&quot;codeblockOffset&quot;:0,&quot;secid&quot;:4,&quot;range&quot;:&quot;1681-2271&quot;} -->
-<h3 class="sectionedit5" id="internal">Internal</h3>
-<div class="level3">
-
-<p>
-Internal links are created by using square brackets. You can either just give a <a href="/wiki/doku.php?id=wiki:pagename" class="wikilink2" title="wiki:pagename" rel="nofollow">pagename</a> or use an additional <a href="/wiki/doku.php?id=wiki:pagename" class="wikilink2" title="wiki:pagename" rel="nofollow">link text</a>.
-</p>
-<pre class="code">Internal links are created by using square brackets. You can either just give
-a [[pagename]] or use an additional [[pagename|link text]].</pre>
-
-<p>
-<a href="https://www.dokuwiki.org/pagename" class="interwiki iw_doku" title="https://www.dokuwiki.org/pagename">Wiki pagenames</a> are converted to lowercase automatically, special characters are not allowed.
-</p>
-
-<p>
-You can use <a href="/wiki/doku.php?id=some:namespaces" class="wikilink2" title="some:namespaces" rel="nofollow">namespaces</a> by using a colon in the pagename.
-</p>
-<pre class="code">You can use [[some:namespaces]] by using a colon in the pagename.</pre>
-
-<p>
-For details about namespaces see <a href="https://www.dokuwiki.org/namespaces" class="interwiki iw_doku" title="https://www.dokuwiki.org/namespaces">namespaces</a>.
-</p>
-
-<p>
-Linking to a specific section is possible, too. Just add the section name behind a hash character as known from <abbr title="HyperText Markup Language">HTML</abbr>. This links to <span class="curid"><a href="/wiki/doku.php?id=wiki:syntax#internal" class="wikilink1" title="wiki:syntax">this Section</a></span>.
-</p>
-<pre class="code">This links to [[syntax#internal|this Section]].</pre>
-
-<p>
-Notes:
-</p>
-<ul>
-<li class="level1"><div class="li"> Links to <span class="curid"><a href="/wiki/doku.php?id=wiki:syntax" class="wikilink1" title="wiki:syntax">existing pages</a></span> are shown in a different style from <a href="/wiki/doku.php?id=wiki:nonexisting" class="wikilink2" title="wiki:nonexisting" rel="nofollow">nonexisting</a> ones.</div>
-</li>
-<li class="level1"><div class="li"> DokuWiki does not use <a href="https://en.wikipedia.org/wiki/CamelCase" class="interwiki iw_wp" title="https://en.wikipedia.org/wiki/CamelCase">CamelCase</a> to automatically create links by default, but this behavior can be enabled in the <a href="https://www.dokuwiki.org/config" class="interwiki iw_doku" title="https://www.dokuwiki.org/config">config</a> file. Hint: If DokuWiki is a link, then it&#039;s enabled.</div>
-</li>
-<li class="level1"><div class="li"> When a section&#039;s heading is changed, its bookmark changes, too. So don&#039;t rely on section linking too much.</div>
-</li>
-</ul>
-
-</div>
-<!-- EDIT{&quot;target&quot;:&quot;section&quot;,&quot;name&quot;:&quot;Internal&quot;,&quot;hid&quot;:&quot;internal&quot;,&quot;codeblockOffset&quot;:0,&quot;secid&quot;:5,&quot;range&quot;:&quot;2272-3506&quot;} -->
-<h3 class="sectionedit6" id="interwiki">Interwiki</h3>
-<div class="level3">
-
-<p>
-DokuWiki supports <a href="https://www.dokuwiki.org/Interwiki" class="interwiki iw_doku" title="https://www.dokuwiki.org/Interwiki">Interwiki</a> links. These are quick links to other Wikis. For example this is a link to Wikipedia&#039;s page about Wikis: <a href="https://en.wikipedia.org/wiki/Wiki" class="interwiki iw_wp" title="https://en.wikipedia.org/wiki/Wiki">Wiki</a>.
-</p>
-<pre class="code">DokuWiki supports [[doku&gt;Interwiki]] links. These are quick links to other Wikis.
-For example this is a link to Wikipedia&#039;s page about Wikis: [[wp&gt;Wiki]].</pre>
-
-</div>
-<!-- EDIT{&quot;target&quot;:&quot;section&quot;,&quot;name&quot;:&quot;Interwiki&quot;,&quot;hid&quot;:&quot;interwiki&quot;,&quot;codeblockOffset&quot;:0,&quot;secid&quot;:6,&quot;range&quot;:&quot;3507-3843&quot;} -->
-<h3 class="sectionedit7" id="windows_shares">Windows Shares</h3>
-<div class="level3">
-
-<p>
-Windows shares like <a href="file://///server/share" class="windows" title="\\server\share">this</a> are recognized, too. Please note that these only make sense in a homogeneous user group like a corporate <a href="https://en.wikipedia.org/wiki/Intranet" class="interwiki iw_wp" title="https://en.wikipedia.org/wiki/Intranet">Intranet</a>.
-</p>
-<pre class="code">Windows Shares like [[\\server\share|this]] are recognized, too.</pre>
-
-<p>
-Notes:
-</p>
-<ul>
-<li class="level1"><div class="li"> For security reasons direct browsing of windows shares only works in Microsoft Internet Explorer per default (and only in the “local zoneâ€).</div>
-</li>
-<li class="level1"><div class="li"> For Mozilla and Firefox it can be enabled through different workaround mentioned in the <a href="http://kb.mozillazine.org/Links_to_local_pages_do_not_work" class="urlextern" title="http://kb.mozillazine.org/Links_to_local_pages_do_not_work" rel="nofollow">Mozilla Knowledge Base</a>. However, there will still be a JavaScript warning about trying to open a Windows Share. To remove this warning (for all users), put the following line in <code>conf/lang/en/lang.php</code> (more details at <a href="https://www.dokuwiki.org/localization#changing_some_localized_texts_and_strings_in_your_installation" class="interwiki iw_doku" title="https://www.dokuwiki.org/localization#changing_some_localized_texts_and_strings_in_your_installation">localization</a>): <dl class="code">
-<dt><a href="/wiki/doku.php?do=export_code&amp;id=wiki:syntax&amp;codeblock=0" title="Download Snippet" class="mediafile mf_php">conf/lang/en/lang.php</a></dt>
-<dd><pre class="code">&lt;?php
-/**
- * Customization of the english language file
- * Copy only the strings that needs to be modified
- */
-$lang[&#039;js&#039;][&#039;nosmblinks&#039;] = &#039;&#039;;</pre>
-</dd></dl>
-</div>
-</li>
-</ul>
-
-</div>
-<!-- EDIT{&quot;target&quot;:&quot;section&quot;,&quot;name&quot;:&quot;Windows Shares&quot;,&quot;hid&quot;:&quot;windows_shares&quot;,&quot;codeblockOffset&quot;:0,&quot;secid&quot;:7,&quot;range&quot;:&quot;3844-4916&quot;} -->
-<h3 class="sectionedit8" id="image_links">Image Links</h3>
-<div class="level3">
-
-<p>
-You can also use an image to link to another internal or external page by combining the syntax for links and <a href="#images_and_other_files" title="wiki:syntax ↵" class="wikilink1">images</a> (see below) like this:
-</p>
-<pre class="code">[[http://php.net|{{wiki:dokuwiki-128.png}}]]</pre>
-
-<p>
-<a href="http://php.net" class="media" title="http://php.net" rel="nofollow"><img src="/wiki/lib/exe/fetch.php?media=wiki:dokuwiki-128.png" class="media" alt="" /></a>
-</p>
-
-<p>
-Please note: The image formatting is the only formatting syntax accepted in link names.
-</p>
-
-<p>
-The whole <a href="#images_and_other_files" title="wiki:syntax ↵" class="wikilink1">image</a> and <a href="#links" title="wiki:syntax ↵" class="wikilink1">link</a> syntax is supported (including image resizing, internal and external images and URLs and interwiki links).
-</p>
-
-</div>
-<!-- EDIT{&quot;target&quot;:&quot;section&quot;,&quot;name&quot;:&quot;Image Links&quot;,&quot;hid&quot;:&quot;image_links&quot;,&quot;codeblockOffset&quot;:1,&quot;secid&quot;:8,&quot;range&quot;:&quot;4917-5462&quot;} -->
-<h2 class="sectionedit9" id="footnotes">Footnotes</h2>
-<div class="level2">
-
-<p>
-You can add footnotes <sup><a href="#fn__1" id="fnt__1" class="fn_top">1)</a></sup> by using double parentheses.
-</p>
-<pre class="code">You can add footnotes ((This is a footnote)) by using double parentheses.</pre>
-
-</div>
-<!-- EDIT{&quot;target&quot;:&quot;section&quot;,&quot;name&quot;:&quot;Footnotes&quot;,&quot;hid&quot;:&quot;footnotes&quot;,&quot;codeblockOffset&quot;:1,&quot;secid&quot;:9,&quot;range&quot;:&quot;5463-5637&quot;} -->
-<h2 class="sectionedit10" id="sectioning">Sectioning</h2>
-<div class="level2">
-
-<p>
-You can use up to five different levels of headlines to structure your content. If you have more than three headlines, a table of contents is generated automatically – this can be disabled by including the string <code>~~NOTOC~~</code> in the document.
-</p>
-
-</div>
-<!-- EDIT{&quot;target&quot;:&quot;section&quot;,&quot;name&quot;:&quot;Sectioning&quot;,&quot;hid&quot;:&quot;sectioning&quot;,&quot;codeblockOffset&quot;:1,&quot;secid&quot;:10,&quot;range&quot;:&quot;5638-5924&quot;} -->
-<h3 class="sectionedit11" id="headline_level_3">Headline Level 3</h3>
-<div class="level3">
-
-</div>
-
-<h4 id="headline_level_4">Headline Level 4</h4>
-<div class="level4">
-
-</div>
-
-<h5 id="headline_level_5">Headline Level 5</h5>
-<div class="level5">
-<pre class="code">==== Headline Level 3 ====
-=== Headline Level 4 ===
-== Headline Level 5 ==</pre>
-
-<p>
-By using four or more dashes, you can make a horizontal line:
-</p>
-<hr />
-
-</div>
-<!-- EDIT{&quot;target&quot;:&quot;section&quot;,&quot;name&quot;:&quot;Headline Level 3&quot;,&quot;hid&quot;:&quot;headline_level_3&quot;,&quot;codeblockOffset&quot;:1,&quot;secid&quot;:11,&quot;range&quot;:&quot;5925-6151&quot;} -->
-<h2 class="sectionedit12" id="media_files">Media Files</h2>
-<div class="level2">
-
-<p>
-You can include external and internal <a href="https://www.dokuwiki.org/images" class="interwiki iw_doku" title="https://www.dokuwiki.org/images">images, videos and audio files</a> with curly brackets. Optionally you can specify the size of them.
-</p>
-
-<p>
-Real size:                        <a href="/wiki/lib/exe/detail.php?id=wiki%3Asyntax&amp;media=wiki:dokuwiki-128.png" class="media" title="wiki:dokuwiki-128.png"><img src="/wiki/lib/exe/fetch.php?media=wiki:dokuwiki-128.png" class="media" alt="" /></a>
-</p>
-
-<p>
-Resize to given width:            <a href="/wiki/lib/exe/detail.php?id=wiki%3Asyntax&amp;media=wiki:dokuwiki-128.png" class="media" title="wiki:dokuwiki-128.png"><img src="/wiki/lib/exe/fetch.php?w=50&amp;tok=0c078f&amp;media=wiki:dokuwiki-128.png" class="media" alt="" width="50" /></a>
-</p>
-
-<p>
-Resize to given width and height<sup><a href="#fn__2" id="fnt__2" class="fn_top">2)</a></sup>: <a href="/wiki/lib/exe/detail.php?id=wiki%3Asyntax&amp;media=wiki:dokuwiki-128.png" class="media" title="wiki:dokuwiki-128.png"><img src="/wiki/lib/exe/fetch.php?w=200&amp;h=50&amp;tok=c67027&amp;media=wiki:dokuwiki-128.png" class="media" alt="" width="200" height="50" /></a>
-</p>
-
-<p>
-Resized external image:           <a href="/wiki/lib/exe/fetch.php?tok=312d74&amp;media=http%3A%2F%2Fphp.net%2Fimages%2Fphp.gif" class="media" title="http://php.net/images/php.gif"><img src="/wiki/lib/exe/fetch.php?w=200&amp;h=50&amp;tok=3b0ac8&amp;media=http%3A%2F%2Fphp.net%2Fimages%2Fphp.gif" class="media" alt="" width="200" height="50" /></a>
-</p>
-<pre class="code">Real size:                        {{wiki:dokuwiki-128.png}}
-Resize to given width:            {{wiki:dokuwiki-128.png?50}}
-Resize to given width and height: {{wiki:dokuwiki-128.png?200x50}}
-Resized external image:           {{http://php.net/images/php.gif?200x50}}</pre>
-
-<p>
-By using left or right whitespaces you can choose the alignment.
-</p>
-
-<p>
-<a href="/wiki/lib/exe/detail.php?id=wiki%3Asyntax&amp;media=wiki:dokuwiki-128.png" class="media" title="wiki:dokuwiki-128.png"><img src="/wiki/lib/exe/fetch.php?media=wiki:dokuwiki-128.png" class="mediaright" alt="" /></a>
-</p>
-
-<p>
-<a href="/wiki/lib/exe/detail.php?id=wiki%3Asyntax&amp;media=wiki:dokuwiki-128.png" class="media" title="wiki:dokuwiki-128.png"><img src="/wiki/lib/exe/fetch.php?media=wiki:dokuwiki-128.png" class="medialeft" alt="" /></a>
-</p>
-
-<p>
-<a href="/wiki/lib/exe/detail.php?id=wiki%3Asyntax&amp;media=wiki:dokuwiki-128.png" class="media" title="wiki:dokuwiki-128.png"><img src="/wiki/lib/exe/fetch.php?media=wiki:dokuwiki-128.png" class="mediacenter" alt="" /></a>
-</p>
-<pre class="code">{{ wiki:dokuwiki-128.png}}
-{{wiki:dokuwiki-128.png }}
-{{ wiki:dokuwiki-128.png }}</pre>
-
-<p>
-Of course, you can add a title (displayed as a tooltip by most browsers), too.
-</p>
-
-<p>
-<a href="/wiki/lib/exe/detail.php?id=wiki%3Asyntax&amp;media=wiki:dokuwiki-128.png" class="media" title="wiki:dokuwiki-128.png"><img src="/wiki/lib/exe/fetch.php?media=wiki:dokuwiki-128.png" class="mediacenter" title="This is the caption" alt="This is the caption" /></a>
-</p>
-<pre class="code">{{ wiki:dokuwiki-128.png |This is the caption}}</pre>
-
-<p>
-For linking an image to another page see <a href="#image_links" title="wiki:syntax ↵" class="wikilink1">Image Links</a> above.
-</p>
-
-</div>
-<!-- EDIT{&quot;target&quot;:&quot;section&quot;,&quot;name&quot;:&quot;Media Files&quot;,&quot;hid&quot;:&quot;media_files&quot;,&quot;codeblockOffset&quot;:1,&quot;secid&quot;:12,&quot;range&quot;:&quot;6152-7498&quot;} -->
-<h3 class="sectionedit13" id="supported_media_formats">Supported Media Formats</h3>
-<div class="level3">
-
-<p>
-DokuWiki can embed the following media formats directly.
-</p>
-<div class="table sectionedit14"><table class="inline">
-	<tr class="row0">
-		<td class="col0"> Image </td><td class="col1 leftalign"> <code>gif</code>, <code>jpg</code>, <code>png</code>  </td>
-	</tr>
-	<tr class="row1">
-		<td class="col0"> Video </td><td class="col1"> <code>webm</code>, <code>ogv</code>, <code>mp4</code> </td>
-	</tr>
-	<tr class="row2">
-		<td class="col0"> Audio </td><td class="col1 leftalign"> <code>ogg</code>, <code>mp3</code>, <code>wav</code>  </td>
-	</tr>
-	<tr class="row3">
-		<td class="col0"> Flash </td><td class="col1 leftalign"> <code>swf</code>                    </td>
-	</tr>
-</table></div>
-<!-- EDIT{&quot;target&quot;:&quot;table&quot;,&quot;name&quot;:&quot;&quot;,&quot;hid&quot;:&quot;table&quot;,&quot;secid&quot;:14,&quot;range&quot;:&quot;7592-7747&quot;} -->
-<p>
-If you specify a filename that is not a supported media format, then it will be displayed as a link instead.
-</p>
-
-<p>
-By adding <code>?linkonly</code> you provide a link to the media without displaying it inline
-</p>
-<pre class="code">{{wiki:dokuwiki-128.png?linkonly}}</pre>
-
-<p>
-<a href="/wiki/lib/exe/fetch.php?media=wiki:dokuwiki-128.png" class="media mediafile mf_png" title="wiki:dokuwiki-128.png (27.2 KB)">dokuwiki-128.png</a> This is just a link to the image.
-</p>
-
-</div>
-<!-- EDIT{&quot;target&quot;:&quot;section&quot;,&quot;name&quot;:&quot;Supported Media Formats&quot;,&quot;hid&quot;:&quot;supported_media_formats&quot;,&quot;codeblockOffset&quot;:1,&quot;secid&quot;:13,&quot;range&quot;:&quot;7499-8052&quot;} -->
-<h3 class="sectionedit15" id="fallback_formats">Fallback Formats</h3>
-<div class="level3">
-
-<p>
-Unfortunately not all browsers understand all video and audio formats. To mitigate the problem, you can upload your file in different formats for maximum browser compatibility.
-</p>
-
-<p>
-For example consider this embedded mp4 video:
-</p>
-<pre class="code">{{video.mp4|A funny video}}</pre>
-
-<p>
-When you upload a <code>video.webm</code> and <code>video.ogv</code> next to the referenced <code>video.mp4</code>, DokuWiki will automatically add them as alternatives so that one of the three files is understood by your browser.
-</p>
-
-<p>
-Additionally DokuWiki supports a “poster†image which will be shown before the video has started. That image needs to have the same filename as the video and be either a jpg or png file. In the example above a <code>video.jpg</code> file would work.
-</p>
-
-</div>
-<!-- EDIT{&quot;target&quot;:&quot;section&quot;,&quot;name&quot;:&quot;Fallback Formats&quot;,&quot;hid&quot;:&quot;fallback_formats&quot;,&quot;codeblockOffset&quot;:1,&quot;secid&quot;:15,&quot;range&quot;:&quot;8053-8783&quot;} -->
-<h2 class="sectionedit16" id="lists">Lists</h2>
-<div class="level2">
-
-<p>
-Dokuwiki supports ordered and unordered lists. To create a list item, indent your text by two spaces and use a <code>*</code> for unordered lists or a <code>-</code> for ordered ones.
-</p>
-<ul>
-<li class="level1"><div class="li"> This is a list</div>
-</li>
-<li class="level1 node"><div class="li"> The second item</div>
-<ul>
-<li class="level2"><div class="li"> You may have different levels</div>
-</li>
-</ul>
-</li>
-<li class="level1"><div class="li"> Another item</div>
-</li>
-</ul>
-<ol>
-<li class="level1"><div class="li"> The same list but ordered</div>
-</li>
-<li class="level1 node"><div class="li"> Another item</div>
-<ol>
-<li class="level2"><div class="li"> Just use indention for deeper levels</div>
-</li>
-</ol>
-</li>
-<li class="level1"><div class="li"> That&#039;s it</div>
-</li>
-</ol>
-<pre class="code">  * This is a list
-  * The second item
-    * You may have different levels
-  * Another item
-
-  - The same list but ordered
-  - Another item
-    - Just use indention for deeper levels
-  - That&#039;s it</pre>
-
-<p>
-Also take a look at the <a href="https://www.dokuwiki.org/faq%3Alists" class="interwiki iw_doku" title="https://www.dokuwiki.org/faq%3Alists">FAQ on list items</a>.
-</p>
-
-</div>
-<!-- EDIT{&quot;target&quot;:&quot;section&quot;,&quot;name&quot;:&quot;Lists&quot;,&quot;hid&quot;:&quot;lists&quot;,&quot;codeblockOffset&quot;:1,&quot;secid&quot;:16,&quot;range&quot;:&quot;8784-9443&quot;} -->
-<h2 class="sectionedit17" id="text_conversions">Text Conversions</h2>
-<div class="level2">
-
-<p>
-DokuWiki can convert certain pre-defined characters or strings into images or other text or <abbr title="HyperText Markup Language">HTML</abbr>.
-</p>
-
-<p>
-The text to image conversion is mainly done for smileys. And the text to <abbr title="HyperText Markup Language">HTML</abbr> conversion is used for typography replacements, but can be configured to use other <abbr title="HyperText Markup Language">HTML</abbr> as well.
-</p>
-
-</div>
-<!-- EDIT{&quot;target&quot;:&quot;section&quot;,&quot;name&quot;:&quot;Text Conversions&quot;,&quot;hid&quot;:&quot;text_conversions&quot;,&quot;codeblockOffset&quot;:2,&quot;secid&quot;:17,&quot;range&quot;:&quot;9444-9748&quot;} -->
-<h3 class="sectionedit18" id="text_to_image_conversions">Text to Image Conversions</h3>
-<div class="level3">
-
-<p>
-DokuWiki converts commonly used <a href="https://en.wikipedia.org/wiki/emoticon" class="interwiki iw_wp" title="https://en.wikipedia.org/wiki/emoticon">emoticon</a>s to their graphical equivalents. Those <a href="https://www.dokuwiki.org/Smileys" class="interwiki iw_doku" title="https://www.dokuwiki.org/Smileys">Smileys</a> and other images can be configured and extended. Here is an overview of Smileys included in DokuWiki:
-</p>
-<ul>
-<li class="level1"><div class="li"> <img src="/wiki/lib/images/smileys/icon_cool.gif" class="icon" alt="8-)" />   8-)  </div>
-</li>
-<li class="level1"><div class="li"> <img src="/wiki/lib/images/smileys/icon_eek.gif" class="icon" alt="8-O" />   8-O  </div>
-</li>
-<li class="level1"><div class="li"> <img src="/wiki/lib/images/smileys/icon_sad.gif" class="icon" alt=":-(" />   :-(  </div>
-</li>
-<li class="level1"><div class="li"> <img src="/wiki/lib/images/smileys/icon_smile.gif" class="icon" alt=":-)" />   :-)  </div>
-</li>
-<li class="level1"><div class="li"> <img src="/wiki/lib/images/smileys/icon_smile2.gif" class="icon" alt="=)" />    =)   </div>
-</li>
-<li class="level1"><div class="li"> <img src="/wiki/lib/images/smileys/icon_doubt.gif" class="icon" alt=":-/" />   :-/  </div>
-</li>
-<li class="level1"><div class="li"> <img src="/wiki/lib/images/smileys/icon_doubt2.gif" class="icon" alt=":-\" />   :-\  </div>
-</li>
-<li class="level1"><div class="li"> <img src="/wiki/lib/images/smileys/icon_confused.gif" class="icon" alt=":-?" />   :-?  </div>
-</li>
-<li class="level1"><div class="li"> <img src="/wiki/lib/images/smileys/icon_biggrin.gif" class="icon" alt=":-D" />   :-D  </div>
-</li>
-<li class="level1"><div class="li"> <img src="/wiki/lib/images/smileys/icon_razz.gif" class="icon" alt=":-P" />   :-P  </div>
-</li>
-<li class="level1"><div class="li"> <img src="/wiki/lib/images/smileys/icon_surprised.gif" class="icon" alt=":-O" />   :-O  </div>
-</li>
-<li class="level1"><div class="li"> <img src="/wiki/lib/images/smileys/icon_silenced.gif" class="icon" alt=":-X" />   :-X  </div>
-</li>
-<li class="level1"><div class="li"> <img src="/wiki/lib/images/smileys/icon_neutral.gif" class="icon" alt=":-|" />   :-|  </div>
-</li>
-<li class="level1"><div class="li"> <img src="/wiki/lib/images/smileys/icon_wink.gif" class="icon" alt=";-)" />   ;-)  </div>
-</li>
-<li class="level1"><div class="li"> <img src="/wiki/lib/images/smileys/icon_fun.gif" class="icon" alt="^_^" />   ^_^  </div>
-</li>
-<li class="level1"><div class="li"> <img src="/wiki/lib/images/smileys/icon_question.gif" class="icon" alt=":?:" />   :?:  </div>
-</li>
-<li class="level1"><div class="li"> <img src="/wiki/lib/images/smileys/icon_exclaim.gif" class="icon" alt=":!:" />   :!:  </div>
-</li>
-<li class="level1"><div class="li"> <img src="/wiki/lib/images/smileys/icon_lol.gif" class="icon" alt="LOL" />   LOL  </div>
-</li>
-<li class="level1"><div class="li"> <img src="/wiki/lib/images/smileys/fixme.gif" class="icon" alt="FIXME" />   FIXME </div>
-</li>
-<li class="level1"><div class="li"> <img src="/wiki/lib/images/smileys/delete.gif" class="icon" alt="DELETEME" />  DELETEME </div>
-</li>
-</ul>
-
-</div>
-<!-- EDIT{&quot;target&quot;:&quot;section&quot;,&quot;name&quot;:&quot;Text to Image Conversions&quot;,&quot;hid&quot;:&quot;text_to_image_conversions&quot;,&quot;codeblockOffset&quot;:2,&quot;secid&quot;:18,&quot;range&quot;:&quot;9749-10404&quot;} -->
-<h3 class="sectionedit19" id="text_to_html_conversions">Text to HTML Conversions</h3>
-<div class="level3">
-
-<p>
-Typography: <a href="/wiki/doku.php?id=wiki:dokuwiki" class="wikilink1" title="wiki:dokuwiki">DokuWiki</a> can convert simple text characters to their typographically correct entities. Here is an example of recognized characters.
-</p>
-
-<p>
-→ ↠↔ ⇒ ⇠⇔ » « – — 640&times;480 © ™ ®
-“He thought &#039;It&#039;s a man&#039;s world&#039;…â€
-</p>
-<pre class="code">-&gt; &lt;- &lt;-&gt; =&gt; &lt;= &lt;=&gt; &gt;&gt; &lt;&lt; -- --- 640x480 (c) (tm) (r)
-&quot;He thought &#039;It&#039;s a man&#039;s world&#039;...&quot;</pre>
-
-<p>
-The same can be done to produce any kind of <abbr title="HyperText Markup Language">HTML</abbr>, it just needs to be added to the <a href="https://www.dokuwiki.org/entities" class="interwiki iw_doku" title="https://www.dokuwiki.org/entities">pattern file</a>.
-</p>
-
-<p>
-There are three exceptions which do not come from that pattern file: multiplication entity (640&times;480), &#039;single&#039; and “double quotesâ€. They can be turned off through a <a href="https://www.dokuwiki.org/config%3Atypography" class="interwiki iw_doku" title="https://www.dokuwiki.org/config%3Atypography">config option</a>.
-</p>
-
-</div>
-<!-- EDIT{&quot;target&quot;:&quot;section&quot;,&quot;name&quot;:&quot;Text to HTML Conversions&quot;,&quot;hid&quot;:&quot;text_to_html_conversions&quot;,&quot;codeblockOffset&quot;:2,&quot;secid&quot;:19,&quot;range&quot;:&quot;10405-11112&quot;} -->
-<h2 class="sectionedit20" id="quoting">Quoting</h2>
-<div class="level2">
-
-<p>
-Some times you want to mark some text to show it&#039;s a reply or comment. You can use the following syntax:
-</p>
-<pre class="code">I think we should do it
-
-&gt; No we shouldn&#039;t
-
-&gt;&gt; Well, I say we should
-
-&gt; Really?
-
-&gt;&gt; Yes!
-
-&gt;&gt;&gt; Then lets do it!</pre>
-
-<p>
-I think we should do it
-</p>
-<blockquote><div class="no">
- No we shouldn&#039;t</div></blockquote>
-<blockquote><div class="no">
-<blockquote><div class="no">
- Well, I say we should</div></blockquote>
-</div></blockquote>
-<blockquote><div class="no">
- Really?</div></blockquote>
-<blockquote><div class="no">
-<blockquote><div class="no">
- Yes!</div></blockquote>
-</div></blockquote>
-<blockquote><div class="no">
-<blockquote><div class="no">
-<blockquote><div class="no">
- Then lets do it!</div></blockquote>
-</div></blockquote>
-</div></blockquote>
-
-</div>
-<!-- EDIT{&quot;target&quot;:&quot;section&quot;,&quot;name&quot;:&quot;Quoting&quot;,&quot;hid&quot;:&quot;quoting&quot;,&quot;codeblockOffset&quot;:3,&quot;secid&quot;:20,&quot;range&quot;:&quot;11113-11478&quot;} -->
-<h2 class="sectionedit21" id="tables">Tables</h2>
-<div class="level2">
-
-<p>
-DokuWiki supports a simple syntax to create tables.
-</p>
-<div class="table sectionedit22"><table class="inline">
-	<thead>
-	<tr class="row0">
-		<th class="col0 leftalign"> Heading 1      </th><th class="col1 leftalign"> Heading 2       </th><th class="col2 leftalign"> Heading 3          </th>
-	</tr>
-	</thead>
-	<tr class="row1">
-		<td class="col0 leftalign"> Row 1 Col 1    </td><td class="col1 leftalign"> Row 1 Col 2     </td><td class="col2 leftalign"> Row 1 Col 3        </td>
-	</tr>
-	<tr class="row2">
-		<td class="col0 leftalign"> Row 2 Col 1    </td><td class="col1" colspan="2"> some colspan (note the double pipe) </td>
-	</tr>
-	<tr class="row3">
-		<td class="col0 leftalign"> Row 3 Col 1    </td><td class="col1 leftalign"> Row 3 Col 2     </td><td class="col2 leftalign"> Row 3 Col 3        </td>
-	</tr>
-</table></div>
-<!-- EDIT{&quot;target&quot;:&quot;table&quot;,&quot;name&quot;:&quot;&quot;,&quot;hid&quot;:&quot;table1&quot;,&quot;secid&quot;:22,&quot;range&quot;:&quot;11552-11783&quot;} -->
-<p>
-Table rows have to start and end with a <code>|</code> for normal rows or a <code>^</code> for headers.
-</p>
-<pre class="code">^ Heading 1      ^ Heading 2       ^ Heading 3          ^
-| Row 1 Col 1    | Row 1 Col 2     | Row 1 Col 3        |
-| Row 2 Col 1    | some colspan (note the double pipe) ||
-| Row 3 Col 1    | Row 3 Col 2     | Row 3 Col 3        |</pre>
-
-<p>
-To connect cells horizontally, just make the next cell completely empty as shown above. Be sure to have always the same amount of cell separators!
-</p>
-
-<p>
-Vertical tableheaders are possible, too.
-</p>
-<div class="table sectionedit23"><table class="inline">
-	<thead>
-	<tr class="row0">
-		<td class="col0 leftalign">              </td><th class="col1 leftalign"> Heading 1            </th><th class="col2 leftalign"> Heading 2          </th>
-	</tr>
-	</thead>
-	<tr class="row1">
-		<th class="col0 leftalign"> Heading 3    </th><td class="col1 leftalign"> Row 1 Col 2          </td><td class="col2 leftalign"> Row 1 Col 3        </td>
-	</tr>
-	<tr class="row2">
-		<th class="col0 leftalign"> Heading 4    </th><td class="col1"> no colspan this time </td><td class="col2 leftalign">                    </td>
-	</tr>
-	<tr class="row3">
-		<th class="col0 leftalign"> Heading 5    </th><td class="col1 leftalign"> Row 2 Col 2          </td><td class="col2 leftalign"> Row 2 Col 3        </td>
-	</tr>
-</table></div>
-<!-- EDIT{&quot;target&quot;:&quot;table&quot;,&quot;name&quot;:&quot;&quot;,&quot;hid&quot;:&quot;table2&quot;,&quot;secid&quot;:23,&quot;range&quot;:&quot;12303-12546&quot;} -->
-<p>
-As you can see, it&#039;s the cell separator before a cell which decides about the formatting:
-</p>
-<pre class="code">|              ^ Heading 1            ^ Heading 2          ^
-^ Heading 3    | Row 1 Col 2          | Row 1 Col 3        |
-^ Heading 4    | no colspan this time |                    |
-^ Heading 5    | Row 2 Col 2          | Row 2 Col 3        |</pre>
-
-<p>
-You can have rowspans (vertically connected cells) by adding <code>:::</code> into the cells below the one to which they should connect.
-</p>
-<div class="table sectionedit24"><table class="inline">
-	<thead>
-	<tr class="row0">
-		<th class="col0 leftalign"> Heading 1      </th><th class="col1 leftalign"> Heading 2                  </th><th class="col2 leftalign"> Heading 3          </th>
-	</tr>
-	</thead>
-	<tr class="row1">
-		<td class="col0 leftalign"> Row 1 Col 1    </td><td class="col1" rowspan="3"> this cell spans vertically </td><td class="col2 leftalign"> Row 1 Col 3        </td>
-	</tr>
-	<tr class="row2">
-		<td class="col0 leftalign"> Row 2 Col 1    </td><td class="col1 leftalign"> Row 2 Col 3        </td>
-	</tr>
-	<tr class="row3">
-		<td class="col0 leftalign"> Row 3 Col 1    </td><td class="col1 leftalign"> Row 2 Col 3        </td>
-	</tr>
-</table></div>
-<!-- EDIT{&quot;target&quot;:&quot;table&quot;,&quot;name&quot;:&quot;&quot;,&quot;hid&quot;:&quot;table3&quot;,&quot;secid&quot;:24,&quot;range&quot;:&quot;13025-13300&quot;} -->
-<p>
-Apart from the rowspan syntax those cells should not contain anything else.
-</p>
-<pre class="code">^ Heading 1      ^ Heading 2                  ^ Heading 3          ^
-| Row 1 Col 1    | this cell spans vertically | Row 1 Col 3        |
-| Row 2 Col 1    | :::                        | Row 2 Col 3        |
-| Row 3 Col 1    | :::                        | Row 2 Col 3        |</pre>
-
-<p>
-You can align the table contents, too. Just add at least two whitespaces at the opposite end of your text: Add two spaces on the left to align right, two spaces on the right to align left and two spaces at least at both ends for centered text.
-</p>
-<div class="table sectionedit25"><table class="inline">
-	<thead>
-	<tr class="row0">
-		<th class="col0 centeralign" colspan="3">           Table with alignment           </th>
-	</tr>
-	</thead>
-	<tr class="row1">
-		<td class="col0 rightalign">         right</td><td class="col1 centeralign">    center    </td><td class="col2 leftalign">left          </td>
-	</tr>
-	<tr class="row2">
-		<td class="col0 leftalign">left          </td><td class="col1 rightalign">         right</td><td class="col2 centeralign">    center    </td>
-	</tr>
-	<tr class="row3">
-		<td class="col0"> xxxxxxxxxxxx </td><td class="col1"> xxxxxxxxxxxx </td><td class="col2"> xxxxxxxxxxxx </td>
-	</tr>
-</table></div>
-<!-- EDIT{&quot;target&quot;:&quot;table&quot;,&quot;name&quot;:&quot;&quot;,&quot;hid&quot;:&quot;table4&quot;,&quot;secid&quot;:25,&quot;range&quot;:&quot;13909-14096&quot;} -->
-<p>
-This is how it looks in the source:
-</p>
-<pre class="code">^           Table with alignment           ^^^
-|         right|    center    |left          |
-|left          |         right|    center    |
-| xxxxxxxxxxxx | xxxxxxxxxxxx | xxxxxxxxxxxx |</pre>
-
-<p>
-Note: Vertical alignment is not supported.
-</p>
-
-</div>
-<!-- EDIT{&quot;target&quot;:&quot;section&quot;,&quot;name&quot;:&quot;Tables&quot;,&quot;hid&quot;:&quot;tables&quot;,&quot;codeblockOffset&quot;:4,&quot;secid&quot;:21,&quot;range&quot;:&quot;11479-14375&quot;} -->
-<h2 class="sectionedit26" id="no_formatting">No Formatting</h2>
-<div class="level2">
-
-<p>
-If you need to display text exactly like it is typed (without any formatting), enclose the area either with <code>&lt;nowiki&gt;</code> tags or even simpler, with double percent signs <code>%%</code>.
-</p>
-
-<p>
-
-This is some text which contains addresses like this: http://www.splitbrain.org and **formatting**, but nothing is done with it.
-
-The same is true for //__this__ text// with a smiley ;-).
-</p>
-<pre class="code">&lt;nowiki&gt;
-This is some text which contains addresses like this: http://www.splitbrain.org and **formatting**, but nothing is done with it.
-&lt;/nowiki&gt;
-The same is true for %%//__this__ text// with a smiley ;-)%%.</pre>
-
-</div>
-<!-- EDIT{&quot;target&quot;:&quot;section&quot;,&quot;name&quot;:&quot;No Formatting&quot;,&quot;hid&quot;:&quot;no_formatting&quot;,&quot;codeblockOffset&quot;:4,&quot;secid&quot;:26,&quot;range&quot;:&quot;14376-15031&quot;} -->
-<h2 class="sectionedit27" id="code_blocks">Code Blocks</h2>
-<div class="level2">
-
-<p>
-You can include code blocks into your documents by either indenting them by at least two spaces (like used for the previous examples) or by using the tags <code>&lt;code&gt;</code> or <code>&lt;file&gt;</code>.
-</p>
-<pre class="code">This is text is indented by two spaces.</pre>
-<pre class="code">This is preformatted code all spaces are preserved: like              &lt;-this</pre>
-<pre class="file">This is pretty much the same, but you could use it to show that you quoted a file.</pre>
-
-<p>
-Those blocks were created by this source:
-</p>
-<pre class="code">  This is text is indented by two spaces.</pre>
-<pre class="code">&lt;code&gt;
-This is preformatted code all spaces are preserved: like              &lt;-this
-&lt;/code&gt;</pre>
-<pre class="code">&lt;file&gt;
-This is pretty much the same, but you could use it to show that you quoted a file.
-&lt;/file&gt;</pre>
-
-</div>
-<!-- EDIT{&quot;target&quot;:&quot;section&quot;,&quot;name&quot;:&quot;Code Blocks&quot;,&quot;hid&quot;:&quot;code_blocks&quot;,&quot;codeblockOffset&quot;:4,&quot;secid&quot;:27,&quot;range&quot;:&quot;15032-15773&quot;} -->
-<h3 class="sectionedit28" id="syntax_highlighting">Syntax Highlighting</h3>
-<div class="level3">
-
-<p>
-<a href="/wiki/doku.php?id=wiki:dokuwiki" class="wikilink1" title="wiki:dokuwiki">DokuWiki</a> can highlight sourcecode, which makes it easier to read. It uses the <a href="http://qbnz.com/highlighter/" class="urlextern" title="http://qbnz.com/highlighter/" rel="nofollow">GeSHi</a> Generic Syntax Highlighter – so any language supported by GeSHi is supported. The syntax uses the same code and file blocks described in the previous section, but this time the name of the language syntax to be highlighted is included inside the tag, e.g. <code>&lt;code java&gt;</code> or <code>&lt;file java&gt;</code>.
-</p>
-<pre class="code java"><span class="co3">/**
- * The HelloWorldApp class implements an application that
- * simply displays &quot;Hello World!&quot; to the standard output.
- */</span>
-<span class="kw1">class</span> HelloWorldApp <span class="br0">&#123;</span>
-    <span class="kw1">public</span> <span class="kw1">static</span> <span class="kw4">void</span> main<span class="br0">&#40;</span><a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Adocs.oracle.com+javase+docs+api+string"><span class="kw3">String</span></a><span class="br0">&#91;</span><span class="br0">&#93;</span> args<span class="br0">&#41;</span> <span class="br0">&#123;</span>
-        <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Adocs.oracle.com+javase+docs+api+system"><span class="kw3">System</span></a>.<span class="me1">out</span>.<span class="me1">println</span><span class="br0">&#40;</span><span class="st0">&quot;Hello World!&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="co1">//Display the string.</span>
-    <span class="br0">&#125;</span>
-<span class="br0">&#125;</span></pre>
-
-<p>
-The following language strings are currently recognized: <em>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</em>
-</p>
-
-<p>
-There are additional <a href="https://www.dokuwiki.org/syntax_highlighting" class="interwiki iw_doku" title="https://www.dokuwiki.org/syntax_highlighting">advanced options</a> available for syntax highlighting, such as highlighting lines or adding line numbers.
-</p>
-
-</div>
-<!-- EDIT{&quot;target&quot;:&quot;section&quot;,&quot;name&quot;:&quot;Syntax Highlighting&quot;,&quot;hid&quot;:&quot;syntax_highlighting&quot;,&quot;codeblockOffset&quot;:6,&quot;secid&quot;:28,&quot;range&quot;:&quot;15774-18536&quot;} -->
-<h3 class="sectionedit29" id="downloadable_code_blocks">Downloadable Code Blocks</h3>
-<div class="level3">
-
-<p>
-When you use the <code>&lt;code&gt;</code> or <code>&lt;file&gt;</code> syntax as above, you might want to make the shown code available for download as well. You can do this by specifying a file name after language code like this:
-</p>
-<pre class="code">&lt;file php myexample.php&gt;
-&lt;?php echo &quot;hello world!&quot;; ?&gt;
-&lt;/file&gt;</pre>
-<dl class="file">
-<dt><a href="/wiki/doku.php?do=export_code&amp;id=wiki:syntax&amp;codeblock=8" title="Download Snippet" class="mediafile mf_php">myexample.php</a></dt>
-<dd><pre class="code file php"><span class="kw2">&lt;?php</span> <span class="kw1">echo</span> <span class="st0">&quot;hello world!&quot;</span><span class="sy0">;</span> <span class="sy1">?&gt;</span></pre>
-</dd></dl>
-
-<p>
-If you don&#039;t want any highlighting but want a downloadable file, specify a dash (<code>-</code>) as the language code: <code>&lt;code - myfile.foo&gt;</code>.
-</p>
-
-</div>
-<!-- EDIT{&quot;target&quot;:&quot;section&quot;,&quot;name&quot;:&quot;Downloadable Code Blocks&quot;,&quot;hid&quot;:&quot;downloadable_code_blocks&quot;,&quot;codeblockOffset&quot;:7,&quot;secid&quot;:29,&quot;range&quot;:&quot;18537-19067&quot;} -->
-<h2 class="sectionedit30" id="embedding_html_and_php">Embedding HTML and PHP</h2>
-<div class="level2">
-
-<p>
-You can embed raw <abbr title="HyperText Markup Language">HTML</abbr> or PHP code into your documents by using the <code>&lt;html&gt;</code> or <code>&lt;php&gt;</code> tags. (Use uppercase tags if you need to enclose block level elements.)
-</p>
-
-<p>
-<abbr title="HyperText Markup Language">HTML</abbr> example:
-</p>
-<pre class="code">&lt;html&gt;
-This is some &lt;span style=&quot;color:red;font-size:150%;&quot;&gt;inline HTML&lt;/span&gt;
-&lt;/html&gt;
-&lt;HTML&gt;
-&lt;p style=&quot;border:2px dashed red;&quot;&gt;And this is some block HTML&lt;/p&gt;
-&lt;/HTML&gt;</pre>
-
-<p>
-<code class="code html4strict">This is some <span class="sc2">&lt;<a href="http://december.com/html/4/element/span.html"><span class="kw2">span</span></a> <span class="kw3">style</span><span class="sy0">=</span><span class="st0">&quot;color:red;font-size:150%;&quot;</span>&gt;</span>inline HTML<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/span.html"><span class="kw2">span</span></a>&gt;</span></code>
-</p>
-<pre class="code html4strict"><span class="sc2">&lt;<a href="http://december.com/html/4/element/p.html"><span class="kw2">p</span></a> <span class="kw3">style</span><span class="sy0">=</span><span class="st0">&quot;border:2px dashed red;&quot;</span>&gt;</span>And this is some block HTML<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/p.html"><span class="kw2">p</span></a>&gt;</span></pre>
-<p>
-PHP example:
-</p>
-<pre class="code">&lt;php&gt;
-echo &#039;The PHP version: &#039;;
-echo phpversion();
-echo &#039; (generated inline HTML)&#039;;
-&lt;/php&gt;
-&lt;PHP&gt;
-echo &#039;&lt;table class=&quot;inline&quot;&gt;&lt;tr&gt;&lt;td&gt;The same, but inside a block level element:&lt;/td&gt;&#039;;
-echo &#039;&lt;td&gt;&#039;.phpversion().&#039;&lt;/td&gt;&#039;;
-echo &#039;&lt;/tr&gt;&lt;/table&gt;&#039;;
-&lt;/PHP&gt;</pre>
-
-<p>
-<code class="code php"><span class="kw1">echo</span> <span class="st_h">'The PHP version: '</span><span class="sy0">;</span>
-<span class="kw1">echo</span> <a href="http://www.php.net/phpversion"><span class="kw3">phpversion</span></a><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
-<span class="kw1">echo</span> <span class="st_h">' (inline HTML)'</span><span class="sy0">;</span></code>
-</p>
-<pre class="code php"><span class="kw1">echo</span> <span class="st_h">'&lt;table class=&quot;inline&quot;&gt;&lt;tr&gt;&lt;td&gt;The same, but inside a block level element:&lt;/td&gt;'</span><span class="sy0">;</span>
-<span class="kw1">echo</span> <span class="st_h">'&lt;td&gt;'</span><span class="sy0">.</span><a href="http://www.php.net/phpversion"><span class="kw3">phpversion</span></a><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">.</span><span class="st_h">'&lt;/td&gt;'</span><span class="sy0">;</span>
-<span class="kw1">echo</span> <span class="st_h">'&lt;/tr&gt;&lt;/table&gt;'</span><span class="sy0">;</span></pre>
-<p>
-<strong>Please Note</strong>: <abbr title="HyperText Markup Language">HTML</abbr> and PHP embedding is disabled by default in the configuration. If disabled, the code is displayed instead of executed.
-</p>
-
-</div>
-<!-- EDIT{&quot;target&quot;:&quot;section&quot;,&quot;name&quot;:&quot;Embedding HTML and PHP&quot;,&quot;hid&quot;:&quot;embedding_html_and_php&quot;,&quot;codeblockOffset&quot;:9,&quot;secid&quot;:30,&quot;range&quot;:&quot;19068-20301&quot;} -->
-<h2 class="sectionedit31" id="rss_atom_feed_aggregation">RSS/ATOM Feed Aggregation</h2>
-<div class="level2">
-
-<p>
-<a href="/wiki/doku.php?id=wiki:dokuwiki" class="wikilink1" title="wiki:dokuwiki">DokuWiki</a> can integrate data from external XML feeds. For parsing the XML feeds, <a href="http://simplepie.org/" class="urlextern" title="http://simplepie.org/" rel="nofollow">SimplePie</a> is used. All formats understood by SimplePie can be used in DokuWiki as well. You can influence the rendering by multiple additional space separated parameters:
-</p>
-<div class="table sectionedit32"><table class="inline">
-	<thead>
-	<tr class="row0">
-		<th class="col0 leftalign"> Parameter  </th><th class="col1"> Description </th>
-	</tr>
-	</thead>
-	<tr class="row1">
-		<td class="col0"> any number </td><td class="col1"> will be used as maximum number items to show, defaults to 8 </td>
-	</tr>
-	<tr class="row2">
-		<td class="col0 leftalign"> reverse    </td><td class="col1"> display the last items in the feed first </td>
-	</tr>
-	<tr class="row3">
-		<td class="col0 leftalign"> author     </td><td class="col1"> show item authors names </td>
-	</tr>
-	<tr class="row4">
-		<td class="col0 leftalign"> date       </td><td class="col1"> show item dates </td>
-	</tr>
-	<tr class="row5">
-		<td class="col0"> description</td><td class="col1"> show the item description. If <a href="https://www.dokuwiki.org/config%3Ahtmlok" class="interwiki iw_doku" title="https://www.dokuwiki.org/config%3Ahtmlok">HTML</a> is disabled all tags will be stripped </td>
-	</tr>
-	<tr class="row6">
-		<td class="col0 leftalign"> nosort     </td><td class="col1"> do not sort the items in the feed </td>
-	</tr>
-	<tr class="row7">
-		<td class="col0"> <em>n</em>[dhm] </td><td class="col1"> refresh period, where d=days, h=hours, m=minutes. (e.g. 12h = 12 hours). </td>
-	</tr>
-</table></div>
-<!-- EDIT{&quot;target&quot;:&quot;table&quot;,&quot;name&quot;:&quot;&quot;,&quot;hid&quot;:&quot;table5&quot;,&quot;secid&quot;:32,&quot;range&quot;:&quot;20622-21113&quot;} -->
-<p>
-The refresh period defaults to 4 hours. Any value below 10 minutes will be treated as 10 minutes. <a href="/wiki/doku.php?id=wiki:dokuwiki" class="wikilink1" title="wiki:dokuwiki">DokuWiki</a> will generally try to supply a cached version of a page, obviously this is inappropriate when the page contains dynamic external content. The parameter tells <a href="/wiki/doku.php?id=wiki:dokuwiki" class="wikilink1" title="wiki:dokuwiki">DokuWiki</a> to re-render the page if it is more than <em>refresh period</em> since the page was last rendered.
-</p>
-
-<p>
-By default the feed will be sorted by date, newest items first. You can sort it by oldest first using the <code>reverse</code> parameter, or display the feed as is with <code>nosort</code>.
-</p>
-
-<p>
-<strong>Example:</strong>
-</p>
-<pre class="code">{{rss&gt;http://slashdot.org/index.rss 5 author date 1h }}</pre>
-<ul class="rss"><li><div class="li"><em>An error occurred while fetching this feed: </em><a href="http://slashdot.org/index.rss" class="urlextern" title="http://slashdot.org/index.rss" rel="nofollow">http://slashdot.org/index.rss</a></div></li></ul>
-</div>
-<!-- EDIT{&quot;target&quot;:&quot;section&quot;,&quot;name&quot;:&quot;RSS\/ATOM Feed Aggregation&quot;,&quot;hid&quot;:&quot;rss_atom_feed_aggregation&quot;,&quot;codeblockOffset&quot;:11,&quot;secid&quot;:31,&quot;range&quot;:&quot;20302-21805&quot;} -->
-<h2 class="sectionedit33" id="control_macros">Control Macros</h2>
-<div class="level2">
-
-<p>
-Some syntax influences how DokuWiki renders a page without creating any output it self. The following control macros are availble:
-</p>
-<div class="table sectionedit34"><table class="inline">
-	<thead>
-	<tr class="row0">
-		<th class="col0 leftalign"> Macro           </th><th class="col1"> Description </th>
-	</tr>
-	</thead>
-	<tr class="row1">
-		<td class="col0 leftalign"> ~~NOTOC~~   </td><td class="col1"> If this macro is found on the page, no table of contents will be created </td>
-	</tr>
-	<tr class="row2">
-		<td class="col0"> ~~NOCACHE~~ </td><td class="col1"> DokuWiki caches all output by default. Sometimes this might not be wanted (eg. when the &lt;php&gt; syntax above is used), adding this macro will force DokuWiki to rerender a page on every call </td>
-	</tr>
-</table></div>
-<!-- EDIT{&quot;target&quot;:&quot;table&quot;,&quot;name&quot;:&quot;&quot;,&quot;hid&quot;:&quot;table6&quot;,&quot;secid&quot;:34,&quot;range&quot;:&quot;21966-22308&quot;} -->
-</div>
-<!-- EDIT{&quot;target&quot;:&quot;section&quot;,&quot;name&quot;:&quot;Control Macros&quot;,&quot;hid&quot;:&quot;control_macros&quot;,&quot;codeblockOffset&quot;:11,&quot;secid&quot;:33,&quot;range&quot;:&quot;21806-22309&quot;} -->
-<h2 class="sectionedit35" id="syntax_plugins">Syntax Plugins</h2>
-<div class="level2">
-
-<p>
-DokuWiki&#039;s syntax can be extended by <a href="https://www.dokuwiki.org/plugins" class="interwiki iw_doku" title="https://www.dokuwiki.org/plugins">Plugins</a>. How the installed plugins are used is described on their appropriate description pages. The following syntax plugins are available in this particular DokuWiki installation:
-</p>
-<ul><li><div class="li"><a href="http://dokuwiki.org/plugin:info" class="urlextern" title="http://dokuwiki.org/plugin:info" rel="nofollow">Info Plugin</a> <em>2014-10-01</em> by <a href="mailto:&#x61;&#x6e;&#x64;&#x69;&#x40;&#x73;&#x70;&#x6c;&#x69;&#x74;&#x62;&#x72;&#x61;&#x69;&#x6e;&#x2e;&#x6f;&#x72;&#x67;" class="mail" title="&#x61;&#x6e;&#x64;&#x69;&#x40;&#x73;&#x70;&#x6c;&#x69;&#x74;&#x62;&#x72;&#x61;&#x69;&#x6e;&#x2e;&#x6f;&#x72;&#x67;">Andreas Gohr</a><br />Displays information about various DokuWiki internals</div></li></ul>
-</div>
-<!-- EDIT{&quot;target&quot;:&quot;section&quot;,&quot;name&quot;:&quot;Syntax Plugins&quot;,&quot;hid&quot;:&quot;syntax_plugins&quot;,&quot;codeblockOffset&quot;:11,&quot;secid&quot;:35,&quot;range&quot;:&quot;22310-&quot;} --><div class="footnotes">
-<div class="fn"><sup><a href="#fnt__1" id="fn__1" class="fn_bot">1)</a></sup> 
-<div class="content">This is a footnote</div></div>
-<div class="fn"><sup><a href="#fnt__2" id="fn__2" class="fn_bot">2)</a></sup> 
-<div class="content">when the aspect ratio of the given width and height doesn&#039;t match that of the image, it will be cropped to the new ratio before resizing</div></div>
-</div>
diff --git a/wiki/data/cache/_dummy b/wiki/data/cache/_dummy
deleted file mode 100644
index e492265..0000000
--- a/wiki/data/cache/_dummy
+++ /dev/null
@@ -1 +0,0 @@
-You can safely delete this file.
\ No newline at end of file
diff --git a/wiki/data/cache/a/a3d36dbdbecd1b1c781714df17e53321.i b/wiki/data/cache/a/a3d36dbdbecd1b1c781714df17e53321.i
deleted file mode 100644
index 6613ae4..0000000
--- a/wiki/data/cache/a/a3d36dbdbecd1b1c781714df17e53321.i
+++ /dev/null
@@ -1 +0,0 @@
-a:8:{i:0;a:3:{i:0;s:14:"document_start";i:1;a:0:{}i:2;i:0;}i:1;a:3:{i:0;s:6:"header";i:1;a:3:{i:0;s:17:"Send new password";i:1;i:1;i:2;i:1;}i:2;i:1;}i:2;a:3:{i:0;s:12:"section_open";i:1;a:1:{i:0;i:1;}i:2;i:1;}i:3;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:1;}i:4;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:169:"Please enter your user name in the form below to request a new password for your account in this wiki. A confirmation link will be sent to your registered email address.";}i:2;i:34;}i:5;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:203;}i:6;a:3:{i:0;s:13:"section_close";i:1;a:0:{}i:2;i:205;}i:7;a:3:{i:0;s:12:"document_end";i:1;a:0:{}i:2;i:205;}}
\ No newline at end of file
diff --git a/wiki/data/cache/a/a3d36dbdbecd1b1c781714df17e53321.xhtml b/wiki/data/cache/a/a3d36dbdbecd1b1c781714df17e53321.xhtml
deleted file mode 100644
index 3a6fce6..0000000
--- a/wiki/data/cache/a/a3d36dbdbecd1b1c781714df17e53321.xhtml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-<h1 class="sectionedit1" id="send_new_password">Send new password</h1>
-<div class="level1">
-
-<p>
-Please enter your user name in the form below to request a new password for your account in this wiki. A confirmation link will be sent to your registered email address.
-</p>
-
-</div>
diff --git a/wiki/data/cache/a/a644499e91b18989ac47a40900dffb28.i b/wiki/data/cache/a/a644499e91b18989ac47a40900dffb28.i
deleted file mode 100644
index c1e6aaf..0000000
--- a/wiki/data/cache/a/a644499e91b18989ac47a40900dffb28.i
+++ /dev/null
@@ -1,2 +0,0 @@
-a:8:{i:0;a:3:{i:0;s:14:"document_start";i:1;a:0:{}i:2;i:0;}i:1;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:0;}i:2;a:3:{i:0;s:11:"strong_open";i:1;a:0:{}i:2;i:1;}i:3;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:36:"Welcome to the tilde.institute wiki!";}i:2;i:3;}i:4;a:3:{i:0;s:12:"strong_close";i:1;a:0:{}i:2;i:39;}i:5;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:214:"
-This is the place to record anything new you've learned and anything cool you've done at the institute. Share information with others to help spread knowledge of the OpenBSD operating system. We'll learn together!";}i:2;i:41;}i:6;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:41;}i:7;a:3:{i:0;s:12:"document_end";i:1;a:0:{}i:2;i:41;}}
\ No newline at end of file
diff --git a/wiki/data/cache/a/a644499e91b18989ac47a40900dffb28.metadata b/wiki/data/cache/a/a644499e91b18989ac47a40900dffb28.metadata
deleted file mode 100644
index 7a4e947..0000000
--- a/wiki/data/cache/a/a644499e91b18989ac47a40900dffb28.metadata
+++ /dev/null
@@ -1 +0,0 @@
-1546350022
\ No newline at end of file
diff --git a/wiki/data/cache/a/a644499e91b18989ac47a40900dffb28.xhtml b/wiki/data/cache/a/a644499e91b18989ac47a40900dffb28.xhtml
deleted file mode 100644
index 762b8d0..0000000
--- a/wiki/data/cache/a/a644499e91b18989ac47a40900dffb28.xhtml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-<p>
-<strong>Welcome to the tilde.institute wiki!</strong>
-This is the place to record anything new you&#039;ve learned and anything cool you&#039;ve done at the institute. Share information with others to help spread knowledge of the OpenBSD operating system. We&#039;ll learn together!
-</p>
diff --git a/wiki/data/cache/autosubmit.txt b/wiki/data/cache/autosubmit.txt
deleted file mode 100644
index e69de29..0000000
--- a/wiki/data/cache/autosubmit.txt
+++ /dev/null
diff --git a/wiki/data/cache/b/b6c77d919feacb98b75d6cb2c2fe2328.feed b/wiki/data/cache/b/b6c77d919feacb98b75d6cb2c2fe2328.feed
deleted file mode 100644
index c1f9aa9..0000000
--- a/wiki/data/cache/b/b6c77d919feacb98b75d6cb2c2fe2328.feed
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- generator="FeedCreator 1.8" -->
-<?xml-stylesheet href="https://tilde.institute/wiki/lib/exe/css.php?s=feed" type="text/css"?>
-<rdf:RDF
-    xmlns="http://purl.org/rss/1.0/"
-    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
-    xmlns:dc="http://purl.org/dc/elements/1.1/">
-    <channel rdf:about="https://tilde.institute/wiki/feed.php">
-        <title>tilde.institute some</title>
-        <description></description>
-        <link>https://tilde.institute/wiki/</link>
-        <image rdf:resource="https://tilde.institute/wiki/lib/tpl/dokuwiki/images/favicon.ico" />
-       <dc:date>2018-12-28T14:14:31+0000</dc:date>
-        <items>
-            <rdf:Seq>
-            </rdf:Seq>
-        </items>
-    </channel>
-    <image rdf:about="https://tilde.institute/wiki/lib/tpl/dokuwiki/images/favicon.ico">
-        <title>tilde.institute</title>
-        <link>https://tilde.institute/wiki/</link>
-        <url>https://tilde.institute/wiki/lib/tpl/dokuwiki/images/favicon.ico</url>
-    </image>
-</rdf:RDF>
diff --git a/wiki/data/cache/b/bd4c36ae9b8ec93276ddd2f520c6414d.feed b/wiki/data/cache/b/bd4c36ae9b8ec93276ddd2f520c6414d.feed
deleted file mode 100644
index d900ccd..0000000
--- a/wiki/data/cache/b/bd4c36ae9b8ec93276ddd2f520c6414d.feed
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- generator="FeedCreator 1.8" -->
-<?xml-stylesheet href="https://tilde.institute/wiki/lib/exe/css.php?s=feed" type="text/css"?>
-<rdf:RDF
-    xmlns="http://purl.org/rss/1.0/"
-    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
-    xmlns:dc="http://purl.org/dc/elements/1.1/">
-    <channel rdf:about="https://tilde.institute/wiki/feed.php">
-        <title>tilde.institute playground</title>
-        <description></description>
-        <link>https://tilde.institute/wiki/</link>
-        <image rdf:resource="https://tilde.institute/wiki/lib/tpl/dokuwiki/images/favicon.ico" />
-       <dc:date>2018-12-28T14:14:06+0000</dc:date>
-        <items>
-            <rdf:Seq>
-                <rdf:li rdf:resource="https://tilde.institute/wiki/doku.php?id=playground:playground&amp;rev=1543881884&amp;do=diff"/>
-            </rdf:Seq>
-        </items>
-    </channel>
-    <image rdf:about="https://tilde.institute/wiki/lib/tpl/dokuwiki/images/favicon.ico">
-        <title>tilde.institute</title>
-        <link>https://tilde.institute/wiki/</link>
-        <url>https://tilde.institute/wiki/lib/tpl/dokuwiki/images/favicon.ico</url>
-    </image>
-    <item rdf:about="https://tilde.institute/wiki/doku.php?id=playground:playground&amp;rev=1543881884&amp;do=diff">
-        <dc:format>text/html</dc:format>
-        <dc:date>2018-12-04T00:04:44+0000</dc:date>
-        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
-        <title>playground:playground</title>
-        <link>https://tilde.institute/wiki/doku.php?id=playground:playground&amp;rev=1543881884&amp;do=diff</link>
-        <description>PlayGround</description>
-    </item>
-</rdf:RDF>
diff --git a/wiki/data/cache/c/c1c88364d9ccbc542c730d17d7c77946.feed b/wiki/data/cache/c/c1c88364d9ccbc542c730d17d7c77946.feed
deleted file mode 100644
index 7577efd..0000000
--- a/wiki/data/cache/c/c1c88364d9ccbc542c730d17d7c77946.feed
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- generator="FeedCreator 1.8" -->
-<?xml-stylesheet href="https://tilde.institute/wiki/lib/exe/css.php?s=feed" type="text/css"?>
-<rdf:RDF
-    xmlns="http://purl.org/rss/1.0/"
-    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
-    xmlns:dc="http://purl.org/dc/elements/1.1/">
-    <channel rdf:about="https://tilde.institute/wiki/feed.php">
-        <title>tilde.institute</title>
-        <description></description>
-        <link>https://tilde.institute/wiki/</link>
-        <image rdf:resource="https://tilde.institute/wiki/lib/tpl/dokuwiki/images/favicon.ico" />
-       <dc:date>2019-01-01T04:33:34+0000</dc:date>
-        <items>
-            <rdf:Seq>
-                <rdf:li rdf:resource="https://tilde.institute/wiki/doku.php?id=start&amp;rev=1543882598&amp;do=diff"/>
-            </rdf:Seq>
-        </items>
-    </channel>
-    <image rdf:about="https://tilde.institute/wiki/lib/tpl/dokuwiki/images/favicon.ico">
-        <title>tilde.institute</title>
-        <link>https://tilde.institute/wiki/</link>
-        <url>https://tilde.institute/wiki/lib/tpl/dokuwiki/images/favicon.ico</url>
-    </image>
-    <item rdf:about="https://tilde.institute/wiki/doku.php?id=start&amp;rev=1543882598&amp;do=diff">
-        <dc:format>text/html</dc:format>
-        <dc:date>2018-12-04T00:16:38+0000</dc:date>
-        <dc:creator>ahriman (ahriman@undisclosed.example.com)</dc:creator>
-        <title>start</title>
-        <link>https://tilde.institute/wiki/doku.php?id=start&amp;rev=1543882598&amp;do=diff</link>
-        <description>Welcome to the tilde.institute wiki!
-This is the place to record anything new you've learned and anything cool you've done at the institute. Share information with others to help spread knowledge of the OpenBSD operating system. We'll learn together!</description>
-    </item>
-</rdf:RDF>
diff --git a/wiki/data/cache/c/c768e64cf6b3cd83f316600743dc59b8.code b/wiki/data/cache/c/c768e64cf6b3cd83f316600743dc59b8.code
deleted file mode 100644
index 23984c7..0000000
--- a/wiki/data/cache/c/c768e64cf6b3cd83f316600743dc59b8.code
+++ /dev/null
@@ -1,3 +0,0 @@
-<span class="kw1">echo</span> <span class="st_h">'&lt;table class=&quot;inline&quot;&gt;&lt;tr&gt;&lt;td&gt;The same, but inside a block level element:&lt;/td&gt;'</span><span class="sy0">;</span>
-<span class="kw1">echo</span> <span class="st_h">'&lt;td&gt;'</span><span class="sy0">.</span><a href="http://www.php.net/phpversion"><span class="kw3">phpversion</span></a><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">.</span><span class="st_h">'&lt;/td&gt;'</span><span class="sy0">;</span>
-<span class="kw1">echo</span> <span class="st_h">'&lt;/tr&gt;&lt;/table&gt;'</span><span class="sy0">;</span>
\ No newline at end of file
diff --git a/wiki/data/cache/c/cb68741488368edf01be033a7c681628.code b/wiki/data/cache/c/cb68741488368edf01be033a7c681628.code
deleted file mode 100644
index c9fda02..0000000
--- a/wiki/data/cache/c/cb68741488368edf01be033a7c681628.code
+++ /dev/null
@@ -1 +0,0 @@
-<span class="kw2">&lt;?php</span> <span class="kw1">echo</span> <span class="st0">&quot;hello world!&quot;</span><span class="sy0">;</span> <span class="sy1">?&gt;</span>
\ No newline at end of file
diff --git a/wiki/data/cache/d/d223e1439188e478349d52476506c22e.js b/wiki/data/cache/d/d223e1439188e478349d52476506c22e.js
deleted file mode 100644
index d19c70b..0000000
--- a/wiki/data/cache/d/d223e1439188e478349d52476506c22e.js
+++ /dev/null
@@ -1,20 +0,0 @@
-/*! jQuery v3.1.1 | (c) jQuery Foundation | jquery.org/license */
-!function(a,b){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){"use strict";var c=[],d=a.document,e=Object.getPrototypeOf,f=c.slice,g=c.concat,h=c.push,i=c.indexOf,j={},k=j.toString,l=j.hasOwnProperty,m=l.toString,n=m.call(Object),o={};function p(a,b){b=b||d;var c=b.createElement("script");c.text=a,b.head.appendChild(c).parentNode.removeChild(c)}var q="3.1.1",r=function(a,b){return new r.fn.init(a,b)},s=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,t=/^-ms-/,u=/-([a-z])/g,v=function(a,b){return b.toUpperCase()};r.fn=r.prototype={jquery:q,constructor:r,length:0,toArray:function(){return f.call(this)},get:function(a){return null==a?f.call(this):a<0?this[a+this.length]:this[a]},pushStack:function(a){var b=r.merge(this.constructor(),a);return b.prevObject=this,b},each:function(a){return r.each(this,a)},map:function(a){return this.pushStack(r.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(f.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(a<0?b:0);return this.pushStack(c>=0&&c<b?[this[c]]:[])},end:function(){return this.prevObject||this.constructor()},push:h,sort:c.sort,splice:c.splice},r.extend=r.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||r.isFunction(g)||(g={}),h===i&&(g=this,h--);h<i;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(r.isPlainObject(d)||(e=r.isArray(d)))?(e?(e=!1,f=c&&r.isArray(c)?c:[]):f=c&&r.isPlainObject(c)?c:{},g[b]=r.extend(j,f,d)):void 0!==d&&(g[b]=d));return g},r.extend({expando:"jQuery"+(q+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===r.type(a)},isArray:Array.isArray,isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){var b=r.type(a);return("number"===b||"string"===b)&&!isNaN(a-parseFloat(a))},isPlainObject:function(a){var b,c;return!(!a||"[object Object]"!==k.call(a))&&(!(b=e(a))||(c=l.call(b,"constructor")&&b.constructor,"function"==typeof c&&m.call(c)===n))},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?j[k.call(a)]||"object":typeof a},globalEval:function(a){p(a)},camelCase:function(a){return a.replace(t,"ms-").replace(u,v)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b){var c,d=0;if(w(a)){for(c=a.length;d<c;d++)if(b.call(a[d],d,a[d])===!1)break}else for(d in a)if(b.call(a[d],d,a[d])===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(s,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(w(Object(a))?r.merge(c,"string"==typeof a?[a]:a):h.call(c,a)),c},inArray:function(a,b,c){return null==b?-1:i.call(b,a,c)},merge:function(a,b){for(var c=+b.length,d=0,e=a.length;d<c;d++)a[e++]=b[d];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;f<g;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,e,f=0,h=[];if(w(a))for(d=a.length;f<d;f++)e=b(a[f],f,c),null!=e&&h.push(e);else for(f in a)e=b(a[f],f,c),null!=e&&h.push(e);return g.apply([],h)},guid:1,proxy:function(a,b){var c,d,e;if("string"==typeof b&&(c=a[b],b=a,a=c),r.isFunction(a))return d=f.call(arguments,2),e=function(){return a.apply(b||this,d.concat(f.call(arguments)))},e.guid=a.guid=a.guid||r.guid++,e},now:Date.now,support:o}),"function"==typeof Symbol&&(r.fn[Symbol.iterator]=c[Symbol.iterator]),r.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(a,b){j["[object "+b+"]"]=b.toLowerCase()});function w(a){var b=!!a&&"length"in a&&a.length,c=r.type(a);return"function"!==c&&!r.isWindow(a)&&("array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a)}var x=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ha(),z=ha(),A=ha(),B=function(a,b){return a===b&&(l=!0),0},C={}.hasOwnProperty,D=[],E=D.pop,F=D.push,G=D.push,H=D.slice,I=function(a,b){for(var c=0,d=a.length;c<d;c++)if(a[c]===b)return c;return-1},J="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",K="[\\x20\\t\\r\\n\\f]",L="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",M="\\["+K+"*("+L+")(?:"+K+"*([*^$|!~]?=)"+K+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+L+"))|)"+K+"*\\]",N=":("+L+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+M+")*)|.*)\\)|)",O=new RegExp(K+"+","g"),P=new RegExp("^"+K+"+|((?:^|[^\\\\])(?:\\\\.)*)"+K+"+$","g"),Q=new RegExp("^"+K+"*,"+K+"*"),R=new RegExp("^"+K+"*([>+~]|"+K+")"+K+"*"),S=new RegExp("="+K+"*([^\\]'\"]*?)"+K+"*\\]","g"),T=new RegExp(N),U=new RegExp("^"+L+"$"),V={ID:new RegExp("^#("+L+")"),CLASS:new RegExp("^\\.("+L+")"),TAG:new RegExp("^("+L+"|[*])"),ATTR:new RegExp("^"+M),PSEUDO:new RegExp("^"+N),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+K+"*(even|odd|(([+-]|)(\\d*)n|)"+K+"*(?:([+-]|)"+K+"*(\\d+)|))"+K+"*\\)|)","i"),bool:new RegExp("^(?:"+J+")$","i"),needsContext:new RegExp("^"+K+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+K+"*((?:-\\d)?\\d*)"+K+"*\\)|)(?=[^-]|$)","i")},W=/^(?:input|select|textarea|button)$/i,X=/^h\d$/i,Y=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,$=/[+~]/,_=new RegExp("\\\\([\\da-f]{1,6}"+K+"?|("+K+")|.)","ig"),aa=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:d<0?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},ba=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ca=function(a,b){return b?"\0"===a?"\ufffd":a.slice(0,-1)+"\\"+a.charCodeAt(a.length-1).toString(16)+" ":"\\"+a},da=function(){m()},ea=ta(function(a){return a.disabled===!0&&("form"in a||"label"in a)},{dir:"parentNode",next:"legend"});try{G.apply(D=H.call(v.childNodes),v.childNodes),D[v.childNodes.length].nodeType}catch(fa){G={apply:D.length?function(a,b){F.apply(a,H.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function ga(a,b,d,e){var f,h,j,k,l,o,r,s=b&&b.ownerDocument,w=b?b.nodeType:9;if(d=d||[],"string"!=typeof a||!a||1!==w&&9!==w&&11!==w)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==w&&(l=Z.exec(a)))if(f=l[1]){if(9===w){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(s&&(j=s.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(l[2])return G.apply(d,b.getElementsByTagName(a)),d;if((f=l[3])&&c.getElementsByClassName&&b.getElementsByClassName)return G.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+" "]&&(!q||!q.test(a))){if(1!==w)s=b,r=a;else if("object"!==b.nodeName.toLowerCase()){(k=b.getAttribute("id"))?k=k.replace(ba,ca):b.setAttribute("id",k=u),o=g(a),h=o.length;while(h--)o[h]="#"+k+" "+sa(o[h]);r=o.join(","),s=$.test(a)&&qa(b.parentNode)||b}if(r)try{return G.apply(d,s.querySelectorAll(r)),d}catch(x){}finally{k===u&&b.removeAttribute("id")}}}return i(a.replace(P,"$1"),b,d,e)}function ha(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ia(a){return a[u]=!0,a}function ja(a){var b=n.createElement("fieldset");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ka(a,b){var c=a.split("|"),e=c.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&a.sourceIndex-b.sourceIndex;if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function na(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function oa(a){return function(b){return"form"in b?b.parentNode&&b.disabled===!1?"label"in b?"label"in b.parentNode?b.parentNode.disabled===a:b.disabled===a:b.isDisabled===a||b.isDisabled!==!a&&ea(b)===a:b.disabled===a:"label"in b&&b.disabled===a}}function pa(a){return ia(function(b){return b=+b,ia(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function qa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=ga.support={},f=ga.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return!!b&&"HTML"!==b.nodeName},m=ga.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=n.documentElement,p=!f(n),v!==n&&(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",da,!1):e.attachEvent&&e.attachEvent("onunload",da)),c.attributes=ja(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ja(function(a){return a.appendChild(n.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Y.test(n.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){return a.getAttribute("id")===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c?[c]:[]}}):(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c,d,e,f=b.getElementById(a);if(f){if(c=f.getAttributeNode("id"),c&&c.value===a)return[f];e=b.getElementsByName(a),d=0;while(f=e[d++])if(c=f.getAttributeNode("id"),c&&c.value===a)return[f]}return[]}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){if("undefined"!=typeof b.getElementsByClassName&&p)return b.getElementsByClassName(a)},r=[],q=[],(c.qsa=Y.test(n.querySelectorAll))&&(ja(function(a){o.appendChild(a).innerHTML="<a id='"+u+"'></a><select id='"+u+"-\r\\' msallowcapture=''><option selected=''></option></select>",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+K+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+K+"*(?:value|"+J+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ja(function(a){a.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var b=n.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+K+"*[*^$|!~]?="),2!==a.querySelectorAll(":enabled").length&&q.push(":enabled",":disabled"),o.appendChild(a).disabled=!0,2!==a.querySelectorAll(":disabled").length&&q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=Y.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ja(function(a){c.disconnectedMatch=s.call(a,"*"),s.call(a,"[s!='']:x"),r.push("!=",N)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=Y.test(o.compareDocumentPosition),t=b||Y.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===n||a.ownerDocument===v&&t(v,a)?-1:b===n||b.ownerDocument===v&&t(v,b)?1:k?I(k,a)-I(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,g=[a],h=[b];if(!e||!f)return a===n?-1:b===n?1:e?-1:f?1:k?I(k,a)-I(k,b):0;if(e===f)return la(a,b);c=a;while(c=c.parentNode)g.unshift(c);c=b;while(c=c.parentNode)h.unshift(c);while(g[d]===h[d])d++;return d?la(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):n},ga.matches=function(a,b){return ga(a,null,null,b)},ga.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(S,"='$1']"),c.matchesSelector&&p&&!A[b+" "]&&(!r||!r.test(b))&&(!q||!q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return ga(b,n,null,[a]).length>0},ga.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},ga.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&C.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},ga.escape=function(a){return(a+"").replace(ba,ca)},ga.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},ga.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=ga.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=ga.selectors={cacheLength:50,createPseudo:ia,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(_,aa),a[3]=(a[3]||a[4]||a[5]||"").replace(_,aa),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||ga.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&ga.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return V.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&T.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(_,aa).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+K+")"+a+"("+K+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=ga.attr(d,a);return null==e?"!="===b:!b||(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(O," ")+" ").indexOf(c)>-1:"|="===b&&(e===c||e.slice(0,c.length+1)===c+"-"))}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h,t=!1;if(q){if(f){while(p){m=b;while(m=m[p])if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n&&j[2],m=n&&q.childNodes[n];while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if(1===m.nodeType&&++t&&m===b){k[a]=[w,n,t];break}}else if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n),t===!1)while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if((h?m.nodeName.toLowerCase()===r:1===m.nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[w,t]),m===b))break;return t-=e,t===d||t%d===0&&t/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||ga.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ia(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=I(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ia(function(a){var b=[],c=[],d=h(a.replace(P,"$1"));return d[u]?ia(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ia(function(a){return function(b){return ga(a,b).length>0}}),contains:ia(function(a){return a=a.replace(_,aa),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return U.test(a||"")||ga.error("unsupported lang: "+a),a=a.replace(_,aa).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:oa(!1),disabled:oa(!0),checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return X.test(a.nodeName)},input:function(a){return W.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:pa(function(){return[0]}),last:pa(function(a,b){return[b-1]}),eq:pa(function(a,b,c){return[c<0?c+b:c]}),even:pa(function(a,b){for(var c=0;c<b;c+=2)a.push(c);return a}),odd:pa(function(a,b){for(var c=1;c<b;c+=2)a.push(c);return a}),lt:pa(function(a,b,c){for(var d=c<0?c+b:c;--d>=0;)a.push(d);return a}),gt:pa(function(a,b,c){for(var d=c<0?c+b:c;++d<b;)a.push(d);return a})}},d.pseudos.nth=d.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})d.pseudos[b]=ma(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=na(b);function ra(){}ra.prototype=d.filters=d.pseudos,d.setFilters=new ra,g=ga.tokenize=function(a,b){var c,e,f,g,h,i,j,k=z[a+" "];if(k)return b?0:k.slice(0);h=a,i=[],j=d.preFilter;while(h){c&&!(e=Q.exec(h))||(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=R.exec(h))&&(c=e.shift(),f.push({value:c,type:e[0].replace(P," ")}),h=h.slice(c.length));for(g in d.filter)!(e=V[g].exec(h))||j[g]&&!(e=j[g](e))||(c=e.shift(),f.push({value:c,type:g,matches:e}),h=h.slice(c.length));if(!c)break}return b?h.length:h?ga.error(a):z(a,i).slice(0)};function sa(a){for(var b=0,c=a.length,d="";b<c;b++)d+=a[b].value;return d}function ta(a,b,c){var d=b.dir,e=b.next,f=e||d,g=c&&"parentNode"===f,h=x++;return b.first?function(b,c,e){while(b=b[d])if(1===b.nodeType||g)return a(b,c,e);return!1}:function(b,c,i){var j,k,l,m=[w,h];if(i){while(b=b[d])if((1===b.nodeType||g)&&a(b,c,i))return!0}else while(b=b[d])if(1===b.nodeType||g)if(l=b[u]||(b[u]={}),k=l[b.uniqueID]||(l[b.uniqueID]={}),e&&e===b.nodeName.toLowerCase())b=b[d]||b;else{if((j=k[f])&&j[0]===w&&j[1]===h)return m[2]=j[2];if(k[f]=m,m[2]=a(b,c,i))return!0}return!1}}function ua(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function va(a,b,c){for(var d=0,e=b.length;d<e;d++)ga(a,b[d],c);return c}function wa(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;h<i;h++)(f=a[h])&&(c&&!c(f,d,e)||(g.push(f),j&&b.push(h)));return g}function xa(a,b,c,d,e,f){return d&&!d[u]&&(d=xa(d)),e&&!e[u]&&(e=xa(e,f)),ia(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||va(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:wa(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=wa(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?I(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=wa(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):G.apply(g,r)})}function ya(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=ta(function(a){return a===b},h,!0),l=ta(function(a){return I(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];i<f;i++)if(c=d.relative[a[i].type])m=[ta(ua(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;e<f;e++)if(d.relative[a[e].type])break;return xa(i>1&&ua(m),i>1&&sa(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(P,"$1"),c,i<e&&ya(a.slice(i,e)),e<f&&ya(a=a.slice(e)),e<f&&sa(a))}m.push(c)}return ua(m)}function za(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,o,q,r=0,s="0",t=f&&[],u=[],v=j,x=f||e&&d.find.TAG("*",k),y=w+=null==v?1:Math.random()||.1,z=x.length;for(k&&(j=g===n||g||k);s!==z&&null!=(l=x[s]);s++){if(e&&l){o=0,g||l.ownerDocument===n||(m(l),h=!p);while(q=a[o++])if(q(l,g||n,h)){i.push(l);break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t.push(l))}if(r+=s,c&&s!==r){o=0;while(q=b[o++])q(t,u,g,h);if(f){if(r>0)while(s--)t[s]||u[s]||(u[s]=E.call(i));u=wa(u)}G.apply(i,u),k&&!f&&u.length>0&&r+b.length>1&&ga.uniqueSort(i)}return k&&(w=y,j=v),t};return c?ia(f):f}return h=ga.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=ya(b[c]),f[u]?d.push(f):e.push(f);f=A(a,za(e,d)),f.selector=a}return f},i=ga.select=function(a,b,c,e){var f,i,j,k,l,m="function"==typeof a&&a,n=!e&&g(a=m.selector||a);if(c=c||[],1===n.length){if(i=n[0]=n[0].slice(0),i.length>2&&"ID"===(j=i[0]).type&&9===b.nodeType&&p&&d.relative[i[1].type]){if(b=(d.find.ID(j.matches[0].replace(_,aa),b)||[])[0],!b)return c;m&&(b=b.parentNode),a=a.slice(i.shift().value.length)}f=V.needsContext.test(a)?0:i.length;while(f--){if(j=i[f],d.relative[k=j.type])break;if((l=d.find[k])&&(e=l(j.matches[0].replace(_,aa),$.test(i[0].type)&&qa(b.parentNode)||b))){if(i.splice(f,1),a=e.length&&sa(i),!a)return G.apply(c,e),c;break}}}return(m||h(a,n))(e,b,!p,c,!b||$.test(a)&&qa(b.parentNode)||b),c},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&a.compareDocumentPosition(n.createElement("fieldset"))}),ja(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||ka("type|href|height|width",function(a,b,c){if(!c)return a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ja(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ka("value",function(a,b,c){if(!c&&"input"===a.nodeName.toLowerCase())return a.defaultValue}),ja(function(a){return null==a.getAttribute("disabled")})||ka(J,function(a,b,c){var d;if(!c)return a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),ga}(a);r.find=x,r.expr=x.selectors,r.expr[":"]=r.expr.pseudos,r.uniqueSort=r.unique=x.uniqueSort,r.text=x.getText,r.isXMLDoc=x.isXML,r.contains=x.contains,r.escapeSelector=x.escape;var y=function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&r(a).is(c))break;d.push(a)}return d},z=function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c},A=r.expr.match.needsContext,B=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i,C=/^.[^:#\[\.,]*$/;function D(a,b,c){return r.isFunction(b)?r.grep(a,function(a,d){return!!b.call(a,d,a)!==c}):b.nodeType?r.grep(a,function(a){return a===b!==c}):"string"!=typeof b?r.grep(a,function(a){return i.call(b,a)>-1!==c}):C.test(b)?r.filter(b,a,c):(b=r.filter(b,a),r.grep(a,function(a){return i.call(b,a)>-1!==c&&1===a.nodeType}))}r.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?r.find.matchesSelector(d,a)?[d]:[]:r.find.matches(a,r.grep(b,function(a){return 1===a.nodeType}))},r.fn.extend({find:function(a){var b,c,d=this.length,e=this;if("string"!=typeof a)return this.pushStack(r(a).filter(function(){for(b=0;b<d;b++)if(r.contains(e[b],this))return!0}));for(c=this.pushStack([]),b=0;b<d;b++)r.find(a,e[b],c);return d>1?r.uniqueSort(c):c},filter:function(a){return this.pushStack(D(this,a||[],!1))},not:function(a){return this.pushStack(D(this,a||[],!0))},is:function(a){return!!D(this,"string"==typeof a&&A.test(a)?r(a):a||[],!1).length}});var E,F=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,G=r.fn.init=function(a,b,c){var e,f;if(!a)return this;if(c=c||E,"string"==typeof a){if(e="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:F.exec(a),!e||!e[1]&&b)return!b||b.jquery?(b||c).find(a):this.constructor(b).find(a);if(e[1]){if(b=b instanceof r?b[0]:b,r.merge(this,r.parseHTML(e[1],b&&b.nodeType?b.ownerDocument||b:d,!0)),B.test(e[1])&&r.isPlainObject(b))for(e in b)r.isFunction(this[e])?this[e](b[e]):this.attr(e,b[e]);return this}return f=d.getElementById(e[2]),f&&(this[0]=f,this.length=1),this}return a.nodeType?(this[0]=a,this.length=1,this):r.isFunction(a)?void 0!==c.ready?c.ready(a):a(r):r.makeArray(a,this)};G.prototype=r.fn,E=r(d);var H=/^(?:parents|prev(?:Until|All))/,I={children:!0,contents:!0,next:!0,prev:!0};r.fn.extend({has:function(a){var b=r(a,this),c=b.length;return this.filter(function(){for(var a=0;a<c;a++)if(r.contains(this,b[a]))return!0})},closest:function(a,b){var c,d=0,e=this.length,f=[],g="string"!=typeof a&&r(a);if(!A.test(a))for(;d<e;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&r.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?r.uniqueSort(f):f)},index:function(a){return a?"string"==typeof a?i.call(r(a),this[0]):i.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(r.uniqueSort(r.merge(this.get(),r(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function J(a,b){while((a=a[b])&&1!==a.nodeType);return a}r.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return y(a,"parentNode")},parentsUntil:function(a,b,c){return y(a,"parentNode",c)},next:function(a){return J(a,"nextSibling")},prev:function(a){return J(a,"previousSibling")},nextAll:function(a){return y(a,"nextSibling")},prevAll:function(a){return y(a,"previousSibling")},nextUntil:function(a,b,c){return y(a,"nextSibling",c)},prevUntil:function(a,b,c){return y(a,"previousSibling",c)},siblings:function(a){return z((a.parentNode||{}).firstChild,a)},children:function(a){return z(a.firstChild)},contents:function(a){return a.contentDocument||r.merge([],a.childNodes)}},function(a,b){r.fn[a]=function(c,d){var e=r.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=r.filter(d,e)),this.length>1&&(I[a]||r.uniqueSort(e),H.test(a)&&e.reverse()),this.pushStack(e)}});var K=/[^\x20\t\r\n\f]+/g;function L(a){var b={};return r.each(a.match(K)||[],function(a,c){b[c]=!0}),b}r.Callbacks=function(a){a="string"==typeof a?L(a):r.extend({},a);var b,c,d,e,f=[],g=[],h=-1,i=function(){for(e=a.once,d=b=!0;g.length;h=-1){c=g.shift();while(++h<f.length)f[h].apply(c[0],c[1])===!1&&a.stopOnFalse&&(h=f.length,c=!1)}a.memory||(c=!1),b=!1,e&&(f=c?[]:"")},j={add:function(){return f&&(c&&!b&&(h=f.length-1,g.push(c)),function d(b){r.each(b,function(b,c){r.isFunction(c)?a.unique&&j.has(c)||f.push(c):c&&c.length&&"string"!==r.type(c)&&d(c)})}(arguments),c&&!b&&i()),this},remove:function(){return r.each(arguments,function(a,b){var c;while((c=r.inArray(b,f,c))>-1)f.splice(c,1),c<=h&&h--}),this},has:function(a){return a?r.inArray(a,f)>-1:f.length>0},empty:function(){return f&&(f=[]),this},disable:function(){return e=g=[],f=c="",this},disabled:function(){return!f},lock:function(){return e=g=[],c||b||(f=c=""),this},locked:function(){return!!e},fireWith:function(a,c){return e||(c=c||[],c=[a,c.slice?c.slice():c],g.push(c),b||i()),this},fire:function(){return j.fireWith(this,arguments),this},fired:function(){return!!d}};return j};function M(a){return a}function N(a){throw a}function O(a,b,c){var d;try{a&&r.isFunction(d=a.promise)?d.call(a).done(b).fail(c):a&&r.isFunction(d=a.then)?d.call(a,b,c):b.call(void 0,a)}catch(a){c.call(void 0,a)}}r.extend({Deferred:function(b){var c=[["notify","progress",r.Callbacks("memory"),r.Callbacks("memory"),2],["resolve","done",r.Callbacks("once memory"),r.Callbacks("once memory"),0,"resolved"],["reject","fail",r.Callbacks("once memory"),r.Callbacks("once memory"),1,"rejected"]],d="pending",e={state:function(){return d},always:function(){return f.done(arguments).fail(arguments),this},"catch":function(a){return e.then(null,a)},pipe:function(){var a=arguments;return r.Deferred(function(b){r.each(c,function(c,d){var e=r.isFunction(a[d[4]])&&a[d[4]];f[d[1]](function(){var a=e&&e.apply(this,arguments);a&&r.isFunction(a.promise)?a.promise().progress(b.notify).done(b.resolve).fail(b.reject):b[d[0]+"With"](this,e?[a]:arguments)})}),a=null}).promise()},then:function(b,d,e){var f=0;function g(b,c,d,e){return function(){var h=this,i=arguments,j=function(){var a,j;if(!(b<f)){if(a=d.apply(h,i),a===c.promise())throw new TypeError("Thenable self-resolution");j=a&&("object"==typeof a||"function"==typeof a)&&a.then,r.isFunction(j)?e?j.call(a,g(f,c,M,e),g(f,c,N,e)):(f++,j.call(a,g(f,c,M,e),g(f,c,N,e),g(f,c,M,c.notifyWith))):(d!==M&&(h=void 0,i=[a]),(e||c.resolveWith)(h,i))}},k=e?j:function(){try{j()}catch(a){r.Deferred.exceptionHook&&r.Deferred.exceptionHook(a,k.stackTrace),b+1>=f&&(d!==N&&(h=void 0,i=[a]),c.rejectWith(h,i))}};b?k():(r.Deferred.getStackHook&&(k.stackTrace=r.Deferred.getStackHook()),a.setTimeout(k))}}return r.Deferred(function(a){c[0][3].add(g(0,a,r.isFunction(e)?e:M,a.notifyWith)),c[1][3].add(g(0,a,r.isFunction(b)?b:M)),c[2][3].add(g(0,a,r.isFunction(d)?d:N))}).promise()},promise:function(a){return null!=a?r.extend(a,e):e}},f={};return r.each(c,function(a,b){var g=b[2],h=b[5];e[b[1]]=g.add,h&&g.add(function(){d=h},c[3-a][2].disable,c[0][2].lock),g.add(b[3].fire),f[b[0]]=function(){return f[b[0]+"With"](this===f?void 0:this,arguments),this},f[b[0]+"With"]=g.fireWith}),e.promise(f),b&&b.call(f,f),f},when:function(a){var b=arguments.length,c=b,d=Array(c),e=f.call(arguments),g=r.Deferred(),h=function(a){return function(c){d[a]=this,e[a]=arguments.length>1?f.call(arguments):c,--b||g.resolveWith(d,e)}};if(b<=1&&(O(a,g.done(h(c)).resolve,g.reject),"pending"===g.state()||r.isFunction(e[c]&&e[c].then)))return g.then();while(c--)O(e[c],h(c),g.reject);return g.promise()}});var P=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;r.Deferred.exceptionHook=function(b,c){a.console&&a.console.warn&&b&&P.test(b.name)&&a.console.warn("jQuery.Deferred exception: "+b.message,b.stack,c)},r.readyException=function(b){a.setTimeout(function(){throw b})};var Q=r.Deferred();r.fn.ready=function(a){return Q.then(a)["catch"](function(a){r.readyException(a)}),this},r.extend({isReady:!1,readyWait:1,holdReady:function(a){a?r.readyWait++:r.ready(!0)},ready:function(a){(a===!0?--r.readyWait:r.isReady)||(r.isReady=!0,a!==!0&&--r.readyWait>0||Q.resolveWith(d,[r]))}}),r.ready.then=Q.then;function R(){d.removeEventListener("DOMContentLoaded",R),
-a.removeEventListener("load",R),r.ready()}"complete"===d.readyState||"loading"!==d.readyState&&!d.documentElement.doScroll?a.setTimeout(r.ready):(d.addEventListener("DOMContentLoaded",R),a.addEventListener("load",R));var S=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===r.type(c)){e=!0;for(h in c)S(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,r.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(r(a),c)})),b))for(;h<i;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},T=function(a){return 1===a.nodeType||9===a.nodeType||!+a.nodeType};function U(){this.expando=r.expando+U.uid++}U.uid=1,U.prototype={cache:function(a){var b=a[this.expando];return b||(b={},T(a)&&(a.nodeType?a[this.expando]=b:Object.defineProperty(a,this.expando,{value:b,configurable:!0}))),b},set:function(a,b,c){var d,e=this.cache(a);if("string"==typeof b)e[r.camelCase(b)]=c;else for(d in b)e[r.camelCase(d)]=b[d];return e},get:function(a,b){return void 0===b?this.cache(a):a[this.expando]&&a[this.expando][r.camelCase(b)]},access:function(a,b,c){return void 0===b||b&&"string"==typeof b&&void 0===c?this.get(a,b):(this.set(a,b,c),void 0!==c?c:b)},remove:function(a,b){var c,d=a[this.expando];if(void 0!==d){if(void 0!==b){r.isArray(b)?b=b.map(r.camelCase):(b=r.camelCase(b),b=b in d?[b]:b.match(K)||[]),c=b.length;while(c--)delete d[b[c]]}(void 0===b||r.isEmptyObject(d))&&(a.nodeType?a[this.expando]=void 0:delete a[this.expando])}},hasData:function(a){var b=a[this.expando];return void 0!==b&&!r.isEmptyObject(b)}};var V=new U,W=new U,X=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Y=/[A-Z]/g;function Z(a){return"true"===a||"false"!==a&&("null"===a?null:a===+a+""?+a:X.test(a)?JSON.parse(a):a)}function $(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d="data-"+b.replace(Y,"-$&").toLowerCase(),c=a.getAttribute(d),"string"==typeof c){try{c=Z(c)}catch(e){}W.set(a,b,c)}else c=void 0;return c}r.extend({hasData:function(a){return W.hasData(a)||V.hasData(a)},data:function(a,b,c){return W.access(a,b,c)},removeData:function(a,b){W.remove(a,b)},_data:function(a,b,c){return V.access(a,b,c)},_removeData:function(a,b){V.remove(a,b)}}),r.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=W.get(f),1===f.nodeType&&!V.get(f,"hasDataAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=r.camelCase(d.slice(5)),$(f,d,e[d])));V.set(f,"hasDataAttrs",!0)}return e}return"object"==typeof a?this.each(function(){W.set(this,a)}):S(this,function(b){var c;if(f&&void 0===b){if(c=W.get(f,a),void 0!==c)return c;if(c=$(f,a),void 0!==c)return c}else this.each(function(){W.set(this,a,b)})},null,b,arguments.length>1,null,!0)},removeData:function(a){return this.each(function(){W.remove(this,a)})}}),r.extend({queue:function(a,b,c){var d;if(a)return b=(b||"fx")+"queue",d=V.get(a,b),c&&(!d||r.isArray(c)?d=V.access(a,b,r.makeArray(c)):d.push(c)),d||[]},dequeue:function(a,b){b=b||"fx";var c=r.queue(a,b),d=c.length,e=c.shift(),f=r._queueHooks(a,b),g=function(){r.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return V.get(a,c)||V.access(a,c,{empty:r.Callbacks("once memory").add(function(){V.remove(a,[b+"queue",c])})})}}),r.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?r.queue(this[0],a):void 0===b?this:this.each(function(){var c=r.queue(this,a,b);r._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&r.dequeue(this,a)})},dequeue:function(a){return this.each(function(){r.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=r.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};"string"!=typeof a&&(b=a,a=void 0),a=a||"fx";while(g--)c=V.get(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}});var _=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,aa=new RegExp("^(?:([+-])=|)("+_+")([a-z%]*)$","i"),ba=["Top","Right","Bottom","Left"],ca=function(a,b){return a=b||a,"none"===a.style.display||""===a.style.display&&r.contains(a.ownerDocument,a)&&"none"===r.css(a,"display")},da=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e};function ea(a,b,c,d){var e,f=1,g=20,h=d?function(){return d.cur()}:function(){return r.css(a,b,"")},i=h(),j=c&&c[3]||(r.cssNumber[b]?"":"px"),k=(r.cssNumber[b]||"px"!==j&&+i)&&aa.exec(r.css(a,b));if(k&&k[3]!==j){j=j||k[3],c=c||[],k=+i||1;do f=f||".5",k/=f,r.style(a,b,k+j);while(f!==(f=h()/i)&&1!==f&&--g)}return c&&(k=+k||+i||0,e=c[1]?k+(c[1]+1)*c[2]:+c[2],d&&(d.unit=j,d.start=k,d.end=e)),e}var fa={};function ga(a){var b,c=a.ownerDocument,d=a.nodeName,e=fa[d];return e?e:(b=c.body.appendChild(c.createElement(d)),e=r.css(b,"display"),b.parentNode.removeChild(b),"none"===e&&(e="block"),fa[d]=e,e)}function ha(a,b){for(var c,d,e=[],f=0,g=a.length;f<g;f++)d=a[f],d.style&&(c=d.style.display,b?("none"===c&&(e[f]=V.get(d,"display")||null,e[f]||(d.style.display="")),""===d.style.display&&ca(d)&&(e[f]=ga(d))):"none"!==c&&(e[f]="none",V.set(d,"display",c)));for(f=0;f<g;f++)null!=e[f]&&(a[f].style.display=e[f]);return a}r.fn.extend({show:function(){return ha(this,!0)},hide:function(){return ha(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){ca(this)?r(this).show():r(this).hide()})}});var ia=/^(?:checkbox|radio)$/i,ja=/<([a-z][^\/\0>\x20\t\r\n\f]+)/i,ka=/^$|\/(?:java|ecma)script/i,la={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};la.optgroup=la.option,la.tbody=la.tfoot=la.colgroup=la.caption=la.thead,la.th=la.td;function ma(a,b){var c;return c="undefined"!=typeof a.getElementsByTagName?a.getElementsByTagName(b||"*"):"undefined"!=typeof a.querySelectorAll?a.querySelectorAll(b||"*"):[],void 0===b||b&&r.nodeName(a,b)?r.merge([a],c):c}function na(a,b){for(var c=0,d=a.length;c<d;c++)V.set(a[c],"globalEval",!b||V.get(b[c],"globalEval"))}var oa=/<|&#?\w+;/;function pa(a,b,c,d,e){for(var f,g,h,i,j,k,l=b.createDocumentFragment(),m=[],n=0,o=a.length;n<o;n++)if(f=a[n],f||0===f)if("object"===r.type(f))r.merge(m,f.nodeType?[f]:f);else if(oa.test(f)){g=g||l.appendChild(b.createElement("div")),h=(ja.exec(f)||["",""])[1].toLowerCase(),i=la[h]||la._default,g.innerHTML=i[1]+r.htmlPrefilter(f)+i[2],k=i[0];while(k--)g=g.lastChild;r.merge(m,g.childNodes),g=l.firstChild,g.textContent=""}else m.push(b.createTextNode(f));l.textContent="",n=0;while(f=m[n++])if(d&&r.inArray(f,d)>-1)e&&e.push(f);else if(j=r.contains(f.ownerDocument,f),g=ma(l.appendChild(f),"script"),j&&na(g),c){k=0;while(f=g[k++])ka.test(f.type||"")&&c.push(f)}return l}!function(){var a=d.createDocumentFragment(),b=a.appendChild(d.createElement("div")),c=d.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),o.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="<textarea>x</textarea>",o.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var qa=d.documentElement,ra=/^key/,sa=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,ta=/^([^.]*)(?:\.(.+)|)/;function ua(){return!0}function va(){return!1}function wa(){try{return d.activeElement}catch(a){}}function xa(a,b,c,d,e,f){var g,h;if("object"==typeof b){"string"!=typeof c&&(d=d||c,c=void 0);for(h in b)xa(a,h,c,d,b[h],f);return a}if(null==d&&null==e?(e=c,d=c=void 0):null==e&&("string"==typeof c?(e=d,d=void 0):(e=d,d=c,c=void 0)),e===!1)e=va;else if(!e)return a;return 1===f&&(g=e,e=function(a){return r().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=r.guid++)),a.each(function(){r.event.add(this,b,e,d,c)})}r.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=V.get(a);if(q){c.handler&&(f=c,c=f.handler,e=f.selector),e&&r.find.matchesSelector(qa,e),c.guid||(c.guid=r.guid++),(i=q.events)||(i=q.events={}),(g=q.handle)||(g=q.handle=function(b){return"undefined"!=typeof r&&r.event.triggered!==b.type?r.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(K)||[""],j=b.length;while(j--)h=ta.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n&&(l=r.event.special[n]||{},n=(e?l.delegateType:l.bindType)||n,l=r.event.special[n]||{},k=r.extend({type:n,origType:p,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&r.expr.match.needsContext.test(e),namespace:o.join(".")},f),(m=i[n])||(m=i[n]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,o,g)!==!1||a.addEventListener&&a.addEventListener(n,g)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),r.event.global[n]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=V.hasData(a)&&V.get(a);if(q&&(i=q.events)){b=(b||"").match(K)||[""],j=b.length;while(j--)if(h=ta.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n){l=r.event.special[n]||{},n=(d?l.delegateType:l.bindType)||n,m=i[n]||[],h=h[2]&&new RegExp("(^|\\.)"+o.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&p!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,o,q.handle)!==!1||r.removeEvent(a,n,q.handle),delete i[n])}else for(n in i)r.event.remove(a,n+b[j],c,d,!0);r.isEmptyObject(i)&&V.remove(a,"handle events")}},dispatch:function(a){var b=r.event.fix(a),c,d,e,f,g,h,i=new Array(arguments.length),j=(V.get(this,"events")||{})[b.type]||[],k=r.event.special[b.type]||{};for(i[0]=b,c=1;c<arguments.length;c++)i[c]=arguments[c];if(b.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,b)!==!1){h=r.event.handlers.call(this,b,j),c=0;while((f=h[c++])&&!b.isPropagationStopped()){b.currentTarget=f.elem,d=0;while((g=f.handlers[d++])&&!b.isImmediatePropagationStopped())b.rnamespace&&!b.rnamespace.test(g.namespace)||(b.handleObj=g,b.data=g.data,e=((r.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==e&&(b.result=e)===!1&&(b.preventDefault(),b.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,b),b.result}},handlers:function(a,b){var c,d,e,f,g,h=[],i=b.delegateCount,j=a.target;if(i&&j.nodeType&&!("click"===a.type&&a.button>=1))for(;j!==this;j=j.parentNode||this)if(1===j.nodeType&&("click"!==a.type||j.disabled!==!0)){for(f=[],g={},c=0;c<i;c++)d=b[c],e=d.selector+" ",void 0===g[e]&&(g[e]=d.needsContext?r(e,this).index(j)>-1:r.find(e,this,null,[j]).length),g[e]&&f.push(d);f.length&&h.push({elem:j,handlers:f})}return j=this,i<b.length&&h.push({elem:j,handlers:b.slice(i)}),h},addProp:function(a,b){Object.defineProperty(r.Event.prototype,a,{enumerable:!0,configurable:!0,get:r.isFunction(b)?function(){if(this.originalEvent)return b(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[a]},set:function(b){Object.defineProperty(this,a,{enumerable:!0,configurable:!0,writable:!0,value:b})}})},fix:function(a){return a[r.expando]?a:new r.Event(a)},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==wa()&&this.focus)return this.focus(),!1},delegateType:"focusin"},blur:{trigger:function(){if(this===wa()&&this.blur)return this.blur(),!1},delegateType:"focusout"},click:{trigger:function(){if("checkbox"===this.type&&this.click&&r.nodeName(this,"input"))return this.click(),!1},_default:function(a){return r.nodeName(a.target,"a")}},beforeunload:{postDispatch:function(a){void 0!==a.result&&a.originalEvent&&(a.originalEvent.returnValue=a.result)}}}},r.removeEvent=function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c)},r.Event=function(a,b){return this instanceof r.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?ua:va,this.target=a.target&&3===a.target.nodeType?a.target.parentNode:a.target,this.currentTarget=a.currentTarget,this.relatedTarget=a.relatedTarget):this.type=a,b&&r.extend(this,b),this.timeStamp=a&&a.timeStamp||r.now(),void(this[r.expando]=!0)):new r.Event(a,b)},r.Event.prototype={constructor:r.Event,isDefaultPrevented:va,isPropagationStopped:va,isImmediatePropagationStopped:va,isSimulated:!1,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=ua,a&&!this.isSimulated&&a.preventDefault()},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=ua,a&&!this.isSimulated&&a.stopPropagation()},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=ua,a&&!this.isSimulated&&a.stopImmediatePropagation(),this.stopPropagation()}},r.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(a){var b=a.button;return null==a.which&&ra.test(a.type)?null!=a.charCode?a.charCode:a.keyCode:!a.which&&void 0!==b&&sa.test(a.type)?1&b?1:2&b?3:4&b?2:0:a.which}},r.event.addProp),r.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(a,b){r.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return e&&(e===d||r.contains(d,e))||(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),r.fn.extend({on:function(a,b,c,d){return xa(this,a,b,c,d)},one:function(a,b,c,d){return xa(this,a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,r(a.delegateTarget).off(d.namespace?d.origType+"."+d.namespace:d.origType,d.selector,d.handler),this;if("object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return b!==!1&&"function"!=typeof b||(c=b,b=void 0),c===!1&&(c=va),this.each(function(){r.event.remove(this,a,c,b)})}});var ya=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,za=/<script|<style|<link/i,Aa=/checked\s*(?:[^=]|=\s*.checked.)/i,Ba=/^true\/(.*)/,Ca=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function Da(a,b){return r.nodeName(a,"table")&&r.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a:a}function Ea(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function Fa(a){var b=Ba.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function Ga(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(V.hasData(a)&&(f=V.access(a),g=V.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;c<d;c++)r.event.add(b,e,j[e][c])}W.hasData(a)&&(h=W.access(a),i=r.extend({},h),W.set(b,i))}}function Ha(a,b){var c=b.nodeName.toLowerCase();"input"===c&&ia.test(a.type)?b.checked=a.checked:"input"!==c&&"textarea"!==c||(b.defaultValue=a.defaultValue)}function Ia(a,b,c,d){b=g.apply([],b);var e,f,h,i,j,k,l=0,m=a.length,n=m-1,q=b[0],s=r.isFunction(q);if(s||m>1&&"string"==typeof q&&!o.checkClone&&Aa.test(q))return a.each(function(e){var f=a.eq(e);s&&(b[0]=q.call(this,e,f.html())),Ia(f,b,c,d)});if(m&&(e=pa(b,a[0].ownerDocument,!1,a,d),f=e.firstChild,1===e.childNodes.length&&(e=f),f||d)){for(h=r.map(ma(e,"script"),Ea),i=h.length;l<m;l++)j=e,l!==n&&(j=r.clone(j,!0,!0),i&&r.merge(h,ma(j,"script"))),c.call(a[l],j,l);if(i)for(k=h[h.length-1].ownerDocument,r.map(h,Fa),l=0;l<i;l++)j=h[l],ka.test(j.type||"")&&!V.access(j,"globalEval")&&r.contains(k,j)&&(j.src?r._evalUrl&&r._evalUrl(j.src):p(j.textContent.replace(Ca,""),k))}return a}function Ja(a,b,c){for(var d,e=b?r.filter(b,a):a,f=0;null!=(d=e[f]);f++)c||1!==d.nodeType||r.cleanData(ma(d)),d.parentNode&&(c&&r.contains(d.ownerDocument,d)&&na(ma(d,"script")),d.parentNode.removeChild(d));return a}r.extend({htmlPrefilter:function(a){return a.replace(ya,"<$1></$2>")},clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=r.contains(a.ownerDocument,a);if(!(o.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||r.isXMLDoc(a)))for(g=ma(h),f=ma(a),d=0,e=f.length;d<e;d++)Ha(f[d],g[d]);if(b)if(c)for(f=f||ma(a),g=g||ma(h),d=0,e=f.length;d<e;d++)Ga(f[d],g[d]);else Ga(a,h);return g=ma(h,"script"),g.length>0&&na(g,!i&&ma(a,"script")),h},cleanData:function(a){for(var b,c,d,e=r.event.special,f=0;void 0!==(c=a[f]);f++)if(T(c)){if(b=c[V.expando]){if(b.events)for(d in b.events)e[d]?r.event.remove(c,d):r.removeEvent(c,d,b.handle);c[V.expando]=void 0}c[W.expando]&&(c[W.expando]=void 0)}}}),r.fn.extend({detach:function(a){return Ja(this,a,!0)},remove:function(a){return Ja(this,a)},text:function(a){return S(this,function(a){return void 0===a?r.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=a)})},null,a,arguments.length)},append:function(){return Ia(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Da(this,a);b.appendChild(a)}})},prepend:function(){return Ia(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Da(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return Ia(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return Ia(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(r.cleanData(ma(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null!=a&&a,b=null==b?a:b,this.map(function(){return r.clone(this,a,b)})},html:function(a){return S(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!za.test(a)&&!la[(ja.exec(a)||["",""])[1].toLowerCase()]){a=r.htmlPrefilter(a);try{for(;c<d;c++)b=this[c]||{},1===b.nodeType&&(r.cleanData(ma(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=[];return Ia(this,arguments,function(b){var c=this.parentNode;r.inArray(this,a)<0&&(r.cleanData(ma(this)),c&&c.replaceChild(b,this))},a)}}),r.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){r.fn[a]=function(a){for(var c,d=[],e=r(a),f=e.length-1,g=0;g<=f;g++)c=g===f?this:this.clone(!0),r(e[g])[b](c),h.apply(d,c.get());return this.pushStack(d)}});var Ka=/^margin/,La=new RegExp("^("+_+")(?!px)[a-z%]+$","i"),Ma=function(b){var c=b.ownerDocument.defaultView;return c&&c.opener||(c=a),c.getComputedStyle(b)};!function(){function b(){if(i){i.style.cssText="box-sizing:border-box;position:relative;display:block;margin:auto;border:1px;padding:1px;top:1%;width:50%",i.innerHTML="",qa.appendChild(h);var b=a.getComputedStyle(i);c="1%"!==b.top,g="2px"===b.marginLeft,e="4px"===b.width,i.style.marginRight="50%",f="4px"===b.marginRight,qa.removeChild(h),i=null}}var c,e,f,g,h=d.createElement("div"),i=d.createElement("div");i.style&&(i.style.backgroundClip="content-box",i.cloneNode(!0).style.backgroundClip="",o.clearCloneStyle="content-box"===i.style.backgroundClip,h.style.cssText="border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute",h.appendChild(i),r.extend(o,{pixelPosition:function(){return b(),c},boxSizingReliable:function(){return b(),e},pixelMarginRight:function(){return b(),f},reliableMarginLeft:function(){return b(),g}}))}();function Na(a,b,c){var d,e,f,g,h=a.style;return c=c||Ma(a),c&&(g=c.getPropertyValue(b)||c[b],""!==g||r.contains(a.ownerDocument,a)||(g=r.style(a,b)),!o.pixelMarginRight()&&La.test(g)&&Ka.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f)),void 0!==g?g+"":g}function Oa(a,b){return{get:function(){return a()?void delete this.get:(this.get=b).apply(this,arguments)}}}var Pa=/^(none|table(?!-c[ea]).+)/,Qa={position:"absolute",visibility:"hidden",display:"block"},Ra={letterSpacing:"0",fontWeight:"400"},Sa=["Webkit","Moz","ms"],Ta=d.createElement("div").style;function Ua(a){if(a in Ta)return a;var b=a[0].toUpperCase()+a.slice(1),c=Sa.length;while(c--)if(a=Sa[c]+b,a in Ta)return a}function Va(a,b,c){var d=aa.exec(b);return d?Math.max(0,d[2]-(c||0))+(d[3]||"px"):b}function Wa(a,b,c,d,e){var f,g=0;for(f=c===(d?"border":"content")?4:"width"===b?1:0;f<4;f+=2)"margin"===c&&(g+=r.css(a,c+ba[f],!0,e)),d?("content"===c&&(g-=r.css(a,"padding"+ba[f],!0,e)),"margin"!==c&&(g-=r.css(a,"border"+ba[f]+"Width",!0,e))):(g+=r.css(a,"padding"+ba[f],!0,e),"padding"!==c&&(g+=r.css(a,"border"+ba[f]+"Width",!0,e)));return g}function Xa(a,b,c){var d,e=!0,f=Ma(a),g="border-box"===r.css(a,"boxSizing",!1,f);if(a.getClientRects().length&&(d=a.getBoundingClientRect()[b]),d<=0||null==d){if(d=Na(a,b,f),(d<0||null==d)&&(d=a.style[b]),La.test(d))return d;e=g&&(o.boxSizingReliable()||d===a.style[b]),d=parseFloat(d)||0}return d+Wa(a,b,c||(g?"border":"content"),e,f)+"px"}r.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=Na(a,"opacity");return""===c?"1":c}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":"cssFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=r.camelCase(b),i=a.style;return b=r.cssProps[h]||(r.cssProps[h]=Ua(h)||h),g=r.cssHooks[b]||r.cssHooks[h],void 0===c?g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:i[b]:(f=typeof c,"string"===f&&(e=aa.exec(c))&&e[1]&&(c=ea(a,b,e),f="number"),null!=c&&c===c&&("number"===f&&(c+=e&&e[3]||(r.cssNumber[h]?"":"px")),o.clearCloneStyle||""!==c||0!==b.indexOf("background")||(i[b]="inherit"),g&&"set"in g&&void 0===(c=g.set(a,c,d))||(i[b]=c)),void 0)}},css:function(a,b,c,d){var e,f,g,h=r.camelCase(b);return b=r.cssProps[h]||(r.cssProps[h]=Ua(h)||h),g=r.cssHooks[b]||r.cssHooks[h],g&&"get"in g&&(e=g.get(a,!0,c)),void 0===e&&(e=Na(a,b,d)),"normal"===e&&b in Ra&&(e=Ra[b]),""===c||c?(f=parseFloat(e),c===!0||isFinite(f)?f||0:e):e}}),r.each(["height","width"],function(a,b){r.cssHooks[b]={get:function(a,c,d){if(c)return!Pa.test(r.css(a,"display"))||a.getClientRects().length&&a.getBoundingClientRect().width?Xa(a,b,d):da(a,Qa,function(){return Xa(a,b,d)})},set:function(a,c,d){var e,f=d&&Ma(a),g=d&&Wa(a,b,d,"border-box"===r.css(a,"boxSizing",!1,f),f);return g&&(e=aa.exec(c))&&"px"!==(e[3]||"px")&&(a.style[b]=c,c=r.css(a,b)),Va(a,c,g)}}}),r.cssHooks.marginLeft=Oa(o.reliableMarginLeft,function(a,b){if(b)return(parseFloat(Na(a,"marginLeft"))||a.getBoundingClientRect().left-da(a,{marginLeft:0},function(){return a.getBoundingClientRect().left}))+"px"}),r.each({margin:"",padding:"",border:"Width"},function(a,b){r.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];d<4;d++)e[a+ba[d]+b]=f[d]||f[d-2]||f[0];return e}},Ka.test(a)||(r.cssHooks[a+b].set=Va)}),r.fn.extend({css:function(a,b){return S(this,function(a,b,c){var d,e,f={},g=0;if(r.isArray(b)){for(d=Ma(a),e=b.length;g<e;g++)f[b[g]]=r.css(a,b[g],!1,d);return f}return void 0!==c?r.style(a,b,c):r.css(a,b)},a,b,arguments.length>1)}});function Ya(a,b,c,d,e){return new Ya.prototype.init(a,b,c,d,e)}r.Tween=Ya,Ya.prototype={constructor:Ya,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||r.easing._default,this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(r.cssNumber[c]?"":"px")},cur:function(){var a=Ya.propHooks[this.prop];return a&&a.get?a.get(this):Ya.propHooks._default.get(this)},run:function(a){var b,c=Ya.propHooks[this.prop];return this.options.duration?this.pos=b=r.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):this.pos=b=a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):Ya.propHooks._default.set(this),this}},Ya.prototype.init.prototype=Ya.prototype,Ya.propHooks={_default:{get:function(a){var b;return 1!==a.elem.nodeType||null!=a.elem[a.prop]&&null==a.elem.style[a.prop]?a.elem[a.prop]:(b=r.css(a.elem,a.prop,""),b&&"auto"!==b?b:0)},set:function(a){r.fx.step[a.prop]?r.fx.step[a.prop](a):1!==a.elem.nodeType||null==a.elem.style[r.cssProps[a.prop]]&&!r.cssHooks[a.prop]?a.elem[a.prop]=a.now:r.style(a.elem,a.prop,a.now+a.unit)}}},Ya.propHooks.scrollTop=Ya.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},r.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2},_default:"swing"},r.fx=Ya.prototype.init,r.fx.step={};var Za,$a,_a=/^(?:toggle|show|hide)$/,ab=/queueHooks$/;function bb(){$a&&(a.requestAnimationFrame(bb),r.fx.tick())}function cb(){return a.setTimeout(function(){Za=void 0}),Za=r.now()}function db(a,b){var c,d=0,e={height:a};for(b=b?1:0;d<4;d+=2-b)c=ba[d],e["margin"+c]=e["padding"+c]=a;return b&&(e.opacity=e.width=a),e}function eb(a,b,c){for(var d,e=(hb.tweeners[b]||[]).concat(hb.tweeners["*"]),f=0,g=e.length;f<g;f++)if(d=e[f].call(c,b,a))return d}function fb(a,b,c){var d,e,f,g,h,i,j,k,l="width"in b||"height"in b,m=this,n={},o=a.style,p=a.nodeType&&ca(a),q=V.get(a,"fxshow");c.queue||(g=r._queueHooks(a,"fx"),null==g.unqueued&&(g.unqueued=0,h=g.empty.fire,g.empty.fire=function(){g.unqueued||h()}),g.unqueued++,m.always(function(){m.always(function(){g.unqueued--,r.queue(a,"fx").length||g.empty.fire()})}));for(d in b)if(e=b[d],_a.test(e)){if(delete b[d],f=f||"toggle"===e,e===(p?"hide":"show")){if("show"!==e||!q||void 0===q[d])continue;p=!0}n[d]=q&&q[d]||r.style(a,d)}if(i=!r.isEmptyObject(b),i||!r.isEmptyObject(n)){l&&1===a.nodeType&&(c.overflow=[o.overflow,o.overflowX,o.overflowY],j=q&&q.display,null==j&&(j=V.get(a,"display")),k=r.css(a,"display"),"none"===k&&(j?k=j:(ha([a],!0),j=a.style.display||j,k=r.css(a,"display"),ha([a]))),("inline"===k||"inline-block"===k&&null!=j)&&"none"===r.css(a,"float")&&(i||(m.done(function(){o.display=j}),null==j&&(k=o.display,j="none"===k?"":k)),o.display="inline-block")),c.overflow&&(o.overflow="hidden",m.always(function(){o.overflow=c.overflow[0],o.overflowX=c.overflow[1],o.overflowY=c.overflow[2]})),i=!1;for(d in n)i||(q?"hidden"in q&&(p=q.hidden):q=V.access(a,"fxshow",{display:j}),f&&(q.hidden=!p),p&&ha([a],!0),m.done(function(){p||ha([a]),V.remove(a,"fxshow");for(d in n)r.style(a,d,n[d])})),i=eb(p?q[d]:0,d,m),d in q||(q[d]=i.start,p&&(i.end=i.start,i.start=0))}}function gb(a,b){var c,d,e,f,g;for(c in a)if(d=r.camelCase(c),e=b[d],f=a[c],r.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=r.cssHooks[d],g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function hb(a,b,c){var d,e,f=0,g=hb.prefilters.length,h=r.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=Za||cb(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;g<i;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),f<1&&i?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:r.extend({},b),opts:r.extend(!0,{specialEasing:{},easing:r.easing._default},c),originalProperties:b,originalOptions:c,startTime:Za||cb(),duration:c.duration,tweens:[],createTween:function(b,c){var d=r.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;c<d;c++)j.tweens[c].run(1);return b?(h.notifyWith(a,[j,1,0]),h.resolveWith(a,[j,b])):h.rejectWith(a,[j,b]),this}}),k=j.props;for(gb(k,j.opts.specialEasing);f<g;f++)if(d=hb.prefilters[f].call(j,a,k,j.opts))return r.isFunction(d.stop)&&(r._queueHooks(j.elem,j.opts.queue).stop=r.proxy(d.stop,d)),d;return r.map(k,eb,j),r.isFunction(j.opts.start)&&j.opts.start.call(a,j),r.fx.timer(r.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}r.Animation=r.extend(hb,{tweeners:{"*":[function(a,b){var c=this.createTween(a,b);return ea(c.elem,a,aa.exec(b),c),c}]},tweener:function(a,b){r.isFunction(a)?(b=a,a=["*"]):a=a.match(K);for(var c,d=0,e=a.length;d<e;d++)c=a[d],hb.tweeners[c]=hb.tweeners[c]||[],hb.tweeners[c].unshift(b)},prefilters:[fb],prefilter:function(a,b){b?hb.prefilters.unshift(a):hb.prefilters.push(a)}}),r.speed=function(a,b,c){var e=a&&"object"==typeof a?r.extend({},a):{complete:c||!c&&b||r.isFunction(a)&&a,duration:a,easing:c&&b||b&&!r.isFunction(b)&&b};return r.fx.off||d.hidden?e.duration=0:"number"!=typeof e.duration&&(e.duration in r.fx.speeds?e.duration=r.fx.speeds[e.duration]:e.duration=r.fx.speeds._default),null!=e.queue&&e.queue!==!0||(e.queue="fx"),e.old=e.complete,e.complete=function(){r.isFunction(e.old)&&e.old.call(this),e.queue&&r.dequeue(this,e.queue)},e},r.fn.extend({fadeTo:function(a,b,c,d){return this.filter(ca).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=r.isEmptyObject(a),f=r.speed(b,c,d),g=function(){var b=hb(this,r.extend({},a),f);(e||V.get(this,"finish"))&&b.stop(!0)};return g.finish=g,e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return"string"!=typeof a&&(c=b,b=a,a=void 0),b&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,e=null!=a&&a+"queueHooks",f=r.timers,g=V.get(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&ab.test(e)&&d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&&f[e].queue!==a||(f[e].anim.stop(c),b=!1,f.splice(e,1));!b&&c||r.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||"fx"),this.each(function(){var b,c=V.get(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=r.timers,g=d?d.length:0;for(c.finish=!0,r.queue(this,a,[]),e&&e.stop&&e.stop.call(this,!0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!0),f.splice(b,1));for(b=0;b<g;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),r.each(["toggle","show","hide"],function(a,b){var c=r.fn[b];r.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(db(b,!0),a,d,e)}}),r.each({slideDown:db("show"),slideUp:db("hide"),slideToggle:db("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){r.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),r.timers=[],r.fx.tick=function(){var a,b=0,c=r.timers;for(Za=r.now();b<c.length;b++)a=c[b],a()||c[b]!==a||c.splice(b--,1);c.length||r.fx.stop(),Za=void 0},r.fx.timer=function(a){r.timers.push(a),a()?r.fx.start():r.timers.pop()},r.fx.interval=13,r.fx.start=function(){$a||($a=a.requestAnimationFrame?a.requestAnimationFrame(bb):a.setInterval(r.fx.tick,r.fx.interval))},r.fx.stop=function(){a.cancelAnimationFrame?a.cancelAnimationFrame($a):a.clearInterval($a),$a=null},r.fx.speeds={slow:600,fast:200,_default:400},r.fn.delay=function(b,c){return b=r.fx?r.fx.speeds[b]||b:b,c=c||"fx",this.queue(c,function(c,d){var e=a.setTimeout(c,b);d.stop=function(){a.clearTimeout(e)}})},function(){var a=d.createElement("input"),b=d.createElement("select"),c=b.appendChild(d.createElement("option"));a.type="checkbox",o.checkOn=""!==a.value,o.optSelected=c.selected,a=d.createElement("input"),a.value="t",a.type="radio",o.radioValue="t"===a.value}();var ib,jb=r.expr.attrHandle;r.fn.extend({attr:function(a,b){return S(this,r.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){r.removeAttr(this,a)})}}),r.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return"undefined"==typeof a.getAttribute?r.prop(a,b,c):(1===f&&r.isXMLDoc(a)||(e=r.attrHooks[b.toLowerCase()]||(r.expr.match.bool.test(b)?ib:void 0)),
-void 0!==c?null===c?void r.removeAttr(a,b):e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:(a.setAttribute(b,c+""),c):e&&"get"in e&&null!==(d=e.get(a,b))?d:(d=r.find.attr(a,b),null==d?void 0:d))},attrHooks:{type:{set:function(a,b){if(!o.radioValue&&"radio"===b&&r.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}},removeAttr:function(a,b){var c,d=0,e=b&&b.match(K);if(e&&1===a.nodeType)while(c=e[d++])a.removeAttribute(c)}}),ib={set:function(a,b,c){return b===!1?r.removeAttr(a,c):a.setAttribute(c,c),c}},r.each(r.expr.match.bool.source.match(/\w+/g),function(a,b){var c=jb[b]||r.find.attr;jb[b]=function(a,b,d){var e,f,g=b.toLowerCase();return d||(f=jb[g],jb[g]=e,e=null!=c(a,b,d)?g:null,jb[g]=f),e}});var kb=/^(?:input|select|textarea|button)$/i,lb=/^(?:a|area)$/i;r.fn.extend({prop:function(a,b){return S(this,r.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[r.propFix[a]||a]})}}),r.extend({prop:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return 1===f&&r.isXMLDoc(a)||(b=r.propFix[b]||b,e=r.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=r.find.attr(a,"tabindex");return b?parseInt(b,10):kb.test(a.nodeName)||lb.test(a.nodeName)&&a.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),o.optSelected||(r.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null},set:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}}),r.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){r.propFix[this.toLowerCase()]=this});function mb(a){var b=a.match(K)||[];return b.join(" ")}function nb(a){return a.getAttribute&&a.getAttribute("class")||""}r.fn.extend({addClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).addClass(a.call(this,b,nb(this)))});if("string"==typeof a&&a){b=a.match(K)||[];while(c=this[i++])if(e=nb(c),d=1===c.nodeType&&" "+mb(e)+" "){g=0;while(f=b[g++])d.indexOf(" "+f+" ")<0&&(d+=f+" ");h=mb(d),e!==h&&c.setAttribute("class",h)}}return this},removeClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).removeClass(a.call(this,b,nb(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof a&&a){b=a.match(K)||[];while(c=this[i++])if(e=nb(c),d=1===c.nodeType&&" "+mb(e)+" "){g=0;while(f=b[g++])while(d.indexOf(" "+f+" ")>-1)d=d.replace(" "+f+" "," ");h=mb(d),e!==h&&c.setAttribute("class",h)}}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):r.isFunction(a)?this.each(function(c){r(this).toggleClass(a.call(this,c,nb(this),b),b)}):this.each(function(){var b,d,e,f;if("string"===c){d=0,e=r(this),f=a.match(K)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else void 0!==a&&"boolean"!==c||(b=nb(this),b&&V.set(this,"__className__",b),this.setAttribute&&this.setAttribute("class",b||a===!1?"":V.get(this,"__className__")||""))})},hasClass:function(a){var b,c,d=0;b=" "+a+" ";while(c=this[d++])if(1===c.nodeType&&(" "+mb(nb(c))+" ").indexOf(b)>-1)return!0;return!1}});var ob=/\r/g;r.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=r.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,r(this).val()):a,null==e?e="":"number"==typeof e?e+="":r.isArray(e)&&(e=r.map(e,function(a){return null==a?"":a+""})),b=r.valHooks[this.type]||r.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=r.valHooks[e.type]||r.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(ob,""):null==c?"":c)}}}),r.extend({valHooks:{option:{get:function(a){var b=r.find.attr(a,"value");return null!=b?b:mb(r.text(a))}},select:{get:function(a){var b,c,d,e=a.options,f=a.selectedIndex,g="select-one"===a.type,h=g?null:[],i=g?f+1:e.length;for(d=f<0?i:g?f:0;d<i;d++)if(c=e[d],(c.selected||d===f)&&!c.disabled&&(!c.parentNode.disabled||!r.nodeName(c.parentNode,"optgroup"))){if(b=r(c).val(),g)return b;h.push(b)}return h},set:function(a,b){var c,d,e=a.options,f=r.makeArray(b),g=e.length;while(g--)d=e[g],(d.selected=r.inArray(r.valHooks.option.get(d),f)>-1)&&(c=!0);return c||(a.selectedIndex=-1),f}}}}),r.each(["radio","checkbox"],function(){r.valHooks[this]={set:function(a,b){if(r.isArray(b))return a.checked=r.inArray(r(a).val(),b)>-1}},o.checkOn||(r.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var pb=/^(?:focusinfocus|focusoutblur)$/;r.extend(r.event,{trigger:function(b,c,e,f){var g,h,i,j,k,m,n,o=[e||d],p=l.call(b,"type")?b.type:b,q=l.call(b,"namespace")?b.namespace.split("."):[];if(h=i=e=e||d,3!==e.nodeType&&8!==e.nodeType&&!pb.test(p+r.event.triggered)&&(p.indexOf(".")>-1&&(q=p.split("."),p=q.shift(),q.sort()),k=p.indexOf(":")<0&&"on"+p,b=b[r.expando]?b:new r.Event(p,"object"==typeof b&&b),b.isTrigger=f?2:3,b.namespace=q.join("."),b.rnamespace=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=e),c=null==c?[b]:r.makeArray(c,[b]),n=r.event.special[p]||{},f||!n.trigger||n.trigger.apply(e,c)!==!1)){if(!f&&!n.noBubble&&!r.isWindow(e)){for(j=n.delegateType||p,pb.test(j+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),i=h;i===(e.ownerDocument||d)&&o.push(i.defaultView||i.parentWindow||a)}g=0;while((h=o[g++])&&!b.isPropagationStopped())b.type=g>1?j:n.bindType||p,m=(V.get(h,"events")||{})[b.type]&&V.get(h,"handle"),m&&m.apply(h,c),m=k&&h[k],m&&m.apply&&T(h)&&(b.result=m.apply(h,c),b.result===!1&&b.preventDefault());return b.type=p,f||b.isDefaultPrevented()||n._default&&n._default.apply(o.pop(),c)!==!1||!T(e)||k&&r.isFunction(e[p])&&!r.isWindow(e)&&(i=e[k],i&&(e[k]=null),r.event.triggered=p,e[p](),r.event.triggered=void 0,i&&(e[k]=i)),b.result}},simulate:function(a,b,c){var d=r.extend(new r.Event,c,{type:a,isSimulated:!0});r.event.trigger(d,null,b)}}),r.fn.extend({trigger:function(a,b){return this.each(function(){r.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];if(c)return r.event.trigger(a,b,c,!0)}}),r.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(a,b){r.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),r.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),o.focusin="onfocusin"in a,o.focusin||r.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){r.event.simulate(b,a.target,r.event.fix(a))};r.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=V.access(d,b);e||d.addEventListener(a,c,!0),V.access(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=V.access(d,b)-1;e?V.access(d,b,e):(d.removeEventListener(a,c,!0),V.remove(d,b))}}});var qb=a.location,rb=r.now(),sb=/\?/;r.parseXML=function(b){var c;if(!b||"string"!=typeof b)return null;try{c=(new a.DOMParser).parseFromString(b,"text/xml")}catch(d){c=void 0}return c&&!c.getElementsByTagName("parsererror").length||r.error("Invalid XML: "+b),c};var tb=/\[\]$/,ub=/\r?\n/g,vb=/^(?:submit|button|image|reset|file)$/i,wb=/^(?:input|select|textarea|keygen)/i;function xb(a,b,c,d){var e;if(r.isArray(b))r.each(b,function(b,e){c||tb.test(a)?d(a,e):xb(a+"["+("object"==typeof e&&null!=e?b:"")+"]",e,c,d)});else if(c||"object"!==r.type(b))d(a,b);else for(e in b)xb(a+"["+e+"]",b[e],c,d)}r.param=function(a,b){var c,d=[],e=function(a,b){var c=r.isFunction(b)?b():b;d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(null==c?"":c)};if(r.isArray(a)||a.jquery&&!r.isPlainObject(a))r.each(a,function(){e(this.name,this.value)});else for(c in a)xb(c,a[c],b,e);return d.join("&")},r.fn.extend({serialize:function(){return r.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=r.prop(this,"elements");return a?r.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!r(this).is(":disabled")&&wb.test(this.nodeName)&&!vb.test(a)&&(this.checked||!ia.test(a))}).map(function(a,b){var c=r(this).val();return null==c?null:r.isArray(c)?r.map(c,function(a){return{name:b.name,value:a.replace(ub,"\r\n")}}):{name:b.name,value:c.replace(ub,"\r\n")}}).get()}});var yb=/%20/g,zb=/#.*$/,Ab=/([?&])_=[^&]*/,Bb=/^(.*?):[ \t]*([^\r\n]*)$/gm,Cb=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Db=/^(?:GET|HEAD)$/,Eb=/^\/\//,Fb={},Gb={},Hb="*/".concat("*"),Ib=d.createElement("a");Ib.href=qb.href;function Jb(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(K)||[];if(r.isFunction(c))while(d=f[e++])"+"===d[0]?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function Kb(a,b,c,d){var e={},f=a===Gb;function g(h){var i;return e[h]=!0,r.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function Lb(a,b){var c,d,e=r.ajaxSettings.flatOptions||{};for(c in b)void 0!==b[c]&&((e[c]?a:d||(d={}))[c]=b[c]);return d&&r.extend(!0,a,d),a}function Mb(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===d&&(d=a.mimeType||b.getResponseHeader("Content-Type"));if(d)for(e in h)if(h[e]&&h[e].test(d)){i.unshift(e);break}if(i[0]in c)f=i[0];else{for(e in c){if(!i[0]||a.converters[e+" "+i[0]]){f=e;break}g||(g=e)}f=f||g}if(f)return f!==i[0]&&i.unshift(f),c[f]}function Nb(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}r.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:qb.href,type:"GET",isLocal:Cb.test(qb.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Hb,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":r.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?Lb(Lb(a,r.ajaxSettings),b):Lb(r.ajaxSettings,a)},ajaxPrefilter:Jb(Fb),ajaxTransport:Jb(Gb),ajax:function(b,c){"object"==typeof b&&(c=b,b=void 0),c=c||{};var e,f,g,h,i,j,k,l,m,n,o=r.ajaxSetup({},c),p=o.context||o,q=o.context&&(p.nodeType||p.jquery)?r(p):r.event,s=r.Deferred(),t=r.Callbacks("once memory"),u=o.statusCode||{},v={},w={},x="canceled",y={readyState:0,getResponseHeader:function(a){var b;if(k){if(!h){h={};while(b=Bb.exec(g))h[b[1].toLowerCase()]=b[2]}b=h[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return k?g:null},setRequestHeader:function(a,b){return null==k&&(a=w[a.toLowerCase()]=w[a.toLowerCase()]||a,v[a]=b),this},overrideMimeType:function(a){return null==k&&(o.mimeType=a),this},statusCode:function(a){var b;if(a)if(k)y.always(a[y.status]);else for(b in a)u[b]=[u[b],a[b]];return this},abort:function(a){var b=a||x;return e&&e.abort(b),A(0,b),this}};if(s.promise(y),o.url=((b||o.url||qb.href)+"").replace(Eb,qb.protocol+"//"),o.type=c.method||c.type||o.method||o.type,o.dataTypes=(o.dataType||"*").toLowerCase().match(K)||[""],null==o.crossDomain){j=d.createElement("a");try{j.href=o.url,j.href=j.href,o.crossDomain=Ib.protocol+"//"+Ib.host!=j.protocol+"//"+j.host}catch(z){o.crossDomain=!0}}if(o.data&&o.processData&&"string"!=typeof o.data&&(o.data=r.param(o.data,o.traditional)),Kb(Fb,o,c,y),k)return y;l=r.event&&o.global,l&&0===r.active++&&r.event.trigger("ajaxStart"),o.type=o.type.toUpperCase(),o.hasContent=!Db.test(o.type),f=o.url.replace(zb,""),o.hasContent?o.data&&o.processData&&0===(o.contentType||"").indexOf("application/x-www-form-urlencoded")&&(o.data=o.data.replace(yb,"+")):(n=o.url.slice(f.length),o.data&&(f+=(sb.test(f)?"&":"?")+o.data,delete o.data),o.cache===!1&&(f=f.replace(Ab,"$1"),n=(sb.test(f)?"&":"?")+"_="+rb++ +n),o.url=f+n),o.ifModified&&(r.lastModified[f]&&y.setRequestHeader("If-Modified-Since",r.lastModified[f]),r.etag[f]&&y.setRequestHeader("If-None-Match",r.etag[f])),(o.data&&o.hasContent&&o.contentType!==!1||c.contentType)&&y.setRequestHeader("Content-Type",o.contentType),y.setRequestHeader("Accept",o.dataTypes[0]&&o.accepts[o.dataTypes[0]]?o.accepts[o.dataTypes[0]]+("*"!==o.dataTypes[0]?", "+Hb+"; q=0.01":""):o.accepts["*"]);for(m in o.headers)y.setRequestHeader(m,o.headers[m]);if(o.beforeSend&&(o.beforeSend.call(p,y,o)===!1||k))return y.abort();if(x="abort",t.add(o.complete),y.done(o.success),y.fail(o.error),e=Kb(Gb,o,c,y)){if(y.readyState=1,l&&q.trigger("ajaxSend",[y,o]),k)return y;o.async&&o.timeout>0&&(i=a.setTimeout(function(){y.abort("timeout")},o.timeout));try{k=!1,e.send(v,A)}catch(z){if(k)throw z;A(-1,z)}}else A(-1,"No Transport");function A(b,c,d,h){var j,m,n,v,w,x=c;k||(k=!0,i&&a.clearTimeout(i),e=void 0,g=h||"",y.readyState=b>0?4:0,j=b>=200&&b<300||304===b,d&&(v=Mb(o,y,d)),v=Nb(o,v,y,j),j?(o.ifModified&&(w=y.getResponseHeader("Last-Modified"),w&&(r.lastModified[f]=w),w=y.getResponseHeader("etag"),w&&(r.etag[f]=w)),204===b||"HEAD"===o.type?x="nocontent":304===b?x="notmodified":(x=v.state,m=v.data,n=v.error,j=!n)):(n=x,!b&&x||(x="error",b<0&&(b=0))),y.status=b,y.statusText=(c||x)+"",j?s.resolveWith(p,[m,x,y]):s.rejectWith(p,[y,x,n]),y.statusCode(u),u=void 0,l&&q.trigger(j?"ajaxSuccess":"ajaxError",[y,o,j?m:n]),t.fireWith(p,[y,x]),l&&(q.trigger("ajaxComplete",[y,o]),--r.active||r.event.trigger("ajaxStop")))}return y},getJSON:function(a,b,c){return r.get(a,b,c,"json")},getScript:function(a,b){return r.get(a,void 0,b,"script")}}),r.each(["get","post"],function(a,b){r[b]=function(a,c,d,e){return r.isFunction(c)&&(e=e||d,d=c,c=void 0),r.ajax(r.extend({url:a,type:b,dataType:e,data:c,success:d},r.isPlainObject(a)&&a))}}),r._evalUrl=function(a){return r.ajax({url:a,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},r.fn.extend({wrapAll:function(a){var b;return this[0]&&(r.isFunction(a)&&(a=a.call(this[0])),b=r(a,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstElementChild)a=a.firstElementChild;return a}).append(this)),this},wrapInner:function(a){return r.isFunction(a)?this.each(function(b){r(this).wrapInner(a.call(this,b))}):this.each(function(){var b=r(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=r.isFunction(a);return this.each(function(c){r(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(a){return this.parent(a).not("body").each(function(){r(this).replaceWith(this.childNodes)}),this}}),r.expr.pseudos.hidden=function(a){return!r.expr.pseudos.visible(a)},r.expr.pseudos.visible=function(a){return!!(a.offsetWidth||a.offsetHeight||a.getClientRects().length)},r.ajaxSettings.xhr=function(){try{return new a.XMLHttpRequest}catch(b){}};var Ob={0:200,1223:204},Pb=r.ajaxSettings.xhr();o.cors=!!Pb&&"withCredentials"in Pb,o.ajax=Pb=!!Pb,r.ajaxTransport(function(b){var c,d;if(o.cors||Pb&&!b.crossDomain)return{send:function(e,f){var g,h=b.xhr();if(h.open(b.type,b.url,b.async,b.username,b.password),b.xhrFields)for(g in b.xhrFields)h[g]=b.xhrFields[g];b.mimeType&&h.overrideMimeType&&h.overrideMimeType(b.mimeType),b.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest");for(g in e)h.setRequestHeader(g,e[g]);c=function(a){return function(){c&&(c=d=h.onload=h.onerror=h.onabort=h.onreadystatechange=null,"abort"===a?h.abort():"error"===a?"number"!=typeof h.status?f(0,"error"):f(h.status,h.statusText):f(Ob[h.status]||h.status,h.statusText,"text"!==(h.responseType||"text")||"string"!=typeof h.responseText?{binary:h.response}:{text:h.responseText},h.getAllResponseHeaders()))}},h.onload=c(),d=h.onerror=c("error"),void 0!==h.onabort?h.onabort=d:h.onreadystatechange=function(){4===h.readyState&&a.setTimeout(function(){c&&d()})},c=c("abort");try{h.send(b.hasContent&&b.data||null)}catch(i){if(c)throw i}},abort:function(){c&&c()}}}),r.ajaxPrefilter(function(a){a.crossDomain&&(a.contents.script=!1)}),r.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(a){return r.globalEval(a),a}}}),r.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET")}),r.ajaxTransport("script",function(a){if(a.crossDomain){var b,c;return{send:function(e,f){b=r("<script>").prop({charset:a.scriptCharset,src:a.url}).on("load error",c=function(a){b.remove(),c=null,a&&f("error"===a.type?404:200,a.type)}),d.head.appendChild(b[0])},abort:function(){c&&c()}}}});var Qb=[],Rb=/(=)\?(?=&|$)|\?\?/;r.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=Qb.pop()||r.expando+"_"+rb++;return this[a]=!0,a}}),r.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(Rb.test(b.url)?"url":"string"==typeof b.data&&0===(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&Rb.test(b.data)&&"data");if(h||"jsonp"===b.dataTypes[0])return e=b.jsonpCallback=r.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(Rb,"$1"+e):b.jsonp!==!1&&(b.url+=(sb.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||r.error(e+" was not called"),g[0]},b.dataTypes[0]="json",f=a[e],a[e]=function(){g=arguments},d.always(function(){void 0===f?r(a).removeProp(e):a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,Qb.push(e)),g&&r.isFunction(f)&&f(g[0]),g=f=void 0}),"script"}),o.createHTMLDocument=function(){var a=d.implementation.createHTMLDocument("").body;return a.innerHTML="<form></form><form></form>",2===a.childNodes.length}(),r.parseHTML=function(a,b,c){if("string"!=typeof a)return[];"boolean"==typeof b&&(c=b,b=!1);var e,f,g;return b||(o.createHTMLDocument?(b=d.implementation.createHTMLDocument(""),e=b.createElement("base"),e.href=d.location.href,b.head.appendChild(e)):b=d),f=B.exec(a),g=!c&&[],f?[b.createElement(f[1])]:(f=pa([a],b,g),g&&g.length&&r(g).remove(),r.merge([],f.childNodes))},r.fn.load=function(a,b,c){var d,e,f,g=this,h=a.indexOf(" ");return h>-1&&(d=mb(a.slice(h)),a=a.slice(0,h)),r.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(e="POST"),g.length>0&&r.ajax({url:a,type:e||"GET",dataType:"html",data:b}).done(function(a){f=arguments,g.html(d?r("<div>").append(r.parseHTML(a)).find(d):a)}).always(c&&function(a,b){g.each(function(){c.apply(this,f||[a.responseText,b,a])})}),this},r.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){r.fn[b]=function(a){return this.on(b,a)}}),r.expr.pseudos.animated=function(a){return r.grep(r.timers,function(b){return a===b.elem}).length};function Sb(a){return r.isWindow(a)?a:9===a.nodeType&&a.defaultView}r.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=r.css(a,"position"),l=r(a),m={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=r.css(a,"top"),i=r.css(a,"left"),j=("absolute"===k||"fixed"===k)&&(f+i).indexOf("auto")>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),r.isFunction(b)&&(b=b.call(a,c,r.extend({},h))),null!=b.top&&(m.top=b.top-h.top+g),null!=b.left&&(m.left=b.left-h.left+e),"using"in b?b.using.call(a,m):l.css(m)}},r.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){r.offset.setOffset(this,a,b)});var b,c,d,e,f=this[0];if(f)return f.getClientRects().length?(d=f.getBoundingClientRect(),d.width||d.height?(e=f.ownerDocument,c=Sb(e),b=e.documentElement,{top:d.top+c.pageYOffset-b.clientTop,left:d.left+c.pageXOffset-b.clientLeft}):d):{top:0,left:0}},position:function(){if(this[0]){var a,b,c=this[0],d={top:0,left:0};return"fixed"===r.css(c,"position")?b=c.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),r.nodeName(a[0],"html")||(d=a.offset()),d={top:d.top+r.css(a[0],"borderTopWidth",!0),left:d.left+r.css(a[0],"borderLeftWidth",!0)}),{top:b.top-d.top-r.css(c,"marginTop",!0),left:b.left-d.left-r.css(c,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent;while(a&&"static"===r.css(a,"position"))a=a.offsetParent;return a||qa})}}),r.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,b){var c="pageYOffset"===b;r.fn[a]=function(d){return S(this,function(a,d,e){var f=Sb(a);return void 0===e?f?f[b]:a[d]:void(f?f.scrollTo(c?f.pageXOffset:e,c?e:f.pageYOffset):a[d]=e)},a,d,arguments.length)}}),r.each(["top","left"],function(a,b){r.cssHooks[b]=Oa(o.pixelPosition,function(a,c){if(c)return c=Na(a,b),La.test(c)?r(a).position()[b]+"px":c})}),r.each({Height:"height",Width:"width"},function(a,b){r.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){r.fn[d]=function(e,f){var g=arguments.length&&(c||"boolean"!=typeof e),h=c||(e===!0||f===!0?"margin":"border");return S(this,function(b,c,e){var f;return r.isWindow(b)?0===d.indexOf("outer")?b["inner"+a]:b.document.documentElement["client"+a]:9===b.nodeType?(f=b.documentElement,Math.max(b.body["scroll"+a],f["scroll"+a],b.body["offset"+a],f["offset"+a],f["client"+a])):void 0===e?r.css(b,c,h):r.style(b,c,e,h)},b,g?e:void 0,g)}})}),r.fn.extend({bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}}),r.parseJSON=JSON.parse,"function"==typeof define&&define.amd&&define("jquery",[],function(){return r});var Tb=a.jQuery,Ub=a.$;return r.noConflict=function(b){return a.$===r&&(a.$=Ub),b&&a.jQuery===r&&(a.jQuery=Tb),r},b||(a.jQuery=a.$=r),r});
-
-/*! jQuery UI - v1.12.1 - 2016-09-14
-* http://jqueryui.com
-* Includes: widget.js, position.js, data.js, disable-selection.js, effect.js, effects/effect-blind.js, effects/effect-bounce.js, effects/effect-clip.js, effects/effect-drop.js, effects/effect-explode.js, effects/effect-fade.js, effects/effect-fold.js, effects/effect-highlight.js, effects/effect-puff.js, effects/effect-pulsate.js, effects/effect-scale.js, effects/effect-shake.js, effects/effect-size.js, effects/effect-slide.js, effects/effect-transfer.js, focusable.js, form-reset-mixin.js, jquery-1-7.js, keycode.js, labels.js, scroll-parent.js, tabbable.js, unique-id.js, widgets/accordion.js, widgets/autocomplete.js, widgets/button.js, widgets/checkboxradio.js, widgets/controlgroup.js, widgets/datepicker.js, widgets/dialog.js, widgets/draggable.js, widgets/droppable.js, widgets/menu.js, widgets/mouse.js, widgets/progressbar.js, widgets/resizable.js, widgets/selectable.js, widgets/selectmenu.js, widgets/slider.js, widgets/sortable.js, widgets/spinner.js, widgets/tabs.js, widgets/tooltip.js
-* Copyright jQuery Foundation and other contributors; Licensed MIT */
-
-(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):t(jQuery)})(function(t){function e(t){for(var e=t.css("visibility");"inherit"===e;)t=t.parent(),e=t.css("visibility");return"hidden"!==e}function i(t){for(var e,i;t.length&&t[0]!==document;){if(e=t.css("position"),("absolute"===e||"relative"===e||"fixed"===e)&&(i=parseInt(t.css("zIndex"),10),!isNaN(i)&&0!==i))return i;t=t.parent()}return 0}function s(){this._curInst=null,this._keyEvent=!1,this._disabledInputs=[],this._datepickerShowing=!1,this._inDialog=!1,this._mainDivId="ui-datepicker-div",this._inlineClass="ui-datepicker-inline",this._appendClass="ui-datepicker-append",this._triggerClass="ui-datepicker-trigger",this._dialogClass="ui-datepicker-dialog",this._disableClass="ui-datepicker-disabled",this._unselectableClass="ui-datepicker-unselectable",this._currentClass="ui-datepicker-current-day",this._dayOverClass="ui-datepicker-days-cell-over",this.regional=[],this.regional[""]={closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],weekHeader:"Wk",dateFormat:"mm/dd/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},this._defaults={showOn:"focus",showAnim:"fadeIn",showOptions:{},defaultDate:null,appendText:"",buttonText:"...",buttonImage:"",buttonImageOnly:!1,hideIfNoPrevNext:!1,navigationAsDateFormat:!1,gotoCurrent:!1,changeMonth:!1,changeYear:!1,yearRange:"c-10:c+10",showOtherMonths:!1,selectOtherMonths:!1,showWeek:!1,calculateWeek:this.iso8601Week,shortYearCutoff:"+10",minDate:null,maxDate:null,duration:"fast",beforeShowDay:null,beforeShow:null,onSelect:null,onChangeMonthYear:null,onClose:null,numberOfMonths:1,showCurrentAtPos:0,stepMonths:1,stepBigMonths:12,altField:"",altFormat:"",constrainInput:!0,showButtonPanel:!1,autoSize:!1,disabled:!1},t.extend(this._defaults,this.regional[""]),this.regional.en=t.extend(!0,{},this.regional[""]),this.regional["en-US"]=t.extend(!0,{},this.regional.en),this.dpDiv=n(t("<div id='"+this._mainDivId+"' class='ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>"))}function n(e){var i="button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a";return e.on("mouseout",i,function(){t(this).removeClass("ui-state-hover"),-1!==this.className.indexOf("ui-datepicker-prev")&&t(this).removeClass("ui-datepicker-prev-hover"),-1!==this.className.indexOf("ui-datepicker-next")&&t(this).removeClass("ui-datepicker-next-hover")}).on("mouseover",i,o)}function o(){t.datepicker._isDisabledDatepicker(m.inline?m.dpDiv.parent()[0]:m.input[0])||(t(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover"),t(this).addClass("ui-state-hover"),-1!==this.className.indexOf("ui-datepicker-prev")&&t(this).addClass("ui-datepicker-prev-hover"),-1!==this.className.indexOf("ui-datepicker-next")&&t(this).addClass("ui-datepicker-next-hover"))}function a(e,i){t.extend(e,i);for(var s in i)null==i[s]&&(e[s]=i[s]);return e}function r(t){return function(){var e=this.element.val();t.apply(this,arguments),this._refresh(),e!==this.element.val()&&this._trigger("change")}}t.ui=t.ui||{},t.ui.version="1.12.1";var h=0,l=Array.prototype.slice;t.cleanData=function(e){return function(i){var s,n,o;for(o=0;null!=(n=i[o]);o++)try{s=t._data(n,"events"),s&&s.remove&&t(n).triggerHandler("remove")}catch(a){}e(i)}}(t.cleanData),t.widget=function(e,i,s){var n,o,a,r={},h=e.split(".")[0];e=e.split(".")[1];var l=h+"-"+e;return s||(s=i,i=t.Widget),t.isArray(s)&&(s=t.extend.apply(null,[{}].concat(s))),t.expr[":"][l.toLowerCase()]=function(e){return!!t.data(e,l)},t[h]=t[h]||{},n=t[h][e],o=t[h][e]=function(t,e){return this._createWidget?(arguments.length&&this._createWidget(t,e),void 0):new o(t,e)},t.extend(o,n,{version:s.version,_proto:t.extend({},s),_childConstructors:[]}),a=new i,a.options=t.widget.extend({},a.options),t.each(s,function(e,s){return t.isFunction(s)?(r[e]=function(){function t(){return i.prototype[e].apply(this,arguments)}function n(t){return i.prototype[e].apply(this,t)}return function(){var e,i=this._super,o=this._superApply;return this._super=t,this._superApply=n,e=s.apply(this,arguments),this._super=i,this._superApply=o,e}}(),void 0):(r[e]=s,void 0)}),o.prototype=t.widget.extend(a,{widgetEventPrefix:n?a.widgetEventPrefix||e:e},r,{constructor:o,namespace:h,widgetName:e,widgetFullName:l}),n?(t.each(n._childConstructors,function(e,i){var s=i.prototype;t.widget(s.namespace+"."+s.widgetName,o,i._proto)}),delete n._childConstructors):i._childConstructors.push(o),t.widget.bridge(e,o),o},t.widget.extend=function(e){for(var i,s,n=l.call(arguments,1),o=0,a=n.length;a>o;o++)for(i in n[o])s=n[o][i],n[o].hasOwnProperty(i)&&void 0!==s&&(e[i]=t.isPlainObject(s)?t.isPlainObject(e[i])?t.widget.extend({},e[i],s):t.widget.extend({},s):s);return e},t.widget.bridge=function(e,i){var s=i.prototype.widgetFullName||e;t.fn[e]=function(n){var o="string"==typeof n,a=l.call(arguments,1),r=this;return o?this.length||"instance"!==n?this.each(function(){var i,o=t.data(this,s);return"instance"===n?(r=o,!1):o?t.isFunction(o[n])&&"_"!==n.charAt(0)?(i=o[n].apply(o,a),i!==o&&void 0!==i?(r=i&&i.jquery?r.pushStack(i.get()):i,!1):void 0):t.error("no such method '"+n+"' for "+e+" widget instance"):t.error("cannot call methods on "+e+" prior to initialization; "+"attempted to call method '"+n+"'")}):r=void 0:(a.length&&(n=t.widget.extend.apply(null,[n].concat(a))),this.each(function(){var e=t.data(this,s);e?(e.option(n||{}),e._init&&e._init()):t.data(this,s,new i(n,this))})),r}},t.Widget=function(){},t.Widget._childConstructors=[],t.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"<div>",options:{classes:{},disabled:!1,create:null},_createWidget:function(e,i){i=t(i||this.defaultElement||this)[0],this.element=t(i),this.uuid=h++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=t(),this.hoverable=t(),this.focusable=t(),this.classesElementLookup={},i!==this&&(t.data(i,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===i&&this.destroy()}}),this.document=t(i.style?i.ownerDocument:i.document||i),this.window=t(this.document[0].defaultView||this.document[0].parentWindow)),this.options=t.widget.extend({},this.options,this._getCreateOptions(),e),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:t.noop,_create:t.noop,_init:t.noop,destroy:function(){var e=this;this._destroy(),t.each(this.classesElementLookup,function(t,i){e._removeClass(i,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:t.noop,widget:function(){return this.element},option:function(e,i){var s,n,o,a=e;if(0===arguments.length)return t.widget.extend({},this.options);if("string"==typeof e)if(a={},s=e.split("."),e=s.shift(),s.length){for(n=a[e]=t.widget.extend({},this.options[e]),o=0;s.length-1>o;o++)n[s[o]]=n[s[o]]||{},n=n[s[o]];if(e=s.pop(),1===arguments.length)return void 0===n[e]?null:n[e];n[e]=i}else{if(1===arguments.length)return void 0===this.options[e]?null:this.options[e];a[e]=i}return this._setOptions(a),this},_setOptions:function(t){var e;for(e in t)this._setOption(e,t[e]);return this},_setOption:function(t,e){return"classes"===t&&this._setOptionClasses(e),this.options[t]=e,"disabled"===t&&this._setOptionDisabled(e),this},_setOptionClasses:function(e){var i,s,n;for(i in e)n=this.classesElementLookup[i],e[i]!==this.options.classes[i]&&n&&n.length&&(s=t(n.get()),this._removeClass(n,i),s.addClass(this._classes({element:s,keys:i,classes:e,add:!0})))},_setOptionDisabled:function(t){this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,!!t),t&&(this._removeClass(this.hoverable,null,"ui-state-hover"),this._removeClass(this.focusable,null,"ui-state-focus"))},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_classes:function(e){function i(i,o){var a,r;for(r=0;i.length>r;r++)a=n.classesElementLookup[i[r]]||t(),a=e.add?t(t.unique(a.get().concat(e.element.get()))):t(a.not(e.element).get()),n.classesElementLookup[i[r]]=a,s.push(i[r]),o&&e.classes[i[r]]&&s.push(e.classes[i[r]])}var s=[],n=this;return e=t.extend({element:this.element,classes:this.options.classes||{}},e),this._on(e.element,{remove:"_untrackClassesElement"}),e.keys&&i(e.keys.match(/\S+/g)||[],!0),e.extra&&i(e.extra.match(/\S+/g)||[]),s.join(" ")},_untrackClassesElement:function(e){var i=this;t.each(i.classesElementLookup,function(s,n){-1!==t.inArray(e.target,n)&&(i.classesElementLookup[s]=t(n.not(e.target).get()))})},_removeClass:function(t,e,i){return this._toggleClass(t,e,i,!1)},_addClass:function(t,e,i){return this._toggleClass(t,e,i,!0)},_toggleClass:function(t,e,i,s){s="boolean"==typeof s?s:i;var n="string"==typeof t||null===t,o={extra:n?e:i,keys:n?t:e,element:n?this.element:t,add:s};return o.element.toggleClass(this._classes(o),s),this},_on:function(e,i,s){var n,o=this;"boolean"!=typeof e&&(s=i,i=e,e=!1),s?(i=n=t(i),this.bindings=this.bindings.add(i)):(s=i,i=this.element,n=this.widget()),t.each(s,function(s,a){function r(){return e||o.options.disabled!==!0&&!t(this).hasClass("ui-state-disabled")?("string"==typeof a?o[a]:a).apply(o,arguments):void 0}"string"!=typeof a&&(r.guid=a.guid=a.guid||r.guid||t.guid++);var h=s.match(/^([\w:-]*)\s*(.*)$/),l=h[1]+o.eventNamespace,c=h[2];c?n.on(l,c,r):i.on(l,r)})},_off:function(e,i){i=(i||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,e.off(i).off(i),this.bindings=t(this.bindings.not(e).get()),this.focusable=t(this.focusable.not(e).get()),this.hoverable=t(this.hoverable.not(e).get())},_delay:function(t,e){function i(){return("string"==typeof t?s[t]:t).apply(s,arguments)}var s=this;return setTimeout(i,e||0)},_hoverable:function(e){this.hoverable=this.hoverable.add(e),this._on(e,{mouseenter:function(e){this._addClass(t(e.currentTarget),null,"ui-state-hover")},mouseleave:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-hover")}})},_focusable:function(e){this.focusable=this.focusable.add(e),this._on(e,{focusin:function(e){this._addClass(t(e.currentTarget),null,"ui-state-focus")},focusout:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-focus")}})},_trigger:function(e,i,s){var n,o,a=this.options[e];if(s=s||{},i=t.Event(i),i.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase(),i.target=this.element[0],o=i.originalEvent)for(n in o)n in i||(i[n]=o[n]);return this.element.trigger(i,s),!(t.isFunction(a)&&a.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},t.each({show:"fadeIn",hide:"fadeOut"},function(e,i){t.Widget.prototype["_"+e]=function(s,n,o){"string"==typeof n&&(n={effect:n});var a,r=n?n===!0||"number"==typeof n?i:n.effect||i:e;n=n||{},"number"==typeof n&&(n={duration:n}),a=!t.isEmptyObject(n),n.complete=o,n.delay&&s.delay(n.delay),a&&t.effects&&t.effects.effect[r]?s[e](n):r!==e&&s[r]?s[r](n.duration,n.easing,o):s.queue(function(i){t(this)[e](),o&&o.call(s[0]),i()})}}),t.widget,function(){function e(t,e,i){return[parseFloat(t[0])*(u.test(t[0])?e/100:1),parseFloat(t[1])*(u.test(t[1])?i/100:1)]}function i(e,i){return parseInt(t.css(e,i),10)||0}function s(e){var i=e[0];return 9===i.nodeType?{width:e.width(),height:e.height(),offset:{top:0,left:0}}:t.isWindow(i)?{width:e.width(),height:e.height(),offset:{top:e.scrollTop(),left:e.scrollLeft()}}:i.preventDefault?{width:0,height:0,offset:{top:i.pageY,left:i.pageX}}:{width:e.outerWidth(),height:e.outerHeight(),offset:e.offset()}}var n,o=Math.max,a=Math.abs,r=/left|center|right/,h=/top|center|bottom/,l=/[\+\-]\d+(\.[\d]+)?%?/,c=/^\w+/,u=/%$/,d=t.fn.position;t.position={scrollbarWidth:function(){if(void 0!==n)return n;var e,i,s=t("<div style='display:block;position:absolute;width:50px;height:50px;overflow:hidden;'><div style='height:100px;width:auto;'></div></div>"),o=s.children()[0];return t("body").append(s),e=o.offsetWidth,s.css("overflow","scroll"),i=o.offsetWidth,e===i&&(i=s[0].clientWidth),s.remove(),n=e-i},getScrollInfo:function(e){var i=e.isWindow||e.isDocument?"":e.element.css("overflow-x"),s=e.isWindow||e.isDocument?"":e.element.css("overflow-y"),n="scroll"===i||"auto"===i&&e.width<e.element[0].scrollWidth,o="scroll"===s||"auto"===s&&e.height<e.element[0].scrollHeight;return{width:o?t.position.scrollbarWidth():0,height:n?t.position.scrollbarWidth():0}},getWithinInfo:function(e){var i=t(e||window),s=t.isWindow(i[0]),n=!!i[0]&&9===i[0].nodeType,o=!s&&!n;return{element:i,isWindow:s,isDocument:n,offset:o?t(e).offset():{left:0,top:0},scrollLeft:i.scrollLeft(),scrollTop:i.scrollTop(),width:i.outerWidth(),height:i.outerHeight()}}},t.fn.position=function(n){if(!n||!n.of)return d.apply(this,arguments);n=t.extend({},n);var u,p,f,g,m,_,v=t(n.of),b=t.position.getWithinInfo(n.within),y=t.position.getScrollInfo(b),w=(n.collision||"flip").split(" "),k={};return _=s(v),v[0].preventDefault&&(n.at="left top"),p=_.width,f=_.height,g=_.offset,m=t.extend({},g),t.each(["my","at"],function(){var t,e,i=(n[this]||"").split(" ");1===i.length&&(i=r.test(i[0])?i.concat(["center"]):h.test(i[0])?["center"].concat(i):["center","center"]),i[0]=r.test(i[0])?i[0]:"center",i[1]=h.test(i[1])?i[1]:"center",t=l.exec(i[0]),e=l.exec(i[1]),k[this]=[t?t[0]:0,e?e[0]:0],n[this]=[c.exec(i[0])[0],c.exec(i[1])[0]]}),1===w.length&&(w[1]=w[0]),"right"===n.at[0]?m.left+=p:"center"===n.at[0]&&(m.left+=p/2),"bottom"===n.at[1]?m.top+=f:"center"===n.at[1]&&(m.top+=f/2),u=e(k.at,p,f),m.left+=u[0],m.top+=u[1],this.each(function(){var s,r,h=t(this),l=h.outerWidth(),c=h.outerHeight(),d=i(this,"marginLeft"),_=i(this,"marginTop"),x=l+d+i(this,"marginRight")+y.width,C=c+_+i(this,"marginBottom")+y.height,D=t.extend({},m),I=e(k.my,h.outerWidth(),h.outerHeight());"right"===n.my[0]?D.left-=l:"center"===n.my[0]&&(D.left-=l/2),"bottom"===n.my[1]?D.top-=c:"center"===n.my[1]&&(D.top-=c/2),D.left+=I[0],D.top+=I[1],s={marginLeft:d,marginTop:_},t.each(["left","top"],function(e,i){t.ui.position[w[e]]&&t.ui.position[w[e]][i](D,{targetWidth:p,targetHeight:f,elemWidth:l,elemHeight:c,collisionPosition:s,collisionWidth:x,collisionHeight:C,offset:[u[0]+I[0],u[1]+I[1]],my:n.my,at:n.at,within:b,elem:h})}),n.using&&(r=function(t){var e=g.left-D.left,i=e+p-l,s=g.top-D.top,r=s+f-c,u={target:{element:v,left:g.left,top:g.top,width:p,height:f},element:{element:h,left:D.left,top:D.top,width:l,height:c},horizontal:0>i?"left":e>0?"right":"center",vertical:0>r?"top":s>0?"bottom":"middle"};l>p&&p>a(e+i)&&(u.horizontal="center"),c>f&&f>a(s+r)&&(u.vertical="middle"),u.important=o(a(e),a(i))>o(a(s),a(r))?"horizontal":"vertical",n.using.call(this,t,u)}),h.offset(t.extend(D,{using:r}))})},t.ui.position={fit:{left:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollLeft:s.offset.left,a=s.width,r=t.left-e.collisionPosition.marginLeft,h=n-r,l=r+e.collisionWidth-a-n;e.collisionWidth>a?h>0&&0>=l?(i=t.left+h+e.collisionWidth-a-n,t.left+=h-i):t.left=l>0&&0>=h?n:h>l?n+a-e.collisionWidth:n:h>0?t.left+=h:l>0?t.left-=l:t.left=o(t.left-r,t.left)},top:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollTop:s.offset.top,a=e.within.height,r=t.top-e.collisionPosition.marginTop,h=n-r,l=r+e.collisionHeight-a-n;e.collisionHeight>a?h>0&&0>=l?(i=t.top+h+e.collisionHeight-a-n,t.top+=h-i):t.top=l>0&&0>=h?n:h>l?n+a-e.collisionHeight:n:h>0?t.top+=h:l>0?t.top-=l:t.top=o(t.top-r,t.top)}},flip:{left:function(t,e){var i,s,n=e.within,o=n.offset.left+n.scrollLeft,r=n.width,h=n.isWindow?n.scrollLeft:n.offset.left,l=t.left-e.collisionPosition.marginLeft,c=l-h,u=l+e.collisionWidth-r-h,d="left"===e.my[0]?-e.elemWidth:"right"===e.my[0]?e.elemWidth:0,p="left"===e.at[0]?e.targetWidth:"right"===e.at[0]?-e.targetWidth:0,f=-2*e.offset[0];0>c?(i=t.left+d+p+f+e.collisionWidth-r-o,(0>i||a(c)>i)&&(t.left+=d+p+f)):u>0&&(s=t.left-e.collisionPosition.marginLeft+d+p+f-h,(s>0||u>a(s))&&(t.left+=d+p+f))},top:function(t,e){var i,s,n=e.within,o=n.offset.top+n.scrollTop,r=n.height,h=n.isWindow?n.scrollTop:n.offset.top,l=t.top-e.collisionPosition.marginTop,c=l-h,u=l+e.collisionHeight-r-h,d="top"===e.my[1],p=d?-e.elemHeight:"bottom"===e.my[1]?e.elemHeight:0,f="top"===e.at[1]?e.targetHeight:"bottom"===e.at[1]?-e.targetHeight:0,g=-2*e.offset[1];0>c?(s=t.top+p+f+g+e.collisionHeight-r-o,(0>s||a(c)>s)&&(t.top+=p+f+g)):u>0&&(i=t.top-e.collisionPosition.marginTop+p+f+g-h,(i>0||u>a(i))&&(t.top+=p+f+g))}},flipfit:{left:function(){t.ui.position.flip.left.apply(this,arguments),t.ui.position.fit.left.apply(this,arguments)},top:function(){t.ui.position.flip.top.apply(this,arguments),t.ui.position.fit.top.apply(this,arguments)}}}}(),t.ui.position,t.extend(t.expr[":"],{data:t.expr.createPseudo?t.expr.createPseudo(function(e){return function(i){return!!t.data(i,e)}}):function(e,i,s){return!!t.data(e,s[3])}}),t.fn.extend({disableSelection:function(){var t="onselectstart"in document.createElement("div")?"selectstart":"mousedown";return function(){return this.on(t+".ui-disableSelection",function(t){t.preventDefault()})}}(),enableSelection:function(){return this.off(".ui-disableSelection")}});var c="ui-effects-",u="ui-effects-style",d="ui-effects-animated",p=t;t.effects={effect:{}},function(t,e){function i(t,e,i){var s=u[e.type]||{};return null==t?i||!e.def?null:e.def:(t=s.floor?~~t:parseFloat(t),isNaN(t)?e.def:s.mod?(t+s.mod)%s.mod:0>t?0:t>s.max?s.max:t)}function s(i){var s=l(),n=s._rgba=[];return i=i.toLowerCase(),f(h,function(t,o){var a,r=o.re.exec(i),h=r&&o.parse(r),l=o.space||"rgba";return h?(a=s[l](h),s[c[l].cache]=a[c[l].cache],n=s._rgba=a._rgba,!1):e}),n.length?("0,0,0,0"===n.join()&&t.extend(n,o.transparent),s):o[i]}function n(t,e,i){return i=(i+1)%1,1>6*i?t+6*(e-t)*i:1>2*i?e:2>3*i?t+6*(e-t)*(2/3-i):t}var o,a="backgroundColor borderBottomColor borderLeftColor borderRightColor borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor",r=/^([\-+])=\s*(\d+\.?\d*)/,h=[{re:/rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,parse:function(t){return[t[1],t[2],t[3],t[4]]}},{re:/rgba?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,parse:function(t){return[2.55*t[1],2.55*t[2],2.55*t[3],t[4]]}},{re:/#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})/,parse:function(t){return[parseInt(t[1],16),parseInt(t[2],16),parseInt(t[3],16)]}},{re:/#([a-f0-9])([a-f0-9])([a-f0-9])/,parse:function(t){return[parseInt(t[1]+t[1],16),parseInt(t[2]+t[2],16),parseInt(t[3]+t[3],16)]}},{re:/hsla?\(\s*(\d+(?:\.\d+)?)\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,space:"hsla",parse:function(t){return[t[1],t[2]/100,t[3]/100,t[4]]}}],l=t.Color=function(e,i,s,n){return new t.Color.fn.parse(e,i,s,n)},c={rgba:{props:{red:{idx:0,type:"byte"},green:{idx:1,type:"byte"},blue:{idx:2,type:"byte"}}},hsla:{props:{hue:{idx:0,type:"degrees"},saturation:{idx:1,type:"percent"},lightness:{idx:2,type:"percent"}}}},u={"byte":{floor:!0,max:255},percent:{max:1},degrees:{mod:360,floor:!0}},d=l.support={},p=t("<p>")[0],f=t.each;p.style.cssText="background-color:rgba(1,1,1,.5)",d.rgba=p.style.backgroundColor.indexOf("rgba")>-1,f(c,function(t,e){e.cache="_"+t,e.props.alpha={idx:3,type:"percent",def:1}}),l.fn=t.extend(l.prototype,{parse:function(n,a,r,h){if(n===e)return this._rgba=[null,null,null,null],this;(n.jquery||n.nodeType)&&(n=t(n).css(a),a=e);var u=this,d=t.type(n),p=this._rgba=[];return a!==e&&(n=[n,a,r,h],d="array"),"string"===d?this.parse(s(n)||o._default):"array"===d?(f(c.rgba.props,function(t,e){p[e.idx]=i(n[e.idx],e)}),this):"object"===d?(n instanceof l?f(c,function(t,e){n[e.cache]&&(u[e.cache]=n[e.cache].slice())}):f(c,function(e,s){var o=s.cache;f(s.props,function(t,e){if(!u[o]&&s.to){if("alpha"===t||null==n[t])return;u[o]=s.to(u._rgba)}u[o][e.idx]=i(n[t],e,!0)}),u[o]&&0>t.inArray(null,u[o].slice(0,3))&&(u[o][3]=1,s.from&&(u._rgba=s.from(u[o])))}),this):e},is:function(t){var i=l(t),s=!0,n=this;return f(c,function(t,o){var a,r=i[o.cache];return r&&(a=n[o.cache]||o.to&&o.to(n._rgba)||[],f(o.props,function(t,i){return null!=r[i.idx]?s=r[i.idx]===a[i.idx]:e})),s}),s},_space:function(){var t=[],e=this;return f(c,function(i,s){e[s.cache]&&t.push(i)}),t.pop()},transition:function(t,e){var s=l(t),n=s._space(),o=c[n],a=0===this.alpha()?l("transparent"):this,r=a[o.cache]||o.to(a._rgba),h=r.slice();return s=s[o.cache],f(o.props,function(t,n){var o=n.idx,a=r[o],l=s[o],c=u[n.type]||{};null!==l&&(null===a?h[o]=l:(c.mod&&(l-a>c.mod/2?a+=c.mod:a-l>c.mod/2&&(a-=c.mod)),h[o]=i((l-a)*e+a,n)))}),this[n](h)},blend:function(e){if(1===this._rgba[3])return this;var i=this._rgba.slice(),s=i.pop(),n=l(e)._rgba;return l(t.map(i,function(t,e){return(1-s)*n[e]+s*t}))},toRgbaString:function(){var e="rgba(",i=t.map(this._rgba,function(t,e){return null==t?e>2?1:0:t});return 1===i[3]&&(i.pop(),e="rgb("),e+i.join()+")"},toHslaString:function(){var e="hsla(",i=t.map(this.hsla(),function(t,e){return null==t&&(t=e>2?1:0),e&&3>e&&(t=Math.round(100*t)+"%"),t});return 1===i[3]&&(i.pop(),e="hsl("),e+i.join()+")"},toHexString:function(e){var i=this._rgba.slice(),s=i.pop();return e&&i.push(~~(255*s)),"#"+t.map(i,function(t){return t=(t||0).toString(16),1===t.length?"0"+t:t}).join("")},toString:function(){return 0===this._rgba[3]?"transparent":this.toRgbaString()}}),l.fn.parse.prototype=l.fn,c.hsla.to=function(t){if(null==t[0]||null==t[1]||null==t[2])return[null,null,null,t[3]];var e,i,s=t[0]/255,n=t[1]/255,o=t[2]/255,a=t[3],r=Math.max(s,n,o),h=Math.min(s,n,o),l=r-h,c=r+h,u=.5*c;return e=h===r?0:s===r?60*(n-o)/l+360:n===r?60*(o-s)/l+120:60*(s-n)/l+240,i=0===l?0:.5>=u?l/c:l/(2-c),[Math.round(e)%360,i,u,null==a?1:a]},c.hsla.from=function(t){if(null==t[0]||null==t[1]||null==t[2])return[null,null,null,t[3]];var e=t[0]/360,i=t[1],s=t[2],o=t[3],a=.5>=s?s*(1+i):s+i-s*i,r=2*s-a;return[Math.round(255*n(r,a,e+1/3)),Math.round(255*n(r,a,e)),Math.round(255*n(r,a,e-1/3)),o]},f(c,function(s,n){var o=n.props,a=n.cache,h=n.to,c=n.from;l.fn[s]=function(s){if(h&&!this[a]&&(this[a]=h(this._rgba)),s===e)return this[a].slice();var n,r=t.type(s),u="array"===r||"object"===r?s:arguments,d=this[a].slice();return f(o,function(t,e){var s=u["object"===r?t:e.idx];null==s&&(s=d[e.idx]),d[e.idx]=i(s,e)}),c?(n=l(c(d)),n[a]=d,n):l(d)},f(o,function(e,i){l.fn[e]||(l.fn[e]=function(n){var o,a=t.type(n),h="alpha"===e?this._hsla?"hsla":"rgba":s,l=this[h](),c=l[i.idx];return"undefined"===a?c:("function"===a&&(n=n.call(this,c),a=t.type(n)),null==n&&i.empty?this:("string"===a&&(o=r.exec(n),o&&(n=c+parseFloat(o[2])*("+"===o[1]?1:-1))),l[i.idx]=n,this[h](l)))})})}),l.hook=function(e){var i=e.split(" ");f(i,function(e,i){t.cssHooks[i]={set:function(e,n){var o,a,r="";if("transparent"!==n&&("string"!==t.type(n)||(o=s(n)))){if(n=l(o||n),!d.rgba&&1!==n._rgba[3]){for(a="backgroundColor"===i?e.parentNode:e;(""===r||"transparent"===r)&&a&&a.style;)try{r=t.css(a,"backgroundColor"),a=a.parentNode}catch(h){}n=n.blend(r&&"transparent"!==r?r:"_default")}n=n.toRgbaString()}try{e.style[i]=n}catch(h){}}},t.fx.step[i]=function(e){e.colorInit||(e.start=l(e.elem,i),e.end=l(e.end),e.colorInit=!0),t.cssHooks[i].set(e.elem,e.start.transition(e.end,e.pos))}})},l.hook(a),t.cssHooks.borderColor={expand:function(t){var e={};return f(["Top","Right","Bottom","Left"],function(i,s){e["border"+s+"Color"]=t}),e}},o=t.Color.names={aqua:"#00ffff",black:"#000000",blue:"#0000ff",fuchsia:"#ff00ff",gray:"#808080",green:"#008000",lime:"#00ff00",maroon:"#800000",navy:"#000080",olive:"#808000",purple:"#800080",red:"#ff0000",silver:"#c0c0c0",teal:"#008080",white:"#ffffff",yellow:"#ffff00",transparent:[null,null,null,0],_default:"#ffffff"}}(p),function(){function e(e){var i,s,n=e.ownerDocument.defaultView?e.ownerDocument.defaultView.getComputedStyle(e,null):e.currentStyle,o={};if(n&&n.length&&n[0]&&n[n[0]])for(s=n.length;s--;)i=n[s],"string"==typeof n[i]&&(o[t.camelCase(i)]=n[i]);else for(i in n)"string"==typeof n[i]&&(o[i]=n[i]);return o}function i(e,i){var s,o,a={};for(s in i)o=i[s],e[s]!==o&&(n[s]||(t.fx.step[s]||!isNaN(parseFloat(o)))&&(a[s]=o));return a}var s=["add","remove","toggle"],n={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};t.each(["borderLeftStyle","borderRightStyle","borderBottomStyle","borderTopStyle"],function(e,i){t.fx.step[i]=function(t){("none"!==t.end&&!t.setAttr||1===t.pos&&!t.setAttr)&&(p.style(t.elem,i,t.end),t.setAttr=!0)}}),t.fn.addBack||(t.fn.addBack=function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}),t.effects.animateClass=function(n,o,a,r){var h=t.speed(o,a,r);return this.queue(function(){var o,a=t(this),r=a.attr("class")||"",l=h.children?a.find("*").addBack():a;l=l.map(function(){var i=t(this);return{el:i,start:e(this)}}),o=function(){t.each(s,function(t,e){n[e]&&a[e+"Class"](n[e])})},o(),l=l.map(function(){return this.end=e(this.el[0]),this.diff=i(this.start,this.end),this}),a.attr("class",r),l=l.map(function(){var e=this,i=t.Deferred(),s=t.extend({},h,{queue:!1,complete:function(){i.resolve(e)}});return this.el.animate(this.diff,s),i.promise()}),t.when.apply(t,l.get()).done(function(){o(),t.each(arguments,function(){var e=this.el;t.each(this.diff,function(t){e.css(t,"")})}),h.complete.call(a[0])})})},t.fn.extend({addClass:function(e){return function(i,s,n,o){return s?t.effects.animateClass.call(this,{add:i},s,n,o):e.apply(this,arguments)}}(t.fn.addClass),removeClass:function(e){return function(i,s,n,o){return arguments.length>1?t.effects.animateClass.call(this,{remove:i},s,n,o):e.apply(this,arguments)}}(t.fn.removeClass),toggleClass:function(e){return function(i,s,n,o,a){return"boolean"==typeof s||void 0===s?n?t.effects.animateClass.call(this,s?{add:i}:{remove:i},n,o,a):e.apply(this,arguments):t.effects.animateClass.call(this,{toggle:i},s,n,o)}}(t.fn.toggleClass),switchClass:function(e,i,s,n,o){return t.effects.animateClass.call(this,{add:i,remove:e},s,n,o)}})}(),function(){function e(e,i,s,n){return t.isPlainObject(e)&&(i=e,e=e.effect),e={effect:e},null==i&&(i={}),t.isFunction(i)&&(n=i,s=null,i={}),("number"==typeof i||t.fx.speeds[i])&&(n=s,s=i,i={}),t.isFunction(s)&&(n=s,s=null),i&&t.extend(e,i),s=s||i.duration,e.duration=t.fx.off?0:"number"==typeof s?s:s in t.fx.speeds?t.fx.speeds[s]:t.fx.speeds._default,e.complete=n||i.complete,e}function i(e){return!e||"number"==typeof e||t.fx.speeds[e]?!0:"string"!=typeof e||t.effects.effect[e]?t.isFunction(e)?!0:"object"!=typeof e||e.effect?!1:!0:!0}function s(t,e){var i=e.outerWidth(),s=e.outerHeight(),n=/^rect\((-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto)\)$/,o=n.exec(t)||["",0,i,s,0];return{top:parseFloat(o[1])||0,right:"auto"===o[2]?i:parseFloat(o[2]),bottom:"auto"===o[3]?s:parseFloat(o[3]),left:parseFloat(o[4])||0}}t.expr&&t.expr.filters&&t.expr.filters.animated&&(t.expr.filters.animated=function(e){return function(i){return!!t(i).data(d)||e(i)}}(t.expr.filters.animated)),t.uiBackCompat!==!1&&t.extend(t.effects,{save:function(t,e){for(var i=0,s=e.length;s>i;i++)null!==e[i]&&t.data(c+e[i],t[0].style[e[i]])},restore:function(t,e){for(var i,s=0,n=e.length;n>s;s++)null!==e[s]&&(i=t.data(c+e[s]),t.css(e[s],i))},setMode:function(t,e){return"toggle"===e&&(e=t.is(":hidden")?"show":"hide"),e},createWrapper:function(e){if(e.parent().is(".ui-effects-wrapper"))return e.parent();var i={width:e.outerWidth(!0),height:e.outerHeight(!0),"float":e.css("float")},s=t("<div></div>").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}),n={width:e.width(),height:e.height()},o=document.activeElement;try{o.id}catch(a){o=document.body}return e.wrap(s),(e[0]===o||t.contains(e[0],o))&&t(o).trigger("focus"),s=e.parent(),"static"===e.css("position")?(s.css({position:"relative"}),e.css({position:"relative"})):(t.extend(i,{position:e.css("position"),zIndex:e.css("z-index")}),t.each(["top","left","bottom","right"],function(t,s){i[s]=e.css(s),isNaN(parseInt(i[s],10))&&(i[s]="auto")}),e.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})),e.css(n),s.css(i).show()},removeWrapper:function(e){var i=document.activeElement;return e.parent().is(".ui-effects-wrapper")&&(e.parent().replaceWith(e),(e[0]===i||t.contains(e[0],i))&&t(i).trigger("focus")),e}}),t.extend(t.effects,{version:"1.12.1",define:function(e,i,s){return s||(s=i,i="effect"),t.effects.effect[e]=s,t.effects.effect[e].mode=i,s},scaledDimensions:function(t,e,i){if(0===e)return{height:0,width:0,outerHeight:0,outerWidth:0};var s="horizontal"!==i?(e||100)/100:1,n="vertical"!==i?(e||100)/100:1;return{height:t.height()*n,width:t.width()*s,outerHeight:t.outerHeight()*n,outerWidth:t.outerWidth()*s}},clipToBox:function(t){return{width:t.clip.right-t.clip.left,height:t.clip.bottom-t.clip.top,left:t.clip.left,top:t.clip.top}},unshift:function(t,e,i){var s=t.queue();e>1&&s.splice.apply(s,[1,0].concat(s.splice(e,i))),t.dequeue()},saveStyle:function(t){t.data(u,t[0].style.cssText)},restoreStyle:function(t){t[0].style.cssText=t.data(u)||"",t.removeData(u)},mode:function(t,e){var i=t.is(":hidden");return"toggle"===e&&(e=i?"show":"hide"),(i?"hide"===e:"show"===e)&&(e="none"),e},getBaseline:function(t,e){var i,s;switch(t[0]){case"top":i=0;break;case"middle":i=.5;break;case"bottom":i=1;break;default:i=t[0]/e.height}switch(t[1]){case"left":s=0;break;case"center":s=.5;break;case"right":s=1;break;default:s=t[1]/e.width}return{x:s,y:i}},createPlaceholder:function(e){var i,s=e.css("position"),n=e.position();return e.css({marginTop:e.css("marginTop"),marginBottom:e.css("marginBottom"),marginLeft:e.css("marginLeft"),marginRight:e.css("marginRight")}).outerWidth(e.outerWidth()).outerHeight(e.outerHeight()),/^(static|relative)/.test(s)&&(s="absolute",i=t("<"+e[0].nodeName+">").insertAfter(e).css({display:/^(inline|ruby)/.test(e.css("display"))?"inline-block":"block",visibility:"hidden",marginTop:e.css("marginTop"),marginBottom:e.css("marginBottom"),marginLeft:e.css("marginLeft"),marginRight:e.css("marginRight"),"float":e.css("float")}).outerWidth(e.outerWidth()).outerHeight(e.outerHeight()).addClass("ui-effects-placeholder"),e.data(c+"placeholder",i)),e.css({position:s,left:n.left,top:n.top}),i},removePlaceholder:function(t){var e=c+"placeholder",i=t.data(e);i&&(i.remove(),t.removeData(e))},cleanUp:function(e){t.effects.restoreStyle(e),t.effects.removePlaceholder(e)},setTransition:function(e,i,s,n){return n=n||{},t.each(i,function(t,i){var o=e.cssUnit(i);o[0]>0&&(n[i]=o[0]*s+o[1])}),n}}),t.fn.extend({effect:function(){function i(e){function i(){r.removeData(d),t.effects.cleanUp(r),"hide"===s.mode&&r.hide(),a()}function a(){t.isFunction(h)&&h.call(r[0]),t.isFunction(e)&&e()}var r=t(this);s.mode=c.shift(),t.uiBackCompat===!1||o?"none"===s.mode?(r[l](),a()):n.call(r[0],s,i):(r.is(":hidden")?"hide"===l:"show"===l)?(r[l](),a()):n.call(r[0],s,a)}var s=e.apply(this,arguments),n=t.effects.effect[s.effect],o=n.mode,a=s.queue,r=a||"fx",h=s.complete,l=s.mode,c=[],u=function(e){var i=t(this),s=t.effects.mode(i,l)||o;i.data(d,!0),c.push(s),o&&("show"===s||s===o&&"hide"===s)&&i.show(),o&&"none"===s||t.effects.saveStyle(i),t.isFunction(e)&&e()};return t.fx.off||!n?l?this[l](s.duration,h):this.each(function(){h&&h.call(this)}):a===!1?this.each(u).each(i):this.queue(r,u).queue(r,i)},show:function(t){return function(s){if(i(s))return t.apply(this,arguments);var n=e.apply(this,arguments);return n.mode="show",this.effect.call(this,n)
-}}(t.fn.show),hide:function(t){return function(s){if(i(s))return t.apply(this,arguments);var n=e.apply(this,arguments);return n.mode="hide",this.effect.call(this,n)}}(t.fn.hide),toggle:function(t){return function(s){if(i(s)||"boolean"==typeof s)return t.apply(this,arguments);var n=e.apply(this,arguments);return n.mode="toggle",this.effect.call(this,n)}}(t.fn.toggle),cssUnit:function(e){var i=this.css(e),s=[];return t.each(["em","px","%","pt"],function(t,e){i.indexOf(e)>0&&(s=[parseFloat(i),e])}),s},cssClip:function(t){return t?this.css("clip","rect("+t.top+"px "+t.right+"px "+t.bottom+"px "+t.left+"px)"):s(this.css("clip"),this)},transfer:function(e,i){var s=t(this),n=t(e.to),o="fixed"===n.css("position"),a=t("body"),r=o?a.scrollTop():0,h=o?a.scrollLeft():0,l=n.offset(),c={top:l.top-r,left:l.left-h,height:n.innerHeight(),width:n.innerWidth()},u=s.offset(),d=t("<div class='ui-effects-transfer'></div>").appendTo("body").addClass(e.className).css({top:u.top-r,left:u.left-h,height:s.innerHeight(),width:s.innerWidth(),position:o?"fixed":"absolute"}).animate(c,e.duration,e.easing,function(){d.remove(),t.isFunction(i)&&i()})}}),t.fx.step.clip=function(e){e.clipInit||(e.start=t(e.elem).cssClip(),"string"==typeof e.end&&(e.end=s(e.end,e.elem)),e.clipInit=!0),t(e.elem).cssClip({top:e.pos*(e.end.top-e.start.top)+e.start.top,right:e.pos*(e.end.right-e.start.right)+e.start.right,bottom:e.pos*(e.end.bottom-e.start.bottom)+e.start.bottom,left:e.pos*(e.end.left-e.start.left)+e.start.left})}}(),function(){var e={};t.each(["Quad","Cubic","Quart","Quint","Expo"],function(t,i){e[i]=function(e){return Math.pow(e,t+2)}}),t.extend(e,{Sine:function(t){return 1-Math.cos(t*Math.PI/2)},Circ:function(t){return 1-Math.sqrt(1-t*t)},Elastic:function(t){return 0===t||1===t?t:-Math.pow(2,8*(t-1))*Math.sin((80*(t-1)-7.5)*Math.PI/15)},Back:function(t){return t*t*(3*t-2)},Bounce:function(t){for(var e,i=4;((e=Math.pow(2,--i))-1)/11>t;);return 1/Math.pow(4,3-i)-7.5625*Math.pow((3*e-2)/22-t,2)}}),t.each(e,function(e,i){t.easing["easeIn"+e]=i,t.easing["easeOut"+e]=function(t){return 1-i(1-t)},t.easing["easeInOut"+e]=function(t){return.5>t?i(2*t)/2:1-i(-2*t+2)/2}})}();var f=t.effects;t.effects.define("blind","hide",function(e,i){var s={up:["bottom","top"],vertical:["bottom","top"],down:["top","bottom"],left:["right","left"],horizontal:["right","left"],right:["left","right"]},n=t(this),o=e.direction||"up",a=n.cssClip(),r={clip:t.extend({},a)},h=t.effects.createPlaceholder(n);r.clip[s[o][0]]=r.clip[s[o][1]],"show"===e.mode&&(n.cssClip(r.clip),h&&h.css(t.effects.clipToBox(r)),r.clip=a),h&&h.animate(t.effects.clipToBox(r),e.duration,e.easing),n.animate(r,{queue:!1,duration:e.duration,easing:e.easing,complete:i})}),t.effects.define("bounce",function(e,i){var s,n,o,a=t(this),r=e.mode,h="hide"===r,l="show"===r,c=e.direction||"up",u=e.distance,d=e.times||5,p=2*d+(l||h?1:0),f=e.duration/p,g=e.easing,m="up"===c||"down"===c?"top":"left",_="up"===c||"left"===c,v=0,b=a.queue().length;for(t.effects.createPlaceholder(a),o=a.css(m),u||(u=a["top"===m?"outerHeight":"outerWidth"]()/3),l&&(n={opacity:1},n[m]=o,a.css("opacity",0).css(m,_?2*-u:2*u).animate(n,f,g)),h&&(u/=Math.pow(2,d-1)),n={},n[m]=o;d>v;v++)s={},s[m]=(_?"-=":"+=")+u,a.animate(s,f,g).animate(n,f,g),u=h?2*u:u/2;h&&(s={opacity:0},s[m]=(_?"-=":"+=")+u,a.animate(s,f,g)),a.queue(i),t.effects.unshift(a,b,p+1)}),t.effects.define("clip","hide",function(e,i){var s,n={},o=t(this),a=e.direction||"vertical",r="both"===a,h=r||"horizontal"===a,l=r||"vertical"===a;s=o.cssClip(),n.clip={top:l?(s.bottom-s.top)/2:s.top,right:h?(s.right-s.left)/2:s.right,bottom:l?(s.bottom-s.top)/2:s.bottom,left:h?(s.right-s.left)/2:s.left},t.effects.createPlaceholder(o),"show"===e.mode&&(o.cssClip(n.clip),n.clip=s),o.animate(n,{queue:!1,duration:e.duration,easing:e.easing,complete:i})}),t.effects.define("drop","hide",function(e,i){var s,n=t(this),o=e.mode,a="show"===o,r=e.direction||"left",h="up"===r||"down"===r?"top":"left",l="up"===r||"left"===r?"-=":"+=",c="+="===l?"-=":"+=",u={opacity:0};t.effects.createPlaceholder(n),s=e.distance||n["top"===h?"outerHeight":"outerWidth"](!0)/2,u[h]=l+s,a&&(n.css(u),u[h]=c+s,u.opacity=1),n.animate(u,{queue:!1,duration:e.duration,easing:e.easing,complete:i})}),t.effects.define("explode","hide",function(e,i){function s(){b.push(this),b.length===u*d&&n()}function n(){p.css({visibility:"visible"}),t(b).remove(),i()}var o,a,r,h,l,c,u=e.pieces?Math.round(Math.sqrt(e.pieces)):3,d=u,p=t(this),f=e.mode,g="show"===f,m=p.show().css("visibility","hidden").offset(),_=Math.ceil(p.outerWidth()/d),v=Math.ceil(p.outerHeight()/u),b=[];for(o=0;u>o;o++)for(h=m.top+o*v,c=o-(u-1)/2,a=0;d>a;a++)r=m.left+a*_,l=a-(d-1)/2,p.clone().appendTo("body").wrap("<div></div>").css({position:"absolute",visibility:"visible",left:-a*_,top:-o*v}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:_,height:v,left:r+(g?l*_:0),top:h+(g?c*v:0),opacity:g?0:1}).animate({left:r+(g?0:l*_),top:h+(g?0:c*v),opacity:g?1:0},e.duration||500,e.easing,s)}),t.effects.define("fade","toggle",function(e,i){var s="show"===e.mode;t(this).css("opacity",s?0:1).animate({opacity:s?1:0},{queue:!1,duration:e.duration,easing:e.easing,complete:i})}),t.effects.define("fold","hide",function(e,i){var s=t(this),n=e.mode,o="show"===n,a="hide"===n,r=e.size||15,h=/([0-9]+)%/.exec(r),l=!!e.horizFirst,c=l?["right","bottom"]:["bottom","right"],u=e.duration/2,d=t.effects.createPlaceholder(s),p=s.cssClip(),f={clip:t.extend({},p)},g={clip:t.extend({},p)},m=[p[c[0]],p[c[1]]],_=s.queue().length;h&&(r=parseInt(h[1],10)/100*m[a?0:1]),f.clip[c[0]]=r,g.clip[c[0]]=r,g.clip[c[1]]=0,o&&(s.cssClip(g.clip),d&&d.css(t.effects.clipToBox(g)),g.clip=p),s.queue(function(i){d&&d.animate(t.effects.clipToBox(f),u,e.easing).animate(t.effects.clipToBox(g),u,e.easing),i()}).animate(f,u,e.easing).animate(g,u,e.easing).queue(i),t.effects.unshift(s,_,4)}),t.effects.define("highlight","show",function(e,i){var s=t(this),n={backgroundColor:s.css("backgroundColor")};"hide"===e.mode&&(n.opacity=0),t.effects.saveStyle(s),s.css({backgroundImage:"none",backgroundColor:e.color||"#ffff99"}).animate(n,{queue:!1,duration:e.duration,easing:e.easing,complete:i})}),t.effects.define("size",function(e,i){var s,n,o,a=t(this),r=["fontSize"],h=["borderTopWidth","borderBottomWidth","paddingTop","paddingBottom"],l=["borderLeftWidth","borderRightWidth","paddingLeft","paddingRight"],c=e.mode,u="effect"!==c,d=e.scale||"both",p=e.origin||["middle","center"],f=a.css("position"),g=a.position(),m=t.effects.scaledDimensions(a),_=e.from||m,v=e.to||t.effects.scaledDimensions(a,0);t.effects.createPlaceholder(a),"show"===c&&(o=_,_=v,v=o),n={from:{y:_.height/m.height,x:_.width/m.width},to:{y:v.height/m.height,x:v.width/m.width}},("box"===d||"both"===d)&&(n.from.y!==n.to.y&&(_=t.effects.setTransition(a,h,n.from.y,_),v=t.effects.setTransition(a,h,n.to.y,v)),n.from.x!==n.to.x&&(_=t.effects.setTransition(a,l,n.from.x,_),v=t.effects.setTransition(a,l,n.to.x,v))),("content"===d||"both"===d)&&n.from.y!==n.to.y&&(_=t.effects.setTransition(a,r,n.from.y,_),v=t.effects.setTransition(a,r,n.to.y,v)),p&&(s=t.effects.getBaseline(p,m),_.top=(m.outerHeight-_.outerHeight)*s.y+g.top,_.left=(m.outerWidth-_.outerWidth)*s.x+g.left,v.top=(m.outerHeight-v.outerHeight)*s.y+g.top,v.left=(m.outerWidth-v.outerWidth)*s.x+g.left),a.css(_),("content"===d||"both"===d)&&(h=h.concat(["marginTop","marginBottom"]).concat(r),l=l.concat(["marginLeft","marginRight"]),a.find("*[width]").each(function(){var i=t(this),s=t.effects.scaledDimensions(i),o={height:s.height*n.from.y,width:s.width*n.from.x,outerHeight:s.outerHeight*n.from.y,outerWidth:s.outerWidth*n.from.x},a={height:s.height*n.to.y,width:s.width*n.to.x,outerHeight:s.height*n.to.y,outerWidth:s.width*n.to.x};n.from.y!==n.to.y&&(o=t.effects.setTransition(i,h,n.from.y,o),a=t.effects.setTransition(i,h,n.to.y,a)),n.from.x!==n.to.x&&(o=t.effects.setTransition(i,l,n.from.x,o),a=t.effects.setTransition(i,l,n.to.x,a)),u&&t.effects.saveStyle(i),i.css(o),i.animate(a,e.duration,e.easing,function(){u&&t.effects.restoreStyle(i)})})),a.animate(v,{queue:!1,duration:e.duration,easing:e.easing,complete:function(){var e=a.offset();0===v.opacity&&a.css("opacity",_.opacity),u||(a.css("position","static"===f?"relative":f).offset(e),t.effects.saveStyle(a)),i()}})}),t.effects.define("scale",function(e,i){var s=t(this),n=e.mode,o=parseInt(e.percent,10)||(0===parseInt(e.percent,10)?0:"effect"!==n?0:100),a=t.extend(!0,{from:t.effects.scaledDimensions(s),to:t.effects.scaledDimensions(s,o,e.direction||"both"),origin:e.origin||["middle","center"]},e);e.fade&&(a.from.opacity=1,a.to.opacity=0),t.effects.effect.size.call(this,a,i)}),t.effects.define("puff","hide",function(e,i){var s=t.extend(!0,{},e,{fade:!0,percent:parseInt(e.percent,10)||150});t.effects.effect.scale.call(this,s,i)}),t.effects.define("pulsate","show",function(e,i){var s=t(this),n=e.mode,o="show"===n,a="hide"===n,r=o||a,h=2*(e.times||5)+(r?1:0),l=e.duration/h,c=0,u=1,d=s.queue().length;for((o||!s.is(":visible"))&&(s.css("opacity",0).show(),c=1);h>u;u++)s.animate({opacity:c},l,e.easing),c=1-c;s.animate({opacity:c},l,e.easing),s.queue(i),t.effects.unshift(s,d,h+1)}),t.effects.define("shake",function(e,i){var s=1,n=t(this),o=e.direction||"left",a=e.distance||20,r=e.times||3,h=2*r+1,l=Math.round(e.duration/h),c="up"===o||"down"===o?"top":"left",u="up"===o||"left"===o,d={},p={},f={},g=n.queue().length;for(t.effects.createPlaceholder(n),d[c]=(u?"-=":"+=")+a,p[c]=(u?"+=":"-=")+2*a,f[c]=(u?"-=":"+=")+2*a,n.animate(d,l,e.easing);r>s;s++)n.animate(p,l,e.easing).animate(f,l,e.easing);n.animate(p,l,e.easing).animate(d,l/2,e.easing).queue(i),t.effects.unshift(n,g,h+1)}),t.effects.define("slide","show",function(e,i){var s,n,o=t(this),a={up:["bottom","top"],down:["top","bottom"],left:["right","left"],right:["left","right"]},r=e.mode,h=e.direction||"left",l="up"===h||"down"===h?"top":"left",c="up"===h||"left"===h,u=e.distance||o["top"===l?"outerHeight":"outerWidth"](!0),d={};t.effects.createPlaceholder(o),s=o.cssClip(),n=o.position()[l],d[l]=(c?-1:1)*u+n,d.clip=o.cssClip(),d.clip[a[h][1]]=d.clip[a[h][0]],"show"===r&&(o.cssClip(d.clip),o.css(l,d[l]),d.clip=s,d[l]=n),o.animate(d,{queue:!1,duration:e.duration,easing:e.easing,complete:i})});var f;t.uiBackCompat!==!1&&(f=t.effects.define("transfer",function(e,i){t(this).transfer(e,i)})),t.ui.focusable=function(i,s){var n,o,a,r,h,l=i.nodeName.toLowerCase();return"area"===l?(n=i.parentNode,o=n.name,i.href&&o&&"map"===n.nodeName.toLowerCase()?(a=t("img[usemap='#"+o+"']"),a.length>0&&a.is(":visible")):!1):(/^(input|select|textarea|button|object)$/.test(l)?(r=!i.disabled,r&&(h=t(i).closest("fieldset")[0],h&&(r=!h.disabled))):r="a"===l?i.href||s:s,r&&t(i).is(":visible")&&e(t(i)))},t.extend(t.expr[":"],{focusable:function(e){return t.ui.focusable(e,null!=t.attr(e,"tabindex"))}}),t.ui.focusable,t.fn.form=function(){return"string"==typeof this[0].form?this.closest("form"):t(this[0].form)},t.ui.formResetMixin={_formResetHandler:function(){var e=t(this);setTimeout(function(){var i=e.data("ui-form-reset-instances");t.each(i,function(){this.refresh()})})},_bindFormResetHandler:function(){if(this.form=this.element.form(),this.form.length){var t=this.form.data("ui-form-reset-instances")||[];t.length||this.form.on("reset.ui-form-reset",this._formResetHandler),t.push(this),this.form.data("ui-form-reset-instances",t)}},_unbindFormResetHandler:function(){if(this.form.length){var e=this.form.data("ui-form-reset-instances");e.splice(t.inArray(this,e),1),e.length?this.form.data("ui-form-reset-instances",e):this.form.removeData("ui-form-reset-instances").off("reset.ui-form-reset")}}},"1.7"===t.fn.jquery.substring(0,3)&&(t.each(["Width","Height"],function(e,i){function s(e,i,s,o){return t.each(n,function(){i-=parseFloat(t.css(e,"padding"+this))||0,s&&(i-=parseFloat(t.css(e,"border"+this+"Width"))||0),o&&(i-=parseFloat(t.css(e,"margin"+this))||0)}),i}var n="Width"===i?["Left","Right"]:["Top","Bottom"],o=i.toLowerCase(),a={innerWidth:t.fn.innerWidth,innerHeight:t.fn.innerHeight,outerWidth:t.fn.outerWidth,outerHeight:t.fn.outerHeight};t.fn["inner"+i]=function(e){return void 0===e?a["inner"+i].call(this):this.each(function(){t(this).css(o,s(this,e)+"px")})},t.fn["outer"+i]=function(e,n){return"number"!=typeof e?a["outer"+i].call(this,e):this.each(function(){t(this).css(o,s(this,e,!0,n)+"px")})}}),t.fn.addBack=function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}),t.ui.keyCode={BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38},t.ui.escapeSelector=function(){var t=/([!"#$%&'()*+,./:;<=>?@[\]^`{|}~])/g;return function(e){return e.replace(t,"\\$1")}}(),t.fn.labels=function(){var e,i,s,n,o;return this[0].labels&&this[0].labels.length?this.pushStack(this[0].labels):(n=this.eq(0).parents("label"),s=this.attr("id"),s&&(e=this.eq(0).parents().last(),o=e.add(e.length?e.siblings():this.siblings()),i="label[for='"+t.ui.escapeSelector(s)+"']",n=n.add(o.find(i).addBack(i))),this.pushStack(n))},t.fn.scrollParent=function(e){var i=this.css("position"),s="absolute"===i,n=e?/(auto|scroll|hidden)/:/(auto|scroll)/,o=this.parents().filter(function(){var e=t(this);return s&&"static"===e.css("position")?!1:n.test(e.css("overflow")+e.css("overflow-y")+e.css("overflow-x"))}).eq(0);return"fixed"!==i&&o.length?o:t(this[0].ownerDocument||document)},t.extend(t.expr[":"],{tabbable:function(e){var i=t.attr(e,"tabindex"),s=null!=i;return(!s||i>=0)&&t.ui.focusable(e,s)}}),t.fn.extend({uniqueId:function(){var t=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++t)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&t(this).removeAttr("id")})}}),t.widget("ui.accordion",{version:"1.12.1",options:{active:0,animate:{},classes:{"ui-accordion-header":"ui-corner-top","ui-accordion-header-collapsed":"ui-corner-all","ui-accordion-content":"ui-corner-bottom"},collapsible:!1,event:"click",header:"> li > :first-child, > :not(li):even",heightStyle:"auto",icons:{activeHeader:"ui-icon-triangle-1-s",header:"ui-icon-triangle-1-e"},activate:null,beforeActivate:null},hideProps:{borderTopWidth:"hide",borderBottomWidth:"hide",paddingTop:"hide",paddingBottom:"hide",height:"hide"},showProps:{borderTopWidth:"show",borderBottomWidth:"show",paddingTop:"show",paddingBottom:"show",height:"show"},_create:function(){var e=this.options;this.prevShow=this.prevHide=t(),this._addClass("ui-accordion","ui-widget ui-helper-reset"),this.element.attr("role","tablist"),e.collapsible||e.active!==!1&&null!=e.active||(e.active=0),this._processPanels(),0>e.active&&(e.active+=this.headers.length),this._refresh()},_getCreateEventData:function(){return{header:this.active,panel:this.active.length?this.active.next():t()}},_createIcons:function(){var e,i,s=this.options.icons;s&&(e=t("<span>"),this._addClass(e,"ui-accordion-header-icon","ui-icon "+s.header),e.prependTo(this.headers),i=this.active.children(".ui-accordion-header-icon"),this._removeClass(i,s.header)._addClass(i,null,s.activeHeader)._addClass(this.headers,"ui-accordion-icons"))},_destroyIcons:function(){this._removeClass(this.headers,"ui-accordion-icons"),this.headers.children(".ui-accordion-header-icon").remove()},_destroy:function(){var t;this.element.removeAttr("role"),this.headers.removeAttr("role aria-expanded aria-selected aria-controls tabIndex").removeUniqueId(),this._destroyIcons(),t=this.headers.next().css("display","").removeAttr("role aria-hidden aria-labelledby").removeUniqueId(),"content"!==this.options.heightStyle&&t.css("height","")},_setOption:function(t,e){return"active"===t?(this._activate(e),void 0):("event"===t&&(this.options.event&&this._off(this.headers,this.options.event),this._setupEvents(e)),this._super(t,e),"collapsible"!==t||e||this.options.active!==!1||this._activate(0),"icons"===t&&(this._destroyIcons(),e&&this._createIcons()),void 0)},_setOptionDisabled:function(t){this._super(t),this.element.attr("aria-disabled",t),this._toggleClass(null,"ui-state-disabled",!!t),this._toggleClass(this.headers.add(this.headers.next()),null,"ui-state-disabled",!!t)},_keydown:function(e){if(!e.altKey&&!e.ctrlKey){var i=t.ui.keyCode,s=this.headers.length,n=this.headers.index(e.target),o=!1;switch(e.keyCode){case i.RIGHT:case i.DOWN:o=this.headers[(n+1)%s];break;case i.LEFT:case i.UP:o=this.headers[(n-1+s)%s];break;case i.SPACE:case i.ENTER:this._eventHandler(e);break;case i.HOME:o=this.headers[0];break;case i.END:o=this.headers[s-1]}o&&(t(e.target).attr("tabIndex",-1),t(o).attr("tabIndex",0),t(o).trigger("focus"),e.preventDefault())}},_panelKeyDown:function(e){e.keyCode===t.ui.keyCode.UP&&e.ctrlKey&&t(e.currentTarget).prev().trigger("focus")},refresh:function(){var e=this.options;this._processPanels(),e.active===!1&&e.collapsible===!0||!this.headers.length?(e.active=!1,this.active=t()):e.active===!1?this._activate(0):this.active.length&&!t.contains(this.element[0],this.active[0])?this.headers.length===this.headers.find(".ui-state-disabled").length?(e.active=!1,this.active=t()):this._activate(Math.max(0,e.active-1)):e.active=this.headers.index(this.active),this._destroyIcons(),this._refresh()},_processPanels:function(){var t=this.headers,e=this.panels;this.headers=this.element.find(this.options.header),this._addClass(this.headers,"ui-accordion-header ui-accordion-header-collapsed","ui-state-default"),this.panels=this.headers.next().filter(":not(.ui-accordion-content-active)").hide(),this._addClass(this.panels,"ui-accordion-content","ui-helper-reset ui-widget-content"),e&&(this._off(t.not(this.headers)),this._off(e.not(this.panels)))},_refresh:function(){var e,i=this.options,s=i.heightStyle,n=this.element.parent();this.active=this._findActive(i.active),this._addClass(this.active,"ui-accordion-header-active","ui-state-active")._removeClass(this.active,"ui-accordion-header-collapsed"),this._addClass(this.active.next(),"ui-accordion-content-active"),this.active.next().show(),this.headers.attr("role","tab").each(function(){var e=t(this),i=e.uniqueId().attr("id"),s=e.next(),n=s.uniqueId().attr("id");e.attr("aria-controls",n),s.attr("aria-labelledby",i)}).next().attr("role","tabpanel"),this.headers.not(this.active).attr({"aria-selected":"false","aria-expanded":"false",tabIndex:-1}).next().attr({"aria-hidden":"true"}).hide(),this.active.length?this.active.attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0}).next().attr({"aria-hidden":"false"}):this.headers.eq(0).attr("tabIndex",0),this._createIcons(),this._setupEvents(i.event),"fill"===s?(e=n.height(),this.element.siblings(":visible").each(function(){var i=t(this),s=i.css("position");"absolute"!==s&&"fixed"!==s&&(e-=i.outerHeight(!0))}),this.headers.each(function(){e-=t(this).outerHeight(!0)}),this.headers.next().each(function(){t(this).height(Math.max(0,e-t(this).innerHeight()+t(this).height()))}).css("overflow","auto")):"auto"===s&&(e=0,this.headers.next().each(function(){var i=t(this).is(":visible");i||t(this).show(),e=Math.max(e,t(this).css("height","").height()),i||t(this).hide()}).height(e))},_activate:function(e){var i=this._findActive(e)[0];i!==this.active[0]&&(i=i||this.active[0],this._eventHandler({target:i,currentTarget:i,preventDefault:t.noop}))},_findActive:function(e){return"number"==typeof e?this.headers.eq(e):t()},_setupEvents:function(e){var i={keydown:"_keydown"};e&&t.each(e.split(" "),function(t,e){i[e]="_eventHandler"}),this._off(this.headers.add(this.headers.next())),this._on(this.headers,i),this._on(this.headers.next(),{keydown:"_panelKeyDown"}),this._hoverable(this.headers),this._focusable(this.headers)},_eventHandler:function(e){var i,s,n=this.options,o=this.active,a=t(e.currentTarget),r=a[0]===o[0],h=r&&n.collapsible,l=h?t():a.next(),c=o.next(),u={oldHeader:o,oldPanel:c,newHeader:h?t():a,newPanel:l};e.preventDefault(),r&&!n.collapsible||this._trigger("beforeActivate",e,u)===!1||(n.active=h?!1:this.headers.index(a),this.active=r?t():a,this._toggle(u),this._removeClass(o,"ui-accordion-header-active","ui-state-active"),n.icons&&(i=o.children(".ui-accordion-header-icon"),this._removeClass(i,null,n.icons.activeHeader)._addClass(i,null,n.icons.header)),r||(this._removeClass(a,"ui-accordion-header-collapsed")._addClass(a,"ui-accordion-header-active","ui-state-active"),n.icons&&(s=a.children(".ui-accordion-header-icon"),this._removeClass(s,null,n.icons.header)._addClass(s,null,n.icons.activeHeader)),this._addClass(a.next(),"ui-accordion-content-active")))},_toggle:function(e){var i=e.newPanel,s=this.prevShow.length?this.prevShow:e.oldPanel;this.prevShow.add(this.prevHide).stop(!0,!0),this.prevShow=i,this.prevHide=s,this.options.animate?this._animate(i,s,e):(s.hide(),i.show(),this._toggleComplete(e)),s.attr({"aria-hidden":"true"}),s.prev().attr({"aria-selected":"false","aria-expanded":"false"}),i.length&&s.length?s.prev().attr({tabIndex:-1,"aria-expanded":"false"}):i.length&&this.headers.filter(function(){return 0===parseInt(t(this).attr("tabIndex"),10)}).attr("tabIndex",-1),i.attr("aria-hidden","false").prev().attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0})},_animate:function(t,e,i){var s,n,o,a=this,r=0,h=t.css("box-sizing"),l=t.length&&(!e.length||t.index()<e.index()),c=this.options.animate||{},u=l&&c.down||c,d=function(){a._toggleComplete(i)};return"number"==typeof u&&(o=u),"string"==typeof u&&(n=u),n=n||u.easing||c.easing,o=o||u.duration||c.duration,e.length?t.length?(s=t.show().outerHeight(),e.animate(this.hideProps,{duration:o,easing:n,step:function(t,e){e.now=Math.round(t)}}),t.hide().animate(this.showProps,{duration:o,easing:n,complete:d,step:function(t,i){i.now=Math.round(t),"height"!==i.prop?"content-box"===h&&(r+=i.now):"content"!==a.options.heightStyle&&(i.now=Math.round(s-e.outerHeight()-r),r=0)}}),void 0):e.animate(this.hideProps,o,n,d):t.animate(this.showProps,o,n,d)},_toggleComplete:function(t){var e=t.oldPanel,i=e.prev();this._removeClass(e,"ui-accordion-content-active"),this._removeClass(i,"ui-accordion-header-active")._addClass(i,"ui-accordion-header-collapsed"),e.length&&(e.parent()[0].className=e.parent()[0].className),this._trigger("activate",null,t)}}),t.ui.safeActiveElement=function(t){var e;try{e=t.activeElement}catch(i){e=t.body}return e||(e=t.body),e.nodeName||(e=t.body),e},t.widget("ui.menu",{version:"1.12.1",defaultElement:"<ul>",delay:300,options:{icons:{submenu:"ui-icon-caret-1-e"},items:"> *",menus:"ul",position:{my:"left top",at:"right top"},role:"menu",blur:null,focus:null,select:null},_create:function(){this.activeMenu=this.element,this.mouseHandled=!1,this.element.uniqueId().attr({role:this.options.role,tabIndex:0}),this._addClass("ui-menu","ui-widget ui-widget-content"),this._on({"mousedown .ui-menu-item":function(t){t.preventDefault()},"click .ui-menu-item":function(e){var i=t(e.target),s=t(t.ui.safeActiveElement(this.document[0]));!this.mouseHandled&&i.not(".ui-state-disabled").length&&(this.select(e),e.isPropagationStopped()||(this.mouseHandled=!0),i.has(".ui-menu").length?this.expand(e):!this.element.is(":focus")&&s.closest(".ui-menu").length&&(this.element.trigger("focus",[!0]),this.active&&1===this.active.parents(".ui-menu").length&&clearTimeout(this.timer)))},"mouseenter .ui-menu-item":function(e){if(!this.previousFilter){var i=t(e.target).closest(".ui-menu-item"),s=t(e.currentTarget);i[0]===s[0]&&(this._removeClass(s.siblings().children(".ui-state-active"),null,"ui-state-active"),this.focus(e,s))}},mouseleave:"collapseAll","mouseleave .ui-menu":"collapseAll",focus:function(t,e){var i=this.active||this.element.find(this.options.items).eq(0);e||this.focus(t,i)},blur:function(e){this._delay(function(){var i=!t.contains(this.element[0],t.ui.safeActiveElement(this.document[0]));i&&this.collapseAll(e)})},keydown:"_keydown"}),this.refresh(),this._on(this.document,{click:function(t){this._closeOnDocumentClick(t)&&this.collapseAll(t),this.mouseHandled=!1}})},_destroy:function(){var e=this.element.find(".ui-menu-item").removeAttr("role aria-disabled"),i=e.children(".ui-menu-item-wrapper").removeUniqueId().removeAttr("tabIndex role aria-haspopup");this.element.removeAttr("aria-activedescendant").find(".ui-menu").addBack().removeAttr("role aria-labelledby aria-expanded aria-hidden aria-disabled tabIndex").removeUniqueId().show(),i.children().each(function(){var e=t(this);e.data("ui-menu-submenu-caret")&&e.remove()})},_keydown:function(e){var i,s,n,o,a=!0;switch(e.keyCode){case t.ui.keyCode.PAGE_UP:this.previousPage(e);break;case t.ui.keyCode.PAGE_DOWN:this.nextPage(e);break;case t.ui.keyCode.HOME:this._move("first","first",e);break;case t.ui.keyCode.END:this._move("last","last",e);break;case t.ui.keyCode.UP:this.previous(e);break;case t.ui.keyCode.DOWN:this.next(e);break;case t.ui.keyCode.LEFT:this.collapse(e);break;case t.ui.keyCode.RIGHT:this.active&&!this.active.is(".ui-state-disabled")&&this.expand(e);break;case t.ui.keyCode.ENTER:case t.ui.keyCode.SPACE:this._activate(e);break;case t.ui.keyCode.ESCAPE:this.collapse(e);break;default:a=!1,s=this.previousFilter||"",o=!1,n=e.keyCode>=96&&105>=e.keyCode?""+(e.keyCode-96):String.fromCharCode(e.keyCode),clearTimeout(this.filterTimer),n===s?o=!0:n=s+n,i=this._filterMenuItems(n),i=o&&-1!==i.index(this.active.next())?this.active.nextAll(".ui-menu-item"):i,i.length||(n=String.fromCharCode(e.keyCode),i=this._filterMenuItems(n)),i.length?(this.focus(e,i),this.previousFilter=n,this.filterTimer=this._delay(function(){delete this.previousFilter},1e3)):delete this.previousFilter}a&&e.preventDefault()},_activate:function(t){this.active&&!this.active.is(".ui-state-disabled")&&(this.active.children("[aria-haspopup='true']").length?this.expand(t):this.select(t))},refresh:function(){var e,i,s,n,o,a=this,r=this.options.icons.submenu,h=this.element.find(this.options.menus);this._toggleClass("ui-menu-icons",null,!!this.element.find(".ui-icon").length),s=h.filter(":not(.ui-menu)").hide().attr({role:this.options.role,"aria-hidden":"true","aria-expanded":"false"}).each(function(){var e=t(this),i=e.prev(),s=t("<span>").data("ui-menu-submenu-caret",!0);a._addClass(s,"ui-menu-icon","ui-icon "+r),i.attr("aria-haspopup","true").prepend(s),e.attr("aria-labelledby",i.attr("id"))}),this._addClass(s,"ui-menu","ui-widget ui-widget-content ui-front"),e=h.add(this.element),i=e.find(this.options.items),i.not(".ui-menu-item").each(function(){var e=t(this);a._isDivider(e)&&a._addClass(e,"ui-menu-divider","ui-widget-content")}),n=i.not(".ui-menu-item, .ui-menu-divider"),o=n.children().not(".ui-menu").uniqueId().attr({tabIndex:-1,role:this._itemRole()}),this._addClass(n,"ui-menu-item")._addClass(o,"ui-menu-item-wrapper"),i.filter(".ui-state-disabled").attr("aria-disabled","true"),this.active&&!t.contains(this.element[0],this.active[0])&&this.blur()},_itemRole:function(){return{menu:"menuitem",listbox:"option"}[this.options.role]},_setOption:function(t,e){if("icons"===t){var i=this.element.find(".ui-menu-icon");this._removeClass(i,null,this.options.icons.submenu)._addClass(i,null,e.submenu)}this._super(t,e)},_setOptionDisabled:function(t){this._super(t),this.element.attr("aria-disabled",t+""),this._toggleClass(null,"ui-state-disabled",!!t)},focus:function(t,e){var i,s,n;this.blur(t,t&&"focus"===t.type),this._scrollIntoView(e),this.active=e.first(),s=this.active.children(".ui-menu-item-wrapper"),this._addClass(s,null,"ui-state-active"),this.options.role&&this.element.attr("aria-activedescendant",s.attr("id")),n=this.active.parent().closest(".ui-menu-item").children(".ui-menu-item-wrapper"),this._addClass(n,null,"ui-state-active"),t&&"keydown"===t.type?this._close():this.timer=this._delay(function(){this._close()},this.delay),i=e.children(".ui-menu"),i.length&&t&&/^mouse/.test(t.type)&&this._startOpening(i),this.activeMenu=e.parent(),this._trigger("focus",t,{item:e})},_scrollIntoView:function(e){var i,s,n,o,a,r;this._hasScroll()&&(i=parseFloat(t.css(this.activeMenu[0],"borderTopWidth"))||0,s=parseFloat(t.css(this.activeMenu[0],"paddingTop"))||0,n=e.offset().top-this.activeMenu.offset().top-i-s,o=this.activeMenu.scrollTop(),a=this.activeMenu.height(),r=e.outerHeight(),0>n?this.activeMenu.scrollTop(o+n):n+r>a&&this.activeMenu.scrollTop(o+n-a+r))},blur:function(t,e){e||clearTimeout(this.timer),this.active&&(this._removeClass(this.active.children(".ui-menu-item-wrapper"),null,"ui-state-active"),this._trigger("blur",t,{item:this.active}),this.active=null)},_startOpening:function(t){clearTimeout(this.timer),"true"===t.attr("aria-hidden")&&(this.timer=this._delay(function(){this._close(),this._open(t)},this.delay))},_open:function(e){var i=t.extend({of:this.active},this.options.position);clearTimeout(this.timer),this.element.find(".ui-menu").not(e.parents(".ui-menu")).hide().attr("aria-hidden","true"),e.show().removeAttr("aria-hidden").attr("aria-expanded","true").position(i)},collapseAll:function(e,i){clearTimeout(this.timer),this.timer=this._delay(function(){var s=i?this.element:t(e&&e.target).closest(this.element.find(".ui-menu"));s.length||(s=this.element),this._close(s),this.blur(e),this._removeClass(s.find(".ui-state-active"),null,"ui-state-active"),this.activeMenu=s},this.delay)},_close:function(t){t||(t=this.active?this.active.parent():this.element),t.find(".ui-menu").hide().attr("aria-hidden","true").attr("aria-expanded","false")},_closeOnDocumentClick:function(e){return!t(e.target).closest(".ui-menu").length},_isDivider:function(t){return!/[^\-\u2014\u2013\s]/.test(t.text())},collapse:function(t){var e=this.active&&this.active.parent().closest(".ui-menu-item",this.element);e&&e.length&&(this._close(),this.focus(t,e))},expand:function(t){var e=this.active&&this.active.children(".ui-menu ").find(this.options.items).first();e&&e.length&&(this._open(e.parent()),this._delay(function(){this.focus(t,e)}))},next:function(t){this._move("next","first",t)},previous:function(t){this._move("prev","last",t)},isFirstItem:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},isLastItem:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},_move:function(t,e,i){var s;this.active&&(s="first"===t||"last"===t?this.active["first"===t?"prevAll":"nextAll"](".ui-menu-item").eq(-1):this.active[t+"All"](".ui-menu-item").eq(0)),s&&s.length&&this.active||(s=this.activeMenu.find(this.options.items)[e]()),this.focus(i,s)},nextPage:function(e){var i,s,n;return this.active?(this.isLastItem()||(this._hasScroll()?(s=this.active.offset().top,n=this.element.height(),this.active.nextAll(".ui-menu-item").each(function(){return i=t(this),0>i.offset().top-s-n}),this.focus(e,i)):this.focus(e,this.activeMenu.find(this.options.items)[this.active?"last":"first"]())),void 0):(this.next(e),void 0)},previousPage:function(e){var i,s,n;return this.active?(this.isFirstItem()||(this._hasScroll()?(s=this.active.offset().top,n=this.element.height(),this.active.prevAll(".ui-menu-item").each(function(){return i=t(this),i.offset().top-s+n>0}),this.focus(e,i)):this.focus(e,this.activeMenu.find(this.options.items).first())),void 0):(this.next(e),void 0)},_hasScroll:function(){return this.element.outerHeight()<this.element.prop("scrollHeight")},select:function(e){this.active=this.active||t(e.target).closest(".ui-menu-item");var i={item:this.active};this.active.has(".ui-menu").length||this.collapseAll(e,!0),this._trigger("select",e,i)},_filterMenuItems:function(e){var i=e.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&"),s=RegExp("^"+i,"i");return this.activeMenu.find(this.options.items).filter(".ui-menu-item").filter(function(){return s.test(t.trim(t(this).children(".ui-menu-item-wrapper").text()))})}}),t.widget("ui.autocomplete",{version:"1.12.1",defaultElement:"<input>",options:{appendTo:null,autoFocus:!1,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null,change:null,close:null,focus:null,open:null,response:null,search:null,select:null},requestIndex:0,pending:0,_create:function(){var e,i,s,n=this.element[0].nodeName.toLowerCase(),o="textarea"===n,a="input"===n;
-this.isMultiLine=o||!a&&this._isContentEditable(this.element),this.valueMethod=this.element[o||a?"val":"text"],this.isNewMenu=!0,this._addClass("ui-autocomplete-input"),this.element.attr("autocomplete","off"),this._on(this.element,{keydown:function(n){if(this.element.prop("readOnly"))return e=!0,s=!0,i=!0,void 0;e=!1,s=!1,i=!1;var o=t.ui.keyCode;switch(n.keyCode){case o.PAGE_UP:e=!0,this._move("previousPage",n);break;case o.PAGE_DOWN:e=!0,this._move("nextPage",n);break;case o.UP:e=!0,this._keyEvent("previous",n);break;case o.DOWN:e=!0,this._keyEvent("next",n);break;case o.ENTER:this.menu.active&&(e=!0,n.preventDefault(),this.menu.select(n));break;case o.TAB:this.menu.active&&this.menu.select(n);break;case o.ESCAPE:this.menu.element.is(":visible")&&(this.isMultiLine||this._value(this.term),this.close(n),n.preventDefault());break;default:i=!0,this._searchTimeout(n)}},keypress:function(s){if(e)return e=!1,(!this.isMultiLine||this.menu.element.is(":visible"))&&s.preventDefault(),void 0;if(!i){var n=t.ui.keyCode;switch(s.keyCode){case n.PAGE_UP:this._move("previousPage",s);break;case n.PAGE_DOWN:this._move("nextPage",s);break;case n.UP:this._keyEvent("previous",s);break;case n.DOWN:this._keyEvent("next",s)}}},input:function(t){return s?(s=!1,t.preventDefault(),void 0):(this._searchTimeout(t),void 0)},focus:function(){this.selectedItem=null,this.previous=this._value()},blur:function(t){return this.cancelBlur?(delete this.cancelBlur,void 0):(clearTimeout(this.searching),this.close(t),this._change(t),void 0)}}),this._initSource(),this.menu=t("<ul>").appendTo(this._appendTo()).menu({role:null}).hide().menu("instance"),this._addClass(this.menu.element,"ui-autocomplete","ui-front"),this._on(this.menu.element,{mousedown:function(e){e.preventDefault(),this.cancelBlur=!0,this._delay(function(){delete this.cancelBlur,this.element[0]!==t.ui.safeActiveElement(this.document[0])&&this.element.trigger("focus")})},menufocus:function(e,i){var s,n;return this.isNewMenu&&(this.isNewMenu=!1,e.originalEvent&&/^mouse/.test(e.originalEvent.type))?(this.menu.blur(),this.document.one("mousemove",function(){t(e.target).trigger(e.originalEvent)}),void 0):(n=i.item.data("ui-autocomplete-item"),!1!==this._trigger("focus",e,{item:n})&&e.originalEvent&&/^key/.test(e.originalEvent.type)&&this._value(n.value),s=i.item.attr("aria-label")||n.value,s&&t.trim(s).length&&(this.liveRegion.children().hide(),t("<div>").text(s).appendTo(this.liveRegion)),void 0)},menuselect:function(e,i){var s=i.item.data("ui-autocomplete-item"),n=this.previous;this.element[0]!==t.ui.safeActiveElement(this.document[0])&&(this.element.trigger("focus"),this.previous=n,this._delay(function(){this.previous=n,this.selectedItem=s})),!1!==this._trigger("select",e,{item:s})&&this._value(s.value),this.term=this._value(),this.close(e),this.selectedItem=s}}),this.liveRegion=t("<div>",{role:"status","aria-live":"assertive","aria-relevant":"additions"}).appendTo(this.document[0].body),this._addClass(this.liveRegion,null,"ui-helper-hidden-accessible"),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_destroy:function(){clearTimeout(this.searching),this.element.removeAttr("autocomplete"),this.menu.element.remove(),this.liveRegion.remove()},_setOption:function(t,e){this._super(t,e),"source"===t&&this._initSource(),"appendTo"===t&&this.menu.element.appendTo(this._appendTo()),"disabled"===t&&e&&this.xhr&&this.xhr.abort()},_isEventTargetInWidget:function(e){var i=this.menu.element[0];return e.target===this.element[0]||e.target===i||t.contains(i,e.target)},_closeOnClickOutside:function(t){this._isEventTargetInWidget(t)||this.close()},_appendTo:function(){var e=this.options.appendTo;return e&&(e=e.jquery||e.nodeType?t(e):this.document.find(e).eq(0)),e&&e[0]||(e=this.element.closest(".ui-front, dialog")),e.length||(e=this.document[0].body),e},_initSource:function(){var e,i,s=this;t.isArray(this.options.source)?(e=this.options.source,this.source=function(i,s){s(t.ui.autocomplete.filter(e,i.term))}):"string"==typeof this.options.source?(i=this.options.source,this.source=function(e,n){s.xhr&&s.xhr.abort(),s.xhr=t.ajax({url:i,data:e,dataType:"json",success:function(t){n(t)},error:function(){n([])}})}):this.source=this.options.source},_searchTimeout:function(t){clearTimeout(this.searching),this.searching=this._delay(function(){var e=this.term===this._value(),i=this.menu.element.is(":visible"),s=t.altKey||t.ctrlKey||t.metaKey||t.shiftKey;(!e||e&&!i&&!s)&&(this.selectedItem=null,this.search(null,t))},this.options.delay)},search:function(t,e){return t=null!=t?t:this._value(),this.term=this._value(),t.length<this.options.minLength?this.close(e):this._trigger("search",e)!==!1?this._search(t):void 0},_search:function(t){this.pending++,this._addClass("ui-autocomplete-loading"),this.cancelSearch=!1,this.source({term:t},this._response())},_response:function(){var e=++this.requestIndex;return t.proxy(function(t){e===this.requestIndex&&this.__response(t),this.pending--,this.pending||this._removeClass("ui-autocomplete-loading")},this)},__response:function(t){t&&(t=this._normalize(t)),this._trigger("response",null,{content:t}),!this.options.disabled&&t&&t.length&&!this.cancelSearch?(this._suggest(t),this._trigger("open")):this._close()},close:function(t){this.cancelSearch=!0,this._close(t)},_close:function(t){this._off(this.document,"mousedown"),this.menu.element.is(":visible")&&(this.menu.element.hide(),this.menu.blur(),this.isNewMenu=!0,this._trigger("close",t))},_change:function(t){this.previous!==this._value()&&this._trigger("change",t,{item:this.selectedItem})},_normalize:function(e){return e.length&&e[0].label&&e[0].value?e:t.map(e,function(e){return"string"==typeof e?{label:e,value:e}:t.extend({},e,{label:e.label||e.value,value:e.value||e.label})})},_suggest:function(e){var i=this.menu.element.empty();this._renderMenu(i,e),this.isNewMenu=!0,this.menu.refresh(),i.show(),this._resizeMenu(),i.position(t.extend({of:this.element},this.options.position)),this.options.autoFocus&&this.menu.next(),this._on(this.document,{mousedown:"_closeOnClickOutside"})},_resizeMenu:function(){var t=this.menu.element;t.outerWidth(Math.max(t.width("").outerWidth()+1,this.element.outerWidth()))},_renderMenu:function(e,i){var s=this;t.each(i,function(t,i){s._renderItemData(e,i)})},_renderItemData:function(t,e){return this._renderItem(t,e).data("ui-autocomplete-item",e)},_renderItem:function(e,i){return t("<li>").append(t("<div>").text(i.label)).appendTo(e)},_move:function(t,e){return this.menu.element.is(":visible")?this.menu.isFirstItem()&&/^previous/.test(t)||this.menu.isLastItem()&&/^next/.test(t)?(this.isMultiLine||this._value(this.term),this.menu.blur(),void 0):(this.menu[t](e),void 0):(this.search(null,e),void 0)},widget:function(){return this.menu.element},_value:function(){return this.valueMethod.apply(this.element,arguments)},_keyEvent:function(t,e){(!this.isMultiLine||this.menu.element.is(":visible"))&&(this._move(t,e),e.preventDefault())},_isContentEditable:function(t){if(!t.length)return!1;var e=t.prop("contentEditable");return"inherit"===e?this._isContentEditable(t.parent()):"true"===e}}),t.extend(t.ui.autocomplete,{escapeRegex:function(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")},filter:function(e,i){var s=RegExp(t.ui.autocomplete.escapeRegex(i),"i");return t.grep(e,function(t){return s.test(t.label||t.value||t)})}}),t.widget("ui.autocomplete",t.ui.autocomplete,{options:{messages:{noResults:"No search results.",results:function(t){return t+(t>1?" results are":" result is")+" available, use up and down arrow keys to navigate."}}},__response:function(e){var i;this._superApply(arguments),this.options.disabled||this.cancelSearch||(i=e&&e.length?this.options.messages.results(e.length):this.options.messages.noResults,this.liveRegion.children().hide(),t("<div>").text(i).appendTo(this.liveRegion))}}),t.ui.autocomplete;var g=/ui-corner-([a-z]){2,6}/g;t.widget("ui.controlgroup",{version:"1.12.1",defaultElement:"<div>",options:{direction:"horizontal",disabled:null,onlyVisible:!0,items:{button:"input[type=button], input[type=submit], input[type=reset], button, a",controlgroupLabel:".ui-controlgroup-label",checkboxradio:"input[type='checkbox'], input[type='radio']",selectmenu:"select",spinner:".ui-spinner-input"}},_create:function(){this._enhance()},_enhance:function(){this.element.attr("role","toolbar"),this.refresh()},_destroy:function(){this._callChildMethod("destroy"),this.childWidgets.removeData("ui-controlgroup-data"),this.element.removeAttr("role"),this.options.items.controlgroupLabel&&this.element.find(this.options.items.controlgroupLabel).find(".ui-controlgroup-label-contents").contents().unwrap()},_initWidgets:function(){var e=this,i=[];t.each(this.options.items,function(s,n){var o,a={};return n?"controlgroupLabel"===s?(o=e.element.find(n),o.each(function(){var e=t(this);e.children(".ui-controlgroup-label-contents").length||e.contents().wrapAll("<span class='ui-controlgroup-label-contents'></span>")}),e._addClass(o,null,"ui-widget ui-widget-content ui-state-default"),i=i.concat(o.get()),void 0):(t.fn[s]&&(a=e["_"+s+"Options"]?e["_"+s+"Options"]("middle"):{classes:{}},e.element.find(n).each(function(){var n=t(this),o=n[s]("instance"),r=t.widget.extend({},a);if("button"!==s||!n.parent(".ui-spinner").length){o||(o=n[s]()[s]("instance")),o&&(r.classes=e._resolveClassesValues(r.classes,o)),n[s](r);var h=n[s]("widget");t.data(h[0],"ui-controlgroup-data",o?o:n[s]("instance")),i.push(h[0])}})),void 0):void 0}),this.childWidgets=t(t.unique(i)),this._addClass(this.childWidgets,"ui-controlgroup-item")},_callChildMethod:function(e){this.childWidgets.each(function(){var i=t(this),s=i.data("ui-controlgroup-data");s&&s[e]&&s[e]()})},_updateCornerClass:function(t,e){var i="ui-corner-top ui-corner-bottom ui-corner-left ui-corner-right ui-corner-all",s=this._buildSimpleOptions(e,"label").classes.label;this._removeClass(t,null,i),this._addClass(t,null,s)},_buildSimpleOptions:function(t,e){var i="vertical"===this.options.direction,s={classes:{}};return s.classes[e]={middle:"",first:"ui-corner-"+(i?"top":"left"),last:"ui-corner-"+(i?"bottom":"right"),only:"ui-corner-all"}[t],s},_spinnerOptions:function(t){var e=this._buildSimpleOptions(t,"ui-spinner");return e.classes["ui-spinner-up"]="",e.classes["ui-spinner-down"]="",e},_buttonOptions:function(t){return this._buildSimpleOptions(t,"ui-button")},_checkboxradioOptions:function(t){return this._buildSimpleOptions(t,"ui-checkboxradio-label")},_selectmenuOptions:function(t){var e="vertical"===this.options.direction;return{width:e?"auto":!1,classes:{middle:{"ui-selectmenu-button-open":"","ui-selectmenu-button-closed":""},first:{"ui-selectmenu-button-open":"ui-corner-"+(e?"top":"tl"),"ui-selectmenu-button-closed":"ui-corner-"+(e?"top":"left")},last:{"ui-selectmenu-button-open":e?"":"ui-corner-tr","ui-selectmenu-button-closed":"ui-corner-"+(e?"bottom":"right")},only:{"ui-selectmenu-button-open":"ui-corner-top","ui-selectmenu-button-closed":"ui-corner-all"}}[t]}},_resolveClassesValues:function(e,i){var s={};return t.each(e,function(n){var o=i.options.classes[n]||"";o=t.trim(o.replace(g,"")),s[n]=(o+" "+e[n]).replace(/\s+/g," ")}),s},_setOption:function(t,e){return"direction"===t&&this._removeClass("ui-controlgroup-"+this.options.direction),this._super(t,e),"disabled"===t?(this._callChildMethod(e?"disable":"enable"),void 0):(this.refresh(),void 0)},refresh:function(){var e,i=this;this._addClass("ui-controlgroup ui-controlgroup-"+this.options.direction),"horizontal"===this.options.direction&&this._addClass(null,"ui-helper-clearfix"),this._initWidgets(),e=this.childWidgets,this.options.onlyVisible&&(e=e.filter(":visible")),e.length&&(t.each(["first","last"],function(t,s){var n=e[s]().data("ui-controlgroup-data");if(n&&i["_"+n.widgetName+"Options"]){var o=i["_"+n.widgetName+"Options"](1===e.length?"only":s);o.classes=i._resolveClassesValues(o.classes,n),n.element[n.widgetName](o)}else i._updateCornerClass(e[s](),s)}),this._callChildMethod("refresh"))}}),t.widget("ui.checkboxradio",[t.ui.formResetMixin,{version:"1.12.1",options:{disabled:null,label:null,icon:!0,classes:{"ui-checkboxradio-label":"ui-corner-all","ui-checkboxradio-icon":"ui-corner-all"}},_getCreateOptions:function(){var e,i,s=this,n=this._super()||{};return this._readType(),i=this.element.labels(),this.label=t(i[i.length-1]),this.label.length||t.error("No label found for checkboxradio widget"),this.originalLabel="",this.label.contents().not(this.element[0]).each(function(){s.originalLabel+=3===this.nodeType?t(this).text():this.outerHTML}),this.originalLabel&&(n.label=this.originalLabel),e=this.element[0].disabled,null!=e&&(n.disabled=e),n},_create:function(){var t=this.element[0].checked;this._bindFormResetHandler(),null==this.options.disabled&&(this.options.disabled=this.element[0].disabled),this._setOption("disabled",this.options.disabled),this._addClass("ui-checkboxradio","ui-helper-hidden-accessible"),this._addClass(this.label,"ui-checkboxradio-label","ui-button ui-widget"),"radio"===this.type&&this._addClass(this.label,"ui-checkboxradio-radio-label"),this.options.label&&this.options.label!==this.originalLabel?this._updateLabel():this.originalLabel&&(this.options.label=this.originalLabel),this._enhance(),t&&(this._addClass(this.label,"ui-checkboxradio-checked","ui-state-active"),this.icon&&this._addClass(this.icon,null,"ui-state-hover")),this._on({change:"_toggleClasses",focus:function(){this._addClass(this.label,null,"ui-state-focus ui-visual-focus")},blur:function(){this._removeClass(this.label,null,"ui-state-focus ui-visual-focus")}})},_readType:function(){var e=this.element[0].nodeName.toLowerCase();this.type=this.element[0].type,"input"===e&&/radio|checkbox/.test(this.type)||t.error("Can't create checkboxradio on element.nodeName="+e+" and element.type="+this.type)},_enhance:function(){this._updateIcon(this.element[0].checked)},widget:function(){return this.label},_getRadioGroup:function(){var e,i=this.element[0].name,s="input[name='"+t.ui.escapeSelector(i)+"']";return i?(e=this.form.length?t(this.form[0].elements).filter(s):t(s).filter(function(){return 0===t(this).form().length}),e.not(this.element)):t([])},_toggleClasses:function(){var e=this.element[0].checked;this._toggleClass(this.label,"ui-checkboxradio-checked","ui-state-active",e),this.options.icon&&"checkbox"===this.type&&this._toggleClass(this.icon,null,"ui-icon-check ui-state-checked",e)._toggleClass(this.icon,null,"ui-icon-blank",!e),"radio"===this.type&&this._getRadioGroup().each(function(){var e=t(this).checkboxradio("instance");e&&e._removeClass(e.label,"ui-checkboxradio-checked","ui-state-active")})},_destroy:function(){this._unbindFormResetHandler(),this.icon&&(this.icon.remove(),this.iconSpace.remove())},_setOption:function(t,e){return"label"!==t||e?(this._super(t,e),"disabled"===t?(this._toggleClass(this.label,null,"ui-state-disabled",e),this.element[0].disabled=e,void 0):(this.refresh(),void 0)):void 0},_updateIcon:function(e){var i="ui-icon ui-icon-background ";this.options.icon?(this.icon||(this.icon=t("<span>"),this.iconSpace=t("<span> </span>"),this._addClass(this.iconSpace,"ui-checkboxradio-icon-space")),"checkbox"===this.type?(i+=e?"ui-icon-check ui-state-checked":"ui-icon-blank",this._removeClass(this.icon,null,e?"ui-icon-blank":"ui-icon-check")):i+="ui-icon-blank",this._addClass(this.icon,"ui-checkboxradio-icon",i),e||this._removeClass(this.icon,null,"ui-icon-check ui-state-checked"),this.icon.prependTo(this.label).after(this.iconSpace)):void 0!==this.icon&&(this.icon.remove(),this.iconSpace.remove(),delete this.icon)},_updateLabel:function(){var t=this.label.contents().not(this.element[0]);this.icon&&(t=t.not(this.icon[0])),this.iconSpace&&(t=t.not(this.iconSpace[0])),t.remove(),this.label.append(this.options.label)},refresh:function(){var t=this.element[0].checked,e=this.element[0].disabled;this._updateIcon(t),this._toggleClass(this.label,"ui-checkboxradio-checked","ui-state-active",t),null!==this.options.label&&this._updateLabel(),e!==this.options.disabled&&this._setOptions({disabled:e})}}]),t.ui.checkboxradio,t.widget("ui.button",{version:"1.12.1",defaultElement:"<button>",options:{classes:{"ui-button":"ui-corner-all"},disabled:null,icon:null,iconPosition:"beginning",label:null,showLabel:!0},_getCreateOptions:function(){var t,e=this._super()||{};return this.isInput=this.element.is("input"),t=this.element[0].disabled,null!=t&&(e.disabled=t),this.originalLabel=this.isInput?this.element.val():this.element.html(),this.originalLabel&&(e.label=this.originalLabel),e},_create:function(){!this.option.showLabel&!this.options.icon&&(this.options.showLabel=!0),null==this.options.disabled&&(this.options.disabled=this.element[0].disabled||!1),this.hasTitle=!!this.element.attr("title"),this.options.label&&this.options.label!==this.originalLabel&&(this.isInput?this.element.val(this.options.label):this.element.html(this.options.label)),this._addClass("ui-button","ui-widget"),this._setOption("disabled",this.options.disabled),this._enhance(),this.element.is("a")&&this._on({keyup:function(e){e.keyCode===t.ui.keyCode.SPACE&&(e.preventDefault(),this.element[0].click?this.element[0].click():this.element.trigger("click"))}})},_enhance:function(){this.element.is("button")||this.element.attr("role","button"),this.options.icon&&(this._updateIcon("icon",this.options.icon),this._updateTooltip())},_updateTooltip:function(){this.title=this.element.attr("title"),this.options.showLabel||this.title||this.element.attr("title",this.options.label)},_updateIcon:function(e,i){var s="iconPosition"!==e,n=s?this.options.iconPosition:i,o="top"===n||"bottom"===n;this.icon?s&&this._removeClass(this.icon,null,this.options.icon):(this.icon=t("<span>"),this._addClass(this.icon,"ui-button-icon","ui-icon"),this.options.showLabel||this._addClass("ui-button-icon-only")),s&&this._addClass(this.icon,null,i),this._attachIcon(n),o?(this._addClass(this.icon,null,"ui-widget-icon-block"),this.iconSpace&&this.iconSpace.remove()):(this.iconSpace||(this.iconSpace=t("<span> </span>"),this._addClass(this.iconSpace,"ui-button-icon-space")),this._removeClass(this.icon,null,"ui-wiget-icon-block"),this._attachIconSpace(n))},_destroy:function(){this.element.removeAttr("role"),this.icon&&this.icon.remove(),this.iconSpace&&this.iconSpace.remove(),this.hasTitle||this.element.removeAttr("title")},_attachIconSpace:function(t){this.icon[/^(?:end|bottom)/.test(t)?"before":"after"](this.iconSpace)},_attachIcon:function(t){this.element[/^(?:end|bottom)/.test(t)?"append":"prepend"](this.icon)},_setOptions:function(t){var e=void 0===t.showLabel?this.options.showLabel:t.showLabel,i=void 0===t.icon?this.options.icon:t.icon;e||i||(t.showLabel=!0),this._super(t)},_setOption:function(t,e){"icon"===t&&(e?this._updateIcon(t,e):this.icon&&(this.icon.remove(),this.iconSpace&&this.iconSpace.remove())),"iconPosition"===t&&this._updateIcon(t,e),"showLabel"===t&&(this._toggleClass("ui-button-icon-only",null,!e),this._updateTooltip()),"label"===t&&(this.isInput?this.element.val(e):(this.element.html(e),this.icon&&(this._attachIcon(this.options.iconPosition),this._attachIconSpace(this.options.iconPosition)))),this._super(t,e),"disabled"===t&&(this._toggleClass(null,"ui-state-disabled",e),this.element[0].disabled=e,e&&this.element.blur())},refresh:function(){var t=this.element.is("input, button")?this.element[0].disabled:this.element.hasClass("ui-button-disabled");t!==this.options.disabled&&this._setOptions({disabled:t}),this._updateTooltip()}}),t.uiBackCompat!==!1&&(t.widget("ui.button",t.ui.button,{options:{text:!0,icons:{primary:null,secondary:null}},_create:function(){this.options.showLabel&&!this.options.text&&(this.options.showLabel=this.options.text),!this.options.showLabel&&this.options.text&&(this.options.text=this.options.showLabel),this.options.icon||!this.options.icons.primary&&!this.options.icons.secondary?this.options.icon&&(this.options.icons.primary=this.options.icon):this.options.icons.primary?this.options.icon=this.options.icons.primary:(this.options.icon=this.options.icons.secondary,this.options.iconPosition="end"),this._super()},_setOption:function(t,e){return"text"===t?(this._super("showLabel",e),void 0):("showLabel"===t&&(this.options.text=e),"icon"===t&&(this.options.icons.primary=e),"icons"===t&&(e.primary?(this._super("icon",e.primary),this._super("iconPosition","beginning")):e.secondary&&(this._super("icon",e.secondary),this._super("iconPosition","end"))),this._superApply(arguments),void 0)}}),t.fn.button=function(e){return function(){return!this.length||this.length&&"INPUT"!==this[0].tagName||this.length&&"INPUT"===this[0].tagName&&"checkbox"!==this.attr("type")&&"radio"!==this.attr("type")?e.apply(this,arguments):(t.ui.checkboxradio||t.error("Checkboxradio widget missing"),0===arguments.length?this.checkboxradio({icon:!1}):this.checkboxradio.apply(this,arguments))}}(t.fn.button),t.fn.buttonset=function(){return t.ui.controlgroup||t.error("Controlgroup widget missing"),"option"===arguments[0]&&"items"===arguments[1]&&arguments[2]?this.controlgroup.apply(this,[arguments[0],"items.button",arguments[2]]):"option"===arguments[0]&&"items"===arguments[1]?this.controlgroup.apply(this,[arguments[0],"items.button"]):("object"==typeof arguments[0]&&arguments[0].items&&(arguments[0].items={button:arguments[0].items}),this.controlgroup.apply(this,arguments))}),t.ui.button,t.extend(t.ui,{datepicker:{version:"1.12.1"}});var m;t.extend(s.prototype,{markerClassName:"hasDatepicker",maxRows:4,_widgetDatepicker:function(){return this.dpDiv},setDefaults:function(t){return a(this._defaults,t||{}),this},_attachDatepicker:function(e,i){var s,n,o;s=e.nodeName.toLowerCase(),n="div"===s||"span"===s,e.id||(this.uuid+=1,e.id="dp"+this.uuid),o=this._newInst(t(e),n),o.settings=t.extend({},i||{}),"input"===s?this._connectDatepicker(e,o):n&&this._inlineDatepicker(e,o)},_newInst:function(e,i){var s=e[0].id.replace(/([^A-Za-z0-9_\-])/g,"\\\\$1");return{id:s,input:e,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:i,dpDiv:i?n(t("<div class='"+this._inlineClass+" ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>")):this.dpDiv}},_connectDatepicker:function(e,i){var s=t(e);i.append=t([]),i.trigger=t([]),s.hasClass(this.markerClassName)||(this._attachments(s,i),s.addClass(this.markerClassName).on("keydown",this._doKeyDown).on("keypress",this._doKeyPress).on("keyup",this._doKeyUp),this._autoSize(i),t.data(e,"datepicker",i),i.settings.disabled&&this._disableDatepicker(e))},_attachments:function(e,i){var s,n,o,a=this._get(i,"appendText"),r=this._get(i,"isRTL");i.append&&i.append.remove(),a&&(i.append=t("<span class='"+this._appendClass+"'>"+a+"</span>"),e[r?"before":"after"](i.append)),e.off("focus",this._showDatepicker),i.trigger&&i.trigger.remove(),s=this._get(i,"showOn"),("focus"===s||"both"===s)&&e.on("focus",this._showDatepicker),("button"===s||"both"===s)&&(n=this._get(i,"buttonText"),o=this._get(i,"buttonImage"),i.trigger=t(this._get(i,"buttonImageOnly")?t("<img/>").addClass(this._triggerClass).attr({src:o,alt:n,title:n}):t("<button type='button'></button>").addClass(this._triggerClass).html(o?t("<img/>").attr({src:o,alt:n,title:n}):n)),e[r?"before":"after"](i.trigger),i.trigger.on("click",function(){return t.datepicker._datepickerShowing&&t.datepicker._lastInput===e[0]?t.datepicker._hideDatepicker():t.datepicker._datepickerShowing&&t.datepicker._lastInput!==e[0]?(t.datepicker._hideDatepicker(),t.datepicker._showDatepicker(e[0])):t.datepicker._showDatepicker(e[0]),!1}))},_autoSize:function(t){if(this._get(t,"autoSize")&&!t.inline){var e,i,s,n,o=new Date(2009,11,20),a=this._get(t,"dateFormat");a.match(/[DM]/)&&(e=function(t){for(i=0,s=0,n=0;t.length>n;n++)t[n].length>i&&(i=t[n].length,s=n);return s},o.setMonth(e(this._get(t,a.match(/MM/)?"monthNames":"monthNamesShort"))),o.setDate(e(this._get(t,a.match(/DD/)?"dayNames":"dayNamesShort"))+20-o.getDay())),t.input.attr("size",this._formatDate(t,o).length)}},_inlineDatepicker:function(e,i){var s=t(e);s.hasClass(this.markerClassName)||(s.addClass(this.markerClassName).append(i.dpDiv),t.data(e,"datepicker",i),this._setDate(i,this._getDefaultDate(i),!0),this._updateDatepicker(i),this._updateAlternate(i),i.settings.disabled&&this._disableDatepicker(e),i.dpDiv.css("display","block"))},_dialogDatepicker:function(e,i,s,n,o){var r,h,l,c,u,d=this._dialogInst;return d||(this.uuid+=1,r="dp"+this.uuid,this._dialogInput=t("<input type='text' id='"+r+"' style='position: absolute; top: -100px; width: 0px;'/>"),this._dialogInput.on("keydown",this._doKeyDown),t("body").append(this._dialogInput),d=this._dialogInst=this._newInst(this._dialogInput,!1),d.settings={},t.data(this._dialogInput[0],"datepicker",d)),a(d.settings,n||{}),i=i&&i.constructor===Date?this._formatDate(d,i):i,this._dialogInput.val(i),this._pos=o?o.length?o:[o.pageX,o.pageY]:null,this._pos||(h=document.documentElement.clientWidth,l=document.documentElement.clientHeight,c=document.documentElement.scrollLeft||document.body.scrollLeft,u=document.documentElement.scrollTop||document.body.scrollTop,this._pos=[h/2-100+c,l/2-150+u]),this._dialogInput.css("left",this._pos[0]+20+"px").css("top",this._pos[1]+"px"),d.settings.onSelect=s,this._inDialog=!0,this.dpDiv.addClass(this._dialogClass),this._showDatepicker(this._dialogInput[0]),t.blockUI&&t.blockUI(this.dpDiv),t.data(this._dialogInput[0],"datepicker",d),this},_destroyDatepicker:function(e){var i,s=t(e),n=t.data(e,"datepicker");s.hasClass(this.markerClassName)&&(i=e.nodeName.toLowerCase(),t.removeData(e,"datepicker"),"input"===i?(n.append.remove(),n.trigger.remove(),s.removeClass(this.markerClassName).off("focus",this._showDatepicker).off("keydown",this._doKeyDown).off("keypress",this._doKeyPress).off("keyup",this._doKeyUp)):("div"===i||"span"===i)&&s.removeClass(this.markerClassName).empty(),m===n&&(m=null))},_enableDatepicker:function(e){var i,s,n=t(e),o=t.data(e,"datepicker");n.hasClass(this.markerClassName)&&(i=e.nodeName.toLowerCase(),"input"===i?(e.disabled=!1,o.trigger.filter("button").each(function(){this.disabled=!1}).end().filter("img").css({opacity:"1.0",cursor:""})):("div"===i||"span"===i)&&(s=n.children("."+this._inlineClass),s.children().removeClass("ui-state-disabled"),s.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled",!1)),this._disabledInputs=t.map(this._disabledInputs,function(t){return t===e?null:t}))},_disableDatepicker:function(e){var i,s,n=t(e),o=t.data(e,"datepicker");n.hasClass(this.markerClassName)&&(i=e.nodeName.toLowerCase(),"input"===i?(e.disabled=!0,o.trigger.filter("button").each(function(){this.disabled=!0}).end().filter("img").css({opacity:"0.5",cursor:"default"})):("div"===i||"span"===i)&&(s=n.children("."+this._inlineClass),s.children().addClass("ui-state-disabled"),s.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled",!0)),this._disabledInputs=t.map(this._disabledInputs,function(t){return t===e?null:t}),this._disabledInputs[this._disabledInputs.length]=e)},_isDisabledDatepicker:function(t){if(!t)return!1;for(var e=0;this._disabledInputs.length>e;e++)if(this._disabledInputs[e]===t)return!0;return!1},_getInst:function(e){try{return t.data(e,"datepicker")}catch(i){throw"Missing instance data for this datepicker"}},_optionDatepicker:function(e,i,s){var n,o,r,h,l=this._getInst(e);return 2===arguments.length&&"string"==typeof i?"defaults"===i?t.extend({},t.datepicker._defaults):l?"all"===i?t.extend({},l.settings):this._get(l,i):null:(n=i||{},"string"==typeof i&&(n={},n[i]=s),l&&(this._curInst===l&&this._hideDatepicker(),o=this._getDateDatepicker(e,!0),r=this._getMinMaxDate(l,"min"),h=this._getMinMaxDate(l,"max"),a(l.settings,n),null!==r&&void 0!==n.dateFormat&&void 0===n.minDate&&(l.settings.minDate=this._formatDate(l,r)),null!==h&&void 0!==n.dateFormat&&void 0===n.maxDate&&(l.settings.maxDate=this._formatDate(l,h)),"disabled"in n&&(n.disabled?this._disableDatepicker(e):this._enableDatepicker(e)),this._attachments(t(e),l),this._autoSize(l),this._setDate(l,o),this._updateAlternate(l),this._updateDatepicker(l)),void 0)},_changeDatepicker:function(t,e,i){this._optionDatepicker(t,e,i)},_refreshDatepicker:function(t){var e=this._getInst(t);e&&this._updateDatepicker(e)},_setDateDatepicker:function(t,e){var i=this._getInst(t);i&&(this._setDate(i,e),this._updateDatepicker(i),this._updateAlternate(i))},_getDateDatepicker:function(t,e){var i=this._getInst(t);return i&&!i.inline&&this._setDateFromField(i,e),i?this._getDate(i):null},_doKeyDown:function(e){var i,s,n,o=t.datepicker._getInst(e.target),a=!0,r=o.dpDiv.is(".ui-datepicker-rtl");if(o._keyEvent=!0,t.datepicker._datepickerShowing)switch(e.keyCode){case 9:t.datepicker._hideDatepicker(),a=!1;break;case 13:return n=t("td."+t.datepicker._dayOverClass+":not(."+t.datepicker._currentClass+")",o.dpDiv),n[0]&&t.datepicker._selectDay(e.target,o.selectedMonth,o.selectedYear,n[0]),i=t.datepicker._get(o,"onSelect"),i?(s=t.datepicker._formatDate(o),i.apply(o.input?o.input[0]:null,[s,o])):t.datepicker._hideDatepicker(),!1;case 27:t.datepicker._hideDatepicker();break;case 33:t.datepicker._adjustDate(e.target,e.ctrlKey?-t.datepicker._get(o,"stepBigMonths"):-t.datepicker._get(o,"stepMonths"),"M");break;case 34:t.datepicker._adjustDate(e.target,e.ctrlKey?+t.datepicker._get(o,"stepBigMonths"):+t.datepicker._get(o,"stepMonths"),"M");break;case 35:(e.ctrlKey||e.metaKey)&&t.datepicker._clearDate(e.target),a=e.ctrlKey||e.metaKey;break;case 36:(e.ctrlKey||e.metaKey)&&t.datepicker._gotoToday(e.target),a=e.ctrlKey||e.metaKey;break;case 37:(e.ctrlKey||e.metaKey)&&t.datepicker._adjustDate(e.target,r?1:-1,"D"),a=e.ctrlKey||e.metaKey,e.originalEvent.altKey&&t.datepicker._adjustDate(e.target,e.ctrlKey?-t.datepicker._get(o,"stepBigMonths"):-t.datepicker._get(o,"stepMonths"),"M");break;case 38:(e.ctrlKey||e.metaKey)&&t.datepicker._adjustDate(e.target,-7,"D"),a=e.ctrlKey||e.metaKey;break;case 39:(e.ctrlKey||e.metaKey)&&t.datepicker._adjustDate(e.target,r?-1:1,"D"),a=e.ctrlKey||e.metaKey,e.originalEvent.altKey&&t.datepicker._adjustDate(e.target,e.ctrlKey?+t.datepicker._get(o,"stepBigMonths"):+t.datepicker._get(o,"stepMonths"),"M");break;case 40:(e.ctrlKey||e.metaKey)&&t.datepicker._adjustDate(e.target,7,"D"),a=e.ctrlKey||e.metaKey;break;default:a=!1}else 36===e.keyCode&&e.ctrlKey?t.datepicker._showDatepicker(this):a=!1;a&&(e.preventDefault(),e.stopPropagation())},_doKeyPress:function(e){var i,s,n=t.datepicker._getInst(e.target);return t.datepicker._get(n,"constrainInput")?(i=t.datepicker._possibleChars(t.datepicker._get(n,"dateFormat")),s=String.fromCharCode(null==e.charCode?e.keyCode:e.charCode),e.ctrlKey||e.metaKey||" ">s||!i||i.indexOf(s)>-1):void 0},_doKeyUp:function(e){var i,s=t.datepicker._getInst(e.target);if(s.input.val()!==s.lastVal)try{i=t.datepicker.parseDate(t.datepicker._get(s,"dateFormat"),s.input?s.input.val():null,t.datepicker._getFormatConfig(s)),i&&(t.datepicker._setDateFromField(s),t.datepicker._updateAlternate(s),t.datepicker._updateDatepicker(s))}catch(n){}return!0},_showDatepicker:function(e){if(e=e.target||e,"input"!==e.nodeName.toLowerCase()&&(e=t("input",e.parentNode)[0]),!t.datepicker._isDisabledDatepicker(e)&&t.datepicker._lastInput!==e){var s,n,o,r,h,l,c;s=t.datepicker._getInst(e),t.datepicker._curInst&&t.datepicker._curInst!==s&&(t.datepicker._curInst.dpDiv.stop(!0,!0),s&&t.datepicker._datepickerShowing&&t.datepicker._hideDatepicker(t.datepicker._curInst.input[0])),n=t.datepicker._get(s,"beforeShow"),o=n?n.apply(e,[e,s]):{},o!==!1&&(a(s.settings,o),s.lastVal=null,t.datepicker._lastInput=e,t.datepicker._setDateFromField(s),t.datepicker._inDialog&&(e.value=""),t.datepicker._pos||(t.datepicker._pos=t.datepicker._findPos(e),t.datepicker._pos[1]+=e.offsetHeight),r=!1,t(e).parents().each(function(){return r|="fixed"===t(this).css("position"),!r}),h={left:t.datepicker._pos[0],top:t.datepicker._pos[1]},t.datepicker._pos=null,s.dpDiv.empty(),s.dpDiv.css({position:"absolute",display:"block",top:"-1000px"}),t.datepicker._updateDatepicker(s),h=t.datepicker._checkOffset(s,h,r),s.dpDiv.css({position:t.datepicker._inDialog&&t.blockUI?"static":r?"fixed":"absolute",display:"none",left:h.left+"px",top:h.top+"px"}),s.inline||(l=t.datepicker._get(s,"showAnim"),c=t.datepicker._get(s,"duration"),s.dpDiv.css("z-index",i(t(e))+1),t.datepicker._datepickerShowing=!0,t.effects&&t.effects.effect[l]?s.dpDiv.show(l,t.datepicker._get(s,"showOptions"),c):s.dpDiv[l||"show"](l?c:null),t.datepicker._shouldFocusInput(s)&&s.input.trigger("focus"),t.datepicker._curInst=s))
-}},_updateDatepicker:function(e){this.maxRows=4,m=e,e.dpDiv.empty().append(this._generateHTML(e)),this._attachHandlers(e);var i,s=this._getNumberOfMonths(e),n=s[1],a=17,r=e.dpDiv.find("."+this._dayOverClass+" a");r.length>0&&o.apply(r.get(0)),e.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width(""),n>1&&e.dpDiv.addClass("ui-datepicker-multi-"+n).css("width",a*n+"em"),e.dpDiv[(1!==s[0]||1!==s[1]?"add":"remove")+"Class"]("ui-datepicker-multi"),e.dpDiv[(this._get(e,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl"),e===t.datepicker._curInst&&t.datepicker._datepickerShowing&&t.datepicker._shouldFocusInput(e)&&e.input.trigger("focus"),e.yearshtml&&(i=e.yearshtml,setTimeout(function(){i===e.yearshtml&&e.yearshtml&&e.dpDiv.find("select.ui-datepicker-year:first").replaceWith(e.yearshtml),i=e.yearshtml=null},0))},_shouldFocusInput:function(t){return t.input&&t.input.is(":visible")&&!t.input.is(":disabled")&&!t.input.is(":focus")},_checkOffset:function(e,i,s){var n=e.dpDiv.outerWidth(),o=e.dpDiv.outerHeight(),a=e.input?e.input.outerWidth():0,r=e.input?e.input.outerHeight():0,h=document.documentElement.clientWidth+(s?0:t(document).scrollLeft()),l=document.documentElement.clientHeight+(s?0:t(document).scrollTop());return i.left-=this._get(e,"isRTL")?n-a:0,i.left-=s&&i.left===e.input.offset().left?t(document).scrollLeft():0,i.top-=s&&i.top===e.input.offset().top+r?t(document).scrollTop():0,i.left-=Math.min(i.left,i.left+n>h&&h>n?Math.abs(i.left+n-h):0),i.top-=Math.min(i.top,i.top+o>l&&l>o?Math.abs(o+r):0),i},_findPos:function(e){for(var i,s=this._getInst(e),n=this._get(s,"isRTL");e&&("hidden"===e.type||1!==e.nodeType||t.expr.filters.hidden(e));)e=e[n?"previousSibling":"nextSibling"];return i=t(e).offset(),[i.left,i.top]},_hideDatepicker:function(e){var i,s,n,o,a=this._curInst;!a||e&&a!==t.data(e,"datepicker")||this._datepickerShowing&&(i=this._get(a,"showAnim"),s=this._get(a,"duration"),n=function(){t.datepicker._tidyDialog(a)},t.effects&&(t.effects.effect[i]||t.effects[i])?a.dpDiv.hide(i,t.datepicker._get(a,"showOptions"),s,n):a.dpDiv["slideDown"===i?"slideUp":"fadeIn"===i?"fadeOut":"hide"](i?s:null,n),i||n(),this._datepickerShowing=!1,o=this._get(a,"onClose"),o&&o.apply(a.input?a.input[0]:null,[a.input?a.input.val():"",a]),this._lastInput=null,this._inDialog&&(this._dialogInput.css({position:"absolute",left:"0",top:"-100px"}),t.blockUI&&(t.unblockUI(),t("body").append(this.dpDiv))),this._inDialog=!1)},_tidyDialog:function(t){t.dpDiv.removeClass(this._dialogClass).off(".ui-datepicker-calendar")},_checkExternalClick:function(e){if(t.datepicker._curInst){var i=t(e.target),s=t.datepicker._getInst(i[0]);(i[0].id!==t.datepicker._mainDivId&&0===i.parents("#"+t.datepicker._mainDivId).length&&!i.hasClass(t.datepicker.markerClassName)&&!i.closest("."+t.datepicker._triggerClass).length&&t.datepicker._datepickerShowing&&(!t.datepicker._inDialog||!t.blockUI)||i.hasClass(t.datepicker.markerClassName)&&t.datepicker._curInst!==s)&&t.datepicker._hideDatepicker()}},_adjustDate:function(e,i,s){var n=t(e),o=this._getInst(n[0]);this._isDisabledDatepicker(n[0])||(this._adjustInstDate(o,i+("M"===s?this._get(o,"showCurrentAtPos"):0),s),this._updateDatepicker(o))},_gotoToday:function(e){var i,s=t(e),n=this._getInst(s[0]);this._get(n,"gotoCurrent")&&n.currentDay?(n.selectedDay=n.currentDay,n.drawMonth=n.selectedMonth=n.currentMonth,n.drawYear=n.selectedYear=n.currentYear):(i=new Date,n.selectedDay=i.getDate(),n.drawMonth=n.selectedMonth=i.getMonth(),n.drawYear=n.selectedYear=i.getFullYear()),this._notifyChange(n),this._adjustDate(s)},_selectMonthYear:function(e,i,s){var n=t(e),o=this._getInst(n[0]);o["selected"+("M"===s?"Month":"Year")]=o["draw"+("M"===s?"Month":"Year")]=parseInt(i.options[i.selectedIndex].value,10),this._notifyChange(o),this._adjustDate(n)},_selectDay:function(e,i,s,n){var o,a=t(e);t(n).hasClass(this._unselectableClass)||this._isDisabledDatepicker(a[0])||(o=this._getInst(a[0]),o.selectedDay=o.currentDay=t("a",n).html(),o.selectedMonth=o.currentMonth=i,o.selectedYear=o.currentYear=s,this._selectDate(e,this._formatDate(o,o.currentDay,o.currentMonth,o.currentYear)))},_clearDate:function(e){var i=t(e);this._selectDate(i,"")},_selectDate:function(e,i){var s,n=t(e),o=this._getInst(n[0]);i=null!=i?i:this._formatDate(o),o.input&&o.input.val(i),this._updateAlternate(o),s=this._get(o,"onSelect"),s?s.apply(o.input?o.input[0]:null,[i,o]):o.input&&o.input.trigger("change"),o.inline?this._updateDatepicker(o):(this._hideDatepicker(),this._lastInput=o.input[0],"object"!=typeof o.input[0]&&o.input.trigger("focus"),this._lastInput=null)},_updateAlternate:function(e){var i,s,n,o=this._get(e,"altField");o&&(i=this._get(e,"altFormat")||this._get(e,"dateFormat"),s=this._getDate(e),n=this.formatDate(i,s,this._getFormatConfig(e)),t(o).val(n))},noWeekends:function(t){var e=t.getDay();return[e>0&&6>e,""]},iso8601Week:function(t){var e,i=new Date(t.getTime());return i.setDate(i.getDate()+4-(i.getDay()||7)),e=i.getTime(),i.setMonth(0),i.setDate(1),Math.floor(Math.round((e-i)/864e5)/7)+1},parseDate:function(e,i,s){if(null==e||null==i)throw"Invalid arguments";if(i="object"==typeof i?""+i:i+"",""===i)return null;var n,o,a,r,h=0,l=(s?s.shortYearCutoff:null)||this._defaults.shortYearCutoff,c="string"!=typeof l?l:(new Date).getFullYear()%100+parseInt(l,10),u=(s?s.dayNamesShort:null)||this._defaults.dayNamesShort,d=(s?s.dayNames:null)||this._defaults.dayNames,p=(s?s.monthNamesShort:null)||this._defaults.monthNamesShort,f=(s?s.monthNames:null)||this._defaults.monthNames,g=-1,m=-1,_=-1,v=-1,b=!1,y=function(t){var i=e.length>n+1&&e.charAt(n+1)===t;return i&&n++,i},w=function(t){var e=y(t),s="@"===t?14:"!"===t?20:"y"===t&&e?4:"o"===t?3:2,n="y"===t?s:1,o=RegExp("^\\d{"+n+","+s+"}"),a=i.substring(h).match(o);if(!a)throw"Missing number at position "+h;return h+=a[0].length,parseInt(a[0],10)},k=function(e,s,n){var o=-1,a=t.map(y(e)?n:s,function(t,e){return[[e,t]]}).sort(function(t,e){return-(t[1].length-e[1].length)});if(t.each(a,function(t,e){var s=e[1];return i.substr(h,s.length).toLowerCase()===s.toLowerCase()?(o=e[0],h+=s.length,!1):void 0}),-1!==o)return o+1;throw"Unknown name at position "+h},x=function(){if(i.charAt(h)!==e.charAt(n))throw"Unexpected literal at position "+h;h++};for(n=0;e.length>n;n++)if(b)"'"!==e.charAt(n)||y("'")?x():b=!1;else switch(e.charAt(n)){case"d":_=w("d");break;case"D":k("D",u,d);break;case"o":v=w("o");break;case"m":m=w("m");break;case"M":m=k("M",p,f);break;case"y":g=w("y");break;case"@":r=new Date(w("@")),g=r.getFullYear(),m=r.getMonth()+1,_=r.getDate();break;case"!":r=new Date((w("!")-this._ticksTo1970)/1e4),g=r.getFullYear(),m=r.getMonth()+1,_=r.getDate();break;case"'":y("'")?x():b=!0;break;default:x()}if(i.length>h&&(a=i.substr(h),!/^\s+/.test(a)))throw"Extra/unparsed characters found in date: "+a;if(-1===g?g=(new Date).getFullYear():100>g&&(g+=(new Date).getFullYear()-(new Date).getFullYear()%100+(c>=g?0:-100)),v>-1)for(m=1,_=v;;){if(o=this._getDaysInMonth(g,m-1),o>=_)break;m++,_-=o}if(r=this._daylightSavingAdjust(new Date(g,m-1,_)),r.getFullYear()!==g||r.getMonth()+1!==m||r.getDate()!==_)throw"Invalid date";return r},ATOM:"yy-mm-dd",COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y",RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y",TICKS:"!",TIMESTAMP:"@",W3C:"yy-mm-dd",_ticksTo1970:1e7*60*60*24*(718685+Math.floor(492.5)-Math.floor(19.7)+Math.floor(4.925)),formatDate:function(t,e,i){if(!e)return"";var s,n=(i?i.dayNamesShort:null)||this._defaults.dayNamesShort,o=(i?i.dayNames:null)||this._defaults.dayNames,a=(i?i.monthNamesShort:null)||this._defaults.monthNamesShort,r=(i?i.monthNames:null)||this._defaults.monthNames,h=function(e){var i=t.length>s+1&&t.charAt(s+1)===e;return i&&s++,i},l=function(t,e,i){var s=""+e;if(h(t))for(;i>s.length;)s="0"+s;return s},c=function(t,e,i,s){return h(t)?s[e]:i[e]},u="",d=!1;if(e)for(s=0;t.length>s;s++)if(d)"'"!==t.charAt(s)||h("'")?u+=t.charAt(s):d=!1;else switch(t.charAt(s)){case"d":u+=l("d",e.getDate(),2);break;case"D":u+=c("D",e.getDay(),n,o);break;case"o":u+=l("o",Math.round((new Date(e.getFullYear(),e.getMonth(),e.getDate()).getTime()-new Date(e.getFullYear(),0,0).getTime())/864e5),3);break;case"m":u+=l("m",e.getMonth()+1,2);break;case"M":u+=c("M",e.getMonth(),a,r);break;case"y":u+=h("y")?e.getFullYear():(10>e.getFullYear()%100?"0":"")+e.getFullYear()%100;break;case"@":u+=e.getTime();break;case"!":u+=1e4*e.getTime()+this._ticksTo1970;break;case"'":h("'")?u+="'":d=!0;break;default:u+=t.charAt(s)}return u},_possibleChars:function(t){var e,i="",s=!1,n=function(i){var s=t.length>e+1&&t.charAt(e+1)===i;return s&&e++,s};for(e=0;t.length>e;e++)if(s)"'"!==t.charAt(e)||n("'")?i+=t.charAt(e):s=!1;else switch(t.charAt(e)){case"d":case"m":case"y":case"@":i+="0123456789";break;case"D":case"M":return null;case"'":n("'")?i+="'":s=!0;break;default:i+=t.charAt(e)}return i},_get:function(t,e){return void 0!==t.settings[e]?t.settings[e]:this._defaults[e]},_setDateFromField:function(t,e){if(t.input.val()!==t.lastVal){var i=this._get(t,"dateFormat"),s=t.lastVal=t.input?t.input.val():null,n=this._getDefaultDate(t),o=n,a=this._getFormatConfig(t);try{o=this.parseDate(i,s,a)||n}catch(r){s=e?"":s}t.selectedDay=o.getDate(),t.drawMonth=t.selectedMonth=o.getMonth(),t.drawYear=t.selectedYear=o.getFullYear(),t.currentDay=s?o.getDate():0,t.currentMonth=s?o.getMonth():0,t.currentYear=s?o.getFullYear():0,this._adjustInstDate(t)}},_getDefaultDate:function(t){return this._restrictMinMax(t,this._determineDate(t,this._get(t,"defaultDate"),new Date))},_determineDate:function(e,i,s){var n=function(t){var e=new Date;return e.setDate(e.getDate()+t),e},o=function(i){try{return t.datepicker.parseDate(t.datepicker._get(e,"dateFormat"),i,t.datepicker._getFormatConfig(e))}catch(s){}for(var n=(i.toLowerCase().match(/^c/)?t.datepicker._getDate(e):null)||new Date,o=n.getFullYear(),a=n.getMonth(),r=n.getDate(),h=/([+\-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g,l=h.exec(i);l;){switch(l[2]||"d"){case"d":case"D":r+=parseInt(l[1],10);break;case"w":case"W":r+=7*parseInt(l[1],10);break;case"m":case"M":a+=parseInt(l[1],10),r=Math.min(r,t.datepicker._getDaysInMonth(o,a));break;case"y":case"Y":o+=parseInt(l[1],10),r=Math.min(r,t.datepicker._getDaysInMonth(o,a))}l=h.exec(i)}return new Date(o,a,r)},a=null==i||""===i?s:"string"==typeof i?o(i):"number"==typeof i?isNaN(i)?s:n(i):new Date(i.getTime());return a=a&&"Invalid Date"==""+a?s:a,a&&(a.setHours(0),a.setMinutes(0),a.setSeconds(0),a.setMilliseconds(0)),this._daylightSavingAdjust(a)},_daylightSavingAdjust:function(t){return t?(t.setHours(t.getHours()>12?t.getHours()+2:0),t):null},_setDate:function(t,e,i){var s=!e,n=t.selectedMonth,o=t.selectedYear,a=this._restrictMinMax(t,this._determineDate(t,e,new Date));t.selectedDay=t.currentDay=a.getDate(),t.drawMonth=t.selectedMonth=t.currentMonth=a.getMonth(),t.drawYear=t.selectedYear=t.currentYear=a.getFullYear(),n===t.selectedMonth&&o===t.selectedYear||i||this._notifyChange(t),this._adjustInstDate(t),t.input&&t.input.val(s?"":this._formatDate(t))},_getDate:function(t){var e=!t.currentYear||t.input&&""===t.input.val()?null:this._daylightSavingAdjust(new Date(t.currentYear,t.currentMonth,t.currentDay));return e},_attachHandlers:function(e){var i=this._get(e,"stepMonths"),s="#"+e.id.replace(/\\\\/g,"\\");e.dpDiv.find("[data-handler]").map(function(){var e={prev:function(){t.datepicker._adjustDate(s,-i,"M")},next:function(){t.datepicker._adjustDate(s,+i,"M")},hide:function(){t.datepicker._hideDatepicker()},today:function(){t.datepicker._gotoToday(s)},selectDay:function(){return t.datepicker._selectDay(s,+this.getAttribute("data-month"),+this.getAttribute("data-year"),this),!1},selectMonth:function(){return t.datepicker._selectMonthYear(s,this,"M"),!1},selectYear:function(){return t.datepicker._selectMonthYear(s,this,"Y"),!1}};t(this).on(this.getAttribute("data-event"),e[this.getAttribute("data-handler")])})},_generateHTML:function(t){var e,i,s,n,o,a,r,h,l,c,u,d,p,f,g,m,_,v,b,y,w,k,x,C,D,I,T,P,M,S,H,z,O,A,N,W,E,F,L,R=new Date,B=this._daylightSavingAdjust(new Date(R.getFullYear(),R.getMonth(),R.getDate())),Y=this._get(t,"isRTL"),j=this._get(t,"showButtonPanel"),q=this._get(t,"hideIfNoPrevNext"),K=this._get(t,"navigationAsDateFormat"),U=this._getNumberOfMonths(t),V=this._get(t,"showCurrentAtPos"),$=this._get(t,"stepMonths"),X=1!==U[0]||1!==U[1],G=this._daylightSavingAdjust(t.currentDay?new Date(t.currentYear,t.currentMonth,t.currentDay):new Date(9999,9,9)),Q=this._getMinMaxDate(t,"min"),J=this._getMinMaxDate(t,"max"),Z=t.drawMonth-V,te=t.drawYear;if(0>Z&&(Z+=12,te--),J)for(e=this._daylightSavingAdjust(new Date(J.getFullYear(),J.getMonth()-U[0]*U[1]+1,J.getDate())),e=Q&&Q>e?Q:e;this._daylightSavingAdjust(new Date(te,Z,1))>e;)Z--,0>Z&&(Z=11,te--);for(t.drawMonth=Z,t.drawYear=te,i=this._get(t,"prevText"),i=K?this.formatDate(i,this._daylightSavingAdjust(new Date(te,Z-$,1)),this._getFormatConfig(t)):i,s=this._canAdjustMonth(t,-1,te,Z)?"<a class='ui-datepicker-prev ui-corner-all' data-handler='prev' data-event='click' title='"+i+"'><span class='ui-icon ui-icon-circle-triangle-"+(Y?"e":"w")+"'>"+i+"</span></a>":q?"":"<a class='ui-datepicker-prev ui-corner-all ui-state-disabled' title='"+i+"'><span class='ui-icon ui-icon-circle-triangle-"+(Y?"e":"w")+"'>"+i+"</span></a>",n=this._get(t,"nextText"),n=K?this.formatDate(n,this._daylightSavingAdjust(new Date(te,Z+$,1)),this._getFormatConfig(t)):n,o=this._canAdjustMonth(t,1,te,Z)?"<a class='ui-datepicker-next ui-corner-all' data-handler='next' data-event='click' title='"+n+"'><span class='ui-icon ui-icon-circle-triangle-"+(Y?"w":"e")+"'>"+n+"</span></a>":q?"":"<a class='ui-datepicker-next ui-corner-all ui-state-disabled' title='"+n+"'><span class='ui-icon ui-icon-circle-triangle-"+(Y?"w":"e")+"'>"+n+"</span></a>",a=this._get(t,"currentText"),r=this._get(t,"gotoCurrent")&&t.currentDay?G:B,a=K?this.formatDate(a,r,this._getFormatConfig(t)):a,h=t.inline?"":"<button type='button' class='ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all' data-handler='hide' data-event='click'>"+this._get(t,"closeText")+"</button>",l=j?"<div class='ui-datepicker-buttonpane ui-widget-content'>"+(Y?h:"")+(this._isInRange(t,r)?"<button type='button' class='ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all' data-handler='today' data-event='click'>"+a+"</button>":"")+(Y?"":h)+"</div>":"",c=parseInt(this._get(t,"firstDay"),10),c=isNaN(c)?0:c,u=this._get(t,"showWeek"),d=this._get(t,"dayNames"),p=this._get(t,"dayNamesMin"),f=this._get(t,"monthNames"),g=this._get(t,"monthNamesShort"),m=this._get(t,"beforeShowDay"),_=this._get(t,"showOtherMonths"),v=this._get(t,"selectOtherMonths"),b=this._getDefaultDate(t),y="",k=0;U[0]>k;k++){for(x="",this.maxRows=4,C=0;U[1]>C;C++){if(D=this._daylightSavingAdjust(new Date(te,Z,t.selectedDay)),I=" ui-corner-all",T="",X){if(T+="<div class='ui-datepicker-group",U[1]>1)switch(C){case 0:T+=" ui-datepicker-group-first",I=" ui-corner-"+(Y?"right":"left");break;case U[1]-1:T+=" ui-datepicker-group-last",I=" ui-corner-"+(Y?"left":"right");break;default:T+=" ui-datepicker-group-middle",I=""}T+="'>"}for(T+="<div class='ui-datepicker-header ui-widget-header ui-helper-clearfix"+I+"'>"+(/all|left/.test(I)&&0===k?Y?o:s:"")+(/all|right/.test(I)&&0===k?Y?s:o:"")+this._generateMonthYearHeader(t,Z,te,Q,J,k>0||C>0,f,g)+"</div><table class='ui-datepicker-calendar'><thead>"+"<tr>",P=u?"<th class='ui-datepicker-week-col'>"+this._get(t,"weekHeader")+"</th>":"",w=0;7>w;w++)M=(w+c)%7,P+="<th scope='col'"+((w+c+6)%7>=5?" class='ui-datepicker-week-end'":"")+">"+"<span title='"+d[M]+"'>"+p[M]+"</span></th>";for(T+=P+"</tr></thead><tbody>",S=this._getDaysInMonth(te,Z),te===t.selectedYear&&Z===t.selectedMonth&&(t.selectedDay=Math.min(t.selectedDay,S)),H=(this._getFirstDayOfMonth(te,Z)-c+7)%7,z=Math.ceil((H+S)/7),O=X?this.maxRows>z?this.maxRows:z:z,this.maxRows=O,A=this._daylightSavingAdjust(new Date(te,Z,1-H)),N=0;O>N;N++){for(T+="<tr>",W=u?"<td class='ui-datepicker-week-col'>"+this._get(t,"calculateWeek")(A)+"</td>":"",w=0;7>w;w++)E=m?m.apply(t.input?t.input[0]:null,[A]):[!0,""],F=A.getMonth()!==Z,L=F&&!v||!E[0]||Q&&Q>A||J&&A>J,W+="<td class='"+((w+c+6)%7>=5?" ui-datepicker-week-end":"")+(F?" ui-datepicker-other-month":"")+(A.getTime()===D.getTime()&&Z===t.selectedMonth&&t._keyEvent||b.getTime()===A.getTime()&&b.getTime()===D.getTime()?" "+this._dayOverClass:"")+(L?" "+this._unselectableClass+" ui-state-disabled":"")+(F&&!_?"":" "+E[1]+(A.getTime()===G.getTime()?" "+this._currentClass:"")+(A.getTime()===B.getTime()?" ui-datepicker-today":""))+"'"+(F&&!_||!E[2]?"":" title='"+E[2].replace(/'/g,"&#39;")+"'")+(L?"":" data-handler='selectDay' data-event='click' data-month='"+A.getMonth()+"' data-year='"+A.getFullYear()+"'")+">"+(F&&!_?"&#xa0;":L?"<span class='ui-state-default'>"+A.getDate()+"</span>":"<a class='ui-state-default"+(A.getTime()===B.getTime()?" ui-state-highlight":"")+(A.getTime()===G.getTime()?" ui-state-active":"")+(F?" ui-priority-secondary":"")+"' href='#'>"+A.getDate()+"</a>")+"</td>",A.setDate(A.getDate()+1),A=this._daylightSavingAdjust(A);T+=W+"</tr>"}Z++,Z>11&&(Z=0,te++),T+="</tbody></table>"+(X?"</div>"+(U[0]>0&&C===U[1]-1?"<div class='ui-datepicker-row-break'></div>":""):""),x+=T}y+=x}return y+=l,t._keyEvent=!1,y},_generateMonthYearHeader:function(t,e,i,s,n,o,a,r){var h,l,c,u,d,p,f,g,m=this._get(t,"changeMonth"),_=this._get(t,"changeYear"),v=this._get(t,"showMonthAfterYear"),b="<div class='ui-datepicker-title'>",y="";if(o||!m)y+="<span class='ui-datepicker-month'>"+a[e]+"</span>";else{for(h=s&&s.getFullYear()===i,l=n&&n.getFullYear()===i,y+="<select class='ui-datepicker-month' data-handler='selectMonth' data-event='change'>",c=0;12>c;c++)(!h||c>=s.getMonth())&&(!l||n.getMonth()>=c)&&(y+="<option value='"+c+"'"+(c===e?" selected='selected'":"")+">"+r[c]+"</option>");y+="</select>"}if(v||(b+=y+(!o&&m&&_?"":"&#xa0;")),!t.yearshtml)if(t.yearshtml="",o||!_)b+="<span class='ui-datepicker-year'>"+i+"</span>";else{for(u=this._get(t,"yearRange").split(":"),d=(new Date).getFullYear(),p=function(t){var e=t.match(/c[+\-].*/)?i+parseInt(t.substring(1),10):t.match(/[+\-].*/)?d+parseInt(t,10):parseInt(t,10);return isNaN(e)?d:e},f=p(u[0]),g=Math.max(f,p(u[1]||"")),f=s?Math.max(f,s.getFullYear()):f,g=n?Math.min(g,n.getFullYear()):g,t.yearshtml+="<select class='ui-datepicker-year' data-handler='selectYear' data-event='change'>";g>=f;f++)t.yearshtml+="<option value='"+f+"'"+(f===i?" selected='selected'":"")+">"+f+"</option>";t.yearshtml+="</select>",b+=t.yearshtml,t.yearshtml=null}return b+=this._get(t,"yearSuffix"),v&&(b+=(!o&&m&&_?"":"&#xa0;")+y),b+="</div>"},_adjustInstDate:function(t,e,i){var s=t.selectedYear+("Y"===i?e:0),n=t.selectedMonth+("M"===i?e:0),o=Math.min(t.selectedDay,this._getDaysInMonth(s,n))+("D"===i?e:0),a=this._restrictMinMax(t,this._daylightSavingAdjust(new Date(s,n,o)));t.selectedDay=a.getDate(),t.drawMonth=t.selectedMonth=a.getMonth(),t.drawYear=t.selectedYear=a.getFullYear(),("M"===i||"Y"===i)&&this._notifyChange(t)},_restrictMinMax:function(t,e){var i=this._getMinMaxDate(t,"min"),s=this._getMinMaxDate(t,"max"),n=i&&i>e?i:e;return s&&n>s?s:n},_notifyChange:function(t){var e=this._get(t,"onChangeMonthYear");e&&e.apply(t.input?t.input[0]:null,[t.selectedYear,t.selectedMonth+1,t])},_getNumberOfMonths:function(t){var e=this._get(t,"numberOfMonths");return null==e?[1,1]:"number"==typeof e?[1,e]:e},_getMinMaxDate:function(t,e){return this._determineDate(t,this._get(t,e+"Date"),null)},_getDaysInMonth:function(t,e){return 32-this._daylightSavingAdjust(new Date(t,e,32)).getDate()},_getFirstDayOfMonth:function(t,e){return new Date(t,e,1).getDay()},_canAdjustMonth:function(t,e,i,s){var n=this._getNumberOfMonths(t),o=this._daylightSavingAdjust(new Date(i,s+(0>e?e:n[0]*n[1]),1));return 0>e&&o.setDate(this._getDaysInMonth(o.getFullYear(),o.getMonth())),this._isInRange(t,o)},_isInRange:function(t,e){var i,s,n=this._getMinMaxDate(t,"min"),o=this._getMinMaxDate(t,"max"),a=null,r=null,h=this._get(t,"yearRange");return h&&(i=h.split(":"),s=(new Date).getFullYear(),a=parseInt(i[0],10),r=parseInt(i[1],10),i[0].match(/[+\-].*/)&&(a+=s),i[1].match(/[+\-].*/)&&(r+=s)),(!n||e.getTime()>=n.getTime())&&(!o||e.getTime()<=o.getTime())&&(!a||e.getFullYear()>=a)&&(!r||r>=e.getFullYear())},_getFormatConfig:function(t){var e=this._get(t,"shortYearCutoff");return e="string"!=typeof e?e:(new Date).getFullYear()%100+parseInt(e,10),{shortYearCutoff:e,dayNamesShort:this._get(t,"dayNamesShort"),dayNames:this._get(t,"dayNames"),monthNamesShort:this._get(t,"monthNamesShort"),monthNames:this._get(t,"monthNames")}},_formatDate:function(t,e,i,s){e||(t.currentDay=t.selectedDay,t.currentMonth=t.selectedMonth,t.currentYear=t.selectedYear);var n=e?"object"==typeof e?e:this._daylightSavingAdjust(new Date(s,i,e)):this._daylightSavingAdjust(new Date(t.currentYear,t.currentMonth,t.currentDay));return this.formatDate(this._get(t,"dateFormat"),n,this._getFormatConfig(t))}}),t.fn.datepicker=function(e){if(!this.length)return this;t.datepicker.initialized||(t(document).on("mousedown",t.datepicker._checkExternalClick),t.datepicker.initialized=!0),0===t("#"+t.datepicker._mainDivId).length&&t("body").append(t.datepicker.dpDiv);var i=Array.prototype.slice.call(arguments,1);return"string"!=typeof e||"isDisabled"!==e&&"getDate"!==e&&"widget"!==e?"option"===e&&2===arguments.length&&"string"==typeof arguments[1]?t.datepicker["_"+e+"Datepicker"].apply(t.datepicker,[this[0]].concat(i)):this.each(function(){"string"==typeof e?t.datepicker["_"+e+"Datepicker"].apply(t.datepicker,[this].concat(i)):t.datepicker._attachDatepicker(this,e)}):t.datepicker["_"+e+"Datepicker"].apply(t.datepicker,[this[0]].concat(i))},t.datepicker=new s,t.datepicker.initialized=!1,t.datepicker.uuid=(new Date).getTime(),t.datepicker.version="1.12.1",t.datepicker,t.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase());var _=!1;t(document).on("mouseup",function(){_=!1}),t.widget("ui.mouse",{version:"1.12.1",options:{cancel:"input, textarea, button, select, option",distance:1,delay:0},_mouseInit:function(){var e=this;this.element.on("mousedown."+this.widgetName,function(t){return e._mouseDown(t)}).on("click."+this.widgetName,function(i){return!0===t.data(i.target,e.widgetName+".preventClickEvent")?(t.removeData(i.target,e.widgetName+".preventClickEvent"),i.stopImmediatePropagation(),!1):void 0}),this.started=!1},_mouseDestroy:function(){this.element.off("."+this.widgetName),this._mouseMoveDelegate&&this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(e){if(!_){this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(e),this._mouseDownEvent=e;var i=this,s=1===e.which,n="string"==typeof this.options.cancel&&e.target.nodeName?t(e.target).closest(this.options.cancel).length:!1;return s&&!n&&this._mouseCapture(e)?(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){i.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(e)!==!1,!this._mouseStarted)?(e.preventDefault(),!0):(!0===t.data(e.target,this.widgetName+".preventClickEvent")&&t.removeData(e.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(t){return i._mouseMove(t)},this._mouseUpDelegate=function(t){return i._mouseUp(t)},this.document.on("mousemove."+this.widgetName,this._mouseMoveDelegate).on("mouseup."+this.widgetName,this._mouseUpDelegate),e.preventDefault(),_=!0,!0)):!0}},_mouseMove:function(e){if(this._mouseMoved){if(t.ui.ie&&(!document.documentMode||9>document.documentMode)&&!e.button)return this._mouseUp(e);if(!e.which)if(e.originalEvent.altKey||e.originalEvent.ctrlKey||e.originalEvent.metaKey||e.originalEvent.shiftKey)this.ignoreMissingWhich=!0;else if(!this.ignoreMissingWhich)return this._mouseUp(e)}return(e.which||e.button)&&(this._mouseMoved=!0),this._mouseStarted?(this._mouseDrag(e),e.preventDefault()):(this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,e)!==!1,this._mouseStarted?this._mouseDrag(e):this._mouseUp(e)),!this._mouseStarted)},_mouseUp:function(e){this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,e.target===this._mouseDownEvent.target&&t.data(e.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(e)),this._mouseDelayTimer&&(clearTimeout(this._mouseDelayTimer),delete this._mouseDelayTimer),this.ignoreMissingWhich=!1,_=!1,e.preventDefault()},_mouseDistanceMet:function(t){return Math.max(Math.abs(this._mouseDownEvent.pageX-t.pageX),Math.abs(this._mouseDownEvent.pageY-t.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),t.ui.plugin={add:function(e,i,s){var n,o=t.ui[e].prototype;for(n in s)o.plugins[n]=o.plugins[n]||[],o.plugins[n].push([i,s[n]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;o.length>n;n++)t.options[o[n][0]]&&o[n][1].apply(t.element,i)}},t.ui.safeBlur=function(e){e&&"body"!==e.nodeName.toLowerCase()&&t(e).trigger("blur")},t.widget("ui.draggable",t.ui.mouse,{version:"1.12.1",widgetEventPrefix:"drag",options:{addClasses:!0,appendTo:"parent",axis:!1,connectToSortable:!1,containment:!1,cursor:"auto",cursorAt:!1,grid:!1,handle:!1,helper:"original",iframeFix:!1,opacity:!1,refreshPositions:!1,revert:!1,revertDuration:500,scope:"default",scroll:!0,scrollSensitivity:20,scrollSpeed:20,snap:!1,snapMode:"both",snapTolerance:20,stack:!1,zIndex:!1,drag:null,start:null,stop:null},_create:function(){"original"===this.options.helper&&this._setPositionRelative(),this.options.addClasses&&this._addClass("ui-draggable"),this._setHandleClassName(),this._mouseInit()},_setOption:function(t,e){this._super(t,e),"handle"===t&&(this._removeHandleClassName(),this._setHandleClassName())},_destroy:function(){return(this.helper||this.element).is(".ui-draggable-dragging")?(this.destroyOnClear=!0,void 0):(this._removeHandleClassName(),this._mouseDestroy(),void 0)},_mouseCapture:function(e){var i=this.options;return this.helper||i.disabled||t(e.target).closest(".ui-resizable-handle").length>0?!1:(this.handle=this._getHandle(e),this.handle?(this._blurActiveElement(e),this._blockFrames(i.iframeFix===!0?"iframe":i.iframeFix),!0):!1)},_blockFrames:function(e){this.iframeBlocks=this.document.find(e).map(function(){var e=t(this);return t("<div>").css("position","absolute").appendTo(e.parent()).outerWidth(e.outerWidth()).outerHeight(e.outerHeight()).offset(e.offset())[0]})},_unblockFrames:function(){this.iframeBlocks&&(this.iframeBlocks.remove(),delete this.iframeBlocks)},_blurActiveElement:function(e){var i=t.ui.safeActiveElement(this.document[0]),s=t(e.target);s.closest(i).length||t.ui.safeBlur(i)},_mouseStart:function(e){var i=this.options;return this.helper=this._createHelper(e),this._addClass(this.helper,"ui-draggable-dragging"),this._cacheHelperProportions(),t.ui.ddmanager&&(t.ui.ddmanager.current=this),this._cacheMargins(),this.cssPosition=this.helper.css("position"),this.scrollParent=this.helper.scrollParent(!0),this.offsetParent=this.helper.offsetParent(),this.hasFixedAncestor=this.helper.parents().filter(function(){return"fixed"===t(this).css("position")}).length>0,this.positionAbs=this.element.offset(),this._refreshOffsets(e),this.originalPosition=this.position=this._generatePosition(e,!1),this.originalPageX=e.pageX,this.originalPageY=e.pageY,i.cursorAt&&this._adjustOffsetFromHelper(i.cursorAt),this._setContainment(),this._trigger("start",e)===!1?(this._clear(),!1):(this._cacheHelperProportions(),t.ui.ddmanager&&!i.dropBehaviour&&t.ui.ddmanager.prepareOffsets(this,e),this._mouseDrag(e,!0),t.ui.ddmanager&&t.ui.ddmanager.dragStart(this,e),!0)},_refreshOffsets:function(t){this.offset={top:this.positionAbs.top-this.margins.top,left:this.positionAbs.left-this.margins.left,scroll:!1,parent:this._getParentOffset(),relative:this._getRelativeOffset()},this.offset.click={left:t.pageX-this.offset.left,top:t.pageY-this.offset.top}},_mouseDrag:function(e,i){if(this.hasFixedAncestor&&(this.offset.parent=this._getParentOffset()),this.position=this._generatePosition(e,!0),this.positionAbs=this._convertPositionTo("absolute"),!i){var s=this._uiHash();if(this._trigger("drag",e,s)===!1)return this._mouseUp(new t.Event("mouseup",e)),!1;this.position=s.position}return this.helper[0].style.left=this.position.left+"px",this.helper[0].style.top=this.position.top+"px",t.ui.ddmanager&&t.ui.ddmanager.drag(this,e),!1},_mouseStop:function(e){var i=this,s=!1;return t.ui.ddmanager&&!this.options.dropBehaviour&&(s=t.ui.ddmanager.drop(this,e)),this.dropped&&(s=this.dropped,this.dropped=!1),"invalid"===this.options.revert&&!s||"valid"===this.options.revert&&s||this.options.revert===!0||t.isFunction(this.options.revert)&&this.options.revert.call(this.element,s)?t(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){i._trigger("stop",e)!==!1&&i._clear()}):this._trigger("stop",e)!==!1&&this._clear(),!1},_mouseUp:function(e){return this._unblockFrames(),t.ui.ddmanager&&t.ui.ddmanager.dragStop(this,e),this.handleElement.is(e.target)&&this.element.trigger("focus"),t.ui.mouse.prototype._mouseUp.call(this,e)},cancel:function(){return this.helper.is(".ui-draggable-dragging")?this._mouseUp(new t.Event("mouseup",{target:this.element[0]})):this._clear(),this},_getHandle:function(e){return this.options.handle?!!t(e.target).closest(this.element.find(this.options.handle)).length:!0},_setHandleClassName:function(){this.handleElement=this.options.handle?this.element.find(this.options.handle):this.element,this._addClass(this.handleElement,"ui-draggable-handle")},_removeHandleClassName:function(){this._removeClass(this.handleElement,"ui-draggable-handle")},_createHelper:function(e){var i=this.options,s=t.isFunction(i.helper),n=s?t(i.helper.apply(this.element[0],[e])):"clone"===i.helper?this.element.clone().removeAttr("id"):this.element;return n.parents("body").length||n.appendTo("parent"===i.appendTo?this.element[0].parentNode:i.appendTo),s&&n[0]===this.element[0]&&this._setPositionRelative(),n[0]===this.element[0]||/(fixed|absolute)/.test(n.css("position"))||n.css("position","absolute"),n},_setPositionRelative:function(){/^(?:r|a|f)/.test(this.element.css("position"))||(this.element[0].style.position="relative")},_adjustOffsetFromHelper:function(e){"string"==typeof e&&(e=e.split(" ")),t.isArray(e)&&(e={left:+e[0],top:+e[1]||0}),"left"in e&&(this.offset.click.left=e.left+this.margins.left),"right"in e&&(this.offset.click.left=this.helperProportions.width-e.right+this.margins.left),"top"in e&&(this.offset.click.top=e.top+this.margins.top),"bottom"in e&&(this.offset.click.top=this.helperProportions.height-e.bottom+this.margins.top)},_isRootNode:function(t){return/(html|body)/i.test(t.tagName)||t===this.document[0]},_getParentOffset:function(){var e=this.offsetParent.offset(),i=this.document[0];return"absolute"===this.cssPosition&&this.scrollParent[0]!==i&&t.contains(this.scrollParent[0],this.offsetParent[0])&&(e.left+=this.scrollParent.scrollLeft(),e.top+=this.scrollParent.scrollTop()),this._isRootNode(this.offsetParent[0])&&(e={top:0,left:0}),{top:e.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:e.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if("relative"!==this.cssPosition)return{top:0,left:0};var t=this.element.position(),e=this._isRootNode(this.scrollParent[0]);return{top:t.top-(parseInt(this.helper.css("top"),10)||0)+(e?0:this.scrollParent.scrollTop()),left:t.left-(parseInt(this.helper.css("left"),10)||0)+(e?0:this.scrollParent.scrollLeft())}
-},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0,right:parseInt(this.element.css("marginRight"),10)||0,bottom:parseInt(this.element.css("marginBottom"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var e,i,s,n=this.options,o=this.document[0];return this.relativeContainer=null,n.containment?"window"===n.containment?(this.containment=[t(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,t(window).scrollTop()-this.offset.relative.top-this.offset.parent.top,t(window).scrollLeft()+t(window).width()-this.helperProportions.width-this.margins.left,t(window).scrollTop()+(t(window).height()||o.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top],void 0):"document"===n.containment?(this.containment=[0,0,t(o).width()-this.helperProportions.width-this.margins.left,(t(o).height()||o.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top],void 0):n.containment.constructor===Array?(this.containment=n.containment,void 0):("parent"===n.containment&&(n.containment=this.helper[0].parentNode),i=t(n.containment),s=i[0],s&&(e=/(scroll|auto)/.test(i.css("overflow")),this.containment=[(parseInt(i.css("borderLeftWidth"),10)||0)+(parseInt(i.css("paddingLeft"),10)||0),(parseInt(i.css("borderTopWidth"),10)||0)+(parseInt(i.css("paddingTop"),10)||0),(e?Math.max(s.scrollWidth,s.offsetWidth):s.offsetWidth)-(parseInt(i.css("borderRightWidth"),10)||0)-(parseInt(i.css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,(e?Math.max(s.scrollHeight,s.offsetHeight):s.offsetHeight)-(parseInt(i.css("borderBottomWidth"),10)||0)-(parseInt(i.css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom],this.relativeContainer=i),void 0):(this.containment=null,void 0)},_convertPositionTo:function(t,e){e||(e=this.position);var i="absolute"===t?1:-1,s=this._isRootNode(this.scrollParent[0]);return{top:e.top+this.offset.relative.top*i+this.offset.parent.top*i-("fixed"===this.cssPosition?-this.offset.scroll.top:s?0:this.offset.scroll.top)*i,left:e.left+this.offset.relative.left*i+this.offset.parent.left*i-("fixed"===this.cssPosition?-this.offset.scroll.left:s?0:this.offset.scroll.left)*i}},_generatePosition:function(t,e){var i,s,n,o,a=this.options,r=this._isRootNode(this.scrollParent[0]),h=t.pageX,l=t.pageY;return r&&this.offset.scroll||(this.offset.scroll={top:this.scrollParent.scrollTop(),left:this.scrollParent.scrollLeft()}),e&&(this.containment&&(this.relativeContainer?(s=this.relativeContainer.offset(),i=[this.containment[0]+s.left,this.containment[1]+s.top,this.containment[2]+s.left,this.containment[3]+s.top]):i=this.containment,t.pageX-this.offset.click.left<i[0]&&(h=i[0]+this.offset.click.left),t.pageY-this.offset.click.top<i[1]&&(l=i[1]+this.offset.click.top),t.pageX-this.offset.click.left>i[2]&&(h=i[2]+this.offset.click.left),t.pageY-this.offset.click.top>i[3]&&(l=i[3]+this.offset.click.top)),a.grid&&(n=a.grid[1]?this.originalPageY+Math.round((l-this.originalPageY)/a.grid[1])*a.grid[1]:this.originalPageY,l=i?n-this.offset.click.top>=i[1]||n-this.offset.click.top>i[3]?n:n-this.offset.click.top>=i[1]?n-a.grid[1]:n+a.grid[1]:n,o=a.grid[0]?this.originalPageX+Math.round((h-this.originalPageX)/a.grid[0])*a.grid[0]:this.originalPageX,h=i?o-this.offset.click.left>=i[0]||o-this.offset.click.left>i[2]?o:o-this.offset.click.left>=i[0]?o-a.grid[0]:o+a.grid[0]:o),"y"===a.axis&&(h=this.originalPageX),"x"===a.axis&&(l=this.originalPageY)),{top:l-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.offset.scroll.top:r?0:this.offset.scroll.top),left:h-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.offset.scroll.left:r?0:this.offset.scroll.left)}},_clear:function(){this._removeClass(this.helper,"ui-draggable-dragging"),this.helper[0]===this.element[0]||this.cancelHelperRemoval||this.helper.remove(),this.helper=null,this.cancelHelperRemoval=!1,this.destroyOnClear&&this.destroy()},_trigger:function(e,i,s){return s=s||this._uiHash(),t.ui.plugin.call(this,e,[i,s,this],!0),/^(drag|start|stop)/.test(e)&&(this.positionAbs=this._convertPositionTo("absolute"),s.offset=this.positionAbs),t.Widget.prototype._trigger.call(this,e,i,s)},plugins:{},_uiHash:function(){return{helper:this.helper,position:this.position,originalPosition:this.originalPosition,offset:this.positionAbs}}}),t.ui.plugin.add("draggable","connectToSortable",{start:function(e,i,s){var n=t.extend({},i,{item:s.element});s.sortables=[],t(s.options.connectToSortable).each(function(){var i=t(this).sortable("instance");i&&!i.options.disabled&&(s.sortables.push(i),i.refreshPositions(),i._trigger("activate",e,n))})},stop:function(e,i,s){var n=t.extend({},i,{item:s.element});s.cancelHelperRemoval=!1,t.each(s.sortables,function(){var t=this;t.isOver?(t.isOver=0,s.cancelHelperRemoval=!0,t.cancelHelperRemoval=!1,t._storedCSS={position:t.placeholder.css("position"),top:t.placeholder.css("top"),left:t.placeholder.css("left")},t._mouseStop(e),t.options.helper=t.options._helper):(t.cancelHelperRemoval=!0,t._trigger("deactivate",e,n))})},drag:function(e,i,s){t.each(s.sortables,function(){var n=!1,o=this;o.positionAbs=s.positionAbs,o.helperProportions=s.helperProportions,o.offset.click=s.offset.click,o._intersectsWith(o.containerCache)&&(n=!0,t.each(s.sortables,function(){return this.positionAbs=s.positionAbs,this.helperProportions=s.helperProportions,this.offset.click=s.offset.click,this!==o&&this._intersectsWith(this.containerCache)&&t.contains(o.element[0],this.element[0])&&(n=!1),n})),n?(o.isOver||(o.isOver=1,s._parent=i.helper.parent(),o.currentItem=i.helper.appendTo(o.element).data("ui-sortable-item",!0),o.options._helper=o.options.helper,o.options.helper=function(){return i.helper[0]},e.target=o.currentItem[0],o._mouseCapture(e,!0),o._mouseStart(e,!0,!0),o.offset.click.top=s.offset.click.top,o.offset.click.left=s.offset.click.left,o.offset.parent.left-=s.offset.parent.left-o.offset.parent.left,o.offset.parent.top-=s.offset.parent.top-o.offset.parent.top,s._trigger("toSortable",e),s.dropped=o.element,t.each(s.sortables,function(){this.refreshPositions()}),s.currentItem=s.element,o.fromOutside=s),o.currentItem&&(o._mouseDrag(e),i.position=o.position)):o.isOver&&(o.isOver=0,o.cancelHelperRemoval=!0,o.options._revert=o.options.revert,o.options.revert=!1,o._trigger("out",e,o._uiHash(o)),o._mouseStop(e,!0),o.options.revert=o.options._revert,o.options.helper=o.options._helper,o.placeholder&&o.placeholder.remove(),i.helper.appendTo(s._parent),s._refreshOffsets(e),i.position=s._generatePosition(e,!0),s._trigger("fromSortable",e),s.dropped=!1,t.each(s.sortables,function(){this.refreshPositions()}))})}}),t.ui.plugin.add("draggable","cursor",{start:function(e,i,s){var n=t("body"),o=s.options;n.css("cursor")&&(o._cursor=n.css("cursor")),n.css("cursor",o.cursor)},stop:function(e,i,s){var n=s.options;n._cursor&&t("body").css("cursor",n._cursor)}}),t.ui.plugin.add("draggable","opacity",{start:function(e,i,s){var n=t(i.helper),o=s.options;n.css("opacity")&&(o._opacity=n.css("opacity")),n.css("opacity",o.opacity)},stop:function(e,i,s){var n=s.options;n._opacity&&t(i.helper).css("opacity",n._opacity)}}),t.ui.plugin.add("draggable","scroll",{start:function(t,e,i){i.scrollParentNotHidden||(i.scrollParentNotHidden=i.helper.scrollParent(!1)),i.scrollParentNotHidden[0]!==i.document[0]&&"HTML"!==i.scrollParentNotHidden[0].tagName&&(i.overflowOffset=i.scrollParentNotHidden.offset())},drag:function(e,i,s){var n=s.options,o=!1,a=s.scrollParentNotHidden[0],r=s.document[0];a!==r&&"HTML"!==a.tagName?(n.axis&&"x"===n.axis||(s.overflowOffset.top+a.offsetHeight-e.pageY<n.scrollSensitivity?a.scrollTop=o=a.scrollTop+n.scrollSpeed:e.pageY-s.overflowOffset.top<n.scrollSensitivity&&(a.scrollTop=o=a.scrollTop-n.scrollSpeed)),n.axis&&"y"===n.axis||(s.overflowOffset.left+a.offsetWidth-e.pageX<n.scrollSensitivity?a.scrollLeft=o=a.scrollLeft+n.scrollSpeed:e.pageX-s.overflowOffset.left<n.scrollSensitivity&&(a.scrollLeft=o=a.scrollLeft-n.scrollSpeed))):(n.axis&&"x"===n.axis||(e.pageY-t(r).scrollTop()<n.scrollSensitivity?o=t(r).scrollTop(t(r).scrollTop()-n.scrollSpeed):t(window).height()-(e.pageY-t(r).scrollTop())<n.scrollSensitivity&&(o=t(r).scrollTop(t(r).scrollTop()+n.scrollSpeed))),n.axis&&"y"===n.axis||(e.pageX-t(r).scrollLeft()<n.scrollSensitivity?o=t(r).scrollLeft(t(r).scrollLeft()-n.scrollSpeed):t(window).width()-(e.pageX-t(r).scrollLeft())<n.scrollSensitivity&&(o=t(r).scrollLeft(t(r).scrollLeft()+n.scrollSpeed)))),o!==!1&&t.ui.ddmanager&&!n.dropBehaviour&&t.ui.ddmanager.prepareOffsets(s,e)}}),t.ui.plugin.add("draggable","snap",{start:function(e,i,s){var n=s.options;s.snapElements=[],t(n.snap.constructor!==String?n.snap.items||":data(ui-draggable)":n.snap).each(function(){var e=t(this),i=e.offset();this!==s.element[0]&&s.snapElements.push({item:this,width:e.outerWidth(),height:e.outerHeight(),top:i.top,left:i.left})})},drag:function(e,i,s){var n,o,a,r,h,l,c,u,d,p,f=s.options,g=f.snapTolerance,m=i.offset.left,_=m+s.helperProportions.width,v=i.offset.top,b=v+s.helperProportions.height;for(d=s.snapElements.length-1;d>=0;d--)h=s.snapElements[d].left-s.margins.left,l=h+s.snapElements[d].width,c=s.snapElements[d].top-s.margins.top,u=c+s.snapElements[d].height,h-g>_||m>l+g||c-g>b||v>u+g||!t.contains(s.snapElements[d].item.ownerDocument,s.snapElements[d].item)?(s.snapElements[d].snapping&&s.options.snap.release&&s.options.snap.release.call(s.element,e,t.extend(s._uiHash(),{snapItem:s.snapElements[d].item})),s.snapElements[d].snapping=!1):("inner"!==f.snapMode&&(n=g>=Math.abs(c-b),o=g>=Math.abs(u-v),a=g>=Math.abs(h-_),r=g>=Math.abs(l-m),n&&(i.position.top=s._convertPositionTo("relative",{top:c-s.helperProportions.height,left:0}).top),o&&(i.position.top=s._convertPositionTo("relative",{top:u,left:0}).top),a&&(i.position.left=s._convertPositionTo("relative",{top:0,left:h-s.helperProportions.width}).left),r&&(i.position.left=s._convertPositionTo("relative",{top:0,left:l}).left)),p=n||o||a||r,"outer"!==f.snapMode&&(n=g>=Math.abs(c-v),o=g>=Math.abs(u-b),a=g>=Math.abs(h-m),r=g>=Math.abs(l-_),n&&(i.position.top=s._convertPositionTo("relative",{top:c,left:0}).top),o&&(i.position.top=s._convertPositionTo("relative",{top:u-s.helperProportions.height,left:0}).top),a&&(i.position.left=s._convertPositionTo("relative",{top:0,left:h}).left),r&&(i.position.left=s._convertPositionTo("relative",{top:0,left:l-s.helperProportions.width}).left)),!s.snapElements[d].snapping&&(n||o||a||r||p)&&s.options.snap.snap&&s.options.snap.snap.call(s.element,e,t.extend(s._uiHash(),{snapItem:s.snapElements[d].item})),s.snapElements[d].snapping=n||o||a||r||p)}}),t.ui.plugin.add("draggable","stack",{start:function(e,i,s){var n,o=s.options,a=t.makeArray(t(o.stack)).sort(function(e,i){return(parseInt(t(e).css("zIndex"),10)||0)-(parseInt(t(i).css("zIndex"),10)||0)});a.length&&(n=parseInt(t(a[0]).css("zIndex"),10)||0,t(a).each(function(e){t(this).css("zIndex",n+e)}),this.css("zIndex",n+a.length))}}),t.ui.plugin.add("draggable","zIndex",{start:function(e,i,s){var n=t(i.helper),o=s.options;n.css("zIndex")&&(o._zIndex=n.css("zIndex")),n.css("zIndex",o.zIndex)},stop:function(e,i,s){var n=s.options;n._zIndex&&t(i.helper).css("zIndex",n._zIndex)}}),t.ui.draggable,t.widget("ui.resizable",t.ui.mouse,{version:"1.12.1",widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,classes:{"ui-resizable-se":"ui-icon ui-icon-gripsmall-diagonal-se"},containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:90,resize:null,start:null,stop:null},_num:function(t){return parseFloat(t)||0},_isNumber:function(t){return!isNaN(parseFloat(t))},_hasScroll:function(e,i){if("hidden"===t(e).css("overflow"))return!1;var s=i&&"left"===i?"scrollLeft":"scrollTop",n=!1;return e[s]>0?!0:(e[s]=1,n=e[s]>0,e[s]=0,n)},_create:function(){var e,i=this.options,s=this;this._addClass("ui-resizable"),t.extend(this,{_aspectRatio:!!i.aspectRatio,aspectRatio:i.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:i.helper||i.ghost||i.animate?i.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i)&&(this.element.wrap(t("<div class='ui-wrapper' style='overflow: hidden;'></div>").css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,e={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(e),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(e),this._proportionallyResize()),this._setupHandles(),i.autoHide&&t(this.element).on("mouseenter",function(){i.disabled||(s._removeClass("ui-resizable-autohide"),s._handles.show())}).on("mouseleave",function(){i.disabled||s.resizing||(s._addClass("ui-resizable-autohide"),s._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy();var e,i=function(e){t(e).removeData("resizable").removeData("ui-resizable").off(".resizable").find(".ui-resizable-handle").remove()};return this.elementIsWrapper&&(i(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),i(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case"handles":this._removeHandles(),this._setupHandles();break;default:}},_setupHandles:function(){var e,i,s,n,o,a=this.options,r=this;if(this.handles=a.handles||(t(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=t(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),s=this.handles.split(","),this.handles={},i=0;s.length>i;i++)e=t.trim(s[i]),n="ui-resizable-"+e,o=t("<div>"),this._addClass(o,"ui-resizable-handle "+n),o.css({zIndex:a.zIndex}),this.handles[e]=".ui-resizable-"+e,this.element.append(o);this._renderAxis=function(e){var i,s,n,o;e=e||this.element;for(i in this.handles)this.handles[i].constructor===String?this.handles[i]=this.element.children(this.handles[i]).first().show():(this.handles[i].jquery||this.handles[i].nodeType)&&(this.handles[i]=t(this.handles[i]),this._on(this.handles[i],{mousedown:r._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(s=t(this.handles[i],this.element),o=/sw|ne|nw|se|n|s/.test(i)?s.outerHeight():s.outerWidth(),n=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join(""),e.css(n,o),this._proportionallyResize()),this._handles=this._handles.add(this.handles[i])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){r.resizing||(this.className&&(o=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),r.axis=o&&o[1]?o[1]:"se")}),a.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._handles.remove()},_mouseCapture:function(e){var i,s,n=!1;for(i in this.handles)s=t(this.handles[i])[0],(s===e.target||t.contains(s,e.target))&&(n=!0);return!this.options.disabled&&n},_mouseStart:function(e){var i,s,n,o=this.options,a=this.element;return this.resizing=!0,this._renderProxy(),i=this._num(this.helper.css("left")),s=this._num(this.helper.css("top")),o.containment&&(i+=t(o.containment).scrollLeft()||0,s+=t(o.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:i,top:s},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:a.width(),height:a.height()},this.originalSize=this._helper?{width:a.outerWidth(),height:a.outerHeight()}:{width:a.width(),height:a.height()},this.sizeDiff={width:a.outerWidth()-a.width(),height:a.outerHeight()-a.height()},this.originalPosition={left:i,top:s},this.originalMousePosition={left:e.pageX,top:e.pageY},this.aspectRatio="number"==typeof o.aspectRatio?o.aspectRatio:this.originalSize.width/this.originalSize.height||1,n=t(".ui-resizable-"+this.axis).css("cursor"),t("body").css("cursor","auto"===n?this.axis+"-resize":n),this._addClass("ui-resizable-resizing"),this._propagate("start",e),!0},_mouseDrag:function(e){var i,s,n=this.originalMousePosition,o=this.axis,a=e.pageX-n.left||0,r=e.pageY-n.top||0,h=this._change[o];return this._updatePrevProperties(),h?(i=h.apply(this,[e,a,r]),this._updateVirtualBoundaries(e.shiftKey),(this._aspectRatio||e.shiftKey)&&(i=this._updateRatio(i,e)),i=this._respectSize(i,e),this._updateCache(i),this._propagate("resize",e),s=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),t.isEmptyObject(s)||(this._updatePrevProperties(),this._trigger("resize",e,this.ui()),this._applyChanges()),!1):!1},_mouseStop:function(e){this.resizing=!1;var i,s,n,o,a,r,h,l=this.options,c=this;return this._helper&&(i=this._proportionallyResizeElements,s=i.length&&/textarea/i.test(i[0].nodeName),n=s&&this._hasScroll(i[0],"left")?0:c.sizeDiff.height,o=s?0:c.sizeDiff.width,a={width:c.helper.width()-o,height:c.helper.height()-n},r=parseFloat(c.element.css("left"))+(c.position.left-c.originalPosition.left)||null,h=parseFloat(c.element.css("top"))+(c.position.top-c.originalPosition.top)||null,l.animate||this.element.css(t.extend(a,{top:h,left:r})),c.helper.height(c.size.height),c.helper.width(c.size.width),this._helper&&!l.animate&&this._proportionallyResize()),t("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",e),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s,n,o,a=this.options;o={minWidth:this._isNumber(a.minWidth)?a.minWidth:0,maxWidth:this._isNumber(a.maxWidth)?a.maxWidth:1/0,minHeight:this._isNumber(a.minHeight)?a.minHeight:0,maxHeight:this._isNumber(a.maxHeight)?a.maxHeight:1/0},(this._aspectRatio||t)&&(e=o.minHeight*this.aspectRatio,s=o.minWidth/this.aspectRatio,i=o.maxHeight*this.aspectRatio,n=o.maxWidth/this.aspectRatio,e>o.minWidth&&(o.minWidth=e),s>o.minHeight&&(o.minHeight=s),o.maxWidth>i&&(o.maxWidth=i),o.maxHeight>n&&(o.maxHeight=n)),this._vBoundaries=o},_updateCache:function(t){this.offset=this.helper.offset(),this._isNumber(t.left)&&(this.position.left=t.left),this._isNumber(t.top)&&(this.position.top=t.top),this._isNumber(t.height)&&(this.size.height=t.height),this._isNumber(t.width)&&(this.size.width=t.width)},_updateRatio:function(t){var e=this.position,i=this.size,s=this.axis;return this._isNumber(t.height)?t.width=t.height*this.aspectRatio:this._isNumber(t.width)&&(t.height=t.width/this.aspectRatio),"sw"===s&&(t.left=e.left+(i.width-t.width),t.top=null),"nw"===s&&(t.top=e.top+(i.height-t.height),t.left=e.left+(i.width-t.width)),t},_respectSize:function(t){var e=this._vBoundaries,i=this.axis,s=this._isNumber(t.width)&&e.maxWidth&&e.maxWidth<t.width,n=this._isNumber(t.height)&&e.maxHeight&&e.maxHeight<t.height,o=this._isNumber(t.width)&&e.minWidth&&e.minWidth>t.width,a=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,r=this.originalPosition.left+this.originalSize.width,h=this.originalPosition.top+this.originalSize.height,l=/sw|nw|w/.test(i),c=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),a&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&l&&(t.left=r-e.minWidth),s&&l&&(t.left=r-e.maxWidth),a&&c&&(t.top=h-e.minHeight),n&&c&&(t.top=h-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];4>e;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;this._proportionallyResizeElements.length>e;e++)t=this._proportionallyResizeElements[e],this.outerDimensions||(this.outerDimensions=this._getPaddingPlusBorderDimensions(t)),t.css({height:i.height()-this.outerDimensions.height||0,width:i.width()-this.outerDimensions.width||0})},_renderProxy:function(){var e=this.element,i=this.options;this.elementOffset=e.offset(),this._helper?(this.helper=this.helper||t("<div style='overflow:hidden;'></div>"),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++i.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize,s=this.originalPosition;return{left:s.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize,n=this.originalPosition;return{top:n.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},sw:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[e,i,s]))},ne:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},nw:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[e,i,s]))}},_propagate:function(e,i){t.ui.plugin.call(this,e,[i,this.ui()]),"resize"!==e&&this._trigger(e,i,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),t.ui.plugin.add("resizable","animate",{stop:function(e){var i=t(this).resizable("instance"),s=i.options,n=i._proportionallyResizeElements,o=n.length&&/textarea/i.test(n[0].nodeName),a=o&&i._hasScroll(n[0],"left")?0:i.sizeDiff.height,r=o?0:i.sizeDiff.width,h={width:i.size.width-r,height:i.size.height-a},l=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left)||null,c=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(t.extend(h,c&&l?{top:c,left:l}:{}),{duration:s.animateDuration,easing:s.animateEasing,step:function(){var s={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};n&&n.length&&t(n[0]).css({width:s.width,height:s.height}),i._updateCache(s),i._propagate("resize",e)}})}}),t.ui.plugin.add("resizable","containment",{start:function(){var e,i,s,n,o,a,r,h=t(this).resizable("instance"),l=h.options,c=h.element,u=l.containment,d=u instanceof t?u.get(0):/parent/.test(u)?c.parent().get(0):u;d&&(h.containerElement=t(d),/document/.test(u)||u===document?(h.containerOffset={left:0,top:0},h.containerPosition={left:0,top:0},h.parentData={element:t(document),left:0,top:0,width:t(document).width(),height:t(document).height()||document.body.parentNode.scrollHeight}):(e=t(d),i=[],t(["Top","Right","Left","Bottom"]).each(function(t,s){i[t]=h._num(e.css("padding"+s))}),h.containerOffset=e.offset(),h.containerPosition=e.position(),h.containerSize={height:e.innerHeight()-i[3],width:e.innerWidth()-i[1]},s=h.containerOffset,n=h.containerSize.height,o=h.containerSize.width,a=h._hasScroll(d,"left")?d.scrollWidth:o,r=h._hasScroll(d)?d.scrollHeight:n,h.parentData={element:d,left:s.left,top:s.top,width:a,height:r}))},resize:function(e){var i,s,n,o,a=t(this).resizable("instance"),r=a.options,h=a.containerOffset,l=a.position,c=a._aspectRatio||e.shiftKey,u={top:0,left:0},d=a.containerElement,p=!0;d[0]!==document&&/static/.test(d.css("position"))&&(u=h),l.left<(a._helper?h.left:0)&&(a.size.width=a.size.width+(a._helper?a.position.left-h.left:a.position.left-u.left),c&&(a.size.height=a.size.width/a.aspectRatio,p=!1),a.position.left=r.helper?h.left:0),l.top<(a._helper?h.top:0)&&(a.size.height=a.size.height+(a._helper?a.position.top-h.top:a.position.top),c&&(a.size.width=a.size.height*a.aspectRatio,p=!1),a.position.top=a._helper?h.top:0),n=a.containerElement.get(0)===a.element.parent().get(0),o=/relative|absolute/.test(a.containerElement.css("position")),n&&o?(a.offset.left=a.parentData.left+a.position.left,a.offset.top=a.parentData.top+a.position.top):(a.offset.left=a.element.offset().left,a.offset.top=a.element.offset().top),i=Math.abs(a.sizeDiff.width+(a._helper?a.offset.left-u.left:a.offset.left-h.left)),s=Math.abs(a.sizeDiff.height+(a._helper?a.offset.top-u.top:a.offset.top-h.top)),i+a.size.width>=a.parentData.width&&(a.size.width=a.parentData.width-i,c&&(a.size.height=a.size.width/a.aspectRatio,p=!1)),s+a.size.height>=a.parentData.height&&(a.size.height=a.parentData.height-s,c&&(a.size.width=a.size.height*a.aspectRatio,p=!1)),p||(a.position.left=a.prevPosition.left,a.position.top=a.prevPosition.top,a.size.width=a.prevSize.width,a.size.height=a.prevSize.height)},stop:function(){var e=t(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.containerPosition,o=e.containerElement,a=t(e.helper),r=a.offset(),h=a.outerWidth()-e.sizeDiff.width,l=a.outerHeight()-e.sizeDiff.height;e._helper&&!i.animate&&/relative/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l}),e._helper&&!i.animate&&/static/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l})}}),t.ui.plugin.add("resizable","alsoResize",{start:function(){var e=t(this).resizable("instance"),i=e.options;t(i.alsoResize).each(function(){var e=t(this);e.data("ui-resizable-alsoresize",{width:parseFloat(e.width()),height:parseFloat(e.height()),left:parseFloat(e.css("left")),top:parseFloat(e.css("top"))})})},resize:function(e,i){var s=t(this).resizable("instance"),n=s.options,o=s.originalSize,a=s.originalPosition,r={height:s.size.height-o.height||0,width:s.size.width-o.width||0,top:s.position.top-a.top||0,left:s.position.left-a.left||0};t(n.alsoResize).each(function(){var e=t(this),s=t(this).data("ui-resizable-alsoresize"),n={},o=e.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];t.each(o,function(t,e){var i=(s[e]||0)+(r[e]||0);i&&i>=0&&(n[e]=i||null)}),e.css(n)})},stop:function(){t(this).removeData("ui-resizable-alsoresize")}}),t.ui.plugin.add("resizable","ghost",{start:function(){var e=t(this).resizable("instance"),i=e.size;e.ghost=e.originalElement.clone(),e.ghost.css({opacity:.25,display:"block",position:"relative",height:i.height,width:i.width,margin:0,left:0,top:0}),e._addClass(e.ghost,"ui-resizable-ghost"),t.uiBackCompat!==!1&&"string"==typeof e.options.ghost&&e.ghost.addClass(this.options.ghost),e.ghost.appendTo(e.helper)},resize:function(){var e=t(this).resizable("instance");e.ghost&&e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})},stop:function(){var e=t(this).resizable("instance");e.ghost&&e.helper&&e.helper.get(0).removeChild(e.ghost.get(0))}}),t.ui.plugin.add("resizable","grid",{resize:function(){var e,i=t(this).resizable("instance"),s=i.options,n=i.size,o=i.originalSize,a=i.originalPosition,r=i.axis,h="number"==typeof s.grid?[s.grid,s.grid]:s.grid,l=h[0]||1,c=h[1]||1,u=Math.round((n.width-o.width)/l)*l,d=Math.round((n.height-o.height)/c)*c,p=o.width+u,f=o.height+d,g=s.maxWidth&&p>s.maxWidth,m=s.maxHeight&&f>s.maxHeight,_=s.minWidth&&s.minWidth>p,v=s.minHeight&&s.minHeight>f;s.grid=h,_&&(p+=l),v&&(f+=c),g&&(p-=l),m&&(f-=c),/^(se|s|e)$/.test(r)?(i.size.width=p,i.size.height=f):/^(ne)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.top=a.top-d):/^(sw)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.left=a.left-u):((0>=f-c||0>=p-l)&&(e=i._getPaddingPlusBorderDimensions(this)),f-c>0?(i.size.height=f,i.position.top=a.top-d):(f=c-e.height,i.size.height=f,i.position.top=a.top+o.height-f),p-l>0?(i.size.width=p,i.position.left=a.left-u):(p=l-e.width,i.size.width=p,i.position.left=a.left+o.width-p))}}),t.ui.resizable,t.widget("ui.dialog",{version:"1.12.1",options:{appendTo:"body",autoOpen:!0,buttons:[],classes:{"ui-dialog":"ui-corner-all","ui-dialog-titlebar":"ui-corner-all"},closeOnEscape:!0,closeText:"Close",draggable:!0,hide:null,height:"auto",maxHeight:null,maxWidth:null,minHeight:150,minWidth:150,modal:!1,position:{my:"center",at:"center",of:window,collision:"fit",using:function(e){var i=t(this).css(e).offset().top;0>i&&t(this).css("top",e.top-i)}},resizable:!0,show:null,title:null,width:300,beforeClose:null,close:null,drag:null,dragStart:null,dragStop:null,focus:null,open:null,resize:null,resizeStart:null,resizeStop:null},sizeRelatedOptions:{buttons:!0,height:!0,maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0,width:!0},resizableRelatedOptions:{maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0},_create:function(){this.originalCss={display:this.element[0].style.display,width:this.element[0].style.width,minHeight:this.element[0].style.minHeight,maxHeight:this.element[0].style.maxHeight,height:this.element[0].style.height},this.originalPosition={parent:this.element.parent(),index:this.element.parent().children().index(this.element)},this.originalTitle=this.element.attr("title"),null==this.options.title&&null!=this.originalTitle&&(this.options.title=this.originalTitle),this.options.disabled&&(this.options.disabled=!1),this._createWrapper(),this.element.show().removeAttr("title").appendTo(this.uiDialog),this._addClass("ui-dialog-content","ui-widget-content"),this._createTitlebar(),this._createButtonPane(),this.options.draggable&&t.fn.draggable&&this._makeDraggable(),this.options.resizable&&t.fn.resizable&&this._makeResizable(),this._isOpen=!1,this._trackFocus()},_init:function(){this.options.autoOpen&&this.open()},_appendTo:function(){var e=this.options.appendTo;return e&&(e.jquery||e.nodeType)?t(e):this.document.find(e||"body").eq(0)},_destroy:function(){var t,e=this.originalPosition;this._untrackInstance(),this._destroyOverlay(),this.element.removeUniqueId().css(this.originalCss).detach(),this.uiDialog.remove(),this.originalTitle&&this.element.attr("title",this.originalTitle),t=e.parent.children().eq(e.index),t.length&&t[0]!==this.element[0]?t.before(this.element):e.parent.append(this.element)},widget:function(){return this.uiDialog
-},disable:t.noop,enable:t.noop,close:function(e){var i=this;this._isOpen&&this._trigger("beforeClose",e)!==!1&&(this._isOpen=!1,this._focusedElement=null,this._destroyOverlay(),this._untrackInstance(),this.opener.filter(":focusable").trigger("focus").length||t.ui.safeBlur(t.ui.safeActiveElement(this.document[0])),this._hide(this.uiDialog,this.options.hide,function(){i._trigger("close",e)}))},isOpen:function(){return this._isOpen},moveToTop:function(){this._moveToTop()},_moveToTop:function(e,i){var s=!1,n=this.uiDialog.siblings(".ui-front:visible").map(function(){return+t(this).css("z-index")}).get(),o=Math.max.apply(null,n);return o>=+this.uiDialog.css("z-index")&&(this.uiDialog.css("z-index",o+1),s=!0),s&&!i&&this._trigger("focus",e),s},open:function(){var e=this;return this._isOpen?(this._moveToTop()&&this._focusTabbable(),void 0):(this._isOpen=!0,this.opener=t(t.ui.safeActiveElement(this.document[0])),this._size(),this._position(),this._createOverlay(),this._moveToTop(null,!0),this.overlay&&this.overlay.css("z-index",this.uiDialog.css("z-index")-1),this._show(this.uiDialog,this.options.show,function(){e._focusTabbable(),e._trigger("focus")}),this._makeFocusTarget(),this._trigger("open"),void 0)},_focusTabbable:function(){var t=this._focusedElement;t||(t=this.element.find("[autofocus]")),t.length||(t=this.element.find(":tabbable")),t.length||(t=this.uiDialogButtonPane.find(":tabbable")),t.length||(t=this.uiDialogTitlebarClose.filter(":tabbable")),t.length||(t=this.uiDialog),t.eq(0).trigger("focus")},_keepFocus:function(e){function i(){var e=t.ui.safeActiveElement(this.document[0]),i=this.uiDialog[0]===e||t.contains(this.uiDialog[0],e);i||this._focusTabbable()}e.preventDefault(),i.call(this),this._delay(i)},_createWrapper:function(){this.uiDialog=t("<div>").hide().attr({tabIndex:-1,role:"dialog"}).appendTo(this._appendTo()),this._addClass(this.uiDialog,"ui-dialog","ui-widget ui-widget-content ui-front"),this._on(this.uiDialog,{keydown:function(e){if(this.options.closeOnEscape&&!e.isDefaultPrevented()&&e.keyCode&&e.keyCode===t.ui.keyCode.ESCAPE)return e.preventDefault(),this.close(e),void 0;if(e.keyCode===t.ui.keyCode.TAB&&!e.isDefaultPrevented()){var i=this.uiDialog.find(":tabbable"),s=i.filter(":first"),n=i.filter(":last");e.target!==n[0]&&e.target!==this.uiDialog[0]||e.shiftKey?e.target!==s[0]&&e.target!==this.uiDialog[0]||!e.shiftKey||(this._delay(function(){n.trigger("focus")}),e.preventDefault()):(this._delay(function(){s.trigger("focus")}),e.preventDefault())}},mousedown:function(t){this._moveToTop(t)&&this._focusTabbable()}}),this.element.find("[aria-describedby]").length||this.uiDialog.attr({"aria-describedby":this.element.uniqueId().attr("id")})},_createTitlebar:function(){var e;this.uiDialogTitlebar=t("<div>"),this._addClass(this.uiDialogTitlebar,"ui-dialog-titlebar","ui-widget-header ui-helper-clearfix"),this._on(this.uiDialogTitlebar,{mousedown:function(e){t(e.target).closest(".ui-dialog-titlebar-close")||this.uiDialog.trigger("focus")}}),this.uiDialogTitlebarClose=t("<button type='button'></button>").button({label:t("<a>").text(this.options.closeText).html(),icon:"ui-icon-closethick",showLabel:!1}).appendTo(this.uiDialogTitlebar),this._addClass(this.uiDialogTitlebarClose,"ui-dialog-titlebar-close"),this._on(this.uiDialogTitlebarClose,{click:function(t){t.preventDefault(),this.close(t)}}),e=t("<span>").uniqueId().prependTo(this.uiDialogTitlebar),this._addClass(e,"ui-dialog-title"),this._title(e),this.uiDialogTitlebar.prependTo(this.uiDialog),this.uiDialog.attr({"aria-labelledby":e.attr("id")})},_title:function(t){this.options.title?t.text(this.options.title):t.html("&#160;")},_createButtonPane:function(){this.uiDialogButtonPane=t("<div>"),this._addClass(this.uiDialogButtonPane,"ui-dialog-buttonpane","ui-widget-content ui-helper-clearfix"),this.uiButtonSet=t("<div>").appendTo(this.uiDialogButtonPane),this._addClass(this.uiButtonSet,"ui-dialog-buttonset"),this._createButtons()},_createButtons:function(){var e=this,i=this.options.buttons;return this.uiDialogButtonPane.remove(),this.uiButtonSet.empty(),t.isEmptyObject(i)||t.isArray(i)&&!i.length?(this._removeClass(this.uiDialog,"ui-dialog-buttons"),void 0):(t.each(i,function(i,s){var n,o;s=t.isFunction(s)?{click:s,text:i}:s,s=t.extend({type:"button"},s),n=s.click,o={icon:s.icon,iconPosition:s.iconPosition,showLabel:s.showLabel,icons:s.icons,text:s.text},delete s.click,delete s.icon,delete s.iconPosition,delete s.showLabel,delete s.icons,"boolean"==typeof s.text&&delete s.text,t("<button></button>",s).button(o).appendTo(e.uiButtonSet).on("click",function(){n.apply(e.element[0],arguments)})}),this._addClass(this.uiDialog,"ui-dialog-buttons"),this.uiDialogButtonPane.appendTo(this.uiDialog),void 0)},_makeDraggable:function(){function e(t){return{position:t.position,offset:t.offset}}var i=this,s=this.options;this.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close",handle:".ui-dialog-titlebar",containment:"document",start:function(s,n){i._addClass(t(this),"ui-dialog-dragging"),i._blockFrames(),i._trigger("dragStart",s,e(n))},drag:function(t,s){i._trigger("drag",t,e(s))},stop:function(n,o){var a=o.offset.left-i.document.scrollLeft(),r=o.offset.top-i.document.scrollTop();s.position={my:"left top",at:"left"+(a>=0?"+":"")+a+" "+"top"+(r>=0?"+":"")+r,of:i.window},i._removeClass(t(this),"ui-dialog-dragging"),i._unblockFrames(),i._trigger("dragStop",n,e(o))}})},_makeResizable:function(){function e(t){return{originalPosition:t.originalPosition,originalSize:t.originalSize,position:t.position,size:t.size}}var i=this,s=this.options,n=s.resizable,o=this.uiDialog.css("position"),a="string"==typeof n?n:"n,e,s,w,se,sw,ne,nw";this.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:this.element,maxWidth:s.maxWidth,maxHeight:s.maxHeight,minWidth:s.minWidth,minHeight:this._minHeight(),handles:a,start:function(s,n){i._addClass(t(this),"ui-dialog-resizing"),i._blockFrames(),i._trigger("resizeStart",s,e(n))},resize:function(t,s){i._trigger("resize",t,e(s))},stop:function(n,o){var a=i.uiDialog.offset(),r=a.left-i.document.scrollLeft(),h=a.top-i.document.scrollTop();s.height=i.uiDialog.height(),s.width=i.uiDialog.width(),s.position={my:"left top",at:"left"+(r>=0?"+":"")+r+" "+"top"+(h>=0?"+":"")+h,of:i.window},i._removeClass(t(this),"ui-dialog-resizing"),i._unblockFrames(),i._trigger("resizeStop",n,e(o))}}).css("position",o)},_trackFocus:function(){this._on(this.widget(),{focusin:function(e){this._makeFocusTarget(),this._focusedElement=t(e.target)}})},_makeFocusTarget:function(){this._untrackInstance(),this._trackingInstances().unshift(this)},_untrackInstance:function(){var e=this._trackingInstances(),i=t.inArray(this,e);-1!==i&&e.splice(i,1)},_trackingInstances:function(){var t=this.document.data("ui-dialog-instances");return t||(t=[],this.document.data("ui-dialog-instances",t)),t},_minHeight:function(){var t=this.options;return"auto"===t.height?t.minHeight:Math.min(t.minHeight,t.height)},_position:function(){var t=this.uiDialog.is(":visible");t||this.uiDialog.show(),this.uiDialog.position(this.options.position),t||this.uiDialog.hide()},_setOptions:function(e){var i=this,s=!1,n={};t.each(e,function(t,e){i._setOption(t,e),t in i.sizeRelatedOptions&&(s=!0),t in i.resizableRelatedOptions&&(n[t]=e)}),s&&(this._size(),this._position()),this.uiDialog.is(":data(ui-resizable)")&&this.uiDialog.resizable("option",n)},_setOption:function(e,i){var s,n,o=this.uiDialog;"disabled"!==e&&(this._super(e,i),"appendTo"===e&&this.uiDialog.appendTo(this._appendTo()),"buttons"===e&&this._createButtons(),"closeText"===e&&this.uiDialogTitlebarClose.button({label:t("<a>").text(""+this.options.closeText).html()}),"draggable"===e&&(s=o.is(":data(ui-draggable)"),s&&!i&&o.draggable("destroy"),!s&&i&&this._makeDraggable()),"position"===e&&this._position(),"resizable"===e&&(n=o.is(":data(ui-resizable)"),n&&!i&&o.resizable("destroy"),n&&"string"==typeof i&&o.resizable("option","handles",i),n||i===!1||this._makeResizable()),"title"===e&&this._title(this.uiDialogTitlebar.find(".ui-dialog-title")))},_size:function(){var t,e,i,s=this.options;this.element.show().css({width:"auto",minHeight:0,maxHeight:"none",height:0}),s.minWidth>s.width&&(s.width=s.minWidth),t=this.uiDialog.css({height:"auto",width:s.width}).outerHeight(),e=Math.max(0,s.minHeight-t),i="number"==typeof s.maxHeight?Math.max(0,s.maxHeight-t):"none","auto"===s.height?this.element.css({minHeight:e,maxHeight:i,height:"auto"}):this.element.height(Math.max(0,s.height-t)),this.uiDialog.is(":data(ui-resizable)")&&this.uiDialog.resizable("option","minHeight",this._minHeight())},_blockFrames:function(){this.iframeBlocks=this.document.find("iframe").map(function(){var e=t(this);return t("<div>").css({position:"absolute",width:e.outerWidth(),height:e.outerHeight()}).appendTo(e.parent()).offset(e.offset())[0]})},_unblockFrames:function(){this.iframeBlocks&&(this.iframeBlocks.remove(),delete this.iframeBlocks)},_allowInteraction:function(e){return t(e.target).closest(".ui-dialog").length?!0:!!t(e.target).closest(".ui-datepicker").length},_createOverlay:function(){if(this.options.modal){var e=!0;this._delay(function(){e=!1}),this.document.data("ui-dialog-overlays")||this._on(this.document,{focusin:function(t){e||this._allowInteraction(t)||(t.preventDefault(),this._trackingInstances()[0]._focusTabbable())}}),this.overlay=t("<div>").appendTo(this._appendTo()),this._addClass(this.overlay,null,"ui-widget-overlay ui-front"),this._on(this.overlay,{mousedown:"_keepFocus"}),this.document.data("ui-dialog-overlays",(this.document.data("ui-dialog-overlays")||0)+1)}},_destroyOverlay:function(){if(this.options.modal&&this.overlay){var t=this.document.data("ui-dialog-overlays")-1;t?this.document.data("ui-dialog-overlays",t):(this._off(this.document,"focusin"),this.document.removeData("ui-dialog-overlays")),this.overlay.remove(),this.overlay=null}}}),t.uiBackCompat!==!1&&t.widget("ui.dialog",t.ui.dialog,{options:{dialogClass:""},_createWrapper:function(){this._super(),this.uiDialog.addClass(this.options.dialogClass)},_setOption:function(t,e){"dialogClass"===t&&this.uiDialog.removeClass(this.options.dialogClass).addClass(e),this._superApply(arguments)}}),t.ui.dialog,t.widget("ui.droppable",{version:"1.12.1",widgetEventPrefix:"drop",options:{accept:"*",addClasses:!0,greedy:!1,scope:"default",tolerance:"intersect",activate:null,deactivate:null,drop:null,out:null,over:null},_create:function(){var e,i=this.options,s=i.accept;this.isover=!1,this.isout=!0,this.accept=t.isFunction(s)?s:function(t){return t.is(s)},this.proportions=function(){return arguments.length?(e=arguments[0],void 0):e?e:e={width:this.element[0].offsetWidth,height:this.element[0].offsetHeight}},this._addToManager(i.scope),i.addClasses&&this._addClass("ui-droppable")},_addToManager:function(e){t.ui.ddmanager.droppables[e]=t.ui.ddmanager.droppables[e]||[],t.ui.ddmanager.droppables[e].push(this)},_splice:function(t){for(var e=0;t.length>e;e++)t[e]===this&&t.splice(e,1)},_destroy:function(){var e=t.ui.ddmanager.droppables[this.options.scope];this._splice(e)},_setOption:function(e,i){if("accept"===e)this.accept=t.isFunction(i)?i:function(t){return t.is(i)};else if("scope"===e){var s=t.ui.ddmanager.droppables[this.options.scope];this._splice(s),this._addToManager(i)}this._super(e,i)},_activate:function(e){var i=t.ui.ddmanager.current;this._addActiveClass(),i&&this._trigger("activate",e,this.ui(i))},_deactivate:function(e){var i=t.ui.ddmanager.current;this._removeActiveClass(),i&&this._trigger("deactivate",e,this.ui(i))},_over:function(e){var i=t.ui.ddmanager.current;i&&(i.currentItem||i.element)[0]!==this.element[0]&&this.accept.call(this.element[0],i.currentItem||i.element)&&(this._addHoverClass(),this._trigger("over",e,this.ui(i)))},_out:function(e){var i=t.ui.ddmanager.current;i&&(i.currentItem||i.element)[0]!==this.element[0]&&this.accept.call(this.element[0],i.currentItem||i.element)&&(this._removeHoverClass(),this._trigger("out",e,this.ui(i)))},_drop:function(e,i){var s=i||t.ui.ddmanager.current,n=!1;return s&&(s.currentItem||s.element)[0]!==this.element[0]?(this.element.find(":data(ui-droppable)").not(".ui-draggable-dragging").each(function(){var i=t(this).droppable("instance");return i.options.greedy&&!i.options.disabled&&i.options.scope===s.options.scope&&i.accept.call(i.element[0],s.currentItem||s.element)&&v(s,t.extend(i,{offset:i.element.offset()}),i.options.tolerance,e)?(n=!0,!1):void 0}),n?!1:this.accept.call(this.element[0],s.currentItem||s.element)?(this._removeActiveClass(),this._removeHoverClass(),this._trigger("drop",e,this.ui(s)),this.element):!1):!1},ui:function(t){return{draggable:t.currentItem||t.element,helper:t.helper,position:t.position,offset:t.positionAbs}},_addHoverClass:function(){this._addClass("ui-droppable-hover")},_removeHoverClass:function(){this._removeClass("ui-droppable-hover")},_addActiveClass:function(){this._addClass("ui-droppable-active")},_removeActiveClass:function(){this._removeClass("ui-droppable-active")}});var v=t.ui.intersect=function(){function t(t,e,i){return t>=e&&e+i>t}return function(e,i,s,n){if(!i.offset)return!1;var o=(e.positionAbs||e.position.absolute).left+e.margins.left,a=(e.positionAbs||e.position.absolute).top+e.margins.top,r=o+e.helperProportions.width,h=a+e.helperProportions.height,l=i.offset.left,c=i.offset.top,u=l+i.proportions().width,d=c+i.proportions().height;switch(s){case"fit":return o>=l&&u>=r&&a>=c&&d>=h;case"intersect":return o+e.helperProportions.width/2>l&&u>r-e.helperProportions.width/2&&a+e.helperProportions.height/2>c&&d>h-e.helperProportions.height/2;case"pointer":return t(n.pageY,c,i.proportions().height)&&t(n.pageX,l,i.proportions().width);case"touch":return(a>=c&&d>=a||h>=c&&d>=h||c>a&&h>d)&&(o>=l&&u>=o||r>=l&&u>=r||l>o&&r>u);default:return!1}}}();t.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(e,i){var s,n,o=t.ui.ddmanager.droppables[e.options.scope]||[],a=i?i.type:null,r=(e.currentItem||e.element).find(":data(ui-droppable)").addBack();t:for(s=0;o.length>s;s++)if(!(o[s].options.disabled||e&&!o[s].accept.call(o[s].element[0],e.currentItem||e.element))){for(n=0;r.length>n;n++)if(r[n]===o[s].element[0]){o[s].proportions().height=0;continue t}o[s].visible="none"!==o[s].element.css("display"),o[s].visible&&("mousedown"===a&&o[s]._activate.call(o[s],i),o[s].offset=o[s].element.offset(),o[s].proportions({width:o[s].element[0].offsetWidth,height:o[s].element[0].offsetHeight}))}},drop:function(e,i){var s=!1;return t.each((t.ui.ddmanager.droppables[e.options.scope]||[]).slice(),function(){this.options&&(!this.options.disabled&&this.visible&&v(e,this,this.options.tolerance,i)&&(s=this._drop.call(this,i)||s),!this.options.disabled&&this.visible&&this.accept.call(this.element[0],e.currentItem||e.element)&&(this.isout=!0,this.isover=!1,this._deactivate.call(this,i)))}),s},dragStart:function(e,i){e.element.parentsUntil("body").on("scroll.droppable",function(){e.options.refreshPositions||t.ui.ddmanager.prepareOffsets(e,i)})},drag:function(e,i){e.options.refreshPositions&&t.ui.ddmanager.prepareOffsets(e,i),t.each(t.ui.ddmanager.droppables[e.options.scope]||[],function(){if(!this.options.disabled&&!this.greedyChild&&this.visible){var s,n,o,a=v(e,this,this.options.tolerance,i),r=!a&&this.isover?"isout":a&&!this.isover?"isover":null;r&&(this.options.greedy&&(n=this.options.scope,o=this.element.parents(":data(ui-droppable)").filter(function(){return t(this).droppable("instance").options.scope===n}),o.length&&(s=t(o[0]).droppable("instance"),s.greedyChild="isover"===r)),s&&"isover"===r&&(s.isover=!1,s.isout=!0,s._out.call(s,i)),this[r]=!0,this["isout"===r?"isover":"isout"]=!1,this["isover"===r?"_over":"_out"].call(this,i),s&&"isout"===r&&(s.isout=!1,s.isover=!0,s._over.call(s,i)))}})},dragStop:function(e,i){e.element.parentsUntil("body").off("scroll.droppable"),e.options.refreshPositions||t.ui.ddmanager.prepareOffsets(e,i)}},t.uiBackCompat!==!1&&t.widget("ui.droppable",t.ui.droppable,{options:{hoverClass:!1,activeClass:!1},_addActiveClass:function(){this._super(),this.options.activeClass&&this.element.addClass(this.options.activeClass)},_removeActiveClass:function(){this._super(),this.options.activeClass&&this.element.removeClass(this.options.activeClass)},_addHoverClass:function(){this._super(),this.options.hoverClass&&this.element.addClass(this.options.hoverClass)},_removeHoverClass:function(){this._super(),this.options.hoverClass&&this.element.removeClass(this.options.hoverClass)}}),t.ui.droppable,t.widget("ui.progressbar",{version:"1.12.1",options:{classes:{"ui-progressbar":"ui-corner-all","ui-progressbar-value":"ui-corner-left","ui-progressbar-complete":"ui-corner-right"},max:100,value:0,change:null,complete:null},min:0,_create:function(){this.oldValue=this.options.value=this._constrainedValue(),this.element.attr({role:"progressbar","aria-valuemin":this.min}),this._addClass("ui-progressbar","ui-widget ui-widget-content"),this.valueDiv=t("<div>").appendTo(this.element),this._addClass(this.valueDiv,"ui-progressbar-value","ui-widget-header"),this._refreshValue()},_destroy:function(){this.element.removeAttr("role aria-valuemin aria-valuemax aria-valuenow"),this.valueDiv.remove()},value:function(t){return void 0===t?this.options.value:(this.options.value=this._constrainedValue(t),this._refreshValue(),void 0)},_constrainedValue:function(t){return void 0===t&&(t=this.options.value),this.indeterminate=t===!1,"number"!=typeof t&&(t=0),this.indeterminate?!1:Math.min(this.options.max,Math.max(this.min,t))},_setOptions:function(t){var e=t.value;delete t.value,this._super(t),this.options.value=this._constrainedValue(e),this._refreshValue()},_setOption:function(t,e){"max"===t&&(e=Math.max(this.min,e)),this._super(t,e)},_setOptionDisabled:function(t){this._super(t),this.element.attr("aria-disabled",t),this._toggleClass(null,"ui-state-disabled",!!t)},_percentage:function(){return this.indeterminate?100:100*(this.options.value-this.min)/(this.options.max-this.min)},_refreshValue:function(){var e=this.options.value,i=this._percentage();this.valueDiv.toggle(this.indeterminate||e>this.min).width(i.toFixed(0)+"%"),this._toggleClass(this.valueDiv,"ui-progressbar-complete",null,e===this.options.max)._toggleClass("ui-progressbar-indeterminate",null,this.indeterminate),this.indeterminate?(this.element.removeAttr("aria-valuenow"),this.overlayDiv||(this.overlayDiv=t("<div>").appendTo(this.valueDiv),this._addClass(this.overlayDiv,"ui-progressbar-overlay"))):(this.element.attr({"aria-valuemax":this.options.max,"aria-valuenow":e}),this.overlayDiv&&(this.overlayDiv.remove(),this.overlayDiv=null)),this.oldValue!==e&&(this.oldValue=e,this._trigger("change")),e===this.options.max&&this._trigger("complete")}}),t.widget("ui.selectable",t.ui.mouse,{version:"1.12.1",options:{appendTo:"body",autoRefresh:!0,distance:0,filter:"*",tolerance:"touch",selected:null,selecting:null,start:null,stop:null,unselected:null,unselecting:null},_create:function(){var e=this;this._addClass("ui-selectable"),this.dragged=!1,this.refresh=function(){e.elementPos=t(e.element[0]).offset(),e.selectees=t(e.options.filter,e.element[0]),e._addClass(e.selectees,"ui-selectee"),e.selectees.each(function(){var i=t(this),s=i.offset(),n={left:s.left-e.elementPos.left,top:s.top-e.elementPos.top};t.data(this,"selectable-item",{element:this,$element:i,left:n.left,top:n.top,right:n.left+i.outerWidth(),bottom:n.top+i.outerHeight(),startselected:!1,selected:i.hasClass("ui-selected"),selecting:i.hasClass("ui-selecting"),unselecting:i.hasClass("ui-unselecting")})})},this.refresh(),this._mouseInit(),this.helper=t("<div>"),this._addClass(this.helper,"ui-selectable-helper")},_destroy:function(){this.selectees.removeData("selectable-item"),this._mouseDestroy()},_mouseStart:function(e){var i=this,s=this.options;this.opos=[e.pageX,e.pageY],this.elementPos=t(this.element[0]).offset(),this.options.disabled||(this.selectees=t(s.filter,this.element[0]),this._trigger("start",e),t(s.appendTo).append(this.helper),this.helper.css({left:e.pageX,top:e.pageY,width:0,height:0}),s.autoRefresh&&this.refresh(),this.selectees.filter(".ui-selected").each(function(){var s=t.data(this,"selectable-item");s.startselected=!0,e.metaKey||e.ctrlKey||(i._removeClass(s.$element,"ui-selected"),s.selected=!1,i._addClass(s.$element,"ui-unselecting"),s.unselecting=!0,i._trigger("unselecting",e,{unselecting:s.element}))}),t(e.target).parents().addBack().each(function(){var s,n=t.data(this,"selectable-item");return n?(s=!e.metaKey&&!e.ctrlKey||!n.$element.hasClass("ui-selected"),i._removeClass(n.$element,s?"ui-unselecting":"ui-selected")._addClass(n.$element,s?"ui-selecting":"ui-unselecting"),n.unselecting=!s,n.selecting=s,n.selected=s,s?i._trigger("selecting",e,{selecting:n.element}):i._trigger("unselecting",e,{unselecting:n.element}),!1):void 0}))},_mouseDrag:function(e){if(this.dragged=!0,!this.options.disabled){var i,s=this,n=this.options,o=this.opos[0],a=this.opos[1],r=e.pageX,h=e.pageY;return o>r&&(i=r,r=o,o=i),a>h&&(i=h,h=a,a=i),this.helper.css({left:o,top:a,width:r-o,height:h-a}),this.selectees.each(function(){var i=t.data(this,"selectable-item"),l=!1,c={};i&&i.element!==s.element[0]&&(c.left=i.left+s.elementPos.left,c.right=i.right+s.elementPos.left,c.top=i.top+s.elementPos.top,c.bottom=i.bottom+s.elementPos.top,"touch"===n.tolerance?l=!(c.left>r||o>c.right||c.top>h||a>c.bottom):"fit"===n.tolerance&&(l=c.left>o&&r>c.right&&c.top>a&&h>c.bottom),l?(i.selected&&(s._removeClass(i.$element,"ui-selected"),i.selected=!1),i.unselecting&&(s._removeClass(i.$element,"ui-unselecting"),i.unselecting=!1),i.selecting||(s._addClass(i.$element,"ui-selecting"),i.selecting=!0,s._trigger("selecting",e,{selecting:i.element}))):(i.selecting&&((e.metaKey||e.ctrlKey)&&i.startselected?(s._removeClass(i.$element,"ui-selecting"),i.selecting=!1,s._addClass(i.$element,"ui-selected"),i.selected=!0):(s._removeClass(i.$element,"ui-selecting"),i.selecting=!1,i.startselected&&(s._addClass(i.$element,"ui-unselecting"),i.unselecting=!0),s._trigger("unselecting",e,{unselecting:i.element}))),i.selected&&(e.metaKey||e.ctrlKey||i.startselected||(s._removeClass(i.$element,"ui-selected"),i.selected=!1,s._addClass(i.$element,"ui-unselecting"),i.unselecting=!0,s._trigger("unselecting",e,{unselecting:i.element})))))}),!1}},_mouseStop:function(e){var i=this;return this.dragged=!1,t(".ui-unselecting",this.element[0]).each(function(){var s=t.data(this,"selectable-item");i._removeClass(s.$element,"ui-unselecting"),s.unselecting=!1,s.startselected=!1,i._trigger("unselected",e,{unselected:s.element})}),t(".ui-selecting",this.element[0]).each(function(){var s=t.data(this,"selectable-item");i._removeClass(s.$element,"ui-selecting")._addClass(s.$element,"ui-selected"),s.selecting=!1,s.selected=!0,s.startselected=!0,i._trigger("selected",e,{selected:s.element})}),this._trigger("stop",e),this.helper.remove(),!1}}),t.widget("ui.selectmenu",[t.ui.formResetMixin,{version:"1.12.1",defaultElement:"<select>",options:{appendTo:null,classes:{"ui-selectmenu-button-open":"ui-corner-top","ui-selectmenu-button-closed":"ui-corner-all"},disabled:null,icons:{button:"ui-icon-triangle-1-s"},position:{my:"left top",at:"left bottom",collision:"none"},width:!1,change:null,close:null,focus:null,open:null,select:null},_create:function(){var e=this.element.uniqueId().attr("id");this.ids={element:e,button:e+"-button",menu:e+"-menu"},this._drawButton(),this._drawMenu(),this._bindFormResetHandler(),this._rendered=!1,this.menuItems=t()},_drawButton:function(){var e,i=this,s=this._parseOption(this.element.find("option:selected"),this.element[0].selectedIndex);this.labels=this.element.labels().attr("for",this.ids.button),this._on(this.labels,{click:function(t){this.button.focus(),t.preventDefault()}}),this.element.hide(),this.button=t("<span>",{tabindex:this.options.disabled?-1:0,id:this.ids.button,role:"combobox","aria-expanded":"false","aria-autocomplete":"list","aria-owns":this.ids.menu,"aria-haspopup":"true",title:this.element.attr("title")}).insertAfter(this.element),this._addClass(this.button,"ui-selectmenu-button ui-selectmenu-button-closed","ui-button ui-widget"),e=t("<span>").appendTo(this.button),this._addClass(e,"ui-selectmenu-icon","ui-icon "+this.options.icons.button),this.buttonItem=this._renderButtonItem(s).appendTo(this.button),this.options.width!==!1&&this._resizeButton(),this._on(this.button,this._buttonEvents),this.button.one("focusin",function(){i._rendered||i._refreshMenu()})},_drawMenu:function(){var e=this;this.menu=t("<ul>",{"aria-hidden":"true","aria-labelledby":this.ids.button,id:this.ids.menu}),this.menuWrap=t("<div>").append(this.menu),this._addClass(this.menuWrap,"ui-selectmenu-menu","ui-front"),this.menuWrap.appendTo(this._appendTo()),this.menuInstance=this.menu.menu({classes:{"ui-menu":"ui-corner-bottom"},role:"listbox",select:function(t,i){t.preventDefault(),e._setSelection(),e._select(i.item.data("ui-selectmenu-item"),t)},focus:function(t,i){var s=i.item.data("ui-selectmenu-item");null!=e.focusIndex&&s.index!==e.focusIndex&&(e._trigger("focus",t,{item:s}),e.isOpen||e._select(s,t)),e.focusIndex=s.index,e.button.attr("aria-activedescendant",e.menuItems.eq(s.index).attr("id"))}}).menu("instance"),this.menuInstance._off(this.menu,"mouseleave"),this.menuInstance._closeOnDocumentClick=function(){return!1},this.menuInstance._isDivider=function(){return!1}},refresh:function(){this._refreshMenu(),this.buttonItem.replaceWith(this.buttonItem=this._renderButtonItem(this._getSelectedItem().data("ui-selectmenu-item")||{})),null===this.options.width&&this._resizeButton()},_refreshMenu:function(){var t,e=this.element.find("option");this.menu.empty(),this._parseOptions(e),this._renderMenu(this.menu,this.items),this.menuInstance.refresh(),this.menuItems=this.menu.find("li").not(".ui-selectmenu-optgroup").find(".ui-menu-item-wrapper"),this._rendered=!0,e.length&&(t=this._getSelectedItem(),this.menuInstance.focus(null,t),this._setAria(t.data("ui-selectmenu-item")),this._setOption("disabled",this.element.prop("disabled")))},open:function(t){this.options.disabled||(this._rendered?(this._removeClass(this.menu.find(".ui-state-active"),null,"ui-state-active"),this.menuInstance.focus(null,this._getSelectedItem())):this._refreshMenu(),this.menuItems.length&&(this.isOpen=!0,this._toggleAttr(),this._resizeMenu(),this._position(),this._on(this.document,this._documentClick),this._trigger("open",t)))},_position:function(){this.menuWrap.position(t.extend({of:this.button},this.options.position))},close:function(t){this.isOpen&&(this.isOpen=!1,this._toggleAttr(),this.range=null,this._off(this.document),this._trigger("close",t))},widget:function(){return this.button},menuWidget:function(){return this.menu},_renderButtonItem:function(e){var i=t("<span>");return this._setText(i,e.label),this._addClass(i,"ui-selectmenu-text"),i},_renderMenu:function(e,i){var s=this,n="";t.each(i,function(i,o){var a;o.optgroup!==n&&(a=t("<li>",{text:o.optgroup}),s._addClass(a,"ui-selectmenu-optgroup","ui-menu-divider"+(o.element.parent("optgroup").prop("disabled")?" ui-state-disabled":"")),a.appendTo(e),n=o.optgroup),s._renderItemData(e,o)})},_renderItemData:function(t,e){return this._renderItem(t,e).data("ui-selectmenu-item",e)},_renderItem:function(e,i){var s=t("<li>"),n=t("<div>",{title:i.element.attr("title")});return i.disabled&&this._addClass(s,null,"ui-state-disabled"),this._setText(n,i.label),s.append(n).appendTo(e)},_setText:function(t,e){e?t.text(e):t.html("&#160;")},_move:function(t,e){var i,s,n=".ui-menu-item";this.isOpen?i=this.menuItems.eq(this.focusIndex).parent("li"):(i=this.menuItems.eq(this.element[0].selectedIndex).parent("li"),n+=":not(.ui-state-disabled)"),s="first"===t||"last"===t?i["first"===t?"prevAll":"nextAll"](n).eq(-1):i[t+"All"](n).eq(0),s.length&&this.menuInstance.focus(e,s)},_getSelectedItem:function(){return this.menuItems.eq(this.element[0].selectedIndex).parent("li")},_toggle:function(t){this[this.isOpen?"close":"open"](t)},_setSelection:function(){var t;this.range&&(window.getSelection?(t=window.getSelection(),t.removeAllRanges(),t.addRange(this.range)):this.range.select(),this.button.focus())},_documentClick:{mousedown:function(e){this.isOpen&&(t(e.target).closest(".ui-selectmenu-menu, #"+t.ui.escapeSelector(this.ids.button)).length||this.close(e))}},_buttonEvents:{mousedown:function(){var t;window.getSelection?(t=window.getSelection(),t.rangeCount&&(this.range=t.getRangeAt(0))):this.range=document.selection.createRange()},click:function(t){this._setSelection(),this._toggle(t)},keydown:function(e){var i=!0;switch(e.keyCode){case t.ui.keyCode.TAB:case t.ui.keyCode.ESCAPE:this.close(e),i=!1;break;case t.ui.keyCode.ENTER:this.isOpen&&this._selectFocusedItem(e);break;case t.ui.keyCode.UP:e.altKey?this._toggle(e):this._move("prev",e);break;case t.ui.keyCode.DOWN:e.altKey?this._toggle(e):this._move("next",e);break;case t.ui.keyCode.SPACE:this.isOpen?this._selectFocusedItem(e):this._toggle(e);break;case t.ui.keyCode.LEFT:this._move("prev",e);break;case t.ui.keyCode.RIGHT:this._move("next",e);break;case t.ui.keyCode.HOME:case t.ui.keyCode.PAGE_UP:this._move("first",e);break;case t.ui.keyCode.END:case t.ui.keyCode.PAGE_DOWN:this._move("last",e);break;default:this.menu.trigger(e),i=!1}i&&e.preventDefault()}},_selectFocusedItem:function(t){var e=this.menuItems.eq(this.focusIndex).parent("li");e.hasClass("ui-state-disabled")||this._select(e.data("ui-selectmenu-item"),t)},_select:function(t,e){var i=this.element[0].selectedIndex;this.element[0].selectedIndex=t.index,this.buttonItem.replaceWith(this.buttonItem=this._renderButtonItem(t)),this._setAria(t),this._trigger("select",e,{item:t}),t.index!==i&&this._trigger("change",e,{item:t}),this.close(e)},_setAria:function(t){var e=this.menuItems.eq(t.index).attr("id");this.button.attr({"aria-labelledby":e,"aria-activedescendant":e}),this.menu.attr("aria-activedescendant",e)},_setOption:function(t,e){if("icons"===t){var i=this.button.find("span.ui-icon");this._removeClass(i,null,this.options.icons.button)._addClass(i,null,e.button)}this._super(t,e),"appendTo"===t&&this.menuWrap.appendTo(this._appendTo()),"width"===t&&this._resizeButton()},_setOptionDisabled:function(t){this._super(t),this.menuInstance.option("disabled",t),this.button.attr("aria-disabled",t),this._toggleClass(this.button,null,"ui-state-disabled",t),this.element.prop("disabled",t),t?(this.button.attr("tabindex",-1),this.close()):this.button.attr("tabindex",0)},_appendTo:function(){var e=this.options.appendTo;return e&&(e=e.jquery||e.nodeType?t(e):this.document.find(e).eq(0)),e&&e[0]||(e=this.element.closest(".ui-front, dialog")),e.length||(e=this.document[0].body),e},_toggleAttr:function(){this.button.attr("aria-expanded",this.isOpen),this._removeClass(this.button,"ui-selectmenu-button-"+(this.isOpen?"closed":"open"))._addClass(this.button,"ui-selectmenu-button-"+(this.isOpen?"open":"closed"))._toggleClass(this.menuWrap,"ui-selectmenu-open",null,this.isOpen),this.menu.attr("aria-hidden",!this.isOpen)},_resizeButton:function(){var t=this.options.width;return t===!1?(this.button.css("width",""),void 0):(null===t&&(t=this.element.show().outerWidth(),this.element.hide()),this.button.outerWidth(t),void 0)},_resizeMenu:function(){this.menu.outerWidth(Math.max(this.button.outerWidth(),this.menu.width("").outerWidth()+1))},_getCreateOptions:function(){var t=this._super();return t.disabled=this.element.prop("disabled"),t},_parseOptions:function(e){var i=this,s=[];e.each(function(e,n){s.push(i._parseOption(t(n),e))}),this.items=s},_parseOption:function(t,e){var i=t.parent("optgroup");return{element:t,index:e,value:t.val(),label:t.text(),optgroup:i.attr("label")||"",disabled:i.prop("disabled")||t.prop("disabled")}},_destroy:function(){this._unbindFormResetHandler(),this.menuWrap.remove(),this.button.remove(),this.element.show(),this.element.removeUniqueId(),this.labels.attr("for",this.ids.element)}}]),t.widget("ui.slider",t.ui.mouse,{version:"1.12.1",widgetEventPrefix:"slide",options:{animate:!1,classes:{"ui-slider":"ui-corner-all","ui-slider-handle":"ui-corner-all","ui-slider-range":"ui-corner-all ui-widget-header"},distance:0,max:100,min:0,orientation:"horizontal",range:!1,step:1,value:0,values:null,change:null,slide:null,start:null,stop:null},numPages:5,_create:function(){this._keySliding=!1,this._mouseSliding=!1,this._animateOff=!0,this._handleIndex=null,this._detectOrientation(),this._mouseInit(),this._calculateNewMax(),this._addClass("ui-slider ui-slider-"+this.orientation,"ui-widget ui-widget-content"),this._refresh(),this._animateOff=!1
-},_refresh:function(){this._createRange(),this._createHandles(),this._setupEvents(),this._refreshValue()},_createHandles:function(){var e,i,s=this.options,n=this.element.find(".ui-slider-handle"),o="<span tabindex='0'></span>",a=[];for(i=s.values&&s.values.length||1,n.length>i&&(n.slice(i).remove(),n=n.slice(0,i)),e=n.length;i>e;e++)a.push(o);this.handles=n.add(t(a.join("")).appendTo(this.element)),this._addClass(this.handles,"ui-slider-handle","ui-state-default"),this.handle=this.handles.eq(0),this.handles.each(function(e){t(this).data("ui-slider-handle-index",e).attr("tabIndex",0)})},_createRange:function(){var e=this.options;e.range?(e.range===!0&&(e.values?e.values.length&&2!==e.values.length?e.values=[e.values[0],e.values[0]]:t.isArray(e.values)&&(e.values=e.values.slice(0)):e.values=[this._valueMin(),this._valueMin()]),this.range&&this.range.length?(this._removeClass(this.range,"ui-slider-range-min ui-slider-range-max"),this.range.css({left:"",bottom:""})):(this.range=t("<div>").appendTo(this.element),this._addClass(this.range,"ui-slider-range")),("min"===e.range||"max"===e.range)&&this._addClass(this.range,"ui-slider-range-"+e.range)):(this.range&&this.range.remove(),this.range=null)},_setupEvents:function(){this._off(this.handles),this._on(this.handles,this._handleEvents),this._hoverable(this.handles),this._focusable(this.handles)},_destroy:function(){this.handles.remove(),this.range&&this.range.remove(),this._mouseDestroy()},_mouseCapture:function(e){var i,s,n,o,a,r,h,l,c=this,u=this.options;return u.disabled?!1:(this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()},this.elementOffset=this.element.offset(),i={x:e.pageX,y:e.pageY},s=this._normValueFromMouse(i),n=this._valueMax()-this._valueMin()+1,this.handles.each(function(e){var i=Math.abs(s-c.values(e));(n>i||n===i&&(e===c._lastChangedValue||c.values(e)===u.min))&&(n=i,o=t(this),a=e)}),r=this._start(e,a),r===!1?!1:(this._mouseSliding=!0,this._handleIndex=a,this._addClass(o,null,"ui-state-active"),o.trigger("focus"),h=o.offset(),l=!t(e.target).parents().addBack().is(".ui-slider-handle"),this._clickOffset=l?{left:0,top:0}:{left:e.pageX-h.left-o.width()/2,top:e.pageY-h.top-o.height()/2-(parseInt(o.css("borderTopWidth"),10)||0)-(parseInt(o.css("borderBottomWidth"),10)||0)+(parseInt(o.css("marginTop"),10)||0)},this.handles.hasClass("ui-state-hover")||this._slide(e,a,s),this._animateOff=!0,!0))},_mouseStart:function(){return!0},_mouseDrag:function(t){var e={x:t.pageX,y:t.pageY},i=this._normValueFromMouse(e);return this._slide(t,this._handleIndex,i),!1},_mouseStop:function(t){return this._removeClass(this.handles,null,"ui-state-active"),this._mouseSliding=!1,this._stop(t,this._handleIndex),this._change(t,this._handleIndex),this._handleIndex=null,this._clickOffset=null,this._animateOff=!1,!1},_detectOrientation:function(){this.orientation="vertical"===this.options.orientation?"vertical":"horizontal"},_normValueFromMouse:function(t){var e,i,s,n,o;return"horizontal"===this.orientation?(e=this.elementSize.width,i=t.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)):(e=this.elementSize.height,i=t.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)),s=i/e,s>1&&(s=1),0>s&&(s=0),"vertical"===this.orientation&&(s=1-s),n=this._valueMax()-this._valueMin(),o=this._valueMin()+s*n,this._trimAlignValue(o)},_uiHash:function(t,e,i){var s={handle:this.handles[t],handleIndex:t,value:void 0!==e?e:this.value()};return this._hasMultipleValues()&&(s.value=void 0!==e?e:this.values(t),s.values=i||this.values()),s},_hasMultipleValues:function(){return this.options.values&&this.options.values.length},_start:function(t,e){return this._trigger("start",t,this._uiHash(e))},_slide:function(t,e,i){var s,n,o=this.value(),a=this.values();this._hasMultipleValues()&&(n=this.values(e?0:1),o=this.values(e),2===this.options.values.length&&this.options.range===!0&&(i=0===e?Math.min(n,i):Math.max(n,i)),a[e]=i),i!==o&&(s=this._trigger("slide",t,this._uiHash(e,i,a)),s!==!1&&(this._hasMultipleValues()?this.values(e,i):this.value(i)))},_stop:function(t,e){this._trigger("stop",t,this._uiHash(e))},_change:function(t,e){this._keySliding||this._mouseSliding||(this._lastChangedValue=e,this._trigger("change",t,this._uiHash(e)))},value:function(t){return arguments.length?(this.options.value=this._trimAlignValue(t),this._refreshValue(),this._change(null,0),void 0):this._value()},values:function(e,i){var s,n,o;if(arguments.length>1)return this.options.values[e]=this._trimAlignValue(i),this._refreshValue(),this._change(null,e),void 0;if(!arguments.length)return this._values();if(!t.isArray(arguments[0]))return this._hasMultipleValues()?this._values(e):this.value();for(s=this.options.values,n=arguments[0],o=0;s.length>o;o+=1)s[o]=this._trimAlignValue(n[o]),this._change(null,o);this._refreshValue()},_setOption:function(e,i){var s,n=0;switch("range"===e&&this.options.range===!0&&("min"===i?(this.options.value=this._values(0),this.options.values=null):"max"===i&&(this.options.value=this._values(this.options.values.length-1),this.options.values=null)),t.isArray(this.options.values)&&(n=this.options.values.length),this._super(e,i),e){case"orientation":this._detectOrientation(),this._removeClass("ui-slider-horizontal ui-slider-vertical")._addClass("ui-slider-"+this.orientation),this._refreshValue(),this.options.range&&this._refreshRange(i),this.handles.css("horizontal"===i?"bottom":"left","");break;case"value":this._animateOff=!0,this._refreshValue(),this._change(null,0),this._animateOff=!1;break;case"values":for(this._animateOff=!0,this._refreshValue(),s=n-1;s>=0;s--)this._change(null,s);this._animateOff=!1;break;case"step":case"min":case"max":this._animateOff=!0,this._calculateNewMax(),this._refreshValue(),this._animateOff=!1;break;case"range":this._animateOff=!0,this._refresh(),this._animateOff=!1}},_setOptionDisabled:function(t){this._super(t),this._toggleClass(null,"ui-state-disabled",!!t)},_value:function(){var t=this.options.value;return t=this._trimAlignValue(t)},_values:function(t){var e,i,s;if(arguments.length)return e=this.options.values[t],e=this._trimAlignValue(e);if(this._hasMultipleValues()){for(i=this.options.values.slice(),s=0;i.length>s;s+=1)i[s]=this._trimAlignValue(i[s]);return i}return[]},_trimAlignValue:function(t){if(this._valueMin()>=t)return this._valueMin();if(t>=this._valueMax())return this._valueMax();var e=this.options.step>0?this.options.step:1,i=(t-this._valueMin())%e,s=t-i;return 2*Math.abs(i)>=e&&(s+=i>0?e:-e),parseFloat(s.toFixed(5))},_calculateNewMax:function(){var t=this.options.max,e=this._valueMin(),i=this.options.step,s=Math.round((t-e)/i)*i;t=s+e,t>this.options.max&&(t-=i),this.max=parseFloat(t.toFixed(this._precision()))},_precision:function(){var t=this._precisionOf(this.options.step);return null!==this.options.min&&(t=Math.max(t,this._precisionOf(this.options.min))),t},_precisionOf:function(t){var e=""+t,i=e.indexOf(".");return-1===i?0:e.length-i-1},_valueMin:function(){return this.options.min},_valueMax:function(){return this.max},_refreshRange:function(t){"vertical"===t&&this.range.css({width:"",left:""}),"horizontal"===t&&this.range.css({height:"",bottom:""})},_refreshValue:function(){var e,i,s,n,o,a=this.options.range,r=this.options,h=this,l=this._animateOff?!1:r.animate,c={};this._hasMultipleValues()?this.handles.each(function(s){i=100*((h.values(s)-h._valueMin())/(h._valueMax()-h._valueMin())),c["horizontal"===h.orientation?"left":"bottom"]=i+"%",t(this).stop(1,1)[l?"animate":"css"](c,r.animate),h.options.range===!0&&("horizontal"===h.orientation?(0===s&&h.range.stop(1,1)[l?"animate":"css"]({left:i+"%"},r.animate),1===s&&h.range[l?"animate":"css"]({width:i-e+"%"},{queue:!1,duration:r.animate})):(0===s&&h.range.stop(1,1)[l?"animate":"css"]({bottom:i+"%"},r.animate),1===s&&h.range[l?"animate":"css"]({height:i-e+"%"},{queue:!1,duration:r.animate}))),e=i}):(s=this.value(),n=this._valueMin(),o=this._valueMax(),i=o!==n?100*((s-n)/(o-n)):0,c["horizontal"===this.orientation?"left":"bottom"]=i+"%",this.handle.stop(1,1)[l?"animate":"css"](c,r.animate),"min"===a&&"horizontal"===this.orientation&&this.range.stop(1,1)[l?"animate":"css"]({width:i+"%"},r.animate),"max"===a&&"horizontal"===this.orientation&&this.range.stop(1,1)[l?"animate":"css"]({width:100-i+"%"},r.animate),"min"===a&&"vertical"===this.orientation&&this.range.stop(1,1)[l?"animate":"css"]({height:i+"%"},r.animate),"max"===a&&"vertical"===this.orientation&&this.range.stop(1,1)[l?"animate":"css"]({height:100-i+"%"},r.animate))},_handleEvents:{keydown:function(e){var i,s,n,o,a=t(e.target).data("ui-slider-handle-index");switch(e.keyCode){case t.ui.keyCode.HOME:case t.ui.keyCode.END:case t.ui.keyCode.PAGE_UP:case t.ui.keyCode.PAGE_DOWN:case t.ui.keyCode.UP:case t.ui.keyCode.RIGHT:case t.ui.keyCode.DOWN:case t.ui.keyCode.LEFT:if(e.preventDefault(),!this._keySliding&&(this._keySliding=!0,this._addClass(t(e.target),null,"ui-state-active"),i=this._start(e,a),i===!1))return}switch(o=this.options.step,s=n=this._hasMultipleValues()?this.values(a):this.value(),e.keyCode){case t.ui.keyCode.HOME:n=this._valueMin();break;case t.ui.keyCode.END:n=this._valueMax();break;case t.ui.keyCode.PAGE_UP:n=this._trimAlignValue(s+(this._valueMax()-this._valueMin())/this.numPages);break;case t.ui.keyCode.PAGE_DOWN:n=this._trimAlignValue(s-(this._valueMax()-this._valueMin())/this.numPages);break;case t.ui.keyCode.UP:case t.ui.keyCode.RIGHT:if(s===this._valueMax())return;n=this._trimAlignValue(s+o);break;case t.ui.keyCode.DOWN:case t.ui.keyCode.LEFT:if(s===this._valueMin())return;n=this._trimAlignValue(s-o)}this._slide(e,a,n)},keyup:function(e){var i=t(e.target).data("ui-slider-handle-index");this._keySliding&&(this._keySliding=!1,this._stop(e,i),this._change(e,i),this._removeClass(t(e.target),null,"ui-state-active"))}}}),t.widget("ui.sortable",t.ui.mouse,{version:"1.12.1",widgetEventPrefix:"sort",ready:!1,options:{appendTo:"parent",axis:!1,connectWith:!1,containment:!1,cursor:"auto",cursorAt:!1,dropOnEmpty:!0,forcePlaceholderSize:!1,forceHelperSize:!1,grid:!1,handle:!1,helper:"original",items:"> *",opacity:!1,placeholder:!1,revert:!1,scroll:!0,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1e3,activate:null,beforeStop:null,change:null,deactivate:null,out:null,over:null,receive:null,remove:null,sort:null,start:null,stop:null,update:null},_isOverAxis:function(t,e,i){return t>=e&&e+i>t},_isFloating:function(t){return/left|right/.test(t.css("float"))||/inline|table-cell/.test(t.css("display"))},_create:function(){this.containerCache={},this._addClass("ui-sortable"),this.refresh(),this.offset=this.element.offset(),this._mouseInit(),this._setHandleClassName(),this.ready=!0},_setOption:function(t,e){this._super(t,e),"handle"===t&&this._setHandleClassName()},_setHandleClassName:function(){var e=this;this._removeClass(this.element.find(".ui-sortable-handle"),"ui-sortable-handle"),t.each(this.items,function(){e._addClass(this.instance.options.handle?this.item.find(this.instance.options.handle):this.item,"ui-sortable-handle")})},_destroy:function(){this._mouseDestroy();for(var t=this.items.length-1;t>=0;t--)this.items[t].item.removeData(this.widgetName+"-item");return this},_mouseCapture:function(e,i){var s=null,n=!1,o=this;return this.reverting?!1:this.options.disabled||"static"===this.options.type?!1:(this._refreshItems(e),t(e.target).parents().each(function(){return t.data(this,o.widgetName+"-item")===o?(s=t(this),!1):void 0}),t.data(e.target,o.widgetName+"-item")===o&&(s=t(e.target)),s?!this.options.handle||i||(t(this.options.handle,s).find("*").addBack().each(function(){this===e.target&&(n=!0)}),n)?(this.currentItem=s,this._removeCurrentsFromItems(),!0):!1:!1)},_mouseStart:function(e,i,s){var n,o,a=this.options;if(this.currentContainer=this,this.refreshPositions(),this.helper=this._createHelper(e),this._cacheHelperProportions(),this._cacheMargins(),this.scrollParent=this.helper.scrollParent(),this.offset=this.currentItem.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},t.extend(this.offset,{click:{left:e.pageX-this.offset.left,top:e.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.helper.css("position","absolute"),this.cssPosition=this.helper.css("position"),this.originalPosition=this._generatePosition(e),this.originalPageX=e.pageX,this.originalPageY=e.pageY,a.cursorAt&&this._adjustOffsetFromHelper(a.cursorAt),this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]},this.helper[0]!==this.currentItem[0]&&this.currentItem.hide(),this._createPlaceholder(),a.containment&&this._setContainment(),a.cursor&&"auto"!==a.cursor&&(o=this.document.find("body"),this.storedCursor=o.css("cursor"),o.css("cursor",a.cursor),this.storedStylesheet=t("<style>*{ cursor: "+a.cursor+" !important; }</style>").appendTo(o)),a.opacity&&(this.helper.css("opacity")&&(this._storedOpacity=this.helper.css("opacity")),this.helper.css("opacity",a.opacity)),a.zIndex&&(this.helper.css("zIndex")&&(this._storedZIndex=this.helper.css("zIndex")),this.helper.css("zIndex",a.zIndex)),this.scrollParent[0]!==this.document[0]&&"HTML"!==this.scrollParent[0].tagName&&(this.overflowOffset=this.scrollParent.offset()),this._trigger("start",e,this._uiHash()),this._preserveHelperProportions||this._cacheHelperProportions(),!s)for(n=this.containers.length-1;n>=0;n--)this.containers[n]._trigger("activate",e,this._uiHash(this));return t.ui.ddmanager&&(t.ui.ddmanager.current=this),t.ui.ddmanager&&!a.dropBehaviour&&t.ui.ddmanager.prepareOffsets(this,e),this.dragging=!0,this._addClass(this.helper,"ui-sortable-helper"),this._mouseDrag(e),!0},_mouseDrag:function(e){var i,s,n,o,a=this.options,r=!1;for(this.position=this._generatePosition(e),this.positionAbs=this._convertPositionTo("absolute"),this.lastPositionAbs||(this.lastPositionAbs=this.positionAbs),this.options.scroll&&(this.scrollParent[0]!==this.document[0]&&"HTML"!==this.scrollParent[0].tagName?(this.overflowOffset.top+this.scrollParent[0].offsetHeight-e.pageY<a.scrollSensitivity?this.scrollParent[0].scrollTop=r=this.scrollParent[0].scrollTop+a.scrollSpeed:e.pageY-this.overflowOffset.top<a.scrollSensitivity&&(this.scrollParent[0].scrollTop=r=this.scrollParent[0].scrollTop-a.scrollSpeed),this.overflowOffset.left+this.scrollParent[0].offsetWidth-e.pageX<a.scrollSensitivity?this.scrollParent[0].scrollLeft=r=this.scrollParent[0].scrollLeft+a.scrollSpeed:e.pageX-this.overflowOffset.left<a.scrollSensitivity&&(this.scrollParent[0].scrollLeft=r=this.scrollParent[0].scrollLeft-a.scrollSpeed)):(e.pageY-this.document.scrollTop()<a.scrollSensitivity?r=this.document.scrollTop(this.document.scrollTop()-a.scrollSpeed):this.window.height()-(e.pageY-this.document.scrollTop())<a.scrollSensitivity&&(r=this.document.scrollTop(this.document.scrollTop()+a.scrollSpeed)),e.pageX-this.document.scrollLeft()<a.scrollSensitivity?r=this.document.scrollLeft(this.document.scrollLeft()-a.scrollSpeed):this.window.width()-(e.pageX-this.document.scrollLeft())<a.scrollSensitivity&&(r=this.document.scrollLeft(this.document.scrollLeft()+a.scrollSpeed))),r!==!1&&t.ui.ddmanager&&!a.dropBehaviour&&t.ui.ddmanager.prepareOffsets(this,e)),this.positionAbs=this._convertPositionTo("absolute"),this.options.axis&&"y"===this.options.axis||(this.helper[0].style.left=this.position.left+"px"),this.options.axis&&"x"===this.options.axis||(this.helper[0].style.top=this.position.top+"px"),i=this.items.length-1;i>=0;i--)if(s=this.items[i],n=s.item[0],o=this._intersectsWithPointer(s),o&&s.instance===this.currentContainer&&n!==this.currentItem[0]&&this.placeholder[1===o?"next":"prev"]()[0]!==n&&!t.contains(this.placeholder[0],n)&&("semi-dynamic"===this.options.type?!t.contains(this.element[0],n):!0)){if(this.direction=1===o?"down":"up","pointer"!==this.options.tolerance&&!this._intersectsWithSides(s))break;this._rearrange(e,s),this._trigger("change",e,this._uiHash());break}return this._contactContainers(e),t.ui.ddmanager&&t.ui.ddmanager.drag(this,e),this._trigger("sort",e,this._uiHash()),this.lastPositionAbs=this.positionAbs,!1},_mouseStop:function(e,i){if(e){if(t.ui.ddmanager&&!this.options.dropBehaviour&&t.ui.ddmanager.drop(this,e),this.options.revert){var s=this,n=this.placeholder.offset(),o=this.options.axis,a={};o&&"x"!==o||(a.left=n.left-this.offset.parent.left-this.margins.left+(this.offsetParent[0]===this.document[0].body?0:this.offsetParent[0].scrollLeft)),o&&"y"!==o||(a.top=n.top-this.offset.parent.top-this.margins.top+(this.offsetParent[0]===this.document[0].body?0:this.offsetParent[0].scrollTop)),this.reverting=!0,t(this.helper).animate(a,parseInt(this.options.revert,10)||500,function(){s._clear(e)})}else this._clear(e,i);return!1}},cancel:function(){if(this.dragging){this._mouseUp(new t.Event("mouseup",{target:null})),"original"===this.options.helper?(this.currentItem.css(this._storedCSS),this._removeClass(this.currentItem,"ui-sortable-helper")):this.currentItem.show();for(var e=this.containers.length-1;e>=0;e--)this.containers[e]._trigger("deactivate",null,this._uiHash(this)),this.containers[e].containerCache.over&&(this.containers[e]._trigger("out",null,this._uiHash(this)),this.containers[e].containerCache.over=0)}return this.placeholder&&(this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]),"original"!==this.options.helper&&this.helper&&this.helper[0].parentNode&&this.helper.remove(),t.extend(this,{helper:null,dragging:!1,reverting:!1,_noFinalSort:null}),this.domPosition.prev?t(this.domPosition.prev).after(this.currentItem):t(this.domPosition.parent).prepend(this.currentItem)),this},serialize:function(e){var i=this._getItemsAsjQuery(e&&e.connected),s=[];return e=e||{},t(i).each(function(){var i=(t(e.item||this).attr(e.attribute||"id")||"").match(e.expression||/(.+)[\-=_](.+)/);i&&s.push((e.key||i[1]+"[]")+"="+(e.key&&e.expression?i[1]:i[2]))}),!s.length&&e.key&&s.push(e.key+"="),s.join("&")},toArray:function(e){var i=this._getItemsAsjQuery(e&&e.connected),s=[];return e=e||{},i.each(function(){s.push(t(e.item||this).attr(e.attribute||"id")||"")}),s},_intersectsWith:function(t){var e=this.positionAbs.left,i=e+this.helperProportions.width,s=this.positionAbs.top,n=s+this.helperProportions.height,o=t.left,a=o+t.width,r=t.top,h=r+t.height,l=this.offset.click.top,c=this.offset.click.left,u="x"===this.options.axis||s+l>r&&h>s+l,d="y"===this.options.axis||e+c>o&&a>e+c,p=u&&d;return"pointer"===this.options.tolerance||this.options.forcePointerForContainers||"pointer"!==this.options.tolerance&&this.helperProportions[this.floating?"width":"height"]>t[this.floating?"width":"height"]?p:e+this.helperProportions.width/2>o&&a>i-this.helperProportions.width/2&&s+this.helperProportions.height/2>r&&h>n-this.helperProportions.height/2},_intersectsWithPointer:function(t){var e,i,s="x"===this.options.axis||this._isOverAxis(this.positionAbs.top+this.offset.click.top,t.top,t.height),n="y"===this.options.axis||this._isOverAxis(this.positionAbs.left+this.offset.click.left,t.left,t.width),o=s&&n;return o?(e=this._getDragVerticalDirection(),i=this._getDragHorizontalDirection(),this.floating?"right"===i||"down"===e?2:1:e&&("down"===e?2:1)):!1},_intersectsWithSides:function(t){var e=this._isOverAxis(this.positionAbs.top+this.offset.click.top,t.top+t.height/2,t.height),i=this._isOverAxis(this.positionAbs.left+this.offset.click.left,t.left+t.width/2,t.width),s=this._getDragVerticalDirection(),n=this._getDragHorizontalDirection();return this.floating&&n?"right"===n&&i||"left"===n&&!i:s&&("down"===s&&e||"up"===s&&!e)},_getDragVerticalDirection:function(){var t=this.positionAbs.top-this.lastPositionAbs.top;return 0!==t&&(t>0?"down":"up")},_getDragHorizontalDirection:function(){var t=this.positionAbs.left-this.lastPositionAbs.left;return 0!==t&&(t>0?"right":"left")},refresh:function(t){return this._refreshItems(t),this._setHandleClassName(),this.refreshPositions(),this},_connectWith:function(){var t=this.options;return t.connectWith.constructor===String?[t.connectWith]:t.connectWith},_getItemsAsjQuery:function(e){function i(){r.push(this)}var s,n,o,a,r=[],h=[],l=this._connectWith();if(l&&e)for(s=l.length-1;s>=0;s--)for(o=t(l[s],this.document[0]),n=o.length-1;n>=0;n--)a=t.data(o[n],this.widgetFullName),a&&a!==this&&!a.options.disabled&&h.push([t.isFunction(a.options.items)?a.options.items.call(a.element):t(a.options.items,a.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),a]);for(h.push([t.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):t(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),this]),s=h.length-1;s>=0;s--)h[s][0].each(i);return t(r)},_removeCurrentsFromItems:function(){var e=this.currentItem.find(":data("+this.widgetName+"-item)");this.items=t.grep(this.items,function(t){for(var i=0;e.length>i;i++)if(e[i]===t.item[0])return!1;return!0})},_refreshItems:function(e){this.items=[],this.containers=[this];var i,s,n,o,a,r,h,l,c=this.items,u=[[t.isFunction(this.options.items)?this.options.items.call(this.element[0],e,{item:this.currentItem}):t(this.options.items,this.element),this]],d=this._connectWith();if(d&&this.ready)for(i=d.length-1;i>=0;i--)for(n=t(d[i],this.document[0]),s=n.length-1;s>=0;s--)o=t.data(n[s],this.widgetFullName),o&&o!==this&&!o.options.disabled&&(u.push([t.isFunction(o.options.items)?o.options.items.call(o.element[0],e,{item:this.currentItem}):t(o.options.items,o.element),o]),this.containers.push(o));for(i=u.length-1;i>=0;i--)for(a=u[i][1],r=u[i][0],s=0,l=r.length;l>s;s++)h=t(r[s]),h.data(this.widgetName+"-item",a),c.push({item:h,instance:a,width:0,height:0,left:0,top:0})},refreshPositions:function(e){this.floating=this.items.length?"x"===this.options.axis||this._isFloating(this.items[0].item):!1,this.offsetParent&&this.helper&&(this.offset.parent=this._getParentOffset());var i,s,n,o;for(i=this.items.length-1;i>=0;i--)s=this.items[i],s.instance!==this.currentContainer&&this.currentContainer&&s.item[0]!==this.currentItem[0]||(n=this.options.toleranceElement?t(this.options.toleranceElement,s.item):s.item,e||(s.width=n.outerWidth(),s.height=n.outerHeight()),o=n.offset(),s.left=o.left,s.top=o.top);if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(i=this.containers.length-1;i>=0;i--)o=this.containers[i].element.offset(),this.containers[i].containerCache.left=o.left,this.containers[i].containerCache.top=o.top,this.containers[i].containerCache.width=this.containers[i].element.outerWidth(),this.containers[i].containerCache.height=this.containers[i].element.outerHeight();return this},_createPlaceholder:function(e){e=e||this;var i,s=e.options;s.placeholder&&s.placeholder.constructor!==String||(i=s.placeholder,s.placeholder={element:function(){var s=e.currentItem[0].nodeName.toLowerCase(),n=t("<"+s+">",e.document[0]);return e._addClass(n,"ui-sortable-placeholder",i||e.currentItem[0].className)._removeClass(n,"ui-sortable-helper"),"tbody"===s?e._createTrPlaceholder(e.currentItem.find("tr").eq(0),t("<tr>",e.document[0]).appendTo(n)):"tr"===s?e._createTrPlaceholder(e.currentItem,n):"img"===s&&n.attr("src",e.currentItem.attr("src")),i||n.css("visibility","hidden"),n},update:function(t,n){(!i||s.forcePlaceholderSize)&&(n.height()||n.height(e.currentItem.innerHeight()-parseInt(e.currentItem.css("paddingTop")||0,10)-parseInt(e.currentItem.css("paddingBottom")||0,10)),n.width()||n.width(e.currentItem.innerWidth()-parseInt(e.currentItem.css("paddingLeft")||0,10)-parseInt(e.currentItem.css("paddingRight")||0,10)))}}),e.placeholder=t(s.placeholder.element.call(e.element,e.currentItem)),e.currentItem.after(e.placeholder),s.placeholder.update(e,e.placeholder)},_createTrPlaceholder:function(e,i){var s=this;e.children().each(function(){t("<td>&#160;</td>",s.document[0]).attr("colspan",t(this).attr("colspan")||1).appendTo(i)})},_contactContainers:function(e){var i,s,n,o,a,r,h,l,c,u,d=null,p=null;for(i=this.containers.length-1;i>=0;i--)if(!t.contains(this.currentItem[0],this.containers[i].element[0]))if(this._intersectsWith(this.containers[i].containerCache)){if(d&&t.contains(this.containers[i].element[0],d.element[0]))continue;d=this.containers[i],p=i}else this.containers[i].containerCache.over&&(this.containers[i]._trigger("out",e,this._uiHash(this)),this.containers[i].containerCache.over=0);if(d)if(1===this.containers.length)this.containers[p].containerCache.over||(this.containers[p]._trigger("over",e,this._uiHash(this)),this.containers[p].containerCache.over=1);else{for(n=1e4,o=null,c=d.floating||this._isFloating(this.currentItem),a=c?"left":"top",r=c?"width":"height",u=c?"pageX":"pageY",s=this.items.length-1;s>=0;s--)t.contains(this.containers[p].element[0],this.items[s].item[0])&&this.items[s].item[0]!==this.currentItem[0]&&(h=this.items[s].item.offset()[a],l=!1,e[u]-h>this.items[s][r]/2&&(l=!0),n>Math.abs(e[u]-h)&&(n=Math.abs(e[u]-h),o=this.items[s],this.direction=l?"up":"down"));if(!o&&!this.options.dropOnEmpty)return;if(this.currentContainer===this.containers[p])return this.currentContainer.containerCache.over||(this.containers[p]._trigger("over",e,this._uiHash()),this.currentContainer.containerCache.over=1),void 0;o?this._rearrange(e,o,null,!0):this._rearrange(e,null,this.containers[p].element,!0),this._trigger("change",e,this._uiHash()),this.containers[p]._trigger("change",e,this._uiHash(this)),this.currentContainer=this.containers[p],this.options.placeholder.update(this.currentContainer,this.placeholder),this.containers[p]._trigger("over",e,this._uiHash(this)),this.containers[p].containerCache.over=1}},_createHelper:function(e){var i=this.options,s=t.isFunction(i.helper)?t(i.helper.apply(this.element[0],[e,this.currentItem])):"clone"===i.helper?this.currentItem.clone():this.currentItem;return s.parents("body").length||t("parent"!==i.appendTo?i.appendTo:this.currentItem[0].parentNode)[0].appendChild(s[0]),s[0]===this.currentItem[0]&&(this._storedCSS={width:this.currentItem[0].style.width,height:this.currentItem[0].style.height,position:this.currentItem.css("position"),top:this.currentItem.css("top"),left:this.currentItem.css("left")}),(!s[0].style.width||i.forceHelperSize)&&s.width(this.currentItem.width()),(!s[0].style.height||i.forceHelperSize)&&s.height(this.currentItem.height()),s},_adjustOffsetFromHelper:function(e){"string"==typeof e&&(e=e.split(" ")),t.isArray(e)&&(e={left:+e[0],top:+e[1]||0}),"left"in e&&(this.offset.click.left=e.left+this.margins.left),"right"in e&&(this.offset.click.left=this.helperProportions.width-e.right+this.margins.left),"top"in e&&(this.offset.click.top=e.top+this.margins.top),"bottom"in e&&(this.offset.click.top=this.helperProportions.height-e.bottom+this.margins.top)},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var e=this.offsetParent.offset();return"absolute"===this.cssPosition&&this.scrollParent[0]!==this.document[0]&&t.contains(this.scrollParent[0],this.offsetParent[0])&&(e.left+=this.scrollParent.scrollLeft(),e.top+=this.scrollParent.scrollTop()),(this.offsetParent[0]===this.document[0].body||this.offsetParent[0].tagName&&"html"===this.offsetParent[0].tagName.toLowerCase()&&t.ui.ie)&&(e={top:0,left:0}),{top:e.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:e.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if("relative"===this.cssPosition){var t=this.currentItem.position();return{top:t.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:t.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.currentItem.css("marginLeft"),10)||0,top:parseInt(this.currentItem.css("marginTop"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var e,i,s,n=this.options;"parent"===n.containment&&(n.containment=this.helper[0].parentNode),("document"===n.containment||"window"===n.containment)&&(this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,"document"===n.containment?this.document.width():this.window.width()-this.helperProportions.width-this.margins.left,("document"===n.containment?this.document.height()||document.body.parentNode.scrollHeight:this.window.height()||this.document[0].body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]),/^(document|window|parent)$/.test(n.containment)||(e=t(n.containment)[0],i=t(n.containment).offset(),s="hidden"!==t(e).css("overflow"),this.containment=[i.left+(parseInt(t(e).css("borderLeftWidth"),10)||0)+(parseInt(t(e).css("paddingLeft"),10)||0)-this.margins.left,i.top+(parseInt(t(e).css("borderTopWidth"),10)||0)+(parseInt(t(e).css("paddingTop"),10)||0)-this.margins.top,i.left+(s?Math.max(e.scrollWidth,e.offsetWidth):e.offsetWidth)-(parseInt(t(e).css("borderLeftWidth"),10)||0)-(parseInt(t(e).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,i.top+(s?Math.max(e.scrollHeight,e.offsetHeight):e.offsetHeight)-(parseInt(t(e).css("borderTopWidth"),10)||0)-(parseInt(t(e).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top])},_convertPositionTo:function(e,i){i||(i=this.position);var s="absolute"===e?1:-1,n="absolute"!==this.cssPosition||this.scrollParent[0]!==this.document[0]&&t.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,o=/(html|body)/i.test(n[0].tagName);return{top:i.top+this.offset.relative.top*s+this.offset.parent.top*s-("fixed"===this.cssPosition?-this.scrollParent.scrollTop():o?0:n.scrollTop())*s,left:i.left+this.offset.relative.left*s+this.offset.parent.left*s-("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():o?0:n.scrollLeft())*s}},_generatePosition:function(e){var i,s,n=this.options,o=e.pageX,a=e.pageY,r="absolute"!==this.cssPosition||this.scrollParent[0]!==this.document[0]&&t.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,h=/(html|body)/i.test(r[0].tagName);return"relative"!==this.cssPosition||this.scrollParent[0]!==this.document[0]&&this.scrollParent[0]!==this.offsetParent[0]||(this.offset.relative=this._getRelativeOffset()),this.originalPosition&&(this.containment&&(e.pageX-this.offset.click.left<this.containment[0]&&(o=this.containment[0]+this.offset.click.left),e.pageY-this.offset.click.top<this.containment[1]&&(a=this.containment[1]+this.offset.click.top),e.pageX-this.offset.click.left>this.containment[2]&&(o=this.containment[2]+this.offset.click.left),e.pageY-this.offset.click.top>this.containment[3]&&(a=this.containment[3]+this.offset.click.top)),n.grid&&(i=this.originalPageY+Math.round((a-this.originalPageY)/n.grid[1])*n.grid[1],a=this.containment?i-this.offset.click.top>=this.containment[1]&&i-this.offset.click.top<=this.containment[3]?i:i-this.offset.click.top>=this.containment[1]?i-n.grid[1]:i+n.grid[1]:i,s=this.originalPageX+Math.round((o-this.originalPageX)/n.grid[0])*n.grid[0],o=this.containment?s-this.offset.click.left>=this.containment[0]&&s-this.offset.click.left<=this.containment[2]?s:s-this.offset.click.left>=this.containment[0]?s-n.grid[0]:s+n.grid[0]:s)),{top:a-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.scrollParent.scrollTop():h?0:r.scrollTop()),left:o-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():h?0:r.scrollLeft())}},_rearrange:function(t,e,i,s){i?i[0].appendChild(this.placeholder[0]):e.item[0].parentNode.insertBefore(this.placeholder[0],"down"===this.direction?e.item[0]:e.item[0].nextSibling),this.counter=this.counter?++this.counter:1;var n=this.counter;
-this._delay(function(){n===this.counter&&this.refreshPositions(!s)})},_clear:function(t,e){function i(t,e,i){return function(s){i._trigger(t,s,e._uiHash(e))}}this.reverting=!1;var s,n=[];if(!this._noFinalSort&&this.currentItem.parent().length&&this.placeholder.before(this.currentItem),this._noFinalSort=null,this.helper[0]===this.currentItem[0]){for(s in this._storedCSS)("auto"===this._storedCSS[s]||"static"===this._storedCSS[s])&&(this._storedCSS[s]="");this.currentItem.css(this._storedCSS),this._removeClass(this.currentItem,"ui-sortable-helper")}else this.currentItem.show();for(this.fromOutside&&!e&&n.push(function(t){this._trigger("receive",t,this._uiHash(this.fromOutside))}),!this.fromOutside&&this.domPosition.prev===this.currentItem.prev().not(".ui-sortable-helper")[0]&&this.domPosition.parent===this.currentItem.parent()[0]||e||n.push(function(t){this._trigger("update",t,this._uiHash())}),this!==this.currentContainer&&(e||(n.push(function(t){this._trigger("remove",t,this._uiHash())}),n.push(function(t){return function(e){t._trigger("receive",e,this._uiHash(this))}}.call(this,this.currentContainer)),n.push(function(t){return function(e){t._trigger("update",e,this._uiHash(this))}}.call(this,this.currentContainer)))),s=this.containers.length-1;s>=0;s--)e||n.push(i("deactivate",this,this.containers[s])),this.containers[s].containerCache.over&&(n.push(i("out",this,this.containers[s])),this.containers[s].containerCache.over=0);if(this.storedCursor&&(this.document.find("body").css("cursor",this.storedCursor),this.storedStylesheet.remove()),this._storedOpacity&&this.helper.css("opacity",this._storedOpacity),this._storedZIndex&&this.helper.css("zIndex","auto"===this._storedZIndex?"":this._storedZIndex),this.dragging=!1,e||this._trigger("beforeStop",t,this._uiHash()),this.placeholder[0].parentNode.removeChild(this.placeholder[0]),this.cancelHelperRemoval||(this.helper[0]!==this.currentItem[0]&&this.helper.remove(),this.helper=null),!e){for(s=0;n.length>s;s++)n[s].call(this,t);this._trigger("stop",t,this._uiHash())}return this.fromOutside=!1,!this.cancelHelperRemoval},_trigger:function(){t.Widget.prototype._trigger.apply(this,arguments)===!1&&this.cancel()},_uiHash:function(e){var i=e||this;return{helper:i.helper,placeholder:i.placeholder||t([]),position:i.position,originalPosition:i.originalPosition,offset:i.positionAbs,item:i.currentItem,sender:e?e.element:null}}}),t.widget("ui.spinner",{version:"1.12.1",defaultElement:"<input>",widgetEventPrefix:"spin",options:{classes:{"ui-spinner":"ui-corner-all","ui-spinner-down":"ui-corner-br","ui-spinner-up":"ui-corner-tr"},culture:null,icons:{down:"ui-icon-triangle-1-s",up:"ui-icon-triangle-1-n"},incremental:!0,max:null,min:null,numberFormat:null,page:10,step:1,change:null,spin:null,start:null,stop:null},_create:function(){this._setOption("max",this.options.max),this._setOption("min",this.options.min),this._setOption("step",this.options.step),""!==this.value()&&this._value(this.element.val(),!0),this._draw(),this._on(this._events),this._refresh(),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_getCreateOptions:function(){var e=this._super(),i=this.element;return t.each(["min","max","step"],function(t,s){var n=i.attr(s);null!=n&&n.length&&(e[s]=n)}),e},_events:{keydown:function(t){this._start(t)&&this._keydown(t)&&t.preventDefault()},keyup:"_stop",focus:function(){this.previous=this.element.val()},blur:function(t){return this.cancelBlur?(delete this.cancelBlur,void 0):(this._stop(),this._refresh(),this.previous!==this.element.val()&&this._trigger("change",t),void 0)},mousewheel:function(t,e){if(e){if(!this.spinning&&!this._start(t))return!1;this._spin((e>0?1:-1)*this.options.step,t),clearTimeout(this.mousewheelTimer),this.mousewheelTimer=this._delay(function(){this.spinning&&this._stop(t)},100),t.preventDefault()}},"mousedown .ui-spinner-button":function(e){function i(){var e=this.element[0]===t.ui.safeActiveElement(this.document[0]);e||(this.element.trigger("focus"),this.previous=s,this._delay(function(){this.previous=s}))}var s;s=this.element[0]===t.ui.safeActiveElement(this.document[0])?this.previous:this.element.val(),e.preventDefault(),i.call(this),this.cancelBlur=!0,this._delay(function(){delete this.cancelBlur,i.call(this)}),this._start(e)!==!1&&this._repeat(null,t(e.currentTarget).hasClass("ui-spinner-up")?1:-1,e)},"mouseup .ui-spinner-button":"_stop","mouseenter .ui-spinner-button":function(e){return t(e.currentTarget).hasClass("ui-state-active")?this._start(e)===!1?!1:(this._repeat(null,t(e.currentTarget).hasClass("ui-spinner-up")?1:-1,e),void 0):void 0},"mouseleave .ui-spinner-button":"_stop"},_enhance:function(){this.uiSpinner=this.element.attr("autocomplete","off").wrap("<span>").parent().append("<a></a><a></a>")},_draw:function(){this._enhance(),this._addClass(this.uiSpinner,"ui-spinner","ui-widget ui-widget-content"),this._addClass("ui-spinner-input"),this.element.attr("role","spinbutton"),this.buttons=this.uiSpinner.children("a").attr("tabIndex",-1).attr("aria-hidden",!0).button({classes:{"ui-button":""}}),this._removeClass(this.buttons,"ui-corner-all"),this._addClass(this.buttons.first(),"ui-spinner-button ui-spinner-up"),this._addClass(this.buttons.last(),"ui-spinner-button ui-spinner-down"),this.buttons.first().button({icon:this.options.icons.up,showLabel:!1}),this.buttons.last().button({icon:this.options.icons.down,showLabel:!1}),this.buttons.height()>Math.ceil(.5*this.uiSpinner.height())&&this.uiSpinner.height()>0&&this.uiSpinner.height(this.uiSpinner.height())},_keydown:function(e){var i=this.options,s=t.ui.keyCode;switch(e.keyCode){case s.UP:return this._repeat(null,1,e),!0;case s.DOWN:return this._repeat(null,-1,e),!0;case s.PAGE_UP:return this._repeat(null,i.page,e),!0;case s.PAGE_DOWN:return this._repeat(null,-i.page,e),!0}return!1},_start:function(t){return this.spinning||this._trigger("start",t)!==!1?(this.counter||(this.counter=1),this.spinning=!0,!0):!1},_repeat:function(t,e,i){t=t||500,clearTimeout(this.timer),this.timer=this._delay(function(){this._repeat(40,e,i)},t),this._spin(e*this.options.step,i)},_spin:function(t,e){var i=this.value()||0;this.counter||(this.counter=1),i=this._adjustValue(i+t*this._increment(this.counter)),this.spinning&&this._trigger("spin",e,{value:i})===!1||(this._value(i),this.counter++)},_increment:function(e){var i=this.options.incremental;return i?t.isFunction(i)?i(e):Math.floor(e*e*e/5e4-e*e/500+17*e/200+1):1},_precision:function(){var t=this._precisionOf(this.options.step);return null!==this.options.min&&(t=Math.max(t,this._precisionOf(this.options.min))),t},_precisionOf:function(t){var e=""+t,i=e.indexOf(".");return-1===i?0:e.length-i-1},_adjustValue:function(t){var e,i,s=this.options;return e=null!==s.min?s.min:0,i=t-e,i=Math.round(i/s.step)*s.step,t=e+i,t=parseFloat(t.toFixed(this._precision())),null!==s.max&&t>s.max?s.max:null!==s.min&&s.min>t?s.min:t},_stop:function(t){this.spinning&&(clearTimeout(this.timer),clearTimeout(this.mousewheelTimer),this.counter=0,this.spinning=!1,this._trigger("stop",t))},_setOption:function(t,e){var i,s,n;return"culture"===t||"numberFormat"===t?(i=this._parse(this.element.val()),this.options[t]=e,this.element.val(this._format(i)),void 0):(("max"===t||"min"===t||"step"===t)&&"string"==typeof e&&(e=this._parse(e)),"icons"===t&&(s=this.buttons.first().find(".ui-icon"),this._removeClass(s,null,this.options.icons.up),this._addClass(s,null,e.up),n=this.buttons.last().find(".ui-icon"),this._removeClass(n,null,this.options.icons.down),this._addClass(n,null,e.down)),this._super(t,e),void 0)},_setOptionDisabled:function(t){this._super(t),this._toggleClass(this.uiSpinner,null,"ui-state-disabled",!!t),this.element.prop("disabled",!!t),this.buttons.button(t?"disable":"enable")},_setOptions:r(function(t){this._super(t)}),_parse:function(t){return"string"==typeof t&&""!==t&&(t=window.Globalize&&this.options.numberFormat?Globalize.parseFloat(t,10,this.options.culture):+t),""===t||isNaN(t)?null:t},_format:function(t){return""===t?"":window.Globalize&&this.options.numberFormat?Globalize.format(t,this.options.numberFormat,this.options.culture):t},_refresh:function(){this.element.attr({"aria-valuemin":this.options.min,"aria-valuemax":this.options.max,"aria-valuenow":this._parse(this.element.val())})},isValid:function(){var t=this.value();return null===t?!1:t===this._adjustValue(t)},_value:function(t,e){var i;""!==t&&(i=this._parse(t),null!==i&&(e||(i=this._adjustValue(i)),t=this._format(i))),this.element.val(t),this._refresh()},_destroy:function(){this.element.prop("disabled",!1).removeAttr("autocomplete role aria-valuemin aria-valuemax aria-valuenow"),this.uiSpinner.replaceWith(this.element)},stepUp:r(function(t){this._stepUp(t)}),_stepUp:function(t){this._start()&&(this._spin((t||1)*this.options.step),this._stop())},stepDown:r(function(t){this._stepDown(t)}),_stepDown:function(t){this._start()&&(this._spin((t||1)*-this.options.step),this._stop())},pageUp:r(function(t){this._stepUp((t||1)*this.options.page)}),pageDown:r(function(t){this._stepDown((t||1)*this.options.page)}),value:function(t){return arguments.length?(r(this._value).call(this,t),void 0):this._parse(this.element.val())},widget:function(){return this.uiSpinner}}),t.uiBackCompat!==!1&&t.widget("ui.spinner",t.ui.spinner,{_enhance:function(){this.uiSpinner=this.element.attr("autocomplete","off").wrap(this._uiSpinnerHtml()).parent().append(this._buttonHtml())},_uiSpinnerHtml:function(){return"<span>"},_buttonHtml:function(){return"<a></a><a></a>"}}),t.ui.spinner,t.widget("ui.tabs",{version:"1.12.1",delay:300,options:{active:null,classes:{"ui-tabs":"ui-corner-all","ui-tabs-nav":"ui-corner-all","ui-tabs-panel":"ui-corner-bottom","ui-tabs-tab":"ui-corner-top"},collapsible:!1,event:"click",heightStyle:"content",hide:null,show:null,activate:null,beforeActivate:null,beforeLoad:null,load:null},_isLocal:function(){var t=/#.*$/;return function(e){var i,s;i=e.href.replace(t,""),s=location.href.replace(t,"");try{i=decodeURIComponent(i)}catch(n){}try{s=decodeURIComponent(s)}catch(n){}return e.hash.length>1&&i===s}}(),_create:function(){var e=this,i=this.options;this.running=!1,this._addClass("ui-tabs","ui-widget ui-widget-content"),this._toggleClass("ui-tabs-collapsible",null,i.collapsible),this._processTabs(),i.active=this._initialActive(),t.isArray(i.disabled)&&(i.disabled=t.unique(i.disabled.concat(t.map(this.tabs.filter(".ui-state-disabled"),function(t){return e.tabs.index(t)}))).sort()),this.active=this.options.active!==!1&&this.anchors.length?this._findActive(i.active):t(),this._refresh(),this.active.length&&this.load(i.active)},_initialActive:function(){var e=this.options.active,i=this.options.collapsible,s=location.hash.substring(1);return null===e&&(s&&this.tabs.each(function(i,n){return t(n).attr("aria-controls")===s?(e=i,!1):void 0}),null===e&&(e=this.tabs.index(this.tabs.filter(".ui-tabs-active"))),(null===e||-1===e)&&(e=this.tabs.length?0:!1)),e!==!1&&(e=this.tabs.index(this.tabs.eq(e)),-1===e&&(e=i?!1:0)),!i&&e===!1&&this.anchors.length&&(e=0),e},_getCreateEventData:function(){return{tab:this.active,panel:this.active.length?this._getPanelForTab(this.active):t()}},_tabKeydown:function(e){var i=t(t.ui.safeActiveElement(this.document[0])).closest("li"),s=this.tabs.index(i),n=!0;if(!this._handlePageNav(e)){switch(e.keyCode){case t.ui.keyCode.RIGHT:case t.ui.keyCode.DOWN:s++;break;case t.ui.keyCode.UP:case t.ui.keyCode.LEFT:n=!1,s--;break;case t.ui.keyCode.END:s=this.anchors.length-1;break;case t.ui.keyCode.HOME:s=0;break;case t.ui.keyCode.SPACE:return e.preventDefault(),clearTimeout(this.activating),this._activate(s),void 0;case t.ui.keyCode.ENTER:return e.preventDefault(),clearTimeout(this.activating),this._activate(s===this.options.active?!1:s),void 0;default:return}e.preventDefault(),clearTimeout(this.activating),s=this._focusNextTab(s,n),e.ctrlKey||e.metaKey||(i.attr("aria-selected","false"),this.tabs.eq(s).attr("aria-selected","true"),this.activating=this._delay(function(){this.option("active",s)},this.delay))}},_panelKeydown:function(e){this._handlePageNav(e)||e.ctrlKey&&e.keyCode===t.ui.keyCode.UP&&(e.preventDefault(),this.active.trigger("focus"))},_handlePageNav:function(e){return e.altKey&&e.keyCode===t.ui.keyCode.PAGE_UP?(this._activate(this._focusNextTab(this.options.active-1,!1)),!0):e.altKey&&e.keyCode===t.ui.keyCode.PAGE_DOWN?(this._activate(this._focusNextTab(this.options.active+1,!0)),!0):void 0},_findNextTab:function(e,i){function s(){return e>n&&(e=0),0>e&&(e=n),e}for(var n=this.tabs.length-1;-1!==t.inArray(s(),this.options.disabled);)e=i?e+1:e-1;return e},_focusNextTab:function(t,e){return t=this._findNextTab(t,e),this.tabs.eq(t).trigger("focus"),t},_setOption:function(t,e){return"active"===t?(this._activate(e),void 0):(this._super(t,e),"collapsible"===t&&(this._toggleClass("ui-tabs-collapsible",null,e),e||this.options.active!==!1||this._activate(0)),"event"===t&&this._setupEvents(e),"heightStyle"===t&&this._setupHeightStyle(e),void 0)},_sanitizeSelector:function(t){return t?t.replace(/[!"$%&'()*+,.\/:;<=>?@\[\]\^`{|}~]/g,"\\$&"):""},refresh:function(){var e=this.options,i=this.tablist.children(":has(a[href])");e.disabled=t.map(i.filter(".ui-state-disabled"),function(t){return i.index(t)}),this._processTabs(),e.active!==!1&&this.anchors.length?this.active.length&&!t.contains(this.tablist[0],this.active[0])?this.tabs.length===e.disabled.length?(e.active=!1,this.active=t()):this._activate(this._findNextTab(Math.max(0,e.active-1),!1)):e.active=this.tabs.index(this.active):(e.active=!1,this.active=t()),this._refresh()},_refresh:function(){this._setOptionDisabled(this.options.disabled),this._setupEvents(this.options.event),this._setupHeightStyle(this.options.heightStyle),this.tabs.not(this.active).attr({"aria-selected":"false","aria-expanded":"false",tabIndex:-1}),this.panels.not(this._getPanelForTab(this.active)).hide().attr({"aria-hidden":"true"}),this.active.length?(this.active.attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0}),this._addClass(this.active,"ui-tabs-active","ui-state-active"),this._getPanelForTab(this.active).show().attr({"aria-hidden":"false"})):this.tabs.eq(0).attr("tabIndex",0)},_processTabs:function(){var e=this,i=this.tabs,s=this.anchors,n=this.panels;this.tablist=this._getList().attr("role","tablist"),this._addClass(this.tablist,"ui-tabs-nav","ui-helper-reset ui-helper-clearfix ui-widget-header"),this.tablist.on("mousedown"+this.eventNamespace,"> li",function(e){t(this).is(".ui-state-disabled")&&e.preventDefault()}).on("focus"+this.eventNamespace,".ui-tabs-anchor",function(){t(this).closest("li").is(".ui-state-disabled")&&this.blur()}),this.tabs=this.tablist.find("> li:has(a[href])").attr({role:"tab",tabIndex:-1}),this._addClass(this.tabs,"ui-tabs-tab","ui-state-default"),this.anchors=this.tabs.map(function(){return t("a",this)[0]}).attr({role:"presentation",tabIndex:-1}),this._addClass(this.anchors,"ui-tabs-anchor"),this.panels=t(),this.anchors.each(function(i,s){var n,o,a,r=t(s).uniqueId().attr("id"),h=t(s).closest("li"),l=h.attr("aria-controls");e._isLocal(s)?(n=s.hash,a=n.substring(1),o=e.element.find(e._sanitizeSelector(n))):(a=h.attr("aria-controls")||t({}).uniqueId()[0].id,n="#"+a,o=e.element.find(n),o.length||(o=e._createPanel(a),o.insertAfter(e.panels[i-1]||e.tablist)),o.attr("aria-live","polite")),o.length&&(e.panels=e.panels.add(o)),l&&h.data("ui-tabs-aria-controls",l),h.attr({"aria-controls":a,"aria-labelledby":r}),o.attr("aria-labelledby",r)}),this.panels.attr("role","tabpanel"),this._addClass(this.panels,"ui-tabs-panel","ui-widget-content"),i&&(this._off(i.not(this.tabs)),this._off(s.not(this.anchors)),this._off(n.not(this.panels)))},_getList:function(){return this.tablist||this.element.find("ol, ul").eq(0)},_createPanel:function(e){return t("<div>").attr("id",e).data("ui-tabs-destroy",!0)},_setOptionDisabled:function(e){var i,s,n;for(t.isArray(e)&&(e.length?e.length===this.anchors.length&&(e=!0):e=!1),n=0;s=this.tabs[n];n++)i=t(s),e===!0||-1!==t.inArray(n,e)?(i.attr("aria-disabled","true"),this._addClass(i,null,"ui-state-disabled")):(i.removeAttr("aria-disabled"),this._removeClass(i,null,"ui-state-disabled"));this.options.disabled=e,this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,e===!0)},_setupEvents:function(e){var i={};e&&t.each(e.split(" "),function(t,e){i[e]="_eventHandler"}),this._off(this.anchors.add(this.tabs).add(this.panels)),this._on(!0,this.anchors,{click:function(t){t.preventDefault()}}),this._on(this.anchors,i),this._on(this.tabs,{keydown:"_tabKeydown"}),this._on(this.panels,{keydown:"_panelKeydown"}),this._focusable(this.tabs),this._hoverable(this.tabs)},_setupHeightStyle:function(e){var i,s=this.element.parent();"fill"===e?(i=s.height(),i-=this.element.outerHeight()-this.element.height(),this.element.siblings(":visible").each(function(){var e=t(this),s=e.css("position");"absolute"!==s&&"fixed"!==s&&(i-=e.outerHeight(!0))}),this.element.children().not(this.panels).each(function(){i-=t(this).outerHeight(!0)}),this.panels.each(function(){t(this).height(Math.max(0,i-t(this).innerHeight()+t(this).height()))}).css("overflow","auto")):"auto"===e&&(i=0,this.panels.each(function(){i=Math.max(i,t(this).height("").height())}).height(i))},_eventHandler:function(e){var i=this.options,s=this.active,n=t(e.currentTarget),o=n.closest("li"),a=o[0]===s[0],r=a&&i.collapsible,h=r?t():this._getPanelForTab(o),l=s.length?this._getPanelForTab(s):t(),c={oldTab:s,oldPanel:l,newTab:r?t():o,newPanel:h};e.preventDefault(),o.hasClass("ui-state-disabled")||o.hasClass("ui-tabs-loading")||this.running||a&&!i.collapsible||this._trigger("beforeActivate",e,c)===!1||(i.active=r?!1:this.tabs.index(o),this.active=a?t():o,this.xhr&&this.xhr.abort(),l.length||h.length||t.error("jQuery UI Tabs: Mismatching fragment identifier."),h.length&&this.load(this.tabs.index(o),e),this._toggle(e,c))},_toggle:function(e,i){function s(){o.running=!1,o._trigger("activate",e,i)}function n(){o._addClass(i.newTab.closest("li"),"ui-tabs-active","ui-state-active"),a.length&&o.options.show?o._show(a,o.options.show,s):(a.show(),s())}var o=this,a=i.newPanel,r=i.oldPanel;this.running=!0,r.length&&this.options.hide?this._hide(r,this.options.hide,function(){o._removeClass(i.oldTab.closest("li"),"ui-tabs-active","ui-state-active"),n()}):(this._removeClass(i.oldTab.closest("li"),"ui-tabs-active","ui-state-active"),r.hide(),n()),r.attr("aria-hidden","true"),i.oldTab.attr({"aria-selected":"false","aria-expanded":"false"}),a.length&&r.length?i.oldTab.attr("tabIndex",-1):a.length&&this.tabs.filter(function(){return 0===t(this).attr("tabIndex")}).attr("tabIndex",-1),a.attr("aria-hidden","false"),i.newTab.attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0})},_activate:function(e){var i,s=this._findActive(e);s[0]!==this.active[0]&&(s.length||(s=this.active),i=s.find(".ui-tabs-anchor")[0],this._eventHandler({target:i,currentTarget:i,preventDefault:t.noop}))},_findActive:function(e){return e===!1?t():this.tabs.eq(e)},_getIndex:function(e){return"string"==typeof e&&(e=this.anchors.index(this.anchors.filter("[href$='"+t.ui.escapeSelector(e)+"']"))),e},_destroy:function(){this.xhr&&this.xhr.abort(),this.tablist.removeAttr("role").off(this.eventNamespace),this.anchors.removeAttr("role tabIndex").removeUniqueId(),this.tabs.add(this.panels).each(function(){t.data(this,"ui-tabs-destroy")?t(this).remove():t(this).removeAttr("role tabIndex aria-live aria-busy aria-selected aria-labelledby aria-hidden aria-expanded")}),this.tabs.each(function(){var e=t(this),i=e.data("ui-tabs-aria-controls");i?e.attr("aria-controls",i).removeData("ui-tabs-aria-controls"):e.removeAttr("aria-controls")}),this.panels.show(),"content"!==this.options.heightStyle&&this.panels.css("height","")},enable:function(e){var i=this.options.disabled;i!==!1&&(void 0===e?i=!1:(e=this._getIndex(e),i=t.isArray(i)?t.map(i,function(t){return t!==e?t:null}):t.map(this.tabs,function(t,i){return i!==e?i:null})),this._setOptionDisabled(i))},disable:function(e){var i=this.options.disabled;if(i!==!0){if(void 0===e)i=!0;else{if(e=this._getIndex(e),-1!==t.inArray(e,i))return;i=t.isArray(i)?t.merge([e],i).sort():[e]}this._setOptionDisabled(i)}},load:function(e,i){e=this._getIndex(e);var s=this,n=this.tabs.eq(e),o=n.find(".ui-tabs-anchor"),a=this._getPanelForTab(n),r={tab:n,panel:a},h=function(t,e){"abort"===e&&s.panels.stop(!1,!0),s._removeClass(n,"ui-tabs-loading"),a.removeAttr("aria-busy"),t===s.xhr&&delete s.xhr};this._isLocal(o[0])||(this.xhr=t.ajax(this._ajaxSettings(o,i,r)),this.xhr&&"canceled"!==this.xhr.statusText&&(this._addClass(n,"ui-tabs-loading"),a.attr("aria-busy","true"),this.xhr.done(function(t,e,n){setTimeout(function(){a.html(t),s._trigger("load",i,r),h(n,e)},1)}).fail(function(t,e){setTimeout(function(){h(t,e)},1)})))},_ajaxSettings:function(e,i,s){var n=this;return{url:e.attr("href").replace(/#.*$/,""),beforeSend:function(e,o){return n._trigger("beforeLoad",i,t.extend({jqXHR:e,ajaxSettings:o},s))}}},_getPanelForTab:function(e){var i=t(e).attr("aria-controls");return this.element.find(this._sanitizeSelector("#"+i))}}),t.uiBackCompat!==!1&&t.widget("ui.tabs",t.ui.tabs,{_processTabs:function(){this._superApply(arguments),this._addClass(this.tabs,"ui-tab")}}),t.ui.tabs,t.widget("ui.tooltip",{version:"1.12.1",options:{classes:{"ui-tooltip":"ui-corner-all ui-widget-shadow"},content:function(){var e=t(this).attr("title")||"";return t("<a>").text(e).html()},hide:!0,items:"[title]:not([disabled])",position:{my:"left top+15",at:"left bottom",collision:"flipfit flip"},show:!0,track:!1,close:null,open:null},_addDescribedBy:function(e,i){var s=(e.attr("aria-describedby")||"").split(/\s+/);s.push(i),e.data("ui-tooltip-id",i).attr("aria-describedby",t.trim(s.join(" ")))},_removeDescribedBy:function(e){var i=e.data("ui-tooltip-id"),s=(e.attr("aria-describedby")||"").split(/\s+/),n=t.inArray(i,s);-1!==n&&s.splice(n,1),e.removeData("ui-tooltip-id"),s=t.trim(s.join(" ")),s?e.attr("aria-describedby",s):e.removeAttr("aria-describedby")},_create:function(){this._on({mouseover:"open",focusin:"open"}),this.tooltips={},this.parents={},this.liveRegion=t("<div>").attr({role:"log","aria-live":"assertive","aria-relevant":"additions"}).appendTo(this.document[0].body),this._addClass(this.liveRegion,null,"ui-helper-hidden-accessible"),this.disabledTitles=t([])},_setOption:function(e,i){var s=this;this._super(e,i),"content"===e&&t.each(this.tooltips,function(t,e){s._updateContent(e.element)})},_setOptionDisabled:function(t){this[t?"_disable":"_enable"]()},_disable:function(){var e=this;t.each(this.tooltips,function(i,s){var n=t.Event("blur");n.target=n.currentTarget=s.element[0],e.close(n,!0)}),this.disabledTitles=this.disabledTitles.add(this.element.find(this.options.items).addBack().filter(function(){var e=t(this);return e.is("[title]")?e.data("ui-tooltip-title",e.attr("title")).removeAttr("title"):void 0}))},_enable:function(){this.disabledTitles.each(function(){var e=t(this);e.data("ui-tooltip-title")&&e.attr("title",e.data("ui-tooltip-title"))}),this.disabledTitles=t([])},open:function(e){var i=this,s=t(e?e.target:this.element).closest(this.options.items);s.length&&!s.data("ui-tooltip-id")&&(s.attr("title")&&s.data("ui-tooltip-title",s.attr("title")),s.data("ui-tooltip-open",!0),e&&"mouseover"===e.type&&s.parents().each(function(){var e,s=t(this);s.data("ui-tooltip-open")&&(e=t.Event("blur"),e.target=e.currentTarget=this,i.close(e,!0)),s.attr("title")&&(s.uniqueId(),i.parents[this.id]={element:this,title:s.attr("title")},s.attr("title",""))}),this._registerCloseHandlers(e,s),this._updateContent(s,e))},_updateContent:function(t,e){var i,s=this.options.content,n=this,o=e?e.type:null;return"string"==typeof s||s.nodeType||s.jquery?this._open(e,t,s):(i=s.call(t[0],function(i){n._delay(function(){t.data("ui-tooltip-open")&&(e&&(e.type=o),this._open(e,t,i))})}),i&&this._open(e,t,i),void 0)},_open:function(e,i,s){function n(t){l.of=t,a.is(":hidden")||a.position(l)}var o,a,r,h,l=t.extend({},this.options.position);if(s){if(o=this._find(i))return o.tooltip.find(".ui-tooltip-content").html(s),void 0;i.is("[title]")&&(e&&"mouseover"===e.type?i.attr("title",""):i.removeAttr("title")),o=this._tooltip(i),a=o.tooltip,this._addDescribedBy(i,a.attr("id")),a.find(".ui-tooltip-content").html(s),this.liveRegion.children().hide(),h=t("<div>").html(a.find(".ui-tooltip-content").html()),h.removeAttr("name").find("[name]").removeAttr("name"),h.removeAttr("id").find("[id]").removeAttr("id"),h.appendTo(this.liveRegion),this.options.track&&e&&/^mouse/.test(e.type)?(this._on(this.document,{mousemove:n}),n(e)):a.position(t.extend({of:i},this.options.position)),a.hide(),this._show(a,this.options.show),this.options.track&&this.options.show&&this.options.show.delay&&(r=this.delayedShow=setInterval(function(){a.is(":visible")&&(n(l.of),clearInterval(r))},t.fx.interval)),this._trigger("open",e,{tooltip:a})}},_registerCloseHandlers:function(e,i){var s={keyup:function(e){if(e.keyCode===t.ui.keyCode.ESCAPE){var s=t.Event(e);s.currentTarget=i[0],this.close(s,!0)}}};i[0]!==this.element[0]&&(s.remove=function(){this._removeTooltip(this._find(i).tooltip)}),e&&"mouseover"!==e.type||(s.mouseleave="close"),e&&"focusin"!==e.type||(s.focusout="close"),this._on(!0,i,s)},close:function(e){var i,s=this,n=t(e?e.currentTarget:this.element),o=this._find(n);return o?(i=o.tooltip,o.closing||(clearInterval(this.delayedShow),n.data("ui-tooltip-title")&&!n.attr("title")&&n.attr("title",n.data("ui-tooltip-title")),this._removeDescribedBy(n),o.hiding=!0,i.stop(!0),this._hide(i,this.options.hide,function(){s._removeTooltip(t(this))}),n.removeData("ui-tooltip-open"),this._off(n,"mouseleave focusout keyup"),n[0]!==this.element[0]&&this._off(n,"remove"),this._off(this.document,"mousemove"),e&&"mouseleave"===e.type&&t.each(this.parents,function(e,i){t(i.element).attr("title",i.title),delete s.parents[e]}),o.closing=!0,this._trigger("close",e,{tooltip:i}),o.hiding||(o.closing=!1)),void 0):(n.removeData("ui-tooltip-open"),void 0)},_tooltip:function(e){var i=t("<div>").attr("role","tooltip"),s=t("<div>").appendTo(i),n=i.uniqueId().attr("id");return this._addClass(s,"ui-tooltip-content"),this._addClass(i,"ui-tooltip","ui-widget ui-widget-content"),i.appendTo(this._appendTo(e)),this.tooltips[n]={element:e,tooltip:i}},_find:function(t){var e=t.data("ui-tooltip-id");return e?this.tooltips[e]:null},_removeTooltip:function(t){t.remove(),delete this.tooltips[t.attr("id")]},_appendTo:function(t){var e=t.closest(".ui-front, dialog");return e.length||(e=this.document[0].body),e},_destroy:function(){var e=this;t.each(this.tooltips,function(i,s){var n=t.Event("blur"),o=s.element;n.target=n.currentTarget=o[0],e.close(n,!0),t("#"+i).remove(),o.data("ui-tooltip-title")&&(o.attr("title")||o.attr("title",o.data("ui-tooltip-title")),o.removeData("ui-tooltip-title"))}),this.liveRegion.remove()}}),t.uiBackCompat!==!1&&t.widget("ui.tooltip",t.ui.tooltip,{options:{tooltipClass:null},_tooltip:function(){var t=this._superApply(arguments);return this.options.tooltipClass&&t.tooltip.addClass(this.options.tooltipClass),t}}),t.ui.tooltip});
-/*! jQuery Migrate v3.0.0 | (c) jQuery Foundation and other contributors | jquery.org/license */
-"undefined"==typeof jQuery.migrateMute&&(jQuery.migrateMute=!0),function(a,b){"use strict";function c(c){var d=b.console;e[c]||(e[c]=!0,a.migrateWarnings.push(c),d&&d.warn&&!a.migrateMute&&(d.warn("JQMIGRATE: "+c),a.migrateTrace&&d.trace&&d.trace()))}function d(a,b,d,e){Object.defineProperty(a,b,{configurable:!0,enumerable:!0,get:function(){return c(e),d}})}a.migrateVersion="3.0.0",function(){var c=b.console&&b.console.log&&function(){b.console.log.apply(b.console,arguments)},d=/^[12]\./;c&&(a&&!d.test(a.fn.jquery)||c("JQMIGRATE: jQuery 3.0.0+ REQUIRED"),a.migrateWarnings&&c("JQMIGRATE: Migrate plugin loaded multiple times"),c("JQMIGRATE: Migrate is installed"+(a.migrateMute?"":" with logging active")+", version "+a.migrateVersion))}();var e={};a.migrateWarnings=[],void 0===a.migrateTrace&&(a.migrateTrace=!0),a.migrateReset=function(){e={},a.migrateWarnings.length=0},"BackCompat"===document.compatMode&&c("jQuery is not compatible with Quirks Mode");var f=a.fn.init,g=a.isNumeric,h=a.find,i=/\[(\s*[-\w]+\s*)([~|^$*]?=)\s*([-\w#]*?#[-\w#]*)\s*\]/,j=/\[(\s*[-\w]+\s*)([~|^$*]?=)\s*([-\w#]*?#[-\w#]*)\s*\]/g;a.fn.init=function(a){var b=Array.prototype.slice.call(arguments);return"string"==typeof a&&"#"===a&&(c("jQuery( '#' ) is not a valid selector"),b[0]=[]),f.apply(this,b)},a.fn.init.prototype=a.fn,a.find=function(a){var b=Array.prototype.slice.call(arguments);if("string"==typeof a&&i.test(a))try{document.querySelector(a)}catch(d){a=a.replace(j,function(a,b,c,d){return"["+b+c+'"'+d+'"]'});try{document.querySelector(a),c("Attribute selector with '#' must be quoted: "+b[0]),b[0]=a}catch(e){c("Attribute selector with '#' was not fixed: "+b[0])}}return h.apply(this,b)};var k;for(k in h)Object.prototype.hasOwnProperty.call(h,k)&&(a.find[k]=h[k]);a.fn.size=function(){return c("jQuery.fn.size() is deprecated; use the .length property"),this.length},a.parseJSON=function(){return c("jQuery.parseJSON is deprecated; use JSON.parse"),JSON.parse.apply(null,arguments)},a.isNumeric=function(b){function d(b){var c=b&&b.toString();return!a.isArray(b)&&c-parseFloat(c)+1>=0}var e=g(b),f=d(b);return e!==f&&c("jQuery.isNumeric() should not be called on constructed objects"),f},d(a,"unique",a.uniqueSort,"jQuery.unique is deprecated, use jQuery.uniqueSort"),d(a.expr,"filters",a.expr.pseudos,"jQuery.expr.filters is now jQuery.expr.pseudos"),d(a.expr,":",a.expr.pseudos,'jQuery.expr[":"] is now jQuery.expr.pseudos');var l=a.ajax;a.ajax=function(){var a=l.apply(this,arguments);return a.promise&&(d(a,"success",a.done,"jQXHR.success is deprecated and removed"),d(a,"error",a.fail,"jQXHR.error is deprecated and removed"),d(a,"complete",a.always,"jQXHR.complete is deprecated and removed")),a};var m=a.fn.removeAttr,n=a.fn.toggleClass,o=/\S+/g;a.fn.removeAttr=function(b){var d=this;return a.each(b.match(o),function(b,e){a.expr.match.bool.test(e)&&(c("jQuery.fn.removeAttr no longer sets boolean properties: "+e),d.prop(e,!1))}),m.apply(this,arguments)},a.fn.toggleClass=function(b){return void 0!==b&&"boolean"!=typeof b?n.apply(this,arguments):(c("jQuery.fn.toggleClass( boolean ) is deprecated"),this.each(function(){var c=this.getAttribute&&this.getAttribute("class")||"";c&&a.data(this,"__className__",c),this.setAttribute&&this.setAttribute("class",c||b===!1?"":a.data(this,"__className__")||"")}))};var p=!1;a.swap&&a.each(["height","width","reliableMarginRight"],function(b,c){var d=a.cssHooks[c]&&a.cssHooks[c].get;d&&(a.cssHooks[c].get=function(){var a;return p=!0,a=d.apply(this,arguments),p=!1,a})}),a.swap=function(a,b,d,e){var f,g,h={};p||c("jQuery.swap() is undocumented and deprecated");for(g in b)h[g]=a.style[g],a.style[g]=b[g];f=d.apply(a,e||[]);for(g in b)a.style[g]=h[g];return f};var q=a.data;a.data=function(b,d,e){var f;return d&&d!==a.camelCase(d)&&(f=a.hasData(b)&&q.call(this,b),f&&d in f)?(c("jQuery.data() always sets/gets camelCased names: "+d),arguments.length>2&&(f[d]=e),f[d]):q.apply(this,arguments)};var r=a.Tween.prototype.run;a.Tween.prototype.run=function(b){a.easing[this.easing].length>1&&(c('easing function "jQuery.easing.'+this.easing.toString()+'" should use only first argument'),a.easing[this.easing]=a.easing[this.easing].bind(a.easing,b,this.options.duration*b,0,1,this.options.duration)),r.apply(this,arguments)};var s=a.fn.load,t=a.event.fix;a.event.props=[],a.event.fixHooks={},a.event.fix=function(b){var d,e=b.type,f=this.fixHooks[e],g=a.event.props;if(g.length)for(c("jQuery.event.props are deprecated and removed: "+g.join());g.length;)a.event.addProp(g.pop());if(f&&!f._migrated_&&(f._migrated_=!0,c("jQuery.event.fixHooks are deprecated and removed: "+e),(g=f.props)&&g.length))for(;g.length;)a.event.addProp(g.pop());return d=t.call(this,b),f&&f.filter?f.filter(d,b):d},a.each(["load","unload","error"],function(b,d){a.fn[d]=function(){var a=Array.prototype.slice.call(arguments,0);return"load"===d&&"string"==typeof a[0]?s.apply(this,a):(c("jQuery.fn."+d+"() is deprecated"),a.splice(0,0,d),arguments.length?this.on.apply(this,a):(this.triggerHandler.apply(this,a),this))}}),a(function(){a(document).triggerHandler("ready")}),a.event.special.ready={setup:function(){this===document&&c("'ready' event is deprecated")}},a.fn.extend({bind:function(a,b,d){return c("jQuery.fn.bind() is deprecated"),this.on(a,null,b,d)},unbind:function(a,b){return c("jQuery.fn.unbind() is deprecated"),this.off(a,null,b)},delegate:function(a,b,d,e){return c("jQuery.fn.delegate() is deprecated"),this.on(b,a,d,e)},undelegate:function(a,b,d){return c("jQuery.fn.undelegate() is deprecated"),1===arguments.length?this.off(a,"**"):this.off(b,a||"**",d)}});var u=a.fn.offset;a.fn.offset=function(){var b,d=this[0],e={top:0,left:0};return d&&d.nodeType?(b=(d.ownerDocument||document).documentElement,a.contains(b,d)?u.apply(this,arguments):(c("jQuery.fn.offset() requires an element connected to a document"),e)):(c("jQuery.fn.offset() requires a valid DOM element"),e)};var v=a.param;a.param=function(b,d){var e=a.ajaxSettings&&a.ajaxSettings.traditional;return void 0===d&&e&&(c("jQuery.param() no longer uses jQuery.ajaxSettings.traditional"),d=e),v.call(this,b,d)};var w=a.fn.andSelf||a.fn.addBack;a.fn.andSelf=function(){return c("jQuery.fn.andSelf() replaced by jQuery.fn.addBack()"),w.apply(this,arguments)};var x=a.Deferred,y=[["resolve","done",a.Callbacks("once memory"),a.Callbacks("once memory"),"resolved"],["reject","fail",a.Callbacks("once memory"),a.Callbacks("once memory"),"rejected"],["notify","progress",a.Callbacks("memory"),a.Callbacks("memory")]];a.Deferred=function(b){var d=x(),e=d.promise();return d.pipe=e.pipe=function(){var b=arguments;return c("deferred.pipe() is deprecated"),a.Deferred(function(c){a.each(y,function(f,g){var h=a.isFunction(b[f])&&b[f];d[g[1]](function(){var b=h&&h.apply(this,arguments);b&&a.isFunction(b.promise)?b.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[g[0]+"With"](this===e?c.promise():this,h?[b]:arguments)})}),b=null}).promise()},b&&b.call(d,d),d}}(jQuery,window);
diff --git a/wiki/data/cache/d/d223e1439188e478349d52476506c22e.js.gz b/wiki/data/cache/d/d223e1439188e478349d52476506c22e.js.gz
deleted file mode 100644
index 1cfd5ef..0000000
--- a/wiki/data/cache/d/d223e1439188e478349d52476506c22e.js.gz
+++ /dev/null
Binary files differdiff --git a/wiki/data/cache/d/db35ee3f00312dd531002a2d1baf11c8.i b/wiki/data/cache/d/db35ee3f00312dd531002a2d1baf11c8.i
deleted file mode 100644
index ad4f09b..0000000
--- a/wiki/data/cache/d/db35ee3f00312dd531002a2d1baf11c8.i
+++ /dev/null
@@ -1 +0,0 @@
-a:10:{i:0;a:3:{i:0;s:14:"document_start";i:1;a:0:{}i:2;i:0;}i:1;a:3:{i:0;s:6:"header";i:1;a:3:{i:0;s:7:"Sitemap";i:1;i:1;i:2;i:1;}i:2;i:1;}i:2;a:3:{i:0;s:12:"section_open";i:1;a:1:{i:0;i:1;}i:2;i:1;}i:3;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:1;}i:4;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:54:"This is a sitemap over all available pages ordered by ";}i:2;i:24;}i:5;a:3:{i:0;s:13:"interwikilink";i:1;a:4:{i:0;s:15:"doku>namespaces";i:1;s:10:"namespaces";i:2;s:4:"doku";i:3;s:10:"namespaces";}i:2;i:78;}i:6;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:".";}i:2;i:108;}i:7;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:109;}i:8;a:3:{i:0;s:13:"section_close";i:1;a:0:{}i:2;i:111;}i:9;a:3:{i:0;s:12:"document_end";i:1;a:0:{}i:2;i:111;}}
\ No newline at end of file
diff --git a/wiki/data/cache/d/db35ee3f00312dd531002a2d1baf11c8.xhtml b/wiki/data/cache/d/db35ee3f00312dd531002a2d1baf11c8.xhtml
deleted file mode 100644
index 6fedd76..0000000
--- a/wiki/data/cache/d/db35ee3f00312dd531002a2d1baf11c8.xhtml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-<h1 class="sectionedit1" id="sitemap">Sitemap</h1>
-<div class="level1">
-
-<p>
-This is a sitemap over all available pages ordered by <a href="https://www.dokuwiki.org/namespaces" class="interwiki iw_doku" title="https://www.dokuwiki.org/namespaces">namespaces</a>.
-</p>
-
-</div>
diff --git a/wiki/data/cache/d/dce413c5fa52ff56f6a8e022efc1a63c.i b/wiki/data/cache/d/dce413c5fa52ff56f6a8e022efc1a63c.i
deleted file mode 100644
index a497508..0000000
--- a/wiki/data/cache/d/dce413c5fa52ff56f6a8e022efc1a63c.i
+++ /dev/null
@@ -1,2 +0,0 @@
-a:73:{i:0;a:3:{i:0;s:14:"document_start";i:1;a:0:{}i:2;i:0;}i:1;a:3:{i:0;s:6:"header";i:1;a:3:{i:0;s:28:"Welcome to your new DokuWiki";i:1;i:1;i:2;i:1;}i:2;i:1;}i:2;a:3:{i:0;s:12:"section_open";i:1;a:1:{i:0;i:1;}i:2;i:1;}i:3;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:1;}i:4;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:94:"Congratulations, your wiki is now up and running. Here are a few more tips to get you started.";}i:2;i:45;}i:5;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:139;}i:6;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:139;}i:7;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:30:"Enjoy your work with DokuWiki,";}i:2;i:141;}i:8;a:3:{i:0;s:9:"linebreak";i:1;a:0:{}i:2;i:171;}i:9;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:"
-";}i:2;i:173;}i:10;a:3:{i:0;s:6:"entity";i:1;a:1:{i:0;s:2:"--";}i:2;i:174;}i:11;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:15:" the developers";}i:2;i:176;}i:12;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:191;}i:13;a:3:{i:0;s:13:"section_close";i:1;a:0:{}i:2;i:193;}i:14;a:3:{i:0;s:6:"header";i:1;a:3:{i:0;s:23:"Create your first pages";i:1;i:2;i:2;i:193;}i:2;i:193;}i:15;a:3:{i:0;s:12:"section_open";i:1;a:1:{i:0;i:2;}i:2;i:193;}i:16;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:193;}i:17;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:90:"Your wiki needs to have a start page. As long as it doesn't exist, this link will be red: ";}i:2;i:230;}i:18;a:3:{i:0;s:12:"internallink";i:1;a:2:{i:0;s:6:":start";i:1;N;}i:2;i:320;}i:19;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:".";}i:2;i:330;}i:20;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:331;}i:21;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:331;}i:22;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:112:"Go on, follow that link and create the page. If you need help with using the syntax you can always refer to the ";}i:2;i:333;}i:23;a:3:{i:0;s:12:"internallink";i:1;a:2:{i:0;s:11:"wiki:syntax";i:1;s:11:"syntax page";}i:2;i:445;}i:24;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:".";}i:2;i:472;}i:25;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:473;}i:26;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:473;}i:27;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:66:"You might also want to use a sidebar. To create it, just edit the ";}i:2;i:475;}i:28;a:3:{i:0;s:12:"internallink";i:1;a:2:{i:0;s:8:":sidebar";i:1;N;}i:2;i:541;}i:29;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:86:" page. Everything in that page will be shown in a margin column on the side. Read our ";}i:2;i:553;}i:30;a:3:{i:0;s:13:"interwikilink";i:1;a:4:{i:0;s:16:"doku>faq:sidebar";i:1;s:15:"FAQ on sidebars";i:2;s:4:"doku";i:3;s:11:"faq:sidebar";}i:2;i:639;}i:31;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:15:" to learn more.";}i:2;i:675;}i:32;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:690;}i:33;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:690;}i:34;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:56:"Please be aware that not all templates support sidebars.";}i:2;i:692;}i:35;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:748;}i:36;a:3:{i:0;s:13:"section_close";i:1;a:0:{}i:2;i:750;}i:37;a:3:{i:0;s:6:"header";i:1;a:3:{i:0;s:19:"Customize your Wiki";i:1;i:2;i:2;i:750;}i:2;i:750;}i:38;a:3:{i:0;s:12:"section_open";i:1;a:1:{i:0;i:2;}i:2;i:750;}i:39;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:750;}i:40;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:93:"Once you're comfortable with creating and editing pages you might want to have a look at the ";}i:2;i:783;}i:41;a:3:{i:0;s:13:"interwikilink";i:1;a:4:{i:0;s:34:"this>doku.php?do=admin&page=config";i:1;s:22:"configuration settings";i:2;s:4:"this";i:3;s:29:"doku.php?do=admin&page=config";}i:2;i:876;}i:42;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:39:" (be sure to login as superuser first).";}i:2;i:937;}i:43;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:976;}i:44;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:976;}i:45;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:30:"You may also want to see what ";}i:2;i:978;}i:46;a:3:{i:0;s:13:"interwikilink";i:1;a:4:{i:0;s:12:"doku>plugins";i:1;s:7:"plugins";i:2;s:4:"doku";i:3;s:7:"plugins";}i:2;i:1008;}i:47;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:5:" and ";}i:2;i:1032;}i:48;a:3:{i:0;s:13:"interwikilink";i:1;a:4:{i:0;s:14:"doku>templates";i:1;s:9:"templates";i:2;s:4:"doku";i:3;s:9:"templates";}i:2;i:1037;}i:49;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:99:" are available at DokuWiki.org to extend the functionality and looks of your DokuWiki installation.";}i:2;i:1065;}i:50;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:1164;}i:51;a:3:{i:0;s:13:"section_close";i:1;a:0:{}i:2;i:1166;}i:52;a:3:{i:0;s:6:"header";i:1;a:3:{i:0;s:18:"Join the Community";i:1;i:2;i:2;i:1166;}i:2;i:1166;}i:53;a:3:{i:0;s:12:"section_open";i:1;a:1:{i:0;i:2;}i:2;i:1166;}i:54;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:1166;}i:55;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:186:"DokuWiki is an Open Source project that thrives through user contributions. A good way to stay informed on what's going on and to get useful tips in using DokuWiki is subscribing to the ";}i:2;i:1198;}i:56;a:3:{i:0;s:13:"interwikilink";i:1;a:4:{i:0;s:15:"doku>newsletter";i:1;N;i:2;s:4:"doku";i:3;s:10:"newsletter";}i:2;i:1384;}i:57;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:".";}i:2;i:1403;}i:58;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:1404;}i:59;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:1404;}i:60;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:4:"The ";}i:2;i:1406;}i:61;a:3:{i:0;s:12:"externallink";i:1;a:2:{i:0;s:25:"http://forum.dokuwiki.org";i:1;s:19:"DokuWiki User Forum";}i:2;i:1410;}i:62;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:105:" is an excellent way to get in contact with other DokuWiki users and is just one of the many ways to get ";}i:2;i:1459;}i:63;a:3:{i:0;s:13:"interwikilink";i:1;a:4:{i:0;s:16:"doku>faq:support";i:1;s:7:"support";i:2;s:4:"doku";i:3;s:11:"faq:support";}i:2;i:1564;}i:64;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:".";}i:2;i:1592;}i:65;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:1593;}i:66;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:1593;}i:67;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:46:"Of course we'd be more than happy to have you ";}i:2;i:1595;}i:68;a:3:{i:0;s:13:"interwikilink";i:1;a:4:{i:0;s:27:"doku>teams:getting_involved";i:1;s:16:"getting involved";i:2;s:4:"doku";i:3;s:22:"teams:getting_involved";}i:2;i:1641;}i:69;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:15:" with DokuWiki.";}i:2;i:1689;}i:70;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:1704;}i:71;a:3:{i:0;s:13:"section_close";i:1;a:0:{}i:2;i:1705;}i:72;a:3:{i:0;s:12:"document_end";i:1;a:0:{}i:2;i:1705;}}
\ No newline at end of file
diff --git a/wiki/data/cache/d/dce413c5fa52ff56f6a8e022efc1a63c.metadata b/wiki/data/cache/d/dce413c5fa52ff56f6a8e022efc1a63c.metadata
deleted file mode 100644
index 7e05fe9..0000000
--- a/wiki/data/cache/d/dce413c5fa52ff56f6a8e022efc1a63c.metadata
+++ /dev/null
@@ -1 +0,0 @@
-1546006423
\ No newline at end of file
diff --git a/wiki/data/cache/d/dce413c5fa52ff56f6a8e022efc1a63c.xhtml b/wiki/data/cache/d/dce413c5fa52ff56f6a8e022efc1a63c.xhtml
deleted file mode 100644
index 5709b81..0000000
--- a/wiki/data/cache/d/dce413c5fa52ff56f6a8e022efc1a63c.xhtml
+++ /dev/null
@@ -1,67 +0,0 @@
-
-<h1 class="sectionedit1" id="welcome_to_your_new_dokuwiki">Welcome to your new DokuWiki</h1>
-<div class="level1">
-
-<p>
-Congratulations, your wiki is now up and running. Here are a few more tips to get you started.
-</p>
-
-<p>
-Enjoy your work with DokuWiki,<br/>
-
-– the developers
-</p>
-
-</div>
-<!-- EDIT{&quot;target&quot;:&quot;section&quot;,&quot;name&quot;:&quot;Welcome to your new DokuWiki&quot;,&quot;hid&quot;:&quot;welcome_to_your_new_dokuwiki&quot;,&quot;codeblockOffset&quot;:0,&quot;secid&quot;:1,&quot;range&quot;:&quot;1-192&quot;} -->
-<h2 class="sectionedit2" id="create_your_first_pages">Create your first pages</h2>
-<div class="level2">
-
-<p>
-Your wiki needs to have a start page. As long as it doesn&#039;t exist, this link will be red: <a href="/wiki/doku.php?id=start" class="wikilink1" title="start">start</a>.
-</p>
-
-<p>
-Go on, follow that link and create the page. If you need help with using the syntax you can always refer to the <a href="/wiki/doku.php?id=wiki:syntax" class="wikilink1" title="wiki:syntax">syntax page</a>.
-</p>
-
-<p>
-You might also want to use a sidebar. To create it, just edit the <a href="/wiki/doku.php?id=sidebar" class="wikilink2" title="sidebar" rel="nofollow">sidebar</a> page. Everything in that page will be shown in a margin column on the side. Read our <a href="https://www.dokuwiki.org/faq%3Asidebar" class="interwiki iw_doku" title="https://www.dokuwiki.org/faq%3Asidebar">FAQ on sidebars</a> to learn more.
-</p>
-
-<p>
-Please be aware that not all templates support sidebars.
-</p>
-
-</div>
-<!-- EDIT{&quot;target&quot;:&quot;section&quot;,&quot;name&quot;:&quot;Create your first pages&quot;,&quot;hid&quot;:&quot;create_your_first_pages&quot;,&quot;codeblockOffset&quot;:0,&quot;secid&quot;:2,&quot;range&quot;:&quot;193-749&quot;} -->
-<h2 class="sectionedit3" id="customize_your_wiki">Customize your Wiki</h2>
-<div class="level2">
-
-<p>
-Once you&#039;re comfortable with creating and editing pages you might want to have a look at the <a href="https://tilde.institute/wiki/doku.php?do=admin&amp;page=config" class="interwiki iw_this" title="https://tilde.institute/wiki/doku.php?do=admin&amp;page=config">configuration settings</a> (be sure to login as superuser first).
-</p>
-
-<p>
-You may also want to see what <a href="https://www.dokuwiki.org/plugins" class="interwiki iw_doku" title="https://www.dokuwiki.org/plugins">plugins</a> and <a href="https://www.dokuwiki.org/templates" class="interwiki iw_doku" title="https://www.dokuwiki.org/templates">templates</a> are available at DokuWiki.org to extend the functionality and looks of your DokuWiki installation.
-</p>
-
-</div>
-<!-- EDIT{&quot;target&quot;:&quot;section&quot;,&quot;name&quot;:&quot;Customize your Wiki&quot;,&quot;hid&quot;:&quot;customize_your_wiki&quot;,&quot;codeblockOffset&quot;:0,&quot;secid&quot;:3,&quot;range&quot;:&quot;750-1165&quot;} -->
-<h2 class="sectionedit4" id="join_the_community">Join the Community</h2>
-<div class="level2">
-
-<p>
-DokuWiki is an Open Source project that thrives through user contributions. A good way to stay informed on what&#039;s going on and to get useful tips in using DokuWiki is subscribing to the <a href="https://www.dokuwiki.org/newsletter" class="interwiki iw_doku" title="https://www.dokuwiki.org/newsletter">newsletter</a>.
-</p>
-
-<p>
-The <a href="http://forum.dokuwiki.org" class="urlextern" title="http://forum.dokuwiki.org" rel="nofollow">DokuWiki User Forum</a> is an excellent way to get in contact with other DokuWiki users and is just one of the many ways to get <a href="https://www.dokuwiki.org/faq%3Asupport" class="interwiki iw_doku" title="https://www.dokuwiki.org/faq%3Asupport">support</a>.
-</p>
-
-<p>
-Of course we&#039;d be more than happy to have you <a href="https://www.dokuwiki.org/teams%3Agetting_involved" class="interwiki iw_doku" title="https://www.dokuwiki.org/teams%3Agetting_involved">getting involved</a> with DokuWiki.
-</p>
-
-</div>
-<!-- EDIT{&quot;target&quot;:&quot;section&quot;,&quot;name&quot;:&quot;Join the Community&quot;,&quot;hid&quot;:&quot;join_the_community&quot;,&quot;codeblockOffset&quot;:0,&quot;secid&quot;:4,&quot;range&quot;:&quot;1166-&quot;} -->
\ No newline at end of file
diff --git a/wiki/data/cache/d/de942b410ae52d0d38d5a338ce78e74f.i b/wiki/data/cache/d/de942b410ae52d0d38d5a338ce78e74f.i
deleted file mode 100644
index bc6e1ea..0000000
--- a/wiki/data/cache/d/de942b410ae52d0d38d5a338ce78e74f.i
+++ /dev/null
@@ -1 +0,0 @@
-a:8:{i:0;a:3:{i:0;s:14:"document_start";i:1;a:0:{}i:2;i:0;}i:1;a:3:{i:0;s:6:"header";i:1;a:3:{i:0;s:14:"Recent Changes";i:1;i:1;i:2;i:1;}i:2;i:1;}i:2;a:3:{i:0;s:12:"section_open";i:1;a:1:{i:0;i:1;}i:2;i:1;}i:3;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:1;}i:4;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:42:"The following pages were changed recently.";}i:2;i:31;}i:5;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:73;}i:6;a:3:{i:0;s:13:"section_close";i:1;a:0:{}i:2;i:76;}i:7;a:3:{i:0;s:12:"document_end";i:1;a:0:{}i:2;i:76;}}
\ No newline at end of file
diff --git a/wiki/data/cache/d/de942b410ae52d0d38d5a338ce78e74f.xhtml b/wiki/data/cache/d/de942b410ae52d0d38d5a338ce78e74f.xhtml
deleted file mode 100644
index 3c92a1a..0000000
--- a/wiki/data/cache/d/de942b410ae52d0d38d5a338ce78e74f.xhtml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-<h1 class="sectionedit1" id="recent_changes">Recent Changes</h1>
-<div class="level1">
-
-<p>
-The following pages were changed recently.
-</p>
-
-</div>
diff --git a/wiki/data/cache/e/ec88cda25cd00b321ecce97f589815b4.i b/wiki/data/cache/e/ec88cda25cd00b321ecce97f589815b4.i
deleted file mode 100644
index 6de9b8f..0000000
--- a/wiki/data/cache/e/ec88cda25cd00b321ecce97f589815b4.i
+++ /dev/null
@@ -1 +0,0 @@
-a:8:{i:0;a:3:{i:0;s:14:"document_start";i:1;a:0:{}i:2;i:0;}i:1;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:0;}i:2;a:3:{i:0;s:11:"strong_open";i:1;a:0:{}i:2;i:1;}i:3;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:40:"This is an old revision of the document!";}i:2;i:3;}i:4;a:3:{i:0;s:12:"strong_close";i:1;a:0:{}i:2;i:43;}i:5;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:45;}i:6;a:3:{i:0;s:2:"hr";i:1;a:0:{}i:2;i:45;}i:7;a:3:{i:0;s:12:"document_end";i:1;a:0:{}i:2;i:45;}}
\ No newline at end of file
diff --git a/wiki/data/cache/e/ec88cda25cd00b321ecce97f589815b4.xhtml b/wiki/data/cache/e/ec88cda25cd00b321ecce97f589815b4.xhtml
deleted file mode 100644
index 2442212..0000000
--- a/wiki/data/cache/e/ec88cda25cd00b321ecce97f589815b4.xhtml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-<p>
-<strong>This is an old revision of the document!</strong>
-</p>
-<hr />
diff --git a/wiki/data/cache/f/f724e027053cd84fef3f83b6517c65cf.js b/wiki/data/cache/f/f724e027053cd84fef3f83b6517c65cf.js
deleted file mode 100644
index 147a2f2..0000000
--- a/wiki/data/cache/f/f724e027053cd84fef3f83b6517c65cf.js
+++ /dev/null
@@ -1 +0,0 @@
-var DOKU_BASE='/wiki/';var DOKU_TPL='/wiki/lib/tpl/dokuwiki/';var DOKU_COOKIE_PARAM={"path":"\/wiki\/","secure":true};Object.defineProperty(window,'DOKU_UHN',{get:function(){console.warn('Using DOKU_UHN is deprecated. Please use JSINFO.useHeadingNavigation instead');return JSINFO.useHeadingNavigation;}});Object.defineProperty(window,'DOKU_UHC',{get:function(){console.warn('Using DOKU_UHC is deprecated. Please use JSINFO.useHeadingContent instead');return JSINFO.useHeadingContent;}});LANG={"search_toggle_tools":"Toggle Search Tools","willexpire":"Your lock for editing this page is about to expire in a minute.\\nTo avoid conflicts use the preview button to reset the locktimer.","notsavedyet":"Unsaved changes will be lost.","searchmedia":"Search for files","keepopen":"Keep window open on selection","hidedetails":"Hide Details","mediatitle":"Link settings","mediadisplay":"Link type","mediaalign":"Alignment","mediasize":"Image size","mediatarget":"Link target","mediaclose":"Close","mediainsert":"Insert","mediadisplayimg":"Show the image.","mediadisplaylnk":"Show only the link.","mediasmall":"Small version","mediamedium":"Medium version","medialarge":"Large version","mediaoriginal":"Original version","medialnk":"Link to detail page","mediadirect":"Direct link to original","medianolnk":"No link","medianolink":"Do not link the image","medialeft":"Align the image on the left.","mediaright":"Align the image on the right.","mediacenter":"Align the image in the middle.","medianoalign":"Use no align.","nosmblinks":"Linking to Windows shares only works in Microsoft Internet Explorer.\\nYou still can copy and paste the link.","linkwiz":"Link Wizard","linkto":"Link to:","del_confirm":"Really delete selected item(s)?","restore_confirm":"Really restore this version?","media_diff":"View differences:","media_diff_both":"Side by Side","media_diff_opacity":"Shine-through","media_diff_portions":"Swipe","media_select":"Select files\u2026","media_upload_btn":"Upload","media_done_btn":"Done","media_drop":"Drop files here to upload","media_cancel":"remove","media_overwrt":"Overwrite existing files","plugins":{"extension":{"reallydel":"Really uninstall this extension?","display_viewoptions":"View Options:","display_enabled":"enabled","display_disabled":"disabled","display_updatable":"updatable"},"styling":{"loader":"Preview is loading...<br \/>if this does not goes away, your values may be faulty","popup":"Open as a popup"}}};var toolbar=[{"type":"format","title":"Bold Text","icon":"bold.png","key":"b","open":"**","close":"**","block":false},{"type":"format","title":"Italic Text","icon":"italic.png","key":"i","open":"\/\/","close":"\/\/","block":false},{"type":"format","title":"Underlined Text","icon":"underline.png","key":"u","open":"__","close":"__","block":false},{"type":"format","title":"Monospaced Text","icon":"mono.png","key":"m","open":"''","close":"''","block":false},{"type":"format","title":"Strike-through Text","icon":"strike.png","key":"d","open":"<del>","close":"<\/del>","block":false},{"type":"autohead","title":"Same Level Headline","icon":"hequal.png","key":"8","text":"Headline","mod":0,"block":true},{"type":"autohead","title":"Lower Headline","icon":"hminus.png","key":"9","text":"Headline","mod":1,"block":true},{"type":"autohead","title":"Higher Headline","icon":"hplus.png","key":"0","text":"Headline","mod":-1,"block":true},{"type":"picker","title":"Select Headline","icon":"h.png","class":"pk_hl","list":[{"type":"format","title":"Level 1 Headline","icon":"h1.png","key":"1","open":"====== ","close":" ======\\n"},{"type":"format","title":"Level 2 Headline","icon":"h2.png","key":"2","open":"===== ","close":" =====\\n"},{"type":"format","title":"Level 3 Headline","icon":"h3.png","key":"3","open":"==== ","close":" ====\\n"},{"type":"format","title":"Level 4 Headline","icon":"h4.png","key":"4","open":"=== ","close":" ===\\n"},{"type":"format","title":"Level 5 Headline","icon":"h5.png","key":"5","open":"== ","close":" ==\\n"}],"block":true},{"type":"linkwiz","title":"Internal Link","icon":"link.png","key":"l","open":"[[","close":"]]","block":false},{"type":"format","title":"External Link","icon":"linkextern.png","open":"[[","close":"]]","sample":"http:\/\/example.com|External Link","block":false},{"type":"formatln","title":"Ordered List Item","icon":"ol.png","open":"  - ","close":"","key":"-","block":true},{"type":"formatln","title":"Unordered List Item","icon":"ul.png","open":"  * ","close":"","key":".","block":true},{"type":"insert","title":"Horizontal Rule","icon":"hr.png","insert":"\\n----\\n","block":true},{"type":"mediapopup","title":"Add Images and other files (opens in a new window)","icon":"image.png","url":"lib\/exe\/mediamanager.php?ns=","name":"mediaselect","options":"width=750,height=500,left=20,top=20,scrollbars=yes,resizable=yes","block":false},{"type":"picker","title":"Smileys","icon":"smiley.png","list":{"8-)":"icon_cool.gif","8-O":"icon_eek.gif","8-o":"icon_eek.gif",":-(":"icon_sad.gif",":-)":"icon_smile.gif","=)":"icon_smile2.gif",":-\/":"icon_doubt.gif",":-\\":"icon_doubt2.gif",":-?":"icon_confused.gif",":-D":"icon_biggrin.gif",":-P":"icon_razz.gif",":-o":"icon_surprised.gif",":-O":"icon_surprised.gif",":-x":"icon_silenced.gif",":-X":"icon_silenced.gif",":-|":"icon_neutral.gif",";-)":"icon_wink.gif","m(":"facepalm.gif","^_^":"icon_fun.gif",":?:":"icon_question.gif",":!:":"icon_exclaim.gif","LOL":"icon_lol.gif","FIXME":"fixme.gif","DELETEME":"delete.gif"},"icobase":"smileys","block":false},{"type":"picker","title":"Special Chars","icon":"chars.png","list":["\u00c0","\u00e0","\u00c1","\u00e1","\u00c2","\u00e2","\u00c3","\u00e3","\u00c4","\u00e4","\u01cd","\u01ce","\u0102","\u0103","\u00c5","\u00e5","\u0100","\u0101","\u0104","\u0105","\u00c6","\u00e6","\u0106","\u0107","\u00c7","\u00e7","\u010c","\u010d","\u0108","\u0109","\u010a","\u010b","\u00d0","\u0111","\u00f0","\u010e","\u010f","\u00c8","\u00e8","\u00c9","\u00e9","\u00ca","\u00ea","\u00cb","\u00eb","\u011a","\u011b","\u0112","\u0113","\u0116","\u0117","\u0118","\u0119","\u0122","\u0123","\u011c","\u011d","\u011e","\u011f","\u0120","\u0121","\u0124","\u0125","\u00cc","\u00ec","\u00cd","\u00ed","\u00ce","\u00ee","\u00cf","\u00ef","\u01cf","\u01d0","\u012a","\u012b","\u0130","\u0131","\u012e","\u012f","\u0134","\u0135","\u0136","\u0137","\u0139","\u013a","\u013b","\u013c","\u013d","\u013e","\u0141","\u0142","\u013f","\u0140","\u0143","\u0144","\u00d1","\u00f1","\u0145","\u0146","\u0147","\u0148","\u00d2","\u00f2","\u00d3","\u00f3","\u00d4","\u00f4","\u00d5","\u00f5","\u00d6","\u00f6","\u01d1","\u01d2","\u014c","\u014d","\u0150","\u0151","\u0152","\u0153","\u00d8","\u00f8","\u0154","\u0155","\u0156","\u0157","\u0158","\u0159","\u015a","\u015b","\u015e","\u015f","\u0160","\u0161","\u015c","\u015d","\u0162","\u0163","\u0164","\u0165","\u00d9","\u00f9","\u00da","\u00fa","\u00db","\u00fb","\u00dc","\u00fc","\u01d3","\u01d4","\u016c","\u016d","\u016a","\u016b","\u016e","\u016f","\u01d6","\u01d8","\u01da","\u01dc","\u0172","\u0173","\u0170","\u0171","\u0174","\u0175","\u00dd","\u00fd","\u0178","\u00ff","\u0176","\u0177","\u0179","\u017a","\u017d","\u017e","\u017b","\u017c","\u00de","\u00fe","\u00df","\u0126","\u0127","\u00bf","\u00a1","\u00a2","\u00a3","\u00a4","\u00a5","\u20ac","\u00a6","\u00a7","\u00aa","\u00ac","\u00af","\u00b0","\u00b1","\u00f7","\u2030","\u00bc","\u00bd","\u00be","\u00b9","\u00b2","\u00b3","\u00b5","\u00b6","\u2020","\u2021","\u00b7","\u2022","\u00ba","\u2200","\u2202","\u2203","\u018f","\u0259","\u2205","\u2207","\u2208","\u2209","\u220b","\u220f","\u2211","\u203e","\u2212","\u2217","\u00d7","\u2044","\u221a","\u221d","\u221e","\u2220","\u2227","\u2228","\u2229","\u222a","\u222b","\u2234","\u223c","\u2245","\u2248","\u2260","\u2261","\u2264","\u2265","\u2282","\u2283","\u2284","\u2286","\u2287","\u2295","\u2297","\u22a5","\u22c5","\u25ca","\u2118","\u2111","\u211c","\u2135","\u2660","\u2663","\u2665","\u2666","\u03b1","\u03b2","\u0393","\u03b3","\u0394","\u03b4","\u03b5","\u03b6","\u03b7","\u0398","\u03b8","\u03b9","\u03ba","\u039b","\u03bb","\u03bc","\u039e","\u03be","\u03a0","\u03c0","\u03c1","\u03a3","\u03c3","\u03a4","\u03c4","\u03c5","\u03a6","\u03c6","\u03c7","\u03a8","\u03c8","\u03a9","\u03c9","\u2605","\u2606","\u260e","\u261a","\u261b","\u261c","\u261d","\u261e","\u261f","\u2639","\u263a","\u2714","\u2718","\u201e","\u201c","\u201d","\u201a","\u2018","\u2019","\u00ab","\u00bb","\u2039","\u203a","\u2014","\u2013","\u2026","\u2190","\u2191","\u2192","\u2193","\u2194","\u21d0","\u21d1","\u21d2","\u21d3","\u21d4","\u00a9","\u2122","\u00ae","\u2032","\u2033","[","]","{","}","~","(",")","%","\u00a7","$","#","|","@"],"block":false},{"type":"signature","title":"Insert Signature","icon":"sig.png","key":"y","block":false}];(function(factory){if(typeof define==='function'&&define.amd){define(['jquery'],factory);}else{factory(jQuery);}}(function($){var pluses=/\+/g;function raw(s){return s;}function decoded(s){return decodeURIComponent(s.replace(pluses,' '));}function converted(s){if(s.indexOf('"')===0){s=s.slice(1,-1).replace(/\\"/g,'"').replace(/\\\\/g,'\\');}try{return config.json?JSON.parse(s):s;}catch(er){}}var config=$.cookie=function(key,value,options){if(value!==undefined){options=$.extend({},config.defaults,options);if(typeof options.expires==='number'){var days=options.expires,t=options.expires=new Date();t.setDate(t.getDate()+days);}value=config.json?JSON.stringify(value):String(value);return(document.cookie=[config.raw?key:encodeURIComponent(key),'=',config.raw?value:encodeURIComponent(value),options.expires?'; expires='+options.expires.toUTCString():'',options.path?'; path='+options.path:'',options.domain?'; domain='+options.domain:'',options.secure?'; secure':''].join(''));}var decode=config.raw?raw:decoded;var cookies=document.cookie.split('; ');var result=key?undefined:{};for(var i=0,l=cookies.length;i<l;i++){var parts=cookies[i].split('=');var name=decode(parts.shift());var cookie=decode(parts.join('='));if(key&&key===name){result=converted(cookie);break;}if(!key){result[name]=converted(cookie);}}return result;};config.defaults={};$.removeCookie=function(key,options){if($.cookie(key)!==undefined){$.cookie(key,'',$.extend({},options,{expires:-1}));return true;}return false;};}));var qq=qq||{};qq.extend=function(first,second){for(var prop in second){first[prop]=second[prop];}};qq.indexOf=function(arr,elt,from){if(arr.indexOf)return arr.indexOf(elt,from);from=from||0;var len=arr.length;if(from<0)from+=len;for(;from<len;from++){if(from in arr&&arr[from]===elt){return from;}}return-1;};qq.getUniqueId=(function(){var id=0;return function(){return id++;};})();qq.attach=function(element,type,fn){if(element.addEventListener){element.addEventListener(type,fn,false);}else if(element.attachEvent){element.attachEvent('on'+type,fn);}};qq.detach=function(element,type,fn){if(element.removeEventListener){element.removeEventListener(type,fn,false);}else if(element.attachEvent){element.detachEvent('on'+type,fn);}};qq.preventDefault=function(e){if(e.preventDefault){e.preventDefault();}else{e.returnValue=false;}};qq.insertBefore=function(a,b){b.parentNode.insertBefore(a,b);};qq.remove=function(element){element.parentNode.removeChild(element);};qq.contains=function(parent,descendant){if(parent==descendant)return true;if(parent.contains){return parent.contains(descendant);}else{return!!(descendant.compareDocumentPosition(parent)&8);}};qq.toElement=(function(){var div=document.createElement('div');return function(html){div.innerHTML=html;var element=div.firstChild;div.removeChild(element);return element;};})();qq.css=function(element,styles){if(styles.opacity!=null){if(typeof element.style.opacity!='string'&&typeof(element.filters)!='undefined'){styles.filter='alpha(opacity='+Math.round(100*styles.opacity)+')';}}qq.extend(element.style,styles);};qq.hasClass=function(element,name){var re=new RegExp('(^| )'+name+'( |$)');return re.test(element.className);};qq.addClass=function(element,name){if(!qq.hasClass(element,name)){element.className+=' '+name;}};qq.removeClass=function(element,name){var re=new RegExp('(^| )'+name+'( |$)');element.className=element.className.replace(re,' ').replace(/^\s+|\s+$/g,"");};qq.setText=function(element,text){element.innerText=text;element.textContent=text;};qq.children=function(element){var children=[],child=element.firstChild;while(child){if(child.nodeType==1){children.push(child);}child=child.nextSibling;}return children;};qq.getByClass=function(element,className){if(element.querySelectorAll){return element.querySelectorAll('.'+className);}var result=[];var candidates=element.getElementsByTagName("*");var len=candidates.length;for(var i=0;i<len;i++){if(qq.hasClass(candidates[i],className)){result.push(candidates[i]);}}return result;};qq.obj2url=function(obj,temp,prefixDone){var uristrings=[],prefix='&',add=function(nextObj,i){var nextTemp=temp?(/\[\]$/.test(temp))?temp:temp+'['+i+']':i;if((nextTemp!='undefined')&&(i!='undefined')){uristrings.push((typeof nextObj==='object')?qq.obj2url(nextObj,nextTemp,true):(Object.prototype.toString.call(nextObj)==='[object Function]')?encodeURIComponent(nextTemp)+'='+encodeURIComponent(nextObj()):encodeURIComponent(nextTemp)+'='+encodeURIComponent(nextObj));}};if(!prefixDone&&temp){prefix=(/\?/.test(temp))?(/\?$/.test(temp))?'':'&':'?';uristrings.push(temp);uristrings.push(qq.obj2url(obj));}else if((Object.prototype.toString.call(obj)==='[object Array]')&&(typeof obj!='undefined')){for(var i=0,len=obj.length;i<len;++i){add(obj[i],i);}}else if((typeof obj!='undefined')&&(obj!==null)&&(typeof obj==="object")){for(var i in obj){if(obj.hasOwnProperty(i)&&typeof obj[i]!='function'){add(obj[i],i);}}}else{uristrings.push(encodeURIComponent(temp)+'='+encodeURIComponent(obj));}return uristrings.join(prefix).replace(/^&/,'').replace(/%20/g,'+');};var qq=qq||{};qq.FileUploaderBasic=function(o){this._options={debug:false,action:'/server/upload',params:{},button:null,multiple:true,maxConnections:3,allowedExtensions:[],sizeLimit:0,minSizeLimit:0,onSubmit:function(id,fileName){},onProgress:function(id,fileName,loaded,total){},onComplete:function(id,fileName,responseJSON){},onCancel:function(id,fileName){},messages:{typeError:"{file} has invalid extension. Only {extensions} are allowed.",sizeError:"{file} is too large, maximum file size is {sizeLimit}.",minSizeError:"{file} is too small, minimum file size is {minSizeLimit}.",emptyError:"{file} is empty, please select files again without it.",onLeave:"The files are being uploaded, if you leave now the upload will be cancelled."},showMessage:function(message){alert(message);}};qq.extend(this._options,o);this._filesInProgress=0;this._handler=this._createUploadHandler();if(this._options.button){this._button=this._createUploadButton(this._options.button);}this._preventLeaveInProgress();};qq.FileUploaderBasic.prototype={setParams:function(params){this._options.params=params;},getInProgress:function(){return this._filesInProgress;},_createUploadButton:function(element){var self=this;return new qq.UploadButton({element:element,multiple:this._options.multiple&&qq.UploadHandlerXhr.isSupported(),onChange:function(input){self._onInputChange(input);}});},_createUploadHandler:function(){var self=this,handlerClass;if(qq.UploadHandlerXhr.isSupported()){handlerClass='UploadHandlerXhr';}else{handlerClass='UploadHandlerForm';}var handler=new qq[handlerClass]({debug:this._options.debug,action:this._options.action,maxConnections:this._options.maxConnections,onProgress:function(id,fileName,loaded,total){self._onProgress(id,fileName,loaded,total);self._options.onProgress(id,fileName,loaded,total);},onComplete:function(id,fileName,result){self._onComplete(id,fileName,result);self._options.onComplete(id,fileName,result);},onCancel:function(id,fileName){self._onCancel(id,fileName);self._options.onCancel(id,fileName);}});return handler;},_preventLeaveInProgress:function(){var self=this;qq.attach(window,'beforeunload',function(e){if(!self._filesInProgress){return;}var e=e||window.event;e.returnValue=self._options.messages.onLeave;return self._options.messages.onLeave;});},_onSubmit:function(id,fileName){this._filesInProgress++;},_onProgress:function(id,fileName,loaded,total){},_onComplete:function(id,fileName,result){this._filesInProgress--;if(result.error){this._options.showMessage(result.error);}},_onCancel:function(id,fileName){this._filesInProgress--;},_onInputChange:function(input){if(this._handler instanceof qq.UploadHandlerXhr){this._uploadFileList(input.files);}else{if(this._validateFile(input)){this._uploadFile(input);}}this._button.reset();},_uploadFileList:function(files){for(var i=0;i<files.length;i++){if(!this._validateFile(files[i])){return;}}for(var i=0;i<files.length;i++){this._uploadFile(files[i]);}},_uploadFile:function(fileContainer){var id=this._handler.add(fileContainer);var fileName=this._handler.getName(id);if(this._options.onSubmit(id,fileName)!==false){this._onSubmit(id,fileName);this._handler.upload(id,this._options.params);}},_validateFile:function(file){var name,size;if(file.value){name=file.value.replace(/.*(\/|\\)/,"");}else{name=file.fileName!=null?file.fileName:file.name;size=file.fileSize!=null?file.fileSize:file.size;}if(!this._isAllowedExtension(name)){this._error('typeError',name);return false;}else if(size===0){this._error('emptyError',name);return false;}else if(size&&this._options.sizeLimit&&size>this._options.sizeLimit){this._error('sizeError',name);return false;}else if(size&&size<this._options.minSizeLimit){this._error('minSizeError',name);return false;}return true;},_error:function(code,fileName){var message=this._options.messages[code];function r(name,replacement){message=message.replace(name,replacement);}r('{file}',this._formatFileName(fileName));r('{extensions}',this._options.allowedExtensions.join(', '));r('{sizeLimit}',this._formatSize(this._options.sizeLimit));r('{minSizeLimit}',this._formatSize(this._options.minSizeLimit));this._options.showMessage(message);},_formatFileName:function(name){if(name.length>33){name=name.slice(0,19)+'...'+name.slice(-13);}return name;},_isAllowedExtension:function(fileName){var ext=(-1!==fileName.indexOf('.'))?fileName.replace(/.*[.]/,'').toLowerCase():'';var allowed=this._options.allowedExtensions;if(!allowed.length){return true;}for(var i=0;i<allowed.length;i++){if(allowed[i].toLowerCase()==ext){return true;}}return false;},_formatSize:function(bytes){var i=-1;do{bytes=bytes/1024;i++;}while(bytes>99);return Math.max(bytes,0.1).toFixed(1)+['kB','MB','GB','TB','PB','EB'][i];}};qq.FileUploader=function(o){qq.FileUploaderBasic.apply(this,arguments);qq.extend(this._options,{element:null,listElement:null,template:'<div class="qq-uploader">'+'<div class="qq-upload-drop-area"><span>Drop files here to upload</span></div>'+'<div class="qq-upload-button">Upload a file</div>'+'<ul class="qq-upload-list"></ul>'+'</div>',fileTemplate:'<li>'+'<span class="qq-upload-file"></span>'+'<span class="qq-upload-spinner"></span>'+'<span class="qq-upload-size"></span>'+'<a class="qq-upload-cancel" href="#">Cancel</a>'+'<span class="qq-upload-failed-text">Failed</span>'+'</li>',classes:{button:'qq-upload-button',drop:'qq-upload-drop-area',dropActive:'qq-upload-drop-area-active',list:'qq-upload-list',file:'qq-upload-file',spinner:'qq-upload-spinner',size:'qq-upload-size',cancel:'qq-upload-cancel',success:'qq-upload-success',fail:'qq-upload-fail'}});qq.extend(this._options,o);this._element=this._options.element;this._element.innerHTML=this._options.template;this._listElement=this._options.listElement||this._find(this._element,'list');this._classes=this._options.classes;this._button=this._createUploadButton(this._find(this._element,'button'));this._bindCancelEvent();this._setupDragDrop();};qq.extend(qq.FileUploader.prototype,qq.FileUploaderBasic.prototype);qq.extend(qq.FileUploader.prototype,{_find:function(parent,type){var element=qq.getByClass(parent,this._options.classes[type])[0];if(!element){throw new Error('element not found '+type);}return element;},_setupDragDrop:function(){var self=this,dropArea=this._find(this._element,'drop');var dz=new qq.UploadDropZone({element:dropArea,onEnter:function(e){qq.addClass(dropArea,self._classes.dropActive);e.stopPropagation();},onLeave:function(e){e.stopPropagation();},onLeaveNotDescendants:function(e){qq.removeClass(dropArea,self._classes.dropActive);},onDrop:function(e){dropArea.style.display='none';qq.removeClass(dropArea,self._classes.dropActive);self._uploadFileList(e.dataTransfer.files);}});dropArea.style.display='none';qq.attach(document,'dragenter',function(e){if(!dz._isValidFileDrag(e))return;dropArea.style.display='block';});qq.attach(document,'dragleave',function(e){if(!dz._isValidFileDrag(e))return;var relatedTarget=document.elementFromPoint(e.clientX,e.clientY);if(!relatedTarget||relatedTarget.nodeName=="HTML"){dropArea.style.display='none';}});},_onSubmit:function(id,fileName){qq.FileUploaderBasic.prototype._onSubmit.apply(this,arguments);this._addToList(id,fileName);},_onProgress:function(id,fileName,loaded,total){qq.FileUploaderBasic.prototype._onProgress.apply(this,arguments);var item=this._getItemByFileId(id);var size=this._find(item,'size');size.style.display='inline';var text;if(loaded!=total){text=Math.round(loaded/total*100)+'% from '+this._formatSize(total);}else{text=this._formatSize(total);}qq.setText(size,text);},_onComplete:function(id,fileName,result){qq.FileUploaderBasic.prototype._onComplete.apply(this,arguments);var item=this._getItemByFileId(id);qq.remove(this._find(item,'cancel'));qq.remove(this._find(item,'spinner'));if(result.success){qq.addClass(item,this._classes.success);}else{qq.addClass(item,this._classes.fail);}},_addToList:function(id,fileName){var item=qq.toElement(this._options.fileTemplate);item.qqFileId=id;var fileElement=this._find(item,'file');qq.setText(fileElement,this._formatFileName(fileName));this._find(item,'size').style.display='none';this._listElement.appendChild(item);},_getItemByFileId:function(id){var item=this._listElement.firstChild;while(item){if(item.qqFileId==id)return item;item=item.nextSibling;}},_bindCancelEvent:function(){var self=this,list=this._listElement;qq.attach(list,'click',function(e){e=e||window.event;var target=e.target||e.srcElement;if(qq.hasClass(target,self._classes.cancel)){qq.preventDefault(e);var item=target.parentNode;self._handler.cancel(item.qqFileId);qq.remove(item);}});}});qq.UploadDropZone=function(o){this._options={element:null,onEnter:function(e){},onLeave:function(e){},onLeaveNotDescendants:function(e){},onDrop:function(e){}};qq.extend(this._options,o);this._element=this._options.element;this._disableDropOutside();this._attachEvents();};qq.UploadDropZone.prototype={_disableDropOutside:function(e){if(!qq.UploadDropZone.dropOutsideDisabled){qq.attach(document,'dragover',function(e){if(e.dataTransfer){e.dataTransfer.dropEffect='none';e.preventDefault();}});qq.UploadDropZone.dropOutsideDisabled=true;}},_attachEvents:function(){var self=this;qq.attach(self._element,'dragover',function(e){if(!self._isValidFileDrag(e))return;var effect=e.dataTransfer.effectAllowed;if(effect=='move'||effect=='linkMove'){e.dataTransfer.dropEffect='move';}else{e.dataTransfer.dropEffect='copy';}e.stopPropagation();e.preventDefault();});qq.attach(self._element,'dragenter',function(e){if(!self._isValidFileDrag(e))return;self._options.onEnter(e);});qq.attach(self._element,'dragleave',function(e){if(!self._isValidFileDrag(e))return;self._options.onLeave(e);var relatedTarget=document.elementFromPoint(e.clientX,e.clientY);if(qq.contains(this,relatedTarget))return;self._options.onLeaveNotDescendants(e);});qq.attach(self._element,'drop',function(e){if(!self._isValidFileDrag(e))return;e.preventDefault();self._options.onDrop(e);});},_isValidFileDrag:function(e){var dt=e.dataTransfer,isWebkit=navigator.userAgent.indexOf("AppleWebKit")>-1;return dt&&dt.effectAllowed!='none'&&(dt.files||(!isWebkit&&dt.types.contains&&dt.types.contains('Files')));}};qq.UploadButton=function(o){this._options={element:null,multiple:false,name:'file',onChange:function(input){},hoverClass:'qq-upload-button-hover',focusClass:'qq-upload-button-focus'};qq.extend(this._options,o);this._element=this._options.element;qq.css(this._element,{position:'relative',overflow:'hidden',direction:'ltr'});this._input=this._createInput();};qq.UploadButton.prototype={getInput:function(){return this._input;},reset:function(){if(this._input.parentNode){qq.remove(this._input);}qq.removeClass(this._element,this._options.focusClass);this._input=this._createInput();},_createInput:function(){var input=document.createElement("input");if(this._options.multiple){input.setAttribute("multiple","multiple");}input.setAttribute("type","file");input.setAttribute("name",this._options.name);qq.css(input,{position:'absolute',right:0,top:0,fontFamily:'Arial',fontSize:'118px',margin:0,padding:0,cursor:'pointer',opacity:0});this._element.appendChild(input);var self=this;qq.attach(input,'change',function(){self._options.onChange(input);});qq.attach(input,'mouseover',function(){qq.addClass(self._element,self._options.hoverClass);});qq.attach(input,'mouseout',function(){qq.removeClass(self._element,self._options.hoverClass);});qq.attach(input,'focus',function(){qq.addClass(self._element,self._options.focusClass);});qq.attach(input,'blur',function(){qq.removeClass(self._element,self._options.focusClass);});if(window.attachEvent){input.setAttribute('tabIndex',"-1");}return input;}};qq.UploadHandlerAbstract=function(o){this._options={debug:false,action:'/upload.php',maxConnections:999,onProgress:function(id,fileName,loaded,total){},onComplete:function(id,fileName,response){},onCancel:function(id,fileName){}};qq.extend(this._options,o);this._queue=[];this._params=[];};qq.UploadHandlerAbstract.prototype={log:function(str){if(this._options.debug&&window.console)console.log('[uploader] '+str);},add:function(file){},upload:function(id,params){var len=this._queue.push(id);var copy={};qq.extend(copy,params);this._params[id]=copy;if(len<=this._options.maxConnections){this._upload(id,this._params[id]);}},cancel:function(id){this._cancel(id);this._dequeue(id);},cancelAll:function(){for(var i=0;i<this._queue.length;i++){this._cancel(this._queue[i]);}this._queue=[];},getName:function(id){},getSize:function(id){},getQueue:function(){return this._queue;},_upload:function(id){},_cancel:function(id){},_dequeue:function(id){var i=qq.indexOf(this._queue,id);this._queue.splice(i,1);var max=this._options.maxConnections;if(this._queue.length>=max&&i<max){var nextId=this._queue[max-1];this._upload(nextId,this._params[nextId]);}}};qq.UploadHandlerForm=function(o){qq.UploadHandlerAbstract.apply(this,arguments);this._inputs={};};qq.extend(qq.UploadHandlerForm.prototype,qq.UploadHandlerAbstract.prototype);qq.extend(qq.UploadHandlerForm.prototype,{add:function(fileInput){fileInput.setAttribute('name','qqfile');var id='qq-upload-handler-iframe'+qq.getUniqueId();this._inputs[id]=fileInput;if(fileInput.parentNode){qq.remove(fileInput);}return id;},getName:function(id){return this._inputs[id].value.replace(/.*(\/|\\)/,"");},_cancel:function(id){this._options.onCancel(id,this.getName(id));delete this._inputs[id];var iframe=document.getElementById(id);if(iframe){iframe.setAttribute('src','javascript:false;');qq.remove(iframe);}},_upload:function(id,params){var input=this._inputs[id];if(!input){throw new Error('file with passed id was not added, or already uploaded or cancelled');}var fileName=this.getName(id);var iframe=this._createIframe(id);var form=this._createForm(iframe,params);form.appendChild(input);var self=this;this._attachLoadEvent(iframe,function(){self.log('iframe loaded');var response=self._getIframeContentJSON(iframe);self._options.onComplete(id,fileName,response);self._dequeue(id);delete self._inputs[id];setTimeout(function(){qq.remove(iframe);},1);});form.submit();qq.remove(form);return id;},_attachLoadEvent:function(iframe,callback){qq.attach(iframe,'load',function(){if(!iframe.parentNode){return;}if(iframe.contentDocument&&iframe.contentDocument.body&&iframe.contentDocument.body.innerHTML=="false"){return;}callback();});},_getIframeContentJSON:function(iframe){var doc=iframe.contentDocument?iframe.contentDocument:iframe.contentWindow.document,response;this.log("converting iframe's innerHTML to JSON");this.log("innerHTML = "+doc.body.innerHTML);try{response=eval("("+doc.body.innerHTML+")");}catch(err){response={};}return response;},_createIframe:function(id){var iframe=qq.toElement('<iframe src="javascript:false;" name="'+id+'" />');iframe.setAttribute('id',id);iframe.style.display='none';document.body.appendChild(iframe);return iframe;},_createForm:function(iframe,params){var form=qq.toElement('<form method="post" enctype="multipart/form-data"></form>');var queryString=qq.obj2url(params,this._options.action);form.setAttribute('action',queryString);form.setAttribute('target',iframe.name);form.style.display='none';document.body.appendChild(form);return form;}});qq.UploadHandlerXhr=function(o){qq.UploadHandlerAbstract.apply(this,arguments);this._files=[];this._xhrs=[];this._loaded=[];};qq.UploadHandlerXhr.isSupported=function(){var input=document.createElement('input');input.type='file';return('multiple'in input&&typeof File!="undefined"&&typeof(new XMLHttpRequest()).upload!="undefined");};qq.extend(qq.UploadHandlerXhr.prototype,qq.UploadHandlerAbstract.prototype);qq.extend(qq.UploadHandlerXhr.prototype,{add:function(file){if(!(file instanceof File)){throw new Error('Passed obj in not a File (in qq.UploadHandlerXhr)');}return this._files.push(file)-1;},getName:function(id){var file=this._files[id];return file.fileName!=null?file.fileName:file.name;},getSize:function(id){var file=this._files[id];return file.fileSize!=null?file.fileSize:file.size;},getLoaded:function(id){return this._loaded[id]||0;},_upload:function(id,params){var file=this._files[id],name=this.getName(id),size=this.getSize(id);this._loaded[id]=0;var xhr=this._xhrs[id]=new XMLHttpRequest();var self=this;xhr.upload.onprogress=function(e){if(e.lengthComputable){self._loaded[id]=e.loaded;self._options.onProgress(id,name,e.loaded,e.total);}};xhr.onreadystatechange=function(){if(xhr.readyState==4){self._onComplete(id,xhr);}};params=params||{};params['qqfile']=name;var queryString=qq.obj2url(params,this._options.action);xhr.open("POST",queryString,true);xhr.setRequestHeader("X-Requested-With","XMLHttpRequest");xhr.setRequestHeader("X-File-Name",encodeURIComponent(name));xhr.setRequestHeader("Content-Type","application/octet-stream");xhr.send(file);},_onComplete:function(id,xhr){if(!this._files[id])return;var name=this.getName(id);var size=this.getSize(id);this._options.onProgress(id,name,size,size);if(xhr.status==200){this.log("xhr - server response received");this.log("responseText = "+xhr.responseText);var response;try{response=eval("("+xhr.responseText+")");}catch(err){response={};}this._options.onComplete(id,name,response);}else{this._options.onComplete(id,name,{});}this._files[id]=null;this._xhrs[id]=null;this._dequeue(id);},_cancel:function(id){this._options.onCancel(id,this.getName(id));this._files[id]=null;if(this._xhrs[id]){this._xhrs[id].abort();this._xhrs[id]=null;}}});qq.extend(qq.FileUploader.prototype,{_createUploadHandler:function(){var self=this,handlerClass;if(qq.UploadHandlerXhr.isSupported()){handlerClass='UploadHandlerXhr';}else{handlerClass='UploadHandlerForm';}var handler=new qq[handlerClass]({debug:this._options.debug,action:this._options.action,maxConnections:this._options.maxConnections,onProgress:function(id,fileName,loaded,total){self._onProgress(id,fileName,loaded,total);self._options.onProgress(id,fileName,loaded,total);},onComplete:function(id,fileName,result){self._onComplete(id,fileName,result);self._options.onComplete(id,fileName,result);},onCancel:function(id,fileName){self._onCancel(id,fileName);self._options.onCancel(id,fileName);},onUpload:function(){self._onUpload();}});return handler;},_onUpload:function(){this._handler.uploadAll(this._options.params);},_uploadFile:function(fileContainer){var id=this._handler.add(fileContainer);var fileName=this._handler.getName(id);if(this._options.onSubmit(id,fileName)!==false){this._onSubmit(id,fileName);}},_addToList:function(id,fileName){var item=qq.toElement(this._options.fileTemplate);item.qqFileId=id;var fileElement=this._find(item,'file');qq.setText(fileElement,fileName);this._find(item,'size').style.display='none';var nameElement=this._find(item,'nameInput');fileName=fileName.toLowerCase();fileName=fileName.replace(/([ !"#$%&\'()+,\/;<=>?@[\]^`{|}~:]+)/g,'_');fileName=fileName.replace(/^_+/,'');nameElement.value=fileName;nameElement.id='mediamanager__upload_item'+id;this._listElement.appendChild(item);}});qq.FileUploaderExtended=function(o){qq.FileUploaderBasic.apply(this,arguments);qq.extend(this._options,{element:null,listElement:null,template:'<div class="qq-uploader">'+'<div class="qq-upload-drop-area"><span>'+LANG.media_drop+'</span></div>'+'<div class="qq-upload-button">'+LANG.media_select+'</div>'+'<ul class="qq-upload-list"></ul>'+'<div class="qq-action-container">'+'  <button class="qq-upload-action" type="submit" id="mediamanager__upload_button">'+LANG.media_upload_btn+'</button>'+'  <label class="qq-overwrite-check"><input type="checkbox" value="1" name="ow" class="dw__ow"> <span>'+LANG.media_overwrt+'</span></label>'+'</div>'+'</div>',fileTemplate:'<li>'+'<span class="qq-upload-file hidden"></span>'+'  <input class="qq-upload-name-input edit" type="text" value="" />'+'  <span class="qq-upload-spinner hidden"></span>'+'  <span class="qq-upload-size"></span>'+'  <a class="qq-upload-cancel" href="#">'+LANG.media_cancel+'</a>'+'  <span class="qq-upload-failed-text error">Failed</span>'+'</li>',classes:{button:'qq-upload-button',drop:'qq-upload-drop-area',dropActive:'qq-upload-drop-area-active',list:'qq-upload-list',nameInput:'qq-upload-name-input',overwriteInput:'qq-overwrite-check',uploadButton:'qq-upload-action',file:'qq-upload-file',spinner:'qq-upload-spinner',size:'qq-upload-size',cancel:'qq-upload-cancel',success:'qq-upload-success',fail:'qq-upload-fail',failedText:'qq-upload-failed-text'}});qq.extend(this._options,o);this._element=this._options.element;this._element.innerHTML=this._options.template;this._listElement=this._options.listElement||this._find(this._element,'list');this._classes=this._options.classes;this._button=this._createUploadButton(this._find(this._element,'button'));this._bindCancelEvent();this._bindUploadEvent();this._setupDragDrop();};qq.extend(qq.FileUploaderExtended.prototype,qq.FileUploader.prototype);qq.extend(qq.FileUploaderExtended.prototype,{_bindUploadEvent:function(){var self=this,list=this._listElement;qq.attach(document.getElementById('mediamanager__upload_button'),'click',function(e){e=e||window.event;var target=e.target||e.srcElement;qq.preventDefault(e);self._handler._options.onUpload();jQuery(".qq-upload-name-input").each(function(i){jQuery(this).attr('disabled','disabled');});});},_onComplete:function(id,fileName,result){this._filesInProgress--;var item=this._getItemByFileId(id);qq.remove(this._find(item,'cancel'));qq.remove(this._find(item,'spinner'));var nameInput=this._find(item,'nameInput');var fileElement=this._find(item,'file');qq.setText(fileElement,nameInput.value);qq.removeClass(fileElement,'hidden');qq.remove(nameInput);jQuery('.qq-upload-button, #mediamanager__upload_button').remove();jQuery('.dw__ow').parent().hide();jQuery('.qq-upload-drop-area').remove();if(result.success){qq.addClass(item,this._classes.success);$link='<a href="'+result.link+'" id="h_:'+result.id+'" class="select">'+nameInput.value+'</a>';jQuery(fileElement).html($link);}else{qq.addClass(item,this._classes.fail);var fail=this._find(item,'failedText');if(result.error)qq.setText(fail,result.error);}if(document.getElementById('media__content')&&!document.getElementById('mediamanager__done_form')){var action=document.location.href;var i=action.indexOf('?');if(i)action=action.substr(0,i);var button='<form method="post" action="'+action+'" id="mediamanager__done_form"><div>';button+='<input type="hidden" value="'+result.ns+'" name="ns">';button+='<input type="hidden" value="1" name="recent">';button+='<button type="submit">'+LANG.media_done_btn+'</button></div></form>';jQuery('#mediamanager__uploader').append(button);}}});qq.extend(qq.UploadHandlerForm.prototype,{uploadAll:function(params){this._uploadAll(params);},getName:function(id){var file=this._inputs[id];var name=document.getElementById('mediamanager__upload_item'+id);if(name!=null){return name.value;}else{if(file!=null){return file.value.replace(/.*(\/|\\)/,"");}else{return null;}}},_uploadAll:function(params){jQuery(".qq-upload-spinner").each(function(i){jQuery(this).removeClass('hidden');});for(key in this._inputs){this.upload(key,params);}},_upload:function(id,params){var input=this._inputs[id];if(!input){throw new Error('file with passed id was not added, or already uploaded or cancelled');}var fileName=this.getName(id);var iframe=this._createIframe(id);var form=this._createForm(iframe,params);form.appendChild(input);var nameInput=qq.toElement('<input name="mediaid" value="'+fileName+'" type="text">');form.appendChild(nameInput);var checked=jQuery('.dw__ow').is(':checked');var owCheckbox=jQuery('.dw__ow').clone();owCheckbox.attr('checked',checked);jQuery(form).append(owCheckbox);var self=this;this._attachLoadEvent(iframe,function(){self.log('iframe loaded');var response=self._getIframeContentJSON(iframe);self._options.onComplete(id,fileName,response);self._dequeue(id);delete self._inputs[id];setTimeout(function(){qq.remove(iframe);},1);});form.submit();qq.remove(form);return id;}});qq.extend(qq.UploadHandlerXhr.prototype,{uploadAll:function(params){this._uploadAll(params);},getName:function(id){var file=this._files[id];var name=document.getElementById('mediamanager__upload_item'+id);if(name!=null){return name.value;}else{if(file!=null){return file.fileName!=null?file.fileName:file.name;}else{return null;}}},getSize:function(id){var file=this._files[id];if(file==null)return null;return file.fileSize!=null?file.fileSize:file.size;},_upload:function(id,params){var file=this._files[id],name=this.getName(id),size=this.getSize(id);if(name==null||size==null)return;this._loaded[id]=0;var xhr=this._xhrs[id]=new XMLHttpRequest();var self=this;xhr.upload.onprogress=function(e){if(e.lengthComputable){self._loaded[id]=e.loaded;self._options.onProgress(id,name,e.loaded,e.total);}};xhr.onreadystatechange=function(){if(xhr.readyState==4){self._onComplete(id,xhr);}};params=params||{};params['qqfile']=name;params['ow']=jQuery('.dw__ow').is(':checked');var queryString=qq.obj2url(params,this._options.action);xhr.open("POST",queryString,true);xhr.setRequestHeader("X-Requested-With","XMLHttpRequest");xhr.setRequestHeader("X-File-Name",encodeURIComponent(name));xhr.setRequestHeader("Content-Type","application/octet-stream");xhr.send(file);},_uploadAll:function(params){jQuery(".qq-upload-spinner").each(function(i){jQuery(this).removeClass('hidden');});for(key in this._files){this.upload(key,params);}}});function substr_replace(str,replace,start,length){var a2,b1;a2=(start<0?str.length:0)+start;if(typeof length==='undefined'){length=str.length-a2;}else if(length<0&&start<0&&length<=start){length=0;}b1=(length<0?str.length:a2)+length;return str.substring(0,a2)+replace+str.substring(b1);}function bind(fnc){var Aps=Array.prototype.slice,static_args=Aps.call(arguments,1);return function(){return fnc.apply(this,static_args.concat(Aps.call(arguments,0)));};}function logError(e,file){if(window.console&&console.error){console.error('The error "%s: %s" occurred in file "%s". '+'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);}}}var timer={_cur_id:0,_handlers:{},execDispatch:function(id){timer._handlers[id]();},add:function(func,timeout){var id=++timer._cur_id;timer._handlers[id]=func;return window.setTimeout('timer.execDispatch('+id+')',timeout);}};function Delay(func,timeout){this.func=func;if(timeout){this.timeout=timeout;}}Delay.prototype={func:null,timeout:500,delTimer:function(){if(this.timer!==null){window.clearTimeout(this.timer);this.timer=null;}},start:function(){DEPRECATED('don\'t use the Delay object, use window.timeout with a callback instead');this.delTimer();var _this=this;this.timer=timer.add(function(){_this.exec.call(_this);},this.timeout);this._data={_this:arguments[0],_params:Array.prototype.slice.call(arguments,2)};},exec:function(){this.delTimer();this.func.call(this._data._this,this._data._params);}};var DokuCookie={data:{},name:'DOKU_PREFS',setValue:function(key,val){var text=[],_this=this;this.init();this.data[key]=val;jQuery.each(_this.data,function(key,val){if(_this.data.hasOwnProperty(key)){text.push(encodeURIComponent(key)+'#'+encodeURIComponent(val));}});jQuery.cookie(this.name,text.join('#'),{expires:365,path:DOKU_COOKIE_PARAM.path,secure:DOKU_COOKIE_PARAM.secure});},getValue:function(key){this.init();return this.data[key];},init:function(){var text,parts,i;if(!jQuery.isEmptyObject(this.data)){return;}text=jQuery.cookie(this.name);if(text){parts=text.split('#');for(i=0;i<parts.length;i+=2){this.data[decodeURIComponent(parts[i])]=decodeURIComponent(parts[i+1]);}}}};if('function'===typeof jQuery&&'function'===typeof jQuery.noConflict){jQuery.noConflict();}var clientPC=navigator.userAgent.toLowerCase();var is_macos=navigator.appVersion.indexOf('Mac')!=-1;var is_gecko=((clientPC.indexOf('gecko')!=-1)&&(clientPC.indexOf('spoofer')==-1)&&(clientPC.indexOf('khtml')==-1)&&(clientPC.indexOf('netscape/7.0')==-1));var is_safari=((clientPC.indexOf('applewebkit')!=-1)&&(clientPC.indexOf('spoofer')==-1));var is_khtml=(navigator.vendor=='KDE'||(document.childNodes&&!document.all&&!navigator.taintEnabled));if(clientPC.indexOf('opera')!=-1){var is_opera=true;var is_opera_preseven=(window.opera&&!document.childNodes);var is_opera_seven=(window.opera&&document.childNodes);}function closePopups(){jQuery('div.JSpopup').hide();}jQuery(function(){jQuery(document).click(closePopups);});jQuery.fn.dw_qsearch=function(overrides){var dw_qsearch={output:'#qsearch__out',$inObj:this,$outObj:null,timer:null,curRequest:null,init:function(){var do_qsearch;dw_qsearch.$outObj=jQuery(dw_qsearch.output);if(dw_qsearch.$inObj.length===0||dw_qsearch.$outObj.length===0){return;}do_qsearch=function(){if(dw_qsearch.curRequest!=null){dw_qsearch.curRequest.abort();}var value=dw_qsearch.getSearchterm();if(value===''){dw_qsearch.clear_results();return;}dw_qsearch.$inObj.parents('form').addClass('searching');dw_qsearch.curRequest=jQuery.post(DOKU_BASE+'lib/exe/ajax.php',{call:'qsearch',q:encodeURI(value)},dw_qsearch.onCompletion,'html');};dw_qsearch.$inObj.keyup(function(){if(dw_qsearch.timer){window.clearTimeout(dw_qsearch.timer);dw_qsearch.timer=null;}dw_qsearch.timer=window.setTimeout(do_qsearch,500);});dw_qsearch.$outObj.click(dw_qsearch.clear_results);},getSearchterm:function(){return dw_qsearch.$inObj.val();},clear_results:function(){dw_qsearch.$inObj.parents('form').removeClass('searching');dw_qsearch.$outObj.hide();dw_qsearch.$outObj.text('');},onCompletion:function(data){var max,$links,too_big;dw_qsearch.$inObj.parents('form').removeClass('searching');dw_qsearch.curRequest=null;if(data===''){dw_qsearch.clear_results();return;}dw_qsearch.$outObj .html(data).show().css('white-space','nowrap');dw_qsearch.$outObj.find('li').css('overflow','visible');$links=dw_qsearch.$outObj.find('a');max=dw_qsearch.$outObj[0].clientWidth;if(document.documentElement.dir==='rtl'){max-=parseInt(dw_qsearch.$outObj.css('padding-left'));too_big=function(l){return l.offsetLeft<0;};}else{max-=parseInt(dw_qsearch.$outObj.css('padding-right'));too_big=function(l){return l.offsetWidth+l.offsetLeft>max;};}$links.each(function(){var start,length,replace,nsL,nsR,eli,runaway;if(!too_big(this)){return;}nsL=this.textContent.indexOf('(');nsR=this.textContent.indexOf(')');eli=0;runaway=0;while((nsR-nsL>3)&&too_big(this)&&runaway++<500){if(eli!==0){if((eli-nsL)>(nsR-eli)){start=eli-2;length=2;}else{start=eli+1;length=1;}replace='';}else{start=Math.floor(nsL+((nsR-nsL)/2));length=1;replace='…';}this.textContent=substr_replace(this.textContent,replace,start,length);eli=this.textContent.indexOf('…');nsL=this.textContent.indexOf('(');nsR=this.textContent.indexOf(')');}});dw_qsearch.$outObj.find('li').css('overflow','hidden').css('text-overflow','ellipsis');}};jQuery.extend(dw_qsearch,overrides);if(!overrides.deferInit){dw_qsearch.init();}return dw_qsearch;};jQuery(function(){jQuery('#qsearch__in').dw_qsearch({output:'#qsearch__out'});});jQuery(function(){'use strict';const $searchForm=jQuery('.search-results-form');if(!$searchForm.length){return;}const $toggleAssistanceButton=jQuery('<button>').addClass('toggleAssistant').attr('type','button').attr('aria-expanded','false').text(LANG.search_toggle_tools).prependTo($searchForm.find('fieldset'));$toggleAssistanceButton.on('click',function(){jQuery('.advancedOptions').toggle(0,function(){var $me=jQuery(this);if($me.attr('aria-hidden')){$me.removeAttr('aria-hidden');$toggleAssistanceButton.attr('aria-expanded','true');DokuCookie.setValue('sa','on');}else{$me.attr('aria-hidden','true');$toggleAssistanceButton.attr('aria-expanded','false');DokuCookie.setValue('sa','off');}});});if(DokuCookie.getValue('sa')==='on'){$toggleAssistanceButton.click();}$searchForm.find('.advancedOptions .toggle div.current').on('click',function(){var $me=jQuery(this);$me.parent().siblings().removeClass('open');$me.parent().siblings().find('ul:first').attr('aria-expanded','false');$me.parent().toggleClass('open');if($me.parent().hasClass('open')){$me.parent().find('ul:first').attr('aria-expanded','true');}else{$me.parent().find('ul:first').attr('aria-expanded','false');}});});jQuery.fn.dw_tree=function(overrides){var dw_tree={throbber_delay:500,$obj:this,toggle_selector:'a.idx_dir',init:function(){this.$obj.on('click',this.toggle_selector,this,this.toggle);jQuery('ul:first',this.$obj).attr('role','tree');jQuery('ul',this.$obj).not(':first').attr('role','group');jQuery('li',this.$obj).attr('role','treeitem');jQuery('li.open > ul',this.$obj).attr('aria-expanded','true');jQuery('li.closed > ul',this.$obj).attr('aria-expanded','false');jQuery('li.closed',this.$obj).attr('aria-live','assertive');},toggle:function(e){var $listitem,$sublist,timeout,$clicky,show_sublist,dw_tree,opening;e.preventDefault();dw_tree=e.data;$clicky=jQuery(this);$listitem=$clicky.closest('li');$sublist=$listitem.find('ul').first();opening=$listitem.hasClass('closed');dw_tree.toggle_display($clicky,opening);if($sublist.is(':visible')){$listitem.removeClass('open').addClass('closed');$sublist.attr('aria-expanded','false');}else{$listitem.removeClass('closed').addClass('open');$sublist.attr('aria-expanded','true');}if(!opening){$sublist.dw_hide();return;}show_sublist=function(data){$sublist.hide();if(typeof data!=='undefined'){$sublist.html(data);$sublist.parent().attr('aria-busy','false').removeAttr('aria-live');jQuery('li.closed',$sublist).attr('aria-live','assertive');}if($listitem.hasClass('open')){$sublist.dw_show();}};if($sublist.length>0){show_sublist();return;}$sublist=jQuery('<ul class="idx" role="group"/>');$listitem.append($sublist);timeout=window.setTimeout(bind(show_sublist,'<li aria-busy="true"><img src="'+DOKU_BASE+'lib/images/throbber.gif" alt="loading..." title="loading..." /></li>'),dw_tree.throbber_delay);dw_tree.load_data(function(data){window.clearTimeout(timeout);show_sublist(data);},$clicky);},toggle_display:function($clicky,opening){},load_data:function(show_data,$clicky){show_data();}};jQuery.extend(dw_tree,overrides);if(!overrides.deferInit){dw_tree.init();}return dw_tree;};var dw_index=jQuery('#index__tree').dw_tree({deferInit:true,load_data:function(show_sublist,$clicky){jQuery.post(DOKU_BASE+'lib/exe/ajax.php',$clicky[0].search.substr(1)+'&call=index',show_sublist,'html');}});jQuery(function(){var $tree=jQuery('#index__tree');dw_index.$obj=$tree;dw_index.init();});function selection_class(){this.start=0;this.end=0;this.obj=null;this.scroll=0;this.fix=0;this.getLength=function(){return this.end-this.start;};this.getText=function(){return(!this.obj)?'':this.obj.value.substring(this.start,this.end);};}function DWgetSelection(textArea){var sel=new selection_class();textArea.focus();sel.obj=textArea;sel.start=textArea.selectionStart;sel.end=textArea.selectionEnd;sel.scroll=textArea.scrollTop;return sel;}function DWsetSelection(selection){selection.obj.setSelectionRange(selection.start,selection.end);if(selection.scroll)selection.obj.scrollTop=selection.scroll;}function pasteText(selection,text,opts){if(!opts)opts={};selection.obj.value=selection.obj.value.substring(0,selection.start)+text+selection.obj.value.substring(selection.end,selection.obj.value.length);if(is_opera){selection.end=selection.start+text.replace(/\r?\n/g,'\r\n').length;}else{selection.end=selection.start+text.length;}if(opts.startofs)selection.start+=opts.startofs;if(opts.endofs)selection.end-=opts.endofs;if(opts.nosel)selection.start=selection.end;DWsetSelection(selection);}function insertTags(textAreaID,tagOpen,tagClose,sampleText){var txtarea=jQuery('#'+textAreaID)[0];var selection=DWgetSelection(txtarea);var text=selection.getText();var opts;if(text.charAt(text.length-1)==' '){selection.end--;text=selection.getText();}if(!text){text=sampleText;opts={startofs:tagOpen.length,endofs:tagClose.length};}else{opts={nosel:true};}text=tagOpen+text+tagClose;pasteText(selection,text,opts);}function insertAtCarret(textAreaID,text){var txtarea=jQuery('#'+textAreaID)[0];var selection=DWgetSelection(txtarea);pasteText(selection,text,{nosel:true});}var pickercounter=0;function initToolbar(tbid,edid,tb,allowblock){var $toolbar,$edit;if(typeof tbid=='string'){$toolbar=jQuery('#'+tbid);}else{$toolbar=jQuery(tbid);}$edit=jQuery('#'+edid);if($toolbar.length==0||$edit.length==0||$edit.attr('readOnly')){return;}if(typeof allowblock==='undefined'){allowblock=true;}$toolbar.html('');jQuery.each(tb,function(k,val){if(!tb.hasOwnProperty(k)||(!allowblock&&val.block===true)){return;}var actionFunc,$btn;$btn=jQuery(createToolButton(val.icon,val.title,val.key,val.id,val['class']));actionFunc='tb_'+val.type;if(jQuery.isFunction(window[actionFunc])){$btn.on('click',bind(window[actionFunc],$btn,val,edid));$toolbar.append($btn);return;}actionFunc='addBtnAction'+val.type.charAt(0).toUpperCase()+val.type.substring(1);if(jQuery.isFunction(window[actionFunc])){var pickerid=window[actionFunc]($btn,val,edid);if(pickerid!==''){$toolbar.append($btn);$btn.attr('aria-controls',pickerid);if(actionFunc==='addBtnActionPicker'){$btn.attr('aria-haspopup','true');}}return;}alert('unknown toolbar type: '+val.type+'  '+actionFunc);});}function tb_format(btn,props,edid){var sample=props.sample||props.title;insertTags(edid,fixtxt(props.open),fixtxt(props.close),fixtxt(sample));pickerClose();return false;}function tb_formatln(btn,props,edid){var sample=props.sample||props.title,opts,selection=DWgetSelection(jQuery('#'+edid)[0]);sample=fixtxt(sample);props.open=fixtxt(props.open);props.close=fixtxt(props.close);if(selection.getLength()){sample=selection.getText();opts={nosel:true};}else{opts={startofs:props.open.length,endofs:props.close.length};}sample=sample.split("\n").join(props.close+"\n"+props.open);sample=props.open+sample+props.close;pasteText(selection,sample,opts);pickerClose();return false;}function tb_insert(btn,props,edid){insertAtCarret(edid,fixtxt(props.insert));pickerClose();return false;}function tb_mediapopup(btn,props,edid){window.open(DOKU_BASE+props.url+encodeURIComponent(NS)+'&edid='+encodeURIComponent(edid),props.name,props.options);return false;}function tb_autohead(btn,props,edid){var lvl=currentHeadlineLevel(edid),tags;lvl+=props.mod;if(lvl<1)lvl=1;if(lvl>5)lvl=5;tags=(new Array(8-lvl)).join('=');insertTags(edid,tags+' ',' '+tags+"\n",props.text);pickerClose();return false;}function addBtnActionPicker($btn,props,edid){var pickerid='picker'+(pickercounter++);var picker=createPicker(pickerid,props,edid);jQuery(picker).attr('aria-hidden','true');$btn.click(function(e){pickerToggle(pickerid,$btn);e.preventDefault();return'';});return pickerid;}function addBtnActionLinkwiz($btn,props,edid){dw_linkwiz.init(jQuery('#'+edid));jQuery($btn).click(function(e){dw_linkwiz.val=props;dw_linkwiz.toggle();e.preventDefault();return'';});return'link__wiz';}function pickerToggle(pickerid,$btn){var $picker=jQuery('#'+pickerid),pos=$btn.offset();if($picker.hasClass('a11y')){$picker.removeClass('a11y').attr('aria-hidden','false');}else{$picker.addClass('a11y').attr('aria-hidden','true');}var picker_left=pos.left+3,picker_width=$picker.width(),window_width=jQuery(window).width();if(picker_width>300){$picker.css("max-width","300");picker_width=300;}if((picker_left+picker_width+40)>window_width){picker_left=window_width-picker_width-40;}if(picker_left<0){picker_left=0;}$picker.offset({left:picker_left,top:pos.top+$btn[0].offsetHeight+3});}function pickerClose(){jQuery('.picker').addClass('a11y');}function fixtxt(str){return str.replace(/\\n/g,"\n");}jQuery(function(){initToolbar('tool__bar','wiki__text',toolbar);jQuery('#tool__bar').attr('role','toolbar');});function createToolButton(icon,label,key,id,classname){var $btn=jQuery(document.createElement('button')),$ico=jQuery(document.createElement('img'));$btn.addClass('toolbutton');if(classname){$btn.addClass(classname);}$btn.attr('title',label).attr('aria-controls','wiki__text');if(key){$btn.attr('title',label+' ['+key.toUpperCase()+']').attr('accessKey',key);}if(id){$btn.attr('id',id);$ico.attr('id',id+'_ico');}if(icon.substr(0,1)!=='/'){icon=DOKU_BASE+'lib/images/toolbar/'+icon;}$ico.attr('src',icon);$ico.attr('alt','');$ico.attr('width',16);$ico.attr('height',16);$btn.append($ico);return $btn[0];}function createPicker(id,props,edid){var $picker=jQuery(document.createElement('div'));$picker.addClass('picker a11y');if(props['class']){$picker.addClass(props['class']);}$picker.attr('id',id).css('position','absolute');function $makebutton(title){var $btn=jQuery(document.createElement('button')).addClass('pickerbutton').attr('title',title).attr('aria-controls',edid).on('click',bind(pickerInsert,title,edid)).appendTo($picker);return $btn;}jQuery.each(props.list,function(key,item){if(!props.list.hasOwnProperty(key)){return;}if(isNaN(key)){if(item.substr(0,1)!=='/'){item=DOKU_BASE+'lib/images/'+props.icobase+'/'+item;}jQuery(document.createElement('img')).attr('src',item).attr('alt','').appendTo($makebutton(key));}else if(typeof item=='string'){$makebutton(item).text(item);}else{initToolbar($picker,edid,props.list);return false;}});jQuery('body').append($picker);return $picker[0];}function pickerInsert(text,edid){insertAtCarret(edid,text);pickerClose();}function addBtnActionSignature($btn,props,edid){if(typeof SIG!='undefined'&&SIG!=''){$btn.on('click',function(e){insertAtCarret(edid,SIG);e.preventDefault();});return edid;}return'';}function currentHeadlineLevel(textboxId){var field=jQuery('#'+textboxId)[0],s=false,opts=[field.value.substr(0,DWgetSelection(field).start)];if(field.form.prefix){opts.push(field.form.prefix.value);}jQuery.each(opts,function(_,opt){var str="\n"+opt,lasthl=str.lastIndexOf("\n==");if(lasthl!==-1){s=str.substr(lasthl+1,6);return false;}});if(s===false){return 0;}return 7-s.match(/^={2,6}/)[0].length;}window.textChanged=false;window.doku_edit_text_content='';function deleteDraft(){if(is_opera||window.keepDraft){return;}var $dwform=jQuery('#dw__editform');if($dwform.length===0){return;}jQuery.post(DOKU_BASE+'lib/exe/ajax.php',{call:'draftdel',id:$dwform.find('input[name=id]').val()});}jQuery(function(){var $editform=jQuery('#dw__editform');if($editform.length==0){return;}var $edit_text=jQuery('#wiki__text');if($edit_text.length>0){if($edit_text.attr('readOnly')){return;}var sel=DWgetSelection($edit_text[0]);sel.start=0;sel.end=0;DWsetSelection(sel);$edit_text.focus();doku_edit_text_content=$edit_text.val();}var changeHandler=function(){doku_hasTextBeenModified();doku_summaryCheck();};$editform.change(changeHandler);$editform.keydown(changeHandler);window.onbeforeunload=function(){if(window.textChanged){return LANG.notsavedyet;}};window.onunload=deleteDraft;jQuery('#edbtn__save').click(function(){window.onbeforeunload='';textChanged=false;});jQuery('#edbtn__preview').click(function(){window.onbeforeunload='';textChanged=false;window.keepDraft=true;});var $summary=jQuery('#edit__summary');$summary.change(doku_summaryCheck);$summary.keyup(doku_summaryCheck);if(textChanged)doku_summaryCheck();});function doku_hasTextBeenModified(){if(!textChanged){var $edit_text=jQuery('#wiki__text');if($edit_text.length>0){textChanged=doku_edit_text_content!=$edit_text.val();}else{textChanged=true;}}}function doku_summaryCheck(){var $sum=jQuery('#edit__summary'),missing=$sum.val()==='';$sum.toggleClass('missing',missing).toggleClass('edit',!missing);}var dw_editor={init:function(){var $editor=jQuery('#wiki__text');if($editor.length===0){return;}dw_editor.initSizeCtl('#size__ctl',$editor);if($editor.attr('readOnly')){return;}$editor.keydown(dw_editor.keyHandler);},initSizeCtl:function(ctlarea,editor){var $ctl=jQuery(ctlarea),$textarea=jQuery(editor);if($ctl.length===0||$textarea.length===0){return;}$textarea.css('height',DokuCookie.getValue('sizeCtl')||'300px');var wrp=DokuCookie.getValue('wrapCtl');if(wrp){dw_editor.setWrap($textarea[0],wrp);}jQuery.each([['larger',function(){dw_editor.sizeCtl(editor,100);}],['smaller',function(){dw_editor.sizeCtl(editor,-100);}],['wrap',function(){dw_editor.toggleWrap(editor);}]],function(_,img){jQuery(document.createElement('img')).attr('src',DOKU_BASE+'lib/images/'+img[0]+'.gif').attr('alt','').click(img[1]).appendTo($ctl);});},sizeCtl:function(editor,val){var $textarea=jQuery(editor),height=parseInt($textarea.css('height'))+val;$textarea.css('height',height+'px');DokuCookie.setValue('sizeCtl',$textarea.css('height'));},toggleWrap:function(editor){var $textarea=jQuery(editor),wrap=$textarea.attr('wrap');dw_editor.setWrap($textarea[0],(wrap&&wrap.toLowerCase()=='off')?'soft':'off');DokuCookie.setValue('wrapCtl',$textarea.attr('wrap'));},setWrap:function(textarea,wrapAttrValue){textarea.setAttribute('wrap',wrapAttrValue);var parNod=textarea.parentNode;var nxtSib=textarea.nextSibling;parNod.removeChild(textarea);parNod.insertBefore(textarea,nxtSib);},keyHandler:function(e){if(jQuery.inArray(e.keyCode,[8,10,13,32])===-1){return;}var selection=DWgetSelection(this);if(selection.getLength()>0){return;}var search="\n"+this.value.substr(0,selection.start);var linestart=Math.max(search.lastIndexOf("\n"),search.lastIndexOf("\r"));search=search.substr(linestart);if((e.keyCode==13||e.keyCode==10)&&e.ctrlKey){jQuery('#edbtn__save').click();e.preventDefault();return false;}else if(e.keyCode==13){var match=search.match(/(\n  +([\*-] ?)?)/);if(match){var scroll=this.scrollHeight;var match2=search.match(/^\n  +[\*-]\s*$/);if(match2&&this.value.substr(selection.start).match(/^($|\r?\n)/)){this.value=this.value.substr(0,linestart)+"\n"+this.value.substr(selection.start);selection.start=linestart+1;selection.end=linestart+1;DWsetSelection(selection);}else{insertAtCarret(this.id,match[1]);}this.scrollTop+=(this.scrollHeight-scroll);e.preventDefault();return false;}}else if(e.keyCode==8){var match=search.match(/(\n  +)([*-] ?)$/);if(match){var spaces=match[1].length-1;if(spaces>3){this.value=this.value.substr(0,linestart)+this.value.substr(linestart+2);selection.start=selection.start-2;selection.end=selection.start;}else{this.value=this.value.substr(0,linestart)+this.value.substr(selection.start);selection.start=linestart;selection.end=linestart;}DWsetSelection(selection);e.preventDefault();return false;}}else if(e.keyCode==32){var match=search.match(/(\n  +)([*-] )$/);if(match){this.value=this.value.substr(0,linestart)+'  '+this.value.substr(linestart);selection.start=selection.start+2;selection.end=selection.start;DWsetSelection(selection);e.preventDefault();return false;}}}};jQuery(dw_editor.init);var dw_locktimer={timeout:0,draft:false,timerID:null,lasttime:null,msg:LANG.willexpire,pageid:'',init:function(timeout,draft,edid){var $edit;edid=edid||'wiki__text';$edit=jQuery('#'+edid);if($edit.length===0||$edit.attr('readonly')){return;}dw_locktimer.timeout=timeout*1000;dw_locktimer.draft=draft;dw_locktimer.lasttime=new Date();dw_locktimer.pageid=jQuery('#dw__editform').find('input[name=id]').val();if(!dw_locktimer.pageid){return;}$edit.keypress(dw_locktimer.refresh);dw_locktimer.reset();},reset:function(){dw_locktimer.clear();dw_locktimer.timerID=window.setTimeout(dw_locktimer.warning,dw_locktimer.timeout);},warning:function(){dw_locktimer.clear();alert(fixtxt(dw_locktimer.msg));},clear:function(){if(dw_locktimer.timerID!==null){window.clearTimeout(dw_locktimer.timerID);dw_locktimer.timerID=null;}},refresh:function(){var now=new Date(),params='call=lock&id='+dw_locktimer.pageid+'&';if(now.getTime()-dw_locktimer.lasttime.getTime()<=30*1000){return;}if(dw_locktimer.draft&&jQuery('#dw__editform').find('textarea[name=wikitext]').length>0){params+=jQuery('#dw__editform').find('input[name=prefix], '+'textarea[name=wikitext], '+'input[name=suffix], '+'input[name=date]').serialize();}jQuery.post(DOKU_BASE+'lib/exe/ajax.php',params,dw_locktimer.refreshed,'html');dw_locktimer.lasttime=now;},refreshed:function(data){var error=data.charAt(0);data=data.substring(1);jQuery('#draft__status').html(data);if(error!='1'){return;}dw_locktimer.reset();}};var dw_linkwiz={$wiz:null,$entry:null,result:null,timer:null,textArea:null,selected:null,selection:null,init:function($editor){var pos=$editor.position();if(dw_linkwiz.$wiz)return;dw_linkwiz.$wiz=jQuery(document.createElement('div')).dialog({autoOpen:false,draggable:true,title:LANG.linkwiz,resizable:false}).html('<div>'+LANG.linkto+' <input type="text" class="edit" id="link__wiz_entry" autocomplete="off" /></div>'+'<div id="link__wiz_result"></div>').parent().attr('id','link__wiz').css({'position':'absolute','top':(pos.top+20)+'px','left':(pos.left+80)+'px'}).hide().appendTo('.dokuwiki:first');dw_linkwiz.textArea=$editor[0];dw_linkwiz.result=jQuery('#link__wiz_result')[0];jQuery(dw_linkwiz.result).css('position','relative');dw_linkwiz.$entry=jQuery('#link__wiz_entry');if(JSINFO.namespace){dw_linkwiz.$entry.val(JSINFO.namespace+':');}jQuery('#link__wiz .ui-dialog-titlebar-close').click(dw_linkwiz.hide);dw_linkwiz.$entry.keyup(dw_linkwiz.onEntry);jQuery(dw_linkwiz.result).on('click','a',dw_linkwiz.onResultClick);},onEntry:function(e){if(e.keyCode==37||e.keyCode==39){return true;}if(e.keyCode==27){dw_linkwiz.hide();e.preventDefault();e.stopPropagation();return false;}if(e.keyCode==38){dw_linkwiz.select(dw_linkwiz.selected-1);e.preventDefault();e.stopPropagation();return false;}if(e.keyCode==40){dw_linkwiz.select(dw_linkwiz.selected+1);e.preventDefault();e.stopPropagation();return false;}if(e.keyCode==13){if(dw_linkwiz.selected>-1){var $obj=dw_linkwiz.$getResult(dw_linkwiz.selected);if($obj.length>0){dw_linkwiz.resultClick($obj.find('a')[0]);}}else if(dw_linkwiz.$entry.val()){dw_linkwiz.insertLink(dw_linkwiz.$entry.val());}e.preventDefault();e.stopPropagation();return false;}dw_linkwiz.autocomplete();},getResult:function(num){DEPRECATED('use dw_linkwiz.$getResult()[0] instead');return dw_linkwiz.$getResult()[0]||null;},$getResult:function(num){return jQuery(dw_linkwiz.result).find('div').eq(num);},select:function(num){if(num<0){dw_linkwiz.deselect();return;}var $obj=dw_linkwiz.$getResult(num);if($obj.length===0){return;}dw_linkwiz.deselect();$obj.addClass('selected');var childPos=$obj.position().top;var yDiff=childPos+$obj.outerHeight()-jQuery(dw_linkwiz.result).innerHeight();if(childPos<0){jQuery(dw_linkwiz.result)[0].scrollTop+=childPos;}else if(yDiff>0){jQuery(dw_linkwiz.result)[0].scrollTop+=yDiff;}dw_linkwiz.selected=num;},deselect:function(){if(dw_linkwiz.selected>-1){dw_linkwiz.$getResult(dw_linkwiz.selected).removeClass('selected');}dw_linkwiz.selected=-1;},onResultClick:function(e){if(!jQuery(this).is('a')){return;}e.stopPropagation();e.preventDefault();dw_linkwiz.resultClick(this);return false;},resultClick:function(a){dw_linkwiz.$entry.val(a.title);if(a.title==''||a.title.substr(a.title.length-1)==':'){dw_linkwiz.autocomplete_exec();}else{if(jQuery(a.nextSibling).is('span')){dw_linkwiz.insertLink(a.nextSibling.innerHTML);}else{dw_linkwiz.insertLink('');}}},insertLink:function(title){var link=dw_linkwiz.$entry.val(),sel,stxt;if(!link){return;}sel=DWgetSelection(dw_linkwiz.textArea);if(sel.start==0&&sel.end==0){sel=dw_linkwiz.selection;}stxt=sel.getText();if(stxt.charAt(stxt.length-1)==' '){sel.end--;stxt=sel.getText();}if(!stxt&&!DOKU_UHC){stxt=title;}if(dw_linkwiz.textArea.form.id.value.indexOf(':')!=-1&&link.indexOf(':')==-1){link=':'+link;}var so=link.length;var eo=0;if(dw_linkwiz.val){if(dw_linkwiz.val.open){so+=dw_linkwiz.val.open.length;link=dw_linkwiz.val.open+link;}link+='|';so+=1;if(stxt){link+=stxt;}if(dw_linkwiz.val.close){link+=dw_linkwiz.val.close;eo=dw_linkwiz.val.close.length;}}pasteText(sel,link,{startofs:so,endofs:eo});dw_linkwiz.hide();var externallinkpattern=new RegExp('^((f|ht)tps?:)?//','i'),entry_value;if(externallinkpattern.test(dw_linkwiz.$entry.val())){if(JSINFO.namespace){entry_value=JSINFO.namespace+':';}else{entry_value='';}}else{entry_value=dw_linkwiz.$entry.val().replace(/[^:]*$/,'')}dw_linkwiz.$entry.val(entry_value);},autocomplete:function(){if(dw_linkwiz.timer!==null){window.clearTimeout(dw_linkwiz.timer);dw_linkwiz.timer=null;}dw_linkwiz.timer=window.setTimeout(dw_linkwiz.autocomplete_exec,350);},autocomplete_exec:function(){var $res=jQuery(dw_linkwiz.result);dw_linkwiz.deselect();$res.html('<img src="'+DOKU_BASE+'lib/images/throbber.gif" alt="" width="16" height="16" />').load(DOKU_BASE+'lib/exe/ajax.php',{call:'linkwiz',q:dw_linkwiz.$entry.val()});},show:function(){dw_linkwiz.selection=DWgetSelection(dw_linkwiz.textArea);dw_linkwiz.$wiz.show();dw_linkwiz.$entry.focus();dw_linkwiz.autocomplete();var temp=dw_linkwiz.$entry.val();dw_linkwiz.$entry.val('');dw_linkwiz.$entry.val(temp);},hide:function(){dw_linkwiz.$wiz.hide();dw_linkwiz.textArea.focus();},toggle:function(){if(dw_linkwiz.$wiz.css('display')=='none'){dw_linkwiz.show();}else{dw_linkwiz.hide();}}};var dw_mediamanager={keepopen:false,hide:false,popup:false,display:false,ext:false,$popup:null,align:false,link:false,size:false,forbidden_opts:{},view_opts:{list:false,sort:false},layout_width:0,minHeights:{thumbs:200,rows:100},init:function(){var $content,$tree;$content=jQuery('#media__content');$tree=jQuery('#media__tree');if(!$tree.length)return;dw_mediamanager.prepare_content($content);dw_mediamanager.attachoptions();dw_mediamanager.initpopup();$content .on('change','#upload__file',dw_mediamanager.suggest).on('click','a.select',dw_mediamanager.select).on('click','#media__content a.btn_media_delete',dw_mediamanager.confirmattach).on('submit','#mediamanager__done_form',dw_mediamanager.list);$tree.dw_tree({toggle_selector:'img',load_data:function(show_sublist,$clicky){var $link=$clicky.parent().find('div.li a.idx_dir');jQuery.post(DOKU_BASE+'lib/exe/ajax.php',$link[0].search.substr(1)+'&call=medians',show_sublist,'html');},toggle_display:function($clicky,opening){$clicky.attr('src',DOKU_BASE+'lib/images/'+(opening?'minus':'plus')+'.gif');}});$tree.on('click','a',dw_mediamanager.list);dw_mediamanager.set_fileview_list();dw_mediamanager.init_options();dw_mediamanager.image_diff();dw_mediamanager.init_ajax_uploader();var $page=jQuery('#mediamanager__page');$page.find('div.filelist').on('click','ul.tabs a',dw_mediamanager.list).on('click','div.panelContent a',dw_mediamanager.details).on('submit','#dw__mediasearch',dw_mediamanager.list).on('change','#upload__file',dw_mediamanager.suggest).on('click','.qq-upload-file a',dw_mediamanager.details);$page.find('div.file').on('click','ul.tabs a',dw_mediamanager.details).on('submit','#mediamanager__btn_update',dw_mediamanager.list).on('submit','#page__revisions',dw_mediamanager.details).on('click','#page__revisions a',dw_mediamanager.details).on('submit','#mediamanager__save_meta',dw_mediamanager.details).on('submit','#mediamanager__btn_delete',dw_mediamanager.details).on('submit','#mediamanager__btn_restore',dw_mediamanager.details).on('submit','.btn_newer, .btn_older',dw_mediamanager.details);dw_mediamanager.update_resizable();dw_mediamanager.layout_width=$page.width();jQuery(window).resize(dw_mediamanager.window_resize);},init_options:function(){var $options=jQuery('div.filelist div.panelHeader form.options'),$listType,$sortBy,$both;if($options.length===0){return;}$listType=$options.find('li.listType');$sortBy=$options.find('li.sortBy');$both=$listType.add($sortBy);$options.find('button[type=submit]').parent().hide();$both.find('label').each(function(){var $this=jQuery(this);$this.children('input').appendTo($this.parent());});$both.find("input[type='radio']").checkboxradio({icon:false});$both.controlgroup();$listType.children('input').change(function(){dw_mediamanager.set_fileview_list();});$sortBy.children('input').change(function(event){dw_mediamanager.set_fileview_sort();dw_mediamanager.list.call(jQuery('#dw__mediasearch')[0]||this,event);});},initpopup:function(){var opts,$insp,$insbtn;dw_mediamanager.$popup=jQuery(document.createElement('div')).attr('id','media__popup_content').dialog({autoOpen:false,width:280,modal:true,draggable:true,title:LANG.mediatitle,resizable:false});opts=[{id:'link',label:LANG.mediatarget,btns:['lnk','direct','nolnk','displaylnk']},{id:'align',label:LANG.mediaalign,btns:['noalign','left','center','right']},{id:'size',label:LANG.mediasize,btns:['small','medium','large','original']}];jQuery.each(opts,function(_,opt){var $p,$l;$p=jQuery(document.createElement('p')).attr('id','media__'+opt.id);if(dw_mediamanager.display==="2"){$p.hide();}$l=jQuery(document.createElement('label')).text(opt.label);$p.append($l);jQuery.each(opt.btns,function(i,text){var $btn,$img;$btn=jQuery(document.createElement('button')).addClass('button').attr('id',"media__"+opt.id+"btn"+(i+1)).attr('title',LANG['media'+text]).click(bind(dw_mediamanager.setOpt,opt.id));$img=jQuery(document.createElement('img')).attr('src',DOKU_BASE+'lib/images/media_'+opt.id+'_'+text+'.png');$btn.append($img);$p.append($btn);});dw_mediamanager.$popup.append($p);});$insp=jQuery(document.createElement('p'));dw_mediamanager.$popup.append($insp);$insbtn=jQuery(document.createElement('input')).attr('id','media__sendbtn').attr('type','button').addClass('button').val(LANG.mediainsert);$insp.append($insbtn);},insert:function(id){var opts,cb,edid,s;dw_mediamanager.$popup.dialog('close');opts='';if({img:1,swf:1}[dw_mediamanager.ext]===1){if(dw_mediamanager.link==='4'){opts='?linkonly';}else{if(dw_mediamanager.link==="3"&&dw_mediamanager.ext==='img'){opts='?nolink';}else if(dw_mediamanager.link==="2"&&dw_mediamanager.ext==='img'){opts='?direct';}s=parseInt(dw_mediamanager.size,10);var size=s*200;if(s&&s>=1&&s<4){opts+=(opts.length)?'&':'?';opts+=size;if(dw_mediamanager.ext==='swf'){switch(s){case 1:opts+='x62';break;case 2:opts+='x123';break;case 3:opts+='x185';break;}}}}}edid=String.prototype.match.call(document.location,/&edid=([^&]+)/);edid=edid?edid[1]:'wiki__text';cb=String.prototype.match.call(document.location,/&onselect=([^&]+)/);cb=cb?cb[1].replace(/[^\w]+/,''):'dw_mediamanager_item_select';opener[cb](edid,id,opts,dw_mediamanager.align,dw_mediamanager.keepopen);if(!dw_mediamanager.keepopen){window.close();}opener.focus();return false;},suggest:function(){var $file,$name,text;$file=jQuery(this);$name=jQuery('#upload__name');if($name.val()!='')return;if(!$file.length||!$name.length){return;}text=$file.val();text=text.substr(text.lastIndexOf('/')+1);text=text.substr(text.lastIndexOf('\\')+1);$name.val(text);},list:function(event){var $link,$content,params;if(event){event.preventDefault();}jQuery('div.success, div.info, div.error, div.notify').remove();$link=jQuery(this);$content=jQuery('#media__content');if($content.length===0){$content=jQuery('div.filelist');if($link.hasClass('idx_dir')){jQuery('div.file').empty();jQuery('div.namespaces .selected').removeClass('selected');$link.addClass('selected');}}params='call=medialist&';if($link[0].search){params+=$link[0].search.substr(1);}else if($link.is('form')){params+=dw_mediamanager.form_params($link);}else if($link.closest('form').length>0){params+=dw_mediamanager.form_params($link.closest('form'));}dw_mediamanager.update_content($content,params);},form_params:function($form){if(!$form.length)return;var action='';var i=$form[0].action.indexOf('?');if(i>=0){action=$form[0].action.substr(i+1);}return action+'&'+$form.serialize();},set_fileview_list:function(new_type){dw_mediamanager.set_fileview_opt(['list','listType',function(new_type){jQuery('div.filelist div.panelContent ul').toggleClass('rows',new_type==='rows').toggleClass('thumbs',new_type==='thumbs');}],new_type);dw_mediamanager.resize();},set_fileview_sort:function(new_sort){dw_mediamanager.set_fileview_opt(['sort','sortBy',function(new_sort){}],new_sort);},set_fileview_opt:function(opt,new_val){if(typeof new_val==='undefined'){new_val=jQuery('form.options li.'+opt[1]+' input').filter(':checked').val();if(typeof new_val==='undefined'){new_val='thumbs';}}if(new_val!==dw_mediamanager.view_opts[opt[0]]){opt[2](new_val);DokuCookie.setValue(opt[0],new_val);dw_mediamanager.view_opts[opt[0]]=new_val;}},details:function(event){var $link,$content,params,update_list;$link=jQuery(this);event.preventDefault();jQuery('div.success, div.info, div.error, div.notify').remove();if($link[0].id=='mediamanager__btn_delete'&&!confirm(LANG.del_confirm)){return false;}if($link[0].id=='mediamanager__btn_restore'&&!confirm(LANG.restore_confirm)){return false;}$content=jQuery('div.file');params='call=mediadetails&';if($link[0].search){params+=$link[0].search.substr(1);}else if($link.is('form')){params+=dw_mediamanager.form_params($link);}else if($link.closest('form').length>0){params+=dw_mediamanager.form_params($link.closest('form'));}update_list=($link[0].id=='mediamanager__btn_delete'||$link[0].id=='mediamanager__btn_restore');dw_mediamanager.update_content($content,params,update_list);},update_content:function($content,params,update_list){var $container;jQuery.post(DOKU_BASE+'lib/exe/ajax.php',params,function(data){dw_mediamanager.$resizables().resizable('destroy');if(update_list){dw_mediamanager.list.call(jQuery('#mediamanager__page').find('form.options button[type="submit"]')[0]);}$content.html(data);dw_mediamanager.prepare_content($content);dw_mediamanager.updatehide();dw_mediamanager.update_resizable();dw_behaviour.revisionBoxHandler();dw_mediamanager.set_fileview_list(dw_mediamanager.view_opts.list);dw_mediamanager.image_diff();dw_mediamanager.init_ajax_uploader();dw_mediamanager.init_options();},'html');$container=$content.find('div.panelContent');if($container.length===0){$container=$content;}$container.html('<img src="'+DOKU_BASE+'lib/images/loading.gif" alt="..." class="load" />');},window_resize:function(){dw_mediamanager.resize();dw_mediamanager.opacity_slider();dw_mediamanager.portions_slider();},$resizables:function(){return jQuery('#mediamanager__page').find('div.namespaces, div.filelist');},update_resizable:function(){var $resizables=dw_mediamanager.$resizables();$resizables.resizable({handles:(jQuery('html[dir=rtl]').length?'w':'e'),resize:function(event,ui){var $page=jQuery('#mediamanager__page');var widthFull=$page.width();var widthResizables=0;$resizables.each(function(){widthResizables+=jQuery(this).width();});var $filePanel=$page.find('div.panel.file');var widthOtherResizable=widthResizables-jQuery(this).width();var minWidthNonResizable=parseFloat($filePanel.css("min-width"));var maxWidth=widthFull-(widthOtherResizable+minWidthNonResizable)-1;$resizables.resizable("option","maxWidth",maxWidth);var relWidthNonResizable=99.9-(100*widthResizables/widthFull);$filePanel.width(relWidthNonResizable+'%');dw_mediamanager.resize();dw_mediamanager.opacity_slider();dw_mediamanager.portions_slider();}});dw_mediamanager.resize();},resize:function(){var $contents=jQuery('#mediamanager__page').find('div.panelContent'),height=jQuery(window).height()-jQuery(document.body).height()+Math.max.apply(null,jQuery.map($contents,function(v){return jQuery(v).height();}));if(height<dw_mediamanager.minHeights[dw_mediamanager.view_opts.list]){$contents.add(dw_mediamanager.$resizables()).height('auto');}else{$contents.height(height);dw_mediamanager.$resizables().each(function(){var $this=jQuery(this);$this.height(height+$this.find('div.panelContent').offset().top-$this.offset().top);});}},image_diff:function(){if(jQuery('#mediamanager__difftype').length)return;var $form=jQuery('#mediamanager__form_diffview');if(!$form.length)return;var $label=jQuery(document.createElement('label'));$label.append('<span>'+LANG.media_diff+'</span> ');var $select=jQuery(document.createElement('select')).attr('id','mediamanager__difftype').attr('name','difftype').change(dw_mediamanager.change_diff_type);$select.append(new Option(LANG.media_diff_both,"both"));$select.append(new Option(LANG.media_diff_opacity,"opacity"));$select.append(new Option(LANG.media_diff_portions,"portions"));$label.append($select);$form.append($label);var select=document.getElementById('mediamanager__difftype');select.options[0].text=LANG.media_diff_both;select.options[1].text=LANG.media_diff_opacity;select.options[2].text=LANG.media_diff_portions;},change_diff_type:function(){var $select=jQuery('#mediamanager__difftype');var $content=jQuery('#mediamanager__diff');var params=dw_mediamanager.form_params($select.closest('form'))+'&call=mediadiff';jQuery.post(DOKU_BASE+'lib/exe/ajax.php',params,function(data){$content.html(data);dw_mediamanager.portions_slider();dw_mediamanager.opacity_slider();},'html');},opacity_slider:function(){var $diff=jQuery("#mediamanager__diff");var $slider=$diff.find("div.slider");if(!$slider.length)return;var $image=$diff.find('div.imageDiff.opacity div.image1 img');if(!$image.length)return;$slider.width($image.width()-20);$slider.slider();$slider.slider("option","min",0);$slider.slider("option","max",0.999);$slider.slider("option","step",0.001);$slider.slider("option","value",0.5);$slider.on("slide",function(event,ui){jQuery('#mediamanager__diff').find('div.imageDiff.opacity div.image2 img').css({opacity:$slider.slider("option","value")});});},portions_slider:function(){var $diff=jQuery("#mediamanager__diff");if(!$diff.length)return;var $image1=$diff.find('div.imageDiff.portions div.image1 img');var $image2=$diff.find('div.imageDiff.portions div.image2 img');if(!$image1.length||!$image2.length)return;$diff.width('100%');$image2.parent().width('97%');$image1.width('100%');$image2.width('100%');if($image1.width()<$diff.width()){$diff.width($image1.width());}$image2.parent().width('50%');$image2.width($image1.width());$image1.width($image1.width());var $slider=$diff.find("div.slider");if(!$slider.length)return;$slider.width($image1.width()-20);$slider.slider();$slider.slider("option","min",0);$slider.slider("option","max",97);$slider.slider("option","step",1);$slider.slider("option","value",50);$slider.on("slide",function(event,ui){jQuery('#mediamanager__diff').find('div.imageDiff.portions div.image2').css({width:$slider.slider("option","value")+'%'});});},params_toarray:function(str){var vars=[],hash;var hashes=str.split('&');for(var i=0;i<hashes.length;i++){hash=hashes[i].split('=');vars[decodeURIComponent(hash[0])]=decodeURIComponent(hash[1]);}return vars;},init_ajax_uploader:function(){if(!jQuery('#mediamanager__uploader').length)return;if(jQuery('.qq-upload-list').length)return;var params=dw_mediamanager.form_params(jQuery('#dw__upload'))+'&call=mediaupload';params=dw_mediamanager.params_toarray(params);var uploader=new qq.FileUploaderExtended({element:document.getElementById('mediamanager__uploader'),action:DOKU_BASE+'lib/exe/ajax.php',params:params});},prepare_content:function($content){$content.find('div.example:visible').hide();},select:function(event){var $link,id,dot,ext;event.preventDefault();$link=jQuery(this);id=$link.attr('id').substr(2);if(!opener){jQuery(document.getElementById('ex_'+id.replace(/:/g,'_').replace(/^_/,''))).dw_toggle();return;}dw_mediamanager.ext=false;dot=id.lastIndexOf(".");if(-1===dot){dw_mediamanager.insert(id);return;}ext=id.substr(dot);if({'.jpg':1,'.jpeg':1,'.png':1,'.gif':1,'.swf':1}[ext]!==1){dw_mediamanager.insert(id);return;}var $sendbtn=jQuery('#media__sendbtn');$sendbtn.off().click(bind(dw_mediamanager.insert,id));dw_mediamanager.unforbid('ext');if(ext==='.swf'){dw_mediamanager.ext='swf';dw_mediamanager.forbid('ext',{link:['1','2'],size:['4']});}else{dw_mediamanager.ext='img';}dw_mediamanager.setOpt('link');dw_mediamanager.setOpt('align');dw_mediamanager.setOpt('size');jQuery('#media__linkbtn1, #media__linkbtn2, #media__sizebtn4').toggle(dw_mediamanager.ext==='img');dw_mediamanager.$popup.dialog('open');$sendbtn.focus();},confirmattach:function(e){if(!confirm(LANG.del_confirm+"\n"+jQuery(this).attr('title'))){e.preventDefault();}},attachoptions:function(){var $obj,opts;$obj=jQuery('#media__opts');if($obj.length===0){return;}opts=[];if(opener){opts.push(['keepopen','keepopen']);}opts.push(['hide','hidedetails']);jQuery.each(opts,function(_,opt){var $box,$lbl;$box=jQuery(document.createElement('input')).attr('type','checkbox').attr('id','media__'+opt[0]).click(bind(dw_mediamanager.toggleOption,opt[0]));if(DokuCookie.getValue(opt[0])){$box.prop('checked',true);dw_mediamanager[opt[0]]=true;}$lbl=jQuery(document.createElement('label')).attr('for','media__'+opt[0]).text(LANG[opt[1]]);$obj.append($box,$lbl,document.createElement('br'));});dw_mediamanager.updatehide();},toggleOption:function(variable){if(jQuery(this).prop('checked')){DokuCookie.setValue(variable,1);dw_mediamanager[variable]=true;}else{DokuCookie.setValue(variable,'');dw_mediamanager[variable]=false;}if(variable==='hide'){dw_mediamanager.updatehide();}},updatehide:function(){jQuery('#media__content').find('div.detail').dw_toggle(!dw_mediamanager.hide);},setOpt:function(opt,e){var val,i;if(typeof e!=='undefined'){val=this.id.substring(this.id.length-1);}else{val=dw_mediamanager.getOpt(opt);}if(val===false){DokuCookie.setValue(opt,'');dw_mediamanager[opt]=false;return;}if(opt==='link'){if(val!=='4'&&dw_mediamanager.link==='4'){dw_mediamanager.unforbid('linkonly');dw_mediamanager.setOpt('align');dw_mediamanager.setOpt('size');}else if(val==='4'){dw_mediamanager.forbid('linkonly',{align:false,size:false});}jQuery("#media__size, #media__align").dw_toggle(val!=='4');}DokuCookie.setValue(opt,val);dw_mediamanager[opt]=val;for(i=1;i<=4;i++){jQuery("#media__"+opt+"btn"+i).removeClass('selected');}jQuery('#media__'+opt+'btn'+val).addClass('selected');},unforbid:function(group){delete dw_mediamanager.forbidden_opts[group];},forbid:function(group,forbids){dw_mediamanager.forbidden_opts[group]=forbids;},allowedOpt:function(opt,val){var ret=true;jQuery.each(dw_mediamanager.forbidden_opts,function(_,forbids){ret=forbids[opt]!==false&&jQuery.inArray(val,forbids[opt])===-1;return ret;});return ret;},getOpt:function(opt){var allowed=bind(dw_mediamanager.allowedOpt,opt);if(dw_mediamanager[opt]!==false&&allowed(dw_mediamanager[opt])){return dw_mediamanager[opt];}if(DokuCookie.getValue(opt)&&allowed(DokuCookie.getValue(opt))){return DokuCookie.getValue(opt);}if(opt==='size'&&allowed('2')){return'2';}return jQuery.grep(['1','2','3','4'],allowed)[0]||false;}};function dw_mediamanager_item_select(edid,mediaid,opts,align,keepopen){var alignleft='';var alignright='';var cursorInImageTag=false;var textArea=jQuery('#'+edid)[0];var selection=DWgetSelection(textArea);selection.end=selection.end+2;var charsAfterCursor=selection.getText();if(charsAfterCursor==='}}'){cursorInImageTag=true;}if(align!=='1'){alignleft=align==='2'?'':' ';alignright=align==='4'?'':' ';}if(keepopen&&cursorInImageTag){selection.start=selection.start+2;DWsetSelection(selection);}insertTags(edid,'{{'+alignleft+mediaid+opts+alignright+'|','}}','');}jQuery(dw_mediamanager.init);function DEPRECATED(msg){if(!window.console)return;if(!msg)msg='';var func;if(arguments.callee)func=arguments.callee.caller.name;if(func)func=' '+func+'()';var line='DEPRECATED function call'+func+'. '+msg;if(console.warn){console.warn(line);}else{console.log(line);}if(console.trace)console.trace();}function DEPRECATED_WRAP(func,context){return function(){DEPRECATED();return func.apply(context||this,arguments);};}jQuery.fn.dw_hide=function(fn,noaria){if(!noaria)this.attr('aria-expanded','false');return this.slideUp('fast',fn);};jQuery.fn.dw_show=function(fn,noaria){if(!noaria)this.attr('aria-expanded','true');return this.slideDown('fast',fn);};jQuery.fn.dw_toggle=function(state,fn,noaria){return this.each(function(){var $this=jQuery(this);if(typeof state==='undefined'){state=$this.is(':hidden');}$this[state?"dw_show":"dw_hide"](fn,noaria);});};var dw_behaviour={init:function(){dw_behaviour.focusMarker();dw_behaviour.scrollToMarker();dw_behaviour.removeHighlightOnClick();dw_behaviour.quickSelect();dw_behaviour.checkWindowsShares();dw_behaviour.subscription();dw_behaviour.revisionBoxHandler();jQuery(document).on('click','#page__revisions input[type=checkbox]',dw_behaviour.revisionBoxHandler);jQuery('.bounce').effect('bounce',{times:10},2000);},scrollToMarker:function(){var $obj=jQuery('#scroll__here');if($obj.length){if($obj.offset().top!=0){jQuery('html, body').animate({scrollTop:$obj.offset().top-100},500);}else{$obj[0].scrollIntoView();}}},focusMarker:function(){jQuery('#focus__this').focus();},removeHighlightOnClick:function(){jQuery('span.search_hit').click(function(e){jQuery(e.target).removeClass('search_hit',1000);});},quickSelect:function(){jQuery('select.quickselect').change(function(e){e.target.form.submit();}).closest('form').find(':button').not('.show').hide();},checkWindowsShares:function(){if(!LANG.nosmblinks||navigator.userAgent.match(/(Trident|MSIE)/)){return;}jQuery('a.windows').on('click',function(){alert(LANG.nosmblinks.replace(/\\n/,"\n"));});},subscription:function(){var $form,$list,$digest;$form=jQuery('#subscribe__form');if(0===$form.length)return;$list=$form.find("input[name='sub_style'][value='list']");$digest=$form.find("input[name='sub_style'][value='digest']");$form.find("input[name='sub_target']").click(function(){var $this=jQuery(this),show_list;if(!$this.prop('checked')){return;}show_list=$this.val().match(/:$/);$list.parent().dw_toggle(show_list);if(!show_list&&$list.prop('checked')){$digest.prop('checked','checked');}}).filter(':checked').click();},revisionBoxHandler:function(){var $revisions=jQuery('#page__revisions');var $all=jQuery('input[type=checkbox]',$revisions);var $checked=$all.filter(':checked');var $button=jQuery('button',$revisions);if($checked.length<2){$all.removeAttr('disabled');$button.attr('disabled',true);}else{$all.attr('disabled',true);$button.removeAttr('disabled');$checked.each(function(i){jQuery(this).removeAttr('disabled');if(i>1){jQuery(this).attr('checked',false);}});}}};jQuery(dw_behaviour.init);dw_page={init:function(){dw_page.sectionHighlight();jQuery('a.fn_top').mouseover(dw_page.footnoteDisplay);dw_page.makeToggle('#dw__toc h3','#dw__toc > div');},sectionHighlight:function(){jQuery('form.btn_secedit').mouseover(function(){var $tgt=jQuery(this).parent(),nr=$tgt.attr('class').match(/(\s+|^)editbutton_(\d+)(\s+|$)/)[2],$highlight=jQuery(),$highlightWrap=jQuery('<div class="section_highlight"></div>');while($tgt.length>0&&!($tgt.hasClass('sectionedit'+nr)||$tgt.find('.sectionedit'+nr).length)){$tgt=$tgt.prev();$highlight=$highlight.add($tgt);}$highlight.filter(':last').before($highlightWrap);$highlight.detach().appendTo($highlightWrap);}).mouseout(function(){var $highlightWrap=jQuery('.section_highlight');$highlightWrap.before($highlightWrap.children().detach());$highlightWrap.detach();});},insituPopup:function(target,popup_id){var $fndiv=jQuery('#'+popup_id);if($fndiv.length===0){$fndiv=jQuery(document.createElement('div')).attr('id',popup_id).addClass('insitu-footnote JSpopup').attr('aria-hidden','true').mouseleave(function(){jQuery(this).hide().attr('aria-hidden','true');}).attr('role','tooltip');jQuery('.dokuwiki:first').append($fndiv);}$fndiv.show().position({my:'left top',at:'left center',of:target}).hide();return $fndiv;},footnoteDisplay:function(){var $content=jQuery(jQuery(this).attr('href')).parent().siblings('.content').clone();if(!$content){return;}jQuery('[id]',$content).each(function(){var id=jQuery(this).attr('id');jQuery(this).attr('id','insitu__'+id);});var content=$content.html().trim();dw_page.insituPopup(this,'insitu__fn').html(content).show().attr('aria-hidden','false');},makeToggle:function(handle,content,state){var $handle,$content,$clicky,$child,setClicky;$handle=jQuery(handle);if(!$handle.length)return;$content=jQuery(content);if(!$content.length)return;$child=$content.children();setClicky=function(hiding){if(hiding){$clicky.html('<span>+</span>');$handle.addClass('closed');$handle.removeClass('open');}else{$clicky.html('<span>−</span>');$handle.addClass('open');$handle.removeClass('closed');}};$handle[0].setState=function(state){var hidden;if(!state)state=1;$content.css('min-height',$content.height()).show();$child.stop(true,true);if(state===-1){hidden=false;}else if(state===1){hidden=true;}else{hidden=$child.is(':hidden');}setClicky(!hidden);$child.dw_toggle(hidden,function(){$content.toggle(hidden);$content.attr('aria-expanded',hidden);$content.css('min-height','');},true);};$clicky=jQuery(document.createElement('strong'));$handle.css('cursor','pointer').click($handle[0].setState).prepend($clicky);$handle[0].setState(state);}};jQuery(dw_page.init);var device_class='';var device_classes='desktop mobile tablet phone';function tpl_dokuwiki_mobile(){var screen_mode=jQuery('#screen__mode').css('z-index')+'';switch(screen_mode){case'1':if(device_class.match(/tablet/))return;device_class='mobile tablet';break;case'2':if(device_class.match(/phone/))return;device_class='mobile phone';break;default:if(device_class=='desktop')return;device_class='desktop';}jQuery('html').removeClass(device_classes).addClass(device_class);var $handle=jQuery('#dokuwiki__aside h3.toggle');var $toc=jQuery('#dw__toc h3');if(device_class=='desktop'){if($handle.length){$handle[0].setState(1);$handle.hide();}if($toc.length){$toc[0].setState(1);}}if(device_class.match(/mobile/)){if($handle.length){$handle.show();$handle[0].setState(-1);}if($toc.length){$toc[0].setState(-1);}}}jQuery(function(){var resizeTimer;dw_page.makeToggle('#dokuwiki__aside h3.toggle','#dokuwiki__aside div.content');tpl_dokuwiki_mobile();jQuery(window).on('resize',function(){if(resizeTimer)clearTimeout(resizeTimer);resizeTimer=setTimeout(tpl_dokuwiki_mobile,200);});var $sidebar=jQuery('.desktop #dokuwiki__aside');if($sidebar.length){var $content=jQuery('#dokuwiki__content div.page');$content.css('min-height',$sidebar.height());}});var dw_acl={init:function(){var $tree;if(jQuery('#acl_manager').length===0){return;}jQuery('#acl__user select').change(dw_acl.userselhandler);jQuery('#acl__user button').click(dw_acl.loadinfo);$tree=jQuery('#acl__tree');$tree.dw_tree({toggle_selector:'img',load_data:function(show_sublist,$clicky){var $frm=jQuery('#acl__detail form');jQuery.post(DOKU_BASE+'lib/exe/ajax.php',jQuery.extend(dw_acl.parseatt($clicky.parent().find('a')[0].search),{call:'plugin_acl',ajax:'tree',current_ns:$frm.find('input[name=ns]').val(),current_id:$frm.find('input[name=id]').val()}),show_sublist,'html');},toggle_display:function($clicky,opening){$clicky.attr('src',DOKU_BASE+'lib/images/'+(opening?'minus':'plus')+'.gif');}});$tree.delegate('a','click',dw_acl.treehandler);},userselhandler:function(){jQuery('#acl__user input').toggle(this.value==='__g__'||this.value==='__u__');dw_acl.loadinfo();},loadinfo:function(){jQuery('#acl__info').attr('role','alert').html('<img src="'+DOKU_BASE+'lib/images/throbber.gif" alt="..." />').load(DOKU_BASE+'lib/exe/ajax.php',jQuery('#acl__detail form').serialize()+'&call=plugin_acl&ajax=info');return false;},parseatt:function(str){if(str[0]==='?'){str=str.substr(1);}var attributes={};var all=str.split('&');for(var i=0;i<all.length;i++){var att=all[i].split('=');attributes[att[0]]=decodeURIComponent(att[1]);}return attributes;},treehandler:function(){var $link,$frm;$link=jQuery(this);jQuery('#acl__tree a.cur').removeClass('cur');$link.addClass('cur');$frm=jQuery('#acl__detail form');if($link.hasClass('wikilink1')){$frm.find('input[name=ns]').val('');$frm.find('input[name=id]').val(dw_acl.parseatt($link[0].search).id);}else if($link.hasClass('idx_dir')){$frm.find('input[name=ns]').val(dw_acl.parseatt($link[0].search).ns);$frm.find('input[name=id]').val('');}dw_acl.loadinfo();return false;}};jQuery(dw_acl.init);jQuery(function(){var $extmgr=jQuery('#extension__manager');$extmgr.find('button.uninstall').click(function(e){if(!window.confirm(LANG.plugins.extension.reallydel)){e.preventDefault();return false;}return true;});$extmgr.find('a.extension_screenshot').click(function(e){e.preventDefault();var image_href=jQuery(this).attr("href");var $lightbox=jQuery('#plugin__extensionlightbox');if(!$lightbox.length){$lightbox=jQuery('<div id="plugin__extensionlightbox"><p>Click to close</p><div></div></div>').appendTo(jQuery('body')).hide().click(function(){$lightbox.hide();});}$lightbox .show().find('div').html('<img src="'+image_href+'" />');return false;});$extmgr.find('button.disable, button.enable').click(function(e){e.preventDefault();var $btn=jQuery(this);var extension=$btn.attr('name').split('[')[2];extension=extension.substr(0,extension.length-1);var act=($btn.hasClass('disable'))?'disable':'enable';$btn.attr('disabled','disabled');$btn.css('cursor','wait');jQuery.get(DOKU_BASE+'lib/exe/ajax.php',{call:'plugin_extension',ext:extension,act:act},function(data){$btn.css('cursor','').removeAttr('disabled').removeClass('disable').removeClass('enable').text(data.label).addClass(data.reverse).parents('li').removeClass('disabled').removeClass('enabled').addClass(data.state);});});$extmgr.find('a.info').click(function(e){e.preventDefault();var $link=jQuery(this);var $details=$link.parent().find('dl.details');if($details.length){$link.toggleClass('close');$details.toggle();return;}$link.addClass('close');jQuery.get(DOKU_BASE+'lib/exe/ajax.php',{call:'plugin_extension',ext:$link.data('extid'),act:'info'},function(data){$link.parent().append(data);});});if($extmgr.find('.plugins, .templates').hasClass('active')){var $extlist=jQuery('#extension__list');$extlist.addClass('hasDisplayOptions');var $displayOpts=jQuery('<p>',{id:'extension__viewoptions'}).appendTo($extmgr.find('.panelHeader'));$displayOpts.append(LANG.plugins.extension.display_viewoptions);var displayOptionsHandler=function(){$extlist.toggleClass(this.name);DokuCookie.setValue('ext_'+this.name,$extlist.hasClass(this.name)?'1':'0');};jQuery(['enabled','disabled','updatable']).each(function(index,chkName){var $label=jQuery('<label></label>').appendTo($displayOpts);var $input=jQuery('<input />',{type:'checkbox',name:chkName}).change(displayOptionsHandler).appendTo($label);var previous=DokuCookie.getValue('ext_'+chkName);if(typeof previous==="undefined"||previous=='1'){$input.click();}jQuery('<span/>').append(' '+LANG.plugins.extension['display_'+chkName]).appendTo($label);});}});(function($,undef){var _html,nonGradientIE,gradientType,vendorPrefixes,_css,Iris,UA,isIE,IEVersion;_html='<div class="iris-picker"><div class="iris-picker-inner"><div class="iris-square"><a class="iris-square-value" href="#"><span class="iris-square-handle ui-slider-handle"></span></a><div class="iris-square-inner iris-square-horiz"></div><div class="iris-square-inner iris-square-vert"></div></div><div class="iris-slider iris-strip"><div class="iris-slider-offset"></div></div></div></div>';_css='.iris-picker{display:block;position:relative}.iris-picker,.iris-picker *{-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input+.iris-picker{margin-top:4px}.iris-error{background-color:#ffafaf}.iris-border{border-radius:3px;border:1px solid #aaa;width:200px;background-color:#fff}.iris-picker-inner{position:absolute;top:0;right:0;left:0;bottom:0}.iris-border .iris-picker-inner{top:10px;right:10px;left:10px;bottom:10px}.iris-picker .iris-square-inner{position:absolute;left:0;right:0;top:0;bottom:0}.iris-picker .iris-square,.iris-picker .iris-slider,.iris-picker .iris-square-inner,.iris-picker .iris-palette{border-radius:3px;box-shadow:inset 0 0 5px rgba(0,0,0,.4);height:100%;width:12.5%;float:left;margin-right:5%}.iris-picker .iris-square{width:76%;margin-right:10%;position:relative}.iris-picker .iris-square-inner{width:auto;margin:0}.iris-ie-9 .iris-square,.iris-ie-9 .iris-slider,.iris-ie-9 .iris-square-inner,.iris-ie-9 .iris-palette{box-shadow:none;border-radius:0}.iris-ie-9 .iris-square,.iris-ie-9 .iris-slider,.iris-ie-9 .iris-palette{outline:1px solid rgba(0,0,0,.1)}.iris-ie-lt9 .iris-square,.iris-ie-lt9 .iris-slider,.iris-ie-lt9 .iris-square-inner,.iris-ie-lt9 .iris-palette{outline:1px solid #aaa}.iris-ie-lt9 .iris-square .ui-slider-handle{outline:1px solid #aaa;background-color:#fff;-ms-filter:"alpha(Opacity=30)"}.iris-ie-lt9 .iris-square .iris-square-handle{background:0;border:3px solid #fff;-ms-filter:"alpha(Opacity=50)"}.iris-picker .iris-strip{margin-right:0;position:relative}.iris-picker .iris-strip .ui-slider-handle{position:absolute;background:0;margin:0;right:-3px;left:-3px;border:4px solid #aaa;border-width:4px 3px;width:auto;height:6px;border-radius:4px;box-shadow:0 1px 2px rgba(0,0,0,.2);opacity:.9;z-index:5;cursor:ns-resize}.iris-strip .ui-slider-handle:before{content:" ";position:absolute;left:-2px;right:-2px;top:-3px;bottom:-3px;border:2px solid #fff;border-radius:3px}.iris-picker .iris-slider-offset{position:absolute;top:11px;left:0;right:0;bottom:-3px;width:auto;height:auto;background:transparent;border:0;border-radius:0}.iris-picker .iris-square-handle{background:transparent;border:5px solid #aaa;border-radius:50%;border-color:rgba(128,128,128,.5);box-shadow:none;width:12px;height:12px;position:absolute;left:-10px;top:-10px;cursor:move;opacity:1;z-index:10}.iris-picker .ui-state-focus .iris-square-handle{opacity:.8}.iris-picker .iris-square-handle:hover{border-color:#999}.iris-picker .iris-square-value:focus .iris-square-handle{box-shadow:0 0 2px rgba(0,0,0,.75);opacity:.8}.iris-picker .iris-square-handle:hover::after{border-color:#fff}.iris-picker .iris-square-handle::after{position:absolute;bottom:-4px;right:-4px;left:-4px;top:-4px;border:3px solid #f9f9f9;border-color:rgba(255,255,255,.8);border-radius:50%;content:" "}.iris-picker .iris-square-value{width:8px;height:8px;position:absolute}.iris-ie-lt9 .iris-square-value,.iris-mozilla .iris-square-value{width:1px;height:1px}.iris-palette-container{position:absolute;bottom:0;left:0;margin:0;padding:0}.iris-border .iris-palette-container{left:10px;bottom:10px}.iris-picker .iris-palette{margin:0;cursor:pointer}.iris-square-handle,.ui-slider-handle{border:0;outline:0}';UA=navigator.userAgent.toLowerCase();isIE=navigator.appName==='Microsoft Internet Explorer';IEVersion=isIE?parseFloat(UA.match(/msie ([0-9]{1,}[\.0-9]{0,})/)[1]):0;nonGradientIE=(isIE&&IEVersion<10);gradientType=false;vendorPrefixes=['-moz-','-webkit-','-o-','-ms-'];if(nonGradientIE&&IEVersion<=7){$.fn.iris=$.noop;$.support.iris=false;return;}$.support.iris=true;function testGradientType(){var el,base,bgImageString='backgroundImage';if(nonGradientIE){gradientType='filter';}else{el=$('<div id="iris-gradtest" />');base='linear-gradient(top,#fff,#000)';$.each(vendorPrefixes,function(i,val){el.css(bgImageString,val+base);if(el.css(bgImageString).match('gradient')){gradientType=i;return false;}});if(gradientType===false){el.css('background','-webkit-gradient(linear,0% 0%,0% 100%,from(#fff),to(#000))');if(el.css(bgImageString).match('gradient')){gradientType='webkit';}}el.remove();}}function createGradient(origin,stops){origin=(origin==='top')?'top':'left';stops=$.isArray(stops)?stops:Array.prototype.slice.call(arguments,1);if(gradientType==='webkit'){return legacyWebkitGradient(origin,stops);}else{return vendorPrefixes[gradientType]+'linear-gradient('+origin+', '+stops.join(', ')+')';}}function stupidIEGradient(origin,stops){var type,self,lastIndex,filter,startPosProp,endPosProp,dimensionProp,template,html;origin=(origin==='top')?'top':'left';stops=$.isArray(stops)?stops:Array.prototype.slice.call(arguments,1);type=(origin==='top')?0:1;self=$(this);lastIndex=stops.length-1;filter='filter';startPosProp=(type===1)?'left':'top';endPosProp=(type===1)?'right':'bottom';dimensionProp=(type===1)?'height':'width';template='<div class="iris-ie-gradient-shim" style="position:absolute;'+dimensionProp+':100%;'+startPosProp+':%start%;'+endPosProp+':%end%;'+filter+':%filter%;" data-color:"%color%"></div>';html='';if(self.css('position')==='static'){self.css({position:'relative'});}stops=fillColorStops(stops);$.each(stops,function(i,startColor){var endColor,endStop,filterVal;if(i===lastIndex){return false;}endColor=stops[i+1];if(startColor.stop===endColor.stop){return;}endStop=100-parseFloat(endColor.stop)+'%';startColor.octoHex=new Color(startColor.color).toIEOctoHex();endColor.octoHex=new Color(endColor.color).toIEOctoHex();filterVal='progid:DXImageTransform.Microsoft.Gradient(GradientType='+type+', StartColorStr=\''+startColor.octoHex+'\', EndColorStr=\''+endColor.octoHex+'\')';html+=template.replace('%start%',startColor.stop).replace('%end%',endStop).replace('%filter%',filterVal);});self.find('.iris-ie-gradient-shim').remove();$(html).prependTo(self);}function legacyWebkitGradient(origin,colorList){var stops=[];origin=(origin==='top')?'0% 0%,0% 100%,':'0% 100%,100% 100%,';colorList=fillColorStops(colorList);$.each(colorList,function(i,val){stops.push('color-stop('+(parseFloat(val.stop)/100)+', '+val.color+')');});return'-webkit-gradient(linear,'+origin+stops.join(',')+')';}function fillColorStops(colorList){var colors=[],percs=[],newColorList=[],lastIndex=colorList.length-1;$.each(colorList,function(index,val){var color=val,perc=false,match=val.match(/1?[0-9]{1,2}%$/);if(match){color=val.replace(/\s?1?[0-9]{1,2}%$/,'');perc=match.shift();}colors.push(color);percs.push(perc);});if(percs[0]===false){percs[0]='0%';}if(percs[lastIndex]===false){percs[lastIndex]='100%';}percs=backFillColorStops(percs);$.each(percs,function(i){newColorList[i]={color:colors[i],stop:percs[i]};});return newColorList;}function backFillColorStops(stops){var first=0,last=stops.length-1,i=0,foundFirst=false,incr,steps,step,firstVal;if(stops.length<=2||$.inArray(false,stops)<0){return stops;}while(i<stops.length-1){if(!foundFirst&&stops[i]===false){first=i-1;foundFirst=true;}else if(foundFirst&&stops[i]!==false){last=i;i=stops.length;}i++;}steps=last-first;firstVal=parseInt(stops[first].replace('%'),10);incr=(parseFloat(stops[last].replace('%'))-firstVal)/steps;i=first+1;step=1;while(i<last){stops[i]=(firstVal+(step*incr))+'%';step++;i++;}return backFillColorStops(stops);}$.fn.gradient=function(){var args=arguments;return this.each(function(){if(nonGradientIE){stupidIEGradient.apply(this,args);}else{$(this).css('backgroundImage',createGradient.apply(this,args));}});};$.fn.raninbowGradient=function(origin,args){var opts,template,i,steps;origin=origin||'top';opts=$.extend({},{s:100,l:50},args);template='hsl(%h%,'+opts.s+'%,'+opts.l+'%)';i=0;steps=[];while(i<=360){steps.push(template.replace('%h%',i));i+=30;}return this.each(function(){$(this).gradient(origin,steps);});};Iris={options:{color:false,mode:'hsl',controls:{horiz:'s',vert:'l',strip:'h'},hide:true,border:true,target:false,width:200,palettes:false},_color:'',_palettes:['#000','#fff','#d33','#d93','#ee2','#81d742','#1e73be','#8224e3'],_inited:false,_defaultHSLControls:{horiz:'s',vert:'l',strip:'h'},_defaultHSVControls:{horiz:'h',vert:'v',strip:'s'},_scale:{h:360,s:100,l:100,v:100},_create:function(){var self=this,el=self.element,color=self.options.color||el.val();if(gradientType===false){testGradientType();}if(el.is('input')){if(self.options.target){self.picker=$(_html).appendTo(self.options.target);}else{self.picker=$(_html).insertAfter(el);}self._addInputListeners(el);}else{el.append(_html);self.picker=el.find('.iris-picker');}if(isIE){if(IEVersion===9){self.picker.addClass('iris-ie-9');}else if(IEVersion<=8){self.picker.addClass('iris-ie-lt9');}}else if(UA.indexOf('compatible')<0&&UA.indexOf('khtml')<0&&UA.match(/mozilla/)){self.picker.addClass('iris-mozilla');}if(self.options.palettes){self._addPalettes();}self._color=new Color(color).setHSpace(self.options.mode);self.options.color=self._color.toString();self.controls={square:self.picker.find('.iris-square'),squareDrag:self.picker.find('.iris-square-value'),horiz:self.picker.find('.iris-square-horiz'),vert:self.picker.find('.iris-square-vert'),strip:self.picker.find('.iris-strip'),stripSlider:self.picker.find('.iris-strip .iris-slider-offset')};if(self.options.mode==='hsv'&&self._has('l',self.options.controls)){self.options.controls=self._defaultHSVControls;}else if(self.options.mode==='hsl'&&self._has('v',self.options.controls)){self.options.controls=self._defaultHSLControls;}self.hue=self._color.h();if(self.options.hide){self.picker.hide();}if(self.options.border){self.picker.addClass('iris-border');}self._initControls();self.active='external';self._dimensions();self._change();},_has:function(needle,haystack){var ret=false;$.each(haystack,function(i,v){if(needle===v){ret=true;return false;}});return ret;},_addPalettes:function(){var container=$('<div class="iris-palette-container" />'),palette=$('<a class="iris-palette" tabindex="0" />'),colors=$.isArray(this.options.palettes)?this.options.palettes:this._palettes;if(this.picker.find('.iris-palette-container').length){container=this.picker.find('.iris-palette-container').detach().html('');}$.each(colors,function(index,val){palette.clone().data('color',val).css('backgroundColor',val).appendTo(container).height(10).width(10);});this.picker.append(container);},_paint:function(){var self=this;self._paintDimension('top','strip');self._paintDimension('top','vert');self._paintDimension('left','horiz');},_paintDimension:function(origin,control){var self=this,c=self._color,mode=self.options.mode,color=self._getHSpaceColor(),target=self.controls[control],controlOpts=self.options.controls,stops;if(control===self.active||(self.active==='square'&&control!=='strip')){return;}switch(controlOpts[control]){case'h':if(mode==='hsv'){color=c.clone();switch(control){case'horiz':color[controlOpts.vert](100);break;case'vert':color[controlOpts.horiz](100);break;case'strip':color.setHSpace('hsl');break;}stops=color.toHsl();}else{if(control==='strip'){stops={s:color.s,l:color.l};}else{stops={s:100,l:color.l};}}target.raninbowGradient(origin,stops);break;case's':if(mode==='hsv'){if(control==='vert'){stops=[c.clone().a(0).s(0).toCSS('rgba'),c.clone().a(1).s(0).toCSS('rgba')];}else if(control==='strip'){stops=[c.clone().s(100).toCSS('hsl'),c.clone().s(0).toCSS('hsl')];}else if(control==='horiz'){stops=['#fff','hsl('+color.h+',100%,50%)'];}}else{if(control==='vert'&&self.options.controls.horiz==='h'){stops=['hsla(0, 0%, '+color.l+'%, 0)','hsla(0, 0%, '+color.l+'%, 1)'];}else{stops=['hsl('+color.h+',0%,50%)','hsl('+color.h+',100%,50%)'];}}target.gradient(origin,stops);break;case'l':if(control==='strip'){stops=['hsl('+color.h+',100%,100%)','hsl('+color.h+', '+color.s+'%,50%)','hsl('+color.h+',100%,0%)'];}else{stops=['#fff','rgba(255,255,255,0) 50%','rgba(0,0,0,0) 50%','rgba(0,0,0,1)'];}target.gradient(origin,stops);break;case'v':if(control==='strip'){stops=[c.clone().v(100).toCSS(),c.clone().v(0).toCSS()];}else{stops=['rgba(0,0,0,0)','#000'];}target.gradient(origin,stops);break;default:break;}},_getHSpaceColor:function(){return(this.options.mode==='hsv')?this._color.toHsv():this._color.toHsl();},_dimensions:function(reset){var self=this,opts=self.options,controls=self.controls,square=controls.square,strip=self.picker.find('.iris-strip'),squareWidth='77.5%',stripWidth='12%',totalPadding=20,innerWidth=opts.border?opts.width-totalPadding:opts.width,controlsHeight,paletteCount=$.isArray(opts.palettes)?opts.palettes.length:self._palettes.length,paletteMargin,paletteWidth,paletteContainerWidth;if(reset){square.css('width','');strip.css('width','');self.picker.css({width:'',height:''});}squareWidth=innerWidth*(parseFloat(squareWidth)/100);stripWidth=innerWidth*(parseFloat(stripWidth)/100);controlsHeight=opts.border?squareWidth+totalPadding:squareWidth;square.width(squareWidth).height(squareWidth);strip.height(squareWidth).width(stripWidth);self.picker.css({width:opts.width,height:controlsHeight});if(!opts.palettes){return self.picker.css('paddingBottom','');}paletteMargin=squareWidth*2/100;paletteContainerWidth=squareWidth-((paletteCount-1)*paletteMargin);paletteWidth=paletteContainerWidth/paletteCount;self.picker.find('.iris-palette').each(function(i){var margin=i===0?0:paletteMargin;$(this).css({width:paletteWidth,height:paletteWidth,marginLeft:margin});});self.picker.css('paddingBottom',paletteWidth+paletteMargin);strip.height(paletteWidth+paletteMargin+squareWidth);},_addInputListeners:function(input){var self=this,debounceTimeout=100,callback=function(event){var color=new Color(input.val()),val=input.val().replace(/^#/,'');input.removeClass('iris-error');if(color.error){if(val!==''){input.addClass('iris-error');}}else{if(color.toString()!==self._color.toString()){if(!(event.type==='keyup'&&val.match(/^[0-9a-fA-F]{3}$/))){self._setOption('color',color.toString());}}}};input.on('change',callback).on('keyup',self._debounce(callback,debounceTimeout));if(self.options.hide){input.one('focus',function(){self.show();});}},_initControls:function(){var self=this,controls=self.controls,square=controls.square,controlOpts=self.options.controls,stripScale=self._scale[controlOpts.strip];controls.stripSlider.slider({orientation:'vertical',max:stripScale,slide:function(event,ui){self.active='strip';if(controlOpts.strip==='h'){ui.value=stripScale-ui.value;}self._color[controlOpts.strip](ui.value);self._change.apply(self,arguments);}});controls.squareDrag.draggable({containment:controls.square.find('.iris-square-inner'),zIndex:1000,cursor:'move',drag:function(event,ui){self._squareDrag(event,ui);},start:function(){square.addClass('iris-dragging');$(this).addClass('ui-state-focus');},stop:function(){square.removeClass('iris-dragging');$(this).removeClass('ui-state-focus');}}).on('mousedown mouseup',function(event){var focusClass='ui-state-focus';event.preventDefault();if(event.type==='mousedown'){self.picker.find('.'+focusClass).removeClass(focusClass).blur();$(this).addClass(focusClass).focus();}else{$(this).removeClass(focusClass);}}).on('keydown',function(event){var container=controls.square,draggable=controls.squareDrag,position=draggable.position(),distance=self.options.width/100;if(event.altKey){distance*=10;}switch(event.keyCode){case 37:position.left-=distance;break;case 38:position.top-=distance;break;case 39:position.left+=distance;break;case 40:position.top+=distance;break;default:return true;}position.left=Math.max(0,Math.min(position.left,container.width()));position.top=Math.max(0,Math.min(position.top,container.height()));draggable.css(position);self._squareDrag(event,{position:position});event.preventDefault();});square.mousedown(function(event){var squareOffset,pos;if(event.which!==1){return;}if(!$(event.target).is('div')){return;}squareOffset=self.controls.square.offset();pos={top:event.pageY-squareOffset.top,left:event.pageX-squareOffset.left};event.preventDefault();self._squareDrag(event,{position:pos});event.target=self.controls.squareDrag.get(0);self.controls.squareDrag.css(pos).trigger(event);});if(self.options.palettes){self._paletteListeners();}},_paletteListeners:function(){var self=this;self.picker.find('.iris-palette-container').on('click.palette','.iris-palette',function(){self._color.fromCSS($(this).data('color'));self.active='external';self._change();}).on('keydown.palette','.iris-palette',function(event){if(!(event.keyCode===13||event.keyCode===32)){return true;}event.stopPropagation();$(this).click();});},_squareDrag:function(event,ui){var self=this,controlOpts=self.options.controls,dimensions=self._squareDimensions(),vertVal=Math.round((dimensions.h-ui.position.top)/dimensions.h*self._scale[controlOpts.vert]),horizVal=self._scale[controlOpts.horiz]-Math.round((dimensions.w-ui.position.left)/dimensions.w*self._scale[controlOpts.horiz]);self._color[controlOpts.horiz](horizVal)[controlOpts.vert](vertVal);self.active='square';self._change.apply(self,arguments);},_setOption:function(key,value){var self=this,oldValue=self.options[key],doDimensions=false,hexLessColor,newColor,method;self.options[key]=value;switch(key){case'color':value=''+value;hexLessColor=value.replace(/^#/,'');newColor=new Color(value).setHSpace(self.options.mode);if(newColor.error){self.options[key]=oldValue;}else{self._color=newColor;self.options.color=self.options[key]=self._color.toString();self.active='external';self._change();}break;case'palettes':doDimensions=true;if(value){self._addPalettes();}else{self.picker.find('.iris-palette-container').remove();}if(!oldValue){self._paletteListeners();}break;case'width':doDimensions=true;break;case'border':doDimensions=true;method=value?'addClass':'removeClass';self.picker[method]('iris-border');break;case'mode':case'controls':if(oldValue===value){return;}method=self.element;oldValue=self.options;oldValue.hide=!self.picker.is(':visible');self.destroy();self.picker.remove();return $(self.element).iris(oldValue);}if(doDimensions){self._dimensions(true);}},_squareDimensions:function(forceRefresh){var square=this.controls.square,dimensions,control;if(forceRefresh!==undef&&square.data('dimensions')){return square.data('dimensions');}control=this.controls.squareDrag;dimensions={w:square.width(),h:square.height()};square.data('dimensions',dimensions);return dimensions;},_isNonHueControl:function(active,type){if(active==='square'&&this.options.controls.strip==='h'){return true;}else if(type==='external'||(type==='h'&&active==='strip')){return false;}return true;},_change:function(){var self=this,controls=self.controls,color=self._getHSpaceColor(),actions=['square','strip'],controlOpts=self.options.controls,type=controlOpts[self.active]||'external',oldHue=self.hue;if(self.active==='strip'){actions=[];}else if(self.active!=='external'){actions.pop();}$.each(actions,function(index,item){var value,dimensions,cssObj;if(item!==self.active){switch(item){case'strip':value=(controlOpts.strip==='h')?self._scale[controlOpts.strip]-color[controlOpts.strip]:color[controlOpts.strip];controls.stripSlider.slider('value',value);break;case'square':dimensions=self._squareDimensions();cssObj={left:color[controlOpts.horiz]/self._scale[controlOpts.horiz]*dimensions.w,top:dimensions.h-(color[controlOpts.vert]/self._scale[controlOpts.vert]*dimensions.h)};self.controls.squareDrag.css(cssObj);break;}}});if(color.h!==oldHue&&self._isNonHueControl(self.active,type)){self._color.h(oldHue);}self.hue=self._color.h();self.options.color=self._color.toString();if(self._inited){self._trigger('change',{type:self.active},{color:self._color});}if(self.element.is(':input')&&!self._color.error){self.element.removeClass('iris-error');if(self.element.val()!==self._color.toString()){self.element.val(self._color.toString());}}self._paint();self._inited=true;self.active=false;},_debounce:function(func,wait,immediate){var timeout,result;return function(){var context=this,args=arguments,later,callNow;later=function(){timeout=null;if(!immediate){result=func.apply(context,args);}};callNow=immediate&&!timeout;clearTimeout(timeout);timeout=setTimeout(later,wait);if(callNow){result=func.apply(context,args);}return result;};},show:function(){this.picker.show();},hide:function(){this.picker.hide();},toggle:function(){this.picker.toggle();},color:function(newColor){if(newColor===true){return this._color.clone();}else if(newColor===undef){return this._color.toString();}this.option('color',newColor);}};$.widget('a8c.iris',Iris);$('<style id="iris-css">'+_css+'</style>').appendTo('head');}(jQuery));(function(global,undef){var Color=function(color,type){if(!(this instanceof Color))return new Color(color,type);return this._init(color,type);};Color.fn=Color.prototype={_color:0,_alpha:1,error:false,_hsl:{h:0,s:0,l:0},_hsv:{h:0,s:0,v:0},_hSpace:'hsl',_init:function(color){var func='noop';switch(typeof color){case'object':if(color.a!==undef)this.a(color.a);func=(color.r!==undef)?'fromRgb':(color.l!==undef)?'fromHsl':(color.v!==undef)?'fromHsv':func;return this[func](color);case'string':return this.fromCSS(color);case'number':return this.fromInt(parseInt(color,10));}return this;},_error:function(){this.error=true;return this;},clone:function(){var newColor=new Color(this.toInt()),copy=['_alpha','_hSpace','_hsl','_hsv','error'];for(var i=copy.length-1;i>=0;i--){newColor[copy[i]]=this[copy[i]];}return newColor;},setHSpace:function(space){this._hSpace=(space==='hsv')?space:'hsl';return this;},noop:function(){return this;},fromCSS:function(color){var list,leadingRE=/^(rgb|hs(l|v))a?\(/;this.error=false;color=color.replace(/^\s+/,'').replace(/\s+$/,'').replace(/;$/,'');if(color.match(leadingRE)&&color.match(/\)$/)){list=color.replace(/(\s|%)/g,'').replace(leadingRE,'').replace(/,?\);?$/,'').split(',');if(list.length<3)return this._error();if(list.length===4){this.a(parseFloat(list.pop()));if(this.error)return this;}for(var i=list.length-1;i>=0;i--){list[i]=parseInt(list[i],10);if(isNaN(list[i]))return this._error();}if(color.match(/^rgb/)){return this.fromRgb({r:list[0],g:list[1],b:list[2]});}else if(color.match(/^hsv/)){return this.fromHsv({h:list[0],s:list[1],v:list[2]});}else{return this.fromHsl({h:list[0],s:list[1],l:list[2]});}}else{return this.fromHex(color);}},fromRgb:function(rgb,preserve){if(typeof rgb!=='object'||rgb.r===undef||rgb.g===undef||rgb.b===undef)return this._error();this.error=false;return this.fromInt(parseInt((rgb.r<<16)+(rgb.g<<8)+rgb.b,10),preserve);},fromHex:function(color){color=color.replace(/^#/,'').replace(/^0x/,'');if(color.length===3){color=color[0]+color[0]+color[1]+color[1]+color[2]+color[2];}this.error=!/^[0-9A-F]{6}$/i.test(color);return this.fromInt(parseInt(color,16));},fromHsl:function(hsl){var r,g,b,q,p,h,s,l;if(typeof hsl!=='object'||hsl.h===undef||hsl.s===undef||hsl.l===undef)return this._error();this._hsl=hsl;this._hSpace='hsl';h=hsl.h/360;s=hsl.s/100;l=hsl.l/100;if(s===0){r=g=b=l;}else{q=l<0.5?l*(1+s):l+s-l*s;p=2*l-q;r=this.hue2rgb(p,q,h+1/3);g=this.hue2rgb(p,q,h);b=this.hue2rgb(p,q,h-1/3);}return this.fromRgb({r:r*255,g:g*255,b:b*255},true);},fromHsv:function(hsv){var h,s,v,r,g,b,i,f,p,q,t;if(typeof hsv!=='object'||hsv.h===undef||hsv.s===undef||hsv.v===undef)return this._error();this._hsv=hsv;this._hSpace='hsv';h=hsv.h/360;s=hsv.s/100;v=hsv.v/100;i=Math.floor(h*6);f=h*6-i;p=v*(1-s);q=v*(1-f*s);t=v*(1-(1-f)*s);switch(i%6){case 0:r=v;g=t;b=p;break;case 1:r=q;g=v;b=p;break;case 2:r=p;g=v;b=t;break;case 3:r=p;g=q;b=v;break;case 4:r=t;g=p;b=v;break;case 5:r=v;g=p;b=q;break;}return this.fromRgb({r:r*255,g:g*255,b:b*255},true);},fromInt:function(color,preserve){this._color=parseInt(color,10);if(isNaN(this._color))this._color=0;if(this._color>16777215)this._color=16777215;else if(this._color<0)this._color=0;if(preserve===undef){this._hsv.h=this._hsv.s=this._hsl.h=this._hsl.s=0;}return this;},hue2rgb:function(p,q,t){if(t<0){t+=1;}if(t>1){t-=1;}if(t<1/6){return p+(q-p)*6*t;}if(t<1/2){return q;}if(t<2/3){return p+(q-p)*(2/3-t)*6;}return p;},toString:function(){var hex=parseInt(this._color,10).toString(16);if(this.error)return'';if(hex.length<6){for(var i=6-hex.length-1;i>=0;i--){hex='0'+hex;}}return'#'+hex;},toCSS:function(type,alpha){type=type||'hex';alpha=parseFloat(alpha||this._alpha);switch(type){case'rgb':case'rgba':var rgb=this.toRgb();if(alpha<1){return"rgba( "+rgb.r+", "+rgb.g+", "+rgb.b+", "+alpha+" )";}else{return"rgb( "+rgb.r+", "+rgb.g+", "+rgb.b+" )";}break;case'hsl':case'hsla':var hsl=this.toHsl();if(alpha<1){return"hsla( "+hsl.h+", "+hsl.s+"%, "+hsl.l+"%, "+alpha+" )";}else{return"hsl( "+hsl.h+", "+hsl.s+"%, "+hsl.l+"% )";}break;default:return this.toString();}},toRgb:function(){return{r:255&(this._color>>16),g:255&(this._color>>8),b:255&(this._color)};},toHsl:function(){var rgb=this.toRgb();var r=rgb.r/255,g=rgb.g/255,b=rgb.b/255;var max=Math.max(r,g,b),min=Math.min(r,g,b);var h,s,l=(max+min)/2;if(max===min){h=s=0;}else{var d=max-min;s=l>0.5?d/(2-max-min):d/(max+min);switch(max){case r:h=(g-b)/d+(g<b?6:0);break;case g:h=(b-r)/d+2;break;case b:h=(r-g)/d+4;break;}h/=6;}h=Math.round(h*360);if(h===0&&this._hsl.h!==h){h=this._hsl.h;}s=Math.round(s*100);if(s===0&&this._hsl.s){s=this._hsl.s;}return{h:h,s:s,l:Math.round(l*100)};},toHsv:function(){var rgb=this.toRgb();var r=rgb.r/255,g=rgb.g/255,b=rgb.b/255;var max=Math.max(r,g,b),min=Math.min(r,g,b);var h,s,v=max;var d=max-min;s=max===0?0:d/max;if(max===min){h=s=0;}else{switch(max){case r:h=(g-b)/d+(g<b?6:0);break;case g:h=(b-r)/d+2;break;case b:h=(r-g)/d+4;break;}h/=6;}h=Math.round(h*360);if(h===0&&this._hsv.h!==h){h=this._hsv.h;}s=Math.round(s*100);if(s===0&&this._hsv.s){s=this._hsv.s;}return{h:h,s:s,v:Math.round(v*100)};},toInt:function(){return this._color;},toIEOctoHex:function(){var hex=this.toString();var AA=parseInt(255*this._alpha,10).toString(16);if(AA.length===1){AA='0'+AA;}return'#'+AA+hex.replace(/^#/,'');},toLuminosity:function(){var rgb=this.toRgb();return 0.2126*Math.pow(rgb.r/255,2.2)+0.7152*Math.pow(rgb.g/255,2.2)+0.0722*Math.pow(rgb.b/255,2.2);},getDistanceLuminosityFrom:function(color){if(!(color instanceof Color)){throw'getDistanceLuminosityFrom requires a Color object';}var lum1=this.toLuminosity();var lum2=color.toLuminosity();if(lum1>lum2){return(lum1+0.05)/(lum2+0.05);}else{return(lum2+0.05)/(lum1+0.05);}},getMaxContrastColor:function(){var lum=this.toLuminosity();var hex=(lum>=0.5)?'000000':'ffffff';return new Color(hex);},getReadableContrastingColor:function(bgColor,minContrast){if(!bgColor instanceof Color){return this;}var targetContrast=(minContrast===undef)?5:minContrast;var contrast=bgColor.getDistanceLuminosityFrom(this);var maxContrastColor=bgColor.getMaxContrastColor();var maxContrast=maxContrastColor.getDistanceLuminosityFrom(bgColor);if(maxContrast<=targetContrast){return maxContrastColor;}else if(contrast>=targetContrast){return this;}var incr=(0===maxContrastColor.toInt())?-1:1;while(contrast<targetContrast){this.l(incr,true);contrast=this.getDistanceLuminosityFrom(bgColor);if(this._color===0||this._color===16777215){break;}}return this;},a:function(val){if(val===undef)return this._alpha;var a=parseFloat(val);if(isNaN(a))return this._error();this._alpha=a;return this;},darken:function(amount){amount=amount||5;return this.l(-amount,true);},lighten:function(amount){amount=amount||5;return this.l(amount,true);},saturate:function(amount){amount=amount||15;return this.s(amount,true);},desaturate:function(amount){amount=amount||15;return this.s(-amount,true);},toGrayscale:function(){return this.setHSpace('hsl').s(0);},getComplement:function(){return this.h(180,true);},getSplitComplement:function(step){step=step||1;var incr=180+(step*30);return this.h(incr,true);},getAnalog:function(step){step=step||1;var incr=step*30;return this.h(incr,true);},getTetrad:function(step){step=step||1;var incr=step*60;return this.h(incr,true);},getTriad:function(step){step=step||1;var incr=step*120;return this.h(incr,true);},_partial:function(key){var prop=shortProps[key];return function(val,incr){var color=this._spaceFunc('to',prop.space);if(val===undef)return color[key];if(incr===true)val=color[key]+val;if(prop.mod)val=val%prop.mod;if(prop.range)val=(val<prop.range[0])?prop.range[0]:(val>prop.range[1])?prop.range[1]:val;color[key]=val;return this._spaceFunc('from',prop.space,color);};},_spaceFunc:function(dir,s,val){var space=s||this._hSpace,funcName=dir+space.charAt(0).toUpperCase()+space.substr(1);return this[funcName](val);}};var shortProps={h:{mod:360},s:{range:[0,100]},l:{space:'hsl',range:[0,100]},v:{space:'hsv',range:[0,100]},r:{space:'rgb',range:[0,255]},g:{space:'rgb',range:[0,255]},b:{space:'rgb',range:[0,255]}};for(var key in shortProps){if(shortProps.hasOwnProperty(key))Color.fn[key]=Color.fn._partial(key);}if(typeof exports==='object')module.exports=Color;else global.Color=Color;}(this));jQuery(function(){function applyPreview(target){var $style=target.jQuery('link[rel=stylesheet][href*="lib/exe/css.php"]');$style.attr('href','');var $loader=target.jQuery('#plugin__styling_loader');if(!$loader.length){$loader=target.jQuery('<div id="plugin__styling_loader">'+LANG.plugins.styling.loader+'</div>');$loader.css({'position':'absolute','width':'100%','height':'100%','top':0,'left':0,'z-index':5000,'background-color':'#fff','opacity':'0.7','color':'#000','font-size':'2.5em','text-align':'center','line-height':1.5,'padding-top':'2em'});target.jQuery('body').append($loader);}setTimeout(function(){var now=new Date().getTime();$style.attr('href',DOKU_BASE+'lib/exe/css.php?preview=1&tseed='+now);},500);}var doreload=1;var $styling_plugin=jQuery('#plugin__styling');if(!$styling_plugin.length){if(DokuCookie.getValue('styling_plugin')==1){applyPreview(window);}return;}$styling_plugin.find('.color').iris({});if(!$styling_plugin.hasClass('ispopup')){var $form=$styling_plugin.find('form.styling').first();var $btn=jQuery('<button>'+LANG.plugins.styling.popup+'</button>');$form.prepend($btn);$btn.click(function(e){var windowFeatures="menubar=no,location=no,resizable=yes,scrollbars=yes,status=false,width=500,height=500";window.open(DOKU_BASE+'lib/plugins/styling/popup.php','styling_popup',windowFeatures);e.preventDefault();e.stopPropagation();}).wrap('<p></p>');return;}window.onunload=function(e){if(doreload){window.opener.DokuCookie.setValue('styling_plugin',0);window.opener.document.location.reload();}return null;};jQuery(':button').click(function(e){doreload=false;});applyPreview(window.opener);window.opener.DokuCookie.setValue('styling_plugin',1);});jQuery(function(){jQuery('#usrmgr__del').click(function(){return confirm(LANG.del_confirm);});});jQuery(function(){dw_locktimer.init(840,1);});
diff --git a/wiki/data/cache/f/f724e027053cd84fef3f83b6517c65cf.js.gz b/wiki/data/cache/f/f724e027053cd84fef3f83b6517c65cf.js.gz
deleted file mode 100644
index 8e0212f..0000000
--- a/wiki/data/cache/f/f724e027053cd84fef3f83b6517c65cf.js.gz
+++ /dev/null
Binary files differdiff --git a/wiki/data/cache/purgefile b/wiki/data/cache/purgefile
deleted file mode 100644
index 646dc3a..0000000
--- a/wiki/data/cache/purgefile
+++ /dev/null
@@ -1 +0,0 @@
-1543882598
\ No newline at end of file
diff --git a/wiki/data/deleted.files b/wiki/data/deleted.files
deleted file mode 100644
index efd0c37..0000000
--- a/wiki/data/deleted.files
+++ /dev/null
@@ -1,718 +0,0 @@
-# This is a list of files that were present in previous DokuWiki releases
-# but were removed later. An up to date DokuWiki should not have any of
-# the files installed
-
-# removed in 2018-04-22
-data/security.png
-data/security.xcf
-inc/EmailAddressValidator.php
-inc/blowfish.php
-inc/feedcreator.class.php
-inc/lessc.inc.php
-inc/plugin.php
-lib/images/loading.gif
-lib/tpl/dokuwiki/css/_search.css
-vendor/easybook/geshi
-vendor/phpseclib/phpseclib/composer.lock
-
-# 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
-
-# removed in 2015-08-10
-inc/TarLib.class.php
-inc/geshi.php
-inc/geshi/4cs.php
-inc/geshi/6502acme.php
-inc/geshi/6502kickass.php
-inc/geshi/6502tasm.php
-inc/geshi/68000devpac.php
-inc/geshi/abap.php
-inc/geshi/actionscript-french.php
-inc/geshi/actionscript.php
-inc/geshi/actionscript3.php
-inc/geshi/ada.php
-inc/geshi/algol68.php
-inc/geshi/apache.php
-inc/geshi/applescript.php
-inc/geshi/apt_sources.php
-inc/geshi/arm.php
-inc/geshi/asm.php
-inc/geshi/asp.php
-inc/geshi/asymptote.php
-inc/geshi/autoconf.php
-inc/geshi/autohotkey.php
-inc/geshi/autoit.php
-inc/geshi/avisynth.php
-inc/geshi/awk.php
-inc/geshi/bascomavr.php
-inc/geshi/bash.php
-inc/geshi/basic4gl.php
-inc/geshi/bf.php
-inc/geshi/bibtex.php
-inc/geshi/blitzbasic.php
-inc/geshi/bnf.php
-inc/geshi/boo.php
-inc/geshi/c.php
-inc/geshi/c_loadrunner.php
-inc/geshi/c_mac.php
-inc/geshi/caddcl.php
-inc/geshi/cadlisp.php
-inc/geshi/cfdg.php
-inc/geshi/cfm.php
-inc/geshi/chaiscript.php
-inc/geshi/cil.php
-inc/geshi/clojure.php
-inc/geshi/cmake.php
-inc/geshi/cobol.php
-inc/geshi/coffeescript.php
-inc/geshi/cpp-qt.php
-inc/geshi/cpp.php
-inc/geshi/csharp.php
-inc/geshi/css.php
-inc/geshi/cuesheet.php
-inc/geshi/d.php
-inc/geshi/dcl.php
-inc/geshi/dcpu16.php
-inc/geshi/dcs.php
-inc/geshi/delphi.php
-inc/geshi/diff.php
-inc/geshi/div.php
-inc/geshi/dos.php
-inc/geshi/dot.php
-inc/geshi/e.php
-inc/geshi/ecmascript.php
-inc/geshi/eiffel.php
-inc/geshi/email.php
-inc/geshi/epc.php
-inc/geshi/erlang.php
-inc/geshi/euphoria.php
-inc/geshi/f1.php
-inc/geshi/falcon.php
-inc/geshi/fo.php
-inc/geshi/fortran.php
-inc/geshi/freebasic.php
-inc/geshi/freeswitch.php
-inc/geshi/fsharp.php
-inc/geshi/gambas.php
-inc/geshi/gdb.php
-inc/geshi/genero.php
-inc/geshi/genie.php
-inc/geshi/gettext.php
-inc/geshi/glsl.php
-inc/geshi/gml.php
-inc/geshi/gnuplot.php
-inc/geshi/go.php
-inc/geshi/groovy.php
-inc/geshi/gwbasic.php
-inc/geshi/haskell.php
-inc/geshi/haxe.php
-inc/geshi/hicest.php
-inc/geshi/hq9plus.php
-inc/geshi/html4strict.php
-inc/geshi/html5.php
-inc/geshi/icon.php
-inc/geshi/idl.php
-inc/geshi/ini.php
-inc/geshi/inno.php
-inc/geshi/intercal.php
-inc/geshi/io.php
-inc/geshi/j.php
-inc/geshi/java.php
-inc/geshi/java5.php
-inc/geshi/javascript.php
-inc/geshi/jquery.php
-inc/geshi/kixtart.php
-inc/geshi/klonec.php
-inc/geshi/klonecpp.php
-inc/geshi/latex.php
-inc/geshi/lb.php
-inc/geshi/ldif.php
-inc/geshi/lisp.php
-inc/geshi/llvm.php
-inc/geshi/locobasic.php
-inc/geshi/logtalk.php
-inc/geshi/lolcode.php
-inc/geshi/lotusformulas.php
-inc/geshi/lotusscript.php
-inc/geshi/lscript.php
-inc/geshi/lsl2.php
-inc/geshi/lua.php
-inc/geshi/m68k.php
-inc/geshi/magiksf.php
-inc/geshi/make.php
-inc/geshi/mapbasic.php
-inc/geshi/matlab.php
-inc/geshi/mirc.php
-inc/geshi/mmix.php
-inc/geshi/modula2.php
-inc/geshi/modula3.php
-inc/geshi/mpasm.php
-inc/geshi/mxml.php
-inc/geshi/mysql.php
-inc/geshi/nagios.php
-inc/geshi/netrexx.php
-inc/geshi/newlisp.php
-inc/geshi/nsis.php
-inc/geshi/oberon2.php
-inc/geshi/objc.php
-inc/geshi/objeck.php
-inc/geshi/ocaml-brief.php
-inc/geshi/ocaml.php
-inc/geshi/octave.php
-inc/geshi/oobas.php
-inc/geshi/oorexx.php
-inc/geshi/oracle11.php
-inc/geshi/oracle8.php
-inc/geshi/oxygene.php
-inc/geshi/oz.php
-inc/geshi/parasail.php
-inc/geshi/parigp.php
-inc/geshi/pascal.php
-inc/geshi/pcre.php
-inc/geshi/per.php
-inc/geshi/perl.php
-inc/geshi/perl6.php
-inc/geshi/pf.php
-inc/geshi/php-brief.php
-inc/geshi/php.php
-inc/geshi/pic16.php
-inc/geshi/pike.php
-inc/geshi/pixelbender.php
-inc/geshi/pli.php
-inc/geshi/plsql.php
-inc/geshi/postgresql.php
-inc/geshi/povray.php
-inc/geshi/powerbuilder.php
-inc/geshi/powershell.php
-inc/geshi/proftpd.php
-inc/geshi/progress.php
-inc/geshi/prolog.php
-inc/geshi/properties.php
-inc/geshi/providex.php
-inc/geshi/purebasic.php
-inc/geshi/pycon.php
-inc/geshi/pys60.php
-inc/geshi/python.php
-inc/geshi/q.php
-inc/geshi/qbasic.php
-inc/geshi/rails.php
-inc/geshi/rebol.php
-inc/geshi/reg.php
-inc/geshi/rexx.php
-inc/geshi/robots.php
-inc/geshi/rpmspec.php
-inc/geshi/rsplus.php
-inc/geshi/ruby.php
-inc/geshi/sas.php
-inc/geshi/scala.php
-inc/geshi/scheme.php
-inc/geshi/scilab.php
-inc/geshi/sdlbasic.php
-inc/geshi/smalltalk.php
-inc/geshi/smarty.php
-inc/geshi/spark.php
-inc/geshi/sparql.php
-inc/geshi/sql.php
-inc/geshi/stonescript.php
-inc/geshi/systemverilog.php
-inc/geshi/tcl.php
-inc/geshi/teraterm.php
-inc/geshi/text.php
-inc/geshi/thinbasic.php
-inc/geshi/tsql.php
-inc/geshi/typoscript.php
-inc/geshi/unicon.php
-inc/geshi/upc.php
-inc/geshi/urbi.php
-inc/geshi/uscript.php
-inc/geshi/vala.php
-inc/geshi/vb.php
-inc/geshi/vbnet.php
-inc/geshi/vedit.php
-inc/geshi/verilog.php
-inc/geshi/vhdl.php
-inc/geshi/vim.php
-inc/geshi/visualfoxpro.php
-inc/geshi/visualprolog.php
-inc/geshi/whitespace.php
-inc/geshi/whois.php
-inc/geshi/winbatch.php
-inc/geshi/xbasic.php
-inc/geshi/xml.php
-inc/geshi/xorg_conf.php
-inc/geshi/xpp.php
-inc/geshi/yaml.php
-inc/geshi/z80.php
-inc/geshi/zxbasic.php
-lib/images/interwiki/coral.gif
-lib/images/interwiki/dokubug.gif
-lib/images/interwiki/sb.gif
-lib/scripts/drag.js
-lib/scripts/jquery/jquery-ui-theme/images/animated-overlay.gif
-lib/scripts/tw-sack.js
-
-# removed in 2014-05-05
-lib/images/fileicons/audio.png
-lib/plugins/plugin/admin.php
-lib/plugins/plugin/classes/ap_delete.class.php
-lib/plugins/plugin/classes/ap_download.class.php
-lib/plugins/plugin/classes/ap_enable.class.php
-lib/plugins/plugin/classes/ap_info.class.php
-lib/plugins/plugin/classes/ap_manage.class.php
-lib/plugins/plugin/classes/ap_update.class.php
-lib/plugins/plugin/lang/af/lang.php
-lib/plugins/plugin/lang/ar/admin_plugin.txt
-lib/plugins/plugin/lang/ar/lang.php
-lib/plugins/plugin/lang/bg/admin_plugin.txt
-lib/plugins/plugin/lang/bg/lang.php
-lib/plugins/plugin/lang/ca-valencia/admin_plugin.txt
-lib/plugins/plugin/lang/ca-valencia/lang.php
-lib/plugins/plugin/lang/ca/admin_plugin.txt
-lib/plugins/plugin/lang/ca/lang.php
-lib/plugins/plugin/lang/cs/admin_plugin.txt
-lib/plugins/plugin/lang/cs/lang.php
-lib/plugins/plugin/lang/da/admin_plugin.txt
-lib/plugins/plugin/lang/da/lang.php
-lib/plugins/plugin/lang/de-informal/admin_plugin.txt
-lib/plugins/plugin/lang/de-informal/lang.php
-lib/plugins/plugin/lang/de/admin_plugin.txt
-lib/plugins/plugin/lang/de/lang.php
-lib/plugins/plugin/lang/el/admin_plugin.txt
-lib/plugins/plugin/lang/el/lang.php
-lib/plugins/plugin/lang/en/admin_plugin.txt
-lib/plugins/plugin/lang/en/lang.php
-lib/plugins/plugin/lang/eo/admin_plugin.txt
-lib/plugins/plugin/lang/eo/lang.php
-lib/plugins/plugin/lang/es/admin_plugin.txt
-lib/plugins/plugin/lang/es/lang.php
-lib/plugins/plugin/lang/et/lang.php
-lib/plugins/plugin/lang/eu/admin_plugin.txt
-lib/plugins/plugin/lang/eu/lang.php
-lib/plugins/plugin/lang/fa/admin_plugin.txt
-lib/plugins/plugin/lang/fa/lang.php
-lib/plugins/plugin/lang/fi/admin_plugin.txt
-lib/plugins/plugin/lang/fi/lang.php
-lib/plugins/plugin/lang/fr/admin_plugin.txt
-lib/plugins/plugin/lang/fr/lang.php
-lib/plugins/plugin/lang/gl/admin_plugin.txt
-lib/plugins/plugin/lang/gl/lang.php
-lib/plugins/plugin/lang/he/admin_plugin.txt
-lib/plugins/plugin/lang/he/lang.php
-lib/plugins/plugin/lang/hi/lang.php
-lib/plugins/plugin/lang/hr/lang.php
-lib/plugins/plugin/lang/hu/admin_plugin.txt
-lib/plugins/plugin/lang/hu/lang.php
-lib/plugins/plugin/lang/ia/admin_plugin.txt
-lib/plugins/plugin/lang/ia/lang.php
-lib/plugins/plugin/lang/id-ni/lang.php
-lib/plugins/plugin/lang/id/lang.php
-lib/plugins/plugin/lang/is/lang.php
-lib/plugins/plugin/lang/it/admin_plugin.txt
-lib/plugins/plugin/lang/it/lang.php
-lib/plugins/plugin/lang/ja/admin_plugin.txt
-lib/plugins/plugin/lang/ja/lang.php
-lib/plugins/plugin/lang/kk/lang.php
-lib/plugins/plugin/lang/ko/admin_plugin.txt
-lib/plugins/plugin/lang/ko/lang.php
-lib/plugins/plugin/lang/la/admin_plugin.txt
-lib/plugins/plugin/lang/la/lang.php
-lib/plugins/plugin/lang/lb/admin_plugin.txt
-lib/plugins/plugin/lang/lb/lang.php
-lib/plugins/plugin/lang/lt/admin_plugin.txt
-lib/plugins/plugin/lang/lt/lang.php
-lib/plugins/plugin/lang/lv/admin_plugin.txt
-lib/plugins/plugin/lang/lv/lang.php
-lib/plugins/plugin/lang/mk/lang.php
-lib/plugins/plugin/lang/mr/admin_plugin.txt
-lib/plugins/plugin/lang/mr/lang.php
-lib/plugins/plugin/lang/ms/lang.php
-lib/plugins/plugin/lang/ne/lang.php
-lib/plugins/plugin/lang/nl/admin_plugin.txt
-lib/plugins/plugin/lang/nl/lang.php
-lib/plugins/plugin/lang/no/admin_plugin.txt
-lib/plugins/plugin/lang/no/lang.php
-lib/plugins/plugin/lang/pl/admin_plugin.txt
-lib/plugins/plugin/lang/pl/lang.php
-lib/plugins/plugin/lang/pt-br/admin_plugin.txt
-lib/plugins/plugin/lang/pt-br/lang.php
-lib/plugins/plugin/lang/pt/admin_plugin.txt
-lib/plugins/plugin/lang/pt/lang.php
-lib/plugins/plugin/lang/ro/admin_plugin.txt
-lib/plugins/plugin/lang/ro/lang.php
-lib/plugins/plugin/lang/ru/admin_plugin.txt
-lib/plugins/plugin/lang/ru/lang.php
-lib/plugins/plugin/lang/sk/admin_plugin.txt
-lib/plugins/plugin/lang/sk/lang.php
-lib/plugins/plugin/lang/sl/admin_plugin.txt
-lib/plugins/plugin/lang/sl/lang.php
-lib/plugins/plugin/lang/sq/admin_plugin.txt
-lib/plugins/plugin/lang/sq/lang.php
-lib/plugins/plugin/lang/sr/admin_plugin.txt
-lib/plugins/plugin/lang/sr/lang.php
-lib/plugins/plugin/lang/sv/admin_plugin.txt
-lib/plugins/plugin/lang/sv/lang.php
-lib/plugins/plugin/lang/th/admin_plugin.txt
-lib/plugins/plugin/lang/th/lang.php
-lib/plugins/plugin/lang/tr/admin_plugin.txt
-lib/plugins/plugin/lang/tr/lang.php
-lib/plugins/plugin/lang/uk/admin_plugin.txt
-lib/plugins/plugin/lang/uk/lang.php
-lib/plugins/plugin/lang/vi/lang.php
-lib/plugins/plugin/lang/zh-tw/admin_plugin.txt
-lib/plugins/plugin/lang/zh-tw/lang.php
-lib/plugins/plugin/lang/zh/admin_plugin.txt
-lib/plugins/plugin/lang/zh/lang.php
-lib/plugins/plugin/plugin.info.txt
-lib/plugins/plugin/style.css
-
-# removed in 2013-11-18
-lib/images/arrow_down.gif
-lib/images/arrow_up.gif
-lib/images/at.gif
-lib/images/close.png
-lib/images/del.png
-lib/images/edit.gif
-lib/images/list-minus.gif
-lib/images/list-plus.gif
-lib/images/pencil.png
-
-# removed in 2013-10-28
-lib/images/interwiki/meatball.gif
-lib/images/interwiki/wiki.gif
-lib/plugins/acl/ajax.php
-lib/tpl/default/_admin.css
-lib/tpl/default/_fileuploader.css
-lib/tpl/default/_linkwiz.css
-lib/tpl/default/_mediamanager.css
-lib/tpl/default/_mediaoptions.css
-lib/tpl/default/_subscription.css
-lib/tpl/default/_tabs.css
-lib/tpl/default/design.css
-lib/tpl/default/detail.php
-lib/tpl/default/footer.html
-lib/tpl/default/images/UWEB.png
-lib/tpl/default/images/UWEBshadow.png
-lib/tpl/default/images/apple-touch-icon.png
-lib/tpl/default/images/bullet.gif
-lib/tpl/default/images/button-cc.gif
-lib/tpl/default/images/button-css.png
-lib/tpl/default/images/button-donate.gif
-lib/tpl/default/images/button-dw.png
-lib/tpl/default/images/button-php.gif
-lib/tpl/default/images/button-rss.png
-lib/tpl/default/images/button-xhtml.png
-lib/tpl/default/images/buttonshadow.png
-lib/tpl/default/images/closed.gif
-lib/tpl/default/images/favicon.ico
-lib/tpl/default/images/inputshadow.png
-lib/tpl/default/images/link_icon.gif
-lib/tpl/default/images/mail_icon.gif
-lib/tpl/default/images/open.gif
-lib/tpl/default/images/resizecol.png
-lib/tpl/default/images/tocdot2.gif
-lib/tpl/default/images/windows.gif
-lib/tpl/default/layout.css
-lib/tpl/default/main.php
-lib/tpl/default/media.css
-lib/tpl/default/mediamanager.php
-lib/tpl/default/print.css
-lib/tpl/default/rtl.css
-lib/tpl/default/style.ini
-lib/tpl/default/template.info.txt
-lib/tpl/dokuwiki/css/basic.css
-lib/tpl/dokuwiki/css/content.css
-lib/tpl/dokuwiki/css/design.css
-lib/tpl/dokuwiki/css/includes.css
-lib/tpl/dokuwiki/css/mobile.css
-lib/tpl/dokuwiki/css/pagetools.css
-lib/tpl/dokuwiki/css/structure.css
-
-# removed in 2013-05-10
-lib/plugins/info/lang/sl/lang.php
-
-# removed in 2013-04-06
-inc/adLDAP.php
-inc/auth/ad.class.php
-inc/auth/basic.class.php
-inc/auth/ldap.class.php
-inc/auth/mysql.class.php
-inc/auth/pgsql.class.php
-inc/auth/plain.class.php
-
-# removed in 2012-09-10
-lib/images/icon-file.png
-lib/images/icon-thumb.png
-lib/images/interwiki/skype.png
-lib/plugins/acl/rtl.css
-lib/plugins/config/rtl.css
-lib/plugins/plugin/rtl.css
-
-# removed in 2011-11-10
-lib/_fla/.htaccess
-lib/_fla/MultipleUpload.as
-lib/_fla/README
-lib/_fla/index.html
-lib/_fla/multipleUpload.fla
-lib/exe/multipleUpload.swf
-lib/images/multiupload.png
-lib/scripts/ajax.js
-lib/scripts/events.js
-lib/scripts/subscriptions.js
-
-# removed in 2011-05-25
-conf/words.aspell.dist
-lib/styles/style.css
-
-# removed in 2010-11-07
-inc/lang/ar/subscribermail.txt
-inc/lang/az/subscribermail.txt
-inc/lang/bg/subscribermail.txt
-inc/lang/ca/subscribermail.txt
-inc/lang/ca-valencia/subscribermail.txt
-inc/lang/cs/subscribermail.txt
-inc/lang/da/subscribermail.txt
-inc/lang/de-informal/subscribermail.txt
-inc/lang/el/subscribermail.txt
-inc/lang/eo/subscribermail.txt
-inc/lang/es/subscribermail.txt
-inc/lang/et/subscribermail.txt
-inc/lang/eu/subscribermail.txt
-inc/lang/fa/subscribermail.txt
-inc/lang/fi/subscribermail.txt
-inc/lang/fo/subscribermail.txt
-inc/lang/fr/subscribermail.txt
-inc/lang/gl/subscribermail.txt
-inc/lang/he/subscribermail.txt
-inc/lang/hr/subscribermail.txt
-inc/lang/hu/subscribermail.txt
-inc/lang/id/subscribermail.txt
-inc/lang/is/subscribermail.txt
-inc/lang/it/subscribermail.txt
-inc/lang/ja/subscribermail.txt
-inc/lang/ko/subscribermail.txt
-inc/lang/ku/subscribermail.txt
-inc/lang/lt/subscribermail.txt
-inc/lang/lv/subscribermail.txt
-inc/lang/mr/subscribermail.txt
-inc/lang/ne/subscribermail.txt
-inc/lang/nl/subscribermail.txt
-inc/lang/no/subscribermail.txt
-inc/lang/pl/subscribermail.txt
-inc/lang/pt-br/subscribermail.txt
-inc/lang/pt/subscribermail.txt
-inc/lang/ro/subscribermail.txt
-inc/lang/ru/subscribermail.txt
-inc/lang/sk/subscribermail.txt
-inc/lang/sr/subscribermail.txt
-inc/lang/sv/subscribermail.txt
-inc/lang/th/subscribermail.txt
-inc/lang/tr/subscribermail.txt
-inc/lang/uk/subscribermail.txt
-inc/lang/zh/subscribermail.txt
-inc/lang/zh-tw/subscribermail.txt
-
-# removed in rc2010-10-07
-conf/msg
-inc/lang/bg/wordblock.txt
-inc/lang/ca-valencia/wordblock.txt
-inc/lang/ca/wordblock.txt
-inc/lang/cs/wordblock.txt
-inc/lang/da/wordblock.txt
-inc/lang/de-informal/wordblock.txt
-inc/lang/de/subscribermail.txt
-inc/lang/de/wordblock.txt
-inc/lang/el/wordblock.txt
-inc/lang/en/subscribermail.txt
-inc/lang/en/wordblock.txt
-inc/lang/eo/wordblock.txt
-inc/lang/es/wordblock.txt
-inc/lang/et/wordblock.txt
-inc/lang/eu/wordblock.txt
-inc/lang/fa/wordblock.txt
-inc/lang/fi/wordblock.txt
-inc/lang/fo/wordblock.txt
-inc/lang/fr/wordblock.txt
-inc/lang/he/wordblock.txt
-inc/lang/hr/wordblock.txt
-inc/lang/hu/wordblock.txt
-inc/lang/id/wordblock.txt
-inc/lang/it/wordblock.txt
-inc/lang/ja/wordblock.txt
-inc/lang/ko/wordblock.txt
-inc/lang/ku/wordblock.txt
-inc/lang/lt/wordblock.txt
-inc/lang/lv/wordblock.txt
-inc/lang/mg/wordblock.txt
-inc/lang/mr/wordblock.txt
-inc/lang/nl/wordblock.txt
-inc/lang/no/wordblock.txt
-inc/lang/pl/wordblock.txt
-inc/lang/pt-br/wordblock.txt
-inc/lang/pt/wordblock.txt
-inc/lang/ro/wordblock.txt
-inc/lang/sk/wordblock.txt
-inc/lang/sl/wordblock.txt
-inc/lang/sr/wordblock.txt
-inc/lang/sv/wordblock.txt
-inc/lang/th/wordblock.txt
-inc/lang/tr/wordblock.txt
-inc/lang/uk/wordblock.txt
-inc/lang/vi/wordblock.txt
-inc/lang/zh-tw/wordblock.txt
-inc/lang/zh/wordblock.txt
-lib/scripts/pngbehavior.htc
-
-# removed in rc2009-12-02
-inc/lang/ar/wordblock.txt
-inc/lang/ca-va/
-lib/plugins/acl/lang/ca-va/
-lib/plugins/config/lang/ca-va/
-lib/plugins/plugin/lang/ca-va/
-lib/plugins/popularity/lang/ca-va/
-lib/plugins/revert/lang/ca-va/
-lib/plugins/usermanager/lang/ca-va/
-
-# removed in rc2009-01-30
-lib/plugins/upgradeplugindirectory
-lib/plugins/upgradeplugindirectory/action.php
-
-# removed in rc2009-01-26
-inc/auth/punbb.class.php
-inc/lang/ko/edit.txt_bak
-inc/lang/ko/lang.php_bak
-inc/lang/ku/admin_acl.txt
-inc/lang/mg/admin_acl.txt
-lib/plugins/importoldchangelog
-lib/plugins/importoldchangelog/action.php
-lib/plugins/importoldindex
-lib/plugins/importoldindex/action.php
-lib/plugins/usermanager/images/no_user_edit.png
-lib/plugins/usermanager/images/user_edit.png
-lib/tpl/default/UWEB.css
-
-# removed in rc2008-03-31
-inc/aspell.php
-inc/geshi/css-gen.cfg
-inc/lang/fr/admin_acl.txt
-lib/exe/spellcheck.php
-lib/images/toolbar/spellcheck.png
-lib/images/toolbar/spellnoerr.png
-lib/images/toolbar/spellstop.png
-lib/images/toolbar/spellwait.gif
-lib/plugins/acl/lang/ar/intro.txt
-lib/plugins/acl/lang/bg/intro.txt
-lib/plugins/acl/lang/ca/intro.txt
-lib/plugins/acl/lang/cs/intro.txt
-lib/plugins/acl/lang/da/intro.txt
-lib/plugins/acl/lang/de/intro.txt
-lib/plugins/acl/lang/el/intro.txt
-lib/plugins/acl/lang/en/intro.txt
-lib/plugins/acl/lang/es/intro.txt
-lib/plugins/acl/lang/et/intro.txt
-lib/plugins/acl/lang/eu/intro.txt
-lib/plugins/acl/lang/fi/intro.txt
-lib/plugins/acl/lang/fr/intro.txt
-lib/plugins/acl/lang/gl/intro.txt
-lib/plugins/acl/lang/he/intro.txt
-lib/plugins/acl/lang/id/intro.txt
-lib/plugins/acl/lang/it/intro.txt
-lib/plugins/acl/lang/ja/intro.txt
-lib/plugins/acl/lang/ko/intro.txt
-lib/plugins/acl/lang/lt/intro.txt
-lib/plugins/acl/lang/lv/intro.txt
-lib/plugins/acl/lang/nl/intro.txt
-lib/plugins/acl/lang/no/intro.txt
-lib/plugins/acl/lang/pl/intro.txt
-lib/plugins/acl/lang/pt/intro.txt
-lib/plugins/acl/lang/ru/intro.txt
-lib/plugins/acl/lang/sk/intro.txt
-lib/plugins/acl/lang/sr/intro.txt
-lib/plugins/acl/lang/sv/intro.txt
-lib/plugins/acl/lang/tr/intro.txt
-lib/plugins/acl/lang/uk/intro.txt
-lib/plugins/acl/lang/vi/intro.txt
-lib/plugins/acl/lang/zh/intro.txt
-lib/plugins/acl/lang/zh-tw/intro.txt
-lib/scripts/spellcheck.js
-lib/styles/spellcheck.css
-
-# removed in 2007-06-26
-inc/parser/wiki.php
-lib/images/interwiki/bug.gif
-lib/plugins/base.php
-lib/plugins/plugin/inc
-lib/plugins/plugin/inc/tarlib.class.php
-lib/plugins/plugin/inc/zip.lib.php
-lib/scripts/domLib.js
-lib/scripts/domTT.js
-
-# removed in 2006-11-06
-inc/admin_acl.php
-inc/magpie
-inc/magpie/rss_cache.inc
-inc/magpie/rss_fetch.inc
-inc/magpie/rss_parse.inc
-inc/magpie/rss_utils.inc
-lib/exe/media.php
-lib/tpl/default/mediaedit.php
-lib/tpl/default/media.php
-lib/tpl/default/mediaref.php
-
-# removed in 2006-03-09
-data/pages/wiki/playground.txt
-inc/auth/ldap.php
-inc/auth/mysql.php
-inc/auth/pgsql.php
-inc/auth/plain.php
-inc/lang/ca/admin_acl.txt
-inc/lang/cs/admin_acl.txt
-inc/lang/da/admin_acl.txt
-inc/lang/de/admin_acl.txt
-inc/lang/en/admin_acl.txt
-inc/lang/et/admin_acl.txt
-inc/lang/eu/admin_acl.txt
-inc/lang/fr/admin_acl.txt
-inc/lang/it/admin_acl.txt
-inc/lang/ja/admin_acl.txt
-inc/lang/lt/admin_acl.txt
-inc/lang/lv/admin_acl.txt
-inc/lang/nl/admin_acl.txt
-inc/lang/no/admin_acl.txt
-inc/lang/pl/admin_acl.txt
-inc/lang/pt/admin_acl.txt
-inc/lang/vi/admin_acl.txt
-inc/lang/zh-tw/admin_acl.txt
-inc/parser/spamcheck.php
-lib/images/favicon.ico
-lib/images/thumbup.gif
-lib/images/toolbar/code.png
-lib/images/toolbar/empty.png
-lib/images/toolbar/extlink.png
-lib/images/toolbar/fonth1.png
-lib/images/toolbar/fonth2.png
-lib/images/toolbar/fonth3.png
-lib/images/toolbar/fonth4.png
-lib/images/toolbar/fonth5.png
-lib/images/toolbar/list.png
-lib/images/toolbar/list_ul.png
-lib/images/toolbar/rule.png
-lib/tpl/default/images/interwiki.png
diff --git a/wiki/data/dont-panic-if-you-see-this-in-your-logs-it-means-your-directory-permissions-are-correct.png b/wiki/data/dont-panic-if-you-see-this-in-your-logs-it-means-your-directory-permissions-are-correct.png
deleted file mode 100644
index cea639e..0000000
--- a/wiki/data/dont-panic-if-you-see-this-in-your-logs-it-means-your-directory-permissions-are-correct.png
+++ /dev/null
Binary files differdiff --git a/wiki/data/dont-panic-if-you-see-this-in-your-logs-it-means-your-directory-permissions-are-correct.xcf b/wiki/data/dont-panic-if-you-see-this-in-your-logs-it-means-your-directory-permissions-are-correct.xcf
deleted file mode 100644
index 9902878..0000000
--- a/wiki/data/dont-panic-if-you-see-this-in-your-logs-it-means-your-directory-permissions-are-correct.xcf
+++ /dev/null
Binary files differdiff --git a/wiki/data/index/_dummy b/wiki/data/index/_dummy
deleted file mode 100644
index e492265..0000000
--- a/wiki/data/index/_dummy
+++ /dev/null
@@ -1 +0,0 @@
-You can safely delete this file.
\ No newline at end of file
diff --git a/wiki/data/index/i1.idx b/wiki/data/index/i1.idx
deleted file mode 100644
index cd8c4e2..0000000
--- a/wiki/data/index/i1.idx
+++ /dev/null
@@ -1,6 +0,0 @@
-2*30
-2*5
-2*6
-2*5
-2*32
-4*1:2*26
diff --git a/wiki/data/index/i10.idx b/wiki/data/index/i10.idx
deleted file mode 100644
index 3263b86..0000000
--- a/wiki/data/index/i10.idx
+++ /dev/null
@@ -1,59 +0,0 @@
-2*3:1*1
-2*9
-2*1
-2*2
-2*2
-2*1
-2*4
-2*2
-2*10
-4*2:2*4
-4*1:2*4
-2*4
-2*4
-2*1
-2*2
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*2
-2*2
-2*3
-2*2
-2*1
-2*1
-2*1
-2*3
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*4
-2*1
-2*1
-2*1
-3*1
-3*1
-4*2:3*1
-4*1
-4*1
-4*1
-4*1
-4*3
-4*2
-4*1
diff --git a/wiki/data/index/i11.idx b/wiki/data/index/i11.idx
deleted file mode 100644
index fc6fa5b..0000000
--- a/wiki/data/index/i11.idx
+++ /dev/null
@@ -1,34 +0,0 @@
-4*1:0*1
-2*2
-2*3
-2*1
-2*1
-2*1
-2*2
-2*2
-2*3
-2*1
-2*2
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-4*1:2*5
-2*1
-3*1
-3*1
-4*1
-4*1
-4*1
-4*1
-4*1
-4*2
-4*2
-4*1
diff --git a/wiki/data/index/i12.idx b/wiki/data/index/i12.idx
deleted file mode 100644
index 7ec1d10..0000000
--- a/wiki/data/index/i12.idx
+++ /dev/null
@@ -1,18 +0,0 @@
-2*1
-2*2
-3*1:2*2
-2*1
-2*1
-2*1
-2*1
-2*1
-2*6
-2*2
-2*5
-2*1
-2*1
-2*1
-2*1
-2*1
-2*2
-4*2
diff --git a/wiki/data/index/i13.idx b/wiki/data/index/i13.idx
deleted file mode 100644
index e7ecb9a..0000000
--- a/wiki/data/index/i13.idx
+++ /dev/null
@@ -1,16 +0,0 @@
-2*2
-2*4
-2*1
-2*1
-2*1
-2*2
-2*1
-2*1
-2*1
-4*1:3*1:2*1
-2*1
-2*1
-3*1
-3*1
-4*1
-4*2
diff --git a/wiki/data/index/i14.idx b/wiki/data/index/i14.idx
deleted file mode 100644
index 6b40230..0000000
--- a/wiki/data/index/i14.idx
+++ /dev/null
@@ -1,2 +0,0 @@
-2*1
-4*1
diff --git a/wiki/data/index/i15.idx b/wiki/data/index/i15.idx
deleted file mode 100644
index 84a4916..0000000
--- a/wiki/data/index/i15.idx
+++ /dev/null
@@ -1,2 +0,0 @@
-2*1
-3*1
diff --git a/wiki/data/index/i2.idx b/wiki/data/index/i2.idx
deleted file mode 100644
index d2d21ce..0000000
--- a/wiki/data/index/i2.idx
+++ /dev/null
@@ -1,38 +0,0 @@
-0*2
-4*2:3*2:2*10:0*1
-3*1:2*6:0*1
-0*1
-3*5:2*25
-4*2:2*37
-4*1:2*5
-2*3
-2*1
-4*1:3*1:2*8
-2*2
-2*1
-3*1:2*1
-2*2
-2*2
-2*2
-2*6
-2*1
-2*1
-2*1
-2*1
-3*1:2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*4
-2*8
-2*1
-4*1:2*2
-3*1:2*1
-2*2
-2*1
-4*1
-4*1
diff --git a/wiki/data/index/i3.idx b/wiki/data/index/i3.idx
deleted file mode 100644
index 7e51276..0000000
--- a/wiki/data/index/i3.idx
+++ /dev/null
@@ -1,107 +0,0 @@
-3*1:2*1:0*1
-4*1:3*1:2*11
-3*1:2*3
-4*5:3*1:2*22
-2*2
-2*1
-2*13
-3*1:2*46
-2*4
-2*4
-2*4
-2*11
-2*5
-2*2
-3*1:2*4
-4*10:3*2:2*8
-4*2:3*1:2*10
-4*1:3*1:2*4
-2*7
-2*12
-4*2:2*1
-2*2
-2*2
-2*1
-4*1:3*1:2*33
-2*4
-4*1:2*18
-4*1:2*20
-2*3
-2*3
-2*2
-2*4
-2*1
-2*1
-2*1
-2*1
-2*1
-4*4:3*3:2*2
-2*1
-2*2
-2*2
-2*7
-2*1
-2*2
-2*2
-2*34
-2*34
-2*1
-4*1:2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*3
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*3
-2*1
-2*1
-2*1
-2*1
-3*1:2*4
-2*2
-2*2
-2*5
-2*1
-2*1
-3*1
-4*1:3*1
-3*4
-3*1
-3*2
-4*1
-4*1
-4*2
-4*2
-4*1
diff --git a/wiki/data/index/i4.idx b/wiki/data/index/i4.idx
deleted file mode 100644
index e9ddd23..0000000
--- a/wiki/data/index/i4.idx
+++ /dev/null
@@ -1,155 +0,0 @@
-4*7:3*4:2*24:0*1
-0*1
-2*4:0*1
-4*2:3*1:0*1
-4*29:3*7:2*16
-4*1:2*19
-4*1:2*6
-3*6:2*15
-3*3:2*8
-3*1:2*2
-3*1:2*1
-3*3:2*6
-3*2:2*10
-2*26
-2*2
-2*3
-2*9
-2*6
-2*8
-2*8
-3*1:2*2
-4*8:3*1:2*15
-3*2:2*15
-2*13
-4*1:2*2
-2*2
-2*3
-2*1
-4*1:2*27
-2*2
-2*1
-2*23
-2*1
-2*4
-2*1
-2*3
-4*1:3*2:2*1
-2*1
-3*1:2*2
-2*1
-4*1:3*1:2*1
-2*3
-2*5
-4*1:3*3:2*4
-2*35
-2*1
-3*2:2*2
-2*1
-2*1
-3*1:2*2
-2*1
-2*5
-2*2
-2*7
-2*1
-2*2
-2*2
-2*12
-4*2:2*6
-2*10
-2*1
-2*8
-3*1:2*2
-2*1
-2*1
-2*2
-4*1:2*7
-2*2
-2*2
-2*2
-2*6
-4*1:3*1:2*1
-2*3
-2*1
-2*1
-2*1
-3*1:2*2
-2*1
-2*5
-2*1
-2*2
-2*1
-4*2:3*1:2*1
-2*2
-2*1
-2*4
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*14
-2*1
-2*4
-2*2
-2*1
-2*5
-2*1
-2*2
-2*4
-2*2
-2*1
-2*1
-2*1
-2*1
-4*2:3*2
-3*1
-3*1
-3*1
-4*1:3*1
-3*1
-3*1
-3*1
-4*1
-4*1
-4*1
-4*1
-4*1
-4*1
-4*1
-4*1
diff --git a/wiki/data/index/i5.idx b/wiki/data/index/i5.idx
deleted file mode 100644
index 8605aff..0000000
--- a/wiki/data/index/i5.idx
+++ /dev/null
@@ -1,152 +0,0 @@
-0*1
-0*1
-4*1:2*3:0*1
-3*1:0*1
-2*8
-2*1
-3*2:2*4
-2*1
-2*3
-2*5
-2*1
-2*2
-2*2
-2*21
-2*3
-4*1:3*2:2*11
-2*2
-2*1
-2*2
-3*1:2*4
-2*5
-2*2
-4*2:3*1:2*7
-2*4
-2*1
-2*1
-2*1
-2*2
-2*3
-2*1
-4*4:3*1:2*1
-3*1:2*3
-2*16
-2*5
-2*3
-2*2
-2*1
-2*3
-2*10
-2*2
-2*9
-2*5
-2*3
-2*1
-2*5
-2*5
-2*2
-4*1:3*1:2*1
-2*1
-2*7
-2*1
-2*5
-2*2
-2*11
-2*1
-2*1
-2*1
-2*4
-2*5
-2*3
-2*2
-2*6
-2*1
-2*1
-2*1
-4*1:2*2
-3*2:2*1
-2*4
-2*1
-2*2
-2*1
-2*3
-2*3
-3*1:2*1
-2*1
-2*1
-2*2
-4*1:2*1
-2*2
-2*4
-2*4
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*2
-2*2
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-3*2:2*2
-2*1
-2*5
-2*2
-2*2
-2*1
-3*2:2*3
-2*1
-2*3
-2*1
-2*1
-2*1
-2*2
-2*3
-2*1
-2*1
-3*1
-3*1
-3*1
-3*1
-3*1
-3*1
-3*1
-4*6:3*2
-4*1:3*1
-3*1
-4*1
-4*1
-4*1
-4*1
-4*1
-4*1
-4*1
-4*1
-4*1
-4*1
-4*1
-4*1
-4*1
-4*1
-4*1
-4*1
-4*1
diff --git a/wiki/data/index/i6.idx b/wiki/data/index/i6.idx
deleted file mode 100644
index a45963c..0000000
--- a/wiki/data/index/i6.idx
+++ /dev/null
@@ -1,152 +0,0 @@
-0*1
-0*1
-0*1
-4*1:2*1:0*1
-4*5:3*3:2*23
-4*1:2*3
-2*2
-2*4
-4*1:3*1:2*3
-2*1
-2*2
-3*1:2*3
-2*7
-2*1
-2*3
-2*1
-2*8
-2*2
-2*2
-2*5
-2*1
-4*1:3*3:2*3
-4*1:3*1:2*4
-2*4
-2*2
-4*1:3*1:2*3
-2*1
-2*1
-2*1
-2*10
-2*6
-2*5
-2*3
-2*13
-2*1
-2*1
-2*4
-2*3
-2*1
-2*3
-2*4
-2*1
-2*1
-2*4
-2*7
-2*2
-2*1
-2*1
-2*9
-2*2
-2*2
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*2
-2*1
-3*1:2*1
-2*1
-2*4
-2*2
-2*5
-2*2
-2*2
-2*1
-2*3
-2*3
-4*1:2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*2
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*2
-2*2
-4*1:2*2
-2*3
-2*1
-2*2
-2*3
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*2
-2*1
-2*1
-3*1
-3*1
-3*1
-3*1
-4*1:3*1
-4*1
-4*1
-4*1
-4*1
-4*4
-4*1
-4*2
-4*1
-4*1
-4*1
-4*1
-4*1
-4*2
-4*1
-4*1
-4*1
diff --git a/wiki/data/index/i7.idx b/wiki/data/index/i7.idx
deleted file mode 100644
index 58d7bef..0000000
--- a/wiki/data/index/i7.idx
+++ /dev/null
@@ -1,138 +0,0 @@
-3*1:0*1
-0*1
-0*1
-3*1:2*1
-2*2
-2*1
-2*2
-2*2
-2*5
-2*1
-2*6
-2*2
-2*1
-2*1
-2*2
-2*3
-2*7
-2*5
-2*3
-2*23
-2*1
-4*1:2*1
-2*8
-2*5
-2*1
-2*2
-2*1
-3*1:2*2
-2*1
-2*2
-2*4
-2*1
-2*6
-2*2
-2*2
-2*3
-2*1
-2*2
-2*1
-2*2
-2*6
-4*1:2*2
-2*1
-2*1
-2*2
-2*2
-3*1:2*1
-2*4
-2*2
-2*1
-2*1
-2*3
-2*1
-2*3
-2*2
-2*1
-2*2
-2*1
-2*1
-2*2
-2*4
-2*1
-2*2
-2*1
-2*1
-2*1
-2*4
-2*1
-2*2
-2*1
-2*2
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-4*1:2*3
-2*2
-2*1
-2*2
-2*1
-2*3
-2*3
-2*1
-2*1
-2*2
-2*1
-2*1
-4*3:3*2:2*5
-3*1
-3*3
-4*1:3*3
-3*1
-3*1
-4*1:3*1
-3*2
-4*1
-4*1
-4*1
-4*1
-4*1
-4*2
-4*1
-4*2
-4*1
-4*1
-4*1
-4*1
-4*1
-4*2
-4*1
diff --git a/wiki/data/index/i8.idx b/wiki/data/index/i8.idx
deleted file mode 100644
index a4370ad..0000000
--- a/wiki/data/index/i8.idx
+++ /dev/null
@@ -1,108 +0,0 @@
-2*1:0*2
-0*1
-4*27:3*10:2*46
-2*10
-2*7
-4*1:2*1
-2*4
-2*4
-2*1
-2*3
-2*1
-2*3
-3*1:2*3
-2*10
-2*8
-2*3
-2*7
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*2
-2*2
-2*3
-2*4
-2*1
-2*6
-2*2
-2*1
-2*2
-2*3
-2*1
-2*1
-4*1:2*1
-2*1
-2*1
-2*1
-2*1
-2*2
-2*1
-2*2
-2*2
-2*2
-2*2
-2*1
-2*1
-2*1
-2*2
-2*1
-2*2
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-4*4:2*1
-2*1
-2*1
-2*2
-2*1
-2*1
-2*2
-2*1
-2*1
-3*2
-3*1
-3*1
-3*2
-4*2
-4*1
-4*1
-4*1
-4*1
-4*1
-4*1
-4*2
-4*1
-4*1
-4*1
-4*2
-4*1
diff --git a/wiki/data/index/i9.idx b/wiki/data/index/i9.idx
deleted file mode 100644
index 8454b93..0000000
--- a/wiki/data/index/i9.idx
+++ /dev/null
@@ -1,74 +0,0 @@
-0*2
-2*1:0*1
-0*1
-2*1
-2*3
-2*2
-2*1
-2*4
-2*1
-2*1
-2*1
-2*1
-2*6
-2*1
-2*4
-2*2
-2*1
-2*1
-2*1
-2*6
-2*1
-2*1
-2*6
-2*2
-2*3
-2*2
-2*1
-2*2
-2*4
-2*3
-2*2
-2*2
-2*1
-2*1
-2*1
-2*2
-2*1
-2*2
-2*1
-2*2
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-2*1
-4*1:3*1:2*3
-2*2
-2*2
-2*1
-2*1
-2*3
-2*1
-2*1
-2*1
-2*3
-2*1
-2*1
-2*1
-2*1
-4*1:3*3
-3*1
-3*1
-4*3:3*1
-3*1
-4*1
-4*1
-4*1
-4*1
-4*1
-4*1
diff --git a/wiki/data/index/metadata.idx b/wiki/data/index/metadata.idx
deleted file mode 100644
index 9cfdc04..0000000
--- a/wiki/data/index/metadata.idx
+++ /dev/null
@@ -1,2 +0,0 @@
-relation_references
-relation_media
diff --git a/wiki/data/index/page.idx b/wiki/data/index/page.idx
deleted file mode 100644
index 29630b8..0000000
--- a/wiki/data/index/page.idx
+++ /dev/null
@@ -1,5 +0,0 @@
-start
-playground:playground
-wiki:syntax
-wiki:welcome
-wiki:dokuwiki
diff --git a/wiki/data/index/pageword.idx b/wiki/data/index/pageword.idx
deleted file mode 100644
index 87d6ad6..0000000
--- a/wiki/data/index/pageword.idx
+++ /dev/null
@@ -1,5 +0,0 @@
-7*0:7*1:7*2:5*0:5*1:5*2:5*3:9*0:9*1:9*2:4*0:4*1:4*2:4*3:6*0:6*1:6*2:6*3:8*0:8*1:3*0:2*0:2*1:2*2:2*3:11*0
-10*0
-10*1:10*0:10*2:10*3:10*4:10*5:10*6:10*7:10*8:10*9:10*10:10*11:10*12:10*13:10*14:10*15:10*16:10*17:10*18:10*19:10*20:10*21:10*22:10*23:10*24:10*25:10*26:10*27:10*28:10*29:10*30:10*31:10*32:10*33:10*34:10*35:10*36:10*37:10*38:10*39:10*40:10*41:10*42:10*43:10*44:10*45:10*46:10*47:10*48:6*4:6*5:6*6:6*7:6*8:6*9:6*10:6*11:6*12:6*13:6*14:6*15:6*16:6*17:6*18:6*19:6*20:6*21:6*22:6*23:6*24:6*25:6*26:6*27:6*28:6*29:6*30:6*31:6*32:6*33:6*34:6*35:6*36:6*37:6*38:6*39:6*40:6*41:6*42:6*43:6*44:6*45:6*46:6*47:6*48:6*49:6*50:6*51:6*52:6*53:6*54:6*55:6*56:6*57:6*58:6*59:6*60:6*61:6*62:6*63:6*64:6*65:6*66:6*67:6*68:6*69:6*70:6*3:6*71:6*72:6*73:6*74:6*75:6*76:6*77:6*78:6*79:6*80:6*81:6*82:6*83:6*84:6*85:6*86:6*87:6*88:6*89:6*90:6*91:6*92:6*93:6*94:6*95:6*96:6*97:6*98:6*99:6*100:6*101:6*102:6*103:6*104:6*105:6*106:6*107:6*108:6*109:6*110:6*111:6*112:6*113:6*114:6*115:6*116:6*117:6*118:6*119:6*120:6*121:6*122:6*123:6*124:6*125:6*126:6*127:6*128:6*129:6*130:4*4:4*5:4*6:4*7:4*8:4*9:4*10:4*11:4*12:4*13:4*14:4*15:4*16:4*17:4*18:4*19:4*20:4*21:4*22:4*23:4*24:4*25:4*0:4*26:4*27:4*28:4*29:4*30:4*31:4*32:4*33:4*34:4*35:4*36:4*37:4*38:4*39:4*40:4*41:4*42:4*43:4*44:4*45:4*46:4*47:4*48:4*49:4*50:4*51:4*52:4*53:4*54:4*55:4*56:4*57:4*58:4*59:4*60:4*2:4*61:4*62:4*63:4*64:4*65:4*66:4*67:4*68:4*69:4*70:4*71:4*72:4*73:4*74:4*75:4*76:4*77:4*78:4*79:4*80:4*81:4*82:4*83:4*84:4*85:4*86:4*87:4*88:4*89:4*90:4*91:4*92:4*93:4*94:4*95:4*96:4*97:4*98:4*99:4*100:4*101:4*102:4*103:4*104:4*105:4*106:4*107:4*108:4*109:4*110:4*111:4*112:4*113:4*114:4*115:4*116:4*117:4*118:4*119:4*120:4*121:4*122:4*123:4*124:4*125:4*126:4*127:4*128:4*129:4*130:4*131:4*132:4*133:4*134:4*135:4*136:4*137:4*138:8*2:8*3:8*4:8*5:8*6:8*7:8*8:8*9:8*10:8*11:8*12:8*13:8*14:8*15:8*16:8*17:8*18:8*19:8*20:8*21:8*22:8*23:8*24:8*25:8*26:8*27:8*28:8*29:8*30:8*31:8*32:8*33:8*34:8*35:8*36:8*37:8*38:8*39:8*40:8*41:8*42:8*43:8*44:8*45:8*46:8*47:8*48:8*49:8*50:8*51:8*52:8*0:8*53:8*54:8*55:8*56:8*57:8*58:8*59:8*60:8*61:8*62:8*63:8*64:8*65:8*66:8*67:8*68:8*69:8*70:8*71:8*72:8*73:8*74:8*75:8*76:8*77:8*78:8*79:8*80:8*81:8*82:8*83:8*84:8*85:8*86:8*87:8*88:8*89:8*90:5*4:5*5:5*6:5*7:5*8:5*9:5*10:5*11:5*12:5*13:5*14:5*15:5*16:5*17:5*18:5*19:5*20:5*21:5*22:5*23:5*2:5*24:5*25:5*26:5*27:5*28:5*29:5*30:5*31:5*32:5*33:5*34:5*35:5*36:5*37:5*38:5*39:5*40:5*41:5*42:5*43:5*44:5*45:5*46:5*47:5*48:5*49:5*50:5*51:5*52:5*53:5*54:5*55:5*56:5*57:5*58:5*59:5*60:5*61:5*62:5*63:5*64:5*65:5*66:5*67:5*68:5*69:5*70:5*71:5*72:5*73:5*74:5*75:5*76:5*77:5*78:5*79:5*80:5*81:5*82:5*83:5*84:5*85:5*86:5*87:5*88:5*89:5*90:5*91:5*92:5*93:5*94:5*95:5*96:5*97:5*98:5*99:5*100:5*101:5*102:5*103:5*104:5*105:5*106:5*107:5*108:5*109:5*110:5*111:5*112:5*113:5*114:5*115:5*116:5*117:5*118:5*119:5*120:5*121:5*122:5*123:5*124:9*3:9*4:9*5:9*6:9*7:9*8:9*9:9*10:9*11:9*12:9*13:9*14:9*15:9*16:9*17:9*18:9*1:9*19:9*20:9*21:9*22:9*23:9*24:9*25:9*26:9*27:9*28:9*29:9*30:9*31:9*32:9*33:9*34:9*35:9*36:9*37:9*38:9*39:9*40:9*41:9*42:9*43:9*44:9*45:9*46:9*47:9*48:9*49:9*50:9*51:9*52:9*53:9*54:9*55:9*56:9*57:9*58:9*59:9*60:9*61:9*62:2*4:2*1:2*5:2*6:2*7:2*8:2*9:2*10:2*11:2*12:2*13:2*14:2*15:2*2:2*16:2*17:2*18:2*19:2*20:2*21:2*22:2*23:2*24:2*25:2*26:2*27:2*28:2*29:2*30:2*31:2*32:2*33:2*34:2*35:3*1:3*2:3*3:3*4:3*5:3*6:3*7:3*8:3*9:3*10:3*11:3*12:3*13:3*14:3*15:3*16:3*17:3*18:3*19:3*20:3*21:3*22:3*23:3*24:3*25:3*26:3*27:3*0:3*28:3*29:3*30:3*31:3*32:3*33:3*34:3*35:3*36:3*37:3*38:3*39:3*40:3*41:3*42:3*43:3*44:3*45:3*46:3*47:3*48:3*49:3*50:3*51:3*52:3*53:3*54:3*55:3*56:3*57:3*58:3*59:3*60:3*61:3*62:3*63:3*64:3*65:3*66:3*67:3*68:3*69:3*70:3*71:3*72:3*73:3*74:3*75:3*76:3*77:3*78:3*79:3*80:3*81:3*82:3*83:3*84:3*85:3*86:3*87:3*88:3*89:3*90:3*91:3*92:3*93:3*94:3*95:3*96:7*3:7*4:7*5:7*6:7*7:7*8:7*9:7*10:7*11:7*12:7*13:7*14:7*15:7*16:7*17:7*18:7*19:7*20:7*21:7*22:7*23:7*24:7*25:7*26:7*27:7*28:7*29:7*30:7*31:7*32:7*33:7*34:7*35:7*36:7*37:7*38:7*39:7*40:7*41:7*42:7*43:7*44:7*45:7*46:7*47:7*48:7*49:7*50:7*51:7*52:7*53:7*54:7*55:7*56:7*57:7*58:7*59:7*60:7*61:7*62:7*63:7*64:7*65:7*66:7*67:7*68:7*69:7*70:7*71:7*72:7*73:7*74:7*75:7*76:7*77:7*78:7*79:7*80:7*81:7*82:7*83:7*84:7*85:7*86:7*87:7*88:7*89:7*90:7*91:7*92:7*93:7*94:7*95:7*96:7*97:7*98:7*99:7*100:7*101:7*102:7*103:7*104:7*105:7*106:7*107:7*108:7*109:7*110:7*111:7*112:7*113:7*114:7*115:12*0:12*1:12*2:12*3:12*4:12*5:12*6:12*7:12*8:12*9:12*10:12*11:12*12:12*13:12*14:12*15:12*16:11*1:11*2:11*3:11*4:11*5:11*6:11*7:11*8:11*9:11*10:11*11:11*12:11*13:11*14:11*15:11*16:11*17:11*18:11*19:11*20:11*21:11*22:11*23:13*0:13*1:13*2:13*3:13*4:13*5:13*6:13*7:13*8:13*9:13*10:13*11:1*0:1*1:1*2:1*3:1*4:1*5:15*0:14*0
-7*0:7*116:7*46:7*117:7*118:7*3:7*115:7*119:7*120:7*27:7*121:7*122:3*0:3*97:3*98:3*99:3*91:3*7:3*3:3*100:3*37:3*16:3*1:3*24:3*2:3*17:3*15:3*101:3*14:8*2:8*91:8*12:8*92:8*93:8*94:15*1:4*0:4*62:4*43:4*139:4*38:4*8:4*7:4*140:4*22:4*76:4*3:4*46:4*11:4*12:4*10:4*141:4*82:4*4:4*142:4*9:4*71:4*143:4*40:4*36:4*144:4*145:4*21:4*146:4*20:4*49:2*12:2*4:2*21:2*33:2*1:2*9:2*2:5*125:5*115:5*6:5*31:5*66:5*47:5*126:5*15:5*127:5*109:5*19:5*3:5*128:5*129:5*130:5*73:5*131:5*132:5*22:5*30:5*133:5*134:10*49:10*50:10*51:6*21:6*131:6*4:6*59:6*132:6*133:6*25:6*22:6*134:6*8:6*135:6*11:9*63:9*64:9*65:9*49:9*66:9*67:11*24:11*25:13*9:13*12:13*13:12*2
-8*2:8*95:8*96:8*5:8*97:8*98:8*82:8*99:8*100:8*101:8*102:8*103:8*104:8*105:8*106:8*41:8*107:4*4:4*0:4*40:4*147:4*148:4*6:4*82:4*149:4*21:4*43:4*58:4*66:4*3:4*139:4*143:4*36:4*150:4*151:4*5:4*152:4*153:4*154:4*24:4*28:4*71:3*26:3*27:3*3:3*20:3*102:3*15:3*1:3*103:3*37:3*48:3*104:3*24:3*16:3*105:3*106:3*98:3*17:6*5:6*136:6*8:6*4:6*137:6*138:6*135:6*117:6*139:6*140:6*3:6*141:6*22:6*142:6*143:6*21:6*144:6*145:6*146:6*147:6*148:6*149:6*25:6*150:6*69:6*151:9*68:9*66:9*49:9*69:9*63:9*70:9*71:9*72:9*73:2*6:2*5:2*1:2*36:2*32:2*9:2*37:5*47:5*135:5*30:5*136:5*77:5*137:5*138:5*139:5*140:5*141:5*142:5*143:5*133:5*144:5*145:5*65:5*22:5*15:5*146:5*132:5*147:5*148:5*2:5*149:5*150:5*151:7*123:7*124:7*115:7*125:7*126:7*127:7*128:7*129:7*21:7*130:7*131:7*132:7*133:7*134:7*121:7*118:7*41:7*135:7*136:7*103:7*137:11*26:11*27:11*28:11*29:11*0:11*22:11*30:11*31:11*32:11*33:13*14:13*15:13*9:14*1:10*52:10*53:10*54:10*10:10*55:10*56:10*57:10*58:10*51:10*9:12*17:1*5
diff --git a/wiki/data/index/relation_media_i.idx b/wiki/data/index/relation_media_i.idx
deleted file mode 100644
index 577526f..0000000
--- a/wiki/data/index/relation_media_i.idx
+++ /dev/null
@@ -1 +0,0 @@
-4*1:2*1
diff --git a/wiki/data/index/relation_media_p.idx b/wiki/data/index/relation_media_p.idx
deleted file mode 100644
index 47ee333..0000000
--- a/wiki/data/index/relation_media_p.idx
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-0
-
-0
diff --git a/wiki/data/index/relation_media_w.idx b/wiki/data/index/relation_media_w.idx
deleted file mode 100644
index 2fb4aeb..0000000
--- a/wiki/data/index/relation_media_w.idx
+++ /dev/null
@@ -1 +0,0 @@
-wiki:dokuwiki-128.png
diff --git a/wiki/data/index/relation_references_i.idx b/wiki/data/index/relation_references_i.idx
deleted file mode 100644
index 758ada3..0000000
--- a/wiki/data/index/relation_references_i.idx
+++ /dev/null
@@ -1,8 +0,0 @@
-2*1
-2*1
-2*1
-4*1:3*1:2*1
-2*1
-2*1
-3*1
-3*1
diff --git a/wiki/data/index/relation_references_p.idx b/wiki/data/index/relation_references_p.idx
deleted file mode 100644
index 26be03c..0000000
--- a/wiki/data/index/relation_references_p.idx
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-0:1:2:3:4:5
-6:3:7
-3
diff --git a/wiki/data/index/relation_references_w.idx b/wiki/data/index/relation_references_w.idx
deleted file mode 100644
index 8e3c45c..0000000
--- a/wiki/data/index/relation_references_w.idx
+++ /dev/null
@@ -1,8 +0,0 @@
-playground:playground
-wiki:pagename
-some:namespaces
-wiki:syntax
-wiki:nonexisting
-wiki:dokuwiki
-start
-sidebar
diff --git a/wiki/data/index/title.idx b/wiki/data/index/title.idx
deleted file mode 100644
index f807b23..0000000
--- a/wiki/data/index/title.idx
+++ /dev/null
@@ -1,5 +0,0 @@
-
-PlayGround
-Formatting Syntax
-Welcome to your new DokuWiki
-DokuWiki
diff --git a/wiki/data/index/w1.idx b/wiki/data/index/w1.idx
deleted file mode 100644
index 0ef14cd..0000000
--- a/wiki/data/index/w1.idx
+++ /dev/null
@@ -1,6 +0,0 @@
-3
-4
-5
-8
-1
-2
diff --git a/wiki/data/index/w10.idx b/wiki/data/index/w10.idx
deleted file mode 100644
index a6379e2..0000000
--- a/wiki/data/index/w10.idx
+++ /dev/null
@@ -1,59 +0,0 @@
-playground
-formatting
-accessible
-underlined
-monospaced
-paragraphs
-whitespace
-linebreaks
-recognized
-splitbrain
-additional
-characters
-namespaces
-workaround
-javascript
-nosmblinks
-sectioning
-horizontal
-optionally
-displaying
-understand
-referenced
-understood
-conversion
-typography
-configured
-exceptions
-completely
-separators
-vertically
-sourcecode
-implements
-autohotkey
-blitzbasic
-chaiscript
-loadrunner
-ecmascript
-freeswitch
-postgresql
-postscript
-powershell
-properties
-standardml
-typoscript
-specifying
-phpversion
-parameters
-influences
-particular
-developers
-everything
-newsletter
-connectors
-especially
-enterprise
-maintained
-wikimatrix
-installing
-frequently
diff --git a/wiki/data/index/w11.idx b/wiki/data/index/w11.idx
deleted file mode 100644
index edf1b75..0000000
--- a/wiki/data/index/w11.idx
+++ /dev/null
@@ -1,34 +0,0 @@
-information
-superscript
-backslashes
-nonexisting
-homogeneous
-mozillazine
-parentheses
-whitespaces
-conversions
-equivalents
-highlighter
-highlighted
-application
-6502kickass
-68000devpac
-applescript
-html4strict
-lotusscript
-mathematica
-pixelbender
-stonescript
-aggregation
-description
-appropriate
-comfortable
-subscribing
-maintenance
-integration
-contributed
-traditional
-customizing
-development
-mailinglist
-experiences
diff --git a/wiki/data/index/w12.idx b/wiki/data/index/w12.idx
deleted file mode 100644
index b5da5bc..0000000
--- a/wiki/data/index/w12.idx
+++ /dev/null
@@ -1,18 +0,0 @@
-quickbuttons
-localization
-installation
-alternatives
-additionally
-replacements
-horizontally
-tableheaders
-xxxxxxxxxxxx
-preformatted
-highlighting
-actionscript
-coffeescript
-powerbuilder
-visualfoxpro
-visualprolog
-downloadable
-requirements
diff --git a/wiki/data/index/w13.idx b/wiki/data/index/w13.idx
deleted file mode 100644
index f4416f7..0000000
--- a/wiki/data/index/w13.idx
+++ /dev/null
@@ -1,16 +0,0 @@
-automagically
-automatically
-customization
-unfortunately
-compatibility
-helloworldapp
-actionscript3
-lotusformulas
-systemverilog
-configuration
-inappropriate
-syntaxplugins
-functionality
-contributions
-administrator
-documentation
diff --git a/wiki/data/index/w14.idx b/wiki/data/index/w14.idx
deleted file mode 100644
index f36b256..0000000
--- a/wiki/data/index/w14.idx
+++ /dev/null
@@ -1,2 +0,0 @@
-multiplication
-authentication
diff --git a/wiki/data/index/w15.idx b/wiki/data/index/w15.idx
deleted file mode 100644
index cbd20af..0000000
--- a/wiki/data/index/w15.idx
+++ /dev/null
@@ -1,2 +0,0 @@
-typographically
-congratulations
diff --git a/wiki/data/index/w2.idx b/wiki/data/index/w2.idx
deleted file mode 100644
index 780bbd3..0000000
--- a/wiki/data/index/w2.idx
+++ /dev/null
@@ -1,38 +0,0 @@
-ve
-at
-we
-ll
-be
-by
-wp
-so
-kb
-do
-en
-js
-up
-50
-tm
-he
-no
-bf
-qt
-f1
-fo
-go
-io
-lb
-mk
-61
-oz
-pf
-vb
-tr
-td
-12
-10
-re
-1h
-eg
-id
-me
diff --git a/wiki/data/index/w3.idx b/wiki/data/index/w3.idx
deleted file mode 100644
index dd6601a..0000000
--- a/wiki/data/index/w3.idx
+++ /dev/null
@@ -1,107 +0,0 @@
-new
-all
-may
-use
-try
-via
-too
-can
-sub
-sup
-del
-two
-end
-set
-one
-org
-not
-see
-add
-but
-its
-don
-per
-put
-php
-net
-128
-png
-gif
-jpg
-ogv
-mp4
-ogg
-mp3
-wav
-swf
-has
-faq
-pre
-lol
-man
-any
-off
-say
-yes
-row
-col
-tag
-out
-4cs
-ada
-apt
-arm
-asm
-asp
-awk
-bnf
-boo
-cfm
-cil
-mac
-cpp
-css
-dcl
-dcs
-div
-dos
-dot
-epc
-ezt
-gdb
-gml
-idl
-ini
-jcl
-lua
-pli
-qml
-rbs
-reg
-sas
-scl
-sql
-tcl
-upc
-vim
-xml
-xpp
-z80
-foo
-raw
-red
-150
-2px
-rss
-dhm
-12h
-now
-few
-get
-our
-way
-acl
-log
-irc
-gnu
-gpl
diff --git a/wiki/data/index/w4.idx b/wiki/data/index/w4.idx
deleted file mode 100644
index 6399f49..0000000
--- a/wiki/data/index/w4.idx
+++ /dev/null
@@ -1,155 +0,0 @@
-wiki
-cool
-done
-help
-doku
-some
-make
-page
-have
-look
-edit
-want
-just
-text
-bold
-mark
-well
-line
-note
-only
-ways
-http
-link
-like
-andi
-give
-name
-hash
-html
-ones
-does
-file
-hint
-then
-rely
-much
-user
-zone
-work
-base
-open
-conf
-lang
-more
-code
-copy
-also
-urls
-five
-than
-four
-size
-real
-left
-most
-webm
-next
-same
-list
-item
-take
-used
-here
-kind
-come
-they
-show
-lets
-pipe
-rows
-cell
-sure
-time
-else
-both
-ends
-need
-area
-tags
-even
-true
-were
-read
-uses
-qbnz
-java
-void
-main
-args
-abap
-bash
-cfdg
-dart
-diff
-glsl
-haxe
-icon
-inno
-ldif
-lisp
-llvm
-lsl2
-m68k
-mirc
-mmix
-mxml
-nsis
-objc
-pcre
-perl
-phix
-pike
-rexx
-ruby
-rust
-sass
-tsql
-twig
-urbi
-vala
-vhdl
-xojo
-xorg
-yaml
-such
-echo
-dash
-span
-font
-atom
-feed
-data
-last
-date
-sort
-days
-self
-call
-info
-tips
-long
-side
-once
-join
-good
-stay
-many
-ease
-auth
-full
-talk
-bugs
-2004
-2015
-gohr
diff --git a/wiki/data/index/w5.idx b/wiki/data/index/w5.idx
deleted file mode 100644
index b23a71e..0000000
--- a/wiki/data/index/w5.idx
+++ /dev/null
@@ -1,152 +0,0 @@
-tilde
-place
-share
-learn
-which
-tries
-pages
-basic
-texts
-these
-blank
-lines
-force
-links
-email
-using
-colon
-known
-notes
-shown
-style
-quick
-other
-wikis
-sense
-group
-works
-local
-there
-still
-users
-needs
-image
-files
-below
-names
-whole
-three
-table
-notoc
-level
-media
-audio
-curly
-given
-width
-ratio
-doesn
-match
-right
-title
-above
-embed
-video
-flash
-funny
-would
-lists
-items
-those
-fixme
-world
-added
-times
-reply
-think
-start
-cells
-empty
-spans
-apart
-align
-least
-looks
-typed
-signs
-could
-makes
-geshi
-class
-hello
-aimms
-batch
-cmake
-cobol
-genie
-html5
-java5
-julia
-latex
-mpasm
-mysql
-nginx
-ocaml
-brief
-oobas
-perl6
-pic16
-plsql
-pycon
-pys60
-rails
-rebol
-scala
-spark
-swift
-vbnet
-vedit
-whois
-might
-after
-block
-color
-feeds
-space
-first
-dates
-hours
-value
-tells
-since
-index
-macro
-found
-every
-enjoy
-exist
-refer
-aware
-admin
-login
-going
-forum
-happy
-teams
-loved
-clean
-built
-large
-allow
-broad
-range
-cases
-power
-press
-wrote
-asked
-check
-https
-under
-bucks
-means
diff --git a/wiki/data/index/w6.idx b/wiki/data/index/w6.idx
deleted file mode 100644
index 2e286df..0000000
--- a/wiki/data/index/w6.idx
+++ /dev/null
@@ -1,152 +0,0 @@
-record
-others
-spread
-system
-syntax
-simple
-markup
-simply
-source
-easily
-italic
-course
-should
-forced
-really
-needed
-google
-points
-square
-either
-behind
-create
-config
-shares
-server
-please
-direct
-trying
-remove
-images
-double
-levels
-string
-nowiki
-dashes
-videos
-resize
-height
-aspect
-before
-200x50
-choose
-format
-adding
-inline
-upload
-poster
-indent
-spaces
-second
-deeper
-mainly
-entity
-single
-quotes
-turned
-option
-tables
-normal
-always
-amount
-center
-smiley
-blocks
-pretty
-quoted
-easier
-inside
-output
-public
-static
-apache
-autoit
-bibtex
-caddcl
-ceylon
-chapel
-winapi
-csharp
-dcpu16
-delphi
-eiffel
-erlang
-falcon
-fsharp
-gambas
-genero
-groovy
-hicest
-jquery
-klonec
-kotlin
-matlab
-nagios
-nimrod
-objeck
-octave
-oorexx
-parigp
-pascal
-povray
-prolog
-python
-qbasic
-racket
-robots
-rsplus
-scheme
-scilab
-smarty
-sparql
-tclegg
-unicon
-xbasic
-myfile
-border
-dashed
-number
-author
-htmlok
-nosort
-period
-supply
-cached
-render
-sorted
-newest
-oldest
-macros
-caches
-wanted
-follow
-margin
-column
-extend
-useful
-highly
-backup
-access
-beyond
-manual
-change
-search
-tricks
-github
-issues
-submit
-wishes
-thanks
-humble
-engine
-donate
diff --git a/wiki/data/index/w7.idx b/wiki/data/index/w7.idx
deleted file mode 100644
index 2be81c5..0000000
--- a/wiki/data/index/w7.idx
+++ /dev/null
@@ -1,138 +0,0 @@
-welcome
-learned
-openbsd
-editing
-simpler
-toolbar
-combine
-deleted
-created
-newline
-without
-happens
-special
-allowed
-details
-linking
-section
-default
-enabled
-heading
-changed
-changes
-example
-windows
-reasons
-mozilla
-firefox
-through
-however
-warning
-strings
-english
-another
-content
-include
-specify
-cropped
-resized
-tooltip
-caption
-formats
-instead
-provide
-problem
-maximum
-browser
-started
-ordered
-convert
-certain
-defined
-smileys
-correct
-640x480
-thought
-produce
-pattern
-quoting
-comment
-shouldn
-colspan
-headers
-connect
-decides
-rowspan
-contain
-display
-exactly
-enclose
-percent
-nothing
-generic
-println
-algol68
-sources
-cadlisp
-clojure
-fortran
-gettext
-gnuplot
-gwbasic
-haskell
-hq9plus
-kixtart
-logtalk
-lolcode
-lscript
-magiksf
-mercury
-modula2
-modula3
-netrexx
-newlisp
-oberon2
-oracle8
-oxygene
-proftpd
-rpmspec
-uscript
-verilog
-zxbasic
-options
-numbers
-version
-element
-parsing
-reverse
-authors
-refresh
-minutes
-treated
-dynamic
-control
-renders
-nocache
-plugins
-running
-sidebar
-support
-project
-thrives
-contact
-getting
-require
-context
-vibrant
-unleash
-besides
-feature
-compare
-install
-upgrade
-mailing
-channel
-andreas
-general
-license
-company
diff --git a/wiki/data/index/w8.idx b/wiki/data/index/w8.idx
deleted file mode 100644
index 621230e..0000000
--- a/wiki/data/index/w8.idx
+++ /dev/null
@@ -1,108 +0,0 @@
-anything
-together
-dokuwiki
-supports
-language
-readable
-possible
-contains
-pressing
-followed
-newlines
-multiple
-creating
-external
-internal
-brackets
-pagename
-specific
-existing
-behavior
-bookmark
-intranet
-security
-browsing
-internet
-explorer
-changing
-modified
-accepted
-resizing
-footnote
-contents
-disabled
-document
-headline
-browsers
-directly
-filename
-linkonly
-fallback
-mitigate
-consider
-embedded
-converts
-commonly
-emoticon
-extended
-overview
-included
-deleteme
-entities
-vertical
-rowspans
-opposite
-centered
-previous
-examples
-indented
-displays
-standard
-6502acme
-6502tasm
-autoconf
-avisynth
-basic4gl
-biblatex
-cuesheet
-euphoria
-intercal
-klonecpp
-mapbasic
-metapost
-oracle11
-parasail
-progress
-providex
-sdlbasic
-teraterm
-texgraph
-vbscript
-winbatch
-advanced
-download
-elements
-executed
-defaults
-stripped
-rendered
-slashdot
-availble
-rerender
-sidebars
-settings
-informed
-involved
-software
-database
-favorite
-controls
-features
-blogroll
-bloggers
-glossary
-template
-feedback
-licensed
-licenses
-donating
diff --git a/wiki/data/index/w9.idx b/wiki/data/index/w9.idx
deleted file mode 100644
index 29e9aac..0000000
--- a/wiki/data/index/w9.idx
+++ /dev/null
@@ -1,74 +0,0 @@
-institute
-knowledge
-operating
-datafiles
-something
-subscript
-paragraph
-addresses
-pagenames
-converted
-lowercase
-character
-different
-camelcase
-interwiki
-wikipedia
-corporate
-microsoft
-mentioned
-following
-localized
-combining
-supported
-including
-footnotes
-headlines
-structure
-generated
-alignment
-displayed
-unordered
-indention
-graphical
-separator
-connected
-documents
-indenting
-preserved
-highlight
-described
-currently
-asymptote
-bascomavr
-freebasic
-ispfpanel
-locobasic
-purebasic
-smalltalk
-thinbasic
-available
-myexample
-embedding
-uppercase
-integrate
-simplepie
-influence
-rendering
-separated
-parameter
-generally
-obviously
-sometimes
-installed
-templates
-customize
-superuser
-community
-excellent
-versatile
-questions
-resources
-subscribe
-viewforum
-copyright
diff --git a/wiki/data/locks/20b24a383ec17d9f9b13e66ebe3110e7.lock b/wiki/data/locks/20b24a383ec17d9f9b13e66ebe3110e7.lock
deleted file mode 100644
index 346ca2d..0000000
--- a/wiki/data/locks/20b24a383ec17d9f9b13e66ebe3110e7.lock
+++ /dev/null
@@ -1 +0,0 @@
-ahriman
\ No newline at end of file
diff --git a/wiki/data/locks/_dummy b/wiki/data/locks/_dummy
deleted file mode 100644
index e492265..0000000
--- a/wiki/data/locks/_dummy
+++ /dev/null
@@ -1 +0,0 @@
-You can safely delete this file.
\ No newline at end of file
diff --git a/wiki/data/media/wiki/dokuwiki-128.png b/wiki/data/media/wiki/dokuwiki-128.png
deleted file mode 100644
index f3f1d66..0000000
--- a/wiki/data/media/wiki/dokuwiki-128.png
+++ /dev/null
Binary files differdiff --git a/wiki/data/media/wiki/dokuwiki.svg b/wiki/data/media/wiki/dokuwiki.svg
deleted file mode 100644
index 6e522c8..0000000
--- a/wiki/data/media/wiki/dokuwiki.svg
+++ /dev/null
@@ -1,586 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="128.17094"
-   height="128.03864"
-   id="svg2"
-   sodipodi:version="0.32"
-   inkscape:version="0.48.1 "
-   sodipodi:docname="dokuwiki-logo.svg"
-   version="1.1">
-  <title
-     id="title3181">DokuWiki Logo</title>
-  <defs
-     id="defs4">
-    <linearGradient
-       id="linearGradient2624">
-      <stop
-         style="stop-color:#3a9030;stop-opacity:0.83673471;"
-         offset="0"
-         id="stop2626" />
-      <stop
-         style="stop-color:#3d9c32;stop-opacity:0.79591835;"
-         offset="1"
-         id="stop2628" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2612">
-      <stop
-         style="stop-color:#25901b;stop-opacity:0.83673471;"
-         offset="0"
-         id="stop2614" />
-      <stop
-         style="stop-color:#25901b;stop-opacity:0.37755102;"
-         offset="1"
-         id="stop2616" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2600">
-      <stop
-         style="stop-color:#e32525;stop-opacity:0.81632656;"
-         offset="0"
-         id="stop2602" />
-      <stop
-         style="stop-color:#e32525;stop-opacity:0.5714286;"
-         offset="1"
-         id="stop2604" />
-    </linearGradient>
-    <marker
-       inkscape:stockid="TriangleOutL"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="TriangleOutL"
-       style="overflow:visible">
-      <path
-         id="path2488"
-         d="m 5.77,0 -8.65,5 0,-10 8.65,5 z"
-         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
-         transform="scale(0.8,0.8)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lstart"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="Arrow2Lstart"
-       style="overflow:visible">
-      <path
-         id="path2571"
-         style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         transform="matrix(1.1,0,0,1.1,-5.5,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <linearGradient
-       id="linearGradient2408">
-      <stop
-         id="stop2410"
-         offset="0"
-         style="stop-color:#000000;stop-opacity:0.17346939;" />
-      <stop
-         id="stop2412"
-         offset="1"
-         style="stop-color:#c7cec2;stop-opacity:0;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2389">
-      <stop
-         style="stop-color:#000000;stop-opacity:0.17346939;"
-         offset="0"
-         id="stop2391" />
-      <stop
-         style="stop-color:#c7cec2;stop-opacity:0;"
-         offset="1"
-         id="stop2393" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2370">
-      <stop
-         style="stop-color:#fbfaf9;stop-opacity:1;"
-         offset="0"
-         id="stop2372" />
-      <stop
-         style="stop-color:#e9dac7;stop-opacity:1;"
-         offset="1"
-         id="stop2374" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2364">
-      <stop
-         id="stop2366"
-         offset="0"
-         style="stop-color:#fbf6f0;stop-opacity:1;" />
-      <stop
-         id="stop2368"
-         offset="1"
-         style="stop-color:#e9dac7;stop-opacity:1;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2348">
-      <stop
-         style="stop-color:#fbf6f0;stop-opacity:1;"
-         offset="0"
-         id="stop2350" />
-      <stop
-         style="stop-color:#e9dac7;stop-opacity:1;"
-         offset="1"
-         id="stop2352" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2332">
-      <stop
-         style="stop-color:#ede1ae;stop-opacity:1;"
-         offset="0"
-         id="stop2334" />
-      <stop
-         style="stop-color:#fefdfa;stop-opacity:1;"
-         offset="1"
-         id="stop2336" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2249">
-      <stop
-         style="stop-color:#00a423;stop-opacity:1;"
-         offset="0"
-         id="stop2251" />
-      <stop
-         style="stop-color:#00b427;stop-opacity:1;"
-         offset="1"
-         id="stop2253" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2229">
-      <stop
-         id="stop2231"
-         offset="0"
-         style="stop-color:#00b62b;stop-opacity:1;" />
-      <stop
-         id="stop2233"
-         offset="1"
-         style="stop-color:#a1d784;stop-opacity:1;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2213">
-      <stop
-         style="stop-color:#000000;stop-opacity:1;"
-         offset="0"
-         id="stop2215" />
-      <stop
-         style="stop-color:#000000;stop-opacity:0;"
-         offset="1"
-         id="stop2217" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2360">
-      <stop
-         style="stop-color:#d69c00;stop-opacity:1;"
-         offset="0"
-         id="stop2362" />
-      <stop
-         style="stop-color:#ffe658;stop-opacity:1;"
-         offset="1"
-         id="stop2364" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2352">
-      <stop
-         id="stop2354"
-         offset="0"
-         style="stop-color:#ce411e;stop-opacity:1;" />
-      <stop
-         id="stop2356"
-         offset="1"
-         style="stop-color:#ecad8d;stop-opacity:1;" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient2336">
-      <stop
-         style="stop-color:#8f2a15;stop-opacity:1;"
-         offset="0"
-         id="stop2338" />
-      <stop
-         style="stop-color:#c8381b;stop-opacity:1;"
-         offset="1"
-         id="stop2340" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2336"
-       id="linearGradient2342"
-       x1="219.21262"
-       y1="189.01556"
-       x2="286.22665"
-       y2="189.01556"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2352"
-       id="linearGradient2350"
-       x1="219.66267"
-       y1="192.73286"
-       x2="277.8761"
-       y2="192.73286"
-       gradientUnits="userSpaceOnUse" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2360"
-       id="radialGradient2366"
-       cx="224.41418"
-       cy="212.80016"
-       fx="224.41418"
-       fy="212.80016"
-       r="8.6813803"
-       gradientTransform="matrix(1,0,0,0.984179,0,3.366635)"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2249"
-       id="linearGradient2227"
-       x1="192.03938"
-       y1="262.25757"
-       x2="263.67093"
-       y2="262.25757"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2229"
-       id="linearGradient2247"
-       x1="191.75092"
-       y1="258.91571"
-       x2="255.6561"
-       y2="258.91571"
-       gradientUnits="userSpaceOnUse" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2360"
-       id="radialGradient2317"
-       cx="257.41144"
-       cy="274.64203"
-       fx="257.41144"
-       fy="274.64203"
-       r="7.1440549"
-       gradientTransform="matrix(1,0,0,1.631384,0,-173.4045)"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2360"
-       id="linearGradient2325"
-       x1="184.07063"
-       y1="246.35907"
-       x2="201.40646"
-       y2="246.35907"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2332"
-       id="linearGradient2346"
-       x1="162.76369"
-       y1="184.99277"
-       x2="240.84924"
-       y2="289.50323"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2348"
-       id="linearGradient2354"
-       x1="140.15784"
-       y1="303.78967"
-       x2="136.14151"
-       y2="195.87151"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2370"
-       id="linearGradient2362"
-       x1="286.15598"
-       y1="262.28729"
-       x2="185.81258"
-       y2="172.32423"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2389"
-       id="linearGradient2395"
-       x1="213.96568"
-       y1="220.07191"
-       x2="244.79126"
-       y2="265.40363"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2408"
-       id="linearGradient2406"
-       x1="184.30582"
-       y1="241.52789"
-       x2="224.67441"
-       y2="307.52844"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2600"
-       id="linearGradient2606"
-       x1="202.41772"
-       y1="222.05145"
-       x2="206.06017"
-       y2="210.3558"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2612"
-       id="linearGradient2618"
-       x1="248.62152"
-       y1="234.52202"
-       x2="251.64362"
-       y2="213.12164"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2624"
-       id="linearGradient2630"
-       x1="275.71765"
-       y1="251.56442"
-       x2="255.68353"
-       y2="217.94008"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2352"
-       id="linearGradient2640"
-       gradientUnits="userSpaceOnUse"
-       x1="219.66267"
-       y1="192.73286"
-       x2="277.8761"
-       y2="192.73286" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2336"
-       id="linearGradient2643"
-       gradientUnits="userSpaceOnUse"
-       x1="219.21262"
-       y1="189.01556"
-       x2="286.22665"
-       y2="189.01556" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2360"
-       id="radialGradient2647"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,0.984179,0,3.366635)"
-       cx="224.41418"
-       cy="212.80016"
-       fx="224.41418"
-       fy="212.80016"
-       r="8.6813803" />
-  </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="2.03"
-     inkscape:cx="35.144424"
-     inkscape:cy="83.160427"
-     inkscape:document-units="px"
-     inkscape:current-layer="layer3"
-     inkscape:window-width="1366"
-     inkscape:window-height="716"
-     inkscape:window-x="-8"
-     inkscape:window-y="-8"
-     showguides="true"
-     inkscape:guide-bbox="true"
-     showgrid="false"
-     fit-margin-top="0"
-     fit-margin-left="0"
-     fit-margin-right="0"
-     fit-margin-bottom="0"
-     inkscape:window-maximized="1"
-     inkscape:showpageshadow="false"
-     showborder="true"
-     borderlayer="false" />
-  <metadata
-     id="metadata7">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title>DokuWiki Logo</dc:title>
-        <dc:creator>
-          <cc:Agent>
-            <dc:title>Esther Brunner</dc:title>
-          </cc:Agent>
-        </dc:creator>
-        <cc:license
-           rdf:resource="http://www.gnu.org/licenses/gpl-2.0.html" />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:groupmode="layer"
-     id="layer3"
-     inkscape:label="paper"
-     style="display:inline"
-     transform="translate(-158.10602,-158.67323)">
-    <g
-       id="g1419"
-       transform="matrix(0.99993322,0,0,0.9959778,0.01483419,0.8957919)">
-      <g
-         id="g2376">
-        <path
-           transform="matrix(0.989976,-0.141236,0.201069,0.979577,0,0)"
-           style="fill:url(#linearGradient2354);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.7216621px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
-           d="m 120.21543,196.43769 70.90655,-0.79226 -2.40261,109.05308 -71.71761,0.37344 3.21367,-108.63426 z"
-           id="rect1422"
-           sodipodi:nodetypes="ccccc"
-           inkscape:connector-curvature="0" />
-        <path
-           style="fill:url(#linearGradient2362);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
-           d="m 179.20033,182.08731 79.84173,-19.51687 26.61391,101.72428 -82.50312,21.58684 -23.95252,-103.79425 z"
-           id="rect1425"
-           sodipodi:nodetypes="ccccc"
-           inkscape:connector-curvature="0" />
-        <path
-           transform="matrix(0.995676,-0.09289891,0.08102261,0.996712,0,0)"
-           style="fill:url(#linearGradient2346);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00418305px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
-           d="m 159.01353,181.74387 85.58587,0.53396 0,110.47429 -84.53387,-2.5127 -1.052,-108.49555 z"
-           id="rect1419"
-           sodipodi:nodetypes="ccccc"
-           inkscape:connector-curvature="0" />
-      </g>
-      <path
-         id="text2382"
-         d="m 167.55116,214.00773 0,-20.1846 5.34962,0 0,2.37403 -2.48145,0 0,15.43654 2.48145,0 0,2.37403 -5.34962,0 m 7.34767,0 0,-20.1846 5.34961,0 0,2.37403 -2.48144,0 0,15.43654 2.48144,0 0,2.37403 -5.34961,0 m 7.36915,-20.1846 5.81153,0 c 1.31054,2e-5 2.30956,0.10028 2.99707,0.30078 0.92382,0.27216 1.71516,0.75555 2.37403,1.4502 0.65884,0.69468 1.16014,1.54689 1.50391,2.55664 0.34373,1.00262 0.51561,2.24155 0.51562,3.71681 -10e-6,1.29623 -0.16115,2.41342 -0.4834,3.35156 -0.39389,1.14584 -0.95607,2.07325 -1.68652,2.78223 -0.55145,0.53711 -1.29624,0.95606 -2.23438,1.25684 -0.70183,0.222 -1.63999,0.33301 -2.81446,0.33301 l -5.9834,0 0,-15.74807 m 3.17969,2.66407 0,10.43067 2.37402,0 c 0.88802,1e-5 1.52897,-0.0501 1.92286,-0.15039 0.51561,-0.1289 0.94172,-0.34732 1.27832,-0.65527 0.34374,-0.30794 0.62304,-0.81282 0.83789,-1.51465 0.21483,-0.70898 0.32226,-1.6722 0.32227,-2.88965 -1e-5,-1.21744 -0.10744,-2.15201 -0.32227,-2.80372 -0.21485,-0.65168 -0.51563,-1.16014 -0.90234,-1.52539 -0.38673,-0.36522 -0.87729,-0.61229 -1.47168,-0.74121 -0.44402,-0.10025 -1.31414,-0.15038 -2.61036,-0.15039 l -1.42871,0 m 14.96388,13.084 -3.75977,-15.74807 3.25489,0 2.37403,10.8174 2.87891,-10.8174 3.78125,0 2.76074,11.00002 2.417,-11.00002 3.20118,0 -3.82423,15.74807 -3.37305,0 -3.13672,-11.77345 -3.12598,11.77345 -3.44825,0 m 22.76272,-15.74807 0,20.1846 -5.34961,0 0,-2.37403 2.48145,0 0,-15.45803 -2.48145,0 0,-2.35254 5.34961,0 m 7.34767,0 0,20.1846 -5.34962,0 0,-2.37403 2.48145,0 0,-15.45803 -2.48145,0 0,-2.35254 5.34962,0"
-         style="font-size:12.0000124px;font-style:normal;font-weight:normal;line-height:125%;fill:#6184a3;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
-         transform="matrix(0.995433,-0.09546066,0.09546066,0.995433,0,0)"
-         inkscape:connector-curvature="0" />
-      <g
-         id="g2632"
-         style="display:inline">
-        <path
-           style="fill:url(#linearGradient2606);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;marker-end:none"
-           d="m 174.75585,201.60224 c -6.04576,2.46667 -10.16789,4.4194 -12.88454,6.35064 -2.71665,1.93124 -3.19257,4.60007 -3.24631,6.26587 -0.0269,0.8329 0.0809,1.77774 0.63189,2.44014 0.55103,0.6624 1.80769,1.87421 2.75794,2.38558 1.90049,1.02274 7.5417,2.42901 10.51899,3.07308 11.90917,2.57627 26.80568,1.68117 26.80568,1.68117 1.69307,1.2452 2.83283,2.82434 3.269,4.26902 4.5766,-1.88674 11.81084,-6.58439 13.15657,-8.57706 -5.45142,-4.19955 -10.79692,-6.33346 -16.51317,-8.30847 -1.59867,-0.71918 -2.87956,-1.22649 -0.71773,2.55635 0.98506,2.47275 0.85786,5.05143 0.57176,7.41825 0,0 -16.52749,0.40678 -28.23838,-2.1266 -2.92772,-0.63334 -5.46627,-0.95523 -7.21875,-1.89832 -0.87624,-0.47154 -1.48296,-0.8208 -1.91578,-1.3411 -0.43282,-0.5203 -0.2196,-1.29055 -0.20128,-1.85858 0.0366,-1.13607 0.25336,-1.67063 2.86177,-3.52492 2.60841,-1.85429 5.65407,-3.36195 11.65936,-5.81211 -0.0877,-1.29125 -0.29025,-2.5059 -1.29702,-2.99294 z"
-           id="path2414"
-           sodipodi:nodetypes="csssssccccccssssscc"
-           inkscape:connector-curvature="0" />
-        <path
-           style="fill:url(#linearGradient2618);fill-opacity:1;fill-rule:evenodd;stroke:none"
-           d="m 269.62539,220.7482 c -1.43576,-0.13963 -2.58044,0.30288 -2.56084,1.50218 0.94391,0.85652 1.34942,2.43518 1.48562,3.14008 0.1362,0.7049 0.0359,1.21914 -0.48562,1.89004 -1.043,1.3418 -3.12498,1.56875 -6.5006,2.72063 -6.75124,2.30377 -16.89306,2.52561 -27.90689,3.84639 -22.02767,2.64157 -39.03164,3.76107 -39.03164,3.76107 1.98346,-4.64758 6.32828,-4.41197 6.34903,-8.20969 0.27376,-0.89755 -3.14597,-1.31638 -5.09943,-0.10731 -4.26694,3.70137 -7.59152,6.75353 -10.69418,10.51311 l 1.88795,3.08438 c 0,0 26.13006,-2.88973 48.19776,-5.5361 11.03385,-1.32318 20.95601,-1.99856 27.80968,-4.33728 3.42683,-1.16936 5.95975,-1.49022 7.6409,-3.51958 0.63172,-0.76256 1.35238,-3.04699 1.06804,-4.73369 -0.21951,-1.30213 -1.14979,-3.09774 -2.15978,-4.01423 z"
-           id="path2608"
-           sodipodi:nodetypes="ccsssscccccssssc"
-           inkscape:connector-curvature="0" />
-        <path
-           style="fill:url(#linearGradient2630);fill-opacity:1;fill-rule:evenodd;stroke:none"
-           d="m 254.36185,220.33948 c -6.84997,3.24198 -7.15311,8.60912 -5.95953,12.79884 1.19358,4.18972 5.26293,8.75677 9.32121,12.40608 8.11656,7.29861 12.06046,9.33163 12.06046,9.33163 -3.71515,-0.10342 -7.89887,-1.41174 -8.13315,0.49304 -0.9483,2.97582 11.49137,3.47486 17.43787,2.70205 -1.39456,-7.57836 -3.79323,-13.21546 -7.73151,-14.90312 -1.68464,-0.14804 0.31242,4.72441 0.76985,9.39604 0,0 -3.62454,-1.73122 -11.60519,-8.90762 -3.99032,-3.5882 -7.37386,-7.3421 -8.47319,-11.20099 -1.09933,-3.85889 0.0776,-6.1205 4.95082,-9.53176 0.92816,-0.99528 -1.28985,-2.45913 -2.63764,-2.58419 z"
-           id="path2620"
-           sodipodi:nodetypes="csscccccsscc"
-           inkscape:connector-curvature="0" />
-      </g>
-      <path
-         sodipodi:nodetypes="cccccc"
-         id="rect2386"
-         d="m 213.96569,234.57806 2.18756,-14.42897 15.21982,6.08793 21.49387,29.94828 -20.40591,9.21832 -18.49534,-30.82556 z"
-         style="fill:url(#linearGradient2395);fill-opacity:1;stroke:none;display:inline"
-         inkscape:connector-curvature="0" />
-      <g
-         id="g2649"
-         style="display:inline">
-        <path
-           style="fill:url(#radialGradient2647);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1"
-           d="m 232.55816,219.5295 -15.92827,0.32199 3.08809,-15.15716 12.84018,14.83517 z"
-           id="path1443"
-           sodipodi:nodetypes="cccc"
-           inkscape:connector-curvature="0" />
-        <path
-           style="fill:#812310;fill-opacity:1;fill-rule:evenodd;stroke:none"
-           d="m 221.60041,219.29315 -4.41205,0.0782 0.85429,-3.98263 3.55776,3.90445 z"
-           id="path1452"
-           sodipodi:nodetypes="cccc"
-           inkscape:connector-curvature="0" />
-        <path
-           style="fill:url(#linearGradient2643);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1"
-           d="m 269.44172,159.27421 0.098,8.91471 8.0581,8.72344 7.75906,0.7992 -52.80669,41.84092 -6.66532,-3.30696 -5.08243,-5.618 -1.08987,-5.91194 49.72911,-45.44137 z"
-           id="rect1437"
-           sodipodi:nodetypes="ccccccccc"
-           inkscape:connector-curvature="0" />
-        <path
-           style="fill:url(#linearGradient2640);fill-opacity:1;fill-rule:evenodd;stroke:none"
-           d="m 268.94766,168.32844 8.3426,8.82719 -51.1007,38.68262 -4.9197,-5.4436 47.6778,-42.06621 z"
-           id="rect1446"
-           sodipodi:nodetypes="ccccc"
-           inkscape:connector-curvature="0" />
-        <path
-           style="fill:#ffe965;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;display:inline"
-           d="m 285.33776,177.73216 -8.16219,-0.86619 -7.7518,-8.67862 0.0132,-9.14293 8.36213,0.75209 7.18862,9.57682 0.35007,8.35883 z"
-           id="path1440"
-           sodipodi:nodetypes="ccccccc"
-           inkscape:connector-curvature="0" />
-        <path
-           style="fill:#cb391c;fill-opacity:1;fill-rule:evenodd;stroke:none"
-           d="m 280.72049,168.46367 0.1644,4.05654 -3.81335,-0.71676 -2.87504,-3.18901 -0.28089,-3.53393 3.85447,-0.16637 2.95041,3.54953 z"
-           id="path1449"
-           sodipodi:nodetypes="ccccccc"
-           inkscape:connector-curvature="0" />
-      </g>
-      <g
-         id="g2657"
-         style="display:inline">
-        <path
-           style="fill:url(#linearGradient2406);fill-opacity:1;stroke:none"
-           d="m 183.88617,256.82796 0.99991,-16.30721 17.2878,8.44012 26.05488,38.00946 -29.28095,-1.13363 -15.06164,-29.00874 z"
-           id="rect2397"
-           sodipodi:nodetypes="cccccc"
-           inkscape:connector-curvature="0" />
-        <path
-           style="fill:url(#linearGradient2325);fill-opacity:1;stroke:#000000;stroke-linejoin:round;stroke-opacity:1;display:inline"
-           d="m 200.90647,238.44836 -8.04601,15.77386 -7.05577,-13.57337 15.10178,-2.20049 z"
-           id="rect2207"
-           sodipodi:nodetypes="cccc"
-           inkscape:connector-curvature="0" />
-        <path
-           style="fill:url(#linearGradient2227);fill-opacity:1;stroke:#000000;stroke-linejoin:round;stroke-opacity:1"
-           d="m 201.05389,238.55401 62.11704,24.91912 -7.88689,3.21429 -4.35152,9.30976 1.1716,9.96396 -59.31453,-31.72759 -0.49402,-7.36382 3.09592,-5.82826 5.6624,-2.48746 z"
-           id="rect1328"
-           sodipodi:nodetypes="ccccccccc"
-           inkscape:connector-curvature="0" />
-        <path
-           style="fill:url(#radialGradient2317);fill-opacity:1;stroke:#000000;stroke-linejoin:round;stroke-opacity:1;display:inline"
-           d="m 255.27801,266.53504 7.9241,-3.04772 0.85337,10.24037 -3.9011,8.28983 -8.04601,3.77919 -1.341,-9.63083 4.51064,-9.63084 z"
-           id="rect2204"
-           sodipodi:nodetypes="ccccccc"
-           inkscape:connector-curvature="0" />
-        <path
-           style="fill:url(#linearGradient2247);fill-opacity:1;stroke:none;display:inline"
-           d="m 195.7549,241.421 59.13059,24.7962 -4.5917,9.76614 -57.48995,-29.00967 2.95106,-5.55267 z"
-           id="rect2210"
-           sodipodi:nodetypes="ccccc"
-           inkscape:connector-curvature="0" />
-        <path
-           style="fill:#00b527;fill-opacity:1;stroke:none"
-           d="m 255.02263,275.21029 2.08411,-4.1069 2.96459,-1.06995 0.69433,3.37197 -1.76759,3.85723 -3.15516,1.38315 -0.82028,-3.4355 z"
-           id="rect2308"
-           sodipodi:nodetypes="ccccccc"
-           inkscape:connector-curvature="0" />
-        <path
-           style="fill:#258209;fill-opacity:1;stroke:none;display:inline"
-           d="m 186.56849,241.00362 3.54963,-0.47312 -2.02297,3.53926 -1.52666,-3.06614 z"
-           id="rect2327"
-           sodipodi:nodetypes="cccc"
-           inkscape:connector-curvature="0" />
-      </g>
-    </g>
-  </g>
-</svg>
diff --git a/wiki/data/media_attic/_dummy b/wiki/data/media_attic/_dummy
deleted file mode 100644
index e492265..0000000
--- a/wiki/data/media_attic/_dummy
+++ /dev/null
@@ -1 +0,0 @@
-You can safely delete this file.
\ No newline at end of file
diff --git a/wiki/data/media_meta/_dummy b/wiki/data/media_meta/_dummy
deleted file mode 100644
index e492265..0000000
--- a/wiki/data/media_meta/_dummy
+++ /dev/null
@@ -1 +0,0 @@
-You can safely delete this file.
\ No newline at end of file
diff --git a/wiki/data/meta/_dokuwiki.changes b/wiki/data/meta/_dokuwiki.changes
deleted file mode 100644
index 7ea99dd..0000000
--- a/wiki/data/meta/_dokuwiki.changes
+++ /dev/null
@@ -1,2 +0,0 @@
-1543882518	68.131.42.94	C	start	ahriman	created		232
-1543882598	68.131.42.94	E	start	ahriman			22
diff --git a/wiki/data/meta/_dokuwiki.changes.trimmed b/wiki/data/meta/_dokuwiki.changes.trimmed
deleted file mode 100644
index e69de29..0000000
--- a/wiki/data/meta/_dokuwiki.changes.trimmed
+++ /dev/null
diff --git a/wiki/data/meta/_dummy b/wiki/data/meta/_dummy
deleted file mode 100644
index e492265..0000000
--- a/wiki/data/meta/_dummy
+++ /dev/null
@@ -1 +0,0 @@
-You can safely delete this file.
\ No newline at end of file
diff --git a/wiki/data/meta/_htcookiesalt2 b/wiki/data/meta/_htcookiesalt2
deleted file mode 100644
index a38123b..0000000
--- a/wiki/data/meta/_htcookiesalt2
+++ /dev/null
@@ -1 +0,0 @@
-e789431407b652ecbe63a4a9ee812d1a45ae080bd51862c86f68ffa978cb6f378a808d26e58310de2dfdd6e946f5eee95963d57b87fbee5a9ba75e9fddc50dd4
\ No newline at end of file
diff --git a/wiki/data/meta/playground/playground.indexed b/wiki/data/meta/playground/playground.indexed
deleted file mode 100644
index 301160a..0000000
--- a/wiki/data/meta/playground/playground.indexed
+++ /dev/null
@@ -1 +0,0 @@
-8
\ No newline at end of file
diff --git a/wiki/data/meta/playground/playground.meta b/wiki/data/meta/playground/playground.meta
deleted file mode 100644
index 9108f02..0000000
--- a/wiki/data/meta/playground/playground.meta
+++ /dev/null
@@ -1 +0,0 @@
-a:2:{s:7:"current";a:7:{s:4:"date";a:2:{s:7:"created";i:1543881884;s:8:"modified";i:1543881884;}s:4:"user";s:0:"";s:7:"creator";s:0:"";s:5:"title";s:10:"PlayGround";s:11:"description";a:2:{s:15:"tableofcontents";a:1:{i:0;a:4:{s:3:"hid";s:10:"playground";s:5:"title";s:10:"PlayGround";s:4:"type";s:2:"ul";s:5:"level";i:1;}}s:8:"abstract";s:10:"PlayGround";}s:8:"internal";a:2:{s:5:"cache";b:1;s:3:"toc";b:1;}s:8:"relation";a:1:{s:10:"firstimage";s:0:"";}}s:10:"persistent";a:3:{s:4:"date";a:1:{s:7:"created";i:1543881884;}s:4:"user";s:0:"";s:7:"creator";s:0:"";}}
\ No newline at end of file
diff --git a/wiki/data/meta/start.changes b/wiki/data/meta/start.changes
deleted file mode 100644
index 7ea99dd..0000000
--- a/wiki/data/meta/start.changes
+++ /dev/null
@@ -1,2 +0,0 @@
-1543882518	68.131.42.94	C	start	ahriman	created		232
-1543882598	68.131.42.94	E	start	ahriman			22
diff --git a/wiki/data/meta/start.indexed b/wiki/data/meta/start.indexed
deleted file mode 100644
index 301160a..0000000
--- a/wiki/data/meta/start.indexed
+++ /dev/null
@@ -1 +0,0 @@
-8
\ No newline at end of file
diff --git a/wiki/data/meta/start.meta b/wiki/data/meta/start.meta
deleted file mode 100644
index b92c003..0000000
--- a/wiki/data/meta/start.meta
+++ /dev/null
@@ -1,2 +0,0 @@
-a:2:{s:7:"current";a:8:{s:4:"date";a:2:{s:7:"created";i:1543882518;s:8:"modified";i:1543882598;}s:7:"creator";s:7:"ahriman";s:4:"user";s:7:"ahriman";s:11:"last_change";a:8:{s:4:"date";i:1543882598;s:2:"ip";s:12:"68.131.42.94";s:4:"type";s:1:"E";s:2:"id";s:5:"start";s:4:"user";s:7:"ahriman";s:3:"sum";s:0:"";s:5:"extra";s:0:"";s:10:"sizechange";i:22;}s:11:"contributor";a:1:{s:7:"ahriman";s:7:"ahriman";}s:8:"internal";a:2:{s:5:"cache";b:1;s:3:"toc";b:1;}s:11:"description";a:1:{s:8:"abstract";s:250:"Welcome to the tilde.institute wiki!
-This is the place to record anything new you've learned and anything cool you've done at the institute. Share information with others to help spread knowledge of the OpenBSD operating system. We'll learn together!";}s:8:"relation";a:1:{s:10:"firstimage";s:0:"";}}s:10:"persistent";a:5:{s:4:"date";a:2:{s:7:"created";i:1543882518;s:8:"modified";i:1543882598;}s:7:"creator";s:7:"ahriman";s:4:"user";s:7:"ahriman";s:11:"last_change";a:8:{s:4:"date";i:1543882598;s:2:"ip";s:12:"68.131.42.94";s:4:"type";s:1:"E";s:2:"id";s:5:"start";s:4:"user";s:7:"ahriman";s:3:"sum";s:0:"";s:5:"extra";s:0:"";s:10:"sizechange";i:22;}s:11:"contributor";a:1:{s:7:"ahriman";s:7:"ahriman";}}}
\ No newline at end of file
diff --git a/wiki/data/meta/wiki/dokuwiki.indexed b/wiki/data/meta/wiki/dokuwiki.indexed
deleted file mode 100644
index 301160a..0000000
--- a/wiki/data/meta/wiki/dokuwiki.indexed
+++ /dev/null
@@ -1 +0,0 @@
-8
\ No newline at end of file
diff --git a/wiki/data/meta/wiki/dokuwiki.meta b/wiki/data/meta/wiki/dokuwiki.meta
deleted file mode 100644
index 3cd5f22..0000000
--- a/wiki/data/meta/wiki/dokuwiki.meta
+++ /dev/null
@@ -1,3 +0,0 @@
-a:2:{s:7:"current";a:7:{s:4:"date";a:2:{s:7:"created";i:1543881884;s:8:"modified";i:1543881884;}s:4:"user";s:0:"";s:7:"creator";s:0:"";s:5:"title";s:8:"DokuWiki";s:11:"description";a:2:{s:15:"tableofcontents";a:4:{i:0;a:4:{s:3:"hid";s:8:"dokuwiki";s:5:"title";s:8:"DokuWiki";s:4:"type";s:2:"ul";s:5:"level";i:1;}i:1;a:4:{s:3:"hid";s:8:"download";s:5:"title";s:8:"Download";s:4:"type";s:2:"ul";s:5:"level";i:2;}i:2;a:4:{s:3:"hid";s:9:"read_more";s:5:"title";s:9:"Read More";s:4:"type";s:2:"ul";s:5:"level";i:2;}i:3;a:4:{s:3:"hid";s:9:"copyright";s:5:"title";s:9:"Copyright";s:4:"type";s:2:"ul";s:5:"level";i:2;}}s:8:"abstract";s:282:"DokuWiki
-
-wiki:dokuwiki DokuWiki is a simple to use and highly versatile Open Source wiki software that doesn't require a database. It is loved by users for its clean and readable syntax. The ease of maintenance, backup and integration makes it an administrator's favorite. Built in";}s:8:"relation";a:3:{s:5:"media";a:1:{s:21:"wiki:dokuwiki-128.png";b:1;}s:10:"references";a:1:{s:11:"wiki:syntax";b:1;}s:10:"firstimage";s:21:"wiki:dokuwiki-128.png";}s:8:"internal";a:2:{s:5:"cache";b:1;s:3:"toc";b:1;}}s:10:"persistent";a:3:{s:4:"date";a:1:{s:7:"created";i:1543881884;}s:4:"user";s:0:"";s:7:"creator";s:0:"";}}
\ No newline at end of file
diff --git a/wiki/data/meta/wiki/syntax.indexed b/wiki/data/meta/wiki/syntax.indexed
deleted file mode 100644
index 301160a..0000000
--- a/wiki/data/meta/wiki/syntax.indexed
+++ /dev/null
@@ -1 +0,0 @@
-8
\ No newline at end of file
diff --git a/wiki/data/meta/wiki/syntax.meta b/wiki/data/meta/wiki/syntax.meta
deleted file mode 100644
index 0759ca9..0000000
--- a/wiki/data/meta/wiki/syntax.meta
+++ /dev/null
@@ -1,3 +0,0 @@
-a:2:{s:7:"current";a:7:{s:4:"date";a:3:{s:7:"created";i:1543881884;s:5:"valid";a:1:{s:3:"age";i:3600;}s:8:"modified";i:1543881884;}s:4:"user";s:0:"";s:7:"creator";s:0:"";s:5:"title";s:17:"Formatting Syntax";s:11:"description";a:2:{s:15:"tableofcontents";a:28:{i:0;a:4:{s:3:"hid";s:17:"formatting_syntax";s:5:"title";s:17:"Formatting Syntax";s:4:"type";s:2:"ul";s:5:"level";i:1;}i:1;a:4:{s:3:"hid";s:21:"basic_text_formatting";s:5:"title";s:21:"Basic Text Formatting";s:4:"type";s:2:"ul";s:5:"level";i:2;}i:2;a:4:{s:3:"hid";s:5:"links";s:5:"title";s:5:"Links";s:4:"type";s:2:"ul";s:5:"level";i:2;}i:3;a:4:{s:3:"hid";s:8:"external";s:5:"title";s:8:"External";s:4:"type";s:2:"ul";s:5:"level";i:3;}i:4;a:4:{s:3:"hid";s:8:"internal";s:5:"title";s:8:"Internal";s:4:"type";s:2:"ul";s:5:"level";i:3;}i:5;a:4:{s:3:"hid";s:9:"interwiki";s:5:"title";s:9:"Interwiki";s:4:"type";s:2:"ul";s:5:"level";i:3;}i:6;a:4:{s:3:"hid";s:14:"windows_shares";s:5:"title";s:14:"Windows Shares";s:4:"type";s:2:"ul";s:5:"level";i:3;}i:7;a:4:{s:3:"hid";s:11:"image_links";s:5:"title";s:11:"Image Links";s:4:"type";s:2:"ul";s:5:"level";i:3;}i:8;a:4:{s:3:"hid";s:9:"footnotes";s:5:"title";s:9:"Footnotes";s:4:"type";s:2:"ul";s:5:"level";i:2;}i:9;a:4:{s:3:"hid";s:10:"sectioning";s:5:"title";s:10:"Sectioning";s:4:"type";s:2:"ul";s:5:"level";i:2;}i:10;a:4:{s:3:"hid";s:16:"headline_level_3";s:5:"title";s:16:"Headline Level 3";s:4:"type";s:2:"ul";s:5:"level";i:3;}i:11;a:4:{s:3:"hid";s:11:"media_files";s:5:"title";s:11:"Media Files";s:4:"type";s:2:"ul";s:5:"level";i:2;}i:12;a:4:{s:3:"hid";s:23:"supported_media_formats";s:5:"title";s:23:"Supported Media Formats";s:4:"type";s:2:"ul";s:5:"level";i:3;}i:13;a:4:{s:3:"hid";s:16:"fallback_formats";s:5:"title";s:16:"Fallback Formats";s:4:"type";s:2:"ul";s:5:"level";i:3;}i:14;a:4:{s:3:"hid";s:5:"lists";s:5:"title";s:5:"Lists";s:4:"type";s:2:"ul";s:5:"level";i:2;}i:15;a:4:{s:3:"hid";s:16:"text_conversions";s:5:"title";s:16:"Text Conversions";s:4:"type";s:2:"ul";s:5:"level";i:2;}i:16;a:4:{s:3:"hid";s:25:"text_to_image_conversions";s:5:"title";s:25:"Text to Image Conversions";s:4:"type";s:2:"ul";s:5:"level";i:3;}i:17;a:4:{s:3:"hid";s:24:"text_to_html_conversions";s:5:"title";s:24:"Text to HTML Conversions";s:4:"type";s:2:"ul";s:5:"level";i:3;}i:18;a:4:{s:3:"hid";s:7:"quoting";s:5:"title";s:7:"Quoting";s:4:"type";s:2:"ul";s:5:"level";i:2;}i:19;a:4:{s:3:"hid";s:6:"tables";s:5:"title";s:6:"Tables";s:4:"type";s:2:"ul";s:5:"level";i:2;}i:20;a:4:{s:3:"hid";s:13:"no_formatting";s:5:"title";s:13:"No Formatting";s:4:"type";s:2:"ul";s:5:"level";i:2;}i:21;a:4:{s:3:"hid";s:11:"code_blocks";s:5:"title";s:11:"Code Blocks";s:4:"type";s:2:"ul";s:5:"level";i:2;}i:22;a:4:{s:3:"hid";s:19:"syntax_highlighting";s:5:"title";s:19:"Syntax Highlighting";s:4:"type";s:2:"ul";s:5:"level";i:3;}i:23;a:4:{s:3:"hid";s:24:"downloadable_code_blocks";s:5:"title";s:24:"Downloadable Code Blocks";s:4:"type";s:2:"ul";s:5:"level";i:3;}i:24;a:4:{s:3:"hid";s:22:"embedding_html_and_php";s:5:"title";s:22:"Embedding HTML and PHP";s:4:"type";s:2:"ul";s:5:"level";i:2;}i:25;a:4:{s:3:"hid";s:25:"rss_atom_feed_aggregation";s:5:"title";s:25:"RSS/ATOM Feed Aggregation";s:4:"type";s:2:"ul";s:5:"level";i:2;}i:26;a:4:{s:3:"hid";s:14:"control_macros";s:5:"title";s:14:"Control Macros";s:4:"type";s:2:"ul";s:5:"level";i:2;}i:27;a:4:{s:3:"hid";s:14:"syntax_plugins";s:5:"title";s:14:"Syntax Plugins";s:4:"type";s:2:"ul";s:5:"level";i:2;}}s:8:"abstract";s:263:"Formatting Syntax
-
-DokuWiki supports some simple markup language, which tries to make the datafiles to be as readable as possible. This page contains all possible syntax you may use when editing the pages. Simply have a look at the source of this page by pressing";}s:8:"relation";a:4:{s:10:"references";a:6:{s:21:"playground:playground";b:1;s:13:"wiki:pagename";b:0;s:15:"some:namespaces";b:0;s:11:"wiki:syntax";b:1;s:16:"wiki:nonexisting";b:0;s:13:"wiki:dokuwiki";b:1;}s:5:"media";a:1:{s:21:"wiki:dokuwiki-128.png";b:1;}s:7:"haspart";a:1:{s:29:"http://slashdot.org/index.rss";b:1;}s:10:"firstimage";s:21:"wiki:dokuwiki-128.png";}s:8:"internal";a:2:{s:5:"cache";b:1;s:3:"toc";b:1;}}s:10:"persistent";a:3:{s:4:"date";a:1:{s:7:"created";i:1543881884;}s:4:"user";s:0:"";s:7:"creator";s:0:"";}}
\ No newline at end of file
diff --git a/wiki/data/meta/wiki/welcome.indexed b/wiki/data/meta/wiki/welcome.indexed
deleted file mode 100644
index 301160a..0000000
--- a/wiki/data/meta/wiki/welcome.indexed
+++ /dev/null
@@ -1 +0,0 @@
-8
\ No newline at end of file
diff --git a/wiki/data/meta/wiki/welcome.meta b/wiki/data/meta/wiki/welcome.meta
deleted file mode 100644
index 09d9bd2..0000000
--- a/wiki/data/meta/wiki/welcome.meta
+++ /dev/null
@@ -1,11 +0,0 @@
-a:2:{s:7:"current";a:7:{s:4:"date";a:2:{s:7:"created";i:1543881884;s:8:"modified";i:1543881884;}s:4:"user";s:0:"";s:7:"creator";s:0:"";s:5:"title";s:28:"Welcome to your new DokuWiki";s:11:"description";a:2:{s:15:"tableofcontents";a:4:{i:0;a:4:{s:3:"hid";s:28:"welcome_to_your_new_dokuwiki";s:5:"title";s:28:"Welcome to your new DokuWiki";s:4:"type";s:2:"ul";s:5:"level";i:1;}i:1;a:4:{s:3:"hid";s:23:"create_your_first_pages";s:5:"title";s:23:"Create your first pages";s:4:"type";s:2:"ul";s:5:"level";i:2;}i:2;a:4:{s:3:"hid";s:19:"customize_your_wiki";s:5:"title";s:19:"Customize your Wiki";s:4:"type";s:2:"ul";s:5:"level";i:2;}i:3;a:4:{s:3:"hid";s:18:"join_the_community";s:5:"title";s:18:"Join the Community";s:4:"type";s:2:"ul";s:5:"level";i:2;}}s:8:"abstract";s:291:"Welcome to your new DokuWiki
-
-Congratulations, your wiki is now up and running. Here are a few more tips to get you started.
-
-Enjoy your work with DokuWiki,
-
--- the developers
-
-Create your first pages
-
-Your wiki needs to have a start page. As long as it doesn't exist, this link will be red:";}s:8:"relation";a:2:{s:10:"references";a:3:{s:5:"start";b:1;s:11:"wiki:syntax";b:1;s:7:"sidebar";b:0;}s:10:"firstimage";s:0:"";}s:8:"internal";a:2:{s:5:"cache";b:1;s:3:"toc";b:1;}}s:10:"persistent";a:3:{s:4:"date";a:1:{s:7:"created";i:1543881884;}s:4:"user";s:0:"";s:7:"creator";s:0:"";}}
\ No newline at end of file
diff --git a/wiki/data/pages/playground/playground.txt b/wiki/data/pages/playground/playground.txt
deleted file mode 100644
index a2274bd..0000000
--- a/wiki/data/pages/playground/playground.txt
+++ /dev/null
@@ -1 +0,0 @@
-====== PlayGround ======
diff --git a/wiki/data/pages/start.txt b/wiki/data/pages/start.txt
deleted file mode 100644
index 255d621..0000000
--- a/wiki/data/pages/start.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**Welcome to the tilde.institute wiki!**
-This is the place to record anything new you've learned and anything cool you've done at the institute. Share information with others to help spread knowledge of the OpenBSD operating system. We'll learn together!
\ No newline at end of file
diff --git a/wiki/data/pages/wiki/dokuwiki.txt b/wiki/data/pages/wiki/dokuwiki.txt
deleted file mode 100644
index 29843e5..0000000
--- a/wiki/data/pages/wiki/dokuwiki.txt
+++ /dev/null
@@ -1,64 +0,0 @@
-====== DokuWiki ======
-
-[[doku>wiki:dokuwiki|{{wiki:dokuwiki-128.png }}]] DokuWiki is a simple to use and highly versatile Open Source [[wp>wiki]] software that doesn't require a database. It is loved by users for its clean and readable [[wiki:syntax]]. The ease of maintenance, backup and integration makes it an administrator's favorite. Built in [[doku>acl|access controls]] and [[doku>auth|authentication connectors]] make DokuWiki especially useful in the enterprise context and the large number of [[doku>plugins]] contributed by its vibrant community allow for a broad range of use cases beyond a traditional wiki.
-
-Read the [[doku>manual|DokuWiki Manual]] to unleash the full power of DokuWiki.
-
-===== Download =====
-
-DokuWiki is available at http://download.dokuwiki.org/
-
-
-===== Read More =====
-
-All documentation and additional information besides the [[syntax|syntax description]] is maintained in the DokuWiki at [[doku>|www.dokuwiki.org]].
-
-**About DokuWiki**
-
-  * [[doku>features|A feature list]] :!:
-  * [[doku>users|Happy Users]]
-  * [[doku>press|Who wrote about it]]
-  * [[doku>blogroll|What Bloggers think]]
-  * [[http://www.wikimatrix.org/show/DokuWiki|Compare it with other wiki software]]
-
-**Installing DokuWiki**
-
-  * [[doku>requirements|System Requirements]]
-  * [[http://download.dokuwiki.org/|Download DokuWiki]] :!:
-  * [[doku>changes|Change Log]]
-  * [[doku>Install|How to install or upgrade]] :!:
-  * [[doku>config|Configuration]]
-
-**Using DokuWiki**
-
-  * [[doku>syntax|Wiki Syntax]]
-  * [[doku>manual|The manual]] :!:
-  * [[doku>FAQ|Frequently Asked Questions (FAQ)]]
-  * [[doku>glossary|Glossary]]
-  * [[http://search.dokuwiki.org|Search for DokuWiki help and documentation]]
-
-**Customizing DokuWiki**
-
-  * [[doku>tips|Tips and Tricks]]
-  * [[doku>Template|How to create and use templates]]
-  * [[doku>plugins|Installing plugins]]
-  * [[doku>development|Development Resources]]
-
-**DokuWiki Feedback and Community**
-
-  * [[doku>newsletter|Subscribe to the newsletter]] :!:
-  * [[doku>mailinglist|Join the mailing list]]
-  * [[http://forum.dokuwiki.org|Check out the user forum]]
-  * [[doku>irc|Talk to other users in the IRC channel]]
-  * [[https://github.com/splitbrain/dokuwiki/issues|Submit bugs and feature wishes]]
-  * [[http://www.wikimatrix.org/forum/viewforum.php?id=10|Share your experiences in the WikiMatrix forum]]
-  * [[doku>thanks|Some humble thanks]]
-
-
-===== Copyright =====
-
-2004-2015 (c) Andreas Gohr <andi@splitbrain.org>((Please do not contact me for help and support -- use the [[doku>mailinglist]] or [[http://forum.dokuwiki.org|forum]] instead)) and the DokuWiki Community
-
-The DokuWiki engine is licensed under [[http://www.gnu.org/licenses/gpl.html|GNU General Public License]] Version 2. If you use DokuWiki in your company, consider [[doku>donate|donating]] a few bucks ;-).
-
-Not sure what this means? See the [[doku>faq:license|FAQ on the Licenses]].
diff --git a/wiki/data/pages/wiki/syntax.txt b/wiki/data/pages/wiki/syntax.txt
deleted file mode 100644
index 4eb960a..0000000
--- a/wiki/data/pages/wiki/syntax.txt
+++ /dev/null
@@ -1,525 +0,0 @@
-====== Formatting Syntax ======
-
-[[doku>DokuWiki]] supports some simple markup language, which tries to make the datafiles to be as readable as possible. This page contains all possible syntax you may use when editing the pages. Simply have a look at the source of this page by pressing "Edit this page". If you want to try something, just use the [[playground:playground|playground]] page. The simpler markup is easily accessible via [[doku>toolbar|quickbuttons]], too.
-
-===== Basic Text Formatting =====
-
-DokuWiki supports **bold**, //italic//, __underlined__ and ''monospaced'' texts. Of course you can **__//''combine''//__** all these.
-
-  DokuWiki supports **bold**, //italic//, __underlined__ and ''monospaced'' texts.
-  Of course you can **__//''combine''//__** all these.
-
-You can use <sub>subscript</sub> and <sup>superscript</sup>, too.
-
-  You can use <sub>subscript</sub> and <sup>superscript</sup>, too.
-
-You can mark something as <del>deleted</del> as well.
-
-  You can mark something as <del>deleted</del> as well.
-
-**Paragraphs** are created from blank lines. If you want to **force a newline** without a paragraph, you can use two backslashes followed by a whitespace or the end of line.
-
-This is some text with some linebreaks\\ Note that the
-two backslashes are only recognized at the end of a line\\
-or followed by\\ a whitespace \\this happens without it.
-
-  This is some text with some linebreaks\\ Note that the
-  two backslashes are only recognized at the end of a line\\
-  or followed by\\ a whitespace \\this happens without it.
-
-You should use forced newlines only if really needed.
-
-===== Links =====
-
-DokuWiki supports multiple ways of creating links.
-
-==== External ====
-
-External links are recognized automagically: http://www.google.com or simply www.google.com - You can set the link text as well: [[http://www.google.com|This Link points to google]]. Email addresses like this one: <andi@splitbrain.org> are recognized, too.
-
-  DokuWiki supports multiple ways of creating links. External links are recognized
-  automagically: http://www.google.com or simply www.google.com - You can set
-  link text as well: [[http://www.google.com|This Link points to google]]. Email
-  addresses like this one: <andi@splitbrain.org> are recognized, too.
-
-==== Internal ====
-
-Internal links are created by using square brackets. You can either just give a [[pagename]] or use an additional [[pagename|link text]].
-
-  Internal links are created by using square brackets. You can either just give
-  a [[pagename]] or use an additional [[pagename|link text]].
-
-[[doku>pagename|Wiki pagenames]] are converted to lowercase automatically, special characters are not allowed.
-
-You can use [[some:namespaces]] by using a colon in the pagename.
-
-  You can use [[some:namespaces]] by using a colon in the pagename.
-
-For details about namespaces see [[doku>namespaces]].
-
-Linking to a specific section is possible, too. Just add the section name behind a hash character as known from HTML. This links to [[syntax#internal|this Section]].
-
-  This links to [[syntax#internal|this Section]].
-
-Notes:
-
-  * Links to [[syntax|existing pages]] are shown in a different style from [[nonexisting]] ones.
-  * DokuWiki does not use [[wp>CamelCase]] to automatically create links by default, but this behavior can be enabled in the [[doku>config]] file. Hint: If DokuWiki is a link, then it's enabled.
-  * When a section's heading is changed, its bookmark changes, too. So don't rely on section linking too much.
-
-==== Interwiki ====
-
-DokuWiki supports [[doku>Interwiki]] links. These are quick links to other Wikis. For example this is a link to Wikipedia's page about Wikis: [[wp>Wiki]].
-
-  DokuWiki supports [[doku>Interwiki]] links. These are quick links to other Wikis.
-  For example this is a link to Wikipedia's page about Wikis: [[wp>Wiki]].
-
-==== Windows Shares ====
-
-Windows shares like [[\\server\share|this]] are recognized, too. Please note that these only make sense in a homogeneous user group like a corporate [[wp>Intranet]].
-
-  Windows Shares like [[\\server\share|this]] are recognized, too.
-
-Notes:
-
-  * For security reasons direct browsing of windows shares only works in Microsoft Internet Explorer per default (and only in the "local zone").
-  * For Mozilla and Firefox it can be enabled through different workaround mentioned in the [[http://kb.mozillazine.org/Links_to_local_pages_do_not_work|Mozilla Knowledge Base]]. However, there will still be a JavaScript warning about trying to open a Windows Share. To remove this warning (for all users), put the following line in ''conf/lang/en/lang.php'' (more details at [[doku>localization#changing_some_localized_texts_and_strings_in_your_installation|localization]]): <code - conf/lang/en/lang.php>
-<?php
-/**
- * Customization of the english language file
- * Copy only the strings that needs to be modified
- */
-$lang['js']['nosmblinks'] = '';
-</code>
-
-==== Image Links ====
-
-You can also use an image to link to another internal or external page by combining the syntax for links and [[#images_and_other_files|images]] (see below) like this:
-
-  [[http://php.net|{{wiki:dokuwiki-128.png}}]]
-
-[[http://php.net|{{wiki:dokuwiki-128.png}}]]
-
-Please note: The image formatting is the only formatting syntax accepted in link names.
-
-The whole [[#images_and_other_files|image]] and [[#links|link]] syntax is supported (including image resizing, internal and external images and URLs and interwiki links).
-
-===== Footnotes =====
-
-You can add footnotes ((This is a footnote)) by using double parentheses.
-
-  You can add footnotes ((This is a footnote)) by using double parentheses.
-
-===== Sectioning =====
-
-You can use up to five different levels of headlines to structure your content. If you have more than three headlines, a table of contents is generated automatically -- this can be disabled by including the string ''<nowiki>~~NOTOC~~</nowiki>'' in the document.
-
-==== Headline Level 3 ====
-=== Headline Level 4 ===
-== Headline Level 5 ==
-
-  ==== Headline Level 3 ====
-  === Headline Level 4 ===
-  == Headline Level 5 ==
-
-By using four or more dashes, you can make a horizontal line:
-
-----
-
-===== Media Files =====
-
-You can include external and internal [[doku>images|images, videos and audio files]] with curly brackets. Optionally you can specify the size of them.
-
-Real size:                        {{wiki:dokuwiki-128.png}}
-
-Resize to given width:            {{wiki:dokuwiki-128.png?50}}
-
-Resize to given width and height((when the aspect ratio of the given width and height doesn't match that of the image, it will be cropped to the new ratio before resizing)): {{wiki:dokuwiki-128.png?200x50}}
-
-Resized external image:           {{http://php.net/images/php.gif?200x50}}
-
-  Real size:                        {{wiki:dokuwiki-128.png}}
-  Resize to given width:            {{wiki:dokuwiki-128.png?50}}
-  Resize to given width and height: {{wiki:dokuwiki-128.png?200x50}}
-  Resized external image:           {{http://php.net/images/php.gif?200x50}}
-
-
-By using left or right whitespaces you can choose the alignment.
-
-{{ wiki:dokuwiki-128.png}}
-
-{{wiki:dokuwiki-128.png }}
-
-{{ wiki:dokuwiki-128.png }}
-
-  {{ wiki:dokuwiki-128.png}}
-  {{wiki:dokuwiki-128.png }}
-  {{ wiki:dokuwiki-128.png }}
-
-Of course, you can add a title (displayed as a tooltip by most browsers), too.
-
-{{ wiki:dokuwiki-128.png |This is the caption}}
-
-  {{ wiki:dokuwiki-128.png |This is the caption}}
-
-For linking an image to another page see [[#Image Links]] above.
-
-==== Supported Media Formats ====
-
-DokuWiki can embed the following media formats directly.
-
-| Image | ''gif'', ''jpg'', ''png''  |
-| Video | ''webm'', ''ogv'', ''mp4'' |
-| Audio | ''ogg'', ''mp3'', ''wav''  |
-| Flash | ''swf''                    |
-
-If you specify a filename that is not a supported media format, then it will be displayed as a link instead.
-
-By adding ''?linkonly'' you provide a link to the media without displaying it inline
-
-  {{wiki:dokuwiki-128.png?linkonly}}
-
-{{wiki:dokuwiki-128.png?linkonly}} This is just a link to the image.
-
-==== Fallback Formats ====
-
-Unfortunately not all browsers understand all video and audio formats. To mitigate the problem, you can upload your file in different formats for maximum browser compatibility.
-
-For example consider this embedded mp4 video:
-
-  {{video.mp4|A funny video}}
-
-When you upload a ''video.webm'' and ''video.ogv'' next to the referenced ''video.mp4'', DokuWiki will automatically add them as alternatives so that one of the three files is understood by your browser.
-
-Additionally DokuWiki supports a "poster" image which will be shown before the video has started. That image needs to have the same filename as the video and be either a jpg or png file. In the example above a ''video.jpg'' file would work.
-
-===== Lists =====
-
-Dokuwiki supports ordered and unordered lists. To create a list item, indent your text by two spaces and use a ''*'' for unordered lists or a ''-'' for ordered ones.
-
-  * This is a list
-  * The second item
-    * You may have different levels
-  * Another item
-
-  - The same list but ordered
-  - Another item
-    - Just use indention for deeper levels
-  - That's it
-
-<code>
-  * This is a list
-  * The second item
-    * You may have different levels
-  * Another item
-
-  - The same list but ordered
-  - Another item
-    - Just use indention for deeper levels
-  - That's it
-</code>
-
-Also take a look at the [[doku>faq:lists|FAQ on list items]].
-
-===== Text Conversions =====
-
-DokuWiki can convert certain pre-defined characters or strings into images or other text or HTML.
-
-The text to image conversion is mainly done for smileys. And the text to HTML conversion is used for typography replacements, but can be configured to use other HTML as well.
-
-==== Text to Image Conversions ====
-
-DokuWiki converts commonly used [[wp>emoticon]]s to their graphical equivalents. Those [[doku>Smileys]] and other images can be configured and extended. Here is an overview of Smileys included in DokuWiki:
-
-  * 8-) %%  8-)  %%
-  * 8-O %%  8-O  %%
-  * :-( %%  :-(  %%
-  * :-) %%  :-)  %%
-  * =)  %%  =)   %%
-  * :-/ %%  :-/  %%
-  * :-\ %%  :-\  %%
-  * :-? %%  :-?  %%
-  * :-D %%  :-D  %%
-  * :-P %%  :-P  %%
-  * :-O %%  :-O  %%
-  * :-X %%  :-X  %%
-  * :-| %%  :-|  %%
-  * ;-) %%  ;-)  %%
-  * ^_^ %%  ^_^  %%
-  * :?: %%  :?:  %%
-  * :!: %%  :!:  %%
-  * LOL %%  LOL  %%
-  * FIXME %%  FIXME %%
-  * DELETEME %% DELETEME %%
-
-==== Text to HTML Conversions ====
-
-Typography: [[DokuWiki]] can convert simple text characters to their typographically correct entities. Here is an example of recognized characters.
-
--> <- <-> => <= <=> >> << -- --- 640x480 (c) (tm) (r)
-"He thought 'It's a man's world'..."
-
-<code>
--> <- <-> => <= <=> >> << -- --- 640x480 (c) (tm) (r)
-"He thought 'It's a man's world'..."
-</code>
-
-The same can be done to produce any kind of HTML, it just needs to be added to the [[doku>entities|pattern file]].
-
-There are three exceptions which do not come from that pattern file: multiplication entity (640x480), 'single' and "double quotes". They can be turned off through a [[doku>config:typography|config option]].
-
-===== Quoting =====
-
-Some times you want to mark some text to show it's a reply or comment. You can use the following syntax:
-
-<code>
-I think we should do it
-
-> No we shouldn't
-
->> Well, I say we should
-
-> Really?
-
->> Yes!
-
->>> Then lets do it!
-</code>
-
-I think we should do it
-
-> No we shouldn't
-
->> Well, I say we should
-
-> Really?
-
->> Yes!
-
->>> Then lets do it!
-
-===== Tables =====
-
-DokuWiki supports a simple syntax to create tables.
-
-^ Heading 1      ^ Heading 2       ^ Heading 3          ^
-| Row 1 Col 1    | Row 1 Col 2     | Row 1 Col 3        |
-| Row 2 Col 1    | some colspan (note the double pipe) ||
-| Row 3 Col 1    | Row 3 Col 2     | Row 3 Col 3        |
-
-Table rows have to start and end with a ''|'' for normal rows or a ''^'' for headers.
-
-  ^ Heading 1      ^ Heading 2       ^ Heading 3          ^
-  | Row 1 Col 1    | Row 1 Col 2     | Row 1 Col 3        |
-  | Row 2 Col 1    | some colspan (note the double pipe) ||
-  | Row 3 Col 1    | Row 3 Col 2     | Row 3 Col 3        |
-
-To connect cells horizontally, just make the next cell completely empty as shown above. Be sure to have always the same amount of cell separators!
-
-Vertical tableheaders are possible, too.
-
-|              ^ Heading 1            ^ Heading 2          ^
-^ Heading 3    | Row 1 Col 2          | Row 1 Col 3        |
-^ Heading 4    | no colspan this time |                    |
-^ Heading 5    | Row 2 Col 2          | Row 2 Col 3        |
-
-As you can see, it's the cell separator before a cell which decides about the formatting:
-
-  |              ^ Heading 1            ^ Heading 2          ^
-  ^ Heading 3    | Row 1 Col 2          | Row 1 Col 3        |
-  ^ Heading 4    | no colspan this time |                    |
-  ^ Heading 5    | Row 2 Col 2          | Row 2 Col 3        |
-
-You can have rowspans (vertically connected cells) by adding ''%%:::%%'' into the cells below the one to which they should connect.
-
-^ Heading 1      ^ Heading 2                  ^ Heading 3          ^
-| Row 1 Col 1    | this cell spans vertically | Row 1 Col 3        |
-| Row 2 Col 1    | :::                        | Row 2 Col 3        |
-| Row 3 Col 1    | :::                        | Row 2 Col 3        |
-
-Apart from the rowspan syntax those cells should not contain anything else.
-
-  ^ Heading 1      ^ Heading 2                  ^ Heading 3          ^
-  | Row 1 Col 1    | this cell spans vertically | Row 1 Col 3        |
-  | Row 2 Col 1    | :::                        | Row 2 Col 3        |
-  | Row 3 Col 1    | :::                        | Row 2 Col 3        |
-
-You can align the table contents, too. Just add at least two whitespaces at the opposite end of your text: Add two spaces on the left to align right, two spaces on the right to align left and two spaces at least at both ends for centered text.
-
-^           Table with alignment           ^^^
-|         right|    center    |left          |
-|left          |         right|    center    |
-| xxxxxxxxxxxx | xxxxxxxxxxxx | xxxxxxxxxxxx |
-
-This is how it looks in the source:
-
-  ^           Table with alignment           ^^^
-  |         right|    center    |left          |
-  |left          |         right|    center    |
-  | xxxxxxxxxxxx | xxxxxxxxxxxx | xxxxxxxxxxxx |
-
-Note: Vertical alignment is not supported.
-
-===== No Formatting =====
-
-If you need to display text exactly like it is typed (without any formatting), enclose the area either with ''%%<nowiki>%%'' tags or even simpler, with double percent signs ''<nowiki>%%</nowiki>''.
-
-<nowiki>
-This is some text which contains addresses like this: http://www.splitbrain.org and **formatting**, but nothing is done with it.
-</nowiki>
-The same is true for %%//__this__ text// with a smiley ;-)%%.
-
-  <nowiki>
-  This is some text which contains addresses like this: http://www.splitbrain.org and **formatting**, but nothing is done with it.
-  </nowiki>
-  The same is true for %%//__this__ text// with a smiley ;-)%%.
-
-===== Code Blocks =====
-
-You can include code blocks into your documents by either indenting them by at least two spaces (like used for the previous examples) or by using the tags ''%%<code>%%'' or ''%%<file>%%''.
-
-  This is text is indented by two spaces.
-
-<code>
-This is preformatted code all spaces are preserved: like              <-this
-</code>
-
-<file>
-This is pretty much the same, but you could use it to show that you quoted a file.
-</file>
-
-Those blocks were created by this source:
-
-    This is text is indented by two spaces.
-
-  <code>
-  This is preformatted code all spaces are preserved: like              <-this
-  </code>
-
-  <file>
-  This is pretty much the same, but you could use it to show that you quoted a file.
-  </file>
-
-==== Syntax Highlighting ====
-
-[[wiki:DokuWiki]] can highlight sourcecode, which makes it easier to read. It uses the [[http://qbnz.com/highlighter/|GeSHi]] Generic Syntax Highlighter -- so any language supported by GeSHi is supported. The syntax uses the same code and file blocks described in the previous section, but this time the name of the language syntax to be highlighted is included inside the tag, e.g. ''<nowiki><code java></nowiki>'' or ''<nowiki><file java></nowiki>''.
-
-<code java>
-/**
- * The HelloWorldApp class implements an application that
- * simply displays "Hello World!" to the standard output.
- */
-class HelloWorldApp {
-    public static void main(String[] args) {
-        System.out.println("Hello World!"); //Display the string.
-    }
-}
-</code>
-
-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//
-
-There are additional [[doku>syntax_highlighting|advanced options]] available for syntax highlighting, such as highlighting lines or adding line numbers.
-
-==== Downloadable Code Blocks ====
-
-When you use the ''%%<code>%%'' or ''%%<file>%%'' syntax as above, you might want to make the shown code available for download as well. You can do this by specifying a file name after language code like this:
-
-<code>
-<file php myexample.php>
-<?php echo "hello world!"; ?>
-</file>
-</code>
-
-<file php myexample.php>
-<?php echo "hello world!"; ?>
-</file>
-
-If you don't want any highlighting but want a downloadable file, specify a dash (''-'') as the language code: ''%%<code - myfile.foo>%%''.
-
-
-===== Embedding HTML and PHP =====
-
-You can embed raw HTML or PHP code into your documents by using the ''%%<html>%%'' or ''%%<php>%%'' tags. (Use uppercase tags if you need to enclose block level elements.)
-
-HTML example:
-
-<code>
-<html>
-This is some <span style="color:red;font-size:150%;">inline HTML</span>
-</html>
-<HTML>
-<p style="border:2px dashed red;">And this is some block HTML</p>
-</HTML>
-</code>
-
-<html>
-This is some <span style="color:red;font-size:150%;">inline HTML</span>
-</html>
-<HTML>
-<p style="border:2px dashed red;">And this is some block HTML</p>
-</HTML>
-
-PHP example:
-
-<code>
-<php>
-echo 'The PHP version: ';
-echo phpversion();
-echo ' (generated inline HTML)';
-</php>
-<PHP>
-echo '<table class="inline"><tr><td>The same, but inside a block level element:</td>';
-echo '<td>'.phpversion().'</td>';
-echo '</tr></table>';
-</PHP>
-</code>
-
-<php>
-echo 'The PHP version: ';
-echo phpversion();
-echo ' (inline HTML)';
-</php>
-<PHP>
-echo '<table class="inline"><tr><td>The same, but inside a block level element:</td>';
-echo '<td>'.phpversion().'</td>';
-echo '</tr></table>';
-</PHP>
-
-**Please Note**: HTML and PHP embedding is disabled by default in the configuration. If disabled, the code is displayed instead of executed.
-
-===== RSS/ATOM Feed Aggregation =====
-[[DokuWiki]] can integrate data from external XML feeds. For parsing the XML feeds, [[http://simplepie.org/|SimplePie]] is used. All formats understood by SimplePie can be used in DokuWiki as well. You can influence the rendering by multiple additional space separated parameters:
-
-^ Parameter  ^ Description ^
-| any number | will be used as maximum number items to show, defaults to 8 |
-| reverse    | display the last items in the feed first |
-| author     | show item authors names |
-| date       | show item dates |
-| description| show the item description. If [[doku>config:htmlok|HTML]] is disabled all tags will be stripped |
-| nosort     | do not sort the items in the feed |
-| //n//[dhm] | refresh period, where d=days, h=hours, m=minutes. (e.g. 12h = 12 hours). |
-
-The refresh period defaults to 4 hours. Any value below 10 minutes will be treated as 10 minutes. [[wiki:DokuWiki]] will generally try to supply a cached version of a page, obviously this is inappropriate when the page contains dynamic external content. The parameter tells [[wiki:DokuWiki]] to re-render the page if it is more than //refresh period// since the page was last rendered.
-
-By default the feed will be sorted by date, newest items first. You can sort it by oldest first using the ''reverse'' parameter, or display the feed as is with ''nosort''.
-
-**Example:**
-
-  {{rss>http://slashdot.org/index.rss 5 author date 1h }}
-
-{{rss>http://slashdot.org/index.rss 5 author date 1h }}
-
-
-===== Control Macros =====
-
-Some syntax influences how DokuWiki renders a page without creating any output it self. The following control macros are availble:
-
-^ Macro           ^ Description |
-| %%~~NOTOC~~%%   | If this macro is found on the page, no table of contents will be created |
-| %%~~NOCACHE~~%% | DokuWiki caches all output by default. Sometimes this might not be wanted (eg. when the %%<php>%% syntax above is used), adding this macro will force DokuWiki to rerender a page on every call |
-
-===== Syntax Plugins =====
-
-DokuWiki's syntax can be extended by [[doku>plugins|Plugins]]. How the installed plugins are used is described on their appropriate description pages. The following syntax plugins are available in this particular DokuWiki installation:
-
-~~INFO:syntaxplugins~~
diff --git a/wiki/data/pages/wiki/welcome.txt b/wiki/data/pages/wiki/welcome.txt
deleted file mode 100644
index 6978f1b..0000000
--- a/wiki/data/pages/wiki/welcome.txt
+++ /dev/null
@@ -1,30 +0,0 @@
-====== Welcome to your new DokuWiki ======
-
-Congratulations, your wiki is now up and running. Here are a few more tips to get you started.
-
-Enjoy your work with DokuWiki,\\
--- the developers
-
-===== Create your first pages =====
-
-Your wiki needs to have a start page. As long as it doesn't exist, this link will be red: [[:start]].
-
-Go on, follow that link and create the page. If you need help with using the syntax you can always refer to the [[wiki:syntax|syntax page]].
-
-You might also want to use a sidebar. To create it, just edit the [[:sidebar]] page. Everything in that page will be shown in a margin column on the side. Read our [[doku>faq:sidebar|FAQ on sidebars]] to learn more.
-
-Please be aware that not all templates support sidebars.
-
-===== Customize your Wiki =====
-
-Once you're comfortable with creating and editing pages you might want to have a look at the [[this>doku.php?do=admin&page=config|configuration settings]] (be sure to login as superuser first).
-
-You may also want to see what [[doku>plugins|plugins]] and [[doku>templates|templates]] are available at DokuWiki.org to extend the functionality and looks of your DokuWiki installation.
-
-===== Join the Community =====
-
-DokuWiki is an Open Source project that thrives through user contributions. A good way to stay informed on what's going on and to get useful tips in using DokuWiki is subscribing to the [[doku>newsletter]].
-
-The [[http://forum.dokuwiki.org|DokuWiki User Forum]] is an excellent way to get in contact with other DokuWiki users and is just one of the many ways to get [[doku>faq:support|support]].
-
-Of course we'd be more than happy to have you [[doku>teams:getting_involved|getting involved]] with DokuWiki.
diff --git a/wiki/data/tmp/_dummy b/wiki/data/tmp/_dummy
deleted file mode 100644
index e492265..0000000
--- a/wiki/data/tmp/_dummy
+++ /dev/null
@@ -1 +0,0 @@
-You can safely delete this file.
\ No newline at end of file
diff --git a/wiki/doku.php b/wiki/doku.php
deleted file mode 100644
index ff535b5..0000000
--- a/wiki/doku.php
+++ /dev/null
@@ -1,125 +0,0 @@
-<?php
-/**
- * DokuWiki mainscript
- *
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * @author     Andreas Gohr <andi@splitbrain.org>
- *
- * @global Input $INPUT
- */
-
-// update message version - always use a string to avoid localized floats!
-$updateVersion = "50.1";
-
-//  xdebug_start_profiling();
-
-if(!defined('DOKU_INC')) define('DOKU_INC', dirname(__FILE__).'/');
-
-// define all DokuWiki globals here (needed within test requests but also helps to keep track)
-global  $ACT,  $INPUT, $QUERY, $ID, $REV, $DATE_AT, $IDX,
-        $DATE, $RANGE, $HIGH, $TEXT, $PRE, $SUF, $SUM, $INFO, $JSINFO;
-
-
-if(isset($_SERVER['HTTP_X_DOKUWIKI_DO'])) {
-    $ACT = trim(strtolower($_SERVER['HTTP_X_DOKUWIKI_DO']));
-} elseif(!empty($_REQUEST['idx'])) {
-    $ACT = 'index';
-} elseif(isset($_REQUEST['do'])) {
-    $ACT = $_REQUEST['do'];
-} else {
-    $ACT = 'show';
-}
-
-// load and initialize the core system
-require_once(DOKU_INC.'inc/init.php');
-
-//import variables
-$INPUT->set('id', str_replace("\xC2\xAD", '', $INPUT->str('id'))); //soft-hyphen
-$QUERY          = trim($INPUT->str('q'));
-$ID             = getID();
-
-$REV   = $INPUT->int('rev');
-$DATE_AT = $INPUT->str('at');
-$IDX   = $INPUT->str('idx');
-$DATE  = $INPUT->int('date');
-$RANGE = $INPUT->str('range');
-$HIGH  = $INPUT->param('s');
-if(empty($HIGH)) $HIGH = getGoogleQuery();
-
-if($INPUT->post->has('wikitext')) {
-    $TEXT = cleanText($INPUT->post->str('wikitext'));
-}
-$PRE = cleanText(substr($INPUT->post->str('prefix'), 0, -1));
-$SUF = cleanText($INPUT->post->str('suffix'));
-$SUM = $INPUT->post->str('summary');
-
-
-//parse DATE_AT
-if($DATE_AT) {
-    $date_parse = strtotime($DATE_AT);
-    if($date_parse) {
-        $DATE_AT = $date_parse;
-    } else { // check for UNIX Timestamp
-        $date_parse = @date('Ymd',$DATE_AT);
-        if(!$date_parse || $date_parse === '19700101') {
-            msg(sprintf($lang['unable_to_parse_date'], hsc($DATE_AT)));
-            $DATE_AT = null;
-        }
-    }
-}
-
-//check for existing $REV related to $DATE_AT
-if($DATE_AT) {
-    $pagelog = new PageChangeLog($ID);
-    $rev_t = $pagelog->getLastRevisionAt($DATE_AT);
-    if($rev_t === '') { //current revision
-        $REV = null;
-        $DATE_AT = null;
-    } else if ($rev_t === false) { //page did not exist
-        $rev_n = $pagelog->getRelativeRevision($DATE_AT,+1);
-        msg(sprintf($lang['page_nonexist_rev'],
-            strftime($conf['dformat'],$DATE_AT),
-            wl($ID, array('rev' => $rev_n)),
-            strftime($conf['dformat'],$rev_n)));
-        $REV = $DATE_AT; //will result in a page not exists message
-    } else {
-        $REV = $rev_t;
-    }
-}
-
-//make infos about the selected page available
-$INFO = pageinfo();
-
-// handle debugging
-if($conf['allowdebug'] && $ACT == 'debug') {
-    html_debug();
-    exit;
-}
-
-//send 404 for missing pages if configured or ID has special meaning to bots
-if(!$INFO['exists'] &&
-    ($conf['send404'] || preg_match('/^(robots\.txt|sitemap\.xml(\.gz)?|favicon\.ico|crossdomain\.xml)$/', $ID)) &&
-    ($ACT == 'show' || (!is_array($ACT) && substr($ACT, 0, 7) == 'export_'))
-) {
-    header('HTTP/1.0 404 Not Found');
-}
-
-//prepare breadcrumbs (initialize a static var)
-if($conf['breadcrumbs']) breadcrumbs();
-
-// check upstream
-checkUpdateMessages();
-
-$tmp = array(); // No event data
-trigger_event('DOKUWIKI_STARTED', $tmp);
-
-//close session
-session_write_close();
-
-//do the work (picks up what to do from global env)
-act_dispatch();
-
-$tmp = array(); // No event data
-trigger_event('DOKUWIKI_DONE', $tmp);
-
-//  xdebug_dump_function_profile(1);
diff --git a/wiki/feed.php b/wiki/feed.php
deleted file mode 100644
index 65d751b..0000000
--- a/wiki/feed.php
+++ /dev/null
@@ -1,510 +0,0 @@
-<?php
-/**
- * XML feed export
- *
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * @author     Andreas Gohr <andi@splitbrain.org>
- *
- * @global array $conf
- * @global Input $INPUT
- */
-
-if(!defined('DOKU_INC')) define('DOKU_INC', dirname(__FILE__).'/');
-require_once(DOKU_INC.'inc/init.php');
-
-//close session
-session_write_close();
-
-//feed disabled?
-if(!actionOK('rss')) {
-    http_status(404);
-    echo '<error>RSS feed is disabled.</error>';
-    exit;
-}
-
-// get params
-$opt = rss_parseOptions();
-
-// the feed is dynamic - we need a cache for each combo
-// (but most people just use the default feed so it's still effective)
-$key   = join('', array_values($opt)).'$'.$_SERVER['REMOTE_USER'].'$'.$_SERVER['HTTP_HOST'].$_SERVER['SERVER_PORT'];
-$cache = new cache($key, '.feed');
-
-// prepare cache depends
-$depends['files'] = getConfigFiles('main');
-$depends['age']   = $conf['rss_update'];
-$depends['purge'] = $INPUT->bool('purge');
-
-// check cacheage and deliver if nothing has changed since last
-// time or the update interval has not passed, also handles conditional requests
-header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
-header('Pragma: public');
-header('Content-Type: application/xml; charset=utf-8');
-header('X-Robots-Tag: noindex');
-if($cache->useCache($depends)) {
-    http_conditionalRequest($cache->_time);
-    if($conf['allowdebug']) header("X-CacheUsed: $cache->cache");
-    print $cache->retrieveCache();
-    exit;
-} else {
-    http_conditionalRequest(time());
-}
-
-// create new feed
-$rss                 = new UniversalFeedCreator();
-$rss->title          = $conf['title'].(($opt['namespace']) ? ' '.$opt['namespace'] : '');
-$rss->link           = DOKU_URL;
-$rss->syndicationURL = DOKU_URL.'feed.php';
-$rss->cssStyleSheet  = DOKU_URL.'lib/exe/css.php?s=feed';
-
-$image        = new FeedImage();
-$image->title = $conf['title'];
-$image->url   = tpl_getMediaFile(array(':wiki:favicon.ico', ':favicon.ico', 'images/favicon.ico'), true);
-$image->link  = DOKU_URL;
-$rss->image   = $image;
-
-$data  = null;
-$modes = array(
-    'list'   => 'rssListNamespace',
-    'search' => 'rssSearch',
-    'recent' => 'rssRecentChanges'
-);
-if(isset($modes[$opt['feed_mode']])) {
-    $data = $modes[$opt['feed_mode']]($opt);
-} else {
-    $eventData = array(
-        'opt'  => &$opt,
-        'data' => &$data,
-    );
-    $event     = new Doku_Event('FEED_MODE_UNKNOWN', $eventData);
-    if($event->advise_before(true)) {
-        echo sprintf('<error>Unknown feed mode %s</error>', hsc($opt['feed_mode']));
-        exit;
-    }
-    $event->advise_after();
-}
-
-rss_buildItems($rss, $data, $opt);
-$feed = $rss->createFeed($opt['feed_type']);
-
-// save cachefile
-$cache->storeCache($feed);
-
-// finally deliver
-print $feed;
-
-// ---------------------------------------------------------------- //
-
-/**
- * Get URL parameters and config options and return an initialized option array
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- */
-function rss_parseOptions() {
-    global $conf;
-    global $INPUT;
-
-    $opt = array();
-
-    foreach(array(
-                // Basic feed properties
-                // Plugins may probably want to add new values to these
-                // properties for implementing own feeds
-
-                // One of: list, search, recent
-                'feed_mode'    => array('str', 'mode', 'recent'),
-                // One of: diff, page, rev, current
-                'link_to'      => array('str', 'linkto', $conf['rss_linkto']),
-                // One of: abstract, diff, htmldiff, html
-                'item_content' => array('str', 'content', $conf['rss_content']),
-
-                // Special feed properties
-                // These are only used by certain feed_modes
-
-                // String, used for feed title, in list and rc mode
-                'namespace'    => array('str', 'ns', null),
-                // Positive integer, only used in rc mode
-                'items'        => array('int', 'num', $conf['recent']),
-                // Boolean, only used in rc mode
-                'show_minor'   => array('bool', 'minor', false),
-                // String, only used in list mode
-                'sort'         => array('str', 'sort', 'natural'),
-                // String, only used in search mode
-                'search_query' => array('str', 'q', null),
-                // One of: pages, media, both
-                'content_type' => array('str', 'view', $conf['rss_media'])
-
-            ) as $name => $val) {
-        $opt[$name] = $INPUT->{$val[0]}($val[1], $val[2], true);
-    }
-
-    $opt['items']      = max(0, (int) $opt['items']);
-    $opt['show_minor'] = (bool) $opt['show_minor'];
-    $opt['sort'] = valid_input_set('sort', array('default' => 'natural', 'date'), $opt);
-
-    $opt['guardmail'] = ($conf['mailguard'] != '' && $conf['mailguard'] != 'none');
-
-    $type = $INPUT->valid(
-        'type',
-        array( 'rss', 'rss2', 'atom', 'atom1', 'rss1'),
-        $conf['rss_type']
-    );
-    switch($type) {
-        case 'rss':
-            $opt['feed_type'] = 'RSS0.91';
-            $opt['mime_type'] = 'text/xml';
-            break;
-        case 'rss2':
-            $opt['feed_type'] = 'RSS2.0';
-            $opt['mime_type'] = 'text/xml';
-            break;
-        case 'atom':
-            $opt['feed_type'] = 'ATOM0.3';
-            $opt['mime_type'] = 'application/xml';
-            break;
-        case 'atom1':
-            $opt['feed_type'] = 'ATOM1.0';
-            $opt['mime_type'] = 'application/atom+xml';
-            break;
-        default:
-            $opt['feed_type'] = 'RSS1.0';
-            $opt['mime_type'] = 'application/xml';
-    }
-
-    $eventData = array(
-        'opt' => &$opt,
-    );
-    trigger_event('FEED_OPTS_POSTPROCESS', $eventData);
-    return $opt;
-}
-
-/**
- * Add recent changed pages to a feed object
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- * @param  FeedCreator $rss the FeedCreator Object
- * @param  array       $data the items to add
- * @param  array       $opt  the feed options
- */
-function rss_buildItems(&$rss, &$data, $opt) {
-    global $conf;
-    global $lang;
-    /* @var DokuWiki_Auth_Plugin $auth */
-    global $auth;
-
-    $eventData = array(
-        'rss'  => &$rss,
-        'data' => &$data,
-        'opt'  => &$opt,
-    );
-    $event     = new Doku_Event('FEED_DATA_PROCESS', $eventData);
-    if($event->advise_before(false)) {
-        foreach($data as $ditem) {
-            if(!is_array($ditem)) {
-                // not an array? then only a list of IDs was given
-                $ditem = array('id' => $ditem);
-            }
-
-            $item = new FeedItem();
-            $id   = $ditem['id'];
-            if(!$ditem['media']) {
-                $meta = p_get_metadata($id);
-            } else {
-                $meta = array();
-            }
-
-            // add date
-            if($ditem['date']) {
-                $date = $ditem['date'];
-            } elseif ($ditem['media']) {
-                $date = @filemtime(mediaFN($id));
-            } elseif (file_exists(wikiFN($id))) {
-                $date = @filemtime(wikiFN($id));
-            } elseif($meta['date']['modified']) {
-                $date = $meta['date']['modified'];
-            } else {
-                $date = 0;
-            }
-            if($date) $item->date = date('r', $date);
-
-            // add title
-            if($conf['useheading'] && $meta['title']) {
-                $item->title = $meta['title'];
-            } else {
-                $item->title = $ditem['id'];
-            }
-            if($conf['rss_show_summary'] && !empty($ditem['sum'])) {
-                $item->title .= ' - '.strip_tags($ditem['sum']);
-            }
-
-            // add item link
-            switch($opt['link_to']) {
-                case 'page':
-                    if($ditem['media']) {
-                        $item->link = media_managerURL(
-                            array(
-                                 'image' => $id,
-                                 'ns'    => getNS($id),
-                                 'rev'   => $date
-                            ), '&', true
-                        );
-                    } else {
-                        $item->link = wl($id, 'rev='.$date, true, '&');
-                    }
-                    break;
-                case 'rev':
-                    if($ditem['media']) {
-                        $item->link = media_managerURL(
-                            array(
-                                 'image'       => $id,
-                                 'ns'          => getNS($id),
-                                 'rev'         => $date,
-                                 'tab_details' => 'history'
-                            ), '&', true
-                        );
-                    } else {
-                        $item->link = wl($id, 'do=revisions&rev='.$date, true, '&');
-                    }
-                    break;
-                case 'current':
-                    if($ditem['media']) {
-                        $item->link = media_managerURL(
-                            array(
-                                 'image' => $id,
-                                 'ns'    => getNS($id)
-                            ), '&', true
-                        );
-                    } else {
-                        $item->link = wl($id, '', true, '&');
-                    }
-                    break;
-                case 'diff':
-                default:
-                    if($ditem['media']) {
-                        $item->link = media_managerURL(
-                            array(
-                                 'image'       => $id,
-                                 'ns'          => getNS($id),
-                                 'rev'         => $date,
-                                 'tab_details' => 'history',
-                                 'mediado'     => 'diff'
-                            ), '&', true
-                        );
-                    } else {
-                        $item->link = wl($id, 'rev='.$date.'&do=diff', true, '&');
-                    }
-            }
-
-            // add item content
-            switch($opt['item_content']) {
-                case 'diff':
-                case 'htmldiff':
-                    if($ditem['media']) {
-                        $medialog = new MediaChangeLog($id);
-                        $revs  = $medialog->getRevisions(0, 1);
-                        $rev   = $revs[0];
-                        $src_r = '';
-                        $src_l = '';
-
-                        if($size = media_image_preview_size($id, '', new JpegMeta(mediaFN($id)), 300)) {
-                            $more  = 'w='.$size[0].'&h='.$size[1].'&t='.@filemtime(mediaFN($id));
-                            $src_r = ml($id, $more, true, '&amp;', true);
-                        }
-                        if($rev && $size = media_image_preview_size($id, $rev, new JpegMeta(mediaFN($id, $rev)), 300)) {
-                            $more  = 'rev='.$rev.'&w='.$size[0].'&h='.$size[1];
-                            $src_l = ml($id, $more, true, '&amp;', true);
-                        }
-                        $content = '';
-                        if($src_r) {
-                            $content = '<table>';
-                            $content .= '<tr><th width="50%">'.$rev.'</th>';
-                            $content .= '<th width="50%">'.$lang['current'].'</th></tr>';
-                            $content .= '<tr align="center"><td><img src="'.$src_l.'" alt="" /></td><td>';
-                            $content .= '<img src="'.$src_r.'" alt="'.$id.'" /></td></tr>';
-                            $content .= '</table>';
-                        }
-
-                    } else {
-                        require_once(DOKU_INC.'inc/DifferenceEngine.php');
-                        $pagelog = new PageChangeLog($id);
-                        $revs = $pagelog->getRevisions(0, 1);
-                        $rev  = $revs[0];
-
-                        if($rev) {
-                            $df = new Diff(explode("\n", rawWiki($id, $rev)),
-                                           explode("\n", rawWiki($id, '')));
-                        } else {
-                            $df = new Diff(array(''),
-                                           explode("\n", rawWiki($id, '')));
-                        }
-
-                        if($opt['item_content'] == 'htmldiff') {
-                            // note: no need to escape diff output, TableDiffFormatter provides 'safe' html
-                            $tdf     = new TableDiffFormatter();
-                            $content = '<table>';
-                            $content .= '<tr><th colspan="2" width="50%">'.$rev.'</th>';
-                            $content .= '<th colspan="2" width="50%">'.$lang['current'].'</th></tr>';
-                            $content .= $tdf->format($df);
-                            $content .= '</table>';
-                        } else {
-                            // note: diff output must be escaped, UnifiedDiffFormatter provides plain text
-                            $udf     = new UnifiedDiffFormatter();
-                            $content = "<pre>\n".hsc($udf->format($df))."\n</pre>";
-                        }
-                    }
-                    break;
-                case 'html':
-                    if($ditem['media']) {
-                        if($size = media_image_preview_size($id, '', new JpegMeta(mediaFN($id)))) {
-                            $more    = 'w='.$size[0].'&h='.$size[1].'&t='.@filemtime(mediaFN($id));
-                            $src     = ml($id, $more, true, '&amp;', true);
-                            $content = '<img src="'.$src.'" alt="'.$id.'" />';
-                        } else {
-                            $content = '';
-                        }
-                    } else {
-                        if (@filemtime(wikiFN($id)) === $date) {
-                            $content = p_wiki_xhtml($id, '', false);
-                        } else {
-                            $content = p_wiki_xhtml($id, $date, false);
-                        }
-                        // no TOC in feeds
-                        $content = preg_replace('/(<!-- TOC START -->).*(<!-- TOC END -->)/s', '', $content);
-
-                        // add alignment for images
-                        $content = preg_replace('/(<img .*?class="medialeft")/s', '\\1 align="left"', $content);
-                        $content = preg_replace('/(<img .*?class="mediaright")/s', '\\1 align="right"', $content);
-
-                        // make URLs work when canonical is not set, regexp instead of rerendering!
-                        if(!$conf['canonical']) {
-                            $base    = preg_quote(DOKU_REL, '/');
-                            $content = preg_replace('/(<a href|<img src)="('.$base.')/s', '$1="'.DOKU_URL, $content);
-                        }
-                    }
-
-                    break;
-                case 'abstract':
-                default:
-                    if($ditem['media']) {
-                        if($size = media_image_preview_size($id, '', new JpegMeta(mediaFN($id)))) {
-                            $more    = 'w='.$size[0].'&h='.$size[1].'&t='.@filemtime(mediaFN($id));
-                            $src     = ml($id, $more, true, '&amp;', true);
-                            $content = '<img src="'.$src.'" alt="'.$id.'" />';
-                        } else {
-                            $content = '';
-                        }
-                    } else {
-                        $content = $meta['description']['abstract'];
-                    }
-            }
-            $item->description = $content; //FIXME a plugin hook here could be senseful
-
-            // add user
-            # FIXME should the user be pulled from metadata as well?
-            $user         = @$ditem['user']; // the @ spares time repeating lookup
-            if(blank($user)) {
-                $item->author = 'Anonymous';
-                $item->authorEmail = 'anonymous@undisclosed.example.com';
-            } else {
-                $item->author = $user;
-                $item->authorEmail = $user . '@undisclosed.example.com';
-
-                // get real user name if configured
-                if($conf['useacl'] && $auth) {
-                    $userInfo = $auth->getUserData($user);
-                    if($userInfo) {
-                        switch($conf['showuseras']) {
-                            case 'username':
-                            case 'username_link':
-                                $item->author = $userInfo['name'];
-                                break;
-                            default:
-                                $item->author = $user;
-                                break;
-                        }
-                    } else {
-                        $item->author = $user;
-                    }
-                }
-            }
-
-            // add category
-            if(isset($meta['subject'])) {
-                $item->category = $meta['subject'];
-            } else {
-                $cat = getNS($id);
-                if($cat) $item->category = $cat;
-            }
-
-            // finally add the item to the feed object, after handing it to registered plugins
-            $evdata = array(
-                'item'  => &$item,
-                'opt'   => &$opt,
-                'ditem' => &$ditem,
-                'rss'   => &$rss
-            );
-            $evt    = new Doku_Event('FEED_ITEM_ADD', $evdata);
-            if($evt->advise_before()) {
-                $rss->addItem($item);
-            }
-            $evt->advise_after(); // for completeness
-        }
-    }
-    $event->advise_after();
-}
-
-/**
- * Add recent changed pages to the feed object
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- */
-function rssRecentChanges($opt) {
-    global $conf;
-    $flags = RECENTS_SKIP_DELETED;
-    if(!$opt['show_minor']) $flags += RECENTS_SKIP_MINORS;
-    if($opt['content_type'] == 'media' && $conf['mediarevisions']) $flags += RECENTS_MEDIA_CHANGES;
-    if($opt['content_type'] == 'both' && $conf['mediarevisions']) $flags += RECENTS_MEDIA_PAGES_MIXED;
-
-    $recents = getRecents(0, $opt['items'], $opt['namespace'], $flags);
-    return $recents;
-}
-
-/**
- * Add all pages of a namespace to the feed object
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- */
-function rssListNamespace($opt) {
-    require_once(DOKU_INC.'inc/search.php');
-    global $conf;
-
-    $ns = ':'.cleanID($opt['namespace']);
-    $ns = utf8_encodeFN(str_replace(':', '/', $ns));
-
-    $data = array();
-    $search_opts = array(
-        'depth' => 1,
-        'pagesonly' => true,
-        'listfiles' => true
-    );
-    search($data, $conf['datadir'], 'search_universal', $search_opts, $ns, $lvl = 1, $opt['sort']);
-
-    return $data;
-}
-
-/**
- * Add the result of a full text search to the feed object
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- */
-function rssSearch($opt) {
-    if(!$opt['search_query']) return array();
-
-    require_once(DOKU_INC.'inc/fulltext.php');
-    $data = ft_pageSearch($opt['search_query'], $poswords);
-    $data = array_keys($data);
-
-    return $data;
-}
-
-//Setup VIM: ex: et ts=4 :
diff --git a/wiki/inc/.htaccess b/wiki/inc/.htaccess
deleted file mode 100644
index 2b34c72..0000000
--- a/wiki/inc/.htaccess
+++ /dev/null
@@ -1,8 +0,0 @@
-## no access to the inc directory
-<IfModule mod_authz_host>
-    Require all denied
-</IfModule>
-<IfModule !mod_authz_host>
-    Order allow,deny
-    Deny from all
-</IfModule>
diff --git a/wiki/inc/Action/AbstractAclAction.php b/wiki/inc/Action/AbstractAclAction.php
deleted file mode 100644
index 871edb0..0000000
--- a/wiki/inc/Action/AbstractAclAction.php
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
-
-namespace dokuwiki\Action;
-
-use dokuwiki\Action\Exception\ActionAclRequiredException;
-
-/**
- * Class AbstractAclAction
- *
- * An action that requires the ACL subsystem to be enabled (eg. useacl=1)
- *
- * @package dokuwiki\Action
- */
-abstract class AbstractAclAction extends AbstractAction {
-
-    /** @inheritdoc */
-    public function checkPreconditions() {
-        parent::checkPreconditions();
-        global $conf;
-        global $auth;
-        if(!$conf['useacl']) throw new ActionAclRequiredException();
-        if(!$auth) throw new ActionAclRequiredException();
-    }
-
-}
diff --git a/wiki/inc/Action/AbstractAction.php b/wiki/inc/Action/AbstractAction.php
deleted file mode 100644
index ea86238..0000000
--- a/wiki/inc/Action/AbstractAction.php
+++ /dev/null
@@ -1,88 +0,0 @@
-<?php
-
-namespace dokuwiki\Action;
-
-use dokuwiki\Action\Exception\ActionDisabledException;
-use dokuwiki\Action\Exception\ActionException;
-use dokuwiki\Action\Exception\FatalException;
-
-/**
- * Class AbstractAction
- *
- * Base class for all actions
- *
- * @package dokuwiki\Action
- */
-abstract class AbstractAction {
-
-    /** @var string holds the name of the action (lowercase class name, no namespace) */
-    protected $actionname;
-
-    /**
-     * AbstractAction constructor.
-     *
-     * @param string $actionname the name of this action (see getActionName() for caveats)
-     */
-    public function __construct($actionname = '') {
-        if($actionname !== '') {
-            $this->actionname = $actionname;
-        } else {
-            // http://stackoverflow.com/a/27457689/172068
-            $this->actionname = strtolower(substr(strrchr(get_class($this), '\\'), 1));
-        }
-    }
-
-    /**
-     * Return the minimum permission needed
-     *
-     * This needs to return one of the AUTH_* constants. It will be checked against
-     * the current user and page after checkPermissions() ran through. If it fails,
-     * the user will be shown the Denied action.
-     *
-     * @return int
-     */
-    abstract public function minimumPermission();
-
-    /**
-     * Check conditions are met to run this action
-     *
-     * @throws ActionException
-     * @return void
-     */
-    public function checkPreconditions() {
-    }
-
-    /**
-     * Process data
-     *
-     * This runs before any output is sent to the browser.
-     *
-     * Throw an Exception if a different action should be run after this step.
-     *
-     * @throws ActionException
-     * @return void
-     */
-    public function preProcess() {
-    }
-
-    /**
-     * Output whatever content is wanted within tpl_content();
-     *
-     * @fixme we may want to return a Ui class here
-     */
-    public function tplContent() {
-        throw new FatalException('No content for Action ' . $this->actionname);
-    }
-
-    /**
-     * Returns the name of this action
-     *
-     * This is usually the lowercased class name, but may differ for some actions.
-     * eg. the export_ modes or for the Plugin action.
-     *
-     * @return string
-     */
-    public function getActionName() {
-        return $this->actionname;
-    }
-}
diff --git a/wiki/inc/Action/AbstractAliasAction.php b/wiki/inc/Action/AbstractAliasAction.php
deleted file mode 100644
index 7240f5e..0000000
--- a/wiki/inc/Action/AbstractAliasAction.php
+++ /dev/null
@@ -1,28 +0,0 @@
-<?php
-
-namespace dokuwiki\Action;
-
-use dokuwiki\Action\Exception\FatalException;
-
-/**
- * Class AbstractAliasAction
- *
- * An action that is an alias for another action. Skips the minimumPermission check
- *
- * Be sure to implement preProcess() and throw an ActionAbort exception
- * with the proper action.
- *
- * @package dokuwiki\Action
- */
-abstract class AbstractAliasAction extends AbstractAction {
-
-    /** @inheritdoc */
-    public function minimumPermission() {
-        return AUTH_NONE;
-    }
-
-    public function preProcess() {
-        throw new FatalException('Alias Actions need to implement preProcess to load the aliased action');
-    }
-
-}
diff --git a/wiki/inc/Action/AbstractUserAction.php b/wiki/inc/Action/AbstractUserAction.php
deleted file mode 100644
index b4e3f1a..0000000
--- a/wiki/inc/Action/AbstractUserAction.php
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
-
-namespace dokuwiki\Action;
-
-use dokuwiki\Action\Exception\ActionUserRequiredException;
-
-/**
- * Class AbstractUserAction
- *
- * An action that requires a logged in user
- *
- * @package dokuwiki\Action
- */
-abstract class AbstractUserAction extends AbstractAclAction {
-
-    /** @inheritdoc */
-    public function checkPreconditions() {
-        parent::checkPreconditions();
-        global $INPUT;
-        if(!$INPUT->server->str('REMOTE_USER')) {
-            throw new ActionUserRequiredException();
-        }
-    }
-
-}
diff --git a/wiki/inc/Action/Admin.php b/wiki/inc/Action/Admin.php
deleted file mode 100644
index 8d43057..0000000
--- a/wiki/inc/Action/Admin.php
+++ /dev/null
@@ -1,56 +0,0 @@
-<?php
-
-namespace dokuwiki\Action;
-
-use dokuwiki\Action\Exception\ActionException;
-
-/**
- * Class Admin
- *
- * Action to show the admin interface or admin plugins
- *
- * @package dokuwiki\Action
- */
-class Admin extends AbstractUserAction {
-
-    /** @inheritdoc */
-    public function minimumPermission() {
-        global $INFO;
-
-        if($INFO['ismanager']) {
-            return AUTH_READ; // let in check later
-        } else {
-            return AUTH_ADMIN;
-        }
-    }
-
-    public function checkPreconditions() {
-        parent::checkPreconditions();
-
-        global $INFO;
-        if(!$INFO['ismanager']) {
-            throw new ActionException('denied');
-        }
-    }
-
-    public function preProcess() {
-        global $INPUT;
-        global $INFO;
-
-        // retrieve admin plugin name from $_REQUEST['page']
-        if(($page = $INPUT->str('page', '', true)) != '') {
-            /** @var $plugin \DokuWiki_Admin_Plugin */
-            if($plugin = plugin_getRequestAdminPlugin()) { // FIXME this method does also permission checking
-                if($plugin->forAdminOnly() && !$INFO['isadmin']) {
-                    throw new ActionException('denied');
-                }
-                $plugin->handle();
-            }
-        }
-    }
-
-    public function tplContent() {
-        tpl_admin();
-    }
-
-}
diff --git a/wiki/inc/Action/Backlink.php b/wiki/inc/Action/Backlink.php
deleted file mode 100644
index 0337917..0000000
--- a/wiki/inc/Action/Backlink.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-
-namespace dokuwiki\Action;
-
-/**
- * Class Backlink
- *
- * Shows which pages link to the current page
- *
- * @package dokuwiki\Action
- */
-class Backlink extends AbstractAction {
-
-    /** @inheritdoc */
-    public function minimumPermission() {
-        return AUTH_NONE;
-    }
-
-    /** @inheritdoc */
-    public function tplContent() {
-        html_backlinks();
-    }
-
-}
diff --git a/wiki/inc/Action/Cancel.php b/wiki/inc/Action/Cancel.php
deleted file mode 100644
index d4d8277..0000000
--- a/wiki/inc/Action/Cancel.php
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
-
-namespace dokuwiki\Action;
-
-use dokuwiki\Action\Exception\ActionAbort;
-
-/**
- * Class Cancel
- *
- * Alias for show. Aborts editing
- *
- * @package dokuwiki\Action
- */
-class Cancel extends AbstractAliasAction {
-
-    /** @inheritdoc */
-    public function preProcess() {
-        global $ID;
-        unlock($ID);
-
-        // continue with draftdel -> redirect -> show
-        throw new ActionAbort('draftdel');
-    }
-
-}
diff --git a/wiki/inc/Action/Check.php b/wiki/inc/Action/Check.php
deleted file mode 100644
index 36ae8e8..0000000
--- a/wiki/inc/Action/Check.php
+++ /dev/null
@@ -1,26 +0,0 @@
-<?php
-
-namespace dokuwiki\Action;
-
-use dokuwiki\Action\Exception\ActionAbort;
-
-/**
- * Class Check
- *
- * Adds some debugging info before aborting to show
- *
- * @package dokuwiki\Action
- */
-class Check extends AbstractAction {
-
-    /** @inheritdoc */
-    public function minimumPermission() {
-        return AUTH_READ;
-    }
-
-    public function preProcess() {
-        check();
-        throw new ActionAbort();
-    }
-
-}
diff --git a/wiki/inc/Action/Conflict.php b/wiki/inc/Action/Conflict.php
deleted file mode 100644
index d880b5b..0000000
--- a/wiki/inc/Action/Conflict.php
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-
-namespace dokuwiki\Action;
-
-/**
- * Class Conflict
- *
- * Show the conflict resolution screen
- *
- * @package dokuwiki\Action
- */
-class Conflict extends AbstractAction {
-
-    /** @inheritdoc */
-    public function minimumPermission() {
-        global $INFO;
-        if($INFO['exists']) {
-            return AUTH_EDIT;
-        } else {
-            return AUTH_CREATE;
-        }
-    }
-
-    public function tplContent() {
-        global $PRE;
-        global $TEXT;
-        global $SUF;
-        global $SUM;
-
-        html_conflict(con($PRE, $TEXT, $SUF), $SUM);
-        html_diff(con($PRE, $TEXT, $SUF), false);
-    }
-
-}
diff --git a/wiki/inc/Action/Denied.php b/wiki/inc/Action/Denied.php
deleted file mode 100644
index c8e0192..0000000
--- a/wiki/inc/Action/Denied.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-
-namespace dokuwiki\Action;
-
-/**
- * Class Denied
- *
- * Show the access denied screen
- *
- * @package dokuwiki\Action
- */
-class Denied extends AbstractAclAction {
-
-    /** @inheritdoc */
-    public function minimumPermission() {
-        return AUTH_NONE;
-    }
-
-    public function tplContent() {
-        html_denied();
-    }
-
-}
diff --git a/wiki/inc/Action/Diff.php b/wiki/inc/Action/Diff.php
deleted file mode 100644
index b14b1d0..0000000
--- a/wiki/inc/Action/Diff.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-
-namespace dokuwiki\Action;
-
-/**
- * Class Diff
- *
- * Show the differences between two revisions
- *
- * @package dokuwiki\Action
- */
-class Diff extends AbstractAction {
-
-    /** @inheritdoc */
-    public function minimumPermission() {
-        return AUTH_READ;
-    }
-
-    /** @inheritdoc */
-    public function preProcess() {
-        global $INPUT;
-
-        // store the selected diff type in cookie
-        $difftype = $INPUT->str('difftype');
-        if(!empty($difftype)) {
-            set_doku_pref('difftype', $difftype);
-        }
-    }
-
-    /** @inheritdoc */
-    public function tplContent() {
-        html_diff();
-    }
-
-}
diff --git a/wiki/inc/Action/Draft.php b/wiki/inc/Action/Draft.php
deleted file mode 100644
index caf0870..0000000
--- a/wiki/inc/Action/Draft.php
+++ /dev/null
@@ -1,39 +0,0 @@
-<?php
-
-namespace dokuwiki\Action;
-
-use dokuwiki\Action\Exception\ActionException;
-
-/**
- * Class Draft
- *
- * Screen to see and recover a draft
- *
- * @package dokuwiki\Action
- * @fixme combine with Recover?
- */
-class Draft extends AbstractAction {
-
-    /** @inheritdoc */
-    public function minimumPermission() {
-        global $INFO;
-        if($INFO['exists']) {
-            return AUTH_EDIT;
-        } else {
-            return AUTH_CREATE;
-        }
-    }
-
-    /** @inheritdoc */
-    public function checkPreconditions() {
-        parent::checkPreconditions();
-        global $INFO;
-        if(!file_exists($INFO['draft'])) throw new ActionException('edit');
-    }
-
-    /** @inheritdoc */
-    public function tplContent() {
-        html_draft();
-    }
-
-}
diff --git a/wiki/inc/Action/Draftdel.php b/wiki/inc/Action/Draftdel.php
deleted file mode 100644
index 77378f7..0000000
--- a/wiki/inc/Action/Draftdel.php
+++ /dev/null
@@ -1,36 +0,0 @@
-<?php
-
-namespace dokuwiki\Action;
-
-use dokuwiki\Action\Exception\ActionAbort;
-
-/**
- * Class Draftdel
- *
- * Delete a draft
- *
- * @package dokuwiki\Action
- */
-class Draftdel extends AbstractAction {
-
-    /** @inheritdoc */
-    public function minimumPermission() {
-        return AUTH_EDIT;
-    }
-
-    /**
-     * Delete an existing draft if any
-     *
-     * Reads draft information from $INFO. Redirects to show, afterwards.
-     *
-     * @throws ActionAbort
-     */
-    public function preProcess() {
-        global $INFO;
-        @unlink($INFO['draft']);
-        $INFO['draft'] = null;
-
-        throw new ActionAbort('redirect');
-    }
-
-}
diff --git a/wiki/inc/Action/Edit.php b/wiki/inc/Action/Edit.php
deleted file mode 100644
index 061c9e2..0000000
--- a/wiki/inc/Action/Edit.php
+++ /dev/null
@@ -1,91 +0,0 @@
-<?php
-
-namespace dokuwiki\Action;
-
-use dokuwiki\Action\Exception\ActionAbort;
-
-/**
- * Class Edit
- *
- * Handle editing
- *
- * @package dokuwiki\Action
- */
-class Edit extends AbstractAction {
-
-    /** @inheritdoc */
-    public function minimumPermission() {
-        global $INFO;
-        if($INFO['exists']) {
-            return AUTH_READ; // we check again below
-        } else {
-            return AUTH_CREATE;
-        }
-    }
-
-    /**
-     * @inheritdoc falls back to 'source' if page not writable
-     */
-    public function checkPreconditions() {
-        parent::checkPreconditions();
-        global $INFO;
-
-        // no edit permission? view source
-        if($INFO['exists'] && !$INFO['writable']) {
-            throw new ActionAbort('source');
-        }
-    }
-
-    /** @inheritdoc */
-    public function preProcess() {
-        global $ID;
-        global $INFO;
-
-        global $TEXT;
-        global $RANGE;
-        global $PRE;
-        global $SUF;
-        global $REV;
-        global $SUM;
-        global $lang;
-        global $DATE;
-
-        if(!isset($TEXT)) {
-            if($INFO['exists']) {
-                if($RANGE) {
-                    list($PRE, $TEXT, $SUF) = rawWikiSlices($RANGE, $ID, $REV);
-                } else {
-                    $TEXT = rawWiki($ID, $REV);
-                }
-            } else {
-                $TEXT = pageTemplate($ID);
-            }
-        }
-
-        //set summary default
-        if(!$SUM) {
-            if($REV) {
-                $SUM = sprintf($lang['restored'], dformat($REV));
-            } elseif(!$INFO['exists']) {
-                $SUM = $lang['created'];
-            }
-        }
-
-        // Use the date of the newest revision, not of the revision we edit
-        // This is used for conflict detection
-        if(!$DATE) $DATE = @filemtime(wikiFN($ID));
-
-        //check if locked by anyone - if not lock for my self
-        $lockedby = checklock($ID);
-        if($lockedby) {
-            throw new ActionAbort('locked');
-        };
-        lock($ID);
-    }
-
-    /** @inheritdoc */
-    public function tplContent() {
-        html_edit();
-    }
-
-}
diff --git a/wiki/inc/Action/Exception/ActionAbort.php b/wiki/inc/Action/Exception/ActionAbort.php
deleted file mode 100644
index 9c188bb..0000000
--- a/wiki/inc/Action/Exception/ActionAbort.php
+++ /dev/null
@@ -1,20 +0,0 @@
-<?php
-
-namespace dokuwiki\Action\Exception;
-
-/**
- * Class ActionAbort
- *
- * Strictly speaking not an Exception but an expected execution path. Used to
- * signal when one action is done and another should take over.
- *
- * If you want to signal the same but under some error condition use ActionException
- * or one of it's decendants.
- *
- * The message will NOT be shown to the enduser
- *
- * @package dokuwiki\Action\Exception
- */
-class ActionAbort extends ActionException {
-
-}
diff --git a/wiki/inc/Action/Exception/ActionAclRequiredException.php b/wiki/inc/Action/Exception/ActionAclRequiredException.php
deleted file mode 100644
index 64a2c61..0000000
--- a/wiki/inc/Action/Exception/ActionAclRequiredException.php
+++ /dev/null
@@ -1,17 +0,0 @@
-<?php
-
-namespace dokuwiki\Action\Exception;
-
-/**
- * Class ActionAclRequiredException
- *
- * Thrown by AbstractACLAction when an action requires that the ACL subsystem is
- * enabled but it isn't. You should not use it
- *
- * The message will NOT be shown to the enduser
- *
- * @package dokuwiki\Action\Exception
- */
-class ActionAclRequiredException extends ActionException {
-
-}
diff --git a/wiki/inc/Action/Exception/ActionDisabledException.php b/wiki/inc/Action/Exception/ActionDisabledException.php
deleted file mode 100644
index 40a0c7d..0000000
--- a/wiki/inc/Action/Exception/ActionDisabledException.php
+++ /dev/null
@@ -1,17 +0,0 @@
-<?php
-
-namespace dokuwiki\Action\Exception;
-
-/**
- * Class ActionDisabledException
- *
- * Thrown when the requested action has been disabled. Eg. through the 'disableactions'
- * config setting. You should probably not use it.
- *
- * The message will NOT be shown to the enduser, but a generic information will be shown.
- *
- * @package dokuwiki\Action\Exception
- */
-class ActionDisabledException extends ActionException {
-
-}
diff --git a/wiki/inc/Action/Exception/ActionException.php b/wiki/inc/Action/Exception/ActionException.php
deleted file mode 100644
index 381584c..0000000
--- a/wiki/inc/Action/Exception/ActionException.php
+++ /dev/null
@@ -1,66 +0,0 @@
-<?php
-
-namespace dokuwiki\Action\Exception;
-
-/**
- * Class ActionException
- *
- * This exception and its subclasses signal that the current action should be
- * aborted and a different action should be used instead. The new action can
- * be given as parameter in the constructor. Defaults to 'show'
- *
- * The message will NOT be shown to the enduser
- *
- * @package dokuwiki\Action\Exception
- */
-class ActionException extends \Exception {
-
-    /** @var string the new action */
-    protected $newaction;
-
-    /** @var bool should the exception's message be shown to the user? */
-    protected $displayToUser = false;
-
-    /**
-     * ActionException constructor.
-     *
-     * When no new action is given 'show' is assumed. For requests that originated in a POST,
-     * a 'redirect' is used which will cause a redirect to the 'show' action.
-     *
-     * @param string|null $newaction the action that should be used next
-     * @param string $message optional message, will not be shown except for some dub classes
-     */
-    public function __construct($newaction = null, $message = '') {
-        global $INPUT;
-        parent::__construct($message);
-        if(is_null($newaction)) {
-            if(strtolower($INPUT->server->str('REQUEST_METHOD')) == 'post') {
-                $newaction = 'redirect';
-            } else {
-                $newaction = 'show';
-            }
-        }
-
-        $this->newaction = $newaction;
-    }
-
-    /**
-     * Returns the action to use next
-     *
-     * @return string
-     */
-    public function getNewAction() {
-        return $this->newaction;
-    }
-
-    /**
-     * Should this Exception's message be shown to the user?
-     *
-     * @param null|bool $set when null is given, the current setting is not changed
-     * @return bool
-     */
-    public function displayToUser($set = null) {
-        if(!is_null($set)) $this->displayToUser = $set;
-        return $set;
-    }
-}
diff --git a/wiki/inc/Action/Exception/ActionUserRequiredException.php b/wiki/inc/Action/Exception/ActionUserRequiredException.php
deleted file mode 100644
index aab06cc..0000000
--- a/wiki/inc/Action/Exception/ActionUserRequiredException.php
+++ /dev/null
@@ -1,17 +0,0 @@
-<?php
-
-namespace dokuwiki\Action\Exception;
-
-/**
- * Class ActionUserRequiredException
- *
- * Thrown by AbstractUserAction when an action requires that a user is logged
- * in but it isn't. You should not use it.
- *
- * The message will NOT be shown to the enduser
- *
- * @package dokuwiki\Action\Exception
- */
-class ActionUserRequiredException extends ActionException {
-
-}
diff --git a/wiki/inc/Action/Exception/FatalException.php b/wiki/inc/Action/Exception/FatalException.php
deleted file mode 100644
index 5f2516f..0000000
--- a/wiki/inc/Action/Exception/FatalException.php
+++ /dev/null
@@ -1,29 +0,0 @@
-<?php
-
-namespace dokuwiki\Action\Exception;
-
-/**
- * Class FatalException
- *
- * A fatal exception during handling the action
- *
- * Will abort all handling and display some info to the user. The HTTP status code
- * can be defined.
- *
- * @package dokuwiki\Action\Exception
- */
-class FatalException extends \Exception {
-
-    protected $status;
-
-    /**
-     * FatalException constructor.
-     *
-     * @param string $message the message to send
-     * @param int $status the HTTP status to send
-     * @param null|\Exception $previous previous exception
-     */
-    public function __construct($message = 'A fatal error occured', $status = 500, $previous = null) {
-        parent::__construct($message, $status, $previous);
-    }
-}
diff --git a/wiki/inc/Action/Exception/NoActionException.php b/wiki/inc/Action/Exception/NoActionException.php
deleted file mode 100644
index 1c4e4d0..0000000
--- a/wiki/inc/Action/Exception/NoActionException.php
+++ /dev/null
@@ -1,15 +0,0 @@
-<?php
-
-namespace dokuwiki\Action\Exception;
-
-/**
- * Class NoActionException
- *
- * Thrown in the ActionRouter when a wanted action can not be found. Triggers
- * the unknown action event
- *
- * @package dokuwiki\Action\Exception
- */
-class NoActionException extends \Exception {
-
-}
diff --git a/wiki/inc/Action/Export.php b/wiki/inc/Action/Export.php
deleted file mode 100644
index 1eec27e..0000000
--- a/wiki/inc/Action/Export.php
+++ /dev/null
@@ -1,112 +0,0 @@
-<?php
-
-namespace dokuwiki\Action;
-
-use dokuwiki\Action\Exception\ActionAbort;
-
-/**
- * Class Export
- *
- * Handle exporting by calling the appropriate renderer
- *
- * @package dokuwiki\Action
- */
-class Export extends AbstractAction {
-
-    /** @inheritdoc */
-    public function minimumPermission() {
-        return AUTH_READ;
-    }
-
-    /**
-     * Export a wiki page for various formats
-     *
-     * Triggers ACTION_EXPORT_POSTPROCESS
-     *
-     *  Event data:
-     *    data['id']      -- page id
-     *    data['mode']    -- requested export mode
-     *    data['headers'] -- export headers
-     *    data['output']  -- export output
-     *
-     * @author Andreas Gohr <andi@splitbrain.org>
-     * @author Michael Klier <chi@chimeric.de>
-     * @inheritdoc
-     */
-    public function preProcess() {
-        global $ID;
-        global $REV;
-        global $conf;
-        global $lang;
-
-        $pre = '';
-        $post = '';
-        $headers = array();
-
-        // search engines: never cache exported docs! (Google only currently)
-        $headers['X-Robots-Tag'] = 'noindex';
-
-        $mode = substr($this->actionname, 7);
-        switch($mode) {
-            case 'raw':
-                $headers['Content-Type'] = 'text/plain; charset=utf-8';
-                $headers['Content-Disposition'] = 'attachment; filename=' . noNS($ID) . '.txt';
-                $output = rawWiki($ID, $REV);
-                break;
-            case 'xhtml':
-                $pre .= '<!DOCTYPE html>' . DOKU_LF;
-                $pre .= '<html lang="' . $conf['lang'] . '" dir="' . $lang['direction'] . '">' . DOKU_LF;
-                $pre .= '<head>' . DOKU_LF;
-                $pre .= '  <meta charset="utf-8" />' . DOKU_LF; // FIXME improve wrapper
-                $pre .= '  <title>' . $ID . '</title>' . DOKU_LF;
-
-                // get metaheaders
-                ob_start();
-                tpl_metaheaders();
-                $pre .= ob_get_clean();
-
-                $pre .= '</head>' . DOKU_LF;
-                $pre .= '<body>' . DOKU_LF;
-                $pre .= '<div class="dokuwiki export">' . DOKU_LF;
-
-                // get toc
-                $pre .= tpl_toc(true);
-
-                $headers['Content-Type'] = 'text/html; charset=utf-8';
-                $output = p_wiki_xhtml($ID, $REV, false);
-
-                $post .= '</div>' . DOKU_LF;
-                $post .= '</body>' . DOKU_LF;
-                $post .= '</html>' . DOKU_LF;
-                break;
-            case 'xhtmlbody':
-                $headers['Content-Type'] = 'text/html; charset=utf-8';
-                $output = p_wiki_xhtml($ID, $REV, false);
-                break;
-            default:
-                $output = p_cached_output(wikiFN($ID, $REV), $mode, $ID);
-                $headers = p_get_metadata($ID, "format $mode");
-                break;
-        }
-
-        // prepare event data
-        $data = array();
-        $data['id'] = $ID;
-        $data['mode'] = $mode;
-        $data['headers'] = $headers;
-        $data['output'] =& $output;
-
-        trigger_event('ACTION_EXPORT_POSTPROCESS', $data);
-
-        if(!empty($data['output'])) {
-            if(is_array($data['headers'])) foreach($data['headers'] as $key => $val) {
-                header("$key: $val");
-            }
-            print $pre . $data['output'] . $post;
-            exit;
-        }
-
-        throw new ActionAbort();
-    }
-
-}
diff --git a/wiki/inc/Action/Index.php b/wiki/inc/Action/Index.php
deleted file mode 100644
index c87a3f8..0000000
--- a/wiki/inc/Action/Index.php
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
-
-namespace dokuwiki\Action;
-
-/**
- * Class Index
- *
- * Show the human readable sitemap. Do not confuse with Sitemap
- *
- * @package dokuwiki\Action
- */
-class Index extends AbstractAction {
-
-    /** @inheritdoc */
-    public function minimumPermission() {
-        return AUTH_NONE;
-    }
-
-    /** @inheritdoc */
-    public function tplContent() {
-        global $IDX;
-        html_index($IDX);
-    }
-
-}
diff --git a/wiki/inc/Action/Locked.php b/wiki/inc/Action/Locked.php
deleted file mode 100644
index 3ff2c5b..0000000
--- a/wiki/inc/Action/Locked.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-
-namespace dokuwiki\Action;
-
-/**
- * Class Locked
- *
- * Show a locked screen when a page is locked
- *
- * @package dokuwiki\Action
- */
-class Locked extends AbstractAction {
-
-    /** @inheritdoc */
-    public function minimumPermission() {
-        return AUTH_READ;
-    }
-
-    /** @inheritdoc */
-    public function tplContent() {
-        html_locked();
-    }
-
-}
diff --git a/wiki/inc/Action/Login.php b/wiki/inc/Action/Login.php
deleted file mode 100644
index 7f903ff..0000000
--- a/wiki/inc/Action/Login.php
+++ /dev/null
@@ -1,36 +0,0 @@
-<?php
-
-namespace dokuwiki\Action;
-
-use dokuwiki\Action\Exception\ActionException;
-
-/**
- * Class Login
- *
- * The login form. Actual logins are handled in inc/auth.php
- *
- * @package dokuwiki\Action
- */
-class Login extends AbstractAclAction {
-
-    /** @inheritdoc */
-    public function minimumPermission() {
-        return AUTH_NONE;
-    }
-
-    /** @inheritdoc */
-    public function checkPreconditions() {
-        global $INPUT;
-        parent::checkPreconditions();
-        if($INPUT->server->has('REMOTE_USER')) {
-            // nothing to do
-            throw new ActionException();
-        }
-    }
-
-    /** @inheritdoc */
-    public function tplContent() {
-        html_login();
-    }
-
-}
diff --git a/wiki/inc/Action/Logout.php b/wiki/inc/Action/Logout.php
deleted file mode 100644
index 1590904..0000000
--- a/wiki/inc/Action/Logout.php
+++ /dev/null
@@ -1,50 +0,0 @@
-<?php
-
-namespace dokuwiki\Action;
-
-use dokuwiki\Action\Exception\ActionDisabledException;
-use dokuwiki\Action\Exception\ActionException;
-
-/**
- * Class Logout
- *
- * Log out a user
- *
- * @package dokuwiki\Action
- */
-class Logout extends AbstractUserAction {
-
-    /** @inheritdoc */
-    public function minimumPermission() {
-        return AUTH_NONE;
-    }
-
-    /** @inheritdoc */
-    public function checkPreconditions() {
-        parent::checkPreconditions();
-
-        /** @var \DokuWiki_Auth_Plugin $auth */
-        global $auth;
-        if(!$auth->canDo('logout')) throw new ActionDisabledException();
-    }
-
-    /** @inheritdoc */
-    public function preProcess() {
-        global $ID;
-        global $INPUT;
-
-        // when logging out during an edit session, unlock the page
-        $lockedby = checklock($ID);
-        if($lockedby == $INPUT->server->str('REMOTE_USER')) {
-            unlock($ID);
-        }
-
-        // do the logout stuff and redirect to login
-        auth_logoff();
-        send_redirect(wl($ID, array('do' => 'login')));
-
-        // should never be reached
-        throw new ActionException('login');
-    }
-
-}
diff --git a/wiki/inc/Action/Media.php b/wiki/inc/Action/Media.php
deleted file mode 100644
index 77a2a6f..0000000
--- a/wiki/inc/Action/Media.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-
-namespace dokuwiki\Action;
-
-/**
- * Class Media
- *
- * The full screen media manager
- *
- * @package dokuwiki\Action
- */
-class Media extends AbstractAction {
-
-    /** @inheritdoc */
-    public function minimumPermission() {
-        return AUTH_READ;
-    }
-
-    /** @inheritdoc */
-    public function tplContent() {
-        tpl_media();
-    }
-
-}
diff --git a/wiki/inc/Action/Plugin.php b/wiki/inc/Action/Plugin.php
deleted file mode 100644
index c3e16bf..0000000
--- a/wiki/inc/Action/Plugin.php
+++ /dev/null
@@ -1,32 +0,0 @@
-<?php
-
-namespace dokuwiki\Action;
-
-/**
- * Class Plugin
- *
- * Used to run action plugins
- *
- * @package dokuwiki\Action
- */
-class Plugin extends AbstractAction {
-
-    /** @inheritdoc */
-    public function minimumPermission() {
-        return AUTH_NONE;
-    }
-
-    /**
-     * Outputs nothing but a warning unless an action plugin overwrites it
-     *
-     * @inheritdoc
-     * @triggers TPL_ACT_UNKNOWN
-     */
-    public function tplContent() {
-        $evt = new \Doku_Event('TPL_ACT_UNKNOWN', $this->actionname);
-        if($evt->advise_before()) {
-            msg('Failed to handle action: ' . hsc($this->actionname), -1);
-        }
-        $evt->advise_after();
-    }
-}
diff --git a/wiki/inc/Action/Preview.php b/wiki/inc/Action/Preview.php
deleted file mode 100644
index 850b204..0000000
--- a/wiki/inc/Action/Preview.php
+++ /dev/null
@@ -1,58 +0,0 @@
-<?php
-
-namespace dokuwiki\Action;
-
-/**
- * Class Preview
- *
- * preview during editing
- *
- * @package dokuwiki\Action
- */
-class Preview extends Edit {
-
-    /** @inheritdoc */
-    public function preProcess() {
-        header('X-XSS-Protection: 0');
-        $this->savedraft();
-        parent::preProcess();
-    }
-
-    /** @inheritdoc */
-    public function tplContent() {
-        global $TEXT;
-        html_edit();
-        html_show($TEXT);
-    }
-
-    /**
-     * Saves a draft on preview
-     */
-    protected function savedraft() {
-        global $INFO;
-        global $ID;
-        global $INPUT;
-        global $conf;
-
-        if(!$conf['usedraft']) return;
-        if(!$INPUT->post->has('wikitext')) return;
-
-        // ensure environment (safeguard when used via AJAX)
-        assert(isset($INFO['client']), 'INFO.client should have been set');
-        assert(isset($ID), 'ID should have been set');
-
-        $draft = array(
-            'id' => $ID,
-            'prefix' => substr($INPUT->post->str('prefix'), 0, -1),
-            'text' => $INPUT->post->str('wikitext'),
-            'suffix' => $INPUT->post->str('suffix'),
-            'date' => $INPUT->post->int('date'),
-            'client' => $INFO['client'],
-        );
-        $cname = getCacheName($draft['client'] . $ID, '.draft');
-        if(io_saveFile($cname, serialize($draft))) {
-            $INFO['draft'] = $cname;
-        }
-    }
-
-}
diff --git a/wiki/inc/Action/Profile.php b/wiki/inc/Action/Profile.php
deleted file mode 100644
index 53d8d2f..0000000
--- a/wiki/inc/Action/Profile.php
+++ /dev/null
@@ -1,45 +0,0 @@
-<?php
-
-namespace dokuwiki\Action;
-
-use dokuwiki\Action\Exception\ActionAbort;
-use dokuwiki\Action\Exception\ActionDisabledException;
-
-/**
- * Class Profile
- *
- * Handle the profile form
- *
- * @package dokuwiki\Action
- */
-class Profile extends AbstractUserAction {
-
-    /** @inheritdoc */
-    public function minimumPermission() {
-        return AUTH_NONE;
-    }
-
-    /** @inheritdoc */
-    public function checkPreconditions() {
-        parent::checkPreconditions();
-
-        /** @var \DokuWiki_Auth_Plugin $auth */
-        global $auth;
-        if(!$auth->canDo('Profile')) throw new ActionDisabledException();
-    }
-
-    /** @inheritdoc */
-    public function preProcess() {
-        global $lang;
-        if(updateprofile()) {
-            msg($lang['profchanged'], 1);
-            throw new ActionAbort('show');
-        }
-    }
-
-    /** @inheritdoc */
-    public function tplContent() {
-        html_updateprofile();
-    }
-
-}
diff --git a/wiki/inc/Action/ProfileDelete.php b/wiki/inc/Action/ProfileDelete.php
deleted file mode 100644
index 995f813..0000000
--- a/wiki/inc/Action/ProfileDelete.php
+++ /dev/null
@@ -1,42 +0,0 @@
-<?php
-
-namespace dokuwiki\Action;
-
-use dokuwiki\Action\Exception\ActionAbort;
-use dokuwiki\Action\Exception\ActionDisabledException;
-
-/**
- * Class ProfileDelete
- *
- * Delete a user account
- *
- * @package dokuwiki\Action
- */
-class ProfileDelete extends AbstractUserAction {
-
-    /** @inheritdoc */
-    public function minimumPermission() {
-        return AUTH_NONE;
-    }
-
-    /** @inheritdoc */
-    public function checkPreconditions() {
-        parent::checkPreconditions();
-
-        /** @var \DokuWiki_Auth_Plugin $auth */
-        global $auth;
-        if(!$auth->canDo('delUser')) throw new ActionDisabledException();
-    }
-
-    /** @inheritdoc */
-    public function preProcess() {
-        global $lang;
-        if(auth_deleteprofile()) {
-            msg($lang['profdeleted'], 1);
-            throw new ActionAbort('show');
-        } else {
-            throw new ActionAbort('profile');
-        }
-    }
-
-}
diff --git a/wiki/inc/Action/Recent.php b/wiki/inc/Action/Recent.php
deleted file mode 100644
index 9273d52..0000000
--- a/wiki/inc/Action/Recent.php
+++ /dev/null
@@ -1,40 +0,0 @@
-<?php
-
-namespace dokuwiki\Action;
-
-/**
- * Class Recent
- *
- * The recent changes view
- *
- * @package dokuwiki\Action
- */
-class Recent extends AbstractAction {
-
-    /** @var string what type of changes to show */
-    protected $showType = 'both';
-
-    /** @inheritdoc */
-    public function minimumPermission() {
-        return AUTH_NONE;
-    }
-
-    /** @inheritdoc */
-    public function preProcess() {
-        global $INPUT;
-        $show_changes = $INPUT->str('show_changes');
-        if(!empty($show_changes)) {
-            set_doku_pref('show_changes', $show_changes);
-            $this->showType = $show_changes;
-        } else {
-            $this->showType = get_doku_pref('show_changes', 'both');
-        }
-    }
-
-    /** @inheritdoc */
-    public function tplContent() {
-        global $INPUT;
-        html_recent((int) $INPUT->extract('first')->int('first'), $this->showType);
-    }
-
-}
diff --git a/wiki/inc/Action/Recover.php b/wiki/inc/Action/Recover.php
deleted file mode 100644
index 7966396..0000000
--- a/wiki/inc/Action/Recover.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-
-namespace dokuwiki\Action;
-
-use dokuwiki\Action\Exception\ActionAbort;
-
-/**
- * Class Recover
- *
- * Recover a draft
- *
- * @package dokuwiki\Action
- */
-class Recover extends AbstractAliasAction {
-
-    /** @inheritdoc */
-    public function preProcess() {
-        throw new ActionAbort('edit');
-    }
-
-}
diff --git a/wiki/inc/Action/Redirect.php b/wiki/inc/Action/Redirect.php
deleted file mode 100644
index 2e28f45..0000000
--- a/wiki/inc/Action/Redirect.php
+++ /dev/null
@@ -1,64 +0,0 @@
-<?php
-
-namespace dokuwiki\Action;
-
-use dokuwiki\Action\Exception\ActionAbort;
-
-/**
- * Class Redirect
- *
- * Used to redirect to the current page with the last edited section as a target if found
- *
- * @package dokuwiki\Action
- */
-class Redirect extends AbstractAliasAction {
-
-    /**
-     * Redirect to the show action, trying to jump to the previously edited section
-     *
-     * @triggers ACTION_SHOW_REDIRECT
-     * @throws ActionAbort
-     */
-    public function preProcess() {
-        global $PRE;
-        global $TEXT;
-        global $INPUT;
-        global $ID;
-        global $ACT;
-
-        $opts = array(
-            'id' => $ID,
-            'preact' => $ACT
-        );
-        //get section name when coming from section edit
-        if($INPUT->has('hid')) {
-            // Use explicitly transmitted header id
-            $opts['fragment'] = $INPUT->str('hid');
-        } else if($PRE && preg_match('/^\s*==+([^=\n]+)/', $TEXT, $match)) {
-            // Fallback to old mechanism
-            $check = false; //Byref
-            $opts['fragment'] = sectionID($match[0], $check);
-        }
-
-        // execute the redirect
-        trigger_event('ACTION_SHOW_REDIRECT', $opts, array($this, 'redirect'));
-
-        // should never be reached
-        throw new ActionAbort('show');
-    }
-
-    /**
-     * Execute the redirect
-     *
-     * Default action for ACTION_SHOW_REDIRECT
-     *
-     * @param array $opts id and fragment for the redirect and the preact
-     */
-    public function redirect($opts) {
-        $go = wl($opts['id'], '', true);
-        if(isset($opts['fragment'])) $go .= '#' . $opts['fragment'];
-
-        //show it
-        send_redirect($go);
-    }
-}
diff --git a/wiki/inc/Action/Register.php b/wiki/inc/Action/Register.php
deleted file mode 100644
index 0d54158..0000000
--- a/wiki/inc/Action/Register.php
+++ /dev/null
@@ -1,45 +0,0 @@
-<?php
-
-namespace dokuwiki\Action;
-
-use dokuwiki\Action\Exception\ActionAbort;
-use dokuwiki\Action\Exception\ActionDisabledException;
-
-/**
- * Class Register
- *
- * Self registering a new user
- *
- * @package dokuwiki\Action
- */
-class Register extends AbstractAclAction {
-
-    /** @inheritdoc */
-    public function minimumPermission() {
-        return AUTH_NONE;
-    }
-
-    /** @inheritdoc */
-    public function checkPreconditions() {
-        parent::checkPreconditions();
-
-        /** @var \DokuWiki_Auth_Plugin $auth */
-        global $auth;
-        global $conf;
-        if(isset($conf['openregister']) && !$conf['openregister']) throw new ActionDisabledException();
-        if(!$auth->canDo('addUser')) throw new ActionDisabledException();
-    }
-
-    /** @inheritdoc */
-    public function preProcess() {
-        if(register()) { // FIXME could be moved from auth to here
-            throw new ActionAbort('login');
-        }
-    }
-
-    /** @inheritdoc */
-    public function tplContent() {
-        html_register();
-    }
-
-}
diff --git a/wiki/inc/Action/Resendpwd.php b/wiki/inc/Action/Resendpwd.php
deleted file mode 100644
index 5b5e381..0000000
--- a/wiki/inc/Action/Resendpwd.php
+++ /dev/null
@@ -1,177 +0,0 @@
-<?php
-
-namespace dokuwiki\Action;
-
-use dokuwiki\Action\Exception\ActionAbort;
-use dokuwiki\Action\Exception\ActionDisabledException;
-
-/**
- * Class Resendpwd
- *
- * Handle password recovery
- *
- * @package dokuwiki\Action
- */
-class Resendpwd extends AbstractAclAction {
-
-    /** @inheritdoc */
-    public function minimumPermission() {
-        return AUTH_NONE;
-    }
-
-    /** @inheritdoc */
-    public function checkPreconditions() {
-        parent::checkPreconditions();
-
-        /** @var \DokuWiki_Auth_Plugin $auth */
-        global $auth;
-        global $conf;
-        if(isset($conf['resendpasswd']) && !$conf['resendpasswd']) throw new ActionDisabledException(); //legacy option
-        if(!$auth->canDo('modPass')) throw new ActionDisabledException();
-    }
-
-    /** @inheritdoc */
-    public function preProcess() {
-        if($this->resendpwd()) {
-            throw new ActionAbort('login');
-        }
-    }
-
-    /** @inheritdoc */
-    public function tplContent() {
-        html_resendpwd();
-    }
-
-    /**
-     * Send a  new password
-     *
-     * This function handles both phases of the password reset:
-     *
-     *   - handling the first request of password reset
-     *   - validating the password reset auth token
-     *
-     * @author Benoit Chesneau <benoit@bchesneau.info>
-     * @author Chris Smith <chris@jalakai.co.uk>
-     * @author Andreas Gohr <andi@splitbrain.org>
-     * @fixme this should be split up into multiple methods
-     * @return bool true on success, false on any error
-     */
-    protected function resendpwd() {
-        global $lang;
-        global $conf;
-        /* @var \DokuWiki_Auth_Plugin $auth */
-        global $auth;
-        global $INPUT;
-
-        if(!actionOK('resendpwd')) {
-            msg($lang['resendna'], -1);
-            return false;
-        }
-
-        $token = preg_replace('/[^a-f0-9]+/', '', $INPUT->str('pwauth'));
-
-        if($token) {
-            // we're in token phase - get user info from token
-
-            $tfile = $conf['cachedir'] . '/' . $token{0} . '/' . $token . '.pwauth';
-            if(!file_exists($tfile)) {
-                msg($lang['resendpwdbadauth'], -1);
-                $INPUT->remove('pwauth');
-                return false;
-            }
-            // token is only valid for 3 days
-            if((time() - filemtime($tfile)) > (3 * 60 * 60 * 24)) {
-                msg($lang['resendpwdbadauth'], -1);
-                $INPUT->remove('pwauth');
-                @unlink($tfile);
-                return false;
-            }
-
-            $user = io_readfile($tfile);
-            $userinfo = $auth->getUserData($user, $requireGroups = false);
-            if(!$userinfo['mail']) {
-                msg($lang['resendpwdnouser'], -1);
-                return false;
-            }
-
-            if(!$conf['autopasswd']) { // we let the user choose a password
-                $pass = $INPUT->str('pass');
-
-                // password given correctly?
-                if(!$pass) return false;
-                if($pass != $INPUT->str('passchk')) {
-                    msg($lang['regbadpass'], -1);
-                    return false;
-                }
-
-                // change it
-                if(!$auth->triggerUserMod('modify', array($user, array('pass' => $pass)))) {
-                    msg($lang['proffail'], -1);
-                    return false;
-                }
-
-            } else { // autogenerate the password and send by mail
-
-                $pass = auth_pwgen($user);
-                if(!$auth->triggerUserMod('modify', array($user, array('pass' => $pass)))) {
-                    msg($lang['proffail'], -1);
-                    return false;
-                }
-
-                if(auth_sendPassword($user, $pass)) {
-                    msg($lang['resendpwdsuccess'], 1);
-                } else {
-                    msg($lang['regmailfail'], -1);
-                }
-            }
-
-            @unlink($tfile);
-            return true;
-
-        } else {
-            // we're in request phase
-
-            if(!$INPUT->post->bool('save')) return false;
-
-            if(!$INPUT->post->str('login')) {
-                msg($lang['resendpwdmissing'], -1);
-                return false;
-            } else {
-                $user = trim($auth->cleanUser($INPUT->post->str('login')));
-            }
-
-            $userinfo = $auth->getUserData($user, $requireGroups = false);
-            if(!$userinfo['mail']) {
-                msg($lang['resendpwdnouser'], -1);
-                return false;
-            }
-
-            // generate auth token
-            $token = md5(auth_randombytes(16)); // random secret
-            $tfile = $conf['cachedir'] . '/' . $token{0} . '/' . $token . '.pwauth';
-            $url = wl('', array('do' => 'resendpwd', 'pwauth' => $token), true, '&');
-
-            io_saveFile($tfile, $user);
-
-            $text = rawLocale('pwconfirm');
-            $trep = array(
-                'FULLNAME' => $userinfo['name'],
-                'LOGIN' => $user,
-                'CONFIRM' => $url
-            );
-
-            $mail = new \Mailer();
-            $mail->to($userinfo['name'] . ' <' . $userinfo['mail'] . '>');
-            $mail->subject($lang['regpwmail']);
-            $mail->setBody($text, $trep);
-            if($mail->send()) {
-                msg($lang['resendpwdconfirm'], 1);
-            } else {
-                msg($lang['regmailfail'], -1);
-            }
-            return true;
-        }
-        // never reached
-    }
-
-}
diff --git a/wiki/inc/Action/Revert.php b/wiki/inc/Action/Revert.php
deleted file mode 100644
index ca35374..0000000
--- a/wiki/inc/Action/Revert.php
+++ /dev/null
@@ -1,65 +0,0 @@
-<?php
-
-namespace dokuwiki\Action;
-
-use dokuwiki\Action\Exception\ActionAbort;
-use dokuwiki\Action\Exception\ActionException;
-
-/**
- * Class Revert
- *
- * Quick revert to an old revision
- *
- * @package dokuwiki\Action
- */
-class Revert extends AbstractAction {
-
-    /** @inheritdoc */
-    public function minimumPermission() {
-        global $INFO;
-        if($INFO['ismanager']) {
-            return AUTH_EDIT;
-        } else {
-            return AUTH_ADMIN;
-        }
-    }
-
-    /**
-     *
-     * @inheritdoc
-     * @throws ActionAbort
-     * @throws ActionException
-     * @todo check for writability of the current page ($INFO might do it wrong and check the attic version)
-     */
-    public function preProcess() {
-        if(!checkSecurityToken()) throw new ActionException();
-
-        global $ID;
-        global $REV;
-        global $lang;
-
-        // when no revision is given, delete current one
-        // FIXME this feature is not exposed in the GUI currently
-        $text = '';
-        $sum = $lang['deleted'];
-        if($REV) {
-            $text = rawWiki($ID, $REV);
-            if(!$text) throw new ActionException(); //something went wrong
-            $sum = sprintf($lang['restored'], dformat($REV));
-        }
-
-        // spam check
-        if(checkwordblock($text)) {
-            msg($lang['wordblock'], -1);
-            throw new ActionException('edit');
-        }
-
-        saveWikiText($ID, $text, $sum, false);
-        msg($sum, 1);
-        $REV = '';
-
-        // continue with draftdel -> redirect -> show
-        throw new ActionAbort('draftdel');
-    }
-
-}
diff --git a/wiki/inc/Action/Revisions.php b/wiki/inc/Action/Revisions.php
deleted file mode 100644
index b8db531..0000000
--- a/wiki/inc/Action/Revisions.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-
-namespace dokuwiki\Action;
-
-/**
- * Class Revisions
- *
- * Show the list of old revisions of the current page
- *
- * @package dokuwiki\Action
- */
-class Revisions extends AbstractAction {
-
-    /** @inheritdoc */
-    public function minimumPermission() {
-        return AUTH_READ;
-    }
-
-    /** @inheritdoc */
-    public function tplContent() {
-        global $INPUT;
-        html_revisions($INPUT->int('first'));
-    }
-}
diff --git a/wiki/inc/Action/Save.php b/wiki/inc/Action/Save.php
deleted file mode 100644
index 0b24729..0000000
--- a/wiki/inc/Action/Save.php
+++ /dev/null
@@ -1,60 +0,0 @@
-<?php
-
-namespace dokuwiki\Action;
-
-use dokuwiki\Action\Exception\ActionAbort;
-use dokuwiki\Action\Exception\ActionException;
-
-/**
- * Class Save
- *
- * Save at the end of an edit session
- *
- * @package dokuwiki\Action
- */
-class Save extends AbstractAction {
-
-    /** @inheritdoc */
-    public function minimumPermission() {
-        global $INFO;
-        if($INFO['exists']) {
-            return AUTH_EDIT;
-        } else {
-            return AUTH_CREATE;
-        }
-    }
-
-    /** @inheritdoc */
-    public function preProcess() {
-        if(!checkSecurityToken()) throw new ActionException('preview');
-
-        global $ID;
-        global $DATE;
-        global $PRE;
-        global $TEXT;
-        global $SUF;
-        global $SUM;
-        global $lang;
-        global $INFO;
-        global $INPUT;
-
-        //spam check
-        if(checkwordblock()) {
-            msg($lang['wordblock'], -1);
-            throw new ActionException('edit');
-        }
-        //conflict check
-        if($DATE != 0 && $INFO['meta']['date']['modified'] > $DATE) {
-            throw new ActionException('conflict');
-        }
-
-        //save it
-        saveWikiText($ID, con($PRE, $TEXT, $SUF, true), $SUM, $INPUT->bool('minor')); //use pretty mode for con
-        //unlock it
-        unlock($ID);
-
-        // continue with draftdel -> redirect -> show
-        throw new ActionAbort('draftdel');
-    }
-
-}
diff --git a/wiki/inc/Action/Search.php b/wiki/inc/Action/Search.php
deleted file mode 100644
index 382fc47..0000000
--- a/wiki/inc/Action/Search.php
+++ /dev/null
@@ -1,135 +0,0 @@
-<?php
-
-namespace dokuwiki\Action;
-
-use dokuwiki\Action\Exception\ActionAbort;
-
-/**
- * Class Search
- *
- * Search for pages and content
- *
- * @package dokuwiki\Action
- */
-class Search extends AbstractAction {
-
-    protected $pageLookupResults = array();
-    protected $fullTextResults = array();
-    protected $highlight = array();
-
-    /** @inheritdoc */
-    public function minimumPermission() {
-        return AUTH_NONE;
-    }
-
-    /**
-     * we only search if a search word was given
-     *
-     * @inheritdoc
-     */
-    public function checkPreconditions() {
-        parent::checkPreconditions();
-    }
-
-    public function preProcess()
-    {
-        global $QUERY, $ID, $conf, $INPUT;
-        $s = cleanID($QUERY);
-
-        if ($ID !== $conf['start'] && !$INPUT->has('q')) {
-            parse_str($INPUT->server->str('QUERY_STRING'), $urlParts);
-            $urlParts['q'] = $urlParts['id'];
-            $urlParts['id'] = $conf['start'];
-            $url = DOKU_URL . DOKU_SCRIPT . '?' . http_build_query($urlParts, null, '&');
-            send_redirect($url);
-        }
-
-        if ($s === '') throw new ActionAbort();
-        $this->adjustGlobalQuery();
-    }
-
-    /** @inheritdoc */
-    public function tplContent()
-    {
-        $this->execute();
-
-        $search = new \dokuwiki\Ui\Search($this->pageLookupResults, $this->fullTextResults, $this->highlight);
-        $search->show();
-    }
-
-
-    /**
-     * run the search
-     */
-    protected function execute()
-    {
-        global $INPUT, $QUERY;
-        $after = $INPUT->str('min');
-        $before = $INPUT->str('max');
-        $this->pageLookupResults = ft_pageLookup($QUERY, true, useHeading('navigation'), $after, $before);
-        $this->fullTextResults = ft_pageSearch($QUERY, $highlight, $INPUT->str('srt'), $after, $before);
-        $this->highlight = $highlight;
-    }
-
-    /**
-     * Adjust the global query accordingly to the config search_nslimit and search_fragment
-     *
-     * This will only do something if the search didn't originate from the form on the searchpage itself
-     */
-    protected function adjustGlobalQuery()
-    {
-        global $conf, $INPUT, $QUERY, $ID;
-
-        if ($INPUT->bool('sf')) {
-            return;
-        }
-
-        $Indexer = idx_get_indexer();
-        $parsedQuery = ft_queryParser($Indexer, $QUERY);
-
-        if (empty($parsedQuery['ns']) && empty($parsedQuery['notns'])) {
-            if ($conf['search_nslimit'] > 0) {
-                if (getNS($ID) !== false) {
-                    $nsParts = explode(':', getNS($ID));
-                    $ns = implode(':', array_slice($nsParts, 0, $conf['search_nslimit']));
-                    $QUERY .= " @$ns";
-                }
-            }
-        }
-
-        if ($conf['search_fragment'] !== 'exact') {
-            if (empty(array_diff($parsedQuery['words'], $parsedQuery['and']))) {
-                if (strpos($QUERY, '*') === false) {
-                    $queryParts = explode(' ', $QUERY);
-                    $queryParts = array_map(function ($part) {
-                        if (strpos($part, '@') === 0) {
-                            return $part;
-                        }
-                        if (strpos($part, 'ns:') === 0) {
-                            return $part;
-                        }
-                        if (strpos($part, '^') === 0) {
-                            return $part;
-                        }
-                        if (strpos($part, '-ns:') === 0) {
-                            return $part;
-                        }
-
-                        global $conf;
-
-                        if ($conf['search_fragment'] === 'starts_with') {
-                            return $part . '*';
-                        }
-                        if ($conf['search_fragment'] === 'ends_with') {
-                            return '*' . $part;
-                        }
-
-                        return '*' . $part . '*';
-
-                    }, $queryParts);
-                    $QUERY = implode(' ', $queryParts);
-                }
-            }
-        }
-    }
-}
diff --git a/wiki/inc/Action/Show.php b/wiki/inc/Action/Show.php
deleted file mode 100644
index a5cb534..0000000
--- a/wiki/inc/Action/Show.php
+++ /dev/null
@@ -1,36 +0,0 @@
-<?php
-/**
- * Created by IntelliJ IDEA.
- * User: andi
- * Date: 2/10/17
- * Time: 4:32 PM
- */
-
-namespace dokuwiki\Action;
-
-/**
- * Class Show
- *
- * The default action of showing a page
- *
- * @package dokuwiki\Action
- */
-class Show extends AbstractAction {
-
-    /** @inheritdoc */
-    public function minimumPermission() {
-        return AUTH_READ;
-    }
-
-    /** @inheritdoc */
-    public function preProcess() {
-        global $ID;
-        unlock($ID);
-    }
-
-    /** @inheritdoc */
-    public function tplContent() {
-        html_show();
-    }
-
-}
diff --git a/wiki/inc/Action/Sitemap.php b/wiki/inc/Action/Sitemap.php
deleted file mode 100644
index 025c515..0000000
--- a/wiki/inc/Action/Sitemap.php
+++ /dev/null
@@ -1,65 +0,0 @@
-<?php
-
-namespace dokuwiki\Action;
-
-use dokuwiki\Action\Exception\FatalException;
-
-/**
- * Class Sitemap
- *
- * Generate an XML sitemap for search engines. Do not confuse with Index
- *
- * @package dokuwiki\Action
- */
-class Sitemap extends AbstractAction {
-
-    /** @inheritdoc */
-    public function minimumPermission() {
-        return AUTH_NONE;
-    }
-
-    /**
-     * Handle sitemap delivery
-     *
-     * @author Michael Hamann <michael@content-space.de>
-     * @throws FatalException
-     * @inheritdoc
-     */
-    public function preProcess() {
-        global $conf;
-
-        if($conf['sitemap'] < 1 || !is_numeric($conf['sitemap'])) {
-            throw new FatalException(404, 'Sitemap generation is disabled');
-        }
-
-        $sitemap = \Sitemapper::getFilePath();
-        if(\Sitemapper::sitemapIsCompressed()) {
-            $mime = 'application/x-gzip';
-        } else {
-            $mime = 'application/xml; charset=utf-8';
-        }
-
-        // Check if sitemap file exists, otherwise create it
-        if(!is_readable($sitemap)) {
-            \Sitemapper::generate();
-        }
-
-        if(is_readable($sitemap)) {
-            // Send headers
-            header('Content-Type: ' . $mime);
-            header('Content-Disposition: attachment; filename=' . utf8_basename($sitemap));
-
-            http_conditionalRequest(filemtime($sitemap));
-
-            // Send file
-            //use x-sendfile header to pass the delivery to compatible webservers
-            http_sendfile($sitemap);
-
-            readfile($sitemap);
-            exit;
-        }
-
-        throw new FatalException(500, 'Could not read the sitemap file - bad permissions?');
-    }
-
-}
diff --git a/wiki/inc/Action/Source.php b/wiki/inc/Action/Source.php
deleted file mode 100644
index 9b03fe9..0000000
--- a/wiki/inc/Action/Source.php
+++ /dev/null
@@ -1,36 +0,0 @@
-<?php
-
-namespace dokuwiki\Action;
-
-/**
- * Class Source
- *
- * Show the source of a page
- *
- * @package dokuwiki\Action
- */
-class Source extends AbstractAction {
-
-    /** @inheritdoc */
-    public function minimumPermission() {
-        return AUTH_READ;
-    }
-
-    /** @inheritdoc */
-    public function preProcess() {
-        global $TEXT;
-        global $INFO;
-        global $ID;
-        global $REV;
-
-        if($INFO['exists']) {
-            $TEXT = rawWiki($ID, $REV);
-        }
-    }
-
-    /** @inheritdoc */
-    public function tplContent() {
-        html_edit();
-    }
-
-}
diff --git a/wiki/inc/Action/Subscribe.php b/wiki/inc/Action/Subscribe.php
deleted file mode 100644
index c165710..0000000
--- a/wiki/inc/Action/Subscribe.php
+++ /dev/null
@@ -1,166 +0,0 @@
-<?php
-
-namespace dokuwiki\Action;
-
-use dokuwiki\Action\Exception\ActionAbort;
-use dokuwiki\Action\Exception\ActionDisabledException;
-
-/**
- * Class Subscribe
- *
- * E-Mail subscription handling
- *
- * @package dokuwiki\Action
- */
-class Subscribe extends AbstractUserAction {
-
-    /** @inheritdoc */
-    public function minimumPermission() {
-        return AUTH_READ;
-    }
-
-    /** @inheritdoc */
-    public function checkPreconditions() {
-        parent::checkPreconditions();
-
-        global $conf;
-        if(isset($conf['subscribers']) && !$conf['subscribers']) throw new ActionDisabledException();
-    }
-
-    /** @inheritdoc */
-    public function preProcess() {
-        try {
-            $this->handleSubscribeData();
-        } catch(ActionAbort $e) {
-            throw $e;
-        } catch(\Exception $e) {
-            msg($e->getMessage(), -1);
-        }
-    }
-
-    /** @inheritdoc */
-    public function tplContent() {
-        tpl_subscribe();
-    }
-
-    /**
-     * Handle page 'subscribe'
-     *
-     * @author Adrian Lang <lang@cosmocode.de>
-     * @throws \Exception if (un)subscribing fails
-     * @throws ActionAbort when (un)subscribing worked
-     */
-    protected function handleSubscribeData() {
-        global $lang;
-        global $INFO;
-        global $INPUT;
-
-        // get and preprocess data.
-        $params = array();
-        foreach(array('target', 'style', 'action') as $param) {
-            if($INPUT->has("sub_$param")) {
-                $params[$param] = $INPUT->str("sub_$param");
-            }
-        }
-
-        // any action given? if not just return and show the subscription page
-        if(empty($params['action']) || !checkSecurityToken()) return;
-
-        // Handle POST data, may throw exception.
-        trigger_event('ACTION_HANDLE_SUBSCRIBE', $params, array($this, 'handlePostData'));
-
-        $target = $params['target'];
-        $style = $params['style'];
-        $action = $params['action'];
-
-        // Perform action.
-        $sub = new \Subscription();
-        if($action == 'unsubscribe') {
-            $ok = $sub->remove($target, $INPUT->server->str('REMOTE_USER'), $style);
-        } else {
-            $ok = $sub->add($target, $INPUT->server->str('REMOTE_USER'), $style);
-        }
-
-        if($ok) {
-            msg(
-                sprintf(
-                    $lang["subscr_{$action}_success"], hsc($INFO['userinfo']['name']),
-                    prettyprint_id($target)
-                ), 1
-            );
-            throw new ActionAbort('redirect');
-        } else {
-            throw new \Exception(
-                sprintf(
-                    $lang["subscr_{$action}_error"],
-                    hsc($INFO['userinfo']['name']),
-                    prettyprint_id($target)
-                )
-            );
-        }
-    }
-
-    /**
-     * Validate POST data
-     *
-     * Validates POST data for a subscribe or unsubscribe request. This is the
-     * default action for the event ACTION_HANDLE_SUBSCRIBE.
-     *
-     * @author Adrian Lang <lang@cosmocode.de>
-     *
-     * @param array &$params the parameters: target, style and action
-     * @throws \Exception
-     */
-    public function handlePostData(&$params) {
-        global $INFO;
-        global $lang;
-        global $INPUT;
-
-        // Get and validate parameters.
-        if(!isset($params['target'])) {
-            throw new \Exception('no subscription target given');
-        }
-        $target = $params['target'];
-        $valid_styles = array('every', 'digest');
-        if(substr($target, -1, 1) === ':') {
-            // Allow “list†subscribe style since the target is a namespace.
-            $valid_styles[] = 'list';
-        }
-        $style = valid_input_set(
-            'style', $valid_styles, $params,
-            'invalid subscription style given'
-        );
-        $action = valid_input_set(
-            'action', array('subscribe', 'unsubscribe'),
-            $params, 'invalid subscription action given'
-        );
-
-        // Check other conditions.
-        if($action === 'subscribe') {
-            if($INFO['userinfo']['mail'] === '') {
-                throw new \Exception($lang['subscr_subscribe_noaddress']);
-            }
-        } elseif($action === 'unsubscribe') {
-            $is = false;
-            foreach($INFO['subscribed'] as $subscr) {
-                if($subscr['target'] === $target) {
-                    $is = true;
-                }
-            }
-            if($is === false) {
-                throw new \Exception(
-                    sprintf(
-                        $lang['subscr_not_subscribed'],
-                        $INPUT->server->str('REMOTE_USER'),
-                        prettyprint_id($target)
-                    )
-                );
-            }
-            // subscription_set deletes a subscription if style = null.
-            $style = null;
-        }
-
-        $params = compact('target', 'style', 'action');
-    }
-
-}
diff --git a/wiki/inc/ActionRouter.php b/wiki/inc/ActionRouter.php
deleted file mode 100644
index edc45cf..0000000
--- a/wiki/inc/ActionRouter.php
+++ /dev/null
@@ -1,228 +0,0 @@
-<?php
-
-namespace dokuwiki;
-
-use dokuwiki\Action\AbstractAction;
-use dokuwiki\Action\Exception\ActionDisabledException;
-use dokuwiki\Action\Exception\ActionException;
-use dokuwiki\Action\Exception\FatalException;
-use dokuwiki\Action\Exception\NoActionException;
-use dokuwiki\Action\Plugin;
-
-/**
- * Class ActionRouter
- * @package dokuwiki
- */
-class ActionRouter {
-
-    /** @var  AbstractAction */
-    protected $action;
-
-    /** @var  ActionRouter */
-    protected static $instance = null;
-
-    /** @var int transition counter */
-    protected $transitions = 0;
-
-    /** maximum loop */
-    const MAX_TRANSITIONS = 5;
-
-    /** @var string[] the actions disabled in the configuration */
-    protected $disabled;
-
-    /**
-     * ActionRouter constructor. Singleton, thus protected!
-     *
-     * Sets up the correct action based on the $ACT global. Writes back
-     * the selected action to $ACT
-     */
-    protected function __construct() {
-        global $ACT;
-        global $conf;
-
-        $this->disabled = explode(',', $conf['disableactions']);
-        $this->disabled = array_map('trim', $this->disabled);
-        $this->transitions = 0;
-
-        $ACT = act_clean($ACT);
-        $this->setupAction($ACT);
-        $ACT = $this->action->getActionName();
-    }
-
-    /**
-     * Get the singleton instance
-     *
-     * @param bool $reinit
-     * @return ActionRouter
-     */
-    public static function getInstance($reinit = false) {
-        if((self::$instance === null) || $reinit) {
-            self::$instance = new ActionRouter();
-        }
-        return self::$instance;
-    }
-
-    /**
-     * Setup the given action
-     *
-     * Instantiates the right class, runs permission checks and pre-processing and
-     * sets $action
-     *
-     * @param string $actionname this is passed as a reference to $ACT, for plugin backward compatibility
-     * @triggers ACTION_ACT_PREPROCESS
-     */
-    protected function setupAction(&$actionname) {
-        $presetup = $actionname;
-
-        try {
-            // give plugins an opportunity to process the actionname
-            $evt = new \Doku_Event('ACTION_ACT_PREPROCESS', $actionname);
-            if ($evt->advise_before()) {
-                $this->action = $this->loadAction($actionname);
-                $this->checkAction($this->action);
-                $this->action->preProcess();
-            } else {
-                // event said the action should be kept, assume action plugin will handle it later
-                $this->action = new Plugin($actionname);
-            }
-            $evt->advise_after();
-
-        } catch(ActionException $e) {
-            // we should have gotten a new action
-            $actionname = $e->getNewAction();
-
-            // this one should trigger a user message
-            if(is_a($e, ActionDisabledException::class)) {
-                msg('Action disabled: ' . hsc($presetup), -1);
-            }
-
-            // some actions may request the display of a message
-            if($e->displayToUser()) {
-                msg(hsc($e->getMessage()), -1);
-            }
-
-            // do setup for new action
-            $this->transitionAction($presetup, $actionname);
-
-        } catch(NoActionException $e) {
-            msg('Action unknown: ' . hsc($actionname), -1);
-            $actionname = 'show';
-            $this->transitionAction($presetup, $actionname);
-        } catch(\Exception $e) {
-            $this->handleFatalException($e);
-        }
-    }
-
-    /**
-     * Transitions from one action to another
-     *
-     * Basically just calls setupAction() again but does some checks before.
-     *
-     * @param string $from current action name
-     * @param string $to new action name
-     * @param null|ActionException $e any previous exception that caused the transition
-     */
-    protected function transitionAction($from, $to, $e = null) {
-        $this->transitions++;
-
-        // no infinite recursion
-        if($from == $to) {
-            $this->handleFatalException(new FatalException('Infinite loop in actions', 500, $e));
-        }
-
-        // larger loops will be caught here
-        if($this->transitions >= self::MAX_TRANSITIONS) {
-            $this->handleFatalException(new FatalException('Maximum action transitions reached', 500, $e));
-        }
-
-        // do the recursion
-        $this->setupAction($to);
-    }
-
-    /**
-     * Aborts all processing with a message
-     *
-     * When a FataException instanc is passed, the code is treated as Status code
-     *
-     * @param \Exception|FatalException $e
-     * @throws FatalException during unit testing
-     */
-    protected function handleFatalException(\Exception $e) {
-        if(is_a($e, FatalException::class)) {
-            http_status($e->getCode());
-        } else {
-            http_status(500);
-        }
-        if(defined('DOKU_UNITTEST')) {
-            throw $e;
-        }
-        $msg = 'Something unforseen has happened: ' . $e->getMessage();
-        nice_die(hsc($msg));
-    }
-
-    /**
-     * Load the given action
-     *
-     * This translates the given name to a class name by uppercasing the first letter.
-     * Underscores translate to camelcase names. For actions with underscores, the different
-     * parts are removed beginning from the end until a matching class is found. The instatiated
-     * Action will always have the full original action set as Name
-     *
-     * Example: 'export_raw' -> ExportRaw then 'export' -> 'Export'
-     *
-     * @param $actionname
-     * @return AbstractAction
-     * @throws NoActionException
-     */
-    public function loadAction($actionname) {
-        $actionname = strtolower($actionname); // FIXME is this needed here? should we run a cleanup somewhere else?
-        $parts = explode('_', $actionname);
-        while(!empty($parts)) {
-            $load = join('_', $parts);
-            $class = 'dokuwiki\\Action\\' . str_replace('_', '', ucwords($load, '_'));
-            if(class_exists($class)) {
-                return new $class($actionname);
-            }
-            array_pop($parts);
-        }
-
-        throw new NoActionException();
-    }
-
-    /**
-     * Execute all the checks to see if this action can be executed
-     *
-     * @param AbstractAction $action
-     * @throws ActionDisabledException
-     * @throws ActionException
-     */
-    public function checkAction(AbstractAction $action) {
-        global $INFO;
-        global $ID;
-
-        if(in_array($action->getActionName(), $this->disabled)) {
-            throw new ActionDisabledException();
-        }
-
-        $action->checkPreconditions();
-
-        if(isset($INFO)) {
-            $perm = $INFO['perm'];
-        } else {
-            $perm = auth_quickaclcheck($ID);
-        }
-
-        if($perm < $action->minimumPermission()) {
-            throw new ActionException('denied');
-        }
-    }
-
-    /**
-     * Returns the action handling the current request
-     *
-     * @return AbstractAction
-     */
-    public function getAction() {
-        return $this->action;
-    }
-}
diff --git a/wiki/inc/Ajax.php b/wiki/inc/Ajax.php
deleted file mode 100644
index 191d8f8..0000000
--- a/wiki/inc/Ajax.php
+++ /dev/null
@@ -1,446 +0,0 @@
-<?php
-
-namespace dokuwiki;
-
-/**
- * Manage all builtin AJAX calls
- *
- * @todo The calls should be refactored out to their own proper classes
- * @package dokuwiki
- */
-class Ajax {
-
-    /**
-     * Execute the given call
-     *
-     * @param string $call name of the ajax call
-     */
-    public function __construct($call) {
-        $callfn = 'call_' . $call;
-        if(method_exists($this, $callfn)) {
-            $this->$callfn();
-        } else {
-            $evt = new \Doku_Event('AJAX_CALL_UNKNOWN', $call);
-            if($evt->advise_before()) {
-                print "AJAX call '" . hsc($call) . "' unknown!\n";
-            } else {
-                $evt->advise_after();
-                unset($evt);
-            }
-        }
-    }
-
-    /**
-     * Searches for matching pagenames
-     *
-     * @author Andreas Gohr <andi@splitbrain.org>
-     */
-    protected function call_qsearch() {
-        global $lang;
-        global $INPUT;
-
-        $maxnumbersuggestions = 50;
-
-        $query = $INPUT->post->str('q');
-        if(empty($query)) $query = $INPUT->get->str('q');
-        if(empty($query)) return;
-
-        $query = urldecode($query);
-
-        $data = ft_pageLookup($query, true, useHeading('navigation'));
-
-        if(!count($data)) return;
-
-        print '<strong>' . $lang['quickhits'] . '</strong>';
-        print '<ul>';
-        $counter = 0;
-        foreach($data as $id => $title) {
-            if(useHeading('navigation')) {
-                $name = $title;
-            } else {
-                $ns = getNS($id);
-                if($ns) {
-                    $name = noNS($id) . ' (' . $ns . ')';
-                } else {
-                    $name = $id;
-                }
-            }
-            echo '<li>' . html_wikilink(':' . $id, $name) . '</li>';
-
-            $counter++;
-            if($counter > $maxnumbersuggestions) {
-                echo '<li>...</li>';
-                break;
-            }
-        }
-        print '</ul>';
-    }
-
-    /**
-     * Support OpenSearch suggestions
-     *
-     * @link   http://www.opensearch.org/Specifications/OpenSearch/Extensions/Suggestions/1.0
-     * @author Mike Frysinger <vapier@gentoo.org>
-     */
-    protected function call_suggestions() {
-        global $INPUT;
-
-        $query = cleanID($INPUT->post->str('q'));
-        if(empty($query)) $query = cleanID($INPUT->get->str('q'));
-        if(empty($query)) return;
-
-        $data = ft_pageLookup($query);
-        if(!count($data)) return;
-        $data = array_keys($data);
-
-        // limit results to 15 hits
-        $data = array_slice($data, 0, 15);
-        $data = array_map('trim', $data);
-        $data = array_map('noNS', $data);
-        $data = array_unique($data);
-        sort($data);
-
-        /* now construct a json */
-        $suggestions = array(
-            $query,  // the original query
-            $data,   // some suggestions
-            array(), // no description
-            array()  // no urls
-        );
-        $json = new \JSON();
-
-        header('Content-Type: application/x-suggestions+json');
-        print $json->encode($suggestions);
-    }
-
-    /**
-     * Refresh a page lock and save draft
-     *
-     * Andreas Gohr <andi@splitbrain.org>
-     */
-    protected function call_lock() {
-        global $conf;
-        global $lang;
-        global $ID;
-        global $INFO;
-        global $INPUT;
-
-        $ID = cleanID($INPUT->post->str('id'));
-        if(empty($ID)) return;
-
-        $INFO = pageinfo();
-
-        if(!$INFO['writable']) {
-            echo 'Permission denied';
-            return;
-        }
-
-        if(!checklock($ID)) {
-            lock($ID);
-            echo 1;
-        }
-
-        if($conf['usedraft'] && $INPUT->post->str('wikitext')) {
-            $client = $_SERVER['REMOTE_USER'];
-            if(!$client) $client = clientIP(true);
-
-            $draft = array(
-                'id' => $ID,
-                'prefix' => substr($INPUT->post->str('prefix'), 0, -1),
-                'text' => $INPUT->post->str('wikitext'),
-                'suffix' => $INPUT->post->str('suffix'),
-                'date' => $INPUT->post->int('date'),
-                'client' => $client,
-            );
-            $cname = getCacheName($draft['client'] . $ID, '.draft');
-            if(io_saveFile($cname, serialize($draft))) {
-                echo $lang['draftdate'] . ' ' . dformat();
-            }
-        }
-
-    }
-
-    /**
-     * Delete a draft
-     *
-     * @author Andreas Gohr <andi@splitbrain.org>
-     */
-    protected function call_draftdel() {
-        global $INPUT;
-        $id = cleanID($INPUT->str('id'));
-        if(empty($id)) return;
-
-        $client = $_SERVER['REMOTE_USER'];
-        if(!$client) $client = clientIP(true);
-
-        $cname = getCacheName($client . $id, '.draft');
-        @unlink($cname);
-    }
-
-    /**
-     * Return subnamespaces for the Mediamanager
-     *
-     * @author Andreas Gohr <andi@splitbrain.org>
-     */
-    protected function call_medians() {
-        global $conf;
-        global $INPUT;
-
-        // wanted namespace
-        $ns = cleanID($INPUT->post->str('ns'));
-        $dir = utf8_encodeFN(str_replace(':', '/', $ns));
-
-        $lvl = count(explode(':', $ns));
-
-        $data = array();
-        search($data, $conf['mediadir'], 'search_index', array('nofiles' => true), $dir);
-        foreach(array_keys($data) as $item) {
-            $data[$item]['level'] = $lvl + 1;
-        }
-        echo html_buildlist($data, 'idx', 'media_nstree_item', 'media_nstree_li');
-    }
-
-    /**
-     * Return list of files for the Mediamanager
-     *
-     * @author Andreas Gohr <andi@splitbrain.org>
-     */
-    protected function call_medialist() {
-        global $NS;
-        global $INPUT;
-
-        $NS = cleanID($INPUT->post->str('ns'));
-        $sort = $INPUT->post->bool('recent') ? 'date' : 'natural';
-        if($INPUT->post->str('do') == 'media') {
-            tpl_mediaFileList();
-        } else {
-            tpl_mediaContent(true, $sort);
-        }
-    }
-
-    /**
-     * Return the content of the right column
-     * (image details) for the Mediamanager
-     *
-     * @author Kate Arzamastseva <pshns@ukr.net>
-     */
-    protected function call_mediadetails() {
-        global $IMG, $JUMPTO, $REV, $fullscreen, $INPUT;
-        $fullscreen = true;
-        require_once(DOKU_INC . 'lib/exe/mediamanager.php');
-
-        $image = '';
-        if($INPUT->has('image')) $image = cleanID($INPUT->str('image'));
-        if(isset($IMG)) $image = $IMG;
-        if(isset($JUMPTO)) $image = $JUMPTO;
-        $rev = false;
-        if(isset($REV) && !$JUMPTO) $rev = $REV;
-
-        html_msgarea();
-        tpl_mediaFileDetails($image, $rev);
-    }
-
-    /**
-     * Returns image diff representation for mediamanager
-     *
-     * @author Kate Arzamastseva <pshns@ukr.net>
-     */
-    protected function call_mediadiff() {
-        global $NS;
-        global $INPUT;
-
-        $image = '';
-        if($INPUT->has('image')) $image = cleanID($INPUT->str('image'));
-        $NS = getNS($image);
-        $auth = auth_quickaclcheck("$NS:*");
-        media_diff($image, $NS, $auth, true);
-    }
-
-    /**
-     * Manages file uploads
-     *
-     * @author Kate Arzamastseva <pshns@ukr.net>
-     */
-    protected function call_mediaupload() {
-        global $NS, $MSG, $INPUT;
-
-        $id = '';
-        if($_FILES['qqfile']['tmp_name']) {
-            $id = $INPUT->post->str('mediaid', $_FILES['qqfile']['name']);
-        } elseif($INPUT->get->has('qqfile')) {
-            $id = $INPUT->get->str('qqfile');
-        }
-
-        $id = cleanID($id);
-
-        $NS = $INPUT->str('ns');
-        $ns = $NS . ':' . getNS($id);
-
-        $AUTH = auth_quickaclcheck("$ns:*");
-        if($AUTH >= AUTH_UPLOAD) {
-            io_createNamespace("$ns:xxx", 'media');
-        }
-
-        if($_FILES['qqfile']['error']) unset($_FILES['qqfile']);
-
-        $res = false;
-        if($_FILES['qqfile']['tmp_name']) $res = media_upload($NS, $AUTH, $_FILES['qqfile']);
-        if($INPUT->get->has('qqfile')) $res = media_upload_xhr($NS, $AUTH);
-
-        if($res) {
-            $result = array(
-                'success' => true,
-                'link' => media_managerURL(array('ns' => $ns, 'image' => $NS . ':' . $id), '&'),
-                'id' => $NS . ':' . $id,
-                'ns' => $NS
-            );
-        } else {
-            $error = '';
-            if(isset($MSG)) {
-                foreach($MSG as $msg) {
-                    $error .= $msg['msg'];
-                }
-            }
-            $result = array(
-                'error' => $error,
-                'ns' => $NS
-            );
-        }
-        $json = new \JSON;
-        header('Content-Type: application/json');
-        echo $json->encode($result);
-    }
-
-    /**
-     * Return sub index for index view
-     *
-     * @author Andreas Gohr <andi@splitbrain.org>
-     */
-    protected function call_index() {
-        global $conf;
-        global $INPUT;
-
-        // wanted namespace
-        $ns = cleanID($INPUT->post->str('idx'));
-        $dir = utf8_encodeFN(str_replace(':', '/', $ns));
-
-        $lvl = count(explode(':', $ns));
-
-        $data = array();
-        search($data, $conf['datadir'], 'search_index', array('ns' => $ns), $dir);
-        foreach(array_keys($data) as $item) {
-            $data[$item]['level'] = $lvl + 1;
-        }
-        echo html_buildlist($data, 'idx', 'html_list_index', 'html_li_index');
-    }
-
-    /**
-     * List matching namespaces and pages for the link wizard
-     *
-     * @author Andreas Gohr <gohr@cosmocode.de>
-     */
-    protected function call_linkwiz() {
-        global $conf;
-        global $lang;
-        global $INPUT;
-
-        $q = ltrim(trim($INPUT->post->str('q')), ':');
-        $id = noNS($q);
-        $ns = getNS($q);
-
-        $ns = cleanID($ns);
-        $id = cleanID($id);
-
-        $nsd = utf8_encodeFN(str_replace(':', '/', $ns));
-
-        $data = array();
-        if($q && !$ns) {
-
-            // use index to lookup matching pages
-            $pages = ft_pageLookup($id, true);
-
-            // result contains matches in pages and namespaces
-            // we now extract the matching namespaces to show
-            // them seperately
-            $dirs = array();
-
-            foreach($pages as $pid => $title) {
-                if(strpos(noNS($pid), $id) === false) {
-                    // match was in the namespace
-                    $dirs[getNS($pid)] = 1; // assoc array avoids dupes
-                } else {
-                    // it is a matching page, add it to the result
-                    $data[] = array(
-                        'id' => $pid,
-                        'title' => $title,
-                        'type' => 'f',
-                    );
-                }
-                unset($pages[$pid]);
-            }
-            foreach($dirs as $dir => $junk) {
-                $data[] = array(
-                    'id' => $dir,
-                    'type' => 'd',
-                );
-            }
-
-        } else {
-
-            $opts = array(
-                'depth' => 1,
-                'listfiles' => true,
-                'listdirs' => true,
-                'pagesonly' => true,
-                'firsthead' => true,
-                'sneakyacl' => $conf['sneaky_index'],
-            );
-            if($id) $opts['filematch'] = '^.*\/' . $id;
-            if($id) $opts['dirmatch'] = '^.*\/' . $id;
-            search($data, $conf['datadir'], 'search_universal', $opts, $nsd);
-
-            // add back to upper
-            if($ns) {
-                array_unshift(
-                    $data, array(
-                             'id' => getNS($ns),
-                             'type' => 'u',
-                         )
-                );
-            }
-        }
-
-        // fixme sort results in a useful way ?
-
-        if(!count($data)) {
-            echo $lang['nothingfound'];
-            exit;
-        }
-
-        // output the found data
-        $even = 1;
-        foreach($data as $item) {
-            $even *= -1; //zebra
-
-            if(($item['type'] == 'd' || $item['type'] == 'u') && $item['id']) $item['id'] .= ':';
-            $link = wl($item['id']);
-
-            echo '<div class="' . (($even > 0) ? 'even' : 'odd') . ' type_' . $item['type'] . '">';
-
-            if($item['type'] == 'u') {
-                $name = $lang['upperns'];
-            } else {
-                $name = hsc($item['id']);
-            }
-
-            echo '<a href="' . $link . '" title="' . hsc($item['id']) . '" class="wikilink1">' . $name . '</a>';
-
-            if(!blank($item['title'])) {
-                echo '<span>' . hsc($item['title']) . '</span>';
-            }
-            echo '</div>';
-        }
-
-    }
-
-}
diff --git a/wiki/inc/DifferenceEngine.php b/wiki/inc/DifferenceEngine.php
deleted file mode 100644
index 70877a4..0000000
--- a/wiki/inc/DifferenceEngine.php
+++ /dev/null
@@ -1,1544 +0,0 @@
-<?php
-/**
- * A PHP diff engine for phpwiki. (Taken from phpwiki-1.3.3)
- *
- * Additions by Axel Boldt for MediaWiki
- *
- * @copyright (C) 2000, 2001 Geoffrey T. Dairiki <dairiki@dairiki.org>
- * @license  You may copy this code freely under the conditions of the GPL.
- */
-define('USE_ASSERTS', function_exists('assert'));
-
-class _DiffOp {
-    var $type;
-    var $orig;
-    var $closing;
-
-    /**
-     * @return _DiffOp
-     */
-    function reverse() {
-        trigger_error("pure virtual", E_USER_ERROR);
-    }
-
-    function norig() {
-        return $this->orig ? count($this->orig) : 0;
-    }
-
-    function nclosing() {
-        return $this->closing ? count($this->closing) : 0;
-    }
-}
-
-class _DiffOp_Copy extends _DiffOp {
-    var $type = 'copy';
-
-    function __construct($orig, $closing = false) {
-        if (!is_array($closing))
-            $closing = $orig;
-        $this->orig = $orig;
-        $this->closing = $closing;
-    }
-
-    function reverse() {
-        return new _DiffOp_Copy($this->closing, $this->orig);
-    }
-}
-
-class _DiffOp_Delete extends _DiffOp {
-    var $type = 'delete';
-
-    function __construct($lines) {
-        $this->orig = $lines;
-        $this->closing = false;
-    }
-
-    function reverse() {
-        return new _DiffOp_Add($this->orig);
-    }
-}
-
-class _DiffOp_Add extends _DiffOp {
-    var $type = 'add';
-
-    function __construct($lines) {
-        $this->closing = $lines;
-        $this->orig = false;
-    }
-
-    function reverse() {
-        return new _DiffOp_Delete($this->closing);
-    }
-}
-
-class _DiffOp_Change extends _DiffOp {
-    var $type = 'change';
-
-    function __construct($orig, $closing) {
-        $this->orig = $orig;
-        $this->closing = $closing;
-    }
-
-    function reverse() {
-        return new _DiffOp_Change($this->closing, $this->orig);
-    }
-}
-
-
-/**
- * Class used internally by Diff to actually compute the diffs.
- *
- * The algorithm used here is mostly lifted from the perl module
- * Algorithm::Diff (version 1.06) by Ned Konz, which is available at:
- *   http://www.perl.com/CPAN/authors/id/N/NE/NEDKONZ/Algorithm-Diff-1.06.zip
- *
- * More ideas are taken from:
- *   http://www.ics.uci.edu/~eppstein/161/960229.html
- *
- * Some ideas are (and a bit of code) are from from analyze.c, from GNU
- * diffutils-2.7, which can be found at:
- *   ftp://gnudist.gnu.org/pub/gnu/diffutils/diffutils-2.7.tar.gz
- *
- * closingly, some ideas (subdivision by NCHUNKS > 2, and some optimizations)
- * are my own.
- *
- * @author Geoffrey T. Dairiki
- * @access private
- */
-class _DiffEngine {
-
-    var $xchanged = array();
-    var $ychanged = array();
-    var $xv = array();
-    var $yv = array();
-    var $xind = array();
-    var $yind = array();
-    var $seq;
-    var $in_seq;
-    var $lcs;
-
-    /**
-     * @param array $from_lines
-     * @param array $to_lines
-     * @return _DiffOp[]
-     */
-    function diff($from_lines, $to_lines) {
-        $n_from = count($from_lines);
-        $n_to = count($to_lines);
-
-        $this->xchanged = $this->ychanged = array();
-        $this->xv = $this->yv = array();
-        $this->xind = $this->yind = array();
-        unset($this->seq);
-        unset($this->in_seq);
-        unset($this->lcs);
-
-        // Skip leading common lines.
-        for ($skip = 0; $skip < $n_from && $skip < $n_to; $skip++) {
-            if ($from_lines[$skip] != $to_lines[$skip])
-                break;
-            $this->xchanged[$skip] = $this->ychanged[$skip] = false;
-        }
-        // Skip trailing common lines.
-        $xi = $n_from;
-        $yi = $n_to;
-        for ($endskip = 0; --$xi > $skip && --$yi > $skip; $endskip++) {
-            if ($from_lines[$xi] != $to_lines[$yi])
-                break;
-            $this->xchanged[$xi] = $this->ychanged[$yi] = false;
-        }
-
-        // Ignore lines which do not exist in both files.
-        for ($xi = $skip; $xi < $n_from - $endskip; $xi++)
-            $xhash[$from_lines[$xi]] = 1;
-        for ($yi = $skip; $yi < $n_to - $endskip; $yi++) {
-            $line = $to_lines[$yi];
-            if (($this->ychanged[$yi] = empty($xhash[$line])))
-                continue;
-            $yhash[$line] = 1;
-            $this->yv[] = $line;
-            $this->yind[] = $yi;
-        }
-        for ($xi = $skip; $xi < $n_from - $endskip; $xi++) {
-            $line = $from_lines[$xi];
-            if (($this->xchanged[$xi] = empty($yhash[$line])))
-                continue;
-            $this->xv[] = $line;
-            $this->xind[] = $xi;
-        }
-
-        // Find the LCS.
-        $this->_compareseq(0, count($this->xv), 0, count($this->yv));
-
-        // Merge edits when possible
-        $this->_shift_boundaries($from_lines, $this->xchanged, $this->ychanged);
-        $this->_shift_boundaries($to_lines, $this->ychanged, $this->xchanged);
-
-        // Compute the edit operations.
-        $edits = array();
-        $xi = $yi = 0;
-        while ($xi < $n_from || $yi < $n_to) {
-            USE_ASSERTS && assert($yi < $n_to || $this->xchanged[$xi]);
-            USE_ASSERTS && assert($xi < $n_from || $this->ychanged[$yi]);
-
-            // Skip matching "snake".
-            $copy = array();
-            while ($xi < $n_from && $yi < $n_to && !$this->xchanged[$xi] && !$this->ychanged[$yi]) {
-                $copy[] = $from_lines[$xi++];
-                ++$yi;
-            }
-            if ($copy)
-                $edits[] = new _DiffOp_Copy($copy);
-
-            // Find deletes & adds.
-            $delete = array();
-            while ($xi < $n_from && $this->xchanged[$xi])
-                $delete[] = $from_lines[$xi++];
-
-            $add = array();
-            while ($yi < $n_to && $this->ychanged[$yi])
-                $add[] = $to_lines[$yi++];
-
-            if ($delete && $add)
-                $edits[] = new _DiffOp_Change($delete, $add);
-            elseif ($delete)
-                $edits[] = new _DiffOp_Delete($delete);
-            elseif ($add)
-                $edits[] = new _DiffOp_Add($add);
-        }
-        return $edits;
-    }
-
-
-    /**
-     * Divide the Largest Common Subsequence (LCS) of the sequences
-     * [XOFF, XLIM) and [YOFF, YLIM) into NCHUNKS approximately equally
-     * sized segments.
-     *
-     * Returns (LCS, PTS).  LCS is the length of the LCS. PTS is an
-     * array of NCHUNKS+1 (X, Y) indexes giving the diving points between
-     * sub sequences.  The first sub-sequence is contained in [X0, X1),
-     * [Y0, Y1), the second in [X1, X2), [Y1, Y2) and so on.  Note
-     * that (X0, Y0) == (XOFF, YOFF) and
-     * (X[NCHUNKS], Y[NCHUNKS]) == (XLIM, YLIM).
-     *
-     * This function assumes that the first lines of the specified portions
-     * 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;
-
-        if ($xlim - $xoff > $ylim - $yoff) {
-            // Things seems faster (I'm not sure I understand why)
-            // when the shortest sequence in X.
-            $flip = true;
-            list ($xoff, $xlim, $yoff, $ylim) = array($yoff, $ylim, $xoff, $xlim);
-        }
-
-        if ($flip)
-            for ($i = $ylim - 1; $i >= $yoff; $i--)
-                $ymatches[$this->xv[$i]][] = $i;
-        else
-            for ($i = $ylim - 1; $i >= $yoff; $i--)
-                $ymatches[$this->yv[$i]][] = $i;
-
-        $this->lcs = 0;
-        $this->seq[0]= $yoff - 1;
-        $this->in_seq = array();
-        $ymids[0] = array();
-
-        $numer = $xlim - $xoff + $nchunks - 1;
-        $x = $xoff;
-        for ($chunk = 0; $chunk < $nchunks; $chunk++) {
-            if ($chunk > 0)
-                for ($i = 0; $i <= $this->lcs; $i++)
-                    $ymids[$i][$chunk-1] = $this->seq[$i];
-
-            $x1 = $xoff + (int)(($numer + ($xlim-$xoff)*$chunk) / $nchunks);
-            for ( ; $x < $x1; $x++) {
-                $line = $flip ? $this->yv[$x] : $this->xv[$x];
-                if (empty($ymatches[$line]))
-                    continue;
-                $matches = $ymatches[$line];
-                $switch = false;
-                foreach ($matches as $y) {
-                    if ($switch && $y > $this->seq[$k-1]) {
-                        USE_ASSERTS && assert($y < $this->seq[$k]);
-                        // Optimization: this is a common case:
-                        //  next match is just replacing previous match.
-                        $this->in_seq[$this->seq[$k]] = false;
-                        $this->seq[$k] = $y;
-                        $this->in_seq[$y] = 1;
-                    }
-                    else if (empty($this->in_seq[$y])) {
-                        $k = $this->_lcs_pos($y);
-                        USE_ASSERTS && assert($k > 0);
-                        $ymids[$k] = $ymids[$k-1];
-                        $switch = true;
-                    }
-                }
-            }
-        }
-
-        $seps[] = $flip ? array($yoff, $xoff) : array($xoff, $yoff);
-        $ymid = $ymids[$this->lcs];
-        for ($n = 0; $n < $nchunks - 1; $n++) {
-            $x1 = $xoff + (int)(($numer + ($xlim - $xoff) * $n) / $nchunks);
-            $y1 = $ymid[$n] + 1;
-            $seps[] = $flip ? array($y1, $x1) : array($x1, $y1);
-        }
-        $seps[] = $flip ? array($ylim, $xlim) : array($xlim, $ylim);
-
-        return array($this->lcs, $seps);
-    }
-
-    function _lcs_pos($ypos) {
-        $end = $this->lcs;
-        if ($end == 0 || $ypos > $this->seq[$end]) {
-            $this->seq[++$this->lcs] = $ypos;
-            $this->in_seq[$ypos] = 1;
-            return $this->lcs;
-        }
-
-        $beg = 1;
-        while ($beg < $end) {
-            $mid = (int)(($beg + $end) / 2);
-            if ($ypos > $this->seq[$mid])
-                $beg = $mid + 1;
-            else
-                $end = $mid;
-        }
-
-        USE_ASSERTS && assert($ypos != $this->seq[$end]);
-
-        $this->in_seq[$this->seq[$end]] = false;
-        $this->seq[$end] = $ypos;
-        $this->in_seq[$ypos] = 1;
-        return $end;
-    }
-
-    /**
-     * Find LCS of two sequences.
-     *
-     * The results are recorded in the vectors $this->{x,y}changed[], by
-     * storing a 1 in the element for each line that is an insertion
-     * or deletion (ie. is not in the LCS).
-     *
-     * The subsequence of file 0 is [XOFF, XLIM) and likewise for file 1.
-     *
-     * 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.
-        while ($xoff < $xlim && $yoff < $ylim && $this->xv[$xoff] == $this->yv[$yoff]) {
-            ++$xoff;
-            ++$yoff;
-        }
-
-        // Slide up the top initial diagonal.
-        while ($xlim > $xoff && $ylim > $yoff && $this->xv[$xlim - 1] == $this->yv[$ylim - 1]) {
-            --$xlim;
-            --$ylim;
-        }
-
-        if ($xoff == $xlim || $yoff == $ylim)
-            $lcs = 0;
-        else {
-            // This is ad hoc but seems to work well.
-            //$nchunks = sqrt(min($xlim - $xoff, $ylim - $yoff) / 2.5);
-            //$nchunks = max(2,min(8,(int)$nchunks));
-            $nchunks = min(7, $xlim - $xoff, $ylim - $yoff) + 1;
-            list ($lcs, $seps)
-                = $this->_diag($xoff,$xlim,$yoff, $ylim,$nchunks);
-        }
-
-        if ($lcs == 0) {
-            // X and Y sequences have no common subsequence:
-            // mark all changed.
-            while ($yoff < $ylim)
-                $this->ychanged[$this->yind[$yoff++]] = 1;
-            while ($xoff < $xlim)
-                $this->xchanged[$this->xind[$xoff++]] = 1;
-        }
-        else {
-            // Use the partitions to split this problem into subproblems.
-            reset($seps);
-            $pt1 = $seps[0];
-            while ($pt2 = next($seps)) {
-                $this->_compareseq ($pt1[0], $pt2[0], $pt1[1], $pt2[1]);
-                $pt1 = $pt2;
-            }
-        }
-    }
-
-    /**
-     * Adjust inserts/deletes of identical lines to join changes
-     * as much as possible.
-     *
-     * We do something when a run of changed lines include a
-     * line at one end and has an excluded, identical line at the other.
-     * We are free to choose which identical line is included.
-     * `compareseq' usually chooses the one at the beginning,
-     * but usually it is cleaner to consider the following identical line
-     * 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;
-        $j = 0;
-
-        USE_ASSERTS && assert(count($lines) == count($changed));
-        $len = count($lines);
-        $other_len = count($other_changed);
-
-        while (1) {
-            /*
-             * Scan forwards to find beginning of another run of changes.
-             * Also keep track of the corresponding point in the other file.
-             *
-             * Throughout this code, $i and $j are adjusted together so that
-             * the first $i elements of $changed and the first $j elements
-             * of $other_changed both contain the same number of zeros
-             * (unchanged lines).
-             * Furthermore, $j is always kept so that $j == $other_len or
-             * $other_changed[$j] == false.
-             */
-            while ($j < $other_len && $other_changed[$j])
-                $j++;
-
-            while ($i < $len && ! $changed[$i]) {
-                USE_ASSERTS && assert($j < $other_len && ! $other_changed[$j]);
-                $i++;
-                $j++;
-                while ($j < $other_len && $other_changed[$j])
-                    $j++;
-            }
-
-            if ($i == $len)
-                break;
-
-            $start = $i;
-
-            // Find the end of this run of changes.
-            while (++$i < $len && $changed[$i])
-                continue;
-
-            do {
-                /*
-                 * Record the length of this run of changes, so that
-                 * we can later determine whether the run has grown.
-                 */
-                $runlength = $i - $start;
-
-                /*
-                 * Move the changed region back, so long as the
-                 * previous unchanged line matches the last changed one.
-                 * This merges with previous changed regions.
-                 */
-                while ($start > 0 && $lines[$start - 1] == $lines[$i - 1]) {
-                    $changed[--$start] = 1;
-                    $changed[--$i] = false;
-                    while ($start > 0 && $changed[$start - 1])
-                        $start--;
-                    USE_ASSERTS && assert($j > 0);
-                    while ($other_changed[--$j])
-                        continue;
-                    USE_ASSERTS && assert($j >= 0 && !$other_changed[$j]);
-                }
-
-                /*
-                 * Set CORRESPONDING to the end of the changed run, at the last
-                 * point where it corresponds to a changed run in the other file.
-                 * CORRESPONDING == LEN means no such point has been found.
-                 */
-                $corresponding = $j < $other_len ? $i : $len;
-
-                /*
-                 * Move the changed region forward, so long as the
-                 * first changed line matches the following unchanged one.
-                 * This merges with following changed regions.
-                 * Do this second, so that if there are no merges,
-                 * the changed region is moved forward as far as possible.
-                 */
-                while ($i < $len && $lines[$start] == $lines[$i]) {
-                    $changed[$start++] = false;
-                    $changed[$i++] = 1;
-                    while ($i < $len && $changed[$i])
-                        $i++;
-
-                    USE_ASSERTS && assert($j < $other_len && ! $other_changed[$j]);
-                    $j++;
-                    if ($j < $other_len && $other_changed[$j]) {
-                        $corresponding = $i;
-                        while ($j < $other_len && $other_changed[$j])
-                            $j++;
-                    }
-                }
-            } while ($runlength != $i - $start);
-
-            /*
-             * If possible, move the fully-merged run of changes
-             * back to a corresponding run in the other file.
-             */
-            while ($corresponding < $i) {
-                $changed[--$start] = 1;
-                $changed[--$i] = 0;
-                USE_ASSERTS && assert($j > 0);
-                while ($other_changed[--$j])
-                    continue;
-                USE_ASSERTS && assert($j >= 0 && !$other_changed[$j]);
-            }
-        }
-    }
-}
-
-/**
- * Class representing a 'diff' between two sequences of strings.
- */
-class Diff {
-
-    var $edits;
-
-    /**
-     * Constructor.
-     * Computes diff between sequences of strings.
-     *
-     * @param array $from_lines An array of strings.
-     *                          (Typically these are lines from a file.)
-     * @param array $to_lines   An array of strings.
-     */
-    function __construct($from_lines, $to_lines) {
-        $eng = new _DiffEngine;
-        $this->edits = $eng->diff($from_lines, $to_lines);
-        //$this->_check($from_lines, $to_lines);
-    }
-
-    /**
-     * Compute reversed Diff.
-     *
-     * SYNOPSIS:
-     *
-     *  $diff = new Diff($lines1, $lines2);
-     *  $rev = $diff->reverse();
-     *
-     * @return Diff  A Diff object representing the inverse of the
-     *               original diff.
-     */
-    function reverse() {
-        $rev = $this;
-        $rev->edits = array();
-        foreach ($this->edits as $edit) {
-            $rev->edits[] = $edit->reverse();
-        }
-        return $rev;
-    }
-
-    /**
-     * Check for empty diff.
-     *
-     * @return bool True iff two sequences were identical.
-     */
-    function isEmpty() {
-        foreach ($this->edits as $edit) {
-            if ($edit->type != 'copy')
-                return false;
-        }
-        return true;
-    }
-
-    /**
-     * Compute the length of the Longest Common Subsequence (LCS).
-     *
-     * This is mostly for diagnostic purposed.
-     *
-     * @return int The length of the LCS.
-     */
-    function lcs() {
-        $lcs = 0;
-        foreach ($this->edits as $edit) {
-            if ($edit->type == 'copy')
-                $lcs += count($edit->orig);
-        }
-        return $lcs;
-    }
-
-    /**
-     * Get the original set of lines.
-     *
-     * This reconstructs the $from_lines parameter passed to the
-     * constructor.
-     *
-     * @return array The original sequence of strings.
-     */
-    function orig() {
-        $lines = array();
-
-        foreach ($this->edits as $edit) {
-            if ($edit->orig)
-                array_splice($lines, count($lines), 0, $edit->orig);
-        }
-        return $lines;
-    }
-
-    /**
-     * Get the closing set of lines.
-     *
-     * This reconstructs the $to_lines parameter passed to the
-     * constructor.
-     *
-     * @return array The sequence of strings.
-     */
-    function closing() {
-        $lines = array();
-
-        foreach ($this->edits as $edit) {
-            if ($edit->closing)
-                array_splice($lines, count($lines), 0, $edit->closing);
-        }
-        return $lines;
-    }
-
-    /**
-     * 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()))
-            trigger_error("Reconstructed original doesn't match", E_USER_ERROR);
-        if (serialize($to_lines) != serialize($this->closing()))
-            trigger_error("Reconstructed closing doesn't match", E_USER_ERROR);
-
-        $rev = $this->reverse();
-        if (serialize($to_lines) != serialize($rev->orig()))
-            trigger_error("Reversed original doesn't match", E_USER_ERROR);
-        if (serialize($from_lines) != serialize($rev->closing()))
-            trigger_error("Reversed closing doesn't match", E_USER_ERROR);
-
-        $prevtype = 'none';
-        foreach ($this->edits as $edit) {
-            if ($prevtype == $edit->type)
-                trigger_error("Edit sequence is non-optimal", E_USER_ERROR);
-            $prevtype = $edit->type;
-        }
-
-        $lcs = $this->lcs();
-        trigger_error("Diff okay: LCS = $lcs", E_USER_NOTICE);
-    }
-}
-
-/**
- * FIXME: bad name.
- */
-class MappedDiff extends Diff {
-    /**
-     * Constructor.
-     *
-     * Computes diff between sequences of strings.
-     *
-     * This can be used to compute things like
-     * case-insensitve diffs, or diffs which ignore
-     * changes in white-space.
-     *
-     * @param string[] $from_lines         An array of strings.
-     *                                     (Typically these are lines from a file.)
-     *
-     * @param string[] $to_lines           An array of strings.
-     *
-     * @param string[] $mapped_from_lines  This array should
-     *                                     have the same size number of elements as $from_lines.
-     *                                     The elements in $mapped_from_lines and
-     *                                     $mapped_to_lines are what is actually compared
-     *                                     when computing the diff.
-     *
-     * @param string[] $mapped_to_lines    This array should
-     *                                     have the same number of elements as $to_lines.
-     */
-    function __construct($from_lines, $to_lines, $mapped_from_lines, $mapped_to_lines) {
-
-        assert(count($from_lines) == count($mapped_from_lines));
-        assert(count($to_lines) == count($mapped_to_lines));
-
-        parent::__construct($mapped_from_lines, $mapped_to_lines);
-
-        $xi = $yi = 0;
-        $ecnt = count($this->edits);
-        for ($i = 0; $i < $ecnt; $i++) {
-            $orig = &$this->edits[$i]->orig;
-            if (is_array($orig)) {
-                $orig = array_slice($from_lines, $xi, count($orig));
-                $xi += count($orig);
-            }
-
-            $closing = &$this->edits[$i]->closing;
-            if (is_array($closing)) {
-                $closing = array_slice($to_lines, $yi, count($closing));
-                $yi += count($closing);
-            }
-        }
-    }
-}
-
-/**
- * A class to format Diffs
- *
- * This class formats the diff in classic diff format.
- * It is intended that this class be customized via inheritance,
- * to obtain fancier outputs.
- */
-class DiffFormatter {
-    /**
-     * Number of leading context "lines" to preserve.
-     *
-     * This should be left at zero for this class, but subclasses
-     * may want to set this to other values.
-     */
-    var $leading_context_lines = 0;
-
-    /**
-     * Number of trailing context "lines" to preserve.
-     *
-     * This should be left at zero for this class, but subclasses
-     * may want to set this to other values.
-     */
-    var $trailing_context_lines = 0;
-
-    /**
-     * Format a diff.
-     *
-     * @param Diff $diff A Diff object.
-     * @return string The formatted output.
-     */
-    function format($diff) {
-
-        $xi = $yi = 1;
-        $x0 = $y0 = 0;
-        $block = false;
-        $context = array();
-
-        $nlead = $this->leading_context_lines;
-        $ntrail = $this->trailing_context_lines;
-
-        $this->_start_diff();
-
-        foreach ($diff->edits as $edit) {
-            if ($edit->type == 'copy') {
-                if (is_array($block)) {
-                    if (count($edit->orig) <= $nlead + $ntrail) {
-                        $block[] = $edit;
-                    }
-                    else{
-                        if ($ntrail) {
-                            $context = array_slice($edit->orig, 0, $ntrail);
-                            $block[] = new _DiffOp_Copy($context);
-                        }
-                        $this->_block($x0, $ntrail + $xi - $x0, $y0, $ntrail + $yi - $y0, $block);
-                        $block = false;
-                    }
-                }
-                $context = $edit->orig;
-            }
-            else {
-                if (! is_array($block)) {
-                    $context = array_slice($context, count($context) - $nlead);
-                    $x0 = $xi - count($context);
-                    $y0 = $yi - count($context);
-                    $block = array();
-                    if ($context)
-                        $block[] = new _DiffOp_Copy($context);
-                }
-                $block[] = $edit;
-            }
-
-            if ($edit->orig)
-                $xi += count($edit->orig);
-            if ($edit->closing)
-                $yi += count($edit->closing);
-        }
-
-        if (is_array($block))
-            $this->_block($x0, $xi - $x0, $y0, $yi - $y0, $block);
-
-        return $this->_end_diff();
-    }
-
-    /**
-     * @param int $xbeg
-     * @param int $xlen
-     * @param int $ybeg
-     * @param int $ylen
-     * @param array $edits
-     */
-    function _block($xbeg, $xlen, $ybeg, $ylen, &$edits) {
-        $this->_start_block($this->_block_header($xbeg, $xlen, $ybeg, $ylen));
-        foreach ($edits as $edit) {
-            if ($edit->type == 'copy')
-                $this->_context($edit->orig);
-            elseif ($edit->type == 'add')
-                $this->_added($edit->closing);
-            elseif ($edit->type == 'delete')
-                $this->_deleted($edit->orig);
-            elseif ($edit->type == 'change')
-                $this->_changed($edit->orig, $edit->closing);
-            else
-                trigger_error("Unknown edit type", E_USER_ERROR);
-        }
-        $this->_end_block();
-    }
-
-    function _start_diff() {
-        ob_start();
-    }
-
-    function _end_diff() {
-        $val = ob_get_contents();
-        ob_end_clean();
-        return $val;
-    }
-
-    /**
-     * @param int $xbeg
-     * @param int $xlen
-     * @param int $ybeg
-     * @param int $ylen
-     * @return string
-     */
-    function _block_header($xbeg, $xlen, $ybeg, $ylen) {
-        if ($xlen > 1)
-            $xbeg .= "," . ($xbeg + $xlen - 1);
-        if ($ylen > 1)
-            $ybeg .= "," . ($ybeg + $ylen - 1);
-
-        return $xbeg . ($xlen ? ($ylen ? 'c' : 'd') : 'a') . $ybeg;
-    }
-
-    /**
-     * @param string $header
-     */
-    function _start_block($header) {
-        echo $header;
-    }
-
-    function _end_block() {
-    }
-
-    function _lines($lines, $prefix = ' ') {
-        foreach ($lines as $line)
-            echo "$prefix ".$this->_escape($line)."\n";
-    }
-
-    function _context($lines) {
-        $this->_lines($lines);
-    }
-
-    function _added($lines) {
-        $this->_lines($lines, ">");
-    }
-    function _deleted($lines) {
-        $this->_lines($lines, "<");
-    }
-
-    function _changed($orig, $closing) {
-        $this->_deleted($orig);
-        echo "---\n";
-        $this->_added($closing);
-    }
-
-    /**
-     * Escape string
-     *
-     * Override this method within other formatters if escaping required.
-     * Base class requires $str to be returned WITHOUT escaping.
-     *
-     * @param $str string Text string to escape
-     * @return string The escaped string.
-     */
-    function _escape($str){
-        return $str;
-    }
-}
-
-/**
- * Utilityclass for styling HTML formatted diffs
- *
- * Depends on global var $DIFF_INLINESTYLES, if true some minimal predefined
- * inline styles are used. Useful for HTML mails and RSS feeds
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- */
-class HTMLDiff {
-    /**
-     * Holds the style names and basic CSS
-     */
-    static public $styles = array(
-            'diff-addedline'    => 'background-color: #ddffdd;',
-            'diff-deletedline'  => 'background-color: #ffdddd;',
-            'diff-context'      => 'background-color: #f5f5f5;',
-            'diff-mark'         => 'color: #ff0000;',
-        );
-
-    /**
-     * Return a class or style parameter
-     *
-     * @param string $classname
-     *
-     * @return string
-     */
-    static function css($classname){
-        global $DIFF_INLINESTYLES;
-
-        if($DIFF_INLINESTYLES){
-            if(!isset(self::$styles[$classname])) return '';
-            return 'style="'.self::$styles[$classname].'"';
-        }else{
-            return 'class="'.$classname.'"';
-        }
-    }
-}
-
-/**
- *  Additions by Axel Boldt follow, partly taken from diff.php, phpwiki-1.3.3
- *
- */
-
-define('NBSP', "\xC2\xA0");     // utf-8 non-breaking space.
-
-class _HWLDF_WordAccumulator {
-
-    function __construct() {
-        $this->_lines = array();
-        $this->_line = '';
-        $this->_group = '';
-        $this->_tag = '';
-    }
-
-    function _flushGroup($new_tag) {
-        if ($this->_group !== '') {
-            if ($this->_tag == 'mark')
-                $this->_line .= '<strong '.HTMLDiff::css('diff-mark').'>'.$this->_escape($this->_group).'</strong>';
-            elseif ($this->_tag == 'add')
-                $this->_line .= '<span '.HTMLDiff::css('diff-addedline').'>'.$this->_escape($this->_group).'</span>';
-            elseif ($this->_tag == 'del')
-                $this->_line .= '<span '.HTMLDiff::css('diff-deletedline').'><del>'.$this->_escape($this->_group).'</del></span>';
-            else
-                $this->_line .= $this->_escape($this->_group);
-        }
-        $this->_group = '';
-        $this->_tag = $new_tag;
-    }
-
-    /**
-     * @param string $new_tag
-     */
-    function _flushLine($new_tag) {
-        $this->_flushGroup($new_tag);
-        if ($this->_line != '')
-            $this->_lines[] = $this->_line;
-        $this->_line = '';
-    }
-
-    function addWords($words, $tag = '') {
-        if ($tag != $this->_tag)
-            $this->_flushGroup($tag);
-
-        foreach ($words as $word) {
-            // new-line should only come as first char of word.
-            if ($word == '')
-                continue;
-            if ($word[0] == "\n") {
-                $this->_group .= NBSP;
-                $this->_flushLine($tag);
-                $word = substr($word, 1);
-            }
-            assert(!strstr($word, "\n"));
-            $this->_group .= $word;
-        }
-    }
-
-    function getLines() {
-        $this->_flushLine('~done');
-        return $this->_lines;
-    }
-
-    function _escape($str){
-        return hsc($str);
-    }
-}
-
-class WordLevelDiff extends MappedDiff {
-
-    function __construct($orig_lines, $closing_lines) {
-        list ($orig_words, $orig_stripped) = $this->_split($orig_lines);
-        list ($closing_words, $closing_stripped) = $this->_split($closing_lines);
-
-        parent::__construct($orig_words, $closing_words, $orig_stripped, $closing_stripped);
-    }
-
-    function _split($lines) {
-        if (!preg_match_all('/ ( [^\S\n]+ | [0-9_A-Za-z\x80-\xff]+ | . ) (?: (?!< \n) [^\S\n])? /xsu',
-             implode("\n", $lines), $m)) {
-            return array(array(''), array(''));
-        }
-        return array($m[0], $m[1]);
-    }
-
-    function orig() {
-        $orig = new _HWLDF_WordAccumulator;
-
-        foreach ($this->edits as $edit) {
-            if ($edit->type == 'copy')
-                $orig->addWords($edit->orig);
-            elseif ($edit->orig)
-                $orig->addWords($edit->orig, 'mark');
-        }
-        return $orig->getLines();
-    }
-
-    function closing() {
-        $closing = new _HWLDF_WordAccumulator;
-
-        foreach ($this->edits as $edit) {
-            if ($edit->type == 'copy')
-                $closing->addWords($edit->closing);
-            elseif ($edit->closing)
-                $closing->addWords($edit->closing, 'mark');
-        }
-        return $closing->getLines();
-    }
-}
-
-class InlineWordLevelDiff extends MappedDiff {
-
-    function __construct($orig_lines, $closing_lines) {
-        list ($orig_words, $orig_stripped) = $this->_split($orig_lines);
-        list ($closing_words, $closing_stripped) = $this->_split($closing_lines);
-
-        parent::__construct($orig_words, $closing_words, $orig_stripped, $closing_stripped);
-    }
-
-    function _split($lines) {
-        if (!preg_match_all('/ ( [^\S\n]+ | [0-9_A-Za-z\x80-\xff]+ | . ) (?: (?!< \n) [^\S\n])? /xsu',
-             implode("\n", $lines), $m)) {
-            return array(array(''), array(''));
-        }
-        return array($m[0], $m[1]);
-    }
-
-    function inline() {
-        $orig = new _HWLDF_WordAccumulator;
-        foreach ($this->edits as $edit) {
-            if ($edit->type == 'copy')
-                $orig->addWords($edit->closing);
-            elseif ($edit->type == 'change'){
-                $orig->addWords($edit->orig, 'del');
-                $orig->addWords($edit->closing, 'add');
-            } elseif ($edit->type == 'delete')
-                $orig->addWords($edit->orig, 'del');
-            elseif ($edit->type == 'add')
-                $orig->addWords($edit->closing, 'add');
-            elseif ($edit->orig)
-                $orig->addWords($edit->orig, 'del');
-        }
-        return $orig->getLines();
-    }
-}
-
-/**
- * "Unified" diff formatter.
- *
- * This class formats the diff in classic "unified diff" format.
- *
- * NOTE: output is plain text and unsafe for use in HTML without escaping.
- */
-class UnifiedDiffFormatter extends DiffFormatter {
-
-    function __construct($context_lines = 4) {
-        $this->leading_context_lines = $context_lines;
-        $this->trailing_context_lines = $context_lines;
-    }
-
-    function _block_header($xbeg, $xlen, $ybeg, $ylen) {
-        if ($xlen != 1)
-            $xbeg .= "," . $xlen;
-        if ($ylen != 1)
-            $ybeg .= "," . $ylen;
-        return "@@ -$xbeg +$ybeg @@\n";
-    }
-
-    function _added($lines) {
-        $this->_lines($lines, "+");
-    }
-    function _deleted($lines) {
-        $this->_lines($lines, "-");
-    }
-    function _changed($orig, $final) {
-        $this->_deleted($orig);
-        $this->_added($final);
-    }
-}
-
-/**
- *  Wikipedia Table style diff formatter.
- *
- */
-class TableDiffFormatter extends DiffFormatter {
-    var $colspan = 2;
-
-    function __construct() {
-        $this->leading_context_lines = 2;
-        $this->trailing_context_lines = 2;
-    }
-
-    /**
-     * @param Diff $diff
-     * @return string
-     */
-    function format($diff) {
-        // Preserve whitespaces by converting some to non-breaking spaces.
-        // Do not convert all of them to allow word-wrap.
-        $val = parent::format($diff);
-        $val = str_replace('  ','&#160; ', $val);
-        $val = preg_replace('/ (?=<)|(?<=[ >]) /', '&#160;', $val);
-        return $val;
-    }
-
-    function _pre($text){
-        $text = htmlspecialchars($text);
-        return $text;
-    }
-
-    function _block_header($xbeg, $xlen, $ybeg, $ylen) {
-        global $lang;
-        $l1 = $lang['line'].' '.$xbeg;
-        $l2 = $lang['line'].' '.$ybeg;
-        $r = '<tr><td '.HTMLDiff::css('diff-blockheader').' colspan="'.$this->colspan.'">'.$l1.":</td>\n".
-             '<td '.HTMLDiff::css('diff-blockheader').' colspan="'.$this->colspan.'">'.$l2.":</td>\n".
-             "</tr>\n";
-        return $r;
-    }
-
-    function _start_block($header) {
-        print($header);
-    }
-
-    function _end_block() {
-    }
-
-    function _lines($lines, $prefix=' ', $color="white") {
-    }
-
-    function addedLine($line,$escaped=false) {
-        if (!$escaped){
-            $line = $this->_escape($line);
-        }
-        return '<td '.HTMLDiff::css('diff-lineheader').'>+</td>'.
-               '<td '.HTMLDiff::css('diff-addedline').'>' .  $line.'</td>';
-    }
-
-    function deletedLine($line,$escaped=false) {
-        if (!$escaped){
-            $line = $this->_escape($line);
-        }
-        return '<td '.HTMLDiff::css('diff-lineheader').'>-</td>'.
-               '<td '.HTMLDiff::css('diff-deletedline').'>' .  $line.'</td>';
-    }
-
-    function emptyLine() {
-        return '<td colspan="'.$this->colspan.'">&#160;</td>';
-    }
-
-    function contextLine($line) {
-        return '<td '.HTMLDiff::css('diff-lineheader').'>&#160;</td>'.
-               '<td '.HTMLDiff::css('diff-context').'>'.$this->_escape($line).'</td>';
-    }
-
-    function _added($lines) {
-        $this->_addedLines($lines,false);
-    }
-
-    function _addedLines($lines,$escaped=false){
-        foreach ($lines as $line) {
-            print('<tr>' . $this->emptyLine() . $this->addedLine($line,$escaped) . "</tr>\n");
-        }
-    }
-
-    function _deleted($lines) {
-        foreach ($lines as $line) {
-            print('<tr>' . $this->deletedLine($line) . $this->emptyLine() . "</tr>\n");
-        }
-    }
-
-    function _context($lines) {
-        foreach ($lines as $line) {
-            print('<tr>' . $this->contextLine($line) .  $this->contextLine($line) . "</tr>\n");
-        }
-    }
-
-    function _changed($orig, $closing) {
-        $diff = new WordLevelDiff($orig, $closing);  // this escapes the diff data
-        $del = $diff->orig();
-        $add = $diff->closing();
-
-        while ($line = array_shift($del)) {
-            $aline = array_shift($add);
-            print('<tr>' . $this->deletedLine($line,true) . $this->addedLine($aline,true) . "</tr>\n");
-        }
-        $this->_addedLines($add,true); # If any leftovers
-    }
-
-    function _escape($str) {
-        return hsc($str);
-    }
-}
-
-/**
- *  Inline style diff formatter.
- *
- */
-class InlineDiffFormatter extends DiffFormatter {
-    var $colspan = 2;
-
-    function __construct() {
-        $this->leading_context_lines = 2;
-        $this->trailing_context_lines = 2;
-    }
-
-    /**
-     * @param Diff $diff
-     * @return string
-     */
-    function format($diff) {
-        // Preserve whitespaces by converting some to non-breaking spaces.
-        // Do not convert all of them to allow word-wrap.
-        $val = parent::format($diff);
-        $val = str_replace('  ','&#160; ', $val);
-        $val = preg_replace('/ (?=<)|(?<=[ >]) /', '&#160;', $val);
-        return $val;
-    }
-
-    function _pre($text){
-        $text = htmlspecialchars($text);
-        return $text;
-    }
-
-    function _block_header($xbeg, $xlen, $ybeg, $ylen) {
-        global $lang;
-        if ($xlen != 1)
-            $xbeg .= "," . $xlen;
-        if ($ylen != 1)
-            $ybeg .= "," . $ylen;
-        $r = '<tr><td colspan="'.$this->colspan.'" '.HTMLDiff::css('diff-blockheader').'>@@ '.$lang['line']." -$xbeg +$ybeg @@";
-        $r .= ' <span '.HTMLDiff::css('diff-deletedline').'><del>'.$lang['deleted'].'</del></span>';
-        $r .= ' <span '.HTMLDiff::css('diff-addedline').'>'.$lang['created'].'</span>';
-        $r .= "</td></tr>\n";
-        return $r;
-    }
-
-    function _start_block($header) {
-        print($header."\n");
-    }
-
-    function _end_block() {
-    }
-
-    function _lines($lines, $prefix=' ', $color="white") {
-    }
-
-    function _added($lines) {
-        foreach ($lines as $line) {
-            print('<tr><td '.HTMLDiff::css('diff-lineheader').'>&#160;</td><td '.HTMLDiff::css('diff-addedline').'>'. $this->_escape($line) . "</td></tr>\n");
-        }
-    }
-
-    function _deleted($lines) {
-        foreach ($lines as $line) {
-            print('<tr><td '.HTMLDiff::css('diff-lineheader').'>&#160;</td><td '.HTMLDiff::css('diff-deletedline').'><del>' . $this->_escape($line) . "</del></td></tr>\n");
-        }
-    }
-
-    function _context($lines) {
-        foreach ($lines as $line) {
-            print('<tr><td '.HTMLDiff::css('diff-lineheader').'>&#160;</td><td '.HTMLDiff::css('diff-context').'>'. $this->_escape($line) ."</td></tr>\n");
-        }
-    }
-
-    function _changed($orig, $closing) {
-        $diff = new InlineWordLevelDiff($orig, $closing);  // this escapes the diff data
-        $add = $diff->inline();
-
-        foreach ($add as $line)
-            print('<tr><td '.HTMLDiff::css('diff-lineheader').'>&#160;</td><td>'.$line."</td></tr>\n");
-    }
-
-    function _escape($str) {
-        return hsc($str);
-    }
-}
-
-/**
- * A class for computing three way diffs.
- *
- * @author  Geoffrey T. Dairiki <dairiki@dairiki.org>
- */
-class Diff3 extends Diff {
-
-    /**
-     * Conflict counter.
-     *
-     * @var integer
-     */
-    var $_conflictingBlocks = 0;
-
-    /**
-     * Computes diff between 3 sequences of strings.
-     *
-     * @param array $orig    The original lines to use.
-     * @param array $final1  The first version to compare to.
-     * @param array $final2  The second version to compare to.
-     */
-    function __construct($orig, $final1, $final2) {
-        $engine = new _DiffEngine();
-
-        $this->_edits = $this->_diff3($engine->diff($orig, $final1),
-                                      $engine->diff($orig, $final2));
-    }
-
-    /**
-     * Returns the merged lines
-     *
-     * @param string $label1  label for first version
-     * @param string $label2  label for second version
-     * @param string $label3  separator between versions
-     * @return array          lines of the merged text
-     */
-    function mergedOutput($label1='<<<<<<<',$label2='>>>>>>>',$label3='=======') {
-        $lines = array();
-        foreach ($this->_edits as $edit) {
-            if ($edit->isConflict()) {
-                /* FIXME: this should probably be moved somewhere else. */
-                $lines = array_merge($lines,
-                                     array($label1),
-                                     $edit->final1,
-                                     array($label3),
-                                     $edit->final2,
-                                     array($label2));
-                $this->_conflictingBlocks++;
-            } else {
-                $lines = array_merge($lines, $edit->merged());
-            }
-        }
-
-        return $lines;
-    }
-
-    /**
-     * @access private
-     *
-     * @param array $edits1
-     * @param array $edits2
-     *
-     * @return array
-     */
-    function _diff3($edits1, $edits2) {
-        $edits = array();
-        $bb = new _Diff3_BlockBuilder();
-
-        $e1 = current($edits1);
-        $e2 = current($edits2);
-        while ($e1 || $e2) {
-            if ($e1 && $e2 && is_a($e1, '_DiffOp_copy') && is_a($e2, '_DiffOp_copy')) {
-                /* We have copy blocks from both diffs. This is the (only)
-                 * time we want to emit a diff3 copy block.  Flush current
-                 * diff3 diff block, if any. */
-                if ($edit = $bb->finish()) {
-                    $edits[] = $edit;
-                }
-
-                $ncopy = min($e1->norig(), $e2->norig());
-                assert($ncopy > 0);
-                $edits[] = new _Diff3_Op_copy(array_slice($e1->orig, 0, $ncopy));
-
-                if ($e1->norig() > $ncopy) {
-                    array_splice($e1->orig, 0, $ncopy);
-                    array_splice($e1->closing, 0, $ncopy);
-                } else {
-                    $e1 = next($edits1);
-                }
-
-                if ($e2->norig() > $ncopy) {
-                    array_splice($e2->orig, 0, $ncopy);
-                    array_splice($e2->closing, 0, $ncopy);
-                } else {
-                    $e2 = next($edits2);
-                }
-            } else {
-                if ($e1 && $e2) {
-                    if ($e1->orig && $e2->orig) {
-                        $norig = min($e1->norig(), $e2->norig());
-                        $orig = array_splice($e1->orig, 0, $norig);
-                        array_splice($e2->orig, 0, $norig);
-                        $bb->input($orig);
-                    }
-
-                    if (is_a($e1, '_DiffOp_copy')) {
-                        $bb->out1(array_splice($e1->closing, 0, $norig));
-                    }
-
-                    if (is_a($e2, '_DiffOp_copy')) {
-                        $bb->out2(array_splice($e2->closing, 0, $norig));
-                    }
-                }
-
-                if ($e1 && ! $e1->orig) {
-                    $bb->out1($e1->closing);
-                    $e1 = next($edits1);
-                }
-                if ($e2 && ! $e2->orig) {
-                    $bb->out2($e2->closing);
-                    $e2 = next($edits2);
-                }
-            }
-        }
-
-        if ($edit = $bb->finish()) {
-            $edits[] = $edit;
-        }
-
-        return $edits;
-    }
-}
-
-/**
- * @author  Geoffrey T. Dairiki <dairiki@dairiki.org>
- *
- * @access private
- */
-class _Diff3_Op {
-
-    function __construct($orig = false, $final1 = false, $final2 = false) {
-        $this->orig = $orig ? $orig : array();
-        $this->final1 = $final1 ? $final1 : array();
-        $this->final2 = $final2 ? $final2 : array();
-    }
-
-    function merged() {
-        if (!isset($this->_merged)) {
-            if ($this->final1 === $this->final2) {
-                $this->_merged = &$this->final1;
-            } elseif ($this->final1 === $this->orig) {
-                $this->_merged = &$this->final2;
-            } elseif ($this->final2 === $this->orig) {
-                $this->_merged = &$this->final1;
-            } else {
-                $this->_merged = false;
-            }
-        }
-
-        return $this->_merged;
-    }
-
-    function isConflict() {
-        return $this->merged() === false;
-    }
-
-}
-
-/**
- * @author  Geoffrey T. Dairiki <dairiki@dairiki.org>
- *
- * @access private
- */
-class _Diff3_Op_copy extends _Diff3_Op {
-
-    function __construct($lines = false) {
-        $this->orig = $lines ? $lines : array();
-        $this->final1 = &$this->orig;
-        $this->final2 = &$this->orig;
-    }
-
-    function merged() {
-        return $this->orig;
-    }
-
-    function isConflict() {
-        return false;
-    }
-}
-
-/**
- * @author  Geoffrey T. Dairiki <dairiki@dairiki.org>
- *
- * @access private
- */
-class _Diff3_BlockBuilder {
-
-    function __construct() {
-        $this->_init();
-    }
-
-    function input($lines) {
-        if ($lines) {
-            $this->_append($this->orig, $lines);
-        }
-    }
-
-    function out1($lines) {
-        if ($lines) {
-            $this->_append($this->final1, $lines);
-        }
-    }
-
-    function out2($lines) {
-        if ($lines) {
-            $this->_append($this->final2, $lines);
-        }
-    }
-
-    function isEmpty() {
-        return !$this->orig && !$this->final1 && !$this->final2;
-    }
-
-    function finish() {
-        if ($this->isEmpty()) {
-            return false;
-        } else {
-            $edit = new _Diff3_Op($this->orig, $this->final1, $this->final2);
-            $this->_init();
-            return $edit;
-        }
-    }
-
-    function _init() {
-        $this->orig = $this->final1 = $this->final2 = array();
-    }
-
-    function _append(&$array, $lines) {
-        array_splice($array, sizeof($array), 0, $lines);
-    }
-}
-
-//Setup VIM: ex: et ts=4 :
diff --git a/wiki/inc/FeedParser.php b/wiki/inc/FeedParser.php
deleted file mode 100644
index 39434dc..0000000
--- a/wiki/inc/FeedParser.php
+++ /dev/null
@@ -1,84 +0,0 @@
-<?php
-/**
- * Class used to parse RSS and ATOM feeds
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- */
-
-if(!defined('DOKU_INC')) die('meh.');
-
-/**
- * We override some methods of the original SimplePie class here
- */
-class FeedParser extends SimplePie {
-
-    /**
-     * Constructor. Set some defaults
-     */
-    function __construct(){
-        parent::__construct();
-        $this->enable_cache(false);
-        $this->set_file_class('FeedParser_File');
-    }
-
-    /**
-     * Backward compatibility for older plugins
-     *
-     * @param string $url
-     */
-    function feed_url($url){
-        $this->set_feed_url($url);
-    }
-}
-
-/**
- * Fetch an URL using our own HTTPClient
- *
- * Replaces SimplePie's own class
- */
-class FeedParser_File extends SimplePie_File {
-    var $http;
-    var $useragent;
-    var $success = true;
-    var $headers = array();
-    var $body;
-    var $error;
-    /** @noinspection PhpMissingParentConstructorInspection */
-
-    /**
-     * Inititializes the HTTPClient
-     *
-     * We ignore all given parameters - they are set in DokuHTTPClient
-     *
-     * @inheritdoc
-     */
-    function __construct($url, $timeout=10, $redirects=5,
-                         $headers=null, $useragent=null, $force_fsockopen=false, $curl_options = array()) {
-        $this->http    = new DokuHTTPClient();
-        $this->success = $this->http->sendRequest($url);
-
-        $this->headers = $this->http->resp_headers;
-        $this->body    = $this->http->resp_body;
-        $this->error   = $this->http->error;
-
-        $this->method  = SIMPLEPIE_FILE_SOURCE_REMOTE | SIMPLEPIE_FILE_SOURCE_FSOCKOPEN;
-
-        return $this->success;
-    }
-
-    /** @inheritdoc */
-    function headers(){
-        return $this->headers;
-    }
-
-    /** @inheritdoc */
-    function body(){
-        return $this->body;
-    }
-
-    /** @inheritdoc */
-    function close(){
-        return true;
-    }
-
-}
diff --git a/wiki/inc/Form/ButtonElement.php b/wiki/inc/Form/ButtonElement.php
deleted file mode 100644
index e2afe9c..0000000
--- a/wiki/inc/Form/ButtonElement.php
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-namespace dokuwiki\Form;
-
-/**
- * Class ButtonElement
- *
- * Represents a simple button
- *
- * @package dokuwiki\Form
- */
-class ButtonElement extends Element {
-
-    /** @var string HTML content */
-    protected $content = '';
-
-    /**
-     * @param string $name
-     * @param string $content HTML content of the button. You have to escape it yourself.
-     */
-    function __construct($name, $content = '') {
-        parent::__construct('button', array('name' => $name, 'value' => 1));
-        $this->content = $content;
-    }
-
-    /**
-     * The HTML representation of this element
-     *
-     * @return string
-     */
-    public function toHTML() {
-        return '<button ' . buildAttributes($this->attrs(), true) . '>'.$this->content.'</button>';
-    }
-
-}
diff --git a/wiki/inc/Form/CheckableElement.php b/wiki/inc/Form/CheckableElement.php
deleted file mode 100644
index 27d5c2e..0000000
--- a/wiki/inc/Form/CheckableElement.php
+++ /dev/null
@@ -1,62 +0,0 @@
-<?php
-namespace dokuwiki\Form;
-
-/**
- * Class CheckableElement
- *
- * For Radio- and Checkboxes
- *
- * @package dokuwiki\Form
- */
-class CheckableElement extends InputElement {
-
-    /**
-     * @param string $type The type of this element
-     * @param string $name The name of this form element
-     * @param string $label The label text for this element
-     */
-    public function __construct($type, $name, $label) {
-        parent::__construct($type, $name, $label);
-        // default value is 1
-        $this->attr('value', 1);
-    }
-
-    /**
-     * Handles the useInput flag and sets the checked attribute accordingly
-     */
-    protected function prefillInput() {
-        global $INPUT;
-        list($name, $key) = $this->getInputName();
-        $myvalue = $this->val();
-
-        if(!$INPUT->has($name)) return;
-
-        if($key === null) {
-            // no key - single value
-            $value = $INPUT->str($name);
-            if($value == $myvalue) {
-                $this->attr('checked', 'checked');
-            } else {
-                $this->rmattr('checked');
-            }
-        } else {
-            // we have an array, there might be several values in it
-            $input = $INPUT->arr($name);
-            if(isset($input[$key])) {
-                $this->rmattr('checked');
-
-                // values seem to be in another sub array
-                if(is_array($input[$key])) {
-                    $input = $input[$key];
-                }
-
-                foreach($input as $value) {
-                    if($value == $myvalue) {
-                        $this->attr('checked', 'checked');
-                    }
-                }
-            }
-        }
-    }
-
-}
diff --git a/wiki/inc/Form/DropdownElement.php b/wiki/inc/Form/DropdownElement.php
deleted file mode 100644
index 023b67d..0000000
--- a/wiki/inc/Form/DropdownElement.php
+++ /dev/null
@@ -1,190 +0,0 @@
-<?php
-namespace dokuwiki\Form;
-
-/**
- * Class DropdownElement
- *
- * Represents a HTML select. Please note that this does not support multiple selected options!
- *
- * @package dokuwiki\Form
- */
-class DropdownElement extends InputElement {
-
-    /** @var array OptGroup[] */
-    protected $optGroups = array();
-
-    /**
-     * @param string $name The name of this form element
-     * @param array  $options The available options
-     * @param string $label The label text for this element (will be autoescaped)
-     */
-    public function __construct($name, $options, $label = '') {
-        parent::__construct('dropdown', $name, $label);
-        $this->rmattr('type');
-        $this->optGroups[''] = new OptGroup(null, $options);
-        $this->val('');
-    }
-
-    /**
-     * Add an `<optgroup>` and respective options
-     *
-     * @param string $label
-     * @param array  $options
-     * @return OptGroup a reference to the added optgroup
-     * @throws \Exception
-     */
-    public function addOptGroup($label, $options) {
-        if (empty($label)) {
-            throw new \InvalidArgumentException(hsc('<optgroup> must have a label!'));
-        }
-        $this->optGroups[$label] = new OptGroup($label, $options);
-        return end($this->optGroups);
-    }
-
-    /**
-     * Set or get the optgroups of an Dropdown-Element.
-     *
-     * optgroups have to be given as associative array
-     *   * the key being the label of the group
-     *   * the value being an array of options as defined in @see OptGroup::options()
-     *
-     * @param null|array $optGroups
-     * @return OptGroup[]|DropdownElement
-     */
-    public function optGroups($optGroups = null) {
-        if($optGroups === null) {
-            return $this->optGroups;
-        }
-        if (!is_array($optGroups)) {
-            throw new \InvalidArgumentException(hsc('Argument must be an associative array of label => [options]!'));
-        }
-        $this->optGroups = array();
-        foreach ($optGroups as $label => $options) {
-            $this->addOptGroup($label, $options);
-        }
-        return $this;
-    }
-
-    /**
-     * Get or set the options of the Dropdown
-     *
-     * Options can be given as associative array (value => label) or as an
-     * indexd array (label = value) or as an array of arrays. In the latter
-     * case an element has to look as follows:
-     * option-value => array (
-     *                 'label' => option-label,
-     *                 'attrs' => array (
-     *                                    attr-key => attr-value, ...
-     *                                  )
-     *                 )
-     *
-     * @param null|array $options
-     * @return $this|array
-     */
-    public function options($options = null) {
-        if ($options === null) {
-            return $this->optGroups['']->options();
-        }
-        $this->optGroups[''] = new OptGroup(null, $options);
-        return $this;
-    }
-
-    /**
-     * Gets or sets an attribute
-     *
-     * When no $value is given, the current content of the attribute is returned.
-     * An empty string is returned for unset attributes.
-     *
-     * When a $value is given, the content is set to that value and the Element
-     * itself is returned for easy chaining
-     *
-     * @param string $name Name of the attribute to access
-     * @param null|string $value New value to set
-     * @return string|$this
-     */
-    public function attr($name, $value = null) {
-        if(strtolower($name) == 'multiple') {
-            throw new \InvalidArgumentException('Sorry, the dropdown element does not support the "multiple" attribute');
-        }
-        return parent::attr($name, $value);
-    }
-
-    /**
-     * Get or set the current value
-     *
-     * When setting a value that is not defined in the options, the value is ignored
-     * and the first option's value is selected instead
-     *
-     * @param null|string $value The value to set
-     * @return $this|string
-     */
-    public function val($value = null) {
-        if($value === null) return $this->value;
-
-        $value_exists = $this->setValueInOptGroups($value);
-
-        if($value_exists) {
-            $this->value = $value;
-        } else {
-            // unknown value set, select first option instead
-            $this->value = $this->getFirstOption();
-            $this->setValueInOptGroups($this->value);
-        }
-
-        return $this;
-    }
-
-    /**
-     * Returns the first options as it will be rendered in HTML
-     *
-     * @return string
-     */
-    protected function getFirstOption() {
-        $options = $this->options();
-        if (!empty($options)) {
-            $keys = array_keys($options);
-            return (string) array_shift($keys);
-        }
-        foreach ($this->optGroups as $optGroup) {
-            $options = $optGroup->options();
-            if (!empty($options)) {
-                $keys = array_keys($options);
-                return (string) array_shift($keys);
-            }
-        }
-    }
-
-    /**
-     * Set the value in the OptGroups, including the optgroup for the options without optgroup.
-     *
-     * @param string $value
-     * @return bool
-     */
-    protected function setValueInOptGroups($value) {
-        $value_exists = false;
-        /** @var OptGroup $optGroup */
-        foreach ($this->optGroups as $optGroup) {
-            $value_exists = $optGroup->storeValue($value) || $value_exists;
-            if ($value_exists) {
-                $value = null;
-            }
-        }
-        return $value_exists;
-    }
-
-    /**
-     * Create the HTML for the select it self
-     *
-     * @return string
-     */
-    protected function mainElementHTML() {
-        if($this->useInput) $this->prefillInput();
-
-        $html = '<select ' . buildAttributes($this->attrs()) . '>';
-        $html = array_reduce($this->optGroups, function($html, OptGroup $optGroup) {return $html . $optGroup->toHTML();}, $html);
-        $html .= '</select>';
-
-        return $html;
-    }
-
-}
diff --git a/wiki/inc/Form/Element.php b/wiki/inc/Form/Element.php
deleted file mode 100644
index a357882..0000000
--- a/wiki/inc/Form/Element.php
+++ /dev/null
@@ -1,151 +0,0 @@
-<?php
-namespace dokuwiki\Form;
-
-/**
- * Class Element
- *
- * The basic building block of a form
- *
- * @package dokuwiki\Form
- */
-abstract class Element {
-
-    /**
-     * @var array the attributes of this element
-     */
-    protected $attributes = array();
-
-    /**
-     * @var string The type of this element
-     */
-    protected $type;
-
-    /**
-     * @param string $type The type of this element
-     * @param array $attributes
-     */
-    public function __construct($type, $attributes = array()) {
-        $this->type = $type;
-        $this->attributes = $attributes;
-    }
-
-    /**
-     * Type of this element
-     *
-     * @return string
-     */
-    public function getType() {
-        return $this->type;
-    }
-
-    /**
-     * Gets or sets an attribute
-     *
-     * When no $value is given, the current content of the attribute is returned.
-     * An empty string is returned for unset attributes.
-     *
-     * When a $value is given, the content is set to that value and the Element
-     * itself is returned for easy chaining
-     *
-     * @param string $name Name of the attribute to access
-     * @param null|string $value New value to set
-     * @return string|$this
-     */
-    public function attr($name, $value = null) {
-        // set
-        if($value !== null) {
-            $this->attributes[$name] = $value;
-            return $this;
-        }
-
-        // get
-        if(isset($this->attributes[$name])) {
-            return $this->attributes[$name];
-        } else {
-            return '';
-        }
-    }
-
-    /**
-     * Removes the given attribute if it exists
-     *
-     * @param string $name
-     * @return $this
-     */
-    public function rmattr($name) {
-        if(isset($this->attributes[$name])) {
-            unset($this->attributes[$name]);
-        }
-        return $this;
-    }
-
-    /**
-     * Gets or adds a all given attributes at once
-     *
-     * @param array|null $attributes
-     * @return array|$this
-     */
-    public function attrs($attributes = null) {
-        // set
-        if($attributes) {
-            foreach((array) $attributes as $key => $val) {
-                $this->attr($key, $val);
-            }
-            return $this;
-        }
-        // get
-        return $this->attributes;
-    }
-
-    /**
-     * Adds a class to the class attribute
-     *
-     * This is the preferred method of setting the element's class
-     *
-     * @param string $class the new class to add
-     * @return $this
-     */
-    public function addClass($class) {
-        $classes = explode(' ', $this->attr('class'));
-        $classes[] = $class;
-        $classes = array_unique($classes);
-        $classes = array_filter($classes);
-        $this->attr('class', join(' ', $classes));
-        return $this;
-    }
-
-    /**
-     * Get or set the element's ID
-     *
-     * This is the preferred way of setting the element's ID
-     *
-     * @param null|string $id
-     * @return string|$this
-     */
-    public function id($id = null) {
-        if(strpos($id, '__') === false) {
-            throw new \InvalidArgumentException('IDs in DokuWiki have to contain two subsequent underscores');
-        }
-
-        return $this->attr('id', $id);
-    }
-
-    /**
-     * Get or set the element's value
-     *
-     * This is the preferred way of setting the element's value
-     *
-     * @param null|string $value
-     * @return string|$this
-     */
-    public function val($value = null) {
-        return $this->attr('value', $value);
-    }
-
-    /**
-     * The HTML representation of this element
-     *
-     * @return string
-     */
-    abstract public function toHTML();
-}
diff --git a/wiki/inc/Form/FieldsetCloseElement.php b/wiki/inc/Form/FieldsetCloseElement.php
deleted file mode 100644
index 8f26717..0000000
--- a/wiki/inc/Form/FieldsetCloseElement.php
+++ /dev/null
@@ -1,30 +0,0 @@
-<?php
-namespace dokuwiki\Form;
-
-/**
- * Class FieldsetCloseElement
- *
- * Closes an open Fieldset
- *
- * @package dokuwiki\Form
- */
-class FieldsetCloseElement extends TagCloseElement {
-
-    /**
-     * @param array $attributes
-     */
-    public function __construct($attributes = array()) {
-        parent::__construct('', $attributes);
-        $this->type = 'fieldsetclose';
-    }
-
-
-    /**
-     * The HTML representation of this element
-     *
-     * @return string
-     */
-    public function toHTML() {
-        return '</fieldset>';
-    }
-}
diff --git a/wiki/inc/Form/FieldsetOpenElement.php b/wiki/inc/Form/FieldsetOpenElement.php
deleted file mode 100644
index a7de461..0000000
--- a/wiki/inc/Form/FieldsetOpenElement.php
+++ /dev/null
@@ -1,36 +0,0 @@
-<?php
-namespace dokuwiki\Form;
-
-/**
- * Class FieldsetOpenElement
- *
- * Opens a Fieldset with an optional legend
- *
- * @package dokuwiki\Form
- */
-class FieldsetOpenElement extends TagOpenElement {
-
-    /**
-     * @param string $legend
-     * @param array $attributes
-     */
-    public function __construct($legend='', $attributes = array()) {
-        // this is a bit messy and we just do it for the nicer class hierarchy
-        // the parent would expect the tag in $value but we're storing the
-        // legend there, so we have to set the type manually
-        parent::__construct($legend, $attributes);
-        $this->type = 'fieldsetopen';
-    }
-
-    /**
-     * The HTML representation of this element
-     *
-     * @return string
-     */
-    public function toHTML() {
-        $html = '<fieldset '.buildAttributes($this->attrs()).'>';
-        $legend = $this->val();
-        if($legend) $html .= DOKU_LF.'<legend>'.hsc($legend).'</legend>';
-        return $html;
-    }
-}
diff --git a/wiki/inc/Form/Form.php b/wiki/inc/Form/Form.php
deleted file mode 100644
index 92bbd30..0000000
--- a/wiki/inc/Form/Form.php
+++ /dev/null
@@ -1,456 +0,0 @@
-<?php
-namespace dokuwiki\Form;
-
-/**
- * Class Form
- *
- * Represents the whole Form. This is what you work on, and add Elements to
- *
- * @package dokuwiki\Form
- */
-class Form extends Element {
-
-    /**
-     * @var array name value pairs for hidden values
-     */
-    protected $hidden = array();
-
-    /**
-     * @var Element[] the elements of the form
-     */
-    protected $elements = array();
-
-    /**
-     * Creates a new, empty form with some default attributes
-     *
-     * @param array $attributes
-     * @param bool  $unsafe     if true, then the security token is ommited
-     */
-    public function __construct($attributes = array(), $unsafe = false) {
-        global $ID;
-
-        parent::__construct('form', $attributes);
-
-        // use the current URL as default action
-        if(!$this->attr('action')) {
-            $get = $_GET;
-            if(isset($get['id'])) unset($get['id']);
-            $self = wl($ID, $get, false, '&'); //attributes are escaped later
-            $this->attr('action', $self);
-        }
-
-        // post is default
-        if(!$this->attr('method')) {
-            $this->attr('method', 'post');
-        }
-
-        // we like UTF-8
-        if(!$this->attr('accept-charset')) {
-            $this->attr('accept-charset', 'utf-8');
-        }
-
-        // add the security token by default
-        if (!$unsafe) {
-            $this->setHiddenField('sectok', getSecurityToken());
-        }
-
-        // identify this as a new form based form in HTML
-        $this->addClass('doku_form');
-    }
-
-    /**
-     * Sets a hidden field
-     *
-     * @param string $name
-     * @param string $value
-     * @return $this
-     */
-    public function setHiddenField($name, $value) {
-        $this->hidden[$name] = $value;
-        return $this;
-    }
-
-    #region element query function
-
-    /**
-     * Returns the numbers of elements in the form
-     *
-     * @return int
-     */
-    public function elementCount() {
-        return count($this->elements);
-    }
-
-    /**
-     * Get the position of the element in the form or false if it is not in the form
-     *
-     * Warning: This function may return Boolean FALSE, but may also return a non-Boolean value which evaluates to FALSE. Please read the section on Booleans for more information. Use the === operator for testing the return value of this function.
-     *
-     * @param Element $element
-     *
-     * @return false|int
-     */
-    public function getElementPosition(Element $element)
-    {
-        return array_search($element, $this->elements, true);
-    }
-
-    /**
-     * Returns a reference to the element at a position.
-     * A position out-of-bounds will return either the
-     * first (underflow) or last (overflow) element.
-     *
-     * @param int $pos
-     * @return Element
-     */
-    public function getElementAt($pos) {
-        if($pos < 0) $pos = count($this->elements) + $pos;
-        if($pos < 0) $pos = 0;
-        if($pos >= count($this->elements)) $pos = count($this->elements) - 1;
-        return $this->elements[$pos];
-    }
-
-    /**
-     * Gets the position of the first of a type of element
-     *
-     * @param string $type Element type to look for.
-     * @param int $offset search from this position onward
-     * @return false|int position of element if found, otherwise false
-     */
-    public function findPositionByType($type, $offset = 0) {
-        $len = $this->elementCount();
-        for($pos = $offset; $pos < $len; $pos++) {
-            if($this->elements[$pos]->getType() == $type) {
-                return $pos;
-            }
-        }
-        return false;
-    }
-
-    /**
-     * Gets the position of the first element matching the attribute
-     *
-     * @param string $name Name of the attribute
-     * @param string $value Value the attribute should have
-     * @param int $offset search from this position onward
-     * @return false|int position of element if found, otherwise false
-     */
-    public function findPositionByAttribute($name, $value, $offset = 0) {
-        $len = $this->elementCount();
-        for($pos = $offset; $pos < $len; $pos++) {
-            if($this->elements[$pos]->attr($name) == $value) {
-                return $pos;
-            }
-        }
-        return false;
-    }
-
-    #endregion
-
-    #region Element positioning functions
-
-    /**
-     * Adds or inserts an element to the form
-     *
-     * @param Element $element
-     * @param int $pos 0-based position in the form, -1 for at the end
-     * @return Element
-     */
-    public function addElement(Element $element, $pos = -1) {
-        if(is_a($element, '\dokuwiki\Form\Form')) throw new \InvalidArgumentException('You can\'t add a form to a form');
-        if($pos < 0) {
-            $this->elements[] = $element;
-        } else {
-            array_splice($this->elements, $pos, 0, array($element));
-        }
-        return $element;
-    }
-
-    /**
-     * Replaces an existing element with a new one
-     *
-     * @param Element $element the new element
-     * @param int $pos 0-based position of the element to replace
-     */
-    public function replaceElement(Element $element, $pos) {
-        if(is_a($element, '\dokuwiki\Form\Form')) throw new \InvalidArgumentException('You can\'t add a form to a form');
-        array_splice($this->elements, $pos, 1, array($element));
-    }
-
-    /**
-     * Remove an element from the form completely
-     *
-     * @param int $pos 0-based position of the element to remove
-     */
-    public function removeElement($pos) {
-        array_splice($this->elements, $pos, 1);
-    }
-
-    #endregion
-
-    #region Element adding functions
-
-    /**
-     * Adds a text input field
-     *
-     * @param string $name
-     * @param string $label
-     * @param int $pos
-     * @return InputElement
-     */
-    public function addTextInput($name, $label = '', $pos = -1) {
-        return $this->addElement(new InputElement('text', $name, $label), $pos);
-    }
-
-    /**
-     * Adds a password input field
-     *
-     * @param string $name
-     * @param string $label
-     * @param int $pos
-     * @return InputElement
-     */
-    public function addPasswordInput($name, $label = '', $pos = -1) {
-        return $this->addElement(new InputElement('password', $name, $label), $pos);
-    }
-
-    /**
-     * Adds a radio button field
-     *
-     * @param string $name
-     * @param string $label
-     * @param int $pos
-     * @return CheckableElement
-     */
-    public function addRadioButton($name, $label = '', $pos = -1) {
-        return $this->addElement(new CheckableElement('radio', $name, $label), $pos);
-    }
-
-    /**
-     * Adds a checkbox field
-     *
-     * @param string $name
-     * @param string $label
-     * @param int $pos
-     * @return CheckableElement
-     */
-    public function addCheckbox($name, $label = '', $pos = -1) {
-        return $this->addElement(new CheckableElement('checkbox', $name, $label), $pos);
-    }
-
-    /**
-     * Adds a dropdown field
-     *
-     * @param string $name
-     * @param array $options
-     * @param string $label
-     * @param int $pos
-     * @return DropdownElement
-     */
-    public function addDropdown($name, $options, $label = '', $pos = -1) {
-        return $this->addElement(new DropdownElement($name, $options, $label), $pos);
-    }
-
-    /**
-     * Adds a textarea field
-     *
-     * @param string $name
-     * @param string $label
-     * @param int $pos
-     * @return TextareaElement
-     */
-    public function addTextarea($name, $label = '', $pos = -1) {
-        return $this->addElement(new TextareaElement($name, $label), $pos);
-    }
-
-    /**
-     * Adds a simple button, escapes the content for you
-     *
-     * @param string $name
-     * @param string $content
-     * @param int $pos
-     * @return Element
-     */
-    public function addButton($name, $content, $pos = -1) {
-        return $this->addElement(new ButtonElement($name, hsc($content)), $pos);
-    }
-
-    /**
-     * Adds a simple button, allows HTML for content
-     *
-     * @param string $name
-     * @param string $html
-     * @param int $pos
-     * @return Element
-     */
-    public function addButtonHTML($name, $html, $pos = -1) {
-        return $this->addElement(new ButtonElement($name, $html), $pos);
-    }
-
-    /**
-     * Adds a label referencing another input element, escapes the label for you
-     *
-     * @param string $label
-     * @param string $for
-     * @param int $pos
-     * @return Element
-     */
-    public function addLabel($label, $for='', $pos = -1) {
-        return $this->addLabelHTML(hsc($label), $for, $pos);
-    }
-
-    /**
-     * Adds a label referencing another input element, allows HTML for content
-     *
-     * @param string $content
-     * @param string|Element $for
-     * @param int $pos
-     * @return Element
-     */
-    public function addLabelHTML($content, $for='', $pos = -1) {
-        $element = new LabelElement(hsc($content));
-
-        if(is_a($for, '\dokuwiki\Form\Element')) {
-            /** @var Element $for */
-            $for = $for->id();
-        }
-        $for = (string) $for;
-        if($for !== '') {
-            $element->attr('for', $for);
-        }
-
-        return $this->addElement($element, $pos);
-    }
-
-    /**
-     * Add fixed HTML to the form
-     *
-     * @param string $html
-     * @param int $pos
-     * @return HTMLElement
-     */
-    public function addHTML($html, $pos = -1) {
-        return $this->addElement(new HTMLElement($html), $pos);
-    }
-
-    /**
-     * Add a closed HTML tag to the form
-     *
-     * @param string $tag
-     * @param int $pos
-     * @return TagElement
-     */
-    public function addTag($tag, $pos = -1) {
-        return $this->addElement(new TagElement($tag), $pos);
-    }
-
-    /**
-     * Add an open HTML tag to the form
-     *
-     * Be sure to close it again!
-     *
-     * @param string $tag
-     * @param int $pos
-     * @return TagOpenElement
-     */
-    public function addTagOpen($tag, $pos = -1) {
-        return $this->addElement(new TagOpenElement($tag), $pos);
-    }
-
-    /**
-     * Add a closing HTML tag to the form
-     *
-     * Be sure it had been opened before
-     *
-     * @param string $tag
-     * @param int $pos
-     * @return TagCloseElement
-     */
-    public function addTagClose($tag, $pos = -1) {
-        return $this->addElement(new TagCloseElement($tag), $pos);
-    }
-
-    /**
-     * Open a Fieldset
-     *
-     * @param string $legend
-     * @param int $pos
-     * @return FieldsetOpenElement
-     */
-    public function addFieldsetOpen($legend = '', $pos = -1) {
-        return $this->addElement(new FieldsetOpenElement($legend), $pos);
-    }
-
-    /**
-     * Close a fieldset
-     *
-     * @param int $pos
-     * @return TagCloseElement
-     */
-    public function addFieldsetClose($pos = -1) {
-        return $this->addElement(new FieldsetCloseElement(), $pos);
-    }
-
-    #endregion
-
-    /**
-     * Adjust the elements so that fieldset open and closes are matching
-     */
-    protected function balanceFieldsets() {
-        $lastclose = 0;
-        $isopen = false;
-        $len = count($this->elements);
-
-        for($pos = 0; $pos < $len; $pos++) {
-            $type = $this->elements[$pos]->getType();
-            if($type == 'fieldsetopen') {
-                if($isopen) {
-                    //close previous fieldset
-                    $this->addFieldsetClose($pos);
-                    $lastclose = $pos + 1;
-                    $pos++;
-                    $len++;
-                }
-                $isopen = true;
-            } else if($type == 'fieldsetclose') {
-                if(!$isopen) {
-                    // make sure there was a fieldsetopen
-                    // either right after the last close or at the begining
-                    $this->addFieldsetOpen('', $lastclose);
-                    $len++;
-                    $pos++;
-                }
-                $lastclose = $pos;
-                $isopen = false;
-            }
-        }
-
-        // close open fieldset at the end
-        if($isopen) {
-            $this->addFieldsetClose();
-        }
-    }
-
-    /**
-     * The HTML representation of the whole form
-     *
-     * @return string
-     */
-    public function toHTML() {
-        $this->balanceFieldsets();
-
-        $html = '<form ' . buildAttributes($this->attrs()) . '>';
-
-        foreach($this->hidden as $name => $value) {
-            $html .= '<input type="hidden" name="' . $name . '" value="' . formText($value) . '" />';
-        }
-
-        foreach($this->elements as $element) {
-            $html .= $element->toHTML();
-        }
-
-        $html .= '</form>';
-
-        return $html;
-    }
-}
diff --git a/wiki/inc/Form/HTMLElement.php b/wiki/inc/Form/HTMLElement.php
deleted file mode 100644
index 591cf47..0000000
--- a/wiki/inc/Form/HTMLElement.php
+++ /dev/null
@@ -1,29 +0,0 @@
-<?php
-namespace dokuwiki\Form;
-
-/**
- * Class HTMLElement
- *
- * Holds arbitrary HTML that is added as is to the Form
- *
- * @package dokuwiki\Form
- */
-class HTMLElement extends ValueElement {
-
-
-    /**
-     * @param string $html
-     */
-    public function __construct($html) {
-        parent::__construct('html', $html);
-    }
-
-    /**
-     * The HTML representation of this element
-     *
-     * @return string
-     */
-    public function toHTML() {
-        return $this->val();
-    }
-}
diff --git a/wiki/inc/Form/InputElement.php b/wiki/inc/Form/InputElement.php
deleted file mode 100644
index 0242b61..0000000
--- a/wiki/inc/Form/InputElement.php
+++ /dev/null
@@ -1,159 +0,0 @@
-<?php
-namespace dokuwiki\Form;
-
-/**
- * Class InputElement
- *
- * Base class for all input elements. Uses a wrapping label when label
- * text is given.
- *
- * @todo figure out how to make wrapping or related label configurable
- * @package dokuwiki\Form
- */
-class InputElement extends Element {
-    /**
-     * @var LabelElement
-     */
-    protected $label = null;
-
-    /**
-     * @var bool if the element should reflect posted values
-     */
-    protected $useInput = true;
-
-    /**
-     * @param string $type The type of this element
-     * @param string $name The name of this form element
-     * @param string $label The label text for this element (will be autoescaped)
-     */
-    public function __construct($type, $name, $label = '') {
-        parent::__construct($type, array('name' => $name));
-        $this->attr('name', $name);
-        $this->attr('type', $type);
-        if($label) $this->label = new LabelElement($label);
-    }
-
-    /**
-     * Returns the label element if there's one set
-     *
-     * @return LabelElement|null
-     */
-    public function getLabel() {
-        return $this->label;
-    }
-
-    /**
-     * Should the user sent input be used to initialize the input field
-     *
-     * The default is true. Any set values will be overwritten by the INPUT
-     * provided values.
-     *
-     * @param bool $useinput
-     * @return $this
-     */
-    public function useInput($useinput) {
-        $this->useInput = (bool) $useinput;
-        return $this;
-    }
-
-    /**
-     * Get or set the element's ID
-     *
-     * @param null|string $id
-     * @return string|$this
-     */
-    public function id($id = null) {
-        if($this->label) $this->label->attr('for', $id);
-        return parent::id($id);
-    }
-
-    /**
-     * Adds a class to the class attribute
-     *
-     * This is the preferred method of setting the element's class
-     *
-     * @param string $class the new class to add
-     * @return $this
-     */
-    public function addClass($class) {
-        if($this->label) $this->label->addClass($class);
-        return parent::addClass($class);
-    }
-
-    /**
-     * Figures out how to access the value for this field from INPUT data
-     *
-     * The element's name could have been given as a simple string ('foo')
-     * or in array notation ('foo[bar]').
-     *
-     * Note: this function only handles one level of arrays. If your data
-     * is nested deeper, you should call useInput(false) and set the
-     * correct value yourself
-     *
-     * @return array name and array key (null if not an array)
-     */
-    protected function getInputName() {
-        $name = $this->attr('name');
-        parse_str("$name=1", $parsed);
-
-        $name = array_keys($parsed);
-        $name = array_shift($name);
-
-        if(is_array($parsed[$name])) {
-            $key = array_keys($parsed[$name]);
-            $key = array_shift($key);
-        } else {
-            $key = null;
-        }
-
-        return array($name, $key);
-    }
-
-    /**
-     * Handles the useInput flag and set the value attribute accordingly
-     */
-    protected function prefillInput() {
-        global $INPUT;
-
-        list($name, $key) = $this->getInputName();
-        if(!$INPUT->has($name)) return;
-
-        if($key === null) {
-            $value = $INPUT->str($name);
-        } else {
-            $value = $INPUT->arr($name);
-            if(isset($value[$key])) {
-                $value = $value[$key];
-            } else {
-                $value = '';
-            }
-        }
-        $this->val($value);
-    }
-
-    /**
-     * The HTML representation of this element
-     *
-     * @return string
-     */
-    protected function mainElementHTML() {
-        if($this->useInput) $this->prefillInput();
-        return '<input ' . buildAttributes($this->attrs()) . ' />';
-    }
-
-    /**
-     * The HTML representation of this element wrapped in a label
-     *
-     * @return string
-     */
-    public function toHTML() {
-        if($this->label) {
-            return '<label ' . buildAttributes($this->label->attrs()) . '>' . DOKU_LF .
-            '<span>' . hsc($this->label->val()) . '</span>' . DOKU_LF .
-            $this->mainElementHTML() . DOKU_LF .
-            '</label>';
-        } else {
-            return $this->mainElementHTML();
-        }
-    }
-}
diff --git a/wiki/inc/Form/LabelElement.php b/wiki/inc/Form/LabelElement.php
deleted file mode 100644
index 9c8d542..0000000
--- a/wiki/inc/Form/LabelElement.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-namespace dokuwiki\Form;
-
-/**
- * Class Label
- * @package dokuwiki\Form
- */
-class LabelElement extends ValueElement {
-
-    /**
-     * Creates a new Label
-     *
-     * @param string $label This is is raw HTML and will not be escaped
-     */
-    public function __construct($label) {
-        parent::__construct('label', $label);
-    }
-
-    /**
-     * The HTML representation of this element
-     *
-     * @return string
-     */
-    public function toHTML() {
-        return '<label ' . buildAttributes($this->attrs()) . '>' . $this->val() . '</label>';
-    }
-}
diff --git a/wiki/inc/Form/LegacyForm.php b/wiki/inc/Form/LegacyForm.php
deleted file mode 100644
index 1b47ba2..0000000
--- a/wiki/inc/Form/LegacyForm.php
+++ /dev/null
@@ -1,181 +0,0 @@
-<?php
-namespace dokuwiki\Form;
-
-/**
- * Class LegacyForm
- *
- * Provides a compatibility layer to the old Doku_Form API
- *
- * This can be used to work with the modern API on forms provided by old events for
- * example. When you start new forms, just use Form\Form
- *
- * @package dokuwiki\Form
- */
-class LegacyForm extends Form {
-
-    /**
-     * Creates a new modern form from an old legacy Doku_Form
-     *
-     * @param \Doku_Form $oldform
-     */
-    public function __construct(\Doku_Form $oldform) {
-        parent::__construct($oldform->params);
-
-        $this->hidden = $oldform->_hidden;
-
-        foreach($oldform->_content as $element) {
-            list($ctl, $attr) = $this->parseLegacyAttr($element);
-
-            if(is_array($element)) {
-                switch($ctl['elem']) {
-                    case 'wikitext':
-                        $this->addTextarea('wikitext')
-                             ->attrs($attr)
-                             ->id('wiki__text')
-                             ->val($ctl['text'])
-                             ->addClass($ctl['class']);
-                        break;
-                    case 'textfield':
-                        $this->addTextInput($ctl['name'], $ctl['text'])
-                             ->attrs($attr)
-                             ->id($ctl['id'])
-                             ->addClass($ctl['class']);
-                        break;
-                    case 'passwordfield':
-                        $this->addPasswordInput($ctl['name'], $ctl['text'])
-                             ->attrs($attr)
-                             ->id($ctl['id'])
-                             ->addClass($ctl['class']);
-                        break;
-                    case 'checkboxfield':
-                        $this->addCheckbox($ctl['name'], $ctl['text'])
-                             ->attrs($attr)
-                             ->id($ctl['id'])
-                             ->addClass($ctl['class']);
-                        break;
-                    case 'radiofield':
-                        $this->addRadioButton($ctl['name'], $ctl['text'])
-                             ->attrs($attr)
-                             ->id($ctl['id'])
-                             ->addClass($ctl['class']);
-                        break;
-                    case 'tag':
-                        $this->addTag($ctl['tag'])
-                             ->attrs($attr)
-                             ->attr('name', $ctl['name'])
-                             ->id($ctl['id'])
-                             ->addClass($ctl['class']);
-                        break;
-                    case 'opentag':
-                        $this->addTagOpen($ctl['tag'])
-                             ->attrs($attr)
-                             ->attr('name', $ctl['name'])
-                             ->id($ctl['id'])
-                             ->addClass($ctl['class']);
-                        break;
-                    case 'closetag':
-                        $this->addTagClose($ctl['tag']);
-                        break;
-                    case 'openfieldset':
-                        $this->addFieldsetOpen($ctl['legend'])
-                            ->attrs($attr)
-                            ->attr('name', $ctl['name'])
-                            ->id($ctl['id'])
-                            ->addClass($ctl['class']);
-                        break;
-                    case 'closefieldset':
-                        $this->addFieldsetClose();
-                        break;
-                    case 'button':
-                    case 'field':
-                    case 'fieldright':
-                    case 'filefield':
-                    case 'menufield':
-                    case 'listboxfield':
-                        throw new \UnexpectedValueException('Unsupported legacy field ' . $ctl['elem']);
-                        break;
-                    default:
-                        throw new \UnexpectedValueException('Unknown legacy field ' . $ctl['elem']);
-
-                }
-            } else {
-                $this->addHTML($element);
-            }
-        }
-
-    }
-
-    /**
-     * Parses out what is the elements attributes and what is control info
-     *
-     * @param array $legacy
-     * @return array
-     */
-    protected function parseLegacyAttr($legacy) {
-        $attributes = array();
-        $control = array();
-
-        foreach($legacy as $key => $val) {
-            if($key{0} == '_') {
-                $control[substr($key, 1)] = $val;
-            } elseif($key == 'name') {
-                $control[$key] = $val;
-            } elseif($key == 'id') {
-                $control[$key] = $val;
-            } else {
-                $attributes[$key] = $val;
-            }
-        }
-
-        return array($control, $attributes);
-    }
-
-    /**
-     * Translates our types to the legacy types
-     *
-     * @param string $type
-     * @return string
-     */
-    protected function legacyType($type) {
-        static $types = array(
-            'text' => 'textfield',
-            'password' => 'passwordfield',
-            'checkbox' => 'checkboxfield',
-            'radio' => 'radiofield',
-            'tagopen' => 'opentag',
-            'tagclose' => 'closetag',
-            'fieldsetopen' => 'openfieldset',
-            'fieldsetclose' => 'closefieldset',
-        );
-        if(isset($types[$type])) return $types[$type];
-        return $type;
-    }
-
-    /**
-     * Creates an old legacy form from this modern form's data
-     *
-     * @return \Doku_Form
-     */
-    public function toLegacy() {
-        $this->balanceFieldsets();
-
-        $legacy = new \Doku_Form($this->attrs());
-        $legacy->_hidden = $this->hidden;
-        foreach($this->elements as $element) {
-            if(is_a($element, 'dokuwiki\Form\HTMLElement')) {
-                $legacy->_content[] = $element->toHTML();
-            } elseif(is_a($element, 'dokuwiki\Form\InputElement')) {
-                /** @var InputElement $element */
-                $data = $element->attrs();
-                $data['_elem'] = $this->legacyType($element->getType());
-                $label = $element->getLabel();
-                if($label) {
-                    $data['_class'] = $label->attr('class');
-                }
-                $legacy->_content[] = $data;
-            }
-        }
-
-        return $legacy;
-    }
-}
diff --git a/wiki/inc/Form/OptGroup.php b/wiki/inc/Form/OptGroup.php
deleted file mode 100644
index 791f0b3..0000000
--- a/wiki/inc/Form/OptGroup.php
+++ /dev/null
@@ -1,100 +0,0 @@
-<?php
-
-namespace dokuwiki\Form;
-
-
-class OptGroup extends Element {
-    protected $options = array();
-    protected $value;
-
-    /**
-     * @param string $label The label text for this element (will be autoescaped)
-     * @param array  $options The available options
-     */
-    public function __construct($label, $options) {
-        parent::__construct('optGroup', array('label' => $label));
-        $this->options($options);
-    }
-
-    /**
-     * Store the given value so it can be used during rendering
-     *
-     * This is intended to be only called from within @see DropdownElement::val()
-     *
-     * @param string $value
-     * @return bool true if an option with the given value exists, false otherwise
-     */
-    public function storeValue($value) {
-        $this->value = $value;
-        return isset($this->options[$value]);
-    }
-
-    /**
-     * Get or set the options of the optgroup
-     *
-     * Options can be given as associative array (value => label) or as an
-     * indexd array (label = value) or as an array of arrays. In the latter
-     * case an element has to look as follows:
-     * option-value => array (
-     *                 'label' => option-label,
-     *                 'attrs' => array (
-     *                                    attr-key => attr-value, ...
-     *                                  )
-     *                 )
-     *
-     * @param null|array $options
-     * @return $this|array
-     */
-    public function options($options = null) {
-        if($options === null) return $this->options;
-        if(!is_array($options)) throw new \InvalidArgumentException('Options have to be an array');
-        $this->options = array();
-        foreach($options as $key => $val) {
-            if (is_array($val)) {
-                if (!key_exists('label', $val)) throw new \InvalidArgumentException('If option is given as array, it has to have a "label"-key!');
-                if (key_exists('attrs', $val) && is_array($val['attrs']) && key_exists('selected', $val['attrs'])) {
-                    throw new \InvalidArgumentException('Please use function "DropdownElement::val()" to set the selected option');
-                }
-                $this->options[$key] = $val;
-            } elseif(is_int($key)) {
-                $this->options[$val] = array('label' => (string) $val);
-            } else {
-                $this->options[$key] = array('label' => (string) $val);
-            }
-        }
-        return $this;
-    }
-
-
-    /**
-     * The HTML representation of this element
-     *
-     * @return string
-     */
-    public function toHTML() {
-        if ($this->attributes['label'] === null) {
-            return $this->renderOptions();
-        }
-        $html = '<optgroup '. buildAttributes($this->attrs()) . '>';
-        $html .= $this->renderOptions();
-        $html .= '</optgroup>';
-        return $html;
-    }
-
-
-    /**
-     * @return string
-     */
-    protected function renderOptions() {
-        $html = '';
-        foreach($this->options as $key => $val) {
-            $selected = ((string)$key === (string)$this->value) ? ' selected="selected"' : '';
-            $attrs = '';
-            if (!empty($val['attrs']) && is_array($val['attrs'])) {
-                $attrs = buildAttributes($val['attrs']);
-            }
-            $html .= '<option' . $selected . ' value="' . hsc($key) . '" '.$attrs.'>' . hsc($val['label']) . '</option>';
-        }
-        return $html;
-    }
-}
diff --git a/wiki/inc/Form/TagCloseElement.php b/wiki/inc/Form/TagCloseElement.php
deleted file mode 100644
index b6bf753..0000000
--- a/wiki/inc/Form/TagCloseElement.php
+++ /dev/null
@@ -1,88 +0,0 @@
-<?php
-namespace dokuwiki\Form;
-
-/**
- * Class TagCloseElement
- *
- * Creates an HTML close tag. You have to make sure it has been opened
- * before or this will produce invalid HTML
- *
- * @package dokuwiki\Form
- */
-class TagCloseElement extends ValueElement {
-
-    /**
-     * @param string $tag
-     * @param array $attributes
-     */
-    public function __construct($tag, $attributes = array()) {
-        parent::__construct('tagclose', $tag, $attributes);
-    }
-
-    /**
-     * do not call this
-     *
-     * @param string $class
-     * @return void
-     * @throws \BadMethodCallException
-     */
-    public function addClass($class) {
-        throw new \BadMethodCallException('You can\t add classes to closing tag');
-    }
-
-    /**
-     * do not call this
-     *
-     * @param null|string $id
-     * @return string
-     * @throws \BadMethodCallException
-     */
-    public function id($id = null) {
-        if ($id === null) {
-            return '';
-        } else {
-            throw new \BadMethodCallException('You can\t add ID to closing tag');
-        }
-    }
-
-    /**
-     * do not call this
-     *
-     * @param string $name
-     * @param null|string $value
-     * @return string
-     * @throws \BadMethodCallException
-     */
-    public function attr($name, $value = null) {
-        if ($value === null) {
-            return '';
-        } else {
-            throw new \BadMethodCallException('You can\t add attributes to closing tag');
-        }
-    }
-
-    /**
-     * do not call this
-     *
-     * @param array|null $attributes
-     * @return array
-     * @throws \BadMethodCallException
-     */
-    public function attrs($attributes = null) {
-        if ($attributes === null) {
-            return array();
-        } else {
-            throw new \BadMethodCallException('You can\t add attributes to closing tag');
-        }
-    }
-
-    /**
-     * The HTML representation of this element
-     *
-     * @return string
-     */
-    public function toHTML() {
-        return '</'.$this->val().'>';
-    }
-
-}
diff --git a/wiki/inc/Form/TagElement.php b/wiki/inc/Form/TagElement.php
deleted file mode 100644
index ea5144c..0000000
--- a/wiki/inc/Form/TagElement.php
+++ /dev/null
@@ -1,29 +0,0 @@
-<?php
-namespace dokuwiki\Form;
-
-/**
- * Class TagElement
- *
- * Creates a self closing HTML tag
- *
- * @package dokuwiki\Form
- */
-class TagElement extends ValueElement {
-
-    /**
-     * @param string $tag
-     * @param array $attributes
-     */
-    public function __construct($tag, $attributes = array()) {
-        parent::__construct('tag', $tag, $attributes);
-    }
-
-    /**
-     * The HTML representation of this element
-     *
-     * @return string
-     */
-    public function toHTML() {
-        return '<'.$this->val().' '.buildAttributes($this->attrs()).' />';
-    }
-}
diff --git a/wiki/inc/Form/TagOpenElement.php b/wiki/inc/Form/TagOpenElement.php
deleted file mode 100644
index 0afe97b..0000000
--- a/wiki/inc/Form/TagOpenElement.php
+++ /dev/null
@@ -1,30 +0,0 @@
-<?php
-namespace dokuwiki\Form;
-
-/**
- * Class TagOpenElement
- *
- * Creates an open HTML tag. You have to make sure you close it
- * again or this will produce invalid HTML
- *
- * @package dokuwiki\Form
- */
-class TagOpenElement extends ValueElement {
-
-    /**
-     * @param string $tag
-     * @param array $attributes
-     */
-    public function __construct($tag, $attributes = array()) {
-        parent::__construct('tagopen', $tag, $attributes);
-    }
-
-    /**
-     * The HTML representation of this element
-     *
-     * @return string
-     */
-    public function toHTML() {
-        return '<'.$this->val().' '.buildAttributes($this->attrs()).'>';
-    }
-}
diff --git a/wiki/inc/Form/TextareaElement.php b/wiki/inc/Form/TextareaElement.php
deleted file mode 100644
index 92741ee..0000000
--- a/wiki/inc/Form/TextareaElement.php
+++ /dev/null
@@ -1,51 +0,0 @@
-<?php
-namespace dokuwiki\Form;
-
-/**
- * Class TextareaElement
- * @package dokuwiki\Form
- */
-class TextareaElement extends InputElement {
-
-    /**
-     * @var string the actual text within the area
-     */
-    protected $text;
-
-    /**
-     * @param string $name The name of this form element
-     * @param string $label The label text for this element
-     */
-    public function __construct($name, $label) {
-        parent::__construct('textarea', $name, $label);
-        $this->attr('dir', 'auto');
-    }
-
-    /**
-     * Get or set the element's value
-     *
-     * This is the preferred way of setting the element's value
-     *
-     * @param null|string $value
-     * @return string|$this
-     */
-    public function val($value = null) {
-        if($value !== null) {
-            $this->text = cleanText($value);
-            return $this;
-        }
-        return $this->text;
-    }
-
-    /**
-     * The HTML representation of this element
-     *
-     * @return string
-     */
-    protected function mainElementHTML() {
-        if($this->useInput) $this->prefillInput();
-        return '<textarea ' . buildAttributes($this->attrs()) . '>' .
-        formText($this->val()) . '</textarea>';
-    }
-
-}
diff --git a/wiki/inc/Form/ValueElement.php b/wiki/inc/Form/ValueElement.php
deleted file mode 100644
index 88db167..0000000
--- a/wiki/inc/Form/ValueElement.php
+++ /dev/null
@@ -1,45 +0,0 @@
-<?php
-
-namespace dokuwiki\Form;
-
-/**
- * Class ValueElement
- *
- * Just like an Element but it's value is not part of its attributes
- *
- * What the value is (tag name, content, etc) is defined by the actual implementations
- *
- * @package dokuwiki\Form
- */
-abstract class ValueElement extends Element {
-
-    /**
-     * @var string holds the element's value
-     */
-    protected $value = '';
-
-    /**
-     * @param string $type
-     * @param string $value
-     * @param array $attributes
-     */
-    public function __construct($type, $value, $attributes = array()) {
-        parent::__construct($type, $attributes);
-        $this->val($value);
-    }
-
-    /**
-     * Get or set the element's value
-     *
-     * @param null|string $value
-     * @return string|$this
-     */
-    public function val($value = null) {
-        if($value !== null) {
-            $this->value = $value;
-            return $this;
-        }
-        return $this->value;
-    }
-
-}
diff --git a/wiki/inc/HTTPClient.php b/wiki/inc/HTTPClient.php
deleted file mode 100644
index e20b7d9..0000000
--- a/wiki/inc/HTTPClient.php
+++ /dev/null
@@ -1,943 +0,0 @@
-<?php
-/**
- * HTTP Client
- *
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * @author     Andreas Goetz <cpuidle@gmx.de>
- */
-
-
-define('HTTP_NL',"\r\n");
-
-/**
- * Class HTTPClientException
- */
-class HTTPClientException extends Exception { }
-
-/**
- * This class implements a basic HTTP client
- *
- * It supports POST and GET, Proxy usage, basic authentication,
- * handles cookies and referers. It is based upon the httpclient
- * function from the VideoDB project.
- *
- * @link   http://www.splitbrain.org/go/videodb
- * @author Andreas Goetz <cpuidle@gmx.de>
- * @author Andreas Gohr <andi@splitbrain.org>
- * @author Tobias Sarnowski <sarnowski@new-thoughts.org>
- */
-class HTTPClient {
-    //set these if you like
-    var $agent;         // User agent
-    var $http;          // HTTP version defaults to 1.0
-    var $timeout;       // read timeout (seconds)
-    var $cookies;
-    var $referer;
-    var $max_redirect;
-    var $max_bodysize;
-    var $max_bodysize_abort = true;  // if set, abort if the response body is bigger than max_bodysize
-    var $header_regexp; // if set this RE must match against the headers, else abort
-    var $headers;
-    var $debug;
-    var $start = 0.0; // for timings
-    var $keep_alive = true; // keep alive rocks
-
-    // don't set these, read on error
-    var $error;
-    var $redirect_count;
-
-    // read these after a successful request
-    var $status;
-    var $resp_body;
-    var $resp_headers;
-
-    // set these to do basic authentication
-    var $user;
-    var $pass;
-
-    // set these if you need to use a proxy
-    var $proxy_host;
-    var $proxy_port;
-    var $proxy_user;
-    var $proxy_pass;
-    var $proxy_ssl; //boolean set to true if your proxy needs SSL
-    var $proxy_except; // regexp of URLs to exclude from proxy
-
-    // list of kept alive connections
-    static $connections = array();
-
-    // what we use as boundary on multipart/form-data posts
-    var $boundary = '---DokuWikiHTTPClient--4523452351';
-
-    /**
-     * Constructor.
-     *
-     * @author Andreas Gohr <andi@splitbrain.org>
-     */
-    function __construct(){
-        $this->agent        = 'Mozilla/4.0 (compatible; DokuWiki HTTP Client; '.PHP_OS.')';
-        $this->timeout      = 15;
-        $this->cookies      = array();
-        $this->referer      = '';
-        $this->max_redirect = 3;
-        $this->redirect_count = 0;
-        $this->status       = 0;
-        $this->headers      = array();
-        $this->http         = '1.0';
-        $this->debug        = false;
-        $this->max_bodysize = 0;
-        $this->header_regexp= '';
-        if(extension_loaded('zlib')) $this->headers['Accept-encoding'] = 'gzip';
-        $this->headers['Accept'] = 'text/xml,application/xml,application/xhtml+xml,'.
-                                   'text/html,text/plain,image/png,image/jpeg,image/gif,*/*';
-        $this->headers['Accept-Language'] = 'en-us';
-    }
-
-
-    /**
-     * Simple function to do a GET request
-     *
-     * Returns the wanted page or false on an error;
-     *
-     * @param  string $url       The URL to fetch
-     * @param  bool   $sloppy304 Return body on 304 not modified
-     * @return false|string  response body, false on error
-     *
-     * @author Andreas Gohr <andi@splitbrain.org>
-     */
-    function get($url,$sloppy304=false){
-        if(!$this->sendRequest($url)) return false;
-        if($this->status == 304 && $sloppy304) return $this->resp_body;
-        if($this->status < 200 || $this->status > 206) return false;
-        return $this->resp_body;
-    }
-
-    /**
-     * Simple function to do a GET request with given parameters
-     *
-     * Returns the wanted page or false on an error.
-     *
-     * This is a convenience wrapper around get(). The given parameters
-     * will be correctly encoded and added to the given base URL.
-     *
-     * @param  string $url       The URL to fetch
-     * @param  array  $data      Associative array of parameters
-     * @param  bool   $sloppy304 Return body on 304 not modified
-     * @return false|string  response body, false on error
-     *
-     * @author Andreas Gohr <andi@splitbrain.org>
-     */
-    function dget($url,$data,$sloppy304=false){
-        if(strpos($url,'?')){
-            $url .= '&';
-        }else{
-            $url .= '?';
-        }
-        $url .= $this->_postEncode($data);
-        return $this->get($url,$sloppy304);
-    }
-
-    /**
-     * Simple function to do a POST request
-     *
-     * Returns the resulting page or false on an error;
-     *
-     * @param  string $url       The URL to fetch
-     * @param  array  $data      Associative array of parameters
-     * @return false|string  response body, false on error
-     * @author Andreas Gohr <andi@splitbrain.org>
-     */
-    function post($url,$data){
-        if(!$this->sendRequest($url,$data,'POST')) return false;
-        if($this->status < 200 || $this->status > 206) return false;
-        return $this->resp_body;
-    }
-
-    /**
-     * Send an HTTP request
-     *
-     * This method handles the whole HTTP communication. It respects set proxy settings,
-     * builds the request headers, follows redirects and parses the response.
-     *
-     * Post data should be passed as associative array. When passed as string it will be
-     * sent as is. You will need to setup your own Content-Type header then.
-     *
-     * @param  string $url    - the complete URL
-     * @param  mixed  $data   - the post data either as array or raw data
-     * @param  string $method - HTTP Method usually GET or POST.
-     * @return bool - true on success
-     *
-     * @author Andreas Goetz <cpuidle@gmx.de>
-     * @author Andreas Gohr <andi@splitbrain.org>
-     */
-    function sendRequest($url,$data='',$method='GET'){
-        $this->start  = $this->_time();
-        $this->error  = '';
-        $this->status = 0;
-        $this->status = 0;
-        $this->resp_body = '';
-        $this->resp_headers = array();
-
-        // don't accept gzip if truncated bodies might occur
-        if($this->max_bodysize &&
-           !$this->max_bodysize_abort &&
-           $this->headers['Accept-encoding'] == 'gzip'){
-            unset($this->headers['Accept-encoding']);
-        }
-
-        // parse URL into bits
-        $uri = parse_url($url);
-        $server = $uri['host'];
-        $path   = $uri['path'];
-        if(empty($path)) $path = '/';
-        if(!empty($uri['query'])) $path .= '?'.$uri['query'];
-        if(!empty($uri['port'])) $port = $uri['port'];
-        if(isset($uri['user'])) $this->user = $uri['user'];
-        if(isset($uri['pass'])) $this->pass = $uri['pass'];
-
-        // proxy setup
-        if($this->proxy_host && (!$this->proxy_except || !preg_match('/'.$this->proxy_except.'/i',$url)) ){
-            $request_url = $url;
-            $server      = $this->proxy_host;
-            $port        = $this->proxy_port;
-            if (empty($port)) $port = 8080;
-            $use_tls     = $this->proxy_ssl;
-        }else{
-            $request_url = $path;
-            if (!isset($port)) $port = ($uri['scheme'] == 'https') ? 443 : 80;
-            $use_tls     = ($uri['scheme'] == 'https');
-        }
-
-        // add SSL stream prefix if needed - needs SSL support in PHP
-        if($use_tls) {
-            if(!in_array('ssl', stream_get_transports())) {
-                $this->status = -200;
-                $this->error = 'This PHP version does not support SSL - cannot connect to server';
-            }
-            $server = 'ssl://'.$server;
-        }
-
-        // prepare headers
-        $headers               = $this->headers;
-        $headers['Host']       = $uri['host'];
-        if(!empty($uri['port'])) $headers['Host'].= ':'.$uri['port'];
-        $headers['User-Agent'] = $this->agent;
-        $headers['Referer']    = $this->referer;
-
-        if($method == 'POST'){
-            if(is_array($data)){
-                if (empty($headers['Content-Type'])) {
-                    $headers['Content-Type'] = null;
-                }
-                switch ($headers['Content-Type']) {
-                case 'multipart/form-data':
-                    $headers['Content-Type']   = 'multipart/form-data; boundary=' . $this->boundary;
-                    $data = $this->_postMultipartEncode($data);
-                    break;
-                default:
-                    $headers['Content-Type']   = 'application/x-www-form-urlencoded';
-                    $data = $this->_postEncode($data);
-                }
-            }
-        }elseif($method == 'GET'){
-            $data = ''; //no data allowed on GET requests
-        }
-
-        $contentlength = strlen($data);
-        if($contentlength)  {
-            $headers['Content-Length'] = $contentlength;
-        }
-
-        if($this->user) {
-            $headers['Authorization'] = 'Basic '.base64_encode($this->user.':'.$this->pass);
-        }
-        if($this->proxy_user) {
-            $headers['Proxy-Authorization'] = 'Basic '.base64_encode($this->proxy_user.':'.$this->proxy_pass);
-        }
-
-        // already connected?
-        $connectionId = $this->_uniqueConnectionId($server,$port);
-        $this->_debug('connection pool', self::$connections);
-        $socket = null;
-        if (isset(self::$connections[$connectionId])) {
-            $this->_debug('reusing connection', $connectionId);
-            $socket = self::$connections[$connectionId];
-        }
-        if (is_null($socket) || feof($socket)) {
-            $this->_debug('opening connection', $connectionId);
-            // open socket
-            $socket = @fsockopen($server,$port,$errno, $errstr, $this->timeout);
-            if (!$socket){
-                $this->status = -100;
-                $this->error = "Could not connect to $server:$port\n$errstr ($errno)";
-                return false;
-            }
-
-            // try establish a CONNECT tunnel for SSL
-            try {
-                if($this->_ssltunnel($socket, $request_url)){
-                    // no keep alive for tunnels
-                    $this->keep_alive = false;
-                    // tunnel is authed already
-                    if(isset($headers['Proxy-Authentication'])) unset($headers['Proxy-Authentication']);
-                }
-            } catch (HTTPClientException $e) {
-                $this->status = $e->getCode();
-                $this->error = $e->getMessage();
-                fclose($socket);
-                return false;
-            }
-
-            // keep alive?
-            if ($this->keep_alive) {
-                self::$connections[$connectionId] = $socket;
-            } else {
-                unset(self::$connections[$connectionId]);
-            }
-        }
-
-        if ($this->keep_alive && !$this->proxy_host) {
-            // RFC 2068, section 19.7.1: A client MUST NOT send the Keep-Alive
-            // connection token to a proxy server. We still do keep the connection the
-            // proxy alive (well except for CONNECT tunnels)
-            $headers['Connection'] = 'Keep-Alive';
-        } else {
-            $headers['Connection'] = 'Close';
-        }
-
-        try {
-            //set non-blocking
-            stream_set_blocking($socket, 0);
-
-            // build request
-            $request  = "$method $request_url HTTP/".$this->http.HTTP_NL;
-            $request .= $this->_buildHeaders($headers);
-            $request .= $this->_getCookies();
-            $request .= HTTP_NL;
-            $request .= $data;
-
-            $this->_debug('request',$request);
-            $this->_sendData($socket, $request, 'request');
-
-            // read headers from socket
-            $r_headers = '';
-            do{
-                $r_line = $this->_readLine($socket, 'headers');
-                $r_headers .= $r_line;
-            }while($r_line != "\r\n" && $r_line != "\n");
-
-            $this->_debug('response headers',$r_headers);
-
-            // check if expected body size exceeds allowance
-            if($this->max_bodysize && preg_match('/\r?\nContent-Length:\s*(\d+)\r?\n/i',$r_headers,$match)){
-                if($match[1] > $this->max_bodysize){
-                    if ($this->max_bodysize_abort)
-                        throw new HTTPClientException('Reported content length exceeds allowed response size');
-                    else
-                        $this->error = 'Reported content length exceeds allowed response size';
-                }
-            }
-
-            // get Status
-            if (!preg_match('/^HTTP\/(\d\.\d)\s*(\d+).*?\n/', $r_headers, $m))
-                throw new HTTPClientException('Server returned bad answer '.$r_headers);
-
-            $this->status = $m[2];
-
-            // handle headers and cookies
-            $this->resp_headers = $this->_parseHeaders($r_headers);
-            if(isset($this->resp_headers['set-cookie'])){
-                foreach ((array) $this->resp_headers['set-cookie'] as $cookie){
-                    list($cookie)   = explode(';',$cookie,2);
-                    list($key,$val) = explode('=',$cookie,2);
-                    $key = trim($key);
-                    if($val == 'deleted'){
-                        if(isset($this->cookies[$key])){
-                            unset($this->cookies[$key]);
-                        }
-                    }elseif($key){
-                        $this->cookies[$key] = $val;
-                    }
-                }
-            }
-
-            $this->_debug('Object headers',$this->resp_headers);
-
-            // check server status code to follow redirect
-            if($this->status == 301 || $this->status == 302 ){
-                if (empty($this->resp_headers['location'])){
-                    throw new HTTPClientException('Redirect but no Location Header found');
-                }elseif($this->redirect_count == $this->max_redirect){
-                    throw new HTTPClientException('Maximum number of redirects exceeded');
-                }else{
-                    // close the connection because we don't handle content retrieval here
-                    // that's the easiest way to clean up the connection
-                    fclose($socket);
-                    unset(self::$connections[$connectionId]);
-
-                    $this->redirect_count++;
-                    $this->referer = $url;
-                    // handle non-RFC-compliant relative redirects
-                    if (!preg_match('/^http/i', $this->resp_headers['location'])){
-                        if($this->resp_headers['location'][0] != '/'){
-                            $this->resp_headers['location'] = $uri['scheme'].'://'.$uri['host'].':'.$uri['port'].
-                                                            dirname($uri['path']).'/'.$this->resp_headers['location'];
-                        }else{
-                            $this->resp_headers['location'] = $uri['scheme'].'://'.$uri['host'].':'.$uri['port'].
-                                                            $this->resp_headers['location'];
-                        }
-                    }
-                    // perform redirected request, always via GET (required by RFC)
-                    return $this->sendRequest($this->resp_headers['location'],array(),'GET');
-                }
-            }
-
-            // check if headers are as expected
-            if($this->header_regexp && !preg_match($this->header_regexp,$r_headers))
-                throw new HTTPClientException('The received headers did not match the given regexp');
-
-            //read body (with chunked encoding if needed)
-            $r_body    = '';
-            if((isset($this->resp_headers['transfer-encoding']) && $this->resp_headers['transfer-encoding'] == 'chunked')
-            || (isset($this->resp_headers['transfer-coding']) && $this->resp_headers['transfer-coding'] == 'chunked')){
-                $abort = false;
-                do {
-                    $chunk_size = '';
-                    while (preg_match('/^[a-zA-Z0-9]?$/',$byte=$this->_readData($socket,1,'chunk'))){
-                        // read chunksize until \r
-                        $chunk_size .= $byte;
-                        if (strlen($chunk_size) > 128) // set an abritrary limit on the size of chunks
-                            throw new HTTPClientException('Allowed response size exceeded');
-                    }
-                    $this->_readLine($socket, 'chunk');     // readtrailing \n
-                    $chunk_size = hexdec($chunk_size);
-
-                    if($this->max_bodysize && $chunk_size+strlen($r_body) > $this->max_bodysize){
-                        if ($this->max_bodysize_abort)
-                            throw new HTTPClientException('Allowed response size exceeded');
-                        $this->error = 'Allowed response size exceeded';
-                        $chunk_size = $this->max_bodysize - strlen($r_body);
-                        $abort = true;
-                    }
-
-                    if ($chunk_size > 0) {
-                        $r_body .= $this->_readData($socket, $chunk_size, 'chunk');
-                        $this->_readData($socket, 2, 'chunk'); // read trailing \r\n
-                    }
-                } while ($chunk_size && !$abort);
-            }elseif(isset($this->resp_headers['content-length']) && !isset($this->resp_headers['transfer-encoding'])){
-                /* RFC 2616
-                 * If a message is received with both a Transfer-Encoding header field and a Content-Length
-                 * header field, the latter MUST be ignored.
-                 */
-
-                // read up to the content-length or max_bodysize
-                // for keep alive we need to read the whole message to clean up the socket for the next read
-                if(!$this->keep_alive && $this->max_bodysize && $this->max_bodysize < $this->resp_headers['content-length']){
-                    $length = $this->max_bodysize;
-                }else{
-                    $length = $this->resp_headers['content-length'];
-                }
-
-                $r_body = $this->_readData($socket, $length, 'response (content-length limited)', true);
-            }elseif( !isset($this->resp_headers['transfer-encoding']) && $this->max_bodysize && !$this->keep_alive){
-                $r_body = $this->_readData($socket, $this->max_bodysize, 'response (content-length limited)', true);
-            } elseif ((int)$this->status === 204) {
-                // request has no content
-            } else{
-                // read entire socket
-                while (!feof($socket)) {
-                    $r_body .= $this->_readData($socket, 4096, 'response (unlimited)', true);
-                }
-            }
-
-            // recheck body size, we might had to read the whole body, so we abort late or trim here
-            if($this->max_bodysize){
-                if(strlen($r_body) > $this->max_bodysize){
-                    if ($this->max_bodysize_abort) {
-                        throw new HTTPClientException('Allowed response size exceeded');
-                    } else {
-                        $this->error = 'Allowed response size exceeded';
-                    }
-                }
-            }
-
-        } catch (HTTPClientException $err) {
-            $this->error = $err->getMessage();
-            if ($err->getCode())
-                $this->status = $err->getCode();
-            unset(self::$connections[$connectionId]);
-            fclose($socket);
-            return false;
-        }
-
-        if (!$this->keep_alive ||
-                (isset($this->resp_headers['connection']) && $this->resp_headers['connection'] == 'Close')) {
-            // close socket
-            fclose($socket);
-            unset(self::$connections[$connectionId]);
-        }
-
-        // decode gzip if needed
-        if(isset($this->resp_headers['content-encoding']) &&
-           $this->resp_headers['content-encoding'] == 'gzip' &&
-           strlen($r_body) > 10 && substr($r_body,0,3)=="\x1f\x8b\x08"){
-            $this->resp_body = @gzinflate(substr($r_body, 10));
-            if($this->resp_body === false){
-                $this->error = 'Failed to decompress gzip encoded content';
-                $this->resp_body = $r_body;
-            }
-        }else{
-            $this->resp_body = $r_body;
-        }
-
-        $this->_debug('response body',$this->resp_body);
-        $this->redirect_count = 0;
-        return true;
-    }
-
-    /**
-     * Tries to establish a CONNECT tunnel via Proxy
-     *
-     * Protocol, Servername and Port will be stripped from the request URL when a successful CONNECT happened
-     *
-     * @param resource &$socket
-     * @param string   &$requesturl
-     * @throws HTTPClientException when a tunnel is needed but could not be established
-     * @return bool true if a tunnel was established
-     */
-    function _ssltunnel(&$socket, &$requesturl){
-        if(!$this->proxy_host) return false;
-        $requestinfo = parse_url($requesturl);
-        if($requestinfo['scheme'] != 'https') return false;
-        if(!$requestinfo['port']) $requestinfo['port'] = 443;
-
-        // build request
-        $request  = "CONNECT {$requestinfo['host']}:{$requestinfo['port']} HTTP/1.0".HTTP_NL;
-        $request .= "Host: {$requestinfo['host']}".HTTP_NL;
-        if($this->proxy_user) {
-            $request .= 'Proxy-Authorization: Basic '.base64_encode($this->proxy_user.':'.$this->proxy_pass).HTTP_NL;
-        }
-        $request .= HTTP_NL;
-
-        $this->_debug('SSL Tunnel CONNECT',$request);
-        $this->_sendData($socket, $request, 'SSL Tunnel CONNECT');
-
-        // read headers from socket
-        $r_headers = '';
-        do{
-            $r_line = $this->_readLine($socket, 'headers');
-            $r_headers .= $r_line;
-        }while($r_line != "\r\n" && $r_line != "\n");
-
-        $this->_debug('SSL Tunnel Response',$r_headers);
-        if(preg_match('/^HTTP\/1\.[01] 200/i',$r_headers)){
-            // set correct peer name for verification (enabled since PHP 5.6)
-            stream_context_set_option($socket, 'ssl', 'peer_name', $requestinfo['host']);
-
-            // SSLv3 is broken, use only TLS connections.
-            // @link https://bugs.php.net/69195
-            if (PHP_VERSION_ID >= 50600 && PHP_VERSION_ID <= 50606) {
-                $cryptoMethod = STREAM_CRYPTO_METHOD_TLS_CLIENT;
-            } else {
-                // actually means neither SSLv2 nor SSLv3
-                $cryptoMethod = STREAM_CRYPTO_METHOD_SSLv23_CLIENT;
-            }
-
-            if (@stream_socket_enable_crypto($socket, true, $cryptoMethod)) {
-                $requesturl = $requestinfo['path'].
-                  (!empty($requestinfo['query'])?'?'.$requestinfo['query']:'');
-                return true;
-            }
-
-            throw new HTTPClientException('Failed to set up crypto for secure connection to '.$requestinfo['host'], -151);
-        }
-
-        throw new HTTPClientException('Failed to establish secure proxy connection', -150);
-    }
-
-    /**
-     * Safely write data to a socket
-     *
-     * @param  resource $socket     An open socket handle
-     * @param  string   $data       The data to write
-     * @param  string   $message    Description of what is being read
-     * @throws HTTPClientException
-     *
-     * @author Tom N Harris <tnharris@whoopdedo.org>
-     */
-    function _sendData($socket, $data, $message) {
-        // send request
-        $towrite = strlen($data);
-        $written = 0;
-        while($written < $towrite){
-            // check timeout
-            $time_used = $this->_time() - $this->start;
-            if($time_used > $this->timeout)
-                throw new HTTPClientException(sprintf('Timeout while sending %s (%.3fs)',$message, $time_used), -100);
-            if(feof($socket))
-                throw new HTTPClientException("Socket disconnected while writing $message");
-
-            // select parameters
-            $sel_r = null;
-            $sel_w = array($socket);
-            $sel_e = null;
-            // wait for stream ready or timeout (1sec)
-            if(@stream_select($sel_r,$sel_w,$sel_e,1) === false){
-                 usleep(1000);
-                 continue;
-            }
-
-            // write to stream
-            $nbytes = fwrite($socket, substr($data,$written,4096));
-            if($nbytes === false)
-                throw new HTTPClientException("Failed writing to socket while sending $message", -100);
-            $written += $nbytes;
-        }
-    }
-
-    /**
-     * Safely read data from a socket
-     *
-     * Reads up to a given number of bytes or throws an exception if the
-     * response times out or ends prematurely.
-     *
-     * @param  resource $socket     An open socket handle in non-blocking mode
-     * @param  int      $nbytes     Number of bytes to read
-     * @param  string   $message    Description of what is being read
-     * @param  bool     $ignore_eof End-of-file is not an error if this is set
-     * @throws HTTPClientException
-     * @return string
-     *
-     * @author Tom N Harris <tnharris@whoopdedo.org>
-     */
-    function _readData($socket, $nbytes, $message, $ignore_eof = false) {
-        $r_data = '';
-        // Does not return immediately so timeout and eof can be checked
-        if ($nbytes < 0) $nbytes = 0;
-        $to_read = $nbytes;
-        do {
-            $time_used = $this->_time() - $this->start;
-            if ($time_used > $this->timeout)
-                throw new HTTPClientException(
-                        sprintf('Timeout while reading %s after %d bytes (%.3fs)', $message,
-                                strlen($r_data), $time_used), -100);
-            if(feof($socket)) {
-                if(!$ignore_eof)
-                    throw new HTTPClientException("Premature End of File (socket) while reading $message");
-                break;
-            }
-
-            if ($to_read > 0) {
-                // select parameters
-                $sel_r = array($socket);
-                $sel_w = null;
-                $sel_e = null;
-                // wait for stream ready or timeout (1sec)
-                if(@stream_select($sel_r,$sel_w,$sel_e,1) === false){
-                     usleep(1000);
-                     continue;
-                }
-
-                $bytes = fread($socket, $to_read);
-                if($bytes === false)
-                    throw new HTTPClientException("Failed reading from socket while reading $message", -100);
-                $r_data .= $bytes;
-                $to_read -= strlen($bytes);
-            }
-        } while ($to_read > 0 && strlen($r_data) < $nbytes);
-        return $r_data;
-    }
-
-    /**
-     * Safely read a \n-terminated line from a socket
-     *
-     * Always returns a complete line, including the terminating \n.
-     *
-     * @param  resource $socket     An open socket handle in non-blocking mode
-     * @param  string   $message    Description of what is being read
-     * @throws HTTPClientException
-     * @return string
-     *
-     * @author Tom N Harris <tnharris@whoopdedo.org>
-     */
-    function _readLine($socket, $message) {
-        $r_data = '';
-        do {
-            $time_used = $this->_time() - $this->start;
-            if ($time_used > $this->timeout)
-                throw new HTTPClientException(
-                        sprintf('Timeout while reading %s (%.3fs) >%s<', $message, $time_used, $r_data),
-                        -100);
-            if(feof($socket))
-                throw new HTTPClientException("Premature End of File (socket) while reading $message");
-
-            // select parameters
-            $sel_r = array($socket);
-            $sel_w = null;
-            $sel_e = null;
-            // wait for stream ready or timeout (1sec)
-            if(@stream_select($sel_r,$sel_w,$sel_e,1) === false){
-                 usleep(1000);
-                 continue;
-            }
-
-            $r_data = fgets($socket, 1024);
-        } while (!preg_match('/\n$/',$r_data));
-        return $r_data;
-    }
-
-    /**
-     * print debug info
-     *
-     * Uses _debug_text or _debug_html depending on the SAPI name
-     *
-     * @author Andreas Gohr <andi@splitbrain.org>
-     *
-     * @param string $info
-     * @param mixed  $var
-     */
-    function _debug($info,$var=null){
-        if(!$this->debug) return;
-        if(php_sapi_name() == 'cli'){
-            $this->_debug_text($info, $var);
-        }else{
-            $this->_debug_html($info, $var);
-        }
-    }
-
-    /**
-     * print debug info as HTML
-     *
-     * @param string $info
-     * @param mixed  $var
-     */
-    function _debug_html($info, $var=null){
-        print '<b>'.$info.'</b> '.($this->_time() - $this->start).'s<br />';
-        if(!is_null($var)){
-            ob_start();
-            print_r($var);
-            $content = htmlspecialchars(ob_get_contents());
-            ob_end_clean();
-            print '<pre>'.$content.'</pre>';
-        }
-    }
-
-    /**
-     * prints debug info as plain text
-     *
-     * @param string $info
-     * @param mixed  $var
-     */
-    function _debug_text($info, $var=null){
-        print '*'.$info.'* '.($this->_time() - $this->start)."s\n";
-        if(!is_null($var)) print_r($var);
-        print "\n-----------------------------------------------\n";
-    }
-
-    /**
-     * Return current timestamp in microsecond resolution
-     *
-     * @return float
-     */
-    static function _time(){
-        list($usec, $sec) = explode(" ", microtime());
-        return ((float)$usec + (float)$sec);
-    }
-
-    /**
-     * convert given header string to Header array
-     *
-     * All Keys are lowercased.
-     *
-     * @author Andreas Gohr <andi@splitbrain.org>
-     *
-     * @param string $string
-     * @return array
-     */
-    function _parseHeaders($string){
-        $headers = array();
-        $lines = explode("\n",$string);
-        array_shift($lines); //skip first line (status)
-        foreach($lines as $line){
-            @list($key, $val) = explode(':',$line,2);
-            $key = trim($key);
-            $val = trim($val);
-            $key = strtolower($key);
-            if(!$key) continue;
-            if(isset($headers[$key])){
-                if(is_array($headers[$key])){
-                    $headers[$key][] = $val;
-                }else{
-                    $headers[$key] = array($headers[$key],$val);
-                }
-            }else{
-                $headers[$key] = $val;
-            }
-        }
-        return $headers;
-    }
-
-    /**
-     * convert given header array to header string
-     *
-     * @author Andreas Gohr <andi@splitbrain.org>
-     *
-     * @param array $headers
-     * @return string
-     */
-    function _buildHeaders($headers){
-        $string = '';
-        foreach($headers as $key => $value){
-            if($value === '') continue;
-            $string .= $key.': '.$value.HTTP_NL;
-        }
-        return $string;
-    }
-
-    /**
-     * get cookies as http header string
-     *
-     * @author Andreas Goetz <cpuidle@gmx.de>
-     *
-     * @return string
-     */
-    function _getCookies(){
-        $headers = '';
-        foreach ($this->cookies as $key => $val){
-            $headers .= "$key=$val; ";
-        }
-        $headers = substr($headers, 0, -2);
-        if ($headers) $headers = "Cookie: $headers".HTTP_NL;
-        return $headers;
-    }
-
-    /**
-     * Encode data for posting
-     *
-     * @author Andreas Gohr <andi@splitbrain.org>
-     *
-     * @param array $data
-     * @return string
-     */
-    function _postEncode($data){
-        return http_build_query($data,'','&');
-    }
-
-    /**
-     * Encode data for posting using multipart encoding
-     *
-     * @fixme use of urlencode might be wrong here
-     * @author Andreas Gohr <andi@splitbrain.org>
-     *
-     * @param array $data
-     * @return string
-     */
-    function _postMultipartEncode($data){
-        $boundary = '--'.$this->boundary;
-        $out = '';
-        foreach($data as $key => $val){
-            $out .= $boundary.HTTP_NL;
-            if(!is_array($val)){
-                $out .= 'Content-Disposition: form-data; name="'.urlencode($key).'"'.HTTP_NL;
-                $out .= HTTP_NL; // end of headers
-                $out .= $val;
-                $out .= HTTP_NL;
-            }else{
-                $out .= 'Content-Disposition: form-data; name="'.urlencode($key).'"';
-                if($val['filename']) $out .= '; filename="'.urlencode($val['filename']).'"';
-                $out .= HTTP_NL;
-                if($val['mimetype']) $out .= 'Content-Type: '.$val['mimetype'].HTTP_NL;
-                $out .= HTTP_NL; // end of headers
-                $out .= $val['body'];
-                $out .= HTTP_NL;
-            }
-        }
-        $out .= "$boundary--".HTTP_NL;
-        return $out;
-    }
-
-    /**
-     * Generates a unique identifier for a connection.
-     *
-     * @param  string $server
-     * @param  string $port
-     * @return string unique identifier
-     */
-    function _uniqueConnectionId($server, $port) {
-        return "$server:$port";
-    }
-}
-
-
-/**
- * Adds DokuWiki specific configs to the HTTP client
- *
- * @author Andreas Goetz <cpuidle@gmx.de>
- */
-class DokuHTTPClient extends HTTPClient {
-
-    /**
-     * Constructor.
-     *
-     * @author Andreas Gohr <andi@splitbrain.org>
-     */
-    function __construct(){
-        global $conf;
-
-        // call parent constructor
-        parent::__construct();
-
-        // set some values from the config
-        $this->proxy_host   = $conf['proxy']['host'];
-        $this->proxy_port   = $conf['proxy']['port'];
-        $this->proxy_user   = $conf['proxy']['user'];
-        $this->proxy_pass   = conf_decodeString($conf['proxy']['pass']);
-        $this->proxy_ssl    = $conf['proxy']['ssl'];
-        $this->proxy_except = $conf['proxy']['except'];
-
-        // allow enabling debugging via URL parameter (if debugging allowed)
-        if($conf['allowdebug']) {
-            if(
-                isset($_REQUEST['httpdebug']) ||
-                (
-                    isset($_SERVER['HTTP_REFERER']) &&
-                    strpos($_SERVER['HTTP_REFERER'], 'httpdebug') !== false
-                )
-            ) {
-                $this->debug = true;
-            }
-        }
-    }
-
-
-    /**
-     * Wraps an event around the parent function
-     *
-     * @triggers HTTPCLIENT_REQUEST_SEND
-     * @author   Andreas Gohr <andi@splitbrain.org>
-     */
-    /**
-     * @param string $url
-     * @param string|array $data the post data either as array or raw data
-     * @param string $method
-     * @return bool
-     */
-    function sendRequest($url,$data='',$method='GET'){
-        $httpdata = array('url'    => $url,
-                          'data'   => $data,
-                          'method' => $method);
-        $evt = new Doku_Event('HTTPCLIENT_REQUEST_SEND',$httpdata);
-        if($evt->advise_before()){
-            $url    = $httpdata['url'];
-            $data   = $httpdata['data'];
-            $method = $httpdata['method'];
-        }
-        $evt->advise_after();
-        unset($evt);
-        return parent::sendRequest($url,$data,$method);
-    }
-
-}
-
-//Setup VIM: ex: et ts=4 :
diff --git a/wiki/inc/IXR_Library.php b/wiki/inc/IXR_Library.php
deleted file mode 100644
index 5ae1402..0000000
--- a/wiki/inc/IXR_Library.php
+++ /dev/null
@@ -1,1132 +0,0 @@
-<?php
-
-/**
- * IXR - The Incutio XML-RPC Library
- *
- * Copyright (c) 2010, Incutio Ltd.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- *  - Redistributions of source code must retain the above copyright notice,
- *    this list of conditions and the following disclaimer.
- *  - Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *  - Neither the name of Incutio Ltd. nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
- * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
- * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * @package IXR
- * @since 1.5
- *
- * @copyright  Incutio Ltd 2010 (http://www.incutio.com)
- * @version    1.7.4 7th September 2010
- * @author     Simon Willison
- * @link       http://scripts.incutio.com/xmlrpc/ Site/manual
- *
- * Modified for DokuWiki
- * @author  Andreas Gohr <andi@splitbrain.org>
- */
-class IXR_Value {
-
-    /** @var  IXR_Value[]|IXR_Date|IXR_Base64|int|bool|double|string */
-    var $data;
-    /** @var string */
-    var $type;
-
-    /**
-     * @param mixed $data
-     * @param bool $type
-     */
-    function __construct($data, $type = false) {
-        $this->data = $data;
-        if(!$type) {
-            $type = $this->calculateType();
-        }
-        $this->type = $type;
-        if($type == 'struct') {
-            // Turn all the values in the array in to new IXR_Value objects
-            foreach($this->data as $key => $value) {
-                $this->data[$key] = new IXR_Value($value);
-            }
-        }
-        if($type == 'array') {
-            for($i = 0, $j = count($this->data); $i < $j; $i++) {
-                $this->data[$i] = new IXR_Value($this->data[$i]);
-            }
-        }
-    }
-
-    /**
-     * @return string
-     */
-    function calculateType() {
-        if($this->data === true || $this->data === false) {
-            return 'boolean';
-        }
-        if(is_integer($this->data)) {
-            return 'int';
-        }
-        if(is_double($this->data)) {
-            return 'double';
-        }
-
-        // Deal with IXR object types base64 and date
-        if(is_object($this->data) && is_a($this->data, 'IXR_Date')) {
-            return 'date';
-        }
-        if(is_object($this->data) && is_a($this->data, 'IXR_Base64')) {
-            return 'base64';
-        }
-
-        // If it is a normal PHP object convert it in to a struct
-        if(is_object($this->data)) {
-            $this->data = get_object_vars($this->data);
-            return 'struct';
-        }
-        if(!is_array($this->data)) {
-            return 'string';
-        }
-
-        // We have an array - is it an array or a struct?
-        if($this->isStruct($this->data)) {
-            return 'struct';
-        } else {
-            return 'array';
-        }
-    }
-
-    /**
-     * @return bool|string
-     */
-    function getXml() {
-        // Return XML for this value
-        switch($this->type) {
-            case 'boolean':
-                return '<boolean>' . (($this->data) ? '1' : '0') . '</boolean>';
-                break;
-            case 'int':
-                return '<int>' . $this->data . '</int>';
-                break;
-            case 'double':
-                return '<double>' . $this->data . '</double>';
-                break;
-            case 'string':
-                return '<string>' . htmlspecialchars($this->data) . '</string>';
-                break;
-            case 'array':
-                $return = '<array><data>' . "\n";
-                foreach($this->data as $item) {
-                    $return .= '  <value>' . $item->getXml() . "</value>\n";
-                }
-                $return .= '</data></array>';
-                return $return;
-                break;
-            case 'struct':
-                $return = '<struct>' . "\n";
-                foreach($this->data as $name => $value) {
-                    $return .= "  <member><name>$name</name><value>";
-                    $return .= $value->getXml() . "</value></member>\n";
-                }
-                $return .= '</struct>';
-                return $return;
-                break;
-            case 'date':
-            case 'base64':
-                return $this->data->getXml();
-                break;
-        }
-        return false;
-    }
-
-    /**
-     * Checks whether or not the supplied array is a struct or not
-     *
-     * @param array $array
-     * @return boolean
-     */
-    function isStruct($array) {
-        $expected = 0;
-        foreach($array as $key => $value) {
-            if((string) $key != (string) $expected) {
-                return true;
-            }
-            $expected++;
-        }
-        return false;
-    }
-}
-
-/**
- * IXR_MESSAGE
- *
- * @package IXR
- * @since 1.5
- *
- */
-class IXR_Message {
-    var $message;
-    var $messageType; // methodCall / methodResponse / fault
-    var $faultCode;
-    var $faultString;
-    var $methodName;
-    var $params;
-
-    // Current variable stacks
-    var $_arraystructs = array(); // The stack used to keep track of the current array/struct
-    var $_arraystructstypes = array(); // Stack keeping track of if things are structs or array
-    var $_currentStructName = array(); // A stack as well
-    var $_param;
-    var $_value;
-    var $_currentTag;
-    var $_currentTagContents;
-    var $_lastseen;
-    // The XML parser
-    var $_parser;
-
-    /**
-     * @param string $message
-     */
-    function __construct($message) {
-        $this->message =& $message;
-    }
-
-    /**
-     * @return bool
-     */
-    function parse() {
-        // first remove the XML declaration
-        // merged from WP #10698 - this method avoids the RAM usage of preg_replace on very large messages
-        $header = preg_replace('/<\?xml.*?\?' . '>/', '', substr($this->message, 0, 100), 1);
-        $this->message = substr_replace($this->message, $header, 0, 100);
-
-        // workaround for a bug in PHP/libxml2, see http://bugs.php.net/bug.php?id=45996
-        $this->message = str_replace('&lt;', '&#60;', $this->message);
-        $this->message = str_replace('&gt;', '&#62;', $this->message);
-        $this->message = str_replace('&amp;', '&#38;', $this->message);
-        $this->message = str_replace('&apos;', '&#39;', $this->message);
-        $this->message = str_replace('&quot;', '&#34;', $this->message);
-        $this->message = str_replace("\x0b", ' ', $this->message); //vertical tab
-        if(trim($this->message) == '') {
-            return false;
-        }
-        $this->_parser = xml_parser_create();
-        // Set XML parser to take the case of tags in to account
-        xml_parser_set_option($this->_parser, XML_OPTION_CASE_FOLDING, false);
-        // Set XML parser callback functions
-        xml_set_object($this->_parser, $this);
-        xml_set_element_handler($this->_parser, 'tag_open', 'tag_close');
-        xml_set_character_data_handler($this->_parser, 'cdata');
-        $chunk_size = 262144; // 256Kb, parse in chunks to avoid the RAM usage on very large messages
-        $final = false;
-        do {
-            if(strlen($this->message) <= $chunk_size) {
-                $final = true;
-            }
-            $part = substr($this->message, 0, $chunk_size);
-            $this->message = substr($this->message, $chunk_size);
-            if(!xml_parse($this->_parser, $part, $final)) {
-                return false;
-            }
-            if($final) {
-                break;
-            }
-        } while(true);
-        xml_parser_free($this->_parser);
-
-        // Grab the error messages, if any
-        if($this->messageType == 'fault') {
-            $this->faultCode = $this->params[0]['faultCode'];
-            $this->faultString = $this->params[0]['faultString'];
-        }
-        return true;
-    }
-
-    /**
-     * @param $parser
-     * @param string $tag
-     * @param $attr
-     */
-    function tag_open($parser, $tag, $attr) {
-        $this->_currentTagContents = '';
-        $this->_currentTag = $tag;
-
-        switch($tag) {
-            case 'methodCall':
-            case 'methodResponse':
-            case 'fault':
-                $this->messageType = $tag;
-                break;
-            /* Deal with stacks of arrays and structs */
-            case 'data': // data is to all intents and purposes more interesting than array
-                $this->_arraystructstypes[] = 'array';
-                $this->_arraystructs[] = array();
-                break;
-            case 'struct':
-                $this->_arraystructstypes[] = 'struct';
-                $this->_arraystructs[] = array();
-                break;
-        }
-        $this->_lastseen = $tag;
-    }
-
-    /**
-     * @param $parser
-     * @param string $cdata
-     */
-    function cdata($parser, $cdata) {
-        $this->_currentTagContents .= $cdata;
-    }
-
-    /**
-     * @param $parser
-     * @param $tag
-     */
-    function tag_close($parser, $tag) {
-        $value = null;
-        $valueFlag = false;
-        switch($tag) {
-            case 'int':
-            case 'i4':
-                $value = (int) trim($this->_currentTagContents);
-                $valueFlag = true;
-                break;
-            case 'double':
-                $value = (double) trim($this->_currentTagContents);
-                $valueFlag = true;
-                break;
-            case 'string':
-                $value = (string) $this->_currentTagContents;
-                $valueFlag = true;
-                break;
-            case 'dateTime.iso8601':
-                $value = new IXR_Date(trim($this->_currentTagContents));
-                $valueFlag = true;
-                break;
-            case 'value':
-                // "If no type is indicated, the type is string."
-                if($this->_lastseen == 'value') {
-                    $value = (string) $this->_currentTagContents;
-                    $valueFlag = true;
-                }
-                break;
-            case 'boolean':
-                $value = (boolean) trim($this->_currentTagContents);
-                $valueFlag = true;
-                break;
-            case 'base64':
-                $value = base64_decode($this->_currentTagContents);
-                $valueFlag = true;
-                break;
-            /* Deal with stacks of arrays and structs */
-            case 'data':
-            case 'struct':
-                $value = array_pop($this->_arraystructs);
-                array_pop($this->_arraystructstypes);
-                $valueFlag = true;
-                break;
-            case 'member':
-                array_pop($this->_currentStructName);
-                break;
-            case 'name':
-                $this->_currentStructName[] = trim($this->_currentTagContents);
-                break;
-            case 'methodName':
-                $this->methodName = trim($this->_currentTagContents);
-                break;
-        }
-
-        if($valueFlag) {
-            if(count($this->_arraystructs) > 0) {
-                // Add value to struct or array
-                if($this->_arraystructstypes[count($this->_arraystructstypes) - 1] == 'struct') {
-                    // Add to struct
-                    $this->_arraystructs[count($this->_arraystructs) - 1][$this->_currentStructName[count($this->_currentStructName) - 1]] = $value;
-                } else {
-                    // Add to array
-                    $this->_arraystructs[count($this->_arraystructs) - 1][] = $value;
-                }
-            } else {
-                // Just add as a parameter
-                $this->params[] = $value;
-            }
-        }
-        $this->_currentTagContents = '';
-        $this->_lastseen = $tag;
-    }
-}
-
-/**
- * IXR_Server
- *
- * @package IXR
- * @since 1.5
- */
-class IXR_Server {
-    var $data;
-    /** @var array */
-    var $callbacks = array();
-    var $message;
-    /** @var array */
-    var $capabilities;
-
-    /**
-     * @param array|bool $callbacks
-     * @param bool $data
-     * @param bool $wait
-     */
-    function __construct($callbacks = false, $data = false, $wait = false) {
-        $this->setCapabilities();
-        if($callbacks) {
-            $this->callbacks = $callbacks;
-        }
-        $this->setCallbacks();
-
-        if(!$wait) {
-            $this->serve($data);
-        }
-    }
-
-    /**
-     * @param bool|string $data
-     */
-    function serve($data = false) {
-        if(!$data) {
-
-            $postData = trim(http_get_raw_post_data());
-            if(!$postData) {
-                header('Content-Type: text/plain'); // merged from WP #9093
-                die('XML-RPC server accepts POST requests only.');
-            }
-            $data = $postData;
-        }
-        $this->message = new IXR_Message($data);
-        if(!$this->message->parse()) {
-            $this->error(-32700, 'parse error. not well formed');
-        }
-        if($this->message->messageType != 'methodCall') {
-            $this->error(-32600, 'server error. invalid xml-rpc. not conforming to spec. Request must be a methodCall');
-        }
-        $result = $this->call($this->message->methodName, $this->message->params);
-
-        // Is the result an error?
-        if(is_a($result, 'IXR_Error')) {
-            $this->error($result);
-        }
-
-        // Encode the result
-        $r = new IXR_Value($result);
-        $resultxml = $r->getXml();
-
-        // Create the XML
-        $xml = <<<EOD
-<methodResponse>
-  <params>
-    <param>
-      <value>
-        $resultxml
-      </value>
-    </param>
-  </params>
-</methodResponse>
-
-EOD;
-        // Send it
-        $this->output($xml);
-    }
-
-    /**
-     * @param string $methodname
-     * @param array $args
-     * @return IXR_Error|mixed
-     */
-    function call($methodname, $args) {
-        if(!$this->hasMethod($methodname)) {
-            return new IXR_Error(-32601, 'server error. requested method ' . $methodname . ' does not exist.');
-        }
-        $method = $this->callbacks[$methodname];
-
-        // Perform the callback and send the response
-
-        # Removed for DokuWiki to have a more consistent interface
-        #        if (count($args) == 1) {
-        #            // If only one parameter just send that instead of the whole array
-        #            $args = $args[0];
-        #        }
-
-        # Adjusted for DokuWiki to use call_user_func_array
-
-        // args need to be an array
-        $args = (array) $args;
-
-        // Are we dealing with a function or a method?
-        if(is_string($method) && substr($method, 0, 5) == 'this:') {
-            // It's a class method - check it exists
-            $method = substr($method, 5);
-            if(!method_exists($this, $method)) {
-                return new IXR_Error(-32601, 'server error. requested class method "' . $method . '" does not exist.');
-            }
-            // Call the method
-            #$result = $this->$method($args);
-            $result = call_user_func_array(array(&$this, $method), $args);
-        } elseif(substr($method, 0, 7) == 'plugin:') {
-            list($pluginname, $callback) = explode(':', substr($method, 7), 2);
-            if(!plugin_isdisabled($pluginname)) {
-                $plugin = plugin_load('action', $pluginname);
-                return call_user_func_array(array($plugin, $callback), $args);
-            } else {
-                return new IXR_Error(-99999, 'server error');
-            }
-        } else {
-            // It's a function - does it exist?
-            if(is_array($method)) {
-                if(!is_callable(array($method[0], $method[1]))) {
-                    return new IXR_Error(-32601, 'server error. requested object method "' . $method[1] . '" does not exist.');
-                }
-            } else if(!function_exists($method)) {
-                return new IXR_Error(-32601, 'server error. requested function "' . $method . '" does not exist.');
-            }
-
-            // Call the function
-            $result = call_user_func($method, $args);
-        }
-        return $result;
-    }
-
-    /**
-     * @param int $error
-     * @param string|bool $message
-     */
-    function error($error, $message = false) {
-        // Accepts either an error object or an error code and message
-        if($message && !is_object($error)) {
-            $error = new IXR_Error($error, $message);
-        }
-        $this->output($error->getXml());
-    }
-
-    /**
-     * @param string $xml
-     */
-    function output($xml) {
-        header('Content-Type: text/xml; charset=utf-8');
-        echo '<?xml version="1.0"?>', "\n", $xml;
-        exit;
-    }
-
-    /**
-     * @param string $method
-     * @return bool
-     */
-    function hasMethod($method) {
-        return in_array($method, array_keys($this->callbacks));
-    }
-
-    function setCapabilities() {
-        // Initialises capabilities array
-        $this->capabilities = array(
-            'xmlrpc' => array(
-                'specUrl' => 'http://www.xmlrpc.com/spec',
-                'specVersion' => 1
-            ),
-            'faults_interop' => array(
-                'specUrl' => 'http://xmlrpc-epi.sourceforge.net/specs/rfc.fault_codes.php',
-                'specVersion' => 20010516
-            ),
-            'system.multicall' => array(
-                'specUrl' => 'http://www.xmlrpc.com/discuss/msgReader$1208',
-                'specVersion' => 1
-            ),
-        );
-    }
-
-    /**
-     * @return mixed
-     */
-    function getCapabilities() {
-        return $this->capabilities;
-    }
-
-    function setCallbacks() {
-        $this->callbacks['system.getCapabilities'] = 'this:getCapabilities';
-        $this->callbacks['system.listMethods'] = 'this:listMethods';
-        $this->callbacks['system.multicall'] = 'this:multiCall';
-    }
-
-    /**
-     * @return array
-     */
-    function listMethods() {
-        // Returns a list of methods - uses array_reverse to ensure user defined
-        // methods are listed before server defined methods
-        return array_reverse(array_keys($this->callbacks));
-    }
-
-    /**
-     * @param array $methodcalls
-     * @return array
-     */
-    function multiCall($methodcalls) {
-        // See http://www.xmlrpc.com/discuss/msgReader$1208
-        $return = array();
-        foreach($methodcalls as $call) {
-            $method = $call['methodName'];
-            $params = $call['params'];
-            if($method == 'system.multicall') {
-                $result = new IXR_Error(-32800, 'Recursive calls to system.multicall are forbidden');
-            } else {
-                $result = $this->call($method, $params);
-            }
-            if(is_a($result, 'IXR_Error')) {
-                $return[] = array(
-                    'faultCode' => $result->code,
-                    'faultString' => $result->message
-                );
-            } else {
-                $return[] = array($result);
-            }
-        }
-        return $return;
-    }
-}
-
-/**
- * IXR_Request
- *
- * @package IXR
- * @since 1.5
- */
-class IXR_Request {
-    /** @var string */
-    var $method;
-    /** @var array */
-    var $args;
-    /** @var string */
-    var $xml;
-
-    /**
-     * @param string $method
-     * @param array $args
-     */
-    function __construct($method, $args) {
-        $this->method = $method;
-        $this->args = $args;
-        $this->xml = <<<EOD
-<?xml version="1.0"?>
-<methodCall>
-<methodName>{$this->method}</methodName>
-<params>
-
-EOD;
-        foreach($this->args as $arg) {
-            $this->xml .= '<param><value>';
-            $v = new IXR_Value($arg);
-            $this->xml .= $v->getXml();
-            $this->xml .= "</value></param>\n";
-        }
-        $this->xml .= '</params></methodCall>';
-    }
-
-    /**
-     * @return int
-     */
-    function getLength() {
-        return strlen($this->xml);
-    }
-
-    /**
-     * @return string
-     */
-    function getXml() {
-        return $this->xml;
-    }
-}
-
-/**
- * IXR_Client
- *
- * @package IXR
- * @since 1.5
- *
- * Changed for DokuWiki to use DokuHTTPClient
- *
- * This should be compatible to the original class, but uses DokuWiki's
- * HTTP client library which will respect proxy settings
- *
- * Because the XMLRPC client is not used in DokuWiki currently this is completely
- * untested
- */
-class IXR_Client extends DokuHTTPClient {
-    var $posturl = '';
-    /** @var IXR_Message|bool */
-    var $message = false;
-
-    // Storage place for an error message
-    /** @var IXR_Error|bool */
-    var $xmlerror = false;
-
-    /**
-     * @param string $server
-     * @param string|bool $path
-     * @param int $port
-     * @param int $timeout
-     */
-    function __construct($server, $path = false, $port = 80, $timeout = 15) {
-        parent::__construct();
-        if(!$path) {
-            // Assume we have been given a URL instead
-            $this->posturl = $server;
-        } else {
-            $this->posturl = 'http://' . $server . ':' . $port . $path;
-        }
-        $this->timeout = $timeout;
-    }
-
-    /**
-     * parameters: method and arguments
-     * @return bool success or error
-     */
-    function query() {
-        $args = func_get_args();
-        $method = array_shift($args);
-        $request = new IXR_Request($method, $args);
-        $xml = $request->getXml();
-
-        $this->headers['Content-Type'] = 'text/xml';
-        if(!$this->sendRequest($this->posturl, $xml, 'POST')) {
-            $this->xmlerror = new IXR_Error(-32300, 'transport error - ' . $this->error);
-            return false;
-        }
-
-        // Check HTTP Response code
-        if($this->status < 200 || $this->status > 206) {
-            $this->xmlerror = new IXR_Error(-32300, 'transport error - HTTP status ' . $this->status);
-            return false;
-        }
-
-        // Now parse what we've got back
-        $this->message = new IXR_Message($this->resp_body);
-        if(!$this->message->parse()) {
-            // XML error
-            $this->xmlerror = new IXR_Error(-32700, 'parse error. not well formed');
-            return false;
-        }
-
-        // Is the message a fault?
-        if($this->message->messageType == 'fault') {
-            $this->xmlerror = new IXR_Error($this->message->faultCode, $this->message->faultString);
-            return false;
-        }
-
-        // Message must be OK
-        return true;
-    }
-
-    /**
-     * @return mixed
-     */
-    function getResponse() {
-        // methodResponses can only have one param - return that
-        return $this->message->params[0];
-    }
-
-    /**
-     * @return bool
-     */
-    function isError() {
-        return (is_object($this->xmlerror));
-    }
-
-    /**
-     * @return int
-     */
-    function getErrorCode() {
-        return $this->xmlerror->code;
-    }
-
-    /**
-     * @return string
-     */
-    function getErrorMessage() {
-        return $this->xmlerror->message;
-    }
-}
-
-/**
- * IXR_Error
- *
- * @package IXR
- * @since 1.5
- */
-class IXR_Error {
-    var $code;
-    var $message;
-
-    /**
-     * @param int $code
-     * @param string $message
-     */
-    function __construct($code, $message) {
-        $this->code = $code;
-        $this->message = htmlspecialchars($message);
-    }
-
-    /**
-     * @return string
-     */
-    function getXml() {
-        $xml = <<<EOD
-<methodResponse>
-  <fault>
-    <value>
-      <struct>
-        <member>
-          <name>faultCode</name>
-          <value><int>{$this->code}</int></value>
-        </member>
-        <member>
-          <name>faultString</name>
-          <value><string>{$this->message}</string></value>
-        </member>
-      </struct>
-    </value>
-  </fault>
-</methodResponse>
-
-EOD;
-        return $xml;
-    }
-}
-
-/**
- * IXR_Date
- *
- * @package IXR
- * @since 1.5
- */
-class IXR_Date {
-
-    /** @var DateTime */
-    protected $date;
-
-    /**
-     * @param int|string $time
-     */
-    public function __construct($time) {
-        // $time can be a PHP timestamp or an ISO one
-        if(is_numeric($time)) {
-            $this->parseTimestamp($time);
-        } else {
-            $this->parseIso($time);
-        }
-    }
-
-    /**
-     * Parse unix timestamp
-     *
-     * @param int $timestamp
-     */
-    protected function parseTimestamp($timestamp) {
-        $this->date = new DateTime('@' . $timestamp);
-    }
-
-    /**
-     * Parses less or more complete iso dates and much more, if no timezone given assumes UTC
-     *
-     * @param string $iso
-     */
-    protected function parseIso($iso) {
-        $this->date = new DateTime($iso, new DateTimeZone("UTC"));
-    }
-
-    /**
-     * Returns date in ISO 8601 format
-     *
-     * @return string
-     */
-    public function getIso() {
-        return $this->date->format(DateTime::ISO8601);
-    }
-
-    /**
-     * Returns date in valid xml
-     *
-     * @return string
-     */
-    public function getXml() {
-        return '<dateTime.iso8601>' . $this->getIso() . '</dateTime.iso8601>';
-    }
-
-    /**
-     * Returns Unix timestamp
-     *
-     * @return int
-     */
-    function getTimestamp() {
-        return $this->date->getTimestamp();
-    }
-}
-
-/**
- * IXR_Base64
- *
- * @package IXR
- * @since 1.5
- */
-class IXR_Base64 {
-    var $data;
-
-    /**
-     * @param string $data
-     */
-    function __construct($data) {
-        $this->data = $data;
-    }
-
-    /**
-     * @return string
-     */
-    function getXml() {
-        return '<base64>' . base64_encode($this->data) . '</base64>';
-    }
-}
-
-/**
- * IXR_IntrospectionServer
- *
- * @package IXR
- * @since 1.5
- */
-class IXR_IntrospectionServer extends IXR_Server {
-    /** @var array[] */
-    var $signatures;
-    /** @var string[] */
-    var $help;
-
-    /**
-     * Constructor
-     */
-    function __construct() {
-        $this->setCallbacks();
-        $this->setCapabilities();
-        $this->capabilities['introspection'] = array(
-            'specUrl' => 'http://xmlrpc.usefulinc.com/doc/reserved.html',
-            'specVersion' => 1
-        );
-        $this->addCallback(
-            'system.methodSignature',
-            'this:methodSignature',
-            array('array', 'string'),
-            'Returns an array describing the return type and required parameters of a method'
-        );
-        $this->addCallback(
-            'system.getCapabilities',
-            'this:getCapabilities',
-            array('struct'),
-            'Returns a struct describing the XML-RPC specifications supported by this server'
-        );
-        $this->addCallback(
-            'system.listMethods',
-            'this:listMethods',
-            array('array'),
-            'Returns an array of available methods on this server'
-        );
-        $this->addCallback(
-            'system.methodHelp',
-            'this:methodHelp',
-            array('string', 'string'),
-            'Returns a documentation string for the specified method'
-        );
-    }
-
-    /**
-     * @param string $method
-     * @param string $callback
-     * @param string[] $args
-     * @param string $help
-     */
-    function addCallback($method, $callback, $args, $help) {
-        $this->callbacks[$method] = $callback;
-        $this->signatures[$method] = $args;
-        $this->help[$method] = $help;
-    }
-
-    /**
-     * @param string $methodname
-     * @param array $args
-     * @return IXR_Error|mixed
-     */
-    function call($methodname, $args) {
-        // Make sure it's in an array
-        if($args && !is_array($args)) {
-            $args = array($args);
-        }
-
-        // Over-rides default call method, adds signature check
-        if(!$this->hasMethod($methodname)) {
-            return new IXR_Error(-32601, 'server error. requested method "' . $this->message->methodName . '" not specified.');
-        }
-        $method = $this->callbacks[$methodname];
-        $signature = $this->signatures[$methodname];
-        $returnType = array_shift($signature);
-        // Check the number of arguments. Check only, if the minimum count of parameters is specified. More parameters are possible.
-        // This is a hack to allow optional parameters...
-        if(count($args) < count($signature)) {
-            // print 'Num of args: '.count($args).' Num in signature: '.count($signature);
-            return new IXR_Error(-32602, 'server error. wrong number of method parameters');
-        }
-
-        // Check the argument types
-        $ok = true;
-        $argsbackup = $args;
-        for($i = 0, $j = count($args); $i < $j; $i++) {
-            $arg = array_shift($args);
-            $type = array_shift($signature);
-            switch($type) {
-                case 'int':
-                case 'i4':
-                    if(is_array($arg) || !is_int($arg)) {
-                        $ok = false;
-                    }
-                    break;
-                case 'base64':
-                case 'string':
-                    if(!is_string($arg)) {
-                        $ok = false;
-                    }
-                    break;
-                case 'boolean':
-                    if($arg !== false && $arg !== true) {
-                        $ok = false;
-                    }
-                    break;
-                case 'float':
-                case 'double':
-                    if(!is_float($arg)) {
-                        $ok = false;
-                    }
-                    break;
-                case 'date':
-                case 'dateTime.iso8601':
-                    if(!is_a($arg, 'IXR_Date')) {
-                        $ok = false;
-                    }
-                    break;
-            }
-            if(!$ok) {
-                return new IXR_Error(-32602, 'server error. invalid method parameters');
-            }
-        }
-        // It passed the test - run the "real" method call
-        return parent::call($methodname, $argsbackup);
-    }
-
-    /**
-     * @param string $method
-     * @return array|IXR_Error
-     */
-    function methodSignature($method) {
-        if(!$this->hasMethod($method)) {
-            return new IXR_Error(-32601, 'server error. requested method "' . $method . '" not specified.');
-        }
-        // We should be returning an array of types
-        $types = $this->signatures[$method];
-        $return = array();
-        foreach($types as $type) {
-            switch($type) {
-                case 'string':
-                    $return[] = 'string';
-                    break;
-                case 'int':
-                case 'i4':
-                    $return[] = 42;
-                    break;
-                case 'double':
-                    $return[] = 3.1415;
-                    break;
-                case 'dateTime.iso8601':
-                    $return[] = new IXR_Date(time());
-                    break;
-                case 'boolean':
-                    $return[] = true;
-                    break;
-                case 'base64':
-                    $return[] = new IXR_Base64('base64');
-                    break;
-                case 'array':
-                    $return[] = array('array');
-                    break;
-                case 'struct':
-                    $return[] = array('struct' => 'struct');
-                    break;
-            }
-        }
-        return $return;
-    }
-
-    /**
-     * @param string $method
-     * @return mixed
-     */
-    function methodHelp($method) {
-        return $this->help[$method];
-    }
-}
-
-/**
- * IXR_ClientMulticall
- *
- * @package IXR
- * @since 1.5
- */
-class IXR_ClientMulticall extends IXR_Client {
-
-    /** @var array[] */
-    var $calls = array();
-
-    /**
-     * @param string $server
-     * @param string|bool $path
-     * @param int $port
-     */
-    function __construct($server, $path = false, $port = 80) {
-        parent::__construct($server, $path, $port);
-        //$this->useragent = 'The Incutio XML-RPC PHP Library (multicall client)';
-    }
-
-    /**
-     * Add a call
-     */
-    function addCall() {
-        $args = func_get_args();
-        $methodName = array_shift($args);
-        $struct = array(
-            'methodName' => $methodName,
-            'params' => $args
-        );
-        $this->calls[] = $struct;
-    }
-
-    /**
-     * @return bool
-     */
-    function query() {
-        // Prepare multicall, then call the parent::query() method
-        return parent::query('system.multicall', $this->calls);
-    }
-}
-
diff --git a/wiki/inc/Input.class.php b/wiki/inc/Input.class.php
deleted file mode 100644
index 199994d..0000000
--- a/wiki/inc/Input.class.php
+++ /dev/null
@@ -1,335 +0,0 @@
-<?php
-
-/**
- * Encapsulates access to the $_REQUEST array, making sure used parameters are initialized and
- * have the correct type.
- *
- * All function access the $_REQUEST array by default, if you want to access $_POST or $_GET
- * explicitly use the $post and $get members.
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- */
-class Input {
-
-    /** @var PostInput Access $_POST parameters */
-    public $post;
-    /** @var GetInput Access $_GET parameters */
-    public $get;
-    /** @var ServerInput Access $_SERVER parameters */
-    public $server;
-
-    protected $access;
-
-    /**
-     * @var Callable
-     */
-    protected $filter;
-
-    /**
-     * Intilizes the Input class and it subcomponents
-     */
-    function __construct() {
-        $this->access = &$_REQUEST;
-        $this->post   = new PostInput();
-        $this->get    = new GetInput();
-        $this->server = new ServerInput();
-    }
-
-    /**
-     * Apply the set filter to the given value
-     *
-     * @param string $data
-     * @return string
-     */
-    protected function applyfilter($data){
-        if(!$this->filter) return $data;
-        return call_user_func($this->filter, $data);
-    }
-
-    /**
-     * Return a filtered copy of the input object
-     *
-     * Expects a callable that accepts one string parameter and returns a filtered string
-     *
-     * @param Callable|string $filter
-     * @return Input
-     */
-    public function filter($filter='stripctl'){
-        $this->filter = $filter;
-        $clone = clone $this;
-        $this->filter = '';
-        return $clone;
-    }
-
-    /**
-     * Check if a parameter was set
-     *
-     * Basically a wrapper around isset. When called on the $post and $get subclasses,
-     * the parameter is set to $_POST or $_GET and to $_REQUEST
-     *
-     * @see isset
-     * @param string $name Parameter name
-     * @return bool
-     */
-    public function has($name) {
-        return isset($this->access[$name]);
-    }
-
-    /**
-     * Remove a parameter from the superglobals
-     *
-     * Basically a wrapper around unset. When NOT called on the $post and $get subclasses,
-     * the parameter will also be removed from $_POST or $_GET
-     *
-     * @see isset
-     * @param string $name Parameter name
-     */
-    public function remove($name) {
-        if(isset($this->access[$name])) {
-            unset($this->access[$name]);
-        }
-        // also remove from sub classes
-        if(isset($this->post) && isset($_POST[$name])) {
-            unset($_POST[$name]);
-        }
-        if(isset($this->get) && isset($_GET[$name])) {
-            unset($_GET[$name]);
-        }
-    }
-
-    /**
-     * Access a request parameter without any type conversion
-     *
-     * @param string    $name     Parameter name
-     * @param mixed     $default  Default to return if parameter isn't set
-     * @param bool      $nonempty Return $default if parameter is set but empty()
-     * @return mixed
-     */
-    public function param($name, $default = null, $nonempty = false) {
-        if(!isset($this->access[$name])) return $default;
-        $value = $this->applyfilter($this->access[$name]);
-        if($nonempty && empty($value)) return $default;
-        return $value;
-    }
-
-    /**
-     * Sets a parameter
-     *
-     * @param string $name Parameter name
-     * @param mixed  $value Value to set
-     */
-    public function set($name, $value) {
-        $this->access[$name] = $value;
-    }
-
-    /**
-     * Get a reference to a request parameter
-     *
-     * This avoids copying data in memory, when the parameter is not set it will be created
-     * and intialized with the given $default value before a reference is returned
-     *
-     * @param string    $name Parameter name
-     * @param mixed     $default If parameter is not set, initialize with this value
-     * @param bool      $nonempty Init with $default if parameter is set but empty()
-     * @return mixed (reference)
-     */
-    public function &ref($name, $default = '', $nonempty = false) {
-        if(!isset($this->access[$name]) || ($nonempty && empty($this->access[$name]))) {
-            $this->set($name, $default);
-        }
-
-        return $this->access[$name];
-    }
-
-    /**
-     * Access a request parameter as int
-     *
-     * @param string    $name     Parameter name
-     * @param int       $default  Default to return if parameter isn't set or is an array
-     * @param bool      $nonempty Return $default if parameter is set but empty()
-     * @return int
-     */
-    public function int($name, $default = 0, $nonempty = false) {
-        if(!isset($this->access[$name])) return $default;
-        if(is_array($this->access[$name])) return $default;
-        $value = $this->applyfilter($this->access[$name]);
-        if($value === '') return $default;
-        if($nonempty && empty($value)) return $default;
-
-        return (int) $value;
-    }
-
-    /**
-     * Access a request parameter as string
-     *
-     * @param string    $name     Parameter name
-     * @param string    $default  Default to return if parameter isn't set or is an array
-     * @param bool      $nonempty Return $default if parameter is set but empty()
-     * @return string
-     */
-    public function str($name, $default = '', $nonempty = false) {
-        if(!isset($this->access[$name])) return $default;
-        if(is_array($this->access[$name])) return $default;
-        $value = $this->applyfilter($this->access[$name]);
-        if($nonempty && empty($value)) return $default;
-
-        return (string) $value;
-    }
-
-    /**
-     * Access a request parameter and make sure it is has a valid value
-     *
-     * Please note that comparisons to the valid values are not done typesafe (request vars
-     * are always strings) however the function will return the correct type from the $valids
-     * array when an match was found.
-     *
-     * @param string $name    Parameter name
-     * @param array  $valids  Array of valid values
-     * @param mixed  $default Default to return if parameter isn't set or not valid
-     * @return null|mixed
-     */
-    public function valid($name, $valids, $default = null) {
-        if(!isset($this->access[$name])) return $default;
-        if(is_array($this->access[$name])) return $default; // we don't allow arrays
-        $value = $this->applyfilter($this->access[$name]);
-        $found = array_search($value, $valids);
-        if($found !== false) return $valids[$found]; // return the valid value for type safety
-        return $default;
-    }
-
-    /**
-     * Access a request parameter as bool
-     *
-     * Note: $nonempty is here for interface consistency and makes not much sense for booleans
-     *
-     * @param string    $name     Parameter name
-     * @param mixed     $default  Default to return if parameter isn't set
-     * @param bool      $nonempty Return $default if parameter is set but empty()
-     * @return bool
-     */
-    public function bool($name, $default = false, $nonempty = false) {
-        if(!isset($this->access[$name])) return $default;
-        if(is_array($this->access[$name])) return $default;
-        $value = $this->applyfilter($this->access[$name]);
-        if($value === '') return $default;
-        if($nonempty && empty($value)) return $default;
-
-        return (bool) $value;
-    }
-
-    /**
-     * Access a request parameter as array
-     *
-     * @param string    $name     Parameter name
-     * @param mixed     $default  Default to return if parameter isn't set
-     * @param bool      $nonempty Return $default if parameter is set but empty()
-     * @return array
-     */
-    public function arr($name, $default = array(), $nonempty = false) {
-        if(!isset($this->access[$name])) return $default;
-        if(!is_array($this->access[$name])) return $default;
-        if($nonempty && empty($this->access[$name])) return $default;
-
-        return (array) $this->access[$name];
-    }
-
-    /**
-     * Create a simple key from an array key
-     *
-     * This is useful to access keys where the information is given as an array key or as a single array value.
-     * For example when the information was submitted as the name of a submit button.
-     *
-     * This function directly changes the access array.
-     *
-     * Eg. $_REQUEST['do']['save']='Speichern' becomes $_REQUEST['do'] = 'save'
-     *
-     * This function returns the $INPUT object itself for easy chaining
-     *
-     * @param string $name
-     * @return Input
-     */
-    public function extract($name){
-        if(!isset($this->access[$name])) return $this;
-        if(!is_array($this->access[$name])) return $this;
-        $keys = array_keys($this->access[$name]);
-        if(!$keys){
-            // this was an empty array
-            $this->remove($name);
-            return $this;
-        }
-        // get the first key
-        $value = array_shift($keys);
-        if($value === 0){
-            // we had a numeric array, assume the value is not in the key
-            $value = array_shift($this->access[$name]);
-        }
-
-        $this->set($name, $value);
-        return $this;
-    }
-}
-
-/**
- * Internal class used for $_POST access in Input class
- */
-class PostInput extends Input {
-    protected $access;
-
-    /**
-     * Initialize the $access array, remove subclass members
-     */
-    function __construct() {
-        $this->access = &$_POST;
-    }
-
-    /**
-     * Sets a parameter in $_POST and $_REQUEST
-     *
-     * @param string $name Parameter name
-     * @param mixed  $value Value to set
-     */
-    public function set($name, $value) {
-        parent::set($name, $value);
-        $_REQUEST[$name] = $value;
-    }
-}
-
-/**
- * Internal class used for $_GET access in Input class
- */
-class GetInput extends Input {
-    protected $access;
-
-    /**
-     * Initialize the $access array, remove subclass members
-     */
-    function __construct() {
-        $this->access = &$_GET;
-    }
-
-    /**
-     * Sets a parameter in $_GET and $_REQUEST
-     *
-     * @param string $name Parameter name
-     * @param mixed  $value Value to set
-     */
-    public function set($name, $value) {
-        parent::set($name, $value);
-        $_REQUEST[$name] = $value;
-    }
-}
-
-/**
- * Internal class used for $_SERVER access in Input class
- */
-class ServerInput extends Input {
-    protected $access;
-
-    /**
-     * Initialize the $access array, remove subclass members
-     */
-    function __construct() {
-        $this->access = &$_SERVER;
-    }
-
-}
diff --git a/wiki/inc/JSON.php b/wiki/inc/JSON.php
deleted file mode 100644
index fe4ca5c..0000000
--- a/wiki/inc/JSON.php
+++ /dev/null
@@ -1,656 +0,0 @@
-<?php
-/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
-
-/**
- * Converts to and from JSON format.
- *
- * JSON (JavaScript Object Notation) is a lightweight data-interchange
- * format. It is easy for humans to read and write. It is easy for machines
- * to parse and generate. It is based on a subset of the JavaScript
- * Programming Language, Standard ECMA-262 3rd Edition - December 1999.
- * This feature can also be found in  Python. JSON is a text format that is
- * completely language independent but uses conventions that are familiar
- * to programmers of the C-family of languages, including C, C++, C#, Java,
- * JavaScript, Perl, TCL, and many others. These properties make JSON an
- * ideal data-interchange language.
- *
- * This package provides a simple encoder and decoder for JSON notation. It
- * is intended for use with client-side Javascript applications that make
- * use of HTTPRequest to perform server communication functions - data can
- * be encoded into JSON notation for use in a client-side javascript, or
- * decoded from incoming Javascript requests. JSON format is native to
- * Javascript, and can be directly eval()'ed with no further parsing
- * overhead
- *
- * All strings should be in ASCII or UTF-8 format!
- *
- * PHP versions 4 and 5
- *
- * LICENSE: Redistribution and use in source and binary forms, with or
- * without modification, are permitted provided that the following
- * conditions are met: Redistributions of source code must retain the
- * above copyright notice, this list of conditions and the following
- * disclaimer. Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
- * NO EVENT SHALL CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
- * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
- * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
- * DAMAGE.
- *
- * @author      Michal Migurski <mike-json@teczno.com>
- * @author      Matt Knapp <mdknapp[at]gmail[dot]com>
- * @author      Brett Stimmerman <brettstimmerman[at]gmail[dot]com>
- * @copyright   2005 Michal Migurski
- * @license     http://www.freebsd.org/copyright/freebsd-license.html
- * @link        http://pear.php.net/pepr/pepr-proposal-show.php?id=198
- */
-
-// for DokuWiki
-if(!defined('DOKU_INC')) die('meh.');
-
-/**
- * Marker constant for JSON::decode(), used to flag stack state
- */
-define('JSON_SLICE',   1);
-
-/**
- * Marker constant for JSON::decode(), used to flag stack state
- */
-define('JSON_IN_STR',  2);
-
-/**
- * Marker constant for JSON::decode(), used to flag stack state
- */
-define('JSON_IN_ARR',  4);
-
-/**
- * Marker constant for JSON::decode(), used to flag stack state
- */
-define('JSON_IN_OBJ',  8);
-
-/**
- * Marker constant for JSON::decode(), used to flag stack state
- */
-define('JSON_IN_CMT', 16);
-
-/**
- * Behavior switch for JSON::decode()
- */
-define('JSON_LOOSE_TYPE', 10);
-
-/**
- * Behavior switch for JSON::decode()
- */
-define('JSON_STRICT_TYPE', 11);
-
-/**
- * Converts to and from JSON format.
- */
-class JSON {
-
-    /**
-     * Disables the use of PHP5's native json_decode()
-     *
-     * You shouldn't change this usually because the native function is much
-     * faster. However, this non-native will also parse slightly broken JSON
-     * which might be handy when talking to a non-conform endpoint
-     */
-    public $skipnative = false;
-
-    /**
-     * constructs a new JSON instance
-     *
-     * @param    int     $use    object behavior: when encoding or decoding,
-     *                           be loose or strict about object/array usage
-     *
-     *                           possible values:
-     *                              JSON_STRICT_TYPE - strict typing, default
-     *                                                 "{...}" syntax creates objects in decode.
-     *                               JSON_LOOSE_TYPE - loose typing
-     *                                                 "{...}" syntax creates associative arrays in decode.
-     */
-    function __construct($use=JSON_STRICT_TYPE) {
-        $this->use = $use;
-    }
-
-    /**
-     * encodes an arbitrary variable into JSON format
-     * If available the native PHP JSON implementation is used.
-     *
-     * @param    mixed   $var    any number, boolean, string, array, or object to be encoded.
-     *                           see argument 1 to JSON() above for array-parsing behavior.
-     *                           if var is a strng, note that encode() always expects it
-     *                           to be in ASCII or UTF-8 format!
-     *
-     * @return   string  JSON string representation of input var
-     * @access   public
-     */
-    function encode($var) {
-        if (!$this->skipnative && function_exists('json_encode')){
-            return json_encode($var);
-        }
-        switch (gettype($var)) {
-            case 'boolean':
-                return $var ? 'true' : 'false';
-
-            case 'NULL':
-                return 'null';
-
-            case 'integer':
-                return sprintf('%d', $var);
-
-            case 'double':
-            case 'float':
-                return sprintf('%f', $var);
-
-            case 'string':
-                // STRINGS ARE EXPECTED TO BE IN ASCII OR UTF-8 FORMAT
-                $ascii = '';
-                $strlen_var = strlen($var);
-
-                /*
-                 * Iterate over every character in the string,
-                 * escaping with a slash or encoding to UTF-8 where necessary
-                 */
-                for ($c = 0; $c < $strlen_var; ++$c) {
-
-                    $ord_var_c = ord($var{$c});
-
-                    switch ($ord_var_c) {
-                        case 0x08:
-                            $ascii .= '\b';
-                            break;
-                        case 0x09:
-                            $ascii .= '\t';
-                            break;
-                        case 0x0A:
-                            $ascii .= '\n';
-                            break;
-                        case 0x0C:
-                            $ascii .= '\f';
-                            break;
-                        case 0x0D:
-                            $ascii .= '\r';
-                            break;
-
-                        case 0x22:
-                        case 0x2F:
-                        case 0x5C:
-                            // double quote, slash, slosh
-                            $ascii .= '\\'.$var{$c};
-                            break;
-
-                        case (($ord_var_c >= 0x20) && ($ord_var_c <= 0x7F)):
-                            // characters U-00000000 - U-0000007F (same as ASCII)
-                            $ascii .= $var{$c};
-                            break;
-
-                        case (($ord_var_c & 0xE0) == 0xC0):
-                            // characters U-00000080 - U-000007FF, mask 110XXXXX
-                            // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
-                            $char = pack('C*', $ord_var_c, ord($var{$c+1}));
-                            $c+=1;
-                            //$utf16 = mb_convert_encoding($char, 'UTF-16', 'UTF-8');
-                            $utf16 = utf8_to_utf16be($char);
-                            $ascii .= sprintf('\u%04s', bin2hex($utf16));
-                            break;
-
-                        case (($ord_var_c & 0xF0) == 0xE0):
-                            // characters U-00000800 - U-0000FFFF, mask 1110XXXX
-                            // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
-                            $char = pack('C*', $ord_var_c,
-                                         ord($var{$c+1}),
-                                         ord($var{$c+2}));
-                            $c+=2;
-                            //$utf16 = mb_convert_encoding($char, 'UTF-16', 'UTF-8');
-                            $utf16 = utf8_to_utf16be($char);
-                            $ascii .= sprintf('\u%04s', bin2hex($utf16));
-                            break;
-
-                        case (($ord_var_c & 0xF8) == 0xF0):
-                            // characters U-00010000 - U-001FFFFF, mask 11110XXX
-                            // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
-                            $char = pack('C*', $ord_var_c,
-                                         ord($var{$c+1}),
-                                         ord($var{$c+2}),
-                                         ord($var{$c+3}));
-                            $c+=3;
-                            //$utf16 = mb_convert_encoding($char, 'UTF-16', 'UTF-8');
-                            $utf16 = utf8_to_utf16be($char);
-                            $ascii .= sprintf('\u%04s', bin2hex($utf16));
-                            break;
-
-                        case (($ord_var_c & 0xFC) == 0xF8):
-                            // characters U-00200000 - U-03FFFFFF, mask 111110XX
-                            // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
-                            $char = pack('C*', $ord_var_c,
-                                         ord($var{$c+1}),
-                                         ord($var{$c+2}),
-                                         ord($var{$c+3}),
-                                         ord($var{$c+4}));
-                            $c+=4;
-                            //$utf16 = mb_convert_encoding($char, 'UTF-16', 'UTF-8');
-                            $utf16 = utf8_to_utf16be($char);
-                            $ascii .= sprintf('\u%04s', bin2hex($utf16));
-                            break;
-
-                        case (($ord_var_c & 0xFE) == 0xFC):
-                            // characters U-04000000 - U-7FFFFFFF, mask 1111110X
-                            // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
-                            $char = pack('C*', $ord_var_c,
-                                         ord($var{$c+1}),
-                                         ord($var{$c+2}),
-                                         ord($var{$c+3}),
-                                         ord($var{$c+4}),
-                                         ord($var{$c+5}));
-                            $c+=5;
-                            //$utf16 = mb_convert_encoding($char, 'UTF-16', 'UTF-8');
-                            $utf16 = utf8_to_utf16be($char);
-                            $ascii .= sprintf('\u%04s', bin2hex($utf16));
-                            break;
-                    }
-                }
-
-                return '"'.$ascii.'"';
-
-            case 'array':
-                /*
-                 * As per JSON spec if any array key is not an integer
-                 * we must treat the the whole array as an object. We
-                 * also try to catch a sparsely populated associative
-                 * array with numeric keys here because some JS engines
-                 * will create an array with empty indexes up to
-                 * max_index which can cause memory issues and because
-                 * the keys, which may be relevant, will be remapped
-                 * otherwise.
-                 *
-                 * As per the ECMA and JSON specification an object may
-                 * have any string as a property. Unfortunately due to
-                 * a hole in the ECMA specification if the key is a
-                 * ECMA reserved word or starts with a digit the
-                 * parameter is only accessible using ECMAScript's
-                 * bracket notation.
-                 */
-
-                // treat as a JSON object
-                if (is_array($var) && count($var) && (array_keys($var) !== range(0, count($var) - 1))) {
-                    return sprintf('{%s}', join(',', array_map(array($this, 'name_value'),
-                                                               array_keys($var),
-                                                               array_values($var))));
-                }
-
-                // treat it like a regular array
-                return sprintf('[%s]', join(',', array_map(array($this, 'encode'), $var)));
-
-            case 'object':
-                $vars = get_object_vars($var);
-                return sprintf('{%s}', join(',', array_map(array($this, 'name_value'),
-                                                           array_keys($vars),
-                                                           array_values($vars))));
-
-            default:
-                return '';
-        }
-    }
-
-    /**
-     * encodes an arbitrary variable into JSON format, alias for encode()
-     *
-     * @param mixed $var
-     *
-     * @return string
-     */
-    function enc($var) {
-        return $this->encode($var);
-    }
-
-    /** function name_value
-     * array-walking function for use in generating JSON-formatted name-value pairs
-     *
-     * @param    string  $name   name of key to use
-     * @param    mixed   $value  reference to an array element to be encoded
-     *
-     * @return   string  JSON-formatted name-value pair, like '"name":value'
-     * @access   private
-     */
-    function name_value($name, $value) {
-        return (sprintf("%s:%s", $this->encode(strval($name)), $this->encode($value)));
-    }
-
-    /**
-     * reduce a string by removing leading and trailing comments and whitespace
-     *
-     * @param    $str    string      string value to strip of comments and whitespace
-     *
-     * @return   string  string value stripped of comments and whitespace
-     * @access   private
-     */
-    function reduce_string($str) {
-        $str = preg_replace(array(
-
-                // eliminate single line comments in '// ...' form
-                '#^\s*//(.+)$#m',
-
-                // eliminate multi-line comments in '/* ... */' form, at start of string
-                '#^\s*/\*(.+)\*/#Us',
-
-                // eliminate multi-line comments in '/* ... */' form, at end of string
-                '#/\*(.+)\*/\s*$#Us'
-
-            ), '', $str);
-
-        // eliminate extraneous space
-        return trim($str);
-    }
-
-    /**
-     * decodes a JSON string into appropriate variable
-     * If available the native PHP JSON implementation is used.
-     *
-     * @param    string  $str    JSON-formatted string
-     *
-     * @return   mixed   number, boolean, string, array, or object
-     *                   corresponding to given JSON input string.
-     *                   See argument 1 to JSON() above for object-output behavior.
-     *                   Note that decode() always returns strings
-     *                   in ASCII or UTF-8 format!
-     * @access   public
-     */
-    function decode($str) {
-        if (!$this->skipnative && function_exists('json_decode')){
-            return json_decode($str,($this->use == JSON_LOOSE_TYPE));
-        }
-
-        $str = $this->reduce_string($str);
-
-        switch (strtolower($str)) {
-            case 'true':
-                return true;
-
-            case 'false':
-                return false;
-
-            case 'null':
-                return null;
-
-            default:
-                if (is_numeric($str)) {
-                    // Lookie-loo, it's a number
-
-                    // This would work on its own, but I'm trying to be
-                    // good about returning integers where appropriate:
-                    // return (float)$str;
-
-                    // Return float or int, as appropriate
-                    return ((float)$str == (integer)$str)
-                        ? (integer)$str
-                        : (float)$str;
-
-                } elseif (preg_match('/^("|\').+("|\')$/s', $str, $m) && $m[1] == $m[2]) {
-                    // STRINGS RETURNED IN UTF-8 FORMAT
-                    $delim = substr($str, 0, 1);
-                    $chrs = substr($str, 1, -1);
-                    $utf8 = '';
-                    $strlen_chrs = strlen($chrs);
-
-                    for ($c = 0; $c < $strlen_chrs; ++$c) {
-
-                        $substr_chrs_c_2 = substr($chrs, $c, 2);
-                        $ord_chrs_c = ord($chrs{$c});
-
-                        switch ($substr_chrs_c_2) {
-                            case '\b':
-                                $utf8 .= chr(0x08);
-                                $c+=1;
-                                break;
-                            case '\t':
-                                $utf8 .= chr(0x09);
-                                $c+=1;
-                                break;
-                            case '\n':
-                                $utf8 .= chr(0x0A);
-                                $c+=1;
-                                break;
-                            case '\f':
-                                $utf8 .= chr(0x0C);
-                                $c+=1;
-                                break;
-                            case '\r':
-                                $utf8 .= chr(0x0D);
-                                $c+=1;
-                                break;
-
-                            case '\\"':
-                            case '\\\'':
-                            case '\\\\':
-                            case '\\/':
-                                if (($delim == '"' && $substr_chrs_c_2 != '\\\'') ||
-                                   ($delim == "'" && $substr_chrs_c_2 != '\\"')) {
-                                    $utf8 .= $chrs{++$c};
-                                }
-                                break;
-
-                            default:
-                                if (preg_match('/\\\u[0-9A-F]{4}/i', substr($chrs, $c, 6))) {
-                                    // single, escaped unicode character
-                                    $utf16 = chr(hexdec(substr($chrs, ($c+2), 2)))
-                                           . chr(hexdec(substr($chrs, ($c+4), 2)));
-                                    //$utf8 .= mb_convert_encoding($utf16, 'UTF-8', 'UTF-16');
-                                    $utf8 .= utf16be_to_utf8($utf16);
-                                    $c+=5;
-
-                                } elseif(($ord_chrs_c >= 0x20) && ($ord_chrs_c <= 0x7F)) {
-                                    $utf8 .= $chrs{$c};
-
-                                } elseif(($ord_chrs_c & 0xE0) == 0xC0) {
-                                    // characters U-00000080 - U-000007FF, mask 110XXXXX
-                                    //see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
-                                    $utf8 .= substr($chrs, $c, 2);
-                                    $c += 1;
-
-                                } elseif(($ord_chrs_c & 0xF0) == 0xE0) {
-                                    // characters U-00000800 - U-0000FFFF, mask 1110XXXX
-                                    // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
-                                    $utf8 .= substr($chrs, $c, 3);
-                                    $c += 2;
-
-                                } elseif(($ord_chrs_c & 0xF8) == 0xF0) {
-                                    // characters U-00010000 - U-001FFFFF, mask 11110XXX
-                                    // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
-                                    $utf8 .= substr($chrs, $c, 4);
-                                    $c += 3;
-
-                                } elseif(($ord_chrs_c & 0xFC) == 0xF8) {
-                                    // characters U-00200000 - U-03FFFFFF, mask 111110XX
-                                    // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
-                                    $utf8 .= substr($chrs, $c, 5);
-                                    $c += 4;
-
-                                } elseif(($ord_chrs_c & 0xFE) == 0xFC) {
-                                    // characters U-04000000 - U-7FFFFFFF, mask 1111110X
-                                    // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
-                                    $utf8 .= substr($chrs, $c, 6);
-                                    $c += 5;
-
-                                }
-                                break;
-
-                        }
-
-                    }
-
-                    return $utf8;
-
-                } elseif (preg_match('/^\[.*\]$/s', $str) || preg_match('/^\{.*\}$/s', $str)) {
-                    // array, or object notation
-
-                    if ($str{0} == '[') {
-                        $stk = array(JSON_IN_ARR);
-                        $arr = array();
-                    } else {
-                        if ($this->use == JSON_LOOSE_TYPE) {
-                            $stk = array(JSON_IN_OBJ);
-                            $obj = array();
-                        } else {
-                            $stk = array(JSON_IN_OBJ);
-                            $obj = new stdClass();
-                        }
-                    }
-
-                    array_push($stk, array('what'  => JSON_SLICE,
-                                           'where' => 0,
-                                           'delim' => false));
-
-                    $chrs = substr($str, 1, -1);
-                    $chrs = $this->reduce_string($chrs);
-
-                    if ($chrs == '') {
-                        if (reset($stk) == JSON_IN_ARR) {
-                            return $arr;
-
-                        } else {
-                            return $obj;
-
-                        }
-                    }
-
-                    //print("\nparsing {$chrs}\n");
-
-                    $strlen_chrs = strlen($chrs);
-
-                    for ($c = 0; $c <= $strlen_chrs; ++$c) {
-
-                        $top = end($stk);
-                        $substr_chrs_c_2 = substr($chrs, $c, 2);
-
-                        if (($c == $strlen_chrs) || (($chrs{$c} == ',') && ($top['what'] == JSON_SLICE))) {
-                            // found a comma that is not inside a string, array, etc.,
-                            // OR we've reached the end of the character list
-                            $slice = substr($chrs, $top['where'], ($c - $top['where']));
-                            array_push($stk, array('what' => JSON_SLICE, 'where' => ($c + 1), 'delim' => false));
-                            //print("Found split at {$c}: ".substr($chrs, $top['where'], (1 + $c - $top['where']))."\n");
-
-                            if (reset($stk) == JSON_IN_ARR) {
-                                // we are in an array, so just push an element onto the stack
-                                array_push($arr, $this->decode($slice));
-
-                            } elseif (reset($stk) == JSON_IN_OBJ) {
-                                // we are in an object, so figure
-                                // out the property name and set an
-                                // element in an associative array,
-                                // for now
-                                if (preg_match('/^\s*(["\'].*[^\\\]["\'])\s*:\s*(\S.*),?$/Uis', $slice, $parts)) {
-                                    // "name":value pair
-                                    $key = $this->decode($parts[1]);
-                                    $val = $this->decode($parts[2]);
-
-                                    if ($this->use == JSON_LOOSE_TYPE) {
-                                        $obj[$key] = $val;
-                                    } else {
-                                        $obj->$key = $val;
-                                    }
-                                } elseif (preg_match('/^\s*(\w+)\s*:\s*(\S.*),?$/Uis', $slice, $parts)) {
-                                    // name:value pair, where name is unquoted
-                                    $key = $parts[1];
-                                    $val = $this->decode($parts[2]);
-
-                                    if ($this->use == JSON_LOOSE_TYPE) {
-                                        $obj[$key] = $val;
-                                    } else {
-                                        $obj->$key = $val;
-                                    }
-                                }
-
-                            }
-
-                        } elseif ((($chrs{$c} == '"') || ($chrs{$c} == "'")) && ($top['what'] != JSON_IN_STR)) {
-                            // found a quote, and we are not inside a string
-                            array_push($stk, array('what' => JSON_IN_STR, 'where' => $c, 'delim' => $chrs{$c}));
-                            //print("Found start of string at {$c}\n");
-
-                        } elseif (($chrs{$c} == $top['delim']) &&
-                                 ($top['what'] == JSON_IN_STR) &&
-                                 ((strlen(substr($chrs, 0, $c)) - strlen(rtrim(substr($chrs, 0, $c), '\\'))) % 2 != 1)) {
-                            // found a quote, we're in a string, and it's not escaped
-                            // we know that it's not escaped becase there is _not_ an
-                            // odd number of backslashes at the end of the string so far
-                            array_pop($stk);
-                            //print("Found end of string at {$c}: ".substr($chrs, $top['where'], (1 + 1 + $c - $top['where']))."\n");
-
-                        } elseif (($chrs{$c} == '[') &&
-                                 in_array($top['what'], array(JSON_SLICE, JSON_IN_ARR, JSON_IN_OBJ))) {
-                            // found a left-bracket, and we are in an array, object, or slice
-                            array_push($stk, array('what' => JSON_IN_ARR, 'where' => $c, 'delim' => false));
-                            //print("Found start of array at {$c}\n");
-
-                        } elseif (($chrs{$c} == ']') && ($top['what'] == JSON_IN_ARR)) {
-                            // found a right-bracket, and we're in an array
-                            array_pop($stk);
-                            //print("Found end of array at {$c}: ".substr($chrs, $top['where'], (1 + $c - $top['where']))."\n");
-
-                        } elseif (($chrs{$c} == '{') &&
-                                 in_array($top['what'], array(JSON_SLICE, JSON_IN_ARR, JSON_IN_OBJ))) {
-                            // found a left-brace, and we are in an array, object, or slice
-                            array_push($stk, array('what' => JSON_IN_OBJ, 'where' => $c, 'delim' => false));
-                            //print("Found start of object at {$c}\n");
-
-                        } elseif (($chrs{$c} == '}') && ($top['what'] == JSON_IN_OBJ)) {
-                            // found a right-brace, and we're in an object
-                            array_pop($stk);
-                            //print("Found end of object at {$c}: ".substr($chrs, $top['where'], (1 + $c - $top['where']))."\n");
-
-                        } elseif (($substr_chrs_c_2 == '/*') &&
-                                 in_array($top['what'], array(JSON_SLICE, JSON_IN_ARR, JSON_IN_OBJ))) {
-                            // found a comment start, and we are in an array, object, or slice
-                            array_push($stk, array('what' => JSON_IN_CMT, 'where' => $c, 'delim' => false));
-                            $c++;
-                            //print("Found start of comment at {$c}\n");
-
-                        } elseif (($substr_chrs_c_2 == '*/') && ($top['what'] == JSON_IN_CMT)) {
-                            // found a comment end, and we're in one now
-                            array_pop($stk);
-                            $c++;
-
-                            for ($i = $top['where']; $i <= $c; ++$i)
-                                $chrs = substr_replace($chrs, ' ', $i, 1);
-
-                            //print("Found end of comment at {$c}: ".substr($chrs, $top['where'], (1 + $c - $top['where']))."\n");
-
-                        }
-
-                    }
-
-                    if (reset($stk) == JSON_IN_ARR) {
-                        return $arr;
-
-                    } elseif (reset($stk) == JSON_IN_OBJ) {
-                        return $obj;
-
-                    }
-
-                }
-        }
-    }
-
-    /**
-     * 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/wiki/inc/JpegMeta.php b/wiki/inc/JpegMeta.php
deleted file mode 100644
index 94c276c..0000000
--- a/wiki/inc/JpegMeta.php
+++ /dev/null
@@ -1,3188 +0,0 @@
-<?php
-/**
- * JPEG metadata reader/writer
- *
- * @license    BSD <http://www.opensource.org/licenses/bsd-license.php>
- * @link       http://github.com/sd/jpeg-php
- * @author     Sebastian Delmont <sdelmont@zonageek.com>
- * @author     Andreas Gohr <andi@splitbrain.org>
- * @author     Hakan Sandell <hakan.sandell@mydata.se>
- * @todo       Add support for Maker Notes, Extend for GIF and PNG metadata
- */
-
-// Original copyright notice:
-//
-// Copyright (c) 2003 Sebastian Delmont <sdelmont@zonageek.com>
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions
-// are met:
-// 1. Redistributions of source code must retain the above copyright
-//    notice, this list of conditions and the following disclaimer.
-// 2. Redistributions in binary form must reproduce the above copyright
-//    notice, this list of conditions and the following disclaimer in the
-//    documentation and/or other materials provided with the distribution.
-// 3. Neither the name of the author nor the names of its contributors
-//    may be used to endorse or promote products derived from this software
-//    without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
-// IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
-// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
-// PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
-// TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
-
-class JpegMeta {
-    var $_fileName;
-    var $_fp = null;
-    var $_fpout = null;
-    var $_type = 'unknown';
-
-    var $_markers;
-    var $_info;
-
-
-    /**
-     * Constructor
-     *
-     * @author Sebastian Delmont <sdelmont@zonageek.com>
-     *
-     * @param $fileName
-     */
-    function __construct($fileName) {
-
-        $this->_fileName = $fileName;
-
-        $this->_fp = null;
-        $this->_type = 'unknown';
-
-        unset($this->_info);
-        unset($this->_markers);
-    }
-
-    /**
-     * Returns all gathered info as multidim array
-     *
-     * @author Sebastian Delmont <sdelmont@zonageek.com>
-     */
-    function & getRawInfo() {
-        $this->_parseAll();
-
-        if ($this->_markers == null) {
-            return false;
-        }
-
-        return $this->_info;
-    }
-
-    /**
-     * Returns basic image info
-     *
-     * @author Sebastian Delmont <sdelmont@zonageek.com>
-     */
-    function & getBasicInfo() {
-        $this->_parseAll();
-
-        $info = array();
-
-        if ($this->_markers == null) {
-            return false;
-        }
-
-        $info['Name'] = $this->_info['file']['Name'];
-        if (isset($this->_info['file']['Url'])) {
-            $info['Url'] = $this->_info['file']['Url'];
-            $info['NiceSize'] = "???KB";
-        } else {
-            $info['Size'] = $this->_info['file']['Size'];
-            $info['NiceSize'] = $this->_info['file']['NiceSize'];
-        }
-
-        if (@isset($this->_info['sof']['Format'])) {
-            $info['Format'] = $this->_info['sof']['Format'] . " JPEG";
-        } else {
-            $info['Format'] = $this->_info['sof']['Format'] . " JPEG";
-        }
-
-        if (@isset($this->_info['sof']['ColorChannels'])) {
-            $info['ColorMode'] = ($this->_info['sof']['ColorChannels'] > 1) ? "Color" : "B&W";
-        }
-
-        $info['Width'] = $this->getWidth();
-        $info['Height'] = $this->getHeight();
-        $info['DimStr'] = $this->getDimStr();
-
-        $dates = $this->getDates();
-
-        $info['DateTime'] = $dates['EarliestTime'];
-        $info['DateTimeStr'] = $dates['EarliestTimeStr'];
-
-        $info['HasThumbnail'] = $this->hasThumbnail();
-
-        return $info;
-    }
-
-
-    /**
-     * Convinience function to access nearly all available Data
-     * through one function
-     *
-     * @author Andreas Gohr <andi@splitbrain.org>
-     *
-     * @param array|string $fields field name or array with field names
-     * @return bool|string
-     */
-    function getField($fields) {
-        if(!is_array($fields)) $fields = array($fields);
-        $info = false;
-        foreach($fields as $field){
-            if(strtolower(substr($field,0,5)) == 'iptc.'){
-                $info = $this->getIPTCField(substr($field,5));
-            }elseif(strtolower(substr($field,0,5)) == 'exif.'){
-                $info = $this->getExifField(substr($field,5));
-            }elseif(strtolower(substr($field,0,4)) == 'xmp.'){
-                $info = $this->getXmpField(substr($field,4));
-            }elseif(strtolower(substr($field,0,5)) == 'file.'){
-                $info = $this->getFileField(substr($field,5));
-            }elseif(strtolower(substr($field,0,5)) == 'date.'){
-                $info = $this->getDateField(substr($field,5));
-            }elseif(strtolower($field) == 'simple.camera'){
-                $info = $this->getCamera();
-            }elseif(strtolower($field) == 'simple.raw'){
-                return $this->getRawInfo();
-            }elseif(strtolower($field) == 'simple.title'){
-                $info = $this->getTitle();
-            }elseif(strtolower($field) == 'simple.shutterspeed'){
-                $info = $this->getShutterSpeed();
-            }else{
-                $info = $this->getExifField($field);
-            }
-            if($info != false) break;
-        }
-
-        if($info === false)  $info = '';
-        if(is_array($info)){
-            if(isset($info['val'])){
-                $info = $info['val'];
-            }else{
-                $info = join(', ',$info);
-            }
-        }
-        return trim($info);
-    }
-
-    /**
-     * Convinience function to set nearly all available Data
-     * through one function
-     *
-     * @author Andreas Gohr <andi@splitbrain.org>
-     *
-     * @param string $field field name
-     * @param string $value
-     * @return bool success or fail
-     */
-    function setField($field, $value) {
-        if(strtolower(substr($field,0,5)) == 'iptc.'){
-            return $this->setIPTCField(substr($field,5),$value);
-        }elseif(strtolower(substr($field,0,5)) == 'exif.'){
-            return $this->setExifField(substr($field,5),$value);
-        }else{
-            return $this->setExifField($field,$value);
-        }
-    }
-
-    /**
-     * Convinience function to delete nearly all available Data
-     * through one function
-     *
-     * @author Andreas Gohr <andi@splitbrain.org>
-     *
-     * @param string $field field name
-     * @return bool
-     */
-    function deleteField($field) {
-        if(strtolower(substr($field,0,5)) == 'iptc.'){
-            return $this->deleteIPTCField(substr($field,5));
-        }elseif(strtolower(substr($field,0,5)) == 'exif.'){
-            return $this->deleteExifField(substr($field,5));
-        }else{
-            return $this->deleteExifField($field);
-        }
-    }
-
-    /**
-     * Return a date field
-     *
-     * @author Andreas Gohr <andi@splitbrain.org>
-     *
-     * @param string $field
-     * @return false|string
-     */
-    function getDateField($field) {
-        if (!isset($this->_info['dates'])) {
-            $this->_info['dates'] = $this->getDates();
-        }
-
-        if (isset($this->_info['dates'][$field])) {
-            return $this->_info['dates'][$field];
-        }
-
-        return false;
-    }
-
-    /**
-     * Return a file info field
-     *
-     * @author Andreas Gohr <andi@splitbrain.org>
-     *
-     * @param string $field field name
-     * @return false|string
-     */
-    function getFileField($field) {
-        if (!isset($this->_info['file'])) {
-            $this->_parseFileInfo();
-        }
-
-        if (isset($this->_info['file'][$field])) {
-            return $this->_info['file'][$field];
-        }
-
-        return false;
-    }
-
-    /**
-     * Return the camera info (Maker and Model)
-     *
-     * @author Andreas Gohr <andi@splitbrain.org>
-     * @todo   handle makernotes
-     *
-     * @return false|string
-     */
-    function getCamera(){
-        $make  = $this->getField(array('Exif.Make','Exif.TIFFMake'));
-        $model = $this->getField(array('Exif.Model','Exif.TIFFModel'));
-        $cam = trim("$make $model");
-        if(empty($cam)) return false;
-        return $cam;
-    }
-
-    /**
-     * Return shutter speed as a ratio
-     *
-     * @author Joe Lapp <joe.lapp@pobox.com>
-     *
-     * @return string
-     */
-    function getShutterSpeed() {
-        if (!isset($this->_info['exif'])) {
-            $this->_parseMarkerExif();
-        }
-        if(!isset($this->_info['exif']['ExposureTime'])){
-            return '';
-        }
-
-        $field = $this->_info['exif']['ExposureTime'];
-        if($field['den'] == 1) return $field['num'];
-        return $field['num'].'/'.$field['den'];
-    }
-
-    /**
-     * Return an EXIF field
-     *
-     * @author Sebastian Delmont <sdelmont@zonageek.com>
-     *
-     * @param string $field field name
-     * @return false|string
-     */
-    function getExifField($field) {
-        if (!isset($this->_info['exif'])) {
-            $this->_parseMarkerExif();
-        }
-
-        if ($this->_markers == null) {
-            return false;
-        }
-
-        if (isset($this->_info['exif'][$field])) {
-            return $this->_info['exif'][$field];
-        }
-
-        return false;
-    }
-
-    /**
-     * Return an XMP field
-     *
-     * @author Hakan Sandell <hakan.sandell@mydata.se>
-     *
-     * @param string $field field name
-     * @return false|string
-     */
-    function getXmpField($field) {
-        if (!isset($this->_info['xmp'])) {
-            $this->_parseMarkerXmp();
-        }
-
-        if ($this->_markers == null) {
-            return false;
-        }
-
-        if (isset($this->_info['xmp'][$field])) {
-            return $this->_info['xmp'][$field];
-        }
-
-        return false;
-    }
-
-    /**
-     * Return an Adobe Field
-     *
-     * @author Sebastian Delmont <sdelmont@zonageek.com>
-     *
-     * @param string $field field name
-     * @return false|string
-     */
-    function getAdobeField($field) {
-        if (!isset($this->_info['adobe'])) {
-            $this->_parseMarkerAdobe();
-        }
-
-        if ($this->_markers == null) {
-            return false;
-        }
-
-        if (isset($this->_info['adobe'][$field])) {
-            return $this->_info['adobe'][$field];
-        }
-
-        return false;
-    }
-
-    /**
-     * Return an IPTC field
-     *
-     * @author Sebastian Delmont <sdelmont@zonageek.com>
-     *
-     * @param string $field field name
-     * @return false|string
-     */
-    function getIPTCField($field) {
-        if (!isset($this->_info['iptc'])) {
-            $this->_parseMarkerAdobe();
-        }
-
-        if ($this->_markers == null) {
-            return false;
-        }
-
-        if (isset($this->_info['iptc'][$field])) {
-            return $this->_info['iptc'][$field];
-        }
-
-        return false;
-    }
-
-    /**
-     * Set an EXIF field
-     *
-     * @author Sebastian Delmont <sdelmont@zonageek.com>
-     * @author Joe Lapp <joe.lapp@pobox.com>
-     *
-     * @param string $field field name
-     * @param string $value
-     * @return bool
-     */
-    function setExifField($field, $value) {
-        if (!isset($this->_info['exif'])) {
-            $this->_parseMarkerExif();
-        }
-
-        if ($this->_markers == null) {
-            return false;
-        }
-
-        if ($this->_info['exif'] == false) {
-            $this->_info['exif'] = array();
-        }
-
-        // make sure datetimes are in correct format
-        if(strlen($field) >= 8 && strtolower(substr($field, 0, 8)) == 'datetime') {
-            if(strlen($value) < 8 || $value{4} != ':' || $value{7} != ':') {
-                $value = date('Y:m:d H:i:s', strtotime($value));
-            }
-        }
-
-        $this->_info['exif'][$field] = $value;
-
-        return true;
-    }
-
-    /**
-     * Set an Adobe Field
-     *
-     * @author Sebastian Delmont <sdelmont@zonageek.com>
-     *
-     * @param string $field field name
-     * @param string $value
-     * @return bool
-     */
-    function setAdobeField($field, $value) {
-        if (!isset($this->_info['adobe'])) {
-            $this->_parseMarkerAdobe();
-        }
-
-        if ($this->_markers == null) {
-            return false;
-        }
-
-        if ($this->_info['adobe'] == false) {
-            $this->_info['adobe'] = array();
-        }
-
-        $this->_info['adobe'][$field] = $value;
-
-        return true;
-    }
-
-    /**
-     * Calculates the multiplier needed to resize the image to the given
-     * dimensions
-     *
-     * @author Andreas Gohr <andi@splitbrain.org>
-     *
-     * @param int $maxwidth
-     * @param int $maxheight
-     * @return float|int
-     */
-    function getResizeRatio($maxwidth,$maxheight=0){
-        if(!$maxheight) $maxheight = $maxwidth;
-
-        $w = $this->getField('File.Width');
-        $h = $this->getField('File.Height');
-
-        $ratio = 1;
-        if($w >= $h){
-            if($w >= $maxwidth){
-                $ratio = $maxwidth/$w;
-            }elseif($h > $maxheight){
-                $ratio = $maxheight/$h;
-            }
-        }else{
-            if($h >= $maxheight){
-                $ratio = $maxheight/$h;
-            }elseif($w > $maxwidth){
-                $ratio = $maxwidth/$w;
-            }
-        }
-        return $ratio;
-    }
-
-
-    /**
-     * Set an IPTC field
-     *
-     * @author Sebastian Delmont <sdelmont@zonageek.com>
-     *
-     * @param string $field field name
-     * @param string $value
-     * @return bool
-     */
-    function setIPTCField($field, $value) {
-        if (!isset($this->_info['iptc'])) {
-            $this->_parseMarkerAdobe();
-        }
-
-        if ($this->_markers == null) {
-            return false;
-        }
-
-        if ($this->_info['iptc'] == false) {
-            $this->_info['iptc'] = array();
-        }
-
-        $this->_info['iptc'][$field] = $value;
-
-        return true;
-    }
-
-    /**
-     * Delete an EXIF field
-     *
-     * @author Sebastian Delmont <sdelmont@zonageek.com>
-     *
-     * @param string $field field name
-     * @return bool
-     */
-    function deleteExifField($field) {
-        if (!isset($this->_info['exif'])) {
-            $this->_parseMarkerAdobe();
-        }
-
-        if ($this->_markers == null) {
-            return false;
-        }
-
-        if ($this->_info['exif'] != false) {
-            unset($this->_info['exif'][$field]);
-        }
-
-        return true;
-    }
-
-    /**
-     * Delete an Adobe field
-     *
-     * @author Sebastian Delmont <sdelmont@zonageek.com>
-     *
-     * @param string $field field name
-     * @return bool
-     */
-    function deleteAdobeField($field) {
-        if (!isset($this->_info['adobe'])) {
-            $this->_parseMarkerAdobe();
-        }
-
-        if ($this->_markers == null) {
-            return false;
-        }
-
-        if ($this->_info['adobe'] != false) {
-            unset($this->_info['adobe'][$field]);
-        }
-
-        return true;
-    }
-
-    /**
-     * Delete an IPTC field
-     *
-     * @author Sebastian Delmont <sdelmont@zonageek.com>
-     *
-     * @param string $field field name
-     * @return bool
-     */
-    function deleteIPTCField($field) {
-        if (!isset($this->_info['iptc'])) {
-            $this->_parseMarkerAdobe();
-        }
-
-        if ($this->_markers == null) {
-            return false;
-        }
-
-        if ($this->_info['iptc'] != false) {
-            unset($this->_info['iptc'][$field]);
-        }
-
-        return true;
-    }
-
-    /**
-     * Get the image's title, tries various fields
-     *
-     * @param int $max maximum number chars (keeps words)
-     * @return false|string
-     *
-     * @author Andreas Gohr <andi@splitbrain.org>
-     */
-    function getTitle($max=80){
-        // try various fields
-        $cap = $this->getField(array('Iptc.Headline',
-                    'Iptc.Caption',
-                    'Xmp.dc:title',
-                    'Exif.UserComment',
-                    'Exif.TIFFUserComment',
-                    'Exif.TIFFImageDescription',
-                    'File.Name'));
-        if (empty($cap)) return false;
-
-        if(!$max) return $cap;
-        // Shorten to 80 chars (keeping words)
-        $new = preg_replace('/\n.+$/','',wordwrap($cap, $max));
-        if($new != $cap) $new .= '...';
-
-        return $new;
-    }
-
-    /**
-     * Gather various date fields
-     *
-     * @author Sebastian Delmont <sdelmont@zonageek.com>
-     *
-     * @return array|bool
-     */
-    function getDates() {
-        $this->_parseAll();
-        if ($this->_markers == null) {
-            if (@isset($this->_info['file']['UnixTime'])) {
-                $dates = array();
-                $dates['FileModified'] = $this->_info['file']['UnixTime'];
-                $dates['Time'] = $this->_info['file']['UnixTime'];
-                $dates['TimeSource'] = 'FileModified';
-                $dates['TimeStr'] = date("Y-m-d H:i:s", $this->_info['file']['UnixTime']);
-                $dates['EarliestTime'] = $this->_info['file']['UnixTime'];
-                $dates['EarliestTimeSource'] = 'FileModified';
-                $dates['EarliestTimeStr'] = date("Y-m-d H:i:s", $this->_info['file']['UnixTime']);
-                $dates['LatestTime'] = $this->_info['file']['UnixTime'];
-                $dates['LatestTimeSource'] = 'FileModified';
-                $dates['LatestTimeStr'] = date("Y-m-d H:i:s", $this->_info['file']['UnixTime']);
-                return $dates;
-            }
-            return false;
-        }
-
-        $dates = array();
-
-        $latestTime = 0;
-        $latestTimeSource = "";
-        $earliestTime = time();
-        $earliestTimeSource = "";
-
-        if (@isset($this->_info['exif']['DateTime'])) {
-            $dates['ExifDateTime'] = $this->_info['exif']['DateTime'];
-
-            $aux = $this->_info['exif']['DateTime'];
-            $aux{4} = "-";
-            $aux{7} = "-";
-            $t = strtotime($aux);
-
-            if ($t && $t > $latestTime) {
-                $latestTime = $t;
-                $latestTimeSource = "ExifDateTime";
-            }
-
-            if ($t && $t < $earliestTime) {
-                $earliestTime = $t;
-                $earliestTimeSource = "ExifDateTime";
-            }
-        }
-
-        if (@isset($this->_info['exif']['DateTimeOriginal'])) {
-            $dates['ExifDateTimeOriginal'] = $this->_info['exif']['DateTime'];
-
-            $aux = $this->_info['exif']['DateTimeOriginal'];
-            $aux{4} = "-";
-            $aux{7} = "-";
-            $t = strtotime($aux);
-
-            if ($t && $t > $latestTime) {
-                $latestTime = $t;
-                $latestTimeSource = "ExifDateTimeOriginal";
-            }
-
-            if ($t && $t < $earliestTime) {
-                $earliestTime = $t;
-                $earliestTimeSource = "ExifDateTimeOriginal";
-            }
-        }
-
-        if (@isset($this->_info['exif']['DateTimeDigitized'])) {
-            $dates['ExifDateTimeDigitized'] = $this->_info['exif']['DateTime'];
-
-            $aux = $this->_info['exif']['DateTimeDigitized'];
-            $aux{4} = "-";
-            $aux{7} = "-";
-            $t = strtotime($aux);
-
-            if ($t && $t > $latestTime) {
-                $latestTime = $t;
-                $latestTimeSource = "ExifDateTimeDigitized";
-            }
-
-            if ($t && $t < $earliestTime) {
-                $earliestTime = $t;
-                $earliestTimeSource = "ExifDateTimeDigitized";
-            }
-        }
-
-        if (@isset($this->_info['iptc']['DateCreated'])) {
-            $dates['IPTCDateCreated'] = $this->_info['iptc']['DateCreated'];
-
-            $aux = $this->_info['iptc']['DateCreated'];
-            $aux = substr($aux, 0, 4) . "-" . substr($aux, 4, 2) . "-" . substr($aux, 6, 2);
-            $t = strtotime($aux);
-
-            if ($t && $t > $latestTime) {
-                $latestTime = $t;
-                $latestTimeSource = "IPTCDateCreated";
-            }
-
-            if ($t && $t < $earliestTime) {
-                $earliestTime = $t;
-                $earliestTimeSource = "IPTCDateCreated";
-            }
-        }
-
-        if (@isset($this->_info['file']['UnixTime'])) {
-            $dates['FileModified'] = $this->_info['file']['UnixTime'];
-
-            $t = $this->_info['file']['UnixTime'];
-
-            if ($t && $t > $latestTime) {
-                $latestTime = $t;
-                $latestTimeSource = "FileModified";
-            }
-
-            if ($t && $t < $earliestTime) {
-                $earliestTime = $t;
-                $earliestTimeSource = "FileModified";
-            }
-        }
-
-        $dates['Time'] = $earliestTime;
-        $dates['TimeSource'] = $earliestTimeSource;
-        $dates['TimeStr'] = date("Y-m-d H:i:s", $earliestTime);
-        $dates['EarliestTime'] = $earliestTime;
-        $dates['EarliestTimeSource'] = $earliestTimeSource;
-        $dates['EarliestTimeStr'] = date("Y-m-d H:i:s", $earliestTime);
-        $dates['LatestTime'] = $latestTime;
-        $dates['LatestTimeSource'] = $latestTimeSource;
-        $dates['LatestTimeStr'] = date("Y-m-d H:i:s", $latestTime);
-
-        return $dates;
-    }
-
-    /**
-     * Get the image width, tries various fields
-     *
-     * @author Sebastian Delmont <sdelmont@zonageek.com>
-     *
-     * @return false|string
-     */
-    function getWidth() {
-        if (!isset($this->_info['sof'])) {
-            $this->_parseMarkerSOF();
-        }
-
-        if ($this->_markers == null) {
-            return false;
-        }
-
-        if (isset($this->_info['sof']['ImageWidth'])) {
-            return $this->_info['sof']['ImageWidth'];
-        }
-
-        if (!isset($this->_info['exif'])) {
-            $this->_parseMarkerExif();
-        }
-
-        if (isset($this->_info['exif']['PixelXDimension'])) {
-            return $this->_info['exif']['PixelXDimension'];
-        }
-
-        return false;
-    }
-
-    /**
-     * Get the image height, tries various fields
-     *
-     * @author Sebastian Delmont <sdelmont@zonageek.com>
-     *
-     * @return false|string
-     */
-    function getHeight() {
-        if (!isset($this->_info['sof'])) {
-            $this->_parseMarkerSOF();
-        }
-
-        if ($this->_markers == null) {
-            return false;
-        }
-
-        if (isset($this->_info['sof']['ImageHeight'])) {
-            return $this->_info['sof']['ImageHeight'];
-        }
-
-        if (!isset($this->_info['exif'])) {
-            $this->_parseMarkerExif();
-        }
-
-        if (isset($this->_info['exif']['PixelYDimension'])) {
-            return $this->_info['exif']['PixelYDimension'];
-        }
-
-        return false;
-    }
-
-    /**
-     * Get an dimension string for use in img tag
-     *
-     * @author Sebastian Delmont <sdelmont@zonageek.com>
-     *
-     * @return false|string
-     */
-    function getDimStr() {
-        if ($this->_markers == null) {
-            return false;
-        }
-
-        $w = $this->getWidth();
-        $h = $this->getHeight();
-
-        return "width='" . $w . "' height='" . $h . "'";
-    }
-
-    /**
-     * Checks for an embedded thumbnail
-     *
-     * @author Sebastian Delmont <sdelmont@zonageek.com>
-     *
-     * @param string $which possible values: 'any', 'exif' or 'adobe'
-     * @return false|string
-     */
-    function hasThumbnail($which = 'any') {
-        if (($which == 'any') || ($which == 'exif')) {
-            if (!isset($this->_info['exif'])) {
-                $this->_parseMarkerExif();
-            }
-
-            if ($this->_markers == null) {
-                return false;
-            }
-
-            if (isset($this->_info['exif']) && is_array($this->_info['exif'])) {
-                if (isset($this->_info['exif']['JFIFThumbnail'])) {
-                    return 'exif';
-                }
-            }
-        }
-
-        if ($which == 'adobe') {
-            if (!isset($this->_info['adobe'])) {
-                $this->_parseMarkerAdobe();
-            }
-
-            if ($this->_markers == null) {
-                return false;
-            }
-
-            if (isset($this->_info['adobe']) && is_array($this->_info['adobe'])) {
-                if (isset($this->_info['adobe']['ThumbnailData'])) {
-                    return 'exif';
-                }
-            }
-        }
-
-        return false;
-    }
-
-    /**
-     * Send embedded thumbnail to browser
-     *
-     * @author Sebastian Delmont <sdelmont@zonageek.com>
-     *
-     * @param string $which possible values: 'any', 'exif' or 'adobe'
-     * @return bool
-     */
-    function sendThumbnail($which = 'any') {
-        $data = null;
-
-        if (($which == 'any') || ($which == 'exif')) {
-            if (!isset($this->_info['exif'])) {
-                $this->_parseMarkerExif();
-            }
-
-            if ($this->_markers == null) {
-                return false;
-            }
-
-            if (isset($this->_info['exif']) && is_array($this->_info['exif'])) {
-                if (isset($this->_info['exif']['JFIFThumbnail'])) {
-                    $data =& $this->_info['exif']['JFIFThumbnail'];
-                }
-            }
-        }
-
-        if (($which == 'adobe') || ($data == null)){
-            if (!isset($this->_info['adobe'])) {
-                $this->_parseMarkerAdobe();
-            }
-
-            if ($this->_markers == null) {
-                return false;
-            }
-
-            if (isset($this->_info['adobe']) && is_array($this->_info['adobe'])) {
-                if (isset($this->_info['adobe']['ThumbnailData'])) {
-                    $data =& $this->_info['adobe']['ThumbnailData'];
-                }
-            }
-        }
-
-        if ($data != null) {
-            header("Content-type: image/jpeg");
-            echo $data;
-            return true;
-        }
-
-        return false;
-    }
-
-    /**
-     * Save changed Metadata
-     *
-     * @author Sebastian Delmont <sdelmont@zonageek.com>
-     * @author Andreas Gohr <andi@splitbrain.org>
-     *
-     * @param string $fileName file name or empty string for a random name
-     * @return bool
-     */
-    function save($fileName = "") {
-        if ($fileName == "") {
-            $tmpName = tempnam(dirname($this->_fileName),'_metatemp_');
-            $this->_writeJPEG($tmpName);
-            if (file_exists($tmpName)) {
-                return io_rename($tmpName, $this->_fileName);
-            }
-        } else {
-            return $this->_writeJPEG($fileName);
-        }
-        return false;
-    }
-
-    /*************************************************************/
-    /* PRIVATE FUNCTIONS (Internal Use Only!)                    */
-    /*************************************************************/
-
-    /*************************************************************/
-    function _dispose($fileName = "") {
-        $this->_fileName = $fileName;
-
-        $this->_fp = null;
-        $this->_type = 'unknown';
-
-        unset($this->_markers);
-        unset($this->_info);
-    }
-
-    /*************************************************************/
-    function _readJPEG() {
-        unset($this->_markers);
-        //unset($this->_info);
-        $this->_markers = array();
-        //$this->_info = array();
-
-        $this->_fp = @fopen($this->_fileName, 'rb');
-        if ($this->_fp) {
-            if (file_exists($this->_fileName)) {
-                $this->_type = 'file';
-            }
-            else {
-                $this->_type = 'url';
-            }
-        } else {
-            $this->_fp = null;
-            return false;  // ERROR: Can't open file
-        }
-
-        // Check for the JPEG signature
-        $c1 = ord(fgetc($this->_fp));
-        $c2 = ord(fgetc($this->_fp));
-
-        if ($c1 != 0xFF || $c2 != 0xD8) {   // (0xFF + SOI)
-            $this->_markers = null;
-            return false;  // ERROR: File is not a JPEG
-        }
-
-        $count = 0;
-
-        $done = false;
-        $ok = true;
-
-        while (!$done) {
-            $capture = false;
-
-            // First, skip any non 0xFF bytes
-            $discarded = 0;
-            $c = ord(fgetc($this->_fp));
-            while (!feof($this->_fp) && ($c != 0xFF)) {
-                $discarded++;
-                $c = ord(fgetc($this->_fp));
-            }
-            // Then skip all 0xFF until the marker byte
-            do {
-                $marker = ord(fgetc($this->_fp));
-            } while (!feof($this->_fp) && ($marker == 0xFF));
-
-            if (feof($this->_fp)) {
-                return false; // ERROR: Unexpected EOF
-            }
-            if ($discarded != 0) {
-                return false; // ERROR: Extraneous data
-            }
-
-            $length = ord(fgetc($this->_fp)) * 256 + ord(fgetc($this->_fp));
-            if (feof($this->_fp)) {
-                return false; // ERROR: Unexpected EOF
-            }
-            if ($length < 2) {
-                return false; // ERROR: Extraneous data
-            }
-            $length = $length - 2; // The length we got counts itself
-
-            switch ($marker) {
-                case 0xC0:    // SOF0
-                case 0xC1:    // SOF1
-                case 0xC2:    // SOF2
-                case 0xC9:    // SOF9
-                case 0xE0:    // APP0: JFIF data
-                case 0xE1:    // APP1: EXIF or XMP data
-                case 0xED:    // APP13: IPTC / Photoshop data
-                    $capture = true;
-                    break;
-                case 0xDA:    // SOS: Start of scan... the image itself and the last block on the file
-                    $capture = false;
-                    $length = -1;  // This field has no length... it includes all data until EOF
-                    $done = true;
-                    break;
-                default:
-                    $capture = true;//false;
-                    break;
-            }
-
-            $this->_markers[$count] = array();
-            $this->_markers[$count]['marker'] = $marker;
-            $this->_markers[$count]['length'] = $length;
-
-            if ($capture) {
-                if ($length)
-                    $this->_markers[$count]['data'] = fread($this->_fp, $length);
-                else
-                    $this->_markers[$count]['data'] = "";
-            }
-            elseif (!$done) {
-                $result = @fseek($this->_fp, $length, SEEK_CUR);
-                // fseek doesn't seem to like HTTP 'files', but fgetc has no problem
-                if (!($result === 0)) {
-                    for ($i = 0; $i < $length; $i++) {
-                        fgetc($this->_fp);
-                    }
-                }
-            }
-            $count++;
-        }
-
-        if ($this->_fp) {
-            fclose($this->_fp);
-            $this->_fp = null;
-        }
-
-        return $ok;
-    }
-
-    /*************************************************************/
-    function _parseAll() {
-        if (!isset($this->_info['file'])) {
-            $this->_parseFileInfo();
-        }
-        if (!isset($this->_markers)) {
-            $this->_readJPEG();
-        }
-
-        if ($this->_markers == null) {
-            return false;
-        }
-
-        if (!isset($this->_info['jfif'])) {
-            $this->_parseMarkerJFIF();
-        }
-        if (!isset($this->_info['jpeg'])) {
-            $this->_parseMarkerSOF();
-        }
-        if (!isset($this->_info['exif'])) {
-            $this->_parseMarkerExif();
-        }
-        if (!isset($this->_info['xmp'])) {
-            $this->_parseMarkerXmp();
-        }
-        if (!isset($this->_info['adobe'])) {
-            $this->_parseMarkerAdobe();
-        }
-    }
-
-    /*************************************************************/
-
-    /**
-     * @param string $outputName
-     *
-     * @return bool
-     */
-    function _writeJPEG($outputName) {
-        $this->_parseAll();
-
-        $wroteEXIF = false;
-        $wroteAdobe = false;
-
-        $this->_fp = @fopen($this->_fileName, 'r');
-        if ($this->_fp) {
-            if (file_exists($this->_fileName)) {
-                $this->_type = 'file';
-            }
-            else {
-                $this->_type = 'url';
-            }
-        } else {
-            $this->_fp = null;
-            return false;  // ERROR: Can't open file
-        }
-
-        $this->_fpout = fopen($outputName, 'wb');
-        if (!$this->_fpout) {
-            $this->_fpout = null;
-            fclose($this->_fp);
-            $this->_fp = null;
-            return false;  // ERROR: Can't open output file
-        }
-
-        // Check for the JPEG signature
-        $c1 = ord(fgetc($this->_fp));
-        $c2 = ord(fgetc($this->_fp));
-
-        if ($c1 != 0xFF || $c2 != 0xD8) {   // (0xFF + SOI)
-            return false;  // ERROR: File is not a JPEG
-        }
-
-        fputs($this->_fpout, chr(0xFF), 1);
-        fputs($this->_fpout, chr(0xD8), 1); // (0xFF + SOI)
-
-        $count = 0;
-
-        $done = false;
-        $ok = true;
-
-        while (!$done) {
-            // First, skip any non 0xFF bytes
-            $discarded = 0;
-            $c = ord(fgetc($this->_fp));
-            while (!feof($this->_fp) && ($c != 0xFF)) {
-                $discarded++;
-                $c = ord(fgetc($this->_fp));
-            }
-            // Then skip all 0xFF until the marker byte
-            do {
-                $marker = ord(fgetc($this->_fp));
-            } while (!feof($this->_fp) && ($marker == 0xFF));
-
-            if (feof($this->_fp)) {
-                $ok = false;
-                break; // ERROR: Unexpected EOF
-            }
-            if ($discarded != 0) {
-                $ok = false;
-                break; // ERROR: Extraneous data
-            }
-
-            $length = ord(fgetc($this->_fp)) * 256 + ord(fgetc($this->_fp));
-            if (feof($this->_fp)) {
-                $ok = false;
-                break; // ERROR: Unexpected EOF
-            }
-            if ($length < 2) {
-                $ok = false;
-                break; // ERROR: Extraneous data
-            }
-            $length = $length - 2; // The length we got counts itself
-
-            unset($data);
-            if ($marker == 0xE1) { // APP1: EXIF data
-                $data =& $this->_createMarkerEXIF();
-                $wroteEXIF = true;
-            }
-            elseif ($marker == 0xED) { // APP13: IPTC / Photoshop data
-                $data =& $this->_createMarkerAdobe();
-                $wroteAdobe = true;
-            }
-            elseif ($marker == 0xDA) { // SOS: Start of scan... the image itself and the last block on the file
-                $done = true;
-            }
-
-            if (!$wroteEXIF && (($marker < 0xE0) || ($marker > 0xEF))) {
-                if (isset($this->_info['exif']) && is_array($this->_info['exif'])) {
-                    $exif =& $this->_createMarkerEXIF();
-                    $this->_writeJPEGMarker(0xE1, strlen($exif), $exif, 0);
-                    unset($exif);
-                }
-                $wroteEXIF = true;
-            }
-
-            if (!$wroteAdobe && (($marker < 0xE0) || ($marker > 0xEF))) {
-                if ((isset($this->_info['adobe']) && is_array($this->_info['adobe']))
-                        || (isset($this->_info['iptc']) && is_array($this->_info['iptc']))) {
-                    $adobe =& $this->_createMarkerAdobe();
-                    $this->_writeJPEGMarker(0xED, strlen($adobe), $adobe, 0);
-                    unset($adobe);
-                }
-                $wroteAdobe = true;
-            }
-
-            $origLength = $length;
-            if (isset($data)) {
-                $length = strlen($data);
-            }
-
-            if ($marker != -1) {
-                $this->_writeJPEGMarker($marker, $length, $data, $origLength);
-            }
-        }
-
-        if ($this->_fp) {
-            fclose($this->_fp);
-            $this->_fp = null;
-        }
-
-        if ($this->_fpout) {
-            fclose($this->_fpout);
-            $this->_fpout = null;
-        }
-
-        return $ok;
-    }
-
-    /*************************************************************/
-
-    /**
-     * @param integer $marker
-     * @param integer $length
-     * @param string $data
-     * @param integer $origLength
-     *
-     * @return bool
-     */
-    function _writeJPEGMarker($marker, $length, &$data, $origLength) {
-        if ($length <= 0) {
-            return false;
-        }
-
-        fputs($this->_fpout, chr(0xFF), 1);
-        fputs($this->_fpout, chr($marker), 1);
-        fputs($this->_fpout, chr((($length + 2) & 0x0000FF00) >> 8), 1);
-        fputs($this->_fpout, chr((($length + 2) & 0x000000FF) >> 0), 1);
-
-        if (isset($data)) {
-            // Copy the generated data
-            fputs($this->_fpout, $data, $length);
-
-            if ($origLength > 0) {   // Skip the original data
-                $result = @fseek($this->_fp, $origLength, SEEK_CUR);
-                // fseek doesn't seem to like HTTP 'files', but fgetc has no problem
-                if ($result != 0) {
-                    for ($i = 0; $i < $origLength; $i++) {
-                        fgetc($this->_fp);
-                    }
-                }
-            }
-        } else {
-            if ($marker == 0xDA) {  // Copy until EOF
-                while (!feof($this->_fp)) {
-                    $data = fread($this->_fp, 1024 * 16);
-                    fputs($this->_fpout, $data, strlen($data));
-                }
-            } else { // Copy only $length bytes
-                $data = @fread($this->_fp, $length);
-                fputs($this->_fpout, $data, $length);
-            }
-        }
-
-        return true;
-    }
-
-    /**
-     * Gets basic info from the file - should work with non-JPEGs
-     *
-     * @author  Sebastian Delmont <sdelmont@zonageek.com>
-     * @author  Andreas Gohr <andi@splitbrain.org>
-     */
-    function _parseFileInfo() {
-        if (file_exists($this->_fileName) && is_file($this->_fileName)) {
-            $this->_info['file'] = array();
-            $this->_info['file']['Name'] = utf8_decodeFN(utf8_basename($this->_fileName));
-            $this->_info['file']['Path'] = fullpath($this->_fileName);
-            $this->_info['file']['Size'] = filesize($this->_fileName);
-            if ($this->_info['file']['Size'] < 1024) {
-                $this->_info['file']['NiceSize'] = $this->_info['file']['Size'] . 'B';
-            } elseif ($this->_info['file']['Size'] < (1024 * 1024)) {
-                $this->_info['file']['NiceSize'] = round($this->_info['file']['Size'] / 1024) . 'KB';
-            } elseif ($this->_info['file']['Size'] < (1024 * 1024 * 1024)) {
-                $this->_info['file']['NiceSize'] = round($this->_info['file']['Size'] / (1024*1024)) . 'MB';
-            } else {
-                $this->_info['file']['NiceSize'] = $this->_info['file']['Size'] . 'B';
-            }
-            $this->_info['file']['UnixTime'] = filemtime($this->_fileName);
-
-            // get image size directly from file
-            $size = getimagesize($this->_fileName);
-            $this->_info['file']['Width']  = $size[0];
-            $this->_info['file']['Height'] = $size[1];
-            // set mime types and formats
-            // http://php.net/manual/en/function.getimagesize.php
-            // http://php.net/manual/en/function.image-type-to-mime-type.php
-            switch ($size[2]){
-                case 1:
-                    $this->_info['file']['Mime']   = 'image/gif';
-                    $this->_info['file']['Format'] = 'GIF';
-                    break;
-                case 2:
-                    $this->_info['file']['Mime']   = 'image/jpeg';
-                    $this->_info['file']['Format'] = 'JPEG';
-                    break;
-                case 3:
-                    $this->_info['file']['Mime']   = 'image/png';
-                    $this->_info['file']['Format'] = 'PNG';
-                    break;
-                case 4:
-                    $this->_info['file']['Mime']   = 'application/x-shockwave-flash';
-                    $this->_info['file']['Format'] = 'SWF';
-                    break;
-                case 5:
-                    $this->_info['file']['Mime']   = 'image/psd';
-                    $this->_info['file']['Format'] = 'PSD';
-                    break;
-                case 6:
-                    $this->_info['file']['Mime']   = 'image/bmp';
-                    $this->_info['file']['Format'] = 'BMP';
-                    break;
-                case 7:
-                    $this->_info['file']['Mime']   = 'image/tiff';
-                    $this->_info['file']['Format'] = 'TIFF (Intel)';
-                    break;
-                case 8:
-                    $this->_info['file']['Mime']   = 'image/tiff';
-                    $this->_info['file']['Format'] = 'TIFF (Motorola)';
-                    break;
-                case 9:
-                    $this->_info['file']['Mime']   = 'application/octet-stream';
-                    $this->_info['file']['Format'] = 'JPC';
-                    break;
-                case 10:
-                    $this->_info['file']['Mime']   = 'image/jp2';
-                    $this->_info['file']['Format'] = 'JP2';
-                    break;
-                case 11:
-                    $this->_info['file']['Mime']   = 'application/octet-stream';
-                    $this->_info['file']['Format'] = 'JPX';
-                    break;
-                case 12:
-                    $this->_info['file']['Mime']   = 'application/octet-stream';
-                    $this->_info['file']['Format'] = 'JB2';
-                    break;
-                case 13:
-                    $this->_info['file']['Mime']   = 'application/x-shockwave-flash';
-                    $this->_info['file']['Format'] = 'SWC';
-                    break;
-                case 14:
-                    $this->_info['file']['Mime']   = 'image/iff';
-                    $this->_info['file']['Format'] = 'IFF';
-                    break;
-                case 15:
-                    $this->_info['file']['Mime']   = 'image/vnd.wap.wbmp';
-                    $this->_info['file']['Format'] = 'WBMP';
-                    break;
-                case 16:
-                    $this->_info['file']['Mime']   = 'image/xbm';
-                    $this->_info['file']['Format'] = 'XBM';
-                    break;
-                default:
-                    $this->_info['file']['Mime']   = 'image/unknown';
-            }
-        } else {
-            $this->_info['file'] = array();
-            $this->_info['file']['Name'] = utf8_basename($this->_fileName);
-            $this->_info['file']['Url'] = $this->_fileName;
-        }
-
-        return true;
-    }
-
-    /*************************************************************/
-    function _parseMarkerJFIF() {
-        if (!isset($this->_markers)) {
-            $this->_readJPEG();
-        }
-
-        if ($this->_markers == null) {
-            return false;
-        }
-
-        $data = null;
-        $count = count($this->_markers);
-        for ($i = 0; $i < $count; $i++) {
-            if ($this->_markers[$i]['marker'] == 0xE0) {
-                $signature = $this->_getFixedString($this->_markers[$i]['data'], 0, 4);
-                if ($signature == 'JFIF') {
-                    $data =& $this->_markers[$i]['data'];
-                    break;
-                }
-            }
-        }
-
-        if ($data == null) {
-            $this->_info['jfif'] = false;
-            return false;
-        }
-
-        $this->_info['jfif'] = array();
-
-        $vmaj = $this->_getByte($data, 5);
-        $vmin = $this->_getByte($data, 6);
-
-        $this->_info['jfif']['Version'] = sprintf('%d.%02d', $vmaj, $vmin);
-
-        $units = $this->_getByte($data, 7);
-        switch ($units) {
-            case 0:
-                $this->_info['jfif']['Units'] = 'pixels';
-                break;
-            case 1:
-                $this->_info['jfif']['Units'] = 'dpi';
-                break;
-            case 2:
-                $this->_info['jfif']['Units'] = 'dpcm';
-                break;
-            default:
-                $this->_info['jfif']['Units'] = 'unknown';
-                break;
-        }
-
-        $xdens = $this->_getShort($data, 8);
-        $ydens = $this->_getShort($data, 10);
-
-        $this->_info['jfif']['XDensity'] = $xdens;
-        $this->_info['jfif']['YDensity'] = $ydens;
-
-        $thumbx = $this->_getByte($data, 12);
-        $thumby = $this->_getByte($data, 13);
-
-        $this->_info['jfif']['ThumbnailWidth'] = $thumbx;
-        $this->_info['jfif']['ThumbnailHeight'] = $thumby;
-
-        return true;
-    }
-
-    /*************************************************************/
-    function _parseMarkerSOF() {
-        if (!isset($this->_markers)) {
-            $this->_readJPEG();
-        }
-
-        if ($this->_markers == null) {
-            return false;
-        }
-
-        $data = null;
-        $count = count($this->_markers);
-        for ($i = 0; $i < $count; $i++) {
-            switch ($this->_markers[$i]['marker']) {
-                case 0xC0: // SOF0
-                case 0xC1: // SOF1
-                case 0xC2: // SOF2
-                case 0xC9: // SOF9
-                    $data =& $this->_markers[$i]['data'];
-                    $marker = $this->_markers[$i]['marker'];
-                    break;
-            }
-        }
-
-        if ($data == null) {
-            $this->_info['sof'] = false;
-            return false;
-        }
-
-        $pos = 0;
-        $this->_info['sof'] = array();
-
-        switch ($marker) {
-            case 0xC0: // SOF0
-                $format = 'Baseline';
-                break;
-            case 0xC1: // SOF1
-                $format = 'Progessive';
-                break;
-            case 0xC2: // SOF2
-                $format = 'Non-baseline';
-                break;
-            case 0xC9: // SOF9
-                $format = 'Arithmetic';
-                break;
-            default:
-                return false;
-        }
-
-        $this->_info['sof']['Format']          = $format;
-        $this->_info['sof']['SamplePrecision'] = $this->_getByte($data, $pos + 0);
-        $this->_info['sof']['ImageHeight']     = $this->_getShort($data, $pos + 1);
-        $this->_info['sof']['ImageWidth']      = $this->_getShort($data, $pos + 3);
-        $this->_info['sof']['ColorChannels']   = $this->_getByte($data, $pos + 5);
-
-        return true;
-    }
-
-    /**
-     * Parses the XMP data
-     *
-     * @author  Hakan Sandell <hakan.sandell@mydata.se>
-     */
-    function _parseMarkerXmp() {
-        if (!isset($this->_markers)) {
-            $this->_readJPEG();
-        }
-
-        if ($this->_markers == null) {
-            return false;
-        }
-
-        $data = null;
-        $count = count($this->_markers);
-        for ($i = 0; $i < $count; $i++) {
-            if ($this->_markers[$i]['marker'] == 0xE1) {
-                $signature = $this->_getFixedString($this->_markers[$i]['data'], 0, 29);
-                if ($signature == "http://ns.adobe.com/xap/1.0/\0") {
-                    $data = substr($this->_markers[$i]['data'], 29);
-                    break;
-                }
-            }
-        }
-
-        if ($data == null) {
-            $this->_info['xmp'] = false;
-            return false;
-        }
-
-        $parser = xml_parser_create();
-        xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 0);
-        xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE, 1);
-        $result = xml_parse_into_struct($parser, $data, $values, $tags);
-        xml_parser_free($parser);
-
-        if ($result == 0) {
-            $this->_info['xmp'] = false;
-            return false;
-        }
-
-        $this->_info['xmp'] = array();
-        $count = count($values);
-        for ($i = 0; $i < $count; $i++) {
-            if ($values[$i]['tag'] == 'rdf:Description' && $values[$i]['type'] == 'open') {
-
-                while ((++$i < $count) && ($values[$i]['tag'] != 'rdf:Description')) {
-                    $this->_parseXmpNode($values, $i, $this->_info['xmp'][$values[$i]['tag']], $count);
-                }
-            }
-        }
-        return true;
-    }
-
-    /**
-     * 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) {
-        if ($values[$i]['type'] == 'close') return;
-
-        if ($values[$i]['type'] == 'complete') {
-            // Simple Type property
-            $meta = $values[$i]['value'];
-            return;
-        }
-
-        $i++;
-        if ($i >= $count) return;
-
-        if ($values[$i]['tag'] == 'rdf:Bag' || $values[$i]['tag'] == 'rdf:Seq') {
-            // Array property
-            $meta = array();
-            while ($values[++$i]['tag'] == 'rdf:li') {
-                $this->_parseXmpNode($values, $i, $meta[], $count);
-            }
-            $i++; // skip closing Bag/Seq tag
-
-        } elseif ($values[$i]['tag'] == 'rdf:Alt') {
-            // Language Alternative property, only the first (default) value is used
-            if ($values[$i]['type'] == 'open') {
-                $i++;
-                $this->_parseXmpNode($values, $i, $meta, $count);
-                while ((++$i < $count) && ($values[$i]['tag'] != 'rdf:Alt'));
-                $i++; // skip closing Alt tag
-            }
-
-        } else {
-            // Structure property
-            $meta = array();
-            $startTag = $values[$i-1]['tag'];
-            do {
-                $this->_parseXmpNode($values, $i, $meta[$values[$i]['tag']], $count);
-            } while ((++$i < $count) && ($values[$i]['tag'] != $startTag));
-        }
-    }
-
-    /*************************************************************/
-    function _parseMarkerExif() {
-        if (!isset($this->_markers)) {
-            $this->_readJPEG();
-        }
-
-        if ($this->_markers == null) {
-            return false;
-        }
-
-        $data = null;
-        $count = count($this->_markers);
-        for ($i = 0; $i < $count; $i++) {
-            if ($this->_markers[$i]['marker'] == 0xE1) {
-                $signature = $this->_getFixedString($this->_markers[$i]['data'], 0, 6);
-                if ($signature == "Exif\0\0") {
-                    $data =& $this->_markers[$i]['data'];
-                    break;
-                }
-            }
-        }
-
-        if ($data == null) {
-            $this->_info['exif'] = false;
-            return false;
-        }
-        $pos = 6;
-        $this->_info['exif'] = array();
-
-        // We don't increment $pos after this because Exif uses offsets relative to this point
-
-        $byteAlign = $this->_getShort($data, $pos + 0);
-
-        if ($byteAlign == 0x4949) { // "II"
-            $isBigEndian = false;
-        } elseif ($byteAlign == 0x4D4D) { // "MM"
-            $isBigEndian = true;
-        } else {
-            return false; // Unexpected data
-        }
-
-        $alignCheck = $this->_getShort($data, $pos + 2, $isBigEndian);
-        if ($alignCheck != 0x002A) // That's the expected value
-            return false; // Unexpected data
-
-        if ($isBigEndian) {
-            $this->_info['exif']['ByteAlign'] = "Big Endian";
-        } else {
-            $this->_info['exif']['ByteAlign'] = "Little Endian";
-        }
-
-        $offsetIFD0 = $this->_getLong($data, $pos + 4, $isBigEndian);
-        if ($offsetIFD0 < 8)
-            return false; // Unexpected data
-
-        $offsetIFD1 = $this->_readIFD($data, $pos, $offsetIFD0, $isBigEndian, 'ifd0');
-        if ($offsetIFD1 != 0)
-            $this->_readIFD($data, $pos, $offsetIFD1, $isBigEndian, 'ifd1');
-
-        return true;
-    }
-
-    /*************************************************************/
-
-    /**
-     * @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);
-
-        $numEntries = $this->_getShort($data, $base + $offset, $isBigEndian);
-        $offset += 2;
-
-        $exifTIFFOffset = 0;
-        $exifTIFFLength = 0;
-        $exifThumbnailOffset = 0;
-        $exifThumbnailLength = 0;
-
-        for ($i = 0; $i < $numEntries; $i++) {
-            $tag = $this->_getShort($data, $base + $offset, $isBigEndian);
-            $offset += 2;
-            $type = $this->_getShort($data, $base + $offset, $isBigEndian);
-            $offset += 2;
-            $count = $this->_getLong($data, $base + $offset, $isBigEndian);
-            $offset += 4;
-
-            if (($type < 1) || ($type > 12))
-                return false; // Unexpected Type
-
-            $typeLengths = array( -1, 1, 1, 2, 4, 8, 1, 1, 2, 4, 8, 4, 8 );
-
-            $dataLength = $typeLengths[$type] * $count;
-            if ($dataLength > 4) {
-                $dataOffset = $this->_getLong($data, $base + $offset, $isBigEndian);
-                $rawValue = $this->_getFixedString($data, $base + $dataOffset, $dataLength);
-            } else {
-                $rawValue = $this->_getFixedString($data, $base + $offset, $dataLength);
-            }
-            $offset += 4;
-
-            switch ($type) {
-                case 1:    // UBYTE
-                    if ($count == 1) {
-                        $value = $this->_getByte($rawValue, 0);
-                    } else {
-                        $value = array();
-                        for ($j = 0; $j < $count; $j++)
-                            $value[$j] = $this->_getByte($rawValue, $j);
-                    }
-                    break;
-                case 2:    // ASCII
-                    $value = $rawValue;
-                    break;
-                case 3:    // USHORT
-                    if ($count == 1) {
-                        $value = $this->_getShort($rawValue, 0, $isBigEndian);
-                    } else {
-                        $value = array();
-                        for ($j = 0; $j < $count; $j++)
-                            $value[$j] = $this->_getShort($rawValue, $j * 2, $isBigEndian);
-                    }
-                    break;
-                case 4:    // ULONG
-                    if ($count == 1) {
-                        $value = $this->_getLong($rawValue, 0, $isBigEndian);
-                    } else {
-                        $value = array();
-                        for ($j = 0; $j < $count; $j++)
-                            $value[$j] = $this->_getLong($rawValue, $j * 4, $isBigEndian);
-                    }
-                    break;
-                case 5:    // URATIONAL
-                    if ($count == 1) {
-                        $a = $this->_getLong($rawValue, 0, $isBigEndian);
-                        $b = $this->_getLong($rawValue, 4, $isBigEndian);
-                        $value = array();
-                        $value['val'] = 0;
-                        $value['num'] = $a;
-                        $value['den'] = $b;
-                        if (($a != 0) && ($b != 0)) {
-                            $value['val'] = $a / $b;
-                        }
-                    } else {
-                        $value = array();
-                        for ($j = 0; $j < $count; $j++) {
-                            $a = $this->_getLong($rawValue, $j * 8, $isBigEndian);
-                            $b = $this->_getLong($rawValue, ($j * 8) + 4, $isBigEndian);
-                            $value = array();
-                            $value[$j]['val'] = 0;
-                            $value[$j]['num'] = $a;
-                            $value[$j]['den'] = $b;
-                            if (($a != 0) && ($b != 0))
-                                $value[$j]['val'] = $a / $b;
-                        }
-                    }
-                    break;
-                case 6:    // SBYTE
-                    if ($count == 1) {
-                        $value = $this->_getByte($rawValue, 0);
-                    } else {
-                        $value = array();
-                        for ($j = 0; $j < $count; $j++)
-                            $value[$j] = $this->_getByte($rawValue, $j);
-                    }
-                    break;
-                case 7:    // UNDEFINED
-                    $value = $rawValue;
-                    break;
-                case 8:    // SSHORT
-                    if ($count == 1) {
-                        $value = $this->_getShort($rawValue, 0, $isBigEndian);
-                    } else {
-                        $value = array();
-                        for ($j = 0; $j < $count; $j++)
-                            $value[$j] = $this->_getShort($rawValue, $j * 2, $isBigEndian);
-                    }
-                    break;
-                case 9:    // SLONG
-                    if ($count == 1) {
-                        $value = $this->_getLong($rawValue, 0, $isBigEndian);
-                    } else {
-                        $value = array();
-                        for ($j = 0; $j < $count; $j++)
-                            $value[$j] = $this->_getLong($rawValue, $j * 4, $isBigEndian);
-                    }
-                    break;
-                case 10:   // SRATIONAL
-                    if ($count == 1) {
-                        $a = $this->_getLong($rawValue, 0, $isBigEndian);
-                        $b = $this->_getLong($rawValue, 4, $isBigEndian);
-                        $value = array();
-                        $value['val'] = 0;
-                        $value['num'] = $a;
-                        $value['den'] = $b;
-                        if (($a != 0) && ($b != 0))
-                            $value['val'] = $a / $b;
-                    } else {
-                        $value = array();
-                        for ($j = 0; $j < $count; $j++) {
-                            $a = $this->_getLong($rawValue, $j * 8, $isBigEndian);
-                            $b = $this->_getLong($rawValue, ($j * 8) + 4, $isBigEndian);
-                            $value = array();
-                            $value[$j]['val'] = 0;
-                            $value[$j]['num'] = $a;
-                            $value[$j]['den'] = $b;
-                            if (($a != 0) && ($b != 0))
-                                $value[$j]['val'] = $a / $b;
-                        }
-                    }
-                    break;
-                case 11:   // FLOAT
-                    $value = $rawValue;
-                    break;
-
-                case 12:   // DFLOAT
-                    $value = $rawValue;
-                    break;
-                default:
-                    return false; // Unexpected Type
-            }
-
-            $tagName = '';
-            if (($mode == 'ifd0') && ($tag == 0x8769)) {  // ExifIFDOffset
-                $this->_readIFD($data, $base, $value, $isBigEndian, 'exif');
-            } elseif (($mode == 'ifd0') && ($tag == 0x8825)) {  // GPSIFDOffset
-                $this->_readIFD($data, $base, $value, $isBigEndian, 'gps');
-            } elseif (($mode == 'ifd1') && ($tag == 0x0111)) {  // TIFFStripOffsets
-                $exifTIFFOffset = $value;
-            } elseif (($mode == 'ifd1') && ($tag == 0x0117)) {  // TIFFStripByteCounts
-                $exifTIFFLength = $value;
-            } elseif (($mode == 'ifd1') && ($tag == 0x0201)) {  // TIFFJFIFOffset
-                $exifThumbnailOffset = $value;
-            } elseif (($mode == 'ifd1') && ($tag == 0x0202)) {  // TIFFJFIFLength
-                $exifThumbnailLength = $value;
-            } elseif (($mode == 'exif') && ($tag == 0xA005)) {  // InteropIFDOffset
-                $this->_readIFD($data, $base, $value, $isBigEndian, 'interop');
-            }
-            // elseif (($mode == 'exif') && ($tag == 0x927C)) {  // MakerNote
-            // }
-            else {
-                if (isset($EXIFTags[$tag])) {
-                    $tagName = $EXIFTags[$tag];
-                    if (isset($this->_info['exif'][$tagName])) {
-                        if (!is_array($this->_info['exif'][$tagName])) {
-                            $aux = array();
-                            $aux[0] = $this->_info['exif'][$tagName];
-                            $this->_info['exif'][$tagName] = $aux;
-                        }
-
-                        $this->_info['exif'][$tagName][count($this->_info['exif'][$tagName])] = $value;
-                    } else {
-                        $this->_info['exif'][$tagName] = $value;
-                    }
-                }
-                /*
-                 else {
-                    echo sprintf("<h1>Unknown tag %02x (t: %d l: %d) %s in %s</h1>", $tag, $type, $count, $mode, $this->_fileName);
-                    // Unknown Tags will be ignored!!!
-                    // That's because the tag might be a pointer (like the Exif tag)
-                    // and saving it without saving the data it points to might
-                    // create an invalid file.
-                }
-                */
-            }
-        }
-
-        if (($exifThumbnailOffset > 0) && ($exifThumbnailLength > 0)) {
-            $this->_info['exif']['JFIFThumbnail'] = $this->_getFixedString($data, $base + $exifThumbnailOffset, $exifThumbnailLength);
-        }
-
-        if (($exifTIFFOffset > 0) && ($exifTIFFLength > 0)) {
-            $this->_info['exif']['TIFFStrips'] = $this->_getFixedString($data, $base + $exifTIFFOffset, $exifTIFFLength);
-        }
-
-        $nextOffset = $this->_getLong($data, $base + $offset, $isBigEndian);
-        return $nextOffset;
-    }
-
-    /*************************************************************/
-    function & _createMarkerExif() {
-        $data = null;
-        $count = count($this->_markers);
-        for ($i = 0; $i < $count; $i++) {
-            if ($this->_markers[$i]['marker'] == 0xE1) {
-                $signature = $this->_getFixedString($this->_markers[$i]['data'], 0, 6);
-                if ($signature == "Exif\0\0") {
-                    $data =& $this->_markers[$i]['data'];
-                    break;
-                }
-            }
-        }
-
-        if (!isset($this->_info['exif'])) {
-            return false;
-        }
-
-        $data = "Exif\0\0";
-        $pos = 6;
-        $offsetBase = 6;
-
-        if (isset($this->_info['exif']['ByteAlign']) && ($this->_info['exif']['ByteAlign'] == "Big Endian")) {
-            $isBigEndian = true;
-            $aux = "MM";
-            $pos = $this->_putString($data, $pos, $aux);
-        } else {
-            $isBigEndian = false;
-            $aux = "II";
-            $pos = $this->_putString($data, $pos, $aux);
-        }
-        $pos = $this->_putShort($data, $pos, 0x002A, $isBigEndian);
-        $pos = $this->_putLong($data, $pos, 0x00000008, $isBigEndian); // IFD0 Offset is always 8
-
-        $ifd0 =& $this->_getIFDEntries($isBigEndian, 'ifd0');
-        $ifd1 =& $this->_getIFDEntries($isBigEndian, 'ifd1');
-
-        $pos = $this->_writeIFD($data, $pos, $offsetBase, $ifd0, $isBigEndian, true);
-        $pos = $this->_writeIFD($data, $pos, $offsetBase, $ifd1, $isBigEndian, false);
-
-        return $data;
-    }
-
-    /*************************************************************/
-
-    /**
-     * @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;
-        $tiffDataOffsetPos = -1;
-
-        $entryCount = count($entries);
-
-        $dataPos = $pos + 2 + ($entryCount * 12) + 4;
-        $pos = $this->_putShort($data, $pos, $entryCount, $isBigEndian);
-
-        for ($i = 0; $i < $entryCount; $i++) {
-            $tag = $entries[$i]['tag'];
-            $type = $entries[$i]['type'];
-
-            if ($type == -99) { // SubIFD
-                $pos = $this->_putShort($data, $pos, $tag, $isBigEndian);
-                $pos = $this->_putShort($data, $pos, 0x04, $isBigEndian); // LONG
-                $pos = $this->_putLong($data, $pos, 0x01, $isBigEndian); // Count = 1
-                $pos = $this->_putLong($data, $pos, $dataPos - $offsetBase, $isBigEndian);
-
-                $dataPos = $this->_writeIFD($data, $dataPos, $offsetBase, $entries[$i]['value'], $isBigEndian, false);
-            } elseif ($type == -98) { // TIFF Data
-                $pos = $this->_putShort($data, $pos, $tag, $isBigEndian);
-                $pos = $this->_putShort($data, $pos, 0x04, $isBigEndian); // LONG
-                $pos = $this->_putLong($data, $pos, 0x01, $isBigEndian); // Count = 1
-                $tiffDataOffsetPos = $pos;
-                $pos = $this->_putLong($data, $pos, 0x00, $isBigEndian); // For Now
-                $tiffData =& $entries[$i]['value'] ;
-            } else { // Regular Entry
-                $pos = $this->_putShort($data, $pos, $tag, $isBigEndian);
-                $pos = $this->_putShort($data, $pos, $type, $isBigEndian);
-                $pos = $this->_putLong($data, $pos, $entries[$i]['count'], $isBigEndian);
-                if (strlen($entries[$i]['value']) > 4) {
-                    $pos = $this->_putLong($data, $pos, $dataPos - $offsetBase, $isBigEndian);
-                    $dataPos = $this->_putString($data, $dataPos, $entries[$i]['value']);
-                } else {
-                    $val = str_pad($entries[$i]['value'], 4, "\0");
-                    $pos = $this->_putString($data, $pos, $val);
-                }
-            }
-        }
-
-        if ($tiffData != null) {
-            $this->_putLong($data, $tiffDataOffsetPos, $dataPos - $offsetBase, $isBigEndian);
-            $dataPos = $this->_putString($data, $dataPos, $tiffData);
-        }
-
-        if ($hasNext) {
-            $pos = $this->_putLong($data, $pos, $dataPos - $offsetBase, $isBigEndian);
-        } else {
-            $pos = $this->_putLong($data, $pos, 0, $isBigEndian);
-        }
-
-        return $dataPos;
-    }
-
-    /*************************************************************/
-
-    /**
-     * @param boolean $isBigEndian
-     * @param string $mode
-     *
-     * @return array
-     */
-    function & _getIFDEntries($isBigEndian, $mode) {
-        $EXIFNames = $this->_exifTagNames($mode);
-        $EXIFTags = $this->_exifNameTags($mode);
-        $EXIFTypeInfo = $this->_exifTagTypes($mode);
-
-        $ifdEntries = array();
-        $entryCount = 0;
-
-        foreach($EXIFNames as $tag => $name) {
-            $type = $EXIFTypeInfo[$tag][0];
-            $count = $EXIFTypeInfo[$tag][1];
-            $value = null;
-
-            if (($mode == 'ifd0') && ($tag == 0x8769)) {  // ExifIFDOffset
-                if (isset($this->_info['exif']['EXIFVersion'])) {
-                    $value =& $this->_getIFDEntries($isBigEndian, "exif");
-                    $type = -99;
-                }
-                else {
-                    $value = null;
-                }
-            } elseif (($mode == 'ifd0') && ($tag == 0x8825)) {  // GPSIFDOffset
-                if (isset($this->_info['exif']['GPSVersionID'])) {
-                    $value =& $this->_getIFDEntries($isBigEndian, "gps");
-                    $type = -99;
-                } else {
-                    $value = null;
-                }
-            } elseif (($mode == 'ifd1') && ($tag == 0x0111)) {  // TIFFStripOffsets
-                if (isset($this->_info['exif']['TIFFStrips'])) {
-                    $value =& $this->_info['exif']['TIFFStrips'];
-                    $type = -98;
-                } else {
-                    $value = null;
-                }
-            } elseif (($mode == 'ifd1') && ($tag == 0x0117)) {  // TIFFStripByteCounts
-                if (isset($this->_info['exif']['TIFFStrips'])) {
-                    $value = strlen($this->_info['exif']['TIFFStrips']);
-                } else {
-                    $value = null;
-                }
-            } elseif (($mode == 'ifd1') && ($tag == 0x0201)) {  // TIFFJFIFOffset
-                if (isset($this->_info['exif']['JFIFThumbnail'])) {
-                    $value =& $this->_info['exif']['JFIFThumbnail'];
-                    $type = -98;
-                } else {
-                    $value = null;
-                }
-            } elseif (($mode == 'ifd1') && ($tag == 0x0202)) {  // TIFFJFIFLength
-                if (isset($this->_info['exif']['JFIFThumbnail'])) {
-                    $value = strlen($this->_info['exif']['JFIFThumbnail']);
-                } else {
-                    $value = null;
-                }
-            } elseif (($mode == 'exif') && ($tag == 0xA005)) {  // InteropIFDOffset
-                if (isset($this->_info['exif']['InteroperabilityIndex'])) {
-                    $value =& $this->_getIFDEntries($isBigEndian, "interop");
-                    $type = -99;
-                } else {
-                    $value = null;
-                }
-            } elseif (isset($this->_info['exif'][$name])) {
-                $origValue =& $this->_info['exif'][$name];
-
-                // This makes it easier to process variable size elements
-                if (!is_array($origValue) || isset($origValue['val'])) {
-                    unset($origValue); // Break the reference
-                    $origValue = array($this->_info['exif'][$name]);
-                }
-                $origCount = count($origValue);
-
-                if ($origCount == 0 ) {
-                    $type = -1;  // To ignore this field
-                }
-
-                $value = " ";
-
-                switch ($type) {
-                    case 1:    // UBYTE
-                        if ($count == 0) {
-                            $count = $origCount;
-                        }
-
-                        $j = 0;
-                        while (($j < $count) && ($j < $origCount)) {
-
-                            $this->_putByte($value, $j, $origValue[$j]);
-                            $j++;
-                        }
-
-                        while ($j < $count) {
-                            $this->_putByte($value, $j, 0);
-                            $j++;
-                        }
-                        break;
-                    case 2:    // ASCII
-                        $v = strval($origValue[0]);
-                        if (($count != 0) && (strlen($v) > $count)) {
-                            $v = substr($v, 0, $count);
-                        }
-                        elseif (($count > 0) && (strlen($v) < $count)) {
-                            $v = str_pad($v, $count, "\0");
-                        }
-
-                        $count = strlen($v);
-
-                        $this->_putString($value, 0, $v);
-                        break;
-                    case 3:    // USHORT
-                        if ($count == 0) {
-                            $count = $origCount;
-                        }
-
-                        $j = 0;
-                        while (($j < $count) && ($j < $origCount)) {
-                            $this->_putShort($value, $j * 2, $origValue[$j], $isBigEndian);
-                            $j++;
-                        }
-
-                        while ($j < $count) {
-                            $this->_putShort($value, $j * 2, 0, $isBigEndian);
-                            $j++;
-                        }
-                        break;
-                    case 4:    // ULONG
-                        if ($count == 0) {
-                            $count = $origCount;
-                        }
-
-                        $j = 0;
-                        while (($j < $count) && ($j < $origCount)) {
-                            $this->_putLong($value, $j * 4, $origValue[$j], $isBigEndian);
-                            $j++;
-                        }
-
-                        while ($j < $count) {
-                            $this->_putLong($value, $j * 4, 0, $isBigEndian);
-                            $j++;
-                        }
-                        break;
-                    case 5:    // URATIONAL
-                        if ($count == 0) {
-                            $count = $origCount;
-                        }
-
-                        $j = 0;
-                        while (($j < $count) && ($j < $origCount)) {
-                            $v = $origValue[$j];
-                            if (is_array($v)) {
-                                $a = $v['num'];
-                                $b = $v['den'];
-                            }
-                            else {
-                                $a = 0;
-                                $b = 0;
-                                // TODO: Allow other types and convert them
-                            }
-                            $this->_putLong($value, $j * 8, $a, $isBigEndian);
-                            $this->_putLong($value, ($j * 8) + 4, $b, $isBigEndian);
-                            $j++;
-                        }
-
-                        while ($j < $count) {
-                            $this->_putLong($value, $j * 8, 0, $isBigEndian);
-                            $this->_putLong($value, ($j * 8) + 4, 0, $isBigEndian);
-                            $j++;
-                        }
-                        break;
-                    case 6:    // SBYTE
-                        if ($count == 0) {
-                            $count = $origCount;
-                        }
-
-                        $j = 0;
-                        while (($j < $count) && ($j < $origCount)) {
-                            $this->_putByte($value, $j, $origValue[$j]);
-                            $j++;
-                        }
-
-                        while ($j < $count) {
-                            $this->_putByte($value, $j, 0);
-                            $j++;
-                        }
-                        break;
-                    case 7:    // UNDEFINED
-                        $v = strval($origValue[0]);
-                        if (($count != 0) && (strlen($v) > $count)) {
-                            $v = substr($v, 0, $count);
-                        }
-                        elseif (($count > 0) && (strlen($v) < $count)) {
-                            $v = str_pad($v, $count, "\0");
-                        }
-
-                        $count = strlen($v);
-
-                        $this->_putString($value, 0, $v);
-                        break;
-                    case 8:    // SSHORT
-                        if ($count == 0) {
-                            $count = $origCount;
-                        }
-
-                        $j = 0;
-                        while (($j < $count) && ($j < $origCount)) {
-                            $this->_putShort($value, $j * 2, $origValue[$j], $isBigEndian);
-                            $j++;
-                        }
-
-                        while ($j < $count) {
-                            $this->_putShort($value, $j * 2, 0, $isBigEndian);
-                            $j++;
-                        }
-                        break;
-                    case 9:    // SLONG
-                        if ($count == 0) {
-                            $count = $origCount;
-                        }
-
-                        $j = 0;
-                        while (($j < $count) && ($j < $origCount)) {
-                            $this->_putLong($value, $j * 4, $origValue[$j], $isBigEndian);
-                            $j++;
-                        }
-
-                        while ($j < $count) {
-                            $this->_putLong($value, $j * 4, 0, $isBigEndian);
-                            $j++;
-                        }
-                        break;
-                    case 10:   // SRATIONAL
-                        if ($count == 0) {
-                            $count = $origCount;
-                        }
-
-                        $j = 0;
-                        while (($j < $count) && ($j < $origCount)) {
-                            $v = $origValue[$j];
-                            if (is_array($v)) {
-                                $a = $v['num'];
-                                $b = $v['den'];
-                            }
-                            else {
-                                $a = 0;
-                                $b = 0;
-                                // TODO: Allow other types and convert them
-                            }
-
-                            $this->_putLong($value, $j * 8, $a, $isBigEndian);
-                            $this->_putLong($value, ($j * 8) + 4, $b, $isBigEndian);
-                            $j++;
-                        }
-
-                        while ($j < $count) {
-                            $this->_putLong($value, $j * 8, 0, $isBigEndian);
-                            $this->_putLong($value, ($j * 8) + 4, 0, $isBigEndian);
-                            $j++;
-                        }
-                        break;
-                    case 11:   // FLOAT
-                        if ($count == 0) {
-                            $count = $origCount;
-                        }
-
-                        $j = 0;
-                        while (($j < $count) && ($j < $origCount)) {
-                            $v = strval($origValue[$j]);
-                            if (strlen($v) > 4) {
-                                $v = substr($v, 0, 4);
-                            }
-                            elseif (strlen($v) < 4) {
-                                $v = str_pad($v, 4, "\0");
-                            }
-                            $this->_putString($value, $j * 4, $v);
-                            $j++;
-                        }
-
-                        while ($j < $count) {
-                            $v = "\0\0\0\0";
-                            $this->_putString($value, $j * 4, $v);
-                            $j++;
-                        }
-                        break;
-                    case 12:   // DFLOAT
-                        if ($count == 0) {
-                            $count = $origCount;
-                        }
-
-                        $j = 0;
-                        while (($j < $count) && ($j < $origCount)) {
-                            $v = strval($origValue[$j]);
-                            if (strlen($v) > 8) {
-                                $v = substr($v, 0, 8);
-                            }
-                            elseif (strlen($v) < 8) {
-                                $v = str_pad($v, 8, "\0");
-                            }
-                            $this->_putString($value, $j * 8, $v);
-                            $j++;
-                        }
-
-                        while ($j < $count) {
-                            $v = "\0\0\0\0\0\0\0\0";
-                            $this->_putString($value, $j * 8, $v);
-                            $j++;
-                        }
-                        break;
-                    default:
-                        $value = null;
-                        break;
-                }
-            }
-
-            if ($value != null) {
-                $ifdEntries[$entryCount] = array();
-                $ifdEntries[$entryCount]['tag'] = $tag;
-                $ifdEntries[$entryCount]['type'] = $type;
-                $ifdEntries[$entryCount]['count'] = $count;
-                $ifdEntries[$entryCount]['value'] = $value;
-
-                $entryCount++;
-            }
-        }
-
-        return $ifdEntries;
-    }
-
-    /*************************************************************/
-    function _parseMarkerAdobe() {
-        if (!isset($this->_markers)) {
-            $this->_readJPEG();
-        }
-
-        if ($this->_markers == null) {
-            return false;
-        }
-
-        $data = null;
-        $count = count($this->_markers);
-        for ($i = 0; $i < $count; $i++) {
-            if ($this->_markers[$i]['marker'] == 0xED) {
-                $signature = $this->_getFixedString($this->_markers[$i]['data'], 0, 14);
-                if ($signature == "Photoshop 3.0\0") {
-                    $data =& $this->_markers[$i]['data'];
-                    break;
-                }
-            }
-        }
-
-        if ($data == null) {
-            $this->_info['adobe'] = false;
-            $this->_info['iptc'] = false;
-            return false;
-        }
-        $pos = 14;
-        $this->_info['adobe'] = array();
-        $this->_info['adobe']['raw'] = array();
-        $this->_info['iptc'] = array();
-
-        $datasize = strlen($data);
-
-        while ($pos < $datasize) {
-            $signature = $this->_getFixedString($data, $pos, 4);
-            if ($signature != '8BIM')
-                return false;
-            $pos += 4;
-
-            $type = $this->_getShort($data, $pos);
-            $pos += 2;
-
-            $strlen = $this->_getByte($data, $pos);
-            $pos += 1;
-            $header = '';
-            for ($i = 0; $i < $strlen; $i++) {
-                $header .= $data{$pos + $i};
-            }
-            $pos += $strlen + 1 - ($strlen % 2);  // The string is padded to even length, counting the length byte itself
-
-            $length = $this->_getLong($data, $pos);
-            $pos += 4;
-
-            $basePos = $pos;
-
-            switch ($type) {
-                case 0x0404: // Caption (IPTC Data)
-                    $pos = $this->_readIPTC($data, $pos);
-                    if ($pos == false)
-                        return false;
-                    break;
-                case 0x040A: // CopyrightFlag
-                    $this->_info['adobe']['CopyrightFlag'] = $this->_getByte($data, $pos);
-                    $pos += $length;
-                    break;
-                case 0x040B: // ImageURL
-                    $this->_info['adobe']['ImageURL'] = $this->_getFixedString($data, $pos, $length);
-                    $pos += $length;
-                    break;
-                case 0x040C: // Thumbnail
-                    $aux = $this->_getLong($data, $pos);
-                    $pos += 4;
-                    if ($aux == 1) {
-                        $this->_info['adobe']['ThumbnailWidth'] = $this->_getLong($data, $pos);
-                        $pos += 4;
-                        $this->_info['adobe']['ThumbnailHeight'] = $this->_getLong($data, $pos);
-                        $pos += 4;
-
-                        $pos += 16; // Skip some data
-
-                        $this->_info['adobe']['ThumbnailData'] = $this->_getFixedString($data, $pos, $length - 28);
-                        $pos += $length - 28;
-                    }
-                    break;
-                default:
-                    break;
-            }
-
-            // We save all blocks, even those we recognized
-            $label = sprintf('8BIM_0x%04x', $type);
-            $this->_info['adobe']['raw'][$label] = array();
-            $this->_info['adobe']['raw'][$label]['type'] = $type;
-            $this->_info['adobe']['raw'][$label]['header'] = $header;
-            $this->_info['adobe']['raw'][$label]['data'] =& $this->_getFixedString($data, $basePos, $length);
-
-            $pos = $basePos + $length + ($length % 2); // Even padding
-        }
-
-    }
-
-    /*************************************************************/
-    function _readIPTC(&$data, $pos = 0) {
-        $totalLength = strlen($data);
-
-        $IPTCTags = $this->_iptcTagNames();
-
-        while ($pos < ($totalLength - 5)) {
-            $signature = $this->_getShort($data, $pos);
-            if ($signature != 0x1C02)
-                return $pos;
-            $pos += 2;
-
-            $type = $this->_getByte($data, $pos);
-            $pos += 1;
-            $length = $this->_getShort($data, $pos);
-            $pos += 2;
-
-            $basePos = $pos;
-            $label = '';
-
-            if (isset($IPTCTags[$type])) {
-                $label = $IPTCTags[$type];
-            } else {
-                $label = sprintf('IPTC_0x%02x', $type);
-            }
-
-            if ($label != '') {
-                if (isset($this->_info['iptc'][$label])) {
-                    if (!is_array($this->_info['iptc'][$label])) {
-                        $aux = array();
-                        $aux[0] = $this->_info['iptc'][$label];
-                        $this->_info['iptc'][$label] = $aux;
-                    }
-                    $this->_info['iptc'][$label][ count($this->_info['iptc'][$label]) ] = $this->_getFixedString($data, $pos, $length);
-                } else {
-                    $this->_info['iptc'][$label] = $this->_getFixedString($data, $pos, $length);
-                }
-            }
-
-            $pos = $basePos + $length; // No padding
-        }
-        return $pos;
-    }
-
-    /*************************************************************/
-    function & _createMarkerAdobe() {
-        if (isset($this->_info['iptc'])) {
-            if (!isset($this->_info['adobe'])) {
-                $this->_info['adobe'] = array();
-            }
-            if (!isset($this->_info['adobe']['raw'])) {
-                $this->_info['adobe']['raw'] = array();
-            }
-            if (!isset($this->_info['adobe']['raw']['8BIM_0x0404'])) {
-                $this->_info['adobe']['raw']['8BIM_0x0404'] = array();
-            }
-            $this->_info['adobe']['raw']['8BIM_0x0404']['type'] = 0x0404;
-            $this->_info['adobe']['raw']['8BIM_0x0404']['header'] = "Caption";
-            $this->_info['adobe']['raw']['8BIM_0x0404']['data'] =& $this->_writeIPTC();
-        }
-
-        if (isset($this->_info['adobe']['raw']) && (count($this->_info['adobe']['raw']) > 0)) {
-            $data = "Photoshop 3.0\0";
-            $pos = 14;
-
-            reset($this->_info['adobe']['raw']);
-            foreach ($this->_info['adobe']['raw'] as $value){
-                $pos = $this->_write8BIM(
-                        $data,
-                        $pos,
-                        $value['type'],
-                        $value['header'],
-                        $value['data'] );
-            }
-        }
-
-        return $data;
-    }
-
-    /*************************************************************/
-
-    /**
-     * @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";
-
-        $pos = $this->_putString($data, $pos, $signature);
-        $pos = $this->_putShort($data, $pos, $type);
-
-        $len = strlen($header);
-
-        $pos = $this->_putByte($data, $pos, $len);
-        $pos = $this->_putString($data, $pos, $header);
-        if (($len % 2) == 0) {  // Even padding, including the length byte
-            $pos = $this->_putByte($data, $pos, 0);
-        }
-
-        $len = strlen($value);
-        $pos = $this->_putLong($data, $pos, $len);
-        $pos = $this->_putString($data, $pos, $value);
-        if (($len % 2) != 0) {  // Even padding
-            $pos = $this->_putByte($data, $pos, 0);
-        }
-        return $pos;
-    }
-
-    /*************************************************************/
-    function & _writeIPTC() {
-        $data = " ";
-        $pos = 0;
-
-        $IPTCNames =& $this->_iptcNameTags();
-
-        foreach($this->_info['iptc'] as $label => $value) {
-            $value =& $this->_info['iptc'][$label];
-            $type = -1;
-
-            if (isset($IPTCNames[$label])) {
-                $type = $IPTCNames[$label];
-            }
-            elseif (substr($label, 0, 7) == "IPTC_0x") {
-                $type = hexdec(substr($label, 7, 2));
-            }
-
-            if ($type != -1) {
-                if (is_array($value)) {
-                    $vcnt = count($value);
-                    for ($i = 0; $i < $vcnt; $i++) {
-                        $pos = $this->_writeIPTCEntry($data, $pos, $type, $value[$i]);
-                    }
-                }
-                else {
-                    $pos = $this->_writeIPTCEntry($data, $pos, $type, $value);
-                }
-            }
-        }
-
-        return $data;
-    }
-
-    /*************************************************************/
-
-    /**
-     * @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);
-        $pos = $this->_putByte($data, $pos, $type);
-        $pos = $this->_putShort($data, $pos, strlen($value));
-        $pos = $this->_putString($data, $pos, $value);
-
-        return $pos;
-    }
-
-    /*************************************************************/
-    function _exifTagNames($mode) {
-        $tags = array();
-
-        if ($mode == 'ifd0') {
-            $tags[0x010E] = 'ImageDescription';
-            $tags[0x010F] = 'Make';
-            $tags[0x0110] = 'Model';
-            $tags[0x0112] = 'Orientation';
-            $tags[0x011A] = 'XResolution';
-            $tags[0x011B] = 'YResolution';
-            $tags[0x0128] = 'ResolutionUnit';
-            $tags[0x0131] = 'Software';
-            $tags[0x0132] = 'DateTime';
-            $tags[0x013B] = 'Artist';
-            $tags[0x013E] = 'WhitePoint';
-            $tags[0x013F] = 'PrimaryChromaticities';
-            $tags[0x0211] = 'YCbCrCoefficients';
-            $tags[0x0212] = 'YCbCrSubSampling';
-            $tags[0x0213] = 'YCbCrPositioning';
-            $tags[0x0214] = 'ReferenceBlackWhite';
-            $tags[0x8298] = 'Copyright';
-            $tags[0x8769] = 'ExifIFDOffset';
-            $tags[0x8825] = 'GPSIFDOffset';
-        }
-        if ($mode == 'ifd1') {
-            $tags[0x00FE] = 'TIFFNewSubfileType';
-            $tags[0x00FF] = 'TIFFSubfileType';
-            $tags[0x0100] = 'TIFFImageWidth';
-            $tags[0x0101] = 'TIFFImageHeight';
-            $tags[0x0102] = 'TIFFBitsPerSample';
-            $tags[0x0103] = 'TIFFCompression';
-            $tags[0x0106] = 'TIFFPhotometricInterpretation';
-            $tags[0x0107] = 'TIFFThreshholding';
-            $tags[0x0108] = 'TIFFCellWidth';
-            $tags[0x0109] = 'TIFFCellLength';
-            $tags[0x010A] = 'TIFFFillOrder';
-            $tags[0x010E] = 'TIFFImageDescription';
-            $tags[0x010F] = 'TIFFMake';
-            $tags[0x0110] = 'TIFFModel';
-            $tags[0x0111] = 'TIFFStripOffsets';
-            $tags[0x0112] = 'TIFFOrientation';
-            $tags[0x0115] = 'TIFFSamplesPerPixel';
-            $tags[0x0116] = 'TIFFRowsPerStrip';
-            $tags[0x0117] = 'TIFFStripByteCounts';
-            $tags[0x0118] = 'TIFFMinSampleValue';
-            $tags[0x0119] = 'TIFFMaxSampleValue';
-            $tags[0x011A] = 'TIFFXResolution';
-            $tags[0x011B] = 'TIFFYResolution';
-            $tags[0x011C] = 'TIFFPlanarConfiguration';
-            $tags[0x0122] = 'TIFFGrayResponseUnit';
-            $tags[0x0123] = 'TIFFGrayResponseCurve';
-            $tags[0x0128] = 'TIFFResolutionUnit';
-            $tags[0x0131] = 'TIFFSoftware';
-            $tags[0x0132] = 'TIFFDateTime';
-            $tags[0x013B] = 'TIFFArtist';
-            $tags[0x013C] = 'TIFFHostComputer';
-            $tags[0x0140] = 'TIFFColorMap';
-            $tags[0x0152] = 'TIFFExtraSamples';
-            $tags[0x0201] = 'TIFFJFIFOffset';
-            $tags[0x0202] = 'TIFFJFIFLength';
-            $tags[0x0211] = 'TIFFYCbCrCoefficients';
-            $tags[0x0212] = 'TIFFYCbCrSubSampling';
-            $tags[0x0213] = 'TIFFYCbCrPositioning';
-            $tags[0x0214] = 'TIFFReferenceBlackWhite';
-            $tags[0x8298] = 'TIFFCopyright';
-            $tags[0x9286] = 'TIFFUserComment';
-        } elseif ($mode == 'exif') {
-            $tags[0x829A] = 'ExposureTime';
-            $tags[0x829D] = 'FNumber';
-            $tags[0x8822] = 'ExposureProgram';
-            $tags[0x8824] = 'SpectralSensitivity';
-            $tags[0x8827] = 'ISOSpeedRatings';
-            $tags[0x8828] = 'OECF';
-            $tags[0x9000] = 'EXIFVersion';
-            $tags[0x9003] = 'DatetimeOriginal';
-            $tags[0x9004] = 'DatetimeDigitized';
-            $tags[0x9101] = 'ComponentsConfiguration';
-            $tags[0x9102] = 'CompressedBitsPerPixel';
-            $tags[0x9201] = 'ShutterSpeedValue';
-            $tags[0x9202] = 'ApertureValue';
-            $tags[0x9203] = 'BrightnessValue';
-            $tags[0x9204] = 'ExposureBiasValue';
-            $tags[0x9205] = 'MaxApertureValue';
-            $tags[0x9206] = 'SubjectDistance';
-            $tags[0x9207] = 'MeteringMode';
-            $tags[0x9208] = 'LightSource';
-            $tags[0x9209] = 'Flash';
-            $tags[0x920A] = 'FocalLength';
-            $tags[0x927C] = 'MakerNote';
-            $tags[0x9286] = 'UserComment';
-            $tags[0x9290] = 'SubSecTime';
-            $tags[0x9291] = 'SubSecTimeOriginal';
-            $tags[0x9292] = 'SubSecTimeDigitized';
-            $tags[0xA000] = 'FlashPixVersion';
-            $tags[0xA001] = 'ColorSpace';
-            $tags[0xA002] = 'PixelXDimension';
-            $tags[0xA003] = 'PixelYDimension';
-            $tags[0xA004] = 'RelatedSoundFile';
-            $tags[0xA005] = 'InteropIFDOffset';
-            $tags[0xA20B] = 'FlashEnergy';
-            $tags[0xA20C] = 'SpatialFrequencyResponse';
-            $tags[0xA20E] = 'FocalPlaneXResolution';
-            $tags[0xA20F] = 'FocalPlaneYResolution';
-            $tags[0xA210] = 'FocalPlaneResolutionUnit';
-            $tags[0xA214] = 'SubjectLocation';
-            $tags[0xA215] = 'ExposureIndex';
-            $tags[0xA217] = 'SensingMethod';
-            $tags[0xA300] = 'FileSource';
-            $tags[0xA301] = 'SceneType';
-            $tags[0xA302] = 'CFAPattern';
-        } elseif ($mode == 'interop') {
-            $tags[0x0001] = 'InteroperabilityIndex';
-            $tags[0x0002] = 'InteroperabilityVersion';
-            $tags[0x1000] = 'RelatedImageFileFormat';
-            $tags[0x1001] = 'RelatedImageWidth';
-            $tags[0x1002] = 'RelatedImageLength';
-        } elseif ($mode == 'gps') {
-            $tags[0x0000] = 'GPSVersionID';
-            $tags[0x0001] = 'GPSLatitudeRef';
-            $tags[0x0002] = 'GPSLatitude';
-            $tags[0x0003] = 'GPSLongitudeRef';
-            $tags[0x0004] = 'GPSLongitude';
-            $tags[0x0005] = 'GPSAltitudeRef';
-            $tags[0x0006] = 'GPSAltitude';
-            $tags[0x0007] = 'GPSTimeStamp';
-            $tags[0x0008] = 'GPSSatellites';
-            $tags[0x0009] = 'GPSStatus';
-            $tags[0x000A] = 'GPSMeasureMode';
-            $tags[0x000B] = 'GPSDOP';
-            $tags[0x000C] = 'GPSSpeedRef';
-            $tags[0x000D] = 'GPSSpeed';
-            $tags[0x000E] = 'GPSTrackRef';
-            $tags[0x000F] = 'GPSTrack';
-            $tags[0x0010] = 'GPSImgDirectionRef';
-            $tags[0x0011] = 'GPSImgDirection';
-            $tags[0x0012] = 'GPSMapDatum';
-            $tags[0x0013] = 'GPSDestLatitudeRef';
-            $tags[0x0014] = 'GPSDestLatitude';
-            $tags[0x0015] = 'GPSDestLongitudeRef';
-            $tags[0x0016] = 'GPSDestLongitude';
-            $tags[0x0017] = 'GPSDestBearingRef';
-            $tags[0x0018] = 'GPSDestBearing';
-            $tags[0x0019] = 'GPSDestDistanceRef';
-            $tags[0x001A] = 'GPSDestDistance';
-        }
-
-        return $tags;
-    }
-
-    /*************************************************************/
-    function _exifTagTypes($mode) {
-        $tags = array();
-
-        if ($mode == 'ifd0') {
-            $tags[0x010E] = array(2, 0); // ImageDescription -> ASCII, Any
-            $tags[0x010F] = array(2, 0); // Make -> ASCII, Any
-            $tags[0x0110] = array(2, 0); // Model -> ASCII, Any
-            $tags[0x0112] = array(3, 1); // Orientation -> SHORT, 1
-            $tags[0x011A] = array(5, 1); // XResolution -> RATIONAL, 1
-            $tags[0x011B] = array(5, 1); // YResolution -> RATIONAL, 1
-            $tags[0x0128] = array(3, 1); // ResolutionUnit -> SHORT
-            $tags[0x0131] = array(2, 0); // Software -> ASCII, Any
-            $tags[0x0132] = array(2, 20); // DateTime -> ASCII, 20
-            $tags[0x013B] = array(2, 0); // Artist -> ASCII, Any
-            $tags[0x013E] = array(5, 2); // WhitePoint -> RATIONAL, 2
-            $tags[0x013F] = array(5, 6); // PrimaryChromaticities -> RATIONAL, 6
-            $tags[0x0211] = array(5, 3); // YCbCrCoefficients -> RATIONAL, 3
-            $tags[0x0212] = array(3, 2); // YCbCrSubSampling -> SHORT, 2
-            $tags[0x0213] = array(3, 1); // YCbCrPositioning -> SHORT, 1
-            $tags[0x0214] = array(5, 6); // ReferenceBlackWhite -> RATIONAL, 6
-            $tags[0x8298] = array(2, 0); // Copyright -> ASCII, Any
-            $tags[0x8769] = array(4, 1); // ExifIFDOffset -> LONG, 1
-            $tags[0x8825] = array(4, 1); // GPSIFDOffset -> LONG, 1
-        }
-        if ($mode == 'ifd1') {
-            $tags[0x00FE] = array(4, 1); // TIFFNewSubfileType -> LONG, 1
-            $tags[0x00FF] = array(3, 1); // TIFFSubfileType -> SHORT, 1
-            $tags[0x0100] = array(4, 1); // TIFFImageWidth -> LONG (or SHORT), 1
-            $tags[0x0101] = array(4, 1); // TIFFImageHeight -> LONG (or SHORT), 1
-            $tags[0x0102] = array(3, 3); // TIFFBitsPerSample -> SHORT, 3
-            $tags[0x0103] = array(3, 1); // TIFFCompression -> SHORT, 1
-            $tags[0x0106] = array(3, 1); // TIFFPhotometricInterpretation -> SHORT, 1
-            $tags[0x0107] = array(3, 1); // TIFFThreshholding -> SHORT, 1
-            $tags[0x0108] = array(3, 1); // TIFFCellWidth -> SHORT, 1
-            $tags[0x0109] = array(3, 1); // TIFFCellLength -> SHORT, 1
-            $tags[0x010A] = array(3, 1); // TIFFFillOrder -> SHORT, 1
-            $tags[0x010E] = array(2, 0); // TIFFImageDescription -> ASCII, Any
-            $tags[0x010F] = array(2, 0); // TIFFMake -> ASCII, Any
-            $tags[0x0110] = array(2, 0); // TIFFModel -> ASCII, Any
-            $tags[0x0111] = array(4, 0); // TIFFStripOffsets -> LONG (or SHORT), Any (one per strip)
-            $tags[0x0112] = array(3, 1); // TIFFOrientation -> SHORT, 1
-            $tags[0x0115] = array(3, 1); // TIFFSamplesPerPixel -> SHORT, 1
-            $tags[0x0116] = array(4, 1); // TIFFRowsPerStrip -> LONG (or SHORT), 1
-            $tags[0x0117] = array(4, 0); // TIFFStripByteCounts -> LONG (or SHORT), Any (one per strip)
-            $tags[0x0118] = array(3, 0); // TIFFMinSampleValue -> SHORT, Any (SamplesPerPixel)
-            $tags[0x0119] = array(3, 0); // TIFFMaxSampleValue -> SHORT, Any (SamplesPerPixel)
-            $tags[0x011A] = array(5, 1); // TIFFXResolution -> RATIONAL, 1
-            $tags[0x011B] = array(5, 1); // TIFFYResolution -> RATIONAL, 1
-            $tags[0x011C] = array(3, 1); // TIFFPlanarConfiguration -> SHORT, 1
-            $tags[0x0122] = array(3, 1); // TIFFGrayResponseUnit -> SHORT, 1
-            $tags[0x0123] = array(3, 0); // TIFFGrayResponseCurve -> SHORT, Any (2^BitsPerSample)
-            $tags[0x0128] = array(3, 1); // TIFFResolutionUnit -> SHORT, 1
-            $tags[0x0131] = array(2, 0); // TIFFSoftware -> ASCII, Any
-            $tags[0x0132] = array(2, 20); // TIFFDateTime -> ASCII, 20
-            $tags[0x013B] = array(2, 0); // TIFFArtist -> ASCII, Any
-            $tags[0x013C] = array(2, 0); // TIFFHostComputer -> ASCII, Any
-            $tags[0x0140] = array(3, 0); // TIFFColorMap -> SHORT, Any (3 * 2^BitsPerSample)
-            $tags[0x0152] = array(3, 0); // TIFFExtraSamples -> SHORT, Any (SamplesPerPixel - 3)
-            $tags[0x0201] = array(4, 1); // TIFFJFIFOffset -> LONG, 1
-            $tags[0x0202] = array(4, 1); // TIFFJFIFLength -> LONG, 1
-            $tags[0x0211] = array(5, 3); // TIFFYCbCrCoefficients -> RATIONAL, 3
-            $tags[0x0212] = array(3, 2); // TIFFYCbCrSubSampling -> SHORT, 2
-            $tags[0x0213] = array(3, 1); // TIFFYCbCrPositioning -> SHORT, 1
-            $tags[0x0214] = array(5, 6); // TIFFReferenceBlackWhite -> RATIONAL, 6
-            $tags[0x8298] = array(2, 0); // TIFFCopyright -> ASCII, Any
-            $tags[0x9286] = array(2, 0); // TIFFUserComment -> ASCII, Any
-        } elseif ($mode == 'exif') {
-            $tags[0x829A] = array(5, 1); // ExposureTime -> RATIONAL, 1
-            $tags[0x829D] = array(5, 1); // FNumber -> RATIONAL, 1
-            $tags[0x8822] = array(3, 1); // ExposureProgram -> SHORT, 1
-            $tags[0x8824] = array(2, 0); // SpectralSensitivity -> ASCII, Any
-            $tags[0x8827] = array(3, 0); // ISOSpeedRatings -> SHORT, Any
-            $tags[0x8828] = array(7, 0); // OECF -> UNDEFINED, Any
-            $tags[0x9000] = array(7, 4); // EXIFVersion -> UNDEFINED, 4
-            $tags[0x9003] = array(2, 20); // DatetimeOriginal -> ASCII, 20
-            $tags[0x9004] = array(2, 20); // DatetimeDigitized -> ASCII, 20
-            $tags[0x9101] = array(7, 4); // ComponentsConfiguration -> UNDEFINED, 4
-            $tags[0x9102] = array(5, 1); // CompressedBitsPerPixel -> RATIONAL, 1
-            $tags[0x9201] = array(10, 1); // ShutterSpeedValue -> SRATIONAL, 1
-            $tags[0x9202] = array(5, 1); // ApertureValue -> RATIONAL, 1
-            $tags[0x9203] = array(10, 1); // BrightnessValue -> SRATIONAL, 1
-            $tags[0x9204] = array(10, 1); // ExposureBiasValue -> SRATIONAL, 1
-            $tags[0x9205] = array(5, 1); // MaxApertureValue -> RATIONAL, 1
-            $tags[0x9206] = array(5, 1); // SubjectDistance -> RATIONAL, 1
-            $tags[0x9207] = array(3, 1); // MeteringMode -> SHORT, 1
-            $tags[0x9208] = array(3, 1); // LightSource -> SHORT, 1
-            $tags[0x9209] = array(3, 1); // Flash -> SHORT, 1
-            $tags[0x920A] = array(5, 1); // FocalLength -> RATIONAL, 1
-            $tags[0x927C] = array(7, 0); // MakerNote -> UNDEFINED, Any
-            $tags[0x9286] = array(7, 0); // UserComment -> UNDEFINED, Any
-            $tags[0x9290] = array(2, 0); // SubSecTime -> ASCII, Any
-            $tags[0x9291] = array(2, 0); // SubSecTimeOriginal -> ASCII, Any
-            $tags[0x9292] = array(2, 0); // SubSecTimeDigitized -> ASCII, Any
-            $tags[0xA000] = array(7, 4); // FlashPixVersion -> UNDEFINED, 4
-            $tags[0xA001] = array(3, 1); // ColorSpace -> SHORT, 1
-            $tags[0xA002] = array(4, 1); // PixelXDimension -> LONG (or SHORT), 1
-            $tags[0xA003] = array(4, 1); // PixelYDimension -> LONG (or SHORT), 1
-            $tags[0xA004] = array(2, 13); // RelatedSoundFile -> ASCII, 13
-            $tags[0xA005] = array(4, 1); // InteropIFDOffset -> LONG, 1
-            $tags[0xA20B] = array(5, 1); // FlashEnergy -> RATIONAL, 1
-            $tags[0xA20C] = array(7, 0); // SpatialFrequencyResponse -> UNDEFINED, Any
-            $tags[0xA20E] = array(5, 1); // FocalPlaneXResolution -> RATIONAL, 1
-            $tags[0xA20F] = array(5, 1); // FocalPlaneYResolution -> RATIONAL, 1
-            $tags[0xA210] = array(3, 1); // FocalPlaneResolutionUnit -> SHORT, 1
-            $tags[0xA214] = array(3, 2); // SubjectLocation -> SHORT, 2
-            $tags[0xA215] = array(5, 1); // ExposureIndex -> RATIONAL, 1
-            $tags[0xA217] = array(3, 1); // SensingMethod -> SHORT, 1
-            $tags[0xA300] = array(7, 1); // FileSource -> UNDEFINED, 1
-            $tags[0xA301] = array(7, 1); // SceneType -> UNDEFINED, 1
-            $tags[0xA302] = array(7, 0); // CFAPattern -> UNDEFINED, Any
-        } elseif ($mode == 'interop') {
-            $tags[0x0001] = array(2, 0); // InteroperabilityIndex -> ASCII, Any
-            $tags[0x0002] = array(7, 4); // InteroperabilityVersion -> UNKNOWN, 4
-            $tags[0x1000] = array(2, 0); // RelatedImageFileFormat -> ASCII, Any
-            $tags[0x1001] = array(4, 1); // RelatedImageWidth -> LONG (or SHORT), 1
-            $tags[0x1002] = array(4, 1); // RelatedImageLength -> LONG (or SHORT), 1
-        } elseif ($mode == 'gps') {
-            $tags[0x0000] = array(1, 4); // GPSVersionID -> BYTE, 4
-            $tags[0x0001] = array(2, 2); // GPSLatitudeRef -> ASCII, 2
-            $tags[0x0002] = array(5, 3); // GPSLatitude -> RATIONAL, 3
-            $tags[0x0003] = array(2, 2); // GPSLongitudeRef -> ASCII, 2
-            $tags[0x0004] = array(5, 3); // GPSLongitude -> RATIONAL, 3
-            $tags[0x0005] = array(2, 2); // GPSAltitudeRef -> ASCII, 2
-            $tags[0x0006] = array(5, 1); // GPSAltitude -> RATIONAL, 1
-            $tags[0x0007] = array(5, 3); // GPSTimeStamp -> RATIONAL, 3
-            $tags[0x0008] = array(2, 0); // GPSSatellites -> ASCII, Any
-            $tags[0x0009] = array(2, 2); // GPSStatus -> ASCII, 2
-            $tags[0x000A] = array(2, 2); // GPSMeasureMode -> ASCII, 2
-            $tags[0x000B] = array(5, 1); // GPSDOP -> RATIONAL, 1
-            $tags[0x000C] = array(2, 2); // GPSSpeedRef -> ASCII, 2
-            $tags[0x000D] = array(5, 1); // GPSSpeed -> RATIONAL, 1
-            $tags[0x000E] = array(2, 2); // GPSTrackRef -> ASCII, 2
-            $tags[0x000F] = array(5, 1); // GPSTrack -> RATIONAL, 1
-            $tags[0x0010] = array(2, 2); // GPSImgDirectionRef -> ASCII, 2
-            $tags[0x0011] = array(5, 1); // GPSImgDirection -> RATIONAL, 1
-            $tags[0x0012] = array(2, 0); // GPSMapDatum -> ASCII, Any
-            $tags[0x0013] = array(2, 2); // GPSDestLatitudeRef -> ASCII, 2
-            $tags[0x0014] = array(5, 3); // GPSDestLatitude -> RATIONAL, 3
-            $tags[0x0015] = array(2, 2); // GPSDestLongitudeRef -> ASCII, 2
-            $tags[0x0016] = array(5, 3); // GPSDestLongitude -> RATIONAL, 3
-            $tags[0x0017] = array(2, 2); // GPSDestBearingRef -> ASCII, 2
-            $tags[0x0018] = array(5, 1); // GPSDestBearing -> RATIONAL, 1
-            $tags[0x0019] = array(2, 2); // GPSDestDistanceRef -> ASCII, 2
-            $tags[0x001A] = array(5, 1); // GPSDestDistance -> RATIONAL, 1
-        }
-
-        return $tags;
-    }
-
-    /*************************************************************/
-    function _exifNameTags($mode) {
-        $tags = $this->_exifTagNames($mode);
-        return $this->_names2Tags($tags);
-    }
-
-    /*************************************************************/
-    function _iptcTagNames() {
-        $tags = array();
-        $tags[0x14] = 'SuplementalCategories';
-        $tags[0x19] = 'Keywords';
-        $tags[0x78] = 'Caption';
-        $tags[0x7A] = 'CaptionWriter';
-        $tags[0x69] = 'Headline';
-        $tags[0x28] = 'SpecialInstructions';
-        $tags[0x0F] = 'Category';
-        $tags[0x50] = 'Byline';
-        $tags[0x55] = 'BylineTitle';
-        $tags[0x6E] = 'Credit';
-        $tags[0x73] = 'Source';
-        $tags[0x74] = 'CopyrightNotice';
-        $tags[0x05] = 'ObjectName';
-        $tags[0x5A] = 'City';
-        $tags[0x5C] = 'Sublocation';
-        $tags[0x5F] = 'ProvinceState';
-        $tags[0x65] = 'CountryName';
-        $tags[0x67] = 'OriginalTransmissionReference';
-        $tags[0x37] = 'DateCreated';
-        $tags[0x0A] = 'CopyrightFlag';
-
-        return $tags;
-    }
-
-    /*************************************************************/
-    function & _iptcNameTags() {
-        $tags = $this->_iptcTagNames();
-        return $this->_names2Tags($tags);
-    }
-
-    /*************************************************************/
-    function _names2Tags($tags2Names) {
-        $names2Tags = array();
-
-        foreach($tags2Names as $tag => $name) {
-            $names2Tags[$name] = $tag;
-        }
-
-        return $names2Tags;
-    }
-
-    /*************************************************************/
-
-    /**
-     * @param $data
-     * @param integer $pos
-     *
-     * @return int
-     */
-    function _getByte(&$data, $pos) {
-        return ord($data{$pos});
-    }
-
-    /*************************************************************/
-
-    /**
-     * @param mixed $data
-     * @param integer $pos
-     *
-     * @param mixed $val
-     *
-     * @return int
-     */
-    function _putByte(&$data, $pos, $val) {
-        $val = intval($val);
-
-        $data{$pos} = chr($val);
-
-        return $pos + 1;
-    }
-
-    /*************************************************************/
-    function _getShort(&$data, $pos, $bigEndian = true) {
-        if ($bigEndian) {
-            return (ord($data{$pos}) << 8)
-                + ord($data{$pos + 1});
-        } else {
-            return ord($data{$pos})
-                + (ord($data{$pos + 1}) << 8);
-        }
-    }
-
-    /*************************************************************/
-    function _putShort(&$data, $pos = 0, $val = 0, $bigEndian = true) {
-        $val = intval($val);
-
-        if ($bigEndian) {
-            $data{$pos + 0} = chr(($val & 0x0000FF00) >> 8);
-            $data{$pos + 1} = chr(($val & 0x000000FF) >> 0);
-        } else {
-            $data{$pos + 0} = chr(($val & 0x00FF) >> 0);
-            $data{$pos + 1} = chr(($val & 0xFF00) >> 8);
-        }
-
-        return $pos + 2;
-    }
-
-    /*************************************************************/
-
-    /**
-     * @param mixed $data
-     * @param integer $pos
-     *
-     * @param bool $bigEndian
-     *
-     * @return int
-     */
-    function _getLong(&$data, $pos, $bigEndian = true) {
-        if ($bigEndian) {
-            return (ord($data{$pos}) << 24)
-                + (ord($data{$pos + 1}) << 16)
-                + (ord($data{$pos + 2}) << 8)
-                + ord($data{$pos + 3});
-        } else {
-            return ord($data{$pos})
-                + (ord($data{$pos + 1}) << 8)
-                + (ord($data{$pos + 2}) << 16)
-                + (ord($data{$pos + 3}) << 24);
-        }
-    }
-
-    /*************************************************************/
-
-    /**
-     * @param mixed $data
-     * @param integer $pos
-     *
-     * @param mixed $val
-     * @param bool $bigEndian
-     *
-     * @return int
-     */
-    function _putLong(&$data, $pos, $val, $bigEndian = true) {
-        $val = intval($val);
-
-        if ($bigEndian) {
-            $data{$pos + 0} = chr(($val & 0xFF000000) >> 24);
-            $data{$pos + 1} = chr(($val & 0x00FF0000) >> 16);
-            $data{$pos + 2} = chr(($val & 0x0000FF00) >> 8);
-            $data{$pos + 3} = chr(($val & 0x000000FF) >> 0);
-        } else {
-            $data{$pos + 0} = chr(($val & 0x000000FF) >> 0);
-            $data{$pos + 1} = chr(($val & 0x0000FF00) >> 8);
-            $data{$pos + 2} = chr(($val & 0x00FF0000) >> 16);
-            $data{$pos + 3} = chr(($val & 0xFF000000) >> 24);
-        }
-
-        return $pos + 4;
-    }
-
-    /*************************************************************/
-    function & _getNullString(&$data, $pos) {
-        $str = '';
-        $max = strlen($data);
-
-        while ($pos < $max) {
-            if (ord($data{$pos}) == 0) {
-                return $str;
-            } else {
-                $str .= $data{$pos};
-            }
-            $pos++;
-        }
-
-        return $str;
-    }
-
-    /*************************************************************/
-    function & _getFixedString(&$data, $pos, $length = -1) {
-        if ($length == -1) {
-            $length = strlen($data) - $pos;
-        }
-
-        $rv = substr($data, $pos, $length);
-        return $rv;
-    }
-
-    /*************************************************************/
-    function _putString(&$data, $pos, &$str) {
-        $len = strlen($str);
-        for ($i = 0; $i < $len; $i++) {
-            $data{$pos + $i} = $str{$i};
-        }
-
-        return $pos + $len;
-    }
-
-    /*************************************************************/
-    function _hexDump(&$data, $start = 0, $length = -1) {
-        if (($length == -1) || (($length + $start) > strlen($data))) {
-            $end = strlen($data);
-        } else {
-            $end = $start + $length;
-        }
-
-        $ascii = '';
-        $count = 0;
-
-        echo "<tt>\n";
-
-        while ($start < $end) {
-            if (($count % 16) == 0) {
-                echo sprintf('%04d', $count) . ': ';
-            }
-
-            $c = ord($data{$start});
-            $count++;
-            $start++;
-
-            $aux = dechex($c);
-            if (strlen($aux) == 1)
-                echo '0';
-            echo $aux . ' ';
-
-            if ($c == 60)
-                $ascii .= '&lt;';
-            elseif ($c == 62)
-                $ascii .= '&gt;';
-            elseif ($c == 32)
-                $ascii .= '&#160;';
-            elseif ($c > 32)
-                $ascii .= chr($c);
-            else
-                $ascii .= '.';
-
-            if (($count % 4) == 0) {
-                echo ' - ';
-            }
-
-            if (($count % 16) == 0) {
-                echo ': ' . $ascii . "<br>\n";
-                $ascii = '';
-            }
-        }
-
-        if ($ascii != '') {
-            while (($count % 16) != 0) {
-                echo '-- ';
-                $count++;
-                if (($count % 4) == 0) {
-                    echo ' - ';
-                }
-            }
-            echo ': ' . $ascii . "<br>\n";
-        }
-
-        echo "</tt>\n";
-    }
-
-    /*****************************************************************/
-}
-
-/* vim: set expandtab tabstop=4 shiftwidth=4: */
diff --git a/wiki/inc/Mailer.class.php b/wiki/inc/Mailer.class.php
deleted file mode 100644
index 7968ce9..0000000
--- a/wiki/inc/Mailer.class.php
+++ /dev/null
@@ -1,730 +0,0 @@
-<?php
-/**
- * A class to build and send multi part mails (with HTML content and embedded
- * attachments). All mails are assumed to be in UTF-8 encoding.
- *
- * Attachments are handled in memory so this shouldn't be used to send huge
- * files, but then again mail shouldn't be used to send huge files either.
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- */
-
-// end of line for mail lines - RFC822 says CRLF but postfix (and other MTAs?)
-// think different
-if(!defined('MAILHEADER_EOL')) define('MAILHEADER_EOL', "\n");
-#define('MAILHEADER_ASCIIONLY',1);
-
-/**
- * Mail Handling
- */
-class Mailer {
-
-    protected $headers   = array();
-    protected $attach    = array();
-    protected $html      = '';
-    protected $text      = '';
-
-    protected $boundary  = '';
-    protected $partid    = '';
-    protected $sendparam = null;
-
-    protected $allowhtml = true;
-
-    protected $replacements = array('text'=> array(), 'html' => array());
-
-    /**
-     * Constructor
-     *
-     * Initializes the boundary strings, part counters and token replacements
-     */
-    public function __construct() {
-        global $conf;
-        /* @var Input $INPUT */
-        global $INPUT;
-
-        $server = parse_url(DOKU_URL, PHP_URL_HOST);
-        if(strpos($server,'.') === false) $server = $server.'.localhost';
-
-        $this->partid   = substr(md5(uniqid(rand(), true)),0, 8).'@'.$server;
-        $this->boundary = '__________'.md5(uniqid(rand(), true));
-
-        $listid = join('.', array_reverse(explode('/', DOKU_BASE))).$server;
-        $listid = strtolower(trim($listid, '.'));
-
-        $this->allowhtml = (bool)$conf['htmlmail'];
-
-        // add some default headers for mailfiltering FS#2247
-        if(!empty($conf['mailreturnpath'])) {
-            $this->setHeader('Return-Path', $conf['mailreturnpath']);
-        }
-        $this->setHeader('X-Mailer', 'DokuWiki');
-        $this->setHeader('X-DokuWiki-User', $INPUT->server->str('REMOTE_USER'));
-        $this->setHeader('X-DokuWiki-Title', $conf['title']);
-        $this->setHeader('X-DokuWiki-Server', $server);
-        $this->setHeader('X-Auto-Response-Suppress', 'OOF');
-        $this->setHeader('List-Id', $conf['title'].' <'.$listid.'>');
-        $this->setHeader('Date', date('r'), false);
-
-        $this->prepareTokenReplacements();
-    }
-
-    /**
-     * Attach a file
-     *
-     * @param string $path  Path to the file to attach
-     * @param string $mime  Mimetype of the attached file
-     * @param string $name The filename to use
-     * @param string $embed Unique key to reference this file from the HTML part
-     */
-    public function attachFile($path, $mime, $name = '', $embed = '') {
-        if(!$name) {
-            $name = utf8_basename($path);
-        }
-
-        $this->attach[] = array(
-            'data'  => file_get_contents($path),
-            'mime'  => $mime,
-            'name'  => $name,
-            'embed' => $embed
-        );
-    }
-
-    /**
-     * Attach a file
-     *
-     * @param string $data  The file contents to attach
-     * @param string $mime  Mimetype of the attached file
-     * @param string $name  The filename to use
-     * @param string $embed Unique key to reference this file from the HTML part
-     */
-    public function attachContent($data, $mime, $name = '', $embed = '') {
-        if(!$name) {
-            list(, $ext) = explode('/', $mime);
-            $name = count($this->attach).".$ext";
-        }
-
-        $this->attach[] = array(
-            'data'  => $data,
-            'mime'  => $mime,
-            'name'  => $name,
-            'embed' => $embed
-        );
-    }
-
-    /**
-     * Callback function to automatically embed images referenced in HTML templates
-     *
-     * @param array $matches
-     * @return string placeholder
-     */
-    protected function autoembed_cb($matches) {
-        static $embeds = 0;
-        $embeds++;
-
-        // get file and mime type
-        $media = cleanID($matches[1]);
-        list(, $mime) = mimetype($media);
-        $file = mediaFN($media);
-        if(!file_exists($file)) return $matches[0]; //bad reference, keep as is
-
-        // attach it and set placeholder
-        $this->attachFile($file, $mime, '', 'autoembed'.$embeds);
-        return '%%autoembed'.$embeds.'%%';
-    }
-
-    /**
-     * Add an arbitrary header to the mail
-     *
-     * If an empy value is passed, the header is removed
-     *
-     * @param string $header the header name (no trailing colon!)
-     * @param string|string[] $value  the value of the header
-     * @param bool   $clean  remove all non-ASCII chars and line feeds?
-     */
-    public function setHeader($header, $value, $clean = true) {
-        $header = str_replace(' ', '-', ucwords(strtolower(str_replace('-', ' ', $header)))); // streamline casing
-        if($clean) {
-            $header = preg_replace('/[^a-zA-Z0-9_ \-\.\+\@]+/', '', $header);
-            $value  = preg_replace('/[^a-zA-Z0-9_ \-\.\+\@<>]+/', '', $value);
-        }
-
-        // empty value deletes
-        if(is_array($value)){
-            $value = array_map('trim', $value);
-            $value = array_filter($value);
-            if(!$value) $value = '';
-        }else{
-            $value = trim($value);
-        }
-        if($value === '') {
-            if(isset($this->headers[$header])) unset($this->headers[$header]);
-        } else {
-            $this->headers[$header] = $value;
-        }
-    }
-
-    /**
-     * Set additional parameters to be passed to sendmail
-     *
-     * Whatever is set here is directly passed to PHP's mail() command as last
-     * parameter. Depending on the PHP setup this might break mailing alltogether
-     *
-     * @param string $param
-     */
-    public function setParameters($param) {
-        $this->sendparam = $param;
-    }
-
-    /**
-     * Set the text and HTML body and apply replacements
-     *
-     * This function applies a whole bunch of default replacements in addition
-     * to the ones specified as parameters
-     *
-     * If you pass the HTML part or HTML replacements yourself you have to make
-     * sure you encode all HTML special chars correctly
-     *
-     * @param string $text     plain text body
-     * @param array  $textrep  replacements to apply on the text part
-     * @param array  $htmlrep  replacements to apply on the HTML part, null to use $textrep (with urls wrapped in <a> tags)
-     * @param string $html     the HTML body, leave null to create it from $text
-     * @param bool   $wrap     wrap the HTML in the default header/Footer
-     */
-    public function setBody($text, $textrep = null, $htmlrep = null, $html = null, $wrap = true) {
-
-        $htmlrep = (array)$htmlrep;
-        $textrep = (array)$textrep;
-
-        // create HTML from text if not given
-        if(is_null($html)) {
-            $html = $text;
-            $html = hsc($html);
-            $html = preg_replace('/^----+$/m', '<hr >', $html);
-            $html = nl2br($html);
-        }
-        if($wrap) {
-            $wrap = rawLocale('mailwrap', 'html');
-            $html = preg_replace('/\n-- <br \/>.*$/s', '', $html); //strip signature
-            $html = str_replace('@EMAILSIGNATURE@', '', $html); //strip @EMAILSIGNATURE@
-            $html = str_replace('@HTMLBODY@', $html, $wrap);
-        }
-
-        if(strpos($text, '@EMAILSIGNATURE@') === false) {
-            $text .= '@EMAILSIGNATURE@';
-        }
-
-        // copy over all replacements missing for HTML (autolink URLs)
-        foreach($textrep as $key => $value) {
-            if(isset($htmlrep[$key])) continue;
-            if(media_isexternal($value)) {
-                $htmlrep[$key] = '<a href="'.hsc($value).'">'.hsc($value).'</a>';
-            } else {
-                $htmlrep[$key] = hsc($value);
-            }
-        }
-
-        // embed media from templates
-        $html = preg_replace_callback(
-            '/@MEDIA\(([^\)]+)\)@/',
-            array($this, 'autoembed_cb'), $html
-        );
-
-        // add default token replacements
-        $trep = array_merge($this->replacements['text'], (array)$textrep);
-        $hrep = array_merge($this->replacements['html'], (array)$htmlrep);
-
-        // Apply replacements
-        foreach($trep as $key => $substitution) {
-            $text = str_replace('@'.strtoupper($key).'@', $substitution, $text);
-        }
-        foreach($hrep as $key => $substitution) {
-            $html = str_replace('@'.strtoupper($key).'@', $substitution, $html);
-        }
-
-        $this->setHTML($html);
-        $this->setText($text);
-    }
-
-    /**
-     * Set the HTML part of the mail
-     *
-     * Placeholders can be used to reference embedded attachments
-     *
-     * You probably want to use setBody() instead
-     *
-     * @param string $html
-     */
-    public function setHTML($html) {
-        $this->html = $html;
-    }
-
-    /**
-     * Set the plain text part of the mail
-     *
-     * You probably want to use setBody() instead
-     *
-     * @param string $text
-     */
-    public function setText($text) {
-        $this->text = $text;
-    }
-
-    /**
-     * Add the To: recipients
-     *
-     * @see cleanAddress
-     * @param string|string[]  $address Multiple adresses separated by commas or as array
-     */
-    public function to($address) {
-        $this->setHeader('To', $address, false);
-    }
-
-    /**
-     * Add the Cc: recipients
-     *
-     * @see cleanAddress
-     * @param string|string[]  $address Multiple adresses separated by commas or as array
-     */
-    public function cc($address) {
-        $this->setHeader('Cc', $address, false);
-    }
-
-    /**
-     * Add the Bcc: recipients
-     *
-     * @see cleanAddress
-     * @param string|string[]  $address Multiple adresses separated by commas or as array
-     */
-    public function bcc($address) {
-        $this->setHeader('Bcc', $address, false);
-    }
-
-    /**
-     * Add the From: address
-     *
-     * This is set to $conf['mailfrom'] when not specified so you shouldn't need
-     * to call this function
-     *
-     * @see cleanAddress
-     * @param string  $address from address
-     */
-    public function from($address) {
-        $this->setHeader('From', $address, false);
-    }
-
-    /**
-     * Add the mail's Subject: header
-     *
-     * @param string $subject the mail subject
-     */
-    public function subject($subject) {
-        $this->headers['Subject'] = $subject;
-    }
-
-    /**
-     * Sets an email address header with correct encoding
-     *
-     * Unicode characters will be deaccented and encoded base64
-     * for headers. Addresses may not contain Non-ASCII data!
-     *
-     * Example:
-     *   cc("föö <foo@bar.com>, me@somewhere.com","TBcc");
-     *
-     * @param string|string[]  $addresses Multiple adresses separated by commas or as array
-     * @return false|string  the prepared header (can contain multiple lines)
-     */
-    public function cleanAddress($addresses) {
-        $headers = '';
-        if(!is_array($addresses)){
-            $addresses = explode(',', $addresses);
-        }
-
-        foreach($addresses as $part) {
-            $part = preg_replace('/[\r\n\0]+/', ' ', $part); // remove attack vectors
-            $part = trim($part);
-
-            // parse address
-            if(preg_match('#(.*?)<(.*?)>#', $part, $matches)) {
-                $text = trim($matches[1]);
-                $addr = $matches[2];
-            } else {
-                $addr = $part;
-            }
-            // skip empty ones
-            if(empty($addr)) {
-                continue;
-            }
-
-            // FIXME: is there a way to encode the localpart of a emailaddress?
-            if(!utf8_isASCII($addr)) {
-                msg(hsc("E-Mail address <$addr> is not ASCII"), -1);
-                continue;
-            }
-
-            if(!mail_isvalid($addr)) {
-                msg(hsc("E-Mail address <$addr> is not valid"), -1);
-                continue;
-            }
-
-            // text was given
-            if(!empty($text) && !isWindows()) { // No named recipients for To: in Windows (see FS#652)
-                // add address quotes
-                $addr = "<$addr>";
-
-                if(defined('MAILHEADER_ASCIIONLY')) {
-                    $text = utf8_deaccent($text);
-                    $text = utf8_strip($text);
-                }
-
-                if(strpos($text, ',') !== false || !utf8_isASCII($text)) {
-                    $text = '=?UTF-8?B?'.base64_encode($text).'?=';
-                }
-            } else {
-                $text = '';
-            }
-
-            // add to header comma seperated
-            if($headers != '') {
-                $headers .= ', ';
-            }
-            $headers .= $text.' '.$addr;
-        }
-
-        $headers = trim($headers);
-        if(empty($headers)) return false;
-
-        return $headers;
-    }
-
-
-    /**
-     * Prepare the mime multiparts for all attachments
-     *
-     * Replaces placeholders in the HTML with the correct CIDs
-     *
-     * @return string mime multiparts
-     */
-    protected function prepareAttachments() {
-        $mime = '';
-        $part = 1;
-        // embedded attachments
-        foreach($this->attach as $media) {
-            $media['name'] = str_replace(':', '_', cleanID($media['name'], true));
-
-            // create content id
-            $cid = 'part'.$part.'.'.$this->partid;
-
-            // replace wildcards
-            if($media['embed']) {
-                $this->html = str_replace('%%'.$media['embed'].'%%', 'cid:'.$cid, $this->html);
-            }
-
-            $mime .= '--'.$this->boundary.MAILHEADER_EOL;
-            $mime .= $this->wrappedHeaderLine('Content-Type', $media['mime'].'; id="'.$cid.'"');
-            $mime .= $this->wrappedHeaderLine('Content-Transfer-Encoding', 'base64');
-            $mime .= $this->wrappedHeaderLine('Content-ID',"<$cid>");
-            if($media['embed']) {
-                $mime .= $this->wrappedHeaderLine('Content-Disposition', 'inline; filename='.$media['name']);
-            } else {
-                $mime .= $this->wrappedHeaderLine('Content-Disposition', 'attachment; filename='.$media['name']);
-            }
-            $mime .= MAILHEADER_EOL; //end of headers
-            $mime .= chunk_split(base64_encode($media['data']), 74, MAILHEADER_EOL);
-
-            $part++;
-        }
-        return $mime;
-    }
-
-    /**
-     * Build the body and handles multi part mails
-     *
-     * Needs to be called before prepareHeaders!
-     *
-     * @return string the prepared mail body, false on errors
-     */
-    protected function prepareBody() {
-
-        // no HTML mails allowed? remove HTML body
-        if(!$this->allowhtml) {
-            $this->html = '';
-        }
-
-        // check for body
-        if(!$this->text && !$this->html) {
-            return false;
-        }
-
-        // add general headers
-        $this->headers['MIME-Version'] = '1.0';
-
-        $body = '';
-
-        if(!$this->html && !count($this->attach)) { // we can send a simple single part message
-            $this->headers['Content-Type']              = 'text/plain; charset=UTF-8';
-            $this->headers['Content-Transfer-Encoding'] = 'base64';
-            $body .= chunk_split(base64_encode($this->text), 72, MAILHEADER_EOL);
-        } else { // multi part it is
-            $body .= "This is a multi-part message in MIME format.".MAILHEADER_EOL;
-
-            // prepare the attachments
-            $attachments = $this->prepareAttachments();
-
-            // do we have alternative text content?
-            if($this->text && $this->html) {
-                $this->headers['Content-Type'] = 'multipart/alternative;'.MAILHEADER_EOL.
-                    '  boundary="'.$this->boundary.'XX"';
-                $body .= '--'.$this->boundary.'XX'.MAILHEADER_EOL;
-                $body .= 'Content-Type: text/plain; charset=UTF-8'.MAILHEADER_EOL;
-                $body .= 'Content-Transfer-Encoding: base64'.MAILHEADER_EOL;
-                $body .= MAILHEADER_EOL;
-                $body .= chunk_split(base64_encode($this->text), 72, MAILHEADER_EOL);
-                $body .= '--'.$this->boundary.'XX'.MAILHEADER_EOL;
-                $body .= 'Content-Type: multipart/related;'.MAILHEADER_EOL.
-                    '  boundary="'.$this->boundary.'";'.MAILHEADER_EOL.
-                    '  type="text/html"'.MAILHEADER_EOL;
-                $body .= MAILHEADER_EOL;
-            }
-
-            $body .= '--'.$this->boundary.MAILHEADER_EOL;
-            $body .= 'Content-Type: text/html; charset=UTF-8'.MAILHEADER_EOL;
-            $body .= 'Content-Transfer-Encoding: base64'.MAILHEADER_EOL;
-            $body .= MAILHEADER_EOL;
-            $body .= chunk_split(base64_encode($this->html), 72, MAILHEADER_EOL);
-            $body .= MAILHEADER_EOL;
-            $body .= $attachments;
-            $body .= '--'.$this->boundary.'--'.MAILHEADER_EOL;
-
-            // close open multipart/alternative boundary
-            if($this->text && $this->html) {
-                $body .= '--'.$this->boundary.'XX--'.MAILHEADER_EOL;
-            }
-        }
-
-        return $body;
-    }
-
-    /**
-     * Cleanup and encode the headers array
-     */
-    protected function cleanHeaders() {
-        global $conf;
-
-        // clean up addresses
-        if(empty($this->headers['From'])) $this->from($conf['mailfrom']);
-        $addrs = array('To', 'From', 'Cc', 'Bcc', 'Reply-To', 'Sender');
-        foreach($addrs as $addr) {
-            if(isset($this->headers[$addr])) {
-                $this->headers[$addr] = $this->cleanAddress($this->headers[$addr]);
-            }
-        }
-
-        if(isset($this->headers['Subject'])) {
-            // add prefix to subject
-            if(empty($conf['mailprefix'])) {
-                if(utf8_strlen($conf['title']) < 20) {
-                    $prefix = '['.$conf['title'].']';
-                } else {
-                    $prefix = '['.utf8_substr($conf['title'], 0, 20).'...]';
-                }
-            } else {
-                $prefix = '['.$conf['mailprefix'].']';
-            }
-            $len = strlen($prefix);
-            if(substr($this->headers['Subject'], 0, $len) != $prefix) {
-                $this->headers['Subject'] = $prefix.' '.$this->headers['Subject'];
-            }
-
-            // encode subject
-            if(defined('MAILHEADER_ASCIIONLY')) {
-                $this->headers['Subject'] = utf8_deaccent($this->headers['Subject']);
-                $this->headers['Subject'] = utf8_strip($this->headers['Subject']);
-            }
-            if(!utf8_isASCII($this->headers['Subject'])) {
-                $this->headers['Subject'] = '=?UTF-8?B?'.base64_encode($this->headers['Subject']).'?=';
-            }
-        }
-
-    }
-
-    /**
-     * Returns a complete, EOL terminated header line, wraps it if necessary
-     *
-     * @param string $key
-     * @param string $val
-     * @return string line
-     */
-    protected function wrappedHeaderLine($key, $val){
-        return wordwrap("$key: $val", 78, MAILHEADER_EOL.'  ').MAILHEADER_EOL;
-    }
-
-    /**
-     * Create a string from the headers array
-     *
-     * @returns string the headers
-     */
-    protected function prepareHeaders() {
-        $headers = '';
-        foreach($this->headers as $key => $val) {
-            if ($val === '' || is_null($val)) continue;
-            $headers .= $this->wrappedHeaderLine($key, $val);
-        }
-        return $headers;
-    }
-
-    /**
-     * return a full email with all headers
-     *
-     * This is mainly intended for debugging and testing but could also be
-     * used for MHT exports
-     *
-     * @return string the mail, false on errors
-     */
-    public function dump() {
-        $this->cleanHeaders();
-        $body = $this->prepareBody();
-        if($body === false) return false;
-        $headers = $this->prepareHeaders();
-
-        return $headers.MAILHEADER_EOL.$body;
-    }
-
-    /**
-     * Prepare default token replacement strings
-     *
-     * Populates the '$replacements' property.
-     * Should be called by the class constructor
-     */
-    protected function prepareTokenReplacements() {
-        global $INFO;
-        global $conf;
-        /* @var Input $INPUT */
-        global $INPUT;
-        global $lang;
-
-        $ip   = clientIP();
-        $cip  = gethostsbyaddrs($ip);
-
-        $this->replacements['text'] = array(
-            'DATE' => dformat(),
-            'BROWSER' => $INPUT->server->str('HTTP_USER_AGENT'),
-            'IPADDRESS' => $ip,
-            'HOSTNAME' => $cip,
-            'TITLE' => $conf['title'],
-            'DOKUWIKIURL' => DOKU_URL,
-            'USER' => $INPUT->server->str('REMOTE_USER'),
-            'NAME' => $INFO['userinfo']['name'],
-            'MAIL' => $INFO['userinfo']['mail']
-        );
-        $signature = str_replace('@DOKUWIKIURL@', $this->replacements['text']['DOKUWIKIURL'], $lang['email_signature_text']);
-        $this->replacements['text']['EMAILSIGNATURE'] = "\n-- \n" . $signature . "\n";
-
-        $this->replacements['html'] = array(
-            'DATE' => '<i>' . hsc(dformat()) . '</i>',
-            'BROWSER' => hsc($INPUT->server->str('HTTP_USER_AGENT')),
-            'IPADDRESS' => '<code>' . hsc($ip) . '</code>',
-            'HOSTNAME' => '<code>' . hsc($cip) . '</code>',
-            'TITLE' => hsc($conf['title']),
-            'DOKUWIKIURL' => '<a href="' . DOKU_URL . '">' . DOKU_URL . '</a>',
-            'USER' => hsc($INPUT->server->str('REMOTE_USER')),
-            'NAME' => hsc($INFO['userinfo']['name']),
-            'MAIL' => '<a href="mailto:"' . hsc($INFO['userinfo']['mail']) . '">' .
-                hsc($INFO['userinfo']['mail']) . '</a>'
-        );
-        $signature = $lang['email_signature_text'];
-        if(!empty($lang['email_signature_html'])) {
-            $signature = $lang['email_signature_html'];
-        }
-        $signature = str_replace(
-            array(
-                '@DOKUWIKIURL@',
-                "\n"
-            ),
-            array(
-                $this->replacements['html']['DOKUWIKIURL'],
-                '<br />'
-            ),
-            $signature
-        );
-        $this->replacements['html']['EMAILSIGNATURE'] = $signature;
-    }
-
-    /**
-     * Send the mail
-     *
-     * Call this after all data was set
-     *
-     * @triggers MAIL_MESSAGE_SEND
-     * @return bool true if the mail was successfully passed to the MTA
-     */
-    public function send() {
-        $success = false;
-
-        // prepare hook data
-        $data = array(
-            // pass the whole mail class to plugin
-            'mail'    => $this,
-            // pass references for backward compatibility
-            'to'      => &$this->headers['To'],
-            'cc'      => &$this->headers['Cc'],
-            'bcc'     => &$this->headers['Bcc'],
-            'from'    => &$this->headers['From'],
-            'subject' => &$this->headers['Subject'],
-            'body'    => &$this->text,
-            'params'  => &$this->sendparam,
-            'headers' => '', // plugins shouldn't use this
-            // signal if we mailed successfully to AFTER event
-            'success' => &$success,
-        );
-
-        // do our thing if BEFORE hook approves
-        $evt = new Doku_Event('MAIL_MESSAGE_SEND', $data);
-        if($evt->advise_before(true)) {
-            // clean up before using the headers
-            $this->cleanHeaders();
-
-            // any recipients?
-            if(trim($this->headers['To']) === '' &&
-                trim($this->headers['Cc']) === '' &&
-                trim($this->headers['Bcc']) === ''
-            ) return false;
-
-            // The To: header is special
-            if(array_key_exists('To', $this->headers)) {
-                $to = (string)$this->headers['To'];
-                unset($this->headers['To']);
-            } else {
-                $to = '';
-            }
-
-            // so is the subject
-            if(array_key_exists('Subject', $this->headers)) {
-                $subject = (string)$this->headers['Subject'];
-                unset($this->headers['Subject']);
-            } else {
-                $subject = '';
-            }
-
-            // make the body
-            $body = $this->prepareBody();
-            if($body === false) return false;
-
-            // cook the headers
-            $headers = $this->prepareHeaders();
-            // add any headers set by legacy plugins
-            if(trim($data['headers'])) {
-                $headers .= MAILHEADER_EOL.trim($data['headers']);
-            }
-
-            // send the thing
-            if(is_null($this->sendparam)) {
-                $success = @mail($to, $subject, $body, $headers);
-            } else {
-                $success = @mail($to, $subject, $body, $headers, $this->sendparam);
-            }
-        }
-        // any AFTER actions?
-        $evt->advise_after();
-        return $success;
-    }
-}
diff --git a/wiki/inc/Manifest.php b/wiki/inc/Manifest.php
deleted file mode 100644
index 0df9c2b..0000000
--- a/wiki/inc/Manifest.php
+++ /dev/null
@@ -1,80 +0,0 @@
-<?php
-
-namespace dokuwiki;
-
-class Manifest
-{
-    public function sendManifest()
-    {
-        $manifest = retrieveConfig('manifest', 'jsonToArray');
-
-        global $conf;
-
-        $manifest['scope'] = DOKU_REL;
-
-        if (empty($manifest['name'])) {
-            $manifest['name'] = $conf['title'];
-        }
-
-        if (empty($manifest['short_name'])) {
-            $manifest['short_name'] = $conf['title'];
-        }
-
-        if (empty($manifest['description'])) {
-            $manifest['description'] = $conf['tagline'];
-        }
-
-        if (empty($manifest['start_url'])) {
-            $manifest['start_url'] = DOKU_REL;
-        }
-
-        $styleUtil = new \dokuwiki\StyleUtils();
-        $styleIni = $styleUtil->cssStyleini($conf['template']);
-        $replacements = $styleIni['replacements'];
-
-        if (empty($manifest['background_color'])) {
-            $manifest['background_color'] = $replacements['__background__'];
-        }
-
-        if (empty($manifest['theme_color'])) {
-            $manifest['theme_color'] = !empty($replacements['__theme_color__']) ? $replacements['__theme_color__'] : $replacements['__background_alt__'];
-        }
-
-        if (empty($manifest['icons'])) {
-            $manifest['icons'] = [];
-            if (file_exists(mediaFN(':wiki:favicon.ico'))) {
-                $url = ml(':wiki:favicon.ico', '', true, '', true);
-                $manifest['icons'][] = [
-                    'src' => $url,
-                    'sizes' => '16x16',
-                ];
-            }
-
-            $look = [
-                ':wiki:logo.svg',
-                ':logo.svg',
-                ':wiki:dokuwiki.svg'
-            ];
-
-            foreach ($look as $svgLogo) {
-
-                $svgLogoFN = mediaFN($svgLogo);
-
-                if (file_exists($svgLogoFN)) {
-                    $url = ml($svgLogo, '', true, '', true);
-                    $manifest['icons'][] = [
-                        'src' => $url,
-                        'sizes' => '17x17 512x512',
-                        'type' => 'image/svg+xml',
-                    ];
-                    break;
-                };
-            }
-        }
-
-        trigger_event('MANIFEST_SEND', $manifest);
-
-        header('Content-Type: application/manifest+json');
-        echo json_encode($manifest);
-    }
-}
diff --git a/wiki/inc/Menu/AbstractMenu.php b/wiki/inc/Menu/AbstractMenu.php
deleted file mode 100644
index ce021ab..0000000
--- a/wiki/inc/Menu/AbstractMenu.php
+++ /dev/null
@@ -1,95 +0,0 @@
-<?php
-
-namespace dokuwiki\Menu;
-
-use dokuwiki\Menu\Item\AbstractItem;
-
-/**
- * Class AbstractMenu
- *
- * Basic menu functionality. A menu defines a list of AbstractItem that shall be shown.
- * It contains convenience functions to display the menu in HTML, but template authors can also
- * just accesst the items via getItems() and create the HTML as however they see fit.
- */
-abstract class AbstractMenu implements MenuInterface {
-
-    /** @var string[] list of Item classes to load */
-    protected $types = array();
-
-    /** @var int the context this menu is used in */
-    protected $context = AbstractItem::CTX_DESKTOP;
-
-    /** @var string view identifier to be set in the event */
-    protected $view = '';
-
-    /**
-     * AbstractMenu constructor.
-     *
-     * @param int $context the context this menu is used in
-     */
-    public function __construct($context = AbstractItem::CTX_DESKTOP) {
-        $this->context = $context;
-    }
-
-    /**
-     * Get the list of action items in this menu
-     *
-     * @return AbstractItem[]
-     * @triggers MENU_ITEMS_ASSEMBLY
-     */
-    public function getItems() {
-        $data = array(
-            'view' => $this->view,
-            'items' => array(),
-        );
-        trigger_event('MENU_ITEMS_ASSEMBLY', $data, array($this, 'loadItems'));
-        return $data['items'];
-    }
-
-    /**
-     * Default action for the MENU_ITEMS_ASSEMBLY event
-     *
-     * @see getItems()
-     * @param array $data The plugin data
-     */
-    public function loadItems(&$data) {
-        foreach($this->types as $class) {
-            try {
-                $class = "\\dokuwiki\\Menu\\Item\\$class";
-                /** @var AbstractItem $item */
-                $item = new $class();
-                if(!$item->visibleInContext($this->context)) continue;
-                $data['items'][] = $item;
-            } catch(\RuntimeException $ignored) {
-                // item not available
-            }
-        }
-    }
-
-    /**
-     * Generate HTML list items for this menu
-     *
-     * This is a convenience method for template authors. If you need more fine control over the
-     * output, use getItems() and build the HTML yourself
-     *
-     * @param string|false $classprefix create a class from type with this prefix, false for no class
-     * @param bool $svg add the SVG link
-     * @return string
-     */
-    public function getListItems($classprefix = '', $svg = true) {
-        $html = '';
-        foreach($this->getItems() as $item) {
-            if($classprefix !== false) {
-                $class = ' class="' . $classprefix . $item->getType() . '"';
-            } else {
-                $class = '';
-            }
-
-            $html .= "<li$class>";
-            $html .= $item->asHtmlLink(false, $svg);
-            $html .= '</li>';
-        }
-        return $html;
-    }
-
-}
diff --git a/wiki/inc/Menu/DetailMenu.php b/wiki/inc/Menu/DetailMenu.php
deleted file mode 100644
index 27c0c6f..0000000
--- a/wiki/inc/Menu/DetailMenu.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-
-namespace dokuwiki\Menu;
-
-/**
- * Class DetailMenu
- *
- * This menu offers options on an image detail view. It usually displayed similar to
- * the PageMenu.
- */
-class DetailMenu extends AbstractMenu {
-
-    protected $view = 'detail';
-
-    protected $types = array(
-        'MediaManager',
-        'ImgBackto',
-        'Top',
-    );
-
-}
diff --git a/wiki/inc/Menu/Item/AbstractItem.php b/wiki/inc/Menu/Item/AbstractItem.php
deleted file mode 100644
index 45ead55..0000000
--- a/wiki/inc/Menu/Item/AbstractItem.php
+++ /dev/null
@@ -1,253 +0,0 @@
-<?php
-
-namespace dokuwiki\Menu\Item;
-
-/**
- * Class AbstractItem
- *
- * This class defines a single Item to be displayed in one of DokuWiki's menus. Plugins
- * can extend those menus through action plugins and add their own instances of this class,
- * overwriting some of its properties.
- *
- * Items may be shown multiple times in different contexts. Eg. for the default template
- * all menus are shown in a Dropdown list on mobile, but are split into several places on
- * desktop. The item's $context property can be used to hide the item depending on the current
- * context.
- *
- * Children usually just need to overwrite the different properties, but for complex things
- * the accessors may be overwritten instead.
- */
-abstract class AbstractItem {
-
-    /** menu item is to be shown on desktop screens only */
-    const CTX_DESKTOP = 1;
-    /** menu item is to be shown on mobile screens only */
-    const CTX_MOBILE = 2;
-    /** menu item is to be shown in all contexts */
-    const CTX_ALL = 3;
-
-    /** @var string name of the action, usually the lowercase class name */
-    protected $type = '';
-    /** @var string optional keyboard shortcut */
-    protected $accesskey = '';
-    /** @var string the page id this action links to */
-    protected $id = '';
-    /** @var string the method to be used when this action is used in a form */
-    protected $method = 'get';
-    /** @var array parameters for the action (should contain the do parameter) */
-    protected $params = array();
-    /** @var bool when true, a rel=nofollow should be used */
-    protected $nofollow = true;
-    /** @var string this item's label may contain a placeholder, which is replaced with this */
-    protected $replacement = '';
-    /** @var string the full path to the SVG icon of this menu item */
-    protected $svg = DOKU_INC . 'lib/images/menu/00-default_checkbox-blank-circle-outline.svg';
-    /** @var string can be set to overwrite the default lookup in $lang.btn_* */
-    protected $label = '';
-    /** @var string the tooltip title, defaults to $label */
-    protected $title = '';
-    /** @var int the context this titme is shown in */
-    protected $context = self::CTX_ALL;
-
-    /**
-     * AbstractItem constructor.
-     *
-     * Sets the dynamic properties
-     *
-     * Children should always call the parent constructor!
-     *
-     * @throws \RuntimeException when the action is disabled
-     */
-    public function __construct() {
-        global $ID;
-        $this->id = $ID;
-        $this->type = $this->getType();
-        $this->params['do'] = $this->type;
-
-        if(!actionOK($this->type)) throw new \RuntimeException("action disabled: {$this->type}");
-    }
-
-    /**
-     * Return this item's label
-     *
-     * When the label property was set, it is simply returned. Otherwise, the action's type
-     * is used to look up the translation in the main language file and, if used, the replacement
-     * is applied.
-     *
-     * @return string
-     */
-    public function getLabel() {
-        if($this->label !== '') return $this->label;
-
-        /** @var array $lang */
-        global $lang;
-        $label = $lang['btn_' . $this->type];
-        if(strpos($label, '%s')) {
-            $label = sprintf($label, $this->replacement);
-        }
-        if($label === '') $label = '[' . $this->type . ']';
-        return $label;
-    }
-
-    /**
-     * Return this item's title
-     *
-     * This title should be used to display a tooltip (using the HTML title attribute). If
-     * a title property was not explicitly set, the label will be returned.
-     *
-     * @return string
-     */
-    public function getTitle() {
-        if($this->title === '') return $this->getLabel();
-        return $this->title;
-    }
-
-    /**
-     * Return the link this item links to
-     *
-     * Basically runs wl() on $id and $params. However if the ID is a hash it is used directly
-     * as the link
-     *
-     * Please note that the generated URL is *not* XML escaped.
-     *
-     * @see wl()
-     * @return string
-     */
-    public function getLink() {
-        if($this->id[0] == '#') {
-            return $this->id;
-        } else {
-            return wl($this->id, $this->params, false, '&');
-        }
-    }
-
-    /**
-     * Convenience method to get the attributes for constructing an <a> element
-     *
-     * @see buildAttributes()
-     * @param string|false $classprefix create a class from type with this prefix, false for no class
-     * @return array
-     */
-    public function getLinkAttributes($classprefix = 'menuitem ') {
-        $attr = array(
-            'href' => $this->getLink(),
-            'title' => $this->getTitle(),
-        );
-        if($this->isNofollow()) $attr['rel'] = 'nofollow';
-        if($this->getAccesskey()) {
-            $attr['accesskey'] = $this->getAccesskey();
-            $attr['title'] .= ' [' . $this->getAccesskey() . ']';
-        }
-        if($classprefix !== false) $attr['class'] = $classprefix . $this->getType();
-
-        return $attr;
-    }
-
-    /**
-     * Convenience method to create a full <a> element
-     *
-     * Wraps around the label and SVG image
-     *
-     * @param string|false $classprefix create a class from type with this prefix, false for no class
-     * @param bool $svg add SVG icon to the link
-     * @return string
-     */
-    public function asHtmlLink($classprefix = 'menuitem ', $svg = true) {
-        $attr = buildAttributes($this->getLinkAttributes($classprefix));
-        $html = "<a $attr>";
-        if($svg) {
-            $html .= '<span>' . hsc($this->getLabel()) . '</span>';
-            $html .= inlineSVG($this->getSvg());
-        } else {
-            $html .= hsc($this->getLabel());
-        }
-        $html .= "</a>";
-
-        return $html;
-    }
-
-    /**
-     * Convenience method to create a <button> element inside it's own form element
-     *
-     * Uses html_btn()
-     *
-     * @return string
-     */
-    public function asHtmlButton() {
-        return html_btn(
-            $this->getType(),
-            $this->id,
-            $this->getAccesskey(),
-            $this->getParams(),
-            $this->method,
-            $this->getTitle(),
-            $this->getLabel(),
-            $this->getSvg()
-        );
-    }
-
-    /**
-     * Should this item be shown in the given context
-     *
-     * @param int $ctx the current context
-     * @return bool
-     */
-    public function visibleInContext($ctx) {
-        return (bool) ($ctx & $this->context);
-    }
-
-    /**
-     * @return string the name of this item
-     */
-    public function getType() {
-        if($this->type === '') {
-            $this->type = strtolower(substr(strrchr(get_class($this), '\\'), 1));
-        }
-        return $this->type;
-    }
-
-    /**
-     * @return string
-     */
-    public function getAccesskey() {
-        return $this->accesskey;
-    }
-
-    /**
-     * @return array
-     */
-    public function getParams() {
-        return $this->params;
-    }
-
-    /**
-     * @return bool
-     */
-    public function isNofollow() {
-        return $this->nofollow;
-    }
-
-    /**
-     * @return string
-     */
-    public function getSvg() {
-        return $this->svg;
-    }
-
-    /**
-     * Return this Item's settings as an array as used in tpl_get_action()
-     *
-     * @return array
-     */
-    public function getLegacyData() {
-        return array(
-            'accesskey' => $this->accesskey ?: null,
-            'type' => $this->type,
-            'id' => $this->id,
-            'method' => $this->method,
-            'params' => $this->params,
-            'nofollow' => $this->nofollow,
-            'replacement' => $this->replacement
-        );
-    }
-}
diff --git a/wiki/inc/Menu/Item/Admin.php b/wiki/inc/Menu/Item/Admin.php
deleted file mode 100644
index 7302f0f..0000000
--- a/wiki/inc/Menu/Item/Admin.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-
-namespace dokuwiki\Menu\Item;
-
-/**
- * Class Admin
- *
- * Opens the Admin screen. Only shown to managers or above
- */
-class Admin extends AbstractItem {
-
-    /** @inheritdoc */
-    public function __construct() {
-        global $INFO;
-        parent::__construct();
-
-        $this->svg = DOKU_INC . 'lib/images/menu/settings.svg';
-
-        if(!$INFO['ismanager']) {
-            throw new \RuntimeException("admin is for managers only");
-        }
-    }
-
-}
diff --git a/wiki/inc/Menu/Item/Back.php b/wiki/inc/Menu/Item/Back.php
deleted file mode 100644
index a7cc1d9..0000000
--- a/wiki/inc/Menu/Item/Back.php
+++ /dev/null
@@ -1,29 +0,0 @@
-<?php
-
-namespace dokuwiki\Menu\Item;
-
-/**
- * Class Back
- *
- * Navigates back up one namepspace. This is currently not used in any menu. Templates
- * would need to add this item manually.
- */
-class Back extends AbstractItem {
-
-    /** @inheritdoc */
-    public function __construct() {
-        global $ID;
-        parent::__construct();
-
-        $parent = tpl_getparent($ID);
-        if(!$parent) {
-            throw new \RuntimeException("No parent for back action");
-        }
-
-        $this->id = $parent;
-        $this->params = array('do' => '');
-        $this->accesskey = 'b';
-        $this->svg = DOKU_INC . 'lib/images/menu/12-back_arrow-left.svg';
-    }
-
-}
diff --git a/wiki/inc/Menu/Item/Backlink.php b/wiki/inc/Menu/Item/Backlink.php
deleted file mode 100644
index 6dc242b..0000000
--- a/wiki/inc/Menu/Item/Backlink.php
+++ /dev/null
@@ -1,18 +0,0 @@
-<?php
-
-namespace dokuwiki\Menu\Item;
-
-/**
- * Class Backlink
- *
- * Shows the backlinks for the current page
- */
-class Backlink extends AbstractItem {
-
-    /** @inheritdoc */
-    public function __construct() {
-        parent::__construct();
-        $this->svg = DOKU_INC . 'lib/images/menu/08-backlink_link-variant.svg';
-    }
-
-}
diff --git a/wiki/inc/Menu/Item/Edit.php b/wiki/inc/Menu/Item/Edit.php
deleted file mode 100644
index 5de1778..0000000
--- a/wiki/inc/Menu/Item/Edit.php
+++ /dev/null
@@ -1,65 +0,0 @@
-<?php
-
-namespace dokuwiki\Menu\Item;
-
-/**
- * Class Edit
- *
- * Most complex item. Shows the edit button but mutates to show, draft and create based on
- * current state.
- */
-class Edit extends AbstractItem {
-
-    /** @inheritdoc */
-    public function __construct() {
-        global $ACT;
-        global $INFO;
-        global $REV;
-
-        parent::__construct();
-
-        if($ACT === 'show') {
-            $this->method = 'post';
-            if($INFO['writable']) {
-                $this->accesskey = 'e';
-                if(!empty($INFO['draft'])) {
-                    $this->type = 'draft';
-                    $this->params['do'] = 'draft';
-                } else {
-                    $this->params['rev'] = $REV;
-                    if(!$INFO['exists']) {
-                        $this->type = 'create';
-                    }
-                }
-            } else {
-                if(!actionOK($this->type)) throw new \RuntimeException("action disabled: source");
-                $params['rev'] = $REV;
-                $this->type = 'source';
-                $this->accesskey = 'v';
-            }
-        } else {
-            $this->params = array('do' => '');
-            $this->type = 'show';
-            $this->accesskey = 'v';
-        }
-
-        $this->setIcon();
-    }
-
-    /**
-     * change the icon according to what type the edit button has
-     */
-    protected function setIcon() {
-        $icons = array(
-            'edit' => '01-edit_pencil.svg',
-            'create' => '02-create_pencil.svg',
-            'draft' => '03-draft_android-studio.svg',
-            'show' => '04-show_file-document.svg',
-            'source' => '05-source_file-xml.svg',
-        );
-        if(isset($icons[$this->type])) {
-            $this->svg = DOKU_INC . 'lib/images/menu/' . $icons[$this->type];
-        }
-    }
-
-}
diff --git a/wiki/inc/Menu/Item/ImgBackto.php b/wiki/inc/Menu/Item/ImgBackto.php
deleted file mode 100644
index 72820a5..0000000
--- a/wiki/inc/Menu/Item/ImgBackto.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-
-namespace dokuwiki\Menu\Item;
-
-/**
- * Class ImgBackto
- *
- * Links back to the originating page from a detail image view
- */
-class ImgBackto extends AbstractItem {
-
-    /** @inheritdoc */
-    public function __construct() {
-        global $ID;
-        parent::__construct();
-
-        $this->svg = DOKU_INC . 'lib/images/menu/12-back_arrow-left.svg';
-        $this->type = 'img_backto';
-        $this->params = array();
-        $this->accesskey = 'b';
-        $this->replacement = $ID;
-    }
-
-}
diff --git a/wiki/inc/Menu/Item/Index.php b/wiki/inc/Menu/Item/Index.php
deleted file mode 100644
index 4132673..0000000
--- a/wiki/inc/Menu/Item/Index.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-
-namespace dokuwiki\Menu\Item;
-
-/**
- * Class Index
- *
- * Shows the sitemap
- */
-class Index extends AbstractItem {
-
-    /** @inheritdoc */
-    public function __construct() {
-        global $conf;
-        global $ID;
-        parent::__construct();
-
-        $this->accesskey = 'x';
-        $this->svg = DOKU_INC . 'lib/images/menu/file-tree.svg';
-
-        // allow searchbots to get to the sitemap from the homepage (when dokuwiki isn't providing a sitemap.xml)
-        if($conf['start'] == $ID && !$conf['sitemap']) {
-            $this->nofollow = false;
-        }
-    }
-
-}
diff --git a/wiki/inc/Menu/Item/Login.php b/wiki/inc/Menu/Item/Login.php
deleted file mode 100644
index 671f6a7..0000000
--- a/wiki/inc/Menu/Item/Login.php
+++ /dev/null
@@ -1,29 +0,0 @@
-<?php
-
-namespace dokuwiki\Menu\Item;
-
-/**
- * Class Login
- *
- * Show a login or logout item, based on the current state
- */
-class Login extends AbstractItem {
-
-    /** @inheritdoc */
-    public function __construct() {
-        global $INPUT;
-        parent::__construct();
-
-        $this->svg = DOKU_INC . 'lib/images/menu/login.svg';
-        $this->params['sectok'] = getSecurityToken();
-        if($INPUT->server->has('REMOTE_USER')) {
-            if(!actionOK('logout')) {
-                throw new \RuntimeException("logout disabled");
-            }
-            $this->params['do'] = 'logout';
-            $this->type = 'logout';
-            $this->svg = DOKU_INC . 'lib/images/menu/logout.svg';
-        }
-    }
-
-}
diff --git a/wiki/inc/Menu/Item/Media.php b/wiki/inc/Menu/Item/Media.php
deleted file mode 100644
index 0e5f47b..0000000
--- a/wiki/inc/Menu/Item/Media.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-
-namespace dokuwiki\Menu\Item;
-
-/**
- * Class Media
- *
- * Opens the media manager
- */
-class Media extends AbstractItem {
-
-    /** @inheritdoc */
-    public function __construct() {
-        global $ID;
-        parent::__construct();
-
-        $this->svg = DOKU_INC . 'lib/images/menu/folder-multiple-image.svg';
-        $this->params['ns'] = getNS($ID);
-    }
-
-}
diff --git a/wiki/inc/Menu/Item/MediaManager.php b/wiki/inc/Menu/Item/MediaManager.php
deleted file mode 100644
index 8549d20..0000000
--- a/wiki/inc/Menu/Item/MediaManager.php
+++ /dev/null
@@ -1,32 +0,0 @@
-<?php
-
-namespace dokuwiki\Menu\Item;
-
-/**
- * Class MediaManager
- *
- * Opens the current image in the media manager. Used on image detail view.
- */
-class MediaManager extends AbstractItem {
-
-    /** @inheritdoc */
-    public function __construct() {
-        global $IMG;
-        parent::__construct();
-
-        $imgNS = getNS($IMG);
-        $authNS = auth_quickaclcheck("$imgNS:*");
-        if($authNS < AUTH_UPLOAD) {
-            throw new \RuntimeException("media manager link only with upload permissions");
-        }
-
-        $this->svg = DOKU_INC . 'lib/images/menu/11-mediamanager_folder-image.svg';
-        $this->type = 'mediaManager';
-        $this->params = array(
-            'ns' => $imgNS,
-            'image' => $IMG,
-            'do' => 'media'
-        );
-    }
-
-}
diff --git a/wiki/inc/Menu/Item/Profile.php b/wiki/inc/Menu/Item/Profile.php
deleted file mode 100644
index 2b4ceeb..0000000
--- a/wiki/inc/Menu/Item/Profile.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-
-namespace dokuwiki\Menu\Item;
-
-/**
- * Class Profile
- *
- * Open the user's profile
- */
-class Profile extends AbstractItem {
-
-    /** @inheritdoc */
-    public function __construct() {
-        global $INPUT;
-        parent::__construct();
-
-        if(!$INPUT->server->str('REMOTE_USER')) {
-            throw new \RuntimeException("profile is only for logged in users");
-        }
-
-        $this->svg = DOKU_INC . 'lib/images/menu/account-card-details.svg';
-    }
-
-}
diff --git a/wiki/inc/Menu/Item/Recent.php b/wiki/inc/Menu/Item/Recent.php
deleted file mode 100644
index ff90ce6..0000000
--- a/wiki/inc/Menu/Item/Recent.php
+++ /dev/null
@@ -1,20 +0,0 @@
-<?php
-
-namespace dokuwiki\Menu\Item;
-
-/**
- * Class Recent
- *
- * Show the site wide recent changes
- */
-class Recent extends AbstractItem {
-
-    /** @inheritdoc */
-    public function __construct() {
-        parent::__construct();
-
-        $this->accesskey = 'r';
-        $this->svg = DOKU_INC . 'lib/images/menu/calendar-clock.svg';
-    }
-
-}
diff --git a/wiki/inc/Menu/Item/Register.php b/wiki/inc/Menu/Item/Register.php
deleted file mode 100644
index 615146e..0000000
--- a/wiki/inc/Menu/Item/Register.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-
-namespace dokuwiki\Menu\Item;
-
-/**
- * Class Register
- *
- * Open the view to register a new account
- */
-class Register extends AbstractItem {
-
-    /** @inheritdoc */
-    public function __construct() {
-        global $INPUT;
-        parent::__construct();
-
-        if($INPUT->server->str('REMOTE_USER')) {
-            throw new \RuntimeException("no register when already logged in");
-        }
-
-        $this->svg = DOKU_INC . 'lib/images/menu/account-plus.svg';
-    }
-
-}
diff --git a/wiki/inc/Menu/Item/Resendpwd.php b/wiki/inc/Menu/Item/Resendpwd.php
deleted file mode 100644
index 7ddc6b0..0000000
--- a/wiki/inc/Menu/Item/Resendpwd.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-
-namespace dokuwiki\Menu\Item;
-
-/**
- * Class Resendpwd
- *
- * Access the "forgot password" dialog
- */
-class Resendpwd extends AbstractItem {
-
-    /** @inheritdoc */
-    public function __construct() {
-        global $INPUT;
-        parent::__construct();
-
-        if($INPUT->server->str('REMOTE_USER')) {
-            throw new \RuntimeException("no resendpwd when already logged in");
-        }
-
-        $this->svg = DOKU_INC . 'lib/images/menu/lock-reset.svg';
-    }
-
-}
diff --git a/wiki/inc/Menu/Item/Revert.php b/wiki/inc/Menu/Item/Revert.php
deleted file mode 100644
index a360c68..0000000
--- a/wiki/inc/Menu/Item/Revert.php
+++ /dev/null
@@ -1,26 +0,0 @@
-<?php
-
-namespace dokuwiki\Menu\Item;
-
-/**
- * Class Revert
- *
- * Quick revert to the currently shown page revision
- */
-class Revert extends AbstractItem {
-
-    /** @inheritdoc */
-    public function __construct() {
-        global $REV;
-        global $INFO;
-        parent::__construct();
-
-        if(!$INFO['ismanager'] || !$REV || !$INFO['writable']) {
-            throw new \RuntimeException('revert not available');
-        }
-        $this->params['rev'] = $REV;
-        $this->params['sectok'] = getSecurityToken();
-        $this->svg = DOKU_INC . 'lib/images/menu/06-revert_replay.svg';
-    }
-
-}
diff --git a/wiki/inc/Menu/Item/Revisions.php b/wiki/inc/Menu/Item/Revisions.php
deleted file mode 100644
index 3009a79..0000000
--- a/wiki/inc/Menu/Item/Revisions.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-
-namespace dokuwiki\Menu\Item;
-
-/**
- * Class Revisions
- *
- * Access the old revisions of the current page
- */
-class Revisions extends AbstractItem {
-
-    /** @inheritdoc */
-    public function __construct() {
-        parent::__construct();
-
-        $this->accesskey = 'o';
-        $this->type = 'revs';
-        $this->svg = DOKU_INC . 'lib/images/menu/07-revisions_history.svg';
-    }
-
-}
diff --git a/wiki/inc/Menu/Item/Subscribe.php b/wiki/inc/Menu/Item/Subscribe.php
deleted file mode 100644
index 1c9d335..0000000
--- a/wiki/inc/Menu/Item/Subscribe.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-
-namespace dokuwiki\Menu\Item;
-
-/**
- * Class Subscribe
- *
- * Access the subscription management view
- */
-class Subscribe extends AbstractItem {
-
-    /** @inheritdoc */
-    public function __construct() {
-        global $INPUT;
-        parent::__construct();
-
-        if(!$INPUT->server->str('REMOTE_USER')) {
-            throw new \RuntimeException("subscribe is only for logged in users");
-        }
-
-        $this->svg = DOKU_INC . 'lib/images/menu/09-subscribe_email-outline.svg';
-    }
-
-}
diff --git a/wiki/inc/Menu/Item/Top.php b/wiki/inc/Menu/Item/Top.php
deleted file mode 100644
index a05c4f1..0000000
--- a/wiki/inc/Menu/Item/Top.php
+++ /dev/null
@@ -1,36 +0,0 @@
-<?php
-
-namespace dokuwiki\Menu\Item;
-
-/**
- * Class Top
- *
- * Scroll back to the top. Uses a hash as $id which is handled special in getLink().
- * Not shown in mobile context
- */
-class Top extends AbstractItem {
-
-    /** @inheritdoc */
-    public function __construct() {
-        parent::__construct();
-
-        $this->svg = DOKU_INC . 'lib/images/menu/10-top_arrow-up.svg';
-        $this->accesskey = 't';
-        $this->params = array('do' => '');
-        $this->id = '#dokuwiki__top';
-        $this->context = self::CTX_DESKTOP;
-    }
-
-    /**
-     * Convenience method to create a <button> element
-     *
-     * Uses html_topbtn()
-     *
-     * @todo this does currently not support the SVG icon
-     * @return string
-     */
-    public function asHtmlButton() {
-        return html_topbtn();
-    }
-
-}
diff --git a/wiki/inc/Menu/MenuInterface.php b/wiki/inc/Menu/MenuInterface.php
deleted file mode 100644
index 91dde9d..0000000
--- a/wiki/inc/Menu/MenuInterface.php
+++ /dev/null
@@ -1,20 +0,0 @@
-<?php
-
-namespace dokuwiki\Menu;
-
-use dokuwiki\Menu\Item\AbstractItem;
-
-/**
- * Interface MenuInterface
- *
- * Defines what a Menu provides
- */
-Interface MenuInterface {
-
-    /**
-     * Get the list of action items in this menu
-     *
-     * @return AbstractItem[]
-     */
-    public function getItems();
-}
diff --git a/wiki/inc/Menu/MobileMenu.php b/wiki/inc/Menu/MobileMenu.php
deleted file mode 100644
index 29e17d1..0000000
--- a/wiki/inc/Menu/MobileMenu.php
+++ /dev/null
@@ -1,91 +0,0 @@
-<?php
-
-namespace dokuwiki\Menu;
-
-use dokuwiki\Menu\Item\AbstractItem;
-
-/**
- * Class MobileMenu
- *
- * Note: this does not inherit from AbstractMenu because it is not working like the other
- * menus. This is a meta menu, aggregating the items from the other menus and offering a combined
- * view. The idea is to use this on mobile devices, thus the context is fixed to CTX_MOBILE
- */
-class MobileMenu implements MenuInterface {
-
-    /**
-     * Returns all items grouped by view
-     *
-     * @return AbstractItem[][]
-     */
-    public function getGroupedItems() {
-        $pagemenu = new PageMenu(AbstractItem::CTX_MOBILE);
-        $sitemenu = new SiteMenu(AbstractItem::CTX_MOBILE);
-        $usermenu = new UserMenu(AbstractItem::CTX_MOBILE);
-
-        return array(
-            'page' => $pagemenu->getItems(),
-            'site' => $sitemenu->getItems(),
-            'user' => $usermenu->getItems()
-        );
-    }
-
-    /**
-     * Get all items in a flat array
-     *
-     * This returns the same format as AbstractMenu::getItems()
-     *
-     * @return AbstractItem[]
-     */
-    public function getItems() {
-        $menu = $this->getGroupedItems();
-        return call_user_func_array('array_merge', array_values($menu));
-    }
-
-    /**
-     * Print a dropdown menu with all DokuWiki actions
-     *
-     * Note: this will not use any pretty URLs
-     *
-     * @param string $empty empty option label
-     * @param string $button submit button label
-     * @return string
-     */
-    public function getDropdown($empty = '', $button = '&gt;') {
-        global $ID;
-        global $REV;
-        /** @var string[] $lang */
-        global $lang;
-        global $INPUT;
-
-        $html = '<form action="' . script() . '" method="get" accept-charset="utf-8">';
-        $html .= '<div class="no">';
-        $html .= '<input type="hidden" name="id" value="' . $ID . '" />';
-        if($REV) $html .= '<input type="hidden" name="rev" value="' . $REV . '" />';
-        if($INPUT->server->str('REMOTE_USER')) {
-            $html .= '<input type="hidden" name="sectok" value="' . getSecurityToken() . '" />';
-        }
-
-        $html .= '<select name="do" class="edit quickselect" title="' . $lang['tools'] . '">';
-        $html .= '<option value="">' . $empty . '</option>';
-
-        foreach($this->getGroupedItems() as $tools => $items) {
-            $html .= '<optgroup label="' . $lang[$tools . '_tools'] . '">';
-            foreach($items as $item) {
-                $params = $item->getParams();
-                $html .= '<option value="' . $params['do'] . '">';
-                $html .= hsc($item->getLabel());
-                $html .= '</option>';
-            }
-            $html .= '</optgroup>';
-        }
-
-        $html .= '</select>';
-        $html .= '<button type="submit">' . $button . '</button>';
-        $html .= '</div>';
-        $html .= '</form>';
-
-        return $html;
-    }
-
-}
diff --git a/wiki/inc/Menu/PageMenu.php b/wiki/inc/Menu/PageMenu.php
deleted file mode 100644
index 9c0a55e..0000000
--- a/wiki/inc/Menu/PageMenu.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-
-namespace dokuwiki\Menu;
-
-/**
- * Class PageMenu
- *
- * Actions manipulating the current page. Shown as a floating menu in the dokuwiki template
- */
-class PageMenu extends AbstractMenu {
-
-    protected $view = 'page';
-
-    protected $types = array(
-        'Edit',
-        'Revert',
-        'Revisions',
-        'Backlink',
-        'Subscribe',
-        'Top',
-    );
-
-}
diff --git a/wiki/inc/Menu/SiteMenu.php b/wiki/inc/Menu/SiteMenu.php
deleted file mode 100644
index dba6888..0000000
--- a/wiki/inc/Menu/SiteMenu.php
+++ /dev/null
@@ -1,20 +0,0 @@
-<?php
-
-namespace dokuwiki\Menu;
-
-/**
- * Class SiteMenu
- *
- * Actions that are not bound to an individual page but provide toolsfor the whole wiki.
- */
-class SiteMenu extends AbstractMenu {
-
-    protected $view = 'site';
-
-    protected $types = array(
-        'Recent',
-        'Media',
-        'Index'
-    );
-
-}
diff --git a/wiki/inc/Menu/UserMenu.php b/wiki/inc/Menu/UserMenu.php
deleted file mode 100644
index 01028d3..0000000
--- a/wiki/inc/Menu/UserMenu.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-
-namespace dokuwiki\Menu;
-
-/**
- * Class UserMenu
- *
- * Actions related to the current user
- */
-class UserMenu extends AbstractMenu {
-
-    protected $view = 'user';
-
-    protected $types = array(
-        'Profile',
-        'Admin',
-        'Register',
-        'Login',
-    );
-
-}
diff --git a/wiki/inc/PassHash.class.php b/wiki/inc/PassHash.class.php
deleted file mode 100644
index 3d03c1e..0000000
--- a/wiki/inc/PassHash.class.php
+++ /dev/null
@@ -1,639 +0,0 @@
-<?php
-/**
- * Password Hashing Class
- *
- * This class implements various mechanisms used to hash passwords
- *
- * @author  Andreas Gohr <andi@splitbrain.org>
- * @license LGPL2
- */
-class PassHash {
-    /**
-     * Verifies a cleartext password against a crypted hash
-     *
-     * The method and salt used for the crypted hash is determined automatically,
-     * then the clear text password is crypted using the same method. If both hashs
-     * match true is is returned else false
-     *
-     * @author  Andreas Gohr <andi@splitbrain.org>
-     *
-     * @param string $clear Clear-Text password
-     * @param string $hash  Hash to compare against
-     * @return  bool
-     */
-    function verify_hash($clear, $hash) {
-        $method = '';
-        $salt   = '';
-        $magic  = '';
-
-        //determine the used method and salt
-        $len = strlen($hash);
-        if(preg_match('/^\$1\$([^\$]{0,8})\$/', $hash, $m)) {
-            $method = 'smd5';
-            $salt   = $m[1];
-            $magic  = '1';
-        } elseif(preg_match('/^\$apr1\$([^\$]{0,8})\$/', $hash, $m)) {
-            $method = 'apr1';
-            $salt   = $m[1];
-            $magic  = 'apr1';
-        } elseif(preg_match('/^\$P\$(.{31})$/', $hash, $m)) {
-            $method = 'pmd5';
-            $salt   = $m[1];
-            $magic  = 'P';
-        } elseif(preg_match('/^\$H\$(.{31})$/', $hash, $m)) {
-            $method = 'pmd5';
-            $salt = $m[1];
-            $magic = 'H';
-        } elseif(preg_match('/^pbkdf2_(\w+?)\$(\d+)\$(.{12})\$/', $hash, $m)) {
-            $method = 'djangopbkdf2';
-            $magic = array(
-                'algo' => $m[1],
-                'iter' => $m[2],
-            );
-            $salt = $m[3];
-        } elseif(preg_match('/^sha1\$(.{5})\$/', $hash, $m)) {
-            $method = 'djangosha1';
-            $salt   = $m[1];
-        } elseif(preg_match('/^md5\$(.{5})\$/', $hash, $m)) {
-            $method = 'djangomd5';
-            $salt   = $m[1];
-        } elseif(preg_match('/^\$2(a|y)\$(.{2})\$/', $hash, $m)) {
-            $method = 'bcrypt';
-            $salt   = $hash;
-        } elseif(substr($hash, 0, 6) == '{SSHA}') {
-            $method = 'ssha';
-            $salt   = substr(base64_decode(substr($hash, 6)), 20);
-        } elseif(substr($hash, 0, 6) == '{SMD5}') {
-            $method = 'lsmd5';
-            $salt   = substr(base64_decode(substr($hash, 6)), 16);
-        } elseif(preg_match('/^:B:(.+?):.{32}$/', $hash, $m)) {
-            $method = 'mediawiki';
-            $salt   = $m[1];
-        } elseif(preg_match('/^\$6\$(.+?)\$/', $hash, $m)) {
-            $method = 'sha512';
-            $salt   = $m[1];
-        } elseif($len == 32) {
-            $method = 'md5';
-        } elseif($len == 40) {
-            $method = 'sha1';
-        } elseif($len == 16) {
-            $method = 'mysql';
-        } elseif($len == 41 && $hash[0] == '*') {
-            $method = 'my411';
-        } elseif($len == 34) {
-            $method = 'kmd5';
-            $salt   = $hash;
-        } else {
-            $method = 'crypt';
-            $salt   = substr($hash, 0, 2);
-        }
-
-        //crypt and compare
-        $call = 'hash_'.$method;
-        $newhash = $this->$call($clear, $salt, $magic);
-        if(\hash_equals($newhash, $hash)) {
-            return true;
-        }
-        return false;
-    }
-
-    /**
-     * Create a random salt
-     *
-     * @param int $len The length of the salt
-     * @return string
-     */
-    public function gen_salt($len = 32) {
-        $salt  = '';
-        $chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
-        for($i = 0; $i < $len; $i++) {
-            $salt .= $chars[$this->random(0, 61)];
-        }
-        return $salt;
-    }
-
-    /**
-     * Initialize the passed variable with a salt if needed.
-     *
-     * If $salt is not null, the value is kept, but the lenght restriction is
-     * applied (unless, $cut is false).
-     *
-     * @param string|null &$salt  The salt, pass null if you want one generated
-     * @param int          $len   The length of the salt
-     * @param bool         $cut   Apply length restriction to existing salt?
-     */
-    public function init_salt(&$salt, $len = 32, $cut = true) {
-        if(is_null($salt)) {
-            $salt = $this->gen_salt($len);
-            $cut  = true; // for new hashes we alway apply length restriction
-        }
-        if(strlen($salt) > $len && $cut) $salt = substr($salt, 0, $len);
-    }
-
-    // Password hashing methods follow below
-
-    /**
-     * Password hashing method 'smd5'
-     *
-     * Uses salted MD5 hashs. Salt is 8 bytes long.
-     *
-     * The same mechanism is used by Apache's 'apr1' method. This will
-     * fallback to a implementation in pure PHP if MD5 support is not
-     * available in crypt()
-     *
-     * @author Andreas Gohr <andi@splitbrain.org>
-     * @author <mikey_nich at hotmail dot com>
-     * @link   http://php.net/manual/en/function.crypt.php#73619
-     *
-     * @param string $clear The clear text to hash
-     * @param string $salt  The salt to use, null for random
-     * @return string Hashed password
-     */
-    public function hash_smd5($clear, $salt = null) {
-        $this->init_salt($salt, 8);
-
-        if(defined('CRYPT_MD5') && CRYPT_MD5 && $salt !== '') {
-            return crypt($clear, '$1$'.$salt.'$');
-        } else {
-            // Fall back to PHP-only implementation
-            return $this->hash_apr1($clear, $salt, '1');
-        }
-    }
-
-    /**
-     * Password hashing method 'lsmd5'
-     *
-     * Uses salted MD5 hashs. Salt is 8 bytes long.
-     *
-     * This is the format used by LDAP.
-     *
-     * @param string $clear The clear text to hash
-     * @param string $salt  The salt to use, null for random
-     * @return string Hashed password
-     */
-    public function hash_lsmd5($clear, $salt = null) {
-        $this->init_salt($salt, 8);
-        return "{SMD5}".base64_encode(md5($clear.$salt, true).$salt);
-    }
-
-    /**
-     * Password hashing method 'apr1'
-     *
-     * Uses salted MD5 hashs. Salt is 8 bytes long.
-     *
-     * This is basically the same as smd1 above, but as used by Apache.
-     *
-     * @author <mikey_nich at hotmail dot com>
-     * @link   http://php.net/manual/en/function.crypt.php#73619
-     *
-     * @param string $clear The clear text to hash
-     * @param string $salt  The salt to use, null for random
-     * @param string $magic The hash identifier (apr1 or 1)
-     * @return string Hashed password
-     */
-    public function hash_apr1($clear, $salt = null, $magic = 'apr1') {
-        $this->init_salt($salt, 8);
-
-        $len  = strlen($clear);
-        $text = $clear.'$'.$magic.'$'.$salt;
-        $bin  = pack("H32", md5($clear.$salt.$clear));
-        for($i = $len; $i > 0; $i -= 16) {
-            $text .= substr($bin, 0, min(16, $i));
-        }
-        for($i = $len; $i > 0; $i >>= 1) {
-            $text .= ($i & 1) ? chr(0) : $clear{0};
-        }
-        $bin = pack("H32", md5($text));
-        for($i = 0; $i < 1000; $i++) {
-            $new = ($i & 1) ? $clear : $bin;
-            if($i % 3) $new .= $salt;
-            if($i % 7) $new .= $clear;
-            $new .= ($i & 1) ? $bin : $clear;
-            $bin = pack("H32", md5($new));
-        }
-        $tmp = '';
-        for($i = 0; $i < 5; $i++) {
-            $k = $i + 6;
-            $j = $i + 12;
-            if($j == 16) $j = 5;
-            $tmp = $bin[$i].$bin[$k].$bin[$j].$tmp;
-        }
-        $tmp = chr(0).chr(0).$bin[11].$tmp;
-        $tmp = strtr(
-            strrev(substr(base64_encode($tmp), 2)),
-            "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",
-            "./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
-        );
-        return '$'.$magic.'$'.$salt.'$'.$tmp;
-    }
-
-    /**
-     * Password hashing method 'md5'
-     *
-     * Uses MD5 hashs.
-     *
-     * @param string $clear The clear text to hash
-     * @return string Hashed password
-     */
-    public function hash_md5($clear) {
-        return md5($clear);
-    }
-
-    /**
-     * Password hashing method 'sha1'
-     *
-     * Uses SHA1 hashs.
-     *
-     * @param string $clear The clear text to hash
-     * @return string Hashed password
-     */
-    public function hash_sha1($clear) {
-        return sha1($clear);
-    }
-
-    /**
-     * Password hashing method 'ssha' as used by LDAP
-     *
-     * Uses salted SHA1 hashs. Salt is 4 bytes long.
-     *
-     * @param string $clear The clear text to hash
-     * @param string $salt  The salt to use, null for random
-     * @return string Hashed password
-     */
-    public function hash_ssha($clear, $salt = null) {
-        $this->init_salt($salt, 4);
-        return '{SSHA}'.base64_encode(pack("H*", sha1($clear.$salt)).$salt);
-    }
-
-    /**
-     * Password hashing method 'crypt'
-     *
-     * Uses salted crypt hashs. Salt is 2 bytes long.
-     *
-     * @param string $clear The clear text to hash
-     * @param string $salt  The salt to use, null for random
-     * @return string Hashed password
-     */
-    public function hash_crypt($clear, $salt = null) {
-        $this->init_salt($salt, 2);
-        return crypt($clear, $salt);
-    }
-
-    /**
-     * Password hashing method 'mysql'
-     *
-     * This method was used by old MySQL systems
-     *
-     * @link   http://php.net/mysql
-     * @author <soren at byu dot edu>
-     * @param string $clear The clear text to hash
-     * @return string Hashed password
-     */
-    public function hash_mysql($clear) {
-        $nr      = 0x50305735;
-        $nr2     = 0x12345671;
-        $add     = 7;
-        $charArr = preg_split("//", $clear);
-        foreach($charArr as $char) {
-            if(($char == '') || ($char == ' ') || ($char == '\t')) continue;
-            $charVal = ord($char);
-            $nr ^= ((($nr & 63) + $add) * $charVal) + ($nr << 8);
-            $nr2 += ($nr2 << 8) ^ $nr;
-            $add += $charVal;
-        }
-        return sprintf("%08x%08x", ($nr & 0x7fffffff), ($nr2 & 0x7fffffff));
-    }
-
-    /**
-     * Password hashing method 'my411'
-     *
-     * Uses SHA1 hashs. This method is used by MySQL 4.11 and above
-     *
-     * @param string $clear The clear text to hash
-     * @return string Hashed password
-     */
-    public function hash_my411($clear) {
-        return '*'.strtoupper(sha1(pack("H*", sha1($clear))));
-    }
-
-    /**
-     * Password hashing method 'kmd5'
-     *
-     * Uses salted MD5 hashs.
-     *
-     * Salt is 2 bytes long, but stored at position 16, so you need to pass at
-     * least 18 bytes. You can pass the crypted hash as salt.
-     *
-     * @param string $clear The clear text to hash
-     * @param string $salt  The salt to use, null for random
-     * @return string Hashed password
-     */
-    public function hash_kmd5($clear, $salt = null) {
-        $this->init_salt($salt);
-
-        $key   = substr($salt, 16, 2);
-        $hash1 = strtolower(md5($key.md5($clear)));
-        $hash2 = substr($hash1, 0, 16).$key.substr($hash1, 16);
-        return $hash2;
-    }
-
-    /**
-     * Password hashing method 'pmd5'
-     *
-     * Uses salted MD5 hashs. Salt is 1+8 bytes long, 1st byte is the
-     * iteration count when given, for null salts $compute is used.
-     *
-     * The actual iteration count is the given count squared, maximum is
-     * 30 (-> 1073741824). If a higher one is given, the function throws
-     * an exception.
-     *
-     * @link  http://www.openwall.com/phpass/
-     *
-     * @param string $clear   The clear text to hash
-     * @param string $salt    The salt to use, null for random
-     * @param string $magic   The hash identifier (P or H)
-     * @param int    $compute The iteration count for new passwords
-     * @throws Exception
-     * @return string Hashed password
-     */
-    public function hash_pmd5($clear, $salt = null, $magic = 'P', $compute = 8) {
-        $itoa64 = './0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
-        if(is_null($salt)) {
-            $this->init_salt($salt);
-            $salt = $itoa64[$compute].$salt; // prefix iteration count
-        }
-        $iterc = $salt[0]; // pos 0 of salt is iteration count
-        $iter  = strpos($itoa64, $iterc);
-
-        if($iter > 30) {
-            throw new Exception("Too high iteration count ($iter) in ".
-                                    __CLASS__.'::'.__FUNCTION__);
-        }
-
-        $iter = 1 << $iter;
-        $salt = substr($salt, 1, 8);
-
-        // iterate
-        $hash = md5($salt.$clear, true);
-        do {
-            $hash = md5($hash.$clear, true);
-        } while(--$iter);
-
-        // encode
-        $output = '';
-        $count  = 16;
-        $i      = 0;
-        do {
-            $value = ord($hash[$i++]);
-            $output .= $itoa64[$value & 0x3f];
-            if($i < $count)
-                $value |= ord($hash[$i]) << 8;
-            $output .= $itoa64[($value >> 6) & 0x3f];
-            if($i++ >= $count)
-                break;
-            if($i < $count)
-                $value |= ord($hash[$i]) << 16;
-            $output .= $itoa64[($value >> 12) & 0x3f];
-            if($i++ >= $count)
-                break;
-            $output .= $itoa64[($value >> 18) & 0x3f];
-        } while($i < $count);
-
-        return '$'.$magic.'$'.$iterc.$salt.$output;
-    }
-
-    /**
-     * 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);
-    }
-
-    /**
-     * Password hashing method 'djangosha1'
-     *
-     * Uses salted SHA1 hashs. Salt is 5 bytes long.
-     * This is used by the Django Python framework
-     *
-     * @link http://docs.djangoproject.com/en/dev/topics/auth/#passwords
-     *
-     * @param string $clear The clear text to hash
-     * @param string $salt  The salt to use, null for random
-     * @return string Hashed password
-     */
-    public function hash_djangosha1($clear, $salt = null) {
-        $this->init_salt($salt, 5);
-        return 'sha1$'.$salt.'$'.sha1($salt.$clear);
-    }
-
-    /**
-     * Password hashing method 'djangomd5'
-     *
-     * Uses salted MD5 hashs. Salt is 5 bytes long.
-     * This is used by the Django Python framework
-     *
-     * @link http://docs.djangoproject.com/en/dev/topics/auth/#passwords
-     *
-     * @param string $clear The clear text to hash
-     * @param string $salt  The salt to use, null for random
-     * @return string Hashed password
-     */
-    public function hash_djangomd5($clear, $salt = null) {
-        $this->init_salt($salt, 5);
-        return 'md5$'.$salt.'$'.md5($salt.$clear);
-    }
-
-    /**
-     * Password hashing method 'djangopbkdf2'
-     *
-     * An algorithm and iteration count should be given in the opts array.
-     * Defaults to sha256 and 24000 iterations
-     *
-     * @param string $clear The clear text to hash
-     * @param string $salt  The salt to use, null for random
-     * @param array $opts ('algo' => hash algorithm, 'iter' => iterations)
-     * @return string Hashed password
-     * @throws Exception when PHP is missing support for the method/algo
-     */
-    public function hash_djangopbkdf2($clear, $salt=null, $opts=array()) {
-        $this->init_salt($salt, 12);
-        if(empty($opts['algo'])) {
-            $algo = 'sha256';
-        } else {
-            $algo = $opts['algo'];
-        }
-        if(empty($opts['iter'])) {
-            $iter = 24000;
-        } else {
-            $iter = (int) $opts['iter'];
-        }
-        if(!function_exists('hash_pbkdf2')) {
-            throw new Exception('This PHP installation has no PBKDF2 support');
-        }
-        if(!in_array($algo, hash_algos())) {
-            throw new Exception("This PHP installation has no $algo support");
-        }
-
-        $hash = base64_encode(hash_pbkdf2($algo, $clear, $salt, $iter, 0, true));
-        return "pbkdf2_$algo\$$iter\$$salt\$$hash";
-    }
-
-    /**
-     * Alias for djangopbkdf2 defaulting to sha256 as hash algorithm
-     *
-     * @param string $clear The clear text to hash
-     * @param string $salt  The salt to use, null for random
-     * @param array $opts ('iter' => iterations)
-     * @return string Hashed password
-     * @throws Exception when PHP is missing support for the method/algo
-     */
-    public function hash_djangopbkdf2_sha256($clear, $salt=null, $opts=array()) {
-        $opts['algo'] = 'sha256';
-        return $this->hash_djangopbkdf2($clear, $salt, $opts);
-    }
-
-    /**
-     * Alias for djangopbkdf2 defaulting to sha1 as hash algorithm
-     *
-     * @param string $clear The clear text to hash
-     * @param string $salt  The salt to use, null for random
-     * @param array $opts ('iter' => iterations)
-     * @return string Hashed password
-     * @throws Exception when PHP is missing support for the method/algo
-     */
-    public function hash_djangopbkdf2_sha1($clear, $salt=null, $opts=array()) {
-        $opts['algo'] = 'sha1';
-        return $this->hash_djangopbkdf2($clear, $salt, $opts);
-    }
-
-    /**
-     * Passwordhashing method 'bcrypt'
-     *
-     * Uses a modified blowfish algorithm called eksblowfish
-     * This method works on PHP 5.3+ only and will throw an exception
-     * if the needed crypt support isn't available
-     *
-     * A full hash should be given as salt (starting with $a2$) or this
-     * will break. When no salt is given, the iteration count can be set
-     * through the $compute variable.
-     *
-     * @param string $clear   The clear text to hash
-     * @param string $salt    The salt to use, null for random
-     * @param int    $compute The iteration count (between 4 and 31)
-     * @throws Exception
-     * @return string Hashed password
-     */
-    public function hash_bcrypt($clear, $salt = null, $compute = 10) {
-        if(!defined('CRYPT_BLOWFISH') || CRYPT_BLOWFISH != 1) {
-            throw new Exception('This PHP installation has no bcrypt support');
-        }
-
-        if(is_null($salt)) {
-            if($compute < 4 || $compute > 31) $compute = 8;
-            $salt = '$2y$'.str_pad($compute, 2, '0', STR_PAD_LEFT).'$'.
-                $this->gen_salt(22);
-        }
-
-        return crypt($clear, $salt);
-    }
-
-    /**
-     * Password hashing method SHA512
-     *
-     * This is only supported on PHP 5.3.2 or higher and will throw an exception if
-     * the needed crypt support is not available
-     *
-     * @param string $clear The clear text to hash
-     * @param string $salt  The salt to use, null for random
-     * @return string Hashed password
-     * @throws Exception
-     */
-    public function hash_sha512($clear, $salt = null) {
-        if(!defined('CRYPT_SHA512') || CRYPT_SHA512 != 1) {
-            throw new Exception('This PHP installation has no SHA512 support');
-        }
-        $this->init_salt($salt, 8, false);
-        return crypt($clear, '$6$'.$salt.'$');
-    }
-
-    /**
-     * Password hashing method 'mediawiki'
-     *
-     * Uses salted MD5, this is referred to as Method B in MediaWiki docs. Unsalted md5
-     * method 'A' is not supported.
-     *
-     * @link  http://www.mediawiki.org/wiki/Manual_talk:User_table#user_password_column
-     *
-     * @param string $clear The clear text to hash
-     * @param string $salt  The salt to use, null for random
-     * @return string Hashed password
-     */
-    public function hash_mediawiki($clear, $salt = null) {
-        $this->init_salt($salt, 8, false);
-        return ':B:'.$salt.':'.md5($salt.'-'.md5($clear));
-    }
-
-    /**
-     * Wraps around native hash_hmac() or reimplents it
-     *
-     * This is not directly used as password hashing method, and thus isn't callable via the
-     * verify_hash() method. It should be used to create signatures and might be used in other
-     * password hashing methods.
-     *
-     * @see hash_hmac()
-     * @author KC Cloyd
-     * @link http://php.net/manual/en/function.hash-hmac.php#93440
-     *
-     * @param string $algo Name of selected hashing algorithm (i.e. "md5", "sha256", "haval160,4",
-     *                     etc..) See hash_algos() for a list of supported algorithms.
-     * @param string $data Message to be hashed.
-     * @param string $key  Shared secret key used for generating the HMAC variant of the message digest.
-     * @param bool $raw_output When set to TRUE, outputs raw binary data. FALSE outputs lowercase hexits.
-     * @return string
-     */
-    public static function hmac($algo, $data, $key, $raw_output = false) {
-        // use native function if available and not in unit test
-        if(function_exists('hash_hmac') && !defined('SIMPLE_TEST')){
-            return hash_hmac($algo, $data, $key, $raw_output);
-        }
-
-        $algo = strtolower($algo);
-        $pack = 'H' . strlen($algo('test'));
-        $size = 64;
-        $opad = str_repeat(chr(0x5C), $size);
-        $ipad = str_repeat(chr(0x36), $size);
-
-        if(strlen($key) > $size) {
-            $key = str_pad(pack($pack, $algo($key)), $size, chr(0x00));
-        } else {
-            $key = str_pad($key, $size, chr(0x00));
-        }
-
-        for($i = 0; $i < strlen($key) - 1; $i++) {
-            $opad[$i] = $opad[$i] ^ $key[$i];
-            $ipad[$i] = $ipad[$i] ^ $key[$i];
-        }
-
-        $output = $algo($opad . pack($pack, $algo($ipad . $data)));
-
-        return ($raw_output) ? pack($pack, $output) : $output;
-    }
-
-    /**
-     * Use DokuWiki's secure random generator if available
-     *
-     * @param int $min
-     * @param int $max
-     * @return int
-     */
-    protected function random($min, $max){
-        return random_int($min, $max);
-    }
-}
diff --git a/wiki/inc/Plugin.php b/wiki/inc/Plugin.php
deleted file mode 100644
index 9cd0ae8..0000000
--- a/wiki/inc/Plugin.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-
-/**
- * DokuWiki Plugin
- *
- * Most of DokuWiki's plugin types simply inherit from this. All it does is
- * add the DokuWiki_PluginTrait to the class.
- */
-class DokuWiki_Plugin implements DokuWiki_PluginInterface {
-    use DokuWiki_PluginTrait;
-}
diff --git a/wiki/inc/PluginInterface.php b/wiki/inc/PluginInterface.php
deleted file mode 100644
index 6089890..0000000
--- a/wiki/inc/PluginInterface.php
+++ /dev/null
@@ -1,158 +0,0 @@
-<?php
-/**
- * DokuWiki Plugin Interface
- *
- * Defines the public contract all DokuWiki plugins will adhere to. The actual code
- * to do so is defined in DokuWiki_PluginTrait
- *
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * @author     Christopher Smith <chris@jalakai.co.uk>
- */
-interface DokuWiki_PluginInterface {
-    /**
-     * General Info
-     *
-     * Needs to return a associative array with the following values:
-     *
-     * base   - the plugin's base name (eg. the directory it needs to be installed in)
-     * author - Author of the plugin
-     * email  - Email address to contact the author
-     * date   - Last modified date of the plugin in YYYY-MM-DD format
-     * name   - Name of the plugin
-     * desc   - Short description of the plugin (Text only)
-     * url    - Website with more information on the plugin (eg. syntax description)
-     */
-    public function getInfo();
-
-    /**
-     * The type of the plugin inferred from the class name
-     *
-     * @return string  plugin type
-     */
-    public function getPluginType();
-
-    /**
-     * The name of the plugin inferred from the class name
-     *
-     * @return string  plugin name
-     */
-    public function getPluginName();
-
-    /**
-     * The component part of the plugin inferred from the class name
-     *
-     * @return string component name
-     */
-    public function getPluginComponent();
-
-    /**
-     * Access plugin language strings
-     *
-     * to try to minimise unnecessary loading of the strings when the plugin doesn't require them
-     * e.g. when info plugin is querying plugins for information about themselves.
-     *
-     * @param   string $id id of the string to be retrieved
-     * @return  string in appropriate language or english if not available
-     */
-    public function getLang($id);
-
-    /**
-     * retrieve a language dependent file and pass to xhtml renderer for display
-     * plugin equivalent of p_locale_xhtml()
-     *
-     * @param   string $id id of language dependent wiki page
-     * @return  string parsed contents of the wiki page in xhtml format
-     */
-    public function locale_xhtml($id);
-
-    /**
-     * Prepends appropriate path for a language dependent filename
-     * 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, $ext = 'txt');
-
-    /**
-     * Reads all the plugins language dependent strings into $this->lang
-     * this function is automatically called by getLang()
-     *
-     * @todo this could be made protected and be moved to the trait only
-     */
-    public function setupLocale();
-
-    /**
-     * use this function to access plugin configuration variables
-     *
-     * @param string $setting the setting to access
-     * @param mixed $notset what to return if the setting is not available
-     * @return mixed
-     */
-    public function getConf($setting, $notset = false);
-
-    /**
-     * merges the plugin's default settings with any local settings
-     * this function is automatically called through getConf()
-     *
-     * @todo this could be made protected and be moved to the trait only
-     */
-    public function loadConfig();
-
-    /**
-     * Loads a given helper plugin (if enabled)
-     *
-     * @author  Esther Brunner <wikidesign@gmail.com>
-     *
-     * @param   string $name name of plugin to load
-     * @param   bool $msg if a message should be displayed in case the plugin is not available
-     * @return  DokuWiki_PluginInterface|null helper plugin object
-     */
-    public function loadHelper($name, $msg = true);
-
-    /**
-     * email
-     * standardised function to generate an email link according to obfuscation settings
-     *
-     * @param string $email
-     * @param string $name
-     * @param string $class
-     * @param string $more
-     * @return string html
-     */
-    public function email($email, $name = '', $class = '', $more = '');
-
-    /**
-     * external_link
-     * standardised function to generate an external link according to conf settings
-     *
-     * @param string $link
-     * @param string $title
-     * @param string $class
-     * @param string $target
-     * @param string $more
-     * @return string
-     */
-    public function external_link($link, $title = '', $class = '', $target = '', $more = '');
-
-    /**
-     * output text string through the parser, allows dokuwiki markup to be used
-     * very ineffecient for small pieces of data - try not to use
-     *
-     * @param string $text wiki markup to parse
-     * @param string $format output format
-     * @return null|string
-     */
-    public function render_text($text, $format = 'xhtml');
-
-    /**
-     * Allow the plugin to prevent DokuWiki from reusing an instance
-     *
-     * @return bool   false if the plugin has to be instantiated
-     */
-    public function isSingleton();
-}
-
-
-
diff --git a/wiki/inc/PluginTrait.php b/wiki/inc/PluginTrait.php
deleted file mode 100644
index 57b735e..0000000
--- a/wiki/inc/PluginTrait.php
+++ /dev/null
@@ -1,238 +0,0 @@
-<?php
-
-/**
- * Do not inherit directly from this class, instead inherit from the specialized
- * ones in lib/plugin
- */
-trait DokuWiki_PluginTrait {
-
-    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()
-
-    /**
-     * @see DokuWiki_PluginInterface::getInfo()
-     */
-    public function getInfo() {
-        $parts = explode('_', get_class($this));
-        $info = DOKU_PLUGIN . '/' . $parts[2] . '/plugin.info.txt';
-        if(file_exists($info)) return confToHash($info);
-
-        msg(
-            'getInfo() not implemented in ' . get_class($this) . ' and ' . $info . ' not found.<br />' .
-            'Verify you\'re running the latest version of the plugin. If the problem persists, send a ' .
-            'bug report to the author of the ' . $parts[2] . ' plugin.', -1
-        );
-        return array(
-            'date' => '0000-00-00',
-            'name' => $parts[2] . ' plugin',
-        );
-    }
-
-    /**
-     * @see DokuWiki_PluginInterface::isSingleton()
-     */
-    public function isSingleton() {
-        return true;
-    }
-
-    /**
-     * @see DokuWiki_PluginInterface::loadHelper()
-     */
-    public function loadHelper($name, $msg = true) {
-        $obj = plugin_load('helper', $name);
-        if(is_null($obj) && $msg) msg("Helper plugin $name is not available or invalid.", -1);
-        return $obj;
-    }
-
-    // region introspection methods
-
-    /**
-     * @see DokuWiki_PluginInterface::getPluginType()
-     */
-    public function getPluginType() {
-        list($t) = explode('_', get_class($this), 2);
-        return $t;
-    }
-
-    /**
-     * @see DokuWiki_PluginInterface::getPluginName()
-     */
-    public function getPluginName() {
-        list(/* $t */, /* $p */, $n) = explode('_', get_class($this), 4);
-        return $n;
-    }
-
-    /**
-     * @see DokuWiki_PluginInterface::getPluginComponent()
-     */
-    public function getPluginComponent() {
-        list(/* $t */, /* $p */, /* $n */, $c) = explode('_', get_class($this), 4);
-        return (isset($c) ? $c : '');
-    }
-
-    // endregion
-    // region localization methods
-
-    /**
-     * @see DokuWiki_PluginInterface::getLang()
-     */
-    public function getLang($id) {
-        if(!$this->localised) $this->setupLocale();
-
-        return (isset($this->lang[$id]) ? $this->lang[$id] : '');
-    }
-
-    /**
-     * @see DokuWiki_PluginInterface::locale_xhtml()
-     */
-    public function locale_xhtml($id) {
-        return p_cached_output($this->localFN($id));
-    }
-
-    /**
-     * @see DokuWiki_PluginInterface::localFN()
-     */
-    public function localFN($id, $ext = 'txt') {
-        global $conf;
-        $plugin = $this->getPluginName();
-        $file = DOKU_CONF . 'plugin_lang/' . $plugin . '/' . $conf['lang'] . '/' . $id . '.' . $ext;
-        if(!file_exists($file)) {
-            $file = DOKU_PLUGIN . $plugin . '/lang/' . $conf['lang'] . '/' . $id . '.' . $ext;
-            if(!file_exists($file)) {
-                //fall back to english
-                $file = DOKU_PLUGIN . $plugin . '/lang/en/' . $id . '.' . $ext;
-            }
-        }
-        return $file;
-    }
-
-    /**
-     * @see DokuWiki_PluginInterface::setupLocale()
-     */
-    public function setupLocale() {
-        if($this->localised) return;
-
-        global $conf, $config_cascade; // definitely don't invoke "global $lang"
-        $path = DOKU_PLUGIN . $this->getPluginName() . '/lang/';
-
-        $lang = array();
-
-        // don't include once, in case several plugin components require the same language file
-        @include($path . 'en/lang.php');
-        foreach($config_cascade['lang']['plugin'] as $config_file) {
-            if(file_exists($config_file . $this->getPluginName() . '/en/lang.php')) {
-                include($config_file . $this->getPluginName() . '/en/lang.php');
-            }
-        }
-
-        if($conf['lang'] != 'en') {
-            @include($path . $conf['lang'] . '/lang.php');
-            foreach($config_cascade['lang']['plugin'] as $config_file) {
-                if(file_exists($config_file . $this->getPluginName() . '/' . $conf['lang'] . '/lang.php')) {
-                    include($config_file . $this->getPluginName() . '/' . $conf['lang'] . '/lang.php');
-                }
-            }
-        }
-
-        $this->lang = $lang;
-        $this->localised = true;
-    }
-
-    // endregion
-    // region configuration methods
-
-    /**
-     * @see DokuWiki_PluginInterface::getConf()
-     */
-    public function getConf($setting, $notset = false) {
-
-        if(!$this->configloaded) {
-            $this->loadConfig();
-        }
-
-        if(isset($this->conf[$setting])) {
-            return $this->conf[$setting];
-        } else {
-            return $notset;
-        }
-    }
-
-    /**
-     * @see DokuWiki_PluginInterface::loadConfig()
-     */
-    public function loadConfig() {
-        global $conf;
-
-        $defaults = $this->readDefaultSettings();
-        $plugin = $this->getPluginName();
-
-        foreach($defaults as $key => $value) {
-            if(isset($conf['plugin'][$plugin][$key])) continue;
-            $conf['plugin'][$plugin][$key] = $value;
-        }
-
-        $this->configloaded = true;
-        $this->conf =& $conf['plugin'][$plugin];
-    }
-
-    /**
-     * read the plugin's default configuration settings from conf/default.php
-     * this function is automatically called through getConf()
-     *
-     * @return    array    setting => value
-     */
-    protected function readDefaultSettings() {
-
-        $path = DOKU_PLUGIN . $this->getPluginName() . '/conf/';
-        $conf = array();
-
-        if(file_exists($path . 'default.php')) {
-            include($path . 'default.php');
-        }
-
-        return $conf;
-    }
-
-    // endregion
-    // region output methods
-
-    /**
-     * @see DokuWiki_PluginInterface::email()
-     */
-    public function email($email, $name = '', $class = '', $more = '') {
-        if(!$email) return $name;
-        $email = obfuscate($email);
-        if(!$name) $name = $email;
-        $class = "class='" . ($class ? $class : 'mail') . "'";
-        return "<a href='mailto:$email' $class title='$email' $more>$name</a>";
-    }
-
-    /**
-     * @see DokuWiki_PluginInterface::external_link()
-     */
-    public function external_link($link, $title = '', $class = '', $target = '', $more = '') {
-        global $conf;
-
-        $link = htmlentities($link);
-        if(!$title) $title = $link;
-        if(!$target) $target = $conf['target']['extern'];
-        if($conf['relnofollow']) $more .= ' rel="nofollow"';
-
-        if($class) $class = " class='$class'";
-        if($target) $target = " target='$target'";
-        if($more) $more = " " . trim($more);
-
-        return "<a href='$link'$class$target$more>$title</a>";
-    }
-
-    /**
-     * @see DokuWiki_PluginInterface::render_text()
-     */
-    public function render_text($text, $format = 'xhtml') {
-        return p_render($format, p_get_instructions($text), $info);
-    }
-
-    // endregion
-}
diff --git a/wiki/inc/RemoteAPICore.php b/wiki/inc/RemoteAPICore.php
deleted file mode 100644
index 0ff358c..0000000
--- a/wiki/inc/RemoteAPICore.php
+++ /dev/null
@@ -1,960 +0,0 @@
-<?php
-
-/**
- * Increased whenever the API is changed
- */
-define('DOKU_API_VERSION', 10);
-
-/**
- * Provides the core methods for the remote API.
- * The methods are ordered in 'wiki.<method>' and 'dokuwiki.<method>' namespaces
- */
-class RemoteAPICore {
-
-    private $api;
-
-    /**
-     * @param RemoteAPI $api
-     */
-    public function __construct(RemoteAPI $api) {
-        $this->api = $api;
-    }
-
-    /**
-     * Returns details about the core methods
-     *
-     * @return array
-     */
-    public function __getRemoteInfo() {
-        return array(
-            'dokuwiki.getVersion' => array(
-                'args' => array(),
-                'return' => 'string',
-                'doc' => 'Returns the running DokuWiki version.'
-            ), 'dokuwiki.login' => array(
-                'args' => array('string', 'string'),
-                'return' => 'int',
-                'doc' => 'Tries to login with the given credentials and sets auth cookies.',
-                'public' => '1'
-            ), 'dokuwiki.logoff' => array(
-                'args' => array(),
-                'return' => 'int',
-                'doc' => 'Tries to logoff by expiring auth cookies and the associated PHP session.'
-            ), 'dokuwiki.getPagelist' => array(
-                'args' => array('string', 'array'),
-                'return' => 'array',
-                'doc' => 'List all pages within the given namespace.',
-                'name' => 'readNamespace'
-            ), 'dokuwiki.search' => array(
-                'args' => array('string'),
-                'return' => 'array',
-                'doc' => 'Perform a fulltext search and return a list of matching pages'
-            ), 'dokuwiki.getTime' => array(
-                'args' => array(),
-                'return' => 'int',
-                'doc' =>  'Returns the current time at the remote wiki server as Unix timestamp.',
-            ), 'dokuwiki.setLocks' => array(
-                'args' => array('array'),
-                'return' => 'array',
-                'doc' => 'Lock or unlock pages.'
-            ), 'dokuwiki.getTitle' => array(
-                'args' => array(),
-                'return' => 'string',
-                'doc' => 'Returns the wiki title.',
-                'public' => '1'
-            ), 'dokuwiki.appendPage' => array(
-                'args' => array('string', 'string', 'array'),
-                'return' => 'bool',
-                'doc' => 'Append text to a wiki page.'
-            ),  'wiki.getPage' => array(
-                'args' => array('string'),
-                'return' => 'string',
-                'doc' => 'Get the raw Wiki text of page, latest version.',
-                'name' => 'rawPage',
-            ), 'wiki.getPageVersion' => array(
-                'args' => array('string', 'int'),
-                'name' => 'rawPage',
-                'return' => 'string',
-                'doc' => 'Return a raw wiki page'
-            ), 'wiki.getPageHTML' => array(
-                'args' => array('string'),
-                'return' => 'string',
-                'doc' => 'Return page in rendered HTML, latest version.',
-                'name' => 'htmlPage'
-            ), 'wiki.getPageHTMLVersion' => array(
-                'args' => array('string', 'int'),
-                'return' => 'string',
-                'doc' => 'Return page in rendered HTML.',
-                'name' => 'htmlPage'
-            ), 'wiki.getAllPages' => array(
-                'args' => array(),
-                'return' => 'array',
-                'doc' => 'Returns a list of all pages. The result is an array of utf8 pagenames.',
-                'name' => 'listPages'
-            ), 'wiki.getAttachments' => array(
-                'args' => array('string', 'array'),
-                'return' => 'array',
-                'doc' => 'Returns a list of all media files.',
-                'name' => 'listAttachments'
-            ), 'wiki.getBackLinks' => array(
-                'args' => array('string'),
-                'return' => 'array',
-                'doc' => 'Returns the pages that link to this page.',
-                'name' => 'listBackLinks'
-            ), 'wiki.getPageInfo' => array(
-                'args' => array('string'),
-                'return' => 'array',
-                'doc' => 'Returns a struct with info about the page, latest version.',
-                'name' => 'pageInfo'
-            ), 'wiki.getPageInfoVersion' => array(
-                'args' => array('string', 'int'),
-                'return' => 'array',
-                'doc' => 'Returns a struct with info about the page.',
-                'name' => 'pageInfo'
-            ), 'wiki.getPageVersions' => array(
-                'args' => array('string', 'int'),
-                'return' => 'array',
-                'doc' => 'Returns the available revisions of the page.',
-                'name' => 'pageVersions'
-            ), 'wiki.putPage' => array(
-                'args' => array('string', 'string', 'array'),
-                'return' => 'bool',
-                'doc' => 'Saves a wiki page.'
-            ), 'wiki.listLinks' => array(
-                'args' => array('string'),
-                'return' => 'array',
-                'doc' => 'Lists all links contained in a wiki page.'
-            ), 'wiki.getRecentChanges' => array(
-                'args' => array('int'),
-                'return' => 'array',
-                'Returns a struct about all recent changes since given timestamp.'
-            ), 'wiki.getRecentMediaChanges' => array(
-                'args' => array('int'),
-                'return' => 'array',
-                'Returns a struct about all recent media changes since given timestamp.'
-            ), 'wiki.aclCheck' => array(
-                'args' => array('string', 'string', 'array'),
-                'return' => 'int',
-                'doc' => 'Returns the permissions of a given wiki page. By default, for current user/groups'
-            ), 'wiki.putAttachment' => array(
-                'args' => array('string', 'file', 'array'),
-                'return' => 'array',
-                'doc' => 'Upload a file to the wiki.'
-            ), 'wiki.deleteAttachment' => array(
-                'args' => array('string'),
-                'return' => 'int',
-                'doc' => 'Delete a file from the wiki.'
-            ), 'wiki.getAttachment' => array(
-                'args' => array('string'),
-                'doc' => 'Return a media file',
-                'return' => 'file',
-                'name' => 'getAttachment',
-            ), 'wiki.getAttachmentInfo' => array(
-                'args' => array('string'),
-                'return' => 'array',
-                'doc' => 'Returns a struct with info about the attachment.'
-            ), 'dokuwiki.getXMLRPCAPIVersion' => array(
-                'args' => array(),
-                'name' => 'getAPIVersion',
-                'return' => 'int',
-                'doc' => 'Returns the XMLRPC API version.',
-                'public' => '1',
-            ), 'wiki.getRPCVersionSupported' => array(
-                'args' => array(),
-                'name' => 'wiki_RPCVersion',
-                'return' => 'int',
-                'doc' => 'Returns 2 with the supported RPC API version.',
-                'public' => '1'
-            ),
-
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getVersion() {
-        return getVersion();
-    }
-
-    /**
-     * @return int unix timestamp
-     */
-    public function getTime() {
-        return time();
-    }
-
-    /**
-     * Return a raw wiki page
-     *
-     * @param string $id wiki page id
-     * @param int|string $rev revision timestamp of the page or empty string
-     * @return string page text.
-     * @throws RemoteAccessDeniedException if no permission for page
-     */
-    public function rawPage($id,$rev=''){
-        $id = $this->resolvePageId($id);
-        if(auth_quickaclcheck($id) < AUTH_READ){
-            throw new RemoteAccessDeniedException('You are not allowed to read this file', 111);
-        }
-        $text = rawWiki($id,$rev);
-        if(!$text) {
-            return pageTemplate($id);
-        } else {
-            return $text;
-        }
-    }
-
-    /**
-     * Return a media file
-     *
-     * @author Gina Haeussge <osd@foosel.net>
-     *
-     * @param string $id file id
-     * @return mixed media file
-     * @throws RemoteAccessDeniedException no permission for media
-     * @throws RemoteException not exist
-     */
-    public function getAttachment($id){
-        $id = cleanID($id);
-        if (auth_quickaclcheck(getNS($id).':*') < AUTH_READ) {
-            throw new RemoteAccessDeniedException('You are not allowed to read this file', 211);
-        }
-
-        $file = mediaFN($id);
-        if (!@ file_exists($file)) {
-            throw new RemoteException('The requested file does not exist', 221);
-        }
-
-        $data = io_readFile($file, false);
-        return $this->api->toFile($data);
-    }
-
-    /**
-     * Return info about a media file
-     *
-     * @author Gina Haeussge <osd@foosel.net>
-     *
-     * @param string $id page id
-     * @return array
-     */
-    public function getAttachmentInfo($id){
-        $id = cleanID($id);
-        $info = array(
-            'lastModified' => $this->api->toDate(0),
-            'size' => 0,
-        );
-
-        $file = mediaFN($id);
-        if(auth_quickaclcheck(getNS($id) . ':*') >= AUTH_READ) {
-            if(file_exists($file)) {
-                $info['lastModified'] = $this->api->toDate(filemtime($file));
-                $info['size'] = filesize($file);
-            } else {
-                //Is it deleted media with changelog?
-                $medialog = new MediaChangeLog($id);
-                $revisions = $medialog->getRevisions(0, 1);
-                if(!empty($revisions)) {
-                    $info['lastModified'] = $this->api->toDate($revisions[0]);
-                }
-            }
-        }
-
-        return $info;
-    }
-
-    /**
-     * Return a wiki page rendered to html
-     *
-     * @param string     $id  page id
-     * @param string|int $rev revision timestamp or empty string
-     * @return null|string html
-     * @throws RemoteAccessDeniedException no access to page
-     */
-    public function htmlPage($id,$rev=''){
-        $id = $this->resolvePageId($id);
-        if(auth_quickaclcheck($id) < AUTH_READ){
-            throw new RemoteAccessDeniedException('You are not allowed to read this page', 111);
-        }
-        return p_wiki_xhtml($id,$rev,false);
-    }
-
-    /**
-     * List all pages - we use the indexer list here
-     *
-     * @return array
-     */
-    public function listPages(){
-        $list  = array();
-        $pages = idx_get_indexer()->getPages();
-        $pages = array_filter(array_filter($pages,'isVisiblePage'),'page_exists');
-
-        foreach(array_keys($pages) as $idx) {
-            $perm = auth_quickaclcheck($pages[$idx]);
-            if($perm < AUTH_READ) {
-                continue;
-            }
-            $page = array();
-            $page['id'] = trim($pages[$idx]);
-            $page['perms'] = $perm;
-            $page['size'] = @filesize(wikiFN($pages[$idx]));
-            $page['lastModified'] = $this->api->toDate(@filemtime(wikiFN($pages[$idx])));
-            $list[] = $page;
-        }
-
-        return $list;
-    }
-
-    /**
-     * List all pages in the given namespace (and below)
-     *
-     * @param string $ns
-     * @param array  $opts
-     *    $opts['depth']   recursion level, 0 for all
-     *    $opts['hash']    do md5 sum of content?
-     * @return array
-     */
-    public function readNamespace($ns,$opts){
-        global $conf;
-
-        if(!is_array($opts)) $opts=array();
-
-        $ns = cleanID($ns);
-        $dir = utf8_encodeFN(str_replace(':', '/', $ns));
-        $data = array();
-        $opts['skipacl'] = 0; // no ACL skipping for XMLRPC
-        search($data, $conf['datadir'], 'search_allpages', $opts, $dir);
-        return $data;
-    }
-
-    /**
-     * List all pages in the given namespace (and below)
-     *
-     * @param string $query
-     * @return array
-     */
-    public function search($query){
-        $regex = array();
-        $data  = ft_pageSearch($query,$regex);
-        $pages = array();
-
-        // prepare additional data
-        $idx = 0;
-        foreach($data as $id => $score){
-            $file = wikiFN($id);
-
-            if($idx < FT_SNIPPET_NUMBER){
-                $snippet = ft_snippet($id,$regex);
-                $idx++;
-            }else{
-                $snippet = '';
-            }
-
-            $pages[] = array(
-                'id'      => $id,
-                'score'   => intval($score),
-                'rev'     => filemtime($file),
-                'mtime'   => filemtime($file),
-                'size'    => filesize($file),
-                'snippet' => $snippet,
-                'title' => useHeading('navigation') ? p_get_first_heading($id) : $id
-            );
-        }
-        return $pages;
-    }
-
-    /**
-     * Returns the wiki title.
-     *
-     * @return string
-     */
-    public function getTitle(){
-        global $conf;
-        return $conf['title'];
-    }
-
-    /**
-     * List all media files.
-     *
-     * Available options are 'recursive' for also including the subnamespaces
-     * in the listing, and 'pattern' for filtering the returned files against
-     * a regular expression matching their name.
-     *
-     * @author Gina Haeussge <osd@foosel.net>
-     *
-     * @param string $ns
-     * @param array  $options
-     *   $options['depth']     recursion level, 0 for all
-     *   $options['showmsg']   shows message if invalid media id is used
-     *   $options['pattern']   check given pattern
-     *   $options['hash']      add hashes to result list
-     * @return array
-     * @throws RemoteAccessDeniedException no access to the media files
-     */
-    public function listAttachments($ns, $options = array()) {
-        global $conf;
-
-        $ns = cleanID($ns);
-
-        if (!is_array($options)) $options = array();
-        $options['skipacl'] = 0; // no ACL skipping for XMLRPC
-
-        if(auth_quickaclcheck($ns.':*') >= AUTH_READ) {
-            $dir = utf8_encodeFN(str_replace(':', '/', $ns));
-
-            $data = array();
-            search($data, $conf['mediadir'], 'search_media', $options, $dir);
-            $len = count($data);
-            if(!$len) return array();
-
-            for($i=0; $i<$len; $i++) {
-                unset($data[$i]['meta']);
-                $data[$i]['perms'] = $data[$i]['perm'];
-                unset($data[$i]['perm']);
-                $data[$i]['lastModified'] = $this->api->toDate($data[$i]['mtime']);
-            }
-            return $data;
-        } else {
-            throw new RemoteAccessDeniedException('You are not allowed to list media files.', 215);
-        }
-    }
-
-    /**
-     * Return a list of backlinks
-     *
-     * @param string $id page id
-     * @return array
-     */
-    function listBackLinks($id){
-        return ft_backlinks($this->resolvePageId($id));
-    }
-
-    /**
-     * Return some basic data about a page
-     *
-     * @param string     $id page id
-     * @param string|int $rev revision timestamp or empty string
-     * @return array
-     * @throws RemoteAccessDeniedException no access for page
-     * @throws RemoteException page not exist
-     */
-    public function pageInfo($id,$rev=''){
-        $id = $this->resolvePageId($id);
-        if(auth_quickaclcheck($id) < AUTH_READ){
-            throw new RemoteAccessDeniedException('You are not allowed to read this page', 111);
-        }
-        $file = wikiFN($id,$rev);
-        $time = @filemtime($file);
-        if(!$time){
-            throw new RemoteException('The requested page does not exist', 121);
-        }
-
-        // set revision to current version if empty, use revision otherwise
-        // as the timestamps of old files are not necessarily correct
-        if($rev === '') {
-            $rev = $time;
-        }
-
-        $pagelog = new PageChangeLog($id, 1024);
-        $info = $pagelog->getRevisionInfo($rev);
-
-        $data = array(
-            'name'         => $id,
-            'lastModified' => $this->api->toDate($rev),
-            'author'       => (($info['user']) ? $info['user'] : $info['ip']),
-            'version'      => $rev
-        );
-
-        return ($data);
-    }
-
-    /**
-     * Save a wiki page
-     *
-     * @author Michael Klier <chi@chimeric.de>
-     *
-     * @param string $id page id
-     * @param string $text wiki text
-     * @param array $params parameters: summary, minor edit
-     * @return bool
-     * @throws RemoteAccessDeniedException no write access for page
-     * @throws RemoteException no id, empty new page or locked
-     */
-    public function putPage($id, $text, $params) {
-        global $TEXT;
-        global $lang;
-
-        $id    = $this->resolvePageId($id);
-        $TEXT  = cleanText($text);
-        $sum   = $params['sum'];
-        $minor = $params['minor'];
-
-        if(empty($id)) {
-            throw new RemoteException('Empty page ID', 131);
-        }
-
-        if(!page_exists($id) && trim($TEXT) == '' ) {
-            throw new RemoteException('Refusing to write an empty new wiki page', 132);
-        }
-
-        if(auth_quickaclcheck($id) < AUTH_EDIT) {
-            throw new RemoteAccessDeniedException('You are not allowed to edit this page', 112);
-        }
-
-        // Check, if page is locked
-        if(checklock($id)) {
-            throw new RemoteException('The page is currently locked', 133);
-        }
-
-        // SPAM check
-        if(checkwordblock()) {
-            throw new RemoteException('Positive wordblock check', 134);
-        }
-
-        // autoset summary on new pages
-        if(!page_exists($id) && empty($sum)) {
-            $sum = $lang['created'];
-        }
-
-        // autoset summary on deleted pages
-        if(page_exists($id) && empty($TEXT) && empty($sum)) {
-            $sum = $lang['deleted'];
-        }
-
-        lock($id);
-
-        saveWikiText($id,$TEXT,$sum,$minor);
-
-        unlock($id);
-
-        // run the indexer if page wasn't indexed yet
-        idx_addPage($id);
-
-        return true;
-    }
-
-    /**
-     * Appends text to a wiki page.
-     *
-     * @param string $id page id
-     * @param string $text wiki text
-     * @param array $params such as summary,minor
-     * @return bool|string
-     */
-    public function appendPage($id, $text, $params) {
-        $currentpage = $this->rawPage($id);
-        if (!is_string($currentpage)) {
-            return $currentpage;
-        }
-        return $this->putPage($id, $currentpage.$text, $params);
-    }
-
-    /**
-     * Uploads a file to the wiki.
-     *
-     * Michael Klier <chi@chimeric.de>
-     *
-     * @param string $id page id
-     * @param string $file
-     * @param array $params such as overwrite
-     * @return false|string
-     * @throws RemoteException
-     */
-    public function putAttachment($id, $file, $params) {
-        $id = cleanID($id);
-        $auth = auth_quickaclcheck(getNS($id).':*');
-
-        if(!isset($id)) {
-            throw new RemoteException('Filename not given.', 231);
-        }
-
-        global $conf;
-
-        $ftmp = $conf['tmpdir'] . '/' . md5($id.clientIP());
-
-        // save temporary file
-        @unlink($ftmp);
-        io_saveFile($ftmp, $file);
-
-        $res = media_save(array('name' => $ftmp), $id, $params['ow'], $auth, 'rename');
-        if (is_array($res)) {
-            throw new RemoteException($res[0], -$res[1]);
-        } else {
-            return $res;
-        }
-    }
-
-    /**
-     * Deletes a file from the wiki.
-     *
-     * @author Gina Haeussge <osd@foosel.net>
-     *
-     * @param string $id page id
-     * @return int
-     * @throws RemoteAccessDeniedException no permissions
-     * @throws RemoteException file in use or not deleted
-     */
-    public function deleteAttachment($id){
-        $id = cleanID($id);
-        $auth = auth_quickaclcheck(getNS($id).':*');
-        $res = media_delete($id, $auth);
-        if ($res & DOKU_MEDIA_DELETED) {
-            return 0;
-        } elseif ($res & DOKU_MEDIA_NOT_AUTH) {
-            throw new RemoteAccessDeniedException('You don\'t have permissions to delete files.', 212);
-        } elseif ($res & DOKU_MEDIA_INUSE) {
-            throw new RemoteException('File is still referenced', 232);
-        } else {
-            throw new RemoteException('Could not delete file', 233);
-        }
-    }
-
-    /**
-     * Returns the permissions of a given wiki page for the current user or another user
-     *
-     * @param string $id page id
-     * @param string|null $user username
-     * @param array|null $groups array of groups
-     * @return int permission level
-     */
-    public function aclCheck($id, $user = null, $groups = null) {
-        /** @var DokuWiki_Auth_Plugin $auth */
-        global $auth;
-
-        $id = $this->resolvePageId($id);
-        if($user === null) {
-            return auth_quickaclcheck($id);
-        } else {
-            if($groups === null) {
-                $userinfo = $auth->getUserData($user);
-                if($userinfo === false) {
-                    $groups = array();
-                } else {
-                    $groups = $userinfo['grps'];
-                }
-            }
-            return auth_aclcheck($id, $user, $groups);
-        }
-    }
-
-    /**
-     * Lists all links contained in a wiki page
-     *
-     * @author Michael Klier <chi@chimeric.de>
-     *
-     * @param string $id page id
-     * @return array
-     * @throws RemoteAccessDeniedException  no read access for page
-     */
-    public function listLinks($id) {
-        $id = $this->resolvePageId($id);
-        if(auth_quickaclcheck($id) < AUTH_READ){
-            throw new RemoteAccessDeniedException('You are not allowed to read this page', 111);
-        }
-        $links = array();
-
-        // resolve page instructions
-        $ins   = p_cached_instructions(wikiFN($id));
-
-        // instantiate new Renderer - needed for interwiki links
-        $Renderer = new Doku_Renderer_xhtml();
-        $Renderer->interwiki = getInterwiki();
-
-        // parse parse instructions
-        foreach($ins as $in) {
-            $link = array();
-            switch($in[0]) {
-                case 'internallink':
-                    $link['type'] = 'local';
-                    $link['page'] = $in[1][0];
-                    $link['href'] = wl($in[1][0]);
-                    array_push($links,$link);
-                    break;
-                case 'externallink':
-                    $link['type'] = 'extern';
-                    $link['page'] = $in[1][0];
-                    $link['href'] = $in[1][0];
-                    array_push($links,$link);
-                    break;
-                case 'interwikilink':
-                    $url = $Renderer->_resolveInterWiki($in[1][2],$in[1][3]);
-                    $link['type'] = 'extern';
-                    $link['page'] = $url;
-                    $link['href'] = $url;
-                    array_push($links,$link);
-                    break;
-            }
-        }
-
-        return ($links);
-    }
-
-    /**
-     * Returns a list of recent changes since give timestamp
-     *
-     * @author Michael Hamann <michael@content-space.de>
-     * @author Michael Klier <chi@chimeric.de>
-     *
-     * @param int $timestamp unix timestamp
-     * @return array
-     * @throws RemoteException no valid timestamp
-     */
-    public function getRecentChanges($timestamp) {
-        if(strlen($timestamp) != 10) {
-            throw new RemoteException('The provided value is not a valid timestamp', 311);
-        }
-
-        $recents = getRecentsSince($timestamp);
-
-        $changes = array();
-
-        foreach ($recents as $recent) {
-            $change = array();
-            $change['name']         = $recent['id'];
-            $change['lastModified'] = $this->api->toDate($recent['date']);
-            $change['author']       = $recent['user'];
-            $change['version']      = $recent['date'];
-            $change['perms']        = $recent['perms'];
-            $change['size']         = @filesize(wikiFN($recent['id']));
-            array_push($changes, $change);
-        }
-
-        if (!empty($changes)) {
-            return $changes;
-        } else {
-            // in case we still have nothing at this point
-            throw new RemoteException('There are no changes in the specified timeframe', 321);
-        }
-    }
-
-    /**
-     * Returns a list of recent media changes since give timestamp
-     *
-     * @author Michael Hamann <michael@content-space.de>
-     * @author Michael Klier <chi@chimeric.de>
-     *
-     * @param int $timestamp unix timestamp
-     * @return array
-     * @throws RemoteException no valid timestamp
-     */
-    public function getRecentMediaChanges($timestamp) {
-        if(strlen($timestamp) != 10)
-            throw new RemoteException('The provided value is not a valid timestamp', 311);
-
-        $recents = getRecentsSince($timestamp, null, '', RECENTS_MEDIA_CHANGES);
-
-        $changes = array();
-
-        foreach ($recents as $recent) {
-            $change = array();
-            $change['name']         = $recent['id'];
-            $change['lastModified'] = $this->api->toDate($recent['date']);
-            $change['author']       = $recent['user'];
-            $change['version']      = $recent['date'];
-            $change['perms']        = $recent['perms'];
-            $change['size']         = @filesize(mediaFN($recent['id']));
-            array_push($changes, $change);
-        }
-
-        if (!empty($changes)) {
-            return $changes;
-        } else {
-            // in case we still have nothing at this point
-            throw new RemoteException('There are no changes in the specified timeframe', 321);
-        }
-    }
-
-    /**
-     * Returns a list of available revisions of a given wiki page
-     * Number of returned pages is set by $conf['recent']
-     * However not accessible pages are skipped, so less than $conf['recent'] could be returned
-     *
-     * @author Michael Klier <chi@chimeric.de>
-     *
-     * @param string $id    page id
-     * @param int    $first skip the first n changelog lines (0 = from current(if exists), 1 = from 1st old rev, 2 = from 2nd old rev, etc)
-     * @return array
-     * @throws RemoteAccessDeniedException no read access for page
-     * @throws RemoteException empty id
-     */
-    public function pageVersions($id, $first) {
-        $id = $this->resolvePageId($id);
-        if(auth_quickaclcheck($id) < AUTH_READ) {
-            throw new RemoteAccessDeniedException('You are not allowed to read this page', 111);
-        }
-        global $conf;
-
-        $versions = array();
-
-        if(empty($id)) {
-            throw new RemoteException('Empty page ID', 131);
-        }
-
-        $first = (int) $first;
-        $first_rev = $first - 1;
-        $first_rev = $first_rev < 0 ? 0 : $first_rev;
-        $pagelog = new PageChangeLog($id);
-        $revisions = $pagelog->getRevisions($first_rev, $conf['recent']);
-
-        if($first == 0) {
-            array_unshift($revisions, '');  // include current revision
-            if ( count($revisions) > $conf['recent'] ){
-                array_pop($revisions);          // remove extra log entry
-            }
-        }
-
-        if(!empty($revisions)) {
-            foreach($revisions as $rev) {
-                $file = wikiFN($id,$rev);
-                $time = @filemtime($file);
-                // we check if the page actually exists, if this is not the
-                // case this can lead to less pages being returned than
-                // specified via $conf['recent']
-                if($time){
-                    $pagelog->setChunkSize(1024);
-                    $info = $pagelog->getRevisionInfo($rev ? $rev : $time);
-                    if(!empty($info)) {
-                        $data = array();
-                        $data['user'] = $info['user'];
-                        $data['ip']   = $info['ip'];
-                        $data['type'] = $info['type'];
-                        $data['sum']  = $info['sum'];
-                        $data['modified'] = $this->api->toDate($info['date']);
-                        $data['version'] = $info['date'];
-                        array_push($versions, $data);
-                    }
-                }
-            }
-            return $versions;
-        } else {
-            return array();
-        }
-    }
-
-    /**
-     * The version of Wiki RPC API supported
-     */
-    public function wiki_RPCVersion(){
-        return 2;
-    }
-
-
-    /**
-     * Locks or unlocks a given batch of pages
-     *
-     * Give an associative array with two keys: lock and unlock. Both should contain a
-     * list of pages to lock or unlock
-     *
-     * Returns an associative array with the keys locked, lockfail, unlocked and
-     * unlockfail, each containing lists of pages.
-     *
-     * @param array[] $set list pages with array('lock' => array, 'unlock' => array)
-     * @return array
-     */
-    public function setLocks($set){
-        $locked     = array();
-        $lockfail   = array();
-        $unlocked   = array();
-        $unlockfail = array();
-
-        foreach((array) $set['lock'] as $id){
-            $id = $this->resolvePageId($id);
-            if(auth_quickaclcheck($id) < AUTH_EDIT || checklock($id)){
-                $lockfail[] = $id;
-            }else{
-                lock($id);
-                $locked[] = $id;
-            }
-        }
-
-        foreach((array) $set['unlock'] as $id){
-            $id = $this->resolvePageId($id);
-            if(auth_quickaclcheck($id) < AUTH_EDIT || !unlock($id)){
-                $unlockfail[] = $id;
-            }else{
-                $unlocked[] = $id;
-            }
-        }
-
-        return array(
-            'locked'     => $locked,
-            'lockfail'   => $lockfail,
-            'unlocked'   => $unlocked,
-            'unlockfail' => $unlockfail,
-        );
-    }
-
-    /**
-     * Return API version
-     *
-     * @return int
-     */
-    public function getAPIVersion(){
-        return DOKU_API_VERSION;
-    }
-
-    /**
-     * Login
-     *
-     * @param string $user
-     * @param string $pass
-     * @return int
-     */
-    public function login($user,$pass){
-        global $conf;
-        /** @var DokuWiki_Auth_Plugin $auth */
-        global $auth;
-
-        if(!$conf['useacl']) return 0;
-        if(!$auth) return 0;
-
-        @session_start(); // reopen session for login
-        if($auth->canDo('external')){
-            $ok = $auth->trustExternal($user,$pass,false);
-        }else{
-            $evdata = array(
-                'user'     => $user,
-                'password' => $pass,
-                'sticky'   => false,
-                'silent'   => true,
-            );
-            $ok = trigger_event('AUTH_LOGIN_CHECK', $evdata, 'auth_login_wrapper');
-        }
-        session_write_close(); // we're done with the session
-
-        return $ok;
-    }
-
-    /**
-     * Log off
-     *
-     * @return int
-     */
-    public function logoff(){
-        global $conf;
-        global $auth;
-        if(!$conf['useacl']) return 0;
-        if(!$auth) return 0;
-
-        auth_logoff();
-
-        return 1;
-    }
-
-    /**
-     * Resolve page id
-     *
-     * @param string $id page id
-     * @return string
-     */
-    private function resolvePageId($id) {
-        $id = cleanID($id);
-        if(empty($id)) {
-            global $conf;
-            $id = cleanID($conf['start']);
-        }
-        return $id;
-    }
-
-}
-
diff --git a/wiki/inc/SafeFN.class.php b/wiki/inc/SafeFN.class.php
deleted file mode 100644
index b9e4a2b..0000000
--- a/wiki/inc/SafeFN.class.php
+++ /dev/null
@@ -1,158 +0,0 @@
-<?php
-
-/**
- * Class to safely store UTF-8 in a Filename
- *
- * Encodes a utf8 string using only the following characters 0-9a-z_.-%
- * characters 0-9a-z in the original string are preserved, "plain".
- * all other characters are represented in a substring that starts
- * with '%' are "converted".
- * The transition from converted substrings to plain characters is
- * marked with a '.'
- *
- * @author   Christopher Smith <chris@jalakai.co.uk>
- * @date     2010-04-02
- */
-class SafeFN {
-
-    // 'safe' characters are a superset of $plain, $pre_indicator and $post_indicator
-    private static $plain = '-./[_0123456789abcdefghijklmnopqrstuvwxyz'; // these characters aren't converted
-    private static $pre_indicator = '%';
-    private static $post_indicator = ']';
-
-    /**
-     * Convert an UTF-8 string to a safe ASCII String
-     *
-     *  conversion process
-     *    - if codepoint is a plain or post_indicator character,
-     *      - if previous character was "converted", append post_indicator to output, clear "converted" flag
-     *      - append ascii byte for character to output
-     *      (continue to next character)
-     *
-     *    - if codepoint is a pre_indicator character,
-     *      - append ascii byte for character to output, set "converted" flag
-     *      (continue to next character)
-     *
-     *    (all remaining characters)
-     *    - reduce codepoint value for non-printable ASCII characters (0x00 - 0x1f).  Space becomes our zero.
-     *    - convert reduced value to base36 (0-9a-z)
-     *    - append $pre_indicator characater followed by base36 string to output, set converted flag
-     *    (continue to next character)
-     *
-     * @param    string    $filename     a utf8 string, should only include printable characters - not 0x00-0x1f
-     * @return   string    an encoded representation of $filename using only 'safe' ASCII characters
-     *
-     * @author   Christopher Smith <chris@jalakai.co.uk>
-     */
-    public static function encode($filename) {
-        return self::unicode_to_safe(utf8_to_unicode($filename));
-    }
-
-    /**
-     *  decoding process
-     *    - split the string into substrings at any occurrence of pre or post indicator characters
-     *    - check the first character of the substring
-     *      - if its not a pre_indicator character
-     *        - if previous character was converted, skip over post_indicator character
-     *        - copy codepoint values of remaining characters to the output array
-     *        - clear any converted flag
-     *      (continue to next substring)
-     *
-     *     _ else (its a pre_indicator character)
-     *       - if string length is 1, copy the post_indicator character to the output array
-     *       (continue to next substring)
-     *
-     *       - else (string length > 1)
-     *         - skip the pre-indicator character and convert remaining string from base36 to base10
-     *         - increase codepoint value for non-printable ASCII characters (add 0x20)
-     *         - append codepoint to output array
-     *       (continue to next substring)
-     *
-     * @param    string    $filename     a 'safe' encoded ASCII string,
-     * @return   string    decoded utf8 representation of $filename
-     *
-     * @author   Christopher Smith <chris@jalakai.co.uk>
-     */
-    public static function decode($filename) {
-        return unicode_to_utf8(self::safe_to_unicode(strtolower($filename)));
-    }
-
-    public static function validate_printable_utf8($printable_utf8) {
-        return !preg_match('#[\x01-\x1f]#',$printable_utf8);
-    }
-
-    public static function validate_safe($safe) {
-        return !preg_match('#[^'.self::$plain.self::$post_indicator.self::$pre_indicator.']#',$safe);
-    }
-
-    /**
-     * convert an array of unicode codepoints into 'safe_filename' format
-     *
-     * @param    array  int    $unicode    an array of unicode codepoints
-     * @return   string        the unicode represented in 'safe_filename' format
-     *
-     * @author   Christopher Smith <chris@jalakai.co.uk>
-     */
-    private static function unicode_to_safe($unicode) {
-
-        $safe = '';
-        $converted = false;
-
-        foreach ($unicode as $codepoint) {
-            if ($codepoint < 127 && (strpos(self::$plain.self::$post_indicator,chr($codepoint))!==false)) {
-                if ($converted) {
-                    $safe .= self::$post_indicator;
-                    $converted = false;
-                }
-                $safe .= chr($codepoint);
-
-            } else if ($codepoint == ord(self::$pre_indicator)) {
-                $safe .= self::$pre_indicator;
-                $converted = true;
-            } else {
-                $safe .= self::$pre_indicator.base_convert((string)($codepoint-32),10,36);
-                $converted = true;
-            }
-        }
-        if($converted) $safe .= self::$post_indicator;
-        return $safe;
-    }
-
-    /**
-     * convert a 'safe_filename' string into an array of unicode codepoints
-     *
-     * @param   string         $safe     a filename in 'safe_filename' format
-     * @return  array   int    an array of unicode codepoints
-     *
-     * @author   Christopher Smith <chris@jalakai.co.uk>
-     */
-    private static function safe_to_unicode($safe) {
-
-        $unicode = array();
-        $split = preg_split('#(?=['.self::$post_indicator.self::$pre_indicator.'])#',$safe,-1,PREG_SPLIT_NO_EMPTY);
-
-        $converted = false;
-        foreach ($split as $sub) {
-            $len = strlen($sub);
-            if ($sub[0] != self::$pre_indicator) {
-                // plain (unconverted) characters, optionally starting with a post_indicator
-                // set initial value to skip any post_indicator
-                for ($i=($converted?1:0); $i < $len; $i++) {
-                    $unicode[] = ord($sub[$i]);
-                }
-                $converted = false;
-            } else if ($len==1) {
-                // a pre_indicator character in the real data
-                $unicode[] = ord($sub);
-                $converted = true;
-            } else {
-                // a single codepoint in base36, adjusted for initial 32 non-printable chars
-                $unicode[] = 32 + (int)base_convert(substr($sub,1),36,10);
-                $converted = true;
-            }
-        }
-
-        return $unicode;
-    }
-
-}
diff --git a/wiki/inc/Sitemapper.php b/wiki/inc/Sitemapper.php
deleted file mode 100644
index 037990e..0000000
--- a/wiki/inc/Sitemapper.php
+++ /dev/null
@@ -1,220 +0,0 @@
-<?php
-/**
- * Sitemap handling functions
- *
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * @author     Michael Hamann <michael@content-space.de>
- */
-
-if(!defined('DOKU_INC')) die('meh.');
-
-/**
- * A class for building sitemaps and pinging search engines with the sitemap URL.
- *
- * @author Michael Hamann
- */
-class Sitemapper {
-    /**
-     * Builds a Google Sitemap of all public pages known to the indexer
-     *
-     * The map is placed in the cache directory named sitemap.xml.gz - This
-     * file needs to be writable!
-     *
-     * @author Michael Hamann
-     * @author Andreas Gohr
-     * @link   https://www.google.com/webmasters/sitemaps/docs/en/about.html
-     * @link   http://www.sitemaps.org/
-     *
-     * @return bool
-     */
-    public static function generate(){
-        global $conf;
-        if($conf['sitemap'] < 1 || !is_numeric($conf['sitemap'])) return false;
-
-        $sitemap = Sitemapper::getFilePath();
-
-        if(file_exists($sitemap)){
-            if(!is_writable($sitemap)) return false;
-        }else{
-            if(!is_writable(dirname($sitemap))) return false;
-        }
-
-        if(@filesize($sitemap) &&
-           @filemtime($sitemap) > (time()-($conf['sitemap']*86400))){ // 60*60*24=86400
-            dbglog('Sitemapper::generate(): Sitemap up to date');
-            return false;
-        }
-
-        dbglog("Sitemapper::generate(): using $sitemap");
-
-        $pages = idx_get_indexer()->getPages();
-        dbglog('Sitemapper::generate(): creating sitemap using '.count($pages).' pages');
-        $items = array();
-
-        // build the sitemap items
-        foreach($pages as $id){
-            //skip hidden, non existing and restricted files
-            if(isHiddenPage($id)) continue;
-            if(auth_aclcheck($id,'',array()) < AUTH_READ) continue;
-            $item = SitemapItem::createFromID($id);
-            if ($item !== null)
-                $items[] = $item;
-        }
-
-        $eventData = array('items' => &$items, 'sitemap' => &$sitemap);
-        $event = new Doku_Event('SITEMAP_GENERATE', $eventData);
-        if ($event->advise_before(true)) {
-            //save the new sitemap
-            $event->result = io_saveFile($sitemap, Sitemapper::getXML($items));
-        }
-        $event->advise_after();
-
-        return $event->result;
-    }
-
-    /**
-     * Builds the sitemap XML string from the given array auf SitemapItems.
-     *
-     * @param $items array The SitemapItems that shall be included in the sitemap.
-     * @return string The sitemap XML.
-     *
-     * @author Michael Hamann
-     */
-    private static function getXML($items) {
-        ob_start();
-        echo '<?xml version="1.0" encoding="UTF-8"?>'.NL;
-        echo '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">'.NL;
-        foreach ($items as $item) {
-            /** @var SitemapItem $item */
-            echo $item->toXML();
-        }
-        echo '</urlset>'.NL;
-        $result = ob_get_contents();
-        ob_end_clean();
-        return $result;
-    }
-
-    /**
-     * Helper function for getting the path to the sitemap file.
-     *
-     * @return string The path to the sitemap file.
-     *
-     * @author Michael Hamann
-     */
-    public static function getFilePath() {
-        global $conf;
-
-        $sitemap = $conf['cachedir'].'/sitemap.xml';
-        if (self::sitemapIsCompressed()) {
-            $sitemap .= '.gz';
-        }
-
-        return $sitemap;
-    }
-
-    /**
-     * Helper function for checking if the sitemap is compressed
-     *
-     * @return bool If the sitemap file is compressed
-     */
-    public static function sitemapIsCompressed() {
-        global $conf;
-        return $conf['compression'] === 'bz2' || $conf['compression'] === 'gz';
-    }
-
-    /**
-     * Pings search engines with the sitemap url. Plugins can add or remove
-     * urls to ping using the SITEMAP_PING event.
-     *
-     * @author Michael Hamann
-     *
-     * @return bool
-     */
-    public static function pingSearchEngines() {
-        //ping search engines...
-        $http = new DokuHTTPClient();
-        $http->timeout = 8;
-
-        $encoded_sitemap_url = urlencode(wl('', array('do' => 'sitemap'), true, '&'));
-        $ping_urls = array(
-            'google'    => 'http://www.google.com/webmasters/sitemaps/ping?sitemap='.$encoded_sitemap_url,
-            'microsoft' => 'http://www.bing.com/webmaster/ping.aspx?siteMap='.$encoded_sitemap_url,
-            'yandex'    => 'http://blogs.yandex.ru/pings/?status=success&url='.$encoded_sitemap_url
-        );
-
-        $data = array('ping_urls' => $ping_urls,
-                            'encoded_sitemap_url' => $encoded_sitemap_url
-        );
-        $event = new Doku_Event('SITEMAP_PING', $data);
-        if ($event->advise_before(true)) {
-            foreach ($data['ping_urls'] as $name => $url) {
-                dbglog("Sitemapper::PingSearchEngines(): pinging $name");
-                $resp = $http->get($url);
-                if($http->error) dbglog("Sitemapper:pingSearchengines(): $http->error");
-                dbglog('Sitemapper:pingSearchengines(): '.preg_replace('/[\n\r]/',' ',strip_tags($resp)));
-            }
-        }
-        $event->advise_after();
-
-        return true;
-    }
-}
-
-/**
- * An item of a sitemap.
- *
- * @author Michael Hamann
- */
-class SitemapItem {
-    public $url;
-    public $lastmod;
-    public $changefreq;
-    public $priority;
-
-    /**
-     * Create a new item.
-     *
-     * @param string $url        The url of the item
-     * @param int    $lastmod    Timestamp of the last modification
-     * @param string $changefreq How frequently the item is likely to change. Valid values: always, hourly, daily, weekly, monthly, yearly, never.
-     * @param $priority float|string The priority of the item relative to other URLs on your site. Valid values range from 0.0 to 1.0.
-     */
-    public function __construct($url, $lastmod, $changefreq = null, $priority = null) {
-        $this->url = $url;
-        $this->lastmod = $lastmod;
-        $this->changefreq = $changefreq;
-        $this->priority = $priority;
-    }
-
-    /**
-     * Helper function for creating an item for a wikipage id.
-     *
-     * @param string       $id         A wikipage id.
-     * @param string       $changefreq How frequently the item is likely to change. Valid values: always, hourly, daily, weekly, monthly, yearly, never.
-     * @param float|string $priority   The priority of the item relative to other URLs on your site. Valid values     range from 0.0 to 1.0.
-     * @return SitemapItem The sitemap item.
-     */
-    public static function createFromID($id, $changefreq = null, $priority = null) {
-        $id = trim($id);
-        $date = @filemtime(wikiFN($id));
-        if(!$date) return null;
-        return new SitemapItem(wl($id, '', true), $date, $changefreq, $priority);
-    }
-
-    /**
-     * Get the XML representation of the sitemap item.
-     *
-     * @return string The XML representation.
-     */
-    public function toXML() {
-        $result = '  <url>'.NL
-                 .'    <loc>'.hsc($this->url).'</loc>'.NL
-                 .'    <lastmod>'.date_iso8601($this->lastmod).'</lastmod>'.NL;
-        if ($this->changefreq !== null)
-            $result .= '    <changefreq>'.hsc($this->changefreq).'</changefreq>'.NL;
-        if ($this->priority !== null)
-            $result .= '    <priority>'.hsc($this->priority).'</priority>'.NL;
-        $result .= '  </url>'.NL;
-        return $result;
-    }
-}
diff --git a/wiki/inc/StyleUtils.php b/wiki/inc/StyleUtils.php
deleted file mode 100644
index e584942..0000000
--- a/wiki/inc/StyleUtils.php
+++ /dev/null
@@ -1,118 +0,0 @@
-<?php
-
-namespace dokuwiki;
-
-class StyleUtils
-{
-    /**
-     * Load style ini contents
-     *
-     * Loads and merges style.ini files from template and config and prepares
-     * the stylesheet modes
-     *
-     * @author Andreas Gohr <andi@splitbrain.org>
-     *
-     * @param string $tpl the used template
-     * @param bool   $preview load preview replacements
-     * @return array with keys 'stylesheets' and 'replacements'
-     */
-    public function cssStyleini($tpl, $preview=false) {
-        global $conf;
-
-        $stylesheets = array(); // mode, file => base
-        // guaranteed placeholder => value
-        $replacements = array(
-            '__text__' => "#000",
-            '__background__' => "#fff",
-            '__text_alt__' => "#999",
-            '__background_alt__' => "#eee",
-            '__text_neu__' => "#666",
-            '__background_neu__' => "#ddd",
-            '__border__' => "#ccc",
-            '__highlight__' => "#ff9",
-            '__link__' => "#00f",
-        );
-
-        // load template's style.ini
-        $incbase = tpl_incdir($tpl);
-        $webbase = tpl_basedir($tpl);
-        $ini = $incbase.'style.ini';
-        if(file_exists($ini)){
-            $data = parse_ini_file($ini, true);
-
-            // stylesheets
-            if(is_array($data['stylesheets'])) foreach($data['stylesheets'] as $file => $mode){
-                if (!file_exists($incbase . $file)) {
-                    list($extension, $basename) = array_map('strrev', explode('.', strrev($file), 2));
-                    $newExtension = $extension === 'css' ? 'less' : 'css';
-                    if (file_exists($incbase . $basename . '.' . $newExtension)) {
-                        $stylesheets[$mode][$incbase . $basename . '.' . $newExtension] = $webbase;
-                        if ($conf['allowdebug']) {
-                            msg("Stylesheet $file not found, using $basename.$newExtension instead. Please contact developer of \"{$conf['template']}\" template.", 2);
-                        }
-                        continue;
-                    }
-                }
-                $stylesheets[$mode][$incbase . $file] = $webbase;
-            }
-
-            // replacements
-            if(is_array($data['replacements'])){
-                $replacements = array_merge($replacements, $this->cssFixreplacementurls($data['replacements'],$webbase));
-            }
-        }
-
-        // load configs's style.ini
-        $webbase = DOKU_BASE;
-        $ini = DOKU_CONF."tpl/$tpl/style.ini";
-        $incbase = dirname($ini).'/';
-        if(file_exists($ini)){
-            $data = parse_ini_file($ini, true);
-
-            // stylesheets
-            if(isset($data['stylesheets']) && is_array($data['stylesheets'])) foreach($data['stylesheets'] as $file => $mode){
-                $stylesheets[$mode][$incbase.$file] = $webbase;
-            }
-
-            // replacements
-            if(isset($data['replacements']) && is_array($data['replacements'])){
-                $replacements = array_merge($replacements, $this->cssFixreplacementurls($data['replacements'],$webbase));
-            }
-        }
-
-        // allow replacement overwrites in preview mode
-        if($preview) {
-            $webbase = DOKU_BASE;
-            $ini     = $conf['cachedir'].'/preview.ini';
-            if(file_exists($ini)) {
-                $data = parse_ini_file($ini, true);
-                // replacements
-                if(is_array($data['replacements'])) {
-                    $replacements = array_merge($replacements, $this->cssFixreplacementurls($data['replacements'], $webbase));
-                }
-            }
-        }
-
-        return array(
-            'stylesheets' => $stylesheets,
-            'replacements' => $replacements
-        );
-    }
-
-
-    /**
-     * Amend paths used in replacement relative urls, refer FS#2879
-     *
-     * @author Chris Smith <chris@jalakai.co.uk>
-     *
-     * @param array $replacements with key-value pairs
-     * @param string $location
-     * @return array
-     */
-    protected function cssFixreplacementurls($replacements, $location) {
-        foreach($replacements as $key => $value) {
-            $replacements[$key] = preg_replace('#(url\([ \'"]*)(?!/|data:|http://|https://| |\'|")#','\\1'.$location,$value);
-        }
-        return $replacements;
-    }
-}
diff --git a/wiki/inc/Ui/Admin.php b/wiki/inc/Ui/Admin.php
deleted file mode 100644
index aa3b8b9..0000000
--- a/wiki/inc/Ui/Admin.php
+++ /dev/null
@@ -1,173 +0,0 @@
-<?php
-namespace dokuwiki\Ui;
-
-/**
- * Class Admin
- *
- * Displays the Admin screen
- *
- * @package dokuwiki\Ui
- * @author Andreas Gohr <andi@splitbrain.org>
- * @author HÃ¥kan Sandell <hakan.sandell@home.se>
- */
-class Admin extends Ui {
-
-    protected $menu;
-
-    /**
-     * Display the UI element
-     *
-     * @return void
-     */
-    public function show() {
-        $this->menu = $this->getPluginList();
-        echo '<div class="ui-admin">';
-        echo p_locale_xhtml('admin');
-        $this->showSecurityCheck();
-        $this->showAdminMenu();
-        $this->showManagerMenu();
-        $this->showVersion();
-        $this->showPluginMenu();
-        echo '</div>';
-    }
-
-    /**
-     * Display the standard admin tasks
-     */
-    protected function showAdminMenu() {
-        /** @var \DokuWiki_Auth_Plugin $auth */
-        global $auth;
-        global $INFO;
-
-        if(!$INFO['isadmin']) return;
-
-        // user manager only if the auth backend supports it
-        if(!$auth || !$auth->canDo('getUsers') ) {
-            if(isset($this->menu['usermanager'])) unset($this->menu['usermanager']);
-        }
-
-        echo '<ul class="admin_tasks">';
-        foreach(array('usermanager','acl', 'extension', 'config', 'styling') as $plugin) {
-            if(!isset($this->menu[$plugin])) continue;
-            $this->showMenuItem($this->menu[$plugin]);
-            unset($this->menu[$plugin]);
-        }
-        echo '</ul>';
-    }
-
-    /**
-     * Display the standard manager tasks
-     */
-    protected function showManagerMenu() {
-        echo '<ul class="admin_tasks">';
-        foreach(array('revert','popularity') as $plugin) {
-            if(!isset($this->menu[$plugin])) continue;
-            $this->showMenuItem($this->menu[$plugin]);
-            unset($this->menu[$plugin]);
-        }
-        echo '</ul>';
-    }
-
-    /**
-     * Display all the remaining plugins
-     */
-    protected function showPluginMenu() {
-        if(!count($this->menu)) return;
-        echo p_locale_xhtml('adminplugins');
-        echo '<ul class="admin_plugins">';
-        foreach ($this->menu as $item) {
-            $this->showMenuItem($item);
-        }
-        echo '</ul>';
-    }
-
-    /**
-     * Display the DokuWiki version
-     */
-    protected function showVersion() {
-        echo '<div id="admin__version">';
-        echo getVersion();
-        echo '</div>';
-    }
-
-    /**
-     * data security check
-     *
-     * simple check if the 'savedir' is relative and accessible when appended to DOKU_URL
-     *
-     * it verifies either:
-     *   'savedir' has been moved elsewhere, or
-     *   has protection to prevent the webserver serving files from it
-     */
-    protected function showSecurityCheck() {
-        global $conf;
-        if(substr($conf['savedir'], 0, 2) !== './') return;
-        echo '<a style="border:none; float:right;"
-                href="http://www.dokuwiki.org/security#web_access_security">
-                <img src="' . DOKU_URL . $conf['savedir'] . '/dont-panic-if-you-see-this-in-your-logs-it-means-your-directory-permissions-are-correct.png" alt="Your data directory seems to be protected properly."
-                onerror="this.parentNode.style.display=\'none\'" /></a>';
-    }
-
-    /**
-     * Display a single Admin menu item
-     *
-     * @param array $item
-     */
-    protected function showMenuItem($item) {
-        global $ID;
-        if(blank($item['prompt'])) return;
-        echo '<li><div class="li">';
-        echo '<a href="' . wl($ID, 'do=admin&amp;page=' . $item['plugin']) . '">';
-        echo '<span class="icon">';
-        echo inlineSVG($item['icon']);
-        echo '</span>';
-        echo '<span class="prompt">';
-        echo $item['prompt'];
-        echo '</span>';
-        echo '</a>';
-        echo '</div></li>';
-    }
-
-    /**
-     * Build  list of admin functions from the plugins that handle them
-     *
-     * Checks the current permissions to decide on manager or admin plugins
-     *
-     * @return array list of plugins with their properties
-     */
-    protected function getPluginList() {
-        global $INFO;
-        global $conf;
-
-        $pluginlist = plugin_list('admin');
-        $menu = array();
-        foreach($pluginlist as $p) {
-            /** @var \DokuWiki_Admin_Plugin $obj */
-            if(($obj = plugin_load('admin', $p)) === null) continue;
-
-            // check permissions
-            if($obj->forAdminOnly() && !$INFO['isadmin']) continue;
-
-            $menu[$p] = array(
-                'plugin' => $p,
-                'prompt' => $obj->getMenuText($conf['lang']),
-                'icon' => $obj->getMenuIcon(),
-                'sort' => $obj->getMenuSort(),
-            );
-        }
-
-        // sort by name, then sort
-        uasort(
-            $menu,
-            function ($a, $b) {
-                $strcmp = strcasecmp($a['prompt'], $b['prompt']);
-                if($strcmp != 0) return $strcmp;
-                if($a['sort'] == $b['sort']) return 0;
-                return ($a['sort'] < $b['sort']) ? -1 : 1;
-            }
-        );
-
-        return $menu;
-    }
-
-}
diff --git a/wiki/inc/Ui/Search.php b/wiki/inc/Ui/Search.php
deleted file mode 100644
index 419b967..0000000
--- a/wiki/inc/Ui/Search.php
+++ /dev/null
@@ -1,644 +0,0 @@
-<?php
-
-namespace dokuwiki\Ui;
-
-use \dokuwiki\Form\Form;
-
-class Search extends Ui
-{
-    protected $query;
-    protected $parsedQuery;
-    protected $searchState;
-    protected $pageLookupResults = array();
-    protected $fullTextResults = array();
-    protected $highlight = array();
-
-    /**
-     * Search constructor.
-     *
-     * @param array $pageLookupResults pagename lookup results in the form [pagename => pagetitle]
-     * @param array $fullTextResults fulltext search results in the form [pagename => #hits]
-     * @param array $highlight  array of strings to be highlighted
-     */
-    public function __construct(array $pageLookupResults, array $fullTextResults, $highlight)
-    {
-        global $QUERY;
-        $Indexer = idx_get_indexer();
-
-        $this->query = $QUERY;
-        $this->parsedQuery = ft_queryParser($Indexer, $QUERY);
-        $this->searchState = new SearchState($this->parsedQuery);
-
-        $this->pageLookupResults = $pageLookupResults;
-        $this->fullTextResults = $fullTextResults;
-        $this->highlight = $highlight;
-    }
-
-    /**
-     * display the search result
-     *
-     * @return void
-     */
-    public function show()
-    {
-        $searchHTML = '';
-
-        $searchHTML .= $this->getSearchIntroHTML($this->query);
-
-        $searchHTML .= $this->getSearchFormHTML($this->query);
-
-        $searchHTML .= $this->getPageLookupHTML($this->pageLookupResults);
-
-        $searchHTML .= $this->getFulltextResultsHTML($this->fullTextResults, $this->highlight);
-
-        echo $searchHTML;
-    }
-
-    /**
-     * Get a form which can be used to adjust/refine the search
-     *
-     * @param string $query
-     *
-     * @return string
-     */
-    protected function getSearchFormHTML($query)
-    {
-        global $lang, $ID, $INPUT;
-
-        $searchForm = (new Form(['method' => 'get'], true))->addClass('search-results-form');
-        $searchForm->setHiddenField('do', 'search');
-        $searchForm->setHiddenField('id', $ID);
-        $searchForm->setHiddenField('sf', '1');
-        if ($INPUT->has('min')) {
-            $searchForm->setHiddenField('min', $INPUT->str('min'));
-        }
-        if ($INPUT->has('max')) {
-            $searchForm->setHiddenField('max', $INPUT->str('max'));
-        }
-        if ($INPUT->has('srt')) {
-            $searchForm->setHiddenField('srt', $INPUT->str('srt'));
-        }
-        $searchForm->addFieldsetOpen()->addClass('search-form');
-        $searchForm->addTextInput('q')->val($query)->useInput(false);
-        $searchForm->addButton('', $lang['btn_search'])->attr('type', 'submit');
-
-        $this->addSearchAssistanceElements($searchForm);
-
-        $searchForm->addFieldsetClose();
-
-        trigger_event('FORM_SEARCH_OUTPUT', $searchForm);
-
-        return $searchForm->toHTML();
-    }
-
-    /**
-     * Add elements to adjust how the results are sorted
-     *
-     * @param Form $searchForm
-     */
-    protected function addSortTool(Form $searchForm)
-    {
-        global $INPUT, $lang;
-
-        $options = [
-            'hits' => [
-                'label' => $lang['search_sort_by_hits'],
-                'sort' => '',
-            ],
-            'mtime' => [
-                'label' => $lang['search_sort_by_mtime'],
-                'sort' => 'mtime',
-            ],
-        ];
-        $activeOption = 'hits';
-
-        if ($INPUT->str('srt') === 'mtime') {
-            $activeOption = 'mtime';
-        }
-
-        $searchForm->addTagOpen('div')->addClass('toggle')->attr('aria-haspopup', 'true');
-        // render current
-        $currentWrapper = $searchForm->addTagOpen('div')->addClass('current');
-        if ($activeOption !== 'hits') {
-            $currentWrapper->addClass('changed');
-        }
-        $searchForm->addHTML($options[$activeOption]['label']);
-        $searchForm->addTagClose('div');
-
-        // render options list
-        $searchForm->addTagOpen('ul')->attr('aria-expanded', 'false');
-
-        foreach ($options as $key => $option) {
-            $listItem = $searchForm->addTagOpen('li');
-
-            if ($key === $activeOption) {
-                $listItem->addClass('active');
-                $searchForm->addHTML($option['label']);
-            } else {
-                $link = $this->searchState->withSorting($option['sort'])->getSearchLink($option['label']);
-                $searchForm->addHTML($link);
-            }
-            $searchForm->addTagClose('li');
-        }
-        $searchForm->addTagClose('ul');
-
-        $searchForm->addTagClose('div');
-
-    }
-
-    /**
-     * Check if the query is simple enough to modify its namespace limitations without breaking the rest of the query
-     *
-     * @param array $parsedQuery
-     *
-     * @return bool
-     */
-    protected function isNamespaceAssistanceAvailable(array $parsedQuery) {
-        if (preg_match('/[\(\)\|]/', $parsedQuery['query']) === 1) {
-            return false;
-        }
-
-        return true;
-    }
-
-    /**
-     * Check if the query is simple enough to modify the fragment search behavior without breaking the rest of the query
-     *
-     * @param array $parsedQuery
-     *
-     * @return bool
-     */
-    protected function isFragmentAssistanceAvailable(array $parsedQuery) {
-        if (preg_match('/[\(\)\|]/', $parsedQuery['query']) === 1) {
-            return false;
-        }
-
-        if (!empty($parsedQuery['phrases'])) {
-            return false;
-        }
-
-        return true;
-    }
-
-    /**
-     * Add the elements to be used for search assistance
-     *
-     * @param Form $searchForm
-     */
-    protected function addSearchAssistanceElements(Form $searchForm)
-    {
-        $searchForm->addTagOpen('div')
-            ->addClass('advancedOptions')
-            ->attr('style', 'display: none;')
-            ->attr('aria-hidden', 'true');
-
-        $this->addFragmentBehaviorLinks($searchForm);
-        $this->addNamespaceSelector($searchForm);
-        $this->addDateSelector($searchForm);
-        $this->addSortTool($searchForm);
-
-        $searchForm->addTagClose('div');
-    }
-
-    /**
-     *  Add the elements to adjust the fragment search behavior
-     *
-     * @param Form $searchForm
-     */
-    protected function addFragmentBehaviorLinks(Form $searchForm)
-    {
-        if (!$this->isFragmentAssistanceAvailable($this->parsedQuery)) {
-            return;
-        }
-        global $lang;
-
-        $options = [
-            'exact' => [
-                'label' => $lang['search_exact_match'],
-                'and' => array_map(function ($term) {
-                    return trim($term, '*');
-                }, $this->parsedQuery['and']),
-                'not' => array_map(function ($term) {
-                    return trim($term, '*');
-                }, $this->parsedQuery['not']),
-            ],
-            'starts' => [
-                'label' => $lang['search_starts_with'],
-                'and' => array_map(function ($term) {
-                    return trim($term, '*') . '*';
-                }, $this->parsedQuery['and']),
-                'not' => array_map(function ($term) {
-                    return trim($term, '*') . '*';
-                }, $this->parsedQuery['not']),
-            ],
-            'ends' => [
-                'label' => $lang['search_ends_with'],
-                'and' => array_map(function ($term) {
-                    return '*' . trim($term, '*');
-                }, $this->parsedQuery['and']),
-                'not' => array_map(function ($term) {
-                    return '*' . trim($term, '*');
-                }, $this->parsedQuery['not']),
-            ],
-            'contains' => [
-                'label' => $lang['search_contains'],
-                'and' => array_map(function ($term) {
-                    return '*' . trim($term, '*') . '*';
-                }, $this->parsedQuery['and']),
-                'not' => array_map(function ($term) {
-                    return '*' . trim($term, '*') . '*';
-                }, $this->parsedQuery['not']),
-            ]
-        ];
-
-        // detect current
-        $activeOption = 'custom';
-        foreach ($options as $key => $option) {
-            if ($this->parsedQuery['and'] === $option['and']) {
-                $activeOption = $key;
-            }
-        }
-        if ($activeOption === 'custom') {
-            $options = array_merge(['custom' => [
-                'label' => $lang['search_custom_match'],
-            ]], $options);
-        }
-
-        $searchForm->addTagOpen('div')->addClass('toggle')->attr('aria-haspopup', 'true');
-        // render current
-        $currentWrapper = $searchForm->addTagOpen('div')->addClass('current');
-        if ($activeOption !== 'exact') {
-            $currentWrapper->addClass('changed');
-        }
-        $searchForm->addHTML($options[$activeOption]['label']);
-        $searchForm->addTagClose('div');
-
-        // render options list
-        $searchForm->addTagOpen('ul')->attr('aria-expanded', 'false');
-
-        foreach ($options as $key => $option) {
-            $listItem = $searchForm->addTagOpen('li');
-
-            if ($key === $activeOption) {
-                $listItem->addClass('active');
-                $searchForm->addHTML($option['label']);
-            } else {
-                $link = $this->searchState
-                    ->withFragments($option['and'], $option['not'])
-                    ->getSearchLink($option['label'])
-                ;
-                $searchForm->addHTML($link);
-            }
-            $searchForm->addTagClose('li');
-        }
-        $searchForm->addTagClose('ul');
-
-        $searchForm->addTagClose('div');
-
-        // render options list
-    }
-
-    /**
-     * Add the elements for the namespace selector
-     *
-     * @param Form $searchForm
-     */
-    protected function addNamespaceSelector(Form $searchForm)
-    {
-        if (!$this->isNamespaceAssistanceAvailable($this->parsedQuery)) {
-            return;
-        }
-
-        global $lang;
-
-        $baseNS = empty($this->parsedQuery['ns']) ? '' : $this->parsedQuery['ns'][0];
-        $extraNS = $this->getAdditionalNamespacesFromResults($baseNS);
-
-        $searchForm->addTagOpen('div')->addClass('toggle')->attr('aria-haspopup', 'true');
-        // render current
-        $currentWrapper = $searchForm->addTagOpen('div')->addClass('current');
-        if ($baseNS) {
-            $currentWrapper->addClass('changed');
-            $searchForm->addHTML('@' . $baseNS);
-        } else {
-            $searchForm->addHTML($lang['search_any_ns']);
-        }
-        $searchForm->addTagClose('div');
-
-        // render options list
-        $searchForm->addTagOpen('ul')->attr('aria-expanded', 'false');
-
-        $listItem = $searchForm->addTagOpen('li');
-        if ($baseNS) {
-            $listItem->addClass('active');
-            $link = $this->searchState->withNamespace('')->getSearchLink($lang['search_any_ns']);
-            $searchForm->addHTML($link);
-        } else {
-            $searchForm->addHTML($lang['search_any_ns']);
-        }
-        $searchForm->addTagClose('li');
-
-        foreach ($extraNS as $ns => $count) {
-            $listItem = $searchForm->addTagOpen('li');
-            $label = $ns . ($count ? " <bdi>($count)</bdi>" : '');
-
-            if ($ns === $baseNS) {
-                $listItem->addClass('active');
-                $searchForm->addHTML($label);
-            } else {
-                $link = $this->searchState->withNamespace($ns)->getSearchLink($label);
-                $searchForm->addHTML($link);
-            }
-            $searchForm->addTagClose('li');
-        }
-        $searchForm->addTagClose('ul');
-
-        $searchForm->addTagClose('div');
-
-    }
-
-    /**
-     * Parse the full text results for their top namespaces below the given base namespace
-     *
-     * @param string $baseNS the namespace within which was searched, empty string for root namespace
-     *
-     * @return array an associative array with namespace => #number of found pages, sorted descending
-     */
-    protected function getAdditionalNamespacesFromResults($baseNS)
-    {
-        $namespaces = [];
-        $baseNSLength = strlen($baseNS);
-        foreach ($this->fullTextResults as $page => $numberOfHits) {
-            $namespace = getNS($page);
-            if (!$namespace) {
-                continue;
-            }
-            if ($namespace === $baseNS) {
-                continue;
-            }
-            $firstColon = strpos((string)$namespace, ':', $baseNSLength + 1) ?: strlen($namespace);
-            $subtopNS = substr($namespace, 0, $firstColon);
-            if (empty($namespaces[$subtopNS])) {
-                $namespaces[$subtopNS] = 0;
-            }
-            $namespaces[$subtopNS] += 1;
-        }
-        ksort($namespaces);
-        arsort($namespaces);
-        return $namespaces;
-    }
-
-    /**
-     * @ToDo: custom date input
-     *
-     * @param Form $searchForm
-     */
-    protected function addDateSelector(Form $searchForm)
-    {
-        global $INPUT, $lang;
-
-        $options = [
-            'any' => [
-                'before' => false,
-                'after' => false,
-                'label' => $lang['search_any_time'],
-            ],
-            'week' => [
-                'before' => false,
-                'after' => '1 week ago',
-                'label' => $lang['search_past_7_days'],
-            ],
-            'month' => [
-                'before' => false,
-                'after' => '1 month ago',
-                'label' => $lang['search_past_month'],
-            ],
-            'year' => [
-                'before' => false,
-                'after' => '1 year ago',
-                'label' => $lang['search_past_year'],
-            ],
-        ];
-        $activeOption = 'any';
-        foreach ($options as $key => $option) {
-            if ($INPUT->str('min') === $option['after']) {
-                $activeOption = $key;
-                break;
-            }
-        }
-
-        $searchForm->addTagOpen('div')->addClass('toggle')->attr('aria-haspopup', 'true');
-        // render current
-        $currentWrapper = $searchForm->addTagOpen('div')->addClass('current');
-        if ($INPUT->has('max') || $INPUT->has('min')) {
-            $currentWrapper->addClass('changed');
-        }
-        $searchForm->addHTML($options[$activeOption]['label']);
-        $searchForm->addTagClose('div');
-
-        // render options list
-        $searchForm->addTagOpen('ul')->attr('aria-expanded', 'false');
-
-        foreach ($options as $key => $option) {
-            $listItem = $searchForm->addTagOpen('li');
-
-            if ($key === $activeOption) {
-                $listItem->addClass('active');
-                $searchForm->addHTML($option['label']);
-            } else {
-                $link = $this->searchState
-                    ->withTimeLimitations($option['after'], $option['before'])
-                    ->getSearchLink($option['label'])
-                ;
-                $searchForm->addHTML($link);
-            }
-            $searchForm->addTagClose('li');
-        }
-        $searchForm->addTagClose('ul');
-
-        $searchForm->addTagClose('div');
-    }
-
-
-    /**
-     * Build the intro text for the search page
-     *
-     * @param string $query the search query
-     *
-     * @return string
-     */
-    protected function getSearchIntroHTML($query)
-    {
-        global $lang;
-
-        $intro = p_locale_xhtml('searchpage');
-
-        $queryPagename = $this->createPagenameFromQuery($this->parsedQuery);
-        $createQueryPageLink = html_wikilink($queryPagename . '?do=edit', $queryPagename);
-
-        $pagecreateinfo = '';
-        if (auth_quickaclcheck($queryPagename) >= AUTH_CREATE) {
-            $pagecreateinfo = sprintf($lang['searchcreatepage'], $createQueryPageLink);
-        }
-        $intro = str_replace(
-            array('@QUERY@', '@SEARCH@', '@CREATEPAGEINFO@'),
-            array(hsc(rawurlencode($query)), hsc($query), $pagecreateinfo),
-            $intro
-        );
-
-        return $intro;
-    }
-
-    /**
-     * Create a pagename based the parsed search query
-     *
-     * @param array $parsedQuery
-     *
-     * @return string pagename constructed from the parsed query
-     */
-    public function createPagenameFromQuery($parsedQuery)
-    {
-        $cleanedQuery = cleanID($parsedQuery['query']);
-        if ($cleanedQuery === $parsedQuery['query']) {
-            return ':' . $cleanedQuery;
-        }
-        $pagename = '';
-        if (!empty($parsedQuery['ns'])) {
-            $pagename .= ':' . cleanID($parsedQuery['ns'][0]);
-        }
-        $pagename .= ':' . cleanID(implode(' ' , $parsedQuery['highlight']));
-        return $pagename;
-    }
-
-    /**
-     * Build HTML for a list of pages with matching pagenames
-     *
-     * @param array $data search results
-     *
-     * @return string
-     */
-    protected function getPageLookupHTML($data)
-    {
-        if (empty($data)) {
-            return '';
-        }
-
-        global $lang;
-
-        $html = '<div class="search_quickresult">';
-        $html .= '<h2>' . $lang['quickhits'] . ':</h2>';
-        $html .= '<ul class="search_quickhits">';
-        foreach ($data as $id => $title) {
-            $name = null;
-            if (!useHeading('navigation') && $ns = getNS($id)) {
-                $name = shorten(noNS($id), ' (' . $ns . ')', 30);
-            }
-            $link = html_wikilink(':' . $id, $name);
-            $eventData = [
-                'listItemContent' => [$link],
-                'page' => $id,
-            ];
-            trigger_event('SEARCH_RESULT_PAGELOOKUP', $eventData);
-            $html .= '<li>' . implode('', $eventData['listItemContent']) . '</li>';
-        }
-        $html .= '</ul> ';
-        //clear float (see http://www.complexspiral.com/publications/containing-floats/)
-        $html .= '<div class="clearer"></div>';
-        $html .= '</div>';
-
-        return $html;
-    }
-
-    /**
-     * Build HTML for fulltext search results or "no results" message
-     *
-     * @param array $data      the results of the fulltext search
-     * @param array $highlight the terms to be highlighted in the results
-     *
-     * @return string
-     */
-    protected function getFulltextResultsHTML($data, $highlight)
-    {
-        global $lang;
-
-        if (empty($data)) {
-            return '<div class="nothing">' . $lang['nothingfound'] . '</div>';
-        }
-
-        $html = '<div class="search_fulltextresult">';
-        $html .= '<h2>' . $lang['search_fullresults'] . ':</h2>';
-
-        $html .= '<dl class="search_results">';
-        $num = 0;
-        $position = 0;
-
-        foreach ($data as $id => $cnt) {
-            $position += 1;
-            $resultLink = html_wikilink(':' . $id, null, $highlight);
-
-            $resultHeader = [$resultLink];
-
-
-            $restrictQueryToNSLink = $this->restrictQueryToNSLink(getNS($id));
-            if ($restrictQueryToNSLink) {
-                $resultHeader[] = $restrictQueryToNSLink;
-            }
-
-            $resultBody = [];
-            $mtime = filemtime(wikiFN($id));
-            $lastMod = '<span class="lastmod">' . $lang['lastmod'] . '</span> ';
-            $lastMod .= '<time datetime="' . date_iso8601($mtime) . '" title="'.dformat($mtime).'">' . dformat($mtime, '%f') . '</time>';
-            $resultBody['meta'] = $lastMod;
-            if ($cnt !== 0) {
-                $num++;
-                $hits = '<span class="hits">' . $cnt . ' ' . $lang['hits'] . '</span>, ';
-                $resultBody['meta'] = $hits . $resultBody['meta'];
-                if ($num <= FT_SNIPPET_NUMBER) { // create snippets for the first number of matches only
-                    $resultBody['snippet'] = ft_snippet($id, $highlight);
-                }
-            }
-
-            $eventData = [
-                'resultHeader' => $resultHeader,
-                'resultBody' => $resultBody,
-                'page' => $id,
-                'position' => $position,
-            ];
-            trigger_event('SEARCH_RESULT_FULLPAGE', $eventData);
-            $html .= '<div class="search_fullpage_result">';
-            $html .= '<dt>' . implode(' ', $eventData['resultHeader']) . '</dt>';
-            foreach ($eventData['resultBody'] as $class => $htmlContent) {
-                $html .= "<dd class=\"$class\">$htmlContent</dd>";
-            }
-            $html .= '</div>';
-        }
-        $html .= '</dl>';
-
-        $html .= '</div>';
-
-        return $html;
-    }
-
-    /**
-     * create a link to restrict the current query to a namespace
-     *
-     * @param false|string $ns the namespace to which to restrict the query
-     *
-     * @return false|string
-     */
-    protected function restrictQueryToNSLink($ns)
-    {
-        if (!$ns) {
-            return false;
-        }
-        if (!$this->isNamespaceAssistanceAvailable($this->parsedQuery)) {
-            return false;
-        }
-        if (!empty($this->parsedQuery['ns']) && $this->parsedQuery['ns'][0] === $ns) {
-            return false;
-        }
-
-        $name = '@' . $ns;
-        return $this->searchState->withNamespace($ns)->getSearchLink($name);
-    }
-}
diff --git a/wiki/inc/Ui/SearchState.php b/wiki/inc/Ui/SearchState.php
deleted file mode 100644
index eb3f7fa..0000000
--- a/wiki/inc/Ui/SearchState.php
+++ /dev/null
@@ -1,141 +0,0 @@
-<?php
-
-namespace dokuwiki\Ui;
-
-class SearchState
-{
-    /**
-     * @var array
-     */
-    protected $parsedQuery = [];
-
-    /**
-     * SearchState constructor.
-     *
-     * @param array $parsedQuery
-     */
-    public function __construct(array $parsedQuery)
-    {
-        global $INPUT;
-
-        $this->parsedQuery = $parsedQuery;
-        if (!isset($parsedQuery['after'])) {
-            $this->parsedQuery['after'] = $INPUT->str('min');
-        }
-        if (!isset($parsedQuery['before'])) {
-            $this->parsedQuery['before'] = $INPUT->str('max');
-        }
-        if (!isset($parsedQuery['sort'])) {
-            $this->parsedQuery['sort'] = $INPUT->str('srt');
-        }
-    }
-
-    /**
-     * Get a search state for the current search limited to a new namespace
-     *
-     * @param string $ns the namespace to which to limit the search, falsy to remove the limitation
-     * @param array  $notns
-     *
-     * @return SearchState
-     */
-    public function withNamespace($ns, array $notns = [])
-    {
-        $parsedQuery = $this->parsedQuery;
-        $parsedQuery['ns'] = $ns ? [$ns] : [];
-        $parsedQuery['notns'] = $notns;
-
-        return new SearchState($parsedQuery);
-    }
-
-    /**
-     * Get a search state for the current search with new search fragments and optionally phrases
-     *
-     * @param array $and
-     * @param array $not
-     * @param array $phrases
-     *
-     * @return SearchState
-     */
-    public function withFragments(array $and, array $not, array $phrases = [])
-    {
-        $parsedQuery = $this->parsedQuery;
-        $parsedQuery['and'] = $and;
-        $parsedQuery['not'] = $not;
-        $parsedQuery['phrases'] = $phrases;
-
-        return new SearchState($parsedQuery);
-    }
-
-    /**
-     * Get a search state for the current search with with adjusted time limitations
-     *
-     * @param $after
-     * @param $before
-     *
-     * @return SearchState
-     */
-    public function withTimeLimitations($after, $before)
-    {
-        $parsedQuery = $this->parsedQuery;
-        $parsedQuery['after'] = $after;
-        $parsedQuery['before'] = $before;
-
-        return new SearchState($parsedQuery);
-    }
-
-    /**
-     * Get a search state for the current search with adjusted sort preference
-     *
-     * @param $sort
-     *
-     * @return SearchState
-     */
-    public function withSorting($sort)
-    {
-        $parsedQuery = $this->parsedQuery;
-        $parsedQuery['sort'] = $sort;
-
-        return new SearchState($parsedQuery);
-    }
-
-    /**
-     * Get a link that represents the current search state
-     *
-     * Note that this represents only a simplified version of the search state.
-     * Grouping with braces and "OR" conditions are not supported.
-     *
-     * @param $label
-     *
-     * @return string
-     */
-    public function getSearchLink($label)
-    {
-        global $ID, $conf;
-        $parsedQuery = $this->parsedQuery;
-
-        $tagAttributes = [
-            'target' => $conf['target']['wiki'],
-        ];
-
-        $newQuery = ft_queryUnparser_simple(
-            $parsedQuery['and'],
-            $parsedQuery['not'],
-            $parsedQuery['phrases'],
-            $parsedQuery['ns'],
-            $parsedQuery['notns']
-        );
-        $hrefAttributes = ['do' => 'search', 'sf' => '1', 'q' => $newQuery];
-        if ($parsedQuery['after']) {
-            $hrefAttributes['min'] = $parsedQuery['after'];
-        }
-        if ($parsedQuery['before']) {
-            $hrefAttributes['max'] = $parsedQuery['before'];
-        }
-        if ($parsedQuery['sort']) {
-            $hrefAttributes['srt'] = $parsedQuery['sort'];
-        }
-
-        $href = wl($ID, $hrefAttributes, false, '&');
-        return "<a href='$href' " . buildAttributes($tagAttributes, true) . ">$label</a>";
-    }
-}
diff --git a/wiki/inc/Ui/Ui.php b/wiki/inc/Ui/Ui.php
deleted file mode 100644
index 8aac0de..0000000
--- a/wiki/inc/Ui/Ui.php
+++ /dev/null
@@ -1,20 +0,0 @@
-<?php
-namespace dokuwiki\Ui;
-
-/**
- * Class Ui
- *
- * Abstract base class for all DokuWiki screens
- *
- * @package dokuwiki\Ui
- */
-abstract class Ui {
-
-    /**
-     * Display the UI element
-     *
-     * @return void
-     */
-    abstract public function show();
-
-}
diff --git a/wiki/inc/actions.php b/wiki/inc/actions.php
deleted file mode 100644
index 9ba8878..0000000
--- a/wiki/inc/actions.php
+++ /dev/null
@@ -1,64 +0,0 @@
-<?php
-/**
- * DokuWiki Actions
- *
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * @author     Andreas Gohr <andi@splitbrain.org>
- */
-
-if(!defined('DOKU_INC')) die('meh.');
-
-/**
- * All action processing starts here
- */
-function act_dispatch(){
-    // always initialize on first dispatch (test request may dispatch mutliple times on one request)
-    $router = \dokuwiki\ActionRouter::getInstance(true);
-
-    $headers = array('Content-Type: text/html; charset=utf-8');
-    trigger_event('ACTION_HEADERS_SEND',$headers,'act_sendheaders');
-
-    // clear internal variables
-    unset($router);
-    unset($headers);
-    // make all globals available to the template
-    extract($GLOBALS);
-
-    include(template('main.php'));
-    // output for the commands is now handled in inc/templates.php
-    // in function tpl_content()
-}
-
-/**
- * Send the given headers using header()
- *
- * @param array $headers The headers that shall be sent
- */
-function act_sendheaders($headers) {
-    foreach ($headers as $hdr) header($hdr);
-}
-
-/**
- * Sanitize the action command
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- *
- * @param array|string $act
- * @return string
- */
-function act_clean($act){
-    // check if the action was given as array key
-    if(is_array($act)){
-        list($act) = array_keys($act);
-    }
-
-    //remove all bad chars
-    $act = strtolower($act);
-    $act = preg_replace('/[^1-9a-z_]+/','',$act);
-
-    if($act == 'export_html') $act = 'export_xhtml';
-    if($act == 'export_htmlbody') $act = 'export_xhtmlbody';
-
-    if($act === '') $act = 'show';
-    return $act;
-}
diff --git a/wiki/inc/auth.php b/wiki/inc/auth.php
deleted file mode 100644
index e1d7a64..0000000
--- a/wiki/inc/auth.php
+++ /dev/null
@@ -1,1267 +0,0 @@
-<?php
-/**
- * Authentication library
- *
- * Including this file will automatically try to login
- * a user by calling auth_login()
- *
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * @author     Andreas Gohr <andi@splitbrain.org>
- */
-
-if(!defined('DOKU_INC')) die('meh.');
-
-// some ACL level defines
-define('AUTH_NONE', 0);
-define('AUTH_READ', 1);
-define('AUTH_EDIT', 2);
-define('AUTH_CREATE', 4);
-define('AUTH_UPLOAD', 8);
-define('AUTH_DELETE', 16);
-define('AUTH_ADMIN', 255);
-
-/**
- * Initialize the auth system.
- *
- * This function is automatically called at the end of init.php
- *
- * This used to be the main() of the auth.php
- *
- * @todo backend loading maybe should be handled by the class autoloader
- * @todo maybe split into multiple functions at the XXX marked positions
- * @triggers AUTH_LOGIN_CHECK
- * @return bool
- */
-function auth_setup() {
-    global $conf;
-    /* @var DokuWiki_Auth_Plugin $auth */
-    global $auth;
-    /* @var Input $INPUT */
-    global $INPUT;
-    global $AUTH_ACL;
-    global $lang;
-    /* @var Doku_Plugin_Controller $plugin_controller */
-    global $plugin_controller;
-    $AUTH_ACL = array();
-
-    if(!$conf['useacl']) return false;
-
-    // try to load auth backend from plugins
-    foreach ($plugin_controller->getList('auth') as $plugin) {
-        if ($conf['authtype'] === $plugin) {
-            $auth = $plugin_controller->load('auth', $plugin);
-            break;
-        }
-    }
-
-    if(!isset($auth) || !$auth){
-        msg($lang['authtempfail'], -1);
-        return false;
-    }
-
-    if ($auth->success == false) {
-        // degrade to unauthenticated user
-        unset($auth);
-        auth_logoff();
-        msg($lang['authtempfail'], -1);
-        return false;
-    }
-
-    // do the login either by cookie or provided credentials XXX
-    $INPUT->set('http_credentials', false);
-    if(!$conf['rememberme']) $INPUT->set('r', false);
-
-    // handle renamed HTTP_AUTHORIZATION variable (can happen when a fix like
-    // the one presented at
-    // http://www.besthostratings.com/articles/http-auth-php-cgi.html is used
-    // for enabling HTTP authentication with CGI/SuExec)
-    if(isset($_SERVER['REDIRECT_HTTP_AUTHORIZATION']))
-        $_SERVER['HTTP_AUTHORIZATION'] = $_SERVER['REDIRECT_HTTP_AUTHORIZATION'];
-    // streamline HTTP auth credentials (IIS/rewrite -> mod_php)
-    if(isset($_SERVER['HTTP_AUTHORIZATION'])) {
-        list($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']) =
-            explode(':', base64_decode(substr($_SERVER['HTTP_AUTHORIZATION'], 6)));
-    }
-
-    // if no credentials were given try to use HTTP auth (for SSO)
-    if(!$INPUT->str('u') && empty($_COOKIE[DOKU_COOKIE]) && !empty($_SERVER['PHP_AUTH_USER'])) {
-        $INPUT->set('u', $_SERVER['PHP_AUTH_USER']);
-        $INPUT->set('p', $_SERVER['PHP_AUTH_PW']);
-        $INPUT->set('http_credentials', true);
-    }
-
-    // apply cleaning (auth specific user names, remove control chars)
-    if (true === $auth->success) {
-        $INPUT->set('u', $auth->cleanUser(stripctl($INPUT->str('u'))));
-        $INPUT->set('p', stripctl($INPUT->str('p')));
-    }
-
-    if(!is_null($auth) && $auth->canDo('external')) {
-        // external trust mechanism in place
-        $auth->trustExternal($INPUT->str('u'), $INPUT->str('p'), $INPUT->bool('r'));
-    } else {
-        $evdata = array(
-            'user'     => $INPUT->str('u'),
-            'password' => $INPUT->str('p'),
-            'sticky'   => $INPUT->bool('r'),
-            'silent'   => $INPUT->bool('http_credentials')
-        );
-        trigger_event('AUTH_LOGIN_CHECK', $evdata, 'auth_login_wrapper');
-    }
-
-    //load ACL into a global array XXX
-    $AUTH_ACL = auth_loadACL();
-
-    return true;
-}
-
-/**
- * Loads the ACL setup and handle user wildcards
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- *
- * @return array
- */
-function auth_loadACL() {
-    global $config_cascade;
-    global $USERINFO;
-    /* @var Input $INPUT */
-    global $INPUT;
-
-    if(!is_readable($config_cascade['acl']['default'])) return array();
-
-    $acl = file($config_cascade['acl']['default']);
-
-    $out = array();
-    foreach($acl as $line) {
-        $line = trim($line);
-        if(empty($line) || ($line{0} == '#')) continue; // skip blank lines & comments
-        list($id,$rest) = preg_split('/[ \t]+/',$line,2);
-
-        // substitute user wildcard first (its 1:1)
-        if(strstr($line, '%USER%')){
-            // if user is not logged in, this ACL line is meaningless - skip it
-            if (!$INPUT->server->has('REMOTE_USER')) continue;
-
-            $id   = str_replace('%USER%',cleanID($INPUT->server->str('REMOTE_USER')),$id);
-            $rest = str_replace('%USER%',auth_nameencode($INPUT->server->str('REMOTE_USER')),$rest);
-        }
-
-        // substitute group wildcard (its 1:m)
-        if(strstr($line, '%GROUP%')){
-            // if user is not logged in, grps is empty, no output will be added (i.e. skipped)
-            foreach((array) $USERINFO['grps'] as $grp){
-                $nid   = str_replace('%GROUP%',cleanID($grp),$id);
-                $nrest = str_replace('%GROUP%','@'.auth_nameencode($grp),$rest);
-                $out[] = "$nid\t$nrest";
-            }
-        } else {
-            $out[] = "$id\t$rest";
-        }
-    }
-
-    return $out;
-}
-
-/**
- * Event hook callback for AUTH_LOGIN_CHECK
- *
- * @param array $evdata
- * @return bool
- */
-function auth_login_wrapper($evdata) {
-    return auth_login(
-        $evdata['user'],
-        $evdata['password'],
-        $evdata['sticky'],
-        $evdata['silent']
-    );
-}
-
-/**
- * This tries to login the user based on the sent auth credentials
- *
- * The authentication works like this: if a username was given
- * a new login is assumed and user/password are checked. If they
- * are correct the password is encrypted with blowfish and stored
- * together with the username in a cookie - the same info is stored
- * in the session, too. Additonally a browserID is stored in the
- * session.
- *
- * If no username was given the cookie is checked: if the username,
- * crypted password and browserID match between session and cookie
- * no further testing is done and the user is accepted
- *
- * If a cookie was found but no session info was availabe the
- * blowfish encrypted password from the cookie is decrypted and
- * together with username rechecked by calling this function again.
- *
- * On a successful login $_SERVER[REMOTE_USER] and $USERINFO
- * are set.
- *
- * @author  Andreas Gohr <andi@splitbrain.org>
- *
- * @param   string  $user    Username
- * @param   string  $pass    Cleartext Password
- * @param   bool    $sticky  Cookie should not expire
- * @param   bool    $silent  Don't show error on bad auth
- * @return  bool             true on successful auth
- */
-function auth_login($user, $pass, $sticky = false, $silent = false) {
-    global $USERINFO;
-    global $conf;
-    global $lang;
-    /* @var DokuWiki_Auth_Plugin $auth */
-    global $auth;
-    /* @var Input $INPUT */
-    global $INPUT;
-
-    $sticky ? $sticky = true : $sticky = false; //sanity check
-
-    if(!$auth) return false;
-
-    if(!empty($user)) {
-        //usual login
-        if(!empty($pass) && $auth->checkPass($user, $pass)) {
-            // make logininfo globally available
-            $INPUT->server->set('REMOTE_USER', $user);
-            $secret                 = auth_cookiesalt(!$sticky, true); //bind non-sticky to session
-            auth_setCookie($user, auth_encrypt($pass, $secret), $sticky);
-            return true;
-        } else {
-            //invalid credentials - log off
-            if(!$silent) {
-                http_status(403, 'Login failed');
-                msg($lang['badlogin'], -1);
-            }
-            auth_logoff();
-            return false;
-        }
-    } else {
-        // read cookie information
-        list($user, $sticky, $pass) = auth_getCookie();
-        if($user && $pass) {
-            // we got a cookie - see if we can trust it
-
-            // get session info
-            $session = $_SESSION[DOKU_COOKIE]['auth'];
-            if(isset($session) &&
-                $auth->useSessionCache($user) &&
-                ($session['time'] >= time() - $conf['auth_security_timeout']) &&
-                ($session['user'] == $user) &&
-                ($session['pass'] == sha1($pass)) && //still crypted
-                ($session['buid'] == auth_browseruid())
-            ) {
-
-                // he has session, cookie and browser right - let him in
-                $INPUT->server->set('REMOTE_USER', $user);
-                $USERINFO               = $session['info']; //FIXME move all references to session
-                return true;
-            }
-            // no we don't trust it yet - recheck pass but silent
-            $secret = auth_cookiesalt(!$sticky, true); //bind non-sticky to session
-            $pass   = auth_decrypt($pass, $secret);
-            return auth_login($user, $pass, $sticky, true);
-        }
-    }
-    //just to be sure
-    auth_logoff(true);
-    return false;
-}
-
-/**
- * Builds a pseudo UID from browser and IP data
- *
- * This is neither unique nor unfakable - still it adds some
- * security. Using the first part of the IP makes sure
- * proxy farms like AOLs are still okay.
- *
- * @author  Andreas Gohr <andi@splitbrain.org>
- *
- * @return  string  a MD5 sum of various browser headers
- */
-function auth_browseruid() {
-    /* @var Input $INPUT */
-    global $INPUT;
-
-    $ip  = clientIP(true);
-    $uid = '';
-    $uid .= $INPUT->server->str('HTTP_USER_AGENT');
-    $uid .= $INPUT->server->str('HTTP_ACCEPT_CHARSET');
-    $uid .= substr($ip, 0, strpos($ip, '.'));
-    $uid = strtolower($uid);
-    return md5($uid);
-}
-
-/**
- * Creates a random key to encrypt the password in cookies
- *
- * This function tries to read the password for encrypting
- * cookies from $conf['metadir'].'/_htcookiesalt'
- * if no such file is found a random key is created and
- * and stored in this file.
- *
- * @author  Andreas Gohr <andi@splitbrain.org>
- *
- * @param   bool $addsession if true, the sessionid is added to the salt
- * @param   bool $secure     if security is more important than keeping the old value
- * @return  string
- */
-function auth_cookiesalt($addsession = false, $secure = false) {
-    if (defined('SIMPLE_TEST')) {
-        return 'test';
-    }
-    global $conf;
-    $file = $conf['metadir'].'/_htcookiesalt';
-    if ($secure || !file_exists($file)) {
-        $file = $conf['metadir'].'/_htcookiesalt2';
-    }
-    $salt = io_readFile($file);
-    if(empty($salt)) {
-        $salt = bin2hex(auth_randombytes(64));
-        io_saveFile($file, $salt);
-    }
-    if($addsession) {
-        $salt .= session_id();
-    }
-    return $salt;
-}
-
-/**
- * Return cryptographically secure random bytes.
- *
- * @author Niklas Keller <me@kelunik.com>
- *
- * @param int $length number of bytes
- * @return string cryptographically secure random bytes
- */
-function auth_randombytes($length) {
-    return random_bytes($length);
-}
-
-/**
- * Cryptographically secure random number generator.
- *
- * @author Niklas Keller <me@kelunik.com>
- *
- * @param int $min
- * @param int $max
- * @return int
- */
-function auth_random($min, $max) {
-    return random_int($min, $max);
-}
-
-/**
- * Encrypt data using the given secret using AES
- *
- * The mode is CBC with a random initialization vector, the key is derived
- * using pbkdf2.
- *
- * @param string $data   The data that shall be encrypted
- * @param string $secret The secret/password that shall be used
- * @return string The ciphertext
- */
-function auth_encrypt($data, $secret) {
-    $iv     = auth_randombytes(16);
-    $cipher = new \phpseclib\Crypt\AES();
-    $cipher->setPassword($secret);
-
-    /*
-    this uses the encrypted IV as IV as suggested in
-    http://csrc.nist.gov/publications/nistpubs/800-38a/sp800-38a.pdf, Appendix C
-    for unique but necessarily random IVs. The resulting ciphertext is
-    compatible to ciphertext that was created using a "normal" IV.
-    */
-    return $cipher->encrypt($iv.$data);
-}
-
-/**
- * Decrypt the given AES ciphertext
- *
- * The mode is CBC, the key is derived using pbkdf2
- *
- * @param string $ciphertext The encrypted data
- * @param string $secret     The secret/password that shall be used
- * @return string The decrypted data
- */
-function auth_decrypt($ciphertext, $secret) {
-    $iv     = substr($ciphertext, 0, 16);
-    $cipher = new \phpseclib\Crypt\AES();
-    $cipher->setPassword($secret);
-    $cipher->setIV($iv);
-
-    return $cipher->decrypt(substr($ciphertext, 16));
-}
-
-/**
- * Log out the current user
- *
- * This clears all authentication data and thus log the user
- * off. It also clears session data.
- *
- * @author  Andreas Gohr <andi@splitbrain.org>
- *
- * @param bool $keepbc - when true, the breadcrumb data is not cleared
- */
-function auth_logoff($keepbc = false) {
-    global $conf;
-    global $USERINFO;
-    /* @var DokuWiki_Auth_Plugin $auth */
-    global $auth;
-    /* @var Input $INPUT */
-    global $INPUT;
-
-    // make sure the session is writable (it usually is)
-    @session_start();
-
-    if(isset($_SESSION[DOKU_COOKIE]['auth']['user']))
-        unset($_SESSION[DOKU_COOKIE]['auth']['user']);
-    if(isset($_SESSION[DOKU_COOKIE]['auth']['pass']))
-        unset($_SESSION[DOKU_COOKIE]['auth']['pass']);
-    if(isset($_SESSION[DOKU_COOKIE]['auth']['info']))
-        unset($_SESSION[DOKU_COOKIE]['auth']['info']);
-    if(!$keepbc && isset($_SESSION[DOKU_COOKIE]['bc']))
-        unset($_SESSION[DOKU_COOKIE]['bc']);
-    $INPUT->server->remove('REMOTE_USER');
-    $USERINFO = null; //FIXME
-
-    $cookieDir = empty($conf['cookiedir']) ? DOKU_REL : $conf['cookiedir'];
-    setcookie(DOKU_COOKIE, '', time() - 600000, $cookieDir, '', ($conf['securecookie'] && is_ssl()), true);
-
-    if($auth) $auth->logOff();
-}
-
-/**
- * Check if a user is a manager
- *
- * Should usually be called without any parameters to check the current
- * user.
- *
- * The info is available through $INFO['ismanager'], too
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- * @see    auth_isadmin
- *
- * @param  string $user       Username
- * @param  array  $groups     List of groups the user is in
- * @param  bool   $adminonly  when true checks if user is admin
- * @return bool
- */
-function auth_ismanager($user = null, $groups = null, $adminonly = false) {
-    global $conf;
-    global $USERINFO;
-    /* @var DokuWiki_Auth_Plugin $auth */
-    global $auth;
-    /* @var Input $INPUT */
-    global $INPUT;
-
-
-    if(!$auth) return false;
-    if(is_null($user)) {
-        if(!$INPUT->server->has('REMOTE_USER')) {
-            return false;
-        } else {
-            $user = $INPUT->server->str('REMOTE_USER');
-        }
-    }
-    if(is_null($groups)) {
-        $groups = (array) $USERINFO['grps'];
-    }
-
-    // check superuser match
-    if(auth_isMember($conf['superuser'], $user, $groups)) return true;
-    if($adminonly) return false;
-    // check managers
-    if(auth_isMember($conf['manager'], $user, $groups)) return true;
-
-    return false;
-}
-
-/**
- * Check if a user is admin
- *
- * Alias to auth_ismanager with adminonly=true
- *
- * The info is available through $INFO['isadmin'], too
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- * @see auth_ismanager()
- *
- * @param  string $user       Username
- * @param  array  $groups     List of groups the user is in
- * @return bool
- */
-function auth_isadmin($user = null, $groups = null) {
-    return auth_ismanager($user, $groups, true);
-}
-
-/**
- * Match a user and his groups against a comma separated list of
- * users and groups to determine membership status
- *
- * Note: all input should NOT be nameencoded.
- *
- * @param string $memberlist commaseparated list of allowed users and groups
- * @param string $user       user to match against
- * @param array  $groups     groups the user is member of
- * @return bool       true for membership acknowledged
- */
-function auth_isMember($memberlist, $user, array $groups) {
-    /* @var DokuWiki_Auth_Plugin $auth */
-    global $auth;
-    if(!$auth) return false;
-
-    // clean user and groups
-    if(!$auth->isCaseSensitive()) {
-        $user   = utf8_strtolower($user);
-        $groups = array_map('utf8_strtolower', $groups);
-    }
-    $user   = $auth->cleanUser($user);
-    $groups = array_map(array($auth, 'cleanGroup'), $groups);
-
-    // extract the memberlist
-    $members = explode(',', $memberlist);
-    $members = array_map('trim', $members);
-    $members = array_unique($members);
-    $members = array_filter($members);
-
-    // compare cleaned values
-    foreach($members as $member) {
-        if($member == '@ALL' ) return true;
-        if(!$auth->isCaseSensitive()) $member = utf8_strtolower($member);
-        if($member[0] == '@') {
-            $member = $auth->cleanGroup(substr($member, 1));
-            if(in_array($member, $groups)) return true;
-        } else {
-            $member = $auth->cleanUser($member);
-            if($member == $user) return true;
-        }
-    }
-
-    // still here? not a member!
-    return false;
-}
-
-/**
- * Convinience function for auth_aclcheck()
- *
- * This checks the permissions for the current user
- *
- * @author  Andreas Gohr <andi@splitbrain.org>
- *
- * @param  string  $id  page ID (needs to be resolved and cleaned)
- * @return int          permission level
- */
-function auth_quickaclcheck($id) {
-    global $conf;
-    global $USERINFO;
-    /* @var Input $INPUT */
-    global $INPUT;
-    # if no ACL is used always return upload rights
-    if(!$conf['useacl']) return AUTH_UPLOAD;
-    return auth_aclcheck($id, $INPUT->server->str('REMOTE_USER'), $USERINFO['grps']);
-}
-
-/**
- * Returns the maximum rights a user has for the given ID or its namespace
- *
- * @author  Andreas Gohr <andi@splitbrain.org>
- *
- * @triggers AUTH_ACL_CHECK
- * @param  string       $id     page ID (needs to be resolved and cleaned)
- * @param  string       $user   Username
- * @param  array|null   $groups Array of groups the user is in
- * @return int             permission level
- */
-function auth_aclcheck($id, $user, $groups) {
-    $data = array(
-        'id'     => $id,
-        'user'   => $user,
-        'groups' => $groups
-    );
-
-    return trigger_event('AUTH_ACL_CHECK', $data, 'auth_aclcheck_cb');
-}
-
-/**
- * default ACL check method
- *
- * DO NOT CALL DIRECTLY, use auth_aclcheck() instead
- *
- * @author  Andreas Gohr <andi@splitbrain.org>
- *
- * @param  array $data event data
- * @return int   permission level
- */
-function auth_aclcheck_cb($data) {
-    $id     =& $data['id'];
-    $user   =& $data['user'];
-    $groups =& $data['groups'];
-
-    global $conf;
-    global $AUTH_ACL;
-    /* @var DokuWiki_Auth_Plugin $auth */
-    global $auth;
-
-    // if no ACL is used always return upload rights
-    if(!$conf['useacl']) return AUTH_UPLOAD;
-    if(!$auth) return AUTH_NONE;
-
-    //make sure groups is an array
-    if(!is_array($groups)) $groups = array();
-
-    //if user is superuser or in superusergroup return 255 (acl_admin)
-    if(auth_isadmin($user, $groups)) {
-        return AUTH_ADMIN;
-    }
-
-    if(!$auth->isCaseSensitive()) {
-        $user   = utf8_strtolower($user);
-        $groups = array_map('utf8_strtolower', $groups);
-    }
-    $user   = auth_nameencode($auth->cleanUser($user));
-    $groups = array_map(array($auth, 'cleanGroup'), (array) $groups);
-
-    //prepend groups with @ and nameencode
-    foreach($groups as &$group) {
-        $group = '@'.auth_nameencode($group);
-    }
-
-    $ns   = getNS($id);
-    $perm = -1;
-
-    //add ALL group
-    $groups[] = '@ALL';
-
-    //add User
-    if($user) $groups[] = $user;
-
-    //check exact match first
-    $matches = preg_grep('/^'.preg_quote($id, '/').'[ \t]+([^ \t]+)[ \t]+/', $AUTH_ACL);
-    if(count($matches)) {
-        foreach($matches as $match) {
-            $match = preg_replace('/#.*$/', '', $match); //ignore comments
-            $acl   = preg_split('/[ \t]+/', $match);
-            if(!$auth->isCaseSensitive() && $acl[1] !== '@ALL') {
-                $acl[1] = utf8_strtolower($acl[1]);
-            }
-            if(!in_array($acl[1], $groups)) {
-                continue;
-            }
-            if($acl[2] > AUTH_DELETE) $acl[2] = AUTH_DELETE; //no admins in the ACL!
-            if($acl[2] > $perm) {
-                $perm = $acl[2];
-            }
-        }
-        if($perm > -1) {
-            //we had a match - return it
-            return (int) $perm;
-        }
-    }
-
-    //still here? do the namespace checks
-    if($ns) {
-        $path = $ns.':*';
-    } else {
-        $path = '*'; //root document
-    }
-
-    do {
-        $matches = preg_grep('/^'.preg_quote($path, '/').'[ \t]+([^ \t]+)[ \t]+/', $AUTH_ACL);
-        if(count($matches)) {
-            foreach($matches as $match) {
-                $match = preg_replace('/#.*$/', '', $match); //ignore comments
-                $acl   = preg_split('/[ \t]+/', $match);
-                if(!$auth->isCaseSensitive() && $acl[1] !== '@ALL') {
-                    $acl[1] = utf8_strtolower($acl[1]);
-                }
-                if(!in_array($acl[1], $groups)) {
-                    continue;
-                }
-                if($acl[2] > AUTH_DELETE) $acl[2] = AUTH_DELETE; //no admins in the ACL!
-                if($acl[2] > $perm) {
-                    $perm = $acl[2];
-                }
-            }
-            //we had a match - return it
-            if($perm != -1) {
-                return (int) $perm;
-            }
-        }
-        //get next higher namespace
-        $ns = getNS($ns);
-
-        if($path != '*') {
-            $path = $ns.':*';
-            if($path == ':*') $path = '*';
-        } else {
-            //we did this already
-            //looks like there is something wrong with the ACL
-            //break here
-            msg('No ACL setup yet! Denying access to everyone.');
-            return AUTH_NONE;
-        }
-    } while(1); //this should never loop endless
-    return AUTH_NONE;
-}
-
-/**
- * Encode ASCII special chars
- *
- * Some auth backends allow special chars in their user and groupnames
- * The special chars are encoded with this function. Only ASCII chars
- * are encoded UTF-8 multibyte are left as is (different from usual
- * urlencoding!).
- *
- * Decoding can be done with rawurldecode
- *
- * @author Andreas Gohr <gohr@cosmocode.de>
- * @see rawurldecode()
- *
- * @param string $name
- * @param bool $skip_group
- * @return string
- */
-function auth_nameencode($name, $skip_group = false) {
-    global $cache_authname;
-    $cache =& $cache_authname;
-    $name  = (string) $name;
-
-    // never encode wildcard FS#1955
-    if($name == '%USER%') return $name;
-    if($name == '%GROUP%') return $name;
-
-    if(!isset($cache[$name][$skip_group])) {
-        if($skip_group && $name{0} == '@') {
-            $cache[$name][$skip_group] = '@'.preg_replace_callback(
-                '/([\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f])/',
-                'auth_nameencode_callback', substr($name, 1)
-            );
-        } else {
-            $cache[$name][$skip_group] = preg_replace_callback(
-                '/([\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f])/',
-                'auth_nameencode_callback', $name
-            );
-        }
-    }
-
-    return $cache[$name][$skip_group];
-}
-
-/**
- * callback encodes the matches
- *
- * @param array $matches first complete match, next matching subpatterms
- * @return string
- */
-function auth_nameencode_callback($matches) {
-    return '%'.dechex(ord(substr($matches[1],-1)));
-}
-
-/**
- * Create a pronouncable password
- *
- * The $foruser variable might be used by plugins to run additional password
- * policy checks, but is not used by the default implementation
- *
- * @author   Andreas Gohr <andi@splitbrain.org>
- * @link     http://www.phpbuilder.com/annotate/message.php3?id=1014451
- * @triggers AUTH_PASSWORD_GENERATE
- *
- * @param  string $foruser username for which the password is generated
- * @return string  pronouncable password
- */
-function auth_pwgen($foruser = '') {
-    $data = array(
-        'password' => '',
-        'foruser'  => $foruser
-    );
-
-    $evt = new Doku_Event('AUTH_PASSWORD_GENERATE', $data);
-    if($evt->advise_before(true)) {
-        $c = 'bcdfghjklmnprstvwz'; //consonants except hard to speak ones
-        $v = 'aeiou'; //vowels
-        $a = $c.$v; //both
-        $s = '!$%&?+*~#-_:.;,'; // specials
-
-        //use thre syllables...
-        for($i = 0; $i < 3; $i++) {
-            $data['password'] .= $c[auth_random(0, strlen($c) - 1)];
-            $data['password'] .= $v[auth_random(0, strlen($v) - 1)];
-            $data['password'] .= $a[auth_random(0, strlen($a) - 1)];
-        }
-        //... and add a nice number and special
-        $data['password'] .= auth_random(10, 99).$s[auth_random(0, strlen($s) - 1)];
-    }
-    $evt->advise_after();
-
-    return $data['password'];
-}
-
-/**
- * Sends a password to the given user
- *
- * @author  Andreas Gohr <andi@splitbrain.org>
- *
- * @param string $user Login name of the user
- * @param string $password The new password in clear text
- * @return bool  true on success
- */
-function auth_sendPassword($user, $password) {
-    global $lang;
-    /* @var DokuWiki_Auth_Plugin $auth */
-    global $auth;
-    if(!$auth) return false;
-
-    $user     = $auth->cleanUser($user);
-    $userinfo = $auth->getUserData($user, $requireGroups = false);
-
-    if(!$userinfo['mail']) return false;
-
-    $text = rawLocale('password');
-    $trep = array(
-        'FULLNAME' => $userinfo['name'],
-        'LOGIN'    => $user,
-        'PASSWORD' => $password
-    );
-
-    $mail = new Mailer();
-    $mail->to($userinfo['name'].' <'.$userinfo['mail'].'>');
-    $mail->subject($lang['regpwmail']);
-    $mail->setBody($text, $trep);
-    return $mail->send();
-}
-
-/**
- * Register a new user
- *
- * This registers a new user - Data is read directly from $_POST
- *
- * @author  Andreas Gohr <andi@splitbrain.org>
- *
- * @return bool  true on success, false on any error
- */
-function register() {
-    global $lang;
-    global $conf;
-    /* @var DokuWiki_Auth_Plugin $auth */
-    global $auth;
-    global $INPUT;
-
-    if(!$INPUT->post->bool('save')) return false;
-    if(!actionOK('register')) return false;
-
-    // gather input
-    $login    = trim($auth->cleanUser($INPUT->post->str('login')));
-    $fullname = trim(preg_replace('/[\x00-\x1f:<>&%,;]+/', '', $INPUT->post->str('fullname')));
-    $email    = trim(preg_replace('/[\x00-\x1f:<>&%,;]+/', '', $INPUT->post->str('email')));
-    $pass     = $INPUT->post->str('pass');
-    $passchk  = $INPUT->post->str('passchk');
-
-    if(empty($login) || empty($fullname) || empty($email)) {
-        msg($lang['regmissing'], -1);
-        return false;
-    }
-
-    if($conf['autopasswd']) {
-        $pass = auth_pwgen($login); // automatically generate password
-    } elseif(empty($pass) || empty($passchk)) {
-        msg($lang['regmissing'], -1); // complain about missing passwords
-        return false;
-    } elseif($pass != $passchk) {
-        msg($lang['regbadpass'], -1); // complain about misspelled passwords
-        return false;
-    }
-
-    //check mail
-    if(!mail_isvalid($email)) {
-        msg($lang['regbadmail'], -1);
-        return false;
-    }
-
-    //okay try to create the user
-    if(!$auth->triggerUserMod('create', array($login, $pass, $fullname, $email))) {
-        msg($lang['regfail'], -1);
-        return false;
-    }
-
-    // send notification about the new user
-    $subscription = new Subscription();
-    $subscription->send_register($login, $fullname, $email);
-
-    // are we done?
-    if(!$conf['autopasswd']) {
-        msg($lang['regsuccess2'], 1);
-        return true;
-    }
-
-    // autogenerated password? then send password to user
-    if(auth_sendPassword($login, $pass)) {
-        msg($lang['regsuccess'], 1);
-        return true;
-    } else {
-        msg($lang['regmailfail'], -1);
-        return false;
-    }
-}
-
-/**
- * Update user profile
- *
- * @author    Christopher Smith <chris@jalakai.co.uk>
- */
-function updateprofile() {
-    global $conf;
-    global $lang;
-    /* @var DokuWiki_Auth_Plugin $auth */
-    global $auth;
-    /* @var Input $INPUT */
-    global $INPUT;
-
-    if(!$INPUT->post->bool('save')) return false;
-    if(!checkSecurityToken()) return false;
-
-    if(!actionOK('profile')) {
-        msg($lang['profna'], -1);
-        return false;
-    }
-
-    $changes         = array();
-    $changes['pass'] = $INPUT->post->str('newpass');
-    $changes['name'] = $INPUT->post->str('fullname');
-    $changes['mail'] = $INPUT->post->str('email');
-
-    // check misspelled passwords
-    if($changes['pass'] != $INPUT->post->str('passchk')) {
-        msg($lang['regbadpass'], -1);
-        return false;
-    }
-
-    // clean fullname and email
-    $changes['name'] = trim(preg_replace('/[\x00-\x1f:<>&%,;]+/', '', $changes['name']));
-    $changes['mail'] = trim(preg_replace('/[\x00-\x1f:<>&%,;]+/', '', $changes['mail']));
-
-    // no empty name and email (except the backend doesn't support them)
-    if((empty($changes['name']) && $auth->canDo('modName')) ||
-        (empty($changes['mail']) && $auth->canDo('modMail'))
-    ) {
-        msg($lang['profnoempty'], -1);
-        return false;
-    }
-    if(!mail_isvalid($changes['mail']) && $auth->canDo('modMail')) {
-        msg($lang['regbadmail'], -1);
-        return false;
-    }
-
-    $changes = array_filter($changes);
-
-    // check for unavailable capabilities
-    if(!$auth->canDo('modName')) unset($changes['name']);
-    if(!$auth->canDo('modMail')) unset($changes['mail']);
-    if(!$auth->canDo('modPass')) unset($changes['pass']);
-
-    // anything to do?
-    if(!count($changes)) {
-        msg($lang['profnochange'], -1);
-        return false;
-    }
-
-    if($conf['profileconfirm']) {
-        if(!$auth->checkPass($INPUT->server->str('REMOTE_USER'), $INPUT->post->str('oldpass'))) {
-            msg($lang['badpassconfirm'], -1);
-            return false;
-        }
-    }
-
-    if(!$auth->triggerUserMod('modify', array($INPUT->server->str('REMOTE_USER'), &$changes))) {
-        msg($lang['proffail'], -1);
-        return false;
-    }
-
-    if($changes['pass']) {
-        // update cookie and session with the changed data
-        list( /*user*/, $sticky, /*pass*/) = auth_getCookie();
-        $pass = auth_encrypt($changes['pass'], auth_cookiesalt(!$sticky, true));
-        auth_setCookie($INPUT->server->str('REMOTE_USER'), $pass, (bool) $sticky);
-    } else {
-        // make sure the session is writable
-        @session_start();
-        // invalidate session cache
-        $_SESSION[DOKU_COOKIE]['auth']['time'] = 0;
-        session_write_close();
-    }
-
-    return true;
-}
-
-/**
- * Delete the current logged-in user
- *
- * @return bool true on success, false on any error
- */
-function auth_deleteprofile(){
-    global $conf;
-    global $lang;
-    /* @var DokuWiki_Auth_Plugin $auth */
-    global $auth;
-    /* @var Input $INPUT */
-    global $INPUT;
-
-    if(!$INPUT->post->bool('delete')) return false;
-    if(!checkSecurityToken()) return false;
-
-    // action prevented or auth module disallows
-    if(!actionOK('profile_delete') || !$auth->canDo('delUser')) {
-        msg($lang['profnodelete'], -1);
-        return false;
-    }
-
-    if(!$INPUT->post->bool('confirm_delete')){
-        msg($lang['profconfdeletemissing'], -1);
-        return false;
-    }
-
-    if($conf['profileconfirm']) {
-        if(!$auth->checkPass($INPUT->server->str('REMOTE_USER'), $INPUT->post->str('oldpass'))) {
-            msg($lang['badpassconfirm'], -1);
-            return false;
-        }
-    }
-
-    $deleted = array();
-    $deleted[] = $INPUT->server->str('REMOTE_USER');
-    if($auth->triggerUserMod('delete', array($deleted))) {
-        // force and immediate logout including removing the sticky cookie
-        auth_logoff();
-        return true;
-    }
-
-    return false;
-}
-
-/**
- * Send a  new password
- *
- * This function handles both phases of the password reset:
- *
- *   - handling the first request of password reset
- *   - validating the password reset auth token
- *
- * @author Benoit Chesneau <benoit@bchesneau.info>
- * @author Chris Smith <chris@jalakai.co.uk>
- * @author Andreas Gohr <andi@splitbrain.org>
- *
- * @return bool true on success, false on any error
- */
-function act_resendpwd() {
-    global $lang;
-    global $conf;
-    /* @var DokuWiki_Auth_Plugin $auth */
-    global $auth;
-    /* @var Input $INPUT */
-    global $INPUT;
-
-    if(!actionOK('resendpwd')) {
-        msg($lang['resendna'], -1);
-        return false;
-    }
-
-    $token = preg_replace('/[^a-f0-9]+/', '', $INPUT->str('pwauth'));
-
-    if($token) {
-        // we're in token phase - get user info from token
-
-        $tfile = $conf['cachedir'].'/'.$token{0}.'/'.$token.'.pwauth';
-        if(!file_exists($tfile)) {
-            msg($lang['resendpwdbadauth'], -1);
-            $INPUT->remove('pwauth');
-            return false;
-        }
-        // token is only valid for 3 days
-        if((time() - filemtime($tfile)) > (3 * 60 * 60 * 24)) {
-            msg($lang['resendpwdbadauth'], -1);
-            $INPUT->remove('pwauth');
-            @unlink($tfile);
-            return false;
-        }
-
-        $user     = io_readfile($tfile);
-        $userinfo = $auth->getUserData($user, $requireGroups = false);
-        if(!$userinfo['mail']) {
-            msg($lang['resendpwdnouser'], -1);
-            return false;
-        }
-
-        if(!$conf['autopasswd']) { // we let the user choose a password
-            $pass = $INPUT->str('pass');
-
-            // password given correctly?
-            if(!$pass) return false;
-            if($pass != $INPUT->str('passchk')) {
-                msg($lang['regbadpass'], -1);
-                return false;
-            }
-
-            // change it
-            if(!$auth->triggerUserMod('modify', array($user, array('pass' => $pass)))) {
-                msg($lang['proffail'], -1);
-                return false;
-            }
-
-        } else { // autogenerate the password and send by mail
-
-            $pass = auth_pwgen($user);
-            if(!$auth->triggerUserMod('modify', array($user, array('pass' => $pass)))) {
-                msg($lang['proffail'], -1);
-                return false;
-            }
-
-            if(auth_sendPassword($user, $pass)) {
-                msg($lang['resendpwdsuccess'], 1);
-            } else {
-                msg($lang['regmailfail'], -1);
-            }
-        }
-
-        @unlink($tfile);
-        return true;
-
-    } else {
-        // we're in request phase
-
-        if(!$INPUT->post->bool('save')) return false;
-
-        if(!$INPUT->post->str('login')) {
-            msg($lang['resendpwdmissing'], -1);
-            return false;
-        } else {
-            $user = trim($auth->cleanUser($INPUT->post->str('login')));
-        }
-
-        $userinfo = $auth->getUserData($user, $requireGroups = false);
-        if(!$userinfo['mail']) {
-            msg($lang['resendpwdnouser'], -1);
-            return false;
-        }
-
-        // generate auth token
-        $token = md5(auth_randombytes(16)); // random secret
-        $tfile = $conf['cachedir'].'/'.$token{0}.'/'.$token.'.pwauth';
-        $url   = wl('', array('do'=> 'resendpwd', 'pwauth'=> $token), true, '&');
-
-        io_saveFile($tfile, $user);
-
-        $text = rawLocale('pwconfirm');
-        $trep = array(
-            'FULLNAME' => $userinfo['name'],
-            'LOGIN'    => $user,
-            'CONFIRM'  => $url
-        );
-
-        $mail = new Mailer();
-        $mail->to($userinfo['name'].' <'.$userinfo['mail'].'>');
-        $mail->subject($lang['regpwmail']);
-        $mail->setBody($text, $trep);
-        if($mail->send()) {
-            msg($lang['resendpwdconfirm'], 1);
-        } else {
-            msg($lang['regmailfail'], -1);
-        }
-        return true;
-    }
-    // never reached
-}
-
-/**
- * Encrypts a password using the given method and salt
- *
- * If the selected method needs a salt and none was given, a random one
- * is chosen.
- *
- * @author  Andreas Gohr <andi@splitbrain.org>
- *
- * @param string $clear The clear text password
- * @param string $method The hashing method
- * @param string $salt A salt, null for random
- * @return  string  The crypted password
- */
-function auth_cryptPassword($clear, $method = '', $salt = null) {
-    global $conf;
-    if(empty($method)) $method = $conf['passcrypt'];
-
-    $pass = new PassHash();
-    $call = 'hash_'.$method;
-
-    if(!method_exists($pass, $call)) {
-        msg("Unsupported crypt method $method", -1);
-        return false;
-    }
-
-    return $pass->$call($clear, $salt);
-}
-
-/**
- * Verifies a cleartext password against a crypted hash
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- *
- * @param  string $clear The clear text password
- * @param  string $crypt The hash to compare with
- * @return bool true if both match
- */
-function auth_verifyPassword($clear, $crypt) {
-    $pass = new PassHash();
-    return $pass->verify_hash($clear, $crypt);
-}
-
-/**
- * Set the authentication cookie and add user identification data to the session
- *
- * @param string  $user       username
- * @param string  $pass       encrypted password
- * @param bool    $sticky     whether or not the cookie will last beyond the session
- * @return bool
- */
-function auth_setCookie($user, $pass, $sticky) {
-    global $conf;
-    /* @var DokuWiki_Auth_Plugin $auth */
-    global $auth;
-    global $USERINFO;
-
-    if(!$auth) return false;
-    $USERINFO = $auth->getUserData($user);
-
-    // set cookie
-    $cookie    = base64_encode($user).'|'.((int) $sticky).'|'.base64_encode($pass);
-    $cookieDir = empty($conf['cookiedir']) ? DOKU_REL : $conf['cookiedir'];
-    $time      = $sticky ? (time() + 60 * 60 * 24 * 365) : 0; //one year
-    setcookie(DOKU_COOKIE, $cookie, $time, $cookieDir, '', ($conf['securecookie'] && is_ssl()), true);
-
-    // set session
-    $_SESSION[DOKU_COOKIE]['auth']['user'] = $user;
-    $_SESSION[DOKU_COOKIE]['auth']['pass'] = sha1($pass);
-    $_SESSION[DOKU_COOKIE]['auth']['buid'] = auth_browseruid();
-    $_SESSION[DOKU_COOKIE]['auth']['info'] = $USERINFO;
-    $_SESSION[DOKU_COOKIE]['auth']['time'] = time();
-
-    return true;
-}
-
-/**
- * Returns the user, (encrypted) password and sticky bit from cookie
- *
- * @returns array
- */
-function auth_getCookie() {
-    if(!isset($_COOKIE[DOKU_COOKIE])) {
-        return array(null, null, null);
-    }
-    list($user, $sticky, $pass) = explode('|', $_COOKIE[DOKU_COOKIE], 3);
-    $sticky = (bool) $sticky;
-    $pass   = base64_decode($pass);
-    $user   = base64_decode($user);
-    return array($user, $sticky, $pass);
-}
-
-//Setup VIM: ex: et ts=2 :
diff --git a/wiki/inc/cache.php b/wiki/inc/cache.php
deleted file mode 100644
index 8589d91..0000000
--- a/wiki/inc/cache.php
+++ /dev/null
@@ -1,337 +0,0 @@
-<?php
-/**
- * Generic class to handle caching
- *
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * @author     Chris Smith <chris@jalakai.co.uk>
- */
-
-if(!defined('DOKU_INC')) die('meh.');
-
-/**
- * Generic handling of caching
- */
-class cache {
-    public $key = '';          // primary identifier for this item
-    public $ext = '';          // file ext for cache data, secondary identifier for this item
-    public $cache = '';        // cache file name
-    public $depends = array(); // array containing cache dependency information,
-                               //   used by _useCache to determine cache validity
-
-    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
-     * @param string $ext file extension
-     */
-    public function __construct($key,$ext) {
-        $this->key = $key;
-        $this->ext = $ext;
-        $this->cache = getCacheName($key,$ext);
-    }
-
-    /**
-     * public method to determine whether the cache can be used
-     *
-     * to assist in centralisation of event triggering and calculation of cache statistics,
-     * don't override this function override _useCache()
-     *
-     * @param  array   $depends   array of cache dependencies, support dependecies:
-     *                            'age'   => max age of the cache in seconds
-     *                            'files' => cache must be younger than mtime of each file
-     *                                       (nb. dependency passes if file doesn't exist)
-     *
-     * @return bool    true if cache can be used, false otherwise
-     */
-    public function useCache($depends=array()) {
-        $this->depends = $depends;
-        $this->_addDependencies();
-
-        if ($this->_event) {
-            return $this->_stats(trigger_event($this->_event, $this, array($this,'_useCache')));
-        } else {
-            return $this->_stats($this->_useCache());
-        }
-    }
-
-    /**
-     * private method containing cache use decision logic
-     *
-     * this function processes the following keys in the depends array
-     *   purge - force a purge on any non empty value
-     *   age   - expire cache if older than age (seconds)
-     *   files - expire cache if any file in this array was updated more recently than the cache
-     *
-     * Note that this function needs to be public as it is used as callback for the event handler
-     *
-     * can be overridden
-     *
-     * @return bool               see useCache()
-     */
-    public function _useCache() {
-
-        if ($this->_nocache) return false;                              // caching turned off
-        if (!empty($this->depends['purge'])) return false;              // purge requested?
-        if (!($this->_time = @filemtime($this->cache))) return false;   // cache exists?
-
-        // cache too old?
-        if (!empty($this->depends['age']) && ((time() - $this->_time) > $this->depends['age'])) return false;
-
-        if (!empty($this->depends['files'])) {
-            foreach ($this->depends['files'] as $file) {
-                if ($this->_time <= @filemtime($file)) return false;         // cache older than files it depends on?
-            }
-        }
-
-        return true;
-    }
-
-    /**
-     * add dependencies to the depends array
-     *
-     * this method should only add dependencies,
-     * it should not remove any existing dependencies and
-     * it should only overwrite a dependency when the new value is more stringent than the old
-     */
-    protected function _addDependencies() {
-        global $INPUT;
-        if ($INPUT->has('purge')) $this->depends['purge'] = true;   // purge requested
-    }
-
-    /**
-     * retrieve the cached data
-     *
-     * @param   bool   $clean   true to clean line endings, false to leave line endings alone
-     * @return  string          cache contents
-     */
-    public function retrieveCache($clean=true) {
-        return io_readFile($this->cache, $clean);
-    }
-
-    /**
-     * cache $data
-     *
-     * @param   string $data   the data to be cached
-     * @return  bool           true on success, false otherwise
-     */
-    public function storeCache($data) {
-        if ($this->_nocache) return false;
-
-        return io_savefile($this->cache, $data);
-    }
-
-    /**
-     * remove any cached data associated with this cache instance
-     */
-    public function removeCache() {
-        @unlink($this->cache);
-    }
-
-    /**
-     * Record cache hits statistics.
-     * (Only when debugging allowed, to reduce overhead.)
-     *
-     * @param    bool   $success   result of this cache use attempt
-     * @return   bool              pass-thru $success value
-     */
-    protected function _stats($success) {
-        global $conf;
-        static $stats = null;
-        static $file;
-
-        if (!$conf['allowdebug']) { return $success; }
-
-        if (is_null($stats)) {
-            $file = $conf['cachedir'].'/cache_stats.txt';
-            $lines = explode("\n",io_readFile($file));
-
-            foreach ($lines as $line) {
-                $i = strpos($line,',');
-                $stats[substr($line,0,$i)] = $line;
-            }
-        }
-
-        if (isset($stats[$this->ext])) {
-            list($ext,$count,$hits) = explode(',',$stats[$this->ext]);
-        } else {
-            $ext = $this->ext;
-            $count = 0;
-            $hits = 0;
-        }
-
-        $count++;
-        if ($success) $hits++;
-        $stats[$this->ext] = "$ext,$count,$hits";
-
-        io_saveFile($file,join("\n",$stats));
-
-        return $success;
-    }
-}
-
-/**
- * Parser caching
- */
-class cache_parser extends cache {
-
-    public $file = '';       // source file for cache
-    public $mode = '';       // input mode (represents the processing the input file will undergo)
-    public $page = '';
-
-    public $_event = 'PARSER_CACHE_USE';
-
-    /**
-     *
-     * @param string $id page id
-     * @param string $file source file for cache
-     * @param string $mode input mode
-     */
-    public function __construct($id, $file, $mode) {
-        if ($id) $this->page = $id;
-        $this->file = $file;
-        $this->mode = $mode;
-
-        parent::__construct($file.$_SERVER['HTTP_HOST'].$_SERVER['SERVER_PORT'],'.'.$mode);
-    }
-
-    /**
-     * method contains cache use decision logic
-     *
-     * @return bool               see useCache()
-     */
-    public function _useCache() {
-
-        if (!file_exists($this->file)) return false;                   // source exists?
-        return parent::_useCache();
-    }
-
-    protected function _addDependencies() {
-
-        // parser cache file dependencies ...
-        $files = array($this->file,                              // ... source
-                DOKU_INC.'inc/parser/parser.php',                // ... parser
-                DOKU_INC.'inc/parser/handler.php',               // ... handler
-                );
-        $files = array_merge($files, getConfigFiles('main'));    // ... wiki settings
-
-        $this->depends['files'] = !empty($this->depends['files']) ? array_merge($files, $this->depends['files']) : $files;
-        parent::_addDependencies();
-    }
-
-}
-
-/**
- * Caching of data of renderer
- */
-class cache_renderer extends cache_parser {
-
-    /**
-     * method contains cache use decision logic
-     *
-     * @return bool               see useCache()
-     */
-    public function _useCache() {
-        global $conf;
-
-        if (!parent::_useCache()) return false;
-
-        if (!isset($this->page)) {
-            return true;
-        }
-
-        if ($this->_time < @filemtime(metaFN($this->page,'.meta'))) return false;         // meta cache older than file it depends on?
-
-        // check current link existence is consistent with cache version
-        // first check the purgefile
-        // - if the cache is more recent than the purgefile we know no links can have been updated
-        if ($this->_time >= @filemtime($conf['cachedir'].'/purgefile')) {
-            return true;
-        }
-
-        // for wiki pages, check metadata dependencies
-        $metadata = p_get_metadata($this->page);
-
-        if (!isset($metadata['relation']['references']) ||
-                empty($metadata['relation']['references'])) {
-            return true;
-        }
-
-        foreach ($metadata['relation']['references'] as $id => $exists) {
-            if ($exists != page_exists($id,'',false)) return false;
-        }
-
-        return true;
-    }
-
-    protected function _addDependencies() {
-        global $conf;
-
-        // default renderer cache file 'age' is dependent on 'cachetime' setting, two special values:
-        //    -1 : do not cache (should not be overridden)
-        //    0  : cache never expires (can be overridden) - no need to set depends['age']
-        if ($conf['cachetime'] == -1) {
-            $this->_nocache = true;
-            return;
-        } elseif ($conf['cachetime'] > 0) {
-            $this->depends['age'] = isset($this->depends['age']) ?
-                min($this->depends['age'],$conf['cachetime']) : $conf['cachetime'];
-        }
-
-        // renderer cache file dependencies ...
-        $files = array(
-                DOKU_INC.'inc/parser/'.$this->mode.'.php',       // ... the renderer
-                );
-
-        // page implies metadata and possibly some other dependencies
-        if (isset($this->page)) {
-
-            $valid = p_get_metadata($this->page, 'date valid');         // for xhtml this will render the metadata if needed
-            if (!empty($valid['age'])) {
-                $this->depends['age'] = isset($this->depends['age']) ?
-                    min($this->depends['age'],$valid['age']) : $valid['age'];
-            }
-        }
-
-        $this->depends['files'] = !empty($this->depends['files']) ? array_merge($files, $this->depends['files']) : $files;
-        parent::_addDependencies();
-    }
-}
-
-/**
- * Caching of parser instructions
- */
-class cache_instructions extends cache_parser {
-
-    /**
-     * @param string $id page id
-     * @param string $file source file for cache
-     */
-    public function __construct($id, $file) {
-        parent::__construct($id, $file, 'i');
-    }
-
-    /**
-     * retrieve the cached data
-     *
-     * @param   bool   $clean   true to clean line endings, false to leave line endings alone
-     * @return  array          cache contents
-     */
-    public function retrieveCache($clean=true) {
-        $contents = io_readFile($this->cache, false);
-        return !empty($contents) ? unserialize($contents) : array();
-    }
-
-    /**
-     * cache $instructions
-     *
-     * @param   array $instructions  the instruction to be cached
-     * @return  bool                  true on success, false otherwise
-     */
-    public function storeCache($instructions) {
-        if ($this->_nocache) return false;
-
-        return io_savefile($this->cache,serialize($instructions));
-    }
-}
diff --git a/wiki/inc/changelog.php b/wiki/inc/changelog.php
deleted file mode 100644
index d77b018..0000000
--- a/wiki/inc/changelog.php
+++ /dev/null
@@ -1,1059 +0,0 @@
-<?php
-/**
- * Changelog handling functions
- *
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * @author     Andreas Gohr <andi@splitbrain.org>
- */
-
-// Constants for known core changelog line types.
-// Use these in place of string literals for more readable code.
-define('DOKU_CHANGE_TYPE_CREATE',       'C');
-define('DOKU_CHANGE_TYPE_EDIT',         'E');
-define('DOKU_CHANGE_TYPE_MINOR_EDIT',   'e');
-define('DOKU_CHANGE_TYPE_DELETE',       'D');
-define('DOKU_CHANGE_TYPE_REVERT',       'R');
-
-/**
- * parses a changelog line into it's components
- *
- * @author Ben Coburn <btcoburn@silicodon.net>
- *
- * @param string $line changelog line
- * @return array|bool parsed line or false
- */
-function parseChangelogLine($line) {
-    $line = rtrim($line, "\n");
-    $tmp = explode("\t", $line);
-    if ($tmp!==false && count($tmp)>1) {
-        $info = array();
-        $info['date']  = (int)$tmp[0]; // unix timestamp
-        $info['ip']    = $tmp[1]; // IPv4 address (127.0.0.1)
-        $info['type']  = $tmp[2]; // log line type
-        $info['id']    = $tmp[3]; // page id
-        $info['user']  = $tmp[4]; // user name
-        $info['sum']   = $tmp[5]; // edit summary (or action reason)
-        $info['extra'] = $tmp[6]; // extra data (varies by line type)
-        if(isset($tmp[7]) && $tmp[7] !== '') { //last item has line-end||
-            $info['sizechange'] = (int) $tmp[7];
-        } else {
-            $info['sizechange'] = null;
-        }
-        return $info;
-    } else {
-        return false;
-    }
-}
-
-/**
- * Add's an entry to the changelog and saves the metadata for the page
- *
- * @param int    $date      Timestamp of the change
- * @param String $id        Name of the affected page
- * @param String $type      Type of the change see DOKU_CHANGE_TYPE_*
- * @param String $summary   Summary of the change
- * @param mixed  $extra     In case of a revert the revision (timestmp) of the reverted page
- * @param array  $flags     Additional flags in a key value array.
- *                             Available flags:
- *                             - ExternalEdit - mark as an external edit.
- * @param null|int $sizechange Change of filesize
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- * @author Esther Brunner <wikidesign@gmail.com>
- * @author Ben Coburn <btcoburn@silicodon.net>
- */
-function addLogEntry($date, $id, $type=DOKU_CHANGE_TYPE_EDIT, $summary='', $extra='', $flags=null, $sizechange = null){
-    global $conf, $INFO;
-    /** @var Input $INPUT */
-    global $INPUT;
-
-    // check for special flags as keys
-    if (!is_array($flags)) { $flags = array(); }
-    $flagExternalEdit = isset($flags['ExternalEdit']);
-
-    $id = cleanid($id);
-    $file = wikiFN($id);
-    $created = @filectime($file);
-    $minor = ($type===DOKU_CHANGE_TYPE_MINOR_EDIT);
-    $wasRemoved = ($type===DOKU_CHANGE_TYPE_DELETE);
-
-    if(!$date) $date = time(); //use current time if none supplied
-    $remote = (!$flagExternalEdit)?clientIP(true):'127.0.0.1';
-    $user   = (!$flagExternalEdit)?$INPUT->server->str('REMOTE_USER'):'';
-    if($sizechange === null) {
-        $sizechange = '';
-    } else {
-        $sizechange = (int) $sizechange;
-    }
-
-    $strip = array("\t", "\n");
-    $logline = array(
-        'date'       => $date,
-        'ip'         => $remote,
-        'type'       => str_replace($strip, '', $type),
-        'id'         => $id,
-        'user'       => $user,
-        'sum'        => utf8_substr(str_replace($strip, '', $summary), 0, 255),
-        'extra'      => str_replace($strip, '', $extra),
-        'sizechange' => $sizechange
-    );
-
-    $wasCreated = ($type===DOKU_CHANGE_TYPE_CREATE);
-    $wasReverted = ($type===DOKU_CHANGE_TYPE_REVERT);
-    // update metadata
-    if (!$wasRemoved) {
-        $oldmeta = p_read_metadata($id);
-        $meta    = array();
-        if ($wasCreated && empty($oldmeta['persistent']['date']['created'])){ // newly created
-            $meta['date']['created'] = $created;
-            if ($user){
-                $meta['creator'] = $INFO['userinfo']['name'];
-                $meta['user']    = $user;
-            }
-        } elseif (($wasCreated || $wasReverted) && !empty($oldmeta['persistent']['date']['created'])) { // re-created / restored
-            $meta['date']['created']  = $oldmeta['persistent']['date']['created'];
-            $meta['date']['modified'] = $created; // use the files ctime here
-            $meta['creator'] = $oldmeta['persistent']['creator'];
-            if ($user) $meta['contributor'][$user] = $INFO['userinfo']['name'];
-        } elseif (!$minor) {   // non-minor modification
-            $meta['date']['modified'] = $date;
-            if ($user) $meta['contributor'][$user] = $INFO['userinfo']['name'];
-        }
-        $meta['last_change'] = $logline;
-        p_set_metadata($id, $meta);
-    }
-
-    // add changelog lines
-    $logline = implode("\t", $logline)."\n";
-    io_saveFile(metaFN($id,'.changes'),$logline,true); //page changelog
-    io_saveFile($conf['changelog'],$logline,true); //global changelog cache
-}
-
-/**
- * Add's an entry to the media changelog
- *
- * @author Michael Hamann <michael@content-space.de>
- * @author Andreas Gohr <andi@splitbrain.org>
- * @author Esther Brunner <wikidesign@gmail.com>
- * @author Ben Coburn <btcoburn@silicodon.net>
- *
- * @param int    $date      Timestamp of the change
- * @param String $id        Name of the affected page
- * @param String $type      Type of the change see DOKU_CHANGE_TYPE_*
- * @param String $summary   Summary of the change
- * @param mixed  $extra     In case of a revert the revision (timestmp) of the reverted page
- * @param array  $flags     Additional flags in a key value array.
- *                             Available flags:
- *                             - (none, so far)
- * @param null|int $sizechange Change of filesize
- */
-function addMediaLogEntry($date, $id, $type=DOKU_CHANGE_TYPE_EDIT, $summary='', $extra='', $flags=null, $sizechange = null){
-    global $conf;
-    /** @var Input $INPUT */
-    global $INPUT;
-
-    $id = cleanid($id);
-
-    if(!$date) $date = time(); //use current time if none supplied
-    $remote = clientIP(true);
-    $user   = $INPUT->server->str('REMOTE_USER');
-    if($sizechange === null) {
-        $sizechange = '';
-    } else {
-        $sizechange = (int) $sizechange;
-    }
-
-    $strip = array("\t", "\n");
-    $logline = array(
-        'date'       => $date,
-        'ip'         => $remote,
-        'type'       => str_replace($strip, '', $type),
-        'id'         => $id,
-        'user'       => $user,
-        'sum'        => utf8_substr(str_replace($strip, '', $summary), 0, 255),
-        'extra'      => str_replace($strip, '', $extra),
-        'sizechange' => $sizechange
-    );
-
-    // add changelog lines
-    $logline = implode("\t", $logline)."\n";
-    io_saveFile($conf['media_changelog'],$logline,true); //global media changelog cache
-    io_saveFile(mediaMetaFN($id,'.changes'),$logline,true); //media file's changelog
-}
-
-/**
- * returns an array of recently changed files using the
- * changelog
- *
- * The following constants can be used to control which changes are
- * included. Add them together as needed.
- *
- * RECENTS_SKIP_DELETED   - don't include deleted pages
- * RECENTS_SKIP_MINORS    - don't include minor changes
- * RECENTS_SKIP_SUBSPACES - don't include subspaces
- * RECENTS_MEDIA_CHANGES  - return media changes instead of page changes
- * RECENTS_MEDIA_PAGES_MIXED  - return both media changes and page changes
- *
- * @param int    $first   number of first entry returned (for paginating
- * @param int    $num     return $num entries
- * @param string $ns      restrict to given namespace
- * @param int    $flags   see above
- * @return array recently changed files
- *
- * @author Ben Coburn <btcoburn@silicodon.net>
- * @author Kate Arzamastseva <pshns@ukr.net>
- */
-function getRecents($first,$num,$ns='',$flags=0){
-    global $conf;
-    $recent = array();
-    $count  = 0;
-
-    if(!$num)
-        return $recent;
-
-    // read all recent changes. (kept short)
-    if ($flags & RECENTS_MEDIA_CHANGES) {
-        $lines = @file($conf['media_changelog']);
-    } else {
-        $lines = @file($conf['changelog']);
-    }
-    $lines_position = count($lines)-1;
-    $media_lines_position = 0;
-    $media_lines = array();
-
-    if ($flags & RECENTS_MEDIA_PAGES_MIXED) {
-        $media_lines = @file($conf['media_changelog']);
-        $media_lines_position = count($media_lines)-1;
-    }
-
-    $seen = array(); // caches seen lines, _handleRecent() skips them
-
-    // handle lines
-    while ($lines_position >= 0 || (($flags & RECENTS_MEDIA_PAGES_MIXED) && $media_lines_position >=0)) {
-        if (empty($rec) && $lines_position >= 0) {
-            $rec = _handleRecent(@$lines[$lines_position], $ns, $flags, $seen);
-            if (!$rec) {
-                $lines_position --;
-                continue;
-            }
-        }
-        if (($flags & RECENTS_MEDIA_PAGES_MIXED) && empty($media_rec) && $media_lines_position >= 0) {
-            $media_rec = _handleRecent(@$media_lines[$media_lines_position], $ns, $flags | RECENTS_MEDIA_CHANGES, $seen);
-            if (!$media_rec) {
-                $media_lines_position --;
-                continue;
-            }
-        }
-        if (($flags & RECENTS_MEDIA_PAGES_MIXED) && @$media_rec['date'] >= @$rec['date']) {
-            $media_lines_position--;
-            $x = $media_rec;
-            $x['media'] = true;
-            $media_rec = false;
-        } else {
-            $lines_position--;
-            $x = $rec;
-            if ($flags & RECENTS_MEDIA_CHANGES) $x['media'] = true;
-            $rec = false;
-        }
-        if(--$first >= 0) continue; // skip first entries
-        $recent[] = $x;
-        $count++;
-        // break when we have enough entries
-        if($count >= $num){ break; }
-    }
-    return $recent;
-}
-
-/**
- * returns an array of files changed since a given time using the
- * changelog
- *
- * The following constants can be used to control which changes are
- * included. Add them together as needed.
- *
- * RECENTS_SKIP_DELETED   - don't include deleted pages
- * RECENTS_SKIP_MINORS    - don't include minor changes
- * RECENTS_SKIP_SUBSPACES - don't include subspaces
- * RECENTS_MEDIA_CHANGES  - return media changes instead of page changes
- *
- * @param int    $from    date of the oldest entry to return
- * @param int    $to      date of the newest entry to return (for pagination, optional)
- * @param string $ns      restrict to given namespace (optional)
- * @param int    $flags   see above (optional)
- * @return array of files
- *
- * @author Michael Hamann <michael@content-space.de>
- * @author Ben Coburn <btcoburn@silicodon.net>
- */
-function getRecentsSince($from,$to=null,$ns='',$flags=0){
-    global $conf;
-    $recent = array();
-
-    if($to && $to < $from)
-        return $recent;
-
-    // read all recent changes. (kept short)
-    if ($flags & RECENTS_MEDIA_CHANGES) {
-        $lines = @file($conf['media_changelog']);
-    } else {
-        $lines = @file($conf['changelog']);
-    }
-    if(!$lines) return $recent;
-
-    // we start searching at the end of the list
-    $lines = array_reverse($lines);
-
-    // handle lines
-    $seen = array(); // caches seen lines, _handleRecent() skips them
-
-    foreach($lines as $line){
-        $rec = _handleRecent($line, $ns, $flags, $seen);
-        if($rec !== false) {
-            if ($rec['date'] >= $from) {
-                if (!$to || $rec['date'] <= $to) {
-                    $recent[] = $rec;
-                }
-            } else {
-                break;
-            }
-        }
-    }
-
-    return array_reverse($recent);
-}
-
-/**
- * Internal function used by getRecents
- *
- * don't call directly
- *
- * @see getRecents()
- * @author Andreas Gohr <andi@splitbrain.org>
- * @author Ben Coburn <btcoburn@silicodon.net>
- *
- * @param string $line   changelog line
- * @param string $ns     restrict to given namespace
- * @param int    $flags  flags to control which changes are included
- * @param array  $seen   listing of seen pages
- * @return array|bool    false or array with info about a change
- */
-function _handleRecent($line,$ns,$flags,&$seen){
-    if(empty($line)) return false;   //skip empty lines
-
-    // split the line into parts
-    $recent = parseChangelogLine($line);
-    if ($recent===false) { return false; }
-
-    // skip seen ones
-    if(isset($seen[$recent['id']])) return false;
-
-    // skip minors
-    if($recent['type']===DOKU_CHANGE_TYPE_MINOR_EDIT && ($flags & RECENTS_SKIP_MINORS)) return false;
-
-    // remember in seen to skip additional sights
-    $seen[$recent['id']] = 1;
-
-    // check if it's a hidden page
-    if(isHiddenPage($recent['id'])) return false;
-
-    // filter namespace
-    if (($ns) && (strpos($recent['id'],$ns.':') !== 0)) return false;
-
-    // exclude subnamespaces
-    if (($flags & RECENTS_SKIP_SUBSPACES) && (getNS($recent['id']) != $ns)) return false;
-
-    // check ACL
-    if ($flags & RECENTS_MEDIA_CHANGES) {
-        $recent['perms'] = auth_quickaclcheck(getNS($recent['id']).':*');
-    } else {
-        $recent['perms'] = auth_quickaclcheck($recent['id']);
-    }
-    if ($recent['perms'] < AUTH_READ) return false;
-
-    // check existance
-    if($flags & RECENTS_SKIP_DELETED){
-        $fn = (($flags & RECENTS_MEDIA_CHANGES) ? mediaFN($recent['id']) : wikiFN($recent['id']));
-        if(!file_exists($fn)) return false;
-    }
-
-    return $recent;
-}
-
-/**
- * Class ChangeLog
- * methods for handling of changelog of pages or media files
- */
-abstract class ChangeLog {
-
-    /** @var string */
-    protected $id;
-    /** @var int */
-    protected $chunk_size;
-    /** @var array */
-    protected $cache;
-
-    /**
-     * Constructor
-     *
-     * @param string $id         page id
-     * @param int $chunk_size maximum block size read from file
-     */
-    public function __construct($id, $chunk_size = 8192) {
-        global $cache_revinfo;
-
-        $this->cache =& $cache_revinfo;
-        if(!isset($this->cache[$id])) {
-            $this->cache[$id] = array();
-        }
-
-        $this->id = $id;
-        $this->setChunkSize($chunk_size);
-
-    }
-
-    /**
-     * Set chunk size for file reading
-     * Chunk size zero let read whole file at once
-     *
-     * @param int $chunk_size maximum block size read from file
-     */
-    public function setChunkSize($chunk_size) {
-        if(!is_numeric($chunk_size)) $chunk_size = 0;
-
-        $this->chunk_size = (int) max($chunk_size, 0);
-    }
-
-    /**
-     * Returns path to changelog
-     *
-     * @return string path to file
-     */
-    abstract protected function getChangelogFilename();
-
-    /**
-     * Returns path to current page/media
-     *
-     * @return string path to file
-     */
-    abstract protected function getFilename();
-
-    /**
-     * Get the changelog information for a specific page id and revision (timestamp)
-     *
-     * Adjacent changelog lines are optimistically parsed and cached to speed up
-     * consecutive calls to getRevisionInfo. For large changelog files, only the chunk
-     * containing the requested changelog line is read.
-     *
-     * @param int $rev        revision timestamp
-     * @return bool|array false or array with entries:
-     *      - date:  unix timestamp
-     *      - ip:    IPv4 address (127.0.0.1)
-     *      - type:  log line type
-     *      - id:    page id
-     *      - user:  user name
-     *      - sum:   edit summary (or action reason)
-     *      - extra: extra data (varies by line type)
-     *
-     * @author Ben Coburn <btcoburn@silicodon.net>
-     * @author Kate Arzamastseva <pshns@ukr.net>
-     */
-    public function getRevisionInfo($rev) {
-        $rev = max($rev, 0);
-
-        // check if it's already in the memory cache
-        if(isset($this->cache[$this->id]) && isset($this->cache[$this->id][$rev])) {
-            return $this->cache[$this->id][$rev];
-        }
-
-        //read lines from changelog
-        list($fp, $lines) = $this->readloglines($rev);
-        if($fp) {
-            fclose($fp);
-        }
-        if(empty($lines)) return false;
-
-        // parse and cache changelog lines
-        foreach($lines as $value) {
-            $tmp = parseChangelogLine($value);
-            if($tmp !== false) {
-                $this->cache[$this->id][$tmp['date']] = $tmp;
-            }
-        }
-        if(!isset($this->cache[$this->id][$rev])) {
-            return false;
-        }
-        return $this->cache[$this->id][$rev];
-    }
-
-    /**
-     * Return a list of page revisions numbers
-     *
-     * Does not guarantee that the revision exists in the attic,
-     * only that a line with the date exists in the changelog.
-     * By default the current revision is skipped.
-     *
-     * The current revision is automatically skipped when the page exists.
-     * See $INFO['meta']['last_change'] for the current revision.
-     * A negative $first let read the current revision too.
-     *
-     * For efficiency, the log lines are parsed and cached for later
-     * calls to getRevisionInfo. Large changelog files are read
-     * backwards in chunks until the requested number of changelog
-     * lines are recieved.
-     *
-     * @param int $first      skip the first n changelog lines
-     * @param int $num        number of revisions to return
-     * @return array with the revision timestamps
-     *
-     * @author Ben Coburn <btcoburn@silicodon.net>
-     * @author Kate Arzamastseva <pshns@ukr.net>
-     */
-    public function getRevisions($first, $num) {
-        $revs = array();
-        $lines = array();
-        $count = 0;
-
-        $num = max($num, 0);
-        if($num == 0) {
-            return $revs;
-        }
-
-        if($first < 0) {
-            $first = 0;
-        } else if(file_exists($this->getFilename())) {
-            // skip current revision if the page exists
-            $first = max($first + 1, 0);
-        }
-
-        $file = $this->getChangelogFilename();
-
-        if(!file_exists($file)) {
-            return $revs;
-        }
-        if(filesize($file) < $this->chunk_size || $this->chunk_size == 0) {
-            // read whole file
-            $lines = file($file);
-            if($lines === false) {
-                return $revs;
-            }
-        } else {
-            // read chunks backwards
-            $fp = fopen($file, 'rb'); // "file pointer"
-            if($fp === false) {
-                return $revs;
-            }
-            fseek($fp, 0, SEEK_END);
-            $tail = ftell($fp);
-
-            // chunk backwards
-            $finger = max($tail - $this->chunk_size, 0);
-            while($count < $num + $first) {
-                $nl = $this->getNewlinepointer($fp, $finger);
-
-                // was the chunk big enough? if not, take another bite
-                if($nl > 0 && $tail <= $nl) {
-                    $finger = max($finger - $this->chunk_size, 0);
-                    continue;
-                } else {
-                    $finger = $nl;
-                }
-
-                // read chunk
-                $chunk = '';
-                $read_size = max($tail - $finger, 0); // found chunk size
-                $got = 0;
-                while($got < $read_size && !feof($fp)) {
-                    $tmp = @fread($fp, max(min($this->chunk_size, $read_size - $got), 0));
-                    if($tmp === false) {
-                        break;
-                    } //error state
-                    $got += strlen($tmp);
-                    $chunk .= $tmp;
-                }
-                $tmp = explode("\n", $chunk);
-                array_pop($tmp); // remove trailing newline
-
-                // combine with previous chunk
-                $count += count($tmp);
-                $lines = array_merge($tmp, $lines);
-
-                // next chunk
-                if($finger == 0) {
-                    break;
-                } // already read all the lines
-                else {
-                    $tail = $finger;
-                    $finger = max($tail - $this->chunk_size, 0);
-                }
-            }
-            fclose($fp);
-        }
-
-        // skip parsing extra lines
-        $num = max(min(count($lines) - $first, $num), 0);
-        if     ($first > 0 && $num > 0)  { $lines = array_slice($lines, max(count($lines) - $first - $num, 0), $num); }
-        else if($first > 0 && $num == 0) { $lines = array_slice($lines, 0, max(count($lines) - $first, 0)); }
-        else if($first == 0 && $num > 0) { $lines = array_slice($lines, max(count($lines) - $num, 0)); }
-
-        // handle lines in reverse order
-        for($i = count($lines) - 1; $i >= 0; $i--) {
-            $tmp = parseChangelogLine($lines[$i]);
-            if($tmp !== false) {
-                $this->cache[$this->id][$tmp['date']] = $tmp;
-                $revs[] = $tmp['date'];
-            }
-        }
-
-        return $revs;
-    }
-
-    /**
-     * Get the nth revision left or right handside  for a specific page id and revision (timestamp)
-     *
-     * For large changelog files, only the chunk containing the
-     * reference revision $rev is read and sometimes a next chunck.
-     *
-     * Adjacent changelog lines are optimistically parsed and cached to speed up
-     * consecutive calls to getRevisionInfo.
-     *
-     * @param int $rev        revision timestamp used as startdate (doesn't need to be revisionnumber)
-     * @param int $direction  give position of returned revision with respect to $rev; positive=next, negative=prev
-     * @return bool|int
-     *      timestamp of the requested revision
-     *      otherwise false
-     */
-    public function getRelativeRevision($rev, $direction) {
-        $rev = max($rev, 0);
-        $direction = (int) $direction;
-
-        //no direction given or last rev, so no follow-up
-        if(!$direction || ($direction > 0 && $this->isCurrentRevision($rev))) {
-            return false;
-        }
-
-        //get lines from changelog
-        list($fp, $lines, $head, $tail, $eof) = $this->readloglines($rev);
-        if(empty($lines)) return false;
-
-        // look for revisions later/earlier then $rev, when founded count till the wanted revision is reached
-        // also parse and cache changelog lines for getRevisionInfo().
-        $revcounter = 0;
-        $relativerev = false;
-        $checkotherchunck = true; //always runs once
-        while(!$relativerev && $checkotherchunck) {
-            $tmp = array();
-            //parse in normal or reverse order
-            $count = count($lines);
-            if($direction > 0) {
-                $start = 0;
-                $step = 1;
-            } else {
-                $start = $count - 1;
-                $step = -1;
-            }
-            for($i = $start; $i >= 0 && $i < $count; $i = $i + $step) {
-                $tmp = parseChangelogLine($lines[$i]);
-                if($tmp !== false) {
-                    $this->cache[$this->id][$tmp['date']] = $tmp;
-                    //look for revs older/earlier then reference $rev and select $direction-th one
-                    if(($direction > 0 && $tmp['date'] > $rev) || ($direction < 0 && $tmp['date'] < $rev)) {
-                        $revcounter++;
-                        if($revcounter == abs($direction)) {
-                            $relativerev = $tmp['date'];
-                        }
-                    }
-                }
-            }
-
-            //true when $rev is found, but not the wanted follow-up.
-            $checkotherchunck = $fp
-                && ($tmp['date'] == $rev || ($revcounter > 0 && !$relativerev))
-                && !(($tail == $eof && $direction > 0) || ($head == 0 && $direction < 0));
-
-            if($checkotherchunck) {
-                list($lines, $head, $tail) = $this->readAdjacentChunk($fp, $head, $tail, $direction);
-
-                if(empty($lines)) break;
-            }
-        }
-        if($fp) {
-            fclose($fp);
-        }
-
-        return $relativerev;
-    }
-
-    /**
-     * Returns revisions around rev1 and rev2
-     * When available it returns $max entries for each revision
-     *
-     * @param int $rev1 oldest revision timestamp
-     * @param int $rev2 newest revision timestamp (0 looks up last revision)
-     * @param int $max maximum number of revisions returned
-     * @return array with two arrays with revisions surrounding rev1 respectively rev2
-     */
-    public function getRevisionsAround($rev1, $rev2, $max = 50) {
-        $max = floor(abs($max) / 2)*2 + 1;
-        $rev1 = max($rev1, 0);
-        $rev2 = max($rev2, 0);
-
-        if($rev2) {
-            if($rev2 < $rev1) {
-                $rev = $rev2;
-                $rev2 = $rev1;
-                $rev1 = $rev;
-            }
-        } else {
-            //empty right side means a removed page. Look up last revision.
-            $revs = $this->getRevisions(-1, 1);
-            $rev2 = $revs[0];
-        }
-        //collect revisions around rev2
-        list($revs2, $allrevs, $fp, $lines, $head, $tail) = $this->retrieveRevisionsAround($rev2, $max);
-
-        if(empty($revs2)) return array(array(), array());
-
-        //collect revisions around rev1
-        $index = array_search($rev1, $allrevs);
-        if($index === false) {
-            //no overlapping revisions
-            list($revs1,,,,,) = $this->retrieveRevisionsAround($rev1, $max);
-            if(empty($revs1)) $revs1 = array();
-        } else {
-            //revisions overlaps, reuse revisions around rev2
-            $revs1 = $allrevs;
-            while($head > 0) {
-                for($i = count($lines) - 1; $i >= 0; $i--) {
-                    $tmp = parseChangelogLine($lines[$i]);
-                    if($tmp !== false) {
-                        $this->cache[$this->id][$tmp['date']] = $tmp;
-                        $revs1[] = $tmp['date'];
-                        $index++;
-
-                        if($index > floor($max / 2)) break 2;
-                    }
-                }
-
-                list($lines, $head, $tail) = $this->readAdjacentChunk($fp, $head, $tail, -1);
-            }
-            sort($revs1);
-            //return wanted selection
-            $revs1 = array_slice($revs1, max($index - floor($max/2), 0), $max);
-        }
-
-        return array(array_reverse($revs1), array_reverse($revs2));
-    }
-
-    /**
-     * Returns lines from changelog.
-     * If file larger than $chuncksize, only chunck is read that could contain $rev.
-     *
-     * @param int $rev   revision timestamp
-     * @return array|false
-     *     if success returns array(fp, array(changeloglines), $head, $tail, $eof)
-     *     where fp only defined for chuck reading, needs closing.
-     *     otherwise false
-     */
-    protected function readloglines($rev) {
-        $file = $this->getChangelogFilename();
-
-        if(!file_exists($file)) {
-            return false;
-        }
-
-        $fp = null;
-        $head = 0;
-        $tail = 0;
-        $eof = 0;
-
-        if(filesize($file) < $this->chunk_size || $this->chunk_size == 0) {
-            // read whole file
-            $lines = file($file);
-            if($lines === false) {
-                return false;
-            }
-        } else {
-            // read by chunk
-            $fp = fopen($file, 'rb'); // "file pointer"
-            if($fp === false) {
-                return false;
-            }
-            $head = 0;
-            fseek($fp, 0, SEEK_END);
-            $eof = ftell($fp);
-            $tail = $eof;
-
-            // find chunk
-            while($tail - $head > $this->chunk_size) {
-                $finger = $head + floor(($tail - $head) / 2.0);
-                $finger = $this->getNewlinepointer($fp, $finger);
-                $tmp = fgets($fp);
-                if($finger == $head || $finger == $tail) {
-                    break;
-                }
-                $tmp = parseChangelogLine($tmp);
-                $finger_rev = $tmp['date'];
-
-                if($finger_rev > $rev) {
-                    $tail = $finger;
-                } else {
-                    $head = $finger;
-                }
-            }
-
-            if($tail - $head < 1) {
-                // cound not find chunk, assume requested rev is missing
-                fclose($fp);
-                return false;
-            }
-
-            $lines = $this->readChunk($fp, $head, $tail);
-        }
-        return array(
-            $fp,
-            $lines,
-            $head,
-            $tail,
-            $eof
-        );
-    }
-
-    /**
-     * Read chunk and return array with lines of given chunck.
-     * Has no check if $head and $tail are really at a new line
-     *
-     * @param resource $fp    resource filepointer
-     * @param int      $head  start point chunck
-     * @param int      $tail  end point chunck
-     * @return array lines read from chunck
-     */
-    protected function readChunk($fp, $head, $tail) {
-        $chunk = '';
-        $chunk_size = max($tail - $head, 0); // found chunk size
-        $got = 0;
-        fseek($fp, $head);
-        while($got < $chunk_size && !feof($fp)) {
-            $tmp = @fread($fp, max(min($this->chunk_size, $chunk_size - $got), 0));
-            if($tmp === false) { //error state
-                break;
-            }
-            $got += strlen($tmp);
-            $chunk .= $tmp;
-        }
-        $lines = explode("\n", $chunk);
-        array_pop($lines); // remove trailing newline
-        return $lines;
-    }
-
-    /**
-     * Set pointer to first new line after $finger and return its position
-     *
-     * @param resource $fp      filepointer
-     * @param int      $finger  a pointer
-     * @return int pointer
-     */
-    protected function getNewlinepointer($fp, $finger) {
-        fseek($fp, $finger);
-        $nl = $finger;
-        if($finger > 0) {
-            fgets($fp); // slip the finger forward to a new line
-            $nl = ftell($fp);
-        }
-        return $nl;
-    }
-
-    /**
-     * Check whether given revision is the current page
-     *
-     * @param int $rev   timestamp of current page
-     * @return bool true if $rev is current revision, otherwise false
-     */
-    public function isCurrentRevision($rev) {
-        return $rev == @filemtime($this->getFilename());
-    }
-
-    /**
-    * Return an existing revision for a specific date which is
-    * the current one or younger or equal then the date
-    *
-    * @param number $date_at timestamp
-    * @return string revision ('' for current)
-    */
-    function getLastRevisionAt($date_at){
-        //requested date_at(timestamp) younger or equal then modified_time($this->id) => load current
-        if(file_exists($this->getFilename()) && $date_at >= @filemtime($this->getFilename())) {
-            return '';
-        } else if ($rev = $this->getRelativeRevision($date_at+1, -1)) { //+1 to get also the requested date revision
-            return $rev;
-        } else {
-            return false;
-        }
-    }
-
-    /**
-     * Returns the next lines of the changelog  of the chunck before head or after tail
-     *
-     * @param resource $fp filepointer
-     * @param int $head position head of last chunk
-     * @param int $tail position tail of last chunk
-     * @param int $direction positive forward, negative backward
-     * @return array with entries:
-     *    - $lines: changelog lines of readed chunk
-     *    - $head: head of chunk
-     *    - $tail: tail of chunk
-     */
-    protected function readAdjacentChunk($fp, $head, $tail, $direction) {
-        if(!$fp) return array(array(), $head, $tail);
-
-        if($direction > 0) {
-            //read forward
-            $head = $tail;
-            $tail = $head + floor($this->chunk_size * (2 / 3));
-            $tail = $this->getNewlinepointer($fp, $tail);
-        } else {
-            //read backward
-            $tail = $head;
-            $head = max($tail - $this->chunk_size, 0);
-            while(true) {
-                $nl = $this->getNewlinepointer($fp, $head);
-                // was the chunk big enough? if not, take another bite
-                if($nl > 0 && $tail <= $nl) {
-                    $head = max($head - $this->chunk_size, 0);
-                } else {
-                    $head = $nl;
-                    break;
-                }
-            }
-        }
-
-        //load next chunck
-        $lines = $this->readChunk($fp, $head, $tail);
-        return array($lines, $head, $tail);
-    }
-
-    /**
-     * Collect the $max revisions near to the timestamp $rev
-     *
-     * @param int $rev revision timestamp
-     * @param int $max maximum number of revisions to be returned
-     * @return bool|array
-     *     return array with entries:
-     *       - $requestedrevs: array of with $max revision timestamps
-     *       - $revs: all parsed revision timestamps
-     *       - $fp: filepointer only defined for chuck reading, needs closing.
-     *       - $lines: non-parsed changelog lines before the parsed revisions
-     *       - $head: position of first readed changelogline
-     *       - $lasttail: position of end of last readed changelogline
-     *     otherwise false
-     */
-    protected function retrieveRevisionsAround($rev, $max) {
-        //get lines from changelog
-        list($fp, $lines, $starthead, $starttail, /* $eof */) = $this->readloglines($rev);
-        if(empty($lines)) return false;
-
-        //parse chunk containing $rev, and read forward more chunks until $max/2 is reached
-        $head = $starthead;
-        $tail = $starttail;
-        $revs = array();
-        $aftercount = $beforecount = 0;
-        while(count($lines) > 0) {
-            foreach($lines as $line) {
-                $tmp = parseChangelogLine($line);
-                if($tmp !== false) {
-                    $this->cache[$this->id][$tmp['date']] = $tmp;
-                    $revs[] = $tmp['date'];
-                    if($tmp['date'] >= $rev) {
-                        //count revs after reference $rev
-                        $aftercount++;
-                        if($aftercount == 1) $beforecount = count($revs);
-                    }
-                    //enough revs after reference $rev?
-                    if($aftercount > floor($max / 2)) break 2;
-                }
-            }
-            //retrieve next chunk
-            list($lines, $head, $tail) = $this->readAdjacentChunk($fp, $head, $tail, 1);
-        }
-        if($aftercount == 0) return false;
-
-        $lasttail = $tail;
-
-        //read additional chuncks backward until $max/2 is reached and total number of revs is equal to $max
-        $lines = array();
-        $i = 0;
-        if($aftercount > 0) {
-            $head = $starthead;
-            $tail = $starttail;
-            while($head > 0) {
-                list($lines, $head, $tail) = $this->readAdjacentChunk($fp, $head, $tail, -1);
-
-                for($i = count($lines) - 1; $i >= 0; $i--) {
-                    $tmp = parseChangelogLine($lines[$i]);
-                    if($tmp !== false) {
-                        $this->cache[$this->id][$tmp['date']] = $tmp;
-                        $revs[] = $tmp['date'];
-                        $beforecount++;
-                        //enough revs before reference $rev?
-                        if($beforecount > max(floor($max / 2), $max - $aftercount)) break 2;
-                    }
-                }
-            }
-        }
-        sort($revs);
-
-        //keep only non-parsed lines
-        $lines = array_slice($lines, 0, $i);
-        //trunk desired selection
-        $requestedrevs = array_slice($revs, -$max, $max);
-
-        return array($requestedrevs, $revs, $fp, $lines, $head, $lasttail);
-    }
-}
-
-/**
- * Class PageChangelog handles changelog of a wiki page
- */
-class PageChangelog extends ChangeLog {
-
-    /**
-     * Returns path to changelog
-     *
-     * @return string path to file
-     */
-    protected function getChangelogFilename() {
-        return metaFN($this->id, '.changes');
-    }
-
-    /**
-     * Returns path to current page/media
-     *
-     * @return string path to file
-     */
-    protected function getFilename() {
-        return wikiFN($this->id);
-    }
-}
-
-/**
- * Class MediaChangelog handles changelog of a media file
- */
-class MediaChangelog extends ChangeLog {
-
-    /**
-     * Returns path to changelog
-     *
-     * @return string path to file
-     */
-    protected function getChangelogFilename() {
-        return mediaMetaFN($this->id, '.changes');
-    }
-
-    /**
-     * Returns path to current page/media
-     *
-     * @return string path to file
-     */
-    protected function getFilename() {
-        return mediaFN($this->id);
-    }
-}
diff --git a/wiki/inc/cli.php b/wiki/inc/cli.php
deleted file mode 100644
index cb4fc58..0000000
--- a/wiki/inc/cli.php
+++ /dev/null
@@ -1,655 +0,0 @@
-<?php
-
-/**
- * Class DokuCLI
- *
- * All DokuWiki commandline scripts should inherit from this class and implement the abstract methods.
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- */
-abstract class DokuCLI {
-    /** @var string the executed script itself */
-    protected $bin;
-    /** @var  DokuCLI_Options the option parser */
-    protected $options;
-    /** @var  DokuCLI_Colors */
-    public $colors;
-
-    /**
-     * constructor
-     *
-     * Initialize the arguments, set up helper classes and set up the CLI environment
-     */
-    public function __construct() {
-        set_exception_handler(array($this, 'fatal'));
-
-        $this->options = new DokuCLI_Options();
-        $this->colors  = new DokuCLI_Colors();
-
-        dbg_deprecated('use \splitbrain\phpcli\CLI instead');
-        $this->error('DokuCLI is deprecated, use \splitbrain\phpcli\CLI instead.');
-    }
-
-    /**
-     * Register options and arguments on the given $options object
-     *
-     * @param DokuCLI_Options $options
-     * @return void
-     */
-    abstract protected function setup(DokuCLI_Options $options);
-
-    /**
-     * Your main program
-     *
-     * Arguments and options have been parsed when this is run
-     *
-     * @param DokuCLI_Options $options
-     * @return void
-     */
-    abstract protected function main(DokuCLI_Options $options);
-
-    /**
-     * Execute the CLI program
-     *
-     * Executes the setup() routine, adds default options, initiate the options parsing and argument checking
-     * and finally executes main()
-     */
-    public function run() {
-        if('cli' != php_sapi_name()) throw new DokuCLI_Exception('This has to be run from the command line');
-
-        // setup
-        $this->setup($this->options);
-        $this->options->registerOption(
-            'no-colors',
-            'Do not use any colors in output. Useful when piping output to other tools or files.'
-        );
-        $this->options->registerOption(
-            'help',
-            'Display this help screen and exit immediately.',
-            'h'
-        );
-
-        // parse
-        $this->options->parseOptions();
-
-        // handle defaults
-        if($this->options->getOpt('no-colors')) {
-            $this->colors->disable();
-        }
-        if($this->options->getOpt('help')) {
-            echo $this->options->help();
-            exit(0);
-        }
-
-        // check arguments
-        $this->options->checkArguments();
-
-        // execute
-        $this->main($this->options);
-
-        exit(0);
-    }
-
-    /**
-     * Exits the program on a fatal error
-     *
-     * @param Exception|string $error either an exception or an error message
-     */
-    public function fatal($error) {
-        $code = 0;
-        if(is_object($error) && is_a($error, 'Exception')) {
-            /** @var Exception $error */
-            $code  = $error->getCode();
-            $error = $error->getMessage();
-        }
-        if(!$code) $code = DokuCLI_Exception::E_ANY;
-
-        $this->error($error);
-        exit($code);
-    }
-
-    /**
-     * Print an error message
-     *
-     * @param string $string
-     */
-    public function error($string) {
-        $this->colors->ptln("E: $string", 'red', STDERR);
-    }
-
-    /**
-     * Print a success message
-     *
-     * @param string $string
-     */
-    public function success($string) {
-        $this->colors->ptln("S: $string", 'green', STDERR);
-    }
-
-    /**
-     * Print an info message
-     *
-     * @param string $string
-     */
-    public function info($string) {
-        $this->colors->ptln("I: $string", 'cyan', STDERR);
-    }
-
-}
-
-/**
- * Class DokuCLI_Colors
- *
- * Handles color output on (Linux) terminals
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- */
-class DokuCLI_Colors {
-    /** @var array known color names */
-    protected $colors = array(
-        'reset'       => "\33[0m",
-        'black'       => "\33[0;30m",
-        'darkgray'    => "\33[1;30m",
-        'blue'        => "\33[0;34m",
-        'lightblue'   => "\33[1;34m",
-        'green'       => "\33[0;32m",
-        'lightgreen'  => "\33[1;32m",
-        'cyan'        => "\33[0;36m",
-        'lightcyan'   => "\33[1;36m",
-        'red'         => "\33[0;31m",
-        'lightred'    => "\33[1;31m",
-        'purple'      => "\33[0;35m",
-        'lightpurple' => "\33[1;35m",
-        'brown'       => "\33[0;33m",
-        'yellow'      => "\33[1;33m",
-        'lightgray'   => "\33[0;37m",
-        'white'       => "\33[1;37m",
-    );
-
-    /** @var bool should colors be used? */
-    protected $enabled = true;
-
-    /**
-     * Constructor
-     *
-     * Tries to disable colors for non-terminals
-     */
-    public function __construct() {
-        if(function_exists('posix_isatty') && !posix_isatty(STDOUT)) {
-            $this->enabled = false;
-            return;
-        }
-        if(!getenv('TERM')) {
-            $this->enabled = false;
-            return;
-        }
-    }
-
-    /**
-     * enable color output
-     */
-    public function enable() {
-        $this->enabled = true;
-    }
-
-    /**
-     * disable color output
-     */
-    public function disable() {
-        $this->enabled = false;
-    }
-
-    /**
-     * Convenience function to print a line in a given color
-     *
-     * @param string   $line
-     * @param string   $color
-     * @param resource $channel
-     */
-    public function ptln($line, $color, $channel = STDOUT) {
-        $this->set($color);
-        fwrite($channel, rtrim($line)."\n");
-        $this->reset();
-    }
-
-    /**
-     * Set the given color for consecutive output
-     *
-     * @param string $color one of the supported color names
-     * @throws DokuCLI_Exception
-     */
-    public function set($color) {
-        if(!$this->enabled) return;
-        if(!isset($this->colors[$color])) throw new DokuCLI_Exception("No such color $color");
-        echo $this->colors[$color];
-    }
-
-    /**
-     * reset the terminal color
-     */
-    public function reset() {
-        $this->set('reset');
-    }
-}
-
-/**
- * Class DokuCLI_Options
- *
- * Parses command line options passed to the CLI script. Allows CLI scripts to easily register all accepted options and
- * commands and even generates a help text from this setup.
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- */
-class DokuCLI_Options {
-    /** @var  array keeps the list of options to parse */
-    protected $setup;
-
-    /** @var  array store parsed options */
-    protected $options = array();
-
-    /** @var string current parsed command if any */
-    protected $command = '';
-
-    /** @var  array passed non-option arguments */
-    public $args = array();
-
-    /** @var  string the executed script */
-    protected $bin;
-
-    /**
-     * Constructor
-     */
-    public function __construct() {
-        $this->setup = array(
-            '' => array(
-                'opts' => array(),
-                'args' => array(),
-                'help' => ''
-            )
-        ); // default command
-
-        $this->args = $this->readPHPArgv();
-        $this->bin  = basename(array_shift($this->args));
-
-        $this->options = array();
-    }
-
-    /**
-     * Sets the help text for the tool itself
-     *
-     * @param string $help
-     */
-    public function setHelp($help) {
-        $this->setup['']['help'] = $help;
-    }
-
-    /**
-     * Register the names of arguments for help generation and number checking
-     *
-     * This has to be called in the order arguments are expected
-     *
-     * @param string $arg      argument name (just for help)
-     * @param string $help     help text
-     * @param bool   $required is this a required argument
-     * @param string $command  if theses apply to a sub command only
-     * @throws DokuCLI_Exception
-     */
-    public function registerArgument($arg, $help, $required = true, $command = '') {
-        if(!isset($this->setup[$command])) throw new DokuCLI_Exception("Command $command not registered");
-
-        $this->setup[$command]['args'][] = array(
-            'name'     => $arg,
-            'help'     => $help,
-            'required' => $required
-        );
-    }
-
-    /**
-     * This registers a sub command
-     *
-     * Sub commands have their own options and use their own function (not main()).
-     *
-     * @param string $command
-     * @param string $help
-     * @throws DokuCLI_Exception
-     */
-    public function registerCommand($command, $help) {
-        if(isset($this->setup[$command])) throw new DokuCLI_Exception("Command $command already registered");
-
-        $this->setup[$command] = array(
-            'opts' => array(),
-            'args' => array(),
-            'help' => $help
-        );
-
-    }
-
-    /**
-     * Register an option for option parsing and help generation
-     *
-     * @param string      $long     multi character option (specified with --)
-     * @param string      $help     help text for this option
-     * @param string|null $short    one character option (specified with -)
-     * @param bool|string $needsarg does this option require an argument? give it a name here
-     * @param string      $command  what command does this option apply to
-     * @throws DokuCLI_Exception
-     */
-    public function registerOption($long, $help, $short = null, $needsarg = false, $command = '') {
-        if(!isset($this->setup[$command])) throw new DokuCLI_Exception("Command $command not registered");
-
-        $this->setup[$command]['opts'][$long] = array(
-            'needsarg' => $needsarg,
-            'help'     => $help,
-            'short'    => $short
-        );
-
-        if($short) {
-            if(strlen($short) > 1) throw new DokuCLI_Exception("Short options should be exactly one ASCII character");
-
-            $this->setup[$command]['short'][$short] = $long;
-        }
-    }
-
-    /**
-     * Checks the actual number of arguments against the required number
-     *
-     * Throws an exception if arguments are missing. Called from parseOptions()
-     *
-     * @throws DokuCLI_Exception
-     */
-    public function checkArguments() {
-        $argc = count($this->args);
-
-        $req = 0;
-        foreach($this->setup[$this->command]['args'] as $arg) {
-            if(!$arg['required']) break; // last required arguments seen
-            $req++;
-        }
-
-        if($req > $argc) throw new DokuCLI_Exception("Not enough arguments", DokuCLI_Exception::E_OPT_ARG_REQUIRED);
-    }
-
-    /**
-     * Parses the given arguments for known options and command
-     *
-     * The given $args array should NOT contain the executed file as first item anymore! The $args
-     * array is stripped from any options and possible command. All found otions can be accessed via the
-     * getOpt() function
-     *
-     * Note that command options will overwrite any global options with the same name
-     *
-     * @throws DokuCLI_Exception
-     */
-    public function parseOptions() {
-        $non_opts = array();
-
-        $argc = count($this->args);
-        for($i = 0; $i < $argc; $i++) {
-            $arg = $this->args[$i];
-
-            // The special element '--' means explicit end of options. Treat the rest of the arguments as non-options
-            // and end the loop.
-            if($arg == '--') {
-                $non_opts = array_merge($non_opts, array_slice($this->args, $i + 1));
-                break;
-            }
-
-            // '-' is stdin - a normal argument
-            if($arg == '-') {
-                $non_opts = array_merge($non_opts, array_slice($this->args, $i));
-                break;
-            }
-
-            // first non-option
-            if($arg{0} != '-') {
-                $non_opts = array_merge($non_opts, array_slice($this->args, $i));
-                break;
-            }
-
-            // long option
-            if(strlen($arg) > 1 && $arg{1} == '-') {
-                list($opt, $val) = explode('=', substr($arg, 2), 2);
-
-                if(!isset($this->setup[$this->command]['opts'][$opt])) {
-                    throw new DokuCLI_Exception("No such option $arg", DokuCLI_Exception::E_UNKNOWN_OPT);
-                }
-
-                // argument required?
-                if($this->setup[$this->command]['opts'][$opt]['needsarg']) {
-                    if(is_null($val) && $i + 1 < $argc && !preg_match('/^--?[\w]/', $this->args[$i + 1])) {
-                        $val = $this->args[++$i];
-                    }
-                    if(is_null($val)) {
-                        throw new DokuCLI_Exception("Option $arg requires an argument", DokuCLI_Exception::E_OPT_ARG_REQUIRED);
-                    }
-                    $this->options[$opt] = $val;
-                } else {
-                    $this->options[$opt] = true;
-                }
-
-                continue;
-            }
-
-            // short option
-            $opt = substr($arg, 1);
-            if(!isset($this->setup[$this->command]['short'][$opt])) {
-                throw new DokuCLI_Exception("No such option $arg", DokuCLI_Exception::E_UNKNOWN_OPT);
-            } else {
-                $opt = $this->setup[$this->command]['short'][$opt]; // store it under long name
-            }
-
-            // argument required?
-            if($this->setup[$this->command]['opts'][$opt]['needsarg']) {
-                $val = null;
-                if($i + 1 < $argc && !preg_match('/^--?[\w]/', $this->args[$i + 1])) {
-                    $val = $this->args[++$i];
-                }
-                if(is_null($val)) {
-                    throw new DokuCLI_Exception("Option $arg requires an argument", DokuCLI_Exception::E_OPT_ARG_REQUIRED);
-                }
-                $this->options[$opt] = $val;
-            } else {
-                $this->options[$opt] = true;
-            }
-        }
-
-        // parsing is now done, update args array
-        $this->args = $non_opts;
-
-        // if not done yet, check if first argument is a command and reexecute argument parsing if it is
-        if(!$this->command && $this->args && isset($this->setup[$this->args[0]])) {
-            // it is a command!
-            $this->command = array_shift($this->args);
-            $this->parseOptions(); // second pass
-        }
-    }
-
-    /**
-     * Get the value of the given option
-     *
-     * Please note that all options are accessed by their long option names regardless of how they were
-     * specified on commandline.
-     *
-     * Can only be used after parseOptions() has been run
-     *
-     * @param string $option
-     * @param bool|string $default what to return if the option was not set
-     * @return bool|string
-     */
-    public function getOpt($option, $default = false) {
-        if(isset($this->options[$option])) return $this->options[$option];
-        return $default;
-    }
-
-    /**
-     * Return the found command if any
-     *
-     * @return string
-     */
-    public function getCmd() {
-        return $this->command;
-    }
-
-    /**
-     * Builds a help screen from the available options. You may want to call it from -h or on error
-     *
-     * @return string
-     */
-    public function help() {
-        $text = '';
-
-        $hascommands = (count($this->setup) > 1);
-        foreach($this->setup as $command => $config) {
-            $hasopts = (bool) $this->setup[$command]['opts'];
-            $hasargs = (bool) $this->setup[$command]['args'];
-
-            if(!$command) {
-                $text .= 'USAGE: '.$this->bin;
-            } else {
-                $text .= "\n$command";
-            }
-
-            if($hasopts) $text .= ' <OPTIONS>';
-
-            foreach($this->setup[$command]['args'] as $arg) {
-                if($arg['required']) {
-                    $text .= ' <'.$arg['name'].'>';
-                } else {
-                    $text .= ' [<'.$arg['name'].'>]';
-                }
-            }
-            $text .= "\n";
-
-            if($this->setup[$command]['help']) {
-                $text .= "\n";
-                $text .= $this->tableFormat(
-                    array(2, 72),
-                    array('', $this->setup[$command]['help']."\n")
-                );
-            }
-
-            if($hasopts) {
-                $text .= "\n  OPTIONS\n\n";
-                foreach($this->setup[$command]['opts'] as $long => $opt) {
-
-                    $name = '';
-                    if($opt['short']) {
-                        $name .= '-'.$opt['short'];
-                        if($opt['needsarg']) $name .= ' <'.$opt['needsarg'].'>';
-                        $name .= ', ';
-                    }
-                    $name .= "--$long";
-                    if($opt['needsarg']) $name .= ' <'.$opt['needsarg'].'>';
-
-                    $text .= $this->tableFormat(
-                        array(2, 20, 52),
-                        array('', $name, $opt['help'])
-                    );
-                    $text .= "\n";
-                }
-            }
-
-            if($hasargs) {
-                $text .= "\n";
-                foreach($this->setup[$command]['args'] as $arg) {
-                    $name = '<'.$arg['name'].'>';
-
-                    $text .= $this->tableFormat(
-                        array(2, 20, 52),
-                        array('', $name, $arg['help'])
-                    );
-                }
-            }
-
-            if($command == '' && $hascommands) {
-                $text .= "\nThis tool accepts a command as first parameter as outlined below:\n";
-            }
-        }
-
-        return $text;
-    }
-
-    /**
-     * Safely read the $argv PHP array across different PHP configurations.
-     * Will take care on register_globals and register_argc_argv ini directives
-     *
-     * @throws DokuCLI_Exception
-     * @return array the $argv PHP array or PEAR error if not registered
-     */
-    private function readPHPArgv() {
-        global $argv;
-        if(!is_array($argv)) {
-            if(!@is_array($_SERVER['argv'])) {
-                if(!@is_array($GLOBALS['HTTP_SERVER_VARS']['argv'])) {
-                    throw new DokuCLI_Exception(
-                        "Could not read cmd args (register_argc_argv=Off?)",
-                        DOKU_CLI_OPTS_ARG_READ
-                    );
-                }
-                return $GLOBALS['HTTP_SERVER_VARS']['argv'];
-            }
-            return $_SERVER['argv'];
-        }
-        return $argv;
-    }
-
-    /**
-     * Displays text in multiple word wrapped columns
-     *
-     * @param int[]    $widths list of column widths (in characters)
-     * @param string[] $texts  list of texts for each column
-     * @return string
-     */
-    private function tableFormat($widths, $texts) {
-        $wrapped = array();
-        $maxlen  = 0;
-
-        foreach($widths as $col => $width) {
-            $wrapped[$col] = explode("\n", wordwrap($texts[$col], $width - 1, "\n", true)); // -1 char border
-            $len           = count($wrapped[$col]);
-            if($len > $maxlen) $maxlen = $len;
-
-        }
-
-        $out = '';
-        for($i = 0; $i < $maxlen; $i++) {
-            foreach($widths as $col => $width) {
-                if(isset($wrapped[$col][$i])) {
-                    $val = $wrapped[$col][$i];
-                } else {
-                    $val = '';
-                }
-                $out .= sprintf('%-'.$width.'s', $val);
-            }
-            $out .= "\n";
-        }
-        return $out;
-    }
-}
-
-/**
- * Class DokuCLI_Exception
- *
- * The code is used as exit code for the CLI tool. This should probably be extended. Many cases just fall back to the
- * E_ANY code.
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- */
-class DokuCLI_Exception extends Exception {
-    const E_ANY = -1; // no error code specified
-    const E_UNKNOWN_OPT = 1; //Unrecognized option
-    const E_OPT_ARG_REQUIRED = 2; //Option requires argument
-    const E_OPT_ARG_DENIED = 3; //Option not allowed argument
-    const E_OPT_ABIGUOUS = 4; //Option abiguous
-    const E_ARG_READ = 5; //Could not read argv
-
-    /**
-     * @param string    $message     The Exception message to throw.
-     * @param int       $code        The Exception code
-     * @param Exception $previous    The previous exception used for the exception chaining.
-     */
-    public function __construct($message = "", $code = 0, Exception $previous = null) {
-        if(!$code) $code = DokuCLI_Exception::E_ANY;
-        parent::__construct($message, $code, $previous);
-    }
-}
diff --git a/wiki/inc/common.php b/wiki/inc/common.php
deleted file mode 100644
index 1fd0154..0000000
--- a/wiki/inc/common.php
+++ /dev/null
@@ -1,2087 +0,0 @@
-<?php
-/**
- * Common DokuWiki functions
- *
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * @author     Andreas Gohr <andi@splitbrain.org>
- */
-
-if(!defined('DOKU_INC')) die('meh.');
-
-/**
- * These constants are used with the recents function
- */
-define('RECENTS_SKIP_DELETED', 2);
-define('RECENTS_SKIP_MINORS', 4);
-define('RECENTS_SKIP_SUBSPACES', 8);
-define('RECENTS_MEDIA_CHANGES', 16);
-define('RECENTS_MEDIA_PAGES_MIXED', 32);
-
-/**
- * Wrapper around htmlspecialchars()
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- * @see    htmlspecialchars()
- *
- * @param string $string the string being converted
- * @return string converted string
- */
-function hsc($string) {
-    return htmlspecialchars($string, ENT_QUOTES, 'UTF-8');
-}
-
-/**
- * Checks if the given input is blank
- *
- * This is similar to empty() but will return false for "0".
- *
- * Please note: when you pass uninitialized variables, they will implicitly be created
- * with a NULL value without warning.
- *
- * To avoid this it's recommended to guard the call with isset like this:
- *
- * (isset($foo) && !blank($foo))
- * (!isset($foo) || blank($foo))
- *
- * @param $in
- * @param bool $trim Consider a string of whitespace to be blank
- * @return bool
- */
-function blank(&$in, $trim = false) {
-    if(is_null($in)) return true;
-    if(is_array($in)) return empty($in);
-    if($in === "\0") return true;
-    if($trim && trim($in) === '') return true;
-    if(strlen($in) > 0) return false;
-    return empty($in);
-}
-
-/**
- * print a newline terminated string
- *
- * You can give an indention as optional parameter
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- *
- * @param string $string  line of text
- * @param int    $indent  number of spaces indention
- */
-function ptln($string, $indent = 0) {
-    echo str_repeat(' ', $indent)."$string\n";
-}
-
-/**
- * strips control characters (<32) from the given string
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- *
- * @param string $string being stripped
- * @return string
- */
-function stripctl($string) {
-    return preg_replace('/[\x00-\x1F]+/s', '', $string);
-}
-
-/**
- * Return a secret token to be used for CSRF attack prevention
- *
- * @author  Andreas Gohr <andi@splitbrain.org>
- * @link    http://en.wikipedia.org/wiki/Cross-site_request_forgery
- * @link    http://christ1an.blogspot.com/2007/04/preventing-csrf-efficiently.html
- *
- * @return  string
- */
-function getSecurityToken() {
-    /** @var Input $INPUT */
-    global $INPUT;
-
-    $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());
-}
-
-/**
- * Check the secret CSRF token
- *
- * @param null|string $token security token or null to read it from request variable
- * @return bool success if the token matched
- */
-function checkSecurityToken($token = null) {
-    /** @var Input $INPUT */
-    global $INPUT;
-    if(!$INPUT->server->str('REMOTE_USER')) return true; // no logged in user, no need for a check
-
-    if(is_null($token)) $token = $INPUT->str('sectok');
-    if(getSecurityToken() != $token) {
-        msg('Security Token did not match. Possible CSRF attack.', -1);
-        return false;
-    }
-    return true;
-}
-
-/**
- * Print a hidden form field with a secret CSRF token
- *
- * @author  Andreas Gohr <andi@splitbrain.org>
- *
- * @param bool $print  if true print the field, otherwise html of the field is returned
- * @return string html of hidden form field
- */
-function formSecurityToken($print = true) {
-    $ret = '<div class="no"><input type="hidden" name="sectok" value="'.getSecurityToken().'" /></div>'."\n";
-    if($print) echo $ret;
-    return $ret;
-}
-
-/**
- * Determine basic information for a request of $id
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- * @author Chris Smith <chris@jalakai.co.uk>
- *
- * @param string $id         pageid
- * @param bool   $htmlClient add info about whether is mobile browser
- * @return array with info for a request of $id
- *
- */
-function basicinfo($id, $htmlClient=true){
-    global $USERINFO;
-    /* @var Input $INPUT */
-    global $INPUT;
-
-    // set info about manager/admin status.
-    $info = array();
-    $info['isadmin']   = false;
-    $info['ismanager'] = false;
-    if($INPUT->server->has('REMOTE_USER')) {
-        $info['userinfo']   = $USERINFO;
-        $info['perm']       = auth_quickaclcheck($id);
-        $info['client']     = $INPUT->server->str('REMOTE_USER');
-
-        if($info['perm'] == AUTH_ADMIN) {
-            $info['isadmin']   = true;
-            $info['ismanager'] = true;
-        } elseif(auth_ismanager()) {
-            $info['ismanager'] = true;
-        }
-
-        // if some outside auth were used only REMOTE_USER is set
-        if(!$info['userinfo']['name']) {
-            $info['userinfo']['name'] = $INPUT->server->str('REMOTE_USER');
-        }
-
-    } else {
-        $info['perm']       = auth_aclcheck($id, '', null);
-        $info['client']     = clientIP(true);
-    }
-
-    $info['namespace'] = getNS($id);
-
-    // mobile detection
-    if ($htmlClient) {
-        $info['ismobile'] = clientismobile();
-    }
-
-    return $info;
- }
-
-/**
- * Return info about the current document as associative
- * array.
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- *
- * @return array with info about current document
- */
-function pageinfo() {
-    global $ID;
-    global $REV;
-    global $RANGE;
-    global $lang;
-    /* @var Input $INPUT */
-    global $INPUT;
-
-    $info = basicinfo($ID);
-
-    // include ID & REV not redundant, as some parts of DokuWiki may temporarily change $ID, e.g. p_wiki_xhtml
-    // FIXME ... perhaps it would be better to ensure the temporary changes weren't necessary
-    $info['id']  = $ID;
-    $info['rev'] = $REV;
-
-    if($INPUT->server->has('REMOTE_USER')) {
-        $sub = new Subscription();
-        $info['subscribed'] = $sub->user_subscription();
-    } else {
-        $info['subscribed'] = false;
-    }
-
-    $info['locked']     = checklock($ID);
-    $info['filepath']   = wikiFN($ID);
-    $info['exists']     = file_exists($info['filepath']);
-    $info['currentrev'] = @filemtime($info['filepath']);
-    if($REV) {
-        //check if current revision was meant
-        if($info['exists'] && ($info['currentrev'] == $REV)) {
-            $REV = '';
-        } elseif($RANGE) {
-            //section editing does not work with old revisions!
-            $REV   = '';
-            $RANGE = '';
-            msg($lang['nosecedit'], 0);
-        } else {
-            //really use old revision
-            $info['filepath'] = wikiFN($ID, $REV);
-            $info['exists']   = file_exists($info['filepath']);
-        }
-    }
-    $info['rev'] = $REV;
-    if($info['exists']) {
-        $info['writable'] = (is_writable($info['filepath']) &&
-            ($info['perm'] >= AUTH_EDIT));
-    } else {
-        $info['writable'] = ($info['perm'] >= AUTH_CREATE);
-    }
-    $info['editable'] = ($info['writable'] && empty($info['locked']));
-    $info['lastmod']  = @filemtime($info['filepath']);
-
-    //load page meta data
-    $info['meta'] = p_get_metadata($ID);
-
-    //who's the editor
-    $pagelog = new PageChangeLog($ID, 1024);
-    if($REV) {
-        $revinfo = $pagelog->getRevisionInfo($REV);
-    } else {
-        if(!empty($info['meta']['last_change']) && is_array($info['meta']['last_change'])) {
-            $revinfo = $info['meta']['last_change'];
-        } else {
-            $revinfo = $pagelog->getRevisionInfo($info['lastmod']);
-            // cache most recent changelog line in metadata if missing and still valid
-            if($revinfo !== false) {
-                $info['meta']['last_change'] = $revinfo;
-                p_set_metadata($ID, array('last_change' => $revinfo));
-            }
-        }
-    }
-    //and check for an external edit
-    if($revinfo !== false && $revinfo['date'] != $info['lastmod']) {
-        // cached changelog line no longer valid
-        $revinfo                     = false;
-        $info['meta']['last_change'] = $revinfo;
-        p_set_metadata($ID, array('last_change' => $revinfo));
-    }
-
-    $info['ip']   = $revinfo['ip'];
-    $info['user'] = $revinfo['user'];
-    $info['sum']  = $revinfo['sum'];
-    // See also $INFO['meta']['last_change'] which is the most recent log line for page $ID.
-    // Use $INFO['meta']['last_change']['type']===DOKU_CHANGE_TYPE_MINOR_EDIT in place of $info['minor'].
-
-    if($revinfo['user']) {
-        $info['editor'] = $revinfo['user'];
-    } else {
-        $info['editor'] = $revinfo['ip'];
-    }
-
-    // draft
-    $draft = getCacheName($info['client'].$ID, '.draft');
-    if(file_exists($draft)) {
-        if(@filemtime($draft) < @filemtime(wikiFN($ID))) {
-            // remove stale draft
-            @unlink($draft);
-        } else {
-            $info['draft'] = $draft;
-        }
-    }
-
-    return $info;
-}
-
-/**
- * Initialize and/or fill global $JSINFO with some basic info to be given to javascript
- */
-function jsinfo() {
-    global $JSINFO, $ID, $INFO, $ACT;
-
-    if (!is_array($JSINFO)) {
-        $JSINFO = [];
-    }
-    //export minimal info to JS, plugins can add more
-    $JSINFO['id']                    = $ID;
-    $JSINFO['namespace']             = (string) $INFO['namespace'];
-    $JSINFO['ACT']                   = act_clean($ACT);
-    $JSINFO['useHeadingNavigation']  = (int) useHeading('navigation');
-    $JSINFO['useHeadingContent']     = (int) useHeading('content');
-}
-
-/**
- * Return information about the current media item as an associative array.
- *
- * @return array with info about current media item
- */
-function mediainfo(){
-    global $NS;
-    global $IMG;
-
-    $info = basicinfo("$NS:*");
-    $info['image'] = $IMG;
-
-    return $info;
-}
-
-/**
- * Build an string of URL parameters
- *
- * @author Andreas Gohr
- *
- * @param array  $params    array with key-value pairs
- * @param string $sep       series of pairs are separated by this character
- * @return string query string
- */
-function buildURLparams($params, $sep = '&amp;') {
-    $url = '';
-    $amp = false;
-    foreach($params as $key => $val) {
-        if($amp) $url .= $sep;
-
-        $url .= rawurlencode($key).'=';
-        $url .= rawurlencode((string) $val);
-        $amp = true;
-    }
-    return $url;
-}
-
-/**
- * Build an string of html tag attributes
- *
- * Skips keys starting with '_', values get HTML encoded
- *
- * @author Andreas Gohr
- *
- * @param array $params    array with (attribute name-attribute value) pairs
- * @param bool  $skipempty skip empty string values?
- * @return string
- */
-function buildAttributes($params, $skipempty = false) {
-    $url   = '';
-    $white = false;
-    foreach($params as $key => $val) {
-        if($key{0} == '_') continue;
-        if($val === '' && $skipempty) continue;
-        if($white) $url .= ' ';
-
-        $url .= $key.'="';
-        $url .= htmlspecialchars($val);
-        $url .= '"';
-        $white = true;
-    }
-    return $url;
-}
-
-/**
- * This builds the breadcrumb trail and returns it as array
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- *
- * @return string[] with the data: array(pageid=>name, ... )
- */
-function breadcrumbs() {
-    // we prepare the breadcrumbs early for quick session closing
-    static $crumbs = null;
-    if($crumbs != null) return $crumbs;
-
-    global $ID;
-    global $ACT;
-    global $conf;
-
-    //first visit?
-    $crumbs = isset($_SESSION[DOKU_COOKIE]['bc']) ? $_SESSION[DOKU_COOKIE]['bc'] : array();
-    //we only save on show and existing visible wiki documents
-    $file = wikiFN($ID);
-    if($ACT != 'show' || isHiddenPage($ID) || !file_exists($file)) {
-        $_SESSION[DOKU_COOKIE]['bc'] = $crumbs;
-        return $crumbs;
-    }
-
-    // page names
-    $name = noNSorNS($ID);
-    if(useHeading('navigation')) {
-        // get page title
-        $title = p_get_first_heading($ID, METADATA_RENDER_USING_SIMPLE_CACHE);
-        if($title) {
-            $name = $title;
-        }
-    }
-
-    //remove ID from array
-    if(isset($crumbs[$ID])) {
-        unset($crumbs[$ID]);
-    }
-
-    //add to array
-    $crumbs[$ID] = $name;
-    //reduce size
-    while(count($crumbs) > $conf['breadcrumbs']) {
-        array_shift($crumbs);
-    }
-    //save to session
-    $_SESSION[DOKU_COOKIE]['bc'] = $crumbs;
-    return $crumbs;
-}
-
-/**
- * Filter for page IDs
- *
- * This is run on a ID before it is outputted somewhere
- * currently used to replace the colon with something else
- * on Windows (non-IIS) systems and to have proper URL encoding
- *
- * See discussions at https://github.com/splitbrain/dokuwiki/pull/84 and
- * https://github.com/splitbrain/dokuwiki/pull/173 why we use a whitelist of
- * unaffected servers instead of blacklisting affected servers here.
- *
- * Urlencoding is ommitted when the second parameter is false
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- *
- * @param string $id pageid being filtered
- * @param bool   $ue apply urlencoding?
- * @return string
- */
-function idfilter($id, $ue = true) {
-    global $conf;
-    /* @var Input $INPUT */
-    global $INPUT;
-
-    if($conf['useslash'] && $conf['userewrite']) {
-        $id = strtr($id, ':', '/');
-    } elseif(strtoupper(substr(PHP_OS, 0, 3)) === 'WIN' &&
-        $conf['userewrite'] &&
-        strpos($INPUT->server->str('SERVER_SOFTWARE'), 'Microsoft-IIS') === false
-    ) {
-        $id = strtr($id, ':', ';');
-    }
-    if($ue) {
-        $id = rawurlencode($id);
-        $id = str_replace('%3A', ':', $id); //keep as colon
-        $id = str_replace('%3B', ';', $id); //keep as semicolon
-        $id = str_replace('%2F', '/', $id); //keep as slash
-    }
-    return $id;
-}
-
-/**
- * This builds a link to a wikipage
- *
- * It handles URL rewriting and adds additional parameters
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- *
- * @param string       $id             page id, defaults to start page
- * @param string|array $urlParameters  URL parameters, associative array recommended
- * @param bool         $absolute       request an absolute URL instead of relative
- * @param string       $separator      parameter separator
- * @return string
- */
-function wl($id = '', $urlParameters = '', $absolute = false, $separator = '&amp;') {
-    global $conf;
-    if(is_array($urlParameters)) {
-        if(isset($urlParameters['rev']) && !$urlParameters['rev']) unset($urlParameters['rev']);
-        if(isset($urlParameters['at']) && $conf['date_at_format']) $urlParameters['at'] = date($conf['date_at_format'],$urlParameters['at']);
-        $urlParameters = buildURLparams($urlParameters, $separator);
-    } else {
-        $urlParameters = str_replace(',', $separator, $urlParameters);
-    }
-    if($id === '') {
-        $id = $conf['start'];
-    }
-    $id = idfilter($id);
-    if($absolute) {
-        $xlink = DOKU_URL;
-    } else {
-        $xlink = DOKU_BASE;
-    }
-
-    if($conf['userewrite'] == 2) {
-        $xlink .= DOKU_SCRIPT.'/'.$id;
-        if($urlParameters) $xlink .= '?'.$urlParameters;
-    } elseif($conf['userewrite']) {
-        $xlink .= $id;
-        if($urlParameters) $xlink .= '?'.$urlParameters;
-    } elseif($id) {
-        $xlink .= DOKU_SCRIPT.'?id='.$id;
-        if($urlParameters) $xlink .= $separator.$urlParameters;
-    } else {
-        $xlink .= DOKU_SCRIPT;
-        if($urlParameters) $xlink .= '?'.$urlParameters;
-    }
-
-    return $xlink;
-}
-
-/**
- * This builds a link to an alternate page format
- *
- * Handles URL rewriting if enabled. Follows the style of wl().
- *
- * @author Ben Coburn <btcoburn@silicodon.net>
- * @param string       $id             page id, defaults to start page
- * @param string       $format         the export renderer to use
- * @param string|array $urlParameters  URL parameters, associative array recommended
- * @param bool         $abs            request an absolute URL instead of relative
- * @param string       $sep            parameter separator
- * @return string
- */
-function exportlink($id = '', $format = 'raw', $urlParameters = '', $abs = false, $sep = '&amp;') {
-    global $conf;
-    if(is_array($urlParameters)) {
-        $urlParameters = buildURLparams($urlParameters, $sep);
-    } else {
-        $urlParameters = str_replace(',', $sep, $urlParameters);
-    }
-
-    $format = rawurlencode($format);
-    $id     = idfilter($id);
-    if($abs) {
-        $xlink = DOKU_URL;
-    } else {
-        $xlink = DOKU_BASE;
-    }
-
-    if($conf['userewrite'] == 2) {
-        $xlink .= DOKU_SCRIPT.'/'.$id.'?do=export_'.$format;
-        if($urlParameters) $xlink .= $sep.$urlParameters;
-    } elseif($conf['userewrite'] == 1) {
-        $xlink .= '_export/'.$format.'/'.$id;
-        if($urlParameters) $xlink .= '?'.$urlParameters;
-    } else {
-        $xlink .= DOKU_SCRIPT.'?do=export_'.$format.$sep.'id='.$id;
-        if($urlParameters) $xlink .= $sep.$urlParameters;
-    }
-
-    return $xlink;
-}
-
-/**
- * Build a link to a media file
- *
- * Will return a link to the detail page if $direct is false
- *
- * The $more parameter should always be given as array, the function then
- * will strip default parameters to produce even cleaner URLs
- *
- * @param string  $id     the media file id or URL
- * @param mixed   $more   string or array with additional parameters
- * @param bool    $direct link to detail page if false
- * @param string  $sep    URL parameter separator
- * @param bool    $abs    Create an absolute URL
- * @return string
- */
-function ml($id = '', $more = '', $direct = true, $sep = '&amp;', $abs = false) {
-    global $conf;
-    $isexternalimage = media_isexternal($id);
-    if(!$isexternalimage) {
-        $id = cleanID($id);
-    }
-
-    if(is_array($more)) {
-        // add token for resized images
-        if(!empty($more['w']) || !empty($more['h']) || $isexternalimage){
-            $more['tok'] = media_get_token($id,$more['w'],$more['h']);
-        }
-        // strip defaults for shorter URLs
-        if(isset($more['cache']) && $more['cache'] == 'cache') unset($more['cache']);
-        if(empty($more['w'])) unset($more['w']);
-        if(empty($more['h'])) unset($more['h']);
-        if(isset($more['id']) && $direct) unset($more['id']);
-        if(isset($more['rev']) && !$more['rev']) unset($more['rev']);
-        $more = buildURLparams($more, $sep);
-    } else {
-        $matches = array();
-        if (preg_match_all('/\b(w|h)=(\d*)\b/',$more,$matches,PREG_SET_ORDER) || $isexternalimage){
-            $resize = array('w'=>0, 'h'=>0);
-            foreach ($matches as $match){
-                $resize[$match[1]] = $match[2];
-            }
-            $more .= $more === '' ? '' : $sep;
-            $more .= 'tok='.media_get_token($id,$resize['w'],$resize['h']);
-        }
-        $more = str_replace('cache=cache', '', $more); //skip default
-        $more = str_replace(',,', ',', $more);
-        $more = str_replace(',', $sep, $more);
-    }
-
-    if($abs) {
-        $xlink = DOKU_URL;
-    } else {
-        $xlink = DOKU_BASE;
-    }
-
-    // external URLs are always direct without rewriting
-    if($isexternalimage) {
-        $xlink .= 'lib/exe/fetch.php';
-        $xlink .= '?'.$more;
-        $xlink .= $sep.'media='.rawurlencode($id);
-        return $xlink;
-    }
-
-    $id = idfilter($id);
-
-    // decide on scriptname
-    if($direct) {
-        if($conf['userewrite'] == 1) {
-            $script = '_media';
-        } else {
-            $script = 'lib/exe/fetch.php';
-        }
-    } else {
-        if($conf['userewrite'] == 1) {
-            $script = '_detail';
-        } else {
-            $script = 'lib/exe/detail.php';
-        }
-    }
-
-    // build URL based on rewrite mode
-    if($conf['userewrite']) {
-        $xlink .= $script.'/'.$id;
-        if($more) $xlink .= '?'.$more;
-    } else {
-        if($more) {
-            $xlink .= $script.'?'.$more;
-            $xlink .= $sep.'media='.$id;
-        } else {
-            $xlink .= $script.'?media='.$id;
-        }
-    }
-
-    return $xlink;
-}
-
-/**
- * Returns the URL to the DokuWiki base script
- *
- * Consider using wl() instead, unless you absoutely need the doku.php endpoint
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- *
- * @return string
- */
-function script() {
-    return DOKU_BASE.DOKU_SCRIPT;
-}
-
-/**
- * Spamcheck against wordlist
- *
- * Checks the wikitext against a list of blocked expressions
- * returns true if the text contains any bad words
- *
- * Triggers COMMON_WORDBLOCK_BLOCKED
- *
- *  Action Plugins can use this event to inspect the blocked data
- *  and gain information about the user who was blocked.
- *
- *  Event data:
- *    data['matches']  - array of matches
- *    data['userinfo'] - information about the blocked user
- *      [ip]           - ip address
- *      [user]         - username (if logged in)
- *      [mail]         - mail address (if logged in)
- *      [name]         - real name (if logged in)
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- * @author Michael Klier <chi@chimeric.de>
- *
- * @param  string $text - optional text to check, if not given the globals are used
- * @return bool         - true if a spam word was found
- */
-function checkwordblock($text = '') {
-    global $TEXT;
-    global $PRE;
-    global $SUF;
-    global $SUM;
-    global $conf;
-    global $INFO;
-    /* @var Input $INPUT */
-    global $INPUT;
-
-    if(!$conf['usewordblock']) return false;
-
-    if(!$text) $text = "$PRE $TEXT $SUF $SUM";
-
-    // we prepare the text a tiny bit to prevent spammers circumventing URL checks
-    $text = preg_replace('!(\b)(www\.[\w.:?\-;,]+?\.[\w.:?\-;,]+?[\w/\#~:.?+=&%@\!\-.:?\-;,]+?)([.:?\-;,]*[^\w/\#~:.?+=&%@\!\-.:?\-;,])!i', '\1http://\2 \2\3', $text);
-
-    $wordblocks = getWordblocks();
-    // how many lines to read at once (to work around some PCRE limits)
-    if(version_compare(phpversion(), '4.3.0', '<')) {
-        // old versions of PCRE define a maximum of parenthesises even if no
-        // backreferences are used - the maximum is 99
-        // this is very bad performancewise and may even be too high still
-        $chunksize = 40;
-    } else {
-        // read file in chunks of 200 - this should work around the
-        // MAX_PATTERN_SIZE in modern PCRE
-        $chunksize = 200;
-    }
-    while($blocks = array_splice($wordblocks, 0, $chunksize)) {
-        $re = array();
-        // build regexp from blocks
-        foreach($blocks as $block) {
-            $block = preg_replace('/#.*$/', '', $block);
-            $block = trim($block);
-            if(empty($block)) continue;
-            $re[] = $block;
-        }
-        if(count($re) && preg_match('#('.join('|', $re).')#si', $text, $matches)) {
-            // prepare event data
-            $data = array();
-            $data['matches']        = $matches;
-            $data['userinfo']['ip'] = $INPUT->server->str('REMOTE_ADDR');
-            if($INPUT->server->str('REMOTE_USER')) {
-                $data['userinfo']['user'] = $INPUT->server->str('REMOTE_USER');
-                $data['userinfo']['name'] = $INFO['userinfo']['name'];
-                $data['userinfo']['mail'] = $INFO['userinfo']['mail'];
-            }
-            $callback = function () {
-                return true;
-            };
-            return trigger_event('COMMON_WORDBLOCK_BLOCKED', $data, $callback, true);
-        }
-    }
-    return false;
-}
-
-/**
- * Return the IP of the client
- *
- * Honours X-Forwarded-For and X-Real-IP Proxy Headers
- *
- * It returns a comma separated list of IPs if the above mentioned
- * headers are set. If the single parameter is set, it tries to return
- * a routable public address, prefering the ones suplied in the X
- * headers
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- *
- * @param  boolean $single If set only a single IP is returned
- * @return string
- */
-function clientIP($single = false) {
-    /* @var Input $INPUT */
-    global $INPUT;
-
-    $ip   = array();
-    $ip[] = $INPUT->server->str('REMOTE_ADDR');
-    if($INPUT->server->str('HTTP_X_FORWARDED_FOR')) {
-        $ip = array_merge($ip, explode(',', str_replace(' ', '', $INPUT->server->str('HTTP_X_FORWARDED_FOR'))));
-    }
-    if($INPUT->server->str('HTTP_X_REAL_IP')) {
-        $ip = array_merge($ip, explode(',', str_replace(' ', '', $INPUT->server->str('HTTP_X_REAL_IP'))));
-    }
-
-    // some IPv4/v6 regexps borrowed from Feyd
-    // see: http://forums.devnetwork.net/viewtopic.php?f=38&t=53479
-    $dec_octet   = '(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|[0-9])';
-    $hex_digit   = '[A-Fa-f0-9]';
-    $h16         = "{$hex_digit}{1,4}";
-    $IPv4Address = "$dec_octet\\.$dec_octet\\.$dec_octet\\.$dec_octet";
-    $ls32        = "(?:$h16:$h16|$IPv4Address)";
-    $IPv6Address =
-        "(?:(?:{$IPv4Address})|(?:".
-            "(?:$h16:){6}$ls32".
-            "|::(?:$h16:){5}$ls32".
-            "|(?:$h16)?::(?:$h16:){4}$ls32".
-            "|(?:(?:$h16:){0,1}$h16)?::(?:$h16:){3}$ls32".
-            "|(?:(?:$h16:){0,2}$h16)?::(?:$h16:){2}$ls32".
-            "|(?:(?:$h16:){0,3}$h16)?::(?:$h16:){1}$ls32".
-            "|(?:(?:$h16:){0,4}$h16)?::$ls32".
-            "|(?:(?:$h16:){0,5}$h16)?::$h16".
-            "|(?:(?:$h16:){0,6}$h16)?::".
-            ")(?:\\/(?:12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9]))?)";
-
-    // remove any non-IP stuff
-    $cnt   = count($ip);
-    $match = array();
-    for($i = 0; $i < $cnt; $i++) {
-        if(preg_match("/^$IPv4Address$/", $ip[$i], $match) || preg_match("/^$IPv6Address$/", $ip[$i], $match)) {
-            $ip[$i] = $match[0];
-        } else {
-            $ip[$i] = '';
-        }
-        if(empty($ip[$i])) unset($ip[$i]);
-    }
-    $ip = array_values(array_unique($ip));
-    if(!$ip[0]) $ip[0] = '0.0.0.0'; // for some strange reason we don't have a IP
-
-    if(!$single) return join(',', $ip);
-
-    // decide which IP to use, trying to avoid local addresses
-    $ip = array_reverse($ip);
-    foreach($ip as $i) {
-        if(preg_match('/^(::1|[fF][eE]80:|127\.|10\.|192\.168\.|172\.((1[6-9])|(2[0-9])|(3[0-1]))\.)/', $i)) {
-            continue;
-        } else {
-            return $i;
-        }
-    }
-    // still here? just use the first (last) address
-    return $ip[0];
-}
-
-/**
- * Check if the browser is on a mobile device
- *
- * Adapted from the example code at url below
- *
- * @link http://www.brainhandles.com/2007/10/15/detecting-mobile-browsers/#code
- *
- * @return bool if true, client is mobile browser; otherwise false
- */
-function clientismobile() {
-    /* @var Input $INPUT */
-    global $INPUT;
-
-    if($INPUT->server->has('HTTP_X_WAP_PROFILE')) return true;
-
-    if(preg_match('/wap\.|\.wap/i', $INPUT->server->str('HTTP_ACCEPT'))) return true;
-
-    if(!$INPUT->server->has('HTTP_USER_AGENT')) return false;
-
-    $uamatches = 'midp|j2me|avantg|docomo|novarra|palmos|palmsource|240x320|opwv|chtml|pda|windows ce|mmp\/|blackberry|mib\/|symbian|wireless|nokia|hand|mobi|phone|cdm|up\.b|audio|SIE\-|SEC\-|samsung|HTC|mot\-|mitsu|sagem|sony|alcatel|lg|erics|vx|NEC|philips|mmm|xx|panasonic|sharp|wap|sch|rover|pocket|benq|java|pt|pg|vox|amoi|bird|compal|kg|voda|sany|kdd|dbt|sendo|sgh|gradi|jb|\d\d\di|moto';
-
-    if(preg_match("/$uamatches/i", $INPUT->server->str('HTTP_USER_AGENT'))) return true;
-
-    return false;
-}
-
-/**
- * check if a given link is interwiki link
- *
- * @param string $link the link, e.g. "wiki>page"
- * @return bool
- */
-function link_isinterwiki($link){
-    if (preg_match('/^[a-zA-Z0-9\.]+>/u',$link)) return true;
-    return false;
-}
-
-/**
- * Convert one or more comma separated IPs to hostnames
- *
- * If $conf['dnslookups'] is disabled it simply returns the input string
- *
- * @author Glen Harris <astfgl@iamnota.org>
- *
- * @param  string $ips comma separated list of IP addresses
- * @return string a comma separated list of hostnames
- */
-function gethostsbyaddrs($ips) {
-    global $conf;
-    if(!$conf['dnslookups']) return $ips;
-
-    $hosts = array();
-    $ips   = explode(',', $ips);
-
-    if(is_array($ips)) {
-        foreach($ips as $ip) {
-            $hosts[] = gethostbyaddr(trim($ip));
-        }
-        return join(',', $hosts);
-    } else {
-        return gethostbyaddr(trim($ips));
-    }
-}
-
-/**
- * Checks if a given page is currently locked.
- *
- * removes stale lockfiles
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- *
- * @param string $id page id
- * @return bool page is locked?
- */
-function checklock($id) {
-    global $conf;
-    /* @var Input $INPUT */
-    global $INPUT;
-
-    $lock = wikiLockFN($id);
-
-    //no lockfile
-    if(!file_exists($lock)) return false;
-
-    //lockfile expired
-    if((time() - filemtime($lock)) > $conf['locktime']) {
-        @unlink($lock);
-        return false;
-    }
-
-    //my own lock
-    @list($ip, $session) = explode("\n", io_readFile($lock));
-    if($ip == $INPUT->server->str('REMOTE_USER') || $ip == clientIP() || (session_id() && $session == session_id())) {
-        return false;
-    }
-
-    return $ip;
-}
-
-/**
- * Lock a page for editing
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- *
- * @param string $id page id to lock
- */
-function lock($id) {
-    global $conf;
-    /* @var Input $INPUT */
-    global $INPUT;
-
-    if($conf['locktime'] == 0) {
-        return;
-    }
-
-    $lock = wikiLockFN($id);
-    if($INPUT->server->str('REMOTE_USER')) {
-        io_saveFile($lock, $INPUT->server->str('REMOTE_USER'));
-    } else {
-        io_saveFile($lock, clientIP()."\n".session_id());
-    }
-}
-
-/**
- * Unlock a page if it was locked by the user
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- *
- * @param string $id page id to unlock
- * @return bool true if a lock was removed
- */
-function unlock($id) {
-    /* @var Input $INPUT */
-    global $INPUT;
-
-    $lock = wikiLockFN($id);
-    if(file_exists($lock)) {
-        @list($ip, $session) = explode("\n", io_readFile($lock));
-        if($ip == $INPUT->server->str('REMOTE_USER') || $ip == clientIP() || $session == session_id()) {
-            @unlink($lock);
-            return true;
-        }
-    }
-    return false;
-}
-
-/**
- * convert line ending to unix format
- *
- * also makes sure the given text is valid UTF-8
- *
- * @see    formText() for 2crlf conversion
- * @author Andreas Gohr <andi@splitbrain.org>
- *
- * @param string $text
- * @return string
- */
-function cleanText($text) {
-    $text = preg_replace("/(\015\012)|(\015)/", "\012", $text);
-
-    // if the text is not valid UTF-8 we simply assume latin1
-    // this won't break any worse than it breaks with the wrong encoding
-    // but might actually fix the problem in many cases
-    if(!utf8_check($text)) $text = utf8_encode($text);
-
-    return $text;
-}
-
-/**
- * Prepares text for print in Webforms by encoding special chars.
- * It also converts line endings to Windows format which is
- * pseudo standard for webforms.
- *
- * @see    cleanText() for 2unix conversion
- * @author Andreas Gohr <andi@splitbrain.org>
- *
- * @param string $text
- * @return string
- */
-function formText($text) {
-    $text = str_replace("\012", "\015\012", $text);
-    return htmlspecialchars($text);
-}
-
-/**
- * Returns the specified local text in raw format
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- *
- * @param string $id   page id
- * @param string $ext  extension of file being read, default 'txt'
- * @return string
- */
-function rawLocale($id, $ext = 'txt') {
-    return io_readFile(localeFN($id, $ext));
-}
-
-/**
- * Returns the raw WikiText
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- *
- * @param string $id   page id
- * @param string|int $rev  timestamp when a revision of wikitext is desired
- * @return string
- */
-function rawWiki($id, $rev = '') {
-    return io_readWikiPage(wikiFN($id, $rev), $id, $rev);
-}
-
-/**
- * Returns the pagetemplate contents for the ID's namespace
- *
- * @triggers COMMON_PAGETPL_LOAD
- * @author Andreas Gohr <andi@splitbrain.org>
- *
- * @param string $id the id of the page to be created
- * @return string parsed pagetemplate content
- */
-function pageTemplate($id) {
-    global $conf;
-
-    if(is_array($id)) $id = $id[0];
-
-    // prepare initial event data
-    $data = array(
-        'id'        => $id, // the id of the page to be created
-        'tpl'       => '', // the text used as template
-        'tplfile'   => '', // the file above text was/should be loaded from
-        'doreplace' => true // should wildcard replacements be done on the text?
-    );
-
-    $evt = new Doku_Event('COMMON_PAGETPL_LOAD', $data);
-    if($evt->advise_before(true)) {
-        // the before event might have loaded the content already
-        if(empty($data['tpl'])) {
-            // if the before event did not set a template file, try to find one
-            if(empty($data['tplfile'])) {
-                $path = dirname(wikiFN($id));
-                if(file_exists($path.'/_template.txt')) {
-                    $data['tplfile'] = $path.'/_template.txt';
-                } else {
-                    // search upper namespaces for templates
-                    $len = strlen(rtrim($conf['datadir'], '/'));
-                    while(strlen($path) >= $len) {
-                        if(file_exists($path.'/__template.txt')) {
-                            $data['tplfile'] = $path.'/__template.txt';
-                            break;
-                        }
-                        $path = substr($path, 0, strrpos($path, '/'));
-                    }
-                }
-            }
-            // load the content
-            $data['tpl'] = io_readFile($data['tplfile']);
-        }
-        if($data['doreplace']) parsePageTemplate($data);
-    }
-    $evt->advise_after();
-    unset($evt);
-
-    return $data['tpl'];
-}
-
-/**
- * Performs common page template replacements
- * This works on data from COMMON_PAGETPL_LOAD
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- *
- * @param array $data array with event data
- * @return string
- */
-function parsePageTemplate(&$data) {
-    /**
-     * @var string $id        the id of the page to be created
-     * @var string $tpl       the text used as template
-     * @var string $tplfile   the file above text was/should be loaded from
-     * @var bool   $doreplace should wildcard replacements be done on the text?
-     */
-    extract($data);
-
-    global $USERINFO;
-    global $conf;
-    /* @var Input $INPUT */
-    global $INPUT;
-
-    // replace placeholders
-    $file = noNS($id);
-    $page = strtr($file, $conf['sepchar'], ' ');
-
-    $tpl = str_replace(
-        array(
-             '@ID@',
-             '@NS@',
-             '@CURNS@',
-             '@FILE@',
-             '@!FILE@',
-             '@!FILE!@',
-             '@PAGE@',
-             '@!PAGE@',
-             '@!!PAGE@',
-             '@!PAGE!@',
-             '@USER@',
-             '@NAME@',
-             '@MAIL@',
-             '@DATE@',
-        ),
-        array(
-             $id,
-             getNS($id),
-             curNS($id),
-             $file,
-             utf8_ucfirst($file),
-             utf8_strtoupper($file),
-             $page,
-             utf8_ucfirst($page),
-             utf8_ucwords($page),
-             utf8_strtoupper($page),
-             $INPUT->server->str('REMOTE_USER'),
-             $USERINFO['name'],
-             $USERINFO['mail'],
-             $conf['dformat'],
-        ), $tpl
-    );
-
-    // we need the callback to work around strftime's char limit
-    $tpl = preg_replace_callback(
-        '/%./',
-        function ($m) {
-            return strftime($m[0]);
-        },
-        $tpl
-    );
-    $data['tpl'] = $tpl;
-    return $tpl;
-}
-
-/**
- * Returns the raw Wiki Text in three slices.
- *
- * The range parameter needs to have the form "from-to"
- * and gives the range of the section in bytes - no
- * UTF-8 awareness is needed.
- * The returned order is prefix, section and suffix.
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- *
- * @param string $range in form "from-to"
- * @param string $id    page id
- * @param string $rev   optional, the revision timestamp
- * @return string[] with three slices
- */
-function rawWikiSlices($range, $id, $rev = '') {
-    $text = io_readWikiPage(wikiFN($id, $rev), $id, $rev);
-
-    // Parse range
-    list($from, $to) = explode('-', $range, 2);
-    // Make range zero-based, use defaults if marker is missing
-    $from = !$from ? 0 : ($from - 1);
-    $to   = !$to ? strlen($text) : ($to - 1);
-
-    $slices = array();
-    $slices[0] = substr($text, 0, $from);
-    $slices[1] = substr($text, $from, $to - $from);
-    $slices[2] = substr($text, $to);
-    return $slices;
-}
-
-/**
- * Joins wiki text slices
- *
- * function to join the text slices.
- * When the pretty parameter is set to true it adds additional empty
- * lines between sections if needed (used on saving).
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- *
- * @param string $pre   prefix
- * @param string $text  text in the middle
- * @param string $suf   suffix
- * @param bool $pretty add additional empty lines between sections
- * @return string
- */
-function con($pre, $text, $suf, $pretty = false) {
-    if($pretty) {
-        if($pre !== '' && substr($pre, -1) !== "\n" &&
-            substr($text, 0, 1) !== "\n"
-        ) {
-            $pre .= "\n";
-        }
-        if($suf !== '' && substr($text, -1) !== "\n" &&
-            substr($suf, 0, 1) !== "\n"
-        ) {
-            $text .= "\n";
-        }
-    }
-
-    return $pre.$text.$suf;
-}
-
-/**
- * Checks if the current page version is newer than the last entry in the page's
- * changelog. If so, we assume it has been an external edit and we create an
- * attic copy and add a proper changelog line.
- *
- * This check is only executed when the page is about to be saved again from the
- * wiki, triggered in @see saveWikiText()
- *
- * @param string $id the page ID
- */
-function detectExternalEdit($id) {
-    global $lang;
-
-    $fileLastMod = wikiFN($id);
-    $lastMod     = @filemtime($fileLastMod); // from page
-    $pagelog     = new PageChangeLog($id, 1024);
-    $lastRev     = $pagelog->getRevisions(-1, 1); // from changelog
-    $lastRev     = (int) (empty($lastRev) ? 0 : $lastRev[0]);
-
-    if(!file_exists(wikiFN($id, $lastMod)) && file_exists($fileLastMod) && $lastMod >= $lastRev) {
-        // add old revision to the attic if missing
-        saveOldRevision($id);
-        // add a changelog entry if this edit came from outside dokuwiki
-        if($lastMod > $lastRev) {
-            $fileLastRev = wikiFN($id, $lastRev);
-            $revinfo = $pagelog->getRevisionInfo($lastRev);
-            if(empty($lastRev) || !file_exists($fileLastRev) || $revinfo['type'] == DOKU_CHANGE_TYPE_DELETE) {
-                $filesize_old = 0;
-            } else {
-                $filesize_old = io_getSizeFile($fileLastRev);
-            }
-            $filesize_new = filesize($fileLastMod);
-            $sizechange = $filesize_new - $filesize_old;
-
-            addLogEntry($lastMod, $id, DOKU_CHANGE_TYPE_EDIT, $lang['external_edit'], '', array('ExternalEdit'=> true), $sizechange);
-            // remove soon to be stale instructions
-            $cache = new cache_instructions($id, $fileLastMod);
-            $cache->removeCache();
-        }
-    }
-}
-
-/**
- * Saves a wikitext by calling io_writeWikiPage.
- * Also directs changelog and attic updates.
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- * @author Ben Coburn <btcoburn@silicodon.net>
- *
- * @param string $id       page id
- * @param string $text     wikitext being saved
- * @param string $summary  summary of text update
- * @param bool   $minor    mark this saved version as minor update
- */
-function saveWikiText($id, $text, $summary, $minor = false) {
-    /* Note to developers:
-       This code is subtle and delicate. Test the behavior of
-       the attic and changelog with dokuwiki and external edits
-       after any changes. External edits change the wiki page
-       directly without using php or dokuwiki.
-     */
-    global $conf;
-    global $lang;
-    global $REV;
-    /* @var Input $INPUT */
-    global $INPUT;
-
-    // prepare data for event
-    $svdta = array();
-    $svdta['id']             = $id;
-    $svdta['file']           = wikiFN($id);
-    $svdta['revertFrom']     = $REV;
-    $svdta['oldRevision']    = @filemtime($svdta['file']);
-    $svdta['newRevision']    = 0;
-    $svdta['newContent']     = $text;
-    $svdta['oldContent']     = rawWiki($id);
-    $svdta['summary']        = $summary;
-    $svdta['contentChanged'] = ($svdta['newContent'] != $svdta['oldContent']);
-    $svdta['changeInfo']     = '';
-    $svdta['changeType']     = DOKU_CHANGE_TYPE_EDIT;
-    $svdta['sizechange']     = null;
-
-    // select changelog line type
-    if($REV) {
-        $svdta['changeType']  = DOKU_CHANGE_TYPE_REVERT;
-        $svdta['changeInfo'] = $REV;
-    } else if(!file_exists($svdta['file'])) {
-        $svdta['changeType'] = DOKU_CHANGE_TYPE_CREATE;
-    } else if(trim($text) == '') {
-        // empty or whitespace only content deletes
-        $svdta['changeType'] = DOKU_CHANGE_TYPE_DELETE;
-        // autoset summary on deletion
-        if(blank($svdta['summary'])) {
-            $svdta['summary'] = $lang['deleted'];
-        }
-    } else if($minor && $conf['useacl'] && $INPUT->server->str('REMOTE_USER')) {
-        //minor edits only for logged in users
-        $svdta['changeType'] = DOKU_CHANGE_TYPE_MINOR_EDIT;
-    }
-
-    $event = new Doku_Event('COMMON_WIKIPAGE_SAVE', $svdta);
-    if(!$event->advise_before()) return;
-
-    // if the content has not been changed, no save happens (plugins may override this)
-    if(!$svdta['contentChanged']) return;
-
-    detectExternalEdit($id);
-
-    if(
-        $svdta['changeType'] == DOKU_CHANGE_TYPE_CREATE ||
-        ($svdta['changeType'] == DOKU_CHANGE_TYPE_REVERT && !file_exists($svdta['file']))
-    ) {
-        $filesize_old = 0;
-    } else {
-        $filesize_old = filesize($svdta['file']);
-    }
-    if($svdta['changeType'] == DOKU_CHANGE_TYPE_DELETE) {
-        // Send "update" event with empty data, so plugins can react to page deletion
-        $data = array(array($svdta['file'], '', false), getNS($id), noNS($id), false);
-        trigger_event('IO_WIKIPAGE_WRITE', $data);
-        // pre-save deleted revision
-        @touch($svdta['file']);
-        clearstatcache();
-        $svdta['newRevision'] = saveOldRevision($id);
-        // remove empty file
-        @unlink($svdta['file']);
-        $filesize_new = 0;
-        // don't remove old meta info as it should be saved, plugins can use IO_WIKIPAGE_WRITE for removing their metadata...
-        // purge non-persistant meta data
-        p_purge_metadata($id);
-        // remove empty namespaces
-        io_sweepNS($id, 'datadir');
-        io_sweepNS($id, 'mediadir');
-    } else {
-        // save file (namespace dir is created in io_writeWikiPage)
-        io_writeWikiPage($svdta['file'], $svdta['newContent'], $id);
-        // pre-save the revision, to keep the attic in sync
-        $svdta['newRevision'] = saveOldRevision($id);
-        $filesize_new = filesize($svdta['file']);
-    }
-    $svdta['sizechange'] = $filesize_new - $filesize_old;
-
-    $event->advise_after();
-
-    addLogEntry($svdta['newRevision'], $svdta['id'], $svdta['changeType'], $svdta['summary'], $svdta['changeInfo'], null, $svdta['sizechange']);
-
-    // send notify mails
-    notify($svdta['id'], 'admin', $svdta['oldRevision'], $svdta['summary'], $minor);
-    notify($svdta['id'], 'subscribers', $svdta['oldRevision'], $svdta['summary'], $minor);
-
-    // update the purgefile (timestamp of the last time anything within the wiki was changed)
-    io_saveFile($conf['cachedir'].'/purgefile', time());
-
-    // if useheading is enabled, purge the cache of all linking pages
-    if(useHeading('content')) {
-        $pages = ft_backlinks($id, true);
-        foreach($pages as $page) {
-            $cache = new cache_renderer($page, wikiFN($page), 'xhtml');
-            $cache->removeCache();
-        }
-    }
-}
-
-/**
- * moves the current version to the attic and returns its
- * revision date
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- *
- * @param string $id page id
- * @return int|string revision timestamp
- */
-function saveOldRevision($id) {
-    $oldf = wikiFN($id);
-    if(!file_exists($oldf)) return '';
-    $date = filemtime($oldf);
-    $newf = wikiFN($id, $date);
-    io_writeWikiPage($newf, rawWiki($id), $id, $date);
-    return $date;
-}
-
-/**
- * Sends a notify mail on page change or registration
- *
- * @param string     $id       The changed page
- * @param string     $who      Who to notify (admin|subscribers|register)
- * @param int|string $rev Old page revision
- * @param string     $summary  What changed
- * @param boolean    $minor    Is this a minor edit?
- * @param string[]   $replace  Additional string substitutions, @KEY@ to be replaced by value
- * @return bool
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- */
-function notify($id, $who, $rev = '', $summary = '', $minor = false, $replace = array()) {
-    global $conf;
-    /* @var Input $INPUT */
-    global $INPUT;
-
-    // decide if there is something to do, eg. whom to mail
-    if($who == 'admin') {
-        if(empty($conf['notify'])) return false; //notify enabled?
-        $tpl = 'mailtext';
-        $to  = $conf['notify'];
-    } elseif($who == 'subscribers') {
-        if(!actionOK('subscribe')) return false; //subscribers enabled?
-        if($conf['useacl'] && $INPUT->server->str('REMOTE_USER') && $minor) return false; //skip minors
-        $data = array('id' => $id, 'addresslist' => '', 'self' => false, 'replacements' => $replace);
-        trigger_event(
-            'COMMON_NOTIFY_ADDRESSLIST', $data,
-            array(new Subscription(), 'notifyaddresses')
-        );
-        $to = $data['addresslist'];
-        if(empty($to)) return false;
-        $tpl = 'subscr_single';
-    } else {
-        return false; //just to be safe
-    }
-
-    // prepare content
-    $subscription = new Subscription();
-    return $subscription->send_diff($to, $tpl, $id, $rev, $summary);
-}
-
-/**
- * extracts the query from a search engine referrer
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- * @author Todd Augsburger <todd@rollerorgans.com>
- *
- * @return array|string
- */
-function getGoogleQuery() {
-    /* @var Input $INPUT */
-    global $INPUT;
-
-    if(!$INPUT->server->has('HTTP_REFERER')) {
-        return '';
-    }
-    $url = parse_url($INPUT->server->str('HTTP_REFERER'));
-
-    // only handle common SEs
-    if(!preg_match('/(google|bing|yahoo|ask|duckduckgo|babylon|aol|yandex)/',$url['host'])) return '';
-
-    $query = array();
-    // temporary workaround against PHP bug #49733
-    // see http://bugs.php.net/bug.php?id=49733
-    if(UTF8_MBSTRING) $enc = mb_internal_encoding();
-    parse_str($url['query'], $query);
-    if(UTF8_MBSTRING) mb_internal_encoding($enc);
-
-    $q = '';
-    if(isset($query['q'])){
-        $q = $query['q'];
-    }elseif(isset($query['p'])){
-        $q = $query['p'];
-    }elseif(isset($query['query'])){
-        $q = $query['query'];
-    }
-    $q = trim($q);
-
-    if(!$q) return '';
-    $q = preg_split('/[\s\'"\\\\`()\]\[?:!\.{};,#+*<>\\/]+/', $q, -1, PREG_SPLIT_NO_EMPTY);
-    return $q;
-}
-
-/**
- * Return the human readable size of a file
- *
- * @param int $size A file size
- * @param int $dec A number of decimal places
- * @return string human readable size
- *
- * @author      Martin Benjamin <b.martin@cybernet.ch>
- * @author      Aidan Lister <aidan@php.net>
- * @version     1.0.0
- */
-function filesize_h($size, $dec = 1) {
-    $sizes = array('B', 'KB', 'MB', 'GB');
-    $count = count($sizes);
-    $i     = 0;
-
-    while($size >= 1024 && ($i < $count - 1)) {
-        $size /= 1024;
-        $i++;
-    }
-
-    return round($size, $dec)."\xC2\xA0".$sizes[$i]; //non-breaking space
-}
-
-/**
- * Return the given timestamp as human readable, fuzzy age
- *
- * @author Andreas Gohr <gohr@cosmocode.de>
- *
- * @param int $dt timestamp
- * @return string
- */
-function datetime_h($dt) {
-    global $lang;
-
-    $ago = time() - $dt;
-    if($ago > 24 * 60 * 60 * 30 * 12 * 2) {
-        return sprintf($lang['years'], round($ago / (24 * 60 * 60 * 30 * 12)));
-    }
-    if($ago > 24 * 60 * 60 * 30 * 2) {
-        return sprintf($lang['months'], round($ago / (24 * 60 * 60 * 30)));
-    }
-    if($ago > 24 * 60 * 60 * 7 * 2) {
-        return sprintf($lang['weeks'], round($ago / (24 * 60 * 60 * 7)));
-    }
-    if($ago > 24 * 60 * 60 * 2) {
-        return sprintf($lang['days'], round($ago / (24 * 60 * 60)));
-    }
-    if($ago > 60 * 60 * 2) {
-        return sprintf($lang['hours'], round($ago / (60 * 60)));
-    }
-    if($ago > 60 * 2) {
-        return sprintf($lang['minutes'], round($ago / (60)));
-    }
-    return sprintf($lang['seconds'], $ago);
-}
-
-/**
- * Wraps around strftime but provides support for fuzzy dates
- *
- * The format default to $conf['dformat']. It is passed to
- * strftime - %f can be used to get the value from datetime_h()
- *
- * @see datetime_h
- * @author Andreas Gohr <gohr@cosmocode.de>
- *
- * @param int|null $dt      timestamp when given, null will take current timestamp
- * @param string   $format  empty default to $conf['dformat'], or provide format as recognized by strftime()
- * @return string
- */
-function dformat($dt = null, $format = '') {
-    global $conf;
-
-    if(is_null($dt)) $dt = time();
-    $dt = (int) $dt;
-    if(!$format) $format = $conf['dformat'];
-
-    $format = str_replace('%f', datetime_h($dt), $format);
-    return strftime($format, $dt);
-}
-
-/**
- * Formats a timestamp as ISO 8601 date
- *
- * @author <ungu at terong dot com>
- * @link http://php.net/manual/en/function.date.php#54072
- *
- * @param int $int_date current date in UNIX timestamp
- * @return string
- */
-function date_iso8601($int_date) {
-    $date_mod     = date('Y-m-d\TH:i:s', $int_date);
-    $pre_timezone = date('O', $int_date);
-    $time_zone    = substr($pre_timezone, 0, 3).":".substr($pre_timezone, 3, 2);
-    $date_mod .= $time_zone;
-    return $date_mod;
-}
-
-/**
- * return an obfuscated email address in line with $conf['mailguard'] setting
- *
- * @author Harry Fuecks <hfuecks@gmail.com>
- * @author Christopher Smith <chris@jalakai.co.uk>
- *
- * @param string $email email address
- * @return string
- */
-function obfuscate($email) {
-    global $conf;
-
-    switch($conf['mailguard']) {
-        case 'visible' :
-            $obfuscate = array('@' => ' [at] ', '.' => ' [dot] ', '-' => ' [dash] ');
-            return strtr($email, $obfuscate);
-
-        case 'hex' :
-            $encode = '';
-            $len    = strlen($email);
-            for($x = 0; $x < $len; $x++) {
-                $encode .= '&#x'.bin2hex($email{$x}).';';
-            }
-            return $encode;
-
-        case 'none' :
-        default :
-            return $email;
-    }
-}
-
-/**
- * Removes quoting backslashes
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- *
- * @param string $string
- * @param string $char backslashed character
- * @return string
- */
-function unslash($string, $char = "'") {
-    return str_replace('\\'.$char, $char, $string);
-}
-
-/**
- * Convert php.ini shorthands to byte
- *
- * @author <gilthans dot NO dot SPAM at gmail dot com>
- * @link   http://php.net/manual/en/ini.core.php#79564
- *
- * @param string $v shorthands
- * @return int|string
- */
-function php_to_byte($v) {
-    $l   = substr($v, -1);
-    $ret = substr($v, 0, -1);
-    switch(strtoupper($l)) {
-        /** @noinspection PhpMissingBreakStatementInspection */
-        case 'P':
-            $ret *= 1024;
-        /** @noinspection PhpMissingBreakStatementInspection */
-        case 'T':
-            $ret *= 1024;
-        /** @noinspection PhpMissingBreakStatementInspection */
-        case 'G':
-            $ret *= 1024;
-        /** @noinspection PhpMissingBreakStatementInspection */
-        case 'M':
-            $ret *= 1024;
-        /** @noinspection PhpMissingBreakStatementInspection */
-        case 'K':
-            $ret *= 1024;
-            break;
-        default;
-            $ret *= 10;
-            break;
-    }
-    return $ret;
-}
-
-/**
- * Wrapper around preg_quote adding the default delimiter
- *
- * @param string $string
- * @return string
- */
-function preg_quote_cb($string) {
-    return preg_quote($string, '/');
-}
-
-/**
- * Shorten a given string by removing data from the middle
- *
- * You can give the string in two parts, the first part $keep
- * will never be shortened. The second part $short will be cut
- * in the middle to shorten but only if at least $min chars are
- * left to display it. Otherwise it will be left off.
- *
- * @param string $keep   the part to keep
- * @param string $short  the part to shorten
- * @param int    $max    maximum chars you want for the whole string
- * @param int    $min    minimum number of chars to have left for middle shortening
- * @param string $char   the shortening character to use
- * @return string
- */
-function shorten($keep, $short, $max, $min = 9, $char = '…') {
-    $max = $max - utf8_strlen($keep);
-    if($max < $min) return $keep;
-    $len = utf8_strlen($short);
-    if($len <= $max) return $keep.$short;
-    $half = floor($max / 2);
-    return $keep.utf8_substr($short, 0, $half - 1).$char.utf8_substr($short, $len - $half);
-}
-
-/**
- * Return the users real name or e-mail address for use
- * in page footer and recent changes pages
- *
- * @param string|null $username or null when currently logged-in user should be used
- * @param bool $textonly true returns only plain text, true allows returning html
- * @return string html or plain text(not escaped) of formatted user name
- *
- * @author Andy Webber <dokuwiki AT andywebber DOT com>
- */
-function editorinfo($username, $textonly = false) {
-    return userlink($username, $textonly);
-}
-
-/**
- * Returns users realname w/o link
- *
- * @param string|null $username or null when currently logged-in user should be used
- * @param bool $textonly true returns only plain text, true allows returning html
- * @return string html or plain text(not escaped) of formatted user name
- *
- * @triggers COMMON_USER_LINK
- */
-function userlink($username = null, $textonly = false) {
-    global $conf, $INFO;
-    /** @var DokuWiki_Auth_Plugin $auth */
-    global $auth;
-    /** @var Input $INPUT */
-    global $INPUT;
-
-    // prepare initial event data
-    $data = array(
-        'username' => $username, // the unique user name
-        'name' => '',
-        'link' => array( //setting 'link' to false disables linking
-                         'target' => '',
-                         'pre' => '',
-                         'suf' => '',
-                         'style' => '',
-                         'more' => '',
-                         'url' => '',
-                         'title' => '',
-                         'class' => ''
-        ),
-        'userlink' => '', // formatted user name as will be returned
-        'textonly' => $textonly
-    );
-    if($username === null) {
-        $data['username'] = $username = $INPUT->server->str('REMOTE_USER');
-        if($textonly){
-            $data['name'] = $INFO['userinfo']['name']. ' (' . $INPUT->server->str('REMOTE_USER') . ')';
-        }else {
-            $data['name'] = '<bdi>' . hsc($INFO['userinfo']['name']) . '</bdi> (<bdi>' . hsc($INPUT->server->str('REMOTE_USER')) . '</bdi>)';
-        }
-    }
-
-    $evt = new Doku_Event('COMMON_USER_LINK', $data);
-    if($evt->advise_before(true)) {
-        if(empty($data['name'])) {
-            if($auth) $info = $auth->getUserData($username);
-            if($conf['showuseras'] != 'loginname' && isset($info) && $info) {
-                switch($conf['showuseras']) {
-                    case 'username':
-                    case 'username_link':
-                        $data['name'] = $textonly ? $info['name'] : hsc($info['name']);
-                        break;
-                    case 'email':
-                    case 'email_link':
-                        $data['name'] = obfuscate($info['mail']);
-                        break;
-                }
-            } else {
-                $data['name'] = $textonly ? $data['username'] : hsc($data['username']);
-            }
-        }
-
-        /** @var Doku_Renderer_xhtml $xhtml_renderer */
-        static $xhtml_renderer = null;
-
-        if(!$data['textonly'] && empty($data['link']['url'])) {
-
-            if(in_array($conf['showuseras'], array('email_link', 'username_link'))) {
-                if(!isset($info)) {
-                    if($auth) $info = $auth->getUserData($username);
-                }
-                if(isset($info) && $info) {
-                    if($conf['showuseras'] == 'email_link') {
-                        $data['link']['url'] = 'mailto:' . obfuscate($info['mail']);
-                    } else {
-                        if(is_null($xhtml_renderer)) {
-                            $xhtml_renderer = p_get_renderer('xhtml');
-                        }
-                        if(empty($xhtml_renderer->interwiki)) {
-                            $xhtml_renderer->interwiki = getInterwiki();
-                        }
-                        $shortcut = 'user';
-                        $exists = null;
-                        $data['link']['url'] = $xhtml_renderer->_resolveInterWiki($shortcut, $username, $exists);
-                        $data['link']['class'] .= ' interwiki iw_user';
-                        if($exists !== null) {
-                            if($exists) {
-                                $data['link']['class'] .= ' wikilink1';
-                            } else {
-                                $data['link']['class'] .= ' wikilink2';
-                                $data['link']['rel'] = 'nofollow';
-                            }
-                        }
-                    }
-                } else {
-                    $data['textonly'] = true;
-                }
-
-            } else {
-                $data['textonly'] = true;
-            }
-        }
-
-        if($data['textonly']) {
-            $data['userlink'] = $data['name'];
-        } else {
-            $data['link']['name'] = $data['name'];
-            if(is_null($xhtml_renderer)) {
-                $xhtml_renderer = p_get_renderer('xhtml');
-            }
-            $data['userlink'] = $xhtml_renderer->_formatLink($data['link']);
-        }
-    }
-    $evt->advise_after();
-    unset($evt);
-
-    return $data['userlink'];
-}
-
-/**
- * Returns the path to a image file for the currently chosen license.
- * When no image exists, returns an empty string
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- *
- * @param  string $type - type of image 'badge' or 'button'
- * @return string
- */
-function license_img($type) {
-    global $license;
-    global $conf;
-    if(!$conf['license']) return '';
-    if(!is_array($license[$conf['license']])) return '';
-    $try   = array();
-    $try[] = 'lib/images/license/'.$type.'/'.$conf['license'].'.png';
-    $try[] = 'lib/images/license/'.$type.'/'.$conf['license'].'.gif';
-    if(substr($conf['license'], 0, 3) == 'cc-') {
-        $try[] = 'lib/images/license/'.$type.'/cc.png';
-    }
-    foreach($try as $src) {
-        if(file_exists(DOKU_INC.$src)) return $src;
-    }
-    return '';
-}
-
-/**
- * Checks if the given amount of memory is available
- *
- * If the memory_get_usage() function is not available the
- * function just assumes $bytes of already allocated memory
- *
- * @author Filip Oscadal <webmaster@illusionsoftworks.cz>
- * @author Andreas Gohr <andi@splitbrain.org>
- *
- * @param int  $mem    Size of memory you want to allocate in bytes
- * @param int  $bytes  already allocated memory (see above)
- * @return bool
- */
-function is_mem_available($mem, $bytes = 1048576) {
-    $limit = trim(ini_get('memory_limit'));
-    if(empty($limit)) return true; // no limit set!
-
-    // parse limit to bytes
-    $limit = php_to_byte($limit);
-
-    // get used memory if possible
-    if(function_exists('memory_get_usage')) {
-        $used = memory_get_usage();
-    } else {
-        $used = $bytes;
-    }
-
-    if($used + $mem > $limit) {
-        return false;
-    }
-
-    return true;
-}
-
-/**
- * Send a HTTP redirect to the browser
- *
- * Works arround Microsoft IIS cookie sending bug. Exits the script.
- *
- * @link   http://support.microsoft.com/kb/q176113/
- * @author Andreas Gohr <andi@splitbrain.org>
- *
- * @param string $url url being directed to
- */
-function send_redirect($url) {
-    $url = stripctl($url); // defend against HTTP Response Splitting
-
-    /* @var Input $INPUT */
-    global $INPUT;
-
-    //are there any undisplayed messages? keep them in session for display
-    global $MSG;
-    if(isset($MSG) && count($MSG) && !defined('NOSESSION')) {
-        //reopen session, store data and close session again
-        @session_start();
-        $_SESSION[DOKU_COOKIE]['msg'] = $MSG;
-    }
-
-    // always close the session
-    session_write_close();
-
-    // check if running on IIS < 6 with CGI-PHP
-    if($INPUT->server->has('SERVER_SOFTWARE') && $INPUT->server->has('GATEWAY_INTERFACE') &&
-        (strpos($INPUT->server->str('GATEWAY_INTERFACE'), 'CGI') !== false) &&
-        (preg_match('|^Microsoft-IIS/(\d)\.\d$|', trim($INPUT->server->str('SERVER_SOFTWARE')), $matches)) &&
-        $matches[1] < 6
-    ) {
-        header('Refresh: 0;url='.$url);
-    } else {
-        header('Location: '.$url);
-    }
-
-    // no exits during unit tests
-    if(defined('DOKU_UNITTEST')) {
-        // pass info about the redirect back to the test suite
-        $testRequest = TestRequest::getRunning();
-        if($testRequest !== null) {
-            $testRequest->addData('send_redirect', $url);
-        }
-        return;
-    }
-
-    exit;
-}
-
-/**
- * Validate a value using a set of valid values
- *
- * This function checks whether a specified value is set and in the array
- * $valid_values. If not, the function returns a default value or, if no
- * default is specified, throws an exception.
- *
- * @param string $param        The name of the parameter
- * @param array  $valid_values A set of valid values; Optionally a default may
- *                             be marked by the key “defaultâ€.
- * @param array  $array        The array containing the value (typically $_POST
- *                             or $_GET)
- * @param string $exc          The text of the raised exception
- *
- * @throws Exception
- * @return mixed
- * @author Adrian Lang <lang@cosmocode.de>
- */
-function valid_input_set($param, $valid_values, $array, $exc = '') {
-    if(isset($array[$param]) && in_array($array[$param], $valid_values)) {
-        return $array[$param];
-    } elseif(isset($valid_values['default'])) {
-        return $valid_values['default'];
-    } else {
-        throw new Exception($exc);
-    }
-}
-
-/**
- * Read a preference from the DokuWiki cookie
- * (remembering both keys & values are urlencoded)
- *
- * @param string $pref     preference key
- * @param mixed  $default  value returned when preference not found
- * @return string preference value
- */
-function get_doku_pref($pref, $default) {
-    $enc_pref = urlencode($pref);
-    if(isset($_COOKIE['DOKU_PREFS']) && strpos($_COOKIE['DOKU_PREFS'], $enc_pref) !== false) {
-        $parts = explode('#', $_COOKIE['DOKU_PREFS']);
-        $cnt   = count($parts);
-        for($i = 0; $i < $cnt; $i += 2) {
-            if($parts[$i] == $enc_pref) {
-                return urldecode($parts[$i + 1]);
-            }
-        }
-    }
-    return $default;
-}
-
-/**
- * Add a preference to the DokuWiki cookie
- * (remembering $_COOKIE['DOKU_PREFS'] is urlencoded)
- * Remove it by setting $val to false
- *
- * @param string $pref  preference key
- * @param string $val   preference value
- */
-function set_doku_pref($pref, $val) {
-    global $conf;
-    $orig = get_doku_pref($pref, false);
-    $cookieVal = '';
-
-    if($orig && ($orig != $val)) {
-        $parts = explode('#', $_COOKIE['DOKU_PREFS']);
-        $cnt   = count($parts);
-        // urlencode $pref for the comparison
-        $enc_pref = rawurlencode($pref);
-        for($i = 0; $i < $cnt; $i += 2) {
-            if($parts[$i] == $enc_pref) {
-                if ($val !== false) {
-                    $parts[$i + 1] = rawurlencode($val);
-                } else {
-                    unset($parts[$i]);
-                    unset($parts[$i + 1]);
-                }
-                break;
-            }
-        }
-        $cookieVal = implode('#', $parts);
-    } else if (!$orig && $val !== false) {
-        $cookieVal = ($_COOKIE['DOKU_PREFS'] ? $_COOKIE['DOKU_PREFS'].'#' : '').rawurlencode($pref).'#'.rawurlencode($val);
-    }
-
-    if (!empty($cookieVal)) {
-        $cookieDir = empty($conf['cookiedir']) ? DOKU_REL : $conf['cookiedir'];
-        setcookie('DOKU_PREFS', $cookieVal, time()+365*24*3600, $cookieDir, '', ($conf['securecookie'] && is_ssl()));
-    }
-}
-
-/**
- * Strips source mapping declarations from given text #601
- *
- * @param string &$text reference to the CSS or JavaScript code to clean
- */
-function stripsourcemaps(&$text){
-    $text = preg_replace('/^(\/\/|\/\*)[@#]\s+sourceMappingURL=.*?(\*\/)?$/im', '\\1\\2', $text);
-}
-
-/**
- * Returns the contents of a given SVG file for embedding
- *
- * Inlining SVGs saves on HTTP requests and more importantly allows for styling them through
- * CSS. However it should used with small SVGs only. The $maxsize setting ensures only small
- * files are embedded.
- *
- * This strips unneeded headers, comments and newline. The result is not a vaild standalone SVG!
- *
- * @param string $file full path to the SVG file
- * @param int $maxsize maximum allowed size for the SVG to be embedded
- * @return string|false the SVG content, false if the file couldn't be loaded
- */
-function inlineSVG($file, $maxsize = 2048) {
-    $file = trim($file);
-    if($file === '') return false;
-    if(!file_exists($file)) return false;
-    if(filesize($file) > $maxsize) return false;
-    if(!is_readable($file)) return false;
-    $content = file_get_contents($file);
-    $content = preg_replace('/<!--.*?(-->)/s','', $content); // comments
-    $content = preg_replace('/<\?xml .*?\?>/i', '', $content); // xml header
-    $content = preg_replace('/<!DOCTYPE .*?>/i', '', $content); // doc type
-    $content = preg_replace('/>\s+</s', '><', $content); // newlines between tags
-    $content = trim($content);
-    if(substr($content, 0, 5) !== '<svg ') return false;
-    return $content;
-}
-
-//Setup VIM: ex: et ts=2 :
diff --git a/wiki/inc/compatibility.php b/wiki/inc/compatibility.php
deleted file mode 100644
index cb865a2..0000000
--- a/wiki/inc/compatibility.php
+++ /dev/null
@@ -1,82 +0,0 @@
-<?php
-/**
- * compatibility functions
- *
- * This file contains a few functions that might be missing from the PHP build
- */
-
-if(!function_exists('ctype_space')) {
-    /**
-     * Check for whitespace character(s)
-     *
-     * @see ctype_space
-     * @param string $text
-     * @return bool
-     */
-    function ctype_space($text) {
-        if(!is_string($text)) return false; #FIXME original treats between -128 and 255 inclusive as ASCII chars
-        if(trim($text) === '') return true;
-        return false;
-    }
-}
-
-if(!function_exists('ctype_digit')) {
-    /**
-     * Check for numeric character(s)
-     *
-     * @see ctype_digit
-     * @param string $text
-     * @return bool
-     */
-    function ctype_digit($text) {
-        if(!is_string($text)) return false; #FIXME original treats between -128 and 255 inclusive as ASCII chars
-        if(preg_match('/^\d+$/', $text)) return true;
-        return false;
-    }
-}
-
-if(!function_exists('gzopen') && function_exists('gzopen64')) {
-    /**
-     * work around for PHP compiled against certain zlib versions #865
-     *
-     * @link http://stackoverflow.com/questions/23417519/php-zlib-gzopen-not-exists
-     *
-     * @param string $filename
-     * @param string $mode
-     * @param int    $use_include_path
-     * @return mixed
-     */
-    function gzopen($filename, $mode, $use_include_path = 0) {
-        return gzopen64($filename, $mode, $use_include_path);
-    }
-}
-
-if(!function_exists('gzseek') && function_exists('gzseek64')) {
-    /**
-     * work around for PHP compiled against certain zlib versions #865
-     *
-     * @link http://stackoverflow.com/questions/23417519/php-zlib-gzopen-not-exists
-     *
-     * @param resource $zp
-     * @param int      $offset
-     * @param int      $whence
-     * @return int
-     */
-    function gzseek($zp, $offset, $whence = SEEK_SET) {
-        return gzseek64($zp, $offset, $whence);
-    }
-}
-
-if(!function_exists('gztell') && function_exists('gztell64')) {
-    /**
-     * work around for PHP compiled against certain zlib versions #865
-     *
-     * @link   http://stackoverflow.com/questions/23417519/php-zlib-gzopen-not-exists
-     *
-     * @param resource $zp
-     * @return int
-     */
-    function gztell($zp) {
-        return gztell64($zp);
-    }
-}
\ No newline at end of file
diff --git a/wiki/inc/config_cascade.php b/wiki/inc/config_cascade.php
deleted file mode 100644
index f0aa6cc..0000000
--- a/wiki/inc/config_cascade.php
+++ /dev/null
@@ -1,87 +0,0 @@
-<?php
-/**
- * The default config cascade
- *
- * This array configures the default locations of various files in the
- * DokuWiki directory hierarchy. It can be overriden in inc/preload.php
- */
-$config_cascade = array_merge(
-    array(
-        'main' => array(
-            'default'   => array(DOKU_CONF . 'dokuwiki.php'),
-            'local'     => array(DOKU_CONF . 'local.php'),
-            'protected' => array(DOKU_CONF . 'local.protected.php'),
-        ),
-        'acronyms' => array(
-            'default'   => array(DOKU_CONF . 'acronyms.conf'),
-            'local'     => array(DOKU_CONF . 'acronyms.local.conf'),
-        ),
-        'entities' => array(
-            'default'   => array(DOKU_CONF . 'entities.conf'),
-            'local'     => array(DOKU_CONF . 'entities.local.conf'),
-        ),
-        'interwiki' => array(
-            'default'   => array(DOKU_CONF . 'interwiki.conf'),
-            'local'     => array(DOKU_CONF . 'interwiki.local.conf'),
-        ),
-        'license' => array(
-            'default'   => array(DOKU_CONF . 'license.php'),
-            'local'     => array(DOKU_CONF . 'license.local.php'),
-        ),
-        'manifest' => array(
-            'default'   => array(DOKU_CONF . 'manifest.json'),
-            'local'     => array(DOKU_CONF . 'manifest.local.json'),
-        ),
-        'mediameta' => array(
-            'default'   => array(DOKU_CONF . 'mediameta.php'),
-            'local'     => array(DOKU_CONF . 'mediameta.local.php'),
-        ),
-        'mime' => array(
-            'default'   => array(DOKU_CONF . 'mime.conf'),
-            'local'     => array(DOKU_CONF . 'mime.local.conf'),
-        ),
-        'scheme' => array(
-            'default'   => array(DOKU_CONF . 'scheme.conf'),
-            'local'     => array(DOKU_CONF . 'scheme.local.conf'),
-        ),
-        'smileys' => array(
-            'default'   => array(DOKU_CONF . 'smileys.conf'),
-            'local'     => array(DOKU_CONF . 'smileys.local.conf'),
-        ),
-        'wordblock' => array(
-            'default'   => array(DOKU_CONF . 'wordblock.conf'),
-            'local'     => array(DOKU_CONF . 'wordblock.local.conf'),
-        ),
-        'userstyle' => array(
-            'screen'    => array(DOKU_CONF . 'userstyle.css', DOKU_CONF . 'userstyle.less'),
-            'print'     => array(DOKU_CONF . 'userprint.css', DOKU_CONF . 'userprint.less'),
-            'feed'      => array(DOKU_CONF . 'userfeed.css', DOKU_CONF . 'userfeed.less'),
-            'all'       => array(DOKU_CONF . 'userall.css', DOKU_CONF . 'userall.less')
-        ),
-        'userscript' => array(
-            'default'   => array(DOKU_CONF . 'userscript.js')
-        ),
-        'acl' => array(
-            'default'   => DOKU_CONF . 'acl.auth.php',
-        ),
-        'plainauth.users' => array(
-            'default'   => DOKU_CONF . 'users.auth.php',
-            'protected' => '' // not used by default
-        ),
-        'plugins' => array(
-            'default'   => array(DOKU_CONF . 'plugins.php'),
-            'local'     => array(DOKU_CONF . 'plugins.local.php'),
-            'protected' => array(
-                DOKU_CONF . 'plugins.required.php',
-                DOKU_CONF . 'plugins.protected.php',
-            ),
-        ),
-        'lang' => array(
-            'core'      => array(DOKU_CONF . 'lang/'),
-            'plugin'    => array(DOKU_CONF . 'plugin_lang/'),
-            'template'  => array(DOKU_CONF . 'template_lang/')
-        )
-    ),
-    $config_cascade
-);
-
diff --git a/wiki/inc/confutils.php b/wiki/inc/confutils.php
deleted file mode 100644
index 5914701..0000000
--- a/wiki/inc/confutils.php
+++ /dev/null
@@ -1,467 +0,0 @@
-<?php
-/**
- * Utilities for collecting data from config files
- *
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * @author     Harry Fuecks <hfuecks@gmail.com>
- */
-
-/*
- * line prefix used to negate single value config items
- * (scheme.conf & stopwords.conf), e.g.
- * !gopher
- */
-const DOKU_CONF_NEGATION = '!';
-
-/**
- * Returns the (known) extension and mimetype of a given filename
- *
- * If $knownonly is true (the default), then only known extensions
- * are returned.
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- *
- * @param string $file file name
- * @param bool   $knownonly
- * @return array with extension, mimetype and if it should be downloaded
- */
-function mimetype($file, $knownonly=true){
-    $mtypes = getMimeTypes();     // known mimetypes
-    $ext    = strrpos($file, '.');
-    if ($ext === false) {
-        return array(false, false, false);
-    }
-    $ext = strtolower(substr($file, $ext + 1));
-    if (!isset($mtypes[$ext])){
-        if ($knownonly) {
-            return array(false, false, false);
-        } else {
-            return array($ext, 'application/octet-stream', true);
-        }
-    }
-    if($mtypes[$ext][0] == '!'){
-        return array($ext, substr($mtypes[$ext],1), true);
-    }else{
-        return array($ext, $mtypes[$ext], false);
-    }
-}
-
-/**
- * returns a hash of mimetypes
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- */
-function getMimeTypes() {
-    static $mime = null;
-    if ( !$mime ) {
-        $mime = retrieveConfig('mime','confToHash');
-        $mime = array_filter($mime);
-    }
-    return $mime;
-}
-
-/**
- * returns a hash of acronyms
- *
- * @author Harry Fuecks <hfuecks@gmail.com>
- */
-function getAcronyms() {
-    static $acronyms = null;
-    if ( !$acronyms ) {
-        $acronyms = retrieveConfig('acronyms','confToHash');
-        $acronyms = array_filter($acronyms, 'strlen');
-    }
-    return $acronyms;
-}
-
-/**
- * returns a hash of smileys
- *
- * @author Harry Fuecks <hfuecks@gmail.com>
- */
-function getSmileys() {
-    static $smileys = null;
-    if ( !$smileys ) {
-        $smileys = retrieveConfig('smileys','confToHash');
-        $smileys = array_filter($smileys, 'strlen');
-    }
-    return $smileys;
-}
-
-/**
- * returns a hash of entities
- *
- * @author Harry Fuecks <hfuecks@gmail.com>
- */
-function getEntities() {
-    static $entities = null;
-    if ( !$entities ) {
-        $entities = retrieveConfig('entities','confToHash');
-        $entities = array_filter($entities, 'strlen');
-    }
-    return $entities;
-}
-
-/**
- * returns a hash of interwikilinks
- *
- * @author Harry Fuecks <hfuecks@gmail.com>
- */
-function getInterwiki() {
-    static $wikis = null;
-    if ( !$wikis ) {
-        $wikis = retrieveConfig('interwiki','confToHash',array(true));
-        $wikis = array_filter($wikis, 'strlen');
-
-        //add sepecial case 'this'
-        $wikis['this'] = DOKU_URL.'{NAME}';
-    }
-    return $wikis;
-}
-
-/**
- * Returns the jquery script URLs for the versions defined in lib/scripts/jquery/versions
- *
- * @trigger CONFUTIL_CDN_SELECT
- * @return array
- */
-function getCdnUrls() {
-    global $conf;
-
-    // load version info
-    $versions = array();
-    $lines = file(DOKU_INC . 'lib/scripts/jquery/versions');
-    foreach($lines as $line) {
-        $line = trim(preg_replace('/#.*$/', '', $line));
-        if($line === '') continue;
-        list($key, $val) = explode('=', $line, 2);
-        $key = trim($key);
-        $val = trim($val);
-        $versions[$key] = $val;
-    }
-
-    $src = array();
-    $data = array(
-        'versions' => $versions,
-        'src' => &$src
-    );
-    $event = new Doku_Event('CONFUTIL_CDN_SELECT', $data);
-    if($event->advise_before()) {
-        if(!$conf['jquerycdn']) {
-            $jqmod = md5(join('-', $versions));
-            $src[] = DOKU_BASE . 'lib/exe/jquery.php' . '?tseed=' . $jqmod;
-        } elseif($conf['jquerycdn'] == 'jquery') {
-            $src[] = sprintf('https://code.jquery.com/jquery-%s.min.js', $versions['JQ_VERSION']);
-            $src[] = sprintf('https://code.jquery.com/jquery-migrate-%s.min.js', $versions['JQM_VERSION']);
-            $src[] = sprintf('https://code.jquery.com/ui/%s/jquery-ui.min.js', $versions['JQUI_VERSION']);
-        } elseif($conf['jquerycdn'] == 'cdnjs') {
-            $src[] = sprintf('https://cdnjs.cloudflare.com/ajax/libs/jquery/%s/jquery.min.js', $versions['JQ_VERSION']);
-            $src[] = sprintf('https://cdnjs.cloudflare.com/ajax/libs/jquery-migrate/%s/jquery-migrate.min.js', $versions['JQM_VERSION']);
-            $src[] = sprintf('https://cdnjs.cloudflare.com/ajax/libs/jqueryui/%s/jquery-ui.min.js', $versions['JQUI_VERSION']);
-        }
-    }
-    $event->advise_after();
-
-    return $src;
-}
-
-/**
- * returns array of wordblock patterns
- *
- */
-function getWordblocks() {
-    static $wordblocks = null;
-    if ( !$wordblocks ) {
-        $wordblocks = retrieveConfig('wordblock','file',null,'array_merge_with_removal');
-    }
-    return $wordblocks;
-}
-
-/**
- * Gets the list of configured schemes
- *
- * @return array the schemes
- */
-function getSchemes() {
-    static $schemes = null;
-    if ( !$schemes ) {
-        $schemes = retrieveConfig('scheme','file',null,'array_merge_with_removal');
-        $schemes = array_map('trim', $schemes);
-        $schemes = preg_replace('/^#.*/', '', $schemes);
-        $schemes = array_filter($schemes);
-    }
-    return $schemes;
-}
-
-/**
- * Builds a hash from an array of lines
- *
- * If $lower is set to true all hash keys are converted to
- * lower case.
- *
- * @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();
-    // remove BOM
-    if(isset($lines[0]) && substr($lines[0], 0, 3) == pack('CCC', 0xef, 0xbb, 0xbf))
-        $lines[0] = substr($lines[0], 3);
-    foreach($lines as $line) {
-        //ignore comments (except escaped ones)
-        $line = preg_replace('/(?<![&\\\\])#.*$/', '', $line);
-        $line = str_replace('\\#', '#', $line);
-        $line = trim($line);
-        if($line === '') continue;
-        $line = preg_split('/\s+/', $line, 2);
-        $line = array_pad($line, 2, '');
-        // Build the associative array
-        if($lower) {
-            $conf[strtolower($line[0])] = $line[1];
-        } else {
-            $conf[$line[0]] = $line[1];
-        }
-    }
-
-    return $conf;
-}
-
-/**
- * Builds a hash from a configfile
- *
- * If $lower is set to true all hash keys are converted to
- * lower case.
- *
- * @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();
-    $lines = @file( $file );
-    if ( !$lines ) return $conf;
-
-    return linesToHash($lines, $lower);
-}
-
-/**
- * Read a json config file into an array
- *
- * @param string $file
- * @return array
- */
-function jsonToArray($file)
-{
-    $json = file_get_contents($file);
-
-    $conf = json_decode($json, true);
-
-    if ($conf === null) {
-        return [];
-    }
-
-    return $conf;
-}
-
-/**
- * Retrieve the requested configuration information
- *
- * @author Chris Smith <chris@jalakai.co.uk>
- *
- * @param  string   $type     the configuration settings to be read, must correspond to a key/array in $config_cascade
- * @param  callback $fn       the function used to process the configuration file into an array
- * @param  array    $params   optional additional params to pass to the callback
- * @param  callback $combine  the function used to combine arrays of values read from different configuration files;
- *                            the function takes two parameters,
- *                               $combined - the already read & merged configuration values
- *                               $new - array of config values from the config cascade file being currently processed
- *                            and returns an array of the merged configuration values.
- * @return array    configuration values
- */
-function retrieveConfig($type,$fn,$params=null,$combine='array_merge') {
-    global $config_cascade;
-
-    if(!is_array($params)) $params = array();
-
-    $combined = array();
-    if (!is_array($config_cascade[$type])) trigger_error('Missing config cascade for "'.$type.'"',E_USER_WARNING);
-    foreach (array('default','local','protected') as $config_group) {
-        if (empty($config_cascade[$type][$config_group])) continue;
-        foreach ($config_cascade[$type][$config_group] as $file) {
-            if (file_exists($file)) {
-                $config = call_user_func_array($fn,array_merge(array($file),$params));
-                $combined = $combine($combined, $config);
-            }
-        }
-    }
-
-    return $combined;
-}
-
-/**
- * Include the requested configuration information
- *
- * @author Chris Smith <chris@jalakai.co.uk>
- *
- * @param  string   $type     the configuration settings to be read, must correspond to a key/array in $config_cascade
- * @return array              list of files, default before local before protected
- */
-function getConfigFiles($type) {
-    global $config_cascade;
-    $files = array();
-
-    if (!is_array($config_cascade[$type])) trigger_error('Missing config cascade for "'.$type.'"',E_USER_WARNING);
-    foreach (array('default','local','protected') as $config_group) {
-        if (empty($config_cascade[$type][$config_group])) continue;
-        $files = array_merge($files, $config_cascade[$type][$config_group]);
-    }
-
-    return $files;
-}
-
-/**
- * check if the given action was disabled in config
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- * @param string $action
- * @returns boolean true if enabled, false if disabled
- */
-function actionOK($action){
-    static $disabled = null;
-    if(is_null($disabled) || defined('SIMPLE_TEST')){
-        global $conf;
-        /** @var DokuWiki_Auth_Plugin $auth */
-        global $auth;
-
-        // prepare disabled actions array and handle legacy options
-        $disabled = explode(',',$conf['disableactions']);
-        $disabled = array_map('trim',$disabled);
-        if((isset($conf['openregister']) && !$conf['openregister']) || is_null($auth) || !$auth->canDo('addUser')) {
-            $disabled[] = 'register';
-        }
-        if((isset($conf['resendpasswd']) && !$conf['resendpasswd']) || is_null($auth) || !$auth->canDo('modPass')) {
-            $disabled[] = 'resendpwd';
-        }
-        if((isset($conf['subscribers']) && !$conf['subscribers']) || is_null($auth)) {
-            $disabled[] = 'subscribe';
-        }
-        if (is_null($auth) || !$auth->canDo('Profile')) {
-            $disabled[] = 'profile';
-        }
-        if (is_null($auth) || !$auth->canDo('delUser')) {
-            $disabled[] = 'profile_delete';
-        }
-        if (is_null($auth)) {
-            $disabled[] = 'login';
-        }
-        if (is_null($auth) || !$auth->canDo('logout')) {
-            $disabled[] = 'logout';
-        }
-        $disabled = array_unique($disabled);
-    }
-
-    return !in_array($action,$disabled);
-}
-
-/**
- * check if headings should be used as link text for the specified link type
- *
- * @author Chris Smith <chris@jalakai.co.uk>
- *
- * @param   string  $linktype   'content'|'navigation', content applies to links in wiki text
- *                                                      navigation applies to all other links
- * @return  boolean             true if headings should be used for $linktype, false otherwise
- */
-function useHeading($linktype) {
-    static $useHeading = null;
-    if(defined('DOKU_UNITTEST')) $useHeading = null; // don't cache during unit tests
-
-    if (is_null($useHeading)) {
-        global $conf;
-
-        if (!empty($conf['useheading'])) {
-            switch ($conf['useheading']) {
-                case 'content':
-                    $useHeading['content'] = true;
-                    break;
-
-                case 'navigation':
-                    $useHeading['navigation'] = true;
-                    break;
-                default:
-                    $useHeading['content'] = true;
-                    $useHeading['navigation'] = true;
-            }
-        } else {
-            $useHeading = array();
-        }
-    }
-
-    return (!empty($useHeading[$linktype]));
-}
-
-/**
- * obscure config data so information isn't plain text
- *
- * @param string       $str     data to be encoded
- * @param string       $code    encoding method, values: plain, base64, uuencode.
- * @return string               the encoded value
- */
-function conf_encodeString($str,$code) {
-    switch ($code) {
-        case 'base64'   : return '<b>'.base64_encode($str);
-        case 'uuencode' : return '<u>'.convert_uuencode($str);
-        case 'plain':
-        default:
-                          return $str;
-    }
-}
-/**
- * return obscured data as plain text
- *
- * @param  string      $str   encoded data
- * @return string             plain text
- */
-function conf_decodeString($str) {
-    switch (substr($str,0,3)) {
-        case '<b>' : return base64_decode(substr($str,3));
-        case '<u>' : return convert_uudecode(substr($str,3));
-        default:  // not encoded (or unknown)
-                     return $str;
-    }
-}
-
-/**
- * array combination function to remove negated values (prefixed by !)
- *
- * @param  array $current
- * @param  array $new
- *
- * @return array the combined array, numeric keys reset
- */
-function array_merge_with_removal($current, $new) {
-    foreach ($new as $val) {
-        if (substr($val,0,1) == DOKU_CONF_NEGATION) {
-            $idx = array_search(trim(substr($val,1)),$current);
-            if ($idx !== false) {
-                unset($current[$idx]);
-            }
-        } else {
-            $current[] = trim($val);
-        }
-    }
-
-    return array_slice($current,0);
-}
-//Setup VIM: ex: et ts=4 :
diff --git a/wiki/inc/events.php b/wiki/inc/events.php
deleted file mode 100644
index 034414f..0000000
--- a/wiki/inc/events.php
+++ /dev/null
@@ -1,257 +0,0 @@
-<?php
-/**
- * DokuWiki Events
- *
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * @author     Christopher Smith <chris@jalakai.co.uk>
- */
-
-if(!defined('DOKU_INC')) die('meh.');
-
-/**
- * The event
- */
-class Doku_Event {
-
-    // public properties
-    public $name = '';                // READONLY  event name, objects must register against this name to see the event
-    public $data = null;              // READWRITE data relevant to the event, no standardised format (YET!)
-    public $result = null;            // READWRITE the results of the event action, only relevant in "_AFTER" advise
-    //    event handlers may modify this if they are preventing the default action
-    //    to provide the after event handlers with event results
-    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
-    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
-     *
-     * @param string $name
-     * @param mixed $data
-     */
-    function __construct($name, &$data) {
-
-        $this->name = $name;
-        $this->data =& $data;
-
-    }
-
-    /**
-     * @return string
-     */
-    function __toString() {
-        return $this->name;
-    }
-
-    /**
-     * advise functions
-     *
-     * advise all registered handlers of this event
-     *
-     * if these methods are used by functions outside of this object, they must
-     * properly handle correct processing of any default action and issue an
-     * advise_after() signal. e.g.
-     *    $evt = new Doku_Event(name, data);
-     *    if ($evt->advise_before(canPreventDefault) {
-     *      // default action code block
-     *    }
-     *    $evt->advise_after();
-     *    unset($evt);
-     *
-     * @param bool $enablePreventDefault
-     * @return bool results of processing the event, usually $this->_default
-     */
-    function advise_before($enablePreventDefault=true) {
-        global $EVENT_HANDLER;
-
-        $this->canPreventDefault = $enablePreventDefault;
-        $EVENT_HANDLER->process_event($this,'BEFORE');
-
-        return (!$enablePreventDefault || $this->_default);
-    }
-
-    function advise_after() {
-        global $EVENT_HANDLER;
-
-        $this->_continue = true;
-        $EVENT_HANDLER->process_event($this,'AFTER');
-    }
-
-    /**
-     * trigger
-     *
-     * - advise all registered (<event>_BEFORE) handlers that this event is about to take place
-     * - carry out the default action using $this->data based on $enablePrevent and
-     *   $this->_default, all of which may have been modified by the event handlers.
-     * - advise all registered (<event>_AFTER) handlers that the event has taken place
-     *
-     * @param null|callable $action
-     * @param bool $enablePrevent
-     * @return  mixed $event->results
-     *          the value set by any <event>_before or <event> handlers if the default action is prevented
-     *          or the results of the default action (as modified by <event>_after handlers)
-     *          or NULL no action took place and no handler modified the value
-     */
-    function trigger($action=null, $enablePrevent=true) {
-
-        if (!is_callable($action)) {
-            $enablePrevent = false;
-            if (!is_null($action)) {
-                trigger_error('The default action of '.$this.' is not null but also not callable. Maybe the method is not public?', E_USER_WARNING);
-            }
-        }
-
-        if ($this->advise_before($enablePrevent) && is_callable($action)) {
-            if (is_array($action)) {
-                list($obj,$method) = $action;
-                $this->result = $obj->$method($this->data);
-            } else {
-                $this->result = $action($this->data);
-            }
-        }
-
-        $this->advise_after();
-
-        return $this->result;
-    }
-
-    /**
-     * stopPropagation
-     *
-     * stop any further processing of the event by event handlers
-     * this function does not prevent the default action taking place
-     */
-    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
-     */
-    public function preventDefault() {
-        $this->_default = false;
-    }
-
-    /**
-     * should the default action be executed?
-     *
-     * @return bool
-     */
-    public function mayRunDefault() {
-        return $this->_default;
-    }
-}
-
-/**
- * Controls the registration and execution of all events,
- */
-class Doku_Event_Handler {
-
-    // public properties:  none
-
-    // private properties
-    protected $_hooks = array();          // array of events and their registered handlers
-
-    /**
-     * event_handler
-     *
-     * constructor, loads all action plugins and calls their register() method giving them
-     * an opportunity to register any hooks they require
-     */
-    function __construct() {
-
-        // load action plugins
-        /** @var DokuWiki_Action_Plugin $plugin */
-        $plugin = null;
-        $pluginlist = plugin_list('action');
-
-        foreach ($pluginlist as $plugin_name) {
-            $plugin = plugin_load('action',$plugin_name);
-
-            if ($plugin !== null) $plugin->register($this);
-        }
-    }
-
-    /**
-     * register_hook
-     *
-     * register a hook for an event
-     *
-     * @param  string   $event   string   name used by the event, (incl '_before' or '_after' for triggers)
-     * @param  string   $advise
-     * @param  object   $obj     object in whose scope method is to be executed,
-     *                             if NULL, method is assumed to be a globally available function
-     * @param  string   $method  event handler function
-     * @param  mixed    $param   data passed to the event handler
-     * @param  int      $seq     sequence number for ordering hook execution (ascending)
-     */
-    function register_hook($event, $advise, $obj, $method, $param=null, $seq=0) {
-        $seq = (int)$seq;
-        $doSort = !isset($this->_hooks[$event.'_'.$advise][$seq]);
-        $this->_hooks[$event.'_'.$advise][$seq][] = array($obj, $method, $param);
-
-        if ($doSort) {
-            ksort($this->_hooks[$event.'_'.$advise]);
-        }
-    }
-
-    /**
-     * process the before/after event
-     *
-     * @param Doku_Event $event
-     * @param string     $advise BEFORE or AFTER
-     */
-    function process_event($event,$advise='') {
-
-        $evt_name = $event->name . ($advise ? '_'.$advise : '_BEFORE');
-
-        if (!empty($this->_hooks[$evt_name])) {
-            foreach ($this->_hooks[$evt_name] as $sequenced_hooks) {
-                foreach ($sequenced_hooks as $hook) {
-                    list($obj, $method, $param) = $hook;
-
-                    if (is_null($obj)) {
-                        $method($event, $param);
-                    } else {
-                        $obj->$method($event, $param);
-                    }
-
-                    if (!$event->mayPropagate()) return;
-                }
-            }
-        }
-    }
-}
-
-/**
- * trigger_event
- *
- * function wrapper to process (create, trigger and destroy) an event
- *
- * @param  string   $name               name for the event
- * @param  mixed    $data               event data
- * @param  callback $action             (optional, default=NULL) default action, a php callback function
- * @param  bool     $canPreventDefault  (optional, default=true) can hooks prevent the default action
- *
- * @return mixed                        the event results value after all event processing is complete
- *                                      by default this is the return value of the default action however
- *                                      it can be set or modified by event handler hooks
- */
-function trigger_event($name, &$data, $action=null, $canPreventDefault=true) {
-
-    $evt = new Doku_Event($name, $data);
-    return $evt->trigger($action, $canPreventDefault);
-}
diff --git a/wiki/inc/farm.php b/wiki/inc/farm.php
deleted file mode 100644
index 0cd9d4f..0000000
--- a/wiki/inc/farm.php
+++ /dev/null
@@ -1,150 +0,0 @@
-<?php
-/**
- * This overwrites DOKU_CONF. Each animal gets its own configuration and data directory.
- * This can be used together with preload.php. See preload.php.dist for an example setup.
- * For more information see http://www.dokuwiki.org/farms.
- *
- * The farm directory (constant DOKU_FARMDIR) can be any directory and needs to be set.
- * Animals are direct subdirectories of the farm directory.
- * There are two different approaches:
- *  * An .htaccess based setup can use any animal directory name:
- *    http://example.org/<path_to_farm>/subdir/ will need the subdirectory '$farm/subdir/'.
- *  * A virtual host based setup needs animal directory names which have to reflect
- *    the domain name: If an animal resides in http://www.example.org:8080/mysite/test/,
- *    directories that will match range from '$farm/8080.www.example.org.mysite.test/'
- *    to a simple '$farm/domain/'.
- *
- * @author Anika Henke <anika@selfthinker.org>
- * @author Michael Klier <chi@chimeric.de>
- * @author Christopher Smith <chris@jalakai.co.uk>
- * @author virtual host part of farm_confpath() based on conf_path() from Drupal.org's /includes/bootstrap.inc
- *   (see https://github.com/drupal/drupal/blob/7.x/includes/bootstrap.inc#L537)
- * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
- */
-
-// DOKU_FARMDIR needs to be set in preload.php, here the fallback is the same as DOKU_INC would be (if it was set already)
-if(!defined('DOKU_FARMDIR')) define('DOKU_FARMDIR', fullpath(dirname(__FILE__).'/../').'/');
-if(!defined('DOKU_CONF')) define('DOKU_CONF', farm_confpath(DOKU_FARMDIR));
-if(!defined('DOKU_FARM')) define('DOKU_FARM', false);
-
-
-/**
- * Find the appropriate configuration directory.
- *
- * If the .htaccess based setup is used, the configuration directory can be
- * any subdirectory of the farm directory.
- *
- * Otherwise try finding a matching configuration directory by stripping the
- * 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) {
-
-    // htaccess based or cli
-    // cli usage example: animal=your_animal bin/indexer.php
-    if(isset($_REQUEST['animal']) || ('cli' == php_sapi_name() && isset($_SERVER['animal']))) {
-        $mode = isset($_REQUEST['animal']) ? 'htaccess' : 'cli';
-        $animal = $mode == 'htaccess' ? $_REQUEST['animal'] : $_SERVER['animal'];
-        // check that $animal is a string and just a directory name and not a path
-        if (!is_string($animal) || strpbrk($animal, '\\/') !== false)
-            nice_die('Sorry! Invalid animal name!');
-        if(!is_dir($farm.'/'.$animal))
-            nice_die("Sorry! This Wiki doesn't exist!");
-        if(!defined('DOKU_FARM')) define('DOKU_FARM', $mode);
-        return $farm.'/'.$animal.'/conf/';
-    }
-
-    // virtual host based
-    $uri = explode('/', $_SERVER['SCRIPT_NAME'] ? $_SERVER['SCRIPT_NAME'] : $_SERVER['SCRIPT_FILENAME']);
-    $server = explode('.', implode('.', array_reverse(explode(':', rtrim($_SERVER['HTTP_HOST'], '.')))));
-    for ($i = count($uri) - 1; $i > 0; $i--) {
-        for ($j = count($server); $j > 0; $j--) {
-            $dir = implode('.', array_slice($server, -$j)) . implode('.', array_slice($uri, 0, $i));
-            if(is_dir("$farm/$dir/conf/")) {
-                if(!defined('DOKU_FARM')) define('DOKU_FARM', 'virtual');
-                return "$farm/$dir/conf/";
-            }
-        }
-    }
-
-    // default conf directory in farm
-    if(is_dir("$farm/default/conf/")) {
-        if(!defined('DOKU_FARM')) define('DOKU_FARM', 'default');
-        return "$farm/default/conf/";
-    }
-    // farmer
-    return DOKU_INC.'conf/';
-}
-
-/* Use default config files and local animal config files */
-$config_cascade = array(
-    'main' => array(
-        'default'   => array(DOKU_INC.'conf/dokuwiki.php'),
-        'local'     => array(DOKU_CONF.'local.php'),
-        'protected' => array(DOKU_CONF.'local.protected.php'),
-    ),
-    'acronyms'  => array(
-        'default'   => array(DOKU_INC.'conf/acronyms.conf'),
-        'local'     => array(DOKU_CONF.'acronyms.local.conf'),
-    ),
-    'entities'  => array(
-        'default'   => array(DOKU_INC.'conf/entities.conf'),
-        'local'     => array(DOKU_CONF.'entities.local.conf'),
-    ),
-    'interwiki' => array(
-        'default'   => array(DOKU_INC.'conf/interwiki.conf'),
-        'local'     => array(DOKU_CONF.'interwiki.local.conf'),
-    ),
-    'license' => array(
-        'default'   => array(DOKU_INC.'conf/license.php'),
-        'local'     => array(DOKU_CONF.'license.local.php'),
-    ),
-    'mediameta' => array(
-        'default'   => array(DOKU_INC.'conf/mediameta.php'),
-        'local'     => array(DOKU_CONF.'mediameta.local.php'),
-    ),
-    'mime'      => array(
-        'default'   => array(DOKU_INC.'conf/mime.conf'),
-        'local'     => array(DOKU_CONF.'mime.local.conf'),
-    ),
-    'scheme'    => array(
-        'default'   => array(DOKU_INC.'conf/scheme.conf'),
-        'local'     => array(DOKU_CONF.'scheme.local.conf'),
-    ),
-    'smileys'   => array(
-        'default'   => array(DOKU_INC.'conf/smileys.conf'),
-        'local'     => array(DOKU_CONF.'smileys.local.conf'),
-    ),
-    'wordblock' => array(
-        'default'   => array(DOKU_INC.'conf/wordblock.conf'),
-        'local'     => array(DOKU_CONF.'wordblock.local.conf'),
-    ),
-    'acl'       => array(
-        'default'   => DOKU_CONF.'acl.auth.php',
-    ),
-    'plainauth.users' => array(
-        'default'   => DOKU_CONF.'users.auth.php',
-    ),
-    'plugins' => array( // needed since Angua
-        'default'   => array(DOKU_INC.'conf/plugins.php'),
-        'local'     => array(DOKU_CONF.'plugins.local.php'),
-        'protected' => array(
-            DOKU_INC.'conf/plugins.required.php',
-            DOKU_CONF.'plugins.protected.php',
-        ),
-    ),
-    'userstyle' => array(
-        'screen'    => array(DOKU_CONF . 'userstyle.css', DOKU_CONF . 'userstyle.less'),
-        'print'     => array(DOKU_CONF . 'userprint.css', DOKU_CONF . 'userprint.less'),
-        'feed'      => array(DOKU_CONF . 'userfeed.css', DOKU_CONF . 'userfeed.less'),
-        'all'       => array(DOKU_CONF . 'userall.css', DOKU_CONF . 'userall.less')
-    ),
-    'userscript' => array(
-        'default'   => array(DOKU_CONF . 'userscript.js')
-    ),
-);
diff --git a/wiki/inc/fetch.functions.php b/wiki/inc/fetch.functions.php
deleted file mode 100644
index b8e75ea..0000000
--- a/wiki/inc/fetch.functions.php
+++ /dev/null
@@ -1,186 +0,0 @@
-<?php
-/**
- * Functions used by lib/exe/fetch.php
- * (not included by other parts of dokuwiki)
- */
-
-/**
- * Set headers and send the file to the client
- *
- * The $cache parameter influences how long files may be kept in caches, the $public parameter
- * influences if this caching may happen in public proxis or in the browser cache only FS#2734
- *
- * This function will abort the current script when a 304 is sent or file sending is handled
- * through x-sendfile
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- * @author Ben Coburn <btcoburn@silicodon.net>
- * @author Gerry Weissbach <dokuwiki@gammaproduction.de>
- *
- * @param string $file   local file to send
- * @param string $mime   mime type of the file
- * @param bool   $dl     set to true to force a browser download
- * @param int    $cache  remaining cache time in seconds (-1 for $conf['cache'], 0 for no-cache)
- * @param bool   $public is this a public ressource or a private one?
- * @param string $orig   original file to send - the file name will be used for the Content-Disposition
- */
-function sendFile($file, $mime, $dl, $cache, $public = false, $orig = null) {
-    global $conf;
-    // send mime headers
-    header("Content-Type: $mime");
-
-    // calculate cache times
-    if($cache == -1) {
-        $maxage  = max($conf['cachetime'], 3600); // cachetime or one hour
-        $expires = time() + $maxage;
-    } else if($cache > 0) {
-        $maxage  = $cache; // given time
-        $expires = time() + $maxage;
-    } else { // $cache == 0
-        $maxage  = 0;
-        $expires = 0; // 1970-01-01
-    }
-
-    // smart http caching headers
-    if($maxage) {
-        if($public) {
-            // cache publically
-            header('Expires: '.gmdate("D, d M Y H:i:s", $expires).' GMT');
-            header('Cache-Control: public, proxy-revalidate, no-transform, max-age='.$maxage);
-        } else {
-            // cache in browser
-            header('Expires: '.gmdate("D, d M Y H:i:s", $expires).' GMT');
-            header('Cache-Control: private, no-transform, max-age='.$maxage);
-        }
-    } else {
-        // no cache at all
-        header('Expires: Thu, 01 Jan 1970 00:00:00 GMT');
-        header('Cache-Control: no-cache, no-transform');
-    }
-
-    //send important headers first, script stops here if '304 Not Modified' response
-    $fmtime = @filemtime($file);
-    http_conditionalRequest($fmtime);
-
-    // Use the current $file if is $orig is not set.
-    if ( $orig == null ) {
-        $orig = $file;
-    }
-
-    //download or display?
-    if($dl) {
-        header('Content-Disposition: attachment;'.rfc2231_encode('filename', utf8_basename($orig)).';');
-    } else {
-        header('Content-Disposition: inline;'.rfc2231_encode('filename', utf8_basename($orig)).';');
-    }
-
-    //use x-sendfile header to pass the delivery to compatible webservers
-    http_sendfile($file);
-
-    // send file contents
-    $fp = @fopen($file, "rb");
-    if($fp) {
-        http_rangeRequest($fp, filesize($file), $mime);
-    } else {
-        http_status(500);
-        print "Could not read $file - bad permissions?";
-    }
-}
-
-/**
- * Try an rfc2231 compatible encoding. This ensures correct
- * interpretation of filenames outside of the ASCII set.
- * This seems to be needed for file names with e.g. umlauts that
- * would otherwise decode wrongly in IE.
- *
- * There is no additional checking, just the encoding and setting the key=value for usage in headers
- *
- * @author Gerry Weissbach <gerry.w@gammaproduction.de>
- * @param string $name      name of the field to be set in the header() call
- * @param string $value     value of the field to be set in the header() call
- * @param string $charset   used charset for the encoding of value
- * @param string $lang      language used.
- * @return string           in the format " name=value" for values WITHOUT special characters
- * @return string           in the format " name*=charset'lang'value" for values WITH special characters
- */
-function rfc2231_encode($name, $value, $charset='utf-8', $lang='en') {
-    $internal = preg_replace_callback('/[\x00-\x20*\'%()<>@,;:\\\\"\/[\]?=\x80-\xFF]/', function($match) { return rawurlencode($match[0]); }, $value);
-    if ( $value != $internal ) {
-        return ' '.$name.'*='.$charset."'".$lang."'".$internal;
-    } else {
-        return ' '.$name.'="'.$value.'"';
-    }
-}
-
-/**
- * Check for media for preconditions and return correct status code
- *
- * READ: MEDIA, MIME, EXT, CACHE
- * WRITE: MEDIA, FILE, array( STATUS, STATUSMESSAGE )
- *
- * @author Gerry Weissbach <gerry.w@gammaproduction.de>
- *
- * @param string $media  reference to the media id
- * @param string $file   reference to the file variable
- * @param string $rev
- * @param int    $width
- * @param int    $height
- * @return array as array(STATUS, STATUSMESSAGE)
- */
-function checkFileStatus(&$media, &$file, $rev = '', $width=0, $height=0) {
-    global $MIME, $EXT, $CACHE, $INPUT;
-
-    //media to local file
-    if(media_isexternal($media)) {
-        //check token for external image and additional for resized and cached images
-        if(media_get_token($media, $width, $height) !== $INPUT->str('tok')) {
-            return array(412, 'Precondition Failed');
-        }
-        //handle external images
-        if(strncmp($MIME, 'image/', 6) == 0) $file = media_get_from_URL($media, $EXT, $CACHE);
-        if(!$file) {
-            //download failed - redirect to original URL
-            return array(302, $media);
-        }
-    } else {
-        $media = cleanID($media);
-        if(empty($media)) {
-            return array(400, 'Bad request');
-        }
-        // check token for resized images
-        if (($width || $height) && media_get_token($media, $width, $height) !== $INPUT->str('tok')) {
-            return array(412, 'Precondition Failed');
-        }
-
-        //check permissions (namespace only)
-        if(auth_quickaclcheck(getNS($media).':X') < AUTH_READ) {
-            return array(403, 'Forbidden');
-        }
-        $file = mediaFN($media, $rev);
-    }
-
-    //check file existance
-    if(!file_exists($file)) {
-        return array(404, 'Not Found');
-    }
-
-    return array(200, null);
-}
-
-/**
- * Returns the wanted cachetime in seconds
- *
- * Resolves named constants
- *
- * @author  Andreas Gohr <andi@splitbrain.org>
- *
- * @param string $cache
- * @return int cachetime in seconds
- */
-function calc_cache($cache) {
-    global $conf;
-
-    if(strtolower($cache) == 'nocache') return 0; //never cache
-    if(strtolower($cache) == 'recache') return $conf['cachetime']; //use standard cache
-    return -1; //cache endless
-}
diff --git a/wiki/inc/form.php b/wiki/inc/form.php
deleted file mode 100644
index 7afb0ba..0000000
--- a/wiki/inc/form.php
+++ /dev/null
@@ -1,1098 +0,0 @@
-<?php
-/**
- * DokuWiki XHTML Form
- *
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * @author     Tom N Harris <tnharris@whoopdedo.org>
- */
-
-if(!defined('DOKU_INC')) die('meh.');
-
-/**
- * Class for creating simple HTML forms.
- *
- * The forms is built from a list of pseudo-tags (arrays with expected keys).
- * Every pseudo-tag must have the key '_elem' set to the name of the element.
- * When printed, the form class calls functions named 'form_$type' for each
- * element it contains.
- *
- * Standard practice is for non-attribute keys in a pseudo-element to start
- * with '_'. Other keys are HTML attributes that will be included in the element
- * tag. That way, the element output functions can pass the pseudo-element
- * directly to buildAttributes.
- *
- * See the form_make* functions later in this file.
- *
- * @author Tom N Harris <tnharris@whoopdedo.org>
- */
-class Doku_Form {
-
-    // Form id attribute
-    public $params = array();
-
-    // Draw a border around form fields.
-    // Adds <fieldset></fieldset> around the elements
-    public $_infieldset = false;
-
-    // Hidden form fields.
-    public $_hidden = array();
-
-    // Array of pseudo-tags
-    public $_content = array();
-
-    /**
-     * Constructor
-     *
-     * Sets parameters and autoadds a security token. The old calling convention
-     * with up to four parameters is deprecated, instead the first parameter
-     * should be an array with parameters.
-     *
-     * @param mixed       $params  Parameters for the HTML form element; Using the deprecated
-     *                             calling convention this is the ID attribute of the form
-     * @param bool|string $action  (optional, deprecated) submit URL, defaults to current page
-     * @param bool|string $method  (optional, deprecated) 'POST' or 'GET', default is POST
-     * @param bool|string $enctype (optional, deprecated) Encoding type of the data
-     *
-     * @author  Tom N Harris <tnharris@whoopdedo.org>
-     */
-    function __construct($params, $action=false, $method=false, $enctype=false) {
-        if(!is_array($params)) {
-            $this->params = array('id' => $params);
-            if ($action !== false) $this->params['action'] = $action;
-            if ($method !== false) $this->params['method'] = strtolower($method);
-            if ($enctype !== false) $this->params['enctype'] = $enctype;
-        } else {
-            $this->params = $params;
-        }
-
-        if (!isset($this->params['method'])) {
-            $this->params['method'] = 'post';
-        } else {
-            $this->params['method'] = strtolower($this->params['method']);
-        }
-
-        if (!isset($this->params['action'])) {
-            $this->params['action'] = '';
-        }
-
-        $this->addHidden('sectok', getSecurityToken());
-    }
-
-    /**
-     * startFieldset
-     *
-     * Add <fieldset></fieldset> tags around fields.
-     * Usually results in a border drawn around the form.
-     *
-     * @param   string  $legend Label that will be printed with the border.
-     *
-     * @author  Tom N Harris <tnharris@whoopdedo.org>
-     */
-    function startFieldset($legend) {
-        if ($this->_infieldset) {
-            $this->addElement(array('_elem'=>'closefieldset'));
-        }
-        $this->addElement(array('_elem'=>'openfieldset', '_legend'=>$legend));
-        $this->_infieldset = true;
-    }
-
-    /**
-     * endFieldset
-     *
-     * @author  Tom N Harris <tnharris@whoopdedo.org>
-     */
-    function endFieldset() {
-        if ($this->_infieldset) {
-            $this->addElement(array('_elem'=>'closefieldset'));
-        }
-        $this->_infieldset = false;
-    }
-
-    /**
-     * addHidden
-     *
-     * Adds a name/value pair as a hidden field.
-     * The value of the field (but not the name) will be passed to
-     * formText() before printing.
-     *
-     * @param   string  $name   Field name.
-     * @param   string  $value  Field value. If null, remove a previously added field.
-     *
-     * @author  Tom N Harris <tnharris@whoopdedo.org>
-     */
-    function addHidden($name, $value) {
-        if (is_null($value))
-            unset($this->_hidden[$name]);
-        else
-            $this->_hidden[$name] = $value;
-    }
-
-    /**
-     * addElement
-     *
-     * Appends a content element to the form.
-     * The element can be either a pseudo-tag or string.
-     * If string, it is printed without escaping special chars.   *
-     *
-     * @param   string|array  $elem   Pseudo-tag or string to add to the form.
-     *
-     * @author  Tom N Harris <tnharris@whoopdedo.org>
-     */
-    function addElement($elem) {
-        $this->_content[] = $elem;
-    }
-
-    /**
-     * insertElement
-     *
-     * Inserts a content element at a position.
-     *
-     * @param   string       $pos  0-based index where the element will be inserted.
-     * @param   string|array $elem Pseudo-tag or string to add to the form.
-     *
-     * @author  Tom N Harris <tnharris@whoopdedo.org>
-     */
-    function insertElement($pos, $elem) {
-        array_splice($this->_content, $pos, 0, array($elem));
-    }
-
-    /**
-     * replaceElement
-     *
-     * Replace with NULL to remove an element.
-     *
-     * @param   int          $pos  0-based index the element will be placed at.
-     * @param   string|array $elem Pseudo-tag or string to add to the form.
-     *
-     * @author  Tom N Harris <tnharris@whoopdedo.org>
-     */
-    function replaceElement($pos, $elem) {
-        $rep = array();
-        if (!is_null($elem)) $rep[] = $elem;
-        array_splice($this->_content, $pos, 1, $rep);
-    }
-
-    /**
-     * findElementByType
-     *
-     * Gets the position of the first of a type of element.
-     *
-     * @param   string  $type   Element type to look for.
-     * @return  int|false     position of element if found, otherwise false
-     *
-     * @author  Tom N Harris <tnharris@whoopdedo.org>
-     */
-    function findElementByType($type) {
-        foreach ($this->_content as $pos=>$elem) {
-            if (is_array($elem) && $elem['_elem'] == $type)
-                return $pos;
-        }
-        return false;
-    }
-
-    /**
-     * findElementById
-     *
-     * Gets the position of the element with an ID attribute.
-     *
-     * @param   string  $id     ID of the element to find.
-     * @return  int|false     position of element if found, otherwise false
-     *
-     * @author  Tom N Harris <tnharris@whoopdedo.org>
-     */
-    function findElementById($id) {
-        foreach ($this->_content as $pos=>$elem) {
-            if (is_array($elem) && isset($elem['id']) && $elem['id'] == $id)
-                return $pos;
-        }
-        return false;
-    }
-
-    /**
-     * findElementByAttribute
-     *
-     * Gets the position of the first element with a matching attribute value.
-     *
-     * @param   string  $name   Attribute name.
-     * @param   string  $value  Attribute value.
-     * @return  int|false     position of element if found, otherwise false
-     *
-     * @author  Tom N Harris <tnharris@whoopdedo.org>
-     */
-    function findElementByAttribute($name, $value) {
-        foreach ($this->_content as $pos=>$elem) {
-            if (is_array($elem) && isset($elem[$name]) && $elem[$name] == $value)
-                return $pos;
-        }
-        return false;
-    }
-
-    /**
-     * getElementAt
-     *
-     * Returns a reference to the element at a position.
-     * A position out-of-bounds will return either the
-     * first (underflow) or last (overflow) element.
-     *
-     * @param   int     $pos    0-based index
-     * @return  array reference  pseudo-element
-     *
-     * @author  Tom N Harris <tnharris@whoopdedo.org>
-     */
-    function &getElementAt($pos) {
-        if ($pos < 0) $pos = count($this->_content) + $pos;
-        if ($pos < 0) $pos = 0;
-        if ($pos >= count($this->_content)) $pos = count($this->_content) - 1;
-        return $this->_content[$pos];
-    }
-
-    /**
-     * Return the assembled HTML for the form.
-     *
-     * Each element in the form will be passed to a function named
-     * 'form_$type'. The function should return the HTML to be printed.
-     *
-     * @author  Tom N Harris <tnharris@whoopdedo.org>
-     *
-     * @return string html of the form
-     */
-    function getForm() {
-        global $lang;
-        $form = '';
-        $this->params['accept-charset'] = $lang['encoding'];
-        $form .= '<form ' . buildAttributes($this->params,false) . '><div class="no">' . DOKU_LF;
-        if (!empty($this->_hidden)) {
-            foreach ($this->_hidden as $name=>$value)
-                $form .= form_hidden(array('name'=>$name, 'value'=>$value));
-        }
-        foreach ($this->_content as $element) {
-            if (is_array($element)) {
-                $elem_type = $element['_elem'];
-                if (function_exists('form_'.$elem_type)) {
-                    $form .= call_user_func('form_'.$elem_type, $element).DOKU_LF;
-                }
-            } else {
-                $form .= $element;
-            }
-        }
-        if ($this->_infieldset) $form .= form_closefieldset().DOKU_LF;
-        $form .= '</div></form>'.DOKU_LF;
-
-        return $form;
-    }
-
-    /**
-     * Print the assembled form
-     *
-     * wraps around getForm()
-     */
-    function printForm(){
-        echo $this->getForm();
-    }
-
-    /**
-     * Add a radio set
-     *
-     * This function adds a set of radio buttons to the form. If $_POST[$name]
-     * is set, this radio is preselected, else the first radio button.
-     *
-     * @param string    $name    The HTML field name
-     * @param array     $entries An array of entries $value => $caption
-     *
-     * @author Adrian Lang <lang@cosmocode.de>
-     */
-
-    function addRadioSet($name, $entries) {
-        global $INPUT;
-        $value = (array_key_exists($INPUT->post->str($name), $entries)) ?
-                 $INPUT->str($name) : key($entries);
-        foreach($entries as $val => $cap) {
-            $data = ($value === $val) ? array('checked' => 'checked') : array();
-            $this->addElement(form_makeRadioField($name, $val, $cap, '', '', $data));
-        }
-    }
-
-}
-
-/**
- * form_makeTag
- *
- * Create a form element for a non-specific empty tag.
- *
- * @param   string  $tag    Tag name.
- * @param   array   $attrs  Optional attributes.
- * @return  array   pseudo-tag
- *
- * @author  Tom N Harris <tnharris@whoopdedo.org>
- */
-function form_makeTag($tag, $attrs=array()) {
-    $elem = array('_elem'=>'tag', '_tag'=>$tag);
-    return array_merge($elem, $attrs);
-}
-
-/**
- * form_makeOpenTag
- *
- * Create a form element for a non-specific opening tag.
- * Remember to put a matching close tag after this as well.
- *
- * @param   string  $tag    Tag name.
- * @param   array   $attrs  Optional attributes.
- * @return  array   pseudo-tag
- *
- * @author  Tom N Harris <tnharris@whoopdedo.org>
- */
-function form_makeOpenTag($tag, $attrs=array()) {
-    $elem = array('_elem'=>'opentag', '_tag'=>$tag);
-    return array_merge($elem, $attrs);
-}
-
-/**
- * form_makeCloseTag
- *
- * Create a form element for a non-specific closing tag.
- * Careless use of this will result in invalid XHTML.
- *
- * @param   string  $tag    Tag name.
- * @return  array   pseudo-tag
- *
- * @author  Tom N Harris <tnharris@whoopdedo.org>
- */
-function form_makeCloseTag($tag) {
-    return array('_elem'=>'closetag', '_tag'=>$tag);
-}
-
-/**
- * form_makeWikiText
- *
- * Create a form element for a textarea containing wiki text.
- * Only one wikitext element is allowed on a page. It will have
- * a name of 'wikitext' and id 'wiki__text'. The text will
- * be passed to formText() before printing.
- *
- * @param   string  $text   Text to fill the field with.
- * @param   array   $attrs  Optional attributes.
- * @return  array   pseudo-tag
- *
- * @author  Tom N Harris <tnharris@whoopdedo.org>
- */
-function form_makeWikiText($text, $attrs=array()) {
-    $elem = array('_elem'=>'wikitext', '_text'=>$text,
-                        'class'=>'edit', 'cols'=>'80', 'rows'=>'10');
-    return array_merge($elem, $attrs);
-}
-
-/**
- * form_makeButton
- *
- * Create a form element for an action button.
- * A title will automatically be generated using the value and
- * accesskey attributes, unless you provide one.
- *
- * @param   string  $type   Type attribute. 'submit' or 'cancel'
- * @param   string  $act    Wiki action of the button, will be used as the do= parameter
- * @param   string  $value  (optional) Displayed label. Uses $act if not provided.
- * @param   array   $attrs  Optional attributes.
- * @return  array   pseudo-tag
- *
- * @author  Tom N Harris <tnharris@whoopdedo.org>
- */
-function form_makeButton($type, $act, $value='', $attrs=array()) {
-    if ($value == '') $value = $act;
-    $elem = array('_elem'=>'button', 'type'=>$type, '_action'=>$act,
-                        'value'=>$value);
-    if (!empty($attrs['accesskey']) && empty($attrs['title'])) {
-        $attrs['title'] = $value . ' ['.strtoupper($attrs['accesskey']).']';
-    }
-    return array_merge($elem, $attrs);
-}
-
-/**
- * form_makeField
- *
- * Create a form element for a labelled input element.
- * The label text will be printed before the input.
- *
- * @param   string  $type   Type attribute of input.
- * @param   string  $name   Name attribute of the input.
- * @param   string  $value  (optional) Default value.
- * @param   string  $class  Class attribute of the label. If this is 'block',
- *                          then a line break will be added after the field.
- * @param   string  $label  Label that will be printed before the input.
- * @param   string  $id     ID attribute of the input. If set, the label will
- *                          reference it with a 'for' attribute.
- * @param   array   $attrs  Optional attributes.
- * @return  array   pseudo-tag
- *
- * @author  Tom N Harris <tnharris@whoopdedo.org>
- */
-function form_makeField($type, $name, $value='', $label=null, $id='', $class='', $attrs=array()) {
-    if (is_null($label)) $label = $name;
-    $elem = array('_elem'=>'field', '_text'=>$label, '_class'=>$class,
-                        'type'=>$type, 'id'=>$id, 'name'=>$name, 'value'=>$value);
-    return array_merge($elem, $attrs);
-}
-
-/**
- * form_makeFieldRight
- *
- * Create a form element for a labelled input element.
- * The label text will be printed after the input.
- *
- * @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;
-    $elem = array('_elem'=>'fieldright', '_text'=>$label, '_class'=>$class,
-                        'type'=>$type, 'id'=>$id, 'name'=>$name, 'value'=>$value);
-    return array_merge($elem, $attrs);
-}
-
-/**
- * form_makeTextField
- *
- * Create a form element for a text input element with label.
- *
- * @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;
-    $elem = array('_elem'=>'textfield', '_text'=>$label, '_class'=>$class,
-                        'id'=>$id, 'name'=>$name, 'value'=>$value, 'class'=>'edit');
-    return array_merge($elem, $attrs);
-}
-
-/**
- * form_makePasswordField
- *
- * Create a form element for a password input element with label.
- * Password elements have no default value, for obvious reasons.
- *
- * @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;
-    $elem = array('_elem'=>'passwordfield', '_text'=>$label, '_class'=>$class,
-                        'id'=>$id, 'name'=>$name, 'class'=>'edit');
-    return array_merge($elem, $attrs);
-}
-
-/**
- * form_makeFileField
- *
- * Create a form element for a file input element with label
- *
- * @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;
-    $elem = array('_elem'=>'filefield', '_text'=>$label, '_class'=>$class,
-                        'id'=>$id, 'name'=>$name, 'class'=>'edit');
-    return array_merge($elem, $attrs);
-}
-
-/**
- * form_makeCheckboxField
- *
- * Create a form element for a checkbox input element with label.
- * If $value is an array, a hidden field with the same name and the value
- * $value[1] is constructed as well.
- *
- * @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;
-    if (is_null($value) || $value=='') $value='0';
-    $elem = array('_elem'=>'checkboxfield', '_text'=>$label, '_class'=>$class,
-                        'id'=>$id, 'name'=>$name, 'value'=>$value);
-    return array_merge($elem, $attrs);
-}
-
-/**
- * form_makeRadioField
- *
- * Create a form element for a radio button input element with label.
- *
- * @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;
-    if (is_null($value) || $value=='') $value='0';
-    $elem = array('_elem'=>'radiofield', '_text'=>$label, '_class'=>$class,
-                        'id'=>$id, 'name'=>$name, 'value'=>$value);
-    return array_merge($elem, $attrs);
-}
-
-/**
- * form_makeMenuField
- *
- * Create a form element for a drop-down menu with label.
- * The list of values can be strings, arrays of (value,text),
- * or an associative array with the values as keys and labels as values.
- * An item is selected by supplying its value or integer index.
- * If the list of values is an associative array, the selected item must be
- * a string.
- *
- * @author  Tom N Harris <tnharris@whoopdedo.org>
- *
- * @param string           $name     Name attribute of the input.
- * @param string[]|array[] $values   The list of values can be strings, arrays of (value,text),
- *                                   or an associative array with the values as keys and labels as values.
- * @param string|int       $selected default selected value, string or index number
- * @param string           $class    Class attribute of the label. If this is 'block',
- *                                   then a line break will be added after the field.
- * @param string           $label    Label that will be printed before the input.
- * @param string           $id       ID attribute of the input. If set, the label will
- *                                   reference it with a 'for' attribute.
- * @param array            $attrs    Optional attributes.
- * @return array   pseudo-tag
- */
-function form_makeMenuField($name, $values, $selected='', $label=null, $id='', $class='', $attrs=array()) {
-    if (is_null($label)) $label = $name;
-    $options = array();
-    reset($values);
-    // FIXME: php doesn't know the difference between a string and an integer
-    if (is_string(key($values))) {
-        foreach ($values as $val=>$text) {
-            $options[] = array($val,$text, (!is_null($selected) && $val==$selected));
-        }
-    } else {
-        if (is_integer($selected)) $selected = $values[$selected];
-        foreach ($values as $val) {
-            if (is_array($val))
-                @list($val,$text) = $val;
-            else
-                $text = null;
-            $options[] = array($val,$text,$val===$selected);
-        }
-    }
-    $elem = array('_elem'=>'menufield', '_options'=>$options, '_text'=>$label, '_class'=>$class,
-                        'id'=>$id, 'name'=>$name);
-    return array_merge($elem, $attrs);
-}
-
-/**
- * form_makeListboxField
- *
- * Create a form element for a list box with label.
- * The list of values can be strings, arrays of (value,text),
- * or an associative array with the values as keys and labels as values.
- * Items are selected by supplying its value or an array of values.
- *
- * @author  Tom N Harris <tnharris@whoopdedo.org>
- *
- * @param string           $name     Name attribute of the input.
- * @param string[]|array[] $values   The list of values can be strings, arrays of (value,text),
- *                                   or an associative array with the values as keys and labels as values.
- * @param array|string     $selected value or array of values of the items that need to be selected
- * @param string           $class    Class attribute of the label. If this is 'block',
- *                                   then a line break will be added after the field.
- * @param string           $label    Label that will be printed before the input.
- * @param string           $id       ID attribute of the input. If set, the label will
- *                                   reference it with a 'for' attribute.
- * @param array            $attrs    Optional attributes.
- * @return array   pseudo-tag
- */
-function form_makeListboxField($name, $values, $selected='', $label=null, $id='', $class='', $attrs=array()) {
-    if (is_null($label)) $label = $name;
-    $options = array();
-    reset($values);
-    if (is_null($selected) || $selected == '') {
-        $selected = array();
-    } elseif (!is_array($selected)) {
-        $selected = array($selected);
-    }
-    // FIXME: php doesn't know the difference between a string and an integer
-    if (is_string(key($values))) {
-        foreach ($values as $val=>$text) {
-            $options[] = array($val,$text,in_array($val,$selected));
-        }
-    } else {
-        foreach ($values as $val) {
-            $disabled = false;
-            if (is_array($val)) {
-                @list($val,$text,$disabled) = $val;
-            } else {
-                $text = null;
-            }
-            $options[] = array($val,$text,in_array($val,$selected),$disabled);
-        }
-    }
-    $elem = array('_elem'=>'listboxfield', '_options'=>$options, '_text'=>$label, '_class'=>$class,
-                        'id'=>$id, 'name'=>$name);
-    return array_merge($elem, $attrs);
-}
-
-/**
- * form_tag
- *
- * Print the HTML for a generic empty tag.
- * Requires '_tag' key with name of the tag.
- * Attributes are passed to buildAttributes()
- *
- * @author  Tom N Harris <tnharris@whoopdedo.org>
- *
- * @param array $attrs attributes
- * @return string html of tag
- */
-function form_tag($attrs) {
-    return '<'.$attrs['_tag'].' '.buildAttributes($attrs,true).'/>';
-}
-
-/**
- * form_opentag
- *
- * Print the HTML for a generic opening tag.
- * Requires '_tag' key with name of the tag.
- * Attributes are passed to buildAttributes()
- *
- * @author  Tom N Harris <tnharris@whoopdedo.org>
- *
- * @param array $attrs attributes
- * @return string html of tag
- */
-function form_opentag($attrs) {
-    return '<'.$attrs['_tag'].' '.buildAttributes($attrs,true).'>';
-}
-
-/**
- * form_closetag
- *
- * Print the HTML for a generic closing tag.
- * Requires '_tag' key with name of the tag.
- * There are no attributes.
- *
- * @author  Tom N Harris <tnharris@whoopdedo.org>
- *
- * @param array $attrs attributes
- * @return string html of tag
- */
-function form_closetag($attrs) {
-    return '</'.$attrs['_tag'].'>';
-}
-
-/**
- * form_openfieldset
- *
- * Print the HTML for an opening fieldset tag.
- * Uses the '_legend' key.
- * Attributes are passed to buildAttributes()
- *
- * @author  Tom N Harris <tnharris@whoopdedo.org>
- *
- * @param array $attrs attributes
- * @return string html
- */
-function form_openfieldset($attrs) {
-    $s = '<fieldset '.buildAttributes($attrs,true).'>';
-    if (!is_null($attrs['_legend'])) $s .= '<legend>'.$attrs['_legend'].'</legend>';
-    return $s;
-}
-
-/**
- * form_closefieldset
- *
- * Print the HTML for a closing fieldset tag.
- * There are no attributes.
- *
- * @author  Tom N Harris <tnharris@whoopdedo.org>
- *
- * @return string html
- */
-function form_closefieldset() {
-    return '</fieldset>';
-}
-
-/**
- * form_hidden
- *
- * Print the HTML for a hidden input element.
- * Uses only 'name' and 'value' attributes.
- * Value is passed to formText()
- *
- * @author  Tom N Harris <tnharris@whoopdedo.org>
- *
- * @param array $attrs attributes
- * @return string html
- */
-function form_hidden($attrs) {
-    return '<input type="hidden" name="'.$attrs['name'].'" value="'.formText($attrs['value']).'" />';
-}
-
-/**
- * form_wikitext
- *
- * Print the HTML for the wiki textarea.
- * Requires '_text' with default text of the field.
- * Text will be passed to formText(), attributes to buildAttributes()
- *
- * @author  Tom N Harris <tnharris@whoopdedo.org>
- *
- * @param array $attrs attributes
- * @return string html
- */
-function form_wikitext($attrs) {
-    // mandatory attributes
-    unset($attrs['name']);
-    unset($attrs['id']);
-    return '<textarea name="wikitext" id="wiki__text" dir="auto" '
-                 .buildAttributes($attrs,true).'>'.DOKU_LF
-                 .formText($attrs['_text'])
-                 .'</textarea>';
-}
-
-/**
- * form_button
- *
- * Print the HTML for a form button.
- * If '_action' is set, the button name will be "do[_action]".
- * Other attributes are passed to buildAttributes()
- *
- * @author  Tom N Harris <tnharris@whoopdedo.org>
- *
- * @param array $attrs attributes
- * @return string html
- */
-function form_button($attrs) {
-    $p = (!empty($attrs['_action'])) ? 'name="do['.$attrs['_action'].']" ' : '';
-    $value = $attrs['value'];
-    unset($attrs['value']);
-    return '<button '.$p.buildAttributes($attrs,true).'>'.$value.'</button>';
-}
-
-/**
- * form_field
- *
- * Print the HTML for a form input field.
- *   _class : class attribute used on the label tag
- *   _text  : Text to display before the input. Not escaped.
- * Other attributes are passed to buildAttributes() for the input tag.
- *
- * @author  Tom N Harris <tnharris@whoopdedo.org>
- *
- * @param array $attrs attributes
- * @return string html
- */
-function form_field($attrs) {
-    $s = '<label';
-    if ($attrs['_class']) $s .= ' class="'.$attrs['_class'].'"';
-    if (!empty($attrs['id'])) $s .= ' for="'.$attrs['id'].'"';
-    $s .= '><span>'.$attrs['_text'].'</span>';
-    $s .= ' <input '.buildAttributes($attrs,true).' /></label>';
-    if (preg_match('/(^| )block($| )/', $attrs['_class']))
-        $s .= '<br />';
-    return $s;
-}
-
-/**
- * form_fieldright
- *
- * Print the HTML for a form input field. (right-aligned)
- *   _class : class attribute used on the label tag
- *   _text  : Text to display after the input. Not escaped.
- * Other attributes are passed to buildAttributes() for the input tag.
- *
- * @author  Tom N Harris <tnharris@whoopdedo.org>
- *
- * @param array $attrs attributes
- * @return string html
- */
-function form_fieldright($attrs) {
-    $s = '<label';
-    if ($attrs['_class']) $s .= ' class="'.$attrs['_class'].'"';
-    if (!empty($attrs['id'])) $s .= ' for="'.$attrs['id'].'"';
-    $s .= '><input '.buildAttributes($attrs,true).' />';
-    $s .= ' <span>'.$attrs['_text'].'</span></label>';
-    if (preg_match('/(^| )block($| )/', $attrs['_class']))
-        $s .= '<br />';
-    return $s;
-}
-
-/**
- * form_textfield
- *
- * Print the HTML for a text input field.
- *   _class : class attribute used on the label tag
- *   _text  : Text to display before the input. Not escaped.
- * Other attributes are passed to buildAttributes() for the input tag.
- *
- * @author  Tom N Harris <tnharris@whoopdedo.org>
- *
- * @param array $attrs attributes
- * @return string html
- */
-function form_textfield($attrs) {
-    // mandatory attributes
-    unset($attrs['type']);
-    $s = '<label';
-    if ($attrs['_class']) $s .= ' class="'.$attrs['_class'].'"';
-    if (!empty($attrs['id'])) $s .= ' for="'.$attrs['id'].'"';
-    $s .= '><span>'.$attrs['_text'].'</span> ';
-    $s .= '<input type="text" '.buildAttributes($attrs,true).' /></label>';
-    if (preg_match('/(^| )block($| )/', $attrs['_class']))
-        $s .= '<br />';
-    return $s;
-}
-
-/**
- * form_passwordfield
- *
- * Print the HTML for a password input field.
- *   _class : class attribute used on the label tag
- *   _text  : Text to display before the input. Not escaped.
- * Other attributes are passed to buildAttributes() for the input tag.
- *
- * @author  Tom N Harris <tnharris@whoopdedo.org>
- *
- * @param array $attrs attributes
- * @return string html
- */
-function form_passwordfield($attrs) {
-    // mandatory attributes
-    unset($attrs['type']);
-    $s = '<label';
-    if ($attrs['_class']) $s .= ' class="'.$attrs['_class'].'"';
-    if (!empty($attrs['id'])) $s .= ' for="'.$attrs['id'].'"';
-    $s .= '><span>'.$attrs['_text'].'</span> ';
-    $s .= '<input type="password" '.buildAttributes($attrs,true).' /></label>';
-    if (preg_match('/(^| )block($| )/', $attrs['_class']))
-        $s .= '<br />';
-    return $s;
-}
-
-/**
- * form_filefield
- *
- * Print the HTML for a file input field.
- *   _class     : class attribute used on the label tag
- *   _text      : Text to display before the input. Not escaped
- *   _maxlength : Allowed size in byte
- *   _accept    : Accepted mime-type
- * Other attributes are passed to buildAttributes() for the input tag
- *
- * @author  Michael Klier <chi@chimeric.de>
- *
- * @param array $attrs attributes
- * @return string html
- */
-function form_filefield($attrs) {
-    $s = '<label';
-    if ($attrs['_class']) $s .= ' class="'.$attrs['_class'].'"';
-    if (!empty($attrs['id'])) $s .= ' for="'.$attrs['id'].'"';
-    $s .= '><span>'.$attrs['_text'].'</span> ';
-    $s .= '<input type="file" '.buildAttributes($attrs,true);
-    if (!empty($attrs['_maxlength'])) $s .= ' maxlength="'.$attrs['_maxlength'].'"';
-    if (!empty($attrs['_accept'])) $s .= ' accept="'.$attrs['_accept'].'"';
-    $s .= ' /></label>';
-    if (preg_match('/(^| )block($| )/', $attrs['_class']))
-        $s .= '<br />';
-    return $s;
-}
-
-/**
- * form_checkboxfield
- *
- * Print the HTML for a checkbox input field.
- *   _class : class attribute used on the label tag
- *   _text  : Text to display after the input. Not escaped.
- * Other attributes are passed to buildAttributes() for the input tag.
- * If value is an array, a hidden field with the same name and the value
- * $attrs['value'][1] is constructed as well.
- *
- * @author  Tom N Harris <tnharris@whoopdedo.org>
- *
- * @param array $attrs attributes
- * @return string html
- */
-function form_checkboxfield($attrs) {
-    // mandatory attributes
-    unset($attrs['type']);
-    $s = '<label';
-    if ($attrs['_class']) $s .= ' class="'.$attrs['_class'].'"';
-    if (!empty($attrs['id'])) $s .= ' for="'.$attrs['id'].'"';
-    $s .= '>';
-    if (is_array($attrs['value'])) {
-        echo '<input type="hidden" name="' . hsc($attrs['name']) .'"'
-                 . ' value="' . hsc($attrs['value'][1]) . '" />';
-        $attrs['value'] = $attrs['value'][0];
-    }
-    $s .= '<input type="checkbox" '.buildAttributes($attrs,true).' />';
-    $s .= ' <span>'.$attrs['_text'].'</span></label>';
-    if (preg_match('/(^| )block($| )/', $attrs['_class']))
-        $s .= '<br />';
-    return $s;
-}
-
-/**
- * form_radiofield
- *
- * Print the HTML for a radio button input field.
- *   _class : class attribute used on the label tag
- *   _text  : Text to display after the input. Not escaped.
- * Other attributes are passed to buildAttributes() for the input tag.
- *
- * @author  Tom N Harris <tnharris@whoopdedo.org>
- *
- * @param array $attrs attributes
- * @return string html
- */
-function form_radiofield($attrs) {
-    // mandatory attributes
-    unset($attrs['type']);
-    $s = '<label';
-    if ($attrs['_class']) $s .= ' class="'.$attrs['_class'].'"';
-    if (!empty($attrs['id'])) $s .= ' for="'.$attrs['id'].'"';
-    $s .= '><input type="radio" '.buildAttributes($attrs,true).' />';
-    $s .= ' <span>'.$attrs['_text'].'</span></label>';
-    if (preg_match('/(^| )block($| )/', $attrs['_class']))
-        $s .= '<br />';
-    return $s;
-}
-
-/**
- * form_menufield
- *
- * Print the HTML for a drop-down menu.
- *   _options : Array of (value,text,selected) for the menu.
- *              Text can be omitted. Text and value are passed to formText()
- *              Only one item can be selected.
- *   _class : class attribute used on the label tag
- *   _text  : Text to display before the menu. Not escaped.
- * Other attributes are passed to buildAttributes() for the input tag.
- *
- * @author  Tom N Harris <tnharris@whoopdedo.org>
- *
- * @param array $attrs attributes
- * @return string html
- */
-function form_menufield($attrs) {
-    $attrs['size'] = '1';
-    $s = '<label';
-    if ($attrs['_class']) $s .= ' class="'.$attrs['_class'].'"';
-    if (!empty($attrs['id'])) $s .= ' for="'.$attrs['id'].'"';
-    $s .= '><span>'.$attrs['_text'].'</span>';
-    $s .= ' <select '.buildAttributes($attrs,true).'>'.DOKU_LF;
-    if (!empty($attrs['_options'])) {
-        $selected = false;
-
-        $cnt = count($attrs['_options']);
-        for($n=0; $n < $cnt; $n++){
-            @list($value,$text,$select) = $attrs['_options'][$n];
-            $p = '';
-            if (!is_null($text))
-                $p .= ' value="'.formText($value).'"';
-            else
-                $text = $value;
-            if (!empty($select) && !$selected) {
-                $p .= ' selected="selected"';
-                $selected = true;
-            }
-            $s .= '<option'.$p.'>'.formText($text).'</option>';
-        }
-    } else {
-        $s .= '<option></option>';
-    }
-    $s .= DOKU_LF.'</select></label>';
-    if (preg_match('/(^| )block($| )/', $attrs['_class']))
-        $s .= '<br />';
-    return $s;
-}
-
-/**
- * form_listboxfield
- *
- * Print the HTML for a list box.
- *   _options : Array of (value,text,selected) for the list.
- *              Text can be omitted. Text and value are passed to formText()
- *   _class : class attribute used on the label tag
- *   _text  : Text to display before the menu. Not escaped.
- * Other attributes are passed to buildAttributes() for the input tag.
- *
- * @author  Tom N Harris <tnharris@whoopdedo.org>
- *
- * @param array $attrs attributes
- * @return string html
- */
-function form_listboxfield($attrs) {
-    $s = '<label';
-    if ($attrs['_class']) $s .= ' class="'.$attrs['_class'].'"';
-    if (!empty($attrs['id'])) $s .= ' for="'.$attrs['id'].'"';
-    $s .= '><span>'.$attrs['_text'].'</span> ';
-    $s .= '<select '.buildAttributes($attrs,true).'>'.DOKU_LF;
-    if (!empty($attrs['_options'])) {
-        foreach ($attrs['_options'] as $opt) {
-            @list($value,$text,$select,$disabled) = $opt;
-            $p = '';
-            if(is_null($text)) $text = $value;
-            $p .= ' value="'.formText($value).'"';
-            if (!empty($select)) $p .= ' selected="selected"';
-            if ($disabled) $p .= ' disabled="disabled"';
-            $s .= '<option'.$p.'>'.formText($text).'</option>';
-        }
-    } else {
-        $s .= '<option></option>';
-    }
-    $s .= DOKU_LF.'</select></label>';
-    if (preg_match('/(^| )block($| )/', $attrs['_class']))
-        $s .= '<br />';
-    return $s;
-}
diff --git a/wiki/inc/fulltext.php b/wiki/inc/fulltext.php
deleted file mode 100644
index dba11d0..0000000
--- a/wiki/inc/fulltext.php
+++ /dev/null
@@ -1,919 +0,0 @@
-<?php
-/**
- * DokuWiki fulltextsearch functions using the index
- *
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * @author     Andreas Gohr <andi@splitbrain.org>
- */
-
-if(!defined('DOKU_INC')) die('meh.');
-
-/**
- * create snippets for the first few results only
- */
-if(!defined('FT_SNIPPET_NUMBER')) define('FT_SNIPPET_NUMBER',15);
-
-/**
- * The fulltext search
- *
- * Returns a list of matching documents for the given query
- *
- * refactored into ft_pageSearch(), _ft_pageSearch() and trigger_event()
- *
- * @param string     $query
- * @param array      $highlight
- * @param string     $sort
- * @param int|string $after  only show results with an modified time after this date, accepts timestap or strtotime arguments
- * @param int|string $before only show results with an modified time before this date, accepts timestap or strtotime arguments
- *
- * @return array
- */
-function ft_pageSearch($query,&$highlight, $sort = null, $after = null, $before = null){
-
-    if ($sort === null) {
-        $sort = 'hits';
-    }
-    $data = [
-        'query' => $query,
-        'sort' => $sort,
-        'after' => $after,
-        'before' => $before
-    ];
-    $data['highlight'] =& $highlight;
-
-    return trigger_event('SEARCH_QUERY_FULLPAGE', $data, '_ft_pageSearch');
-}
-
-/**
- * Returns a list of matching documents for the given query
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- * @author Kazutaka Miyasaka <kazmiya@gmail.com>
- *
- * @param array $data event data
- * @return array matching documents
- */
-function _ft_pageSearch(&$data) {
-    $Indexer = idx_get_indexer();
-
-    // parse the given query
-    $q = ft_queryParser($Indexer, $data['query']);
-    $data['highlight'] = $q['highlight'];
-
-    if (empty($q['parsed_ary'])) return array();
-
-    // lookup all words found in the query
-    $lookup = $Indexer->lookup($q['words']);
-
-    // get all pages in this dokuwiki site (!: includes nonexistent pages)
-    $pages_all = array();
-    foreach ($Indexer->getPages() as $id) {
-        $pages_all[$id] = 0; // base: 0 hit
-    }
-
-    // process the query
-    $stack = array();
-    foreach ($q['parsed_ary'] as $token) {
-        switch (substr($token, 0, 3)) {
-            case 'W+:':
-            case 'W-:':
-            case 'W_:': // word
-                $word    = substr($token, 3);
-                $stack[] = (array) $lookup[$word];
-                break;
-            case 'P+:':
-            case 'P-:': // phrase
-                $phrase = substr($token, 3);
-                // since phrases are always parsed as ((W1)(W2)...(P)),
-                // the end($stack) always points the pages that contain
-                // all words in this phrase
-                $pages  = end($stack);
-                $pages_matched = array();
-                foreach(array_keys($pages) as $id){
-                    $evdata = array(
-                        'id' => $id,
-                        'phrase' => $phrase,
-                        'text' => rawWiki($id)
-                    );
-                    $evt = new Doku_Event('FULLTEXT_PHRASE_MATCH',$evdata);
-                    if ($evt->advise_before() && $evt->result !== true) {
-                        $text = utf8_strtolower($evdata['text']);
-                        if (strpos($text, $phrase) !== false) {
-                            $evt->result = true;
-                        }
-                    }
-                    $evt->advise_after();
-                    if ($evt->result === true) {
-                        $pages_matched[$id] = 0; // phrase: always 0 hit
-                    }
-                }
-                $stack[] = $pages_matched;
-                break;
-            case 'N+:':
-            case 'N-:': // namespace
-                $ns = cleanID(substr($token, 3)) . ':';
-                $pages_matched = array();
-                foreach (array_keys($pages_all) as $id) {
-                    if (strpos($id, $ns) === 0) {
-                        $pages_matched[$id] = 0; // namespace: always 0 hit
-                    }
-                }
-                $stack[] = $pages_matched;
-                break;
-            case 'AND': // and operation
-                list($pages1, $pages2) = array_splice($stack, -2);
-                $stack[] = ft_resultCombine(array($pages1, $pages2));
-                break;
-            case 'OR':  // or operation
-                list($pages1, $pages2) = array_splice($stack, -2);
-                $stack[] = ft_resultUnite(array($pages1, $pages2));
-                break;
-            case 'NOT': // not operation (unary)
-                $pages   = array_pop($stack);
-                $stack[] = ft_resultComplement(array($pages_all, $pages));
-                break;
-        }
-    }
-    $docs = array_pop($stack);
-
-    if (empty($docs)) return array();
-
-    // check: settings, acls, existence
-    foreach (array_keys($docs) as $id) {
-        if (isHiddenPage($id) || auth_quickaclcheck($id) < AUTH_READ || !page_exists($id, '', false)) {
-            unset($docs[$id]);
-        }
-    }
-
-    $docs = _ft_filterResultsByTime($docs, $data['after'], $data['before']);
-
-    if ($data['sort'] === 'mtime') {
-        uksort($docs, 'ft_pagemtimesorter');
-    } else {
-        // sort docs by count
-        arsort($docs);
-    }
-
-    return $docs;
-}
-
-/**
- * Returns the backlinks for a given page
- *
- * Uses the metadata index.
- *
- * @param string $id           The id for which links shall be returned
- * @param bool   $ignore_perms Ignore the fact that pages are hidden or read-protected
- * @return array The pages that contain links to the given page
- */
-function ft_backlinks($id, $ignore_perms = false){
-    $result = idx_get_indexer()->lookupKey('relation_references', $id);
-
-    if(!count($result)) return $result;
-
-    // check ACL permissions
-    foreach(array_keys($result) as $idx){
-        if(($ignore_perms !== true && (
-                isHiddenPage($result[$idx]) || auth_quickaclcheck($result[$idx]) < AUTH_READ
-            )) || !page_exists($result[$idx], '', false)){
-            unset($result[$idx]);
-        }
-    }
-
-    sort($result);
-    return $result;
-}
-
-/**
- * Returns the pages that use a given media file
- *
- * Uses the relation media metadata property and the metadata index.
- *
- * Note that before 2013-07-31 the second parameter was the maximum number of results and
- * permissions were ignored. That's why the parameter is now checked to be explicitely set
- * to true (with type bool) in order to be compatible with older uses of the function.
- *
- * @param string $id           The media id to look for
- * @param bool   $ignore_perms Ignore hidden pages and acls (optional, default: false)
- * @return array A list of pages that use the given media file
- */
-function ft_mediause($id, $ignore_perms = false){
-    $result = idx_get_indexer()->lookupKey('relation_media', $id);
-
-    if(!count($result)) return $result;
-
-    // check ACL permissions
-    foreach(array_keys($result) as $idx){
-        if(($ignore_perms !== true && (
-                    isHiddenPage($result[$idx]) || auth_quickaclcheck($result[$idx]) < AUTH_READ
-                )) || !page_exists($result[$idx], '', false)){
-            unset($result[$idx]);
-        }
-    }
-
-    sort($result);
-    return $result;
-}
-
-
-/**
- * Quicksearch for pagenames
- *
- * By default it only matches the pagename and ignores the
- * namespace. This can be changed with the second parameter.
- * The third parameter allows to search in titles as well.
- *
- * The function always returns titles as well
- *
- * @triggers SEARCH_QUERY_PAGELOOKUP
- * @author   Andreas Gohr <andi@splitbrain.org>
- * @author   Adrian Lang <lang@cosmocode.de>
- *
- * @param string     $id       page id
- * @param bool       $in_ns    match against namespace as well?
- * @param bool       $in_title search in title?
- * @param int|string $after    only show results with an modified time after this date, accepts timestap or strtotime arguments
- * @param int|string $before   only show results with an modified time before this date, accepts timestap or strtotime arguments
- *
- * @return string[]
- */
-function ft_pageLookup($id, $in_ns=false, $in_title=false, $after = null, $before = null){
-    $data = [
-        'id' => $id,
-        'in_ns' => $in_ns,
-        'in_title' => $in_title,
-        'after' => $after,
-        'before' => $before
-    ];
-    $data['has_titles'] = true; // for plugin backward compatibility check
-    return trigger_event('SEARCH_QUERY_PAGELOOKUP', $data, '_ft_pageLookup');
-}
-
-/**
- * Returns list of pages as array(pageid => First Heading)
- *
- * @param array &$data event data
- * @return string[]
- */
-function _ft_pageLookup(&$data){
-    // split out original parameters
-    $id = $data['id'];
-    $Indexer = idx_get_indexer();
-    $parsedQuery = ft_queryParser($Indexer, $id);
-    if (count($parsedQuery['ns']) > 0) {
-        $ns = cleanID($parsedQuery['ns'][0]) . ':';
-        $id = implode(' ', $parsedQuery['highlight']);
-    }
-
-    $in_ns    = $data['in_ns'];
-    $in_title = $data['in_title'];
-    $cleaned = cleanID($id);
-
-    $Indexer = idx_get_indexer();
-    $page_idx = $Indexer->getPages();
-
-    $pages = array();
-    if ($id !== '' && $cleaned !== '') {
-        foreach ($page_idx as $p_id) {
-            if ((strpos($in_ns ? $p_id : noNSorNS($p_id), $cleaned) !== false)) {
-                if (!isset($pages[$p_id]))
-                    $pages[$p_id] = p_get_first_heading($p_id, METADATA_DONT_RENDER);
-            }
-        }
-        if ($in_title) {
-            foreach ($Indexer->lookupKey('title', $id, '_ft_pageLookupTitleCompare') as $p_id) {
-                if (!isset($pages[$p_id]))
-                    $pages[$p_id] = p_get_first_heading($p_id, METADATA_DONT_RENDER);
-            }
-        }
-    }
-
-    if (isset($ns)) {
-        foreach (array_keys($pages) as $p_id) {
-            if (strpos($p_id, $ns) !== 0) {
-                unset($pages[$p_id]);
-            }
-        }
-    }
-
-    // discard hidden pages
-    // discard nonexistent pages
-    // check ACL permissions
-    foreach(array_keys($pages) as $idx){
-        if(!isVisiblePage($idx) || !page_exists($idx) ||
-           auth_quickaclcheck($idx) < AUTH_READ) {
-            unset($pages[$idx]);
-        }
-    }
-
-    $pages = _ft_filterResultsByTime($pages, $data['after'], $data['before']);
-
-    uksort($pages,'ft_pagesorter');
-    return $pages;
-}
-
-
-/**
- * @param array      $results search results in the form pageid => value
- * @param int|string $after   only returns results with an modified time after this date, accepts timestap or strtotime arguments
- * @param int|string $before  only returns results with an modified time after this date, accepts timestap or strtotime arguments
- *
- * @return array
- */
-function _ft_filterResultsByTime(array $results, $after, $before) {
-    if ($after || $before) {
-        $after = is_int($after) ? $after : strtotime($after);
-        $before = is_int($before) ? $before : strtotime($before);
-
-        foreach ($results as $id => $value) {
-            $mTime = filemtime(wikiFN($id));
-            if ($after && $after > $mTime) {
-                unset($results[$id]);
-                continue;
-            }
-            if ($before && $before < $mTime) {
-                unset($results[$id]);
-            }
-        }
-    }
-
-    return $results;
-}
-
-/**
- * Tiny helper function for comparing the searched title with the title
- * from the search index. This function is a wrapper around stripos with
- * adapted argument order and return value.
- *
- * @param string $search searched title
- * @param string $title  title from index
- * @return bool
- */
-function _ft_pageLookupTitleCompare($search, $title) {
-    return stripos($title, $search) !== false;
-}
-
-/**
- * Sort pages based on their namespace level first, then on their string
- * values. This makes higher hierarchy pages rank higher than lower hierarchy
- * pages.
- *
- * @param string $a
- * @param string $b
- * @return int Returns < 0 if $a is less than $b; > 0 if $a is greater than $b, and 0 if they are equal.
- */
-function ft_pagesorter($a, $b){
-    $ac = count(explode(':',$a));
-    $bc = count(explode(':',$b));
-    if($ac < $bc){
-        return -1;
-    }elseif($ac > $bc){
-        return 1;
-    }
-    return strcmp ($a,$b);
-}
-
-/**
- * Sort pages by their mtime, from newest to oldest
- *
- * @param string $a
- * @param string $b
- *
- * @return int Returns < 0 if $a is newer than $b, > 0 if $b is newer than $a and 0 if they are of the same age
- */
-function ft_pagemtimesorter($a, $b) {
-    $mtimeA = filemtime(wikiFN($a));
-    $mtimeB = filemtime(wikiFN($b));
-    return $mtimeB - $mtimeA;
-}
-
-/**
- * Creates a snippet extract
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- * @triggers FULLTEXT_SNIPPET_CREATE
- *
- * @param string $id page id
- * @param array $highlight
- * @return mixed
- */
-function ft_snippet($id,$highlight){
-    $text = rawWiki($id);
-    $text = str_replace("\xC2\xAD",'',$text); // remove soft-hyphens
-    $evdata = array(
-            'id'        => $id,
-            'text'      => &$text,
-            'highlight' => &$highlight,
-            'snippet'   => '',
-            );
-
-    $evt = new Doku_Event('FULLTEXT_SNIPPET_CREATE',$evdata);
-    if ($evt->advise_before()) {
-        $match = array();
-        $snippets = array();
-        $utf8_offset = $offset = $end = 0;
-        $len = utf8_strlen($text);
-
-        // build a regexp from the phrases to highlight
-        $re1 = '('.join('|',array_map('ft_snippet_re_preprocess', array_map('preg_quote_cb',array_filter((array) $highlight)))).')';
-        $re2 = "$re1.{0,75}(?!\\1)$re1";
-        $re3 = "$re1.{0,45}(?!\\1)$re1.{0,45}(?!\\1)(?!\\2)$re1";
-
-        for ($cnt=4; $cnt--;) {
-            if (0) {
-            } else if (preg_match('/'.$re3.'/iu',$text,$match,PREG_OFFSET_CAPTURE,$offset)) {
-            } else if (preg_match('/'.$re2.'/iu',$text,$match,PREG_OFFSET_CAPTURE,$offset)) {
-            } else if (preg_match('/'.$re1.'/iu',$text,$match,PREG_OFFSET_CAPTURE,$offset)) {
-            } else {
-                break;
-            }
-
-            list($str,$idx) = $match[0];
-
-            // convert $idx (a byte offset) into a utf8 character offset
-            $utf8_idx = utf8_strlen(substr($text,0,$idx));
-            $utf8_len = utf8_strlen($str);
-
-            // establish context, 100 bytes surrounding the match string
-            // first look to see if we can go 100 either side,
-            // then drop to 50 adding any excess if the other side can't go to 50,
-            $pre = min($utf8_idx-$utf8_offset,100);
-            $post = min($len-$utf8_idx-$utf8_len,100);
-
-            if ($pre>50 && $post>50) {
-                $pre = $post = 50;
-            } else if ($pre>50) {
-                $pre = min($pre,100-$post);
-            } else if ($post>50) {
-                $post = min($post, 100-$pre);
-            } else if ($offset == 0) {
-                // both are less than 50, means the context is the whole string
-                // make it so and break out of this loop - there is no need for the
-                // complex snippet calculations
-                $snippets = array($text);
-                break;
-            }
-
-            // establish context start and end points, try to append to previous
-            // context if possible
-            $start = $utf8_idx - $pre;
-            $append = ($start < $end) ? $end : false;  // still the end of the previous context snippet
-            $end = $utf8_idx + $utf8_len + $post;      // now set it to the end of this context
-
-            if ($append) {
-                $snippets[count($snippets)-1] .= utf8_substr($text,$append,$end-$append);
-            } else {
-                $snippets[] = utf8_substr($text,$start,$end-$start);
-            }
-
-            // set $offset for next match attempt
-            // continue matching after the current match
-            // if the current match is not the longest possible match starting at the current offset
-            // this prevents further matching of this snippet but for possible matches of length
-            // smaller than match length + context (at least 50 characters) this match is part of the context
-            $utf8_offset = $utf8_idx + $utf8_len;
-            $offset = $idx + strlen(utf8_substr($text,$utf8_idx,$utf8_len));
-            $offset = utf8_correctIdx($text,$offset);
-        }
-
-        $m = "\1";
-        $snippets = preg_replace('/'.$re1.'/iu',$m.'$1'.$m,$snippets);
-        $snippet = preg_replace('/'.$m.'([^'.$m.']*?)'.$m.'/iu','<strong class="search_hit">$1</strong>',hsc(join('... ',$snippets)));
-
-        $evdata['snippet'] = $snippet;
-    }
-    $evt->advise_after();
-    unset($evt);
-
-    return $evdata['snippet'];
-}
-
-/**
- * Wraps a search term in regex boundary checks.
- *
- * @param string $term
- * @return string
- */
-function ft_snippet_re_preprocess($term) {
-    // do not process asian terms where word boundaries are not explicit
-    if(preg_match('/'.IDX_ASIAN.'/u',$term)){
-        return $term;
-    }
-
-    if (UTF8_PROPERTYSUPPORT) {
-        // unicode word boundaries
-        // see http://stackoverflow.com/a/2449017/172068
-        $BL = '(?<!\pL)';
-        $BR = '(?!\pL)';
-    } else {
-        // not as correct as above, but at least won't break
-        $BL = '\b';
-        $BR = '\b';
-    }
-
-    if(substr($term,0,2) == '\\*'){
-        $term = substr($term,2);
-    }else{
-        $term = $BL.$term;
-    }
-
-    if(substr($term,-2,2) == '\\*'){
-        $term = substr($term,0,-2);
-    }else{
-        $term = $term.$BR;
-    }
-
-    if($term == $BL || $term == $BR || $term == $BL.$BR) $term = '';
-    return $term;
-}
-
-/**
- * Combine found documents and sum up their scores
- *
- * This function is used to combine searched words with a logical
- * AND. Only documents available in all arrays are returned.
- *
- * based upon PEAR's PHP_Compat function for array_intersect_key()
- *
- * @param array $args An array of page arrays
- * @return array
- */
-function ft_resultCombine($args){
-    $array_count = count($args);
-    if($array_count == 1){
-        return $args[0];
-    }
-
-    $result = array();
-    if ($array_count > 1) {
-        foreach ($args[0] as $key => $value) {
-            $result[$key] = $value;
-            for ($i = 1; $i !== $array_count; $i++) {
-                if (!isset($args[$i][$key])) {
-                    unset($result[$key]);
-                    break;
-                }
-                $result[$key] += $args[$i][$key];
-            }
-        }
-    }
-    return $result;
-}
-
-/**
- * Unites found documents and sum up their scores
- *
- * based upon ft_resultCombine() function
- *
- * @param array $args An array of page arrays
- * @return array
- *
- * @author Kazutaka Miyasaka <kazmiya@gmail.com>
- */
-function ft_resultUnite($args) {
-    $array_count = count($args);
-    if ($array_count === 1) {
-        return $args[0];
-    }
-
-    $result = $args[0];
-    for ($i = 1; $i !== $array_count; $i++) {
-        foreach (array_keys($args[$i]) as $id) {
-            $result[$id] += $args[$i][$id];
-        }
-    }
-    return $result;
-}
-
-/**
- * Computes the difference of documents using page id for comparison
- *
- * nearly identical to PHP5's array_diff_key()
- *
- * @param array $args An array of page arrays
- * @return array
- *
- * @author Kazutaka Miyasaka <kazmiya@gmail.com>
- */
-function ft_resultComplement($args) {
-    $array_count = count($args);
-    if ($array_count === 1) {
-        return $args[0];
-    }
-
-    $result = $args[0];
-    foreach (array_keys($result) as $id) {
-        for ($i = 1; $i !== $array_count; $i++) {
-            if (isset($args[$i][$id])) unset($result[$id]);
-        }
-    }
-    return $result;
-}
-
-/**
- * Parses a search query and builds an array of search formulas
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- * @author Kazutaka Miyasaka <kazmiya@gmail.com>
- *
- * @param Doku_Indexer $Indexer
- * @param string $query search query
- * @return array of search formulas
- */
-function ft_queryParser($Indexer, $query){
-    /**
-     * parse a search query and transform it into intermediate representation
-     *
-     * in a search query, you can use the following expressions:
-     *
-     *   words:
-     *     include
-     *     -exclude
-     *   phrases:
-     *     "phrase to be included"
-     *     -"phrase you want to exclude"
-     *   namespaces:
-     *     @include:namespace (or ns:include:namespace)
-     *     ^exclude:namespace (or -ns:exclude:namespace)
-     *   groups:
-     *     ()
-     *     -()
-     *   operators:
-     *     and ('and' is the default operator: you can always omit this)
-     *     or  (or pipe symbol '|', lower precedence than 'and')
-     *
-     * e.g. a query [ aa "bb cc" @dd:ee ] means "search pages which contain
-     *      a word 'aa', a phrase 'bb cc' and are within a namespace 'dd:ee'".
-     *      this query is equivalent to [ -(-aa or -"bb cc" or -ns:dd:ee) ]
-     *      as long as you don't mind hit counts.
-     *
-     * intermediate representation consists of the following parts:
-     *
-     *   ( )           - group
-     *   AND           - logical and
-     *   OR            - logical or
-     *   NOT           - logical not
-     *   W+:, W-:, W_: - word      (underscore: no need to highlight)
-     *   P+:, P-:      - phrase    (minus sign: logically in NOT group)
-     *   N+:, N-:      - namespace
-     */
-    $parsed_query = '';
-    $parens_level = 0;
-    $terms = preg_split('/(-?".*?")/u', utf8_strtolower($query), -1, PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY);
-
-    foreach ($terms as $term) {
-        $parsed = '';
-        if (preg_match('/^(-?)"(.+)"$/u', $term, $matches)) {
-            // phrase-include and phrase-exclude
-            $not = $matches[1] ? 'NOT' : '';
-            $parsed = $not.ft_termParser($Indexer, $matches[2], false, true);
-        } else {
-            // fix incomplete phrase
-            $term = str_replace('"', ' ', $term);
-
-            // fix parentheses
-            $term = str_replace(')'  , ' ) ', $term);
-            $term = str_replace('('  , ' ( ', $term);
-            $term = str_replace('- (', ' -(', $term);
-
-            // treat pipe symbols as 'OR' operators
-            $term = str_replace('|', ' or ', $term);
-
-            // treat ideographic spaces (U+3000) as search term separators
-            // FIXME: some more separators?
-            $term = preg_replace('/[ \x{3000}]+/u', ' ',  $term);
-            $term = trim($term);
-            if ($term === '') continue;
-
-            $tokens = explode(' ', $term);
-            foreach ($tokens as $token) {
-                if ($token === '(') {
-                    // parenthesis-include-open
-                    $parsed .= '(';
-                    ++$parens_level;
-                } elseif ($token === '-(') {
-                    // parenthesis-exclude-open
-                    $parsed .= 'NOT(';
-                    ++$parens_level;
-                } elseif ($token === ')') {
-                    // parenthesis-any-close
-                    if ($parens_level === 0) continue;
-                    $parsed .= ')';
-                    $parens_level--;
-                } elseif ($token === 'and') {
-                    // logical-and (do nothing)
-                } elseif ($token === 'or') {
-                    // logical-or
-                    $parsed .= 'OR';
-                } elseif (preg_match('/^(?:\^|-ns:)(.+)$/u', $token, $matches)) {
-                    // namespace-exclude
-                    $parsed .= 'NOT(N+:'.$matches[1].')';
-                } elseif (preg_match('/^(?:@|ns:)(.+)$/u', $token, $matches)) {
-                    // namespace-include
-                    $parsed .= '(N+:'.$matches[1].')';
-                } elseif (preg_match('/^-(.+)$/', $token, $matches)) {
-                    // word-exclude
-                    $parsed .= 'NOT('.ft_termParser($Indexer, $matches[1]).')';
-                } else {
-                    // word-include
-                    $parsed .= ft_termParser($Indexer, $token);
-                }
-            }
-        }
-        $parsed_query .= $parsed;
-    }
-
-    // cleanup (very sensitive)
-    $parsed_query .= str_repeat(')', $parens_level);
-    do {
-        $parsed_query_old = $parsed_query;
-        $parsed_query = preg_replace('/(NOT)?\(\)/u', '', $parsed_query);
-    } while ($parsed_query !== $parsed_query_old);
-    $parsed_query = preg_replace('/(NOT|OR)+\)/u', ')'      , $parsed_query);
-    $parsed_query = preg_replace('/(OR)+/u'      , 'OR'     , $parsed_query);
-    $parsed_query = preg_replace('/\(OR/u'       , '('      , $parsed_query);
-    $parsed_query = preg_replace('/^OR|OR$/u'    , ''       , $parsed_query);
-    $parsed_query = preg_replace('/\)(NOT)?\(/u' , ')AND$1(', $parsed_query);
-
-    // adjustment: make highlightings right
-    $parens_level     = 0;
-    $notgrp_levels    = array();
-    $parsed_query_new = '';
-    $tokens = preg_split('/(NOT\(|[()])/u', $parsed_query, -1, PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY);
-    foreach ($tokens as $token) {
-        if ($token === 'NOT(') {
-            $notgrp_levels[] = ++$parens_level;
-        } elseif ($token === '(') {
-            ++$parens_level;
-        } elseif ($token === ')') {
-            if ($parens_level-- === end($notgrp_levels)) array_pop($notgrp_levels);
-        } elseif (count($notgrp_levels) % 2 === 1) {
-            // turn highlight-flag off if terms are logically in "NOT" group
-            $token = preg_replace('/([WPN])\+\:/u', '$1-:', $token);
-        }
-        $parsed_query_new .= $token;
-    }
-    $parsed_query = $parsed_query_new;
-
-    /**
-     * convert infix notation string into postfix (Reverse Polish notation) array
-     * by Shunting-yard algorithm
-     *
-     * see: http://en.wikipedia.org/wiki/Reverse_Polish_notation
-     * see: http://en.wikipedia.org/wiki/Shunting-yard_algorithm
-     */
-    $parsed_ary     = array();
-    $ope_stack      = array();
-    $ope_precedence = array(')' => 1, 'OR' => 2, 'AND' => 3, 'NOT' => 4, '(' => 5);
-    $ope_regex      = '/([()]|OR|AND|NOT)/u';
-
-    $tokens = preg_split($ope_regex, $parsed_query, -1, PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY);
-    foreach ($tokens as $token) {
-        if (preg_match($ope_regex, $token)) {
-            // operator
-            $last_ope = end($ope_stack);
-            while ($last_ope !== false && $ope_precedence[$token] <= $ope_precedence[$last_ope] && $last_ope != '(') {
-                $parsed_ary[] = array_pop($ope_stack);
-                $last_ope = end($ope_stack);
-            }
-            if ($token == ')') {
-                array_pop($ope_stack); // this array_pop always deletes '('
-            } else {
-                $ope_stack[] = $token;
-            }
-        } else {
-            // operand
-            $token_decoded = str_replace(array('OP', 'CP'), array('(', ')'), $token);
-            $parsed_ary[] = $token_decoded;
-        }
-    }
-    $parsed_ary = array_values(array_merge($parsed_ary, array_reverse($ope_stack)));
-
-    // cleanup: each double "NOT" in RPN array actually does nothing
-    $parsed_ary_count = count($parsed_ary);
-    for ($i = 1; $i < $parsed_ary_count; ++$i) {
-        if ($parsed_ary[$i] === 'NOT' && $parsed_ary[$i - 1] === 'NOT') {
-            unset($parsed_ary[$i], $parsed_ary[$i - 1]);
-        }
-    }
-    $parsed_ary = array_values($parsed_ary);
-
-    // build return value
-    $q = array();
-    $q['query']      = $query;
-    $q['parsed_str'] = $parsed_query;
-    $q['parsed_ary'] = $parsed_ary;
-
-    foreach ($q['parsed_ary'] as $token) {
-        if ($token[2] !== ':') continue;
-        $body = substr($token, 3);
-
-        switch (substr($token, 0, 3)) {
-            case 'N+:':
-                     $q['ns'][]        = $body; // for backward compatibility
-                     break;
-            case 'N-:':
-                     $q['notns'][]     = $body; // for backward compatibility
-                     break;
-            case 'W_:':
-                     $q['words'][]     = $body;
-                     break;
-            case 'W-:':
-                     $q['words'][]     = $body;
-                     $q['not'][]       = $body; // for backward compatibility
-                     break;
-            case 'W+:':
-                     $q['words'][]     = $body;
-                     $q['highlight'][] = $body;
-                     $q['and'][]       = $body; // for backward compatibility
-                     break;
-            case 'P-:':
-                     $q['phrases'][]   = $body;
-                     break;
-            case 'P+:':
-                     $q['phrases'][]   = $body;
-                     $q['highlight'][] = $body;
-                     break;
-        }
-    }
-    foreach (array('words', 'phrases', 'highlight', 'ns', 'notns', 'and', 'not') as $key) {
-        $q[$key] = empty($q[$key]) ? array() : array_values(array_unique($q[$key]));
-    }
-
-    return $q;
-}
-
-/**
- * Transforms given search term into intermediate representation
- *
- * This function is used in ft_queryParser() and not for general purpose use.
- *
- * @author Kazutaka Miyasaka <kazmiya@gmail.com>
- *
- * @param Doku_Indexer $Indexer
- * @param string       $term
- * @param bool         $consider_asian
- * @param bool         $phrase_mode
- * @return string
- */
-function ft_termParser($Indexer, $term, $consider_asian = true, $phrase_mode = false) {
-    $parsed = '';
-    if ($consider_asian) {
-        // successive asian characters need to be searched as a phrase
-        $words = preg_split('/('.IDX_ASIAN.'+)/u', $term, -1, PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY);
-        foreach ($words as $word) {
-            $phrase_mode = $phrase_mode ? true : preg_match('/'.IDX_ASIAN.'/u', $word);
-            $parsed .= ft_termParser($Indexer, $word, false, $phrase_mode);
-        }
-    } else {
-        $term_noparen = str_replace(array('(', ')'), ' ', $term);
-        $words = $Indexer->tokenizer($term_noparen, true);
-
-        // W_: no need to highlight
-        if (empty($words)) {
-            $parsed = '()'; // important: do not remove
-        } elseif ($words[0] === $term) {
-            $parsed = '(W+:'.$words[0].')';
-        } elseif ($phrase_mode) {
-            $term_encoded = str_replace(array('(', ')'), array('OP', 'CP'), $term);
-            $parsed = '((W_:'.implode(')(W_:', $words).')(P+:'.$term_encoded.'))';
-        } else {
-            $parsed = '((W+:'.implode(')(W+:', $words).'))';
-        }
-    }
-    return $parsed;
-}
-
-/**
- * Recreate a search query string based on parsed parts, doesn't support negated phrases and `OR` searches
- *
- * @param array $and
- * @param array $not
- * @param array $phrases
- * @param array $ns
- * @param array $notns
- *
- * @return string
- */
-function ft_queryUnparser_simple(array $and, array $not, array $phrases, array $ns, array $notns) {
-    $query = implode(' ', $and);
-    if (!empty($not)) {
-        $query .= ' -' . implode(' -', $not);
-    }
-
-    if (!empty($phrases)) {
-        $query .= ' "' . implode('" "', $phrases) . '"';
-    }
-
-    if (!empty($ns)) {
-        $query .= ' @' . implode(' @', $ns);
-    }
-
-    if (!empty($notns)) {
-        $query .= ' ^' . implode(' ^', $notns);
-    }
-
-    return $query;
-}
-
-//Setup VIM: ex: et ts=4 :
diff --git a/wiki/inc/html.php b/wiki/inc/html.php
deleted file mode 100644
index 7bd38eb..0000000
--- a/wiki/inc/html.php
+++ /dev/null
@@ -1,2255 +0,0 @@
-<?php
-/**
- * HTML output functions
- *
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * @author     Andreas Gohr <andi@splitbrain.org>
- */
-
-if(!defined('DOKU_INC')) die('meh.');
-if(!defined('NL')) define('NL',"\n");
-if (!defined('SEC_EDIT_PATTERN')) {
-    define('SEC_EDIT_PATTERN', '#<!-- EDIT({.*?}) -->#');
-}
-
-
-/**
- * Convenience function to quickly build a wikilink
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- * @param string  $id      id of the target page
- * @param string  $name    the name of the link, i.e. the text that is displayed
- * @param string|array  $search  search string(s) that shall be highlighted in the target page
- * @return string the HTML code of the link
- */
-function html_wikilink($id,$name=null,$search=''){
-    /** @var Doku_Renderer_xhtml $xhtml_renderer */
-    static $xhtml_renderer = null;
-    if(is_null($xhtml_renderer)){
-        $xhtml_renderer = p_get_renderer('xhtml');
-    }
-
-    return $xhtml_renderer->internallink($id,$name,$search,true,'navigation');
-}
-
-/**
- * The loginform
- *
- * @author   Andreas Gohr <andi@splitbrain.org>
- *
- * @param bool $svg Whether to show svg icons in the register and resendpwd links or not
- */
-function html_login($svg = false){
-    global $lang;
-    global $conf;
-    global $ID;
-    global $INPUT;
-
-    print p_locale_xhtml('login');
-    print '<div class="centeralign">'.NL;
-    $form = new Doku_Form(array('id' => 'dw__login'));
-    $form->startFieldset($lang['btn_login']);
-    $form->addHidden('id', $ID);
-    $form->addHidden('do', 'login');
-    $form->addElement(form_makeTextField('u', ((!$INPUT->bool('http_credentials')) ? $INPUT->str('u') : ''), $lang['user'], 'focus__this', 'block'));
-    $form->addElement(form_makePasswordField('p', $lang['pass'], '', 'block'));
-    if($conf['rememberme']) {
-        $form->addElement(form_makeCheckboxField('r', '1', $lang['remember'], 'remember__me', 'simple'));
-    }
-    $form->addElement(form_makeButton('submit', '', $lang['btn_login']));
-    $form->endFieldset();
-
-    if(actionOK('register')){
-        $registerLink = (new \dokuwiki\Menu\Item\Register())->asHtmlLink('', $svg);
-        $form->addElement('<p>'.$lang['reghere'].': '. $registerLink .'</p>');
-    }
-
-    if (actionOK('resendpwd')) {
-        $resendPwLink = (new \dokuwiki\Menu\Item\Resendpwd())->asHtmlLink('', $svg);
-        $form->addElement('<p>'.$lang['pwdforget'].': '. $resendPwLink .'</p>');
-    }
-
-    html_form('login', $form);
-    print '</div>'.NL;
-}
-
-
-/**
- * Denied page content
- *
- * @return string html
- */
-function html_denied() {
-    print p_locale_xhtml('denied');
-
-    if(empty($_SERVER['REMOTE_USER'])){
-        html_login();
-    }
-}
-
-/**
- * inserts section edit buttons if wanted or removes the markers
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- *
- * @param string $text
- * @param bool   $show show section edit buttons?
- * @return string
- */
-function html_secedit($text,$show=true){
-    global $INFO;
-
-    if(!$INFO['writable'] || !$show || $INFO['rev']){
-        return preg_replace(SEC_EDIT_PATTERN,'',$text);
-    }
-
-    return preg_replace_callback(SEC_EDIT_PATTERN,
-                'html_secedit_button', $text);
-}
-
-/**
- * prepares section edit button data for event triggering
- * used as a callback in html_secedit
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- *
- * @param array $matches matches with regexp
- * @return string
- * @triggers HTML_SECEDIT_BUTTON
- */
-function html_secedit_button($matches){
-    $json = htmlspecialchars_decode($matches[1], ENT_QUOTES);
-    $data = json_decode($json, true);
-    if ($data == NULL) {
-        return;
-    }
-    $data ['target'] = strtolower($data['target']);
-    $data ['hid'] = strtolower($data['hid']);
-
-    return trigger_event('HTML_SECEDIT_BUTTON', $data,
-                         'html_secedit_get_button');
-}
-
-/**
- * prints a section editing button
- * used as default action form HTML_SECEDIT_BUTTON
- *
- * @author Adrian Lang <lang@cosmocode.de>
- *
- * @param array $data name, section id and target
- * @return string html
- */
-function html_secedit_get_button($data) {
-    global $ID;
-    global $INFO;
-
-    if (!isset($data['name']) || $data['name'] === '') return '';
-
-    $name = $data['name'];
-    unset($data['name']);
-
-    $secid = $data['secid'];
-    unset($data['secid']);
-
-    return "<div class='secedit editbutton_" . $data['target'] .
-                       " editbutton_" . $secid . "'>" .
-           html_btn('secedit', $ID, '',
-                    array_merge(array('do'  => 'edit',
-                                      'rev' => $INFO['lastmod'],
-                                      'summary' => '['.$name.'] '), $data),
-                    'post', $name) . '</div>';
-}
-
-/**
- * Just the back to top button (in its own form)
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- *
- * @return string html
- */
-function html_topbtn(){
-    global $lang;
-
-    $ret  = '<a class="nolink" href="#dokuwiki__top"><button class="button" onclick="window.scrollTo(0, 0)" title="'.$lang['btn_top'].'">'.$lang['btn_top'].'</button></a>';
-
-    return $ret;
-}
-
-/**
- * Displays a button (using its own form)
- * If tooltip exists, the access key tooltip is replaced.
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- *
- * @param string         $name
- * @param string         $id
- * @param string         $akey   access key
- * @param string[] $params key-value pairs added as hidden inputs
- * @param string         $method
- * @param string         $tooltip
- * @param bool|string    $label  label text, false: lookup btn_$name in localization
- * @param string         $svg (optional) svg code, inserted into the button
- * @return string
- */
-function html_btn($name, $id, $akey, $params, $method='get', $tooltip='', $label=false, $svg=null){
-    global $conf;
-    global $lang;
-
-    if (!$label)
-        $label = $lang['btn_'.$name];
-
-    $ret = '';
-
-    //filter id (without urlencoding)
-    $id = idfilter($id,false);
-
-    //make nice URLs even for buttons
-    if($conf['userewrite'] == 2){
-        $script = DOKU_BASE.DOKU_SCRIPT.'/'.$id;
-    }elseif($conf['userewrite']){
-        $script = DOKU_BASE.$id;
-    }else{
-        $script = DOKU_BASE.DOKU_SCRIPT;
-        $params['id'] = $id;
-    }
-
-    $ret .= '<form class="button btn_'.$name.'" method="'.$method.'" action="'.$script.'"><div class="no">';
-
-    if(is_array($params)){
-        foreach($params as $key => $val) {
-            $ret .= '<input type="hidden" name="'.$key.'" ';
-            $ret .= 'value="'.hsc($val).'" />';
-        }
-    }
-
-    if ($tooltip!='') {
-        $tip = hsc($tooltip);
-    }else{
-        $tip = hsc($label);
-    }
-
-    $ret .= '<button type="submit" ';
-    if($akey){
-        $tip .= ' ['.strtoupper($akey).']';
-        $ret .= 'accesskey="'.$akey.'" ';
-    }
-    $ret .= 'title="'.$tip.'">';
-    if ($svg) {
-        $ret .= '<span>' . hsc($label) . '</span>';
-        $ret .= inlineSVG($svg);
-    } else {
-        $ret .= hsc($label);
-    }
-    $ret .= '</button>';
-    $ret .= '</div></form>';
-
-    return $ret;
-}
-/**
- * show a revision warning
- *
- * @author Szymon Olewniczak <dokuwiki@imz.re>
- */
-function html_showrev() {
-    print p_locale_xhtml('showrev');
-}
-
-/**
- * Show a wiki page
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- *
- * @param null|string $txt wiki text or null for showing $ID
- */
-function html_show($txt=null){
-    global $ID;
-    global $REV;
-    global $HIGH;
-    global $INFO;
-    global $DATE_AT;
-    //disable section editing for old revisions or in preview
-    if($txt || $REV){
-        $secedit = false;
-    }else{
-        $secedit = true;
-    }
-
-    if (!is_null($txt)){
-        //PreviewHeader
-        echo '<br id="scroll__here" />';
-        echo p_locale_xhtml('preview');
-        echo '<div class="preview"><div class="pad">';
-        $html = html_secedit(p_render('xhtml',p_get_instructions($txt),$info),$secedit);
-        if($INFO['prependTOC']) $html = tpl_toc(true).$html;
-        echo $html;
-        echo '<div class="clearer"></div>';
-        echo '</div></div>';
-
-    }else{
-        if ($REV||$DATE_AT){
-            $data = array('rev' => &$REV, 'date_at' => &$DATE_AT);
-            trigger_event('HTML_SHOWREV_OUTPUT', $data, 'html_showrev');
-        }
-        $html = p_wiki_xhtml($ID,$REV,true,$DATE_AT);
-        $html = html_secedit($html,$secedit);
-        if($INFO['prependTOC']) $html = tpl_toc(true).$html;
-        $html = html_hilight($html,$HIGH);
-        echo $html;
-    }
-}
-
-/**
- * ask the user about how to handle an exisiting draft
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- */
-function html_draft(){
-    global $INFO;
-    global $ID;
-    global $lang;
-    $draft = unserialize(io_readFile($INFO['draft'],false));
-    $text  = cleanText(con($draft['prefix'],$draft['text'],$draft['suffix'],true));
-
-    print p_locale_xhtml('draft');
-    html_diff($text, false);
-    $form = new Doku_Form(array('id' => 'dw__editform'));
-    $form->addHidden('id', $ID);
-    $form->addHidden('date', $draft['date']);
-    $form->addHidden('wikitext', $text);
-    $form->addElement(form_makeOpenTag('div', array('id'=>'draft__status')));
-    $form->addElement($lang['draftdate'].' '. dformat(filemtime($INFO['draft'])));
-    $form->addElement(form_makeCloseTag('div'));
-    $form->addElement(form_makeButton('submit', 'recover', $lang['btn_recover'], array('tabindex'=>'1')));
-    $form->addElement(form_makeButton('submit', 'draftdel', $lang['btn_draftdel'], array('tabindex'=>'2')));
-    $form->addElement(form_makeButton('submit', 'show', $lang['btn_cancel'], array('tabindex'=>'3')));
-    html_form('draft', $form);
-}
-
-/**
- * Highlights searchqueries in HTML code
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- * @author Harry Fuecks <hfuecks@gmail.com>
- *
- * @param string $html
- * @param array|string $phrases
- * @return string html
- */
-function html_hilight($html,$phrases){
-    $phrases = (array) $phrases;
-    $phrases = array_map('preg_quote_cb', $phrases);
-    $phrases = array_map('ft_snippet_re_preprocess', $phrases);
-    $phrases = array_filter($phrases);
-    $regex = join('|',$phrases);
-
-    if ($regex === '') return $html;
-    if (!utf8_check($regex)) return $html;
-    $html = @preg_replace_callback("/((<[^>]*)|$regex)/ui",'html_hilight_callback',$html);
-    return $html;
-}
-
-/**
- * Callback used by html_hilight()
- *
- * @author Harry Fuecks <hfuecks@gmail.com>
- *
- * @param array $m matches
- * @return string html
- */
-function html_hilight_callback($m) {
-    $hlight = unslash($m[0]);
-    if ( !isset($m[2])) {
-        $hlight = '<span class="search_hit">'.$hlight.'</span>';
-    }
-    return $hlight;
-}
-
-/**
- * Display error on locked pages
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- */
-function html_locked(){
-    global $ID;
-    global $conf;
-    global $lang;
-    global $INFO;
-
-    $locktime = filemtime(wikiLockFN($ID));
-    $expire = dformat($locktime + $conf['locktime']);
-    $min    = round(($conf['locktime'] - (time() - $locktime) )/60);
-
-    print p_locale_xhtml('locked');
-    print '<ul>';
-    print '<li><div class="li"><strong>'.$lang['lockedby'].'</strong> '.editorinfo($INFO['locked']).'</div></li>';
-    print '<li><div class="li"><strong>'.$lang['lockexpire'].'</strong> '.$expire.' ('.$min.' min)</div></li>';
-    print '</ul>';
-}
-
-/**
- * list old revisions
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- * @author Ben Coburn <btcoburn@silicodon.net>
- * @author Kate Arzamastseva <pshns@ukr.net>
- *
- * @param int $first skip the first n changelog lines
- * @param bool|string $media_id id of media, or false for current page
- */
-function html_revisions($first=0, $media_id = false){
-    global $ID;
-    global $INFO;
-    global $conf;
-    global $lang;
-    $id = $ID;
-    if ($media_id) {
-        $id = $media_id;
-        $changelog = new MediaChangeLog($id);
-    } else {
-        $changelog = new PageChangeLog($id);
-    }
-
-    /* we need to get one additional log entry to be able to
-     * decide if this is the last page or is there another one.
-     * see html_recent()
-     */
-
-    $revisions = $changelog->getRevisions($first, $conf['recent']+1);
-
-    if(count($revisions)==0 && $first!=0){
-        $first=0;
-        $revisions = $changelog->getRevisions($first, $conf['recent']+1);
-    }
-    $hasNext = false;
-    if (count($revisions)>$conf['recent']) {
-        $hasNext = true;
-        array_pop($revisions); // remove extra log entry
-    }
-
-    if (!$media_id) print p_locale_xhtml('revisions');
-
-    $params = array('id' => 'page__revisions', 'class' => 'changes');
-    if($media_id) {
-        $params['action'] = media_managerURL(array('image' => $media_id), '&');
-    }
-
-    if(!$media_id) {
-        $exists = $INFO['exists'];
-        $display_name = useHeading('navigation') ? hsc(p_get_first_heading($id)) : $id;
-        if(!$display_name) {
-            $display_name = $id;
-        }
-    } else {
-        $exists = file_exists(mediaFN($id));
-        $display_name = $id;
-    }
-
-    $form = new Doku_Form($params);
-    $form->addElement(form_makeOpenTag('ul'));
-
-    if($exists && $first == 0) {
-        $minor = false;
-        if($media_id) {
-            $date = dformat(@filemtime(mediaFN($id)));
-            $href = media_managerURL(array('image' => $id, 'tab_details' => 'view'), '&');
-
-            $changelog->setChunkSize(1024);
-            $revinfo = $changelog->getRevisionInfo(@filemtime(fullpath(mediaFN($id))));
-
-            $summary = $revinfo['sum'];
-            if($revinfo['user']) {
-                $editor = $revinfo['user'];
-            } else {
-                $editor = $revinfo['ip'];
-            }
-            $sizechange = $revinfo['sizechange'];
-        } else {
-            $date = dformat($INFO['lastmod']);
-            if(isset($INFO['meta']) && isset($INFO['meta']['last_change'])) {
-                if($INFO['meta']['last_change']['type'] === DOKU_CHANGE_TYPE_MINOR_EDIT) {
-                    $minor = true;
-                }
-                if(isset($INFO['meta']['last_change']['sizechange'])) {
-                    $sizechange = $INFO['meta']['last_change']['sizechange'];
-                } else {
-                    $sizechange = null;
-                }
-            }
-            $pagelog = new PageChangeLog($ID);
-            $latestrev = $pagelog->getRevisions(-1, 1);
-            $latestrev = array_pop($latestrev);
-            $href = wl($id,"rev=$latestrev",false,'&');
-            $summary = $INFO['sum'];
-            $editor = $INFO['editor'];
-        }
-
-        $form->addElement(form_makeOpenTag('li', array('class' => ($minor ? 'minor' : ''))));
-        $form->addElement(form_makeOpenTag('div', array('class' => 'li')));
-        $form->addElement(form_makeTag('input', array(
-                        'type' => 'checkbox',
-                        'name' => 'rev2[]',
-                        'value' => 'current')));
-
-        $form->addElement(form_makeOpenTag('span', array('class' => 'date')));
-        $form->addElement($date);
-        $form->addElement(form_makeCloseTag('span'));
-
-        $form->addElement('<img src="'.DOKU_BASE.'lib/images/blank.gif" width="15" height="11" alt="" />');
-
-        $form->addElement(form_makeOpenTag('a', array(
-                        'class' => 'wikilink1',
-                        'href'  => $href)));
-        $form->addElement($display_name);
-        $form->addElement(form_makeCloseTag('a'));
-
-        if ($media_id) $form->addElement(form_makeOpenTag('div'));
-
-        if($summary) {
-            $form->addElement(form_makeOpenTag('span', array('class' => 'sum')));
-            if(!$media_id) $form->addElement(' – ');
-            $form->addElement('<bdi>' . hsc($summary) . '</bdi>');
-            $form->addElement(form_makeCloseTag('span'));
-        }
-
-        $form->addElement(form_makeOpenTag('span', array('class' => 'user')));
-        $form->addElement((empty($editor))?('('.$lang['external_edit'].')'):'<bdi>'.editorinfo($editor).'</bdi>');
-        $form->addElement(form_makeCloseTag('span'));
-
-        html_sizechange($sizechange, $form);
-
-        $form->addElement('('.$lang['current'].')');
-
-        if ($media_id) $form->addElement(form_makeCloseTag('div'));
-
-        $form->addElement(form_makeCloseTag('div'));
-        $form->addElement(form_makeCloseTag('li'));
-    }
-
-    foreach($revisions as $rev) {
-        $date = dformat($rev);
-        $info = $changelog->getRevisionInfo($rev);
-        if($media_id) {
-            $exists = file_exists(mediaFN($id, $rev));
-        } else {
-            $exists = page_exists($id, $rev);
-        }
-
-        $class = '';
-        if($info['type'] === DOKU_CHANGE_TYPE_MINOR_EDIT) {
-            $class = 'minor';
-        }
-        $form->addElement(form_makeOpenTag('li', array('class' => $class)));
-        $form->addElement(form_makeOpenTag('div', array('class' => 'li')));
-        if($exists){
-            $form->addElement(form_makeTag('input', array(
-                            'type' => 'checkbox',
-                            'name' => 'rev2[]',
-                            'value' => $rev)));
-        }else{
-            $form->addElement('<img src="'.DOKU_BASE.'lib/images/blank.gif" width="15" height="11" alt="" />');
-        }
-
-        $form->addElement(form_makeOpenTag('span', array('class' => 'date')));
-        $form->addElement($date);
-        $form->addElement(form_makeCloseTag('span'));
-
-        if($exists){
-            if (!$media_id) {
-                $href = wl($id,"rev=$rev,do=diff", false, '&');
-            } else {
-                $href = media_managerURL(array('image' => $id, 'rev' => $rev, 'mediado' => 'diff'), '&');
-            }
-            $form->addElement(form_makeOpenTag('a', array(
-                            'class' => 'diff_link',
-                            'href' => $href)));
-            $form->addElement(form_makeTag('img', array(
-                            'src'    => DOKU_BASE.'lib/images/diff.png',
-                            'width'  => 15,
-                            'height' => 11,
-                            'title'  => $lang['diff'],
-                            'alt'    => $lang['diff'])));
-            $form->addElement(form_makeCloseTag('a'));
-
-            if (!$media_id) {
-                $href = wl($id,"rev=$rev",false,'&');
-            } else {
-                $href = media_managerURL(array('image' => $id, 'tab_details' => 'view', 'rev' => $rev), '&');
-            }
-            $form->addElement(form_makeOpenTag('a', array(
-                            'class' => 'wikilink1',
-                            'href' => $href)));
-            $form->addElement($display_name);
-            $form->addElement(form_makeCloseTag('a'));
-        }else{
-            $form->addElement('<img src="'.DOKU_BASE.'lib/images/blank.gif" width="15" height="11" alt="" />');
-            $form->addElement($display_name);
-        }
-
-        if ($media_id) $form->addElement(form_makeOpenTag('div'));
-
-        if ($info['sum']) {
-            $form->addElement(form_makeOpenTag('span', array('class' => 'sum')));
-            if(!$media_id) $form->addElement(' – ');
-            $form->addElement('<bdi>'.hsc($info['sum']).'</bdi>');
-            $form->addElement(form_makeCloseTag('span'));
-        }
-
-        $form->addElement(form_makeOpenTag('span', array('class' => 'user')));
-        if($info['user']){
-            $form->addElement('<bdi>'.editorinfo($info['user']).'</bdi>');
-            if(auth_ismanager()){
-                $form->addElement(' <bdo dir="ltr">('.$info['ip'].')</bdo>');
-            }
-        }else{
-            $form->addElement('<bdo dir="ltr">'.$info['ip'].'</bdo>');
-        }
-        $form->addElement(form_makeCloseTag('span'));
-
-        html_sizechange($info['sizechange'], $form);
-
-        if ($media_id) $form->addElement(form_makeCloseTag('div'));
-
-        $form->addElement(form_makeCloseTag('div'));
-        $form->addElement(form_makeCloseTag('li'));
-    }
-    $form->addElement(form_makeCloseTag('ul'));
-    if (!$media_id) {
-        $form->addElement(form_makeButton('submit', 'diff', $lang['diff2']));
-    } else {
-        $form->addHidden('mediado', 'diff');
-        $form->addElement(form_makeButton('submit', '', $lang['diff2']));
-    }
-    html_form('revisions', $form);
-
-    print '<div class="pagenav">';
-    $last = $first + $conf['recent'];
-    if ($first > 0) {
-        $first -= $conf['recent'];
-        if ($first < 0) $first = 0;
-        print '<div class="pagenav-prev">';
-        if ($media_id) {
-            print html_btn('newer',$media_id,"p",media_managerURL(array('first' => $first), '&amp;', false, true));
-        } else {
-            print html_btn('newer',$id,"p",array('do' => 'revisions', 'first' => $first));
-        }
-        print '</div>';
-    }
-    if ($hasNext) {
-        print '<div class="pagenav-next">';
-        if ($media_id) {
-            print html_btn('older',$media_id,"n",media_managerURL(array('first' => $last), '&amp;', false, true));
-        } else {
-            print html_btn('older',$id,"n",array('do' => 'revisions', 'first' => $last));
-        }
-        print '</div>';
-    }
-    print '</div>';
-
-}
-
-/**
- * display recent changes
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- * @author Matthias Grimm <matthiasgrimm@users.sourceforge.net>
- * @author Ben Coburn <btcoburn@silicodon.net>
- * @author Kate Arzamastseva <pshns@ukr.net>
- *
- * @param int $first
- * @param string $show_changes
- */
-function html_recent($first = 0, $show_changes = 'both') {
-    global $conf;
-    global $lang;
-    global $ID;
-    /* we need to get one additionally log entry to be able to
-     * decide if this is the last page or is there another one.
-     * This is the cheapest solution to get this information.
-     */
-    $flags = 0;
-    if($show_changes == 'mediafiles' && $conf['mediarevisions']) {
-        $flags = RECENTS_MEDIA_CHANGES;
-    } elseif($show_changes == 'pages') {
-        $flags = 0;
-    } elseif($conf['mediarevisions']) {
-        $show_changes = 'both';
-        $flags = RECENTS_MEDIA_PAGES_MIXED;
-    }
-
-    $recents = getRecents($first, $conf['recent'] + 1, getNS($ID), $flags);
-    if(count($recents) == 0 && $first != 0) {
-        $first = 0;
-        $recents = getRecents($first, $conf['recent'] + 1, getNS($ID), $flags);
-    }
-    $hasNext = false;
-    if(count($recents) > $conf['recent']) {
-        $hasNext = true;
-        array_pop($recents); // remove extra log entry
-    }
-
-    print p_locale_xhtml('recent');
-
-    if(getNS($ID) != '') {
-        print '<div class="level1"><p>' . sprintf($lang['recent_global'], getNS($ID), wl('', 'do=recent')) . '</p></div>';
-    }
-
-    $form = new Doku_Form(array('id' => 'dw__recent', 'method' => 'GET', 'class' => 'changes'));
-    $form->addHidden('sectok', null);
-    $form->addHidden('do', 'recent');
-    $form->addHidden('id', $ID);
-
-    if($conf['mediarevisions']) {
-        $form->addElement('<div class="changeType">');
-        $form->addElement(form_makeListboxField(
-                    'show_changes',
-                    array(
-                        'pages'      => $lang['pages_changes'],
-                        'mediafiles' => $lang['media_changes'],
-                        'both'       => $lang['both_changes']
-                    ),
-                    $show_changes,
-                    $lang['changes_type'],
-                    '', '',
-                    array('class' => 'quickselect')));
-
-        $form->addElement(form_makeButton('submit', 'recent', $lang['btn_apply']));
-        $form->addElement('</div>');
-    }
-
-    $form->addElement(form_makeOpenTag('ul'));
-
-    foreach($recents as $recent) {
-        $date = dformat($recent['date']);
-
-        $class = '';
-        if($recent['type'] === DOKU_CHANGE_TYPE_MINOR_EDIT) {
-            $class = 'minor';
-        }
-        $form->addElement(form_makeOpenTag('li', array('class' => $class)));
-        $form->addElement(form_makeOpenTag('div', array('class' => 'li')));
-
-        if(!empty($recent['media'])) {
-            $form->addElement(media_printicon($recent['id']));
-        } else {
-            $icon = DOKU_BASE . 'lib/images/fileicons/file.png';
-            $form->addElement('<img src="' . $icon . '" alt="' . $recent['id'] . '" class="icon" />');
-        }
-
-        $form->addElement(form_makeOpenTag('span', array('class' => 'date')));
-        $form->addElement($date);
-        $form->addElement(form_makeCloseTag('span'));
-
-        $diff = false;
-        $href = '';
-
-        if(!empty($recent['media'])) {
-            $changelog = new MediaChangeLog($recent['id']);
-            $revs = $changelog->getRevisions(0, 1);
-            $diff = (count($revs) && file_exists(mediaFN($recent['id'])));
-            if($diff) {
-                $href = media_managerURL(array(
-                                            'tab_details' => 'history',
-                                            'mediado' => 'diff',
-                                            'image' => $recent['id'],
-                                            'ns' => getNS($recent['id'])
-                                        ), '&');
-            }
-        } else {
-            $href = wl($recent['id'], "do=diff", false, '&');
-        }
-
-        if(!empty($recent['media']) && !$diff) {
-            $form->addElement('<img src="' . DOKU_BASE . 'lib/images/blank.gif" width="15" height="11" alt="" />');
-        } else {
-            $form->addElement(form_makeOpenTag('a', array('class' => 'diff_link', 'href' => $href)));
-            $form->addElement(form_makeTag('img', array(
-                            'src'    => DOKU_BASE . 'lib/images/diff.png',
-                            'width'  => 15,
-                            'height' => 11,
-                            'title'  => $lang['diff'],
-                            'alt'    => $lang['diff']
-                        )));
-            $form->addElement(form_makeCloseTag('a'));
-        }
-
-        if(!empty($recent['media'])) {
-            $href = media_managerURL(array('tab_details' => 'history', 'image' => $recent['id'], 'ns' => getNS($recent['id'])), '&');
-        } else {
-            $href = wl($recent['id'], "do=revisions", false, '&');
-        }
-        $form->addElement(form_makeOpenTag('a', array(
-                        'class' => 'revisions_link',
-                        'href'  => $href)));
-        $form->addElement(form_makeTag('img', array(
-                        'src'    => DOKU_BASE . 'lib/images/history.png',
-                        'width'  => 12,
-                        'height' => 14,
-                        'title'  => $lang['btn_revs'],
-                        'alt'    => $lang['btn_revs']
-                    )));
-        $form->addElement(form_makeCloseTag('a'));
-
-        if(!empty($recent['media'])) {
-            $href = media_managerURL(array('tab_details' => 'view', 'image' => $recent['id'], 'ns' => getNS($recent['id'])), '&');
-            $class = file_exists(mediaFN($recent['id'])) ? 'wikilink1' : 'wikilink2';
-            $form->addElement(form_makeOpenTag('a', array(
-                        'class' => $class,
-                        'href'  => $href)));
-            $form->addElement($recent['id']);
-            $form->addElement(form_makeCloseTag('a'));
-        } else {
-            $form->addElement(html_wikilink(':' . $recent['id'], useHeading('navigation') ? null : $recent['id']));
-        }
-        $form->addElement(form_makeOpenTag('span', array('class' => 'sum')));
-        $form->addElement(' – ' . hsc($recent['sum']));
-        $form->addElement(form_makeCloseTag('span'));
-
-        $form->addElement(form_makeOpenTag('span', array('class' => 'user')));
-        if($recent['user']) {
-            $form->addElement('<bdi>' . editorinfo($recent['user']) . '</bdi>');
-            if(auth_ismanager()) {
-                $form->addElement(' <bdo dir="ltr">(' . $recent['ip'] . ')</bdo>');
-            }
-        } else {
-            $form->addElement('<bdo dir="ltr">' . $recent['ip'] . '</bdo>');
-        }
-        $form->addElement(form_makeCloseTag('span'));
-
-        html_sizechange($recent['sizechange'], $form);
-
-        $form->addElement(form_makeCloseTag('div'));
-        $form->addElement(form_makeCloseTag('li'));
-    }
-    $form->addElement(form_makeCloseTag('ul'));
-
-    $form->addElement(form_makeOpenTag('div', array('class' => 'pagenav')));
-    $last = $first + $conf['recent'];
-    if($first > 0) {
-        $first -= $conf['recent'];
-        if($first < 0) $first = 0;
-        $form->addElement(form_makeOpenTag('div', array('class' => 'pagenav-prev')));
-        $form->addElement(form_makeOpenTag('button', array(
-                        'type'      => 'submit',
-                        'name'      => 'first[' . $first . ']',
-                        'accesskey' => 'n',
-                        'title'     => $lang['btn_newer'] . ' [N]',
-                        'class'     => 'button show'
-                    )));
-        $form->addElement($lang['btn_newer']);
-        $form->addElement(form_makeCloseTag('button'));
-        $form->addElement(form_makeCloseTag('div'));
-    }
-    if($hasNext) {
-        $form->addElement(form_makeOpenTag('div', array('class' => 'pagenav-next')));
-        $form->addElement(form_makeOpenTag('button', array(
-                        'type'      => 'submit',
-                        'name'      => 'first[' . $last . ']',
-                        'accesskey' => 'p',
-                        'title'     => $lang['btn_older'] . ' [P]',
-                        'class'     => 'button show'
-                    )));
-        $form->addElement($lang['btn_older']);
-        $form->addElement(form_makeCloseTag('button'));
-        $form->addElement(form_makeCloseTag('div'));
-    }
-    $form->addElement(form_makeCloseTag('div'));
-    html_form('recent', $form);
-}
-
-/**
- * Display page index
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- *
- * @param string $ns
- */
-function html_index($ns){
-    global $conf;
-    global $ID;
-    $ns  = cleanID($ns);
-    if(empty($ns)){
-        $ns = getNS($ID);
-        if($ns === false) $ns ='';
-    }
-    $ns  = utf8_encodeFN(str_replace(':','/',$ns));
-
-    echo p_locale_xhtml('index');
-    echo '<div id="index__tree" class="index__tree">';
-
-    $data = array();
-    search($data,$conf['datadir'],'search_index',array('ns' => $ns));
-    echo html_buildlist($data,'idx','html_list_index','html_li_index');
-
-    echo '</div>';
-}
-
-/**
- * Index item formatter
- *
- * User function for html_buildlist()
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- *
- * @param array $item
- * @return string
- */
-function html_list_index($item){
-    global $ID, $conf;
-
-    // prevent searchbots needlessly following links
-    $nofollow = ($ID != $conf['start'] || $conf['sitemap']) ? ' rel="nofollow"' : '';
-
-    $ret = '';
-    $base = ':'.$item['id'];
-    $base = substr($base,strrpos($base,':')+1);
-    if($item['type']=='d'){
-        // FS#2766, no need for search bots to follow namespace links in the index
-        $ret .= '<a href="'.wl($ID,'idx='.rawurlencode($item['id'])).'" title="' . $item['id'] . '" class="idx_dir"' . $nofollow . '><strong>';
-        $ret .= $base;
-        $ret .= '</strong></a>';
-    }else{
-        // default is noNSorNS($id), but we want noNS($id) when useheading is off FS#2605
-        $ret .= html_wikilink(':'.$item['id'], useHeading('navigation') ? null : noNS($item['id']));
-    }
-    return $ret;
-}
-
-/**
- * Index List item
- *
- * This user function is used in html_buildlist to build the
- * <li> tags for namespaces when displaying the page index
- * it gives different classes to opened or closed "folders"
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- *
- * @param array $item
- * @return string html
- */
-function html_li_index($item){
-    global $INFO;
-    global $ACT;
-
-    $class = '';
-    $id = '';
-
-    if($item['type'] == "f"){
-        // scroll to the current item
-        if($item['id'] == $INFO['id'] && $ACT == 'index') {
-            $id = ' id="scroll__here"';
-            $class = ' bounce';
-        }
-        return '<li class="level'.$item['level'].$class.'" '.$id.'>';
-    }elseif($item['open']){
-        return '<li class="open">';
-    }else{
-        return '<li class="closed">';
-    }
-}
-
-/**
- * Default List item
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- *
- * @param array $item
- * @return string html
- */
-function html_li_default($item){
-    return '<li class="level'.$item['level'].'">';
-}
-
-/**
- * Build an unordered list
- *
- * Build an unordered list from the given $data array
- * Each item in the array has to have a 'level' property
- * the item itself gets printed by the given $func user
- * function. The second and optional function is used to
- * print the <li> tag. Both user function need to accept
- * a single item.
- *
- * Both user functions can be given as array to point to
- * a member of an object.
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- *
- * @param array    $data  array with item arrays
- * @param string   $class class of ul wrapper
- * @param callable $func  callback to print an list item
- * @param callable $lifunc callback to the opening li tag
- * @param bool     $forcewrapper Trigger building a wrapper ul if the first level is
- *                               0 (we have a root object) or 1 (just the root content)
- * @return string html of an unordered list
- */
-function html_buildlist($data,$class,$func,$lifunc='html_li_default',$forcewrapper=false){
-    if (count($data) === 0) {
-        return '';
-    }
-
-    $firstElement = reset($data);
-    $start_level = $firstElement['level'];
-    $level = $start_level;
-    $ret   = '';
-    $open  = 0;
-
-    foreach ($data as $item){
-
-        if( $item['level'] > $level ){
-            //open new list
-            for($i=0; $i<($item['level'] - $level); $i++){
-                if ($i) $ret .= "<li class=\"clear\">";
-                $ret .= "\n<ul class=\"$class\">\n";
-                $open++;
-            }
-            $level = $item['level'];
-
-        }elseif( $item['level'] < $level ){
-            //close last item
-            $ret .= "</li>\n";
-            while( $level > $item['level'] && $open > 0 ){
-                //close higher lists
-                $ret .= "</ul>\n</li>\n";
-                $level--;
-                $open--;
-            }
-        } elseif ($ret !== '') {
-            //close previous item
-            $ret .= "</li>\n";
-        }
-
-        //print item
-        $ret .= call_user_func($lifunc,$item);
-        $ret .= '<div class="li">';
-
-        $ret .= call_user_func($func,$item);
-        $ret .= '</div>';
-    }
-
-    //close remaining items and lists
-    $ret .= "</li>\n";
-    while($open-- > 0) {
-        $ret .= "</ul></li>\n";
-    }
-
-    if ($forcewrapper || $start_level < 2) {
-        // Trigger building a wrapper ul if the first level is
-        // 0 (we have a root object) or 1 (just the root content)
-        $ret = "\n<ul class=\"$class\">\n".$ret."</ul>\n";
-    }
-
-    return $ret;
-}
-
-/**
- * display backlinks
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- * @author Michael Klier <chi@chimeric.de>
- */
-function html_backlinks(){
-    global $ID;
-    global $lang;
-
-    print p_locale_xhtml('backlinks');
-
-    $data = ft_backlinks($ID);
-
-    if(!empty($data)) {
-        print '<ul class="idx">';
-        foreach($data as $blink){
-            print '<li><div class="li">';
-            print html_wikilink(':'.$blink,useHeading('navigation')?null:$blink);
-            print '</div></li>';
-        }
-        print '</ul>';
-    } else {
-        print '<div class="level1"><p>' . $lang['nothingfound'] . '</p></div>';
-    }
-}
-
-/**
- * Get header of diff HTML
- *
- * @param string $l_rev   Left revisions
- * @param string $r_rev   Right revision
- * @param string $id      Page id, if null $ID is used
- * @param bool   $media   If it is for media files
- * @param bool   $inline  Return the header on a single line
- * @return string[] HTML snippets for diff header
- */
-function html_diff_head($l_rev, $r_rev, $id = null, $media = false, $inline = false) {
-    global $lang;
-    if ($id === null) {
-        global $ID;
-        $id = $ID;
-    }
-    $head_separator = $inline ? ' ' : '<br />';
-    $media_or_wikiFN = $media ? 'mediaFN' : 'wikiFN';
-    $ml_or_wl = $media ? 'ml' : 'wl';
-    $l_minor = $r_minor = '';
-
-    if($media) {
-        $changelog = new MediaChangeLog($id);
-    } else {
-        $changelog = new PageChangeLog($id);
-    }
-    if(!$l_rev){
-        $l_head = '&mdash;';
-    }else{
-        $l_info   = $changelog->getRevisionInfo($l_rev);
-        if($l_info['user']){
-            $l_user = '<bdi>'.editorinfo($l_info['user']).'</bdi>';
-            if(auth_ismanager()) $l_user .= ' <bdo dir="ltr">('.$l_info['ip'].')</bdo>';
-        } else {
-            $l_user = '<bdo dir="ltr">'.$l_info['ip'].'</bdo>';
-        }
-        $l_user  = '<span class="user">'.$l_user.'</span>';
-        $l_sum   = ($l_info['sum']) ? '<span class="sum"><bdi>'.hsc($l_info['sum']).'</bdi></span>' : '';
-        if ($l_info['type']===DOKU_CHANGE_TYPE_MINOR_EDIT) $l_minor = 'class="minor"';
-
-        $l_head_title = ($media) ? dformat($l_rev) : $id.' ['.dformat($l_rev).']';
-        $l_head = '<bdi><a class="wikilink1" href="'.$ml_or_wl($id,"rev=$l_rev").'">'.
-        $l_head_title.'</a></bdi>'.
-        $head_separator.$l_user.' '.$l_sum;
-    }
-
-    if($r_rev){
-        $r_info   = $changelog->getRevisionInfo($r_rev);
-        if($r_info['user']){
-            $r_user = '<bdi>'.editorinfo($r_info['user']).'</bdi>';
-            if(auth_ismanager()) $r_user .= ' <bdo dir="ltr">('.$r_info['ip'].')</bdo>';
-        } else {
-            $r_user = '<bdo dir="ltr">'.$r_info['ip'].'</bdo>';
-        }
-        $r_user = '<span class="user">'.$r_user.'</span>';
-        $r_sum  = ($r_info['sum']) ? '<span class="sum"><bdi>'.hsc($r_info['sum']).'</bdi></span>' : '';
-        if ($r_info['type']===DOKU_CHANGE_TYPE_MINOR_EDIT) $r_minor = 'class="minor"';
-
-        $r_head_title = ($media) ? dformat($r_rev) : $id.' ['.dformat($r_rev).']';
-        $r_head = '<bdi><a class="wikilink1" href="'.$ml_or_wl($id,"rev=$r_rev").'">'.
-        $r_head_title.'</a></bdi>'.
-        $head_separator.$r_user.' '.$r_sum;
-    }elseif($_rev = @filemtime($media_or_wikiFN($id))){
-        $_info   = $changelog->getRevisionInfo($_rev);
-        if($_info['user']){
-            $_user = '<bdi>'.editorinfo($_info['user']).'</bdi>';
-            if(auth_ismanager()) $_user .= ' <bdo dir="ltr">('.$_info['ip'].')</bdo>';
-        } else {
-            $_user = '<bdo dir="ltr">'.$_info['ip'].'</bdo>';
-        }
-        $_user = '<span class="user">'.$_user.'</span>';
-        $_sum  = ($_info['sum']) ? '<span class="sum"><bdi>'.hsc($_info['sum']).'</span></bdi>' : '';
-        if ($_info['type']===DOKU_CHANGE_TYPE_MINOR_EDIT) $r_minor = 'class="minor"';
-
-        $r_head_title = ($media) ? dformat($_rev) : $id.' ['.dformat($_rev).']';
-        $r_head  = '<bdi><a class="wikilink1" href="'.$ml_or_wl($id).'">'.
-        $r_head_title.'</a></bdi> '.
-        '('.$lang['current'].')'.
-        $head_separator.$_user.' '.$_sum;
-    }else{
-        $r_head = '&mdash; ('.$lang['current'].')';
-    }
-
-    return array($l_head, $r_head, $l_minor, $r_minor);
-}
-
-/**
- * Show diff
- * between current page version and provided $text
- * or between the revisions provided via GET or POST
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- * @param  string $text  when non-empty: compare with this text with most current version
- * @param  bool   $intro display the intro text
- * @param  string $type  type of the diff (inline or sidebyside)
- */
-function html_diff($text = '', $intro = true, $type = null) {
-    global $ID;
-    global $REV;
-    global $lang;
-    global $INPUT;
-    global $INFO;
-    $pagelog = new PageChangeLog($ID);
-
-    /*
-     * Determine diff type
-     */
-    if(!$type) {
-        $type = $INPUT->str('difftype');
-        if(empty($type)) {
-            $type = get_doku_pref('difftype', $type);
-            if(empty($type) && $INFO['ismobile']) {
-                $type = 'inline';
-            }
-        }
-    }
-    if($type != 'inline') $type = 'sidebyside';
-
-    /*
-     * Determine requested revision(s)
-     */
-    // we're trying to be clever here, revisions to compare can be either
-    // given as rev and rev2 parameters, with rev2 being optional. Or in an
-    // array in rev2.
-    $rev1 = $REV;
-
-    $rev2 = $INPUT->ref('rev2');
-    if(is_array($rev2)) {
-        $rev1 = (int) $rev2[0];
-        $rev2 = (int) $rev2[1];
-
-        if(!$rev1) {
-            $rev1 = $rev2;
-            unset($rev2);
-        }
-    } else {
-        $rev2 = $INPUT->int('rev2');
-    }
-
-    /*
-     * Determine left and right revision, its texts and the header
-     */
-    $r_minor = '';
-    $l_minor = '';
-
-    if($text) { // compare text to the most current revision
-        $l_rev = '';
-        $l_text = rawWiki($ID, '');
-        $l_head = '<a class="wikilink1" href="' . wl($ID) . '">' .
-            $ID . ' ' . dformat((int) @filemtime(wikiFN($ID))) . '</a> ' .
-            $lang['current'];
-
-        $r_rev = '';
-        $r_text = cleanText($text);
-        $r_head = $lang['yours'];
-    } else {
-        if($rev1 && isset($rev2) && $rev2) { // two specific revisions wanted
-            // make sure order is correct (older on the left)
-            if($rev1 < $rev2) {
-                $l_rev = $rev1;
-                $r_rev = $rev2;
-            } else {
-                $l_rev = $rev2;
-                $r_rev = $rev1;
-            }
-        } elseif($rev1) { // single revision given, compare to current
-            $r_rev = '';
-            $l_rev = $rev1;
-        } else { // no revision was given, compare previous to current
-            $r_rev = '';
-            $revs = $pagelog->getRevisions(0, 1);
-            $l_rev = $revs[0];
-            $REV = $l_rev; // store revision back in $REV
-        }
-
-        // when both revisions are empty then the page was created just now
-        if(!$l_rev && !$r_rev) {
-            $l_text = '';
-        } else {
-            $l_text = rawWiki($ID, $l_rev);
-        }
-        $r_text = rawWiki($ID, $r_rev);
-
-        list($l_head, $r_head, $l_minor, $r_minor) = html_diff_head($l_rev, $r_rev, null, false, $type == 'inline');
-    }
-
-    /*
-     * Build navigation
-     */
-    $l_nav = '';
-    $r_nav = '';
-    if(!$text) {
-        list($l_nav, $r_nav) = html_diff_navigation($pagelog, $type, $l_rev, $r_rev);
-    }
-    /*
-     * Create diff object and the formatter
-     */
-    $diff = new Diff(explode("\n", $l_text), explode("\n", $r_text));
-
-    if($type == 'inline') {
-        $diffformatter = new InlineDiffFormatter();
-    } else {
-        $diffformatter = new TableDiffFormatter();
-    }
-    /*
-     * Display intro
-     */
-    if($intro) print p_locale_xhtml('diff');
-
-    /*
-     * Display type and exact reference
-     */
-    if(!$text) {
-        ptln('<div class="diffoptions group">');
-
-
-        $form = new Doku_Form(array('action' => wl()));
-        $form->addHidden('id', $ID);
-        $form->addHidden('rev2[0]', $l_rev);
-        $form->addHidden('rev2[1]', $r_rev);
-        $form->addHidden('do', 'diff');
-        $form->addElement(
-             form_makeListboxField(
-                 'difftype',
-                 array(
-                     'sidebyside' => $lang['diff_side'],
-                     'inline' => $lang['diff_inline']
-                 ),
-                 $type,
-                 $lang['diff_type'],
-                 '', '',
-                 array('class' => 'quickselect')
-             )
-        );
-        $form->addElement(form_makeButton('submit', 'diff', 'Go'));
-        $form->printForm();
-
-        ptln('<p>');
-        // link to exactly this view FS#2835
-        echo html_diff_navigationlink($type, 'difflink', $l_rev, $r_rev ? $r_rev : $INFO['currentrev']);
-        ptln('</p>');
-
-        ptln('</div>'); // .diffoptions
-    }
-
-    /*
-     * Display diff view table
-     */
-    ?>
-    <div class="table">
-    <table class="diff diff_<?php echo $type ?>">
-
-        <?php
-        //navigation and header
-        if($type == 'inline') {
-            if(!$text) { ?>
-                <tr>
-                    <td class="diff-lineheader">-</td>
-                    <td class="diffnav"><?php echo $l_nav ?></td>
-                </tr>
-                <tr>
-                    <th class="diff-lineheader">-</th>
-                    <th <?php echo $l_minor ?>>
-                        <?php echo $l_head ?>
-                    </th>
-                </tr>
-            <?php } ?>
-            <tr>
-                <td class="diff-lineheader">+</td>
-                <td class="diffnav"><?php echo $r_nav ?></td>
-            </tr>
-            <tr>
-                <th class="diff-lineheader">+</th>
-                <th <?php echo $r_minor ?>>
-                    <?php echo $r_head ?>
-                </th>
-            </tr>
-        <?php } else {
-            if(!$text) { ?>
-                <tr>
-                    <td colspan="2" class="diffnav"><?php echo $l_nav ?></td>
-                    <td colspan="2" class="diffnav"><?php echo $r_nav ?></td>
-                </tr>
-            <?php } ?>
-            <tr>
-                <th colspan="2" <?php echo $l_minor ?>>
-                    <?php echo $l_head ?>
-                </th>
-                <th colspan="2" <?php echo $r_minor ?>>
-                    <?php echo $r_head ?>
-                </th>
-            </tr>
-        <?php }
-
-        //diff view
-        echo html_insert_softbreaks($diffformatter->format($diff)); ?>
-
-    </table>
-    </div>
-<?php
-}
-
-/**
- * Create html for revision navigation
- *
- * @param PageChangeLog $pagelog changelog object of current page
- * @param string        $type    inline vs sidebyside
- * @param int           $l_rev   left revision timestamp
- * @param int           $r_rev   right revision timestamp
- * @return string[] html of left and right navigation elements
- */
-function html_diff_navigation($pagelog, $type, $l_rev, $r_rev) {
-    global $INFO, $ID;
-
-    // last timestamp is not in changelog, retrieve timestamp from metadata
-    // note: when page is removed, the metadata timestamp is zero
-    if(!$r_rev) {
-        if(isset($INFO['meta']['last_change']['date'])) {
-            $r_rev = $INFO['meta']['last_change']['date'];
-        } else {
-            $r_rev = 0;
-        }
-    }
-
-    //retrieve revisions with additional info
-    list($l_revs, $r_revs) = $pagelog->getRevisionsAround($l_rev, $r_rev);
-    $l_revisions = array();
-    if(!$l_rev) {
-        $l_revisions[0] = array(0, "", false); //no left revision given, add dummy
-    }
-    foreach($l_revs as $rev) {
-        $info = $pagelog->getRevisionInfo($rev);
-        $l_revisions[$rev] = array(
-            $rev,
-            dformat($info['date']) . ' ' . editorinfo($info['user'], true) . ' ' . $info['sum'],
-            $r_rev ? $rev >= $r_rev : false //disable?
-        );
-    }
-    $r_revisions = array();
-    if(!$r_rev) {
-        $r_revisions[0] = array(0, "", false); //no right revision given, add dummy
-    }
-    foreach($r_revs as $rev) {
-        $info = $pagelog->getRevisionInfo($rev);
-        $r_revisions[$rev] = array(
-            $rev,
-            dformat($info['date']) . ' ' . editorinfo($info['user'], true) . ' ' . $info['sum'],
-            $rev <= $l_rev //disable?
-        );
-    }
-
-    //determine previous/next revisions
-    $l_index = array_search($l_rev, $l_revs);
-    $l_prev = $l_revs[$l_index + 1];
-    $l_next = $l_revs[$l_index - 1];
-    if($r_rev) {
-        $r_index = array_search($r_rev, $r_revs);
-        $r_prev = $r_revs[$r_index + 1];
-        $r_next = $r_revs[$r_index - 1];
-    } else {
-        //removed page
-        if($l_next) {
-            $r_prev = $r_revs[0];
-        } else {
-            $r_prev = null;
-        }
-        $r_next = null;
-    }
-
-    /*
-     * Left side:
-     */
-    $l_nav = '';
-    //move back
-    if($l_prev) {
-        $l_nav .= html_diff_navigationlink($type, 'diffbothprevrev', $l_prev, $r_prev);
-        $l_nav .= html_diff_navigationlink($type, 'diffprevrev', $l_prev, $r_rev);
-    }
-    //dropdown
-    $form = new Doku_Form(array('action' => wl()));
-    $form->addHidden('id', $ID);
-    $form->addHidden('difftype', $type);
-    $form->addHidden('rev2[1]', $r_rev);
-    $form->addHidden('do', 'diff');
-    $form->addElement(
-         form_makeListboxField(
-             'rev2[0]',
-             $l_revisions,
-             $l_rev,
-             '', '', '',
-             array('class' => 'quickselect')
-         )
-    );
-    $form->addElement(form_makeButton('submit', 'diff', 'Go'));
-    $l_nav .= $form->getForm();
-    //move forward
-    if($l_next && ($l_next < $r_rev || !$r_rev)) {
-        $l_nav .= html_diff_navigationlink($type, 'diffnextrev', $l_next, $r_rev);
-    }
-
-    /*
-     * Right side:
-     */
-    $r_nav = '';
-    //move back
-    if($l_rev < $r_prev) {
-        $r_nav .= html_diff_navigationlink($type, 'diffprevrev', $l_rev, $r_prev);
-    }
-    //dropdown
-    $form = new Doku_Form(array('action' => wl()));
-    $form->addHidden('id', $ID);
-    $form->addHidden('rev2[0]', $l_rev);
-    $form->addHidden('difftype', $type);
-    $form->addHidden('do', 'diff');
-    $form->addElement(
-         form_makeListboxField(
-             'rev2[1]',
-             $r_revisions,
-             $r_rev,
-             '', '', '',
-             array('class' => 'quickselect')
-         )
-    );
-    $form->addElement(form_makeButton('submit', 'diff', 'Go'));
-    $r_nav .= $form->getForm();
-    //move forward
-    if($r_next) {
-        if($pagelog->isCurrentRevision($r_next)) {
-            $r_nav .= html_diff_navigationlink($type, 'difflastrev', $l_rev); //last revision is diff with current page
-        } else {
-            $r_nav .= html_diff_navigationlink($type, 'diffnextrev', $l_rev, $r_next);
-        }
-        $r_nav .= html_diff_navigationlink($type, 'diffbothnextrev', $l_next, $r_next);
-    }
-    return array($l_nav, $r_nav);
-}
-
-/**
- * Create html link to a diff defined by two revisions
- *
- * @param string $difftype display type
- * @param string $linktype
- * @param int $lrev oldest revision
- * @param int $rrev newest revision or null for diff with current revision
- * @return string html of link to a diff
- */
-function html_diff_navigationlink($difftype, $linktype, $lrev, $rrev = null) {
-    global $ID, $lang;
-    if(!$rrev) {
-        $urlparam = array(
-            'do' => 'diff',
-            'rev' => $lrev,
-            'difftype' => $difftype,
-        );
-    } else {
-        $urlparam = array(
-            'do' => 'diff',
-            'rev2[0]' => $lrev,
-            'rev2[1]' => $rrev,
-            'difftype' => $difftype,
-        );
-    }
-    return  '<a class="' . $linktype . '" href="' . wl($ID, $urlparam) . '" title="' . $lang[$linktype] . '">' .
-                '<span>' . $lang[$linktype] . '</span>' .
-            '</a>' . "\n";
-}
-
-/**
- * Insert soft breaks in diff html
- *
- * @param string $diffhtml
- * @return string
- */
-function html_insert_softbreaks($diffhtml) {
-    // search the diff html string for both:
-    // - html tags, so these can be ignored
-    // - long strings of characters without breaking characters
-    return preg_replace_callback('/<[^>]*>|[^<> ]{12,}/','html_softbreak_callback',$diffhtml);
-}
-
-/**
- * callback which adds softbreaks
- *
- * @param array $match array with first the complete match
- * @return string the replacement
- */
-function html_softbreak_callback($match){
-    // if match is an html tag, return it intact
-    if ($match[0]{0} == '<') return $match[0];
-
-    // its a long string without a breaking character,
-    // make certain characters into breaking characters by inserting a
-    // breaking character (zero length space, U+200B / #8203) in front them.
-    $regex = <<< REGEX
-(?(?=                                 # start a conditional expression with a positive look ahead ...
-&\#?\\w{1,6};)                        # ... for html entities - we don't want to split them (ok to catch some invalid combinations)
-&\#?\\w{1,6};                         # yes pattern - a quicker match for the html entity, since we know we have one
-|
-[?/,&\#;:]                            # no pattern - any other group of 'special' characters to insert a breaking character after
-)+                                    # end conditional expression
-REGEX;
-
-    return preg_replace('<'.$regex.'>xu','\0&#8203;',$match[0]);
-}
-
-/**
- * show warning on conflict detection
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- *
- * @param string $text
- * @param string $summary
- */
-function html_conflict($text,$summary){
-    global $ID;
-    global $lang;
-
-    print p_locale_xhtml('conflict');
-    $form = new Doku_Form(array('id' => 'dw__editform'));
-    $form->addHidden('id', $ID);
-    $form->addHidden('wikitext', $text);
-    $form->addHidden('summary', $summary);
-    $form->addElement(form_makeButton('submit', 'save', $lang['btn_save'], array('accesskey'=>'s')));
-    $form->addElement(form_makeButton('submit', 'cancel', $lang['btn_cancel']));
-    html_form('conflict', $form);
-    print '<br /><br /><br /><br />'.NL;
-}
-
-/**
- * Prints the global message array
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- */
-function html_msgarea(){
-    global $MSG, $MSG_shown;
-    /** @var array $MSG */
-    // store if the global $MSG has already been shown and thus HTML output has been started
-    $MSG_shown = true;
-
-    if(!isset($MSG)) return;
-
-    $shown = array();
-    foreach($MSG as $msg){
-        $hash = md5($msg['msg']);
-        if(isset($shown[$hash])) continue; // skip double messages
-        if(info_msg_allowed($msg)){
-            print '<div class="'.$msg['lvl'].'">';
-            print $msg['msg'];
-            print '</div>';
-        }
-        $shown[$hash] = 1;
-    }
-
-    unset($GLOBALS['MSG']);
-}
-
-/**
- * Prints the registration form
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- */
-function html_register(){
-    global $lang;
-    global $conf;
-    global $INPUT;
-
-    $base_attrs = array('size'=>50,'required'=>'required');
-    $email_attrs = $base_attrs + array('type'=>'email','class'=>'edit');
-
-    print p_locale_xhtml('register');
-    print '<div class="centeralign">'.NL;
-    $form = new Doku_Form(array('id' => 'dw__register'));
-    $form->startFieldset($lang['btn_register']);
-    $form->addHidden('do', 'register');
-    $form->addHidden('save', '1');
-    $form->addElement(form_makeTextField('login', $INPUT->post->str('login'), $lang['user'], '', 'block', $base_attrs));
-    if (!$conf['autopasswd']) {
-        $form->addElement(form_makePasswordField('pass', $lang['pass'], '', 'block', $base_attrs));
-        $form->addElement(form_makePasswordField('passchk', $lang['passchk'], '', 'block', $base_attrs));
-    }
-    $form->addElement(form_makeTextField('fullname', $INPUT->post->str('fullname'), $lang['fullname'], '', 'block', $base_attrs));
-    $form->addElement(form_makeField('email','email', $INPUT->post->str('email'), $lang['email'], '', 'block', $email_attrs));
-    $form->addElement(form_makeButton('submit', '', $lang['btn_register']));
-    $form->endFieldset();
-    html_form('register', $form);
-
-    print '</div>'.NL;
-}
-
-/**
- * Print the update profile form
- *
- * @author Christopher Smith <chris@jalakai.co.uk>
- * @author Andreas Gohr <andi@splitbrain.org>
- */
-function html_updateprofile(){
-    global $lang;
-    global $conf;
-    global $INPUT;
-    global $INFO;
-    /** @var DokuWiki_Auth_Plugin $auth */
-    global $auth;
-
-    print p_locale_xhtml('updateprofile');
-    print '<div class="centeralign">'.NL;
-
-    $fullname = $INPUT->post->str('fullname', $INFO['userinfo']['name'], true);
-    $email = $INPUT->post->str('email', $INFO['userinfo']['mail'], true);
-    $form = new Doku_Form(array('id' => 'dw__register'));
-    $form->startFieldset($lang['profile']);
-    $form->addHidden('do', 'profile');
-    $form->addHidden('save', '1');
-    $form->addElement(form_makeTextField('login', $_SERVER['REMOTE_USER'], $lang['user'], '', 'block', array('size'=>'50', 'disabled'=>'disabled')));
-    $attr = array('size'=>'50');
-    if (!$auth->canDo('modName')) $attr['disabled'] = 'disabled';
-    $form->addElement(form_makeTextField('fullname', $fullname, $lang['fullname'], '', 'block', $attr));
-    $attr = array('size'=>'50', 'class'=>'edit');
-    if (!$auth->canDo('modMail')) $attr['disabled'] = 'disabled';
-    $form->addElement(form_makeField('email','email', $email, $lang['email'], '', 'block', $attr));
-    $form->addElement(form_makeTag('br'));
-    if ($auth->canDo('modPass')) {
-        $form->addElement(form_makePasswordField('newpass', $lang['newpass'], '', 'block', array('size'=>'50')));
-        $form->addElement(form_makePasswordField('passchk', $lang['passchk'], '', 'block', array('size'=>'50')));
-    }
-    if ($conf['profileconfirm']) {
-        $form->addElement(form_makeTag('br'));
-        $form->addElement(form_makePasswordField('oldpass', $lang['oldpass'], '', 'block', array('size'=>'50', 'required' => 'required')));
-    }
-    $form->addElement(form_makeButton('submit', '', $lang['btn_save']));
-    $form->addElement(form_makeButton('reset', '', $lang['btn_reset']));
-
-    $form->endFieldset();
-    html_form('updateprofile', $form);
-
-    if ($auth->canDo('delUser') && actionOK('profile_delete')) {
-        $form_profiledelete = new Doku_Form(array('id' => 'dw__profiledelete'));
-        $form_profiledelete->startFieldset($lang['profdeleteuser']);
-        $form_profiledelete->addHidden('do', 'profile_delete');
-        $form_profiledelete->addHidden('delete', '1');
-        $form_profiledelete->addElement(form_makeCheckboxField('confirm_delete', '1', $lang['profconfdelete'],'dw__confirmdelete','', array('required' => 'required')));
-        if ($conf['profileconfirm']) {
-            $form_profiledelete->addElement(form_makeTag('br'));
-            $form_profiledelete->addElement(form_makePasswordField('oldpass', $lang['oldpass'], '', 'block', array('size'=>'50', 'required' => 'required')));
-        }
-        $form_profiledelete->addElement(form_makeButton('submit', '', $lang['btn_deleteuser']));
-        $form_profiledelete->endFieldset();
-
-        html_form('profiledelete', $form_profiledelete);
-    }
-
-    print '</div>'.NL;
-}
-
-/**
- * Preprocess edit form data
- *
- * @author   Andreas Gohr <andi@splitbrain.org>
- *
- * @triggers HTML_EDITFORM_OUTPUT
- */
-function html_edit(){
-    global $INPUT;
-    global $ID;
-    global $REV;
-    global $DATE;
-    global $PRE;
-    global $SUF;
-    global $INFO;
-    global $SUM;
-    global $lang;
-    global $conf;
-    global $TEXT;
-
-    if ($INPUT->has('changecheck')) {
-        $check = $INPUT->str('changecheck');
-    } elseif(!$INFO['exists']){
-        // $TEXT has been loaded from page template
-        $check = md5('');
-    } else {
-        $check = md5($TEXT);
-    }
-    $mod = md5($TEXT) !== $check;
-
-    $wr = $INFO['writable'] && !$INFO['locked'];
-    $include = 'edit';
-    if($wr){
-        if ($REV) $include = 'editrev';
-    }else{
-        // check pseudo action 'source'
-        if(!actionOK('source')){
-            msg('Command disabled: source',-1);
-            return;
-        }
-        $include = 'read';
-    }
-
-    global $license;
-
-    $form = new Doku_Form(array('id' => 'dw__editform'));
-    $form->addHidden('id', $ID);
-    $form->addHidden('rev', $REV);
-    $form->addHidden('date', $DATE);
-    $form->addHidden('prefix', $PRE . '.');
-    $form->addHidden('suffix', $SUF);
-    $form->addHidden('changecheck', $check);
-
-    $data = array('form' => $form,
-                  'wr'   => $wr,
-                  'media_manager' => true,
-                  'target' => ($INPUT->has('target') && $wr) ? $INPUT->str('target') : 'section',
-                  'intro_locale' => $include);
-
-    if ($data['target'] !== 'section') {
-        // Only emit event if page is writable, section edit data is valid and
-        // edit target is not section.
-        trigger_event('HTML_EDIT_FORMSELECTION', $data, 'html_edit_form', true);
-    } else {
-        html_edit_form($data);
-    }
-    if (isset($data['intro_locale'])) {
-        echo p_locale_xhtml($data['intro_locale']);
-    }
-
-    $form->addHidden('target', $data['target']);
-    if ($INPUT->has('hid')) {
-        $form->addHidden('hid', $INPUT->str('hid'));
-    }
-    if ($INPUT->has('codeblockOffset')) {
-        $form->addHidden('codeblockOffset', $INPUT->str('codeblockOffset'));
-    }
-    $form->addElement(form_makeOpenTag('div', array('id'=>'wiki__editbar', 'class'=>'editBar')));
-    $form->addElement(form_makeOpenTag('div', array('id'=>'size__ctl')));
-    $form->addElement(form_makeCloseTag('div'));
-    if ($wr) {
-        $form->addElement(form_makeOpenTag('div', array('class'=>'editButtons')));
-        $form->addElement(form_makeButton('submit', 'save', $lang['btn_save'], array('id'=>'edbtn__save', 'accesskey'=>'s', 'tabindex'=>'4')));
-        $form->addElement(form_makeButton('submit', 'preview', $lang['btn_preview'], array('id'=>'edbtn__preview', 'accesskey'=>'p', 'tabindex'=>'5')));
-        $form->addElement(form_makeButton('submit', 'cancel', $lang['btn_cancel'], array('tabindex'=>'6')));
-        $form->addElement(form_makeCloseTag('div'));
-        $form->addElement(form_makeOpenTag('div', array('class'=>'summary')));
-        $form->addElement(form_makeTextField('summary', $SUM, $lang['summary'], 'edit__summary', 'nowrap', array('size'=>'50', 'tabindex'=>'2')));
-        $elem = html_minoredit();
-        if ($elem) $form->addElement($elem);
-        $form->addElement(form_makeCloseTag('div'));
-    }
-    $form->addElement(form_makeCloseTag('div'));
-    if($wr && $conf['license']){
-        $form->addElement(form_makeOpenTag('div', array('class'=>'license')));
-        $out  = $lang['licenseok'];
-        $out .= ' <a href="'.$license[$conf['license']]['url'].'" rel="license" class="urlextern"';
-        if($conf['target']['extern']) $out .= ' target="'.$conf['target']['extern'].'"';
-        $out .= '>'.$license[$conf['license']]['name'].'</a>';
-        $form->addElement($out);
-        $form->addElement(form_makeCloseTag('div'));
-    }
-
-    if ($wr) {
-        // sets changed to true when previewed
-        echo '<script type="text/javascript">/*<![CDATA[*/'. NL;
-        echo 'textChanged = ' . ($mod ? 'true' : 'false');
-        echo '/*!]]>*/</script>' . NL;
-    } ?>
-    <div class="editBox" role="application">
-
-    <div class="toolbar group">
-        <div id="draft__status" class="draft__status"><?php if(!empty($INFO['draft'])) echo $lang['draftdate'].' '.dformat();?></div>
-        <div id="tool__bar" class="tool__bar"><?php if ($wr && $data['media_manager']){?><a href="<?php echo DOKU_BASE?>lib/exe/mediamanager.php?ns=<?php echo $INFO['namespace']?>"
-            target="_blank"><?php echo $lang['mediaselect'] ?></a><?php }?></div>
-    </div>
-    <?php
-
-    html_form('edit', $form);
-    print '</div>'.NL;
-}
-
-/**
- * Display the default edit form
- *
- * Is the default action for HTML_EDIT_FORMSELECTION.
- *
- * @param mixed[] $param
- */
-function html_edit_form($param) {
-    global $TEXT;
-
-    if ($param['target'] !== 'section') {
-        msg('No editor for edit target ' . hsc($param['target']) . ' found.', -1);
-    }
-
-    $attr = array('tabindex'=>'1');
-    if (!$param['wr']) $attr['readonly'] = 'readonly';
-
-    $param['form']->addElement(form_makeWikiText($TEXT, $attr));
-}
-
-/**
- * Adds a checkbox for minor edits for logged in users
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- *
- * @return array|bool
- */
-function html_minoredit(){
-    global $conf;
-    global $lang;
-    global $INPUT;
-    // minor edits are for logged in users only
-    if(!$conf['useacl'] || !$_SERVER['REMOTE_USER']){
-        return false;
-    }
-
-    $p = array();
-    $p['tabindex'] = 3;
-    if($INPUT->bool('minor')) $p['checked']='checked';
-    return form_makeCheckboxField('minor', '1', $lang['minoredit'], 'minoredit', 'nowrap', $p);
-}
-
-/**
- * prints some debug info
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- */
-function html_debug(){
-    global $conf;
-    global $lang;
-    /** @var DokuWiki_Auth_Plugin $auth */
-    global $auth;
-    global $INFO;
-
-    //remove sensitive data
-    $cnf = $conf;
-    debug_guard($cnf);
-    $nfo = $INFO;
-    debug_guard($nfo);
-    $ses = $_SESSION;
-    debug_guard($ses);
-
-    print '<html><body>';
-
-    print '<p>When reporting bugs please send all the following ';
-    print 'output as a mail to andi@splitbrain.org ';
-    print 'The best way to do this is to save this page in your browser</p>';
-
-    print '<b>$INFO:</b><pre>';
-    print_r($nfo);
-    print '</pre>';
-
-    print '<b>$_SERVER:</b><pre>';
-    print_r($_SERVER);
-    print '</pre>';
-
-    print '<b>$conf:</b><pre>';
-    print_r($cnf);
-    print '</pre>';
-
-    print '<b>DOKU_BASE:</b><pre>';
-    print DOKU_BASE;
-    print '</pre>';
-
-    print '<b>abs DOKU_BASE:</b><pre>';
-    print DOKU_URL;
-    print '</pre>';
-
-    print '<b>rel DOKU_BASE:</b><pre>';
-    print dirname($_SERVER['PHP_SELF']).'/';
-    print '</pre>';
-
-    print '<b>PHP Version:</b><pre>';
-    print phpversion();
-    print '</pre>';
-
-    print '<b>locale:</b><pre>';
-    print setlocale(LC_ALL,0);
-    print '</pre>';
-
-    print '<b>encoding:</b><pre>';
-    print $lang['encoding'];
-    print '</pre>';
-
-    if($auth){
-        print '<b>Auth backend capabilities:</b><pre>';
-        foreach ($auth->getCapabilities() as $cando){
-            print '   '.str_pad($cando,16) . ' => ' . (int)$auth->canDo($cando) . NL;
-        }
-        print '</pre>';
-    }
-
-    print '<b>$_SESSION:</b><pre>';
-    print_r($ses);
-    print '</pre>';
-
-    print '<b>Environment:</b><pre>';
-    print_r($_ENV);
-    print '</pre>';
-
-    print '<b>PHP settings:</b><pre>';
-    $inis = ini_get_all();
-    print_r($inis);
-    print '</pre>';
-
-    if (function_exists('apache_get_version')) {
-        $apache = array();
-        $apache['version'] = apache_get_version();
-
-        if (function_exists('apache_get_modules')) {
-            $apache['modules'] = apache_get_modules();
-        }
-        print '<b>Apache</b><pre>';
-        print_r($apache);
-        print '</pre>';
-    }
-
-    print '</body></html>';
-}
-
-/**
- * Form to request a new password for an existing account
- *
- * @author Benoit Chesneau <benoit@bchesneau.info>
- * @author Andreas Gohr <gohr@cosmocode.de>
- */
-function html_resendpwd() {
-    global $lang;
-    global $conf;
-    global $INPUT;
-
-    $token = preg_replace('/[^a-f0-9]+/','',$INPUT->str('pwauth'));
-
-    if(!$conf['autopasswd'] && $token){
-        print p_locale_xhtml('resetpwd');
-        print '<div class="centeralign">'.NL;
-        $form = new Doku_Form(array('id' => 'dw__resendpwd'));
-        $form->startFieldset($lang['btn_resendpwd']);
-        $form->addHidden('token', $token);
-        $form->addHidden('do', 'resendpwd');
-
-        $form->addElement(form_makePasswordField('pass', $lang['pass'], '', 'block', array('size'=>'50')));
-        $form->addElement(form_makePasswordField('passchk', $lang['passchk'], '', 'block', array('size'=>'50')));
-
-        $form->addElement(form_makeButton('submit', '', $lang['btn_resendpwd']));
-        $form->endFieldset();
-        html_form('resendpwd', $form);
-        print '</div>'.NL;
-    }else{
-        print p_locale_xhtml('resendpwd');
-        print '<div class="centeralign">'.NL;
-        $form = new Doku_Form(array('id' => 'dw__resendpwd'));
-        $form->startFieldset($lang['resendpwd']);
-        $form->addHidden('do', 'resendpwd');
-        $form->addHidden('save', '1');
-        $form->addElement(form_makeTag('br'));
-        $form->addElement(form_makeTextField('login', $INPUT->post->str('login'), $lang['user'], '', 'block'));
-        $form->addElement(form_makeTag('br'));
-        $form->addElement(form_makeTag('br'));
-        $form->addElement(form_makeButton('submit', '', $lang['btn_resendpwd']));
-        $form->endFieldset();
-        html_form('resendpwd', $form);
-        print '</div>'.NL;
-    }
-}
-
-/**
- * Return the TOC rendered to XHTML
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- *
- * @param array $toc
- * @return string html
- */
-function html_TOC($toc){
-    if(!count($toc)) return '';
-    global $lang;
-    $out  = '<!-- TOC START -->'.DOKU_LF;
-    $out .= '<div id="dw__toc" class="dw__toc">'.DOKU_LF;
-    $out .= '<h3 class="toggle">';
-    $out .= $lang['toc'];
-    $out .= '</h3>'.DOKU_LF;
-    $out .= '<div>'.DOKU_LF;
-    $out .= html_buildlist($toc,'toc','html_list_toc','html_li_default',true);
-    $out .= '</div>'.DOKU_LF.'</div>'.DOKU_LF;
-    $out .= '<!-- TOC END -->'.DOKU_LF;
-    return $out;
-}
-
-/**
- * Callback for html_buildlist
- *
- * @param array $item
- * @return string html
- */
-function html_list_toc($item){
-    if(isset($item['hid'])){
-        $link = '#'.$item['hid'];
-    }else{
-        $link = $item['link'];
-    }
-
-    return '<a href="'.$link.'">'.hsc($item['title']).'</a>';
-}
-
-/**
- * Helper function to build TOC items
- *
- * Returns an array ready to be added to a TOC array
- *
- * @param string $link  - where to link (if $hash set to '#' it's a local anchor)
- * @param string $text  - what to display in the TOC
- * @param int    $level - nesting level
- * @param string $hash  - is prepended to the given $link, set blank if you want full links
- * @return array the toc item
- */
-function html_mktocitem($link, $text, $level, $hash='#'){
-    return  array( 'link'  => $hash.$link,
-            'title' => $text,
-            'type'  => 'ul',
-            'level' => $level);
-}
-
-/**
- * Output a Doku_Form object.
- * Triggers an event with the form name: HTML_{$name}FORM_OUTPUT
- *
- * @author Tom N Harris <tnharris@whoopdedo.org>
- *
- * @param string     $name The name of the form
- * @param Doku_Form  $form The form
- */
-function html_form($name, &$form) {
-    // Safety check in case the caller forgets.
-    $form->endFieldset();
-    trigger_event('HTML_'.strtoupper($name).'FORM_OUTPUT', $form, 'html_form_output', false);
-}
-
-/**
- * Form print function.
- * Just calls printForm() on the data object.
- *
- * @param Doku_Form $data The form
- */
-function html_form_output($data) {
-    $data->printForm();
-}
-
-/**
- * Embed a flash object in HTML
- *
- * This will create the needed HTML to embed a flash movie in a cross browser
- * compatble way using valid XHTML
- *
- * The parameters $params, $flashvars and $atts need to be associative arrays.
- * No escaping needs to be done for them. The alternative content *has* to be
- * escaped because it is used as is. If no alternative content is given
- * $lang['noflash'] is used.
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- * @link   http://latrine.dgx.cz/how-to-correctly-insert-a-flash-into-xhtml
- *
- * @param string $swf      - the SWF movie to embed
- * @param int $width       - width of the flash movie in pixels
- * @param int $height      - height of the flash movie in pixels
- * @param array $params    - additional parameters (<param>)
- * @param array $flashvars - parameters to be passed in the flashvar parameter
- * @param array $atts      - additional attributes for the <object> tag
- * @param string $alt      - alternative content (is NOT automatically escaped!)
- * @return string         - the XHTML markup
- */
-function html_flashobject($swf,$width,$height,$params=null,$flashvars=null,$atts=null,$alt=''){
-    global $lang;
-
-    $out = '';
-
-    // prepare the object attributes
-    if(is_null($atts)) $atts = array();
-    $atts['width']  = (int) $width;
-    $atts['height'] = (int) $height;
-    if(!$atts['width'])  $atts['width']  = 425;
-    if(!$atts['height']) $atts['height'] = 350;
-
-    // add object attributes for standard compliant browsers
-    $std = $atts;
-    $std['type'] = 'application/x-shockwave-flash';
-    $std['data'] = $swf;
-
-    // add object attributes for IE
-    $ie  = $atts;
-    $ie['classid'] = 'clsid:D27CDB6E-AE6D-11cf-96B8-444553540000';
-
-    // open object (with conditional comments)
-    $out .= '<!--[if !IE]> -->'.NL;
-    $out .= '<object '.buildAttributes($std).'>'.NL;
-    $out .= '<!-- <![endif]-->'.NL;
-    $out .= '<!--[if IE]>'.NL;
-    $out .= '<object '.buildAttributes($ie).'>'.NL;
-    $out .= '    <param name="movie" value="'.hsc($swf).'" />'.NL;
-    $out .= '<!--><!-- -->'.NL;
-
-    // print params
-    if(is_array($params)) foreach($params as $key => $val){
-        $out .= '  <param name="'.hsc($key).'" value="'.hsc($val).'" />'.NL;
-    }
-
-    // add flashvars
-    if(is_array($flashvars)){
-        $out .= '  <param name="FlashVars" value="'.buildURLparams($flashvars).'" />'.NL;
-    }
-
-    // alternative content
-    if($alt){
-        $out .= $alt.NL;
-    }else{
-        $out .= $lang['noflash'].NL;
-    }
-
-    // finish
-    $out .= '</object>'.NL;
-    $out .= '<!-- <![endif]-->'.NL;
-
-    return $out;
-}
-
-/**
- * Prints HTML code for the given tab structure
- *
- * @param array  $tabs        tab structure
- * @param string $current_tab the current tab id
- */
-function html_tabs($tabs, $current_tab = null) {
-    echo '<ul class="tabs">'.NL;
-
-    foreach($tabs as $id => $tab) {
-        html_tab($tab['href'], $tab['caption'], $id === $current_tab);
-    }
-
-    echo '</ul>'.NL;
-}
-
-/**
- * Prints a single tab
- *
- * @author Kate Arzamastseva <pshns@ukr.net>
- * @author Adrian Lang <mail@adrianlang.de>
- *
- * @param string $href - tab href
- * @param string $caption - tab caption
- * @param boolean $selected - is tab selected
- */
-
-function html_tab($href, $caption, $selected=false) {
-    $tab = '<li>';
-    if ($selected) {
-        $tab .= '<strong>';
-    } else {
-        $tab .= '<a href="' . hsc($href) . '">';
-    }
-    $tab .= hsc($caption)
-         .  '</' . ($selected ? 'strong' : 'a') . '>'
-         .  '</li>'.NL;
-    echo $tab;
-}
-
-/**
- * Display size change
- *
- * @param int $sizechange - size of change in Bytes
- * @param Doku_Form $form - form to add elements to
- */
-
-function html_sizechange($sizechange, Doku_Form $form) {
-    if(isset($sizechange)) {
-        $class = 'sizechange';
-        $value = filesize_h(abs($sizechange));
-        if($sizechange > 0) {
-            $class .= ' positive';
-            $value = '+' . $value;
-        } elseif($sizechange < 0) {
-            $class .= ' negative';
-            $value = '-' . $value;
-        } else {
-            $value = '±' . $value;
-        }
-        $form->addElement(form_makeOpenTag('span', array('class' => $class)));
-        $form->addElement($value);
-        $form->addElement(form_makeCloseTag('span'));
-    }
-}
diff --git a/wiki/inc/httputils.php b/wiki/inc/httputils.php
deleted file mode 100644
index c365f4f..0000000
--- a/wiki/inc/httputils.php
+++ /dev/null
@@ -1,346 +0,0 @@
-<?php
-/**
- * Utilities for handling HTTP related tasks
- *
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * @author     Andreas Gohr <andi@splitbrain.org>
- */
-
-define('HTTP_MULTIPART_BOUNDARY','D0KuW1K1B0uNDARY');
-define('HTTP_HEADER_LF',"\r\n");
-define('HTTP_CHUNK_SIZE',16*1024);
-
-/**
- * Checks and sets HTTP headers for conditional HTTP requests
- *
- * @author   Simon Willison <swillison@gmail.com>
- * @link     http://simonwillison.net/2003/Apr/23/conditionalGet/
- *
- * @param    int $timestamp lastmodified time of the cache file
- * @returns  void or exits with previously header() commands executed
- */
-function http_conditionalRequest($timestamp){
-    // A PHP implementation of conditional get, see
-    //   http://fishbowl.pastiche.org/2002/10/21/http_conditional_get_for_rss_hackers/
-    $last_modified = substr(gmdate('r', $timestamp), 0, -5).'GMT';
-    $etag = '"'.md5($last_modified).'"';
-    // Send the headers
-    header("Last-Modified: $last_modified");
-    header("ETag: $etag");
-    // See if the client has provided the required headers
-    if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE'])){
-        $if_modified_since = stripslashes($_SERVER['HTTP_IF_MODIFIED_SINCE']);
-    }else{
-        $if_modified_since = false;
-    }
-
-    if (isset($_SERVER['HTTP_IF_NONE_MATCH'])){
-        $if_none_match = stripslashes($_SERVER['HTTP_IF_NONE_MATCH']);
-    }else{
-        $if_none_match = false;
-    }
-
-    if (!$if_modified_since && !$if_none_match){
-        return;
-    }
-
-    // At least one of the headers is there - check them
-    if ($if_none_match && $if_none_match != $etag) {
-        return; // etag is there but doesn't match
-    }
-
-    if ($if_modified_since && $if_modified_since != $last_modified) {
-        return; // if-modified-since is there but doesn't match
-    }
-
-    // Nothing has changed since their last request - serve a 304 and exit
-    header('HTTP/1.0 304 Not Modified');
-
-    // don't produce output, even if compression is on
-    @ob_end_clean();
-    exit;
-}
-
-/**
- * Let the webserver send the given file via x-sendfile method
- *
- * @author Chris Smith <chris@jalakai.co.uk>
- *
- * @param string $file absolute path of file to send
- * @returns  void or exits with previous header() commands executed
- */
-function http_sendfile($file) {
-    global $conf;
-
-    //use x-sendfile header to pass the delivery to compatible web servers
-    if($conf['xsendfile'] == 1){
-        header("X-LIGHTTPD-send-file: $file");
-        ob_end_clean();
-        exit;
-    }elseif($conf['xsendfile'] == 2){
-        header("X-Sendfile: $file");
-        ob_end_clean();
-        exit;
-    }elseif($conf['xsendfile'] == 3){
-        // FS#2388 nginx just needs the relative path.
-        $file = DOKU_REL.substr($file, strlen(fullpath(DOKU_INC)) + 1);
-        header("X-Accel-Redirect: $file");
-        ob_end_clean();
-        exit;
-    }
-}
-
-/**
- * Send file contents supporting rangeRequests
- *
- * This function exits the running script
- *
- * @param resource $fh - file handle for an already open file
- * @param int $size     - size of the whole file
- * @param int $mime     - MIME type of the file
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- */
-function http_rangeRequest($fh,$size,$mime){
-    $ranges  = array();
-    $isrange = false;
-
-    header('Accept-Ranges: bytes');
-
-    if(!isset($_SERVER['HTTP_RANGE'])){
-        // no range requested - send the whole file
-        $ranges[] = array(0,$size,$size);
-    }else{
-        $t = explode('=', $_SERVER['HTTP_RANGE']);
-        if (!$t[0]=='bytes') {
-            // we only understand byte ranges - send the whole file
-            $ranges[] = array(0,$size,$size);
-        }else{
-            $isrange = true;
-            // handle multiple ranges
-            $r = explode(',',$t[1]);
-            foreach($r as $x){
-                $p = explode('-', $x);
-                $start = (int)$p[0];
-                $end   = (int)$p[1];
-                if (!$end) $end = $size - 1;
-                if ($start > $end || $start > $size || $end > $size){
-                    header('HTTP/1.1 416 Requested Range Not Satisfiable');
-                    print 'Bad Range Request!';
-                    exit;
-                }
-                $len = $end - $start + 1;
-                $ranges[] = array($start,$end,$len);
-            }
-        }
-    }
-    $parts = count($ranges);
-
-    // now send the type and length headers
-    if(!$isrange){
-        header("Content-Type: $mime",true);
-    }else{
-        header('HTTP/1.1 206 Partial Content');
-        if($parts == 1){
-            header("Content-Type: $mime",true);
-        }else{
-            header('Content-Type: multipart/byteranges; boundary='.HTTP_MULTIPART_BOUNDARY,true);
-        }
-    }
-
-    // send all ranges
-    for($i=0; $i<$parts; $i++){
-        list($start,$end,$len) = $ranges[$i];
-
-        // multipart or normal headers
-        if($parts > 1){
-            echo HTTP_HEADER_LF.'--'.HTTP_MULTIPART_BOUNDARY.HTTP_HEADER_LF;
-            echo "Content-Type: $mime".HTTP_HEADER_LF;
-            echo "Content-Range: bytes $start-$end/$size".HTTP_HEADER_LF;
-            echo HTTP_HEADER_LF;
-        }else{
-            header("Content-Length: $len");
-            if($isrange){
-                header("Content-Range: bytes $start-$end/$size");
-            }
-        }
-
-        // send file content
-        fseek($fh,$start); //seek to start of range
-        $chunk = ($len > HTTP_CHUNK_SIZE) ? HTTP_CHUNK_SIZE : $len;
-        while (!feof($fh) && $chunk > 0) {
-            @set_time_limit(30); // large files can take a lot of time
-            print fread($fh, $chunk);
-            flush();
-            $len -= $chunk;
-            $chunk = ($len > HTTP_CHUNK_SIZE) ? HTTP_CHUNK_SIZE : $len;
-        }
-    }
-    if($parts > 1){
-        echo HTTP_HEADER_LF.'--'.HTTP_MULTIPART_BOUNDARY.'--'.HTTP_HEADER_LF;
-    }
-
-    // everything should be done here, exit (or return if testing)
-    if (defined('SIMPLE_TEST')) return;
-    exit;
-}
-
-/**
- * Check for a gzipped version and create if necessary
- *
- * return true if there exists a gzip version of the uncompressed file
- * (samepath/samefilename.sameext.gz) created after the uncompressed file
- *
- * @author Chris Smith <chris.eureka@jalakai.co.uk>
- *
- * @param string $uncompressed_file
- * @return bool
- */
-function http_gzip_valid($uncompressed_file) {
-    if(!DOKU_HAS_GZIP) return false;
-
-    $gzip = $uncompressed_file.'.gz';
-    if (filemtime($gzip) < filemtime($uncompressed_file)) {    // filemtime returns false (0) if file doesn't exist
-        return copy($uncompressed_file, 'compress.zlib://'.$gzip);
-    }
-
-    return true;
-}
-
-/**
- * Set HTTP headers and echo cachefile, if useable
- *
- * This function handles output of cacheable resource files. It ses the needed
- * HTTP headers. If a useable cache is present, it is passed to the web server
- * and the script is terminated.
- *
- * @param string $cache cache file name
- * @param bool   $cache_ok    if cache can be used
- */
-function http_cached($cache, $cache_ok) {
-    global $conf;
-
-    // check cache age & handle conditional request
-    // since the resource files are timestamped, we can use a long max age: 1 year
-    header('Cache-Control: public, max-age=31536000');
-    header('Pragma: public');
-    if($cache_ok){
-        http_conditionalRequest(filemtime($cache));
-        if($conf['allowdebug']) header("X-CacheUsed: $cache");
-
-        // finally send output
-        if ($conf['gzip_output'] && http_gzip_valid($cache)) {
-            header('Vary: Accept-Encoding');
-            header('Content-Encoding: gzip');
-            readfile($cache.".gz");
-        } else {
-            http_sendfile($cache);
-            readfile($cache);
-        }
-        exit;
-    }
-
-    http_conditionalRequest(time());
-}
-
-/**
- * Cache content and print it
- *
- * @param string $file file name
- * @param string $content
- */
-function http_cached_finish($file, $content) {
-    global $conf;
-
-    // save cache file
-    io_saveFile($file, $content);
-    if(DOKU_HAS_GZIP) io_saveFile("$file.gz",$content);
-
-    // finally send output
-    if ($conf['gzip_output'] && DOKU_HAS_GZIP) {
-        header('Vary: Accept-Encoding');
-        header('Content-Encoding: gzip');
-        print gzencode($content,9,FORCE_GZIP);
-    } else {
-        print $content;
-    }
-}
-
-/**
- * Fetches raw, unparsed POST data
- *
- * @return string
- */
-function http_get_raw_post_data() {
-    static $postData = null;
-    if ($postData === null) {
-        $postData = file_get_contents('php://input');
-    }
-    return $postData;
-}
-
-/**
- * Set the HTTP response status and takes care of the used PHP SAPI
- *
- * Inspired by CodeIgniter's set_status_header function
- *
- * @param int    $code
- * @param string $text
- */
-function http_status($code = 200, $text = '') {
-    static $stati = array(
-        200 => 'OK',
-        201 => 'Created',
-        202 => 'Accepted',
-        203 => 'Non-Authoritative Information',
-        204 => 'No Content',
-        205 => 'Reset Content',
-        206 => 'Partial Content',
-
-        300 => 'Multiple Choices',
-        301 => 'Moved Permanently',
-        302 => 'Found',
-        304 => 'Not Modified',
-        305 => 'Use Proxy',
-        307 => 'Temporary Redirect',
-
-        400 => 'Bad Request',
-        401 => 'Unauthorized',
-        403 => 'Forbidden',
-        404 => 'Not Found',
-        405 => 'Method Not Allowed',
-        406 => 'Not Acceptable',
-        407 => 'Proxy Authentication Required',
-        408 => 'Request Timeout',
-        409 => 'Conflict',
-        410 => 'Gone',
-        411 => 'Length Required',
-        412 => 'Precondition Failed',
-        413 => 'Request Entity Too Large',
-        414 => 'Request-URI Too Long',
-        415 => 'Unsupported Media Type',
-        416 => 'Requested Range Not Satisfiable',
-        417 => 'Expectation Failed',
-
-        500 => 'Internal Server Error',
-        501 => 'Not Implemented',
-        502 => 'Bad Gateway',
-        503 => 'Service Unavailable',
-        504 => 'Gateway Timeout',
-        505 => 'HTTP Version Not Supported'
-    );
-
-    if($text == '' && isset($stati[$code])) {
-        $text = $stati[$code];
-    }
-
-    $server_protocol = (isset($_SERVER['SERVER_PROTOCOL'])) ? $_SERVER['SERVER_PROTOCOL'] : false;
-
-    if(substr(php_sapi_name(), 0, 3) == 'cgi' || defined('SIMPLE_TEST')) {
-        header("Status: {$code} {$text}", true);
-    } elseif($server_protocol == 'HTTP/1.1' OR $server_protocol == 'HTTP/1.0') {
-        header($server_protocol." {$code} {$text}", true, $code);
-    } else {
-        header("HTTP/1.1 {$code} {$text}", true, $code);
-    }
-}
diff --git a/wiki/inc/indexer.php b/wiki/inc/indexer.php
deleted file mode 100644
index fac7a3f..0000000
--- a/wiki/inc/indexer.php
+++ /dev/null
@@ -1,1611 +0,0 @@
-<?php
-/**
- * Functions to create the fulltext search index
- *
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * @author     Andreas Gohr <andi@splitbrain.org>
- * @author     Tom N Harris <tnharris@whoopdedo.org>
- */
-
-if(!defined('DOKU_INC')) die('meh.');
-
-// Version tag used to force rebuild on upgrade
-define('INDEXER_VERSION', 8);
-
-// set the minimum token length to use in the index (note, this doesn't apply to numeric tokens)
-if (!defined('IDX_MINWORDLENGTH')) define('IDX_MINWORDLENGTH',2);
-
-// Asian characters are handled as words. The following regexp defines the
-// Unicode-Ranges for Asian characters
-// Ranges taken from http://en.wikipedia.org/wiki/Unicode_block
-// I'm no language expert. If you think some ranges are wrongly chosen or
-// a range is missing, please contact me
-define('IDX_ASIAN1','[\x{0E00}-\x{0E7F}]'); // Thai
-define('IDX_ASIAN2','['.
-                   '\x{2E80}-\x{3040}'.  // CJK -> Hangul
-                   '\x{309D}-\x{30A0}'.
-                   '\x{30FD}-\x{31EF}\x{3200}-\x{D7AF}'.
-                   '\x{F900}-\x{FAFF}'.  // CJK Compatibility Ideographs
-                   '\x{FE30}-\x{FE4F}'.  // CJK Compatibility Forms
-                   "\xF0\xA0\x80\x80-\xF0\xAA\x9B\x9F". // CJK Extension B
-                   "\xF0\xAA\x9C\x80-\xF0\xAB\x9C\xBF". // CJK Extension C
-                   "\xF0\xAB\x9D\x80-\xF0\xAB\xA0\x9F". // CJK Extension D
-                   "\xF0\xAF\xA0\x80-\xF0\xAF\xAB\xBF". // CJK Compatibility Supplement
-                   ']');
-define('IDX_ASIAN3','['.                // Hiragana/Katakana (can be two characters)
-                   '\x{3042}\x{3044}\x{3046}\x{3048}'.
-                   '\x{304A}-\x{3062}\x{3064}-\x{3082}'.
-                   '\x{3084}\x{3086}\x{3088}-\x{308D}'.
-                   '\x{308F}-\x{3094}'.
-                   '\x{30A2}\x{30A4}\x{30A6}\x{30A8}'.
-                   '\x{30AA}-\x{30C2}\x{30C4}-\x{30E2}'.
-                   '\x{30E4}\x{30E6}\x{30E8}-\x{30ED}'.
-                   '\x{30EF}-\x{30F4}\x{30F7}-\x{30FA}'.
-                   ']['.
-                   '\x{3041}\x{3043}\x{3045}\x{3047}\x{3049}'.
-                   '\x{3063}\x{3083}\x{3085}\x{3087}\x{308E}\x{3095}-\x{309C}'.
-                   '\x{30A1}\x{30A3}\x{30A5}\x{30A7}\x{30A9}'.
-                   '\x{30C3}\x{30E3}\x{30E5}\x{30E7}\x{30EE}\x{30F5}\x{30F6}\x{30FB}\x{30FC}'.
-                   '\x{31F0}-\x{31FF}'.
-                   ']?');
-define('IDX_ASIAN', '(?:'.IDX_ASIAN1.'|'.IDX_ASIAN2.'|'.IDX_ASIAN3.')');
-
-/**
- * Version of the indexer taking into consideration the external tokenizer.
- * The indexer is only compatible with data written by the same version.
- *
- * @triggers INDEXER_VERSION_GET
- * Plugins that modify what gets indexed should hook this event and
- * add their version info to the event data like so:
- *     $data[$plugin_name] = $plugin_version;
- *
- * @author Tom N Harris <tnharris@whoopdedo.org>
- * @author Michael Hamann <michael@content-space.de>
- *
- * @return int|string
- */
-function idx_get_version(){
-    static $indexer_version = null;
-    if ($indexer_version == null) {
-        $version = INDEXER_VERSION;
-
-        // DokuWiki version is included for the convenience of plugins
-        $data = array('dokuwiki'=>$version);
-        trigger_event('INDEXER_VERSION_GET', $data, null, false);
-        unset($data['dokuwiki']); // this needs to be first
-        ksort($data);
-        foreach ($data as $plugin=>$vers)
-            $version .= '+'.$plugin.'='.$vers;
-        $indexer_version = $version;
-    }
-    return $indexer_version;
-}
-
-/**
- * Measure the length of a string.
- * Differs from strlen in handling of asian characters.
- *
- * @author Tom N Harris <tnharris@whoopdedo.org>
- *
- * @param string $w
- * @return int
- */
-function wordlen($w){
-    $l = strlen($w);
-    // If left alone, all chinese "words" will get put into w3.idx
-    // So the "length" of a "word" is faked
-    if(preg_match_all('/[\xE2-\xEF]/',$w,$leadbytes)) {
-        foreach($leadbytes[0] as $b)
-            $l += ord($b) - 0xE1;
-    }
-    return $l;
-}
-
-/**
- * Class that encapsulates operations on the indexer database.
- *
- * @author Tom N Harris <tnharris@whoopdedo.org>
- */
-class Doku_Indexer {
-    /**
-     * @var array $pidCache Cache for getPID()
-     */
-    protected $pidCache = array();
-
-    /**
-     * Adds the contents of a page to the fulltext index
-     *
-     * The added text replaces previous words for the same page.
-     * An empty value erases the page.
-     *
-     * @param string    $page   a page name
-     * @param string    $text   the body of the page
-     * @return string|boolean  the function completed successfully
-     *
-     * @author Tom N Harris <tnharris@whoopdedo.org>
-     * @author Andreas Gohr <andi@splitbrain.org>
-     */
-    public function addPageWords($page, $text) {
-        if (!$this->lock())
-            return "locked";
-
-        // load known documents
-        $pid = $this->getPIDNoLock($page);
-        if ($pid === false) {
-            $this->unlock();
-            return false;
-        }
-
-        $pagewords = array();
-        // get word usage in page
-        $words = $this->getPageWords($text);
-        if ($words === false) {
-            $this->unlock();
-            return false;
-        }
-
-        if (!empty($words)) {
-            foreach (array_keys($words) as $wlen) {
-                $index = $this->getIndex('i', $wlen);
-                foreach ($words[$wlen] as $wid => $freq) {
-                    $idx = ($wid<count($index)) ? $index[$wid] : '';
-                    $index[$wid] = $this->updateTuple($idx, $pid, $freq);
-                    $pagewords[] = "$wlen*$wid";
-                }
-                if (!$this->saveIndex('i', $wlen, $index)) {
-                    $this->unlock();
-                    return false;
-                }
-            }
-        }
-
-        // Remove obsolete index entries
-        $pageword_idx = $this->getIndexKey('pageword', '', $pid);
-        if ($pageword_idx !== '') {
-            $oldwords = explode(':',$pageword_idx);
-            $delwords = array_diff($oldwords, $pagewords);
-            $upwords = array();
-            foreach ($delwords as $word) {
-                if ($word != '') {
-                    list($wlen,$wid) = explode('*', $word);
-                    $wid = (int)$wid;
-                    $upwords[$wlen][] = $wid;
-                }
-            }
-            foreach ($upwords as $wlen => $widx) {
-                $index = $this->getIndex('i', $wlen);
-                foreach ($widx as $wid) {
-                    $index[$wid] = $this->updateTuple($index[$wid], $pid, 0);
-                }
-                $this->saveIndex('i', $wlen, $index);
-            }
-        }
-        // Save the reverse index
-        $pageword_idx = join(':', $pagewords);
-        if (!$this->saveIndexKey('pageword', '', $pid, $pageword_idx)) {
-            $this->unlock();
-            return false;
-        }
-
-        $this->unlock();
-        return true;
-    }
-
-    /**
-     * Split the words in a page and add them to the index.
-     *
-     * @param string    $text   content of the page
-     * @return array            list of word IDs and number of times used
-     *
-     * @author Andreas Gohr <andi@splitbrain.org>
-     * @author Christopher Smith <chris@jalakai.co.uk>
-     * @author Tom N Harris <tnharris@whoopdedo.org>
-     */
-    protected function getPageWords($text) {
-
-        $tokens = $this->tokenizer($text);
-        $tokens = array_count_values($tokens);  // count the frequency of each token
-
-        $words = array();
-        foreach ($tokens as $w=>$c) {
-            $l = wordlen($w);
-            if (isset($words[$l])){
-                $words[$l][$w] = $c + (isset($words[$l][$w]) ? $words[$l][$w] : 0);
-            }else{
-                $words[$l] = array($w => $c);
-            }
-        }
-
-        // arrive here with $words = array(wordlen => array(word => frequency))
-        $word_idx_modified = false;
-        $index = array();   //resulting index
-        foreach (array_keys($words) as $wlen) {
-            $word_idx = $this->getIndex('w', $wlen);
-            foreach ($words[$wlen] as $word => $freq) {
-                $word = (string)$word;
-                $wid = array_search($word, $word_idx, true);
-                if ($wid === false) {
-                    $wid = count($word_idx);
-                    $word_idx[] = $word;
-                    $word_idx_modified = true;
-                }
-                if (!isset($index[$wlen]))
-                    $index[$wlen] = array();
-                $index[$wlen][$wid] = $freq;
-            }
-            // save back the word index
-            if ($word_idx_modified && !$this->saveIndex('w', $wlen, $word_idx))
-                return false;
-        }
-
-        return $index;
-    }
-
-    /**
-     * Add/update keys to/of the metadata index.
-     *
-     * Adding new keys does not remove other keys for the page.
-     * An empty value will erase the key.
-     * The $key parameter can be an array to add multiple keys. $value will
-     * not be used if $key is an array.
-     *
-     * @param string    $page   a page name
-     * @param mixed     $key    a key string or array of key=>value pairs
-     * @param mixed     $value  the value or list of values
-     * @return boolean|string     the function completed successfully
-     *
-     * @author Tom N Harris <tnharris@whoopdedo.org>
-     * @author Michael Hamann <michael@content-space.de>
-     */
-    public function addMetaKeys($page, $key, $value=null) {
-        if (!is_array($key)) {
-            $key = array($key => $value);
-        } elseif (!is_null($value)) {
-            // $key is array, but $value is not null
-            trigger_error("array passed to addMetaKeys but value is not null", E_USER_WARNING);
-        }
-
-        if (!$this->lock())
-            return "locked";
-
-        // load known documents
-        $pid = $this->getPIDNoLock($page);
-        if ($pid === false) {
-            $this->unlock();
-            return false;
-        }
-
-        // Special handling for titles so the index file is simpler
-        if (array_key_exists('title', $key)) {
-            $value = $key['title'];
-            if (is_array($value)) {
-                $value = $value[0];
-            }
-            $this->saveIndexKey('title', '', $pid, $value);
-            unset($key['title']);
-        }
-
-        foreach ($key as $name => $values) {
-            $metaname = idx_cleanName($name);
-            $this->addIndexKey('metadata', '', $metaname);
-            $metaidx = $this->getIndex($metaname.'_i', '');
-            $metawords = $this->getIndex($metaname.'_w', '');
-            $addwords = false;
-
-            if (!is_array($values)) $values = array($values);
-
-            $val_idx = $this->getIndexKey($metaname.'_p', '', $pid);
-            if ($val_idx != '') {
-                $val_idx = explode(':', $val_idx);
-                // -1 means remove, 0 keep, 1 add
-                $val_idx = array_combine($val_idx, array_fill(0, count($val_idx), -1));
-            } else {
-                $val_idx = array();
-            }
-
-            foreach ($values as $val) {
-                $val = (string)$val;
-                if ($val !== "") {
-                    $id = array_search($val, $metawords, true);
-                    if ($id === false) {
-                        // didn't find $val, so we'll add it to the end of metawords and create a placeholder in metaidx
-                        $id = count($metawords);
-                        $metawords[$id] = $val;
-                        $metaidx[$id] = '';
-                        $addwords = true;
-                    }
-                    // test if value is already in the index
-                    if (isset($val_idx[$id]) && $val_idx[$id] <= 0){
-                        $val_idx[$id] = 0;
-                    } else { // else add it
-                        $val_idx[$id] = 1;
-                    }
-                }
-            }
-
-            if ($addwords) {
-                $this->saveIndex($metaname.'_w', '', $metawords);
-            }
-            $vals_changed = false;
-            foreach ($val_idx as $id => $action) {
-                if ($action == -1) {
-                    $metaidx[$id] = $this->updateTuple($metaidx[$id], $pid, 0);
-                    $vals_changed = true;
-                    unset($val_idx[$id]);
-                } elseif ($action == 1) {
-                    $metaidx[$id] = $this->updateTuple($metaidx[$id], $pid, 1);
-                    $vals_changed = true;
-                }
-            }
-
-            if ($vals_changed) {
-                $this->saveIndex($metaname.'_i', '', $metaidx);
-                $val_idx = implode(':', array_keys($val_idx));
-                $this->saveIndexKey($metaname.'_p', '', $pid, $val_idx);
-            }
-
-            unset($metaidx);
-            unset($metawords);
-        }
-
-        $this->unlock();
-        return true;
-    }
-
-    /**
-     * Rename a page in the search index without changing the indexed content. This function doesn't check if the
-     * old or new name exists in the filesystem. It returns an error if the old page isn't in the page list of the
-     * indexer and it deletes all previously indexed content of the new page.
-     *
-     * @param string $oldpage The old page name
-     * @param string $newpage The new page name
-     * @return string|bool If the page was successfully renamed, can be a message in the case of an error
-     */
-    public function renamePage($oldpage, $newpage) {
-        if (!$this->lock()) return 'locked';
-
-        $pages = $this->getPages();
-
-        $id = array_search($oldpage, $pages, true);
-        if ($id === false) {
-            $this->unlock();
-            return 'page is not in index';
-        }
-
-        $new_id = array_search($newpage, $pages, true);
-        if ($new_id !== false) {
-            // make sure the page is not in the index anymore
-            if ($this->deletePageNoLock($newpage) !== true) {
-                return false;
-            }
-
-            $pages[$new_id] = 'deleted:'.time().rand(0, 9999);
-        }
-
-        $pages[$id] = $newpage;
-
-        // update index
-        if (!$this->saveIndex('page', '', $pages)) {
-            $this->unlock();
-            return false;
-        }
-
-        // reset the pid cache
-        $this->pidCache = array();
-
-        $this->unlock();
-        return true;
-    }
-
-    /**
-     * Renames a meta value in the index. This doesn't change the meta value in the pages, it assumes that all pages
-     * will be updated.
-     *
-     * @param string $key       The metadata key of which a value shall be changed
-     * @param string $oldvalue  The old value that shall be renamed
-     * @param string $newvalue  The new value to which the old value shall be renamed, can exist (then values will be merged)
-     * @return bool|string      If renaming the value has been successful, false or error message on error.
-     */
-    public function renameMetaValue($key, $oldvalue, $newvalue) {
-        if (!$this->lock()) return 'locked';
-
-        // change the relation references index
-        $metavalues = $this->getIndex($key, '_w');
-        $oldid = array_search($oldvalue, $metavalues, true);
-        if ($oldid !== false) {
-            $newid = array_search($newvalue, $metavalues, true);
-            if ($newid !== false) {
-                // free memory
-                unset ($metavalues);
-
-                // okay, now we have two entries for the same value. we need to merge them.
-                $indexline = $this->getIndexKey($key.'_i', '', $oldid);
-                if ($indexline != '') {
-                    $newindexline = $this->getIndexKey($key.'_i', '', $newid);
-                    $pagekeys     = $this->getIndex($key.'_p', '');
-                    $parts = explode(':', $indexline);
-                    foreach ($parts as $part) {
-                        list($id, $count) = explode('*', $part);
-                        $newindexline =  $this->updateTuple($newindexline, $id, $count);
-
-                        $keyline = explode(':', $pagekeys[$id]);
-                        // remove old meta value
-                        $keyline = array_diff($keyline, array($oldid));
-                        // add new meta value when not already present
-                        if (!in_array($newid, $keyline)) {
-                            array_push($keyline, $newid);
-                        }
-                        $pagekeys[$id] = implode(':', $keyline);
-                    }
-                    $this->saveIndex($key.'_p', '', $pagekeys);
-                    unset($pagekeys);
-                    $this->saveIndexKey($key.'_i', '', $oldid, '');
-                    $this->saveIndexKey($key.'_i', '', $newid, $newindexline);
-                }
-            } else {
-                $metavalues[$oldid] = $newvalue;
-                if (!$this->saveIndex($key.'_w', '', $metavalues)) {
-                    $this->unlock();
-                    return false;
-                }
-            }
-        }
-
-        $this->unlock();
-        return true;
-    }
-
-    /**
-     * Remove a page from the index
-     *
-     * Erases entries in all known indexes.
-     *
-     * @param string    $page   a page name
-     * @return string|boolean  the function completed successfully
-     *
-     * @author Tom N Harris <tnharris@whoopdedo.org>
-     */
-    public function deletePage($page) {
-        if (!$this->lock())
-            return "locked";
-
-        $result = $this->deletePageNoLock($page);
-
-        $this->unlock();
-
-        return $result;
-    }
-
-    /**
-     * Remove a page from the index without locking the index, only use this function if the index is already locked
-     *
-     * Erases entries in all known indexes.
-     *
-     * @param string    $page   a page name
-     * @return boolean          the function completed successfully
-     *
-     * @author Tom N Harris <tnharris@whoopdedo.org>
-     */
-    protected function deletePageNoLock($page) {
-        // load known documents
-        $pid = $this->getPIDNoLock($page);
-        if ($pid === false) {
-            return false;
-        }
-
-        // Remove obsolete index entries
-        $pageword_idx = $this->getIndexKey('pageword', '', $pid);
-        if ($pageword_idx !== '') {
-            $delwords = explode(':',$pageword_idx);
-            $upwords = array();
-            foreach ($delwords as $word) {
-                if ($word != '') {
-                    list($wlen,$wid) = explode('*', $word);
-                    $wid = (int)$wid;
-                    $upwords[$wlen][] = $wid;
-                }
-            }
-            foreach ($upwords as $wlen => $widx) {
-                $index = $this->getIndex('i', $wlen);
-                foreach ($widx as $wid) {
-                    $index[$wid] = $this->updateTuple($index[$wid], $pid, 0);
-                }
-                $this->saveIndex('i', $wlen, $index);
-            }
-        }
-        // Save the reverse index
-        if (!$this->saveIndexKey('pageword', '', $pid, "")) {
-            return false;
-        }
-
-        $this->saveIndexKey('title', '', $pid, "");
-        $keyidx = $this->getIndex('metadata', '');
-        foreach ($keyidx as $metaname) {
-            $val_idx = explode(':', $this->getIndexKey($metaname.'_p', '', $pid));
-            $meta_idx = $this->getIndex($metaname.'_i', '');
-            foreach ($val_idx as $id) {
-                if ($id === '') continue;
-                $meta_idx[$id] = $this->updateTuple($meta_idx[$id], $pid, 0);
-            }
-            $this->saveIndex($metaname.'_i', '', $meta_idx);
-            $this->saveIndexKey($metaname.'_p', '', $pid, '');
-        }
-
-        return true;
-    }
-
-    /**
-     * Clear the whole index
-     *
-     * @return bool If the index has been cleared successfully
-     */
-    public function clear() {
-        global $conf;
-
-        if (!$this->lock()) return false;
-
-        @unlink($conf['indexdir'].'/page.idx');
-        @unlink($conf['indexdir'].'/title.idx');
-        @unlink($conf['indexdir'].'/pageword.idx');
-        @unlink($conf['indexdir'].'/metadata.idx');
-        $dir = @opendir($conf['indexdir']);
-        if($dir!==false){
-            while(($f = readdir($dir)) !== false){
-                if(substr($f,-4)=='.idx' &&
-                    (substr($f,0,1)=='i' || substr($f,0,1)=='w'
-                        || substr($f,-6)=='_w.idx' || substr($f,-6)=='_i.idx' || substr($f,-6)=='_p.idx'))
-                    @unlink($conf['indexdir']."/$f");
-            }
-        }
-        @unlink($conf['indexdir'].'/lengths.idx');
-
-        // clear the pid cache
-        $this->pidCache = array();
-
-        $this->unlock();
-        return true;
-    }
-
-    /**
-     * Split the text into words for fulltext search
-     *
-     * TODO: does this also need &$stopwords ?
-     *
-     * @triggers INDEXER_TEXT_PREPARE
-     * This event allows plugins to modify the text before it gets tokenized.
-     * Plugins intercepting this event should also intercept INDEX_VERSION_GET
-     *
-     * @param string    $text   plain text
-     * @param boolean   $wc     are wildcards allowed?
-     * @return array            list of words in the text
-     *
-     * @author Tom N Harris <tnharris@whoopdedo.org>
-     * @author Andreas Gohr <andi@splitbrain.org>
-     */
-    public function tokenizer($text, $wc=false) {
-        $wc = ($wc) ? '' : '\*';
-        $stopwords =& idx_get_stopwords();
-
-        // prepare the text to be tokenized
-        $evt = new Doku_Event('INDEXER_TEXT_PREPARE', $text);
-        if ($evt->advise_before(true)) {
-            if (preg_match('/[^0-9A-Za-z ]/u', $text)) {
-                // handle asian chars as single words (may fail on older PHP version)
-                $asia = @preg_replace('/('.IDX_ASIAN.')/u', ' \1 ', $text);
-                if (!is_null($asia)) $text = $asia; // recover from regexp falure
-            }
-        }
-        $evt->advise_after();
-        unset($evt);
-
-        $text = strtr($text,
-                       array(
-                           "\r" => ' ',
-                           "\n" => ' ',
-                           "\t" => ' ',
-                           "\xC2\xAD" => '', //soft-hyphen
-                       )
-                     );
-        if (preg_match('/[^0-9A-Za-z ]/u', $text))
-            $text = utf8_stripspecials($text, ' ', '\._\-:'.$wc);
-
-        $wordlist = explode(' ', $text);
-        foreach ($wordlist as $i => $word) {
-            $wordlist[$i] = (preg_match('/[^0-9A-Za-z]/u', $word)) ?
-                utf8_strtolower($word) : strtolower($word);
-        }
-
-        foreach ($wordlist as $i => $word) {
-            if ((!is_numeric($word) && strlen($word) < IDX_MINWORDLENGTH)
-              || array_search($word, $stopwords, true) !== false)
-                unset($wordlist[$i]);
-        }
-        return array_values($wordlist);
-    }
-
-    /**
-     * Get the numeric PID of a page
-     *
-     * @param string $page The page to get the PID for
-     * @return bool|int The page id on success, false on error
-     */
-    public function getPID($page) {
-        // return PID without locking when it is in the cache
-        if (isset($this->pidCache[$page])) return $this->pidCache[$page];
-
-        if (!$this->lock())
-            return false;
-
-        // load known documents
-        $pid = $this->getPIDNoLock($page);
-        if ($pid === false) {
-            $this->unlock();
-            return false;
-        }
-
-        $this->unlock();
-        return $pid;
-    }
-
-    /**
-     * Get the numeric PID of a page without locking the index.
-     * Only use this function when the index is already locked.
-     *
-     * @param string $page The page to get the PID for
-     * @return bool|int The page id on success, false on error
-     */
-    protected function getPIDNoLock($page) {
-        // avoid expensive addIndexKey operation for the most recently requested pages by using a cache
-        if (isset($this->pidCache[$page])) return $this->pidCache[$page];
-        $pid = $this->addIndexKey('page', '', $page);
-        // limit cache to 10 entries by discarding the oldest element as in DokuWiki usually only the most recently
-        // added item will be requested again
-        if (count($this->pidCache) > 10) array_shift($this->pidCache);
-        $this->pidCache[$page] = $pid;
-        return $pid;
-    }
-
-    /**
-     * Get the page id of a numeric PID
-     *
-     * @param int $pid The PID to get the page id for
-     * @return string The page id
-     */
-    public function getPageFromPID($pid) {
-        return $this->getIndexKey('page', '', $pid);
-    }
-
-    /**
-     * Find pages in the fulltext index containing the words,
-     *
-     * The search words must be pre-tokenized, meaning only letters and
-     * numbers with an optional wildcard
-     *
-     * The returned array will have the original tokens as key. The values
-     * in the returned list is an array with the page names as keys and the
-     * number of times that token appears on the page as value.
-     *
-     * @param array  $tokens list of words to search for
-     * @return array         list of page names with usage counts
-     *
-     * @author Tom N Harris <tnharris@whoopdedo.org>
-     * @author Andreas Gohr <andi@splitbrain.org>
-     */
-    public function lookup(&$tokens) {
-        $result = array();
-        $wids = $this->getIndexWords($tokens, $result);
-        if (empty($wids)) return array();
-        // load known words and documents
-        $page_idx = $this->getIndex('page', '');
-        $docs = array();
-        foreach (array_keys($wids) as $wlen) {
-            $wids[$wlen] = array_unique($wids[$wlen]);
-            $index = $this->getIndex('i', $wlen);
-            foreach($wids[$wlen] as $ixid) {
-                if ($ixid < count($index))
-                    $docs["$wlen*$ixid"] = $this->parseTuples($page_idx, $index[$ixid]);
-            }
-        }
-        // merge found pages into final result array
-        $final = array();
-        foreach ($result as $word => $res) {
-            $final[$word] = array();
-            foreach ($res as $wid) {
-                // handle the case when ($ixid < count($index)) has been false
-                // and thus $docs[$wid] hasn't been set.
-                if (!isset($docs[$wid])) continue;
-                $hits = &$docs[$wid];
-                foreach ($hits as $hitkey => $hitcnt) {
-                    // make sure the document still exists
-                    if (!page_exists($hitkey, '', false)) continue;
-                    if (!isset($final[$word][$hitkey]))
-                        $final[$word][$hitkey] = $hitcnt;
-                    else
-                        $final[$word][$hitkey] += $hitcnt;
-                }
-            }
-        }
-        return $final;
-    }
-
-    /**
-     * Find pages containing a metadata key.
-     *
-     * The metadata values are compared as case-sensitive strings. Pass a
-     * callback function that returns true or false to use a different
-     * comparison function. The function will be called with the $value being
-     * searched for as the first argument, and the word in the index as the
-     * second argument. The function preg_match can be used directly if the
-     * values are regexes.
-     *
-     * @param string    $key    name of the metadata key to look for
-     * @param string    $value  search term to look for, must be a string or array of strings
-     * @param callback  $func   comparison function
-     * @return array            lists with page names, keys are query values if $value is array
-     *
-     * @author Tom N Harris <tnharris@whoopdedo.org>
-     * @author Michael Hamann <michael@content-space.de>
-     */
-    public function lookupKey($key, &$value, $func=null) {
-        if (!is_array($value))
-            $value_array = array($value);
-        else
-            $value_array =& $value;
-
-        // the matching ids for the provided value(s)
-        $value_ids = array();
-
-        $metaname = idx_cleanName($key);
-
-        // get all words in order to search the matching ids
-        if ($key == 'title') {
-            $words = $this->getIndex('title', '');
-        } else {
-            $words = $this->getIndex($metaname.'_w', '');
-        }
-
-        if (!is_null($func)) {
-            foreach ($value_array as $val) {
-                foreach ($words as $i => $word) {
-                    if (call_user_func_array($func, array($val, $word)))
-                        $value_ids[$i][] = $val;
-                }
-            }
-        } else {
-            foreach ($value_array as $val) {
-                $xval = $val;
-                $caret = '^';
-                $dollar = '$';
-                // check for wildcards
-                if (substr($xval, 0, 1) == '*') {
-                    $xval = substr($xval, 1);
-                    $caret = '';
-                }
-                if (substr($xval, -1, 1) == '*') {
-                    $xval = substr($xval, 0, -1);
-                    $dollar = '';
-                }
-                if (!$caret || !$dollar) {
-                    $re = $caret.preg_quote($xval, '/').$dollar;
-                    foreach(array_keys(preg_grep('/'.$re.'/', $words)) as $i)
-                        $value_ids[$i][] = $val;
-                } else {
-                    if (($i = array_search($val, $words, true)) !== false)
-                        $value_ids[$i][] = $val;
-                }
-            }
-        }
-
-        unset($words); // free the used memory
-
-        // initialize the result so it won't be null
-        $result = array();
-        foreach ($value_array as $val) {
-            $result[$val] = array();
-        }
-
-        $page_idx = $this->getIndex('page', '');
-
-        // Special handling for titles
-        if ($key == 'title') {
-            foreach ($value_ids as $pid => $val_list) {
-                $page = $page_idx[$pid];
-                foreach ($val_list as $val) {
-                    $result[$val][] = $page;
-                }
-            }
-        } else {
-            // load all lines and pages so the used lines can be taken and matched with the pages
-            $lines = $this->getIndex($metaname.'_i', '');
-
-            foreach ($value_ids as $value_id => $val_list) {
-                // parse the tuples of the form page_id*1:page2_id*1 and so on, return value
-                // is an array with page_id => 1, page2_id => 1 etc. so take the keys only
-                $pages = array_keys($this->parseTuples($page_idx, $lines[$value_id]));
-                foreach ($val_list as $val) {
-                    $result[$val] = array_merge($result[$val], $pages);
-                }
-            }
-        }
-        if (!is_array($value)) $result = $result[$value];
-        return $result;
-    }
-
-    /**
-     * Find the index ID of each search term.
-     *
-     * The query terms should only contain valid characters, with a '*' at
-     * either the beginning or end of the word (or both).
-     * The $result parameter can be used to merge the index locations with
-     * the appropriate query term.
-     *
-     * @param array  $words  The query terms.
-     * @param array  $result Set to word => array("length*id" ...)
-     * @return array         Set to length => array(id ...)
-     *
-     * @author Tom N Harris <tnharris@whoopdedo.org>
-     */
-    protected function getIndexWords(&$words, &$result) {
-        $tokens = array();
-        $tokenlength = array();
-        $tokenwild = array();
-        foreach ($words as $word) {
-            $result[$word] = array();
-            $caret = '^';
-            $dollar = '$';
-            $xword = $word;
-            $wlen = wordlen($word);
-
-            // check for wildcards
-            if (substr($xword, 0, 1) == '*') {
-                $xword = substr($xword, 1);
-                $caret = '';
-                $wlen -= 1;
-            }
-            if (substr($xword, -1, 1) == '*') {
-                $xword = substr($xword, 0, -1);
-                $dollar = '';
-                $wlen -= 1;
-            }
-            if ($wlen < IDX_MINWORDLENGTH && $caret && $dollar && !is_numeric($xword))
-                continue;
-            if (!isset($tokens[$xword]))
-                $tokenlength[$wlen][] = $xword;
-            if (!$caret || !$dollar) {
-                $re = $caret.preg_quote($xword, '/').$dollar;
-                $tokens[$xword][] = array($word, '/'.$re.'/');
-                if (!isset($tokenwild[$xword]))
-                    $tokenwild[$xword] = $wlen;
-            } else {
-                $tokens[$xword][] = array($word, null);
-            }
-        }
-        asort($tokenwild);
-        // $tokens = array( base word => array( [ query term , regexp ] ... ) ... )
-        // $tokenlength = array( base word length => base word ... )
-        // $tokenwild = array( base word => base word length ... )
-        $length_filter = empty($tokenwild) ? $tokenlength : min(array_keys($tokenlength));
-        $indexes_known = $this->indexLengths($length_filter);
-        if (!empty($tokenwild)) sort($indexes_known);
-        // get word IDs
-        $wids = array();
-        foreach ($indexes_known as $ixlen) {
-            $word_idx = $this->getIndex('w', $ixlen);
-            // handle exact search
-            if (isset($tokenlength[$ixlen])) {
-                foreach ($tokenlength[$ixlen] as $xword) {
-                    $wid = array_search($xword, $word_idx, true);
-                    if ($wid !== false) {
-                        $wids[$ixlen][] = $wid;
-                        foreach ($tokens[$xword] as $w)
-                            $result[$w[0]][] = "$ixlen*$wid";
-                    }
-                }
-            }
-            // handle wildcard search
-            foreach ($tokenwild as $xword => $wlen) {
-                if ($wlen >= $ixlen) break;
-                foreach ($tokens[$xword] as $w) {
-                    if (is_null($w[1])) continue;
-                    foreach(array_keys(preg_grep($w[1], $word_idx)) as $wid) {
-                        $wids[$ixlen][] = $wid;
-                        $result[$w[0]][] = "$ixlen*$wid";
-                    }
-                }
-            }
-        }
-        return $wids;
-    }
-
-    /**
-     * Return a list of all pages
-     * Warning: pages may not exist!
-     *
-     * @param string    $key    list only pages containing the metadata key (optional)
-     * @return array            list of page names
-     *
-     * @author Tom N Harris <tnharris@whoopdedo.org>
-     */
-    public function getPages($key=null) {
-        $page_idx = $this->getIndex('page', '');
-        if (is_null($key)) return $page_idx;
-
-        $metaname = idx_cleanName($key);
-
-        // Special handling for titles
-        if ($key == 'title') {
-            $title_idx = $this->getIndex('title', '');
-            array_splice($page_idx, count($title_idx));
-            foreach ($title_idx as $i => $title)
-                if ($title === "") unset($page_idx[$i]);
-            return array_values($page_idx);
-        }
-
-        $pages = array();
-        $lines = $this->getIndex($metaname.'_i', '');
-        foreach ($lines as $line) {
-            $pages = array_merge($pages, $this->parseTuples($page_idx, $line));
-        }
-        return array_keys($pages);
-    }
-
-    /**
-     * Return a list of words sorted by number of times used
-     *
-     * @param int       $min    bottom frequency threshold
-     * @param int       $max    upper frequency limit. No limit if $max<$min
-     * @param int       $minlen minimum length of words to count
-     * @param string    $key    metadata key to list. Uses the fulltext index if not given
-     * @return array            list of words as the keys and frequency as values
-     *
-     * @author Tom N Harris <tnharris@whoopdedo.org>
-     */
-    public function histogram($min=1, $max=0, $minlen=3, $key=null) {
-        if ($min < 1)
-            $min = 1;
-        if ($max < $min)
-            $max = 0;
-
-        $result = array();
-
-        if ($key == 'title') {
-            $index = $this->getIndex('title', '');
-            $index = array_count_values($index);
-            foreach ($index as $val => $cnt) {
-                if ($cnt >= $min && (!$max || $cnt <= $max) && strlen($val) >= $minlen)
-                    $result[$val] = $cnt;
-            }
-        }
-        elseif (!is_null($key)) {
-            $metaname = idx_cleanName($key);
-            $index = $this->getIndex($metaname.'_i', '');
-            $val_idx = array();
-            foreach ($index as $wid => $line) {
-                $freq = $this->countTuples($line);
-                if ($freq >= $min && (!$max || $freq <= $max))
-                    $val_idx[$wid] = $freq;
-            }
-            if (!empty($val_idx)) {
-                $words = $this->getIndex($metaname.'_w', '');
-                foreach ($val_idx as $wid => $freq) {
-                    if (strlen($words[$wid]) >= $minlen)
-                        $result[$words[$wid]] = $freq;
-                }
-            }
-        }
-        else {
-            $lengths = idx_listIndexLengths();
-            foreach ($lengths as $length) {
-                if ($length < $minlen) continue;
-                $index = $this->getIndex('i', $length);
-                $words = null;
-                foreach ($index as $wid => $line) {
-                    $freq = $this->countTuples($line);
-                    if ($freq >= $min && (!$max || $freq <= $max)) {
-                        if ($words === null)
-                            $words = $this->getIndex('w', $length);
-                        $result[$words[$wid]] = $freq;
-                    }
-                }
-            }
-        }
-
-        arsort($result);
-        return $result;
-    }
-
-    /**
-     * Lock the indexer.
-     *
-     * @author Tom N Harris <tnharris@whoopdedo.org>
-     *
-     * @return bool|string
-     */
-    protected function lock() {
-        global $conf;
-        $status = true;
-        $run = 0;
-        $lock = $conf['lockdir'].'/_indexer.lock';
-        while (!@mkdir($lock, $conf['dmode'])) {
-            usleep(50);
-            if(is_dir($lock) && time()-@filemtime($lock) > 60*5){
-                // looks like a stale lock - remove it
-                if (!@rmdir($lock)) {
-                    $status = "removing the stale lock failed";
-                    return false;
-                } else {
-                    $status = "stale lock removed";
-                }
-            }elseif($run++ == 1000){
-                // we waited 5 seconds for that lock
-                return false;
-            }
-        }
-        if (!empty($conf['dperm'])) {
-            chmod($lock, $conf['dperm']);
-        }
-        return $status;
-    }
-
-    /**
-     * Release the indexer lock.
-     *
-     * @author Tom N Harris <tnharris@whoopdedo.org>
-     *
-     * @return bool
-     */
-    protected function unlock() {
-        global $conf;
-        @rmdir($conf['lockdir'].'/_indexer.lock');
-        return true;
-    }
-
-    /**
-     * Retrieve the entire index.
-     *
-     * The $suffix argument is for an index that is split into
-     * multiple parts. Different index files should use different
-     * base names.
-     *
-     * @param string    $idx    name of the index
-     * @param string    $suffix subpart identifier
-     * @return array            list of lines without CR or LF
-     *
-     * @author Tom N Harris <tnharris@whoopdedo.org>
-     */
-    protected function getIndex($idx, $suffix) {
-        global $conf;
-        $fn = $conf['indexdir'].'/'.$idx.$suffix.'.idx';
-        if (!file_exists($fn)) return array();
-        return file($fn, FILE_IGNORE_NEW_LINES);
-    }
-
-    /**
-     * Replace the contents of the index with an array.
-     *
-     * @param string    $idx    name of the index
-     * @param string    $suffix subpart identifier
-     * @param array     $lines  list of lines without LF
-     * @return bool             If saving succeeded
-     *
-     * @author Tom N Harris <tnharris@whoopdedo.org>
-     */
-    protected function saveIndex($idx, $suffix, &$lines) {
-        global $conf;
-        $fn = $conf['indexdir'].'/'.$idx.$suffix;
-        $fh = @fopen($fn.'.tmp', 'w');
-        if (!$fh) return false;
-        fwrite($fh, join("\n", $lines));
-        if (!empty($lines))
-            fwrite($fh, "\n");
-        fclose($fh);
-        if (isset($conf['fperm']))
-            chmod($fn.'.tmp', $conf['fperm']);
-        io_rename($fn.'.tmp', $fn.'.idx');
-        return true;
-    }
-
-    /**
-     * Retrieve a line from the index.
-     *
-     * @param string    $idx    name of the index
-     * @param string    $suffix subpart identifier
-     * @param int       $id     the line number
-     * @return string           a line with trailing whitespace removed
-     *
-     * @author Tom N Harris <tnharris@whoopdedo.org>
-     */
-    protected function getIndexKey($idx, $suffix, $id) {
-        global $conf;
-        $fn = $conf['indexdir'].'/'.$idx.$suffix.'.idx';
-        if (!file_exists($fn)) return '';
-        $fh = @fopen($fn, 'r');
-        if (!$fh) return '';
-        $ln = -1;
-        while (($line = fgets($fh)) !== false) {
-            if (++$ln == $id) break;
-        }
-        fclose($fh);
-        return rtrim((string)$line);
-    }
-
-    /**
-     * Write a line into the index.
-     *
-     * @param string    $idx    name of the index
-     * @param string    $suffix subpart identifier
-     * @param int       $id     the line number
-     * @param string    $line   line to write
-     * @return bool             If saving succeeded
-     *
-     * @author Tom N Harris <tnharris@whoopdedo.org>
-     */
-    protected function saveIndexKey($idx, $suffix, $id, $line) {
-        global $conf;
-        if (substr($line, -1) != "\n")
-            $line .= "\n";
-        $fn = $conf['indexdir'].'/'.$idx.$suffix;
-        $fh = @fopen($fn.'.tmp', 'w');
-        if (!$fh) return false;
-        $ih = @fopen($fn.'.idx', 'r');
-        if ($ih) {
-            $ln = -1;
-            while (($curline = fgets($ih)) !== false) {
-                fwrite($fh, (++$ln == $id) ? $line : $curline);
-            }
-            if ($id > $ln) {
-                while ($id > ++$ln)
-                    fwrite($fh, "\n");
-                fwrite($fh, $line);
-            }
-            fclose($ih);
-        } else {
-            $ln = -1;
-            while ($id > ++$ln)
-                fwrite($fh, "\n");
-            fwrite($fh, $line);
-        }
-        fclose($fh);
-        if (isset($conf['fperm']))
-            chmod($fn.'.tmp', $conf['fperm']);
-        io_rename($fn.'.tmp', $fn.'.idx');
-        return true;
-    }
-
-    /**
-     * Retrieve or insert a value in the index.
-     *
-     * @param string    $idx    name of the index
-     * @param string    $suffix subpart identifier
-     * @param string    $value  line to find in the index
-     * @return int|bool          line number of the value in the index or false if writing the index failed
-     *
-     * @author Tom N Harris <tnharris@whoopdedo.org>
-     */
-    protected function addIndexKey($idx, $suffix, $value) {
-        $index = $this->getIndex($idx, $suffix);
-        $id = array_search($value, $index, true);
-        if ($id === false) {
-            $id = count($index);
-            $index[$id] = $value;
-            if (!$this->saveIndex($idx, $suffix, $index)) {
-                trigger_error("Failed to write $idx index", E_USER_ERROR);
-                return false;
-            }
-        }
-        return $id;
-    }
-
-    /**
-     * Get the list of lengths indexed in the wiki.
-     *
-     * Read the index directory or a cache file and returns
-     * a sorted array of lengths of the words used in the wiki.
-     *
-     * @author YoBoY <yoboy.leguesh@gmail.com>
-     *
-     * @return array
-     */
-    protected function listIndexLengths() {
-        return idx_listIndexLengths();
-    }
-
-    /**
-     * Get the word lengths that have been indexed.
-     *
-     * Reads the index directory and returns an array of lengths
-     * that there are indices for.
-     *
-     * @author YoBoY <yoboy.leguesh@gmail.com>
-     *
-     * @param array|int $filter
-     * @return array
-     */
-    protected function indexLengths($filter) {
-        global $conf;
-        $idx = array();
-        if (is_array($filter)) {
-            // testing if index files exist only
-            $path = $conf['indexdir']."/i";
-            foreach ($filter as $key => $value) {
-                if (file_exists($path.$key.'.idx'))
-                    $idx[] = $key;
-            }
-        } else {
-            $lengths = idx_listIndexLengths();
-            foreach ($lengths as $key => $length) {
-                // keep all the values equal or superior
-                if ((int)$length >= (int)$filter)
-                    $idx[] = $length;
-            }
-        }
-        return $idx;
-    }
-
-    /**
-     * Insert or replace a tuple in a line.
-     *
-     * @author Tom N Harris <tnharris@whoopdedo.org>
-     *
-     * @param string $line
-     * @param string|int $id
-     * @param int    $count
-     * @return string
-     */
-    protected function updateTuple($line, $id, $count) {
-        if ($line != ''){
-            $line = preg_replace('/(^|:)'.preg_quote($id,'/').'\*\d*/', '', $line);
-        }
-        $line = trim($line, ':');
-        if ($count) {
-            if ($line) {
-                return "$id*$count:".$line;
-            } else {
-                return "$id*$count";
-            }
-        }
-        return $line;
-    }
-
-    /**
-     * Split a line into an array of tuples.
-     *
-     * @author Tom N Harris <tnharris@whoopdedo.org>
-     * @author Andreas Gohr <andi@splitbrain.org>
-     *
-     * @param array $keys
-     * @param string $line
-     * @return array
-     */
-    protected function parseTuples(&$keys, $line) {
-        $result = array();
-        if ($line == '') return $result;
-        $parts = explode(':', $line);
-        foreach ($parts as $tuple) {
-            if ($tuple === '') continue;
-            list($key, $cnt) = explode('*', $tuple);
-            if (!$cnt) continue;
-            $key = $keys[$key];
-            if (!$key) continue;
-            $result[$key] = $cnt;
-        }
-        return $result;
-    }
-
-    /**
-     * Sum the counts in a list of tuples.
-     *
-     * @author Tom N Harris <tnharris@whoopdedo.org>
-     *
-     * @param string $line
-     * @return int
-     */
-    protected function countTuples($line) {
-        $freq = 0;
-        $parts = explode(':', $line);
-        foreach ($parts as $tuple) {
-            if ($tuple === '') continue;
-            list(/* $pid */, $cnt) = explode('*', $tuple);
-            $freq += (int)$cnt;
-        }
-        return $freq;
-    }
-}
-
-/**
- * Create an instance of the indexer.
- *
- * @return Doku_Indexer    a Doku_Indexer
- *
- * @author Tom N Harris <tnharris@whoopdedo.org>
- */
-function idx_get_indexer() {
-    static $Indexer;
-    if (!isset($Indexer)) {
-        $Indexer = new Doku_Indexer();
-    }
-    return $Indexer;
-}
-
-/**
- * Returns words that will be ignored.
- *
- * @return array                list of stop words
- *
- * @author Tom N Harris <tnharris@whoopdedo.org>
- */
-function & idx_get_stopwords() {
-    static $stopwords = null;
-    if (is_null($stopwords)) {
-        global $conf;
-        $swfile = DOKU_INC.'inc/lang/'.$conf['lang'].'/stopwords.txt';
-        if(file_exists($swfile)){
-            $stopwords = file($swfile, FILE_IGNORE_NEW_LINES);
-        }else{
-            $stopwords = array();
-        }
-    }
-    return $stopwords;
-}
-
-/**
- * Adds/updates the search index for the given page
- *
- * Locking is handled internally.
- *
- * @param string        $page   name of the page to index
- * @param boolean       $verbose    print status messages
- * @param boolean       $force  force reindexing even when the index is up to date
- * @return string|boolean  the function completed successfully
- *
- * @author Tom N Harris <tnharris@whoopdedo.org>
- */
-function idx_addPage($page, $verbose=false, $force=false) {
-    $idxtag = metaFN($page,'.indexed');
-    // check if page was deleted but is still in the index
-    if (!page_exists($page)) {
-        if (!file_exists($idxtag)) {
-            if ($verbose) print("Indexer: $page does not exist, ignoring".DOKU_LF);
-            return false;
-        }
-        $Indexer = idx_get_indexer();
-        $result = $Indexer->deletePage($page);
-        if ($result === "locked") {
-            if ($verbose) print("Indexer: locked".DOKU_LF);
-            return false;
-        }
-        @unlink($idxtag);
-        return $result;
-    }
-
-    // check if indexing needed
-    if(!$force && file_exists($idxtag)){
-        if(trim(io_readFile($idxtag)) == idx_get_version()){
-            $last = @filemtime($idxtag);
-            if($last > @filemtime(wikiFN($page))){
-                if ($verbose) print("Indexer: index for $page up to date".DOKU_LF);
-                return false;
-            }
-        }
-    }
-
-    $indexenabled = p_get_metadata($page, 'internal index', METADATA_RENDER_UNLIMITED);
-    if ($indexenabled === false) {
-        $result = false;
-        if (file_exists($idxtag)) {
-            $Indexer = idx_get_indexer();
-            $result = $Indexer->deletePage($page);
-            if ($result === "locked") {
-                if ($verbose) print("Indexer: locked".DOKU_LF);
-                return false;
-            }
-            @unlink($idxtag);
-        }
-        if ($verbose) print("Indexer: index disabled for $page".DOKU_LF);
-        return $result;
-    }
-
-    $Indexer = idx_get_indexer();
-    $pid = $Indexer->getPID($page);
-    if ($pid === false) {
-        if ($verbose) print("Indexer: getting the PID failed for $page".DOKU_LF);
-        return false;
-    }
-    $body = '';
-    $metadata = array();
-    $metadata['title'] = p_get_metadata($page, 'title', METADATA_RENDER_UNLIMITED);
-    if (($references = p_get_metadata($page, 'relation references', METADATA_RENDER_UNLIMITED)) !== null)
-        $metadata['relation_references'] = array_keys($references);
-    else
-        $metadata['relation_references'] = array();
-
-    if (($media = p_get_metadata($page, 'relation media', METADATA_RENDER_UNLIMITED)) !== null)
-        $metadata['relation_media'] = array_keys($media);
-    else
-        $metadata['relation_media'] = array();
-
-    $data = compact('page', 'body', 'metadata', 'pid');
-    $evt = new Doku_Event('INDEXER_PAGE_ADD', $data);
-    if ($evt->advise_before()) $data['body'] = $data['body'] . " " . rawWiki($page);
-    $evt->advise_after();
-    unset($evt);
-    extract($data);
-
-    $result = $Indexer->addPageWords($page, $body);
-    if ($result === "locked") {
-        if ($verbose) print("Indexer: locked".DOKU_LF);
-        return false;
-    }
-
-    if ($result) {
-        $result = $Indexer->addMetaKeys($page, $metadata);
-        if ($result === "locked") {
-            if ($verbose) print("Indexer: locked".DOKU_LF);
-            return false;
-        }
-    }
-
-    if ($result)
-        io_saveFile(metaFN($page,'.indexed'), idx_get_version());
-    if ($verbose) {
-        print("Indexer: finished".DOKU_LF);
-        return true;
-    }
-    return $result;
-}
-
-/**
- * Find tokens in the fulltext index
- *
- * Takes an array of words and will return a list of matching
- * pages for each one.
- *
- * Important: No ACL checking is done here! All results are
- *            returned, regardless of permissions
- *
- * @param array      $words  list of words to search for
- * @return array             list of pages found, associated with the search terms
- */
-function idx_lookup(&$words) {
-    $Indexer = idx_get_indexer();
-    return $Indexer->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();
-    return $Indexer->tokenizer($string, $wc);
-}
-
-/* For compatibility */
-
-/**
- * Read the list of words in an index (if it exists).
- *
- * @author Tom N Harris <tnharris@whoopdedo.org>
- *
- * @param string $idx
- * @param string $suffix
- * @return array
- */
-function idx_getIndex($idx, $suffix) {
-    global $conf;
-    $fn = $conf['indexdir'].'/'.$idx.$suffix.'.idx';
-    if (!file_exists($fn)) return array();
-    return file($fn);
-}
-
-/**
- * Get the list of lengths indexed in the wiki.
- *
- * Read the index directory or a cache file and returns
- * a sorted array of lengths of the words used in the wiki.
- *
- * @author YoBoY <yoboy.leguesh@gmail.com>
- *
- * @return array
- */
-function idx_listIndexLengths() {
-    global $conf;
-    // testing what we have to do, create a cache file or not.
-    if ($conf['readdircache'] == 0) {
-        $docache = false;
-    } else {
-        clearstatcache();
-        if (file_exists($conf['indexdir'].'/lengths.idx')
-        && (time() < @filemtime($conf['indexdir'].'/lengths.idx') + $conf['readdircache'])) {
-            if (($lengths = @file($conf['indexdir'].'/lengths.idx', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES)) !== false) {
-                $idx = array();
-                foreach ($lengths as $length) {
-                    $idx[] = (int)$length;
-                }
-                return $idx;
-            }
-        }
-        $docache = true;
-    }
-
-    if ($conf['readdircache'] == 0 || $docache) {
-        $dir = @opendir($conf['indexdir']);
-        if ($dir === false)
-            return array();
-        $idx = array();
-        while (($f = readdir($dir)) !== false) {
-            if (substr($f, 0, 1) == 'i' && substr($f, -4) == '.idx') {
-                $i = substr($f, 1, -4);
-                if (is_numeric($i))
-                    $idx[] = (int)$i;
-            }
-        }
-        closedir($dir);
-        sort($idx);
-        // save this in a file
-        if ($docache) {
-            $handle = @fopen($conf['indexdir'].'/lengths.idx', 'w');
-            @fwrite($handle, implode("\n", $idx));
-            @fclose($handle);
-        }
-        return $idx;
-    }
-
-    return array();
-}
-
-/**
- * Get the word lengths that have been indexed.
- *
- * Reads the index directory and returns an array of lengths
- * that there are indices for.
- *
- * @author YoBoY <yoboy.leguesh@gmail.com>
- *
- * @param array|int $filter
- * @return array
- */
-function idx_indexLengths($filter) {
-    global $conf;
-    $idx = array();
-    if (is_array($filter)) {
-        // testing if index files exist only
-        $path = $conf['indexdir']."/i";
-        foreach ($filter as $key => $value) {
-            if (file_exists($path.$key.'.idx'))
-                $idx[] = $key;
-        }
-    } else {
-        $lengths = idx_listIndexLengths();
-        foreach ($lengths as $key => $length) {
-            // keep all the values equal or superior
-            if ((int)$length >= (int)$filter)
-                $idx[] = $length;
-        }
-    }
-    return $idx;
-}
-
-/**
- * Clean a name of a key for use as a file name.
- *
- * Romanizes non-latin characters, then strips away anything that's
- * not a letter, number, or underscore.
- *
- * @author Tom N Harris <tnharris@whoopdedo.org>
- *
- * @param string $name
- * @return string
- */
-function idx_cleanName($name) {
-    $name = utf8_romanize(trim((string)$name));
-    $name = preg_replace('#[ \./\\:-]+#', '_', $name);
-    $name = preg_replace('/[^A-Za-z0-9_]/', '', $name);
-    return strtolower($name);
-}
-
-//Setup VIM: ex: et ts=4 :
diff --git a/wiki/inc/infoutils.php b/wiki/inc/infoutils.php
deleted file mode 100644
index 57f89e5..0000000
--- a/wiki/inc/infoutils.php
+++ /dev/null
@@ -1,530 +0,0 @@
-<?php
-/**
- * Information and debugging functions
- *
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * @author     Andreas Gohr <andi@splitbrain.org>
- */
-if(!defined('DOKU_INC')) die('meh.');
-
-if(!defined('DOKU_MESSAGEURL')){
-    if(in_array('ssl', stream_get_transports())) {
-        define('DOKU_MESSAGEURL','https://update.dokuwiki.org/check/');
-    }else{
-        define('DOKU_MESSAGEURL','http://update.dokuwiki.org/check/');
-    }
-}
-
-/**
- * Check for new messages from upstream
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- */
-function checkUpdateMessages(){
-    global $conf;
-    global $INFO;
-    global $updateVersion;
-    if(!$conf['updatecheck']) return;
-    if($conf['useacl'] && !$INFO['ismanager']) return;
-
-    $cf = getCacheName($updateVersion, '.updmsg');
-    $lm = @filemtime($cf);
-    $is_http = substr(DOKU_MESSAGEURL, 0, 5) != 'https';
-
-    // check if new messages needs to be fetched
-    if($lm < time()-(60*60*24) || $lm < @filemtime(DOKU_INC.DOKU_SCRIPT)){
-        @touch($cf);
-        dbglog("checkUpdateMessages(): downloading messages to ".$cf.($is_http?' (without SSL)':' (with SSL)'));
-        $http = new DokuHTTPClient();
-        $http->timeout = 12;
-        $resp = $http->get(DOKU_MESSAGEURL.$updateVersion);
-        if(is_string($resp) && ($resp == "" || substr(trim($resp), -1) == '%')) {
-            // basic sanity check that this is either an empty string response (ie "no messages")
-            // or it looks like one of our messages, not WiFi login or other interposed response
-            io_saveFile($cf,$resp);
-        } else {
-            dbglog("checkUpdateMessages(): unexpected HTTP response received");
-        }
-    }else{
-        dbglog("checkUpdateMessages(): messages up to date");
-    }
-
-    $data = io_readFile($cf);
-    // show messages through the usual message mechanism
-    $msgs = explode("\n%\n",$data);
-    foreach($msgs as $msg){
-        if($msg) msg($msg,2);
-    }
-}
-
-
-/**
- * Return DokuWiki's version (split up in date and type)
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- */
-function getVersionData(){
-    $version = array();
-    //import version string
-    if(file_exists(DOKU_INC.'VERSION')){
-        //official release
-        $version['date'] = trim(io_readFile(DOKU_INC.'VERSION'));
-        $version['type'] = 'Release';
-    }elseif(is_dir(DOKU_INC.'.git')){
-        $version['type'] = 'Git';
-        $version['date'] = 'unknown';
-
-        $inventory = DOKU_INC.'.git/logs/HEAD';
-        if(is_file($inventory)){
-            $sz   = filesize($inventory);
-            $seek = max(0,$sz-2000); // read from back of the file
-            $fh   = fopen($inventory,'rb');
-            fseek($fh,$seek);
-            $chunk = fread($fh,2000);
-            fclose($fh);
-            $chunk = trim($chunk);
-            $chunk = @array_pop(explode("\n",$chunk));   //last log line
-            $chunk = @array_shift(explode("\t",$chunk)); //strip commit msg
-            $chunk = explode(" ",$chunk);
-            array_pop($chunk); //strip timezone
-            $date = date('Y-m-d',array_pop($chunk));
-            if($date) $version['date'] = $date;
-        }
-    }else{
-        global $updateVersion;
-        $version['date'] = 'update version '.$updateVersion;
-        $version['type'] = 'snapshot?';
-    }
-    return $version;
-}
-
-/**
- * Return DokuWiki's version (as a string)
- *
- * @author Anika Henke <anika@selfthinker.org>
- */
-function getVersion(){
-    $version = getVersionData();
-    return $version['type'].' '.$version['date'];
-}
-
-/**
- * Run a few sanity checks
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- */
-function check(){
-    global $conf;
-    global $INFO;
-    /* @var Input $INPUT */
-    global $INPUT;
-
-    if ($INFO['isadmin'] || $INFO['ismanager']){
-        msg('DokuWiki version: '.getVersion(),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.6.0','<')){
-            msg('Your PHP version is too old',-1);
-        }
-    }
-
-    $mem = (int) php_to_byte(ini_get('memory_limit'));
-    if($mem){
-        if($mem < 16777216){
-            msg('PHP is limited to less than 16MB RAM ('.$mem.' bytes). Increase memory_limit in php.ini',-1);
-        }elseif($mem < 20971520){
-            msg('PHP is limited to less than 20MB RAM ('.$mem.' bytes), you might encounter problems with bigger pages. Increase memory_limit in php.ini',-1);
-        }elseif($mem < 33554432){
-            msg('PHP is limited to less than 32MB RAM ('.$mem.' bytes), but that should be enough in most cases. If not, increase memory_limit in php.ini',0);
-        }else{
-            msg('More than 32MB RAM ('.$mem.' bytes) available.',1);
-        }
-    }
-
-    if(is_writable($conf['changelog'])){
-        msg('Changelog is writable',1);
-    }else{
-        if (file_exists($conf['changelog'])) {
-            msg('Changelog is not writable',-1);
-        }
-    }
-
-    if (isset($conf['changelog_old']) && file_exists($conf['changelog_old'])) {
-        msg('Old changelog exists', 0);
-    }
-
-    if (file_exists($conf['changelog'].'_failed')) {
-        msg('Importing old changelog failed', -1);
-    } else if (file_exists($conf['changelog'].'_importing')) {
-        msg('Importing old changelog now.', 0);
-    } else if (file_exists($conf['changelog'].'_import_ok')) {
-        msg('Old changelog imported', 1);
-        if (!plugin_isdisabled('importoldchangelog')) {
-            msg('Importoldchangelog plugin not disabled after import', -1);
-        }
-    }
-
-    if(is_writable(DOKU_CONF)){
-        msg('conf directory is writable',1);
-    }else{
-        msg('conf directory is not writable',-1);
-    }
-
-    if($conf['authtype'] == 'plain'){
-        global $config_cascade;
-        if(is_writable($config_cascade['plainauth.users']['default'])){
-            msg('conf/users.auth.php is writable',1);
-        }else{
-            msg('conf/users.auth.php is not writable',0);
-        }
-    }
-
-    if(function_exists('mb_strpos')){
-        if(defined('UTF8_NOMBSTRING')){
-            msg('mb_string extension is available but will not be used',0);
-        }else{
-            msg('mb_string extension is available and will be used',1);
-            if(ini_get('mbstring.func_overload') != 0){
-                msg('mb_string function overloading is enabled, this will cause problems and should be disabled',-1);
-            }
-        }
-    }else{
-        msg('mb_string extension not available - PHP only replacements will be used',0);
-    }
-
-    if (!UTF8_PREGSUPPORT) {
-        msg('PHP is missing UTF-8 support in Perl-Compatible Regular Expressions (PCRE)', -1);
-    }
-    if (!UTF8_PROPERTYSUPPORT) {
-        msg('PHP is missing Unicode properties support in Perl-Compatible Regular Expressions (PCRE)', -1);
-    }
-
-    $loc = setlocale(LC_ALL, 0);
-    if(!$loc){
-        msg('No valid locale is set for your PHP setup. You should fix this',-1);
-    }elseif(stripos($loc,'utf') === false){
-        msg('Your locale <code>'.hsc($loc).'</code> seems not to be a UTF-8 locale, you should fix this if you encounter problems.',0);
-    }else{
-        msg('Valid locale '.hsc($loc).' found.', 1);
-    }
-
-    if($conf['allowdebug']){
-        msg('Debugging support is enabled. If you don\'t need it you should set $conf[\'allowdebug\'] = 0',-1);
-    }else{
-        msg('Debugging support is disabled',1);
-    }
-
-    if($INFO['userinfo']['name']){
-        msg('You are currently logged in as '.$INPUT->server->str('REMOTE_USER').' ('.$INFO['userinfo']['name'].')',0);
-        msg('You are part of the groups '.join($INFO['userinfo']['grps'],', '),0);
-    }else{
-        msg('You are currently not logged in',0);
-    }
-
-    msg('Your current permission for this page is '.$INFO['perm'],0);
-
-    if(is_writable($INFO['filepath'])){
-        msg('The current page is writable by the webserver',0);
-    }else{
-        msg('The current page is not writable by the webserver',0);
-    }
-
-    if($INFO['writable']){
-        msg('The current page is writable by you',0);
-    }else{
-        msg('The current page is not writable by you',0);
-    }
-
-    // Check for corrupted search index
-    $lengths = idx_listIndexLengths();
-    $index_corrupted = false;
-    foreach ($lengths as $length) {
-        if (count(idx_getIndex('w', $length)) != count(idx_getIndex('i', $length))) {
-            $index_corrupted = true;
-            break;
-        }
-    }
-
-    foreach (idx_getIndex('metadata', '') as $index) {
-        if (count(idx_getIndex($index.'_w', '')) != count(idx_getIndex($index.'_i', ''))) {
-            $index_corrupted = true;
-            break;
-        }
-    }
-
-    if($index_corrupted) {
-        msg(
-            'The search index is corrupted. It might produce wrong results and most
-                probably needs to be rebuilt. See
-                <a href="http://www.dokuwiki.org/faq:searchindex">faq:searchindex</a>
-                for ways to rebuild the search index.', -1
-        );
-    } elseif(!empty($lengths)) {
-        msg('The search index seems to be working', 1);
-    } else {
-        msg(
-            'The search index is empty. See
-                <a href="http://www.dokuwiki.org/faq:searchindex">faq:searchindex</a>
-                for help on how to fix the search index. If the default indexer
-                isn\'t used or the wiki is actually empty this is normal.'
-        );
-    }
-
-    // rough time check
-    $http = new DokuHTTPClient();
-    $http->max_redirect = 0;
-    $http->timeout = 3;
-    $http->sendRequest('http://www.dokuwiki.org', '', 'HEAD');
-    $now = time();
-    if(isset($http->resp_headers['date'])) {
-        $time = strtotime($http->resp_headers['date']);
-        $diff = $time - $now;
-
-        if(abs($diff) < 4) {
-            msg("Server time seems to be okay. Diff: {$diff}s", 1);
-        } else {
-            msg("Your server's clock seems to be out of sync! Consider configuring a sync with a NTP server.  Diff: {$diff}s");
-        }
-    }
-
-}
-
-/**
- * print a message
- *
- * If HTTP headers were not sent yet the message is added
- * to the global message array else it's printed directly
- * using html_msgarea()
- *
- *
- * Levels can be:
- *
- * -1 error
- *  0 info
- *  1 success
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- * @see    html_msgarea
- */
-
-define('MSG_PUBLIC', 0);
-define('MSG_USERS_ONLY', 1);
-define('MSG_MANAGERS_ONLY',2);
-define('MSG_ADMINS_ONLY',4);
-
-/**
- * Display a message to the user
- *
- * @param string $message
- * @param int    $lvl   -1 = error, 0 = info, 1 = success, 2 = notify
- * @param string $line  line number
- * @param string $file  file number
- * @param int    $allow who's allowed to see the message, see MSG_* constants
- */
-function msg($message,$lvl=0,$line='',$file='',$allow=MSG_PUBLIC){
-    global $MSG, $MSG_shown;
-    $errors = array();
-    $errors[-1] = 'error';
-    $errors[0]  = 'info';
-    $errors[1]  = 'success';
-    $errors[2]  = 'notify';
-
-    if($line || $file) $message.=' ['.utf8_basename($file).':'.$line.']';
-
-    if(!isset($MSG)) $MSG = array();
-    $MSG[]=array('lvl' => $errors[$lvl], 'msg' => $message, 'allow' => $allow);
-    if(isset($MSG_shown) || headers_sent()){
-        if(function_exists('html_msgarea')){
-            html_msgarea();
-        }else{
-            print "ERROR($lvl) $message";
-        }
-        unset($GLOBALS['MSG']);
-    }
-}
-/**
- * Determine whether the current user is allowed to view the message
- * in the $msg data structure
- *
- * @param  $msg   array    dokuwiki msg structure
- *                         msg   => string, the message
- *                         lvl   => int, level of the message (see msg() function)
- *                         allow => int, flag used to determine who is allowed to see the message
- *                                       see MSG_* constants
- * @return bool
- */
-function info_msg_allowed($msg){
-    global $INFO, $auth;
-
-    // is the message public? - everyone and anyone can see it
-    if (empty($msg['allow']) || ($msg['allow'] == MSG_PUBLIC)) return true;
-
-    // restricted msg, but no authentication
-    if (empty($auth)) return false;
-
-    switch ($msg['allow']){
-        case MSG_USERS_ONLY:
-            return !empty($INFO['userinfo']);
-
-        case MSG_MANAGERS_ONLY:
-            return $INFO['ismanager'];
-
-        case MSG_ADMINS_ONLY:
-            return $INFO['isadmin'];
-
-        default:
-            trigger_error('invalid msg allow restriction.  msg="'.$msg['msg'].'" allow='.$msg['allow'].'"', E_USER_WARNING);
-            return $INFO['isadmin'];
-    }
-
-    return false;
-}
-
-/**
- * print debug messages
- *
- * 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){
-        echo "<!--\n";
-        print_r($msg);
-        echo "\n-->";
-    }else{
-        echo '<pre class="dbg">';
-        echo hsc(print_r($msg,true));
-        echo '</pre>';
-    }
-}
-
-/**
- * Print info to a log file
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- *
- * @param string $msg
- * @param string $header
- */
-function dbglog($msg,$header=''){
-    global $conf;
-    /* @var Input $INPUT */
-    global $INPUT;
-
-    // The debug log isn't automatically cleaned thus only write it when
-    // debugging has been enabled by the user.
-    if($conf['allowdebug'] !== 1) return;
-    if(is_object($msg) || is_array($msg)){
-        $msg = print_r($msg,true);
-    }
-
-    if($header) $msg = "$header\n$msg";
-
-    $file = $conf['cachedir'].'/debug.log';
-    $fh = fopen($file,'a');
-    if($fh){
-        fwrite($fh,date('H:i:s ').$INPUT->server->str('REMOTE_ADDR').': '.$msg."\n");
-        fclose($fh);
-    }
-}
-
-/**
- * Log accesses to deprecated fucntions to the debug log
- *
- * @param string $alternative The function or method that should be used instead
- */
-function dbg_deprecated($alternative = '') {
-    global $conf;
-    if(!$conf['allowdebug']) return;
-
-    $backtrace = debug_backtrace();
-    array_shift($backtrace);
-    $self = array_shift($backtrace);
-    $call = array_shift($backtrace);
-
-    $called = trim($self['class'].'::'.$self['function'].'()', ':');
-    $caller = trim($call['class'].'::'.$call['function'].'()', ':');
-
-    $msg = $called.' is deprecated. It was called from ';
-    $msg .= $caller.' in '.$call['file'].':'.$call['line'];
-    if($alternative) {
-        $msg .= ' '.$alternative.' should be used instead!';
-    }
-
-    dbglog($msg);
-}
-
-/**
- * Print a reversed, prettyprinted backtrace
- *
- * @author Gary Owen <gary_owen@bigfoot.com>
- */
-function dbg_backtrace(){
-    // Get backtrace
-    $backtrace = debug_backtrace();
-
-    // Unset call to debug_print_backtrace
-    array_shift($backtrace);
-
-    // Iterate backtrace
-    $calls = array();
-    $depth = count($backtrace) - 1;
-    foreach ($backtrace as $i => $call) {
-        $location = $call['file'] . ':' . $call['line'];
-        $function = (isset($call['class'])) ?
-            $call['class'] . $call['type'] . $call['function'] : $call['function'];
-
-        $params = array();
-        if (isset($call['args'])){
-            foreach($call['args'] as $arg){
-                if(is_object($arg)){
-                    $params[] = '[Object '.get_class($arg).']';
-                }elseif(is_array($arg)){
-                    $params[] = '[Array]';
-                }elseif(is_null($arg)){
-                    $params[] = '[NULL]';
-                }else{
-                    $params[] = (string) '"'.$arg.'"';
-                }
-            }
-        }
-        $params = implode(', ',$params);
-
-        $calls[$depth - $i] = sprintf('%s(%s) called at %s',
-                $function,
-                str_replace("\n", '\n', $params),
-                $location);
-    }
-    ksort($calls);
-
-    return implode("\n", $calls);
-}
-
-/**
- * Remove all data from an array where the key seems to point to sensitive data
- *
- * This is used to remove passwords, mail addresses and similar data from the
- * debug output
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- *
- * @param array $data
- */
-function debug_guard(&$data){
-    foreach($data as $key => $value){
-        if(preg_match('/(notify|pass|auth|secret|ftp|userinfo|token|buid|mail|proxy)/i',$key)){
-            $data[$key] = '***';
-            continue;
-        }
-        if(is_array($value)) debug_guard($data[$key]);
-    }
-}
diff --git a/wiki/inc/init.php b/wiki/inc/init.php
deleted file mode 100644
index ba6743f..0000000
--- a/wiki/inc/init.php
+++ /dev/null
@@ -1,601 +0,0 @@
-<?php
-/**
- * Initialize some defaults needed for DokuWiki
- */
-
-
-/**
- * timing Dokuwiki execution
- *
- * @param integer $start
- *
- * @return mixed
- */
-function delta_time($start=0) {
-    return microtime(true)-((float)$start);
-}
-define('DOKU_START_TIME', delta_time());
-
-global $config_cascade;
-$config_cascade = array();
-
-// if available load a preload config file
-$preload = fullpath(dirname(__FILE__)).'/preload.php';
-if (file_exists($preload)) include($preload);
-
-// define the include path
-if(!defined('DOKU_INC')) define('DOKU_INC',fullpath(dirname(__FILE__).'/../').'/');
-
-// define Plugin dir
-if(!defined('DOKU_PLUGIN'))  define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/');
-
-// define config path (packagers may want to change this to /etc/dokuwiki/)
-if(!defined('DOKU_CONF')) define('DOKU_CONF',DOKU_INC.'conf/');
-
-// check for error reporting override or set error reporting to sane values
-if (!defined('DOKU_E_LEVEL') && file_exists(DOKU_CONF.'report_e_all')) {
-    define('DOKU_E_LEVEL', E_ALL);
-}
-if (!defined('DOKU_E_LEVEL')) {
-    error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED & ~E_STRICT);
-} else {
-    error_reporting(DOKU_E_LEVEL);
-}
-
-// avoid caching issues #1594
-header('Vary: Cookie');
-
-// init memory caches
-global $cache_revinfo;
-       $cache_revinfo = array();
-global $cache_wikifn;
-       $cache_wikifn = array();
-global $cache_cleanid;
-       $cache_cleanid = array();
-global $cache_authname;
-       $cache_authname = array();
-global $cache_metadata;
-       $cache_metadata = array();
-
-// always include 'inc/config_cascade.php'
-// previously in preload.php set fields of $config_cascade will be merged with the defaults
-include(DOKU_INC.'inc/config_cascade.php');
-
-//prepare config array()
-global $conf;
-$conf = array();
-
-// load the global config file(s)
-foreach (array('default','local','protected') as $config_group) {
-    if (empty($config_cascade['main'][$config_group])) continue;
-    foreach ($config_cascade['main'][$config_group] as $config_file) {
-        if (file_exists($config_file)) {
-            include($config_file);
-        }
-    }
-}
-
-//prepare license array()
-global $license;
-$license = array();
-
-// load the license file(s)
-foreach (array('default','local') as $config_group) {
-    if (empty($config_cascade['license'][$config_group])) continue;
-    foreach ($config_cascade['license'][$config_group] as $config_file) {
-        if(file_exists($config_file)){
-            include($config_file);
-        }
-    }
-}
-
-// set timezone (as in pre 5.3.0 days)
-date_default_timezone_set(@date_default_timezone_get());
-
-// define baseURL
-if(!defined('DOKU_REL')) define('DOKU_REL',getBaseURL(false));
-if(!defined('DOKU_URL')) define('DOKU_URL',getBaseURL(true));
-if(!defined('DOKU_BASE')){
-    if($conf['canonical']){
-        define('DOKU_BASE',DOKU_URL);
-    }else{
-        define('DOKU_BASE',DOKU_REL);
-    }
-}
-
-// define whitespace
-if(!defined('DOKU_LF')) define ('DOKU_LF',"\n");
-if(!defined('DOKU_TAB')) define ('DOKU_TAB',"\t");
-
-// define cookie and session id, append server port when securecookie is configured FS#1664
-if (!defined('DOKU_COOKIE')) define('DOKU_COOKIE', 'DW'.md5(DOKU_REL.(($conf['securecookie'])?$_SERVER['SERVER_PORT']:'')));
-
-
-// define main script
-if(!defined('DOKU_SCRIPT')) define('DOKU_SCRIPT','doku.php');
-
-// DEPRECATED, use tpl_basedir() instead
-if(!defined('DOKU_TPL')) define('DOKU_TPL',
-        DOKU_BASE.'lib/tpl/'.$conf['template'].'/');
-
-// DEPRECATED, use tpl_incdir() instead
-if(!defined('DOKU_TPLINC')) define('DOKU_TPLINC',
-        DOKU_INC.'lib/tpl/'.$conf['template'].'/');
-
-// make session rewrites XHTML compliant
-@ini_set('arg_separator.output', '&amp;');
-
-// make sure global zlib does not interfere FS#1132
-@ini_set('zlib.output_compression', 'off');
-
-// increase PCRE backtrack limit
-@ini_set('pcre.backtrack_limit', '20971520');
-
-// enable gzip compression if supported
-$conf['gzip_output'] &= (strpos($_SERVER['HTTP_ACCEPT_ENCODING'],'gzip') !== false);
-global $ACT;
-if ($conf['gzip_output'] &&
-        !defined('DOKU_DISABLE_GZIP_OUTPUT') &&
-        function_exists('ob_gzhandler') &&
-        // Disable compression when a (compressed) sitemap might be delivered
-        // See https://bugs.dokuwiki.org/index.php?do=details&task_id=2576
-        $ACT != 'sitemap') {
-    ob_start('ob_gzhandler');
-}
-
-// init session
-if(!headers_sent() && !defined('NOSESSION')) {
-    if(!defined('DOKU_SESSION_NAME'))     define ('DOKU_SESSION_NAME', "DokuWiki");
-    if(!defined('DOKU_SESSION_LIFETIME')) define ('DOKU_SESSION_LIFETIME', 0);
-    if(!defined('DOKU_SESSION_PATH')) {
-        $cookieDir = empty($conf['cookiedir']) ? DOKU_REL : $conf['cookiedir'];
-        define ('DOKU_SESSION_PATH', $cookieDir);
-    }
-    if(!defined('DOKU_SESSION_DOMAIN'))   define ('DOKU_SESSION_DOMAIN', '');
-
-    // start the session
-    init_session();
-
-    // load left over messages
-    if(isset($_SESSION[DOKU_COOKIE]['msg'])) {
-        $MSG = $_SESSION[DOKU_COOKIE]['msg'];
-        unset($_SESSION[DOKU_COOKIE]['msg']);
-    }
-}
-
-// don't let cookies ever interfere with request vars
-$_REQUEST = array_merge($_GET,$_POST);
-
-// we don't want a purge URL to be digged
-if(isset($_REQUEST['purge']) && !empty($_SERVER['HTTP_REFERER'])) unset($_REQUEST['purge']);
-
-// precalculate file creation modes
-init_creationmodes();
-
-// make real paths and check them
-init_paths();
-init_files();
-
-// setup plugin controller class (can be overwritten in preload.php)
-$plugin_types = array('auth', 'admin','syntax','action','renderer', 'helper','remote');
-global $plugin_controller_class, $plugin_controller;
-if (empty($plugin_controller_class)) $plugin_controller_class = 'Doku_Plugin_Controller';
-
-// load libraries
-require_once(DOKU_INC.'vendor/autoload.php');
-require_once(DOKU_INC.'inc/load.php');
-
-// disable gzip if not available
-define('DOKU_HAS_BZIP', function_exists('bzopen'));
-define('DOKU_HAS_GZIP', function_exists('gzopen'));
-if($conf['compression'] == 'bz2' && !DOKU_HAS_BZIP) {
-    $conf['compression'] = 'gz';
-}
-if($conf['compression'] == 'gz' && !DOKU_HAS_GZIP) {
-    $conf['compression'] = 0;
-}
-
-// input handle class
-global $INPUT;
-$INPUT = new Input();
-
-// initialize plugin controller
-$plugin_controller = new $plugin_controller_class();
-
-// initialize the event handler
-global $EVENT_HANDLER;
-$EVENT_HANDLER = new Doku_Event_Handler();
-
-$local = $conf['lang'];
-trigger_event('INIT_LANG_LOAD', $local, 'init_lang', true);
-
-
-// setup authentication system
-if (!defined('NOSESSION')) {
-    auth_setup();
-}
-
-// 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
- */
-function init_paths(){
-    global $conf;
-
-    $paths = array('datadir'   => 'pages',
-            'olddir'    => 'attic',
-            'mediadir'  => 'media',
-            'mediaolddir' => 'media_attic',
-            'metadir'   => 'meta',
-            'mediametadir' => 'media_meta',
-            'cachedir'  => 'cache',
-            'indexdir'  => 'index',
-            'lockdir'   => 'locks',
-            'tmpdir'    => 'tmp');
-
-    foreach($paths as $c => $p) {
-        $path = empty($conf[$c]) ? $conf['savedir'].'/'.$p : $conf[$c];
-        $conf[$c] = init_path($path);
-        if(empty($conf[$c]))
-            nice_die("The $c ('$p') at $path is not found, isn't accessible or writable.
-                You should check your config and permission settings.
-                Or maybe you want to <a href=\"install.php\">run the
-                installer</a>?");
-    }
-
-    // path to old changelog only needed for upgrading
-    $conf['changelog_old'] = init_path((isset($conf['changelog']))?($conf['changelog']):($conf['savedir'].'/changes.log'));
-    if ($conf['changelog_old']=='') { unset($conf['changelog_old']); }
-    // hardcoded changelog because it is now a cache that lives in meta
-    $conf['changelog'] = $conf['metadir'].'/_dokuwiki.changes';
-    $conf['media_changelog'] = $conf['metadir'].'/_media.changes';
-}
-
-/**
- * Load the language strings
- *
- * @param string $langCode language code, as passed by event handler
- */
-function init_lang($langCode) {
-    //prepare language array
-    global $lang, $config_cascade;
-    $lang = array();
-
-    //load the language files
-    require(DOKU_INC.'inc/lang/en/lang.php');
-    foreach ($config_cascade['lang']['core'] as $config_file) {
-        if (file_exists($config_file . 'en/lang.php')) {
-            include($config_file . 'en/lang.php');
-        }
-    }
-
-    if ($langCode && $langCode != 'en') {
-        if (file_exists(DOKU_INC."inc/lang/$langCode/lang.php")) {
-            require(DOKU_INC."inc/lang/$langCode/lang.php");
-        }
-        foreach ($config_cascade['lang']['core'] as $config_file) {
-            if (file_exists($config_file . "$langCode/lang.php")) {
-                include($config_file . "$langCode/lang.php");
-            }
-        }
-    }
-}
-
-/**
- * Checks the existence of certain files and creates them if missing.
- */
-function init_files(){
-    global $conf;
-
-    $files = array($conf['indexdir'].'/page.idx');
-
-    foreach($files as $file){
-        if(!file_exists($file)){
-            $fh = @fopen($file,'a');
-            if($fh){
-                fclose($fh);
-                if(!empty($conf['fperm'])) chmod($file, $conf['fperm']);
-            }else{
-                nice_die("$file is not writable. Check your permissions settings!");
-            }
-        }
-    }
-}
-
-/**
- * Returns absolute path
- *
- * This tries the given path first, then checks in DOKU_INC.
- * 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
-    $p = fullpath($path);
-    if(!file_exists($p)){
-        $p = fullpath(DOKU_INC.$path);
-        if(!file_exists($p)){
-            return '';
-        }
-    }
-
-    // check writability
-    if(!@is_writable($p)){
-        return '';
-    }
-
-    // check accessability (execute bit) for directories
-    if(@is_dir($p) && !file_exists("$p/.")){
-        return '';
-    }
-
-    return $p;
-}
-
-/**
- * Sets the internal config values fperm and dperm which, when set,
- * will be used to change the permission of a newly created dir or
- * file with chmod. Considers the influence of the system's umask
- * setting the values only if needed.
- */
-function init_creationmodes(){
-    global $conf;
-
-    // Legacy support for old umask/dmask scheme
-    unset($conf['dmask']);
-    unset($conf['fmask']);
-    unset($conf['umask']);
-    unset($conf['fperm']);
-    unset($conf['dperm']);
-
-    // get system umask, fallback to 0 if none available
-    $umask = @umask();
-    if(!$umask) $umask = 0000;
-
-    // check what is set automatically by the system on file creation
-    // and set the fperm param if it's not what we want
-    $auto_fmode = 0666 & ~$umask;
-    if($auto_fmode != $conf['fmode']) $conf['fperm'] = $conf['fmode'];
-
-    // check what is set automatically by the system on file creation
-    // and set the dperm param if it's not what we want
-    $auto_dmode = $conf['dmode'] & ~$umask;
-    if($auto_dmode != $conf['dmode']) $conf['dperm'] = $conf['dmode'];
-}
-
-/**
- * Returns the full absolute URL to the directory where
- * DokuWiki is installed in (includes a trailing slash)
- *
- * !! Can not access $_SERVER values through $INPUT
- * !! here as this function is called before $INPUT is
- * !! initialized.
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- *
- * @param null|string $abs
- *
- * @return string
- */
-function getBaseURL($abs=null){
-    global $conf;
-    //if canonical url enabled always return absolute
-    if(is_null($abs)) $abs = $conf['canonical'];
-
-    if(!empty($conf['basedir'])){
-        $dir = $conf['basedir'];
-    }elseif(substr($_SERVER['SCRIPT_NAME'],-4) == '.php'){
-        $dir = dirname($_SERVER['SCRIPT_NAME']);
-    }elseif(substr($_SERVER['PHP_SELF'],-4) == '.php'){
-        $dir = dirname($_SERVER['PHP_SELF']);
-    }elseif($_SERVER['DOCUMENT_ROOT'] && $_SERVER['SCRIPT_FILENAME']){
-        $dir = preg_replace ('/^'.preg_quote($_SERVER['DOCUMENT_ROOT'],'/').'/','',
-                $_SERVER['SCRIPT_FILENAME']);
-        $dir = dirname('/'.$dir);
-    }else{
-        $dir = '.'; //probably wrong
-    }
-
-    $dir = str_replace('\\','/',$dir);             // bugfix for weird WIN behaviour
-    $dir = preg_replace('#//+#','/',"/$dir/");     // ensure leading and trailing slashes
-
-    //handle script in lib/exe dir
-    $dir = preg_replace('!lib/exe/$!','',$dir);
-
-    //handle script in lib/plugins dir
-    $dir = preg_replace('!lib/plugins/.*$!','',$dir);
-
-    //finish here for relative URLs
-    if(!$abs) return $dir;
-
-    //use config option if available, trim any slash from end of baseurl to avoid multiple consecutive slashes in the path
-    if(!empty($conf['baseurl'])) return rtrim($conf['baseurl'],'/').$dir;
-
-    //split hostheader into host and port
-    if(isset($_SERVER['HTTP_HOST'])){
-        $parsed_host = parse_url('http://'.$_SERVER['HTTP_HOST']);
-        $host = isset($parsed_host['host']) ? $parsed_host['host'] : null;
-        $port = isset($parsed_host['port']) ? $parsed_host['port'] : null;
-    }elseif(isset($_SERVER['SERVER_NAME'])){
-        $parsed_host = parse_url('http://'.$_SERVER['SERVER_NAME']);
-        $host = isset($parsed_host['host']) ? $parsed_host['host'] : null;
-        $port = isset($parsed_host['port']) ? $parsed_host['port'] : null;
-    }else{
-        $host = php_uname('n');
-        $port = '';
-    }
-
-    if(is_null($port)){
-        $port = '';
-    }
-
-    if(!is_ssl()){
-        $proto = 'http://';
-        if ($port == '80') {
-            $port = '';
-        }
-    }else{
-        $proto = 'https://';
-        if ($port == '443') {
-            $port = '';
-        }
-    }
-
-    if($port !== '') $port = ':'.$port;
-
-    return $proto.$host.$port.$dir;
-}
-
-/**
- * Check if accessed via HTTPS
- *
- * Apache leaves ,$_SERVER['HTTPS'] empty when not available, IIS sets it to 'off'.
- * 'false' and 'disabled' are just guessing
- *
- * @returns bool true when SSL is active
- */
-function is_ssl() {
-    // check if we are behind a reverse proxy
-    if(isset($_SERVER['HTTP_X_FORWARDED_PROTO'])) {
-        if($_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') {
-            return true;
-        } else {
-            return false;
-        }
-    }
-    if(!isset($_SERVER['HTTPS']) ||
-        preg_match('/^(|off|false|disabled)$/i', $_SERVER['HTTPS'])) {
-        return false;
-    } else {
-        return true;
-    }
-}
-
-/**
- * checks it is windows OS
- * @return bool
- */
-function isWindows() {
-    return (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') ? true : false;
-}
-
-/**
- * print a nice message even if no styles are loaded yet.
- *
- * @param integer|string $msg
- */
-function nice_die($msg){
-    echo<<<EOT
-<!DOCTYPE html>
-<html>
-<head><title>DokuWiki Setup Error</title></head>
-<body style="font-family: Arial, sans-serif">
-    <div style="width:60%; margin: auto; background-color: #fcc;
-                border: 1px solid #faa; padding: 0.5em 1em;">
-        <h1 style="font-size: 120%">DokuWiki Setup Error</h1>
-        <p>$msg</p>
-    </div>
-</body>
-</html>
-EOT;
-    if(defined('DOKU_UNITTEST')) {
-        throw new RuntimeException('nice_die: '.$msg);
-    }
-    exit(1);
-}
-
-/**
- * A realpath() replacement
- *
- * This function behaves similar to PHP's realpath() but does not resolve
- * symlinks or accesses upper directories
- *
- * @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;
-    $root  = '';
-    $iswin = (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN' || @$GLOBALS['DOKU_UNITTEST_ASSUME_WINDOWS']);
-
-    // find the (indestructable) root of the path - keeps windows stuff intact
-    if($path{0} == '/'){
-        $root = '/';
-    }elseif($iswin){
-        // match drive letter and UNC paths
-        if(preg_match('!^([a-zA-z]:)(.*)!',$path,$match)){
-            $root = $match[1].'/';
-            $path = $match[2];
-        }else if(preg_match('!^(\\\\\\\\[^\\\\/]+\\\\[^\\\\/]+[\\\\/])(.*)!',$path,$match)){
-            $root = $match[1];
-            $path = $match[2];
-        }
-    }
-    $path = str_replace('\\','/',$path);
-
-    // if the given path wasn't absolute already, prepend the script path and retry
-    if(!$root){
-        $base = dirname($_SERVER['SCRIPT_FILENAME']);
-        $path = $base.'/'.$path;
-        if($run == 0){ // avoid endless recursion when base isn't absolute for some reason
-            $run++;
-            return fullpath($path,$exists);
-        }
-    }
-    $run = 0;
-
-    // canonicalize
-    $path=explode('/', $path);
-    $newpath=array();
-    foreach($path as $p) {
-        if ($p === '' || $p === '.') continue;
-        if ($p==='..') {
-            array_pop($newpath);
-            continue;
-        }
-        array_push($newpath, $p);
-    }
-    $finalpath = $root.implode('/', $newpath);
-
-    // check for existence when needed (except when unit testing)
-    if($exists && !defined('DOKU_UNITTEST') && !file_exists($finalpath)) {
-        return false;
-    }
-    return $finalpath;
-}
-
diff --git a/wiki/inc/io.php b/wiki/inc/io.php
deleted file mode 100644
index 7b646f1..0000000
--- a/wiki/inc/io.php
+++ /dev/null
@@ -1,827 +0,0 @@
-<?php
-/**
- * File IO functions
- *
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * @author     Andreas Gohr <andi@splitbrain.org>
- */
-
-if(!defined('DOKU_INC')) die('meh.');
-
-/**
- * Removes empty directories
- *
- * Sends IO_NAMESPACE_DELETED events for 'pages' and 'media' namespaces.
- * Event data:
- * $data[0]    ns: The colon separated namespace path minus the trailing page name.
- * $data[1]    ns_type: 'pages' or 'media' namespace tree.
- *
- * @todo use safemode hack
- * @param string $id      - a pageid, the namespace of that id will be tried to deleted
- * @param string $basedir - the config name of the type to delete (datadir or mediadir usally)
- * @return bool - true if at least one namespace was deleted
- *
- * @author  Andreas Gohr <andi@splitbrain.org>
- * @author Ben Coburn <btcoburn@silicodon.net>
- */
-function io_sweepNS($id,$basedir='datadir'){
-    global $conf;
-    $types = array ('datadir'=>'pages', 'mediadir'=>'media');
-    $ns_type = (isset($types[$basedir])?$types[$basedir]:false);
-
-    $delone = false;
-
-    //scan all namespaces
-    while(($id = getNS($id)) !== false){
-        $dir = $conf[$basedir].'/'.utf8_encodeFN(str_replace(':','/',$id));
-
-        //try to delete dir else return
-        if(@rmdir($dir)) {
-            if ($ns_type!==false) {
-                $data = array($id, $ns_type);
-                $delone = true; // we deleted at least one dir
-                trigger_event('IO_NAMESPACE_DELETED', $data);
-            }
-        } else { return $delone; }
-    }
-    return $delone;
-}
-
-/**
- * Used to read in a DokuWiki page from file, and send IO_WIKIPAGE_READ events.
- *
- * Generates the action event which delegates to io_readFile().
- * Action plugins are allowed to modify the page content in transit.
- * The file path should not be changed.
- *
- * Event data:
- * $data[0]    The raw arguments for io_readFile as an array.
- * $data[1]    ns: The colon separated namespace path minus the trailing page name. (false if root ns)
- * $data[2]    page_name: The wiki page name.
- * $data[3]    rev: The page revision, false for current wiki pages.
- *
- * @author Ben Coburn <btcoburn@silicodon.net>
- *
- * @param string   $file filename
- * @param string   $id page id
- * @param bool|int $rev revision timestamp
- * @return string
- */
-function io_readWikiPage($file, $id, $rev=false) {
-    if (empty($rev)) { $rev = false; }
-    $data = array(array($file, true), getNS($id), noNS($id), $rev);
-    return trigger_event('IO_WIKIPAGE_READ', $data, '_io_readWikiPage_action', false);
-}
-
-/**
- * Callback adapter for io_readFile().
- *
- * @author Ben Coburn <btcoburn@silicodon.net>
- *
- * @param array $data event data
- * @return string
- */
-function _io_readWikiPage_action($data) {
-    if (is_array($data) && is_array($data[0]) && count($data[0])===2) {
-        return call_user_func_array('io_readFile', $data[0]);
-    } else {
-        return ''; //callback error
-    }
-}
-
-/**
- * Returns content of $file as cleaned string.
- *
- * Uses gzip if extension is .gz
- *
- * If you want to use the returned value in unserialize
- * be sure to set $clean to false!
- *
- * @author  Andreas Gohr <andi@splitbrain.org>
- *
- * @param string $file  filename
- * @param bool   $clean
- * @return string|bool the file contents or false on error
- */
-function io_readFile($file,$clean=true){
-    $ret = '';
-    if(file_exists($file)){
-        if(substr($file,-3) == '.gz'){
-            if(!DOKU_HAS_GZIP) return false;
-            $ret = gzfile($file);
-            if(is_array($ret)) $ret = join('', $ret);
-        }else if(substr($file,-4) == '.bz2'){
-            if(!DOKU_HAS_BZIP) return false;
-            $ret = bzfile($file);
-        }else{
-            $ret = file_get_contents($file);
-        }
-    }
-    if($ret === null) return false;
-    if($ret !== false && $clean){
-        return cleanText($ret);
-    }else{
-        return $ret;
-    }
-}
-/**
- * Returns the content of a .bz2 compressed file as string
- *
- * @author marcel senf <marcel@rucksackreinigung.de>
- * @author  Andreas Gohr <andi@splitbrain.org>
- *
- * @param string $file filename
- * @param bool   $array return array of lines
- * @return string|array|bool content or false on error
- */
-function bzfile($file, $array=false) {
-    $bz = bzopen($file,"r");
-    if($bz === false) return false;
-
-    if($array) $lines = array();
-    $str = '';
-    while (!feof($bz)) {
-        //8192 seems to be the maximum buffersize?
-        $buffer = bzread($bz,8192);
-        if(($buffer === false) || (bzerrno($bz) !== 0)) {
-            return false;
-        }
-        $str = $str . $buffer;
-        if($array) {
-            $pos = strpos($str, "\n");
-            while($pos !== false) {
-                $lines[] = substr($str, 0, $pos+1);
-                $str = substr($str, $pos+1);
-                $pos = strpos($str, "\n");
-            }
-        }
-    }
-    bzclose($bz);
-    if($array) {
-        if($str !== '') $lines[] = $str;
-        return $lines;
-    }
-    return $str;
-}
-
-/**
- * Used to write out a DokuWiki page to file, and send IO_WIKIPAGE_WRITE events.
- *
- * This generates an action event and delegates to io_saveFile().
- * Action plugins are allowed to modify the page content in transit.
- * The file path should not be changed.
- * (The append parameter is set to false.)
- *
- * Event data:
- * $data[0]    The raw arguments for io_saveFile as an array.
- * $data[1]    ns: The colon separated namespace path minus the trailing page name. (false if root ns)
- * $data[2]    page_name: The wiki page name.
- * $data[3]    rev: The page revision, false for current wiki pages.
- *
- * @author Ben Coburn <btcoburn@silicodon.net>
- *
- * @param string $file      filename
- * @param string $content
- * @param string $id        page id
- * @param int|bool $rev timestamp of revision
- * @return bool
- */
-function io_writeWikiPage($file, $content, $id, $rev=false) {
-    if (empty($rev)) { $rev = false; }
-    if ($rev===false) { io_createNamespace($id); } // create namespaces as needed
-    $data = array(array($file, $content, false), getNS($id), noNS($id), $rev);
-    return trigger_event('IO_WIKIPAGE_WRITE', $data, '_io_writeWikiPage_action', false);
-}
-
-/**
- * Callback adapter for io_saveFile().
- * @author Ben Coburn <btcoburn@silicodon.net>
- *
- * @param array $data event data
- * @return bool
- */
-function _io_writeWikiPage_action($data) {
-    if (is_array($data) && is_array($data[0]) && count($data[0])===3) {
-        $ok = call_user_func_array('io_saveFile', $data[0]);
-        // for attic files make sure the file has the mtime of the revision
-        if($ok && is_int($data[3]) && $data[3] > 0) {
-            @touch($data[0][0], $data[3]);
-        }
-        return $ok;
-    } else {
-        return false; //callback error
-    }
-}
-
-/**
- * Internal function to save contents to a file.
- *
- * @author  Andreas Gohr <andi@splitbrain.org>
- *
- * @param string $file filename path to file
- * @param string $content
- * @param bool   $append
- * @return bool true on success, otherwise false
- */
-function _io_saveFile($file, $content, $append) {
-    global $conf;
-    $mode = ($append) ? 'ab' : 'wb';
-    $fileexists = file_exists($file);
-
-    if(substr($file,-3) == '.gz'){
-        if(!DOKU_HAS_GZIP) return false;
-        $fh = @gzopen($file,$mode.'9');
-        if(!$fh) return false;
-        gzwrite($fh, $content);
-        gzclose($fh);
-    }else if(substr($file,-4) == '.bz2'){
-        if(!DOKU_HAS_BZIP) return false;
-        if($append) {
-            $bzcontent = bzfile($file);
-            if($bzcontent === false) return false;
-            $content = $bzcontent.$content;
-        }
-        $fh = @bzopen($file,'w');
-        if(!$fh) return false;
-        bzwrite($fh, $content);
-        bzclose($fh);
-    }else{
-        $fh = @fopen($file,$mode);
-        if(!$fh) return false;
-        fwrite($fh, $content);
-        fclose($fh);
-    }
-
-    if(!$fileexists and !empty($conf['fperm'])) chmod($file, $conf['fperm']);
-    return true;
-}
-
-/**
- * Saves $content to $file.
- *
- * If the third parameter is set to true the given content
- * will be appended.
- *
- * Uses gzip if extension is .gz
- * and bz2 if extension is .bz2
- *
- * @author  Andreas Gohr <andi@splitbrain.org>
- *
- * @param string $file filename path to file
- * @param string $content
- * @param bool   $append
- * @return bool true on success, otherwise false
- */
-function io_saveFile($file, $content, $append=false) {
-    io_makeFileDir($file);
-    io_lock($file);
-    if(!_io_saveFile($file, $content, $append)) {
-        msg("Writing $file failed",-1);
-        io_unlock($file);
-        return false;
-    }
-    io_unlock($file);
-    return true;
-}
-
-/**
- * Replace one or more occurrences of a line in a file.
- *
- * The default, when $maxlines is 0 is to delete all matching lines then append a single line.
- * A regex that matches any part of the line will remove the entire line in this mode.
- * Captures in $newline are not available.
- *
- * Otherwise each line is matched and replaced individually, up to the first $maxlines lines
- * or all lines if $maxlines is -1. If $regex is true then captures can be used in $newline.
- *
- * Be sure to include the trailing newline in $oldline when replacing entire lines.
- *
- * Uses gzip if extension is .gz
- * and bz2 if extension is .bz2
- *
- * @author Steven Danz <steven-danz@kc.rr.com>
- * @author Christopher Smith <chris@jalakai.co.uk>
- * @author Patrick Brown <ptbrown@whoopdedo.org>
- *
- * @param string $file     filename
- * @param string $oldline  exact linematch to remove
- * @param string $newline  new line to insert
- * @param bool   $regex    use regexp?
- * @param int    $maxlines number of occurrences of the line to replace
- * @return bool true on success
- */
-function io_replaceInFile($file, $oldline, $newline, $regex=false, $maxlines=0) {
-    if ((string)$oldline === '') {
-        trigger_error('$oldline parameter cannot be empty in io_replaceInFile()', E_USER_WARNING);
-        return false;
-    }
-
-    if (!file_exists($file)) return true;
-
-    io_lock($file);
-
-    // load into array
-    if(substr($file,-3) == '.gz'){
-        if(!DOKU_HAS_GZIP) return false;
-        $lines = gzfile($file);
-    }else if(substr($file,-4) == '.bz2'){
-        if(!DOKU_HAS_BZIP) return false;
-        $lines = bzfile($file, true);
-    }else{
-        $lines = file($file);
-    }
-
-    // make non-regexes into regexes
-    $pattern = $regex ? $oldline : '/^'.preg_quote($oldline,'/').'$/';
-    $replace = $regex ? $newline : addcslashes($newline, '\$');
-
-    // remove matching lines
-    if ($maxlines > 0) {
-        $count = 0;
-        $matched = 0;
-        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++;
-        }
-    } else if ($maxlines == 0) {
-        $lines = preg_grep($pattern, $lines, PREG_GREP_INVERT);
-
-        if ((string)$newline !== ''){
-            $lines[] = $newline;
-        }
-    } else {
-        $lines = preg_replace($pattern, $replace, $lines);
-    }
-
-    if(count($lines)){
-        if(!_io_saveFile($file, join('',$lines), false)) {
-            msg("Removing content from $file failed",-1);
-            io_unlock($file);
-            return false;
-        }
-    }else{
-        @unlink($file);
-    }
-
-    io_unlock($file);
-    return true;
-}
-
-/**
- * Delete lines that match $badline from $file.
- *
- * Be sure to include the trailing newline in $badline
- *
- * @author Patrick Brown <ptbrown@whoopdedo.org>
- *
- * @param string $file    filename
- * @param string $badline exact linematch to remove
- * @param bool   $regex   use regexp?
- * @return bool true on success
- */
-function io_deleteFromFile($file,$badline,$regex=false){
-    return io_replaceInFile($file,$badline,null,$regex,0);
-}
-
-/**
- * Tries to lock a file
- *
- * Locking is only done for io_savefile and uses directories
- * inside $conf['lockdir']
- *
- * It waits maximal 3 seconds for the lock, after this time
- * the lock is assumed to be stale and the function goes on
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- *
- * @param string $file filename
- */
-function io_lock($file){
-    global $conf;
-    // no locking if safemode hack
-    if($conf['safemodehack']) return;
-
-    $lockDir = $conf['lockdir'].'/'.md5($file);
-    @ignore_user_abort(1);
-
-    $timeStart = time();
-    do {
-        //waited longer than 3 seconds? -> stale lock
-        if ((time() - $timeStart) > 3) break;
-        $locked = @mkdir($lockDir, $conf['dmode']);
-        if($locked){
-            if(!empty($conf['dperm'])) chmod($lockDir, $conf['dperm']);
-            break;
-        }
-        usleep(50);
-    } while ($locked === false);
-}
-
-/**
- * Unlocks a file
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- *
- * @param string $file filename
- */
-function io_unlock($file){
-    global $conf;
-    // no locking if safemode hack
-    if($conf['safemodehack']) return;
-
-    $lockDir = $conf['lockdir'].'/'.md5($file);
-    @rmdir($lockDir);
-    @ignore_user_abort(0);
-}
-
-/**
- * Create missing namespace directories and send the IO_NAMESPACE_CREATED events
- * in the order of directory creation. (Parent directories first.)
- *
- * Event data:
- * $data[0]    ns: The colon separated namespace path minus the trailing page name.
- * $data[1]    ns_type: 'pages' or 'media' namespace tree.
- *
- * @author Ben Coburn <btcoburn@silicodon.net>
- *
- * @param string $id page id
- * @param string $ns_type 'pages' or 'media'
- */
-function io_createNamespace($id, $ns_type='pages') {
-    // verify ns_type
-    $types = array('pages'=>'wikiFN', 'media'=>'mediaFN');
-    if (!isset($types[$ns_type])) {
-        trigger_error('Bad $ns_type parameter for io_createNamespace().');
-        return;
-    }
-    // make event list
-    $missing = array();
-    $ns_stack = explode(':', $id);
-    $ns = $id;
-    $tmp = dirname( $file = call_user_func($types[$ns_type], $ns) );
-    while (!@is_dir($tmp) && !(file_exists($tmp) && !is_dir($tmp))) {
-        array_pop($ns_stack);
-        $ns = implode(':', $ns_stack);
-        if (strlen($ns)==0) { break; }
-        $missing[] = $ns;
-        $tmp = dirname(call_user_func($types[$ns_type], $ns));
-    }
-    // make directories
-    io_makeFileDir($file);
-    // send the events
-    $missing = array_reverse($missing); // inside out
-    foreach ($missing as $ns) {
-        $data = array($ns, $ns_type);
-        trigger_event('IO_NAMESPACE_CREATED', $data);
-    }
-}
-
-/**
- * Create the directory needed for the given file
- *
- * @author  Andreas Gohr <andi@splitbrain.org>
- *
- * @param string $file file name
- */
-function io_makeFileDir($file){
-    $dir = dirname($file);
-    if(!@is_dir($dir)){
-        io_mkdir_p($dir) || msg("Creating directory $dir failed",-1);
-    }
-}
-
-/**
- * Creates a directory hierachy.
- *
- * @link    http://php.net/manual/en/function.mkdir.php
- * @author  <saint@corenova.com>
- * @author  Andreas Gohr <andi@splitbrain.org>
- *
- * @param string $target filename
- * @return bool|int|string
- */
-function io_mkdir_p($target){
-    global $conf;
-    if (@is_dir($target)||empty($target)) return 1; // best case check first
-    if (file_exists($target) && !is_dir($target)) return 0;
-    //recursion
-    if (io_mkdir_p(substr($target,0,strrpos($target,'/')))){
-        if($conf['safemodehack']){
-            $dir = preg_replace('/^'.preg_quote(fullpath($conf['ftp']['root']),'/').'/','', $target);
-            return io_mkdir_ftp($dir);
-        }else{
-            $ret = @mkdir($target,$conf['dmode']); // crawl back up & create dir tree
-            if($ret && !empty($conf['dperm'])) chmod($target, $conf['dperm']);
-            return $ret;
-        }
-    }
-    return 0;
-}
-
-/**
- * Recursively delete a directory
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- * @param string $path
- * @param bool   $removefiles defaults to false which will delete empty directories only
- * @return bool
- */
-function io_rmdir($path, $removefiles = false) {
-    if(!is_string($path) || $path == "") return false;
-    if(!file_exists($path)) return true; // it's already gone or was never there, count as success
-
-    if(is_dir($path) && !is_link($path)) {
-        $dirs  = array();
-        $files = array();
-
-        if(!$dh = @opendir($path)) return false;
-        while(false !== ($f = readdir($dh))) {
-            if($f == '..' || $f == '.') continue;
-
-            // collect dirs and files first
-            if(is_dir("$path/$f") && !is_link("$path/$f")) {
-                $dirs[] = "$path/$f";
-            } else if($removefiles) {
-                $files[] = "$path/$f";
-            } else {
-                return false; // abort when non empty
-            }
-
-        }
-        closedir($dh);
-
-        // now traverse into  directories first
-        foreach($dirs as $dir) {
-            if(!io_rmdir($dir, $removefiles)) return false; // abort on any error
-        }
-
-        // now delete files
-        foreach($files as $file) {
-            if(!@unlink($file)) return false; //abort on any error
-        }
-
-        // remove self
-        return @rmdir($path);
-    } else if($removefiles) {
-        return @unlink($path);
-    }
-    return false;
-}
-
-/**
- * Creates a directory using FTP
- *
- * This is used when the safemode workaround is enabled
- *
- * @author <andi@splitbrain.org>
- *
- * @param string $dir name of the new directory
- * @return false|string
- */
-function io_mkdir_ftp($dir){
-    global $conf;
-
-    if(!function_exists('ftp_connect')){
-        msg("FTP support not found - safemode workaround not usable",-1);
-        return false;
-    }
-
-    $conn = @ftp_connect($conf['ftp']['host'],$conf['ftp']['port'],10);
-    if(!$conn){
-        msg("FTP connection failed",-1);
-        return false;
-    }
-
-    if(!@ftp_login($conn, $conf['ftp']['user'], conf_decodeString($conf['ftp']['pass']))){
-        msg("FTP login failed",-1);
-        return false;
-    }
-
-    //create directory
-    $ok = @ftp_mkdir($conn, $dir);
-    //set permissions
-    @ftp_site($conn,sprintf("CHMOD %04o %s",$conf['dmode'],$dir));
-
-    @ftp_close($conn);
-    return $ok;
-}
-
-/**
- * Creates a unique temporary directory and returns
- * its path.
- *
- * @author Michael Klier <chi@chimeric.de>
- *
- * @return false|string path to new directory or false
- */
-function io_mktmpdir() {
-    global $conf;
-
-    $base = $conf['tmpdir'];
-    $dir  = md5(uniqid(mt_rand(), true));
-    $tmpdir = $base.'/'.$dir;
-
-    if(io_mkdir_p($tmpdir)) {
-        return($tmpdir);
-    } else {
-        return false;
-    }
-}
-
-/**
- * downloads a file from the net and saves it
- *
- * if $useAttachment is false,
- * - $file is the full filename to save the file, incl. path
- * - if successful will return true, false otherwise
- *
- * if $useAttachment is true,
- * - $file is the directory where the file should be saved
- * - if successful will return the name used for the saved file, false otherwise
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- * @author Chris Smith <chris@jalakai.co.uk>
- *
- * @param string $url           url to download
- * @param string $file          path to file or directory where to save
- * @param bool   $useAttachment if true: try to use name of download, uses otherwise $defaultName, false: uses $file as path to file
- * @param string $defaultName   fallback for if using $useAttachment
- * @param int    $maxSize       maximum file size
- * @return bool|string          if failed false, otherwise true or the name of the file in the given dir
- */
-function io_download($url,$file,$useAttachment=false,$defaultName='',$maxSize=2097152){
-    global $conf;
-    $http = new DokuHTTPClient();
-    $http->max_bodysize = $maxSize;
-    $http->timeout = 25; //max. 25 sec
-    $http->keep_alive = false; // we do single ops here, no need for keep-alive
-
-    $data = $http->get($url);
-    if(!$data) return false;
-
-    $name = '';
-    if ($useAttachment) {
-        if (isset($http->resp_headers['content-disposition'])) {
-            $content_disposition = $http->resp_headers['content-disposition'];
-            $match=array();
-            if (is_string($content_disposition) &&
-                    preg_match('/attachment;\s*filename\s*=\s*"([^"]*)"/i', $content_disposition, $match)) {
-
-                $name = utf8_basename($match[1]);
-            }
-
-        }
-
-        if (!$name) {
-            if (!$defaultName) return false;
-            $name = $defaultName;
-        }
-
-        $file = $file.$name;
-    }
-
-    $fileexists = file_exists($file);
-    $fp = @fopen($file,"w");
-    if(!$fp) return false;
-    fwrite($fp,$data);
-    fclose($fp);
-    if(!$fileexists and $conf['fperm']) chmod($file, $conf['fperm']);
-    if ($useAttachment) return $name;
-    return true;
-}
-
-/**
- * Windows compatible rename
- *
- * rename() can not overwrite existing files on Windows
- * this function will use copy/unlink instead
- *
- * @param string $from
- * @param string $to
- * @return bool succes or fail
- */
-function io_rename($from,$to){
-    global $conf;
-    if(!@rename($from,$to)){
-        if(@copy($from,$to)){
-            if($conf['fperm']) chmod($to, $conf['fperm']);
-            @unlink($from);
-            return true;
-        }
-        return false;
-    }
-    return true;
-}
-
-/**
- * Runs an external command with input and output pipes.
- * Returns the exit code from the process.
- *
- * @author Tom N Harris <tnharris@whoopdedo.org>
- *
- * @param string $cmd
- * @param string $input  input pipe
- * @param string $output output pipe
- * @return int exit code from process
- */
-function io_exec($cmd, $input, &$output){
-    $descspec = array(
-            0=>array("pipe","r"),
-            1=>array("pipe","w"),
-            2=>array("pipe","w"));
-    $ph = proc_open($cmd, $descspec, $pipes);
-    if(!$ph) return -1;
-    fclose($pipes[2]); // ignore stderr
-    fwrite($pipes[0], $input);
-    fclose($pipes[0]);
-    $output = stream_get_contents($pipes[1]);
-    fclose($pipes[1]);
-    return proc_close($ph);
-}
-
-/**
- * Search a file for matching lines
- *
- * This is probably not faster than file()+preg_grep() but less
- * memory intensive because not the whole file needs to be loaded
- * at once.
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- * @param  string $file    The file to search
- * @param  string $pattern PCRE pattern
- * @param  int    $max     How many lines to return (0 for all)
- * @param  bool   $backref When true returns array with backreferences instead of lines
- * @return array matching lines or backref, false on error
- */
-function io_grep($file,$pattern,$max=0,$backref=false){
-    $fh = @fopen($file,'r');
-    if(!$fh) return false;
-    $matches = array();
-
-    $cnt  = 0;
-    $line = '';
-    while (!feof($fh)) {
-        $line .= fgets($fh, 4096);  // read full line
-        if(substr($line,-1) != "\n") continue;
-
-        // check if line matches
-        if(preg_match($pattern,$line,$match)){
-            if($backref){
-                $matches[] = $match;
-            }else{
-                $matches[] = $line;
-            }
-            $cnt++;
-        }
-        if($max && $max == $cnt) break;
-        $line = '';
-    }
-    fclose($fh);
-    return $matches;
-}
-
-
-/**
- * Get size of contents of a file, for a compressed file the uncompressed size
- * Warning: reading uncompressed size of content of bz-files requires uncompressing
- *
- * @author  Gerrit Uitslag <klapinklapin@gmail.com>
- *
- * @param string $file filename path to file
- * @return int size of file
- */
-function io_getSizeFile($file) {
-    if (!file_exists($file)) return 0;
-
-    if(substr($file,-3) == '.gz'){
-        $fp = @fopen($file, "rb");
-        if($fp === false) return 0;
-
-        fseek($fp, -4, SEEK_END);
-        $buffer = fread($fp, 4);
-        fclose($fp);
-        $array = unpack("V", $buffer);
-        $uncompressedsize = end($array);
-    }else if(substr($file,-4) == '.bz2'){
-        if(!DOKU_HAS_BZIP) return 0;
-
-        $bz = bzopen($file,"r");
-        if($bz === false) return 0;
-
-        $uncompressedsize = 0;
-        while (!feof($bz)) {
-            //8192 seems to be the maximum buffersize?
-            $buffer = bzread($bz,8192);
-            if(($buffer === false) || (bzerrno($bz) !== 0)) {
-                return 0;
-            }
-            $uncompressedsize += strlen($buffer);
-        }
-    }else{
-        $uncompressedsize = filesize($file);
-    }
-
-    return $uncompressedsize;
- }
diff --git a/wiki/inc/lang/af/jquery.ui.datepicker.js b/wiki/inc/lang/af/jquery.ui.datepicker.js
deleted file mode 100644
index c756888..0000000
--- a/wiki/inc/lang/af/jquery.ui.datepicker.js
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Afrikaans initialisation for the jQuery UI date picker plugin. */
-/* Written by Renier Pretorius. */
-( function( factory ) {
-	if ( typeof define === "function" && define.amd ) {
-
-		// AMD. Register as an anonymous module.
-		define( [ "../widgets/datepicker" ], factory );
-	} else {
-
-		// Browser globals
-		factory( jQuery.datepicker );
-	}
-}( function( datepicker ) {
-
-datepicker.regional.af = {
-	closeText: "Selekteer",
-	prevText: "Vorige",
-	nextText: "Volgende",
-	currentText: "Vandag",
-	monthNames: [ "Januarie","Februarie","Maart","April","Mei","Junie",
-	"Julie","Augustus","September","Oktober","November","Desember" ],
-	monthNamesShort: [ "Jan", "Feb", "Mrt", "Apr", "Mei", "Jun",
-	"Jul", "Aug", "Sep", "Okt", "Nov", "Des" ],
-	dayNames: [ "Sondag", "Maandag", "Dinsdag", "Woensdag", "Donderdag", "Vrydag", "Saterdag" ],
-	dayNamesShort: [ "Son", "Maa", "Din", "Woe", "Don", "Vry", "Sat" ],
-	dayNamesMin: [ "So","Ma","Di","Wo","Do","Vr","Sa" ],
-	weekHeader: "Wk",
-	dateFormat: "dd/mm/yy",
-	firstDay: 1,
-	isRTL: false,
-	showMonthAfterYear: false,
-	yearSuffix: "" };
-datepicker.setDefaults( datepicker.regional.af );
-
-return datepicker.regional.af;
-
-} ) );
diff --git a/wiki/inc/lang/af/lang.php b/wiki/inc/lang/af/lang.php
deleted file mode 100644
index f719647..0000000
--- a/wiki/inc/lang/af/lang.php
+++ /dev/null
@@ -1,68 +0,0 @@
-<?php
-/**
- * af language file
- *
- * This file was initially built by fetching translations from other
- * Wiki projects. See the @url lines below. Additional translations
- * and fixes where done for DokuWiki by the people mentioned in the
- * lines starting with @author
- *
- * @url http://svn.wikimedia.org/viewvc/mediawiki/trunk/phase3/languages/messages/MessagesAf.php?view=co
- */
-$lang['encoding']              = 'utf-8';
-$lang['direction']             = 'ltr';
-$lang['btn_edit']              = 'Wysig hierdie bladsy';
-$lang['btn_source']            = 'Bekyk bronteks';
-$lang['btn_search']            = 'Soek';
-$lang['btn_preview']           = 'Voorskou';
-$lang['btn_revs']              = 'geskiedenis';
-$lang['btn_recent']            = 'Onlangse wysigings';
-$lang['btn_cancel']            = 'Kanselleer';
-$lang['btn_secedit']           = 'Wysig';
-$lang['btn_login']             = 'Teken in';
-$lang['btn_logout']            = 'Teken uit';
-$lang['btn_back']              = 'Terug';
-$lang['btn_backlink']          = 'Wat skakel hierheen';
-$lang['btn_subscribe']         = 'Hou bladsy dop';
-$lang['btn_register']          = 'Skep gerus \'n rekening';
-$lang['loggedinas']            = 'Ingeteken as:';
-$lang['user']                  = 'Gebruikernaam';
-$lang['pass']                  = 'Wagwoord';
-$lang['newpass']               = 'Nuive wagwoord';
-$lang['oldpass']               = 'Ou wagwoord';
-$lang['passchk']               = 'Herhaal wagwoord';
-$lang['remember']              = 'Onthou my wagwoord oor sessies';
-$lang['fullname']              = 'Regte naam';
-$lang['email']                 = 'E-pos';
-$lang['badlogin']              = 'Intekenfout';
-$lang['minoredit']             = 'Klein wysiging';
-$lang['reguexists']            = 'Die gebruikersnaam wat jy gebruik het, is alreeds gebruik. Kies asseblief \'n ander gebruikersnaam.';
-$lang['regsuccess2']           = 'Rekening geskep';
-$lang['regbadpass']            = 'Die ingetikte wagwoorde is nie dieselfde nie.';
-$lang['regpwmail']             = 'Jo DokuWiki wagwoord';
-$lang['profnoempty']           = 'Jy moet \'n name en a e-posadres in sit';
-$lang['resendpwdmissing']      = 'Jammer, jy moet ales in fil';
-$lang['resendpwdconfirm']      = '\'n Bevestigingpos is gestuur na die gekose e-posadres.';
-$lang['resendpwdsuccess']      = 'Jou nuive wagwoord was deur e-pos gesteur';
-$lang['uploadsucc']            = 'Laai suksesvol';
-$lang['uploadfail']            = 'Laai fout';
-$lang['js']['hidedetails']     = 'Steek weg';
-$lang['mediaroot']             = 'root';
-$lang['toc']                   = 'Inhoud';
-$lang['current']               = 'huidige';
-$lang['line']                  = 'Streak';
-$lang['youarehere']            = 'Jy is hier:';
-$lang['by']                    = 'by';
-$lang['restored']              = 'Het terug gegaan na vroeëre weergawe (%s)';
-$lang['summary']               = 'Voorskou';
-$lang['qb_bold']               = 'Vetdruk';
-$lang['qb_italic']             = 'Skuinsdruk';
-$lang['qb_link']               = 'Interne skakel';
-$lang['qb_extlink']            = 'Eksterne skakel';
-$lang['qb_hr']                 = 'Horisontale streep';
-$lang['qb_sig']                = 'Handtekening met datum';
-$lang['btn_img_backto']        = 'Terug na %s';
-$lang['img_date']              = 'Datem:';
-$lang['img_camera']            = 'Camera:';
-$lang['i_wikiname']            = 'Wiki Naam';
-$lang['i_funcna']              = 'PHP funksie <code>%s</code> is nie beskibaar nie. Miskien is dit af gehaal.';
diff --git a/wiki/inc/lang/ar/admin.txt b/wiki/inc/lang/ar/admin.txt
deleted file mode 100644
index bbb4438..0000000
--- a/wiki/inc/lang/ar/admin.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== الأدارة ======
-
-قائمة بالمهام الإدارية المتاحة ÙÙ‰ دوكو ويكي.
\ No newline at end of file
diff --git a/wiki/inc/lang/ar/adminplugins.txt b/wiki/inc/lang/ar/adminplugins.txt
deleted file mode 100644
index 44790a0..0000000
--- a/wiki/inc/lang/ar/adminplugins.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Ø¥Ø¶Ø§ÙØ§Øª إضاÙية =====
\ No newline at end of file
diff --git a/wiki/inc/lang/ar/backlinks.txt b/wiki/inc/lang/ar/backlinks.txt
deleted file mode 100644
index f6d24f4..0000000
--- a/wiki/inc/lang/ar/backlinks.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== إرتباطات ======
-
-هذه قائمة Ø¨Ø§Ù„ØµÙØ­Ø§Øª المرتبطة Ø¨Ø§Ù„ØµÙØ­Ø© الحالية.
\ No newline at end of file
diff --git a/wiki/inc/lang/ar/conflict.txt b/wiki/inc/lang/ar/conflict.txt
deleted file mode 100644
index 4d7c4e8..0000000
--- a/wiki/inc/lang/ar/conflict.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== يوجد نسخة أحدث ======
-
-يوجد نسخة أحدث من هذه Ø§Ù„ØµÙØ­Ø©. يحدث هذا عندما يحرر مشترك آخر Ø§Ù„ØµÙØ­Ø© أثناء تعديلك لها.
-
-Ø§ÙØ­Øµ Ø§Ù„Ø§Ø®ØªÙ„Ø§ÙØ§Øª جيداً، ثم حدد أية نسخة ØªØ­ÙØ¸. بالضغط على "Ø­ÙØ¸" Ø³ØªØ­ÙØ¸ نسختك. أما بالضغط على "إلغاء" ÙØ³ØªØ­Ø§Ùظ على النسخة الحالية.
\ No newline at end of file
diff --git a/wiki/inc/lang/ar/denied.txt b/wiki/inc/lang/ar/denied.txt
deleted file mode 100644
index b369f7f..0000000
--- a/wiki/inc/lang/ar/denied.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== لا صلاحيات ======
-
-عذرا، ليس مصرح لك الاستمرار
\ No newline at end of file
diff --git a/wiki/inc/lang/ar/diff.txt b/wiki/inc/lang/ar/diff.txt
deleted file mode 100644
index ed1937c..0000000
--- a/wiki/inc/lang/ar/diff.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Ø§Ø®ØªÙ„Ø§ÙØ§Øª ======
-
-عرض Ø§Ù„Ø§Ø®ØªÙ„Ø§ÙØ§Øª بين النسخة المختارة Ùˆ النسخة الحالية من Ø§Ù„ØµÙØ­Ø©.
\ No newline at end of file
diff --git a/wiki/inc/lang/ar/draft.txt b/wiki/inc/lang/ar/draft.txt
deleted file mode 100644
index 50c07f2..0000000
--- a/wiki/inc/lang/ar/draft.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== وجدت مسوّدة ======
-
-إن تعديلك لهذه Ø§Ù„ØµÙØ­Ø© ÙÙŠ المرة الماضية لم يتم بشكل صحيح، Ø­ÙØ¸Øª دوكو ويكي آلياً مسوّدة من عملك الأخير الذي يمكنك استخدامه الآن لمتابعة التعديل. Ùيما يلي البيانات التي Ø­ÙØ¸Øª من المرة الماضية.
-
-يرجى أن تقرر إن كنت تريد //استعادة// عملك السابق أو //حذÙ// المسوّدة أو //إلغاء// عملية التحرير.
diff --git a/wiki/inc/lang/ar/edit.txt b/wiki/inc/lang/ar/edit.txt
deleted file mode 100644
index d4e1eb4..0000000
--- a/wiki/inc/lang/ar/edit.txt
+++ /dev/null
@@ -1 +0,0 @@
-حرر هذه Ø§Ù„ØµÙØ­Ø© ثم اضغط على "Ø­ÙØ¸". انظر [[wiki:syntax|دليل الصياغة]] Ù„Ù…Ø¹Ø±ÙØ© صيغة الويكي. يرجى تعديل Ø§Ù„ØµÙØ­Ø© Ùقط إذا كنت ستحسنها. إذا رغبت ÙÙ‰ اختبار شيء ما، تعلم الخطوات الأولى ÙÙ‰ [[playground:playground|الملعب]].
\ No newline at end of file
diff --git a/wiki/inc/lang/ar/editrev.txt b/wiki/inc/lang/ar/editrev.txt
deleted file mode 100644
index a51fe94..0000000
--- a/wiki/inc/lang/ar/editrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**لقد حملت نسخة قديمة من Ø§Ù„ØµÙØ­Ø©!** إذا Ø­ÙØ¸ØªÙ‡Ø§ØŒ سيتم إنشاء نسخة جديدة بهذه المعلومات.
-----
\ No newline at end of file
diff --git a/wiki/inc/lang/ar/index.txt b/wiki/inc/lang/ar/index.txt
deleted file mode 100644
index 43840ec..0000000
--- a/wiki/inc/lang/ar/index.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Ùهرس ======
-
-هذا Ùهرس لجميع Ø§Ù„ØµÙØ­Ø§Øª مرتبة حسب [[doku>namespaces|namespaces]].
diff --git a/wiki/inc/lang/ar/install.html b/wiki/inc/lang/ar/install.html
deleted file mode 100644
index 3ef23ae..0000000
--- a/wiki/inc/lang/ar/install.html
+++ /dev/null
@@ -1,12 +0,0 @@
-<p>تساعد هذه Ø§Ù„ØµÙØ­Ø© ÙÙŠ التثبيت والإعداد الأوليين Ù„ <a href="http://dokuwiki.org">دوكو ويكي</a>. مزيد من المعلومات عن هذا المثبت ÙÙŠ
-<a href="http://dokuwiki.org/installer">ØµÙØ­Ø© التوثيق</a> الخاصة به.</p>
-
-<p>دوكو ويكي تستخدم Ù…Ù„ÙØ§Øª عادية لتخزين Ø§Ù„ØµÙØ­Ø§Øª Ùˆ المعلومات المرتبطة بها (مثل. الصور , ÙˆÙهارس البحث, والنسخ القديمة, إلخ). لكي تعمل بنجاح دوكو ويكي <strong>يجب</strong> ان يكون لديها اذن بالكتابة على المجلدات التي تحوي هذه Ø§Ù„Ù…Ù„ÙØ§Øª. هذا المثبت غير قادر على اعداد اذونات المجلدات. عادة يجب عمل هذا مباشرة باستخدام أمر ÙÙŠ محث الاوامر أو إن كنت تستخدم Ø§Ø³ØªØ¶Ø§ÙØ©ØŒ عن طريقة FTP ÙÙŠ لوحة تحكم Ø§Ù„Ø§Ø³ØªØ¶Ø§ÙØ© (مثل. cPanel).</p>
-
-<p>Ø³ÙŠÙØ¹Ø¯ هذا المثبت اعدادات دوكو ويكي Ù„
-<abbr title="قائمة التحكم بالوصول">ACL</abbr>, الذي سيسمح للمدير بالولوج Ùˆ الوصول لقائمة إدارة دوكو ويكي لتثبيت Ø§Ù„Ø¥Ø¶Ø§ÙØ§ØªØŒ وإدارة المستخدمين، Ùˆ التحكم بالوصول Ù„ØµÙØ­Ø§Øª الويكي، وتعديل الاعدادات.
-ليس مطلوبا لأجل عمل دوكو ويكي, لكنه سيجعل دوكو ويكي أسهل على المدير.</p>
-
-<p>المستخدمين الخبراء Ùˆ المستخدمين مع متطلبات خاصة عليهم استخدام هذا الرابط Ù„ØªÙØ§ØµÙŠÙ„ تتعلق ب
-<a href="http://dokuwiki.org/install">توجيهات التثبيت</a>
-و <a href="http://dokuwiki.org/config">ضبط الإعدادات</a>.</p>
\ No newline at end of file
diff --git a/wiki/inc/lang/ar/jquery.ui.datepicker.js b/wiki/inc/lang/ar/jquery.ui.datepicker.js
deleted file mode 100644
index 95784e8..0000000
--- a/wiki/inc/lang/ar/jquery.ui.datepicker.js
+++ /dev/null
@@ -1,39 +0,0 @@
-/* Arabic Translation for jQuery UI date picker plugin. */
-/* Used in most of Arab countries, primarily in Bahrain, */
-/* Kuwait, Oman, Qatar, Saudi Arabia and the United Arab Emirates, Egypt, Sudan and Yemen. */
-/* Written by Mohammed Alshehri -- m@dralshehri.com */
-
-( function( factory ) {
-	if ( typeof define === "function" && define.amd ) {
-
-		// AMD. Register as an anonymous module.
-		define( [ "../widgets/datepicker" ], factory );
-	} else {
-
-		// Browser globals
-		factory( jQuery.datepicker );
-	}
-}( function( datepicker ) {
-
-datepicker.regional.ar = {
-	closeText: "إغلاق",
-	prevText: "&#x3C;السابق",
-	nextText: "التالي&#x3E;",
-	currentText: "اليوم",
-	monthNames: [ "يناير", "ÙØ¨Ø±Ø§ÙŠØ±", "مارس", "أبريل", "مايو", "يونيو",
-	"يوليو", "أغسطس", "سبتمبر", "أكتوبر", "نوÙمبر", "ديسمبر" ],
-	monthNamesShort: [ "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12" ],
-	dayNames: [ "الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت" ],
-	dayNamesShort: [ "أحد", "اثنين", "ثلاثاء", "أربعاء", "خميس", "جمعة", "سبت" ],
-	dayNamesMin: [ "ح", "ن", "ث", "ر", "خ", "ج", "س" ],
-	weekHeader: "أسبوع",
-	dateFormat: "dd/mm/yy",
-	firstDay: 0,
-		isRTL: true,
-	showMonthAfterYear: false,
-	yearSuffix: "" };
-datepicker.setDefaults( datepicker.regional.ar );
-
-return datepicker.regional.ar;
-
-} ) );
diff --git a/wiki/inc/lang/ar/lang.php b/wiki/inc/lang/ar/lang.php
deleted file mode 100644
index 82ef532..0000000
--- a/wiki/inc/lang/ar/lang.php
+++ /dev/null
@@ -1,348 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Mostafa Hussein <mostafa@gmail.com>
- * @author Yaman Hokan <always.smile.yh@hotmail.com>
- * @author Usama Akkad <uahello@gmail.com>
- * @author uahello@gmail.com
- * @author Ahmad Abd-Elghany <tolpa1@gmail.com>
- * @author alhajr <alhajr300@gmail.com>
- * @author Mohamed Belhsine <b.mohamed897@gmail.com>
- */
-$lang['encoding']              = 'utf-8';
-$lang['direction']             = 'rtl';
-$lang['doublequoteopening']    = '“';
-$lang['doublequoteclosing']    = 'â€';
-$lang['singlequoteopening']    = '‘';
-$lang['singlequoteclosing']    = '’';
-$lang['apostrophe']            = 'Ø›';
-$lang['btn_edit']              = 'حرر هذه Ø§Ù„ØµÙØ­Ø©';
-$lang['btn_source']            = 'اعرض مصدر Ø§Ù„ØµÙØ­Ø©';
-$lang['btn_show']              = 'اعرض Ø§Ù„ØµÙØ­Ø©';
-$lang['btn_create']            = 'أنشئ هذه Ø§Ù„ØµÙØ­Ø©';
-$lang['btn_search']            = 'ابحث';
-$lang['btn_save']              = 'Ø§Ø­ÙØ¸';
-$lang['btn_preview']           = 'عاين';
-$lang['btn_top']               = 'ارجع للأعلى';
-$lang['btn_newer']             = '<< أحدث';
-$lang['btn_older']             = 'أقدم >>';
-$lang['btn_revs']              = 'نسخ قديمة';
-$lang['btn_recent']            = 'أحدث التغييرات';
-$lang['btn_upload']            = 'Ø§Ø±ÙØ¹';
-$lang['btn_cancel']            = 'ألغ';
-$lang['btn_index']             = 'خريطة موقع';
-$lang['btn_secedit']           = 'حرر';
-$lang['btn_login']             = 'تسجيل الدخول';
-$lang['btn_logout']            = 'خروج';
-$lang['btn_admin']             = 'المدير';
-$lang['btn_update']            = 'حدّث';
-$lang['btn_delete']            = 'احذÙ';
-$lang['btn_back']              = 'ارجع';
-$lang['btn_backlink']          = 'ارتباطات';
-$lang['btn_subscribe']         = 'ادر الاشتراكات';
-$lang['btn_profile']           = 'حدث المل٠الشخصي';
-$lang['btn_reset']             = 'صÙّر';
-$lang['btn_resendpwd']         = 'اضبط كلمة سر جديدة';
-$lang['btn_draft']             = 'حرر المسودة';
-$lang['btn_recover']           = 'استرجع المسودة';
-$lang['btn_draftdel']          = 'احذ٠المسوّدة';
-$lang['btn_revert']            = 'استعد';
-$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']                  = 'كلمة السر';
-$lang['newpass']               = 'كلمة سر جديدة';
-$lang['oldpass']               = 'أكد كلمة السر الحالية';
-$lang['passchk']               = 'مرة أخرى';
-$lang['remember']              = 'تذكرني';
-$lang['fullname']              = 'الاسم الحقيقي';
-$lang['email']                 = 'البريد الإلكتروني';
-$lang['profile']               = 'المل٠الشخصي';
-$lang['badlogin']              = 'عذرا، اسم المشترك أو كلمة السر غير صحيحة';
-$lang['badpassconfirm']        = 'عذراً,كلمة السر غير صحيحة';
-$lang['minoredit']             = 'تعديلات Ø·ÙÙŠÙØ©';
-$lang['draftdate']             = 'Ø­ÙØ¸ المسودات آليا Ù…ÙØ¹Ù‘Ù„';
-$lang['nosecedit']             = 'غÙيرت Ø§Ù„ØµÙØ­Ø© ÙÙŠ هذه الأثناء، معلومات الجزء اصبحت قديمة. Ø­ÙÙ…Ùلت كل Ø§Ù„ØµÙØ­Ø© بدلا.';
-$lang['regmissing']            = 'عذرا، عليك ملء جميع الحقول.';
-$lang['reguexists']            = 'عذرا، يوجد مشترك Ø¨Ù†ÙØ³ الاسم.';
-$lang['regsuccess']            = 'أنشئ المستخدم و ارسلت كلمة السر بالبريد.';
-$lang['regsuccess2']           = 'أنشئ المستخدم.';
-$lang['regmailfail']           = 'حدث خطأ ÙÙ‰ إرسال رسالة كلمة السر. يرجى مراسلة المدير!';
-$lang['regbadmail']            = 'يبدو البريد الإلكتروني المعطى غيرَ صحيح، إن كنت تظن أن هذا خطأ، راسل المدير';
-$lang['regbadpass']            = 'كلمتا المرور غير متطابقتين، حاول مرة أخرى.';
-$lang['regpwmail']             = 'كلمة مرورك إلى دوكو ويكي';
-$lang['reghere']               = 'ليس لديك حساب بعد؟ احصل على واحد';
-$lang['profna']                = 'هذه الويكي لا تدعم تعديل المل٠الشخصي';
-$lang['profnochange']          = 'لا تغييرات، لا شيء Ù„ÙŠÙØ¹Ù…Ù„.';
-$lang['profnoempty']           = 'غير مسموح باسم مستخدم أو بريد ÙØ§Ø±Øº.';
-$lang['profchanged']           = 'Ø­ÙØ¯Ø« المل٠الشخصي للمستخدم بنجاح.';
-$lang['profnodelete']          = 'هذه الموسوعه لا ندعم حذ٠الأشخاص';
-$lang['profdeleteuser']        = 'احذ٠حساب';
-$lang['profdeleted']           = 'حسابك الخاص تم حذÙÙ‡ من هذه الموسوعة';
-$lang['profconfdelete']        = 'أنا أرغب ÙÙŠ حذ٠حسابي من هذه الموسوعة.<br/>
-هذا الحدث غير ممكن.';
-$lang['profconfdeletemissing'] = 'لم تقم بوضع علامة ÙÙŠ مربع التأكيد';
-$lang['pwdforget']             = 'أنسيت كلمة السر؟ احصل على واحدة جديدة';
-$lang['resendna']              = 'هذه الويكي لا تدعم إعادة إرسال كلمة المرور.';
-$lang['resendpwd']             = 'اضبط كلمة سر جديدة لـ';
-$lang['resendpwdmissing']      = 'عذراّ، يجب أن تملأ كل الحقول.';
-$lang['resendpwdnouser']       = 'عذراً، لم نجد المستخدم هذا ÙÙŠ قاعدة بياناتنا.';
-$lang['resendpwdbadauth']      = 'عذراً، رمز Ø§Ù„ØªÙØ¹ÙŠÙ„ هذا غير صحيح. نأكد من استخدامك كامل وصلة التأكيد.';
-$lang['resendpwdconfirm']      = 'Ø§ÙØ±Ø³Ù„ رابط التأكيد بواسطة البريد.';
-$lang['resendpwdsuccess']      = 'كلمة السرالجديدة Ø§ÙØ±Ø³Ù„ت عبر البريد.';
-$lang['license']               = 'مالم يشر لخلا٠ذلك، ÙØ¥Ù† المحتوى ÙÙŠ هذه الويكي مرخص ÙˆÙÙ‚ الرخصة التالية:';
-$lang['licenseok']             = 'لاحظ: بتحرير هذه Ø§Ù„ØµÙØ­Ø© أنت تواÙÙ‚ على ترخيص محتواها تحت الرخصة التالية:';
-$lang['searchmedia']           = 'ابحث ÙÙŠ أسماء Ø§Ù„Ù…Ù„ÙØ§Øª:';
-$lang['searchmedia_in']        = 'ابحث ÙÙŠ %s';
-$lang['txt_upload']            = 'اختر Ù…Ù„ÙØ§Ù‹ Ù„Ù„Ø±ÙØ¹:';
-$lang['txt_filename']          = 'Ø±ÙØ¹ كـ (اختياري):';
-$lang['txt_overwrt']           = 'اكتب على مل٠موجود';
-$lang['maxuploadsize']         = 'الحجم الاقصى %s للملÙ';
-$lang['lockedby']              = 'مقÙلة حاليا لـ:';
-$lang['lockexpire']            = 'ينتهي القÙÙ„ ÙÙŠ:';
-$lang['js']['willexpire']      = 'سينتهي Ù‚ÙÙ„ تحرير هذه Ø§Ù„ØµÙØ­Ù‡ خلال دقيقة.\nلتجنب التعارض استخدم زر المعاينة لتصÙير مؤقت القÙÙ„.';
-$lang['js']['notsavedyet']     = 'التعديلات غير المحÙوظة ستÙقد.';
-$lang['js']['searchmedia']     = 'ابحث عن Ù…Ù„ÙØ§Øª';
-$lang['js']['keepopen']        = 'أبقي Ø§Ù„Ù†Ø§ÙØ°Ø© Ù…ÙØªÙˆØ­Ø© أثناء الاختيار';
-$lang['js']['hidedetails']     = 'Ø£Ø®Ù Ø§Ù„ØªÙØ§ØµÙŠÙ„';
-$lang['js']['mediatitle']      = 'إعدادات الرابط';
-$lang['js']['mediadisplay']    = 'نوع الرابط';
-$lang['js']['mediaalign']      = 'المحاذاة';
-$lang['js']['mediasize']       = 'حجم الصورة';
-$lang['js']['mediatarget']     = 'هد٠الرابط';
-$lang['js']['mediaclose']      = 'أغلق';
-$lang['js']['mediainsert']     = 'أدرج';
-$lang['js']['mediadisplayimg'] = 'أظهر الصورة.';
-$lang['js']['mediadisplaylnk'] = 'اظهر الرابط Ùقط.';
-$lang['js']['mediasmall']      = 'نسخة مصغرة';
-$lang['js']['mediamedium']     = 'نسخة متوسطة';
-$lang['js']['medialarge']      = 'نسخة كبيرة';
-$lang['js']['mediaoriginal']   = 'النسخة الأصلية';
-$lang['js']['medialnk']        = 'الرابط Ù„ØµÙØ­Ø© Ø§Ù„ØªÙØ§ØµÙŠÙ„';
-$lang['js']['mediadirect']     = 'رابط مباشر للأصل';
-$lang['js']['medianolnk']      = 'لا رابط';
-$lang['js']['medianolink']     = 'لا تربط الصورة';
-$lang['js']['medialeft']       = 'حاذي الصورة إلى اليسار.';
-$lang['js']['mediaright']      = 'حاذي الصورة إلى اليمين.';
-$lang['js']['mediacenter']     = 'حاذي الصورة إلى الوسط.';
-$lang['js']['medianoalign']    = 'لا تستعمل المحاذاة.';
-$lang['js']['nosmblinks']      = 'الروابط لمجلدات مشاركة وندز تعمل Ùقط مع Ù…ØªØµÙØ­ Ù…Ø§ÙŠÙƒØ±ÙˆØ³ÙØª Internet Explorer.
-ما زال بإمكانك قص و لصق الرابط.';
-$lang['js']['linkwiz']         = 'مرشد الروابط';
-$lang['js']['linkto']          = 'الرابط إلى :';
-$lang['js']['del_confirm']     = 'هل حقاً تريد حذ٠البنود المختارة؟';
-$lang['js']['restore_confirm'] = 'أمتأكد من استرجاع هذه النسخة؟';
-$lang['js']['media_diff']      = 'عرض Ø§Ù„ÙØ±ÙˆÙ‚:';
-$lang['js']['media_diff_both'] = 'جنبا إلى جنب';
-$lang['js']['media_select']    = 'اختر Ù…Ù„ÙØ§...';
-$lang['js']['media_upload_btn'] = 'Ø§Ø±ÙØ¹';
-$lang['js']['media_done_btn']  = 'تم';
-$lang['js']['media_drop']      = 'اسقط المل٠هنا Ù„Ø±ÙØ¹Ù‡';
-$lang['js']['media_cancel']    = 'أزل';
-$lang['js']['media_overwrt']   = 'أكتب Ùوق Ø§Ù„Ù…Ù„ÙØ§Øª الموجودة';
-$lang['rssfailed']             = 'خطأ ما حدث أثناء جلب مل٠التغذية:';
-$lang['nothingfound']          = 'لا يوجد شيء';
-$lang['mediaselect']           = 'Ù…Ù„ÙØ§Øª الوسائط';
-$lang['uploadsucc']            = 'تم Ø§Ù„Ø±ÙØ¹ بنجاح';
-$lang['uploadfail']            = 'ÙØ´Ù„ Ø§Ù„Ø±ÙØ¹ØŒ ربما خطأ تراخيص؟';
-$lang['uploadwrong']           = 'Ø§Ù„Ø±ÙØ¹ ممنوع، نوع المل٠مرÙوض!';
-$lang['uploadexist']           = 'المل٠موجود أصلاً. لم ÙŠÙØ¹Ù…Ù„ شيئ.';
-$lang['uploadbadcontent']      = 'المحتوى المرÙوع لم يطابق لاحقة Ù…Ù„ÙØ§Øª %s.';
-$lang['uploadspam']            = 'Ø§Ù„Ø±ÙØ¹ محجوب بواسطة القائمة السوداء لبرنامج تقÙÙŠ التطÙÙ„.';
-$lang['uploadxss']             = 'رÙÙØ¶ Ø§Ù„Ø±ÙØ¹ للإشتباه بمحتوى ضار.';
-$lang['uploadsize']            = 'المل٠المرÙوع كان كبيرا جدا . ( الحد %s )';
-$lang['deletesucc']            = 'Ø­ÙØ°Ù المل٠"%s".';
-$lang['deletefail']            = 'تعذر حذ٠"%s" - تأكد من الصلاحيات.';
-$lang['mediainuse']            = 'لم يحذ٠المل٠"%s" - مازال مستخدما.';
-$lang['namespaces']            = 'ÙØ¶Ø§Ø¡ التسمية';
-$lang['mediafiles']            = 'Ù…Ù„ÙØ§Øª موجودة ÙÙŠ';
-$lang['accessdenied']          = 'لا يسمح لك برؤية هذه Ø§Ù„ØµÙØ­Ø©.';
-$lang['mediausage']            = 'استخدم هذه الصياغة للدلالة على هذا الملÙ:';
-$lang['mediaview']             = 'اعرض المل٠الأصلي';
-$lang['mediaroot']             = 'الجذر';
-$lang['mediaupload']           = 'تحميل مل٠إلى ÙØ¶Ø§Ø¡ التسمية هنا. لإنشاء ÙØ¶Ø§Ø¡Ø§Øª تسمية ÙØ±Ø¹ÙŠØ©ØŒ أضÙها إلى بداية خانة تحميل باسم ÙˆØ§ÙØµÙ„ بينها باستخدام Ø§Ù„ÙØ§ØµÙ„تان الرأسيتان.';
-$lang['mediaextchange']        = 'غÙيرت لاحقة المل٠من .%s إلى .%s!';
-$lang['reference']             = 'مراجع لـ';
-$lang['ref_inuse']             = 'لا يمكن Ø­Ø°Ù Ø§Ù„Ù…Ù„ÙØŒ لأنه مستخدم من قبل Ø§Ù„ØµÙØ­Ø§Øª التالية:';
-$lang['ref_hidden']            = 'بعض المراجع على ØµÙØ­Ø§Øª لا تملك صلاحيات قراءتها';
-$lang['hits']                  = 'مرة';
-$lang['quickhits']             = 'ØµÙØ­Ø§Øª مطابقة';
-$lang['toc']                   = 'جدول المحتويات';
-$lang['current']               = 'حالي';
-$lang['yours']                 = 'نسختك';
-$lang['diff']                  = 'أظهر Ø§Ù„Ø§Ø®ØªÙ„Ø§ÙØ§Øª مع النسخة الحالية';
-$lang['diff2']                 = 'أظهر Ø§Ù„Ø§Ø®ØªÙ„Ø§ÙØ§Øª بين النسخ المحددة';
-$lang['difflink']              = 'رابط إلى هذه المقارنة';
-$lang['diff_type']             = 'أظهر Ø§Ù„ÙØ±ÙˆÙ‚:';
-$lang['diff_inline']           = 'ضمنا';
-$lang['diff_side']             = 'جنبا إلى جنب';
-$lang['diffprevrev']           = 'المراجعة السابقة';
-$lang['diffnextrev']           = 'المراجعة التالية';
-$lang['difflastrev']           = 'المراجعة الأخيرة';
-$lang['diffbothprevrev']       = 'جانبي المراجعة السابقة';
-$lang['diffbothnextrev']       = 'جانبي المراجعة التالية';
-$lang['line']                  = 'سطر';
-$lang['breadcrumb']            = 'أثر:';
-$lang['youarehere']            = 'أنت هنا:';
-$lang['lastmod']               = 'آخر تعديل:';
-$lang['by']                    = 'بواسطة';
-$lang['deleted']               = 'Ø­Ø°ÙØª';
-$lang['created']               = 'اÙنشئت';
-$lang['restored']              = 'استعيدت نسخة قديمة (%s)';
-$lang['external_edit']         = 'تحرير خارجي';
-$lang['summary']               = 'ملخص التحرير';
-$lang['noflash']               = 'تحتاج إلى<a href="http://www.adobe.com/products/flashplayer/">ملحق Ùلاش أدوبي</a> لعرض هذا المحتوى.';
-$lang['download']              = 'نزل Snippet';
-$lang['tools']                 = 'أدوات';
-$lang['user_tools']            = 'أدوات المستخدم';
-$lang['site_tools']            = 'أدوات الموقع';
-$lang['page_tools']            = 'أدوات Ø§Ù„ØµÙØ­Ø©';
-$lang['skip_to_content']       = 'تجاوز إلى المحتوى';
-$lang['sidebar']               = 'العمود الجانبي';
-$lang['mail_newpage']          = 'Ø¥Ø¶Ø§ÙØ© ØµÙØ­Ø©:';
-$lang['mail_changed']          = 'تعديل ØµÙØ­Ø©:';
-$lang['mail_subscribe_list']   = 'ØµÙØ­Ø§Øª غيرت ÙÙŠ النطاق:';
-$lang['mail_new_user']         = 'مشترك جديد:';
-$lang['mail_upload']           = 'Ø±ÙØ¹ ملÙ:';
-$lang['changes_type']          = 'أظهر تغييرات الـ';
-$lang['pages_changes']         = 'ØµÙØ­Ø§Øª';
-$lang['media_changes']         = 'Ù…Ù„ÙØ§Øª الوسائط';
-$lang['both_changes']          = 'كلا من Ø§Ù„ØµÙØ­Ø§Øª ÙˆÙ…Ù„ÙØ§Øª الوسائط';
-$lang['qb_bold']               = 'نص عريض';
-$lang['qb_italic']             = 'نص مائل';
-$lang['qb_underl']             = 'نص مسطر';
-$lang['qb_code']               = 'نص برمجي';
-$lang['qb_strike']             = 'نص مشطوب';
-$lang['qb_h1']                 = 'عنوان مستوى ١';
-$lang['qb_h2']                 = 'عنوان مستوى ٢';
-$lang['qb_h3']                 = 'عنوان مستوى ٣';
-$lang['qb_h4']                 = 'عنوان مستوى ٤';
-$lang['qb_h5']                 = 'عنوان مستوى ٥';
-$lang['qb_h']                  = 'الترويسة';
-$lang['qb_hs']                 = 'حدد الترويسة';
-$lang['qb_hplus']              = 'ترويسة أعلى';
-$lang['qb_hminus']             = 'ترويسة Ø£Ø®ÙØ¶';
-$lang['qb_hequal']             = 'ترويسة Ø¨Ù†ÙØ³ المستوى';
-$lang['qb_link']               = 'رابط داخلي';
-$lang['qb_extlink']            = 'رابط خارجي';
-$lang['qb_hr']                 = 'سطر Ø£Ùقي';
-$lang['qb_ol']                 = 'بند ÙÙ‰ قائمة مرتبة';
-$lang['qb_ul']                 = 'بند ÙÙ‰ قائمة غير مرتبة';
-$lang['qb_media']              = 'أض٠صورا Ùˆ Ù…Ù„ÙØ§Øª أخرى';
-$lang['qb_sig']                = 'أدرج التوقيع';
-$lang['qb_smileys']            = 'الإبتسامات';
-$lang['qb_chars']              = 'محار٠خاصة';
-$lang['upperns']               = 'انتقل للنطاق الأب';
-$lang['metaedit']              = 'تحرير البيانات الشمولية ';
-$lang['metasaveerr']           = 'ÙØ´Ù„ت كتابة البيانات الشمولية';
-$lang['metasaveok']            = 'Ø­ÙÙØ¸Øª البيانات الشمولية';
-$lang['img_title']             = 'العنوان:';
-$lang['img_caption']           = 'وصÙ:';
-$lang['img_date']              = 'التاريخ:';
-$lang['img_fname']             = 'اسم الملÙ:';
-$lang['img_fsize']             = 'الحجم:';
-$lang['img_artist']            = 'المصور:';
-$lang['img_copyr']             = 'حقوق النسخ:';
-$lang['img_format']            = 'الهيئة:';
-$lang['img_camera']            = 'الكمرا:';
-$lang['img_keywords']          = 'كلمات Ù…ÙØªØ§Ø­ÙŠØ©:';
-$lang['img_width']             = 'العرض:';
-$lang['img_height']            = 'Ø§Ù„Ø¥Ø±ØªÙØ§Ø¹:';
-$lang['subscr_subscribe_success'] = 'اضي٠%s لقائمة اشتراك %s';
-$lang['subscr_subscribe_error'] = 'خطأ ÙÙŠ Ø¥Ø¶Ø§ÙØ© %s لقائمة اشتراك %s';
-$lang['subscr_subscribe_noaddress'] = 'ليس هناك عنوان مرتبط بولوجك، لا يمكن Ø§Ø¶Ø§ÙØªÙƒ لقائمة الاشتراك';
-$lang['subscr_unsubscribe_success'] = 'أزيل %s من قائمة اشتراك %s';
-$lang['subscr_unsubscribe_error'] = 'خطأ ÙÙŠ إزالة %s من قائمة اشتراك %s';
-$lang['subscr_already_subscribed'] = '%s مشترك مسبقا ÙÙŠ %s';
-$lang['subscr_not_subscribed'] = '%s ليس مشتركا ÙÙŠ %s';
-$lang['subscr_m_not_subscribed'] = 'لست مشتركا حاليا Ø¨Ø§Ù„ØµÙØ­Ø© او النطاق الحاليين';
-$lang['subscr_m_new_header']   = 'أض٠اشتراكا';
-$lang['subscr_m_current_header'] = 'الاشتراكات الحالية';
-$lang['subscr_m_unsubscribe']  = 'ألغ الاشتراك';
-$lang['subscr_m_subscribe']    = 'اشترك';
-$lang['subscr_m_receive']      = 'استقبال';
-$lang['subscr_style_every']    = 'بريدا على كل تغيير';
-$lang['subscr_style_digest']   = 'البريد الإلكتروني, ملخص للتغييرات لكل ØµÙØ­Ø© (كل يوم %.2f)';
-$lang['subscr_style_list']     = 'قائمة Ø¨Ø§Ù„ØµÙØ­Ø§Øª التي تم تغييرها منذ آخر بريد الإلكتروني (كل يوم %.2f)';
-$lang['authtempfail']          = 'تصريح المشترك غير Ù…ØªÙˆÙØ± مؤقتاً، إن استمرت هذه الحالة يرجى مراسلة المدير';
-$lang['i_chooselang']          = 'اختر لغتك';
-$lang['i_installer']           = 'برنامج تنصيب دوكو ويكي';
-$lang['i_wikiname']            = 'اسم الويكي';
-$lang['i_enableacl']           = 'ØªÙØ¹ÙŠÙ„ ACL - Ù…ÙØ¶Ù„';
-$lang['i_superuser']           = 'مشرÙ';
-$lang['i_problems']            = 'وجد برنامج التنصيب المشاكل التالية، لا يمكنك المتابعة قبل حلها.';
-$lang['i_modified']            = 'لأسباب أمنية هذا البرنامج سيعمل Ùقط مع تنصيب دوكو ويكي جديد Ùˆ غير معدّل.
-يجب أن تعيد ÙÙƒ ضغط Ø§Ù„Ù…Ù„ÙØ§Øª مرة أخرى من المكتبة المضغوطة، أو راجع <a href="http://dokuwiki.org/install"> تعليمات تنصيب دوكو ويكي </a> ';
-$lang['i_funcna']              = 'دالة PHP التالية غير Ù…ØªÙˆÙØ±Ø©.
-<code>%s</code>
-قد يكون مزود خدمة Ø§Ù„Ø§Ø³ØªÙØ§Ø¯Ø© قد حجبها لسبب ما.';
-$lang['i_phpver']              = 'نسخة PHP التي لديك هي
-<code>%s</code>
-وهي أقل من النسخة المطلوبة
-<code>%s</code>
-عليك تحديث نسخة PHP';
-$lang['i_mbfuncoverload']      = 'يجب ايقا٠تشغيل mbstring.func_overload ÙÙŠ مل٠php.ini لتشغيل دوكوويكي.';
-$lang['i_permfail']            = 'إن <code>%s</code> غير قابل للكتابة بواسطة دوكو ويكي، عليك تعديل إعدادات الصلاحيات لهذا المجلد!';
-$lang['i_confexists']          = 'إن <code>%s</code> موجود أصلاً';
-$lang['i_writeerr']            = 'لا يمكن إنشاء <code>%s</code>، عليك التأكد من صلاحيات المل٠أو المجلد وإنشاء المل٠يدوياً.';
-$lang['i_badhash']             = 'المل٠dokuwiki.php غير مصن٠أو قد تم تعديله
-(hash=<code>%s</code>)';
-$lang['i_badval']              = 'القيمة <code>%s</code> غير شرعية أو ÙØ§Ø±ØºØ©';
-$lang['i_success']             = 'الإعدادات تمت بنجاح، يرجى حذ٠المل٠install.php الآن.
-ثم تابع إلى <a href="doku.php?id=wiki:welcome"> دوكو ويكي الجديدة</a>';
-$lang['i_failure']             = 'بعض الأخطاء حدثت أثنا كتابة Ù…Ù„ÙØ§Øª الإعدادات، عليك تعديلها يدوياً قبل أن تستطيع استخدام <a href="doku.php?id=wiki:welcome"> دوكو ويكي الجديدة</a>';
-$lang['i_policy']              = 'تصريح ACL مبدئي';
-$lang['i_pol0']                = 'ويكي Ù…ÙØªÙˆØ­Ø©Ø› أي القراءة والكتابة والتحميل مسموحة للجميع';
-$lang['i_pol1']                = 'ويكي عامة؛ أي القراءة للجميع ولكن الكتابة والتحميل للمشتركين المسجلين Ùقط';
-$lang['i_pol2']                = 'ويكي مغلقة؛ أي القراءة والكتابة والتحميل للمشتركين المسجلين Ùقط';
-$lang['i_allowreg']            = 'السماح للمستخدمين بتسجيل Ø£Ù†ÙØ³Ù‡Ù…';
-$lang['i_retry']               = 'إعادة المحاولة';
-$lang['i_license']             = 'اختر الرخصة التي تريد وضع المحتوى تحتها:';
-$lang['i_license_none']        = 'لا تظهر أية معلومات للترخيص';
-$lang['i_pop_field']           = 'من ÙØ¶Ù„ك، ساعدنا على تحسين تجربة دوكي ويكي:';
-$lang['i_pop_label']           = 'مرة واحدة ÙÙŠ شهر، إرسال بيانات استخدام المجهول للمطورين دوكي ويكي';
-$lang['recent_global']         = 'انت تراقب حاليا التغييرات داخل نطاق <b>%s</b>. يمكنك أيضا <a href="%s">عرض أحدث تغييرات الويكي كلها</a>.';
-$lang['years']                 = '%d سنة مضت';
-$lang['months']                = '%d شهرا مضى';
-$lang['weeks']                 = '%d اسبوعا مضى';
-$lang['days']                  = '%d يوما مضى';
-$lang['hours']                 = '%d ساعة مضت';
-$lang['minutes']               = '%d دقيقة مضت';
-$lang['seconds']               = '%d ثانية مضت';
-$lang['wordblock']             = 'لم ØªØ­ÙØ¸ تغييراتك لاحتوائها على نص ممنوع )غثاء(';
-$lang['media_uploadtab']       = 'Ø§Ø±ÙØ¹';
-$lang['media_searchtab']       = 'ابحث';
-$lang['media_file']            = 'ملÙ';
-$lang['media_viewtab']         = 'عرض';
-$lang['media_edittab']         = 'تحرير';
-$lang['media_historytab']      = 'التاريخ';
-$lang['media_list_thumbs']     = 'المصغرات';
-$lang['media_list_rows']       = 'صÙÙˆÙ';
-$lang['media_sort_name']       = 'الاسم';
-$lang['media_sort_date']       = 'التاريخ';
-$lang['media_namespaces']      = 'اختر نطاقا';
-$lang['media_files']           = 'Ø§Ù„Ù…Ù„ÙØ§Øª ÙÙŠ %s';
-$lang['media_upload']          = 'Ø§Ø±ÙØ¹ إلى %s';
-$lang['media_search']          = 'ابحث ÙÙŠ %s';
-$lang['media_view']            = '%s';
-$lang['media_viewold']         = '%s ÙÙŠ %s';
-$lang['media_edit']            = 'حرر %s';
-$lang['media_history']         = 'تاريخ %s';
-$lang['media_meta_edited']     = 'Ø¹ÙØ¯Ù„ت الميتاداتا';
-$lang['media_perm_read']       = 'عÙوا، لست مخولا بقراءة Ø§Ù„Ù…Ù„ÙØ§Øª.';
-$lang['media_perm_upload']     = 'عÙوا، لست مخولا Ø¨Ø±ÙØ¹ Ø§Ù„Ù…Ù„ÙØ§Øª.';
-$lang['media_update']          = 'Ø§Ø±ÙØ¹ إصدارا أحدث';
-$lang['media_restore']         = 'استرجع هذه النسخة';
-$lang['currentns']             = 'مساحة الاسم الحالية';
-$lang['searchresult']          = 'نتيجة البحث';
-$lang['plainhtml']             = 'نص HTML غير منسق';
-$lang['wikimarkup']            = 'علامات الوكي';
-$lang['email_signature_text']       = 'أنشئت هذه الرسالة من دوكو ويكي ÙÙŠ
-@DOKUWIKIURL@';
diff --git a/wiki/inc/lang/ar/locked.txt b/wiki/inc/lang/ar/locked.txt
deleted file mode 100644
index 72e9be5..0000000
--- a/wiki/inc/lang/ar/locked.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Ø§Ù„ØµÙØ­Ø© مقÙلة ======
-
-هذه Ø§Ù„ØµÙØ­Ø© مقÙلة للتحرير بواسطة مستخدم أخر. عليك أن تنتظر حتى ينتهى من تعديلاتة أو تتنتهى مدة القÙÙ„.
\ No newline at end of file
diff --git a/wiki/inc/lang/ar/login.txt b/wiki/inc/lang/ar/login.txt
deleted file mode 100644
index 00ffccd..0000000
--- a/wiki/inc/lang/ar/login.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== دخول ======
-
-أنت لست مسجل دخولك. أدخل بيانات تسجيلك للدخول. يجب أن يكون مسموح Ù„Ù„Ù…ØªØµÙØ­ بأستخدام الكوكي.
diff --git a/wiki/inc/lang/ar/mailtext.txt b/wiki/inc/lang/ar/mailtext.txt
deleted file mode 100644
index 132e36e..0000000
--- a/wiki/inc/lang/ar/mailtext.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-تم تغيير أو Ø£Ø¶Ø§ÙØ© ØµÙØ­Ø© ÙÙ‰ دوكو ويكي. اليك Ø§Ù„ØªÙØ§ØµÙŠÙ„:
-
-التاريخ        : @DATE@
-Ø§Ù„Ù…ØªØµÙØ­     : @BROWSER@
-عنوان الـIP  : @IPADDRESS@
-أسم الجهاز    : @HOSTNAME@
-النسخة القديمة: @OLDPAGE@
-النسخة الجديدة: @NEWPAGE@
-ملخص التحرير: @SUMMARY@
-مستخدم        : @USER@
-
-@DIFF@
diff --git a/wiki/inc/lang/ar/mailwrap.html b/wiki/inc/lang/ar/mailwrap.html
deleted file mode 100644
index d257190..0000000
--- a/wiki/inc/lang/ar/mailwrap.html
+++ /dev/null
@@ -1,13 +0,0 @@
-<html>
-<head>
-<title>@TITLE@</title>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-</head>
-<body>
-
-@HTMLBODY@
-
-<br /><hr />
-<small>@EMAILSIGNATURE@</small>
-</body>
-</html>
\ No newline at end of file
diff --git a/wiki/inc/lang/ar/newpage.txt b/wiki/inc/lang/ar/newpage.txt
deleted file mode 100644
index ecaa7fa..0000000
--- a/wiki/inc/lang/ar/newpage.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== لا يوجد هذا الموضوع بعد ======
-
-لقد تابعت رابط لموضوع غير متواجد بعد. يمكنك إنشائة بالضعط على زر "انشيء هذه Ø§Ù„ØµÙØ­Ø©".
diff --git a/wiki/inc/lang/ar/norev.txt b/wiki/inc/lang/ar/norev.txt
deleted file mode 100644
index 2aa2330..0000000
--- a/wiki/inc/lang/ar/norev.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== لا توجد تلك النسخة ======
-
-النسخة المختارة ليست موجودة. أسبخدم زر "نسخ قديمة" لعرض قائمة بالنسخ القديمة من هذه Ø§Ù„ØµÙØ­Ø©.
diff --git a/wiki/inc/lang/ar/password.txt b/wiki/inc/lang/ar/password.txt
deleted file mode 100644
index 2489800..0000000
--- a/wiki/inc/lang/ar/password.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-أهلاً @FULLNAME@!
-
-ها هى معلومات المستخدم لـ @TITLE@ الموجودة على العنوان @DOKUWIKIURL@
-
-أسم المستخدم    : @LOGIN@
-كلمة السر : @PASSWORD@
diff --git a/wiki/inc/lang/ar/preview.txt b/wiki/inc/lang/ar/preview.txt
deleted file mode 100644
index c537e6b..0000000
--- a/wiki/inc/lang/ar/preview.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== عرض التعديلات ======
-
-هذا عرض لما سيصبح علية نص Ø§Ù„ØµÙØ­Ø©. تذكر أن التعديلات **لم ØªØ­ÙØ¸** بعد!
diff --git a/wiki/inc/lang/ar/pwconfirm.txt b/wiki/inc/lang/ar/pwconfirm.txt
deleted file mode 100644
index 6e971d3..0000000
--- a/wiki/inc/lang/ar/pwconfirm.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-مرحبا @FULLNAME@
-
-شخص ما طلب كلمة سر جديدة لـحسابك @TITLE@ ÙÙŠ @DOKUWIKIURL@
-إذا لم تكن قد طلبت كلمة سر جديدة رجاء قم بتجاهل هذه الرسالة .
-لتأكيد أنك أنت قمت بطلب كلمة السر الجديدة . نرجو منك الضغط على الرابط ÙÙŠ الأسÙÙ„ .
-@CONFIRM@
diff --git a/wiki/inc/lang/ar/read.txt b/wiki/inc/lang/ar/read.txt
deleted file mode 100644
index 3e6c504..0000000
--- a/wiki/inc/lang/ar/read.txt
+++ /dev/null
@@ -1 +0,0 @@
-هذه Ø§Ù„ØµÙØ­Ø© للقراءة Ùقط. يمكنك ØªØµÙØ­ مصدرها، ولكن لا يمكنك تعديلها. إن كنت ØªØªØ¹ØªÙØ¯ أن هناك خطأ ما خاطب المدير.
\ No newline at end of file
diff --git a/wiki/inc/lang/ar/recent.txt b/wiki/inc/lang/ar/recent.txt
deleted file mode 100644
index 94d6840..0000000
--- a/wiki/inc/lang/ar/recent.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== احدث التغييرات ======
-
-تم تعديل Ø§Ù„ØµÙØ­Ø§Øª التالية حديثا.
\ No newline at end of file
diff --git a/wiki/inc/lang/ar/register.txt b/wiki/inc/lang/ar/register.txt
deleted file mode 100644
index 10a7fa2..0000000
--- a/wiki/inc/lang/ar/register.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== سجل كمستخدم جديد ======
-
-املئ البيانات التالية لتسجيل حساب جديد على الويكي. تأكد من كتابة **بريد إلكتروني صحيح** - سترسل إليك كلمة سر جديدة. اسم الدخول يجب أن يكون [[doku>pagename|أسم ØµÙØ­Ø©]] صحيح.
diff --git a/wiki/inc/lang/ar/registermail.txt b/wiki/inc/lang/ar/registermail.txt
deleted file mode 100644
index 7c1cae0..0000000
--- a/wiki/inc/lang/ar/registermail.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-سجل مستخدم جديد. هذه هي Ø§Ù„ØªÙØ§ØµÙŠÙ„:
-
-اسم المستخدم : @NEWUSER@
-الاسم الكامل : @NEWNAME@
-البريد: @NEWEMAIL@
-
-التاريخ : @DATE@
-Ø§Ù„Ù…ØªØµÙØ­ : @BROWSER@
-عنوان-IP: @IPADDRESS@
-اسم المضيÙ: @HOSTNAME@
diff --git a/wiki/inc/lang/ar/resendpwd.txt b/wiki/inc/lang/ar/resendpwd.txt
deleted file mode 100644
index c697137..0000000
--- a/wiki/inc/lang/ar/resendpwd.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-==== إرسال كلمة سر جديدة ====
-
-رجاء اكتب اسم المستخدم ÙÙŠ الاستمارة الموجودة ÙÙŠ الأسÙÙ„ ليتم طلب رقم سري جديد لحسابك ÙÙŠ هذا الويكي . سيرسل رابط لتأكيد طلبك إلى بريدك الإلكتروني المسجل .
\ No newline at end of file
diff --git a/wiki/inc/lang/ar/resetpwd.txt b/wiki/inc/lang/ar/resetpwd.txt
deleted file mode 100644
index 2bbd4a2..0000000
--- a/wiki/inc/lang/ar/resetpwd.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== اضبط كلمة سر جديدة ======
-
-أدخل كلمة سر جديدة لحسابك ÙÙŠ هذه الويكي.
diff --git a/wiki/inc/lang/ar/revisions.txt b/wiki/inc/lang/ar/revisions.txt
deleted file mode 100644
index 930a4ef..0000000
--- a/wiki/inc/lang/ar/revisions.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-====== النسخ القديمة ======
-النسخ القديمة Ù„Ù„ØµÙØ­Ø© الحالية. لإستعادة نسخة قديمة: أخترها من المعروض، ثم إضغط على زر "عدل هذه Ø§Ù„ØµÙØ­Ø©" Ùˆ Ø£Ø­ÙØ¸Ù‡Ø§.
\ No newline at end of file
diff --git a/wiki/inc/lang/ar/searchpage.txt b/wiki/inc/lang/ar/searchpage.txt
deleted file mode 100644
index 52537c3..0000000
--- a/wiki/inc/lang/ar/searchpage.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== بحث ======
-
-نتائج البحث .  @CREATEPAGEINFO@
-
diff --git a/wiki/inc/lang/ar/showrev.txt b/wiki/inc/lang/ar/showrev.txt
deleted file mode 100644
index 3012907..0000000
--- a/wiki/inc/lang/ar/showrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**هذه نسخة قديمة من Ø§Ù„ØµÙØ­Ø©!**
-----
\ No newline at end of file
diff --git a/wiki/inc/lang/ar/stopwords.txt b/wiki/inc/lang/ar/stopwords.txt
deleted file mode 100644
index 1a88598..0000000
--- a/wiki/inc/lang/ar/stopwords.txt
+++ /dev/null
@@ -1,192 +0,0 @@
-# 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/
-ب
-ا
-،
-عشر
-عدد
-عدة
-عشرة
-عدم
-عام
-عاما
-عن
-عند
-عندما
-على
-عليه
-عليها
-زيارة
-سنة
-سنوات
-تم
-ضد
-بعد
-بعض
-اعادة
-اعلنت
-بسبب
-حتى
-اذا
-احد
-اثر
-برس
-باسم
-غدا
-شخصا
-صباح
-اطار
-اربعة
-اخرى
-بان
-اجل
-غير
-بشكل
-حاليا
-بن
-به
-ثم
-اÙ
-ان
-او
-اي
-بها
-ØµÙØ±
-حيث
-اكد
-الا
-اما
-امس
-السابق
-التى
-التي
-اكثر
-ايار
-ايضا
-ثلاثة
-الذاتي
-الاخيرة
-الثاني
-الثانية
-الذى
-الذي
-الان
-امام
-ايام
-خلال
-حوالى
-الذين
-الاول
-الاولى
-بين
-ذلك
-دون
-حول
-حين
-الÙ
-الى
-انه
-اول
-ضمن
-انها
-جميع
-الماضي
-الوقت
-المقبل
-اليوم
-Ù€

-Ùˆ
-Ùˆ6
-قد
-لا
-ما
-مع
-مساء
-هذا
-واحد
-واضاÙ
-ÙˆØ§Ø¶Ø§ÙØª
-ÙØ§Ù†
-قبل
-قال
-كان
-لدى
-نحو
-هذه
-وان
-واكد
-كانت
-واوضح
-مايو
-ÙÙ‰
-ÙÙŠ
-كل
-لم
-لن
-له
-من
-هو
-هي
-قوة
-كما
-لها
-منذ
-وقد
-ولا
-Ù†ÙØ³Ù‡
-لقاء
-مقابل
-هناك
-وقال
-وكان
-نهاية
-وقالت
-وكانت
-للامم
-Ùيه
-كلم
-لكن
-ÙˆÙÙŠ
-وقÙ
-ولم
-ومن
-وهو
-وهي
-يوم
-Ùيها
-منها
-مليار
-لوكالة
-يكون
-يمكن
-مليون
-ÙÙ‰
-أم
-about
-are
-and
-you
-your
-them
-their
-com
-for
-from
-into
-how
-that
-the
-this
-was
-what
-when
-where
-who
-will
-with
-und
-the
-www
diff --git a/wiki/inc/lang/ar/subscr_digest.txt b/wiki/inc/lang/ar/subscr_digest.txt
deleted file mode 100644
index 58256f5..0000000
--- a/wiki/inc/lang/ar/subscr_digest.txt
+++ /dev/null
@@ -1,16 +0,0 @@
-مرحبا!
-
-تغيرت Ø§Ù„ØµÙØ­Ø© @PAGE@ ÙÙŠ ويكي @TITLE@.
-هذه هي التغيرات:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-النسخة القديمة: @OLDPAGE@
-النسخة الحديثة: @NEWPAGE@
-
-لإلغاء تنبيه Ø§Ù„ØµÙØ­Ø©, لج الويكي ÙÙŠ
-@DOKUWIKIURL@ ثم Ø²ÙØ±
-@SUBSCRIBE@
-وألغ اشتراكك من Ø§Ù„ØµÙØ­Ø§Øª أو النظاقات
diff --git a/wiki/inc/lang/ar/subscr_form.txt b/wiki/inc/lang/ar/subscr_form.txt
deleted file mode 100644
index 919d256..0000000
--- a/wiki/inc/lang/ar/subscr_form.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== إدارة الإشتراكات ======
-
-تمكنك هذه Ø§Ù„ØµÙØ­Ø© من إدارة اشتراكاتك Ù„Ù„ØµÙØ­Ø© Ùˆ النطاق الحاليين.
\ No newline at end of file
diff --git a/wiki/inc/lang/ar/subscr_list.txt b/wiki/inc/lang/ar/subscr_list.txt
deleted file mode 100644
index 681fed2..0000000
--- a/wiki/inc/lang/ar/subscr_list.txt
+++ /dev/null
@@ -1,13 +0,0 @@
-مرحبا!
-
-ØµÙØ­Ø§Øª ÙÙŠ النطاق @PAGE@ ÙÙŠ ويكي @TITLE@ غÙيرت.
-هذه هي Ø§Ù„ØµÙØ­Ø§Øª المتغيرة:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-لإلغاء إشعارات Ø§Ù„ØµÙØ­Ø©, Ù„ÙØ¬ الويكي ÙÙŠ
-@DOKUWIKIURL@ ثم Ø²ÙØ±
-@SUBSCRIBE@
-ثم ألغ اشتراك تغييرات Ø§Ù„ØµÙØ­Ø© Ùˆ/أو النطاق.
diff --git a/wiki/inc/lang/ar/subscr_single.txt b/wiki/inc/lang/ar/subscr_single.txt
deleted file mode 100644
index 6ac7d21..0000000
--- a/wiki/inc/lang/ar/subscr_single.txt
+++ /dev/null
@@ -1,19 +0,0 @@
-مرحبا!
-
-Ø§Ù„ØµÙØ­Ø© @PAGE@ ÙÙŠ ويكي @TITLE@ تغيرت.
-هذه هي التغييرات:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-التاريخ : @DATE@
-المستخدم : @USER@
-ملخص التحرير: @SUMMARY@
-الاصدار القديم: @OLDPAGE@
-الاصدار الحديث: @NEWPAGE@
-
-لإلغاء إشعارات Ø§Ù„ØµÙØ­Ø©,Ù„ÙØ¬ الويكي ÙÙŠ
-@DOKUWIKIURL@ ثم Ø²ÙØ±
-@SUBSCRIBE@
-وألغ الاشتراك من تغييرات Ø§Ù„ØµÙØ­Ø© Ùˆ/أو النطاق.
diff --git a/wiki/inc/lang/ar/updateprofile.txt b/wiki/inc/lang/ar/updateprofile.txt
deleted file mode 100644
index 04a5a09..0000000
--- a/wiki/inc/lang/ar/updateprofile.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-==== تحديث بيانات حسابك ====
-
-عليك Ùقط أن تكمل كتابة الحقول التي تريد أن تغيرها . لا تستطيع تغيير اسم المستخدم .
\ No newline at end of file
diff --git a/wiki/inc/lang/ar/uploadmail.txt b/wiki/inc/lang/ar/uploadmail.txt
deleted file mode 100644
index bc61e6e..0000000
--- a/wiki/inc/lang/ar/uploadmail.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-رÙÙØ¹ مل٠إلى دوكو ويكي خاصتك. هذه هي Ø§Ù„ØªÙØ§ØµÙŠÙ„:
-
-المل٠: @MEDIA@
-التاريخ : @DATE@
-المستعرض : @BROWSER@
-عنوان-IP: @IPADDRESS@
-اسم المضيÙ: @HOSTNAME@
-الحجم : @SIZE@
-نوع MIME : @MIME@
-المستخدم: @USER@
diff --git a/wiki/inc/lang/az/admin.txt b/wiki/inc/lang/az/admin.txt
deleted file mode 100644
index 000caa0..0000000
--- a/wiki/inc/lang/az/admin.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== İdarəetmə ======
-
-Aşağıda Dokuwiki-də mümkün olan administrativ əməliyyatların siyahısı göstərilib.
-
diff --git a/wiki/inc/lang/az/adminplugins.txt b/wiki/inc/lang/az/adminplugins.txt
deleted file mode 100644
index 62b1f87..0000000
--- a/wiki/inc/lang/az/adminplugins.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== ÆlavÉ™ Plugin-lÉ™r =====
diff --git a/wiki/inc/lang/az/backlinks.txt b/wiki/inc/lang/az/backlinks.txt
deleted file mode 100644
index 72a7c85..0000000
--- a/wiki/inc/lang/az/backlinks.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Æks linklÉ™r ======
-
-Bu, bu səhifəyə link saxlayan səhifələrin siyahısıdır.
-
diff --git a/wiki/inc/lang/az/conflict.txt b/wiki/inc/lang/az/conflict.txt
deleted file mode 100644
index 908be09..0000000
--- a/wiki/inc/lang/az/conflict.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== Daha yeni versiya var ======
-
-Düzəliş etdiyiniz sənədin daha yeni versiyası var. Siz və başqa istifadəçi eyni zamanda eyni sənədi düzəliş edən zaman belə vəziyyət yaranır.
-
-AÅŸağıda göstÉ™rilÉ™n fÉ™rqlÉ™r ilÉ™ tanış olun vÉ™ lazım olan versiyanı tÉ™yin edin. ÆgÉ™r ''Yadda Saxla'' düymÉ™sini sıxsanız, onda sizin versiya seçilmiÅŸ olur. ''İmtina'' düymÉ™sini sıxsanız isÉ™ onda hazırki versiya seçilmiÅŸ olur.
diff --git a/wiki/inc/lang/az/denied.txt b/wiki/inc/lang/az/denied.txt
deleted file mode 100644
index c6fddb6..0000000
--- a/wiki/inc/lang/az/denied.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Müraciət qadağan edilmişdir ======
-
-Sizin bu əməliyyat üçün kifayət qədər haqqınız yoxdur.
diff --git a/wiki/inc/lang/az/diff.txt b/wiki/inc/lang/az/diff.txt
deleted file mode 100644
index a944f84..0000000
--- a/wiki/inc/lang/az/diff.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Fərqlər ======
-
-Burada bu səhifənin seçilmiş və hazırki versiyaların arasında olan fərqlər göstərilib.
-
diff --git a/wiki/inc/lang/az/draft.txt b/wiki/inc/lang/az/draft.txt
deleted file mode 100644
index 65c743d..0000000
--- a/wiki/inc/lang/az/draft.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== Qaralama tapılıb ======
-
-Bu səhifənin son düzəlişi düzgün başa çatdırılmamışdir. Düzəliş zamanı qaralama avtomatik yadda saxlanılmışdır. İndi Siz onu açıb düzəlişi davam edə bilərsiniz. Qaralama versiyası aşağıda göstərilib.
-
-İtmiş versiyanı //qaytarmaq//, qaralamanı //silmək//, və ya düzəlişi //imtina// etmək istədiyinizi təyin edin.
diff --git a/wiki/inc/lang/az/edit.txt b/wiki/inc/lang/az/edit.txt
deleted file mode 100644
index 7ce6630..0000000
--- a/wiki/inc/lang/az/edit.txt
+++ /dev/null
@@ -1 +0,0 @@
-SÉ™hifÉ™dÉ™ düzÉ™liÅŸ edin vÉ™ ''Yadda Saxla'' düymÉ™sini sıxın. Sintaksis ilÉ™ tanış olmaq üçün [[wiki:syntax]] sÉ™hifÉ™sini oxuyun. Ançaq sÉ™hifÉ™ni **daha yaxşı** etmÉ™ki istÉ™diyiniz halda düzÉ™liÅŸ etmÉ™yinizi xahiÅŸ edirik. ÆgÉ™r Siz nÉ™yi isÉ™ ancaq test etmÉ™k istÉ™yirsiniz sÉ™, onda [[playground:playground]] xüsusi sÉ™hifÉ™dÉ™n istifadÉ™ edin.
diff --git a/wiki/inc/lang/az/editrev.txt b/wiki/inc/lang/az/editrev.txt
deleted file mode 100644
index 8e98d2f..0000000
--- a/wiki/inc/lang/az/editrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**Sənədin köhnə versiyasını açmısınız!** Bu versiyanı yadda saxlasanız, bu mətn ilə olan yeni hazırki versiya yaratmış olarsınız.
-----
diff --git a/wiki/inc/lang/az/index.txt b/wiki/inc/lang/az/index.txt
deleted file mode 100644
index dc3ffa3..0000000
--- a/wiki/inc/lang/az/index.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Mündəricat ======
-
-Burada mövcud olan səhifələr Namespace-lərə ([[doku>namespaces|namespaces]]) görə sıralanmış halda göstərilib.
-
diff --git a/wiki/inc/lang/az/install.html b/wiki/inc/lang/az/install.html
deleted file mode 100644
index d8382b1..0000000
--- a/wiki/inc/lang/az/install.html
+++ /dev/null
@@ -1,7 +0,0 @@
-<p>Bu səhifə Sizə <a href="http://dokuwiki.org">DokuWiki</a>-ni quraşdırmaqa kömək etmək üçündür. Quraşdırma haqqına əlavə məlumatı onun <a href="http://dokuwiki.org/installer">dokumentasiya səhifəsində</a> var.</p>
-
-<p>Səhifələri və əlavə məlumatları (məsələn, şəkillər, axtarış indeksi, səhifələrin əvvəlki versiyaları, və sairə) saxlamaq üçün DokuWiki adi fayllardan istifadə edir. DokuWiki-nin uğurlu işləməsi üçün bu faylların yerləşən qovluqa yazı imkanı vacib <strong>lazımdır</strong>. Bu quraşdırma proqramı sistemin qovluqlarına olan haqları dəyişə bilmir. Çox vaxt bu birbaşa shell-dən, və ya, əgər Siz hostinq-dən istifadə edirsinizsə, FTP vasitəsi ya idarəetmə paneli vasitəsi (məsələn, cPanel) ilə edilir.</p>
-
-<p>Quraşdırma proqramı sizin DokuWiki-nizdə haqlar kontrolu siyahısını (<abbr title="access control list">ACL</abbr>) quracaq. Bu, sistemə girdikdən sonra, administratora xüsusi menü vasitəsi ilə plugin-ləri quraşdırmaq, istifadiçiləri və səhifələrə giriş haqlarını idarəetmək, və həmçinin sistemin konfiqurasiyasını quraşdırmağa imkan verəcək. Haqlar kontrolu siyahısı DokuWiki-yə mütləq lazım deyil, amma o Sizə DokuWiki-nin idarəetməsini asanlaşdırır.</p>
-
-<p>Təcrübəli istifadəçilər və xüsusi tələbləri olan istifadəçilərə əlavə məlumat üçün <a href="http://dokuwiki.org/install">quraşdırılma prosesi</a> və <a href="http://dokuwiki.org/config">konfiqurasiya parametrləri</a> link-lərinə muraciyət etməsk tövsiyyə olunur.</p>
diff --git a/wiki/inc/lang/az/jquery.ui.datepicker.js b/wiki/inc/lang/az/jquery.ui.datepicker.js
deleted file mode 100644
index 2ebdcfa..0000000
--- a/wiki/inc/lang/az/jquery.ui.datepicker.js
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Azerbaijani (UTF-8) initialisation for the jQuery UI date picker plugin. */
-/* Written by Jamil Najafov (necefov33@gmail.com). */
-( function( factory ) {
-	if ( typeof define === "function" && define.amd ) {
-
-		// AMD. Register as an anonymous module.
-		define( [ "../widgets/datepicker" ], factory );
-	} else {
-
-		// Browser globals
-		factory( jQuery.datepicker );
-	}
-}( function( datepicker ) {
-
-datepicker.regional.az = {
-	closeText: "BaÄŸla",
-	prevText: "&#x3C;Geri",
-	nextText: "İrəli&#x3E;",
-	currentText: "Bugün",
-	monthNames: [ "Yanvar","Fevral","Mart","Aprel","May","İyun",
-	"İyul","Avqust","Sentyabr","Oktyabr","Noyabr","Dekabr" ],
-	monthNamesShort: [ "Yan","Fev","Mar","Apr","May","İyun",
-	"İyul","Avq","Sen","Okt","Noy","Dek" ],
-	dayNames: [ "Bazar","Bazar ertəsi","Çərşənbə axşamı","Çərşənbə","Cümə axşamı","Cümə","Şənbə" ],
-	dayNamesShort: [ "B","Be","Ça","Ç","Ca","C","Ş" ],
-	dayNamesMin: [ "B","B","Ç","С","Ç","C","Ş" ],
-	weekHeader: "Hf",
-	dateFormat: "dd.mm.yy",
-	firstDay: 1,
-	isRTL: false,
-	showMonthAfterYear: false,
-	yearSuffix: "" };
-datepicker.setDefaults( datepicker.regional.az );
-
-return datepicker.regional.az;
-
-} ) );
diff --git a/wiki/inc/lang/az/lang.php b/wiki/inc/lang/az/lang.php
deleted file mode 100644
index f2c9aa6..0000000
--- a/wiki/inc/lang/az/lang.php
+++ /dev/null
@@ -1,231 +0,0 @@
-<?php
-
-/**
- * @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';
-$lang['doublequoteopening']    = '«';
-$lang['doublequoteclosing']    = '»';
-$lang['singlequoteopening']    = '„';
-$lang['singlequoteclosing']    = '“';
-$lang['apostrophe']            = '’';
-$lang['btn_edit']              = 'Səhifəyə düzəliş et';
-$lang['btn_source']            = 'Səhifənin ilkin mətnini göstər';
-$lang['btn_show']              = 'Səhifəni göstər';
-$lang['btn_create']            = 'Səhifəni yarat';
-$lang['btn_search']            = 'Axtarış';
-$lang['btn_save']              = 'Yadda saxla';
-$lang['btn_preview']           = 'Baxış';
-$lang['btn_top']               = 'Yuxarı';
-$lang['btn_newer']             = '<< daha təzələr';
-$lang['btn_older']             = 'daha köhnələr >>';
-$lang['btn_revs']              = 'Səhifənin tarixçəsi';
-$lang['btn_recent']            = 'Yaxın dəyişiklər';
-$lang['btn_upload']            = 'Serverə yükə';
-$lang['btn_cancel']            = 'İmtina';
-$lang['btn_index']             = 'Bütün səhifələr';
-$lang['btn_secedit']           = 'Düzəliş et';
-$lang['btn_login']             = 'GiriÅŸ';
-$lang['btn_logout']            = 'Cıxış';
-$lang['btn_admin']             = 'İdarəetmə';
-$lang['btn_update']            = 'YenilÉ™';
-$lang['btn_delete']            = 'Sil';
-$lang['btn_back']              = 'Geri';
-$lang['btn_backlink']          = 'Bura olan link-lər';
-$lang['btn_subscribe']         = 'Abunə ol (bütün dəyişiklər)';
-$lang['btn_profile']           = 'Profil';
-$lang['btn_reset']             = 'BoÅŸalt';
-$lang['btn_draft']             = 'Qaralamada düzəliş etmək';
-$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É™';
-$lang['newpass']               = 'Yeni ÅŸifrÉ™';
-$lang['oldpass']               = 'Hazırki şifrəni daxil edin';
-$lang['passchk']               = 'təkrarlayın';
-$lang['remember']              = 'Məni yadda saxla';
-$lang['fullname']              = 'Tam ad';
-$lang['email']                 = 'E-Mail';
-$lang['profile']               = 'İstifadəçi profili';
-$lang['badlogin']              = 'Təssüf ki istifadəçi adı və ya şifrə səhvdir.';
-$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['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.';
-$lang['regsuccess2']           = 'İstifadəçi yaradıldı.';
-$lang['regmailfail']           = 'Deyəsən, xəta şifrə e-maila göndərildikdə baş verdi. Xaiş olunur, ki administrator ilə əlaqə saxlayasınız!';
-$lang['regbadmail']            = 'DeyÉ™sÉ™n, daxil edilmiÅŸ e-mail ünvanı sÉ™hvdir. ÆgÉ™r şübhÉ™niz var isÉ™ administrator ilÉ™ É™laqÉ™ saxlayın.';
-$lang['regbadpass']            = 'Daxil edilmiş iki şifrə fərqlidir. Xaiş olunur ki, yenidən daxil edəsiniz.';
-$lang['regpwmail']             = 'Sizin DokuWiki sistemi üçün şifrəniz';
-$lang['reghere']               = 'Sizin hələ istifadəçi adınız yoxdur? Buyurun əldə edin';
-$lang['profna']                = 'Bu wiki profilin dəyişdirilməsini dəstəkləmir';
-$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.';
-$lang['resendpwdnouser']       = 'Verilənlər bazasında bu ad ilə istifadəçi tapılmadı.';
-$lang['resendpwdbadauth']      = 'Ativləşdirmə kodu səhvdir. Link-i tam olaraq köçürdüyünüzü yoxlayın. ';
-$lang['resendpwdconfirm']      = 'Şifrəni təstiqləmək üçün sizin e-maila link göndərilmişdir. ';
-$lang['resendpwdsuccess']      = 'Yeni şifrəniz e-maila göndərildi.';
-$lang['license']               = 'Fərqli şey göstərilmiş hallardan başqa, bu wiki-nin mətni aşağıda göstərilmiş lisenziyanın şərtlərinə uyğun təqdim olunur:';
-$lang['licenseok']             = 'Qeyd: bu səhifəni düzəliş edərək, Siz elədiyiniz düzəlişi aşağıda göstərilmiş lisenziyanın şərtlərinə uyğun istifadəsinə razılıq verirsiniz:';
-$lang['searchmedia']           = 'Faylın adına görə axtarış:';
-$lang['searchmedia_in']        = '%s-ın içində axtarış';
-$lang['txt_upload']            = 'Serverə yükləmək üçün fayl seçin:';
-$lang['txt_filename']          = 'Faylın wiki-də olan adını daxil edin (mütləq deyil):';
-$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']['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';
-$lang['uploadsucc']            = 'Yüklənmə uğur ilə başa çatdı';
-$lang['uploadfail']            = 'Yüklənmə zamanı xəta baş veri. Bəlkə giriş haqları ilə problem var?';
-$lang['uploadwrong']           = 'Yuklənməyə qadağa qoyuldu. Belə növlu faylları serverə yükləmək olmaz. ';
-$lang['uploadexist']           = 'Bu adlı fayl artıq serverdə var. Yükləmə alınmadı .';
-$lang['uploadbadcontent']      = 'Faylın tərkibi %s növünə uyğun gəlmir.';
-$lang['uploadspam']            = 'Yüklənmə spam-filtri tərəfindən dayandırıldı.';
-$lang['uploadxss']             = 'Yüklənmə təhlükəsizlik nəzərindən dayandırılmışdır.';
-$lang['uploadsize']            = 'Yüklənilmiş fayl çox boyükdür. (maks. %s)';
-$lang['deletesucc']            = '"%s" adlı fayl silindi.';
-$lang['deletefail']            = '"%s" adlı fayl silinmədi. Faylın giriş haqlarını yoxlayın.';
-$lang['mediainuse']            = '"%s" adlı fayl silinmədi. Fayl hələ istifadə olunur';
-$lang['namespaces']            = 'Namespace-lər';
-$lang['mediafiles']            = 'Mövcud olan fayllar';
-$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';
-$lang['mediaupload']           = 'Burda faylı hazırki qovluqa yükləmək olar ("namespace"). Alt qovluqlar yaratmaq üçün, onların adlarını faylın adının avvəlinə artırın ("Adla yükləmək"). Alt qovluqların adları çütnöqtə ilə ayrılır. ';
-$lang['mediaextchange']        = 'Faylın nüvü .%s -dan .%s -ya dəyişdi!';
-$lang['reference']             = 'Linklər göstərir';
-$lang['ref_inuse']             = 'Bu fayl silinə bilməz, çünki o aşağıdaki səhifələr tərəfindən istifadə olunur:';
-$lang['ref_hidden']            = 'Bəzi link-lər sizin oxumaq haqqınız olmayan səhifələrdə yerləşir';
-$lang['hits']                  = 'uyÄŸunluqlar';
-$lang['quickhits']             = 'Səhifələrin adlarında uyğunluqlar';
-$lang['toc']                   = 'Mündəricat';
-$lang['current']               = 'hazırki';
-$lang['yours']                 = 'Sizin versiyanız';
-$lang['diff']                  = 'hazırki versiyadan fərqləri göstər';
-$lang['diff2']                 = 'Versiyaların arasındaki fərqləri göstər  ';
-$lang['line']                  = 'Sətr';
-$lang['breadcrumb']            = 'Siz ziyarət etdiniz:';
-$lang['youarehere']            = 'Siz burdasınız:';
-$lang['lastmod']               = 'Son dəyişiklər:';
-$lang['by']                    = ' Kimdən';
-$lang['deleted']               = 'silinib';
-$lang['created']               = 'yaranıb';
-$lang['restored']              = 'köhnə versiya qaytarıldı (%s)';
-$lang['external_edit']         = 'bayırdan dəyişik';
-$lang['summary']               = 'Dəyişiklər xülasəsi';
-$lang['noflash']               = 'Bu məzmuna baxmaq üçün <a href="http://www.adobe.com/products/flashplayer/">Adobe Flash Plugin</a> tələb olunur.';
-$lang['download']              = 'Kodu yüklə';
-$lang['mail_newpage']          = 'səhifə əlavə olundu:';
-$lang['mail_changed']          = 'səhifəyə düzəliş edildi:';
-$lang['mail_new_user']         = 'yeni istifadəçi:';
-$lang['mail_upload']           = 'fayl yükləndi:';
-$lang['qb_bold']               = 'Qalın şrift';
-$lang['qb_italic']             = 'Maili ÅŸrift';
-$lang['qb_underl']             = 'Alt-xətt';
-$lang['qb_code']               = 'Kodun mətni';
-$lang['qb_strike']             = 'PozulmuÅŸ ÅŸrift';
-$lang['qb_h1']                 = '1 dərəcəli başlıq';
-$lang['qb_h2']                 = '2 dərəcəli başlıq';
-$lang['qb_h3']                 = '3 dərəcəli başlıq';
-$lang['qb_h4']                 = '4 dərəcəli başlıq';
-$lang['qb_h5']                 = '5 dərəcəli başlıq';
-$lang['qb_h']                  = 'Başlıq';
-$lang['qb_hs']                 = 'Başlıq seçimi';
-$lang['qb_hplus']              = 'Daha yüksək dərəcəli başlıq';
-$lang['qb_hminus']             = 'Daha aşağı dərəcəli başlıq (altbaşlıq)';
-$lang['qb_hequal']             = 'Hazırki dərəcəli başlıq';
-$lang['qb_link']               = 'İç link';
-$lang['qb_extlink']            = 'Bayır link';
-$lang['qb_hr']                 = 'Bölücü';
-$lang['qb_ol']                 = 'Nömrələnmiş siyahının element';
-$lang['qb_ul']                 = 'Nömrələnməmiş siyahının element';
-$lang['qb_media']              = 'Şəkillər və başqa fayllar əlavə et';
-$lang['qb_sig']                = 'İmza at';
-$lang['qb_smileys']            = 'Smayllar';
-$lang['qb_chars']              = 'Xüsusi simvollar';
-$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['img_title']             = 'Başlıq:';
-$lang['img_caption']           = 'İmza:';
-$lang['img_date']              = 'Tarix:';
-$lang['img_fname']             = 'Faylın adı:';
-$lang['img_fsize']             = 'Boy:';
-$lang['img_artist']            = 'Şkilin müəllifi:';
-$lang['img_copyr']             = 'Müəllif hüquqları:';
-$lang['img_format']            = 'Format:';
-$lang['img_camera']            = 'Model:';
-$lang['img_keywords']          = 'Açar sözlər:';
-$lang['authtempfail']          = 'İstifadəçilÉ™rin autentifikasiyası müvÉ™qqÉ™ti dayandırılıb. ÆgÉ™r bu problem uzun müddÉ™t davam edir sÉ™, administrator ilÉ™ É™laqÉ™ saxlayın.';
-$lang['i_chooselang']          = 'Dili seçin/Language';
-$lang['i_installer']           = 'DokuWiki quraşdırılır';
-$lang['i_wikiname']            = 'wiki-nin adı';
-$lang['i_enableacl']           = 'Haqlar kontrolu siyahısının istifadəsinə icazə ver (tövsiyə edilir)';
-$lang['i_superuser']           = 'Super-istifadəci';
-$lang['i_problems']            = 'Quraşdırma proqramı aşağıdakı problemlər ilə üzləşdi. Davam etmək üçün onları həll etmək lazımdır. ';
-$lang['i_modified']            = 'Təhlükəsizlik baxımından bu proqram ancaq yeni, dəyişməmiş halda olan DokuWiki üzərində işləyir.
-                         Siz ya yüklənmiş quraşdırma paketini yenidən açmalısınız, ya da <a href="http://dokuwiki.org/install">DokuWiki-nin tam quraşdırma instruksiyasına</a> müraciyət etməlisiniz';
-$lang['i_funcna']              = 'PHP-nin <code>%s</code> funksiyası mövcud deyil. Bəlkə, o hansı sa səbəbdən sizin host-unuz tərəfindən blok edilib?';
-$lang['i_phpver']              = 'Sizin PHP-nin versiyası (<code>%s</code>) tələb olunan versiyadan aşagıdır (<code>%s</code>). Quraşdırılmış PHP-nin versiyasını yeniləyin.';
-$lang['i_permfail']            = '<code>%s</code> DokuWiki-yə yazı üçün bağlıdır. Bu qovluğun giriş haqlarını yoxlamaq lazımdır!';
-$lang['i_confexists']          = '<code>%s</code> artıq mövcuddur';
-$lang['i_writeerr']            = '<code>%s</code> yaradıla bilmədi. Faylın/qovluqların giriş haqlarını yaxlamaq lazımdır. Və faylı əl ilə yaradın. ';
-$lang['i_badhash']             = 'dokuwiki.php tanıla bilmir və ya dəyişdirilmişdir (hash=<code>%s</code>)';
-$lang['i_badval']              = '<code>%s</code> - səhv ya boş qiymətdir';
-$lang['i_success']             = 'Konfiqurasiya uğurla başa çatdı. İndi siz install.php faylını silə bilərsiniz.
-                        <a href="doku.php?id=wiki:welcome">Yeni DokuWiki-nizə</a> xoş gəlmişsiniz!';
-$lang['i_failure']             = 'Konfiqurasiya fayllarına məlumat yazan zaman səhvlər tapıldı. Yəgin ki, <a href="doku.php?id=wiki:welcome">yeni DokuWiki-nizi</a> istifadə etmədən öncə, Siz o xətaları əl ilə düzəltməli olacaqsınız.';
-$lang['i_policy']              = 'İlkin giriş haqları siyasəti';
-$lang['i_pol0']                = 'Tam açıq wiki (oxumaq, yazmaq, fayl yükləmək hamıya olar)';
-$lang['i_pol1']                = 'Acıq wiki (oxumaq hamıya olar, yazmaq və fayl yükləmək ancaq üzv olan istifadəçilərə olar)';
-$lang['i_pol2']                = 'Bağlı wiki (uxumaq, yazmaq və yükləmək ancaq üzv olan istifadəçilərə olar)';
-$lang['i_retry']               = 'Cəhdi təkrarla';
-$lang['recent_global']         = '<b>%s</b> namespace-də baş vermiş dəyışıklərə baxırsınız. Siz həmçinin <a href="%s">wiki-də bu yaxında baş vermiş bütün dəyişiklərə</a> baxa bilərsiniz.';
-$lang['years']                 = '%d il əvvəl';
-$lang['months']                = '%d ay əvvəl';
-$lang['weeks']                 = '%d həftə əvvəl';
-$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
-@DOKUWIKIURL@';
diff --git a/wiki/inc/lang/az/locked.txt b/wiki/inc/lang/az/locked.txt
deleted file mode 100644
index 8ab9344..0000000
--- a/wiki/inc/lang/az/locked.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Səhifə blok edilmişdir ======
-
-Bu səhifə başqa istifadəçi tərəfindən dəyişdirilmə üçün blok edilmişdir. O istifadəçi dəyişdirməni başa çatdırınca ya blokun vaxtı bitincə, Siz gözləməlisiniz.
diff --git a/wiki/inc/lang/az/login.txt b/wiki/inc/lang/az/login.txt
deleted file mode 100644
index e0a559b..0000000
--- a/wiki/inc/lang/az/login.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Avtorizasiya ======
-
-Hazırda Siz sistemə daxil olmamısınız. Aşağıdakı formanı istifadə edib sistemə daxil olun. //Qeyd:// cookies qurlu olmalıdır.
-
diff --git a/wiki/inc/lang/az/mailtext.txt b/wiki/inc/lang/az/mailtext.txt
deleted file mode 100644
index 97cb68d..0000000
--- a/wiki/inc/lang/az/mailtext.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-Sizin DokuWiki-dÉ™ sÉ™hifÉ™ yaradılıb ya dÉ™yiÅŸdirilib. Ætraflı mÉ™lumat:
-
-Tarix                 : @DATE@
-Brauzer               : @BROWSER@
-IP-adres              : @IPADDRESS@
-Host                  : @HOSTNAME@
-Köhnə versiya         : @OLDPAGE@
-Yeni versiya          : @NEWPAGE@
-Dəyişiklərin xülasəsi : @SUMMARY@
-İstifadəçi            : @USER@
-
-@DIFF@
diff --git a/wiki/inc/lang/az/newpage.txt b/wiki/inc/lang/az/newpage.txt
deleted file mode 100644
index c749f20..0000000
--- a/wiki/inc/lang/az/newpage.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Bu səhifə hələ mövcud deyil ======
-
-Siz yaradılmamış sÉ™hifÉ™nin link-ini acmısınız. ÆgÉ™r sizin giriÅŸ haqlarınız çatırsa, siz "SÉ™hifÉ™ni yarat" düymÉ™sini sixib, o sÉ™hifÉ™ni yarada bilÉ™rsiniz.
diff --git a/wiki/inc/lang/az/norev.txt b/wiki/inc/lang/az/norev.txt
deleted file mode 100644
index 453dad5..0000000
--- a/wiki/inc/lang/az/norev.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Belə versiya mövcud deyil ======
-
-Bu səhifənin göstərilmiş versiyası mövcud deyil. Səhifənin bütün versiyalaraının siyahısını görmək üçün, ''Səhifənin tarixçəsi'' düyməsini sıxın.
-
diff --git a/wiki/inc/lang/az/password.txt b/wiki/inc/lang/az/password.txt
deleted file mode 100644
index 6424161..0000000
--- a/wiki/inc/lang/az/password.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-Salam @FULLNAME@!
-
-Sizin @TITLE@ (@DOKUWIKIURL@) üçün olan məlumatlarınız
-
-İstifadəçi adı  : @LOGIN@
-ÅžifrÉ™ : @PASSWORD@
diff --git a/wiki/inc/lang/az/preview.txt b/wiki/inc/lang/az/preview.txt
deleted file mode 100644
index dbeaa44..0000000
--- a/wiki/inc/lang/az/preview.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Baxış ======
-
-Burda daxil elədiyiniz mətnin necə görünəcəyi göstərilir. Qeyd: mətn hələ **yadda saxlanılmayıb!**
-
diff --git a/wiki/inc/lang/az/pwconfirm.txt b/wiki/inc/lang/az/pwconfirm.txt
deleted file mode 100644
index 582124a..0000000
--- a/wiki/inc/lang/az/pwconfirm.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-Salam @FULLNAME@!
-
-Kimsə @DOKUWIKIURL@ adresində yerləşən @TITLE@ adlı wiki-yə giriş üçün yeni şifrə tələb eləyib.
-
-ÆgÉ™r o ÅŸÉ™xs siz deyildinizsÉ™, bu mÉ™ktuba fikir vermÉ™yin.
-
-Tələbi təsdiq etmək üçün, aşağıdakı link-ə keçin.
-
-@CONFIRM@
diff --git a/wiki/inc/lang/az/read.txt b/wiki/inc/lang/az/read.txt
deleted file mode 100644
index 39b31f1..0000000
--- a/wiki/inc/lang/az/read.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-Bu sÉ™hifÉ™ni ancaq oxumaq olar. Siz sÉ™hifÉ™nin ilkin mÉ™tninÉ™ baxa bilÉ™rsiniz, amma dÉ™yiÅŸÉ™ bilmÉ™zsiniz. ÆgÉ™r bunun düzgün olmadığını fikirləşirsinizsÉ™ onda administrator ilÉ™ É™laqÉ™ saxlayın.
-
diff --git a/wiki/inc/lang/az/recent.txt b/wiki/inc/lang/az/recent.txt
deleted file mode 100644
index 8766d99..0000000
--- a/wiki/inc/lang/az/recent.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== Son dəyişiklər ======
-
-Bu səhifələr yaxında dəyismişdirlər.
-
-
diff --git a/wiki/inc/lang/az/register.txt b/wiki/inc/lang/az/register.txt
deleted file mode 100644
index eb6386f..0000000
--- a/wiki/inc/lang/az/register.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== РегиÑÑ‚Ñ€Ð°Ñ†Ð¸Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ ======
-
-Qeydiyyat üçün bütün aÅŸağıdaı xanalari doldurun. **e-mail adresinizin duz olduguna** fikir verin. ÆgÉ™r şıfrÉ™ni É™l ilÉ™ daxil etmÉ™yiniz xaiÅŸ olunmursa, onda ÅŸifrÉ™ e-mail adresinizÉ™ göndÉ™rilÉ™cÉ™k. İstifadəçi adı [[doku>pagename|sÉ™hifÉ™nin identifikatorunun]] mÉ™hdudiyyÉ™tlÉ™rinÉ™ uyÄŸun olmalıdır.
diff --git a/wiki/inc/lang/az/registermail.txt b/wiki/inc/lang/az/registermail.txt
deleted file mode 100644
index b080e9b..0000000
--- a/wiki/inc/lang/az/registermail.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-Yeni istifadəçi qeydiyyatdan keçdi. Ætraflı mÉ™lumat:
-
-İstifadəçi adı       : @NEWUSER@
-Tam adı  : @NEWNAME@
-E-mail      : @NEWEMAIL@
-
-Tarix        : @DATE@
-Brauzer     : @BROWSER@
-IP adres    : @IPADDRESS@
-Host        : @HOSTNAME@
diff --git a/wiki/inc/lang/az/resendpwd.txt b/wiki/inc/lang/az/resendpwd.txt
deleted file mode 100644
index cc28617..0000000
--- a/wiki/inc/lang/az/resendpwd.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Yeni şifrənin göndərilməsi ======
-
-Yeni şifrə əldə etmək üçün aşağıda tələb olunan məlumatları daxil edin. Yeni şifrə sizin istifadəçi adınıza aid olan e-mail adresə göndəriləcək. Aşagıda daxil olunan ad - sizin bu wiki-də olan istifadəçi adınız olmalıdır.
diff --git a/wiki/inc/lang/az/revisions.txt b/wiki/inc/lang/az/revisions.txt
deleted file mode 100644
index 7164a99..0000000
--- a/wiki/inc/lang/az/revisions.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Səhifənin tarixçəsi ======
-
-Qarşınızda - hazırki sÉ™nÉ™din dÉ™yiÅŸiklÉ™r tarixçəsidir. ÆvvÉ™lki versiyaların birinÉ™ qayıtmaq üçün, lazım olan versiyanı seçin, ''SÉ™hifÉ™ni düzÉ™liÅŸ et'' düymÉ™sini sıxın vÉ™ yaddaÅŸa yazın.
diff --git a/wiki/inc/lang/az/searchpage.txt b/wiki/inc/lang/az/searchpage.txt
deleted file mode 100644
index 9bf5a5b..0000000
--- a/wiki/inc/lang/az/searchpage.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Axtarış ======
-
-Qarşınızda - axtarışın nəticələridir. @CREATEPAGEINFO@
-
diff --git a/wiki/inc/lang/az/showrev.txt b/wiki/inc/lang/az/showrev.txt
deleted file mode 100644
index dd39870..0000000
--- a/wiki/inc/lang/az/showrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**Bu - sənədin köhnə versiyasıdır!**
-----
diff --git a/wiki/inc/lang/az/stopwords.txt b/wiki/inc/lang/az/stopwords.txt
deleted file mode 100644
index 04eb312..0000000
--- a/wiki/inc/lang/az/stopwords.txt
+++ /dev/null
@@ -1,64 +0,0 @@
-# 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
-amma
-arada
-arasında
-baÅŸqa
-baÅŸqalar
-başqaların
-başqanın
-belÉ™
-birdən
-bugün
-bunu
-burada
-bəlkə
-cəmi
-dedi
-dedilər
-dedim
-dediniz
-demək
-deyəsən
-görə
-hamını
-hansı
-hansılar
-hansınız
-həmçinin
-həmişə
-hərdən
-hətta
-həyat
-indi
-lazım
-lazımdır
-məncə
-məni
-niyÉ™
-nəyi
-olacaq
-olar
-oldu
-oldum
-olmaq
-olmaz
-olub
-onda
-onlar
-onları
-onun
-ozunun
-qabaq
-quya
-sabaÄŸ
-sizcÉ™
-sizi
-sonra
-sözsüz
-şübhəsiz
-səni
-yaxşı
-yenÉ™
-əgər
diff --git a/wiki/inc/lang/az/updateprofile.txt b/wiki/inc/lang/az/updateprofile.txt
deleted file mode 100644
index 569e425..0000000
--- a/wiki/inc/lang/az/updateprofile.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== Profili yenilÉ™ ======
-
-İstədiyiniz xanaları dəyiştirin. İstifadəşi adı dəyiştirilə bilməz.
-
-
diff --git a/wiki/inc/lang/az/uploadmail.txt b/wiki/inc/lang/az/uploadmail.txt
deleted file mode 100644
index 88103fd..0000000
--- a/wiki/inc/lang/az/uploadmail.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-Sizin DokuWiki-yÉ™ fayl yuklÉ™nildi. Ætraflı mÉ™lumat:
-
-Fayl        : @MEDIA@
-Tarix       : @DATE@
-Brauzer     : @BROWSER@
-IP Adres    : @IPADDRESS@
-Host        : @HOSTNAME@
-Həcm        : @SIZE@
-MIME Növ    : @MIME@
-İstifadəçi  : @USER@
diff --git a/wiki/inc/lang/az/wordblock.txt b/wiki/inc/lang/az/wordblock.txt
deleted file mode 100644
index ec8b102..0000000
--- a/wiki/inc/lang/az/wordblock.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== SPAM-ın qarşısı alındı ======
-
-Sizin dÉ™yiÅŸiklÉ™r **yaddaÅŸa saxlanmadı**, çünki onların içindÉ™ bir vÉ™ ya daha çox içazÉ™siz sözlÉ™r var idi. ÆgÉ™r siz wiki-yÉ™ spam É™lavÉ™ etmÉ™k istÉ™yirdinizsÉ™, onda utanmırsız?! ÆgÉ™r siz bunu sÉ™hv hesab edirsinizsÉ™, onda administrator ilÉ™ É™laqÉ™ saxlayın.
diff --git a/wiki/inc/lang/be/admin.txt b/wiki/inc/lang/be/admin.txt
deleted file mode 100644
index 40fc5fb..0000000
--- a/wiki/inc/lang/be/admin.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Кіраванне ======
-
-ÐіжÑй вы зможаце знайÑці ÑÐ¿Ñ–Ñ Ð°Ð´Ð¼Ñ–Ð½Ñ–Ñтрацыйных аперацый, даÑтупных у «ДокуВікі».
\ No newline at end of file
diff --git a/wiki/inc/lang/be/adminplugins.txt b/wiki/inc/lang/be/adminplugins.txt
deleted file mode 100644
index c5aa5d7..0000000
--- a/wiki/inc/lang/be/adminplugins.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Ð”Ð°Ð´Ð°Ñ‚ÐºÐ¾Ð²Ñ‹Ñ ÑžÐ±ÑƒÐ´Ð¾Ð²Ñ‹ =====
\ No newline at end of file
diff --git a/wiki/inc/lang/bg/admin.txt b/wiki/inc/lang/bg/admin.txt
deleted file mode 100644
index d3c14a0..0000000
--- a/wiki/inc/lang/bg/admin.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== ÐдминиÑтриране ======
-
-Отдолу ще намерите ÑпиÑъка Ñ Ð°Ð´Ð¼Ð¸Ð½Ð¸ÑтраторÑките задачи в DokuWiki.
\ No newline at end of file
diff --git a/wiki/inc/lang/bg/adminplugins.txt b/wiki/inc/lang/bg/adminplugins.txt
deleted file mode 100644
index df24b05..0000000
--- a/wiki/inc/lang/bg/adminplugins.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Допълнителни приÑтавки =====
\ No newline at end of file
diff --git a/wiki/inc/lang/bg/backlinks.txt b/wiki/inc/lang/bg/backlinks.txt
deleted file mode 100644
index e501614..0000000
--- a/wiki/inc/lang/bg/backlinks.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Какво Ñочи наÑам ======
-
-Това е ÑпиÑък на Ñтраниците, които препращат обратно към текущата Ñтраница.
diff --git a/wiki/inc/lang/bg/conflict.txt b/wiki/inc/lang/bg/conflict.txt
deleted file mode 100644
index 8c62a37..0000000
--- a/wiki/inc/lang/bg/conflict.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-====== СъщеÑтвува по-нова верÑÐ¸Ñ ======
-
-СъщеÑтвува по-нова верÑÐ¸Ñ Ð½Ð° документа, който Ñте редактирали. Това Ñе Ñлучва когато друг потребител е променил документа докато Ñте го редактирали.
-
-Разгледайте внимателно разликите, Ñлед това решете ÐºÐ¾Ñ Ð²ÐµÑ€ÑÐ¸Ñ Ð´Ð° бъде запазена. Ðко натиÑнете ''ЗапиÑ'', ще бъде запазена вашата верÑиÑ. ÐатиÑнете ли ''Отказ'', ще бъде запазена текущата верÑиÑ.
-
diff --git a/wiki/inc/lang/bg/denied.txt b/wiki/inc/lang/bg/denied.txt
deleted file mode 100644
index bd695d4..0000000
--- a/wiki/inc/lang/bg/denied.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Отказан доÑтъп ======
-
-ÐÑмате доÑтатъчно права, за да продължите.
-
diff --git a/wiki/inc/lang/bg/diff.txt b/wiki/inc/lang/bg/diff.txt
deleted file mode 100644
index a22031e..0000000
--- a/wiki/inc/lang/bg/diff.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Разлики ======
-
-Тук Ñа показани разликите между избраната и текущата верÑÐ¸Ñ Ð½Ð° Ñтраницата.
diff --git a/wiki/inc/lang/bg/draft.txt b/wiki/inc/lang/bg/draft.txt
deleted file mode 100644
index a592011..0000000
--- a/wiki/inc/lang/bg/draft.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-====== Ðамерена чернова ======
-
-ПоÑледната редакционна ÑеÑÐ¸Ñ Ð½Ð° Ñтраницата не е завършена правилно. Dokuwiki автоматично запазва чернова по време на редактирането, коÑто можете да ползвате Ñега, за да продължите работата Ñи. Отдолу може да видите данните, които бÑха запазени от поÑледната ÑеÑиÑ.
-
-ÐœÐ¾Ð»Ñ Ñ€ÐµÑˆÐµÑ‚Ðµ, дали иÑкате да //възÑтановите// поÑледната Ñи редакционна ÑеÑиÑ, //изтриете// автоматично запазената чернова или //откажете// редакциÑта.
-
diff --git a/wiki/inc/lang/bg/edit.txt b/wiki/inc/lang/bg/edit.txt
deleted file mode 100644
index 086d997..0000000
--- a/wiki/inc/lang/bg/edit.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-Редактирайте и натиÑнете ''ЗапиÑ''. За Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾Ñ‚Ð½Ð¾Ñно Ð¿Ð¾Ð»Ð·Ð²Ð°Ð½Ð¸Ñ ÑинтакÑÐ¸Ñ Ð¿Ñ€Ð¾Ñ‡ÐµÑ‚ÐµÑ‚Ðµ [[wiki:syntax]]. МолÑ, редактирайте Ñамо когато може да **подобрите** Ñъдържанието. Ðко ще пробвате разни неща, може да екÑпериментирате в [[playground:playground|пÑÑъчника]].
-
diff --git a/wiki/inc/lang/bg/editrev.txt b/wiki/inc/lang/bg/editrev.txt
deleted file mode 100644
index ba97f25..0000000
--- a/wiki/inc/lang/bg/editrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**Заредена е Ñтара верÑÐ¸Ñ Ð½Ð° документа!** Ðко Ñ Ð·Ð°Ð¿Ð°Ð·Ð¸Ñ‚Ðµ, ще Ñъздадете нова верÑÐ¸Ñ Ñ Ñ‚ÐµÐºÑƒÑ‰Ð¸Ñ‚Ðµ данни.
-----
diff --git a/wiki/inc/lang/bg/index.txt b/wiki/inc/lang/bg/index.txt
deleted file mode 100644
index 7dabac6..0000000
--- a/wiki/inc/lang/bg/index.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Ð˜Ð½Ð´ÐµÐºÑ ======
-
-Това е ÑпиÑък на вÑички налични Ñтраници подредени по [[doku>namespaces|именни проÑтранÑтва]].
-
diff --git a/wiki/inc/lang/bg/install.html b/wiki/inc/lang/bg/install.html
deleted file mode 100644
index 8763e4d..0000000
--- a/wiki/inc/lang/bg/install.html
+++ /dev/null
@@ -1,15 +0,0 @@
-<p>Страницата помага при инÑталиране за първи път и наÑтройване на
-<a href="http://dokuwiki.org">Dokuwiki</a>.  Повече информациÑ
-за инÑталатора ще намерите в <a href="http://dokuwiki.org/installer">документациÑта му</a>.</p>
-
-<p>Dokuwiki ползва обикновени файлове за ÑъхранÑване на Ñтраниците и информациÑта Ñвързана Ñ Ñ‚ÑÑ… (примерно картинки, търÑениÑ, Ñтари верÑии, и др.).
-За да функционира нормално DokuWiki
-<strong>трÑбва</strong> да има право за пиÑане в директориите, които Ñъдържат тези
-файлове. ИнÑталаторът не може да наÑтройва правата на директориите.
-Вие трÑбва да направите това директно от командниÑÑ‚ ред или ако ползвате хоÑтинг през FTP или ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»Ð½Ð¸Ñ Ð¿Ð°Ð½ÐµÐ»Ð° на хоÑта (примерно cPanel).</p>
-
-<p>ИнÑталаторът ще наÑтрои вашата DokuWiki ÐºÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñ Ð½Ð°
-<abbr title="ÑпиÑъка за доÑтъп">ACL</abbr>, което ще позволи на админиÑтратора да Ñе впише и ползва админиÑтраторÑкото меню в DokuWiki за инÑталиране на приÑтавки, контрол на потребителите, управление на доÑтъпа до Ñтраниците и промÑна на оÑтаналите наÑтройки. Това не е необходимо за функционирането на DokuWiki, но прави админиÑтрирането по-леÑно.</p>
-
-<p>Опитните потребители и потребителите ÑÑŠÑ Ñпециални изиÑÐºÐ²Ð°Ð½Ð¸Ñ ÐºÑŠÐ¼ наÑтройките имат на разположение допълнителна Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾Ñ‚Ð½Ð¾Ñно <a href="http://dokuwiki.org/install">инÑталирането</a>
-и <a href="http://dokuwiki.org/config">наÑтройването</a>.</p>
diff --git a/wiki/inc/lang/bg/jquery.ui.datepicker.js b/wiki/inc/lang/bg/jquery.ui.datepicker.js
deleted file mode 100644
index cb066a4..0000000
--- a/wiki/inc/lang/bg/jquery.ui.datepicker.js
+++ /dev/null
@@ -1,38 +0,0 @@
-/* Bulgarian initialisation for the jQuery UI date picker plugin. */
-/* Written by Stoyan Kyosev (http://svest.org). */
-( function( factory ) {
-	if ( typeof define === "function" && define.amd ) {
-
-		// AMD. Register as an anonymous module.
-		define( [ "../widgets/datepicker" ], factory );
-	} else {
-
-		// Browser globals
-		factory( jQuery.datepicker );
-	}
-}( function( datepicker ) {
-
-datepicker.regional.bg = {
-	closeText: "затвори",
-	prevText: "&#x3C;назад",
-	nextText: "напред&#x3E;",
-	nextBigText: "&#x3E;&#x3E;",
-	currentText: "днеÑ",
-	monthNames: [ "Януари","Февруари","Март","Ðприл","Май","Юни",
-	"Юли","ÐвгуÑÑ‚","Септември","Октомври","Ðоември","Декември" ],
-	monthNamesShort: [ "Яну","Фев","Мар","Ðпр","Май","Юни",
-	"Юли","Ðвг","Сеп","Окт","Ðов","Дек" ],
-	dayNames: [ "ÐеделÑ","Понеделник","Вторник","СрÑда","Четвъртък","Петък","Събота" ],
-	dayNamesShort: [ "Ðед","Пон","Вто","СрÑ","Чет","Пет","Съб" ],
-	dayNamesMin: [ "Ðе","По","Ð’Ñ‚","Ср","Че","Пе","Съ" ],
-	weekHeader: "Wk",
-	dateFormat: "dd.mm.yy",
-	firstDay: 1,
-	isRTL: false,
-	showMonthAfterYear: false,
-	yearSuffix: "" };
-datepicker.setDefaults( datepicker.regional.bg );
-
-return datepicker.regional.bg;
-
-} ) );
diff --git a/wiki/inc/lang/bg/lang.php b/wiki/inc/lang/bg/lang.php
deleted file mode 100644
index fd4677c..0000000
--- a/wiki/inc/lang/bg/lang.php
+++ /dev/null
@@ -1,337 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Nikolay Vladimirov <nikolay@vladimiroff.com>
- * @author Viktor Usunov <usun0v@mail.bg>
- * @author Kiril <neohidra@gmail.com>
- * @author Ivan Peltekov <ivan.peltekov@abv.bg>
- */
-$lang['encoding']              = 'utf-8';
-$lang['direction']             = 'ltr';
-$lang['doublequoteopening']    = '„';
-$lang['doublequoteclosing']    = '“';
-$lang['singlequoteopening']    = '‘';
-$lang['singlequoteclosing']    = '’';
-$lang['apostrophe']            = '’';
-$lang['btn_edit']              = 'Редактиране';
-$lang['btn_source']            = 'Преглед на кода';
-$lang['btn_show']              = 'Преглед на Ñтраницата';
-$lang['btn_create']            = 'Създаване на Ñтраница';
-$lang['btn_search']            = 'ТърÑене';
-$lang['btn_save']              = 'ЗапиÑ';
-$lang['btn_preview']           = 'Преглед';
-$lang['btn_top']               = 'Към началото';
-$lang['btn_newer']             = '<< по-нови';
-$lang['btn_older']             = 'по-Ñтари >>';
-$lang['btn_revs']              = 'ИÑториÑ';
-$lang['btn_recent']            = 'Скорошни промени';
-$lang['btn_upload']            = 'Качване';
-$lang['btn_cancel']            = 'Отказ';
-$lang['btn_index']             = 'ИндекÑ';
-$lang['btn_secedit']           = 'Редактиране';
-$lang['btn_login']             = 'ВпиÑване';
-$lang['btn_logout']            = 'ОтпиÑване';
-$lang['btn_admin']             = 'ÐаÑтройки';
-$lang['btn_update']            = 'Ðктуализиране';
-$lang['btn_delete']            = 'Изтриване';
-$lang['btn_back']              = 'Ðазад';
-$lang['btn_backlink']          = 'Какво Ñочи наÑам';
-$lang['btn_subscribe']         = 'Ðбонаменти';
-$lang['btn_profile']           = 'Профил';
-$lang['btn_reset']             = 'ИзчиÑтване';
-$lang['btn_resendpwd']         = 'Задаване на нова парола';
-$lang['btn_draft']             = 'Редактиране на черновата';
-$lang['btn_recover']           = 'ВъзÑтановÑване на черновата';
-$lang['btn_draftdel']          = 'Изтриване на черновата';
-$lang['btn_revert']            = 'ВъзÑтановÑване';
-$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']                  = 'Парола';
-$lang['newpass']               = 'Ðова парола';
-$lang['oldpass']               = 'Потвърждение на текуща парола';
-$lang['passchk']               = 'още веднъж';
-$lang['remember']              = 'Запомни ме';
-$lang['fullname']              = 'ИÑтинÑко име';
-$lang['email']                 = 'Електронна поща';
-$lang['profile']               = 'ПотребителÑки профил';
-$lang['badlogin']              = 'Грешно потребителÑко име или парола.';
-$lang['badpassconfirm']        = 'За Ñъжаление паролата е грешна';
-$lang['minoredit']             = 'Промените Ñа незначителни';
-$lang['draftdate']             = 'Черновата е автоматично запиÑана на';
-$lang['nosecedit']             = 'Страницата бе междувременно променена, презареждане на Ñтраницата поради неактуална информациÑ.';
-$lang['regmissing']            = 'МолÑ, попълнете вÑички полета.';
-$lang['reguexists']            = 'Вече ÑъщеÑтвува потребител Ñ Ð¸Ð·Ð±Ñ€Ð°Ð½Ð¾Ñ‚Ð¾ име.';
-$lang['regsuccess']            = 'ПотребителÑÑ‚ е Ñъздаден, а паролата е пратена по електронната поща.';
-$lang['regsuccess2']           = 'ПотребителÑÑ‚ е Ñъздаден.';
-$lang['regfail']               = 'ПотребителÑÑ‚ не може да бъде Ñъздаден.';
-$lang['regmailfail']           = 'Изглежда, че има проблем Ñ Ð¿Ñ€Ð°Ñ‰Ð°Ð½ÐµÑ‚Ð¾ на пиÑмото Ñ Ð¿Ð°Ñ€Ð¾Ð»Ð°Ñ‚Ð°. МолÑ, Ñвържете Ñе Ñ Ð°Ð´Ð¼Ð¸Ð½Ð¸Ñтратора!';
-$lang['regbadmail']            = 'ВъведениÑÑ‚ Ð°Ð´Ñ€ÐµÑ Ð¸Ð·Ð³Ð»ÐµÐ¶Ð´Ð° невалиден - ако миÑлите, че това е грешка, Ñвържете Ñе Ñ Ð°Ð´Ð¼Ð¸Ð½Ð¸Ñтратора.';
-$lang['regbadpass']            = 'Двете въведени пароли не Ñъвпадат, Ð¼Ð¾Ð»Ñ Ð¾Ð¿Ð¸Ñ‚Ð°Ð¹Ñ‚Ðµ отново.';
-$lang['regpwmail']             = 'Паролата ви за DokuWiki';
-$lang['reghere']               = 'Ð’Ñе още нÑмате профил? Ðаправете Ñи';
-$lang['profna']                = 'Wiki-то не поддържа промÑна на профила';
-$lang['profnochange']          = 'ÐÑма промени.';
-$lang['profnoempty']           = 'Въвеждането на име и имейл е задължително';
-$lang['profchanged']           = 'ПотребителÑкиÑÑ‚ профил е обновен уÑпешно.';
-$lang['profnodelete']          = 'Изтриването на потребители в това wiki не е възможно';
-$lang['profdeleteuser']        = 'Изтриване на профила';
-$lang['profdeleted']           = 'ВашиÑÑ‚ профил е премахнат от това wiki ';
-$lang['profconfdelete']        = 'ИÑкам да Ð¸Ð·Ñ‚Ñ€Ð¸Ñ Ð¿Ñ€Ð¾Ñ„Ð¸Ð»Ð° Ñи от това wiki. <br/>  Веднъж изтрит, профилът не може да бъде възÑтановен!';
-$lang['profconfdeletemissing'] = 'Ðе Ñте поÑтавили отметка в кутиÑта потвърждение';
-$lang['proffail']              = 'ПотребителÑкиÑÑ‚ профил не може да бъде актуализиран.';
-$lang['pwdforget']             = 'Забравили Ñте паролата Ñи? Получете нова';
-$lang['resendna']              = 'Wiki-то не поддържа повторно пращане на паролата.';
-$lang['resendpwd']             = 'Задаване на нова парола за';
-$lang['resendpwdmissing']      = 'МолÑ, попълнете вÑички полета.';
-$lang['resendpwdnouser']       = 'ПотребителÑÑ‚ не е намерен в базата от данни.';
-$lang['resendpwdbadauth']      = 'Кодът за потвърждение е невалиден. Проверете дали Ñте използвали Ñ†ÐµÐ»Ð¸Ñ Ð»Ð¸Ð½Ðº за потвърждение.';
-$lang['resendpwdconfirm']      = 'Линк за потвърждение е пратен по електронната поща.';
-$lang['resendpwdsuccess']      = 'Ðовата ви паролата е пратена по електронната поща.';
-$lang['license']               = 'Ðко не е поÑочено друго, Ñъдържанието на Wiki-то е лицензирано под ÑÐ»ÐµÐ´Ð½Ð¸Ñ Ð»Ð¸Ñ†ÐµÐ½Ð·:';
-$lang['licenseok']             = 'Бележка: Редактирайки Ñтраницата, Вие Ñе ÑъглаÑÑвате да лицензирате промените (които Ñте направили) под ÑÐ»ÐµÐ´Ð½Ð¸Ñ Ð»Ð¸Ñ†ÐµÐ½Ð·:';
-$lang['searchmedia']           = 'ТърÑене на файл: ';
-$lang['searchmedia_in']        = 'ТърÑене в %s';
-$lang['txt_upload']            = 'Изберете файл за качване:';
-$lang['txt_filename']          = 'Качи като (незадължително):';
-$lang['txt_overwrt']           = 'Презапиши ÑъщеÑтвуващите файлове';
-$lang['maxuploadsize']         = 'МакÑ. размер за отделните файлове е %s.';
-$lang['lockedby']              = 'В момента е заключена от:';
-$lang['lockexpire']            = 'Ще бъде отключена на:';
-$lang['js']['willexpire']      = 'Страницата ще бъде отключена за редактиране Ñлед минута.\nЗа предотвратÑване на конфликти, ползвайте бутона "Преглед", за реÑтартиране на броÑча за заключване.';
-$lang['js']['notsavedyet']     = 'ÐезапиÑаните промени ще бъдат загубени. Желаете ли да продължите?';
-$lang['js']['searchmedia']     = 'ТърÑене на файлове';
-$lang['js']['keepopen']        = 'Без затварÑне на прозореца Ñлед избор';
-$lang['js']['hidedetails']     = 'Без подробноÑти';
-$lang['js']['mediatitle']      = 'ÐаÑтройки на препратката';
-$lang['js']['mediadisplay']    = 'Тип на препратката';
-$lang['js']['mediaalign']      = 'Подреждане';
-$lang['js']['mediasize']       = 'Размер на изображението';
-$lang['js']['mediatarget']     = 'Препращане към';
-$lang['js']['mediaclose']      = 'ЗатварÑне';
-$lang['js']['mediainsert']     = 'Вмъкване';
-$lang['js']['mediadisplayimg'] = 'Показвай изображението.';
-$lang['js']['mediadisplaylnk'] = 'Показвай Ñамо препратката.';
-$lang['js']['mediasmall']      = 'Малка верÑиÑ';
-$lang['js']['mediamedium']     = 'Средна верÑиÑ';
-$lang['js']['medialarge']      = 'ГолÑма верÑиÑ';
-$lang['js']['mediaoriginal']   = 'Оригинална верÑиÑ';
-$lang['js']['medialnk']        = 'Препратка към подробна Ñтраница';
-$lang['js']['mediadirect']     = 'Директна препратка към оригинала';
-$lang['js']['medianolnk']      = 'Без препратка';
-$lang['js']['medianolink']     = 'Без препратка към изображението';
-$lang['js']['medialeft']       = 'Подреди изображението отлÑво.';
-$lang['js']['mediaright']      = 'Подреди изображението отдÑÑно.';
-$lang['js']['mediacenter']     = 'Подреди изображението по Ñредата.';
-$lang['js']['medianoalign']    = 'Без подреждане.';
-$lang['js']['nosmblinks']      = 'Връзките към Windows shares работÑÑ‚ Ñамо под Internet Explorer.<br />Можете да копирате и поÑтавите връзката.';
-$lang['js']['linkwiz']         = 'Помощник за препратки';
-$lang['js']['linkto']          = 'Препратка към: ';
-$lang['js']['del_confirm']     = 'Да бъдат ли изтрити избраните елементи?';
-$lang['js']['restore_confirm'] = 'ÐаиÑтина ли желаете да бъде възÑтановена тази верÑиÑ?';
-$lang['js']['media_diff']      = 'Преглед на разликите:';
-$lang['js']['media_diff_both'] = 'Един до друг';
-$lang['js']['media_diff_opacity'] = 'ÐаÑлагване (и прозиране)';
-$lang['js']['media_diff_portions'] = 'По половинка';
-$lang['js']['media_select']    = 'Изберете файлове...';
-$lang['js']['media_upload_btn'] = 'Качване';
-$lang['js']['media_done_btn']  = 'Готово';
-$lang['js']['media_drop']      = 'Влачете и пуÑнете файлове тук, за да бъдат качени';
-$lang['js']['media_cancel']    = 'премахване';
-$lang['js']['media_overwrt']   = 'Презапиши ÑъщеÑтвуващите файлове';
-$lang['rssfailed']             = 'Възникна грешка при получаването на емиÑиÑта: ';
-$lang['nothingfound']          = 'Ðищо не е открито.';
-$lang['mediaselect']           = 'Файлове';
-$lang['uploadsucc']            = 'Качването е уÑпешно';
-$lang['uploadfail']            = 'Качването Ñе провали. Може би поради грешни права?';
-$lang['uploadwrong']           = 'Качването е отказано. Файлово разширение е забранено!';
-$lang['uploadexist']           = 'Файлът вече ÑъщеÑтвува. Ðищо не е направено.';
-$lang['uploadbadcontent']      = 'Каченото Ñъдържание не ÑъответÑтва на файлово разширение %s .';
-$lang['uploadspam']            = 'Качването е блокирано от SPAM ÑпиÑъка.';
-$lang['uploadxss']             = 'Качването е блокирано, поради възможно зловредно Ñъдържание.';
-$lang['uploadsize']            = 'Файлът за качване е прекалено голÑм. (макÑ. %s)';
-$lang['deletesucc']            = 'Файлът "%s" бе изтрит.';
-$lang['deletefail']            = '"%s" не може да бъде изтрит - проверете правата.';
-$lang['mediainuse']            = 'Файлът "%s" не бе изтрит - вÑе още Ñе ползва.';
-$lang['namespaces']            = 'Именни проÑтранÑтва';
-$lang['mediafiles']            = 'Ðалични файлове в';
-$lang['accessdenied']          = 'ÐÑмате необходимите права за преглеждане на Ñтраницата.';
-$lang['mediausage']            = 'Ползвайте ÑÐ»ÐµÐ´Ð½Ð¸Ñ ÑинтакÑиÑ, за да упоменете файла:';
-$lang['mediaview']             = 'Преглед на Ð¾Ñ€Ð¸Ð³Ð¸Ð½Ð°Ð»Ð½Ð¸Ñ Ñ„Ð°Ð¹Ð»';
-$lang['mediaroot']             = 'root';
-$lang['mediaupload']           = 'Качете файл в текущото именно проÑтранÑтво. За Ñъздаване на подименно проÑтранÑтво, добавете име преди това на файла като ги разделите Ñ Ð´Ð²Ð¾ÐµÑ‚Ð¾Ñ‡Ð¸Ðµ в полето "Качи като"';
-$lang['mediaextchange']        = 'Разширението на файла е Ñменено от .%s на .%s!';
-$lang['reference']             = 'Връзки за';
-$lang['ref_inuse']             = 'Файлът не може да бъде изтрит, защото вÑе още Ñе ползва от Ñледните Ñтраници:';
-$lang['ref_hidden']            = 'ÐÑкои връзки Ñа към Ñтраници, които нÑмате права да четете';
-$lang['hits']                  = 'СъвпадениÑ';
-$lang['quickhits']             = 'Съвпадащи имена на Ñтраници';
-$lang['toc']                   = 'Съдържание';
-$lang['current']               = 'текуща';
-$lang['yours']                 = 'Вашата верÑиÑ';
-$lang['diff']                  = 'Преглед на разликите Ñ Ñ‚ÐµÐºÑƒÑ‰Ð°Ñ‚Ð° верÑиÑ';
-$lang['diff2']                 = 'Показване на разликите между избрани верÑии';
-$lang['difflink']              = 'Препратка към Ñравнението на верÑиите';
-$lang['diff_type']             = 'Преглед на разликите:';
-$lang['diff_inline']           = 'Вграден';
-$lang['diff_side']             = 'Един до друг';
-$lang['diffprevrev']           = 'Предходна верÑиÑ';
-$lang['diffnextrev']           = 'Следваща верÑиÑ';
-$lang['difflastrev']           = 'ПоÑледна верÑиÑ';
-$lang['line']                  = 'Ред';
-$lang['breadcrumb']            = 'Следа:';
-$lang['youarehere']            = 'Ðамирате Ñе в:';
-$lang['lastmod']               = 'ПоÑледна промÑна:';
-$lang['by']                    = 'от';
-$lang['deleted']               = 'изтрита';
-$lang['created']               = 'Ñъздадена';
-$lang['restored']              = 'възÑтановена предишна верÑÐ¸Ñ (%s)';
-$lang['external_edit']         = 'външна редакциÑ';
-$lang['summary']               = 'Обобщение';
-$lang['noflash']               = 'Ðеобходим е <a href="http://www.adobe.com/products/flashplayer/">Adobe Flash Plugin</a> за изобразÑване на Ñъдържанието.';
-$lang['download']              = 'ИзтеглÑне на фрагмент';
-$lang['tools']                 = 'ИнÑтрументи';
-$lang['user_tools']            = 'ИнÑтрументи за потребители';
-$lang['site_tools']            = 'ИнÑтрументи за Ñайта';
-$lang['page_tools']            = 'ИнÑтрументи за Ñтраници';
-$lang['skip_to_content']       = 'към Ñъдържанието';
-$lang['sidebar']               = 'Странична лента';
-$lang['mail_newpage']          = 'добавена Ñтраница: ';
-$lang['mail_changed']          = 'променена Ñтраница: ';
-$lang['mail_subscribe_list']   = 'променени Ñтраници в именно проÑтранÑтво: ';
-$lang['mail_new_user']         = 'нов потребител: ';
-$lang['mail_upload']           = 'качен файл: ';
-$lang['changes_type']          = 'Преглед на променените';
-$lang['pages_changes']         = 'Страници';
-$lang['media_changes']         = 'Файлове';
-$lang['both_changes']          = 'Страници и файлове';
-$lang['qb_bold']               = 'Удебелен текÑÑ‚';
-$lang['qb_italic']             = 'КурÑив текÑÑ‚';
-$lang['qb_underl']             = 'Подчертан текÑÑ‚';
-$lang['qb_code']               = 'Код';
-$lang['qb_strike']             = 'Зачеркнат текÑÑ‚';
-$lang['qb_h1']                 = 'Заглавие от 1 ниво';
-$lang['qb_h2']                 = 'Заглавие от 2 ниво';
-$lang['qb_h3']                 = 'Заглавие от 3 ниво';
-$lang['qb_h4']                 = 'Заглавие от 4 ниво';
-$lang['qb_h5']                 = 'Заглавие от 5 ниво';
-$lang['qb_h']                  = 'Заглавие';
-$lang['qb_hs']                 = 'Изберете заглавие';
-$lang['qb_hplus']              = 'Ðадзаглавие';
-$lang['qb_hminus']             = 'Подзаглавие';
-$lang['qb_hequal']             = 'Заглавие от Ñъщото ниво';
-$lang['qb_link']               = 'Вътрешна препратка';
-$lang['qb_extlink']            = 'Външна препратка';
-$lang['qb_hr']                 = 'Хоризонтална линиÑ';
-$lang['qb_ol']                 = 'Ðомериран ÑпиÑък';
-$lang['qb_ul']                 = 'Ðеномериран ÑпиÑък';
-$lang['qb_media']              = 'ДобавÑне на Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ð¸ други файлове';
-$lang['qb_sig']                = 'Вмъкване на подпиÑ';
-$lang['qb_smileys']            = 'УÑмивчици';
-$lang['qb_chars']              = 'Специални знаци';
-$lang['upperns']               = 'към майчиното именно проÑтранÑтво';
-$lang['metaedit']              = 'Редактиране на метаданни';
-$lang['metasaveerr']           = 'ЗапиÑването на метаданните Ñе провали';
-$lang['metasaveok']            = 'Метаданните Ñа запазени уÑпешно';
-$lang['img_title']             = 'Заглавие:';
-$lang['img_caption']           = 'ÐадпиÑ:';
-$lang['img_date']              = 'Дата:';
-$lang['img_fname']             = 'Име на файла:';
-$lang['img_fsize']             = 'Размер:';
-$lang['img_artist']            = 'Фотограф:';
-$lang['img_copyr']             = 'ÐвторÑко право:';
-$lang['img_format']            = 'Формат:';
-$lang['img_camera']            = 'Фотоапарат:';
-$lang['img_keywords']          = 'Ключови думи:';
-$lang['img_width']             = 'Ширина:';
-$lang['img_height']            = 'ВиÑочина:';
-$lang['subscr_subscribe_success'] = '%s е добавен към ÑпиÑъка Ñ Ð°Ð±Ð¾Ð½Ð¸Ñ€Ð°Ð»Ð¸Ñ‚Ðµ Ñе за %s';
-$lang['subscr_subscribe_error'] = 'Грешка при добавÑнето на %s към ÑпиÑъка Ñ Ð°Ð±Ð¾Ð½Ð¸Ñ€Ð°Ð»Ð¸Ñ‚Ðµ Ñе за %s';
-$lang['subscr_subscribe_noaddress'] = 'ДобавÑнето ви към ÑпиÑъка Ñ Ð°Ð±Ð¾Ð½Ð°Ñ‚Ð¸ не е възможно поради липÑата на Ñвързан Ð°Ð´Ñ€ÐµÑ (имейл) Ñ Ð¿Ñ€Ð¾Ñ„Ð¸Ð»Ð° ви.';
-$lang['subscr_unsubscribe_success'] = '%s е премахнат от ÑпиÑъка Ñ Ð°Ð±Ð¾Ð½Ð¸Ñ€Ð°Ð»Ð¸Ñ‚Ðµ Ñе за %s';
-$lang['subscr_unsubscribe_error'] = 'Грешка при премахването на %s от ÑпиÑъка Ñ Ð°Ð±Ð¾Ð½Ð¸Ñ€Ð°Ð»Ð¸Ñ‚Ðµ Ñе за %s';
-$lang['subscr_already_subscribed'] = '%s е вече абониран за %s';
-$lang['subscr_not_subscribed'] = '%s не е абониран за %s';
-$lang['subscr_m_not_subscribed'] = 'Ðе Ñте абониран за текущата Ñтраницата или именно проÑтранÑтво.';
-$lang['subscr_m_new_header']   = 'Добави абонамент';
-$lang['subscr_m_current_header'] = 'Текущи абонаменти';
-$lang['subscr_m_unsubscribe']  = 'ПрекратÑване на абонамента';
-$lang['subscr_m_subscribe']    = 'Ðбониране';
-$lang['subscr_m_receive']      = 'Получаване';
-$lang['subscr_style_every']    = 'на имейл при вÑÑка промÑна';
-$lang['subscr_style_digest']   = 'на имейл Ñ Ð¾Ð±Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ðµ на промените във вÑÑка Ñтраница (вÑеки %.2f дни)';
-$lang['subscr_style_list']     = 'на ÑпиÑък Ñ Ð¿Ñ€Ð¾Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ‚Ðµ Ñтраници от поÑÐ»ÐµÐ´Ð½Ð¸Ñ Ð¸Ð¼ÐµÐ¹Ð» (вÑеки %.2f дни)';
-$lang['authtempfail']          = 'УдоÑтоверÑването на потребители не е възможно за момента. Ðко продължи дълго, Ð¼Ð¾Ð»Ñ ÑƒÐ²ÐµÐ´Ð¾Ð¼ÐµÑ‚Ðµ админиÑтратора на Wiki Ñтраницата.';
-$lang['i_chooselang']          = 'Изберете Ð²Ð°ÑˆÐ¸Ñ ÐµÐ·Ð¸Ðº';
-$lang['i_installer']           = 'ИнÑталатор на DokuWiki';
-$lang['i_wikiname']            = 'Име на Wiki-то';
-$lang['i_enableacl']           = 'Ползване на ÑпиÑък за доÑтъп (ACL) [препоръчително]';
-$lang['i_superuser']           = 'Супер потребител';
-$lang['i_problems']            = 'Открити Ñа проблеми, които възпрепÑÑ‚Ñтват инÑталирането. Ще можете да продължите Ñлед като отÑтраните долуизброените проблеми.';
-$lang['i_modified']            = 'Поради мерки за ÑигурноÑÑ‚ инÑталаторът работи Ñамо Ñ Ð½Ð¾Ð²Ð¸ и непроменени инÑталационни файлове.
-								  ТрÑбва да разархивирате отново файловете от ÑÐ²Ð°Ð»ÐµÐ½Ð¸Ñ Ð°Ñ€Ñ…Ð¸Ð² или да Ñе поÑъветвате Ñ <a href="http://dokuwiki.org/install">ИнÑтрукциите за инÑталиране на Dokuwiki</a>.';
-$lang['i_funcna']              = 'PHP функциÑта <code>%s</code> не е доÑтъпна. Може би е забранена от доÑтавчика на хоÑтинг.';
-$lang['i_phpver']              = 'ИнÑталираната верÑÐ¸Ñ <code>%s</code> на PHP е по-Ñтара от необходимата <code>%s</code>. Ðктуализирайте PHP инÑталациÑта.';
-$lang['i_mbfuncoverload']      = 'Ðеобходимо е да изключите mbstring.func_overload в php.ini за да може DokuWiki да Ñтартира.';
-$lang['i_permfail']            = '<code>%s</code> не е доÑтъпна за пиÑане от DokuWiki. ТрÑбва да промените правата за доÑтъп до директориÑта!';
-$lang['i_confexists']          = '<code>%s</code> вече ÑъщеÑтвува';
-$lang['i_writeerr']            = '<code>%s</code> не можа да бъде Ñъздаден. ТрÑбва да проверите правата за доÑтъп до директориÑта/файла и да Ñъздадете файла ръчно.';
-$lang['i_badhash']             = 'Файлът dokuwiki.php не може да бъде разпознат или е променен (hash=<code>%s</code>)';
-$lang['i_badval']              = '<code>%s</code> - непозволена или празна ÑтойноÑÑ‚';
-$lang['i_success']             = 'ÐаÑтройването приключи уÑпешно. Вече можете да изтриете файла install.php. Продължете към <a href="doku.php?id=wiki:welcome">Вашето новата инÑÑ‚Ð°Ð»Ð°Ñ†Ð¸Ñ Ð½Ð° DokuWiki</a>.';
-$lang['i_failure']             = 'Възникнаха грешки при запиÑването на файловете Ñ Ð½Ð°Ñтройки. ВероÑтно ще Ñе наложи да ги поправите ръчно,
-                                  за да можете да ползвате <a href="doku.php?id=wiki:welcome">Вашето ново DokuWiki</a>.';
-$lang['i_policy']              = 'Първоначална политика за доÑтъп';
-$lang['i_pol0']                = 'Отворено Wiki (вÑеки може да чете, пише и качва)';
-$lang['i_pol1']                = 'Публично Wiki (вÑеки може да чете, Ñамо региÑтрирани пишат и качват)';
-$lang['i_pol2']                = 'Затворено Wiki (Ñамо региÑтрирани четат, пишат и качват)';
-$lang['i_allowreg']            = 'Разрешете на потребителите за Ñе региÑтрират Ñами';
-$lang['i_retry']               = 'Повторен опит';
-$lang['i_license']             = 'МолÑ, изберете лиценз под който желаете да публикувате Ñъдържанието:';
-$lang['i_license_none']        = 'Без показване на Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾Ñ‚Ð½Ð¾Ñно лиценза';
-$lang['i_pop_field']           = 'МолÑ, помогнете за уÑъвършенÑтването на DokuWiki:';
-$lang['i_pop_label']           = 'Изпращане на анонимна Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð´Ð¾ разработчиците на DokuWiki, веднъж Ñедмично';
-$lang['recent_global']         = 'Ð’ момента преглеждате промените в именно проÑтранÑтво <b>%s</b>. Може да прегледате и <a href="%s">промените в цÑлото Wiki</a>.';
-$lang['years']                 = 'преди %d години';
-$lang['months']                = 'преди %d меÑеца';
-$lang['weeks']                 = 'преди %d Ñедмици';
-$lang['days']                  = 'преди %d дни';
-$lang['hours']                 = 'преди %d чаÑа';
-$lang['minutes']               = 'преди %d минути';
-$lang['seconds']               = 'преди %d Ñекунди';
-$lang['wordblock']             = 'Ðаправените от Ð’Ð°Ñ Ð¿Ñ€Ð¾Ð¼ÐµÐ½Ð¸ не Ñа Ñъхранени, защото Ñъдържат забранен текÑÑ‚ (SPAM).';
-$lang['media_uploadtab']       = 'Качване';
-$lang['media_searchtab']       = 'ТърÑене';
-$lang['media_file']            = 'Файл';
-$lang['media_viewtab']         = 'Преглед';
-$lang['media_edittab']         = 'Редактиране';
-$lang['media_historytab']      = 'ИÑториÑ';
-$lang['media_list_thumbs']     = 'Миниатюри';
-$lang['media_list_rows']       = 'Редове';
-$lang['media_sort_name']       = 'Име';
-$lang['media_sort_date']       = 'Дата';
-$lang['media_namespaces']      = 'Изберете:';
-$lang['media_files']           = 'Файлове в %s';
-$lang['media_upload']          = 'Качване в %s';
-$lang['media_search']          = 'ТърÑене в %s';
-$lang['media_view']            = '%s';
-$lang['media_viewold']         = '%s в %s';
-$lang['media_edit']            = 'Редактиране на %s';
-$lang['media_history']         = 'ИÑÑ‚Ð¾Ñ€Ð¸Ñ Ð½Ð° %s';
-$lang['media_meta_edited']     = 'редактиране на метаданните';
-$lang['media_perm_read']       = 'За Ñъжаление нÑмате доÑтатъчно права, за да можете да прочетете файла.';
-$lang['media_perm_upload']     = 'За Ñъжаление нÑмате доÑтатъчно права, за да можете да качите файла.';
-$lang['media_update']          = 'Качване на нова верÑиÑ';
-$lang['media_restore']         = 'ВъзÑтановÑване на тази верÑиÑ';
-$lang['currentns']             = 'Текущо именно проÑтранÑтво';
-$lang['searchresult']          = 'Резултати от търÑенето';
-$lang['plainhtml']             = 'Обикновен HTML';
-$lang['email_signature_text'] = 'ПиÑмото е генерирано от DokuWiki на адреÑ
-@DOKUWIKIURL@';
diff --git a/wiki/inc/lang/bg/locked.txt b/wiki/inc/lang/bg/locked.txt
deleted file mode 100644
index 7cdfba7..0000000
--- a/wiki/inc/lang/bg/locked.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Страницата е заключена ======
-
-Ð’ момента Ñтраницата е заключена за редактиране от друг потребител. ТрÑбва да изчакате Ð¿Ð¾Ñ‚Ñ€ÐµÐ±Ð¸Ñ‚ÐµÐ»Ñ Ð´Ð° приключи Ñ Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¸Ñ€Ð°Ð½ÐµÑ‚Ð¾ на Ñтраницата или автоматичното отключване на Ñтраницата.
diff --git a/wiki/inc/lang/bg/login.txt b/wiki/inc/lang/bg/login.txt
deleted file mode 100644
index e5061c3..0000000
--- a/wiki/inc/lang/bg/login.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== ВпиÑване ======
-
-Ðе Ñте Ñе впиÑали! Въведете данните Ñи за удоÑтоверÑване отдолу, за да го направите. БиÑквитките (cookies) трÑбва да Ñа включени.
diff --git a/wiki/inc/lang/bg/mailtext.txt b/wiki/inc/lang/bg/mailtext.txt
deleted file mode 100644
index 60cffed..0000000
--- a/wiki/inc/lang/bg/mailtext.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-Страница в DokuWiki е добавена или променена. Ето детайлите:
-
-Дата : @DATE@
-Браузър : @BROWSER@
-IP Ð°Ð´Ñ€ÐµÑ : @IPADDRESS@
-Име на хоÑта : @HOSTNAME@
-Стара верÑиÑ: @OLDPAGE@
-Ðова верÑиÑ: @NEWPAGE@
-Обобщение: @SUMMARY@
-Потребител : @USER@
-
-@DIFF@
diff --git a/wiki/inc/lang/bg/mailwrap.html b/wiki/inc/lang/bg/mailwrap.html
deleted file mode 100644
index 7df0cdc..0000000
--- a/wiki/inc/lang/bg/mailwrap.html
+++ /dev/null
@@ -1,13 +0,0 @@
-<html>
-<head>
-    <title>@TITLE@</title>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-</head>
-<body>
-
-@HTMLBODY@
-
-<br /><hr />
-<small>@EMAILSIGNATURE@</small>
-</body>
-</html>
diff --git a/wiki/inc/lang/bg/newpage.txt b/wiki/inc/lang/bg/newpage.txt
deleted file mode 100644
index 22d3bb6..0000000
--- a/wiki/inc/lang/bg/newpage.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== ÐеÑъщеÑтвуваща тема ======
-
-ПоÑледвали Ñте препратка към тема, коÑто не ÑъщеÑтвува. Ðко правата ви позволÑват, може да Ñ Ñъздадете чрез бутона ''Създаване на Ñтраница''.
-
diff --git a/wiki/inc/lang/bg/norev.txt b/wiki/inc/lang/bg/norev.txt
deleted file mode 100644
index fb7aeef..0000000
--- a/wiki/inc/lang/bg/norev.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== ÐÑма такава верÑÐ¸Ñ ======
-
-Избраната верÑÐ¸Ñ Ð½Ðµ ÑъщеÑтвува. ÐатиÑнете бутона ''ИÑториÑ'' за отварÑне на ÑпиÑъка ÑÑŠÑ Ñтари верÑии на документа.
-
diff --git a/wiki/inc/lang/bg/password.txt b/wiki/inc/lang/bg/password.txt
deleted file mode 100644
index 77fa48b..0000000
--- a/wiki/inc/lang/bg/password.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-Здравейте @FULLNAME@!
-
-Вашите потребителÑки данни за @TITLE@ на @DOKUWIKIURL@
-
-Потребител : @LOGIN@
-Парола : @PASSWORD@
diff --git a/wiki/inc/lang/bg/preview.txt b/wiki/inc/lang/bg/preview.txt
deleted file mode 100644
index 41fde73..0000000
--- a/wiki/inc/lang/bg/preview.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Преглед ======
-
-Ето как ще изглежда Ñтраницата. ТекÑта вÑе още **не е запазен**!
\ No newline at end of file
diff --git a/wiki/inc/lang/bg/pwconfirm.txt b/wiki/inc/lang/bg/pwconfirm.txt
deleted file mode 100644
index 3d0a967..0000000
--- a/wiki/inc/lang/bg/pwconfirm.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-Здравейте @FULLNAME@!
-
-ÐÑкой е поиÑкал нова парола за потребител @TITLE@
-на @DOKUWIKIURL@
-
-Ðко не Ñте поиÑкали нова парола, тогава проÑто игнорирайте това пиÑмо.
-
-За да потвърдите, че иÑкането е наиÑтина от ваÑ, Ð¼Ð¾Ð»Ñ Ð¿Ð¾Ð»Ð·Ð²Ð°Ð¹Ñ‚Ðµ ÑÐ»ÐµÐ´Ð½Ð¸Ñ Ð»Ð¸Ð½Ðº:
-
-@CONFIRM@
diff --git a/wiki/inc/lang/bg/read.txt b/wiki/inc/lang/bg/read.txt
deleted file mode 100644
index 861d47f..0000000
--- a/wiki/inc/lang/bg/read.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-Страницата е Ñамо за четене. Може да разглеждате кода, но не и да го променÑте. Обърнете Ñе Ñъм админиÑтратора, ако ÑмÑтате, че това не е редно.
-
diff --git a/wiki/inc/lang/bg/recent.txt b/wiki/inc/lang/bg/recent.txt
deleted file mode 100644
index c920290..0000000
--- a/wiki/inc/lang/bg/recent.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Скорошни промени ======
-
-Следните Ñтраници Ñа били променени наÑкоро.
-
diff --git a/wiki/inc/lang/bg/register.txt b/wiki/inc/lang/bg/register.txt
deleted file mode 100644
index 3334280..0000000
--- a/wiki/inc/lang/bg/register.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== РегиÑтриране като нов потребител ======
-
-МолÑ, попълнете вÑичките полета отдолу, за да бъде Ñъздаден нов профил. Уверете Ñе, че въведениÑÑ‚ **имейл Ð°Ð´Ñ€ÐµÑ Ðµ правилен**. Ðко нÑма поле за парола, ще ви бъде изпратена такава на Ð²ÑŠÐ²ÐµÐ´ÐµÐ½Ð¸Ñ Ð°Ð´Ñ€ÐµÑ. ПотребителÑкото име трÑбва да бъде валидно [[doku>pagename|име на Ñтраница]].
-
diff --git a/wiki/inc/lang/bg/registermail.txt b/wiki/inc/lang/bg/registermail.txt
deleted file mode 100644
index 3c555f5..0000000
--- a/wiki/inc/lang/bg/registermail.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-РегиÑтриран е нов потребител. Ето детайлите:
-
-Потребител  : @NEWUSER@
-Пълно име : @NEWNAME@
-E. поща : @NEWEMAIL@
-
-Дата : @DATE@
-Браузър : @BROWSER@
-IP Ð°Ð´Ñ€ÐµÑ : @IPADDRESS@
-Име на хоÑта : @HOSTNAME@
diff --git a/wiki/inc/lang/bg/resendpwd.txt b/wiki/inc/lang/bg/resendpwd.txt
deleted file mode 100644
index 19dffc0..0000000
--- a/wiki/inc/lang/bg/resendpwd.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Пращане на нова парола ======
-
-МолÑ, въведете потребителÑкото Ñи име във формата по-долу, ако желаете да получите нова парола. Чрез имейл ще получите линк, Ñ ÐºÐ¾Ð¹Ñ‚Ð¾ да потвърдите.
diff --git a/wiki/inc/lang/bg/resetpwd.txt b/wiki/inc/lang/bg/resetpwd.txt
deleted file mode 100644
index caa4adf..0000000
--- a/wiki/inc/lang/bg/resetpwd.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Задаване на нова парола ======
-
-МолÑ, въведете нова парола за Ð²Ð°ÑˆÐ¸Ñ Ð°ÐºÐ°ÑƒÐ½Ñ‚ в Wiki Ñтраницата.
-
diff --git a/wiki/inc/lang/bg/revisions.txt b/wiki/inc/lang/bg/revisions.txt
deleted file mode 100644
index 0e14662..0000000
--- a/wiki/inc/lang/bg/revisions.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Стари верÑии======
-
-Това Ñа Ñтарите верÑии на документа. За да възÑтановите Ñтара верÑиÑ, изберете Ñ Ð´Ð¾Ð»Ñƒ, натиÑнете ''Редактиране'' и Ñ Ð·Ð°Ð¿Ð°Ð·ÐµÑ‚Ðµ.
-
diff --git a/wiki/inc/lang/bg/searchpage.txt b/wiki/inc/lang/bg/searchpage.txt
deleted file mode 100644
index 6da6042..0000000
--- a/wiki/inc/lang/bg/searchpage.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== ТърÑене ======
-
-Резултата от търÑенето ще намерите по-долу. @CREATEPAGEINFO@
-
diff --git a/wiki/inc/lang/bg/showrev.txt b/wiki/inc/lang/bg/showrev.txt
deleted file mode 100644
index a3848f8..0000000
--- a/wiki/inc/lang/bg/showrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**Това е Ñтара верÑÐ¸Ñ Ð½Ð° документа!**
-----
diff --git a/wiki/inc/lang/bg/stopwords.txt b/wiki/inc/lang/bg/stopwords.txt
deleted file mode 100644
index 03fd137..0000000
--- a/wiki/inc/lang/bg/stopwords.txt
+++ /dev/null
@@ -1,29 +0,0 @@
-# Това е ÑпиÑък Ñ Ð´ÑƒÐ¼Ð¸ за игнориране при индекÑиране, Ñ ÐµÐ´Ð½Ð° дума на ред
-# Когато редактирате този файл, не забравÑйте да използвате UNIX Ñимвол за нов ред
-# Ðе е нужно да включвате думи по-кратки от 3 Ñимвола - те биват игнорирани така или иначе
-# СпиÑъкът Ñе оÑновава на думи от http://www.ranks.nl/stopwords/
-about
-are
-and
-you
-your
-them
-their
-com
-for
-from
-into
-how
-that
-the
-this
-was
-what
-when
-where
-who
-will
-with
-und
-the
-www
diff --git a/wiki/inc/lang/bg/subscr_digest.txt b/wiki/inc/lang/bg/subscr_digest.txt
deleted file mode 100644
index 8f8cfea..0000000
--- a/wiki/inc/lang/bg/subscr_digest.txt
+++ /dev/null
@@ -1,15 +0,0 @@
-Здравейте!
-
-Страницата @PAGE@ в @TITLE@ wiki е променена.
-Промените Ñа по-долу:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-Стара верÑиÑ: @OLDPAGE@
-Ðова верÑиÑ: @NEWPAGE@
-
-Ðко желаете да прекратите уведомÑването за Ñтраницата трÑбва да Ñе впишете на Ð°Ð´Ñ€ÐµÑ @DOKUWIKIURL@, да поÑетите
-@SUBSCRIBE@
-и да прекратите абонамента за промени по Ñтраницата или именното проÑтранÑтво.
diff --git a/wiki/inc/lang/bg/subscr_form.txt b/wiki/inc/lang/bg/subscr_form.txt
deleted file mode 100644
index e32a5ec..0000000
--- a/wiki/inc/lang/bg/subscr_form.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== ДиÑпечер на абонаменти ======
-
-Страницата ви позволÑва да управлÑвате текущите Ñи абонаменти за Ñтраници и именни проÑтранÑтва.
\ No newline at end of file
diff --git a/wiki/inc/lang/bg/subscr_list.txt b/wiki/inc/lang/bg/subscr_list.txt
deleted file mode 100644
index 1e2b981..0000000
--- a/wiki/inc/lang/bg/subscr_list.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-Здравейте!
-
-Променени Ñа Ñтраници от именното проÑтранÑтво @PAGE@ от @TITLE@ wiki.
-Ето променените Ñтраници:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-Ðко желаете да прекратите уведомÑването за Ñтраницата трÑбва да Ñе впишете на Ð°Ð´Ñ€ÐµÑ @DOKUWIKIURL@, да поÑетите
-@SUBSCRIBE@
-и да прекратите абонамента за промени по Ñтраницата или именното проÑтранÑтво.
diff --git a/wiki/inc/lang/bg/subscr_single.txt b/wiki/inc/lang/bg/subscr_single.txt
deleted file mode 100644
index 36b2df3..0000000
--- a/wiki/inc/lang/bg/subscr_single.txt
+++ /dev/null
@@ -1,18 +0,0 @@
-Здравейте!
-
-Страницата @PAGE@ в @TITLE@ wiki е променена.
-Промените Ñа по-долу:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-Дата : @DATE@
-Потребител : @USER@
-Обобщение: @SUMMARY@
-Стара верÑиÑ: @OLDPAGE@
-Ðова верÑиÑ: @NEWPAGE@
-
-Ðко желаете да прекратите уведомÑването за Ñтраницата трÑбва да Ñе впишете на Ð°Ð´Ñ€ÐµÑ @DOKUWIKIURL@, да поÑетите
-@SUBSCRIBE@
-и да прекратите абонамента за промени по Ñтраницата или именното проÑтранÑтво.
diff --git a/wiki/inc/lang/bg/updateprofile.txt b/wiki/inc/lang/bg/updateprofile.txt
deleted file mode 100644
index 6113f0d..0000000
--- a/wiki/inc/lang/bg/updateprofile.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Обновете профила Ñи ======
-
-ТрÑбва Ñамо да допълните полетата, които иÑкате да промените. ПотребителÑкото не може да бъде променÑно.
diff --git a/wiki/inc/lang/bg/uploadmail.txt b/wiki/inc/lang/bg/uploadmail.txt
deleted file mode 100644
index 0c14437..0000000
--- a/wiki/inc/lang/bg/uploadmail.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-Качен е файл на вашето DokuWiki. Ето детайлите
-
-Файл : @MEDIA@
-Дата  : @DATE@
-Браузър : @BROWSER@
-IP Ð°Ð´Ñ€ÐµÑ : @IPADDRESS@
-Име на хоÑта : @HOSTNAME@
-Размер : @SIZE@
-MIME тип : @MIME@
-Потребител : @USER@
diff --git a/wiki/inc/lang/bn/admin.txt b/wiki/inc/lang/bn/admin.txt
deleted file mode 100644
index ede23c7..0000000
--- a/wiki/inc/lang/bn/admin.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== পà§à¦°à¦¶à¦¾à¦¸à¦¨ ======
-
-আপনি DokuWiki পাওয়া পà§à¦°à¦¶à¦¾à¦¸à¦¨à¦¿à¦• কাজগà§à¦²à§‹ à¦à¦•টি তালিকা পেতে পারেন নীচে.
\ No newline at end of file
diff --git a/wiki/inc/lang/bn/adminplugins.txt b/wiki/inc/lang/bn/adminplugins.txt
deleted file mode 100644
index c491ff9..0000000
--- a/wiki/inc/lang/bn/adminplugins.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== অতিরিকà§à¦¤ পà§à¦²à¦¾à¦—ইন =====
\ No newline at end of file
diff --git a/wiki/inc/lang/bn/backlinks.txt b/wiki/inc/lang/bn/backlinks.txt
deleted file mode 100644
index 61a7cac..0000000
--- a/wiki/inc/lang/bn/backlinks.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== বà§à¦¯à¦¾à¦•লিঙà§à¦•গà§à¦²à¦¿ ======
-
-à¦à¦‡ বরà§à¦¤à¦®à¦¾à¦¨ পৃষà§à¦ à¦¾à¦¯à¦¼ ফিরে সংযোগ আছে বলে মনে হচà§à¦›à§‡ যে পেজের à¦à¦•টি তালিকা.
\ No newline at end of file
diff --git a/wiki/inc/lang/bn/conflict.txt b/wiki/inc/lang/bn/conflict.txt
deleted file mode 100644
index b18ad95..0000000
--- a/wiki/inc/lang/bn/conflict.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== à¦à¦•টি নতà§à¦¨ সংসà§à¦•রণ উপসà§à¦¥à¦¿à¦¤ ======
-
-আপনি সমà§à¦ªà¦¾à¦¦à¦¿à¦¤ ডকà§à¦®à§‡à¦¨à§à¦Ÿà§‡à¦° à¦à¦•টি নতà§à¦¨ সংসà§à¦•রণ বিদà§à¦¯à¦®à¦¾à¦¨. আপনি à¦à¦Ÿà¦¿ সমà§à¦ªà¦¾à¦¦à¦¨à¦¾ যখন অনà§à¦¯ বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•ারীর নথি পরিবরà§à¦¤à¦¿à¦¤ যখন à¦à¦Ÿà¦¿ হয়.
-
-পà§à¦™à§à¦–ানà§à¦ªà§à¦™à§à¦–ভাবে নিচে দেখানো পারà§à¦¥à¦•à§à¦¯ পরীকà§à¦·à¦¾, তারপর রাখা যা সংসà§à¦•রণে ঠিক. আপনি "সংরকà§à¦·à¦£" চয়ন, আপনার সংসà§à¦•রণ সংরকà§à¦·à¦¿à¦¤ হবে অথবা বরà§à¦¤à¦®à¦¾à¦¨ সংসà§à¦•রণ রাখা ''বাতিল'' হিট করà§à¦¨.
\ No newline at end of file
diff --git a/wiki/inc/lang/bn/denied.txt b/wiki/inc/lang/bn/denied.txt
deleted file mode 100644
index 5ba0fcf..0000000
--- a/wiki/inc/lang/bn/denied.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== অনà§à¦®à¦¤à¦¿ অসà§à¦¬à§€à¦•ার =====
-
-দà§à¦ƒà¦–িত, আপনি কি à¦à¦—িয়ে যেতে যথেষà§à¦Ÿ অধিকার নেই.
\ No newline at end of file
diff --git a/wiki/inc/lang/bn/diff.txt b/wiki/inc/lang/bn/diff.txt
deleted file mode 100644
index 5952e28..0000000
--- a/wiki/inc/lang/bn/diff.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== পারà§à¦¥à¦•à§à¦¯ ======
-
-à¦à¦° মানে আপনি পৃষà§à¦ à¦¾à¦° দà§à¦Ÿà¦¿ সংসà§à¦•রণের মধà§à¦¯à§‡ পারà§à¦¥à¦•à§à¦¯ দেখায়.
\ No newline at end of file
diff --git a/wiki/inc/lang/bn/draft.txt b/wiki/inc/lang/bn/draft.txt
deleted file mode 100644
index 0b614f4..0000000
--- a/wiki/inc/lang/bn/draft.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== খসড়া ফাইল ====== পাওয়া
-
-à¦à¦‡ পৃষà§à¦ à¦¾à¦¤à§‡ আপনার সরà§à¦¬à¦¶à§‡à¦· সমà§à¦ªà¦¾à¦¦à¦¨à¦¾ সময় সঠিকভাবে সমà§à¦ªà¦¨à§à¦¨ করা হয় নি. DokuWiki সà§à¦¬à¦¯à¦¼à¦‚কà§à¦°à¦¿à¦¯à¦¼à¦­à¦¾à¦¬à§‡ আপনি à¦à¦–ন আপনার সমà§à¦ªà¦¾à¦¦à¦¨à¦¾ চালিয়ে যেতে বà§à¦¯à¦¬à¦¹à¦¾à¦° করতে পারেন যা আপনার কাজ করার সময় à¦à¦•টি খসড়া সংরকà§à¦·à¦¿à¦¤. আপনি আপনার শেষ সময় থেকে সংরকà§à¦·à¦¿à¦¤ ছিল যে তথà§à¦¯ দেখতে পারেন নিচে.
-
-আপনি / /ফিরাইয়া আনা / / আপনার হারিয়ে সমà§à¦ªà¦¾à¦¦à¦¨à¦¾ সময়, / / মà§à¦›à§‡ দিন / / সà§à¦¬à¦¤à¦ƒà¦¸à¦‚রকà§à¦·à¦¿à¦¤ খসড়া অথবা / / বাতিল / / সমà§à¦ªà¦¾à¦¦à¦¨à¦¾ পà§à¦°à¦•à§à¦°à¦¿à¦¯à¦¼à¦¾ পà§à¦¨à¦°à§à¦¦à§à¦§à¦¾à¦° করতে চান তা সà§à¦¥à¦¿à¦° করà§à¦¨.
\ No newline at end of file
diff --git a/wiki/inc/lang/bn/edit.txt b/wiki/inc/lang/bn/edit.txt
deleted file mode 100644
index b294b64..0000000
--- a/wiki/inc/lang/bn/edit.txt
+++ /dev/null
@@ -1 +0,0 @@
-পাতা সমà§à¦ªà¦¾à¦¦à¦¨à¦¾ করà§à¦¨ à¦à¦¬à¦‚ ''সংরকà§à¦·à¦£'' আঘাত. দেখà§à¦¨ [[উইকি: সিনটà§à¦¯à¦¾à¦•à§à¦¸]] উইকি সিনটà§à¦¯à¦¾à¦•à§à¦¸ জনà§à¦¯. আপনি à¦à¦Ÿà¦¿ **উনà§à¦¨à¦¤** করতে পারেন শà§à¦§à§à¦®à¦¾à¦¤à§à¦° যদি পাতাটি সমà§à¦ªà¦¾à¦¦à¦¨à¦¾ করà§à¦¨. আপনি কিছৠকিছৠবিষয় পরীকà§à¦·à¦¾ আপনার পà§à¦°à¦¥à¦® পদকà§à¦·à§‡à¦ª করা শিখতে চান [[খেলার মাঠ: খেলার মাঠ | খেলার মাঠ]].
\ No newline at end of file
diff --git a/wiki/inc/lang/bn/editrev.txt b/wiki/inc/lang/bn/editrev.txt
deleted file mode 100644
index 1ea7236..0000000
--- a/wiki/inc/lang/bn/editrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-** আপনি নথির à¦à¦•টি পà§à¦°à§‹à¦¨à§‹ সংসà§à¦•রণ লোড করেছেন! ** যদি আপনি à¦à¦Ÿà¦¿ সংরকà§à¦·à¦£ করেন, আপনি à¦à¦‡ তথà§à¦¯ দিয়ে à¦à¦•টি নতà§à¦¨ সংসà§à¦•রণ তৈরি করবে.
-----
\ No newline at end of file
diff --git a/wiki/inc/lang/bn/index.txt b/wiki/inc/lang/bn/index.txt
deleted file mode 100644
index 9f5ad75..0000000
--- a/wiki/inc/lang/bn/index.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== সাইটমà§à¦¯à¦¾à¦ª ======
-
-à¦à¦‡ দà§à¦¬à¦¾à¦°à¦¾ আদেশ সমসà§à¦¤ উপলবà§à¦§ পৃষà§à¦ à¦¾à¦—à§à¦²à¦¿ উপর à¦à¦•টি সাইট মà§à¦¯à¦¾à¦ª হল [[Doku> নামবà§à¦¯à¦¬à¦§à¦¾à¦¨ | নামবà§à¦¯à¦¬à¦§à¦¾à¦¨]].
\ No newline at end of file
diff --git a/wiki/inc/lang/bn/lang.php b/wiki/inc/lang/bn/lang.php
deleted file mode 100644
index 5cb66a8..0000000
--- a/wiki/inc/lang/bn/lang.php
+++ /dev/null
@@ -1,226 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Foysol <ragebot1125@gmail.com>
- * @author ninetailz <ninetailz1125@gmail.com>
- * @author Khan M. B. Asad <muhammad2017@gmail.com>
- * @author Ninetailz <ninetailz1125@gmail.com>
- */
-$lang['encoding']              = 'utf-8';
-$lang['direction']             = 'ltr';
-$lang['doublequoteopening']    = '“';
-$lang['doublequoteclosing']    = 'â€';
-$lang['singlequoteopening']    = '‘';
-$lang['singlequoteclosing']    = '’';
-$lang['apostrophe']            = '’';
-$lang['btn_edit']              = 'à¦à¦‡ পৃষà§à¦ à¦¾ সমà§à¦ªà¦¾à¦¦à¦¨à¦¾ করà§à¦¨';
-$lang['btn_source']            = 'দেখান পাতা উৎস';
-$lang['btn_show']              = 'দেখান পৃষà§à¦ à¦¾';
-$lang['btn_create']            = 'à¦à¦‡ পৃষà§à¦ à¦¾ তৈরি করà§à¦¨';
-$lang['btn_search']            = 'অনà§à¦¸à¦¨à§à¦§à¦¾à¦¨';
-$lang['btn_preview']           = 'পূরà§à¦¬à¦°à§‚প';
-$lang['btn_top']               = 'উপরে ফিরে যান ';
-$lang['btn_newer']             = '<< আরো সামà§à¦ªà§à¦°à¦¤à¦¿à¦•';
-$lang['btn_older']             = 'কম সামà§à¦ªà§à¦°à¦¤à¦¿à¦• >>';
-$lang['btn_revs']              = 'পà§à¦°à¦¾à¦šà§€à¦¨ সংশোধন';
-$lang['btn_recent']            = 'সাধিত পরিবরà§à¦¤à¦¨à¦¸à¦®à§‚হ';
-$lang['btn_upload']            = 'আপলোড করà§à¦¨';
-$lang['btn_cancel']            = 'বাতিল করা';
-$lang['btn_index']             = 'সাইট মà§à¦¯à¦¾à¦ª';
-$lang['btn_secedit']           = 'সমà§à¦ªà¦¾à¦¦à¦¨ করা';
-$lang['btn_login']             = 'লগইন';
-$lang['btn_logout']            = 'লগ আউট';
-$lang['btn_admin']             = 'অà§à¦¯à¦¾à¦¡à¦®à¦¿à¦¨';
-$lang['btn_update']            = 'আধà§à¦¨à¦¿à¦• করা';
-$lang['btn_delete']            = 'মà§à¦›à§‡ ফেলা';
-$lang['btn_back']              = 'পিছনে';
-$lang['btn_backlink']          = 'বà§à¦¯à¦¾à¦•লিঙà§à¦•গà§à¦²à¦¿';
-$lang['btn_subscribe']         = 'সাবসà§à¦•à§à¦°à¦¿à¦ªà¦¶à¦¨ পরিচালনা করà§à¦¨';
-$lang['btn_profile']           = 'পà§à¦°à§‹à¦«à¦¾à¦‡à¦² আপডেট করà§à¦¨';
-$lang['btn_reset']             = 'রিসেট করà§à¦¨';
-$lang['btn_resendpwd']         = 'সেট করà§à¦¨ নতà§à¦¨ পাসওয়ারà§à¦¡';
-$lang['btn_draft']             = 'সমà§à¦ªà¦¾à¦¦à¦¨à¦¾ খসড়া';
-$lang['btn_recover']           = 'খসড়া উদà§à¦§à¦¾à¦°';
-$lang['btn_draftdel']          = 'খসড়া মà§à¦›à§‡ দিন';
-$lang['btn_revert']            = 'পà§à¦¨à¦°à§‚দà§à¦§à¦¾à¦° করা';
-$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']                  = 'পাসওয়ারà§à¦¡';
-$lang['newpass']               = 'নতà§à¦¨ পাসওয়ারà§à¦¡';
-$lang['oldpass']               = 'বরà§à¦¤à¦®à¦¾à¦¨ পাসওয়ারà§à¦¡ নিশà§à¦šà¦¿à¦¤ করà§à¦¨';
-$lang['passchk']               = 'আরো à¦à¦•বার';
-$lang['remember']              = 'আমাকে মনে রেখো';
-$lang['fullname']              = 'আমাকে মনে রেখো';
-$lang['email']                 = 'ই মেইল';
-$lang['profile']               = 'বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•ারী পà§à¦°à§‹à¦«à¦¾à¦‡à¦²';
-$lang['badlogin']              = 'দà§à¦ƒà¦–িত, বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•ারীর নাম বা পাসওয়ারà§à¦¡ ভà§à¦² ছিল.';
-$lang['badpassconfirm']        = 'দà§à¦ƒà¦–িত, পাসওয়ারà§à¦¡ ভà§à¦² ছিল';
-$lang['minoredit']             = 'কà§à¦·à§à¦¦à§à¦° পরিবরà§à¦¤à¦¨à¦¸à¦®à§‚হ';
-$lang['draftdate']             = 'খসড়া উপর সà§à¦¬à¦¤à¦ƒà¦¸à¦‚রকà§à¦·à¦£';
-$lang['nosecedit']             = 'পাতা ইতিমধà§à¦¯à§‡ পরিবরà§à¦¤à¦¿à¦¤ হয়েছিল, অধà§à¦¯à¦¾à¦¯à¦¼ তথà§à¦¯à§‡à¦° পরিবরà§à¦¤à§‡ পà§à¦°à§‹ পাতা লোড তারিখ সীমার বাইরে ছিল.
-';
-$lang['regmissing']            = 'দà§à¦ƒà¦–িত, আপনি সমসà§à¦¤ কà§à¦·à§‡à¦¤à§à¦°à¦—à§à¦²à¦¿ পূরণ করা আবশà§à¦¯à¦•.';
-$lang['reguexists']            = 'দà§à¦ƒà¦–িত, à¦à¦‡ লগইন সঙà§à¦—ে à¦à¦•টি বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•ারী ইতিমধà§à¦¯à§‡à¦‡ বিদà§à¦¯à¦®à¦¾à¦¨.';
-$lang['regsuccess']            = 'বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•ারী তৈরি করা হয়েছে à¦à¦¬à¦‚ পাসওয়ারà§à¦¡ ইমেইল করে পাঠানো হয়েছিল.';
-$lang['regsuccess2']           = 'বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•ারী তৈরি করা হয়েছে.';
-$lang['regmailfail']           = 'à¦à¦•টি তà§à¦°à§à¦Ÿà¦¿ পাসওয়ারà§à¦¡ মেইল পাঠানোর নেভিগেশন ছিল মনে হচà§à¦›à§‡. অà§à¦¯à¦¾à¦¡à¦®à¦¿à¦¨ যোগাযোগ করà§à¦¨!';
-$lang['regbadmail']            = 'পà§à¦°à¦¦à¦¤à§à¦¤ ইমেইল ঠিকানা সঠিক মনে হচà§à¦›à§‡ - আপনি à¦à¦‡ à¦à¦•টি তà§à¦°à§à¦Ÿà¦¿ মনে হলে, অà§à¦¯à¦¾à¦¡à¦®à¦¿à¦¨ যোগাযোগ';
-$lang['regbadpass']            = 'দà§à¦Ÿà¦¿ পà§à¦°à¦¦à¦¤à§à¦¤ পাসওয়ারà§à¦¡ অভিনà§à¦¨ নয়, আবার চেষà§à¦Ÿà¦¾ করà§à¦¨.';
-$lang['regpwmail']             = 'আপনার DokuWiki পাসওয়ারà§à¦¡';
-$lang['reghere']               = 'যদিও তোমার কোনো à¦à¦•াউনà§à¦Ÿ নেই? শà§à¦§à§ à¦à¦•টি পেতে';
-$lang['profna']                = 'à¦à¦‡ উইকি পà§à¦°à§‹à¦«à¦¾à¦‡à¦² পরিবরà§à¦¤à¦¨ সমরà§à¦¥à¦¨ করে না';
-$lang['profnochange']          = 'à¦à¦®à¦¨ কোন পরিবরà§à¦¤à¦¨, না কিছà§à¦‡.';
-$lang['profnoempty']           = 'à¦à¦•টি খালি নাম অথবা ইমেইল ঠিকানা অনà§à¦®à§‹à¦¦à¦¿à¦¤ নয়.';
-$lang['profchanged']           = 'ইউজার পà§à¦°à§‹à¦«à¦¾à¦‡à¦² সফলভাবে আপডেট.';
-$lang['profnodelete']          = 'à¦à¦‡ উইকি বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•ারী মà§à¦›à§‡ ফেলার সমরà§à¦¥à¦¨ করে না';
-$lang['profdeleteuser']        = 'à¦à¦•াউনà§à¦Ÿ মà§à¦›à§‡ দিন';
-$lang['profdeleted']           = 'আপনার অà§à¦¯à¦¾à¦•াউনà§à¦Ÿà¦Ÿà¦¿ à¦à¦‡ উইকি থেকে মà§à¦›à§‡ ফেলা হয়েছে';
-$lang['profconfdelete']        = 'আমি à¦à¦‡ উইকি থেকে আমার অà§à¦¯à¦¾à¦•াউনà§à¦Ÿ অপসারণ করতে ইচà§à¦›à§à¦•. <br/> à¦à¦‡ কà§à¦°à¦¿à¦¯à¦¼à¦¾à¦Ÿà¦¿ পূরà§à¦¬à¦¾à¦¬à¦¸à§à¦¥à¦¾à¦¯à¦¼ ফেরানো যায় না.';
-$lang['profconfdeletemissing'] = 'নিশà§à¦šà¦¿à¦¤à¦•রণ চেক বকà§à¦¸ ticked না';
-$lang['pwdforget']             = 'আপনার পাসওয়ারà§à¦¡ ভà§à¦²à§‡ গেছেন? à¦à¦•টি নতà§à¦¨ পান';
-$lang['resendna']              = 'à¦à¦‡ উইকি পাসওয়ারà§à¦¡ পà§à¦¨à¦°à¦¾à¦¯à¦¼ পà§à¦°à§‡à¦°à¦£ সমরà§à¦¥à¦¨ করে না.';
-$lang['resendpwd']             = 'জনà§à¦¯ সেট করà§à¦¨ নতà§à¦¨ পাসওয়ারà§à¦¡';
-$lang['resendpwdmissing']      = 'দà§à¦ƒà¦–িত, আপনি সমসà§à¦¤ কà§à¦·à§‡à¦¤à§à¦°à¦—à§à¦²à¦¿ পূরণ করা আবশà§à¦¯à¦•.';
-$lang['resendpwdnouser']       = 'দà§à¦ƒà¦–িত, আমরা আমাদের ডাটাবেসের মধà§à¦¯à§‡ বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•ারীর খà§à¦à¦œà§‡ পাচà§à¦›à¦¿ না.';
-$lang['resendpwdbadauth']      = 'দà§à¦ƒà¦–িত, à¦à¦‡ auth কোড বৈধ নয়. আপনি সমà§à¦ªà§‚রà§à¦£ কনফারà§à¦®à§‡à¦¶à¦¨ লিঙà§à¦• বà§à¦¯à¦¬à¦¹à¦¾à¦° নিশà§à¦šà¦¿à¦¤ করà§à¦¨.';
-$lang['resendpwdconfirm']      = 'à¦à¦•টি নিশà§à¦šà¦¾à¦¯à¦¼à¦¨ লিঙà§à¦• ইমেলের মাধà§à¦¯à¦®à§‡ পাঠানো হয়েছে.';
-$lang['resendpwdsuccess']      = 'আপনার নতà§à¦¨ পাসওয়ারà§à¦¡ ইমেইলের মাধà§à¦¯à¦®à§‡ পাঠানো হয়েছে.';
-$lang['license']               = 'অনà§à¦¯à¦¥à¦¾à¦¯à¦¼ নোট যেখানে ছাড়া, à¦à¦‡ উইকি নেভিগেশন কনà§à¦Ÿà§‡à¦¨à§à¦Ÿ নিমà§à¦¨à¦²à¦¿à¦–িত লাইসেনà§à¦¸à§‡à¦° আওতায় লাইসেনà§à¦¸à¦•ৃত:';
-$lang['licenseok']             = 'দà§à¦°à¦·à§à¦Ÿà¦¬à§à¦¯: আপনি নিমà§à¦¨à¦²à¦¿à¦–িত লাইসেনà§à¦¸à§‡à¦° অধীনে আপনার বিষয়বসà§à¦¤à§ লাইসেনà§à¦¸ সমà§à¦®à¦¤ হন à¦à¦‡ পৃষà§à¦ à¦¾à¦° সমà§à¦ªà¦¾à¦¦à¦¨à¦¾à¦° দà§à¦¬à¦¾à¦°à¦¾:';
-$lang['searchmedia']           = 'অনà§à¦¸à¦¨à§à¦§à¦¾à¦¨ ফাইলের নাম:';
-$lang['searchmedia_in']        = 'অনà§à¦¸à¦¨à§à¦§à¦¾à¦¨ %s -à¦';
-$lang['txt_upload']            = 'আপলোড করার জনà§à¦¯ নিরà§à¦¬à¦¾à¦šà¦¨ করà§à¦¨ ফাইল:';
-$lang['txt_filename']          = 'হিসাবে আপলোড করà§à¦¨ (à¦à¦šà§à¦›à¦¿à¦•):';
-$lang['txt_overwrt']           = 'বিদà§à¦¯à¦®à¦¾à¦¨ ফাইল মà§à¦›à§‡ যাবে';
-$lang['maxuploadsize']         = 'সরà§à¦¬à§‹à¦šà§à¦š আপলোড করà§à¦¨. %s-ফাইলের পà§à¦°à¦¤à¦¿.';
-$lang['lockedby']              = 'বরà§à¦¤à¦®à¦¾à¦¨à§‡ দà§à¦¬à¦¾à¦°à¦¾ লক:';
-$lang['lockexpire']            = 'তালা ঠমেয়াদ শেষ:';
-$lang['js']['willexpire']      = 'à¦à¦‡ পৃষà§à¦ à¦¾à¦° সমà§à¦ªà¦¾à¦¦à¦¨à¦¾à¦° জনà§à¦¯ আপনার লক à¦à¦• মিনিটের মধà§à¦¯à§‡ মেয়াদ শেষ সমà§à¦ªà¦°à§à¦•ে. \ দà§à¦¬à¦¨à§à¦¦à§à¦¬ লক টাইমার রিসেট পà§à¦°à¦¿à¦­à¦¿à¦‰ বাটন বà§à¦¯à¦¬à¦¹à¦¾à¦° à¦à¦¡à¦¼à¦¾à¦¤à§‡.';
-$lang['js']['notsavedyet']     = 'অসংরকà§à¦·à¦¿à¦¤ পরিবরà§à¦¤à¦¨ হারিয়ে যাবে.';
-$lang['js']['searchmedia']     = 'ফাইলের জনà§à¦¯ অনà§à¦¸à¦¨à§à¦§à¦¾à¦¨';
-$lang['js']['keepopen']        = 'নিরà§à¦¬à¦¾à¦šà¦¨à§‡à¦° উপর উইনà§à¦¡à§‹ খোলা রাখà§à¦¨';
-$lang['js']['hidedetails']     = 'বিশদ আড়াল করà§à¦¨';
-$lang['js']['mediatitle']      = 'লিংক সেটিংস';
-$lang['js']['mediadisplay']    = 'লিংক টাইপ';
-$lang['js']['mediaalign']      = 'শà§à¦°à§‡à¦£à§€à¦¬à¦¿à¦¨à§à¦¯à¦¾à¦¸';
-$lang['js']['mediasize']       = 'চিতà§à¦° আকার';
-$lang['js']['mediatarget']     = 'লিংক টারà§à¦—েট';
-$lang['js']['mediaclose']      = 'বনà§à¦§ করা';
-$lang['js']['mediainsert']     = 'ঢোকান';
-$lang['js']['mediadisplayimg'] = 'ছবিটি দেখান';
-$lang['js']['mediadisplaylnk'] = 'শà§à¦§à§à¦®à¦¾à¦¤à§à¦° লিঙà§à¦• দেখান';
-$lang['js']['mediasmall']      = 'কà§à¦·à§à¦¦à§à¦° সংসà§à¦•রণ';
-$lang['js']['mediamedium']     = 'মাধà§à¦¯à¦® সংসà§à¦•রণ';
-$lang['js']['medialarge']      = 'বড় সংসà§à¦•রণ';
-$lang['js']['mediaoriginal']   = 'আসল সংসà§à¦•রণ';
-$lang['js']['medialnk']        = 'বিসà§à¦¤à¦¾à¦°à¦¿à¦¤ পৃষà§à¦ à¦¾à¦¯à¦¼ লিংক';
-$lang['js']['mediadirect']     = 'মূল সরাসরি লিঙà§à¦•';
-$lang['js']['medianolnk']      = 'কোনো লিঙà§à¦• নাই';
-$lang['js']['medianolink']     = 'ইমেজ লিঙà§à¦• কোরো না';
-$lang['js']['medialeft']       = 'বাম দিকে ইমেজ সারিবদà§à¦§ কর';
-$lang['js']['mediaright']      = 'ডান দিকে ইমেজ সারিবদà§à¦§ কর';
-$lang['js']['mediacenter']     = 'মাà¦à¦–ানে ইমেজ সারিবদà§à¦§ কর';
-$lang['js']['medianoalign']    = 'কোনো সারিবদà§à¦§ করা পà§à¦°à¦¯à¦¼à§‹à¦œà¦¨ নেই';
-$lang['js']['nosmblinks']      = 'উইনà§à¦¡à§‹à¦¸ শেয়ার à¦à¦° সাথে সংযোগ সাধন কেবল মাইকà§à¦°à§‹à¦¸à¦«à§à¦Ÿ ইনà§à¦Ÿà¦¾à¦°à¦¨à§‡à¦Ÿ à¦à¦•à§à¦¸à¦ªà§à¦²à§‹à¦°à¦¾à¦°à§‡à¦‡ সমà§à¦­à¦¬à¥¤\nতবে আপনি লিংকটি কপি পেসà§à¦Ÿ করতেই পারেন।';
-$lang['js']['linkwiz']         = 'লিংক উইজারà§à¦¡';
-$lang['js']['linkto']          = 'সংযোগের লকà§à¦·à§à¦¯:';
-$lang['js']['del_confirm']     = 'নিরà§à¦¬à¦¾à¦šà¦¿à¦¤ আইটেম(গà§à¦²à§‹) আসলেই মà§à¦›à§‡ ফেলতে চান?';
-$lang['js']['restore_confirm'] = 'à¦à¦‡ সংসà§à¦•রণ সতà§à¦¯à¦¿à¦‡ পূরà§à¦¬à¦¾à¦¬à¦¸à§à¦¥à¦¾à§Ÿ ফিরিয়ে আনতে চান?';
-$lang['js']['media_diff']      = 'পারà§à¦¥à¦•à§à¦¯à¦—à§à¦²à§‹ দেখà§à¦¨:';
-$lang['js']['media_diff_both'] = 'পাশাপাশি';
-$lang['js']['media_diff_opacity'] = 'শাইন-থà§à¦°à§';
-$lang['js']['media_diff_portions'] = 'à¦à§‡à¦à¦Ÿà¦¿à§Ÿà§‡ বিদায়';
-$lang['js']['media_select']    = 'ফাইল নিরà§à¦¬à¦¾à¦šà¦¨...';
-$lang['js']['media_upload_btn'] = 'আপলোড';
-$lang['js']['media_done_btn']  = 'সাধিত';
-$lang['js']['media_drop']      = 'আপলোডের জনà§à¦¯ à¦à¦–ানে ফাইল ফেলà§à¦¨';
-$lang['js']['media_cancel']    = 'অপসারণ';
-$lang['js']['media_overwrt']   = 'বরà§à¦¤à¦®à¦¾à¦¨ ফাইল ওভাররাইট করà§à¦¨';
-$lang['rssfailed']             = 'ফিডটি জোগাড় করতে গিয়ে à¦à¦•টি তà§à¦°à§à¦Ÿà¦¿ ঘটেছে:';
-$lang['nothingfound']          = 'কিছৠপাওয়া যায়নি।';
-$lang['mediaselect']           = 'মিডিয়া ফাইল';
-$lang['uploadsucc']            = 'আপলোড সফল';
-$lang['uploadfail']            = 'আপলোড বà§à¦¯à¦°à§à¦¥à¥¤ অনà§à¦®à¦¤à¦¿ জনিত তà§à¦°à§à¦Ÿà¦¿ কী?';
-$lang['uploadwrong']           = 'আপলোড পà§à¦°à¦¤à§à¦¯à¦¾à¦–à§à¦¯à¦¾à¦¤à¥¤ à¦à¦‡ ফাইল à¦à¦•à§à¦¸à¦Ÿà§‡à¦¨à¦¶à¦¨ অননà§à¦®à§‹à¦¦à¦¿à¦¤à¥¤';
-$lang['uploadexist']           = 'ফাইল ইতিমধà§à¦¯à§‡à¦‡ বিরাজমান। কিছৠকরা হয়নি।';
-$lang['uploadbadcontent']      = 'আপলোডকৃত সামগà§à¦°à§€ %s ফাইল à¦à¦•à§à¦¸à¦Ÿà§‡à¦¨à¦¶à¦¨ à¦à¦° সাথে মিলেনি।';
-$lang['uploadspam']            = 'সà§à¦ªà§à¦¯à¦¾à¦® বà§à¦²à§à¦¯à¦¾à¦•লিসà§à¦Ÿ আপলোড আটকে দিয়েছে।';
-$lang['uploadxss']             = 'সামগà§à¦°à§€à¦Ÿà¦¿ কà§à¦·à¦¤à¦¿à¦•র ভেবে আপলোড আটকে দেয়া হয়েছে।';
-$lang['uploadsize']            = 'আপলোডকৃত ফাইলটি বেশি বড়ো। (সরà§à¦¬à§‹à¦šà§à¦š %s)';
-$lang['deletesucc']            = '"%s" ফাইলটি মà§à¦›à§‡ ফেলা হয়েছে।';
-$lang['deletefail']            = '"%s" ডিলিট করা যায়নি - অনà§à¦®à¦¤à¦¿ আছে কি না দেখà§à¦¨à¥¤';
-$lang['mediainuse']            = '"%s" ফাইলটি মোছা হয়নি - à¦à¦Ÿà¦¿ à¦à¦–নো বà§à¦¯à¦¬à¦¹à§ƒà¦¤ হচà§à¦›à§‡à¥¤';
-$lang['namespaces']            = 'নামসà§à¦¥à¦¾à¦¨';
-$lang['mediafiles']            = 'ফাইল পাওয়া যাবে ';
-$lang['accessdenied']          = 'আপনি à¦à¦‡ পৃষà§à¦ à¦¾à¦Ÿà¦¿ দেখতে অনà§à¦®à¦¤à¦¿ দেওয়া হয়নি';
-$lang['mediausage']            = 'à¦à¦‡ ফাইলের উলà§à¦²à§‡à¦– নিমà§à¦¨à¦²à¦¿à¦–িত সিনটà§à¦¯à¦¾à¦•à§à¦¸ বà§à¦¯à¦¬à¦¹à¦¾à¦° করà§à¦¨:';
-$lang['mediaview']             = 'মূল ফাইলটি দেখà§à¦¨';
-$lang['mediaroot']             = 'মূল';
-$lang['mediaupload']           = 'à¦à¦–ানে বরà§à¦¤à¦®à¦¾à¦¨ নামসà§à¦¥à¦¾à¦¨ à¦à¦•টি ফাইল আপলোড করà§à¦¨. , Subnamespaces তৈরি আপনি ফাইল নিরà§à¦¬à¦¾à¦šà¦¨ পরে কোলন দà§à¦¬à¦¾à¦°à¦¾ বিভাজিত আপনার ফাইলের নাম তাদের পূরà§à¦¬à§‡ লিখà§à¦¨ করà§à¦¨. কোন ফাইল à¦à¦›à¦¾à¦¡à¦¼à¦¾à¦“ ডà§à¦°à§à¦¯à¦¾à¦— à¦à¦¬à¦‚ ডà§à¦°à¦ª দà§à¦¬à¦¾à¦°à¦¾ নিরà§à¦¬à¦¾à¦šà¦¨ করা সমà§à¦­à¦¬.';
-$lang['mediaextchange']        = 'ফাইল à¦à¦•à§à¦¸à¦Ÿà§‡à¦¨à¦¶à¦¨ .%s থেকে .%s\'ঠপরিবরà§à¦¤à¦¨ হলো !';
-$lang['reference']             = 'তথà§à¦¯à¦¸à§‚তà§à¦°à§‡à¦° জনà§à¦¯ ';
-$lang['ref_inuse']             = 'à¦à¦‡ ফাইল মà§à¦›à§‡ ফেলা যাবে না কারণ à¦à¦Ÿà¦¿ à¦à¦–নও বà§à¦¯à¦¬à¦¹à§ƒà¦¤ হচà§à¦›à§‡ নিমà§à¦¨à¦²à¦¿à¦–িত পাতা দà§à¦¬à¦¾à¦°à¦¾:';
-$lang['ref_hidden']            = 'à¦à¦‡ পাতায় কিছৠরেফারেনà§à¦¸ পড়ার আপনার আনà§à¦®à¦¤à¦¿ নেই';
-$lang['hits']                  = 'সফল ';
-$lang['quickhits']             = 'পৃষà§à¦ à¦¾ মেলে';
-$lang['toc']                   = 'সূচীপতà§à¦°';
-$lang['current']               = 'বরà§à¦¤à¦®à¦¾à¦¨';
-$lang['yours']                 = 'আপনার সংসà§à¦•রণ
-';
-$lang['diff']                  = 'বরà§à¦¤à¦®à¦¾à¦¨ সংসà§à¦•রণের পারà§à¦¥à¦•à§à¦¯ দেখান ';
-$lang['diff2']                 = 'নিরà§à¦¬à¦¾à¦šà¦¿à¦¤ সংসà§à¦•রণের মধà§à¦¯à§‡ পারà§à¦¥à¦•à§à¦¯ দেখান ';
-$lang['diff_type']             = 'পারà§à¦¥à¦•à§à¦¯ দেখà§à¦¨:';
-$lang['diff_inline']           = 'ইনলাইন';
-$lang['diff_side']             = 'পাশাপাশি';
-$lang['diffprevrev']           = 'পূরà§à¦¬à¦¬à¦°à§à¦¤à§€ সংসà§à¦•রণ';
-$lang['diffnextrev']           = 'পরবরà§à¦¤à§€ সংসà§à¦•রণ';
-$lang['difflastrev']           = 'সরà§à¦¬à¦¶à§‡à¦· সংসà§à¦•রণ';
-$lang['diffbothprevrev']       = 'উভয় পকà§à¦·à§‡à¦° পূরà§à¦¬à¦¬à¦°à§à¦¤à§€ সংসà§à¦•রণ';
-$lang['diffbothnextrev']       = 'উভয় পকà§à¦·à§‡à¦° পরবরà§à¦¤à§€ সংসà§à¦•রণ';
-$lang['line']                  = 'লাইন';
-$lang['breadcrumb']            = 'টà§à¦°à§‡à¦¸:';
-$lang['youarehere']            = 'আপনি à¦à¦–ানে আছেন:';
-$lang['lastmod']               = 'শেষ বার পরিমারà§à¦œà¦¿à¦¤';
-$lang['by']                    = 'দà§à¦¬à¦¾à¦°à¦¾';
-$lang['deleted']               = 'মà§à¦›à§‡ ফেলা';
-$lang['created']               = 'তৈরি করা';
-$lang['restored']              = 'পà§à¦°à¦¾à¦¨à§‹ সংসà§à¦•রণের পà§à¦¨à¦ƒà¦¸à§à¦¥à¦¾à¦ªà¦¨ (%s)';
-$lang['external_edit']         = 'বাহà§à¦¯à¦¿à¦• সমà§à¦ªà¦¾à¦¦à¦¨à¦¾';
-$lang['summary']               = 'সমà§à¦ªà¦¾à¦¦à¦¨à¦¾ সারাংশ';
-$lang['noflash']               = 'ঠhref="http://www.adobe.com/products/flashplayer/"> অà§à¦¯à¦¾à¦¡à§‹à¦¬à¦¿ ফà§à¦²à§à¦¯à¦¾à¦¶ পà§à¦²à¦¾à¦—ইন </a> à¦à¦‡ সামগà§à¦°à§€ পà§à¦°à¦¦à¦°à§à¦¶à¦¨ করার জনà§à¦¯ পà§à¦°à¦¯à¦¼à§‹à¦œà¦¨ হয়.';
-$lang['download']              = 'ডাউনলোড সà§à¦¨à¦¿à¦ªà§‡à¦Ÿ ';
-$lang['tools']                 = 'সরঞà§à¦œà¦¾à¦®à¦¸à¦®à§‚হ';
-$lang['user_tools']            = 'বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•ারীর সরঞà§à¦œà¦¾à¦®à¦¸à¦®à§‚হ';
-$lang['site_tools']            = 'সাইটের সরঞà§à¦œà¦¾à¦®à¦¸à¦®à§‚হ';
-$lang['page_tools']            = 'পৃষà§à¦ à¦¾à¦° সরঞà§à¦œà¦¾à¦®à¦¸à¦®à§‚হ';
-$lang['skip_to_content']       = 'বিষয়ে à¦à¦¡à¦¼à¦¿à¦¯à¦¼à§‡ যান';
-$lang['sidebar']               = 'সাইডবার';
-$lang['mail_newpage']          = 'পৃষà§à¦ à¦¾ যোগ করা হয়েছে:';
-$lang['mail_changed']          = 'পৃষà§à¦ à¦¾ পরিবরà§à¦¤à¦¨ করা হয়েছে:';
-$lang['mail_subscribe_list']   = 'পৃষà§à¦ à¦¾à¦—à§à¦²à¦¿à¦° নামসà§à¦¥à¦¾à¦¨ পরিবরà§à¦¤à¦¨:';
-$lang['mail_new_user']         = 'নতà§à¦¨ বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•ারী:';
-$lang['mail_upload']           = 'ফাইল আপলোড করেছেন:';
-$lang['changes_type']          = 'দেখà§à¦¨ পরিবরà§à¦¤à¦¨à¦¸à¦®à§‚হ';
-$lang['pages_changes']         = 'পৃষà§à¦ à¦¾à¦—à§à¦²à¦¿';
-$lang['media_changes']         = 'মিডিয়া ফাইলগà§à¦²à¦¿';
-$lang['both_changes']          = 'পেজ à¦à¦¬à¦‚ মিডিয়া ফাইল উভয়েই';
-$lang['qb_bold']               = 'গাঢ় লেখা';
-$lang['qb_italic']             = 'বাà¦à¦•া লেখা';
-$lang['qb_underl']             = 'আনà§à¦¡à¦¾à¦°à¦²à¦¾à¦‡à¦¨ টেকà§à¦¸à¦Ÿ';
-$lang['qb_code']               = 'মোনোসà§à¦•েপ লেখা';
-$lang['qb_strike']             = 'সà§à¦Ÿà§à¦°à¦¾à¦‡à¦• মাধà§à¦¯à¦®à§‡ টেকà§à¦¸à¦Ÿ';
-$lang['qb_h1']                 = 'সà§à¦¤à¦° 1 শিরোনাম';
-$lang['qb_h2']                 = 'সà§à¦¤à¦° 2 শিরোনাম';
-$lang['qb_h3']                 = 'সà§à¦¤à¦° 3 শিরোনাম';
-$lang['qb_h4']                 = 'সà§à¦¤à¦° 4 শিরোনাম';
-$lang['qb_h5']                 = 'সà§à¦¤à¦° 5 শিরোনাম';
-$lang['qb_h']                  = 'শিরোনাম';
-$lang['qb_hs']                 = 'নিরà§à¦¬à¦¾à¦šà¦¨ করà§à¦¨ শিরোনাম';
diff --git a/wiki/inc/lang/ca-valencia/admin.txt b/wiki/inc/lang/ca-valencia/admin.txt
deleted file mode 100644
index 60b1b6e..0000000
--- a/wiki/inc/lang/ca-valencia/admin.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Administració ======
-
-Baix pot trobar una llista de tasques administratives disponibles en DokuWiki.
-
diff --git a/wiki/inc/lang/ca-valencia/adminplugins.txt b/wiki/inc/lang/ca-valencia/adminplugins.txt
deleted file mode 100644
index 010701e..0000000
--- a/wiki/inc/lang/ca-valencia/adminplugins.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Plugins adicionals =====
diff --git a/wiki/inc/lang/ca-valencia/backlinks.txt b/wiki/inc/lang/ca-valencia/backlinks.txt
deleted file mode 100644
index bd7fde8..0000000
--- a/wiki/inc/lang/ca-valencia/backlinks.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Vínculs remitents ======
-
-Una llista de pàgines que pareixen vincular a la pàgina actual.
diff --git a/wiki/inc/lang/ca-valencia/conflict.txt b/wiki/inc/lang/ca-valencia/conflict.txt
deleted file mode 100644
index 6e91fe5..0000000
--- a/wiki/inc/lang/ca-valencia/conflict.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-====== Ya existix una versió més nova ======
-
-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.
-
diff --git a/wiki/inc/lang/ca-valencia/denied.txt b/wiki/inc/lang/ca-valencia/denied.txt
deleted file mode 100644
index 6640e07..0000000
--- a/wiki/inc/lang/ca-valencia/denied.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Permís denegat ======
-
-Disculpe, pero no té permís per a continuar.
-
diff --git a/wiki/inc/lang/ca-valencia/diff.txt b/wiki/inc/lang/ca-valencia/diff.txt
deleted file mode 100644
index 2b5c60e..0000000
--- a/wiki/inc/lang/ca-valencia/diff.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Diferències ======
-
-Ací es mostren les diferències entre dos versions de la pàgina.
-
diff --git a/wiki/inc/lang/ca-valencia/draft.txt b/wiki/inc/lang/ca-valencia/draft.txt
deleted file mode 100644
index d3972a7..0000000
--- a/wiki/inc/lang/ca-valencia/draft.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-====== 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. Baix pot vore la data en què es guardà l'últim borrador.
-
-Per favor, decidisca si vol //recuperar// la sessió que pergué, //borrar// el borrador o //cancelar// esta edició.
-
diff --git a/wiki/inc/lang/ca-valencia/edit.txt b/wiki/inc/lang/ca-valencia/edit.txt
deleted file mode 100644
index e1ca6bf..0000000
--- a/wiki/inc/lang/ca-valencia/edit.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-Edite la pàgina i pulse 'Guardar". Consulte la [[wiki:syntax|Sintaxis]] del Wiki. Per favor, edite la pàgina només **si pot millorar-la**. Si vol fer proves, deprenga a utilisar el Wiki en el [[playground:playground|espai de proves]].
-
diff --git a/wiki/inc/lang/ca-valencia/editrev.txt b/wiki/inc/lang/ca-valencia/editrev.txt
deleted file mode 100644
index 54feb3b..0000000
--- a/wiki/inc/lang/ca-valencia/editrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**Ha carregat una versió antiga del document!** Si la guarda crearà una nova versió en el contingut d'esta.
-----
diff --git a/wiki/inc/lang/ca-valencia/index.txt b/wiki/inc/lang/ca-valencia/index.txt
deleted file mode 100644
index 5e57c16..0000000
--- a/wiki/inc/lang/ca-valencia/index.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Ãndex ======
-
-Un índex de totes les pàgines disponibles ordenades per [[doku>namespaces|espais de noms]].
-
diff --git a/wiki/inc/lang/ca-valencia/install.html b/wiki/inc/lang/ca-valencia/install.html
deleted file mode 100644
index 804b803..0000000
--- a/wiki/inc/lang/ca-valencia/install.html
+++ /dev/null
@@ -1,8 +0,0 @@
-<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 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>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 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/wiki/inc/lang/ca-valencia/lang.php b/wiki/inc/lang/ca-valencia/lang.php
deleted file mode 100644
index da6bd67..0000000
--- a/wiki/inc/lang/ca-valencia/lang.php
+++ /dev/null
@@ -1,223 +0,0 @@
-<?php
-/**
- * valencian language file
- *
- * @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';
-$lang['doublequoteopening']    = '“';
-$lang['doublequoteclosing']    = 'â€';
-$lang['singlequoteopening']    = '‘';
-$lang['singlequoteclosing']    = '’';
-$lang['apostrophe']            = '’';
-$lang['btn_edit']              = 'Editar esta pàgina';
-$lang['btn_source']            = 'Mostrar font';
-$lang['btn_show']              = 'Mostrar pàgina';
-$lang['btn_create']            = 'Crear esta pàgina';
-$lang['btn_search']            = 'Buscar';
-$lang['btn_save']              = 'Guardar';
-$lang['btn_preview']           = 'Vista prèvia';
-$lang['btn_top']               = 'Tornar dalt';
-$lang['btn_newer']             = '<< més recents';
-$lang['btn_older']             = 'manco recents >>';
-$lang['btn_revs']              = 'Versions antigues';
-$lang['btn_recent']            = 'Canvis recents';
-$lang['btn_upload']            = 'Pujar';
-$lang['btn_cancel']            = 'Cancelar';
-$lang['btn_index']             = 'Ãndex';
-$lang['btn_secedit']           = 'Editar';
-$lang['btn_login']             = 'Iniciar sessió';
-$lang['btn_logout']            = 'Tancar sessió';
-$lang['btn_admin']             = 'Administrar';
-$lang['btn_update']            = 'Actualisar';
-$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']           = 'Actualitzar perfil';
-$lang['btn_reset']             = 'Reiniciar';
-$lang['btn_draft']             = 'Editar borrador';
-$lang['btn_recover']           = 'Recuperar borrador';
-$lang['btn_draftdel']          = 'Borrar borrador';
-$lang['btn_revert']            = 'Recuperar';
-$lang['btn_register']          = 'Registrar-se';
-$lang['loggedinas']            = 'Sessió de:';
-$lang['user']                  = 'Nom d\'usuari';
-$lang['pass']                  = 'Contrasenya';
-$lang['newpass']               = 'Contrasenya nova';
-$lang['oldpass']               = 'Confirmar la contrasenya actual';
-$lang['passchk']               = 'una atra volta';
-$lang['remember']              = 'Recorda\'m';
-$lang['fullname']              = 'Nom complet';
-$lang['email']                 = 'Correu electrònic';
-$lang['profile']               = 'Perfil d\'usuari';
-$lang['badlogin']              = 'Disculpe, pero el nom d\'usuari o la contrasenya són incorrectes.';
-$lang['minoredit']             = 'Canvis menors';
-$lang['draftdate']             = 'Borrador gravat el';
-$lang['nosecedit']             = 'La pàgina ha canviat mentres tant, l\'informació de la secció no estava al dia, s\'ha carregat la pàgina sancera.';
-$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 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';
-$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 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.';
-$lang['resendpwdnouser']       = 'Disculpe, pero no trobem ad est usuari en la base de senyes.';
-$lang['resendpwdbadauth']      = 'Disculpe, pero este còdic d\'autenticació no es vàlit. Verifique que haja utilisat el víncul de confirmació sancer.';
-$lang['resendpwdconfirm']      = 'Li hem enviat un víncul de confirmació al correu.';
-$lang['resendpwdsuccess']      = 'Se li ha enviat una nova contrasenya per correu electrònic.';
-$lang['license']               = 'Excepte quan s\'indique una atra cosa, el contingut d\'este wiki està llicenciat baix la següent llicència:';
-$lang['licenseok']             = 'Nota: a l\'editar esta pàgina accepta llicenciar el seu contingut baix la següent llicència:';
-$lang['searchmedia']           = 'Buscar nom d\'archiu:';
-$lang['searchmedia_in']        = 'Buscar en %s';
-$lang['txt_upload']            = 'Seleccione l\'archiu que vol pujar:';
-$lang['txt_filename']          = 'Enviar com (opcional):';
-$lang['txt_overwrt']           = 'Sobreescriure archius existents';
-$lang['lockedby']              = 'Actualment bloquejat per:';
-$lang['lockexpire']            = 'El bloqueig venç a les:';
-$lang['js']['willexpire']            = 'El seu bloqueig per a editar esta pàgina vencerà en un minut.\nPer a evitar conflictes utilise el botó de vista prèvia i reiniciarà el contador.';
-$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']           = '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\'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\'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';
-$lang['js']['keepopen']        = 'Mantindre la finestra oberta al seleccionar';
-$lang['js']['hidedetails']     = 'Ocultar detalls';
-$lang['js']['nosmblinks']      = 'Els vínculs a recursos compartits de Windows només funcionen en Microsoft Internet Explorer. No obstant, es poden copiar i apegar.';
-$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']            = 'Utilize la següent sintaxis per a referenciar est archiu:';
-$lang['mediaview']             = 'Vore l\'archiu original';
-$lang['mediaroot']             = 'base';
-$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\'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';
-$lang['toc']                   = 'Taula de continguts';
-$lang['current']               = 'Actual';
-$lang['yours']                 = 'La seua versió';
-$lang['diff']                  = 'Mostrar diferències en la versió actual';
-$lang['diff2']                 = 'Mostrar diferències entre versions';
-$lang['line']                  = 'Llínea';
-$lang['breadcrumb']            = 'Traça:';
-$lang['youarehere']            = 'Vosté està ací:';
-$lang['lastmod']               = 'Última modificació el:';
-$lang['by']                    = 'per';
-$lang['deleted']               = 'borrat';
-$lang['created']               = 'creat';
-$lang['restored']              = 'restaurada l\'última versió (%s)';
-$lang['external_edit']         = 'edició externa';
-$lang['summary']               = 'Editar sumari';
-$lang['noflash']               = 'Necessita el <a href="http://www.adobe.com/products/flashplayer/">plúgin d\'Adobe Flash</a> per a vore este contingut.';
-$lang['download']              = 'Descarregar un tros';
-$lang['mail_newpage']          = 'pàgina afegida:';
-$lang['mail_changed']          = 'pàgina canviada:';
-$lang['mail_new_user']         = 'Usuari nou:';
-$lang['mail_upload']           = 'archiu enviat:';
-$lang['qb_bold']               = 'Negreta';
-$lang['qb_italic']             = 'Itàlica';
-$lang['qb_underl']             = 'Subrallat';
-$lang['qb_code']               = 'Còdic';
-$lang['qb_strike']             = 'Tachat';
-$lang['qb_h1']                 = 'Titular de nivell 1';
-$lang['qb_h2']                 = 'Titular de nivell 2';
-$lang['qb_h3']                 = 'Titular de nivell 3';
-$lang['qb_h4']                 = 'Titular de nivell 4';
-$lang['qb_h5']                 = 'Titular de nivell 5';
-$lang['qb_h']                  = 'Titular';
-$lang['qb_hs']                 = 'Triar titular';
-$lang['qb_hplus']              = 'Titular superior';
-$lang['qb_hminus']             = 'Titular inferior';
-$lang['qb_hequal']             = 'Titular al mateix nivell';
-$lang['qb_link']               = 'Víncul intern';
-$lang['qb_extlink']            = 'Víncul extern';
-$lang['qb_hr']                 = 'Llínea horisontal';
-$lang['qb_ol']                 = 'Llista numerada';
-$lang['qb_ul']                 = 'Llista ';
-$lang['qb_media']              = 'Afegir imàgens i atres archius';
-$lang['qb_sig']                = 'Afegir firma';
-$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']           = 'Error escrivint meta-senyes';
-$lang['metasaveok']            = 'Meta-senyes guardades';
-$lang['btn_img_backto']        = 'Tornar a %s';
-$lang['img_title']             = 'Títol:';
-$lang['img_caption']           = 'Subtítol:';
-$lang['img_date']              = 'Data:';
-$lang['img_fname']             = 'Nom de l\'arxiu:';
-$lang['img_fsize']             = 'Tamany:';
-$lang['img_artist']            = 'Fotógraf:';
-$lang['img_copyr']             = 'Copyright:';
-$lang['img_format']            = 'Format:';
-$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']           = 'Instal·lador de DokuWiki';
-$lang['i_wikiname']            = 'Nom del Wiki';
-$lang['i_enableacl']           = 'Activar ACL (recomanat)';
-$lang['i_superuser']           = 'Super-usuari';
-$lang['i_problems']            = 'L\'instalador ha trobat els problemes mostrats més avall. No pot continuar fins que no els arregle.';
-$lang['i_modified']            = 'Per raons de seguritat, este procés només funcionarà en una instalació nova i verge de DokuWiki.
-Deuria tornar a extraure els archius del paquet que ha descarregat o consultar les
-<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 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\'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\'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>.';
-$lang['i_policy']              = 'Política inicial ACL';
-$lang['i_pol0']                = 'Wiki obert (llegir, escriure i enviar tots)';
-$lang['i_pol1']                = 'Wiki públic (llegir tots, escriure i enviar només usuaris registrats)';
-$lang['i_pol2']                = 'Wiki tancat (llegir, escriure i enviar només usuaris registrats)';
-$lang['i_retry']               = 'Reintentar';
-$lang['recent_global']         = 'Està veent els canvis dins de l\'espai de noms <b>%s</b>. També pot <a href="%s">vore els canvis recents en el wiki sancer</a>.';
-$lang['years']                 = 'fa %d anys';
-$lang['months']                = 'fa %d mesos';
-$lang['weeks']                 = 'fa %d semanes';
-$lang['days']                  = 'fa %d dies';
-$lang['hours']                 = 'fa %d hores';
-$lang['minutes']               = 'fa %d minuts';
-$lang['seconds']               = 'fa %d segons';
-$lang['email_signature_text'] = 'Este correu ha segut generat per DokuWiki en
-@DOKUWIKIURL@';
-
diff --git a/wiki/inc/lang/ca-valencia/locked.txt b/wiki/inc/lang/ca-valencia/locked.txt
deleted file mode 100644
index bdb2bdf..0000000
--- a/wiki/inc/lang/ca-valencia/locked.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Pàgina bloquejada ======
-
-Esta pàgina està actualment bloquejada mentres l'edita un atre usuari. Ha d'esperar fins que l'usuari acabe d'editar la pàgina o vença el bloqueig.
diff --git a/wiki/inc/lang/ca-valencia/login.txt b/wiki/inc/lang/ca-valencia/login.txt
deleted file mode 100644
index 23cfd98..0000000
--- a/wiki/inc/lang/ca-valencia/login.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Inici de sessió ======
-
-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/wiki/inc/lang/ca-valencia/mailtext.txt b/wiki/inc/lang/ca-valencia/mailtext.txt
deleted file mode 100644
index b9de236..0000000
--- a/wiki/inc/lang/ca-valencia/mailtext.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-S'ha afegit o modificat una pàgina en el seu DokuWiki. Les senyes són:
-
-Data: @DATE@
-Navegador: @BROWSER@
-Direcció IP: @IPADDRESS@
-Nom de la màquina: @HOSTNAME@
-Revisió anterior: @OLDPAGE@
-Nova revisió: @NEWPAGE@
-Resum: @SUMMARY@
-Usuari: @USER@
-
-@DIFF@
diff --git a/wiki/inc/lang/ca-valencia/newpage.txt b/wiki/inc/lang/ca-valencia/newpage.txt
deleted file mode 100644
index 9605ab0..0000000
--- a/wiki/inc/lang/ca-valencia/newpage.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== 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 utilizant el botó ''Crear esta pàgina''.
diff --git a/wiki/inc/lang/ca-valencia/norev.txt b/wiki/inc/lang/ca-valencia/norev.txt
deleted file mode 100644
index 434e62d..0000000
--- a/wiki/inc/lang/ca-valencia/norev.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== No existix la versió ======
-
-La versió especificada no existix. Utilise el botó ''Versions antigues'' per a vore una llista de versions antigues d'este document.
\ No newline at end of file
diff --git a/wiki/inc/lang/ca-valencia/password.txt b/wiki/inc/lang/ca-valencia/password.txt
deleted file mode 100644
index d9a781e..0000000
--- a/wiki/inc/lang/ca-valencia/password.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-¡Hola @FULLNAME@!
-
-Estes són les seues senyes d'usuari per a @TITLE@ en @DOKUWIKIURL@
-
-Usuari      : @LOGIN@
-Contrasenya : @PASSWORD@
diff --git a/wiki/inc/lang/ca-valencia/preview.txt b/wiki/inc/lang/ca-valencia/preview.txt
deleted file mode 100644
index e4cddec..0000000
--- a/wiki/inc/lang/ca-valencia/preview.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Previsualisació ======
-
-Açò es una previsualització per a vore cóm quedarà la pàgina. Recorde que encara no està guardada!
-
diff --git a/wiki/inc/lang/ca-valencia/pwconfirm.txt b/wiki/inc/lang/ca-valencia/pwconfirm.txt
deleted file mode 100644
index a537567..0000000
--- a/wiki/inc/lang/ca-valencia/pwconfirm.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-¡Hola @FULLNAME@!
-
-Algú ha solicitat una nova contrasenya per a entrar com a
-@TITLE en @DOKUWIKIURL@
-
-Si no ha segut vosté qui ha solicitat la nova contrasenya ignore este correu.
-
-Per a confirmar que la petició ha segut feta realment per vosté
-utilise el següent víncul.
-
-@CONFIRM@
diff --git a/wiki/inc/lang/ca-valencia/read.txt b/wiki/inc/lang/ca-valencia/read.txt
deleted file mode 100644
index 28e4245..0000000
--- a/wiki/inc/lang/ca-valencia/read.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-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/wiki/inc/lang/ca-valencia/recent.txt b/wiki/inc/lang/ca-valencia/recent.txt
deleted file mode 100644
index ca1f5c5..0000000
--- a/wiki/inc/lang/ca-valencia/recent.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== Canvis recents ======
-
-Les següents pàgines han canviat recentment.
-
-
diff --git a/wiki/inc/lang/ca-valencia/register.txt b/wiki/inc/lang/ca-valencia/register.txt
deleted file mode 100644
index ec4ff8b..0000000
--- a/wiki/inc/lang/ca-valencia/register.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Registrar-se com a usuari nou ======
-
-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/wiki/inc/lang/ca-valencia/registermail.txt b/wiki/inc/lang/ca-valencia/registermail.txt
deleted file mode 100644
index 02f2c1a..0000000
--- a/wiki/inc/lang/ca-valencia/registermail.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-S'ha registrat un usuari nou. Estes són les senyes:
-
-Nom d'usuari : @NEWUSER@
-Nom complet : @NEWNAME@
-Correu electrònic : @NEWEMAIL@
-
-Data : @DATE@
-Navegador : @BROWSER@
-Direcció IP : @IPADDRESS@
-Nom de la màquina : @HOSTNAME@
diff --git a/wiki/inc/lang/ca-valencia/resendpwd.txt b/wiki/inc/lang/ca-valencia/resendpwd.txt
deleted file mode 100644
index 2feac09..0000000
--- a/wiki/inc/lang/ca-valencia/resendpwd.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Enviar contrasenya nova ======
-
-Per favor, introduïxca el nom d'usuari en el formulari per a demanar una nova contrasenya per al seu conte en este wiki. Se li enviarà un víncul de confirmació a la direcció de correu en que estiga registrat.
-
diff --git a/wiki/inc/lang/ca-valencia/revisions.txt b/wiki/inc/lang/ca-valencia/revisions.txt
deleted file mode 100644
index d83a2e9..0000000
--- a/wiki/inc/lang/ca-valencia/revisions.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Versions antigues ======
-
-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/wiki/inc/lang/ca-valencia/searchpage.txt b/wiki/inc/lang/ca-valencia/searchpage.txt
deleted file mode 100644
index 390d606..0000000
--- a/wiki/inc/lang/ca-valencia/searchpage.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Buscar ======
-
-Pot vore els resultats de la busca ací baix.  @CREATEPAGEINFO@
-
diff --git a/wiki/inc/lang/ca-valencia/showrev.txt b/wiki/inc/lang/ca-valencia/showrev.txt
deleted file mode 100644
index 86f2822..0000000
--- a/wiki/inc/lang/ca-valencia/showrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**¡Açò és una versió antiga del document!**
-----
diff --git a/wiki/inc/lang/ca-valencia/stopwords.txt b/wiki/inc/lang/ca-valencia/stopwords.txt
deleted file mode 100644
index 39c5bb3..0000000
--- a/wiki/inc/lang/ca-valencia/stopwords.txt
+++ /dev/null
@@ -1,73 +0,0 @@
-# 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
-ell
-ella
-nosaltres
-vosaltres
-ells
-els
-los
-dels
-les
-una
-uns
-unes
-seu
-seua
-seus
-seues
-meu
-meua
-meus
-meues
-teu
-teua
-teus
-teues
-nostre
-nostres
-vostre
-vostres
-nos
-vos
-#eix
-eixe
-eixa
-aquell
-aquella
-aquells
-aquelles
-#est
-este
-esta
-estos
-estes
-està
-això
-açò
-allò
-des
-sóc
-eres
-som
-sou
-són
-fon
-per
-com
-cóm
-qui
-que
-què
-quan
-quant
-quants
-quanta
-quantes
-mentres
-però
-atre
-atra
-atres
-també
diff --git a/wiki/inc/lang/ca-valencia/updateprofile.txt b/wiki/inc/lang/ca-valencia/updateprofile.txt
deleted file mode 100644
index 9116fed..0000000
--- a/wiki/inc/lang/ca-valencia/updateprofile.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== Actualise el seu perfil ======
-
-Només deu completar els camps que vol canviar. No es pot canviar el nom d'usuari.
-
-
diff --git a/wiki/inc/lang/ca-valencia/uploadmail.txt b/wiki/inc/lang/ca-valencia/uploadmail.txt
deleted file mode 100644
index a67397d..0000000
--- a/wiki/inc/lang/ca-valencia/uploadmail.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-S'ha enviat un archiu al seu DokuWiki. Les senyes:
-
-Arxiu: @MEDIA@
-Data: @DATE@
-Navegador: @BROWSER@
-Direcció IP: @IPADDRESS@
-Nom de la màquina: @HOSTNAME@
-Tamany: @SIZE@
-Tipo MIME: @MIME@
-Usuari: @USER@
diff --git a/wiki/inc/lang/ca/admin.txt b/wiki/inc/lang/ca/admin.txt
deleted file mode 100644
index 5c0a6d0..0000000
--- a/wiki/inc/lang/ca/admin.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Administració ======
-
-Heus ací una llista de les tasques administratives disponibles en DokuWiki.
-
diff --git a/wiki/inc/lang/ca/adminplugins.txt b/wiki/inc/lang/ca/adminplugins.txt
deleted file mode 100644
index 9ea165c..0000000
--- a/wiki/inc/lang/ca/adminplugins.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Connectors addicionals =====
\ No newline at end of file
diff --git a/wiki/inc/lang/ca/backlinks.txt b/wiki/inc/lang/ca/backlinks.txt
deleted file mode 100644
index e2ecaf4..0000000
--- a/wiki/inc/lang/ca/backlinks.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Enllaços ======
-
-Heus ací una llista de pàgines enllaçades amb la pàgina actual.
-
diff --git a/wiki/inc/lang/ca/conflict.txt b/wiki/inc/lang/ca/conflict.txt
deleted file mode 100644
index 53183f0..0000000
--- a/wiki/inc/lang/ca/conflict.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-====== Hi ha una versió més recent ======
-
-Existeix una versió més recent del document que heu editat. Això passa quan un altre usuari canvia el document mentre l'estàveu editant.
-
-Examineu detingudament les diferències que es mostren més avall i després decidiu quina versió voleu mantenir. Si trieu ''desa'', es desarà la vostra versió. Si trieu ''cancel·la'' es mantindrà la versió actual.
-
diff --git a/wiki/inc/lang/ca/denied.txt b/wiki/inc/lang/ca/denied.txt
deleted file mode 100644
index 3f66d6b..0000000
--- a/wiki/inc/lang/ca/denied.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Permís denegat ======
-
-No teniu prou drets per continuar.
-
diff --git a/wiki/inc/lang/ca/diff.txt b/wiki/inc/lang/ca/diff.txt
deleted file mode 100644
index 83ca867..0000000
--- a/wiki/inc/lang/ca/diff.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Diferències ======
-
-Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.
-
diff --git a/wiki/inc/lang/ca/draft.txt b/wiki/inc/lang/ca/draft.txt
deleted file mode 100644
index 68593c2..0000000
--- a/wiki/inc/lang/ca/draft.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== S'ha trobat un esborrany ======
-
-La darrera sessió vostra d'edició d'aquesta pàgina no es va completar correctament. DokuWiki en va desar automàticament un esborrany mentre treballàveu, el qual podeu utilitzar ara per continuar l'edició. Més avall podeu veure la data i hora en què es va desar durant la vostra darrera sessió.
-
-Decidiu si voleu //recuperar// la vostra darrera sessió d'edició, //suprimir// l'esborrany que es va desar automàticament o //cancel·lar// el procés d'edició.
\ No newline at end of file
diff --git a/wiki/inc/lang/ca/edit.txt b/wiki/inc/lang/ca/edit.txt
deleted file mode 100644
index 743b0ff..0000000
--- a/wiki/inc/lang/ca/edit.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-Editeu la pàgina i premeu ''Desa''. Per a més informació sobre la sintaxi Wiki vegeu [[wiki:syntax|sintaxi]]. Si us plau, editeu la pàgina només si podeu **millorar-la**. Si voleu fer proves, aprengueu a donar les primeres passes al [[playground:playground|pati]].
-
diff --git a/wiki/inc/lang/ca/editrev.txt b/wiki/inc/lang/ca/editrev.txt
deleted file mode 100644
index b2f304c..0000000
--- a/wiki/inc/lang/ca/editrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**Heu penjat una revisió anterior del document.** Si la deseu, creareu una nova versió amb aquestes dades.
-----
diff --git a/wiki/inc/lang/ca/index.txt b/wiki/inc/lang/ca/index.txt
deleted file mode 100644
index 6ba71fd..0000000
--- a/wiki/inc/lang/ca/index.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Ãndex ======
-
-Heus ací un índex de totes les pàgines disponibles, ordenades per [[doku>namespaces|espais]].
-
diff --git a/wiki/inc/lang/ca/install.html b/wiki/inc/lang/ca/install.html
deleted file mode 100644
index 363e598..0000000
--- a/wiki/inc/lang/ca/install.html
+++ /dev/null
@@ -1,8 +0,0 @@
-<p>Aquesta pàgina us ajuda a fer la primera instal·lació i la configuració de <a href="http://dokuwiki.org">Dokuwiki</a>. Hi ha més informació sobre aquest instal·lador en la seva <a href="http://dokuwiki.org/installer">pàgina de documentació</a>.</p>
-
-<p>DokuWiki utilitza fitxers normals per a emmagatzemar les pàgines wiki i la informació associada a aquestes pàgines (p. ex. imatges, índexs de cerca, revisions anteriors, etc.). Per tal de funcionar correctament DokuWiki <strong>necessita</strong> tenir accés d'escriptura als directoris que contenen aquests fitxers. Aquest instal·lador no pot configurar els permisos del directori. Normalment això cal fer-ho directament en la línia d'ordres o, si esteu utilitzant un hostatge, mitjançant FTP o el tauler de control del vostre hostatge (p. ex. cPanel).</p>
-
-<p>Aquest instal·lador configurarà el vostre DokuWiki per a <abbr title="access control list">ACL</abbr>, cosa que, al seu torn, permet l'accés de l'administrador al menú d'administració, on pot instal·lar connectors, gestionar usuaris, gestionar l'accés a les pàgines wiki i modificar els paràmetres de configuració. No és un requisit per al funcionament de DokuWiki, però el fa més fàcil d'administrar.</p>
-
-<p>Els usuaris experts o els que tinguin requeriments específics poden utilitzar els enllaços següents per a obtenir més detalls sobre <a href="http://dokuwiki.org/install">instruccions d'instal·lació</a>
-i <a href="http://dokuwiki.org/config">paràmetres de configuració</a>.</p>
\ No newline at end of file
diff --git a/wiki/inc/lang/ca/jquery.ui.datepicker.js b/wiki/inc/lang/ca/jquery.ui.datepicker.js
deleted file mode 100644
index 9febd90..0000000
--- a/wiki/inc/lang/ca/jquery.ui.datepicker.js
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Inicialització en català per a l'extensió 'UI date picker' per jQuery. */
-/* Writers: (joan.leon@gmail.com). */
-( function( factory ) {
-	if ( typeof define === "function" && define.amd ) {
-
-		// AMD. Register as an anonymous module.
-		define( [ "../widgets/datepicker" ], factory );
-	} else {
-
-		// Browser globals
-		factory( jQuery.datepicker );
-	}
-}( function( datepicker ) {
-
-datepicker.regional.ca = {
-	closeText: "Tanca",
-	prevText: "Anterior",
-	nextText: "Següent",
-	currentText: "Avui",
-	monthNames: [ "gener","febrer","març","abril","maig","juny",
-	"juliol","agost","setembre","octubre","novembre","desembre" ],
-	monthNamesShort: [ "gen","feb","març","abr","maig","juny",
-	"jul","ag","set","oct","nov","des" ],
-	dayNames: [ "diumenge","dilluns","dimarts","dimecres","dijous","divendres","dissabte" ],
-	dayNamesShort: [ "dg","dl","dt","dc","dj","dv","ds" ],
-	dayNamesMin: [ "dg","dl","dt","dc","dj","dv","ds" ],
-	weekHeader: "Set",
-	dateFormat: "dd/mm/yy",
-	firstDay: 1,
-	isRTL: false,
-	showMonthAfterYear: false,
-	yearSuffix: "" };
-datepicker.setDefaults( datepicker.regional.ca );
-
-return datepicker.regional.ca;
-
-} ) );
diff --git a/wiki/inc/lang/ca/lang.php b/wiki/inc/lang/ca/lang.php
deleted file mode 100644
index 5133b37..0000000
--- a/wiki/inc/lang/ca/lang.php
+++ /dev/null
@@ -1,347 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Carles Bellver <carles.bellver@cent.uji.es>
- * @author Carles Bellver <carles.bellver@gmail.com>
- * @author daniel@6temes.cat
- * @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';
-$lang['doublequoteopening']    = '“';
-$lang['doublequoteclosing']    = 'â€';
-$lang['singlequoteopening']    = '‘';
-$lang['singlequoteclosing']    = '’';
-$lang['apostrophe']            = '’';
-$lang['btn_edit']              = 'Edita aquesta pàgina';
-$lang['btn_source']            = 'Mostra codi font';
-$lang['btn_show']              = 'Mostra pàgina';
-$lang['btn_create']            = 'Crea aquesta pàgina';
-$lang['btn_search']            = 'Cerca';
-$lang['btn_save']              = 'Desa';
-$lang['btn_preview']           = 'Previsualitza';
-$lang['btn_top']               = 'Torna dalt';
-$lang['btn_newer']             = '<< més recent';
-$lang['btn_older']             = 'menys recent >>';
-$lang['btn_revs']              = 'Revisions anteriors';
-$lang['btn_recent']            = 'Canvis recents';
-$lang['btn_upload']            = 'Penja';
-$lang['btn_cancel']            = 'Cancel·la';
-$lang['btn_index']             = 'Mapa del lloc';
-$lang['btn_secedit']           = 'Edita';
-$lang['btn_login']             = 'Entra';
-$lang['btn_logout']            = 'Surt';
-$lang['btn_admin']             = 'Admin';
-$lang['btn_update']            = 'Actualitza';
-$lang['btn_delete']            = 'Suprimeix';
-$lang['btn_back']              = 'Enrere';
-$lang['btn_backlink']          = 'Què hi enllaça';
-$lang['btn_subscribe']         = 'Subscripció a canvis d\'aquesta pàgina';
-$lang['btn_profile']           = 'Actualització del perfil';
-$lang['btn_reset']             = 'Reinicia';
-$lang['btn_resendpwd']         = 'Estableix una nova contrasenya';
-$lang['btn_draft']             = 'Edita esborrany';
-$lang['btn_recover']           = 'Recupera esborrany';
-$lang['btn_draftdel']          = 'Suprimeix esborrany';
-$lang['btn_revert']            = 'Restaura';
-$lang['btn_register']          = 'Registra\'m';
-$lang['btn_apply']             = 'Aplica';
-$lang['btn_media']             = 'Mànager Multimèdia';
-$lang['btn_deleteuser']        = 'Esborrar compte';
-$lang['btn_img_backto']        = 'Torna a %s';
-$lang['btn_mediaManager']      = 'Veure a multimèdia mànager ';
-$lang['loggedinas']            = 'Heu entrat com:';
-$lang['user']                  = 'Nom d\'usuari';
-$lang['pass']                  = 'Contrasenya';
-$lang['newpass']               = 'Nova contrasenya';
-$lang['oldpass']               = 'Confirmeu la contrasenya actual';
-$lang['passchk']               = 'una altra vegada';
-$lang['remember']              = 'Recorda\'m';
-$lang['fullname']              = 'Nom complet';
-$lang['email']                 = 'Correu electrònic';
-$lang['profile']               = 'Perfil d\'usuari';
-$lang['badlogin']              = 'Nom d\'usuari o contrasenya incorrectes.';
-$lang['badpassconfirm']        = 'Contrasenya incorrecta';
-$lang['minoredit']             = 'Canvis menors';
-$lang['draftdate']             = 'L\'esborrany s\'ha desat automàticament';
-$lang['nosecedit']             = 'Mentrestant la pàgina ha estat modificada. La informació de seccions estava obsoleta i ha calgut carregar la pàgina sencera.';
-$lang['regmissing']            = 'Heu d\'omplir tots els camps.';
-$lang['reguexists']            = 'Ja existeix un altre usuari amb aquest nom.';
-$lang['regsuccess']            = 'S\'ha creat l\'usuari. La contrasenya s\'ha enviat per correu.';
-$lang['regsuccess2']           = 'S\'ha creat l\'usuari.';
-$lang['regfail']               = 'L\'usuari no pot ser creat';
-$lang['regmailfail']           = 'Sembla que un error ha impedit enviar la contrasenya per correu. Contacteu amb l\'administrador.';
-$lang['regbadmail']            = 'L\'adreça de correu que heu donat no sembla vàlida. Si creieu que això és un error, contacu amb l\'administrador.';
-$lang['regbadpass']            = 'Les dues contrasenyes no són iguals. Torneu a intentar-ho.';
-$lang['regpwmail']             = 'La vostra contrasenya per al Wiki';
-$lang['reghere']               = 'Si no teniu un compte, aquí en podeu obtenir un';
-$lang['profna']                = 'Aquest wiki no permet modificar el perfil';
-$lang['profnochange']          = 'No heu introduït cap canvi.';
-$lang['profnoempty']           = 'No es pot deixar en blanc el nom o l\'adreça de correu.';
-$lang['profchanged']           = 'El perfil d\'usuari s\'ha actualitzat correctament.';
-$lang['profnodelete']          = 'Aquesta wiki no permet esborrar usuaris';
-$lang['profdeleteuser']        = 'Esborrar compte';
-$lang['profdeleted']           = 'El vostre compte ha sigut esborrat d\'aquest compte';
-$lang['profconfdelete']        = 'Vull esmorrar el meu compte d\'aquesta wiki. </br> Aquesta acció no pot desfer-se.';
-$lang['profconfdeletemissing'] = 'Confirmació no acceptada';
-$lang['proffail']              = 'Perfil d\'usuari no actialitzat';
-$lang['pwdforget']             = 'Heu oblidat la contrasenya? Podeu obtenir-ne una de nova.';
-$lang['resendna']              = 'Aquest wiki no permet tornar a enviar la contrasenya.';
-$lang['resendpwd']             = 'Estableix una nova contrasenya per';
-$lang['resendpwdmissing']      = 'Heu d\'emplenar tots els camps.';
-$lang['resendpwdnouser']       = 'No s\'ha pogut trobar aquest usuari a la base de dades.';
-$lang['resendpwdbadauth']      = 'Aquest codi d\'autenticació no és vàlid. Assegureu-vos d\'utilitzar l\'enllaç de confirmació complet.';
-$lang['resendpwdconfirm']      = 'Se us ha enviat per correu electrònic un enllaç de confirmació.';
-$lang['resendpwdsuccess']      = 'Se us ha enviat la nova contrasenya per correu electrònic.';
-$lang['license']               = 'Excepte on es digui una altra cosa, el contingut d\'aquest wiki està subjecte a la llicència següent:';
-$lang['licenseok']             = 'Nota. En editar aquesta pàgina esteu acceptant que el vostre contingut estigui subjecte a la llicència següent:';
-$lang['searchmedia']           = 'Cerca pel nom de fitxer';
-$lang['searchmedia_in']        = 'Cerca en: %s';
-$lang['txt_upload']            = 'Trieu el fitxer que voleu penjar:';
-$lang['txt_filename']          = 'Introduïu el nom wiki (opcional):';
-$lang['txt_overwrt']           = 'Sobreescriu el fitxer actual';
-$lang['maxuploadsize']         = 'Puja com a màxim %s per arxiu.';
-$lang['lockedby']              = 'Actualment blocat per:';
-$lang['lockexpire']            = 'Venciment del blocatge:';
-$lang['js']['willexpire']      = 'El blocatge per a editar aquesta pàgina venç d\'aquí a un minut.\nUtilitzeu la visualització prèvia per reiniciar el rellotge i evitar conflictes.';
-$lang['js']['notsavedyet']     = 'Heu fet canvis que es perdran si no els deseu.
-Voleu continuar?';
-$lang['js']['searchmedia']     = 'Cerca fitxers';
-$lang['js']['keepopen']        = 'Manté la finestra oberta';
-$lang['js']['hidedetails']     = 'Oculta detalls';
-$lang['js']['mediatitle']      = 'Propietats de l\'enllaç';
-$lang['js']['mediadisplay']    = 'Tipus d\'enllaç';
-$lang['js']['mediaalign']      = 'Alineació';
-$lang['js']['mediasize']       = 'Mida de la imatge';
-$lang['js']['mediatarget']     = 'Destí de l\'enllaç';
-$lang['js']['mediaclose']      = 'Tanca';
-$lang['js']['mediainsert']     = 'Inserta';
-$lang['js']['mediadisplayimg'] = 'Mostra la imatge';
-$lang['js']['mediadisplaylnk'] = 'Mostra només l\'enllaç';
-$lang['js']['mediasmall']      = 'Versió petita';
-$lang['js']['mediamedium']     = 'Versió mitjana';
-$lang['js']['medialarge']      = 'Versió gran';
-$lang['js']['mediaoriginal']   = 'Versió original';
-$lang['js']['medialnk']        = 'Enllaç a la pàgina de detalls';
-$lang['js']['mediadirect']     = 'Enllaç directe a l\'original';
-$lang['js']['medianolnk']      = 'No hi ha enllaç';
-$lang['js']['medianolink']     = 'No enllacis la imatge';
-$lang['js']['medialeft']       = 'Alinea la imatge a l\'esquerra.';
-$lang['js']['mediaright']      = 'Alinea la imatge a la dreta.';
-$lang['js']['mediacenter']     = 'Alinea la imatge al mig.';
-$lang['js']['medianoalign']    = 'No facis servir alineació.';
-$lang['js']['nosmblinks']      = 'Els enllaços amb recursos compartits de Windows només funcionen amb el Microsoft Internet Explorer.
-Si voleu podeu copiar i enganxar l\'enllaç.';
-$lang['js']['linkwiz']         = 'Auxiliar d\'enllaços';
-$lang['js']['linkto']          = 'Enllaça a:';
-$lang['js']['del_confirm']     = 'Suprimiu aquesta entrada?';
-$lang['js']['restore_confirm'] = 'Vols realment restaurar aquesta versió?';
-$lang['js']['media_diff']      = 'Veure les diferències:';
-$lang['js']['media_diff_both'] = 'Un al costat de l\'altre';
-$lang['js']['media_diff_opacity'] = 'Resalta';
-$lang['js']['media_diff_portions'] = 'Llisca';
-$lang['js']['media_select']    = 'Escull els arxius';
-$lang['js']['media_upload_btn'] = 'Pujar';
-$lang['js']['media_done_btn']  = 'Fet';
-$lang['js']['media_drop']      = 'Arrossega aquí els arxius a pujar';
-$lang['js']['media_cancel']    = 'esborra';
-$lang['js']['media_overwrt']   = 'Sobreescriu els arxius existents';
-$lang['rssfailed']             = 'S\'ha produït un error en recollir aquesta alimentació: ';
-$lang['nothingfound']          = 'No s\'ha trobat res.';
-$lang['mediaselect']           = 'Selecció de fitxers';
-$lang['uploadsucc']            = 'S\'ha penjat el fitxer';
-$lang['uploadfail']            = 'No es pot penjar el fitxer. Potser no teniu prou permisos?';
-$lang['uploadwrong']           = 'No es pot penjar el fitxer. Aquesta extensió està prohibida.';
-$lang['uploadexist']           = 'El fitxer ja existeix. No s\'ha penjat.';
-$lang['uploadbadcontent']      = 'El contingut que heu penjat coincideix amb l\'extensió de fitxer %s.';
-$lang['uploadspam']            = 'La càrrega ha estat blocada per la llista negra de brossa.';
-$lang['uploadxss']             = 'La càrrega ha estat blocada perquè podria ser un contingut maligne.';
-$lang['uploadsize']            = 'El fitxer que voleu penjar és massa gran (màxim %s)';
-$lang['deletesucc']            = 'S\'ha suprimit el fitxer "%s".';
-$lang['deletefail']            = 'No s\'ha pogut suprimir el fitxer "%s". Comproveu els permisos.';
-$lang['mediainuse']            = 'No s\'ha pogut suprimir el fitxer "%s". Encara s\'està utilitzant.';
-$lang['namespaces']            = 'Espais';
-$lang['mediafiles']            = 'Fitxers disponibles en';
-$lang['accessdenied']          = 'No teniu permís per a veure aquesta pàgina.';
-$lang['mediausage']            = 'Utilitzeu la sintaxi següent per referir-vos a aquest enllaç:';
-$lang['mediaview']             = 'Mostra el fitxer original';
-$lang['mediaroot']             = 'arrel';
-$lang['mediaupload']           = 'Pengeu aquí un fitxer dins de l\'espai actual. Per a crear un nou subespai, poseu-ne el nom davant del nom de fitxer i separeu-los amb el signe de dos punts.';
-$lang['mediaextchange']        = 'S\'ha canviat l\'extensió del fitxer de .%s a .%s';
-$lang['reference']             = 'Referències per a';
-$lang['ref_inuse']             = 'El fitxer no es pot suprimir perquè l\'estan utilitzant les pàgines següents:';
-$lang['ref_hidden']            = 'Algunes referències apareixen en pàgines per a les quals no teniu permís de lectura';
-$lang['hits']                  = 'Resultats';
-$lang['quickhits']             = 'Noms de pàgina coincidents';
-$lang['toc']                   = 'Taula de continguts';
-$lang['current']               = 'actual';
-$lang['yours']                 = 'La vostra versió';
-$lang['diff']                  = 'Mostra diferències amb la versió actual';
-$lang['diff2']                 = 'Mostra diferències entre les revisions seleccionades';
-$lang['difflink']              = 'Enllaç a la visualització de la comparació';
-$lang['diff_type']             = 'Veieu les diferències:';
-$lang['diff_inline']           = 'En línia';
-$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í:';
-$lang['lastmod']               = 'Darrera modificació:';
-$lang['by']                    = 'per';
-$lang['deleted']               = 'suprimit';
-$lang['created']               = 'creat';
-$lang['restored']              = 's\'ha restaurat una versió anterior %s';
-$lang['external_edit']         = 'edició externa';
-$lang['summary']               = 'Resum d\'edició';
-$lang['noflash']               = 'Per a visualitzar aquest contingut necessiteu el <a href="http://www.adobe.com/products/flashplayer/">connector d\'Adobe Flash</a>.';
-$lang['download']              = 'Baixa el fragment';
-$lang['tools']                 = 'Eines';
-$lang['user_tools']            = 'Eines de l\'usuari';
-$lang['site_tools']            = 'Eines del lloc';
-$lang['page_tools']            = 'Eines de la pàgina';
-$lang['skip_to_content']       = 'salta al contingut';
-$lang['sidebar']               = 'Barra lateral';
-$lang['mail_newpage']          = 'pàgina afegida:';
-$lang['mail_changed']          = 'pàgina modificada:';
-$lang['mail_subscribe_list']   = 'pagines canviades a l0espai de noms:';
-$lang['mail_new_user']         = 'nou usuari:';
-$lang['mail_upload']           = 'fitxer penjat:';
-$lang['changes_type']          = 'Veure els canvis de';
-$lang['pages_changes']         = 'Pàgines';
-$lang['media_changes']         = 'Arxius gràfics';
-$lang['both_changes']          = 'Pàgines i arxius gràfics';
-$lang['qb_bold']               = 'Negreta';
-$lang['qb_italic']             = 'Cursiva';
-$lang['qb_underl']             = 'Subratllat';
-$lang['qb_code']               = 'Codi';
-$lang['qb_strike']             = 'Text barrat';
-$lang['qb_h1']                 = 'Encapçalament nivell 1';
-$lang['qb_h2']                 = 'Encapçalament nivell 2';
-$lang['qb_h3']                 = 'Encapçalament nivell 3';
-$lang['qb_h4']                 = 'Encapçalament nivell 4';
-$lang['qb_h5']                 = 'Encapçalament nivell 5';
-$lang['qb_h']                  = 'Encapçalament';
-$lang['qb_hs']                 = 'Selcciona l\'encapçalament';
-$lang['qb_hplus']              = 'Encapçalament més alt';
-$lang['qb_hminus']             = 'Encapçalament més baix';
-$lang['qb_hequal']             = 'Encapçalament del mateix nivell';
-$lang['qb_link']               = 'Enllaç intern';
-$lang['qb_extlink']            = 'Enllaç extern';
-$lang['qb_hr']                 = 'Ratlla horitzontal';
-$lang['qb_ol']                 = 'Element de llista numerada';
-$lang['qb_ul']                 = 'Element de llista de pics';
-$lang['qb_media']              = 'Afegeix imatges o altres fitxers';
-$lang['qb_sig']                = 'Insereix signatura';
-$lang['qb_smileys']            = 'Emoticones';
-$lang['qb_chars']              = 'Caràcters especials';
-$lang['upperns']               = 'Salta a l\'espai superior';
-$lang['metaedit']              = 'Edita metadades';
-$lang['metasaveerr']           = 'No s\'han pogut escriure les metadades';
-$lang['metasaveok']            = 'S\'han desat les metadades';
-$lang['img_title']             = 'Títol:';
-$lang['img_caption']           = 'Peu d\'imatge:';
-$lang['img_date']              = 'Data:';
-$lang['img_fname']             = 'Nom de fitxer:';
-$lang['img_fsize']             = 'Mida:';
-$lang['img_artist']            = 'Fotògraf:';
-$lang['img_copyr']             = 'Copyright:';
-$lang['img_format']            = 'Format:';
-$lang['img_camera']            = 'Càmera:';
-$lang['img_keywords']          = 'Paraules clau:';
-$lang['img_width']             = 'Ample:';
-$lang['img_height']            = 'Alçada:';
-$lang['subscr_subscribe_success'] = 'S\'ha afegit %s a la llista de subscripcions per %s';
-$lang['subscr_subscribe_error'] = 'Hi ha hagut un error a l\'afegir %s a la llista per %s';
-$lang['subscr_subscribe_noaddress'] = 'No hi ha cap adreça associada pel vostre nom d\'usuari, no podeu ser afegit a la llista de subscripcions';
-$lang['subscr_unsubscribe_success'] = 'S\'ha esborrat %s de la llista de subscripcions per %s';
-$lang['subscr_unsubscribe_error'] = 'Hi ha hagut un error a l\'esborrar %s de la llista de subscripcions per %s';
-$lang['subscr_already_subscribed'] = '%s ja està subscrit a %s';
-$lang['subscr_not_subscribed'] = '%s no està subscrit a %s';
-$lang['subscr_m_not_subscribed'] = 'En aquests moments no esteu subscrit a l\'actual pàgina o espai';
-$lang['subscr_m_new_header']   = 'Afegeix subcripció';
-$lang['subscr_m_current_header'] = 'Subscripcions actuals';
-$lang['subscr_m_unsubscribe']  = 'Donar-se de baixa';
-$lang['subscr_m_subscribe']    = 'Donar-se d\'alta';
-$lang['subscr_m_receive']      = 'Rebre';
-$lang['subscr_style_every']    = 'Envia\'m un correu electrònic per a cada canvi';
-$lang['subscr_style_digest']   = 'Envia\'m un correu electrònic amb un resum dels canvis per a cada pàgina (cada %.2f dies)';
-$lang['subscr_style_list']     = 'llistat de pàgines canviades des de l\'últim correu electrònic  (cada %.2f dies)';
-$lang['authtempfail']          = 'L\'autenticació d\'usuaris no està disponible temporalment. Si aquesta situació persisteix, si us plau informeu els administradors del wiki.';
-$lang['i_chooselang']          = 'Trieu l\'idioma';
-$lang['i_installer']           = 'Instal·lador de DokuWiki';
-$lang['i_wikiname']            = 'Nom del wiki';
-$lang['i_enableacl']           = 'Habilita ACL (recomanat)';
-$lang['i_superuser']           = 'Superusuari';
-$lang['i_problems']            = 'L\'instal·lador ha trobat alguns problemes, que s\'indiquen més avall. No podeu continuar fins que no els hàgiu solucionat.';
-$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.';
-$lang['i_badhash']             = 'dokuwiki.php no reconegut o modificat (hash=<code>%s</code>)';
-$lang['i_badval']              = '<code>%s</code> - valor il·legal o buit';
-$lang['i_success']             = 'La configuració s\'ha acabat amb èxit. Ara podeu suprimir el fitxer install.php. Aneu al <a href="doku.php?id=wiki:welcome">vostre nou DokuWiki</a>.';
-$lang['i_failure']             = 'S\'han produït alguns errors en escriure els fitxers de configuració. Potser caldrà que els arregleu manualment abans d\'utilitzar el <a href="doku.php?id=wiki:welcome">vostre nou DokuWiki</a>.';
-$lang['i_policy']              = 'Política ACL inicial';
-$lang['i_pol0']                = 'Wiki obert (tothom pot llegir, escriure i penjar fitxers)';
-$lang['i_pol1']                = 'Wiki públic (tothom pot llegir, els usuaris registrats poden escriure i penjar fitxers)';
-$lang['i_pol2']                = 'Wiki tancat (només els usuaris registrats poden llegir, escriure i penjar fitxers)';
-$lang['i_allowreg']            = 'Permet d\'autoinscripció d\'usuaris';
-$lang['i_retry']               = 'Reintenta';
-$lang['i_license']             = 'Escolliu el tipus de llicència que voleu fer servir per al vostre contingut:';
-$lang['i_license_none']        = 'No mostrar cap informació sobre llicencies';
-$lang['i_pop_field']           = 'Si us plau, ajuda\'ns a millorar la DokuWiki';
-$lang['i_pop_label']           = 'Una vegada al mes, enviar anònimament dades als programadors de la DokuWiki';
-$lang['recent_global']         = 'Esteu veient els canvis recents de l\'espai <strong>%s</strong>. També podeu veure els <a href="%s">canvis recents de tot el wiki</a>.';
-$lang['years']                 = 'fa %d anys';
-$lang['months']                = 'fa %d mesos';
-$lang['weeks']                 = 'fa %d setmanes';
-$lang['days']                  = 'fa %d dies';
-$lang['hours']                 = 'fa %d hores';
-$lang['minutes']               = 'fa %d minuts';
-$lang['seconds']               = 'fa %d segons';
-$lang['wordblock']             = 'El vostre canvi no s\'ha guardat perquè conté text blocat (spam)';
-$lang['media_uploadtab']       = 'Puja';
-$lang['media_searchtab']       = 'Busca';
-$lang['media_file']            = 'Fitxer';
-$lang['media_viewtab']         = 'Mostra';
-$lang['media_edittab']         = 'Edita';
-$lang['media_historytab']      = 'Històric';
-$lang['media_list_thumbs']     = 'Miniatura';
-$lang['media_list_rows']       = 'Files';
-$lang['media_sort_name']       = 'Nom';
-$lang['media_sort_date']       = 'Data';
-$lang['media_namespaces']      = 'Escolliu l\'espai';
-$lang['media_files']           = 'Arxius a %s';
-$lang['media_upload']          = 'Puja a %s';
-$lang['media_search']          = 'Busca a %s';
-$lang['media_view']            = '%s';
-$lang['media_viewold']         = '%s a %s';
-$lang['media_edit']            = 'Edita %s';
-$lang['media_history']         = 'Històric de %s';
-$lang['media_meta_edited']     = 'metadata editada';
-$lang['media_perm_read']       = 'No teniu permisos suficients per a llegir arxius.';
-$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/wiki/inc/lang/ca/locked.txt b/wiki/inc/lang/ca/locked.txt
deleted file mode 100644
index 93487c2..0000000
--- a/wiki/inc/lang/ca/locked.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Pàgina blocada ======
-
-Aquesta pàgina actualment està blocada per a edició per un altre usuari. Haureu d'esperar fins que aquest usuari acabe d'editar-la o fins que venci el blocatge.
diff --git a/wiki/inc/lang/ca/login.txt b/wiki/inc/lang/ca/login.txt
deleted file mode 100644
index 37ca4d5..0000000
--- a/wiki/inc/lang/ca/login.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Entrada ======
-
-No heu entrat. Introduïu les vostres credencials d'autenticació en aquest formulari. A partir d'aquest moment heu de tenir les galetes habilitades en el vostre navegador.
-
diff --git a/wiki/inc/lang/ca/mailtext.txt b/wiki/inc/lang/ca/mailtext.txt
deleted file mode 100644
index dd7f0c5..0000000
--- a/wiki/inc/lang/ca/mailtext.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-S'ha afegit o modificat una pàgina en el vostre wiki. Ací teniu més detalls:
-
-Data           : @DATE@
-Navegador      : @BROWSER@
-IP             : @IPADDRESS@
-Rev. anterior  : @OLDPAGE@
-Rev. actual    : @NEWPAGE@
-Resum d'edició : @SUMMARY@
-Usuari         : @USER@
-
-@DIFF@
diff --git a/wiki/inc/lang/ca/mailwrap.html b/wiki/inc/lang/ca/mailwrap.html
deleted file mode 100644
index d257190..0000000
--- a/wiki/inc/lang/ca/mailwrap.html
+++ /dev/null
@@ -1,13 +0,0 @@
-<html>
-<head>
-<title>@TITLE@</title>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-</head>
-<body>
-
-@HTMLBODY@
-
-<br /><hr />
-<small>@EMAILSIGNATURE@</small>
-</body>
-</html>
\ No newline at end of file
diff --git a/wiki/inc/lang/ca/newpage.txt b/wiki/inc/lang/ca/newpage.txt
deleted file mode 100644
index d0a2db9..0000000
--- a/wiki/inc/lang/ca/newpage.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Aquest tema encara no existeix ======
-
-Heu seguit un enllaç a un tema que encara no existeix. Podeu crear-lo per mitjà del botó ''Crea aquesta pàgina''.
diff --git a/wiki/inc/lang/ca/norev.txt b/wiki/inc/lang/ca/norev.txt
deleted file mode 100644
index b5089c5..0000000
--- a/wiki/inc/lang/ca/norev.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== No existeix aquesta revisió ======
-
-
-La revisió especificada no existeix. Utilitzeu el botó ''Revisions anteriors'' per obtenir una llista de revisions d'aquest document.
-
diff --git a/wiki/inc/lang/ca/password.txt b/wiki/inc/lang/ca/password.txt
deleted file mode 100644
index d4bd9f9..0000000
--- a/wiki/inc/lang/ca/password.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-Benvolgut/da @FULLNAME@,
-
-Aquestes són les teves dades per a entrar en @TITLE@ en l'adreça @DOKUWIKIURL@
-
-Usuari      : @LOGIN@
-Contrasenya : @PASSWORD@
diff --git a/wiki/inc/lang/ca/preview.txt b/wiki/inc/lang/ca/preview.txt
deleted file mode 100644
index fa2f98c..0000000
--- a/wiki/inc/lang/ca/preview.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Previsualització ======
-
-Heus ací una previsualització del vostre text. Recordeu que encara **no l'heu desat!**
-
diff --git a/wiki/inc/lang/ca/pwconfirm.txt b/wiki/inc/lang/ca/pwconfirm.txt
deleted file mode 100644
index 226e126..0000000
--- a/wiki/inc/lang/ca/pwconfirm.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-@FULLNAME@,
-
-Algú ha sol·licitat una nova contrasenya per al vostre compte d'usuari en @TITLE@
-@DOKUWIKIURL@
-
-Si no heu fet aquesta sol·licitud, simplement no feu cas de la resta del missatge.
-
-Per confirmar que realment heu sol·licitat una nova contrasenya, utilitzeu
-l'enllaç següent:
-
-@CONFIRM@
diff --git a/wiki/inc/lang/ca/read.txt b/wiki/inc/lang/ca/read.txt
deleted file mode 100644
index e173ad2..0000000
--- a/wiki/inc/lang/ca/read.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-Aquesta pàgina és només de lectura. Podeu veure'n el codi font, però no podeu canviar-la. Consulteu el vostre administrador si penseu que això és degut a algun error.
-
diff --git a/wiki/inc/lang/ca/recent.txt b/wiki/inc/lang/ca/recent.txt
deleted file mode 100644
index cea2f5c..0000000
--- a/wiki/inc/lang/ca/recent.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== Canvis recents ======
-
-Les pàgines següents s'han modificat recentment.
-
-
diff --git a/wiki/inc/lang/ca/register.txt b/wiki/inc/lang/ca/register.txt
deleted file mode 100644
index a91e6df..0000000
--- a/wiki/inc/lang/ca/register.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Registre d'un usuari nou ======
-
-Empleneu tota la informació que se us demana per crear un compte nou en aquest wiki. Assegureu-vos que doneu una **adreça de correu vàlida**, on se us enviarà la vostra contrasenya. El nom d'usuari o usuària ha de ser vàlid com a [[doku>pagename|nom de pàgina]].
-
diff --git a/wiki/inc/lang/ca/registermail.txt b/wiki/inc/lang/ca/registermail.txt
deleted file mode 100644
index a15351a..0000000
--- a/wiki/inc/lang/ca/registermail.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-S'ha registrat un nou usuari. Heus ací els detalls:
-
-Nom d'usuari: @NEWUSER@
-Nom complet:  @NEWNAME@
-E-mail: @NEWEMAIL@
-
-Data: @DATE@
-Navegador: @BROWSER@
-Adreça IP: @IPADDRESS@
-Ordinador: @HOSTNAME@
diff --git a/wiki/inc/lang/ca/resendpwd.txt b/wiki/inc/lang/ca/resendpwd.txt
deleted file mode 100644
index cd59f89..0000000
--- a/wiki/inc/lang/ca/resendpwd.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Nova contrasenya ======
-
-Per sol·licitar una nova contrasenya, introduïu el vostre nom d'usuari en el formulari següent. Se us enviarà un enllaç de confirmació a l'adreça de correu amb què us vau registrar.
\ No newline at end of file
diff --git a/wiki/inc/lang/ca/resetpwd.txt b/wiki/inc/lang/ca/resetpwd.txt
deleted file mode 100644
index 565f1d5..0000000
--- a/wiki/inc/lang/ca/resetpwd.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-===== Establiu una nova contrasenya =====
-
-Introdueixi una nova contrasenya pel seu compte a aquest wiki.
\ No newline at end of file
diff --git a/wiki/inc/lang/ca/revisions.txt b/wiki/inc/lang/ca/revisions.txt
deleted file mode 100644
index 5c044d8..0000000
--- a/wiki/inc/lang/ca/revisions.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Revisions anteriors ======
-
-Heus ací les revisions anteriors del document actual. Per restaurar una revisió anterior, seleccioneu-la de la llista, feu clic en ''Edita aquesta pàgina'' i deseu-la.
-
diff --git a/wiki/inc/lang/ca/searchpage.txt b/wiki/inc/lang/ca/searchpage.txt
deleted file mode 100644
index 68da58c..0000000
--- a/wiki/inc/lang/ca/searchpage.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Cerca ======
-
-Heus ací els resultats de la cerca. @CREATEPAGEINFO@
-
diff --git a/wiki/inc/lang/ca/showrev.txt b/wiki/inc/lang/ca/showrev.txt
deleted file mode 100644
index b141182..0000000
--- a/wiki/inc/lang/ca/showrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**Aquesta és una revisió antiga del document**
-----
diff --git a/wiki/inc/lang/ca/stopwords.txt b/wiki/inc/lang/ca/stopwords.txt
deleted file mode 100644
index 03be425..0000000
--- a/wiki/inc/lang/ca/stopwords.txt
+++ /dev/null
@@ -1,106 +0,0 @@
-# Això és una llista de paraules que seran omeses per l'indexador, una paraula per línia
-# Utilitzeu finals de línia UNIX
-# No cal incloure paraules de menys de 3 caràcters: s'ometran igualment
-# Llista basada en http://www.ranks.nl/stopwords/
-abans
-algun
-alguna
-alguns
-algunes
-altre
-altra
-altres
-amb
-ambdós
-anar
-ans
-aquell
-aquella
-aquelles
-aquells
-aquí
-bastant
-cada
-com
-dalt
-des
-dins
-ell
-ella
-elles
-ells
-els
-ens
-entre
-era
-erem
-eren
-eres
-estan
-estat
-estava
-estem
-esteu
-estic
-està
-ets
-faig
-fan
-fas
-fem
-fer
-feu
-haver
-inclòs
-llarg
-llavors
-mentre
-meu
-mode
-molt
-molts
-nosaltres
-per
-per que
-perquè
-però
-podem
-poden
-poder
-podeu
-potser
-primer
-puc
-quan
-quant
-qui
-sabem
-saben
-saber
-sabeu
-sap
-saps
-sense
-ser
-seu
-seus
-sóc
-solament
-sols
-som
-sota
-també
-tene
-tenim
-tenir
-teniu
-teu
-tinc
-tot
-una
-uns
-unes
-uns
-vaig
-van
-vosaltres
diff --git a/wiki/inc/lang/ca/subscr_digest.txt b/wiki/inc/lang/ca/subscr_digest.txt
deleted file mode 100644
index c5666d2..0000000
--- a/wiki/inc/lang/ca/subscr_digest.txt
+++ /dev/null
@@ -1,16 +0,0 @@
-Hola!
-
-La pàgina @PAGE@ al wiki @TITLE@ ha canviat.
-A continuació podeu veure els canvis:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-Versió anterior: @OLDPAGE@
-Nova versió: @NEWPAGE@
-
-Si voleu cancel·lar les notificacions per a la pàgina, accediu al wiki a
-@DOKUWIKIURL@, visiteu
-@SUBSCRIBE@
-i doneu-vos de baixa dels canvis de la pàgina o de l'espai.
diff --git a/wiki/inc/lang/ca/subscr_form.txt b/wiki/inc/lang/ca/subscr_form.txt
deleted file mode 100644
index 3c63ce6..0000000
--- a/wiki/inc/lang/ca/subscr_form.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-===== Gestió de les Subscripcions =====
-
-Des d'aquesta pàgina, podeu gestionar les vostres subscripcions per a les pàgines i els espais que seleccioneu. 
\ No newline at end of file
diff --git a/wiki/inc/lang/ca/subscr_list.txt b/wiki/inc/lang/ca/subscr_list.txt
deleted file mode 100644
index 56b9ee9..0000000
--- a/wiki/inc/lang/ca/subscr_list.txt
+++ /dev/null
@@ -1,16 +0,0 @@
-Hola!
-
-Alguna(es) pàgina(es) de l'espai @PAGE@ al wiki @TITLE@ han canviat.
-A continuació podeu veure els canvis:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-Versió anterior: @OLDPAGE@
-Nova versió: @NEWPAGE@
-
-Si voleu cancel·lar les notificacions per a la pàgina, accediu al wiki a
-@DOKUWIKIURL@, visiteu
-@SUBSCRIBE@
-i doneu-vos de baixa dels canvis de la pàgina o de l'espai.
diff --git a/wiki/inc/lang/ca/subscr_single.txt b/wiki/inc/lang/ca/subscr_single.txt
deleted file mode 100644
index a1711f2..0000000
--- a/wiki/inc/lang/ca/subscr_single.txt
+++ /dev/null
@@ -1,16 +0,0 @@
-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/wiki/inc/lang/ca/updateprofile.txt b/wiki/inc/lang/ca/updateprofile.txt
deleted file mode 100644
index 0ba0226..0000000
--- a/wiki/inc/lang/ca/updateprofile.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Actualització del perfil d'usuari ======
-
-Només cal que completeu els camps que vulgueu canviar. El nom d'usuari no es pot canviar.
\ No newline at end of file
diff --git a/wiki/inc/lang/ca/uploadmail.txt b/wiki/inc/lang/ca/uploadmail.txt
deleted file mode 100644
index 01b7648..0000000
--- a/wiki/inc/lang/ca/uploadmail.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-S'ha penjat un fitxer al vostre DokuWiki. Heus ací els detalls:
-
-Fitxer: @MEDIA@
-Data: @DATE@
-Navegador: @BROWSER@
-Adreça IP: @IPADDRESS@
-Ordinador: @HOSTNAME@
-Mida: @SIZE@
-Tipus MIME: @MIME@
-Usuari: @USER@
diff --git a/wiki/inc/lang/cs/admin.txt b/wiki/inc/lang/cs/admin.txt
deleted file mode 100644
index df7c5b6..0000000
--- a/wiki/inc/lang/cs/admin.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Správa ======
-
-Níže je možno spravovat vaší DokuWiki.
diff --git a/wiki/inc/lang/cs/adminplugins.txt b/wiki/inc/lang/cs/adminplugins.txt
deleted file mode 100644
index 88e547a..0000000
--- a/wiki/inc/lang/cs/adminplugins.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Další zásuvné moduly =====
\ No newline at end of file
diff --git a/wiki/inc/lang/cs/backlinks.txt b/wiki/inc/lang/cs/backlinks.txt
deleted file mode 100644
index 59430ee..0000000
--- a/wiki/inc/lang/cs/backlinks.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Zpětné odkazy ======
-
-Zde je seznam stránek, které pravděpodobně odkazují na aktuální stránku.
diff --git a/wiki/inc/lang/cs/conflict.txt b/wiki/inc/lang/cs/conflict.txt
deleted file mode 100644
index b332a47..0000000
--- a/wiki/inc/lang/cs/conflict.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== Existuje novější verze ======
-
-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 ''ZruÅ¡it'' pro uchování původní verze.
diff --git a/wiki/inc/lang/cs/denied.txt b/wiki/inc/lang/cs/denied.txt
deleted file mode 100644
index 29524e5..0000000
--- a/wiki/inc/lang/cs/denied.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Nepovolená akce ======
-
-Promiňte, ale nemáte dostateÄná oprávnÄ›ní k této Äinnosti.
diff --git a/wiki/inc/lang/cs/diff.txt b/wiki/inc/lang/cs/diff.txt
deleted file mode 100644
index d49e569..0000000
--- a/wiki/inc/lang/cs/diff.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Rozdíly ======
-
-Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
-
diff --git a/wiki/inc/lang/cs/draft.txt b/wiki/inc/lang/cs/draft.txt
deleted file mode 100644
index ebdfb8d..0000000
--- a/wiki/inc/lang/cs/draft.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== Nalezen koncept ======
-
-VaÅ¡e minulá editace této stránky nebyla korektnÄ› dokonÄena. DokuWiki bÄ›hem editace automaticky uložila koncept, který nyní můžete použít a pokraÄovat v editaci. Níže je vidÄ›t text uložený bÄ›hem minulé editace.
-
-Prosím rozhodnÄ›te se, jestli chcete automaticky uložený koncept //obnovit// a pokraÄovat v editaci, nebo jej chcete //vymazat//, nebo úplnÄ› //zruÅ¡it// celý proces editace.
diff --git a/wiki/inc/lang/cs/edit.txt b/wiki/inc/lang/cs/edit.txt
deleted file mode 100644
index 1a135ae..0000000
--- a/wiki/inc/lang/cs/edit.txt
+++ /dev/null
@@ -1 +0,0 @@
-Upravte stránku a stiskněte ''Uložit''. Na stránce [[wiki:syntax]] se můžete dozvědět více o wiki syntaxi. Prosím upravujte stránky pouze, pokud je můžete **vylepšit**. V případě, že si chcete něco pouze vyzkoušet, použijte raději [[playground:playground|pískoviště]].
diff --git a/wiki/inc/lang/cs/editrev.txt b/wiki/inc/lang/cs/editrev.txt
deleted file mode 100644
index 44f0bc6..0000000
--- a/wiki/inc/lang/cs/editrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**Máte naÄtenou starší verzi dokumentu!** Pokud ji uložíte, vytvoříte tím novou aktuální verzi.
-----
diff --git a/wiki/inc/lang/cs/index.txt b/wiki/inc/lang/cs/index.txt
deleted file mode 100644
index d19626f..0000000
--- a/wiki/inc/lang/cs/index.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Index ======
-
-Zde je k dispozici index všech dostupných stránek seřazený podle [[doku>namespaces|jmenných prostorů]].
diff --git a/wiki/inc/lang/cs/install.html b/wiki/inc/lang/cs/install.html
deleted file mode 100644
index 043e924..0000000
--- a/wiki/inc/lang/cs/install.html
+++ /dev/null
@@ -1,23 +0,0 @@
-<p>Tato stránka vám pomůže při první instalaci a konfiguraci
-<a href="http://dokuwiki.org">Dokuwiki</a>. Více
-informací o tomto instalátoru naleznete v jeho vlastní <a
-href="http://dokuwiki.org/installer">dokumentaci</a>.</p>
-
-<p>DokuWiki používá obyÄejné soubory pro uložení wiki stránek a dalších informací
-spojených s nimi (např. obrázků, vyhledávacích indexů, starších verzí). Aby DokuWiki
-správně fungovala <strong>musí</strong> mít přístup k adresářům, kde jsou uloženy
-tyto soubory. Tento instalátor není schopen sám nastavit přístupová práva k souborům
-a adresářům. To se obyÄejnÄ› dÄ›lá přímo v shellu nebo, používáte-li hosting, pÅ™es
-FTP nebo ovládací panel vašeho hostingu (např. cPanel).</p>
-
-<p>Tento instalátor nastaví <abbr title="access control list">ACL</abbr>
-(přístupová práva uživatelů) pro vaši DokuWiki, což umožní správci přihlásit
-se do administraÄní Äásti DokuWiki a tam instalovat pluginy, spravovat uživatele,
-nastavovat přístup k wiki stránkám a měnit další nastavení wiki. Není to
-nutné, ale zpříjemní to správu DokuWiki.</p>
-
-<p>Zkušení uživatelé nebo uživatelé se speciálními požadavky by se
-měli podívat na následující stránky pro další informace ohledně
-<a href="http://dokuwiki.org/install">instalace</a> a
-<a href="http://dokuwiki.org/config">nastavení</a> DokuWiki.</p>
-
diff --git a/wiki/inc/lang/cs/jquery.ui.datepicker.js b/wiki/inc/lang/cs/jquery.ui.datepicker.js
deleted file mode 100644
index c2f79cf..0000000
--- a/wiki/inc/lang/cs/jquery.ui.datepicker.js
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Czech initialisation for the jQuery UI date picker plugin. */
-/* Written by Tomas Muller (tomas@tomas-muller.net). */
-( function( factory ) {
-	if ( typeof define === "function" && define.amd ) {
-
-		// AMD. Register as an anonymous module.
-		define( [ "../widgets/datepicker" ], factory );
-	} else {
-
-		// Browser globals
-		factory( jQuery.datepicker );
-	}
-}( function( datepicker ) {
-
-datepicker.regional.cs = {
-	closeText: "Zavřít",
-	prevText: "&#x3C;Dříve",
-	nextText: "Později&#x3E;",
-	currentText: "Nyní",
-	monthNames: [ "leden","únor","bÅ™ezen","duben","kvÄ›ten","Äerven",
-	"Äervenec","srpen","září","říjen","listopad","prosinec" ],
-	monthNamesShort: [ "led","úno","bÅ™e","dub","kvÄ›","Äer",
-	"Ävc","srp","zář","říj","lis","pro" ],
-	dayNames: [ "nedÄ›le", "pondÄ›lí", "úterý", "stÅ™eda", "Ätvrtek", "pátek", "sobota" ],
-	dayNamesShort: [ "ne", "po", "út", "st", "Ät", "pá", "so" ],
-	dayNamesMin: [ "ne","po","út","st","Ät","pá","so" ],
-	weekHeader: "Týd",
-	dateFormat: "dd.mm.yy",
-	firstDay: 1,
-	isRTL: false,
-	showMonthAfterYear: false,
-	yearSuffix: "" };
-datepicker.setDefaults( datepicker.regional.cs );
-
-return datepicker.regional.cs;
-
-} ) );
diff --git a/wiki/inc/lang/cs/lang.php b/wiki/inc/lang/cs/lang.php
deleted file mode 100644
index 8a57c0e..0000000
--- a/wiki/inc/lang/cs/lang.php
+++ /dev/null
@@ -1,366 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Jonáš Dyba <jonas.dyba@gmail.com>
- * @author Bohumir Zamecnik <bohumir@zamecnik.org>
- * @author Tomas Valenta <t.valenta@sh.cvut.cz>
- * @author Zbynek Krivka <zbynek.krivka@seznam.cz>
- * @author Marek Sacha <sachamar@fel.cvut.cz>
- * @author Lefty <lefty@multihost.cz>
- * @author Vojta Beran <xmamut@email.cz>
- * @author Jakub A. Těšínský (j@kub.cz)
- * @author mkucera66 <mkucera66@seznam.cz>
- * @author Zbyněk Křivka <krivka@fit.vutbr.cz>
- * @author Petr Klíma <qaxi@seznam.cz>
- * @author Radovan Buroň <radovan@buron.cz>
- * @author Viktor Zavadil <vzavadil@newps.cz>
- * @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';
-$lang['doublequoteopening']    = '„';
-$lang['doublequoteclosing']    = '“';
-$lang['singlequoteopening']    = '‚';
-$lang['singlequoteclosing']    = '‘';
-$lang['apostrophe']            = '\'';
-$lang['btn_edit']              = 'Upravit stránku';
-$lang['btn_source']            = 'Zdrojový kód stránky';
-$lang['btn_show']              = 'Zobrazit stránku';
-$lang['btn_create']            = 'Vytvořit stránku';
-$lang['btn_search']            = 'Hledat';
-$lang['btn_save']              = 'Uložit';
-$lang['btn_preview']           = 'Náhled';
-$lang['btn_top']               = 'Nahoru';
-$lang['btn_newer']             = '<< novější';
-$lang['btn_older']             = 'starší >>';
-$lang['btn_revs']              = 'Starší verze';
-$lang['btn_recent']            = 'Poslední úpravy';
-$lang['btn_upload']            = 'NaÄíst';
-$lang['btn_cancel']            = 'Zrušit';
-$lang['btn_index']             = 'Mapa stránek';
-$lang['btn_secedit']           = 'Upravit';
-$lang['btn_login']             = 'Přihlásit se';
-$lang['btn_logout']            = 'Odhlásit se';
-$lang['btn_admin']             = 'Správa';
-$lang['btn_update']            = 'Aktualizovat';
-$lang['btn_delete']            = 'Vymazat';
-$lang['btn_back']              = 'Zpět';
-$lang['btn_backlink']          = 'Zpětné odkazy';
-$lang['btn_subscribe']         = 'Odebírat e-mailem změny stránky';
-$lang['btn_profile']           = 'Upravit profil';
-$lang['btn_reset']             = 'Reset';
-$lang['btn_resendpwd']         = 'Nastavit nové heslo';
-$lang['btn_draft']             = 'Upravit koncept';
-$lang['btn_recover']           = 'Obnovit koncept';
-$lang['btn_draftdel']          = 'Vymazat koncept';
-$lang['btn_revert']            = 'Vrátit zpět';
-$lang['btn_register']          = 'Registrovat';
-$lang['btn_apply']             = 'Použít';
-$lang['btn_media']             = 'Správa médií';
-$lang['btn_deleteuser']        = 'Odstranit můj úÄet';
-$lang['btn_img_backto']        = 'Zpět na %s';
-$lang['btn_mediaManager']      = 'Zobrazit ve správě médií';
-$lang['loggedinas']            = 'Přihlášen(a) jako:';
-$lang['user']                  = 'Uživatelské jméno';
-$lang['pass']                  = 'Heslo';
-$lang['newpass']               = 'Nové heslo';
-$lang['oldpass']               = 'SouÄasné heslo';
-$lang['passchk']               = 'Zopakovat';
-$lang['remember']              = 'Zapamatovat';
-$lang['fullname']              = 'Celé jméno';
-$lang['email']                 = 'E-mail';
-$lang['profile']               = 'Uživatelský profil';
-$lang['badlogin']              = 'Zadané uživatelské jméno a heslo není správně.';
-$lang['badpassconfirm']        = 'Bohužel špatné heslo';
-$lang['minoredit']             = 'Drobné změny';
-$lang['draftdate']             = 'Koncept automaticky uložen v';
-$lang['nosecedit']             = 'Stránka byla v meziÄase zmÄ›nÄ›na. Informace o sekci již nebylo platné, byla naÄtena celá stránka.';
-$lang['search_fullresults']    = 'Fulltextové výsledky';
-$lang['js']['willexpire']      = 'Váš zámek pro editaci za chvíli vyprší.\nAbyste pÅ™edeÅ¡li konfliktům, stisknÄ›te tlaÄítko Náhled a zámek se prodlouží.';
-$lang['js']['notsavedyet']     = 'Jsou tu neuložené změny, které budou ztraceny.
-Chcete opravdu pokraÄovat?';
-$lang['js']['searchmedia']     = 'Hledat soubory';
-$lang['js']['keepopen']        = 'Po vybrání souboru nechat okno otevřené';
-$lang['js']['hidedetails']     = 'Skrýt detaily';
-$lang['js']['mediatitle']      = 'Nastavení odkazu';
-$lang['js']['mediadisplay']    = 'Typ odkazu';
-$lang['js']['mediaalign']      = 'Zarovnání';
-$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'] = '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';
-$lang['js']['mediaoriginal']   = 'Původní verze';
-$lang['js']['medialnk']        = 'Odkaz na stránku s detailem';
-$lang['js']['mediadirect']     = 'Přímý odkaz na originál';
-$lang['js']['medianolnk']      = 'Žádný odkaz';
-$lang['js']['medianolink']     = 'Neodkazovat na obrázek';
-$lang['js']['medialeft']       = 'Zarovnat obrázek doleva.';
-$lang['js']['mediaright']      = 'Zarovnat obrázek doprava.';
-$lang['js']['mediacenter']     = 'Zarovnat obrázek na střed.';
-$lang['js']['medianoalign']    = 'Nepoužívat zarovnání.';
-$lang['js']['nosmblinks']      = 'Odkazování na sdílené prostředky Windows funguje jen v Internet Exploreru.
-Přesto tento odkaz můžete zkopírovat a vložit jinde.';
-$lang['js']['linkwiz']         = 'Průvodce odkazy';
-$lang['js']['linkto']          = 'Odkaz na:';
-$lang['js']['del_confirm']     = 'Vymazat tuto položku?';
-$lang['js']['restore_confirm'] = 'Opravdu obnovit tuto verzi?';
-$lang['js']['media_diff']      = 'Prohlédnout rozdíly:';
-$lang['js']['media_diff_both'] = 'Vedle sebe';
-$lang['js']['media_diff_opacity'] = 'Zvýraznění';
-$lang['js']['media_diff_portions'] = 'OsvÄ›dÄit';
-$lang['js']['media_select']    = 'Vybrat soubory...';
-$lang['js']['media_upload_btn'] = 'Nahrát';
-$lang['js']['media_done_btn']  = 'Hotovo';
-$lang['js']['media_drop']      = 'Sem přetáhněte soubory pro nahrátí';
-$lang['js']['media_cancel']    = 'odstranit';
-$lang['js']['media_overwrt']   = 'Přepsat existující soubory';
-$lang['search_starts_with']    = 'ZaÄíná s';
-$lang['search_ends_with']      = 'KonÄí s';
-$lang['search_contains']       = 'Obsahuje';
-$lang['search_custom_match']   = 'Vlastní';
-$lang['search_past_7_days']    = 'Minulý týden';
-$lang['search_past_month']     = 'Minulý měsíc';
-$lang['search_past_year']      = 'Minulý rok';
-$lang['search_sort_by_mtime']  = 'Řadit podle naposledy změněných';
-$lang['regmissing']            = 'Musíte vyplnit všechny údaje.';
-$lang['reguexists']            = 'Uživatel se stejným jménem už je zaregistrován.';
-$lang['regsuccess']            = 'Uživatelský úÄet byl vytvoÅ™en a heslo zasláno e-mailem.';
-$lang['regsuccess2']           = 'Uživatelský úÄet byl vytvoÅ™en.';
-$lang['regfail']               = 'Uživatelský profil nemohl být vytvořen.';
-$lang['regmailfail']           = 'Zdá se, že nastala chyba při posílání mailu s heslem. Zkuste kontaktovat správce.';
-$lang['regbadmail']            = 'Zadaná e-mailová adresa není platná. Pokud si myslíte, že to je špatně, zkuste kontaktovat správce.';
-$lang['regbadpass']            = 'Heslo nebylo zadáno dvakrát stejně, zkuste to prosím znovu.';
-$lang['regpwmail']             = 'Vaše heslo do systému DokuWiki';
-$lang['reghere']               = 'Nemáte uživatelský úÄet? ZÅ™iÄte si ho';
-$lang['profna']                = 'Tato wiki neumožňuje změnu profilu';
-$lang['profnochange']          = 'Žádné změny nebyly provedeny.';
-$lang['profnoempty']           = 'Nelze vynechat jméno nebo e-mailovou adresu.';
-$lang['profchanged']           = 'Uživatelský profil změněn.';
-$lang['profnodelete']          = 'Tato wiki nepodporuje mazání uživatelů';
-$lang['profdeleteuser']        = 'Smazat úÄet';
-$lang['profdeleted']           = 'Váš uživatelský úÄet byl z této wiki smazán';
-$lang['profconfdelete']        = 'Chci smazat můj úÄet z této wiki. <br/> Tato akce je nevratná.';
-$lang['profconfdeletemissing'] = 'Potvrzovací tlaÄítko nezaÅ¡krtnuto';
-$lang['proffail']              = 'Uživatelský profil nebyl aktualizován.';
-$lang['pwdforget']             = 'Zapomněli jste heslo? Nechte si zaslat nové';
-$lang['resendna']              = 'Tato wiki neumožňuje zasílání nových hesel.';
-$lang['resendpwd']             = 'Nastavit nové heslo pro';
-$lang['resendpwdmissing']      = 'Musíte vyplnit všechny položky.';
-$lang['resendpwdnouser']       = 'Bohužel takový uživatel v systému není.';
-$lang['resendpwdbadauth']      = 'Tento autorizaÄní kód není platný. Zadali jste opravdu celý odkaz na potvrzovací stránku?';
-$lang['resendpwdconfirm']      = 'Odkaz na potvrzovací stránku byl odeslán e-mailem.';
-$lang['resendpwdsuccess']      = 'Vaše nové heslo bylo odesláno e-mailem.';
-$lang['license']               = 'Kromě míst, kde je explicitně uvedeno jinak, je obsah této wiki licencován pod následující licencí:';
-$lang['licenseok']             = 'Poznámka: Tím, že editujete tuto stránku, souhlasíte, aby váš obsah byl licencován pod následující licencí:';
-$lang['searchmedia']           = 'Hledat jméno souboru:';
-$lang['searchmedia_in']        = 'Hledat v %s';
-$lang['txt_upload']            = 'Vyberte soubor jako přílohu:';
-$lang['txt_filename']          = 'Wiki jméno (volitelné):';
-$lang['txt_overwrt']           = 'Přepsat existující soubor';
-$lang['maxuploadsize']         = 'Max. velikost souboru %s';
-$lang['lockedby']              = 'Právě zamknuto:';
-$lang['lockexpire']            = 'Zámek vyprší:';
-$lang['rssfailed']             = 'Nastala chyba při vytváření tohoto RSS: ';
-$lang['nothingfound']          = 'Nic nenalezeno.';
-$lang['mediaselect']           = 'Výběr dokumentu';
-$lang['uploadsucc']            = 'Přenos proběhl v pořádku';
-$lang['uploadfail']            = 'Chyba pÅ™i naÄítání. Možná kvůli Å¡patnÄ› nastaveným právům?';
-$lang['uploadwrong']           = 'NaÄtení souboru s takovouto příponou není dovoleno.';
-$lang['uploadexist']           = 'Soubor už existuje, necháme ho být.';
-$lang['uploadbadcontent']      = 'Nahraný obsah neodpovídá jeho příponě souboru %s.';
-$lang['uploadspam']            = 'NaÄtený dokument byl odmítnut, je na spamovém blacklistu.';
-$lang['uploadxss']             = 'NaÄtený dokument byl odmítnut. Zdá se, že obsahuje Å¡kodlivé vÄ›ci.';
-$lang['uploadsize']            = 'Nahraný soubor byl příliš velký (max. %s)';
-$lang['deletesucc']            = 'Soubor "%s" byl vymazán.';
-$lang['deletefail']            = 'Soubor "%s" nelze vymazat - zkontrolujte oprávnění.';
-$lang['mediainuse']            = 'Soubor "%s" nebyl vymazán - stále se používá.';
-$lang['namespaces']            = 'Jmenné prostory';
-$lang['mediafiles']            = 'Dostupné soubory';
-$lang['accessdenied']          = 'Nejste autorizován k přístupu na tuto stránku.';
-$lang['mediausage']            = 'K odkázání se na tento soubor použijte následující syntax:';
-$lang['mediaview']             = 'Zobrazit původní soubor';
-$lang['mediaroot']             = 'root';
-$lang['mediaupload']           = 'NaÄíst soubor do aktuálního jmenného prostoru. K vytvoÅ™ení nových jmenných prostorů, pÅ™idejte jejich názvy na zaÄátek wiki jména (oddÄ›lte dvojteÄkou).';
-$lang['mediaextchange']        = 'Přípona souboru byla změněna z .%s na .%s!';
-$lang['reference']             = 'Odkazy na';
-$lang['ref_inuse']             = 'Soubor nelze vymazat, jelikož ho využívají následující stránky:';
-$lang['ref_hidden']            = 'Některé odkazy jsou na stránkách, kam nemáte právo přístupu';
-$lang['hits']                  = '- poÄet výskytů';
-$lang['quickhits']             = 'Odpovídající stránky';
-$lang['toc']                   = 'Obsah';
-$lang['current']               = 'aktuální';
-$lang['yours']                 = 'Vaše verze';
-$lang['diff']                  = 'Zobrazit rozdíly vůÄi aktuální verzi';
-$lang['diff2']                 = 'Zobrazit rozdíly mezi vybranými verzemi';
-$lang['difflink']              = 'Odkaz na výstup diff';
-$lang['diff_type']             = 'Zobrazit rozdíly:';
-$lang['diff_inline']           = 'Vložené';
-$lang['diff_side']             = 'Přidané';
-$lang['diffprevrev']           = 'Předchozí verze';
-$lang['diffnextrev']           = 'Následující verze';
-$lang['difflastrev']           = 'Poslední revize';
-$lang['diffbothprevrev']       = 'Obě strany předchozí revize';
-$lang['diffbothnextrev']       = 'Obě strany příští revize';
-$lang['line']                  = 'Řádek';
-$lang['breadcrumb']            = 'Historie:';
-$lang['youarehere']            = 'Umístění:';
-$lang['lastmod']               = 'Poslední úprava:';
-$lang['by']                    = 'autor:';
-$lang['deleted']               = 'odstraněno';
-$lang['created']               = 'vytvořeno';
-$lang['restored']              = 'stará verze byla obnovena (%s)';
-$lang['external_edit']         = 'upraveno mimo DokuWiki';
-$lang['summary']               = 'Komentář k úpravám';
-$lang['noflash']               = 'Pro přehrání obsahu potřebujete <a href="http://www.adobe.com/products/flashplayer/">Adobe Flash Plugin</a>.';
-$lang['download']              = 'Stáhnout snippet';
-$lang['tools']                 = 'Nástroje';
-$lang['user_tools']            = 'Uživatelské nástroje';
-$lang['site_tools']            = 'Nástroje pro tento web';
-$lang['page_tools']            = 'Nástroje pro stránku';
-$lang['skip_to_content']       = 'jít k obsahu';
-$lang['sidebar']               = 'Postranní lišta';
-$lang['mail_newpage']          = 'nová stránka:';
-$lang['mail_changed']          = 'změna stránky:';
-$lang['mail_subscribe_list']   = 'stránky změněné ve jmenném prostoru:';
-$lang['mail_new_user']         = 'nový uživatel:';
-$lang['mail_upload']           = 'nahraný soubor:';
-$lang['changes_type']          = 'Prohlednou změny ';
-$lang['pages_changes']         = 'stránek';
-$lang['media_changes']         = 'souborů médií';
-$lang['both_changes']          = 'stránek i médií';
-$lang['qb_bold']               = 'TuÄnÄ›';
-$lang['qb_italic']             = 'Kurzíva';
-$lang['qb_underl']             = 'Podtržení';
-$lang['qb_code']               = 'Neformátovat (zdrojový kód)';
-$lang['qb_strike']             = 'Přeškrtnutý text';
-$lang['qb_h1']                 = 'Nadpis 1. úrovně';
-$lang['qb_h2']                 = 'Nadpis 2. úrovně';
-$lang['qb_h3']                 = 'Nadpis 3. úrovně';
-$lang['qb_h4']                 = 'Nadpis 4. úrovně';
-$lang['qb_h5']                 = 'Nadpis 5. úrovně';
-$lang['qb_h']                  = 'Nadpis';
-$lang['qb_hs']                 = 'Vybrat nadpis';
-$lang['qb_hplus']              = 'Nadpis vyšší úrovně';
-$lang['qb_hminus']             = 'Nadpis nižší úrovně';
-$lang['qb_hequal']             = 'Nadpis stejné úrovně';
-$lang['qb_link']               = 'Interní odkaz';
-$lang['qb_extlink']            = 'Externí odkaz';
-$lang['qb_hr']                 = 'Vodorovná Äára';
-$lang['qb_ol']                 = 'Číslovaný seznam';
-$lang['qb_ul']                 = 'NeÄíslovaný seznam';
-$lang['qb_media']              = 'Vložit obrázky nebo jiné soubory';
-$lang['qb_sig']                = 'Vložit podpis';
-$lang['qb_smileys']            = 'Emotikony';
-$lang['qb_chars']              = 'Speciální znaky';
-$lang['upperns']               = 'skoÄit do nadÅ™azeného jmenného prostoru';
-$lang['metaedit']              = 'Upravit Metadata';
-$lang['metasaveerr']           = 'Chyba při zápisu metadat';
-$lang['metasaveok']            = 'Metadata uložena';
-$lang['img_title']             = 'Titulek:';
-$lang['img_caption']           = 'Popis:';
-$lang['img_date']              = 'Datum:';
-$lang['img_fname']             = 'Jméno souboru:';
-$lang['img_fsize']             = 'Velikost:';
-$lang['img_artist']            = 'Autor fotografie:';
-$lang['img_copyr']             = 'Copyright:';
-$lang['img_format']            = 'Formát:';
-$lang['img_camera']            = 'Typ fotoaparátu:';
-$lang['img_keywords']          = 'KlíÄová slova:';
-$lang['img_width']             = 'Šířka:';
-$lang['img_height']            = 'Výška:';
-$lang['subscr_subscribe_success'] = '%s byl přihlášen do seznamu odběratelů %s';
-$lang['subscr_subscribe_error'] = 'Došlo k chybě při přihlašování %s do seznamu odběratelů %s';
-$lang['subscr_subscribe_noaddress'] = 'K Vašemu loginu neexistuje žádná adresa, nemohl jste být přihlášen do seznamu odběratelů.';
-$lang['subscr_unsubscribe_success'] = '%s byl odhlášen ze seznamu odběratelů %s';
-$lang['subscr_unsubscribe_error'] = 'Došlo k chybě při odhlašování %s ze seznamu odběratelů %s';
-$lang['subscr_already_subscribed'] = '%s již je přihlášen do seznamu odběratelů %s';
-$lang['subscr_not_subscribed'] = '%s není přihlášen do seznamu odběratelů %s';
-$lang['subscr_m_not_subscribed'] = 'V souÄasné dobÄ› neodebíráte zmÄ›ny na aktuální stránce nebo ve jmenném prostoru.';
-$lang['subscr_m_new_header']   = 'Přihlásit k odebírání změn e-mailem';
-$lang['subscr_m_current_header'] = 'Aktuální odběratelé změn';
-$lang['subscr_m_unsubscribe']  = 'Odhlásit z odběru změn e-mailem';
-$lang['subscr_m_subscribe']    = 'Přihlásit se k odběru změn e-mailem';
-$lang['subscr_m_receive']      = 'Přejete si dostávat';
-$lang['subscr_style_every']    = 'e-mail pro každou změnu';
-$lang['subscr_style_digest']   = 'souhrnný e-mail změn pro každou stránku (každé %.2f dny/dní)';
-$lang['subscr_style_list']     = 'seznam změněných stránek od posledního e-mailu (každé %.2f dny/dní)';
-$lang['authtempfail']          = 'Autentizace uživatelů je doÄasnÄ› nedostupná. Pokud tento problém pÅ™etrvává, informujte prosím správce této wiki.';
-$lang['i_chooselang']          = 'Vyberte si jazyk';
-$lang['i_installer']           = 'Instalace DokuWiki';
-$lang['i_wikiname']            = 'Název wiki';
-$lang['i_enableacl']           = 'Zapnout ACL (doporuÄeno)';
-$lang['i_superuser']           = 'Správce';
-$lang['i_problems']            = 'Instalátor narazil na níže popsané problémy. Nelze pokraÄovat v instalaci, dokud je neopravíte.';
-$lang['i_modified']            = 'Instalátor bude z bezpeÄnostních důvodů pracovat pouze s Äistou a jeÅ¡tÄ› neupravenou instalací DokuWiki. BuÄ znovu rozbalte soubory z instalaÄního balíÄku, nebo zkuste prostudovat <a href="http://dokuwiki.org/install">instrukce pro instalaci DokuWiki</a>.';
-$lang['i_funcna']              = 'PHP funkce <code>%s</code> není dostupná. Váš webhosting ji možná z nějakého důvodu vypnul.';
-$lang['i_phpver']              = 'Verze vaší instalace PHP <code>%s</code> je nižší než požadovaná <code>%s</code>. Budete muset aktualizovat svou instalaci PHP.';
-$lang['i_mbfuncoverload']      = 'mbstring.func_overload musí být vypnut v php.ini pro běh DokuWiki.';
-$lang['i_permfail']            = 'DokuWiki nemůže zapisovat do <code>%s</code>. Budete muset opravit práva k tomuto adresáři.';
-$lang['i_confexists']          = '<code>%s</code> již existuje';
-$lang['i_writeerr']            = 'Nelze vytvoÅ™it <code>%s</code>. Budete muset zkontrolovat práva k souborům Äi adresářům a vytvoÅ™it tento soubor ruÄnÄ›.';
-$lang['i_badhash']             = 'soubor dokuwiki.php (hash=<code>%s</code>) nebyl rozpoznán nebo byl upraven';
-$lang['i_badval']              = '<code>%s</code> - neplatná nebo prázdná hodnota';
-$lang['i_success']             = 'Konfigurace byla úspěšnÄ› dokonÄena. Nyní můžete smazat soubor install.php. PokraÄujte do <a href="doku.php?id=wiki:welcome">své nové DokuWiki</a>.';
-$lang['i_failure']             = 'Vyskytly se nÄ›jaké chyby pÅ™i zápisu do konfiguraÄních souborů. Budete je nejspíš muset upravit ruÄnÄ› pÅ™ed použitím <a href="doku.php?id=wiki:welcome">své nové DokuWiki</a>.';
-$lang['i_policy']              = 'Úvodní politika ACL';
-$lang['i_pol0']                = 'OtevÅ™ená wiki (Ätení, zápis a upload pro vÅ¡echny)';
-$lang['i_pol1']                = 'VeÅ™ejná wiki (Ätení pro vÅ¡echny, zápis a upload pro registrované uživatele)';
-$lang['i_pol2']                = 'UzavÅ™ená wiki (Ätení, zápis a upload pouze pro registrované uživatele)';
-$lang['i_allowreg']            = 'Povol uživatelům registraci';
-$lang['i_retry']               = 'Zkusit znovu';
-$lang['i_license']             = 'Vyberte prosím licenci obsahu:';
-$lang['i_license_none']        = 'Nezobrazovat žádné licenÄní informace';
-$lang['i_pop_field']           = 'Prosím, pomozte nám vylepšit DokuWiki:';
-$lang['i_pop_label']           = 'Jednou mÄ›síÄnÄ› zaslat anonymní data o využívání DokuWiki jejím vývojářům';
-$lang['recent_global']         = 'Právě si prohlížíte změny ve jmenném prostoru <b>%s</b>. Také si můžete <a href="%s">zobrazit změny v celé wiki</a>.';
-$lang['years']                 = 'před %d roky';
-$lang['months']                = 'před %d měsíci';
-$lang['weeks']                 = 'před %d týdny';
-$lang['days']                  = 'před %d dny';
-$lang['hours']                 = 'před %d hodinami';
-$lang['minutes']               = 'před %d minutami';
-$lang['seconds']               = 'před %d sekundami';
-$lang['wordblock']             = 'Vaše změny nebyly uloženy, protože obsahují blokovaný text(spam).';
-$lang['media_uploadtab']       = 'Nahrát';
-$lang['media_searchtab']       = 'Hledat';
-$lang['media_file']            = 'Soubor';
-$lang['media_viewtab']         = 'Zobrazit';
-$lang['media_edittab']         = 'Upravit';
-$lang['media_historytab']      = 'Historie';
-$lang['media_list_thumbs']     = 'Zmenšeniny';
-$lang['media_list_rows']       = 'Řádky';
-$lang['media_sort_name']       = 'Jméno';
-$lang['media_sort_date']       = 'Datum';
-$lang['media_namespaces']      = 'Vyber jmenný prostor';
-$lang['media_files']           = 'Soubory v %s';
-$lang['media_upload']          = 'Upload do %s';
-$lang['media_search']          = 'Hledat v %s';
-$lang['media_view']            = '%s';
-$lang['media_viewold']         = '%s na %s';
-$lang['media_edit']            = 'Upravit %s';
-$lang['media_history']         = 'Historie %s';
-$lang['media_meta_edited']     = 'metadata upravena';
-$lang['media_perm_read']       = 'Bohužel, nemáte práva Äíst soubory.';
-$lang['media_perm_upload']     = 'Bohužel, nemáte práva nahrávat soubory.';
-$lang['media_update']          = 'Nahrát novou verzi';
-$lang['media_restore']         = 'Obnovit tuto verzi';
-$lang['media_acl_warning']     = 'Tento seznam nemusí být úplný z důvodu omezení práv ACL a skrytým stránkám.';
-$lang['currentns']             = 'Aktuální jmenný prostor';
-$lang['searchresult']          = 'Výsledek hledání';
-$lang['plainhtml']             = 'Čisté HTML';
-$lang['wikimarkup']            = 'Wiki jazyk';
-$lang['page_nonexist_rev']     = 'Stránka neexistovala na %s. Byla vytvoÅ™ena dodateÄne na <a href="%s">%s</a>.';
-$lang['unable_to_parse_date']  = 'Nelze rozebrat parametr "%s".';
-$lang['email_signature_text']  = 'Tento e-mail byl automaticky vygenerován systémem DokuWiki
-@DOKUWIKIURL@';
diff --git a/wiki/inc/lang/cs/locked.txt b/wiki/inc/lang/cs/locked.txt
deleted file mode 100644
index 23fd943..0000000
--- a/wiki/inc/lang/cs/locked.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Stránka je zamknutá ======
-
-Tato stránka je právÄ› zamknutá pro úpravy jiným uživatelem. Musíte poÄkat, než onen uživatel dokonÄí své úpravy nebo než tento zámek vyprší.
diff --git a/wiki/inc/lang/cs/login.txt b/wiki/inc/lang/cs/login.txt
deleted file mode 100644
index a44ae59..0000000
--- a/wiki/inc/lang/cs/login.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Přihlášení ======
-
-MomentálnÄ› nejste pÅ™ihlášen(a)! Prosím vložte své identifikaÄní údaje níže. Pro pÅ™ihlášení musíte mít zapnuté cookies.
diff --git a/wiki/inc/lang/cs/mailtext.txt b/wiki/inc/lang/cs/mailtext.txt
deleted file mode 100644
index 8036ebe..0000000
--- a/wiki/inc/lang/cs/mailtext.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-Stránka ve vaší DokuWiki byla změněna. Zde jsou podrobnosti:
-
-Datum       : @DATE@
-ProhlížeÄ   : @BROWSER@
-IP adresa   : @IPADDRESS@
-Hostitel    : @HOSTNAME@
-Stará verze : @OLDPAGE@
-Nová verze  : @NEWPAGE@
-Komentář    : @SUMMARY@
-Uživatel    : @USER@
-
-@DIFF@
diff --git a/wiki/inc/lang/cs/mailwrap.html b/wiki/inc/lang/cs/mailwrap.html
deleted file mode 100644
index f15ec06..0000000
--- a/wiki/inc/lang/cs/mailwrap.html
+++ /dev/null
@@ -1,13 +0,0 @@
-<html>
- <head>
- <title>@TITLE@</title>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
- </head>
- <body>
-
- @HTMLBODY@
-
- <br /><hr />
- <small>@EMAILSIGNATURE@</small>
- </body>
- </html>
\ No newline at end of file
diff --git a/wiki/inc/lang/cs/newpage.txt b/wiki/inc/lang/cs/newpage.txt
deleted file mode 100644
index 091250a..0000000
--- a/wiki/inc/lang/cs/newpage.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Stránka s tímto názvem ještě neexistuje ======
-
-Odkaz vás zavedl na stránku, která jeÅ¡tÄ› neexistuje. Můžete ji vytvoÅ™it stisknutím tlaÄítka ''VytvoÅ™it stránku''.
diff --git a/wiki/inc/lang/cs/norev.txt b/wiki/inc/lang/cs/norev.txt
deleted file mode 100644
index f601f58..0000000
--- a/wiki/inc/lang/cs/norev.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Taková verze neexistuje ======
-
-Zadaná verze neexistuje. StisknÄ›te tlaÄítko ''Starší verze'' pro seznam starších verzí tohoto dokumentu.
diff --git a/wiki/inc/lang/cs/password.txt b/wiki/inc/lang/cs/password.txt
deleted file mode 100644
index 6b7c682..0000000
--- a/wiki/inc/lang/cs/password.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-Dobrý den!
-
-Zde jsou přihlašovací informace pro wiki @TITLE@ (@DOKUWIKIURL@)
-
-Jméno             : @FULLNAME@
-Uživatelské jméno : @LOGIN@
-Heslo             : @PASSWORD@
diff --git a/wiki/inc/lang/cs/preview.txt b/wiki/inc/lang/cs/preview.txt
deleted file mode 100644
index 079eda4..0000000
--- a/wiki/inc/lang/cs/preview.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Náhled ======
-
-Zde je náhled, jak bude dokument vypadat. Pozor: Soubor zatím **není uložen**!
diff --git a/wiki/inc/lang/cs/pwconfirm.txt b/wiki/inc/lang/cs/pwconfirm.txt
deleted file mode 100644
index 2605b48..0000000
--- a/wiki/inc/lang/cs/pwconfirm.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-Dobrý den!
-
-NÄ›kdo požádal o nové heslo k vaÅ¡emu uživatelskému úÄtu na wiki @TITLE@ (@DOKUWIKIURL@)
-
-Pokud jste o nové heslo nežádali, ignorujte prosím tento e-mail.
-
-Pro potvrzení, že jste tento požadavek poslali opravdu vy, prosím otevřete následující odkaz.
-
-@CONFIRM@
diff --git a/wiki/inc/lang/cs/read.txt b/wiki/inc/lang/cs/read.txt
deleted file mode 100644
index d5b2d73..0000000
--- a/wiki/inc/lang/cs/read.txt
+++ /dev/null
@@ -1 +0,0 @@
-Tato stránka je pouze pro Ätení. Můžete si pouze prohlédnout zdrojový kód, ale ne ho mÄ›nit. Zeptejte se správce, pokud si myslíte, že nÄ›co není v pořádku.
diff --git a/wiki/inc/lang/cs/recent.txt b/wiki/inc/lang/cs/recent.txt
deleted file mode 100644
index e4ca5e9..0000000
--- a/wiki/inc/lang/cs/recent.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Poslední úpravy ======
-
-Následující stránky byly nedávno změněny.
diff --git a/wiki/inc/lang/cs/register.txt b/wiki/inc/lang/cs/register.txt
deleted file mode 100644
index b0d6bb1..0000000
--- a/wiki/inc/lang/cs/register.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Zaregistrujte se jako nový uživatel ======
-
-Abyste získali uživatelský úÄet, vyplňte prosím vÅ¡echny informace v následujícím formuláři. Zadejte **platnou** mailovou adresu, na níž bude zasláno heslo. Uživatelské jméno musí být v platném [[doku>pagename|formátu]] (který je stejný jako formát názvu stránky).
diff --git a/wiki/inc/lang/cs/registermail.txt b/wiki/inc/lang/cs/registermail.txt
deleted file mode 100644
index 3c449bc..0000000
--- a/wiki/inc/lang/cs/registermail.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-Zaregistroval se nový uživatel. Zde jsou detaily:
-
-Uživatelské jméno : @NEWUSER@
-Celé jméno : @NEWNAME@
-E-mail : @NEWEMAIL@
-
-Datum : @DATE@
-ProhlížeÄ : @BROWSER@
-IP adresa : @IPADDRESS@
-Hostitel : @HOSTNAME@
diff --git a/wiki/inc/lang/cs/resendpwd.txt b/wiki/inc/lang/cs/resendpwd.txt
deleted file mode 100644
index 0820f28..0000000
--- a/wiki/inc/lang/cs/resendpwd.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Zaslat nové heslo ======
-
-Abyste získali nové heslo ke svému úÄtu v této wiki, vyplňte vÅ¡echny níže uvedené informace. Nové heslo bude zasláno na e-mailovou adresu, kterou jste zadali pÅ™i registraci. Uživatelské jméno by mÄ›lo být stejné jako vaÅ¡e uživatelské jméno, s nímž se pÅ™ihlaÅ¡ujete do této wiki.
diff --git a/wiki/inc/lang/cs/resetpwd.txt b/wiki/inc/lang/cs/resetpwd.txt
deleted file mode 100644
index 9aa449c..0000000
--- a/wiki/inc/lang/cs/resetpwd.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Nastavení nového hesla ======
-
-Zadejte prosím nové heslo pro váš úÄet.
\ No newline at end of file
diff --git a/wiki/inc/lang/cs/revisions.txt b/wiki/inc/lang/cs/revisions.txt
deleted file mode 100644
index e3744b7..0000000
--- a/wiki/inc/lang/cs/revisions.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Starší verze ======
-
-Zde jsou starší verze daného dokumentu. Pro návrat ke starší verzi si ji zvolte ze seznamu níže, stisknÄ›te tlaÄítko ''Upravit stránku'' a uložte ji.
diff --git a/wiki/inc/lang/cs/searchpage.txt b/wiki/inc/lang/cs/searchpage.txt
deleted file mode 100644
index 800d61c..0000000
--- a/wiki/inc/lang/cs/searchpage.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Vyhledávání ======
-
-Výsledky hledání můžete vidět níže. @CREATEPAGEINFO@
-
diff --git a/wiki/inc/lang/cs/showrev.txt b/wiki/inc/lang/cs/showrev.txt
deleted file mode 100644
index 971f836..0000000
--- a/wiki/inc/lang/cs/showrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**Toto je starší verze dokumentu!**
-----
diff --git a/wiki/inc/lang/cs/stopwords.txt b/wiki/inc/lang/cs/stopwords.txt
deleted file mode 100644
index 26d8741..0000000
--- a/wiki/inc/lang/cs/stopwords.txt
+++ /dev/null
@@ -1,944 +0,0 @@
-# Stopwords for Czech - generated from ispell-cs (license: GNU GPL)
-aby
-ako
-akorát
-ale
-and
-ani
-ano
-apod
-asi
-atd
-během
-bez
-beze
-blízko
-bohudík
-bohužel
-bokem
-buÄ
-bude
-budem
-budeme
-budeš
-budete
-budiž
-budou
-budu
-bůhvíco
-bůhvíÄí
-bůhvíjak
-bůhvíjaký
-bůhvíkam
-bůhvíkde
-bůhvíkdo
-bůhvíkdy
-bůhvíkolik
-bůhvíkterý
-bůhvínaÄ
-bůhvíproÄ
-bych
-bychom
-byl
-byla
-byli
-bylo
-byly
-bysme
-být
-cca
-cokoli
-cokoliv
-copak
-cosi
-což
-cože
-ÄastÄ›ji
-Äasto
-Äeho
-Äehokoli
-Äehokoliv
-Äehosi
-Äehož
-Äem
-Äemkoli
-Äemkoliv
-Äemsi
-Äemu
-Äemukoli
-Äemukoliv
-Äemusi
-Äemuž
-Äemž
-Äertvíco
-ÄertvíÄí
-Äertvíjak
-Äertvíjaký
-Äertvíkam
-Äertvíkde
-Äertvíkdo
-Äertvíkdy
-Äertvíkolik
-Äertvíkterý
-ÄertvínaÄ
-ÄertvíproÄ
-Äíhokoli
-Äíhosi
-Äíchkoli
-Äíchsi
-Äíkoli
-Äím
-Äímakoli
-Äímasi
-Äímikoli
-Äímisi
-Äímkoli
-Äímkoliv
-Äímpak
-Äímsi
-Äímukoli
-Äímusi
-Äímž
-Äísi
-dál
-dále
-daleko
-další
-dám
-dle
-dnem
-dnes
-dneska
-dobrá
-dobré
-dobrý
-dobře
-docela
-dokonce
-doposavad
-doposud
-doprostřed
-dosavad
-dospod
-dospodu
-dost
-dosti
-dosud
-dovnitÅ™
-eště
-formou
-ho
-hodinou
-hodnÄ›
-horší
-hůř
-hůře
-chceš
-chci
-chtěl
-jacíkoli
-jacíkoliv
-jacípak
-jacísi
-jak
-jakákoli
-jakákoliv
-jakápak
-jakási
-jaké
-jakéhokoli
-jakéhokoliv
-jakéhopak
-jakéhosi
-jakékoli
-jakékoliv
-jakémkoli
-jakémkoliv
-jakémpak
-jakémsi
-jakémukoli
-jakémukoliv
-jakémupak
-jakémusi
-jaképak
-jakési
-jakmile
-jako
-jakou
-jakoukoli
-jakoukoliv
-jakoupak
-jakousi
-jakož
-jakpak
-jaký
-jakýchkoli
-jakýchkoliv
-jakýchpak
-jakýchsi
-jakýkoli
-jakýkoliv
-jakýmakoli
-jakýmakoliv
-jakýmapak
-jakýmasi
-jakýmikoli
-jakýmikoliv
-jakýmipak
-jakýmisi
-jakýmkoli
-jakýmkoliv
-jakýmpak
-jakýmsi
-jakýpak
-jakýsi
-jakže
-jasné
-jasnÄ›
-jde
-je
-jediná
-jediné
-jediný
-jeho
-jehož
-jej
-její
-jejíhož
-jejich
-jejichž
-jejíchž
-jejímaž
-jejímiž
-jejímuž
-jejímž
-jejíž
-jejž
-jelikož
-jemu
-jemuž
-jen
-jenom
-jenž
-jenže
-jestli
-ještě
-jež
-ježto
-ji
-jí
-jich
-jichž
-jim
-jím
-jimi
-jimiž
-jimž
-jímž
-jiná
-jinak
-jiné
-jinou
-jiný
-jiných
-jiným
-jisté
-jistÄ›
-již
-jíž
-jménem
-jsem
-jseš
-jsi
-jsme
-jsou
-jste
-kam
-každý
-kde
-kdeco
-kdeÄí
-kdejaký
-kdekdo
-kdekterý
-kdepak
-kdesi
-kdo
-kdokoli
-kdokoliv
-kdopak
-kdosi
-kdovíjak
-kdovíkde
-kdovíkdo
-kdož
-kdy
-kdysi
-když
-kohokoli
-kohokoliv
-kohopak
-kohosi
-kohož
-kol
-kolem
-kolik
-kolikže
-kolkolem
-komkoli
-komkoliv
-kompak
-komsi
-komu
-komukoli
-komukoliv
-komupak
-komusi
-komuž
-komž
-koncem
-konÄe
-konÄí
-konÄíc
-konec
-kontra
-kromÄ›
-která
-kterákoli
-kterákoliv
-kterási
-kterážto
-které
-kteréhokoli
-kteréhokoliv
-kteréhosi
-kteréhož
-kterékoli
-kterékoliv
-kterém
-kterémkoli
-kterémkoliv
-kterémsi
-kterémukoli
-kterémukoliv
-kterémusi
-kterémuž
-kterémžto
-kterési
-kteréžto
-kterou
-kteroukoli
-kteroukoliv
-kterousi
-kteroužto
-který
-kterýchkoli
-kterýchkoliv
-kterýchsi
-kterýchžto
-kterýkoli
-kterýkoliv
-kterým
-kterýmakoli
-kterýmakoliv
-kterýmasi
-kterýmikoli
-kterýmikoliv
-kterýmisi
-kterýmiž
-kterýmkoli
-kterýmkoliv
-kterýmsi
-kterýmžto
-kterýsi
-kterýžto
-kteří
-kteřísi
-kteřížto
-ktříkoli
-ktříkoliv
-kupodivu
-kupříkladu
-kvůli
-kýmkoli
-kýmkoliv
-kýmpak
-kýmsi
-kýmž
-lecco
-leccos
-lecÄems
-lecjak
-lecjaký
-leckam
-leckams
-leckde
-leckdo
-leckdy
-leckterý
-ledaco
-ledacos
-ledaÄí
-ledajak
-ledajaký
-ledakdo
-ledakterý
-ledaskam
-ledaskde
-ledaskdo
-ledaskdy
-lépe
-lepší
-líp
-má
-mají
-málo
-máloco
-málokdo
-málokterý
-mám
-máme
-máš
-máte
-max
-mé
-mÄ›
-mého
-měl
-měla
-mělo
-mém
-mému
-mezi
-mi
-mí
-mimo
-min
-míň
-místo
-mít
-mne
-mnÄ›
-mnoho
-mnou
-moc
-mohl
-mohla
-mohou
-mohu
-moje
-moji
-mojí
-mou
-možná
-mu
-můj
-musel
-muset
-musí
-musím
-musíš
-musíte
-může
-můžeš
-můžete
-můžu
-my
-mých
-mým
-mými
-naÄ
-naÄež
-naÄpak
-nad
-nade
-nám
-námi
-namísto
-naň
-naprosto
-naproti
-napÅ™
-napříÄ
-nás
-náš
-naši
-navíc
-navrch
-navrchu
-navzdory
-nÄ›
-nebo
-nebude
-nebyl
-nebyli
-nebyly
-něco
-nÄ›Äí
-nedaleko
-nehledíc
-něho
-něhož
-nechceš
-nechci
-nechť
-nechtěl
-něj
-nějak
-nějaká
-nějaké
-nějakého
-nějakou
-nějaký
-nejasné
-nejasný
-nejÄastÄ›ji
-nejde
-nejen
-nejhůř
-nejhůře
-nejlépe
-nejnižší
-nejsem
-nejsou
-nejvyšší
-nějž
-někam
-někde
-někdo
-někdy
-několik
-nekonÄí
-některý
-nelze
-něm
-nemá
-nemají
-nemálo
-nemám
-nemáme
-nemáš
-nemáte
-nemít
-nemohl
-nemohla
-nemohou
-nemohu
-němu
-nemusel
-nemuset
-nemusí
-nemusím
-nemusíš
-němuž
-nemůže
-nemůžeš
-nemůžete
-nemůžu
-němž
-není
-nepřesná
-nepřesné
-nepřesně
-nepřesný
-nepřímo
-netřeba
-netuším
-netýká
-neví
-nevím
-nevíš
-nevlastní
-nevyjímaje
-nevyjímajíc
-než
-něž
-ni
-ní
-nic
-niÄeho
-niÄem
-niÄemu
-niÄí
-niÄím
-nie
-nieje
-nich
-nichž
-nijaký
-nikdo
-nikto
-nim
-ním
-nimi
-nimiž
-nimž
-nímž
-nízká
-niž
-níž
-nižádný
-níže
-nižší
-nový
-nutnÄ›
-oba
-obÄ›
-oběma
-obou
-oÄ
-oÄpak
-ode
-odspoda
-odspodu
-ohlednÄ›
-okamžikem
-okolo
-on
-oň
-ona
-onen
-oni
-ono
-ony
-opravdu
-oproti
-ostatní
-osum
-pak
-poblíž
-poÄátkem
-poÄínaje
-poÄínajíc
-pod
-pode
-podél
-podle
-podobnÄ›
-pokud
-poměrně
-pomocí
-ponad
-pořád
-poslední
-posléze
-posud
-potom
-pražádný
-pro
-proÄ
-proÄpak
-proň
-prostÄ›
-proti
-proto
-protože
-před
-přede
-předem
-přes
-přese
-přesná
-přesné
-přesně
-přesný
-při
-pÅ™iÄemž
-přímo
-případná
-případné
-případně
-případný
-přitom
-půlí
-raději
-rokem
-sám
-sama
-samá
-samé
-samého
-samém
-samému
-sami
-samo
-samou
-samozřejmě
-samozřejmý
-samu
-samy
-samý
-samých
-samým
-samými
-se
-sebe
-sebou
-sem
-ses
-si
-sice
-sis
-skoro
-skrz
-skrze
-snad
-sobÄ›
-som
-sotva
-sotvaco
-sotvakdo
-spíš
-spíše
-spodem
-spolu
-staÄí
-stejnÄ›
-stranou
-středem
-svá
-své
-svého
-svém
-svému
-sví
-svoje
-svoji
-svojí
-svou
-svrchu
-svůj
-svých
-svým
-svými
-špatná
-špatné
-špatně
-špatný
-tací
-tady
-tahle
-tak
-taká
-také
-takhle
-takováto
-takové
-takovéhoto
-takovémto
-takovémuto
-takovéto
-takovíto
-takovouto
-takový
-takovýchto
-takovýma
-takovýmato
-takovýmito
-takovýmto
-takovýto
-takto
-taky
-taký
-takže
-tam
-tamten
-tatáž
-tato
-táž
-tÄ›
-tebe
-tebou
-teÄ
-teda
-tedy
-téhle
-téhož
-těchhle
-těchto
-těchže
-těm
-téma
-těmahle
-těmhle
-těmihle
-těmito
-těmto
-těmu
-témuž
-témž
-témže
-ten
-tenhle
-tenhleten
-tento
-tentýž
-této
-téže
-ti
-tihle
-tím
-tímhle
-tímtéž
-tímto
-titíž
-tito
-tíž
-tobÄ›
-tohle
-toho
-tohohle
-tohoto
-tom
-tomhle
-tomtéž
-tomto
-tomu
-tomuhle
-tomuto
-totéž
-toto
-touhle
-toutéž
-touto
-touž
-touže
-trochu
-trošku
-třeba
-tuhle
-tutéž
-tuto
-tvá
-tvé
-tvého
-tvém
-tvému
-tví
-tvoje
-tvoji
-tvojí
-tvou
-tvůj
-tvých
-tvým
-tvými
-ty
-tyhle
-týchž
-týká
-týmiž
-týmž
-tys
-tytéž
-tyto
-týž
-úderem
-uplná
-uplné
-úplně
-úplný
-uprostřed
-urÄitÄ›
-uvnitÅ™
-úvodem
-vám
-vámi
-vás
-váš
-vaše
-vaši
-vÄetnÄ›
-vedle
-velmi
-veprostřed
-versus
-vespod
-vespodu
-veškerý
-vevnitÅ™
-víc
-více
-vím
-vinou
-víš
-viz
-vlastnÄ›
-vlivem
-vnÄ›
-vnitřka
-vnitřkem
-vnitřku
-von
-vrchem
-však
-vše
-všecek
-všecka
-všecko
-všecky
-všeho
-všech
-všechen
-všechna
-všechno
-všechnu
-všechny
-všelico
-všelicos
-vÅ¡eliÄehos
-vÅ¡eliÄems
-vÅ¡eliÄemus
-vÅ¡eliÄí
-vÅ¡eliÄíms
-všelijaký
-všelikdo
-všeliký
-všeliskdo
-všem
-všemi
-všemu
-vši
-vší
-všicci
-všichni
-vším
-vůbec
-vůÄi
-vy
-vyjma
-vysoká
-výše
-vyšší
-vzdor
-vzhledem
-vždy
-za
-zaÄ
-zaÄátkem
-zaÄpak
-zaň
-zásluhou
-zatím
-závěrem
-zboku
-zcela
-zÄásti
-zda
-zdaleka
-zde
-zespoda
-zespodu
-zevnitÅ™
-zeza
-znovu
-zpět
-zpod
-zponad
-zpoza
-zprostřed
-zřídkaco
-zřídkakdo
-zvnitřka
-zvnitřku
-žádný
diff --git a/wiki/inc/lang/cs/subscr_digest.txt b/wiki/inc/lang/cs/subscr_digest.txt
deleted file mode 100644
index 2ed7bf7..0000000
--- a/wiki/inc/lang/cs/subscr_digest.txt
+++ /dev/null
@@ -1,18 +0,0 @@
-Dobrý den!
-
-Byla změněna stránka @PAGE@ ve wiki @TITLE@.
-Zde jsou změny:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-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řihlaste do wiki na adrese
-@DOKUWIKIURL@, pak navštivte
-@SUBSCRIBE@
-a odhlaste se z odebírání zmÄ›n na stránce Äi
-ve jmenném prostoru.
diff --git a/wiki/inc/lang/cs/subscr_form.txt b/wiki/inc/lang/cs/subscr_form.txt
deleted file mode 100644
index d051b64..0000000
--- a/wiki/inc/lang/cs/subscr_form.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Správa odběratelů změn ======
-
-Tato stránka Vám umožňuje spravovat uživatele přihlášené k odběru změn aktuální stránky nebo jmenného prostoru.
\ No newline at end of file
diff --git a/wiki/inc/lang/cs/subscr_list.txt b/wiki/inc/lang/cs/subscr_list.txt
deleted file mode 100644
index d769988..0000000
--- a/wiki/inc/lang/cs/subscr_list.txt
+++ /dev/null
@@ -1,15 +0,0 @@
-Dobrý den!
-
-Byly změněny stránky ve jmenném prostoru @PAGE@ wiki @TITLE@.
-Zde jsou:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-Pro odhlášení z odebírání změn
-se prosím příhlašte do wiki na adrese
-@DOKUWIKIURL@, pak navštivte
-@SUBSCRIBE@
-a odhlaste se z odebírání zmÄ›n na stránce Äi
-ve jmenném prostoru.
diff --git a/wiki/inc/lang/cs/subscr_single.txt b/wiki/inc/lang/cs/subscr_single.txt
deleted file mode 100644
index 83d45b6..0000000
--- a/wiki/inc/lang/cs/subscr_single.txt
+++ /dev/null
@@ -1,21 +0,0 @@
-Dobrý den!
-
-Byla změněna stránka @PAGE@ ve wiki @TITLE@.
-Zde jsou změny:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-Datum: @DATE@
-Uživatel: @USER@
-Souhrn editace: @SUMMARY@
-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řihlaste do wiki na adrese
-@DOKUWIKIURL@, pak navštivte
-@SUBSCRIBE@
-a odhlaste se z odebírání zmÄ›n na stránce Äi
-ve jmenném prostoru.
diff --git a/wiki/inc/lang/cs/updateprofile.txt b/wiki/inc/lang/cs/updateprofile.txt
deleted file mode 100644
index bf6281d..0000000
--- a/wiki/inc/lang/cs/updateprofile.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== 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/wiki/inc/lang/cs/uploadmail.txt b/wiki/inc/lang/cs/uploadmail.txt
deleted file mode 100644
index 090167d..0000000
--- a/wiki/inc/lang/cs/uploadmail.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-Do DokuWiki byl nahrán nový dokument. Zde jsou podrobnosti:
-
-Soubor : @MEDIA@
-Datum : @DATE@
-ProhlížeÄ : @BROWSER@
-IP adresa : @IPADDRESS@
-Hostitel : @HOSTNAME@
-Velikost : @SIZE@
-MIME typ : @MIME@
-Uživatel : @USER@
diff --git a/wiki/inc/lang/cy/admin.txt b/wiki/inc/lang/cy/admin.txt
deleted file mode 100644
index 75485fc..0000000
--- a/wiki/inc/lang/cy/admin.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Gweinyddu ======
-
-Gallwch chi ddarganfod rhestr o dasgau gweinyddol ar gael mewn DokuWiki, isod.
-
diff --git a/wiki/inc/lang/cy/adminplugins.txt b/wiki/inc/lang/cy/adminplugins.txt
deleted file mode 100644
index ff21264..0000000
--- a/wiki/inc/lang/cy/adminplugins.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-===== Ategion Ychwanegol =====
-
diff --git a/wiki/inc/lang/cy/backlinks.txt b/wiki/inc/lang/cy/backlinks.txt
deleted file mode 100644
index 2180e55..0000000
--- a/wiki/inc/lang/cy/backlinks.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Olgysylltiadau ======
-
-Dyma restr o dudalennau sy'n ymddangos eu bod nhw'n cysylltu'n ôl i'r dudalen gyfredol.
-
diff --git a/wiki/inc/lang/cy/conflict.txt b/wiki/inc/lang/cy/conflict.txt
deleted file mode 100644
index 133e863..0000000
--- a/wiki/inc/lang/cy/conflict.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-====== Mae fersiwn mwy diweddar yn bodoli ======
-
-Mae fersiwn mwy diweddar o'r ddogfen a wnaethoch chi olygu yn bodoli. Bydd hwn yn digwydd pan fydd defnyddiwr arall yn newid y ddogfen wrth i chi'n ei golygu hi.
-
-Archwiliwch y gwahaniaethau isod yn drylwyr, yna penderfynnwch pa fersiwn i'w gadw. Os ydych chi'n dewis ''cadw'', caiff eich fersiwn chi ei gadw. Pwyswch ''canslo'' i gadw'r fersiwn cyfredol.
-
diff --git a/wiki/inc/lang/cy/denied.txt b/wiki/inc/lang/cy/denied.txt
deleted file mode 100644
index 2c0eb00..0000000
--- a/wiki/inc/lang/cy/denied.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Gwrthodwyd Hawl ======
-
-Sori, 'sdim hawliau digonol 'da chi i barhau.
-
diff --git a/wiki/inc/lang/cy/diff.txt b/wiki/inc/lang/cy/diff.txt
deleted file mode 100644
index 69a9ff6..0000000
--- a/wiki/inc/lang/cy/diff.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Gwahaniaethau ======
-
-Mae hwn yn dangos y gwahaniaethau rhwng dau fersiwn y dudalen.
-
diff --git a/wiki/inc/lang/cy/draft.txt b/wiki/inc/lang/cy/draft.txt
deleted file mode 100644
index 3b10c51..0000000
--- a/wiki/inc/lang/cy/draft.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-====== Ffeil ddrafft wedi'i darganfod ======
-
-Doedd eich sesiwn golygu ddiwethaf heb gwblhau'n gywir. Gwnaeth DokuWiki gadw copi ddrafft yn awtomatig wrth i chi weithio, sydd nawr ar gael i chi er mwyn parhau gyda'ch golygu. Gallwch chi weld y data a gafodd ei gadw o'ch sesiwn diwethaf isod.
-
-Penderfynwch os ydych chi am //adennill// eich sesiwn golygu goll, //dileu//'r drafft awtogadw neu //canslo//'r broses olygu.
-
-
-
diff --git a/wiki/inc/lang/cy/edit.txt b/wiki/inc/lang/cy/edit.txt
deleted file mode 100644
index 7e2d899..0000000
--- a/wiki/inc/lang/cy/edit.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-Golygwch y dudalen a phwyso ''Cadw''. Gweler [[wiki:syntax]] ar gyfer cystrawen Wici. Golygwch y dudalen hon dim ond os ydych chi'n gallu ei **gwella** hi. Os ydych chi am brofi pethau, cymerwch eich camau cyntaf ar y [[playground:playground|maes chwarae]].
-
diff --git a/wiki/inc/lang/cy/editrev.txt b/wiki/inc/lang/cy/editrev.txt
deleted file mode 100644
index 5d32e9a..0000000
--- a/wiki/inc/lang/cy/editrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**Rydych chi wedi llwytho hen adolygiad y ddogfen!** Os ydych chi'n ei chadw hi, byddwch chi'n creu fersiwn newydd gyda'r data hwn.
-----
diff --git a/wiki/inc/lang/cy/index.txt b/wiki/inc/lang/cy/index.txt
deleted file mode 100644
index 607a2f6..0000000
--- a/wiki/inc/lang/cy/index.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Map safle ======
-
-Dyma fap safle o bob tudalen sydd ar gael, wedi'u trefnu gan [[doku>namespaces|namespaces]].
-
diff --git a/wiki/inc/lang/cy/install.html b/wiki/inc/lang/cy/install.html
deleted file mode 100644
index 406c7b4..0000000
--- a/wiki/inc/lang/cy/install.html
+++ /dev/null
@@ -1,24 +0,0 @@
-<p>Mae'r dudalen hon yn eich helpu chi i arsefydlu am y tro cyntaf a gyda ffurfweddu
-<a href="http://dokuwiki.org">Dokuwiki</a>. Mae mwy o wybodaeth ar yr arsefydlwr hwn
-ar <a href="http://dokuwiki.org/installer">dudalen ddogfennaeth</a> ei hun.</p>
-
-<p>Mae DokuWiki yn defnyddio ffeiliau arferol ar gyfer storio tudalennau wici a
-gwybodaeth gysylltiol gyda'r tudalennau hynny (e.e. delweddau, indecsau chwilio,
-hen adolygiadau, ac ati).  Er mwyn gweithredu'n llwyddiannus mae'n
-<strong>rhaid</strong> i DokuWiki gael yr hawl i ysgrifennu i'r ffolderi sydd yn
-dal y ffeiliau hynny. 'Dyw'r arsefydlwr hwn ddim yn gallu gosod hawliau ffolderi.
-Bydd hwn, fel rheol, yn gorfod cael ei wneud yn uniongyrchol gydag anogwr gorchymyn,
-neu os ydych chi'n defnyddio gwesteiwr, drwy FTP neu eich panel gwesteio (e.e.
-cPanel).</p>
-
-<p>Bydd yr arsefydlwr hwn yn gosod eich ffurfwedd DokuWiki ar gyfer
-<abbr title="access control list">ACL</abbr>, sydd yn ei dro yn caniat&aacute;u
-mewngofnodi gweinyddwr a mynediad i ddewislen gweinyddu DokuWiki ar gyfer arsefydlu
-ategion, rheoli defnyddwyr, rheoli mynediad i dudalennau wici a newid gosodiadau
-ffurfwedd. 'Sdim angen hwn ar DokuWiki er mwyn gweithio, ond bydd yn gwneud
-Dokuwiki yn haws i'w weinyddu.</p>
-
-<p>Dylai defnyddwyr profiadol neu'r rheiny gydag anghenion gosodiad rrbennig special
-ddefnyddio'r dolenni hyn am wybodaeth parthed
-<a href="http://dokuwiki.org/install">canllawiau arsefydlu</a>
-and <a href="http://dokuwiki.org/config">gosodiadau ffurfwedd</a>.</p>
diff --git a/wiki/inc/lang/cy/jquery.ui.datepicker.js b/wiki/inc/lang/cy/jquery.ui.datepicker.js
deleted file mode 100644
index 14fce91..0000000
--- a/wiki/inc/lang/cy/jquery.ui.datepicker.js
+++ /dev/null
@@ -1,45 +0,0 @@
-/* Welsh/UK initialisation for the jQuery UI date picker plugin. */
-/* Written by William Griffiths. */
-( function( factory ) {
-	if ( typeof define === "function" && define.amd ) {
-
-		// AMD. Register as an anonymous module.
-		define( [ "../widgets/datepicker" ], factory );
-	} else {
-
-		// Browser globals
-		factory( jQuery.datepicker );
-	}
-}( function( datepicker ) {
-
-datepicker.regional[ "cy-GB" ] = {
-	closeText: "Done",
-	prevText: "Prev",
-	nextText: "Next",
-	currentText: "Today",
-	monthNames: [ "Ionawr","Chwefror","Mawrth","Ebrill","Mai","Mehefin",
-	"Gorffennaf","Awst","Medi","Hydref","Tachwedd","Rhagfyr" ],
-	monthNamesShort: [ "Ion", "Chw", "Maw", "Ebr", "Mai", "Meh",
-	"Gor", "Aws", "Med", "Hyd", "Tac", "Rha" ],
-	dayNames: [
-		"Dydd Sul",
-		"Dydd Llun",
-		"Dydd Mawrth",
-		"Dydd Mercher",
-		"Dydd Iau",
-		"Dydd Gwener",
-		"Dydd Sadwrn"
-	],
-	dayNamesShort: [ "Sul", "Llu", "Maw", "Mer", "Iau", "Gwe", "Sad" ],
-	dayNamesMin: [ "Su","Ll","Ma","Me","Ia","Gw","Sa" ],
-	weekHeader: "Wy",
-	dateFormat: "dd/mm/yy",
-	firstDay: 1,
-	isRTL: false,
-	showMonthAfterYear: false,
-	yearSuffix: "" };
-datepicker.setDefaults( datepicker.regional[ "cy-GB" ] );
-
-return datepicker.regional[ "cy-GB" ];
-
-} ) );
diff --git a/wiki/inc/lang/cy/lang.php b/wiki/inc/lang/cy/lang.php
deleted file mode 100644
index de407f8..0000000
--- a/wiki/inc/lang/cy/lang.php
+++ /dev/null
@@ -1,372 +0,0 @@
-<?php
-/**
- * welsh language file
- *
- * @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>
- * @author     Matthias Schulte <mailinglist@lupo49.de>
- * @author     Alan Davies <ben.brynsadler@gmail.com>
- */
-$lang['encoding']              = 'utf-8';
-$lang['direction']             = 'ltr';
-$lang['doublequoteopening']    = '“'; //&ldquo;
-$lang['doublequoteclosing']    = 'â€'; //&rdquo;
-$lang['singlequoteopening']    = '‘'; //&lsquo;
-$lang['singlequoteclosing']    = '’'; //&rsquo;
-$lang['apostrophe']            = '’'; //&rsquo;
-
-$lang['btn_edit']              = 'Golygu\'r dudaen hon';
-$lang['btn_source']            = 'Dangos y ffynhonnell';
-$lang['btn_show']              = 'Dangos y dudalen';
-$lang['btn_create']            = 'Creu\'r dudalen';
-$lang['btn_search']            = 'Chwilio';
-$lang['btn_save']              = 'Cadw';
-$lang['btn_preview']           = 'Rhagolwg';
-$lang['btn_top']               = 'Nôl i\'r brig';
-$lang['btn_newer']             = '<< mwy diweddar';
-$lang['btn_older']             = 'llai diweddar >>';
-$lang['btn_revs']              = 'Hen adolygiadau';
-$lang['btn_recent']            = 'Newidiadau Diweddar';
-$lang['btn_upload']            = 'Lanlwytho';
-$lang['btn_cancel']            = 'Canslo';
-$lang['btn_index']             = 'Safle map';
-$lang['btn_secedit']           = 'Golygu';
-$lang['btn_login']             = 'Mewngofnodi';
-$lang['btn_logout']            = 'Allgofnodi';
-$lang['btn_admin']             = 'Gweinyddu';
-$lang['btn_update']            = 'Diweddaru';
-$lang['btn_delete']            = 'Dileu';
-$lang['btn_back']              = 'Nôl';
-$lang['btn_backlink']          = 'Olgysylltiadau';
-$lang['btn_subscribe']         = 'Rheoli Tanysgrifiadau';
-$lang['btn_profile']           = 'Diweddaru Proffil';
-$lang['btn_reset']             = 'Ailosod';
-$lang['btn_resendpwd']         = 'Gosod cyfrinair newydd';
-$lang['btn_draft']             = 'Golygu drafft';
-$lang['btn_recover']           = 'Adennill drafft';
-$lang['btn_draftdel']          = 'Dileu drafft';
-$lang['btn_revert']            = 'Adfer';
-$lang['btn_register']          = 'Cofrestru';
-$lang['btn_apply']             = 'Gosod';
-$lang['btn_media']             = 'Rheolwr Cyfrwng';
-$lang['btn_deleteuser']        = 'Tynnu Fy Nghyfrif';
-$lang['btn_img_backto']        = 'Nôl i %s';
-$lang['btn_mediaManager']      = 'Dangos mewn rheolwr cyfrwng';
-
-$lang['loggedinas']            = 'Mewngofnodwyd fel:';
-$lang['user']                  = 'Defnyddair';
-$lang['pass']                  = 'Cyfrinair';
-$lang['newpass']               = 'Cyfrinair newydd';
-$lang['oldpass']               = 'Cadarnhau cyfrinair cyfredol';
-$lang['passchk']               = 'unwaith eto';
-$lang['remember']              = 'Cofio fi';
-$lang['fullname']              = 'Enw go iawn';
-$lang['email']                 = 'E-Bost';
-$lang['profile']               = 'Proffil Defnyddiwr';
-$lang['badlogin']              = 'Sori, roedd y defnyddair neu\'r gyfriair yn anghywir.';
-$lang['badpassconfirm']        = 'Sori, roedd y cyfrinair yn anghywir';
-$lang['minoredit']             = 'Newidiadau Bach';
-$lang['draftdate']             = 'Awtogadwyd drafft ar'; // full dformat date will be added
-$lang['nosecedit']             = 'Newidiwyd y dudaen yn y cyfamser, roedd gwybodaeth yr adran wedi dyddio, felly llwythwyd y dudalen gyfan.';
-
-$lang['regmissing']            = 'Sori, llenwch bob maes.';
-$lang['reguexists']            = 'Sori, mae defnyddiwr â\'r enw hwn yn bodoli eisoes.';
-$lang['regsuccess']            = 'Cafodd y defnyddiwr ei greu a chafodd y cyfrinair ei anfon gan ebost.';
-$lang['regsuccess2']           = 'Cafodd y defnyddiwr ei greu.';
-$lang['regfail']               = 'Doedd dim modd creu\'r defnyddiwr.';
-$lang['regmailfail']           = 'Mae\'n debyg roedd gwall wrth anfon y post cyfrinair. Cysylltwch â\'r gweinyddwr!';
-$lang['regbadmail']            = 'Mae\'r cyfeiriad ebost a gyflwynoch chi\'n edrych yn annilys - os ydych chi\'n credu ei fod yn gywir, cysylltwch â\'r gweinyddwr';
-$lang['regbadpass']            = '\'Dyw\'r ddau gyfrinair ddim yn unfath, ceisiwch eto.';
-$lang['regpwmail']             = 'Eich cyfrinair DokuWiki';
-$lang['reghere']               = '\'Sdim cyfrif \'da chi eto? Cewch afael yn un nawr';
-
-$lang['profna']                = '\'Dyw\'r wici hwn ddim yn caniatáu newid eich proffil';
-$lang['profnochange']          = 'Dim newidiadau, dim i\'w wneud.';
-$lang['profnoempty']           = '\'Sdim modd gadael eich enw neu\'ch cyfeiriad ebost chi\'n wag.';
-$lang['profchanged']           = 'Diweddarwyd eich proffil defnyddiwr yn llwyddiannus.';
-$lang['profnodelete']          = '\'Dyw\'r wici hwn ddim yn caniatáu dileu defnyddwyr';
-$lang['profdeleteuser']        = 'Dileu Cyfrif';
-$lang['profdeleted']           = 'Cafodd eich cyfrif defnyddiwr chi ei ddileu o\'r wiki hwn';
-$lang['profconfdelete']        = '\'Dwi eisiau tynnu fy nghyfrif oddi ar y wici hwn. <br/> \'Sdim modd dadwneud hyn.';
-$lang['profconfdeletemissing'] = 'Blwch gwirio heb ei dicio';
-$lang['proffail']              = 'Proffil defnyddiwr heb ei ddiweddaru.';
-
-$lang['pwdforget']             = 'Anghofio\'ch cyfrinair? Cael gafael ar un newydd';
-$lang['resendna']              = '\'Dyw\'r wici hwn ddim yn caniatáu ailanfon cyfrineiriau.';
-$lang['resendpwd']             = 'Gosod cyfrinair newydd ar gyfer';
-$lang['resendpwdmissing']      = 'Sori, mae\'n rhaid llenwi pob maes.';
-$lang['resendpwdnouser']       = 'Sori, \'dyn ni ddim yn gallu darganfod y defnyddiwr hwn yn ein databas ni.';
-$lang['resendpwdbadauth']      = 'Sori, \'dyw\'r cod dilysu hwn ddim yn ddilys. Sicrhewch eich bod chi wedi defnyddio\'r ddolen gadarnhau gyfan.';
-$lang['resendpwdconfirm']      = 'Cafodd ddolen gadarnhau ei hanfon gan ebost.';
-$lang['resendpwdsuccess']      = 'Cafodd eich cyfrinair newydd chi ei anfon gan ebost.';
-
-$lang['license']               = 'Heb law bod datganiad i\'r gwrthwyneb, mae cynnwys y wici hwn o dan y drwydded ganlynol:';
-$lang['licenseok']             = 'Sylwir: Gan olygu\'r dudalen hon rydych chi\'n cytuno i drwyddedu\'ch cynnwys chi o dan y drwydded ganlynol:';
-
-$lang['searchmedia']           = 'Chwilio enw ffeil:';
-$lang['searchmedia_in']        = 'Chwilio mewn %s';
-$lang['txt_upload']            = 'Dewis ffeil i\'w lanlwytho:';
-$lang['txt_filename']          = 'Upload as (optional):';
-$lang['txt_overwrt']           = 'Trosysgrifo ffeil sy\'n bodoli';
-$lang['maxuploadsize']         = 'Lanlwytho uchanfswm %s y ffeil.';
-$lang['lockedby']              = 'Clowyd yn bresennol gan:';
-$lang['lockexpire']            = 'Clo\'n dod i ben ar:';
-
-$lang['js']['willexpire']      = 'Mae\'ch clo ar gyfer golygu\'r dudalen hon yn mynd i ddod i ben mewn munud.\nEr mwyn osgoi gwrthdrawiadau defnyddiwch y botwm rhagolwg i ailosod amserydd y clo.';
-$lang['js']['notsavedyet']     = 'Caiff newidiadau heb gadw eu colli.';
-$lang['js']['searchmedia']     = 'Chwilio am ffeiliau';
-$lang['js']['keepopen']        = 'Cadw ffesnestr y dewisiad ar agor';
-$lang['js']['hidedetails']     = 'Cuddio Manylion';
-$lang['js']['mediatitle']      = 'Gosodiadau dolenni';
-$lang['js']['mediadisplay']    = 'Math y ddolen';
-$lang['js']['mediaalign']      = 'Aliniad';
-$lang['js']['mediasize']       = 'Maint y ddelwedd';
-$lang['js']['mediatarget']     = 'Targed y ddolen';
-$lang['js']['mediaclose']      = 'Cau';
-$lang['js']['mediainsert']     = 'Mewnosod';
-$lang['js']['mediadisplayimg'] = 'Dangos y ddelwedd.';
-$lang['js']['mediadisplaylnk'] = 'Dangos y ddolen yn unig.';
-$lang['js']['mediasmall']      = 'Fersiwn bach';
-$lang['js']['mediamedium']     = 'Fersiwn canolig';
-$lang['js']['medialarge']      = 'Fersiwn mawr';
-$lang['js']['mediaoriginal']   = 'Fersiwn gwreiddiol';
-$lang['js']['medialnk']        = 'Cysylltu i dudalen fanylion';
-$lang['js']['mediadirect']     = 'Cysylltiad uniongyrchol i\'r gwreiddiol';
-$lang['js']['medianolnk']      = 'Dim dolen';
-$lang['js']['medianolink']     = 'Peidio cysylltu i\'r dudalen';
-$lang['js']['medialeft']       = 'Alinio\'r ddelwedd i\'r chwith.';
-$lang['js']['mediaright']      = 'Alinio\'r ddelwedd i\'r dde.';
-$lang['js']['mediacenter']     = 'Alinio\'r ddelwedd i\'r canol.';
-$lang['js']['medianoalign']    = 'Peidio alinio.';
-$lang['js']['nosmblinks']      = 'Mae cysylltu gyda Windows shares dim ond yn gweithio gyda Microsoft Internet Explorer.\nGallwch chi gopïo a gludo\'r ddolen hefyd.';
-$lang['js']['linkwiz']         = 'Dewin Dolenni';
-$lang['js']['linkto']          = 'Cysylltu i:';
-$lang['js']['del_confirm']     = 'Gwir ddileu\'r eitem(au) a ddewiswyd?';
-$lang['js']['restore_confirm'] = 'Gwir adfer y fersiwn hwn?';
-$lang['js']['media_diff']          = 'Gweld gwahaniaethau:';
-$lang['js']['media_diff_both']     = 'Ochr wrth Ochr';
-$lang['js']['media_diff_opacity']  = 'Tywynnu-drwodd';
-$lang['js']['media_diff_portions'] = 'Taro'; //Swipe - rhaid bod gwell ateb i hwn
-$lang['js']['media_select']        = 'Dewis ffeiliau…';
-$lang['js']['media_upload_btn']    = 'Lanlwytho';
-$lang['js']['media_done_btn']      = 'Gorffen';
-$lang['js']['media_drop']          = 'Gollwng ffeiliau yma i\'w lanlwytho';
-$lang['js']['media_cancel']        = 'tynnu';
-$lang['js']['media_overwrt']       = 'Trosysgrifo ffeiliau sy\'n bodoli';
-
-$lang['rssfailed']             = 'Roedd gwall wrth hôl y ffrwd hwn: ';
-$lang['nothingfound']          = 'Dim wedi\'i ddarganfod.';
-
-$lang['mediaselect']           = 'Ffeiliau Cyfrwng';
-$lang['uploadsucc']            = 'Lanlwythiad llwyddiannus';
-$lang['uploadfail']            = 'Methodd y lanlwythiad. Hawliau anghywir efallai?';
-$lang['uploadwrong']           = 'Gwrthodwyd y lanlwythiad. Gwaherddir yr estyniad ffeil hwn!';
-$lang['uploadexist']           = 'Mae\'r ffeil eisoes yn bodoli. Dim wedi\'i wneud.';
-$lang['uploadbadcontent']      = 'Doedd y cynnwys a lanlwythwyd ddim yn cydweddu ag estyniad ffeil %s.';
-$lang['uploadspam']            = 'Cafodd y lanlwythiad ei flocio gan rhestr wahardd sbam.';
-$lang['uploadxss']             = 'Cafodd y lanlwythiad ei flocio efallai oherwydd cynnwys maleisus.';
-$lang['uploadsize']            = 'Roedd y ffeil a lanlwythwyd yn rhy fawr. (uchaf. %s)';
-$lang['deletesucc']            = 'Cafodd ffeil "%s" ei dileu.';
-$lang['deletefail']            = 'Doedd dim modd dileu "%s" - gwiriwch hawliau.';
-$lang['mediainuse']            = 'Doedd "%s" heb ei dileu - mae\'n cael ei defnyddio ar hyn o bryd.';
-$lang['namespaces']            = 'Namespaces'; //namespace
-$lang['mediafiles']            = 'Ffeiliau ar gael mewn';
-$lang['accessdenied']          = '\'Sdim hawl \'da chi weld y dudalen hon.';
-$lang['mediausage']            = 'Defnyddiwch y gystrawen ganlynol i gyfeirio at y ffeil hon:';
-$lang['mediaview']             = 'Dangos y ffeil wreiddiol';
-$lang['mediaroot']             = 'gwraidd';
-$lang['mediaupload']           = 'lanlwythwch ffeil i\'r namespace cyfredol yma. Er mwy creu is-namespace, ychwanegwch nhw o flaen enw\'r ffeil gan eu gwahanu nhw gyda cholonau, ar ôl i chi ddewis y ffeiliau. Gall ffeiliau hefyd eu dewis gan lusgo a gollwng.'; //namespace
-$lang['mediaextchange']        = 'Newidiwyd yr estyniad o .%s i .%s!';
-$lang['reference']             = 'Cyfeirnodau ar gyfer';
-$lang['ref_inuse']             = '\'Sdim modd dileu\'r ffeil hon, oherwydd ei bod hi\'n dal yn cael ei defnyddio gan y tudalennau canlynol:';
-$lang['ref_hidden']            = 'Mae rhai cyfeirnodau ar dudalennau \'sdim hawl \'da chi weld';
-
-$lang['hits']                  = 'Trawiadau';
-$lang['quickhits']             = 'Enw tudalennau\'n cydweddu';
-$lang['toc']                   = 'Tabl Cynnwys';
-$lang['current']               = 'cyfredol';
-$lang['yours']                 = 'Eich Fersiwn';
-$lang['diff']                  = 'Dangos gwahaniaethau i\'r adolygiadau cyfredol';
-$lang['diff2']                 = 'Dangos gwahaniaethau rhwng adolygiadau a ddewiswyd';
-$lang['difflink']              = 'Cysylltu i\'r olwg gymharu hon';
-$lang['diff_type']             = 'Dangos gwahaniaethau:';
-$lang['diff_inline']           = 'Mewnlin';
-$lang['diff_side']             = 'Ochr wrth Ochr';
-$lang['diffprevrev']           = 'Adolygiad blaenorol';
-$lang['diffnextrev']           = 'Adolygiad nesaf';
-$lang['difflastrev']           = 'Adolygiad diwethaf';
-$lang['diffbothprevrev']       = 'Dwy ochr yr adolygiad blaenorol';
-$lang['diffbothnextrev']       = 'Dwy ochr yr adolygiad nesaf';
-$lang['line']                  = 'Llinell';
-$lang['breadcrumb']            = 'Olrhain:';
-$lang['youarehere']            = 'Rydych chi yma:';
-$lang['lastmod']               = 'Newidiwyd ddiwethaf:';
-$lang['by']                    = 'gan';
-$lang['deleted']               = 'tynnwyd';
-$lang['created']               = 'crewyd';
-$lang['restored']              = 'adferwyd hen adolygiad (%s)';
-$lang['external_edit']         = 'golygiad allanol';
-$lang['summary']               = 'Crynodeb golygiad';
-$lang['noflash']               = 'Mae angen <a href="http://www.adobe.com/products/flashplayer/">Ategyn Adobe Flash</a> i ddangos y cynnwys hwn.';
-$lang['download']              = 'Lawrlwytho Darn';
-$lang['tools']                 = 'Teclynnau';
-$lang['user_tools']            = 'Teclynnau Defnyddiwr';
-$lang['site_tools']            = 'Teclynnau Safle';
-$lang['page_tools']            = 'Teclynnau Tudalennau';
-$lang['skip_to_content']       = 'nedio i\'r cynnwys';
-$lang['sidebar']               = 'Bar ochr';
-
-$lang['mail_newpage']          = 'ychwanegwyd tudalen:';
-$lang['mail_changed']          = 'newidiwyd tudalen:';
-$lang['mail_subscribe_list']   = 'newidiwyd tudalennau mewn namespace:'; //namespace
-$lang['mail_new_user']         = 'defnyddiwr newydd:';
-$lang['mail_upload']           = 'lanlwythwyd ffeil:';
-
-$lang['changes_type']          = 'Dangos newidiadau mewn';
-$lang['pages_changes']         = 'Tudalennau';
-$lang['media_changes']         = 'Ffeiliau cyfrwng';
-$lang['both_changes']          = 'Tudalennau a ffeiliau cyfrwng';
-
-$lang['qb_bold']               = 'Testun Bras';
-$lang['qb_italic']             = 'Testun Italig';
-$lang['qb_underl']             = 'Testun wedi\'i Danlinellu';
-$lang['qb_code']               = 'Testun Unbylchog';
-$lang['qb_strike']             = 'Testun Llinell Drwodd';
-$lang['qb_h1']                 = 'Pennawd Lefel 1';
-$lang['qb_h2']                 = 'Pennawd Lefel 2';
-$lang['qb_h3']                 = 'Pennawd Lefel 3';
-$lang['qb_h4']                 = 'Pennawd Lefel 4';
-$lang['qb_h5']                 = 'Pennawd Lefel 5';
-$lang['qb_h']                  = 'Pennawd';
-$lang['qb_hs']                 = 'Dewis Pennawd';
-$lang['qb_hplus']              = 'Pennawd Uwch';
-$lang['qb_hminus']             = 'Pennawd Is';
-$lang['qb_hequal']             = 'Pennawd yr un Lefel';
-$lang['qb_link']               = 'Dolen fewnol';
-$lang['qb_extlink']            = 'Dolen allanol';
-$lang['qb_hr']                 = 'Llinell Lorweddol';
-$lang['qb_ol']                 = 'Eitem Rhestr Drefnedig';
-$lang['qb_ul']                 = 'Eitem Rhestr Rifol';
-$lang['qb_media']              = 'Ychwanegu Delweddau a ffeiliau eraill (agor mewn ffenestr newydd)';
-$lang['qb_sig']                = 'Mewnosod Llofnod';
-$lang['qb_smileys']            = 'Gwenogluniau';
-$lang['qb_chars']              = 'Nodau Arbennig';
-
-$lang['upperns']               = 'neidio i namespace uwch'; //namespace
-
-$lang['metaedit']              = 'Golygu Metadata';
-$lang['metasaveerr']           = 'Methwyd ysgrifennu metadata';
-$lang['metasaveok']            = 'Cadwyd y metadata';
-$lang['img_title']             = 'Teitl:';
-$lang['img_caption']           = 'Egluryn:';
-$lang['img_date']              = 'Dyddiad:';
-$lang['img_fname']             = 'Enw ffeil:';
-$lang['img_fsize']             = 'Maint:';
-$lang['img_artist']            = 'Ffotograffydd:';
-$lang['img_copyr']             = 'Hawlfraint:';
-$lang['img_format']            = 'Fformat:';
-$lang['img_camera']            = 'Camera:';
-$lang['img_keywords']          = 'Allweddeiriau:';
-$lang['img_width']             = 'Lled:';
-$lang['img_height']            = 'Uchder:';
-
-$lang['subscr_subscribe_success']   = 'Ychwanegwyd %s i\'r rhestr danysgrifio ar gyfer %s';
-$lang['subscr_subscribe_error']     = 'Gwall wrth ychwanegu %s i\'r rhestr danysgrifio ar gyfer %s';
-$lang['subscr_subscribe_noaddress'] = '\'Sdim cyfeiriad wedi\'i gysylltu gyda\'ch defnyddair, felly \'sdim modd eich ychwanegu chi i\'r rhestr danysgrifio';
-$lang['subscr_unsubscribe_success'] = 'Tynnwyd %s o\'r rhestr danysgrifio ar gyfer %s';
-$lang['subscr_unsubscribe_error']   = 'Roedd gwall wrth dynnu %s o\'r rhestr danysgrfio ar gyfer %s';
-$lang['subscr_already_subscribed']  = 'Mae %s eisoes wedi tanysgrifio i %s';
-$lang['subscr_not_subscribed']      = '\'Dyw %s heb danysgrifio i %s';
-// Manage page for subscriptions
-$lang['subscr_m_not_subscribed']    = '\'Dych chi heb danysgrifio i\'r dudalen gyfredol neu\'r namespace, yn bresennol.'; //namespace
-$lang['subscr_m_new_header']        = 'Ychwanegu tanysgrifiad';
-$lang['subscr_m_current_header']    = 'Tanysgrifiadau cyfredol';
-$lang['subscr_m_unsubscribe']       = 'Tynnu tanysgrifiad';
-$lang['subscr_m_subscribe']         = 'Tanysgrifio';
-$lang['subscr_m_receive']           = 'Derbyn';
-$lang['subscr_style_every']         = 'ebost ar bob newid';
-$lang['subscr_style_digest']        = 'ebost cryno o\'r newidiadau ar bob tudalen (pob %.2f diwrnod)';
-$lang['subscr_style_list']          = 'rhestr o dudalennau a newidiwyd ers yr ebost diwethaf (pob %.2f diwrnod)';
-
-/* auth.class language support */
-$lang['authtempfail']          = '\'Dyw dilysiad defnyddiwr ddim ar gael yn bresennol (dros dro). Os ydy\'r sefyllfa\'n parhau, cysylltwch â gweinyddwr y wici.';
-
-/* installer strings */
-$lang['i_chooselang']          = 'Dewiswch eich iaith';
-$lang['i_installer']           = 'Arsefydlwr DokuWiki';
-$lang['i_wikiname']            = 'Enw Wici';
-$lang['i_enableacl']           = 'Galluogi ACL (awgrymwyd)';
-$lang['i_superuser']           = 'Uwchddefnyddiwr';
-$lang['i_problems']            = 'Gwnaeth yr arsefydlwr ddod o hyd i broblemau, isod. \'Sdim modd parhau nes i chi eu datrys nhw.';
-$lang['i_modified']            = 'Oherwydd rhesymau diogelwch, bydd y sgript hwn dim ond yn gweithio gydag arsefydliad DokuWiki newydd sydd heb ei newid.
-                                  Dylech chi naill ai ail-echdynnu\'r ffeiliau o\'r pecyn a lawrlwythwyd neu porwch dros y
-                                  <a href="http://dokuwiki.org/install">canllawiau arsefydylu Dokuwiki</a> cyfan';
-$lang['i_funcna']              = 'Swyddogaeth PHP <code>%s</code> ddim ar gael. Posib bod eich gwesteiwr wedi\'i hanalluogi am ryw reswm?';
-$lang['i_phpver']              = 'Mae\'ch fersiwn PHP <code>%s</code> yn is na\'r hyn sydd ei angen <code>%s</code>. Mae angen i chi ddiweddaru eich arsefydliad PHP.';
-$lang['i_mbfuncoverload']      = 'Mae\'n rhaid analluogi mbstring.func_overload mewn php.ini er mwyn rhedeg DokuWiki.';
-$lang['i_permfail']            = '\'Dyw DokuWiki ddim yn gallu ysgrifennu i <code>%s</code>. Mae angen newid gosodiadau hawliau ar gyfer y ffolder hwn!';
-$lang['i_confexists']          = 'Mae <code>%s</code> eisoes yn bodoli';
-$lang['i_writeerr']            = 'Methu creu <code>%s</code>. Bydd angen i chi wirio hawliau ffolder/ffeil a chreu\'r ffeil gan law.';
-$lang['i_badhash']             = 'dokuwiki.php heb ei adnabod neu wedi\'i newid (hash=<code>%s</code>)';
-$lang['i_badval']              = '<code>%s</code> - gwerth anghyfreithlon neu wag';
-$lang['i_success']             = 'Gorffennodd y ffurfwedd yn llwyddiannus. Gallwch chi ddileu\'r ffeil install.php nawr. Ewch
-                                 <a href="doku.php?id=wiki:welcome">i\'ch DokuWiki newydd</a>.';
-$lang['i_failure']             = 'Ymddangosodd gwallau wrth ysgrifennu\'r ffeiliau ffurfwedd. Bydd angen i chi eu cywiro
-                                  nhw gan law cyn gallwch chi ddefnyddio\'ch <a href="doku.php?id=wiki:welcome">DokuWiki newydd</a>.';
-$lang['i_policy']              = 'Polisi ACL cychwynnol';
-$lang['i_pol0']                = 'Wici Agored (darllen, ysgrifennu, lanlwytho i bawb)';
-$lang['i_pol1']                = 'Wici Cyhoeddus (darllen i bawb, ysgrifennu a lanlwytho i ddefnyddwyr cofrestredig)';
-$lang['i_pol2']                = 'Wici Caeedig (darllen, ysgrifennu, lanlwytho i ddefnyddwyr cofrestredig yn unig)';
-$lang['i_allowreg']            = 'Caniatáu defnyddwyr i gofrestru eu hunain';
-$lang['i_retry']               = 'Ailgeisio';
-$lang['i_license']             = 'Dewiswch y drwydded rydych chi am osod ar eich cynnwys:';
-$lang['i_license_none']        = 'Peidio â dangos unrhyw wybodaeth drwyddedu';
-$lang['i_pop_field']           = 'Plis, helpwch ni i wella\'r profiad o ddefnyddio DokuWiki:';
-$lang['i_pop_label']           = 'Anfon data defnydd anhysbys i ddatblygwyr DokuWiki unwaith y mis';
-
-$lang['recent_global']         = 'Yn bresennol, rydych chi\'n gwylio newidiadau tu fewn namespace <b>%s</b>. Gallwch chi hefyd <a href="%s">weld y newidiadau diweddar ar gyfer y wici cyfan</a>.'; //namespace
-
-$lang['years']                 = '%d blynedd yn ôl';
-$lang['months']                = '%d mis yn ôl';
-$lang['weeks']                 = '%d wythnos yn ôl';
-$lang['days']                  = '%d diwrnod yn ôl';
-$lang['hours']                 = '%d awr yn ôl';
-$lang['minutes']               = '%d munud yn ôl';
-$lang['seconds']               = '%d eiliad yn ôl';
-
-$lang['wordblock']             = 'Doedd eich newid heb gadw gan ei fod yn cynnwys testun wedi\'i flocio (sbam).';
-
-$lang['media_uploadtab']       = 'Lanlwytho';
-$lang['media_searchtab']       = 'Chwilio';
-$lang['media_file']            = 'Ffeil';
-$lang['media_viewtab']         = 'Golwg';
-$lang['media_edittab']         = 'Golygu';
-$lang['media_historytab']      = 'Hanes';
-$lang['media_list_thumbs']     = 'Bawdlun';
-$lang['media_list_rows']       = 'Rhesi';
-$lang['media_sort_name']       = 'Enw';
-$lang['media_sort_date']       = 'Dyddiad';
-$lang['media_namespaces']      = 'Dewis namespace'; //namespace
-$lang['media_files']           = 'Ffeiliau mewn %s';
-$lang['media_upload']          = 'Lanlwytho i %s';
-$lang['media_search']          = 'Chwilio mewn %s';
-$lang['media_view']            = '%s';
-$lang['media_viewold']         = '%s ar %s';
-$lang['media_edit']            = 'Golygu %s';
-$lang['media_history']         = 'Hanes %s';
-$lang['media_meta_edited']     = 'golygwyd metadata';
-$lang['media_perm_read']       = 'Sori, ond \'sdim digon o hawliau \'da chi i ddarllen ffeiliau.';
-$lang['media_perm_upload']     = 'Sori, ond \'sdim digon o hawliau \'da chi i lanlwytho ffeiliau.';
-$lang['media_update']          = 'Lanlwytho fersiwn newydd';
-$lang['media_restore']         = 'Adfer y fersiwn hwn';
-$lang['media_acl_warning']     = 'Gall y rhestr hon fod yn anghyflawn oherwydd cyfyngiadau ACL a thudalennau coll.';
-
-$lang['currentns']             = 'Namespace cyfredol'; //namespace
-$lang['searchresult']          = 'Canlyniad Chwilio';
-$lang['plainhtml']             = 'HTML Plaen';
-$lang['wikimarkup']            = 'Iaith Wici';
-$lang['page_nonexist_rev']     = 'Doedd y dudalen ddim yn bodoli ar %s. Cafodd ei chreu wedyn ar <a href="%s">%s</a>.';
-$lang['unable_to_parse_date']  = 'Methu dosbarthu ar baramedr "%s".';
-//Setup VIM: ex: et ts=2 :
diff --git a/wiki/inc/lang/cy/locked.txt b/wiki/inc/lang/cy/locked.txt
deleted file mode 100644
index 4c7865d..0000000
--- a/wiki/inc/lang/cy/locked.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Tudalen ar glo ======
-
-Mae'r dudalen hon wedi'i chloi ar gyfer golygu gan ddefnyddiwr arall. Bydd yn rhaid i chi aros tan i'r defnyddiwr orffen golygu neu tan fod y cyfnod cloi yn dod i ben.
diff --git a/wiki/inc/lang/cy/login.txt b/wiki/inc/lang/cy/login.txt
deleted file mode 100644
index dbdde0e..0000000
--- a/wiki/inc/lang/cy/login.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Mewngofnodi ======
-
-'Dych chi heb fewngofnodi! Rhowch eich manylion mewngofnodi isod. Mae angen galluogi cwcis er mwyn mewngofnodi.
-
diff --git a/wiki/inc/lang/cy/mailtext.txt b/wiki/inc/lang/cy/mailtext.txt
deleted file mode 100644
index 2746233..0000000
--- a/wiki/inc/lang/cy/mailtext.txt
+++ /dev/null
@@ -1,17 +0,0 @@
-Cafodd tudalen yn eich DokuWiki ei hychwanegu neu newid. Dyma'r manylion:
-
-Dyddiad         : @DATE@
-Porwr           : @BROWSER@
-Cyfeiriad-IP    : @IPADDRESS@
-Gwesteiwr       : @HOSTNAME@
-Hen Adolygiad   : @OLDPAGE@
-Adolygiad Newydd: @NEWPAGE@
-Crynodeb Golygu : @SUMMARY@
-Defnyddiwr      : @USER@
-
-@DIFF@
-
-
--- 
-Cafodd y neges hon ei generadyu gan DokuWiki ar
-@DOKUWIKIURL@
diff --git a/wiki/inc/lang/cy/mailwrap.html b/wiki/inc/lang/cy/mailwrap.html
deleted file mode 100644
index 254fcca..0000000
--- a/wiki/inc/lang/cy/mailwrap.html
+++ /dev/null
@@ -1,13 +0,0 @@
-<html>
-<head>
-    <title>@TITLE@</title>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-</head>
-<body>
-
-@HTMLBODY@
-
-<br /><hr />
-<small>Cafodd y neges hon ei generadu gan DokuWiki ar @DOKUWIKIURL@.</small>
-</body>
-</html>
diff --git a/wiki/inc/lang/cy/newpage.txt b/wiki/inc/lang/cy/newpage.txt
deleted file mode 100644
index dfe8a79..0000000
--- a/wiki/inc/lang/cy/newpage.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== 'Dyw'r testun hwn ddim yn bodoli eto ======
-
-Rydych chi wedi dilyn dolen i destun sy ddim yn bodoli eto. Os oes hawliau 'da chi, gallwch chi ei greu gan bwyso ar "Creu y dudalen hon".
-
diff --git a/wiki/inc/lang/cy/norev.txt b/wiki/inc/lang/cy/norev.txt
deleted file mode 100644
index 7d978c5..0000000
--- a/wiki/inc/lang/cy/norev.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Adolygiad ddim y bodoli ======
-
-'Dyw'r adolygiad hwn ddim yn bodoli. Pwyswch ar "Hen adolygiadau" am restr o hen adolygiadau'r ddogfen hon.
-
diff --git a/wiki/inc/lang/cy/password.txt b/wiki/inc/lang/cy/password.txt
deleted file mode 100644
index da0678e..0000000
--- a/wiki/inc/lang/cy/password.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-Shw mae @FULLNAME@!
-
-Dyma'ch manylion ar gyfer @TITLE@ ar @DOKUWIKIURL@
-
-Defnyddair  : @LOGIN@
-Cyfrinair   : @PASSWORD@
-
--- 
-Cafodd y neges hon ei generadu gan DokuWiki ar
-@DOKUWIKIURL@
diff --git a/wiki/inc/lang/cy/preview.txt b/wiki/inc/lang/cy/preview.txt
deleted file mode 100644
index 477879d..0000000
--- a/wiki/inc/lang/cy/preview.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Rhagolwg ======
-
-Dyma ragolwg o sut fydd eich testun yn edrych. Cofiwch: 'Dyw e **heb ei gadw** 'to!
-
diff --git a/wiki/inc/lang/cy/pwconfirm.txt b/wiki/inc/lang/cy/pwconfirm.txt
deleted file mode 100644
index 529571e..0000000
--- a/wiki/inc/lang/cy/pwconfirm.txt
+++ /dev/null
@@ -1,15 +0,0 @@
-Shw mae @FULLNAME@!
-
-Mae rhywun wedi gofyn am gyfrinair newydd ar gyfer eich manylion
-@TITLE@ ar @DOKUWIKIURL@
-
-Os na wnaethoch chi ofyn am gyfrinair newydd, anwybyddwch yr e-bost hwn.
-
-I gadarnhau daeth y cais oddi wrthoch chi, pwyswch y ddolen isod.
-
-@CONFIRM@
-
---
-Cafodd y neges hon ei generadu gan DokuWiki ar
-@DOKUWIKIURL@
-
diff --git a/wiki/inc/lang/cy/read.txt b/wiki/inc/lang/cy/read.txt
deleted file mode 100644
index 8703ef9..0000000
--- a/wiki/inc/lang/cy/read.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-Mae'r dudalen hon i'w darllen yn unig. Gallwch chi edrych ar y ffynhonnell, ond nid ei newid hi. Cysylltwch â'ch gweinyddwr chi os ydych chi'n meddwl bod hwn yn anghywir.
-
diff --git a/wiki/inc/lang/cy/recent.txt b/wiki/inc/lang/cy/recent.txt
deleted file mode 100644
index 2affbf9..0000000
--- a/wiki/inc/lang/cy/recent.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== Newidiadau Diweddar ======
-
-Cafodd y tudalennau canlynol eu newid yn ddiweddar.
-
-
diff --git a/wiki/inc/lang/cy/register.txt b/wiki/inc/lang/cy/register.txt
deleted file mode 100644
index 6fbc850..0000000
--- a/wiki/inc/lang/cy/register.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Cofrestru fel defnyddiwr newydd ======
-
-Llenwch yr holl wybodaeth isod i greu cyfrif newydd ar y wici hwn. Sicrhewch eich bod chi'n cynnwys **cyfeiriad e-bost dilys** - os na chewch chi'ch annog am gyfrinair, caiff un ei anfon i'ch cyfeiriad. Dylai'r enw mewngofnodi fod yn [[doku>pagename|enw tudalen]] dilys.
-
diff --git a/wiki/inc/lang/cy/registermail.txt b/wiki/inc/lang/cy/registermail.txt
deleted file mode 100644
index 0cb2b4f..0000000
--- a/wiki/inc/lang/cy/registermail.txt
+++ /dev/null
@@ -1,14 +0,0 @@
-Cofrestrodd defnyddiwr newydd. Dyma'r manylion:
-
-Defnyddair   : @NEWUSER@
-Enw llawn    : @NEWNAME@
-E-bost       : @NEWEMAIL@
-
-Dyddiad      : @DATE@
-Porwr        : @BROWSER@
-Cyfeiriad-IP : @IPADDRESS@
-Gwesteiwr    : @HOSTNAME@
-
--- 
-Cafodd y neges hon ei generadu gan DokuWiki ar
-@DOKUWIKIURL@
diff --git a/wiki/inc/lang/cy/resendpwd.txt b/wiki/inc/lang/cy/resendpwd.txt
deleted file mode 100644
index ddad8a9..0000000
--- a/wiki/inc/lang/cy/resendpwd.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Anfon cyfrinair newydd ======
-
-Ailgyflwynwch eich defnyddair yn y ffurflen isod i wneud cais am gyfrinair newydd i'ch cyfrif ar y wici hwn. Caiff ddolen gadarnhau ei hanfon i chi drwy eich e-bost cofrestredig.
-
diff --git a/wiki/inc/lang/cy/resetpwd.txt b/wiki/inc/lang/cy/resetpwd.txt
deleted file mode 100644
index 57f1992..0000000
--- a/wiki/inc/lang/cy/resetpwd.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Gosod cyfrinair newydd ======
-
-Rhowch gyfrinair newydd i'ch cyfrif ar y wici hwn.
-
diff --git a/wiki/inc/lang/cy/revisions.txt b/wiki/inc/lang/cy/revisions.txt
deleted file mode 100644
index afbc9fe..0000000
--- a/wiki/inc/lang/cy/revisions.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Hen Adolygiadau ======
-
-Dyma adolygiadau hŷn y ddogfen gyfredol. I droi'n ôl i hen adolygiad, dewiswch e isod a phwyso ''Golygu'r dudalen hon'' a'i gadw.
-
diff --git a/wiki/inc/lang/cy/searchpage.txt b/wiki/inc/lang/cy/searchpage.txt
deleted file mode 100644
index 6a645cb..0000000
--- a/wiki/inc/lang/cy/searchpage.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Chwilio ======
-
-Gallwch chi ddarganfod canlyniadau eich chwiliad isod. @CREATEPAGEINFO@
-
diff --git a/wiki/inc/lang/cy/showrev.txt b/wiki/inc/lang/cy/showrev.txt
deleted file mode 100644
index 6cc9d6c..0000000
--- a/wiki/inc/lang/cy/showrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**Dyma hen adolygiad y ddogfen!**
-----
diff --git a/wiki/inc/lang/cy/stopwords.txt b/wiki/inc/lang/cy/stopwords.txt
deleted file mode 100644
index 2ac4c31..0000000
--- a/wiki/inc/lang/cy/stopwords.txt
+++ /dev/null
@@ -1,31 +0,0 @@
-# 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/
-allan
-beth
-ble
-bydd
-chi
-dyma
-dyna
-eich
-gyda
-hefyd
-hon
-honna
-hwn
-hwnnw
-hwy
-hyn
-hynny
-mewn
-nhw
-oddi
-oedd
-pan
-pwy
-roedd
-sut
-wrth
-www
\ No newline at end of file
diff --git a/wiki/inc/lang/cy/subscr_digest.txt b/wiki/inc/lang/cy/subscr_digest.txt
deleted file mode 100644
index 611e057..0000000
--- a/wiki/inc/lang/cy/subscr_digest.txt
+++ /dev/null
@@ -1,20 +0,0 @@
-Shw mae!
-
-Gwnaeth y dudalen @PAGE@ mewn wici @TITLE@ newid.
-Dyma'r newidiadau:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-Hen Adolygiad: @OLDPAGE@
-Adolygiad Newydd: @NEWPAGE@
-
-I ganslo hysbysiadau tudalen, mewngofnodwch i'r wici ar
-@DOKUWIKIURL@ ac yna ewch i
-@SUBSCRIBE@
-a thanysgrifio o newidiadau tudalen a/neu namespace.
-
--- 
-Cafodd y neges hon ei generadu gan DokuWiki ar
-@DOKUWIKIURL@
diff --git a/wiki/inc/lang/cy/subscr_form.txt b/wiki/inc/lang/cy/subscr_form.txt
deleted file mode 100644
index 47d1a17..0000000
--- a/wiki/inc/lang/cy/subscr_form.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Rheoli Tanysgrifiad ======
-
-Mae'r dudalen hon yn eich galluogi i reoli'ch tanysgrifiadau ar gyfer y dudalen gyfredol a'r namespace.
diff --git a/wiki/inc/lang/cy/subscr_list.txt b/wiki/inc/lang/cy/subscr_list.txt
deleted file mode 100644
index 592f290..0000000
--- a/wiki/inc/lang/cy/subscr_list.txt
+++ /dev/null
@@ -1,17 +0,0 @@
-Shw mae!
-
-Gwnaeth tudalennau yn y namespace @PAGE@ o'r wici @TITLE@ newid.
-Dyma'r tudaalennau sydd wedi newid:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-I ganslo hysbysiadau'r dudalen, mewngofnodwch i'r wici ar
-@DOKUWIKIURL@ yna ewch i
-@SUBSCRIBE@
-a thanysgrifio o newidiadau tudalen a/neu namespace.
-
--- 
-Cafodd y neges hon ei generadu gan DokuWiki ar
-@DOKUWIKIURL@
diff --git a/wiki/inc/lang/cy/subscr_single.txt b/wiki/inc/lang/cy/subscr_single.txt
deleted file mode 100644
index 2a774eb..0000000
--- a/wiki/inc/lang/cy/subscr_single.txt
+++ /dev/null
@@ -1,23 +0,0 @@
-Shw mae!
-
-Gwnaeth y dudalen @PAGE@ yn y wici @TITLE@ newid.
-Dyma'r newidiadau:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-Dyddiad          : @DATE@
-Defnyddiwr       : @USER@
-Crynodeb Golygu  : @SUMMARY@
-Hen Adolygiad    : @OLDPAGE@
-Adolygiad Newwydd: @NEWPAGE@
-
-I ganslo hysbysiadau'r dudalen, mewngofnodwch i'r wici ar
-@DOKUWIKIURL@ yna ewch i
-@SUBSCRIBE@
-a thanysgrifio o newidiadau tudalen a namespace.
-
--- 
-Cafodd y neges hon ei generadu gan DokuWiki ar
-@DOKUWIKIURL@
diff --git a/wiki/inc/lang/cy/updateprofile.txt b/wiki/inc/lang/cy/updateprofile.txt
deleted file mode 100644
index ce9ca50..0000000
--- a/wiki/inc/lang/cy/updateprofile.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== Diweddaru proffil eich cyfrif ======
-
-Newidiwch y meysydd rydych chi amm newid yn unig.  'Sdim modd i chi newid eich defnyddair.
-
-
diff --git a/wiki/inc/lang/cy/uploadmail.txt b/wiki/inc/lang/cy/uploadmail.txt
deleted file mode 100644
index 8102232..0000000
--- a/wiki/inc/lang/cy/uploadmail.txt
+++ /dev/null
@@ -1,15 +0,0 @@
-Cafodd ffeil ei lanlwytho i'ch DokuWiki. Dyma'r manylion:
-
-Ffeil         : @MEDIA@
-Hen adolygiad : @OLD@
-Dyddiad       : @DATE@
-Porwr         : @BROWSER@
-Cyfeiriad-IP  : @IPADDRESS@
-Gwesteiwr     : @HOSTNAME@
-Maint         : @SIZE@
-Teip MIME     : @MIME@
-Defnyddiwr    : @USER@
-
--- 
-Cafodd y neges hon ei generadu gan DokuWiki ar
-@DOKUWIKIURL@
diff --git a/wiki/inc/lang/da/admin.txt b/wiki/inc/lang/da/admin.txt
deleted file mode 100644
index 3ac4a70..0000000
--- a/wiki/inc/lang/da/admin.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Administration ======
-
-Nedenfor kan du finde en række administrative værktøjer.
-
diff --git a/wiki/inc/lang/da/adminplugins.txt b/wiki/inc/lang/da/adminplugins.txt
deleted file mode 100644
index 2a3d687..0000000
--- a/wiki/inc/lang/da/adminplugins.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Yderligere udvidelser =====
\ No newline at end of file
diff --git a/wiki/inc/lang/da/backlinks.txt b/wiki/inc/lang/da/backlinks.txt
deleted file mode 100644
index 6dfa3cc..0000000
--- a/wiki/inc/lang/da/backlinks.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Henvisninger bagud ======
-
-Dette er en liste over alle de dokumenter der henviser tilbage til det nuværende dokument.
-
diff --git a/wiki/inc/lang/da/conflict.txt b/wiki/inc/lang/da/conflict.txt
deleted file mode 100644
index fc38cee..0000000
--- a/wiki/inc/lang/da/conflict.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== Der eksisterer en nyere udgave af dokumentet ======
-
-Der eksisterer en nyere udgave af dette dokument. Det sker når flere brugere ændrer i dokumentet på samme tid.
-
-Gennemgå de viste forskelle grundigt, og beslut hvilken udgave der skal bevares. Hvis du vælger ''Gem'', bliver din udgave af dokumentet gemt. Vælger du ''Fortryd'' beholder du den nuværende udgave.
diff --git a/wiki/inc/lang/da/denied.txt b/wiki/inc/lang/da/denied.txt
deleted file mode 100644
index 217d893..0000000
--- a/wiki/inc/lang/da/denied.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Adgang nægtet ======
-
-Du har ikke rettigheder til at fortsætte.
diff --git a/wiki/inc/lang/da/diff.txt b/wiki/inc/lang/da/diff.txt
deleted file mode 100644
index f77224f..0000000
--- a/wiki/inc/lang/da/diff.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Forskelle ======
-
-Dette viser forskellene mellem den valgte og den nuværende udgave af dokumentet. Gul er linjer der findes i den gamle udgave, og grøn er linjer der findes i den nuværende.
-
diff --git a/wiki/inc/lang/da/draft.txt b/wiki/inc/lang/da/draft.txt
deleted file mode 100644
index 69c7801..0000000
--- a/wiki/inc/lang/da/draft.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-====== Kladdefil fundet ======
-
-Din sidste redigeringssession på denne side blev ikke afsluttet korrekt. DokuWiki har automatisk gemt en kladde mens du arbejdede, som du kan benytte til at fortsætte redigeringen. Forneden kan du se de data der blev gemt fra din sidste session.
-
-Vælg venligst, om du vil //gendanne// din tabte redigering, //slette// den gemte kladde eller //afbryde// redigeringen.
-
diff --git a/wiki/inc/lang/da/edit.txt b/wiki/inc/lang/da/edit.txt
deleted file mode 100644
index 0a9ea39..0000000
--- a/wiki/inc/lang/da/edit.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-Rediger dette dokument og tryk på knappen **''[Gem]''**. Se [[wiki:syntax|Formaterings tips]] for Wiki syntaks. Ret venligst kun dette dokument hvis du kan **forbedre** det. Brug venligst [[playground:playground|sandkassen]] til at teste før du retter i et rigtigt dokument. Husk også at bruge **''[Forhåndsvisning]''** før du gemmer dokumentet.
-
diff --git a/wiki/inc/lang/da/editrev.txt b/wiki/inc/lang/da/editrev.txt
deleted file mode 100644
index 438363e..0000000
--- a/wiki/inc/lang/da/editrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**Du har hentet en gammel udgave af dette dokument!** Hvis du gemmer dokumentet vil du overskrive den nuværende med den gamle udgave.
-----
diff --git a/wiki/inc/lang/da/index.txt b/wiki/inc/lang/da/index.txt
deleted file mode 100644
index 74afb98..0000000
--- a/wiki/inc/lang/da/index.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Indeks ======
-
-Dette er en oversigt over alle tilgængelige dokumenter, sorteret efter [[doku>namespaces|navnerum]].
diff --git a/wiki/inc/lang/da/install.html b/wiki/inc/lang/da/install.html
deleted file mode 100644
index 3cc13f8..0000000
--- a/wiki/inc/lang/da/install.html
+++ /dev/null
@@ -1,24 +0,0 @@
-<p>Denne side hjælper til første-gangs installation og konfiguration af
-<a href="http://dokuwiki.org">Dokuwiki</a>. Mere information om denne
-installer er tilgængelig på dens egen
-<a href="http://dokuwiki.org/installer">dokumentations side</a>.</p>
-
-<p>DokuWiki bruger almindelige filer til at gemme wiki sider og anden
-information relaterende til disse sider (f.eks. billeder, søge indeks, gamle
-udgaver, osv).  For at fungerer optimalt <strong>skal</strong> DokuWiki have
-skrive adgang til mapperne der holder disse filer. Denne installer er ikke
-istand til at opsætte mappe tilladelser. Det skal normalt udføres direkte i en
-kommando shell eller hvis du bruger hosting, gennem FTP eller dit hostings
-kontrol panel (f.eks. cPanel).</p>
-
-<p>Denne installer vil opsætte din DokuWiki konfiguration for
-<abbr title="access control list">ACL</abbr>, hvilket tillader
-administrator login og adgang til DokuWiki's adminstrative menu til
-installation af udvidelser, håndtering af brugere, håndtering af adgang til wiki
-sider og ændring af konfigurations indstillinger. Det er ikke et krav for at
-DokuWiki kan fungere, men det vil gøre DokuWiki lettere at administre.</p>
-
-<p>Erfarne brugere og brugere med specielle opsætningskrav burde bruge disse
-henvisninger for detaljer vedrørende
-<a href="http://dokuwiki.org/install">installations instruktioner</a>
-og <a href="http://dokuwiki.org/config">konfigurations indstillinger</a>.</p>
diff --git a/wiki/inc/lang/da/jquery.ui.datepicker.js b/wiki/inc/lang/da/jquery.ui.datepicker.js
deleted file mode 100644
index 273f0e3..0000000
--- a/wiki/inc/lang/da/jquery.ui.datepicker.js
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Danish initialisation for the jQuery UI date picker plugin. */
-/* Written by Jan Christensen ( deletestuff@gmail.com). */
-( function( factory ) {
-	if ( typeof define === "function" && define.amd ) {
-
-		// AMD. Register as an anonymous module.
-		define( [ "../widgets/datepicker" ], factory );
-	} else {
-
-		// Browser globals
-		factory( jQuery.datepicker );
-	}
-}( function( datepicker ) {
-
-datepicker.regional.da = {
-	closeText: "Luk",
-	prevText: "&#x3C;Forrige",
-	nextText: "Næste&#x3E;",
-	currentText: "Idag",
-	monthNames: [ "Januar","Februar","Marts","April","Maj","Juni",
-	"Juli","August","September","Oktober","November","December" ],
-	monthNamesShort: [ "Jan","Feb","Mar","Apr","Maj","Jun",
-	"Jul","Aug","Sep","Okt","Nov","Dec" ],
-	dayNames: [ "Søndag","Mandag","Tirsdag","Onsdag","Torsdag","Fredag","Lørdag" ],
-	dayNamesShort: [ "Søn","Man","Tir","Ons","Tor","Fre","Lør" ],
-	dayNamesMin: [ "Sø","Ma","Ti","On","To","Fr","Lø" ],
-	weekHeader: "Uge",
-	dateFormat: "dd-mm-yy",
-	firstDay: 1,
-	isRTL: false,
-	showMonthAfterYear: false,
-	yearSuffix: "" };
-datepicker.setDefaults( datepicker.regional.da );
-
-return datepicker.regional.da;
-
-} ) );
diff --git a/wiki/inc/lang/da/lang.php b/wiki/inc/lang/da/lang.php
deleted file mode 100644
index c9374f2..0000000
--- a/wiki/inc/lang/da/lang.php
+++ /dev/null
@@ -1,356 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Kenneth Schack Banner <kescba@gmail.com>
- * @author Jon Theil Nielsen <jontheil@gmail.com>
- * @author koeppe <koeppe@kazur.dk>
- * @author Jon Bendtsen <bendtsen@diku.dk>
- * @author Lars Næsbye Christensen <larsnaesbye@stud.ku.dk>
- * @author Kalle Sommer Nielsen <kalle@php.net>
- * @author Esben Laursen <hyber@hyber.dk>
- * @author Harith <haj@berlingske.dk>
- * @author Daniel Ejsing-Duun <dokuwiki@zilvador.dk>
- * @author Erik Bjørn Pedersen <erik.pedersen@shaw.ca>
- * @author rasmus <rasmus@kinnerup.com>
- * @author Mikael Lyngvig <mikael@lyngvig.org>
- * @author Soren Birk <soer9648@hotmail.com>
- * @author Jens Hyllegaard <jens.hyllegaard@gmail.com>
- * @author soer9648 <soer9648@eucl.dk>
- * @author Søren Birk <sbi@eucl.dk>
- * @author Jacob Palm <mail@jacobpalm.dk>
- */
-$lang['encoding']              = 'utf-8';
-$lang['direction']             = 'ltr';
-$lang['doublequoteopening']    = '„';
-$lang['doublequoteclosing']    = '“';
-$lang['singlequoteopening']    = '‚';
-$lang['singlequoteclosing']    = '‘';
-$lang['apostrophe']            = '’';
-$lang['btn_edit']              = 'Rediger denne side';
-$lang['btn_source']            = 'Vis kildekode';
-$lang['btn_show']              = 'Vis side';
-$lang['btn_create']            = 'Opret denne side';
-$lang['btn_search']            = 'Søg';
-$lang['btn_save']              = 'Gem';
-$lang['btn_preview']           = 'Forhåndsvisning';
-$lang['btn_top']               = 'Tilbage til toppen';
-$lang['btn_newer']             = '<< forrige side';
-$lang['btn_older']             = 'næste side >>';
-$lang['btn_revs']              = 'Gamle udgaver';
-$lang['btn_recent']            = 'Nye ændringer';
-$lang['btn_upload']            = 'Overfør';
-$lang['btn_cancel']            = 'Fortryd';
-$lang['btn_index']             = 'Indeks';
-$lang['btn_secedit']           = 'Redigér';
-$lang['btn_login']             = 'Log ind';
-$lang['btn_logout']            = 'Log ud';
-$lang['btn_admin']             = 'Admin';
-$lang['btn_update']            = 'Opdatér';
-$lang['btn_delete']            = 'Slet';
-$lang['btn_back']              = 'Tilbage';
-$lang['btn_backlink']          = 'Henvisninger bagud';
-$lang['btn_subscribe']         = 'Abonnér på ændringer';
-$lang['btn_profile']           = 'Opdatér profil';
-$lang['btn_reset']             = 'Nulstil';
-$lang['btn_resendpwd']         = 'Vælg ny adgangskode';
-$lang['btn_draft']             = 'Redigér kladde';
-$lang['btn_recover']           = 'Gendan kladde';
-$lang['btn_draftdel']          = 'Slet kladde';
-$lang['btn_revert']            = 'Gendan';
-$lang['btn_register']          = 'Registrér';
-$lang['btn_apply']             = 'Anvend';
-$lang['btn_media']             = 'Media Manager';
-$lang['btn_deleteuser']        = 'Fjern Min Konto';
-$lang['btn_img_backto']        = 'Tilbage til %s';
-$lang['btn_mediaManager']      = 'Vis i Media Manager';
-$lang['loggedinas']            = 'Logget ind som:';
-$lang['user']                  = 'Brugernavn';
-$lang['pass']                  = 'Adgangskode';
-$lang['newpass']               = 'Ny adgangskode';
-$lang['oldpass']               = 'Bekræft gammel adgangskode';
-$lang['passchk']               = 'Gentag ny adgangskode';
-$lang['remember']              = 'Automatisk log ind';
-$lang['fullname']              = 'Fulde navn';
-$lang['email']                 = 'E-mail';
-$lang['profile']               = 'Brugerprofil';
-$lang['badlogin']              = 'Brugernavn eller adgangskode var forkert.';
-$lang['badpassconfirm']        = 'Adgangkode var desværre forkert';
-$lang['minoredit']             = 'Mindre ændringer';
-$lang['draftdate']             = 'Kladde automatisk gemt d.';
-$lang['nosecedit']             = 'Siden blev ændret i mellemtiden, sektions information var for gammel, hentede hele siden i stedet.';
-$lang['regmissing']            = 'Du skal udfylde alle felter.';
-$lang['reguexists']            = 'Dette brugernavn er allerede i brug.';
-$lang['regsuccess']            = 'Du er nu oprettet som bruger. Dit adgangskode bliver sendt til dig i en e-mail.';
-$lang['regsuccess2']           = 'Du er nu oprettet som bruger.';
-$lang['regfail']               = 'Brugeren kunne ikke oprettes.';
-$lang['regmailfail']           = 'Dit adgangskode blev ikke sendt. Kontakt venligst administratoren.';
-$lang['regbadmail']            = 'E-mail-adressen er ugyldig. Kontakt venligst administratoren, hvis du mener dette er en fejl.';
-$lang['regbadpass']            = 'De to adgangskoder er ikke ens, vær venlig at prøve igen.';
-$lang['regpwmail']             = 'Dit adgangskode til DokuWiki';
-$lang['reghere']               = 'Opret en DokuWiki-konto her';
-$lang['profna']                = 'Denne wiki understøtter ikke ændring af profiler';
-$lang['profnochange']          = 'Ingen ændringer, intet modificeret.';
-$lang['profnoempty']           = 'Tomt navn eller e-mail adresse er ikke tilladt.';
-$lang['profchanged']           = 'Brugerprofil opdateret korrekt.';
-$lang['profnodelete']          = 'Denne wiki understøtter ikke sletning af brugere';
-$lang['profdeleteuser']        = 'Slet konto';
-$lang['profdeleted']           = 'Din brugerkonto er blevet slettet fra denne wiki';
-$lang['profconfdelete']        = 'Jeg ønsker at slette min konto fra denne wiki. <br/> Denne handling kan ikke fortrydes.';
-$lang['proffail']              = 'Brugerprofilen blev ikke opdateret.';
-$lang['pwdforget']             = 'Har du glemt dit adgangskode? FÃ¥ en ny';
-$lang['resendna']              = 'Denne wiki understøtter ikke udsendelse af ny adgangskode.';
-$lang['resendpwd']             = 'Vælg en ny adgangskode for';
-$lang['resendpwdmissing']      = 'Du skal udfylde alle felter.';
-$lang['resendpwdnouser']       = 'Vi kan ikke finde denne bruger i vores database.';
-$lang['resendpwdbadauth']      = 'Beklager, denne autoriseringskode er ikke gyldig. Kontroller venligst at du benyttede det fulde link til bekræftelse.';
-$lang['resendpwdconfirm']      = 'En e-mail med et link til bekræftelse er blevet sendt.';
-$lang['resendpwdsuccess']      = 'Din nye adgangskode er blevet sendt med e-mail.';
-$lang['license']               = 'Med mindre andet angivet, vil indhold på denne wiki blive udgivet under følgende licens:';
-$lang['licenseok']             = 'Bemærk - ved at redigere denne side, accepterer du at dit indhold bliver frigivet under følgende licens:';
-$lang['searchmedia']           = 'Søg filnavn';
-$lang['searchmedia_in']        = 'Søg i %s';
-$lang['txt_upload']            = 'Vælg den fil der skal overføres:';
-$lang['txt_filename']          = 'Indtast wikinavn (valgfrit):';
-$lang['txt_overwrt']           = 'Overskriv eksisterende fil';
-$lang['maxuploadsize']         = 'Upload max. %s pr. fil.';
-$lang['lockedby']              = 'Midlertidig låst af:';
-$lang['lockexpire']            = 'Lås udløber kl:.';
-$lang['js']['willexpire']      = 'Din lås på dette dokument udløber om et minut.\nTryk på Forhåndsvisning-knappen for at undgå konflikter.';
-$lang['js']['notsavedyet']     = 'Ugemte ændringer vil blive mistet.
-Fortsæt alligevel?';
-$lang['js']['searchmedia']     = 'Søg efter filer';
-$lang['js']['keepopen']        = 'Hold vindue åbent ved valg';
-$lang['js']['hidedetails']     = 'Skjul detaljer';
-$lang['js']['mediatitle']      = 'Link indstillinger';
-$lang['js']['mediadisplay']    = 'Link type';
-$lang['js']['mediaalign']      = 'Justering';
-$lang['js']['mediasize']       = 'Billede størrelse';
-$lang['js']['mediatarget']     = 'Link destination';
-$lang['js']['mediaclose']      = 'Luk';
-$lang['js']['mediainsert']     = 'Indsæt';
-$lang['js']['mediadisplayimg'] = 'Vis billedet';
-$lang['js']['mediadisplaylnk'] = 'Vis kun linket';
-$lang['js']['mediasmall']      = 'Lille version';
-$lang['js']['mediamedium']     = 'Mellem version';
-$lang['js']['medialarge']      = 'Stor version';
-$lang['js']['mediaoriginal']   = 'Original version';
-$lang['js']['medialnk']        = 'Link til detajle side';
-$lang['js']['mediadirect']     = 'Direkte link til originalen';
-$lang['js']['medianolnk']      = 'Intet link';
-$lang['js']['medianolink']     = 'Link ikke til billedet';
-$lang['js']['medialeft']       = 'Juster billedet til venstre';
-$lang['js']['mediaright']      = 'Juster billedet til højre';
-$lang['js']['mediacenter']     = 'Centreret';
-$lang['js']['medianoalign']    = 'Brug ingen justering';
-$lang['js']['nosmblinks']      = 'Henvisninger til Windows shares virker kun i Microsoft Internet Explorer.
-Du kan stadig kopiere og indsætte linket.';
-$lang['js']['linkwiz']         = 'Guiden til henvisninger';
-$lang['js']['linkto']          = 'Henvis til:';
-$lang['js']['del_confirm']     = 'Slet valgte post(er)?';
-$lang['js']['restore_confirm'] = 'Er du sikker på at du vil genskabe denne version?';
-$lang['js']['media_diff']      = 'Vis forskelle:';
-$lang['js']['media_diff_both'] = 'Side ved Side';
-$lang['js']['media_diff_opacity'] = 'Skin igennem';
-$lang['js']['media_diff_portions'] = 'Skub';
-$lang['js']['media_select']    = 'Vælg filer...';
-$lang['js']['media_upload_btn'] = 'Overfør';
-$lang['js']['media_done_btn']  = 'Færdig';
-$lang['js']['media_drop']      = 'Træk filer hertil for at overføre';
-$lang['js']['media_cancel']    = 'fjern';
-$lang['js']['media_overwrt']   = 'Overskriv eksisterende filer';
-$lang['rssfailed']             = 'Der opstod en fejl ved hentning af dette feed: ';
-$lang['nothingfound']          = 'Søgningen gav intet resultat.';
-$lang['mediaselect']           = 'Vælg mediefil';
-$lang['uploadsucc']            = 'Overførels blev fuldført';
-$lang['uploadfail']            = 'Overførslen fejlede. Der er muligvis problemer med rettighederne.';
-$lang['uploadwrong']           = 'Overførslen blev afvist. Filtypen er ikke tilladt.';
-$lang['uploadexist']           = 'Filen eksisterer allerede.';
-$lang['uploadbadcontent']      = 'Det overført indhold svarer ikke til %s fil-endelsen.';
-$lang['uploadspam']            = 'Overførelsen blev blokeret af spam sortlisten.';
-$lang['uploadxss']             = 'Overførelsen blev blokeret på grund af mulig skadeligt indhold.';
-$lang['uploadsize']            = 'Den overførte fil var for stor (maksimal størrelse %s)';
-$lang['deletesucc']            = 'Filen "%s" er blevet slettet.';
-$lang['deletefail']            = '"%s" kunne ikke slettes - kontroller rettighederne.';
-$lang['mediainuse']            = 'Filen "%s" kan ikke slettes - den er stadig i brug.';
-$lang['namespaces']            = 'Navnerum';
-$lang['mediafiles']            = 'Tilgængelige filer i';
-$lang['accessdenied']          = 'Du har ikke tilladelse til at se denne side.';
-$lang['mediausage']            = 'Brug den følgende syntaks til at henvise til denne fil:';
-$lang['mediaview']             = 'Vis oprindelig fil';
-$lang['mediaroot']             = 'rod';
-$lang['mediaupload']           = 'Overføre en fil til det nuværende navnerum her. For at oprette under-navnerum, tilføj dem til "Overføre som" filnavnet, adskilt af kolontegn.';
-$lang['mediaextchange']        = 'Filtype ændret fra .%s til .%s!';
-$lang['reference']             = 'Henvisning til';
-$lang['ref_inuse']             = 'Filen kan ikke slettes, da den stadig er i brug på følgende sider:';
-$lang['ref_hidden']            = 'Nogle henvisninger er på sider du ikke har læserettigheder til';
-$lang['hits']                  = 'Besøg';
-$lang['quickhits']             = 'Tilsvarende sidenavne';
-$lang['toc']                   = 'Indholdsfortegnelse';
-$lang['current']               = 'nuværende';
-$lang['yours']                 = 'Din version';
-$lang['diff']                  = 'Vis forskelle i forhold til den nuværende udgave';
-$lang['diff2']                 = 'Vis forskelle i forhold til de valgte revisioner';
-$lang['difflink']              = 'Link til denne sammenlinings vising';
-$lang['diff_type']             = 'Vis forskelle:';
-$lang['diff_inline']           = 'Indeni';
-$lang['diff_side']             = 'Side ved side';
-$lang['diffprevrev']           = 'Forrige revision';
-$lang['diffnextrev']           = 'Næste revision';
-$lang['difflastrev']           = 'Sidste revision';
-$lang['diffbothprevrev']       = 'Begge sider forrige revision';
-$lang['diffbothnextrev']       = 'Begge sider næste revision';
-$lang['line']                  = 'Linje';
-$lang['breadcrumb']            = 'Sti:';
-$lang['youarehere']            = 'Du er her:';
-$lang['lastmod']               = 'Sidst ændret:';
-$lang['by']                    = 'af';
-$lang['deleted']               = 'slettet';
-$lang['created']               = 'oprettet';
-$lang['restored']              = 'gammel udgave gendannet (%s)';
-$lang['external_edit']         = 'ekstern redigering';
-$lang['summary']               = 'Resumé af ændrigner';
-$lang['noflash']               = 'Du skal installere <a href="http://www.adobe.com/products/flashplayer/">Adobe Flash Player</a> for at kunne se dette indhold.';
-$lang['download']              = 'Hent kodestykke';
-$lang['tools']                 = 'Værktøjer';
-$lang['user_tools']            = 'Brugerværktøjer';
-$lang['site_tools']            = 'Webstedsværktøjer';
-$lang['page_tools']            = 'Sideværktøjer';
-$lang['skip_to_content']       = 'hop til indhold';
-$lang['sidebar']               = 'Sidebjælke';
-$lang['mail_newpage']          = 'side tilføjet:';
-$lang['mail_changed']          = 'side ændret:';
-$lang['mail_subscribe_list']   = 'sider ændret i navnerum:';
-$lang['mail_new_user']         = 'Ny bruger';
-$lang['mail_upload']           = 'fil overført:';
-$lang['changes_type']          = 'Vis ændringer af';
-$lang['pages_changes']         = 'Sider';
-$lang['media_changes']         = 'Mediefiler';
-$lang['both_changes']          = 'BÃ¥de sider og medie filer';
-$lang['qb_bold']               = 'Fed';
-$lang['qb_italic']             = 'Kursiv';
-$lang['qb_underl']             = 'Understregning';
-$lang['qb_code']               = 'Skrivemaskine tekst';
-$lang['qb_strike']             = 'Gennemstregning';
-$lang['qb_h1']                 = 'Niveau 1 overskrift';
-$lang['qb_h2']                 = 'Niveau 2 overskrift';
-$lang['qb_h3']                 = 'Niveau 3 overskrift';
-$lang['qb_h4']                 = 'Niveau 4 overskrift';
-$lang['qb_h5']                 = 'Niveau 5 overskrift';
-$lang['qb_h']                  = 'Overskrift';
-$lang['qb_hs']                 = 'Vælg overskrift';
-$lang['qb_hplus']              = 'Højere overskriftsniveau';
-$lang['qb_hminus']             = 'Lavere overskriftsniveau';
-$lang['qb_hequal']             = 'Samme overskriftsniveau';
-$lang['qb_link']               = 'Intern henvisning';
-$lang['qb_extlink']            = 'Ekstern henvisning';
-$lang['qb_hr']                 = 'Vandret linje';
-$lang['qb_ol']                 = 'Nummereret liste';
-$lang['qb_ul']                 = 'Punktopstilling';
-$lang['qb_media']              = 'Tilføj billeder og andre filer';
-$lang['qb_sig']                = 'Indsæt signatur';
-$lang['qb_smileys']            = 'Smileys';
-$lang['qb_chars']              = 'Specialtegn';
-$lang['upperns']               = 'GÃ¥ til overordnet navnerum';
-$lang['metaedit']              = 'Rediger metadata';
-$lang['metasaveerr']           = 'Fejl under skrivning af metadata';
-$lang['metasaveok']            = 'Metadata gemt';
-$lang['img_title']             = 'Titel:';
-$lang['img_caption']           = 'Billedtekst:';
-$lang['img_date']              = 'Dato:';
-$lang['img_fname']             = 'Filnavn:';
-$lang['img_fsize']             = 'Størrelse:';
-$lang['img_artist']            = 'Fotograf:';
-$lang['img_copyr']             = 'Ophavsret:';
-$lang['img_format']            = 'Format:';
-$lang['img_camera']            = 'Kamera:';
-$lang['img_keywords']          = 'Emneord:';
-$lang['img_width']             = 'Bredde:';
-$lang['img_height']            = 'Højde:';
-$lang['subscr_subscribe_success'] = 'Tilføjede %s til abonnement listen for %s';
-$lang['subscr_subscribe_error'] = 'Fejl ved tilføjelse af %s til abonnement listen for %s';
-$lang['subscr_subscribe_noaddress'] = 'Der er ikke nogen addresse forbundet til din bruger, så du kan ikke blive tilføjet til abonnement listen';
-$lang['subscr_unsubscribe_success'] = 'Fjernede %s fra abonnement listen for %s';
-$lang['subscr_unsubscribe_error'] = 'Fejl ved fjernelse af %s fra abonnement listen for %s';
-$lang['subscr_already_subscribed'] = '%s har allerede et abonnement for listen %s';
-$lang['subscr_not_subscribed'] = '%s har ikke et abonnement for listen %s';
-$lang['subscr_m_not_subscribed'] = 'Du har ikke et abonnement til denne side eller navnerum';
-$lang['subscr_m_new_header']   = 'Tilføj abonnement';
-$lang['subscr_m_current_header'] = 'Nuværende abonnementer';
-$lang['subscr_m_unsubscribe']  = 'Fjern abonnement';
-$lang['subscr_m_subscribe']    = 'Abonér';
-$lang['subscr_m_receive']      = 'Modtag';
-$lang['subscr_style_every']    = 'email på hver ændring';
-$lang['subscr_style_digest']   = 'opsummeringsmail med ændringer for hver side (hver %.2f dage)';
-$lang['subscr_style_list']     = 'list af ændrede sider siden sidste email (hver %.2f dage)';
-$lang['authtempfail']          = 'Brugervalidering er midlertidigt ude af drift. Hvis dette er vedvarende, kontakt venligst wikiens administrator.';
-$lang['i_chooselang']          = 'Vælg dit sprog';
-$lang['i_installer']           = 'DokuWiki Installer';
-$lang['i_wikiname']            = 'Wiki Navn';
-$lang['i_enableacl']           = 'Brug ACL (foreslået)';
-$lang['i_superuser']           = 'Superbruger';
-$lang['i_problems']            = 'Installeren fandt nogle problemer, vist nedenunder. Du kan ikke fortsætte før du har rettet dem.';
-$lang['i_modified']            = 'Af sikkerheds hensyn vil dette script kun virke på en ny og umodificeret Dokuwiki installation.
-Du burde enten gen-udpakke filerne fra den hentede pakke eller tjekke den fuldstændige
-<a href="http://dokuwiki.org/install">DokuWiki installations instruktioner</a>';
-$lang['i_funcna']              = 'PHP funtionen <code>%s</code> er ikke tilgængelig. Måske har din udbyder slået det fra af en eller anden grund?';
-$lang['i_phpver']              = 'Din PHP version <code>%s</code> er mindre en den nødvendige <code>%s</code>. Du er nød til at opgradere din PHP installation.';
-$lang['i_mbfuncoverload']      = 'mbstring.func_overload skal være deaktiveret i php.ini for at køre DokuWiki.';
-$lang['i_permfail']            = 'DokuWiki kan ikke skrive til <code>%s</code>. Du er nød til at rette tilladelses indstillingerne for denne mappe!';
-$lang['i_confexists']          = '<code>%s</code> eksisterer allerede';
-$lang['i_writeerr']            = 'Kunne ikke oprette <code>%s</code>. Du bliver nød til at tjekke mappe/fil- tilladelserne og oprette filen manuelt.';
-$lang['i_badhash']             = 'uigenkendelig eller modificeret dokuwiki.php (hash=<code>%s</code>)';
-$lang['i_badval']              = '<code>%s</code> - ulovlig eller tom værdi';
-$lang['i_success']             = 'Konfigurationen fulførtedes med success.  Du kan nu slette install.php filen. Fortsætte til <a href="doku.php?id=wiki:welcome">din nye DokuWiki</a>.';
-$lang['i_failure']             = 'Nogle fejl forekom mens konfigurations filerne skulle skrives. Du er mulighvis nød til at fixe dem manuelt før du kan bruge <a href="doku.php?id=wiki:welcome">din nye DokuWiki</a>.';
-$lang['i_policy']              = 'Begyndende ACL politik';
-$lang['i_pol0']                = 'Åben Wiki (alle kan læse, skrive og uploade)';
-$lang['i_pol1']                = 'Offentlig Wiki (alle kan læse, kun registrerede brugere kan skrive og overføre)';
-$lang['i_pol2']                = 'Lukket Wiki (kun for registerede brugere kan læse, skrive og overføre)';
-$lang['i_allowreg']            = 'Tillad at brugere kan registrere sig selv';
-$lang['i_retry']               = 'Forsøg igen';
-$lang['i_license']             = 'Vælg venligst licensen du vil tilføje dit indhold under:';
-$lang['i_license_none']        = 'Vis ikke licensinformationer';
-$lang['i_pop_field']           = 'Hjælp os venligst med at forbedre oplevelsen af DokuWiki:';
-$lang['i_pop_label']           = 'Send anonymt brugsdata til DokuWikis udviklere, én gang om måneden';
-$lang['recent_global']         = 'Du ser lige nu ændringerne i <b>%s</b> navnerummet. Du kan også <a href="%s">se de sidste ændringer for hele wiki siden </a>';
-$lang['years']                 = '%d år siden';
-$lang['months']                = '%d måned siden';
-$lang['weeks']                 = '%d uge siden';
-$lang['days']                  = '%d dage siden';
-$lang['hours']                 = '%d timer siden';
-$lang['minutes']               = '%d minutter siden';
-$lang['seconds']               = '%d sekunder siden';
-$lang['wordblock']             = 'Din ændring blev ikke gemt da den indeholder blokeret tekst (spam).';
-$lang['media_uploadtab']       = 'Upload';
-$lang['media_searchtab']       = 'Søg';
-$lang['media_file']            = 'Fil';
-$lang['media_viewtab']         = 'Vis';
-$lang['media_edittab']         = 'Rediger';
-$lang['media_historytab']      = 'Historie';
-$lang['media_list_thumbs']     = 'Thumbnails';
-$lang['media_list_rows']       = 'Rækker';
-$lang['media_sort_name']       = 'Navn';
-$lang['media_sort_date']       = 'Dato';
-$lang['media_namespaces']      = 'Vælg navneområde';
-$lang['media_files']           = 'Filer i %s';
-$lang['media_upload']          = 'Upload til %s';
-$lang['media_search']          = 'Søg i %s';
-$lang['media_view']            = '%s';
-$lang['media_viewold']         = '%s ved %s';
-$lang['media_edit']            = 'Rediger %s';
-$lang['media_history']         = 'Historie for %s';
-$lang['media_meta_edited']     = 'metadata redigered';
-$lang['media_perm_read']       = 'Du har ikke nok rettigheder til at læse filer.';
-$lang['media_perm_upload']     = 'Du har ikke nok rettigheder til at uploade filer.';
-$lang['media_update']          = 'Upload ny version';
-$lang['media_restore']         = 'Genskab denne version';
-$lang['media_acl_warning']     = 'Listen er måske ikke komplet pga. ACL restriktioner og skjulte sider.';
-$lang['currentns']             = 'Nuværende navnerum';
-$lang['searchresult']          = 'Søgsresultat';
-$lang['plainhtml']             = 'Ren HTML';
-$lang['wikimarkup']            = 'Wiki Opmærkning';
-$lang['page_nonexist_rev']     = 'Siden blev ikke fundet ved %s. Den blev efterfølgende oprettet ved <a href="%s">%s</a>.';
-$lang['email_signature_text']  = 'Denne e-mail blev genereret af DokuWiki på
-@DOKUWIKIURL@';
diff --git a/wiki/inc/lang/da/locked.txt b/wiki/inc/lang/da/locked.txt
deleted file mode 100644
index 74b677d..0000000
--- a/wiki/inc/lang/da/locked.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== LÃ¥st Dokument ======
-
-Dette dokument er midlertidigt låst af en anden bruger. Vent venligst til brugeren er færdig med at redigere dokumentet, eller låsen udløber.
diff --git a/wiki/inc/lang/da/login.txt b/wiki/inc/lang/da/login.txt
deleted file mode 100644
index 039bb0a..0000000
--- a/wiki/inc/lang/da/login.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Login ======
-
-Du er ikke logget ind! Indtast brugernavn og adgangskode. Din browser skal have tilladt cookies for at du kan logge ind.
diff --git a/wiki/inc/lang/da/mailtext.txt b/wiki/inc/lang/da/mailtext.txt
deleted file mode 100644
index bea9cd3..0000000
--- a/wiki/inc/lang/da/mailtext.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-Et dokument i din DokuWiki blev ændret eller tilføjet. Her er detajlerne:
-
-Dato               : @DATE@
-Browser            : @BROWSER@
-IP-adresse         : @IPADDRESS@
-Hostnavn           : @HOSTNAME@
-Gammel udgave      : @OLDPAGE@
-Ny udgave          : @NEWPAGE@
-Redigerings resumé : @SUMMARY@
-Bruger             : @USER@
-
-@DIFF@
diff --git a/wiki/inc/lang/da/mailwrap.html b/wiki/inc/lang/da/mailwrap.html
deleted file mode 100644
index d257190..0000000
--- a/wiki/inc/lang/da/mailwrap.html
+++ /dev/null
@@ -1,13 +0,0 @@
-<html>
-<head>
-<title>@TITLE@</title>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-</head>
-<body>
-
-@HTMLBODY@
-
-<br /><hr />
-<small>@EMAILSIGNATURE@</small>
-</body>
-</html>
\ No newline at end of file
diff --git a/wiki/inc/lang/da/newpage.txt b/wiki/inc/lang/da/newpage.txt
deleted file mode 100644
index 1d602c0..0000000
--- a/wiki/inc/lang/da/newpage.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Dette dokument eksisterer ikke (endnu) ======
-
-Du har fulgt en henvisning til et dokument der ikke eksisterer (endnu). Du kan oprette dokumentet ved at trykke på knappen **''[Opret dette dokument]''**.
diff --git a/wiki/inc/lang/da/norev.txt b/wiki/inc/lang/da/norev.txt
deleted file mode 100644
index aa68962..0000000
--- a/wiki/inc/lang/da/norev.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Den valgte udgave findes ikke ======
-
-Den valgte udgave af dokumentet findes ikke! Tryk på knappen **''[Gamle udgaver]''** for at se en liste af gamle udgaver af dette dokument.
-
diff --git a/wiki/inc/lang/da/password.txt b/wiki/inc/lang/da/password.txt
deleted file mode 100644
index b129bb9..0000000
--- a/wiki/inc/lang/da/password.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-Hej @FULLNAME@!
-
-Her er dine brugeroplysninger @TITLE@ at @DOKUWIKIURL@
-
-Brugernavn  : @LOGIN@
-Adgangskode : @PASSWORD@
diff --git a/wiki/inc/lang/da/preview.txt b/wiki/inc/lang/da/preview.txt
deleted file mode 100644
index 23e65e8..0000000
--- a/wiki/inc/lang/da/preview.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Forhåndsvisning ======
-
-Dette er en forhåndsvisning af hvordan dokumentet vil se ud. Husk: Det er //**IKKE**// gemt endnu! Hvis det ser godt ud, så tryk på knappen **''[Gem]''**
-
diff --git a/wiki/inc/lang/da/pwconfirm.txt b/wiki/inc/lang/da/pwconfirm.txt
deleted file mode 100644
index 25c20a4..0000000
--- a/wiki/inc/lang/da/pwconfirm.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-Hej @FULLNAME@!
-
-Nogen har bedt om et nyt password til dit @TITLE@
-login på @DOKUWIKIURL@
-
-Hvis du ikke bad om dette, så ignorer venligst denne email.
-
-For at bekræfte at det var dig der bad om dette, benyt venligst det følgende henvisning.
-
-@CONFIRM@
diff --git a/wiki/inc/lang/da/read.txt b/wiki/inc/lang/da/read.txt
deleted file mode 100644
index 49f6583..0000000
--- a/wiki/inc/lang/da/read.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-Dette dokument kan kun læses. Du kan se kildekoden, men ikke gemme ændringer i det. Hvis du mener at dette er en fejl, så skriv det venligst på [[wiki:fejl-oversigt]].
-
diff --git a/wiki/inc/lang/da/recent.txt b/wiki/inc/lang/da/recent.txt
deleted file mode 100644
index c44fa36..0000000
--- a/wiki/inc/lang/da/recent.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== Nye ændringer ======
-
-Følgende dokumenter er blevet ændret for nylig.
-
-
diff --git a/wiki/inc/lang/da/register.txt b/wiki/inc/lang/da/register.txt
deleted file mode 100644
index 4ff2ed1..0000000
--- a/wiki/inc/lang/da/register.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Opret en wiki-konto ======
-
-Udfyld nedenstånde skema for at oprette en konto i denne wiki. Sørg for at bruge en **gyldig e-mail-adresse** - dit adgangskode bliver sendt til dig. Dit brugernavn skal være et gyldigt [[doku>pagename|dokumentnavn]].
-
diff --git a/wiki/inc/lang/da/registermail.txt b/wiki/inc/lang/da/registermail.txt
deleted file mode 100644
index 8ce3b54..0000000
--- a/wiki/inc/lang/da/registermail.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-En ny bruger har registreret. Her er detaljerne:
-
-Brugernavn : @NEWUSER@
-Navn       : @NEWNAME@
-E-mail     : @NEWEMAIL@
-
-Dato       : @DATE@
-Browser    : @BROWSER@
-IP-adresse : @IPADDRESS@
-Værtsnavn  : @HOSTNAME@
diff --git a/wiki/inc/lang/da/resendpwd.txt b/wiki/inc/lang/da/resendpwd.txt
deleted file mode 100644
index e96861e..0000000
--- a/wiki/inc/lang/da/resendpwd.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Send nyt password ======
-
-Udfyld alle nedenstående felter for at få tilsendt et nyt password til denne wiki. Dit nye password vil blive sendt til den opgivne e-mail-adresse. Brugernavnet bør være dit wiki brugernavn.
diff --git a/wiki/inc/lang/da/resetpwd.txt b/wiki/inc/lang/da/resetpwd.txt
deleted file mode 100644
index e0823db..0000000
--- a/wiki/inc/lang/da/resetpwd.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Vælg ny adgangskode ======
-
-Indtast venligst en ny adgangskode for din konto på denne wiki.
\ No newline at end of file
diff --git a/wiki/inc/lang/da/revisions.txt b/wiki/inc/lang/da/revisions.txt
deleted file mode 100644
index 08f6f20..0000000
--- a/wiki/inc/lang/da/revisions.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Gamle udgaver ======
-
-Her er de gamle udgaver af dette dokument. Du kan vende tilbage til en tidligere udgave af dokumentet ved at vælge det nedenfor, trykke på knappen **''[Rediger dette dokument]''**, og til sidst gemme dokumentet.
diff --git a/wiki/inc/lang/da/searchpage.txt b/wiki/inc/lang/da/searchpage.txt
deleted file mode 100644
index c444785..0000000
--- a/wiki/inc/lang/da/searchpage.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Søgning ======
-
-Du kan se resultaterne af din søgning nedenunder. @CREATEPAGEINFO@
-
diff --git a/wiki/inc/lang/da/showrev.txt b/wiki/inc/lang/da/showrev.txt
deleted file mode 100644
index 3d48903..0000000
--- a/wiki/inc/lang/da/showrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**Dette er en gammel udgave af dokumentet!**
-----
diff --git a/wiki/inc/lang/da/stopwords.txt b/wiki/inc/lang/da/stopwords.txt
deleted file mode 100644
index 0fb9267..0000000
--- a/wiki/inc/lang/da/stopwords.txt
+++ /dev/null
@@ -1,87 +0,0 @@
-# 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/
-alle
-andet
-andre
-begge
-den
-denne
-der
-deres
-det
-dette
-dig
-din
-dog
-eller
-end
-ene
-eneste
-enhver
-fem
-fire
-flere
-fleste
-for
-fordi
-forrige
-fra
-før
-god
-han
-hans
-har
-hendes
-her
-hun
-hvad
-hvem
-hver
-hvilken
-hvis
-hvor
-hvordan
-hvorfor
-hvornår
-ikke
-ind
-ingen
-intet
-jeg
-jeres
-kan
-kom
-kommer
-lav
-lidt
-lille
-man
-mand
-mange
-med
-meget
-men
-mens
-mere
-mig
-ned
-nogen
-noget
-nyt
-nær
-næste
-næsten
-otte
-over
-seks
-ses
-som
-stor
-store
-syv
-til
-tre
-var
-www
\ No newline at end of file
diff --git a/wiki/inc/lang/da/subscr_digest.txt b/wiki/inc/lang/da/subscr_digest.txt
deleted file mode 100644
index 06a28d6..0000000
--- a/wiki/inc/lang/da/subscr_digest.txt
+++ /dev/null
@@ -1,16 +0,0 @@
-Hej,
-
-Siden @PAGE@ i @TITLE@ wikien er blevet ændret.
-Her er ændringerne:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-Gammel Revision: @OLDPAGE@
-Ny Revision: @NEWPAGE@
-
-For at stoppe notifikationer om sideændringer, login på wikien på
-@DOKUWIKIURL@ og besøg så
-@SUBSCRIBE@
-for at afmelde side og/eller navneområde ændringer.
diff --git a/wiki/inc/lang/da/subscr_form.txt b/wiki/inc/lang/da/subscr_form.txt
deleted file mode 100644
index 9de6565..0000000
--- a/wiki/inc/lang/da/subscr_form.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Abonnementadministration ======
-
-Denne side gør det muligt for dig at administrere dine abonnementer for den nuværende side eller navnerum.
\ No newline at end of file
diff --git a/wiki/inc/lang/da/subscr_list.txt b/wiki/inc/lang/da/subscr_list.txt
deleted file mode 100644
index 62f8f66..0000000
--- a/wiki/inc/lang/da/subscr_list.txt
+++ /dev/null
@@ -1,13 +0,0 @@
-Hej,
-
-Sider i navneområdet @PAGE@ i @TITLE@ wikien er blevet ændret.
-Her er de ændrede sider:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-For at stoppe notifikationer om sideændringer, login på wikien på
-@DOKUWIKIURL@ og besøg så
-@SUBSCRIBE@
-for at afmelde side og/eller navneområde ændringer.
diff --git a/wiki/inc/lang/da/subscr_single.txt b/wiki/inc/lang/da/subscr_single.txt
deleted file mode 100644
index fb50523..0000000
--- a/wiki/inc/lang/da/subscr_single.txt
+++ /dev/null
@@ -1,19 +0,0 @@
-Hej!
-
-Siden @PAGE@ i wikien @TITLE@ er blevet ændret.
-Her er ændringerne:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-Dato : @DATE@
-Bruger : @USER@
-Summering: @SUMMARY@
-Gammel Revision: @OLDPAGE@
-Ny Revision: @NEWPAGE@
-
-For at slå side notifikationer fra, skal du logge ind på
-@DOKUWIKIURL@ og besøge
-@SUBSCRIBE@
-og slå abonnoment for side / navnerum ændringer fra.
diff --git a/wiki/inc/lang/da/updateprofile.txt b/wiki/inc/lang/da/updateprofile.txt
deleted file mode 100644
index 2c6ce3f..0000000
--- a/wiki/inc/lang/da/updateprofile.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Opdater din kontos profil ======
-
-Du behøver kun at udfylde de felter du ønsker at ændre. Du kan ikke ændre dit brugernavn.
diff --git a/wiki/inc/lang/da/uploadmail.txt b/wiki/inc/lang/da/uploadmail.txt
deleted file mode 100644
index 87a0875..0000000
--- a/wiki/inc/lang/da/uploadmail.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-En fil blev overføret til din DokuWiki. Her er detaljerne:
-
-Fil         : @MEDIA@
-Dato        : @DATE@
-Browser     : @BROWSER@
-IP-adresse  : @IPADDRESS@
-Værtsnavn   : @HOSTNAME@
-Størrelse   : @SIZE@
-MIME Type   : @MIME@
-Bruger      : @USER@
diff --git a/wiki/inc/lang/de-informal/admin.txt b/wiki/inc/lang/de-informal/admin.txt
deleted file mode 100644
index c52f343..0000000
--- a/wiki/inc/lang/de-informal/admin.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Administration ======
-
-Folgende administrative Aufgaben stehen in DokuWiki zur Verfügung.
-
diff --git a/wiki/inc/lang/de-informal/adminplugins.txt b/wiki/inc/lang/de-informal/adminplugins.txt
deleted file mode 100644
index a0ae21f..0000000
--- a/wiki/inc/lang/de-informal/adminplugins.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Zusätzliche Plugins =====
\ No newline at end of file
diff --git a/wiki/inc/lang/de-informal/backlinks.txt b/wiki/inc/lang/de-informal/backlinks.txt
deleted file mode 100644
index aae4c55..0000000
--- a/wiki/inc/lang/de-informal/backlinks.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== Backlinks ======
-
-Dies ist eine Liste der Seiten, die zurück zur momentanen Seite linken.
-
-
diff --git a/wiki/inc/lang/de-informal/conflict.txt b/wiki/inc/lang/de-informal/conflict.txt
deleted file mode 100644
index eec3450..0000000
--- a/wiki/inc/lang/de-informal/conflict.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-====== Eine neuere Version existiert ======
-
-Eine neuere Version des aktuell in Bearbeitung befindlichen Dokuments existiert. Das heißt, jemand hat gleichzeitig an der selben Seite gearbeitet und zuerst gespeichert.
-
-Die unten aufgeführten Unterschiede können bei der Entscheidung helfen, welchem Dokument Vorrang gewährt wird. Wähle **''[Speichern]''** zum Sichern deiner Version oder **''[Abbrechen]''**,  um deine Version zu verwerfen und die zuerst gespeicherte Seite zu behalten.
-
diff --git a/wiki/inc/lang/de-informal/denied.txt b/wiki/inc/lang/de-informal/denied.txt
deleted file mode 100644
index 99004f6..0000000
--- a/wiki/inc/lang/de-informal/denied.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Zugang verweigert ======
-
-Du hast nicht die erforderliche Berechtigung, um diese Aktion durchzuführen.
-
diff --git a/wiki/inc/lang/de-informal/diff.txt b/wiki/inc/lang/de-informal/diff.txt
deleted file mode 100644
index 82fbbc2..0000000
--- a/wiki/inc/lang/de-informal/diff.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== Unterschiede ======
-
-Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
-
-
diff --git a/wiki/inc/lang/de-informal/draft.txt b/wiki/inc/lang/de-informal/draft.txt
deleted file mode 100644
index e56dbe0..0000000
--- a/wiki/inc/lang/de-informal/draft.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-====== Entwurf gefunden ======
-
-Deine letzte Bearbeitungssitzung wurde nicht ordnungsgemäß abgeschlossen. DokuWiki hat während deiner Arbeit automatisch einen Zwischenentwurf gespeichert, den du jetzt nutzen kannst, um deine Arbeit fortzusetzen. Unten siehst du die Daten, die bei deiner letzten Sitzung gespeichert wurden.
-
-Bitte entscheide dich, ob du den Entwurf //wiederherstellen// oder //löschen// willst oder ob du die Bearbeitung abbrechen möchtest.
-
diff --git a/wiki/inc/lang/de-informal/edit.txt b/wiki/inc/lang/de-informal/edit.txt
deleted file mode 100644
index 28a7641..0000000
--- a/wiki/inc/lang/de-informal/edit.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-Bitte bearbeite dieses Dokument nur, wenn du es **verbessern** kannst.
-
-Nach dem Bearbeiten den **''[Speichern]''**-Knopf drücken. Siehe [[wiki:syntax]] zur Wiki-Syntax. Zum Testen bitte erst im [[playground:playground|Spielplatz]] üben.
-
diff --git a/wiki/inc/lang/de-informal/editrev.txt b/wiki/inc/lang/de-informal/editrev.txt
deleted file mode 100644
index 6c1f642..0000000
--- a/wiki/inc/lang/de-informal/editrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**Eine ältere Version des Dokuments wurde geladen!** Beim Speichern wird eine neue Version des Dokuments mit diesem Inhalt erstellt.
-----
\ No newline at end of file
diff --git a/wiki/inc/lang/de-informal/index.txt b/wiki/inc/lang/de-informal/index.txt
deleted file mode 100644
index fa8dc46..0000000
--- a/wiki/inc/lang/de-informal/index.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Übersicht ======
-
-Dies ist eine Übersicht über alle vorhandenen Seiten und [[doku>namespaces|Namensräume]].
-
diff --git a/wiki/inc/lang/de-informal/install.html b/wiki/inc/lang/de-informal/install.html
deleted file mode 100644
index 19fae80..0000000
--- a/wiki/inc/lang/de-informal/install.html
+++ /dev/null
@@ -1,27 +0,0 @@
-<p>Diese Seite hilft dir bei der Erstinstallation und Konfiguration von
-<a href="http://dokuwiki.org">DokuWiki</a>. Zusätzliche Informationen zu
-diesem Installationsskript findest du auf der entsprechenden
-<a href="http://dokuwiki.org/installer">Hilfe-Seite</a> (en).</p>
-
-<p>DokuWiki verwendet normale Dateien für das Speichern von Wikiseiten und
-anderen Informationen (Bilder, Suchindizes, alte Versionen usw.).
-Um DokuWiki betreiben zu können, <strong>muss</strong> Schreibzugriff auf die
-Verzeichnisse bestehen, in denen DokuWiki diese Dateien ablegt. Dieses
-Installationsprogramm kann diese Rechte nicht für dich setzen. Du musst dies
-manuell auf einer Kommando-Shell oder, falls du DokuWiki bei einem Fremdanbieter
-hostest, über FTP oder ein entsprechendes Werkzeug (z.B. cPanel) durchführen.</p>
-
-<p>Dieses Skript hilft dir beim ersten Einrichten des Zugangsschutzes
-(<abbr title="access control list">ACL</abbr>) von DokuWiki, welcher eine
-Administratoranmeldung und damit Zugang zum Administrationsmenü ermöglicht.
-Dort kannst du dann weitere Tätigkeiten wie das Installieren von Plugins, dass
-Verwalten von Benutzern und das Ändern von Konfigurationseinstellungen durchführen.
-Das Benutzen der Zugangskontrolle ist nicht zwingend erforderlich, es erleichtert aber
-die Administration von DokuWiki.</p>
-
-<p>Erfahrene Anwender oder Benutzer mit speziellen Konfigurationsbedürfnissen sollten
-die folgenden Links nutzen, um sich über
-<a href="http://dokuwiki.org/install">Installation</a>
-und <a href="http://dokuwiki.org/config">Konfiguration</a> zu
-informieren.</p>
-
diff --git a/wiki/inc/lang/de-informal/jquery.ui.datepicker.js b/wiki/inc/lang/de-informal/jquery.ui.datepicker.js
deleted file mode 100644
index a677908..0000000
--- a/wiki/inc/lang/de-informal/jquery.ui.datepicker.js
+++ /dev/null
@@ -1,37 +0,0 @@
-/* German initialisation for the jQuery UI date picker plugin. */
-/* Written by Milian Wolff (mail@milianw.de). */
-( function( factory ) {
-	if ( typeof define === "function" && define.amd ) {
-
-		// AMD. Register as an anonymous module.
-		define( [ "../widgets/datepicker" ], factory );
-	} else {
-
-		// Browser globals
-		factory( jQuery.datepicker );
-	}
-}( function( datepicker ) {
-
-datepicker.regional.de = {
-	closeText: "Schließen",
-	prevText: "&#x3C;Zurück",
-	nextText: "Vor&#x3E;",
-	currentText: "Heute",
-	monthNames: [ "Januar","Februar","März","April","Mai","Juni",
-	"Juli","August","September","Oktober","November","Dezember" ],
-	monthNamesShort: [ "Jan","Feb","Mär","Apr","Mai","Jun",
-	"Jul","Aug","Sep","Okt","Nov","Dez" ],
-	dayNames: [ "Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag" ],
-	dayNamesShort: [ "So","Mo","Di","Mi","Do","Fr","Sa" ],
-	dayNamesMin: [ "So","Mo","Di","Mi","Do","Fr","Sa" ],
-	weekHeader: "KW",
-	dateFormat: "dd.mm.yy",
-	firstDay: 1,
-	isRTL: false,
-	showMonthAfterYear: false,
-	yearSuffix: "" };
-datepicker.setDefaults( datepicker.regional.de );
-
-return datepicker.regional.de;
-
-} ) );
diff --git a/wiki/inc/lang/de-informal/lang.php b/wiki/inc/lang/de-informal/lang.php
deleted file mode 100644
index e4e5b4f..0000000
--- a/wiki/inc/lang/de-informal/lang.php
+++ /dev/null
@@ -1,358 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author F. Mueller-Donath <j.felix@mueller-donath.de>
- * @author Andreas Gohr <andi@splitbrain.org>
- * @author Christof <gagi@fin.de>
- * @author Anika Henke <anika@selfthinker.org>
- * @author Esther Brunner <esther@kaffeehaus.ch>
- * @author Matthias Grimm <matthiasgrimm@users.sourceforge.net>
- * @author Michael Klier <chi@chimeric.de>
- * @author Leo Moll <leo@yeasoft.com>
- * @author Florian Anderiasch <fa@art-core.org>
- * @author Robin Kluth <commi1993@gmail.com>
- * @author Arne Pelka <mail@arnepelka.de>
- * @author Alexander Fischer <tbanus@os-forge.net>
- * @author Juergen Schwarzer <jschwarzer@freenet.de>
- * @author Marcel Metz <marcel_metz@gmx.de>
- * @author Matthias Schulte <dokuwiki@lupo49.de>
- * @author Christian Wichmann <nospam@zone0.de>
- * @author Pierre Corell <info@joomla-praxis.de>
- * @author Frank Loizzi <contact@software.bacal.de>
- * @author Volker Bödker <volker@boedker.de>
- * @author Janosch <janosch@moinzen.de>
- * @author rnck <dokuwiki@rnck.de>
- */
-$lang['encoding']              = 'utf-8';
-$lang['direction']             = 'ltr';
-$lang['doublequoteopening']    = '„';
-$lang['doublequoteclosing']    = '“';
-$lang['singlequoteopening']    = '‚';
-$lang['singlequoteclosing']    = '‘';
-$lang['apostrophe']            = '’';
-$lang['btn_edit']              = 'Diese Seite bearbeiten';
-$lang['btn_source']            = 'Zeige Quelltext';
-$lang['btn_show']              = 'Seite anzeigen';
-$lang['btn_create']            = 'Seite anlegen';
-$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_older']             = 'ältere Änderungen >>';
-$lang['btn_revs']              = 'Ältere Versionen';
-$lang['btn_recent']            = 'Letzte Änderungen';
-$lang['btn_upload']            = 'Hochladen';
-$lang['btn_cancel']            = 'Abbrechen';
-$lang['btn_index']             = 'Übersicht';
-$lang['btn_secedit']           = 'Bearbeiten';
-$lang['btn_login']             = 'Anmelden';
-$lang['btn_logout']            = 'Abmelden';
-$lang['btn_admin']             = 'Admin';
-$lang['btn_update']            = 'Updaten';
-$lang['btn_delete']            = 'Löschen';
-$lang['btn_back']              = 'Zurück';
-$lang['btn_backlink']          = 'Links hierher';
-$lang['btn_subscribe']         = 'Aboverwaltung';
-$lang['btn_profile']           = 'Benutzerprofil';
-$lang['btn_reset']             = 'Zurücksetzen';
-$lang['btn_resendpwd']         = 'Setze neues Passwort';
-$lang['btn_draft']             = 'Entwurf bearbeiten';
-$lang['btn_recover']           = 'Entwurf wiederherstellen';
-$lang['btn_draftdel']          = 'Entwurf löschen';
-$lang['btn_revert']            = 'Wiederherstellen';
-$lang['btn_register']          = 'Registrieren';
-$lang['btn_apply']             = 'Übernehmen';
-$lang['btn_media']             = 'Medien-Manager';
-$lang['btn_deleteuser']        = 'Benutzerprofil löschen';
-$lang['btn_img_backto']        = 'Zurück zu %s';
-$lang['btn_mediaManager']      = 'Im Medien-Manager anzeigen';
-$lang['loggedinas']            = 'Angemeldet als:';
-$lang['user']                  = 'Benutzername';
-$lang['pass']                  = 'Passwort';
-$lang['newpass']               = 'Neues Passwort';
-$lang['oldpass']               = 'Bestätigen (Altes Passwort)';
-$lang['passchk']               = 'Passwort erneut eingeben';
-$lang['remember']              = 'Angemeldet bleiben';
-$lang['fullname']              = 'Voller Name';
-$lang['email']                 = 'E-Mail';
-$lang['profile']               = 'Benutzerprofil';
-$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, da das Sektionsinfo veraltet ist. Die ganze Seite wird stattdessen geladen.';
-$lang['regmissing']            = 'Alle Felder müssen ausgefüllt werden';
-$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.';
-$lang['regfail']               = 'Der Benutzer konnte nicht erstellt werden.';
-$lang['regmailfail']           = 'Offenbar ist ein Fehler beim Versenden der Passwortmail aufgetreten. Bitte wende dich an den Wiki-Admin.';
-$lang['regbadmail']            = 'Die angegebene Mail-Adresse scheint ungültig zu sein. Falls dies ein Fehler ist, wende dich bitte an den Wiki-Admin.';
-$lang['regbadpass']            = 'Die beiden eingegeben Passwörter stimmen nicht überein. Bitte versuche es noch einmal.';
-$lang['regpwmail']             = 'Ihr DokuWiki-Passwort';
-$lang['reghere']               = 'Du hast noch keinen Zugang? Hier registrieren';
-$lang['profna']                = 'Änderung des Benutzerprofils in diesem Wiki nicht möglich.';
-$lang['profnochange']          = 'Keine Änderungen, nichts zu tun.';
-$lang['profnoempty']           = 'Es muss ein Name oder eine E-Mail Adresse angegeben werden.';
-$lang['profchanged']           = 'Benutzerprofil erfolgreich geändert.';
-$lang['profnodelete']          = 'Dieses Wiki unterstützt nicht das Löschen von Benutzern.';
-$lang['profdeleteuser']        = 'Benutzerprofil löschen';
-$lang['profdeleted']           = 'Dein 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['proffail']              = 'Das Benutzerprofil wurde nicht aktualisiert.';
-$lang['pwdforget']             = 'Passwort vergessen? Fordere 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 du musst alle Felder ausfüllen.';
-$lang['resendpwdnouser']       = 'Es tut mir leid, aber der Benutzer existiert nicht in unserer Datenbank.';
-$lang['resendpwdbadauth']      = 'Es tut mir leid, aber dieser Authentifizierungscode ist ungültig. Stelle sicher, dass du den kompletten Bestätigungslink verwendet haben.';
-$lang['resendpwdconfirm']      = 'Ein Bestätigungslink wurde per E-Mail versandt.';
-$lang['resendpwdsuccess']      = 'Dein neues Passwort wurde per E-Mail versandt.';
-$lang['license']               = 'Falls nicht anders bezeichnet, ist der Inhalt dieses Wikis unter der folgenden Lizenz veröffentlicht:';
-$lang['licenseok']             = 'Hinweis: Durch das Bearbeiten dieser Seite gibst du dein Einverständnis, dass dein Inhalt unter der folgenden Lizenz veröffentlicht wird:';
-$lang['searchmedia']           = 'Suche nach Datei:';
-$lang['searchmedia_in']        = 'Suche in %s';
-$lang['txt_upload']            = 'Datei zum Hochladen auswählen:';
-$lang['txt_filename']          = 'Hochladen als (optional):';
-$lang['txt_overwrt']           = 'Bestehende Datei überschreiben';
-$lang['maxuploadsize']         = 'Max. %s pro Datei-Upload.';
-$lang['lockedby']              = 'Momentan gesperrt von:';
-$lang['lockexpire']            = 'Sperre läuft ab am:';
-$lang['js']['willexpire']      = 'Die Sperre zur Bearbeitung dieser Seite läuft in einer Minute ab.\nUm Bearbeitungskonflikte zu vermeiden, solltest du sie durch einen Klick auf den Vorschau-Knopf verlängern.';
-$lang['js']['notsavedyet']     = 'Nicht gespeicherte Änderungen gehen verloren!';
-$lang['js']['searchmedia']     = 'Suche nach Dateien';
-$lang['js']['keepopen']        = 'Fenster nach Auswahl nicht schließen';
-$lang['js']['hidedetails']     = 'Details ausblenden';
-$lang['js']['mediatitle']      = 'Link-Eigenschaften';
-$lang['js']['mediadisplay']    = 'Linktyp';
-$lang['js']['mediaalign']      = 'Ausrichtung';
-$lang['js']['mediasize']       = 'Bildgröße';
-$lang['js']['mediatarget']     = 'Linkziel';
-$lang['js']['mediaclose']      = 'Schließen';
-$lang['js']['mediainsert']     = 'Einfügen';
-$lang['js']['mediadisplayimg'] = 'Bild anzeigen.';
-$lang['js']['mediadisplaylnk'] = 'Nur den Link anzeigen.';
-$lang['js']['mediasmall']      = 'Kleine Version';
-$lang['js']['mediamedium']     = 'Mittelgroße Version';
-$lang['js']['medialarge']      = 'Große Version';
-$lang['js']['mediaoriginal']   = 'Original Version';
-$lang['js']['medialnk']        = 'Link zu der Detailseite';
-$lang['js']['mediadirect']     = 'Direkter Link zum Original';
-$lang['js']['medianolnk']      = 'Kein link';
-$lang['js']['medianolink']     = 'Keine Verlinkung des Bildes';
-$lang['js']['medialeft']       = 'Bild nach links ausrichten.';
-$lang['js']['mediaright']      = 'Bild nach rechts ausrichten.';
-$lang['js']['mediacenter']     = 'Bild in der Mitte ausrichten';
-$lang['js']['medianoalign']    = 'Keine Ausrichtung des Bildes.';
-$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 zu:';
-$lang['js']['del_confirm']     = 'Die ausgewählten Dateien wirklich löschen?';
-$lang['js']['restore_confirm'] = 'Wirklich diese Version wiederherstellen?';
-$lang['js']['media_diff']      = 'Unterschiede anzeigen:';
-$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…';
-$lang['js']['media_upload_btn'] = 'Hochladen';
-$lang['js']['media_done_btn']  = 'Fertig';
-$lang['js']['media_drop']      = 'Dateien hier hinziehen um sie hochzuladen';
-$lang['js']['media_cancel']    = 'Entfernen';
-$lang['js']['media_overwrt']   = 'Existierende Dateien überschreiben';
-$lang['rssfailed']             = 'Es ist ein Fehler beim Laden des Feeds aufgetreten: ';
-$lang['nothingfound']          = 'Nichts gefunden.';
-$lang['mediaselect']           = 'Dateiauswahl';
-$lang['uploadsucc']            = 'Datei wurde erfolgreich hochgeladen';
-$lang['uploadfail']            = 'Hochladen fehlgeschlagen. Keine Berechtigung?';
-$lang['uploadwrong']           = 'Hochladen verweigert. Diese Dateiendung ist nicht erlaubt.';
-$lang['uploadexist']           = 'Datei existiert bereits. Keine Änderungen vorgenommen.';
-$lang['uploadbadcontent']      = 'Die hochgeladenen Daten stimmen nicht mit der Dateiendung %s überein.';
-$lang['uploadspam']            = 'Hochladen verweigert: Treffer auf der Spamliste.';
-$lang['uploadxss']             = 'Hochladen verweigert: Daten scheinen Schadcode zu enthalten.';
-$lang['uploadsize']            = 'Die hochgeladene Datei war zu groß. (max. %s)';
-$lang['deletesucc']            = 'Die Datei "%s" wurde gelöscht.';
-$lang['deletefail']            = '"%s" konnte nicht gelöscht werden. Keine Berechtigung?.';
-$lang['mediainuse']            = 'Die Datei "%s" wurde nicht gelöscht. Sie wird noch verwendet.';
-$lang['namespaces']            = 'Namensräume';
-$lang['mediafiles']            = 'Vorhandene Dateien in';
-$lang['accessdenied']          = 'Du hast keinen Zugriff auf diese Seite';
-$lang['mediausage']            = 'Syntax zum Verwenden dieser Datei:';
-$lang['mediaview']             = 'Originaldatei öffnen';
-$lang['mediaroot']             = 'Wurzel';
-$lang['mediaupload']           = 'Lade hier eine Datei in den momentanen Namensraum hoch. Um Unterordner zu erstellen, stelle diese dem Dateinamen durch Doppelpunkt getrennt voran, nachdem Du die Datei ausgewählt hast.';
-$lang['mediaextchange']        = 'Dateiendung vom .%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 du keine Leseberechtigung hast.';
-$lang['hits']                  = 'Treffer';
-$lang['quickhits']             = 'Passende Seitennamen';
-$lang['toc']                   = 'Inhaltsverzeichnis';
-$lang['current']               = 'aktuell';
-$lang['yours']                 = 'Deine Version';
-$lang['diff']                  = 'Zeige Unterschiede zu aktueller Version';
-$lang['diff2']                 = 'Zeige Unterschiede der ausgewählten Versionen';
-$lang['difflink']              = 'Link zu der Vergleichsansicht';
-$lang['diff_type']             = 'Unterschiede anzeigen:';
-$lang['diff_inline']           = 'Inline';
-$lang['diff_side']             = 'Nebeneinander';
-$lang['diffprevrev']           = 'Vorherige Überarbeitung';
-$lang['diffnextrev']           = 'Nächste Überarbeitung';
-$lang['difflastrev']           = 'Letzte Überarbeitung';
-$lang['diffbothprevrev']       = 'Beide Seiten, vorherige Überarbeitung';
-$lang['diffbothnextrev']       = 'Beide Seiten, nächste Überarbeitung';
-$lang['line']                  = 'Zeile';
-$lang['breadcrumb']            = 'Zuletzt angesehen:';
-$lang['youarehere']            = 'Du befindest dich hier:';
-$lang['lastmod']               = 'Zuletzt geändert:';
-$lang['by']                    = 'von';
-$lang['deleted']               = 'gelöscht';
-$lang['created']               = 'angelegt';
-$lang['restored']              = 'alte Version wiederhergestellt (%s)';
-$lang['external_edit']         = 'Externe Bearbeitung';
-$lang['summary']               = 'Zusammenfassung';
-$lang['noflash']               = 'Das <a href="http://www.adobe.com/products/flashplayer/">Adobe Flash Plugin</a> wird benötigt, um diesen Inhalt anzuzeigen.';
-$lang['download']              = 'Schnipsel herunterladen';
-$lang['tools']                 = 'Werkzeuge';
-$lang['user_tools']            = 'Benutzer-Werkzeuge';
-$lang['site_tools']            = 'Webseiten-Werkzeuge';
-$lang['page_tools']            = 'Seiten-Werkzeuge';
-$lang['skip_to_content']       = 'zum Inhalt springen';
-$lang['sidebar']               = 'Seitenleiste';
-$lang['mail_newpage']          = 'Neue Seite:';
-$lang['mail_changed']          = 'Seite geändert:';
-$lang['mail_subscribe_list']   = 'Geänderte Seiten im Namensraum:';
-$lang['mail_new_user']         = 'Neuer Benutzer:';
-$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['qb_bold']               = 'Fetter Text';
-$lang['qb_italic']             = 'Kursiver Text';
-$lang['qb_underl']             = 'Unterstrichener Text';
-$lang['qb_code']               = 'Code Text';
-$lang['qb_strike']             = 'Durchgestrichener Text';
-$lang['qb_h1']                 = 'Level 1 Überschrift';
-$lang['qb_h2']                 = 'Level 2 Überschrift';
-$lang['qb_h3']                 = 'Level 3 Überschrift';
-$lang['qb_h4']                 = 'Level 4 Überschrift';
-$lang['qb_h5']                 = 'Level 5 Überschrift';
-$lang['qb_h']                  = 'Überschrift';
-$lang['qb_hs']                 = 'Wähle eine Überschrift';
-$lang['qb_hplus']              = 'Überschrift eine Ebene höher';
-$lang['qb_hminus']             = 'Überschrift eine Ebene runter';
-$lang['qb_hequal']             = 'Überschrift auf selber Ebene';
-$lang['qb_link']               = 'Interner Link';
-$lang['qb_extlink']            = 'Externer Link';
-$lang['qb_hr']                 = 'Horizontale Linie';
-$lang['qb_ol']                 = 'Nummerierter Listenpunkt';
-$lang['qb_ul']                 = 'Listenpunkt';
-$lang['qb_media']              = 'Bilder und andere Dateien hinzufügen';
-$lang['qb_sig']                = 'Unterschrift einfügen';
-$lang['qb_smileys']            = 'Smileys';
-$lang['qb_chars']              = 'Sonderzeichen';
-$lang['upperns']               = 'Gehe zum übergeordneten Namensraum';
-$lang['metaedit']              = 'Metadaten bearbeiten';
-$lang['metasaveerr']           = 'Die Metadaten konnten nicht gesichert werden';
-$lang['metasaveok']            = 'Metadaten gesichert';
-$lang['img_title']             = 'Titel:';
-$lang['img_caption']           = 'Bildunterschrift:';
-$lang['img_date']              = 'Datum:';
-$lang['img_fname']             = 'Dateiname:';
-$lang['img_fsize']             = 'Größe:';
-$lang['img_artist']            = 'Fotograf:';
-$lang['img_copyr']             = 'Copyright:';
-$lang['img_format']            = 'Format:';
-$lang['img_camera']            = 'Kamera:';
-$lang['img_keywords']          = 'Schlagwörter:';
-$lang['img_width']             = 'Breite:';
-$lang['img_height']            = 'Höhe:';
-$lang['subscr_subscribe_success'] = 'Die Seite %s wurde zur Abonnementliste von %s hinzugefügt';
-$lang['subscr_subscribe_error'] = 'Fehler beim Hinzufügen von %s zur Abonnementliste von %s';
-$lang['subscr_subscribe_noaddress'] = 'In deinem Account ist keine E-Mail-Adresse hinterlegt. Dadurch kann die Seite nicht abonniert werden';
-$lang['subscr_unsubscribe_success'] = 'Die Seite %s wurde von der Abonnementliste von %s entfernt';
-$lang['subscr_unsubscribe_error'] = 'Fehler beim Entfernen von %s von der Abonnementliste von %s';
-$lang['subscr_already_subscribed'] = '%s ist bereits auf der Abonnementliste von %s';
-$lang['subscr_not_subscribed'] = '%s ist nicht auf der Abonnementliste von %s';
-$lang['subscr_m_not_subscribed'] = 'Du hast kein Abonnement von dieser Seite oder dem Namensraum.';
-$lang['subscr_m_new_header']   = 'Abonnementen hinzufügen';
-$lang['subscr_m_current_header'] = 'Aktive Abonnements';
-$lang['subscr_m_unsubscribe']  = 'Abbestellen';
-$lang['subscr_m_subscribe']    = 'Abonnieren';
-$lang['subscr_m_receive']      = 'Erhalten';
-$lang['subscr_style_every']    = 'E-Mail bei jeder Änderung';
-$lang['subscr_style_digest']   = 'E-Mail mit zusammengefasster Übersicht der Seitenänderungen (alle %.2f Tage)';
-$lang['subscr_style_list']     = 'Auflistung aller geänderten Seiten seit der letzten E-Mail (alle %.2f Tage)';
-$lang['authtempfail']          = 'Benutzerüberprüfung momentan nicht möglich. Falls das Problem andauert, wende dich an den Admin.';
-$lang['i_chooselang']          = 'Wähle deine Sprache';
-$lang['i_installer']           = 'DokuWiki-Installation';
-$lang['i_wikiname']            = 'Wiki-Name';
-$lang['i_enableacl']           = 'Zugangskontrolle (ACL) aktivieren (empfohlen)';
-$lang['i_superuser']           = 'Benutzername des Administrators';
-$lang['i_problems']            = 'Das Installationsprogramm hat unten aufgeführte Probleme festgestellt, die zunächst behoben werden müssen, bevor du mit der Installation fortfahren kannst.';
-$lang['i_modified']            = 'Aus Sicherheitsgründen arbeitet dieses Skript nur mit einer neuen bzw. nicht modifizierten DokuWiki-Installation. Du solltest entweder alle Dateien noch einmal frisch installieren oder die <a href="http://dokuwiki.org/install">Dokuwiki-Installationsanleitung</a> konsultieren.';
-$lang['i_funcna']              = 'Die PHP-Funktion <code>%s</code> ist nicht verfügbar. Unter Umständen wurde sie von deinem Hoster deaktiviert?';
-$lang['i_phpver']              = 'Deine PHP-Version <code>%s</code> ist niedriger als die benötigte Version <code>%s</code>. Bitte aktualisiere deine PHP-Installation.';
-$lang['i_mbfuncoverload']      = 'mbstring.func_overload muss in php.in deaktiviert werden um DokuWiki auszuführen.';
-$lang['i_permfail']            = '<code>%s</code> ist nicht durch DokuWiki beschreibbar. Du musst die Berechtigungen dieses Ordners ändern!';
-$lang['i_confexists']          = '<code>%s</code> existiert bereits';
-$lang['i_writeerr']            = '<code>%s</code> konnte nicht erzeugt werden. Du solltest die Verzeichnis-/Datei-Rechte überprüfen und die Datei manuell anlegen.';
-$lang['i_badhash']             = 'Unbekannte oder modifizierte dokuwiki.php (Hash=<code>%s</code>)';
-$lang['i_badval']              = '<code>%s</code> - unerlaubter oder leerer Wert';
-$lang['i_success']             = 'Die Konfiguration wurde erfolgreich abgeschlossen. Du kannst jetzt die install.php löschen. Dein <a href="doku.php?id=wiki:welcome">neues DokuWiki</a> ist jetzt für dich bereit.';
-$lang['i_failure']             = 'Es sind Fehler beim Schreiben der Konfigurationsdateien aufgetreten. Du musst diese von Hand beheben, bevor du dein <a href="doku.php?id=wiki:welcome">neues DokuWiki</a> nutzen kannst.';
-$lang['i_policy']              = 'Anfangseinstellungen der Zugangskontrolle (ACL)';
-$lang['i_pol0']                = 'Offenes Wiki (lesen, schreiben und hochladen für alle Benutzer)';
-$lang['i_pol1']                = 'Öffentliches Wiki (Lesen für alle, Schreiben und Hochladen nur für registrierte Benutzer)';
-$lang['i_pol2']                = 'Geschlossenes Wiki (Lesen, Schreiben und Hochladen nur für registrierte Benutzer)';
-$lang['i_allowreg']            = 'Benutzer können sich selbst registrieren';
-$lang['i_retry']               = 'Wiederholen';
-$lang['i_license']             = 'Bitte wähle die Lizenz aus unter der die Wiki-Inhalte veröffentlicht werden sollen:';
-$lang['i_license_none']        = 'Keine Lizenzinformationen anzeigen';
-$lang['i_pop_field']           = 'Bitte helfe uns, die DokuWiki-Erfahrung zu verbessern';
-$lang['i_pop_label']           = 'Sende einmal im Monat anonyme Nutzungsdaten an die DokuWiki Entwickler';
-$lang['recent_global']         = 'Im Moment siehst du die Änderungen im Namensraum <b>%s</b>. Du kannst auch <a href="%s">die Änderungen im gesamten Wiki sehen</a>.';
-$lang['years']                 = 'vor %d Jahren';
-$lang['months']                = 'vor %d Monaten';
-$lang['weeks']                 = 'vor %d Wochen';
-$lang['days']                  = 'vor %d Tagen';
-$lang['hours']                 = 'vor %d Stunden';
-$lang['minutes']               = 'vor %d Minuten';
-$lang['seconds']               = 'vor %d Sekunden';
-$lang['wordblock']             = 'Deine Bearbeitung wurde nicht gespeichert, da sie gesperrten Text enthielt (Spam).';
-$lang['media_uploadtab']       = 'Hochladen';
-$lang['media_searchtab']       = 'Suchen';
-$lang['media_file']            = 'Datei';
-$lang['media_viewtab']         = 'Anzeigen';
-$lang['media_edittab']         = 'Bearbeiten';
-$lang['media_historytab']      = 'Verlauf';
-$lang['media_list_thumbs']     = 'Medien anzeigen als Miniaturansicht';
-$lang['media_list_rows']       = 'Medien anzeigen als Listenansicht';
-$lang['media_sort_name']       = 'Sortieren nach Name';
-$lang['media_sort_date']       = 'Sortieren nach Datum';
-$lang['media_namespaces']      = 'Namensraum wählen';
-$lang['media_files']           = 'Medien im Namensraum <strong>%s</strong>.';
-$lang['media_upload']          = 'In den <strong>%s</strong> Namensraum hochladen.';
-$lang['media_search']          = 'Im Namensraum <strong>%s</strong> suchen.';
-$lang['media_view']            = '%s';
-$lang['media_viewold']         = '%s in %s';
-$lang['media_edit']            = '%s bearbeiten';
-$lang['media_history']         = 'Versionen von %s';
-$lang['media_meta_edited']     = 'Meta-Informationen bearbeitet';
-$lang['media_perm_read']       = 'Du besitzt nicht die notwendigen Berechtigungen um die Datei anzuzeigen.';
-$lang['media_perm_upload']     = 'Du besitzt nicht die notwendigen Berechtigungen um Dateien hochzuladen.';
-$lang['media_update']          = 'Neue Version hochladen';
-$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['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['unable_to_parse_date']  = 'Parameter "%s" kann nicht geparsed werden.';
-$lang['email_signature_text']  = 'Diese E-Mail wurde erzeugt vom DokuWiki unter
-@DOKUWIKIURL@';
diff --git a/wiki/inc/lang/de-informal/locked.txt b/wiki/inc/lang/de-informal/locked.txt
deleted file mode 100644
index 1cfa089..0000000
--- a/wiki/inc/lang/de-informal/locked.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Seite gesperrt ======
-
-Diese Seite ist momentan von einem anderen Benutzer gesperrt. Warte, bis dieser mit dem Bearbeiten fertig ist oder die Sperre abläuft.
-
diff --git a/wiki/inc/lang/de-informal/login.txt b/wiki/inc/lang/de-informal/login.txt
deleted file mode 100644
index 5c99c48..0000000
--- a/wiki/inc/lang/de-informal/login.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Anmelden ======
-
-Gib deinen Benutzernamen und dein Passwort in das Formular unten ein, um dich anzumelden. Bitte beachte, dass dafür "Cookies" in den Sicherheitseinstellungen deines Browsers erlaubt sein müssen.
-
diff --git a/wiki/inc/lang/de-informal/mailtext.txt b/wiki/inc/lang/de-informal/mailtext.txt
deleted file mode 100644
index 127b481..0000000
--- a/wiki/inc/lang/de-informal/mailtext.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-Eine Seite in deinem Wiki wurde geändert oder neu angelegt. Hier sind die Details:
-
-Datum          : @DATE@
-Browser        : @BROWSER@
-IP-Adresse     : @IPADDRESS@
-Hostname       : @HOSTNAME@
-Alte Version   : @OLDPAGE@
-Neue Version   : @NEWPAGE@
-Zusammenfassung: @SUMMARY@
-Benutzer       : @USER@
-
-@DIFF@
diff --git a/wiki/inc/lang/de-informal/mailwrap.html b/wiki/inc/lang/de-informal/mailwrap.html
deleted file mode 100644
index 7df0cdc..0000000
--- a/wiki/inc/lang/de-informal/mailwrap.html
+++ /dev/null
@@ -1,13 +0,0 @@
-<html>
-<head>
-    <title>@TITLE@</title>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-</head>
-<body>
-
-@HTMLBODY@
-
-<br /><hr />
-<small>@EMAILSIGNATURE@</small>
-</body>
-</html>
diff --git a/wiki/inc/lang/de-informal/newpage.txt b/wiki/inc/lang/de-informal/newpage.txt
deleted file mode 100644
index 5e261cc..0000000
--- a/wiki/inc/lang/de-informal/newpage.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== Dieses Thema existiert noch nicht ======
-
-Du bist einem Link zu einer Seite gefolgt, die noch nicht existiert. Du kannst die Seite mit dem Knopf **''[Seite anlegen]''** selbst anlegen und mit Inhalt füllen.
-
-
diff --git a/wiki/inc/lang/de-informal/norev.txt b/wiki/inc/lang/de-informal/norev.txt
deleted file mode 100644
index c624331..0000000
--- a/wiki/inc/lang/de-informal/norev.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Version existiert nicht ======
-
-Die angegebene Version des Dokuments wurde nicht gefunden. Benutze den **''[Ältere Versionen]''** Knopf, um eine Liste aller verfügbaren Versionen dieses Dokuments zu erhalten.
-
diff --git a/wiki/inc/lang/de-informal/password.txt b/wiki/inc/lang/de-informal/password.txt
deleted file mode 100644
index e99fc53..0000000
--- a/wiki/inc/lang/de-informal/password.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-Hallo @FULLNAME@!
-
-Hier sind deine Benutzerdaten für @TITLE@ auf @DOKUWIKIURL@
-
-Benutzername: @LOGIN@
-Passwort    : @PASSWORD@
diff --git a/wiki/inc/lang/de-informal/preview.txt b/wiki/inc/lang/de-informal/preview.txt
deleted file mode 100644
index d3a578f..0000000
--- a/wiki/inc/lang/de-informal/preview.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== Vorschau ======
-
-So wird dein Text später aussehen. Achtung: Der Text wurde noch **nicht gespeichert**!
-
-
diff --git a/wiki/inc/lang/de-informal/pwconfirm.txt b/wiki/inc/lang/de-informal/pwconfirm.txt
deleted file mode 100644
index a3b95d8..0000000
--- a/wiki/inc/lang/de-informal/pwconfirm.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-Hallo @FULLNAME@!
-
-Jemand hat ein neues Passwort für deinen @TITLE@
-Login auf @DOKUWIKIURL@ angefordert.
-
-Wenn du diese Änderung nicht angefordert hast, ignoriere diese
-E-Mail einfach.
-
-Um die Anforderung zu bestätigen, folge bitte dem unten angegebenen
-Bestätigungslink.
-
-@CONFIRM@
diff --git a/wiki/inc/lang/de-informal/read.txt b/wiki/inc/lang/de-informal/read.txt
deleted file mode 100644
index 1c5422a..0000000
--- a/wiki/inc/lang/de-informal/read.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-Diese Seite ist nicht editierbar. Du kannst den Quelltext sehen, jedoch nicht verändern. Kontaktiere den Administrator, wenn du glaubst, dass hier ein Fehler vorliegt.
-
diff --git a/wiki/inc/lang/de-informal/recent.txt b/wiki/inc/lang/de-informal/recent.txt
deleted file mode 100644
index c05bbae..0000000
--- a/wiki/inc/lang/de-informal/recent.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== Letzte Änderungen ======
-
-Die folgenden Seiten wurden zuletzt geändert.
-
-
diff --git a/wiki/inc/lang/de-informal/register.txt b/wiki/inc/lang/de-informal/register.txt
deleted file mode 100644
index f6bf6ed..0000000
--- a/wiki/inc/lang/de-informal/register.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Als neuer Benutzer registrieren ======
-
-Bitte fülle alle Felder aus, um einen neuen Benutzer-Account in diesem Wiki anzulegen. Stelle sicher, dass eine **gültige E-Mail-Adresse** angegeben wird - das Passwort wird an diese Adresse gesendet. Der Benutzername sollte aus einem Wort ohne Umlaute, Leer- oder Sonderzeichen bestehen.
-
diff --git a/wiki/inc/lang/de-informal/registermail.txt b/wiki/inc/lang/de-informal/registermail.txt
deleted file mode 100644
index e19fb8f..0000000
--- a/wiki/inc/lang/de-informal/registermail.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-Ein neuer Benutzer hat sich registriert. Hier sind die Details:
-
-Benutzername : @NEWUSER@
-Voller Name  : @NEWNAME@
-E-Mail       : @NEWEMAIL@
-
-Date         : @DATE@
-Browser      : @BROWSER@
-IP-Address   : @IPADDRESS@
-Hostname     : @HOSTNAME@
diff --git a/wiki/inc/lang/de-informal/resendpwd.txt b/wiki/inc/lang/de-informal/resendpwd.txt
deleted file mode 100644
index a0a7142..0000000
--- a/wiki/inc/lang/de-informal/resendpwd.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Neues Passwort anfordern ======
-
-Fülle alle Felder unten aus, um ein neues Passwort für deinen Zugang zu erhalten. Das neue Passwort wird an deine gespeicherte E-Mail-Adresse geschickt. Der Benutzername muss deinem Wiki-Benutzernamen entsprechen.
diff --git a/wiki/inc/lang/de-informal/resetpwd.txt b/wiki/inc/lang/de-informal/resetpwd.txt
deleted file mode 100644
index 8423bd8..0000000
--- a/wiki/inc/lang/de-informal/resetpwd.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Neues Passwort setzen  ======
-
-Bitte gib ein neues Passwort für deinen Wiki-Zugang ein.
-
diff --git a/wiki/inc/lang/de-informal/revisions.txt b/wiki/inc/lang/de-informal/revisions.txt
deleted file mode 100644
index b69169a..0000000
--- a/wiki/inc/lang/de-informal/revisions.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Ältere Versionen ======
-
-Dies sind ältere Versionen der gewählten Seite. Um zu einer älteren Version zurückzukehren, wähle die entsprechende Version aus, klicke auf **''[Diese Seite bearbeiten]''** und speichere sie erneut ab.
-
diff --git a/wiki/inc/lang/de-informal/searchpage.txt b/wiki/inc/lang/de-informal/searchpage.txt
deleted file mode 100644
index 5de550a..0000000
--- a/wiki/inc/lang/de-informal/searchpage.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Suche ======
-
-Unten sind die Ergebnisse deiner Suche gelistet. @CREATEPAGEINFO@
-
diff --git a/wiki/inc/lang/de-informal/showrev.txt b/wiki/inc/lang/de-informal/showrev.txt
deleted file mode 100644
index 65f53c9..0000000
--- a/wiki/inc/lang/de-informal/showrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**Dies ist eine alte Version des Dokuments!**
-----
diff --git a/wiki/inc/lang/de-informal/stopwords.txt b/wiki/inc/lang/de-informal/stopwords.txt
deleted file mode 100644
index 443b177..0000000
--- a/wiki/inc/lang/de-informal/stopwords.txt
+++ /dev/null
@@ -1,125 +0,0 @@
-# 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/
-aber
-als
-auch
-auf
-aus
-bei
-bin
-bis
-bist
-dadurch
-daher
-darum
-das
-daß
-dass
-dein
-deine
-dem
-den
-der
-des
-dessen
-deshalb
-die
-dies
-dieser
-dieses
-doch
-dort
-durch
-ein
-eine
-einem
-einen
-einer
-eines
-euer
-eure
-für
-hatte
-hatten
-hattest
-hattet
-hier
-hinter
-ich
-ihr
-ihre
-in
-im
-ist
-jede
-jedem
-jeden
-jeder
-jedes
-jener
-jenes
-jetzt
-kann
-kannst
-können
-könnt
-machen
-mein
-meine
-mit
-muß
-mußt
-musst
-müssen
-müßt
-nach
-nachdem
-nein
-nicht
-nun
-oder
-seid
-sein
-seine
-sich
-sie
-sind
-soll
-sollen
-sollst
-sollt
-sonst
-soweit
-sowie
-und
-unser
-unsere
-unter
-vom
-von
-vor
-um
-wann
-warum
-was
-weiter
-weitere
-wenn
-wer
-werde
-werden
-werdet
-weshalb
-wie
-wieder
-wieso
-wir
-wird
-wirst
-woher
-wohin
-zum
-zur
-über
diff --git a/wiki/inc/lang/de-informal/subscr_digest.txt b/wiki/inc/lang/de-informal/subscr_digest.txt
deleted file mode 100644
index 1e29137..0000000
--- a/wiki/inc/lang/de-informal/subscr_digest.txt
+++ /dev/null
@@ -1,16 +0,0 @@
-Hallo!
-
-Die Seite @PAGE@ im @TITLE@ Wiki wurde bearbeitet.
-Üersicht der Änderungen:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-Alte Revision: @OLDPAGE@
-Neue Revision: @NEWPAGE@
-
-Um das Abonnement für diese Seite aufzulösen, melde dich im Wiki an
-@DOKUWIKIURL@, besuchen dann
-@SUBSCRIBE@
-und klicke auf den Link 'Aboverwaltung'.
diff --git a/wiki/inc/lang/de-informal/subscr_form.txt b/wiki/inc/lang/de-informal/subscr_form.txt
deleted file mode 100644
index 7bf74f2..0000000
--- a/wiki/inc/lang/de-informal/subscr_form.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Abonnementverwaltung ======
-
-Hier kannst du deine Abonnements für die aktuelle Seite oder den aktuellen [[doku>Namespaces|Namespace]] verwalten.
diff --git a/wiki/inc/lang/de-informal/subscr_list.txt b/wiki/inc/lang/de-informal/subscr_list.txt
deleted file mode 100644
index 0bc7a6a..0000000
--- a/wiki/inc/lang/de-informal/subscr_list.txt
+++ /dev/null
@@ -1,13 +0,0 @@
-Hallo!
-
-Die Seiten im Namensraum @PAGE@ im @TITLE@ wurden geändert.
-Nachfolgenden findest du die geänderten Seiten:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-Um die Benachrichtigungen zu deaktivieren, melde dich am Wiki unter
-@DOKUWIKIURL@ an, gehe zur Seite
-@SUBSCRIBE@
-und deaktiviere das Abonnement für die Seite und/oder den Namensraum.
diff --git a/wiki/inc/lang/de-informal/subscr_single.txt b/wiki/inc/lang/de-informal/subscr_single.txt
deleted file mode 100644
index 7ab02cc..0000000
--- a/wiki/inc/lang/de-informal/subscr_single.txt
+++ /dev/null
@@ -1,19 +0,0 @@
-Hallo!
-
-Die Seite @PAGE@ im @TITLE@ Wiki wurde bearbeitet.
-Übersicht der Änderungen:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-Datum: @DATE@
-Benutzer: @USER@
-Zusammenfassung: @SUMMARY@
-Alte Revision: @OLDPAGE@
-Neue Revision: @NEWPAGE@
-
-Um das Abonnement für diese Seite aufzulösen, melde dich im Wiki an
-@DOKUWIKIURL@, besuche dann
-@SUBSCRIBE@
-und klicke auf den Link 'Aboverwaltung'.
diff --git a/wiki/inc/lang/de-informal/updateprofile.txt b/wiki/inc/lang/de-informal/updateprofile.txt
deleted file mode 100644
index 66c2e82..0000000
--- a/wiki/inc/lang/de-informal/updateprofile.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== Benutzerprofil ändern ======
-
-Nur die Felder, die du änderst, werden aktualisiert. Alle anderen bleiben, wie sie sind. Deinen Benutzernamen kannst du jedoch nicht ändern.
-
-
diff --git a/wiki/inc/lang/de-informal/uploadmail.txt b/wiki/inc/lang/de-informal/uploadmail.txt
deleted file mode 100644
index d608cd5..0000000
--- a/wiki/inc/lang/de-informal/uploadmail.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-Eine Datei wurde in deinem Wiki hochgeladen. Hier sind die Details:
-
-Datei       : @MEDIA@
-Alte Version: @OLD@
-Datum       : @DATE@
-Browser     : @BROWSER@
-IP-Adresse  : @IPADDRESS@
-Hostname    : @HOSTNAME@
-Größe       : @SIZE@
-MIME-Typ    : @MIME@
-Benutzer    : @USER@
diff --git a/wiki/inc/lang/de/admin.txt b/wiki/inc/lang/de/admin.txt
deleted file mode 100644
index f079f7e..0000000
--- a/wiki/inc/lang/de/admin.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Administration ======
-
-Folgende administrative Aufgaben stehen in DokuWiki zur Verfügung:
-
diff --git a/wiki/inc/lang/de/adminplugins.txt b/wiki/inc/lang/de/adminplugins.txt
deleted file mode 100644
index d3bfd09..0000000
--- a/wiki/inc/lang/de/adminplugins.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Weitere Plugins =====
\ No newline at end of file
diff --git a/wiki/inc/lang/de/backlinks.txt b/wiki/inc/lang/de/backlinks.txt
deleted file mode 100644
index b9caf94..0000000
--- a/wiki/inc/lang/de/backlinks.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== Links hierher (Backlinks) ======
-
-Dies ist eine Liste der Seiten, welche zurück zur momentanen Seite führen.
-
-
diff --git a/wiki/inc/lang/de/conflict.txt b/wiki/inc/lang/de/conflict.txt
deleted file mode 100644
index 0d0283b..0000000
--- a/wiki/inc/lang/de/conflict.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-====== Es gibt eine neuere Version ======
-
-Es existiert eine neuere Version des aktuell in Bearbeitung befindlichen Dokumentes. Das heißt, jemand hat parallel an der selben Seite gearbeitet und zuerst gespeichert.
-
-Die unten aufgeführten Unterschiede können bei der Entscheidung helfen, welchem Dokument Vorrang gewährt wird. Wählen Sie  **''[Speichern]''** zum Sichern Ihrer Version oder **''[Abbrechen]''**,  um Ihre Version zu verwerfen und die zuerst gespeicherte Seite zu behalten.
-
diff --git a/wiki/inc/lang/de/denied.txt b/wiki/inc/lang/de/denied.txt
deleted file mode 100644
index db33438..0000000
--- a/wiki/inc/lang/de/denied.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Zugang verweigert ======
-
-Sie haben nicht die erforderliche Berechtigung, um diese Aktion durchzuführen.
-
diff --git a/wiki/inc/lang/de/diff.txt b/wiki/inc/lang/de/diff.txt
deleted file mode 100644
index 3747da8..0000000
--- a/wiki/inc/lang/de/diff.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== Unterschiede ======
-
-Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
-
-
diff --git a/wiki/inc/lang/de/draft.txt b/wiki/inc/lang/de/draft.txt
deleted file mode 100644
index 17d5d31..0000000
--- a/wiki/inc/lang/de/draft.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-====== Entwurf gefunden ======
-
-Ihre letzte Bearbeitungssitzung wurde nicht ordnungsgemäß abgeschlossen. DokuWiki hat während Ihrer Arbeit automatisch einen Zwischenentwurf gespeichert, den Sie jetzt nutzen können, um Ihre Arbeit fortzusetzen. Unten sehen Sie die Daten, die bei Ihrer letzten Sitzung gespeichert wurden.
-
-Bitte entscheiden Sie, ob Sie den Entwurf //wiederherstellen// oder //löschen// wollen, oder ob Sie die Bearbeitung abbrechen möchten.
-
diff --git a/wiki/inc/lang/de/edit.txt b/wiki/inc/lang/de/edit.txt
deleted file mode 100644
index 6e56d25..0000000
--- a/wiki/inc/lang/de/edit.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-Seite Bearbeiten und **''[Speichern]''** drücken. Siehe [[wiki:syntax]] zur Wiki-Syntax.
-Bitte nur editieren, falls das Dokument tatsächlich **verbessert** werden kann.
-Zum Testen bitte erst im [[playground:playground|Spielplatz]] üben.
-
diff --git a/wiki/inc/lang/de/editrev.txt b/wiki/inc/lang/de/editrev.txt
deleted file mode 100644
index 6c1f642..0000000
--- a/wiki/inc/lang/de/editrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**Eine ältere Version des Dokuments wurde geladen!** Beim Speichern wird eine neue Version des Dokuments mit diesem Inhalt erstellt.
-----
\ No newline at end of file
diff --git a/wiki/inc/lang/de/index.txt b/wiki/inc/lang/de/index.txt
deleted file mode 100644
index fa8dc46..0000000
--- a/wiki/inc/lang/de/index.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Übersicht ======
-
-Dies ist eine Übersicht über alle vorhandenen Seiten und [[doku>namespaces|Namensräume]].
-
diff --git a/wiki/inc/lang/de/install.html b/wiki/inc/lang/de/install.html
deleted file mode 100644
index 47dcdf6..0000000
--- a/wiki/inc/lang/de/install.html
+++ /dev/null
@@ -1,27 +0,0 @@
-<p>Diese Seite hilft Ihnen bei der Erstinstallation und Konfiguration von
-<a href="http://dokuwiki.org">DokuWiki</a>. Zusätzliche Informationen zu
-diesem Installationsskript finden Sie auf der entsprechenden
-<a href="http://dokuwiki.org/installer">Hilfe Seite</a> (en).</p>
-
-<p>DokuWiki verwendet normale Dateien für das Speichern von Wikiseiten und
-anderen Informationen (Bilder, Suchindizes, alte Versionen usw.).
-Um DokuWiki betreiben zu können, <strong>muss</strong> Schreibzugriff auf die
-Verzeichnisse bestehen, in denen DokuWiki diese Dateien ablegt. Dieses
-Installationsprogramm kann diese Rechte nicht für Sie setzen. Sie müssen dies
-manuell auf einer Kommando-Shell oder, falls Sie DokuWiki bei einem Fremdanbieter
-hosten, über FTP oder ein entsprechendes Werkzeug (z.B. cPanel) durchführen.</p>
-
-<p>Dieses Skript hilft Ihnen beim ersten Einrichten des Zugangsschutzes
-(<abbr title="access control list">ACL</abbr>) von DokuWiki, welcher eine
-Administratoranmeldung und damit Zugang zum Administrationsmenu ermöglicht.
-Dort können Sie dann weitere Tätigkeiten wie das Installieren von Plugins, dass
-Verwalten von Benutzern und das Ändern von Konfigurationseinstellungen durchführen.
-Das Nutzen der Zugangskontrolle ist nicht zwingend erforderlich, es erleichtert aber
-die Administration von DokuWiki.</p>
-
-<p>Erfahrene Anwender oder Benutzer mit speziellen Konfigurationsbedürfnissen sollten
-die folgenden Links nutzen, um sich über
-<a href="http://dokuwiki.org/install">Installation</a>
-und <a href="http://dokuwiki.org/config">Konfiguration</a> zu
-informieren.</p>
-
diff --git a/wiki/inc/lang/de/jquery.ui.datepicker.js b/wiki/inc/lang/de/jquery.ui.datepicker.js
deleted file mode 100644
index a677908..0000000
--- a/wiki/inc/lang/de/jquery.ui.datepicker.js
+++ /dev/null
@@ -1,37 +0,0 @@
-/* German initialisation for the jQuery UI date picker plugin. */
-/* Written by Milian Wolff (mail@milianw.de). */
-( function( factory ) {
-	if ( typeof define === "function" && define.amd ) {
-
-		// AMD. Register as an anonymous module.
-		define( [ "../widgets/datepicker" ], factory );
-	} else {
-
-		// Browser globals
-		factory( jQuery.datepicker );
-	}
-}( function( datepicker ) {
-
-datepicker.regional.de = {
-	closeText: "Schließen",
-	prevText: "&#x3C;Zurück",
-	nextText: "Vor&#x3E;",
-	currentText: "Heute",
-	monthNames: [ "Januar","Februar","März","April","Mai","Juni",
-	"Juli","August","September","Oktober","November","Dezember" ],
-	monthNamesShort: [ "Jan","Feb","Mär","Apr","Mai","Jun",
-	"Jul","Aug","Sep","Okt","Nov","Dez" ],
-	dayNames: [ "Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag" ],
-	dayNamesShort: [ "So","Mo","Di","Mi","Do","Fr","Sa" ],
-	dayNamesMin: [ "So","Mo","Di","Mi","Do","Fr","Sa" ],
-	weekHeader: "KW",
-	dateFormat: "dd.mm.yy",
-	firstDay: 1,
-	isRTL: false,
-	showMonthAfterYear: false,
-	yearSuffix: "" };
-datepicker.setDefaults( datepicker.regional.de );
-
-return datepicker.regional.de;
-
-} ) );
diff --git a/wiki/inc/lang/de/lang.php b/wiki/inc/lang/de/lang.php
deleted file mode 100644
index 2fd78f5..0000000
--- a/wiki/inc/lang/de/lang.php
+++ /dev/null
@@ -1,384 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Karl_de_Hall <Karl.Grohmueller@sonnenhof-sha.de>
- * @author Michael Bohn <mjbohn@gmail.com>
- * @author Joel Strasser <strasser999@gmail.com>
- * @author Robert Riebisch <robert.riebisch@googlemail.com>
- * @author Joerg <scooter22@gmx.de>
- * @author Andreas Gohr <andi@splitbrain.org>
- * @author Christof <gagi@fin.de>
- * @author Anika Henke <anika@selfthinker.org>
- * @author Esther Brunner <esther@kaffeehaus.ch>
- * @author Matthias Grimm <matthiasgrimm@users.sourceforge.net>
- * @author Michael Klier <chi@chimeric.de>
- * @author Leo Moll <leo@yeasoft.com>
- * @author Florian Anderiasch <fa@art-core.org>
- * @author Robin Kluth <commi1993@gmail.com>
- * @author Arne Pelka <mail@arnepelka.de>
- * @author Dirk Einecke <dirk@dirkeinecke.de>
- * @author Blitzi94 <Blitzi94@gmx.de>
- * @author Robert Bogenschneider <robog@gmx.de>
- * @author Niels Lange <niels@boldencursief.nl>
- * @author Christian Wichmann <nospam@zone0.de>
- * @author Matthias Schulte <mailinglist@lupo49.de>
- * @author Paul Lachewsky <kaeptn.haddock@gmail.com>
- * @author Pierre Corell <info@joomla-praxis.de>
- * @author Mateng Schimmerlos <mateng@firemail.de>
- * @author Benedikt Fey <spam@lifeisgoooood.de>
- * @author Simon <st103267@stud.uni-stuttgart.de>
- * @author Hoisl <hoisl@gmx.at>
- * @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';
-$lang['doublequoteopening']    = '„';
-$lang['doublequoteclosing']    = '“';
-$lang['singlequoteopening']    = '‚';
-$lang['singlequoteclosing']    = '‘';
-$lang['apostrophe']            = '’';
-$lang['btn_edit']              = 'Diese Seite bearbeiten';
-$lang['btn_source']            = 'Zeige Quelltext';
-$lang['btn_show']              = 'Seite anzeigen';
-$lang['btn_create']            = 'Seite anlegen';
-$lang['btn_search']            = 'Suche';
-$lang['btn_save']              = 'Speichern';
-$lang['btn_preview']           = 'Vorschau';
-$lang['btn_top']               = 'Nach oben';
-$lang['btn_newer']             = '<< neuere Änderungen';
-$lang['btn_older']             = 'ältere Änderungen >>';
-$lang['btn_revs']              = 'Ältere Versionen';
-$lang['btn_recent']            = 'Letzte Änderungen';
-$lang['btn_upload']            = 'Hochladen';
-$lang['btn_cancel']            = 'Abbrechen';
-$lang['btn_index']             = 'Übersicht';
-$lang['btn_secedit']           = 'Bearbeiten';
-$lang['btn_login']             = 'Anmelden';
-$lang['btn_logout']            = 'Abmelden';
-$lang['btn_admin']             = 'Admin';
-$lang['btn_update']            = 'Aktualisieren';
-$lang['btn_delete']            = 'Löschen';
-$lang['btn_back']              = 'Zurück';
-$lang['btn_backlink']          = 'Links hierher';
-$lang['btn_subscribe']         = 'Aboverwaltung';
-$lang['btn_profile']           = 'Benutzerprofil';
-$lang['btn_reset']             = 'Zurücksetzen';
-$lang['btn_resendpwd']         = 'Setze neues Passwort';
-$lang['btn_draft']             = 'Entwurf bearbeiten';
-$lang['btn_recover']           = 'Entwurf wiederherstellen';
-$lang['btn_draftdel']          = 'Entwurf löschen';
-$lang['btn_revert']            = 'Wiederherstellen';
-$lang['btn_register']          = 'Registrieren';
-$lang['btn_apply']             = 'Übernehmen';
-$lang['btn_media']             = 'Medien-Manager';
-$lang['btn_deleteuser']        = 'Benutzerprofil löschen';
-$lang['btn_img_backto']        = 'Zurück zu %s';
-$lang['btn_mediaManager']      = 'Im Medien-Manager anzeigen';
-$lang['loggedinas']            = 'Angemeldet als:';
-$lang['user']                  = 'Benutzername';
-$lang['pass']                  = 'Passwort';
-$lang['newpass']               = 'Neues Passwort';
-$lang['oldpass']               = 'Bestätigen (Altes Passwort)';
-$lang['passchk']               = 'Passwort erneut eingeben';
-$lang['remember']              = 'Angemeldet bleiben';
-$lang['fullname']              = 'Voller Name';
-$lang['email']                 = 'E-Mail';
-$lang['profile']               = 'Benutzerprofil';
-$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, der Seitenabschnitt ist veraltet, lade stattdessen volle Seite.';
-$lang['searchcreatepage']      = 'Falls der gesuchte Begriff nicht gefunden wurde, können Sie direkt eine neue, nach Ihrer Anfrage benannte Seite %s anlegen.';
-$lang['search_fullresults']    = 'Volltextergebnisse';
-$lang['js']['search_toggle_tools'] = 'Suchwerkzeuge umschalten';
-$lang['js']['willexpire']      = 'Die Sperre zur Bearbeitung dieser Seite läuft in einer Minute ab.\nUm Bearbeitungskonflikte zu vermeiden, sollten Sie sie durch einen Klick auf den Vorschau-Knopf verlängern.';
-$lang['js']['notsavedyet']     = 'Nicht gespeicherte Änderungen gehen verloren!';
-$lang['js']['searchmedia']     = 'Suche Dateien';
-$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']      = 'Ausrichtung';
-$lang['js']['mediasize']       = 'Bildgröße';
-$lang['js']['mediatarget']     = 'Linkziel';
-$lang['js']['mediaclose']      = 'Schließen';
-$lang['js']['mediainsert']     = 'Einfügen';
-$lang['js']['mediadisplayimg'] = 'Bild anzeigen.';
-$lang['js']['mediadisplaylnk'] = 'Nur den Link anzeigen.';
-$lang['js']['mediasmall']      = 'Kleine Version';
-$lang['js']['mediamedium']     = 'Mittlere Version';
-$lang['js']['medialarge']      = 'Große Version';
-$lang['js']['mediaoriginal']   = 'Originalversion';
-$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 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'] = 'Nebeneinander';
-$lang['js']['media_diff_opacity'] = 'Überblenden';
-$lang['js']['media_diff_portions'] = 'Übergang';
-$lang['js']['media_select']    = 'Dateien auswählen…';
-$lang['js']['media_upload_btn'] = 'Hochladen';
-$lang['js']['media_done_btn']  = 'Fertig';
-$lang['js']['media_drop']      = 'Dateien hier hinziehen um sie hochzuladen';
-$lang['js']['media_cancel']    = 'Entfernen';
-$lang['js']['media_overwrt']   = 'Existierende Dateien überschreiben';
-$lang['search_exact_match']    = 'genaue Treffer';
-$lang['search_starts_with']    = 'beginnt mit';
-$lang['search_ends_with']      = 'endet mit';
-$lang['search_contains']       = 'enthält';
-$lang['search_custom_match']   = 'angepasst ';
-$lang['search_any_ns']         = 'alle Kategorien';
-$lang['search_any_time']       = 'jederzeit';
-$lang['search_past_7_days']    = 'letzte Woche';
-$lang['search_past_month']     = 'letzter Monat';
-$lang['search_past_year']      = 'letztes Jahr';
-$lang['search_sort_by_hits']   = 'Sortiere nach Treffer';
-$lang['search_sort_by_mtime']  = 'Sortiere nach letzter Änderung';
-$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.';
-$lang['regfail']               = 'Der Benutzer konnte nicht angelegt werden.';
-$lang['regmailfail']           = 'Offenbar ist ein Fehler beim Versenden der Passwort-E-Mail aufgetreten. Bitte wenden Sie sich an den Wiki-Admin.';
-$lang['regbadmail']            = 'Die angegebene E-Mail-Adresse scheint ungültig zu sein. Falls dies ein Fehler ist, wenden Sie sich bitte an den Wiki-Admin.';
-$lang['regbadpass']            = 'Die beiden eingegeben Passwörter stimmen nicht überein. Bitte versuchen Sie es noch einmal.';
-$lang['regpwmail']             = 'Ihr DokuWiki-Passwort';
-$lang['reghere']               = 'Sie haben noch keinen Zugang? Hier registrieren';
-$lang['profna']                = 'Änderung des Benutzerprofils in diesem Wiki nicht möglich.';
-$lang['profnochange']          = 'Keine Änderungen, nichts zu tun.';
-$lang['profnoempty']           = 'Es muss ein Name und eine E-Mail-Adresse angegeben werden.';
-$lang['profchanged']           = 'Benutzerprofil erfolgreich geändert.';
-$lang['profnodelete']          = 'Dieses Wiki unterstützt kein Löschen von Benutzern.';
-$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 lässt sich nicht rückgängig machen,';
-$lang['profconfdeletemissing'] = 'Bestätigung in Kontrollkästchen fehlt';
-$lang['proffail']              = 'Das Benutzerkonto konnte nicht aktualisiert werden.';
-$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.';
-$lang['resendpwdnouser']       = 'Es tut mir leid, aber der Benutzer existiert nicht in unserer Datenbank.';
-$lang['resendpwdbadauth']      = 'Es tut mir leid, aber dieser Authentifizierungscode ist ungültig. Stellen Sie sicher, dass Sie den kompletten Bestätigungslink verwendet haben.';
-$lang['resendpwdconfirm']      = 'Ein Bestätigungslink wurde per E-Mail versandt.';
-$lang['resendpwdsuccess']      = 'Ihr neues Passwort wurde per E-Mail versandt.';
-$lang['license']               = 'Falls nicht anders bezeichnet, ist der Inhalt dieses Wikis unter der folgenden Lizenz veröffentlicht:';
-$lang['licenseok']             = 'Hinweis: Durch das Bearbeiten dieser Seite geben Sie Ihr Einverständnis, dass Ihr Inhalt unter der folgenden Lizenz veröffentlicht wird:';
-$lang['searchmedia']           = 'Suche Dateinamen:';
-$lang['searchmedia_in']        = 'Suche in %s';
-$lang['txt_upload']            = 'Datei zum Hochladen auswählen:';
-$lang['txt_filename']          = 'Hochladen als (optional):';
-$lang['txt_overwrt']           = 'Bestehende Datei überschreiben';
-$lang['maxuploadsize']         = 'Max. %s pro Datei-Upload.';
-$lang['lockedby']              = 'Momentan gesperrt von:';
-$lang['lockexpire']            = 'Sperre läuft ab am:';
-$lang['rssfailed']             = 'Es ist ein Fehler beim Laden des Feeds aufgetreten: ';
-$lang['nothingfound']          = 'Nichts gefunden.';
-$lang['mediaselect']           = 'Dateiauswahl';
-$lang['uploadsucc']            = 'Datei wurde erfolgreich hochgeladen';
-$lang['uploadfail']            = 'Hochladen fehlgeschlagen. Keine Berechtigung?';
-$lang['uploadwrong']           = 'Hochladen verweigert. Diese Dateiendung ist nicht erlaubt.';
-$lang['uploadexist']           = 'Datei existiert bereits. Keine Änderungen vorgenommen.';
-$lang['uploadbadcontent']      = 'Die hochgeladenen Daten stimmen nicht mit der Dateiendung %s überein.';
-$lang['uploadspam']            = 'Hochladen verweigert: Treffer auf der Spamliste.';
-$lang['uploadxss']             = 'Hochladen verweigert: Daten scheinen Schadcode zu enthalten.';
-$lang['uploadsize']            = 'Die hochgeladene Datei war zu groß. (max. %s)';
-$lang['deletesucc']            = 'Die Datei "%s" wurde gelöscht.';
-$lang['deletefail']            = '"%s" konnte nicht gelöscht werden - prüfen Sie die Berechtigungen.';
-$lang['mediainuse']            = 'Die Datei "%s" wurde nicht gelöscht - sie wird noch verwendet.';
-$lang['namespaces']            = 'Namensräume';
-$lang['mediafiles']            = 'Vorhandene Dateien in';
-$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 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.';
-$lang['hits']                  = 'Treffer';
-$lang['quickhits']             = 'Passende Seitennamen';
-$lang['toc']                   = 'Inhaltsverzeichnis';
-$lang['current']               = 'aktuell';
-$lang['yours']                 = 'Ihre Version';
-$lang['diff']                  = 'Zeige Unterschiede zu aktueller Version';
-$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']             = 'Nebeneinander';
-$lang['diffprevrev']           = 'Vorhergehende Überarbeitung';
-$lang['diffnextrev']           = 'Nächste  Überarbeitung';
-$lang['difflastrev']           = 'Letzte  Überarbeitung';
-$lang['diffbothprevrev']       = 'Beide Seiten der vorigen Revision';
-$lang['diffbothnextrev']       = 'Beide Seiten der Revision';
-$lang['line']                  = 'Zeile';
-$lang['breadcrumb']            = 'Zuletzt angesehen:';
-$lang['youarehere']            = 'Sie befinden sich hier:';
-$lang['lastmod']               = 'Zuletzt geändert:';
-$lang['by']                    = 'von';
-$lang['deleted']               = 'gelöscht';
-$lang['created']               = 'angelegt';
-$lang['restored']              = 'alte Version wiederhergestellt (%s)';
-$lang['external_edit']         = 'Externe Bearbeitung';
-$lang['summary']               = 'Zusammenfassung';
-$lang['noflash']               = 'Das <a href="http://www.adobe.com/products/flashplayer/">Adobe Flash Plugin</a> wird benötigt, um diesen Inhalt anzuzeigen.';
-$lang['download']              = 'Schnipsel herunterladen';
-$lang['tools']                 = 'Werkzeuge';
-$lang['user_tools']            = 'Benutzer-Werkzeuge';
-$lang['site_tools']            = 'Webseiten-Werkzeuge';
-$lang['page_tools']            = 'Seiten-Werkzeuge';
-$lang['skip_to_content']       = 'zum Inhalt springen';
-$lang['sidebar']               = 'Seitenleiste';
-$lang['mail_newpage']          = 'Neue Seite:';
-$lang['mail_changed']          = 'Seite geändert:';
-$lang['mail_subscribe_list']   = 'Geänderte Seiten im Namensraum:';
-$lang['mail_new_user']         = 'Neuer Benutzer:';
-$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['qb_bold']               = 'Fetter Text';
-$lang['qb_italic']             = 'Kursiver Text';
-$lang['qb_underl']             = 'Unterstrichener Text';
-$lang['qb_code']               = 'Code Text';
-$lang['qb_strike']             = 'Durchgestrichener Text';
-$lang['qb_h1']                 = 'Level 1 Überschrift';
-$lang['qb_h2']                 = 'Level 2 Überschrift';
-$lang['qb_h3']                 = 'Level 3 Überschrift';
-$lang['qb_h4']                 = 'Level 4 Überschrift';
-$lang['qb_h5']                 = 'Level 5 Überschrift';
-$lang['qb_h']                  = 'Überschrift';
-$lang['qb_hs']                 = 'Wähle die Überschrift';
-$lang['qb_hplus']              = 'Obere Überschrift';
-$lang['qb_hminus']             = 'Untere Überschrift';
-$lang['qb_hequal']             = 'Gleichzeilige Überschrift';
-$lang['qb_link']               = 'Interner Link';
-$lang['qb_extlink']            = 'Externer Link';
-$lang['qb_hr']                 = 'Horizontale Linie';
-$lang['qb_ol']                 = 'Nummerierter Listenpunkt';
-$lang['qb_ul']                 = 'Listenpunkt';
-$lang['qb_media']              = 'Bilder und andere Dateien hinzufügen (öffnet sich in einem neuen Fenster)';
-$lang['qb_sig']                = 'Unterschrift einfügen';
-$lang['qb_smileys']            = 'Smileys';
-$lang['qb_chars']              = 'Sonderzeichen';
-$lang['upperns']               = 'zum übergeordneten Namensraum springen';
-$lang['metaedit']              = 'Metadaten bearbeiten';
-$lang['metasaveerr']           = 'Die Metadaten konnten nicht gesichert werden';
-$lang['metasaveok']            = 'Metadaten gesichert';
-$lang['img_title']             = 'Titel:';
-$lang['img_caption']           = 'Bildunterschrift:';
-$lang['img_date']              = 'Datum:';
-$lang['img_fname']             = 'Dateiname:';
-$lang['img_fsize']             = 'Größe:';
-$lang['img_artist']            = 'FotografIn:';
-$lang['img_copyr']             = 'Copyright:';
-$lang['img_format']            = 'Format:';
-$lang['img_camera']            = 'Kamera:';
-$lang['img_keywords']          = 'Schlagwörter:';
-$lang['img_width']             = 'Breite:';
-$lang['img_height']            = 'Höhe:';
-$lang['subscr_subscribe_success'] = '%s hat nun Änderungen der Seite %s abonniert';
-$lang['subscr_subscribe_error'] = '%s kann die Änderungen der Seite %s nicht abonnieren';
-$lang['subscr_subscribe_noaddress'] = 'Weil Ihre E-Mail-Adresse fehlt, können Sie das Thema nicht abonnieren';
-$lang['subscr_unsubscribe_success'] = 'Das Abonnement von %s für die Seite %s wurde aufgelöst';
-$lang['subscr_unsubscribe_error'] = 'Das Abonnement von %s für die Seite %s konnte nicht aufgelöst werden';
-$lang['subscr_already_subscribed'] = '%s hat %s bereits abonniert';
-$lang['subscr_not_subscribed'] = '%s hat %s nicht abonniert';
-$lang['subscr_m_not_subscribed'] = 'Sie haben die aktuelle Seite und ihre Namensräume nicht abonniert.';
-$lang['subscr_m_new_header']   = 'Abonnement hinzufügen';
-$lang['subscr_m_current_header'] = 'Aktuelle Abonnements';
-$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']   = '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 bitte an den Admin.';
-$lang['i_chooselang']          = 'Wählen Sie Ihre Sprache';
-$lang['i_installer']           = 'DokuWiki Installation';
-$lang['i_wikiname']            = 'Wiki-Name';
-$lang['i_enableacl']           = 'Zugangskontrolle (ACL) aktivieren (empfohlen)';
-$lang['i_superuser']           = 'Benutzername des Administrators';
-$lang['i_problems']            = 'Das Installationsprogramm hat unten aufgeführte Probleme festgestellt, die zunächst behoben werden müssen bevor Sie mit der Installation fortfahren können.';
-$lang['i_modified']            = 'Aus Sicherheitsgründen arbeitet dieses Skript nur mit einer neuen bzw. nicht modifizierten DokuWiki Installation. Sie sollten entweder alle Dateien noch einmal frisch installieren oder die <a href="http://dokuwiki.org/install">Dokuwiki-Installationsanleitung</a> konsultieren.';
-$lang['i_funcna']              = 'Die PHP-Funktion <code>%s</code> ist nicht verfügbar. Unter Umständen wurde sie von Ihrem Hoster deaktiviert?';
-$lang['i_phpver']              = 'Ihre PHP-Version <code>%s</code> ist niedriger als die benötigte Version <code>%s</code>. Bitte aktualisieren Sie Ihre PHP-Installation.';
-$lang['i_mbfuncoverload']      = 'Um DokuWiki zu starten muss mbstring.func_overload in php.ini ausgeschaltet sein.';
-$lang['i_permfail']            = '<code>%s</code> ist nicht durch DokuWiki beschreibbar. Sie müssen die Berechtigungen dieses Ordners ändern!';
-$lang['i_confexists']          = '<code>%s</code> existiert bereits';
-$lang['i_writeerr']            = '<code>%s</code> konnte nicht erzeugt werden. Sie sollten die Verzeichnis-/Datei-Rechte überprüfen und die Datei manuell anlegen.';
-$lang['i_badhash']             = 'Unbekannte oder modifizierte dokuwiki.php (Hash=<code>%s</code>)';
-$lang['i_badval']              = '<code>%s</code> - unerlaubter oder leerer Wert';
-$lang['i_success']             = 'Die Konfiguration wurde erfolgreich abgeschlossen. Sie können jetzt die install.php löschen. Ihr <a href="doku.php?id=wiki:welcome">neues DokuWiki</a> ist jetzt für Sie bereit.';
-$lang['i_failure']             = 'Es sind Fehler beim Schreiben der Konfigurationsdateien aufgetreten. Sie müssen diese von Hand beheben, bevor Sie Ihr <a href="doku.php?id=wiki:welcome">neues DokuWiki</a> nutzen können.';
-$lang['i_policy']              = 'Anfangseinstellungen der Zugangskontrolle (ACL)';
-$lang['i_pol0']                = 'Offenes Wiki (lesen, schreiben und hochladen für alle Benutzer)';
-$lang['i_pol1']                = 'Öffentliches Wiki (Lesen für alle, Schreiben und Hochladen nur für registrierte Benutzer)';
-$lang['i_pol2']                = 'Geschlossenes Wiki (Lesen, Schreiben und Hochladen nur für registrierte Benutzer)';
-$lang['i_allowreg']            = 'Benutzer dürfen sich registrieren';
-$lang['i_retry']               = 'Wiederholen';
-$lang['i_license']             = 'Bitte wählen Sie die Lizenz, unter die Sie Ihre Inhalte stellen möchten:';
-$lang['i_license_none']        = 'Lizensierungsinformation nicht anzeigen';
-$lang['i_pop_field']           = 'Bitte helfen Sie mit, DokuWiki zu verbessern:';
-$lang['i_pop_label']           = 'Einmal monatlich anonymisierte Nutzungsdaten an das DokuWiki-Entwicklerteam senden';
-$lang['recent_global']         = 'Im Moment sehen Sie die Änderungen im Namensraum <b>%s</b>. Sie können auch <a href="%s">die Änderungen im gesamten Wiki sehen</a>.';
-$lang['years']                 = 'vor %d Jahren';
-$lang['months']                = 'vor %d Monaten';
-$lang['weeks']                 = 'vor %d Wochen';
-$lang['days']                  = 'vor %d Tagen';
-$lang['hours']                 = 'vor %d Stunden';
-$lang['minutes']               = 'vor %d Minuten';
-$lang['seconds']               = 'vor %d Sekunden';
-$lang['wordblock']             = 'Ihre Bearbeitung wurde nicht gespeichert, da sie gesperrten Text enthielt (Spam).';
-$lang['media_uploadtab']       = 'Hochladen';
-$lang['media_searchtab']       = 'Suchen';
-$lang['media_file']            = 'Datei';
-$lang['media_viewtab']         = 'Anzeigen';
-$lang['media_edittab']         = 'Bearbeiten';
-$lang['media_historytab']      = 'Verlauf';
-$lang['media_list_thumbs']     = 'Vorschaubilder';
-$lang['media_list_rows']       = 'Reihen';
-$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.';
-$lang['media_search']          = 'Im Namensraum <strong>%s</strong> suchen.';
-$lang['media_view']            = '%s';
-$lang['media_viewold']         = '%s in %s';
-$lang['media_edit']            = '%s bearbeiten';
-$lang['media_history']         = 'Versionsverlauf von %s.';
-$lang['media_meta_edited']     = 'Meta-Informationen bearbeitet';
-$lang['media_perm_read']       = 'Sie besitzen nicht die notwendigen Berechtigungen um die Datei anzuzeigen.';
-$lang['media_perm_upload']     = 'Sie besitzen nicht die notwendigen Berechtigungen um Dateien hochzuladen.';
-$lang['media_update']          = 'Neue Version hochladen';
-$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']          = 'Suchergebnisse';
-$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
-@DOKUWIKIURL@';
diff --git a/wiki/inc/lang/de/locked.txt b/wiki/inc/lang/de/locked.txt
deleted file mode 100644
index 97323ca..0000000
--- a/wiki/inc/lang/de/locked.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Seite gesperrt ======
-
-Diese Seite ist momentan von einem anderen Benutzer gesperrt. Warten Sie, bis dieser mit dem Bearbeiten fertig ist oder die Sperre abläuft.
-
diff --git a/wiki/inc/lang/de/login.txt b/wiki/inc/lang/de/login.txt
deleted file mode 100644
index 6698da6..0000000
--- a/wiki/inc/lang/de/login.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Anmelden ======
-
-Geben Sie Ihren Benutzernamen und Ihr Passwort in das Formular unten ein, um sich anzumelden. Bitte beachten Sie, dass dafür "Cookies" in den Sicherheitseinstellungen Ihres Browsers erlaubt sein müssen.
-
diff --git a/wiki/inc/lang/de/mailtext.txt b/wiki/inc/lang/de/mailtext.txt
deleted file mode 100644
index 5968a70..0000000
--- a/wiki/inc/lang/de/mailtext.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-Eine Seite in Ihrem Wiki wurde geändert oder neu angelegt. Hier sind die Details:
-
-Datum          : @DATE@
-Browser        : @BROWSER@
-IP-Adresse     : @IPADDRESS@
-Hostname       : @HOSTNAME@
-Alte Version   : @OLDPAGE@
-Neue Version   : @NEWPAGE@
-Zusammenfassung: @SUMMARY@
-Benutzer       : @USER@
-
-@DIFF@
diff --git a/wiki/inc/lang/de/mailwrap.html b/wiki/inc/lang/de/mailwrap.html
deleted file mode 100644
index 7df0cdc..0000000
--- a/wiki/inc/lang/de/mailwrap.html
+++ /dev/null
@@ -1,13 +0,0 @@
-<html>
-<head>
-    <title>@TITLE@</title>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-</head>
-<body>
-
-@HTMLBODY@
-
-<br /><hr />
-<small>@EMAILSIGNATURE@</small>
-</body>
-</html>
diff --git a/wiki/inc/lang/de/newpage.txt b/wiki/inc/lang/de/newpage.txt
deleted file mode 100644
index 7871c67..0000000
--- a/wiki/inc/lang/de/newpage.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== Dieses Thema existiert noch nicht ======
-
-Sie sind einem Link zu einer Seite gefolgt, die noch nicht existiert. Sie können die Seite mit dem Knopf **"[Seite anlegen]"** selbst anlegen und mit Inhalt füllen.
-
-
diff --git a/wiki/inc/lang/de/norev.txt b/wiki/inc/lang/de/norev.txt
deleted file mode 100644
index 8a9c692..0000000
--- a/wiki/inc/lang/de/norev.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Version existiert nicht ======
-
-Die angegebene Version des Dokuments wurde nicht gefunden. Benutzen Sie den **''[Ältere Versionen]''** Knopf,  um eine Liste aller verfügbaren Versionen dieses Dokuments zu erhalten.
-
diff --git a/wiki/inc/lang/de/password.txt b/wiki/inc/lang/de/password.txt
deleted file mode 100644
index e6ab83c..0000000
--- a/wiki/inc/lang/de/password.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-Hallo @FULLNAME@!
-
-Hier sind Ihre Benutzerdaten für @TITLE@ auf @DOKUWIKIURL@
-
-Benutzername: @LOGIN@
-Passwort    : @PASSWORD@
diff --git a/wiki/inc/lang/de/preview.txt b/wiki/inc/lang/de/preview.txt
deleted file mode 100644
index b07ae50..0000000
--- a/wiki/inc/lang/de/preview.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== Vorschau ======
-
-So wird Ihr Text später aussehen. Achtung: Der Text wurde noch **nicht gespeichert**!
-
-
diff --git a/wiki/inc/lang/de/pwconfirm.txt b/wiki/inc/lang/de/pwconfirm.txt
deleted file mode 100644
index b571163..0000000
--- a/wiki/inc/lang/de/pwconfirm.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-Hallo @FULLNAME@!
-
-Jemand hat ein neues Passwort für Ihren @TITLE@
-login auf @DOKUWIKIURL@ angefordert.
-
-Wenn Sie diese Änderung nicht angefordert haben, ignorieren Sie diese
-E-Mail einfach.
-
-Um die Anforderung zu bestätigen, folgen Sie bitte dem unten angegebenen
-Bestätigungslink.
-
-@CONFIRM@
diff --git a/wiki/inc/lang/de/read.txt b/wiki/inc/lang/de/read.txt
deleted file mode 100644
index bc011d0..0000000
--- a/wiki/inc/lang/de/read.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-Diese Seite ist nicht editierbar. Sie können den Quelltext sehen, jedoch nicht verändern. Kontaktieren Sie den Administrator, wenn Sie glauben, dass hier ein Fehler vorliegt.
-
diff --git a/wiki/inc/lang/de/recent.txt b/wiki/inc/lang/de/recent.txt
deleted file mode 100644
index c05bbae..0000000
--- a/wiki/inc/lang/de/recent.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== Letzte Änderungen ======
-
-Die folgenden Seiten wurden zuletzt geändert.
-
-
diff --git a/wiki/inc/lang/de/register.txt b/wiki/inc/lang/de/register.txt
deleted file mode 100644
index f1ea30a..0000000
--- a/wiki/inc/lang/de/register.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Als neuer Benutzer registrieren ======
-
-Bitte füllen Sie alle Felder aus, um einen neuen Benutzer-Account in diesem Wiki anzulegen. Stellen Sie sicher, dass eine **gültige E-Mail-Adresse** angegeben wird - das Passwort wird an diese Adresse gesendet. Der Benutzername sollte aus einem Wort ohne Umlaute, Leer- oder Sonderzeichen bestehen.
-
diff --git a/wiki/inc/lang/de/registermail.txt b/wiki/inc/lang/de/registermail.txt
deleted file mode 100644
index e19fb8f..0000000
--- a/wiki/inc/lang/de/registermail.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-Ein neuer Benutzer hat sich registriert. Hier sind die Details:
-
-Benutzername : @NEWUSER@
-Voller Name  : @NEWNAME@
-E-Mail       : @NEWEMAIL@
-
-Date         : @DATE@
-Browser      : @BROWSER@
-IP-Address   : @IPADDRESS@
-Hostname     : @HOSTNAME@
diff --git a/wiki/inc/lang/de/resendpwd.txt b/wiki/inc/lang/de/resendpwd.txt
deleted file mode 100644
index a63fd5d..0000000
--- a/wiki/inc/lang/de/resendpwd.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Neues Passwort anfordern ======
-
-Füllen Sie alle Felder unten aus, um ein neues Passwort für Ihren Zugang zu erhalten. Das neue Passwort wird an Ihre gespeicherte E-Mail-Adresse geschickt. Der Benutzername muss Ihrem Wiki-Benutzernamen entsprechen.
diff --git a/wiki/inc/lang/de/resetpwd.txt b/wiki/inc/lang/de/resetpwd.txt
deleted file mode 100644
index a0a55c6..0000000
--- a/wiki/inc/lang/de/resetpwd.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Neues Passwort setzen  ======
-
-Bitte geben Sie ein neues Passwort für Ihren Wiki-Zugang ein.
-
diff --git a/wiki/inc/lang/de/revisions.txt b/wiki/inc/lang/de/revisions.txt
deleted file mode 100644
index 843c3f9..0000000
--- a/wiki/inc/lang/de/revisions.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Ältere Versionen ======
-
-Dies sind ältere Versionen der gewählten Seite. Um zu einer älteren Version zurückzukehren, wählen Sie die entsprechende Version aus, klicken auf **''[Diese Seite bearbeiten]''** und speichern Sie diese erneut ab.
-
diff --git a/wiki/inc/lang/de/searchpage.txt b/wiki/inc/lang/de/searchpage.txt
deleted file mode 100644
index 19fe84b..0000000
--- a/wiki/inc/lang/de/searchpage.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Suche ======
-
-Unten sind die Ergebnisse Ihrer Suche gelistet. @CREATEPAGEINFO@
diff --git a/wiki/inc/lang/de/showrev.txt b/wiki/inc/lang/de/showrev.txt
deleted file mode 100644
index 65f53c9..0000000
--- a/wiki/inc/lang/de/showrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**Dies ist eine alte Version des Dokuments!**
-----
diff --git a/wiki/inc/lang/de/stopwords.txt b/wiki/inc/lang/de/stopwords.txt
deleted file mode 100644
index 0487a94..0000000
--- a/wiki/inc/lang/de/stopwords.txt
+++ /dev/null
@@ -1,125 +0,0 @@
-# Die Wörter dieser Liste werden bei der Indexierung ignoriert. Jedes Wort steht in einer neuen Zeile.
-# Beachten Sie beim Bearbeiten der Datei darauf, dass Sie UNIX-Zeilenumbrüche verwenden (einfacher Zeilenumbruch).
-# Wörter, die kürzer als 3 Buchstaben sind, brauchen Sie nicht in die Liste mit aufnehmen. Diese werden automatisch ignoriert.
-# Diese Liste basiert auf der folgenden: http://www.ranks.nl/stopwords/
-aber
-als
-auch
-auf
-aus
-bei
-bin
-bis
-bist
-dadurch
-daher
-darum
-das
-daß
-dass
-dein
-deine
-dem
-den
-der
-des
-dessen
-deshalb
-die
-dies
-dieser
-dieses
-doch
-dort
-durch
-ein
-eine
-einem
-einen
-einer
-eines
-euer
-eure
-für
-hatte
-hatten
-hattest
-hattet
-hier
-hinter
-ich
-ihr
-ihre
-in
-im
-ist
-jede
-jedem
-jeden
-jeder
-jedes
-jener
-jenes
-jetzt
-kann
-kannst
-können
-könnt
-machen
-mein
-meine
-mit
-muß
-mußt
-musst
-müssen
-müßt
-nach
-nachdem
-nein
-nicht
-nun
-oder
-seid
-sein
-seine
-sich
-sie
-sind
-soll
-sollen
-sollst
-sollt
-sonst
-soweit
-sowie
-und
-unser
-unsere
-unter
-vom
-von
-vor
-um
-wann
-warum
-was
-weiter
-weitere
-wenn
-wer
-werde
-werden
-werdet
-weshalb
-wie
-wieder
-wieso
-wir
-wird
-wirst
-woher
-wohin
-zum
-zur
-über
diff --git a/wiki/inc/lang/de/subscr_digest.txt b/wiki/inc/lang/de/subscr_digest.txt
deleted file mode 100644
index 75d9236..0000000
--- a/wiki/inc/lang/de/subscr_digest.txt
+++ /dev/null
@@ -1,16 +0,0 @@
-Hallo!
-
-Die Seite @PAGE@ im @TITLE@ Wiki wurde bearbeitet.
-Übersicht der Änderungen:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-Alte Revision: @OLDPAGE@
-Neue Revision: @NEWPAGE@
-
-Um das Abonnement für diese Seite aufzulösen, melden Sie sich im Wiki an
-@DOKUWIKIURL@, besuchen dann
-@SUBSCRIBE@
-und klicken auf den Link 'Aboverwaltung'.
diff --git a/wiki/inc/lang/de/subscr_form.txt b/wiki/inc/lang/de/subscr_form.txt
deleted file mode 100644
index 4ba6afb..0000000
--- a/wiki/inc/lang/de/subscr_form.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Abonnementverwaltung ======
-
-Hier können Sie Ihre Abonnements für die aktuelle Seite oder den aktuellen [[doku>Namespaces|Namespace]] verwalten.
diff --git a/wiki/inc/lang/de/subscr_list.txt b/wiki/inc/lang/de/subscr_list.txt
deleted file mode 100644
index 1b2331a..0000000
--- a/wiki/inc/lang/de/subscr_list.txt
+++ /dev/null
@@ -1,13 +0,0 @@
-Hallo!
-
-Seite im Namensraum @PAGE@ im @TITLE@ Wiki wurden bearbeitet.
-Das sind die geänderten Seiten:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-Um das Abonnement für diese Seite aufzulösen, melden Sie sich im Wiki an
-@DOKUWIKIURL@, besuchen dann
-@SUBSCRIBE@
-und klicken auf die Taste 'Änderungen abbestellen'.
diff --git a/wiki/inc/lang/de/subscr_single.txt b/wiki/inc/lang/de/subscr_single.txt
deleted file mode 100644
index 087ad5a..0000000
--- a/wiki/inc/lang/de/subscr_single.txt
+++ /dev/null
@@ -1,19 +0,0 @@
-Hallo!
-
-Die Seite @PAGE@ im @TITLE@ Wiki wurde bearbeitet.
-Übersicht der Änderungen:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-Datum: @DATE@
-Benutzer: @USER@
-Zusammenfassung: @SUMMARY@
-Alte Revision: @OLDPAGE@
-Neue Revision: @NEWPAGE@
-
-Um das Abonnement für diese Seite aufzulösen, melden Sie sich im Wiki an
-@DOKUWIKIURL@, besuchen dann
-@SUBSCRIBE@
-und klicken auf die Taste 'Aboverwaltung'.
diff --git a/wiki/inc/lang/de/updateprofile.txt b/wiki/inc/lang/de/updateprofile.txt
deleted file mode 100644
index f19dd13..0000000
--- a/wiki/inc/lang/de/updateprofile.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== Benutzerprofil ändern ======
-
-Nur die Felder, die Sie ändern, werden aktualisiert. Alle anderen bleiben, wie sie sind. Ihren Benutzernamen können Sie jedoch nicht ändern.
-
-
diff --git a/wiki/inc/lang/de/uploadmail.txt b/wiki/inc/lang/de/uploadmail.txt
deleted file mode 100644
index 3646bcc..0000000
--- a/wiki/inc/lang/de/uploadmail.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-Eine Datei wurde in Ihrem Wiki hochgeladen. Hier sind die Details:
-
-Datei       : @MEDIA@
-Alte Version: @OLD@
-Datum       : @DATE@
-Browser     : @BROWSER@
-IP-Adresse  : @IPADDRESS@
-Hostname    : @HOSTNAME@
-Größe       : @SIZE@
-MIME-Typ    : @MIME@
-Benutzer    : @USER@
diff --git a/wiki/inc/lang/el/admin.txt b/wiki/inc/lang/el/admin.txt
deleted file mode 100644
index 729004b..0000000
--- a/wiki/inc/lang/el/admin.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== ΔιαχείÏιση ======
-
-ΠαÏακάτω μποÏείτε να βÏείτε μια λίστα με τις λειτουÏγίες διαχείÏισης στο DokuWiki
diff --git a/wiki/inc/lang/el/adminplugins.txt b/wiki/inc/lang/el/adminplugins.txt
deleted file mode 100644
index ef1a285..0000000
--- a/wiki/inc/lang/el/adminplugins.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== ΠÏόσθετα =====
\ No newline at end of file
diff --git a/wiki/inc/lang/el/backlinks.txt b/wiki/inc/lang/el/backlinks.txt
deleted file mode 100644
index 572f857..0000000
--- a/wiki/inc/lang/el/backlinks.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== ΣÏνδεσμοι Ï€Ïος την Ï„Ïέχουσα σελίδα ======
-
-Οι παÏακάτω σελίδες πεÏιέχουν συνδέσμους Ï€Ïος την Ï„Ïέχουσα σελίδα.
\ No newline at end of file
diff --git a/wiki/inc/lang/el/conflict.txt b/wiki/inc/lang/el/conflict.txt
deleted file mode 100644
index a2065c0..0000000
--- a/wiki/inc/lang/el/conflict.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-====== ΥπάÏχει μία νεώτεÏη έκδοση αυτής της σελίδας ======
-
-ΥπάÏχει μία νεώτεÏη έκδοση της σελίδας που Ï„Ïoποποιήσατε. 
-Αυτό συμβαίνει εάν κάποιος άλλος χÏήστης Ï„Ïοποποίησε την ίδια σελίδα ενώ την επεξεÏγαζόσασταν και εσείς.
-
-Ελέγξτε Ï€Ïοσεκτικά τις διαφοÏές που παÏουσιάζονται παÏακάτω και έπειτα αποφασίστε ποια έκδοση θα κÏατήσετε.
-Εάν επιλέξετε ''Αποθήκευση'', η δική σας έκδοση θα αποθηκευτεί. 
-Εάν επιλέξετε ''ΑκÏÏωση'', η νεώτεÏη έκδοση θα διατηÏηθεί ως Ï„Ïέχουσα.
diff --git a/wiki/inc/lang/el/denied.txt b/wiki/inc/lang/el/denied.txt
deleted file mode 100644
index 25fcbe8..0000000
--- a/wiki/inc/lang/el/denied.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Μη επιτÏεπτή ενέÏγεια ======
-
-Συγγνώμη, αλλά δεν έχετε επαÏκή δικαιώματα για την συγκεκÏιμένη ενέÏγεια.
-
diff --git a/wiki/inc/lang/el/diff.txt b/wiki/inc/lang/el/diff.txt
deleted file mode 100644
index dde065b..0000000
--- a/wiki/inc/lang/el/diff.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== ΣÏγκÏιση εκδόσεων ======
-
-Εδώ βλέπετε τις διαφοÏές Î¼ÎµÏ„Î±Î¾Ï Ï„Î·Ï‚ επιλεγμένης έκδοσης και της Ï„Ïέχουσας έκδοσης της σελίδας.
diff --git a/wiki/inc/lang/el/draft.txt b/wiki/inc/lang/el/draft.txt
deleted file mode 100644
index 5ca7b8d..0000000
--- a/wiki/inc/lang/el/draft.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-====== Î’Ïέθηκε μία αυτόματα αποθηκευμένη σελίδα ======
-
-Η τελευταία Ï„Ïοποποίηση αυτής της σελίδας δεν ολοκληÏώθηκε επιτυχώς. 
-Η εφαÏμογή αποθήκευσε αυτόματα μία εκδοχή της σελίδας την ÏŽÏα που την επεξεÏγαζόσασταν και μποÏείτε να την χÏησιμοποιήσετε για να συνεχίσετε την εÏγασία σας.
-ΠαÏακάτω φαίνεται αυτή η πιο Ï€Ïόσφατη αυτόματα αποθηκευμένη σελίδα.
-
-ΜποÏείτε να //επαναφέÏετε// αυτή την αυτόματα αποθηκευμένη σελίδα ως Ï„Ïέχουσα, να την //διαγÏάψετε// ή να //ακυÏώσετε// τη διαδικασία Ï„Ïοποποίησης της Ï„Ïέχουσας σελίδας.
-
-
diff --git a/wiki/inc/lang/el/edit.txt b/wiki/inc/lang/el/edit.txt
deleted file mode 100644
index 8d9559f..0000000
--- a/wiki/inc/lang/el/edit.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-ΤÏοποποιήστε την σελίδα **μόνο** εάν μποÏείτε να την **βελτιώσετε**. 
-Για να κάνετε δοκιμές με ασφάλεια ή να εξοικειωθείτε με το πεÏιβάλλον χÏησιμοποιήστε το [[:playground:playground|playground]]. 
-Î‘Ï†Î¿Ï Ï„Ïοποποιήστε την σελίδα επιλέξτε ''Αποθήκευση''. Δείτε τις [[:wiki:syntax|οδηγίες]] για την σωστή σÏνταξη.
diff --git a/wiki/inc/lang/el/editrev.txt b/wiki/inc/lang/el/editrev.txt
deleted file mode 100644
index ac6bc5a..0000000
--- a/wiki/inc/lang/el/editrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**ΦοÏτώσατε μια παλαιότεÏη έκδοση της σελίδας!** Εάν την αποθηκεÏσετε, θα αντικαταστήσει την Ï„Ïέχουσα έκδοση.
-----
\ No newline at end of file
diff --git a/wiki/inc/lang/el/index.txt b/wiki/inc/lang/el/index.txt
deleted file mode 100644
index e2da3a8..0000000
--- a/wiki/inc/lang/el/index.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Κατάλογος ======
-
-Εδώ βλέπετε τον κατάλογο όλων των διαθέσιμων σελίδων, ταξινομημένες κατά [[doku>namespaces|φακέλους]].
diff --git a/wiki/inc/lang/el/install.html b/wiki/inc/lang/el/install.html
deleted file mode 100644
index c99a02f..0000000
--- a/wiki/inc/lang/el/install.html
+++ /dev/null
@@ -1,26 +0,0 @@
-<p>Αυτή η σελίδα πεÏιέχει πληÏοφοÏίες που βοηθοÏν στην αÏχική εγκατάσταση και
-ÏÏθμιση της εφαÏμογής <a href="http://www.dokuwiki.org/el:dokuwiki">Dokuwiki</a>.
-ΠεÏισσότεÏες πληÏοφοÏίες υπάÏχουν στη <a href="http://www.dokuwiki.org/el:installer">
-σελίδα τεκμηÏίωσης</a> του Î¿Î´Î·Î³Î¿Ï ÎµÎ³ÎºÎ±Ï„Î¬ÏƒÏ„Î±ÏƒÎ·Ï‚.</p>
-
-<p>Η εφαÏμογή DokuWiki χÏησιμοποιεί απλά αÏχεία για να αποθηκεÏει τις σελίδες
-wiki καθώς και πληÏοφοÏίες που σχετίζονται με αυτές (Ï€.χ. εικόνες, καταλόγους
-αναζήτησης, παλαιότεÏες εκδόσεις σελίδων, κλπ). Για να λειτουÏγεί σωστά η εφαÏμογή
-DokuWiki <strong>Ï€Ïέπει</strong> να έχει δικαιώματα εγγÏαφής στους φακέλους που
-φιλοξενοÏν αυτά τα αÏχεία. Ο οδηγός εγκατάστασης δεν έχει την δυνατότητα να
-παÏαχωÏήσει αυτά τα δικαιώματα εγγÏαφής στους σχετικοÏÏ‚ φακέλους. Ο κανονικός
-Ï„Ïόπος για να γίνει αυτό είναι είτε απευθείας σε πεÏιβάλλον γÏαμμής εντολών ή,
-εάν δεν έχετε τέτοια Ï€Ïόσβαση, μέσω FTP ή του πίνακα ελέγχου του πεÏιβάλλοντος
-φιλοξενίας (π.χ. cPanel).</p>
-
-<p>Ο οδηγός εγκατάστασης θα Ïυθμίσει την εφαÏμογή DokuWiki ώστε να χÏησιμοποιεί
-<abbr title="access control list">ACL</abbr>, με Ï„Ïόπο ώστε ο διαχειÏιστής
-να έχει δυνατότητα εισόδου και Ï€Ïόσβαση στο Î¼ÎµÎ½Î¿Ï Î´Î¹Î±Ï‡ÎµÎ¯Ïισης της εφαÏμογής για
-εγκατάσταση επεκτάσεων, διαχείÏιση χÏηστών, διαχείÏιση δικαιωμάτων Ï€Ïόσβασης στις
-διάφοÏες σελίδες και αλλαγή των Ïυθμίσεων. Αυτό δεν είναι απαÏαίτητο για να
-λειτουÏγήσει η εφαÏμογή, αλλά κάνει την διαχείÏισή της ευκολότεÏη.</p>
-
-<p>Οι έμπειÏοι χÏήστες και οι χÏήστες με ειδικές απαιτήσεις μποÏοÏν να επισκεφθοÏν
-τις σελίδες που πεÏιέχουν λεπτομεÏείς <a href="http://dokuwiki.org/install">
-οδηγίες εγκατάστασης</a> και <a href="http://dokuwiki.org/config">πληÏοφοÏίες
-για τις Ïυθμίσεις</a>.</p>
\ No newline at end of file
diff --git a/wiki/inc/lang/el/jquery.ui.datepicker.js b/wiki/inc/lang/el/jquery.ui.datepicker.js
deleted file mode 100644
index f08d6f2..0000000
--- a/wiki/inc/lang/el/jquery.ui.datepicker.js
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Greek (el) initialisation for the jQuery UI date picker plugin. */
-/* Written by Alex Cicovic (http://www.alexcicovic.com) */
-( function( factory ) {
-	if ( typeof define === "function" && define.amd ) {
-
-		// AMD. Register as an anonymous module.
-		define( [ "../widgets/datepicker" ], factory );
-	} else {
-
-		// Browser globals
-		factory( jQuery.datepicker );
-	}
-}( function( datepicker ) {
-
-datepicker.regional.el = {
-	closeText: "Κλείσιμο",
-	prevText: "ΠÏοηγοÏμενος",
-	nextText: "Επόμενος",
-	currentText: "ΣήμεÏα",
-	monthNames: [ "ΙανουάÏιος","ΦεβÏουάÏιος","ΜάÏτιος","ΑπÏίλιος","Μάιος","ΙοÏνιος",
-	"ΙοÏλιος","ΑÏγουστος","ΣεπτέμβÏιος","ΟκτώβÏιος","ÎοέμβÏιος","ΔεκέμβÏιος" ],
-	monthNamesShort: [ "Ιαν","Φεβ","ΜαÏ","ΑπÏ","Μαι","Ιουν",
-	"Ιουλ","Αυγ","Σεπ","Οκτ","Îοε","Δεκ" ],
-	dayNames: [ "ΚυÏιακή","ΔευτέÏα","ΤÏίτη","ΤετάÏτη","Πέμπτη","ΠαÏασκευή","Σάββατο" ],
-	dayNamesShort: [ "ΚυÏ","Δευ","ΤÏι","Τετ","Πεμ","ΠαÏ","Σαβ" ],
-	dayNamesMin: [ "Κυ","Δε","ΤÏ","Τε","Πε","Πα","Σα" ],
-	weekHeader: "Εβδ",
-	dateFormat: "dd/mm/yy",
-	firstDay: 1,
-	isRTL: false,
-	showMonthAfterYear: false,
-	yearSuffix: "" };
-datepicker.setDefaults( datepicker.regional.el );
-
-return datepicker.regional.el;
-
-} ) );
diff --git a/wiki/inc/lang/el/lang.php b/wiki/inc/lang/el/lang.php
deleted file mode 100644
index 4533f41..0000000
--- a/wiki/inc/lang/el/lang.php
+++ /dev/null
@@ -1,338 +0,0 @@
-<?php
-
-/**
- * @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>
- * @author George Petsagourakis <petsagouris@gmail.com>
- * @author Petros Vidalis <pvidalis@gmail.com>
- * @author Vasileios Karavasilis vasileioskaravasilis@gmail.com
- * @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';
-$lang['doublequoteopening']    = '“';
-$lang['doublequoteclosing']    = 'â€';
-$lang['singlequoteopening']    = '‘';
-$lang['singlequoteclosing']    = '’';
-$lang['apostrophe']            = '’';
-$lang['btn_edit']              = 'ΕπεξεÏγασία σελίδας';
-$lang['btn_source']            = 'ΠÏοβολή κώδικα σελίδας';
-$lang['btn_show']              = 'ΠÏοβολή σελίδας';
-$lang['btn_create']            = 'ΔημιουÏγία σελίδας';
-$lang['btn_search']            = 'Αναζήτηση';
-$lang['btn_save']              = 'Αποθήκευση';
-$lang['btn_preview']           = 'ΠÏοεπισκόπηση';
-$lang['btn_top']               = 'ΕπιστÏοφή στην κοÏυφή της σελίδας';
-$lang['btn_newer']             = '<< Ï€Ïόσφατες';
-$lang['btn_older']             = 'παλαιότεÏες >>';
-$lang['btn_revs']              = 'ΠαλαιότεÏες εκδόσεις σελίδας';
-$lang['btn_recent']            = 'ΠÏόσφατες αλλαγές';
-$lang['btn_upload']            = 'ΦόÏτωση';
-$lang['btn_cancel']            = 'ΑκÏÏωση';
-$lang['btn_index']             = 'Κατάλογος';
-$lang['btn_secedit']           = 'ΕπεξεÏγασία';
-$lang['btn_login']             = 'ΣÏνδεση χÏήστη';
-$lang['btn_logout']            = 'ΑποσÏνδεση χÏήστη';
-$lang['btn_admin']             = 'ΔιαχείÏιση';
-$lang['btn_update']            = 'ΕνημέÏωση';
-$lang['btn_delete']            = 'Σβήσιμο';
-$lang['btn_back']              = 'Πίσω';
-$lang['btn_backlink']          = 'ΣÏνδεσμοι Ï€Ïος αυτή τη σελίδα';
-$lang['btn_subscribe']         = 'ΕγγÏαφή σε λήψη ενημεÏώσεων σελίδας';
-$lang['btn_profile']           = 'ΕπεξεÏγασία Ï€Ïοφίλ';
-$lang['btn_reset']             = 'ΑκÏÏωση';
-$lang['btn_resendpwd']         = 'Εισαγωγή νέου κωδικοÏ';
-$lang['btn_draft']             = 'ΕπεξεÏγασία  αυτόματα αποθηκευμένης σελίδας';
-$lang['btn_recover']           = 'ΕπαναφοÏά αυτόματα αποθηκευμένης σελίδας';
-$lang['btn_draftdel']          = 'ΔιαγÏαφή αυτόματα αποθηκευμένης σελίδας';
-$lang['btn_revert']            = 'Αποκατάσταση';
-$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']                  = 'Κωδικός';
-$lang['newpass']               = 'Îέος κωδικός';
-$lang['oldpass']               = 'Επιβεβαίωση Ï„Ïέχοντος κωδικοÏ';
-$lang['passchk']               = 'ακόμη μια φοÏά';
-$lang['remember']              = 'Απομνημόνευση στοιχείων λογαÏιασμοÏ';
-$lang['fullname']              = 'Ονοματεπώνυμο';
-$lang['email']                 = 'e-mail';
-$lang['profile']               = 'ΠÏοφίλ χÏήστη';
-$lang['badlogin']              = 'Συγνώμη, το όνομα χÏήστη ή ο κωδικός ήταν λανθασμένο.';
-$lang['badpassconfirm']        = 'Ο κωδικός που εισάγατε είναι λανθασμένος';
-$lang['minoredit']             = 'Ασήμαντες αλλαγές';
-$lang['draftdate']             = 'Αυτόματη αποθήκευση Ï€ÏόχειÏης σελίδας στις';
-$lang['nosecedit']             = 'Η σελίδα Ï„Ïοποποιήθηκε στο Î¼ÎµÏ„Î±Î¾Ï ÎºÎ±Î¹ τα στοιχεία της ενότητας δεν ήταν συγχÏονισμένα, οπότε φοÏτώθηκε η πλήÏης σελίδα.  ';
-$lang['regmissing']            = 'ΠÏέπει να συμπληÏώσετε όλα τα πεδία.';
-$lang['reguexists']            = 'Αυτός ο λογαÏιασμός υπάÏχει ήδη.';
-$lang['regsuccess']            = 'Ο λογαÏιασμός δημιουÏγήθηκε και ο κωδικός εστάλει με e-mail.';
-$lang['regsuccess2']           = 'Ο λογαÏιασμός δημιουÏγήθηκε.';
-$lang['regfail']               = 'Δεν έγινε η δημιουÏγία χÏήστη.';
-$lang['regmailfail']           = 'Φαίνεται να υπάÏχει Ï€Ïόβλημα με την αποστολή του ÎºÏ‰Î´Î¹ÎºÎ¿Ï Î¼Î­ÏƒÏ‰ e-mail. ΠαÏακαλοÏμε επικοινωνήστε μαζί μας!';
-$lang['regbadmail']            = 'Η διεÏθυνση e-mail δεν είναι έγκυÏη - εάν πιστεÏετε ότι αυτό είναι λάθος, επικοινωνήστε μαζί μας';
-$lang['regbadpass']            = 'Οι δÏο κωδικοί δεν είναι ίδιοι, Ï€Ïοσπαθήστε ξανά.';
-$lang['regpwmail']             = 'Ο κωδικός σας';
-$lang['reghere']               = 'Δεν έχετε λογαÏιασμό ακόμη? ΔημιουÏγήστε έναν';
-$lang['profna']                = 'Αυτό το wiki δεν υποστηÏίζει την επεξεÏγασία Ï€Ïοφίλ.';
-$lang['profnochange']          = 'Καμία αλλαγή.';
-$lang['profnoempty']           = 'Δεν επιτÏέπεται κενό όνομα χÏήστη η κενή διεÏθυνση email.';
-$lang['profchanged']           = 'Το Ï€Ïοφίλ χÏήστη Ï„Ïοποποιήθηκε επιτυχώς.';
-$lang['profnodelete']          = 'Το wiki δεν υποστηÏίζει την διαγÏαφή χÏηστών';
-$lang['profdeleteuser']        = 'ΔιαγÏαφή λογαÏιασμοÏ';
-$lang['profdeleted']           = 'Ο λογαÏιασμός διαγÏάφηκε από αυτό το wiki';
-$lang['profconfdelete']        = 'Επιθυμώ να διαγÏάψω τον λογαÏιασμό μου από αυτό το wiki. <br/> Αυτή η επιλογή δεν μποÏεί να αναιÏεθεί.';
-$lang['profconfdeletemissing'] = 'Το κουμπί επιβεβαίωσης δεν πατήθηκε';
-$lang['proffail']              = 'Δεν ενημεÏώθηκε το Ï€Ïοφίλ του χÏήστη.';
-$lang['pwdforget']             = 'Ξεχάσατε το κωδικό σας; Αποκτήστε νέο.';
-$lang['resendna']              = 'Αυτό το wiki δεν υποστηÏίζει την εκ\' νέου αποστολή κωδικών.';
-$lang['resendpwd']             = 'Εισαγωγή νέου Ï‰Î´Î¹ÎºÎ¿Ï Î³Î¹Î±';
-$lang['resendpwdmissing']      = 'ΠÏέπει να συμπληÏώσετε όλα τα πεδία.';
-$lang['resendpwdnouser']       = 'Αυτός ο χÏήστης δεν υπάÏχει στα αÏχεία μας.';
-$lang['resendpwdbadauth']      = 'Αυτός ο κωδικός ενεÏγοποίησης δεν είναι έγκυÏος.';
-$lang['resendpwdconfirm']      = 'Ο σÏνδεσμος Ï€Ïος την σελίδα ενεÏγοποίησης εστάλει με e-mail.';
-$lang['resendpwdsuccess']      = 'Ο νέος σας κωδικός εστάλη με e-mail.';
-$lang['license']               = 'Εκτός εάν αναφέÏεται διαφοÏετικά, το πεÏιεχόμενο σε αυτο το wiki διέπεται από την ακόλουθη άδεια:';
-$lang['licenseok']             = 'Σημείωση: ΤÏοποποιώντας αυτή την σελίδα αποδέχεστε την διάθεση του Ï…Î»Î¹ÎºÎ¿Ï ÏƒÎ±Ï‚ σÏμφωνα με την ακόλουθη άδεια:';
-$lang['searchmedia']           = 'Αναζήτηση αÏχείου:';
-$lang['searchmedia_in']        = 'Αναζήτηση σε %s';
-$lang['txt_upload']            = 'Επιλέξτε αÏχείο για φόÏτωση:';
-$lang['txt_filename']          = 'Επιλέξτε νέο όνομα αÏχείου (Ï€ÏοαιÏετικό):';
-$lang['txt_overwrt']           = 'Αντικατάσταση υπάÏχοντος αÏχείου';
-$lang['maxuploadsize']         = 'Μέγιστο μέγεθος αÏχείου: %s.';
-$lang['lockedby']              = 'ΠÏοσωÏινά κλειδωμένο από:';
-$lang['lockexpire']            = 'Το κλείδωμα λήγει στις:';
-$lang['js']['willexpire']      = 'Το κλείδωμά σας για την επεξεÏγασία αυτής της σελίδας θα λήξει σε ένα λεπτό.\n Για να το ανανεώσετε χÏησιμοποιήστε την ΠÏοεπισκόπηση.';
-$lang['js']['notsavedyet']     = 'Οι μη αποθηκευμένες αλλαγές θα χαθοÏν.
-Θέλετε να συνεχίσετε;';
-$lang['js']['searchmedia']     = 'Αναζήτηση για αÏχεία';
-$lang['js']['keepopen']        = 'Το παÏάθυÏο να μην κλείνει';
-$lang['js']['hidedetails']     = 'ΑπόκÏυψη λεπτομεÏειών';
-$lang['js']['mediatitle']      = 'Ρυθμίσεις συνδέσμων';
-$lang['js']['mediadisplay']    = 'ΤÏπος συνδέσμου';
-$lang['js']['mediaalign']      = 'Στοίχηση';
-$lang['js']['mediasize']       = 'Μέγεθος εικόνας';
-$lang['js']['mediatarget']     = 'ΠÏοοÏισμός συνδέσμου';
-$lang['js']['mediaclose']      = 'Κλείσιμο';
-$lang['js']['mediainsert']     = 'Εισαγωγή';
-$lang['js']['mediadisplayimg'] = 'ΠÏοβολή εικόνας.';
-$lang['js']['mediadisplaylnk'] = 'ΠÏοβολή μόνο του συνδέσμου.';
-$lang['js']['mediasmall']      = 'ΜικÏÏŒ μέγεθος';
-$lang['js']['mediamedium']     = 'Μεσαίο μέγεθος';
-$lang['js']['medialarge']      = 'Μεγάλο μέγεθος';
-$lang['js']['mediaoriginal']   = 'ΑÏχικό μέγεθος';
-$lang['js']['medialnk']        = 'ΣÏνδεσμος στην σελίδα λεπτομεÏειών';
-$lang['js']['mediadirect']     = 'Απευθείας σÏνδεσμος στο αυθεντικό';
-$lang['js']['medianolnk']      = 'ΧωÏίς σÏνδεσμο';
-$lang['js']['medianolink']     = 'Îα μην γίνει σÏνδεσμος η εικόνα';
-$lang['js']['medialeft']       = 'ΑÏιστεÏή στοίχιση εικόνας.';
-$lang['js']['mediaright']      = 'Δεξιά στοίχιση εικόνας.';
-$lang['js']['mediacenter']     = 'ΚέντÏική στοίχιση εικόνας.';
-$lang['js']['medianoalign']    = 'ΧωÏίς στοίχηση.';
-$lang['js']['nosmblinks']      = 'Οι σÏνδεσμοι Ï€Ïος Windows shares δουλεÏουν μόνο στον Microsoft Internet Explorer.
-ΜποÏείτε πάντα να κάνετε αντιγÏαφή και επικόλληση του συνδέσμου.';
-$lang['js']['linkwiz']         = 'Αυτόματος Οδηγός Συνδέσμων';
-$lang['js']['linkto']          = 'ΣÏνδεση σε:';
-$lang['js']['del_confirm']     = 'Îα διαγÏαφεί;';
-$lang['js']['restore_confirm'] = 'Θέλετε την επαναφοÏά σε αυτή την έκδοση;';
-$lang['js']['media_diff']      = 'Εμφάνιση διαφοÏών:';
-$lang['js']['media_diff_both'] = 'Δίπλα δίπλα';
-$lang['js']['media_diff_opacity'] = 'Επικάλυψη';
-$lang['js']['media_diff_portions'] = 'ΚÏλιση';
-$lang['js']['media_select']    = 'Επιλογή αÏχείων...';
-$lang['js']['media_upload_btn'] = 'ΦόÏτωση';
-$lang['js']['media_done_btn']  = 'ΟλοκλήÏωση';
-$lang['js']['media_drop']      = 'Ρίξτε αÏχεία εδώ για να τα φοÏτώσετε';
-$lang['js']['media_cancel']    = 'αφαίÏεση';
-$lang['js']['media_overwrt']   = 'Αντικατάσταση υπάÏχοντων αÏχείων';
-$lang['rssfailed']             = 'ΠαÏουσιάστηκε κάποιο σφάλμα κατά την ανάγνωση Î±Ï…Ï„Î¿Ï Ï„Î¿Ï… feed: ';
-$lang['nothingfound']          = 'Δεν βÏέθηκαν σχετικά αποτελέσματα.';
-$lang['mediaselect']           = 'Επιλογή ΑÏχείων';
-$lang['uploadsucc']            = 'Επιτυχής φόÏτωση';
-$lang['uploadfail']            = 'Η μεταφόÏτωση απέτυχε. Πιθανόν αυτό να οφείλεται στις Ïυθμίσεις Ï€Ïόσβασης του αÏχείου.';
-$lang['uploadwrong']           = 'Η μεταφόÏτωση δεν έγινε δεκτή. Δεν επιτÏέπονται αÏχεία Î±Ï…Ï„Î¿Ï Ï„Î¿Ï… Ï„Ïπου!';
-$lang['uploadexist']           = 'Το αÏχείο ήδη υπάÏχει. Δεν έγινε καμία αλλαγή.';
-$lang['uploadspam']            = 'Η μεταφόÏτωση ακυÏώθηκε από το φίλτÏο spam.';
-$lang['uploadxss']             = 'Η μεταφόÏτωση ακυÏώθηκε λόγω Ï€Î¹Î¸Î±Î½Î¿Ï ÎµÏ€Î¹ÎºÎ¯Î½Î´Ï…Î½Î¿Ï… πεÏιεχομένου.';
-$lang['uploadsize']            = 'Το αÏχείο ήταν Ï€Î¿Î»Ï Î¼ÎµÎ³Î¬Î»Î¿. (μέγιστο %s)';
-$lang['deletesucc']            = 'Το αÏχείο "%s" διαγÏάφηκε.';
-$lang['deletefail']            = 'Το αÏχείο "%s" δεν διαγÏάφηκε. Πιθανόν αυτό να οφείλεται στις Ïυθμίσεις Ï€Ïόσβασης του αÏχείου.';
-$lang['mediainuse']            = 'Το αÏχείο "%s" δεν διαγÏάφηκε - είναι ακόμα σε χÏήση.';
-$lang['namespaces']            = 'Φάκελοι';
-$lang['mediafiles']            = 'Διαθέσιμα αÏχεία σε';
-$lang['accessdenied']          = 'Δεν σας επιτÏέπεται να δείτε αυτήν την σελίδα.';
-$lang['mediausage']            = 'ΧÏησιμοποιήστε την ακόλουθη σÏνταξη για να παÏαθέσετε αυτό το αÏχείο:';
-$lang['mediaview']             = 'Κανονική Ï€Ïοβολή αÏχείου';
-$lang['mediaroot']             = 'root';
-$lang['mediaupload']           = 'ΦοÏτώστε ένα αÏχείο στον Ï„Ïέχοντα φάκελο. Για δημιουÏγία υπο-φακέλων, Ï€Ïοσθέστε τους Ï€Ïιν από το όνομα του αÏχείου, στο πεδίο "Αποθήκευση ως", χÏησιμοποιώντας άνω-κάτω τελείες ως διαχωÏιστικά.';
-$lang['mediaextchange']        = 'Η επέκταση του αÏχείου Ï„Ïοποποιήθηκε από .%s σε .%s!';
-$lang['reference']             = 'ΑναφοÏές Ï€Ïος';
-$lang['ref_inuse']             = 'Το αÏχείο δεν μποÏεί να διαγÏαφεί, επειδή είναι ακόμη σε χÏήση από τις ακόλουθες σελίδες:';
-$lang['ref_hidden']            = 'ΜεÏικές αναφοÏές βÏίσκονται σε σελίδες που δεν έχετε δικαίωμα να διαβάσετε';
-$lang['hits']                  = 'ΑναφοÏές';
-$lang['quickhits']             = 'Σχετικές σελίδες';
-$lang['toc']                   = 'Πίνακας ΠεÏιεχομένων';
-$lang['current']               = 'Ï„Ïέχουσα';
-$lang['yours']                 = 'Η έκδοσή σας';
-$lang['diff']                  = 'ΠÏοβολή διαφοÏών με την Ï„Ïέχουσα έκδοση';
-$lang['diff2']                 = 'ΠÏοβολή διαφοÏών Î¼ÎµÏ„Î±Î¾Ï Ï„Ï‰Î½ επιλεγμένων εκδόσεων';
-$lang['difflink']              = 'ΣÏνδεσμος σε αυτή την Ï€Ïοβολή διαφοÏών.';
-$lang['diff_type']             = 'ΠÏοβολή διαφοÏών:';
-$lang['diff_inline']           = 'Σε σειÏά';
-$lang['diff_side']             = 'Δίπλα-δίπλα';
-$lang['diffprevrev']           = 'ΠÏοηγοÏμενη αναθεώÏηση';
-$lang['diffnextrev']           = 'Επόμενη αναθεώÏηση';
-$lang['difflastrev']           = 'Τελευταία αναθεώÏηση';
-$lang['line']                  = 'ΓÏαμμή';
-$lang['breadcrumb']            = 'ΙστοÏικό:';
-$lang['youarehere']            = 'Είστε εδώ:';
-$lang['lastmod']               = 'Τελευταία Ï„Ïοποποίηση:';
-$lang['by']                    = 'από';
-$lang['deleted']               = 'διαγÏάφηκε';
-$lang['created']               = 'δημιουÏγήθηκε';
-$lang['restored']              = 'παλαιότεÏη έκδοση επαναφέÏθηκε (%s)';
-$lang['external_edit']         = 'εξωτεÏική Ï„Ïοποποίηση';
-$lang['summary']               = 'ΕπεξεÏγασία σÏνοψης';
-$lang['noflash']               = 'Το <a href="http://www.adobe.com/products/flashplayer/">Adobe Flash Plugin</a> απαιτείται για την Ï€Ïοβολή Î±Ï…Ï„Î¿Ï Ï„Î¿Ï… στοιχείου.';
-$lang['download']              = 'Λήψη Κώδικα';
-$lang['tools']                 = 'ΕÏγαλεία';
-$lang['user_tools']            = 'ΕÏγαλεία ΧÏήστη';
-$lang['site_tools']            = 'ΕÏγαλεία ιστότοπου';
-$lang['page_tools']            = 'ΕÏγαλεία ιστοσελίδας';
-$lang['skip_to_content']       = 'παÏάληψη πεÏιεχομένων';
-$lang['sidebar']               = 'Sidebar';
-$lang['mail_newpage']          = 'σελίδα Ï€Ïοστέθηκε:';
-$lang['mail_changed']          = 'σελίδα Ï„Ïοποποιήθηκε:';
-$lang['mail_subscribe_list']   = 'σελίδες που άλλαξαν στον φάκελο:';
-$lang['mail_new_user']         = 'νέος χÏήστης:';
-$lang['mail_upload']           = 'αÏχείο φοÏτώθηκε:';
-$lang['changes_type']          = 'Εμφάνιση αλλαγών του';
-$lang['pages_changes']         = 'Σελίδες';
-$lang['media_changes']         = 'ΑÏχεία πολυμέσων';
-$lang['both_changes']          = 'Σελίδες και αÏχεία πολυμέσων';
-$lang['qb_bold']               = 'Έντονο Κείμενο';
-$lang['qb_italic']             = 'Πλάγιο Κείμενο';
-$lang['qb_underl']             = 'ΥπογÏαμμισμένο Κείμενο';
-$lang['qb_code']               = 'Κείμενο κώδικα';
-$lang['qb_strike']             = 'ΔιαγÏαμμισμένο Κείμενο';
-$lang['qb_h1']                 = 'Κεφαλίδα 1ου Επιπέδου';
-$lang['qb_h2']                 = 'Κεφαλίδα 2ου Επιπέδου';
-$lang['qb_h3']                 = 'Κεφαλίδα 3ου Επιπέδου';
-$lang['qb_h4']                 = 'Κεφαλίδα 4ου Επιπέδου';
-$lang['qb_h5']                 = 'Κεφαλίδα 5ου Επιπέδου';
-$lang['qb_h']                  = 'Κεφαλίδα';
-$lang['qb_hs']                 = 'Επιλογή Κεφαλίδας';
-$lang['qb_hplus']              = 'ΜεγαλÏτεÏη Κεφαλίδα';
-$lang['qb_hminus']             = 'ΜικÏότεÏη Κεφαλίδα';
-$lang['qb_hequal']             = 'Κεφαλίδα ίδιο μεγέθους';
-$lang['qb_link']               = 'ΕσωτεÏικός ΣÏνδεσμος';
-$lang['qb_extlink']            = 'ΕξωτεÏικός ΣÏνδεσμος';
-$lang['qb_hr']                 = 'ΔιαχωÏιστική ΓÏαμμή';
-$lang['qb_ol']                 = 'ΑÏιθμημένη Λίστα';
-$lang['qb_ul']                 = 'Λίστα';
-$lang['qb_media']              = 'ΠÏοσθήκη ΑÏχείων';
-$lang['qb_sig']                = 'ΠÏοσθήκη ΥπογÏαφής';
-$lang['qb_smileys']            = 'Smileys';
-$lang['qb_chars']              = 'Ειδικοί ΧαÏακτήÏες';
-$lang['upperns']               = 'πήγαινε στον μητÏικό φάκελο';
-$lang['metaedit']              = 'ΤÏοποποίηση metadata';
-$lang['metasaveerr']           = 'Η αποθήκευση των metadata απέτυχε';
-$lang['metasaveok']            = 'Επιτυχής αποθήκευση metadata';
-$lang['img_title']             = 'Τίτλος:';
-$lang['img_caption']           = 'Λεζάντα:';
-$lang['img_date']              = 'ΗμεÏομηνία:';
-$lang['img_fname']             = 'Όνομα αÏχείου:';
-$lang['img_fsize']             = 'Μέγεθος:';
-$lang['img_artist']            = 'Καλλιτέχνης:';
-$lang['img_copyr']             = 'Copyright:';
-$lang['img_format']            = 'Format:';
-$lang['img_camera']            = 'Camera:';
-$lang['img_keywords']          = 'Λέξεις-κλειδιά:';
-$lang['img_width']             = 'Πλάτος:';
-$lang['img_height']            = 'Ύψος:';
-$lang['subscr_subscribe_success'] = 'Ο/η %s Ï€Ïοστέθηκε στην λίστα ειδοποιήσεων για το %s';
-$lang['subscr_subscribe_error'] = 'Σφάλμα κατά την Ï€Ïοσθήκη του/της %s στην λίστα ειδοποιήσεων για το %s';
-$lang['subscr_subscribe_noaddress'] = 'Δεν υπάÏχει διεÏθυνση ταχυδÏομείου συσχετισμένη με το όνομα χÏήστη σας. Κατά συνέπεια δεν μποÏείτε να Ï€Ïοστεθείτε στην λίστα ειδοποιήσεων';
-$lang['subscr_unsubscribe_success'] = 'Ο/η %s, απομακÏÏνθηκε από την λίστα ειδοποιήσεων για το %s';
-$lang['subscr_unsubscribe_error'] = 'Σφάλμα κατά την απομάκÏυνση του/της %s στην λίστα ειδοποιήσεων για το %s';
-$lang['subscr_already_subscribed'] = 'Ο/η %s είναι ήδη στην λίστα ειδοποίησης για το %s';
-$lang['subscr_not_subscribed'] = 'Ο/η %s δεν είναι στην λίστα ειδοποίησης για το %s';
-$lang['subscr_m_not_subscribed'] = 'Αυτήν την στιγμή, δεν είσαστε εγεγγÏαμμένος/η στην λίστα ειδοποίησης της Ï„Ïέχουσας σελίδας ή φακέλου.';
-$lang['subscr_m_new_header']   = 'ΠÏοσθήκη στην λίστα ειδοποίησης';
-$lang['subscr_m_current_header'] = 'ΤÏέχουσες εγγÏαφές ειδοποιήσεων';
-$lang['subscr_m_unsubscribe']  = 'ΔιαγÏαφή';
-$lang['subscr_m_subscribe']    = 'ΕγγÏαφή';
-$lang['subscr_m_receive']      = 'Λήψη';
-$lang['subscr_style_every']    = 'email σε κάθε αλλαγή';
-$lang['subscr_style_digest']   = 'συνοπτικό email αλλαγών της σελίδας (κάθε %.2f μέÏες)';
-$lang['subscr_style_list']     = 'λίστα σελίδων με αλλαγές μετά από το τελευταίο email (κάθε %.2f μέÏες)';
-$lang['authtempfail']          = 'Η συνδεση χÏηστών είναι απενεÏγοποιημένη αυτή την στιγμή. Αν αυτό διαÏκέσει για πολÏ, παÏακαλοÏμε ενημεÏώστε τον διαχειÏιστή του wiki.';
-$lang['i_chooselang']          = 'Επιλογή γλώσσας';
-$lang['i_installer']           = 'Οδηγός εγκατάστασης DokuWiki';
-$lang['i_wikiname']            = 'Ονομασία wiki';
-$lang['i_enableacl']           = 'ΕνεÏγοποίηση Λίστας Δικαιωμάτων ΠÏόσβασης - ACL (συνίσταται)';
-$lang['i_superuser']           = 'ΔιαχειÏιστής';
-$lang['i_problems']            = 'Ο οδηγός εγκατάστασης συνάντησε τα Ï€Ïοβλήματα που αναφέÏονται παÏακάτω. Η εγκατάσταση δεν θα ολοκληÏωθεί επιτυχώς μέχÏι να επιλυθοÏν αυτά τα Ï€Ïοβλήματα.';
-$lang['i_modified']            = 'Για λόγους ασφαλείας, ο οδηγός εγκατάστασης λειτουÏγεί μόνο με νέες και μη Ï„Ïοποποιημένες εγκαταστάσεις Dokuwiki.
-ΠÏέπει είτε να κάνετε νέα εγκατάσταση, χÏησιμοποιώντας το αÏχικό πακέτο εγκατάστασης, ή να συμβουλευτείτε τις <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>. ΠÏέπει να διοÏθώσετε τα δικαιώματα Ï€Ïόσβασης Î±Ï…Ï„Î¿Ï Ï„Î¿Ï… φακέλου/αÏχείου και να δημιουÏγήσετε το αÏχείο χειÏοκίνητα!';
-$lang['i_badhash']             = 'Μη αναγνωÏίσιμο ή Ï„Ïοποποιημένο αÏχείο dokuwiki.php (hash=<code>%s</code>)';
-$lang['i_badval']              = '<code>%s</code> - λάθος ή ανÏπαÏκτη τιμή';
-$lang['i_success']             = 'Η εγκατάσταση ολοκληÏώθηκε επιτυχώς. ΜποÏείτε πλέον να διαγÏάψετε το αÏχείο install.php. Συνεχίστε στο <a href="doku.php?id=wiki:welcome">νέο σας DokuWiki</a>.';
-$lang['i_failure']             = 'Εμφανίστηκαν κάποια Ï€Ïοβλήματα στη διαδικασία ανανέωσης των αÏχείων Ïυθμίσεων. Πιθανόν να χÏειάζεται να τα Ï„Ïοποποιήσετε χειÏοκίνητα ώστε να μποÏείτε να χÏησιμοποιήσετε το <a href="doku.php?id=wiki:welcome">νέο σας DokuWiki</a>.';
-$lang['i_policy']              = 'ΑÏχική πολιτική Λίστας Δικαιωμάτων ΠÏόσβασης - ACL';
-$lang['i_pol0']                = 'Ανοιχτό Wiki (όλοι μποÏοÏν να διαβάσουν ή να δημιουÏγήσουν/Ï„Ïοποποιήσουν σελίδες και να μεταφοÏτώσουν αÏχεία)';
-$lang['i_pol1']                = 'Δημόσιο Wiki (όλοι μποÏοÏν να διαβάσουν σελίδες αλλά μόνο οι εγγεγÏαμμένοι χÏήστες μποÏοÏν να δημιουÏγήσουν/Ï„Ïοποποιήσουν σελίδες και να μεταφοÏτώσουν αÏχεία)';
-$lang['i_pol2']                = 'Κλειστό Wiki (μόνο οι εγγεγÏαμμένοι χÏήστες μποÏοÏν να διαβάσουν ή να δημιουÏγήσουν/Ï„Ïοποποιήσουν σελίδες και να μεταφοÏτώσουν αÏχεία)';
-$lang['i_allowreg']            = 'Οι χÏήστες επιτÏέπεται να εγγÏαφοÏν μόνοι τους';
-$lang['i_retry']               = 'Îέα Ï€Ïοσπάθεια';
-$lang['i_license']             = 'ΠαÏακαλώ επιλέξτε την άδεια που θα χÏησιμοποιήσετε για την διάθεση του πεÏιεχομένου σας:';
-$lang['recent_global']         = 'Βλέπετε τις αλλαγές εντός του φακέλου <b>%s</b>. ΜποÏείτε επίσης να <a href="%s">δείτε τις Ï€Ïόσφατες αλλαγές σε όλο το wiki</a>.';
-$lang['years']                 = 'Ï€Ïιν %d χÏόνια';
-$lang['months']                = 'Ï€Ïιν %d μήνες';
-$lang['weeks']                 = 'Ï€Ïιν %d εβδομάδες';
-$lang['days']                  = 'Ï€Ïιν %d ημέÏες';
-$lang['hours']                 = 'Ï€Ïιν %d ÏŽÏες';
-$lang['minutes']               = 'Ï€Ïιν %d λεπτά';
-$lang['seconds']               = 'Ï€Ïιν %d δευτεÏόλεπτα';
-$lang['wordblock']             = 'Η αλλαγή σας δεν αποθηκεÏτηκε γιατί πεÏιείχε spam.';
-$lang['media_uploadtab']       = 'ΦόÏτωση';
-$lang['media_searchtab']       = 'Αναζήτηση';
-$lang['media_file']            = 'ΑÏχείο';
-$lang['media_viewtab']         = 'Εμφάνιση';
-$lang['media_edittab']         = 'ΕπεξεÏγασία';
-$lang['media_historytab']      = 'ΙστοÏικό';
-$lang['media_list_thumbs']     = 'ΜικÏογÏαφίες';
-$lang['media_list_rows']       = 'ΓÏαμμές';
-$lang['media_sort_name']       = 'ανά όνομα';
-$lang['media_sort_date']       = 'ανά ημεÏομηνία';
-$lang['media_namespaces']      = 'Επιλογή namespace';
-$lang['media_files']           = 'ΑÏχεία στο %s φάκελο';
-$lang['media_upload']          = 'ΦόÏτωση στο <strong>%s</strong> φάκελο.';
-$lang['media_search']          = 'Αναζήτηση στο <strong>%s</strong> φάκελο.';
-$lang['media_view']            = '%s';
-$lang['media_viewold']         = '%s στα %s';
-$lang['media_edit']            = 'ΕπεξεÏγασία %s';
-$lang['media_history']         = 'ΙστοÏικό των %s';
-$lang['media_meta_edited']     = 'τα μεταδεδομένα επεξεÏγάστηκαν';
-$lang['media_perm_read']       = 'Συγνώμη, δεν έχετε επαÏκή διακαιώματα για να διαβάσετε αυτά τα αÏχεία.';
-$lang['media_perm_upload']     = 'Συγνώμη, δεν έχετε επαÏκή διακαιώματα για να φοÏτώσετε αυτά τα αÏχεία.';
-$lang['media_update']          = 'ΦόÏτωση νέας έκδοσης';
-$lang['media_restore']         = 'ΕπαναφοÏά αυτή της έκδοσης';
-$lang['searchresult']          = 'Αποτέλεσμα έÏευνας';
-$lang['email_signature_text']  = 'Αυτό το e-mail δημιουÏγήθηκε αυτόματα από την εφαÏμογή DokuWiki στην διεÏθυνση
-@DOKUWIKIURL@';
diff --git a/wiki/inc/lang/el/locked.txt b/wiki/inc/lang/el/locked.txt
deleted file mode 100644
index 425c334..0000000
--- a/wiki/inc/lang/el/locked.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== Κλειδωμένη σελίδα ======
-
-Αυτή η σελίδα είναι Ï€Ïος το παÏόν δεσμευμένη για Ï„Ïοποποίηση από άλλον χÏήστη. 
-Θα Ï€Ïέπει να πεÏιμένετε μέχÏι ο συγκεκÏιμένος χÏήστης να σταματήσει να την επεξεÏγάζεται ή να εκπνεÏσει το χÏονικό ÏŒÏιο για το σχετικό κλείδωμα.
-
diff --git a/wiki/inc/lang/el/login.txt b/wiki/inc/lang/el/login.txt
deleted file mode 100644
index 3021a19..0000000
--- a/wiki/inc/lang/el/login.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== ΣÏνδεση χÏήστη ======
-
-Αυτή την στιγμή δεν έχετε συνδεθεί ως χÏήστης!
-Για να συνδεθείτε, εισάγετε τα στοιχεία σας στην παÏακάτω φόÏμα.
-ΠÏέπει να έχετε ενεÏγοποιήσει τα cookies στο Ï€ÏόγÏαμμα πεÏιήγηση σας.
diff --git a/wiki/inc/lang/el/mailtext.txt b/wiki/inc/lang/el/mailtext.txt
deleted file mode 100644
index cc2a22f..0000000
--- a/wiki/inc/lang/el/mailtext.txt
+++ /dev/null
@@ -1,13 +0,0 @@
-Μία σελίδα Ï€Ïοστέθηκε ή Ï„Ïοποποιήθηκε στο DokuWiki σας.
-Αυτά είναι τα αντίστοιχα στοιχεία:
-
-ΗμεÏομηνία      : @DATE@
-ΦυλλομετÏητής   : @BROWSER@
-IP-ΔιεÏθυνση    : @IPADDRESS@
-Όνομα υπολογιστή: @HOSTNAME@
-Παλιά έκδοση    : @OLDPAGE@
-Îέα έκδοση      : @NEWPAGE@
-ΣÏνοψη          : @SUMMARY@
-ΧÏήστης         : @USER@
-
-@DIFF@
diff --git a/wiki/inc/lang/el/mailwrap.html b/wiki/inc/lang/el/mailwrap.html
deleted file mode 100644
index d257190..0000000
--- a/wiki/inc/lang/el/mailwrap.html
+++ /dev/null
@@ -1,13 +0,0 @@
-<html>
-<head>
-<title>@TITLE@</title>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-</head>
-<body>
-
-@HTMLBODY@
-
-<br /><hr />
-<small>@EMAILSIGNATURE@</small>
-</body>
-</html>
\ No newline at end of file
diff --git a/wiki/inc/lang/el/newpage.txt b/wiki/inc/lang/el/newpage.txt
deleted file mode 100644
index 3349ad9..0000000
--- a/wiki/inc/lang/el/newpage.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Αυτή η σελίδα δεν υπάÏχει ακόμη ======
-
-Η σελίδα που ζητάτε δεν υπάÏχει ακόμη. 
-Aν όμως έχετε επαÏκή δικαιώματα, μποÏείτε να την δημιουÏγήσετε επιλέγοντας ''ΔημιουÏγία σελίδας''.
diff --git a/wiki/inc/lang/el/norev.txt b/wiki/inc/lang/el/norev.txt
deleted file mode 100644
index 2b13290..0000000
--- a/wiki/inc/lang/el/norev.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== Αυτή η έκδοση δεν υπάÏχει ======
-
-Η έκδοση που αναζητήσατε δεν υπάÏχει. 
-ΜποÏείτε να δείτε λίστα με τις παλαιότεÏες εκδόσεις της Ï„Ïέχουσας σελίδας πατώντας ''ΠαλαιότεÏες εκδόσεις σελίδας''.
-
diff --git a/wiki/inc/lang/el/password.txt b/wiki/inc/lang/el/password.txt
deleted file mode 100644
index c664cb0..0000000
--- a/wiki/inc/lang/el/password.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-@FULLNAME@!, γειά σας.
-
-Αυτά είναι τα στοιχεία εισόδου για το @TITLE@ στο @DOKUWIKIURL@
-
-Όνομα       : @LOGIN@
-Συνθηματικό : @PASSWORD@
diff --git a/wiki/inc/lang/el/preview.txt b/wiki/inc/lang/el/preview.txt
deleted file mode 100644
index aef65c9..0000000
--- a/wiki/inc/lang/el/preview.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== ΠÏοεπισκόπηση ======
-
-Αυτή είναι μια Ï€Ïοεπισκόπηση του πως θα δείχνει η σελίδα. 
-ΥπενθÏμιση: Οι αλλαγές σας **δεν έχουν αποθηκευθεί** ακόμη!
-
diff --git a/wiki/inc/lang/el/pwconfirm.txt b/wiki/inc/lang/el/pwconfirm.txt
deleted file mode 100644
index 4c1559c..0000000
--- a/wiki/inc/lang/el/pwconfirm.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-Γεια σας @FULLNAME@!
-
-Κάποιος ζήτησε τη δημιουÏγία νέου ÏƒÏ…Î½Î¸Î·Î¼Î±Ï„Î¹ÎºÎ¿Ï Î³Î¹Î± τον λογαÏιασμό @TITLE@
-που διατηÏείτε στο @DOKUWIKIURL@
-
-Αν δεν ζητήσατε εσείς την δημιουÏγία νέου ÏƒÏ…Î½Î¸Î·Î¼Î±Ï„Î¹ÎºÎ¿Ï Î±Ï€Î»Î¬ αγνοήστε αυτό το e-mail.
-
-Αν όντως εσείς ζητήσατε την δημιουÏγία νέου συνθηματικοÏ, ακολουθήστε τον παÏακάτω σÏνδεσμο για να το επιβεβαιώσετε.
-
-@CONFIRM@
diff --git a/wiki/inc/lang/el/read.txt b/wiki/inc/lang/el/read.txt
deleted file mode 100644
index a620ab5..0000000
--- a/wiki/inc/lang/el/read.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-ΜποÏείτε να διαβάσετε αυτή την σελίδα αλλά δεν μποÏείτε να την Ï„Ïοποποιήσετε. 
-Αν πιστεÏετε ότι αυτό δεν είναι σωστό, απευθυνθείτε στον διαχειÏιστή της εφαÏμογής.
diff --git a/wiki/inc/lang/el/recent.txt b/wiki/inc/lang/el/recent.txt
deleted file mode 100644
index 78c74a6..0000000
--- a/wiki/inc/lang/el/recent.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== ΠÏόσφατες αλλαγές ======
-
-Οι παÏακάτω σελίδες Ï„Ïοποποιήθηκαν Ï€Ïόσφατα:
diff --git a/wiki/inc/lang/el/register.txt b/wiki/inc/lang/el/register.txt
deleted file mode 100644
index 6a4e963..0000000
--- a/wiki/inc/lang/el/register.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== ΕγγÏαφή νέου χÏήστη ======
-
-ΣυμπληÏώστε όλα τα παÏακάτω πεδία για να δημιουÏγήσετε ένα νέο λογαÏιασμό σε αυτό το wiki.
-ΠÏέπει να δώσετε μια **υπαÏκτή e-mail διεÏθυνση** - ο κωδικός σας θα σας αποσταλεί σε αυτήν.
-Το όνομα χÏήστη θα Ï€Ïέπει να πληÏεί τις ίδιες απαιτήσεις ονόματος που ισχÏουν και για τους [[doku>el:pagename|φακέλους]].
diff --git a/wiki/inc/lang/el/registermail.txt b/wiki/inc/lang/el/registermail.txt
deleted file mode 100644
index 5266fc1..0000000
--- a/wiki/inc/lang/el/registermail.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-Ένας νέος χÏήστης εγγÏάφηκε. ΟÏίστε οι λεπτομέÏειες:
-
-ΧÏήστης         : @NEWUSER@
-Όνομα           : @NEWNAME@
-e-mail          : @NEWEMAIL@
-
-ΗμεÏομηνία      : @DATE@
-ΦυλλομετÏητής   : @BROWSER@
-IP-ΔιεÏθυνση    : @IPADDRESS@
-Όνομα υπολογιστή: @HOSTNAME@
diff --git a/wiki/inc/lang/el/resendpwd.txt b/wiki/inc/lang/el/resendpwd.txt
deleted file mode 100644
index 6b4f3bb..0000000
--- a/wiki/inc/lang/el/resendpwd.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-====== Αποστολή νέου ÎºÏ‰Î´Î¹ÎºÎ¿Ï ======
-
-ΣυμπληÏώστε όλα τα παÏακάτω πεδία για να λάβετε ένα νέο κωδικό για τον λογαÏιασμό σας σε αυτό το wiki. 
-Ο νέος κωδικός σας θα σταλεί στην e-mail διεÏθυνση που έχετε ήδη δηλώσει. 
-Το όνομα Ï€Ïέπει να είναι αυτό που ισχÏει για τον λογαÏιασμό σας σε αυτό το wiki.
-
diff --git a/wiki/inc/lang/el/resetpwd.txt b/wiki/inc/lang/el/resetpwd.txt
deleted file mode 100644
index 0d26d05..0000000
--- a/wiki/inc/lang/el/resetpwd.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Εισάγετε νέο κωδικό Ï€Ïόσβασης ======
-
-ΠαÏακαλοÏμε, εισάγετε έναν νέο κωδικό Ï€Ïόσβασης για τον λογαÏιασμό σας.
\ No newline at end of file
diff --git a/wiki/inc/lang/el/revisions.txt b/wiki/inc/lang/el/revisions.txt
deleted file mode 100644
index 955fa17..0000000
--- a/wiki/inc/lang/el/revisions.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-====== ΠαλαιότεÏες εκδόσεις σελίδας ======
-
-Οι παÏακάτω είναι παλαιότεÏες εκδόσεις της Ï„Ïέχουσας σελίδας. 
-Εάν θέλετε να αντικαταστήσετε την Ï„Ïέχουσα σελίδα με κάποια από τις παλαιότεÏες εκδόσεις της κάντε τα παÏακάτω:
-  * επιλέξτε την σχετική έκδοση
-  * επιλέξτε ''ΤÏοποποίηση σελίδας''
-  * κάνετε τυχόν αλλαγές 
-  * αποθηκεÏστε την
diff --git a/wiki/inc/lang/el/searchpage.txt b/wiki/inc/lang/el/searchpage.txt
deleted file mode 100644
index c5bbbbf..0000000
--- a/wiki/inc/lang/el/searchpage.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Αναζήτηση ======
-
-Τα αποτελέσματα της αναζήτησής σας. @CREATEPAGEINFO@
-
diff --git a/wiki/inc/lang/el/showrev.txt b/wiki/inc/lang/el/showrev.txt
deleted file mode 100644
index a6ba3f9..0000000
--- a/wiki/inc/lang/el/showrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**Βλέπετε μια παλαιότεÏη έκδοση της σελίδας!**
-----
diff --git a/wiki/inc/lang/el/stopwords.txt b/wiki/inc/lang/el/stopwords.txt
deleted file mode 100644
index 01d5103..0000000
--- a/wiki/inc/lang/el/stopwords.txt
+++ /dev/null
@@ -1,103 +0,0 @@
-# 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 provided by Fotis Lazarinis based on his research found at: http://lazarinf.teimes.gr/papers/J8.pdf
-και
-ήταν
-το
-ενός
-να
-πολÏ
-του
-όμως
-η
-κατά
-της
-αυτή
-με
-όταν
-που
-μέσα
-την
-οποίο
-από
-πως
-για
-έτσι
-τα
-στους
-είναι
-μέσω
-των
-όλα
-σε
-καθώς
-ο
-αυτά
-οι
-Ï€Ïος
-στο
-ένας
-θα
-Ï€Ïιν
-τη
-μου
-στην
-όχι
-τον
-χωÏίς
-τους
-επίσης
-δεν
-μεταξÏ
-τις
-μέχÏι
-ένα
-έναν
-μια
-μιας
-ότι
-αφοÏ
-ή
-ακόμα
-στη
-όπου
-στα
-είχε
-μας
-δηλαδή
-αλλά
-Ï„Ïόπος
-στον
-όσο
-στις
-ακόμη
-αυτό
-τόσο
-όπως
-έχουμε
-αν
-ώστε
-μποÏεί
-αυτές
-μετά
-γιατί
-σας
-πάνω
-δÏο
-τότε
-τι
-τώÏα
-ως
-κάτι
-κάθε
-άλλο
-Ï€Ïέπει
-μην
-πιο
-εδώ
-οποία
-είτε
-μόνο
-μη
-ενώ
\ No newline at end of file
diff --git a/wiki/inc/lang/el/subscr_digest.txt b/wiki/inc/lang/el/subscr_digest.txt
deleted file mode 100644
index 5ee54d3..0000000
--- a/wiki/inc/lang/el/subscr_digest.txt
+++ /dev/null
@@ -1,16 +0,0 @@
-ΧαίÏετε!
-
-Η σελίδα @PAGE@ στο @TITLE@ άλλαξε.
-ΟÏίστε οι αλλαγές:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-Παλιά έκδοση: @OLDPAGE@
-Îέα έκδοση: @NEWPAGE@
-
-Για να σταματήσουν αυτές οι ειδοποιήσεις συνδεθείτε
-στο wiki στην διεÏθυνση @DOKUWIKIURL@
-και στην συνέχεια επισκεφθείτε το @SUBSCRIBE@
-και διαγÏαφείτε από τις ειδοποιήσεις της σελίδας ή του φακέλου.
diff --git a/wiki/inc/lang/el/subscr_form.txt b/wiki/inc/lang/el/subscr_form.txt
deleted file mode 100644
index c21a29a..0000000
--- a/wiki/inc/lang/el/subscr_form.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== ΔιαχείÏιση ΕγγÏαφών σε Ειδοποιήσεις ======
-
-Εδώ μποÏείτε να διαχειÏιστείτε τις εγγÏαφές σας στις ειδοποιήσεις για αλλαγές στην Ï„Ïέχουσα σελίδα και φάκελο.
\ No newline at end of file
diff --git a/wiki/inc/lang/el/subscr_list.txt b/wiki/inc/lang/el/subscr_list.txt
deleted file mode 100644
index 11ebf15..0000000
--- a/wiki/inc/lang/el/subscr_list.txt
+++ /dev/null
@@ -1,16 +0,0 @@
-ΧαίÏετε!
-
-Η σελίδα @PAGE@ στο @TITLE@ άλλαξε.
-
-Κάποιες σελίδες στον φάκελο @PAGE@ του wiki
-@TITLE@ έχουν αλλάξει.
-ΟÏίστε οι αλλαγμένες σελίδες:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-Για να σταματήσουν αυτές οι ειδοποιήσεις συνδεθείτε στο wiki
-στην διεÏθυνση @DOKUWIKIURL@
-και στην συνέχεια επισκεφθείτε το @SUBSCRIBE@
-και διαγÏαφείτε από τις ειδοποιήσεις της σελίδας ή του φακέλου.
diff --git a/wiki/inc/lang/el/subscr_single.txt b/wiki/inc/lang/el/subscr_single.txt
deleted file mode 100644
index b67631c..0000000
--- a/wiki/inc/lang/el/subscr_single.txt
+++ /dev/null
@@ -1,18 +0,0 @@
-ΧαίÏετε!
-
-Η σελίδα @PAGE@ στο @TITLE@ άλλαξε.
-ΟÏίστε οι αλλαγές:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-ΗμεÏομηνία : @DATE@
-ΧÏήστης : @USER@
-ΠεÏίληψη αλλαγών: @SUMMARY@
-Παλιά έκδοση: @OLDPAGE@
-Îέα έκδοση: @NEWPAGE@
-
-Για να σταματήσουν αυτές οι ειδοποιήσεις συνδεθείτε στο wiki
-στην διεÏθυνση @DOKUWIKIURL@
-και στην συνέχεια επισκεφθείτε το @SUBSCRIBE@
-και διαγÏαφείτε από τις ειδοποιήσεις της σελίδας ή του φακέλου.
diff --git a/wiki/inc/lang/el/updateprofile.txt b/wiki/inc/lang/el/updateprofile.txt
deleted file mode 100644
index 56f176d..0000000
--- a/wiki/inc/lang/el/updateprofile.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== ΤÏοποποίηση Ï€Ïοφίλ ======
-
-ΤÏοποποιήστε **μόνο** τα πεδία που θέλετε να αλλάξετε. 
-Δεν μποÏείτε να αλλάξετε το πεδίο ''Όνομα''.
diff --git a/wiki/inc/lang/el/uploadmail.txt b/wiki/inc/lang/el/uploadmail.txt
deleted file mode 100644
index c9cfca9..0000000
--- a/wiki/inc/lang/el/uploadmail.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-Ένα αÏχείο φοÏτώθηκε στο DokuWiki σας.
-Αυτά είναι τα αντίστοιχα στοιχεία:
-
-ΑÏχείο          : @MEDIA@
-ΗμεÏομηνία      : @DATE@
-ΦυλλομετÏητής   : @BROWSER@
-IP-ΔιεÏθυνση    : @IPADDRESS@
-Όνομα υπολογιστή: @HOSTNAME@
-Μέγεθος         : @SIZE@
-MIME Type       : @MIME@
-ΧÏήστης         : @USER@
diff --git a/wiki/inc/lang/en/admin.txt b/wiki/inc/lang/en/admin.txt
deleted file mode 100644
index cfd21b2..0000000
--- a/wiki/inc/lang/en/admin.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Administration ======
-
-Below you can find a list of administrative tasks available in DokuWiki.
-
diff --git a/wiki/inc/lang/en/adminplugins.txt b/wiki/inc/lang/en/adminplugins.txt
deleted file mode 100644
index 3ec46cf..0000000
--- a/wiki/inc/lang/en/adminplugins.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-===== Additional Plugins =====
-
diff --git a/wiki/inc/lang/en/backlinks.txt b/wiki/inc/lang/en/backlinks.txt
deleted file mode 100644
index 5b40b84..0000000
--- a/wiki/inc/lang/en/backlinks.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Backlinks ======
-
-This is a list of pages that seem to link back to the current page.
-
diff --git a/wiki/inc/lang/en/conflict.txt b/wiki/inc/lang/en/conflict.txt
deleted file mode 100644
index 624f17b..0000000
--- a/wiki/inc/lang/en/conflict.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-====== A newer version exists ======
-
-A newer version of the document you edited exists. This happens when another user changed the document while you were editing it.
-
-Examine the differences shown below thoroughly, then decide which version to keep. If you choose ''save'', your version will be saved. Hit ''cancel'' to keep the current version.
-
diff --git a/wiki/inc/lang/en/denied.txt b/wiki/inc/lang/en/denied.txt
deleted file mode 100644
index 34cb845..0000000
--- a/wiki/inc/lang/en/denied.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Permission Denied ======
-
-Sorry, you don't have enough rights to continue.
-
diff --git a/wiki/inc/lang/en/diff.txt b/wiki/inc/lang/en/diff.txt
deleted file mode 100644
index 934534d..0000000
--- a/wiki/inc/lang/en/diff.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Differences ======
-
-This shows you the differences between two versions of the page.
-
diff --git a/wiki/inc/lang/en/draft.txt b/wiki/inc/lang/en/draft.txt
deleted file mode 100644
index e84d34a..0000000
--- a/wiki/inc/lang/en/draft.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-====== Draft file found ======
-
-Your last edit session on this page was not completed correctly. DokuWiki automatically saved a draft during your work which you may now use to continue your editing. Below you can see the data that was saved from your last session.
-
-Please decide if you want to //recover// your lost edit session, //delete// the autosaved draft or //cancel// the editing process.
-
diff --git a/wiki/inc/lang/en/edit.txt b/wiki/inc/lang/en/edit.txt
deleted file mode 100644
index 48c9c29..0000000
--- a/wiki/inc/lang/en/edit.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-Edit the page and hit ''Save''. See [[wiki:syntax]] for Wiki syntax. Please edit the page only if you can **improve** it. If you want to test some things, learn to make your first steps on the [[playground:playground|playground]].
-
diff --git a/wiki/inc/lang/en/editrev.txt b/wiki/inc/lang/en/editrev.txt
deleted file mode 100644
index 638216b..0000000
--- a/wiki/inc/lang/en/editrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**You've loaded an old revision of the document!** If you save it, you will create a new version with this data.
-----
diff --git a/wiki/inc/lang/en/index.txt b/wiki/inc/lang/en/index.txt
deleted file mode 100644
index 152911b..0000000
--- a/wiki/inc/lang/en/index.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Sitemap ======
-
-This is a sitemap over all available pages ordered by [[doku>namespaces|namespaces]].
-
diff --git a/wiki/inc/lang/en/install.html b/wiki/inc/lang/en/install.html
deleted file mode 100644
index df2b699..0000000
--- a/wiki/inc/lang/en/install.html
+++ /dev/null
@@ -1,24 +0,0 @@
-<p>This page assists in the first time installation and configuration of
-<a href="http://dokuwiki.org">Dokuwiki</a>. More info on this
-installer is available on it's own
-<a href="http://dokuwiki.org/installer">documentation page</a>.</p>
-
-<p>DokuWiki uses ordinary files for the storage of wiki pages and other
-information associated with those pages (e.g. images, search indexes, old
-revisions, etc).  In order to operate successfully DokuWiki
-<strong>must</strong> have write access to the directories that hold those
-files.  This installer is not capable of setting up directory permissions. That
-normally needs to be done directly on a command shell or if you are using hosting,
-through FTP or your hosting control panel (e.g. cPanel).</p>
-
-<p>This installer will setup your DokuWiki configuration for
-<abbr title="access control list">ACL</abbr>, which in turn allows administrator
-login and access to DokuWiki's admin menu for installing plugins, managing
-users, managing access to wiki pages and alteration of configuration settings.
-It isn't required for DokuWiki to operate, however it will make Dokuwiki easier
-to administer.</p>
-
-<p>Experienced users or users with special setup requirements should use these links
-for details concerning
-<a href="http://dokuwiki.org/install">installation instructions</a>
-and <a href="http://dokuwiki.org/config">configuration settings</a>.</p>
diff --git a/wiki/inc/lang/en/lang.php b/wiki/inc/lang/en/lang.php
deleted file mode 100644
index 4d11bac..0000000
--- a/wiki/inc/lang/en/lang.php
+++ /dev/null
@@ -1,389 +0,0 @@
-<?php
-/**
- * english language file
- *
- * @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>
- * @author     Matthias Schulte <mailinglist@lupo49.de>
- */
-$lang['encoding']              = 'utf-8';
-$lang['direction']             = 'ltr';
-$lang['doublequoteopening']    = '“'; //&ldquo;
-$lang['doublequoteclosing']    = 'â€'; //&rdquo;
-$lang['singlequoteopening']    = '‘'; //&lsquo;
-$lang['singlequoteclosing']    = '’'; //&rsquo;
-$lang['apostrophe']            = '’'; //&rsquo;
-
-$lang['btn_edit']              = 'Edit this page';
-$lang['btn_source']            = 'Show pagesource';
-$lang['btn_show']              = 'Show page';
-$lang['btn_create']            = 'Create this page';
-$lang['btn_search']            = 'Search';
-$lang['btn_save']              = 'Save';
-$lang['btn_preview']           = 'Preview';
-$lang['btn_top']               = 'Back to top';
-$lang['btn_newer']             = '<< more recent';
-$lang['btn_older']             = 'less recent >>';
-$lang['btn_revs']              = 'Old revisions';
-$lang['btn_recent']            = 'Recent Changes';
-$lang['btn_upload']            = 'Upload';
-$lang['btn_cancel']            = 'Cancel';
-$lang['btn_index']             = 'Sitemap';
-$lang['btn_secedit']           = 'Edit';
-$lang['btn_login']             = 'Log In';
-$lang['btn_logout']            = 'Log Out';
-$lang['btn_admin']             = 'Admin';
-$lang['btn_update']            = 'Update';
-$lang['btn_delete']            = 'Delete';
-$lang['btn_back']              = 'Back';
-$lang['btn_backlink']          = 'Backlinks';
-$lang['btn_subscribe']         = 'Manage Subscriptions';
-$lang['btn_profile']           = 'Update Profile';
-$lang['btn_reset']             = 'Reset';
-$lang['btn_resendpwd']         = 'Set new password';
-$lang['btn_draft']             = 'Edit draft';
-$lang['btn_recover']           = 'Recover draft';
-$lang['btn_draftdel']          = 'Delete draft';
-$lang['btn_revert']            = 'Restore';
-$lang['btn_register']          = 'Register';
-$lang['btn_apply']             = 'Apply';
-$lang['btn_media']             = 'Media Manager';
-$lang['btn_deleteuser']        = 'Remove My Account';
-$lang['btn_img_backto']        = 'Back to %s';
-$lang['btn_mediaManager']      = 'View in media manager';
-
-$lang['loggedinas']            = 'Logged in as:';
-$lang['user']                  = 'Username';
-$lang['pass']                  = 'Password';
-$lang['newpass']               = 'New password';
-$lang['oldpass']               = 'Confirm current password';
-$lang['passchk']               = 'once again';
-$lang['remember']              = 'Remember me';
-$lang['fullname']              = 'Real name';
-$lang['email']                 = 'E-Mail';
-$lang['profile']               = 'User Profile';
-$lang['badlogin']              = 'Sorry, username or password was wrong.';
-$lang['badpassconfirm']        = 'Sorry, the password was wrong';
-$lang['minoredit']             = 'Minor Changes';
-$lang['draftdate']             = 'Draft autosaved on'; // full dformat date will be added
-$lang['nosecedit']             = 'The page was changed in the meantime, section info was out of date loaded full page instead.';
-$lang['searchcreatepage']      = 'If you didn\'t find what you were looking for, you can create or edit the page %s, named after your query.';
-
-$lang['search_fullresults']    = 'Fulltext results';
-$lang['js']['search_toggle_tools']   = 'Toggle Search Tools';
-$lang['search_exact_match']    = 'Exact match';
-$lang['search_starts_with']    = 'Starts with';
-$lang['search_ends_with']      = 'Ends with';
-$lang['search_contains']       = 'Contains';
-$lang['search_custom_match']   = 'Custom';
-$lang['search_any_ns']         = 'Any namespace';
-$lang['search_any_time']       = 'Any time';
-$lang['search_past_7_days']    = 'Past week';
-$lang['search_past_month']     = 'Past month';
-$lang['search_past_year']      = 'Past year';
-$lang['search_sort_by_hits']   = 'Sort by hits';
-$lang['search_sort_by_mtime']  = 'Sort by last modified';
-
-$lang['regmissing']            = 'Sorry, you must fill in all fields.';
-$lang['reguexists']            = 'Sorry, a user with this login already exists.';
-$lang['regsuccess']            = 'The user has been created and the password was sent by email.';
-$lang['regsuccess2']           = 'The user has been created.';
-$lang['regfail']               = 'The user could not be created.';
-$lang['regmailfail']           = 'Looks like there was an error on sending the password mail. Please contact the admin!';
-$lang['regbadmail']            = 'The given email address looks invalid - if you think this is an error, contact the admin';
-$lang['regbadpass']            = 'The two given passwords are not identical, please try again.';
-$lang['regpwmail']             = 'Your DokuWiki password';
-$lang['reghere']               = 'You don\'t have an account yet? Just get one';
-
-$lang['profna']                = 'This wiki does not support profile modification';
-$lang['profnochange']          = 'No changes, nothing to do.';
-$lang['profnoempty']           = 'An empty name or email address is not allowed.';
-$lang['profchanged']           = 'User profile successfully updated.';
-$lang['profnodelete']          = 'This wiki does not support deleting users';
-$lang['profdeleteuser']        = 'Delete Account';
-$lang['profdeleted']           = 'Your user account has been deleted from this wiki';
-$lang['profconfdelete']        = 'I wish to remove my account from this wiki. <br/> This action can not be undone.';
-$lang['profconfdeletemissing'] = 'Confirmation check box not ticked';
-$lang['proffail']              = 'User profile was not updated.';
-
-$lang['pwdforget']             = 'Forgotten your password? Get a new one';
-$lang['resendna']              = 'This wiki does not support password resending.';
-$lang['resendpwd']             = 'Set new password for';
-$lang['resendpwdmissing']      = 'Sorry, you must fill in all fields.';
-$lang['resendpwdnouser']       = 'Sorry, we can\'t find this user in our database.';
-$lang['resendpwdbadauth']      = 'Sorry, this auth code is not valid. Make sure you used the complete confirmation link.';
-$lang['resendpwdconfirm']      = 'A confirmation link has been sent by email.';
-$lang['resendpwdsuccess']      = 'Your new password has been sent by email.';
-
-$lang['license']               = 'Except where otherwise noted, content on this wiki is licensed under the following license:';
-$lang['licenseok']             = 'Note: By editing this page you agree to license your content under the following license:';
-
-$lang['searchmedia']           = 'Search file name:';
-$lang['searchmedia_in']        = 'Search in %s';
-$lang['txt_upload']            = 'Select file to upload:';
-$lang['txt_filename']          = 'Upload as (optional):';
-$lang['txt_overwrt']           = 'Overwrite existing file';
-$lang['maxuploadsize']         = 'Upload max. %s per file.';
-$lang['lockedby']              = 'Currently locked by:';
-$lang['lockexpire']            = 'Lock expires at:';
-
-$lang['js']['willexpire']      = 'Your lock for editing this page is about to expire in a minute.\nTo avoid conflicts use the preview button to reset the locktimer.';
-$lang['js']['notsavedyet']     = 'Unsaved changes will be lost.';
-$lang['js']['searchmedia']     = 'Search for files';
-$lang['js']['keepopen']        = 'Keep window open on selection';
-$lang['js']['hidedetails']     = 'Hide Details';
-$lang['js']['mediatitle']      = 'Link settings';
-$lang['js']['mediadisplay']    = 'Link type';
-$lang['js']['mediaalign']      = 'Alignment';
-$lang['js']['mediasize']       = 'Image size';
-$lang['js']['mediatarget']     = 'Link target';
-$lang['js']['mediaclose']      = 'Close';
-$lang['js']['mediainsert']     = 'Insert';
-$lang['js']['mediadisplayimg'] = 'Show the image.';
-$lang['js']['mediadisplaylnk'] = 'Show only the link.';
-$lang['js']['mediasmall']      = 'Small version';
-$lang['js']['mediamedium']     = 'Medium version';
-$lang['js']['medialarge']      = 'Large version';
-$lang['js']['mediaoriginal']   = 'Original version';
-$lang['js']['medialnk']        = 'Link to detail page';
-$lang['js']['mediadirect']     = 'Direct link to original';
-$lang['js']['medianolnk']      = 'No link';
-$lang['js']['medianolink']     = 'Do not link the image';
-$lang['js']['medialeft']       = 'Align the image on the left.';
-$lang['js']['mediaright']      = 'Align the image on the right.';
-$lang['js']['mediacenter']     = 'Align the image in the middle.';
-$lang['js']['medianoalign']    = 'Use no align.';
-$lang['js']['nosmblinks']      = 'Linking to Windows shares only works in Microsoft Internet Explorer.\nYou still can copy and paste the link.';
-$lang['js']['linkwiz']         = 'Link Wizard';
-$lang['js']['linkto']          = 'Link to:';
-$lang['js']['del_confirm']     = 'Really delete selected item(s)?';
-$lang['js']['restore_confirm'] = 'Really restore this version?';
-$lang['js']['media_diff']          = 'View differences:';
-$lang['js']['media_diff_both']     = 'Side by Side';
-$lang['js']['media_diff_opacity']  = 'Shine-through';
-$lang['js']['media_diff_portions'] = 'Swipe';
-$lang['js']['media_select']        = 'Select files…';
-$lang['js']['media_upload_btn']    = 'Upload';
-$lang['js']['media_done_btn']      = 'Done';
-$lang['js']['media_drop']          = 'Drop files here to upload';
-$lang['js']['media_cancel']        = 'remove';
-$lang['js']['media_overwrt']       = 'Overwrite existing files';
-
-$lang['rssfailed']             = 'An error occurred while fetching this feed: ';
-$lang['nothingfound']          = 'Nothing was found.';
-
-$lang['mediaselect']           = 'Media Files';
-$lang['uploadsucc']            = 'Upload successful';
-$lang['uploadfail']            = 'Upload failed. Maybe wrong permissions?';
-$lang['uploadwrong']           = 'Upload denied. This file extension is forbidden!';
-$lang['uploadexist']           = 'File already exists. Nothing done.';
-$lang['uploadbadcontent']      = 'The uploaded content did not match the %s file extension.';
-$lang['uploadspam']            = 'The upload was blocked by the spam blacklist.';
-$lang['uploadxss']             = 'The upload was blocked for possibly malicious content.';
-$lang['uploadsize']            = 'The uploaded file was too big. (max. %s)';
-$lang['deletesucc']            = 'The file "%s" has been deleted.';
-$lang['deletefail']            = '"%s" couldn\'t be deleted - check permissions.';
-$lang['mediainuse']            = 'The file "%s" hasn\'t been deleted - it is still in use.';
-$lang['namespaces']            = 'Namespaces';
-$lang['mediafiles']            = 'Available files in';
-$lang['accessdenied']          = 'You are not allowed to view this page.';
-$lang['mediausage']            = 'Use the following syntax to reference this file:';
-$lang['mediaview']             = 'View original file';
-$lang['mediaroot']             = 'root';
-$lang['mediaupload']           = 'Upload a file to the current namespace here. To create subnamespaces, prepend them to your filename separated by colons after you selected the files. Files can also be selected by drag and drop.';
-$lang['mediaextchange']        = 'Filextension changed from .%s to .%s!';
-$lang['reference']             = 'References for';
-$lang['ref_inuse']             = 'The file can\'t be deleted, because it\'s still used by the following pages:';
-$lang['ref_hidden']            = 'Some references  are on pages you don\'t have permission to read';
-
-$lang['hits']                  = 'Hits';
-$lang['quickhits']             = 'Matching pagenames';
-$lang['toc']                   = 'Table of Contents';
-$lang['current']               = 'current';
-$lang['yours']                 = 'Your Version';
-$lang['diff']                  = 'Show differences to current revisions';
-$lang['diff2']                 = 'Show differences between selected revisions';
-$lang['difflink']              = 'Link to this comparison view';
-$lang['diff_type']             = 'View differences:';
-$lang['diff_inline']           = 'Inline';
-$lang['diff_side']             = 'Side by Side';
-$lang['diffprevrev']           = 'Previous revision';
-$lang['diffnextrev']           = 'Next revision';
-$lang['difflastrev']           = 'Last revision';
-$lang['diffbothprevrev']       = 'Both sides previous revision';
-$lang['diffbothnextrev']       = 'Both sides next revision';
-$lang['line']                  = 'Line';
-$lang['breadcrumb']            = 'Trace:';
-$lang['youarehere']            = 'You are here:';
-$lang['lastmod']               = 'Last modified:';
-$lang['by']                    = 'by';
-$lang['deleted']               = 'removed';
-$lang['created']               = 'created';
-$lang['restored']              = 'old revision restored (%s)';
-$lang['external_edit']         = 'external edit';
-$lang['summary']               = 'Edit summary';
-$lang['noflash']               = 'The <a href="http://www.adobe.com/products/flashplayer/">Adobe Flash Plugin</a> is needed to display this content.';
-$lang['download']              = 'Download Snippet';
-$lang['tools']                 = 'Tools';
-$lang['user_tools']            = 'User Tools';
-$lang['site_tools']            = 'Site Tools';
-$lang['page_tools']            = 'Page Tools';
-$lang['skip_to_content']       = 'skip to content';
-$lang['sidebar']               = 'Sidebar';
-
-$lang['mail_newpage']          = 'page added:';
-$lang['mail_changed']          = 'page changed:';
-$lang['mail_subscribe_list']   = 'pages changed in namespace:';
-$lang['mail_new_user']         = 'new user:';
-$lang['mail_upload']           = 'file uploaded:';
-
-$lang['changes_type']          = 'View changes of';
-$lang['pages_changes']         = 'Pages';
-$lang['media_changes']         = 'Media files';
-$lang['both_changes']          = 'Both pages and media files';
-
-$lang['qb_bold']               = 'Bold Text';
-$lang['qb_italic']             = 'Italic Text';
-$lang['qb_underl']             = 'Underlined Text';
-$lang['qb_code']               = 'Monospaced Text';
-$lang['qb_strike']             = 'Strike-through Text';
-$lang['qb_h1']                 = 'Level 1 Headline';
-$lang['qb_h2']                 = 'Level 2 Headline';
-$lang['qb_h3']                 = 'Level 3 Headline';
-$lang['qb_h4']                 = 'Level 4 Headline';
-$lang['qb_h5']                 = 'Level 5 Headline';
-$lang['qb_h']                  = 'Headline';
-$lang['qb_hs']                 = 'Select Headline';
-$lang['qb_hplus']              = 'Higher Headline';
-$lang['qb_hminus']             = 'Lower Headline';
-$lang['qb_hequal']             = 'Same Level Headline';
-$lang['qb_link']               = 'Internal Link';
-$lang['qb_extlink']            = 'External Link';
-$lang['qb_hr']                 = 'Horizontal Rule';
-$lang['qb_ol']                 = 'Ordered List Item';
-$lang['qb_ul']                 = 'Unordered List Item';
-$lang['qb_media']              = 'Add Images and other files (opens in a new window)';
-$lang['qb_sig']                = 'Insert Signature';
-$lang['qb_smileys']            = 'Smileys';
-$lang['qb_chars']              = 'Special Chars';
-
-$lang['upperns']               = 'jump to parent namespace';
-
-$lang['metaedit']              = 'Edit Metadata';
-$lang['metasaveerr']           = 'Writing metadata failed';
-$lang['metasaveok']            = 'Metadata saved';
-$lang['img_title']             = 'Title:';
-$lang['img_caption']           = 'Caption:';
-$lang['img_date']              = 'Date:';
-$lang['img_fname']             = 'Filename:';
-$lang['img_fsize']             = 'Size:';
-$lang['img_artist']            = 'Photographer:';
-$lang['img_copyr']             = 'Copyright:';
-$lang['img_format']            = 'Format:';
-$lang['img_camera']            = 'Camera:';
-$lang['img_keywords']          = 'Keywords:';
-$lang['img_width']             = 'Width:';
-$lang['img_height']            = 'Height:';
-
-$lang['subscr_subscribe_success']   = 'Added %s to subscription list for %s';
-$lang['subscr_subscribe_error']     = 'Error adding %s to subscription list for %s';
-$lang['subscr_subscribe_noaddress'] = 'There is no address associated with your login, you cannot be added to the subscription list';
-$lang['subscr_unsubscribe_success'] = 'Removed %s from subscription list for %s';
-$lang['subscr_unsubscribe_error']   = 'Error removing %s from subscription list for %s';
-$lang['subscr_already_subscribed']  = '%s is already subscribed to %s';
-$lang['subscr_not_subscribed']      = '%s is not subscribed to %s';
-// Manage page for subscriptions
-$lang['subscr_m_not_subscribed']    = 'You are currently not subscribed to the current page or namespace.';
-$lang['subscr_m_new_header']        = 'Add subscription';
-$lang['subscr_m_current_header']    = 'Current subscriptions';
-$lang['subscr_m_unsubscribe']       = 'Unsubscribe';
-$lang['subscr_m_subscribe']         = 'Subscribe';
-$lang['subscr_m_receive']           = 'Receive';
-$lang['subscr_style_every']         = 'email on every change';
-$lang['subscr_style_digest']        = 'digest email of changes for each page (every %.2f days)';
-$lang['subscr_style_list']          = 'list of changed pages since last email (every %.2f days)';
-
-/* auth.class language support */
-$lang['authtempfail']          = 'User authentication is temporarily unavailable. If this situation persists, please inform your Wiki Admin.';
-
-/* installer strings */
-$lang['i_chooselang']          = 'Choose your language';
-$lang['i_installer']           = 'DokuWiki Installer';
-$lang['i_wikiname']            = 'Wiki Name';
-$lang['i_enableacl']           = 'Enable ACL (recommended)';
-$lang['i_superuser']           = 'Superuser';
-$lang['i_problems']            = 'The installer found some problems, indicated below. You can not continue until you have fixed them.';
-$lang['i_modified']            = 'For security reasons this script will only work with a new and unmodified Dokuwiki installation.
-                                  You should either re-extract the files from the downloaded package or consult the complete
-                                  <a href="http://dokuwiki.org/install">Dokuwiki installation instructions</a>';
-$lang['i_funcna']              = 'PHP function <code>%s</code> is not available. Maybe your hosting provider disabled it for some reason?';
-$lang['i_phpver']              = 'Your PHP version <code>%s</code> is lower than the needed <code>%s</code>. You need to upgrade your PHP install.';
-$lang['i_mbfuncoverload']      = 'mbstring.func_overload must be disabled in php.ini to run DokuWiki.';
-$lang['i_permfail']            = '<code>%s</code> is not writable by DokuWiki. You need to fix the permission settings of this directory!';
-$lang['i_confexists']          = '<code>%s</code> already exists';
-$lang['i_writeerr']            = 'Unable to create <code>%s</code>. You will need to check directory/file permissions and create the file manually.';
-$lang['i_badhash']             = 'unrecognised or modified dokuwiki.php (hash=<code>%s</code>)';
-$lang['i_badval']              = '<code>%s</code> - illegal or empty value';
-$lang['i_success']             = 'The configuration was finished successfully. You may delete the install.php file now. Continue to
-                                 <a href="doku.php?id=wiki:welcome">your new DokuWiki</a>.';
-$lang['i_failure']             = 'Some errors occurred while writing the configuration files. You may need to fix them manually before
-                                  you can use <a href="doku.php?id=wiki:welcome">your new DokuWiki</a>.';
-$lang['i_policy']              = 'Initial ACL policy';
-$lang['i_pol0']                = 'Open Wiki (read, write, upload for everyone)';
-$lang['i_pol1']                = 'Public Wiki (read for everyone, write and upload for registered users)';
-$lang['i_pol2']                = 'Closed Wiki (read, write, upload for registered users only)';
-$lang['i_allowreg']            = 'Allow users to register themselves';
-$lang['i_retry']               = 'Retry';
-$lang['i_license']             = 'Please choose the license you want to put your content under:';
-$lang['i_license_none']        = 'Do not show any license information';
-$lang['i_pop_field']           = 'Please, help us to improve the DokuWiki experience:';
-$lang['i_pop_label']           = 'Once a month, send anonymous usage data to the DokuWiki developers';
-
-$lang['recent_global']         = 'You\'re currently watching the changes inside the <b>%s</b> namespace. You can also <a href="%s">view the recent changes of the whole wiki</a>.';
-$lang['years']                 = '%d years ago';
-$lang['months']                = '%d months ago';
-$lang['weeks']                 = '%d weeks ago';
-$lang['days']                  = '%d days ago';
-$lang['hours']                 = '%d hours ago';
-$lang['minutes']               = '%d minutes ago';
-$lang['seconds']               = '%d seconds ago';
-
-$lang['wordblock']             = 'Your change was not saved because it contains blocked text (spam).';
-
-$lang['media_uploadtab']       = 'Upload';
-$lang['media_searchtab']       = 'Search';
-$lang['media_file']            = 'File';
-$lang['media_viewtab']         = 'View';
-$lang['media_edittab']         = 'Edit';
-$lang['media_historytab']      = 'History';
-$lang['media_list_thumbs']     = 'Thumbnails';
-$lang['media_list_rows']       = 'Rows';
-$lang['media_sort_name']       = 'Name';
-$lang['media_sort_date']       = 'Date';
-$lang['media_namespaces']      = 'Choose namespace';
-$lang['media_files']           = 'Files in %s';
-$lang['media_upload']          = 'Upload to %s';
-$lang['media_search']          = 'Search in %s';
-$lang['media_view']            = '%s';
-$lang['media_viewold']         = '%s at %s';
-$lang['media_edit']            = 'Edit %s';
-$lang['media_history']         = 'History of %s';
-$lang['media_meta_edited']     = 'metadata edited';
-$lang['media_perm_read']       = 'Sorry, you don\'t have enough rights to read files.';
-$lang['media_perm_upload']     = 'Sorry, you don\'t have enough rights to upload files.';
-$lang['media_update']          = 'Upload new version';
-$lang['media_restore']         = 'Restore this version';
-$lang['media_acl_warning']     = 'This list might not be complete due to ACL restrictions and hidden pages.';
-
-$lang['currentns']             = 'Current namespace';
-$lang['searchresult']          = 'Search Result';
-$lang['plainhtml']             = 'Plain HTML';
-$lang['wikimarkup']            = 'Wiki Markup';
-$lang['page_nonexist_rev']     = 'Page did not exist at %s. It was subsequently created at <a href="%s">%s</a>.';
-$lang['unable_to_parse_date']  = 'Unable to parse at parameter "%s".';
-$lang['email_signature_text'] = 'This mail was generated by DokuWiki at
-@DOKUWIKIURL@';
-#$lang['email_signature_html'] = ''; # the empty default will copy the text signature, you can override it in a local lang file
-
diff --git a/wiki/inc/lang/en/locked.txt b/wiki/inc/lang/en/locked.txt
deleted file mode 100644
index af6347a..0000000
--- a/wiki/inc/lang/en/locked.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Page locked ======
-
-This page is currently locked for editing by another user. You have to wait until this user finishes editing or the lock expires.
diff --git a/wiki/inc/lang/en/login.txt b/wiki/inc/lang/en/login.txt
deleted file mode 100644
index 2004ea1..0000000
--- a/wiki/inc/lang/en/login.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Login ======
-
-You are currently not logged in! Enter your authentication credentials below to log in. You need to have cookies enabled to log in.
-
diff --git a/wiki/inc/lang/en/mailtext.txt b/wiki/inc/lang/en/mailtext.txt
deleted file mode 100644
index aea14d4..0000000
--- a/wiki/inc/lang/en/mailtext.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-A page in your DokuWiki was added or changed. Here are the details:
-
-Date        : @DATE@
-Browser     : @BROWSER@
-IP-Address  : @IPADDRESS@
-Hostname    : @HOSTNAME@
-Old Revision: @OLDPAGE@
-New Revision: @NEWPAGE@
-Edit Summary: @SUMMARY@
-User        : @USER@
-
-@DIFF@
diff --git a/wiki/inc/lang/en/mailwrap.html b/wiki/inc/lang/en/mailwrap.html
deleted file mode 100644
index 7df0cdc..0000000
--- a/wiki/inc/lang/en/mailwrap.html
+++ /dev/null
@@ -1,13 +0,0 @@
-<html>
-<head>
-    <title>@TITLE@</title>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-</head>
-<body>
-
-@HTMLBODY@
-
-<br /><hr />
-<small>@EMAILSIGNATURE@</small>
-</body>
-</html>
diff --git a/wiki/inc/lang/en/newpage.txt b/wiki/inc/lang/en/newpage.txt
deleted file mode 100644
index e78b534..0000000
--- a/wiki/inc/lang/en/newpage.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== This topic does not exist yet ======
-
-You've followed a link to a topic that doesn't exist yet. If permissions allow, you may create it by clicking on "Create this page".
-
diff --git a/wiki/inc/lang/en/norev.txt b/wiki/inc/lang/en/norev.txt
deleted file mode 100644
index 27c336b..0000000
--- a/wiki/inc/lang/en/norev.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== No such revision ======
-
-The specified revision doesn't exist. Click on "Old revisions" for a list of old revisions of this document.
-
diff --git a/wiki/inc/lang/en/password.txt b/wiki/inc/lang/en/password.txt
deleted file mode 100644
index 0a0dfb5..0000000
--- a/wiki/inc/lang/en/password.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-Hi @FULLNAME@!
-
-Here is your userdata for @TITLE@ at @DOKUWIKIURL@
-
-Login    : @LOGIN@
-Password : @PASSWORD@
diff --git a/wiki/inc/lang/en/preview.txt b/wiki/inc/lang/en/preview.txt
deleted file mode 100644
index 5ca6969..0000000
--- a/wiki/inc/lang/en/preview.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Preview ======
-
-This is a preview of what your text will look like. Remember: It is **not saved** yet!
-
diff --git a/wiki/inc/lang/en/pwconfirm.txt b/wiki/inc/lang/en/pwconfirm.txt
deleted file mode 100644
index 3732d8a..0000000
--- a/wiki/inc/lang/en/pwconfirm.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-Hi @FULLNAME@!
-
-Someone requested a new password for your @TITLE@
-login at @DOKUWIKIURL@
-
-If you did not request a new password then just ignore this email.
-
-To confirm that the request was really sent by you please use the
-following link.
-
-@CONFIRM@
diff --git a/wiki/inc/lang/en/read.txt b/wiki/inc/lang/en/read.txt
deleted file mode 100644
index 9f56d81..0000000
--- a/wiki/inc/lang/en/read.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-This page is read only. You can view the source, but not change it. Ask your administrator if you think this is wrong.
-
diff --git a/wiki/inc/lang/en/recent.txt b/wiki/inc/lang/en/recent.txt
deleted file mode 100644
index 3f7b58c..0000000
--- a/wiki/inc/lang/en/recent.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== Recent Changes ======
-
-The following pages were changed recently.
-
-
diff --git a/wiki/inc/lang/en/register.txt b/wiki/inc/lang/en/register.txt
deleted file mode 100644
index db68d4f..0000000
--- a/wiki/inc/lang/en/register.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Register as new user ======
-
-Fill in all the information below to create a new account in this wiki. Make sure you supply a **valid e-mail address** - if you are not asked to enter a password here, a new one will be sent to that address. The login name should be a valid [[doku>pagename|pagename]].
-
diff --git a/wiki/inc/lang/en/registermail.txt b/wiki/inc/lang/en/registermail.txt
deleted file mode 100644
index 5517ca1..0000000
--- a/wiki/inc/lang/en/registermail.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-A new user has registered. Here are the details:
-
-User name   : @NEWUSER@
-Full name   : @NEWNAME@
-E-mail      : @NEWEMAIL@
-
-Date        : @DATE@
-Browser     : @BROWSER@
-IP-Address  : @IPADDRESS@
-Hostname    : @HOSTNAME@
diff --git a/wiki/inc/lang/en/resendpwd.txt b/wiki/inc/lang/en/resendpwd.txt
deleted file mode 100644
index 98c8c75..0000000
--- a/wiki/inc/lang/en/resendpwd.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Send new password ======
-
-Please enter your user name in the form below to request a new password for your account in this wiki. A confirmation link will be sent to your registered email address.
-
diff --git a/wiki/inc/lang/en/resetpwd.txt b/wiki/inc/lang/en/resetpwd.txt
deleted file mode 100644
index 993b487..0000000
--- a/wiki/inc/lang/en/resetpwd.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Set new password ======
-
-Please enter a new password for your account in this wiki.
-
diff --git a/wiki/inc/lang/en/revisions.txt b/wiki/inc/lang/en/revisions.txt
deleted file mode 100644
index dd5f35b..0000000
--- a/wiki/inc/lang/en/revisions.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Old Revisions ======
-
-These are the older revisons of the current document. To revert to an old revision, select it from below, click ''Edit this page'' and save it.
-
diff --git a/wiki/inc/lang/en/searchpage.txt b/wiki/inc/lang/en/searchpage.txt
deleted file mode 100644
index 59cbec2..0000000
--- a/wiki/inc/lang/en/searchpage.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Search ======
-
-You can find the results of your search below. @CREATEPAGEINFO@
-
diff --git a/wiki/inc/lang/en/showrev.txt b/wiki/inc/lang/en/showrev.txt
deleted file mode 100644
index 3608de3..0000000
--- a/wiki/inc/lang/en/showrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**This is an old revision of the document!**
-----
diff --git a/wiki/inc/lang/en/stopwords.txt b/wiki/inc/lang/en/stopwords.txt
deleted file mode 100644
index afc3016..0000000
--- a/wiki/inc/lang/en/stopwords.txt
+++ /dev/null
@@ -1,39 +0,0 @@
-# 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/
-about
-are
-as
-an
-and
-you
-your
-them
-their
-com
-for
-from
-into
-if
-in
-is
-it
-how
-of
-on
-or
-that
-the
-this
-to
-was
-what
-when
-where
-who
-will
-with
-und
-the
-www
diff --git a/wiki/inc/lang/en/subscr_digest.txt b/wiki/inc/lang/en/subscr_digest.txt
deleted file mode 100644
index cc42e08..0000000
--- a/wiki/inc/lang/en/subscr_digest.txt
+++ /dev/null
@@ -1,16 +0,0 @@
-Hello!
-
-The page @PAGE@ in the @TITLE@ wiki changed.
-Here are the changes:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-Old Revision: @OLDPAGE@
-New Revision: @NEWPAGE@
-
-To cancel the page notifications, log into the wiki at
-@DOKUWIKIURL@ then visit
-@SUBSCRIBE@
-and unsubscribe page and/or namespace changes.
diff --git a/wiki/inc/lang/en/subscr_form.txt b/wiki/inc/lang/en/subscr_form.txt
deleted file mode 100644
index d606508..0000000
--- a/wiki/inc/lang/en/subscr_form.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Subscription Management ======
-
-This page allows you to manage your subscriptions for the current page and namespace.
diff --git a/wiki/inc/lang/en/subscr_list.txt b/wiki/inc/lang/en/subscr_list.txt
deleted file mode 100644
index dcf8000..0000000
--- a/wiki/inc/lang/en/subscr_list.txt
+++ /dev/null
@@ -1,13 +0,0 @@
-Hello!
-
-Pages in the namespace @PAGE@ of the @TITLE@ wiki changed.
-Here are the changed pages:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-To cancel the page notifications, log into the wiki at
-@DOKUWIKIURL@ then visit
-@SUBSCRIBE@
-and unsubscribe page and/or namespace changes.
diff --git a/wiki/inc/lang/en/subscr_single.txt b/wiki/inc/lang/en/subscr_single.txt
deleted file mode 100644
index 8f097dc..0000000
--- a/wiki/inc/lang/en/subscr_single.txt
+++ /dev/null
@@ -1,19 +0,0 @@
-Hello!
-
-The page @PAGE@ in the @TITLE@ wiki changed.
-Here are the changes:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-Date        : @DATE@
-User        : @USER@
-Edit Summary: @SUMMARY@
-Old Revision: @OLDPAGE@
-New Revision: @NEWPAGE@
-
-To cancel the page notifications, log into the wiki at
-@DOKUWIKIURL@ then visit
-@SUBSCRIBE@
-and unsubscribe page and/or namespace changes.
diff --git a/wiki/inc/lang/en/updateprofile.txt b/wiki/inc/lang/en/updateprofile.txt
deleted file mode 100644
index b929fee..0000000
--- a/wiki/inc/lang/en/updateprofile.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== Update your account profile ======
-
-You only need to complete those fields you wish to change.  You may not change your user name.
-
-
diff --git a/wiki/inc/lang/en/uploadmail.txt b/wiki/inc/lang/en/uploadmail.txt
deleted file mode 100644
index dca8e33..0000000
--- a/wiki/inc/lang/en/uploadmail.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-A file was uploaded to your DokuWiki. Here are the details:
-
-File        : @MEDIA@
-Old revision: @OLD@
-Date        : @DATE@
-Browser     : @BROWSER@
-IP-Address  : @IPADDRESS@
-Hostname    : @HOSTNAME@
-Size        : @SIZE@
-MIME Type   : @MIME@
-User        : @USER@
diff --git a/wiki/inc/lang/eo/admin.txt b/wiki/inc/lang/eo/admin.txt
deleted file mode 100644
index 4b3cf0c..0000000
--- a/wiki/inc/lang/eo/admin.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Administrado ======
-
-Sube vi trovas liston de administraj taskoj haveblaj en DokuWiki.
diff --git a/wiki/inc/lang/eo/adminplugins.txt b/wiki/inc/lang/eo/adminplugins.txt
deleted file mode 100644
index bb7e782..0000000
--- a/wiki/inc/lang/eo/adminplugins.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Aldonaj kromaĵoj =====
\ No newline at end of file
diff --git a/wiki/inc/lang/eo/backlinks.txt b/wiki/inc/lang/eo/backlinks.txt
deleted file mode 100644
index cd0cca9..0000000
--- a/wiki/inc/lang/eo/backlinks.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Retroligiloj ======
-
-Ĉi tiu listo montras paÄojn, kiuj referencas al la aktuala paÄo.
\ No newline at end of file
diff --git a/wiki/inc/lang/eo/conflict.txt b/wiki/inc/lang/eo/conflict.txt
deleted file mode 100644
index cd01929..0000000
--- a/wiki/inc/lang/eo/conflict.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== Pli nova versio ekzistas ======
-
-Ekzistas pli nova versio de la dokumento. Tio okazas kiam iu alia uzanto ÅanÄis enhavon de la dokumento dum vi redaktis Äin.
-
-Atente esploru distingojn kaj decidu kiun version vi tenos. Se vi premos '"Konservi'", do via versio estos konservita. Presonte butonon '"Rezigni" vi tenos la kurantan version.
diff --git a/wiki/inc/lang/eo/denied.txt b/wiki/inc/lang/eo/denied.txt
deleted file mode 100644
index e0abba1..0000000
--- a/wiki/inc/lang/eo/denied.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Aliro malpermesita ======
-
-Vi ne havas sufiĉajn rajtojn daŭrigi.
-
diff --git a/wiki/inc/lang/eo/diff.txt b/wiki/inc/lang/eo/diff.txt
deleted file mode 100644
index 3c9db61..0000000
--- a/wiki/inc/lang/eo/diff.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Diferencoj ======
-
-Tio montras diferencojn inter du versioj de la paÄo.
-
diff --git a/wiki/inc/lang/eo/draft.txt b/wiki/inc/lang/eo/draft.txt
deleted file mode 100644
index 57526f3..0000000
--- a/wiki/inc/lang/eo/draft.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== Skiza dosiero troviÄis ======
-
-Via lasta redaktosesio en tiu ĉi paÄo ne Äuste kompletiÄis. DokuWiki aÅ­tomate konservis skizon dum vi laboris, kiun vi nun povas uzi por daÅ­rigi vian redaktadon. Sube vi povas vidi la datumaron, kiu konserviÄis el via lasta sesio.
-
-Bonvolu decidi ĉu vi volas //restarigi// vian perditan redakton, //forigi// la aŭtomate konservitan skizon aŭ //rezigni// pri la redakta procezo.
diff --git a/wiki/inc/lang/eo/edit.txt b/wiki/inc/lang/eo/edit.txt
deleted file mode 100644
index ccc8a61..0000000
--- a/wiki/inc/lang/eo/edit.txt
+++ /dev/null
@@ -1 +0,0 @@
-Redaktu paÄon kaj poste premu butonon titolitan '"Konservi'". Bonvolu tralegi la [[wiki:syntax|vikian sintakson]] pri la formatigo. Bonvolu redakti **nur**, se vi povas **plibonigi** la enhavon de la paÄo. Se vi volas nur testi ion, bonvolu uzi specialan paÄon: [[playground:playground|sablokesto]].
diff --git a/wiki/inc/lang/eo/editrev.txt b/wiki/inc/lang/eo/editrev.txt
deleted file mode 100644
index 2e1406b..0000000
--- a/wiki/inc/lang/eo/editrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**Vi laboras kun malnova revizio de la dokumento!** Se vi konservos Äin, kreiÄos nova kuranta versio kun tiu enhavo.
-----
diff --git a/wiki/inc/lang/eo/index.txt b/wiki/inc/lang/eo/index.txt
deleted file mode 100644
index ac1f32c..0000000
--- a/wiki/inc/lang/eo/index.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Enhavo ======
-
-Tio ĉi estas indekso pri ĉiuj disponeblaj paÄoj ordigitaj laÅ­ [[doku>namespaces|nomspacoj]].
diff --git a/wiki/inc/lang/eo/install.html b/wiki/inc/lang/eo/install.html
deleted file mode 100644
index 0fb94e4..0000000
--- a/wiki/inc/lang/eo/install.html
+++ /dev/null
@@ -1,9 +0,0 @@
-<p>Tiu ĉi paÄo helpas en la unua instalo kaj agordado de <a href="http://dokuwiki.org">DokuWiki</a>. Pli da informo pri tiu instalilo disponeblas en Äia propra <a href="http://dokuwiki.org/installer">dokumentada paÄo</a>.</p>
-
-<p>DokuWiki uzas ordinarajn dosierojn por konservi vikiajn paÄojn kaj aliajn informojn asociitaj al tiuj paÄoj (ekz. bildoj, serĉindeksoj, malnovaj revizioj, ktp). Por bone funkcii, DokuWiki <strong>devas</strong> havi registran rajton sur la subdosierujoj, kiuj entenas tiujn dosierojn. Tiu ĉi instalilo ne kapablas difini permes-atributojn de dosierujoj. Ordinare, tio devas esti senpere farita de iu komando en konzolo aÅ­, se vi abonas retprovizanton, per FTP aÅ­ kontrola panelo de tiu retprovidanto (ekz. cPanel).</p>
-
-<p>Tiu ĉi instalilo difinos vian DokuWiki-an agordadon por <abbr title="alir-kontrola listo">ACL</abbr>, kiu ebligas al administranto identiÄi kaj aliri taÅ­gan interfacon por instali kromaĵojn, administri uzantojn kaj alireblon al vikipaÄoj, kaj difini agordojn Äeneralajn.
-Äœi ne estas nepra por ke DokuWiki funkciu, tamen Äi multe faciligos administradon.</p>
-
-<p>Spertuloj aÅ­ uzantoj kiuj bezonas specialajn agordrimedojn uzu tiujn ligilojn por havi pli detalojn pri <a href="http://dokuwiki.org/install">instaladaj instrukcioj</a>
-kaj <a href="http://dokuwiki.org/config">agordadaj difinoj</a>.</p>
diff --git a/wiki/inc/lang/eo/jquery.ui.datepicker.js b/wiki/inc/lang/eo/jquery.ui.datepicker.js
deleted file mode 100644
index 25f6162..0000000
--- a/wiki/inc/lang/eo/jquery.ui.datepicker.js
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Esperanto initialisation for the jQuery UI date picker plugin. */
-/* Written by Olivier M. (olivierweb@ifrance.com). */
-( function( factory ) {
-	if ( typeof define === "function" && define.amd ) {
-
-		// AMD. Register as an anonymous module.
-		define( [ "../widgets/datepicker" ], factory );
-	} else {
-
-		// Browser globals
-		factory( jQuery.datepicker );
-	}
-}( function( datepicker ) {
-
-datepicker.regional.eo = {
-	closeText: "Fermi",
-	prevText: "&#x3C;Anta",
-	nextText: "Sekv&#x3E;",
-	currentText: "Nuna",
-	monthNames: [ "Januaro","Februaro","Marto","Aprilo","Majo","Junio",
-	"Julio","AÅ­gusto","Septembro","Oktobro","Novembro","Decembro" ],
-	monthNamesShort: [ "Jan","Feb","Mar","Apr","Maj","Jun",
-	"Jul","AÅ­g","Sep","Okt","Nov","Dec" ],
-	dayNames: [ "Dimanĉo","Lundo","Mardo","Merkredo","Ĵaŭdo","Vendredo","Sabato" ],
-	dayNamesShort: [ "Dim","Lun","Mar","Mer","Ä´aÅ­","Ven","Sab" ],
-	dayNamesMin: [ "Di","Lu","Ma","Me","Ä´a","Ve","Sa" ],
-	weekHeader: "Sb",
-	dateFormat: "dd/mm/yy",
-	firstDay: 0,
-	isRTL: false,
-	showMonthAfterYear: false,
-	yearSuffix: "" };
-datepicker.setDefaults( datepicker.regional.eo );
-
-return datepicker.regional.eo;
-
-} ) );
diff --git a/wiki/inc/lang/eo/lang.php b/wiki/inc/lang/eo/lang.php
deleted file mode 100644
index 26d3dd2..0000000
--- a/wiki/inc/lang/eo/lang.php
+++ /dev/null
@@ -1,340 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Kristjan SCHMIDT <kristjan.schmidt@googlemail.com>
- * @author Antono Vasiljev <esperanto.minsk ĈE tut.by>
- * @author Felipe Castro <fefcas@yahoo.com.br>
- * @author Robert Bogenschneider <robog@gmx.de>
- * @author Erik Pedersen <erik.pedersen@shaw.ca>
- */
-$lang['encoding']              = 'utf-8';
-$lang['direction']             = 'ltr';
-$lang['doublequoteopening']    = '“';
-$lang['doublequoteclosing']    = 'â€';
-$lang['singlequoteopening']    = '‘';
-$lang['singlequoteclosing']    = '’';
-$lang['apostrophe']            = '’';
-$lang['btn_edit']              = 'Redakti la paÄon';
-$lang['btn_source']            = 'Montri fontan tekston';
-$lang['btn_show']              = 'Montri paÄon';
-$lang['btn_create']            = 'Krei paÄon';
-$lang['btn_search']            = 'Serĉi';
-$lang['btn_save']              = 'Konservi';
-$lang['btn_preview']           = 'AntaÅ­rigardi';
-$lang['btn_top']               = 'Supren';
-$lang['btn_newer']             = '<< pli freÅe';
-$lang['btn_older']             = 'malpli freÅe >>';
-$lang['btn_revs']              = 'Malnovaj revizioj';
-$lang['btn_recent']            = 'FreÅaj ÅanÄoj';
-$lang['btn_upload']            = 'AlÅuti';
-$lang['btn_cancel']            = 'Rezigni';
-$lang['btn_index']             = 'Indekso';
-$lang['btn_secedit']           = 'Redakti';
-$lang['btn_login']             = 'Ensaluti';
-$lang['btn_logout']            = 'Elsaluti';
-$lang['btn_admin']             = 'Administri';
-$lang['btn_update']            = 'Aktualigi';
-$lang['btn_delete']            = 'Forigi';
-$lang['btn_back']              = 'Retroiri';
-$lang['btn_backlink']          = 'Retroligoj';
-$lang['btn_subscribe']         = 'AliÄi al paÄaj modifoj';
-$lang['btn_profile']           = 'Aktualigi profilon';
-$lang['btn_reset']             = 'Rekomenci';
-$lang['btn_resendpwd']         = 'Sendi novan pasvorton';
-$lang['btn_draft']             = 'Redakti skizon';
-$lang['btn_recover']           = 'Restarigi skizon';
-$lang['btn_draftdel']          = 'Forigi skizon';
-$lang['btn_revert']            = 'Restarigi';
-$lang['btn_register']          = 'RegistriÄi';
-$lang['btn_apply']             = 'Apliki';
-$lang['btn_media']             = 'Medio-administrilo';
-$lang['btn_deleteuser']        = 'Forigi mian konton';
-$lang['btn_img_backto']        = 'Iri reen al %s';
-$lang['btn_mediaManager']      = 'Rigardi en aŭdvidaĵ-administrilo';
-$lang['loggedinas']            = 'Ensalutinta kiel:';
-$lang['user']                  = 'Uzant-nomo';
-$lang['pass']                  = 'Pasvorto';
-$lang['newpass']               = 'Nova pasvorto';
-$lang['oldpass']               = 'Konfirmu la nunan pasvorton';
-$lang['passchk']               = 'plian fojon';
-$lang['remember']              = 'Rememoru min';
-$lang['fullname']              = 'Kompleta nomo';
-$lang['email']                 = 'RetpoÅto';
-$lang['profile']               = 'Uzanto-profilo';
-$lang['badlogin']              = 'Pardonu, uzant-nomo aÅ­ pasvorto estis erara.';
-$lang['badpassconfirm']        = 'Pardonu, la pasvorto malÄustis';
-$lang['minoredit']             = 'Etaj modifoj';
-$lang['draftdate']             = 'Lasta konservo de la skizo:';
-$lang['nosecedit']             = 'La paÄo ÅanÄiÄis intertempe, sekcio-informo estis malÄisdata, tial la tuta paÄo estas reÅargita.';
-$lang['regmissing']            = 'Pardonu, vi devas plenigi ĉiujn kampojn.';
-$lang['reguexists']            = 'Pardonu, ĉi tiu uzanto-nomo jam ekzistas.';
-$lang['regsuccess']            = 'La uzanto kreiÄis kaj la pasvorto sendiÄis per retpoÅto.';
-$lang['regsuccess2']           = 'La uzanto kreiÄis.';
-$lang['regfail']               = 'Ne eblis krei uzanton.';
-$lang['regmailfail']           = 'Åœajne okazis eraro dum elsendo de la pasvorto. Bonvolu informi administranton pri tio!';
-$lang['regbadmail']            = 'Entajpita retpoÅta adreso Åajnas ne valida. Se vi pensas, ke tio estas eraro, kontaktu la administranton.';
-$lang['regbadpass']            = 'La du pasvortoj ne samas, bonvolu provi refoje.';
-$lang['regpwmail']             = 'Via DokuWiki-pasvorto';
-$lang['reghere']               = 'Se vi ne havas konton, vi povas akiri Äin';
-$lang['profna']                = 'Tiu ĉi vikio ne ebligas modifon en la profiloj.';
-$lang['profnochange']          = 'Neniu ÅanÄo, nenio farinda.';
-$lang['profnoempty']           = 'Malplena nomo aÅ­ retadreso ne estas permesata.';
-$lang['profchanged']           = 'La profilo de la uzanto sukcese aktualiÄis.';
-$lang['profnodelete']          = 'Tiu ĉi vikio ne subtenas forigo de uzantoj';
-$lang['profdeleteuser']        = 'Forigi aliÄon';
-$lang['profdeleted']           = 'Via uzant-aliÄo estis forigata de tiu ĉi vikio';
-$lang['profconfdelete']        = 'Mi deziras forigi mian aliÄon de tiu ĉi vikio. <br/> Tiu ĉi ago ne povos esti malfarata.';
-$lang['profconfdeletemissing'] = 'Konfirmilo ne estas markita';
-$lang['proffail']              = 'La uzantokonto ne estis aktualigita.';
-$lang['pwdforget']             = 'Ĉu vi forgesis vian pasvorton? Prenu novan';
-$lang['resendna']              = 'Tiu ĉi vikio ne ebligas resendon de la pasvortoj.';
-$lang['resendpwd']             = 'Sendi novan pasvorton al';
-$lang['resendpwdmissing']      = 'Pardonu, vi devas plenigi ĉiujn kampojn.';
-$lang['resendpwdnouser']       = 'Pardonu, tiu uzanto ne troveblas en nia datumbazo.';
-$lang['resendpwdbadauth']      = 'Pardonu, tiu aÅ­tentiga kodo ne validas. CertiÄu, ke vi uzis la kompletan konfirmigan ligilon.';
-$lang['resendpwdconfirm']      = 'Konfirmiga ligilo sendiÄis per retpoÅto.';
-$lang['resendpwdsuccess']      = 'Via nova pasvorto sendiÄis per retpoÅto.';
-$lang['license']               = 'Krom kie rekte indikite, enhavo de tiu ĉi vikio estas publikigita laŭ la jena permesilo:';
-$lang['licenseok']             = 'Rimarku: redaktante tiun ĉi paÄon vi konsentas publikigi vian enhavon laÅ­ la jena permesilo:';
-$lang['searchmedia']           = 'Serĉi dosiernomon:';
-$lang['searchmedia_in']        = 'Serĉi en %s';
-$lang['txt_upload']            = 'Elektu dosieron por alÅuti:';
-$lang['txt_filename']          = 'AlÅuti kiel (laÅ­vole):';
-$lang['txt_overwrt']           = 'AnstataÅ­igi ekzistantan dosieron';
-$lang['maxuploadsize']         = 'AlÅuto maks. %s po dosiero.';
-$lang['lockedby']              = 'Nune Ålosita de:';
-$lang['lockexpire']            = 'Ŝlosado ĉesos je:';
-$lang['js']['willexpire']      = 'Vi povos redakti ĉi tiun paÄon post unu minuto.\nSe vi volas nuligi tempokontrolon de la Ålosado, premu la butonon "AntaÅ­rigardi".';
-$lang['js']['notsavedyet']     = 'Ne konservitaj modifoj perdiÄos.
-Ĉu vi certe volas daŭrigi la procezon?';
-$lang['js']['searchmedia']     = 'Serĉi dosierojn';
-$lang['js']['keepopen']        = 'Tenu la fenestron malferma dum elekto';
-$lang['js']['hidedetails']     = 'KaÅi detalojn';
-$lang['js']['mediatitle']      = 'Ligilaj agordoj';
-$lang['js']['mediadisplay']    = 'Ligila tipo';
-$lang['js']['mediaalign']      = 'Poziciigo';
-$lang['js']['mediasize']       = 'Bildgrandeco';
-$lang['js']['mediatarget']     = 'Ligila celo';
-$lang['js']['mediaclose']      = 'Fermi';
-$lang['js']['mediainsert']     = 'Enmeti';
-$lang['js']['mediadisplayimg'] = 'Montri la bildon.';
-$lang['js']['mediadisplaylnk'] = 'Montri nur la ligilon.';
-$lang['js']['mediasmall']      = 'Malgranda versio';
-$lang['js']['mediamedium']     = 'Meza versio';
-$lang['js']['medialarge']      = 'Granda versio';
-$lang['js']['mediaoriginal']   = 'Origina versio';
-$lang['js']['medialnk']        = 'Ligilo al detala paÄo';
-$lang['js']['mediadirect']     = 'Rekta ligilo al la origino';
-$lang['js']['medianolnk']      = 'Neniu ligilo';
-$lang['js']['medianolink']     = 'Ne ligi la bildon';
-$lang['js']['medialeft']       = 'Meti la bildon maldekstren.';
-$lang['js']['mediaright']      = 'Meti la bildon dekstren.';
-$lang['js']['mediacenter']     = 'Meti la bildon mezen.';
-$lang['js']['medianoalign']    = 'Ne uzi poziciigon.';
-$lang['js']['nosmblinks']      = 'Tio ĉi nur funkcias en "Microsoft Internet Explorer".\nVi ankoraŭ povas kopii kaj almeti la ligilon.';
-$lang['js']['linkwiz']         = 'Ligil-Asistanto';
-$lang['js']['linkto']          = 'Ligilo al:';
-$lang['js']['del_confirm']     = 'Ĉu vere forigi elektita(j)n ero(j)n?';
-$lang['js']['restore_confirm'] = 'Ĉu vere restarigi ĉi tiun version?';
-$lang['js']['media_diff']      = 'Rigardu la diferencojn:';
-$lang['js']['media_diff_both'] = 'Flankon apud flanko';
-$lang['js']['media_diff_opacity'] = 'Unu super la alia';
-$lang['js']['media_diff_portions'] = 'Åœovilo';
-$lang['js']['media_select']    = 'Elektu dosierojn...';
-$lang['js']['media_upload_btn'] = 'AlÅuto';
-$lang['js']['media_done_btn']  = 'Finita';
-$lang['js']['media_drop']      = 'Demetu ĉi-tien por alÅuti';
-$lang['js']['media_cancel']    = 'forigi';
-$lang['js']['media_overwrt']   = 'Anstataûi ekzistantajn dosierojn';
-$lang['rssfailed']             = 'Okazis eraro dum ricevado de la novaĵ-fluo: ';
-$lang['nothingfound']          = 'AnkoraÅ­ nenio troviÄas tie ĉi.';
-$lang['mediaselect']           = 'Elekto de aŭdvidaĵa dosiero';
-$lang['uploadsucc']            = 'AlÅuto sukcesis';
-$lang['uploadfail']            = 'AlÅuto malsukcesis. Ĉu eble estas problemoj pro permes-atributoj?';
-$lang['uploadwrong']           = 'Rifuzita alÅuto. Tiu ĉi dosiersufikso estas malpermesata!';
-$lang['uploadexist']           = 'La dosiero jam ekzistas. Nenio estas farita.';
-$lang['uploadbadcontent']      = 'La alÅutita enhavo ne kongruas al la sufikso %s.';
-$lang['uploadspam']            = 'La alÅutaĵo blokiÄis de kontraÅ­spama vortlisto.';
-$lang['uploadxss']             = 'La alÅutajo blokiÄis pro ebla malica enhavo.';
-$lang['uploadsize']            = 'La alÅutita dosiero estis tro granda. (maks. %s)';
-$lang['deletesucc']            = 'La dosiero "%s" forigiÄis.';
-$lang['deletefail']            = '"%s" ne povis esti forigita - kontrolu permes-atributojn.';
-$lang['mediainuse']            = 'La dosiero "%s" ne forigiÄis - Äi ankoraÅ­ estas uzata.';
-$lang['namespaces']            = 'Nomspacoj';
-$lang['mediafiles']            = 'Disponeblaj dosieroj';
-$lang['accessdenied']          = 'Vi ne rajtas vidi tiun paÄon.';
-$lang['mediausage']            = 'Uzu jenan sintakson por referenci tiun ĉi dosieron:';
-$lang['mediaview']             = 'Rigardi originalan dosieron';
-$lang['mediaroot']             = 'ĉefo (root)';
-$lang['mediaupload']           = 'AlÅutu dosieron al la kuranta nomspaco tien ĉi. Por krei subnomspacojn, antaÅ­metu ilin al via "AlÅuti kiel" dosiernomo, disigigante per dupunktoj (:).';
-$lang['mediaextchange']        = 'La dosiersufikso ÅanÄis de .%s al .%s!';
-$lang['reference']             = 'Referencoj por';
-$lang['ref_inuse']             = 'La dosiero ne povas esti forigita, ĉar Äi ankoraÅ­ estas uzata de jenaj paÄoj:';
-$lang['ref_hidden']            = 'Kelkaj referencoj estas en paÄoj, kiujn vi ne rajtas legi';
-$lang['hits']                  = 'Trafoj';
-$lang['quickhits']             = 'Trafoj trovitaj en paÄnomoj';
-$lang['toc']                   = 'Enhavtabelo';
-$lang['current']               = 'aktuala';
-$lang['yours']                 = 'Via versio';
-$lang['diff']                  = 'Montri diferencojn el la aktuala versio';
-$lang['diff2']                 = 'Montri diferencojn inter la elektitaj revizioj';
-$lang['difflink']              = 'Ligilo al kompara rigardo';
-$lang['diff_type']             = 'Rigardi malsamojn:';
-$lang['diff_inline']           = 'Samlinie';
-$lang['diff_side']             = 'Apude';
-$lang['diffprevrev']           = 'AntaÅ­a revizio';
-$lang['diffnextrev']           = 'Sekva revizio';
-$lang['difflastrev']           = 'Lasta revizio';
-$lang['diffbothprevrev']       = 'Sur ambaÅ­ flankoj antaÅ­a revizio';
-$lang['diffbothnextrev']       = 'Sur ambaÅ­ flankoj sekva revizio';
-$lang['line']                  = 'Linio';
-$lang['breadcrumb']            = 'PaÅoj:';
-$lang['youarehere']            = 'Vi estas ĉi tie:';
-$lang['lastmod']               = 'Lastaj ÅanÄoj:';
-$lang['by']                    = 'de';
-$lang['deleted']               = 'forigita';
-$lang['created']               = 'kreita';
-$lang['restored']              = 'malnova revizio restarigita (%s)';
-$lang['external_edit']         = 'ekstera redakto';
-$lang['summary']               = 'Bulteno de ÅanÄoj';
-$lang['noflash']               = 'La <a href="http://www.adobe.com/products/flashplayer/">Adobe Flash Plugin</a> necesas por montri tiun ĉi enhavon.';
-$lang['download']              = 'ElÅuti eltiraĵon';
-$lang['tools']                 = 'Iloj';
-$lang['user_tools']            = 'Uzantaj iloj';
-$lang['site_tools']            = 'Retejaj iloj';
-$lang['page_tools']            = 'PaÄaj iloj';
-$lang['skip_to_content']       = 'al la enhavo';
-$lang['sidebar']               = 'Flanka strio';
-$lang['mail_newpage']          = 'paÄo aldonita:';
-$lang['mail_changed']          = 'paÄo modifita:';
-$lang['mail_subscribe_list']   = 'ÅanÄitaj paÄoj en nomspaco:';
-$lang['mail_new_user']         = 'Nova uzanto:';
-$lang['mail_upload']           = 'dosiero alÅutita:';
-$lang['changes_type']          = 'Rigardi ÅanÄojn de';
-$lang['pages_changes']         = 'PaÄoj';
-$lang['media_changes']         = 'Mediaj dosieroj';
-$lang['both_changes']          = 'Ambaû - paÄojn kaj mediajn dosierojn';
-$lang['qb_bold']               = 'Dika teksto';
-$lang['qb_italic']             = 'Dekliva teksto';
-$lang['qb_underl']             = 'Substrekita teksto';
-$lang['qb_code']               = 'Koduma teksto';
-$lang['qb_strike']             = 'Trastrekita teksto';
-$lang['qb_h1']                 = 'Titolo de 1-a nivelo';
-$lang['qb_h2']                 = 'Titolo de 2-a nivelo';
-$lang['qb_h3']                 = 'Titolo de 3-a nivelo';
-$lang['qb_h4']                 = 'Titolo de 4-a nivelo';
-$lang['qb_h5']                 = 'Titolo de 5-a nivelo';
-$lang['qb_h']                  = 'Ĉeftitolo';
-$lang['qb_hs']                 = 'Elektu ĉeftitolon';
-$lang['qb_hplus']              = 'Altnivela titolo';
-$lang['qb_hminus']             = 'Subnivela titolo';
-$lang['qb_hequal']             = 'Samnivela titolo';
-$lang['qb_link']               = 'Interna ligilo';
-$lang['qb_extlink']            = 'Ekstera ligilo';
-$lang['qb_hr']                 = 'Horizontala streko';
-$lang['qb_ol']                 = 'Elemento de numerita listo';
-$lang['qb_ul']                 = 'Elemento de ne numerita listo';
-$lang['qb_media']              = 'Aldoni bildojn kaj aliajn dosierojn';
-$lang['qb_sig']                = 'Inkluzivi subskribon';
-$lang['qb_smileys']            = 'Ridetuloj';
-$lang['qb_chars']              = 'Specialaj signaĵoj';
-$lang['upperns']               = 'saltu al la parenca nomspaco';
-$lang['metaedit']              = 'Redakti metadatumaron';
-$lang['metasaveerr']           = 'La konservo de metadatumaro malsukcesis';
-$lang['metasaveok']            = 'La metadatumaro konserviÄis';
-$lang['img_title']             = 'Titolo:';
-$lang['img_caption']           = 'Priskribo:';
-$lang['img_date']              = 'Dato:';
-$lang['img_fname']             = 'Dosiernomo:';
-$lang['img_fsize']             = 'Grandeco:';
-$lang['img_artist']            = 'Fotisto:';
-$lang['img_copyr']             = 'Kopirajtoj:';
-$lang['img_format']            = 'Formato:';
-$lang['img_camera']            = 'Kamerao:';
-$lang['img_keywords']          = 'Åœlosilvortoj:';
-$lang['img_width']             = 'LarÄeco:';
-$lang['img_height']            = 'Alteco:';
-$lang['subscr_subscribe_success'] = 'Aldonis %s al la abonlisto por %s';
-$lang['subscr_subscribe_error'] = 'Eraro dum aldono de %s al la abonlisto por %s';
-$lang['subscr_subscribe_noaddress'] = 'Ne estas adreso ligita al via ensaluto, ne eblas aldoni vin al la abonlisto';
-$lang['subscr_unsubscribe_success'] = 'Forigis %s de la abonlisto por %s';
-$lang['subscr_unsubscribe_error'] = 'Eraro dum forigo de %s de la abonlisto por %s';
-$lang['subscr_already_subscribed'] = '%s jam estas abonanta al %s';
-$lang['subscr_not_subscribed'] = '%s ne abonas al %s';
-$lang['subscr_m_not_subscribed'] = 'Momente vi ne abonas la aktualan paÄon aÅ­ nomspacon.';
-$lang['subscr_m_new_header']   = 'Aldoni abonon';
-$lang['subscr_m_current_header'] = 'Momentaj abonoj';
-$lang['subscr_m_unsubscribe']  = 'Malaboni';
-$lang['subscr_m_subscribe']    = 'Aboni';
-$lang['subscr_m_receive']      = 'Ricevi';
-$lang['subscr_style_every']    = 'retpoÅtaĵo pro ĉiu ÅanÄo';
-$lang['subscr_style_digest']   = 'resuma retpoÅtaĵo de ÅanÄoj por ĉiu paÄo (je %.2f tagoj)';
-$lang['subscr_style_list']     = 'listo de ÅanÄitaj paÄoj ekde la lasta retpoÅtaĵo (je %.2f tagoj)';
-$lang['authtempfail']          = 'La identigo de via uzantonomo estas intertempe maldisponebla. Se tiu ĉi situacio daŭros, bonvolu informi la adminstranton de la vikio.';
-$lang['i_chooselang']          = 'Elektu vian lingvon';
-$lang['i_installer']           = 'Instalilo de DokuWiki';
-$lang['i_wikiname']            = 'Nomo de la vikio';
-$lang['i_enableacl']           = 'Ebligi "ACL" (alirkontrolo, rekomendinde)';
-$lang['i_superuser']           = 'Superuzanto';
-$lang['i_problems']            = 'La instalilo trovis kelkajn problemojn, indikitaj sube. Vi ne povas pluiri Äis ili estos iel korektitaj.';
-$lang['i_modified']            = 'Pro sekureco tiu ĉi instalilo nur funkcias por nova kaj nemodifita DokuWiki-pakaĵo.
-Vi devas aÅ­ redemeti la dosierojn el la elÅutita pakaĵo aÅ­ plibone informiÄi pri la instalada procezo.';
-$lang['i_funcna']              = 'La PHP-a funkcio <code>%s</code> ne estas uzebla. Eble via retprovizanto ial malpermesis tion?';
-$lang['i_phpver']              = 'La versio de la PHP <code>%s</code> estas pli malnova ol la bezonata <code>%s</code>. Vi bezonas Äisdatigi la PHP-an instalon.';
-$lang['i_permfail']            = '<code>%s</code> ne estas skribebla por DokuWiki. Vi devas redifini la permes-atributojn de tiu ĉi dosierujo!';
-$lang['i_confexists']          = '<code>%s</code> jam ekzistas';
-$lang['i_writeerr']            = 'Ne eblas krei "<code>%s</code>". Vi bezonas kontroli la permesojn de la dosier(uj)oj kaj mem krej la dosieron.';
-$lang['i_badhash']             = 'dokuwiki.php ne estas rekonebla aÅ­ Äi estas modifita (hash=<code>%s</code>)';
-$lang['i_badval']              = '<code>%s</code> - malvalida aÅ­ malplena valoro';
-$lang['i_success']             = 'La agordado sukcese kompletiÄis. Vi povas forigi la dosieron nun. Pluiru al <a href="doku.php?id=wiki:welcome">via nova DokuWiki</a>.';
-$lang['i_failure']             = 'Kelkaj eraroj okazis dum la konservo de la agordaj dosieroj. Vi devas senpere korekti ilin antaÅ­ ol vi povos uzi <a href="doku.php?id=wiki:welcome">vian novan DokuWiki-on</a>.                       ';
-$lang['i_policy']              = 'Komenca ACL-a agordo';
-$lang['i_pol0']                = 'Malferma Vikio (legi, skribi, alÅuti povas ĉiuj)';
-$lang['i_pol1']                = 'Publika Vikio (legi povas ĉiuj, skribi kaj alÅuti povas registritaj uzantoj)';
-$lang['i_pol2']                = 'Ferma Vikio (legi, skribi, alÅuti nur povas registritaj uzantoj)';
-$lang['i_allowreg']            = 'Permesi al uzantoj registri sin mem';
-$lang['i_retry']               = 'Reprovi';
-$lang['i_license']             = 'Bonvolu elekti la permesilon, sub kiun vi volas meti vian enhavon:';
-$lang['i_license_none']        = 'Ne montri licencinformojn';
-$lang['i_pop_field']           = 'Bonvolu helpi nin plibonigi la DokuWiki-sperton:';
-$lang['i_pop_label']           = 'Sendi unufoje monate anonimajn datumojn pri la uzo al la DokuWiki-evoluigantoj';
-$lang['recent_global']         = 'Vi nun rigardas la ÅanÄojn ene de la nomspaco <b>%s</b>. Vi povas ankaÅ­ <a href="%s">vidi la freÅajn ÅanÄojn de la tuta vikio</a>.';
-$lang['years']                 = 'antaÅ­ %d jaroj';
-$lang['months']                = 'antaÅ­ %d monatoj';
-$lang['weeks']                 = 'antaÅ­ %d semajnoj';
-$lang['days']                  = 'antaÅ­ %d tagoj';
-$lang['hours']                 = 'antaÅ­ %d horoj';
-$lang['minutes']               = 'antaÅ­ %d minutoj';
-$lang['seconds']               = 'antaÅ­ %d sekundoj';
-$lang['wordblock']             = 'Via ÅanÄo ne konserviÄis, ĉar Äi enhavas blokitan tekston (spamon).';
-$lang['media_uploadtab']       = 'AlÅuto';
-$lang['media_searchtab']       = 'Serĉo';
-$lang['media_file']            = 'Dosiero';
-$lang['media_viewtab']         = 'Rigardi';
-$lang['media_edittab']         = 'Modifi';
-$lang['media_historytab']      = 'Historio';
-$lang['media_list_thumbs']     = 'Bildeto';
-$lang['media_list_rows']       = 'Kolumnoj';
-$lang['media_sort_name']       = 'per nomo';
-$lang['media_sort_date']       = 'per dato';
-$lang['media_namespaces']      = 'Elektu nomspacon';
-$lang['media_files']           = 'Dosieroj en %s';
-$lang['media_upload']          = 'AlÅuti al la nomspaco <strong>%s</strong>.';
-$lang['media_search']          = 'Serĉi en la nomspaco <strong>%s</strong>.';
-$lang['media_view']            = '%s';
-$lang['media_viewold']         = '%s ĉe %s';
-$lang['media_edit']            = 'Modifi %s';
-$lang['media_history']         = 'Protokolo de %s';
-$lang['media_meta_edited']     = 'metadatumoj ÅanÄitaj';
-$lang['media_perm_read']       = 'Bedaûrinde viaj rajtoj ne sufiĉas por legi dosierojn.';
-$lang['media_perm_upload']     = 'Bedaûrinde viaj rajtoj ne sufiĉas por alÅuti dosierojn.';
-$lang['media_update']          = 'AlÅuti novan version';
-$lang['media_restore']         = 'Restarigi ĉi tiun version';
-$lang['currentns']             = 'Aktuala nomspaco';
-$lang['searchresult']          = 'Serĉrezulto';
-$lang['plainhtml']             = 'Plena HTML';
-$lang['wikimarkup']            = 'Vikiteksto';
-$lang['email_signature_text']  = 'Tiu ĉi mesaÄo kreiÄis de DokuWiki ĉe
-@DOKUWIKIURL@';
diff --git a/wiki/inc/lang/eo/locked.txt b/wiki/inc/lang/eo/locked.txt
deleted file mode 100644
index abdc059..0000000
--- a/wiki/inc/lang/eo/locked.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== La paÄo estas Ålosita ======
-
-Tiu ĉi paÄo nun blokiÄis pro redaktado de iu alia uzanto. Bonvolu atendi ke Åi/li finu redakti aÅ­ ke la Ålosada tempolimo finiÄu.
diff --git a/wiki/inc/lang/eo/login.txt b/wiki/inc/lang/eo/login.txt
deleted file mode 100644
index 2b9b343..0000000
--- a/wiki/inc/lang/eo/login.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Enirejo ======
-
-Vi ankoraÅ­ ne identiÄis! Entajpu necesajn informojn sube por identiÄi. Kuketoj (cookies) devas esti Åaltitaj.
\ No newline at end of file
diff --git a/wiki/inc/lang/eo/mailtext.txt b/wiki/inc/lang/eo/mailtext.txt
deleted file mode 100644
index 6c5b80c..0000000
--- a/wiki/inc/lang/eo/mailtext.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-PaÄo en via DokuVikio ÅanÄiÄis aÅ­ aldoniÄis. Jen detaloj:
-
-Dato: @DATE@
-Foliumilo: @BROWSER@
-IP-adreso: @IPADDRESS@
-RetNodo: @HOSTNAME@
-AntaÅ­a revizio: @OLDPAGE@
-Nova revizio: @NEWPAGE@
-Bulteno de ÅanÄoj: @SUMMARY@
-Uzanto: @USER@
-
-@DIFF@
diff --git a/wiki/inc/lang/eo/mailwrap.html b/wiki/inc/lang/eo/mailwrap.html
deleted file mode 100644
index d257190..0000000
--- a/wiki/inc/lang/eo/mailwrap.html
+++ /dev/null
@@ -1,13 +0,0 @@
-<html>
-<head>
-<title>@TITLE@</title>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-</head>
-<body>
-
-@HTMLBODY@
-
-<br /><hr />
-<small>@EMAILSIGNATURE@</small>
-</body>
-</html>
\ No newline at end of file
diff --git a/wiki/inc/lang/eo/newpage.txt b/wiki/inc/lang/eo/newpage.txt
deleted file mode 100644
index 53ab620..0000000
--- a/wiki/inc/lang/eo/newpage.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Ĉi tiu paÄo ankoraÅ­ ne ekzistas ======
-
-Vi sekvis ligilon, kiu kondukas al artikolo ankoraÅ­ ne ekzistanta. Se vi rajtas, tiam vi povas krei tiun ĉi paÄon premante la butonon "Krei paÄon".
-
diff --git a/wiki/inc/lang/eo/norev.txt b/wiki/inc/lang/eo/norev.txt
deleted file mode 100644
index e951a55..0000000
--- a/wiki/inc/lang/eo/norev.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Tiu revizio ne ekzistas ======
-
-La elektita revizio ne ekzistas. Premu butonon "Malnovaj revizioj" por vidi liston de malnovaj revizioj de la dokumento.
diff --git a/wiki/inc/lang/eo/password.txt b/wiki/inc/lang/eo/password.txt
deleted file mode 100644
index 6995ec5..0000000
--- a/wiki/inc/lang/eo/password.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-Saluton, @FULLNAME@!
-
-Jen viaj uzantodatumoj por @TITLE@ ĉe @DOKUWIKIURL@
-
-Ensalutnomo: @LOGIN@
-Pasvorto: @PASSWORD@
diff --git a/wiki/inc/lang/eo/preview.txt b/wiki/inc/lang/eo/preview.txt
deleted file mode 100644
index b3faef6..0000000
--- a/wiki/inc/lang/eo/preview.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== AntaÅ­rigardo ======
-
-Tiu ĉi estas antaÅ­rigardo de redaktita teksto. Memoru: Äi ankoraÅ­ **ne konserviÄis**!
diff --git a/wiki/inc/lang/eo/pwconfirm.txt b/wiki/inc/lang/eo/pwconfirm.txt
deleted file mode 100644
index d6cde8d..0000000
--- a/wiki/inc/lang/eo/pwconfirm.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-Saluton, @FULLNAME@!
-
-Iu petis novan pasvorton por via @TITLE@
-ensalutnomo ĉe @DOKUWIKIURL@
-
-Se ne vi petis tion, ignoru tiun ĉi mesaÄon.
-
-Por konfirmi, ke la peto estis vere via, bonvolu musklaki jenan ligilon:
-
-@CONFIRM@
diff --git a/wiki/inc/lang/eo/read.txt b/wiki/inc/lang/eo/read.txt
deleted file mode 100644
index b8c642f..0000000
--- a/wiki/inc/lang/eo/read.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-Tiu ĉi paÄo disponiÄas nur por legado (vi ne povas redakti Äin). Sciigu administranton, se vi opinias ke tio estas falsa malpermeso.
-
diff --git a/wiki/inc/lang/eo/recent.txt b/wiki/inc/lang/eo/recent.txt
deleted file mode 100644
index 2454ea6..0000000
--- a/wiki/inc/lang/eo/recent.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== FreÅaj ÅœanÄoj ======
-
-Jenaj paÄoj ÅanÄiÄis antaÅ­ nelonge:
diff --git a/wiki/inc/lang/eo/register.txt b/wiki/inc/lang/eo/register.txt
deleted file mode 100644
index 10b303d..0000000
--- a/wiki/inc/lang/eo/register.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== RegistriÄi ======
-
-Entajpu necesajn informojn por enregistriÄi. CertiÄu ke via retpoÅta adreso estas vera, ĉar ni sendos al Äi vian pasvorton.
-
diff --git a/wiki/inc/lang/eo/registermail.txt b/wiki/inc/lang/eo/registermail.txt
deleted file mode 100644
index b9c3870..0000000
--- a/wiki/inc/lang/eo/registermail.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-Nova uzanto registriÄis. Jen la detaloj:
-
-Uzantonomo: @NEWUSER@
-Kompleta nomo: @NEWNAME@
-Retadreso: @NEWEMAIL@
-
-Dato: @DATE@
-Foliumilo: @BROWSER@
-IP-Adreso: @IPADDRESS@
-Provizanto: @HOSTNAME@
diff --git a/wiki/inc/lang/eo/resendpwd.txt b/wiki/inc/lang/eo/resendpwd.txt
deleted file mode 100644
index 556477a..0000000
--- a/wiki/inc/lang/eo/resendpwd.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Sendi novan pasvorton ======
-
-Bonvolu meti vian uzantonomon en la suban formularon petante novan pasvorton por via aliÄo en tiu ĉi vikio. Konfirma ligilo sendaiÄos al via registrita retadreso.
diff --git a/wiki/inc/lang/eo/resetpwd.txt b/wiki/inc/lang/eo/resetpwd.txt
deleted file mode 100644
index 442a7ac..0000000
--- a/wiki/inc/lang/eo/resetpwd.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Difini novan pasvorton ======
-
-
-Bonvolu indiki novan pasvorton por via konto en tiu ĉi vikio.
\ No newline at end of file
diff --git a/wiki/inc/lang/eo/revisions.txt b/wiki/inc/lang/eo/revisions.txt
deleted file mode 100644
index 4f37bb1..0000000
--- a/wiki/inc/lang/eo/revisions.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Malnovaj revizioj ======
-
-Sube estas listo de malnovaj revizioj de la dokumento. Elektu revizion se vi volas rigardi Äin aÅ­ anstataÅ­igi kurantan paÄon per Äi.
\ No newline at end of file
diff --git a/wiki/inc/lang/eo/searchpage.txt b/wiki/inc/lang/eo/searchpage.txt
deleted file mode 100644
index 20711c2..0000000
--- a/wiki/inc/lang/eo/searchpage.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Serĉo ======
-
-Sube estas rezultoj de serĉo en la retejo. @CREATEPAGEINFO@
-
diff --git a/wiki/inc/lang/eo/showrev.txt b/wiki/inc/lang/eo/showrev.txt
deleted file mode 100644
index 3ece4f2..0000000
--- a/wiki/inc/lang/eo/showrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**Tiu estas malnova revizio de la dokumento**. Klaku sur titolon por ricevi kurantan version.
-----
diff --git a/wiki/inc/lang/eo/stopwords.txt b/wiki/inc/lang/eo/stopwords.txt
deleted file mode 100644
index d27c569..0000000
--- a/wiki/inc/lang/eo/stopwords.txt
+++ /dev/null
@@ -1,20 +0,0 @@
-# Jen listo de vortoj, kiujn la indeksilo ignoras, unu vorton po linio
-# Kiam vi modifas la dosieron, estu certa ke vi uzas UNIX-stilajn linifinaĵojn (unuopa novlinio)
-# Ne enmetu vortojn malpli longajn ol 3 literoj - tiuj ĉiukaze ignoriÄas
-pri
-estas
-kaj
-mia
-via
-ili
-ilia
-kun
-por
-kiel
-tiu
-estis
-kio
-kiam
-kie
-kiu
-www
diff --git a/wiki/inc/lang/eo/subscr_digest.txt b/wiki/inc/lang/eo/subscr_digest.txt
deleted file mode 100644
index 7e5310a..0000000
--- a/wiki/inc/lang/eo/subscr_digest.txt
+++ /dev/null
@@ -1,16 +0,0 @@
-Saluton!
-
-La paÄo @PAGE@ en la vikio @TITLE@ ÅanÄiÄis.
-Jen sekvas la ÅanÄoj:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-Malnova versio: @OLDPAGE@
-Nova versio: @NEWPAGE@
-
-Por nuligi la paÄinformojn, ensalutu la vikion ĉe
-@DOKUWIKIURL@, poste iru al
-@SUBSCRIBE@
-kaj malabonu la paÄajn kaj/aÅ­ nomspacajn ÅanÄojn.
diff --git a/wiki/inc/lang/eo/subscr_form.txt b/wiki/inc/lang/eo/subscr_form.txt
deleted file mode 100644
index 259b210..0000000
--- a/wiki/inc/lang/eo/subscr_form.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Abona administrado ======
-
-Tiu paÄo lasas vin administri viajn abonojn por la aktualaj paÄo kaj nomspaco.
\ No newline at end of file
diff --git a/wiki/inc/lang/eo/subscr_list.txt b/wiki/inc/lang/eo/subscr_list.txt
deleted file mode 100644
index ed0c809..0000000
--- a/wiki/inc/lang/eo/subscr_list.txt
+++ /dev/null
@@ -1,13 +0,0 @@
-Saluton!
-
-PaÄoj en la nomspaco @PAGE@ en la vikio @TITLE@ ÅanÄiÄis.
-Jen sekvas la ÅanÄitaj paÄoj:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-Por nuligi la paÄinformojn, ensalutu la vikion ĉe
-@DOKUWIKIURL@, poste iru al
-@SUBSCRIBE@
-kaj malabonu la paÄajn kaj/aÅ­ nomspacajn ÅanÄojn.
diff --git a/wiki/inc/lang/eo/subscr_single.txt b/wiki/inc/lang/eo/subscr_single.txt
deleted file mode 100644
index 56d489c..0000000
--- a/wiki/inc/lang/eo/subscr_single.txt
+++ /dev/null
@@ -1,19 +0,0 @@
-Saluton!
-
-La paÄo @PAGE@ en la vikio @TITLE@ ÅanÄiÄis.
-Jen sekvas la ÅanÄoj:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-Dato: @DATE@
-Uzanto: @USER@
-Modifa resumo: @SUMMARY@
-Malnova versio: @OLDPAGE@
-Nova versio: @NEWPAGE@
-
-Por nuligi la paÄinformojn, ensalutu la vikion ĉe
-@DOKUWIKIURL@, poste iru al
-@SUBSCRIBE@
-kaj malabonu la paÄajn kaj/aÅ­ nomspacajn ÅanÄojn.
diff --git a/wiki/inc/lang/eo/updateprofile.txt b/wiki/inc/lang/eo/updateprofile.txt
deleted file mode 100644
index 4b52ff2..0000000
--- a/wiki/inc/lang/eo/updateprofile.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Äœisdatigi vian profilon ======
-
-Vi nur kompletigu tiujn kampojn, kiujn vi deziras ÅanÄi. Vi ne povas ÅanÄi vian uzantonomon.
diff --git a/wiki/inc/lang/eo/uploadmail.txt b/wiki/inc/lang/eo/uploadmail.txt
deleted file mode 100644
index 6268824..0000000
--- a/wiki/inc/lang/eo/uploadmail.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-Dosiero alÅutiÄis al via DokuVikio. Jen detaloj:
-
-Dosiero: @MEDIA@
-Dato: @DATE@
-Foliumilo: @BROWSER@
-IP-Adreso: @IPADDRESS@
-Ret-nodo: @HOSTNAME@
-Grandeco: @SIZE@
-Dosier-tipo: @MIME@
-Uzanto: @USER@
diff --git a/wiki/inc/lang/es/admin.txt b/wiki/inc/lang/es/admin.txt
deleted file mode 100644
index 320b1c5..0000000
--- a/wiki/inc/lang/es/admin.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Administración ======
-
-Abajo puedes encontrar una lista de las tareas de administración disponibles en Dokuwiki.
diff --git a/wiki/inc/lang/es/adminplugins.txt b/wiki/inc/lang/es/adminplugins.txt
deleted file mode 100644
index 8e1b0f8..0000000
--- a/wiki/inc/lang/es/adminplugins.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Plugins Adicionales =====
\ No newline at end of file
diff --git a/wiki/inc/lang/es/backlinks.txt b/wiki/inc/lang/es/backlinks.txt
deleted file mode 100644
index 4de93ef..0000000
--- a/wiki/inc/lang/es/backlinks.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Referencias ======
-
-Esta es una lista de páginas que parecen hacer referencia a la página actual.
-
diff --git a/wiki/inc/lang/es/conflict.txt b/wiki/inc/lang/es/conflict.txt
deleted file mode 100644
index 265ac1e..0000000
--- a/wiki/inc/lang/es/conflict.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== Existe una versión más reciente ======
-
-Existe una versión más reciente del documento que has editado. Esto sucede cuando otro usuario ha modificado el documento mientras lo estabas editando.
-
-Examina las diferencias mostradas abajo a fondo, y decide entonces cual conservar. Si eliges ''Guardar'', tu versión será guardada. Si eliges ''Cancelar'' se guardará la actual versión.
\ No newline at end of file
diff --git a/wiki/inc/lang/es/denied.txt b/wiki/inc/lang/es/denied.txt
deleted file mode 100644
index 02a76a8..0000000
--- a/wiki/inc/lang/es/denied.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Permiso Denegado ======
-
-Lo siento, no tienes suficientes permisos para continuar.
-
diff --git a/wiki/inc/lang/es/diff.txt b/wiki/inc/lang/es/diff.txt
deleted file mode 100644
index e0e9e08..0000000
--- a/wiki/inc/lang/es/diff.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Diferencias ======
-
-Muestra las diferencias entre dos versiones de la página.
-
diff --git a/wiki/inc/lang/es/draft.txt b/wiki/inc/lang/es/draft.txt
deleted file mode 100644
index 054d618..0000000
--- a/wiki/inc/lang/es/draft.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-====== Fichero borrador encontrado ======
-
-Su última sesión de edición en esta página no se completó correctamente. DokuWiki guardó automáticamente un borrador mientras usted trabajaba; puede utilizar el borrador para continuar editándolo. Abajo se ven los datos que fueron guardados en su última sesión.
-
-Por favor decida si desea //recuperar// su sesión perdida, //eliminar// el borrador guardado automáticamente o //cancelar// el proceso de edición.
-
diff --git a/wiki/inc/lang/es/edit.txt b/wiki/inc/lang/es/edit.txt
deleted file mode 100644
index 4ed253b..0000000
--- a/wiki/inc/lang/es/edit.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-Edita la página y pulsa ''Guardar''. Vaya a [[wiki:syntax]] para ver la sintaxis del Wiki. Por favor edite la página solo si puedes **mejorarla**. Si quieres probar algo relacionado a la sintaxis, aprende a dar tus primeros pasos en el [[playground:playground]].
-
diff --git a/wiki/inc/lang/es/editrev.txt b/wiki/inc/lang/es/editrev.txt
deleted file mode 100644
index 4b587b7..0000000
--- a/wiki/inc/lang/es/editrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**Has cargado una revisión vieja del documento!** Si la guardas crearás una versión nueva con estos datos.
-----
\ No newline at end of file
diff --git a/wiki/inc/lang/es/index.txt b/wiki/inc/lang/es/index.txt
deleted file mode 100644
index 148e5f4..0000000
--- a/wiki/inc/lang/es/index.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Ãndice ======
-
-Este es un índice de todas las páginas disponibles ordenado por [[doku>namespaces|espacios de nombres]].
-
diff --git a/wiki/inc/lang/es/install.html b/wiki/inc/lang/es/install.html
deleted file mode 100644
index 94680bb..0000000
--- a/wiki/inc/lang/es/install.html
+++ /dev/null
@@ -1,14 +0,0 @@
-<p>Esta página lo asiste en la primera vez que instala y configura
-<a href="http://dokuwiki.org">Dokuwiki</a>.
-Más información sobre este instalador está disponible en la
-<a href="http://dokuwiki.org/installer">página de documentación</a>.
-</p>
-
-<p>DokuWiki usa ficheros comunes para el almacenamiento de las páginas del wiki y otra información asociada a esas páginas (por ejemplo, imágenes, índices de archivos, revisiones viejas, etc). Para funcionar correctamente DokuWiki <strong>debe</strong> tener permisos de escritura en los directorios que contienen esos ficheros. Este instalador no es capaz de establecer permisos en directorios. Normalmente eso debe ser hecho a través de una consola de comandos o si usted usa servicios de hosting a través de FTP o el panel de control brindado por su hosting (e.g. cPanel).</p>
-
-<p>Este instalador configurará una <abbr title="lista de control de acceso">ACL</abbr>, que a su vez permite el acceso al administrador y acceso a los menúes de administración para instalación
-de plugins, administración de usuarios, administración de permisos para las páginas wiki y modificación de la configuración. A pesar que no es necesario para que DokuWiki funcione, hará que sea más fácil la administración.</p>
-
-<p>Usuarios experimentados o usuarios con requerimientos especiales deben usar estos enlaces para detalles concernientes a
-<a href="http://dokuwiki.org/install">instrucciones de instalación</a>
-y <a href="http://dokuwiki.org/config">configuración</a>.</p>
diff --git a/wiki/inc/lang/es/jquery.ui.datepicker.js b/wiki/inc/lang/es/jquery.ui.datepicker.js
deleted file mode 100644
index ea7116e..0000000
--- a/wiki/inc/lang/es/jquery.ui.datepicker.js
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Inicialización en español para la extensión 'UI date picker' para jQuery. */
-/* Traducido por Vester (xvester@gmail.com). */
-( function( factory ) {
-	if ( typeof define === "function" && define.amd ) {
-
-		// AMD. Register as an anonymous module.
-		define( [ "../widgets/datepicker" ], factory );
-	} else {
-
-		// Browser globals
-		factory( jQuery.datepicker );
-	}
-}( function( datepicker ) {
-
-datepicker.regional.es = {
-	closeText: "Cerrar",
-	prevText: "&#x3C;Ant",
-	nextText: "Sig&#x3E;",
-	currentText: "Hoy",
-	monthNames: [ "enero","febrero","marzo","abril","mayo","junio",
-	"julio","agosto","septiembre","octubre","noviembre","diciembre" ],
-	monthNamesShort: [ "ene","feb","mar","abr","may","jun",
-	"jul","ago","sep","oct","nov","dic" ],
-	dayNames: [ "domingo","lunes","martes","miércoles","jueves","viernes","sábado" ],
-	dayNamesShort: [ "dom","lun","mar","mié","jue","vie","sáb" ],
-	dayNamesMin: [ "D","L","M","X","J","V","S" ],
-	weekHeader: "Sm",
-	dateFormat: "dd/mm/yy",
-	firstDay: 1,
-	isRTL: false,
-	showMonthAfterYear: false,
-	yearSuffix: "" };
-datepicker.setDefaults( datepicker.regional.es );
-
-return datepicker.regional.es;
-
-} ) );
diff --git a/wiki/inc/lang/es/lang.php b/wiki/inc/lang/es/lang.php
deleted file mode 100644
index 41b6cf8..0000000
--- a/wiki/inc/lang/es/lang.php
+++ /dev/null
@@ -1,395 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Domingo Redal <docxml@gmail.com>
- * @author Zigor Astarbe <zigor@astarbe.com>
- * @author Adrián Ariza <adrian_ariza.ciudad.com.ar>
- * @author Gabiel Molina <gabriel191@gmail.com>
- * @author Paco Avila <monkiki@gmail.com>
- * @author Bernardo Arlandis Mañó <bernardo@tsolucio.com>
- * @author Miguel Pagano <miguel.pagano@gmail.com>
- * @author Oscar M. Lage <r0sk10@gmail.com>
- * @author Gabriel Castillo <gch@pumas.ii.unam.mx>
- * @author oliver <oliver@samera.com.py>
- * @author Enrico Nicoletto <liverig@gmail.com>
- * @author Manuel Meco <manuel.meco@gmail.com>
- * @author Jordan Mero <hack.jord@gmail.com>
- * @author Felipe Martinez <metalmartinez@gmail.com>
- * @author Javier Aranda <internet@javierav.com>
- * @author Zerial <fernando@zerial.org>
- * @author Marvin Ortega <maty1206@maryanlinux.com>
- * @author Daniel Castro Alvarado <dancas2@gmail.com>
- * @author Fernando J. Gómez <fjgomez@gmail.com>
- * @author Victor Castelan <victorcastelan@gmail.com>
- * @author Mauro Javier Giamberardino <mgiamberardino@gmail.com>
- * @author emezeta <emezeta@infoprimo.com>
- * @author Oscar Ciudad <oscar@jacho.net>
- * @author Ruben Figols <ruben.figols@gmail.com>
- * @author Gerardo Zamudio <gerardo@gerardozamudio.net>
- * @author Mercè López <mercelz@gmail.com>
- * @author monica <may.dorado@gmail.com>
- * @author Antonio Bueno <atnbueno@gmail.com>
- * @author Juan De La Cruz <juann.dlc@gmail.com>
- * @author Fernando <fdiezala@gmail.com>
- * @author Eloy <ej.perezgomez@gmail.com>
- * @author Antonio Castilla <antoniocastilla@trazoide.com>
- * @author Jonathan Hernández <me@jhalicea.com>
- * @author pokesakura <pokesakura@gmail.com>
- * @author Ãlvaro Iradier <airadier@gmail.com>
- * @author Alejandro Nunez <nunez.alejandro@gmail.com>
- * @author Mauricio Segura <maose38@yahoo.es>
- * @author solohazlo <solohhazlo@gmail.com>
- * @author Romano <romanocl@outlook.com>
- * @author David Roy <davidroyapp@gmail.com>
- * @author Enny Rodriguez <aquilez.4@gmail.com>
- */
-$lang['encoding']              = 'utf-8';
-$lang['direction']             = 'ltr';
-$lang['doublequoteopening']    = '“';
-$lang['doublequoteclosing']    = 'â€';
-$lang['singlequoteopening']    = '‘';
-$lang['singlequoteclosing']    = '’';
-$lang['apostrophe']            = '’';
-$lang['btn_edit']              = 'Editar esta página';
-$lang['btn_source']            = 'Ver la fuente de esta página';
-$lang['btn_show']              = 'Ver página';
-$lang['btn_create']            = 'Crear esta página';
-$lang['btn_search']            = 'Buscar';
-$lang['btn_save']              = 'Guardar';
-$lang['btn_preview']           = 'Previsualización';
-$lang['btn_top']               = 'Volver arriba';
-$lang['btn_newer']             = '<< más reciente';
-$lang['btn_older']             = 'menos reciente >>';
-$lang['btn_revs']              = 'Revisiones antiguas';
-$lang['btn_recent']            = 'Cambios recientes';
-$lang['btn_upload']            = 'Cargar';
-$lang['btn_cancel']            = 'Cancelar';
-$lang['btn_index']             = 'Ãndice';
-$lang['btn_secedit']           = 'Editar';
-$lang['btn_login']             = 'Conectarse';
-$lang['btn_logout']            = 'Desconectarse';
-$lang['btn_admin']             = 'Administrar';
-$lang['btn_update']            = 'Actualizar';
-$lang['btn_delete']            = 'Borrar';
-$lang['btn_back']              = 'Atrás';
-$lang['btn_backlink']          = 'Enlaces a esta página';
-$lang['btn_subscribe']         = 'Suscribirse a cambios de la página';
-$lang['btn_profile']           = 'Actualizar perfil';
-$lang['btn_reset']             = 'Restablecer';
-$lang['btn_resendpwd']         = 'Establecer nueva contraseña';
-$lang['btn_draft']             = 'Editar borrador';
-$lang['btn_recover']           = 'Recuperar borrador';
-$lang['btn_draftdel']          = 'Eliminar borrador';
-$lang['btn_revert']            = 'Restaurar';
-$lang['btn_register']          = 'Registrarse';
-$lang['btn_apply']             = 'Aplicar';
-$lang['btn_media']             = 'Administrador de Ficheros';
-$lang['btn_deleteuser']        = 'Elimina Mi Cuenta';
-$lang['btn_img_backto']        = 'Volver a %s';
-$lang['btn_mediaManager']      = 'Ver en el administrador de ficheros';
-$lang['loggedinas']            = 'Conectado como:';
-$lang['user']                  = 'Usuario';
-$lang['pass']                  = 'Contraseña';
-$lang['newpass']               = 'Nueva contraseña';
-$lang['oldpass']               = 'Confirma tu contraseña actual';
-$lang['passchk']               = 'otra vez';
-$lang['remember']              = 'Recordarme';
-$lang['fullname']              = 'Nombre real';
-$lang['email']                 = 'E-Mail';
-$lang['profile']               = 'Perfil del usuario';
-$lang['badlogin']              = 'Lo siento, el usuario o la contraseña es incorrecto.';
-$lang['badpassconfirm']        = 'Lo siento, la contraseña es errónea';
-$lang['minoredit']             = 'Cambios menores';
-$lang['draftdate']             = 'Borrador guardado automáticamente:';
-$lang['nosecedit']             = 'La página ha cambiado en el lapso, la información de sección estaba anticuada, en su lugar se cargó la página completa.';
-$lang['searchcreatepage']      = 'Si no encontró lo que estaba buscando, puede crear o editar la página %s, nombrada después de su consulta.';
-$lang['search_fullresults']    = 'Resultados de texto completo';
-$lang['js']['search_toggle_tools'] = 'Alternar herramientas de búsqueda';
-$lang['js']['willexpire']      = 'El bloqueo para la edición de esta página expira en un minuto.\nPAra prevenir conflictos uso el botón Previsualizar para restaurar el contador de bloqueo.';
-$lang['js']['notsavedyet']     = 'Los cambios que no se han guardado se perderán.
-¿Realmente quieres continuar?';
-$lang['js']['searchmedia']     = 'Buscar archivos';
-$lang['js']['keepopen']        = 'Mantener la ventana abierta luego de seleccionar';
-$lang['js']['hidedetails']     = 'Ocultar detalles';
-$lang['js']['mediatitle']      = 'Configuración del vínculo';
-$lang['js']['mediadisplay']    = 'Tipo de vínculo';
-$lang['js']['mediaalign']      = 'Alineación';
-$lang['js']['mediasize']       = 'Tamaño de la imagen';
-$lang['js']['mediatarget']     = 'Destino del vínculo';
-$lang['js']['mediaclose']      = 'Cerrar';
-$lang['js']['mediainsert']     = 'Insertar';
-$lang['js']['mediadisplayimg'] = 'Mostrar la imagen.';
-$lang['js']['mediadisplaylnk'] = 'Mostrar solo el vínculo.';
-$lang['js']['mediasmall']      = 'Versión en tamaño pequeño';
-$lang['js']['mediamedium']     = 'Versión en tamaño medio';
-$lang['js']['medialarge']      = 'Versión en tamaño grande';
-$lang['js']['mediaoriginal']   = 'Versión original';
-$lang['js']['medialnk']        = 'Vínculo a la pagina de descripción';
-$lang['js']['mediadirect']     = 'Vínculo al original';
-$lang['js']['medianolnk']      = 'Sin vínculo';
-$lang['js']['medianolink']     = 'No vincular la imagen';
-$lang['js']['medialeft']       = 'Alinear imagen a la izquierda';
-$lang['js']['mediaright']      = 'Alinear imagen a la derecha.';
-$lang['js']['mediacenter']     = 'Alinear imagen en el centro.';
-$lang['js']['medianoalign']    = 'No use alineación.';
-$lang['js']['nosmblinks']      = 'El enlace a recursos compartidos de Windows sólo funciona en Microsoft Internet Explorer.
-Lo que sí puedes hacer es copiar y pegar el enlace.';
-$lang['js']['linkwiz']         = 'Asistente de enlaces';
-$lang['js']['linkto']          = 'Enlazar a:';
-$lang['js']['del_confirm']     = '¿Quieres realmente borrar lo seleccionado?';
-$lang['js']['restore_confirm'] = '¿Estás seguro de querer restaurar esta versión?';
-$lang['js']['media_diff']      = 'Ver diferencias:';
-$lang['js']['media_diff_both'] = 'Lado por lado';
-$lang['js']['media_diff_opacity'] = 'A través de Shine';
-$lang['js']['media_diff_portions'] = 'Pasar';
-$lang['js']['media_select']    = 'Seleccionar ficheros';
-$lang['js']['media_upload_btn'] = 'Cargar';
-$lang['js']['media_done_btn']  = 'Hecho';
-$lang['js']['media_drop']      = 'Arrastra los ficheros aquí para cargar';
-$lang['js']['media_cancel']    = 'Eliminar';
-$lang['js']['media_overwrt']   = 'Sobreescribir ficheros exitentes';
-$lang['search_exact_match']    = 'Coincidencia exacta';
-$lang['search_starts_with']    = 'Comienza con';
-$lang['search_ends_with']      = 'Termina con';
-$lang['search_contains']       = 'Contiene';
-$lang['search_custom_match']   = 'Personalizado';
-$lang['search_any_ns']         = 'Cualquier espacio de nombres';
-$lang['search_any_time']       = 'En cualquier momento';
-$lang['search_past_7_days']    = 'La semana pasada';
-$lang['search_past_month']     = 'El mes pasado';
-$lang['search_past_year']      = 'El año pasado';
-$lang['search_sort_by_hits']   = 'Ordenar por relevancia';
-$lang['search_sort_by_mtime']  = 'Ordenar por la última modificación';
-$lang['regmissing']            = 'Lo siento, tienes que completar todos los campos.';
-$lang['reguexists']            = 'Lo siento, ya existe un usuario con este nombre.';
-$lang['regsuccess']            = 'El usuario ha sido creado y la contraseña se ha enviado por correo.';
-$lang['regsuccess2']           = 'El usuario ha sido creado.';
-$lang['regfail']               = 'No se pudo crear el usuario.';
-$lang['regmailfail']           = 'Parece que ha habido un error al enviar el correo con la contraseña. ¡Por favor, contacta al administrador!';
-$lang['regbadmail']            = 'La dirección de correo no parece válida. Si piensas que esto es un error, contacta al administrador';
-$lang['regbadpass']            = 'Las dos contraseñas no son iguales, por favor inténtalo de nuevo.';
-$lang['regpwmail']             = 'Tu contraseña de DokuWiki';
-$lang['reghere']               = '¿No tienes una cuenta todavía? Consigue una';
-$lang['profna']                = 'Este wiki no permite la modificación del perfil';
-$lang['profnochange']          = 'Sin cambios, nada que hacer.';
-$lang['profnoempty']           = 'No se permite que el nombre o la dirección de correo electrónico estén vacíos.';
-$lang['profchanged']           = 'Se actualizó correctamente el perfil del usuario.';
-$lang['profnodelete']          = 'Este wiki no soporta el borrado de usuarios';
-$lang['profdeleteuser']        = 'Eliminar Cuenta';
-$lang['profdeleted']           = 'Tu cuenta de usuario ha sido eliminada de este wiki';
-$lang['profconfdelete']        = 'Deseo eliminar mi cuenta de este wiki. <br /> Esta acción es irreversible.';
-$lang['profconfdeletemissing'] = 'Casilla de verificación no activada.';
-$lang['proffail']              = 'No se ha actualizado el perfil del usuario.';
-$lang['pwdforget']             = '¿Has olvidado tu contraseña? Consigue una nueva';
-$lang['resendna']              = 'Este wiki no brinda la posibilidad de reenvío de contraseña.';
-$lang['resendpwd']             = 'Establecer nueva contraseña para';
-$lang['resendpwdmissing']      = 'Lo siento, debes completar todos los campos.';
-$lang['resendpwdnouser']       = 'Lo siento, no se encuentra este usuario en nuestra base de datos.';
-$lang['resendpwdbadauth']      = 'Lo siento, este código de autenticación no es válido. Asegúrate de haber usado el enlace de confirmación entero.';
-$lang['resendpwdconfirm']      = 'Un enlace para confirmación ha sido enviado por correo electrónico.';
-$lang['resendpwdsuccess']      = 'Tu nueva contraseña ha sido enviada por correo electrónico.';
-$lang['license']               = 'Excepto donde se indique lo contrario, el contenido de este wiki esta bajo la siguiente licencia:';
-$lang['licenseok']             = 'Nota: Al editar esta página, estás de acuerdo en autorizar su contenido bajo la siguiente licencia:';
-$lang['searchmedia']           = 'Buscar archivo:';
-$lang['searchmedia_in']        = 'Buscar en %s';
-$lang['txt_upload']            = 'Selecciona el archivo a subir:';
-$lang['txt_filename']          = 'Subir como (opcional):';
-$lang['txt_overwrt']           = 'Sobreescribir archivo existente';
-$lang['maxuploadsize']         = 'Peso máximo de %s por archivo';
-$lang['lockedby']              = 'Actualmente bloqueado por:';
-$lang['lockexpire']            = 'El bloqueo expira en:';
-$lang['rssfailed']             = 'Se ha producido un error mientras se leían los datos de este feed: ';
-$lang['nothingfound']          = 'No se ha encontrado nada.';
-$lang['mediaselect']           = 'Archivos Multimedia';
-$lang['uploadsucc']            = 'El archivo se ha subido satisfactoriamente';
-$lang['uploadfail']            = 'La subida del fichero ha fallado. ¿Permisos equivocados?';
-$lang['uploadwrong']           = 'Subida de fichero denegada. ¡Los ficheros con esta extensión están prohibidos!';
-$lang['uploadexist']           = 'El fichero ya existe. No se ha hecho nada.';
-$lang['uploadbadcontent']      = 'El contenido de la subida no coincide con la extensión de fichero %s';
-$lang['uploadspam']            = 'La subida ha sido bloqueada por una lista negra de spam';
-$lang['uploadxss']             = 'La subida ha sido bloqueada por contenido posiblemente malicioso';
-$lang['uploadsize']            = 'El fichero subido es demasiado grande. (max. %s)';
-$lang['deletesucc']            = 'El fichero "%s" ha sido borrado.';
-$lang['deletefail']            = '"%s" no pudo ser borrado; verifique los permisos.';
-$lang['mediainuse']            = 'El fichero "%s" no ha sido borrado, aún está en uso.';
-$lang['namespaces']            = 'Espacios de nombres';
-$lang['mediafiles']            = 'Ficheros disponibles en';
-$lang['accessdenied']          = 'No tiene permisos para ver esta página.';
-$lang['mediausage']            = 'Use la siguiente sintaxis para hacer referencia a este fichero:';
-$lang['mediaview']             = 'Ver el fichero original';
-$lang['mediaroot']             = 'root';
-$lang['mediaupload']           = 'Subir aquí un fichero al espacio de nombres actual. Para crear sub-espacios de nombres, antepóngalos al nombre de fichero separándolos por dos puntos (:) en "Subir como".';
-$lang['mediaextchange']        = 'Extensión del fichero cambiada de .%s a .%s!';
-$lang['reference']             = 'Referencias para';
-$lang['ref_inuse']             = 'El fichero no puede ser borrado, porque todavía se está usando en las siguientes páginas:';
-$lang['ref_hidden']            = 'Algunas referencias están en páginas sobre las que no tienes permiso de lectura';
-$lang['hits']                  = 'Entradas';
-$lang['quickhits']             = 'Páginas que coinciden';
-$lang['toc']                   = 'Tabla de Contenidos';
-$lang['current']               = 'actual';
-$lang['yours']                 = 'Tu versión';
-$lang['diff']                  = 'Muestra diferencias a la versión actual';
-$lang['diff2']                 = 'Muestra las diferencias entre las revisiones seleccionadas';
-$lang['difflink']              = 'Enlace a la vista de comparación';
-$lang['diff_type']             = 'Ver diferencias';
-$lang['diff_inline']           = 'En línea';
-$lang['diff_side']             = 'Lado a lado';
-$lang['diffprevrev']           = 'Revisión previa';
-$lang['diffnextrev']           = 'Próxima revisión';
-$lang['difflastrev']           = 'Última revisión';
-$lang['diffbothprevrev']       = 'Ambos lados, revisión anterior';
-$lang['diffbothnextrev']       = 'Ambos lados, revisión siguiente';
-$lang['line']                  = 'Línea';
-$lang['breadcrumb']            = 'Traza:';
-$lang['youarehere']            = 'Estás aquí:';
-$lang['lastmod']               = 'Última modificación:';
-$lang['by']                    = 'por';
-$lang['deleted']               = 'borrado';
-$lang['created']               = 'creado';
-$lang['restored']              = 'se ha restaurado la vieja versión (%s)';
-$lang['external_edit']         = 'editor externo';
-$lang['summary']               = 'Resumen de la edición';
-$lang['noflash']               = 'Para mostrar este contenido es necesario el <a href="http://www.adobe.com/products/flashplayer/">Plugin Adobe Flash</a>.';
-$lang['download']              = 'Descargar trozo de código fuente';
-$lang['tools']                 = 'Herramientas';
-$lang['user_tools']            = 'Herramientas de usuario';
-$lang['site_tools']            = 'Herramientas del sitio';
-$lang['page_tools']            = 'Herramientas de la página';
-$lang['skip_to_content']       = 'Saltar a contenido';
-$lang['sidebar']               = 'Barra lateral';
-$lang['mail_newpage']          = 'página añadida:';
-$lang['mail_changed']          = 'página cambiada:';
-$lang['mail_subscribe_list']   = 'páginas cambiadas en el espacio de nombre:';
-$lang['mail_new_user']         = 'nuevo usuario:';
-$lang['mail_upload']           = 'archivo subido:';
-$lang['changes_type']          = 'Ver cambios de';
-$lang['pages_changes']         = 'Páginas';
-$lang['media_changes']         = 'Archivos multimedia';
-$lang['both_changes']          = 'Ambas páginas y archivos multimedia';
-$lang['qb_bold']               = 'Negrita';
-$lang['qb_italic']             = 'Itálica';
-$lang['qb_underl']             = 'Subrayado';
-$lang['qb_code']               = 'Código';
-$lang['qb_strike']             = 'Tachado';
-$lang['qb_h1']                 = 'Título 1';
-$lang['qb_h2']                 = 'Título 2';
-$lang['qb_h3']                 = 'Título 3';
-$lang['qb_h4']                 = 'Título 4';
-$lang['qb_h5']                 = 'Título 5';
-$lang['qb_h']                  = 'Título';
-$lang['qb_hs']                 = 'Selecciona el título';
-$lang['qb_hplus']              = 'Título alto';
-$lang['qb_hminus']             = 'Título bajo';
-$lang['qb_hequal']             = 'Título del mismo nivel';
-$lang['qb_link']               = 'Enlace interno';
-$lang['qb_extlink']            = 'Enlace externo';
-$lang['qb_hr']                 = 'Línea horizontal';
-$lang['qb_ol']                 = 'Ãtem de lista ordenada';
-$lang['qb_ul']                 = 'Ãtem de lista desordenada';
-$lang['qb_media']              = 'Añadir Imágenes u otros ficheros';
-$lang['qb_sig']                = 'Insertar firma';
-$lang['qb_smileys']            = 'Sonrisas';
-$lang['qb_chars']              = 'Caracteres especiales';
-$lang['upperns']               = 'Saltar al espacio de nombres superior';
-$lang['metaedit']              = 'Editar metadatos';
-$lang['metasaveerr']           = 'La escritura de los metadatos ha fallado';
-$lang['metasaveok']            = 'Los metadatos han sido guardados';
-$lang['img_title']             = 'Título:';
-$lang['img_caption']           = 'Información: ';
-$lang['img_date']              = 'Fecha:';
-$lang['img_fname']             = 'Nombre del archivo:';
-$lang['img_fsize']             = 'Tamaño:';
-$lang['img_artist']            = 'Fotógrafo:';
-$lang['img_copyr']             = 'Copyright:';
-$lang['img_format']            = 'Formato:';
-$lang['img_camera']            = 'Cámara:';
-$lang['img_keywords']          = 'Palabras claves:';
-$lang['img_width']             = 'Ancho:';
-$lang['img_height']            = 'Alto:';
-$lang['subscr_subscribe_success'] = 'Se agregó %s a las listas de suscripción para %s';
-$lang['subscr_subscribe_error'] = 'Error al agregar %s a las listas de suscripción para %s';
-$lang['subscr_subscribe_noaddress'] = 'No hay dirección asociada con tu registro, no se puede agregarte a la lista de suscripción';
-$lang['subscr_unsubscribe_success'] = 'Removido %s de la lista de suscripción para %s';
-$lang['subscr_unsubscribe_error'] = 'Error al remover %s de la lista de suscripción para %s';
-$lang['subscr_already_subscribed'] = '%s ya está suscrito a %s';
-$lang['subscr_not_subscribed'] = '%s no está suscrito a %s';
-$lang['subscr_m_not_subscribed'] = 'Actualmente no te encuentras suscrito a esta página o espacio de nombres';
-$lang['subscr_m_new_header']   = 'Agregar suscripción';
-$lang['subscr_m_current_header'] = 'Suscripciones actuales';
-$lang['subscr_m_unsubscribe']  = 'Darse de baja';
-$lang['subscr_m_subscribe']    = 'Suscribirse';
-$lang['subscr_m_receive']      = 'Recibir';
-$lang['subscr_style_every']    = 'enviar correo en cada cambio';
-$lang['subscr_style_digest']   = 'Resumen de correo electrónico de cambios por cada página (cada %.2f días)';
-$lang['subscr_style_list']     = 'lista de páginas modificadas desde el último correo electrónico (cada %.2f días)';
-$lang['authtempfail']          = 'La autenticación de usuarios no está disponible temporalmente. Si esta situación persiste, por favor avisa al administrador del wiki.';
-$lang['i_chooselang']          = 'Elija su idioma';
-$lang['i_installer']           = 'Instalador de DokuWiki';
-$lang['i_wikiname']            = 'Nombre del wiki';
-$lang['i_enableacl']           = 'Habilitar ACL (recomendado) (ACL: lista de control de acceso)';
-$lang['i_superuser']           = 'Super-usuario';
-$lang['i_problems']            = 'El instalador encontró algunos problemas, se muestran abajo. No se puede continuar la instalación hasta que usted no los corrija.';
-$lang['i_modified']            = 'Por razones de seguridad este script sólo funcionará con una instalación nueva y no modificada de Dokuwiki. Usted debe extraer nuevamente los ficheros del paquete bajado, o bien consultar las <a href="http://dokuwiki.org/install">instrucciones de instalación de Dokuwiki</a> completas.';
-$lang['i_funcna']              = 'La función de PHP <code>%s</code> no está disponible. ¿Tal vez su proveedor de hosting la ha deshabilitado por alguna razón?';
-$lang['i_phpver']              = 'Su versión de PHP <code>%s</code> es menor que la necesaria <code>%s</code>. Es necesario que actualice su instalación de PHP.';
-$lang['i_mbfuncoverload']      = 'mbstring.func_overload se debe deshabilitar en php.ini para que funcione DokuWiki.';
-$lang['i_permfail']            = 'DokuWili no puede escribir <code>%s</code>. ¡Es necesario establecer  correctamente los permisos de este directorio!';
-$lang['i_confexists']          = '<code>%s</code> ya existe';
-$lang['i_writeerr']            = 'Imposible crear <code>%s</code>. Se necesita que usted controle los permisos del fichero/directorio y que cree el fichero manualmente.';
-$lang['i_badhash']             = 'dokuwiki.php no reconocido o modificado (hash=<code>%s</code>)';
-$lang['i_badval']              = '<code>%s</code> - valor ilegal o vacío';
-$lang['i_success']             = 'La configuración ha concluido correctamente. Ahora puede eliminar el archivo install.php. Visite <a href="doku.php?id=wiki:welcome">su nuevo DokuWiki</a>.';
-$lang['i_failure']             = 'Han ocurrido algunos errores durante la escritura de los ficheros de configuración. Puede ser que necesite corregirlos manualmente antes de poder usar <a href="doku.php?id=wiki:welcome">su nuevo DokuWiki</a>.';
-$lang['i_policy']              = 'Política de ACL inicial';
-$lang['i_pol0']                = 'Wiki abierto (leer, escribir y subir archivos para todos)';
-$lang['i_pol1']                = 'Wiki público (leer para todos, escribir y subir archivos para usuarios registrados únicamente)';
-$lang['i_pol2']                = 'Wiki cerrado (leer, escribir y subir archivos para usuarios registrados únicamente)';
-$lang['i_allowreg']            = 'Permitir que los usuarios se registren a sí mismos';
-$lang['i_retry']               = 'Reintentar';
-$lang['i_license']             = 'Por favor escoja una licencia bajo la que publicar su contenido:';
-$lang['i_license_none']        = 'No mostrar ninguna información sobre licencias';
-$lang['i_pop_field']           = 'Por favor, ayúdanos a mejorar la experiencia de DokuWiki:';
-$lang['i_pop_label']           = 'Una vez al mes, enviar información anónima de uso de datos a los desarrolladores de DokuWiki';
-$lang['recent_global']         = 'Actualmente estás viendo los cambios dentro del namespace <b>%s</b>. También puedes <a href="%s">ver los cambios recientes en el wiki completo</a>.';
-$lang['years']                 = 'hace %d años';
-$lang['months']                = 'hace %d meses';
-$lang['weeks']                 = 'hace %d semanas';
-$lang['days']                  = 'hace %d días';
-$lang['hours']                 = 'hace %d horas';
-$lang['minutes']               = 'hace %d minutos';
-$lang['seconds']               = 'hace %d segundos';
-$lang['wordblock']             = 'Sus cambios no se han guardado porque contienen textos bloqueados (spam).';
-$lang['media_uploadtab']       = 'Cargar';
-$lang['media_searchtab']       = 'Buscar';
-$lang['media_file']            = 'Fichero';
-$lang['media_viewtab']         = 'Ver';
-$lang['media_edittab']         = 'Editar';
-$lang['media_historytab']      = 'Historial';
-$lang['media_list_thumbs']     = 'Miniaturas';
-$lang['media_list_rows']       = 'Celdas';
-$lang['media_sort_name']       = 'Nombre';
-$lang['media_sort_date']       = 'Fecha';
-$lang['media_namespaces']      = 'Escoge "espacio de nombre"';
-$lang['media_files']           = 'Ficheros en %s';
-$lang['media_upload']          = 'Cargar a %s';
-$lang['media_search']          = 'Buscar en %s';
-$lang['media_view']            = '%s';
-$lang['media_viewold']         = '%s en %s';
-$lang['media_edit']            = 'Editar %s';
-$lang['media_history']         = 'Historial de %s';
-$lang['media_meta_edited']     = 'Metadatos editados';
-$lang['media_perm_read']       = 'Disculpa, no tienes los permisos necesarios para leer ficheros.';
-$lang['media_perm_upload']     = 'Disculpa, no tienes los permisos necesarios para cargar ficheros.';
-$lang['media_update']          = 'Actualizar nueva versión';
-$lang['media_restore']         = 'Restaurar esta versión';
-$lang['media_acl_warning']     = 'Puede que esta lista no esté completa debido a restricciones de la ACL y a las páginas ocultas.';
-$lang['currentns']             = 'Espacio de nombres actual';
-$lang['searchresult']          = 'Resultado de la búsqueda';
-$lang['plainhtml']             = 'HTML sencillo';
-$lang['wikimarkup']            = 'Etiquetado Wiki';
-$lang['page_nonexist_rev']     = 'La página no existía en %s. Por tanto fue creada en <a href="%s">%s</a>.';
-$lang['unable_to_parse_date']  = 'Incapaz de evaluar el parámetro "%s".';
-$lang['email_signature_text']  = 'Este mail ha sido generado por DokuWiki en
-@DOKUWIKIURL@';
diff --git a/wiki/inc/lang/es/locked.txt b/wiki/inc/lang/es/locked.txt
deleted file mode 100644
index e151bf7..0000000
--- a/wiki/inc/lang/es/locked.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Página bloqueada ======
-
-Esta página está actualmente bloqueada porque la está editando otro usuario. Tienes que esperar a que  termine de editarla o el bloqueo expire.
\ No newline at end of file
diff --git a/wiki/inc/lang/es/login.txt b/wiki/inc/lang/es/login.txt
deleted file mode 100644
index a8d9be7..0000000
--- a/wiki/inc/lang/es/login.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Login ======
-
-¡Actualmente no estás identificado! Introduce abajo tus datos de identificación para abrir una sesión. Necesitas tener las cookies activadas para identificarte.
diff --git a/wiki/inc/lang/es/mailtext.txt b/wiki/inc/lang/es/mailtext.txt
deleted file mode 100644
index e74d3eb..0000000
--- a/wiki/inc/lang/es/mailtext.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-Se ha cambiado o añadido una página en tu DokuWiki. Aquí están los detalles:
-
-Fecha : @DATE@
-Navegador : @BROWSER@
-Dirección-IP : @IPADDRESS@
-Nombre de Host : @HOSTNAME@
-Revisión Vieja: @OLDPAGE@
-Revisión Nueva : @NEWPAGE@
-Resumen de la edición: @SUMMARY@
-Usuario : @USER@
-
-@DIFF@
diff --git a/wiki/inc/lang/es/mailwrap.html b/wiki/inc/lang/es/mailwrap.html
deleted file mode 100644
index d257190..0000000
--- a/wiki/inc/lang/es/mailwrap.html
+++ /dev/null
@@ -1,13 +0,0 @@
-<html>
-<head>
-<title>@TITLE@</title>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-</head>
-<body>
-
-@HTMLBODY@
-
-<br /><hr />
-<small>@EMAILSIGNATURE@</small>
-</body>
-</html>
\ No newline at end of file
diff --git a/wiki/inc/lang/es/newpage.txt b/wiki/inc/lang/es/newpage.txt
deleted file mode 100644
index d119ca2..0000000
--- a/wiki/inc/lang/es/newpage.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Este tema no existe todavía ======
-
-Has seguido un enlace a un tema que no existe todavía. Puedes crearlo usando el botón ''Crea esta página''.
diff --git a/wiki/inc/lang/es/norev.txt b/wiki/inc/lang/es/norev.txt
deleted file mode 100644
index 42ee6b5..0000000
--- a/wiki/inc/lang/es/norev.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== No existe esta revision ======
-
-La revisión especificada no existe. Usa el botón ''Revisiones antiguas'' para una lista de revisiones antiguas de este documento.
-
diff --git a/wiki/inc/lang/es/password.txt b/wiki/inc/lang/es/password.txt
deleted file mode 100644
index 64bded4..0000000
--- a/wiki/inc/lang/es/password.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-Hola @FULLNAME@!
-
-Estos son los datos de usuario para @TITLE@ en @DOKUWIKIURL@
-
-Usuario : @LOGIN@
-Contraseña : @PASSWORD@
diff --git a/wiki/inc/lang/es/preview.txt b/wiki/inc/lang/es/preview.txt
deleted file mode 100644
index b4d5a2e..0000000
--- a/wiki/inc/lang/es/preview.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Previsualización ======
-
-Esto es una previsualización de cómo aparecerá tu texto. Recuerda: **no está guardado** todavía!
-
diff --git a/wiki/inc/lang/es/pwconfirm.txt b/wiki/inc/lang/es/pwconfirm.txt
deleted file mode 100644
index b03d309..0000000
--- a/wiki/inc/lang/es/pwconfirm.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-Hola @FULLNAME@!
-
-Alguien solicitó una nueva contraseña para su nombre de
-usuario @TITLE@ en @DOKUWIKIURL@
-
-Si usted no solicitó una nueva contraseña, simplemente ignore este email.
-
-Para confirmar que la solicitud fue realizada realmente por usted,
-por favor use el siguiente enlace.
-
-@CONFIRM@
diff --git a/wiki/inc/lang/es/read.txt b/wiki/inc/lang/es/read.txt
deleted file mode 100644
index 461b745..0000000
--- a/wiki/inc/lang/es/read.txt
+++ /dev/null
@@ -1 +0,0 @@
-Esta página es de solo lectura. Puedes ver la fuente pero no puedes cambiarla. Pregunta a tu administrador si crees que esto es incorrecto.
diff --git a/wiki/inc/lang/es/recent.txt b/wiki/inc/lang/es/recent.txt
deleted file mode 100644
index 432def2..0000000
--- a/wiki/inc/lang/es/recent.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== Cambios Recientes ======
-
-Las siguientes páginas han sido modificadas recientemente.
-
-
diff --git a/wiki/inc/lang/es/register.txt b/wiki/inc/lang/es/register.txt
deleted file mode 100644
index 9824826..0000000
--- a/wiki/inc/lang/es/register.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Registro como nuevo usuario ======
-
-Completa toda la información del formulario para crear un nuevo usuario en este wiki. Asegúrate que escribes una **dirección de e-mail válida** puesto que allí se enviará tu contraseña. El nombre de usuario ha de ser un nombre válido según [[doku>pagename|pagename]].
diff --git a/wiki/inc/lang/es/registermail.txt b/wiki/inc/lang/es/registermail.txt
deleted file mode 100644
index b9208a1..0000000
--- a/wiki/inc/lang/es/registermail.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-Un nuevo usuario ha sido registrado. Aquí están los detalles:
-
-Usuario         : @NEWUSER@
-Nombre completo : @NEWNAME@
-E-Mail          : @NEWEMAIL@
-
-Fecha : @DATE@
-Navegador : @BROWSER@
-Dirección-IP : @IPADDRESS@
-Nombre del host : @HOSTNAME@
diff --git a/wiki/inc/lang/es/resendpwd.txt b/wiki/inc/lang/es/resendpwd.txt
deleted file mode 100644
index 1d74e79..0000000
--- a/wiki/inc/lang/es/resendpwd.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Enviar nueva contraseña ======
-
-Completa la información requerida abajo para obtener una nueva contraseña para tu cuenta de usuario en este wiki. La nueva contraseña te será enviada a la dirección de mail que está registrada.
diff --git a/wiki/inc/lang/es/resetpwd.txt b/wiki/inc/lang/es/resetpwd.txt
deleted file mode 100644
index 6fade95..0000000
--- a/wiki/inc/lang/es/resetpwd.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Establecer nueva contraseña ======
-
-Favor de introducir una nueva contraseña para su cuenta en este wiki
\ No newline at end of file
diff --git a/wiki/inc/lang/es/revisions.txt b/wiki/inc/lang/es/revisions.txt
deleted file mode 100644
index b093e85..0000000
--- a/wiki/inc/lang/es/revisions.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Revisiones Antiguas ======
-
-Estas son revisiones más antiguas del documento actual. Para volver a una revisión antigua selecciónala de abajo, pulsa ''Edita esta página'' y guárdala.
-
diff --git a/wiki/inc/lang/es/searchpage.txt b/wiki/inc/lang/es/searchpage.txt
deleted file mode 100644
index 9bc3161..0000000
--- a/wiki/inc/lang/es/searchpage.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Búsqueda ======
-
-Puedes encontrar los resultados de tu búsqueda abajo. @CREATEPAGEINFO@
-
diff --git a/wiki/inc/lang/es/showrev.txt b/wiki/inc/lang/es/showrev.txt
deleted file mode 100644
index c84bbc0..0000000
--- a/wiki/inc/lang/es/showrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**¡Esta es una revisión vieja del documento!**
-----
diff --git a/wiki/inc/lang/es/stopwords.txt b/wiki/inc/lang/es/stopwords.txt
deleted file mode 100644
index 2569089..0000000
--- a/wiki/inc/lang/es/stopwords.txt
+++ /dev/null
@@ -1,171 +0,0 @@
-# Esta es una lista de palabras que estan ignoradas por el indexador, una palabra por línea
-# Cuando se edita este archivo, asegúrese de usar la línea de terminaciones UNIX  (una sola nueva línea)
-# No necesita incluir palabras cortas con 3 caracteres - estas son ignoradas de todos modos
-#Esta lista esta basada en las que encontramos en la siguiente url http://www.ranks.nl/stopwords/
-una
-unas
-unos
-uno
-sobre
-todo
-también
-tras
-otro
-algún
-alguno
-alguna
-algunos
-algunas
-ser
-soy
-eres
-somos
-sois
-estoy
-esta
-estamos
-estais
-estan
-como
-para
-atras
-porque
-por
-qué
-estado
-estaba
-ante
-antes
-siendo
-ambos
-pero
-poder
-puede
-puedo
-podemos
-podeis
-pueden
-fui
-fue
-fuimos
-fueron
-hacer
-hago
-hace
-hacemos
-haceis
-hacen
-cada
-fin
-incluso
-primero
-desde
-conseguir
-consigo
-consigue
-consigues
-conseguimos
-consiguen
-voy
-va
-vamos
-vais
-van
-vaya
-gueno
-tener
-tengo
-tiene
-tenemos
-teneis
-tienen
-las
-los
-aqui
-mio
-tuyo
-ellos
-ellas
-nos
-nosotros
-vosotros
-vosotras
-dentro
-solo
-solamente
-saber
-sabes
-sabe
-sabemos
-sabeis
-saben
-ultimo
-largo
-bastante
-haces
-muchos
-aquellos
-aquellas
-sus
-entonces
-tiempo
-verdad
-verdadero
-verdadera
-cierto
-ciertos
-cierta
-ciertas
-intentar
-intento
-intenta
-intentas
-intentamos
-intentais
-intentan
-dos
-bajo
-arriba
-encima
-usar
-uso
-usas
-usa
-usamos
-usais
-usan
-emplear
-empleo
-empleas
-emplean
-ampleamos
-empleais
-valor
-muy
-era
-eras
-eramos
-eran
-modo
-bien
-cual
-cuando
-donde
-mientras
-quien
-con
-entre
-sin
-trabajo
-trabajar
-trabajas
-trabaja
-trabajamos
-trabajais
-trabajan
-podria
-podrias
-podriamos
-podrian
-podriais
-aquel
diff --git a/wiki/inc/lang/es/subscr_digest.txt b/wiki/inc/lang/es/subscr_digest.txt
deleted file mode 100644
index 5bb5012..0000000
--- a/wiki/inc/lang/es/subscr_digest.txt
+++ /dev/null
@@ -1,16 +0,0 @@
-Hola!
-
-La página @PAGE@ en @TITLE@ wiki ha cambiado.
-Estos son los cambios:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-Revisión Anterior: @OLDPAGE@
-Revisión Nueva: @NEWPAGE@
-
-Para cancelar la página de notificaciones, entra a la wiki en
-@DOKUWIKIURL@ luego visita
-@SUBSCRIBE@
-y date de baja en la página y/o cambios en el espacio de nombre.
diff --git a/wiki/inc/lang/es/subscr_form.txt b/wiki/inc/lang/es/subscr_form.txt
deleted file mode 100644
index 3a8143c..0000000
--- a/wiki/inc/lang/es/subscr_form.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Administrador de Suscripciones ======
-
-Esta página te permite administrar tus suscripciones para la página actual y espacio de nombres.
\ No newline at end of file
diff --git a/wiki/inc/lang/es/subscr_list.txt b/wiki/inc/lang/es/subscr_list.txt
deleted file mode 100644
index 4c58a2d..0000000
--- a/wiki/inc/lang/es/subscr_list.txt
+++ /dev/null
@@ -1,13 +0,0 @@
-Hola!
-
-Las páginas en el espacio de nombres @PAGE@ en @TITLE@ wiki ha cambiado.
-Estos son los cambios:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-Para cancelar la página de notificaciones, entra a la wiki en
-@DOKUWIKIURL@ luego visita
-@SUBSCRIBE@
-y date de baja en la página y/o cambios en el espacio de nombre.
diff --git a/wiki/inc/lang/es/subscr_single.txt b/wiki/inc/lang/es/subscr_single.txt
deleted file mode 100644
index a974cc9..0000000
--- a/wiki/inc/lang/es/subscr_single.txt
+++ /dev/null
@@ -1,19 +0,0 @@
-Hola!
-
-La página @PAGE@ en @TITLE@ wiki ha cambiado.
-Estos son los cambios:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-Fecha : @DATE@
-Usuario : @USER@
-Resumen de edición: @SUMMARY@
-Revisión Anterior: @OLDPAGE@
-Nueva Revisión: @NEWPAGE@
-
-Para cancelar la página de notificaciones, entra a la wiki en
-@DOKUWIKIURL@ luego visita
-@SUBSCRIBE@
-y date de baja en la página y/o cambios en el espacio de nombre.
diff --git a/wiki/inc/lang/es/updateprofile.txt b/wiki/inc/lang/es/updateprofile.txt
deleted file mode 100644
index 822e558..0000000
--- a/wiki/inc/lang/es/updateprofile.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Actualiza el perfil de tu cuenta de usuario ======
-
-Sólo necesitas completar aquellos campos que quieres cambiar. No puedes cambiar tu nombre de usuario.
diff --git a/wiki/inc/lang/es/uploadmail.txt b/wiki/inc/lang/es/uploadmail.txt
deleted file mode 100644
index eb1c5df..0000000
--- a/wiki/inc/lang/es/uploadmail.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-Se ha subido un fichero a tu DokuWiki. Estos son los detalles:
-
-Archivo : @MEDIA@
-Ultima revisión: @OLD@
-Fecha : @DATE@
-Navegador : @BROWSER@
-Dirección IP : @IPADDRESS@
-Hostname : @HOSTNAME@
-Tamaño : @SIZE@
-MIME Type : @MIME@
-Usuario : @USER@
diff --git a/wiki/inc/lang/et/admin.txt b/wiki/inc/lang/et/admin.txt
deleted file mode 100644
index 1934f48..0000000
--- a/wiki/inc/lang/et/admin.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Administreerimine ======
-
-Alljärgnevalt leiate nimekirja administratiivsetest tegevustest, mida DokuWiki võimaldab.
-
diff --git a/wiki/inc/lang/et/adminplugins.txt b/wiki/inc/lang/et/adminplugins.txt
deleted file mode 100644
index ee3ffb0..0000000
--- a/wiki/inc/lang/et/adminplugins.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Täiendavad laiendused =====
\ No newline at end of file
diff --git a/wiki/inc/lang/et/backlinks.txt b/wiki/inc/lang/et/backlinks.txt
deleted file mode 100644
index 4b405cd..0000000
--- a/wiki/inc/lang/et/backlinks.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Siia lehele lingiga haagitud lehed ======
-
-Nimekiri nendest lehtedest, kuskohalt Sa lingi abil siia lehele saad.
-
diff --git a/wiki/inc/lang/et/conflict.txt b/wiki/inc/lang/et/conflict.txt
deleted file mode 100644
index cf9f571..0000000
--- a/wiki/inc/lang/et/conflict.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-====== Uus versioon täitsa olemas ======
-
-Sellest dokumendist, mis Sa toimetasid on tegelikult juba olemas ka uuem versioon. Selline asi juhtub siis kui sel ajal kui Sina vaikselt oma dokumendi kallal nokitsesid tegi keegi juba kähku omad Muutused sealsamas dokumendis ära.
-
-Vaata hoolikalt allpool näidatud erinevusi ja siis otsusta millise versiooni alles jätad. Kui Sa peaks valima ''salvesta'', siis juhtubki selline lugu, et Sinu versioon salvestatakse. kui Sa aga peaks klõpsama ''katkesta'' säilib hetkel kehtiv versioon.
-
diff --git a/wiki/inc/lang/et/denied.txt b/wiki/inc/lang/et/denied.txt
deleted file mode 100644
index 093ccf4..0000000
--- a/wiki/inc/lang/et/denied.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Sul pole ligipääsuluba ======
-
-Kahju küll, aga sinu tublidusest ei piisa, et edasi liikuda.
-
diff --git a/wiki/inc/lang/et/diff.txt b/wiki/inc/lang/et/diff.txt
deleted file mode 100644
index d10a93b..0000000
--- a/wiki/inc/lang/et/diff.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Erinevused ======
-
-Siin näed erinevusi valitud versiooni ja hetkel kehtiva lehekülje vahel.
-
diff --git a/wiki/inc/lang/et/draft.txt b/wiki/inc/lang/et/draft.txt
deleted file mode 100644
index 6669f3b..0000000
--- a/wiki/inc/lang/et/draft.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-====== Leidsin katkenud toimetamise ======
-
-Sinu viimane toimetamissessioon ei lõppenud eelmine kord korrapäraselt. DokuWiki automaatselt salvestas Sinu pooliku töö, mida võid nüüd kasutada töö jätkamiseks. Allpool näed teksti, mis suudeti päästa.
-
-Kas tahad //taastada// kaotused, //kustutada// poolik töö või //üldse mitte midagi teha//?
-
diff --git a/wiki/inc/lang/et/edit.txt b/wiki/inc/lang/et/edit.txt
deleted file mode 100644
index 6167c85..0000000
--- a/wiki/inc/lang/et/edit.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-Toimeta seda lehte ja klõpsa ''Salvesta'' peal. Wikis teksti kujundamise vahenditega tutvumiseks, st. kuidas teha rasvast ja kaldkirja jne., vaata [[wiki:syntax|süntaksitutvustus lehelt]]. Kui Sa tahad midagi testida, saad seda teha [[playground:playground|mängualal]].
-
diff --git a/wiki/inc/lang/et/editrev.txt b/wiki/inc/lang/et/editrev.txt
deleted file mode 100644
index 3ab6d71..0000000
--- a/wiki/inc/lang/et/editrev.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-**Sa oled omale tõmmanud selle dokumendi vana versiooni!** Kui Sa selle salvestad sünnib nende andmetega uus versioon.
-----
-
diff --git a/wiki/inc/lang/et/index.txt b/wiki/inc/lang/et/index.txt
deleted file mode 100644
index fec211d..0000000
--- a/wiki/inc/lang/et/index.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Sisukord ======
-
-Alloleavs on loetletud kõik saada olevaist leheküljed, mis on järjestatud [[doku>namespaces|nimeruumi]]de alusel.
diff --git a/wiki/inc/lang/et/jquery.ui.datepicker.js b/wiki/inc/lang/et/jquery.ui.datepicker.js
deleted file mode 100644
index b2e226a..0000000
--- a/wiki/inc/lang/et/jquery.ui.datepicker.js
+++ /dev/null
@@ -1,45 +0,0 @@
-/* Estonian initialisation for the jQuery UI date picker plugin. */
-/* Written by Mart Sõmermaa (mrts.pydev at gmail com). */
-( function( factory ) {
-	if ( typeof define === "function" && define.amd ) {
-
-		// AMD. Register as an anonymous module.
-		define( [ "../widgets/datepicker" ], factory );
-	} else {
-
-		// Browser globals
-		factory( jQuery.datepicker );
-	}
-}( function( datepicker ) {
-
-datepicker.regional.et = {
-	closeText: "Sulge",
-	prevText: "Eelnev",
-	nextText: "Järgnev",
-	currentText: "Täna",
-	monthNames: [ "Jaanuar","Veebruar","Märts","Aprill","Mai","Juuni",
-	"Juuli","August","September","Oktoober","November","Detsember" ],
-	monthNamesShort: [ "Jaan", "Veebr", "Märts", "Apr", "Mai", "Juuni",
-	"Juuli", "Aug", "Sept", "Okt", "Nov", "Dets" ],
-	dayNames: [
-		"Pühapäev",
-		"Esmaspäev",
-		"Teisipäev",
-		"Kolmapäev",
-		"Neljapäev",
-		"Reede",
-		"Laupäev"
-	],
-	dayNamesShort: [ "Pühap", "Esmasp", "Teisip", "Kolmap", "Neljap", "Reede", "Laup" ],
-	dayNamesMin: [ "P","E","T","K","N","R","L" ],
-	weekHeader: "näd",
-	dateFormat: "dd.mm.yy",
-	firstDay: 1,
-	isRTL: false,
-	showMonthAfterYear: false,
-	yearSuffix: "" };
-datepicker.setDefaults( datepicker.regional.et );
-
-return datepicker.regional.et;
-
-} ) );
diff --git a/wiki/inc/lang/et/lang.php b/wiki/inc/lang/et/lang.php
deleted file mode 100644
index 0320812..0000000
--- a/wiki/inc/lang/et/lang.php
+++ /dev/null
@@ -1,336 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Oliver S6ro <seem.iges@mail.ee>
- * @author Aari Juhanson <aari@vmg.vil.ee>
- * @author Kaiko Kaur <kaiko@kultuur.edu.ee>
- * @author kristian.kankainen@kuu.la
- * @author Rivo Zängov <eraser@eraser.ee>
- * @author Janar Leas <janarleas@gmail.com>
- * @author Janar Leas <janar.leas@eesti.ee>
- */
-$lang['encoding']              = 'utf-8';
-$lang['direction']             = 'ltr';
-$lang['doublequoteopening']    = '„';
-$lang['doublequoteclosing']    = '“';
-$lang['singlequoteopening']    = '‚';
-$lang['singlequoteclosing']    = '‘';
-$lang['apostrophe']            = '\'';
-$lang['btn_edit']              = 'Toimeta seda lehte';
-$lang['btn_source']            = 'Näita lehepõhja';
-$lang['btn_show']              = 'Näita lehte';
-$lang['btn_create']            = 'Tekita selle lingi alla leht';
-$lang['btn_search']            = 'Otsi';
-$lang['btn_save']              = 'Salvesta';
-$lang['btn_preview']           = 'Eelvaade';
-$lang['btn_top']               = 'Tagasi lehe algusesse';
-$lang['btn_newer']             = '<< varajasemad';
-$lang['btn_older']             = '>> hilisemad';
-$lang['btn_revs']              = 'Eelmised versioonid';
-$lang['btn_recent']            = 'Viimased muudatused';
-$lang['btn_upload']            = 'Lae üles';
-$lang['btn_cancel']            = 'Katkesta';
-$lang['btn_index']             = 'Sisukord';
-$lang['btn_secedit']           = 'Toimeta';
-$lang['btn_login']             = 'Logi sisse';
-$lang['btn_logout']            = 'Logi välja';
-$lang['btn_admin']             = 'Administreeri';
-$lang['btn_update']            = 'Uuenda';
-$lang['btn_delete']            = 'Kustuta';
-$lang['btn_back']              = 'Tagasi';
-$lang['btn_backlink']          = 'Tagasilingid';
-$lang['btn_subscribe']         = 'Jälgi seda lehte (teated meilile)';
-$lang['btn_profile']           = 'Minu info';
-$lang['btn_reset']             = 'Taasta';
-$lang['btn_resendpwd']         = 'Sea uus salasõna';
-$lang['btn_draft']             = 'Toimeta mustandit';
-$lang['btn_recover']           = 'Taata mustand';
-$lang['btn_draftdel']          = 'Kustuta mustand';
-$lang['btn_revert']            = 'Taasta';
-$lang['btn_register']          = 'Registreeri uus kasutaja';
-$lang['btn_apply']             = 'Kinnita';
-$lang['btn_media']             = 'Meedia haldur';
-$lang['btn_deleteuser']        = 'Eemalda minu konto';
-$lang['loggedinas']            = 'Logis sisse kui:';
-$lang['user']                  = 'Kasutaja';
-$lang['pass']                  = 'Parool';
-$lang['newpass']               = 'Uus parool';
-$lang['oldpass']               = 'Vana parool';
-$lang['passchk']               = 'Korda uut parooli';
-$lang['remember']              = 'Pea mind meeles';
-$lang['fullname']              = 'Täielik nimi';
-$lang['email']                 = 'E-post';
-$lang['profile']               = 'Kasutaja info';
-$lang['badlogin']              = 'Oops, Sinu kasutajanimi või parool oli vale.';
-$lang['badpassconfirm']        = 'Väär salasõna';
-$lang['minoredit']             = 'Ebaolulised muudatused';
-$lang['draftdate']             = 'Mustand automaatselt salvestatud';
-$lang['nosecedit']             = 'Leht on vahepeal muutunud, jaotiste teave osutus aegunuks sestap laeti tervelehekülg.';
-$lang['regmissing']            = 'Kõik väljad tuleb ära täita.';
-$lang['reguexists']            = 'Tegelikult on sellise nimega kasutaja juba olemas.';
-$lang['regsuccess']            = 'Kasutaja sai tehtud. Parool saadeti Sulle e-posti aadressil.';
-$lang['regsuccess2']           = 'Kasutaja sai tehtud.';
-$lang['regmailfail']           = 'Ilmselt tekkis e-posti teel parooli saatmisel mingi tõrge. Palun suhtle sel teemal
-oma serveri administraatoriga!';
-$lang['regbadmail']            = 'Tundub, et Sinu antud e-posti aadress ei toimi - kui Sa arvad, et tegemist on
-ekstitusega, suhtle oma serveri administraatoriga';
-$lang['regbadpass']            = 'Uus parool on kirjutatud erinevalt. Proovi uuesti.';
-$lang['regpwmail']             = 'Sinu DokuWiki parool';
-$lang['reghere']               = 'Sul ei olegi veel kasutajakontot? No aga tekita see siis endale!';
-$lang['profna']                = 'Viki ei toeta profiili muudatusi';
-$lang['profnochange']          = 'Muutused puuduvad.';
-$lang['profnoempty']           = 'Tühi nimi ega meiliaadress pole lubatud.';
-$lang['profchanged']           = 'Kasutaja info edukalt muudetud';
-$lang['profnodelete']          = 'See wiki ei toeta kasutajate kustutamist';
-$lang['profdeleteuser']        = 'Kustuta konto';
-$lang['profdeleted']           = 'Sinu kasutajakonto on sellest wikist kustutatud';
-$lang['profconfdelete']        = 'Soovin sellest wikist oma konnto eemaldada. <br/> See tegevus on taastamatu.';
-$lang['profconfdeletemissing'] = 'Kinnituse valikkast märkimata.';
-$lang['pwdforget']             = 'Unustasid parooli? Tee uus';
-$lang['resendna']              = 'See wiki ei toeta parooli taassaatmist.';
-$lang['resendpwd']             = 'Sea uus salasõna';
-$lang['resendpwdmissing']      = 'Khmm... Sa pead täitma kõik väljad.';
-$lang['resendpwdnouser']       = 'Aga sellist kasutajat ei ole.';
-$lang['resendpwdbadauth']      = 'See autentimiskood ei ole õige. Kontrolli, et kopeerisid terve lingi.';
-$lang['resendpwdconfirm']      = 'Kinnituslink saadeti meilile.';
-$lang['resendpwdsuccess']      = 'Uus parool saadeti Sinu meilile.';
-$lang['license']               = 'Kus pole öeldud teisiti, kehtib selle wiki sisule järgmine leping:';
-$lang['licenseok']             = 'Teadmiseks: Toimetades seda lehte, nõustud avaldama oma sisu järgmise lepingu alusel:';
-$lang['searchmedia']           = 'Otsi failinime:';
-$lang['searchmedia_in']        = 'Otsi %s';
-$lang['txt_upload']            = 'Vali fail, mida üles laadida:';
-$lang['txt_filename']          = 'Siseta oma Wikinimi (soovituslik):';
-$lang['txt_overwrt']           = 'Kirjutan olemasoleva faili üle';
-$lang['maxuploadsize']         = 'Üleslaadimiseks lubatu enim %s faili kohta.';
-$lang['lockedby']              = 'Praegu on selle lukustanud:';
-$lang['lockexpire']            = 'Lukustus aegub:';
-$lang['js']['willexpire']      = 'Teie lukustus selle lehe toimetamisele aegub umbes minuti pärast.\nIgasugu  probleemide vältimiseks kasuta eelvaate nuppu, et lukustusarvesti taas tööle panna.';
-$lang['js']['notsavedyet']     = 'Sul on seal salvestamata muudatusi, mis kohe kõige kaduva teed lähevad.
-Kas Sa ikka tahad edasi liikuda?';
-$lang['js']['searchmedia']     = 'Otsi faile';
-$lang['js']['keepopen']        = 'Jäta aken peale valiku sooritamist avatuks';
-$lang['js']['hidedetails']     = 'Peida detailid';
-$lang['js']['mediatitle']      = 'Lingi sätted';
-$lang['js']['mediadisplay']    = 'Lingi liik';
-$lang['js']['mediaalign']      = 'Joondus';
-$lang['js']['mediasize']       = 'Pildi mõõtmed';
-$lang['js']['mediatarget']     = 'Lingi siht';
-$lang['js']['mediaclose']      = 'Sulge';
-$lang['js']['mediainsert']     = 'Sisesta';
-$lang['js']['mediadisplayimg'] = 'Näita pilti.';
-$lang['js']['mediadisplaylnk'] = 'Näita ainult linki.';
-$lang['js']['mediasmall']      = 'Väiksem suurus';
-$lang['js']['mediamedium']     = 'Keskmine suurus';
-$lang['js']['medialarge']      = 'Suurem suurus';
-$lang['js']['mediaoriginal']   = 'Originaali suurus';
-$lang['js']['medialnk']        = 'Link üksikasjadele';
-$lang['js']['mediadirect']     = 'Otselink originaalile';
-$lang['js']['medianolnk']      = 'Ilma lingita';
-$lang['js']['medianolink']     = 'Ära lingi pilti';
-$lang['js']['medialeft']       = 'Joonda pilt vasakule.';
-$lang['js']['mediaright']      = 'Joonda pilt paremale.';
-$lang['js']['mediacenter']     = 'Joonda pilt keskele.';
-$lang['js']['medianoalign']    = 'Ära joonda.';
-$lang['js']['nosmblinks']      = 'Lingid \'Windows shares\'ile töötab ainult Microsoft Internet Exploreriga.
-Siiski võid kopeerida ja asetada lingi.';
-$lang['js']['linkwiz']         = 'Lingi nõustaja';
-$lang['js']['linkto']          = 'Lingi:';
-$lang['js']['del_confirm']     = 'Kas kustutame selle kirje?';
-$lang['js']['restore_confirm'] = 'Tõesti taastad selle järgu?';
-$lang['js']['media_diff']      = 'Vaatle erisusi:';
-$lang['js']['media_diff_both'] = 'Kõrvuti';
-$lang['js']['media_diff_opacity'] = 'Kuma läbi';
-$lang['js']['media_diff_portions'] = 'Puhasta';
-$lang['js']['media_select']    = 'Vali failid…';
-$lang['js']['media_upload_btn'] = 'Lae üles';
-$lang['js']['media_done_btn']  = 'Valmis';
-$lang['js']['media_drop']      = 'Üleslaadimiseks viska failid siia';
-$lang['js']['media_cancel']    = 'eemalda';
-$lang['js']['media_overwrt']   = 'Asenda olemasolevad failid';
-$lang['rssfailed']             = 'Sinu soovitud info ammutamisel tekkis viga: ';
-$lang['nothingfound']          = 'Oops, aga mitte muhvigi ei leitud.';
-$lang['mediaselect']           = 'Hunnik faile';
-$lang['uploadsucc']            = 'Üleslaadimine läks ootuspäraselt hästi';
-$lang['uploadfail']            = 'Üleslaadimine läks nässu. Äkki pole Sa selleks lihtsalt piisavalt võimukas tegija?';
-$lang['uploadwrong']           = 'Ei saa Sa midagi üles laadida. Oops, aga seda tüüpi faili sul lihtsalt ei lubata üles laadida';
-$lang['uploadexist']           = 'Fail on juba olemas. Midagi ei muudetud.';
-$lang['uploadbadcontent']      = 'Üles laaditu ei sobinud %s faililaiendiga.';
-$lang['uploadspam']            = 'Üleslaadimine tõrjuti rämpssisu vältija poolt.';
-$lang['uploadxss']             = 'Üleslaadimine tõrjuti kahtlase sisu võimaluse tõttu';
-$lang['uploadsize']            = 'Üles laaditud fail on liiga suur (maksimaalne suurus on %s).';
-$lang['deletesucc']            = 'Fail nimega "%s" sai kustutatud.';
-$lang['deletefail']            = 'Faili nimega "%s" ei kustutatud (kontrolli õigusi).';
-$lang['mediainuse']            = 'Faili nimega "%s" ei kustutatud, sest see on kasutuses.';
-$lang['namespaces']            = 'Alajaotus';
-$lang['mediafiles']            = 'Failid on Sulle kättesaadavad';
-$lang['accessdenied']          = 'Ligipääs keelatud.';
-$lang['mediausage']            = 'Kasuta järgmist kirjapilti sellele failile viitamaks:';
-$lang['mediaview']             = 'Vaata faili algsel kujul.';
-$lang['mediaroot']             = 'juur';
-$lang['mediaupload']           = 'Lae fail sellesse nimeruumi (kataloogi). Loomaks täiendavaid alam-nimeruume, kasuta wiki-nime ja nimeruumide eraldamiseks koolonit.';
-$lang['mediaextchange']        = 'Faili laiend .%s-st %s-ks!';
-$lang['reference']             = 'Viited';
-$lang['ref_inuse']             = 'Seda faili ei saa kustutada, sest teda kasutavad järgmised lehed:';
-$lang['ref_hidden']            = 'Mõned viidad failile on lehtedel, millele sul ei ole ligipääsu';
-$lang['hits']                  = 'Päringu tabamused';
-$lang['quickhits']             = 'Päringule vastavad lehed';
-$lang['toc']                   = 'Sisujuht';
-$lang['current']               = 'Hetkel kehtiv';
-$lang['yours']                 = 'Sinu versioon';
-$lang['diff']                  = 'Näita erinevusi hetkel kehtiva versiooniga';
-$lang['diff2']                 = 'Näita valitud versioonide erinevusi';
-$lang['difflink']              = 'Lõlita võrdlemise vaatele';
-$lang['diff_type']             = 'Vaata erinevusi:';
-$lang['diff_inline']           = 'Jooksvalt';
-$lang['diff_side']             = 'Kõrvuti';
-$lang['line']                  = 'Rida';
-$lang['breadcrumb']            = 'Käidud rada:';
-$lang['youarehere']            = 'Sa oled siin:';
-$lang['lastmod']               = 'Viimati muutnud:';
-$lang['by']                    = 'persoon';
-$lang['deleted']               = 'eemaldatud';
-$lang['created']               = 'tekitatud';
-$lang['restored']              = 'vana versioon taastatud (%s)';
-$lang['external_edit']         = 'väline muutmine';
-$lang['summary']               = 'kokkuvõte muudatustest';
-$lang['noflash']               = 'Sele sisu vaatamisesks on vajalik <a href="http://www.adobe.com/products/flashplayer/">Adobe Flash Laiendus</a>.';
-$lang['tools']                 = 'Tööriistad';
-$lang['user_tools']            = 'Kasutaja tarvikud';
-$lang['site_tools']            = 'Lehe tööriistad';
-$lang['page_tools']            = 'Lehekülje tarvikud';
-$lang['skip_to_content']       = 'mine sisule';
-$lang['sidebar']               = 'Külgriba';
-$lang['mail_newpage']          = 'leht lisatud:';
-$lang['mail_changed']          = 'leht muudetud';
-$lang['mail_subscribe_list']   = 'muutunud leheküljed nimeruumis:';
-$lang['mail_new_user']         = 'Uus kasutaja:';
-$lang['mail_upload']           = 'üles laetud fail:';
-$lang['changes_type']          = 'Näita mmutuseid';
-$lang['pages_changes']         = 'Leheküljed';
-$lang['media_changes']         = 'Meedia failid';
-$lang['both_changes']          = 'Mõlemid, leheküljed ja meedia failid';
-$lang['qb_bold']               = 'Rasvane kiri';
-$lang['qb_italic']             = 'Kaldkiri';
-$lang['qb_underl']             = 'Alajoonega kiri';
-$lang['qb_code']               = 'Koodi tekst';
-$lang['qb_strike']             = 'Läbijoonitud tekst';
-$lang['qb_h1']                 = '1. astme pealkiri';
-$lang['qb_h2']                 = '2. astme pealkiri';
-$lang['qb_h3']                 = '3. astme pealkiri';
-$lang['qb_h4']                 = '4. astme pealkiri';
-$lang['qb_h5']                 = '5. astme pealkiri';
-$lang['qb_h']                  = 'Pealkiri';
-$lang['qb_hs']                 = 'Vali pealkiri';
-$lang['qb_hplus']              = 'Kõrgem pealkiri';
-$lang['qb_hminus']             = 'Madalam pealkiri';
-$lang['qb_hequal']             = 'Sama taseme pealkiri';
-$lang['qb_link']               = 'Siselink';
-$lang['qb_extlink']            = 'Välislink';
-$lang['qb_hr']                 = 'Horisontaalne vahejoon';
-$lang['qb_ol']                 = 'Nummerdatud nimikiri';
-$lang['qb_ul']                 = 'Mummuga nimekiri';
-$lang['qb_media']              = 'Lisa pilte ja muid faile';
-$lang['qb_sig']                = 'Lisa allkiri!';
-$lang['qb_smileys']            = 'Emotikonid';
-$lang['qb_chars']              = 'Erisümbolid';
-$lang['upperns']               = 'mine ülemisse nimeruumi';
-$lang['metaedit']              = 'Muuda lisainfot';
-$lang['metasaveerr']           = 'Lisainfo salvestamine läks untsu.';
-$lang['metasaveok']            = 'Lisainfo salvestatud';
-$lang['btn_img_backto']            = 'Tagasi %s';
-$lang['img_title']             = 'Tiitel:';
-$lang['img_caption']           = 'Kirjeldus:';
-$lang['img_date']              = 'Kuupäev:';
-$lang['img_fname']             = 'Faili nimi:';
-$lang['img_fsize']             = 'Suurus:';
-$lang['img_artist']            = 'Autor:';
-$lang['img_copyr']             = 'Autoriõigused:';
-$lang['img_format']            = 'Formaat:';
-$lang['img_camera']            = 'Kaamera:';
-$lang['img_keywords']          = 'Võtmesõnad:';
-$lang['img_width']             = 'Laius:';
-$lang['img_height']            = 'Kõrgus:';
-$lang['btn_mediaManager']           = 'Näita meediahalduris';
-$lang['subscr_subscribe_success'] = '%s lisati %s tellijaks';
-$lang['subscr_subscribe_error'] = 'Viga %s lisamisel %s tellijaks';
-$lang['subscr_subscribe_noaddress'] = 'Sinu kasutajaga pole seotud ühtegi aadressi, seega ei saa sind tellijaks lisada';
-$lang['subscr_unsubscribe_success'] = '%s eemaldati %s tellijatest';
-$lang['subscr_unsubscribe_error'] = 'Viga %s eemaldamisel %s tellijatest';
-$lang['subscr_already_subscribed'] = '%s on juba %s tellija';
-$lang['subscr_not_subscribed'] = '%s pole %s tellija';
-$lang['subscr_m_not_subscribed'] = 'Sina pole hetkel selle lehekülje ega nimeruumi tellija.';
-$lang['subscr_m_new_header']   = 'Lisa tellimus';
-$lang['subscr_m_current_header'] = 'Hetkel tellitud';
-$lang['subscr_m_unsubscribe']  = 'Eemalda tellimus';
-$lang['subscr_m_subscribe']    = 'Telli';
-$lang['subscr_style_every']    = 'igast toimetamisest teavitab ekiri';
-$lang['subscr_style_digest']   = 'kokkuvõte ekirjaga toimetamistest igal leheküljel (iga %.2f päeva järel)';
-$lang['subscr_style_list']     = 'Peale viimast ekirja (iga %.2f päeva järel) toimetaud lehekülgede loend.';
-$lang['authtempfail']          = 'Kasutajate autentimine on ajutiselt rivist väljas. Kui see olukord mõne aja jooksul ei parane, siis teavita sellest serveri haldajat.';
-$lang['i_chooselang']          = 'Vali keel';
-$lang['i_installer']           = 'DokuWiki paigaldaja';
-$lang['i_wikiname']            = 'Wiki nimi';
-$lang['i_enableacl']           = 'Kas lubada kasutajate haldus (soovitatav)';
-$lang['i_superuser']           = 'Superkasutaja';
-$lang['i_problems']            = 'Paigaldaja leidis mõned vead, mis on allpool välja toodud. Enne vigade eemaldamist ei saa jätkata.';
-$lang['i_modified']            = 'Õnnetuste vältimiseks läheb see skript käima ainult värskelt paigaldatud ja muutmata Dokuwiki peal.
-                       Sa peaksid ilmselt kogu koodi uuesti lahti pakkima. Vaata ka <a href="http://dokuwiki.org/install">Dokuwiki installeerimis juhendit</a>';
-$lang['i_funcna']              = 'PHP funktsiooni <code>%s</code> ei ole olemas.võibolla sinu serveri hooldaja on selle mingil põhjusel keelanud?';
-$lang['i_phpver']              = 'Sinu PHP versioon <code>%s</code> on vanem nõutavast <code>%s</code>. Pead oma paigaldatud PHP-d uuendama.';
-$lang['i_permfail']            = 'Dokuwiki ei saa kirjutada faili <code>%s</code>. Kontrolli serveris failide õigused üle.';
-$lang['i_confexists']          = '<code>%s</code> on juba olemas';
-$lang['i_writeerr']            = 'Faili <code>%s</code> ei lubata tekitada. Kontrolli kataloogi ja faili õigusi.';
-$lang['i_badhash']             = 'Tundmatu või muutunud dokuwiki.php (hash=<code>%s</code>)';
-$lang['i_badval']              = '<code>%s</code> - lubamatu või tühi väärtus';
-$lang['i_success']             = 'Seadistamine on õnnelikult lõpule viidud. Sa võid nüüd kustutada faili install.php. Alusta oma <a href="doku.php?id=wiki:welcome">uue DokuWiki</a> täitmist.';
-$lang['i_failure']             = 'Konfiguratsiooni faili kirjutamisel esines vigu. Võimalik, et pead need käsitsi parandama enne <a href="doku.php?id=wiki:welcome">uue DokuWiki</a> täitma asumist.';
-$lang['i_policy']              = 'Wiki õiguste algne poliitika';
-$lang['i_pol0']                = 'Avatud (lugemine, kirjutamine ja üleslaadimine kõigile lubatud)';
-$lang['i_pol1']                = 'Avalikuks lugemiseks (lugeda saavad kõik, kirjutada ja üles laadida vaid registreeritud kasutajad)';
-$lang['i_pol2']                = 'Suletud (kõik õigused, kaasaarvatud lugemine on lubatud vaid registreeritud kasutajatele)';
-$lang['i_allowreg']            = 'Luba kasutajail endid ise arvele võtta';
-$lang['i_retry']               = 'Proovi uuesti';
-$lang['i_license']             = 'Vali leping, mille alusel wiki sisu avaldatakse:';
-$lang['i_license_none']        = 'Ära näita mingit lepingu teavet';
-$lang['i_pop_field']           = 'Aitake meil täiendada DokuWiki kasutuskogemsut:';
-$lang['i_pop_label']           = 'Kord kuus, saada DokuWiki arendajatele anonüümseid kasutus andmeid.';
-$lang['recent_global']         = 'Uurid hetkel nimeruumi <b>%s</b> muudatusi. Võid uurida ka <a href="%s">kogu selle wiki</a> muudatusi.';
-$lang['years']                 = '%d aasta eest';
-$lang['months']                = '%d kuu eest';
-$lang['weeks']                 = '%d nädala eest';
-$lang['days']                  = '%d päeva eest';
-$lang['hours']                 = '%d tunni eest';
-$lang['minutes']               = '%d minuti eest';
-$lang['seconds']               = '%d sekundi eest';
-$lang['wordblock']             = 'Sinu toimetus jäeti muutmata tõrjutud teksti tõttu (rämpspost?).';
-$lang['media_uploadtab']       = 'Lae-↑ ';
-$lang['media_searchtab']       = 'Otsi';
-$lang['media_file']            = 'Fail';
-$lang['media_viewtab']         = 'Vaata';
-$lang['media_edittab']         = 'Toimeta';
-$lang['media_historytab']      = 'Ajalugu';
-$lang['media_list_thumbs']     = 'Pisipildid';
-$lang['media_list_rows']       = 'Ridu';
-$lang['media_sort_name']       = 'Nimi';
-$lang['media_sort_date']       = 'Kuupäev';
-$lang['media_namespaces']      = 'Vali nimeruum';
-$lang['media_files']           = 'Failid %s-is';
-$lang['media_upload']          = 'Lae %s-ssi';
-$lang['media_search']          = 'Leia %s-st';
-$lang['media_view']            = '%s';
-$lang['media_viewold']         = '%s asub %s-s';
-$lang['media_edit']            = 'Muuda %s-i';
-$lang['media_history']         = '%s ajalugu';
-$lang['media_meta_edited']     = 'toimetati päiseteavet';
-$lang['media_perm_read']       = 'Sul pole piisavaid õigusi failide vaatamiseks';
-$lang['media_perm_upload']     = 'Sul pole piisavaid õigusi failide üleslaadimiseks';
-$lang['media_update']          = 'Lea üles uus järk';
-$lang['media_restore']         = 'Ennista sellele järgule';
-$lang['currentns']             = 'Hetke nimeruum';
-$lang['searchresult']          = 'Otsingu tulemus';
-$lang['plainhtml']             = 'Liht-HTML';
-$lang['wikimarkup']            = 'Wiki märgistus';
-$lang['email_signature_text'] = 'See meil on saadetud DokuWiki poolt
-@DOKUWIKIURL@';
diff --git a/wiki/inc/lang/et/locked.txt b/wiki/inc/lang/et/locked.txt
deleted file mode 100644
index 0fd2743..0000000
--- a/wiki/inc/lang/et/locked.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Leht lukustatud ======
-
-Hetkel on see leht lukustatud kuna teine kasutaja toimetab tema kallal. Sa pead ootama kuni ta kas lõpetab või lukustus aegub.
diff --git a/wiki/inc/lang/et/login.txt b/wiki/inc/lang/et/login.txt
deleted file mode 100644
index 3e746cd..0000000
--- a/wiki/inc/lang/et/login.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Logi sisse ======
-
-Hetkel pole Sa sisse logitud! Allpool saad sisestada kõik vajaliku, et sisse logida. Kui Sa oled oma arvuti taga ainukasutaja oleks hea kui Su arvutil  oleks lubatud 'cookies', st. järgmine kord kui siia lehele tuled oled automaatselt sisse logitud.
diff --git a/wiki/inc/lang/et/mailtext.txt b/wiki/inc/lang/et/mailtext.txt
deleted file mode 100644
index f1a6202..0000000
--- a/wiki/inc/lang/et/mailtext.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-Sinu lehte DokuWiki-s on muudetud. Alljärgnevalt detailid:
-
-Kuupäev           : @DATE@
-Brauser           : @BROWSER@
-IP-Aadress        : @IPADDRESS@
-Arvuti nimi       : @HOSTNAME@
-Eelnev versioon   : @OLDPAGE@
-Uus versioon      : @NEWPAGE@
-Toimeta kokkuvõtet: @SUMMARY@
-Kasutaja          : @USER@
-
-@DIFF@
diff --git a/wiki/inc/lang/et/newpage.txt b/wiki/inc/lang/et/newpage.txt
deleted file mode 100644
index fb78e64..0000000
--- a/wiki/inc/lang/et/newpage.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Seda teemat veel ei ole ======
-
-Sa klikkisid lingile, mille all teemat veel pole. Selle saad Sa tekitada kasutades ''Tekita see leht nuppu''.
diff --git a/wiki/inc/lang/et/norev.txt b/wiki/inc/lang/et/norev.txt
deleted file mode 100644
index 42d204f..0000000
--- a/wiki/inc/lang/et/norev.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Sellist versiooni pole ======
-
-Sellist versiooni ei ole olemas. Selle dokumendi eelmiste versioonide nägemiseks klõpsa ''Eelmised versioonid'' nupul.
-
diff --git a/wiki/inc/lang/et/password.txt b/wiki/inc/lang/et/password.txt
deleted file mode 100644
index 9d75bb8..0000000
--- a/wiki/inc/lang/et/password.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-Hi @FULLNAME@!
-
-Siin on sinu kasutajaandmed @TITLE@ks @DOKUWIKIURL@s
-
-Sisse logimisnimi : @LOGIN@
-Parool : @PASSWORD@
diff --git a/wiki/inc/lang/et/preview.txt b/wiki/inc/lang/et/preview.txt
deleted file mode 100644
index df45c65..0000000
--- a/wiki/inc/lang/et/preview.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Eelvaade ======
-
-Siin saad eelnevalt vaadata, milline su tekst välja näeks. Pea aga meeles, et see **ei ole veel salvestatud** !
diff --git a/wiki/inc/lang/et/pwconfirm.txt b/wiki/inc/lang/et/pwconfirm.txt
deleted file mode 100644
index ee3b313..0000000
--- a/wiki/inc/lang/et/pwconfirm.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-Tere @FULLNAME@!
-
-Keegi on Sinu parooli uuendust soovinud kasutajale @TITLE@ (@DOKUWIKIURL@).
-
-Kui see ei olnud Sina, siis võid seda meili lihtsalt ignoreerida.
-Kinnitamaks uue parooli saamise soovi mine aadressile:
-
-@CONFIRM@
diff --git a/wiki/inc/lang/et/read.txt b/wiki/inc/lang/et/read.txt
deleted file mode 100644
index 64696f0..0000000
--- a/wiki/inc/lang/et/read.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-Seda lehte saad ainult lugeda. Saad küll vaadata lehe põhja aga muuta midagi ei saa. Suhtle oma serveri administraatoriga kui Sa millegagi rahul pole.
-
diff --git a/wiki/inc/lang/et/recent.txt b/wiki/inc/lang/et/recent.txt
deleted file mode 100644
index cf7a854..0000000
--- a/wiki/inc/lang/et/recent.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== Viimased muutused ======
-
-Viimati muudeti alljärgnevaid lehti.
-
-
diff --git a/wiki/inc/lang/et/register.txt b/wiki/inc/lang/et/register.txt
deleted file mode 100644
index 9cd0b91..0000000
--- a/wiki/inc/lang/et/register.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Registreeri uus kasutaja ======
-
-Täida alljärgnevad lüngad et me saaks Sulle Wikis kasutajakonto tekitada. Ole nii kena ja kindlasti pane kirja oma **kehtiv e-posti aadress** - Sinu uus parool saadetakse sellele aadressile. Sisselogimise nimi peaks olema kehtiv [[doku>pagename|lehenimi]].
-
diff --git a/wiki/inc/lang/et/registermail.txt b/wiki/inc/lang/et/registermail.txt
deleted file mode 100644
index 3b78963..0000000
--- a/wiki/inc/lang/et/registermail.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-Uus kasutaja on registreeritud. Tema info:
-
-Kasutaja     : @NEWUSER@
-Täielik nimi : @NEWNAME@
-E-post       : @NEWEMAIL@
-
-Kuupäev      : @DATE@
-Lehitseja    : @BROWSER@
-IP-Aaddress  : @IPADDRESS@
-Hosti nimi   : @HOSTNAME@
diff --git a/wiki/inc/lang/et/resendpwd.txt b/wiki/inc/lang/et/resendpwd.txt
deleted file mode 100644
index cd0ef8d..0000000
--- a/wiki/inc/lang/et/resendpwd.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Saada uus parool ======
-
-Palun sisesta oma kasutaja nimi, et saada uut parooli. Soovi kinnitamiseks saadame Sinu meilile lingi.
-
diff --git a/wiki/inc/lang/et/resetpwd.txt b/wiki/inc/lang/et/resetpwd.txt
deleted file mode 100644
index 3a80298..0000000
--- a/wiki/inc/lang/et/resetpwd.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Sea uus salasõna ======
-
-Sisesta oma selle wiki kasutajale uus salasõna
\ No newline at end of file
diff --git a/wiki/inc/lang/et/revisions.txt b/wiki/inc/lang/et/revisions.txt
deleted file mode 100644
index c546a1f..0000000
--- a/wiki/inc/lang/et/revisions.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== eelnevad versioonid ======
-
-Need on käesoleva dokumendi eelnevad versioonid. Vana versiooni juurde tagasi pöördumiseks vali sobiv, klõpsa ''Toimeta seda lehte'' peal ja salvesta see.
-
diff --git a/wiki/inc/lang/et/searchpage.txt b/wiki/inc/lang/et/searchpage.txt
deleted file mode 100644
index 546ae0e..0000000
--- a/wiki/inc/lang/et/searchpage.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Otsi ======
-
-Leiad vasted oma otsingule. @CREATEPAGEINFO@
-
diff --git a/wiki/inc/lang/et/showrev.txt b/wiki/inc/lang/et/showrev.txt
deleted file mode 100644
index ef73d74..0000000
--- a/wiki/inc/lang/et/showrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**See on dokumendi vana versioon!**
-----
diff --git a/wiki/inc/lang/et/stopwords.txt b/wiki/inc/lang/et/stopwords.txt
deleted file mode 100644
index 5dda5f7..0000000
--- a/wiki/inc/lang/et/stopwords.txt
+++ /dev/null
@@ -1,15 +0,0 @@
-# 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/
-ning
-ega
-see
-mina
-sina
-tema
-meie
-teie
-nemad
-com
-www
diff --git a/wiki/inc/lang/et/subscr_digest.txt b/wiki/inc/lang/et/subscr_digest.txt
deleted file mode 100644
index d382912..0000000
--- a/wiki/inc/lang/et/subscr_digest.txt
+++ /dev/null
@@ -1,17 +0,0 @@
-Tere!
-
-Wiki-s @TITLE@ toimetati lehekülge @PAGE@.
-
-Muudatustest lähemalt:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-Endine: @OLDPAGE@
-Uus: @NEWPAGE@
-
-Lehekülje teavituste katkestamiseks, sisene wiki-sse aadressil @DOKUWIKIURL@
-ja mine:
-@SUBSCRIBE@
-ning loobu lehekülje ja/või nimeruumi muudatuste teavitustest.
diff --git a/wiki/inc/lang/et/subscr_form.txt b/wiki/inc/lang/et/subscr_form.txt
deleted file mode 100644
index 61a005b..0000000
--- a/wiki/inc/lang/et/subscr_form.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Tellimuste haldus ======
-
-See lehekülg lubab sul hallata oma tellimusi antud leheküljele ja nimeruumile.
\ No newline at end of file
diff --git a/wiki/inc/lang/et/subscr_list.txt b/wiki/inc/lang/et/subscr_list.txt
deleted file mode 100644
index ec32a6b..0000000
--- a/wiki/inc/lang/et/subscr_list.txt
+++ /dev/null
@@ -1,15 +0,0 @@
-Tere!
-
-Wiki-s @TITLE@ toimetati nimeruumi @PAGE@.
-Muudatustest lähemalt:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-Endine: @OLDPAGE@
-Uus: @NEWPAGE@
-
-Lehekülje teavituste katkestamiseks, sisene wiki-sse aadressil @DOKUWIKIURL@
-ja mine:
-@SUBSCRIBE@
-ning loobu lehekülje ja/või nimeruumi muudatuste teavitustest.
diff --git a/wiki/inc/lang/et/subscr_single.txt b/wiki/inc/lang/et/subscr_single.txt
deleted file mode 100644
index 02069a6..0000000
--- a/wiki/inc/lang/et/subscr_single.txt
+++ /dev/null
@@ -1,19 +0,0 @@
-Tere!
-
-Wiki-s @TITLE@ toimetati lehekülge @PAGE@.
-Muudatustest lähemalt:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-Kuupäev : @DATE@
-Kasutaja : @USER@
-Kokkuvõte: @SUMMARY@
-Endine: @OLDPAGE@
-Uus: @NEWPAGE@
-
-Lehekülje teavituste katkestamiseks, sisene wiki-sse aadressil @DOKUWIKIURL@
-ja mine:
-@SUBSCRIBE@
-ning loobu lehekülje ja/või nimeruumi muudatuste teavitustest.
diff --git a/wiki/inc/lang/et/updateprofile.txt b/wiki/inc/lang/et/updateprofile.txt
deleted file mode 100644
index 35da128..0000000
--- a/wiki/inc/lang/et/updateprofile.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== Uuenda oma kasutaja infot ======
-
-Täida ainult need väljad, mida tahad uuendada. Uuendada ei saa kasutajanime.
-
-
diff --git a/wiki/inc/lang/et/uploadmail.txt b/wiki/inc/lang/et/uploadmail.txt
deleted file mode 100644
index 2c21926..0000000
--- a/wiki/inc/lang/et/uploadmail.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-Sinu DokuWiki-sse lisati fail.
-Lähemalt:
-
-  Fail                 : @MEDIA@
-  Endine            : @OLD@
-  Kuupäev         : @DATE@
-  Veebilehitseja : @BROWSER@
-  IP-aadress      : @IPADDRESS@
-  Hostinimi         : @HOSTNAME@
-  Suurus            : @SIZE@
-  MIME liik         : @MIME@
-  Kasutaja          : @ USER@
diff --git a/wiki/inc/lang/eu/admin.txt b/wiki/inc/lang/eu/admin.txt
deleted file mode 100644
index 1367326..0000000
--- a/wiki/inc/lang/eu/admin.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Kudeaketa ======
-
-Jarraian wikia kudeatzeko erabilgarri dauden tresnak aurki ditzakezu.
diff --git a/wiki/inc/lang/eu/adminplugins.txt b/wiki/inc/lang/eu/adminplugins.txt
deleted file mode 100644
index 20709bf..0000000
--- a/wiki/inc/lang/eu/adminplugins.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Plugin Gehigarriak =====
\ No newline at end of file
diff --git a/wiki/inc/lang/eu/backlinks.txt b/wiki/inc/lang/eu/backlinks.txt
deleted file mode 100644
index 8cbb7b6..0000000
--- a/wiki/inc/lang/eu/backlinks.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Itzulera Estekak ======
-
-Orri honetara bueltan estekatzen dutela diruditen orrien lista bat da honakoa.
\ No newline at end of file
diff --git a/wiki/inc/lang/eu/conflict.txt b/wiki/inc/lang/eu/conflict.txt
deleted file mode 100644
index d7d0d33..0000000
--- a/wiki/inc/lang/eu/conflict.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== Bertsio berriago bat existitzen da ======
-
-Editatu duzun dokumentua baino bertsio berriago existitzen da. Editatzen ari zarela beste erabiltzaile batek dokumentua aldatzen duenean gertatzen da hau.
-
-Aztertu arretaz behean erakutsitako desberdintasunak eta erabaki zein bertsio mantendu. Zure aukera "Gorde" bada, zure bertsioa gordeko da. Uneko bertsioa mantentzeko "ezeztatu" sakatu.
\ No newline at end of file
diff --git a/wiki/inc/lang/eu/denied.txt b/wiki/inc/lang/eu/denied.txt
deleted file mode 100644
index 869c4c7..0000000
--- a/wiki/inc/lang/eu/denied.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Ez duzu baimenik ======
-
-Barkatu, ez duzu baimenik orri hau ikusteko.
-
diff --git a/wiki/inc/lang/eu/diff.txt b/wiki/inc/lang/eu/diff.txt
deleted file mode 100644
index 8d335ea..0000000
--- a/wiki/inc/lang/eu/diff.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Aldaketak ======
-
-Aukeratutako bertsioaren eta egungo bertsioaren arteko aldaketak aurkezten ditu.
-
diff --git a/wiki/inc/lang/eu/draft.txt b/wiki/inc/lang/eu/draft.txt
deleted file mode 100644
index 5d64b0b..0000000
--- a/wiki/inc/lang/eu/draft.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== Zirriborro fitxategia aurkitu da ======
-
-Zure azken edizio saioa orri honetan ez zen zuzen burutu. DokuWiki-k automatikoki zirriborro bat gorde zuen lanean ari zinen bitartean eta orain zure edizioa jarraitzeko erabili dezakezu. Behean ikusi dezakezu zure asken saioan gorde ziren datuak.
-
-Erabaki mesedez zure edizio saio galdua //berreskuratu// nahi duzun, automatikoki gordetako zirriborroa //ezabatu// nahi duzun edo edizio prozesua //ezeztatu// nahi duzun.
\ No newline at end of file
diff --git a/wiki/inc/lang/eu/edit.txt b/wiki/inc/lang/eu/edit.txt
deleted file mode 100644
index c117731..0000000
--- a/wiki/inc/lang/eu/edit.txt
+++ /dev/null
@@ -1 +0,0 @@
-Egin aldaketak eta ''Gorde'' pultsatu. Begiratu [[wiki:syntax]] Wiki-aren sintaxiarentzat. Mesedez aldaketak orrialdea **hobetzeko** bakarrik egin itzazu. Probak egin nahi badituzu, ikas ezazu [[playground:playground]] erabiltzen.
diff --git a/wiki/inc/lang/eu/editrev.txt b/wiki/inc/lang/eu/editrev.txt
deleted file mode 100644
index 920cd89..0000000
--- a/wiki/inc/lang/eu/editrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**Dokumentuaren bertsio zahar bat ireki duzu!** Gordetzen baduzu bertsio berri bat sortuko duzu datu hauekin.
-----
diff --git a/wiki/inc/lang/eu/index.txt b/wiki/inc/lang/eu/index.txt
deleted file mode 100644
index 30f8849..0000000
--- a/wiki/inc/lang/eu/index.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Aurkibidea ======
-
-[[doku>namespaces|namespaces]] bitartez ordenatutako aurkibidea da hau.
-
diff --git a/wiki/inc/lang/eu/install.html b/wiki/inc/lang/eu/install.html
deleted file mode 100644
index ce2eeb3..0000000
--- a/wiki/inc/lang/eu/install.html
+++ /dev/null
@@ -1,9 +0,0 @@
-<p>Orri honek <a href="http://dokuwiki.org">Dokuwiki-ren</a> lehenengo instalazioan eta konfigurazioan gidatzen du. Instalatzaile honen informazio gehiago eskuragarri dago bere <a href="http://dokuwiki.org/installer">dokumentazio orrian</a>.</p>
-
-<p>DokuWikik fitxategi arruntak erabiltzen ditu wiki orriak eta orri horiekin erlazionatutako informazioa (adb. irudiak, bilaketa indizeak, azken berrikuspenak, etab.) gordetzeko. Modu egokian funtziona dezan, DokuWikik idazketa baimena <strong>behar</strong> du fitxategi horiek gordetzen dituzten direktorioetan. Instalatzaile hau ez da gai direktorio baimenak ezartzeko. Hori normalean komando bidez egin beharra dago, edo hosting bat erabiliz gero, FTP bidez edo hosting-aren kontrol panel bidez (adb. cPanel).</p>
-
-<p>Instalatzaile honek zure DokiWikiren konfigurazioa ezarriko du
-<abbr title="atzipen kontrol lista">AKL</abbr>rentzat, zeinak administratzaileei ahalbidetzen dien saioa hasi eta DokuWikiren administrazio menua atzitzea plugin-ak instalatu, erabiltzaileak kudeatu, wiki orrietara atzipenak kudeatu eta konfigurazio aukerak aldatzeko. Hau ez da beharrezkoa DokuWikirentzat funtziona ahal dezan, baina DokuWiki administratzeko errazagoa egingo du.</p>
-
-<p>Esperientziadun erabiltzaileek edo ezarpen behar bereziak dituzten erabiltzaileek honako estekak erabili beharko lituzkete xehetasun gehiago lortzeko
-<a href="http://dokuwiki.org/install">instalazio azalpenen</a> inguruan eta <a href="http://dokuwiki.org/config">konfigurazio ezarpenen</a> inguruan.</p>
\ No newline at end of file
diff --git a/wiki/inc/lang/eu/jquery.ui.datepicker.js b/wiki/inc/lang/eu/jquery.ui.datepicker.js
deleted file mode 100644
index 8ea1ef9..0000000
--- a/wiki/inc/lang/eu/jquery.ui.datepicker.js
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Karrikas-ek itzulia (karrikas@karrikas.com) */
-( function( factory ) {
-	if ( typeof define === "function" && define.amd ) {
-
-		// AMD. Register as an anonymous module.
-		define( [ "../widgets/datepicker" ], factory );
-	} else {
-
-		// Browser globals
-		factory( jQuery.datepicker );
-	}
-}( function( datepicker ) {
-
-datepicker.regional.eu = {
-	closeText: "Egina",
-	prevText: "&#x3C;Aur",
-	nextText: "Hur&#x3E;",
-	currentText: "Gaur",
-	monthNames: [ "urtarrila","otsaila","martxoa","apirila","maiatza","ekaina",
-		"uztaila","abuztua","iraila","urria","azaroa","abendua" ],
-	monthNamesShort: [ "urt.","ots.","mar.","api.","mai.","eka.",
-		"uzt.","abu.","ira.","urr.","aza.","abe." ],
-	dayNames: [ "igandea","astelehena","asteartea","asteazkena","osteguna","ostirala","larunbata" ],
-	dayNamesShort: [ "ig.","al.","ar.","az.","og.","ol.","lr." ],
-	dayNamesMin: [ "ig","al","ar","az","og","ol","lr" ],
-	weekHeader: "As",
-	dateFormat: "yy-mm-dd",
-	firstDay: 1,
-	isRTL: false,
-	showMonthAfterYear: false,
-	yearSuffix: "" };
-datepicker.setDefaults( datepicker.regional.eu );
-
-return datepicker.regional.eu;
-
-} ) );
diff --git a/wiki/inc/lang/eu/lang.php b/wiki/inc/lang/eu/lang.php
deleted file mode 100644
index 4e074f0..0000000
--- a/wiki/inc/lang/eu/lang.php
+++ /dev/null
@@ -1,339 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Xabi Ezpeleta <xezpeleta@mendikute.com>
- * @author Inko Illarramendi <inko.i.a@gmail.com>
- * @author Zigor Astarbe <astarbe@gmail.com>
- * @author Yadav Gowda <yadav.gowda@gmail.com>
- * @author Osoitz <oelkoro@gmail.com>
- */
-$lang['encoding']              = 'utf-8';
-$lang['direction']             = 'ltr';
-$lang['doublequoteopening']    = '“';
-$lang['doublequoteclosing']    = 'â€';
-$lang['singlequoteopening']    = '‘';
-$lang['singlequoteclosing']    = '’';
-$lang['apostrophe']            = '’';
-$lang['btn_edit']              = 'Aldatu orri hau';
-$lang['btn_source']            = 'Kodea ikusi';
-$lang['btn_show']              = 'Orria ikusi';
-$lang['btn_create']            = 'Sortu orri hau';
-$lang['btn_search']            = 'Bilatu';
-$lang['btn_save']              = 'Gorde';
-$lang['btn_preview']           = 'Aurrebista';
-$lang['btn_top']               = 'Itzuli gora';
-$lang['btn_newer']             = '<< berriagoa';
-$lang['btn_older']             = 'zaharragoa >>';
-$lang['btn_revs']              = 'Berrikuspen zaharrak';
-$lang['btn_recent']            = 'Azken aldaketak';
-$lang['btn_upload']            = 'Ireki';
-$lang['btn_cancel']            = 'Ezeztatu';
-$lang['btn_index']             = 'Aurkibidea';
-$lang['btn_secedit']           = 'Aldatu';
-$lang['btn_login']             = 'Sartu';
-$lang['btn_logout']            = 'Irten';
-$lang['btn_admin']             = 'Admin';
-$lang['btn_update']            = 'Eguneratu';
-$lang['btn_delete']            = 'Ezabatu';
-$lang['btn_back']              = 'Atzera';
-$lang['btn_backlink']          = 'Itzulera estekak';
-$lang['btn_subscribe']         = 'Harpidetu Orri Aldaketetara';
-$lang['btn_profile']           = 'Eguneratu Profila ';
-$lang['btn_reset']             = 'Aldaketak Desegin';
-$lang['btn_resendpwd']         = 'Pasahitza berria ezarri';
-$lang['btn_draft']             = 'Editatu zirriborroa';
-$lang['btn_recover']           = 'Berreskuratu zirriborroa';
-$lang['btn_draftdel']          = 'Ezabatu zirriborroa';
-$lang['btn_revert']            = 'Berrezarri';
-$lang['btn_register']          = 'Erregistratu';
-$lang['btn_apply']             = 'Baieztatu';
-$lang['btn_media']             = 'Media Kudeatzailea';
-$lang['btn_deleteuser']        = 'Nire kontua kendu';
-$lang['btn_img_backto']        = 'Atzera hona %s';
-$lang['btn_mediaManager']      = 'Media kudeatzailean ikusi';
-$lang['loggedinas']            = 'Erabiltzailea:';
-$lang['user']                  = 'Erabiltzailea';
-$lang['pass']                  = 'Pasahitza';
-$lang['newpass']               = 'Pasahitz berria';
-$lang['oldpass']               = 'Baieztatu oraingo pasahitza';
-$lang['passchk']               = 'berriz';
-$lang['remember']              = 'Gogoratu';
-$lang['fullname']              = 'Izen Deiturak';
-$lang['email']                 = 'E-Maila';
-$lang['profile']               = 'Erabiltzaile Profila';
-$lang['badlogin']              = 'Barkatu, prozesuak huts egin du; saiatu berriz';
-$lang['badpassconfirm']        = 'Pasahitz okerra';
-$lang['minoredit']             = 'Aldaketa Txikiak';
-$lang['draftdate']             = 'Zirriborroa automatikoki gorde da hemen:';
-$lang['nosecedit']             = 'Orria aldatua izan da bitartean, info atala zaharkituta geratu da, orri osoa kargatu da horren ordez.';
-$lang['regmissing']            = 'Barkatu, hutsune guztiak bete behar dituzu.';
-$lang['reguexists']            = 'Barkatu, izen bereko erabiltzailea existitzen da.';
-$lang['regsuccess']            = 'Erabiltzailea sortu da. Pasahitza mailez bidaliko zaizu.';
-$lang['regsuccess2']           = 'Erabiltzailea sortua izan da.';
-$lang['regfail']               = 'Ezin izan da erabiltzailea sortu';
-$lang['regmailfail']           = 'Badirudi arazoren bat egon dela pasahitza mailez bidaltzeko orduan. Administratzailearekin harremanetan jarri!';
-$lang['regbadmail']            = 'Emandako helbidea ez da zuzena - jarri harremanetan administratzailearekin hau akats bat dela uste baduzu';
-$lang['regbadpass']            = 'Idatzitako bi pasahitzak ez dira berdinak, berriz saiatu.';
-$lang['regpwmail']             = 'Zure DokuWiki pasahitza';
-$lang['reghere']               = 'Oraindik ez duzu konturik? Eginzazu bat!';
-$lang['profna']                = 'Wiki honek ez du profilaren aldaketa ahalbidetzen';
-$lang['profnochange']          = 'Aldaketarik ez, ez dago egiteko ezer.';
-$lang['profnoempty']           = 'Izen edota e-posta hutsa ez dago onartua.';
-$lang['profchanged']           = 'Erabiltzaile profila arrakastaz eguneratua.';
-$lang['profnodelete']          = 'Wiki honek ez du erabiltzaileak ezabatzea onartzen';
-$lang['profdeleteuser']        = 'Kontua ezabatu';
-$lang['profdeleted']           = 'Zure erabiltzaile kontua wiki honetatik ezabatu da';
-$lang['profconfdelete']        = 'Nire kontua kendu nahi dut wiki honetatik. <br/>Ekintza hau ezin da desegin.';
-$lang['profconfdeletemissing'] = 'Ez da egiaztaketa-kutxa markatu';
-$lang['proffail']              = 'Erabiltzailearen perfila ez da eguneratu';
-$lang['pwdforget']             = 'Pasahitza ahaztu duzu? Eskuratu berri bat';
-$lang['resendna']              = 'Wiki honek ez du pasahitz berbidalketa onartzen.';
-$lang['resendpwd']             = '-entzat pasahitza berria ezarri';
-$lang['resendpwdmissing']      = 'Barkatu, eremu guztiak bete behar dituzu.';
-$lang['resendpwdnouser']       = 'Barkatu, ez dugu erabiltzaile hori datu-basean aurkitzen';
-$lang['resendpwdbadauth']      = 'Barkatu, kautotze kodea ez da baliozkoa. Ziurtatu baieztapen esteka osoa erabili duzula.';
-$lang['resendpwdconfirm']      = 'Baieztapen esteka bat e-postaz bidali da.';
-$lang['resendpwdsuccess']      = 'Zure pasahitz berria e-postaz bidali da.';
-$lang['license']               = 'Besterik esan ezean, wiki hontako edukia ondorengo lizentziapean argitaratzen da:';
-$lang['licenseok']             = 'Oharra: Orri hau editatzean, zure edukia ondorengo lizentziapean argitaratzea onartzen duzu: ';
-$lang['searchmedia']           = 'Bilatu fitxategi izena:';
-$lang['searchmedia_in']        = 'Bilatu %s-n';
-$lang['txt_upload']            = 'Ireki nahi den fitxategia aukeratu:';
-$lang['txt_filename']          = 'Idatzi wikiname-a (aukerazkoa):';
-$lang['txt_overwrt']           = 'Oraingo fitxategiaren gainean idatzi';
-$lang['maxuploadsize']         = 'Igo gehienez %s fitxategiko';
-$lang['lockedby']              = 'Momentu honetan blokeatzen:';
-$lang['lockexpire']            = 'Blokeaketa iraungitzen da:';
-$lang['js']['willexpire']      = 'Zure blokeaketa orri hau aldatzeko minutu batean iraungitzen da.\nGatazkak saihesteko, aurreikusi botoia erabili blokeaketa denboragailua berrabiarazteko.';
-$lang['js']['notsavedyet']     = 'Gorde gabeko aldaketak galdu egingo dira.
-Benetan jarraitu nahi duzu?';
-$lang['js']['searchmedia']     = 'Bilatu fitxategiak';
-$lang['js']['keepopen']        = 'Mantendu leihoa irekita aukeraketan';
-$lang['js']['hidedetails']     = 'Xehetasunak Ezkutatu';
-$lang['js']['mediatitle']      = 'Esteken ezarpenak';
-$lang['js']['mediadisplay']    = 'Esteka mota';
-$lang['js']['mediaalign']      = 'Lerrokatzea';
-$lang['js']['mediasize']       = 'Irudi tamaina';
-$lang['js']['mediatarget']     = 'Estekaren helburua';
-$lang['js']['mediaclose']      = 'Itxi';
-$lang['js']['mediainsert']     = 'Txertatu';
-$lang['js']['mediadisplayimg'] = 'Irudia erakutsi';
-$lang['js']['mediadisplaylnk'] = 'Esteka bakarrik erakutsi';
-$lang['js']['mediasmall']      = 'Bertsio txikia';
-$lang['js']['mediamedium']     = 'Bertsio ertaina';
-$lang['js']['medialarge']      = 'Bertsio handia';
-$lang['js']['mediaoriginal']   = 'Jatorrizko bertsioa';
-$lang['js']['medialnk']        = 'Esteka xehetasunen orrira';
-$lang['js']['mediadirect']     = 'Jatorrizkora esteka zuzena';
-$lang['js']['medianolnk']      = 'Estekarik ez';
-$lang['js']['medianolink']     = 'Ez estekatu irudia';
-$lang['js']['medialeft']       = 'Irudia ezkerrean lerrokatu';
-$lang['js']['mediaright']      = 'Irudia eskuinean lerrokatu';
-$lang['js']['mediacenter']     = 'Irudia erdian lerrokatu';
-$lang['js']['medianoalign']    = 'Ez erabili lerrokatzerik';
-$lang['js']['nosmblinks']      = 'Window baliabide konpartituetara estekek Microsoft Internet Explorer-en bakarrik balio dute.
-Esteka kopiatu eta itsatsi dezakezu dena den.';
-$lang['js']['linkwiz']         = 'Estekatze Laguntzailea';
-$lang['js']['linkto']          = 'Estekatu hona:';
-$lang['js']['del_confirm']     = 'Benetan ezabatu aukeratutako fitxategia(k)?';
-$lang['js']['restore_confirm'] = 'Benetan bertsio hau berrezarri?';
-$lang['js']['media_diff']      = 'Diferentziak ikusi:';
-$lang['js']['media_diff_both'] = 'Ondoz ondo';
-$lang['js']['media_diff_portions'] = 'Pasatu hatza';
-$lang['js']['media_select']    = 'Fitxategiak hautatu';
-$lang['js']['media_upload_btn'] = 'Igo';
-$lang['js']['media_done_btn']  = 'Egina';
-$lang['js']['media_drop']      = 'Fitxategiak igotzeko hona bota';
-$lang['js']['media_cancel']    = 'ezabatu';
-$lang['js']['media_overwrt']   = 'Dauden fitxategiak berridatzi';
-$lang['rssfailed']             = 'Errorea gertatu da feed hau irakurtzean:';
-$lang['nothingfound']          = 'Ez da ezer aurkitu.';
-$lang['mediaselect']           = 'Aukeratu Multimedia fitxategia';
-$lang['uploadsucc']            = 'Igoera arrakastatsua';
-$lang['uploadfail']            = 'Igoerak huts egin du. Baimen arazoengatik agian?';
-$lang['uploadwrong']           = 'Fitxategi igoera ukatua. Fitxategi-luzapen hau debekatua dago!';
-$lang['uploadexist']           = 'Fitxategia lehenagotik existitzen da. Ez da ezer egin.';
-$lang['uploadbadcontent']      = 'Igotako edukia ez dator bat %s fitxategi-luzapenarekin.';
-$lang['uploadspam']            = 'Igoera spam zerrenda beltzak blokeatu du.';
-$lang['uploadxss']             = 'Igoera blokeatua izan da eduki maltzurra edukitzeko susmoagatik.';
-$lang['uploadsize']            = 'Igotako fitxategia handiegia zen. (max. %s)';
-$lang['deletesucc']            = 'Ezabatua izan da "%s" fitxategia.';
-$lang['deletefail']            = 'Ezin izan da "%s" ezabatu - egiaztatu baimenak.';
-$lang['mediainuse']            = 'Ez da "%s" fitxategia ezabatu - oraindik erabilia izaten ari da.';
-$lang['namespaces']            = 'Izen-espazioak';
-$lang['mediafiles']            = 'Fitxategiak eskuragarri hemen:';
-$lang['accessdenied']          = 'Ez zaude orri hau ikusteko baimendua';
-$lang['mediausage']            = 'Erabili ondoko sintaxia fitxategi honi erreferentzia egiteko:';
-$lang['mediaview']             = 'Ikusi jatorrizko fitxategia';
-$lang['mediaroot']             = 'root';
-$lang['mediaupload']           = 'Igo fitxategi bat uneko izen-espaziora. Azpi-izen-espazioak sortzeko, zure "Honela igo" fitxategi izenaren aurretik ezarri, bi puntuz (:) bananduta.';
-$lang['mediaextchange']        = 'Fitxategi-luzapena aldatua .%s -tik .%s! -ra';
-$lang['reference']             = 'Erreferentziak honentzat:';
-$lang['ref_inuse']             = 'Fitxategia ezin da ezabatu, honako orri hauek erabiltzen dutelako:';
-$lang['ref_hidden']            = 'Erreferentzi batzuk irakurtzeko baimenik ez duzun orrietan daude';
-$lang['hits']                  = 'Hits';
-$lang['quickhits']             = 'Matching pagenames';
-$lang['toc']                   = 'Eduki Taula';
-$lang['current']               = 'egungoa';
-$lang['yours']                 = 'Zure Bertsioa';
-$lang['diff']                  = 'egungo bertsioarekin dituen aldaketak aurkezten ditu';
-$lang['diff2']                 = 'Erakutsi desberdintasunak aukeratutako bertsioen artean';
-$lang['difflink']              = 'Estekatu konparaketa bista honetara';
-$lang['diff_type']             = 'Ikusi diferentziak:';
-$lang['diff_inline']           = 'Lerro tartean';
-$lang['diff_side']             = 'Ondoz ondo';
-$lang['diffprevrev']           = 'Aurreko errebisioa';
-$lang['diffnextrev']           = 'Hurrengo errebisioa';
-$lang['difflastrev']           = 'Azken errebisioa';
-$lang['diffbothprevrev']       = 'Alde biak aurreko errebisioa';
-$lang['diffbothnextrev']       = 'Alde biak hurrengo errebisioa';
-$lang['line']                  = 'Marra';
-$lang['breadcrumb']            = 'Traza:';
-$lang['youarehere']            = 'Hemen zaude:';
-$lang['lastmod']               = 'Azken aldaketa:';
-$lang['by']                    = 'egilea:';
-$lang['deleted']               = 'ezabatua';
-$lang['created']               = 'sortua';
-$lang['restored']              = 'bertsio zaharra berrezarria (%s)';
-$lang['external_edit']         = 'kanpoko aldaketa';
-$lang['summary']               = 'Aldatu laburpena';
-$lang['noflash']               = '<a href="http://www.adobe.com/products/flashplayer/">Adobe Flash Plugin</a> beharrezkoa da eduki hau bistaratzeko.';
-$lang['download']              = 'Deskarga Snippet-a';
-$lang['tools']                 = 'Tresnak';
-$lang['user_tools']            = 'Erabiltzaile Tresnak';
-$lang['site_tools']            = 'Gune Tresnak';
-$lang['page_tools']            = 'Orri Tresnak';
-$lang['skip_to_content']       = 'edukira sahiestu';
-$lang['sidebar']               = 'Alboko-barra';
-$lang['mail_newpage']          = '[DokuWiki] gehitutako orria:';
-$lang['mail_changed']          = '[DokuWiki] aldatutako orria:';
-$lang['mail_subscribe_list']   = 'izen-espazioan aldatutako orriak:';
-$lang['mail_new_user']         = 'erabiltzaile berria:';
-$lang['mail_upload']           = 'fitxategia igota:';
-$lang['changes_type']          = '-ren aldaketak ikusi';
-$lang['pages_changes']         = 'Orriak';
-$lang['media_changes']         = 'Media fitxategiak';
-$lang['both_changes']          = 'Bai orriak nahiz media fitxategiak';
-$lang['qb_bold']               = 'Letra beltzez';
-$lang['qb_italic']             = 'Letra italiarrez';
-$lang['qb_underl']             = 'Azpimarratua';
-$lang['qb_code']               = 'Kodea';
-$lang['qb_strike']             = 'Marratu Testua';
-$lang['qb_h1']                 = 'Izenburua 1';
-$lang['qb_h2']                 = 'Izenburua 2';
-$lang['qb_h3']                 = 'Izenburua 3';
-$lang['qb_h4']                 = 'Izenburua 4';
-$lang['qb_h5']                 = 'Izenburua 5';
-$lang['qb_h']                  = 'Izenburua';
-$lang['qb_hs']                 = 'Izenburua Aukeratu';
-$lang['qb_hplus']              = 'Izenburu Handiagoa';
-$lang['qb_hminus']             = 'Izenburu Txikiagoa';
-$lang['qb_hequal']             = 'Maila Berdineko Izenburua';
-$lang['qb_link']               = 'Barruko Lotura';
-$lang['qb_extlink']            = 'Kanpoko Lotura';
-$lang['qb_hr']                 = 'Horizontal Marra';
-$lang['qb_ol']                 = 'Zerrenda ordenatuko gaia';
-$lang['qb_ul']                 = 'Zerrenda desordenatuko gaia';
-$lang['qb_media']              = 'Irudiak eta beste fitxategiak gehitu';
-$lang['qb_sig']                = 'Gehitu sinadura';
-$lang['qb_smileys']            = 'Irrifartxoak';
-$lang['qb_chars']              = 'Karaktere Bereziak';
-$lang['upperns']               = 'Jauzi izen-espazio gurasora';
-$lang['metaedit']              = 'Metadatua Aldatu';
-$lang['metasaveerr']           = 'Metadatuaren idazketak huts egin du';
-$lang['metasaveok']            = 'Metadatua gordea';
-$lang['img_title']             = 'Izenburua:';
-$lang['img_caption']           = 'Epigrafea:';
-$lang['img_date']              = 'Data:';
-$lang['img_fname']             = 'Fitxategi izena:';
-$lang['img_fsize']             = 'Tamaina:';
-$lang['img_artist']            = 'Artista:';
-$lang['img_copyr']             = 'Copyright:';
-$lang['img_format']            = 'Formatua:';
-$lang['img_camera']            = 'Kamera:';
-$lang['img_keywords']          = 'Hitz-gakoak:';
-$lang['img_width']             = 'Zabalera:';
-$lang['img_height']            = 'Altuera:';
-$lang['subscr_subscribe_success'] = '%s gehitua %s-ren harpidetza zerrendara';
-$lang['subscr_subscribe_error'] = 'Errorea %s gehitzen %s-ren harpidetza zerrendara';
-$lang['subscr_subscribe_noaddress'] = 'Ez dago helbiderik zure login-arekin lotuta, ezin zara harpidetza zerrendara gehitua izan.';
-$lang['subscr_unsubscribe_success'] = '%s ezabatua %s-ren harpidetza zerrendatik';
-$lang['subscr_unsubscribe_error'] = 'Errorea %s ezabatzen %s-ren harpidetza zerrendatik';
-$lang['subscr_already_subscribed'] = '%s lehendik harpidetua dago %s-n';
-$lang['subscr_not_subscribed'] = '%s ez dago %s-n harpidetua';
-$lang['subscr_m_not_subscribed'] = 'Momentu honetan ez zaude orri honetara edo izen-espazio honetara harpidetua.';
-$lang['subscr_m_new_header']   = 'Gehitu harpidetza';
-$lang['subscr_m_current_header'] = 'Uneko harpidetzak';
-$lang['subscr_m_unsubscribe']  = 'Kendu harpidetza';
-$lang['subscr_m_subscribe']    = 'Harpidetu';
-$lang['subscr_m_receive']      = 'Jaso';
-$lang['subscr_style_every']    = 'e-posta aldaketa bakoitzean';
-$lang['subscr_style_digest']   = 'e-posta laburbildua orri bakoitzeko aldaketentzat (%.2f egunero)';
-$lang['subscr_style_list']     = 'aldatutako orrien zerrenda azken e-postatik (%.2f egunero)';
-$lang['authtempfail']          = 'Erabiltzaile kautotzea denboraldi batez ez dago erabilgarri. Egoerak hala jarraitzen badu, mesedez, eman honen berri Wiki administratzaileari';
-$lang['i_chooselang']          = 'Hautatu zure hizkuntza';
-$lang['i_installer']           = 'DokuWiki instalatzailea';
-$lang['i_wikiname']            = 'Wiki Izena';
-$lang['i_enableacl']           = 'Gaitu ACL (gomendatua) (ACL: Atzipen Kontrol Lista)';
-$lang['i_superuser']           = 'Supererabiltzailea';
-$lang['i_problems']            = 'Instalatzaileak arazo batzuk aurkitu ditu, behean azalduak. Ezin duzu horiek konpondu arte jarraitu.';
-$lang['i_modified']            = 'Segurtasun arrazoiengatik, script hau DokuWikiren instalazio berri eta aldatu gabeko batekin bakarrik dabil. Deskargatutako paketetik fitxategiak berriz atera edo <a href="http://dokuwiki.org/install">DokuWikiren instalazio azalpenak</a> osorik irakurri beharko zenituzke.';
-$lang['i_funcna']              = 'PHP <code>%s</code> funtzioa ez dago erabilgarri. Agian zure hosting hornitzaileak arrazoiren batengatik ezgaituko zuen?';
-$lang['i_phpver']              = 'Zure PHP <code>%s</code> bertsioa behar den <code>%s</code> bertsioa baino zaharragoa da. PHP instalazioa eguneratu beharra daukazu.';
-$lang['i_permfail']            = 'DokuWiki ez da   <code>%s</code> idazteko gai. Direktorio honen baimenen konfigurazioa konpondu behar duzu!';
-$lang['i_confexists']          = '<code>%s</code> lehendik existitzen da';
-$lang['i_writeerr']            = 'Ezin da <code>%s</code> sortu. Direktorioaren/fitxategiaren baimenak egiaztatu eta sortu fitxategia eskuz.';
-$lang['i_badhash']             = 'aldatutakoa edo ezezaguna den dokuwiki.php (hash=<code>%s</code>)';
-$lang['i_badval']              = '<code>%s</code> - balioa arauen aurka edo hutsa';
-$lang['i_success']             = 'Konfigurazioa arrakastaz amaitu da. Orain, install.php fitxategia ezabatu dezakezu. Jarraitu ezazu <a href="doku.php?id=wiki:welcome">zure DokuWiki berrian</a>.';
-$lang['i_failure']             = 'Akats batzuk gertatu dira konfigurazio fitxategiak idazterakoan. Hauek eskuz konpondu beharra izan dezakezu <a href="doku.php?id=wiki:welcome">zure DokuWiki berria</a> erabili ahal izan aurretik.';
-$lang['i_policy']              = 'Hasierako ACL politika';
-$lang['i_pol0']                = 'Wiki Irekia (irakurri, idatzi, fitxategiak igo edonorentzat)';
-$lang['i_pol1']                = 'Wiki Publikoa (irakurri edonorentzat, idatzi eta fitxategiak igo erregistratutako erabiltzaileentzat)';
-$lang['i_pol2']                = 'Wiki Itxia (irakurri, idatzi, fitxategiak igo erregistratutako erabiltzaileentzat soilik)';
-$lang['i_allowreg']            = 'Baimendu erabiltzaileei bere burua erregistratzea';
-$lang['i_retry']               = 'Berriz saiatu';
-$lang['i_license']             = 'Mesedez, aukeratu zein lizentzipean ezarri nahi duzun zure edukia:';
-$lang['i_license_none']        = 'Ez erakutsi lizentzia informaziorik';
-$lang['i_pop_field']           = 'Lagundu gaitzazu Dokuwiki esperientzia hobetzen:';
-$lang['i_pop_label']           = 'Hilean behin bidali erabilera datu anonimoak Dokuwiki garatzaileei';
-$lang['recent_global']         = 'Une honetan <b>%s</b> izen-espazioaren barneko aldaketak ikusten ari zara.<a href="%s"> Wiki osoaren azken aldaketak</a> ere ikusi ditzakezu.';
-$lang['years']                 = 'duela %d urte';
-$lang['months']                = 'duela %d hilabete';
-$lang['weeks']                 = 'duela %d aste';
-$lang['days']                  = 'duela %d egun';
-$lang['hours']                 = 'duela %d ordu';
-$lang['minutes']               = 'duela %d minutu';
-$lang['seconds']               = 'duela %d segundu';
-$lang['wordblock']             = 'Zure aldaketa ez da aldatua izan blokeatutako testua (spam) daukalako.';
-$lang['media_uploadtab']       = 'Igo';
-$lang['media_searchtab']       = 'Bilatu';
-$lang['media_file']            = 'Fitxategia';
-$lang['media_viewtab']         = 'Begiratu';
-$lang['media_edittab']         = 'Editatu';
-$lang['media_historytab']      = 'Historia';
-$lang['media_list_thumbs']     = 'Iruditxoak';
-$lang['media_list_rows']       = 'Errenkadak';
-$lang['media_sort_name']       = 'Izena';
-$lang['media_sort_date']       = 'Data';
-$lang['media_files']           = '%s -n fitxategiak';
-$lang['media_upload']          = 'Igo %s -ra';
-$lang['media_search']          = 'Bilatu %s -n';
-$lang['media_view']            = '%s';
-$lang['media_viewold']         = '%s -n %s';
-$lang['media_edit']            = '%s editatu';
-$lang['media_history']         = '%s(a)ren historiala';
-$lang['media_meta_edited']     = 'metadatuak editatua';
-$lang['media_perm_read']       = 'Ez duzu fitxategiak irakurtzeko behar beste baimen.';
-$lang['media_perm_upload']     = 'Ez duzu fitxategiak igotzeko behar beste baimen.';
-$lang['media_update']          = 'Bertsio berria igo';
-$lang['media_restore']         = 'Bertsio hau berrezarri';
-$lang['media_acl_warning']     = 'Hau agian ez dago osorik SCL murrizketak eta ezkutuko orriak direla eta.';
-$lang['searchresult']          = 'Bilaketaren emaitza';
-$lang['plainhtml']             = 'HTML hutsa';
-$lang['wikimarkup']            = 'Wiki kodea';
-$lang['page_nonexist_rev']     = 'Ez zegoen %s izeneko orririk. Sortu egin da <a href="%s">%s</a> helbidean.';
-$lang['email_signature_text']  = 'Email hau DokuWiki erabiliz sortu da
-@DOKUWIKIURL@';
diff --git a/wiki/inc/lang/eu/locked.txt b/wiki/inc/lang/eu/locked.txt
deleted file mode 100644
index dc29e51..0000000
--- a/wiki/inc/lang/eu/locked.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Orria blokeatua ======
-
-Orrialde hau blokeatua dago beste erabiltzaile batengatik. Berak aldaketak bukatu arte itxaron beharko duzu.
diff --git a/wiki/inc/lang/eu/login.txt b/wiki/inc/lang/eu/login.txt
deleted file mode 100644
index ebb1607..0000000
--- a/wiki/inc/lang/eu/login.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Login ======
-
-Ez duzu sesiorik hasi! Sar ezazu zure erabiltzaile izena eta pasahitza. Gogoratu coockie-ak baimenduta izan behar dituzula.
-
diff --git a/wiki/inc/lang/eu/mailtext.txt b/wiki/inc/lang/eu/mailtext.txt
deleted file mode 100644
index ad0ff2f..0000000
--- a/wiki/inc/lang/eu/mailtext.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-DokuWiki-Eskuliburuetan orriren bat aldatu edo gehitu da. Hemen dituzu xehetasunak
-
-Data                : @DATE@
-Nabigatzailea       : @BROWSER@
-IP-Helbidea         : @IPADDRESS@
-Host izena          : @HOSTNAME@
-Bertsio zaharra : @OLDPAGE@
-Bertsio berria  : @NEWPAGE@
-Aldatu laburpena    : @SUMMARY@
-Erabiltzailea       : @USER@
-
-@DIFF@
diff --git a/wiki/inc/lang/eu/mailwrap.html b/wiki/inc/lang/eu/mailwrap.html
deleted file mode 100644
index d257190..0000000
--- a/wiki/inc/lang/eu/mailwrap.html
+++ /dev/null
@@ -1,13 +0,0 @@
-<html>
-<head>
-<title>@TITLE@</title>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-</head>
-<body>
-
-@HTMLBODY@
-
-<br /><hr />
-<small>@EMAILSIGNATURE@</small>
-</body>
-</html>
\ No newline at end of file
diff --git a/wiki/inc/lang/eu/newpage.txt b/wiki/inc/lang/eu/newpage.txt
deleted file mode 100644
index cac872c..0000000
--- a/wiki/inc/lang/eu/newpage.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Gai hau ez da existitzen oraindik ======
-
-Existitzen ez den gai batera doan lotura bat jarraitu duzu. Zuk zeuk sortu dezakezu ''Sortu orri hau'' erabiliz.
diff --git a/wiki/inc/lang/eu/norev.txt b/wiki/inc/lang/eu/norev.txt
deleted file mode 100644
index 7d9cc60..0000000
--- a/wiki/inc/lang/eu/norev.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Berrikuspen hau ez da existitzen ======
-
-Zehaztutako bertsioa ez da existitzen. Erabili ''Bertsio zaharrak'' dokumentu honen aurreko bertsioen zerrenda bat ikusi ahal izateko.
diff --git a/wiki/inc/lang/eu/password.txt b/wiki/inc/lang/eu/password.txt
deleted file mode 100644
index a9c079f..0000000
--- a/wiki/inc/lang/eu/password.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-Kaixo @FULLNAME@!
-
-Hau da zure erabiltzailea @TITLE@ -rentzako @DOKUWIKIURL@
-
-Erabiltzailea    : @LOGIN@
-Pasahitza : @PASSWORD@
diff --git a/wiki/inc/lang/eu/preview.txt b/wiki/inc/lang/eu/preview.txt
deleted file mode 100644
index 1f0d14f..0000000
--- a/wiki/inc/lang/eu/preview.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Aurreikuspena ======
-
-Hau zure testuaren aurrebista bat besterik ez da. Gogoratu: **ez da gorde** oraindik!
diff --git a/wiki/inc/lang/eu/pwconfirm.txt b/wiki/inc/lang/eu/pwconfirm.txt
deleted file mode 100644
index ee4e4f8..0000000
--- a/wiki/inc/lang/eu/pwconfirm.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-Kaixo @FULLNAME@!
-
-Norbaitek zure @TITLE@ erabiltzailearentzat pasahitz berria eskatu du @DOKUWIKIURL@ gunean.
-
-Ez baduzu zuk eskatu pasahitz berria, ez kasurik egin posta honi.
-
-Eskakizuna zuk bidalia dela egiaztatzeko, mesedez, ondorengo esteka erabili.
-
-@CONFIRM@
diff --git a/wiki/inc/lang/eu/read.txt b/wiki/inc/lang/eu/read.txt
deleted file mode 100644
index f7ed7b0..0000000
--- a/wiki/inc/lang/eu/read.txt
+++ /dev/null
@@ -1 +0,0 @@
-Orri hau irakurtzeko bakarrik da. Jatorria ikusi dezakezu baina ezin duzu aldatu. Administratzailearekin kontaktuan jarri  gaizki dagoela uste baduzu.
diff --git a/wiki/inc/lang/eu/recent.txt b/wiki/inc/lang/eu/recent.txt
deleted file mode 100644
index 4ab5482..0000000
--- a/wiki/inc/lang/eu/recent.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Azken Aldaketak ======
-
-Ondorengo orriak aldatu berriak izan dira:
diff --git a/wiki/inc/lang/eu/register.txt b/wiki/inc/lang/eu/register.txt
deleted file mode 100644
index 4a8a49b..0000000
--- a/wiki/inc/lang/eu/register.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Erregistratu erabiltzaile berri bezala ======
-
-Bete beheko informazio guztia wiki honetan kontu berri bat sortzeko. Ziurtatu **baliozko posta-e helbide** bat ematen duzula - ez bazaizu hemen eskatzen pasahitzik sartzeko, berri bat bidaliko zaizu helbide horretara. Saioa hasteko izenak baliozko [[doku>pagename|orri izena]] izan behar du.
\ No newline at end of file
diff --git a/wiki/inc/lang/eu/registermail.txt b/wiki/inc/lang/eu/registermail.txt
deleted file mode 100644
index a2897e6..0000000
--- a/wiki/inc/lang/eu/registermail.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-Erabiltzaile berri bat erregistratu da. Hona hemen xehetasunak:
-
-Erabiltzaile izena : @NEWUSER@
-Izen osoa : @NEWNAME@
-Posta-e : @NEWEMAIL@
-
-Data : @DATE@
-Nabigatzailea : @BROWSER@
-IP-Helbidea : @IPADDRESS@
-Hostalari izena : @HOSTNAME@
diff --git a/wiki/inc/lang/eu/resendpwd.txt b/wiki/inc/lang/eu/resendpwd.txt
deleted file mode 100644
index 98f261c..0000000
--- a/wiki/inc/lang/eu/resendpwd.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Bidali pasahitz berria ======
-
-Mesedez, sartu zure erabiltzaile izena beheko formularioan zure wiki honetako kontuarentzat pasahitz berria eskatzeko. Baieztapen esteka bat bidaliko zaizu erregistratutako  zure posta-e helbidera.
\ No newline at end of file
diff --git a/wiki/inc/lang/eu/resetpwd.txt b/wiki/inc/lang/eu/resetpwd.txt
deleted file mode 100644
index 9bb6e3a..0000000
--- a/wiki/inc/lang/eu/resetpwd.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-	====== Pasahitza berria ezarri ======
-
-Mesedez wiki honetako zure pasahitza berria sartu.
\ No newline at end of file
diff --git a/wiki/inc/lang/eu/revisions.txt b/wiki/inc/lang/eu/revisions.txt
deleted file mode 100644
index 203cb7e..0000000
--- a/wiki/inc/lang/eu/revisions.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Bertsio zaharrak ======
-
-Hauek egungo dokumentua baino zaharragoak diren bertsioak dira. Hauetako bertsio batetara itzultzeko aukera ezazu behetik, pultsatu ''Sortu orri hau'' eta gorde.
diff --git a/wiki/inc/lang/eu/searchpage.txt b/wiki/inc/lang/eu/searchpage.txt
deleted file mode 100644
index ebd31d0..0000000
--- a/wiki/inc/lang/eu/searchpage.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Bilaketa ======
-
-Emaitzak ondorengo aurkiketan bilatu ditzakezu. @CREATEPAGEINFO@
-
diff --git a/wiki/inc/lang/eu/showrev.txt b/wiki/inc/lang/eu/showrev.txt
deleted file mode 100644
index ad1b360..0000000
--- a/wiki/inc/lang/eu/showrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**Hau dokumentuaren bertsio zahar bat da!**
-----
diff --git a/wiki/inc/lang/eu/stopwords.txt b/wiki/inc/lang/eu/stopwords.txt
deleted file mode 100644
index 1aeb868..0000000
--- a/wiki/inc/lang/eu/stopwords.txt
+++ /dev/null
@@ -1,26 +0,0 @@
-# Lista hau, indexatzaileak alde batera uzten dituen hitzen zerrenda da, hitz bat lerroko
-# Fitxategi hau editatzean, ziurtatu UNIX lerro bukaerak (lerro berri bakarra) erabiltzen duzula
-# Ez dago 3 letra baino motzagoak diren hitzik sartu beharrik - bestela ere baztertuak dira
-# This list is based upon the ones found at http://www.ranks.nl/stopwords/
-# FITXATEGI HONEK BEGIRATU BAT BEHAR DU!
-buruz
-dira
-da
-eta
-zure
-haiek
-haien
-com
-nondik
-nora
-nola
-zer
-hau
-zen
-noiz
-non
-nor
-nork
-und
-the
-www
\ No newline at end of file
diff --git a/wiki/inc/lang/eu/subscr_digest.txt b/wiki/inc/lang/eu/subscr_digest.txt
deleted file mode 100644
index d4c32d7..0000000
--- a/wiki/inc/lang/eu/subscr_digest.txt
+++ /dev/null
@@ -1,16 +0,0 @@
-Kaixo!
-
-@TITLE@ wikiko @PAGE@ orria aldatu egin da.
-Hemen aldaketak:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-Berrikuste zaharra: @OLDPAGE@
-Berrikuste berria: @NEWPAGE@
-
-Orri jakinarazpenak ezeztatzeko, sartu wikian
-@DOKUWIKIURL@ helbidean, bisitatu
-@SUBSCRIBE@
-eta ezabatu orri eta/edo izen-espazio aldaketen harpidetza.
diff --git a/wiki/inc/lang/eu/subscr_form.txt b/wiki/inc/lang/eu/subscr_form.txt
deleted file mode 100644
index 02a1178..0000000
--- a/wiki/inc/lang/eu/subscr_form.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Harpidetza Kudeaketa ======
-
-Orri honek, oraingo orriko eta izen-espazioko harpidetzak kudeatzeko aukera ematen dizu.
\ No newline at end of file
diff --git a/wiki/inc/lang/eu/subscr_list.txt b/wiki/inc/lang/eu/subscr_list.txt
deleted file mode 100644
index 10037c3..0000000
--- a/wiki/inc/lang/eu/subscr_list.txt
+++ /dev/null
@@ -1,13 +0,0 @@
-Kaixo!
-
-@TITLE@ wikiko @PAGE@ izen-espazioko orri batzuk aldatu egin dira.
-Hemen aldatutako orriak:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-Orri jakinarazpenak ezeztatzeko, sartu wikian
-@DOKUWIKIURL@ helbidean, bisitatu
-@SUBSCRIBE@
-eta ezabatu orri eta/edo izen-espazio aldaketen harpidetza.
diff --git a/wiki/inc/lang/eu/subscr_single.txt b/wiki/inc/lang/eu/subscr_single.txt
deleted file mode 100644
index 13b1787..0000000
--- a/wiki/inc/lang/eu/subscr_single.txt
+++ /dev/null
@@ -1,19 +0,0 @@
-Kaixo!
-
-@TITLE@ wikiko @PAGE@ orria aldatu egin da.
-Hemen aldaketak:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-Data : @DATE@
-Erabiltzailea : @USER@
-Aldaketaren Laburpena: @SUMMARY@
-Berrikuste Zaharra: @OLDPAGE@
-Berrikuste Berria: @NEWPAGE@
-
-Orri jakinarazpenak ezeztatzeko, sartu wikian
-@DOKUWIKIURL@ helbidean, bisitatu
-@SUBSCRIBE@
-eta ezabatu orri eta/edo izen-espazio aldaketen harpidetza.
diff --git a/wiki/inc/lang/eu/updateprofile.txt b/wiki/inc/lang/eu/updateprofile.txt
deleted file mode 100644
index 233bfec..0000000
--- a/wiki/inc/lang/eu/updateprofile.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Eguneratu zure kontuaren profila ======
-
-Aldatu nahi dituzun atalak bakarrik bete behar dituzu. Ezin duzu zure erabiltzaile izena aldatu.
\ No newline at end of file
diff --git a/wiki/inc/lang/eu/uploadmail.txt b/wiki/inc/lang/eu/uploadmail.txt
deleted file mode 100644
index 7b685e0..0000000
--- a/wiki/inc/lang/eu/uploadmail.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-Fitxategi bat igo da zure DokuWikira. Hona hemen xehetasunak:
-
-Fitxategia : @MEDIA@
-Data : @DATE@
-Nabigatzailea : @BROWSER@
-IP-Helbide : @IPADDRESS@
-Hostalari izena : @HOSTNAME@
-Tamaina : @SIZE@
-MIME Mota : @MIME@
-Erabiltzailea : @USER@
diff --git a/wiki/inc/lang/fa/admin.txt b/wiki/inc/lang/fa/admin.txt
deleted file mode 100644
index e445b3b..0000000
--- a/wiki/inc/lang/fa/admin.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== مدیریت ======
-
-در اینجا Ùهرستی از وظیÙه‌های مدیریتی موجود در داکو ویکی را مشاهده می‌کنید.
\ No newline at end of file
diff --git a/wiki/inc/lang/fa/adminplugins.txt b/wiki/inc/lang/fa/adminplugins.txt
deleted file mode 100644
index dab0251..0000000
--- a/wiki/inc/lang/fa/adminplugins.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== برنامه‌های جانبی دیگر =====
\ No newline at end of file
diff --git a/wiki/inc/lang/fa/backlinks.txt b/wiki/inc/lang/fa/backlinks.txt
deleted file mode 100644
index 774d3d6..0000000
--- a/wiki/inc/lang/fa/backlinks.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== پیوندهای بازگشتی ======
-
-در این‌جا Ùهرستی از ØµÙØ­Ø§ØªÛŒ Ú©Ù‡ به این ØµÙØ­Ù‡ پیوند داده‌اند را مشاهده می‌کنید.
\ No newline at end of file
diff --git a/wiki/inc/lang/fa/conflict.txt b/wiki/inc/lang/fa/conflict.txt
deleted file mode 100644
index 9de0370..0000000
--- a/wiki/inc/lang/fa/conflict.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== یک نگارش جدید وجود دارد ======
-
-این نگارش جدید از مطلبی Ú©Ù‡ ویرایش کرده‌اید وجود دارد. این Ø§ØªÙØ§Ù‚ زمانی رخ می‌دهد Ú©Ù‡ یک کاربر دیگر زمانی Ú©Ù‡ شما ویرایش می‌کرده‌اید، ان را تغییر داده است.
-
-ØªÙØ§ÙˆØªâ€ŒÙ‡Ø§ÛŒ زیر را بررسی کنید، Ùˆ تصمیم بگیرید Ú©Ù‡ کدام نگارش Ø­ÙØ¸ شود. اگر دکمه‌ی «ذخیره» را Ø¨ÙØ´Ø§Ø±ÛŒØ¯ØŒ نسخه‌ی شما ذخیره می‌شود Ùˆ اگر دکمه‌ی «لغو» را Ø¨ÙØ´Ø§Ø±ÛŒØ¯ØŒ نسخه‌ی کنونی Ø­ÙØ¸ خواهد شد.
\ No newline at end of file
diff --git a/wiki/inc/lang/fa/denied.txt b/wiki/inc/lang/fa/denied.txt
deleted file mode 100644
index b3cb41c..0000000
--- a/wiki/inc/lang/fa/denied.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== دسترسی ممکن نیست ======
-
-متاسÙÙ…ØŒ شما اجازهٔ دسترسی به این ØµÙØ­Ù‡ را ندارید.
-
diff --git a/wiki/inc/lang/fa/diff.txt b/wiki/inc/lang/fa/diff.txt
deleted file mode 100644
index 80e1ce7..0000000
--- a/wiki/inc/lang/fa/diff.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== ØªÙØ§ÙˆØªâ€ŒÙ‡Ø§ ======
-
-ØªÙØ§ÙˆØª دو نسخهٔ Ù…ØªÙØ§ÙˆØª از ØµÙØ­Ù‡ را مشاهده می‌کنید.
\ No newline at end of file
diff --git a/wiki/inc/lang/fa/draft.txt b/wiki/inc/lang/fa/draft.txt
deleted file mode 100644
index 6ad1121..0000000
--- a/wiki/inc/lang/fa/draft.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== ÙØ§ÛŒÙ„ چرک‌نویس ÛŒØ§ÙØª شد ======
-
-آخرین سشن ویرایش شما با موÙقیت به پایان نرسیده. دوکوویکی به طور خودکار چرک‌نویسی از ØµÙØ­Ù‡â€ŒÛŒ شما ذخیره می‌کند Ú©Ù‡ شما می‌توانید آن را کامل کنید. در زیر مقادیر موجود در چرک‌نویس را مشاهده می‌کنید.
-
-خواهشمندیم تصمیم بگیرید Ú©Ù‡ می‌خواهید چرک‌نویس را //بازیابی//ØŒ یا آن را //حذÙ// کنید Ùˆ یا ویرایش را //لغو// نمایید.
\ No newline at end of file
diff --git a/wiki/inc/lang/fa/edit.txt b/wiki/inc/lang/fa/edit.txt
deleted file mode 100644
index 7c3873a..0000000
--- a/wiki/inc/lang/fa/edit.txt
+++ /dev/null
@@ -1 +0,0 @@
-این ØµÙØ­Ù‡ را ویرایش کنید Ùˆ کلید «ذخیره» را ÙØ´Ø§Ø± دهید. ØµÙØ­Ù‡ [[wiki:syntax|قوانین نگارشی]] را برای روش نگارش ویکی مشاهده کنید. خواهشمندیم Ùقط در صورتی این ØµÙØ­Ù‡ را ویرایش کنید Ú©Ù‡ توانایی **بهبود بخشیدن** به آن را دارید. اگر تصمیم دارید چیزی را تست کنید یا اولین قدم‌های‌تان را در نگارش ویکی بردارید، به [[playground:playground|زمین بازی]] بروید.
\ No newline at end of file
diff --git a/wiki/inc/lang/fa/editrev.txt b/wiki/inc/lang/fa/editrev.txt
deleted file mode 100644
index eae5394..0000000
--- a/wiki/inc/lang/fa/editrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**شما یک نگارش قدیمی را مشاهده می‌کنید!** اگر این نگارش را ذخیره کنید، شما یک نگارش جدید ایجاد کرده‌اید!
-----
\ No newline at end of file
diff --git a/wiki/inc/lang/fa/index.txt b/wiki/inc/lang/fa/index.txt
deleted file mode 100644
index 993c8d1..0000000
--- a/wiki/inc/lang/fa/index.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== نقشه‌ی سایت ======
-
-این ØµÙØ­Ù‡ حاوی Ùهرست تمامی ØµÙØ­Ø§Øª موجود به ترتیب [[doku>namespaces|ÙØ¶Ø§ÛŒâ€ŒÙ†Ø§Ù…‌ها]] است.
\ No newline at end of file
diff --git a/wiki/inc/lang/fa/install.html b/wiki/inc/lang/fa/install.html
deleted file mode 100644
index 7960f9c..0000000
--- a/wiki/inc/lang/fa/install.html
+++ /dev/null
@@ -1,12 +0,0 @@
-<p>این ØµÙØ­Ù‡ به شما در نصب Ùˆ تنظیم
-<a href="http://dokuwiki.org">Dokuwiki</a> کمک می‌کند. اطلاعات بیشتری در این مورد را می‌توانید در <a href="http://dokuwiki.org/installer">بخش راهنما</a> مشاهده کنید.</p>
-
-<p>DokuWiki از ÙØ§ÛŒÙ„‌های معمولی برای ذخیره‌ی ØµÙØ­Ø§Øª ویکی Ùˆ اطلاعات مربوط به آن‌ها Ø§Ø³ØªÙØ§Ø¯Ù‡ می‌کند (مثل تصاویر، Ùهرست‌های جستجو، نگارش‌های پیشین Ùˆ غیره). برای نصب موÙقیت آمیز DokuWiki
-<strong>باید</strong> دسترسی نوشتن برای شاخه‌های این ÙØ§ÛŒÙ„‌ها داشته باشید. این کار باید توسط دستورات خط ÙØ±Ù…ان Ùˆ یا دسترسی FTP Ùˆ یا از طریق کنترل پنل خدمات میزبانی‌تون انجام شود. </p>
-
-<p>این برنامه دسترسی‌های DokuWiki را برای شما تنظیم خواهد کرد،
-به این معنی Ú©Ù‡ مدیر سیستم می‌تواند به ØµÙØ­Ù‡â€ŒÛŒ مدیران وارد شود، Ø§ÙØ²ÙˆÙ†Ù‡ نصب کنید، کاربران را مدیریت کند، دسترسی به ØµÙØ­Ø§Øª ویکی را مدیریت کند Ùˆ یا تنظیمات را تغییر دهد.</p>
-
-<p>برای اطلاعات بیشتر در مورد نصب می‌توانید از این پیوند‌ها Ø§Ø³ØªÙØ§Ø¯Ù‡ کنید
-<a href="http://dokuwiki.org/install">روش نصب</a>
-و  <a href="http://dokuwiki.org/config">تنظیمات پیکربندی</a>.</p>
\ No newline at end of file
diff --git a/wiki/inc/lang/fa/jquery.ui.datepicker.js b/wiki/inc/lang/fa/jquery.ui.datepicker.js
deleted file mode 100644
index 71da498..0000000
--- a/wiki/inc/lang/fa/jquery.ui.datepicker.js
+++ /dev/null
@@ -1,73 +0,0 @@
-/* Persian (Farsi) Translation for the jQuery UI date picker plugin. */
-/* Javad Mowlanezhad -- jmowla@gmail.com */
-/* Jalali calendar should supported soon! (Its implemented but I have to test it) */
-( function( factory ) {
-	if ( typeof define === "function" && define.amd ) {
-
-		// AMD. Register as an anonymous module.
-		define( [ "../widgets/datepicker" ], factory );
-	} else {
-
-		// Browser globals
-		factory( jQuery.datepicker );
-	}
-}( function( datepicker ) {
-
-datepicker.regional.fa = {
-	closeText: "بستن",
-	prevText: "&#x3C;قبلی",
-	nextText: "بعدی&#x3E;",
-	currentText: "امروز",
-	monthNames: [
-		"ژانویه",
-		"Ùوریه",
-		"مارس",
-		"آوریل",
-		"مه",
-		"ژوئن",
-		"ژوئیه",
-		"اوت",
-		"سپتامبر",
-		"اکتبر",
-		"نوامبر",
-		"دسامبر"
-	],
-	monthNamesShort: [ "1","2","3","4","5","6","7","8","9","10","11","12" ],
-	dayNames: [
-		"يکشنبه",
-		"دوشنبه",
-		"سه‌شنبه",
-		"چهارشنبه",
-		"پنجشنبه",
-		"جمعه",
-		"شنبه"
-	],
-	dayNamesShort: [
-		"ی",
-		"د",
-		"س",
-		"Ú†",
-		"Ù¾",
-		"ج",
-		"Ø´"
-	],
-	dayNamesMin: [
-		"ی",
-		"د",
-		"س",
-		"Ú†",
-		"Ù¾",
-		"ج",
-		"Ø´"
-	],
-	weekHeader: "Ù‡Ù",
-	dateFormat: "yy/mm/dd",
-	firstDay: 6,
-	isRTL: true,
-	showMonthAfterYear: false,
-	yearSuffix: "" };
-datepicker.setDefaults( datepicker.regional.fa );
-
-return datepicker.regional.fa;
-
-} ) );
diff --git a/wiki/inc/lang/fa/lang.php b/wiki/inc/lang/fa/lang.php
deleted file mode 100644
index d1e16e7..0000000
--- a/wiki/inc/lang/fa/lang.php
+++ /dev/null
@@ -1,353 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author behrad eslamifar <behrad_es@yahoo.com)
- * @author Mohsen Firoozmandan <info@mambolearn.com>
- * @author Omid Mottaghi <omidmr@gmail.com>
- * @author Mohammad Reza Shoaei <shoaei@gmail.com>
- * @author Milad DZand <M.DastanZand@gmail.com>
- * @author AmirH Hassaneini <mytechmix@gmail.com>
- * @author mehrdad <mehrdad.jafari.bojd@gmail.com>
- * @author reza_khn <reza_khn@yahoo.com>
- * @author Hamid <zarrabi@sharif.edu>
- * @author Mohamad Mehdi Habibi <habibi.esf@gmail.com>
- * @author Mohammad Sadegh <msdn2013@gmail.com>
- * @author Omid Hezaveh <hezpublic@gmail.com>
- * @author Mohmmad Razavi <sepent@gmail.com>
- * @author Masoud Sadrnezhaad <masoud@sadrnezhaad.ir>
- * @author sam01 <m.sajad079@gmail.com>
- */
-$lang['encoding']              = 'utf-8';
-$lang['direction']             = 'rtl';
-$lang['doublequoteopening']    = '«';
-$lang['doublequoteclosing']    = '»';
-$lang['singlequoteopening']    = '‘';
-$lang['singlequoteclosing']    = '’';
-$lang['apostrophe']            = '’';
-$lang['btn_edit']              = 'ویرایش این ØµÙØ­Ù‡';
-$lang['btn_source']            = 'نمایش کد ØµÙØ­Ù‡';
-$lang['btn_show']              = 'نمایش ØµÙØ­Ù‡';
-$lang['btn_create']            = 'ایجاد این ØµÙØ­Ù‡';
-$lang['btn_search']            = 'جستجو';
-$lang['btn_save']              = 'ذخیره';
-$lang['btn_preview']           = 'پیش‌نمایش';
-$lang['btn_top']               = 'برگشت به بالا';
-$lang['btn_newer']             = 'نتایج بیشتر »';
-$lang['btn_older']             = '« نتایج کمتر';
-$lang['btn_revs']              = 'نگارش‌های پیشین';
-$lang['btn_recent']            = 'تغییرات اخیر';
-$lang['btn_upload']            = 'ارسال';
-$lang['btn_cancel']            = 'لغو';
-$lang['btn_index']             = 'Ùهرست';
-$lang['btn_secedit']           = 'ویرایش';
-$lang['btn_login']             = 'ورود به سیستم';
-$lang['btn_logout']            = 'خروج از سیستم';
-$lang['btn_admin']             = 'مدیر';
-$lang['btn_update']            = 'به‌روزرسانی';
-$lang['btn_delete']            = 'حذÙ';
-$lang['btn_back']              = 'عقب';
-$lang['btn_backlink']          = 'پیوندهای به این ØµÙØ­Ù‡';
-$lang['btn_subscribe']         = 'عضویت در تغییرات ØµÙØ­Ù‡';
-$lang['btn_profile']           = 'به‌روزرسانی Ù¾Ø±ÙˆÙØ§ÛŒÙ„';
-$lang['btn_reset']             = 'بازنشاندن';
-$lang['btn_resendpwd']         = 'تعیین گذرواژه‌ی جدید';
-$lang['btn_draft']             = 'ویرایش پیش‌نویس';
-$lang['btn_recover']           = 'بازیابی پیش‌نویس';
-$lang['btn_draftdel']          = 'حذ٠پیش‌نویس';
-$lang['btn_revert']            = 'بازیابی';
-$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']                  = 'گذرواژه‌';
-$lang['newpass']               = 'گذرواژه‌ی جدید';
-$lang['oldpass']               = 'گذرواژه‌ی ÙØ¹Ù„ÛŒ را تایید کنید';
-$lang['passchk']               = 'یک بار دیگر';
-$lang['remember']              = 'مرا به خاطر بسپار';
-$lang['fullname']              = 'نام واقعی شما';
-$lang['email']                 = 'ایمیل';
-$lang['profile']               = 'Ù¾Ø±ÙˆÙØ§ÛŒÙ„ کاربر';
-$lang['badlogin']              = 'متاسÙÙ…ØŒ نام کاربری یا رمز عبور اشتباه است.';
-$lang['badpassconfirm']        = 'متاسÙÙ…ØŒ رمز عبور اشتباه است';
-$lang['minoredit']             = 'ویرایش‌های Ø®ÙØ±Ø¯';
-$lang['draftdate']             = 'ذخیره خودکار پیش‌نویس در';
-$lang['nosecedit']             = 'این ØµÙØ­Ù‡ در این میان تغییر کرده است، اطلاعات بخش قدیمی شده است، در عوض محتوای Ú©Ù„ نمایش داده می‌شود.';
-$lang['regmissing']            = 'متاسÙÙ…ØŒ شما باید همه قسمت‌ها را پر کنید.';
-$lang['reguexists']            = 'نام کاربری‌ای Ú©Ù‡ وارد کردید قبلن Ø§Ø³ØªÙØ§Ø¯Ù‡ شده است.';
-$lang['regsuccess']            = 'کاربر ساخته شد و گذرواژه به صورت ایمیل ارسال گردید.';
-$lang['regsuccess2']           = 'حساب ایجاد شد.';
-$lang['regfail']               = 'ایجاد کاربر ممکن نیست.';
-$lang['regmailfail']           = 'مشکلی در ارسال ایمیل رمز عبور پیش آمده است، با مدیر تماس بگیرید!';
-$lang['regbadmail']            = 'نشانی واردشدهٔ ایمیل قابل‌قبول نیست، چرا Ú©Ù‡ دارای ساختار نامعتبری است. اگر Ùکر می‌کنید این یک ایراد سایت است با مدیر تماس بگیرید';
-$lang['regbadpass']            = 'گذرواژه‌هایی Ú©Ù‡ وارد کردید یکسان نیستند، Ù„Ø·ÙØ§Ù‹ یکبار دیگر تلاش کنید.';
-$lang['regpwmail']             = 'گذرواژه‌ی DokuWiki شما';
-$lang['reghere']               = 'شما هنوز حسابی در اینجا ندارید؟ یکی ایجاد کنید';
-$lang['profna']                = 'این ویکی اجازه ویرایش Ù¾Ø±ÙˆÙØ§ÛŒÙ„ را نمی‌دهد';
-$lang['profnochange']          = 'تغییری صورت Ù†Ú¯Ø±ÙØª.';
-$lang['profnoempty']           = 'نام و آدرس ایمیل باید پر شود.';
-$lang['profchanged']           = 'Ù¾Ø±ÙˆÙØ§ÛŒÙ„ کاربر با موÙقیت به روز شد.';
-$lang['profnodelete']          = 'این ویکی از حذ٠کاربران پشتیبانی نمی‌کند';
-$lang['profdeleteuser']        = 'حذ٠حساب کاربری';
-$lang['profdeleted']           = 'حساب کاربری شما از این ویکی حذ٠گردیده است';
-$lang['profconfdelete']        = 'می‌خواهم حساب کاربری من از این ویکی حذ٠شود. <br/> این عمل قابل برگشت نیست.';
-$lang['profconfdeletemissing'] = 'جعبهٔ تأیید تیک نخورده است';
-$lang['proffail']              = 'بروزرسانی Ù¾Ø±ÙˆÙØ§ÛŒÙ„ کاربری انجام نشد.';
-$lang['pwdforget']             = 'گذرواژه‌ی خود را ÙØ±Ø§Ù…وش کرده‌اید؟ گذرواژه‌ی جدید Ø¯Ø±ÛŒØ§ÙØª کنید';
-$lang['resendna']              = 'این ویکی ارسال مجدد گذرواژه را پشتیبانی نمی‌کند';
-$lang['resendpwd']             = 'تعیین کلمه عبور جدید برای ';
-$lang['resendpwdmissing']      = 'متاسÙÙ…ØŒ شما باید تمام قسمت‌ها را پر کنید.';
-$lang['resendpwdnouser']       = 'متاسÙÙ…ØŒ ما نتوانستیم این نام کاربری را در پایگاه دادهٔ خود پیدا کنیم.';
-$lang['resendpwdbadauth']      = 'متاسÙÙ…ØŒ کد شناسایی معتبر نیست. از صحت لینک تاییدیه اطمینان حاصل کنید.';
-$lang['resendpwdconfirm']      = 'یک لینک تاییدیه آدرس از طریق ایمیل ارسال شد.';
-$lang['resendpwdsuccess']      = 'گذرواژه‌ی جدید شما توسط ایمیل ارسال شد.';
-$lang['license']               = 'به جز مواردی که ذکر می‌شود، مابقی محتویات ویکی تحت مجوز زیر می‌باشند:';
-$lang['licenseok']             = 'توجه: با ویرایش این ØµÙØ­Ù‡ØŒ شما مجوز زیر را تایید می‌کنید:';
-$lang['searchmedia']           = 'نام ÙØ§ÛŒÙ„ برای جستجو:';
-$lang['searchmedia_in']        = 'جستجو در %s';
-$lang['txt_upload']            = 'ÙØ§ÛŒÙ„ را برای آپلود انتخاب کنید:';
-$lang['txt_filename']          = 'ارسال به صورت (اختیاری):';
-$lang['txt_overwrt']           = 'بر روی ÙØ§ÛŒÙ„ موجود بنویس';
-$lang['maxuploadsize']         = 'حداکثر %s برای هر ÙØ§ÛŒÙ„ مجاز است.';
-$lang['lockedby']              = 'در حال حاضر Ù‚ÙÙ„ شده است:';
-$lang['lockexpire']            = 'Ù‚ÙÙ„ منقضی می‌شود در:';
-$lang['js']['willexpire']      = 'حالت Ù‚ÙÙ„ شما مدتی است منقضی شده است \n برای جلوگیری از تداخل دکمه‌ی پیش‌نمایش را برای ØµÙØ± شدن ساعت Ù‚ÙÙ„ بزنید.';
-$lang['js']['notsavedyet']     = 'تغییرات ذخیره نشده از بین خواهد Ø±ÙØª.';
-$lang['js']['searchmedia']     = 'جستجو برای ÙØ§ÛŒÙ„‌ها';
-$lang['js']['keepopen']        = 'پنجره را در زمان انتخاب باز نگه‌دار';
-$lang['js']['hidedetails']     = 'پنهان کردن جزئیات';
-$lang['js']['mediatitle']      = 'تنظیمات پیوند';
-$lang['js']['mediadisplay']    = 'نوع پیوند';
-$lang['js']['mediaalign']      = 'هم‌ترازی';
-$lang['js']['mediasize']       = 'اندازه تصویر';
-$lang['js']['mediatarget']     = 'هد٠پیوند';
-$lang['js']['mediaclose']      = 'بستن';
-$lang['js']['mediainsert']     = 'درج کردن';
-$lang['js']['mediadisplayimg'] = 'نمایش تصویر.';
-$lang['js']['mediadisplaylnk'] = 'Ùقط پیوند را نمایش بده.';
-$lang['js']['mediasmall']      = 'نگارش کوچک';
-$lang['js']['mediamedium']     = 'نگارش متوسط';
-$lang['js']['medialarge']      = 'نگارش بزرگ';
-$lang['js']['mediaoriginal']   = 'نگارش اصلی';
-$lang['js']['medialnk']        = 'پیوند به ØµÙØ­Ù‡â€ŒÛŒ جزئیات';
-$lang['js']['mediadirect']     = 'پیوند مستقیم به اصلی';
-$lang['js']['medianolnk']      = 'بدون پیوند';
-$lang['js']['medianolink']     = 'تصویر را پیوند نکن';
-$lang['js']['medialeft']       = 'تصویر را با چپ هم‌تراز کن.';
-$lang['js']['mediaright']      = 'تصویر را با راست هم‌تراز کن.';
-$lang['js']['mediacenter']     = 'تصویر را با وسط هم‌تراز کن.';
-$lang['js']['medianoalign']    = 'هم‌تراز نکن.';
-$lang['js']['nosmblinks']      = 'پیوند به Windows share Ùقط در اینترنت‌اکسپلورر قابل Ø§Ø³ØªÙØ§Ø¯Ù‡ است.
-شما می‌توانید پیوند‌ها رو کپی کنید.';
-$lang['js']['linkwiz']         = 'ویزارد پیوند';
-$lang['js']['linkto']          = 'پیوند به:';
-$lang['js']['del_confirm']     = 'واقعا تصمیم به حذ٠این موارد دارید؟';
-$lang['js']['restore_confirm'] = 'آیا مطمئن هستید که می خواهید این نگارش را بازیابی کنید؟';
-$lang['js']['media_diff']      = 'ØªÙØ§ÙˆØª ها را ببینید: ';
-$lang['js']['media_diff_both'] = 'پهلو به پهلو';
-$lang['js']['media_diff_opacity'] = 'درخشش از';
-$lang['js']['media_diff_portions'] = 'Ú©Ø´ Ø±ÙØªÙ†';
-$lang['js']['media_select']    = 'انتخاب ÙØ§ÛŒÙ„‌ها...';
-$lang['js']['media_upload_btn'] = 'آپلود';
-$lang['js']['media_done_btn']  = 'انجام شد';
-$lang['js']['media_drop']      = 'ÙØ§ÛŒÙ„‌ها را در اینجا قرار دهید تا آپلود شود';
-$lang['js']['media_cancel']    = 'حذÙ';
-$lang['js']['media_overwrt']   = 'جاینوشت ÙØ§ÛŒÙ„‌های موجود';
-$lang['rssfailed']             = 'بروز خطا در هنگام واکشی این Ùید:';
-$lang['nothingfound']          = 'چیزی پیدا نشد.';
-$lang['mediaselect']           = 'ÙØ§ÛŒÙ„‌ها';
-$lang['uploadsucc']            = 'ارسال با موÙقیت انجام شد';
-$lang['uploadfail']            = 'خطا در ارسال. شاید دسترسی‌ها نادرست است؟';
-$lang['uploadwrong']           = 'ارسال متوق٠شد. این ÙØ±Ù…ت ÙØ§ÛŒÙ„ ممنوع می‌باشد.';
-$lang['uploadexist']           = 'این ÙØ§ÛŒÙ„ وجود دارد. عملی انجام نشد.';
-$lang['uploadbadcontent']      = 'محتوای ÙØ§ÛŒÙ„ آپلود شده با ÙØ±Ù…ت %s یکسان نیست.';
-$lang['uploadspam']            = 'ÙØ§ÛŒÙ„ ارسال شده توسط لیست سیاه اسپم‌ها مسدود شده است.';
-$lang['uploadxss']             = 'این ØµÙØ­Ù‡ حاوی اسکریپت یا کد اچ‌تی‌ام‌ال است Ú©Ù‡ ممکن است به نادرست توسط مرورگر وب ØªÙØ³ÛŒØ± شود.';
-$lang['uploadsize']            = 'ÙØ§ÛŒÙ„ ارسال شده سنگین است. (بیشینه، %s)';
-$lang['deletesucc']            = 'ÙØ§ÛŒÙ„ «%s» حذ٠شد.';
-$lang['deletefail']            = '«%s» حذ٠نمی‌شود، دسترسی‌ها را بررسی کنید.';
-$lang['mediainuse']            = 'ÙØ§ÛŒÙ„ «%s» حذ٠نمی‌شود، چون هنوز در حال Ø§Ø³ØªÙØ§Ø¯Ù‡ است.';
-$lang['namespaces']            = 'ÙØ¶Ø§ÛŒâ€ŒÙ†Ø§Ù…‌ها';
-$lang['mediafiles']            = 'ÙØ§ÛŒÙ„‌های موجود در';
-$lang['accessdenied']          = 'شما اجازهٔ مشاهدهٔ این ØµÙØ­Ù‡ را ندارید.';
-$lang['mediausage']            = 'برای ارجاع دادن به ÙØ§ÛŒÙ„ از نگارش زیر Ø§Ø³ØªÙØ§Ø¯Ù‡ کنید.';
-$lang['mediaview']             = 'مشاهدهٔ ÙØ§ÛŒÙ„ اصلی';
-$lang['mediaroot']             = 'ریشه';
-$lang['mediaupload']           = 'ارسال ÙØ§ÛŒÙ„ به ÙØ¶Ø§ÛŒâ€ŒÙ†Ø§Ù… کنونی. برای ایجاد Ø²ÛŒØ±ÙØ¶Ø§ÛŒâ€ŒÙ†Ø§Ù…‌ها، پس از انتخاب ÙØ§ÛŒÙ„‌ها در قسمت «ارسال به صورت» به نام ÙØ§ÛŒÙ„ نام‌های ÙØ¶Ø§ÛŒâ€ŒÙ†Ø§Ù…‌ها را به عنوان پیشوندهایی Ú©Ù‡ با دونقطه «:» جدا شده‌اند، اضاÙÙ‡ کنید. همچنین ÙØ§ÛŒÙ„‌ها می‌توانند با کشیدن Ùˆ ول کردن انتخاب شوند.';
-$lang['mediaextchange']        = 'ÙØ±Ù…ت ÙØ§ÛŒÙ„ از %s به %s تغییر داده شد.';
-$lang['reference']             = 'ارجاع‌های';
-$lang['ref_inuse']             = 'این ÙØ§ÛŒÙ„ نمی‌تواند حذ٠شود، زیرا هم‌چنان در این ØµÙØ­Ù‡ Ø§Ø³ØªÙØ§Ø¯Ù‡ شده است:';
-$lang['ref_hidden']            = 'تعدادی مرجع در ØµÙØ­Ø§ØªÛŒ Ú©Ù‡ شما دسترسی خواندن ندارید وجود دارد.';
-$lang['hits']                  = 'بازدیدها';
-$lang['quickhits']             = 'جور کردن نام ØµÙØ­Ø§Øª';
-$lang['toc']                   = 'Ùهرست مندرجات';
-$lang['current']               = 'ÙØ¹Ù„ÛŒ';
-$lang['yours']                 = 'نسخه‌ی شما';
-$lang['diff']                  = 'ØªÙØ§ÙˆØªâ€ŒÙ‡Ø§ را با نگارش کنونی نمایش بده.';
-$lang['diff2']                 = 'ØªÙØ§ÙˆØªâ€ŒÙ‡Ø§ را با نگارش انتخابی نمایش بده.';
-$lang['difflink']              = 'پیوند به ØµÙØ­Ù‡â€ŒÛŒ ØªÙØ§ÙˆØªâ€ŒÙ‡Ø§';
-$lang['diff_type']             = 'مشاهده تغییرات:';
-$lang['diff_inline']           = 'خطی';
-$lang['diff_side']             = 'کلی';
-$lang['diffprevrev']           = 'نگارش قبل';
-$lang['diffnextrev']           = 'نگارش بعد';
-$lang['difflastrev']           = 'آخرین نگارش';
-$lang['diffbothprevrev']       = 'نگارش قبل در دو طرÙ';
-$lang['diffbothnextrev']       = 'نگارش بعد در دو طرÙ';
-$lang['line']                  = 'خط';
-$lang['breadcrumb']            = 'ردپا:';
-$lang['youarehere']            = 'محل شما:';
-$lang['lastmod']               = 'آخرین ویرایش:';
-$lang['by']                    = 'توسط';
-$lang['deleted']               = 'حذ٠شد';
-$lang['created']               = 'ایجاد شد';
-$lang['restored']              = 'یک نگارش پیشین واگردانی شد. (%s)';
-$lang['external_edit']         = 'ویرایش خارجی';
-$lang['summary']               = 'پیش‌نمایش';
-$lang['noflash']               = 'برای نمایش محتویات <a href="http://www.adobe.com/products/flashplayer/">Ø§ÙØ²ÙˆÙ†Ù‡â€ŒÛŒ Ùلش</a> مورد نیاز است.';
-$lang['download']              = 'Ø¯ÛŒØ§ÙØª ÙØ§ÛŒÙ„ منقطع گردید';
-$lang['tools']                 = 'ابزار';
-$lang['user_tools']            = 'ابزار کاربر';
-$lang['site_tools']            = 'ابزار سایت';
-$lang['page_tools']            = 'ابزار ØµÙØ­Ù‡';
-$lang['skip_to_content']       = 'پرش به محتوا';
-$lang['sidebar']               = 'نوار کناری';
-$lang['mail_newpage']          = 'ØµÙØ­Ù‡ اضاÙÙ‡ شد:';
-$lang['mail_changed']          = 'ØµÙØ­Ù‡ تغییر داده شد:';
-$lang['mail_subscribe_list']   = 'ØµÙØ­Ø§Øª تغییر داده شده در ÙØ¶Ø§ÛŒâ€ŒÙ†Ø§Ù…';
-$lang['mail_new_user']         = 'کاربر جدید:';
-$lang['mail_upload']           = 'ÙØ§ÛŒÙ„ ارسال شده:';
-$lang['changes_type']          = 'دیدن تغییرات';
-$lang['pages_changes']         = 'ØµÙØ­Ø§Øª';
-$lang['media_changes']         = 'ÙØ§ÛŒÙ„های چند رسانه ای';
-$lang['both_changes']          = 'ØµÙØ­Ø§Øª Ùˆ ÙØ§ÛŒÙ„ های چند رسانه ای هر دو';
-$lang['qb_bold']               = 'متن Ù¾ÙØ±Ø±Ù†Ú¯';
-$lang['qb_italic']             = 'متن ایتالیک';
-$lang['qb_underl']             = 'متن زیرخط‌دار';
-$lang['qb_code']               = 'کد';
-$lang['qb_strike']             = 'متن وسط‌خط‌دار';
-$lang['qb_h1']                 = 'عنوان سطح ۱';
-$lang['qb_h2']                 = 'عنوان سطح ۲';
-$lang['qb_h3']                 = 'عنوان سطح ۳';
-$lang['qb_h4']                 = 'عنوان سطح ۴';
-$lang['qb_h5']                 = 'عنوان سطح ۵';
-$lang['qb_h']                  = 'تیتر';
-$lang['qb_hs']                 = 'تیتر مورد نظر را انتخاب نمایید';
-$lang['qb_hplus']              = 'تیتر بالاتر';
-$lang['qb_hminus']             = 'تیتر پایین تر';
-$lang['qb_hequal']             = 'تیتر در یک سطح';
-$lang['qb_link']               = 'پیوند داخلی';
-$lang['qb_extlink']            = 'پیوند به بیرون (پیشوند http:// را ÙØ±Ø§Ù…وش نکنید)';
-$lang['qb_hr']                 = 'خط اÙÙ‚ÛŒ';
-$lang['qb_ol']                 = 'لیست‌های مرتب';
-$lang['qb_ul']                 = 'لیست‌های بدون ترتیب';
-$lang['qb_media']              = 'Ø§ÙØ²ÙˆØ¯Ù† تصویر Ùˆ ÙØ§ÛŒÙ„';
-$lang['qb_sig']                = 'Ø§ÙØ²ÙˆØ¯Ù† امضا';
-$lang['qb_smileys']            = 'Ø´Ú©Ù„Ú©';
-$lang['qb_chars']              = 'حرو٠ویژه';
-$lang['upperns']               = 'پرش به ÙØ¶Ø§ÛŒâ€ŒÙ†Ø§Ù… بالا';
-$lang['metaedit']              = 'ویرایش داده‌های متا';
-$lang['metasaveerr']           = 'نوشتن داده‌نما با مشکل مواجه شد';
-$lang['metasaveok']            = 'داده‌نما ذخیره شد';
-$lang['img_title']             = 'عنوان تصویر:';
-$lang['img_caption']           = 'عنوان:';
-$lang['img_date']              = 'تاریخ:';
-$lang['img_fname']             = 'نام ÙØ§ÛŒÙ„:';
-$lang['img_fsize']             = 'اندازه:';
-$lang['img_artist']            = 'عکاس/هنرمند:';
-$lang['img_copyr']             = 'دارنده‌ی حق تکثیر:';
-$lang['img_format']            = 'ÙØ±Ù…ت:';
-$lang['img_camera']            = 'دوربین:';
-$lang['img_keywords']          = 'واژه‌های کلیدی:';
-$lang['img_width']             = 'عرض:';
-$lang['img_height']            = 'Ø§Ø±ØªÙØ§Ø¹:';
-$lang['subscr_subscribe_success'] = '%s به لیست آبونه %s Ø§ÙØ²ÙˆØ¯Ù‡ شد';
-$lang['subscr_subscribe_error'] = 'اشکال در Ø§ÙØ²ÙˆØ¯Ù† %s به لیست آبونه %s';
-$lang['subscr_subscribe_noaddress'] = 'هیچ آدرسی برای این عضویت اضاÙÙ‡ نشده است، شما نمی‌توانید به لیست آبونه اضاÙÙ‡ شوید';
-$lang['subscr_unsubscribe_success'] = '%s از لیست آبونه %s پاک شد';
-$lang['subscr_unsubscribe_error'] = 'اشکال در پاک کردن %s از لیست آبونه %s';
-$lang['subscr_already_subscribed'] = '%s پیش‌تر در %s آبونه شده است';
-$lang['subscr_not_subscribed'] = '%s در %s آبونه نشده است';
-$lang['subscr_m_not_subscribed'] = 'شما در این ØµÙØ­Ù‡ یا ÙØ¶Ø§ÛŒâ€ŒÙ†Ø§Ù… آبونه نشده‌اید';
-$lang['subscr_m_new_header']   = 'Ø§ÙØ²ÙˆØ¯Ù† آبونه';
-$lang['subscr_m_current_header'] = 'آبونه‌های کنونی';
-$lang['subscr_m_unsubscribe']  = 'لغو آبونه';
-$lang['subscr_m_subscribe']    = 'آبونه شدن';
-$lang['subscr_m_receive']      = 'Ø¯Ø±ÛŒØ§ÙØª کردن';
-$lang['subscr_style_every']    = 'ارسال رای‌نامه در تمامی تغییرات';
-$lang['subscr_style_digest']   = 'ایمیل خلاصه‌ی تغییرات هر روز (هر %.2f روز)';
-$lang['subscr_style_list']     = 'Ùهرست ØµÙØ­Ø§Øª ØªØºÛŒÛŒØ±ÛŒØ§ÙØªÙ‡ از آخرین ایمیل (هر %.2f روز)';
-$lang['authtempfail']          = 'معتبرسازی کابران موقتن مسدود می‌باشد. اگر این حالت پایدار بود، مدیر ویکی را باخبر سازید.';
-$lang['i_chooselang']          = 'انتخاب زبان';
-$lang['i_installer']           = 'نصب کننده‌ی دوکوویکی';
-$lang['i_wikiname']            = 'نام ویکی';
-$lang['i_enableacl']           = 'ÙØ¹Ø§Ù„ بودن کنترل دسترسی‌ها (توصیه شده)';
-$lang['i_superuser']           = 'کاربر اصلی';
-$lang['i_problems']            = 'نصب کننده با مشکلات زیر مواجه شد. در صورت Ø±ÙØ¹ این مشکلات، امکان ادامه نصب خواهد بود.';
-$lang['i_modified']            = 'به دلایل امنیتی، این اسکریپت Ùقط با نصب تازه Ùˆ بدون تغییر دوکوویکی کار خواهد کرد. شما باید دوباره ÙØ§ÛŒÙ„ ÙØ´Ø±Ø¯Ù‡ را باز کنید <a href="http://dokuwiki.org/install">راهنمای نصب DokuWiki</a> را بررسی کنید.';
-$lang['i_funcna']              = 'تابع <code>%s</code> در پی‌اچ‌پی موجود نیست. ممکن است شرکت خدمات وب شما آن را مسدود کرده باشد.';
-$lang['i_phpver']              = 'نگارش پی‌اچ‌پی <code>%s</code> پایین‌تر از نگارش مورد نیاز، یعنی <code>%s</code> است. خواهشمندیم به روز رسانی کنید.';
-$lang['i_mbfuncoverload']      = 'برای اجرای دوکوویکی باید mbstring.func_overload را در php.ini ØºÛŒØ±ÙØ¹Ø§Ù„ کنید.';
-$lang['i_permfail']            = 'شاخه‌ی <code>%s</code> قابلیت نوشتن ندارد. شما باید دسترسی‌های این شاخه را تنظیم کنید!';
-$lang['i_confexists']          = '<code>%s</code> پیش‌تر موجود است';
-$lang['i_writeerr']            = 'توانایی ایجاد <code>%s</code> نیست. شما باید دسترسی‌های شاخه یا ÙØ§ÛŒÙ„ را بررسی کنید Ùˆ ÙØ§ÛŒÙ„ را به طور دستی ایجاد کنید.';
-$lang['i_badhash']             = 'ÙØ§ÛŒÙ„ dokuwiki.php غیرقابل تشخیص بوده یا تغییر کرده است (hash=<code>%s</code>)';
-$lang['i_badval']              = '<code>%s</code> - غیرقانونی و یا مقادیر تهی';
-$lang['i_success']             = 'تنظیمات با موÙقیت به پایان رسید. بهتر است ÙØ§ÛŒÙ„ install.php را حذ٠کنید. برای ادامه <a href="doku.php?id=wiki:welcome">این‌جا</a> کلیک کنید.';
-$lang['i_failure']             = 'مشکلاتی در زمان نوشتن ÙØ§ÛŒÙ„ تنظیمات پیش آمده است. شما باید این مشکلات را پیش از Ø§Ø³ØªÙØ§Ø¯Ù‡ از <a href="doku.php?id=wiki:welcome">DokuWiki</a> برطر٠کنید.';
-$lang['i_policy']              = 'کنترل دسترسی‌های اولیه';
-$lang['i_pol0']                = 'ویکی باز (همه می‌توانند بخوانند، بنویسند Ùˆ ÙØ§ÛŒÙ„ ارسال کنند)';
-$lang['i_pol1']                = 'ویکی عمومی (همه می‌توانند بخوانند، کاربران ثبت شده می‌توانند بنویسند Ùˆ ÙØ§ÛŒÙ„ ارسال کنند)';
-$lang['i_pol2']                = 'ویکی بسته (Ùقط کاربران ثبت شده می‌توانند بخوانند، بنویسند Ùˆ ÙØ§ÛŒÙ„ ارسال کنند)';
-$lang['i_allowreg']            = 'اجازه دهید که کاربران خود را ثبت نام کنند';
-$lang['i_retry']               = 'تلاش مجدد';
-$lang['i_license']             = 'Ù„Ø·ÙØ§Ù‹ مجوزی Ú©Ù‡ می‌خواهید برای محتوایتان Ø§Ø³ØªÙØ§Ø¯Ù‡ کنید را وارد کنید:';
-$lang['i_license_none']        = 'هیچ اطلاعات مجوزی را نشان نده';
-$lang['i_pop_field']           = 'Ù„Ø·ÙØ§Ù‹ به ما Ú©Ù…Ú© کنید تا تجربهٔ دوکوویکی را بهبود دهیم.';
-$lang['i_pop_label']           = 'ماهی یک بار، اطلاعات ناشناس دربارهٔ نحوهٔ Ø§Ø³ØªÙØ§Ø¯Ù‡ به توسعه‌دهندگان دوکوویکی ارسال Ú©Ù†';
-$lang['recent_global']         = 'شما هم‌اکنون تغییرات ÙØ¶Ø§ÛŒâ€ŒÙ†Ø§Ù… <b>%s</b> را مشاهده می‌کنید. شما هم‌چنین می‌توانید <a href="%s">تغییرات اخیر در Ú©Ù„ ویکی را مشاهده نمایید</a>.';
-$lang['years']                 = '%d سال پیش';
-$lang['months']                = '%d ماه پیش';
-$lang['weeks']                 = '%d Ù‡ÙØªÙ‡â€ŒÛŒ پیش';
-$lang['days']                  = '%d روز پیش';
-$lang['hours']                 = '%d ساعت پیش';
-$lang['minutes']               = '%d دقیقه‌ی پیش';
-$lang['seconds']               = '%d ثانیه‌ی پیش';
-$lang['wordblock']             = 'تغییرات شما به دلیل داشتن محتوای مشکوک (مثل اسپم) ذخیره نشد.';
-$lang['media_uploadtab']       = 'آپلود';
-$lang['media_searchtab']       = 'جستجو';
-$lang['media_file']            = 'ÙØ§ÛŒÙ„';
-$lang['media_viewtab']         = 'دیدن';
-$lang['media_edittab']         = 'ویرایش';
-$lang['media_historytab']      = 'تاریخچه';
-$lang['media_list_thumbs']     = 'ریز عکسها';
-$lang['media_list_rows']       = 'سطرها';
-$lang['media_sort_name']       = 'نام';
-$lang['media_sort_date']       = 'تاریخ';
-$lang['media_namespaces']      = 'انتخاب ÙØ¶Ø§ÛŒ نام';
-$lang['media_files']           = 'ÙØ§ÛŒÙ„ در %s';
-$lang['media_upload']          = 'آپلود به %s';
-$lang['media_search']          = 'جستجو در %s';
-$lang['media_view']            = '%s';
-$lang['media_viewold']         = '%s در %s';
-$lang['media_edit']            = 'ویرایش %s';
-$lang['media_history']         = 'تاریخچهٔ %s';
-$lang['media_meta_edited']     = 'ÙØ±Ø§Ø¯Ø§Ø¯Ù‡â€ŒÙ‡Ø§ ویرایش شدند.';
-$lang['media_perm_read']       = 'Ù…ØªØ§Ø³ÙØ§Ù†Ù‡ شما دسترسی‌های لازم برای خواندن این ÙØ§ÛŒÙ„‌ها را ندارید.';
-$lang['media_perm_upload']     = 'Ù…ØªØ§Ø³ÙØ§Ù†Ù‡ شما دسترسی‌های لازم برای آپلود این ÙØ§ÛŒÙ„‌ها را ندارید.';
-$lang['media_update']          = 'آپلود نسخه‌ی جدید';
-$lang['media_restore']         = 'بازیابی این نسخه';
-$lang['media_acl_warning']     = 'این لیست ممکن است به خاطر محدودیتهای دسترسیهای ACL Ùˆ ØµÙØ­Ø§Øª پنهان کامل نباشد.';
-$lang['currentns']             = 'ÙØ¶Ø§ÛŒ نام جاری';
-$lang['searchresult']          = 'نتیجه‌ی جستجو';
-$lang['plainhtml']             = 'HTML ساده';
-$lang['wikimarkup']            = 'نشانه‌گذاری ویکی';
-$lang['page_nonexist_rev']     = 'ØµÙØ­Ù‡ %s وجود نداشت. این ØµÙØ­Ù‡ معاقباً در<a href="%s">%s</a> ایجاد شد.';
-$lang['unable_to_parse_date']  = 'امکان تجزیه و تحلیل پارامتر «%s» وجود ندارد.';
-$lang['email_signature_text']  = 'این ایمیل توسط دوکوویکی تولید شده است
-@DOKUWIKIURL@';
diff --git a/wiki/inc/lang/fa/locked.txt b/wiki/inc/lang/fa/locked.txt
deleted file mode 100644
index 2c0ca88..0000000
--- a/wiki/inc/lang/fa/locked.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Ù‚ÙÙ„ شده است ======
-
-این ØµÙØ­Ù‡ توسط یک کاربر دیگر، برای ویرایش، Ù‚ÙÙ„ شده است. شما باید تا پایان ویرایش این کاربر یا منقضی شدن Ù‚ÙÙ„ صبر کنید.
\ No newline at end of file
diff --git a/wiki/inc/lang/fa/login.txt b/wiki/inc/lang/fa/login.txt
deleted file mode 100644
index 0b1b3f9..0000000
--- a/wiki/inc/lang/fa/login.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== ورود ======
-
-شما وارد سایت نشده‌اید! موارد زیر را تایپ کنید تا وارد شوید. برای ورود، نیاز دارید Ú©Ù‡ کوکی‌های مرورگر ÙØ¹Ø§Ù„ باشد.
\ No newline at end of file
diff --git a/wiki/inc/lang/fa/mailtext.txt b/wiki/inc/lang/fa/mailtext.txt
deleted file mode 100644
index b51be6b..0000000
--- a/wiki/inc/lang/fa/mailtext.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-یک ØµÙØ­Ù‡ در ویکی Ø§ÙØ²ÙˆØ¯Ù‡ شده یا تغییر کرده، اطلاعات آن را می‌توانید در زیر بینید:
-
-تاریخ: @DATE@
-مرورگر: @BROWSER@
-آدرس IP: @IPADDRESS@
-نام هوست: @HOSTNAME@
-نگارش پیشین: @OLDPAGE@
-نگارش نو: @NEWPAGE@
-خلاصه ویرایش: @SUMMARY@
-کاربر: @USER@
-
-@DIFF@
diff --git a/wiki/inc/lang/fa/mailwrap.html b/wiki/inc/lang/fa/mailwrap.html
deleted file mode 100644
index d257190..0000000
--- a/wiki/inc/lang/fa/mailwrap.html
+++ /dev/null
@@ -1,13 +0,0 @@
-<html>
-<head>
-<title>@TITLE@</title>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-</head>
-<body>
-
-@HTMLBODY@
-
-<br /><hr />
-<small>@EMAILSIGNATURE@</small>
-</body>
-</html>
\ No newline at end of file
diff --git a/wiki/inc/lang/fa/newpage.txt b/wiki/inc/lang/fa/newpage.txt
deleted file mode 100644
index 06377a9..0000000
--- a/wiki/inc/lang/fa/newpage.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== این ØµÙØ­Ù‡ وجود ندارد ======
-
-شما به این ØµÙØ­Ù‡ Ú©Ù‡ وجود ندارد رسیده‌اید. اگر دسترسی‌ها به شما اجازه می‌دهند، می‌توانید این ØµÙØ­Ù‡ را با کلیلک کردن روی دکمه‌ی «ساخت این ØµÙØ­Ù‡Â» ایجاد کنید.
\ No newline at end of file
diff --git a/wiki/inc/lang/fa/norev.txt b/wiki/inc/lang/fa/norev.txt
deleted file mode 100644
index 186e374..0000000
--- a/wiki/inc/lang/fa/norev.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== نگارشی ÛŒØ§ÙØª نشد ======
-
-نگارش مورد نظر ÛŒØ§ÙØª نشد. از دکمه‌ی «نگارش‌های پیشین» برای مشاهده‌ی نگارش‌های پیشین این ØµÙØ­Ù‡ Ø§Ø³ØªÙØ§Ø¯Ù‡ کنید.
\ No newline at end of file
diff --git a/wiki/inc/lang/fa/password.txt b/wiki/inc/lang/fa/password.txt
deleted file mode 100644
index 86e7289..0000000
--- a/wiki/inc/lang/fa/password.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-سلام @FULLNAME@!
-
-اطلاعات شخصی شما با عنوان @TITLE@ در @DOKUWIKIURL@ در ادامه آمده است:
-
-نام کاربری: @LOGIN@
-گذرواژه: @PASSWORD@
diff --git a/wiki/inc/lang/fa/preview.txt b/wiki/inc/lang/fa/preview.txt
deleted file mode 100644
index 727aa70..0000000
--- a/wiki/inc/lang/fa/preview.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== پیش‌نمایش ======
-
-این پیش‌نمایش متن شماست. به یاد داشته باشید که این متن هنوز **ذخیره نشده‌است**!
\ No newline at end of file
diff --git a/wiki/inc/lang/fa/pwconfirm.txt b/wiki/inc/lang/fa/pwconfirm.txt
deleted file mode 100644
index e97b612..0000000
--- a/wiki/inc/lang/fa/pwconfirm.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-سلام @FULLNAME@!
-
-یک Ù†ÙØ± با عنوان @TITLE@ برای ورود به @DOKUWIKIURL@ درخواست گذرواژه‌ای جدید کرده است:
-
-اگر شما چنین درخواستی نداده‌اید، به این ایمیل توجه نکنید.
-
-اگر این درخواست توسط شما داده شده است، برای تایید روی لینک زیر کلیک کنید.
-
-@CONFIRM@
diff --git a/wiki/inc/lang/fa/read.txt b/wiki/inc/lang/fa/read.txt
deleted file mode 100644
index 1acfdb4..0000000
--- a/wiki/inc/lang/fa/read.txt
+++ /dev/null
@@ -1 +0,0 @@
-این ØµÙØ­Ù‡ Ùقط خواندنی است. شما می‌توانید متن ØµÙØ­Ù‡ را مشاهده کنید، اما نمی‌توانید آن را تغییر دهید. اگر Ùکر می‌کنید Ú©Ù‡ مشکلی رخ داده است، مدیر ویکی را در جریان بگذارید.
\ No newline at end of file
diff --git a/wiki/inc/lang/fa/recent.txt b/wiki/inc/lang/fa/recent.txt
deleted file mode 100644
index a3d0c55..0000000
--- a/wiki/inc/lang/fa/recent.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== تغییرات اخیر ======
-
-این ØµÙØ­Ù‡â€ŒÙ‡Ø§ به تازگی تغییر کرده‌اند.
\ No newline at end of file
diff --git a/wiki/inc/lang/fa/register.txt b/wiki/inc/lang/fa/register.txt
deleted file mode 100644
index c6e1f0d..0000000
--- a/wiki/inc/lang/fa/register.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== ثبت نام ======
-
-تمامی Ùیلدها را پر کنید Ùˆ اطمینان پیدا کنید Ú©Ù‡ ایمیل معتبر وارد کرده‌اید - اگر شما گذرواژه‌ای وارد نکردید، یک مقدار جدید برای‌تان ارسال خواهد شد. نام کاربری شما باید یک [[doku>pagename|ØµÙØ­Ù‡â€ŒÛŒ]] معتبر باشد.
\ No newline at end of file
diff --git a/wiki/inc/lang/fa/registermail.txt b/wiki/inc/lang/fa/registermail.txt
deleted file mode 100644
index f69460f..0000000
--- a/wiki/inc/lang/fa/registermail.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-یک کاربر تازه با مشخصات زیر عضو ویکی شده است:
-
-نام کاربری: @NEWUSER@
-اسم کامل: @NEWNAME@
-ایمیل: @NEWEMAIL@
-
-تاریخ: @DATE@
-مرورگر: @BROWSER@
-آدرس IP: @IPADDRESS@
-نام هوست: @HOSTNAME@
diff --git a/wiki/inc/lang/fa/resendpwd.txt b/wiki/inc/lang/fa/resendpwd.txt
deleted file mode 100644
index 75ace99..0000000
--- a/wiki/inc/lang/fa/resendpwd.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== ارسال گذرواژه‌ی جدید ======
-
-خواهش‌مندیم نام کاربری خود را در ÙØ±Ù… زیر بنویسید تا گذرواژه‌ی جدید برای‌تان ارسال شود. یک پیوند تاییدیه برای ایمیل ثبت شده ارسال می‌شود.
\ No newline at end of file
diff --git a/wiki/inc/lang/fa/resetpwd.txt b/wiki/inc/lang/fa/resetpwd.txt
deleted file mode 100644
index 6a1355e..0000000
--- a/wiki/inc/lang/fa/resetpwd.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== تعیین کلمه عبور جدید ======
-
-Ù„Ø·ÙØ§Ù‹ یک کلمه عبور جدید برای حساب کاربری خود در این ویکی ایجاد کنید.
\ No newline at end of file
diff --git a/wiki/inc/lang/fa/revisions.txt b/wiki/inc/lang/fa/revisions.txt
deleted file mode 100644
index 7714ae6..0000000
--- a/wiki/inc/lang/fa/revisions.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== نگارش‌های پیشین ======
-
-در اینجا نگارش‌های پیشین این ØµÙØ­Ù‡ را مشاهده می‌کنید. برای بازگشتن به آن‌ها، آن را انتخاب کنید Ùˆ کلید «ویرایش این ØµÙØ­Ù‡Â» را انتخاب کنید Ùˆ سپس ذخیره نمایید.
\ No newline at end of file
diff --git a/wiki/inc/lang/fa/searchpage.txt b/wiki/inc/lang/fa/searchpage.txt
deleted file mode 100644
index 50d872e..0000000
--- a/wiki/inc/lang/fa/searchpage.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== جستجو ======
-
-نتایج جستجو در زیر آمده است. @CREATEPAGEINFO@
-
diff --git a/wiki/inc/lang/fa/showrev.txt b/wiki/inc/lang/fa/showrev.txt
deleted file mode 100644
index 2117ee6..0000000
--- a/wiki/inc/lang/fa/showrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**این یک نگارش قدیمی از این مطلب است!**
-----
\ No newline at end of file
diff --git a/wiki/inc/lang/fa/stopwords.txt b/wiki/inc/lang/fa/stopwords.txt
deleted file mode 100644
index 58d3ca0..0000000
--- a/wiki/inc/lang/fa/stopwords.txt
+++ /dev/null
@@ -1,445 +0,0 @@
-# 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/
-about
-are
-as
-an
-and
-you
-your
-them
-their
-com
-for
-from
-into
-if
-in
-is
-it
-how
-of
-on
-or
-that
-the
-this
-to
-was
-what
-when
-where
-who
-will
-with
-und
-the
-www
-من
-تو
-او
-ما
-شما
-آنها
-ایشان
-ایشون
-از
-Ùˆ
-را
-ای
-یا
-باید
-شاید
-چرا
-چون
-چگونه
-Ú†Ù‡
-اگر
-الان
-سلام
-ممنون
-موÙÙ‚
-باشید
-باش
-باشند
-باشی
-باشم
-باشد
-است
-نیست
-شد
-شدن
-شدند
-شدیم
-شدید
-درباره
-یک
-دو
-سه
-چهار
-پنج
-شش
-Ù‡ÙØª
-هشت
-ده
-در
-هست
-هستم
-هستی
-هستیم
-هستید
-هستند
-برای
-این
-آن
-اون
-روی
-رو
-بود
-بودم
-بودی
-بودیم
-بودید
-بودند
-کجا
-کی
-با
-کس
-کسی
-پیرامون
-نزدیک
-بالا
-پایین
-بالای
-بالاتر
-مواÙÙ‚
-مطابق
-طبق
-برطبق
-همان
-سر
-درمیان
-عرض
-طرÙ
-عملا
-واقعا
-بعد
-قبل
-جستجو
-سپس
-دوباره
-Ø±ÙØªÙ…
-Ø±ÙØªÛŒ
-Ø±ÙØª
-Ø±ÙØªÛŒÙ…
-Ø±ÙØªÛŒØ¯
-Ø±ÙØªÙ†Ø¯
-بای
-اوه
-آه
-اه
-برابر
-بااینکه
-همواره
-همیشه
-پیوسته
-وقت
-هزار
-دیگر
-جدا
-شخص
-کدام
-هیچگونه
-بهرحال
-هرچیز
-هیچکار
-درهرصورت
-پدیدار
-درک
-باشه
-جنوب
-ضبط
-حوالی
-نزدیکی
-چنانچه
-بطوریکه
-هنگامیکه
-مثال
-مانند
-پرسیدن
-جویا
-خواهش
-خواستن
-انجمن
-کنار
-پیک
-بیرون
-خارج
-مرتبا
-آغاز
-پایان
-آمد
-امد
-به
-زیرا
-چونکه
-آمدن
-بودن
-درخور
-بوده
-پیش
-پس
-قبلا
-راحت
-مقدم
-کار
-برو
-بیا
-باور
-گمان
-بمیر
-Ú†Ù¾
-راست
-شمال
-غرب
-شرق
-دور
-گذشته
-آینده
-بهتر
-بهترین
-بدترین
-عظیم
-Ú©ÙˆÚ†Ú©
-نیک
-بدتر
-خوب
-بد
-زشت
-میان
-هردو
-هم
-یکی
-کوتاه
-بلند
-مختصر
-Ø­Ú©Ù…
-اما
-ولی
-لیکن
-حز
-مگر
-Ùقط
-بدون
-محض
-بخش
-بدست
-وسیله
-درجه
-اول
-دوم
-سوم
-چهارم
-پنجم
-ششم
-Ù‡ÙØªÙ…
-هشتم
-نهم
-دهم
-امکان
-داشتن
-داشتیم
-داشتی
-داشتند
-داشتید
-سبب
-علت
-موجب
-هدÙ
-ØµÙØ±
-محتوی
-دارا
-شامل
-نیا
-چیز
-نرو
-مسیر
-روش
-جهت
-دقیقا
-درطی
-درضمن
-بسرعت
-رایج
-جاری
-طورقطعی
-شرح
-کرد
-انجام
-عدد
-غیر
-بریم
-کاملا
-قلم
-آب
-سایه
-مساوی
-صاÙ
-هموار
-حتی
-Ø¬ÙØª
-هرگز
-درست
-کامل
-چنین
-دومین
-سومین
-چهارمین
-پنجمین
-ششمین
-هشتمین
-نهمین
-دهمین
-برید
-Ø±ÙØªÙ†
-راه
-درود
-Ø®Ø¯Ø§Ø­Ø§ÙØ¸
-حاجی
-واقع
-سخت
-آسان
-مشکل
-اینجا
-آنجا
-خودش
-هنوز
-Ø¨Ù„Ø§ÙØ§ØµÙ„Ù‡
-نگاه
-Ù†Ú¯Ù‡
-آخر
-اخر
-عمرا
-کمترین
-کوچکترین
-اقل
-مثل
-Ø´Ú©Ù„
-نظر
-چندین
-زیاد
-احتمالا
-متوسط
-یعنی
-اساسا
-عالی
-وای
-خودم
-خودت
-خودمان
-خودمون
-اسم
-نام
-آره
-حال
-حالا
-اینک
-خیلی
-بارها
-بسیار
-Ú©Ù†
-وسط
-ممکن
-راستی
-ÙØ¹Ù„ا
-صحیح
-واقعی
-Ú¯ÙØª
-Ú¯ÙØªÙ…
-Ú¯ÙØªÛŒÙ…
-امثال
-آنکه
-مهم
-جدی
-چنان
-چندان
-زیادی
-بعضی
-گاهگاهی
-زود
-بزودی
-بگیر
-ببر
-بردن
-گیرنده
-تا
-تشکر
-سپاس
-ان
-آنان
-بکلی
-تماما
-بنا
-همدیگر
-جلو
-معمولا
-مقدار
-موقع
-اونجا
-آیا
-Ú©Ù‡
-بچه
-حاضر
-میخواستم
-بلی
-خیر
-Ùوروم
-خواهم
-داره
-نداره
-داری
-همون
-میبینم
-اینجوریه
-بهش
-هستن
-امضام
-اولی
-دومی
-سومی
-چهارمی
-بگذار
-بکنه
-امروز
-صدمین
-همش
-همگی
-هوا
-اعلام
-اخرین
-خودشون
-حد
-شده
-اینکه
-خب
-یه
-اینجوری
-گاه
-گهگاه
-گاهی
-گهگدار
-گهگداری
-ها
-میشه
-کمی
-راجبه
-توضیح
-بدی
-راجع
-می
-شه
-روز
-کنی
-اصلا
\ No newline at end of file
diff --git a/wiki/inc/lang/fa/subscr_digest.txt b/wiki/inc/lang/fa/subscr_digest.txt
deleted file mode 100644
index c5ac515..0000000
--- a/wiki/inc/lang/fa/subscr_digest.txt
+++ /dev/null
@@ -1,13 +0,0 @@
-سلام،
-
-ØµÙØ­Ù‡â€ŒÛŒ @PAGE@ با عنوان @TITLE@ در ویکی تغییر کرد.
-تغییرات عبارت است از:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-نگارش پیشین: @OLDPAGE@
-نگارش نو: @NEWPAGE@
-
-برای از بین بردن آگاهی‌های این ØµÙØ­Ù‡ØŒ از طریق آدرس @DOKUWIKIURL@ وارد ویکی شده Ùˆ ØµÙØ­Ù‡â€ŒÛŒ @SUBSCRIBE@ را مرور کنید Ùˆ عضویت خود را از ØµÙØ­Ù‡ یا ÙØ¶Ø§ÛŒâ€ŒÙ†Ø§Ù… پاک کنید.
diff --git a/wiki/inc/lang/fa/subscr_form.txt b/wiki/inc/lang/fa/subscr_form.txt
deleted file mode 100644
index 39764d0..0000000
--- a/wiki/inc/lang/fa/subscr_form.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== مدیریت عضویت‌ها ======
-
-این ØµÙØ­Ù‡ به شما امکان مدیریت عضویت‌تان را برای این ØµÙØ­Ù‡ یا ÙØ¶Ø§ÛŒâ€ŒÙ†Ø§Ù… می‌دهد.
\ No newline at end of file
diff --git a/wiki/inc/lang/fa/subscr_list.txt b/wiki/inc/lang/fa/subscr_list.txt
deleted file mode 100644
index 6970997..0000000
--- a/wiki/inc/lang/fa/subscr_list.txt
+++ /dev/null
@@ -1,13 +0,0 @@
-سلام،
-
-ØµÙØ­Ù‡â€ŒÙ‡Ø§ÛŒ ÙØ¶Ø§ÛŒâ€ŒÙ†Ø§Ù… @PAGE@ با عنوان @TITLE@ در ویکی تغییر کرد.
-تغییرات عبارت است از:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-نگارش پیشین: @OLDPAGE@
-نگارش نو: @NEWPAGE@
-
-برای از بین بردن آگاهی‌های این ØµÙØ­Ù‡ØŒ از طریق آدرس @DOKUWIKIURL@ وارد ویکی شده Ùˆ ØµÙØ­Ù‡â€ŒÛŒ @SUBSCRIBE@ را مرور کنید Ùˆ عضویت خود را از ØµÙØ­Ù‡ یا ÙØ¶Ø§ÛŒâ€ŒÙ†Ø§Ù… پاک کنید.
diff --git a/wiki/inc/lang/fa/subscr_single.txt b/wiki/inc/lang/fa/subscr_single.txt
deleted file mode 100644
index 75ffb24..0000000
--- a/wiki/inc/lang/fa/subscr_single.txt
+++ /dev/null
@@ -1,16 +0,0 @@
-سلام،
-
-ØµÙØ­Ù‡â€ŒÛŒ @PAGE@ با عنوان @TITLE@ در ویکی تغییر کرد.
-تغییرات عبارت است از:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-تاریخ : @DATE@
-نام‌کاربری: @USER@
-خلاصه ویرایش: @SUMMARY@
-نگارش پیشین: @OLDPAGE@
-نگارش نو: @NEWPAGE@
-
-برای از بین بردن آگاهی‌های این ØµÙØ­Ù‡ØŒ از طریق آدرس @DOKUWIKIURL@ وارد ویکی شده Ùˆ ØµÙØ­Ù‡â€ŒÛŒ @NEWPAGE@ را مرور کنید Ùˆ عضویت خود را از ØµÙØ­Ù‡ یا ÙØ¶Ø§ÛŒâ€ŒÙ†Ø§Ù… پاک کنید.
diff --git a/wiki/inc/lang/fa/updateprofile.txt b/wiki/inc/lang/fa/updateprofile.txt
deleted file mode 100644
index d790833..0000000
--- a/wiki/inc/lang/fa/updateprofile.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== به روز رسانی Ù¾Ø±ÙˆÙØ§ÛŒÙ„ ======
-
-شما می‌توانید مقادیر زیر را تغییر دهید.
\ No newline at end of file
diff --git a/wiki/inc/lang/fa/uploadmail.txt b/wiki/inc/lang/fa/uploadmail.txt
deleted file mode 100644
index e9218b6..0000000
--- a/wiki/inc/lang/fa/uploadmail.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-یک ÙØ§ÛŒÙ„ به ویکی ارسال شد:
-
-ÙØ§ÛŒÙ„: @MEDIA@
-تاریخ: @DATE@
-مرورگر: @BROWSER@
-آدرس IP: @IPADDRESS@
-نام هوست: @HOSTNAME@
-اندازه: @SIZE@
-MIME: @MIME@
-کاربر: @USER@
diff --git a/wiki/inc/lang/fi/admin.txt b/wiki/inc/lang/fi/admin.txt
deleted file mode 100644
index b57b608..0000000
--- a/wiki/inc/lang/fi/admin.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Ylläpito ======
-
-Alla on lista DokuWiki:ssä käytössä olevista ylläpitotoiminnoista.
diff --git a/wiki/inc/lang/fi/adminplugins.txt b/wiki/inc/lang/fi/adminplugins.txt
deleted file mode 100644
index fa3571e..0000000
--- a/wiki/inc/lang/fi/adminplugins.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Muita liitännäisiä =====
\ No newline at end of file
diff --git a/wiki/inc/lang/fi/backlinks.txt b/wiki/inc/lang/fi/backlinks.txt
deleted file mode 100644
index 4577202..0000000
--- a/wiki/inc/lang/fi/backlinks.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Linkitykset ======
-
-Tässä lista tälle sivuille linkittävistä sivuista.
-
diff --git a/wiki/inc/lang/fi/conflict.txt b/wiki/inc/lang/fi/conflict.txt
deleted file mode 100644
index be788a1..0000000
--- a/wiki/inc/lang/fi/conflict.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== On olemassa uudempi versio ======
-
-Muokkaamastasi dokumentista on olemassa uudempi versio. Näin käy, kun toinen käyttäjä muuttaa dokumenttia sillä aikaa, kun sinä olit muokkaamassa sitä.
-
-Tutki alla näkyvät eroavaisuudet kunnolla ja päätä mikä versio säilytetään. Jos valitset "tallenna", sinun versiosi tallennetaan. Valitse ''peru'' pitääksesi tämänhetkisen, toisen käyttäjän muuttaman version.
diff --git a/wiki/inc/lang/fi/denied.txt b/wiki/inc/lang/fi/denied.txt
deleted file mode 100644
index 89ebd48..0000000
--- a/wiki/inc/lang/fi/denied.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Lupa evätty ======
-
-Sinulla ei ole tarpeeksi valtuuksia jatkaa.
-
diff --git a/wiki/inc/lang/fi/diff.txt b/wiki/inc/lang/fi/diff.txt
deleted file mode 100644
index fbf62b7..0000000
--- a/wiki/inc/lang/fi/diff.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Erot ======
-
-Tämä näyttää erot valitun ja nykyisen version kesken tästä sivusta.
diff --git a/wiki/inc/lang/fi/draft.txt b/wiki/inc/lang/fi/draft.txt
deleted file mode 100644
index 859f4d9..0000000
--- a/wiki/inc/lang/fi/draft.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== Vedos löydetty ======
-
-Edellinen muokkauksesi tälle sivulle ei ole päivittynyt oikein. DokuWiki on automaattisesti tallentanut vedoksen muokkauksen aikana. Voit nyt jatkaa muokkausta. Alla näet tallennetun version edellisestä istunnostasi.
-
-Valitse jos haluat //palauttaa// edellisen muutoksesi, //poistaa// automaattisesti tallennetun vedoksen, vai //peruuttaa// muutokset.
\ No newline at end of file
diff --git a/wiki/inc/lang/fi/edit.txt b/wiki/inc/lang/fi/edit.txt
deleted file mode 100644
index 81b7714..0000000
--- a/wiki/inc/lang/fi/edit.txt
+++ /dev/null
@@ -1 +0,0 @@
-Muokkaa sivua ja paina ''Tallenna''. Katso [[wiki:syntax]] nähdäksesi Wikisyntaksi. Muuta sivua vain jos voit **parantaa** sitä. Jos haluat kokeilla Wikiä hyvä paikka siihen on [[playground:playground]].
diff --git a/wiki/inc/lang/fi/editrev.txt b/wiki/inc/lang/fi/editrev.txt
deleted file mode 100644
index fd4d9a3..0000000
--- a/wiki/inc/lang/fi/editrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**Olet ladannut vanhan version dokumentista** Jos tallennat tämän, tästä tulee uusin versio dokumentista.
-----
diff --git a/wiki/inc/lang/fi/index.txt b/wiki/inc/lang/fi/index.txt
deleted file mode 100644
index 9086e22..0000000
--- a/wiki/inc/lang/fi/index.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== hakemisto ======
-
-Tämä on hakemisto kaikista saatavilla olevista sivuista järjestettynä [[doku>namespace|nimiavaruuksittain]].
diff --git a/wiki/inc/lang/fi/install.html b/wiki/inc/lang/fi/install.html
deleted file mode 100644
index 1b43455..0000000
--- a/wiki/inc/lang/fi/install.html
+++ /dev/null
@@ -1,21 +0,0 @@
-<p>Tämä sivu avustaa <a href="http://dokuwiki.org">Dokuwikin</a> ensiasennuksessa ja
-  asetuksissa. Lisätietoa asennusohjelmasta löytyy ohjelman
-	<a href="http://dokuwiki.org/installer">dokumentaatiosta</a>.</p>
-
-<p>DokuWiki käyttää tavallisia tiedostoja wiki-sivujen, sekä muiden niihin liittyvien
-  tietojen kuten kuvien, hakuindeksien, versionhallinnan jne. tallentamiseen. Toimiakseen
-	oikein DokuWikillä <strong>täytyy</strong> olla kirjoitusoikeus niihin hakemistoihin joissa nämä
-	tiedostot sijaitsevat. Asennusohjelma ei pysty asettamaan näitä oikeuksia. Tämä täytyy
-	useimmiten tehdä suoraan komentoriviltä tai muulla, esimerkiksi
-	internet-palveluntarjoajan määrittämällä tavalla, kuten FTP -ohjelmalla tai erillisen
-	asetusvalikon kautta. (cPanel).</p>
-
-<p>Asennusohjelma määrittelee DokuWikin käyttöoikeudet (<abbr title="access control list">ACL</abbr>),
-  jotka mahdollistavat ylläpitäjän sisäänkirjautumisen ja pääsyn DokuWikin ylläpito -valikkoon,
-	josta voidaan asentaa plugineja, hallita käyttäjätietoja, wiki-sivujen luku- ja
-	kirjoitusoikeuksia sekä muita asetuksia. Käyttöoikeuksien käyttäminen ei ole pakollista,
-	mutta se helpottaa DokuWikin ylläpitämistä.</p>
-
-<p>Kokeneille käyttäjille tai käyttäjille joilla on erityisvaatimuksia asennukselle
-  löytyy lisätietoa <a href="http://dokuwiki.org/install">asennuksesta</a> sekä
-	<a href="http://dokuwiki.org/config">asetuksista</a>.</p>
diff --git a/wiki/inc/lang/fi/jquery.ui.datepicker.js b/wiki/inc/lang/fi/jquery.ui.datepicker.js
deleted file mode 100644
index a8386ff..0000000
--- a/wiki/inc/lang/fi/jquery.ui.datepicker.js
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Finnish initialisation for the jQuery UI date picker plugin. */
-/* Written by Harri Kilpiö (harrikilpio@gmail.com). */
-( function( factory ) {
-	if ( typeof define === "function" && define.amd ) {
-
-		// AMD. Register as an anonymous module.
-		define( [ "../widgets/datepicker" ], factory );
-	} else {
-
-		// Browser globals
-		factory( jQuery.datepicker );
-	}
-}( function( datepicker ) {
-
-datepicker.regional.fi = {
-	closeText: "Sulje",
-	prevText: "&#xAB;Edellinen",
-	nextText: "Seuraava&#xBB;",
-	currentText: "Tänään",
-	monthNames: [ "Tammikuu","Helmikuu","Maaliskuu","Huhtikuu","Toukokuu","Kesäkuu",
-	"Heinäkuu","Elokuu","Syyskuu","Lokakuu","Marraskuu","Joulukuu" ],
-	monthNamesShort: [ "Tammi","Helmi","Maalis","Huhti","Touko","Kesä",
-	"Heinä","Elo","Syys","Loka","Marras","Joulu" ],
-	dayNamesShort: [ "Su","Ma","Ti","Ke","To","Pe","La" ],
-	dayNames: [ "Sunnuntai","Maanantai","Tiistai","Keskiviikko","Torstai","Perjantai","Lauantai" ],
-	dayNamesMin: [ "Su","Ma","Ti","Ke","To","Pe","La" ],
-	weekHeader: "Vk",
-	dateFormat: "d.m.yy",
-	firstDay: 1,
-	isRTL: false,
-	showMonthAfterYear: false,
-	yearSuffix: "" };
-datepicker.setDefaults( datepicker.regional.fi );
-
-return datepicker.regional.fi;
-
-} ) );
diff --git a/wiki/inc/lang/fi/lang.php b/wiki/inc/lang/fi/lang.php
deleted file mode 100644
index ebcca33..0000000
--- a/wiki/inc/lang/fi/lang.php
+++ /dev/null
@@ -1,342 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author Petteri <petteri@gmail.com>
- * @author Matti Pöllä <mpo@iki.fi>
- * @author Otto Vainio <otto@valjakko.net>
- * @author Teemu Mattila <ghcsystems@gmail.com>
- * @author Sami Olmari <sami@olmari.fi>
- * @author Rami Lehti <rammer@ipi.fi>
- * @author Jussi Takala <jussi.takala@live.fi>
- * @author Wiki Doku <SugarKidder@mailinator.com>
- */
-$lang['encoding']              = 'utf-8';
-$lang['direction']             = 'ltr';
-$lang['doublequoteopening']    = 'â€';
-$lang['doublequoteclosing']    = 'â€';
-$lang['singlequoteopening']    = '’';
-$lang['singlequoteclosing']    = '’';
-$lang['apostrophe']            = '’';
-$lang['btn_edit']              = 'Muokkaa tätä sivua';
-$lang['btn_source']            = 'Näytä sivun lähdekoodi';
-$lang['btn_show']              = 'Näytä sivu';
-$lang['btn_create']            = 'Luo tämä sivu';
-$lang['btn_search']            = 'Etsi';
-$lang['btn_save']              = 'Tallenna';
-$lang['btn_preview']           = 'Esikatselu';
-$lang['btn_top']               = 'Takaisin ylös';
-$lang['btn_newer']             = '<< uudemmat';
-$lang['btn_older']             = 'vanhemmat >>';
-$lang['btn_revs']              = 'Vanhat versiot';
-$lang['btn_recent']            = 'Viimeiset muutokset';
-$lang['btn_upload']            = 'Lähetä tiedosto';
-$lang['btn_cancel']            = 'Peru';
-$lang['btn_index']             = 'Hakemisto';
-$lang['btn_secedit']           = 'Muokkaa';
-$lang['btn_login']             = 'Kirjaudu sisään';
-$lang['btn_logout']            = 'Kirjaudu ulos';
-$lang['btn_admin']             = 'Ylläpito';
-$lang['btn_update']            = 'Päivitä';
-$lang['btn_delete']            = 'Poista';
-$lang['btn_back']              = 'Takaisin';
-$lang['btn_backlink']          = 'Paluulinkit';
-$lang['btn_subscribe']         = 'Tilaa muutokset';
-$lang['btn_profile']           = 'Päivitä profiili';
-$lang['btn_reset']             = 'Tyhjennä';
-$lang['btn_resendpwd']         = 'Aseta uusi salasana';
-$lang['btn_draft']             = 'Muokkaa luonnosta';
-$lang['btn_recover']           = 'Palauta luonnos';
-$lang['btn_draftdel']          = 'Poista luonnos';
-$lang['btn_revert']            = 'palauta';
-$lang['btn_register']          = 'Rekisteröidy';
-$lang['btn_apply']             = 'Toteuta';
-$lang['btn_media']             = 'Media manager';
-$lang['btn_deleteuser']        = 'Poista tilini';
-$lang['btn_img_backto']        = 'Takaisin %s';
-$lang['btn_mediaManager']      = 'Näytä mediamanagerissa';
-$lang['loggedinas']            = 'Kirjautunut nimellä:';
-$lang['user']                  = 'Käyttäjänimi';
-$lang['pass']                  = 'Salasana';
-$lang['newpass']               = 'Uusi salasana';
-$lang['oldpass']               = 'Vahvista nykyinen salasana';
-$lang['passchk']               = 'uudelleen';
-$lang['remember']              = 'Muista minut';
-$lang['fullname']              = 'Koko nimi';
-$lang['email']                 = 'Sähköposti';
-$lang['profile']               = 'Käyttäjän profiili';
-$lang['badlogin']              = 'Käyttäjänimi tai salasana oli väärä.';
-$lang['badpassconfirm']        = 'Valitan. Salasana oli väärin';
-$lang['minoredit']             = 'Pieni muutos';
-$lang['draftdate']             = 'Luonnos tallennettu automaattisesti';
-$lang['nosecedit']             = 'Sivu on muuttunut välillä ja kappaleen tiedot olivat vanhentuneet. Koko sivu ladattu.';
-$lang['regmissing']            = 'Kaikki kentät tulee täyttää.';
-$lang['reguexists']            = 'Käyttäjä tällä käyttäjänimellä on jo olemassa.';
-$lang['regsuccess']            = 'Käyttäjä luotiin ja salasana lähetettiin sähköpostilla.';
-$lang['regsuccess2']           = 'Käyttäjänimi on luotu.';
-$lang['regfail']               = 'Valitsemaasi käyttäjää ei voitu luoda.';
-$lang['regmailfail']           = 'Näyttää siltä, että salasanan lähettämisessä tapahtui virhe. Ota yhteys ylläpitäjään!';
-$lang['regbadmail']            = 'Antamasi sähköpostiosoite näyttää epäkelvolta. Jos pidät tätä virheenä ota yhteys ylläpitäjään.';
-$lang['regbadpass']            = 'Annetut kaksi salasanaa eivät täsmää. Yritä uudelleen.';
-$lang['regpwmail']             = 'DokuWiki salasanasi';
-$lang['reghere']               = 'Puuttuuko sinulta käyttäjätili? Hanki sellainen';
-$lang['profna']                = 'Tässä wikissä profiilien muokkaaminen ei ole mahdollista';
-$lang['profnochange']          = 'Ei muutoksia.';
-$lang['profnoempty']           = 'Tyhjä nimi tai sähköpostiosoite ei ole sallittu.';
-$lang['profchanged']           = 'Käyttäjän profiilin päivitys onnistui.';
-$lang['profnodelete']          = 'Tässä wikissä ei voi poistaa käyttäjiä';
-$lang['profdeleteuser']        = 'Poista tili';
-$lang['profdeleted']           = 'Käyttäjätilisi on postettu tästä wikistä';
-$lang['profconfdelete']        = 'Haluan poistaa käyttäjätilini tästä wikistä. <br/> Tätä toimintoa ei voi myöhemmin peruuttaa.';
-$lang['profconfdeletemissing'] = 'Vahvistus rastia ei valittu';
-$lang['pwdforget']             = 'Unohtuiko salasana? Hanki uusi';
-$lang['resendna']              = 'Tämä wiki ei tue salasanan uudelleenlähettämistä.';
-$lang['resendpwd']             = 'Aseta uusisalasana';
-$lang['resendpwdmissing']      = 'Kaikki kentät on täytettävä.';
-$lang['resendpwdnouser']       = 'Käyttäjää ei löydy tietokannastamme.';
-$lang['resendpwdbadauth']      = 'Tunnistuskoodi on virheellinen. Varmista, että käytit koko varmistuslinkkiä.';
-$lang['resendpwdconfirm']      = 'Varmistuslinkki on lähetetty sähköpostilla';
-$lang['resendpwdsuccess']      = 'Uusi salasanasi on lähetetty sähköpostilla.';
-$lang['license']               = 'Jollei muuta ole mainittu, niin sisältö tässä wikissä on lisensoitu seuraavalla lisenssillä:';
-$lang['licenseok']             = 'Huom: Muokkaamalla tätä sivua suostut lisensoimaan sisällön seuraavan lisenssin mukaisesti:';
-$lang['searchmedia']           = 'Etsi tiedostoa nimeltä:';
-$lang['searchmedia_in']        = 'Etsi kohteesta %s';
-$lang['txt_upload']            = 'Valitse tiedosto lähetettäväksi:';
-$lang['txt_filename']          = 'Lähetä nimellä (valinnainen):';
-$lang['txt_overwrt']           = 'Ylikirjoita olemassa oleva';
-$lang['maxuploadsize']         = 'Palvelimelle siirto max. %s / tiedosto.';
-$lang['lockedby']              = 'Tällä hetkellä tiedoston on lukinnut:';
-$lang['lockexpire']            = 'Lukitus päättyy:';
-$lang['js']['willexpire']      = 'Lukituksesi tämän sivun muokkaukseen päättyy minuutin kuluttua.\nRistiriitojen välttämiseksi paina esikatselu-nappia nollataksesi lukitusajan.';
-$lang['js']['notsavedyet']     = 'Dokumentissa on tallentamattomia muutoksia, jotka häviävät.
- Haluatko varmasti jatkaa?';
-$lang['js']['searchmedia']     = 'Etsi tiedostoja';
-$lang['js']['keepopen']        = 'Pidä valinnan ikkuna avoinna.';
-$lang['js']['hidedetails']     = 'Piilota yksityiskohdat';
-$lang['js']['mediatitle']      = 'Linkkien asetukset';
-$lang['js']['mediadisplay']    = 'Linkin tyyppi';
-$lang['js']['mediaalign']      = 'Tasaus';
-$lang['js']['mediasize']       = 'Kuvan koko';
-$lang['js']['mediatarget']     = 'Linkin kohde';
-$lang['js']['mediaclose']      = 'Sulje';
-$lang['js']['mediainsert']     = 'Liitä';
-$lang['js']['mediadisplayimg'] = 'Näytä kuva.';
-$lang['js']['mediadisplaylnk'] = 'Näytä vain linkki';
-$lang['js']['mediasmall']      = 'Pieni versio';
-$lang['js']['mediamedium']     = 'Keskikokoinen versio';
-$lang['js']['medialarge']      = 'Iso versio';
-$lang['js']['mediaoriginal']   = 'Alkuperäinen versio';
-$lang['js']['medialnk']        = 'Linkki tietosivuun';
-$lang['js']['mediadirect']     = 'Suora linkki alkuperäiseen';
-$lang['js']['medianolnk']      = 'Ei linkkiä';
-$lang['js']['medianolink']     = 'Älä linkitä kuvaa';
-$lang['js']['medialeft']       = 'Tasaa kuva vasemmalle.';
-$lang['js']['mediaright']      = 'Tasaa kuva oikealle.';
-$lang['js']['mediacenter']     = 'Tasaa kuva keskelle.';
-$lang['js']['medianoalign']    = 'Älä tasaa.';
-$lang['js']['nosmblinks']      = 'Linkit Windows-jakoihin toimivat vain Microsoft Internet Explorerilla.
-Voit silti kopioida ja liittää linkin.';
-$lang['js']['linkwiz']         = 'Linkkivelho';
-$lang['js']['linkto']          = 'Linkki kohteeseen:';
-$lang['js']['del_confirm']     = 'Haluatko todella poistaa valitut kohteet?';
-$lang['js']['restore_confirm'] = 'Haluatko varmasti palauttaa tämän version?';
-$lang['js']['media_diff']      = 'Näytä erot:';
-$lang['js']['media_diff_both'] = 'Vierekkäin';
-$lang['js']['media_diff_opacity'] = 'Päällä';
-$lang['js']['media_diff_portions'] = 'Liukusäädin';
-$lang['js']['media_select']    = 'Valitse tiedostot...';
-$lang['js']['media_upload_btn'] = 'Lähetä';
-$lang['js']['media_done_btn']  = 'Valmis';
-$lang['js']['media_drop']      = 'Pudota lähetettävät tiedostot tähän';
-$lang['js']['media_cancel']    = 'Poista';
-$lang['js']['media_overwrt']   = 'Ylikirjoita olemassa olevat tiedostot';
-$lang['rssfailed']             = 'Virhe tapahtui noudettaessa tätä syötettä: ';
-$lang['nothingfound']          = 'Mitään ei löytynyt.';
-$lang['mediaselect']           = 'Mediatiedoston valinta';
-$lang['uploadsucc']            = 'Tiedoston lähetys onnistui';
-$lang['uploadfail']            = 'Tiedoston lähetys epäonnistui. Syynä ehkä väärät oikeudet?';
-$lang['uploadwrong']           = 'Tiedoston lähetys evätty. Tämä tiedostopääte on kielletty';
-$lang['uploadexist']           = 'Tiedosto on jo olemassa. Mitään ei tehty.';
-$lang['uploadbadcontent']      = 'Tiedoston sisältö ei vastannut päätettä %s';
-$lang['uploadspam']            = 'Roskapostin estolista esti tiedoston lähetyksen.';
-$lang['uploadxss']             = 'Tiedoston lähetys estettiin mahdollisen haitallisen sisällön vuoksi.';
-$lang['uploadsize']            = 'Lähetetty tiedosto oli liian iso. (max %s)';
-$lang['deletesucc']            = 'Tiedosto "%s" on poistettu.';
-$lang['deletefail']            = 'Kohdetta "%s" poistaminen ei onnistunut - tarkista oikeudet.';
-$lang['mediainuse']            = 'Tiedostoa "%s" ei ole poistettu - se on vielä käytössä.';
-$lang['namespaces']            = 'Nimiavaruudet';
-$lang['mediafiles']            = 'Tarjolla olevat tiedostot';
-$lang['accessdenied']          = 'Sinulla ei ole oikeuksia tämän sivun katsomiseen';
-$lang['mediausage']            = 'Käytä seuraavaa merkintätapaa viittausta tehtäessä:';
-$lang['mediaview']             = 'Katsele alkuperäistä tiedostoa';
-$lang['mediaroot']             = 'root';
-$lang['mediaupload']           = 'Siirrä tiedosto nykyiseen nimiavaruuteen täällä. Voit luoda uusia alinimiavaruuksia laittamalla lisäämällä sen nimen ja kaksoispisteen "Lähetä nimellä" eteen.';
-$lang['mediaextchange']        = 'Tiedoston pääte muutettu: .%s on nyt .%s!';
-$lang['reference']             = 'Viitteet';
-$lang['ref_inuse']             = 'Tiedostoa ei voi poistaa, koska seuraavat sivut käyttävät sitä:';
-$lang['ref_hidden']            = 'Osa viitteistä on sivuilla, joihin sinulla ei ole lukuoikeutta';
-$lang['hits']                  = 'Osumia';
-$lang['quickhits']             = 'Sopivat sivunimet';
-$lang['toc']                   = 'Sisällysluettelo';
-$lang['current']               = 'nykyinen';
-$lang['yours']                 = 'Sinun versiosi';
-$lang['diff']                  = 'Näytä eroavaisuudet nykyiseen versioon';
-$lang['diff2']                 = 'Näytä eroavaisuudet valittuun versioon';
-$lang['difflink']              = 'Linkki vertailunäkymään';
-$lang['diff_type']             = 'Näytä eroavaisuudet:';
-$lang['diff_inline']           = 'Sisäkkäin';
-$lang['diff_side']             = 'Vierekkäin';
-$lang['diffprevrev']           = 'Edellinen revisio';
-$lang['diffnextrev']           = 'Seuraava revisio';
-$lang['difflastrev']           = 'Viimeisin revisio';
-$lang['line']                  = 'Rivi';
-$lang['breadcrumb']            = 'Jäljet:';
-$lang['youarehere']            = 'Olet täällä:';
-$lang['lastmod']               = 'Viimeksi muutettu:';
-$lang['by']                    = '/';
-$lang['deleted']               = 'poistettu';
-$lang['created']               = 'luotu';
-$lang['restored']              = 'vanha versio palautettu (%s)';
-$lang['external_edit']         = 'ulkoinen muokkaus';
-$lang['summary']               = 'Yhteenveto muokkauksesta';
-$lang['noflash']               = 'Tarvitset <a href="http://www.adobe.com/products/flashplayer/">Adobe Flash-liitännäisen</a> nähdäksesi tämän sisällön.';
-$lang['download']              = 'Lataa palanen';
-$lang['tools']                 = 'Työkalut';
-$lang['user_tools']            = 'Käyttäjän työkalut';
-$lang['site_tools']            = 'Sivuston työkalut';
-$lang['page_tools']            = 'Sivutyökalut';
-$lang['skip_to_content']       = 'Siirry sisältöön';
-$lang['sidebar']               = 'Sivupalkki';
-$lang['mail_newpage']          = 'sivu lisätty:';
-$lang['mail_changed']          = 'sivu muutettu:';
-$lang['mail_subscribe_list']   = 'muuttuneet sivut nimiavaruudessa:';
-$lang['mail_new_user']         = 'uusi käyttäjä:';
-$lang['mail_upload']           = 'tiedosto lähetetty:';
-$lang['changes_type']          = 'Näytä muutokset:';
-$lang['pages_changes']         = 'Sivut';
-$lang['media_changes']         = 'Mediatiedostot';
-$lang['both_changes']          = 'Sivut ja mediatiedostot';
-$lang['qb_bold']               = 'Lihavoitu teksti';
-$lang['qb_italic']             = 'Kursivoitu teksti';
-$lang['qb_underl']             = 'Alleviivattu teksti';
-$lang['qb_code']               = 'Kooditeksti';
-$lang['qb_strike']             = 'Yliviivattu teksti';
-$lang['qb_h1']                 = 'Taso 1 otsikko';
-$lang['qb_h2']                 = 'Taso 2 otsikko';
-$lang['qb_h3']                 = 'Taso 3 otsikko';
-$lang['qb_h4']                 = 'Taso 4 otsikko';
-$lang['qb_h5']                 = 'Taso 5 otsikko';
-$lang['qb_h']                  = 'Otsikko';
-$lang['qb_hs']                 = 'Valitse otsikko';
-$lang['qb_hplus']              = 'Ylempi otsikko';
-$lang['qb_hminus']             = 'Alempi otsikko';
-$lang['qb_hequal']             = 'Saman tason otsikko';
-$lang['qb_link']               = 'Sisäinen linkki';
-$lang['qb_extlink']            = 'Ulkoinen linkki';
-$lang['qb_hr']                 = 'Vaakaerotin';
-$lang['qb_ol']                 = 'Järjestetyn listan osa ';
-$lang['qb_ul']                 = 'Epäjärjestetyn listan osa';
-$lang['qb_media']              = 'Lisää kuvia ja muita tiedostoja';
-$lang['qb_sig']                = 'Lisää allekirjoitus';
-$lang['qb_smileys']            = 'Hymiöt';
-$lang['qb_chars']              = 'Erikoismerkit';
-$lang['upperns']               = 'Hyppää edelliseen nimiavaruuteen';
-$lang['metaedit']              = 'Muokkaa metadataa';
-$lang['metasaveerr']           = 'Metadatan kirjoittaminen epäonnistui';
-$lang['metasaveok']            = 'Metadata tallennettu';
-$lang['img_title']             = 'Otsikko:';
-$lang['img_caption']           = 'Kuvateksti:';
-$lang['img_date']              = 'Päivämäärä:';
-$lang['img_fname']             = 'Tiedoston nimi:';
-$lang['img_fsize']             = 'Koko:';
-$lang['img_artist']            = 'Kuvaaja:';
-$lang['img_copyr']             = 'Tekijänoikeus:';
-$lang['img_format']            = 'Formaatti:';
-$lang['img_camera']            = 'Kamera:';
-$lang['img_keywords']          = 'Avainsanat:';
-$lang['img_width']             = 'Leveys:';
-$lang['img_height']            = 'Korkeus:';
-$lang['subscr_subscribe_success'] = '%s lisätty %s tilauslistalle';
-$lang['subscr_subscribe_error'] = 'Virhe lisättäessä %s tilauslistalle %s';
-$lang['subscr_subscribe_noaddress'] = 'Login tiedoissasi ei ole sähköpostiosoitetta. Sinua ei voi lisätä tilaukseen';
-$lang['subscr_unsubscribe_success'] = '%s poistettu tilauslistalta %s';
-$lang['subscr_unsubscribe_error'] = 'Virhe tapahtui poistaessa %s tilauslistalta %s';
-$lang['subscr_already_subscribed'] = '%s on jo tilannut %s';
-$lang['subscr_not_subscribed'] = '%s ei ole tilannut %s';
-$lang['subscr_m_not_subscribed'] = 'Et ole tilannut sivua tai nimiavaruutta';
-$lang['subscr_m_new_header']   = 'Lisää tilaus';
-$lang['subscr_m_current_header'] = 'Voimassaolevat tilaukset';
-$lang['subscr_m_unsubscribe']  = 'Poista tilaus';
-$lang['subscr_m_subscribe']    = 'Tilaa';
-$lang['subscr_m_receive']      = 'Vastaanota';
-$lang['subscr_style_every']    = 'Sähköposti joka muutoksesta';
-$lang['subscr_style_digest']   = 'yhteenveto-sähköposti joka sivusta (joka %.2f. päivä)';
-$lang['subscr_style_list']     = 'lista muuttuneista sivuista edellisen sähköpostin jälkeen (joka %.2f. päivä)';
-$lang['authtempfail']          = 'Käyttäjien autentikointi ei tällä hetkellä onnistu. Jos ongelma jatkuu, ota yhteyttä wikin ylläpitäjään.';
-$lang['i_chooselang']          = 'Valitse kieli';
-$lang['i_installer']           = 'DokuWikin asentaja';
-$lang['i_wikiname']            = 'Wikin nimi';
-$lang['i_enableacl']           = 'Käytä käyttöoikeuksien hallintaa (ACL) (Suositeltu)';
-$lang['i_superuser']           = 'Pääkäyttäjä';
-$lang['i_problems']            = 'Asennusohjelma löysi alla listattuja ongelmia ongelmia. Et voi jatkaa ennen kuin ne on korjattu.';
-$lang['i_modified']            = 'Turvallisuussyistä tämä ohjelma toimii vain uusien ja muokkaamattomien Dokuwiki-asennusten kanssa. Pura tiedostot uudestaan asennuspaketista, tai lue <a href="http://dokuwiki.org/install">Dokuwikin asennusohje (englanniksi)</a>';
-$lang['i_funcna']              = 'PHP:n funktio <code>%s</code> ei ole käytettävissä. Palveluntarjoajasi on saattanut poistaa sen jostain syystä.';
-$lang['i_phpver']              = 'Käyttämäsi PHP-ohjelmiston versio <code>%s</code> on pienempi, kuin tarvitaan <code>%s</code>. PHP-asennuksesi pitää päivittää.';
-$lang['i_mbfuncoverload']      = 'mbstring.func_overload pitää ottaa pois käytöstä php.ini -tiedostosta käyttääksesi DokuWikiä';
-$lang['i_permfail']            = '<code>%s</code> ei ole DokuWikin kirjoitettavissa. Muokkaa hakemiston oikeuksia!';
-$lang['i_confexists']          = '<code>%s</code> on jo olemassa';
-$lang['i_writeerr']            = '<code>%s</code>n luonti epäonnistui. Tarkista hakemiston/tiedoston oikeudet ja luo tiedosto käsin.';
-$lang['i_badhash']             = 'tunnistamaton tai muokattu dokuwiki.php (tarkistussumma=<code>%s</code>)';
-$lang['i_badval']              = '<code>%s</code> - väärä tai tyhjä arvo';
-$lang['i_success']             = 'Kokoonpano tehty onnistuneesti. Voit poistaa install.php tiedoston. Jatka <a href="doku.php?id=wiki:welcome">uuteen DokuWikiisi</a>.';
-$lang['i_failure']             = 'Joitain virheitä tapahtui kirjoitettaessa vaadittavia tiedostoja. Sinun pitää korjata ne käsin ennen kuin voit käyttää <a href="doku.php?id=wiki:welcome">uutta DokuWikiäsi</a>.';
-$lang['i_policy']              = 'Käyttöoikeuksien oletusmenettelytapa';
-$lang['i_pol0']                = 'Avoin Wiki (luku, kirjoitus, tiedostojen lähetys on sallittu kaikille)';
-$lang['i_pol1']                = 'Julkinen Wiki (luku kaikilla, kirjoitus ja tiedostojen lähetys rekisteröidyillä käyttäjillä)';
-$lang['i_pol2']                = 'Suljettu Wiki (luku, kirjoitus ja tiedostojen lähetys vain rekisteröityneillä käyttäjillä)';
-$lang['i_allowreg']            = 'Salli käyttäjien rekisteröityminen';
-$lang['i_retry']               = 'Yritä uudelleen';
-$lang['i_license']             = 'Valitse lisenssi, jonka alle haluat sisältösi laittaa:';
-$lang['i_license_none']        = 'Älä näytä mitään lisenssitietoja';
-$lang['i_pop_field']           = 'Auta parantamaan DokuWikiä';
-$lang['i_pop_label']           = 'Lähetä kerran kuussa nimetöntä käyttäjätietoa DokuWikin kehittäjille';
-$lang['recent_global']         = 'Seuraat tällä hetkellä muutoksia nimiavaruuden <b>%s</b> sisällä. Voit myös <a href="%s">katsoa muutoksia koko wikissä</a>';
-$lang['years']                 = '%d vuotta sitten';
-$lang['months']                = '%d kuukautta sitten';
-$lang['weeks']                 = '%d viikkoa sitten';
-$lang['days']                  = '%d päivää sitten';
-$lang['hours']                 = '%d tuntia sitten';
-$lang['minutes']               = '%d minuuttia sitten';
-$lang['seconds']               = '%d sekuntia sitten';
-$lang['wordblock']             = 'Muutostasi ei talletettu, koska se sisältää estettyä tekstiä (spam).';
-$lang['media_uploadtab']       = 'Lähetä';
-$lang['media_searchtab']       = 'Etsi';
-$lang['media_file']            = 'Tiedosto';
-$lang['media_viewtab']         = 'Näytä';
-$lang['media_edittab']         = 'Muokkaa';
-$lang['media_historytab']      = 'Historia';
-$lang['media_list_thumbs']     = 'Thumbnails';
-$lang['media_list_rows']       = 'Rivit';
-$lang['media_sort_name']       = 'nimen mukaan';
-$lang['media_sort_date']       = 'päivämäärän mukaan';
-$lang['media_namespaces']      = 'Valitse nimiavaruus';
-$lang['media_files']           = 'Tiedostoja %s';
-$lang['media_upload']          = 'Lähetä <strong>%s</strong> nimiavaruuteen';
-$lang['media_search']          = 'Etsi <strong>%s</strong> nimiavaruudesta';
-$lang['media_view']            = '%s';
-$lang['media_viewold']         = '%s at %s';
-$lang['media_edit']            = 'Muokkaa %s';
-$lang['media_history']         = 'Nämä ovat vanhat versiot tiedostosta %s';
-$lang['media_meta_edited']     = 'Metadataa muokattu';
-$lang['media_perm_read']       = 'Anteeksi. Sinulla ei ole riittävästi oikeuksia lukeaksesi tiedostoja.';
-$lang['media_perm_upload']     = 'Anteeksi. Sinulla ei ole riittävästi oikeuksia lähettääksesi tiedostoja.';
-$lang['media_update']          = 'Lähetä uusi versio';
-$lang['media_restore']         = 'Palauta tämä versio';
-$lang['currentns']             = 'Nykyinen nimiavaruus';
-$lang['searchresult']          = 'Haun tulokset';
-$lang['plainhtml']             = 'pelkkä HTML';
-$lang['wikimarkup']            = 'Wiki markup';
-$lang['unable_to_parse_date']  = 'Parametrin "%s" jäsennys ei onnistu.';
-$lang['email_signature_text'] = 'Tämän postin loi DokuWiki osoitteessa
-@DOKUWIKIURL@';
diff --git a/wiki/inc/lang/fi/locked.txt b/wiki/inc/lang/fi/locked.txt
deleted file mode 100644
index 3a48ff8..0000000
--- a/wiki/inc/lang/fi/locked.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Sivu lukittu ======
-
-Tämä sivu on tällä hetkellä lukittuna, koska se on toisen käyttäjän muokkauksessa. Joudut odottamaan, kunnes hän lopettaa muokkauksen, tai kunnes lukko aukeaa.
diff --git a/wiki/inc/lang/fi/login.txt b/wiki/inc/lang/fi/login.txt
deleted file mode 100644
index efba262..0000000
--- a/wiki/inc/lang/fi/login.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Sisäänkirjautuminen ======
-
-Et ole tällä hetkellä kirjautunut sisään! Anna käyttäjätunnus ja salasana alle kirjautuaksesi. Muista, että evästeiden käyttö tulee olla päällä, jotta sisäänkirjautuminen onnistuu.
diff --git a/wiki/inc/lang/fi/mailtext.txt b/wiki/inc/lang/fi/mailtext.txt
deleted file mode 100644
index 015b3c3..0000000
--- a/wiki/inc/lang/fi/mailtext.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-DokuWikiisi lisättiin tai siellä muutettiin sivua. Tässä yksityiskohdat
-
-Päivämäärä : @DATE@
-Selain: @BROWSER@
-IP-Osoite: @IPADDRESS@
-Isäntänimi: @HOSTNAME@
-Vanha versio: @OLDPAGE@
-Uusi versio: @NEWPAGE@
-Yhteenveto: @SUMMARY@
-Käyttäjä : @USER@
-
-@DIFF@
diff --git a/wiki/inc/lang/fi/mailwrap.html b/wiki/inc/lang/fi/mailwrap.html
deleted file mode 100644
index d257190..0000000
--- a/wiki/inc/lang/fi/mailwrap.html
+++ /dev/null
@@ -1,13 +0,0 @@
-<html>
-<head>
-<title>@TITLE@</title>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-</head>
-<body>
-
-@HTMLBODY@
-
-<br /><hr />
-<small>@EMAILSIGNATURE@</small>
-</body>
-</html>
\ No newline at end of file
diff --git a/wiki/inc/lang/fi/newpage.txt b/wiki/inc/lang/fi/newpage.txt
deleted file mode 100644
index fc6379b..0000000
--- a/wiki/inc/lang/fi/newpage.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Tätä otsikkoa ei vielä ole ======
-
-Olet seurannut linkkiä otsikkoon jota ei vielä ole. Voit luoda tämän käyttämällä ''Luo tämä sivu'' -nappia.
diff --git a/wiki/inc/lang/fi/norev.txt b/wiki/inc/lang/fi/norev.txt
deleted file mode 100644
index a5138cf..0000000
--- a/wiki/inc/lang/fi/norev.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Ei tällaista versiota ======
-
-Kyseistä versiota ei ole. Käytä ''Vanha versio''-nappia nähdäksesi listan tämän dokumentin vanhoista versioista
diff --git a/wiki/inc/lang/fi/password.txt b/wiki/inc/lang/fi/password.txt
deleted file mode 100644
index e088166..0000000
--- a/wiki/inc/lang/fi/password.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-Terve @FULLNAME@!
-
-Tässä käyttäjätietosi sivulla @TITLE@ osoitteessa @DOKUWIKIURL@
-
-Käyttäjätunnus : @LOGIN@
-Salasana : @PASSWORD@
diff --git a/wiki/inc/lang/fi/preview.txt b/wiki/inc/lang/fi/preview.txt
deleted file mode 100644
index 8487807..0000000
--- a/wiki/inc/lang/fi/preview.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Esikatselu ======
-
-Tämä on esikatselu siitä, miltä tekstisi tulee näyttämään. Muista, että tätä **ei ole tallennettu** vielä!
diff --git a/wiki/inc/lang/fi/pwconfirm.txt b/wiki/inc/lang/fi/pwconfirm.txt
deleted file mode 100644
index de6780c..0000000
--- a/wiki/inc/lang/fi/pwconfirm.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-Hei @FULLNAME@!
-
-Joku pyysi uutta salasanaa login nimellesi @TITLE@ sivustolla @DOKUWIKIURL@
-
-Jos sinä ei pyytänyt uutta salasanaa, niin voit unohtaa tämän postin.
-
-Käytä alla olevaa linkkiä vahvistaaksesi, että pyynnön lähettäjä todella olet sinä.
-
-@CONFIRM@
diff --git a/wiki/inc/lang/fi/read.txt b/wiki/inc/lang/fi/read.txt
deleted file mode 100644
index eb43802..0000000
--- a/wiki/inc/lang/fi/read.txt
+++ /dev/null
@@ -1 +0,0 @@
-Tämä sivu on vain luettavissa. Voit katsoa sen lähdekoodia, mutta et muuttaa sitä. Kysy ylläpitäjältä jos pidät tätä estoa virheellisenä.
diff --git a/wiki/inc/lang/fi/recent.txt b/wiki/inc/lang/fi/recent.txt
deleted file mode 100644
index ffb0810..0000000
--- a/wiki/inc/lang/fi/recent.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Viimeiset muutokset ======
-
-Seuraavat sivut ovat muuttuneet viime aikoina.
-
diff --git a/wiki/inc/lang/fi/register.txt b/wiki/inc/lang/fi/register.txt
deleted file mode 100644
index cf7a625..0000000
--- a/wiki/inc/lang/fi/register.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Rekisteröi uusi käyttäjä ======
-
-Täytä alla olevat tiedot luodaksesi uuden käyttäjätilin tähän wikiin. Muista antaa **toimiva sähköpostiosoite**. Jos sinulta ei kysytä uutta salasanaa, niin uusi salasanasi lähetetään sähköpostiisi. Käyttäjänimi pitää olla myös käypä [[doku>pagename|sivunimi]].
diff --git a/wiki/inc/lang/fi/registermail.txt b/wiki/inc/lang/fi/registermail.txt
deleted file mode 100644
index 07c35be..0000000
--- a/wiki/inc/lang/fi/registermail.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-Uusi käyttäjä on rekisteröitynyt. Tässä tiedot:
-
-Käyttäjänimi : @NEWUSER@
-Kokonimi : @NEWNAME@
-Sähköposti : @NEWEMAIL@
-
-Päivämäärä : @DATE@
-Selain : @BROWSER@
-IP-osoite : @IPADDRESS@
-Hostname : @HOSTNAME@
diff --git a/wiki/inc/lang/fi/resendpwd.txt b/wiki/inc/lang/fi/resendpwd.txt
deleted file mode 100644
index 5a567b0..0000000
--- a/wiki/inc/lang/fi/resendpwd.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Lähetä uusi salasana ======
-
-Täytä käyttäjätunnuksesi kaavakkeeseen pyytääksesi uutta salasanaa wikin käyttäjätilillesi. Vahvistuslinkki lähetetään kirjautumisen yhteydessä antamaan sähköpostiosoitteeseen.
diff --git a/wiki/inc/lang/fi/resetpwd.txt b/wiki/inc/lang/fi/resetpwd.txt
deleted file mode 100644
index c678094..0000000
--- a/wiki/inc/lang/fi/resetpwd.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-===== Aseta salasana =====
-
-Anna uusi salasanasi tässä wikissä.
\ No newline at end of file
diff --git a/wiki/inc/lang/fi/revisions.txt b/wiki/inc/lang/fi/revisions.txt
deleted file mode 100644
index a48cd33..0000000
--- a/wiki/inc/lang/fi/revisions.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Vanha versio ======
-
-Nämä ovat vanhoja versioita nykyisestä dokumentista. Jos haluat palauttaa vanhan version valitse se alhaalta, paina ''Muokkaa tätä sivua'' ja tallenna se.
diff --git a/wiki/inc/lang/fi/searchpage.txt b/wiki/inc/lang/fi/searchpage.txt
deleted file mode 100644
index 8e61bf3..0000000
--- a/wiki/inc/lang/fi/searchpage.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Etsi ======
-
-Löydät etsinnän tulokset alta. @CREATEPAGEINFO@
-
diff --git a/wiki/inc/lang/fi/showrev.txt b/wiki/inc/lang/fi/showrev.txt
deleted file mode 100644
index 243f8d0..0000000
--- a/wiki/inc/lang/fi/showrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**Tämä on vanha versio dokumentista!**
-----
diff --git a/wiki/inc/lang/fi/stopwords.txt b/wiki/inc/lang/fi/stopwords.txt
deleted file mode 100644
index 82d3daa..0000000
--- a/wiki/inc/lang/fi/stopwords.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-# Tämä on lista sanoista, jotka indeksoija ohittaa. Yksi sana riviä kohti
-# Kun muokkaat sivua, varmista että käytät UNIX rivinvaihtoa (yksi newline)
-# Ei tarvitse lisätä alle kolmen merkin sanoja. NE ohitetaan automaattisesti.
-# Jos wikissäsin muita kieliä, lisää sanoja listaan esimerkiksi sivulta http://www.ranks.nl/stopwords/
-www
-eli
-tai
-sinä
-sinun
-com
-oli
diff --git a/wiki/inc/lang/fi/subscr_digest.txt b/wiki/inc/lang/fi/subscr_digest.txt
deleted file mode 100644
index e395e07..0000000
--- a/wiki/inc/lang/fi/subscr_digest.txt
+++ /dev/null
@@ -1,16 +0,0 @@
-Hei!
-
-Sivu @PAGE@ wikissä @TITLE@ on muuttunut.
-Tässä ovat muutokset:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-Vanha versio: @OLDPAGE@
-Uusi versio: @NEWPAGE@
-
-Peruttaaksesi sivuilmoitukset kirjaudu wikiin osoitteessa
-@DOKUWIKIURL@ , jonka jälkeen katso
-@SUBSCRIBE@
-ja peruuta tilauksesi sivun ja/tai nimiavaruuden muutoksista.
diff --git a/wiki/inc/lang/fi/subscr_form.txt b/wiki/inc/lang/fi/subscr_form.txt
deleted file mode 100644
index 70f2fde..0000000
--- a/wiki/inc/lang/fi/subscr_form.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Tilausten hallinta ======
-
-Tämä sivu avulla voit hallita silauksiasi nykyiseltä sivulta ja nimiavaruudelta.
\ No newline at end of file
diff --git a/wiki/inc/lang/fi/subscr_list.txt b/wiki/inc/lang/fi/subscr_list.txt
deleted file mode 100644
index 255f123..0000000
--- a/wiki/inc/lang/fi/subscr_list.txt
+++ /dev/null
@@ -1,13 +0,0 @@
-Hei!
-
-Sivut nimiavaruudessa @PAGE@ wikissä @TITLE@ ovat muuttuneet.
-Tässä ovat muuttuneet sivut:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-Peruuttaaksesi sivuilmoitukset kirjaudu wikiin osoitteessa
-@DOKUWIKIURL@ , jonka jälkeen katso
-@SUBSCRIBE@
-ja peruuta tilauksesi sivun ja/tai nimiavaruuden muutoksista.
diff --git a/wiki/inc/lang/fi/subscr_single.txt b/wiki/inc/lang/fi/subscr_single.txt
deleted file mode 100644
index f373ff3..0000000
--- a/wiki/inc/lang/fi/subscr_single.txt
+++ /dev/null
@@ -1,19 +0,0 @@
-Hei!
-
-Sivu @PAGE@ wikissä @TITLE@ on muuttunut.
-Tässä ovat muutokset:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-Päivä : @DATE@
-Käyttäjä : @USER@
-Yhteenveto: @SUMMARY@
-Vanha versio: @OLDPAGE@
-Uusi versio: @NEWPAGE@
-
-Peruttaaksesi sivuilmoitukset kirjaudu wikiin osoitteessa
-@DOKUWIKIURL@ , jonka jälkeen katso
-@SUBSCRIBE@
-ja peruuta tilauksesi sivun ja/tai nimiavaruuden muutoksista.
diff --git a/wiki/inc/lang/fi/updateprofile.txt b/wiki/inc/lang/fi/updateprofile.txt
deleted file mode 100644
index 7140795..0000000
--- a/wiki/inc/lang/fi/updateprofile.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Päivitä käyttäjätilisi profiilia ======
-
-Täytä vain ne kentät, joita haluat muuttaa. Et voi muuttaa käyttäjätunnustasi.
\ No newline at end of file
diff --git a/wiki/inc/lang/fi/uploadmail.txt b/wiki/inc/lang/fi/uploadmail.txt
deleted file mode 100644
index e7b9abf..0000000
--- a/wiki/inc/lang/fi/uploadmail.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-Tiedosto ladattiin DokuWikillesi. Tässä yksityiskohtaiset tiedot:
-
-Tiedosto : @MEDIA@
-PVM : @DATE@
-Selain : @BROWSER@
-IP-Osoite : @IPADDRESS@
-Hostname : @HOSTNAME@
-Koko : @SIZE@
-MIME Type : @MIME@
-Käyttäjä : @USER@
diff --git a/wiki/inc/lang/fo/admin.txt b/wiki/inc/lang/fo/admin.txt
deleted file mode 100644
index 2774322..0000000
--- a/wiki/inc/lang/fo/admin.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Fyrisiting ======
-
-Niðanfyri kanst tú finna eina røð av amboðum til fyrisiting.
-
diff --git a/wiki/inc/lang/fo/backlinks.txt b/wiki/inc/lang/fo/backlinks.txt
deleted file mode 100644
index 422377f..0000000
--- a/wiki/inc/lang/fo/backlinks.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Ãvísing afturúr ======
-
-Hetta er ein listi yvur øll tey skjøl sum vísa aftur á tað núverandi skjali.
-
diff --git a/wiki/inc/lang/fo/conflict.txt b/wiki/inc/lang/fo/conflict.txt
deleted file mode 100644
index df3fe52..0000000
--- a/wiki/inc/lang/fo/conflict.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== Ein níggjari útgáva av skjalinum er til ======
-
-Ein nýggjari útgáva av hesum skjalinum er til. Hetta hendur tá fleiri brúkarir rætta í skjalinum samstundis.
-
-Eftirkanna tær vístu broytingar nágreiniliga, og avgerð hvat fyri útgávu sum skal goymast. Um tú velur ''Goym'', verður tín útgáva av skalinum goymd. Velur tú ''Angra'' varðveittur tú tí núverandi útgávuna.
diff --git a/wiki/inc/lang/fo/denied.txt b/wiki/inc/lang/fo/denied.txt
deleted file mode 100644
index ecebba8..0000000
--- a/wiki/inc/lang/fo/denied.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Atgongd nokta! ======
-
-Tú hevur ikki rættindi til at halda áfram.
-
diff --git a/wiki/inc/lang/fo/diff.txt b/wiki/inc/lang/fo/diff.txt
deleted file mode 100644
index 343818b..0000000
--- a/wiki/inc/lang/fo/diff.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Munir ======
-
-Hetta vísur munir millum tí valdu og núverandu útgávu av skjalinum. Gular eru linjur sum er at finna í gomlu útgávuni, og grønar eru linjur sum eru at finna í núvarandi útgávuni.
-
diff --git a/wiki/inc/lang/fo/edit.txt b/wiki/inc/lang/fo/edit.txt
deleted file mode 100644
index 2ba92a2..0000000
--- a/wiki/inc/lang/fo/edit.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-Rætta hetta skjal og trýst so á **''[Goym]''** knappin. Sí [[wiki:syntax|snið ábending]] fyri Wiki setningsbygnað. Rætta vinarliga bert hetta skjali um tú kanst **fyrireika** tað. Nýt vinarliga [[playground:playground|sandkassan]] til at testa áðrenn tú rættar í einum røttum skjali. Minst eisini til at brúkar **''[Forskoðan]''** áðrenn tú goymur skjalið.
-
diff --git a/wiki/inc/lang/fo/editrev.txt b/wiki/inc/lang/fo/editrev.txt
deleted file mode 100644
index 274d423..0000000
--- a/wiki/inc/lang/fo/editrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**Tú hevur heinta eina gamla útgávu av hesum skjalinum!** Um tú goymur skjali vilt tú skriva útyvir núverandi við gomlu útgávuni.
-----
diff --git a/wiki/inc/lang/fo/index.txt b/wiki/inc/lang/fo/index.txt
deleted file mode 100644
index 640edfb..0000000
--- a/wiki/inc/lang/fo/index.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Evnisyvirlit ======
-
-Hetta er eitt yvirlit yvur øll atkomandi skjøl, flokka eftir [[doku>namespaces|navnarúm]].
diff --git a/wiki/inc/lang/fo/jquery.ui.datepicker.js b/wiki/inc/lang/fo/jquery.ui.datepicker.js
deleted file mode 100644
index 6c24b8b..0000000
--- a/wiki/inc/lang/fo/jquery.ui.datepicker.js
+++ /dev/null
@@ -1,45 +0,0 @@
-/* Faroese initialisation for the jQuery UI date picker plugin */
-/* Written by Sverri Mohr Olsen, sverrimo@gmail.com */
-( function( factory ) {
-	if ( typeof define === "function" && define.amd ) {
-
-		// AMD. Register as an anonymous module.
-		define( [ "../widgets/datepicker" ], factory );
-	} else {
-
-		// Browser globals
-		factory( jQuery.datepicker );
-	}
-}( function( datepicker ) {
-
-datepicker.regional.fo = {
-	closeText: "Lat aftur",
-	prevText: "&#x3C;Fyrra",
-	nextText: "Næsta&#x3E;",
-	currentText: "Ã dag",
-	monthNames: [ "Januar","Februar","Mars","Apríl","Mei","Juni",
-	"Juli","August","September","Oktober","November","Desember" ],
-	monthNamesShort: [ "Jan","Feb","Mar","Apr","Mei","Jun",
-	"Jul","Aug","Sep","Okt","Nov","Des" ],
-	dayNames: [
-		"Sunnudagur",
-		"Mánadagur",
-		"Týsdagur",
-		"Mikudagur",
-		"Hósdagur",
-		"Fríggjadagur",
-		"Leyardagur"
-	],
-	dayNamesShort: [ "Sun","Mán","Týs","Mik","Hós","Frí","Ley" ],
-	dayNamesMin: [ "Su","Má","Tý","Mi","Hó","Fr","Le" ],
-	weekHeader: "Vk",
-	dateFormat: "dd-mm-yy",
-	firstDay: 1,
-	isRTL: false,
-	showMonthAfterYear: false,
-	yearSuffix: "" };
-datepicker.setDefaults( datepicker.regional.fo );
-
-return datepicker.regional.fo;
-
-} ) );
diff --git a/wiki/inc/lang/fo/lang.php b/wiki/inc/lang/fo/lang.php
deleted file mode 100644
index 9b078d3..0000000
--- a/wiki/inc/lang/fo/lang.php
+++ /dev/null
@@ -1,170 +0,0 @@
-<?php
-/**
- * faroese language file
- *
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * @author Poul J. Clementsen <poul@diku.dk>
- * @author Einar Petersen <einar.petersen@gmail.com>
- */
-$lang['encoding']              = 'utf-8';
-$lang['direction']             = 'ltr';
-$lang['doublequoteopening']    = '&quot;';
-$lang['doublequoteclosing']    = '&quot;';
-$lang['singlequoteopening']    = '\'';
-$lang['singlequoteclosing']    = '\'';
-$lang['apostrophe']            = '\'';
-$lang['btn_edit']              = 'Rætta hetta skjal';
-$lang['btn_source']            = 'Vís keldu';
-$lang['btn_show']              = 'Vís skjal';
-$lang['btn_create']            = 'Býrja uppá hetta skjal';
-$lang['btn_search']            = 'Leita';
-$lang['btn_save']              = 'Goym';
-$lang['btn_preview']           = 'Forskoðan';
-$lang['btn_top']               = 'Aftur til toppin';
-$lang['btn_newer']             = '<< undan síða';
-$lang['btn_older']             = 'næsta síðe >>';
-$lang['btn_revs']              = 'Gamlar útgávur';
-$lang['btn_recent']            = 'Nýggj broyting';
-$lang['btn_upload']            = 'Legg fílu upp';
-$lang['btn_cancel']            = 'Angra';
-$lang['btn_index']             = 'Evnisyvirlit';
-$lang['btn_secedit']           = 'Rætta';
-$lang['btn_login']             = 'Rita inn';
-$lang['btn_logout']            = 'Rita út';
-$lang['btn_admin']             = 'Admin';
-$lang['btn_update']            = 'Dagfør';
-$lang['btn_delete']            = 'Strika';
-$lang['btn_back']              = 'Aftur';
-$lang['btn_backlink']          = 'Ãvísingar afturúr';
-$lang['btn_subscribe']         = 'Tilmelda broytingar';
-$lang['btn_profile']           = 'Dagføra vangamynd';
-$lang['btn_reset']             = 'Nullstilla';
-$lang['btn_draft']             = 'Broyt kladdu';
-$lang['btn_recover']           = 'Endurbygg kladdu';
-$lang['btn_draftdel']          = 'Sletta';
-$lang['btn_revert']            = 'Endurbygg';
-$lang['btn_register']          = 'Melda til';
-$lang['loggedinas']            = 'Ritavur inn sum:';
-$lang['user']                  = 'Brúkaranavn';
-$lang['pass']                  = 'Loyniorð';
-$lang['newpass']               = 'Nýtt loyniorð';
-$lang['oldpass']               = 'Vátta núverandi loyniorð';
-$lang['passchk']               = 'Endurtak nýtt loyniorð';
-$lang['remember']              = 'Minst til loyniorðið hjá mær';
-$lang['fullname']              = 'Navn';
-$lang['email']                 = 'T-postur';
-$lang['profile']               = 'Brúkara vangamynd';
-$lang['badlogin']              = 'Skeivt brúkaranavn ella loyniorð.';
-$lang['minoredit']             = 'Smærri broytingar';
-$lang['draftdate']             = 'Goym kladdu sett frá';
-$lang['nosecedit']             = 'Hendan síðan var broytt undir tilevnan, brotið var ikki rætt dagfest, heintaði fulla síðu í staðin';
-$lang['regmissing']            = 'Tú skalt fylla út øll øki.';
-$lang['reguexists']            = 'Hetta brúkaranavn er upptiki.';
-$lang['regsuccess']            = 'Tú ert nú stovnavur sum brúkari. Títt loyniorð verður sent til tín í einum T-posti.';
-$lang['regsuccess2']           = 'Tú ert nú stovnavur sum brúkari.';
-$lang['regmailfail']           = 'Títt loyniorð bleiv ikki sent. Fá vinarliga samband við administratorin.';
-$lang['regbadmail']            = 'T-post adressan er ógildig. Fá vinarliga samband við administratorin, um tú heldur at hetta er eitt brek.';
-$lang['regbadpass']            = 'Bæði loyniorðini eru ikki eins, royn vinarliga umaftur.';
-$lang['regpwmail']             = 'Títt DokuWiki loyniorð';
-$lang['reghere']               = 'Upprætta eina DokuWiki-konto her';
-$lang['profna']                = 'Tað er ikki møguligt at broyta tína vangamynd í hesu wiki';
-$lang['profnochange']          = 'Ongar broytingar, onki tillaga.';
-$lang['profnoempty']           = 'Tómt navn ella t-post adressa er ikki loyvt.';
-$lang['profchanged']           = 'Brúkara vangamynd dagført rætt.';
-$lang['pwdforget']             = 'Gloymt títt loyniorð? Fá eitt nýtt';
-$lang['resendna']              = 'Tað er ikki møguligt at fá sent nýtt loyniorð við hesu wiki.';
-$lang['resendpwdmissing']      = 'Tú skal filla út øll økir.';
-$lang['resendpwdnouser']       = 'Vit kunna ikki finna hendan brúkara í okkara dátagrunni.';
-$lang['resendpwdbadauth']      = 'Hald til góðar, hendan góðkenningar kodan er ikki gildug. Kanna eftir at tú nýtti tað fulfíggjaðu góðkenningarleinkjuna';
-$lang['resendpwdconfirm']      = 'Ein góðkenningarleinkja er send við e-posti';
-$lang['resendpwdsuccess']      = 'Títt nýggja loyniorð er sent við t-posti.';
-$lang['license']               = 'Um ikki annað er tilskilað, so er tilfar á hesari wiki loyvt margfaldað undir fylgjandi treytum:';
-$lang['licenseok']             = 'Legg til merkis: Við at dagføra hesa síðu samtykkir tú at loyva margfalding av tilfarinum undir fylgjandi treytum:';
-$lang['searchmedia']           = 'Leita eftir fíl navn:';
-$lang['searchmedia_in']        = 'Leita í %s';
-$lang['txt_upload']            = 'Vel tí fílu sum skal leggjast upp:';
-$lang['txt_filename']          = 'Sláa inn wikinavn (valfrítt):';
-$lang['txt_overwrt']           = 'Yvurskriva verandi fílu';
-$lang['lockedby']              = 'Fyribils læst av:';
-$lang['lockexpire']            = 'Lásið ferð úr gildi kl.:';
-$lang['js']['willexpire']            = 'Títt lás á hetta skjalið ferð úr gildi um ein minnutt.\nTrýst á Forskoðan-knappin fyri at sleppa undan trupulleikum.';
-$lang['js']['notsavedyet']     = 'Tað eru gjørdar broytingar í skjalinum, um tú haldur fram vilja broytingar fara fyri skeytið.
-Ynskir tú at halda fram?';
-$lang['js']['searchmedia']     = 'Leita eftir dátufílum';
-$lang['js']['mediasize']       = 'Mynda stødd';
-$lang['js']['mediatarget']     = 'Leinkja til';
-$lang['js']['mediaclose']      = 'Læt aftur';
-$lang['js']['mediainsert']     = 'Set inn';
-$lang['js']['mediadisplayimg'] = 'Vís myndina';
-$lang['js']['mediadisplaylnk'] = 'Vís bert leinkjuna';
-$lang['js']['nosmblinks']      = 'Ãvísingar til Windows shares virka bert í Microsoft Internet Explorer.
-Tú kanst enn avrita og sata inn slóðina.';
-$lang['js']['del_confirm']     = 'Strika post(ar)?';
-$lang['rssfailed']             = 'Eitt brek koma fyri tá roynt var at fáa: ';
-$lang['nothingfound']          = 'Leiting gav onki úrslit.';
-$lang['mediaselect']           = 'Vel miðlafílu';
-$lang['uploadsucc']            = 'Upp legg av fílu var væl eydna';
-$lang['uploadfail']            = 'Brek við upp legg av fílu. Tað er møguliga trupuleikar við rættindunum';
-$lang['uploadwrong']           = 'Upp legg av fílu víst burtur. Fíluslag er ikki loyvt';
-$lang['uploadexist']           = 'Fílan er longu til.';
-$lang['deletesucc']            = 'Fílan "%s" er nú strika.';
-$lang['deletefail']            = '"%s" kundi ikki strikast - kanna rættindini.';
-$lang['mediainuse']            = 'Fíla "%s" er ikki strika - hen verður enn nýtt.';
-$lang['namespaces']            = 'Navnarúm';
-$lang['mediafiles']            = 'Atkomandi fílur í';
-$lang['reference']             = 'Ãvísing til';
-$lang['ref_inuse']             = 'Fílan kan ikki strikast, síðan hon enn verður nýtt á fylgjandi síðum:';
-$lang['ref_hidden']            = 'Nakrar ávísingar eru í skjølum sum tú ikki hevur lesi rættindi til';
-$lang['hits']                  = 'Hits';
-$lang['quickhits']             = 'Samsvarandi skjøl';
-$lang['toc']                   = 'Innihaldsyvirlit';
-$lang['current']               = 'núverandi';
-$lang['yours']                 = 'Tín útgáva';
-$lang['diff']                  = 'vís broytingar í mun til núverandi útgávu';
-$lang['line']                  = 'Linja';
-$lang['breadcrumb']            = 'Leið:';
-$lang['youarehere']            = 'Tú ert her:';
-$lang['lastmod']               = 'Seinast broytt:';
-$lang['by']                    = 'av';
-$lang['deleted']               = 'strika';
-$lang['created']               = 'stovna';
-$lang['restored']              = 'gomul útgáva endurstovna (%s)';
-$lang['summary']               = 'Samandráttur';
-$lang['mail_newpage']          = 'skjal skoyta uppí:';
-$lang['mail_changed']          = 'skjal broytt:';
-$lang['qb_bold']               = 'Feit';
-$lang['qb_italic']             = 'Skák';
-$lang['qb_underl']             = 'Undurstrika';
-$lang['qb_code']               = 'Skrivimaskinu tekstur';
-$lang['qb_strike']             = 'Gjøgnumstrika';
-$lang['qb_h1']                 = 'Stig 1 yvirskrift';
-$lang['qb_h2']                 = 'Stig 2 yvirskrift';
-$lang['qb_h3']                 = 'Stig 3 yvirskrift';
-$lang['qb_h4']                 = 'Stig 4 yvirskrift';
-$lang['qb_h5']                 = 'Stig 5 yvirskrift';
-$lang['qb_link']               = 'Innanhýsis slóð';
-$lang['qb_extlink']            = 'Útvortis slóð';
-$lang['qb_hr']                 = 'Vatnrætt linja';
-$lang['qb_ol']                 = 'Talmerktur listi';
-$lang['qb_ul']                 = 'Ótalmerktur listi';
-$lang['qb_media']              = 'Leggja myndir og aðrar fílur afturat';
-$lang['qb_sig']                = 'Set inn undirskrift';
-$lang['qb_smileys']            = 'Smileys';
-$lang['qb_chars']              = 'Sertekn';
-$lang['metaedit']              = 'Rætta metadáta';
-$lang['metasaveerr']           = 'Brek við skriving av metadáta';
-$lang['metasaveok']            = 'Metadáta goymt';
-$lang['btn_img_backto']            = 'Aftur til %s';
-$lang['img_title']             = 'Heitið:';
-$lang['img_caption']           = 'Myndatekstur:';
-$lang['img_date']              = 'Dato:';
-$lang['img_fname']             = 'Fílunavn:';
-$lang['img_fsize']             = 'Stødd:';
-$lang['img_artist']            = 'Myndafólk:';
-$lang['img_copyr']             = 'Upphavsrættur:';
-$lang['img_format']            = 'Snið:';
-$lang['img_camera']            = 'Fototól:';
-$lang['img_keywords']          = 'Evnisorð:';
-$lang['authtempfail']          = 'Validering av brúkara virkar fyribils ikki. Um hetta er varandi, fá so samband við umboðsstjóran á hesi wiki.';
-$lang['email_signature_text'] = 'Hesin t-postur var skaptur av DokuWiki á
-@DOKUWIKIURL@';
diff --git a/wiki/inc/lang/fo/locked.txt b/wiki/inc/lang/fo/locked.txt
deleted file mode 100644
index 2e65a06..0000000
--- a/wiki/inc/lang/fo/locked.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Læst skjal ======
-
-Hetta skjal er fyribils læst av einum øðrum brúkara. Bíða vinarliga til brúkarin er liðugur við at rætta skjali, ella at lásið er fara úr gildi.
diff --git a/wiki/inc/lang/fo/login.txt b/wiki/inc/lang/fo/login.txt
deleted file mode 100644
index 31a4c54..0000000
--- a/wiki/inc/lang/fo/login.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Rita inn ======
-
-Tú hevur ikki rita inn! Slá inn brúkaranavn og loyniorð. Tín kagi skal loyva at cookies verða goymdar fyri at tú kanst rita inn.
diff --git a/wiki/inc/lang/fo/mailtext.txt b/wiki/inc/lang/fo/mailtext.txt
deleted file mode 100644
index 331edfe..0000000
--- a/wiki/inc/lang/fo/mailtext.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-Eitt skjal í tíni DokuWiki bleiv broytt ella skoytt uppí. Her er ein lýsing:
-
-Dato               : @DATE@
-Browser            : @BROWSER@
-IP-adressa         : @IPADDRESS@
-Hostnavn           : @HOSTNAME@
-Gomul útgáva       : @OLDPAGE@
-Nýggj útgáva       : @NEWPAGE@
-Rætti samandráttur : @SUMMARY@
-Brúkari            : @USER@
-
-@DIFF@
diff --git a/wiki/inc/lang/fo/newpage.txt b/wiki/inc/lang/fo/newpage.txt
deleted file mode 100644
index 6eeb1ef..0000000
--- a/wiki/inc/lang/fo/newpage.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Hetta skjal er ikki til (enn) ======
-
-Tú fylgdi ein ávísing til eitt skjal sum ikki er til (enn). Tú kanst stovna skjali við at trýsta á **''[Stovna hetta skjal]''** knappin.
diff --git a/wiki/inc/lang/fo/norev.txt b/wiki/inc/lang/fo/norev.txt
deleted file mode 100644
index d0b463a..0000000
--- a/wiki/inc/lang/fo/norev.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Valda útgávan er ikki til ======
-
-Valda útgávan av skjalinum er ikki til! Trýst á knappin **''[Gamlar útgávur]''** fyri at síggja ein lista yvur gamlar útgávur av hesum skjali.
-
diff --git a/wiki/inc/lang/fo/password.txt b/wiki/inc/lang/fo/password.txt
deleted file mode 100644
index df8b6e7..0000000
--- a/wiki/inc/lang/fo/password.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-Hey @FULLNAME@!
-
-Her eru tínar brúkaraupplýsingar @TITLE@ at @DOKUWIKIURL@
-
-Brúkaranavn : @LOGIN@
-Loyniorð    : @PASSWORD@
diff --git a/wiki/inc/lang/fo/preview.txt b/wiki/inc/lang/fo/preview.txt
deleted file mode 100644
index e3e65d8..0000000
--- a/wiki/inc/lang/fo/preview.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Forskoðan ======
-
-Hetta er ein forskoðan skjalinum, sum vísur hvussi tað fer at síggja út. Minst til: Tað er //**IKKI**// goymt enn! Um tað sær rætt út, trýst so á **''[Goym]''** knappin
-
diff --git a/wiki/inc/lang/fo/read.txt b/wiki/inc/lang/fo/read.txt
deleted file mode 100644
index bacf790..0000000
--- a/wiki/inc/lang/fo/read.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-Hetta skjal kan bert læsast. Tú kanst síggja kelduna, men ikki goyma  broytingar í tí. Um tú heldur at hetta er eitt brek, skriva so vinarliga í [[wiki:brek-yvirlit]].
-
diff --git a/wiki/inc/lang/fo/recent.txt b/wiki/inc/lang/fo/recent.txt
deleted file mode 100644
index 4704f37..0000000
--- a/wiki/inc/lang/fo/recent.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== Nýggjar broytingar ======
-
-Fylgjandi skjøl er broytt nýliga.
-
-
diff --git a/wiki/inc/lang/fo/register.txt b/wiki/inc/lang/fo/register.txt
deleted file mode 100644
index 24438af..0000000
--- a/wiki/inc/lang/fo/register.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Upprætta eina wiki-konti ======
-
-Fylla út niðanfyrista skema fyri at upprætta eina konti í hesu wiki. Minst til at nýta eina **galdandi t-post-adressu** - títt loyniorð verður sent til tín. Títt brúkaranavn skal verða galdandi [[doku>pagename|skjalanavn]].
-
diff --git a/wiki/inc/lang/fo/resendpwd.txt b/wiki/inc/lang/fo/resendpwd.txt
deleted file mode 100644
index 450202c..0000000
--- a/wiki/inc/lang/fo/resendpwd.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Send nýtt loyniorð ======
-
-Fyll út øll niðanfyristandandi øki fyri at fáa sent eitt nýtt loyniorð til hesa wiki. Títt nýggja loyniorð verður sent til tí uppgivnu t-postadressu. Brúkaranavn eigur at verða títt wiki brúkaranavn.
diff --git a/wiki/inc/lang/fo/revisions.txt b/wiki/inc/lang/fo/revisions.txt
deleted file mode 100644
index dcd845c..0000000
--- a/wiki/inc/lang/fo/revisions.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Gamlar útgávur ======
-
-Her eru tær gomlu útgávurnar av hesum skalinum. Tú kanst venda aftur til eina eldri útgávu av skjalinum við at velja tað niðanfyri, trýst á **''[Rætta hetta skjal]''** knappin, og til síðst goyma skjali.
diff --git a/wiki/inc/lang/fo/searchpage.txt b/wiki/inc/lang/fo/searchpage.txt
deleted file mode 100644
index 896102b..0000000
--- a/wiki/inc/lang/fo/searchpage.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Leiting ======
-
-Tú kanst síggja úrslitini av tíni leiting niðanfyri. @CREATEPAGEINFO@
-
diff --git a/wiki/inc/lang/fo/showrev.txt b/wiki/inc/lang/fo/showrev.txt
deleted file mode 100644
index 515f80a..0000000
--- a/wiki/inc/lang/fo/showrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**Hetta er ein gomul útgáva av skjalinum!**
-----
diff --git a/wiki/inc/lang/fo/stopwords.txt b/wiki/inc/lang/fo/stopwords.txt
deleted file mode 100644
index 210e859..0000000
--- a/wiki/inc/lang/fo/stopwords.txt
+++ /dev/null
@@ -1,87 +0,0 @@
-# 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/
-annar
-báðir
-eg
-eingin
-einhvør
-eini
-eitt
-ella
-enn
-fim
-fleiri
-flestir
-frá
-fyri
-fyrr
-fýra
-góður
-hann
-hansara
-har
-hendan
-hennara
-her
-hetta
-hevur
-hon
-hvar
-hvat
-hvussi
-hví
-hvør
-ikki
-inn
-kan
-koma
-lítil
-man
-maður
-meira
-men
-miðan
-niður
-nær
-næstan
-næsti
-nógv
-nýtt
-okkurt
-ongin
-onki
-onkur
-seks
-sindur
-sjey
-smáur
-stórur
-større
-størst
-sum
-síggjast
-tann
-tað
-teir
-tey
-til
-tríggir
-trý
-tvey
-tykkara
-tær
-tí
-tín
-tó
-tú
-um
-undan
-var
-vera
-við
-yvur
-átta
-áðrenn
-øll
diff --git a/wiki/inc/lang/fo/subscr_digest.txt b/wiki/inc/lang/fo/subscr_digest.txt
deleted file mode 100644
index ff76e53..0000000
--- a/wiki/inc/lang/fo/subscr_digest.txt
+++ /dev/null
@@ -1,16 +0,0 @@
-Halló!
-
-Síðan @PAGE@ í @TITLE@ wiki er broytt.
-Her eru broytinganar:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-Gamla skjalið: @OLDPAGE@
-Nýggja skjalið: @NEWPAGE@
-
-Fyri at avmelda síðu kunngerðir, logga inn í wikiina á
-@DOKUWIKIURL@ vitja so
-@SUBSCRIBE@
-og avmelda hald á síðu og/ella navnaøkis broytingar.
diff --git a/wiki/inc/lang/fo/updateprofile.txt b/wiki/inc/lang/fo/updateprofile.txt
deleted file mode 100644
index 10ee40d..0000000
--- a/wiki/inc/lang/fo/updateprofile.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Dagføra vangamynd fyri tína konti ======
-
-Tú nýtist bert at fylla út tey øki sum tú ynskjur at broyta. Tú kanst ikki broyta títt brúkaranavn.
diff --git a/wiki/inc/lang/fr/admin.txt b/wiki/inc/lang/fr/admin.txt
deleted file mode 100644
index eeeb231..0000000
--- a/wiki/inc/lang/fr/admin.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Administration ======
-
-Ci-dessous, vous trouverez une liste des tâches d'administration disponibles dans DokuWiki.
diff --git a/wiki/inc/lang/fr/adminplugins.txt b/wiki/inc/lang/fr/adminplugins.txt
deleted file mode 100644
index 0b2bf18..0000000
--- a/wiki/inc/lang/fr/adminplugins.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Extensions ===== 
\ No newline at end of file
diff --git a/wiki/inc/lang/fr/backlinks.txt b/wiki/inc/lang/fr/backlinks.txt
deleted file mode 100644
index 8e6d27d..0000000
--- a/wiki/inc/lang/fr/backlinks.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Pages pointant sur la page en cours ======
-
-Ceci est la liste des pages qui semblent pointer sur la page actuelle.
-
diff --git a/wiki/inc/lang/fr/conflict.txt b/wiki/inc/lang/fr/conflict.txt
deleted file mode 100644
index e34ec97..0000000
--- a/wiki/inc/lang/fr/conflict.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-====== Une version plus récente existe ======
-
-Une version plus récente du document que vous avez modifié existe. Cela se produit lorsqu'un autre utilisateur enregistre une nouvelle version du document alors que vous le modifiez.
-
-Examinez attentivement les différences ci-dessous et décidez quelle version conserver. Si vous choisissez « Enregistrer », votre version sera enregistrée. Cliquez sur « Annuler » pour conserver la version actuelle.
-
diff --git a/wiki/inc/lang/fr/denied.txt b/wiki/inc/lang/fr/denied.txt
deleted file mode 100644
index 6de1930..0000000
--- a/wiki/inc/lang/fr/denied.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Autorisation refusée ======
-
-Désolé, vous n'avez pas suffisamment d'autorisations pour poursuivre votre demande.
-
diff --git a/wiki/inc/lang/fr/diff.txt b/wiki/inc/lang/fr/diff.txt
deleted file mode 100644
index d1230cc..0000000
--- a/wiki/inc/lang/fr/diff.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Différences ======
-
-Ci-dessous, les différences entre deux révisions de la page.
-
diff --git a/wiki/inc/lang/fr/draft.txt b/wiki/inc/lang/fr/draft.txt
deleted file mode 100644
index 44cb4e3..0000000
--- a/wiki/inc/lang/fr/draft.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-====== Un fichier brouillon existe ======
-
-La dernière modification de cette page ne s'est pas terminée correctement. DokuWiki a enregistré automatiquement un brouillon de votre travail que vous pouvez utiliser pour votre modification. Ci-dessous figurent les données enregistrées lors de votre dernière session.
-
-À vous de décider si vous souhaitez //récupérer// votre session de modification précédente, //supprimer// le brouillon enregistré automatiquement ou //annuler// le processus d'édition.
-
diff --git a/wiki/inc/lang/fr/edit.txt b/wiki/inc/lang/fr/edit.txt
deleted file mode 100644
index df8c9fc..0000000
--- a/wiki/inc/lang/fr/edit.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-Modifiez cette page et cliquez sur « Enregistrer ». Voyez le [[:wiki:syntax|guide de mise en page]] pour une aide à propos du formatage. Veuillez ne modifier cette page que si vous pouvez l'**améliorer**. Si vous souhaitez faire des tests, faites vos premiers pas dans le [[:playground:playground|bac à sable]].
-
diff --git a/wiki/inc/lang/fr/editrev.txt b/wiki/inc/lang/fr/editrev.txt
deleted file mode 100644
index d3fa366..0000000
--- a/wiki/inc/lang/fr/editrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**Vous affichez une ancienne révision du document !** Si vous l'enregistrez, vous créerez une nouvelle version avec ce contenu.
-----
diff --git a/wiki/inc/lang/fr/index.txt b/wiki/inc/lang/fr/index.txt
deleted file mode 100644
index 15e1673..0000000
--- a/wiki/inc/lang/fr/index.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Plan du site ======
-
-Voici un plan du site de toutes les pages disponibles, triées par [[doku>fr:namespaces|catégories]].
-
diff --git a/wiki/inc/lang/fr/install.html b/wiki/inc/lang/fr/install.html
deleted file mode 100644
index 6dcba25..0000000
--- a/wiki/inc/lang/fr/install.html
+++ /dev/null
@@ -1,13 +0,0 @@
-<p>Cette page vous assiste dans l'installation et la
-configuration de <a href="http://dokuwiki.org">DokuWiki</a>.
-Pour plus d'informations sur cet installateur, reportez-vous à sa
-<a href="http://dokuwiki.org/installer">page de
-documentation</a>.</p>
-
-<p>DokuWiki utilise des fichiers textes ordinaires pour stocker les pages du
-wiki et les autres informations associées à ces pages
-(par exemple, les images, les index de recherche, les anciennes révisions, ...). Pour fonctionner correctement, DokuWiki <strong>doit</strong> avoir accès en écriture aux différents répertoires qui contiennent ces fichiers. Cet installateur n'est pas capable de modifier les autorisations sur les répertoires. Cette opération doit-être effectué directement depuis votre ligne de commande shell, ou, si vous êtes hébergé, <em>via</em> FTP ou votre panneau de contrôle (par exemple cPanel, Plesk, ...).</p>
-
-<p>Cet installateur va paramétrer votre configuration de DokuWiki pour des contrôle d'accès (ACL), qui permettront l'accès à un identifiant administrateur et l'accès au menu d'administration de DokuWiki pour l'ajout d'extensions, la gestion d'utilisateurs, la gestion de l'accès aux pages du wiki et les modifications des paramètres de configuration. Les contrôle d'accès ne sont pas nécessaires au fonctionnement de DokuWiki, néanmoins elles facilitent l'administration de DokuWiki.</p>
-
-<p>Les utilisateurs expérimentés ou les utilisateurs possédants des besoins de configurations spécifiques devraient se reporter aux liens suivants pour les détails concernant les <a href="http://dokuwiki.org/install">instructions d'installation</a> et les <a href="http://dokuwiki.org/config">paramètres de configuration</a>.</p>
diff --git a/wiki/inc/lang/fr/jquery.ui.datepicker.js b/wiki/inc/lang/fr/jquery.ui.datepicker.js
deleted file mode 100644
index 9e39fbd..0000000
--- a/wiki/inc/lang/fr/jquery.ui.datepicker.js
+++ /dev/null
@@ -1,39 +0,0 @@
-/* French initialisation for the jQuery UI date picker plugin. */
-/* Written by Keith Wood (kbwood{at}iinet.com.au),
-			  Stéphane Nahmani (sholby@sholby.net),
-			  Stéphane Raimbault <stephane.raimbault@gmail.com> */
-( function( factory ) {
-	if ( typeof define === "function" && define.amd ) {
-
-		// AMD. Register as an anonymous module.
-		define( [ "../widgets/datepicker" ], factory );
-	} else {
-
-		// Browser globals
-		factory( jQuery.datepicker );
-	}
-}( function( datepicker ) {
-
-datepicker.regional.fr = {
-	closeText: "Fermer",
-	prevText: "Précédent",
-	nextText: "Suivant",
-	currentText: "Aujourd'hui",
-	monthNames: [ "janvier", "février", "mars", "avril", "mai", "juin",
-		"juillet", "août", "septembre", "octobre", "novembre", "décembre" ],
-	monthNamesShort: [ "janv.", "févr.", "mars", "avr.", "mai", "juin",
-		"juil.", "août", "sept.", "oct.", "nov.", "déc." ],
-	dayNames: [ "dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi" ],
-	dayNamesShort: [ "dim.", "lun.", "mar.", "mer.", "jeu.", "ven.", "sam." ],
-	dayNamesMin: [ "D","L","M","M","J","V","S" ],
-	weekHeader: "Sem.",
-	dateFormat: "dd/mm/yy",
-	firstDay: 1,
-	isRTL: false,
-	showMonthAfterYear: false,
-	yearSuffix: "" };
-datepicker.setDefaults( datepicker.regional.fr );
-
-return datepicker.regional.fr;
-
-} ) );
diff --git a/wiki/inc/lang/fr/lang.php b/wiki/inc/lang/fr/lang.php
deleted file mode 100644
index 8cf396c..0000000
--- a/wiki/inc/lang/fr/lang.php
+++ /dev/null
@@ -1,389 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Damien Regad <dregad@mantisbt.org>
- * @author Schplurtz le Déboulonné <Schplurtz@laposte.net>
- * @author Michael Bohn <mjbohn@gmail.com>
- * @author Sébastien Bauer <sebastien.bauer@advalvas.be>
- * @author Antoine Fixary <antoine.fixary@freesbee.fr>
- * @author cumulus <pta-n56@myamail.com>
- * @author Gwenn Gueguen <contact@demisel.net>
- * @author Guy Brand <gb@unistra.fr>
- * @author Fabien Chabreuil <fabien@integralpersonality.com>
- * @author Stéphane Chamberland <stephane.chamberland@ec.gc.ca>
- * @author Delassaux Julien <julien@delassaux.fr>
- * @author Maurice A. LeBlanc <leblancma@cooptel.qc.ca>
- * @author stephane.gully <stephane.gully@gmail.com>
- * @author Guillaume Turri <guillaume.turri@gmail.com>
- * @author Erik Pedersen <erik.pedersen@shaw.ca>
- * @author olivier duperray <duperray.olivier@laposte.net>
- * @author Vincent Feltz <psycho@feltzv.fr>
- * @author Philippe Bajoit <philippe.bajoit@gmail.com>
- * @author Florian Gaub <floriang@floriang.net>
- * @author Samuel Dorsaz <samuel.dorsaz@novelion.net>
- * @author Johan Guilbaud <guilbaud.johan@gmail.com>
- * @author Yannick Aure <yannick.aure@gmail.com>
- * @author Olivier DUVAL <zorky00@gmail.com>
- * @author Anael Mobilia <contrib@anael.eu>
- * @author Bruno Veilleux <bruno.vey@gmail.com>
- * @author Emmanuel <seedfloyd@gmail.com>
- * @author Jérôme Brandt <jeromebrandt@gmail.com>
- * @author Wild <wild.dagger@free.fr>
- * @author ggallon <gwenael.gallon@mac.com>
- * @author David VANTYGHEM <david.vantyghem@free.fr>
- * @author Caillot <remicaillot5@gmail.com>
- * @author YoBoY <yoboy@ubuntu-fr.org>
- * @author james <j.mccann@celcat.com>
- * @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';
-$lang['doublequoteopening']    = '“';
-$lang['doublequoteclosing']    = 'â€';
-$lang['singlequoteopening']    = '‘';
-$lang['singlequoteclosing']    = '’';
-$lang['apostrophe']            = '’';
-$lang['btn_edit']              = 'Modifier cette page';
-$lang['btn_source']            = 'Afficher le texte source';
-$lang['btn_show']              = 'Afficher la page';
-$lang['btn_create']            = 'Créer cette page';
-$lang['btn_search']            = 'Rechercher';
-$lang['btn_save']              = 'Enregistrer';
-$lang['btn_preview']           = 'Aperçu';
-$lang['btn_top']               = 'Haut de page';
-$lang['btn_newer']             = '<< Plus récent';
-$lang['btn_older']             = 'Moins récent >>';
-$lang['btn_revs']              = 'Anciennes révisions';
-$lang['btn_recent']            = 'Derniers changements';
-$lang['btn_upload']            = 'Téléverser';
-$lang['btn_cancel']            = 'Annuler';
-$lang['btn_index']             = 'Plan du site';
-$lang['btn_secedit']           = 'Modifier';
-$lang['btn_login']             = 'S\'identifier';
-$lang['btn_logout']            = 'Se déconnecter';
-$lang['btn_admin']             = 'Administrer';
-$lang['btn_update']            = 'Mettre à jour';
-$lang['btn_delete']            = 'Effacer';
-$lang['btn_back']              = 'Retour';
-$lang['btn_backlink']          = 'Liens de retour';
-$lang['btn_subscribe']         = 'Gérer les abonnements';
-$lang['btn_profile']           = 'Mettre à jour le profil';
-$lang['btn_reset']             = 'Réinitialiser';
-$lang['btn_resendpwd']         = 'Définir un nouveau mot de passe';
-$lang['btn_draft']             = 'Modifier le brouillon';
-$lang['btn_recover']           = 'Récupérer le brouillon';
-$lang['btn_draftdel']          = 'Effacer le brouillon';
-$lang['btn_revert']            = 'Restaurer';
-$lang['btn_register']          = 'Créer un compte';
-$lang['btn_apply']             = 'Appliquer';
-$lang['btn_media']             = 'Gestionnaire Multimédia';
-$lang['btn_deleteuser']        = 'Supprimer mon compte';
-$lang['btn_img_backto']        = 'Retour vers %s';
-$lang['btn_mediaManager']      = 'Voir dans le gestionnaire de médias';
-$lang['loggedinas']            = 'Connecté en tant que :';
-$lang['user']                  = 'Utilisateur';
-$lang['pass']                  = 'Mot de passe';
-$lang['newpass']               = 'Nouveau mot de passe';
-$lang['oldpass']               = 'Mot de passe actuel';
-$lang['passchk']               = 'Répétez le mot de passe';
-$lang['remember']              = 'Mémoriser';
-$lang['fullname']              = 'Nom';
-$lang['email']                 = 'Adresse de courriel';
-$lang['profile']               = 'Profil utilisateur';
-$lang['badlogin']              = 'Le nom d\'utilisateur ou le mot de passe est incorrect.';
-$lang['badpassconfirm']        = 'Désolé, le mot de passe est erroné';
-$lang['minoredit']             = 'Modification mineure';
-$lang['draftdate']             = 'Brouillon enregistré automatiquement le';
-$lang['nosecedit']             = 'La page a changé entre temps, les informations de la section sont obsolètes ; la page complète a été chargée à la place.';
-$lang['searchcreatepage']      = 'Si vous ne trouvez pas ce que vous cherchiez, vous pouvez créer ou éditer la page %s, nommée selon les termes de votre recherche.';
-$lang['search_fullresults']    = 'Résultats plein texte';
-$lang['js']['search_toggle_tools'] = '(dé)activer les outils de recherche';
-$lang['js']['willexpire']      = 'Votre blocage pour la modification de cette page expire dans une minute.\nPour éviter les conflits, utilisez le bouton « Aperçu » pour réinitialiser le minuteur.';
-$lang['js']['notsavedyet']     = 'Les modifications non enregistrées seront perdues. Voulez-vous vraiment continuer ?';
-$lang['js']['searchmedia']     = 'Chercher des fichiers';
-$lang['js']['keepopen']        = 'Toujours conserver cette fenêtre ouverte';
-$lang['js']['hidedetails']     = 'Masquer les détails';
-$lang['js']['mediatitle']      = 'Paramètres de lien';
-$lang['js']['mediadisplay']    = 'Type de lien';
-$lang['js']['mediaalign']      = 'Alignement';
-$lang['js']['mediasize']       = 'Taille de l\'image';
-$lang['js']['mediatarget']     = 'Cible du lien';
-$lang['js']['mediaclose']      = 'Fermer';
-$lang['js']['mediainsert']     = 'Insérer';
-$lang['js']['mediadisplayimg'] = 'Afficher l\'image.';
-$lang['js']['mediadisplaylnk'] = 'N\'afficher que le lien.';
-$lang['js']['mediasmall']      = 'Petite taille';
-$lang['js']['mediamedium']     = 'Taille moyenne';
-$lang['js']['medialarge']      = 'Grande taille';
-$lang['js']['mediaoriginal']   = 'Taille originelle';
-$lang['js']['medialnk']        = 'Lien vers la page de détail';
-$lang['js']['mediadirect']     = 'Lien direct vers l\'original';
-$lang['js']['medianolnk']      = 'Aucun lien';
-$lang['js']['medianolink']     = 'Ne pas lier l\'image';
-$lang['js']['medialeft']       = 'Aligner l\'image à gauche.';
-$lang['js']['mediaright']      = 'Aligner l\'image à droite.';
-$lang['js']['mediacenter']     = 'Centrer l\'image.';
-$lang['js']['medianoalign']    = 'Ne pas aligner.';
-$lang['js']['nosmblinks']      = 'Les liens vers les partages Windows ne fonctionnent qu\'avec Microsoft Internet Explorer.\nVous pouvez toujours copier puis coller le lien.';
-$lang['js']['linkwiz']         = 'Assistant Lien';
-$lang['js']['linkto']          = 'Lien vers :';
-$lang['js']['del_confirm']     = 'Voulez-vous vraiment effacer ce(s) élément(s) ?';
-$lang['js']['restore_confirm'] = 'Voulez-vous vraiment restaurer cette version ?';
-$lang['js']['media_diff']      = 'Voir les différences :';
-$lang['js']['media_diff_both'] = 'Côte à côte';
-$lang['js']['media_diff_opacity'] = 'Calque';
-$lang['js']['media_diff_portions'] = 'Curseur';
-$lang['js']['media_select']    = 'Sélection de fichiers…';
-$lang['js']['media_upload_btn'] = 'Envoyer';
-$lang['js']['media_done_btn']  = 'Terminé';
-$lang['js']['media_drop']      = 'Déposez des fichiers ici pour les envoyer';
-$lang['js']['media_cancel']    = 'supprimer';
-$lang['js']['media_overwrt']   = 'Écraser les fichiers existants';
-$lang['search_exact_match']    = 'Correspondance exacte';
-$lang['search_starts_with']    = 'Commence par';
-$lang['search_ends_with']      = 'Se termine par';
-$lang['search_contains']       = 'Contient';
-$lang['search_custom_match']   = 'personnalisé';
-$lang['search_any_ns']         = 'toute catégorie';
-$lang['search_any_time']       = 'toute date';
-$lang['search_past_7_days']    = 'la semaine dernière';
-$lang['search_past_month']     = 'le mois dernier';
-$lang['search_past_year']      = 'l\'année dernière';
-$lang['search_sort_by_hits']   = 'Trier par nombre de résultats';
-$lang['search_sort_by_mtime']  = 'Trier par date de modification';
-$lang['regmissing']            = 'Désolé, vous devez remplir tous les champs.';
-$lang['reguexists']            = 'Désolé, ce nom d\'utilisateur est déjà pris.';
-$lang['regsuccess']            = 'L\'utilisateur a été créé. Le mot de passe a été expédié par courriel.';
-$lang['regsuccess2']           = 'L\'utilisateur a été créé.';
-$lang['regfail']               = 'L\'utilisateur n\'a pu être crée.';
-$lang['regmailfail']           = 'On dirait qu\'il y a eu une erreur lors de l\'envoi du mot de passe de messagerie. Veuillez contacter l\'administrateur !';
-$lang['regbadmail']            = 'L\'adresse de courriel semble incorrecte. Si vous pensez que c\'est une erreur, contactez l\'administrateur.';
-$lang['regbadpass']            = 'Les deux mots de passe fournis sont différents, veuillez recommencez.';
-$lang['regpwmail']             = 'Votre mot de passe DokuWiki';
-$lang['reghere']               = 'Vous n\'avez pas encore de compte ? Inscrivez-vous';
-$lang['profna']                = 'Ce wiki ne permet pas de modifier les profils';
-$lang['profnochange']          = 'Pas de modification, rien à faire.';
-$lang['profnoempty']           = 'Un nom ou une adresse de courriel vide n\'est pas permis.';
-$lang['profchanged']           = 'Mise à jour du profil réussie.';
-$lang['profnodelete']          = 'Ce wiki ne permet pas la suppression des utilisateurs';
-$lang['profdeleteuser']        = 'Supprimer le compte';
-$lang['profdeleted']           = 'Votre compte utilisateur a été supprimé de ce wiki';
-$lang['profconfdelete']        = 'Je veux supprimer mon compte sur ce wiki. </br> Cette action est irréversible.';
-$lang['profconfdeletemissing'] = 'La case de confirmation n\'est pas cochée';
-$lang['proffail']              = 'Le profil utilisateur n\'a pas été mis à jour.';
-$lang['pwdforget']             = 'Mot de passe oublié ? Obtenez-en un nouveau';
-$lang['resendna']              = 'Ce wiki ne permet pas le renvoi de mot de passe.';
-$lang['resendpwd']             = 'Définir un nouveau mot de passe pour';
-$lang['resendpwdmissing']      = 'Désolé, vous devez remplir tous les champs.';
-$lang['resendpwdnouser']       = 'Désolé, cet utilisateur n\'existe pas dans notre base de données.';
-$lang['resendpwdbadauth']      = 'Désolé, ce code d\'authentification est invalide. Assurez-vous d\'avoir utilisé le lien de confirmation intégral.';
-$lang['resendpwdconfirm']      = 'Un lien de confirmation vous a été expédié par courriel.';
-$lang['resendpwdsuccess']      = 'Votre nouveau mot de passe vous a été expédié par courriel.';
-$lang['license']               = 'Sauf mention contraire, le contenu de ce wiki est placé sous les termes de la licence suivante :';
-$lang['licenseok']             = 'Note : En modifiant cette page, vous acceptez que le contenu soit placé sous les termes de la licence suivante :';
-$lang['searchmedia']           = 'Chercher le nom de fichier :';
-$lang['searchmedia_in']        = 'Chercher dans %s';
-$lang['txt_upload']            = 'Sélectionnez un fichier à envoyer:';
-$lang['txt_filename']          = 'Envoyer en tant que (optionnel):';
-$lang['txt_overwrt']           = 'Écraser le fichier cible (s\'il existe)';
-$lang['maxuploadsize']         = 'Taille d\'envoi maximale : %s par fichier';
-$lang['lockedby']              = 'Actuellement bloqué par:';
-$lang['lockexpire']            = 'Le blocage expire à:';
-$lang['rssfailed']             = 'Une erreur s\'est produite en récupérant ce flux : ';
-$lang['nothingfound']          = 'Pas de réponse.';
-$lang['mediaselect']           = 'Sélection de fichiers';
-$lang['uploadsucc']            = 'Envoi réussi';
-$lang['uploadfail']            = 'L\'envoi a échoué. Les autorisations sont-elles correctes ?';
-$lang['uploadwrong']           = 'Envoi refusé. Cette extension de fichier est interdite !';
-$lang['uploadexist']           = 'Le fichier existe déjà. L\'envoi a été annulé.';
-$lang['uploadbadcontent']      = 'Le contenu envoyé ne correspond pas à l\'extension du fichier (%s).';
-$lang['uploadspam']            = 'L\'envoi a été bloqué par la liste noire de l\'anti-spam.';
-$lang['uploadxss']             = 'L\'envoi a été bloqué car son contenu est peut-être malveillant.';
-$lang['uploadsize']            = 'Le fichier envoyé était trop gros. (max. : %s)';
-$lang['deletesucc']            = 'Le fichier « %s » a été effacé.';
-$lang['deletefail']            = 'Le fichier « %s » n\'a pas pu être effacé. Vérifiez les autorisations.';
-$lang['mediainuse']            = 'Le fichier « %s » n\'a pas été effacé : il est en toujours utilisé.';
-$lang['namespaces']            = 'Catégories';
-$lang['mediafiles']            = 'Fichiers disponibles dans';
-$lang['accessdenied']          = 'Vous n\'êtes pas autorisé à voir cette page.';
-$lang['mediausage']            = 'Utilisez la syntaxe suivante pour faire référence à ce fichier :';
-$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']             = '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';
-$lang['quickhits']             = 'Pages trouvées ';
-$lang['toc']                   = 'Table des matières';
-$lang['current']               = 'Version actuelle';
-$lang['yours']                 = 'Votre version';
-$lang['diff']                  = 'Différences avec la version actuelle';
-$lang['diff2']                 = 'Différences entre les versions sélectionnées';
-$lang['difflink']              = 'Lien vers cette vue comparative';
-$lang['diff_type']             = 'Voir les différences :';
-$lang['diff_inline']           = 'Sur une seule ligne';
-$lang['diff_side']             = 'Côte à côte';
-$lang['diffprevrev']           = 'Révision précédente';
-$lang['diffnextrev']           = 'Prochaine révision';
-$lang['difflastrev']           = 'Dernière révision';
-$lang['diffbothprevrev']       = 'Les deux révisions précédentes';
-$lang['diffbothnextrev']       = 'Les deux révisions suivantes';
-$lang['line']                  = 'Ligne';
-$lang['breadcrumb']            = 'Piste:';
-$lang['youarehere']            = 'Vous êtes ici:';
-$lang['lastmod']               = 'Dernière modification:';
-$lang['by']                    = 'par';
-$lang['deleted']               = 'supprimée';
-$lang['created']               = 'créée';
-$lang['restored']              = 'ancienne révision (%s) restaurée';
-$lang['external_edit']         = 'modification externe';
-$lang['summary']               = 'Résumé';
-$lang['noflash']               = 'L\'<a href="http://www.adobe.com/products/flashplayer/">extension Adobe Flash</a> est nécessaire pour afficher ce contenu.';
-$lang['download']              = 'Télécharger cet extrait';
-$lang['tools']                 = 'Outils';
-$lang['user_tools']            = 'Outils pour utilisateurs';
-$lang['site_tools']            = 'Outils du site';
-$lang['page_tools']            = 'Outils de la page';
-$lang['skip_to_content']       = 'Aller au contenu';
-$lang['sidebar']               = 'Panneau latéral';
-$lang['mail_newpage']          = 'page ajoutée :';
-$lang['mail_changed']          = 'page modifiée :';
-$lang['mail_subscribe_list']   = 'pages modifiées dans la catégorie :';
-$lang['mail_new_user']         = 'nouvel utilisateur :';
-$lang['mail_upload']           = 'fichier envoyé :';
-$lang['changes_type']          = 'Voir les changements';
-$lang['pages_changes']         = 'Pages';
-$lang['media_changes']         = 'Fichiers multimédias';
-$lang['both_changes']          = 'Pages et fichiers multimédias';
-$lang['qb_bold']               = 'Gras';
-$lang['qb_italic']             = 'Italique';
-$lang['qb_underl']             = 'Soulignage';
-$lang['qb_code']               = 'Code « machine à écrire »';
-$lang['qb_strike']             = 'Barré';
-$lang['qb_h1']                 = 'Titre de niveau 1';
-$lang['qb_h2']                 = 'Titre de niveau 2';
-$lang['qb_h3']                 = 'Titre de niveau 3';
-$lang['qb_h4']                 = 'Titre de niveau 4';
-$lang['qb_h5']                 = 'Titre de niveau 5';
-$lang['qb_h']                  = 'Titre';
-$lang['qb_hs']                 = 'Sélectionner la ligne de titre';
-$lang['qb_hplus']              = 'Titre de niveau supérieur';
-$lang['qb_hminus']             = 'Titre de niveau inférieur';
-$lang['qb_hequal']             = 'Titre de même niveau';
-$lang['qb_link']               = 'Lien interne';
-$lang['qb_extlink']            = 'Lien externe';
-$lang['qb_hr']                 = 'Ligne horizontale';
-$lang['qb_ol']                 = 'Liste numérotée';
-$lang['qb_ul']                 = 'Liste à puce';
-$lang['qb_media']              = 'Ajouter des images ou autres fichiers';
-$lang['qb_sig']                = 'Insérer une signature';
-$lang['qb_smileys']            = 'Émoticones';
-$lang['qb_chars']              = 'Caractères spéciaux';
-$lang['upperns']               = 'Aller à la catégorie parente';
-$lang['metaedit']              = 'Modifier les métadonnées';
-$lang['metasaveerr']           = 'Erreur lors de l\'enregistrement des métadonnées';
-$lang['metasaveok']            = 'Métadonnées enregistrées';
-$lang['img_title']             = 'Titre:';
-$lang['img_caption']           = 'Légende:';
-$lang['img_date']              = 'Date:';
-$lang['img_fname']             = 'Nom de fichier:';
-$lang['img_fsize']             = 'Taille:';
-$lang['img_artist']            = 'Photographe:';
-$lang['img_copyr']             = 'Copyright:';
-$lang['img_format']            = 'Format:';
-$lang['img_camera']            = 'Appareil photo:';
-$lang['img_keywords']          = 'Mots-clés:';
-$lang['img_width']             = 'Largeur:';
-$lang['img_height']            = 'Hauteur:';
-$lang['subscr_subscribe_success'] = '%s a été ajouté à la liste des abonnés de %s';
-$lang['subscr_subscribe_error'] = 'Erreur à l\'ajout de %s à la liste des abonnés de %s';
-$lang['subscr_subscribe_noaddress'] = 'Il n\'y a pas d\'adresse associée à votre identifiant, vous ne pouvez pas être ajouté à la liste des abonnés.';
-$lang['subscr_unsubscribe_success'] = '%s a été supprimé de la liste des abonnés de %s';
-$lang['subscr_unsubscribe_error'] = 'Erreur au retrait de %s de la liste des abonnés de %s';
-$lang['subscr_already_subscribed'] = '%s est déjà abonné à %s';
-$lang['subscr_not_subscribed'] = '%s n\'est pas abonné à %s';
-$lang['subscr_m_not_subscribed'] = 'Vous n\'êtes pour l\'instant pas abonné à la page actuelle ou à la catégorie';
-$lang['subscr_m_new_header']   = 'Ajouter un abonnement';
-$lang['subscr_m_current_header'] = 'Abonnements actifs';
-$lang['subscr_m_unsubscribe']  = 'Annuler l\'abonnement';
-$lang['subscr_m_subscribe']    = 'S\'abonner';
-$lang['subscr_m_receive']      = 'Recevoir';
-$lang['subscr_style_every']    = 'Recevoir un courriel à chaque modification';
-$lang['subscr_style_digest']   = 'Courriel, tous les %.2f jours, résumant les modifications de chaque page';
-$lang['subscr_style_list']     = 'Liste des pages modifiées depuis le dernier courriel (tous les %.2f jours)';
-$lang['authtempfail']          = 'L\'authentification est temporairement indisponible. Si cela perdure, merci d\'en informer l\'administrateur du wiki.';
-$lang['i_chooselang']          = 'Choisissez votre langue';
-$lang['i_installer']           = 'Installateur DokuWiki';
-$lang['i_wikiname']            = 'Nom du wiki';
-$lang['i_enableacl']           = 'Activer le contrôle d\'accès (recommandé)';
-$lang['i_superuser']           = 'Super-utilisateur';
-$lang['i_problems']            = 'L\'installateur a détecté les problèmes indiqués ci-dessous. Vous ne pouvez pas poursuivre l\'installation tant qu\'ils n\'auront pas été corrigés.';
-$lang['i_modified']            = 'Pour des raisons de sécurité, ce script ne fonctionne qu\'avec une installation neuve et non modifiée de DokuWiki. Vous devriez ré-extraire les fichiers depuis le paquet téléchargé ou consulter les <a href="http://dokuwiki.org/install">instructions d\'installation de DokuWiki</a>';
-$lang['i_funcna']              = 'La fonction PHP <code>%s</code> n\'est pas disponible. Peut-être que votre hébergeur web l\'a désactivée ?';
-$lang['i_phpver']              = 'Votre version de PHP (%s) est antérieure à la version requise (%s). Vous devez mettre à jour votre installation de PHP.';
-$lang['i_mbfuncoverload']      = 'Il faut désactiver mbstring.func_overload dans php.ini pour DokuWiki';
-$lang['i_permfail']            = '<code>%s</code> n\'est pas accessible en écriture pour DokuWiki. Vous devez corriger les autorisations de ce répertoire !';
-$lang['i_confexists']          = '<code>%s</code> existe déjà';
-$lang['i_writeerr']            = 'Impossible de créer <code>%s</code>. Vous devez vérifier les autorisations des répertoires/fichiers et créer le fichier manuellement.';
-$lang['i_badhash']             = 'dokuwiki.php non reconnu ou modifié (hash=<code>%s</code>)';
-$lang['i_badval']              = '<code>%s</code> - valeur interdite ou vide';
-$lang['i_success']             = 'L\'installation s\'est terminée avec succès. Vous pouvez maintenant supprimer le fichier « install.php ». Continuer avec <a href="doku.php?id=wiki:welcome">votre nouveau DokuWiki</a>.';
-$lang['i_failure']             = 'Des erreurs sont survenues lors de l\'écriture des fichiers de configuration. Il vous faudra les corriger manuellement avant de pouvoir utiliser <a href="doku.php?id=wiki:welcome">votre nouveau DokuWiki</a>.';
-$lang['i_policy']              = 'Politique de contrôle d\'accès initiale';
-$lang['i_pol0']                = 'Wiki ouvert (lecture, écriture, envoi de fichiers pour tout le monde)';
-$lang['i_pol1']                = 'Wiki public (lecture pour tout le monde, écriture et envoi de fichiers pour les utilisateurs enregistrés)';
-$lang['i_pol2']                = 'Wiki fermé (lecture, écriture, envoi de fichiers pour les utilisateurs enregistrés uniquement)';
-$lang['i_allowreg']            = 'Permettre aux utilisateurs de s\'enregistrer eux-mêmes.';
-$lang['i_retry']               = 'Réessayer';
-$lang['i_license']             = 'Veuillez choisir la licence sous laquelle vous souhaitez placer votre contenu :';
-$lang['i_license_none']        = 'Ne pas afficher d\'information de licence.';
-$lang['i_pop_field']           = 'Merci de nous aider à améliorer l\'expérience DokuWiki:';
-$lang['i_pop_label']           = 'Une fois par mois, envoyer des données d\'utilisation anonymes aux développeurs DokuWiki';
-$lang['recent_global']         = 'Vous êtes actuellement en train de regarder les modifications au sein de la catégorie <strong>%s</strong>. Vous pouvez également <a href="%s">afficher les derniers changements sur l\'ensemble du wiki</a>.';
-$lang['years']                 = 'il y a %d ans';
-$lang['months']                = 'il y a %d mois';
-$lang['weeks']                 = 'il y a %d semaines';
-$lang['days']                  = 'il y a %d jours';
-$lang['hours']                 = 'il y a %d heures';
-$lang['minutes']               = 'il y a %d minutes';
-$lang['seconds']               = 'il y a %d secondes';
-$lang['wordblock']             = 'Vos modifications n\'ont pas été enregistrées car elles contiennent du texte non autorisé (spam).';
-$lang['media_uploadtab']       = 'Envoyer';
-$lang['media_searchtab']       = 'Rechercher';
-$lang['media_file']            = 'Fichier';
-$lang['media_viewtab']         = 'Voir';
-$lang['media_edittab']         = 'Éditer';
-$lang['media_historytab']      = 'Historique';
-$lang['media_list_thumbs']     = 'Miniatures';
-$lang['media_list_rows']       = 'Lignes';
-$lang['media_sort_name']       = 'Nom';
-$lang['media_sort_date']       = 'Date';
-$lang['media_namespaces']      = 'Choisissez une catégorie';
-$lang['media_files']           = 'Fichiers dans %s';
-$lang['media_upload']          = 'Envoyer vers %s.';
-$lang['media_search']          = 'Rechercher dans %s.';
-$lang['media_view']            = '%s';
-$lang['media_viewold']         = '%s dans %s';
-$lang['media_edit']            = 'Éditer %s';
-$lang['media_history']         = 'Historique de %s';
-$lang['media_meta_edited']     = 'métadonnées éditées';
-$lang['media_perm_read']       = 'Désolé, vous n\'avez pas l\'autorisation de voir les fichiers.';
-$lang['media_perm_upload']     = 'Désolé, vous n\'avez pas l\'autorisation d\'envoyer des fichiers.';
-$lang['media_update']          = 'Envoyer une nouvelle version';
-$lang['media_restore']         = 'Restaurer cette version';
-$lang['media_acl_warning']     = 'En raison des restrictions dans les ACL et de pages cachées, cette liste peut ne pas être complète.';
-$lang['currentns']             = 'Catégorie courante';
-$lang['searchresult']          = 'Résultat de la recherche';
-$lang['plainhtml']             = 'HTML brut';
-$lang['wikimarkup']            = 'Wiki balise';
-$lang['page_nonexist_rev']     = 'La page n\'existait pas le %s. Elle a été créée le <a href="%s">%s</a>.';
-$lang['unable_to_parse_date']  = 'Ne peut analyser le paramètre date "%s".';
-$lang['email_signature_text']  = 'Ce courriel a été généré par DokuWiki depuis
-@DOKUWIKIURL@';
diff --git a/wiki/inc/lang/fr/locked.txt b/wiki/inc/lang/fr/locked.txt
deleted file mode 100644
index fe88b57..0000000
--- a/wiki/inc/lang/fr/locked.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Page bloquée ======
-
-Cette page est actuellement bloquée pour modification par un autre utilisateur. Vous devez attendre que cet utilisateur ait terminé ou que le blocage de la page expire.
diff --git a/wiki/inc/lang/fr/login.txt b/wiki/inc/lang/fr/login.txt
deleted file mode 100644
index c8d40c8..0000000
--- a/wiki/inc/lang/fr/login.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Connexion ======
-
-Vous n'êtes pas connecté ! Entrez vos identifiants ci-dessous pour vous connecter. Votre navigateur doit accepter les cookies pour pouvoir vous connecter.
diff --git a/wiki/inc/lang/fr/mailtext.txt b/wiki/inc/lang/fr/mailtext.txt
deleted file mode 100644
index d93eb1e..0000000
--- a/wiki/inc/lang/fr/mailtext.txt
+++ /dev/null
@@ -1,13 +0,0 @@
-Une page dans votre wiki a été ajoutée ou modifiée. Voici les
-détails :
-
-Date              : @DATE@
-Navigateur        : @BROWSER@
-Adresse IP        : @IPADDRESS@
-Nom d'hôte        : @HOSTNAME@
-Ancienne révision : @OLDPAGE@
-Nouvelle révision : @NEWPAGE@
-Résumé            : @SUMMARY@
-Utilisateur       : @USER@
-
-@DIFF@
diff --git a/wiki/inc/lang/fr/mailwrap.html b/wiki/inc/lang/fr/mailwrap.html
deleted file mode 100644
index d257190..0000000
--- a/wiki/inc/lang/fr/mailwrap.html
+++ /dev/null
@@ -1,13 +0,0 @@
-<html>
-<head>
-<title>@TITLE@</title>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-</head>
-<body>
-
-@HTMLBODY@
-
-<br /><hr />
-<small>@EMAILSIGNATURE@</small>
-</body>
-</html>
\ No newline at end of file
diff --git a/wiki/inc/lang/fr/newpage.txt b/wiki/inc/lang/fr/newpage.txt
deleted file mode 100644
index c649489..0000000
--- a/wiki/inc/lang/fr/newpage.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Cette page n'existe pas encore ======
-
-Vous avez suivi un lien vers une page qui n'existe pas encore. Si vos permissions sont suffisantes, vous pouvez la créer en cliquant sur « Créer cette page ».
-
diff --git a/wiki/inc/lang/fr/norev.txt b/wiki/inc/lang/fr/norev.txt
deleted file mode 100644
index 0d40dbe..0000000
--- a/wiki/inc/lang/fr/norev.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Révision non trouvée ======
-
-La révision demandée n'existe pas. Cliquez sur « Anciennes révisions » pour obtenir une liste des révisions de ce document.
-
diff --git a/wiki/inc/lang/fr/password.txt b/wiki/inc/lang/fr/password.txt
deleted file mode 100644
index 2ffe715..0000000
--- a/wiki/inc/lang/fr/password.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-Bonjour @FULLNAME@ !
-
-Voici vos identifiants pour @TITLE@ sur @DOKUWIKIURL@
-
-Utilisateur  : @LOGIN@
-Mot de passe : @PASSWORD@
diff --git a/wiki/inc/lang/fr/preview.txt b/wiki/inc/lang/fr/preview.txt
deleted file mode 100644
index 00f09e2..0000000
--- a/wiki/inc/lang/fr/preview.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Aperçu ======
-
-Ceci est un aperçu de votre document. Attention : il n'est **pas encore enregistré** !
-
diff --git a/wiki/inc/lang/fr/pwconfirm.txt b/wiki/inc/lang/fr/pwconfirm.txt
deleted file mode 100644
index 187ec0b..0000000
--- a/wiki/inc/lang/fr/pwconfirm.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-Bonjour @FULLNAME@ !
-
-Quelqu'un a demandé un nouveau mot de passe pour votre identifiant
-@TITLE@ depuis @DOKUWIKIURL@
-
-Si vous n'êtes pas à l'origine de cette requête d'un nouveau mot de
-passe, ignorez simplement ce message.
-
-Pour confirmer que cette requête émane bien de vous, merci de cliquer sur le lien ci-dessous.
-
-@CONFIRM@
diff --git a/wiki/inc/lang/fr/read.txt b/wiki/inc/lang/fr/read.txt
deleted file mode 100644
index 6afb864..0000000
--- a/wiki/inc/lang/fr/read.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-Cette page est en lecture seule. Vous pouvez afficher le texte source, mais ne pourrez pas le modifier. Contactez votre administrateur si vous pensez qu'il s'agit d'une erreur.
-
diff --git a/wiki/inc/lang/fr/recent.txt b/wiki/inc/lang/fr/recent.txt
deleted file mode 100644
index b41972f..0000000
--- a/wiki/inc/lang/fr/recent.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== Derniers changements ======
-
-Les pages suivantes ont été modifiées récemment.
-
-
diff --git a/wiki/inc/lang/fr/register.txt b/wiki/inc/lang/fr/register.txt
deleted file mode 100644
index f983834..0000000
--- a/wiki/inc/lang/fr/register.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== S'enregistrer comme nouvel utilisateur ======
-
-Remplissez toutes les informations ci-dessous pour vous créer un compte sur ce wiki. Assurez-vous de fournir une **adresse de courriel valide** - s'il ne vous est pas demandé de saisir un mot de passe ici, il vous sera expédié par courriel à cette adresse. Le nom d'utilisateur doit être un [[doku>pagename|nom de page]] valide.
diff --git a/wiki/inc/lang/fr/registermail.txt b/wiki/inc/lang/fr/registermail.txt
deleted file mode 100644
index fe39c2d..0000000
--- a/wiki/inc/lang/fr/registermail.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-Un nouvel utilisateur s'est enregistré. Voici les détails :
-
-Utilisateur         : @NEWUSER@
-Nom         : @NEWNAME@
-Courriel : @NEWEMAIL@
-
-Date                : @DATE@
-Navigateur internet         : @BROWSER@
-Adresse IP          : @IPADDRESS@
-Nom d'hôte          : @HOSTNAME@
diff --git a/wiki/inc/lang/fr/resendpwd.txt b/wiki/inc/lang/fr/resendpwd.txt
deleted file mode 100644
index 91dd924..0000000
--- a/wiki/inc/lang/fr/resendpwd.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Envoyer un nouveau mot de passe ======
-
-Veuillez compléter les champs ci-dessous pour obtenir un nouveau mot de passe pour votre compte dans ce wiki. Un lien de confirmation vous sera expédié à l'adresse de courriel utilisée lors de votre enregistrement.
-
diff --git a/wiki/inc/lang/fr/resetpwd.txt b/wiki/inc/lang/fr/resetpwd.txt
deleted file mode 100644
index 7b1990c..0000000
--- a/wiki/inc/lang/fr/resetpwd.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Définir un nouveau mot de passe ======
-
-Merci d'entrer un nouveau mot de passe pour votre compte sur ce wiki.
\ No newline at end of file
diff --git a/wiki/inc/lang/fr/revisions.txt b/wiki/inc/lang/fr/revisions.txt
deleted file mode 100644
index 29c1713..0000000
--- a/wiki/inc/lang/fr/revisions.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Anciennes révisions ======
-
-Voici les anciennes révisions de la page en cours. Pour revenir à une ancienne révision, sélectionnez-la ci-dessous, cliquez sur le bouton « Modifier cette page » et enregistrez-la.
-
diff --git a/wiki/inc/lang/fr/searchpage.txt b/wiki/inc/lang/fr/searchpage.txt
deleted file mode 100644
index 7866187..0000000
--- a/wiki/inc/lang/fr/searchpage.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Recherche ======
-
-Voici les résultats de votre recherche. @CREATEPAGEINFO@
-
diff --git a/wiki/inc/lang/fr/showrev.txt b/wiki/inc/lang/fr/showrev.txt
deleted file mode 100644
index 2e36199..0000000
--- a/wiki/inc/lang/fr/showrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**Ceci est une ancienne révision du document !**
-----
diff --git a/wiki/inc/lang/fr/stopwords.txt b/wiki/inc/lang/fr/stopwords.txt
deleted file mode 100644
index 5f187f7..0000000
--- a/wiki/inc/lang/fr/stopwords.txt
+++ /dev/null
@@ -1,112 +0,0 @@
-# Cette liste regroupe les mots ignorés par l'indexeur
-# Un seul mot par ligne
-# Les fins de ligne de ce fichier doivent être de type UNIX
-# Les mots de moins de 3 lettres sont ignorés par défaut.
-# Cette liste est basée sur http://www.ranks.nl/stopwords/
-alors
-aucuns
-aussi
-autre
-avant
-avec
-avoir
-bon
-car
-cela
-ces
-ceux
-chaque
-comme
-comment
-dans
-des
-dedans
-dehors
-depuis
-deux
-devrait
-doit
-donc
-dos
-droite
-début
-elle
-elles
-encore
-essai
-est
-fait
-faites
-fois
-font
-force
-haut
-hors
-ici
-ils
-juste
-les
-leur
-là
-maintenant
-mais
-mes
-mine
-moins
-mon
-mot
-même
-nommés
-notre
-nous
-nouveaux
-où
-par
-parce
-parole
-pas
-personnes
-peut
-peu
-pièce
-plupart
-pour
-pourquoi
-quand
-que
-quel
-quelle
-quelles
-quels
-qui
-sans
-ses
-seulement
-sien
-son
-sont
-sous
-soyez
-sujet
-sur
-tandis
-tellement
-tels
-tes
-ton
-tous
-tout
-trop
-très
-valeur
-voie
-voient
-vont
-votre
-vous
-ça
-étaient
-état
-étions
-été
-être
diff --git a/wiki/inc/lang/fr/subscr_digest.txt b/wiki/inc/lang/fr/subscr_digest.txt
deleted file mode 100644
index c1fa463..0000000
--- a/wiki/inc/lang/fr/subscr_digest.txt
+++ /dev/null
@@ -1,15 +0,0 @@
-Bonjour,
-
-La page « @PAGE@ » dans le wiki « @TITLE@ » a été modifiée. Voici les modifications :
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-Révision précédente : @OLDPAGE@
-Nouvelle révision : @NEWPAGE@
-
-Pour annuler les notifications de page, connectez-vous au wiki à l'adresse
-@DOKUWIKIURL@ puis visitez
-@SUBSCRIBE@
-et désabonnez-vous de la page ou de la catégorie.
diff --git a/wiki/inc/lang/fr/subscr_form.txt b/wiki/inc/lang/fr/subscr_form.txt
deleted file mode 100644
index f14832e..0000000
--- a/wiki/inc/lang/fr/subscr_form.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Gestion des souscriptions ======
-
-Cette page vous permet de gérer vos abonnements pour suivre les modifications sur la page et sur la catégorie courante.
\ No newline at end of file
diff --git a/wiki/inc/lang/fr/subscr_list.txt b/wiki/inc/lang/fr/subscr_list.txt
deleted file mode 100644
index 4c5c55d..0000000
--- a/wiki/inc/lang/fr/subscr_list.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-Bonjour,
-
-Des pages de la catégorie « @PAGE@ » du wiki « @TITLE@ » ont été modifiées. Voici les modifications :
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-Pour annuler les notifications de page, connectez-vous au wiki à l'adresse
-@DOKUWIKIURL@ puis visitez
-@SUBSCRIBE@
-et désabonnez-vous de la page ou de la catégorie.
diff --git a/wiki/inc/lang/fr/subscr_single.txt b/wiki/inc/lang/fr/subscr_single.txt
deleted file mode 100644
index a13bd00..0000000
--- a/wiki/inc/lang/fr/subscr_single.txt
+++ /dev/null
@@ -1,18 +0,0 @@
-Bonjour,
-
-La page « @PAGE@ » dans le wiki « @TITLE@ » a été modifiée. Voici les modifications :
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-Date : @DATE@
-Utilisateur : @USER@
-Résumé : @SUMMARY@
-Révision précédente : @OLDPAGE@
-Nouvelle révision : @NEWPAGE@
-
-Pour annuler les notifications de page, connectez-vous au wiki à l'adresse
-@DOKUWIKIURL@ puis visitez
-@SUBSCRIBE@
-et désabonnez-vous de la page ou de la catégorie.
diff --git a/wiki/inc/lang/fr/updateprofile.txt b/wiki/inc/lang/fr/updateprofile.txt
deleted file mode 100644
index 623d75e..0000000
--- a/wiki/inc/lang/fr/updateprofile.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== Mise à jour de votre profil ======
-
-Ne complétez que les champs que vous souhaitez modifier. Vous ne pouvez pas modifier votre nom d'utilisateur.
-
-
diff --git a/wiki/inc/lang/fr/uploadmail.txt b/wiki/inc/lang/fr/uploadmail.txt
deleted file mode 100644
index 37273d9..0000000
--- a/wiki/inc/lang/fr/uploadmail.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-Un fichier a été envoyé dans votre wiki. Voici les détails :
-
-Fichier     : @MEDIA@
-Date        : @DATE@
-Navigateur  : @BROWSER@
-Adresse IP  : @IPADDRESS@
-Nom d'hôte  : @HOSTNAME@
-Taille      : @SIZE@
-Type MIME   : @MIME@
-Utilisateur : @USER@
diff --git a/wiki/inc/lang/gl/admin.txt b/wiki/inc/lang/gl/admin.txt
deleted file mode 100644
index eeaed99..0000000
--- a/wiki/inc/lang/gl/admin.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Administración ======
-
-De seguido podes atopar unha lista de tarefas administrativas dispoñíbeis no DokuWiki.
-
diff --git a/wiki/inc/lang/gl/adminplugins.txt b/wiki/inc/lang/gl/adminplugins.txt
deleted file mode 100644
index e52172e..0000000
--- a/wiki/inc/lang/gl/adminplugins.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Extensións adicionais =====
\ No newline at end of file
diff --git a/wiki/inc/lang/gl/backlinks.txt b/wiki/inc/lang/gl/backlinks.txt
deleted file mode 100644
index f77b74b..0000000
--- a/wiki/inc/lang/gl/backlinks.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Ligazóns entrantes ======
-
-Isto é unha listaxe de páxinas que semellan ligar coa páxina actual.
-
diff --git a/wiki/inc/lang/gl/conflict.txt b/wiki/inc/lang/gl/conflict.txt
deleted file mode 100644
index dcd87c7..0000000
--- a/wiki/inc/lang/gl/conflict.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-====== Hai unha versión máis nova ======
-
-Hai unha versión máis nova do documento que editaches. Isto sucede cando outro usuario mudou o documento mentres ti estabas a editalo.
-
-Examina as diferenzas amosadas embaixo polo miúdo, e logo decide que versión queres manter. Se escolleres ''Gardar'', gardarase a túa versión. Preme en ''Cancelar'' para manteres a versión actual.
-
diff --git a/wiki/inc/lang/gl/denied.txt b/wiki/inc/lang/gl/denied.txt
deleted file mode 100644
index ef37a06..0000000
--- a/wiki/inc/lang/gl/denied.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Permiso Denegado ======
-
-Sentímolo, mais non tes permisos de abondo para continuares.
-
diff --git a/wiki/inc/lang/gl/diff.txt b/wiki/inc/lang/gl/diff.txt
deleted file mode 100644
index df87707..0000000
--- a/wiki/inc/lang/gl/diff.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Diferenzas ======
-
-Isto amosa as diferenzas entre a revisión seleccionada e a versión actual da páxina.
-
diff --git a/wiki/inc/lang/gl/draft.txt b/wiki/inc/lang/gl/draft.txt
deleted file mode 100644
index ac36dc0..0000000
--- a/wiki/inc/lang/gl/draft.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-====== Arquivo de rascuño atopado ======
-
-A túa última sesión de edición desta páxina non foi completada de xeito correcto. O DokuWiki gravou automaticamente un rascuño durante o teu traballo que agora podes usar para continuares coa edición. De seguido podes ver os datos que foron gardados da túa última sesión.
-
-Por favor, escolle se queres //Recuperar// a túa sesión de edición perdida, //Eliminar// o borrador autogardado ou //Cancelar// o proceso de edición.
-
diff --git a/wiki/inc/lang/gl/edit.txt b/wiki/inc/lang/gl/edit.txt
deleted file mode 100644
index 1cc1243..0000000
--- a/wiki/inc/lang/gl/edit.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-Edita a páxina e preme en ''Gardar''. Bótalle un ollo á [[wiki:syntax|sintaxe]] para veres a sintaxe do Wiki. Por favor, edita a páxina só se podes **mellorala**. Se quixeres facer probas, aprende como levar a cabo os teus primeiros pasos na [[playground:playground|eira]].
-
diff --git a/wiki/inc/lang/gl/editrev.txt b/wiki/inc/lang/gl/editrev.txt
deleted file mode 100644
index d6a0490..0000000
--- a/wiki/inc/lang/gl/editrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**Cargaches unha revisión antiga do documento!** Se o gardares, crearás unha nova versión con estes datos.
-----
diff --git a/wiki/inc/lang/gl/index.txt b/wiki/inc/lang/gl/index.txt
deleted file mode 100644
index b0b100b..0000000
--- a/wiki/inc/lang/gl/index.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Ãndice ======
-
-Isto é un índice de todas as páxinas dispoñíbeis, ordenadas por [[doku>namespaces|nomes de espazo]].
-
diff --git a/wiki/inc/lang/gl/install.html b/wiki/inc/lang/gl/install.html
deleted file mode 100644
index fdaaa17..0000000
--- a/wiki/inc/lang/gl/install.html
+++ /dev/null
@@ -1,25 +0,0 @@
-<p>Esta páxina é unha axuda na primeira vez que se instala e configura o
-<a href="http://dokuwiki.org">Dokuwiki</a>. Se queres máis información
-verbo deste instalador está dispoñible na súa propia
-<a href="http://dokuwiki.org/installer">páxina de documentación</a>.</p>
-
-<p>O DokuWiki emprega arquivos normais para a almacenaxe das páxinas do wiki
-e outra información asociada coas mesmas (p.e. imaxes, índices de procura,
-revisións antigas, etc).  Por iso, para poder operar correctamente, o DokuWiki
-<strong>precisa</strong> ter acceso de escritura aos directorios que conteñen
-eses arquivos. Este instalador non é quen de configurar os permisos dos directorios.
-Isto debe facerse normalmente de xeito directo na liña de comandos ou, se estás a
-usar unha hospedaxe, a través do FTP ou do panel de control da túa hospedaxe (p.e.
-o cPanel).</p>
-
-<p>Este instalador configurará o teu DokuWiki para o uso da
-<abbr title="access control list">ACL</abbr>, o cal permitirá ao administrador
-iniciar sesión e acceder ao menú de administración do DokuWiki para instalar extensións,
-xestionar usuarios e accesos ás páxinas do wiki, ademais de modificar a configuración.
-Non é imprescindíbel para o funcionamento do DokuWiki, porén, fai moito máis doada a
-administración do mesmo.</p>
-
-<p>Os usuarios expertos ou con requisitos especiais de configuración poden visitar
-as seguintes ligazóns para obter pormenores relativos ás
-<a href="http://dokuwiki.org/install">instruccións de instalación</a>
-e á <a href="http://dokuwiki.org/config">configuración</a>.</p>
diff --git a/wiki/inc/lang/gl/jquery.ui.datepicker.js b/wiki/inc/lang/gl/jquery.ui.datepicker.js
deleted file mode 100644
index 2765230..0000000
--- a/wiki/inc/lang/gl/jquery.ui.datepicker.js
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Galician localization for 'UI date picker' jQuery extension. */
-/* Translated by Jorge Barreiro <yortx.barry@gmail.com>. */
-( function( factory ) {
-	if ( typeof define === "function" && define.amd ) {
-
-		// AMD. Register as an anonymous module.
-		define( [ "../widgets/datepicker" ], factory );
-	} else {
-
-		// Browser globals
-		factory( jQuery.datepicker );
-	}
-}( function( datepicker ) {
-
-datepicker.regional.gl = {
-	closeText: "Pechar",
-	prevText: "&#x3C;Ant",
-	nextText: "Seg&#x3E;",
-	currentText: "Hoxe",
-	monthNames: [ "Xaneiro","Febreiro","Marzo","Abril","Maio","Xuño",
-	"Xullo","Agosto","Setembro","Outubro","Novembro","Decembro" ],
-	monthNamesShort: [ "Xan","Feb","Mar","Abr","Mai","Xuñ",
-	"Xul","Ago","Set","Out","Nov","Dec" ],
-	dayNames: [ "Domingo","Luns","Martes","Mércores","Xoves","Venres","Sábado" ],
-	dayNamesShort: [ "Dom","Lun","Mar","Mér","Xov","Ven","Sáb" ],
-	dayNamesMin: [ "Do","Lu","Ma","Mé","Xo","Ve","Sá" ],
-	weekHeader: "Sm",
-	dateFormat: "dd/mm/yy",
-	firstDay: 1,
-	isRTL: false,
-	showMonthAfterYear: false,
-	yearSuffix: "" };
-datepicker.setDefaults( datepicker.regional.gl );
-
-return datepicker.regional.gl;
-
-} ) );
diff --git a/wiki/inc/lang/gl/lang.php b/wiki/inc/lang/gl/lang.php
deleted file mode 100644
index a83279e..0000000
--- a/wiki/inc/lang/gl/lang.php
+++ /dev/null
@@ -1,318 +0,0 @@
-<?php
-/**
- * galician language file
- *
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * @author Medúlio <medulio@ciberirmandade.org>
- * @author Oscar M. Lage <r0sk10@gmail.com>
- * @author Rodrigo Rega <rodrigorega@gmail.com>
- */
-$lang['encoding']              = 'utf-8';
-$lang['direction']             = 'ltr';
-$lang['doublequoteopening']    = '“';
-$lang['doublequoteclosing']    = 'â€';
-$lang['singlequoteopening']    = '‘';
-$lang['singlequoteclosing']    = '’';
-$lang['apostrophe']            = '’';
-$lang['btn_edit']              = 'Editar esta páxina';
-$lang['btn_source']            = 'Amosar a fonte da páxina';
-$lang['btn_show']              = 'Amosar páxina';
-$lang['btn_create']            = 'Crear esta páxina';
-$lang['btn_search']            = 'Procurar';
-$lang['btn_save']              = 'Gardar';
-$lang['btn_preview']           = 'Previsualizar';
-$lang['btn_top']               = 'Comezo da páxina';
-$lang['btn_newer']             = '<< máis recente';
-$lang['btn_older']             = 'menos recente >>';
-$lang['btn_revs']              = 'Revisións antigas';
-$lang['btn_recent']            = 'Trocos recentes';
-$lang['btn_upload']            = 'Subir';
-$lang['btn_cancel']            = 'Cancelar';
-$lang['btn_index']             = 'Ãndice';
-$lang['btn_secedit']           = 'Editar';
-$lang['btn_login']             = 'Iniciar sesión';
-$lang['btn_logout']            = 'Rematar sesión';
-$lang['btn_admin']             = 'Administración';
-$lang['btn_update']            = 'Actualizar';
-$lang['btn_delete']            = 'Borrar';
-$lang['btn_back']              = 'Atrás';
-$lang['btn_backlink']          = 'Ligazóns con isto';
-$lang['btn_subscribe']         = 'Avísame dos trocos na páxina';
-$lang['btn_profile']           = 'Actualizar Perfil';
-$lang['btn_reset']             = 'Reiniciar';
-$lang['btn_resendpwd']         = 'Establecer novo contrasinal';
-$lang['btn_draft']             = 'Editar borrador';
-$lang['btn_recover']           = 'Recuperar borrador';
-$lang['btn_draftdel']          = 'Eliminar borrador';
-$lang['btn_revert']            = 'Restaurar';
-$lang['btn_register']          = 'Rexístrate';
-$lang['btn_apply']             = 'Aplicar';
-$lang['btn_media']             = 'Xestor de Arquivos-Media';
-$lang['loggedinas']            = 'Iniciaches sesión como:';
-$lang['user']                  = 'Nome de Usuario';
-$lang['pass']                  = 'Contrasinal';
-$lang['newpass']               = 'Novo Contrasinal';
-$lang['oldpass']               = 'Confirmar contrasinal actual';
-$lang['passchk']               = 'de novo';
-$lang['remember']              = 'Lémbrame';
-$lang['fullname']              = 'Nome Completo';
-$lang['email']                 = 'Correo-e';
-$lang['profile']               = 'Perfil de Usuario';
-$lang['badlogin']              = 'Sentímolo, mais o nome de usuario ou o contrasinal non son correctos.';
-$lang['minoredit']             = 'Trocos Menores';
-$lang['draftdate']             = 'Borrador gardado automaticamente en';
-$lang['nosecedit']             = 'A páxina mudou entrementres, a información da sección estaba desfasada polo que se cargou a páxina completa no seu lugar.';
-$lang['regmissing']            = 'Sentímolo, mais tes que cubrir todos os campos.';
-$lang['reguexists']            = 'Sentímolo, mais xa existe un usuario con ese nome.';
-$lang['regsuccess']            = 'O usuario foi creado e o contrasinal enviado por correo-e.';
-$lang['regsuccess2']           = 'O usuario foi creado.';
-$lang['regmailfail']           = 'Semella que houbo un erro ao tentar enviar o correo-e co contrasinal. Por favor, contacta co administrador!';
-$lang['regbadmail']            = 'O enderezo de correo-e proporcionado semella incorrecto - se consideras que isto é un erro, contacta co administrador';
-$lang['regbadpass']            = 'Os dous contrasinais inseridos non coinciden, por favor téntao de novo.';
-$lang['regpwmail']             = 'O teu contrasinal do DokuWiki';
-$lang['reghere']               = 'Aínda non tes unha conta? Crea a túa';
-$lang['profna']                = 'Este wiki non permite modificacións dos perfís';
-$lang['profnochange']          = 'Non hai trocos, nada que facer.';
-$lang['profnoempty']           = 'Non se permite un nome ou un enderezo de correo-e baleiros.';
-$lang['profchanged']           = 'Perfil de usuario actualizado correctamente.';
-$lang['pwdforget']             = 'Esqueceches o teu contrasinal? Consegue un novo';
-$lang['resendna']              = 'Este wiki non permite o reenvío de contrasinais.';
-$lang['resendpwd']             = 'Establecer novo contrasinal para';
-$lang['resendpwdmissing']      = 'Sentímolo, tes que cubrir todos os campos.';
-$lang['resendpwdnouser']       = 'Sentímolo, non atopamos este usuario no noso banco de datos.';
-$lang['resendpwdbadauth']      = 'Sentímolo, mais este código de autorización non é válido. Asegúrate de que usaches a ligazón completa de confirmación.';
-$lang['resendpwdconfirm']      = 'Enviouse unha ligazón de confirmación por correo-e.';
-$lang['resendpwdsuccess']      = 'O teu novo contrasinal foi enviado por correo-e.';
-$lang['license']               = 'O contido deste wiki, agás onde se indique o contrario, ofrécese baixo da seguinte licenza:';
-$lang['licenseok']             = 'Nota: Ao editares esta páxina estás a aceptar o licenciamento do contido baixo da seguinte licenza:';
-$lang['searchmedia']           = 'Procurar nome de arquivo:';
-$lang['searchmedia_in']        = 'Procurar en %s';
-$lang['txt_upload']            = 'Escolle o arquivo para subir:';
-$lang['txt_filename']          = 'Subir como (opcional):';
-$lang['txt_overwrt']           = 'Sobrescribir arquivo existente';
-$lang['maxuploadsize']         = 'Subida máxima %s por arquivo.';
-$lang['lockedby']              = 'Bloqueado actualmente por:';
-$lang['lockexpire']            = 'O bloqueo remata o:';
-$lang['js']['willexpire']      = 'O teu bloqueo para editares esta páxina vai caducar nun minuto.\nPara de evitar conflitos, emprega o botón de previsualización para reiniciares o contador do tempo de bloqueo.';
-$lang['js']['notsavedyet']     = 'Perderanse os trocos non gardados.
-Está certo de quereres continuar?';
-$lang['js']['searchmedia']     = 'Procurar ficheiros';
-$lang['js']['keepopen']        = 'Manter a fiestra aberta na selección';
-$lang['js']['hidedetails']     = 'Agochar Pormenores';
-$lang['js']['mediatitle']      = 'Configuración de ligazón';
-$lang['js']['mediadisplay']    = 'Tipo de ligazón';
-$lang['js']['mediaalign']      = 'Aliñamento';
-$lang['js']['mediasize']       = 'Tamaño de imaxe';
-$lang['js']['mediatarget']     = 'Albo da ligazón';
-$lang['js']['mediaclose']      = 'Fechar';
-$lang['js']['mediainsert']     = 'Inserir';
-$lang['js']['mediadisplayimg'] = 'Amosar a imaxe';
-$lang['js']['mediadisplaylnk'] = 'Amosar só a ligazón';
-$lang['js']['mediasmall']      = 'Versión reducida';
-$lang['js']['mediamedium']     = 'Versión media';
-$lang['js']['medialarge']      = 'Versión grande';
-$lang['js']['mediaoriginal']   = 'Versión orixinal';
-$lang['js']['medialnk']        = 'Ligazón para a páxina de pormenores';
-$lang['js']['mediadirect']     = 'Ligazón directa para o orixinal';
-$lang['js']['medianolnk']      = 'Sen ligazón';
-$lang['js']['medianolink']     = 'Non ligar a imaxe';
-$lang['js']['medialeft']       = 'Aliñar a imaxe á esquerda';
-$lang['js']['mediaright']      = 'Aliñar a imaxe á dereita';
-$lang['js']['mediacenter']     = 'Aliñar a iamxe ao medio';
-$lang['js']['medianoalign']    = 'Non empregar aliñamento';
-$lang['js']['nosmblinks']      = 'A ligazón aos compartidos do Windows só funciona no Microsoft Internet Explorer.
-Sempre podes copiar e colar a ligazón.';
-$lang['js']['linkwiz']         = 'Asistente de ligazóns';
-$lang['js']['linkto']          = 'Ligazón para:';
-$lang['js']['del_confirm']     = 'Estás certo de quereres eliminar os elementos seleccionados?';
-$lang['js']['restore_confirm'] = 'Realmente desexas restaurar esta versión?';
-$lang['js']['media_diff']      = 'Ver as diferencias:';
-$lang['js']['media_diff_both'] = 'Cara a Cara';
-$lang['js']['media_diff_opacity'] = 'Opacidade';
-$lang['js']['media_diff_portions'] = 'Porcións';
-$lang['js']['media_select']    = 'Selecciona arquivos...';
-$lang['js']['media_upload_btn'] = 'Subir';
-$lang['js']['media_done_btn']  = 'Feito';
-$lang['js']['media_drop']      = 'Solta aquí os arquivos a subir';
-$lang['js']['media_cancel']    = 'eliminar';
-$lang['js']['media_overwrt']   = 'Sobreescribir os arquivos existentes';
-$lang['rssfailed']             = 'Houbo un erro ao tentar obter esta corrente RSS: ';
-$lang['nothingfound']          = 'Non se atopou nada.';
-$lang['mediaselect']           = 'Arquivos-Media';
-$lang['uploadsucc']            = 'Subida correcta';
-$lang['uploadfail']            = 'Erra na subida. Pode que sexa un problema de permisos?';
-$lang['uploadwrong']           = 'Subida denegada. Esta extensión de arquivo non está permitida!';
-$lang['uploadexist']           = 'Xa existe o arquivo. Non se fixo nada.';
-$lang['uploadbadcontent']      = 'O contido subido non concorda coa extensión do arquivo %s.';
-$lang['uploadspam']            = 'A subida foi bloqueada pola lista negra de correo-lixo.';
-$lang['uploadxss']             = 'A subida foi bloqueada por un posíbel contido malicioso.';
-$lang['uploadsize']            = 'O arquivo subido é grande de máis. (máx. %s)';
-$lang['deletesucc']            = 'O arquivo "%s" foi eliminado.';
-$lang['deletefail']            = '"%s" non puido ser eliminado - comproba os permisos.';
-$lang['mediainuse']            = 'O arquivo "%s" non foi eliminado - aínda está en uso.';
-$lang['namespaces']            = 'Nomes de espazos';
-$lang['mediafiles']            = 'Arquivos dispoñíbeis en';
-$lang['accessdenied']          = 'Non tes permitido ver esta páxina.';
-$lang['mediausage']            = 'Emprega a seguinte sintaxe para inserires unha referencia a este arquivo:';
-$lang['mediaview']             = 'Ver arquivo orixinal';
-$lang['mediaroot']             = 'raigaña';
-$lang['mediaupload']           = 'Sube aquí un arquivo ao nome de espazo actual. Para creares sub-nomes de espazos deberás antepoñelos ao nome indicado en "Subir como" separados por dous puntos.';
-$lang['mediaextchange']        = 'Extensión de arquivo mudada de .%s a .%s!';
-$lang['reference']             = 'Referencias para';
-$lang['ref_inuse']             = 'O arquivo non pode ser eliminado, xa que aínda está a ser usado polas seguintes páxinas:';
-$lang['ref_hidden']            = 'Algunhas referencias están en páxinas para as cales non tes permisos de lectura';
-$lang['hits']                  = 'Vistas';
-$lang['quickhits']             = 'Nomes de páxinas coincidentes';
-$lang['toc']                   = 'Táboa de Contidos';
-$lang['current']               = 'actual';
-$lang['yours']                 = 'A túa Versión';
-$lang['diff']                  = 'Amosar diferenzas coa versión actual';
-$lang['diff2']                 = 'Amosar diferenzas entre as revisións seleccionadas';
-$lang['difflink']              = 'Enlazar a esta vista de comparación';
-$lang['diff_type']             = 'Ver diferenzas:';
-$lang['diff_inline']           = 'Por liña';
-$lang['diff_side']             = 'Cara a Cara';
-$lang['line']                  = 'Liña';
-$lang['breadcrumb']            = 'Trazado:';
-$lang['youarehere']            = 'Estás aquí:';
-$lang['lastmod']               = 'Última modificación:';
-$lang['by']                    = 'por';
-$lang['deleted']               = 'eliminado';
-$lang['created']               = 'creado';
-$lang['restored']              = 'revisión antiga restaurada (%s)';
-$lang['external_edit']         = 'edición externa';
-$lang['summary']               = 'Resumo da edición';
-$lang['noflash']               = 'Precísase o <a href="http://www.adobe.com/products/flashplayer/">Extensión Adobe Flash</a> para amosar este contido.';
-$lang['download']              = 'Descargar Retallo (Snippet)';
-$lang['tools']                 = 'Ferramentas';
-$lang['user_tools']            = 'Ferramentas de usuario';
-$lang['site_tools']            = 'Ferramentas do sitio';
-$lang['page_tools']            = 'Ferramentas de páxina';
-$lang['skip_to_content']       = 'Pasar ao contido';
-$lang['sidebar']               = 'Barra lateral';
-$lang['mail_newpage']          = 'páxina engadida:';
-$lang['mail_changed']          = 'páxina mudada:';
-$lang['mail_subscribe_list']   = 'páxinas mudadas en nome de espazo:';
-$lang['mail_new_user']         = 'Novo usuario:';
-$lang['mail_upload']           = 'arquivo subido:';
-$lang['changes_type']          = 'Ver cambios';
-$lang['pages_changes']         = 'Páxinas';
-$lang['media_changes']         = 'Arquivos-Media';
-$lang['both_changes']          = 'Ambos, páxinas e arquivos-media';
-$lang['qb_bold']               = 'Texto Resaltado';
-$lang['qb_italic']             = 'Texto en Cursiva';
-$lang['qb_underl']             = 'Texto Subliñado';
-$lang['qb_code']               = 'Texto de Código';
-$lang['qb_strike']             = 'Texto Riscado';
-$lang['qb_h1']                 = 'Liña de Cabeceira de Nivel 1';
-$lang['qb_h2']                 = 'Liña de Cabeceira de Nivel 2';
-$lang['qb_h3']                 = 'Liña de Cabeceira de Nivel 3';
-$lang['qb_h4']                 = 'Liña de Cabeceira de Nivel 4';
-$lang['qb_h5']                 = 'Liña de Cabeceira de Nivel 5';
-$lang['qb_h']                  = 'Liña de Cabeceira';
-$lang['qb_hs']                 = 'Escoller Liña de Cabeceira';
-$lang['qb_hplus']              = 'Liña de Cabeceira Máis Alta';
-$lang['qb_hminus']             = 'Liña de Cabeceira Máis Baixa';
-$lang['qb_hequal']             = 'Liña de Cabeceira ao Mesmo Nivel';
-$lang['qb_link']               = 'Ligazón Interna';
-$lang['qb_extlink']            = 'Ligazón Externa';
-$lang['qb_hr']                 = 'Liña Horizontal';
-$lang['qb_ol']                 = 'Elemento de Lista Ordenada';
-$lang['qb_ul']                 = 'Elemento de Lista Desordenada';
-$lang['qb_media']              = 'Engadir Imaxes e Outros Arquivos';
-$lang['qb_sig']                = 'Inserir Sinatura';
-$lang['qb_smileys']            = 'Risoños';
-$lang['qb_chars']              = 'Caracteres Especiais';
-$lang['upperns']               = 'choutar ao nome de espazo pai';
-$lang['metaedit']              = 'Editar Metadatos';
-$lang['metasaveerr']           = 'Non se puideron escribir os metadatos';
-$lang['metasaveok']            = 'Metadatos gardados';
-$lang['btn_img_backto']            = 'Volver a %s';
-$lang['img_title']             = 'Título:';
-$lang['img_caption']           = 'Lenda:';
-$lang['img_date']              = 'Data:';
-$lang['img_fname']             = 'Nome de arquivo:';
-$lang['img_fsize']             = 'Tamaño:';
-$lang['img_artist']            = 'Fotógrafo:';
-$lang['img_copyr']             = 'Copyright:';
-$lang['img_format']            = 'Formato:';
-$lang['img_camera']            = 'Cámara:';
-$lang['img_keywords']          = 'Verbas chave:';
-$lang['img_width']             = 'Ancho:';
-$lang['img_height']            = 'Alto:';
-$lang['btn_mediaManager']           = 'Ver no xestor de arquivos-media';
-$lang['subscr_subscribe_success'] = 'Engadido %s á lista de subscrición para %s';
-$lang['subscr_subscribe_error'] = 'Erro ao tentar engadir %s á lista de subscrición para %s';
-$lang['subscr_subscribe_noaddress'] = 'Non hai enderezos asociados co teu inicio de sesión, non é posíbel engadirte á lista de subscrición';
-$lang['subscr_unsubscribe_success'] = 'Eliminado %s da lista de subscrición para %s';
-$lang['subscr_unsubscribe_error'] = 'Erro ao tentar eliminar %s da lista de subscrición para %s';
-$lang['subscr_already_subscribed'] = '%s xa está subscrito a %s';
-$lang['subscr_not_subscribed'] = '%s non está subscrito a %s';
-$lang['subscr_m_not_subscribed'] = 'Agora mesmo non estás subscrito á páxina ou nome de espazo actual';
-$lang['subscr_m_new_header']   = 'Engadir subscrición';
-$lang['subscr_m_current_header'] = 'Subscricións actuais';
-$lang['subscr_m_unsubscribe']  = 'Desubscribir';
-$lang['subscr_m_subscribe']    = 'Subscribir';
-$lang['subscr_m_receive']      = 'Recibir';
-$lang['subscr_style_every']    = 'correo-e en cada troco';
-$lang['authtempfail']          = 'A autenticación de usuario non está dispoñible de xeito temporal. De persistir esta situación, por favor, informa ao Administrador do teu Wiki.';
-$lang['i_chooselang']          = 'Escolle o teu idioma';
-$lang['i_installer']           = 'Instalador do DokuWiki';
-$lang['i_wikiname']            = 'Nome do Wiki';
-$lang['i_enableacl']           = 'Activar ACL (recomendado)';
-$lang['i_superuser']           = 'Super-usuario';
-$lang['i_problems']            = 'O instalador atopou algúns problemas, que se amosan de seguido. Non poderás continuar até que os soluciones.';
-$lang['i_modified']            = 'Por razóns de seguridade este script só funcionará cunha instalación nova e sen modificar do Dokuwiki.
-                         Podes ou ben extraer de novo os arquivos dende o paquete descargado ou consultar as
-                         <a href="http://dokuwiki.org/install">instruccións completas de instalación do Dokuwiki</a>';
-$lang['i_funcna']              = 'A función <code>%s</code> do PHP non está dispoñíbel. Pode que o teu provedor de hospedaxe a desactivase por algún motivo?';
-$lang['i_phpver']              = 'A túa versión <code>%s</code> do PHP é inferior á <code>%s</code> precisa. Debes actualizar a túa instalación do PHP.';
-$lang['i_permfail']            = '<code>%s</code> non é escribíbel polo DokuWiki. Debes corrixir a configuración de permisos deste directorio!';
-$lang['i_confexists']          = '<code>%s</code> xa existe';
-$lang['i_writeerr']            = 'Non se puido crear <code>%s</code>. Terás de comprobar os permisos do directorio/arquivo e crear o ficheiro de xeito manual.';
-$lang['i_badhash']             = 'dokuwiki.php irrecoñecíbel ou modificado (hash=<code>%s</code>)';
-$lang['i_badval']              = '<code>%s</code> - ilegal ou valor baleiro';
-$lang['i_success']             = 'A configuración rematou correctamente. Agora podes eliminar o arquivo install.php. Continúa deica o
-                        <a href="doku.php?id=wiki:welcome">teu novo DokuWiki</a>.';
-$lang['i_failure']             = 'Houbo algúns erros ao tentar escribir os arquivos de configuración. Pode que precises solucionalos de xeito manual antes
-                         de poderes empregar <a href="doku.php?id=wiki:welcome">o teu novo DokuWiki</a>.';
-$lang['i_policy']              = 'Regras iniciais da ACL';
-$lang['i_pol0']                = 'Wiki Aberto (lectura, escritura, subida de arquivos para todas as persoas)';
-$lang['i_pol1']                = 'Wiki Público (lectura para todas as persoas, escritura e subida de arquivos para usuarios rexistrados)';
-$lang['i_pol2']                = 'Wiki Fechado (lectura, escritura, subida de arquivos só para usuarios rexistrados)';
-$lang['i_retry']               = 'Tentar de novo';
-$lang['i_license']             = 'Por favor escolla a licenza para o contido:';
-$lang['recent_global']         = 'Agora mesmo estás a ver os trocos no nome de espazo <b>%s</b>. Tamén podes <a href="%s">ver os trocos recentes no Wiki enteiro</a>.';
-$lang['years']                 = 'hai %d anos';
-$lang['months']                = 'hai %d meses';
-$lang['weeks']                 = 'hai %d semanas';
-$lang['days']                  = 'hai %d días';
-$lang['hours']                 = 'hai %d horas';
-$lang['minutes']               = 'hai %d minutos';
-$lang['seconds']               = 'hai %d segundos';
-$lang['wordblock']             = 'Non se gardaron os cambios porque conteñen texto bloqueado (spam).';
-$lang['media_uploadtab']       = 'Subir';
-$lang['media_searchtab']       = 'Buscar';
-$lang['media_file']            = 'Arquivo';
-$lang['media_viewtab']         = 'Ver';
-$lang['media_edittab']         = 'Editar';
-$lang['media_historytab']      = 'Histórico';
-$lang['media_list_thumbs']     = 'Miniaturas';
-$lang['media_list_rows']       = 'Filas';
-$lang['media_sort_name']       = 'Nome';
-$lang['media_sort_date']       = 'Data';
-$lang['media_namespaces']      = 'Escolla espazo';
-$lang['media_files']           = 'Arquivos en %s';
-$lang['media_upload']          = 'Subir a %s';
-$lang['media_search']          = 'Buscar en %s';
-$lang['media_view']            = '%s';
-$lang['media_viewold']         = '%s en %s';
-$lang['media_edit']            = 'Editar %s';
-$lang['media_history']         = 'Historia de %s';
-$lang['media_meta_edited']     = 'datos meta editados';
-$lang['media_perm_read']       = 'Sentímolo, non tes permisos suficientes para ler arquivos.';
-$lang['media_perm_upload']     = 'Sentímolo, non tes permisos suficientes para subir arquivos.';
-$lang['media_update']          = 'Subir nova versión';
-$lang['media_restore']         = 'Restaurar esta versión';
-$lang['email_signature_text'] = 'Este correo foi xerado polo DokuWiki en
-@DOKUWIKIURL@';
diff --git a/wiki/inc/lang/gl/locked.txt b/wiki/inc/lang/gl/locked.txt
deleted file mode 100644
index 90f9ab0..0000000
--- a/wiki/inc/lang/gl/locked.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Páxina bloqueada ======
-
-Esta páxina está actualmente bloqueada para a edición por outro usuario. Terás que agardar até que este usuario remate coa edición ou a que expire o bloqueo.
diff --git a/wiki/inc/lang/gl/login.txt b/wiki/inc/lang/gl/login.txt
deleted file mode 100644
index 506b30c..0000000
--- a/wiki/inc/lang/gl/login.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Inicio de Sesión ======
-
-Actualmente non iniciaches sesión ningunha! Insire as túas credenciais de identificación para iniciares a sesión. Debes ter as cookies activadas para poderes iniciar unha sesión.
-
diff --git a/wiki/inc/lang/gl/mailtext.txt b/wiki/inc/lang/gl/mailtext.txt
deleted file mode 100644
index bf102e1..0000000
--- a/wiki/inc/lang/gl/mailtext.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-Engadiuse ou mudouse unha páxina no teu DokuWiki. Aquí van os pormenores:
-
-Data              : @DATE@
-Navegador         : @BROWSER@
-Enderezo IP       : @IPADDRESS@
-Nome do Host      : @HOSTNAME@
-Revisión Antiga   : @OLDPAGE@
-Revision Nova     : @NEWPAGE@
-Resumo da Edición : @SUMMARY@
-Usuario         : @USER@
-
-@DIFF@
diff --git a/wiki/inc/lang/gl/mailwrap.html b/wiki/inc/lang/gl/mailwrap.html
deleted file mode 100644
index d257190..0000000
--- a/wiki/inc/lang/gl/mailwrap.html
+++ /dev/null
@@ -1,13 +0,0 @@
-<html>
-<head>
-<title>@TITLE@</title>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-</head>
-<body>
-
-@HTMLBODY@
-
-<br /><hr />
-<small>@EMAILSIGNATURE@</small>
-</body>
-</html>
\ No newline at end of file
diff --git a/wiki/inc/lang/gl/newpage.txt b/wiki/inc/lang/gl/newpage.txt
deleted file mode 100644
index c073f11..0000000
--- a/wiki/inc/lang/gl/newpage.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Este tema aínda non existe ======
-
-Seguiches unha ligazón deica un tema que aínda non existe. Se tes permisos axeitados, podes crealo ti premendo no botón ''Crear esta páxina''.
-
diff --git a/wiki/inc/lang/gl/norev.txt b/wiki/inc/lang/gl/norev.txt
deleted file mode 100644
index af7383d..0000000
--- a/wiki/inc/lang/gl/norev.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-======Non hai tal revisión======
-
-A revisión especificada non existe. Utiliza o botón de ''Revisións Antigas'' para obteres unha listaxe das revisións antigas deste documento.
-
diff --git a/wiki/inc/lang/gl/password.txt b/wiki/inc/lang/gl/password.txt
deleted file mode 100644
index 36f8562..0000000
--- a/wiki/inc/lang/gl/password.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-Ola @FULLNAME@!
-
-Aquí tes os teus datos de usuario para @TITLE@ en @DOKUWIKIURL@
-
-Usuario    : @LOGIN@
-Contrasinal : @PASSWORD@
diff --git a/wiki/inc/lang/gl/preview.txt b/wiki/inc/lang/gl/preview.txt
deleted file mode 100644
index e0f749f..0000000
--- a/wiki/inc/lang/gl/preview.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Previsualización ======
-
-Isto é unha previsualización de como aparecerá o teu texto. Lembra: **Non está gardado** aínda!
-
diff --git a/wiki/inc/lang/gl/pwconfirm.txt b/wiki/inc/lang/gl/pwconfirm.txt
deleted file mode 100644
index 8185560..0000000
--- a/wiki/inc/lang/gl/pwconfirm.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-Ola @FULLNAME@!
-
-Alguén solicitou un novo contrasinal para o teu inicio de sesión
-@TITLE@ en @DOKUWIKIURL@
-
-Se non fuches ti quen o fixo podes ignorar este correo-e.
-
-Para confirmares que esta solicitude foi realmente enviada por ti,
-por favor, visita a seguinte ligazón.
-
-@CONFIRM@
diff --git a/wiki/inc/lang/gl/read.txt b/wiki/inc/lang/gl/read.txt
deleted file mode 100644
index 28f3e1a..0000000
--- a/wiki/inc/lang/gl/read.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-Esta páxina é só de lectura. Podes ver o código fonte, mais non podes mudala. Coméntallo ao teu administrador se consideras que é un erro.
-
diff --git a/wiki/inc/lang/gl/recent.txt b/wiki/inc/lang/gl/recent.txt
deleted file mode 100644
index 622e4d9..0000000
--- a/wiki/inc/lang/gl/recent.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== Trocos Recentes ======
-
-As seguintes páxinas foron mudadas recentemente.
-
-
diff --git a/wiki/inc/lang/gl/register.txt b/wiki/inc/lang/gl/register.txt
deleted file mode 100644
index 4f51f38..0000000
--- a/wiki/inc/lang/gl/register.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Rexistro como novo usuario ======
-
-Cubre toda a información requirida a continuación para creares unha nova conta neste wiki. Asegúrate de forneceres un **enderezo de correo-e válido** - se non se che pide aquí que insiras un contrasinal, recibirás un novo nese enderezo. O nome de usuario deberá ser un [[doku>pagename|nome de páxina]] válido.
-
diff --git a/wiki/inc/lang/gl/registermail.txt b/wiki/inc/lang/gl/registermail.txt
deleted file mode 100644
index aad8481..0000000
--- a/wiki/inc/lang/gl/registermail.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-Rexistrouse un novo usuario. Aquí van os pormenores:
-
-Nome de usuario   : @NEWUSER@
-Nome completo	  : @NEWNAME@
-Correo-e	      : @NEWEMAIL@
-
-Data	        : @DATE@
-Navegador     	: @BROWSER@
-Enderezo IP		: @IPADDRESS@
-Nome do Host	: @HOSTNAME@
diff --git a/wiki/inc/lang/gl/resendpwd.txt b/wiki/inc/lang/gl/resendpwd.txt
deleted file mode 100644
index 0ee2d6c..0000000
--- a/wiki/inc/lang/gl/resendpwd.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Enviar novo contrasinal ======
-
-Insire o teu nome de usuario no seguinte formulario para obteres un novo contrasinal da túa conta neste wiki. Enviarase unha ligazón de confirmación ao teu enderezo rexistrado de correo-e.
diff --git a/wiki/inc/lang/gl/resetpwd.txt b/wiki/inc/lang/gl/resetpwd.txt
deleted file mode 100644
index d3d64e9..0000000
--- a/wiki/inc/lang/gl/resetpwd.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Establecer novo contrasinal ======
-
-Por favor introduzca un novo contrasinal para a súa conta neste wiki.
\ No newline at end of file
diff --git a/wiki/inc/lang/gl/revisions.txt b/wiki/inc/lang/gl/revisions.txt
deleted file mode 100644
index 3d5cccd..0000000
--- a/wiki/inc/lang/gl/revisions.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-======Revisións Antigas======
-
-Estas son as revisións antigas do documento actual. Para retomar unha revisión antiga selecciónaa na seguinte lista, preme en ''Editar esta páxina'' e gárdaa.
-
diff --git a/wiki/inc/lang/gl/searchpage.txt b/wiki/inc/lang/gl/searchpage.txt
deleted file mode 100644
index 6c88493..0000000
--- a/wiki/inc/lang/gl/searchpage.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Procura ======
-
-Podes atopar os resultados da túa procura a continuación. @CREATEPAGEINFO@
-
diff --git a/wiki/inc/lang/gl/showrev.txt b/wiki/inc/lang/gl/showrev.txt
deleted file mode 100644
index 88fb0c3..0000000
--- a/wiki/inc/lang/gl/showrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**Esta é unha revisión antiga do documento!**
-----
diff --git a/wiki/inc/lang/gl/stopwords.txt b/wiki/inc/lang/gl/stopwords.txt
deleted file mode 100644
index 5520cd2..0000000
--- a/wiki/inc/lang/gl/stopwords.txt
+++ /dev/null
@@ -1,692 +0,0 @@
-# Isto é unha lista das verbas que o indexador ignora, unha por liña
-# Cando edites este arquivo asegúrate de usar remates de liña UNIX (nova liña única)
-# Non precisas incluír verbas de menos de 3 caracteres - estas son ignoradas de todas formas
-# Esta lista está baseada nas atopadas en http://www.ranks.nl/stopwords/ (en proceso aínda)
-aberto
-abonda
-abrir
-acabo
-acceder
-acceso
-acordo
-actitude
-actividade
-actividades
-actual
-actualización
-actualizar
-actualmente
-ademais
-ademáis
-adiante
-agardar
-agora
-agás
-ainda
-aínda
-aiquí
-algo
-alguen
-algun
-algunha
-algunhas
-alguén
-algún
-algúns
-alta
-amigos
-ando
-anima
-anos
-ante
-anterior
-anteriores
-antes
-aparece
-aparecen
-apartado
-aperta
-apertas
-apoio
-aqui
-aquí
-arquivo
-arquivos
-artigo
-artigos
-asunto
-atención
-atopar
-atopei
-axuda
-axudar
-baixo
-banda
-base
-bastante
-benvido
-boas
-botar
-buscador
-buscar
-cabo
-cada
-cadra
-caixa
-cales
-calidade
-calquer
-calquera
-cambio
-camiño
-campanha
-campaña
-campañas
-campo
-cando
-cantidade
-canto
-cantos
-cara
-carallo
-cartos
-casa
-case
-caso
-casos
-catro
-centro
-certo
-chea
-chega
-chegar
-chisco
-cidade
-civil
-claro
-coas
-coido
-colaboración
-colaborar
-coma
-comentar
-comentario
-comentarios
-comezar
-como
-comunicación
-comunidade
-común
-concreto
-condicións
-conforme
-conseguir
-conta
-contactar
-contacto
-contas
-contido
-contidos
-contra
-contrario
-control
-copia
-correcto
-correio
-correo
-correoe
-correos
-correspondente
-cousa
-cousas
-coñecemento
-coñezo
-crear
-creo
-cuestión
-cuestións
-cunha
-curioso
-dabondo
-dacordo
-dados
-darlle
-data
-datos
-debate
-debe
-debemos
-deben
-deberiamos
-debería
-decidir
-decisión
-defecto
-defensa
-deica
-deixa
-deixar
-deixo
-deles
-demais
-demasiado
-demáis
-dende
-dentro
-dereitos
-desde
-dese
-deseño
-despois
-desta
-deste
-destes
-diante
-dias
-dicir
-diferentes
-difícil
-digo
-dirección
-directamente
-directorio
-discusión
-discutir
-distintas
-distintos
-distribución
-dixen
-dixo
-doado
-dous
-duas
-dunha
-durante
-días
-dúas
-dúbida
-efectivamente
-eiqui
-eiquí
-eles
-eliminar
-email
-empregar
-emprego
-empresa
-empresas
-enderezo
-enderezos
-engadir
-enlace
-enquisa
-enriba
-entendo
-entidades
-entrada
-entrar
-entre
-entón
-enviar
-envio
-eran
-erro
-erros
-esas
-escribir
-eses
-especial
-especialmente
-espero
-esta
-estaba
-estades
-estado
-estamos
-estan
-estar
-estaría
-estas
-este
-estea
-estes
-estilo
-estiven
-esto
-estou
-está
-están
-estás
-evidentemente
-evitar
-exactamente
-exemplo
-existe
-facelo
-facemos
-facendo
-facer
-faga
-fagan
-fago
-fala
-falamos
-falando
-falar
-falla
-falo
-falta
-favor
-fazer
-feita
-feito
-ferreira
-final
-finalmente
-fios
-fixen
-fixo
-fondo
-fora
-forma
-formas
-foro
-foron
-foros
-fose
-fotos
-funciona
-funcionamento
-futuro
-fóra
-gracias
-gran
-grande
-grandes
-grazas
-grupo
-grupos
-gusta
-haber
-haberá
-habería
-había
-haxa
-historia
-home
-hora
-horas
-houbese
-houbo
-hoxe
-idea
-ideas
-ideia
-igual
-imos
-importancia
-importante
-importantes
-inda
-info
-información
-informar
-informe
-inicial
-iniciativa
-inicio
-intención
-interesa
-interesante
-interese
-iste
-isto
-lado
-lembro
-letras
-leva
-levamos
-levar
-libre
-libro
-lista
-listas
-liña
-liñas
-lles
-local
-logo
-longo
-lugar
-lugo
-maior
-maiores
-maioría
-mais
-mandar
-maneira
-manter
-marcha
-material
-mañá
-media
-mediante
-medida
-medio
-mellor
-membros
-menos
-mensaxe
-mensaxes
-mentres
-menú
-mesa
-meses
-mesma
-mesmo
-mesmos
-meter
-meus
-milhor
-millor
-minha
-mirar
-miña
-modificar
-moita
-moitas
-moito
-moitos
-momento
-mudar
-mundo
-máis
-mínimo
-nada
-nbsp
-necesario
-necesidade
-nese
-nesta
-neste
-nestes
-ningunha
-ninguén
-ningún
-noite
-nome
-normal
-nosa
-nosas
-noso
-nosos
-nota
-nova
-novas
-novo
-novos
-nunca
-nunha
-número
-ofrece
-ofrecer
-ollo
-onde
-onte
-oops
-opción
-opcións
-opinión
-orixinal
-outra
-outras
-outro
-outros
-paga
-palabras
-para
-parabens
-parece
-pareceme
-parte
-partes
-participación
-participar
-partido
-paréceme
-pasa
-pasado
-pasar
-paso
-pedir
-pena
-pendente
-pendentes
-pensades
-pensando
-pensar
-penso
-pequena
-pequeno
-perfectamente
-perfecto
-permite
-pero
-persoa
-persoal
-persoas
-pode
-podedes
-podemos
-poden
-poder
-poderiamos
-podería
-poderíamos
-podes
-podo
-poida
-poidan
-pois
-pola
-polas
-polo
-polos
-por
-porque
-porén
-posibel
-posibilidade
-posibilidades
-posible
-posta
-posto
-pouco
-poucos
-poñer
-precisamente
-preciso
-pregos
-pregunta
-presente
-primeira
-primeiro
-principal
-principio
-proba
-probar
-probas
-problema
-problemas
-proceso
-prol
-propia
-propio
-proposta
-propostas
-propoño
-propoñovos
-proxecto
-proxectos
-publicar
-punto
-pódese
-queda
-quedar
-quedou
-queira
-quen
-quere
-queredes
-queremos
-queren
-queres
-quero
-quizáis
-quot
-razón
-real
-realidade
-realmente
-recibir
-referencia
-relación
-rematar
-remate
-respecto
-resposta
-respostar
-respostas
-resto
-resulta
-resultado
-revisar
-revisión
-riba
-sabe
-sabedes
-saber
-sacar
-saúdo
-saúdos
-segue
-seguinte
-seguintes
-seguir
-segunda
-segundo
-seguramente
-seguro
-seica
-semana
-semanas
-semella
-semellante
-sempre
-sendo
-senon
-sentido
-senón
-seria
-serie
-será
-serán
-sería
-seus
-sexa
-sexan
-similar
-simplemente
-sitio
-sitios
-situación
-soamente
-sobre
-solución
-somos
-suas
-superior
-suponho
-suposto
-supoño
-sábado
-súas
-tamen
-tampouco
-tamén
-tanto
-tarde
-tedes
-temos
-tempo
-tempos
-tendo
-tenho
-tentar
-tería
-teña
-teñamos
-teñan
-teñen
-teño
-timos
-tipo
-tiven
-tiña
-toda
-todas
-todo
-todos
-tomar
-total
-totalmente
-trabalho
-traballando
-traballar
-traballo
-traballos
-tras
-trata
-través
-tres
-troco
-trocos
-troques
-tódalas
-tódolos
-última
-último
-últimos
-unha
-unhas
-única
-únicamente
-únicousar
-usuario
-usuarios
-utilizar
-vaia
-vale
-vamos
-varias
-varios
-veces
-verdade
-vexo
-veño
-vida
-vindeiro
-visitantes
-visitas
-vista
-visto
-volta
-vosa
-wink
-xeito
-xeitos
-xente
-xerais
-xeral
-xunto
-zona
diff --git a/wiki/inc/lang/gl/subscr_digest.txt b/wiki/inc/lang/gl/subscr_digest.txt
deleted file mode 100644
index 275a7d5..0000000
--- a/wiki/inc/lang/gl/subscr_digest.txt
+++ /dev/null
@@ -1,16 +0,0 @@
-Ola.
-
-Houbo mudanzas na páxina @PAGE@ do wiki @TITLE@.
-Estes son os trocos:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-Revisión Antiga: @OLDPAGE@
-Revisión Nova: @NEWPAGE@
-
-Para cancelares as notificacións da páxina inicia sesión no wiki en
-@DOKUWIKIURL@ e logo visita
-@SUBSCRIBE@
-e desubscríbete do seguimento dos trocos da páxina e/ou nome de espazo.
diff --git a/wiki/inc/lang/gl/subscr_form.txt b/wiki/inc/lang/gl/subscr_form.txt
deleted file mode 100644
index e8a6fe6..0000000
--- a/wiki/inc/lang/gl/subscr_form.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Xestión de Subscrición ======
-
-Esta páxina permíteche xestionar as túas subscricións para a páxina e nome de espazo actuais.
\ No newline at end of file
diff --git a/wiki/inc/lang/gl/subscr_list.txt b/wiki/inc/lang/gl/subscr_list.txt
deleted file mode 100644
index 8ee1a7a..0000000
--- a/wiki/inc/lang/gl/subscr_list.txt
+++ /dev/null
@@ -1,13 +0,0 @@
-Ola.
-
-Houbo trocos en páxinas do nome de espazo @PAGE@ do wiki @TITLE@.
-Estas son as páxinas que mudaron:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-Para cancelares as notificacións da páxina inicia sesión no wiki en
-@DOKUWIKIURL@ e logo visita
-@SUBSCRIBE@
-e desubscríbete do seguimento dos trocos da páxina e/ou nome de espazo.
diff --git a/wiki/inc/lang/gl/subscr_single.txt b/wiki/inc/lang/gl/subscr_single.txt
deleted file mode 100644
index b30c817..0000000
--- a/wiki/inc/lang/gl/subscr_single.txt
+++ /dev/null
@@ -1,19 +0,0 @@
-Ola.
-
-Houbo trocos na páxina @PAGE@ do wiki @TITLE@.
-Estes son os trocos:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-Data : @DATE@
-Usuario : @USER@
-Resumo do Edición: @SUMMARY@
-Revisión Antiga: @OLDPAGE@
-Revisión Nova: @NEWPAGE@
-
-Para cancelares as notificacións da páxina inicia sesión no wiki en
-@DOKUWIKIURL@ e logo visita
-@SUBSCRIBE@
-e desubscríbete do seguimento dos trocos da páxina e/ou nome de espazo.
diff --git a/wiki/inc/lang/gl/updateprofile.txt b/wiki/inc/lang/gl/updateprofile.txt
deleted file mode 100644
index 8620dea..0000000
--- a/wiki/inc/lang/gl/updateprofile.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== Actualizar o perfil da túa conta ======
-
-Só precisas cubrir os campos que desexes mudar.  Non podes mudar o teu nome de usuario.
-
-
diff --git a/wiki/inc/lang/gl/uploadmail.txt b/wiki/inc/lang/gl/uploadmail.txt
deleted file mode 100644
index c01bc7d..0000000
--- a/wiki/inc/lang/gl/uploadmail.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-Subiuse un arquivo ao teu DokuWiki. Aquí van os pormenores:
-
-Arquivo : @MEDIA@
-Data : @DATE@
-Navegador : @BROWSER@
-Enderezo IP : @IPADDRESS@
-Nome do Host : @HOSTNAME@
-Tamaño : @SIZE@
-Tipo MIME : @MIME@
-Usuario : @USER@
diff --git a/wiki/inc/lang/gl/wordblock.txt b/wiki/inc/lang/gl/wordblock.txt
deleted file mode 100644
index ec8d67a..0000000
--- a/wiki/inc/lang/gl/wordblock.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Bloqueo por Correo-lixo ======
-
-Os teus trocos **non** foron gardados porque conteñen unha ou varias verbas bloqueadas. Se tentaches deixar correo-lixo no wiki -- Estívoche ben! Se consideras que é un erro, contacta co administrador deste Wiki.
-
diff --git a/wiki/inc/lang/he/admin.txt b/wiki/inc/lang/he/admin.txt
deleted file mode 100644
index ada73e5..0000000
--- a/wiki/inc/lang/he/admin.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== ניהול ======
-
-ניתן ×œ×ž×¦×•× ×ž×˜×” רשימה של משימות ניהול זמינות ב-DokuWiki.
-
diff --git a/wiki/inc/lang/he/adminplugins.txt b/wiki/inc/lang/he/adminplugins.txt
deleted file mode 100644
index a7a6471..0000000
--- a/wiki/inc/lang/he/adminplugins.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== ×ª×•×¡×¤×™× × ×•×¡×¤×™× =====
\ No newline at end of file
diff --git a/wiki/inc/lang/he/backlinks.txt b/wiki/inc/lang/he/backlinks.txt
deleted file mode 100644
index dfcdd22..0000000
--- a/wiki/inc/lang/he/backlinks.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== ×§×™×©×•×¨×™× ×œ×חור ======
-
-זוהי רשימת ×“×¤×™× ×שר נר××” ×›×™ ×”× ×ž×§×©×¨×™× ×œ×“×£ ממנו הגעת.
diff --git a/wiki/inc/lang/he/conflict.txt b/wiki/inc/lang/he/conflict.txt
deleted file mode 100644
index c1cccdf..0000000
--- a/wiki/inc/lang/he/conflict.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-====== קיימת גרסה עדכנית יותר של הקובץ ======
-
-ישנה גרסה עדכנית יותר של המסמך. מצב ×›×–×” קורה ×›×שר משתמש ×חר שינה ×ת המסמך בזמן שערכת ×ותו.
-
-מומלץ לעיין ×‘×”×‘×“×œ×™× ×”×ž×•×¤×™×¢×™× ×œ×”×œ×Ÿ ול×חר מכן להחליט ×יזו גרסה כד××™ לשמור. לחיצה על הכפתור "שמירה" תשמור ×ת הגרסה שערכת. לחיצה על הכפתור "ביטול" תשמור ×ת הגרסה הקיימת.
-
diff --git a/wiki/inc/lang/he/denied.txt b/wiki/inc/lang/he/denied.txt
deleted file mode 100644
index a2e19f3..0000000
--- a/wiki/inc/lang/he/denied.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== הרש××” נדחתה ======
-
-×נו ×ž×¦×˜×¢×¨×™× ×ך ×ין לך הרש×ות מת×ימות כדי להמשיך.
-
diff --git a/wiki/inc/lang/he/diff.txt b/wiki/inc/lang/he/diff.txt
deleted file mode 100644
index f1216bb..0000000
--- a/wiki/inc/lang/he/diff.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== ×”×‘×“×œ×™× ======
-
-×›×ן ×ž×•×¦×’×™× ×”×”×‘×“×œ×™× ×‘×™×Ÿ הגרסה שנבחרה והגרסה הנוכחית של הדף.
-
diff --git a/wiki/inc/lang/he/draft.txt b/wiki/inc/lang/he/draft.txt
deleted file mode 100644
index b999cc1..0000000
--- a/wiki/inc/lang/he/draft.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== × ×ž×¦× ×§×•×‘×¥ טיוטה ======
-
-העריכה ×”×חרונה שבוצעה לדף ×–×” ×œ× ×”×•×©×œ×ž×” כר×וי. DokuWiki שמר ב×ופן ×וטומטי טיוטה של העבודה וב×פשרותך להשתמש בה  כדי להמשיך ×ת העריכה. ניתן לר×ות להלן ×ת ×”× ×ª×•× ×™× ×©× ×©×ž×¨×• ×ž×”×¤×¢× ×”×§×•×“×ž×ª.
-
-ב×פשרותך לבחור ב//שחזור הטיוטה// של ×ותה עריכה //מחיקת הטיוטה// ×ו //ביטול// העריכה כליל.
\ No newline at end of file
diff --git a/wiki/inc/lang/he/edit.txt b/wiki/inc/lang/he/edit.txt
deleted file mode 100644
index 74b3cef..0000000
--- a/wiki/inc/lang/he/edit.txt
+++ /dev/null
@@ -1 +0,0 @@
-עריכת הדף ולחיצה על הלחצן "שמירה" תעדכן ×ת תוכנו. מומלץ לעיין בדף ×”[[wiki:syntax|תחביר]] כדי להכיר ×ת כללי תחביר הוויקי. × × ×œ×¢×¨×•×š ×ת הדף רק ×× ×”×“×‘×¨ נעשה כדי **לשפר** ×ותו. ×× ×”×¢×¨×™×›×” ×”×™× ×œ×¦×•×¨×š התנסות מומלץ לבקר ב[[playground:playground|×רגז החול]].
diff --git a/wiki/inc/lang/he/editrev.txt b/wiki/inc/lang/he/editrev.txt
deleted file mode 100644
index e33001f..0000000
--- a/wiki/inc/lang/he/editrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**הדף שנפתח ×”×•× ×’×¨×¡×” ישנה של המסמך!** לחיצה על הלחצן "שמירה" תשחזר ×ת המסמך לגרסה המוצגת כעת.
-----
\ No newline at end of file
diff --git a/wiki/inc/lang/he/index.txt b/wiki/inc/lang/he/index.txt
deleted file mode 100644
index 4b0623f..0000000
--- a/wiki/inc/lang/he/index.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== מפת ×תר ======
-
-זהו קובץ מפת ×תר ×”× ×ž×¦× ×ž×¢×œ לכל ×”×“×¤×™× ×”×ž××•×¨×’× ×™× ×‘[[ויקי:דוקיוויקי]].
-
diff --git a/wiki/inc/lang/he/install.html b/wiki/inc/lang/he/install.html
deleted file mode 100644
index e2cc179..0000000
--- a/wiki/inc/lang/he/install.html
+++ /dev/null
@@ -1,13 +0,0 @@
-<p>דף ×–×” מסייע בהליכי ההתקנה וההגדרה הר××©×•× ×™×™× ×©×œ
-<a href="http://dokuwiki.org">Dokuwiki</a>. מידע נוסף על תכנית התקנה זו זמין בדף
-<a href="http://dokuwiki.org/installer">התיעוד שלו</a>.</p>
-
-<p>DokuWiki עושה שימוש ×‘×§×‘×¦×™× ×¨×’×™×œ×™× ×œ×©×ž×™×¨×ª דפי ויקי ומידע נוסף הקשור ×œ×“×¤×™× ×לו (לדוגמה: תמונות, רשימות חיפוש, גרס×ות קודמות וכו׳).
-לצורך תפקוד תקין DokuWiki <strong>חייב</strong> גישה לכתיבה לתיקיות המכילות ×§×‘×¦×™× ×לו. תכנית התקנה זו ××™× ×” יכולה להגדיר הרש×ות לתיקיות.
-פעולה זו צריכה בד״כ להתבצע ישירות משורת הפקודה ×ו במקרה שנעשה שימוש בשרת מ×רח דרך FTP ×ו מנשק הניהול של המ×רח (cPanell לדוגמה).</p>
-
-<p>מתקין ×–×” יגדיר ×ת תצורת ×”Ö¾<abbr title="access control list">ACL</abbr> ב-DokuWiki שלך
-, ×–×” בתורו מ×פשר גישת מנהל לתפריט הניהול של DokuWiki כדי להתקין הרחבות, לנהל משתמשי×, לנהל גישות לדפי ויקי ×•×©×™× ×•×™×™× ×‘×”×’×“×¨×•×ª התצורה.
-×ין ×”×•× ×”×›×¨×—×™ לתפקוד DokuWiki ×ך ×”×•× ×™×”×¤×•×š ×ת Dokuwiki לפשוט יותר לניהול.</p>
-
-<p>על ×ž×©×ª×ž×©×™× ×ž× ×•×¡×™× ×ו ×›×לו ×¢× ×“×¨×™×©×•×ª מיוחדות להתקנה להשתמש ×‘×§×™×©×•×¨×™× ×לו ×œ×¤×¨×˜×™× ×‘× ×•×’×¢ ל<a href="http://dokuwiki.org/install">הור×ות התקנה</a> ול<a href="http://dokuwiki.org/config">הגדרות תצורה</a>.</p>
diff --git a/wiki/inc/lang/he/jquery.ui.datepicker.js b/wiki/inc/lang/he/jquery.ui.datepicker.js
deleted file mode 100644
index fb6238f..0000000
--- a/wiki/inc/lang/he/jquery.ui.datepicker.js
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Hebrew initialisation for the UI Datepicker extension. */
-/* Written by Amir Hardon (ahardon at gmail dot com). */
-( function( factory ) {
-	if ( typeof define === "function" && define.amd ) {
-
-		// AMD. Register as an anonymous module.
-		define( [ "../widgets/datepicker" ], factory );
-	} else {
-
-		// Browser globals
-		factory( jQuery.datepicker );
-	}
-}( function( datepicker ) {
-
-datepicker.regional.he = {
-	closeText: "סגור",
-	prevText: "&#x3C;הקוד×",
-	nextText: "הב×&#x3E;",
-	currentText: "היו×",
-	monthNames: [ "ינו×ר","פברו×ר","מרץ","×פריל","מ××™","יוני",
-	"יולי","×וגוסט","ספטמבר","×וקטובר","נובמבר","דצמבר" ],
-	monthNamesShort: [ "ינו","פבר","מרץ","×פר","מ××™","יוני",
-	"יולי","×וג","ספט","×וק","נוב","דצמ" ],
-	dayNames: [ "ר×שון","שני","שלישי","רביעי","חמישי","שישי","שבת" ],
-	dayNamesShort: [ "×'","ב'","×’'","ד'","×”'","ו'","שבת" ],
-	dayNamesMin: [ "×'","ב'","×’'","ד'","×”'","ו'","שבת" ],
-	weekHeader: "Wk",
-	dateFormat: "dd/mm/yy",
-	firstDay: 0,
-	isRTL: true,
-	showMonthAfterYear: false,
-	yearSuffix: "" };
-datepicker.setDefaults( datepicker.regional.he );
-
-return datepicker.regional.he;
-
-} ) );
diff --git a/wiki/inc/lang/he/lang.php b/wiki/inc/lang/he/lang.php
deleted file mode 100644
index 655bc5d..0000000
--- a/wiki/inc/lang/he/lang.php
+++ /dev/null
@@ -1,353 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Guy Yakobovitch <guy.yakobovitch@gmail.com>
- * @author ×’×™× ×©×¤×¨ <guysoft@ort.org.il>
- * @author Denis Simakov <akinoame1@gmail.com>
- * @author Dotan Kamber <kamberd@yahoo.com>
- * @author Moshe Kaplan <mokplan@gmail.com>
- * @author Yaron Yogev <yaronyogev@gmail.com>
- * @author Yaron Shahrabani <sh.yaron@gmail.com>
- * @author Roy Zahor <roy.zahor@gmail.com>
- * @author alex <ralexay@gmail.com>
- * @author matt carroll <matt.carroll@gmail.com>
- * @author tomer <tomercarolldergicz@gmail.com>
- * @author itsho <itsho.itsho@gmail.com>
- * @author Menashe Tomer <menashesite@gmail.com>
- * @author sagi <sagiyosef@gmail.com>
- */
-$lang['encoding']              = 'utf-8';
-$lang['direction']             = 'rtl';
-$lang['doublequoteopening']    = '“';
-$lang['doublequoteclosing']    = 'â€';
-$lang['singlequoteopening']    = '‘';
-$lang['singlequoteclosing']    = '’';
-$lang['apostrophe']            = '\'';
-$lang['btn_edit']              = 'עריכת דף זה';
-$lang['btn_source']            = 'הצגת מקור הדף';
-$lang['btn_show']              = 'הצגת דף';
-$lang['btn_create']            = 'יצירת דף';
-$lang['btn_search']            = 'חיפוש';
-$lang['btn_save']              = 'שמירה';
-$lang['btn_preview']           = 'תצוגה מקדימה';
-$lang['btn_top']               = 'חזרה למעלה';
-$lang['btn_newer']             = '<<  חדש יותר';
-$lang['btn_older']             = 'פחות חדש  >>';
-$lang['btn_revs']              = 'גרס×ות קודמות';
-$lang['btn_recent']            = '×©×™× ×•×™×™× ×חרוני×';
-$lang['btn_upload']            = 'העל××”';
-$lang['btn_cancel']            = 'ביטול';
-$lang['btn_index']             = 'מפת ×”×תר';
-$lang['btn_secedit']           = 'עריכה';
-$lang['btn_login']             = 'כניסה';
-$lang['btn_logout']            = 'יצי××”';
-$lang['btn_admin']             = 'ניהול';
-$lang['btn_update']            = 'עדכון';
-$lang['btn_delete']            = 'מחיקה';
-$lang['btn_back']              = 'חזרה';
-$lang['btn_backlink']          = '×§×™×©×•×¨×™× ×œ×›×ן';
-$lang['btn_subscribe']         = 'מעקב ×חרי שינוי×';
-$lang['btn_profile']           = 'עדכון הפרופיל';
-$lang['btn_reset']             = '×יפוס';
-$lang['btn_resendpwd']         = 'הגדר סיסמה חדשה';
-$lang['btn_draft']             = 'עריכת טיוטה';
-$lang['btn_recover']           = 'שחזור טיוטה';
-$lang['btn_draftdel']          = 'מחיקת טיוטה';
-$lang['btn_revert']            = 'שחזור';
-$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']                  = 'ססמה';
-$lang['newpass']               = 'ססמה חדשה';
-$lang['oldpass']               = '×ישור הססמה הנוכחית';
-$lang['passchk']               = '×¤×¢× × ×•×¡×¤×ª';
-$lang['remember']              = 'שמירת ×”×¤×¨×˜×™× ×©×œ×™';
-$lang['fullname']              = '×©× ×ž×œ×';
-$lang['email']                 = 'דו×״ל';
-$lang['profile']               = 'פרופיל המשתמש';
-$lang['badlogin']              = '×©× ×”×ž×©×ª×ž×© ×ו הססמה שגויי×, עמך הסליחה';
-$lang['badpassconfirm']        = 'מצטערי×, הסיסמה שגויה';
-$lang['minoredit']             = '×©×™× ×•×™× ×ž×–×¢×¨×™×™×';
-$lang['draftdate']             = 'הטיוטה נשמרה ×וטומטית ב־';
-$lang['nosecedit']             = 'הדף השתנה בינתיי×, הקטע שערכת ×ינו מעודכן - העמוד כולו נטען ×‘×ž×§×•× ×–×ת.';
-$lang['regmissing']            = 'עליך ×œ×ž×œ× ×ת כל השדות, עמך הסליחה.';
-$lang['reguexists']            = 'משתמש ×‘×©× ×–×” כבר נרש×, עמך הסליחה.';
-$lang['regsuccess']            = 'ההרשמה הצליחה, המשתמש × ×¨×©× ×•×”×•×“×¢×” נשלחה בדו×״ל.';
-$lang['regsuccess2']           = 'ההרשמה הצליחה, המשתמש נוצר.';
-$lang['regfail']               = '×ין ×פשרות ליצור ×ת המשתמש';
-$lang['regmailfail']           = 'שליחת הודעת הדו×״ל כשלה, × × ×œ×™×¦×•×¨ קשר ×¢× ×ž× ×”×œ ×”×תר!';
-$lang['regbadmail']            = 'יתכן ×›×™ כתובת הדו×״ל ××™× ×” תקפה, ×× ×œ× ×›×š הדבר ליצור קשר ×¢× ×ž× ×”×œ ×”×תר';
-$lang['regbadpass']            = 'שתי הססמ×ות ×ינן זהות זו לזו, × × ×œ× ×¡×•×ª שוב.';
-$lang['regpwmail']             = 'ססמת הדוקוויקי שלך';
-$lang['reghere']               = 'עדיין ×ין לך חשבון? ההרשמה ×›×ן';
-$lang['profna']                = 'בוויקי ×”×–×” ×œ× × ×™×ª×Ÿ לשנות פרופיל';
-$lang['profnochange']          = '×ין שינויי×, הפרופיל ×œ× ×¢×•×“×›×Ÿ';
-$lang['profnoempty']           = '×”×©× ×•×›×ª×•×‘×ª הדו×״ל ×œ× ×™×›×•×œ×™× ×œ×”×™×•×ª ריקי×';
-$lang['profchanged']           = 'הפרופיל עודכן בהצלחה';
-$lang['profnodelete']          = 'ויקי  ××™× ×” תומכת במחיקת משתמשי×';
-$lang['profdeleteuser']        = 'הסר חשבון';
-$lang['profdeleted']           = 'חשבון המשתמש שלך נמחק מויקי זה';
-$lang['profconfdelete']        = 'ברצוני להסיר ×ת החשבון שלי מוויקי ×–×”. <br/> ×œ× × ×™×ª×Ÿ לבטל פעולה זו.';
-$lang['profconfdeletemissing'] = 'תיבת ×ישור ×ינו מסומן';
-$lang['proffail']              = 'פרופיל המשתמש ×œ× ×¢×•×“×›×Ÿ';
-$lang['pwdforget']             = 'שכחת ×ת הססמה שלך? ניתן לקבל חדשה';
-$lang['resendna']              = 'הוויקי ×”×–×” ×ינו תומך בחידוש ססמה';
-$lang['resendpwd']             = 'הגדר ×¡×™×¡×ž× ×—×“×©×” בעבור';
-$lang['resendpwdmissing']      = 'עליך ×œ×ž×œ× ×ת כל השדות, עמך הסליחה.';
-$lang['resendpwdnouser']       = 'משתמש ×‘×©× ×–×” ×œ× × ×ž×¦× ×‘×ž×¡×“ הנתוני×, עמך הסליחה.';
-$lang['resendpwdbadauth']      = 'קוד ×ימות ×–×” ×ינו תקף. יש ×œ×•×•×“× ×›×™ נעשה שימוש בקישור ×”×ימות המל×, עמך הסליחה.';
-$lang['resendpwdconfirm']      = 'נשלח קישור ל×ימות נשלח בדו×״ל.';
-$lang['resendpwdsuccess']      = 'נשלחה ססמה חדשה בדו×״ל';
-$lang['license']               = 'למעט ×ž×§×¨×™× ×‘×”× ×¦×•×™×Ÿ ×חרת, התוכן בוויקי ×–×” זמין לפי הרישיון הב×:';
-$lang['licenseok']             = '× × ×œ×©×™× ×œ×‘: עריכת דף ×–×” מהווה הסכמה מצדך להצגת התוכן שהוספת בהת×× ×”×¨×™×©×™×•×Ÿ הב×:';
-$lang['searchmedia']           = 'חיפוש ×©× ×§×•×‘×¥:';
-$lang['searchmedia_in']        = 'חיפוש תחת %s';
-$lang['txt_upload']            = 'בחירת קובץ להעלות:';
-$lang['txt_filename']          = 'העל××” ×‘×©× (נתון לבחירה):';
-$lang['txt_overwrt']           = 'שכתוב על קובץ ×§×™×™×';
-$lang['maxuploadsize']         = 'העלה מקסימו×. %s לכל קובץ.';
-$lang['lockedby']              = 'נעול על ידי:';
-$lang['lockexpire']            = 'הנעילה פגה:';
-$lang['js']['willexpire']      = 'הנעילה תחלוף עוד זמן קצר. \nלמניעת התנגשויות יש להשתמש בכפתור הרענון מטה כדי ל×פס ×ת מד משך הנעילה.';
-$lang['js']['notsavedyet']     = '×©×™× ×•×™×™× ×©×œ× × ×©×ž×¨×• ילכו ל×יבוד.';
-$lang['js']['searchmedia']     = 'חיפוש ×חר קבצי×';
-$lang['js']['keepopen']        = 'הש×רת חלון פתוח על הבחירה';
-$lang['js']['hidedetails']     = 'הסתרת פרטי×';
-$lang['js']['mediatitle']      = 'הגדרות הקישור';
-$lang['js']['mediadisplay']    = 'סוג הקישור';
-$lang['js']['mediaalign']      = 'יישור';
-$lang['js']['mediasize']       = 'גודל התמונה';
-$lang['js']['mediatarget']     = 'יעד הקישור';
-$lang['js']['mediaclose']      = 'סגירה';
-$lang['js']['mediainsert']     = 'הוספה';
-$lang['js']['mediadisplayimg'] = 'הצגת התמונה.';
-$lang['js']['mediadisplaylnk'] = 'הצגת הקישור בלבד.';
-$lang['js']['mediasmall']      = 'גרסה קטנה';
-$lang['js']['mediamedium']     = 'גרסה בינונית';
-$lang['js']['medialarge']      = 'גרסה גדולה';
-$lang['js']['mediaoriginal']   = 'הגרסה המקורית';
-$lang['js']['medialnk']        = 'קישור לעמוד הפרטי×';
-$lang['js']['mediadirect']     = 'הקישור הישיר למקור';
-$lang['js']['medianolnk']      = '×ין קישור';
-$lang['js']['medianolink']     = '×ין לקשר לתמונה';
-$lang['js']['medialeft']       = 'יישור התמונה לשמ×ל.';
-$lang['js']['mediaright']      = 'יישור התמונה לימין.';
-$lang['js']['mediacenter']     = 'מרכוז התמונה.';
-$lang['js']['medianoalign']    = '×œ× ×œ×”×©×ª×ž×© ביישור.';
-$lang['js']['nosmblinks']      = 'קישור לכונני שיתוף של Windows עובד רק ב×מצעות Microsoft Internet Explorer.
-עדיין ניתן להעתיק ולהדביק ×ת הקישור.';
-$lang['js']['linkwiz']         = '×שף הקישורי×';
-$lang['js']['linkto']          = 'קישור ×ל:';
-$lang['js']['del_confirm']     = 'ב×מת למחוק?';
-$lang['js']['restore_confirm'] = 'ב×מת לשחזר ×ת ×”×’×™×¨×¡× ×”×–×ת?';
-$lang['js']['media_diff']      = 'הצגת הבדלי×:';
-$lang['js']['media_diff_both'] = 'זה לצד זה';
-$lang['js']['media_diff_opacity'] = 'ניקוי דרך';
-$lang['js']['media_diff_portions'] = 'לחבוט';
-$lang['js']['media_select']    = 'בחר קבצי×...';
-$lang['js']['media_upload_btn'] = 'העל××”';
-$lang['js']['media_done_btn']  = 'בוצע';
-$lang['js']['media_drop']      = 'גרור לכ×ן ×§×‘×¦×™× ×‘×›×“×™ להעלות×';
-$lang['js']['media_cancel']    = 'הסר';
-$lang['js']['media_overwrt']   = 'שכתב ×§×‘×¦×™× ×§×™×™×ž×™×';
-$lang['rssfailed']             = '×ירע כשל בעת קבלת ×”×–× ×” זו:';
-$lang['nothingfound']          = '×œ× × ×ž×¦×ו תוצ×ות.';
-$lang['mediaselect']           = 'קובצי מדיה';
-$lang['uploadsucc']            = 'ההעל××” הושלמה בהצלחה';
-$lang['uploadfail']            = '×ירעה שגי××” בעת העל×ת הקובץ. היתכן שתקלה זו נוצרה עקב הרש×ות שגיות?';
-$lang['uploadwrong']           = 'ההעל××” ×œ× ×ושרה. ×§×‘×¦×™× ×‘×¡×™×•×ž×ª זו ×סורי×!';
-$lang['uploadexist']           = 'הקובץ כבר ×§×™×™×. הפעולה בוטלה.';
-$lang['uploadbadcontent']      = 'התוכן שהועלה ×œ× ×ª×× ×ת הסיומת %s של הקובץ.';
-$lang['uploadspam']            = 'ההעל××” נחסמה על ידי רשימת חסימת הספ××.';
-$lang['uploadxss']             = 'ההעל××” נחסמה בשל חשד לתוכן זדוני.';
-$lang['uploadsize']            = 'הקובץ שהועלה היה גדול מדי. (%s לכל היותר)';
-$lang['deletesucc']            = 'הקובץ %s נמחק.';
-$lang['deletefail']            = '×œ× × ×™×ª×Ÿ למחוק ×ת "%s" -- × × ×œ×‘×“×•×§ ×ת ההרש×ות.';
-$lang['mediainuse']            = 'הקובץ "%s" ×œ× × ×ž×—×§ - ×”×•× ×¢×“×™×™×Ÿ בשימוש.';
-$lang['namespaces']            = 'שמות מתח×';
-$lang['mediafiles']            = '×§×‘×¦×™× ×–×ž×™× ×™× ×ª×—×ª';
-$lang['accessdenied']          = '×ין לך הרש××” לצפות בדף ×–×”.';
-$lang['mediausage']            = 'יש להשתמש בתחביר ×”×‘× ×›×“×™ להפנות לקובץ ×–×”:';
-$lang['mediaview']             = 'הצגת  הקובץ המקורי';
-$lang['mediaroot']             = 'root';
-$lang['mediaupload']           = '×›×ן ניתן להעלות קובץ למרחב ×”×©× ×”× ×•×›×—×™. ליצירת תת־מרחבי ×©× ×™×© לצרף ××•×ª× ×œ×ª×—×™×œ×ª ×©× ×”×§×•×‘×¥, ×ž×•×¤×¨×“×™× ×‘×¤×¡×™×§×™×, ×‘×©× ×”×§×•×‘×¥ תחת "העל××” בתור".';
-$lang['mediaextchange']        = 'סיומת הקובץ השתנתה מ־‎.%s ל־‎.%s!';
-$lang['reference']             = 'הפניות ×ל';
-$lang['ref_inuse']             = '×œ× × ×™×ª×Ÿ למחוק קובץ ×–×”, כיוון ×©×”×“×¤×™× ×”×‘××™× ×¢×“×™×™×Ÿ ×ž×©×ª×ž×©×™× ×‘×•:';
-$lang['ref_hidden']            = 'חלק מההפניות נמצ×ות ×‘×“×¤×™× ×©×ין לך הרש×ות ×œ×§×¨×•× ×ות×';
-$lang['hits']                  = 'ביקורי×';
-$lang['quickhits']             = 'שמות ×“×¤×™× ×©× ×ž×¦×ו';
-$lang['toc']                   = 'תוכן ×¢× ×™×™× ×™×';
-$lang['current']               = 'הגרסה הנוכחית';
-$lang['yours']                 = 'הגרסה שלך';
-$lang['diff']                  = 'הצגת ×©×™× ×•×™× ×ž×’×¨×¡×” זו ועד הנוכחית';
-$lang['diff2']                 = 'הצגת ×”×‘×“×œ×™× ×‘×™×Ÿ הגרס×ות שנבחרו';
-$lang['difflink']              = 'קישור לתצוגה השוו××” זו';
-$lang['diff_type']             = 'הצגת הבדלי×:';
-$lang['diff_inline']           = 'ב×ותה השורה';
-$lang['diff_side']             = 'זה לצד זה';
-$lang['diffprevrev']           = 'הגירסה הקודמת';
-$lang['diffnextrev']           = 'הגירסה הב××”';
-$lang['difflastrev']           = 'הגירסה ×”×חרונה';
-$lang['diffbothprevrev']       = 'גירסה קודמת בשני הצדדי×';
-$lang['diffbothnextrev']       = 'הגירסה הב××” בשני הצדדי×';
-$lang['line']                  = 'שורה';
-$lang['breadcrumb']            = '×‘×™×§×•×¨×™× ×חרוני×:';
-$lang['youarehere']            = 'זהו מיקומך:';
-$lang['lastmod']               = 'מועד השינוי ×”×חרון:';
-$lang['by']                    = 'על ידי';
-$lang['deleted']               = 'נמחק';
-$lang['created']               = 'נוצר';
-$lang['restored']              = 'שוחזר (%s)';
-$lang['external_edit']         = 'עריכה חיצונית';
-$lang['summary']               = 'תקציר העריכה';
-$lang['noflash']               = '<a href="http://www.adobe.com/products/flashplayer/">תוסף פל×ש לדפדפן</a> נדרש כדי להציג תוכן ×–×”.';
-$lang['download']              = 'הורדת מקטע';
-$lang['tools']                 = 'כלי×';
-$lang['user_tools']            = '×›×œ×™× ×©×œ משתמש';
-$lang['site_tools']            = '×›×œ×™× ×©×œ ×תר';
-$lang['page_tools']            = '×›×œ×™× ×©×œ דף';
-$lang['skip_to_content']       = 'עבור לתוכן';
-$lang['sidebar']               = 'הסרגל הצידי';
-$lang['mail_newpage']          = 'דף נוסף:';
-$lang['mail_changed']          = 'דף שונה:';
-$lang['mail_subscribe_list']   = '×“×¤×™× ×©×”×©×ª× ×• במרחב הש×:';
-$lang['mail_new_user']         = 'משתמש חדש:';
-$lang['mail_upload']           = 'קובץ הועלה:';
-$lang['changes_type']          = 'צפו ×‘×©×™× ×•×™×™× ×©×œ';
-$lang['pages_changes']         = 'דפי×';
-$lang['media_changes']         = 'קבצי מדיה';
-$lang['both_changes']          = 'קבצי מדיה ×•×“×¤×™× ';
-$lang['qb_bold']               = 'טקסט מודגש';
-$lang['qb_italic']             = 'טקסט נטוי';
-$lang['qb_underl']             = 'טקסט ×¢× ×§×• תחתון';
-$lang['qb_code']               = 'קוד';
-$lang['qb_strike']             = 'טקסט מחוק';
-$lang['qb_h1']                 = 'כותרת רמה 1';
-$lang['qb_h2']                 = 'כותרת רמה 2';
-$lang['qb_h3']                 = 'כותרת רמה 3';
-$lang['qb_h4']                 = 'כותרת רמה 4';
-$lang['qb_h5']                 = 'כותרת רמה 5';
-$lang['qb_h']                  = 'כותרת';
-$lang['qb_hs']                 = 'כותרת נבחרת';
-$lang['qb_hplus']              = 'כותרת ברמה גבוהה יותר';
-$lang['qb_hminus']             = 'כותרת ברמה נמוכה יותר';
-$lang['qb_hequal']             = 'כותרת ב×ותה רמה';
-$lang['qb_link']               = 'קישור פנימי';
-$lang['qb_extlink']            = 'קישור חיצוני';
-$lang['qb_hr']                 = 'קו ×ופקי';
-$lang['qb_ol']                 = '×יבר ברשימה ממוספרת';
-$lang['qb_ul']                 = '×יבר ברשימה ×œ× ×ž×ž×•×¡×¤×¨×ª';
-$lang['qb_media']              = 'תמונות ×•×§×‘×¦×™× ×חרי×';
-$lang['qb_sig']                = 'הוספת חתימה';
-$lang['qb_smileys']            = '×—×™×™×›× ×™×';
-$lang['qb_chars']              = '×ª×•×•×™× ×ž×™×•×—×“×™×';
-$lang['upperns']               = 'מעבר למרחב ×”×©× ×©×‘×¨×ž×” שמעל הנוכחית';
-$lang['metaedit']              = 'עריכת נתוני העל';
-$lang['metasaveerr']           = '×ירע כשל בשמירת נתוני העל';
-$lang['metasaveok']            = 'נתוני העל נשמרו';
-$lang['img_title']             = 'ש×:';
-$lang['img_caption']           = 'כותרת:';
-$lang['img_date']              = 'ת×ריך:';
-$lang['img_fname']             = '×©× ×”×§×•×‘×¥:';
-$lang['img_fsize']             = 'גודל:';
-$lang['img_artist']            = 'צל×:';
-$lang['img_copyr']             = 'זכויות יוצרי×:';
-$lang['img_format']            = 'מבנה:';
-$lang['img_camera']            = 'מצלמה:';
-$lang['img_keywords']          = 'מילות מפתח:';
-$lang['img_width']             = 'רוחב:';
-$lang['img_height']            = 'גובה:';
-$lang['subscr_subscribe_success'] = '%s נוסף לרשימת ×”×ž×™× ×•×™×™× ×œ×“×£ %s';
-$lang['subscr_subscribe_error'] = '×ירעה שגי××” בהוספת %s לרשימת ×”×ž×™× ×•×™×™× ×œ×“×£ %s';
-$lang['subscr_subscribe_noaddress'] = '×ין כתובת המשויכת ×¢× ×”×›× ×™×¡×” שלך, × × × ×™×ª×Ÿ להוסיף ×ותך לרשימת המינויי×';
-$lang['subscr_unsubscribe_success'] = 'המשתמש %s הוסר מרשימת ×”×ž×™× ×•×™×™× ×œ×“×£ %s';
-$lang['subscr_unsubscribe_error'] = '×ירעה שגי××” בהסרת %s מרשימת ×”×ž×™× ×•×™×™× ×œ×“×£ %s';
-$lang['subscr_already_subscribed'] = 'המשתמש %s כבר מנוי לדף %s';
-$lang['subscr_not_subscribed'] = 'המשתמש %s ×יננו ×¨×©×•× ×œ×“×£ %s';
-$lang['subscr_m_not_subscribed'] = 'המשתמש שלך ×ינו רשו×, נכון לעכשיו, לדף הנוכחי ×ו למרחב הש×.';
-$lang['subscr_m_new_header']   = 'הוספת מינוי';
-$lang['subscr_m_current_header'] = '×”×ž×™× ×•×™×™× ×”× ×•×›×—×™×™×';
-$lang['subscr_m_unsubscribe']  = 'ביטול המינוי';
-$lang['subscr_m_subscribe']    = 'מינוי';
-$lang['subscr_m_receive']      = 'קבלת';
-$lang['subscr_style_every']    = 'דו×״ל ×¢× ×›×œ שינוי';
-$lang['subscr_style_digest']   = 'הודעת דו×״ל המציגה ×ת כל ×”×©×™× ×•×™×™× ×‘×›×œ עמוד (בכל %.2f ימי×)';
-$lang['subscr_style_list']     = 'רשימת ×”×©×™× ×•×™×™× ×‘×“×¤×™× ×ž××– הודעת הדו×״ל ×”×חרונה (בכל %.2f ימי×)';
-$lang['authtempfail']          = '×ימות ×ž×©×ª×ž×©×™× ×ינו זמין כרגע. ×× ×ž×¦×‘ ×–×” נמשך × × ×œ×™×™×“×¢ ×ת מנהל הוויקי.';
-$lang['i_chooselang']          = '× × ×œ×‘×—×•×¨ שפה';
-$lang['i_installer']           = 'תכנית ההתקנה של DokuWiki';
-$lang['i_wikiname']            = '×©× ×”×•×•×™×§×™';
-$lang['i_enableacl']           = 'הפעלת ACL (מומלץ)';
-$lang['i_superuser']           = 'משתמש־על';
-$lang['i_problems']            = 'תכנית ההתקנה זיהתה מספר בעיות המפורטות להלן. ×ין ב×פשרותך להמשיך לפני תיקונן.';
-$lang['i_modified']            = 'משיקולי ×בטחה סקריפט ×–×” יעבוד ×ך ורק ×¢× ×”×ª×§× ×ª DokuWiki חדשה ×©×œ× ×¢×‘×¨×” כל שינוי.
-                         עליך לחלץ שנית ×ת ×”×§×‘×¦×™× ×ž×”×—×‘×™×œ×” שהורדה ×ו להיעזר בדף
-                         <a href="http://dokuwiki.org/install">Dokuwiki installation instructions</a>';
-$lang['i_funcna']              = 'פונקציית ×”-PHP&#8207; <code>%s</code> ××™× ×” זמינה. יתכן ×›×™ מ×רח ×”×תר ×—×¡× ×ותה מסיבה כלשהי?';
-$lang['i_phpver']              = 'גרסת PHP שלך <code>%s</code> נמוכה מ <code>%s</code> הצורך. ×תה צריך לשדרג PHP שלך להתקין.';
-$lang['i_mbfuncoverload']      = 'יש לבטל ×ת mbstring.func_overload בphp.ini בכדי להריץ ×ת DokuWiki';
-$lang['i_permfail']            = '<code>%s</code> ××™× ×” ניתנת לכתיבה על ידי DokuWiki. עליך לשנות הרש×ות תיקייה זו!';
-$lang['i_confexists']          = '<code>%s</code> כבר ×§×™×™×';
-$lang['i_writeerr']            = '×ין ×פשרות ליצור ×ת <code>%s</code>. × × ×œ×‘×“×•×§ ×ת הרש×ות הקובץ/תיקייה וליצור ×ת הקובץ ידנית.';
-$lang['i_badhash']             = 'הקובץ Dokuwiki.php ×ינו מזוהה ×ו שעבר ×©×™× ×•×™×™× (hash=<code>%s</code>)';
-$lang['i_badval']              = '<code>%s</code> - הערך ×ינו חוקי ×ו ריק';
-$lang['i_success']             = 'תהליך ההגדרה ×”×¡×ª×™×™× ×‘×”×¦×œ×—×”. כעת ניתן למחוק ×ת הקובץ install.php ולהמשיך ×ל ×”Ö¾<a href="doku.php?id=wiki:welcome">DokuWiki החדש שלך</a>.';
-$lang['i_failure']             = 'מספר שגי×ות ×ירעו בעת כתיבת קובצי התצורה. יתכן ×›×™ ×™×”×™×” צורך ×œ×ª×§× × ×™×“× ×™×ª לפני שניתן ×™×”×™×” להשתמש ב־<a href="doku.php?id=wiki:welcome">DokuWiki החדש שלך</a>.';
-$lang['i_policy']              = 'מדיניות ACL התחלתית';
-$lang['i_pol0']                = 'ויקי פתוח (קרי××”, כתיבה והעל××” לכול×)';
-$lang['i_pol1']                = ' ויקי ציבורי (קרי××” לכול×, כתיבה והעל××” ×œ×ž×©×ª×ž×©×™× ×¨×©×•×ž×™×)';
-$lang['i_pol2']                = 'ויקי סגור (קרי××”, כתיבה והעל××” ×œ×ž×©×ª×ž×©×™× ×¨×©×•×ž×™× ×‘×œ×‘×“)';
-$lang['i_allowreg']            = '×פשר ×œ×ž×©×ª×ž×©×™× ×œ×¨×©×•× ×ת עצמ×';
-$lang['i_retry']               = 'ניסיון נוסף';
-$lang['i_license']             = '× × ×œ×‘×—×•×¨ ×ת הרישיון שיחול על התוכן שבוויקי שלך:';
-$lang['i_license_none']        = '×ל תציג כל מידע רישיון';
-$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 חודשי×';
-$lang['weeks']                 = 'לפני %d שבועות';
-$lang['days']                  = 'לפני %d ימי×';
-$lang['hours']                 = 'לפני %d שעות';
-$lang['minutes']               = 'לפני %d דקות';
-$lang['seconds']               = 'לפני %d שניות';
-$lang['wordblock']             = '×”×©×™× ×•×™×™× ×©×œ×š ×œ× × ×©×ž×¨×• כיוון ×©×”× ×ž×›×™×œ×™× ×˜×§×¡×˜ ×—×¡×•× (ספ××).';
-$lang['media_uploadtab']       = 'להעלות';
-$lang['media_searchtab']       = 'חיפוש';
-$lang['media_file']            = 'קובץ';
-$lang['media_viewtab']         = 'תצוגה';
-$lang['media_edittab']         = 'עריכה';
-$lang['media_historytab']      = 'היסטוריה';
-$lang['media_list_thumbs']     = 'תמונות ממוזערות';
-$lang['media_list_rows']       = 'שורות';
-$lang['media_sort_name']       = 'ש×';
-$lang['media_sort_date']       = 'ת×ריך';
-$lang['media_namespaces']      = 'בחר מרחב שמות';
-$lang['media_files']           = '×§×‘×¦×™× ×‘ %s';
-$lang['media_upload']          = 'להעלות %s';
-$lang['media_search']          = 'חיפוש ב%s';
-$lang['media_view']            = '%s';
-$lang['media_viewold']         = '%s ב %s';
-$lang['media_edit']            = 'ערוך %s';
-$lang['media_history']         = 'היסטוריה של %s';
-$lang['media_meta_edited']     = 'metadata נערך';
-$lang['media_perm_read']       = 'מצטערי×, ×ין לך הרש×ות ×œ×§×¨×•× ×§×‘×¦×™×.';
-$lang['media_perm_upload']     = 'מצטערי×, ×ין לך הרש×ות להעלות קבצי×.';
-$lang['media_update']          = 'העלה גירסה חדשה';
-$lang['media_restore']         = 'שחזר גירסה זו';
-$lang['media_acl_warning']     = 'רשימה זו עלולה להיות חסרה עכב חוסר בהרש×ות ×ו ×“×¤×™× ×ž×•×¡×ª×¨×™×';
-$lang['currentns']             = '×©× ×ž×¨×—×‘ נוכחי';
-$lang['searchresult']          = 'תוצ×ות חיפוש';
-$lang['plainhtml']             = 'HTML פשוט';
-$lang['page_nonexist_rev']     = 'העמוד ×œ× ×§×™×™× ×‘%s. העמוד נוצר ×‘×ž×§×•× ×–×ת ב<a href="%s">%s</a>.';
-$lang['unable_to_parse_date']  = '×œ× × ×™×ª×Ÿ לפענח פרמטר "%s".';
-$lang['email_signature_text']  = 'הודעת דו×״ל זו נוצרה על ידי ×”Ö¾DokuWiki הזמין בכתובת
-@DOKUWIKIURL@';
diff --git a/wiki/inc/lang/he/locked.txt b/wiki/inc/lang/he/locked.txt
deleted file mode 100644
index 307874a..0000000
--- a/wiki/inc/lang/he/locked.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== דף נעול ======
-
-דף ×–×” נעול כרגע לעריכה על ידי משתמש ×חר. עליך להמתין עד שהמשתמש ×™×¡×™×™× ×ת העריכה ×ו עד שהנעילה תפוג.
diff --git a/wiki/inc/lang/he/login.txt b/wiki/inc/lang/he/login.txt
deleted file mode 100644
index 5a575f1..0000000
--- a/wiki/inc/lang/he/login.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== כניסה ======
-
-×ינך ברשומות המערכת כרגע! יש להזין ×ת נתוני ההזדהות מטה לכניסה. יש ל×פשר עוגיות (cookies) כדי להכנס.
diff --git a/wiki/inc/lang/he/mailtext.txt b/wiki/inc/lang/he/mailtext.txt
deleted file mode 100644
index f33760e..0000000
--- a/wiki/inc/lang/he/mailtext.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-דף בDokuWiki נוסף ×ו שונה. להלן הפרטי×:
-
-ת×ריך        : @DATE@
-דפדפן     : @BROWSER@
-כתובת ה־IP&#8207;  : @IPADDRESS@
-×©× ×”×ž×רח    : @HOSTNAME@
-המהדורה הישנה: @OLDPAGE@
-המהדורה החדשה: @NEWPAGE@
-תקציר העריכה: @SUMMARY@
-משתמש        : @USER@
-
-@DIFF@
diff --git a/wiki/inc/lang/he/newpage.txt b/wiki/inc/lang/he/newpage.txt
deleted file mode 100644
index ac6fb73..0000000
--- a/wiki/inc/lang/he/newpage.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== דף ×–×” עדיין ×œ× ×§×™×™× ======
-
-הדף ×ליו הגעת עדיין ×œ× ×§×™×™×. לחיצה על הכפתור "יצירת דף" תצור ×ותו.
\ No newline at end of file
diff --git a/wiki/inc/lang/he/norev.txt b/wiki/inc/lang/he/norev.txt
deleted file mode 100644
index 3d08e16..0000000
--- a/wiki/inc/lang/he/norev.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== גרסה ×œ× ×§×™×™×ž×ª ======
-
-הגרסה שהוזנה ××™× ×” קיימת. × × ×œ×”×©×ª×ž×© בכפתור ''גרס×ות קודמות'' להצגת רשימת הגרס×ות של מסמך ×–×”.
-
diff --git a/wiki/inc/lang/he/password.txt b/wiki/inc/lang/he/password.txt
deleted file mode 100644
index bfa29b6..0000000
--- a/wiki/inc/lang/he/password.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-×©×œ×•× @FULLNAME@!
-
-הנה נתוני המשתמש שלך עבור @TITLE@ ב־@DOKUWIKIURL@
-
-×©× ×›× ×™×¡×”     : @LOGIN@
-ססמה     : @PASSWORD@
diff --git a/wiki/inc/lang/he/preview.txt b/wiki/inc/lang/he/preview.txt
deleted file mode 100644
index 1331c23..0000000
--- a/wiki/inc/lang/he/preview.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== תצוגה מקדימה ======
-
-זו תצוגה מקדימה של הדף לעתיד. להזכירך: **הדף עדיין ×œ× × ×©×ž×¨!**
-
diff --git a/wiki/inc/lang/he/pwconfirm.txt b/wiki/inc/lang/he/pwconfirm.txt
deleted file mode 100644
index 3fa786c..0000000
--- a/wiki/inc/lang/he/pwconfirm.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-×©×œ×•× @FULLNAME@!
-
-מישהו ביקש ססמה חדשה עבור ×©× ×”×›× ×™×¡×” שלך לוויקי @TITLE@ בכתובת @DOKUWIKIURL@
-
-×× ×œ× ×‘×™×§×©×ª ססמה חדשה ב×פשרותך פשוט ×œ×”×ª×¢×œ× ×ž×”×•×“×¢×ª דו×״ל זו.
-
-כדי ל×שר שהבקשה ב×מת נשלחה על ידך עליך השתמש בקישור הב×.
-
-@CONFIRM@
diff --git a/wiki/inc/lang/he/read.txt b/wiki/inc/lang/he/read.txt
deleted file mode 100644
index 18efc5e..0000000
--- a/wiki/inc/lang/he/read.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-דף ×–×” ×”×•× ×“×£ לקרי××” בלבד. ניתן לצפות בקוד המקור שלו, ×ך ×œ× × ×™×ª×Ÿ לערוך ×ותו. ניתן לפנות למנהל הוויקי ×× ×œ×“×¢×ª×š נפלה טעות.
-
diff --git a/wiki/inc/lang/he/recent.txt b/wiki/inc/lang/he/recent.txt
deleted file mode 100644
index 0febd96..0000000
--- a/wiki/inc/lang/he/recent.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== ×©×™× ×•×™×™× ××—×¨×•× ×™× ======
-
-×”×“×¤×™× ×”×‘××™× ×¢×‘×¨×• ×©×™× ×•×™×™× ×œ×חרונה.
-
-
diff --git a/wiki/inc/lang/he/register.txt b/wiki/inc/lang/he/register.txt
deleted file mode 100644
index c4dfad7..0000000
--- a/wiki/inc/lang/he/register.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== הרשמה כמשתמש חדש ======
-
-יש ×œ×ž×œ× ×ת כל המידע להלן כדי ליצור חשבון חדש בוויקי ×–×”. עליך ×œ×•×•×“× ×›×™ הזנת **כתובת דו×״ל תקפה**- ססמתך החדשה תשלח לכתובת זו. על ×©× ×”×ž×©×ª×ž×© להיות [[hdoku>ויקי:×©× ×“×£|×©× ×“×£]] תקף.
diff --git a/wiki/inc/lang/he/registermail.txt b/wiki/inc/lang/he/registermail.txt
deleted file mode 100644
index 2216cb3..0000000
--- a/wiki/inc/lang/he/registermail.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-משתמש חדש נרש×. להלן הפרטי×:
-
-×©× ×ž×©×ª×ž×©   : @NEWUSER@
-×©× ×ž×œ×     : @NEWNAME@
-דו×״ל      : @NEWEMAIL@
-
-ת×ריך      : @DATE@
-דפדפן      : @BROWSER@
-כתובת IP&#8207;  : @IPADDRESS@
-×©× ×”×ž×רח   : @HOSTNAME@
diff --git a/wiki/inc/lang/he/resendpwd.txt b/wiki/inc/lang/he/resendpwd.txt
deleted file mode 100644
index 8ca2720..0000000
--- a/wiki/inc/lang/he/resendpwd.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== שליחת ססמה חדשה ======
-
-יש להזין ×ת ×©× ×”×ž×©×ª×ž×© בטופס מטה ולבקש ססמה חדשה לחשבון שלך בוויקי ×–×”. הקישור ל×ימות יישלח לכתובת הדו×״ל ב×מצעותה נרשמת.
-
diff --git a/wiki/inc/lang/he/resetpwd.txt b/wiki/inc/lang/he/resetpwd.txt
deleted file mode 100644
index bd7b5ac..0000000
--- a/wiki/inc/lang/he/resetpwd.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== קבע סיסמה חדשה ======
-
-×× × ×”×›× ×¡ סיסמה חדשה לחשבון שלך בויקי ×–×”.
\ No newline at end of file
diff --git a/wiki/inc/lang/he/revisions.txt b/wiki/inc/lang/he/revisions.txt
deleted file mode 100644
index 6b23402..0000000
--- a/wiki/inc/lang/he/revisions.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== גרס×ות ישנות ======
-
-×לה גרס×ות מוקדמות יותר של המסמך הנוכחי. כדי לשחזר גרסה מוקדמת יותר יש ללחוץ על הכפתור ''עריכה'' ולשמור ×ת הדף.
-
diff --git a/wiki/inc/lang/he/searchpage.txt b/wiki/inc/lang/he/searchpage.txt
deleted file mode 100644
index 574629b..0000000
--- a/wiki/inc/lang/he/searchpage.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== חיפוש ======
-
-ניתן לר×ות ×ת תוצ×ות החיפוש למטה. @CREATEPAGEINFO@
-
diff --git a/wiki/inc/lang/he/showrev.txt b/wiki/inc/lang/he/showrev.txt
deleted file mode 100644
index 22ca0c3..0000000
--- a/wiki/inc/lang/he/showrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**זו גרסה ישנה של המסמך!** לחיצה על כותרת המסמך תציג ×ת גרסתו הנוכחית.
-----
\ No newline at end of file
diff --git a/wiki/inc/lang/he/stopwords.txt b/wiki/inc/lang/he/stopwords.txt
deleted file mode 100644
index ca85eb2..0000000
--- a/wiki/inc/lang/he/stopwords.txt
+++ /dev/null
@@ -1,29 +0,0 @@
-# זוהי רשימת ×ž×™×œ×™× ×ž×ž× ×” ×ž×ª×¢×œ× ×¡×•×¨×§ התוכן, ×חת בכל שורה
-# בעורכך קובץ ×–×” עליך ×œ×•×“× ×›×™ נעשה שימוש בסימני סוף שורה של UNIX (שורה חדשה ×œ×œ× ×”×—×–×¨×ª הסמן)
-# ×ין צורך לכלול ×ž×™×œ×™× ×‘× ×•×ª פחות משלוש ×ותיות - ×לו נפסחות בכל מקרה
-# רשימה זו מבוססת על ×לו הנמצ×ות ב- http://www.ranks.nl/stopwords
-about
-are
-and
-you
-your
-them
-their
-com
-for
-from
-into
-how
-that
-the
-this
-was
-what
-when
-where
-who
-will
-with
-und
-the
-www
diff --git a/wiki/inc/lang/he/subscr_digest.txt b/wiki/inc/lang/he/subscr_digest.txt
deleted file mode 100644
index 5548a70..0000000
--- a/wiki/inc/lang/he/subscr_digest.txt
+++ /dev/null
@@ -1,16 +0,0 @@
-שלו×!
-
-הדף @PAGE@ שב×תר הוויקי @TITLE@ השתנה.
-להלן השינויי×:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-המהדורה הישנה: @OLDPAGE@
-המהדורה החדשה: @NEWPAGE@
-
-כדי לבטל ×ת ההתרעות לשינויי העמוד, יש להיכנס ל×תר הוויקי בכתובת
-@DOKUWIKIURL@ ו××– לבקר ב××’×£
-@SUBSCRIBE@
-ולבטל ×ת המינוי ×œ×©×™× ×•×™×™× ×‘×“×£ ו/×ו במרחב הש×.
diff --git a/wiki/inc/lang/he/subscr_single.txt b/wiki/inc/lang/he/subscr_single.txt
deleted file mode 100644
index c2ddb72..0000000
--- a/wiki/inc/lang/he/subscr_single.txt
+++ /dev/null
@@ -1,18 +0,0 @@
-שלו×!
-
-הדף @PAGE@ ב×תר הוויקי @TITLE@ השתנה.
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-ת×ריך : @DATE@
-משתמש : @USER@
-תקציר העריכה: @SUMMARY@
-המהדורה הישנה: @OLDPAGE@
-המהדורה החדשה: @NEWPAGE@
-
-לביטול התרעות בנוגע לעמוד, יש להיכנס ל×תר הוויקי בכתובת
-@DOKUWIKIURL@ ו××– לבקר בדף
-@SUBSCRIBE@
-ולבטל ×ת המינוי לקבלת ×©×™× ×•×™×™× ×‘×“×£ ו/×ו במרחב הש×.
diff --git a/wiki/inc/lang/he/updateprofile.txt b/wiki/inc/lang/he/updateprofile.txt
deleted file mode 100644
index 494d838..0000000
--- a/wiki/inc/lang/he/updateprofile.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== עידכון פרטי חשבונך ======
-
-×ין צורך ×œ×ž×œ× ×ž×¢×‘×¨ ×œ×¤×¨×˜×™× ×”×ž×™×•×¢×“×™× ×œ×©×™× ×•×™. ×œ× × ×™×ª×Ÿ לשנות ×ת ×©× ×”×ž×©×ª×ž×©.
-
-
diff --git a/wiki/inc/lang/he/uploadmail.txt b/wiki/inc/lang/he/uploadmail.txt
deleted file mode 100644
index 9c06f13..0000000
--- a/wiki/inc/lang/he/uploadmail.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-קובץ הועלה ×ל הדוקוויקי שלך. ×”× ×” פרטיו:
-
-קובץ : @MEDIA@
-ת×ריך : @DATE@
-דפדפן : @BROWSER@
-כתובת IP : @IPADDRESS@
-מ×רח : @HOSTNAME@
-גודל : @SIZE@
-סיווג : @MIME@
-משתמש : @USER@
diff --git a/wiki/inc/lang/hi/diff.txt b/wiki/inc/lang/hi/diff.txt
deleted file mode 100644
index 6f88c19..0000000
--- a/wiki/inc/lang/hi/diff.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-======असमानता======
-
-यह आपको  पृषà¥à¤  के दो संसà¥à¤•रणों के बीच असमानता को दरà¥à¤¶à¤¾à¤¤à¤¾ है. 
\ No newline at end of file
diff --git a/wiki/inc/lang/hi/jquery.ui.datepicker.js b/wiki/inc/lang/hi/jquery.ui.datepicker.js
deleted file mode 100644
index 3b12097..0000000
--- a/wiki/inc/lang/hi/jquery.ui.datepicker.js
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Hindi initialisation for the jQuery UI date picker plugin. */
-/* Written by Michael Dawart. */
-( function( factory ) {
-	if ( typeof define === "function" && define.amd ) {
-
-		// AMD. Register as an anonymous module.
-		define( [ "../widgets/datepicker" ], factory );
-	} else {
-
-		// Browser globals
-		factory( jQuery.datepicker );
-	}
-}( function( datepicker ) {
-
-datepicker.regional.hi = {
-	closeText: "बंद",
-	prevText: "पिछला",
-	nextText: "अगला",
-	currentText: "आज",
-	monthNames: [ "जनवरी ","फरवरी","मारà¥à¤š","अपà¥à¤°à¥‡à¤²","मई","जून",
-	"जूलाई","अगसà¥à¤¤ ","सितमà¥à¤¬à¤°","अकà¥à¤Ÿà¥‚बर","नवमà¥à¤¬à¤°","दिसमà¥à¤¬à¤°" ],
-	monthNamesShort: [ "जन", "फर", "मारà¥à¤š", "अपà¥à¤°à¥‡à¤²", "मई", "जून",
-	"जूलाई", "अग", "सित", "अकà¥à¤Ÿ", "नव", "दि" ],
-	dayNames: [ "रविवार", "सोमवार", "मंगलवार", "बà¥à¤§à¤µà¤¾à¤°", "गà¥à¤°à¥à¤µà¤¾à¤°", "शà¥à¤•à¥à¤°à¤µà¤¾à¤°", "शनिवार" ],
-	dayNamesShort: [ "रवि", "सोम", "मंगल", "बà¥à¤§", "गà¥à¤°à¥", "शà¥à¤•à¥à¤°", "शनि" ],
-	dayNamesMin: [ "रवि", "सोम", "मंगल", "बà¥à¤§", "गà¥à¤°à¥", "शà¥à¤•à¥à¤°", "शनि" ],
-	weekHeader: "हफà¥à¤¤à¤¾",
-	dateFormat: "dd/mm/yy",
-	firstDay: 1,
-	isRTL: false,
-	showMonthAfterYear: false,
-	yearSuffix: "" };
-datepicker.setDefaults( datepicker.regional.hi );
-
-return datepicker.regional.hi;
-
-} ) );
diff --git a/wiki/inc/lang/hi/lang.php b/wiki/inc/lang/hi/lang.php
deleted file mode 100644
index 79bc0a1..0000000
--- a/wiki/inc/lang/hi/lang.php
+++ /dev/null
@@ -1,116 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author Abhinav Tyagi <abhinavtyagi11@gmail.com>
- * @author yndesai@gmail.com
- * @author Santosh Joshi <sanjujoshhi@gmail.com>
- */
-$lang['encoding']              = 'utf-8';
-$lang['direction']             = 'ltr';
-$lang['doublequoteopening']    = '“';
-$lang['doublequoteclosing']    = 'â€';
-$lang['singlequoteopening']    = '‘';
-$lang['singlequoteclosing']    = '’';
-$lang['apostrophe']            = '’';
-$lang['btn_edit']              = 'यह पृषà¥à¤  संपादित करें';
-$lang['btn_source']            = 'पृषà¥à¤  का शà¥à¤°à¥‹à¤¤ दिखाà¤à¤';
-$lang['btn_show']              = 'पृषà¥à¤  दिखाà¤à¤';
-$lang['btn_create']            = 'इस पृषà¥à¤  को बनायें';
-$lang['btn_search']            = 'खोजें';
-$lang['btn_save']              = 'सà¥à¤°à¤•à¥à¤·à¤¿à¤¤ करें';
-$lang['btn_preview']           = 'पूरà¥à¤µà¤¾à¤µà¤²à¥‹à¤•न';
-$lang['btn_top']               = 'वापस शीरà¥à¤· पर';
-$lang['btn_newer']             = '<< अधिक विगत';
-$lang['btn_older']             = 'अमूल विगत >>';
-$lang['btn_revs']              = 'पà¥à¤°à¤¾à¤¨à¥‡ संशोधन';
-$lang['btn_recent']            = 'विगत परिवरà¥à¤¤à¤¨';
-$lang['btn_upload']            = 'अपलोड करें';
-$lang['btn_cancel']            = 'रदà¥à¤¦ करें';
-$lang['btn_index']             = 'सूचकांक';
-$lang['btn_secedit']           = 'संपादित करें';
-$lang['btn_login']             = 'लॉग इन';
-$lang['btn_logout']            = 'लॉगआउट';
-$lang['btn_admin']             = 'वà¥à¤¯à¤µà¤¸à¥à¤¥à¤¾à¤ªà¤•';
-$lang['btn_update']            = 'अदà¥à¤¯à¤¤à¤¨ करना';
-$lang['btn_delete']            = 'मिटाना';
-$lang['btn_back']              = 'पीछे';
-$lang['btn_backlink']          = 'पिछली कड़ियाà¤';
-$lang['btn_subscribe']         = 'सदसà¥à¤¯à¤¤à¤¾ पà¥à¤°à¤¬à¤‚धन';
-$lang['btn_profile']           = 'परिचय संपादित करें';
-$lang['btn_resendpwd']         = 'नया पासवरà¥à¤¡ सेट करें';
-$lang['btn_draft']             = 'पà¥à¤°à¤¾à¤°à¥‚प समà¥à¤ªà¤¾à¤¦à¤¿à¤¤ करें';
-$lang['btn_draftdel']          = 'पà¥à¤°à¤¾à¤°à¥‚प मिटायें';
-$lang['btn_revert']            = 'वापस लौटाà¤à¤‚';
-$lang['btn_apply']             = 'लागू करें';
-$lang['btn_deleteuser']        = 'खाता मिटायें';
-$lang['user']                  = 'उपयोगकरà¥à¤¤à¤¾ का नाम';
-$lang['pass']                  = 'गà¥à¤ªà¥à¤¤ शबà¥à¤¦';
-$lang['newpass']               = 'नव गà¥à¤ªà¥à¤¤ शबà¥à¤¦';
-$lang['passchk']               = 'पासवरà¥à¤¡ दà¥à¤¬à¤¾à¤°à¤¾ लिखें';
-$lang['remember']              = 'मà¥à¤à¥‡ सà¥à¤®à¥ƒà¤¤ रखना';
-$lang['fullname']              = 'सही नाम';
-$lang['email']                 = 'ईमेल';
-$lang['badlogin']              = 'छमा करें, उपयोगकरà¥à¤¤à¤¾ का नाम व गà¥à¤ªà¥à¤¤ शबà¥à¤¦ ग़लत था |';
-$lang['minoredit']             = 'अमूल चूल परिवरà¥à¤¤à¤¨';
-$lang['regmissing']            = 'छमा करें, आपको सारे रिकà¥à¤¤ सà¥à¤¥à¤¾à¤¨ भरने पड़ेंगे |';
-$lang['regbadpass']            = 'दोनो दिठगये गà¥à¤ªà¥à¤¤à¤¶à¤¬à¥à¤¦ समान नहीं हैं | दोबारा पà¥à¤°à¤¯à¤¾à¤¸ करें |';
-$lang['regpwmail']             = 'आपकी डोकà¥à¤µà¤¿à¤•ी का गà¥à¤ªà¥à¤¤à¤¶à¤¬à¥à¤¦';
-$lang['reghere']               = 'आपके पास अभी तक कोई खाता नहीं है? बस à¤à¤• लें |';
-$lang['profna']                = 'यह विकी पà¥à¤°à¥‹à¤«à¤¼à¤¾à¤‡à¤² संशोधन का समरà¥à¤¥à¤¨ नहीं करता |';
-$lang['profnochange']          = 'कोई परिवरà¥à¤¤à¤¨ नहीं, कà¥à¤› नहीं करना |';
-$lang['resendpwdmissing']      = 'छमा करें, आपको सारे रिकà¥à¤¤ सà¥à¤¥à¤¾à¤¨ भरने पड़ेंगे |';
-$lang['resendpwdsuccess']      = 'आपका नवगà¥à¤ªà¥à¤¤à¤¶à¤¬à¥à¤¦ ईमेल दà¥à¤µà¤¾à¤°à¤¾ समà¥à¤ªà¥à¤°à¥‡à¤·à¤¿à¤¤ कर दिया गया है |';
-$lang['txt_upload']            = 'अपलोड करने के लिठफ़ाइल चà¥à¤¨à¥‡à¤‚:';
-$lang['txt_filename']          = 'के रूप में अपलोड करें (वैकलà¥à¤ªà¤¿à¤•):';
-$lang['txt_overwrt']           = 'अधिलेखित उपसà¥à¤¥à¤¿à¤¤ फ़ाइल';
-$lang['lockedby']              = 'इस समय तक बंद:';
-$lang['lockexpire']            = 'बंद समापà¥à¤¤ होगा:';
-$lang['js']['hidedetails']     = 'विवरण छिपाà¤à¤';
-$lang['nothingfound']          = 'कà¥à¤šà¥à¤› नहीं मिला |';
-$lang['uploadexist']           = 'फ़ाइल पहले से उपसà¥à¤¥à¤¿à¤¤ है. कà¥à¤› भी नहीं किया |';
-$lang['mediafiles']            = 'उपलबà¥à¤§ फाइलों में';
-$lang['mediaview']             = 'मूल फ़ाइल देखें';
-$lang['reference']             = 'संदरà¥à¤­ के लिà¤';
-$lang['ref_hidden']            = 'कà¥à¤šà¥à¤› संदरà¥à¤­ उन पनà¥à¤¨à¥‹ पर हैं जिनको पड़ने की आपको अनà¥à¤®à¤¤à¤¿ नहीं है|';
-$lang['toc']                   = 'विषय सूची';
-$lang['current']               = 'वरà¥à¤¤à¤®à¤¾à¤¨';
-$lang['yours']                 = 'आपका संसà¥à¤•रणः';
-$lang['diff']                  = 'वरà¥à¤¤à¤®à¤¾à¤¨ संशोधन में मतभेद दिखाइये |';
-$lang['diff2']                 = 'चयनित संशोधन के बीच में मतभेद दिखाइये |';
-$lang['line']                  = 'रेखा';
-$lang['youarehere']            = 'आप यहाठहैं |:';
-$lang['lastmod']               = 'अंतिम बार संशोधित:';
-$lang['by']                    = 'के दà¥à¤µà¤¾à¤°à¤¾';
-$lang['deleted']               = 'हटाया';
-$lang['created']               = 'निरà¥à¤®à¤¿à¤¤';
-$lang['external_edit']         = 'बाहà¥à¤¯ समà¥à¤ªà¤¾à¤¦à¤¿à¤¤';
-$lang['summary']               = 'सारांश संपादित करें';
-$lang['mail_newpage']          = 'पृषà¥à¤  जोड़ा:';
-$lang['mail_changed']          = 'पृषà¥à¤  बदला:';
-$lang['mail_new_user']         = 'नये उपयोगकरà¥à¤¤à¤¾:';
-$lang['mail_upload']           = 'अपलोड की गई फ़ाइल:';
-$lang['qb_bold']               = 'बोलà¥à¤¡ पाठà¥à¤¯';
-$lang['qb_h1']                 = 'सà¥à¤¤à¤° 1 शीरà¥à¤·à¤ªà¤‚कà¥à¤¤à¤¿';
-$lang['qb_h2']                 = 'सà¥à¤¤à¤° 2 शीरà¥à¤·à¤ªà¤‚कà¥à¤¤à¤¿';
-$lang['qb_h3']                 = 'सà¥à¤¤à¤° 3 शीरà¥à¤·à¤ªà¤‚कà¥à¤¤à¤¿';
-$lang['qb_h4']                 = 'सà¥à¤¤à¤° 4 शीरà¥à¤·à¤ªà¤‚कà¥à¤¤à¤¿';
-$lang['qb_h5']                 = 'सà¥à¤¤à¤° 5 शीरà¥à¤·à¤ªà¤‚कà¥à¤¤à¤¿';
-$lang['qb_link']               = 'आंतरिक कड़ी';
-$lang['qb_extlink']            = 'बाहà¥à¤¯ कड़ी';
-$lang['qb_hr']                 = 'खड़ी रेखा';
-$lang['qb_sig']                = 'हसà¥à¤¤à¤¾à¤•à¥à¤·à¤° डालें';
-$lang['btn_img_backto']            = 'वापस जाना %s';
-$lang['img_title']             = 'शीरà¥à¤·à¤•:';
-$lang['img_caption']           = 'सहशीरà¥à¤·à¤•:';
-$lang['img_date']              = 'तिथि:';
-$lang['img_fsize']             = 'आकार:';
-$lang['img_artist']            = 'फोटोगà¥à¤°à¤¾à¤«à¤°:';
-$lang['img_format']            = 'पà¥à¤°à¤¾à¤°à¥‚प:';
-$lang['img_camera']            = 'कैमरा:';
-$lang['i_chooselang']          = 'अपनी भाषा चà¥à¤¨à¥‡à¤‚';
-$lang['i_installer']           = 'डोकà¥à¤µà¤¿à¤•ी इंसà¥à¤Ÿà¥‰à¤²à¤°';
-$lang['i_wikiname']            = 'विकी का नाम';
-$lang['i_superuser']           = 'महाउपयोगकरà¥à¤¤à¤¾';
-$lang['i_retry']               = 'पà¥à¤¨à¤ƒà¤ªà¥à¤°à¤¯à¤¾à¤¸';
diff --git a/wiki/inc/lang/hr/admin.txt b/wiki/inc/lang/hr/admin.txt
deleted file mode 100644
index eaf4d78..0000000
--- a/wiki/inc/lang/hr/admin.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Administracija ======
-
-Slijedi popis svih administracijskih poslova koji su trenutno dostupni.
diff --git a/wiki/inc/lang/hr/adminplugins.txt b/wiki/inc/lang/hr/adminplugins.txt
deleted file mode 100644
index 5a7656d..0000000
--- a/wiki/inc/lang/hr/adminplugins.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Dodatni dodatci =====
\ No newline at end of file
diff --git a/wiki/inc/lang/hr/backlinks.txt b/wiki/inc/lang/hr/backlinks.txt
deleted file mode 100644
index 0583891..0000000
--- a/wiki/inc/lang/hr/backlinks.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Veze na stranicu ======
-
-Slijedi popis svih stranica koje imaju poveznicu na trenutnu stranicu.
diff --git a/wiki/inc/lang/hr/conflict.txt b/wiki/inc/lang/hr/conflict.txt
deleted file mode 100644
index 82fdd33..0000000
--- a/wiki/inc/lang/hr/conflict.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== Postoji novija inaÄica ======
-
-Već postoji novija inaÄica dokumenta kojeg ste mijenjali. To se dogaÄ‘a jer je neki drugi korisnik snimio dokument za vrijeme dok ste ga Vi mijenjali.
-
-ProuÄite promjene koje slijede i odaberite koje želite preuzeti. Odaberite ''Pohrani'' da biste snimili VaÅ¡u inaÄicu ili ''PoniÅ¡ti'' da ostavite saÄuvanu trenutnu inaÄicu dokumenta.
diff --git a/wiki/inc/lang/hr/denied.txt b/wiki/inc/lang/hr/denied.txt
deleted file mode 100644
index 0613b58..0000000
--- a/wiki/inc/lang/hr/denied.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Niste ovlašteni ======
-
-Nemate potrebne ovlasti za nastavak.
-
diff --git a/wiki/inc/lang/hr/diff.txt b/wiki/inc/lang/hr/diff.txt
deleted file mode 100644
index 295397a..0000000
--- a/wiki/inc/lang/hr/diff.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Razlike ======
-
-Slijede razlike izmeÄ‘u dviju inaÄica stranice
diff --git a/wiki/inc/lang/hr/draft.txt b/wiki/inc/lang/hr/draft.txt
deleted file mode 100644
index 6caa26e..0000000
--- a/wiki/inc/lang/hr/draft.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Pronađen prethodni pokušaj izmjena ======
-
-Vaše zadnje uređivanje ove stranice nije završilo uredno. DokuWiki je automatski pohranio kopiju tijekom rada koju sada možete iskoristiti da nastavite uređivanje. Niže možete vidjeti sadržaj koji je pohranjen pri vašem zadnjem uređivanju.
-Molimo odluÄite da li želite //vratiti// ili //obrisati// pohranjeni sadržaj pri vaÅ¡em zadnjem neuspjelom ureÄ‘ivanju, ili pak želite //odustati// od ureÄ‘ivanja.
diff --git a/wiki/inc/lang/hr/edit.txt b/wiki/inc/lang/hr/edit.txt
deleted file mode 100644
index 7ed55d5..0000000
--- a/wiki/inc/lang/hr/edit.txt
+++ /dev/null
@@ -1 +0,0 @@
-Uredite stranicu i pritisnite "Pohrani". Pogledajte [[wiki:syntax]] za Wiki sintaksu. Molimo izmijenite samo ako možete unaprijediti sadržaj. Ako trebate testirati ili nauÄiti kako se neÅ¡to radi, molimo koristite za to namijenjene stranice kao Å¡to je [[playground:playground|igraonica]].
diff --git a/wiki/inc/lang/hr/editrev.txt b/wiki/inc/lang/hr/editrev.txt
deleted file mode 100644
index 9ac656e..0000000
--- a/wiki/inc/lang/hr/editrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**UÄitali ste stariju inaÄicu dokumenta!** Ukoliko je pohranite - biti će kreirana nova inaÄica dokumenta.
-----
\ No newline at end of file
diff --git a/wiki/inc/lang/hr/index.txt b/wiki/inc/lang/hr/index.txt
deleted file mode 100644
index 4395994..0000000
--- a/wiki/inc/lang/hr/index.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Mapa stranica ======
-
-Ovo je mapa svih dostupnih stranica poredanih po [[doku>namespaces|imenskom prostoru]].
diff --git a/wiki/inc/lang/hr/jquery.ui.datepicker.js b/wiki/inc/lang/hr/jquery.ui.datepicker.js
deleted file mode 100644
index 5e218c1..0000000
--- a/wiki/inc/lang/hr/jquery.ui.datepicker.js
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Croatian i18n for the jQuery UI date picker plugin. */
-/* Written by Vjekoslav Nesek. */
-( function( factory ) {
-	if ( typeof define === "function" && define.amd ) {
-
-		// AMD. Register as an anonymous module.
-		define( [ "../widgets/datepicker" ], factory );
-	} else {
-
-		// Browser globals
-		factory( jQuery.datepicker );
-	}
-}( function( datepicker ) {
-
-datepicker.regional.hr = {
-	closeText: "Zatvori",
-	prevText: "&#x3C;",
-	nextText: "&#x3E;",
-	currentText: "Danas",
-	monthNames: [ "SijeÄanj","VeljaÄa","Ožujak","Travanj","Svibanj","Lipanj",
-	"Srpanj","Kolovoz","Rujan","Listopad","Studeni","Prosinac" ],
-	monthNamesShort: [ "Sij","Velj","Ožu","Tra","Svi","Lip",
-	"Srp","Kol","Ruj","Lis","Stu","Pro" ],
-	dayNames: [ "Nedjelja","Ponedjeljak","Utorak","Srijeda","ÄŒetvrtak","Petak","Subota" ],
-	dayNamesShort: [ "Ned","Pon","Uto","Sri","ÄŒet","Pet","Sub" ],
-	dayNamesMin: [ "Ne","Po","Ut","Sr","ÄŒe","Pe","Su" ],
-	weekHeader: "Tje",
-	dateFormat: "dd.mm.yy.",
-	firstDay: 1,
-	isRTL: false,
-	showMonthAfterYear: false,
-	yearSuffix: "" };
-datepicker.setDefaults( datepicker.regional.hr );
-
-return datepicker.regional.hr;
-
-} ) );
diff --git a/wiki/inc/lang/hr/lang.php b/wiki/inc/lang/hr/lang.php
deleted file mode 100644
index 4fdc147..0000000
--- a/wiki/inc/lang/hr/lang.php
+++ /dev/null
@@ -1,359 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Davor Turkalj <turki.bsc@gmail.com>
- * @author Tomo Krajina <aaa@puzz.info>
- * @author Branko Rihtman <theney@gmail.com>
- * @author Dražen Odobašić <dodobasic@gmail.com>
- * @author Dejan Igrec <dejan.igrec@gmail.com>
- */
-$lang['encoding']              = 'utf-8';
-$lang['direction']             = 'ltr';
-$lang['doublequoteopening']    = '“';
-$lang['doublequoteclosing']    = 'â€';
-$lang['singlequoteopening']    = '‘';
-$lang['singlequoteclosing']    = '’';
-$lang['apostrophe']            = '’';
-$lang['btn_edit']              = 'Izmijeni stranicu';
-$lang['btn_source']            = 'Prikaži kod stranice';
-$lang['btn_show']              = 'Prikaži dokument';
-$lang['btn_create']            = 'Stvori ovu stranicu';
-$lang['btn_search']            = 'Pretraži';
-$lang['btn_save']              = 'Pohrani';
-$lang['btn_preview']           = 'Prikaži';
-$lang['btn_top']               = 'Na vrh';
-$lang['btn_newer']             = '<< noviji';
-$lang['btn_older']             = 'stariji >>';
-$lang['btn_revs']              = 'Stare promjene';
-$lang['btn_recent']            = 'Nedavne izmjene';
-$lang['btn_upload']            = 'UÄitaj';
-$lang['btn_cancel']            = 'Odustani';
-$lang['btn_index']             = 'Mapa lokacije';
-$lang['btn_secedit']           = 'Uredi';
-$lang['btn_login']             = 'Prijavi se';
-$lang['btn_logout']            = 'Odjavi se';
-$lang['btn_admin']             = 'Administriranje';
-$lang['btn_update']            = 'Nadogradi';
-$lang['btn_delete']            = 'Obriši';
-$lang['btn_back']              = 'Nazad';
-$lang['btn_backlink']          = 'Povratne veze';
-$lang['btn_subscribe']         = 'Uređivanje pretplata';
-$lang['btn_profile']           = 'Dopuni profil';
-$lang['btn_reset']             = 'Poništi';
-$lang['btn_resendpwd']         = 'Postavi novu lozinku';
-$lang['btn_draft']             = 'Uredi nacrt dokumenta';
-$lang['btn_recover']           = 'Vrati nacrt stranice';
-$lang['btn_draftdel']          = 'Obriši nacrt stranice';
-$lang['btn_revert']            = 'Vrati';
-$lang['btn_register']          = 'Registracija';
-$lang['btn_apply']             = 'Primjeni';
-$lang['btn_media']             = 'Upravitelj datoteka';
-$lang['btn_deleteuser']        = 'Ukloni mog korisnika';
-$lang['btn_img_backto']        = 'Povratak na %s';
-$lang['btn_mediaManager']      = 'Pogledaj u upravitelju datoteka';
-$lang['loggedinas']            = 'Prijavljen kao:';
-$lang['user']                  = 'KorisniÄko ime';
-$lang['pass']                  = 'Lozinka';
-$lang['newpass']               = 'Nova lozinka';
-$lang['oldpass']               = 'Potvrdi trenutnu lozinku';
-$lang['passchk']               = 'još jednom';
-$lang['remember']              = 'Zapamti me';
-$lang['fullname']              = 'Ime i prezime';
-$lang['email']                 = 'E-pošta';
-$lang['profile']               = 'KorisniÄki profil';
-$lang['badlogin']              = 'Neispravno korisniÄko ime ili lozinka.';
-$lang['badpassconfirm']        = 'Nažalost, lozinka nije ispravna';
-$lang['minoredit']             = 'Manje izmjene';
-$lang['draftdate']             = 'Nacrt promjena automatski spremljen u';
-$lang['nosecedit']             = 'Stranica se u meÄ‘uvremenu promijenila. Informacija o odjeljku je ostarila pa je uÄitana kompletna stranica.';
-$lang['searchcreatepage']      = 'Ako niste našli ono što ste tražili, možete napraviti ili urediti stranicu %s, imenovanu prema vašoj potrazi.';
-$lang['search_fullresults']    = 'Rezultat u punom tekstu';
-$lang['js']['search_toggle_tools'] = 'Odaberi alat pretrage';
-$lang['js']['willexpire']      = 'Dokument kojeg mijenjate će biti zakljuÄan joÅ¡ 1 minutu.\n Ukoliko želite i dalje raditi izmjene na dokumentu - kliknite na "Pregled".';
-$lang['js']['notsavedyet']     = 'Vaše izmjene će se izgubiti.
-Želite li nastaviti?';
-$lang['js']['searchmedia']     = 'Traži datoteke';
-$lang['js']['keepopen']        = 'Ostavi prozor otvoren nakon izbora';
-$lang['js']['hidedetails']     = 'Sakrij detalje';
-$lang['js']['mediatitle']      = 'Postavke poveznice';
-$lang['js']['mediadisplay']    = 'Vrsta poveznice';
-$lang['js']['mediaalign']      = 'Poravnanje';
-$lang['js']['mediasize']       = 'VeliÄina slike';
-$lang['js']['mediatarget']     = 'Cilj poveznice';
-$lang['js']['mediaclose']      = 'Zatvori';
-$lang['js']['mediainsert']     = 'Umetni';
-$lang['js']['mediadisplayimg'] = 'Prikaži sliku.';
-$lang['js']['mediadisplaylnk'] = 'Prikaži samo poveznicu.';
-$lang['js']['mediasmall']      = 'Mala inaÄica.';
-$lang['js']['mediamedium']     = 'Srednja inaÄica.';
-$lang['js']['medialarge']      = 'Velika inaÄica.';
-$lang['js']['mediaoriginal']   = 'Originalna inaÄica.';
-$lang['js']['medialnk']        = 'Poveznica na stranicu s detaljima';
-$lang['js']['mediadirect']     = 'Direktna poveznica na original';
-$lang['js']['medianolnk']      = 'Bez poveznice';
-$lang['js']['medianolink']     = 'Nemoj povezati sliku';
-$lang['js']['medialeft']       = 'Poravnaj sliku lijevo.';
-$lang['js']['mediaright']      = 'Poravnaj sliku desno.';
-$lang['js']['mediacenter']     = 'Poravnaj sliku u sredinu.';
-$lang['js']['medianoalign']    = 'Bez poravnanja.';
-$lang['js']['nosmblinks']      = 'Poveznicei na dijeljene Windows mape rade samo s Internet Explorerom. Poveznicu je još uvijek moguće kopirati i zalijepiti.';
-$lang['js']['linkwiz']         = 'ÄŒarobnjak za poveznice';
-$lang['js']['linkto']          = 'Poveznica na:';
-$lang['js']['del_confirm']     = 'Zbilja želite obrisati odabrane stavke?';
-$lang['js']['restore_confirm'] = 'Zaista želite vratiti ovu inaÄicu?';
-$lang['js']['media_diff']      = 'Pogledaj razlike:';
-$lang['js']['media_diff_both'] = 'Usporedni prikaz';
-$lang['js']['media_diff_opacity'] = 'Sjaj kroz';
-$lang['js']['media_diff_portions'] = 'Pomakni';
-$lang['js']['media_select']    = 'Odaberi datoteke ...';
-$lang['js']['media_upload_btn'] = 'UÄitavanje';
-$lang['js']['media_done_btn']  = 'Gotovo';
-$lang['js']['media_drop']      = 'Ovdje spusti datoteke za uÄitavanje';
-$lang['js']['media_cancel']    = 'ukloni';
-$lang['js']['media_overwrt']   = 'Prepiši preko postojeće datoteke';
-$lang['search_exact_match']    = 'Potpuno identiÄno';
-$lang['search_starts_with']    = 'PoÄinje s';
-$lang['search_ends_with']      = 'Završava s';
-$lang['search_contains']       = 'Sadrži';
-$lang['search_custom_match']   = 'Prilagođeno';
-$lang['search_any_ns']         = 'Bilo koji imenski prostor';
-$lang['search_any_time']       = 'Bilo koje vrijeme';
-$lang['search_past_7_days']    = 'Prošli tjedan';
-$lang['search_past_month']     = 'Prošli mjesec';
-$lang['search_past_year']      = 'Prošla godina';
-$lang['search_sort_by_hits']   = 'Poredaj po poklapanju';
-$lang['search_sort_by_mtime']  = 'Poredaj po zadnjoj promjeni';
-$lang['regmissing']            = 'Morate popuniti sva polja.';
-$lang['reguexists']            = 'Korisnik s tim korisniÄkim imenom već postoji.';
-$lang['regsuccess']            = 'Korisnik je uspješno stvoren i poslana je lozinka emailom.';
-$lang['regsuccess2']           = 'Korisnik je uspješno kreiran.';
-$lang['regfail']               = 'Korisnik ne može biti kreiran.';
-$lang['regmailfail']           = 'Pojavila se greška prilikom slanja lozinke e-poštom. Kontaktirajte administratora!';
-$lang['regbadmail']            = 'Adresa e-pošte nije ispravna, ukoliko ovo smatrate greškom, kontaktirajte administratora.';
-$lang['regbadpass']            = 'Unesene lozinke nisu jednake, pokušajte ponovno.';
-$lang['regpwmail']             = 'Vaša DokuWiki lozinka';
-$lang['reghere']               = 'JoÅ¡ uvijek nemate korisniÄki raÄun? Registrirajte se.';
-$lang['profna']                = 'Ovaj wiki ne dopuÅ¡ta izmjene korisniÄkog profila.';
-$lang['profnochange']          = 'Nema izmjena.';
-$lang['profnoempty']           = 'Prazno korisniÄko ime ili e-poÅ¡ta nisu dopuÅ¡teni.';
-$lang['profchanged']           = 'KorisniÄki profil je uspjeÅ¡no izmijenjen.';
-$lang['profnodelete']          = 'Ovaj wiki ne podržava brisanje korisnika';
-$lang['profdeleteuser']        = 'Obriši korisnika';
-$lang['profdeleted']           = 'Vaš korisnik je obrisan s ovog wiki-a';
-$lang['profconfdelete']        = 'Želim ukloniti mojeg korisnika s ovog wiki-a. <br/> Ova akcija se ne može poništiti.';
-$lang['profconfdeletemissing'] = 'KvaÄica za potvrdu nije oznaÄena';
-$lang['proffail']              = 'Profil korisnika nije izmijenjen.';
-$lang['pwdforget']             = 'Izgubili ste lozinku? Zatražite novu';
-$lang['resendna']              = 'Ovaj wiki ne podržava ponovno slanje lozinke e-poštom.';
-$lang['resendpwd']             = 'Postavi novu lozinku za';
-$lang['resendpwdmissing']      = 'Ispunite sva polja.';
-$lang['resendpwdnouser']       = 'Nije moguće pronaći korisnika.';
-$lang['resendpwdbadauth']      = 'Neispravan autorizacijski kod. Provjerite da li ste koristili potpunu poveznicu za potvrdu.';
-$lang['resendpwdconfirm']      = 'Poveznica za potvrdu je poslana e-poštom.';
-$lang['resendpwdsuccess']      = 'Nova lozinka je poslana e-poštom.';
-$lang['license']               = 'Osim na mjestima gdje je naznaÄeno drugaÄije, sadržaj ovog wikija je licenciran sljedećom licencom:';
-$lang['licenseok']             = 'Pažnja: promjenom ovog dokumenta pristajete licencirati sadržaj sljedećom licencom: ';
-$lang['searchmedia']           = 'Traži naziv datoteke:';
-$lang['searchmedia_in']        = 'Traži u %s';
-$lang['txt_upload']            = 'Odaberite datoteku za uÄitavanje:';
-$lang['txt_filename']          = 'UÄitaj kao (nije obavezno):';
-$lang['txt_overwrt']           = 'Prepiši postojeću datoteku';
-$lang['maxuploadsize']         = 'Moguće je uÄitati maks. %s po datoteci.';
-$lang['lockedby']              = 'Trenutno zakljuÄao:';
-$lang['lockexpire']            = 'ZakljuÄano do:';
-$lang['rssfailed']             = 'Došlo je do greške prilikom preuzimanja feed-a: ';
-$lang['nothingfound']          = 'Traženi dokumetni nisu pronađeni.';
-$lang['mediaselect']           = 'Datoteke';
-$lang['uploadsucc']            = 'UÄitavanje uspjeÅ¡no';
-$lang['uploadfail']            = 'NeuspjeÅ¡no uÄitavanje. Možda dozvole na poslužitelju nisu ispravne?';
-$lang['uploadwrong']           = 'UÄitavanje nije dopuÅ¡teno. Nastavak datoteke je zabranjen!';
-$lang['uploadexist']           = 'Datoteka već postoji.';
-$lang['uploadbadcontent']      = 'UÄitani sadržaj ne odgovara ekstenziji %s datoteke.';
-$lang['uploadspam']            = 'UÄitavanje je sprijeÄeno od spam crne liste.';
-$lang['uploadxss']             = 'UÄitavanje je sprijeÄeno zbog mogućeg zlonamjernog sadržaja.';
-$lang['uploadsize']            = 'UÄitana datoteka je prevelika (max. %s)';
-$lang['deletesucc']            = 'Datoteka "%s" je obrisana.';
-$lang['deletefail']            = '"%s" se ne može obrisati - provjerite dozvole na poslužitelju.';
-$lang['mediainuse']            = 'Datoteka "%s" nije obrisana - još uvijek se koristi.';
-$lang['namespaces']            = 'Imenski prostori';
-$lang['mediafiles']            = 'Datoteke u';
-$lang['accessdenied']          = 'Nemate potrebne dozvole za pregled ove stranice.';
-$lang['mediausage']            = 'Koristi sljedeću sintaksu za referenciranje ove datoteke:';
-$lang['mediaview']             = 'Vidi izvornu datoteku';
-$lang['mediaroot']             = 'root';
-$lang['mediaupload']           = 'Postavi datoteku u odabrani imenski prostor. Podimenski prostori se stvaraju dodavanjem istih kao prefiks naziva datoteke u "Postavi kao" polju, tako da se odvoje dvotoÄkama.';
-$lang['mediaextchange']        = 'Nastavak datoteke promijenjen iz .%s u .%s!';
-$lang['reference']             = 'Poveznice za';
-$lang['ref_inuse']             = 'Datoteka se ne može obrisati jer se još uvijek koristi u sljedećim dokumentima:';
-$lang['ref_hidden']            = 'Neke poveznice se nalaze na dokumentima koje nemate dozvolu Äitati';
-$lang['hits']                  = 'Pronađeno';
-$lang['quickhits']             = 'Pronađeno po nazivima dokumenata';
-$lang['toc']                   = 'Sadržaj';
-$lang['current']               = 'trenutno';
-$lang['yours']                 = 'VaÅ¡a inaÄica';
-$lang['diff']                  = 'Prikaži razlike u odnosu na zadnje stanje';
-$lang['diff2']                 = 'Pokaži razlike između odabranih izmjena';
-$lang['difflink']              = 'Poveznica na ovu usporedbu';
-$lang['diff_type']             = 'Vidi razlike:';
-$lang['diff_inline']           = 'U istoj razini';
-$lang['diff_side']             = 'Usporedo';
-$lang['diffprevrev']           = 'Starija izmjena';
-$lang['diffnextrev']           = 'Novija izmjena';
-$lang['difflastrev']           = 'Zadnja izmjena';
-$lang['diffbothprevrev']       = 'Starije izmjene na obje strane';
-$lang['diffbothnextrev']       = 'Novije izmjene na obje strane';
-$lang['line']                  = 'Redak';
-$lang['breadcrumb']            = 'Zadnje viđeno:';
-$lang['youarehere']            = 'Vi ste ovdje:';
-$lang['lastmod']               = 'Zadnja izmjena:';
-$lang['by']                    = 'od';
-$lang['deleted']               = 'obrisano';
-$lang['created']               = 'stvoreno';
-$lang['restored']              = 'vraćeno na prijašnju izmjenu (%s)';
-$lang['external_edit']         = 'vanjsko uređivanje';
-$lang['summary']               = 'Sažetak izmjena';
-$lang['noflash']               = 'Za prikazivanje ovog sadržaja potreban je <a href="http://www.adobe.com/products/flashplayer/">Adobe Flash Plugin</a>';
-$lang['download']              = 'Preuzmi isjeÄak';
-$lang['tools']                 = 'Alati';
-$lang['user_tools']            = 'KorisniÄki alati';
-$lang['site_tools']            = 'Site alati';
-$lang['page_tools']            = 'StraniÄni alati';
-$lang['skip_to_content']       = 'preskoÄi na sadržaj';
-$lang['sidebar']               = 'BoÄna traka';
-$lang['mail_newpage']          = 'stranica dodana:';
-$lang['mail_changed']          = 'stranica izmijenjena:';
-$lang['mail_subscribe_list']   = 'stranice promijenjene u imenskom prostoru:';
-$lang['mail_new_user']         = 'novi korisnik:';
-$lang['mail_upload']           = 'datoteka uÄitana:';
-$lang['changes_type']          = 'Vidi promjene od';
-$lang['pages_changes']         = 'Stranice';
-$lang['media_changes']         = 'Datoteke';
-$lang['both_changes']          = 'Zajedno stranice i datoteke';
-$lang['qb_bold']               = 'Podebljani tekst';
-$lang['qb_italic']             = 'Ukošeni tekst';
-$lang['qb_underl']             = 'Podcrtani tekst';
-$lang['qb_code']               = 'Kod';
-$lang['qb_strike']             = 'Precrtani tekst';
-$lang['qb_h1']                 = 'Naslov 1. razine';
-$lang['qb_h2']                 = 'Naslov 2. razine';
-$lang['qb_h3']                 = 'Naslov 3. razine';
-$lang['qb_h4']                 = 'Naslov 4. razine';
-$lang['qb_h5']                 = 'Naslov 5. razine';
-$lang['qb_h']                  = 'Naslov';
-$lang['qb_hs']                 = 'Odaberite naslov';
-$lang['qb_hplus']              = 'Naslov više razine';
-$lang['qb_hminus']             = 'Naslov niže razine';
-$lang['qb_hequal']             = 'Naslov iste razine';
-$lang['qb_link']               = 'Interna poveznica';
-$lang['qb_extlink']            = 'Vanjska poveznica';
-$lang['qb_hr']                 = 'Vodoravna crta';
-$lang['qb_ol']                 = 'Element brojane liste';
-$lang['qb_ul']                 = 'Element obiÄne liste';
-$lang['qb_media']              = 'Dodaj slike i ostale datoteke (prikaz u novom prozoru)';
-$lang['qb_sig']                = 'Ubaci potpis';
-$lang['qb_smileys']            = 'Smiješkići';
-$lang['qb_chars']              = 'Posebni znakovi';
-$lang['upperns']               = 'SkoÄi u nadreÄ‘eni imenski prostor';
-$lang['metaedit']              = 'Uredi metapodatake';
-$lang['metasaveerr']           = 'Neuspješno zapisivanje metapodataka';
-$lang['metasaveok']            = 'Spremljeni metapdaci';
-$lang['img_title']             = 'Naziv:';
-$lang['img_caption']           = 'Naslov:';
-$lang['img_date']              = 'Datum:';
-$lang['img_fname']             = 'Ime datoteke:';
-$lang['img_fsize']             = 'VeliÄina:';
-$lang['img_artist']            = 'Fotograf:';
-$lang['img_copyr']             = 'Autorsko pravo:';
-$lang['img_format']            = 'Format:';
-$lang['img_camera']            = 'Kamera:';
-$lang['img_keywords']          = 'KljuÄne rijeÄi:';
-$lang['img_width']             = 'Å irina:';
-$lang['img_height']            = 'Visina:';
-$lang['subscr_subscribe_success'] = 'Dodan %s u listu pretplatnika za %s';
-$lang['subscr_subscribe_error'] = 'Greška kod dodavanja %s u listu pretplatnika za %s';
-$lang['subscr_subscribe_noaddress'] = 'Ne postoji adresa povezana sa vašim podacima za prijavu, stoga ne možete biti dodani u listu pretplatnika';
-$lang['subscr_unsubscribe_success'] = 'Uklonjen %s iz liste pretplatnika za %s';
-$lang['subscr_unsubscribe_error'] = 'Greška prilikom uklanjanja %s iz liste pretplatnika za %s';
-$lang['subscr_already_subscribed'] = '%s je već pretplaćen na %s';
-$lang['subscr_not_subscribed'] = '%s nije pretplaćen na %s';
-$lang['subscr_m_not_subscribed'] = 'Trenutno niste pretplaćeni na trenutnu stranicu ili imenski prostor.';
-$lang['subscr_m_new_header']   = 'Dodaj pretplatu';
-$lang['subscr_m_current_header'] = 'Trenutne pretplate';
-$lang['subscr_m_unsubscribe']  = 'Odjavi pretplatu';
-$lang['subscr_m_subscribe']    = 'Pretplati se';
-$lang['subscr_m_receive']      = 'Primi';
-$lang['subscr_style_every']    = 'e-pošta za svaku promjenu';
-$lang['subscr_style_digest']   = 'e-pošta s kratakim prikazom promjena za svaku stranicu (svaka %.2f dana)';
-$lang['subscr_style_list']     = 'listu promijenjenih stranica od zadnje primljene e-pošte (svaka %.2f dana)';
-$lang['authtempfail']          = 'Prijava korisnika je privremeno nedostupna. Molimo Vas da kontaktirate administratora, ako ovo potraje.';
-$lang['i_chooselang']          = 'Izaberite vaš jezik';
-$lang['i_installer']           = 'DokuWiki postavljanje';
-$lang['i_wikiname']            = 'Naziv Wikija';
-$lang['i_enableacl']           = 'Omogući ACL (preporuÄeno)';
-$lang['i_superuser']           = 'Superkorisnik';
-$lang['i_problems']            = 'Instalacija je pronaÅ¡la probleme koji su naznaÄeni ispod. Nije moguće nastaviti dok se ti problemi ne rijeÅ¡e.';
-$lang['i_modified']            = 'Zbog sigurnosnih razlog, ova skripta raditi će samo sa novim i neizmijenjenim DokuWiki instalacijama.
-      Molimo ponovno prekopirajte datoteke iz preuzetoga paketa ili pogledajte detaljno <a href="http://dokuwiki.org/install">Uputstvo za postavljanje DokuWiki-a</a>';
-$lang['i_funcna']              = 'PHP funkcija <code>%s</code> nije dostupna. Možda ju je vaš pružatelj hostinga onemogućio iz nekog razloga?';
-$lang['i_phpver']              = 'VaÅ¡a PHP inaÄica <code>%s</code> je niža od potrebne <code>%s</code>. Trebate nadograditi vaÅ¡u PHP instalaciju.';
-$lang['i_mbfuncoverload']      = 'mbstring.func_overload mora biti onemogućena u php.ini da bi ste pokrenuli DokuWiki.';
-$lang['i_permfail']            = '<code>%s</code> nema dozvolu pisanja od strane DokuWiki. Trebate podesiti dozvole pristupa tom direktoriju.';
-$lang['i_confexists']          = '<code>%s</code> već postoji';
-$lang['i_writeerr']            = 'Ne može se kreirati <code>%s</code>. Trebate provjeriti dozvole direktorija/datoteke i kreirati dokument ruÄno.';
-$lang['i_badhash']             = 'neprepoznat ili promijenjen dokuwiki.php (hash=<code>%s</code>)';
-$lang['i_badval']              = '<code>%s</code> - nedozvoljena ili prazna vrijednost';
-$lang['i_success']             = 'Podešavanje je uspješno završeno. Sada možete obrisati install.php datoteku. Nastavite na <a href="doku.php?id=wiki:welcome">vaš novi DokuWiki</a>.';
-$lang['i_failure']             = 'Pojavile su se neke greÅ¡ke prilikom pisanja konfiguracijskih datoteka. Morati ćete ih ruÄno ispraviti da bi mogli koristiti <a href="doku.php?id=wiki:welcome">vaÅ¡ novi DokuWiki</a>.';
-$lang['i_policy']              = 'Inicijalna ACL politika';
-$lang['i_pol0']                = 'Otvoreni Wiki (Äitanje, pisanje, uÄitavanje za sve)';
-$lang['i_pol1']                = 'Javni Wiki (Äitanje za sve, pisanje i uÄitavanje za registrirane korisnike)';
-$lang['i_pol2']                = 'Zatvoreni Wiki (Äitanje, pisanje, uÄitavanje samo za registrirane korisnike)';
-$lang['i_allowreg']            = 'Dopusti da korisnici sami sebe registriraju';
-$lang['i_retry']               = 'Pokušaj ponovo';
-$lang['i_license']             = 'Molim odaberite licencu pod kojom želite postavljati vaš sadržaj:';
-$lang['i_license_none']        = 'Ne prikazuj nikakve licenÄne informacije.';
-$lang['i_pop_field']           = 'Molimo, pomozite na da unaprijedimo DokuWiki:';
-$lang['i_pop_label']           = 'Jednom na mjesec, pošalji anonimne podatke o korištenju DokuWiki razvojnom timu';
-$lang['recent_global']         = 'Trenutno gledate promjene unutar <b>%s</b> imenskog prostora. Također možete <a href="%s">vidjeti zadnje promjene cijelog wiki-a</a>';
-$lang['years']                 = '%d godina prije';
-$lang['months']                = '%d mjeseci prije';
-$lang['weeks']                 = '%d tjedana prije';
-$lang['days']                  = '%d dana prije';
-$lang['hours']                 = '%d sati prije';
-$lang['minutes']               = '%d minuta prije';
-$lang['seconds']               = '%d sekundi prije';
-$lang['wordblock']             = 'Vaša promjena nije spremljena jer sadrži blokirani tekst (spam).';
-$lang['media_uploadtab']       = 'UÄitavanje';
-$lang['media_searchtab']       = 'Traženje';
-$lang['media_file']            = 'Datoteka';
-$lang['media_viewtab']         = 'Pogled';
-$lang['media_edittab']         = 'Uredi';
-$lang['media_historytab']      = 'Povijest';
-$lang['media_list_thumbs']     = 'Ikone';
-$lang['media_list_rows']       = 'Redovi';
-$lang['media_sort_name']       = 'Naziv';
-$lang['media_sort_date']       = 'Datum';
-$lang['media_namespaces']      = 'Odaberi imenski prostor';
-$lang['media_files']           = 'Datoteke u %s';
-$lang['media_upload']          = 'UÄitaj u %s';
-$lang['media_search']          = 'Potraži u %s';
-$lang['media_view']            = '%s';
-$lang['media_viewold']         = '%s na %s';
-$lang['media_edit']            = 'Uredi %s';
-$lang['media_history']         = 'Povijest %s';
-$lang['media_meta_edited']     = 'meta podaci uređeni';
-$lang['media_perm_read']       = 'Nažalost, nemate prava za Äitanje datoteka.';
-$lang['media_perm_upload']     = 'Nažalost, nemate prava za uÄitavanje datoteka.';
-$lang['media_update']          = 'UÄitaj novu inaÄicu';
-$lang['media_restore']         = 'Vrati ovu inaÄicu';
-$lang['media_acl_warning']     = 'Ova lista moguće da nije kompletna zbog ograniÄenja ovlasti i skrivenih stranica.';
-$lang['currentns']             = 'Tekući imeniÄki prostor';
-$lang['searchresult']          = 'Rezultati pretraživanja';
-$lang['plainhtml']             = 'ÄŒisti HTML';
-$lang['wikimarkup']            = 'Wiki kod';
-$lang['page_nonexist_rev']     = 'Stranica ne postoji na %s. Ona je naknadno napravljena na <a href="%s">%s</a>.';
-$lang['unable_to_parse_date']  = 'Ne mogu analizirati parametar "%s".';
-$lang['email_signature_text']  = 'Ovaj email je poslan na
-@DOKUWIKIURL@';
diff --git a/wiki/inc/lang/hr/locked.txt b/wiki/inc/lang/hr/locked.txt
deleted file mode 100644
index ff081aa..0000000
--- a/wiki/inc/lang/hr/locked.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Dokument zakljuÄan ======
-
-Mijenjanje ovog dokumenta je trenutno onemogućeno jer je otvoren od strane nekog drugog korisnika. Morate priÄekati da on zavrÅ¡i sa svojim izmjenama.
diff --git a/wiki/inc/lang/hr/login.txt b/wiki/inc/lang/hr/login.txt
deleted file mode 100644
index 216af13..0000000
--- a/wiki/inc/lang/hr/login.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Prijava ======
-
-UpiÅ¡ite korisniÄko ime i lozinku da biste se prijavili.
diff --git a/wiki/inc/lang/hr/mailtext.txt b/wiki/inc/lang/hr/mailtext.txt
deleted file mode 100644
index 1719fd5..0000000
--- a/wiki/inc/lang/hr/mailtext.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-Dokument na Vašem wiki-ju je promijenjen ili dodan:
-
-Datum             : @DATE@
-Preglednik        : @BROWSER@
-IP-Adresa         : @IPADDRESS@
-Host              : @HOSTNAME@
-Prijašnja izmjena : @OLDPAGE@
-Nova izmjena      : @NEWPAGE@
-Opis izmjene      : @SUMMARY@
-Korisnik          : @USER@
-
-@DIFF@
diff --git a/wiki/inc/lang/hr/newpage.txt b/wiki/inc/lang/hr/newpage.txt
deleted file mode 100644
index 3934658..0000000
--- a/wiki/inc/lang/hr/newpage.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Dokument ne postoji ======
-
-Traženi dokument (još) ne postoji. Ukoliko ga želite otvoriti kliknite na ''Novi dokument''.
diff --git a/wiki/inc/lang/hr/norev.txt b/wiki/inc/lang/hr/norev.txt
deleted file mode 100644
index 8c9178e..0000000
--- a/wiki/inc/lang/hr/norev.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Nepostojeća inaÄica ======
-
-Tražena izmjena ne postoji. Pritisnite "Stare promjene" za listu starih promjena dokumenta.
diff --git a/wiki/inc/lang/hr/password.txt b/wiki/inc/lang/hr/password.txt
deleted file mode 100644
index 76cccbd..0000000
--- a/wiki/inc/lang/hr/password.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-Pozdrav @FULLNAME@!
-
-Slijede podaci za @TITLE@ sa @DOKUWIKIURL@
-
-KorisniÄko ime : @LOGIN@
-Lozinka        : @PASSWORD@
diff --git a/wiki/inc/lang/hr/preview.txt b/wiki/inc/lang/hr/preview.txt
deleted file mode 100644
index 4289f4d..0000000
--- a/wiki/inc/lang/hr/preview.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Pregled ======
-
-Ovo je pregled kako će izgledati Vaš dokument nakon što se pohrani.
diff --git a/wiki/inc/lang/hr/pwconfirm.txt b/wiki/inc/lang/hr/pwconfirm.txt
deleted file mode 100644
index 506e98e..0000000
--- a/wiki/inc/lang/hr/pwconfirm.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-Pozdrav @FULLNAME@!
-
-Netko je zatražio novu lozinku za vašu @TITLE@ prijavu na @DOKUWIKIURL@.
-
-Ako to niste bili Vi, molimo da samo ignorirate ovu poruku.
-
-Da bi ste potvrdili da ste to ipak bili Vi, molimo slijedite link u nastavku:
-
-@CONFIRM@
diff --git a/wiki/inc/lang/hr/read.txt b/wiki/inc/lang/hr/read.txt
deleted file mode 100644
index 221f1b2..0000000
--- a/wiki/inc/lang/hr/read.txt
+++ /dev/null
@@ -1 +0,0 @@
-Ova stranica se može samo Äitati. Možete vidjeti kod, ali ga ne možete mijenjati. Javite se vaÅ¡em administratoru ako se s tim ne slažete.
\ No newline at end of file
diff --git a/wiki/inc/lang/hr/recent.txt b/wiki/inc/lang/hr/recent.txt
deleted file mode 100644
index 4145ca1..0000000
--- a/wiki/inc/lang/hr/recent.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Nedavne izmjene ======
-
-Stranice koje su nedavno promijenjene.
diff --git a/wiki/inc/lang/hr/register.txt b/wiki/inc/lang/hr/register.txt
deleted file mode 100644
index 32a5489..0000000
--- a/wiki/inc/lang/hr/register.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Prijava novog korisnika ======
-
-Ispunite potrebne podatke da biste dobili korisniÄki raÄun na wikiju. Posebno obratite pažnju da ste unijeli valjani email.
diff --git a/wiki/inc/lang/hr/registermail.txt b/wiki/inc/lang/hr/registermail.txt
deleted file mode 100644
index 9c556d9..0000000
--- a/wiki/inc/lang/hr/registermail.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-Novi korisnik je registriran. Ovdje su detalji:
-
-KorisniÄko ime : @NEWUSER@
-Puno ime       : @NEWNAME@
-e-pošta        : @NEWEMAIL@
-
-Datum      : @DATE@
-Preglednik : @BROWSER@
-IP-Adresa  : @IPADDRESS@
-RaÄunalo   : @HOSTNAME@
diff --git a/wiki/inc/lang/hr/resendpwd.txt b/wiki/inc/lang/hr/resendpwd.txt
deleted file mode 100644
index d5b2e65..0000000
--- a/wiki/inc/lang/hr/resendpwd.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Slanje nove lozinke ======
-
-Ispunite potrebne podatke da biste dobili novu lozinku za VaÅ¡ korisniÄki raÄun. Poveznica za potvrdu biti će poslana na VaÅ¡u adresu e-poÅ¡te.
diff --git a/wiki/inc/lang/hr/resetpwd.txt b/wiki/inc/lang/hr/resetpwd.txt
deleted file mode 100644
index 8d92e51..0000000
--- a/wiki/inc/lang/hr/resetpwd.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Postavi novu lozinku ======
-
-Molimo unesite novu lozinku za VaÅ¡u korisniÄku prijavu na ovom wiki-u. 
\ No newline at end of file
diff --git a/wiki/inc/lang/hr/revisions.txt b/wiki/inc/lang/hr/revisions.txt
deleted file mode 100644
index 990d50b..0000000
--- a/wiki/inc/lang/hr/revisions.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Stare izmjene ======
-
-Slijedi popis starijih izmjena za trenutni dokument. Da bi ste se vratili na neku od njih, odaberite ju, pritisnite Uređivanje i pohranite ju.
diff --git a/wiki/inc/lang/hr/searchpage.txt b/wiki/inc/lang/hr/searchpage.txt
deleted file mode 100644
index 14c0509..0000000
--- a/wiki/inc/lang/hr/searchpage.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Pretraživanja ======
-
-Možete naći rezultat vaše pretrage u nastavku. @CREATEPAGEINFO@
-
diff --git a/wiki/inc/lang/hr/showrev.txt b/wiki/inc/lang/hr/showrev.txt
deleted file mode 100644
index 86c1a02..0000000
--- a/wiki/inc/lang/hr/showrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**Ovo je stara izmjena dokumenta!**
-----
diff --git a/wiki/inc/lang/hr/stopwords.txt b/wiki/inc/lang/hr/stopwords.txt
deleted file mode 100644
index 5b1bb20..0000000
--- a/wiki/inc/lang/hr/stopwords.txt
+++ /dev/null
@@ -1,29 +0,0 @@
-# Ovo je popis rijeÄi koje indekser ignorira, jedna rijeÄ po retku
-# Kada mijenjate ovu datoteku budite sigurni da koristite UNIX oznaku kraja retka (jedan newline znak)
-# Nije potrebno navoditi rijeÄi kraće od 3 znaka - one su svakako ignorirane
-# Ova lista je bazirana na onoj nađenoj na http://www.ranks.nlstopwords/
-about
-are
-and
-you
-your
-them
-their
-com
-for
-from
-into
-how
-that
-the
-this
-was
-what
-when
-where
-who
-will
-with
-und
-the
-www
diff --git a/wiki/inc/lang/hr/subscr_digest.txt b/wiki/inc/lang/hr/subscr_digest.txt
deleted file mode 100644
index b58836d..0000000
--- a/wiki/inc/lang/hr/subscr_digest.txt
+++ /dev/null
@@ -1,15 +0,0 @@
-Pozdrav !
-
-Stranica @PAGE@ u @TITLE@ wiki-u je promijenjena.
-Ovdje su promjene:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-Stara izmjena: @OLDPAGE@
-Nova izmjena: @NEWPAGE@
-
-Da poništite obavijesti o izmjenama prijavite se na wiki @DOKUWIKIURL@ i zatim posjetite
-@SUBSCRIBE@
-i odjavite se s promjena na stranici i/ili imeniÄkom prostoru.
diff --git a/wiki/inc/lang/hr/subscr_form.txt b/wiki/inc/lang/hr/subscr_form.txt
deleted file mode 100644
index 95b2cd0..0000000
--- a/wiki/inc/lang/hr/subscr_form.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Uređivanje pretplata ======
-
-Ova stranica omogućuje Vam da uredite svoju pretplatu na promjene za tekuću stranicu ili imeniÄki prostor.
\ No newline at end of file
diff --git a/wiki/inc/lang/hr/subscr_list.txt b/wiki/inc/lang/hr/subscr_list.txt
deleted file mode 100644
index 75a4340..0000000
--- a/wiki/inc/lang/hr/subscr_list.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-Pozdrav !
-
-Stranice u imeniÄkom prostoru @PAGE@ na @TITLE@ wiki-u su izmijenjene. Ovo su izmijenjene stranice:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-Da poništite obavijesti o izmjenama prijavite se na wiki @DOKUWIKIURL@ i zatim posjetite
-@SUBSCRIBE@
-i odjavite se s promjena na stranici i/ili imeniÄkom prostoru.
diff --git a/wiki/inc/lang/hr/subscr_single.txt b/wiki/inc/lang/hr/subscr_single.txt
deleted file mode 100644
index 4c7b329..0000000
--- a/wiki/inc/lang/hr/subscr_single.txt
+++ /dev/null
@@ -1,18 +0,0 @@
-Pozdrav !
-
-Stranica @PAGE@ na @TITLE@ wiki-u je izmijenjena.
-Ovo su promjene:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-Datum  : @DATE@
-Korisnik: @USER@
-Sažetak izmjena: @SUMMARY@
-Stara izmjena: @OLDPAGE@
-Nova izmjena : @NEWPAGE@
-
-Da poništite obavijesti o izmjenama prijavite se na wiki @DOKUWIKIURL@ i zatim posjetite
-@SUBSCRIBE@
-i odjavite se s promjena na stranici i/ili imeniÄkom prostoru.
diff --git a/wiki/inc/lang/hr/updateprofile.txt b/wiki/inc/lang/hr/updateprofile.txt
deleted file mode 100644
index 8eab906..0000000
--- a/wiki/inc/lang/hr/updateprofile.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Izmjena korisniÄkog profila ======
-
-Ispunite samo polja koja želite mijenjati. Ne može se mijenjati korisniÄko ime.
diff --git a/wiki/inc/lang/hr/uploadmail.txt b/wiki/inc/lang/hr/uploadmail.txt
deleted file mode 100644
index f4ab91e..0000000
--- a/wiki/inc/lang/hr/uploadmail.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-Datoteka je uÄitana na VaÅ¡ DokuWiki. Ovdje su detalji:
-
-Datoteka     : @MEDIA@
-Stara izmjena: @OLD@
-Datum        : @DATE@
-Preglednik   : @BROWSER@
-IP-Adresa    : @IPADDRESS@
-RaÄunalo     : @HOSTNAME@
-VeliÄina     : @SIZE@
-MIME Tip     : @MIME@
-Korisnik     : @USER@
diff --git a/wiki/inc/lang/hu-formal/admin.txt b/wiki/inc/lang/hu-formal/admin.txt
deleted file mode 100644
index b661bfb..0000000
--- a/wiki/inc/lang/hu-formal/admin.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-===== Beállítások =====
-
-Alább találja a DokuWiki-ben elérhető beállítási lehetőségek listáját.
\ No newline at end of file
diff --git a/wiki/inc/lang/hu-formal/adminplugins.txt b/wiki/inc/lang/hu-formal/adminplugins.txt
deleted file mode 100644
index b077521..0000000
--- a/wiki/inc/lang/hu-formal/adminplugins.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== További bővítmények =====
\ No newline at end of file
diff --git a/wiki/inc/lang/hu-formal/backlinks.txt b/wiki/inc/lang/hu-formal/backlinks.txt
deleted file mode 100644
index 437eb2e..0000000
--- a/wiki/inc/lang/hu-formal/backlinks.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Hivatkozások ======
-
-Mindazon oldalak listája, amelyek az aktuális oldalra hivatkoznak.
\ No newline at end of file
diff --git a/wiki/inc/lang/hu-formal/conflict.txt b/wiki/inc/lang/hu-formal/conflict.txt
deleted file mode 100644
index 6718d67..0000000
--- a/wiki/inc/lang/hu-formal/conflict.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== Újabb változat érhető el ======
-
-Az Ön által szerkesztett oldalnak már egy újabb változata érhető el. Ez akkor fordulhat elő, ha egy másik felhasználó módosította a dokumtemot, mialatt Ön is szerkesztette azt.
-
-Vizsgálja meg az alább látható eltéréseket, majd döntse el, melyik változatot tartja meg. Ha a "Mentés" gombot választja, az Ön verziója mentődik el. Kattintson a "Mégsem" gombra a jelenlegi változat megtartásához.
\ No newline at end of file
diff --git a/wiki/inc/lang/hu-formal/denied.txt b/wiki/inc/lang/hu-formal/denied.txt
deleted file mode 100644
index d56a181..0000000
--- a/wiki/inc/lang/hu-formal/denied.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Hozzáférés megtadadva ======
-
-Sajnáljuk, de nincs joga a folytatáshoz.
-
diff --git a/wiki/inc/lang/hu-formal/diff.txt b/wiki/inc/lang/hu-formal/diff.txt
deleted file mode 100644
index f922a50..0000000
--- a/wiki/inc/lang/hu-formal/diff.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Eltérések ======
-
-Az oldal két változata közötti különbségek az alábbiak.
\ No newline at end of file
diff --git a/wiki/inc/lang/hu-formal/draft.txt b/wiki/inc/lang/hu-formal/draft.txt
deleted file mode 100644
index 9233eac..0000000
--- a/wiki/inc/lang/hu-formal/draft.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-===== Piszkozatot találtam =====
-
-Az Ön ezen az oldalon végzett utolsó szerkesztési művelete helytelenül fejeződött be. A DokuWiki automatikusan elmentett egy piszkozatot az Ön munkája során. Alább láthatók az utolsó munkafázis mentett adatai.
-
-Kérjük, döntse el, hogy //helyreállítja-e// a befejezetlen módosításokat, vagy //törli// az automatikusan mentett piszkozatot, vagy //megszakítja// a szerkesztési folyamatot.
\ No newline at end of file
diff --git a/wiki/inc/lang/hu-formal/edit.txt b/wiki/inc/lang/hu-formal/edit.txt
deleted file mode 100644
index 08f648b..0000000
--- a/wiki/inc/lang/hu-formal/edit.txt
+++ /dev/null
@@ -1 +0,0 @@
-Módosítsa az oldalt, majd kattintson a "Mentés" gombra. A wiki-szintaxishoz nézze meg a [[wiki:syntax|szintaxis]] oldalt. Kérjük, csak akkor módosítsa az oldalt, ha **tökéletesíteni**, **javítani** tudja. Amennyiben szeretne kipróbálni ezt-azt, a [[playground:playground|játszótéren]] megtanulhatja az első lépéseket.
\ No newline at end of file
diff --git a/wiki/inc/lang/hu-formal/editrev.txt b/wiki/inc/lang/hu-formal/editrev.txt
deleted file mode 100644
index 2eca33c..0000000
--- a/wiki/inc/lang/hu-formal/editrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**A dokumentum egy korábbi változatát töltötte be!** Ha az oldalt elmenti, akkor egy új változat jön létre belőle.
-----
\ No newline at end of file
diff --git a/wiki/inc/lang/hu-formal/index.txt b/wiki/inc/lang/hu-formal/index.txt
deleted file mode 100644
index 0f2b18f..0000000
--- a/wiki/inc/lang/hu-formal/index.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Oldaltérkép (tartalom) ======
-
-Az összes elérhető oldal [[doku>namespaces|névterek]] szerint rendezett oldaltérképe.
\ No newline at end of file
diff --git a/wiki/inc/lang/hu-formal/lang.php b/wiki/inc/lang/hu-formal/lang.php
deleted file mode 100644
index 66ff893..0000000
--- a/wiki/inc/lang/hu-formal/lang.php
+++ /dev/null
@@ -1,29 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Marina Vladi <deldadam@gmail.com>
- */
-$lang['encoding']              = 'utf-8';
-$lang['direction']             = 'ltr';
-$lang['doublequoteopening']    = '„';
-$lang['doublequoteclosing']    = 'â€';
-$lang['singlequoteopening']    = '‚';
-$lang['singlequoteclosing']    = '’';
-$lang['apostrophe']            = '’';
-$lang['btn_edit']              = 'Oldal módosítása';
-$lang['btn_source']            = 'Forrás megtekintése';
-$lang['btn_show']              = 'Oldal megtekintése';
-$lang['btn_create']            = 'Oldal létrehozása';
-$lang['btn_search']            = 'Keresés';
-$lang['btn_save']              = 'Mentés';
-$lang['btn_preview']           = 'Előnézet';
-$lang['btn_top']               = 'Oldal tetejére';
-$lang['btn_newer']             = '<< újabb';
-$lang['btn_older']             = 'régebbi >>';
-$lang['btn_revs']              = 'Korábbi változatok';
-$lang['btn_recent']            = 'Legújabb változások';
-$lang['btn_upload']            = 'Feltöltés';
-$lang['email_signature_text'] = 'Ezt a levelet a DokuWiki generálta
-@DOKUWIKIURL@';
diff --git a/wiki/inc/lang/hu/admin.txt b/wiki/inc/lang/hu/admin.txt
deleted file mode 100644
index 51b13eb..0000000
--- a/wiki/inc/lang/hu/admin.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-===== Adminisztráció =====
-
-Itt találod a DokuWiki adminisztrációs lehetőségeit.
diff --git a/wiki/inc/lang/hu/adminplugins.txt b/wiki/inc/lang/hu/adminplugins.txt
deleted file mode 100644
index 89fe373..0000000
--- a/wiki/inc/lang/hu/adminplugins.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== További modulok =====
\ No newline at end of file
diff --git a/wiki/inc/lang/hu/backlinks.txt b/wiki/inc/lang/hu/backlinks.txt
deleted file mode 100644
index d457ab7..0000000
--- a/wiki/inc/lang/hu/backlinks.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== Hivatkozások ======
-
-Ez azoknak az oldalaknak a listája, amelyek erre az oldalra "visszamutatnak" (hivatkoznak).
-
-
diff --git a/wiki/inc/lang/hu/conflict.txt b/wiki/inc/lang/hu/conflict.txt
deleted file mode 100644
index b823465..0000000
--- a/wiki/inc/lang/hu/conflict.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-====== Újabb változat létezik ======
-
-Az általad szerkesztett dokumentumnak egy újabb változata létezik. Ez akkor történik, ha egy másik felhasználó megváltoztatta a dokumentumot, amíg szerkesztetted.
-
-Nézd át gondosan a lenti eltéréseket, aztán dönts arról, melyik változatot tartod meg. Ha ''Mentés'' gombot választod, akkor a Te változatod kerül mentésre. Nyomj ''Mégsem'' gombot a jelenlegi változat megtartásához.
-
-
diff --git a/wiki/inc/lang/hu/denied.txt b/wiki/inc/lang/hu/denied.txt
deleted file mode 100644
index 922cbb8..0000000
--- a/wiki/inc/lang/hu/denied.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Hozzáférés megtagadva ======
-
-Sajnáljuk, nincs jogod a folytatáshoz.
-
diff --git a/wiki/inc/lang/hu/diff.txt b/wiki/inc/lang/hu/diff.txt
deleted file mode 100644
index 50bd067..0000000
--- a/wiki/inc/lang/hu/diff.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Különbségek ======
-
-A kiválasztott változat és az aktuális verzió közötti különbségek a következők.
-
diff --git a/wiki/inc/lang/hu/draft.txt b/wiki/inc/lang/hu/draft.txt
deleted file mode 100644
index cae980a..0000000
--- a/wiki/inc/lang/hu/draft.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-===== Piszkozatot találtunk =====
-
-Az oldal utolsó szerkesztését nem fejezted be rendesen. A DokuWiki elmentette piszkozatként, így most folytathatod a szerkesztést. Lent látható, amit az utolsó szerkesztésből elmentettünk.
-
-Válassz a //helyreállítás// vagy a //törlés// opciók közül a piszkozat sorsát illetően vagy //megszakíthatod// a szerkesztési folyamatot.
\ No newline at end of file
diff --git a/wiki/inc/lang/hu/edit.txt b/wiki/inc/lang/hu/edit.txt
deleted file mode 100644
index 0992723..0000000
--- a/wiki/inc/lang/hu/edit.txt
+++ /dev/null
@@ -1 +0,0 @@
-Szerkeszd az oldalt majd kattints a ''Mentés'' gombra! Lásd a [[wiki:syntax|formázás]] oldalt a formázási lehetőségekért. Kérünk, hogy csak akkor szerkeszd az oldalt ha **javítani** tudsz rajta. Ha ki akarsz próbálni dolgokat, akkor az első lépéseid a [[playground:playground|játszótéren]] tedd.
diff --git a/wiki/inc/lang/hu/editrev.txt b/wiki/inc/lang/hu/editrev.txt
deleted file mode 100644
index e17662e..0000000
--- a/wiki/inc/lang/hu/editrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**Egy korábbi változatot töltöttél be!** Ha elmented, akkor egy újabb aktuális verzió jön létre ezzel a tartalommal.
-----
diff --git a/wiki/inc/lang/hu/index.txt b/wiki/inc/lang/hu/index.txt
deleted file mode 100644
index ebf1514..0000000
--- a/wiki/inc/lang/hu/index.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== ÃttekintÅ‘ (index) ======
-
-Az összes elérhető oldal áttekintése [[doku>namespaces|névterek]] szerint rendezve.
-
diff --git a/wiki/inc/lang/hu/install.html b/wiki/inc/lang/hu/install.html
deleted file mode 100644
index c037393..0000000
--- a/wiki/inc/lang/hu/install.html
+++ /dev/null
@@ -1,26 +0,0 @@
-<p>Ez az oldal segít a <a href="http://dokuwiki.org">DokuWiki</a> kezdeti
-beállításában és a konfigurálásban. További információ
-<a href="http://dokuwiki.org/installer">ezen az oldalon</a>
-található.</p>
-
-<p>A DokuWiki hagyományos fájlokat használ a wiki oldalak és a hozzájuk
-kapcsolódó információk (pl. képek, keresési indexek, korábbi változatok stb.)
-tárolásához. Emiatt a sikeres működés érdekében a DokuWikinek írási joggal
-<strong>kell</strong> rendelkeznie azokon a könyvtárakon, ahová ezek a
-fájlok kerülnek. Ez a Beállító Varázsló nem képes beállítani a könyvtárakhoz
-a szükséges jogosultságokat, azokat közvetlenül parancssorból kell megtenni,
-illetve tárhelyszolgáltatás igénybevétele esetén FTP kliens segítségével,
-vagy a tárhelyszolgáltató által rendelkezésre bocsátott beállítóeszköz
-(pl. cPanel) segítségével.</p>
-
-<p>A Beállító Varázsló felkészíti ezt a DokuWikit a hozzáférési listák
-(<abbr title="access control list">ACL</abbr>-ek) használatára. Ãgy
-az Adminisztrátor felhasználóval hozzáférünk az admin menühöz, mellyel
-bővítményeket telepíthetünk, felhasználókat és hozzáférési jogokat
-kezelhetünk, valamint változtathatunk a konfigurációs beállításokon.
-Ez tulajdonképpen nem szükséges a DokuWiki működéséhez, de megkönnyíti
-az adminisztrációt.</p>
-
-<p>Szakértők illetve speciális beállítást igénylő felhasználók további információkat
-találnak a következő oldalakon a <a href="http://dokuwiki.org/install">telepítéssel</a>
-és <a href="http://dokuwiki.org/config">konfigurálási lehetőségekkel</a> kapcsolatban.</p>
diff --git a/wiki/inc/lang/hu/jquery.ui.datepicker.js b/wiki/inc/lang/hu/jquery.ui.datepicker.js
deleted file mode 100644
index 22bbe70..0000000
--- a/wiki/inc/lang/hu/jquery.ui.datepicker.js
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Hungarian initialisation for the jQuery UI date picker plugin. */
-( function( factory ) {
-	if ( typeof define === "function" && define.amd ) {
-
-		// AMD. Register as an anonymous module.
-		define( [ "../widgets/datepicker" ], factory );
-	} else {
-
-		// Browser globals
-		factory( jQuery.datepicker );
-	}
-}( function( datepicker ) {
-
-datepicker.regional.hu = {
-	closeText: "bezár",
-	prevText: "vissza",
-	nextText: "előre",
-	currentText: "ma",
-	monthNames: [ "Január", "Február", "Március", "Ãprilis", "Május", "Június",
-	"Július", "Augusztus", "Szeptember", "Október", "November", "December" ],
-	monthNamesShort: [ "Jan", "Feb", "Már", "Ãpr", "Máj", "Jún",
-	"Júl", "Aug", "Szep", "Okt", "Nov", "Dec" ],
-	dayNames: [ "Vasárnap", "Hétfő", "Kedd", "Szerda", "Csütörtök", "Péntek", "Szombat" ],
-	dayNamesShort: [ "Vas", "Hét", "Ked", "Sze", "Csü", "Pén", "Szo" ],
-	dayNamesMin: [ "V", "H", "K", "Sze", "Cs", "P", "Szo" ],
-	weekHeader: "Hét",
-	dateFormat: "yy.mm.dd.",
-	firstDay: 1,
-	isRTL: false,
-	showMonthAfterYear: true,
-	yearSuffix: "" };
-datepicker.setDefaults( datepicker.regional.hu );
-
-return datepicker.regional.hu;
-
-} ) );
diff --git a/wiki/inc/lang/hu/lang.php b/wiki/inc/lang/hu/lang.php
deleted file mode 100644
index e13c1ec..0000000
--- a/wiki/inc/lang/hu/lang.php
+++ /dev/null
@@ -1,350 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Ziegler Gábor <gziegler@freemail.hu>
- * @author Sandor TIHANYI <stihanyi+dw@gmail.com>
- * @author Siaynoq Mage <siaynoqmage@gmail.com>
- * @author schilling.janos@gmail.com
- * @author Szabó Dávid <szabo.david@gyumolcstarhely.hu>
- * @author Sándor TIHANYI <stihanyi+dw@gmail.com>
- * @author David Szabo <szabo.david@gyumolcstarhely.hu>
- * @author Marton Sebok <sebokmarton@gmail.com>
- * @author Serenity87HUN <anikototh87@gmail.com>
- * @author Marina Vladi <deldadam@gmail.com>
- * @author Mátyás Jani <jzombi@gmail.com>
- */
-$lang['encoding']              = 'utf-8';
-$lang['direction']             = 'ltr';
-$lang['doublequoteopening']    = '„';
-$lang['doublequoteclosing']    = 'â€';
-$lang['singlequoteopening']    = '‚';
-$lang['singlequoteclosing']    = '’';
-$lang['apostrophe']            = '’';
-$lang['btn_edit']              = 'Oldal szerkesztése';
-$lang['btn_source']            = 'Oldalforrás megtekintése';
-$lang['btn_show']              = 'Oldal megtekintése';
-$lang['btn_create']            = 'Oldal létrehozása';
-$lang['btn_search']            = 'Keresés';
-$lang['btn_save']              = 'Mentés';
-$lang['btn_preview']           = 'Előnézet';
-$lang['btn_top']               = 'Vissza a tetejére';
-$lang['btn_newer']             = '<< Újabb változat';
-$lang['btn_older']             = 'Régebbi változat >>';
-$lang['btn_revs']              = 'Korábbi változatok';
-$lang['btn_recent']            = 'Legfrissebb változások';
-$lang['btn_upload']            = 'Feltöltés';
-$lang['btn_cancel']            = 'Mégsem';
-$lang['btn_index']             = 'ÃttekintÅ‘';
-$lang['btn_secedit']           = 'Szerkesztés';
-$lang['btn_login']             = 'Bejelentkezés';
-$lang['btn_logout']            = 'Kijelentkezés';
-$lang['btn_admin']             = 'Admin';
-$lang['btn_update']            = 'Frissítés';
-$lang['btn_delete']            = 'Törlés';
-$lang['btn_back']              = 'Vissza';
-$lang['btn_backlink']          = 'Hivatkozások';
-$lang['btn_subscribe']         = 'Feliratkozás az oldalváltozásokra';
-$lang['btn_profile']           = 'Személyes beállítások';
-$lang['btn_reset']             = 'Alaphelyzet';
-$lang['btn_resendpwd']         = 'Jelszóváltoztatás';
-$lang['btn_draft']             = 'Piszkozat szerkesztése';
-$lang['btn_recover']           = 'Piszkozat folytatása';
-$lang['btn_draftdel']          = 'Piszkozat törlése';
-$lang['btn_revert']            = 'Helyreállítás';
-$lang['btn_register']          = 'Regisztráció';
-$lang['btn_apply']             = 'Alkalmaz';
-$lang['btn_media']             = 'Médiakezelő';
-$lang['btn_deleteuser']        = 'Felhasználói fiókom eltávolítása';
-$lang['btn_img_backto']        = 'Vissza %s';
-$lang['btn_mediaManager']      = 'Megtekintés a médiakezelőben';
-$lang['loggedinas']            = 'Belépett felhasználó';
-$lang['user']                  = 'Azonosító';
-$lang['pass']                  = 'Jelszó';
-$lang['newpass']               = 'Új jelszó';
-$lang['oldpass']               = 'Régi jelszó';
-$lang['passchk']               = 'még egyszer';
-$lang['remember']              = 'Emlékezz rám';
-$lang['fullname']              = 'Teljes név';
-$lang['email']                 = 'E-Mail';
-$lang['profile']               = 'Személyes beállítások';
-$lang['badlogin']              = 'Sajnáljuk, az azonosító vagy a jelszó nem jó.';
-$lang['badpassconfirm']        = 'Hibás jelszó';
-$lang['minoredit']             = 'Apróbb változások';
-$lang['draftdate']             = 'Piszkozat elmentve:';
-$lang['nosecedit']             = 'Időközben megváltozott az oldal, emiatt a szakasz nem friss. Töltsd újra az egész oldalt!';
-$lang['regmissing']            = 'Sajnáljuk, az összes mezőt ki kell töltened.';
-$lang['reguexists']            = 'Sajnáljuk, ilyen azonosítójú felhasználónk már van.';
-$lang['regsuccess']            = 'A felhasználói azonosítót létrehoztuk. A jelszót postáztuk.';
-$lang['regsuccess2']           = 'A felhasználói azonosítót létrehoztuk.';
-$lang['regfail']               = 'A felhasználó létrehozása sikertelen.';
-$lang['regmailfail']           = 'Úgy tűnik hiba történt a jelszó postázása során. Kérjük lépj kapcsolatba az Adminisztrátorokkal!';
-$lang['regbadmail']            = 'A megadott e-mail cím érvénytelennek tűnik. Ha úgy gondolod ez hiba, lépj kapcsolatba az Adminisztrátorokkal!';
-$lang['regbadpass']            = 'A két megadott jelszó nem egyezik, próbáld újra!';
-$lang['regpwmail']             = 'A DokuWiki jelszavad';
-$lang['reghere']               = 'Még nincs azonosítód? Itt kérhetsz';
-$lang['profna']                = 'Ez a wiki nem támogatja a személyes beállítások módosítását.';
-$lang['profnochange']          = 'Nem történt változás.';
-$lang['profnoempty']           = 'A név és e-mail mező nem maradhat üresen!';
-$lang['profchanged']           = 'A személyes beállítások változtatása megtörtént.';
-$lang['profnodelete']          = 'Ez a wiki nem támogatja a felhasználói fiókok törlését';
-$lang['profdeleteuser']        = 'Felhasználói fiók törlése';
-$lang['profdeleted']           = 'Felhasználói fiókodat eltávolítottuk erről a wiki-ről.';
-$lang['profconfdelete']        = 'Szeretném eltávolítani a felhasználói fiókomat erről a wikiről. <br/> Ez a cselekvés nem visszavonható.';
-$lang['profconfdeletemissing'] = 'A megerősítő négyzet nincs bepipálva';
-$lang['proffail']              = 'A profil frissítése sikertelen.';
-$lang['pwdforget']             = 'Elfelejtetted a jelszavad? Itt kérhetsz újat';
-$lang['resendna']              = 'Ez a wiki nem támogatja a jelszó újraküldést.';
-$lang['resendpwd']             = 'Új jelszó beállítása a következőhöz:';
-$lang['resendpwdmissing']      = 'Sajnáljuk, az összes mezőt ki kell töltened.';
-$lang['resendpwdnouser']       = 'Sajnáljuk, ilyen azonosítójú felhasználónk nem létezik.';
-$lang['resendpwdbadauth']      = 'Sajnáljuk, ez a megerősítő kód nem helyes. Biztos, hogy a teljes megerősítő linket pontosan beírtad?';
-$lang['resendpwdconfirm']      = 'A megerősítő linket e-mailben elküldtük.';
-$lang['resendpwdsuccess']      = 'Az új jelszavadat elküldtük e-mailben.';
-$lang['license']               = 'Hacsak máshol nincs egyéb rendelkezés, ezen wiki tartalma a következő licenc alatt érhető el:';
-$lang['licenseok']             = 'Megjegyzés: az oldal szerkesztésével elfogadja, hogy a tartalom a következő licenc alatt lesz elérhető:';
-$lang['searchmedia']           = 'Keresett fájl neve:';
-$lang['searchmedia_in']        = 'Keresés a következőben: %s';
-$lang['txt_upload']            = 'Válaszd ki a feltöltendő fájlt:';
-$lang['txt_filename']          = 'Feltöltési név (elhagyható):';
-$lang['txt_overwrt']           = 'Létező fájl felülírása';
-$lang['maxuploadsize']         = 'Maximum %s méretű fájlokat tölthetsz fel.';
-$lang['lockedby']              = 'Jelenleg zárolta:';
-$lang['lockexpire']            = 'A zárolás lejár:';
-$lang['js']['willexpire']      = 'Az oldalszerkesztési zárolásod körülbelül egy percen belül lejár.\nAz ütközések elkerülése végett használd az előnézet gombot a zárolásod frissítéséhez.';
-$lang['js']['notsavedyet']     = 'Elmentetlen változások vannak, amelyek el fognak veszni.
-Tényleg ezt akarod?';
-$lang['js']['searchmedia']     = 'Fájlok keresése';
-$lang['js']['keepopen']        = 'Tartsd nyitva ezt az ablakot a kijelöléshez!';
-$lang['js']['hidedetails']     = 'Részletek elrejtése';
-$lang['js']['mediatitle']      = 'Link beállítások';
-$lang['js']['mediadisplay']    = 'Link típusa';
-$lang['js']['mediaalign']      = 'Igazítás';
-$lang['js']['mediasize']       = 'Képméret';
-$lang['js']['mediatarget']     = 'Link célja';
-$lang['js']['mediaclose']      = 'Bezárás';
-$lang['js']['mediainsert']     = 'Beillesztés';
-$lang['js']['mediadisplayimg'] = 'Kép megtekintése.';
-$lang['js']['mediadisplaylnk'] = 'Link megtekintése.';
-$lang['js']['mediasmall']      = 'Kis méret';
-$lang['js']['mediamedium']     = 'Közepes méret';
-$lang['js']['medialarge']      = 'Nagy méret';
-$lang['js']['mediaoriginal']   = 'Eredeti verzió';
-$lang['js']['medialnk']        = 'Link a részletekre';
-$lang['js']['mediadirect']     = 'Közvetlen link az eredetire';
-$lang['js']['medianolnk']      = 'Nincs link';
-$lang['js']['medianolink']     = 'Ne linkelje a képet';
-$lang['js']['medialeft']       = 'Kép igazítása balra.';
-$lang['js']['mediaright']      = 'Kép igazítása jobbra.';
-$lang['js']['mediacenter']     = 'Kép igazítása középre.';
-$lang['js']['medianoalign']    = 'Nem legyen igazítás.';
-$lang['js']['nosmblinks']      = 'A Windows megosztott könyvtárak kereszthivatkozása csak Microsoft Internet Explorerben működik közvetlenül.\nA hivatkozást másolni és beszúrni ettől függetlenül mindig tudod.';
-$lang['js']['linkwiz']         = 'Hivatkozás varázsló';
-$lang['js']['linkto']          = 'Hivatkozás erre:';
-$lang['js']['del_confirm']     = 'Valóban törölni akarod a kiválasztott elem(ek)et?';
-$lang['js']['restore_confirm'] = 'Valóban visszaállítod ezt a verziót?';
-$lang['js']['media_diff']      = 'Különbségek megtekintése:';
-$lang['js']['media_diff_both'] = 'Egymás mellett';
-$lang['js']['media_diff_opacity'] = 'ÃttetszÅ‘en';
-$lang['js']['media_diff_portions'] = 'Húzással';
-$lang['js']['media_select']    = 'Fájlok kiválasztása...';
-$lang['js']['media_upload_btn'] = 'Feltöltés';
-$lang['js']['media_done_btn']  = 'Kész';
-$lang['js']['media_drop']      = 'Húzd ide a fájlokat a feltöltéshez';
-$lang['js']['media_cancel']    = 'eltávolítás';
-$lang['js']['media_overwrt']   = 'Meglévő fájlok felülírása';
-$lang['rssfailed']             = 'Hiba történt a hírfolyam betöltésekor: ';
-$lang['nothingfound']          = 'Üres mappa.';
-$lang['mediaselect']           = 'Médiafájl kiválasztása';
-$lang['uploadsucc']            = 'Sikeres feltöltés';
-$lang['uploadfail']            = 'A feltöltés nem sikerült. Talán rosszak a jogosultságok?';
-$lang['uploadwrong']           = 'A feltöltés megtagadva. Ez a fájlkiterjesztés tiltott.';
-$lang['uploadexist']           = 'A fájl már létezik, nem történt semmi.';
-$lang['uploadbadcontent']      = 'A feltöltött tartalom nem egyezik a %s fájlkiterjesztéssel.';
-$lang['uploadspam']            = 'A feltöltést visszautasítottuk spam-gyanú miatt.';
-$lang['uploadxss']             = 'A feltöltést visszautasítottuk, mert lehetséges, hogy kártékony kódot tartalmaz.';
-$lang['uploadsize']            = 'A feltöltött fájl túl nagy. (max. %s)';
-$lang['deletesucc']            = 'A "%s" fájlt töröltük.';
-$lang['deletefail']            = 'A "%s" fájl nem törölhető - ellenőrizd a jogosultságokat!';
-$lang['mediainuse']            = 'A "%s" fájl nem törlődött - még használat alatt van!';
-$lang['namespaces']            = 'Névterek';
-$lang['mediafiles']            = 'Elérhető fájlok itt:';
-$lang['accessdenied']          = 'Nincs jogod az oldal megtekintésére.';
-$lang['mediausage']            = 'A következő formában hivatkozhatsz erre a fájlra:';
-$lang['mediaview']             = 'Eredeti fájl megtekintése';
-$lang['mediaroot']             = 'kiindulási hely';
-$lang['mediaupload']           = 'Itt tölthetsz fel állományt az aktuális névtérbe. Alnévtér létrehozásához a "Feltöltési név" mezőben kell kettősponttal elválasztva megadnod azt.';
-$lang['mediaextchange']        = 'Az állomány kiterjesztése erről: .%s erre: .%s változott!';
-$lang['reference']             = 'Hivatkozások';
-$lang['ref_inuse']             = 'A fájl nem törölhető, mert a következő oldalakon használják:';
-$lang['ref_hidden']            = 'Van néhány hivatkozás az oldalakon, amelyekhez nincs olvasási jogosultságod';
-$lang['hits']                  = 'Találatok';
-$lang['quickhits']             = 'Illeszkedő oldalnevek';
-$lang['toc']                   = 'Tartalomjegyzék';
-$lang['current']               = 'aktuális';
-$lang['yours']                 = 'A Te változatod';
-$lang['diff']                  = 'Különbségek az aktuális változathoz képest';
-$lang['diff2']                 = 'Különbségek a kiválasztott változatok között';
-$lang['difflink']              = 'Összehasonlító nézet linkje';
-$lang['diff_type']             = 'Összehasonlítás módja:';
-$lang['diff_inline']           = 'Sorok között';
-$lang['diff_side']             = 'Egymás mellett';
-$lang['diffprevrev']           = 'Előző változat';
-$lang['diffnextrev']           = 'Következő változat';
-$lang['difflastrev']           = 'Utolsó változat';
-$lang['diffbothprevrev']       = 'Előző változat mindkét oldalon';
-$lang['diffbothnextrev']       = 'Következő változat mindkét oldalon';
-$lang['line']                  = 'Sor';
-$lang['breadcrumb']            = 'Nyomvonal:';
-$lang['youarehere']            = 'Itt vagy:';
-$lang['lastmod']               = 'Utolsó módosítás:';
-$lang['by']                    = 'szerkesztette:';
-$lang['deleted']               = 'eltávolítva';
-$lang['created']               = 'létrehozva';
-$lang['restored']              = 'régebbi változat helyreállítva (%s)';
-$lang['external_edit']         = 'külső szerkesztés';
-$lang['summary']               = 'A változások összefoglalása';
-$lang['noflash']               = 'Ennek a tartalomnak a megtekintéséhez <a href="http://www.adobe.com/products/flashplayer/">Adobe Flash Plugin</a> szükséges.';
-$lang['download']              = 'Kódrészlet letöltése';
-$lang['tools']                 = 'Eszközök';
-$lang['user_tools']            = 'Felhasználói eszközök';
-$lang['site_tools']            = 'Eszközök a webhelyen';
-$lang['page_tools']            = 'Eszközök az oldalon';
-$lang['skip_to_content']       = 'ugrás a tartalomhoz';
-$lang['sidebar']               = 'Oldalsáv';
-$lang['mail_newpage']          = 'új oldal jött létre:';
-$lang['mail_changed']          = 'oldal megváltozott:';
-$lang['mail_subscribe_list']   = 'oldalak megváltoztak ebben a névtérben:';
-$lang['mail_new_user']         = 'új felhasználó:';
-$lang['mail_upload']           = 'új állományt töltöttek fel:';
-$lang['changes_type']          = 'A következő változásainak megtekintése:';
-$lang['pages_changes']         = 'Oldalak';
-$lang['media_changes']         = 'Médiafájlok';
-$lang['both_changes']          = 'Oldalak és médiafájlok';
-$lang['qb_bold']               = 'Félkövér szöveg';
-$lang['qb_italic']             = 'Dőlt szöveg';
-$lang['qb_underl']             = 'Aláhúzott szöveg';
-$lang['qb_code']               = 'Forráskód';
-$lang['qb_strike']             = 'Ãthúzott szöveg';
-$lang['qb_h1']                 = '1. szintű címsor';
-$lang['qb_h2']                 = '2. szintű címsor';
-$lang['qb_h3']                 = '3. szintű címsor';
-$lang['qb_h4']                 = '4. szintű címsor';
-$lang['qb_h5']                 = '5. szintű címsor';
-$lang['qb_h']                  = 'Címsor';
-$lang['qb_hs']                 = 'Címsor kiválasztása';
-$lang['qb_hplus']              = 'Nagyobb címsor';
-$lang['qb_hminus']             = 'Kisebb címsor';
-$lang['qb_hequal']             = 'Azonos szintű címsor';
-$lang['qb_link']               = 'Belső hivatkozás';
-$lang['qb_extlink']            = 'Külső hivatkozás';
-$lang['qb_hr']                 = 'Vízszintes elválasztó vonal';
-$lang['qb_ol']                 = 'Sorszámozott lista elem';
-$lang['qb_ul']                 = 'Felsorolásos lista elem';
-$lang['qb_media']              = 'Képek és más fájlok hozzáadása';
-$lang['qb_sig']                = 'Aláírás beszúrása';
-$lang['qb_smileys']            = 'Smiley-k';
-$lang['qb_chars']              = 'Speciális karakterek';
-$lang['upperns']               = 'ugrás a tartalmazó névtérhez';
-$lang['metaedit']              = 'Metaadatok szerkesztése';
-$lang['metasaveerr']           = 'A metaadatok írása nem sikerült';
-$lang['metasaveok']            = 'Metaadatok elmentve';
-$lang['img_title']             = 'Cím:';
-$lang['img_caption']           = 'Képaláírás:';
-$lang['img_date']              = 'Dátum:';
-$lang['img_fname']             = 'Fájlnév:';
-$lang['img_fsize']             = 'Méret:';
-$lang['img_artist']            = 'Készítette:';
-$lang['img_copyr']             = 'Szerzői jogok:';
-$lang['img_format']            = 'Formátum:';
-$lang['img_camera']            = 'Fényképezőgép típusa:';
-$lang['img_keywords']          = 'Kulcsszavak:';
-$lang['img_width']             = 'Szélesség:';
-$lang['img_height']            = 'Magasság:';
-$lang['subscr_subscribe_success'] = '%s hozzáadva az értesítési listához: %s';
-$lang['subscr_subscribe_error'] = 'Hiba történt %s hozzáadásakor az értesítési listához: %s';
-$lang['subscr_subscribe_noaddress'] = 'Nincs e-mail cím megadva az adataidnál, így a rendszer nem tudott hozzáadni az értesítési listához';
-$lang['subscr_unsubscribe_success'] = '%s eltávolítva az értesítési listából: %s';
-$lang['subscr_unsubscribe_error'] = 'Hiba történt %s eltávolításakor az értesítési listából: %s';
-$lang['subscr_already_subscribed'] = '%s már feliratkozott erre: %s';
-$lang['subscr_not_subscribed'] = '%s nincs feliratkozva erre: %s';
-$lang['subscr_m_not_subscribed'] = 'Jelenleg nem vagy feliratkozva erre az oldalra vagy névtérre';
-$lang['subscr_m_new_header']   = 'Feliratkozás hozzáadása';
-$lang['subscr_m_current_header'] = 'Feliratkozások';
-$lang['subscr_m_unsubscribe']  = 'Leiratkozás';
-$lang['subscr_m_subscribe']    = 'Feliratkozás';
-$lang['subscr_m_receive']      = 'Küldj';
-$lang['subscr_style_every']    = 'e-mailt minden változásról';
-$lang['subscr_style_digest']   = 'összefoglaló e-mailt oldalanként (minden %.2f nap)';
-$lang['subscr_style_list']     = 'egy listát a módosított oldalakról a legutóbbi e-mail óta (minden %.2f nap)';
-$lang['authtempfail']          = 'A felhasználó azonosítás átmenetileg nem működik. Ha sokáig így lenne, légy szíves értesítsd az Adminisztrátorokat!';
-$lang['i_chooselang']          = 'Válassz nyelvet';
-$lang['i_installer']           = 'DokuWiki Beállító Varázsló';
-$lang['i_wikiname']            = 'A Wiki neve';
-$lang['i_enableacl']           = 'Hozzáférési listák engedélyezése (ajánlott)';
-$lang['i_superuser']           = 'Adminisztrátor';
-$lang['i_problems']            = 'A Beállító Varázsló a következő problémák miatt megakadt. Nem tudjuk folytatni, amíg ezek nincsenek elhárítva!';
-$lang['i_modified']            = 'Biztonsági okokból ez a Varázsló csak új és módosítatlan DokuWiki változaton működik.
-Csomagold ki újra a fájlokat a letöltött csomagból, vagy nézd meg a teljes <a href="http://dokuwiki.org/install">Dokuwiki telepítési útmutatót</a>.';
-$lang['i_funcna']              = 'A <code>%s</code> PHP funkció nem elérhető. Esetleg a tárhelyszolgáltató letiltotta biztonsági okok miatt?';
-$lang['i_phpver']              = 'A PHP <code>%s</code> verziója alacsonyabb, mint ami szükséges lenne: <code>%s</code>. Frissítsd a PHP-det újabb verzióra!';
-$lang['i_mbfuncoverload']      = 'A DokuWiki futtatásához az mbstring.func_overload opciót ki kell kapcsolni a php.ini-ben.';
-$lang['i_permfail']            = 'A DokiWiki nem tudja írni a <code>%s</code> könyvtárat. Be kell állítanod ehhez a könyvtárhoz a megfelelő jogosultságokat!';
-$lang['i_confexists']          = '<code>%s</code> már létezik.';
-$lang['i_writeerr']            = 'Nem tudom ezt létrehozni: <code>%s</code>. Ellenőrizd a könyvtár/fájl jogosultságokat, és hozd létre az állományt kézzel.';
-$lang['i_badhash']             = 'A dokuwiki.php nem felismerhető vagy módosított (hash=<code>%s</code>)';
-$lang['i_badval']              = '<code>%s</code> - nem helyes vagy üres érték';
-$lang['i_success']             = 'A beállítás sikeresen befejeződött. Most már letörölhető az install.php fájl. Látogasd meg az <a href="doku.php?id=wiki:welcome">új DokuWikidet</a>!';
-$lang['i_failure']             = 'Hiba lépett fel a konfigurációs állományok írásakor. Ki kell javítanod kézzel, mielőtt használni kezded az <a href="doku.php?id=wiki:welcome">új DokuWikidet</a>.';
-$lang['i_policy']              = 'Kezdeti hozzáférési lista házirend';
-$lang['i_pol0']                = 'Nyitott wiki (mindenki olvashatja, írhatja és fájlokat tölthet fel)';
-$lang['i_pol1']                = 'Publikus wiki (mindenki olvashatja, de csak regisztrált felhasználók írhatják és tölthetnek fel fájlokat)';
-$lang['i_pol2']                = 'Zárt wiki (csak regisztrált felhasználók olvashatják, írhatják és tölthetnek fel fájlokat)';
-$lang['i_allowreg']            = 'A felhasználók saját maguk is regisztrálhatnak';
-$lang['i_retry']               = 'Újra';
-$lang['i_license']             = 'Kérlek, válassz licencet a feltöltött tartalomhoz:';
-$lang['i_license_none']        = 'Ne jelenítsen meg licenc információt';
-$lang['i_pop_field']           = 'Kérjük, segíts a DokuWiki továbbfejlesztésében:';
-$lang['i_pop_label']           = 'Havonta egyszer névtelen üzenet küldése a DokuWiki fejlesztőinek';
-$lang['recent_global']         = 'Jelenleg csak a <b>%s</b> névtér friss változásai látszanak. Megtekinthetők <a href="%s">a teljes wiki friss változásai</a> is.';
-$lang['years']                 = '%d évvel ezelőtt';
-$lang['months']                = '%d hónappal ezelőtt';
-$lang['weeks']                 = '%d héttel ezelőtt';
-$lang['days']                  = '%d nappal ezelőtt';
-$lang['hours']                 = '%d órával ezelőtt';
-$lang['minutes']               = '%d perccel ezelőtt';
-$lang['seconds']               = '%d másodperccel ezelőtt';
-$lang['wordblock']             = 'A változásokat nem sikerült menteni, mert tiltott tartalom van benne (spam).';
-$lang['media_uploadtab']       = 'Feltöltés';
-$lang['media_searchtab']       = 'Keresés';
-$lang['media_file']            = 'Fájl';
-$lang['media_viewtab']         = 'Megtekintés';
-$lang['media_edittab']         = 'Szerkesztés';
-$lang['media_historytab']      = 'Korábbi változatok';
-$lang['media_list_thumbs']     = 'Bélyegképek';
-$lang['media_list_rows']       = 'Sorok';
-$lang['media_sort_name']       = 'Név';
-$lang['media_sort_date']       = 'Dátum';
-$lang['media_namespaces']      = 'Névtér kiválasztása';
-$lang['media_files']           = 'Fájlok itt: %s';
-$lang['media_upload']          = 'Feltöltés ide: %s';
-$lang['media_search']          = 'Keresés itt: %s';
-$lang['media_view']            = '%s';
-$lang['media_viewold']         = '%s itt: %s';
-$lang['media_edit']            = '%s szerkesztése';
-$lang['media_history']         = '%s korábbi változatai';
-$lang['media_meta_edited']     = 'metaadatot szerkesztve';
-$lang['media_perm_read']       = 'Sajnáljuk, nincs jogod a fájlok olvasásához.';
-$lang['media_perm_upload']     = 'Sajnáljuk, nincs jogod a feltöltéshez.';
-$lang['media_update']          = 'Új verzió feltöltése';
-$lang['media_restore']         = 'Ezen verzió visszaállítása';
-$lang['media_acl_warning']     = 'Ez a lista hiányos lehet a hozzáférési listák (ACL) korlátozásai és a rejtett oldalak miatt.';
-$lang['currentns']             = 'Aktuális névtér';
-$lang['searchresult']          = 'Keresés eredménye';
-$lang['plainhtml']             = 'Sima HTML';
-$lang['wikimarkup']            = 'Wiki-jelölőnyelv';
-$lang['email_signature_text']       = 'Ezt a levelet a DokuWiki generálta
-@DOKUWIKIURL@';
-$lang['page_nonexist_rev']     = 'A(z) %s oldal nem létezik. Később lett létrehozva a(z) <a href="%s">%s</a> helyen.';
-$lang['unable_to_parse_date']  = 'A "%s" paraméter feldolgozása sikertelen.';
diff --git a/wiki/inc/lang/hu/locked.txt b/wiki/inc/lang/hu/locked.txt
deleted file mode 100644
index 004c461..0000000
--- a/wiki/inc/lang/hu/locked.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Az oldal zárolva ======
-
-Ezt az oldalt épp szerkeszti egy másik felhasználó. Várnod kell, amíg a másik felhasználó befejezi, vagy amíg a zárolási ideje le nem jár.
-
diff --git a/wiki/inc/lang/hu/login.txt b/wiki/inc/lang/hu/login.txt
deleted file mode 100644
index 3f7e62e..0000000
--- a/wiki/inc/lang/hu/login.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== Belépés ======
-
-Nem vagy bejelentkezve! Add meg az azonosítási adataid a belépéshez lentebb! A böngésződben engedélyezned kell a sütik (cookies) fogadását a belépéshez.
-
-
diff --git a/wiki/inc/lang/hu/mailtext.txt b/wiki/inc/lang/hu/mailtext.txt
deleted file mode 100644
index d8d0336..0000000
--- a/wiki/inc/lang/hu/mailtext.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-A DokuWikidben egy oldalt létrejött, vagy megváltozott. A részletek:
-
-Dátum: @DATE@
-Böngésző: @BROWSER@
-IP-cím: @IPADDRESS@
-Gép neve: @HOSTNAME@
-Előző változat: @OLDPAGE@
-Új változat: @NEWPAGE@
-Összefoglaló: @SUMMARY@
-Felhasználó: @USER@
-
-@DIFF@
diff --git a/wiki/inc/lang/hu/mailwrap.html b/wiki/inc/lang/hu/mailwrap.html
deleted file mode 100644
index d257190..0000000
--- a/wiki/inc/lang/hu/mailwrap.html
+++ /dev/null
@@ -1,13 +0,0 @@
-<html>
-<head>
-<title>@TITLE@</title>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-</head>
-<body>
-
-@HTMLBODY@
-
-<br /><hr />
-<small>@EMAILSIGNATURE@</small>
-</body>
-</html>
\ No newline at end of file
diff --git a/wiki/inc/lang/hu/newpage.txt b/wiki/inc/lang/hu/newpage.txt
deleted file mode 100644
index de5a34d..0000000
--- a/wiki/inc/lang/hu/newpage.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Ilyen oldal még nem létezik ======
-
-Egy nem létező oldalra tévedtél. Létrehozhatod az ''Oldal létrehozása'' gombra kattintva.
\ No newline at end of file
diff --git a/wiki/inc/lang/hu/norev.txt b/wiki/inc/lang/hu/norev.txt
deleted file mode 100644
index 1f4e672..0000000
--- a/wiki/inc/lang/hu/norev.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== Nincs ilyen változat ======
-
-A megadott változat nem létezik. Használd az ''Előző változatok'' gombot az előzmények listájának megtekintéséhez.
-
-
diff --git a/wiki/inc/lang/hu/password.txt b/wiki/inc/lang/hu/password.txt
deleted file mode 100644
index 49cf69f..0000000
--- a/wiki/inc/lang/hu/password.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-Kedves @FULLNAME@!
-
-A felhasználói adataid a @TITLE@ wikihez, a következő helyen:  @DOKUWIKIURL@
-
-Azonosító: @LOGIN@
-Jelszó: @PASSWORD@
diff --git a/wiki/inc/lang/hu/preview.txt b/wiki/inc/lang/hu/preview.txt
deleted file mode 100644
index e04b2c8..0000000
--- a/wiki/inc/lang/hu/preview.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Előnézet ======
-
-Ez a szöveged előnézete, így fog kinézni élesben. Viszont ez **még nincs elmentve**!
diff --git a/wiki/inc/lang/hu/pwconfirm.txt b/wiki/inc/lang/hu/pwconfirm.txt
deleted file mode 100644
index 203dc39..0000000
--- a/wiki/inc/lang/hu/pwconfirm.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-Szia @FULLNAME@!
-
-Te vagy más valaki kért egy új jelszót a @DOKUWIKIURL@
-címen lévő @TITLE@ wiki felhasználódhoz.
-
-Ha nem kértél ilyet, hagyd figyelmen kívül ezt a levelet.
-
-Ha Te voltál, az új jelszó kérelmed megerősítéséhez kattints a
-következő linkre vagy másold a böngésződbe:
-
-@CONFIRM@
diff --git a/wiki/inc/lang/hu/read.txt b/wiki/inc/lang/hu/read.txt
deleted file mode 100644
index 223a6fe..0000000
--- a/wiki/inc/lang/hu/read.txt
+++ /dev/null
@@ -1 +0,0 @@
-Ez az oldal csak olvasható. Megtekintheted a forrását, de nem változtathatod meg. Ha úgy gondolod, hogy ez helytelen, kérdezd az Adminisztrátorokat!
diff --git a/wiki/inc/lang/hu/recent.txt b/wiki/inc/lang/hu/recent.txt
deleted file mode 100644
index 4e0c1ec..0000000
--- a/wiki/inc/lang/hu/recent.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== Legutóbbi változások ======
-
-Az alábbi oldalak változtak legutoljára.
-
-
diff --git a/wiki/inc/lang/hu/register.txt b/wiki/inc/lang/hu/register.txt
deleted file mode 100644
index 523b720..0000000
--- a/wiki/inc/lang/hu/register.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Új felhasználó regisztrálása ======
-
-Töltsd ki az összes alábbi adatot az új Wiki felhasználói azonosítód létrehozásához. Győződj meg róla, hogy **érvényes e-mail címet** adtál meg, mivel az új jelszavad erre a címre küldjük el. Az azonosítód érvényes [[doku>pagename|oldalnév]] kell legyen.
-
diff --git a/wiki/inc/lang/hu/registermail.txt b/wiki/inc/lang/hu/registermail.txt
deleted file mode 100644
index d37d59b..0000000
--- a/wiki/inc/lang/hu/registermail.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-Egy új felhasználó regisztrált a következő adatokkal:
-
-Felhasználói név: @NEWUSER@
-Teljes név: @NEWNAME@
-E-mail: @NEWEMAIL@
-
-Dátum: @DATE@
-Böngésző: @BROWSER@
-IP-cím : @IPADDRESS@
-Gép neve: @HOSTNAME@
diff --git a/wiki/inc/lang/hu/resendpwd.txt b/wiki/inc/lang/hu/resendpwd.txt
deleted file mode 100644
index b73fa42..0000000
--- a/wiki/inc/lang/hu/resendpwd.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-===== Új jelszó kérése =====
-
-Kérlek, add meg a felhasználói azonosítód az új jelszó elküldéséhez. A jelszó cseréjéhez szükséges megerősítő linket elküldjük a regisztrált e-mail címedre.
\ No newline at end of file
diff --git a/wiki/inc/lang/hu/resetpwd.txt b/wiki/inc/lang/hu/resetpwd.txt
deleted file mode 100644
index 53b28d7..0000000
--- a/wiki/inc/lang/hu/resetpwd.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Új jelszó beállítása ======
-
-Kérlek, add meg az új jelszót a felhasználódhoz.
\ No newline at end of file
diff --git a/wiki/inc/lang/hu/revisions.txt b/wiki/inc/lang/hu/revisions.txt
deleted file mode 100644
index 3537fd6..0000000
--- a/wiki/inc/lang/hu/revisions.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Előző változatok ======
-
-Ezek az előző változatai az aktuális dokumentumnak. Egy előző változathoz való visszatéréshez nyomd meg az ''Oldal szerkesztése'' gombot, majd mentsd el.
diff --git a/wiki/inc/lang/hu/searchpage.txt b/wiki/inc/lang/hu/searchpage.txt
deleted file mode 100644
index 6329a46..0000000
--- a/wiki/inc/lang/hu/searchpage.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Keresés ======
-
-A keresés eredményét lentebb láthatod. @CREATEPAGEINFO@
-
diff --git a/wiki/inc/lang/hu/showrev.txt b/wiki/inc/lang/hu/showrev.txt
deleted file mode 100644
index 2131b4d..0000000
--- a/wiki/inc/lang/hu/showrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**Ez a dokumentum egy előző változata!**
-----
diff --git a/wiki/inc/lang/hu/stopwords.txt b/wiki/inc/lang/hu/stopwords.txt
deleted file mode 100644
index a8bd35c..0000000
--- a/wiki/inc/lang/hu/stopwords.txt
+++ /dev/null
@@ -1,39 +0,0 @@
-# Ez egy szó-lista (soronként egy szóval), amelyeket az index készítésekor nem veszünk figyelembe.
-# Ha szerkeszted ezt a fájlt, győződj meg arról, hogy UNIX sorvég-jeleket használj! (csak NL karakter)
-# Nincs szükség 3 karakternél rövidebb szavak felsorolására, ezeket egyébként sem vesszük figyelembe.
-# Ez a lista a http://www.ranks.nl/stopwords/ oldalon szereplő alapján készült
-a
-az
-egy
-be
-ki
-le
-fel
-meg
-el
-át
-rá
-ide
-oda
-szét
-össze
-vissza
-de
-hát
-és
-vagy
-hogy
-van
-lesz
-volt
-csak
-nem
-igen
-mint
-én
-te
-Å‘
-mi
-ti
-ők
-ön
diff --git a/wiki/inc/lang/hu/subscr_digest.txt b/wiki/inc/lang/hu/subscr_digest.txt
deleted file mode 100644
index 874c934..0000000
--- a/wiki/inc/lang/hu/subscr_digest.txt
+++ /dev/null
@@ -1,13 +0,0 @@
-Szia,
-
-A @PAGE@ oldal a @TITLE wikiben megváltozott.
-Itt vannak az eltérések:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-Régi verzió: @OLDPAGE@
-Új verzió: @NEWPAGE@
-
-Ha nem szeretnél értesítéseket kapni, jelentkezz be a wiki-be itt: @DOKUWIKIURL@, majd ezen az oldalon tudsz leiratkozni: @SUBSCRIBE@.
diff --git a/wiki/inc/lang/hu/subscr_form.txt b/wiki/inc/lang/hu/subscr_form.txt
deleted file mode 100644
index 22fa940..0000000
--- a/wiki/inc/lang/hu/subscr_form.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Feliratkozás kezelés ======
-
-Ezen az oldalon van lehetőséged kezelni a feliratkozásaidat az adott oldalra vagy névtérre.
\ No newline at end of file
diff --git a/wiki/inc/lang/hu/subscr_list.txt b/wiki/inc/lang/hu/subscr_list.txt
deleted file mode 100644
index c87d6dc..0000000
--- a/wiki/inc/lang/hu/subscr_list.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-Szia,
-
-A @PAGE@ névtérhez tartozó oldalak megváltoztak a @TITLE wikiben.
-A módosított oldalak a következők:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-Ha nem szeretnél értesítéseket kapni, jelentkezz be a wiki-be itt: @DOKUWIKIURL@, majd ezen az oldalon tudsz leiratkozni: @SUBSCRIBE@.
diff --git a/wiki/inc/lang/hu/subscr_single.txt b/wiki/inc/lang/hu/subscr_single.txt
deleted file mode 100644
index 8d36def..0000000
--- a/wiki/inc/lang/hu/subscr_single.txt
+++ /dev/null
@@ -1,16 +0,0 @@
-Szia,
-
-A @PAGE@ oldal a @TITLE wikiben megváltozott.
-Az eltérések a következők:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-Dátum: @DATE@
-Felhasználó: @USER@
-Összefoglaló: @SUMMARY@
-Régi verzió: @OLDPAGE@
-Új verzió: @NEWPAGE@
-
-Ha nem szeretnél értesítéseket kapni, jelentkezz be a wiki-be itt: @DOKUWIKIURL@, majd ezen az oldalon tudsz leiratkozni: @NEWPAGE@.
diff --git a/wiki/inc/lang/hu/updateprofile.txt b/wiki/inc/lang/hu/updateprofile.txt
deleted file mode 100644
index 50df153..0000000
--- a/wiki/inc/lang/hu/updateprofile.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-===== Felhasználói adatok megváltoztatása =====
-
-Csak azt a mezőt kell kitöltened, amit változtatni szeretnél. A felhasználói nevet nem lehet megváltoztatni.
diff --git a/wiki/inc/lang/hu/uploadmail.txt b/wiki/inc/lang/hu/uploadmail.txt
deleted file mode 100644
index 62e0c2e..0000000
--- a/wiki/inc/lang/hu/uploadmail.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-Fájlfeltöltés történt a DokuWikidben. Részletek:
-
-Ãllomány: @MEDIA@
-Dátum: @DATE@
-Böngésző: @BROWSER@
-IP-cím: @IPADDRESS@
-Gépnév: @HOSTNAME@
-Méret: @SIZE@
-MIME-típus: @MIME@
-Felhasználó: @USER@
diff --git a/wiki/inc/lang/ia/admin.txt b/wiki/inc/lang/ia/admin.txt
deleted file mode 100644
index f81ff31..0000000
--- a/wiki/inc/lang/ia/admin.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Administration ======
-
-Hic infra se trova un lista de cargas administrative disponibile in DokuWiki.
diff --git a/wiki/inc/lang/ia/adminplugins.txt b/wiki/inc/lang/ia/adminplugins.txt
deleted file mode 100644
index ad8f794..0000000
--- a/wiki/inc/lang/ia/adminplugins.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Plug-ins additional =====
\ No newline at end of file
diff --git a/wiki/inc/lang/ia/backlinks.txt b/wiki/inc/lang/ia/backlinks.txt
deleted file mode 100644
index de5d2ac..0000000
--- a/wiki/inc/lang/ia/backlinks.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Retroligamines ======
-
-Isto es un lista de paginas que contine ligamines de retorno al pagina actual.
\ No newline at end of file
diff --git a/wiki/inc/lang/ia/conflict.txt b/wiki/inc/lang/ia/conflict.txt
deleted file mode 100644
index 576cb7e..0000000
--- a/wiki/inc/lang/ia/conflict.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== Un version plus nove existe ======
-
-Existe un version plus nove del documento que tu ha modificate. Isto occurre si un altere usator cambia le documento durante que tu lo modifica.
-
-Examina minutiosemente le differentias monstrate hic infra, postea decide qual version debe esser conservate. Si tu selige ''salveguardar'', tu version essera salveguardate. Preme ''cancellar'' pro conservar le version actual.
diff --git a/wiki/inc/lang/ia/denied.txt b/wiki/inc/lang/ia/denied.txt
deleted file mode 100644
index 82f2fc6..0000000
--- a/wiki/inc/lang/ia/denied.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Permission refusate ======
-
-Pardono, tu non ha le derectos requisite pro continuar.
-
diff --git a/wiki/inc/lang/ia/diff.txt b/wiki/inc/lang/ia/diff.txt
deleted file mode 100644
index dbfa70f..0000000
--- a/wiki/inc/lang/ia/diff.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Differentias ======
-
-Isto te monstra le differentias inter duo versiones del pagina.
\ No newline at end of file
diff --git a/wiki/inc/lang/ia/draft.txt b/wiki/inc/lang/ia/draft.txt
deleted file mode 100644
index ae8de13..0000000
--- a/wiki/inc/lang/ia/draft.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== Version provisori trovate ======
-
-Tu ultime session de modification in iste pagina non ha essite concludite correctemente. DokuWiki ha automaticamente salveguardate un version provisori durante tu labor. Ora tu pote usar iste version provisori pro continuar le modification. Hic infra tu vide le datos salveguardate de tu ultime session.
-
-Per favor decide si tu vole //recuperar// le session de modification perdite, //deler// le version provisori o //cancellar// le processo de modification.
\ No newline at end of file
diff --git a/wiki/inc/lang/ia/edit.txt b/wiki/inc/lang/ia/edit.txt
deleted file mode 100644
index 5bc5836..0000000
--- a/wiki/inc/lang/ia/edit.txt
+++ /dev/null
@@ -1 +0,0 @@
-Modifica le pagina e preme "Salveguardar". Vide [[wiki:syntax]] pro le syntaxe wiki. Per favor modifica le paginas solmente si tu pote **meliorar** lo. Si tu vole testar alcun cosas, apprende facer tu prime passos in le [[playground:playground|parco de jocos]].
\ No newline at end of file
diff --git a/wiki/inc/lang/ia/editrev.txt b/wiki/inc/lang/ia/editrev.txt
deleted file mode 100644
index 192381f..0000000
--- a/wiki/inc/lang/ia/editrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**Tu ha cargate un version ancian del documento!** Si tu lo salveguarda, tu crea un nove version con iste datos.
-----
\ No newline at end of file
diff --git a/wiki/inc/lang/ia/index.txt b/wiki/inc/lang/ia/index.txt
deleted file mode 100644
index 5957cc2..0000000
--- a/wiki/inc/lang/ia/index.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Indice ======
-
-Isto es un indice super tote le paginas disponibile, ordinate per [[doku>namespaces|spatio de nomines]].
diff --git a/wiki/inc/lang/ia/install.html b/wiki/inc/lang/ia/install.html
deleted file mode 100644
index 3b48bfd..0000000
--- a/wiki/inc/lang/ia/install.html
+++ /dev/null
@@ -1,13 +0,0 @@
-<p>Iste pagina te assiste in le prime installation e configuration de
-<a href="http://dokuwiki.org">Dokuwiki</a>. Ulterior informationes super iste installator es disponibile in le
-<a href="http://dokuwiki.org/installer">pagina de documentation</a> de illo.</p>
-
-<p>DokuWiki usa files ordinari pro le immagazinage de paginas wiki e altere informationes associate con iste paginas (p.ex. imagines, indices de recerca, versiones ancian, etc). Pro poter functionar, DokuWiki
-<strong>debe</strong> haber accesso de scriptura al directorios que contine iste files. Iste installator non es capabile de configurar le permissiones de directorios. Isto normalmente debe esser facite directemente con le linea de commandos, o si tu usa un albergo web, via FTP o via le pannello de controlo de tu albergo (p.ex. cPanel).</p>
-
-<p>Iste installator configurara tu installation de DokuWiki pro
-<abbr title="listas de controlo de accesso">ACL</abbr>, lo que permitte crear contos administrator, e forni accesso al menu administrative de DokuWiki pro installar plug-ins, gerer usatores, gerer accesso a paginas wiki e alterar configurationes. Isto non es necessari pro le functionamento de DokuWiki, nonobstante, illo rendera DokuWiki plus facile de administrar.</p>
-
-<p>Le usatores experte o con exigentias special pro le installation deberea usar iste ligamines pro detalios concernente le
-<a href="http://dokuwiki.org/install">instructiones de installation</a>
-e <a href="http://dokuwiki.org/config">configurationes</a>.</p>
diff --git a/wiki/inc/lang/ia/lang.php b/wiki/inc/lang/ia/lang.php
deleted file mode 100644
index a00f8bf..0000000
--- a/wiki/inc/lang/ia/lang.php
+++ /dev/null
@@ -1,261 +0,0 @@
-<?php
-/**
- * ia language file
- *
- * This file was initially built by fetching translations from other
- * Wiki projects. See the @url lines below. Additional translations
- * and fixes where done for DokuWiki by the people mentioned in the
- * lines starting with @author
- *
- * @url http://svn.wikimedia.org/viewvc/mediawiki/trunk/phase3/languages/messages/MessagesIa.php?view=co
- * @author robocap <robocap1@gmail.com>
- * @author Martijn Dekker <martijn@inlv.org>
- */
-$lang['encoding']              = 'utf-8';
-$lang['direction']             = 'ltr';
-$lang['doublequoteopening']    = '“';
-$lang['doublequoteclosing']    = 'â€';
-$lang['singlequoteopening']    = '‘';
-$lang['singlequoteclosing']    = '’';
-$lang['apostrophe']            = '’';
-$lang['btn_edit']              = 'Modificar iste pagina';
-$lang['btn_source']            = 'Monstrar codice-fonte';
-$lang['btn_show']              = 'Monstrar pagina';
-$lang['btn_create']            = 'Crear iste pagina';
-$lang['btn_search']            = 'Cercar';
-$lang['btn_save']              = 'Salveguardar';
-$lang['btn_preview']           = 'Previsualisar';
-$lang['btn_top']               = 'Retornar al initio';
-$lang['btn_newer']             = '<< plus recente';
-$lang['btn_older']             = 'minus recente >>';
-$lang['btn_revs']              = 'Versiones ancian';
-$lang['btn_recent']            = 'Modificationes recente';
-$lang['btn_upload']            = 'Incargar';
-$lang['btn_cancel']            = 'Cancellar';
-$lang['btn_index']             = 'Indice';
-$lang['btn_secedit']           = 'Modificar';
-$lang['btn_login']             = 'Aperir session';
-$lang['btn_logout']            = 'Clauder session';
-$lang['btn_admin']             = 'Admin';
-$lang['btn_update']            = 'Actualisar';
-$lang['btn_delete']            = 'Deler';
-$lang['btn_back']              = 'Retornar';
-$lang['btn_backlink']          = 'Retroligamines';
-$lang['btn_subscribe']         = 'Gerer subscriptiones';
-$lang['btn_profile']           = 'Actualisar profilo';
-$lang['btn_reset']             = 'Reinitialisar';
-$lang['btn_draft']             = 'Modificar version provisori';
-$lang['btn_recover']           = 'Recuperar version provisori';
-$lang['btn_draftdel']          = 'Deler version provisori';
-$lang['btn_revert']            = 'Restaurar';
-$lang['btn_register']          = 'Crear conto';
-$lang['loggedinas']            = 'Session aperite como:';
-$lang['user']                  = 'Nomine de usator';
-$lang['pass']                  = 'Contrasigno';
-$lang['newpass']               = 'Nove contrasigno';
-$lang['oldpass']               = 'Confirmar contrasigno actual';
-$lang['passchk']               = 'un altere vice';
-$lang['remember']              = 'Memorar me';
-$lang['fullname']              = 'Nomine real';
-$lang['email']                 = 'E-mail';
-$lang['profile']               = 'Profilo de usator';
-$lang['badlogin']              = 'Le nomine de usator o le contrasigno es incorrecte.';
-$lang['minoredit']             = 'Modificationes minor';
-$lang['draftdate']             = 'Version provisori automaticamente salveguardate le';
-$lang['nosecedit']             = 'Le pagina ha essite modificate intertanto. Le informationes del section es ora obsolete, dunque le pagina complete ha essite cargate in su loco.';
-$lang['regmissing']            = 'Es necessari completar tote le campos.';
-$lang['reguexists']            = 'Regrettabilemente, un usator con iste nomine ja existe.';
-$lang['regsuccess']            = 'Le conto ha essite create e le contrasigno ha essite inviate per e-mail.';
-$lang['regsuccess2']           = 'Le conto ha essite create.';
-$lang['regmailfail']           = 'Il pare que un error occurreva durante le invio del message con le contrasigno. Per favor contacta le administrator!';
-$lang['regbadmail']            = 'Le adresse de e-mail date pare esser invalide. Si tu pensa que isto es un error, contacta le administrator.';
-$lang['regbadpass']            = 'Le duo contrasignos date non es identic. Per favor reproba.';
-$lang['regpwmail']             = 'Tu contrasigno de DokuWiki';
-$lang['reghere']               = 'Tu non ha ancora un conto? Crea un, simplemente.';
-$lang['profna']                = 'Iste wiki non supporta le modification de profilos.';
-$lang['profnochange']          = 'Nulle modification, nihil a facer.';
-$lang['profnoempty']           = 'Un nomine o adresse de e-mail vacue non es permittite.';
-$lang['profchanged']           = 'Actualisation del profilo de usator succedite.';
-$lang['pwdforget']             = 'Contrasigno oblidate? Obtene un altere';
-$lang['resendna']              = 'Iste wiki non supporta le invio de un nove contrasigno.';
-$lang['resendpwdmissing']      = 'Es necessari completar tote le campos.';
-$lang['resendpwdnouser']       = 'Iste usator non ha essite trovate in le base de datos.';
-$lang['resendpwdbadauth']      = 'Iste codice de authentication non es valide. Assecura te que tu ha usate le ligamine de confirmation complete.';
-$lang['resendpwdconfirm']      = 'Un ligamine de confirmation ha essite inviate per e-mail.';
-$lang['resendpwdsuccess']      = 'Tu nove contrasigno ha essite inviate per e-mail.';
-$lang['license']               = 'Excepte ubi indicate alteremente, le contento in iste wiki es disponibile sub le licentia sequente:';
-$lang['licenseok']             = 'Nota ben! Per modificar iste pagina tu accepta que tu contento essera publicate sub le conditiones del licentia sequente:';
-$lang['searchmedia']           = 'Cercar file con nomine:';
-$lang['searchmedia_in']        = 'Cercar in %s';
-$lang['txt_upload']            = 'Selige le file a incargar:';
-$lang['txt_filename']          = 'Incargar como (optional):';
-$lang['txt_overwrt']           = 'Reimplaciar le file existente';
-$lang['lockedby']              = 'Actualmente serrate per:';
-$lang['lockexpire']            = 'Serratura expira le:';
-$lang['js']['willexpire']            = 'Tu serratura super le modification de iste pagina expirara post un minuta.\nPro evitar conflictos, usa le button Previsualisar pro reinitialisar le timer del serratura.';
-$lang['js']['notsavedyet']     = 'Le modificationes non salveguardate essera perdite.\nRealmente continuar?';
-$lang['rssfailed']             = 'Un error occurreva durante le obtention de iste syndication:';
-$lang['nothingfound']          = 'Nihil ha essite trovate.';
-$lang['mediaselect']           = 'Files multimedia';
-$lang['uploadsucc']            = 'Incargamento succedite';
-$lang['uploadfail']            = 'Incargamento fallite. Pote esser que le permissiones es incorrecte.';
-$lang['uploadwrong']           = 'Incargamento refusate. Iste typo de file es prohibite!';
-$lang['uploadexist']           = 'File ja existe. Nihil facite.';
-$lang['uploadbadcontent']      = 'Le typo del contento incargate non corresponde al extension del nomine de file "%s".';
-$lang['uploadspam']            = 'Le incargamento ha essite blocate per le lista nigre anti-spam.';
-$lang['uploadxss']             = 'Le incargamento ha essite blocate a causa de contento possibilemente malitiose.';
-$lang['uploadsize']            = 'Le file incargate es troppo grande. (Max. %s)';
-$lang['deletesucc']            = 'Le file "%s" ha essite delite.';
-$lang['deletefail']            = '"%s" non poteva esser delite. Verifica le permissiones.';
-$lang['mediainuse']            = 'Le file "%s" non ha essite delite proque illo es ancora in uso.';
-$lang['namespaces']            = 'Spatios de nomines';
-$lang['mediafiles']            = 'Files disponibile in';
-$lang['js']['searchmedia']     = 'Cercar files';
-$lang['js']['keepopen']        = 'Mantener fenestra aperte post selection';
-$lang['js']['hidedetails']     = 'Celar detalios';
-$lang['js']['mediatitle']      = 'Configuration del ligamine';
-$lang['js']['mediadisplay']    = 'Typo de ligamine';
-$lang['js']['mediaalign']      = 'Alineamento';
-$lang['js']['mediasize']       = 'Dimension del imagine';
-$lang['js']['mediatarget']     = 'Destination del ligamine';
-$lang['js']['mediaclose']      = 'Clauder';
-$lang['js']['mediainsert']     = 'Inserer';
-$lang['js']['mediadisplayimg'] = 'Monstrar le imagine.';
-$lang['js']['mediadisplaylnk'] = 'Monstrar solmente le imagine.';
-$lang['js']['mediasmall']      = 'Version parve';
-$lang['js']['mediamedium']     = 'Version medie';
-$lang['js']['medialarge']      = 'Version grande';
-$lang['js']['mediaoriginal']   = 'Version original';
-$lang['js']['medialnk']        = 'Ligamine al pagina de detalios';
-$lang['js']['mediadirect']     = 'Ligamine directe verso le original';
-$lang['js']['medianolnk']      = 'Nulle ligamine';
-$lang['js']['medianolink']     = 'Non ligar verso le imagine';
-$lang['js']['medialeft']       = 'Alinear le imagine verso le sinistra.';
-$lang['js']['mediaright']      = 'Alinear le imagine verso le dextra.';
-$lang['js']['mediacenter']     = 'Alinear le imagine in le medio.';
-$lang['js']['medianoalign']    = 'Non alinear.';
-$lang['js']['nosmblinks']      = 'Le ligamines a ressources de Windows functiona solmente in Microsoft Internet Explorer.
-Tu pote nonobstante copiar e collar le ligamine.';
-$lang['js']['linkwiz']         = 'Assistente pro ligamines';
-$lang['js']['linkto']          = 'Ligar verso:';
-$lang['js']['del_confirm']     = 'Realmente deler le entrata(s) seligite?';
-$lang['mediausage']            = 'Usa le syntaxe sequente pro referer a iste file:';
-$lang['mediaview']             = 'Vider file original';
-$lang['mediaroot']             = 'radice';
-$lang['mediaupload']           = 'Incarga hic un file in le spatio de nomines actual. Pro crear subspatios de nomines, antepone los al nomine de file "Incargar como", separate per signos de duo punctos (":").';
-$lang['mediaextchange']        = 'Extension del file cambiate de .%s a .%s!';
-$lang['reference']             = 'Referentias pro';
-$lang['ref_inuse']             = 'Le file non pote esser delite proque illo es ancora in uso per le sequente paginas:';
-$lang['ref_hidden']            = 'Alcun referentias es in paginas pro le quales tu non ha le permission de lectura';
-$lang['hits']                  = 'Resultatos';
-$lang['quickhits']             = 'Nomines de pagina correspondente';
-$lang['toc']                   = 'Tabula de contento';
-$lang['current']               = 'actual';
-$lang['yours']                 = 'Tu version';
-$lang['diff']                  = 'Monstrar differentias con versiones actual';
-$lang['diff2']                 = 'Monstrar differentias inter le versiones seligite';
-$lang['line']                  = 'Linea';
-$lang['breadcrumb']            = 'Tracia:';
-$lang['youarehere']            = 'Tu es hic:';
-$lang['lastmod']               = 'Ultime modification:';
-$lang['by']                    = 'per';
-$lang['deleted']               = 'removite';
-$lang['created']               = 'create';
-$lang['restored']              = 'ancian version restaurate (%s)';
-$lang['external_edit']         = 'modification externe';
-$lang['summary']               = 'Modificar summario';
-$lang['noflash']               = 'Le <a href="http://www.adobe.com/products/flashplayer/">plug-in Flash de Adobe</a> es necessari pro monstrar iste contento.';
-$lang['download']              = 'Discargar fragmento';
-$lang['mail_newpage']          = 'pagina addite:';
-$lang['mail_changed']          = 'pagina modificate:';
-$lang['mail_subscribe_list']   = 'paginas modificate in spatio de nomines:';
-$lang['mail_new_user']         = 'nove usator:';
-$lang['mail_upload']           = 'file incargate:';
-$lang['qb_bold']               = 'Texto grasse';
-$lang['qb_italic']             = 'Texto italic';
-$lang['qb_underl']             = 'Texto sublineate';
-$lang['qb_code']               = 'Texto de codice';
-$lang['qb_strike']             = 'Texto cancellate';
-$lang['qb_h1']                 = 'Titulo a nivello 1';
-$lang['qb_h2']                 = 'Titulo a nivello 2';
-$lang['qb_h3']                 = 'Titulo a nivello 3';
-$lang['qb_h4']                 = 'Titulo a nivello 4';
-$lang['qb_h5']                 = 'Titulo a nivello 5';
-$lang['qb_h']                  = 'Titulo';
-$lang['qb_hs']                 = 'Seliger titulo';
-$lang['qb_hplus']              = 'Titulo superior';
-$lang['qb_hminus']             = 'Titulo inferior';
-$lang['qb_hequal']             = 'Titulo al mesme nivello';
-$lang['qb_link']               = 'Ligamine interne';
-$lang['qb_extlink']            = 'Ligamine externe';
-$lang['qb_hr']                 = 'Linea horizontal';
-$lang['qb_ol']                 = 'Elemento de lista ordinate';
-$lang['qb_ul']                 = 'Elemento de lista non ordinate';
-$lang['qb_media']              = 'Adder imagines e altere files';
-$lang['qb_sig']                = 'Inserer signatura';
-$lang['qb_smileys']            = 'Emoticones     ';
-$lang['qb_chars']              = 'Characteres special';
-$lang['upperns']               = 'Saltar al spatio de nomines superior';
-$lang['metaedit']              = 'Modificar metadatos';
-$lang['metasaveerr']           = 'Scriptura de metadatos fallite';
-$lang['metasaveok']            = 'Metadatos salveguardate';
-$lang['btn_img_backto']            = 'Retornar a %s';
-$lang['img_title']             = 'Titulo:';
-$lang['img_caption']           = 'Legenda:';
-$lang['img_date']              = 'Data:';
-$lang['img_fname']             = 'Nomine de file:';
-$lang['img_fsize']             = 'Dimension:';
-$lang['img_artist']            = 'Photographo:';
-$lang['img_copyr']             = 'Copyright:';
-$lang['img_format']            = 'Formato:';
-$lang['img_camera']            = 'Camera:';
-$lang['img_keywords']          = 'Parolas-clave:';
-$lang['subscr_subscribe_success'] = '%s addite al lista de subscription de %s';
-$lang['subscr_subscribe_error'] = 'Error durante le addition de %s al lista de subscription de %s';
-$lang['subscr_subscribe_noaddress'] = 'Il non ha un adresse associate con tu conto. Tu non pote esser addite al lista de subscription.';
-$lang['subscr_unsubscribe_success'] = '%s removite del lista de subscription de %s';
-$lang['subscr_unsubscribe_error'] = 'Error durante le remotion de %s del lista de subscription de %s';
-$lang['subscr_already_subscribed'] = '%s es ja subscribite a %s';
-$lang['subscr_not_subscribed'] = '%s non es subscribite a %s';
-$lang['subscr_m_not_subscribed'] = 'Tu non es actualmente subscribite al pagina o spatio de nomines actual.';
-$lang['subscr_m_new_header']   = 'Adder subscription';
-$lang['subscr_m_current_header'] = 'Subscriptiones actual';
-$lang['subscr_m_unsubscribe']  = 'Cancellar subscription';
-$lang['subscr_m_subscribe']    = 'Subscriber';
-$lang['subscr_m_receive']      = 'Reciper';
-$lang['subscr_style_every']    = 'un message pro cata modification';
-$lang['authtempfail']          = 'Le authentication de usator temporarimente non es disponibile. Si iste situation persiste, per favor informa le administrator de tu wiki.';
-$lang['i_chooselang']          = 'Selige tu lingua';
-$lang['i_installer']           = 'Installator de DokuWiki';
-$lang['i_wikiname']            = 'Nomine del wiki';
-$lang['i_enableacl']           = 'Activar ACL (recommendate)';
-$lang['i_superuser']           = 'Superusator';
-$lang['i_problems']            = 'Le installator ha trovate alcun problemas, indicate hic infra. Tu debe resolver iste problemas pro poter continuar.';
-$lang['i_modified']            = 'Pro motivos de securitate, iste script functiona solmente con un installation de DokuWiki nove e non modificate.
-Tu debe re-extraher le files del pacchetto discargate, o consultar le <a href="http://dokuwiki.org/install">instructiones de installation</a> complete pro altere optiones.';
-$lang['i_funcna']              = 'Le function PHP <code>%s</code> non es disponibile. Pote esser que tu albergo web lo ha disactivate pro un ration o altere.';
-$lang['i_phpver']              = 'Le version de PHP <code>%s</code> es plus ancian que le version requisite <code>%s</code>. Es necessari actualisar le installation de PHP.';
-$lang['i_permfail']            = '<code>%s</code> non permitte le accesso de scriptura a DokuWiki. Tu debe reparar le permissiones de iste directorio!';
-$lang['i_confexists']          = '<code>%s</code> ja existe';
-$lang['i_writeerr']            = 'Impossibile crear <code>%s</code>. Tu debe verificar le permissiones de directorios/files e crear iste file manualmente.';
-$lang['i_badhash']             = 'dokuwiki.php non recognoscite o modificate (hash=<code>%s</code>)';
-$lang['i_badval']              = '<code>%s</code> - valor vacue o invalide';
-$lang['i_success']             = 'Le configuration ha succedite. Tu pote ora deler le file install.php. Continua a
-<a href="doku.php?id=wiki:welcome">tu nove DokuWiki</a>.';
-$lang['i_failure']             = 'Alcun errores occurreva durante le scriptura del files de configuration. Es possibile que tu debe remediar iste errores manualmente ante que
-tu pote usar <a href="doku.php?id=wiki:welcome">tu nove DokuWiki</a>.';
-$lang['i_policy']              = 'Politica de ACL interne';
-$lang['i_pol0']                = 'Wiki aperte (lectura, scriptura, incargamento pro omnes)';
-$lang['i_pol1']                = 'Wiki public (lectura pro omnes, scriptura e incargamento pro usatores registrate)';
-$lang['i_pol2']                = 'Wiki claudite (lectura, scriptura e incargamento solmente pro usatores registrate)';
-$lang['i_retry']               = 'Reprobar';
-$lang['recent_global']         = 'Tu observa actualmente le modificationes intra le spatio de nomines <b>%s</b>. Tu pote etiam <a href="%s">vider le modificationes recente de tote le wiki</a>.';
-$lang['years']                 = '%d annos retro';
-$lang['months']                = '%d menses retro';
-$lang['weeks']                 = '%d septimanas retro';
-$lang['days']                  = '%d dies retro';
-$lang['hours']                 = '%d horas retro';
-$lang['minutes']               = '%d minutas retro';
-$lang['seconds']               = '%d secundas retro';
-$lang['email_signature_text'] = 'Iste message ha essite generate per DokuWiki a
-@DOKUWIKIURL@';
diff --git a/wiki/inc/lang/ia/locked.txt b/wiki/inc/lang/ia/locked.txt
deleted file mode 100644
index 726aabb..0000000
--- a/wiki/inc/lang/ia/locked.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Pagina serrate ======
-
-Iste pagina es actualmente serrate proque un altere usator lo modifica in iste momento. Tu debe attender usque iste usator fini le modification o usque al expiration del serratura.
\ No newline at end of file
diff --git a/wiki/inc/lang/ia/login.txt b/wiki/inc/lang/ia/login.txt
deleted file mode 100644
index 4c428f3..0000000
--- a/wiki/inc/lang/ia/login.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Aperir session ======
-
-Tu non es identificate! Entra tu credentiales de authentication pro aperir un session. Tu debe haber activate le cookies pro aperir un session.
\ No newline at end of file
diff --git a/wiki/inc/lang/ia/mailtext.txt b/wiki/inc/lang/ia/mailtext.txt
deleted file mode 100644
index ed3eb25..0000000
--- a/wiki/inc/lang/ia/mailtext.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-Un pagina in tu DokuWiki ha essite addite o modificate. Ecce le detalios:
-
-Data : @DATE@
-Navigator : @BROWSER@
-Adresse IP : @IPADDRESS@
-Nomine host : @HOSTNAME@
-Version ancian: @OLDPAGE@
-Version nove: @NEWPAGE@
-Summario: @SUMMARY@
-Usator : @USER@
-
-@DIFF@
diff --git a/wiki/inc/lang/ia/newpage.txt b/wiki/inc/lang/ia/newpage.txt
deleted file mode 100644
index 8db7aa7..0000000
--- a/wiki/inc/lang/ia/newpage.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Iste topico non existe ancora ======
-
-Tu ha sequite un ligamine verso un topico que non existe ancora. Si tu ha le permission requisite, tu pote crear lo con le button "Crear iste pagina".
\ No newline at end of file
diff --git a/wiki/inc/lang/ia/norev.txt b/wiki/inc/lang/ia/norev.txt
deleted file mode 100644
index 75e44b9..0000000
--- a/wiki/inc/lang/ia/norev.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Version non existe ======
-
-Le version specificate non existe. Usa le button "Versiones ancian" pro un lista de versiones ancian de iste documento.
\ No newline at end of file
diff --git a/wiki/inc/lang/ia/password.txt b/wiki/inc/lang/ia/password.txt
deleted file mode 100644
index bf0e400..0000000
--- a/wiki/inc/lang/ia/password.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-Salute @FULLNAME@!
-
-Ecce tu datos de usator pro @TITLE@ a @DOKUWIKIURL@
-
-Nomine de usator : @LOGIN@
-Contrasigno : @PASSWORD@
diff --git a/wiki/inc/lang/ia/preview.txt b/wiki/inc/lang/ia/preview.txt
deleted file mode 100644
index 22b958b..0000000
--- a/wiki/inc/lang/ia/preview.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Previsualisation ======
-
-Isto es un previsualisation de tu texto. Memora: le pagina **non** ha ancora essite salveguardate!
\ No newline at end of file
diff --git a/wiki/inc/lang/ia/pwconfirm.txt b/wiki/inc/lang/ia/pwconfirm.txt
deleted file mode 100644
index c8e3d00..0000000
--- a/wiki/inc/lang/ia/pwconfirm.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-Salute @FULLNAME@!
-
-Alcuno ha requestate un nove contrasigno pro tu conto de @TITLE@
-a @DOKUWIKIURL@
-
-Si tu non ha requestate un nove contrasigno, alora simplemente ignora iste message.
-
-Pro confirmar que le requesta realmente ha essite inviate per te, per favor usa le ligamine sequente.
-
-@CONFIRM@
diff --git a/wiki/inc/lang/ia/read.txt b/wiki/inc/lang/ia/read.txt
deleted file mode 100644
index e7e80db..0000000
--- a/wiki/inc/lang/ia/read.txt
+++ /dev/null
@@ -1 +0,0 @@
-Iste pagina es pro lectura solmente. Tu pote vider le codice-fonte, ma non modificar lo. Contacta tu administrator si tu pensa que isto es errate.
\ No newline at end of file
diff --git a/wiki/inc/lang/ia/recent.txt b/wiki/inc/lang/ia/recent.txt
deleted file mode 100644
index ba39c3f..0000000
--- a/wiki/inc/lang/ia/recent.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Modificationes recente ======
-
-Le sequente paginas ha essite modificate recentemente.
\ No newline at end of file
diff --git a/wiki/inc/lang/ia/register.txt b/wiki/inc/lang/ia/register.txt
deleted file mode 100644
index 22c4e4a..0000000
--- a/wiki/inc/lang/ia/register.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Crear un nove conto de usator ======
-
-Completa tote le informationes hic infra pro crear un nove conto in iste wiki. Assecura te de fornir un **adresse de e-mail valide!** Si le systema non te demanda de entrar un contrasigno hic, un nove contrasigno essera inviate a iste adresse. Le nomine de usator debe esser un [[doku>pagename|nomine de pagina]] valide.
diff --git a/wiki/inc/lang/ia/registermail.txt b/wiki/inc/lang/ia/registermail.txt
deleted file mode 100644
index b6fa332..0000000
--- a/wiki/inc/lang/ia/registermail.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-Un nove conto de usator ha essite create. Ecce le detalios:
-
-Nomine de usator : @NEWUSER@
-Nomine complete : @NEWNAME@
-E-mail : @NEWEMAIL@
-
-Data : @DATE@
-Navigator : @BROWSER@
-Adresse IP : @IPADDRESS@
-Nomine host : @HOSTNAME@
diff --git a/wiki/inc/lang/ia/resendpwd.txt b/wiki/inc/lang/ia/resendpwd.txt
deleted file mode 100644
index 97bcac0..0000000
--- a/wiki/inc/lang/ia/resendpwd.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Inviar nove contrasigno ======
-
-Per favor entra tu nomine de usator in le formulario hic infra pro requestar un nove contrasigno pro tu conto in iste wiki. Un ligamine de confirmation essera inviate a tu adresse de e-mail registrate.
\ No newline at end of file
diff --git a/wiki/inc/lang/ia/revisions.txt b/wiki/inc/lang/ia/revisions.txt
deleted file mode 100644
index e914edb..0000000
--- a/wiki/inc/lang/ia/revisions.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Versiones ancian ======
-
-Ecce le versiones ancian del documento presente. Pro reverter lo a un version ancian, selige un version del lista in basso, clicca "Modificar iste pagina" e salveguarda lo.
\ No newline at end of file
diff --git a/wiki/inc/lang/ia/searchpage.txt b/wiki/inc/lang/ia/searchpage.txt
deleted file mode 100644
index 7e093d2..0000000
--- a/wiki/inc/lang/ia/searchpage.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Recerca ======
-
-Le resultatos de tu recerca se trova hic infra. @CREATEPAGEINFO@
-
diff --git a/wiki/inc/lang/ia/showrev.txt b/wiki/inc/lang/ia/showrev.txt
deleted file mode 100644
index 60ee2a7..0000000
--- a/wiki/inc/lang/ia/showrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**Isto es un version ancian del documento!**
-----
\ No newline at end of file
diff --git a/wiki/inc/lang/ia/stopwords.txt b/wiki/inc/lang/ia/stopwords.txt
deleted file mode 100644
index e3e5135..0000000
--- a/wiki/inc/lang/ia/stopwords.txt
+++ /dev/null
@@ -1,38 +0,0 @@
-# Isto es un lista de parolas que le generator de indices ignora, un parola per linea.
-# Si tu modifica iste file, assecura te de usar le fines de linea UNIX (newline singule).
-# Non es necessari includer parolas plus curte que 3 characteres - istes es ignorate in omne caso.
-a
-ab
-circa
-com
-como
-como
-con
-de
-e
-es
-essera
-esserea
-esseva
-essite
-ex
-illo
-in
-iste
-istes
-le
-le
-les
-lo
-lor
-o
-pro
-quando
-que
-qui
-super
-sur
-tu
-ubi
-un
-www
diff --git a/wiki/inc/lang/ia/subscr_digest.txt b/wiki/inc/lang/ia/subscr_digest.txt
deleted file mode 100644
index b2cac2c..0000000
--- a/wiki/inc/lang/ia/subscr_digest.txt
+++ /dev/null
@@ -1,16 +0,0 @@
-Salute!
-
-Le pagina @PAGE@ in le wiki @TITLE@ ha cambiate.
-Ecce le modificationes:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-Version ancian: @OLDPAGE@
-Version nove: @NEWPAGE@
-
-Pro cancellar le notificationes de paginas, aperi un session al wiki a
-@DOKUWIKIURL@ postea visita
-@SUBSCRIBE@
-e cancella tu subscription al modificationes in paginas e/o spatios de nomines.
diff --git a/wiki/inc/lang/ia/subscr_form.txt b/wiki/inc/lang/ia/subscr_form.txt
deleted file mode 100644
index f63a30d..0000000
--- a/wiki/inc/lang/ia/subscr_form.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Gestion de subscriptiones ======
-
-Iste pagina permitte gerer tu subscriptiones pro le pagina e spatio de nomines actual.
-	
\ No newline at end of file
diff --git a/wiki/inc/lang/ia/subscr_list.txt b/wiki/inc/lang/ia/subscr_list.txt
deleted file mode 100644
index 01ff350..0000000
--- a/wiki/inc/lang/ia/subscr_list.txt
+++ /dev/null
@@ -1,13 +0,0 @@
-Salute!
-
-Alcun paginas in le spatio de nomines @PAGE@ del wiki @TITLE@ ha cambiate.
-Ecce le paginas con modiicationes:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-Pro cancellar le notificationes de paginas, aperi un session al wiki a
-@DOKUWIKIURL@ postea visita
-@SUBSCRIBE@
-e cancella tu subscription al modificationes in paginas e/o spatios de nomines.
diff --git a/wiki/inc/lang/ia/subscr_single.txt b/wiki/inc/lang/ia/subscr_single.txt
deleted file mode 100644
index da670ca..0000000
--- a/wiki/inc/lang/ia/subscr_single.txt
+++ /dev/null
@@ -1,19 +0,0 @@
-Salute!
-
-Le pagina @PAGE@ in le wiki @TITLE@ ha cambiate.
-Ecce le modificationes:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-Data : @DATE@
-Usator : @USER@
-Summario: @SUMMARY@
-Version ancian: @OLDPAGE@
-Version nove: @NEWPAGE@
-
-Pro cancellar le notificationes de paginas, aperi un session al wiki a
-@DOKUWIKIURL@ postea visita
-@SUBSCRIBE@
-e cancella tu subscription al modificationes in paginas e/o spatios de nomines.
diff --git a/wiki/inc/lang/ia/updateprofile.txt b/wiki/inc/lang/ia/updateprofile.txt
deleted file mode 100644
index 3968d3c..0000000
--- a/wiki/inc/lang/ia/updateprofile.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Actualisa le profilo de tu conto ======
-
-Solmente es necessari completar le campos que tu vole cambiar. Non es possibile cambiar tu nomine de usator.
\ No newline at end of file
diff --git a/wiki/inc/lang/ia/uploadmail.txt b/wiki/inc/lang/ia/uploadmail.txt
deleted file mode 100644
index c406d4b..0000000
--- a/wiki/inc/lang/ia/uploadmail.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-Un file ha essite incargate in tu DokuWiki. Ecce le detalios:
-
-File : @MEDIA@
-Data : @DATE@
-Navigator : @BROWSER@
-Adresse IP : @IPADDRESS@
-Nomine host: @HOSTNAME@
-Dimension : @SIZE@
-Typo MIME : @MIME@
-Usator : @USER@
diff --git a/wiki/inc/lang/id-ni/lang.php b/wiki/inc/lang/id-ni/lang.php
deleted file mode 100644
index 9bd495c..0000000
--- a/wiki/inc/lang/id-ni/lang.php
+++ /dev/null
@@ -1,76 +0,0 @@
-<?php
-/**
- * idni language file
- *
- * @author Harefa <fidelis@harefa.com>
- * @author Yustinus Waruwu <juswaruwu@gmail.com>
- */
-$lang['encoding']              = 'utf-8';
-$lang['direction']             = 'ltr';
-$lang['doublequoteopening']    = '“';
-$lang['doublequoteclosing']    = 'â€';
-$lang['singlequoteopening']    = '‘';
-$lang['singlequoteclosing']    = '’';
-$lang['apostrophe']            = '’';
-$lang['btn_edit']              = 'Haogö nga\'örö da\'a';
-$lang['btn_source']            = 'Oroma\'ö nga\'örö sindruhu';
-$lang['btn_show']              = 'Foroma\'ö nga\'örö';
-$lang['btn_create']            = 'Fazökhi nga\'öro';
-$lang['btn_search']            = 'Alui';
-$lang['btn_save']              = 'Irö\'ö';
-$lang['btn_preview']           = 'Foroma\'ö zikhala';
-$lang['btn_top']               = 'Angawuli ba mböröta';
-$lang['btn_newer']             = '<< sibohou';
-$lang['btn_older']             = 'si no ara >>';
-$lang['btn_revs']              = 'nifawu\'a si\'oföna';
-$lang['btn_recent']            = 'Lahe nibohouni';
-$lang['btn_upload']            = 'Fa\'oeh\'ö';
-$lang['btn_cancel']            = 'Lö alua';
-$lang['btn_index']             = 'Index';
-$lang['btn_secedit']           = 'Ehaogö';
-$lang['btn_login']             = 'Felalö bakha';
-$lang['btn_logout']            = 'Möi baero';
-$lang['btn_admin']             = 'Admin';
-$lang['btn_update']            = 'Bohouni';
-$lang['btn_delete']            = 'Heta';
-$lang['btn_back']              = 'Fulifuri';
-$lang['btn_backlink']          = 'Link fangawuli';
-$lang['btn_profile']           = 'Famohouni pörofile';
-$lang['btn_reset']             = 'Fawu\'a';
-$lang['btn_draft']             = 'Fawu\'a wanura';
-$lang['btn_draftdel']          = 'Heta zura';
-$lang['btn_register']          = 'Fasura\'ö';
-$lang['loggedinas']            = 'Möi bakha zotöi:';
-$lang['user']                  = 'Töi';
-$lang['pass']                  = 'Kode';
-$lang['newpass']               = 'Kode sibohou';
-$lang['oldpass']               = 'Faduhu\'ö kode';
-$lang['passchk']               = 'Sura sakalitö';
-$lang['remember']              = 'Töngöni ndra\'o';
-$lang['fullname']              = 'Töi safönu';
-$lang['email']                 = 'Imele';
-$lang['profile']               = 'Töi pörofile';
-$lang['badlogin']              = 'Bologö dödöu, fasala döi faoma kode.';
-$lang['minoredit']             = 'Famawu\'a ma\'ifu';
-$lang['regmissing']            = 'Bologö dödöu, si lö tola lö\'ö öfo\'ösi fefu nahia si tohöna.';
-$lang['reguexists']            = 'Bologö dödöu, no so zangoguna\'ö töi da\'a.';
-$lang['regsuccess']            = 'No tefazökhi akunö ba tefa\'ohe\'ö kode ba imele.';
-$lang['regsuccess2']           = 'No tefazökhi akunö';
-$lang['regmailfail']           = 'Oroma wa so ma\'ifu zifawuka ba wama\'ohe\'ö imele kode. Fuli sofu khö admin!';
-$lang['regbadmail']            = 'Imele nibe\'emö lö atulö - na ö\'ila wa fasala da\'a, sofu khö admin';
-$lang['regbadpass']            = 'Dombuadombua kode nibe\'emö lö fagölö, fuli sura.';
-$lang['regpwmail']             = 'Kode DokuWiki';
-$lang['reghere']               = 'Hadia no so akunömö? Na lö\'ö, fazökhi sambua.';
-$lang['profna']                = 'Lö tetehegö ba wiki da\'a ba wamawu\'a pörofile';
-$lang['profnochange']          = 'Lö hadöi nifawu\'ö, lö hadöi ni\'ohalöwögöi';
-$lang['profnoempty']           = 'Lö tetehegö na lö hadöi töi ma imele.';
-$lang['profchanged']           = 'Pörofile zangoguna\'ö no tebohouni.';
-$lang['pwdforget']             = 'Hadia olifu\'ö kode? Fuli halö kode';
-$lang['resendna']              = 'Lö tetehegi ba wiki da\'a wama\'ohe\'ö kode dua kali.';
-$lang['resendpwdmissing']      = 'Bologö dödöu, si lö tola lö\'ö öfo\'ösi fefu nahia si tohöna.';
-$lang['resendpwdnouser']       = 'Bologö dödöu, lö masöndra zangoguna da\'a ba database.';
-$lang['resendpwdconfirm']      = 'No tefaohe\'ö link famaduhu\'ö ba imele.';
-$lang['resendpwdsuccess']      = 'No tefa\'ohe\'ö kode sibohou ba imele.';
-$lang['txt_upload']            = 'Fili file ni fa\'ohe\'ö:';
-$lang['js']['notsavedyet']     = 'Famawu\'a si lö mu\'irö\'ö taya. \nSinduhu ötohugö?';
-$lang['mediaselect']           = 'Media file';
diff --git a/wiki/inc/lang/id/admin.txt b/wiki/inc/lang/id/admin.txt
deleted file mode 100644
index 8cb25ed..0000000
--- a/wiki/inc/lang/id/admin.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Administrasi ======
-
-Berikut ini adalah daftar pekerjaan administratif yang dapat Anda temukan di DokuWiki.
-
diff --git a/wiki/inc/lang/id/adminplugins.txt b/wiki/inc/lang/id/adminplugins.txt
deleted file mode 100644
index 2a91b3d..0000000
--- a/wiki/inc/lang/id/adminplugins.txt
+++ /dev/null
@@ -1 +0,0 @@
-=====Plugin Tambahan=====
\ No newline at end of file
diff --git a/wiki/inc/lang/id/backlinks.txt b/wiki/inc/lang/id/backlinks.txt
deleted file mode 100644
index 79c70f3..0000000
--- a/wiki/inc/lang/id/backlinks.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Backlinks ======
-
-Daftar dibawah ini adalah halaman-halaman (lain) yang terhubung ke halaman ini.
diff --git a/wiki/inc/lang/id/conflict.txt b/wiki/inc/lang/id/conflict.txt
deleted file mode 100644
index 236e8b6..0000000
--- a/wiki/inc/lang/id/conflict.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-====== Versi terbaru telah Ada ======
-
-Versi terbaru dari dokumen yang baru saja Anda Edit telah ada. Ini terjadi ketika user lain telah selesai mengubah halaman, saat Anda sedang meng-edit.
-
-Pertimbangkan perbedaan yang ditampilkan dibawah ini, kemudian putuskan versi mana yang harus disimpan. Jika Anda memilih "Simpan", versi (tulisan terbaru) Andalah yang akan disimpan. Tekan "Batal" to menggunakan versi tulisan yang telah ada.
-
diff --git a/wiki/inc/lang/id/denied.txt b/wiki/inc/lang/id/denied.txt
deleted file mode 100644
index ff09c13..0000000
--- a/wiki/inc/lang/id/denied.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Akses Ditolak ======
-
-Maaf, Anda tidak mempunyai hak akses untuk melanjutkan.
-
diff --git a/wiki/inc/lang/id/diff.txt b/wiki/inc/lang/id/diff.txt
deleted file mode 100644
index eee1e5a..0000000
--- a/wiki/inc/lang/id/diff.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Perbedaan ======
-
-Ini menunjukkan perbedaan antara versi yang terpilih dengan versi yang sedang aktif.
-
diff --git a/wiki/inc/lang/id/draft.txt b/wiki/inc/lang/id/draft.txt
deleted file mode 100644
index d7de145..0000000
--- a/wiki/inc/lang/id/draft.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== File Draft ditemukan ======
-
-Proses pengeditan Anda sebelumnya tidak selesai dengan sempurna. DokuWiki secara otomatis meyimpan draft yang dapat Anda pakai untuk melanjutkan pengeditan. Dibawah ini Anda dapat melihat data yang disimpan pada sesi sebelumnya.
-
-Silahkan pilih jika Anda ingin //recover// sesi pengeditan terakhir atau //hapus// draft, atau //batalkan// proses pengeditan.
diff --git a/wiki/inc/lang/id/edit.txt b/wiki/inc/lang/id/edit.txt
deleted file mode 100644
index a32803c..0000000
--- a/wiki/inc/lang/id/edit.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-Ubah isi halaman kemudian tekan "Simpan". Lihat [[wiki:syntax]] untuk sintaks-sintaks Wiki. Mohon edit/ubah halaman sesuai dengan judul halamannya. Bila Anda masih ragu untuk menulis di halaman ini, silahkan bermain-main di [[playground:playground|tamanbermain]].
-
diff --git a/wiki/inc/lang/id/editrev.txt b/wiki/inc/lang/id/editrev.txt
deleted file mode 100644
index e6d247c..0000000
--- a/wiki/inc/lang/id/editrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**Anda telah membuka dokumen versi lama!** Jika menyimpannya, berarti Anda akan membuat versi baru dari data ini.
-----
\ No newline at end of file
diff --git a/wiki/inc/lang/id/index.txt b/wiki/inc/lang/id/index.txt
deleted file mode 100644
index 88bbb12..0000000
--- a/wiki/inc/lang/id/index.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Index ======
-
-Berikut ini adalah index dari keseluruhan halaman yang ada, diurutkan berdasar [[doku>namespaces|namespaces]].
-
diff --git a/wiki/inc/lang/id/install.html b/wiki/inc/lang/id/install.html
deleted file mode 100644
index 4e288b3..0000000
--- a/wiki/inc/lang/id/install.html
+++ /dev/null
@@ -1,25 +0,0 @@
-<p>Halaman ini membatu Anda dalam proses instalasi dan konfigurasi pertama kali
-untuk <a href="http://dokuwiki.org">Dokuwiki</a>. Informasi lebih lanjut
-tentang alat instalasi ini tersedia dalam
-<a href="http://dokuwiki.org/installer">halaman dokumentasi</a> sendiri.</p>
-
-<p>DokuWIki menggunakan berkas biasa sebagai media penyimpanan halaman wiki
-dan informasi lainnya yang berhubungan dengan halaman tersebut (contoh: gambar,
-indeks pencarian, revisi lama, dll). Agar bisa menggunakannya DokuWiki
-<strong>harus</strong> memiliki hak akses tulis pada direktori yang menyimpan
-berkas-berkas tersebut. Alat instalasi ini tidak dapat melakukan perubahan
-konfigurasi hak akses pada direktori. Biasanya harus menggunakan command shell
-atau jika Anda pengguna layanan hosting, melalui FTP atau control panel layanan
-hosting Anda (misalnya: cPanel). </p>
-
-<p>Alat instalasi ini akan mengatur konfigurasi DokuWiki Anda untuk
-<abbr title="access control list">ACL</abbr>, yang selanjutnya akan
-memperbolehkan administrator untuk login dan mengakses menu Admin DokuWiki
-untuk menginstal plugin, mengatur pengguna (user), mengatur hak akses ke
-halaman wiki dan perubahan konfigurasi. Ini tidak diawajibkan dalam pengoperasian
-DokuWiki, tetapi dapat membuat DokuWiki lebih mudah untuk dipelihara.</p>
-
-<p>Pengguna berpengalaman atau pengguna dengan kebutuhan instalasi khusus silahkan
-melihat link <a href="http://dokuwiki.org/install">Panduan Instalasi</a>
-and <a href="http://dokuwiki.org/config">Konfigurasi WIki</a>.
-untuk hal-hal yang berhubungan dengan instalasi dan konfigurasi.</p>
diff --git a/wiki/inc/lang/id/jquery.ui.datepicker.js b/wiki/inc/lang/id/jquery.ui.datepicker.js
deleted file mode 100644
index 5aef348..0000000
--- a/wiki/inc/lang/id/jquery.ui.datepicker.js
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Indonesian initialisation for the jQuery UI date picker plugin. */
-/* Written by Deden Fathurahman (dedenf@gmail.com). */
-( function( factory ) {
-	if ( typeof define === "function" && define.amd ) {
-
-		// AMD. Register as an anonymous module.
-		define( [ "../widgets/datepicker" ], factory );
-	} else {
-
-		// Browser globals
-		factory( jQuery.datepicker );
-	}
-}( function( datepicker ) {
-
-datepicker.regional.id = {
-	closeText: "Tutup",
-	prevText: "&#x3C;mundur",
-	nextText: "maju&#x3E;",
-	currentText: "hari ini",
-	monthNames: [ "Januari","Februari","Maret","April","Mei","Juni",
-	"Juli","Agustus","September","Oktober","Nopember","Desember" ],
-	monthNamesShort: [ "Jan","Feb","Mar","Apr","Mei","Jun",
-	"Jul","Agus","Sep","Okt","Nop","Des" ],
-	dayNames: [ "Minggu","Senin","Selasa","Rabu","Kamis","Jumat","Sabtu" ],
-	dayNamesShort: [ "Min","Sen","Sel","Rab","kam","Jum","Sab" ],
-	dayNamesMin: [ "Mg","Sn","Sl","Rb","Km","jm","Sb" ],
-	weekHeader: "Mg",
-	dateFormat: "dd/mm/yy",
-	firstDay: 0,
-	isRTL: false,
-	showMonthAfterYear: false,
-	yearSuffix: "" };
-datepicker.setDefaults( datepicker.regional.id );
-
-return datepicker.regional.id;
-
-} ) );
diff --git a/wiki/inc/lang/id/lang.php b/wiki/inc/lang/id/lang.php
deleted file mode 100644
index dc9d662..0000000
--- a/wiki/inc/lang/id/lang.php
+++ /dev/null
@@ -1,312 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author mubaidillah <mubaidillah@gmail.com>
- * @author Irwan Butar Butar <irwansah.putra@gmail.com>
- * @author Yustinus Waruwu <juswaruwu@gmail.com>
- * @author zamroni <therons@ymail.com>
- * @author umriya afini <bigdream.power@gmail.com>
- * @author Arif Budiman <me@kangarif.com>
- */
-$lang['encoding']              = 'utf-8';
-$lang['direction']             = 'ltr';
-$lang['doublequoteopening']    = '“';
-$lang['doublequoteclosing']    = 'â€';
-$lang['singlequoteopening']    = '‘';
-$lang['singlequoteclosing']    = '’';
-$lang['apostrophe']            = '\'';
-$lang['btn_edit']              = 'Edit halaman ini';
-$lang['btn_source']            = 'Lihat sumber halaman';
-$lang['btn_show']              = 'Tampilkan halaman';
-$lang['btn_create']            = 'Buat halaman baru';
-$lang['btn_search']            = 'Cari';
-$lang['btn_save']              = 'Simpan';
-$lang['btn_top']               = 'kembali ke atas';
-$lang['btn_newer']             = '<< lebih lanjut';
-$lang['btn_older']             = 'sebelumnya >>';
-$lang['btn_revs']              = 'Revisi-revisi lama';
-$lang['btn_recent']            = 'Perubahan terbaru';
-$lang['btn_upload']            = 'Upload';
-$lang['btn_cancel']            = 'Batal';
-$lang['btn_index']             = 'Indeks';
-$lang['btn_login']             = 'Login';
-$lang['btn_logout']            = 'Keluar';
-$lang['btn_admin']             = 'Admin';
-$lang['btn_update']            = 'Ubah';
-$lang['btn_delete']            = 'Hapus';
-$lang['btn_back']              = 'Kembali';
-$lang['btn_backlink']          = 'Backlinks';
-$lang['btn_subscribe']         = 'Ikuti Perubahan';
-$lang['btn_profile']           = 'Ubah Profil';
-$lang['btn_resendpwd']         = 'Atur password baru';
-$lang['btn_recover']           = 'Cadangkan draf';
-$lang['btn_draftdel']          = 'Hapus draft';
-$lang['btn_revert']            = 'Kembalikan';
-$lang['btn_register']          = 'Daftar';
-$lang['btn_apply']             = 'Terapkan';
-$lang['btn_media']             = 'Pengelola Media';
-$lang['btn_deleteuser']        = 'Hapus Akun Saya';
-$lang['btn_img_backto']        = 'Kembali ke %s';
-$lang['btn_mediaManager']      = 'Tampilkan di pengelola media';
-$lang['loggedinas']            = 'Login sebagai :';
-$lang['user']                  = 'Username';
-$lang['pass']                  = 'Password';
-$lang['newpass']               = 'Password baru';
-$lang['oldpass']               = 'Konfirmasi password';
-$lang['passchk']               = 'sekali lagi';
-$lang['remember']              = 'Ingat saya';
-$lang['fullname']              = 'Nama lengkap';
-$lang['email']                 = 'E-Mail';
-$lang['profile']               = 'Profil User';
-$lang['badlogin']              = 'Maaf, username atau password salah.';
-$lang['badpassconfirm']        = 'Maaf, password salah';
-$lang['minoredit']             = 'Perubahan Minor';
-$lang['draftdate']             = 'Simpan draft secara otomatis';
-$lang['regmissing']            = 'Maaf, Anda harus mengisi semua field.';
-$lang['reguexists']            = 'Maaf, user dengan user login ini telah ada.';
-$lang['regsuccess']            = 'User telah didaftarkan dan password telah dikirim ke email Anda.';
-$lang['regsuccess2']           = 'User telah dibuatkan.';
-$lang['regmailfail']           = 'Kami menemukan kesalahan saat mengirimkan password ke alamat email Anda. Mohon hubungi administrator.';
-$lang['regbadmail']            = 'Alamat email yang Anda masukkan tidak valid - jika menurut Anda hal ini adalah kesalahan sistem, mohon hubungi admin.';
-$lang['regbadpass']            = 'Passwod yang dimasukkan tidak sama. Silahkan ulangi lagi.';
-$lang['regpwmail']             = 'Password DokuWiki Anda';
-$lang['reghere']               = 'Anda belum mempunyai account? silahkan ';
-$lang['profna']                = 'Wiki ini tidak mengijinkan perubahan profil.';
-$lang['profnochange']          = 'Tidak ada perubahan.';
-$lang['profnoempty']           = 'Mohon mengisikan nama atau alamat email.';
-$lang['profchanged']           = 'Profil User berhasil diubah.';
-$lang['profnodelete']          = 'Wiki ini tidak mendukung penghapusan pengguna';
-$lang['profdeleteuser']        = 'Hapus Akun';
-$lang['profdeleted']           = 'Akun anda telah dihapus dari wiki ini';
-$lang['profconfdelete']        = 'Saya berharap menghapus akun saya dari wiki ini.
-Aksi ini tidak bisa diselesaikan.';
-$lang['profconfdeletemissing'] = 'Knfirmasi check box tidak tercentang';
-$lang['pwdforget']             = 'Lupa Password? Dapatkan yang baru';
-$lang['resendna']              = 'Wiki ini tidak mendukung pengiriman ulang password.';
-$lang['resendpwd']             = 'Atur password baru';
-$lang['resendpwdmissing']      = 'Maaf, Anda harus mengisikan semua field.';
-$lang['resendpwdnouser']       = 'Maaf, user ini tidak ditemukan.';
-$lang['resendpwdbadauth']      = 'Maaf, kode autentikasi tidak valid. Pastikan Anda menggunakan keseluruhan link konfirmasi.';
-$lang['resendpwdconfirm']      = 'Link konfirmasi telah dikirim melalui email.';
-$lang['resendpwdsuccess']      = 'Password baru Anda telah dikirim melalui email.';
-$lang['license']               = 'Kecuali jika dinyatakan lain, konten pada wiki ini dilisensikan dibawah lisensi berikut:';
-$lang['licenseok']             = 'Catatan: Dengan menyunting halaman ini, Anda setuju untuk melisensikan konten Anda dibawah lisensi berikut:';
-$lang['searchmedia']           = 'Cari nama file:';
-$lang['searchmedia_in']        = 'Cari di %s';
-$lang['txt_upload']            = 'File yang akan diupload:';
-$lang['txt_filename']          = 'Masukkan nama wiki (opsional):';
-$lang['txt_overwrt']           = 'File yang telah ada akan ditindih';
-$lang['maxuploadsize']         = 'Unggah maks. %s per berkas';
-$lang['lockedby']              = 'Sedang dikunci oleh:';
-$lang['lockexpire']            = 'Penguncian artikel sampai dengan:';
-$lang['js']['willexpire']      = 'Halaman yang sedang Anda kunci akan berakhir dalam waktu kurang lebih satu menit.\nUntuk menghindari konflik, gunakan tombol Preview untuk me-reset timer pengunci.';
-$lang['js']['notsavedyet']     = 'Perubahan yang belum disimpan akan hilang.\nYakin akan dilanjutkan?';
-$lang['js']['searchmedia']     = 'Cari file';
-$lang['js']['keepopen']        = 'Biarkan window terbuka dalam pemilihan';
-$lang['js']['hidedetails']     = 'Sembunyikan detil';
-$lang['js']['mediatitle']      = 'Pengaturan Link';
-$lang['js']['mediadisplay']    = 'Jenis tautan';
-$lang['js']['mediaalign']      = 'Perataan';
-$lang['js']['mediasize']       = 'Ukuran gambar';
-$lang['js']['mediatarget']     = 'Tautan tujuan';
-$lang['js']['mediaclose']      = 'Tutup';
-$lang['js']['mediainsert']     = 'Sisip';
-$lang['js']['mediadisplayimg'] = 'Lihat gambar';
-$lang['js']['mediadisplaylnk'] = 'Lihat hanya link';
-$lang['js']['mediasmall']      = 'Versi kecil';
-$lang['js']['mediamedium']     = 'Versi sedang';
-$lang['js']['medialarge']      = 'Versi besar';
-$lang['js']['mediaoriginal']   = 'Versi asli';
-$lang['js']['medialnk']        = 'Tautan ke halaman rincian';
-$lang['js']['mediadirect']     = 'Tautan langsung ke aslinya';
-$lang['js']['medianolnk']      = 'Tanpa tautan';
-$lang['js']['medianolink']     = 'Jangan tautkan gambar';
-$lang['js']['medialeft']       = 'Rata gambar sebelah kiri';
-$lang['js']['mediaright']      = 'Rata gambar sebelah kanan';
-$lang['js']['mediacenter']     = 'Rata gambar di tengah';
-$lang['js']['medianoalign']    = 'Jangan gunakan perataan';
-$lang['js']['nosmblinks']      = 'Link ke share Windows hanya bekerja di Microsoft Internet Explorer.
-Anda masih dapat mengcopy and paste linknya.';
-$lang['js']['linkwiz']         = 'Wizard Tautan';
-$lang['js']['linkto']          = 'Tautkan ke:';
-$lang['js']['del_confirm']     = 'Hapus tulisan ini?';
-$lang['js']['restore_confirm'] = 'Benar-benar ingin mengembalikan versi ini?';
-$lang['js']['media_diff']      = 'Lihat perbedaan:';
-$lang['js']['media_diff_both'] = 'Berdampingan';
-$lang['js']['media_diff_opacity'] = 'Mencolok';
-$lang['js']['media_select']    = 'Pilih file...';
-$lang['js']['media_upload_btn'] = 'Unggah';
-$lang['js']['media_done_btn']  = 'Selesai';
-$lang['js']['media_drop']      = 'Tarik file disini untuk mengunggah';
-$lang['js']['media_cancel']    = 'Buang';
-$lang['js']['media_overwrt']   = 'Timpa berkas yang ada';
-$lang['rssfailed']             = 'Error terjadi saat mengambil feed: ';
-$lang['nothingfound']          = 'Tidak menemukan samasekali.';
-$lang['mediaselect']           = 'Pilihan Mediafile';
-$lang['uploadsucc']            = 'Upload sukses';
-$lang['uploadfail']            = 'Upload gagal. Apakah hak ijinnya salah?';
-$lang['uploadwrong']           = 'Upload ditolak. Ekstensi file ini tidak diperbolehkan!';
-$lang['uploadexist']           = 'File telah ada. Tidak mengerjakan apa-apa.';
-$lang['uploadbadcontent']      = 'Isi file yang diupload tidak cocok dengan ekstensi file %s.';
-$lang['uploadspam']            = 'File yang diupload diblok oleh spam blacklist.';
-$lang['uploadxss']             = 'File yang diupload diblok karena kemungkinan isi yang berbahaya.';
-$lang['uploadsize']            = 'File yang diupload terlalu besar. (max. %s)';
-$lang['deletesucc']            = 'File "%s" telah dihapus.';
-$lang['deletefail']            = '"%s" tidak dapat dihapus - cek hak aksesnya.';
-$lang['mediainuse']            = 'File "%s" belum dihapus - file ini sedang digunakan.';
-$lang['namespaces']            = 'Namespaces';
-$lang['mediafiles']            = 'File tersedia didalam';
-$lang['accessdenied']          = 'Anda tidak diperbolehkan melihat halaman ini';
-$lang['mediausage']            = 'Gunakan sintaks berikut untuk me-refer ke file ini';
-$lang['mediaview']             = 'Tampilkan file asli';
-$lang['mediaroot']             = 'root';
-$lang['mediaupload']           = 'Upload file ke namespace ini. Untuk menbuat namespace baru, tambahkan namanya didepanpada nama file "Upload as" dipisahkan dengan titik dua (:).';
-$lang['mediaextchange']        = 'Ektensi file berubah dari .%s ke .%s';
-$lang['reference']             = 'Referensi untuk';
-$lang['ref_inuse']             = 'File tidak dapat dihapus karena sedang digunakan oleh halaman:';
-$lang['ref_hidden']            = 'Beberapa referensi ada didalam halaman yang tidak diijinkan untuk Anda baca.';
-$lang['quickhits']             = 'Matching pagenames';
-$lang['toc']                   = 'Daftar isi';
-$lang['current']               = 'sekarang';
-$lang['yours']                 = 'Versi Anda';
-$lang['diff']                  = 'Tampilkan perbedaan dengan versi sekarang';
-$lang['diff2']                 = 'Tampilkan perbedaan diantara revisi terpilih';
-$lang['difflink']              = 'Tautan ke tampilan pembanding ini';
-$lang['diff_type']             = 'Tampilkan perbedaan:';
-$lang['diff_inline']           = 'Sebaris';
-$lang['diff_side']             = 'Berdampingan';
-$lang['diffprevrev']           = 'Revisi sebelumnya';
-$lang['diffnextrev']           = 'Revisi selanjutnya';
-$lang['difflastrev']           = 'Revisi terakhir';
-$lang['line']                  = 'Baris';
-$lang['breadcrumb']            = 'Jejak:';
-$lang['youarehere']            = 'Anda disini:';
-$lang['lastmod']               = 'Terakhir diubah:';
-$lang['by']                    = 'oleh';
-$lang['deleted']               = 'terhapus';
-$lang['created']               = 'dibuat';
-$lang['restored']              = 'revisi lama ditampilkan kembali (%s)';
-$lang['external_edit']         = 'Perubahan eksternal';
-$lang['noflash']               = '<a href="http://www.adobe.com/products/flashplayer/">Adobe Flash Plugin</a> diperlukan untuk menampilkan konten ini.';
-$lang['download']              = 'Unduh Cuplikan';
-$lang['tools']                 = 'Alat';
-$lang['user_tools']            = 'Alat Pengguna';
-$lang['site_tools']            = 'Alat Situs';
-$lang['page_tools']            = 'Alat Halaman';
-$lang['skip_to_content']       = 'lewati ke konten';
-$lang['sidebar']               = 'Bilah Sisi';
-$lang['mail_newpage']          = 'Halaman ditambahkan:';
-$lang['mail_changed']          = 'Halaman diubah:';
-$lang['mail_subscribe_list']   = 'halaman diubah dalam namespace:';
-$lang['mail_new_user']         = 'User baru:';
-$lang['mail_upload']           = 'Berkas di-upload:';
-$lang['changes_type']          = 'Tampilkan perubahan';
-$lang['pages_changes']         = 'Halaman';
-$lang['media_changes']         = 'Berkas media';
-$lang['both_changes']          = 'Baik halaman dan berkas media';
-$lang['qb_bold']               = 'Tebal';
-$lang['qb_italic']             = 'Miring';
-$lang['qb_underl']             = 'Garis Bawah';
-$lang['qb_code']               = 'Kode';
-$lang['qb_strike']             = 'Text Tercoret';
-$lang['qb_hs']                 = 'Pilih Judul';
-$lang['qb_hplus']              = 'Judul Lebih Atas';
-$lang['qb_hminus']             = 'Judul Lebih Bawah';
-$lang['qb_hequal']             = 'Tingkat Judul yang Sama';
-$lang['qb_hr']                 = 'Garis Horisontal';
-$lang['qb_ol']                 = 'Item Berurutan';
-$lang['qb_ul']                 = 'Item Tidak Berurutan';
-$lang['qb_media']              = 'Tambahkan gambar atau file lain';
-$lang['qb_sig']                = 'Sisipkan tanda tangan';
-$lang['qb_chars']              = 'Karakter Khusus';
-$lang['upperns']               = 'lompat ke namespace induk';
-$lang['metasaveerr']           = 'Gagal menulis metadata';
-$lang['metasaveok']            = 'Metadata tersimpan';
-$lang['img_title']             = 'Judul:';
-$lang['img_caption']           = 'Label:';
-$lang['img_date']              = 'Tanggal:';
-$lang['img_fname']             = 'Nama file:';
-$lang['img_fsize']             = 'Ukuran:';
-$lang['img_artist']            = 'Tukang foto:';
-$lang['img_copyr']             = 'Hakcipta:';
-$lang['img_format']            = 'Format:';
-$lang['img_camera']            = 'Kamera:';
-$lang['img_keywords']          = 'Katakunci:';
-$lang['img_width']             = 'Lebar:';
-$lang['img_height']            = 'Tinggi:';
-$lang['subscr_subscribe_success'] = 'Menambah %s ke senarai langganan untuk %s';
-$lang['subscr_subscribe_error'] = 'Kesalahan menambahkan %s ke senarai langganan untuk %s';
-$lang['subscr_subscribe_noaddress'] = 'Tidak ada alamat yang terkait dengan login Anda, Anda tidak dapat ditambahkan ke senarai langganan';
-$lang['subscr_unsubscribe_success'] = 'Menghapus %s dari senarai langganan untuk %s';
-$lang['subscr_unsubscribe_error'] = 'Kesalahan menghapus %s dari senarai langganan untuk %s';
-$lang['subscr_already_subscribed'] = '%s sudah dilanggankan ke %s';
-$lang['subscr_not_subscribed'] = '%s tidak dilanggankan ke %s';
-$lang['subscr_m_not_subscribed'] = 'Saat ini Anda tidak berlangganan halaman dan namespace saat ini.';
-$lang['subscr_m_new_header']   = 'Tambahkan langganan';
-$lang['subscr_m_current_header'] = 'Langganan saat ini';
-$lang['subscr_m_unsubscribe']  = 'Berhenti berlangganan';
-$lang['subscr_m_subscribe']    = 'Berlangganan';
-$lang['subscr_m_receive']      = 'Menerima';
-$lang['subscr_style_every']    = 'email setiap diubah';
-$lang['authtempfail']          = 'Autentikasi user saat ini sedang tidak dapat digunakan. Jika kejadian ini berlanjut, Harap informasikan admin Wiki Anda.';
-$lang['i_chooselang']          = 'Pilih bahasa';
-$lang['i_installer']           = 'Instalasi DokuWiki';
-$lang['i_wikiname']            = 'Nama Wiki';
-$lang['i_enableacl']           = 'Aktifkan ACL (disarankan)';
-$lang['i_problems']            = 'Terdapat beberapa kesalahan seperti berikut. Anda tidak dapat melanjutkan sampai kesalahan tersebut diperbaiki.';
-$lang['i_modified']            = 'Untuk alasan keamanan, skrip ini hanya dapat dijalankan pada instalasi DikuWiki baru dan belum di modifikasi. Silahkan meng-ekstrak kembali berkasi dari halaman dowload, atau lihat   <a href="http://dokuwiki.org/install">Dokuwiki installation instructions</a> ';
-$lang['i_funcna']              = 'Fungsi PHP <code>%s</code> tidak tersedia. Mungkin dinonaktifkan oleh layanan hosting Anda?';
-$lang['i_phpver']              = 'Versi PHP Anda <code>%s</code> lebih rendah dari yang dibutuhkan <code>%s</code>. Mohon melakukan upgrade.';
-$lang['i_permfail']            = '<code>%s</code> tidak dapat ditulis oleh DokuWiki. Anda harus memperbaiki konfigurasi hak akses untuk direktori tersebut.';
-$lang['i_confexists']          = '<code>%s</code> sudah ada';
-$lang['i_writeerr']            = 'Tidak dapat membuat <code>%s</code>. Anda harus memeriksa konfigurasi hak akses direktori/berkas dan membuatnya secara manual.';
-$lang['i_badhash']             = 'dokuwiki.php tidak dikenal atau sudah diubah (hash=<code>%s</code>)';
-$lang['i_badval']              = '<code>%s</code> - tidak valid atau belum diisi';
-$lang['i_success']             = 'Konfigurasi telah berhasil. Anda boleh menghapus berkas install.php sekarang. Lanjutkan ke <a href="doku.php?id=wiki:welcome">DokuWiki baru Anda</a>.';
-$lang['i_failure']             = 'Terdapat beberapa kesalahan dalam menulis berkas konfigurasi. Anda harus memperbaikinnya sendiri sebelum dapat menggunakan <a href="doku.php?id=wiki:welcome">DokuWiki baru Anda</a>.';
-$lang['i_policy']              = 'Policy ACL awal';
-$lang['i_pol0']                = 'Wiki Terbuka (baca, tulis, upload untuk semua orang)';
-$lang['i_pol1']                = 'Wiki Publik (baca untuk semua orang, tulis dan upload untuk pengguna terdaftar)';
-$lang['i_pol2']                = 'Wiki Privat (baca, tulis dan upload hanya untuk pengguna terdaftar)';
-$lang['i_allowreg']            = 'Ijinkan pengguna mendaftar sendiri';
-$lang['i_retry']               = 'Coba Lagi';
-$lang['i_license']             = 'Silakan pilih lisensi untuk konten Anda:';
-$lang['i_license_none']        = 'Jangan tampilkan semua informasi lisensi';
-$lang['i_pop_field']           = 'Tolong, bantu kami meningkatkan pengalaman DokuWiki:';
-$lang['i_pop_label']           = 'Setiap bulan mengirimkan penggunaan data anonim ke pengembang DokuWiki';
-$lang['years']                 = '%d tahun yang lalu';
-$lang['months']                = '%d bulan yang lalu';
-$lang['weeks']                 = '%d minggu yang lalu';
-$lang['days']                  = '%d hari yang lalu';
-$lang['hours']                 = '%d jam yang lalu';
-$lang['minutes']               = '%d menit yang lalu';
-$lang['seconds']               = '%d detik yang lalu';
-$lang['wordblock']             = 'Pengubahan Anda tidak disimpan karena berisi teks yang diblokir (spam).';
-$lang['media_uploadtab']       = 'Unggah';
-$lang['media_searchtab']       = 'Cari';
-$lang['media_file']            = 'Berkas';
-$lang['media_viewtab']         = 'Lihat';
-$lang['media_edittab']         = 'Sunting';
-$lang['media_historytab']      = 'Riwayat';
-$lang['media_list_rows']       = 'Kolom';
-$lang['media_sort_name']       = 'Nama';
-$lang['media_sort_date']       = 'Tanggal';
-$lang['media_namespaces']      = 'Pilih namespace';
-$lang['media_upload']          = 'Unggah ke %s';
-$lang['media_search']          = 'Cari di %s';
-$lang['media_view']            = '%s';
-$lang['media_viewold']         = '%s di %s';
-$lang['media_edit']            = 'Sunting %s';
-$lang['media_history']         = 'Riwayat %s';
-$lang['media_meta_edited']     = 'metadata disunting';
-$lang['media_perm_read']       = 'Maaf, Anda tidak memiliki izin untuk membaca berkas.';
-$lang['media_perm_upload']     = 'Maaf, Anda tidak memiliki izin untuk mengunggah berkas.';
-$lang['media_update']          = 'Unggah versi baru';
-$lang['media_restore']         = 'Kembalikan versi ini';
-$lang['currentns']             = 'Namespace saat ini';
-$lang['searchresult']          = 'Hasil Pencarian';
-$lang['wikimarkup']            = 'Markah Wiki';
-$lang['email_signature_text'] = 'Email ini dibuat otomatis oleh DokuWiki
-@DOKUWIKIURL@';
diff --git a/wiki/inc/lang/id/locked.txt b/wiki/inc/lang/id/locked.txt
deleted file mode 100644
index 8147717..0000000
--- a/wiki/inc/lang/id/locked.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Halaman Terkunci ======
-
-Halaman ini tertutup (terkunci) untuk diedit oleh user lain. Anda harus menunggu sampai user ini menyelesaikan pengeditan, atau masa berlaku penguncian telah berakhir.
diff --git a/wiki/inc/lang/id/login.txt b/wiki/inc/lang/id/login.txt
deleted file mode 100644
index f736e88..0000000
--- a/wiki/inc/lang/id/login.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Login ======
-
-Anda belum login! Masukkan data autentifikasi dibawah ini untuk masuk log (login). Cookies harus diaktifkan agar bisa login.
-
diff --git a/wiki/inc/lang/id/mailtext.txt b/wiki/inc/lang/id/mailtext.txt
deleted file mode 100644
index df9699e..0000000
--- a/wiki/inc/lang/id/mailtext.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-Halaman di DokuWiki Anda telah bertamah atau berubah, dengan detil sebagai berikut:
-
-Date        : @DATE@
-Browser     : @BROWSER@
-IP-Address  : @IPADDRESS@
-Hostname    : @HOSTNAME@
-Old Revision: @OLDPAGE@
-New Revision: @NEWPAGE@
-Edit Summary: @SUMMARY@
-User        : @USER@
-
-@DIFF@
diff --git a/wiki/inc/lang/id/newpage.txt b/wiki/inc/lang/id/newpage.txt
deleted file mode 100644
index 8d3f99d..0000000
--- a/wiki/inc/lang/id/newpage.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Topik ini belum tersedia ======
-
-Belum ada artikel di halaman ini. Anda dapat membuat tulisan-tulisan baru di halaman ini dengan menekan tombol "Buat Halaman Baru" (lihat dibagian bawah...!)
diff --git a/wiki/inc/lang/id/norev.txt b/wiki/inc/lang/id/norev.txt
deleted file mode 100644
index 5244f83..0000000
--- a/wiki/inc/lang/id/norev.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Revisi tidak tersedia ======
-
-Revisi yang diinginkan tidak ada. Gunakan tombol ''Revisi Lama'' untuk menampilkan daftar revisi lama dari dokumen ini.
-
diff --git a/wiki/inc/lang/id/password.txt b/wiki/inc/lang/id/password.txt
deleted file mode 100644
index 285915c..0000000
--- a/wiki/inc/lang/id/password.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-Hi @FULLNAME@!
-
-Berikut data Anda untuk @TITLE@ di @DOKUWIKIURL@
-
-Login    : @LOGIN@
-Password : @PASSWORD@
diff --git a/wiki/inc/lang/id/preview.txt b/wiki/inc/lang/id/preview.txt
deleted file mode 100644
index 1621946..0000000
--- a/wiki/inc/lang/id/preview.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Preview ======
-
-Ini adalah preview tentang bagimana tulisan Anda akan ditampilkan. Ingat: tulisan ini **belum disimpan**!
-
diff --git a/wiki/inc/lang/id/pwconfirm.txt b/wiki/inc/lang/id/pwconfirm.txt
deleted file mode 100644
index a787792..0000000
--- a/wiki/inc/lang/id/pwconfirm.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-Hai @FULLNAME@!
-
-Seseorang telah meminta password baru untuk @TITLE@ Anda login ke @DOKUWIKIURL@
-
-Jika Anda tidak meminta password baru, mohon mengacuhkan email ini.
-
-Untuk mengkonfirmasi bahwa permintaan tersebut adalah benar dari Anda, silahkan gunakan link dibawah.
-
-@CONFIRM@
diff --git a/wiki/inc/lang/id/read.txt b/wiki/inc/lang/id/read.txt
deleted file mode 100644
index f78c0eb..0000000
--- a/wiki/inc/lang/id/read.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-Halaman ini hanya bisa dibaca. Anda bisa melihat sumbernya, tetapi tidak diperkenankan untuk mengubah. Hubungi administrator jika menemukan kesalahan pada halaman ini.
-
diff --git a/wiki/inc/lang/id/recent.txt b/wiki/inc/lang/id/recent.txt
deleted file mode 100644
index f7cf244..0000000
--- a/wiki/inc/lang/id/recent.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== Perubahan ======
-
-Berikut ini adalah halaman-halaman yang baru saja diubah.
-
-
diff --git a/wiki/inc/lang/id/register.txt b/wiki/inc/lang/id/register.txt
deleted file mode 100644
index dd8c578..0000000
--- a/wiki/inc/lang/id/register.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Mendaftar sebagai anggota baru ======
-
-Isikan semua informasi dibawah ini untuk membuat account baru di wiki ini. Pastikan Anda telah mengisikan **alamat email yang valid**, karena password akan dikirim melalui email ini. Nama login harus sesuai dengan aturan [[doku>pagename|pagename]].
-
diff --git a/wiki/inc/lang/id/registermail.txt b/wiki/inc/lang/id/registermail.txt
deleted file mode 100644
index 5943e35..0000000
--- a/wiki/inc/lang/id/registermail.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-User baru telah mendaftar. Berikut detailnya:
-
-User name : @NEWUSER@
-Full name : @NEWNAME@
-E-mail : @NEWEMAIL@
-
-Date : @DATE@
-Browser : @BROWSER@
-IP-Address : @IPADDRESS@
-Hostname : @HOSTNAME@
diff --git a/wiki/inc/lang/id/resendpwd.txt b/wiki/inc/lang/id/resendpwd.txt
deleted file mode 100644
index 276b292..0000000
--- a/wiki/inc/lang/id/resendpwd.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Kirim Password Baru ======
-
-Masukkan nama user Anda pada form dibawah untuk permintaan perubahan password account Anda di Wiki ini. Link konfirmasi akan dikirimkan melalui alamat email Anda sewaktu registrasi.
diff --git a/wiki/inc/lang/id/resetpwd.txt b/wiki/inc/lang/id/resetpwd.txt
deleted file mode 100644
index 6ab26c8..0000000
--- a/wiki/inc/lang/id/resetpwd.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Atur sandi baru ====== 
-
-Silakan masukkan sandi baru untuk akun Anda di wiki ini.
\ No newline at end of file
diff --git a/wiki/inc/lang/id/revisions.txt b/wiki/inc/lang/id/revisions.txt
deleted file mode 100644
index d82b273..0000000
--- a/wiki/inc/lang/id/revisions.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Revisi Lama ======
-
-Ini adalah revisi-revisi lama dari dokumen ini. Untuk mengaktifkan kembali revisi lama, pilih dokumen revisi, kemudikan tekan "Edit halaman ini" lalu Simpan.
-
diff --git a/wiki/inc/lang/id/searchpage.txt b/wiki/inc/lang/id/searchpage.txt
deleted file mode 100644
index c03b6d7..0000000
--- a/wiki/inc/lang/id/searchpage.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Pencarian ======
-
-Anda dapat menemukan hasil pencarian dibawah ini. @CREATEPAGEINFO@
-
diff --git a/wiki/inc/lang/id/showrev.txt b/wiki/inc/lang/id/showrev.txt
deleted file mode 100644
index 27f0c64..0000000
--- a/wiki/inc/lang/id/showrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**Ini adalah dokumen versi lama!**
-----
diff --git a/wiki/inc/lang/id/stopwords.txt b/wiki/inc/lang/id/stopwords.txt
deleted file mode 100644
index 73713c8..0000000
--- a/wiki/inc/lang/id/stopwords.txt
+++ /dev/null
@@ -1,37 +0,0 @@
-# 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/
-about
-are
-and
-you
-your
-them
-their
-com
-for
-from
-into
-how
-that
-the
-this
-was
-what
-when
-where
-who
-will
-with
-und
-the
-www
-yang
-dan
-adalah
-untuk
-lalu
-maka
-kemudian
-jika
diff --git a/wiki/inc/lang/id/subscr_digest.txt b/wiki/inc/lang/id/subscr_digest.txt
deleted file mode 100644
index 2a5176b..0000000
--- a/wiki/inc/lang/id/subscr_digest.txt
+++ /dev/null
@@ -1,14 +0,0 @@
-Hei!
-
-Halaman @PAGE@ di wiki @TITLE@ telah disunting.
-Berikut perubahannya:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-Revisi lama: @OLDPAGE@
-
-Revisi baru: @NEWPAGE@
-
-Untuk menonaktifkan pemberitahuan ini, masuk ke wiki di @DOKUWIKIURL@ kemudian kunjungi @SUBSCRIBE@ dan halaman batal berlangganan dan/atau namespace yang diubah.
diff --git a/wiki/inc/lang/id/updateprofile.txt b/wiki/inc/lang/id/updateprofile.txt
deleted file mode 100644
index b7f71a1..0000000
--- a/wiki/inc/lang/id/updateprofile.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Ubah Profil Account Anda ======
-
-Anda hanya perlu mengisikan field yang ingin Anda ubah. Anda tidak dapat mengubah username Anda.
diff --git a/wiki/inc/lang/id/uploadmail.txt b/wiki/inc/lang/id/uploadmail.txt
deleted file mode 100644
index bb5f5e8..0000000
--- a/wiki/inc/lang/id/uploadmail.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-Sebuah file telah diupload di DokuWiki Anda. Berikut detailnya:
-
-File : @MEDIA@
-Date : @DATE@
-Browser : @BROWSER@
-IP-Address : @IPADDRESS@
-Hostname : @HOSTNAME@
-Size : @SIZE@
-MIME Type : @MIME@
-User : @USER@
diff --git a/wiki/inc/lang/is/adminplugins.txt b/wiki/inc/lang/is/adminplugins.txt
deleted file mode 100644
index ce7b9d3..0000000
--- a/wiki/inc/lang/is/adminplugins.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Aðrar viðbætur =====
\ No newline at end of file
diff --git a/wiki/inc/lang/is/diff.txt b/wiki/inc/lang/is/diff.txt
deleted file mode 100644
index a6d246a..0000000
--- a/wiki/inc/lang/is/diff.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-===== Breytingar =====
-
-Hér sést hvað hefur breyst á milli útgáfna.
\ No newline at end of file
diff --git a/wiki/inc/lang/is/jquery.ui.datepicker.js b/wiki/inc/lang/is/jquery.ui.datepicker.js
deleted file mode 100644
index b15f37a..0000000
--- a/wiki/inc/lang/is/jquery.ui.datepicker.js
+++ /dev/null
@@ -1,45 +0,0 @@
-/* Icelandic initialisation for the jQuery UI date picker plugin. */
-/* Written by Haukur H. Thorsson (haukur@eskill.is). */
-( function( factory ) {
-	if ( typeof define === "function" && define.amd ) {
-
-		// AMD. Register as an anonymous module.
-		define( [ "../widgets/datepicker" ], factory );
-	} else {
-
-		// Browser globals
-		factory( jQuery.datepicker );
-	}
-}( function( datepicker ) {
-
-datepicker.regional.is = {
-	closeText: "Loka",
-	prevText: "&#x3C; Fyrri",
-	nextText: "Næsti &#x3E;",
-	currentText: "Ã dag",
-	monthNames: [ "Janúar","Febrúar","Mars","Apríl","Maí","Júní",
-	"Júlí","Ãgúst","September","Október","Nóvember","Desember" ],
-	monthNamesShort: [ "Jan","Feb","Mar","Apr","Maí","Jún",
-	"Júl","Ãgú","Sep","Okt","Nóv","Des" ],
-	dayNames: [
-		"Sunnudagur",
-		"Mánudagur",
-		"Þriðjudagur",
-		"Miðvikudagur",
-		"Fimmtudagur",
-		"Föstudagur",
-		"Laugardagur"
-	],
-	dayNamesShort: [ "Sun","Mán","Þri","Mið","Fim","Fös","Lau" ],
-	dayNamesMin: [ "Su","Má","Þr","Mi","Fi","Fö","La" ],
-	weekHeader: "Vika",
-	dateFormat: "dd.mm.yy",
-	firstDay: 0,
-	isRTL: false,
-	showMonthAfterYear: false,
-	yearSuffix: "" };
-datepicker.setDefaults( datepicker.regional.is );
-
-return datepicker.regional.is;
-
-} ) );
diff --git a/wiki/inc/lang/is/lang.php b/wiki/inc/lang/is/lang.php
deleted file mode 100644
index 0af4c57..0000000
--- a/wiki/inc/lang/is/lang.php
+++ /dev/null
@@ -1,181 +0,0 @@
-<?php
-/**
- * is language file
- *
- * This file was initially built by fetching translations from other
- * Wiki projects. See the @url lines below. Additional translations
- * and fixes where done for DokuWiki by the people mentioned in the
- * lines starting with @author
- *
- * @url http://svn.wikimedia.org/viewvc/mediawiki/trunk/phase3/languages/messages/MessagesIs.php?view=co
- * @author Hrannar Baldursson <hrannar.baldursson@gmail.com>
- * @author Ólafur Gunnlaugsson <oli@audiotools.com>
- * @author Erik Bjørn Pedersen <erik.pedersen@shaw.ca>
- */
-$lang['encoding']              = 'utf-8';
-$lang['direction']             = 'ltr';
-$lang['doublequoteopening']    = '„';
-$lang['doublequoteclosing']    = '“';
-$lang['singlequoteopening']    = '‚';
-$lang['singlequoteclosing']    = '‘';
-$lang['apostrophe']            = '\'';
-$lang['btn_edit']              = 'Breyta þessari síðu';
-$lang['btn_source']            = 'Skoða wikikóða';
-$lang['btn_show']              = 'Sýna síðu';
-$lang['btn_create']            = 'Búa til þessa síðu';
-$lang['btn_search']            = 'Leit';
-$lang['btn_save']              = 'Vista';
-$lang['btn_preview']           = 'Forskoða';
-$lang['btn_top']               = 'Efst á síðu';
-$lang['btn_newer']             = '<< nýrra';
-$lang['btn_older']             = 'eldra >>';
-$lang['btn_revs']              = 'breytingaskrá';
-$lang['btn_recent']            = 'Nýlegar breytingar';
-$lang['btn_upload']            = 'Hlaða upp';
-$lang['btn_cancel']            = 'Hætta við';
-$lang['btn_index']             = 'Atriðaskrá';
-$lang['btn_secedit']           = 'Breyta';
-$lang['btn_login']             = 'Innskrá';
-$lang['btn_logout']            = 'Útskrá';
-$lang['btn_admin']             = 'Stjórnandi';
-$lang['btn_update']            = 'Uppfæra';
-$lang['btn_delete']            = 'Eyða';
-$lang['btn_back']              = 'Til baka';
-$lang['btn_backlink']          = 'Hvað tengist hingað';
-$lang['btn_subscribe']         = 'Vakta';
-$lang['btn_profile']           = 'Uppfæra notanda';
-$lang['btn_reset']             = 'Endurstilla';
-$lang['btn_draft']             = 'Breyta uppkasti';
-$lang['btn_recover']           = 'Endurheimta uppkast';
-$lang['btn_draftdel']          = 'Eyða uppkasti';
-$lang['btn_revert']            = 'Endurheimta';
-$lang['btn_register']          = 'Skráning';
-$lang['loggedinas']            = 'Innskráning sem:';
-$lang['user']                  = 'Notendanafn';
-$lang['pass']                  = 'Aðgangsorð';
-$lang['newpass']               = 'Nýtt aðgangsorð';
-$lang['oldpass']               = 'Staðfesta núverandi (gamla) aðgangsorðið';
-$lang['passchk']               = 'Aðgangsorð (aftur)';
-$lang['remember']              = 'Muna.';
-$lang['fullname']              = 'Fullt nafn þitt*';
-$lang['email']                 = 'Tölvupóstfangið þitt*';
-$lang['profile']               = 'Notendastillingar';
-$lang['badlogin']              = 'Því miður, notandanafn eða aðgangsorð var rangur.';
-$lang['minoredit']             = 'Minniháttar breyting';
-$lang['draftdate']             = 'Uppkast vistað sjálfkrafa';
-$lang['nosecedit']             = 'Síðunni var breytt á meðan, upplýsingar um svæðið voru úreltar og öll síðan því endurhlaðin.';
-$lang['regmissing']            = 'Afsakið, en þú verður að fylla út í allar eyður.';
-$lang['reguexists']            = 'Afsakið, notandi með þessu nafni er þegar skráður inn.';
-$lang['regsuccess']            = 'Notandi hefur verið búinn til og aðgangsorð sent í tölvupósti.';
-$lang['regsuccess2']           = 'Notandi hefur verið búinn til.';
-$lang['regmailfail']           = 'Það lítur út fyrir villu við sendingu aðgangsorðs. Vinsamlegast hafðu samband við stjórnanda.';
-$lang['regbadmail']            = 'Uppgefinn tölvupóstur virðist ógildur - teljir þú þetta vera villu, hafðu þá samband við stjórnanda.';
-$lang['regbadpass']            = 'Aðgangsorðin tvö eru ekki eins, vinsamlegast reyndu aftur.';
-$lang['regpwmail']             = 'DokuWiki aðgangsorðið þitt';
-$lang['reghere']               = 'Ertu ekki með reikning? Skráðu þig';
-$lang['profna']                = 'Þessi wiki leyfir ekki breytingar á notendaupplýsingum';
-$lang['profnochange']          = 'Enga breytingar vistaðar';
-$lang['profnoempty']           = 'Það er ekki leyfilegt að skilja nafn og póstfang eftir óútfyllt';
-$lang['profchanged']           = 'Notendaupplýsingum breytt';
-$lang['pwdforget']             = 'Gleymt aðgangsorð? Fáðu nýtt';
-$lang['resendna']              = 'Þessi wiki styður ekki endursendingar aðgangsorðs';
-$lang['resendpwdmissing']      = 'Afsakið, þú verður að út eyðublaðið allt';
-$lang['resendpwdnouser']       = 'Afsakið, notandi finnst ekki.';
-$lang['resendpwdbadauth']      = 'Afsakið, þessi sannvottunorð er ekki gild. Gakktu úr skugga um að þú notaðir að ljúka staðfesting hlekkur.';
-$lang['resendpwdconfirm']      = 'Staðfesting hlekkur hefur verið send með tölvupósti.';
-$lang['resendpwdsuccess']      = 'Nýja aðgangsorðið hefur verið sent með tölvupósti.';
-$lang['license']               = 'Nema annað sé tekið fram, efni á þessari wiki er leyfð undir eftirfarandi leyfi:';
-$lang['licenseok']             = 'Athugið: Með því að breyta þessari síðu samþykkir þú að leyfisveitandi efni undir eftirfarandi leyfi:';
-$lang['searchmedia']           = 'Leit skrárheiti:';
-$lang['searchmedia_in']        = 'Leit í %s';
-$lang['txt_upload']            = 'Veldu skrá til innhleðslu:';
-$lang['txt_filename']          = 'Innhlaða sem (valfrjálst):';
-$lang['txt_overwrt']           = 'Skrifa yfir skrá sem þegar er til';
-$lang['lockedby']              = 'Læstur af:';
-$lang['lockexpire']            = 'Læsing rennur út eftir:';
-$lang['nothingfound']          = 'Ekkert fannst';
-$lang['mediaselect']           = 'Miðlaskrá';
-$lang['uploadsucc']            = 'Innhlaðning tókst';
-$lang['uploadfail']            = 'Villa í innhlaðningu';
-$lang['uploadwrong']           = 'Innhleðslu neitað. Skrár með þessari endingu eru ekki leyfðar.';
-$lang['uploadexist']           = 'Skrá var þegar til staðar.';
-$lang['uploadbadcontent']      = 'Innhlaðið efni var ekki við að %s skrárendingu.';
-$lang['uploadspam']            = 'Þessi innhlaðning er útilokuð vegna ruslpósts svarturlisti.';
-$lang['uploadxss']             = 'Þessi innhlaðning er útilokuð vegna hugsanlega skaðlegum efni.';
-$lang['uploadsize']            = 'Innhlaðið skrá var of stór. (Hámark eru %s)';
-$lang['deletesucc']            = 'Skrá %s hefur verið eytt.';
-$lang['namespaces']            = 'Nafnrýmar';
-$lang['mediafiles']            = 'Tiltækar skrár í';
-$lang['js']['searchmedia']     = 'Leita að skrám';
-$lang['js']['hidedetails']     = 'Fela upplýsingar';
-$lang['js']['linkwiz']         = 'Tengill-leiðsagnarforrit';
-$lang['js']['linkto']          = 'Tengja';
-$lang['js']['del_confirm']     = 'à örugglega að eyða valdar skrár?';
-$lang['mediaview']             = 'Sjá upprunalega skrá';
-$lang['mediaroot']             = 'rót';
-$lang['mediaextchange']        = 'Skrárending var breytt úr .%s til .%s!';
-$lang['reference']             = 'Tilvísanir til';
-$lang['ref_inuse']             = 'Ekki hægt að eyða skráin, því það er enn notað af eftirfarandi síðum:';
-$lang['ref_hidden']            = 'Sumar tilvísanir eru að síður sem þú hefur ekki leyfi til að lesa';
-$lang['hits']                  = 'Samsvör';
-$lang['quickhits']             = 'Samsvörun síðunöfn';
-$lang['toc']                   = 'Efnisyfirlit';
-$lang['current']               = 'nú';
-$lang['yours']                 = 'Þín útgáfa';
-$lang['diff']                  = 'Sýna ágreiningur til núverandi endurskoðun';
-$lang['diff2']                 = 'Sýna ágreiningur meðal valið endurskoðun';
-$lang['line']                  = 'Lína';
-$lang['breadcrumb']            = 'Snefill:';
-$lang['youarehere']            = 'Þú ert hér:';
-$lang['lastmod']               = 'Síðast breytt:';
-$lang['by']                    = 'af';
-$lang['deleted']               = 'eytt';
-$lang['created']               = 'myndað';
-$lang['restored']              = 'Breytt aftur til fyrri útgáfu (%s)';
-$lang['external_edit']         = 'utanaðkomandi breyta';
-$lang['summary']               = 'Forskoða';
-$lang['noflash']               = 'Það þarf <a href="http://www.adobe.com/products/flashplayer/">Adobe Flash viðbót</a> til að sýna sumt efnið á þessari síðu';
-$lang['download']              = 'Hlaða niður til kóðabút';
-$lang['mail_newpage']          = 'síðu bætt við:';
-$lang['mail_changed']          = 'síðu breytt:';
-$lang['mail_new_user']         = 'nýr notandi:';
-$lang['mail_upload']           = 'Innhlaðið skrá:';
-$lang['qb_bold']               = 'Feitletraður texti';
-$lang['qb_italic']             = 'Skáletraður texti';
-$lang['qb_underl']             = 'Undirstrikaður texti';
-$lang['qb_code']               = 'Kóðatraður texti';
-$lang['qb_strike']             = 'Yfirstrikaður texti';
-$lang['qb_h1']                 = 'Fyrsta stigs fyrirsögn';
-$lang['qb_h2']                 = 'Annars stigs fyrirsögn';
-$lang['qb_h3']                 = 'Þriðja stigs fyrirsögn';
-$lang['qb_h4']                 = 'Fjórða stigs fyrirsögn';
-$lang['qb_h5']                 = 'Fimmta stigs fyrirsögn';
-$lang['qb_h']                  = 'Fyrirsögn';
-$lang['qb_hs']                 = 'Veldu fyrirsögn';
-$lang['qb_hplus']              = 'Hærra stigs fyrirsögn';
-$lang['qb_hminus']             = 'Lægri stigs fyrirsögn';
-$lang['qb_hequal']             = 'Sama stigs fyrirsögn';
-$lang['qb_link']               = 'Innri tengill';
-$lang['qb_extlink']            = 'Ytri tengill (muna að setja http:// á undan)';
-$lang['qb_hr']                 = 'Lárétt lína (notist sparlega)';
-$lang['qb_ol']                 = 'Númeraðaðan listatriði';
-$lang['qb_ul']                 = 'Ónúmeraðaðan listatriði';
-$lang['qb_media']              = 'Bæta inn myndum og öðrum skrám';
-$lang['qb_sig']                = 'Undirskrift þín auk tímasetningu';
-$lang['qb_smileys']            = 'Broskallar';
-$lang['qb_chars']              = 'Sértækir stafir';
-$lang['metaedit']              = 'Breyta lýsigögnum';
-$lang['metasaveerr']           = 'Vistun lýsigagna mistókst';
-$lang['metasaveok']            = 'Lýsigögn vistuð';
-$lang['btn_img_backto']            = 'Aftur til %s';
-$lang['img_title']             = 'Heiti:';
-$lang['img_caption']           = 'Skýringartexti:';
-$lang['img_date']              = 'Dagsetning:';
-$lang['img_fname']             = 'Skrárheiti:';
-$lang['img_fsize']             = 'Stærð:';
-$lang['img_artist']            = 'Myndsmiður:';
-$lang['img_copyr']             = 'Útgáfuréttur:';
-$lang['img_format']            = 'Forsnið:';
-$lang['img_camera']            = 'Myndavél:';
-$lang['img_keywords']          = 'Lykilorðir:';
-$lang['i_retry']               = 'Reyna aftur';
diff --git a/wiki/inc/lang/is/login.txt b/wiki/inc/lang/is/login.txt
deleted file mode 100644
index 81e7e5e..0000000
--- a/wiki/inc/lang/is/login.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-===== Innskráning =====
-
-Þú ert ekki skráður inn! Skráuðu þig inn hér að neðan. Athugaðu að vafrinn sem að þú notar verður að styðja móttöku smákaka.
\ No newline at end of file
diff --git a/wiki/inc/lang/is/recent.txt b/wiki/inc/lang/is/recent.txt
deleted file mode 100644
index 7d3cf57..0000000
--- a/wiki/inc/lang/is/recent.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-===== Nýlegar Breytingar =====
-
-Eftirfarandi síðum hefur nýlega verið breytt.
\ No newline at end of file
diff --git a/wiki/inc/lang/is/resendpwd.txt b/wiki/inc/lang/is/resendpwd.txt
deleted file mode 100644
index b847b1d..0000000
--- a/wiki/inc/lang/is/resendpwd.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Senda nýtt aðgangsorð ======
-
-Vinsamlegast sláðu inn notendanafn þitt í formið hér fyrir neðan til að biðja um nýtt aðgangsorð fyrir reikninginn þinn í þessu wiki. A staðfesting hlekkur verður sendast á skráð netfang.
\ No newline at end of file
diff --git a/wiki/inc/lang/it/admin.txt b/wiki/inc/lang/it/admin.txt
deleted file mode 100644
index 95a611e..0000000
--- a/wiki/inc/lang/it/admin.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Amministrazione ======
-
-Qui sotto puoi trovare una lista delle possibili azioni amministrative attualmente disponibili in Dokuwiki.
-
diff --git a/wiki/inc/lang/it/adminplugins.txt b/wiki/inc/lang/it/adminplugins.txt
deleted file mode 100644
index 4f17d6d..0000000
--- a/wiki/inc/lang/it/adminplugins.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Plugin aggiuntivi =====
\ No newline at end of file
diff --git a/wiki/inc/lang/it/backlinks.txt b/wiki/inc/lang/it/backlinks.txt
deleted file mode 100644
index ad5a9c2..0000000
--- a/wiki/inc/lang/it/backlinks.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Puntano qui ======
-
-Questa è una lista delle pagine che sembrano avere un collegamento alla pagina attuale.
-
diff --git a/wiki/inc/lang/it/conflict.txt b/wiki/inc/lang/it/conflict.txt
deleted file mode 100644
index bcb90d2..0000000
--- a/wiki/inc/lang/it/conflict.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-====== Esiste una versione più recente ======
-
-Esiste una versione più recente del documento che hai modificato. Questo può accadere quando un altro utente ha già modificato il documento durante le tue modifiche.
-
-Esamina le differenze mostrate di seguito, quindi decidi quale versione mantenere. Se scegli ''Salva'', la tua versione verrà salvata. Clicca su ''Annulla'' per mantenere la versione attuale.
-
diff --git a/wiki/inc/lang/it/denied.txt b/wiki/inc/lang/it/denied.txt
deleted file mode 100644
index 577d081..0000000
--- a/wiki/inc/lang/it/denied.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Accesso negato ======
-
-Non hai i diritti per continuare.
-
diff --git a/wiki/inc/lang/it/diff.txt b/wiki/inc/lang/it/diff.txt
deleted file mode 100644
index 5a41eaa..0000000
--- a/wiki/inc/lang/it/diff.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Differenze ======
-
-Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.
-
diff --git a/wiki/inc/lang/it/draft.txt b/wiki/inc/lang/it/draft.txt
deleted file mode 100644
index 479d0fa..0000000
--- a/wiki/inc/lang/it/draft.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-====== Trovata Bozza ======
-
-La tua ultima sessione di modifica su questa pagina non è stata completata correttamente. DokuWiki ha salvato in automatico una bozza durante il tuo lavoro, che puoi ora utilizzare per continuare le tue modifiche. Di seguito puoi trovare i dati che sono stati salvati dalla tua ultima sessione.
-
-Decidi se vuoi //recuperare// la sessione di modifica, //eliminare// la bozza salavata in automatico oppure //annullare// le modifiche.
-
diff --git a/wiki/inc/lang/it/edit.txt b/wiki/inc/lang/it/edit.txt
deleted file mode 100644
index 8f2ba97..0000000
--- a/wiki/inc/lang/it/edit.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-Modifica la pagina e clicca su ''Salva''. Vedi [[wiki:syntax]] per la sintassi riconosciuta dal Wiki. Modifica questa pagina solo se puoi **apportare dei miglioramenti**. Se vuoi solo fare degli esperimenti ed imparare come fare i primi passi usa [[playground:playground]].
-
diff --git a/wiki/inc/lang/it/editrev.txt b/wiki/inc/lang/it/editrev.txt
deleted file mode 100644
index 5023200..0000000
--- a/wiki/inc/lang/it/editrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**Hai caricato una revisione precedente del documento!** Se salvi questa pagina creerai una nuova versione con questi dati.
-----
\ No newline at end of file
diff --git a/wiki/inc/lang/it/index.txt b/wiki/inc/lang/it/index.txt
deleted file mode 100644
index 52c6fbc..0000000
--- a/wiki/inc/lang/it/index.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Indice ======
-
-Questo è un indice di tutte le pagine disponibili ordinate per [[doku>namespaces|categorie]].
-
diff --git a/wiki/inc/lang/it/install.html b/wiki/inc/lang/it/install.html
deleted file mode 100644
index 9d0e57f..0000000
--- a/wiki/inc/lang/it/install.html
+++ /dev/null
@@ -1,24 +0,0 @@
-<p>Questa pagina ti assisterà durante l'installazione e la prima configurazione di
-<a href="http://dokuwiki.org">Dokuwiki</a>. Ulteriori informazioni sulla
-procedura di installazione sono reperibili nella
-<a href="http://dokuwiki.org/installer">pagina di documentazione</a>.</p>
-
-<p>DokuWiki utilizza dei normali file per la memorizzazione delle pagine del wiki e
-delle altre informazioni associate a tali pagine (es. immagini, indici per la ricerca, vecchie
-revisioni, ecc.).  Per poter operare correttamente DokuWiki
-<strong>deve</strong> accedere in scrittura alle directory che contengono tali
-file.  La procedura di installazione non è in grado di impostare i permessi sulle directory. Questo
-deve normalmente essere fatto direttamente da linea di comando oppure, se stai usando un servizio di hosting,
-attraverso FTP o dal pannello di controllo del servizio di hosting (es. cPanel).</p>
-
-<p>Questa procedura di installazione imposterà la configurazione di DokuWiki per l'uso di
-<abbr title="lista controllo accessi">ACL</abbr>, che consente all'amministratore di
-collegarsi e accedere al menu di amministrazione di DokuWiki per installare plugin, gestire
-utenti, gestire gli accessi alle pagine wiki e modificare le impostazioni del wiki.
-Non è necessario per il funzionamento di DokuWiki, ma renderà Dokuwiki più facile
-da amministrare.</p>
-
-<p>Gli utenti esperti o con particolari esigenze di installazione dovrebbero far riferimento ai
-seguenti link per dettagli sulle
-<a href="http://dokuwiki.org/install">istruzioni per l'installazione</a>
-e sui <a href="http://dokuwiki.org/config">parametri di configurazione</a>.</p>
diff --git a/wiki/inc/lang/it/jquery.ui.datepicker.js b/wiki/inc/lang/it/jquery.ui.datepicker.js
deleted file mode 100644
index d67cb6c..0000000
--- a/wiki/inc/lang/it/jquery.ui.datepicker.js
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Italian initialisation for the jQuery UI date picker plugin. */
-/* Written by Antonello Pasella (antonello.pasella@gmail.com). */
-( function( factory ) {
-	if ( typeof define === "function" && define.amd ) {
-
-		// AMD. Register as an anonymous module.
-		define( [ "../widgets/datepicker" ], factory );
-	} else {
-
-		// Browser globals
-		factory( jQuery.datepicker );
-	}
-}( function( datepicker ) {
-
-datepicker.regional.it = {
-	closeText: "Chiudi",
-	prevText: "&#x3C;Prec",
-	nextText: "Succ&#x3E;",
-	currentText: "Oggi",
-	monthNames: [ "Gennaio","Febbraio","Marzo","Aprile","Maggio","Giugno",
-		"Luglio","Agosto","Settembre","Ottobre","Novembre","Dicembre" ],
-	monthNamesShort: [ "Gen","Feb","Mar","Apr","Mag","Giu",
-		"Lug","Ago","Set","Ott","Nov","Dic" ],
-	dayNames: [ "Domenica","Lunedì","Martedì","Mercoledì","Giovedì","Venerdì","Sabato" ],
-	dayNamesShort: [ "Dom","Lun","Mar","Mer","Gio","Ven","Sab" ],
-	dayNamesMin: [ "Do","Lu","Ma","Me","Gi","Ve","Sa" ],
-	weekHeader: "Sm",
-	dateFormat: "dd/mm/yy",
-	firstDay: 1,
-	isRTL: false,
-	showMonthAfterYear: false,
-	yearSuffix: "" };
-datepicker.setDefaults( datepicker.regional.it );
-
-return datepicker.regional.it;
-
-} ) );
diff --git a/wiki/inc/lang/it/lang.php b/wiki/inc/lang/it/lang.php
deleted file mode 100644
index 683ce45..0000000
--- a/wiki/inc/lang/it/lang.php
+++ /dev/null
@@ -1,370 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author damiano <damiano@spagnuolo.eu>
- * @author Torpedo <dgtorpedo@gmail.com>
- * @author Giorgio Vecchiocattivi <giorgio@vecchio.it>
- * @author Roberto Bolli [http://www.rbnet.it/]
- * @author Silvia Sargentoni <polinnia@tin.it>
- * @author Diego Pierotto <ita.translations@tiscali.it>
- * @author Lorenzo Breda <lbreda@gmail.com>
- * @author robocap <robocap1@gmail.com>
- * @author Matteo Carnevali <rekstorm@gmail.com>
- * @author Osman Tekin <osman.tekin93@hotmail.it>
- * @author Jacopo Corbetta <jacopo.corbetta@gmail.com>
- * @author Matteo Pasotti <matteo@xquiet.eu>
- * @author Edmondo Di Tucci <snarchio@gmail.com>
- * @author Claudio Lanconelli <lancos@libero.it>
- * @author Mirko <malisan.mirko@gmail.com>
- * @author Francesco <francesco.cavalli@hotmail.com>
- * @author Fabio <fabioslurp@yahoo.it>
- * @author Maurizio <mcannavo@katamail.com>
- * @author Riccardo <riccardofila@gmail.com>
- * @author Paolo <paolopoz12@gmail.com>
- */
-$lang['encoding']              = 'utf-8';
-$lang['direction']             = 'ltr';
-$lang['doublequoteopening']    = '“';
-$lang['doublequoteclosing']    = 'â€';
-$lang['singlequoteopening']    = '‘';
-$lang['singlequoteclosing']    = '’';
-$lang['apostrophe']            = '’';
-$lang['btn_edit']              = 'Modifica questa pagina';
-$lang['btn_source']            = 'Mostra sorgente';
-$lang['btn_show']              = 'Mostra pagina';
-$lang['btn_create']            = 'Crea questa pagina';
-$lang['btn_search']            = 'Cerca';
-$lang['btn_save']              = 'Salva';
-$lang['btn_preview']           = 'Anteprima';
-$lang['btn_top']               = 'Torna su';
-$lang['btn_newer']             = '<< più recenti';
-$lang['btn_older']             = 'meno recenti >>';
-$lang['btn_revs']              = 'Revisioni precedenti';
-$lang['btn_recent']            = 'Ultime modifiche';
-$lang['btn_upload']            = 'Invia file';
-$lang['btn_cancel']            = 'Annulla';
-$lang['btn_index']             = 'Indice';
-$lang['btn_secedit']           = 'Modifica';
-$lang['btn_login']             = 'Entra';
-$lang['btn_logout']            = 'Esci';
-$lang['btn_admin']             = 'Amministrazione';
-$lang['btn_update']            = 'Aggiorna';
-$lang['btn_delete']            = 'Elimina';
-$lang['btn_back']              = 'Indietro';
-$lang['btn_backlink']          = 'Puntano qui';
-$lang['btn_subscribe']         = 'Sottoscrivi modifiche';
-$lang['btn_profile']           = 'Aggiorna profilo';
-$lang['btn_reset']             = 'Annulla';
-$lang['btn_resendpwd']         = 'Imposta nuova password';
-$lang['btn_draft']             = 'Modifica bozza';
-$lang['btn_recover']           = 'Ripristina bozza';
-$lang['btn_draftdel']          = 'Elimina bozza';
-$lang['btn_revert']            = 'Ripristina';
-$lang['btn_register']          = 'Registrazione';
-$lang['btn_apply']             = 'Applica';
-$lang['btn_media']             = 'Gestore Media';
-$lang['btn_deleteuser']        = 'Rimuovi il mio account';
-$lang['btn_img_backto']        = 'Torna a %s';
-$lang['btn_mediaManager']      = 'Guarda nel gestore media';
-$lang['loggedinas']            = 'Collegato come:';
-$lang['user']                  = 'Nome utente';
-$lang['pass']                  = 'Password';
-$lang['newpass']               = 'Nuova password';
-$lang['oldpass']               = 'Conferma password attuale';
-$lang['passchk']               = 'Ripeti password';
-$lang['remember']              = 'Memorizza nome utente e password';
-$lang['fullname']              = 'Nome completo';
-$lang['email']                 = 'Email';
-$lang['profile']               = 'Profilo utente';
-$lang['badlogin']              = 'Il nome utente o la password non sono validi.';
-$lang['badpassconfirm']        = 'La password è errata';
-$lang['minoredit']             = 'Modifiche minori';
-$lang['draftdate']             = 'Bozza salvata in automatico il';
-$lang['nosecedit']             = 'La pagina è stata modificata nel frattempo; è impossibile modificare solo la sezione scelta, quindi è stata caricata la pagina intera.';
-$lang['searchcreatepage']      = 'Se non hai trovato ciò che stavi cercando, puoi creare o modificare la pagina %s, nominata dopo la tua query.';
-$lang['search_fullresults']    = 'Risultati del testo integrale';
-$lang['js']['search_toggle_tools'] = 'Attiva o disattiva gli strumenti di ricerca';
-$lang['js']['willexpire']      = 'Il tuo blocco su questa pagina scadrà tra circa un minuto.\nPer evitare incongruenze usa il pulsante di anteprima per prolungare il periodo di blocco.';
-$lang['js']['notsavedyet']     = 'Le modifiche non salvate andranno perse.';
-$lang['js']['searchmedia']     = 'Cerca file';
-$lang['js']['keepopen']        = 'Tieni la finestra aperta durante la selezione';
-$lang['js']['hidedetails']     = 'Nascondi Dettagli';
-$lang['js']['mediatitle']      = 'Impostazioni link';
-$lang['js']['mediadisplay']    = 'Tipo link';
-$lang['js']['mediaalign']      = 'Allineamento';
-$lang['js']['mediasize']       = 'Dimensioni immagine';
-$lang['js']['mediatarget']     = 'Target del link';
-$lang['js']['mediaclose']      = 'Chiudi';
-$lang['js']['mediainsert']     = 'Inserisci';
-$lang['js']['mediadisplayimg'] = 'Mostra l\'immagine.';
-$lang['js']['mediadisplaylnk'] = 'Mostra solo il link.';
-$lang['js']['mediasmall']      = 'Versione piccola';
-$lang['js']['mediamedium']     = 'Versione media';
-$lang['js']['medialarge']      = 'Versione grande';
-$lang['js']['mediaoriginal']   = 'Versione originale';
-$lang['js']['medialnk']        = 'Link alla pagina dei dettagli';
-$lang['js']['mediadirect']     = 'Link all\'originale';
-$lang['js']['medianolnk']      = 'No link';
-$lang['js']['medianolink']     = 'Non linkare l\'immagine.';
-$lang['js']['medialeft']       = 'Allinea l\'immagine a sinistra.';
-$lang['js']['mediaright']      = 'Allinea l\'immagine a destra.';
-$lang['js']['mediacenter']     = 'Allinea l\'immagine al centro.';
-$lang['js']['medianoalign']    = 'Non allineare.';
-$lang['js']['nosmblinks']      = 'I collegamenti con le risorse condivise di Windows funzionano solo con Microsoft Internet Explorer.
-È comunque possibile copiare e incollare il collegamento.';
-$lang['js']['linkwiz']         = 'Collegamento guidato';
-$lang['js']['linkto']          = 'Collega a:';
-$lang['js']['del_confirm']     = 'Eliminare veramente questa voce?';
-$lang['js']['restore_confirm'] = 'Vuoi davvero ripristinare questa versione?';
-$lang['js']['media_diff']      = 'Guarda le differenze:';
-$lang['js']['media_diff_both'] = 'Fianco a Fianco';
-$lang['js']['media_diff_opacity'] = 'Trasparire';
-$lang['js']['media_diff_portions'] = 'rubare';
-$lang['js']['media_select']    = 'Seleziona files..';
-$lang['js']['media_upload_btn'] = 'Upload';
-$lang['js']['media_done_btn']  = 'Fatto';
-$lang['js']['media_drop']      = 'Sgancia i files qui per caricarli';
-$lang['js']['media_cancel']    = 'rimuovi';
-$lang['js']['media_overwrt']   = 'Sovrascrivi i file esistenti';
-$lang['search_exact_match']    = 'Corrispondenza esatta';
-$lang['search_starts_with']    = 'Comincia con';
-$lang['search_ends_with']      = 'Finisce con';
-$lang['search_contains']       = 'Contiene';
-$lang['search_custom_match']   = 'Personalizza';
-$lang['search_any_ns']         = 'Qualsiasi spazio dei nomi';
-$lang['search_any_time']       = 'Ogni volta';
-$lang['regmissing']            = 'Devi riempire tutti i campi.';
-$lang['reguexists']            = 'Il nome utente inserito esiste già.';
-$lang['regsuccess']            = 'L\'utente è stato creato. La password è stata spedita via email.';
-$lang['regsuccess2']           = 'L\'utente è stato creato.';
-$lang['regfail']               = 'L\'utente non può essere creato.';
-$lang['regmailfail']           = 'Sembra che ci sia stato un errore nell\'invio della email. Contatta l\'amministratore!';
-$lang['regbadmail']            = 'L\'indirizzo email fornito sembra essere non valido - se pensi che ci sia un errore contatta l\'amministratore';
-$lang['regbadpass']            = 'Le due password inserite non coincidono, prova di nuovo.';
-$lang['regpwmail']             = 'La tua password per DokuWiki';
-$lang['reghere']               = 'Non sei ancora registrato? Registrati qui.';
-$lang['profna']                = 'Questo wiki non supporta modifiche al profilo';
-$lang['profnochange']          = 'Nessuna modifica, niente da aggiornare.';
-$lang['profnoempty']           = 'Nome o indirizzo email vuoti non sono consentiti.';
-$lang['profchanged']           = 'Aggiornamento del profilo utente riuscito.';
-$lang['profnodelete']          = 'Questa wiki non supporta la cancellazione degli utenti';
-$lang['profdeleteuser']        = 'Elimina account';
-$lang['profdeleted']           = 'Il tuo account utente è stato rimosso da questa wiki';
-$lang['profconfdelete']        = 'Voglio rimuovere il mio account da questa wiki. <br/> Questa operazione non può essere annullata.';
-$lang['profconfdeletemissing'] = 'La check box di conferma non è selezionata';
-$lang['proffail']              = 'Il profilo utente non è stato aggiornato.';
-$lang['pwdforget']             = 'Hai dimenticato la password? Richiedine una nuova';
-$lang['resendna']              = 'Questo wiki non supporta l\'invio di nuove password.';
-$lang['resendpwd']             = 'Imposta nuova password per';
-$lang['resendpwdmissing']      = 'Devi riempire tutti i campi.';
-$lang['resendpwdnouser']       = 'Impossibile trovare questo utente nel database.';
-$lang['resendpwdbadauth']      = 'Spiacenti, questo codice di autorizzazione non è valido. Assicurati di aver usato il link completo di conferma.';
-$lang['resendpwdconfirm']      = 'Un link di conferma è stato spedito via email.';
-$lang['resendpwdsuccess']      = 'La nuova password è stata spedita via email.';
-$lang['license']               = 'Ad eccezione da dove è diversamente indicato, il contenuto di questo wiki è soggetto alla seguente licenza:';
-$lang['licenseok']             = 'Nota: modificando questa pagina accetti di rilasciare il contenuto sotto la seguente licenza:';
-$lang['searchmedia']           = 'Cerca file di nome:';
-$lang['searchmedia_in']        = 'Cerca in %s';
-$lang['txt_upload']            = 'Seleziona un file da caricare:';
-$lang['txt_filename']          = 'Carica come (opzionale):';
-$lang['txt_overwrt']           = 'Sovrascrivi file esistente';
-$lang['maxuploadsize']         = 'Upload max. %s per ogni file.';
-$lang['lockedby']              = 'Attualmente bloccato da:';
-$lang['lockexpire']            = 'Il blocco scade alle:';
-$lang['rssfailed']             = 'Si è verificato un errore cercando questo feed: ';
-$lang['nothingfound']          = 'Nessun risultato trovato.';
-$lang['mediaselect']           = 'Selezione dei file';
-$lang['uploadsucc']            = 'Invio riuscito';
-$lang['uploadfail']            = 'Invio fallito. È possibile che si tratti di un problema di permessi.';
-$lang['uploadwrong']           = 'Invio rifiutato. Questa estensione di file non è ammessa';
-$lang['uploadexist']           = 'Il file esiste già. Invio annullato.';
-$lang['uploadbadcontent']      = 'Il tipo di contenuto caricato non corrisponde all\'estensione del file %s.';
-$lang['uploadspam']            = 'Il caricamento è stato bloccato come spam perché presente nella lista nera.';
-$lang['uploadxss']             = 'Il caricamento è stato bloccato perchè il contenuto potrebbe essere un virus o presentare problemi di sicurezza.';
-$lang['uploadsize']            = 'Il file caricato è troppo grande. (massimo %s)';
-$lang['deletesucc']            = 'Il file "%s" è stato eliminato.';
-$lang['deletefail']            = '"%s" non può essere eliminato - verifica i permessi.';
-$lang['mediainuse']            = 'Il file "%s" non è stato eliminato - è ancora in uso.';
-$lang['namespaces']            = 'Categorie';
-$lang['mediafiles']            = 'File disponibili in';
-$lang['accessdenied']          = 'Non sei autorizzato a vedere questa pagina.';
-$lang['mediausage']            = 'Usa la seguente sintassi per riferirti a questo file:';
-$lang['mediaview']             = 'Mostra file originale';
-$lang['mediaroot']             = 'directory principale';
-$lang['mediaupload']           = 'Carica un file nella categoria attuale. Per creare sottocategorie, falle precedere dal nome del file nella casella "Carica come", separandole da due punti (:).';
-$lang['mediaextchange']        = 'Estensione del file modificata da .%s a .%s!';
-$lang['reference']             = 'Riferimenti a';
-$lang['ref_inuse']             = 'Il file non può essere eliminato in quanto è ancora utilizzato dalle seguenti pagine:';
-$lang['ref_hidden']            = 'Sono presenti alcuni riferimenti a pagine per le quali non hai i permessi di lettura';
-$lang['hits']                  = 'Occorrenze trovate';
-$lang['quickhits']             = 'Pagine trovate';
-$lang['toc']                   = 'Indice';
-$lang['current']               = 'versione attuale';
-$lang['yours']                 = 'la tua versione';
-$lang['diff']                  = 'differenze con la versione attuale';
-$lang['diff2']                 = 'differenze tra le versioni selezionate';
-$lang['difflink']              = 'Link a questa pagina di confronto';
-$lang['diff_type']             = 'Guarda le differenze:';
-$lang['diff_inline']           = 'In linea';
-$lang['diff_side']             = 'Fianco a Fianco';
-$lang['diffprevrev']           = 'Revisione precedente';
-$lang['diffnextrev']           = 'Prossima revisione';
-$lang['difflastrev']           = 'Ultima revisione';
-$lang['diffbothprevrev']       = 'Entrambe le parti precedenti la revisione';
-$lang['diffbothnextrev']       = 'Entrambe le parti successive la revisione';
-$lang['line']                  = 'Linea';
-$lang['breadcrumb']            = 'Traccia:';
-$lang['youarehere']            = 'Ti trovi qui:';
-$lang['lastmod']               = 'Ultima modifica:';
-$lang['by']                    = 'da';
-$lang['deleted']               = 'eliminata';
-$lang['created']               = 'creata';
-$lang['restored']              = 'versione precedente ripristinata (%s)';
-$lang['external_edit']         = 'modifica esterna';
-$lang['summary']               = 'Oggetto della modifica';
-$lang['noflash']               = 'E\' necessario <a href="http://www.adobe.com/products/flashplayer/">il plugin Adobe Flash</a> per visualizzare questo contenuto.';
-$lang['download']              = 'Scarica lo "snippet"';
-$lang['tools']                 = 'Strumenti';
-$lang['user_tools']            = 'Strumenti Utente';
-$lang['site_tools']            = 'Strumenti Sito';
-$lang['page_tools']            = 'Strumenti Pagina';
-$lang['skip_to_content']       = 'salta al contenuto';
-$lang['sidebar']               = 'Barra laterale';
-$lang['mail_newpage']          = 'pagina aggiunta:';
-$lang['mail_changed']          = 'pagina modificata:';
-$lang['mail_subscribe_list']   = 'pagine modificate nella categoria:';
-$lang['mail_new_user']         = 'nuovo utente:';
-$lang['mail_upload']           = 'file caricato:';
-$lang['changes_type']          = 'Guarda cambiamenti di';
-$lang['pages_changes']         = 'Pagine';
-$lang['media_changes']         = 'File multimediali';
-$lang['both_changes']          = 'Sia pagine che media files';
-$lang['qb_bold']               = 'Grassetto';
-$lang['qb_italic']             = 'Corsivo';
-$lang['qb_underl']             = 'Sottolineato';
-$lang['qb_code']               = 'Codice';
-$lang['qb_strike']             = 'Barrato';
-$lang['qb_h1']                 = 'Intestazione di livello 1';
-$lang['qb_h2']                 = 'Intestazione di livello 2';
-$lang['qb_h3']                 = 'Intestazione di livello 3';
-$lang['qb_h4']                 = 'Intestazione di livello 4';
-$lang['qb_h5']                 = 'Intestazione di livello 5';
-$lang['qb_h']                  = 'Titolo';
-$lang['qb_hs']                 = 'Seleziona il titolo';
-$lang['qb_hplus']              = 'Titolo superiore';
-$lang['qb_hminus']             = 'Titolo inferiore';
-$lang['qb_hequal']             = 'Titolo dello stesso livello';
-$lang['qb_link']               = 'Collegamento interno';
-$lang['qb_extlink']            = 'Collegamento esterno';
-$lang['qb_hr']                 = 'Riga orizzontale';
-$lang['qb_ol']                 = 'Elenco numerato';
-$lang['qb_ul']                 = 'Elenco puntato';
-$lang['qb_media']              = 'Inserisci immagini o altri file';
-$lang['qb_sig']                = 'Inserisci la firma';
-$lang['qb_smileys']            = 'Smiley';
-$lang['qb_chars']              = 'Caratteri speciali';
-$lang['upperns']               = 'vai alla categoria principale';
-$lang['metaedit']              = 'Modifica metadati';
-$lang['metasaveerr']           = 'Scrittura metadati fallita';
-$lang['metasaveok']            = 'Metadati salvati';
-$lang['img_title']             = 'Titolo:';
-$lang['img_caption']           = 'Descrizione:';
-$lang['img_date']              = 'Data:';
-$lang['img_fname']             = 'Nome File:';
-$lang['img_fsize']             = 'Dimensione:';
-$lang['img_artist']            = 'Autore:';
-$lang['img_copyr']             = 'Copyright:';
-$lang['img_format']            = 'Formato:';
-$lang['img_camera']            = 'Camera:';
-$lang['img_keywords']          = 'Parole chiave:';
-$lang['img_width']             = 'Larghezza:';
-$lang['img_height']            = 'Altezza:';
-$lang['subscr_subscribe_success'] = 'Aggiunto %s alla lista di sottoscrizioni %s';
-$lang['subscr_subscribe_error'] = 'Impossibile aggiungere %s alla lista di sottoscrizioni %s';
-$lang['subscr_subscribe_noaddress'] = 'Non esiste alcun indirizzo associato al tuo account, non puoi essere aggiunto alla lista di sottoscrizioni';
-$lang['subscr_unsubscribe_success'] = 'Rimosso %s dalla lista di sottoscrizioni %s';
-$lang['subscr_unsubscribe_error'] = 'Impossibile rimuovere %s dalla lista di sottoscrizioni %s';
-$lang['subscr_already_subscribed'] = '%s è già iscritto a %s';
-$lang['subscr_not_subscribed'] = '%s non è iscritto a %s';
-$lang['subscr_m_not_subscribed'] = 'Attualmente non sei iscritto alla pagina o categoria corrente';
-$lang['subscr_m_new_header']   = 'Aggiungi sottoscrizione';
-$lang['subscr_m_current_header'] = 'Sottoscrizioni attuali';
-$lang['subscr_m_unsubscribe']  = 'Rimuovi sottoscrizione';
-$lang['subscr_m_subscribe']    = 'Sottoscrivi';
-$lang['subscr_m_receive']      = 'Ricevi';
-$lang['subscr_style_every']    = 'email per ogni modifica';
-$lang['subscr_style_digest']   = 'email di riassunto dei cambiamenti per ogni pagina (ogni %.2f giorni)';
-$lang['subscr_style_list']     = 'lista delle pagine cambiate dall\'ultima email (ogni %.2f giorni)';
-$lang['authtempfail']          = 'L\'autenticazione è temporaneamente non disponibile. Se questa situazione persiste, informa l\'amministratore di questo wiki.';
-$lang['i_chooselang']          = 'Scegli la lingua';
-$lang['i_installer']           = 'Installazione di DokuWiki';
-$lang['i_wikiname']            = 'Nome Wiki';
-$lang['i_enableacl']           = 'Abilita ACL (consigliato)';
-$lang['i_superuser']           = 'Amministratore';
-$lang['i_problems']            = 'Si sono verificati problemi durante l\'installazione, indicati di seguito. Non è possibile continuare finché non saranno risolti.';
-$lang['i_modified']            = 'Per motivi di sicurezza questa procedura funziona solamente con un\'installazione Dokuwiki nuova e non modificata.
-Prova a estrarre di nuovo i file dal pacchetto scaricato oppure consulta le
-<a href="http://dokuwiki.org/install">istruzioni per l\'installazione di Dokuwiki</a>';
-$lang['i_funcna']              = 'La funzione PHP <code>%s</code> non è disponibile. Forse è stata disabilitata dal tuo provider per qualche motivo?';
-$lang['i_phpver']              = 'La versione di PHP <code>%s</code> è inferiore a quella richiesta <code>%s</code>. Devi aggiornare l\'installazione di PHP.';
-$lang['i_mbfuncoverload']      = 'mbstring.func_overload deve essere disabilitato in php.ini per eseguire DokuWiki.';
-$lang['i_permfail']            = 'DokuWiki non può scrivere <code>%s</code>. E\' necessario correggere i permessi per questa directory!';
-$lang['i_confexists']          = '<code>%s</code> esiste già';
-$lang['i_writeerr']            = 'Impossibile creare <code>%s</code>. E\' necessario verificare i permessi della directory o del file oppure creare il file manualmente.';
-$lang['i_badhash']             = 'dokuwiki.php (hash=<code>%s</code>) non riconosciuto o modificato';
-$lang['i_badval']              = '<code>%s</code> - valore vuoto o non valido';
-$lang['i_success']             = 'La configurazione è stata completata correttamente. Ora è possibile eliminare il file install.php. Poi, visita <a href="doku.php?id=wiki:welcome">il tuo nuovo DokuWiki</a>.';
-$lang['i_failure']             = 'Si sono verificati errori durante la scrittura dei file di configurazione. Potrebbe essere necessario correggerli manualmente prima di poter utilizzare <a href="doku.php?id=wiki:welcome">il tuo nuovo DokuWiki</a>.';
-$lang['i_policy']              = 'Regole di accesso iniziali';
-$lang['i_pol0']                = 'Wiki Aperto (lettura, scrittura, caricamento file per tutti)';
-$lang['i_pol1']                = 'Wiki Pubblico (lettura per tutti, scrittura e caricamento file per gli utenti registrati)';
-$lang['i_pol2']                = 'Wiki Chiuso (lettura, scrittura, caricamento file solamente per gli utenti registrati)';
-$lang['i_allowreg']            = 'Permetti agli utenti di registrarsi';
-$lang['i_retry']               = 'Riprova';
-$lang['i_license']             = 'Per favore scegli la licenza sotto cui vuoi rilasciare il contenuto:';
-$lang['i_license_none']        = 'Non mostrare informazioni sulla licenza';
-$lang['i_pop_field']           = 'Per favore, aiutaci ad incrementare la conoscenza di DokuWiki:';
-$lang['i_pop_label']           = 'Mensilmente invia una statistica d\'uso anonima di DokuWiki agli sviluppatori';
-$lang['recent_global']         = 'Stai attualmente vedendo le modifiche effettuate nell\'area <b>%s</b>. Puoi anche <a href="%s">vedere le modifiche recenti dell\'intero wiki</a>.';
-$lang['years']                 = '%d anni fa';
-$lang['months']                = '%d mesi fa';
-$lang['weeks']                 = '%d settimane fa';
-$lang['days']                  = '%d giorni fa';
-$lang['hours']                 = '%d ore fa';
-$lang['minutes']               = '%d minuti fa';
-$lang['seconds']               = '%d secondi fa';
-$lang['wordblock']             = 'La modifica non è stata salvata perché contiene testo bloccato (spam).';
-$lang['media_uploadtab']       = 'Upload';
-$lang['media_searchtab']       = 'Cerca';
-$lang['media_file']            = 'File';
-$lang['media_viewtab']         = 'Guarda';
-$lang['media_edittab']         = 'Modifica';
-$lang['media_historytab']      = 'Storia';
-$lang['media_list_thumbs']     = 'Miniatura';
-$lang['media_list_rows']       = 'Righe';
-$lang['media_sort_name']       = 'Nome';
-$lang['media_sort_date']       = 'Data';
-$lang['media_namespaces']      = 'Scegli il namespace';
-$lang['media_files']           = 'File in %s';
-$lang['media_upload']          = 'Upload al %s';
-$lang['media_search']          = 'Cerca in %s';
-$lang['media_view']            = '%s';
-$lang['media_viewold']         = '%s a %s';
-$lang['media_edit']            = 'Modifica %s';
-$lang['media_history']         = 'Storia di %s';
-$lang['media_meta_edited']     = 'metadata modificati';
-$lang['media_perm_read']       = 'Spiacente, non hai abbastanza privilegi per leggere i files.';
-$lang['media_perm_upload']     = 'Spiacente, non hai abbastanza privilegi per caricare files.';
-$lang['media_update']          = 'Carica nuova versione';
-$lang['media_restore']         = 'Ripristina questa versione';
-$lang['media_acl_warning']     = 'Questa lista potrebbe non essere completa a causa di restrizioni ACL e pagine nascoste.';
-$lang['currentns']             = 'Namespace corrente';
-$lang['searchresult']          = 'Risultati della ricerca';
-$lang['plainhtml']             = 'HTML';
-$lang['wikimarkup']            = 'Marcatura wiki';
-$lang['page_nonexist_rev']     = 'Pagina non esistente a %s. E\' stata creata successivamente a <a href="%s">%s</a>.';
-$lang['unable_to_parse_date']  = 'Impossibile eseguire l\'analisi al parametro "%s".';
-$lang['email_signature_text']  = 'Questa email è stata generata dal DokuWiki all\'indirizzo
-@DOKUWIKIURL@';
diff --git a/wiki/inc/lang/it/locked.txt b/wiki/inc/lang/it/locked.txt
deleted file mode 100644
index a655ffc..0000000
--- a/wiki/inc/lang/it/locked.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Pagina bloccata ======
-
-Questa pagina è attualmente bloccata poiché un altro utente sta effettuando delle modifiche. Devi attendere che l'utente concluda le modifiche o che il blocco scada.
diff --git a/wiki/inc/lang/it/login.txt b/wiki/inc/lang/it/login.txt
deleted file mode 100644
index c6fd97b..0000000
--- a/wiki/inc/lang/it/login.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Accesso ======
-
-Non sei ancora collegato! Inserisci il tuo nome utente e la tua password per autenticarti. E' necessario che il tuo browser abbia i cookie abilitati.
-
diff --git a/wiki/inc/lang/it/mailtext.txt b/wiki/inc/lang/it/mailtext.txt
deleted file mode 100644
index 3374d37..0000000
--- a/wiki/inc/lang/it/mailtext.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-Una pagina su DokuWiki è stata aggiunta o modificata. Questi sono i dettagli:
-
-Data : @DATE@
-Browser : @BROWSER@
-Indirizzo IP : @IPADDRESS@
-Nome host : @HOSTNAME@
-Vecchia revisione : @OLDPAGE@
-Nuova revisione : @NEWPAGE@
-Oggetto della modifica : @SUMMARY@
-Utente : @USER@
-
-@DIFF@
diff --git a/wiki/inc/lang/it/mailwrap.html b/wiki/inc/lang/it/mailwrap.html
deleted file mode 100644
index d257190..0000000
--- a/wiki/inc/lang/it/mailwrap.html
+++ /dev/null
@@ -1,13 +0,0 @@
-<html>
-<head>
-<title>@TITLE@</title>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-</head>
-<body>
-
-@HTMLBODY@
-
-<br /><hr />
-<small>@EMAILSIGNATURE@</small>
-</body>
-</html>
\ No newline at end of file
diff --git a/wiki/inc/lang/it/newpage.txt b/wiki/inc/lang/it/newpage.txt
deleted file mode 100644
index d41601c..0000000
--- a/wiki/inc/lang/it/newpage.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Questo argomento non esiste ancora ======
-
-Hai seguito un collegamento ad un argomento che non è ancora stato creato. Se vuoi puoi crearlo tu stesso usando il pulsante ''Crea questa pagina''.
diff --git a/wiki/inc/lang/it/norev.txt b/wiki/inc/lang/it/norev.txt
deleted file mode 100644
index 91ef751..0000000
--- a/wiki/inc/lang/it/norev.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Revisione inesistente ======
-
-La revisione richiesta non esiste. Usa il pulsante ''Revisioni precedenti'' per ottenere una lista di revisioni precedenti di questo documento.
diff --git a/wiki/inc/lang/it/password.txt b/wiki/inc/lang/it/password.txt
deleted file mode 100644
index f7ca9e9..0000000
--- a/wiki/inc/lang/it/password.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-Ciao @FULLNAME@!
-
-Questi sono i tuoi dati di accesso per @TITLE@ su @DOKUWIKIURL@
-
-Nome utente : @LOGIN@
-Password    : @PASSWORD@
diff --git a/wiki/inc/lang/it/preview.txt b/wiki/inc/lang/it/preview.txt
deleted file mode 100644
index c3cf352..0000000
--- a/wiki/inc/lang/it/preview.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== Anteprima ======
-
-Questa è un'anteprima di come apparirà il tuo testo. Attenzione: **la pagina non è ancora stata salvata**!.
-
-
diff --git a/wiki/inc/lang/it/pwconfirm.txt b/wiki/inc/lang/it/pwconfirm.txt
deleted file mode 100644
index 3eb36fb..0000000
--- a/wiki/inc/lang/it/pwconfirm.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-Ciao @FULLNAME@!
-
-Qualcuno ha richiesto una nuova password per il tuo accesso
-@TITLE@ a @DOKUWIKIURL@
-
-Se non hai richiesto tu la nuova password ignora questa email.
-
-Per confermare che la richiesta è stata realmente inviata da te usa il
-seguente collegamento.
-
-@CONFIRM@
diff --git a/wiki/inc/lang/it/read.txt b/wiki/inc/lang/it/read.txt
deleted file mode 100644
index 0a72454..0000000
--- a/wiki/inc/lang/it/read.txt
+++ /dev/null
@@ -1 +0,0 @@
-Questa pagina è in sola lettura. Puoi visualizzare il sorgente, ma non puoi modificarlo. Contatta l'amministratore se pensi che ci sia un errore.
diff --git a/wiki/inc/lang/it/recent.txt b/wiki/inc/lang/it/recent.txt
deleted file mode 100644
index 4c29a9d..0000000
--- a/wiki/inc/lang/it/recent.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Ultime modifiche ======
-
-Queste sono le ultime pagine modificate.
-
diff --git a/wiki/inc/lang/it/register.txt b/wiki/inc/lang/it/register.txt
deleted file mode 100644
index 5a336a9..0000000
--- a/wiki/inc/lang/it/register.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Registrazione nuovo utente ======
-
-Riempi tutte le informazioni seguenti per creare un nuovo account in questo wiki.  Assicurati di inserire un **indirizzo email valido** - a meno che tu non l'abbia già inserita qui, la password ti sarà inviata con un messaggio di posta elettronica. Il nome utente deve soddisfare i criteri per i [[doku>pagename|nomi delle pagine]].
\ No newline at end of file
diff --git a/wiki/inc/lang/it/registermail.txt b/wiki/inc/lang/it/registermail.txt
deleted file mode 100644
index 77454cd..0000000
--- a/wiki/inc/lang/it/registermail.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-Un nuovo utente è stato registrato. Ecco i dettagli:
-
-Nome utente   : @NEWUSER@
-Nome completo : @NEWNAME@
-EMail        : @NEWEMAIL@
-
-Data : @DATE@
-Browser : @BROWSER@
-Indirizzo IP : @IPADDRESS@
-Nome host : @HOSTNAME@
diff --git a/wiki/inc/lang/it/resendpwd.txt b/wiki/inc/lang/it/resendpwd.txt
deleted file mode 100644
index 54604d7..0000000
--- a/wiki/inc/lang/it/resendpwd.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Invia nuova password ======
-
-Inserisci tutte le informazioni per ottenere una nuova password per il tuo account su questo wiki. La nuova password sarà inviata al tuo indirizzo di posta elettronica registrato. Il nome utente deve essere il tuo nome utente in questo wiki.
diff --git a/wiki/inc/lang/it/resetpwd.txt b/wiki/inc/lang/it/resetpwd.txt
deleted file mode 100644
index 450dd83..0000000
--- a/wiki/inc/lang/it/resetpwd.txt
+++ /dev/null
@@ -1 +0,0 @@
-Inserisci perfavore una nuova password per il tuo account su questo wiki.
\ No newline at end of file
diff --git a/wiki/inc/lang/it/revisions.txt b/wiki/inc/lang/it/revisions.txt
deleted file mode 100644
index 19c501b..0000000
--- a/wiki/inc/lang/it/revisions.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Versione precedente ======
-
-Queste sono le versioni precedenti del documento attuale. Per ripristinare una versione precedente, seleziona la versione, modificala usando il pulsante ''Modifica questa pagina'' e salvala.
diff --git a/wiki/inc/lang/it/searchpage.txt b/wiki/inc/lang/it/searchpage.txt
deleted file mode 100644
index e997ebd..0000000
--- a/wiki/inc/lang/it/searchpage.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Cerca ======
-
-Questi sono i risultati della ricerca. @CREATEPAGEINFO@
-
diff --git a/wiki/inc/lang/it/showrev.txt b/wiki/inc/lang/it/showrev.txt
deleted file mode 100644
index 7c184f2..0000000
--- a/wiki/inc/lang/it/showrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**Questa è una vecchia versione del documento!**
-----
diff --git a/wiki/inc/lang/it/stopwords.txt b/wiki/inc/lang/it/stopwords.txt
deleted file mode 100644
index e91aa3b..0000000
--- a/wiki/inc/lang/it/stopwords.txt
+++ /dev/null
@@ -1,119 +0,0 @@
-# Questo è un elenco di parole che l'indicizzatore ignora, una parola per riga
-# Quando modifichi questo file fai attenzione ad usare la chiusura della riga in stile UNIX (nuova linea singola)
-# Non è necessario includere parole più brevi di 3 caratteri - queste vengono in ogni caso ignorate
-# Questo elenco è basato su quello trovato in http://www.ranks.nl/stopwords/
-adesso
-alla
-allo
-allora
-altre
-altri
-altro
-anche
-ancora
-avere
-aveva
-avevano
-ben
-buono
-che
-chi
-cinque
-comprare
-con
-consecutivi
-consecutivo
-cosa
-cui
-del
-della
-dello
-dentro
-deve
-devo
-doppio
-due
-ecco
-fare
-fine
-fino
-fra
-gente
-giu
-hai
-hanno
-indietro
-invece
-lavoro
-lei
-loro
-lui
-lungo
-meglio
-molta
-molti
-molto
-nei
-nella
-noi
-nome
-nostro
-nove
-nuovi
-nuovo
-oltre
-ora
-otto
-peggio
-pero
-persone
-piu
-poco
-primo
-promesso
-qua
-quarto
-quasi
-quattro
-quello
-questo
-qui
-quindi
-quinto
-rispetto
-sara
-secondo
-sei
-sembra
-sembrava
-senza
-sette
-sia
-siamo
-siete
-solo
-sono
-sopra
-soprattutto
-sotto
-stati
-stato
-stesso
-su
-subito
-sul
-sulla
-tanto
-tempo
-terzo
-tra
-tre
-triplo
-ultimo
-una
-uno
-va
-vai
-voi
-volte
-vostro
diff --git a/wiki/inc/lang/it/subscr_digest.txt b/wiki/inc/lang/it/subscr_digest.txt
deleted file mode 100644
index 29fd4bc..0000000
--- a/wiki/inc/lang/it/subscr_digest.txt
+++ /dev/null
@@ -1,16 +0,0 @@
-Ciao!
-
-La pagina @PAGE@ nel wiki @TITLE@ è cambiata.
-Queste sono le modifiche:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-Vecchia revisione: @OLDPAGE@
-Nuova revisione: @NEWPAGE@
-
-Per non ricevere più queste notifiche collegati al
-wiki @DOKUWIKIURL@ e poi visita @SUBSCRIBE@
-e rimuovi la sottoscrizione alle modifiche delle
-pagine e/o categorie.
diff --git a/wiki/inc/lang/it/subscr_form.txt b/wiki/inc/lang/it/subscr_form.txt
deleted file mode 100644
index 54f66e4..0000000
--- a/wiki/inc/lang/it/subscr_form.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Gestione iscrizioni ======
-
-Questa pagina permette di gestire le tue iscrizioni alla pagina e catogoria attuale.
\ No newline at end of file
diff --git a/wiki/inc/lang/it/subscr_list.txt b/wiki/inc/lang/it/subscr_list.txt
deleted file mode 100644
index f870388..0000000
--- a/wiki/inc/lang/it/subscr_list.txt
+++ /dev/null
@@ -1,14 +0,0 @@
-Ciao!
-
-Le pagine nella categoria @PAGE@ del wiki @TITLE@ sono
-cambiate.
-Queste sono le pagine modificate:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-Per non ricevere più queste notifiche collegati al
-wiki @DOKUWIKIURL@ e poi visita @SUBSCRIBE@
-e rimuovi la sottoscrizione alle modifiche delle
-pagine e/o categorie.
diff --git a/wiki/inc/lang/it/subscr_single.txt b/wiki/inc/lang/it/subscr_single.txt
deleted file mode 100644
index 421a156..0000000
--- a/wiki/inc/lang/it/subscr_single.txt
+++ /dev/null
@@ -1,20 +0,0 @@
-Ciao!
-
-La pagina @PAGE@ nel wiki @TITLE@ è cambiata.
-Queste sono le modifiche:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-Data : @DATE@
-Utente : @USER@
-Sommario modifica: @SUMMARY@
-Vecchia revisione: @OLDPAGE@
-Nuova revisione: @NEWPAGE@
-
-Per non ricevere più queste notifiche, collegati al
-wiki all'indirizzo @DOKUWIKIURL@ e poi visita
-@SUBSCRIBE@
-e rimuovi la sottoscrizione alle modifiche della
-pagina o categoria.
diff --git a/wiki/inc/lang/it/updateprofile.txt b/wiki/inc/lang/it/updateprofile.txt
deleted file mode 100644
index 71157a2..0000000
--- a/wiki/inc/lang/it/updateprofile.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Aggiorna il profilo del tuo account ======
-
-E' necessario compilare solo i campi che desideri modificare. Non puoi cambiare il tuo nome utente.
diff --git a/wiki/inc/lang/it/uploadmail.txt b/wiki/inc/lang/it/uploadmail.txt
deleted file mode 100644
index 4dd7cd4..0000000
--- a/wiki/inc/lang/it/uploadmail.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-Un file è stato caricato sul tuo DokuWiki. Seguono i dettagli:
-
-File : @MEDIA@
-Data : @DATE@
-Browser : @BROWSER@
-Indirizzo IP : @IPADDRESS@
-Hostname : @HOSTNAME@
-Dimensione : @SIZE@
-Tipo MIME : @MIME@
-Utente : @USER@
diff --git a/wiki/inc/lang/ja/admin.txt b/wiki/inc/lang/ja/admin.txt
deleted file mode 100644
index b0c6d34..0000000
--- a/wiki/inc/lang/ja/admin.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== 管ç†è€…メニュー ======
-
-DokuWikiã§ç®¡ç†ã§ãるタスクã®ä¸€è¦§ã§ã™
-
diff --git a/wiki/inc/lang/ja/adminplugins.txt b/wiki/inc/lang/ja/adminplugins.txt
deleted file mode 100644
index 1708bbb..0000000
--- a/wiki/inc/lang/ja/adminplugins.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== 追加プラグイン =====
\ No newline at end of file
diff --git a/wiki/inc/lang/ja/backlinks.txt b/wiki/inc/lang/ja/backlinks.txt
deleted file mode 100644
index 69644b7..0000000
--- a/wiki/inc/lang/ja/backlinks.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== ãƒãƒƒã‚¯ãƒªãƒ³ã‚¯ ======
-
-å…ˆã»ã©ã®æ–‡æ›¸ã«ãƒªãƒ³ã‚¯ã—ã¦ã„る文書ã®ãƒªã‚¹ãƒˆã§ã™ã€‚
-
diff --git a/wiki/inc/lang/ja/conflict.txt b/wiki/inc/lang/ja/conflict.txt
deleted file mode 100644
index 099b598..0000000
--- a/wiki/inc/lang/ja/conflict.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-====== æ–°ã—ã„ãƒãƒ¼ã‚¸ãƒ§ãƒ³ãŒå­˜åœ¨ã—ã¾ã™ ======
-
-編集中ã«ä»–ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒã“ã®æ–‡æ›¸ã‚’æ›´æ–°ã—ãŸãŸã‚ã€æ–°ã—ã„ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã®æ–‡æ›¸ãŒå­˜åœ¨ã—ã¾ã™ã€‚
-
-ä»¥ä¸‹ã«æ–‡æ›¸é–“ã®å·®åˆ†ã‚’表示ã™ã‚‹ã®ã§ã€ã©ã¡ã‚‰ã‹ã®æ–‡æ›¸ã‚’é¸æŠžã—ã¦ãã ã•ã„。''ä¿å­˜'' ã‚’é¸æŠžã™ã‚‹ã¨ç¾åœ¨ç·¨é›†ä¸­ã®æ–‡æ›¸ãŒä¿å­˜ã•れã¾ã™ã€‚''キャンセル'' ã¯ç·¨é›†ä¸­ã®æ–‡æ›¸ãŒç ´æ£„ã•れã¾ã™ã€‚
-
diff --git a/wiki/inc/lang/ja/denied.txt b/wiki/inc/lang/ja/denied.txt
deleted file mode 100644
index 98ccb2f..0000000
--- a/wiki/inc/lang/ja/denied.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== ã‚¢ã‚¯ã‚»ã‚¹ãŒæ‹’å¦ã•れã¾ã—㟠======
-
-実行ã™ã‚‹æ¨©é™ãŒã‚りã¾ã›ã‚“。
-
diff --git a/wiki/inc/lang/ja/diff.txt b/wiki/inc/lang/ja/diff.txt
deleted file mode 100644
index fe5f6b1..0000000
--- a/wiki/inc/lang/ja/diff.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== 差分 ======
-
-ã“ã®æ–‡æ›¸ã®ç¾åœ¨ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã¨é¸æŠžã—ãŸãƒãƒ¼ã‚¸ãƒ§ãƒ³ã®å·®åˆ†ã‚’表示ã—ã¾ã™ã€‚
-
diff --git a/wiki/inc/lang/ja/draft.txt b/wiki/inc/lang/ja/draft.txt
deleted file mode 100644
index af3160b..0000000
--- a/wiki/inc/lang/ja/draft.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-====== ドラフトファイルãŒå­˜åœ¨ã—ã¾ã™ ======
-
-ã“ã®ãƒšãƒ¼ã‚¸ã«å¯¾ã™ã‚‹æœ€å¾Œã®ç·¨é›†ã¯æ­£ã—ã終了ã•れã¾ã›ã‚“ã§ã—ãŸã€‚ ãã®ç·¨é›†ä½œæ¥­ã‚’引ãç¶šã行ãˆã‚‹ã‚ˆã†ã€ä»¥ä¸‹ã«ç¤ºã™å†…容ãŒè‡ªå‹•çš„ã«ä¿å­˜ã•れã¦ã„ã¾ã™ã€‚
-
-ã“ã®è‡ªå‹•çš„ã«ä¿å­˜ã•れãŸç·¨é›†å†…容ã«å¯¾ã—ã¦ã€//復元ã™ã‚‹//ã€//削除ã™ã‚‹//〠もã—ãã¯ã“ã®ãƒšãƒ¼ã‚¸ã®ç·¨é›†ã‚’//キャンセル//ã—ã¦ä¸‹ã•ã„。
-
diff --git a/wiki/inc/lang/ja/edit.txt b/wiki/inc/lang/ja/edit.txt
deleted file mode 100644
index e7a8f97..0000000
--- a/wiki/inc/lang/ja/edit.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-編集ã—ã¦''ä¿å­˜''をクリックã—ã¦ãã ã•ã„。Wikiã®æ§‹æ–‡ã«ã¤ã„ã¦ã¯ [[wiki:syntax]] ã‚’å‚考ã«ã—ã¦ãã ã•ã„
-
-当然ã®ã“ã¨ã§ã™ãŒã€ã“ã®æ–‡æ›¸ã®è³ªã‚’ **å‘上** ã•ã›ã‚‹å ´åˆã®ã¿ç·¨é›†ã—ã¦ãã ã•ã„。もã—編集方法や構文を練習ã—ãŸã„ã®ã§ã‚れ㰠[[playground:playground]] を利用ã—ã¦ãã ã•ã„。
-
diff --git a/wiki/inc/lang/ja/editrev.txt b/wiki/inc/lang/ja/editrev.txt
deleted file mode 100644
index 7c98413..0000000
--- a/wiki/inc/lang/ja/editrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**å¤ã„ãƒªãƒ“ã‚¸ãƒ§ãƒ³ã®æ–‡æ›¸ã‚’é–‹ã„ã¦ã„ã¾ã™** ã‚‚ã—ã“ã®ã¾ã¾ä¿å­˜ã™ã‚‹ã¨ã€ã“ã®æ–‡æ›¸ãŒæœ€æ–°ã¨ãªã‚Šã¾ã™ã€‚
-----
diff --git a/wiki/inc/lang/ja/index.txt b/wiki/inc/lang/ja/index.txt
deleted file mode 100644
index eb168d1..0000000
--- a/wiki/inc/lang/ja/index.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== サイトマップ ======
-
-å…¨ã¦ã®é–²è¦§å¯èƒ½ãƒšãƒ¼ã‚¸ã‚’[[doku>ja:namespaces|åå‰ç©ºé–“]]é †ã«ä¸¦ã¹ãŸã‚µã‚¤ãƒˆãƒžãƒƒãƒ—ã§ã™ã€‚
-
diff --git a/wiki/inc/lang/ja/install.html b/wiki/inc/lang/ja/install.html
deleted file mode 100644
index 3a1d0d4..0000000
--- a/wiki/inc/lang/ja/install.html
+++ /dev/null
@@ -1,14 +0,0 @@
-<p>ã“ã®ãƒšãƒ¼ã‚¸ã¯ã€<a href="http://dokuwiki.org">Dokuwiki</a>ã®ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã¨åˆæœŸè¨­å®šã‚’サãƒãƒ¼ãƒˆã—ã¾ã™ã€‚
-ã“ã®ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ©ãƒ¼ã«é–¢ã™ã‚‹è©³ç´°ã¯ <a href="http://dokuwiki.org/installer">documentation page</a> ã‚’å‚考ã«ã—ã¦ãã ã•ã„。</p>
-
-<p>DokuWikiã¯ã€é€šå¸¸ã®ãƒ•ァイルã«Wikiページã®å†…容ã¨é–¢é€£ã™ã‚‹æƒ…報(例ãˆã°ã€ç”»åƒã€æ¤œç´¢ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ã€å¤ã„リビジョンãªã©ï¼‰ã‚’ä¿å­˜ã—ã¾ã™ã€‚
-ãã®ãŸã‚ã€DokuWikiを使用ã™ã‚‹ãŸã‚ã«ã¯ã€ãれらã®ãƒ•ァイルをä¿å­˜ã™ã‚‹ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã«æ›¸ãè¾¼ã¿ã®æ¨©é™ãŒ<strong>å¿…ãš</strong>å¿…è¦ã¨ãªã‚Šã¾ã™ã€‚
-ã“ã®ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ©ãƒ¼ã§ã¯ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã®æ¨©é™ã®å¤‰æ›´ã¯è¡Œãˆãªã„ãŸã‚ã€ã‚³ãƒžãƒ³ãƒ‰ã‚·ã‚§ãƒ«ã§æ¨©é™ã®å¤‰æ›´ã‚’直接行ã†ã‹ã€
-ホスティングサービスを利用ã—ã¦ã„ã‚‹å ´åˆã¯ãã®ã‚³ãƒ³ãƒˆãƒ­ãƒ¼ãƒ«ãƒ‘ãƒãƒ«ã‚‚ã—ãã¯FTPを通ã—ã¦ã€æ¨©é™ã®å¤‰æ›´ã‚’行ã£ã¦ãã ã•ã„。</p>
-
-<p>DokuWikiã¯ã€ãƒ—ラグインã€ãƒ¦ãƒ¼ã‚¶ãƒ¼ã€Wikiページã¸ã®ã‚¢ã‚¯ã‚»ã‚¹åˆ¶é™ã€è¨­å®šã®å¤‰æ›´ã‚’管ç†ã™ã‚‹æ©Ÿèƒ½ã‚’有ã—ã¦ãŠã‚Šã€
-ãã®æ©Ÿèƒ½ã‚’有効ã«ã™ã‚‹ãŸã‚ã«å¿…è¦ãª <abbr title="access control list">ACL</abbr> ã®è¨­å®šãŒã€ã“ã®ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ©ãƒ¼ã«ã‚ˆã£ã¦è¡Œã‚れã¾ã™ã€‚
-ã“ã®ç®¡ç†æ©Ÿèƒ½ã¯ã€DokuWikiを使用ã™ã‚‹ä¸Šã§å¿…è¦ã§ã¯ã‚りã¾ã›ã‚“ãŒã€DokuWikiã®ç®¡ç†ã‚’ç°¡å˜ã«ã—ã¦ãれã¾ã™ã€‚</p>
-
-<p>従æ¥ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã‚’使用ã—ã¦ã„るユーザーや特別ãªã‚»ãƒƒãƒˆã‚¢ãƒƒãƒ—ãŒå¿…è¦ãªå ´åˆã¯ã€æ¬¡ã®ãƒªãƒ³ã‚¯å…ˆã‚’å‚考ã«ã—ã¦ä¸‹ã•ã„
-(<a href="http://dokuwiki.org/install">installation instructions</a>, <a href="http://dokuwiki.org/config">configuration settings</a>)。</p>
diff --git a/wiki/inc/lang/ja/jquery.ui.datepicker.js b/wiki/inc/lang/ja/jquery.ui.datepicker.js
deleted file mode 100644
index 52b1058..0000000
--- a/wiki/inc/lang/ja/jquery.ui.datepicker.js
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Japanese initialisation for the jQuery UI date picker plugin. */
-/* Written by Kentaro SATO (kentaro@ranvis.com). */
-( function( factory ) {
-	if ( typeof define === "function" && define.amd ) {
-
-		// AMD. Register as an anonymous module.
-		define( [ "../widgets/datepicker" ], factory );
-	} else {
-
-		// Browser globals
-		factory( jQuery.datepicker );
-	}
-}( function( datepicker ) {
-
-datepicker.regional.ja = {
-	closeText: "é–‰ã˜ã‚‹",
-	prevText: "&#x3C;å‰",
-	nextText: "次&#x3E;",
-	currentText: "今日",
-	monthNames: [ "1月","2月","3月","4月","5月","6月",
-	"7月","8月","9月","10月","11月","12月" ],
-	monthNamesShort: [ "1月","2月","3月","4月","5月","6月",
-	"7月","8月","9月","10月","11月","12月" ],
-	dayNames: [ "日曜日","月曜日","ç«æ›œæ—¥","水曜日","木曜日","金曜日","土曜日" ],
-	dayNamesShort: [ "æ—¥","月","ç«","æ°´","木","金","土" ],
-	dayNamesMin: [ "æ—¥","月","ç«","æ°´","木","金","土" ],
-	weekHeader: "週",
-	dateFormat: "yy/mm/dd",
-	firstDay: 0,
-	isRTL: false,
-	showMonthAfterYear: true,
-	yearSuffix: "å¹´" };
-datepicker.setDefaults( datepicker.regional.ja );
-
-return datepicker.regional.ja;
-
-} ) );
diff --git a/wiki/inc/lang/ja/lang.php b/wiki/inc/lang/ja/lang.php
deleted file mode 100644
index 5f21a7e..0000000
--- a/wiki/inc/lang/ja/lang.php
+++ /dev/null
@@ -1,348 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Yuji Takenaka <webmaster@davilin.com>
- * @author Ikuo Obataya <i.obataya@gmail.com>
- * @author Daniel Dupriest <kououken@gmail.com>
- * @author Kazutaka Miyasaka <kazmiya@gmail.com>
- * @author Taisuke Shimamoto <dentostar@gmail.com>
- * @author Satoshi Sahara <sahara.satoshi@gmail.com>
- * @author Hideaki SAWADA <chuno@live.jp>
- * @author Hideaki SAWADA <sawadakun@live.jp>
- * @author PzF_X <jp_minecraft@yahoo.co.jp>
- */
-$lang['encoding']              = 'utf-8';
-$lang['direction']             = 'ltr';
-$lang['doublequoteopening']    = '“';
-$lang['doublequoteclosing']    = 'â€';
-$lang['singlequoteopening']    = '‘';
-$lang['singlequoteclosing']    = '’';
-$lang['apostrophe']            = '’';
-$lang['btn_edit']              = '文書ã®ç·¨é›†';
-$lang['btn_source']            = 'ソースã®è¡¨ç¤º';
-$lang['btn_show']              = '文書ã®è¡¨ç¤º';
-$lang['btn_create']            = '文書ã®ä½œæˆ';
-$lang['btn_search']            = '検索';
-$lang['btn_save']              = 'ä¿å­˜';
-$lang['btn_preview']           = 'プレビュー';
-$lang['btn_top']               = '文書ã®å…ˆé ­ã¸';
-$lang['btn_newer']             = '<< より新ã—ã„';
-$lang['btn_older']             = 'よりå¤ã„ >>';
-$lang['btn_revs']              = '以å‰ã®ãƒªãƒ“ジョン';
-$lang['btn_recent']            = '最近ã®å¤‰æ›´';
-$lang['btn_upload']            = 'アップロード';
-$lang['btn_cancel']            = 'キャンセル';
-$lang['btn_index']             = 'サイトマップ';
-$lang['btn_secedit']           = '編集';
-$lang['btn_login']             = 'ログイン';
-$lang['btn_logout']            = 'ログアウト';
-$lang['btn_admin']             = '管ç†';
-$lang['btn_update']            = 'æ›´æ–°';
-$lang['btn_delete']            = '削除';
-$lang['btn_back']              = '戻る';
-$lang['btn_backlink']          = 'ãƒãƒƒã‚¯ãƒªãƒ³ã‚¯';
-$lang['btn_subscribe']         = '変更履歴é…ä¿¡ã®ç™»éŒ²';
-$lang['btn_profile']           = 'ãƒ¦ãƒ¼ã‚¶ãƒ¼æƒ…å ±ã®æ›´æ–°';
-$lang['btn_reset']             = 'リセット';
-$lang['btn_resendpwd']         = 'æ–°ã—ã„パスワードをセット';
-$lang['btn_draft']             = 'ドラフトを編集';
-$lang['btn_recover']           = 'ドラフトを復元';
-$lang['btn_draftdel']          = 'ドラフトを削除';
-$lang['btn_revert']            = 'å…ƒã«æˆ»ã™';
-$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']                  = 'パスワード';
-$lang['newpass']               = 'æ–°ã—ã„パスワード';
-$lang['oldpass']               = 'ç¾åœ¨ã®ãƒ‘スワード';
-$lang['passchk']               = '確èª';
-$lang['remember']              = 'ユーザーåã¨ãƒ‘スワードを記憶ã™ã‚‹';
-$lang['fullname']              = 'フルãƒãƒ¼ãƒ ';
-$lang['email']                 = 'メールアドレス';
-$lang['profile']               = 'ユーザー情報';
-$lang['badlogin']              = 'ユーザーåã‹ãƒ‘スワードãŒé•ã„ã¾ã™ã€‚';
-$lang['badpassconfirm']        = 'パスワードãŒé–“é•ã£ã¦ã„ã¾ã™ã€‚';
-$lang['minoredit']             = 'å°å¤‰æ›´';
-$lang['draftdate']             = 'ドラフトä¿å­˜æ—¥æ™‚:';
-$lang['nosecedit']             = 'ページ内容ãŒå¤‰æ›´ã•れã¦ã„ã¾ã™ãŒã‚»ã‚¯ã‚·ãƒ§ãƒ³æƒ…å ±ãŒå¤ã„ãŸã‚ã€ä»£ã‚りã«ãƒšãƒ¼ã‚¸å…¨ä½“をロードã—ã¾ã—ãŸã€‚';
-$lang['regmissing']            = 'å…¨ã¦ã®é …目を入力ã—ã¦ãã ã•ã„。';
-$lang['reguexists']            = 'ã“ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼åã¯æ—¢ã«å­˜åœ¨ã—ã¦ã„ã¾ã™ã€‚';
-$lang['regsuccess']            = 'æ–°ã—ã„ユーザーãŒä½œæˆã•れã¾ã—ãŸã€‚パスワードã¯ç™»éŒ²ã—ãŸãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹å®›ã¦ã«é€ä»˜ã•れã¾ã™ã€‚';
-$lang['regsuccess2']           = 'æ–°ã—ã„ユーザーãŒä½œæˆã•れã¾ã—ãŸã€‚';
-$lang['regfail']               = 'ユーザーを作æˆã§ãã¾ã›ã‚“ã§ã—ãŸã€‚';
-$lang['regmailfail']           = 'パスワードã®ãƒ¡ãƒ¼ãƒ«é€ä¿¡ã«å¤±æ•—ã—ã¾ã—ãŸã€‚ãŠæ‰‹æ•°ã§ã™ãŒç®¡ç†è€…ã¾ã§é€£çµ¡ã‚’ãŠé¡˜ã„ã—ã¾ã™ã€‚';
-$lang['regbadmail']            = 'ãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹ãŒæœ‰åйã§ã¯ã‚りã¾ã›ã‚“。';
-$lang['regbadpass']            = '確èªç”¨ã®ãƒ‘ã‚¹ãƒ¯ãƒ¼ãƒ‰ãŒæ­£ã—ãã‚りã¾ã›ã‚“。';
-$lang['regpwmail']             = 'ã‚ãªãŸã® DokuWiki パスワード';
-$lang['reghere']               = 'ã”自分用ã®ã‚¢ã‚«ã‚¦ãƒ³ãƒˆã‚’å–ã£ã¦ã¿ã¦ã¯å¦‚何ã§ã™ã‹ï¼Ÿ';
-$lang['profna']                = 'ユーザー情報ã®å¤‰æ›´ã¯å‡ºæ¥ã¾ã›ã‚“';
-$lang['profnochange']          = '変更点ã¯ã‚りã¾ã›ã‚“ã§ã—ãŸã€‚';
-$lang['profnoempty']           = 'ユーザーåã¨ãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’入力ã—ã¦ä¸‹ã•ã„。';
-$lang['profchanged']           = 'ãƒ¦ãƒ¼ã‚¶ãƒ¼æƒ…å ±ã¯æ›´æ–°ã•れã¾ã—ãŸã€‚';
-$lang['profnodelete']          = 'ã“ã® wiki ã¯ãƒ¦ãƒ¼ã‚¶ãƒ¼ã‚’削除ã§ããªã„。';
-$lang['profdeleteuser']        = 'アカウントã®å‰Šé™¤';
-$lang['profdeleted']           = 'ã“ã®wikiã‹ã‚‰ã‚ãªãŸã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã‚¢ã‚«ã‚¦ãƒ³ãƒˆã¯å‰Šé™¤æ¸ˆã§ã™ã€‚';
-$lang['profconfdelete']        = 'ã“ã®wikiã‹ã‚‰è‡ªåˆ†ã®ã‚¢ã‚«ã‚¦ãƒ³ãƒˆæŠ¹æ¶ˆã‚’希望ã—ã¾ã™ã€‚<br/> ã“ã®æ“作ã¯å–消ã™ã“ã¨ãŒã§ãã¾ã›ã‚“。';
-$lang['profconfdeletemissing'] = '確èªã®ãƒã‚§ãƒƒã‚¯ãƒœãƒƒã‚¯ã‚¹ãŒãƒã‚§ãƒƒã‚¯ã•れã¦ã„ã¾ã›ã‚“。';
-$lang['proffail']              = 'ãƒ¦ãƒ¼ã‚¶ãƒ¼æƒ…å ±ã¯æ›´æ–°ã•れã¾ã›ã‚“ã§ã—ãŸã€‚';
-$lang['pwdforget']             = 'パスワードをãŠå¿˜ã‚Œã§ã™ã‹ï¼Ÿãƒ‘スワードå†ç™ºè¡Œ';
-$lang['resendna']              = 'パスワードã®å†ç™ºè¡Œã¯å‡ºæ¥ã¾ã›ã‚“。';
-$lang['resendpwd']             = 'æ–°ã—ã„パスワードをセット';
-$lang['resendpwdmissing']      = 'å…¨ã¦ã®é …目を入力ã—ã¦ä¸‹ã•ã„。';
-$lang['resendpwdnouser']       = '入力ã•れãŸãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸã€‚';
-$lang['resendpwdbadauth']      = '申ã—訳ã‚りã¾ã›ã‚“。ã“ã®ç¢ºèªã‚³ãƒ¼ãƒ‰ã¯æœ‰åйã§ã¯ã‚りã¾ã›ã‚“。メール内ã«è¨˜è¼‰ã•れãŸãƒªãƒ³ã‚¯ã‚’確èªã—ã¦ãã ã•ã„。';
-$lang['resendpwdconfirm']      = '確èªç”¨ã®ãƒªãƒ³ã‚¯ã‚’å«ã‚“ã ãƒ¡ãƒ¼ãƒ«ã‚’é€ä¿¡ã—ã¾ã—ãŸã€‚';
-$lang['resendpwdsuccess']      = 'æ–°ã—ã„パスワードãŒãƒ¡ãƒ¼ãƒ«ã§é€ä¿¡ã•れã¾ã—ãŸã€‚';
-$lang['license']               = 'ç‰¹ã«æ˜Žç¤ºã•れã¦ã„ãªã„é™ã‚Šã€æœ¬Wikiã®å†…å®¹ã¯æ¬¡ã®ãƒ©ã‚¤ã‚»ãƒ³ã‚¹ã«å¾“ã„ã¾ã™ï¼š';
-$lang['licenseok']             = '注æ„: 本ページを編集ã™ã‚‹ã“ã¨ã¯ã€ã‚ãªãŸã®ç·¨é›†ã—ãŸå†…å®¹ãŒæ¬¡ã®ãƒ©ã‚¤ã‚»ãƒ³ã‚¹ã«å¾“ã†ã“ã¨ã«åŒæ„ã—ãŸã‚‚ã®ã¨ã¿ãªã—ã¾ã™ï¼š';
-$lang['searchmedia']           = '検索ファイルå:';
-$lang['searchmedia_in']        = '%s 内を検索';
-$lang['txt_upload']            = 'アップロードã™ã‚‹ãƒ•ァイルをé¸ã‚“ã§ãã ã•ã„。:';
-$lang['txt_filename']          = 'åå‰ã‚’変更ã—ã¦ã‚¢ãƒƒãƒ—ロード(オプション):';
-$lang['txt_overwrt']           = '既存ã®ãƒ•ァイルを上書ã';
-$lang['maxuploadsize']         = 'アップロード上é™ã‚µã‚¤ã‚º %s /ファイル';
-$lang['lockedby']              = 'ã“ã®æ–‡æ›¸ã¯æ¬¡ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã«ã‚ˆã£ã¦ãƒ­ãƒƒã‚¯ã•れã¦ã„ã¾ã™:';
-$lang['lockexpire']            = 'ロック期é™ï¼š:';
-$lang['js']['willexpire']      = 'ç·¨é›†ä¸­ã®æ–‡æ›¸ã¯ãƒ­ãƒƒã‚¯æœŸé™ã‚’éŽãŽã‚ˆã†ã¨ã—ã¦ã„ã¾ã™ã€‚ã“ã®ã¾ã¾ãƒ­ãƒƒã‚¯ã™ã‚‹å ´åˆã¯ã€ä¸€åº¦æ–‡æ›¸ã®ç¢ºèªã‚’行ã£ã¦æœŸé™ã‚’リセットã—ã¦ãã ã•ã„。';
-$lang['js']['notsavedyet']     = '変更ã¯ä¿å­˜ã•れã¾ã›ã‚“。ã“ã®ã¾ã¾å‡¦ç†ã‚’ç¶šã‘ã¦ã‚ˆã‚ã—ã„ã§ã™ã‹ï¼Ÿ';
-$lang['js']['searchmedia']     = 'ファイル検索';
-$lang['js']['keepopen']        = 'é¸æŠžä¸­ã¯ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã‚’é–‰ã˜ãªã„';
-$lang['js']['hidedetails']     = '詳細をéžè¡¨ç¤º';
-$lang['js']['mediatitle']      = 'リンク設定';
-$lang['js']['mediadisplay']    = 'リンクタイプ';
-$lang['js']['mediaalign']      = 'ä½ç½®';
-$lang['js']['mediasize']       = 'イメージサイズ';
-$lang['js']['mediatarget']     = 'リンク先';
-$lang['js']['mediaclose']      = 'é–‰ã˜ã‚‹';
-$lang['js']['mediainsert']     = '挿入';
-$lang['js']['mediadisplayimg'] = 'イメージを表示';
-$lang['js']['mediadisplaylnk'] = 'リンクã®ã¿è¡¨ç¤º';
-$lang['js']['mediasmall']      = 'å°ã•ã„サイズ';
-$lang['js']['mediamedium']     = '通常サイズ';
-$lang['js']['medialarge']      = '大ãã„サイズ';
-$lang['js']['mediaoriginal']   = 'オリジナルã®ã‚µã‚¤ã‚º';
-$lang['js']['medialnk']        = '詳細ページã¸ã®ãƒªãƒ³ã‚¯';
-$lang['js']['mediadirect']     = 'オリジナルã¸ã®ç›´ãƒªãƒ³ã‚¯';
-$lang['js']['medianolnk']      = 'リンク無ã—';
-$lang['js']['medianolink']     = 'イメージをリンクã—ãªã„';
-$lang['js']['medialeft']       = 'イメージを左ã«å¯„ã›ã‚‹';
-$lang['js']['mediaright']      = 'イメージをå³ã«å¯„ã›ã‚‹';
-$lang['js']['mediacenter']     = 'イメージを中央ã«å¯„ã›ã‚‹';
-$lang['js']['medianoalign']    = 'ä½ç½®ã‚’設定ã—ãªã„';
-$lang['js']['nosmblinks']      = 'ウィンドウズã®å…±æœ‰ãƒ•ォルダã¸ãƒªãƒ³ã‚¯ã¯ Microsoft Internet Explorer ã§ã—ã‹æ©Ÿèƒ½ã—ã¾ã›ã‚“ãŒã€ãƒªãƒ³ã‚¯ã‚’コピーã—ã¦è²¼ã‚Šä»˜ã‘ã‚‹ã“ã¨ã¯å¯èƒ½ã§ã™ã€‚';
-$lang['js']['linkwiz']         = 'リンクウィザード';
-$lang['js']['linkto']          = 'リンク先:';
-$lang['js']['del_confirm']     = 'é¸æŠžã—ãŸé …目を本当ã«å‰Šé™¤ã—ã¾ã™ã‹ï¼Ÿ';
-$lang['js']['restore_confirm'] = '本当ã«ã“ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã‚’復元ã—ã¾ã™ã‹?';
-$lang['js']['media_diff']      = '差分ã®è¡¨ç¤ºæ–¹æ³•:';
-$lang['js']['media_diff_both'] = '並ã¹ã¦è¡¨ç¤º';
-$lang['js']['media_diff_opacity'] = 'é‡ã­ã¦é€éŽè¡¨ç¤º';
-$lang['js']['media_diff_portions'] = 'é‡ã­ã¦åˆ‡æ›¿è¡¨ç¤º';
-$lang['js']['media_select']    = 'ãƒ•ã‚¡ã‚¤ãƒ«ã‚’é¸æŠž...';
-$lang['js']['media_upload_btn'] = 'アップロード';
-$lang['js']['media_done_btn']  = '完了';
-$lang['js']['media_drop']      = 'ã“ã“ã«ãƒ•ァイルをドロップã™ã‚‹ã¨ã‚¢ãƒƒãƒ—ロードã—ã¾ã™';
-$lang['js']['media_cancel']    = '削除';
-$lang['js']['media_overwrt']   = '既存ã®ãƒ•ァイルを上書ãã™ã‚‹';
-$lang['rssfailed']             = 'RSSã®å–å¾—ã«å¤±æ•—ã—ã¾ã—ãŸï¼š';
-$lang['nothingfound']          = '該当文書ã¯ã‚りã¾ã›ã‚“ã§ã—ãŸã€‚';
-$lang['mediaselect']           = 'メディアファイル';
-$lang['uploadsucc']            = 'アップロード完了';
-$lang['uploadfail']            = 'アップロードã«å¤±æ•—ã—ã¾ã—ãŸã€‚権é™ãŒã‚りã¾ã›ã‚“。';
-$lang['uploadwrong']           = 'ã‚¢ãƒƒãƒ—ãƒ­ãƒ¼ãƒ‰ã¯æ‹’å¦ã•れã¾ã—ãŸã€‚ã“ã®æ‹¡å¼µå­ã¯è¨±å¯ã•れã¦ã„ã¾ã›ã‚“。';
-$lang['uploadexist']           = 'åŒåã®ãƒ•ァイルãŒå­˜åœ¨ã™ã‚‹ãŸã‚ã€ã‚¢ãƒƒãƒ—ロードã§ãã¾ã›ã‚“。';
-$lang['uploadbadcontent']      = 'アップロードã•れãŸãƒ•ァイルã®å†…容ã¯ã€æ‹¡å¼µå­ %s ã¨ä¸€è‡´ã—ã¾ã›ã‚“。';
-$lang['uploadspam']            = 'スパムブラックリストã«ã‚ˆã‚Šã‚¢ãƒƒãƒ—ロードãŒé®æ–­ã•れã¾ã—ãŸã€‚';
-$lang['uploadxss']             = '悪æ„ã®ã‚る内容ã§ã‚ã‚‹å¯èƒ½æ€§ã«ã‚ˆã‚Šã€ã‚¢ãƒƒãƒ—ロードãŒé®æ–­ã•れã¾ã—ãŸã€‚';
-$lang['uploadsize']            = 'アップロードã—よã†ã¨ã—ãŸãƒ•ァイルã¯å¤§ãã™ãŽã¾ã™ï¼ˆæœ€å¤§ %s)。';
-$lang['deletesucc']            = 'ファイル "%s" ã¯å‰Šé™¤ã•れã¾ã—ãŸã€‚';
-$lang['deletefail']            = 'ファイル "%s" ãŒå‰Šé™¤ã§ãã¾ã›ã‚“。権é™ã‚’確èªã—ã¦ä¸‹ã•ã„。';
-$lang['mediainuse']            = 'ファイル "%s" ã¯ä½¿ç”¨ä¸­ã®ãŸã‚ã€å‰Šé™¤ã•れã¾ã›ã‚“ã§ã—ãŸã€‚';
-$lang['namespaces']            = 'åå‰ç©ºé–“';
-$lang['mediafiles']            = '有効ãªãƒ•ァイル:';
-$lang['accessdenied']          = 'ã“ã®ãƒšãƒ¼ã‚¸ã‚’閲覧ã™ã‚‹æ¨©é™ãŒã‚りã¾ã›ã‚“。';
-$lang['mediausage']            = 'ã“ã®ãƒ•ァイルを使用ã™ã‚‹ãŸã‚ã«ã¯æ¬¡ã®æ–‡æ³•を使用ã™ã‚‹ï¼š';
-$lang['mediaview']             = 'オリジナルファイルを閲覧';
-$lang['mediaroot']             = 'ルート';
-$lang['mediaupload']           = 'ファイルをç¾åœ¨ã®åå‰ç©ºé–“ã«ã‚¢ãƒƒãƒ—ロードã—ã¾ã™ã€‚副åå‰ç©ºé–“を使用ã™ã‚‹å ´åˆã«ã¯ã€ãƒ•ァイルåã®å‰ã«ã‚³ãƒ­ãƒ³ã§åŒºåˆ‡ã£ã¦è¿½åŠ ã—ã¦ãã ã•ã„。';
-$lang['mediaextchange']        = 'æ‹¡å¼µå­ãŒ .%s ã‹ã‚‰ .%s ã¸å¤‰æ›´ã•れã¾ã—ãŸã€‚';
-$lang['reference']             = 'å‚ç…§å…ˆ';
-$lang['ref_inuse']             = 'ã“ã®ãƒ•ァイルã¯ã€æ¬¡ã®ãƒšãƒ¼ã‚¸ã§ä½¿ç”¨ä¸­ã®ãŸã‚削除ã§ãã¾ã›ã‚“。';
-$lang['ref_hidden']            = 'ã“ã®ãƒšãƒ¼ã‚¸ã«å­˜åœ¨ã™ã‚‹ã„ãã¤ã‹ã®å‚ç…§å…ˆã¯ã€æ¨©é™ãŒç„¡ã„ãŸã‚読むã“ã¨ãŒã§ãã¾ã›ã‚“。';
-$lang['hits']                  = 'ヒット';
-$lang['quickhits']             = 'マッãƒã—ãŸæ–‡æ›¸å';
-$lang['toc']                   = '目次';
-$lang['current']               = 'ç¾åœ¨';
-$lang['yours']                 = 'ã‚ãªãŸã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³';
-$lang['diff']                  = 'ç¾åœ¨ã®ãƒªãƒ“ジョンã¨ã®å·®åˆ†ã‚’表示';
-$lang['diff2']                 = 'é¸æŠžã—ãŸãƒªãƒ“ジョン間ã®å·®åˆ†ã‚’表示';
-$lang['difflink']              = 'ã“ã®æ¯”較画é¢ã«ãƒªãƒ³ã‚¯ã™ã‚‹';
-$lang['diff_type']             = '差分ã®è¡¨ç¤ºæ–¹æ³•:';
-$lang['diff_inline']           = 'インライン';
-$lang['diff_side']             = '横ã«ä¸¦ã¹ã‚‹';
-$lang['diffprevrev']           = 'å‰ã®ãƒªãƒ“ジョン';
-$lang['diffnextrev']           = '次ã®ãƒªãƒ“ジョン';
-$lang['difflastrev']           = '最新リビジョン';
-$lang['diffbothprevrev']       = '両方ã¨ã‚‚å‰ã®ãƒªãƒ“ジョン';
-$lang['diffbothnextrev']       = '両方ã¨ã‚‚次ã®ãƒªãƒ“ジョン';
-$lang['line']                  = 'ライン';
-$lang['breadcrumb']            = 'トレース:';
-$lang['youarehere']            = 'ç¾åœ¨ä½ç½®:';
-$lang['lastmod']               = '最終更新:';
-$lang['by']                    = 'by';
-$lang['deleted']               = '削除';
-$lang['created']               = '作æˆ';
-$lang['restored']              = '以å‰ã®ãƒªãƒ“ジョンを復元 (%s)';
-$lang['external_edit']         = '外部編集';
-$lang['summary']               = 'ç·¨é›†ã®æ¦‚è¦';
-$lang['noflash']               = 'ã“ã®å†…容を表示ã™ã‚‹ãŸã‚ã«ã¯ <a href="http://www.adobe.com/products/flashplayer/">Adobe Flash Plugin</a> ãŒå¿…è¦ã§ã™ã€‚';
-$lang['download']              = 'ã“ã®éƒ¨åˆ†ã‚’ダウンロード';
-$lang['tools']                 = 'ツール';
-$lang['user_tools']            = 'ユーザ用ツール';
-$lang['site_tools']            = 'サイト用ツール';
-$lang['page_tools']            = 'ページ用ツール';
-$lang['skip_to_content']       = '内容ã¸ç§»å‹•';
-$lang['sidebar']               = 'サイドãƒãƒ¼';
-$lang['mail_newpage']          = '文書ã®è¿½åŠ ï¼š';
-$lang['mail_changed']          = '文書ã®å¤‰æ›´ï¼š';
-$lang['mail_subscribe_list']   = 'åå‰ç©ºé–“内ã§ãƒšãƒ¼ã‚¸ãŒå¤‰æ›´ï¼š';
-$lang['mail_new_user']         = 'æ–°è¦ãƒ¦ãƒ¼ã‚¶ãƒ¼ï¼š';
-$lang['mail_upload']           = 'ファイルã®ã‚¢ãƒƒãƒ—ロード:';
-$lang['changes_type']          = '表示ã™ã‚‹å¤‰æ›´ã®ã‚¿ã‚¤ãƒ—:';
-$lang['pages_changes']         = 'ページã®å¤‰æ›´';
-$lang['media_changes']         = 'メディアファイルã®å¤‰æ›´';
-$lang['both_changes']          = 'ページã¨ãƒ¡ãƒ‡ã‚£ã‚¢ãƒ•ァイルã®å¤‰æ›´';
-$lang['qb_bold']               = '太字';
-$lang['qb_italic']             = '斜体';
-$lang['qb_underl']             = '下線';
-$lang['qb_code']               = 'コード';
-$lang['qb_strike']             = '打消線';
-$lang['qb_h1']                 = '第一見出ã—';
-$lang['qb_h2']                 = '第二見出ã—';
-$lang['qb_h3']                 = '第三見出ã—';
-$lang['qb_h4']                 = '第四見出ã—';
-$lang['qb_h5']                 = '第五見出ã—';
-$lang['qb_h']                  = '見出ã—';
-$lang['qb_hs']                 = '見出ã—é¸æŠž';
-$lang['qb_hplus']              = '上ã®éšŽå±¤ã®è¦‹å‡ºã—';
-$lang['qb_hminus']             = '下ã®éšŽå±¤ã®è¦‹å‡ºã—';
-$lang['qb_hequal']             = 'åŒã˜éšŽå±¤ã®è¦‹å‡ºã—';
-$lang['qb_link']               = '内部リンク';
-$lang['qb_extlink']            = '外部リンク';
-$lang['qb_hr']                 = '横罫線';
-$lang['qb_ol']                 = '記å·ä»˜ãリスト';
-$lang['qb_ul']                 = '記å·ãªã—リスト';
-$lang['qb_media']              = 'イメージやファイルã®è¿½åŠ ';
-$lang['qb_sig']                = 'ç½²åã®æŒ¿å…¥';
-$lang['qb_smileys']            = 'スマイリー';
-$lang['qb_chars']              = '特殊文字';
-$lang['upperns']               = '上ã®éšŽå±¤ã®åå‰ç©ºé–“ã¸';
-$lang['metaedit']              = 'メタデータ編集';
-$lang['metasaveerr']           = 'ãƒ¡ã‚¿ãƒ‡ãƒ¼ã‚¿ã®æ›¸ãè¾¼ã¿ã«å¤±æ•—ã—ã¾ã—ãŸ';
-$lang['metasaveok']            = 'メタデータã¯ä¿å­˜ã•れã¾ã—ãŸ';
-$lang['img_title']             = 'タイトル:';
-$lang['img_caption']           = '見出ã—:';
-$lang['img_date']              = '日付:';
-$lang['img_fname']             = 'ファイルå:';
-$lang['img_fsize']             = 'サイズ:';
-$lang['img_artist']            = '作æˆè€…:';
-$lang['img_copyr']             = '著作権:';
-$lang['img_format']            = 'フォーマット:';
-$lang['img_camera']            = '使用カメラ:';
-$lang['img_keywords']          = 'キーワード:';
-$lang['img_width']             = 'å¹…:';
-$lang['img_height']            = '高ã•:';
-$lang['subscr_subscribe_success'] = '%sãŒ%sã®è³¼èª­ãƒªã‚¹ãƒˆã«ç™»éŒ²ã•れã¾ã—ãŸã€‚';
-$lang['subscr_subscribe_error'] = '%sã‚’%sã®è³¼èª­ãƒªã‚¹ãƒˆã¸ã®è¿½åŠ ã«å¤±æ•—ã—ã¾ã—ãŸã€‚';
-$lang['subscr_subscribe_noaddress'] = 'ã‚ãªãŸã®ãƒ­ã‚°ã‚¤ãƒ³ã«å¯¾å¿œã™ã‚‹ã‚¢ãƒ‰ãƒ¬ã‚¹ãŒãªã„ãŸã‚ã€è³¼èª­ãƒªã‚¹ãƒˆã¸è¿½åŠ ã™ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“。';
-$lang['subscr_unsubscribe_success'] = '%sã‚’%sã®è³¼èª­ãƒªã‚¹ãƒˆã‹ã‚‰å‰Šé™¤ã—ã¾ã—ãŸã€‚';
-$lang['subscr_unsubscribe_error'] = '%sã‚’%sã®è³¼èª­ãƒªã‚¹ãƒˆã‹ã‚‰ã®å‰Šé™¤ã«å¤±æ•—ã—ã¾ã—ãŸã€‚';
-$lang['subscr_already_subscribed'] = '%sã¯æ—¢ã«%sã«ç™»éŒ²ã•れã¦ã„ã¾ã™ã€‚';
-$lang['subscr_not_subscribed'] = '%sã¯%sã«ç™»éŒ²ã•れã¦ã„ã¾ã›ã‚“。';
-$lang['subscr_m_not_subscribed'] = 'ç¾åœ¨ã®ãƒšãƒ¼ã‚¸ã€ã‚‚ã—ãã¯åå‰ç©ºé–“ã«ã‚ãªãŸã¯ç™»éŒ²ã•れã¦ã„ã¾ã›ã‚“。';
-$lang['subscr_m_new_header']   = '購読を追加';
-$lang['subscr_m_current_header'] = 'ç¾åœ¨ã®è³¼èª­ãƒªã‚¹ãƒˆ';
-$lang['subscr_m_unsubscribe']  = '購読を解除';
-$lang['subscr_m_subscribe']    = '購読';
-$lang['subscr_m_receive']      = 'å—ä¿¡';
-$lang['subscr_style_every']    = 'å…¨ã¦ã®å¤‰æ›´ã«ãƒ¡ãƒ¼ãƒ«ã‚’é€ä¿¡';
-$lang['subscr_style_digest']   = 'ãれãžã‚Œã®ãƒšãƒ¼ã‚¸ã¸ã®å¤‰æ›´ã®è¦ç´„をメールã™ã‚‹ï¼ˆ%.2f 日毎)';
-$lang['subscr_style_list']     = 'å‰å›žã®ãƒ¡ãƒ¼ãƒ«ã‹ã‚‰å¤‰æ›´ã•れãŸãƒšãƒ¼ã‚¸ã‚’リスト(%.2f 日毎)';
-$lang['authtempfail']          = 'ユーザーèªè¨¼ãŒä¸€æ™‚çš„ã«ä½¿ç”¨ã§ããªããªã£ã¦ã„ã¾ã™ã€‚ã“ã®çŠ¶æ…‹ãŒç¶šã„ã¦ã„るよã†ã§ã‚れã°ã€Wikiã®ç®¡ç†è€…ã«é€£çµ¡ã—ã¦ä¸‹ã•ã„。';
-$lang['i_chooselang']          = 'ä½¿ç”¨è¨€èªžã‚’é¸æŠžã—ã¦ãã ã•ã„';
-$lang['i_installer']           = 'DokuWiki インストーラー';
-$lang['i_wikiname']            = 'Wikiå';
-$lang['i_enableacl']           = 'ACL(アクセス管ç†ï¼‰ã‚’使用ã™ã‚‹ï¼ˆæŽ¨å¥¨ï¼‰';
-$lang['i_superuser']           = 'スーパーユーザー';
-$lang['i_problems']            = 'å•題ãŒç™ºè¦‹ã•れã¾ã—ãŸã€‚以下ã«ç¤ºã™å•題を解決ã™ã‚‹ã¾ã§ã€ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã‚’続行ã§ãã¾ã›ã‚“。';
-$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']      = 'DokuWiki を実行ã™ã‚‹ php.ini ファイル㮠mbstring.func_overload ã¯ç„¡åйã«ã—ã¦ä¸‹ã•ã„。';
-$lang['i_permfail']            = '<code>%s</code> ã«æ›¸ãè¾¼ã¿ã§ãã¾ã›ã‚“。ã“ã®ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã®æ¨©é™ã‚’確èªã—ã¦ä¸‹ã•ã„。';
-$lang['i_confexists']          = '<code>%s</code> ã¯æ—¢ã«å­˜åœ¨ã—ã¾ã™';
-$lang['i_writeerr']            = '<code>%s</code> を作æˆã§ãã¾ã›ã‚“。ディレクトリã¨ãƒ•ã‚¡ã‚¤ãƒ«ã®æ¨©é™ã‚’確èªã—ã€ãれらを手動ã§ä½œæˆã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚';
-$lang['i_badhash']             = 'dokuwiki.php ãŒèªè­˜ã§ããªã„ã‹ã€ç·¨é›†ã•れã¦ã„ã¾ã™ï¼ˆhash=<code>%s</code>)';
-$lang['i_badval']              = '<code>%s</code> - æ­£ã—ããªã„ã€ã‚‚ã—ãã¯å€¤ãŒç©ºã§ã™';
-$lang['i_success']             = 'è¨­å®šãƒ•ã‚¡ã‚¤ãƒ«ã¯æ­£ã—ã作æˆã•れã¾ã—ãŸã€‚<a href="doku.php?id=wiki:welcome">作æˆã—㟠DokuWiki</a>を使用ã™ã‚‹ã«ã¯ install.php を削除ã—ã¦ãã ã•ã„。';
-$lang['i_failure']             = '設定ファイルã®ä½œæˆä¸­ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚<a href="doku.php?id=wiki:welcome">作æˆã—㟠DokuWiki</a>を使用ã™ã‚‹å‰ã«ã€ãれらã®å•題を手動ã§ä¿®æ­£ã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚';
-$lang['i_policy']              = 'ACLåˆæœŸè¨­å®š';
-$lang['i_pol0']                = 'オープン Wiki(全ã¦ã®äººã«ã€é–²è¦§ãƒ»æ›¸ãè¾¼ã¿ãƒ»ã‚¢ãƒƒãƒ—ロードを許å¯ï¼‰';
-$lang['i_pol1']                = 'パブリック Wiki(閲覧ã¯å…¨ã¦ã®äººãŒå¯èƒ½ã€æ›¸ãè¾¼ã¿ãƒ»ã‚¢ãƒƒãƒ—ロードã¯ç™»éŒ²ãƒ¦ãƒ¼ã‚¶ãƒ¼ã®ã¿ï¼‰';
-$lang['i_pol2']                = 'クローズド Wiki (登録ユーザーã«ã®ã¿ä½¿ç”¨ã‚’許å¯)';
-$lang['i_allowreg']            = 'ユーザ自身ã§ç™»éŒ²å¯èƒ½';
-$lang['i_retry']               = 'å†è©¦è¡Œ';
-$lang['i_license']             = 'ã‚ãªãŸãŒä½œæˆã—ãŸã‚³ãƒ³ãƒ†ãƒ³ãƒ„ãŒå±žã™ã‚‹ãƒ©ã‚¤ã‚»ãƒ³ã‚¹ã‚’é¸æŠžã—ã¦ãã ã•ã„:';
-$lang['i_license_none']        = 'ライセンス情報を表示ã—ã¾ã›ã‚“。';
-$lang['i_pop_field']           = 'Dokuwiki ã®å†…容ã®å‘上ã«å”力ã—ã¦ä¸‹ã•ã„:';
-$lang['i_pop_label']           = '月ã«ä¸€å›žã€DokuWikiã®é–‹ç™ºè€…ã«åŒ¿åã®ä½¿ç”¨ãƒ‡ãƒ¼ã‚¿ã‚’é€ä¿¡ã—ã¾ã™ã€‚';
-$lang['recent_global']         = 'ç¾åœ¨ã€<b>%s</b> åå‰ç©ºé–“内ã®å¤‰æ›´ç‚¹ã‚’閲覧中ã§ã™ã€‚<a href="%s">Wikiå…¨ä½“ã®æœ€è¿‘ã®å¤‰æ›´ç‚¹ã®ç¢ºèª</a>ã‚‚ã§ãã¾ã™ã€‚';
-$lang['years']                 = '%då¹´å‰';
-$lang['months']                = '%dカ月å‰';
-$lang['weeks']                 = '%d週間å‰';
-$lang['days']                  = '%dæ—¥å‰';
-$lang['hours']                 = '%d時間å‰';
-$lang['minutes']               = '%d分å‰';
-$lang['seconds']               = '%dç§’å‰';
-$lang['wordblock']             = 'スパムã¨èªè­˜ã•れるテキストãŒå«ã¾ã‚Œã¦ã„ã‚‹ãŸã‚ã€å¤‰æ›´ã¯ä¿å­˜ã•れã¾ã›ã‚“ã§ã—ãŸã€‚';
-$lang['media_uploadtab']       = 'アップロード';
-$lang['media_searchtab']       = '検索';
-$lang['media_file']            = 'ファイル';
-$lang['media_viewtab']         = '詳細';
-$lang['media_edittab']         = '編集';
-$lang['media_historytab']      = '履歴';
-$lang['media_list_thumbs']     = 'サムãƒã‚¤ãƒ«';
-$lang['media_list_rows']       = '行';
-$lang['media_sort_name']       = 'åå‰';
-$lang['media_sort_date']       = '日付';
-$lang['media_namespaces']      = 'åå‰ç©ºé–“ã‚’é¸æŠž';
-$lang['media_files']           = '%s 内ã®ãƒ•ァイル';
-$lang['media_upload']          = '%s ã«ã‚¢ãƒƒãƒ—ロード';
-$lang['media_search']          = '%s å†…ã§æ¤œç´¢';
-$lang['media_view']            = '%s';
-$lang['media_viewold']         = '%2$s ã« %1$s';
-$lang['media_edit']            = '%s を編集';
-$lang['media_history']         = '%s ã®å±¥æ­´';
-$lang['media_meta_edited']     = 'メタデータãŒç·¨é›†ã•れã¾ã—ãŸ';
-$lang['media_perm_read']       = 'ファイルを閲覧ã™ã‚‹æ¨©é™ãŒã‚りã¾ã›ã‚“。';
-$lang['media_perm_upload']     = 'ファイルをアップロードã™ã‚‹æ¨©é™ãŒã‚りã¾ã›ã‚“。';
-$lang['media_update']          = 'æ–°ã—ã„ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã‚’アップロード';
-$lang['media_restore']         = 'ã“ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã‚’復元';
-$lang['media_acl_warning']     = 'ACL制é™ã‚„éžè¡¨ç¤ºãƒšãƒ¼ã‚¸ã¯è¡¨ç¤ºã•れãªã„ã®ã§ã€ã“ã®ãƒªã‚¹ãƒˆã¯å®Œå…¨ã§ãªã„å ´åˆãŒã‚りã¾ã™ã€‚';
-$lang['currentns']             = 'ç¾åœ¨ã®åå‰ç©ºé–“';
-$lang['searchresult']          = 'æ¤œç´¢çµæžœ';
-$lang['plainhtml']             = 'プレーンHTML';
-$lang['wikimarkup']            = 'Wikiマークアップ';
-$lang['page_nonexist_rev']     = '指定ページ %s ã¯ã‚りã¾ã›ã‚“。ã“ã®ãƒªãƒ³ã‚¯ <a href="%s">%s</a> ã‹ã‚‰ä½œæˆã§ãã¾ã™ã€‚';
-$lang['unable_to_parse_date']  = 'パラメータ "%s" を処ç†ã§ãã¾ã›ã‚“。';
-$lang['email_signature_text']  = 'ã“ã®ãƒ¡ãƒ¼ãƒ«ã¯æ¬¡ã®DokuWikiより自動的ã«é€ä¿¡ã•れã¦ã„ã¾ã™ã€‚
-@DOKUWIKIURL@';
diff --git a/wiki/inc/lang/ja/locked.txt b/wiki/inc/lang/ja/locked.txt
deleted file mode 100644
index 1c37c93..0000000
--- a/wiki/inc/lang/ja/locked.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== 文書ロック中 ======
-
-ã“ã®æ–‡æ›¸ã¯ä»–ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã«ã‚ˆã£ã¦ãƒ­ãƒƒã‚¯ã•れã¦ã„ã¾ã™ã€‚編集ãŒå®Œäº†ã™ã‚‹ã‹ã€ãƒ­ãƒƒã‚¯ã®æœŸé™ãŒåˆ‡ã‚Œã‚‹ã®ã‚’å¾…ã£ã¦ä¸‹ã•ã„。
diff --git a/wiki/inc/lang/ja/login.txt b/wiki/inc/lang/ja/login.txt
deleted file mode 100644
index ef18d37..0000000
--- a/wiki/inc/lang/ja/login.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== ログイン ======
-
-ユーザーåã¨ãƒ‘スワードを入力ã—ã¦ãƒ­ã‚°ã‚¤ãƒ³ã—ã¦ãã ã•ã„(クッキーを有効ã«ã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ï¼‰ã€‚
-
diff --git a/wiki/inc/lang/ja/mailtext.txt b/wiki/inc/lang/ja/mailtext.txt
deleted file mode 100644
index 4bad3d9..0000000
--- a/wiki/inc/lang/ja/mailtext.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-DokuWiki å†…ã®æ–‡æ›¸ãŒè¿½åŠ ã‚‚ã—ãã¯å¤‰æ›´ã•れã¾ã—ãŸã€‚詳細ã¯ä»¥ä¸‹ã®é€šã‚Šã§ã™ã€‚
-
-日付        : @DATE@
-ブラウザ    : @BROWSER@
-IPアドレス  : @IPADDRESS@
-ãƒ›ã‚¹ãƒˆå    : @HOSTNAME@
-å‰ãƒªãƒ“ジョン: @OLDPAGE@
-新リビジョン: @NEWPAGE@
-編集ã®ã‚µãƒžãƒª: @SUMMARY@
-ãƒ¦ãƒ¼ã‚¶ãƒ¼å  : @USER@
-
-@DIFF@
diff --git a/wiki/inc/lang/ja/mailwrap.html b/wiki/inc/lang/ja/mailwrap.html
deleted file mode 100644
index d257190..0000000
--- a/wiki/inc/lang/ja/mailwrap.html
+++ /dev/null
@@ -1,13 +0,0 @@
-<html>
-<head>
-<title>@TITLE@</title>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-</head>
-<body>
-
-@HTMLBODY@
-
-<br /><hr />
-<small>@EMAILSIGNATURE@</small>
-</body>
-</html>
\ No newline at end of file
diff --git a/wiki/inc/lang/ja/newpage.txt b/wiki/inc/lang/ja/newpage.txt
deleted file mode 100644
index d03169f..0000000
--- a/wiki/inc/lang/ja/newpage.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== ã“ã®ãƒˆãƒ”ックã«ã¯æ–‡æ›¸ãŒå­˜åœ¨ã—ã¾ã›ã‚“ ======
-
-ã“ã®ãƒˆãƒ”ãƒƒã‚¯ã«æ–‡æ›¸ãŒä½œæˆã•れã¦ã„ã¾ã›ã‚“。 ã‚‚ã—ã€æ–‡æ›¸ä½œæˆã®æ¨©é™ãŒã‚ã‚‹å ´åˆã¯ã€''文書ã®ä½œæˆ''をクリックã—㦠最åˆã®æ–‡æ›¸ã‚’作æˆã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚
-
diff --git a/wiki/inc/lang/ja/norev.txt b/wiki/inc/lang/ja/norev.txt
deleted file mode 100644
index 48ccde7..0000000
--- a/wiki/inc/lang/ja/norev.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== リビジョンãŒå­˜åœ¨ã—ã¾ã›ã‚“ ======
-
-指定ã•れãŸãƒªãƒ“ジョン存在ã—ã¾ã›ã‚“。''以å‰ã®ãƒªãƒ“ジョン''をクリックã—ã¦ç¢ºèªã—ã¦ãã ã•ã„。
-
diff --git a/wiki/inc/lang/ja/password.txt b/wiki/inc/lang/ja/password.txt
deleted file mode 100644
index fa11b10..0000000
--- a/wiki/inc/lang/ja/password.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-ã“ã‚“ã«ã¡ã¯ @FULLNAME@! ã•ã‚“
-
-@TITLE@(@DOKUWIKIURL@)ã«ç™»éŒ²ã•れãŸãƒ¦ãƒ¼ã‚¶ãƒ¼æƒ…å ±ã¯ä»¥ä¸‹ã®é€šã‚Šã§ã™ã€‚
-
-ユーザーå : @LOGIN@
-パスワード : @PASSWORD@
diff --git a/wiki/inc/lang/ja/preview.txt b/wiki/inc/lang/ja/preview.txt
deleted file mode 100644
index ee839cd..0000000
--- a/wiki/inc/lang/ja/preview.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== プレビュー ======
-
-ç·¨é›†ä¸­ã®æ–‡æ›¸ã®ãƒ—レビューã§ã™ã€‚確èªç”¨ãªã®ã§**ä¿å­˜ã•れã¦ã„ãªã„**ã“ã¨ã«æ³¨æ„ã—ã¦ãã ã•ã„。
-
diff --git a/wiki/inc/lang/ja/pwconfirm.txt b/wiki/inc/lang/ja/pwconfirm.txt
deleted file mode 100644
index c53b784..0000000
--- a/wiki/inc/lang/ja/pwconfirm.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-ã“ã‚“ã«ã¡ã¯ @FULLNAME@ ã•ã‚“
-
-@TITLE@(@DOKUWIKIURL@ï¼‰ã«æ–°è¦ãƒ‘スワード発行ã®ãƒªã‚¯ã‚¨ã‚¹ãƒˆãŒã‚りã¾ã—ãŸã€‚
-
-ã‚‚ã—ã“ã®ãƒªã‚¯ã‚¨ã‚¹ãƒˆã«è¦šãˆãŒç„¡ã‘れã°ã€ã“ã®ãƒ¡ãƒ¼ãƒ«ã¯ç„¡è¦–ã—ã¦ãã ã•ã„。
-
-ã“ã®ãƒªã‚¯ã‚¨ã‚¹ãƒˆã‚’行ã£ãŸæœ¬äººã§ã‚れã°ã€ä»¥ä¸‹ã®ãƒªãƒ³ã‚¯ã‹ã‚‰ä½œæ¥­ã‚’完了ã•ã›ã¦ãã ã•ã„。
-
-@CONFIRM@
diff --git a/wiki/inc/lang/ja/read.txt b/wiki/inc/lang/ja/read.txt
deleted file mode 100644
index 14137cc..0000000
--- a/wiki/inc/lang/ja/read.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-ã“ã®æ–‡æ›¸ã¯èª­å–専用ã§ã™ã€‚文書ã®ã‚½ãƒ¼ã‚¹ã‚’閲覧ã™ã‚‹ã“ã¨ã¯å¯èƒ½ã§ã™ãŒã€å¤‰æ›´ã¯ã§ãã¾ã›ã‚“。もã—変更ã—ãŸã„å ´åˆã¯ç®¡ç†è€…ã«é€£çµ¡ã—ã¦ãã ã•ã„。
-
diff --git a/wiki/inc/lang/ja/recent.txt b/wiki/inc/lang/ja/recent.txt
deleted file mode 100644
index d18fd1b..0000000
--- a/wiki/inc/lang/ja/recent.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== 最近ã®å¤‰æ›´ ======
-
-ä»¥ä¸‹ã®æ–‡æ›¸ã¯æœ€è¿‘æ›´æ–°ã•れãŸã‚‚ã®ã§ã™ã€‚
-
-
diff --git a/wiki/inc/lang/ja/register.txt b/wiki/inc/lang/ja/register.txt
deleted file mode 100644
index 0cd2786..0000000
--- a/wiki/inc/lang/ja/register.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== æ–°è¦ãƒ¦ãƒ¼ã‚¶ãƒ¼ç™»éŒ² ======
-
-ã“ã®Wikiã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ç™»éŒ²ã‚’行ã†ãŸã‚ã«ã¯ã€ä»¥ä¸‹ã®æƒ…報を全ã¦å…¥åŠ›ã—ã¦ä¸‹ã•ã„。 ã‚‚ã—以下ã®é …ç›®ã«ãƒ‘スワードãŒå­˜åœ¨ã—ãªã„å ´åˆã€ãƒ‘スワードã¯ãƒ¡ãƒ¼ãƒ«ã«ã¦é€ä¿¡ã•れã¾ã™ã®ã§ã€ å¿…ãš**有効ãªãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹**を入力ã—ã¦ãã ã•ã„。 ã¾ãŸã€ãƒ­ã‚°ã‚¤ãƒ³åã¯[[doku>ja:pagename|ページå]]ã«æº–æ‹ ã—ã¦ã„ãªã‘れã°ãªã‚Šã¾ã›ã‚“。
-
diff --git a/wiki/inc/lang/ja/registermail.txt b/wiki/inc/lang/ja/registermail.txt
deleted file mode 100644
index ad5241a..0000000
--- a/wiki/inc/lang/ja/registermail.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-æ–°ã—ã„ユーザーãŒç™»éŒ²ã•れã¾ã—ãŸã€‚ユーザー情報ã¯ä»¥ä¸‹ã®é€šã‚Šã§ã™ã€‚
-
-ãƒ¦ãƒ¼ã‚¶ãƒ¼å     : @NEWUSER@
-フルãƒãƒ¼ãƒ      : @NEWNAME@
-メールアドレス : @NEWEMAIL@
-
-登録日         : @DATE@
-ブラウザ       : @BROWSER@
-IPアドレス     : @IPADDRESS@
-ãƒ›ã‚¹ãƒˆå       : @HOSTNAME@
diff --git a/wiki/inc/lang/ja/resendpwd.txt b/wiki/inc/lang/ja/resendpwd.txt
deleted file mode 100644
index 23dd6ff..0000000
--- a/wiki/inc/lang/ja/resendpwd.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== パスワードå†ç™ºè¡Œ ======
-
-ã“ã®Wikiã§ä½¿ç”¨ã™ã‚‹æ–°ã—ã„パスワードをリクエストã™ã‚‹ãŸã‚ã«ã€ãƒ¦ãƒ¼ã‚¶ãƒ¼åを入力ã—ã¦ä¸‹ã•ã„。 新パスワード発行リクエストã®ç¢ºèªãƒ¡ãƒ¼ãƒ«ãŒã€ç™»éŒ²ã•れã¦ã„るメールアドレスã«é€ä¿¡ã•れã¾ã™ã€‚
-
diff --git a/wiki/inc/lang/ja/resetpwd.txt b/wiki/inc/lang/ja/resetpwd.txt
deleted file mode 100644
index a414af9..0000000
--- a/wiki/inc/lang/ja/resetpwd.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== æ–°ã—ã„パスワードをセット ======
-
-ã“ã®Wikiã§ã®ã€ã‚ãªãŸã®ã‚¢ã‚«ã‚¦ãƒ³ãƒˆç”¨ã®æ–°ã—ã„パスワードを入力ã—ã¦ä¸‹ã•ã„
\ No newline at end of file
diff --git a/wiki/inc/lang/ja/revisions.txt b/wiki/inc/lang/ja/revisions.txt
deleted file mode 100644
index e43731c..0000000
--- a/wiki/inc/lang/ja/revisions.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== 以å‰ã®ãƒªãƒ“ジョン ======
-
-以下ã¯ã“ã®æ–‡æ›¸ã®ä»¥å‰ã®ãƒªãƒ“ジョンã§ã™ã€‚復元ã™ã‚‹ã«ã¯''文書ã®ç·¨é›†''をクリックã€ãã®å¾Œä¿å­˜ã—ã¦ãã ã•ã„。
-
diff --git a/wiki/inc/lang/ja/searchpage.txt b/wiki/inc/lang/ja/searchpage.txt
deleted file mode 100644
index 3c8751a..0000000
--- a/wiki/inc/lang/ja/searchpage.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== 検索 ======
-
-ä»¥ä¸‹ã«æ¤œç´¢çµæžœã‚’表示ã—ã¾ã™ã€‚@CREATEPAGEINFO@
-
diff --git a/wiki/inc/lang/ja/showrev.txt b/wiki/inc/lang/ja/showrev.txt
deleted file mode 100644
index d8ce478..0000000
--- a/wiki/inc/lang/ja/showrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**以å‰ã®ãƒªãƒ“ã‚¸ãƒ§ãƒ³ã®æ–‡æ›¸ã§ã™**
-----
diff --git a/wiki/inc/lang/ja/stopwords.txt b/wiki/inc/lang/ja/stopwords.txt
deleted file mode 100644
index 628e46e..0000000
--- a/wiki/inc/lang/ja/stopwords.txt
+++ /dev/null
@@ -1,29 +0,0 @@
-# 以下ã¯ã€ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ä½œæˆæ™‚ã«ç„¡è¦–ã™ã‚‹èªžå¥ã®ãƒªã‚¹ãƒˆã§ã™ã€‚一行ã«ä¸€å˜èªžãšã¤è¨˜å…¥ã—ã¦ãã ã•ã„。
-# UNIXã§ç”¨ã„られる改行コード(LF)を使用ã—ã¦ãã ã•ã„
-# 3文字より短ã„語å¥ã¯è‡ªå‹•çš„ã«ç„¡è¦–ã•れるã®ã§ã€ãƒªã‚¹ãƒˆã«åŠ ãˆã‚‹å¿…è¦ã¯ã‚りã¾ã›ã‚“。
-# ã“ã®ãƒªã‚¹ãƒˆã¯æ¬¡ã®ã‚µã‚¤ãƒˆã‚’ã‚‚ã¨ã«ä½œæˆã•れã¦ã„ã¾ã™ï¼ˆhttp://www.ranks.nl/stopwords/)
-about
-are
-and
-you
-your
-them
-their
-com
-for
-from
-into
-how
-that
-the
-this
-was
-what
-when
-where
-who
-will
-with
-und
-the
-www
diff --git a/wiki/inc/lang/ja/subscr_digest.txt b/wiki/inc/lang/ja/subscr_digest.txt
deleted file mode 100644
index 026a2fe..0000000
--- a/wiki/inc/lang/ja/subscr_digest.txt
+++ /dev/null
@@ -1,17 +0,0 @@
-ã“ã‚“ã«ã¡ã¯ã€‚
-
-@TITLE@ 内ã®ãƒšãƒ¼ã‚¸ @PAGE@ ã¯å¤‰æ›´ã•れã¾ã—ãŸã€‚
-変更点ã¯ä»¥ä¸‹ã®é€šã‚Šã§ã™ï¼š
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-å¤ã„リビジョン: @OLDPAGE@
-æ–°ã—ã„リビジョン: @NEWPAGE@
-
-ã“ã®é€šçŸ¥ã‚’解除ã™ã‚‹ã«ã¯æ¬¡ã®ã‚¦ã‚£ã‚­ã¸ãƒ­ã‚°ã‚¤ãƒ³ã—
-@DOKUWIKIURL@
-ãã®å¾Œã€
-@SUBSCRIBE@
-ページã¨åå‰ç©ºé–“ã®å¤‰æ›´ã«å¯¾ã™ã‚‹è³¼èª­ã‚’解除ã—ã¦ãã ã•ã„。
diff --git a/wiki/inc/lang/ja/subscr_form.txt b/wiki/inc/lang/ja/subscr_form.txt
deleted file mode 100644
index 5767189..0000000
--- a/wiki/inc/lang/ja/subscr_form.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== è³¼èª­ç®¡ç† ======
-
-ã“ã®ãƒšãƒ¼ã‚¸ã§ã€ç¾åœ¨ã®ãƒšãƒ¼ã‚¸ã¨åå‰ç©ºé–“ã«å¯¾ã™ã‚‹è³¼èª­ã‚’管ç†ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚
\ No newline at end of file
diff --git a/wiki/inc/lang/ja/subscr_list.txt b/wiki/inc/lang/ja/subscr_list.txt
deleted file mode 100644
index dbe37c7..0000000
--- a/wiki/inc/lang/ja/subscr_list.txt
+++ /dev/null
@@ -1,15 +0,0 @@
-ã“ã‚“ã«ã¡ã¯ã€‚
-
-@TITLE@ ã® åå‰ç©ºé–“ @PAGE@ ã«ã‚るページãŒå¤‰æ›´ã•れã¾ã—ãŸã€‚
-変更点ã¯ä»¥ä¸‹ã®é€šã‚Šã§ã™:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-
-ã“ã®é€šçŸ¥ã‚’解除ã™ã‚‹ã«ã¯æ¬¡ã®ã‚¦ã‚£ã‚­ã¸ãƒ­ã‚°ã‚¤ãƒ³ã—
-@DOKUWIKIURL@
-ãã®å¾Œã€
-@SUBSCRIBE@
-ページã¨åå‰ç©ºé–“ã®å¤‰æ›´ã«å¯¾ã™ã‚‹è³¼èª­ã‚’解除ã—ã¦ãã ã•ã„。
diff --git a/wiki/inc/lang/ja/subscr_single.txt b/wiki/inc/lang/ja/subscr_single.txt
deleted file mode 100644
index 4dac31e..0000000
--- a/wiki/inc/lang/ja/subscr_single.txt
+++ /dev/null
@@ -1,20 +0,0 @@
-ã“ã‚“ã«ã¡ã¯ã€‚
-
-@TITLE@ ã®ã‚¦ã‚£ã‚­ã«ã‚るページ @PAGE@ ãŒå¤‰æ›´ã•れã¾ã—ãŸã€‚
-変更点ã¯ä»¥ä¸‹ã®é€šã‚Šã§ã™:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-日付 : @DATE@
-ユーザー : @USER@
-変更概è¦: @SUMMARY@
-å¤ã„リビジョン: @OLDPAGE@
-æ–°ã—ã„リビジョン: @NEWPAGE@
-
-ã“ã®é€šçŸ¥ã‚’解除ã™ã‚‹ã«ã¯æ¬¡ã®ã‚¦ã‚£ã‚­ã¸ãƒ­ã‚°ã‚¤ãƒ³ã—
-@DOKUWIKIURL@
-ãã®å¾Œã€
-@SUBSCRIBE@
-ページã¨åå‰ç©ºé–“ã®å¤‰æ›´ã«å¯¾ã™ã‚‹è³¼èª­ã‚’解除ã—ã¦ãã ã•ã„。
diff --git a/wiki/inc/lang/ja/updateprofile.txt b/wiki/inc/lang/ja/updateprofile.txt
deleted file mode 100644
index e83d929..0000000
--- a/wiki/inc/lang/ja/updateprofile.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== アカウント情報更新 ======
-
-変更ã—ãŸã„項目を入力ã—ã¦ä¸‹ã•ã„。ユーザーåã¯å¤‰æ›´ã§ãã¾ã›ã‚“。
-
-
diff --git a/wiki/inc/lang/ja/uploadmail.txt b/wiki/inc/lang/ja/uploadmail.txt
deleted file mode 100644
index 8734c91..0000000
--- a/wiki/inc/lang/ja/uploadmail.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-ãŠä½¿ã„ã®DokuWikiã«ãƒ•ァイルãŒã‚¢ãƒƒãƒ—ロードã•れã¾ã—ãŸã€‚詳細ã¯ä»¥ä¸‹ã®é€šã‚Šã§ã™ã€‚
-
-ファイル    : @MEDIA@
-日付        : @DATE@
-ブラウザ    : @BROWSER@
-IPアドレス  : @IPADDRESS@
-ãƒ›ã‚¹ãƒˆå    : @HOSTNAME@
-サイズ      : @SIZE@
-MIMEタイプ  : @MIME@
-ãƒ¦ãƒ¼ã‚¶ãƒ¼å  : @USER@
diff --git a/wiki/inc/lang/ka/admin.txt b/wiki/inc/lang/ka/admin.txt
deleted file mode 100644
index 97072a4..0000000
--- a/wiki/inc/lang/ka/admin.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== მáƒáƒ áƒ—ვრ======
-
-ქვემáƒáƒ— თქვენ ხედáƒáƒ•თ áƒáƒ“მინისტრáƒáƒªáƒ˜áƒ£áƒšáƒ˜ áƒáƒžáƒ”რáƒáƒªáƒ˜áƒ”ბის სიáƒáƒ¡ «დáƒáƒ™áƒ£áƒ•იკიში».
-
diff --git a/wiki/inc/lang/ka/adminplugins.txt b/wiki/inc/lang/ka/adminplugins.txt
deleted file mode 100644
index 011bfeb..0000000
--- a/wiki/inc/lang/ka/adminplugins.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== დáƒáƒ›áƒáƒ¢áƒ”ბითი პლáƒáƒ’ინები =====
\ No newline at end of file
diff --git a/wiki/inc/lang/ka/backlinks.txt b/wiki/inc/lang/ka/backlinks.txt
deleted file mode 100644
index 7b54797..0000000
--- a/wiki/inc/lang/ka/backlinks.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== გáƒáƒ“მáƒáƒ›áƒ˜áƒ¡áƒáƒ›áƒáƒ áƒ—ებრ======
-
-გვერდები რáƒáƒ›áƒšáƒ”ბიც áƒáƒœáƒ˜áƒ¨áƒœáƒ”ბენ áƒáƒ› გვერდზე.
-
diff --git a/wiki/inc/lang/ka/conflict.txt b/wiki/inc/lang/ka/conflict.txt
deleted file mode 100644
index 1b1eb04..0000000
--- a/wiki/inc/lang/ka/conflict.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== გáƒáƒ›áƒáƒ•იდრუფრრáƒáƒ®áƒáƒšáƒ˜ ვერსირ======
-
-áƒáƒ áƒ¡áƒ”ბáƒáƒ‘ს დáƒáƒ™áƒ£áƒ›áƒ”ნტის უფრრáƒáƒ®áƒáƒšáƒ˜ ვერსიáƒ, რáƒáƒ›áƒ”ლიც თქვენ დáƒáƒáƒ áƒ”დáƒáƒ¥áƒ¢áƒ˜áƒ áƒ”თ. ეს ხდებრმáƒáƒ¨áƒ˜áƒœ, რáƒáƒ“ესáƒáƒª სხვრმáƒáƒ›áƒ®áƒ›áƒáƒ áƒ”ბელი áƒáƒ áƒ”დáƒáƒ¥áƒ¢áƒ˜áƒ áƒ”ბს დáƒáƒ™áƒ£áƒ›áƒ”ნტს, სáƒáƒœáƒáƒ› თქვენ áƒáƒ™áƒ”თებდით იგივეს. 
-
-ყურáƒáƒ“ღებით დáƒáƒáƒ™áƒ•ირდით ქვემáƒáƒ— მáƒáƒ§áƒ•áƒáƒœáƒ˜áƒš გáƒáƒœáƒ¡áƒ®áƒ•áƒáƒ•ებებს, დრგáƒáƒ“áƒáƒ¬áƒ§áƒ•იტეთ რáƒáƒ›áƒ”ლი ვერსირსჯáƒáƒ‘ს. თუ შენáƒáƒ®áƒ•áƒáƒ¡ დáƒáƒáƒ­áƒ”რთ, თქვენი ვერსირშეინáƒáƒ®áƒ”ბáƒ.
\ No newline at end of file
diff --git a/wiki/inc/lang/ka/denied.txt b/wiki/inc/lang/ka/denied.txt
deleted file mode 100644
index bb89104..0000000
--- a/wiki/inc/lang/ka/denied.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== მიუწვდáƒáƒ›áƒ”ლირ======
-
-თქვენ áƒáƒ  გáƒáƒ¥áƒ•თ სáƒáƒ™áƒ›áƒáƒ áƒ˜áƒ¡áƒ˜ უფლებები. იქნებ áƒáƒ•ტáƒáƒ áƒ˜áƒ–áƒáƒªáƒ˜áƒ დáƒáƒ’áƒáƒ•იწყდáƒáƒ—?
diff --git a/wiki/inc/lang/ka/diff.txt b/wiki/inc/lang/ka/diff.txt
deleted file mode 100644
index c635e45..0000000
--- a/wiki/inc/lang/ka/diff.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== გáƒáƒœáƒ¡áƒ®áƒ•áƒáƒ•ებები ======
-ქვემáƒáƒ— მáƒáƒ§áƒ•áƒáƒœáƒ˜áƒšáƒáƒ˜ გáƒáƒœáƒ¡áƒ®áƒ•áƒáƒ•ებები მსგáƒáƒ•ს გვერდებს შáƒáƒ áƒ˜áƒ¡.
-
diff --git a/wiki/inc/lang/ka/draft.txt b/wiki/inc/lang/ka/draft.txt
deleted file mode 100644
index f3356dd..0000000
--- a/wiki/inc/lang/ka/draft.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== ნáƒáƒžáƒáƒ•ნირჩáƒáƒœáƒáƒ¬áƒ”რი ======
-
-გვერდის რედáƒáƒ¥áƒ¢áƒ˜áƒ áƒ”ბრáƒáƒ  იყრდáƒáƒ›áƒ—áƒáƒ•რებული. 
\ No newline at end of file
diff --git a/wiki/inc/lang/ka/edit.txt b/wiki/inc/lang/ka/edit.txt
deleted file mode 100644
index 3fffceb..0000000
--- a/wiki/inc/lang/ka/edit.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-დáƒáƒáƒ áƒ”დáƒáƒ¥áƒ¢áƒ˜áƒ áƒ”თ გვერდი დრდáƒáƒáƒ­áƒ˜áƒ áƒ”თ «შენáƒáƒ®áƒ•áƒáƒ¡Â». წáƒáƒ˜áƒ™áƒ˜áƒ—ხეთ [[wiki:syntax|FAQ]] ვიკის სინტáƒáƒ¥áƒ¡áƒ˜áƒ¡áƒ—áƒáƒœ გáƒáƒ¡áƒáƒªáƒœáƒáƒ‘áƒáƒ“. დáƒáƒáƒ áƒ”დáƒáƒ¥áƒ¢áƒ˜áƒ áƒ”თ გვერდი მხáƒáƒšáƒáƒ“ იმ შემთხვევáƒáƒ¨áƒ˜ თუ áƒáƒžáƒ˜áƒ áƒ”ბთ გვერდის გáƒáƒ£áƒ›áƒ¯áƒáƒ‘ესებáƒáƒ¡. თუ თქვენ რáƒáƒ›áƒ˜áƒ¡ დáƒáƒ¢áƒ”სტვრგინდáƒáƒ—, გáƒáƒ›áƒáƒ˜áƒ§áƒ”ნეთ სპეციáƒáƒšáƒ£áƒ áƒ˜ გვერდი.
-
diff --git a/wiki/inc/lang/ka/editrev.txt b/wiki/inc/lang/ka/editrev.txt
deleted file mode 100644
index 17ccff5..0000000
--- a/wiki/inc/lang/ka/editrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**თქვენ áƒáƒ¢áƒ•ირთეთ დáƒáƒ™áƒ£áƒ›áƒ”ნტის ძველი ვერსიáƒ** მისი შენáƒáƒ®áƒ•ით თქვენ შექმნით áƒáƒ®áƒáƒš ვერსიáƒáƒ¡ იგივე შიგთáƒáƒ•სით.
-----
diff --git a/wiki/inc/lang/ka/index.txt b/wiki/inc/lang/ka/index.txt
deleted file mode 100644
index 7daef7f..0000000
--- a/wiki/inc/lang/ka/index.txt
+++ /dev/null
@@ -1 +0,0 @@
-====== სტáƒáƒ¢áƒ˜áƒ”ბი ====== áƒáƒ¥ ნáƒáƒ©áƒ•ენებირყველრსტáƒáƒ¢áƒ˜áƒ
\ No newline at end of file
diff --git a/wiki/inc/lang/ka/jquery.ui.datepicker.js b/wiki/inc/lang/ka/jquery.ui.datepicker.js
deleted file mode 100644
index 1f596cb..0000000
--- a/wiki/inc/lang/ka/jquery.ui.datepicker.js
+++ /dev/null
@@ -1,48 +0,0 @@
-/* Georgian (UTF-8) initialisation for the jQuery UI date picker plugin. */
-/* Written by Lado Lomidze (lado.lomidze@gmail.com). */
-( function( factory ) {
-	if ( typeof define === "function" && define.amd ) {
-
-		// AMD. Register as an anonymous module.
-		define( [ "../widgets/datepicker" ], factory );
-	} else {
-
-		// Browser globals
-		factory( jQuery.datepicker );
-	}
-}( function( datepicker ) {
-
-datepicker.regional.ka = {
-	closeText: "დáƒáƒ®áƒ£áƒ áƒ•áƒ",
-	prevText: "&#x3c; წინáƒ",
-	nextText: "შემდეგი &#x3e;",
-	currentText: "დღეს",
-	monthNames: [
-		"იáƒáƒœáƒ•áƒáƒ áƒ˜",
-		"თებერვáƒáƒšáƒ˜",
-		"მáƒáƒ áƒ¢áƒ˜",
-		"áƒáƒžáƒ áƒ˜áƒšáƒ˜",
-		"მáƒáƒ˜áƒ¡áƒ˜",
-		"ივნისი",
-		"ივლისი",
-		"áƒáƒ’ვისტáƒ",
-		"სექტემბერი",
-		"áƒáƒ¥áƒ¢áƒáƒ›áƒ‘ერი",
-		"ნáƒáƒ”მბერი",
-		"დეკემბერი"
-	],
-	monthNamesShort: [ "იáƒáƒœ","თებ","მáƒáƒ ","áƒáƒžáƒ ","მáƒáƒ˜","ივნ", "ივლ","áƒáƒ’ვ","სექ","áƒáƒ¥áƒ¢","ნáƒáƒ”","დეკ" ],
-	dayNames: [ "კვირáƒ","áƒáƒ áƒ¨áƒáƒ‘áƒáƒ—ი","სáƒáƒ›áƒ¨áƒáƒ‘áƒáƒ—ი","áƒáƒ—ხშáƒáƒ‘áƒáƒ—ი","ხუთშáƒáƒ‘áƒáƒ—ი","პáƒáƒ áƒáƒ¡áƒ™áƒ”ვი","შáƒáƒ‘áƒáƒ—ი" ],
-	dayNamesShort: [ "კვ","áƒáƒ áƒ¨","სáƒáƒ›","áƒáƒ—ხ","ხუთ","პáƒáƒ ","შáƒáƒ‘" ],
-	dayNamesMin: [ "კვ","áƒáƒ áƒ¨","სáƒáƒ›","áƒáƒ—ხ","ხუთ","პáƒáƒ ","შáƒáƒ‘" ],
-	weekHeader: "კვირáƒ",
-	dateFormat: "dd-mm-yy",
-	firstDay: 1,
-	isRTL: false,
-	showMonthAfterYear: false,
-	yearSuffix: "" };
-datepicker.setDefaults( datepicker.regional.ka );
-
-return datepicker.regional.ka;
-
-} ) );
diff --git a/wiki/inc/lang/ka/lang.php b/wiki/inc/lang/ka/lang.php
deleted file mode 100644
index 0e7c1e1..0000000
--- a/wiki/inc/lang/ka/lang.php
+++ /dev/null
@@ -1,279 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Tengiz <tech2008a@gmail.com>
- * @author Luka Lejava <luka.lejava@gmail.com>
- */
-$lang['encoding']              = 'utf-8';
-$lang['direction']             = 'ltr';
-$lang['doublequoteopening']    = '“';
-$lang['doublequoteclosing']    = 'â€';
-$lang['singlequoteopening']    = '‘';
-$lang['singlequoteclosing']    = '’';
-$lang['apostrophe']            = '’';
-$lang['btn_edit']              = 'დáƒáƒáƒ áƒ”დáƒáƒ¥áƒ¢áƒ˜áƒ áƒ”თ ეს გვერდი';
-$lang['btn_source']            = 'მáƒáƒ©áƒ•ენე გვერდის კáƒáƒ“ი';
-$lang['btn_show']              = 'გვერდის ჩვენებáƒ';
-$lang['btn_create']            = 'გვერდის შექმნáƒ';
-$lang['btn_search']            = 'ძიებáƒ';
-$lang['btn_save']              = 'შენáƒáƒ®áƒ•áƒ';
-$lang['btn_preview']           = 'ჩვენებáƒ';
-$lang['btn_top']               = 'მáƒáƒ¦áƒšáƒ';
-$lang['btn_newer']             = '<<  მეტი ';
-$lang['btn_older']             = 'ნáƒáƒ™áƒšáƒ”ბი  >>';
-$lang['btn_revs']              = 'ძველი ვერსიები';
-$lang['btn_recent']            = 'ბáƒáƒšáƒ ცვლილებები';
-$lang['btn_upload']            = 'áƒáƒ¢áƒ•ირთვáƒ';
-$lang['btn_cancel']            = 'შეწყვეტáƒ';
-$lang['btn_index']             = 'სტáƒáƒ¢áƒ˜áƒ”ბი';
-$lang['btn_secedit']           = 'რედáƒáƒ¥áƒ¢áƒ˜áƒ áƒ”ბáƒ';
-$lang['btn_login']             = 'შესვლáƒ';
-$lang['btn_logout']            = 'გáƒáƒ›áƒáƒ¡áƒ•ლáƒ';
-$lang['btn_admin']             = 'áƒáƒ“მინი';
-$lang['btn_update']            = 'გáƒáƒœáƒáƒ®áƒšáƒ”ბáƒ';
-$lang['btn_delete']            = 'წáƒáƒ¨áƒšáƒ';
-$lang['btn_back']              = 'უკáƒáƒœ';
-$lang['btn_backlink']          = 'გáƒáƒ“მáƒáƒ›áƒ˜áƒ¡áƒáƒ›áƒáƒ áƒ—ებული ბმულები';
-$lang['btn_subscribe']         = 'გáƒáƒ›áƒáƒ¬áƒ”რები მáƒáƒ áƒ—ვáƒ';
-$lang['btn_profile']           = 'პრáƒáƒ¤áƒ˜áƒšáƒ˜áƒ¡ გáƒáƒœáƒáƒ®áƒšáƒ”ბáƒ';
-$lang['btn_reset']             = 'წáƒáƒ¨áƒšáƒ';
-$lang['btn_resendpwd']         = 'áƒáƒ®áƒáƒšáƒ˜ პáƒáƒ áƒáƒšáƒ˜áƒ¡ დáƒáƒ§áƒ”ნებáƒ';
-$lang['btn_draft']             = 'ჩáƒáƒœáƒáƒ¬áƒ”რის წáƒáƒ¨áƒšáƒ';
-$lang['btn_recover']           = 'ჩáƒáƒœáƒáƒ¬áƒ”რის áƒáƒ¦áƒ“გენáƒ';
-$lang['btn_draftdel']          = 'ჩáƒáƒœáƒáƒ¬áƒ”რის წáƒáƒ¨áƒšáƒ';
-$lang['btn_revert']            = 'áƒáƒ¦áƒ“გენáƒ';
-$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']                  = 'პáƒáƒ áƒáƒšáƒ˜';
-$lang['newpass']               = 'áƒáƒ®áƒáƒšáƒ˜ პáƒáƒ áƒáƒšáƒ˜';
-$lang['oldpass']               = 'დáƒáƒáƒ“áƒáƒ¡áƒ¢áƒ£áƒ áƒ”თ პáƒáƒ áƒáƒšáƒ˜';
-$lang['passchk']               = 'კიდევ ერთხელ';
-$lang['remember']              = 'დáƒáƒ›áƒ˜áƒ›áƒáƒ®áƒ¡áƒáƒ•რე';
-$lang['fullname']              = 'ნáƒáƒ›áƒ“ვილი სáƒáƒ®áƒ”ლი';
-$lang['email']                 = 'ფáƒáƒ¡áƒ¢áƒ';
-$lang['profile']               = 'მáƒáƒ›áƒ®áƒ›áƒáƒ áƒ”ბლის პრáƒáƒ¤áƒ˜áƒšáƒ˜';
-$lang['badlogin']              = 'ლáƒáƒ’ინი áƒáƒœ პáƒáƒ áƒáƒšáƒ˜ áƒáƒ áƒáƒ¡áƒ¬áƒáƒ áƒ˜áƒ';
-$lang['badpassconfirm']        = 'პáƒáƒ áƒáƒšáƒ˜ áƒáƒ áƒáƒ¡áƒ¬áƒáƒ áƒ˜áƒ';
-$lang['minoredit']             = 'ცვლილებები';
-$lang['draftdate']             = 'ჩáƒáƒœáƒáƒ¬áƒ”რების áƒáƒ•ტáƒáƒ›áƒáƒ¢áƒ£áƒ áƒ˜ შენáƒáƒ®áƒ•რჩáƒáƒ áƒ—ულიáƒ';
-$lang['nosecedit']             = 'გვერდს ვáƒáƒ“რგáƒáƒ£áƒ•იდáƒ';
-$lang['searchcreatepage']      = 'თუ თქვენ ვერ იპáƒáƒ•ეთ რáƒáƒ¡áƒáƒª ეძებდით, თქვენ შეგიძლიáƒáƒ— შექმნáƒáƒ— áƒáƒœ გáƒáƒáƒ áƒ”დáƒáƒ¥áƒ¢áƒ˜áƒ áƒáƒ— გვერდი %s, რáƒáƒ›áƒ”ლიც მითითებულირთქვენი მáƒáƒ—ხáƒáƒ•ნის შედეგáƒáƒ“.';
-$lang['search_fullresults']    = 'სრულტექსტáƒáƒ•áƒáƒœáƒ˜ რეზულტáƒáƒ¢áƒ˜';
-$lang['js']['search_toggle_tools'] = 'სáƒáƒ«áƒ”ბნი ინსტრუმენტის გáƒáƒ“áƒáƒ áƒ—ვáƒ';
-$lang['js']['willexpire']      = 'გვერდი გáƒáƒœáƒ˜áƒ‘ლáƒáƒ™áƒ”ბრ1 წუთში';
-$lang['js']['notsavedyet']     = 'შეუნáƒáƒ®áƒáƒ•ი მáƒáƒœáƒáƒªáƒ”მები წáƒáƒ˜áƒ¨áƒšáƒ”ბáƒ';
-$lang['js']['searchmedia']     = 'ძებნáƒ';
-$lang['js']['keepopen']        = 'დáƒáƒ¢áƒáƒ•ეთ ღიáƒ';
-$lang['js']['hidedetails']     = 'დეტáƒáƒšáƒ”ბის დáƒáƒ›áƒáƒšáƒ•áƒ';
-$lang['js']['mediatitle']      = 'ინსტრუმენტები';
-$lang['js']['mediadisplay']    = 'ბმულის ტიპი';
-$lang['js']['mediaalign']      = 'სწáƒáƒ áƒ”ბáƒ';
-$lang['js']['mediasize']       = 'სურáƒáƒ—ის ზáƒáƒ›áƒ';
-$lang['js']['mediatarget']     = 'მიზნის ბმული';
-$lang['js']['mediaclose']      = 'დáƒáƒ®áƒ£áƒ áƒ•áƒ';
-$lang['js']['mediainsert']     = 'ჩáƒáƒ¡áƒ›áƒ';
-$lang['js']['mediadisplayimg'] = 'სურáƒáƒ—ის ნáƒáƒ®áƒ•áƒ';
-$lang['js']['mediadisplaylnk'] = 'მáƒáƒ©áƒ•ენე მხáƒáƒšáƒáƒ“ ბმული';
-$lang['js']['mediasmall']      = 'მცირე ვერსიáƒ';
-$lang['js']['mediamedium']     = 'სáƒáƒ¨áƒ£áƒáƒšáƒ ვერსიáƒ';
-$lang['js']['medialarge']      = 'ვრცელი ვერსიáƒ';
-$lang['js']['mediaoriginal']   = 'áƒáƒ áƒ˜áƒ’ინáƒáƒšáƒ˜ ვერსიáƒ';
-$lang['js']['medialnk']        = 'დáƒáƒ¬áƒ•რილებით';
-$lang['js']['mediadirect']     = 'áƒáƒ áƒ˜áƒ’ინáƒáƒšáƒ˜';
-$lang['js']['medianolnk']      = 'ბმული áƒáƒ  áƒáƒ áƒ˜áƒ¡';
-$lang['js']['medianolink']     = 'áƒáƒ  დáƒáƒšáƒ˜áƒœáƒ™áƒáƒ— სურáƒáƒ—ი';
-$lang['js']['medialeft']       = 'მáƒáƒ áƒªáƒ®áƒ•ნივ გáƒáƒœáƒáƒ—áƒáƒ•სეთ სურáƒáƒ—ი';
-$lang['js']['mediaright']      = 'მáƒáƒ áƒ¯áƒ•ნივ გáƒáƒœáƒáƒ—áƒáƒ•სეთ სურáƒáƒ—ი';
-$lang['js']['mediacenter']     = 'შუáƒáƒ¨áƒ˜ გáƒáƒœáƒáƒ—áƒáƒ•სეთ სურáƒáƒ—ი';
-$lang['js']['medianoalign']    = 'სწáƒáƒ áƒ”ბის გáƒáƒ áƒ”შე';
-$lang['js']['nosmblinks']      = 'ეს ფუქნცირმუშáƒáƒáƒ‘ს მხáƒáƒšáƒáƒ“  Internet Explorer-ზე';
-$lang['js']['linkwiz']         = 'ბმული';
-$lang['js']['linkto']          = 'ბმული';
-$lang['js']['del_confirm']     = 'დáƒáƒ áƒ¬áƒ›áƒ£áƒœáƒ”ბული ხáƒáƒ áƒ— რáƒáƒ› წáƒáƒ¨áƒšáƒ გინდáƒáƒ—?';
-$lang['js']['restore_confirm'] = 'დáƒáƒ áƒ¬áƒ›áƒ£áƒœáƒ”ბული ხáƒáƒ áƒ— რáƒáƒ› áƒáƒ¦áƒ“გენრგინდáƒáƒ—?';
-$lang['js']['media_diff']      = 'გáƒáƒœáƒ¡áƒ®áƒ•áƒáƒ•ებების ჩვენებáƒ';
-$lang['js']['media_diff_both'] = 'გვერდიგვერდ';
-$lang['js']['media_diff_portions'] = 'დáƒáƒ áƒ¢áƒ§áƒ›áƒ';
-$lang['js']['media_select']    = 'áƒáƒ áƒ©áƒ”ული ფáƒáƒ˜áƒšáƒ”ბი';
-$lang['js']['media_upload_btn'] = 'áƒáƒ¢áƒ•ირთვáƒ';
-$lang['js']['media_done_btn']  = 'მზáƒáƒ“áƒáƒ';
-$lang['js']['media_drop']      = 'ჩáƒáƒ§áƒáƒ áƒ”თ áƒáƒ¡áƒáƒ¢áƒ•ირთი ფáƒáƒ˜áƒšáƒ”ბი';
-$lang['js']['media_cancel']    = 'წáƒáƒ¨áƒšáƒ';
-$lang['js']['media_overwrt']   = 'გáƒáƒ“áƒáƒ¬áƒ”რრზემáƒáƒ“áƒáƒœ';
-$lang['search_exact_match']    = 'სრული თáƒáƒœáƒ®áƒ•ედრáƒ';
-$lang['search_starts_with']    = 'იწყებრ';
-$lang['search_ends_with']      = 'მთáƒáƒ•რდებáƒ';
-$lang['search_contains']       = 'შეიცáƒáƒ•ს';
-$lang['search_any_ns']         = 'ნებისმიერი სáƒáƒ®áƒ”ლთრსივრცე';
-$lang['search_any_time']       = 'ნებისმიერ დრáƒáƒ¡';
-$lang['search_past_7_days']    = 'გáƒáƒ¡áƒ£áƒšáƒ˜ კვირის';
-$lang['search_past_month']     = 'გáƒáƒ¡áƒ£áƒšáƒ˜ თვის';
-$lang['search_past_year']      = 'გáƒáƒ¡áƒ£áƒšáƒ˜ წლის';
-$lang['search_sort_by_hits']   = 'სáƒáƒ áƒ¢áƒ˜áƒ áƒ”ბრთáƒáƒœáƒ®áƒ•ედრით';
-$lang['search_sort_by_mtime']  = 'სáƒáƒ áƒ¢áƒ˜áƒ áƒ”ბრბáƒáƒšáƒ ცვლილებით';
-$lang['regmissing']            = 'ყველრველი შეáƒáƒ•სეთ';
-$lang['reguexists']            = 'მსგáƒáƒ•სი ლáƒáƒ’ინი უკვე áƒáƒ áƒ¡áƒ”ბáƒáƒ‘ს';
-$lang['regsuccess']            = 'მáƒáƒ›áƒ®áƒ›áƒáƒ áƒ”ბელი შექმნილიáƒ, პáƒáƒ áƒáƒšáƒ˜ გáƒáƒ›áƒáƒ’ზáƒáƒ•ნილიáƒ';
-$lang['regsuccess2']           = 'მáƒáƒ›áƒ®áƒ›áƒáƒ áƒ”ბელი შექმნილიáƒ';
-$lang['regfail']               = 'მáƒáƒ›áƒ®áƒ›áƒáƒ áƒ”ბელი ვერ შეიქმნებáƒ';
-$lang['regmailfail']           = 'დáƒáƒ¤áƒ˜áƒ¥áƒ¡áƒ˜áƒ áƒ“რშეცდáƒáƒ›áƒ';
-$lang['regbadmail']            = 'ფáƒáƒ¡áƒ¢áƒ áƒáƒ áƒáƒ¡áƒ¬áƒáƒ áƒ˜áƒ';
-$lang['regbadpass']            = 'პáƒáƒ áƒáƒšáƒ˜ გáƒáƒœáƒ¡áƒ®áƒ•áƒáƒ•ებულიáƒ';
-$lang['regpwmail']             = 'თვენი DokuWiki პáƒáƒ áƒáƒšáƒ˜';
-$lang['reghere']               = 'დáƒáƒ áƒ”გისტრირდი';
-$lang['profna']                = 'áƒáƒ  შეგიძლიáƒáƒ— პრáƒáƒ¤áƒ˜áƒšáƒ˜áƒ¡ რედáƒáƒ¥áƒ¢áƒ˜áƒ áƒ”ბáƒ';
-$lang['profnochange']          = 'ცვლილებები áƒáƒ  áƒáƒ áƒ˜áƒ¡';
-$lang['profnoempty']           = 'ცáƒáƒ áƒ˜áƒ”ლი სáƒáƒ®áƒ”ლი áƒáƒœ ფáƒáƒ¡áƒ¢áƒ დáƒáƒ£áƒ¨áƒ•ებელიáƒ';
-$lang['profchanged']           = 'პრáƒáƒ¤áƒ˜áƒšáƒ˜ გáƒáƒœáƒáƒ®áƒšáƒ“áƒ';
-$lang['profnodelete']          = 'მáƒáƒ›áƒ®áƒ›áƒáƒ áƒ”ბლის წáƒáƒ¨áƒšáƒ შეუძლებელიáƒ';
-$lang['profdeleteuser']        = 'პრáƒáƒ¤áƒ˜áƒšáƒ˜áƒ¡ წáƒáƒ¨áƒšáƒ';
-$lang['profdeleted']           = 'პრáƒáƒ¤áƒ˜áƒšáƒ˜ წáƒáƒ˜áƒ¨áƒáƒšáƒ';
-$lang['profconfdelete']        = 'მე მსურს პრáƒáƒ¤áƒ˜áƒšáƒ˜áƒ¡ წáƒáƒ¨áƒšáƒ. <br/> თქვენ áƒáƒ¦áƒáƒ  გექნებáƒáƒ— სáƒáƒ¨áƒ£áƒáƒšáƒ”ბრáƒáƒ¦áƒáƒ“გინáƒáƒ— პრáƒáƒ¤áƒ˜áƒšáƒ˜.';
-$lang['profconfdeletemissing'] = 'დáƒáƒ“áƒáƒ¡áƒ¢áƒ£áƒ áƒ”ბის ველი ცáƒáƒ áƒ˜áƒ”ლიáƒ';
-$lang['proffail']              = 'მáƒáƒ›áƒ®áƒ›áƒáƒ áƒ”ბლის პრáƒáƒ¤áƒ˜áƒšáƒ˜ ვერ გáƒáƒœáƒáƒ®áƒšáƒ“ებáƒ';
-$lang['pwdforget']             = 'დáƒáƒ’áƒáƒ•იწყდრპáƒáƒ áƒáƒšáƒ˜? áƒáƒ¦áƒáƒ“გინე';
-$lang['resendna']              = 'პáƒáƒ áƒáƒšáƒ˜áƒ¡ áƒáƒ¦áƒ“გენრშეუძლებელიáƒ';
-$lang['resendpwd']             = 'áƒáƒ®áƒáƒšáƒ˜ პáƒáƒ áƒáƒšáƒ˜';
-$lang['resendpwdmissing']      = 'უნდრშეáƒáƒ•სáƒáƒ— ყველრველი';
-$lang['resendpwdnouser']       = 'მსგáƒáƒ•სი ლáƒáƒ’ინი დáƒáƒ áƒ”გისტრირებული áƒáƒ  áƒáƒ áƒ˜áƒ¡';
-$lang['resendpwdbadauth']      = 'კáƒáƒ“ი áƒáƒ áƒáƒ¡áƒ¬áƒáƒ áƒ˜áƒ';
-$lang['resendpwdconfirm']      = 'áƒáƒ¦áƒ¡áƒáƒ“გენი ბმული გáƒáƒ›áƒáƒ’ზáƒáƒ•ნილიáƒ';
-$lang['resendpwdsuccess']      = 'áƒáƒ®áƒáƒšáƒ˜ პáƒáƒ áƒáƒšáƒ˜ გáƒáƒ›áƒáƒ’ზáƒáƒ•ნილიáƒ';
-$lang['license']               = 'ვიკი ლიცენზირებულიáƒ: ';
-$lang['licenseok']             = 'áƒáƒ› გვერდის რედáƒáƒ¥áƒ¢áƒ˜áƒ áƒ”ბით თვენ ეთáƒáƒœáƒ®áƒ›áƒ”ბით ლიცენზიáƒáƒ¡:';
-$lang['searchmedia']           = 'სáƒáƒ«áƒ”ბრსáƒáƒ®áƒ”ლი:';
-$lang['searchmedia_in']        = 'ძებნრ%s-ში';
-$lang['txt_upload']            = 'áƒáƒ˜áƒ áƒ©áƒ˜áƒ”თ áƒáƒ¡áƒáƒ¢áƒ•ირთი ფáƒáƒ˜áƒšáƒ˜:';
-$lang['txt_filename']          = 'áƒáƒ¢áƒ•ირთვრრáƒáƒ’áƒáƒ áƒª (áƒáƒ áƒ©áƒ”ვითი):';
-$lang['txt_overwrt']           = 'გáƒáƒ“áƒáƒ¬áƒ”რრზემáƒáƒ“áƒáƒœ';
-$lang['maxuploadsize']         = 'მáƒáƒ¥áƒ¡áƒ˜áƒ›áƒáƒšáƒ£áƒ áƒ˜ ზáƒáƒ›áƒ %s';
-$lang['lockedby']              = 'დáƒáƒ‘ლáƒáƒ™áƒ˜áƒšáƒ˜áƒ:';
-$lang['lockexpire']            = 'გáƒáƒœáƒ˜áƒ‘ლáƒáƒ™áƒ”ბáƒ:';
-$lang['rssfailed']             = 'დáƒáƒ¤áƒ˜áƒ¥áƒ¡áƒ˜áƒ áƒ“რშეცდáƒáƒ›áƒ:';
-$lang['nothingfound']          = 'ნáƒáƒžáƒáƒ•ნი áƒáƒ  áƒáƒ áƒ˜áƒ¡';
-$lang['mediaselect']           = 'მედირფáƒáƒ˜áƒšáƒ”ბი';
-$lang['uploadsucc']            = 'áƒáƒ¢áƒ•ირთვრდáƒáƒ¡áƒ áƒ£áƒšáƒ”ბულიáƒ';
-$lang['uploadfail']            = 'შეფერხებრáƒáƒ¢áƒ•ირთვისáƒáƒ¡';
-$lang['uploadwrong']           = 'áƒáƒ¢áƒ•ირთვრშეუძლებელიáƒ';
-$lang['uploadexist']           = 'ფáƒáƒ˜áƒšáƒ˜ უკვე áƒáƒ áƒ¡áƒ”ბáƒáƒ‘ს';
-$lang['uploadbadcontent']      = 'áƒáƒ¢áƒ•ირთული ფáƒáƒ˜áƒšáƒ”ბი áƒáƒ  ემთხვევრ%s';
-$lang['uploadspam']            = 'áƒáƒ¢áƒ•ირთვრდáƒáƒ‘ლáƒáƒ™áƒ˜áƒšáƒ˜áƒ სპáƒáƒ›áƒ‘ლáƒáƒ™áƒ”რის მიერ';
-$lang['uploadxss']             = 'áƒáƒ¢áƒ•ირთვრდáƒáƒ‘ლáƒáƒ™áƒ˜áƒšáƒ˜áƒ';
-$lang['uploadsize']            = 'áƒáƒ¡áƒáƒ¢áƒ•ირთი ფáƒáƒ˜áƒšáƒ˜ ზედმეტáƒáƒ“ დიდირ%s';
-$lang['deletesucc']            = '%s ფáƒáƒ˜áƒšáƒ”ბი წáƒáƒ˜áƒ¨áƒáƒšáƒ';
-$lang['deletefail']            = '%s ვერ მáƒáƒ˜áƒ«áƒ”ბნáƒ';
-$lang['mediainuse']            = 'ფáƒáƒ˜áƒšáƒ˜áƒ¡ %s ვერ წáƒáƒ˜áƒ¨áƒáƒšáƒ, რáƒáƒ“გáƒáƒœ გáƒáƒ›áƒáƒ§áƒ”ნებáƒáƒ¨áƒ˜áƒ';
-$lang['namespaces']            = 'სáƒáƒ®áƒ”ლთრსივრცე';
-$lang['mediafiles']            = 'áƒáƒ áƒ¡áƒ”ბული ფáƒáƒ˜áƒšáƒ”ბი';
-$lang['accessdenied']          = 'თქვენ áƒáƒ  შეგიძლიáƒáƒ— გვერდის ნáƒáƒ®áƒ•áƒ';
-$lang['mediausage']            = 'გáƒáƒ›áƒáƒ˜áƒ§áƒ”ნე შემდეგი სინტáƒáƒ¥áƒ¡áƒ˜ რáƒáƒ—რმიუთითრეს ფáƒáƒ˜áƒšáƒ˜';
-$lang['mediaview']             = 'áƒáƒ áƒ˜áƒ’ინáƒáƒšáƒ˜ ფáƒáƒ˜áƒšáƒ˜áƒ¡ ჩვენებáƒ';
-$lang['mediaroot']             = 'root';
-$lang['mediaextchange']        = 'ფáƒáƒ˜áƒšáƒ˜áƒ¡ გáƒáƒ¤áƒáƒ áƒ—áƒáƒ”ბრშეიცვáƒáƒšáƒ .%-დáƒáƒœ .%-ზე!';
-$lang['ref_inuse']             = 'ფáƒáƒ˜áƒšáƒ˜ წáƒáƒ¨áƒšáƒ შეუძლებელიáƒ, გáƒáƒ›áƒáƒ˜áƒ§áƒ”ნებრáƒáƒ¥:';
-$lang['ref_hidden']            = 'ზáƒáƒ’იერთი ბლáƒáƒ™áƒ˜áƒ¡ წáƒáƒ™áƒ˜áƒ—ხვის უფლებრáƒáƒ  გáƒáƒ¥áƒ•თ';
-$lang['quickhits']             = 'მსგáƒáƒ•სი სáƒáƒ®áƒ”ლები';
-$lang['toc']                   = 'სáƒáƒ áƒ©áƒ”ვი';
-$lang['current']               = 'áƒáƒ®áƒšáƒáƒœáƒ“ელი';
-$lang['yours']                 = 'თვენი ვერსიáƒ';
-$lang['diff']                  = 'ვერსიების გáƒáƒœáƒ¡áƒ®áƒ•áƒáƒ•ებáƒ';
-$lang['diff2']                 = 'გáƒáƒœáƒ¡áƒ®áƒ•áƒáƒ•ებები';
-$lang['diff_type']             = 'გáƒáƒœáƒ¡áƒ®áƒ•áƒáƒ•ებების ჩვენებáƒ';
-$lang['diff_side']             = 'გვერდიგვერდ';
-$lang['diffprevrev']           = 'წინრვერსიáƒ';
-$lang['diffnextrev']           = 'შემდეგი ვერსიáƒ';
-$lang['difflastrev']           = 'ბáƒáƒšáƒ ვერსიáƒ';
-$lang['line']                  = 'ზáƒáƒšáƒ˜';
-$lang['youarehere']            = 'თვენ ხáƒáƒ áƒ— áƒáƒ¥:';
-$lang['lastmod']               = 'ბáƒáƒšáƒáƒ¡ მáƒáƒ“იფიცირებული:';
-$lang['deleted']               = 'წáƒáƒ¨áƒšáƒ˜áƒšáƒ˜áƒ';
-$lang['created']               = 'შექმნილიáƒ';
-$lang['restored']              = 'ძველი ვერსირáƒáƒ¦áƒ“გენილირ(%s)';
-$lang['external_edit']         = 'რედáƒáƒ¥áƒ¢áƒ˜áƒ áƒ”ბáƒ';
-$lang['noflash']               = '<a href="http://www.adobe.com/products/flashplayer/">სáƒáƒ­áƒ˜áƒ áƒáƒ Adobe Flash Plugin</a>';
-$lang['download']              = 'Snippet-ის გáƒáƒ“მáƒáƒ¬áƒ”რáƒ';
-$lang['tools']                 = 'ინსტრუმენტები';
-$lang['user_tools']            = 'მáƒáƒ›áƒ®áƒ›áƒáƒ áƒ”ბლის ინსტრუმენტები';
-$lang['site_tools']            = 'სáƒáƒ˜áƒ¢áƒ˜áƒ¡ ინსტრუმენტები';
-$lang['page_tools']            = 'გვერდის ინსტრუმენტები';
-$lang['skip_to_content']       = 'მáƒáƒ¡áƒáƒšáƒ';
-$lang['sidebar']               = 'გვერდითი პáƒáƒœáƒ”ლი';
-$lang['mail_newpage']          = 'გვერდი დáƒáƒ›áƒáƒ¢áƒ”ბულიáƒ:';
-$lang['mail_changed']          = 'გვერდი შეცვლილიáƒ:';
-$lang['mail_subscribe_list']   = 'გვერდში შეცვლილირnamespace-ები:';
-$lang['mail_new_user']         = 'áƒáƒ®áƒáƒšáƒ˜ მáƒáƒ›áƒ®áƒ›áƒáƒ áƒ”ბელი';
-$lang['mail_upload']           = 'ფáƒáƒ˜áƒšáƒ˜ áƒáƒ¢áƒ•ირთულიáƒ';
-$lang['changes_type']          = 'ცვლილებები';
-$lang['pages_changes']         = 'გვერდები';
-$lang['media_changes']         = 'მედირფáƒáƒ˜áƒšáƒ”ბი';
-$lang['both_changes']          = 'გვერდები დრმედირფáƒáƒ˜áƒšáƒ”ბი';
-$lang['qb_h1']                 = 'Level 1 სáƒáƒ—áƒáƒ£áƒ áƒ˜';
-$lang['qb_h2']                 = 'Level 2 სáƒáƒ—áƒáƒ£áƒ áƒ˜';
-$lang['qb_h3']                 = 'Level 3 სáƒáƒ—áƒáƒ£áƒ áƒ˜';
-$lang['qb_h4']                 = 'Level 4 სáƒáƒ—áƒáƒ£áƒ áƒ˜';
-$lang['qb_h5']                 = 'Level 5 სáƒáƒ—áƒáƒ£áƒ áƒ˜';
-$lang['qb_h']                  = 'სáƒáƒ—áƒáƒ£áƒ áƒ˜';
-$lang['qb_hs']                 = 'სáƒáƒ—áƒáƒ£áƒ áƒ˜áƒ¡ áƒáƒ áƒ©áƒ”ვáƒ';
-$lang['qb_hplus']              = 'Higher სáƒáƒ—áƒáƒ£áƒ áƒ˜';
-$lang['qb_hminus']             = 'Lower სáƒáƒ—áƒáƒ£áƒ áƒ˜';
-$lang['qb_hequal']             = 'Same Level სáƒáƒ—áƒáƒ£áƒ áƒ˜';
-$lang['qb_ol']                 = 'შეკვეთილი ბáƒáƒšáƒ მáƒáƒ¡áƒáƒšáƒ';
-$lang['qb_media']              = 'ნáƒáƒ®áƒáƒ¢áƒ”ბის დრსხვრფáƒáƒ˜áƒ”ლბის დáƒáƒ›áƒáƒ¢áƒ”ბáƒ';
-$lang['qb_sig']                = 'ხელმáƒáƒ¬áƒ”რáƒ';
-$lang['qb_smileys']            = 'სმáƒáƒ˜áƒšáƒ”ბი';
-$lang['img_title']             = 'სáƒáƒ—áƒáƒ£áƒ áƒ˜:';
-$lang['img_date']              = 'თáƒáƒ áƒ˜áƒ¦áƒ˜:';
-$lang['img_fname']             = 'ფáƒáƒ˜áƒšáƒ˜áƒ¡ სáƒáƒ®áƒ”ლი:';
-$lang['img_fsize']             = 'ზáƒáƒ›áƒ:';
-$lang['img_artist']            = 'ფáƒáƒ¢áƒáƒ’რáƒáƒ¤áƒ˜:';
-$lang['img_format']            = 'ფáƒáƒ áƒ›áƒáƒ¢áƒ˜:';
-$lang['img_camera']            = 'კáƒáƒ›áƒ”რáƒ:';
-$lang['img_width']             = 'სიგáƒáƒœáƒ”:';
-$lang['img_height']            = 'სიმáƒáƒ¦áƒšáƒ”:';
-$lang['subscr_m_receive']      = 'მიღებáƒ';
-$lang['subscr_style_every']    = 'ფáƒáƒ¡áƒ¢áƒ ყáƒáƒ•ელ ცვლილებáƒáƒ–ე';
-$lang['i_chooselang']          = 'ენსი áƒáƒ áƒ©áƒ”ვáƒ';
-$lang['i_installer']           = 'DokuWiki დáƒáƒ›áƒ§áƒ”ნებელი';
-$lang['i_wikiname']            = 'Wiki სáƒáƒ®áƒ”ლი';
-$lang['i_superuser']           = 'áƒáƒ“მინი';
-$lang['i_problems']            = 'შეáƒáƒ¡áƒ¬áƒáƒ áƒ”თ შეცდáƒáƒ›áƒ”ბი';
-$lang['i_pol0']                = 'ღირვიკი (წáƒáƒ™áƒ˜áƒ—ხვáƒ, დáƒáƒ¬áƒ”რრდრáƒáƒ¢áƒ•ირთვრშეუძლირნებისმიერს)';
-$lang['i_pol1']                = 'თáƒáƒ•ისუფáƒáƒšáƒ˜ ვიკი (წáƒáƒ™áƒ˜áƒ—ხვრშეუძლირყველáƒáƒ¡, დáƒáƒ¬áƒ”რრდრáƒáƒ¢áƒ•ირთვრ- რეგისტრირებულს)';
-$lang['i_pol2']                = 'დáƒáƒ®áƒ£áƒ áƒ£áƒšáƒ˜ ვიკი (წáƒáƒ™áƒ˜áƒ—ხვáƒ, დáƒáƒ¬áƒ”რრდრáƒáƒ¢áƒ•ირთვრშეუძლიáƒáƒ— მხáƒáƒšáƒáƒ“ რეგისტრირებულებს)';
-$lang['i_allowreg']            = 'რეგისტრáƒáƒªáƒ˜áƒ˜áƒ¡ გáƒáƒ®áƒ¡áƒœáƒ';
-$lang['i_retry']               = 'თáƒáƒ•იდáƒáƒœ ცდáƒ';
-$lang['i_license']             = 'áƒáƒ˜áƒ áƒ©áƒ˜áƒ”თ ლიცენზიáƒ';
-$lang['i_license_none']        = 'áƒáƒ  áƒáƒ©áƒ•ენáƒáƒ— ლიცენზიის ინფáƒáƒ áƒ›áƒáƒªáƒ˜áƒ';
-$lang['i_pop_field']           = 'დáƒáƒ’ვეხმáƒáƒ áƒ”თ DokuWiki-ს áƒáƒ’უმჯáƒáƒ‘ესებáƒáƒ¨áƒ˜';
-$lang['i_pop_label']           = 'თვეში ერთელ ინფáƒáƒ áƒ›áƒáƒªáƒ˜áƒ˜áƒ¡ DokuWiki-ის áƒáƒ“მინისტრáƒáƒªáƒ˜áƒ˜áƒ¡áƒ—ვის გáƒáƒ’ზáƒáƒ•ნáƒ';
-$lang['years']                 = '%d წლის უკáƒáƒœ';
-$lang['months']                = '%d თვის უკáƒáƒœ';
-$lang['weeks']                 = '%d კვირის უკáƒáƒœ';
-$lang['days']                  = '%d დღის წინ';
-$lang['hours']                 = '%d სáƒáƒáƒ—ის წინ';
-$lang['minutes']               = '%d წუთის წინ';
-$lang['seconds']               = '%d წáƒáƒ›áƒ˜áƒ¡ წინ';
-$lang['wordblock']             = 'თქვენი ცვლილებები áƒáƒ  შეინáƒáƒ®áƒ, რáƒáƒ“გáƒáƒœ შეიცáƒáƒ•ს სპáƒáƒ›áƒ¡';
-$lang['media_uploadtab']       = 'áƒáƒ¢áƒ•ირთვáƒ';
-$lang['media_searchtab']       = 'ძებნáƒ';
-$lang['media_file']            = 'ფáƒáƒ˜áƒšáƒ˜';
-$lang['media_viewtab']         = 'ჩვენებáƒ';
-$lang['media_edittab']         = 'რედáƒáƒ¥áƒ¢áƒ˜áƒ áƒ”ბáƒ';
-$lang['media_historytab']      = 'ისტáƒáƒ áƒ˜áƒ';
-$lang['media_sort_name']       = 'სáƒáƒ®áƒ”ლი';
-$lang['media_sort_date']       = 'თáƒáƒ áƒ˜áƒ¦áƒ˜';
-$lang['media_files']           = 'ფáƒáƒ˜áƒšáƒ”ბი %s';
-$lang['media_upload']          = 'áƒáƒ¢áƒ•ირთვრ%s';
-$lang['media_search']          = 'ძებნრ%s';
-$lang['media_view']            = '%s';
-$lang['media_edit']            = 'რედáƒáƒ¥áƒ¢áƒ˜áƒ áƒ”ბრ%s';
-$lang['media_history']         = 'ისტáƒáƒ áƒ˜áƒ %s';
-$lang['media_perm_read']       = 'თვენ áƒáƒ  გáƒáƒ¥áƒ•თ უფლებრწáƒáƒ˜áƒ™áƒ˜áƒ—ხáƒáƒ— ეს მáƒáƒ¡áƒáƒšáƒ';
diff --git a/wiki/inc/lang/kk/jquery.ui.datepicker.js b/wiki/inc/lang/kk/jquery.ui.datepicker.js
deleted file mode 100644
index fa0121f..0000000
--- a/wiki/inc/lang/kk/jquery.ui.datepicker.js
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Kazakh (UTF-8) initialisation for the jQuery UI date picker plugin. */
-/* Written by Dmitriy Karasyov (dmitriy.karasyov@gmail.com). */
-( function( factory ) {
-	if ( typeof define === "function" && define.amd ) {
-
-		// AMD. Register as an anonymous module.
-		define( [ "../widgets/datepicker" ], factory );
-	} else {
-
-		// Browser globals
-		factory( jQuery.datepicker );
-	}
-}( function( datepicker ) {
-
-datepicker.regional.kk = {
-	closeText: "Жабу",
-	prevText: "&#x3C;Ðлдыңғы",
-	nextText: "КелеÑÑ–&#x3E;",
-	currentText: "Бүгін",
-	monthNames: [ "Қаңтар","Ðқпан","Ðаурыз","Сәуір","Мамыр","МауÑым",
-	"Шілде","Тамыз","Қыркүйек","Қазан","Қараша","ЖелтоқÑан" ],
-	monthNamesShort: [ "Қаң","Ðқп","Ðау","Сәу","Мам","Мау",
-	"Шіл","Там","Қыр","Қаз","Қар","Жел" ],
-	dayNames: [ "ЖекÑенбі","ДүйÑенбі","СейÑенбі","СәрÑенбі","БейÑенбі","Жұма","Сенбі" ],
-	dayNamesShort: [ "жкÑ","дÑн","ÑÑн","ÑÑ€Ñ","бÑн","жма","Ñнб" ],
-	dayNamesMin: [ "Жк","ДÑ","СÑ","Ср","БÑ","Жм","Сн" ],
-	weekHeader: "Ðе",
-	dateFormat: "dd.mm.yy",
-	firstDay: 1,
-	isRTL: false,
-	showMonthAfterYear: false,
-	yearSuffix: "" };
-datepicker.setDefaults( datepicker.regional.kk );
-
-return datepicker.regional.kk;
-
-} ) );
diff --git a/wiki/inc/lang/kk/lang.php b/wiki/inc/lang/kk/lang.php
deleted file mode 100644
index cb224d9..0000000
--- a/wiki/inc/lang/kk/lang.php
+++ /dev/null
@@ -1,129 +0,0 @@
-<?php
-/**
- * kazakh language file
- *
- * @author Nurgozha Kaliaskarov astana08@gmail.com
- */
-$lang['encoding']              = 'utf-8';
-$lang['direction']             = 'ltr';
-$lang['doublequoteopening']    = '&quot;';
-$lang['doublequoteclosing']    = '&quot;';
-$lang['singlequoteopening']    = '‘';
-$lang['singlequoteclosing']    = '’';
-$lang['apostrophe']            = '\'';
-$lang['btn_edit']              = 'Бұл мақаланы өңдеү';
-$lang['btn_source']            = 'БаÑтапқы мәтінді көрÑету';
-$lang['btn_show']              = 'Бетті көрÑету';
-$lang['btn_create']            = 'Бұл бетті жаÑау';
-$lang['btn_search']            = 'Іздеу';
-$lang['btn_save']              = 'Сақтау';
-$lang['btn_preview']           = 'Қарап шығу';
-$lang['btn_top']               = 'Жоғары';
-$lang['btn_newer']             = '<<жаңарақ';
-$lang['btn_older']             = 'еÑкірек>>';
-$lang['btn_revs']              = 'Қайта қараулары';
-$lang['btn_recent']            = 'Жуырдағы өзгеріÑтер';
-$lang['btn_upload']            = 'Еңгізу';
-$lang['btn_cancel']            = 'Болдырмау';
-$lang['btn_index']             = 'Барлық беттері';
-$lang['btn_secedit']           = 'Өңдеу';
-$lang['btn_login']             = 'Кіру';
-$lang['btn_logout']            = 'Шығу';
-$lang['btn_admin']             = 'БаÑқару';
-$lang['btn_update']            = 'Жаңарту';
-$lang['btn_delete']            = 'Жою';
-$lang['btn_back']              = 'Ðртқа';
-$lang['btn_backlink']          = 'Кері Ñілтемелері';
-$lang['btn_subscribe']         = 'Жазылуларды баÑқару';
-$lang['btn_profile']           = 'Профильді жаңарту';
-$lang['btn_reset']             = 'ТүÑіру';
-$lang['btn_resendpwd']         = 'Шартты белгінi Өзгерту';
-$lang['btn_draft']             = 'Шимайды өңдеу';
-$lang['btn_recover']           = 'Шимайды қайтару';
-$lang['btn_draftdel']          = 'Шимайды өшіру';
-$lang['btn_revert']            = 'Қалпына келтіру';
-$lang['btn_register']          = 'Тіркеу';
-$lang['btn_apply']             = 'Қолдану/Енгізу';
-$lang['loggedinas']            = 'түпнұÑқамен кірген:';
-$lang['user']                  = 'ТүпнұÑқа';
-$lang['pass']                  = 'ҚұпиÑÑөз';
-$lang['newpass']               = 'Жаңа құпиÑÑөз';
-$lang['oldpass']               = 'Ðғымдағы құпиÑÑөзді раÑтау';
-$lang['passchk']               = 'Тағы бір рет';
-$lang['remember']              = 'Мені Ñақтау';
-$lang['fullname']              = 'Шын аты';
-$lang['email']                 = 'Е-пошта';
-$lang['profile']               = 'Пайдаланушының профилі';
-$lang['badlogin']              = 'Кешріңіз, түпнұÑқа әлде құпиÑÑөз Ð´Ò±Ñ€Ñ‹Ñ ÐµÐ¼ÐµÑ';
-$lang['minoredit']             = 'Шағын өзгеріÑтер';
-$lang['draftdate']             = 'Шимай Ñақталғаны';
-$lang['nosecedit']             = 'Бет өзгерді де бөлік тұралы ақпарат еÑкірді. Толық нұÑқаÑÑ‹ ашылды.';
-$lang['regmissing']            = 'Кешіріңіз, барлық тармақтары толтыруыңыз керек.';
-$lang['reguexists']            = 'Кешіріңіз, бұл түпнұÑкамен де пайдаланушы бар.';
-$lang['regsuccess']            = 'Пайдаланушы қоÑылды әрі құпиÑÑөзін Ñлектрондық поштаға жіберді.';
-$lang['regsuccess2']           = 'Пайдаланушы қоÑылды.';
-$lang['regmailfail']           = 'ҚұпиÑÑөз хатты жіберуде қате болған ÑиÑқты. Мархабат, әкімшімен хабарлаÑыңыз.';
-$lang['regbadmail']            = 'Берілген Ñлектрондық пошта Ð±Ò±Ñ€Ñ‹Ñ Ð´ÐµÐ¿ көрінеді - егер бұл қателікті деп ойлаÑаңыз, әкімшіге хабарлаңыз.';
-$lang['regbadpass']            = 'Берілген екі құпиÑÑөз бірдей емеÑ, мархабат. қайтадан көріңіз.';
-$lang['regpwmail']             = 'Сіздің DokuWiki құпиÑÑөзіңіз';
-$lang['reghere']               = 'ЕÑебіңіз әлі жоқ па? Біреуін оңай ашыңыз';
-$lang['profna']                = 'Бұл wiki профиль өзертуді қолдамайды';
-$lang['profnochange']          = 'Ó¨Ð·Ð³ÐµÑ€Ñ–Ñ Ð¶Ð¾Ò›, Ñ–Ñтейтін ештеңе жоқ.';
-$lang['profnoempty']           = 'Ð‘Ð¾Ñ ÐµÑім не email Ñ€Ò±Ò›Ñат етілмейді.';
-$lang['profchanged']           = 'Пайдаланушы профилі Ñәтті жаңартылған.';
-$lang['pwdforget']             = 'ҚұпиÑÑөзіңізді ұмыттыңызба? Жаңадан біреуін алыңыз';
-$lang['resendna']              = 'Бұл wiki құпиÑÑөзді қайта жіберуді қолдамайды.';
-$lang['resendpwdmissing']      = 'Кешіріңіз, барлық тармақтары толтыруыңыз керек.';
-$lang['resendpwdnouser']       = 'Кешіріңіз, бұл пайдаланушыны дерекқорымызда тапқан жоқпыз.';
-$lang['resendpwdbadauth']      = 'Кешіріңіз, бұл түпнұÑқалық коды бұрыÑ. Толық раÑтау Ñілтемені пайдалануыңызды текÑеріңіз.';
-$lang['resendpwdconfirm']      = 'РаÑтау Ñілтеме email арқылы жіберілді.';
-$lang['resendpwdsuccess']      = 'Сіздің жаңа құпиÑÑөзіңіз email арқылы жіберілді.';
-$lang['license']               = 'БаÑқаша көрÑетілген болмаÑа, бұл wiki-дің мазмұны келеÑÑ– Ð»Ð¸Ñ†ÐµÐ½Ð·Ð¸Ñ Ð±Ð¾Ð¹Ñ‹Ð½ÑˆÐ° беріледі:';
-$lang['licenseok']             = 'ЕÑкерту: бұл бетті өңдеуіңізбен мазмұныңыз келеÑÑ– Ð»Ð¸Ñ†ÐµÐ½Ð·Ð¸Ñ Ð±Ð¾Ð¹Ñ‹Ð½ÑˆÐ° беруге келеÑеÑіз:';
-$lang['searchmedia']           = 'Іздеу файлдың атауы:';
-$lang['searchmedia_in']        = '%s-мен іздеу:';
-$lang['txt_upload']            = 'Еңгізетін файлды таңдау:';
-$lang['txt_filename']          = 'КелеÑідей еңгізу (қалауынша):';
-$lang['txt_overwrt']           = 'Бар файлды қайта жазу';
-$lang['lockedby']              = 'ОÑÑ‹ уақытта тойтарылған:';
-$lang['lockexpire']            = 'Тойтару келеÑÑ– уақытта бітеді:';
-$lang['js']['willexpire']      = 'Бұл бетті түзеу тойтаруыңыз бір минутта бітеді. ÒšÐ°Ò›Ñ‚Ñ‹Ò“Ñ‹Ñ Ð±Ð¾Ð»Ð¼Ð°Ñƒ және тойтару таймерді түÑіру үшін қарап шығу пернені баÑыңыз.';
-$lang['js']['notsavedyet']     = 'Сақталмаған өзгеріÑтер жоғалатын болады.';
-$lang['js']['searchmedia']     = 'Файлдарды іздеу';
-$lang['js']['keepopen']        = 'Таңдаған Ñоң терезе жаппаңыз';
-$lang['js']['hidedetails']     = 'Ò°Ñақтарды жаÑыру';
-$lang['js']['mediatitle']      = 'Султеме теңшелімдері';
-$lang['js']['mediadisplay']    = 'Сілтеме түрі';
-$lang['js']['mediaalign']      = 'ТегіÑтеуі';
-$lang['js']['mediasize']       = 'Сүреттің өлшемі';
-$lang['js']['mediatarget']     = 'Сілтеме ныÑанаÑÑ‹';
-$lang['js']['mediaclose']      = 'Жабу';
-$lang['js']['mediainsert']     = 'Еңгізу';
-$lang['js']['mediadisplayimg'] = 'Бұл Ñүретті көрÑету';
-$lang['js']['mediadisplaylnk'] = 'Бұл Ñілтемені ғана көрÑету,';
-$lang['js']['mediasmall']      = 'Шағын нұÑқаÑÑ‹';
-$lang['js']['mediamedium']     = 'Орташа нұÑқаÑÑ‹';
-$lang['js']['medialarge']      = 'Үлкен нұÑқаÑÑ‹';
-$lang['js']['mediaoriginal']   = 'ТүпнұÑқалық нұÑқаÑÑ‹';
-$lang['js']['medialnk']        = 'Толық бетке Ñілтеме';
-$lang['js']['mediadirect']     = 'ТүпнұÑқалыққа тұра ÑілтемеÑÑ–';
-$lang['js']['medianolnk']      = 'Сілтеме жоқ';
-$lang['js']['medianolink']     = 'Суретті Ñілтетпеу';
-$lang['js']['medialeft']       = 'Сүретті Ñол жаққа тегіÑтеу';
-$lang['js']['mediaright']      = 'Сүретті оң жаққа тегіÑтеу';
-$lang['js']['mediacenter']     = 'Сүретті ортаға тегіÑтеу';
-$lang['js']['medianoalign']    = 'ТегіÑтеуÑіз';
-$lang['js']['linkwiz']         = 'Сілтеме көмекшіci';
-$lang['js']['media_diff']      = 'Өзгеліктердi КөрÑету';
-$lang['js']['media_select']    = 'Файлды тандау';
-$lang['mediaselect']           = 'Медиа файлдар';
-$lang['mediaroot']             = 'root';
-$lang['yours']                 = 'Сендердің болжамыңыз';
-$lang['created']               = 'ЖаÑалFан';
-$lang['mail_new_user']         = 'Жаңа пайдаланушы';
-$lang['qb_chars']              = 'Ðрнайы белгiлер';
-$lang['btn_img_backto']            = 'Қайта оралу %s';
-$lang['img_format']            = 'Формат:';
-$lang['img_camera']            = 'Камера:';
-$lang['i_chooselang']          = 'Тіл таңдау';
-$lang['i_retry']               = 'Қайталау';
diff --git a/wiki/inc/lang/km/admin.txt b/wiki/inc/lang/km/admin.txt
deleted file mode 100644
index 29338b2..0000000
--- a/wiki/inc/lang/km/admin.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== អ្នកគ្រោង ======
-ážáž¶áž„ក្រោមជាប្រដបប្រដារបស់អ្នកគ្រោង ឌោគូវីគី។
-
diff --git a/wiki/inc/lang/km/backlinks.txt b/wiki/inc/lang/km/backlinks.txt
deleted file mode 100644
index f28068a..0000000
--- a/wiki/inc/lang/km/backlinks.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== ážáŸ’សែដំណរក្រោយ ======
-áž“áŸáŸ‡áž‡áž¶áž‘ំពáŸážšážŠáŸ‚លមានដំណរបណ្ážáž–ីទំពáŸážšáž¥áž¡áž¼ážœáŸ”
-====== Backlinks ======
-This is a list of pages that seem to link back to the current page.
-
diff --git a/wiki/inc/lang/km/conflict.txt b/wiki/inc/lang/km/conflict.txt
deleted file mode 100644
index 7b95fda..0000000
--- a/wiki/inc/lang/km/conflict.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== មានបុនរាព្រឹážáŸ’ážáž·ážáŸ’មីៗ ======
-មានបុនរាព្រឹážáŸ’ážáž·ážáŸ’មី
-
diff --git a/wiki/inc/lang/km/denied.txt b/wiki/inc/lang/km/denied.txt
deleted file mode 100644
index be03714..0000000
--- a/wiki/inc/lang/km/denied.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== បដិសáŸáž’អនុញ្ញាហ======
-
-សូមទុស អ្នកគ្មានអនុញ្ញាážáž‘ៅបណ្ážáž‘áŸáŸ”
-
diff --git a/wiki/inc/lang/km/edit.txt b/wiki/inc/lang/km/edit.txt
deleted file mode 100644
index 516ea37..0000000
--- a/wiki/inc/lang/km/edit.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-កែážáž˜áŸ’រូវទំពáŸážšáž“áŸáŸ‡áž áž¾áž™ ចុច«រក្សាážáž»áž€Â»áŸ”  មើល [[wiki:syntax|វាក្យ​សម្ពន្ធ]] ជាកម្នូវីគី។
-សំកែសម្រួលបើអ្នកអាច**ច្នៃចរើន**វា។  បើអ្នកចង់សាកពិសោážáž¢áŸ’វីមួយ សំរៀននៅក្នុង
-[[playground:playground|playground]]។
diff --git a/wiki/inc/lang/km/editrev.txt b/wiki/inc/lang/km/editrev.txt
deleted file mode 100644
index 097c1da..0000000
--- a/wiki/inc/lang/km/editrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**អ្នក ឯក្សារចាស់!**  បើអ្នករក្សាវា អ្នកគុង់ážáŸ‚បង្កើហážáŸ’មីជាមួយទិន្ននáŸáž™áž“áŸáŸ‡áŸ”
-----
diff --git a/wiki/inc/lang/km/index.txt b/wiki/inc/lang/km/index.txt
deleted file mode 100644
index 3500508..0000000
--- a/wiki/inc/lang/km/index.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-====== លិបិក្រម ======
-áž“áŸáŸ‡áž‡áž¶áž›áž·áž”ិក្រមទំពáŸážšáž‘ាំងឡាយបញ្ជាដោយ [[doku>wiki:namespaces|នាមážáž¶áž“]]។
diff --git a/wiki/inc/lang/km/jquery.ui.datepicker.js b/wiki/inc/lang/km/jquery.ui.datepicker.js
deleted file mode 100644
index d8a4596..0000000
--- a/wiki/inc/lang/km/jquery.ui.datepicker.js
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Khmer initialisation for the jQuery calendar extension. */
-/* Written by Chandara Om (chandara.teacher@gmail.com). */
-( function( factory ) {
-	if ( typeof define === "function" && define.amd ) {
-
-		// AMD. Register as an anonymous module.
-		define( [ "../widgets/datepicker" ], factory );
-	} else {
-
-		// Browser globals
-		factory( jQuery.datepicker );
-	}
-}( function( datepicker ) {
-
-datepicker.regional.km = {
-	closeText: "ធ្វើ​រួច",
-	prevText: "មុន",
-	nextText: "បន្ទាប់",
-	currentText: "ážáŸ’ងៃ​នáŸáŸ‡",
-	monthNames: [ "មករា","កុម្ភៈ","មីនា","មáŸážŸáž¶","ឧសភា","មិážáž»áž“áž¶",
-	"កក្កដា","សីហា","កញ្ញា","ážáž»áž›áž¶","វិច្ឆិកា","ធ្នូ" ],
-	monthNamesShort: [ "មករា","កុម្ភៈ","មីនា","មáŸážŸáž¶","ឧសភា","មិážáž»áž“áž¶",
-	"កក្កដា","សីហា","កញ្ញា","ážáž»áž›áž¶","វិច្ឆិកា","ធ្នូ" ],
-	dayNames: [ "អាទិážáŸ’áž™", "ចន្ទ", "អង្គារ", "ពុធ", "ព្រហស្បážáž·áŸ", "សុក្រ", "សៅរáŸ" ],
-	dayNamesShort: [ "អា", "ច", "អ", "ពុ", "ព្រហ", "សុ", "សៅ" ],
-	dayNamesMin: [ "អា", "ច", "អ", "ពុ", "ព្រហ", "សុ", "សៅ" ],
-	weekHeader: "សប្ដាហáŸ",
-	dateFormat: "dd-mm-yy",
-	firstDay: 1,
-	isRTL: false,
-	showMonthAfterYear: false,
-	yearSuffix: "" };
-datepicker.setDefaults( datepicker.regional.km );
-
-return datepicker.regional.km;
-
-} ) );
diff --git a/wiki/inc/lang/km/lang.php b/wiki/inc/lang/km/lang.php
deleted file mode 100644
index 2dbc0d3..0000000
--- a/wiki/inc/lang/km/lang.php
+++ /dev/null
@@ -1,202 +0,0 @@
-<?php
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * @author     Ratana Lim <aerorat@yahoo.com>
- */
-$lang['encoding']   = 'utf-8';
-$lang['direction']  = 'ltr';
-$lang['doublequoteopening']  = '«';
-$lang['doublequoteclosing']  = '»';
-$lang['singlequoteopening']  = '‘';//&lsquo;
-$lang['singlequoteclosing']  = '’';//&rsquo;
-$lang['apostrophe']          = '’';//&rsquo;
-
-$lang['btn_edit']   = 'កែទំពáŸážšáž“áŸáŸ‡';
-$lang['btn_source'] = 'បង្ហាងប្រភពទំពáŸážš';
-$lang['btn_show']   = 'បង្ហាងទំពáŸážš';
-$lang['btn_create'] = 'បង្កើážáž‘ំពáŸážšáž“áŸáŸ‡';
-$lang['btn_search'] = 'ស្វែងរក';
-$lang['btn_save']   = 'រក្សាទុក';
-$lang['btn_preview']= 'បង្ហាញ';
-$lang['btn_top']    = 'ទៅលើ';
-$lang['btn_newer']  = '<<ទំពáŸážšáž‘ំនើប';
-$lang['btn_older']  = 'ទំពáŸážšážáŸ’មែសមáŸáž™>>';
-$lang['btn_revs']   = 'ទំពáŸážšáž…ាស់ៗ';
-$lang['btn_recent'] = 'ទំពáŸážšážáŸ’មីៗ';
-$lang['btn_upload'] = 'ដាកលើង';
-$lang['btn_cancel'] = 'បោះបង់';
-$lang['btn_index']  = 'លិបិក្រម';
-$lang['btn_secedit']= 'កែ';
-$lang['btn_login']  = 'កážáŸ‹áž…ូល';
-$lang['btn_logout'] = 'កážáŸ‹áž…áŸáž‰';
-$lang['btn_admin']  = 'អ្នកគ្រប់គ្រង';
-$lang['btn_update'] = 'កែឡើង';
-$lang['btn_delete'] = 'លុបចោល';
-$lang['btn_back']   = 'ážáŸ’រឡប់';
-$lang['btn_backlink']    = 'ážáŸ’សែចំណងក្រោយ';
-$lang['btn_subscribe']   = 'ដាក់ដំណឹងផ្លស់ប្ážáž¼ážš';
-$lang['btn_profile']     = 'កែប្រវážáŸ’ážáž·ážšáž¼áž”';
-$lang['btn_reset']       = 'កមណážáŸ‹áž¡áž¾áž„រិញ';
-$lang['btn_draft']    = 'កែគំរោង';
-$lang['btn_recover']  = 'ស្រោះគំរោងឡើង';
-$lang['btn_draftdel'] = 'លុបគំរោង';
-$lang['btn_register'] = 'ចុះឈ្មោះ';//'Register';
-
-$lang['loggedinas'] = 'អ្នកប្រើ:';
-$lang['user']       = 'នាមបម្រើ';
-$lang['pass']       = 'ពាក្សសម្ងážáŸ‹';
-$lang['newpass']    = 'ពាក្សសម្ងាážáŸ‹ážáŸ’មី';
-$lang['oldpass']    = 'បន្ជាកពាក្សសម្ងាážáŸ‹';
-$lang['passchk']    = 'ម្ដងទាáž';
-$lang['remember']   = 'ចំណាំážáŸ’ញុំ';
-$lang['fullname']   = 'នាមážáŸ’រគោល';
-$lang['email']      = 'អ៊ីមែល';
-$lang['profile']    = 'ប្រវážáŸ’ážáž·ážšáž¼áž”';// 'User Profile';
-$lang['badlogin']   = 'សុំអាទោស​ នាមបំរើ ឬ ពាក្សសម្ងាážáž˜áž·áž“ážáŸ’រវទáŸáŸ”';
-$lang['minoredit']  = 'កែបបណ្ážáž·áž…បណ្ážáž½áž…';// 'Minor Changes';
-$lang['draftdate']  = 'គំរោង កážáŸ‹ážŸáŸ’ážœáŸáž™áž”្រវážáŸ’áž';
-
-$lang['regmissing'] = 'សុំអាទោស​ អ្នកážáŸ’រវបំពáŸáž‰áž€áŸ’របវាល។';
-$lang['reguexists'] = 'សុំអាទោស​ នាមប្រើនáŸáŸ‡áž˜áž¶áž“រួចហើ។';
-$lang['regsuccess'] = 'អ្នកប្រើបានបង្កើážáž áž¾áž™ និងពាក្សសម្ងាážáž€áŸáž”ានផ្ញើទៀážáŸ”';
-$lang['regsuccess2']= 'អ្នកប្រើបានបង្កើážáž áž¾áž™áŸ”';
-$lang['regmailfail']= 'មើលទៅដុចជាមានកំហុសក្នុង....សុំទាកទងអ្នកក្របក្រង';
-$lang['regbadmail'] = 'អ៊ីមáŸáž›áž¢áŸ’នកសាសáŸáž˜áž·áž“ážáŸ’រូវបញ្ជរ—បើអ្នកកិážážáž¶áž“áŸáŸ‡áž‡áž¶áž€áŸ†áž áž»ážŸáž”ដិបážáŸ’ážáž· សុំទាកទងអ្នកក្របគ្រោង។';
-$lang['regbadpass'] = 'គូពាក្សសម្ងាážáž˜áž·áž“ដូចគ្នាទ០សមសាកទៀážáŸ”';
-$lang['regpwmail']  = 'ពាក្សសម្ងាážáž¢áŸ’នក';
-$lang['reghere']    = 'អ្នកឥážáž˜áž¶áž“បញ្ជីនាមបម្រើទáŸ?  សុំចល់ចុះឈ្មោះធ្វើគណនីសម្របប្រើប្រស';
-
-$lang['profna']       = 'មិនអាចកែ';
-$lang['profnochange'] = 'ឥážáž•្លាស់ប្ដូរ ក្មានអ្វីធ្វើទáŸáŸ”';
-$lang['profnoempty']  = 'នាមáŸáž¬áž¢áž¸áž˜áŸáž›áž‘áž‘áŸ';
-$lang['profchanged']  = 'ប្រវážáŸ’ážáž·ážšáž¼áž”អ្នកប្រើបាន ។';
-
-$lang['pwdforget'] = 'ភ្លិចពាក្សសម្ងាážáŸ‹ យកមួយទាážáŸ”';
-$lang['resendna']  = 'វីគីនáŸáŸ‡áž˜áž·áž“ឧបរំផ្ញើពាក្សសម្ងាážáž˜áŸ’ដងទៀážáž‘áŸáŸ”';
-$lang['resendpwdmissing'] = 'សុំអាទោស​ អ្នកážáŸ’រវបំពáŸáž‰ážœáž¶áž›áŸ”';
-$lang['resendpwdnouser']  = 'សុំអាទោស​ យាងរកអ្នកប្រើមិនឃើងទáŸáŸ”';
-$lang['resendpwdbadauth'] = 'សុំអាទោស​ រហស្សលáŸážáž¢áž“ុញ្ញាážáž–ំអាចប្រើបានទáŸáŸ” ážáŸ’សែបន្áž';
-$lang['resendpwdconfirm'] ='ážáŸ’សែបន្áž';
-$lang['resendpwdsuccess'] = 'ពាក្សសម្ងាážáž¢áŸ’នកបានផ្ញើហើយ។';
-
-$lang['txt_upload']   = 'ជ្រើសឯកសារដែលរុញ​ឡើង:';
-$lang['txt_filename'] = 'រុញឡើងជា (ស្រáŸáž…​ចិážáŸ’áž):';
-$lang['txt_overwrt']  = 'កážáŸ‹áž–ីលើ';//'Overwrite existing file';
-$lang['lockedby']     = 'ឥឡូវនáŸáŸ‡áž…កជាប់​:';
-$lang['lockexpire']   = 'សោជាប់ផុážâ€‹áž€áŸ†ážŽážáŸ‹áž˜áŸ‰áŸ„áž„:';
-$lang['js']['willexpire']   = 'សោអ្នកចំពោះកែážáž˜áŸ’រូវទំពáŸážšáž“áŸáŸ‡ ហួសពែលក្នុងមួយនាទី។\nកុំឲ្យមានជម្លោះ ប្រើ «បង្ហាញ»​ ទៅកំណážáŸ‹â€‹áž¡áž¾áž„​វិញ។';
-
-$lang['js']['notsavedyet'] = 'កម្រែមិនទានរុក្សាទកážáŸ’រូវបោះបង់។\nបន្ážáž‘ៅទាឬទáŸ?';
-$lang['rssfailed']   = 'មានកំហុសពáŸáž›áž‘ៅ​ប្រមូល​យកមážáž·â€‹áž–áŸážáŸŒáž˜áž¶áž“៖ ';
-$lang['nothingfound']= 'រកមិនឃើញអ្វីទáŸáŸ”';
-
-$lang['mediaselect'] = 'ឯកសារមីឌៀ';
-$lang['uploadsucc']  = 'រុញចូលមានជáŸáž™';
-$lang['uploadfail']  = 'រុញឡើងបរាជáŸáž™áŸ” ប្រហែលážáž»ážŸážŸáž·áž‘្ឋានុញ្ញាáž?';
-$lang['uploadwrong'] = 'រុញឡើងážáŸ’រូវ​បាន​បដិសáŸáž’។ ឯកសារ';
-$lang['uploadexist'] = 'ឯកសារមានហើយ។ ឥážáž˜áž¶áž“ធ្វើអ្វីទáŸáŸ”';
-$lang['uploadbadcontent'] = 'áž’áž¶ážáž»áž…ំរុញឡើងមិនážáŸ’រូវកន្ទុយឯកសារ %s áž‘áŸáŸ”';
-$lang['uploadspam']  = 'ចំរុញឡើង បង្ážáž¶áŸ†áž„ ដៅយ  ';
-$lang['uploadxss']   = 'ចំរុញឡើង បង្ážáž¶áŸ†áž„  ';
-$lang['deletesucc']  = 'ឯកសារ «%s» បានលុបហើយ។';
-$lang['deletefail']  = '«%s» មិនអាចលុបទáŸâ€”មើល';
-$lang['mediainuse']  = 'ឯកសារ «%s» ឥážáž‘ានលុបទáŸâ€”មានគáŸáž€áŸ†áž—ងទáŸáž‡áž¶áž”់ប្រើ។';
-$lang['namespaces']  = 'នាមដ្ឋាន';
-$lang['mediafiles']  = 'ឯកសារទំនáŸáž“ៅក្នុង';
-
-$lang['js']['keepopen']    = 'ទុកបង្អួចបើក áž–áŸáž›áž€áž¶ážšáž‡áž˜áŸ’រើស';
-$lang['js']['hidedetails'] = 'បាំង';
-$lang['mediausage']  = 'ប្រើ';
-$lang['mediaview']   = 'មើលឯកសារដើម';
-$lang['mediaroot']   = 'ឫស';
-$lang['mediaupload'] = 'រុញឯកសារឡើងទៅនាមដ្ឋាននáŸáŸ‡áŸ” នាមដ្ឋាន «រុញឡើង»';
-$lang['mediaextchange'] = 'កន្ទុយឯកសារផ្លាសពី «%s» ទៅ «%s»!';
-
-$lang['reference']   = 'អនុសាសនចំពោះ';
-$lang['ref_inuse']   = 'ឯកសារមិនអាចលុបពីព្រោះវានៅចាប់ប្រើដៅទំពáŸážšáŸ–';
-$lang['ref_hidden']  = 'អនុសាសនážáŸ’លះនៅលើទំពáŸážšáž¢áŸ’នកគ្មានសáŸáž’អនុញ្ញាáž';
-
-$lang['hits']       = 'ážáŸ’រូវ';
-$lang['quickhits']  = 'ឈ្មោះទំពáŸážšáž”្រៀបដូច';
-$lang['toc']        = 'មាážáž·áž€áž¶';
-$lang['current']    = 'ឥឡៅវ';
-$lang['yours']      = 'ážáŸ†ážŽáŸ‚អ្នាក';
-$lang['diff']       = 'បង្ហាងអសទិសភាពជាមួយážáŸ†ážŽáŸ‚ឥឡូវ ';
-$lang['line']       = 'ážáŸ’សែ';
-$lang['breadcrumb'] = 'ដាន:';
-$lang['youarehere'] = 'ដាន:';
-$lang['lastmod']    = 'áž–áŸáž›áž€áŸ‚ចុងក្រោយ:';
-$lang['by']         = 'និពន្ឋដោយ';
-$lang['deleted']    = 'យកចáŸáž‰';
-$lang['created']    = 'បង្កើáž';
-$lang['external_edit'] = 'កំរáŸáž–ីក្រៅ';
-$lang['summary']    = 'កែážáž˜áŸ’ážšáž¶';
-
-$lang['mail_newpage']  = 'ážáŸ‚មទំពáŸážš';
-$lang['mail_changed']  = 'ទំពáŸážšáž”្រែប្រួល';
-$lang['mail_new_user'] = 'អ្នកប្រើážáŸ’មី';
-$lang['mail_upload']   = 'រុញអក្សាលើង';
-
-$lang['qb_bold']    = 'ឃ្វាមក្រស';
-$lang['qb_italic']  = 'ឃ្វាមជ្រៀង';
-$lang['qb_underl']  = 'ឃ្វាម';
-$lang['qb_code']    = 'ឃ្វាមក្បួន';
-$lang['qb_strike']  = 'ឃ្វាម';
-$lang['qb_h1']      = 'និវáŸáž‘áž“áŸáž‘ី១';
-$lang['qb_h2']      = 'និវáŸáž‘áž“áŸáž‘ី២';
-$lang['qb_h3']      = 'និវáŸáž‘áž“áŸáž‘ី៣';
-$lang['qb_h4']      = 'និវáŸáž‘áž“áŸáž‘ី៤';
-$lang['qb_h5']      = 'និវáŸáž‘áž“áŸáž‘ី៥';
-$lang['qb_link']    = 'ážáŸ’សែបន្ážáž€áŸ’នុង';
-$lang['qb_extlink'] = 'ážáŸ’សែបន្ážáž€áŸ’រៅ';
-$lang['qb_hr']      = 'បន្ទាផ្ដáŸáž€';
-$lang['qb_ol']      = 'ážáž¶ážšáž¶áž„ážáŸ’រៀប';
-$lang['qb_ul']      = 'ážáž¶ážšáž¶áž„អážáŸ’រៀប';
-$lang['qb_media']   = 'បន្ážáŸ‚មរូនឹងឯកសារឥទៀáž';
-$lang['qb_sig']     = 'ស៊កហážáŸ’ážáž›áŸážáž¶';
-$lang['qb_smileys'] = 'សញ្ញាអារម្មណáŸ';
-$lang['qb_chars']   = 'អក្ážážšáŸˆáž–ិសáŸážŸ';
-
-$lang['js']['del_confirm']= 'លុប';
-
-$lang['metaedit']    = 'កែទិន្ននáŸáž™áž¢ážšáž¼áž”';//'Edit Metadata';
-$lang['metasaveerr'] = 'ពំអាចកážáŸ‹ážšáž‘ិន្ននáŸáž™áž¢ážšáž¼áž”';//'Writing metadata failed';
-$lang['metasaveok']  = 'ទិន្ននáŸáž™áž¢ážšáž¼áž”';
-$lang['btn_img_backto']  = 'ážáž™áž€áŸ’រោយ%s';
-$lang['img_title']   = 'អភិធáŸáž™áŸ’áž™:';
-$lang['img_caption'] = 'ចំណងជើង:';
-$lang['img_date']    = 'ážáŸ’ងៃážáŸ‚:';//'Date';
-$lang['img_fname']   = 'ឈ្មោះឯកសារ:';
-$lang['img_fsize']   = 'ទំហំ:';//'Size';
-$lang['img_artist']  = 'អ្នកážážážšáž¼áž”:';
-$lang['img_copyr']   = 'រក្សា​សិទ្ធិ:';
-$lang['img_format']  = 'ធុនប្រភáŸáž‘:';
-$lang['img_camera']  = 'គ្រឿងážáž:';
-$lang['img_keywords']= 'មáŸáž–ាក្ស:';//'Keywords';
-
-/* auth.class language support */
-$lang['authtempfail']    = 'ការផ្ទៀងផ្ទាážáŸ‹â€‹áž—ាព​​ážáŸ’រឹមážáŸ’រូវឥážážŠáŸ†áž“áŸáŸ” ប្រើ ....';
-
-/* installer strings */
-$lang['i_chooselang'] = 'រើសពាស្សាអ្នក';
-$lang['i_installer']  = 'ដំឡើងឌោគូវីគី';
-$lang['i_wikiname']   = 'នាមវីគី';
-$lang['i_enableacl']  = 'បើកប្រើ (អនុសាស)';
-$lang['i_superuser']  = 'អ្នកកំពូល';
-$lang['i_problems']   = 'កម្មវិធី​ដំឡើងបានប៉ះឧបសគ្គ។ អ្នកមិនអាចបន្ážáž‘ៅទៀហដល់អ្នកជួសជុលវា។';
-$lang['i_modified']   = '';
-$lang['i_permfail']   = '<code>%s</code> មិនអាចសាស';
-$lang['i_confexists'] = '<code>%s</code> មានហាយ';
-$lang['i_writeerr']   = 'មិនអាចបណ្កើ<code>%s</code>។ អ្នកážáŸ’រវការពិនិážáŸ’យអធិក្រឹážáž·ážšáž”ស់ážážáž“ឹងឯកសារ។';
-$lang['i_success']    = '';
-$lang['i_failure']    = 'ពលសាសារ';
-$lang['i_policy']     = 'បញ្ជីអនុញ្ញážáž•្ដើម';
-$lang['i_pol0']       = 'វីគីបើកចំហ';
-$lang['i_pol1']       = 'វីគីសធារណៈ';
-$lang['i_pol2']       = 'វីគីបិទជិáž';
-
-$lang['i_retry']      = 'ម្ážáž„ទៀáž';
-
-//Setup VIM: ex: et ts=2 :
-$lang['email_signature_text'] = 'អ៊ីមáŸáž›áž“áŸáŸ‡áž”ន្ចáŸáž¢áž–ីឌោគូវីគីនៅ
-@DOKUWIKIURL@';
diff --git a/wiki/inc/lang/km/login.txt b/wiki/inc/lang/km/login.txt
deleted file mode 100644
index 2149d9c..0000000
--- a/wiki/inc/lang/km/login.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== កážáŸ‹áž…ូល ======
-
-អ្នកមិនទាន់។
-អ្នកážáŸ’រូវការអនុញ្ញាឲ្យកážáŸ‹ážáž“ំបានចូល។
-
diff --git a/wiki/inc/lang/km/newpage.txt b/wiki/inc/lang/km/newpage.txt
deleted file mode 100644
index 4b2b4e2..0000000
--- a/wiki/inc/lang/km/newpage.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== ឥážáž‘ានមានទ០======
-អ្នកážáž¶áž˜ážáŸ’រសៃážáŸ’សែដែលគ្មានទំពáŸážšáŸ”
-បើ
-
diff --git a/wiki/inc/lang/km/norev.txt b/wiki/inc/lang/km/norev.txt
deleted file mode 100644
index 7ca1189..0000000
--- a/wiki/inc/lang/km/norev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-====== ឥážáž˜áž¶áž“បុនរាព្រឹážáŸ’ážáž·áž‘០======
-បុនរាព្រឹážáŸ’ážáž·áž–ុំមានទáŸáŸ” សុំប្រើ «ទំពáŸážšáž…ាស់ៗ» ទៅមើលបញ្ជីប្រវážáŸ’ážáž‘ំពáŸážšáž…ាស់រូបស់អážáŸ’ážáž”ទនáŸáŸ‡áŸ”
diff --git a/wiki/inc/lang/km/password.txt b/wiki/inc/lang/km/password.txt
deleted file mode 100644
index 8cdfcd8..0000000
--- a/wiki/inc/lang/km/password.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-សួរស្ដី @FULLNAME@!
-
-áž“áŸáŸ‡áž‡áž¶áž”ញ្ជីប្រើប្រះរុបស @TITLE@ នៅ @DOKUWIKIURL@
-
-នាមបង្រើ៖  @LOGIN@
-ពាក្សសម្ងាážáŸ– @PASSWORD@
diff --git a/wiki/inc/lang/km/pwconfirm.txt b/wiki/inc/lang/km/pwconfirm.txt
deleted file mode 100644
index 34051aa..0000000
--- a/wiki/inc/lang/km/pwconfirm.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-សួស្ដី @FULLNAME@!
-
-មានគáŸážŸáž»áž˜ážŸáŸ’នើពាក្យ​សម្ងាážáŸ‹â€‹ážšáž»áž”សឲ្យ@TITLE@ នៅ @DOKUWIKIURL@។
-បើអ្នកមិនជាអ្នកសុមពាក្យ​សម្ងាážáŸ‹áž‘០សុំបស់ចល់អ៊ីមáŸáž›áž“áŸáŸ‡áŸ”
-
-
-សុំអះអាងដែលសំណើនáŸáŸ‡ážŠáŸ„យទៅážáž¶áž˜ážáŸ’សែ
-
-@CONFIRM@
diff --git a/wiki/inc/lang/km/recent.txt b/wiki/inc/lang/km/recent.txt
deleted file mode 100644
index 14449ea..0000000
--- a/wiki/inc/lang/km/recent.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== ប្រវážáŸ’ážáž·áž‘ំពáŸážšáž”ច្ចុប្បន្ន ======
-ទំពáŸážšáž‘ាំងនáŸáŸ‡áž‚ឺទំពáŸážšáž€áŸ‚ប្រែ
-
diff --git a/wiki/inc/lang/km/register.txt b/wiki/inc/lang/km/register.txt
deleted file mode 100644
index b850c2e..0000000
--- a/wiki/inc/lang/km/register.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-====== អ្នកប្រើážáŸ’មី ======
-
-Fill in all the information below to create a new account in this wiki.
-Make sure you supply a **valid e-mail address** - if you are not asked
-to enter a password here, a new one will be sent to that address.
-The login name should be a valid [[doku>wiki:pagename|pagename]].
-
diff --git a/wiki/inc/lang/km/revisions.txt b/wiki/inc/lang/km/revisions.txt
deleted file mode 100644
index a15186d..0000000
--- a/wiki/inc/lang/km/revisions.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== ប្រវážáŸ’ážáž·áž‘ំពáŸážšáž…ាស់ ======
-ទាំងនáŸáŸ‡áž‚ឺប្រវážáŸ’ážáž·áž‘ំពáŸážšáž…ាស់រុបសអážáŸ’ážáž”ទនáŸáŸ‡áŸ”
-ជ្រើសážáŸ’សែទំពáŸážšáž–ីážáž¶áž„ក្រោមហើយ ចុហ«កែទំពáŸážšáž“áŸáŸ‡Â» រួចហើយរក្សាវាទុក។
-
diff --git a/wiki/inc/lang/kn/admin.txt b/wiki/inc/lang/kn/admin.txt
deleted file mode 100644
index 2897218..0000000
--- a/wiki/inc/lang/kn/admin.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-====== ಆಡಳಿತಾತà³à²®à²• ======
-ಈ ಕೆಳಗೆ ಡಾಕà³à²µà²¿à²•ಿ(DokuWiki)ಯಲà³à²²à²¿à²°à³à²µ ಆಡಳಿತಾತà³à²®à²• ಕಾರà³à²¯à²—ಳ ಪಟà³à²Ÿà²¿à²¯à²¨à³à²¨à³ ನೋಡಬಹà³à²¦à³.
\ No newline at end of file
diff --git a/wiki/inc/lang/kn/adminplugins.txt b/wiki/inc/lang/kn/adminplugins.txt
deleted file mode 100644
index 0b00527..0000000
--- a/wiki/inc/lang/kn/adminplugins.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== ಹೆಚà³à²šà³à²µà²°à²¿ ಪà³à²²à²—ೠಇನೠಗಳೠ=====
\ No newline at end of file
diff --git a/wiki/inc/lang/kn/backlinks.txt b/wiki/inc/lang/kn/backlinks.txt
deleted file mode 100644
index 68ef78b..0000000
--- a/wiki/inc/lang/kn/backlinks.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-====== ಹಿಂಕೊಂಡಿಗಳೠ======
-ಹಾಲಿ ಪà³à²Ÿà²•à³à²•ೆ ಹಿಂದಕà³à²•ೆ ಕೊಂಡಿಯಿರಬಹà³à²¦à²¾à²¦à²‚ತಹ ಪà³à²Ÿà²—ಳ ಪಟà³à²Ÿà²¿à²¯à²¿à²¦à³.
\ No newline at end of file
diff --git a/wiki/inc/lang/kn/conflict.txt b/wiki/inc/lang/kn/conflict.txt
deleted file mode 100644
index 880639f..0000000
--- a/wiki/inc/lang/kn/conflict.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== ಹೊಸ ಅವತರಣಿಕೆ ಅಸà³à²¤à²¿à²¤à³à²µà²¦à²²à³à²²à²¿à²¦à³†  ======
-ನೀವೠಸಂಪಾದಿಸಿದ ಕಡತದ ಇನà³à²¨à³‚ ಹೊಸ ಆವೃತà³à²¤à²¿ ಅಸà³à²¤à²¿à²¤à³à²µà²¦à²²à³à²²à²¿à²¦à³†. ನೀವೠಸಂಪಾದಿಸà³à²¤à³à²¤à²¿à²°à³à²µà²¾à²— ಬೇರೊಬà³à²¬à²°à³ ಅದೇ ಕಡತವನà³à²¨à³ ಮಾರà³à²ªà²¡à²¿à²¸à²¿à²¦à²°à³† ಹೀಗಾಗà³à²¤à³à²¤à²¦à³†.
-
-ಕೆಳಗೆ ತೋರಿಸಿರà³à²µ ವà³à²¯à²¤à³à²¯à²¾à²¸à²—ಳನà³à²¨à³ ಕೂಲಂಕà³à²¶à²µà²¾à²—ಿ ಪರಿಶೀಲಿಸಿ, ನಂತರ ಯಾವ ಆವೃತà³à²¤à²¿à²¯à²¨à³à²¨à³ ಇಟà³à²Ÿà³à²•ೊಳà³à²³à²¬à³‡à²•ೆಂದೠನಿರà³à²§à²°à²¿à²¸à²¿. ನೀವೠ"ಉಳಿಸà³" ಅನà³à²¨à³ ಆಯà³à²•ೆ ಮಾಡಿಕೊಂಡರೆ ನಿಮà³à²® ಆವೃತà³à²¤à²¿ ಉಳಿದà³à²•ೊಳà³à²³à³à²¤à³à²¤à²¦à³†. ನೀವೠ"ರದà³à²¦à³ ಮಾಡà³" ಅನà³à²¨à³ ಆಯà³à²•ೆ ಮಾಡಿಕೊಂಡರೆ ಹಾಲಿ ಆವೃತà³à²¤à²¿ ಉಳಿಯà³à²¤à³à²¤à²¦à³†.
\ No newline at end of file
diff --git a/wiki/inc/lang/ko/admin.txt b/wiki/inc/lang/ko/admin.txt
deleted file mode 100644
index 2f81e89..0000000
--- a/wiki/inc/lang/ko/admin.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== 관리 ======
-
-ë„쿠위키ì—서 사용할 수 있는 관리 작업 목ë¡ì„ 아래ì—서 ì°¾ì„ ìˆ˜ 있습니다.
\ No newline at end of file
diff --git a/wiki/inc/lang/ko/adminplugins.txt b/wiki/inc/lang/ko/adminplugins.txt
deleted file mode 100644
index 2c436d6..0000000
--- a/wiki/inc/lang/ko/adminplugins.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== 추가ì ì¸ í”ŒëŸ¬ê·¸ì¸ =====
\ No newline at end of file
diff --git a/wiki/inc/lang/ko/backlinks.txt b/wiki/inc/lang/ko/backlinks.txt
deleted file mode 100644
index 457974d..0000000
--- a/wiki/inc/lang/ko/backlinks.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== ì—­ë§í¬ ======
-
-현재 문서를 가리키는 ë§í¬ê°€ 있는 문서 목ë¡ìž…니다.
\ No newline at end of file
diff --git a/wiki/inc/lang/ko/conflict.txt b/wiki/inc/lang/ko/conflict.txt
deleted file mode 100644
index b542033..0000000
--- a/wiki/inc/lang/ko/conflict.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== 새 íŒ ìžˆìŒ ======
-
-편집한 ë¬¸ì„œì˜ ìƒˆ íŒì´ 있습니다. ë‹¹ì‹ ì´ íŽ¸ì§‘í•˜ê³  있는 ë™ì•ˆ 다른 사용ìžê°€ 문서를 바꾸면 ì´ëŸ° ì¼ì´ ìƒê¸¸ 수 있습니다.
-
-ì•„ëž˜ì˜ ì°¨ì´ë¥¼ 철저하게 검토하고 ì–´ë–¤ íŒì„ 저장하실지 결정하세요. ''저장''ì„ ì„ íƒí•˜ë©´ ë‹¹ì‹ ì˜ íŒì´ 저장ë©ë‹ˆë‹¤. ''취소''를 ì„ íƒí•˜ë©´ 현재 íŒì´ 유지ë©ë‹ˆë‹¤.
\ No newline at end of file
diff --git a/wiki/inc/lang/ko/denied.txt b/wiki/inc/lang/ko/denied.txt
deleted file mode 100644
index bf82fbd..0000000
--- a/wiki/inc/lang/ko/denied.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== 권한 거절 ======
-
-죄송하지만 계ì†í•  수 있는 ê¶Œí•œì´ ì—†ìŠµë‹ˆë‹¤.
\ No newline at end of file
diff --git a/wiki/inc/lang/ko/diff.txt b/wiki/inc/lang/ko/diff.txt
deleted file mode 100644
index 3fef832..0000000
--- a/wiki/inc/lang/ko/diff.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== ì°¨ì´ ======
-
-ë¬¸ì„œì˜ ì„ íƒí•œ ë‘ íŒ ì‚¬ì´ì˜ ì°¨ì´ë¥¼ ë³´ì—¬ì¤ë‹ˆë‹¤.
\ No newline at end of file
diff --git a/wiki/inc/lang/ko/draft.txt b/wiki/inc/lang/ko/draft.txt
deleted file mode 100644
index bb6dc8c..0000000
--- a/wiki/inc/lang/ko/draft.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== 문서 초안 ìžˆìŒ ======
-
-ì´ ë¬¸ì„œì˜ ë§ˆì§€ë§‰ 편집 ì„¸ì…˜ì€ ì˜¬ë°”ë¥´ê²Œ ë나지 않았습니다. ë„쿠위키는 작업 ë„중 ìžë™ìœ¼ë¡œ ì €ìž¥ëœ ì´ˆì•ˆì„ ì‚¬ìš©í•´ íŽ¸ì§‘ì„ ê³„ì† í•  수 있습니다. 마지막 세션 ë™ì•ˆ ì €ìž¥ëœ ì´ˆì•ˆì„ ì•„ëž˜ì—서 ë³¼ 수 있습니다.
-
-비정ìƒì ìœ¼ë¡œ ë난 편집 ì„¸ì…˜ì„ **복구**í• ì§€ 여부를 결정하고, ìžë™ìœ¼ë¡œ 저장ë˜ì—ˆë˜ ì´ˆì•ˆì„ **ì‚­ì œ**하거나 편집 ê³¼ì •ì„ **취소**하세요.
\ No newline at end of file
diff --git a/wiki/inc/lang/ko/edit.txt b/wiki/inc/lang/ko/edit.txt
deleted file mode 100644
index 70b24ac..0000000
--- a/wiki/inc/lang/ko/edit.txt
+++ /dev/null
@@ -1 +0,0 @@
-문서를 편집하고 ''저장''ì„ ëˆ„ë¥´ì„¸ìš”. 위키 êµ¬ë¬¸ì€ [[wiki:syntax]]를 참조하세요. 문서를 **ë” ì¢‹ê²Œ 만들 ìžì‹ ì´ ìžˆì„ ë•Œ**ì—ë§Œ 편집하세요. ì—°ìŠµì„ í•˜ê³  싶다면 먼저 [[playground:playground|연습장]]ì— ê°€ì„œ 연습하세요.
\ No newline at end of file
diff --git a/wiki/inc/lang/ko/editrev.txt b/wiki/inc/lang/ko/editrev.txt
deleted file mode 100644
index 530b38d..0000000
--- a/wiki/inc/lang/ko/editrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**ë¬¸ì„œì˜ ì´ì „ íŒì„ ì„ íƒí–ˆìŠµë‹ˆë‹¤!** 저장하면 ì´ ìžë£Œë¡œ 새 íŒì„ 만듭니다.
-----
\ No newline at end of file
diff --git a/wiki/inc/lang/ko/index.txt b/wiki/inc/lang/ko/index.txt
deleted file mode 100644
index ce94e09..0000000
--- a/wiki/inc/lang/ko/index.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== 사ì´íŠ¸ë§µ ======
-
-[[doku>ko:namespaces|ì´ë¦„공간]] 순으로 정렬한 모든 ë¬¸ì„œì˜ ì‚¬ì´íŠ¸ë§µìž…ë‹ˆë‹¤.
\ No newline at end of file
diff --git a/wiki/inc/lang/ko/install.html b/wiki/inc/lang/ko/install.html
deleted file mode 100644
index ecc0d3c..0000000
--- a/wiki/inc/lang/ko/install.html
+++ /dev/null
@@ -1,22 +0,0 @@
-<p>ì´ íŽ˜ì´ì§€ëŠ” <a href="http://dokuwiki.org">ë„쿠위키</a>ì˜ ì²«
-설치와 환경 ì„¤ì •ì„ ë„와ì¤ë‹ˆë‹¤. ì´ ì„¤ì¹˜ í”„ë¡œê·¸ëž¨ì— ëŒ€í•œ ìžì„¸í•œ 정보는
-<a href="http://dokuwiki.org/ko:installer">설명문 페ì´ì§€</a>ì—서
-볼 수 있습니다.</p>
-
-<p>ë„쿠위키는 위키 문서와 해당 문서와 ê´€ë ¨ëœ ì •ë³´(예를 들어 그림,
-검색 색ì¸, ì´ì „ íŒ ë¬¸ì„œ 등)를 저장하기 위해 ì¼ë°˜ì ì¸ í…스트 파ì¼ì„
-사용합니다. 성공ì ìœ¼ë¡œ ìž‘ë™í•˜ë ¤ë©´ ë„쿠위키는 ì´ íŒŒì¼ì„ ë‹´ê³ 
-있는 ë””ë ‰í† ë¦¬ì— ëŒ€í•œ 쓰기 ê¶Œí•œì´ <strong>있어야</strong> 합니다.
-ì´ ì„¤ì¹˜ í”„ë¡œê·¸ëž¨ì€ ë””ë ‰í† ë¦¬ ê¶Œí•œì„ ì„¤ì •í•  수 없습니다. 보통
-ì§ì ‘ 명령 ì…¸ì— ìˆ˜í–‰í•˜ê±°ë‚˜ í˜¸ìŠ¤íŒ…ì„ ì‚¬ìš©í•œë‹¤ë©´, FTP나 호스팅
-제어íŒ(예를 들어 CPanel)ì„ í†µí•´ 수행해야 합니다.</p>
-
-<p>ì´ ì„¤ì¹˜ í”„ë¡œê·¸ëž¨ì€ ê´€ë¦¬ìžë¡œ 로그ì¸í•˜ê³  나서 í”ŒëŸ¬ê·¸ì¸ ì„¤ì¹˜, ì‚¬ìš©ìž ê´€ë¦¬,
-위키 ë¬¸ì„œë¡œì˜ ì ‘ê·¼ 관리와 환경 ì„¤ì •ì„ ë°”ê¾¸ê¸° 위한 ë„ì¿ ìœ„í‚¤ì˜ ê´€ë¦¬ 메뉴ì—
-접근할 수 있는, <acronym title="access control list; ì ‘ê·¼ 제어 목ë¡">ACL</acronym>ì—
-대한 ë„쿠위키 í™˜ê²½ì„ ì„¤ì •í•©ë‹ˆë‹¤. ë„쿠위키가 ìž‘ë™í•˜ëŠ”ë° í•„ìš”í•˜ì§€ 않지만,
-ë„쿠위키를 쉽게 관리할 수 있ë„ë¡ í•´ì¤ë‹ˆë‹¤.</p>
-
-<p>ìˆ™ë ¨ëœ ì‚¬ìš©ìžë‚˜ 특수한 설치가 필요한 사용ìžì—게 ìžì„¸í•œ ë‚´ìš©ì€
-<a href="http://dokuwiki.org/ko:install">설치 지침</a>과
-<a href="http://dokuwiki.org/ko:config">환경 설정</a> ë§í¬ë¥¼ 사용해야 합니다.</p>
diff --git a/wiki/inc/lang/ko/jquery.ui.datepicker.js b/wiki/inc/lang/ko/jquery.ui.datepicker.js
deleted file mode 100644
index 8879a99..0000000
--- a/wiki/inc/lang/ko/jquery.ui.datepicker.js
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Korean initialisation for the jQuery calendar extension. */
-/* Written by DaeKwon Kang (ncrash.dk@gmail.com), Edited by Genie and Myeongjin Lee. */
-( function( factory ) {
-	if ( typeof define === "function" && define.amd ) {
-
-		// AMD. Register as an anonymous module.
-		define( [ "../widgets/datepicker" ], factory );
-	} else {
-
-		// Browser globals
-		factory( jQuery.datepicker );
-	}
-}( function( datepicker ) {
-
-datepicker.regional.ko = {
-	closeText: "닫기",
-	prevText: "ì´ì „달",
-	nextText: "다ìŒë‹¬",
-	currentText: "오늘",
-	monthNames: [ "1ì›”","2ì›”","3ì›”","4ì›”","5ì›”","6ì›”",
-	"7ì›”","8ì›”","9ì›”","10ì›”","11ì›”","12ì›”" ],
-	monthNamesShort: [ "1ì›”","2ì›”","3ì›”","4ì›”","5ì›”","6ì›”",
-	"7ì›”","8ì›”","9ì›”","10ì›”","11ì›”","12ì›”" ],
-	dayNames: [ "ì¼ìš”ì¼","월요ì¼","화요ì¼","수요ì¼","목요ì¼","금요ì¼","토요ì¼" ],
-	dayNamesShort: [ "ì¼","ì›”","í™”","수","목","금","토" ],
-	dayNamesMin: [ "ì¼","ì›”","í™”","수","목","금","토" ],
-	weekHeader: "주",
-	dateFormat: "yy. m. d.",
-	firstDay: 0,
-	isRTL: false,
-	showMonthAfterYear: true,
-	yearSuffix: "ë…„" };
-datepicker.setDefaults( datepicker.regional.ko );
-
-return datepicker.regional.ko;
-
-} ) );
diff --git a/wiki/inc/lang/ko/lang.php b/wiki/inc/lang/ko/lang.php
deleted file mode 100644
index 91bd8ca..0000000
--- a/wiki/inc/lang/ko/lang.php
+++ /dev/null
@@ -1,352 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Seungheon Song <esketch@gmail.com>
- * @author Hyun Kim <lawfully@gmail.com>
- * @author jk Lee
- * @author dongnak <dongnak@gmail.com>
- * @author Song Younghwan <purluno@gmail.com>
- * @author Seung-Chul Yoo <dryoo@live.com>
- * @author erial2 <erial2@gmail.com>
- * @author Myeongjin <aranet100@gmail.com>
- * @author Gerrit Uitslag <klapinklapin@gmail.com>
- * @author Garam <rowain8@gmail.com>
- * @author Young gon Cha <garmede@gmail.com>
- * @author hyeonsoft <hyeonsoft@live.co.kr>
- * @author S.H. Lee <tuders@naver.com>
- */
-$lang['encoding']              = 'utf-8';
-$lang['direction']             = 'ltr';
-$lang['doublequoteopening']    = '“';
-$lang['doublequoteclosing']    = 'â€';
-$lang['singlequoteopening']    = '‘';
-$lang['singlequoteclosing']    = '’';
-$lang['apostrophe']            = '’';
-$lang['btn_edit']              = '문서 편집';
-$lang['btn_source']            = 'ì›ë³¸ 보기';
-$lang['btn_show']              = '문서 보기';
-$lang['btn_create']            = '문서 만들기';
-$lang['btn_search']            = '검색';
-$lang['btn_save']              = '저장';
-$lang['btn_preview']           = '미리 보기';
-$lang['btn_top']               = '맨 위로';
-$lang['btn_newer']             = '<< ë” ìµœê·¼';
-$lang['btn_older']             = 'ëœ ìµœê·¼ >>';
-$lang['btn_revs']              = 'ì´ì „ íŒ';
-$lang['btn_recent']            = '최근 바뀜';
-$lang['btn_upload']            = '올리기';
-$lang['btn_cancel']            = '취소';
-$lang['btn_index']             = '사ì´íŠ¸ë§µ';
-$lang['btn_secedit']           = '편집';
-$lang['btn_login']             = '로그ì¸';
-$lang['btn_logout']            = '로그아웃';
-$lang['btn_admin']             = '관리';
-$lang['btn_update']            = 'ì—…ë°ì´íЏ';
-$lang['btn_delete']            = '삭제';
-$lang['btn_back']              = '뒤로';
-$lang['btn_backlink']          = 'ì—­ë§í¬';
-$lang['btn_subscribe']         = 'êµ¬ë… ê´€ë¦¬';
-$lang['btn_profile']           = '프로필 ì—…ë°ì´íЏ';
-$lang['btn_reset']             = '재설정';
-$lang['btn_resendpwd']         = '새 비밀번호 설정';
-$lang['btn_draft']             = '초안 편집';
-$lang['btn_recover']           = '초안 복구';
-$lang['btn_draftdel']          = '초안 삭제';
-$lang['btn_revert']            = 'ë˜ëŒë¦¬ê¸°';
-$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']                  = '비밀번호';
-$lang['newpass']               = '새 비밀번호';
-$lang['oldpass']               = '현재 비밀번호 확ì¸';
-$lang['passchk']               = '다시 확ì¸';
-$lang['remember']              = '기억하기';
-$lang['fullname']              = '실명';
-$lang['email']                 = 'ì´ë©”ì¼';
-$lang['profile']               = 'ì‚¬ìš©ìž í”„ë¡œí•„';
-$lang['badlogin']              = '죄송하지만 ì‚¬ìš©ìž ì´ë¦„ì´ë‚˜ 비밀번호가 잘못ë˜ì—ˆìŠµë‹ˆë‹¤.';
-$lang['badpassconfirm']        = '죄송하지만 비밀번호가 잘못ë˜ì—ˆìŠµë‹ˆë‹¤';
-$lang['minoredit']             = '사소한 바뀜';
-$lang['draftdate']             = '초안 ìžë™ 저장 시간';
-$lang['nosecedit']             = '한 ë™ì•ˆ 문서가 바뀌었으며, 문단 ì •ë³´ê°€ 오래ë˜ì–´ 문서 전체를 대신 열었습니다.';
-$lang['regmissing']            = '죄송하지만 모든 필드를 채워야 합니다.';
-$lang['reguexists']            = '죄송하지만 ê°™ì€ ì´ë¦„ì„ ì‚¬ìš©í•˜ëŠ” 사용ìžê°€ 있습니다.';
-$lang['regsuccess']            = 'ì‚¬ìš©ìž ê³„ì •ì„ ë§Œë“¤ì—ˆìœ¼ë©° 비밀번호는 ì´ë©”ì¼ë¡œ 보냈습니다.';
-$lang['regsuccess2']           = 'ì‚¬ìš©ìž ê³„ì •ì„ ë§Œë“¤ì—ˆìŠµë‹ˆë‹¤.';
-$lang['regfail']               = 'ì‚¬ìš©ìž ê³„ì •ì„ ë§Œë“¤ 수 없었습니다.';
-$lang['regmailfail']           = '비밀번호를 ì´ë©”ì¼ë¡œ 보내는 ë™ì•ˆ 오류가 ë°œìƒí–ˆìŠµë‹ˆë‹¤. 관리ìžì—게 문ì˜í•´ì£¼ì„¸ìš”!';
-$lang['regbadmail']            = '주어진 ì´ë©”ì¼ ì£¼ì†Œê°€ 잘못ë˜ì—ˆìŠµë‹ˆë‹¤ - 오류ë¼ê³  ìƒê°í•˜ë©´ 관리ìžì—게 문ì˜í•´ì£¼ì„¸ìš”';
-$lang['regbadpass']            = 'ë‘ ì£¼ì–´ì§„ 비밀번호가 ì¼ì¹˜í•˜ì§€ 않습니다, 다시 입력하세요.';
-$lang['regpwmail']             = 'ë„쿠위키 비밀번호';
-$lang['reghere']               = 'ê³„ì •ì´ ì—†ë‚˜ìš”? ê³„ì •ì„ ë“±ë¡í•˜ì„¸ìš”';
-$lang['profna']                = 'ì´ ìœ„í‚¤ëŠ” 프로필 ìˆ˜ì •ì„ í•  수 없습니다';
-$lang['profnochange']          = 'ë°”ë€ ë‚´ìš©ì´ ì—†ìŠµë‹ˆë‹¤.';
-$lang['profnoempty']           = '빈 ì´ë¦„ì´ë‚˜ ì´ë©”ì¼ ì£¼ì†ŒëŠ” 허용하지 않습니다.';
-$lang['profchanged']           = 'í”„ë¡œí•„ì´ ì„±ê³µì ìœ¼ë¡œ 바뀌었습니다.';
-$lang['profnodelete']          = 'ì´ ìœ„í‚¤ëŠ” ì‚¬ìš©ìž ê³„ì • 삭제를 ì§€ì›í•˜ì§€ 않습니다';
-$lang['profdeleteuser']        = '계정 삭제';
-$lang['profdeleted']           = 'ë‹¹ì‹ ì˜ ì‚¬ìš©ìž ê³„ì •ì´ ì´ ìœ„í‚¤ì—서 ì‚­ì œë˜ì—ˆìŠµë‹ˆë‹¤';
-$lang['profconfdelete']        = 'ì´ ìœ„í‚¤ì—서 ë‚´ ê³„ì •ì„ ì œê±°í•˜ê³  싶습니다. <br/> ì´ í–‰ë™ì€ ë˜ëŒë¦´ 수 없습니다.';
-$lang['profconfdeletemissing'] = 'ì„ íƒí•˜ì§€ ì•Šì€ í™•ì¸ ìƒìžë¥¼ 확ì¸';
-$lang['proffail']              = 'ì‚¬ìš©ìž í”„ë¡œí•„ì´ ì—…ë°ì´íЏë˜ì§€ 않았습니다.';
-$lang['pwdforget']             = '비밀번호를 잊으셨나요? 비밀번호를 재설정하세요';
-$lang['resendna']              = 'ì´ ìœ„í‚¤ëŠ” 비밀번호 ìž¬ì„¤ì •ì„ ì§€ì›í•˜ì§€ 않습니다.';
-$lang['resendpwd']             = '다ìŒìœ¼ë¡œ 새 비밀번호 보내기';
-$lang['resendpwdmissing']      = '죄송하지만 모든 필드를 채워야 합니다.';
-$lang['resendpwdnouser']       = '죄송하지만 ë°ì´í„°ë² ì´ìФì—서 ì´ ì‚¬ìš©ìžë¥¼ ì°¾ì„ ìˆ˜ 없습니다.';
-$lang['resendpwdbadauth']      = '죄송하지만 ì¸ì¦ 코드가 올바르지 않습니다. ìž˜ëª»ëœ í™•ì¸ ë§í¬ì¸ì§€ 확ì¸í•˜ì„¸ìš”.';
-$lang['resendpwdconfirm']      = 'í™•ì¸ ë§í¬ë¥¼ ì´ë©”ì¼ë¡œ 보냈습니다.';
-$lang['resendpwdsuccess']      = '새 비밀번호를 ì´ë©”ì¼ë¡œ 보냈습니다.';
-$lang['license']               = '별ë„로 명시하지 ì•Šì„ ê²½ìš°, ì´ ìœ„í‚¤ì˜ ë‚´ìš©ì€ ë‹¤ìŒ ë¼ì´ì„ ìŠ¤ì— ë”°ë¼ ì‚¬ìš©í•  수 있습니다:';
-$lang['licenseok']             = '참고: ì´ ë¬¸ì„œë¥¼ 편집하면 ë‚´ìš©ì€ ë‹¤ìŒ ë¼ì´ì„ ìŠ¤ì— ë”°ë¼ ë°°í¬í•˜ëŠ” ë° ë™ì˜í•©ë‹ˆë‹¤:';
-$lang['searchmedia']           = 'íŒŒì¼ ì´ë¦„ 검색:';
-$lang['searchmedia_in']        = '%sì—서 검색';
-$lang['txt_upload']            = '올릴 íŒŒì¼ ì„ íƒ:';
-$lang['txt_filename']          = '올릴 íŒŒì¼ ì´ë¦„ (ì„ íƒ ì‚¬í•­):';
-$lang['txt_overwrt']           = '기존 파ì¼ì— ë®ì–´ì“°ê¸°';
-$lang['maxuploadsize']         = '최대 올리기 용량. 파ì¼ë‹¹ %s.';
-$lang['lockedby']              = '현재 ìž ê·¼ 사용ìž:';
-$lang['lockexpire']            = '잠금 해제 시간:';
-$lang['js']['willexpire']      = '잠시 후 편집 ìž ê¸ˆì´ í•´ì œë©ë‹ˆë‹¤.\n편집 ì¶©ëŒì„ 피하려면 미리 보기를 눌러 잠금 ì‹œê°„ì„ ë‹¤ì‹œ 설정하세요.';
-$lang['js']['notsavedyet']     = '저장하지 ì•Šì€ ë°”ë€œì´ ì‚¬ë¼ì§‘니다.';
-$lang['js']['searchmedia']     = 'íŒŒì¼ ê²€ìƒ‰';
-$lang['js']['keepopen']        = 'ì„ íƒí•  때 ì—´ì–´ ë†“ì€ ì°½ì„ ìœ ì§€í•˜ê¸°';
-$lang['js']['hidedetails']     = 'ìžì„¸í•œ ì •ë³´ 숨기기';
-$lang['js']['mediatitle']      = 'ë§í¬ 설정';
-$lang['js']['mediadisplay']    = 'ë§í¬ 유형';
-$lang['js']['mediaalign']      = '배치';
-$lang['js']['mediasize']       = '그림 í¬ê¸°';
-$lang['js']['mediatarget']     = 'ë§í¬ 타겟';
-$lang['js']['mediaclose']      = '닫기';
-$lang['js']['mediainsert']     = '넣기';
-$lang['js']['mediadisplayimg'] = 'ê·¸ë¦¼ì„ ë³´ì—¬ì¤ë‹ˆë‹¤.';
-$lang['js']['mediadisplaylnk'] = 'ë§í¬ë§Œ ë³´ì—¬ì¤ë‹ˆë‹¤.';
-$lang['js']['mediasmall']      = '작게';
-$lang['js']['mediamedium']     = '중간';
-$lang['js']['medialarge']      = 'í¬ê²Œ';
-$lang['js']['mediaoriginal']   = 'ì›ë³¸';
-$lang['js']['medialnk']        = 'ìžì„¸í•œ ì •ë³´ 문서로 ë§í¬';
-$lang['js']['mediadirect']     = 'ì›ë³¸ìœ¼ë¡œ ì§ì ‘ ë§í¬';
-$lang['js']['medianolnk']      = 'ë§í¬ ì—†ìŒ';
-$lang['js']['medianolink']     = 'ê·¸ë¦¼ì„ ë§í¬í•˜ì§€ 않ìŒ';
-$lang['js']['medialeft']       = '왼쪽으로 그림 배치';
-$lang['js']['mediaright']      = '오른쪽으로 그림 배치';
-$lang['js']['mediacenter']     = '가운ë°ìœ¼ë¡œ 그림 배치';
-$lang['js']['medianoalign']    = '배치하지 않ìŒ';
-$lang['js']['nosmblinks']      = 'Windows 공유 파ì¼ê³¼ì˜ ì—°ê²°ì€ Microsoft Internet Explorerì—서만 ë™ìž‘합니다.\n그러나 ë§í¬ë¥¼ 복사하거나 붙여넣기를 í•  수 있습니다.';
-$lang['js']['linkwiz']         = 'ë§í¬ 마법사';
-$lang['js']['linkto']          = '다ìŒìœ¼ë¡œ ì—°ê²°:';
-$lang['js']['del_confirm']     = 'ì •ë§ ì„ íƒëœ í•­ëª©ì„ ì‚­ì œí•˜ê² ìŠµë‹ˆê¹Œ?';
-$lang['js']['restore_confirm'] = 'ì •ë§ ì´ íŒìœ¼ë¡œ ë˜ëŒë¦¬ê² ìŠµë‹ˆê¹Œ?';
-$lang['js']['media_diff']      = 'ì°¨ì´ ë³´ê¸°:';
-$lang['js']['media_diff_both'] = '나란히 보기';
-$lang['js']['media_diff_opacity'] = 'ê²¹ì³ ë³´ê¸°';
-$lang['js']['media_diff_portions'] = '쪼개 보기';
-$lang['js']['media_select']    = 'íŒŒì¼ ì„ íƒâ€¦';
-$lang['js']['media_upload_btn'] = '올리기';
-$lang['js']['media_done_btn']  = '완료';
-$lang['js']['media_drop']      = '올릴 파ì¼ì„ ì—¬ê¸°ì— ëŒì–´ë„£ìœ¼ì„¸ìš”';
-$lang['js']['media_cancel']    = '제거';
-$lang['js']['media_overwrt']   = '기존 파ì¼ì— ë®ì–´ì“°ê¸°';
-$lang['rssfailed']             = 'ì´ í”¼ë“œë¥¼ 가져오는 ë™ì•ˆ 오류가 ë°œìƒí–ˆìŠµë‹ˆë‹¤:';
-$lang['nothingfound']          = '아무 ê²ƒë„ ì—†ìŠµë‹ˆë‹¤.';
-$lang['mediaselect']           = '미디어 파ì¼';
-$lang['uploadsucc']            = '올리기 성공';
-$lang['uploadfail']            = '올리기가 실패ë˜ì—ˆìŠµë‹ˆë‹¤. ìž˜ëª»ëœ ê¶Œí•œ 때문ì¼ì§€ë„ 모릅니다.';
-$lang['uploadwrong']           = '올리기가 ê±°ë¶€ë˜ì—ˆìŠµë‹ˆë‹¤. ê¸ˆì§€ëœ íŒŒì¼ í™•ìž¥ìžìž…니다!';
-$lang['uploadexist']           = '파ì¼ì´ ì´ë¯¸ 존재합니다.';
-$lang['uploadbadcontent']      = '올린 파ì¼ì´ %s íŒŒì¼ í™•ìž¥ìžì™€ ì¼ì¹˜í•˜ì§€ 않습니다.';
-$lang['uploadspam']            = '스팸 차단 목ë¡ì´ 올리기를 차단했습니다.';
-$lang['uploadxss']             = '악성 ì½”ë“œì˜ ê°€ëŠ¥ì„±ì´ ìžˆì–´ 올리기를 차단했습니다.';
-$lang['uploadsize']            = '올린 파ì¼ì´ 너무 í½ë‹ˆë‹¤. (최대 %s)';
-$lang['deletesucc']            = '"%s" 파ì¼ì´ ì‚­ì œë˜ì—ˆìŠµë‹ˆë‹¤.';
-$lang['deletefail']            = '"%s" 파ì¼ì„ 삭제할 수 없습니다 - ê¶Œí•œì´ ìžˆëŠ”ì§€ 확ì¸í•˜ì„¸ìš”.';
-$lang['mediainuse']            = '"%s" 파ì¼ì„ 삭제할 수 없습니다 - ì•„ì§ ì‚¬ìš© 중입니다.';
-$lang['namespaces']            = 'ì´ë¦„공간';
-$lang['mediafiles']            = '사용할 수 있는 íŒŒì¼ ëª©ë¡';
-$lang['accessdenied']          = 'ì´ ë¬¸ì„œë¥¼ ë³¼ ê¶Œí•œì´ ì—†ìŠµë‹ˆë‹¤.';
-$lang['mediausage']            = 'ì´ íŒŒì¼ì„ 참조하려면 ë‹¤ìŒ ë¬¸ë²•ì„ ì‚¬ìš©í•˜ì„¸ìš”:';
-$lang['mediaview']             = 'ì›ë³¸ íŒŒì¼ ë³´ê¸°';
-$lang['mediaroot']             = '루트';
-$lang['mediaupload']           = '파ì¼ì„ 현재 ì´ë¦„공간으로 올립니다. 하위 ì´ë¦„공간으로 만들려면 ì„ íƒí•œ íŒŒì¼ ì´ë¦„ ì•žì— ìŒì (:)으로 구분ë˜ëŠ” ì´ë¦„ì„ ë¶™ì´ë©´ ë©ë‹ˆë‹¤. 파ì¼ì„ 드래그 앤 드롭해 ì„ íƒí•  수 있습니다.';
-$lang['mediaextchange']        = 'íŒŒì¼ í™•ìž¥ìžê°€ .%sì—서 .%s(으)로 바뀌었습니다!';
-$lang['reference']             = '다ìŒì„ 참조';
-$lang['ref_inuse']             = 'ë‹¤ìŒ ë¬¸ì„œì—서 ì•„ì§ ì‚¬ìš© 중ì´ë¯€ë¡œ 파ì¼ì„ 삭제할 수 없습니다:';
-$lang['ref_hidden']            = 'ë¬¸ì„œì˜ ì¼ë¶€ 참조는 ì½ì„ 수 있는 ê¶Œí•œì´ ì—†ìŠµë‹ˆë‹¤';
-$lang['hits']                  = '조회 수';
-$lang['quickhits']             = 'ì¼ì¹˜í•˜ëŠ” 문서 ì´ë¦„';
-$lang['toc']                   = '목차';
-$lang['current']               = '현재';
-$lang['yours']                 = 'íŒ';
-$lang['diff']                  = '현재 íŒê³¼ì˜ ì°¨ì´ ë³´ê¸°';
-$lang['diff2']                 = 'ì„ íƒí•œ íŒ ì‚¬ì´ì˜ ì°¨ì´ ë³´ê¸°';
-$lang['difflink']              = 'ì°¨ì´ ë³´ê¸°ë¡œ ë§í¬';
-$lang['diff_type']             = 'ì°¨ì´ ë³´ê¸°:';
-$lang['diff_inline']           = 'ì§ë ¬ ë°©ì‹';
-$lang['diff_side']             = '다중 ì°½ ë°©ì‹';
-$lang['diffprevrev']           = 'ì´ì „ íŒ';
-$lang['diffnextrev']           = 'ë‹¤ìŒ íŒ';
-$lang['difflastrev']           = '마지막 íŒ';
-$lang['diffbothprevrev']       = '양쪽 ì´ì „ íŒ';
-$lang['diffbothnextrev']       = '양쪽 ë‹¤ìŒ íŒ';
-$lang['line']                  = '줄';
-$lang['breadcrumb']            = 'ì¶”ì :';
-$lang['youarehere']            = '현재 위치:';
-$lang['lastmod']               = '마지막으로 수정ë¨:';
-$lang['by']                    = 'ì €ìž';
-$lang['deleted']               = '제거ë¨';
-$lang['created']               = '만듦';
-$lang['restored']              = 'ì´ì „ íŒìœ¼ë¡œ ë˜ëŒë¦¼ (%s)';
-$lang['external_edit']         = '바깥 편집';
-$lang['summary']               = '편집 요약';
-$lang['noflash']               = 'ì´ ë‚´ìš©ì„ í‘œì‹œí•˜ê¸° 위해서 <a href="http://www.adobe.com/products/flashplayer/">Adobe Flash 플러그ì¸</a>ì´ í•„ìš”í•©ë‹ˆë‹¤.';
-$lang['download']              = 'ì¡°ê° ë‹¤ìš´ë¡œë“œ';
-$lang['tools']                 = 'ë„구';
-$lang['user_tools']            = 'ì‚¬ìš©ìž ë„구';
-$lang['site_tools']            = '사ì´íЏ ë„구';
-$lang['page_tools']            = '문서 ë„구';
-$lang['skip_to_content']       = '내용으로 건너뛰기';
-$lang['sidebar']               = '사ì´ë“œë°”';
-$lang['mail_newpage']          = '문서 추가ë¨:';
-$lang['mail_changed']          = '문서 바뀜:';
-$lang['mail_subscribe_list']   = 'ì´ë¦„공간ì—서 ë°”ë€ ë¬¸ì„œ:';
-$lang['mail_new_user']         = '새 사용ìž:';
-$lang['mail_upload']           = 'íŒŒì¼ ì˜¬ë¦¼:';
-$lang['changes_type']          = 'ì°¨ì´ ë³´ê¸°';
-$lang['pages_changes']         = '문서';
-$lang['media_changes']         = '미디어 파ì¼';
-$lang['both_changes']          = '문서와 미디어 íŒŒì¼ ëª¨ë‘';
-$lang['qb_bold']               = 'êµµì€ ê¸€ì”¨';
-$lang['qb_italic']             = 'ê¸°ìš¸ì¸ ê¸€ì”¨';
-$lang['qb_underl']             = '밑줄 글씨';
-$lang['qb_code']               = '코드 글씨';
-$lang['qb_strike']             = '취소선 글씨';
-$lang['qb_h1']                 = '1단계 문단 제목';
-$lang['qb_h2']                 = '2단계 문단 제목';
-$lang['qb_h3']                 = '3단계 문단 제목';
-$lang['qb_h4']                 = '4단계 문단 제목';
-$lang['qb_h5']                 = '5단계 문단 제목';
-$lang['qb_h']                  = '문단 제목';
-$lang['qb_hs']                 = '문단 제목 ì„ íƒ';
-$lang['qb_hplus']              = 'ìƒìœ„ 문단 제목';
-$lang['qb_hminus']             = '하위 문단 제목';
-$lang['qb_hequal']             = 'ë™ê¸‰ 문단 제목';
-$lang['qb_link']               = '안쪽 ë§í¬';
-$lang['qb_extlink']            = '바깥 ë§í¬';
-$lang['qb_hr']                 = '가로줄';
-$lang['qb_ol']                 = '순서 있는 목ë¡';
-$lang['qb_ul']                 = '순서 없는 목ë¡';
-$lang['qb_media']              = '그림과 다른 íŒŒì¼ ì¶”ê°€ (새 ì°½ì—서 열림)';
-$lang['qb_sig']                = '서명 넣기';
-$lang['qb_smileys']            = 'ì´ëª¨í‹°ì½˜';
-$lang['qb_chars']              = '특수 문ìž';
-$lang['upperns']               = 'ìƒìœ„ ì´ë¦„공간으로 ì´ë™';
-$lang['metaedit']              = '메타ë°ì´í„° 편집';
-$lang['metasaveerr']           = '메타ë°ì´í„° 쓰기 실패';
-$lang['metasaveok']            = '메타ë°ì´í„° 저장ë¨';
-$lang['img_title']             = '제목:';
-$lang['img_caption']           = '설명:';
-$lang['img_date']              = '날짜:';
-$lang['img_fname']             = 'íŒŒì¼ ì´ë¦„:';
-$lang['img_fsize']             = 'í¬ê¸°:';
-$lang['img_artist']            = 'ì´¬ì˜ìž:';
-$lang['img_copyr']             = '저작권:';
-$lang['img_format']            = 'í¬ë§·:';
-$lang['img_camera']            = 'ì¹´ë©”ë¼:';
-$lang['img_keywords']          = '키워드:';
-$lang['img_width']             = '너비:';
-$lang['img_height']            = '높ì´:';
-$lang['subscr_subscribe_success'] = '%s 사용ìžê°€ %s êµ¬ë… ëª©ë¡ì— 추가했습니다';
-$lang['subscr_subscribe_error'] = '%s 사용ìžê°€ %s êµ¬ë… ëª©ë¡ì— ì¶”ê°€í•˜ëŠ”ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤';
-$lang['subscr_subscribe_noaddress'] = '로그ì¸ìœ¼ë¡œ ì—°ê²°ëœ ì£¼ì†Œê°€ 없기 ë•Œë¬¸ì— êµ¬ë… ëª©ë¡ì— 추가할 수 없습니다';
-$lang['subscr_unsubscribe_success'] = '%s 사용ìžê°€ %s êµ¬ë… ëª©ë¡ì—서 제거했습니다';
-$lang['subscr_unsubscribe_error'] = '%s 사용ìžê°€ %s êµ¬ë… ëª©ë¡ì—서 ì‚­ì œí•˜ëŠ”ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤';
-$lang['subscr_already_subscribed'] = '%s 사용ìžê°€ ì´ë¯¸ %sì— êµ¬ë…하고 있습니다';
-$lang['subscr_not_subscribed'] = '%s 사용ìžê°€ %sì— êµ¬ë…하고 있지 않습니다';
-$lang['subscr_m_not_subscribed'] = '문서나 ì´ë¦„ê³µê°„ì— í˜„ìž¬ 구ë…하고 있지 않습니다.';
-$lang['subscr_m_new_header']   = 'êµ¬ë… ì¶”ê°€';
-$lang['subscr_m_current_header'] = '현재 êµ¬ë… ì¤‘ì¸ ë¬¸ì„œ';
-$lang['subscr_m_unsubscribe']  = 'êµ¬ë… ì·¨ì†Œ';
-$lang['subscr_m_subscribe']    = '구ë…';
-$lang['subscr_m_receive']      = '받기';
-$lang['subscr_style_every']    = '모든 ë°”ë€œì„ ì´ë©”ì¼ë¡œ 받기';
-$lang['subscr_style_digest']   = 'ê° ë¬¸ì„œì˜ ë°”ë€œì„ ìš”ì•½ (매 %.2fì¼ ë§ˆë‹¤)';
-$lang['subscr_style_list']     = '마지막 ì´ë©”ì¼ ì´í›„ ë°”ë€ ë¬¸ì„œì˜ ëª©ë¡ (매 %.2fì¼ ë§ˆë‹¤)';
-$lang['authtempfail']          = 'ì‚¬ìš©ìž ì¸ì¦ì„ ì¼ì‹œì ìœ¼ë¡œ 사용할 수 없습니다. 만약 계ì†í•´ì„œ 문제가 ë°œìƒí•œë‹¤ë©´ 위키 관리ìžì—게 문ì˜í•˜ì‹œê¸° ë°”ëžë‹ˆë‹¤.';
-$lang['i_chooselang']          = '사용할 언어를 ì„ íƒí•˜ì„¸ìš”';
-$lang['i_installer']           = 'ë„쿠위키 설치 관리ìž';
-$lang['i_wikiname']            = '위키 ì´ë¦„';
-$lang['i_enableacl']           = 'ACL 활성화 (권장)';
-$lang['i_superuser']           = 'ìŠˆí¼ ì‚¬ìš©ìž';
-$lang['i_problems']            = '설치 관리ìžê°€ ì•„ëž˜ì— ë‚˜ì™€ 있는 몇 가지 문제를 찾았습니다. 문제를 해결하지 전까지 설치를 계ì†í•  수 없습니다.';
-$lang['i_modified']            = '보안 ìƒì˜ ì´ìœ ë¡œ ì´ ìŠ¤í¬ë¦½íŠ¸ëŠ” 수정ë˜ì§€ ì•Šì€ ìƒˆ ë„쿠위키 설치ì—서만 ë™ìž‘ë©ë‹ˆë‹¤.
-                                  다운로드한 ì••ì¶• 패키지를 다시 설치하거나 <a href="http://dokuwiki.org/ko:install">ë„쿠위키 설치 과정</a>ì„ ì°¸ì¡°í•´ì„œ 설치하세요.';
-$lang['i_funcna']              = '<code>%s</code> PHP 함수를 사용할 수 없습니다. 호스트 제공ìžê°€ ì–´ë–¤ ì´ìœ ì—서ì¸ì§€ 막아 놓았ì„ì§€ 모릅니다.';
-$lang['i_phpver']              = 'PHP <code>%s</code> ë²„ì „ì€ í•„ìš”í•œ <code>%s</code> 버전보다 오래ë˜ì—ˆìŠµë‹ˆë‹¤. PHP를 업그레ì´ë“œí•  필요가 있습니다.';
-$lang['i_mbfuncoverload']      = 'ë„쿠위키를 실행하려면 mbstring.func_overload를 php.iniì—서 비활성화해야 합니다.';
-$lang['i_permfail']            = '<code>%s</code>는 ë„쿠위키가 쓰기 가능 ê¶Œí•œì´ ì—†ìŠµë‹ˆë‹¤. 먼저 ì´ ë””ë ‰í„°ë¦¬ì— ì“°ê¸° ê¶Œí•œì´ ì„¤ì •ë˜ì–´ì•¼ 합니다!';
-$lang['i_confexists']          = '<code>%s</code>(ì€)는 ì´ë¯¸ 존재합니다';
-$lang['i_writeerr']            = '<code>%s</code>(ì„)를 만들 수 없습니다. 먼저 디렉터리/íŒŒì¼ ê¶Œí•œì„ í™•ì¸í•˜ê³  파ì¼ì„ 수ë™ìœ¼ë¡œ 만드세요.';
-$lang['i_badhash']             = 'dokuwiki.php를 ì¸ì‹í•  수 없거나 ì›ë³¸ 파ì¼ì´ 아닙니다 (해시=<code>%s</code>)';
-$lang['i_badval']              = '<code>%s</code> - 잘못ë˜ì—ˆê±°ë‚˜ 빈 값입니다';
-$lang['i_success']             = '환경 ì„¤ì •ì´ ì„±ê³µì ìœ¼ë¡œ ë났습니다. 지금 install.php를 ì§€ì›Œë„ ìƒê´€ì—†ìŠµë‹ˆë‹¤.
-                                 <a href="doku.php?id=wiki:welcome">새 ë„쿠위키</a>로 들어가세요.';
-$lang['i_failure']             = '환경 설정 파ì¼ì— 쓰는 ë„ì¤‘ì— ì˜¤ë¥˜ê°€ ë°œìƒí–ˆìŠµë‹ˆë‹¤.
-                                  <a href="doku.php?id=wiki:welcome">새 ë„쿠위키</a>를 사용하기 ì „ì— ìˆ˜ë™ìœ¼ë¡œ 문제를 해결해야 합니다.';
-$lang['i_policy']              = '초기 ACL 정책';
-$lang['i_pol0']                = '열린 위키 (누구나 ì½ê¸°, 쓰기, 올리기가 가능합니다)';
-$lang['i_pol1']                = '공개 위키 (누구나 ì½ì„ 수 있지만, 등ë¡ëœ 사용ìžë§Œ 쓰기와 올리기가 가능합니다)';
-$lang['i_pol2']                = '닫힌 위키 (등ë¡ëœ 사용ìžë§Œ ì½ê¸°, 쓰기, 올리기가 가능합니다)';
-$lang['i_allowreg']            = 'ì‚¬ìš©ìž ìžì‹ ì´ 등ë¡í•  수 있ë„ë¡ í•˜ê¸°';
-$lang['i_retry']               = '다시 시ë„';
-$lang['i_license']             = 'ë‚´ìš©ì„ ë°°í¬í•˜ê¸° 위한 ë¼ì´ì„ ìŠ¤ë¥¼ ì„ íƒí•˜ì„¸ìš”:';
-$lang['i_license_none']        = 'ë¼ì´ì„ ìФ 정보를 보여주지 않습니다';
-$lang['i_pop_field']           = 'ë„쿠위키 ê²½í—˜ì„ ê°œì„ í•˜ëŠ” ë° ë„ì›€ì„ ì£¼ì„¸ìš”:';
-$lang['i_pop_label']           = '한 ë‹¬ì— í•œ 번씩, ë„쿠위키 개발ìžì—게 ìµëª…ì˜ ì‚¬ìš© ë°ì´í„°ë¥¼ 보냅니다';
-$lang['recent_global']         = '현재 <b>%s</b> ì´ë¦„ê³µê°„ì„ êµ¬ë… ì¤‘ìž…ë‹ˆë‹¤. <a href="%s">ì „ì²´ ìœ„í‚¤ì˜ ìµœê·¼ ë°”ë€œë„ ë³¼ 수</a> 있습니다.';
-$lang['years']                 = '%dë…„ ì „';
-$lang['months']                = '%d개월 전';
-$lang['weeks']                 = '%d주 전';
-$lang['days']                  = '%dì¼ ì „';
-$lang['hours']                 = '%d시간 전';
-$lang['minutes']               = '%dë¶„ ì „';
-$lang['seconds']               = '%dì´ˆ ì „';
-$lang['wordblock']             = '차단 문구(스팸)를 í¬í•¨í•˜ê³  있어서 ë°”ë€œì„ ì €ìž¥í•˜ì§€ 않았습니다.';
-$lang['media_uploadtab']       = '올리기';
-$lang['media_searchtab']       = '검색';
-$lang['media_file']            = '파ì¼';
-$lang['media_viewtab']         = '보기';
-$lang['media_edittab']         = '편집';
-$lang['media_historytab']      = '역사';
-$lang['media_list_thumbs']     = '섬네ì¼';
-$lang['media_list_rows']       = '목ë¡';
-$lang['media_sort_name']       = 'ì´ë¦„';
-$lang['media_sort_date']       = '날짜';
-$lang['media_namespaces']      = 'ì´ë¦„공간 ì„ íƒ';
-$lang['media_files']           = '%sì— ìžˆëŠ” 파ì¼';
-$lang['media_upload']          = '%sì— ì˜¬ë¦¬ê¸°';
-$lang['media_search']          = '%sì—서 검색';
-$lang['media_view']            = '%s';
-$lang['media_viewold']         = '%2$sì— ìžˆëŠ” %1$s';
-$lang['media_edit']            = '%s 편집';
-$lang['media_history']         = '%sì˜ ì—­ì‚¬';
-$lang['media_meta_edited']     = '메타ë°ì´í„° 편집ë¨';
-$lang['media_perm_read']       = '죄송하지만 파ì¼ì„ ì½ì„ ê¶Œí•œì´ ì—†ìŠµë‹ˆë‹¤.';
-$lang['media_perm_upload']     = '죄송하지만 파ì¼ì„ 올릴 ê¶Œí•œì´ ì—†ìŠµë‹ˆë‹¤.';
-$lang['media_update']          = '새 íŒ ì˜¬ë¦¬ê¸°';
-$lang['media_restore']         = 'ì´ íŒìœ¼ë¡œ ë˜ëŒë¦¬ê¸°';
-$lang['media_acl_warning']     = 'ì´ ëª©ë¡ì€ ACL로 제한ë˜ì–´ 있고 숨겨진 문서ì´ê¸° ë•Œë¬¸ì— ì™„ì „í•˜ì§€ ì•Šì„ ìˆ˜ 있습니다.';
-$lang['currentns']             = '현재 ì´ë¦„공간';
-$lang['searchresult']          = '검색 결과';
-$lang['plainhtml']             = 'ì¼ë°˜ HTML';
-$lang['wikimarkup']            = '위키 문법';
-$lang['page_nonexist_rev']     = '문서가 %sì— ì¡´ìž¬í•˜ì§€ 않았습니다. ê·¸ 뒤로 <a href="%s">%s</a>ì— ë§Œë“¤ì–´ì¡ŒìŠµë‹ˆë‹¤.';
-$lang['unable_to_parse_date']  = '"%s" 변수ì—서 구문 ë¶„ì„í•  수 없습니다.';
-$lang['email_signature_text']  = 'ì´ ë©”ì¼ì€ @DOKUWIKIURL@ì—서 ë„쿠위키가 ìƒì„±í–ˆìŠµë‹ˆë‹¤';
diff --git a/wiki/inc/lang/ko/locked.txt b/wiki/inc/lang/ko/locked.txt
deleted file mode 100644
index 38832d0..0000000
--- a/wiki/inc/lang/ko/locked.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== 문서 잠김 ======
-
-ì´ ë¬¸ì„œëŠ” 다른 사용ìžê°€ 편집하기 위해 현재 잠겨있습니다. 해당 사용ìžê°€ íŽ¸ì§‘ì„ ë내거나 ìž ê¸ˆì´ ë§Œë£Œë  ë•Œê¹Œì§€ 기다리세요.
\ No newline at end of file
diff --git a/wiki/inc/lang/ko/login.txt b/wiki/inc/lang/ko/login.txt
deleted file mode 100644
index f8af410..0000000
--- a/wiki/inc/lang/ko/login.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== ë¡œê·¸ì¸ ======
-
-로그ì¸í•˜ì§€ 않았습니다! 아래ì—서 로그ì¸í•˜ì„¸ìš”. 로그ì¸í•˜ë ¤ë©´ 쿠키를 활성화해야 합니다.
\ No newline at end of file
diff --git a/wiki/inc/lang/ko/mailtext.txt b/wiki/inc/lang/ko/mailtext.txt
deleted file mode 100644
index 2b22258..0000000
--- a/wiki/inc/lang/ko/mailtext.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-ë„쿠위키 문서가 추가ë˜ê±°ë‚˜ 바뀌었습니다. ìžì„¸í•œ ë‚´ìš©ì€ ë‹¤ìŒê³¼ 같습니다:
-
-날짜: @DATE@
-브ë¼ìš°ì €: @BROWSER@
-IP 주소: @IPADDRESS@
-호스트 ì´ë¦„: @HOSTNAME@
-ì´ì „ íŒ: @OLDPAGE@
-새 íŒ: @NEWPAGE@
-편집 요약: @SUMMARY@
-사용ìž: @USER@
-
-@DIFF@
diff --git a/wiki/inc/lang/ko/mailwrap.html b/wiki/inc/lang/ko/mailwrap.html
deleted file mode 100644
index 7df0cdc..0000000
--- a/wiki/inc/lang/ko/mailwrap.html
+++ /dev/null
@@ -1,13 +0,0 @@
-<html>
-<head>
-    <title>@TITLE@</title>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-</head>
-<body>
-
-@HTMLBODY@
-
-<br /><hr />
-<small>@EMAILSIGNATURE@</small>
-</body>
-</html>
diff --git a/wiki/inc/lang/ko/newpage.txt b/wiki/inc/lang/ko/newpage.txt
deleted file mode 100644
index a553cf9..0000000
--- a/wiki/inc/lang/ko/newpage.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== ì´ ì£¼ì œëŠ” ì•„ì§ ì—†ìŠµë‹ˆë‹¤ ======
-
-ì•„ì§ ì—†ëŠ” ì£¼ì œì— ëŒ€í•œ ë§í¬ë¥¼ ë”°ë¼ì™”습니다. "문서 만들기"를 í´ë¦­í•´ 새로 만들 수 있습니다.
\ No newline at end of file
diff --git a/wiki/inc/lang/ko/norev.txt b/wiki/inc/lang/ko/norev.txt
deleted file mode 100644
index 5cb7360..0000000
--- a/wiki/inc/lang/ko/norev.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== 지정한 íŒ ì—†ìŒ ======
-
-지정한 íŒì´ 존재하지 않습니다. ì´ ë¬¸ì„œì˜ ì´ì „ íŒ ëª©ë¡ì„ 보려면 "ì´ì „ íŒ"ì„ í´ë¦­í•˜ì„¸ìš”.
\ No newline at end of file
diff --git a/wiki/inc/lang/ko/password.txt b/wiki/inc/lang/ko/password.txt
deleted file mode 100644
index 1bd9246..0000000
--- a/wiki/inc/lang/ko/password.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-@FULLNAME@님 안녕하세요!
-
-ì—¬ê¸°ì— @DOKUWIKIURL@ì—서 @TITLE@ì˜ ì‚¬ìš©ìž ì •ë³´ê°€ 있습니다.
-
-로그ì¸: @LOGIN@
-비밀번호: @PASSWORD@
diff --git a/wiki/inc/lang/ko/preview.txt b/wiki/inc/lang/ko/preview.txt
deleted file mode 100644
index eed2b21..0000000
--- a/wiki/inc/lang/ko/preview.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== 미리 보기 ======
-
-입력한 ë‚´ìš©ì´ ì–´ë–»ê²Œ ë³´ì¼ì§€ 미리 ë³´ì—¬ì¤ë‹ˆë‹¤. ì•„ì§ **저장ë˜ì§€ 않았다**는 ì ì„ 기억해ë‘세요!
\ No newline at end of file
diff --git a/wiki/inc/lang/ko/pwconfirm.txt b/wiki/inc/lang/ko/pwconfirm.txt
deleted file mode 100644
index dfe32a0..0000000
--- a/wiki/inc/lang/ko/pwconfirm.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-@FULLNAME@님 안녕하세요!
-
-누군가가 @DOKUWIKIURL@ì— @TITLE@ì— ëŒ€í•´
-새 비밀번호가 필요하다고 요청했습니다.
-
-새 비밀번호를 요청하지 않았다면 ì´ ì´ë©”ì¼ì„ 무시해버리세요.
-
-ì •ë§ë¡œ ë‹¹ì‹ ì´ ìš”ì²­ì„ í•´ì„œ 보내졌는지 확ì¸í•˜ë ¤ë©´ ë‹¤ìŒ ë§í¬ë¥¼ 사용하세요.
-
-@CONFIRM@
diff --git a/wiki/inc/lang/ko/read.txt b/wiki/inc/lang/ko/read.txt
deleted file mode 100644
index 079b8e1..0000000
--- a/wiki/inc/lang/ko/read.txt
+++ /dev/null
@@ -1 +0,0 @@
-ì´ ë¬¸ì„œëŠ” ì½ê¸° 전용입니다. ì›ë³¸ì„ ë³¼ 수는 있지만 바꿀 수는 없습니다. 문제가 있다고 ìƒê°í•˜ë©´ 관리ìžì—게 문ì˜í•˜ì„¸ìš”.
\ No newline at end of file
diff --git a/wiki/inc/lang/ko/recent.txt b/wiki/inc/lang/ko/recent.txt
deleted file mode 100644
index 4dd1964..0000000
--- a/wiki/inc/lang/ko/recent.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== 최근 바뀜 ======
-
-ë‹¤ìŒ ë¬¸ì„œëŠ” ìµœê·¼ì— ë°”ë€Œì—ˆìŠµë‹ˆë‹¤.
\ No newline at end of file
diff --git a/wiki/inc/lang/ko/register.txt b/wiki/inc/lang/ko/register.txt
deleted file mode 100644
index 4d3df29..0000000
--- a/wiki/inc/lang/ko/register.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== 새 ì‚¬ìš©ìž ë“±ë¡ ======
-
-ì´ ìœ„í‚¤ì— ìƒˆ ê³„ì •ì„ ë§Œë“œë ¤ë©´ ì•„ëž˜ì˜ ëª¨ë“  ë‚´ìš©ì„ ìž…ë ¥í•˜ì„¸ìš”. **올바른 ì´ë©”ì¼ ì£¼ì†Œ**를 사용하세요. 비밀번호를 입력하는 ê³³ì´ ì—†ë‹¤ë©´, 새 비밀번호는 해당 주소로 보내집니다. ì‚¬ìš©ìž ì´ë¦„ì€ ì˜¬ë°”ë¥¸ [[doku>ko:pagename|문서 ì´ë¦„]]ì´ì–´ì•¼ 합니다.
\ No newline at end of file
diff --git a/wiki/inc/lang/ko/registermail.txt b/wiki/inc/lang/ko/registermail.txt
deleted file mode 100644
index adc5a08..0000000
--- a/wiki/inc/lang/ko/registermail.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-새 사용ìžê°€ 등ë¡ë˜ì—ˆìŠµë‹ˆë‹¤. ìžì„¸í•œ ë‚´ìš©ì€ ë‹¤ìŒê³¼ 같습니다:
-
-ì‚¬ìš©ìž ì´ë¦„: @NEWUSER@
-실명: @NEWNAME@
-ì´ë©”ì¼: @NEWEMAIL@
-
-날짜: @DATE@
-브ë¼ìš°ì €: @BROWSER@
-IP 주소: @IPADDRESS@
-호스트 ì´ë¦„: @HOSTNAME@
diff --git a/wiki/inc/lang/ko/resendpwd.txt b/wiki/inc/lang/ko/resendpwd.txt
deleted file mode 100644
index 44cd5ad..0000000
--- a/wiki/inc/lang/ko/resendpwd.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== 새 비밀번호 보내기 ======
-
-ì´ ìœ„í‚¤ ê³„ì •ì— ëŒ€í•œ 새 비밀번호를 요청하기 위해 아래 ì–‘ì‹ì—서 ì‚¬ìš©ìž ì´ë¦„ì„ ìž…ë ¥í•˜ì„¸ìš”. í™•ì¸ ë§í¬ëŠ” 새로 등ë¡í•œ ì´ë©”ì¼ ì£¼ì†Œë¡œ 보냅니다.
\ No newline at end of file
diff --git a/wiki/inc/lang/ko/resetpwd.txt b/wiki/inc/lang/ko/resetpwd.txt
deleted file mode 100644
index cc2ec6a..0000000
--- a/wiki/inc/lang/ko/resetpwd.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== 새 비밀번호 설정 ======
-
-ì´ ìœ„í‚¤ì— ìžˆëŠ” ê³„ì •ì˜ ìƒˆ 비밀번호를 입력하세요.
\ No newline at end of file
diff --git a/wiki/inc/lang/ko/revisions.txt b/wiki/inc/lang/ko/revisions.txt
deleted file mode 100644
index ed80dbc..0000000
--- a/wiki/inc/lang/ko/revisions.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== ì´ì „ íŒ ======
-
-ì´ ë¬¸ì„œì˜ ì´ì „ íŒì€ 다ìŒê³¼ 같습니다. ì´ì „ íŒìœ¼ë¡œ ë˜ëŒë¦¬ë ¤ë©´, 아래ì—서 ì„ íƒí•œ ë‹¤ìŒ ''문서 편집''ì„ í´ë¦­í•˜ê³  나서 저장하세요.
\ No newline at end of file
diff --git a/wiki/inc/lang/ko/searchpage.txt b/wiki/inc/lang/ko/searchpage.txt
deleted file mode 100644
index 9a3d2f3..0000000
--- a/wiki/inc/lang/ko/searchpage.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== 검색 ======
-
-아래ì—서 검색 결과를 ì°¾ì„ ìˆ˜ 있습니다. @CREATEPAGEINFO@
-
diff --git a/wiki/inc/lang/ko/showrev.txt b/wiki/inc/lang/ko/showrev.txt
deleted file mode 100644
index 91be367..0000000
--- a/wiki/inc/lang/ko/showrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**ë¬¸ì„œì˜ ì´ì „ íŒìž…니다!**
-----
\ No newline at end of file
diff --git a/wiki/inc/lang/ko/stopwords.txt b/wiki/inc/lang/ko/stopwords.txt
deleted file mode 100644
index b0be851..0000000
--- a/wiki/inc/lang/ko/stopwords.txt
+++ /dev/null
@@ -1,39 +0,0 @@
-# 색ì¸ì´ 만들어지지 않는 단어 목ë¡ìž…니다. (한 ì¤„ì— í•œ 단어)
-# ì´ íŒŒì¼ì„ 편집할 때 UNIX 줄 종료 문ìžë¥¼ 사용해야 합니다.(ë‹¨ì¼ ê°œí–‰ 문ìž)
-# 3ë¬¸ìž ì´í•˜ 단어는 ìžë™ìœ¼ë¡œ 무시ë˜ë¯€ë¡œ 3문ìžë³´ë‹¤ ì§§ì€ ë‹¨ì–´ëŠ” í¬í•¨ì‹œí‚¬ 필요가 없습니다.
-# http://www.ranks.nl/stopwords/ ì„ ê¸°ì¤€ìœ¼ë¡œ 만들어진 목ë¡ìž…니다.
-about
-are
-as
-an
-and
-you
-your
-them
-their
-com
-for
-from
-into
-if
-in
-is
-it
-how
-of
-on
-or
-that
-the
-this
-to
-was
-what
-when
-where
-who
-will
-with
-und
-the
-www
\ No newline at end of file
diff --git a/wiki/inc/lang/ko/subscr_digest.txt b/wiki/inc/lang/ko/subscr_digest.txt
deleted file mode 100644
index bdb46ad..0000000
--- a/wiki/inc/lang/ko/subscr_digest.txt
+++ /dev/null
@@ -1,15 +0,0 @@
-안녕하세요!
-
-@TITLE@ ìœ„í‚¤ì˜ @PAGE@ 문서가 바뀌었습니다.
-ë°”ë€œì€ ë‹¤ìŒê³¼ 같습니다:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-ì´ì „ íŒ: @OLDPAGE@
-새 íŒ: @NEWPAGE@
-
-
-문서 ì•Œë¦¼ì„ ì·¨ì†Œí•˜ë ¤ë©´, @DOKUWIKIURL@ì— ë¡œê·¸ì¸í•œ ë’¤
-@SUBSCRIBE@ 문서를 방문해 문서나 ì´ë¦„ê³µê°„ì˜ êµ¬ë…ì„ ì·¨ì†Œí•˜ì„¸ìš”.
diff --git a/wiki/inc/lang/ko/subscr_form.txt b/wiki/inc/lang/ko/subscr_form.txt
deleted file mode 100644
index ed380cc..0000000
--- a/wiki/inc/lang/ko/subscr_form.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== êµ¬ë… ê´€ë¦¬ ======
-
-ì´ íŽ˜ì´ì§€ëŠ” í˜„ìž¬ì˜ ë¬¸ì„œì™€ ì´ë¦„ê³µê°„ì˜ êµ¬ë…ì„ ê´€ë¦¬í•  수 있ë„ë¡ í•´ì¤ë‹ˆë‹¤.
\ No newline at end of file
diff --git a/wiki/inc/lang/ko/subscr_list.txt b/wiki/inc/lang/ko/subscr_list.txt
deleted file mode 100644
index 69a2d53..0000000
--- a/wiki/inc/lang/ko/subscr_list.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-안녕하세요!
-
-@TITLE@ ìœ„í‚¤ì˜ @PAGE@ 문서가 바뀌었습니다.
-ë¬¸ì„œì˜ ë°”ë€œì€ ë‹¤ìŒê³¼ 같습니다:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-ë¬¸ì„œì˜ ì•Œë¦¼ì„ ì·¨ì†Œí•˜ë ¤ë©´, @DOKUWIKIURL@ì— ë¡œê·¸ì¸í•œ ë’¤
-@SUBSCRIBE@ 문서를 방문해 문서나 ì´ë¦„ê³µê°„ì˜ êµ¬ë…ì„ ì·¨ì†Œí•˜ì„¸ìš”.
diff --git a/wiki/inc/lang/ko/subscr_single.txt b/wiki/inc/lang/ko/subscr_single.txt
deleted file mode 100644
index 425d0d9..0000000
--- a/wiki/inc/lang/ko/subscr_single.txt
+++ /dev/null
@@ -1,17 +0,0 @@
-안녕하세요!
-
-@TITLE@ ìœ„í‚¤ì˜ @PAGE@ 문서가 바뀌었습니다.
-ë°”ë€œì€ ë‹¤ìŒê³¼ 같습니다:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-날짜: @DATE@
-사용ìž: @USER@
-편집 요약: @SUMMARY@
-ì´ì „ íŒ: @OLDPAGE@
-새 íŒ: @NEWPAGE@
-
-ë¬¸ì„œì˜ ì•Œë¦¼ì„ ì·¨ì†Œí•˜ë ¤ë©´, @DOKUWIKIURL@ì— ë¡œê·¸ì¸í•œ ë’¤
-@SUBSCRIBE@ 문서를 방문해 문서나 ì´ë¦„ê³µê°„ì˜ êµ¬ë…ì„ ì·¨ì†Œí•˜ì„¸ìš”.
diff --git a/wiki/inc/lang/ko/updateprofile.txt b/wiki/inc/lang/ko/updateprofile.txt
deleted file mode 100644
index 0ddea30..0000000
--- a/wiki/inc/lang/ko/updateprofile.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== 계정 프로필 ì—…ë°ì´íЏ ======
-
-바꾸고 ì‹¶ì€ í•­ëª©ì„ ìž…ë ¥í•˜ì„¸ìš”. ì‚¬ìš©ìž ì´ë¦„ì€ ë°”ê¿€ 수 없습니다.
\ No newline at end of file
diff --git a/wiki/inc/lang/ko/uploadmail.txt b/wiki/inc/lang/ko/uploadmail.txt
deleted file mode 100644
index 1b6e55c..0000000
--- a/wiki/inc/lang/ko/uploadmail.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-ë„쿠위키가 파ì¼ì„ 올렸습니다. ìžì„¸í•œ 정보는 다ìŒê³¼ 같습니다:
-
-파ì¼: @MEDIA@
-ì´ì „ íŒ: @OLD@
-날짜: @DATE@
-브ë¼ìš°ì €: @BROWSER@
-IP 주소: @IPADDRESS@
-호스트 ì´ë¦„: @HOSTNAME@
-í¬ê¸°: @SIZE@
-MIME 유형: @MIME@
-사용ìž: @USER@
diff --git a/wiki/inc/lang/ku/backlinks.txt b/wiki/inc/lang/ku/backlinks.txt
deleted file mode 100644
index 5fa2ddf..0000000
--- a/wiki/inc/lang/ku/backlinks.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Girêdanên paş ======
-
-Di rûpelên di vê lîsteyê de girêdanên ji vê rûpelê re hene.
-
diff --git a/wiki/inc/lang/ku/conflict.txt b/wiki/inc/lang/ku/conflict.txt
deleted file mode 100644
index e139dce..0000000
--- a/wiki/inc/lang/ku/conflict.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-====== Guhertoyeke nûtir heye ======
-
-Guhertoyeke nûtir a belgeya ku tu biguherînî heye. Sedema wê, bikarhênerkê/î din di hema demê de belge diguherîne.
-
-Examine the differences shown below thoroughly, then decide which version to keep. If you choose ''save'', your version will be saved. Hit ''cancel'' to keep the current version.
-
diff --git a/wiki/inc/lang/ku/diff.txt b/wiki/inc/lang/ku/diff.txt
deleted file mode 100644
index 934ffb6..0000000
--- a/wiki/inc/lang/ku/diff.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Cuyawazî ======
-
-Li vê derê cuyawaziyên nav revîziyona hilbijartî û verziyona aniha tên nîşan dan.
-
diff --git a/wiki/inc/lang/ku/edit.txt b/wiki/inc/lang/ku/edit.txt
deleted file mode 100644
index 3a259dc..0000000
--- a/wiki/inc/lang/ku/edit.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-Rûpelê biguherîne û ''Tomar bike'' bitikîne. Ji bo sîntaksa wîkiyê binihêre [[wiki:syntax]]. Ji kerema xwe rûpelê bi tenê biguherîne, heke tû dikarî **baştir** bikî.  Heke tu dixwazî çend tiştan biceribînî, biçe [[wiki:playground]]. Li vê derê tu dikarî her tiştî biceribînî.
-
diff --git a/wiki/inc/lang/ku/index.txt b/wiki/inc/lang/ku/index.txt
deleted file mode 100644
index 4014044..0000000
--- a/wiki/inc/lang/ku/index.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== ÃŽndeks ======
-
-Ev îndeksa hemû rûpelên heyî ye. Rûpel li gora [[doku>namespaces|namespace]] hatin birêzkirin.
\ No newline at end of file
diff --git a/wiki/inc/lang/ku/lang.php b/wiki/inc/lang/ku/lang.php
deleted file mode 100644
index 3bfb5e6..0000000
--- a/wiki/inc/lang/ku/lang.php
+++ /dev/null
@@ -1,45 +0,0 @@
-<?php
-/**
- * kurdish language file
- *
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * @translator Erdal Ronahî <erdal.ronahi@gmail.com>
- */
-$lang['encoding']   = 'utf-8';
-$lang['direction']  = 'ltr';
-
-$lang['btn_edit']   = 'Vê rûpelê biguherîne';
-$lang['btn_source'] = 'Çavkaniya rûpelê nîşan bide';
-$lang['btn_show']   = 'Rûpelê nîşan bide';
-$lang['btn_create'] = 'Vê rûpelê biafirîne';
-$lang['btn_search'] = 'Lêbigere';
-$lang['btn_save']   = 'Tomar bike';
-$lang['btn_preview']= 'Pêşdîtin';
-$lang['btn_top']    = 'Biçe ser';
-$lang['btn_newer']  = '<< nûtir';
-$lang['btn_older']  = 'kevntir >>';
-$lang['btn_revs']   = 'Revîziyonên kevn';
-$lang['btn_recent'] = 'Guherandinên dawî';
-$lang['btn_upload'] = 'Bar bike';
-$lang['btn_cancel'] = 'Betal';
-$lang['btn_index']  = 'ÃŽndeks';
-$lang['btn_secedit']= 'Biguherîne';
-$lang['btn_login']  = 'Têkeve';
-$lang['btn_logout'] = 'Derkeve';
-$lang['btn_admin']  = 'Admin';
-$lang['btn_update'] = 'Rojanekirin';
-$lang['btn_delete'] = 'Jê bibe';
-$lang['btn_back']   = 'PaÅŸ';
-$lang['btn_backlink']    = 'Girêdanên paş';
-
-$lang['nothingfound']= 'Tiştek nehat dîtin.';
-$lang['reference']   = 'Referansa';
-$lang['toc']        = 'Tabloya Navêrokê';
-$lang['line']       = 'Rêz';
-$lang['breadcrumb'] = 'Åžop:';
-$lang['lastmod']    = 'Guherandina dawî:';
-$lang['deleted']    = 'hat jê birin';
-$lang['created']    = 'hat afirandin';
-$lang['summary']    = 'Kurteya guhartinê';
-
-//Setup VIM: ex: et ts=2 :
diff --git a/wiki/inc/lang/ku/newpage.txt b/wiki/inc/lang/ku/newpage.txt
deleted file mode 100644
index 6d256f0..0000000
--- a/wiki/inc/lang/ku/newpage.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Ev rûpel hîn nehat nivîsandin ======
-
-Rûpela tu hatî hîn nehat nivîsandin. Tu dikarî niha dest bi nivîsandina vê rûpelê bikî. Ji bo vê, ''Dest pê bike'' bitikîne.
diff --git a/wiki/inc/lang/ku/preview.txt b/wiki/inc/lang/ku/preview.txt
deleted file mode 100644
index da8f4cb..0000000
--- a/wiki/inc/lang/ku/preview.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Pêşdîtin ======
-
-Li vê derê tu dikarî bibîni ku nivîsa te dê çawa xuya bibe. Ji bîr neke: Hîn **nehat tomar kirin**!
\ No newline at end of file
diff --git a/wiki/inc/lang/ku/recent.txt b/wiki/inc/lang/ku/recent.txt
deleted file mode 100644
index 268c89a..0000000
--- a/wiki/inc/lang/ku/recent.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Guherandinên dawî ======
-
-Ev rûpel di dema nêzîk de hatin guherandin.
diff --git a/wiki/inc/lang/ku/searchpage.txt b/wiki/inc/lang/ku/searchpage.txt
deleted file mode 100644
index 90055b1..0000000
--- a/wiki/inc/lang/ku/searchpage.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Lêbigere ======
-
-Jêr encamên lêgerandina te tên nîşan dan. @CREATEPAGEINFO@
-
diff --git a/wiki/inc/lang/la/admin.txt b/wiki/inc/lang/la/admin.txt
deleted file mode 100644
index a8e3802..0000000
--- a/wiki/inc/lang/la/admin.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Administratio ======
-
-In hac pagina administratio uicis est.
\ No newline at end of file
diff --git a/wiki/inc/lang/la/adminplugins.txt b/wiki/inc/lang/la/adminplugins.txt
deleted file mode 100644
index 9f2ec47..0000000
--- a/wiki/inc/lang/la/adminplugins.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Addenda alia =====
\ No newline at end of file
diff --git a/wiki/inc/lang/la/backlinks.txt b/wiki/inc/lang/la/backlinks.txt
deleted file mode 100644
index b3c0d13..0000000
--- a/wiki/inc/lang/la/backlinks.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Nexa ======
-
-Index paginarum, quae ad hanc paginam connexae sunt.
diff --git a/wiki/inc/lang/la/conflict.txt b/wiki/inc/lang/la/conflict.txt
deleted file mode 100644
index aebc38b..0000000
--- a/wiki/inc/lang/la/conflict.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== Recentior forma est ======
-
-Recentior forma est: nam dum hanc paginam recensibas, aliquis paginam mutauit.
-
-Discrimina uides et formam seruandam eligis. Alia forma delebitur.
\ No newline at end of file
diff --git a/wiki/inc/lang/la/denied.txt b/wiki/inc/lang/la/denied.txt
deleted file mode 100644
index 1cdaf05..0000000
--- a/wiki/inc/lang/la/denied.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Ad hanc paginam accedere non potes ======
-
-Ad hanc paginam accedere non potes: antea in conuentum ineas.
-
diff --git a/wiki/inc/lang/la/diff.txt b/wiki/inc/lang/la/diff.txt
deleted file mode 100644
index ead3827..0000000
--- a/wiki/inc/lang/la/diff.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Discrimina ======
-
-Discrimina inter duas paginas ostendere
\ No newline at end of file
diff --git a/wiki/inc/lang/la/draft.txt b/wiki/inc/lang/la/draft.txt
deleted file mode 100644
index 23bb20f..0000000
--- a/wiki/inc/lang/la/draft.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== Propositum inuentum ======
-
-Tua extrema recensio non perfecta est. Vicis propositum in itinere seruauit, sic his seruatis uteris.
-
-Statuas si //restituere// uis, //delere// seruata aut //delere// omnes.
\ No newline at end of file
diff --git a/wiki/inc/lang/la/edit.txt b/wiki/inc/lang/la/edit.txt
deleted file mode 100644
index 342b307..0000000
--- a/wiki/inc/lang/la/edit.txt
+++ /dev/null
@@ -1 +0,0 @@
-Paginam recensere et "Serua" premere. Vide [[wiki:syntax]] ut uicis stilus uidere possis. Hanc paginam recenses, solum si hanc auges. Prima uestigia apud hunc nexum [[playground:playground|playground]] uidere possis.
\ No newline at end of file
diff --git a/wiki/inc/lang/la/editrev.txt b/wiki/inc/lang/la/editrev.txt
deleted file mode 100644
index 6a4d082..0000000
--- a/wiki/inc/lang/la/editrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**Vetus forma a te restituta est** Si hanc formam seruabis, nouam creabis.
-----
\ No newline at end of file
diff --git a/wiki/inc/lang/la/index.txt b/wiki/inc/lang/la/index.txt
deleted file mode 100644
index cd65dbb..0000000
--- a/wiki/inc/lang/la/index.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Forma Situs ======
-
-Haec forma situs ordinata [[doku>namespaces|generatim]].
\ No newline at end of file
diff --git a/wiki/inc/lang/la/install.html b/wiki/inc/lang/la/install.html
deleted file mode 100644
index e041df9..0000000
--- a/wiki/inc/lang/la/install.html
+++ /dev/null
@@ -1,8 +0,0 @@
-<p>Haec pagina te adiuuat in <a href="http://dokuwiki.org">Dokuuiki</a> conformando. Maiores res in
-<a href="http://dokuwiki.org/installer">hac pagina</a> sunt.</p>
-
-<p>DokuWiki documenta ut omnes paginas uicis et omnia (ut imagines, indices, ueteres formas) quae ad easdem pertinent colligat. Vt bene operet DokuWiki omnes facultates scrini habere <strong>debes</strong>. Hoc instrumentum facultates eligere  non potest, his facultatibus locatori spati interretis quaeras uel FTP intrumento uel aliis rebus (ut cPanel) uteraris.</p>
-
-<p>Hoc intrumentum optiones primae DokuWiki <abbr title="index custodiae, aditus">ICA</abbr>, quos rectori situs inire et indicem, ut addenda optiones uicis et alia administrare possit uidere licet. Hoc instrumentum non necessarium DokuWiki ut feliciter operet, sed melius administrare adiuuat.</p>
-
-<p>Periti uel qui certa quaesita habet paginas <a href="http://dokuwiki.org/install">rationis conformandum uicem</a> et <a href="http://dokuwiki.org/config">optionum conformationis</a> uidere possunt.</p>
\ No newline at end of file
diff --git a/wiki/inc/lang/la/lang.php b/wiki/inc/lang/la/lang.php
deleted file mode 100644
index 5f5f59e..0000000
--- a/wiki/inc/lang/la/lang.php
+++ /dev/null
@@ -1,261 +0,0 @@
-<?php
-/**
- * la language file
- *
- * This file was initially built by fetching translations from other
- * Wiki projects. See the @url lines below. Additional translations
- * and fixes where done for DokuWiki by the people mentioned in the
- * lines starting with @author
- *
- * @url http://svn.wikimedia.org/viewvc/mediawiki/trunk/phase3/languages/messages/MessagesLa.php?view=co
- * @author Massimiliano Vassalli <vassalli.max@gmail.com>
- */
-$lang['encoding']              = 'utf-8';
-$lang['direction']             = 'ltr';
-$lang['doublequoteopening']    = '&quot;';
-$lang['doublequoteclosing']    = '&quot;';
-$lang['singlequoteopening']    = '`';
-$lang['singlequoteclosing']    = '´';
-$lang['apostrophe']            = '\'';
-$lang['btn_edit']              = 'Recensere hanc paginam';
-$lang['btn_source']            = 'Fontem uidere';
-$lang['btn_show']              = 'Ostendere paginam';
-$lang['btn_create']            = 'Creare paginam';
-$lang['btn_search']            = 'Quaerere';
-$lang['btn_save']              = 'Seruare';
-$lang['btn_preview']           = 'Praeuidere';
-$lang['btn_top']               = 'I ad summa';
-$lang['btn_newer']             = '<< recentiores';
-$lang['btn_older']             = 'minus recentiores >>';
-$lang['btn_revs']              = 'Veteres renouationes';
-$lang['btn_recent']            = 'Nuper mutata';
-$lang['btn_upload']            = 'Onerare';
-$lang['btn_cancel']            = 'Abrogare';
-$lang['btn_index']             = 'Index';
-$lang['btn_secedit']           = 'Recensere';
-$lang['btn_login']             = 'Conuentum aperire';
-$lang['btn_logout']            = 'Conuentum concludere';
-$lang['btn_admin']             = 'Rector';
-$lang['btn_update']            = 'Nouare';
-$lang['btn_delete']            = 'Delere';
-$lang['btn_back']              = 'Redire';
-$lang['btn_backlink']          = 'Nexus ad paginam';
-$lang['btn_subscribe']         = 'Custodire';
-$lang['btn_profile']           = 'Tabellam nouare';
-$lang['btn_reset']             = 'Abrogare';
-$lang['btn_draft']             = 'Propositum recensere';
-$lang['btn_recover']           = 'Propositum reficere';
-$lang['btn_draftdel']          = 'Propositum delere';
-$lang['btn_revert']            = 'Reficere';
-$lang['btn_register']          = 'Te adscribere';
-$lang['loggedinas']            = 'Nomen sodalis:';
-$lang['user']                  = 'Nomen sodalis:';
-$lang['pass']                  = 'Tessera tua';
-$lang['newpass']               = 'Tessera noua';
-$lang['oldpass']               = 'Tessera uetus:';
-$lang['passchk']               = 'Tesseram tuam adfirmare';
-$lang['remember']              = 'Tesseram meam sodalitatis memento';
-$lang['fullname']              = 'Nomen tuom uerum:';
-$lang['email']                 = 'Cursus interretialis:';
-$lang['profile']               = 'Tabella Sodalis';
-$lang['badlogin']              = 'Error in ineundo est, rectum nomen uel tessera cedo.';
-$lang['minoredit']             = 'Recensio minor';
-$lang['draftdate']             = 'Propositum seruatur die:';
-$lang['nosecedit']             = 'Pagina interea mutatur, pars rerum exiit, in loco eius tota pagina reclamata est.';
-$lang['regmissing']            = 'Omnes campi complendi sunt.';
-$lang['reguexists']            = 'Nomen Sodalis ab aliquo iam elegitur.';
-$lang['regsuccess']            = 'Adscriptio feliciter perficitur et tessera cursu interretiali mittitur';
-$lang['regsuccess2']           = 'Adscriptio perficitur';
-$lang['regmailfail']           = 'Error in litteras mittendo est. Rectorem conueni!';
-$lang['regbadmail']            = 'Cursus interretialis non legitimus: si errorem putes, Rectorem conueni.';
-$lang['regbadpass']            = 'Tesserae quas scripsisti inter se non congruont.';
-$lang['regpwmail']             = 'Tessera Dokuuicis tuam';
-$lang['reghere']               = 'Non iam adscriptus\a esne? Te adscribe';
-$lang['profna']                = 'Tabellam tuam mutare non potes.';
-$lang['profnochange']          = 'Si res non mutare uis, nihil agere';
-$lang['profnoempty']           = 'Omnes campi complendi sunt.';
-$lang['profchanged']           = 'Tabella Sodalis feliciter nouatur';
-$lang['pwdforget']             = 'Tesseram amisistine? Nouam petere';
-$lang['resendna']              = 'Tesseram non mutare potest.';
-$lang['resendpwdmissing']      = 'Omnes campi complendi sunt.';
-$lang['resendpwdnouser']       = 'In tabellis Sodalium nomen non inuentum est.';
-$lang['resendpwdbadauth']      = 'Tesseram non legitima est.';
-$lang['resendpwdconfirm']      = 'Confirmatio cursu interretiali mittitur.';
-$lang['resendpwdsuccess']      = 'Tessera noua cursu interretiali mittitur.';
-$lang['license']               = 'Praeter ubi adnotatum, omnia scripta Corporis Gentis Latinae cum his facultatibus:';
-$lang['licenseok']             = 'Caue: si paginam recenseas, has facultates confirmas:';
-$lang['searchmedia']           = 'Quaere titulum:';
-$lang['searchmedia_in']        = 'Quaere "%s":';
-$lang['txt_upload']            = 'Eligere documenta oneranda:';
-$lang['txt_filename']          = 'Onerare (optio):';
-$lang['txt_overwrt']           = 'Documento ueteri imponere:';
-$lang['lockedby']              = 'Nunc hoc intercludit:';
-$lang['lockexpire']            = 'Hoc apertum:';
-$lang['js']['willexpire']            = 'Interclusio paginae recensendae uno minuto finita est.\nUt errores uites, \'praeuisio\' preme ut interclusionem ripristines.';
-$lang['js']['notsavedyet']     = 'Res non seruatae amissurae sunt.';
-$lang['js']['searchmedia']     = 'Quaere inter documenta';
-$lang['js']['keepopen']        = 'Fenestram apertam tene';
-$lang['js']['hidedetails']     = 'Singulas res abscondere';
-$lang['js']['mediatitle']      = 'Optiones nexorum';
-$lang['js']['mediadisplay']    = 'Genus nexi';
-$lang['js']['mediaalign']      = 'Collocatio';
-$lang['js']['mediasize']       = 'Amplitudo imaginis';
-$lang['js']['mediatarget']     = 'Cui nexum est';
-$lang['js']['mediaclose']      = 'Claudere';
-$lang['js']['mediainsert']     = 'Insere';
-$lang['js']['mediadisplayimg'] = 'Imaginem ostendere';
-$lang['js']['mediadisplaylnk'] = 'Solum nexum ostendere';
-$lang['js']['mediasmall']      = 'Forma minor';
-$lang['js']['mediamedium']     = 'Forma media';
-$lang['js']['medialarge']      = 'Forma maior';
-$lang['js']['mediaoriginal']   = 'Forma primigenia';
-$lang['js']['medialnk']        = 'Singulis rebus paginae nexum';
-$lang['js']['mediadirect']     = 'Primigeniae formae nexum';
-$lang['js']['medianolnk']      = 'Connectio deest';
-$lang['js']['medianolink']     = 'Imaginem non connectere';
-$lang['js']['medialeft']       = 'Imaginem ad sinistram collocare';
-$lang['js']['mediaright']      = 'Imaginem ad dextram collocare';
-$lang['js']['mediacenter']     = 'Imaginem in mediam collocare';
-$lang['js']['medianoalign']    = 'Collocationem remouere';
-$lang['js']['nosmblinks']      = 'Windows nexa solum cum Microsoft Internet Explorer ostendi possunt.
-Adhuc transcribere nexum potes.';
-$lang['js']['linkwiz']         = 'Connectendi ductor';
-$lang['js']['linkto']          = 'Nexum ad:';
-$lang['js']['del_confirm']     = 'Delere electas res uin?';
-$lang['rssfailed']             = 'Error in restituendo ';
-$lang['nothingfound']          = 'Nihil inuentum est.';
-$lang['mediaselect']           = 'Documenta uisiua:';
-$lang['uploadsucc']            = 'Oneratum perfectum';
-$lang['uploadfail']            = 'Error onerandi.';
-$lang['uploadwrong']           = 'Onerare non potest. Genus documenti non legitimum!';
-$lang['uploadexist']           = 'Documentum iam est.';
-$lang['uploadspam']            = 'Onerare non potest: nam in indice perscriptionis documentum est.';
-$lang['uploadxss']             = 'Onerare non potest: nam forsitan malum scriptum in documento est.';
-$lang['uploadsize']            = 'Documentum onerandum ponderosius est. (Maxime "%s")';
-$lang['deletesucc']            = 'Documentum "%s" deletum est.';
-$lang['deletefail']            = '"%s" non deletur: uide facultates.';
-$lang['mediainuse']            = 'documentum "%s" non deletur, nam aliquis hoc utitur.';
-$lang['namespaces']            = 'Genus';
-$lang['mediafiles']            = 'Documentum liberum in:';
-$lang['accessdenied']          = 'Non uidere documentum potes.';
-$lang['mediausage']            = 'Hac forma uteris ut documentum referas:';
-$lang['mediaview']             = 'Vide documentum primigenium';
-$lang['mediaroot']             = 'scrinium';
-$lang['mediaupload']           = 'Hic genus oneras. Si nouom genus creare uis, ante "Onerare ut" nomen documenti diuisum a duabus punctis ponas.';
-$lang['mediaextchange']        = 'Genus documenti mutatum a(b) ".%s" ad ".%s"!';
-$lang['reference']             = 'Referre:';
-$lang['ref_inuse']             = 'Documentum non deleri potest, nam in his paginis apertum est:';
-$lang['ref_hidden']            = 'Aliquae mentiones ad paginas, ad quas ire non potes, habent';
-$lang['hits']                  = 'Ictus';
-$lang['quickhits']             = 'Spatium nominis conguens';
-$lang['toc']                   = 'Index';
-$lang['current']               = 'nouos\a\um';
-$lang['yours']                 = 'Tua forma';
-$lang['diff']                  = 'Discrimina inter formas ostendere';
-$lang['diff2']                 = 'Discrimina inter electas recensiones ostendere';
-$lang['difflink']              = 'Nexum ad comparandum';
-$lang['line']                  = 'Linea';
-$lang['breadcrumb']            = 'Vestigium';
-$lang['youarehere']            = 'Hic es';
-$lang['lastmod']               = 'Extrema mutatio';
-$lang['by']                    = 'a(b)';
-$lang['deleted']               = 'deletur';
-$lang['created']               = 'creatur';
-$lang['restored']              = 'Recensio uetus restituta (%s)';
-$lang['external_edit']         = 'Externe recensere';
-$lang['summary']               = 'Indicem recensere';
-$lang['noflash']               = '<a href="http://www.adobe.com/products/flashplayer/">Adobe Flash Plugin</a> necessarium est.';
-$lang['download']              = 'Snippet capere';
-$lang['mail_newpage']          = 'Pagina addita:';
-$lang['mail_changed']          = 'Pagina mutata:';
-$lang['mail_subscribe_list']   = 'Paginae in genere mutatae:';
-$lang['mail_new_user']         = 'Nouos Sodalis:';
-$lang['mail_upload']           = 'Documentum oneratum:';
-$lang['qb_bold']               = 'Litterae pingues';
-$lang['qb_italic']             = 'Litterae italicae';
-$lang['qb_underl']             = 'Litterae sullineatae';
-$lang['qb_code']               = 'Codex scripti';
-$lang['qb_strike']             = 'Litterae illineatae';
-$lang['qb_h1']                 = 'Caput I';
-$lang['qb_h2']                 = 'Caput II';
-$lang['qb_h3']                 = 'Caput III';
-$lang['qb_h4']                 = 'Caput IV';
-$lang['qb_h5']                 = 'Caput V';
-$lang['qb_h']                  = 'Caput';
-$lang['qb_hs']                 = 'Caput eligere';
-$lang['qb_hplus']              = 'Caput maius';
-$lang['qb_hminus']             = 'Caput minus';
-$lang['qb_hequal']             = 'Caput eiusdem gradus';
-$lang['qb_link']               = 'Nexus internus';
-$lang['qb_extlink']            = 'Nexus externus (memento praefigere http://)';
-$lang['qb_hr']                 = 'Linea directa (noli saepe uti)';
-$lang['qb_ol']                 = 'Index ordinatus rerum';
-$lang['qb_ul']                 = 'Index non ordinatus rerum';
-$lang['qb_media']              = 'Imagines et documenta addere';
-$lang['qb_sig']                = 'Subscriptio tua cum indicatione temporis';
-$lang['qb_smileys']            = 'Pupuli';
-$lang['qb_chars']              = 'Signa singularia';
-$lang['upperns']               = 'I ad anterius genus';
-$lang['metaedit']              = 'Res codicis mutare';
-$lang['metasaveerr']           = 'Res codicis non scribitur.';
-$lang['metasaveok']            = 'Res codicis seruatae.';
-$lang['btn_img_backto']            = 'Redere ad %s';
-$lang['img_title']             = 'Titulus:';
-$lang['img_caption']           = 'Descriptio:';
-$lang['img_date']              = 'Dies:';
-$lang['img_fname']             = 'Titulus documenti:';
-$lang['img_fsize']             = 'Pondus:';
-$lang['img_artist']            = 'Imaginum exprimitor\trix:';
-$lang['img_copyr']             = 'Iura exemplarium:';
-$lang['img_format']            = 'Forma:';
-$lang['img_camera']            = 'Cella:';
-$lang['img_keywords']          = 'Verba claues:';
-$lang['subscr_subscribe_success'] = '%s additur indici subscriptionis quod %s';
-$lang['subscr_subscribe_error'] = '%s non additur indici subscriptionis quod %s';
-$lang['subscr_subscribe_noaddress'] = 'Cursus interretialis tuus deest, sic in indice subscriptionis non scribi potes';
-$lang['subscr_unsubscribe_success'] = 'A subscriptione %s deletur quod %s';
-$lang['subscr_unsubscribe_error'] = 'Error delendi %s a subscriptione quod %s';
-$lang['subscr_already_subscribed'] = '%s iam subscriptus\a est in %s';
-$lang['subscr_not_subscribed'] = '%s non subscriptus\a est in %s';
-$lang['subscr_m_not_subscribed'] = 'Non hanc paginam uel genus subscribere potes.';
-$lang['subscr_m_new_header']   = 'Subscriptionem addere';
-$lang['subscr_m_current_header'] = 'haec subscriptio:';
-$lang['subscr_m_unsubscribe']  = 'Delere';
-$lang['subscr_m_subscribe']    = 'Subscribere';
-$lang['subscr_m_receive']      = 'Accipere';
-$lang['subscr_style_every']    = 'Cursus mutationibus omnibus';
-$lang['subscr_style_digest']   = 'Accipere litteras in mutando paginam (%.2f dies)';
-$lang['subscr_style_list']     = 'Index mutatarum paginarum ab extremis litteris (%.2f dies)';
-$lang['authtempfail']          = 'Confirmare non potes. Rectorem conuenis.';
-$lang['i_chooselang']          = 'Linguam eligere';
-$lang['i_installer']           = 'Docuuicis creator';
-$lang['i_wikiname']            = 'Nomen Vicis';
-$lang['i_enableacl']           = 'ICA aptum facias (consulatum est)';
-$lang['i_superuser']           = 'Magister\stra';
-$lang['i_problems']            = 'Creator hos errores habes. Continuare potes postquam omnia soluentur.';
-$lang['i_modified']            = 'Hoc scriptum solum cum noua forma Dokuuicis est. Hoc rursum capere in pagina, in qua haec machina capta est, potes aut i ad <a href="http://dokuwiki.org/install">Dokuuicis installation instructions</a>';
-$lang['i_funcna']              = 'PHP functio <code>%s</code> inepta est.';
-$lang['i_phpver']              = 'Forma tua PHP <code>%s</code> minor quam illa necessaria <code>%s</code>.';
-$lang['i_permfail']            = '<code>%s</code> non a uice scribitur. Facultates inspicere.';
-$lang['i_confexists']          = '<code>%s</code> iam est.';
-$lang['i_writeerr']            = '<code>%s</code> non creari potest. Manu illum creas.';
-$lang['i_badhash']             = 'Ignotum uel mutatum dokuwiki.php (<code>%s</code>)';
-$lang['i_badval']              = '<code>%s</code> non legitimum uel uacuom';
-$lang['i_success']             = 'Administratio feliciter perficitur. Delere install.php documentum potes. I ad <a href="doku.php?id=wiki:welcome">hanc paginam</a> ut continues.';
-$lang['i_failure']             = 'Aliqui errores dum documenta administrantur sunt. Manu onerare omnes potes priusquam <a href="doku.php?id=wiki:welcome">tuo nouo uice</a> uteris.';
-$lang['i_policy']              = 'ICA ratio prima';
-$lang['i_pol0']                = 'Vicem aperire (omnes legere, scribere, onerare possunt)';
-$lang['i_pol1']                = 'Publicus uicis (omnes legere, Sodales scribere et onerare possunt)';
-$lang['i_pol2']                = 'Clausus uicis (Soli Sodales legere scribere et onerare poccunt)';
-$lang['i_retry']               = 'Rursum temptas';
-$lang['i_license']             = 'Elige facultatem sub qua tuus uicis est:';
-$lang['years']                 = 'ab annis %d';
-$lang['months']                = 'a mensibus %d';
-$lang['weeks']                 = 'a septimanis %d';
-$lang['days']                  = 'a diebus %d';
-$lang['hours']                 = 'a horis %d';
-$lang['minutes']               = 'a minutis %d';
-$lang['seconds']               = 'a secundis %d';
-$lang['wordblock']             = 'Mutationes non seruantur, eo quod mala uerba contenit';
-$lang['email_signature_text'] = 'Hic cursus generatus a
-@DOKUWIKIURL@';
diff --git a/wiki/inc/lang/la/locked.txt b/wiki/inc/lang/la/locked.txt
deleted file mode 100644
index 65446df..0000000
--- a/wiki/inc/lang/la/locked.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Pagina inclusa ======
-
-Haec pagina inclusa est: nullam mutationem facere potest.
\ No newline at end of file
diff --git a/wiki/inc/lang/la/login.txt b/wiki/inc/lang/la/login.txt
deleted file mode 100644
index 25d4cd1..0000000
--- a/wiki/inc/lang/la/login.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Aditus ======
-
-Nomen Sodalis et tesseram scribere debes ut in conuentum inire uelis.
\ No newline at end of file
diff --git a/wiki/inc/lang/la/mailtext.txt b/wiki/inc/lang/la/mailtext.txt
deleted file mode 100644
index 8348378..0000000
--- a/wiki/inc/lang/la/mailtext.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-Pagina in uice addita uel mutata. Hae singulae res sunt:
-
-Dies : @DATE@
-IP-Numerus : @IPADDRESS@
-Hospes situs : @HOSTNAME@
-Vetus recensio: @OLDPAGE@
-Noua recensio: @NEWPAGE@
-Summa recensere: @SUMMARY@
-Sodalis : @USER@
-
-@DIFF@
diff --git a/wiki/inc/lang/la/newpage.txt b/wiki/inc/lang/la/newpage.txt
deleted file mode 100644
index 13cfff7..0000000
--- a/wiki/inc/lang/la/newpage.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Hoc argumentum deest ======
-
-Nexum, quod pressisti, ad argumentum nullum fert. Si facultatem habes, creare nouam paginam potes.
\ No newline at end of file
diff --git a/wiki/inc/lang/la/norev.txt b/wiki/inc/lang/la/norev.txt
deleted file mode 100644
index 19b60fe..0000000
--- a/wiki/inc/lang/la/norev.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Forma non reperta ======
-
-Haec forma non reperta est. Aliam formam quaeris.
\ No newline at end of file
diff --git a/wiki/inc/lang/la/password.txt b/wiki/inc/lang/la/password.txt
deleted file mode 100644
index 0557357..0000000
--- a/wiki/inc/lang/la/password.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-Aue @FULLNAME@!
-
-Hae res @TITLE@, i ad paginam: @DOKUWIKIURL@
-
-Sodalis nomen : @LOGIN@
-Tessera : @PASSWORD@
diff --git a/wiki/inc/lang/la/preview.txt b/wiki/inc/lang/la/preview.txt
deleted file mode 100644
index 7e5a137..0000000
--- a/wiki/inc/lang/la/preview.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Praeuisio ======
-
-In hac pagina scriptum praeuidere potes. Memento hunc non seruatum iam esse.
\ No newline at end of file
diff --git a/wiki/inc/lang/la/pwconfirm.txt b/wiki/inc/lang/la/pwconfirm.txt
deleted file mode 100644
index ade0a1c..0000000
--- a/wiki/inc/lang/la/pwconfirm.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-Aue, @FULLNAME@!
-
-Aliquis tesseram nouam @TITLE@
-ut ineas in @DOKUWIKIURL@
-
-Si nouam tesseram non petiuisti, hoc nuntium ignorat.
-
-Ut hoc nuntium petiuisti, premendo hunc nexum confirmas.
-
-@CONFIRM@
diff --git a/wiki/inc/lang/la/read.txt b/wiki/inc/lang/la/read.txt
deleted file mode 100644
index b1710f2..0000000
--- a/wiki/inc/lang/la/read.txt
+++ /dev/null
@@ -1 +0,0 @@
-Hanc paginam solum legere potes. Fontem uidere, sed non mutare potes.
\ No newline at end of file
diff --git a/wiki/inc/lang/la/recent.txt b/wiki/inc/lang/la/recent.txt
deleted file mode 100644
index d8e721c..0000000
--- a/wiki/inc/lang/la/recent.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Recentes Mutationes ======
-
-Hae paginae mutatae sunt in recentibus temporibus
\ No newline at end of file
diff --git a/wiki/inc/lang/la/register.txt b/wiki/inc/lang/la/register.txt
deleted file mode 100644
index 71ca8dd..0000000
--- a/wiki/inc/lang/la/register.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Nouom\am Sodalem Adscribere ======
-
-Nomen Sodalis legitimus esse debes: [[doku>pagename|pagename]].
\ No newline at end of file
diff --git a/wiki/inc/lang/la/registermail.txt b/wiki/inc/lang/la/registermail.txt
deleted file mode 100644
index 1f28659..0000000
--- a/wiki/inc/lang/la/registermail.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-Nouos\a Sodalis est. Hae suae res:
-
-Sodalis nomen : @NEWUSER@
-Nomen uerum : @NEWNAME@
-Cursus interretialis : @NEWEMAIL@
-
-Dies : @DATE@
-Machina interretis : @BROWSER@
-IP-numerus : @IPADDRESS@
-Hostname : @HOSTNAME@
diff --git a/wiki/inc/lang/la/resendpwd.txt b/wiki/inc/lang/la/resendpwd.txt
deleted file mode 100644
index 5a4972f..0000000
--- a/wiki/inc/lang/la/resendpwd.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== ouam Tesseram mittere ======
-
-Inserere nomen Sodalis priusquam tesseram petere. Confirmatio mittibitur.
\ No newline at end of file
diff --git a/wiki/inc/lang/la/revisions.txt b/wiki/inc/lang/la/revisions.txt
deleted file mode 100644
index 38b9bae..0000000
--- a/wiki/inc/lang/la/revisions.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Veteres recensiones ======
-
-In hac pagina ueteres recensiones paginae sunt: ut unam ex his restituas, illam eligis et deinde "Recensere paginam" premis et serua.
\ No newline at end of file
diff --git a/wiki/inc/lang/la/searchpage.txt b/wiki/inc/lang/la/searchpage.txt
deleted file mode 100644
index 76255d5..0000000
--- a/wiki/inc/lang/la/searchpage.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Quaerere ======
-
-Responsiones in hac pagina uidere potes. @CREATEPAGEINFO@
-
diff --git a/wiki/inc/lang/la/showrev.txt b/wiki/inc/lang/la/showrev.txt
deleted file mode 100644
index b95e682..0000000
--- a/wiki/inc/lang/la/showrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**Haec uetus forma documenti est!**
-----
\ No newline at end of file
diff --git a/wiki/inc/lang/la/stopwords.txt b/wiki/inc/lang/la/stopwords.txt
deleted file mode 100644
index f063ba7..0000000
--- a/wiki/inc/lang/la/stopwords.txt
+++ /dev/null
@@ -1,37 +0,0 @@
-apud
-sunt
-etsi
-atque
-et
-tu
-tuus
-eius
-eorum
-infra
-ad
-in
-inter
-si
-in
-a
-ab
-de
-ut
-super
-aut
-uel
-illud
-illa
-ille
-ad
-fuit
-quid
-quod
-ubi
-hoc
-ex
-e
-cum
-haec
-hic
-www
\ No newline at end of file
diff --git a/wiki/inc/lang/la/subscr_digest.txt b/wiki/inc/lang/la/subscr_digest.txt
deleted file mode 100644
index d4ca79a..0000000
--- a/wiki/inc/lang/la/subscr_digest.txt
+++ /dev/null
@@ -1,16 +0,0 @@
-Aue!
-
-Pagina @PAGE@ in @TITLE@ uici mutata.
-Haec mutationes sunt:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-Vetus recensio: @OLDPAGE@
-Noua recensio: @NEWPAGE@
-
-Ut paginae adnotationes deleas, in uicem ineas in
-@DOKUWIKIURL@, deinde uideas
-@SUBSCRIBE@
-et paginarum generum optiones mutes.
diff --git a/wiki/inc/lang/la/subscr_form.txt b/wiki/inc/lang/la/subscr_form.txt
deleted file mode 100644
index 23000b3..0000000
--- a/wiki/inc/lang/la/subscr_form.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Inscriptionis Administratio ======
-
-In hac pagina inscriptiones huius paginae et generis sunt.
\ No newline at end of file
diff --git a/wiki/inc/lang/la/subscr_list.txt b/wiki/inc/lang/la/subscr_list.txt
deleted file mode 100644
index 3921ff6..0000000
--- a/wiki/inc/lang/la/subscr_list.txt
+++ /dev/null
@@ -1,13 +0,0 @@
-Aue!
-
-Paginae in spatio nominis @PAGE@  @TITLE@ uicis mutatae.
-Hae mutationes sunt:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-Ut adnotationes deleas, preme hic
-@DOKUWIKIURL@ then visit
-@SUBSCRIBE@
-et paginarum et\aut generum mutationes tollis.
diff --git a/wiki/inc/lang/la/subscr_single.txt b/wiki/inc/lang/la/subscr_single.txt
deleted file mode 100644
index 4bfd7ef..0000000
--- a/wiki/inc/lang/la/subscr_single.txt
+++ /dev/null
@@ -1,19 +0,0 @@
-Aue!
-
-Pagina "@PAGE@" in titulo "@TITlE@" mutata.
-Hae mutationes sunt:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-Dies : @DATE@
-Sodalis : @USER@
-Summa recensita: @SUMMARY@
-Vetus recensio: @OLDPAGE@
-Noua recensio: @NEWPAGE@
-
-Ut paginae adnotationes deleas, in uicem ineas in
-@DOKUWIKIURL@, deinde uideas
-@SUBSCRIBE@
-et paginarum et\aut generum optiones mutasa.
diff --git a/wiki/inc/lang/la/updateprofile.txt b/wiki/inc/lang/la/updateprofile.txt
deleted file mode 100644
index 565f81a..0000000
--- a/wiki/inc/lang/la/updateprofile.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Nouare Sodalis tabellas ======
-
-Solum in campis, quos mutare uis, scribis. Nomen Sodalis non mutare potes.
\ No newline at end of file
diff --git a/wiki/inc/lang/la/uploadmail.txt b/wiki/inc/lang/la/uploadmail.txt
deleted file mode 100644
index 329bf31..0000000
--- a/wiki/inc/lang/la/uploadmail.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-Documentum nouatum est. Hae mutatione sunt:
-
-Documentum : @MEDIA@
-Dies : @DATE@
-Machina interretis : @BROWSER@
-IP-Numerus : @IPADDRESS@
-Hospes situs : @HOSTNAME@
-Pondus : @SIZE@
-MIME Genus : @MIME@
-Sodalis : @USER@
diff --git a/wiki/inc/lang/lb/admin.txt b/wiki/inc/lang/lb/admin.txt
deleted file mode 100644
index 08f8b2f..0000000
--- a/wiki/inc/lang/lb/admin.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Administratioun ======
-
-Hei ënnendrënner fënns de eng Lëscht mat administrativen Aufgaben déi am Dokuwiki zuer Verfügung stinn.
diff --git a/wiki/inc/lang/lb/adminplugins.txt b/wiki/inc/lang/lb/adminplugins.txt
deleted file mode 100644
index 9581400..0000000
--- a/wiki/inc/lang/lb/adminplugins.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Zousätzlech Pluginen =====
\ No newline at end of file
diff --git a/wiki/inc/lang/lb/backlinks.txt b/wiki/inc/lang/lb/backlinks.txt
deleted file mode 100644
index 8b8fbd4..0000000
--- a/wiki/inc/lang/lb/backlinks.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Linken zeréck ======
-
-Dëst ass eng Lëscht mat Säiten déi schéngen op déi aktuell Säit zeréck ze verlinken.
diff --git a/wiki/inc/lang/lb/conflict.txt b/wiki/inc/lang/lb/conflict.txt
deleted file mode 100644
index 3a84e72..0000000
--- a/wiki/inc/lang/lb/conflict.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== Et gëtt méi eng nei Versioun ======
-
-Et gëtt méi eng nei Versioun vum Dokument wats de g'ännert hues. Dat geschitt wann en anere Benotzer dat selwecht Dokument ännert wärenddeems du et änners. 
-
-Ënnersich d'Ënnerscheeder déi hei ënnendrënner ugewise gi grëndlech. Wanns de  ''Späicheren'' auswiels, da gëtt deng Version gespäicher. Dréck op ''Ofbriechen'' fir déi aktuell Versioun ze halen.
diff --git a/wiki/inc/lang/lb/denied.txt b/wiki/inc/lang/lb/denied.txt
deleted file mode 100644
index 1a7fd8f..0000000
--- a/wiki/inc/lang/lb/denied.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-======Erlaabnis verweigert======
-
-Et deet mer leed, du hues net genuch Rechter fir weiderzefueren.
-
diff --git a/wiki/inc/lang/lb/diff.txt b/wiki/inc/lang/lb/diff.txt
deleted file mode 100644
index 7838b98..0000000
--- a/wiki/inc/lang/lb/diff.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Ënnerscheeder ======
-
-Hei sinn d'Ënnerscheeder zwëscht 2 Versiounen vun der Säit.
diff --git a/wiki/inc/lang/lb/draft.txt b/wiki/inc/lang/lb/draft.txt
deleted file mode 100644
index 2e2fc9d..0000000
--- a/wiki/inc/lang/lb/draft.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== Entworf fond ======
-
-Deng lescht Ännersessioun op dëser Säit gouf net richteg ofgeschloss. DokuWiki huet automatesch en Entworf wärend denger Aarbecht gespäichert deens de elo kanns benotzen fir mat dengen Ännerunge weiderzefueren. Hei ënnendrënner gesäiss de wat vun denger leschter Sessioun gespäichert gouf.
-
-Decidéier w.e.g. obs de deng verlueren Ännerungssessioun //zeréckhuelen//, den Entworf //läschen// oder d'Änneren //ofbrieche// wëlls.
diff --git a/wiki/inc/lang/lb/edit.txt b/wiki/inc/lang/lb/edit.txt
deleted file mode 100644
index ca039d1..0000000
--- a/wiki/inc/lang/lb/edit.txt
+++ /dev/null
@@ -1 +0,0 @@
-Änner d'Säit an dréck ''Späicheren''. Kuck [[wiki:syntax]] fir d'Wiki-Syntax. Änner d'Säit w.e.g. nëmme wanns de se **verbessere** kanns. Wanns de Saache probéiere wëlls, da léier deng éischt Schréck an der [[playground:playground|Sandkaul]].
diff --git a/wiki/inc/lang/lb/editrev.txt b/wiki/inc/lang/lb/editrev.txt
deleted file mode 100644
index 6d7a129..0000000
--- a/wiki/inc/lang/lb/editrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**Du hues eng al Versioun vum Dokument gelueden!** Wanns de se änners, mëss de eng nei Versioun mat dësen Daten.
-----
\ No newline at end of file
diff --git a/wiki/inc/lang/lb/index.txt b/wiki/inc/lang/lb/index.txt
deleted file mode 100644
index 183e07a..0000000
--- a/wiki/inc/lang/lb/index.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Index ======
-
-Dëst ass em Index vun all de Säiten gesënnert no [[doku>namespaces|namespaces]].
diff --git a/wiki/inc/lang/lb/jquery.ui.datepicker.js b/wiki/inc/lang/lb/jquery.ui.datepicker.js
deleted file mode 100644
index 02a9c51..0000000
--- a/wiki/inc/lang/lb/jquery.ui.datepicker.js
+++ /dev/null
@@ -1,45 +0,0 @@
-/* Luxembourgish initialisation for the jQuery UI date picker plugin. */
-/* Written by Michel Weimerskirch <michel@weimerskirch.net> */
-( function( factory ) {
-	if ( typeof define === "function" && define.amd ) {
-
-		// AMD. Register as an anonymous module.
-		define( [ "../widgets/datepicker" ], factory );
-	} else {
-
-		// Browser globals
-		factory( jQuery.datepicker );
-	}
-}( function( datepicker ) {
-
-datepicker.regional.lb = {
-	closeText: "Fäerdeg",
-	prevText: "Zréck",
-	nextText: "Weider",
-	currentText: "Haut",
-	monthNames: [ "Januar","Februar","Mäerz","Abrëll","Mee","Juni",
-	"Juli","August","September","Oktober","November","Dezember" ],
-	monthNamesShort: [ "Jan", "Feb", "Mäe", "Abr", "Mee", "Jun",
-	"Jul", "Aug", "Sep", "Okt", "Nov", "Dez" ],
-	dayNames: [
-		"Sonndeg",
-		"Méindeg",
-		"Dënschdeg",
-		"Mëttwoch",
-		"Donneschdeg",
-		"Freideg",
-		"Samschdeg"
-	],
-	dayNamesShort: [ "Son", "Méi", "Dën", "Mët", "Don", "Fre", "Sam" ],
-	dayNamesMin: [ "So","Mé","Dë","Më","Do","Fr","Sa" ],
-	weekHeader: "W",
-	dateFormat: "dd.mm.yy",
-	firstDay: 1,
-	isRTL: false,
-	showMonthAfterYear: false,
-	yearSuffix: "" };
-datepicker.setDefaults( datepicker.regional.lb );
-
-return datepicker.regional.lb;
-
-} ) );
diff --git a/wiki/inc/lang/lb/lang.php b/wiki/inc/lang/lb/lang.php
deleted file mode 100644
index d4d0fb4..0000000
--- a/wiki/inc/lang/lb/lang.php
+++ /dev/null
@@ -1,195 +0,0 @@
-<?php
-/**
- * lb language file
- *
- * @author joel@schintgen.net
- */
-$lang['encoding']              = 'utf-8';
-$lang['direction']             = 'ltr';
-$lang['doublequoteopening']    = '“';
-$lang['doublequoteclosing']    = 'â€';
-$lang['singlequoteopening']    = '‘';
-$lang['singlequoteclosing']    = '’';
-$lang['apostrophe']            = '\'';
-$lang['btn_edit']              = 'Dës Säit änneren';
-$lang['btn_source']            = 'Säitequell weisen';
-$lang['btn_show']              = 'Säit weisen';
-$lang['btn_create']            = 'Dës Säit uleeën';
-$lang['btn_search']            = 'Sichen';
-$lang['btn_save']              = 'Späicheren';
-$lang['btn_preview']           = 'Kucken ouni ofzespäicheren';
-$lang['btn_top']               = 'Zréck no uewen';
-$lang['btn_newer']             = '<< méi rezent';
-$lang['btn_older']             = 'manner rezent >>';
-$lang['btn_revs']              = 'Al Versiounen';
-$lang['btn_recent']            = 'Kierzlech Ännerungen';
-$lang['btn_upload']            = 'Eroplueden';
-$lang['btn_cancel']            = 'Ofbriechen';
-$lang['btn_index']             = 'Index';
-$lang['btn_secedit']           = 'Änneren';
-$lang['btn_login']             = 'Login';
-$lang['btn_logout']            = 'Logout';
-$lang['btn_admin']             = 'Admin';
-$lang['btn_update']            = 'Update';
-$lang['btn_delete']            = 'Läschen';
-$lang['btn_back']              = 'Zeréck';
-$lang['btn_backlink']          = 'Linker zeréck';
-$lang['btn_profile']           = 'Profil aktualiséieren';
-$lang['btn_reset']             = 'Zerécksetzen';
-$lang['btn_draft']             = 'Entworf änneren';
-$lang['btn_recover']           = 'Entworf zeréckhuelen';
-$lang['btn_draftdel']          = 'Entworf läschen';
-$lang['btn_register']          = 'Registréieren';
-$lang['loggedinas']            = 'Ageloggt als:';
-$lang['user']                  = 'Benotzernumm';
-$lang['pass']                  = 'Passwuert';
-$lang['newpass']               = 'Nei Passwuert';
-$lang['oldpass']               = 'Aktuell Passwuert confirméieren';
-$lang['passchk']               = 'nach eng Kéier';
-$lang['remember']              = 'Verhal mech';
-$lang['fullname']              = 'Richtegen Numm';
-$lang['email']                 = 'E-Mail';
-$lang['profile']               = 'Benotzerprofil';
-$lang['badlogin']              = 'Entschëllegt, de Benotzernumm oder d\'Passwuert war falsch';
-$lang['minoredit']             = 'Kleng Ännerungen';
-$lang['draftdate']             = 'Entworf automatesch gespäichert den';
-$lang['nosecedit']             = 'D\'Säit gouf an Zwëschenzäit g\'ännert, Sektiounsinfo veralt. Ganz Säit gouf aplaz gelueden.';
-$lang['regmissing']            = 'Du muss all d\'Felder ausfëllen.';
-$lang['reguexists']            = 'Et get schonn e Benotzer mat deem Numm.';
-$lang['regsuccess']            = 'De Benotzer gouf erstallt an d\'Passwuert via Email geschéckt.';
-$lang['regsuccess2']           = 'De Benotzer gouf erstallt.';
-$lang['regmailfail']           = 'Et gesäit aus wéi wann e Feeler beim schécke vun der Passwuertmail virkomm wier. Kontaktéier den Admin w.e.g.!';
-$lang['regbadmail']            = 'Déi Emailadress gesäit ongëlteg aus - wanns de mengs dat wier e Feeler, da kontaktéier den Admin w.e.g.';
-$lang['regbadpass']            = 'Déi 2 Passwieder si net t\'selwecht. Probéier nach eng Kéier w.e.g.';
-$lang['regpwmail']             = 'Däin DokuWiki Passwuert';
-$lang['reghere']               = 'Hues du nach keen Account? Da maach der een';
-$lang['profna']                = 'Dëse Wiki ënnestëtzt keng Ännerunge vum Profil';
-$lang['profnochange']          = 'Keng Ännerungen. Näischt ze man.';
-$lang['profnoempty']           = 'En eidele Numm oder Emailadress ass net erlaabt.';
-$lang['profchanged']           = 'Benotzerprofil erfollegräicht aktualiséiert.';
-$lang['pwdforget']             = 'Passwuert vergiess? Fro der e Neit';
-$lang['resendna']              = 'Dëse Wiki ënnerstëtzt net d\'Neiverschécke vu Passwieder.';
-$lang['resendpwdmissing']      = 'Du muss all Felder ausfëllen.';
-$lang['resendpwdnouser']       = 'Kann dëse Benotzer net an der Datebank fannen.';
-$lang['resendpwdbadauth']      = 'Den "Auth"-Code ass ongëlteg. Kuck no obs de dee ganze Konfirmationslink benotzt hues.';
-$lang['resendpwdconfirm']      = 'De Konfirmatiounslink gouf iwwer Email geschéckt.';
-$lang['resendpwdsuccess']      = 'Däi nei Passwuert gouf iwwer Email geschéckt.';
-$lang['license']               = 'Wann näischt anescht do steet, ass den Inhalt vun dësem Wiki ënner folgender Lizenz:';
-$lang['licenseok']             = 'Pass op: Wanns de dës Säit änners, bass de dermat averstan dass den Inhalt ënner folgender Lizenz lizenzéiert gëtt:';
-$lang['txt_upload']            = 'Wiel eng Datei fir eropzelueden:';
-$lang['txt_filename']          = 'Eroplueden als (optional):';
-$lang['txt_overwrt']           = 'Bestehend Datei iwwerschreiwen';
-$lang['lockedby']              = 'Am Moment gespaart vun:';
-$lang['lockexpire']            = 'D\'Spär leeft of ëm:';
-$lang['js']['willexpire']            = 'Deng Spär fir d\'Säit ze änneren leeft an enger Minutt of.\nFir Konflikter ze verhënneren, dréck op Kucken ouni ofzespäicheren.';
-$lang['js']['notsavedyet']     = 'Net gespäicher Ännerunge gi verluer.\nWierklech weiderfueren?';
-$lang['rssfailed']             = 'Et ass e Feeler virkomm beim erofluede vun dësem Feed: ';
-$lang['nothingfound']          = 'Näischt fond.';
-$lang['mediaselect']           = 'Mediadateien';
-$lang['uploadsucc']            = 'Upload erfollegräich';
-$lang['uploadfail']            = 'Feeler beim Upload. Vläicht falsch Rechter?';
-$lang['uploadwrong']           = 'Eroplueden net erlaabt. Dës Dateiendung ass verbueden!';
-$lang['uploadexist']           = 'Datei gët et schonn. Näischt gemaach.';
-$lang['uploadbadcontent']      = 'Den eropgeluedenen Inhalt stëmmt net mat der Dateiendung %s iwwereneen.';
-$lang['uploadspam']            = 'D\'Eropluede gouf duerch d\'Schwaarz Spamlëscht blockéiert.';
-$lang['uploadxss']             = 'D\'Eropluede gouf wéinst méiglechem béisaartegem Inhalt blockéiert.';
-$lang['uploadsize']            = 'Déi eropgelueden Datei war ze grouss. (max. %s)';
-$lang['deletesucc']            = 'D\'Datei "%s" gouf geläscht.';
-$lang['deletefail']            = '"%s" konnt net geläscht ginn. Kontroléier d\'Rechter.';
-$lang['mediainuse']            = 'D\'Datei "%s" gouf net geläscht - se ass nach am Gebrauch.';
-$lang['namespaces']            = 'Namespaces';
-$lang['mediafiles']            = 'Verfügbar Dateien am';
-$lang['js']['keepopen']        = 'Fënster beim Auswielen oploossen';
-$lang['js']['hidedetails']     = 'Deteiler verstoppen';
-$lang['mediausage']            = 'Benotz folgend Syntax fir dës Datei ze referenzéieren:';
-$lang['mediaview']             = 'Originaldatei weisen';
-$lang['mediaroot']             = 'root';
-$lang['mediaextchange']        = 'Dateiendung vun .%s op .%s g\'ännert!';
-$lang['reference']             = 'Referenzen fir';
-$lang['ref_inuse']             = 'D\'Datei ka net geläscht ginn wëll se nach ëmmer vu folgende Säite gebraucht gëtt:';
-$lang['ref_hidden']            = 'Verschidde Referenze sinn op Säiten wous de keng Rechter hues fir se ze kucken';
-$lang['hits']                  = 'Treffer';
-$lang['quickhits']             = 'Säitenimm déi iwwereneestëmmen';
-$lang['toc']                   = 'Inhaltsverzeechnes';
-$lang['current']               = 'aktuell';
-$lang['yours']                 = 'Deng Versioun';
-$lang['diff']                  = 'Weis d\'Ënnerscheeder zuer aktueller Versioun';
-$lang['diff2']                 = 'Weis d\'Ënnerscheeder zwescht den ausgewielte Versiounen';
-$lang['line']                  = 'Linn';
-$lang['breadcrumb']            = 'Spuer:';
-$lang['youarehere']            = 'Du bass hei:';
-$lang['lastmod']               = 'Fir d\'lescht g\'ännert:';
-$lang['by']                    = 'vun';
-$lang['deleted']               = 'geläscht';
-$lang['created']               = 'erstallt';
-$lang['restored']              = 'al Versioun zeréckgeholl (%s)';
-$lang['external_edit']         = 'extern Ännerung';
-$lang['summary']               = 'Resumé vun den Ännerungen';
-$lang['noflash']               = 'Den <a href="http://www.adobe.com/products/flashplayer/">Adobe Flash Plugin</a> get gebraucht fir dësen Inhalt unzeweisen.';
-$lang['mail_newpage']          = 'Säit bäigesat:';
-$lang['mail_changed']          = 'Säit geännert:';
-$lang['mail_subscribe_list']   = 'g\'ännert Säiten am Namespace:';
-$lang['mail_new_user']         = 'Neie Benotzer:';
-$lang['mail_upload']           = 'Datei eropgelueden:';
-$lang['qb_bold']               = 'Fetten Text';
-$lang['qb_italic']             = 'Schiefen Text';
-$lang['qb_underl']             = 'Ënnerstrachenen Text';
-$lang['qb_code']               = 'Code Text';
-$lang['qb_strike']             = 'Duerchgestrachenen Text';
-$lang['qb_h1']                 = 'Iwwerschrëft vum 1. Niveau';
-$lang['qb_h2']                 = 'Iwwerschrëft vum 2. Niveau';
-$lang['qb_h3']                 = 'Iwwerschrëft vum 3. Niveau';
-$lang['qb_h4']                 = 'Iwwerschrëft vum 4. Niveau';
-$lang['qb_h5']                 = 'Iwwerschrëft vum 5. Niveau';
-$lang['qb_h']                  = 'Iwwerschrëft';
-$lang['qb_hs']                 = 'Iwwerschrëft auswielen';
-$lang['qb_hplus']              = 'Méi grouss Iwwerschrëft';
-$lang['qb_hminus']             = 'Méi kleng Iwwerschrëft';
-$lang['qb_hequal']             = 'Iwwerschrëft vum selwechte Niveau';
-$lang['qb_link']               = 'Interne Link';
-$lang['qb_extlink']            = 'Externe Link';
-$lang['qb_hr']                 = 'Horizontale Stréch';
-$lang['qb_ol']                 = 'Nummeréiert Lëscht';
-$lang['qb_ul']                 = 'Onnummeréiert Lëscht';
-$lang['qb_media']              = 'Biller an aner Dateie bäisetzen';
-$lang['qb_sig']                = 'Ënnerschrëft afügen';
-$lang['qb_smileys']            = 'Smilien';
-$lang['qb_chars']              = 'Spezialzeechen';
-$lang['upperns']               = 'An de Namespace uewendriwwer sprangen';
-$lang['metaedit']              = 'Metadaten änneren';
-$lang['metasaveerr']           = 'Feeler beim Schreiwe vun de Metadaten';
-$lang['metasaveok']            = 'Metadate gespäichert';
-$lang['btn_img_backto']            = 'Zeréck op %s';
-$lang['img_title']             = 'Titel:';
-$lang['img_caption']           = 'Beschreiwung:';
-$lang['img_date']              = 'Datum:';
-$lang['img_fname']             = 'Dateinumm:';
-$lang['img_fsize']             = 'Gréisst:';
-$lang['img_artist']            = 'Fotograf:';
-$lang['img_copyr']             = 'Copyright:';
-$lang['img_format']            = 'Format:';
-$lang['img_camera']            = 'Kamera:';
-$lang['img_keywords']          = 'Schlësselwieder:';
-$lang['authtempfail']          = 'D\'Benotzerautentifikatioun ass de Moment net verfügbar. Wann dës Situatioun unhält, dann informéier w.e.g. de Wiki Admin.';
-$lang['i_chooselang']          = 'Wiel deng Sprooch';
-$lang['i_installer']           = 'DokuWiki Installer';
-$lang['i_wikiname']            = 'Numm vum Wiki';
-$lang['i_enableacl']           = 'ACL uschalten (rekommandéiert)';
-$lang['i_problems']            = 'Den Installer huet Problemer fond. Se stinn hei ënnendrënner. Du kanns net weiderfueren bis de se behuewen hues.';
-$lang['i_modified']            = 'Aus Sécherheetsgrënn funktionnéiert dëse Script nëmme mat enger neier an onverännerter Dokuwiki Installatioun. Entweder muss de d\'Dateie frësch extrahéieren oder kuck d\'komplett <a href="http://dokuwiki.org/install">Dokuwiki Installatiounsinstruktiounen</a>';
-$lang['i_funcna']              = 'PHP-Funktioun <code>%s</code> ass net verfügbar. Vläicht huet däi Provider se aus iergend engem Grond ausgeschalt.';
-$lang['i_phpver']              = 'Deng PHP-Versioun <code>%s</code> ass méi kleng wéi déi gebrauchte Versioun <code>%s</code>. Du muss deng PHP-Installatioun aktualiséieren. ';
-$lang['i_pol0']                = 'Oppene Wiki (liese, schreiwen an eroplueden fir jidfereen)';
-$lang['i_pol1']                = 'Ëffentleche Wiki (liesen fir jidfereen, schreiwen an eroplueden fir registréiert Benotzer)';
-$lang['i_pol2']                = 'Zouene Wiki (liesen, schreiwen, eroplueden nëmme fir registréiert Benotzer)';
-$lang['i_retry']               = 'Nach eng Kéier probéieren';
-$lang['recent_global']         = 'Du kucks am Moment d\'Ännerungen innerhalb vum <b>%s</b> Namespace. Du kanns och <a href="%s">d\'Kierzilech Ännerungen vum ganze Wiki kucken</a>.';
-$lang['years']                 = 'virun %d Joer';
-$lang['months']                = 'virun %d Méint';
-$lang['weeks']                 = 'virun %d Wochen';
-$lang['days']                  = 'virun %d Deeg';
-$lang['hours']                 = 'virun %d Stonnen';
-$lang['minutes']               = 'virun %d Minutten';
-$lang['seconds']               = 'virun %d Sekonnen';
-$lang['email_signature_text'] = 'Dës Mail gouf generéiert vun DokuWiki op
-@DOKUWIKIURL@';
diff --git a/wiki/inc/lang/lb/locked.txt b/wiki/inc/lang/lb/locked.txt
deleted file mode 100644
index 944efb2..0000000
--- a/wiki/inc/lang/lb/locked.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Säit gespaart ======
-
-Dës Säit ass am Moment duerch en anere Benotzer fir Ännerunge gespart. Du muss waarde bis e mat sengen Ännerunge fäerdeg ass oder d'Spär ofleeft.
\ No newline at end of file
diff --git a/wiki/inc/lang/lb/login.txt b/wiki/inc/lang/lb/login.txt
deleted file mode 100644
index 7d0548e..0000000
--- a/wiki/inc/lang/lb/login.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Aloggen ======
-
-Du bass am Moment net ageloggt! Gëff deng Autoriséierungsinformatiounen hei ënnendrënner an. Du muss d'Cookien erlaabt hunn fir dech kënnen anzeloggen.
diff --git a/wiki/inc/lang/lb/mailtext.txt b/wiki/inc/lang/lb/mailtext.txt
deleted file mode 100644
index 59c46e0..0000000
--- a/wiki/inc/lang/lb/mailtext.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-Et gouf eng Säit an dengem DokuWiki g'ännert oder nei erstallt. Hei sinn d'Detailer:
-
-Datum          : @DATE@
-Browser        : @BROWSER@
-IP-Address     : @IPADDRESS@
-Hostname       : @HOSTNAME@
-Al Versioun    : @OLDPAGE@
-Nei Versioun   : @NEWPAGE@
-Zesummefaassung: @SUMMARY@
-Benotzer       : @USER@
-
-@DIFF@
diff --git a/wiki/inc/lang/lb/newpage.txt b/wiki/inc/lang/lb/newpage.txt
deleted file mode 100644
index 9391761..0000000
--- a/wiki/inc/lang/lb/newpage.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-======Dësen Thema gëtt et nach net======
-
-Du hues op e Link vun enger Säit geklickt, déi et nach net gëtt. Wanns de déi néideg Rechter hues, da kanns de dës Säit uleeën andeems de op ''Dës Säit uleeën'' klicks.
-
diff --git a/wiki/inc/lang/lb/norev.txt b/wiki/inc/lang/lb/norev.txt
deleted file mode 100644
index 45a36ee..0000000
--- a/wiki/inc/lang/lb/norev.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Keng sou Versioun ======
-
-Déi Versioun gëtt et net. Benotz de Kneppchen ''Al Versiounen'' fir eng Lëscht vun ale Versiounen vun dësem Dokument.
diff --git a/wiki/inc/lang/lb/password.txt b/wiki/inc/lang/lb/password.txt
deleted file mode 100644
index 1d05832..0000000
--- a/wiki/inc/lang/lb/password.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-Moien @FULLNAME@!
-
-Hei sinn deng Benotzerdaten fir @TITLE@ op @DOKUWIKIURL@
-
-Benotzernumm : @LOGIN@
-Passwuert    : @PASSWORD@
diff --git a/wiki/inc/lang/lb/preview.txt b/wiki/inc/lang/lb/preview.txt
deleted file mode 100644
index f131cda..0000000
--- a/wiki/inc/lang/lb/preview.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-======Net gespäichert Versioun======
-
-Dëst ass nëmmen eng net gespäichert Versioun; d'Ännerunge sinn nach **net** gespäichert!
diff --git a/wiki/inc/lang/lb/pwconfirm.txt b/wiki/inc/lang/lb/pwconfirm.txt
deleted file mode 100644
index efb0406..0000000
--- a/wiki/inc/lang/lb/pwconfirm.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-Moien @FULLNAME@!
-
-Iergendeen huet e neit Passwuert fir däin @TITLE@
-login op @DOKUWIKIURL@ gefrot
-
-Wanns de kee nei Passwuert gefrot hues, dann ignoréier dës Mail.
-
-Fir ze konfirméieren dass du wierklech en neit Passwuert gefrot hues,
-klick op folgende Link.
-
-@CONFIRM@
diff --git a/wiki/inc/lang/lb/read.txt b/wiki/inc/lang/lb/read.txt
deleted file mode 100644
index 3f52bd6..0000000
--- a/wiki/inc/lang/lb/read.txt
+++ /dev/null
@@ -1 +0,0 @@
-Dës Säit ass nëmme fir ze kucken. Du kanns d'Quell kucken, mee net änneren. Fro däin Administrator wanns de mengs dat wier falsch.
diff --git a/wiki/inc/lang/lb/recent.txt b/wiki/inc/lang/lb/recent.txt
deleted file mode 100644
index c7359e2..0000000
--- a/wiki/inc/lang/lb/recent.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Rezent Ännerungen ======
-
-Folgend Säite goufen an der lescht g'ännert.
-
diff --git a/wiki/inc/lang/lb/register.txt b/wiki/inc/lang/lb/register.txt
deleted file mode 100644
index 1e017e9..0000000
--- a/wiki/inc/lang/lb/register.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Als neie Benotzer registréieren ======
-
-Fëll alles hei ënnendrënner aus fir en neie Kont op dësem Wiki unzeleeën. Pass op dass de eng **gëlteg Emailadress** ugëss - wanns de net gefrot gëss hei e Passwuert anzeginn, da kriss de e neit op déi Adress geschéckt. De Benotzernumm soll e gëltege [[doku>pagename|Säitenumm]] sinn.
-
diff --git a/wiki/inc/lang/lb/registermail.txt b/wiki/inc/lang/lb/registermail.txt
deleted file mode 100644
index 5240dee..0000000
--- a/wiki/inc/lang/lb/registermail.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-Et huet sech e neie Benotzer registréiert. Hei sinn d'Deteiler:
-
-Benotzernumm: @NEWUSER@
-Ganze Numm  : @NEWNAME@
-Email       : @NEWEMAIL@
-
-Datum       : @DATE@
-Browser     : @BROWSER@
-IP-Adress   : @IPADDRESS@
-Hostnumm    : @HOSTNAME@
diff --git a/wiki/inc/lang/lb/resendpwd.txt b/wiki/inc/lang/lb/resendpwd.txt
deleted file mode 100644
index 6ca4518..0000000
--- a/wiki/inc/lang/lb/resendpwd.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Nei Passwuert schécken ======
-
-Gëff w.e.g. däi Benotzernumm an de Formulär hei ënnendrënner an fir e neit Passwuert fir dëse Wiki unzefroen. E Konfirmatiounslink gëtt dann op deng registréiert Emailadress geschéckt.
diff --git a/wiki/inc/lang/lb/revisions.txt b/wiki/inc/lang/lb/revisions.txt
deleted file mode 100644
index 7dec327..0000000
--- a/wiki/inc/lang/lb/revisions.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Al Versiounen ======
-
-Hei sinn déi al Versiounen vun dësem Dokument. Fir op eng al Versioun zeréckzegoen, wiel se hei ënnendrënner eraus, klick ''Dës Säit änneren'' a späicher se.
diff --git a/wiki/inc/lang/lb/searchpage.txt b/wiki/inc/lang/lb/searchpage.txt
deleted file mode 100644
index c2e76eb..0000000
--- a/wiki/inc/lang/lb/searchpage.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-======Sich======
-
-Hei ënnendrënner sinn d'Resultater vun der Sich. @CREATEPAGEINFO@
-
diff --git a/wiki/inc/lang/lb/showrev.txt b/wiki/inc/lang/lb/showrev.txt
deleted file mode 100644
index f6e2dee..0000000
--- a/wiki/inc/lang/lb/showrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**Dat hei ass eng al Versioun vum Document!**
-----
\ No newline at end of file
diff --git a/wiki/inc/lang/lb/updateprofile.txt b/wiki/inc/lang/lb/updateprofile.txt
deleted file mode 100644
index 326d622..0000000
--- a/wiki/inc/lang/lb/updateprofile.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Profil aktualiséieren ======
-
-Du brauchs just d'Felder auszefëllen déis de wëlls änneren. Du kanns däi Benotzernumm net änneren.
-
diff --git a/wiki/inc/lang/lb/uploadmail.txt b/wiki/inc/lang/lb/uploadmail.txt
deleted file mode 100644
index c4b9e8d..0000000
--- a/wiki/inc/lang/lb/uploadmail.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-Eng Datei gouf op däin DokuWiki eropgelueden. Hei sinn d'Deteiler:
-
-Datei       : @MEDIA@
-Datum       : @DATE@
-Browser     : @BROWSER@
-IP-Adress   : @IPADDRESS@
-Hostnumm    : @HOSTNAME@
-Gréisst     : @SIZE@
-MIME Typ    : @MIME@
-Benotzer    : @USER@
diff --git a/wiki/inc/lang/lt/admin.txt b/wiki/inc/lang/lt/admin.txt
deleted file mode 100644
index fd9ae9a..0000000
--- a/wiki/inc/lang/lt/admin.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Administracija ======
-
-Žemiau matote veiksmų, kuriuos gali atlikti administratorius, sąrašą.
-
diff --git a/wiki/inc/lang/lt/backlinks.txt b/wiki/inc/lang/lt/backlinks.txt
deleted file mode 100644
index ad0d5b8..0000000
--- a/wiki/inc/lang/lt/backlinks.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== AtgalinÄ—s nuorodos ======
-
-Čia matote sąrašą puslapių, kuriuose yra nuorodos į esamą puslapį.
-
diff --git a/wiki/inc/lang/lt/conflict.txt b/wiki/inc/lang/lt/conflict.txt
deleted file mode 100644
index be0c5ff..0000000
--- a/wiki/inc/lang/lt/conflict.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-====== Egzistuoja naujesnÄ— versija ======
-
-Rasta naujesnė dokumento, kurį redagavote, versija. Tai atsitinka tada, kai kitas vartotojas modifikuoja dokumentą tuo metu, kai jūs jį redaguojate.
-
-Atidžiai peržvelkite žemiau esanÄius skirtumus ir nusprÄ™skite, kuriÄ… versijÄ… iÅ¡saugoti. Paspausdami ''IÅ¡saugoti'' iÅ¡saugosite saviÅ¡kÄ™ versijÄ…. Paspausdami ''AtÅ¡aukti'' iÅ¡saugosite esamÄ… versijÄ….
-
diff --git a/wiki/inc/lang/lt/denied.txt b/wiki/inc/lang/lt/denied.txt
deleted file mode 100644
index 9a85446..0000000
--- a/wiki/inc/lang/lt/denied.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Priėjimas uždraustas ======
-
-Jūs neturite reikiamų teisių, kad galėtumėte tęsti.
-
diff --git a/wiki/inc/lang/lt/diff.txt b/wiki/inc/lang/lt/diff.txt
deleted file mode 100644
index dc5e59f..0000000
--- a/wiki/inc/lang/lt/diff.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Skirtumai ======
-
-ÄŒia matote skirtumus tarp pasirinktos versijos ir esamo dokumento.
-
diff --git a/wiki/inc/lang/lt/edit.txt b/wiki/inc/lang/lt/edit.txt
deleted file mode 100644
index 8fadf97..0000000
--- a/wiki/inc/lang/lt/edit.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-Modifikuokite šį puslapį ir paspauskite ''IÅ¡saugoti''. Apie wiki sintaksÄ™ galite paskaityti [[wiki:syntax|Äia]]. PraÅ¡ome redaguoti šį puslapį tik tada, kai galite jį **patobulinti**. Jei tik norite iÅ¡bandyti wiki galimybes, praÅ¡ytume tai daryti [[playground:playground|Äia]].
-
diff --git a/wiki/inc/lang/lt/editrev.txt b/wiki/inc/lang/lt/editrev.txt
deleted file mode 100644
index 9e5eaee..0000000
--- a/wiki/inc/lang/lt/editrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**Jūs naudojate seną šio dokumento versiją!** jei ją išsaugosite, su šiais duomenimis sukursite naują versiją.
-----
\ No newline at end of file
diff --git a/wiki/inc/lang/lt/index.txt b/wiki/inc/lang/lt/index.txt
deleted file mode 100644
index d13683c..0000000
--- a/wiki/inc/lang/lt/index.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Indeksas ======
-
-ÄŒia matote visų Å¡iuo metu egzistuojanÄių puslapių sÄ…rašą. Jie iÅ¡rūšiuoti pagal [[doku>namespaces|pavadinimÄ…]].
-
diff --git a/wiki/inc/lang/lt/jquery.ui.datepicker.js b/wiki/inc/lang/lt/jquery.ui.datepicker.js
deleted file mode 100644
index a57fd9d..0000000
--- a/wiki/inc/lang/lt/jquery.ui.datepicker.js
+++ /dev/null
@@ -1,45 +0,0 @@
-/* Lithuanian (UTF-8) initialisation for the jQuery UI date picker plugin. */
-/* @author Arturas Paleicikas <arturas@avalon.lt> */
-( function( factory ) {
-	if ( typeof define === "function" && define.amd ) {
-
-		// AMD. Register as an anonymous module.
-		define( [ "../widgets/datepicker" ], factory );
-	} else {
-
-		// Browser globals
-		factory( jQuery.datepicker );
-	}
-}( function( datepicker ) {
-
-datepicker.regional.lt = {
-	closeText: "Uždaryti",
-	prevText: "&#x3C;Atgal",
-	nextText: "Pirmyn&#x3E;",
-	currentText: "Å iandien",
-	monthNames: [ "Sausis","Vasaris","Kovas","Balandis","Gegužė","Birželis",
-	"Liepa","Rugpjūtis","Rugsėjis","Spalis","Lapkritis","Gruodis" ],
-	monthNamesShort: [ "Sau","Vas","Kov","Bal","Geg","Bir",
-	"Lie","Rugp","Rugs","Spa","Lap","Gru" ],
-	dayNames: [
-		"sekmadienis",
-		"pirmadienis",
-		"antradienis",
-		"treÄiadienis",
-		"ketvirtadienis",
-		"penktadienis",
-		"šeštadienis"
-	],
-	dayNamesShort: [ "sek","pir","ant","tre","ket","pen","šeš" ],
-	dayNamesMin: [ "Se","Pr","An","Tr","Ke","Pe","Å e" ],
-	weekHeader: "SAV",
-	dateFormat: "yy-mm-dd",
-	firstDay: 1,
-	isRTL: false,
-	showMonthAfterYear: true,
-	yearSuffix: "" };
-datepicker.setDefaults( datepicker.regional.lt );
-
-return datepicker.regional.lt;
-
-} ) );
diff --git a/wiki/inc/lang/lt/lang.php b/wiki/inc/lang/lt/lang.php
deleted file mode 100644
index 67fabef..0000000
--- a/wiki/inc/lang/lt/lang.php
+++ /dev/null
@@ -1,183 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Linas Valiukas <shirshegsm@gmail.com>
- * @author Edmondas Girkantas <eg@zemaitija.net>
- * @author Arūnas Vaitekūnas <aras@fan.lt>
- * @author audrius.klevas@gmail.com
- * @author Tomas Darius Davainis <tomasdd@gmail.com>
- */
-$lang['encoding']              = 'utf-8';
-$lang['direction']             = 'ltr';
-$lang['doublequoteopening']    = '„';
-$lang['doublequoteclosing']    = '“';
-$lang['singlequoteopening']    = '‚';
-$lang['singlequoteclosing']    = '‘';
-$lang['apostrophe']            = '’';
-$lang['btn_edit']              = 'Redaguoti šį puslapį';
-$lang['btn_source']            = 'Parodyti puslapio kodÄ…';
-$lang['btn_show']              = 'Parodyti puslapį';
-$lang['btn_create']            = 'Sukurti šį puslapį';
-$lang['btn_search']            = 'Paieška';
-$lang['btn_save']              = 'Išsaugoti';
-$lang['btn_preview']           = 'Peržiūra';
-$lang['btn_top']               = 'Į viršų';
-$lang['btn_newer']             = '<< naujesnÄ—';
-$lang['btn_older']             = 'senesnÄ— >>';
-$lang['btn_revs']              = 'Senos versijos';
-$lang['btn_recent']            = 'Naujausi keitimai';
-$lang['btn_upload']            = 'Atsiųsti bylą';
-$lang['btn_cancel']            = 'Atšaukti';
-$lang['btn_index']             = 'Indeksas';
-$lang['btn_secedit']           = 'Redaguoti';
-$lang['btn_login']             = 'Prisijungti';
-$lang['btn_logout']            = 'Atsijungti';
-$lang['btn_admin']             = 'Administracija';
-$lang['btn_update']            = 'Atnaujinti';
-$lang['btn_delete']            = 'Ištrinti';
-$lang['btn_back']              = 'Atgal';
-$lang['btn_backlink']          = 'AtgalinÄ—s nuorodos';
-$lang['btn_subscribe']         = 'Užsisakyti keitimų prenumeratą';
-$lang['btn_profile']           = 'Atnaujinti profilį';
-$lang['btn_reset']             = 'Atstata';
-$lang['btn_draft']             = 'Redaguoti juodraštį';
-$lang['btn_recover']           = 'Atkurti juodraštį';
-$lang['btn_draftdel']          = 'Šalinti juodraštį';
-$lang['btn_register']          = 'Registruotis';
-$lang['btn_img_backto']        = 'Atgal į %s';
-$lang['loggedinas']            = 'Prisijungęs kaip:';
-$lang['user']                  = 'Vartotojo vardas';
-$lang['pass']                  = 'Slaptažodis';
-$lang['newpass']               = 'Naujas slaptažodis';
-$lang['oldpass']               = 'Patvirtinti esamą slaptažodį';
-$lang['passchk']               = 'dar kartÄ…';
-$lang['remember']              = 'Prisiminti mane';
-$lang['fullname']              = 'Visas vardas';
-$lang['email']                 = 'El. pašto adresas';
-$lang['profile']               = 'Vartotojo profilis';
-$lang['badlogin']              = 'Nurodėte blogą vartotojo vardą arba slaptažodį.';
-$lang['minoredit']             = 'Nedidelis pataisymas';
-$lang['draftdate']             = 'Juodraštis automatiškai išsaugotas';
-$lang['nosecedit']             = 'Puslapis buvo kažkieno pataisytas, teksto dalies informacija tapo pasenusi, todėl pakrautas visas puslapis.';
-$lang['regmissing']            = 'Turite užpildyti visus laukus.';
-$lang['reguexists']            = 'Vartotojas su pasirinktu prisijungimo vardu jau egzistuoja.';
-$lang['regsuccess']            = 'Vartotojas sukurtas, slaptažodis išsiųstas el. paštu.';
-$lang['regsuccess2']           = 'Vartotojas sukurtas.';
-$lang['regmailfail']           = 'SiunÄiant slaptažodį el. paÅ¡tu įvyko klaida - susisiekite su administracija!';
-$lang['regbadmail']            = 'Nurodytas el. pašto adresas yra neteisingas - jei manote, kad tai klaida, susisiekite su administracija';
-$lang['regbadpass']            = 'Įvesti slaptažodžiai nesutampa, bandykite dar kartą.';
-$lang['regpwmail']             = 'Jūsų DokuWiki slaptažodis';
-$lang['reghere']               = 'Dar neužsiregistravote? Padarykite tai dabar';
-$lang['profna']                = 'Ši vikisvetainė neleidžia pakeisti profilio';
-$lang['profnochange']          = 'Nėra pakeitimų, todėl nėra ką atlikti.';
-$lang['profnoempty']           = 'TuÅ¡Äias vardo arba el. paÅ¡to adreso laukas nÄ—ra leidžiamas.';
-$lang['profchanged']           = 'Vartotojo profilis sÄ—kmingai atnaujintas.';
-$lang['pwdforget']             = 'Pamiršote slaptažodį? Gaukite naują';
-$lang['resendna']              = 'Ši vikisvetainė neleidžia persiųsti slaptažodžių.';
-$lang['resendpwdmissing']      = 'Jūs turite užpildyti visus laukus.';
-$lang['resendpwdnouser']       = 'Tokio vartotojo nėra duomenų bazėje.';
-$lang['resendpwdbadauth']      = 'Atsiprašome, bet šis tapatybės nustatymo kodas netinkamas. Įsitikinkite, kad panaudojote pilną patvirtinimo nuorodą.';
-$lang['resendpwdconfirm']      = 'Patvirtinimo nuoroda išsiųsta el. paštu.';
-$lang['resendpwdsuccess']      = 'Jūsų naujas slaptažodis buvo išsiųstas el. paštu.';
-$lang['license']               = 'Jei nenurodyta kitaip, šio wiki turinys ginamas tokia licencija:';
-$lang['licenseok']             = 'Pastaba: Redaguodami šį puslapį jūs sutinkate jog jūsų turinys atitinka licencijavima pagal šią licenciją';
-$lang['txt_upload']            = 'IÅ¡sirinkite atsiunÄiamÄ… bylÄ…:';
-$lang['txt_filename']          = 'Įveskite wikivardą (nebūtina):';
-$lang['txt_overwrt']           = 'PerraÅ¡yti egzistuojanÄiÄ… bylÄ…';
-$lang['lockedby']              = 'Užrakintas vartotojo:';
-$lang['lockexpire']            = 'Užraktas bus nuimtas:';
-$lang['js']['willexpire']      = 'Šio puslapio redagavimo užrakto galiojimo laikas baigsis po minutės.\nNorėdami išvengti nesklandumų naudokite peržiūros mygtuką ir užraktas atsinaujins.';
-$lang['js']['notsavedyet']     = 'Pakeitimai nebus išsaugoti.\nTikrai tęsti?';
-$lang['js']['keepopen']        = 'Pažymėjus palikti langą atvertą';
-$lang['js']['hidedetails']     = 'PaslÄ—pti Detales';
-$lang['js']['nosmblinks']      = 'Nurodos į "Windows shares" veikia tik su Microsoft Internet Explorer naršykle.
-Vis dėlto, jūs galite nukopijuoti šią nuorodą.';
-$lang['js']['del_confirm']     = 'Ar tikrai ištrinti pažymėtą(us) įrašą(us)?';
-$lang['rssfailed']             = 'SiunÄiant šį feed\'Ä… įvyko klaida: ';
-$lang['nothingfound']          = 'Paieškos rezultatų nėra.';
-$lang['mediaselect']           = 'Mediabylos išsirinkimas';
-$lang['uploadsucc']            = 'Atsiuntimas pavyko';
-$lang['uploadfail']            = 'Atsiuntimas nepavyko. Blogi priÄ—jimo leidimai??';
-$lang['uploadwrong']           = 'Atsiuntimas atmestas. Bylos tipas neleistinas';
-$lang['uploadexist']           = 'Tokia byla jau egzistuoja. Veiksmai atšaukti.';
-$lang['uploadbadcontent']      = 'Įkeltas turinys neatitinka %s failo išplėtimo.';
-$lang['uploadspam']            = 'Įkėlimas blokuotas pagal šiukšlintojų juodajį šąrašą.';
-$lang['uploadxss']             = 'Ä®kÄ—limas blokuotas greiÄiausiai dÄ—l netinkamo teksto.';
-$lang['uploadsize']            = 'Įkeltas failas per didelis (maks. %s)';
-$lang['deletesucc']            = 'Byla "%s" ištrinta.';
-$lang['deletefail']            = 'Byla "%s" negali būti ištrinta - patikrinkite leidimus.';
-$lang['mediainuse']            = 'Byla "%s" nebuvo ištrinta - ji vis dar naudojama.';
-$lang['namespaces']            = 'Pavadinimai';
-$lang['mediafiles']            = 'Prieinamos bylos';
-$lang['mediausage']            = 'Failo nuorodai užrašyti naudokite tokią sintaksę:';
-$lang['mediaview']             = 'Žiūrėti pirminį failą';
-$lang['mediaroot']             = 'pradžia (root)';
-$lang['mediaextchange']        = 'Failo galūnė pasikeitė iš .%s į .%s!';
-$lang['reference']             = 'PaminÄ—jimai';
-$lang['ref_inuse']             = 'Byla negali būti ištrinta, nes ji vis dar yra naudojama šiuose puslapiuose:';
-$lang['ref_hidden']            = 'Kai kurie paminėjimai yra puslapiuose, kurių jums neleista skaityti.';
-$lang['hits']                  = 'Atidarymai';
-$lang['quickhits']             = 'Sutampantys pavadinimai';
-$lang['toc']                   = 'Turinys';
-$lang['current']               = 'esamas';
-$lang['yours']                 = 'Jūsų versija';
-$lang['diff']                  = 'rodyti skirtumus tarp šios ir esamos versijos';
-$lang['diff2']                 = 'Parodyti skirtumus tarp pasirinktų versijų';
-$lang['line']                  = 'Linija';
-$lang['breadcrumb']            = 'Kelias:';
-$lang['youarehere']            = 'JÅ«s esate Äia:';
-$lang['lastmod']               = 'Keista:';
-$lang['by']                    = 'vartotojo';
-$lang['deleted']               = 'ištrintas';
-$lang['created']               = 'sukurtas';
-$lang['restored']              = 'atstatyta sena versija (%s)';
-$lang['external_edit']         = 'redaguoti papildomomis priemonÄ—mis';
-$lang['summary']               = 'Redaguoti santraukÄ…';
-$lang['noflash']               = '<a href="http://www.adobe.com/products/flashplayer/">Adobe Flash Plugin</a> reikalingas šios medžiagos peržiūrai.';
-$lang['mail_newpage']          = '[DokuWiki] puslapis pridÄ—tas:';
-$lang['mail_changed']          = '[DokuWiki] puslapis pakeistas:';
-$lang['mail_new_user']         = 'naujas vartotojas:';
-$lang['mail_upload']           = 'failas įkeltas:';
-$lang['qb_bold']               = 'Pusjuodis';
-$lang['qb_italic']             = 'Kursyvas';
-$lang['qb_underl']             = 'Pabrauktas';
-$lang['qb_code']               = 'Kodas';
-$lang['qb_strike']             = 'Perbraukta';
-$lang['qb_h1']                 = 'Pirmo lygio antraštė';
-$lang['qb_h2']                 = 'Antro lygio antraštė';
-$lang['qb_h3']                 = 'TreÄio lygio antraÅ¡tÄ—';
-$lang['qb_h4']                 = 'Ketvirto lygio antraštė';
-$lang['qb_h5']                 = 'Penkto lygio antraštė';
-$lang['qb_link']               = 'VidinÄ— nuoroda';
-$lang['qb_extlink']            = 'Išorinė nuoroda';
-$lang['qb_hr']                 = 'Horizontali linija';
-$lang['qb_ol']                 = 'Numeruotas sąrašas';
-$lang['qb_ul']                 = 'Nenumetuotas sąrašas';
-$lang['qb_media']              = 'PaveikslÄ—liai ir kitos bylos';
-$lang['qb_sig']                = 'Įterpti parašą';
-$lang['qb_smileys']            = 'Å ypsenÄ—lÄ—s';
-$lang['qb_chars']              = 'Specialūs simboliai';
-$lang['metaedit']              = 'Redaguoti metaduomenis';
-$lang['metasaveerr']           = 'Nepavyko išsaugoti metaduomenų';
-$lang['metasaveok']            = 'Metaduomenys išsaugoti';
-$lang['img_title']             = 'Pavadinimas:';
-$lang['img_caption']           = 'Antraštė:';
-$lang['img_date']              = 'Data:';
-$lang['img_fname']             = 'Bylos pavadinimas:';
-$lang['img_fsize']             = 'Dydis:';
-$lang['img_artist']            = 'Fotografas:';
-$lang['img_copyr']             = 'AutorinÄ—s teisÄ—s:';
-$lang['img_format']            = 'Formatas:';
-$lang['img_camera']            = 'Kamera:';
-$lang['img_keywords']          = 'Raktiniai žodžiai:';
-$lang['authtempfail']          = 'Vartotojo tapatumo nustatymas laikinai nepasiekiamas. Jei ši situacija kartojasi, tai praneškite savo administratoriui.';
-$lang['i_chooselang']          = 'Pasirinkite kalbÄ…';
-$lang['i_installer']           = 'DokuWiki Instaliatorius';
-$lang['i_wikiname']            = 'Wiki vardas';
-$lang['i_enableacl']           = 'Įjungti ACL (rekomenduojama)';
-$lang['i_superuser']           = 'Supervartotojas';
-$lang['i_problems']            = 'Instaliavimo metu buvo klaidų, kurios pateiktos žemiau. Tęsti negalima, kol nebus pašalintos priežastys.';
-$lang['email_signature_text'] = 'Šis laiškas buvo sugeneruotas DokuWiki
-@DOKUWIKIURL@';
diff --git a/wiki/inc/lang/lt/locked.txt b/wiki/inc/lang/lt/locked.txt
deleted file mode 100644
index 3f6d000..0000000
--- a/wiki/inc/lang/lt/locked.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Puslapis užrakintas ======
-
-Šis puslapis yra apsaugotas (užrakintas) nuo kitų vartotojų pakeitimų. Norėdami redaguoti puslapį, turėsite palaukti, kol kitas vartotojas baigs tai daryti arba „užrakto“ galiojimo laikas pasibaigs.
diff --git a/wiki/inc/lang/lt/login.txt b/wiki/inc/lang/lt/login.txt
deleted file mode 100644
index 2a6e21d..0000000
--- a/wiki/inc/lang/lt/login.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== Prisijungimas ======
-
-Šiuo metu jūs nesate prisijungęs. Įveskite savo prisijungimo duomenis žemiau. „Cookies“ palaikymas jūsų naršyklėje turi būti įjungtas.
-
-
diff --git a/wiki/inc/lang/lt/mailtext.txt b/wiki/inc/lang/lt/mailtext.txt
deleted file mode 100644
index 2abd3ab..0000000
--- a/wiki/inc/lang/lt/mailtext.txt
+++ /dev/null
@@ -1,14 +0,0 @@
-Jūsų DokuWiki buvo sukurtas arba pakeistas puslapis. Detalės:
-
-Data        : @DATE@
-Naršyklė     : @BROWSER@
-IP adresas  : @IPADDRESS@
-Host'as    : @HOSTNAME@
-Sena versija: @OLDPAGE@
-Nauja versija: @NEWPAGE@
-Redagavimo aprašas: @SUMMARY@
-Vartotojas        : @USER@
-
-Pakeitimo diff'as:
-
-@DIFF@
diff --git a/wiki/inc/lang/lt/newpage.txt b/wiki/inc/lang/lt/newpage.txt
deleted file mode 100644
index c28e30b..0000000
--- a/wiki/inc/lang/lt/newpage.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Å is puslapis dar neegzistuoja ======
-
-Nuoroda, kurią jūs paspaudėte, atvedė į dar neegzistuojantį puslapį. Jūs galite jį sukurti paspausdami ''Sukurti šį puslapį'' mygtuką.
-
diff --git a/wiki/inc/lang/lt/norev.txt b/wiki/inc/lang/lt/norev.txt
deleted file mode 100644
index 028ebe7..0000000
--- a/wiki/inc/lang/lt/norev.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== Tokios versijos nÄ—ra ======
-
-Nurodyta versija neegzistuoja. NorÄ—dami pamatyti visas dokumento versijas, paspauskite ''Senos versijos'' mygtukÄ…
-
-
diff --git a/wiki/inc/lang/lt/password.txt b/wiki/inc/lang/lt/password.txt
deleted file mode 100644
index 0bcc8e7..0000000
--- a/wiki/inc/lang/lt/password.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-Labas, @FULLNAME@!
-
-Čia yra jūsų prisijungimo duomenys prie tinklalapio @TITLE@ (@DOKUWIKIURL@):
-
-Prisijungimo vardas:  @LOGIN@
-Slaptažodis:          @PASSWORD@
diff --git a/wiki/inc/lang/lt/preview.txt b/wiki/inc/lang/lt/preview.txt
deleted file mode 100644
index 2d24e21..0000000
--- a/wiki/inc/lang/lt/preview.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== Peržiūra ======
-
-Čia matote, kaip atrodo jūsų pakeitimai. **Pakeitimai dar nėra išsaugoti!**
-
-
diff --git a/wiki/inc/lang/lt/read.txt b/wiki/inc/lang/lt/read.txt
deleted file mode 100644
index 91ea7e6..0000000
--- a/wiki/inc/lang/lt/read.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-Šį puslapį galima tik skaityti. Jūs galite peržvelgti jo kodą (source), bet negalite jo keisti. Jei manote, kad tai klaida - susisiekite su administratoriumi.
-
-
diff --git a/wiki/inc/lang/lt/recent.txt b/wiki/inc/lang/lt/recent.txt
deleted file mode 100644
index 5065386..0000000
--- a/wiki/inc/lang/lt/recent.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== Naujausi keitimai ======
-
-Å ie puslapiai buvo neseniai pakeisti.
-
-
diff --git a/wiki/inc/lang/lt/register.txt b/wiki/inc/lang/lt/register.txt
deleted file mode 100644
index f595826..0000000
--- a/wiki/inc/lang/lt/register.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Naujo vartotojo registracija ======
-
-NorÄ—dami tapti nauju registruotu Å¡io tinklalapio vartotoju, užpildykite žemiau esanÄiÄ… formÄ…. BÅ«tinai turite nurodyti **veikiantį el. paÅ¡to adresÄ…**, nes jÅ«sų slaptažodis bus iÅ¡siųstas pastaruoju adresu. Prisijungimo vardas turÄ—tų bÅ«ti sukurtas pagal [[doku>pagename|puslapio pavadinimo]] taisykles.
-
diff --git a/wiki/inc/lang/lt/resendpwd.txt b/wiki/inc/lang/lt/resendpwd.txt
deleted file mode 100644
index 7538271..0000000
--- a/wiki/inc/lang/lt/resendpwd.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Siųsti naują slaptažodį ======
-
-Naujo slaptažodžio gavimui, užpildykite visus žemiau esanÄius laukus. Naujas slaptažodis bus atsiųstas į jÅ«sų užregistruotÄ… el. paÅ¡to adresÄ…. Vartotojo vardas turi bÅ«ti toks pat kaip ir wiki sistemoje.
diff --git a/wiki/inc/lang/lt/revisions.txt b/wiki/inc/lang/lt/revisions.txt
deleted file mode 100644
index 9999767..0000000
--- a/wiki/inc/lang/lt/revisions.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Senos versijos ======
-
-Čia matote senas šio dokumento versijas. Jei norite atstatyti dokumentą į jo senesniąją versiją, paspauskite "Redaguoti šį puslapį" prie norimos versijos ir išsaugokite ją.
-
diff --git a/wiki/inc/lang/lt/searchpage.txt b/wiki/inc/lang/lt/searchpage.txt
deleted file mode 100644
index 111029d..0000000
--- a/wiki/inc/lang/lt/searchpage.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Paieška ======
-
-Žemiau matote Jūsų atliktos paieškos rezultatus. @CREATEPAGEINFO@
-
diff --git a/wiki/inc/lang/lt/showrev.txt b/wiki/inc/lang/lt/showrev.txt
deleted file mode 100644
index ed77424..0000000
--- a/wiki/inc/lang/lt/showrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**ÄŒia yra sena dokumento versija!**
-----
diff --git a/wiki/inc/lang/lt/updateprofile.txt b/wiki/inc/lang/lt/updateprofile.txt
deleted file mode 100644
index 7ede1a0..0000000
--- a/wiki/inc/lang/lt/updateprofile.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Redaguoti savo profilį ======
-
-Užpildykite tik tuos laukus, kuriuos norite pakeisti. Vartotojo vardo keisti nebūtina.
-
diff --git a/wiki/inc/lang/lv/admin.txt b/wiki/inc/lang/lv/admin.txt
deleted file mode 100644
index 3b37fa3..0000000
--- a/wiki/inc/lang/lv/admin.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-====== Administrēšana ======
-
-DokuWiki pieejamas Å¡Ädas administrēšanas iespÄ“jas:
-
-
-
diff --git a/wiki/inc/lang/lv/adminplugins.txt b/wiki/inc/lang/lv/adminplugins.txt
deleted file mode 100644
index e8d208d..0000000
--- a/wiki/inc/lang/lv/adminplugins.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Papildu moduļi =====
\ No newline at end of file
diff --git a/wiki/inc/lang/lv/backlinks.txt b/wiki/inc/lang/lv/backlinks.txt
deleted file mode 100644
index 19bebf7..0000000
--- a/wiki/inc/lang/lv/backlinks.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== SaistÄ«tÄs lapas ======
-
-NorÄde uz Å¡o lapu ir atrodama dokumentos:
-
-
diff --git a/wiki/inc/lang/lv/conflict.txt b/wiki/inc/lang/lv/conflict.txt
deleted file mode 100644
index 5aa6442..0000000
--- a/wiki/inc/lang/lv/conflict.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-====== Ir jaunÄka versija ======
-
-Tevis labotajam dokumentam jau ir jaunÄka versija. TÄ gadÄs, ja cits lietotÄjs tavas laboÅ¡anas laikÄ ir paguvis veikt savus labojumus.
-
-RÅ«pÄ«gi pÄrlÅ«ko Å¡eit parÄdÄ«tÄs atšķirÄ«bas un tad izlem, kuru variantu paturÄ“t. Ja nospiedÄ«si  ''SaglabÄt'', saglabÄsies tavs teksts. Ja nospiedÄ«si ''Atlikt'' paliks paÅ¡reizÄ“jais variants.
-
-
-
diff --git a/wiki/inc/lang/lv/denied.txt b/wiki/inc/lang/lv/denied.txt
deleted file mode 100644
index 6733fb2..0000000
--- a/wiki/inc/lang/lv/denied.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Piekļuve aizliegta ======
-
-Atvaino, tev nav tiesÄ«bu turpinÄt.
-
diff --git a/wiki/inc/lang/lv/diff.txt b/wiki/inc/lang/lv/diff.txt
deleted file mode 100644
index 40e1b54..0000000
--- a/wiki/inc/lang/lv/diff.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-====== Atšķirības ======
-
-NorÄdÄ«tais vecais variants no patreizÄ“jÄs lapas atšķiras ar:
-
-
-
-
diff --git a/wiki/inc/lang/lv/draft.txt b/wiki/inc/lang/lv/draft.txt
deleted file mode 100644
index 525f7cb..0000000
--- a/wiki/inc/lang/lv/draft.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== Atrasts melnraksta fails ======
-
-IepriekšējÄ Å¡Ä«s lapas laboÅ¡ana nav pabeigta. DokuWiki darba laikÄ automÄtiski saglabÄja melnrakstu, kuru tagad var labot tÄlÄk. ZemÄk redzami iepriekšējÄs laboÅ¡anas dati.
-
-Nolem, vai vajag //atjaunot// zuduÅ¡os labojumus, //dzÄ“st// saglabÄto melnrakstu vai //atlikt// laboÅ¡anu.
diff --git a/wiki/inc/lang/lv/edit.txt b/wiki/inc/lang/lv/edit.txt
deleted file mode 100644
index 9da6f2d..0000000
--- a/wiki/inc/lang/lv/edit.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-Labo lapu un uzklikšķini uz ''SaglabÄt''. Par lietojamo sintaksi skaties rakstu  [[wiki:syntax]]. LÅ«dzu labo tika tad, ja vari lapu **uzlabot**. Ja gribi tikai kaut ko izmēģinÄt, izmanto [[wiki:playground|smilÅ¡ukasti]].
-
diff --git a/wiki/inc/lang/lv/editrev.txt b/wiki/inc/lang/lv/editrev.txt
deleted file mode 100644
index 6fa7a4c..0000000
--- a/wiki/inc/lang/lv/editrev.txt
+++ /dev/null
@@ -1 +0,0 @@
----- **Tu skaties vecu dokumenta versiju!** Ja to saglabÄsi, tad izveidosies jauns dokuments ar Å¡o veco saturu. ----
diff --git a/wiki/inc/lang/lv/index.txt b/wiki/inc/lang/lv/index.txt
deleted file mode 100644
index 6baa2a3..0000000
--- a/wiki/inc/lang/lv/index.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== RÄdÄ«tÄjs ======
-
-Visu pieejamo lapu rÄdÄ«tÄjs. SakÄrtots pÄ“c [[doku>namespaces|sadaļÄm]].
-
diff --git a/wiki/inc/lang/lv/install.html b/wiki/inc/lang/lv/install.html
deleted file mode 100644
index 26dd8d7..0000000
--- a/wiki/inc/lang/lv/install.html
+++ /dev/null
@@ -1,12 +0,0 @@
-<p>Å Ä« lapa palÄ«dz <a href="http://dokuwiki.org">Dokuwiki</a>pirmajÄ instalÄcijÄ un konfigurēšanÄ.
-VairÄk par instalatoru var lasÄ«t tÄ
-<a href="http://dokuwiki.org/installer">documentÄcijas lapÄ</a>.</p>
-
-<p>DokuWiki lapu un ar to saistÄ«to datu (piem.: attÄ“lu, meklēšanas indeksu, veco versiju utt.) glabÄÅ¡anai lieto parastus failus.  Lai Dokuwiki veiksmÄ«gi darbotos <strong>vajag</strong> rakstīšanas tiesÄ«bas direktorijÄs, kur Å¡ie faili glabÄjas. Instalators tiesÄ«bas nomainÄ«t nespÄ“j. Tas parasti jums jÄizdara komandrindÄ vai ar FTP vadÄ«bas paneli (piem. cPanel).</p>
-
-<p>Instalators konfigurÄ“s DokuWiki <abbr title="access control list">ACL</abbr> lietoÅ¡anai, kas ļauj administratoram ielogoties un piekļūt DokuWiki administrēšanas izvÄ“lnei, lai instalÄ“tu moduļus, pÄrvaldÄ«tu lietotÄjus, notiektu piekļuves tiesÄ«bas Wiki lapÄm un mainÄ«tu DokuWiki konfigurÄciju.
-Tas nav vajadzÄ«gs, lai DokuWiki darbotos, bet ar to var vieglÄk administrÄ“t.</p>
-
-<p>PieredzÄ“juÅ¡iem lietotÄjiem ar Ä«paÅ¡Äm prasÄ«bÄm  jÄmeklÄ“ sÄ«kÄkas ziņas
-<a href="http://dokuwiki.org/install">uzstÄdīšanas instrukcijÄ</a>
-un <a href="http://dokuwiki.org/config">konfigurēšanas padomos</a>.</p>
\ No newline at end of file
diff --git a/wiki/inc/lang/lv/jquery.ui.datepicker.js b/wiki/inc/lang/lv/jquery.ui.datepicker.js
deleted file mode 100644
index 04556fb..0000000
--- a/wiki/inc/lang/lv/jquery.ui.datepicker.js
+++ /dev/null
@@ -1,45 +0,0 @@
-/* Latvian (UTF-8) initialisation for the jQuery UI date picker plugin. */
-/* @author Arturas Paleicikas <arturas.paleicikas@metasite.net> */
-( function( factory ) {
-	if ( typeof define === "function" && define.amd ) {
-
-		// AMD. Register as an anonymous module.
-		define( [ "../widgets/datepicker" ], factory );
-	} else {
-
-		// Browser globals
-		factory( jQuery.datepicker );
-	}
-}( function( datepicker ) {
-
-datepicker.regional.lv = {
-	closeText: "Aizvērt",
-	prevText: "Iepr.",
-	nextText: "NÄk.",
-	currentText: "Å odien",
-	monthNames: [ "JanvÄris","FebruÄris","Marts","AprÄ«lis","Maijs","JÅ«nijs",
-	"Jūlijs","Augusts","Septembris","Oktobris","Novembris","Decembris" ],
-	monthNamesShort: [ "Jan","Feb","Mar","Apr","Mai","Jūn",
-	"Jūl","Aug","Sep","Okt","Nov","Dec" ],
-	dayNames: [
-		"svētdiena",
-		"pirmdiena",
-		"otrdiena",
-		"trešdiena",
-		"ceturtdiena",
-		"piektdiena",
-		"sestdiena"
-	],
-	dayNamesShort: [ "svt","prm","otr","tre","ctr","pkt","sst" ],
-	dayNamesMin: [ "Sv","Pr","Ot","Tr","Ct","Pk","Ss" ],
-	weekHeader: "Ned.",
-	dateFormat: "dd.mm.yy",
-	firstDay: 1,
-	isRTL: false,
-	showMonthAfterYear: false,
-	yearSuffix: "" };
-datepicker.setDefaults( datepicker.regional.lv );
-
-return datepicker.regional.lv;
-
-} ) );
diff --git a/wiki/inc/lang/lv/lang.php b/wiki/inc/lang/lv/lang.php
deleted file mode 100644
index 1a101ad..0000000
--- a/wiki/inc/lang/lv/lang.php
+++ /dev/null
@@ -1,339 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Oskars Pakers <oskars.pakers@gmail.com>
- * @author Aivars Miška <allefm@gmail.com>
- */
-$lang['encoding']              = 'utf-8';
-$lang['direction']             = 'ltr';
-$lang['doublequoteopening']    = '„';
-$lang['doublequoteclosing']    = '“';
-$lang['singlequoteopening']    = '‚';
-$lang['singlequoteclosing']    = '‘';
-$lang['apostrophe']            = '’';
-$lang['btn_edit']              = 'Labot lapu';
-$lang['btn_source']            = 'ParÄdÄ«t lapas kodu';
-$lang['btn_show']              = 'ParÄdÄ«t lapu';
-$lang['btn_create']            = 'Izveidot lapu';
-$lang['btn_search']            = 'Meklēt';
-$lang['btn_save']              = 'SaglabÄt';
-$lang['btn_preview']           = 'Priekšskats';
-$lang['btn_top']               = 'Atpakaļ uz sÄkumu';
-$lang['btn_newer']             = '<< jaunÄki';
-$lang['btn_older']             = 'vecÄki >>';
-$lang['btn_revs']              = 'VecÄs versijas';
-$lang['btn_recent']            = 'JaunÄkie grozÄ«jumi';
-$lang['btn_upload']            = 'AugÅ¡upielÄdÄ“t';
-$lang['btn_cancel']            = 'Atlikt';
-$lang['btn_index']             = 'RÄdÄ«tÄjs';
-$lang['btn_secedit']           = 'Labot';
-$lang['btn_login']             = 'Ieiet';
-$lang['btn_logout']            = 'Iziet';
-$lang['btn_admin']             = 'Administrēt';
-$lang['btn_update']            = 'Atjaunot';
-$lang['btn_delete']            = 'Dzēst';
-$lang['btn_back']              = 'Atpakaļ';
-$lang['btn_backlink']          = 'NorÄdes uz lapu';
-$lang['btn_subscribe']         = 'Abonēt izmaiņu paziņojumus';
-$lang['btn_profile']           = 'Labot savu profilu';
-$lang['btn_reset']             = 'Atsaukt izmaiņas';
-$lang['btn_resendpwd']         = 'UzstÄdÄ«t jaunu paroli';
-$lang['btn_draft']             = 'Labot melnrakstu';
-$lang['btn_recover']           = 'Atjaunot melnrakstu';
-$lang['btn_draftdel']          = 'Dzēst melnrakstu';
-$lang['btn_revert']            = 'Atjaunot';
-$lang['btn_register']          = 'Reģistrēties';
-$lang['btn_apply']             = 'Labi';
-$lang['btn_media']             = 'MÄ“diju pÄrvaldnieks';
-$lang['btn_deleteuser']        = 'Dzēst manu kontu';
-$lang['btn_img_backto']        = 'Atpakaļ uz %s';
-$lang['btn_mediaManager']      = 'SkatÄ«t mÄ“diju pÄrvaldniekÄ';
-$lang['loggedinas']            = 'Pieteicies kÄ:';
-$lang['user']                  = 'LietotÄjvÄrds';
-$lang['pass']                  = 'Parole';
-$lang['newpass']               = 'JaunÄ parole';
-$lang['oldpass']               = 'AtkÄrto patreizÄ“jo paroli';
-$lang['passchk']               = 'vēlreiz';
-$lang['remember']              = 'Atceries mani';
-$lang['fullname']              = 'Pilns vÄrds';
-$lang['email']                 = 'E-pasts';
-$lang['profile']               = 'LietotÄja vÄrds';
-$lang['badlogin']              = 'Atvaino, lietotÄjvÄrds vai parole aplama.';
-$lang['badpassconfirm']        = 'Atvaino, aplama parole';
-$lang['minoredit']             = 'Sīki labojumi';
-$lang['draftdate']             = 'Melnraksts automÄtiski saglabÄts';
-$lang['nosecedit']             = 'Lapa pa Å¡o laiku ir mainÄ«jusies, sekcijas informÄcija novecojusi. IelÄdÄ“ta lapas  pilnÄs versija.';
-$lang['regmissing']            = 'Atvaino, jÄaizpilda visas ailes.';
-$lang['reguexists']            = 'Atvaino, tÄds lietotÄjs jau ir.';
-$lang['regsuccess']            = 'LietotÄjs izveidots. Parole nosÅ«tÄ«ta pa pastu.';
-$lang['regsuccess2']           = 'LietotÄjs izveidots.';
-$lang['regfail']               = 'NeizdevÄs izveidot lietotÄju.';
-$lang['regmailfail']           = 'Šķiet, ka ir problēmas nosūtīt pastu. Lūdzu sazinies ar administratoru!';
-$lang['regbadmail']            = 'UzdotÄ epasta adrese izskatÄs aplama. Ja tas nav tiesa, sazinies ar administratoru.';
-$lang['regbadpass']            = 'Abas ierakstÄ«tÄs paroles nav vienÄdas, lÅ«dzu atkÄrto.';
-$lang['regpwmail']             = 'Tava DokuWiki parole';
-$lang['reghere']               = 'Tev vēl nav sava konta? Izveido!';
-$lang['profna']                = 'Labot profilu nav iespējams';
-$lang['profnochange']          = 'Izmaiņu nav. Nav, ko darīt.';
-$lang['profnoempty']           = 'Bez vÄrda vai e-pasta adreses nevar.';
-$lang['profchanged']           = 'Profils veiksmīgi izlabots.';
-$lang['profnodelete']          = 'Å ajÄ viki lietotÄjus izdzÄ“st nevar';
-$lang['profdeleteuser']        = 'Dzēst kontu';
-$lang['profdeleted']           = 'JÅ«su lietotÄja konts ir izdzÄ“sts';
-$lang['profconfdelete']        = 'Es vēlos dzēst savu kontu no viki. <br/> Šo darbību vairs nevarēs atsaukt.';
-$lang['profconfdeletemissing'] = 'Nav atzÄ«mÄ“ta apstiprinÄjuma rÅ«tiņa.';
-$lang['proffail']              = 'NeizdevÄs atjaunot profilu.';
-$lang['pwdforget']             = 'Aizmirsi paroli? Saņem jaunu';
-$lang['resendna']              = 'Paroļu izsÅ«tīšanu nepiedÄvÄju.';
-$lang['resendpwd']             = 'UzstÄdÄ«t jaunu paroli lietotÄjam';
-$lang['resendpwdmissing']      = 'Atvaino, jÄizpilda visas ailes.';
-$lang['resendpwdnouser']       = 'Atvaino, tÄda lietotÄja nav.';
-$lang['resendpwdbadauth']      = 'Atvaino, Å¡is autorizÄcijas kods nav derÄ«gs. PÄrliecinies, ka lietoji pilnu apstiprinÄÅ¡anas adresi.';
-$lang['resendpwdconfirm']      = 'ApstiprinÄÅ¡anas adrese nosÅ«tÄ«ta pa epastu.';
-$lang['resendpwdsuccess']      = 'JaunÄ parole nosÅ«tÄ«ta pa e-pastu.';
-$lang['license']               = 'Ja nav norÄdÄ«ts citÄdi, viki saturs pieejams ar Å¡Ädas licenzes  noteikumiem:';
-$lang['licenseok']             = 'IevÄ“ro: Labojot lapu, tu piekrÄ«ti Å¡Ädiem licenzes noteikumiem.';
-$lang['searchmedia']           = 'MeklÄ“tais faila vÄrds: ';
-$lang['searchmedia_in']        = 'Meklēt iekš %s';
-$lang['txt_upload']            = 'NorÄdi augÅ¡upielÄdÄ“jamo failu:';
-$lang['txt_filename']          = 'Ievadi vikivÄrdu (nav obligÄts):';
-$lang['txt_overwrt']           = 'AizstÄt esoÅ¡o failu';
-$lang['maxuploadsize']         = 'AugÅ¡uplÄdÄ“jamÄ faila ierobežojums: %s.';
-$lang['lockedby']              = 'Patlaban bloķējis :';
-$lang['lockexpire']            = 'Bloķējums beigsies :';
-$lang['js']['willexpire']      = 'Tavs bloÄ·Ä“jums uz Å¡o lapu pÄ“c minÅ«tes beigsies.\nLai izvairÄ«tos no konflikta, nospied IepriekÅ¡apskata pogu\n un bloÄ·Ä“juma laiku sÄks skaitÄ«t no jauna.';
-$lang['js']['notsavedyet']     = 'Veiktas bet nav saglabÄtas izmaiņas.
-Vai tieÅ¡Äm tÄs nevajag?';
-$lang['js']['searchmedia']     = 'Meklēt failus';
-$lang['js']['keepopen']        = 'Pēc faila izvēles logu paturēt atvērtu';
-$lang['js']['hidedetails']     = 'Slēpt detaļas';
-$lang['js']['mediatitle']      = 'Saites īpašības';
-$lang['js']['mediadisplay']    = 'Saites tips';
-$lang['js']['mediaalign']      = 'Slēgums';
-$lang['js']['mediasize']       = 'Attēla izmērs';
-$lang['js']['mediatarget']     = 'Saite ved uz ';
-$lang['js']['mediaclose']      = 'Aizvērt';
-$lang['js']['mediainsert']     = 'Ievietot';
-$lang['js']['mediadisplayimg'] = 'RÄdÄ«t attÄ“lu';
-$lang['js']['mediadisplaylnk'] = 'RÄdÄ«t tikai saiti';
-$lang['js']['mediasmall']      = 'Mazs';
-$lang['js']['mediamedium']     = 'Vidējs';
-$lang['js']['medialarge']      = 'Liels';
-$lang['js']['mediaoriginal']   = 'OriÄ£inÄls';
-$lang['js']['medialnk']        = 'Saite uz detaļÄm';
-$lang['js']['mediadirect']     = 'TieÅ¡a saite uz oriÄ£inÄlu';
-$lang['js']['medianolnk']      = 'Bez saites';
-$lang['js']['medianolink']     = 'Bez saites uz attēlu';
-$lang['js']['medialeft']       = 'kreisais';
-$lang['js']['mediaright']      = 'labais';
-$lang['js']['mediacenter']     = 'centra';
-$lang['js']['medianoalign']    = 'neizlÄ«dzinÄt';
-$lang['js']['nosmblinks']      = 'Saites uz Windows resursiem darbojas tikai Microsoft Internet Explorer.
-Protams, ka vari saiti kopÄ“t un iespraust citÄ programmÄ.';
-$lang['js']['linkwiz']         = 'Saišu vednis';
-$lang['js']['linkto']          = 'Saite uz: ';
-$lang['js']['del_confirm']     = 'Dzēst šo šķirkli?';
-$lang['js']['restore_confirm'] = 'TieÅ¡Äm atjaunot Å¡o versiju';
-$lang['js']['media_diff']      = 'Skatīt atšķirību';
-$lang['js']['media_diff_both'] = 'Blakus';
-$lang['js']['media_diff_opacity'] = 'PÄrklÄti';
-$lang['js']['media_diff_portions'] = 'Pa daļÄm';
-$lang['js']['media_select']    = 'NorÄdÄ«t failus...';
-$lang['js']['media_upload_btn'] = 'AugÅ¡uplÄdÄ“t';
-$lang['js']['media_done_btn']  = 'Gatavs';
-$lang['js']['media_drop']      = 'Nomet te augÅ¡uplÄdÄ“jamos failus';
-$lang['js']['media_cancel']    = 'atlikt';
-$lang['js']['media_overwrt']   = 'RakstÄ«t pÄri esoÅ¡ajiem failiem';
-$lang['rssfailed']             = 'Kļūda saņemot saturu no ';
-$lang['nothingfound']          = 'Nekas nav atrasts.';
-$lang['mediaselect']           = 'Mēdiju faila izvēle';
-$lang['uploadsucc']            = 'VeiksmÄ«gi ielÄdÄ“ts';
-$lang['uploadfail']            = 'IelÄdes kļūme. VarbÅ«t aplamas tiesÄ«bas?';
-$lang['uploadwrong']           = 'IelÄde aizliegta. Neatļauts faila paplaÅ¡inÄjums';
-$lang['uploadexist']           = 'Neko nedarīju, jo fails jau ir.';
-$lang['uploadbadcontent']      = 'AugÅ¡upielÄdÄ“tÄ saturs neatbilst faila paplaÅ¡inÄjumam %s.';
-$lang['uploadspam']            = 'AugÅ¡upielÄde bloÄ·Ä“ta ar melno sarakstu.';
-$lang['uploadxss']             = 'AugÅ¡upielÄde bloÄ·Ä“ta iespÄ“jama slikta satura dēļ.';
-$lang['uploadsize']            = 'AugÅ¡up lÄdÄ“tais fails pÄrÄk liels. Maksimums ir  %s.';
-$lang['deletesucc']            = 'Fails "%s" dzēsts.';
-$lang['deletefail']            = 'Nevar dzÄ“st "%s". PÄrbaudi tiesÄ«bas.';
-$lang['mediainuse']            = 'Fails "%s" nav izdzēsts, to lieto.';
-$lang['namespaces']            = 'Nodaļas';
-$lang['mediafiles']            = 'Pieejamie faili';
-$lang['accessdenied']          = 'Šo lapu nav atļauts skatīt.';
-$lang['mediausage']            = 'Atsaucei uz failu lietot Å¡Ädu sintaksi:';
-$lang['mediaview']             = 'SkatÄ«t oriÄ£inÄlo failu';
-$lang['mediaroot']             = 'sakne';
-$lang['mediaupload']           = 'AugÅ¡upielÄdÄ“t failu patreizÄ“jÄ nodaļÄ. Lai izveidotu apakÅ¡nodaļu, pieraksti to, atdalot ar kolu, pirms augÅ¡upielÄdÄ“jamÄ faila vÄrda.';
-$lang['mediaextchange']        = 'Faila paplaÅ¡inÄjums mainÄ«ts no .%s uz .%s!';
-$lang['reference']             = 'NorÄdes uz failu';
-$lang['ref_inuse']             = 'Failu nevar dzÄ“st, jo izmanto Å¡Ädas lapas:';
-$lang['ref_hidden']            = 'Dažas norÄdes ir lapÄs, ko nav tiesÄ«bu skatÄ«t';
-$lang['hits']                  = 'Apmeklējumi';
-$lang['quickhits']             = 'AtbilstoÅ¡Äs lapas';
-$lang['toc']                   = 'Satura rÄdÄ«tÄjs';
-$lang['current']               = 'patlaban';
-$lang['yours']                 = 'Tava versija';
-$lang['diff']                  = 'atšķirības no patreizējas versijas';
-$lang['diff2']                 = 'norÄdÄ«to versiju atšķirÄ«bas';
-$lang['difflink']              = 'Saite uz salÄ«dzinÄÅ¡anas skatu.';
-$lang['diff_type']             = 'Skatīt atšķirības:';
-$lang['diff_inline']           = 'Iekļauti';
-$lang['diff_side']             = 'Blakus';
-$lang['diffprevrev']           = 'IepriekšējÄ versija';
-$lang['diffnextrev']           = 'NÄkamÄ versija';
-$lang['difflastrev']           = 'JaunÄkÄ versija';
-$lang['diffbothprevrev']       = 'AbÄs pusÄ“s iepriekšējo versiju';
-$lang['diffbothnextrev']       = 'AbÄs pusÄ“s nÄkamo versiju';
-$lang['line']                  = 'Rinda';
-$lang['breadcrumb']            = 'Apmeklēts:';
-$lang['youarehere']            = 'Tu atrodies šeit:';
-$lang['lastmod']               = 'Labota:';
-$lang['by']                    = ', labojis';
-$lang['deleted']               = 'dzēsts';
-$lang['created']               = 'izveidots';
-$lang['restored']              = 'vecÄ versija atjaunota (%s)';
-$lang['external_edit']         = 'ÄrpussistÄ“mas labojums';
-$lang['summary']               = 'AnotÄcija';
-$lang['noflash']               = 'Lai attēlotu lapas saturu, vajag <a href="http://www.adobe.com/products/flashplayer/">Adobe Flash Plugin</a>.';
-$lang['download']              = 'LejuplÄdÄ“t «kodiņu»((snippet))';
-$lang['tools']                 = 'Rīki';
-$lang['user_tools']            = 'LietotÄja rÄ«ki';
-$lang['site_tools']            = 'Vietnes rīki';
-$lang['page_tools']            = 'Lapas rīki';
-$lang['skip_to_content']       = 'uz rakstu';
-$lang['sidebar']               = 'Izvēlne';
-$lang['mail_newpage']          = 'lapa pievienota:';
-$lang['mail_changed']          = 'lapa mainīta:';
-$lang['mail_subscribe_list']   = 'NodaÄ¼Ä mainÄ«tÄs lapas:';
-$lang['mail_new_user']         = 'Jauns lietotÄjs:';
-$lang['mail_upload']           = 'augÅ¡upielÄdÄ“tais fails:';
-$lang['changes_type']          = 'Skatīt izmaiņas';
-$lang['pages_changes']         = 'LapÄs';
-$lang['media_changes']         = 'Mēdiju failos';
-$lang['both_changes']          = 'Gan lapÄs, gan mÄ“diju failos';
-$lang['qb_bold']               = 'TrekninÄjums';
-$lang['qb_italic']             = 'Kursīvs';
-$lang['qb_underl']             = 'Pasvītrojums';
-$lang['qb_code']               = 'Vienplatuma burti';
-$lang['qb_strike']             = 'PÄrsvÄ«trots teksts';
-$lang['qb_h1']                 = '1. līmeņa virsraksts';
-$lang['qb_h2']                 = '2. līmeņa virsraksts';
-$lang['qb_h3']                 = '3. līmeņa virsraksts';
-$lang['qb_h4']                 = '4. līmeņa virsraksts';
-$lang['qb_h5']                 = '5. līmeņa virsraksts';
-$lang['qb_h']                  = 'Virsraksts';
-$lang['qb_hs']                 = 'Izraudzīties virsrakstu';
-$lang['qb_hplus']              = 'LielÄks virsraksts';
-$lang['qb_hminus']             = 'MazÄks virsraksts';
-$lang['qb_hequal']             = 'TÄds pats virsraksts';
-$lang['qb_link']               = 'Iekšēja saite';
-$lang['qb_extlink']            = 'Ārēja saite';
-$lang['qb_hr']                 = 'HorizontÄla lÄ«nija';
-$lang['qb_ol']                 = 'Numurēts saraksts';
-$lang['qb_ul']                 = 'Nenumurēts saraksts';
-$lang['qb_media']              = 'Pielikt attēlus un citus failus.';
-$lang['qb_sig']                = 'Ievietot parakstu';
-$lang['qb_smileys']            = 'Emotikoni';
-$lang['qb_chars']              = 'ĪpaÅ¡Äs zÄ«mes';
-$lang['upperns']               = 'vienu nodaļu lÄ«meni augstÄk';
-$lang['metaedit']              = 'Labot metadatus';
-$lang['metasaveerr']           = 'Metadati nav saglabÄti';
-$lang['metasaveok']            = 'Metadati saglabÄti';
-$lang['img_title']             = 'Virsraksts:';
-$lang['img_caption']           = 'Apraksts:';
-$lang['img_date']              = 'Datums:';
-$lang['img_fname']             = 'Faila vÄrds:';
-$lang['img_fsize']             = 'Izmērs:';
-$lang['img_artist']            = 'FotogrÄfs:';
-$lang['img_copyr']             = 'Autortiesības:';
-$lang['img_format']            = 'FormÄts:';
-$lang['img_camera']            = 'FotoaparÄts:';
-$lang['img_keywords']          = 'AtslÄ“gvÄrdi:';
-$lang['img_width']             = 'Platums:';
-$lang['img_height']            = 'Augstums:';
-$lang['subscr_subscribe_success'] = '%s pievienots %s abonēšanas sarakstam';
-$lang['subscr_subscribe_error'] = 'Kļūme pievienojot %s %s abonēšanas sarakstam.';
-$lang['subscr_subscribe_noaddress'] = 'Nav zinÄma jÅ«su e-pasta adrese, tÄpÄ“c nevarat abonÄ“t.';
-$lang['subscr_unsubscribe_success'] = '%s abonements uz %s atsaukts';
-$lang['subscr_unsubscribe_error'] = 'Kļūme svītrojot %s no %s abonēšanas saraksta';
-$lang['subscr_already_subscribed'] = '%s jau abonē %s';
-$lang['subscr_not_subscribed'] = '%s neabonē %s';
-$lang['subscr_m_not_subscribed'] = 'Šī lapa vai nodaļa nav abonēta';
-$lang['subscr_m_new_header']   = 'Pievienot abonementu';
-$lang['subscr_m_current_header'] = 'Patlaban ir abonēts';
-$lang['subscr_m_unsubscribe']  = 'Atteikties no abonēšanas';
-$lang['subscr_m_subscribe']    = 'Abonēt';
-$lang['subscr_m_receive']      = 'Saņemt';
-$lang['subscr_style_every']    = 'vēstuli par katru izmaiņu';
-$lang['subscr_style_digest']   = 'kopsavilkumu par katru lapu (reizi %.2f dienÄs)';
-$lang['subscr_style_list']     = 'kopÅ¡ pÄ“dÄ“jÄs vÄ“stules notikuÅ¡o labojumu sarakstu (reizi %.2f dienÄs)';
-$lang['authtempfail']          = 'LietotÄju autentifikÄcija paÅ¡laik nedarbojas. Ja tas turpinÄs ilgstoÅ¡i, lÅ«duz ziņo Wiki administratoram.';
-$lang['i_chooselang']          = 'Izvēlies valodu';
-$lang['i_installer']           = 'DokuWiki instalÄ“tÄjs';
-$lang['i_wikiname']            = 'Wiki vÄrds';
-$lang['i_enableacl']           = 'Lietot ACL (ieteikts)';
-$lang['i_superuser']           = 'Superuser';
-$lang['i_problems']            = 'InstalÄ“tÄjs atrada zemÄk minÄ“tÄs problÄ“mas. KamÄ“r tÄs nenovÄ“rÅ¡, nav iespÄ“jam turpinÄt.';
-$lang['i_modified']            = 'Drošības nolÅ«kos Å¡is skripts darbosies tika ar jaunu nemodificÄ“tu Dokuwiki instalÄciju.
-Vai nu no jauna jÄatarhivÄ“ faili no lejupielÄdÄ“tÄs pakas vai jÄraugÄs pÄ“c padoma pilnÄ Dokuwiki instalÄcijas instrukcijÄ <a href="http://dokuwiki.org/install"></a>';
-$lang['i_funcna']              = 'PHP funkcija <code>%s</code> nav pieejama. VarbÅ«t jÅ«su servera Ä«paÅ¡nieks to kÄda iemesla dēļ atslÄ“dzis?';
-$lang['i_phpver']              = 'JÅ«su PHP versija <code>%s</code> ir par vecu. Vajag versiju <code>%s</code>. Atjaunojiet savu PHP instalÄciju.';
-$lang['i_mbfuncoverload']      = 'Lai darbinÄtu  DokuWiki,  php.ini failÄ ir jÄatspÄ“jo mbstring.func_overload.';
-$lang['i_permfail']            = 'Dokuwiki nevar ierakstÄ«t <code>%s</code>. JÄlabo direktorijas tiesÄ«bas!';
-$lang['i_confexists']          = '<code>%s</code> jau ir';
-$lang['i_writeerr']            = 'Nevar izveidot <code>%s</code>. JÄpÄrbauda direktorijas/faila tiesÄ«bas un fails jÄizveido paÅ¡am.';
-$lang['i_badhash']             = 'nepazīstams vai izmainīts dokuwiki.php fails (hash=<code>%s</code>)';
-$lang['i_badval']              = '<code>%s</code> - neatļauta vai tukša vērtība';
-$lang['i_success']             = 'Konfigurēšana veiksmÄ«gi pabeigta. Tagad vari nodzÄ“st failu install.php. TÄlÄk turpini <a href="doku.php?id=wiki:welcome">savÄ jaunajÄ DokuWiki</a>.';
-$lang['i_failure']             = 'Rakstot konfigurÄcijas failu, gadÄ«jÄs dažas kļūmes. Pirms lieto <a href="doku.php?id=wiki:welcome">savu jauno DokuWiki</a>, tÄs varbÅ«t jÄizlabo.';
-$lang['i_policy']              = 'SÄkotnÄ“jÄ ACL politika';
-$lang['i_pol0']                = 'AtvÄ“rts Wiki (raksta, lasa un augÅ¡upielÄdÄ“ ikviens)';
-$lang['i_pol1']                = 'Publisks Wiki (lasa ikviens, raksta un augÅ¡upielÄdÄ“ reÄ£istrÄ“ti lietotÄji)';
-$lang['i_pol2']                = 'SlÄ“gts Wiki (raksta, lasa un augÅ¡upielÄdÄ“ tikai reÄ£istrÄ“ti lietotÄji)';
-$lang['i_allowreg']            = 'Atļaut lietotÄjiem reÄ£istrÄ“ties.';
-$lang['i_retry']               = 'AtkÄrtot';
-$lang['i_license']             = 'Ar kÄdu licenci saturs tiks publicÄ“ts:';
-$lang['i_license_none']        = 'NerÄdÄ«t nekÄdu licences informÄciju';
-$lang['i_pop_field']           = 'Lūdzu palīdziet uzlabot DokuWiki';
-$lang['i_pop_label']           = 'Rezi mÄ“nesÄ« nosÅ«tÄ«t DokuWiki izstrÄdÄtÄjiem anonÄ«mus lietoÅ¡anas datus.';
-$lang['recent_global']         = 'Tu skati izmaiņas nodaÄ¼Ä <b>%s</b>. Ir iespÄ“jams <a href="%s">skatÄ«t jaunÄkos grozÄ«jums visÄ viki</a>. ';
-$lang['years']                 = 'pirms %d gadiem';
-$lang['months']                = 'pirms %d mēnešiem';
-$lang['weeks']                 = 'pirms %d nedēļÄm';
-$lang['days']                  = 'pirms %d  dienÄm';
-$lang['hours']                 = 'pirms %d stundÄm';
-$lang['minutes']               = 'pirms %d minūtēm';
-$lang['seconds']               = 'pirms %d sekundēm';
-$lang['wordblock']             = 'GrozÄ«jumus nevarÄ“ju saglabÄt, jo tie satur aizliegto vÄrdu (spamu).';
-$lang['media_uploadtab']       = 'AugÅ¡uplÄdÄ“t';
-$lang['media_searchtab']       = 'Meklēt';
-$lang['media_file']            = 'Fails';
-$lang['media_viewtab']         = 'Skatīt';
-$lang['media_edittab']         = 'Labot';
-$lang['media_historytab']      = 'Vēsture';
-$lang['media_list_thumbs']     = 'Sīktēli';
-$lang['media_list_rows']       = 'Rindas';
-$lang['media_sort_name']       = 'Nosaukums';
-$lang['media_sort_date']       = 'Datums';
-$lang['media_namespaces']      = 'NorÄdÄ«t nodaļu';
-$lang['media_files']           = 'Faili nodaÄ¼Ä %s';
-$lang['media_upload']          = 'AugÅ¡uplÄdÄ“t nodaÄ¼Ä %s';
-$lang['media_search']          = 'MeklÄ“t nodaÄ¼Ä %s';
-$lang['media_view']            = '%s';
-$lang['media_viewold']         = '%s nodaÄ¼Ä %s';
-$lang['media_edit']            = 'Labot %s';
-$lang['media_history']         = '%s vēsture';
-$lang['media_meta_edited']     = 'metadati laboti';
-$lang['media_perm_read']       = 'Atvainojiet, jums nav tiesību skatīt failus. ';
-$lang['media_perm_upload']     = 'Atvainojiet, jums nav tiesÄ«bu augÅ¡upielÄdÄ“t. ';
-$lang['media_update']          = 'AugÅ¡upielÄdÄ“t jaunu versiju';
-$lang['media_restore']         = 'Atjaunot šo versiju';
-$lang['currentns']             = 'PaÅ¡reizÄ“jÄ sadaļa';
-$lang['searchresult']          = 'Meklēšanas rezultÄti';
-$lang['plainhtml']             = 'Tīrs HTML';
-$lang['wikimarkup']            = 'Viki iezīmēšana valoda';
-$lang['email_signature_text']  = 'Vēstuli nosūtījusi DokuWiki programma no
-@DOKUWIKIURL@';
diff --git a/wiki/inc/lang/lv/locked.txt b/wiki/inc/lang/lv/locked.txt
deleted file mode 100644
index 7d57ce9..0000000
--- a/wiki/inc/lang/lv/locked.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== Lapa aizņemta ======
-
-Lapa aizņemta, to patlaban labo cits lietotÄjs. Tev ir jÄgaida, kamÄ“r to pabeigs labot vai arÄ« iztecÄ“s labotÄjam atvÄ“lÄ“tais laiks.
-
-
diff --git a/wiki/inc/lang/lv/login.txt b/wiki/inc/lang/lv/login.txt
deleted file mode 100644
index a98d21d..0000000
--- a/wiki/inc/lang/lv/login.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Login ======
-Tu neesi ielogojies! Ievadi savu lietotÄjvÄrdu un paroli. PÄrlÅ«kprogrammai jÄpieņem //cookies//.
-
diff --git a/wiki/inc/lang/lv/mailtext.txt b/wiki/inc/lang/lv/mailtext.txt
deleted file mode 100644
index 8316003..0000000
--- a/wiki/inc/lang/lv/mailtext.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-TavÄ DokuWiki pievienota vai labota lapa. Å eit ir sÄ«kÄkas ziņas:
-
-Datums       : @DATE@
-PÄrlÅ«ks      : @BROWSER@
-IP adrese    : @IPADDRESS@
-Dators       : @HOSTNAME@
-VecÄ versija : @OLDPAGE@
-JaunÄ versija: @NEWPAGE@
-AnotÄcija    : @SUMMARY@
-LietotÄjs    : @USER@
-
-@DIFF@
diff --git a/wiki/inc/lang/lv/mailwrap.html b/wiki/inc/lang/lv/mailwrap.html
deleted file mode 100644
index d257190..0000000
--- a/wiki/inc/lang/lv/mailwrap.html
+++ /dev/null
@@ -1,13 +0,0 @@
-<html>
-<head>
-<title>@TITLE@</title>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-</head>
-<body>
-
-@HTMLBODY@
-
-<br /><hr />
-<small>@EMAILSIGNATURE@</small>
-</body>
-</html>
\ No newline at end of file
diff --git a/wiki/inc/lang/lv/newpage.txt b/wiki/inc/lang/lv/newpage.txt
deleted file mode 100644
index a4a05fd..0000000
--- a/wiki/inc/lang/lv/newpage.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== Šķirklis vēl nav izveidots ======
-
-Tu izvēlējies saiti uz vēl neizveidotu šķirkli. Ja tiesības ļauj, vari to izveidot, uzklikšķinot uz pogas ''Izveidot lapu''.
-
-
diff --git a/wiki/inc/lang/lv/norev.txt b/wiki/inc/lang/lv/norev.txt
deleted file mode 100644
index b7c4624..0000000
--- a/wiki/inc/lang/lv/norev.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== Nav Å¡Ädas versijas ======
-
-NorÄdÄ«tÄs lapas versijas nav. Lieto pogu ''VecÄs versijas'', lai redzÄ“tu dokumenta veco versiju sarakstu.
-
-
diff --git a/wiki/inc/lang/lv/password.txt b/wiki/inc/lang/lv/password.txt
deleted file mode 100644
index 7cd7d8b..0000000
--- a/wiki/inc/lang/lv/password.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-Sveiki, @FULLNAME@!
-
-Tavi  dati @TITLE@ lapÄm uz servera @DOKUWIKIURL@ ir
-
-LietotÄjvÄrds:  @LOGIN@
-Parole:  @PASSWORD@
diff --git a/wiki/inc/lang/lv/preview.txt b/wiki/inc/lang/lv/preview.txt
deleted file mode 100644
index c3d618a..0000000
--- a/wiki/inc/lang/lv/preview.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== Priekšskats ======
-
-Tavs teksts izskatÄ«sies Å¡Ädi. IevÄ“ro, tas vÄ“l **nav saglabÄts** !
-
-
diff --git a/wiki/inc/lang/lv/pwconfirm.txt b/wiki/inc/lang/lv/pwconfirm.txt
deleted file mode 100644
index 62c8bed..0000000
--- a/wiki/inc/lang/lv/pwconfirm.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-Sveiki, @FULLNAME@!
-
-KÄds pieprasÄ«jis jaunu paroli tavam @TITLE@ kontam
-@DOKUWIKIURL@ sistÄ“mÄ.
-
-Ja paroli neesi prasījis, ignorē šo vēstuli.
-
-Lai apstiprinÄtu, ka esi paroli pieprasÄ«jis  lieto norÄdÄ«to saiti.
-
-@CONFIRM@
diff --git a/wiki/inc/lang/lv/read.txt b/wiki/inc/lang/lv/read.txt
deleted file mode 100644
index 876e53c..0000000
--- a/wiki/inc/lang/lv/read.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-Å Ä« lapa ir tikai lasÄma. Vari apskatÄ«t izejas kodu, bet nevari to mainÄ«t. Ja domÄ, ka tas nav pareizi, vaicÄ administratoram.
-
-
-
diff --git a/wiki/inc/lang/lv/recent.txt b/wiki/inc/lang/lv/recent.txt
deleted file mode 100644
index 70cf1aa..0000000
--- a/wiki/inc/lang/lv/recent.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-====== JaunÄkie grozÄ«jumi ======
-
-JaunÄkie labojumi ir:
-
-
-
-
-
diff --git a/wiki/inc/lang/lv/register.txt b/wiki/inc/lang/lv/register.txt
deleted file mode 100644
index 5e6477d..0000000
--- a/wiki/inc/lang/lv/register.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Jauna lietotÄja reÄ£istrÄcija ======
-
-Lai izveidotu jaunu kontu, aizpildi visas prasÄ«tÄs ailes. PÄrliecinies, ka uzdod **derÄ«gu pasta adresi**, jo jauno paroli tev nosÅ«tÄ«s pa pastu. LietotÄjvÄrdam jÄatbilst [[doku>pagename|wiki vÄrdu nosacÄ«jumiem]].
-
diff --git a/wiki/inc/lang/lv/registermail.txt b/wiki/inc/lang/lv/registermail.txt
deleted file mode 100644
index 2a2084c..0000000
--- a/wiki/inc/lang/lv/registermail.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-ReÄ£istrÄ“ts jauns lietotÄjs. TÄ dati:
-
-LietotÄjvÄrds : @NEWUSER@
-Pilns vÄrds   : @NEWNAME@
-E-pasts       : @NEWEMAIL@
-
-Datums      : @DATE@
-PÄrlÅ«ks     : @BROWSER@
-IP aderese  : @IPADDRESS@
-Datora vÄrds: @HOSTNAME@
diff --git a/wiki/inc/lang/lv/resendpwd.txt b/wiki/inc/lang/lv/resendpwd.txt
deleted file mode 100644
index 3f4597a..0000000
--- a/wiki/inc/lang/lv/resendpwd.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Nosūtīt jaunu paroli ======
-
-Azipildi zemÄk prasÄ«to, lai saņemtu savam kontam jaunu paroli. Jauno paroli nosÅ«tÄ«s uz reÄ£istrÄ“to e-pasta adresi. LietotÄja vÄrdam jÄbÅ«t tavam //wiki sistÄ“mas// lietotÄjavÄrdam.
diff --git a/wiki/inc/lang/lv/resetpwd.txt b/wiki/inc/lang/lv/resetpwd.txt
deleted file mode 100644
index 757f34c..0000000
--- a/wiki/inc/lang/lv/resetpwd.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== UzstÄdÄ«t jaunu paroli ======
-
-Lūdzu izvēlies savam kontam jaunu paroli.
\ No newline at end of file
diff --git a/wiki/inc/lang/lv/revisions.txt b/wiki/inc/lang/lv/revisions.txt
deleted file mode 100644
index 51ad849..0000000
--- a/wiki/inc/lang/lv/revisions.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== VecÄs versijas ======
-
-Dokumentam ir Å¡Ädas vecÄs versijas. Lai atgrieztos pie vecÄ varianta, izvÄ“lies to no saraksta,  uzklikšķini uz "Labot Å¡o lapu" un saglabÄ to.
-
-
diff --git a/wiki/inc/lang/lv/searchpage.txt b/wiki/inc/lang/lv/searchpage.txt
deleted file mode 100644
index a4b5aae..0000000
--- a/wiki/inc/lang/lv/searchpage.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Meklēšana ======
-
-Te vari redzÄ“t meklēšanas rezultÄtus. @CREATEPAGEINFO@
-
diff --git a/wiki/inc/lang/lv/showrev.txt b/wiki/inc/lang/lv/showrev.txt
deleted file mode 100644
index 7d5c0fa..0000000
--- a/wiki/inc/lang/lv/showrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**Å Ä« ir veca dokumenta versija!**
-----
diff --git a/wiki/inc/lang/lv/stopwords.txt b/wiki/inc/lang/lv/stopwords.txt
deleted file mode 100644
index 846c869..0000000
--- a/wiki/inc/lang/lv/stopwords.txt
+++ /dev/null
@@ -1,48 +0,0 @@
-# Å is ir to vÄrdu sarakstus, kurus indeksÄ“tÄjs neņem vÄ“rÄ. Katru vÄrdu savÄ rindÄ!
-# Labojot failu ievÄ“ro, ja jÄlieto UNIX rindu aplauzumi (single newline)
-# Nevajag likt sarakstÄ par 3 burtiem Ä«sÄkus vÄrdus, tos tÄ pat neņem vÄ“rÄ
-# Angļu valodai saraksts ņemts no http://www.ranks.nl/stopwords/
-gar
-par
-pÄr
-pret
-starp
-caur
-uz
-aiz
-apakš
-bez
-iz
-kopš
-no
-pēc
-pie
-pirms
-priekš
-uz
-virs
-zem
-apakšpus
-Ärpus
-augšpus
-iekšpus
-lejpus
-otrpus
-šaipus
-viņpus
-virspus
-dēļ
-labad
-pēc 
-līdz 
-pa
-vai
-jÄ
-nē
-kaut 
-nav
-itin
-jo 
-taÄu
-
-
diff --git a/wiki/inc/lang/lv/subscr_digest.txt b/wiki/inc/lang/lv/subscr_digest.txt
deleted file mode 100644
index fb24a31..0000000
--- a/wiki/inc/lang/lv/subscr_digest.txt
+++ /dev/null
@@ -1,15 +0,0 @@
-Labdien!
-
-@TITLE@ viki nodaÄ¼Ä @PAGE@ ir mainÄ«juÅ¡Äs Å¡adas lapas:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-VecÄ versija: @OLDPAGE@
-JaunÄ versija: @NEWPAGE@
-
-Lai atceltu izmaiņu paziņošanu, ielogojieties
-@DOKUWIKIURL@, apmeklējiet
-@SUBSCRIBE@
-un atsakieties no lapas vai nodaļas izmaiņu paziņojumiem .
diff --git a/wiki/inc/lang/lv/subscr_form.txt b/wiki/inc/lang/lv/subscr_form.txt
deleted file mode 100644
index 9e3145f..0000000
--- a/wiki/inc/lang/lv/subscr_form.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Abonementu pÄrvaldnieks ======
-
-Te varat mainīt savu lapas vai nodaļas abonementu.
\ No newline at end of file
diff --git a/wiki/inc/lang/lv/subscr_list.txt b/wiki/inc/lang/lv/subscr_list.txt
deleted file mode 100644
index 9c0ecf8..0000000
--- a/wiki/inc/lang/lv/subscr_list.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-Labdien!
-
-@TITLE@ viki nodaÄ¼Ä @PAGE@ ir mainÄ«juÅ¡Äs Å¡adas lapas:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-Lai atceltu izmaiņu paziņošanu, ielogojieties
-@DOKUWIKIURL@, apmeklējiet
-@SUBSCRIBE@
-un atsakieties no lapas vai nodaļas izmaiņu paziņojumiem .
diff --git a/wiki/inc/lang/lv/subscr_single.txt b/wiki/inc/lang/lv/subscr_single.txt
deleted file mode 100644
index b5b05d3..0000000
--- a/wiki/inc/lang/lv/subscr_single.txt
+++ /dev/null
@@ -1,19 +0,0 @@
-Labdien!
-
-@TITLE@ viki nodaÄ¼Ä @PAGE@ ir mainÄ«juÅ¡Äs Å¡adas lapas:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-Datums : @DATE@
-LietotÄjs : @USER@
-Izmaiņu anotÄcija: @SUMMARY@
-VecÄ versija: @OLDPAGE@
-JaunÄ versija: @NEWPAGE@
-
-
-Lai atceltu izmaiņu paziņošanu, ielogojieties
-@DOKUWIKIURL@, apmeklējiet
-@SUBSCRIBE@
-un atsakieties no lapas vai nodaļas izmaiņu paziņojumiem .
diff --git a/wiki/inc/lang/lv/updateprofile.txt b/wiki/inc/lang/lv/updateprofile.txt
deleted file mode 100644
index 12fbd8d..0000000
--- a/wiki/inc/lang/lv/updateprofile.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-====== Atjaunot sava konta datus ======
-
-JÄaizpilda tikai tie lauki, kuru saturu vÄ“lies mainÄ«t.  Nav iespÄ“jams mainÄ«t savu lietotÄjvÄrdu.
-
-
-
-
-
diff --git a/wiki/inc/lang/lv/uploadmail.txt b/wiki/inc/lang/lv/uploadmail.txt
deleted file mode 100644
index 8d664d6..0000000
--- a/wiki/inc/lang/lv/uploadmail.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-Fails augÅ¡upielÄdÄ“ts DokuWiki. SÄ«kÄkas ziņas:
-
-Fails         : @MEDIA@
-Datums        : @DATE@
-PÄrlÅ«ks       : @BROWSER@
-IP adrese     : @IPADDRESS@
-Datora vÄrds  : @HOSTNAME@
-Izmērs        : @SIZE@
-MIME tips     : @MIME@
-LietotÄjs     : @USER@
diff --git a/wiki/inc/lang/mg/admin.txt b/wiki/inc/lang/mg/admin.txt
deleted file mode 100644
index 2c4fc3f..0000000
--- a/wiki/inc/lang/mg/admin.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Administration ======
-
-Hitanao eo ambany lisitry ny asa fanaovana admin misy amin'ny DokuWiki.
-
diff --git a/wiki/inc/lang/mg/backlinks.txt b/wiki/inc/lang/mg/backlinks.txt
deleted file mode 100644
index c625e65..0000000
--- a/wiki/inc/lang/mg/backlinks.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== Verindrohy ======
-
-Lisitr'ireo pejy misy rohy manondro amin'ity pejy ity.
-
-
diff --git a/wiki/inc/lang/mg/conflict.txt b/wiki/inc/lang/mg/conflict.txt
deleted file mode 100644
index 96b369e..0000000
--- a/wiki/inc/lang/mg/conflict.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-====== A newer version exists ======
-
-Efa misy kinova vaovao ny tahirin-kevitra novainao. Rehefa misy olona hafa nanova koa nandritra anao nanova no mitranga ny toy izao.
-
-Jereo ny tsy fitoviany miseho etsy ambany ireo, avy eo safidio izay kinova tianao hotazonina. Raha misafidy ny bokotra ''Raketo'' ianao, dia ny nataonao no horaketina. Ny bokotra ''Aoka ihany'' tsindriana raha hitazonana izay kinova misy ao.
-
diff --git a/wiki/inc/lang/mg/denied.txt b/wiki/inc/lang/mg/denied.txt
deleted file mode 100644
index d6d2b81..0000000
--- a/wiki/inc/lang/mg/denied.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Tsy tafiditra ======
-
-Miala tsiny fa tsy manana alalana hanohizana mankany ianao.
-
diff --git a/wiki/inc/lang/mg/diff.txt b/wiki/inc/lang/mg/diff.txt
deleted file mode 100644
index 8d7d69b..0000000
--- a/wiki/inc/lang/mg/diff.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Tsy fitoviana ======
-
-Ireto ny maha-samihafa ny kinova nosafidiana sy ny kinovan'ny pejy amin'izao.
-
diff --git a/wiki/inc/lang/mg/edit.txt b/wiki/inc/lang/mg/edit.txt
deleted file mode 100644
index 2cde9de..0000000
--- a/wiki/inc/lang/mg/edit.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-Rehefa avy manova ny pejy dia tsindrio ny bokotra ''Raketo''. Jereo ny [[wiki:syntax]] misy ny fomba fanoratana. Raha misy zavatra tianao handramana dia ianaro ao amin'ny [[wiki:playground]].
-
diff --git a/wiki/inc/lang/mg/editrev.txt b/wiki/inc/lang/mg/editrev.txt
deleted file mode 100644
index a6ff5ba..0000000
--- a/wiki/inc/lang/mg/editrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**Kinovan'ny pejy taloha no nosokafanao!** Raha raketinao io, dia hanamboatra kinova vaovao miaraka amin'io ianao.
-----
\ No newline at end of file
diff --git a/wiki/inc/lang/mg/index.txt b/wiki/inc/lang/mg/index.txt
deleted file mode 100644
index 614fd64..0000000
--- a/wiki/inc/lang/mg/index.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Index ======
-
-Ity misy index mahasarona ireo pejy misy milahatra arakaraka ny [[doku>namespaces|namespaces]].
-
diff --git a/wiki/inc/lang/mg/lang.php b/wiki/inc/lang/mg/lang.php
deleted file mode 100644
index aea3942..0000000
--- a/wiki/inc/lang/mg/lang.php
+++ /dev/null
@@ -1,119 +0,0 @@
-<?php
-/**
- * mg language file
- */
-$lang['encoding']   = 'utf-8';
-$lang['direction']  = 'ltr';
-
-$lang['btn_edit']   = 'Hanova ny pejy';
-$lang['btn_source'] = 'Asehoy ny source';
-$lang['btn_show']   = 'Asehoy ny pejy';
-$lang['btn_create'] = 'Amboary ity pejy';
-$lang['btn_search'] = 'Hikaroka';
-$lang['btn_save']   = 'Raketo';
-$lang['btn_preview']= 'Topi-maso';
-$lang['btn_top']    = 'Ho ery ambony';
-$lang['btn_newer']  = '<< taloha kokoa';
-$lang['btn_older']  = 'taoriana kokoa >>';
-$lang['btn_revs']   = 'Kinova taloha';
-$lang['btn_recent'] = 'Fiovana farany';
-$lang['btn_upload'] = 'Alefaso';
-$lang['btn_cancel'] = 'Aoka ihany';
-$lang['btn_index']  = 'Index';
-$lang['btn_secedit']= 'Edit';
-$lang['btn_login']  = 'Hiditra';
-$lang['btn_logout'] = 'Hivoaka';
-$lang['btn_admin']  = 'Admin';
-$lang['btn_update'] = 'Update';
-$lang['btn_delete'] = 'Fafao';
-$lang['btn_back']   = 'Miverina';
-$lang['btn_register'] = 'Hisoratra';
-
-$lang['loggedinas'] = 'Anaranao:';
-$lang['user']       = 'Anarana';
-$lang['pass']       = 'Alahidy';
-$lang['passchk']    = 'Ataovy indray';
-$lang['remember']   = 'Tsarovy';
-$lang['fullname']   = 'Anarana feno';
-$lang['email']      = 'Imailaka';
-$lang['badlogin']   = 'Miala tsiny fa misy diso ny anarana na ny alahidy.';
-
-$lang['regmissing'] = 'Tsy maintsy fenoina ny saha rehetra.';
-$lang['reguexists'] = 'Indrisy fa efa nisy namandrika io anarana io.';
-$lang['regsuccess'] = 'Voaforona ny kaontinao, halefa any imailaka ny alahidy.';
-$lang['regsuccess2']= 'Voaforona ilay kaonty.';
-$lang['regmailfail']= 'Ohatra ny nisy olana ny nandefasana imailaka. Miangavy anao hilaza ny Admin!';
-$lang['regbadmail'] = 'Toa tsy mandeha ny imailaka nomenao - Raha heverinao fa erreur io dia ilazao ny admin';
-$lang['regbadpass'] = 'Tsy mitovy ny alahidy roa nomenao, avereno indray.';
-$lang['regpwmail']  = 'Ny alahidy Wiki-nao';
-$lang['reghere']    = 'Mbola tsy manana kaonty ianao? Manaova vaovao';
-
-$lang['txt_upload']   = 'Misafidiana rakitra halefa:';
-$lang['txt_filename'] = 'Ampidiro ny anaran\'ny wiki (tsy voatery):';
-$lang['txt_overwrt']  = 'Fafana izay rakitra efa misy?';
-$lang['lockedby']     = 'Mbola voahidin\'i:';
-$lang['lockexpire']   = 'Afaka ny hidy amin\'ny:';
-$lang['js']['willexpire']   = 'Efa ho lany fotoana afaka iray minitra ny hidy ahafahanao manova ny pejy.\nMba hialana amin\'ny conflit dia ampiasao ny bokotra topi-maso hamerenana ny timer-n\'ny hidy.';
-
-$lang['js']['notsavedyet'] = 'Misy fiovana tsy voarakitra, ho very izany ireo.\nAzo antoka fa hotohizana?';
-$lang['rssfailed']   = 'An error occured while fetching this feed: ';
-$lang['nothingfound']= 'Tsy nahitana n\'inon\'inona.';
-
-$lang['mediaselect'] = 'Safidy rakitra Media';
-$lang['uploadsucc']  = 'Voalefa soa aman-tsara';
-$lang['uploadfail']  = 'Tsy lasa ilay izy. Mety tsy fananana alalana?';
-$lang['uploadwrong'] = 'Nolavina ny lefa. Voarara io extension-na rakitra io!';
-$lang['uploadexist'] = 'Efa misy ilay rakitra. Tsy nisy inona natao.';
-$lang['deletesucc']  = 'Voafafa ny rakitra "%s" .';
-$lang['deletefail']  = 'Tsy afaka nofafana ny "%s" - Hamarino ny alalana.';
-$lang['mediainuse']  = 'Tsy voafafa ny rakitra "%s" - mbola misy mampiasa io.';
-$lang['namespaces']  = 'Namespaces';
-$lang['mediafiles']  = 'Rakitra misy amin\'ny';
-
-$lang['reference']   = 'References for';
-$lang['ref_inuse']   = 'Tsy afaka fafana io rakitra io, satria mbola ampiasain\'ireto pejy ireto:';
-$lang['ref_hidden']  = 'Misy references  vitsivitsy amina pejy tsy anananao alalana hamaky';
-
-$lang['hits']       = 'Hits';
-$lang['quickhits']  = 'Anaram-pejy mifanaraka';
-$lang['toc']        = 'Fizahan-takila';
-$lang['current']    = 'current';
-$lang['yours']      = 'Kinova-nao';
-$lang['diff']       = 'Asehoy ny tsy fitoviana amin\'ny kinova amin\'izao';
-$lang['line']       = 'Andalana';
-$lang['breadcrumb'] = 'Taiza ianao:';
-$lang['lastmod']    = 'Novaina farany:';
-$lang['by']         = '/';
-$lang['deleted']    = 'voafafa';
-$lang['created']    = 'Voamboatra';
-$lang['restored']   = 'Naverina tamin\'ny kinova taloha (%s)';
-$lang['summary']    = 'Fanovana teo';
-
-$lang['mail_newpage'] = 'pejy niampy:';
-$lang['mail_changed'] = 'pejy niova:';
-
-$lang['js']['nosmblinks'] = "rohy mankamin\'ny fizarana Windows dia amin\'ny Microsoft Internet Explorer ihany no miasa.\nAzo atao ihany anefa ny manao dika-petaka ny rohy.";
-
-$lang['qb_bold']    = 'Matavy';
-$lang['qb_italic']  = 'Mandry';
-$lang['qb_underl']  = 'Voatsipika';
-$lang['qb_code']    = 'Code programa';
-$lang['qb_strike']  = 'Disoina';
-$lang['qb_h1']      = 'Lohateny laharana 1';
-$lang['qb_h2']      = 'Lohateny laharana 2';
-$lang['qb_h3']      = 'Lohateny laharana 3';
-$lang['qb_h4']      = 'Lohateny laharana 4';
-$lang['qb_h5']      = 'Lohateny laharana 5';
-$lang['qb_link']    = 'Rohy ato anatiny';
-$lang['qb_extlink'] = 'Rohy mivoaka';
-$lang['qb_hr']      = 'Tsipika marindrano';
-$lang['qb_ol']      = 'Tanisa milahatra';
-$lang['qb_ul']      = 'Tanisa tsy milahatra';
-$lang['qb_media']   = 'Hanampy sary na rakitra hafa';
-$lang['qb_sig']     = 'Manisy sonia';
-
-$lang['js']['del_confirm']= 'Hofafana ilay andalana?';
-
-//Setup VIM: ex: et ts=2 :
-$lang['email_signature_text'] = 'Ity imailaka ity dia navoakan\'ny wiki tao amin\'ny
-@DOKUWIKIURL@';
diff --git a/wiki/inc/lang/mg/locked.txt b/wiki/inc/lang/mg/locked.txt
deleted file mode 100644
index 5705659..0000000
--- a/wiki/inc/lang/mg/locked.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Pejy voahidy ======
-
-Mbola ovain'olona hafa ity pejy ity ka voahidy aloha. Andraso kely ho vitany ny azy, na ho lany fotoana ilay hidy.
-
diff --git a/wiki/inc/lang/mg/login.txt b/wiki/inc/lang/mg/login.txt
deleted file mode 100644
index 1ea3fac..0000000
--- a/wiki/inc/lang/mg/login.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Login ======
-
-Mbola tsy niditra ianao izao! Ampidiro eto ambany ny anarana sy ny alahidy. Ilaina manaiky cookies ny navigateur-nao raha hiditra.
-
diff --git a/wiki/inc/lang/mg/mailtext.txt b/wiki/inc/lang/mg/mailtext.txt
deleted file mode 100644
index c772686..0000000
--- a/wiki/inc/lang/mg/mailtext.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-Nisy pejy niova tao amin'ny wiky. Ireto ny antsipiriany:
-
-Date        : @DATE@
-Browser     : @BROWSER@
-Adiresy IP  : @IPADDRESS@
-Hostname    : @HOSTNAME@
-Taloha      : @OLDPAGE@
-Vaovao      : @NEWPAGE@
-Fiovana     : @SUMMARY@
-Novain'i    : @USER@
-
-@DIFF@
diff --git a/wiki/inc/lang/mg/newpage.txt b/wiki/inc/lang/mg/newpage.txt
deleted file mode 100644
index a998caf..0000000
--- a/wiki/inc/lang/mg/newpage.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Mbola tsy misy an'io pejy io ======
-
-Nanindry rohy manondro pejy mbola tsy misy ianao. Afaka amboarinao io pejy io, tsindrio ny bokotra ''Amboary ity pejy''
diff --git a/wiki/inc/lang/mg/norev.txt b/wiki/inc/lang/mg/norev.txt
deleted file mode 100644
index 71ecb9b..0000000
--- a/wiki/inc/lang/mg/norev.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Tsy misy io kinova io ======
-
-Tsy misy ny kinova voalaza. Ampiasao ny bokotra ''Kinova taloha'' hampisehoana ireo karazana fanovana natao tamin'ity pejy ity.
-
diff --git a/wiki/inc/lang/mg/password.txt b/wiki/inc/lang/mg/password.txt
deleted file mode 100644
index 4ed2858..0000000
--- a/wiki/inc/lang/mg/password.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-Miarahaba an'i @FULLNAME@!
-
-Ireto ny momba anao ho an'ny @TITLE@ ao amin'ny @DOKUWIKIURL@
-
-Anarana    : @LOGIN@
-Alahidy    : @PASSWORD@
diff --git a/wiki/inc/lang/mg/preview.txt b/wiki/inc/lang/mg/preview.txt
deleted file mode 100644
index 52019cd..0000000
--- a/wiki/inc/lang/mg/preview.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== Topi-maso ======
-
-Topi-maso ahafahanao mijery ny fivoakan'ny soratra nataonao ity. Tandremo: Mbola **tsy voarakitra** io!
-
-
diff --git a/wiki/inc/lang/mg/read.txt b/wiki/inc/lang/mg/read.txt
deleted file mode 100644
index 0fe51f4..0000000
--- a/wiki/inc/lang/mg/read.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-Vakiana fotsiny ity pejy ity. Afaka jerenao ny source, saingy tsy afaka ovainao. Anontanio ny admin raha heverinao fa tsy mety izany.
-
-
diff --git a/wiki/inc/lang/mg/recent.txt b/wiki/inc/lang/mg/recent.txt
deleted file mode 100644
index 4bc8245..0000000
--- a/wiki/inc/lang/mg/recent.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== Fiovana farany ======
-
-Ireto pejy ireto no niova vao haingana.
-
-
diff --git a/wiki/inc/lang/mg/register.txt b/wiki/inc/lang/mg/register.txt
deleted file mode 100644
index 618c1f9..0000000
--- a/wiki/inc/lang/mg/register.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== Hanokatra kaonty vaovao ======
-
-Fenoy ny saha rehetra eto ambany raha hanokatra kaonty amin'ity wiki ity. Hamarino fa adiresy imailaka mandeha no omenao - halefa any mantsy ny alahidy. Ny anarana dia tsy maintsy manaraka ny fepetran'ny [[doku>pagename|pagename]].
-
-
diff --git a/wiki/inc/lang/mg/revisions.txt b/wiki/inc/lang/mg/revisions.txt
deleted file mode 100644
index 7270458..0000000
--- a/wiki/inc/lang/mg/revisions.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== Kinova taloha ======
-
-Ireto ny kinovan'ny pejy taloha. Raha te hamerina kinova taloha ianao, tsongay eo ambany izy hisokatra, avy eo tsindrio ny bokotra ''Hanova ny pejy'' ary ''Soraty''.
-
-
diff --git a/wiki/inc/lang/mg/searchpage.txt b/wiki/inc/lang/mg/searchpage.txt
deleted file mode 100644
index 43fc402..0000000
--- a/wiki/inc/lang/mg/searchpage.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Karoka ======
-
-Ireto ambany ireto ny valin'ny fikarohanao.  @CREATEPAGEINFO@
-
diff --git a/wiki/inc/lang/mg/showrev.txt b/wiki/inc/lang/mg/showrev.txt
deleted file mode 100644
index 92690f4..0000000
--- a/wiki/inc/lang/mg/showrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**Ity dia kinovan'ny pejy taloha!**
-----
diff --git a/wiki/inc/lang/mk/adminplugins.txt b/wiki/inc/lang/mk/adminplugins.txt
deleted file mode 100644
index 28e2cc1..0000000
--- a/wiki/inc/lang/mk/adminplugins.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Додатни приклучоци =====
\ No newline at end of file
diff --git a/wiki/inc/lang/mk/jquery.ui.datepicker.js b/wiki/inc/lang/mk/jquery.ui.datepicker.js
deleted file mode 100644
index 97864ab..0000000
--- a/wiki/inc/lang/mk/jquery.ui.datepicker.js
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Macedonian i18n for the jQuery UI date picker plugin. */
-/* Written by Stojce Slavkovski. */
-( function( factory ) {
-	if ( typeof define === "function" && define.amd ) {
-
-		// AMD. Register as an anonymous module.
-		define( [ "../widgets/datepicker" ], factory );
-	} else {
-
-		// Browser globals
-		factory( jQuery.datepicker );
-	}
-}( function( datepicker ) {
-
-datepicker.regional.mk = {
-	closeText: "Затвори",
-	prevText: "&#x3C;",
-	nextText: "&#x3E;",
-	currentText: "ДенеÑ",
-	monthNames: [ "Јануари","Февруари","Март","Ðприл","Мај","Јуни",
-	"Јули","ÐвгуÑÑ‚","Септември","Октомври","Ðоември","Декември" ],
-	monthNamesShort: [ "Јан","Фев","Мар","Ðпр","Мај","Јун",
-	"Јул","Ðвг","Сеп","Окт","Ðое","Дек" ],
-	dayNames: [ "Ðедела","Понеделник","Вторник","Среда","Четврток","Петок","Сабота" ],
-	dayNamesShort: [ "Ðед","Пон","Вто","Сре","Чет","Пет","Саб" ],
-	dayNamesMin: [ "Ðе","По","Ð’Ñ‚","Ср","Че","Пе","Са" ],
-	weekHeader: "Сед",
-	dateFormat: "dd.mm.yy",
-	firstDay: 1,
-	isRTL: false,
-	showMonthAfterYear: false,
-	yearSuffix: "" };
-datepicker.setDefaults( datepicker.regional.mk );
-
-return datepicker.regional.mk;
-
-} ) );
diff --git a/wiki/inc/lang/mk/lang.php b/wiki/inc/lang/mk/lang.php
deleted file mode 100644
index 034d98b..0000000
--- a/wiki/inc/lang/mk/lang.php
+++ /dev/null
@@ -1,226 +0,0 @@
-<?php
-/**
- * mk language file
- *
- * This file was initially built by fetching translations from other
- * Wiki projects. See the @url lines below. Additional translations
- * and fixes where done for DokuWiki by the people mentioned in the
- * lines starting with @author
- *
- * @url http://svn.wikimedia.org/viewvc/mediawiki/trunk/phase3/languages/messages/MessagesMk.php?view=co
- * @author Dimitar Talevski <dimi3.14@gmail.com>
- */
-$lang['encoding']              = 'utf-8';
-$lang['direction']             = 'ltr';
-$lang['doublequoteopening']    = '„';
-$lang['doublequoteclosing']    = '“';
-$lang['singlequoteopening']    = '’';
-$lang['singlequoteclosing']    = '‘';
-$lang['apostrophe']            = '’';
-$lang['btn_edit']              = 'Уреди ја Ñтраницата';
-$lang['btn_source']            = 'Прикажи ја изворната Ñтраница';
-$lang['btn_show']              = 'Прикажи Ñтраница';
-$lang['btn_create']            = 'Креирај ја оваа Ñтраница';
-$lang['btn_search']            = 'Барај';
-$lang['btn_save']              = 'Зачувај';
-$lang['btn_preview']           = 'Преглед';
-$lang['btn_top']               = 'Ðазад до врв';
-$lang['btn_newer']             = '<< понови';
-$lang['btn_older']             = 'поÑтари >>';
-$lang['btn_revs']              = 'Стари ревизии';
-$lang['btn_recent']            = 'Скорешни промени';
-$lang['btn_upload']            = 'Крени';
-$lang['btn_cancel']            = 'Откажи';
-$lang['btn_index']             = 'ИндекÑ';
-$lang['btn_secedit']           = 'Уреди';
-$lang['btn_login']             = 'Ðајава';
-$lang['btn_logout']            = 'Одјава';
-$lang['btn_admin']             = 'Ðдмин';
-$lang['btn_update']            = 'Ðжурирај';
-$lang['btn_delete']            = 'Избриши';
-$lang['btn_back']              = 'Ðазад';
-$lang['btn_backlink']          = 'Повратни врÑки';
-$lang['btn_subscribe']         = 'Менаџирај претплати';
-$lang['btn_profile']           = 'Ðжурирај профил';
-$lang['btn_reset']             = 'РеÑет';
-$lang['btn_draft']             = 'Уреди Ñкица';
-$lang['btn_recover']           = 'Поврати Ñкица';
-$lang['btn_draftdel']          = 'Избриши Ñкица';
-$lang['btn_revert']            = 'Обнови';
-$lang['btn_register']          = 'РегиÑтрирај Ñе';
-$lang['loggedinas']            = 'Ðајавен/а како:';
-$lang['user']                  = 'КориÑничко име';
-$lang['pass']                  = 'Лозинка';
-$lang['newpass']               = 'Ðова лозинка';
-$lang['oldpass']               = 'Потврдете ја Ñегашната лозинка';
-$lang['passchk']               = 'уште еднаш';
-$lang['remember']              = 'Запомни ме';
-$lang['fullname']              = 'ВиÑтинÑко име';
-$lang['email']                 = 'Е-пошта';
-$lang['profile']               = 'КориÑнички профил';
-$lang['badlogin']              = 'Жалам, кориÑничкото име или лозинката Ñе погрешни.';
-$lang['minoredit']             = 'Мали измени';
-$lang['draftdate']             = 'Скицата е Ñамо-Ñнимена на';
-$lang['nosecedit']             = 'Во меѓувреме Ñтраницата беше променета, информациÑкиот дел е Ñо иÑтечен период затоа Ñе вчита целата Ñтраница.';
-$lang['regmissing']            = 'Жалам, мора да ги пополнеш Ñите полиња.';
-$lang['reguexists']            = 'Жалам, кориÑник Ñо ова кориÑничко име веќе поÑтои.';
-$lang['regsuccess']            = 'КориÑникот е креиран и лозинката е иÑпратена по е-пошта.';
-$lang['regsuccess2']           = 'КориÑникот е креиран.';
-$lang['regmailfail']           = 'Изгледа дека Ñе појави грешка при иÑпраќањето на е-пошта Ñо лозинката. Ве молам контактирајте го админиÑтраторот!';
-$lang['regbadmail']            = 'Дадената адреÑа за е-пошта изгледа невалидна - ако миÑлите дека ова е грешка, контактирајте го админиÑтраторот';
-$lang['regbadpass']            = 'Двете наведени лозинки не Ñе иÑти, ве молам пробајте повторно.';
-$lang['regpwmail']             = 'Вашата DokuWiki лозинка';
-$lang['reghere']               = 'Се уште немаш Ñметка? Ðаправи веќе една';
-$lang['profna']                = 'Ова вики не поддржува измена на профилот';
-$lang['profnochange']          = 'Ðема промени, ништо за правење.';
-$lang['profnoempty']           = 'Празно име или адреÑа за е-пошта не е дозволено.';
-$lang['profchanged']           = 'КориÑничкиот профил е уÑпешно ажуриран.';
-$lang['pwdforget']             = 'Ја заборавивте лозинката? Добијте нова';
-$lang['resendna']              = 'Ова вики не поддржува повторно иÑпраќање на лозинка.';
-$lang['resendpwdmissing']      = 'Жалам, морате да ги пополните Ñите полиња.';
-$lang['resendpwdnouser']       = 'Жалам, таков кориÑник не поÑтои во нашата база Ñо податоци.';
-$lang['resendpwdbadauth']      = 'Жалам, овај код за валидација не е валиден. Проверете повторно дали ја иÑкориÑтивте целоÑната врÑка за потврда.';
-$lang['resendpwdconfirm']      = 'Ð’Ñ€Ñка за потврда е иÑпратена по е-пошта.';
-$lang['resendpwdsuccess']      = 'Вашата нова лозинка е иÑпратена по е-пошта.';
-$lang['license']               = 'ОÑвен каде што е наведено поинаку, Ñодржината на ова вики е лиценцирано по Ñледнава лиценца:';
-$lang['licenseok']             = 'Забелешка: Ñо уредување на оваа Ñтраница Ñе ÑоглаÑувате да ја лиценцирате вашата Ñодржина под Ñледнава лиценца:';
-$lang['searchmedia']           = 'Барај име на датотека:';
-$lang['searchmedia_in']        = 'Барај во %s';
-$lang['txt_upload']            = 'Избери датотека за качување:';
-$lang['txt_filename']          = 'Качи како (неморално):';
-$lang['txt_overwrt']           = 'Пребриши ја веќе поÑтоечката датотека';
-$lang['lockedby']              = 'Моментално заклучена од:';
-$lang['lockexpire']            = 'Клучот иÑтекува на:';
-$lang['js']['willexpire']            = 'Вашиот клуч за уредување на оваа Ñтраница ќе иÑтече за една минута.\nЗа да избегнете конфликти и да го реÑетирате бројачот за време, иÑкориÑтете го копчето за преглед.';
-$lang['js']['notsavedyet']     = 'Ðезачуваните промени ќе бидат изгубени.\nСакате да продолжите?';
-$lang['rssfailed']             = 'Се појави грешка при повлекувањето на овој канал:';
-$lang['nothingfound']          = 'Ðишто не е пронајдено.';
-$lang['mediaselect']           = 'Медиа датотеки';
-$lang['uploadsucc']            = 'Качувањето е уÑпешно';
-$lang['uploadfail']            = 'Качувањето не е уÑпешно. Можеби има погрешни пермиÑии?';
-$lang['uploadwrong']           = 'Качувањето е одбиено. ÐаÑтавката на датотеката е забранета!';
-$lang['uploadexist']           = 'Датотеката веќе поÑтои. Ðишто не е направено.';
-$lang['uploadbadcontent']      = 'Качената Ñодржина не Ñе Ñовпаѓа Ñо наÑтавката %s на датотеката.';
-$lang['uploadspam']            = 'Качувањето беше блокирано од црната лиÑта за Ñпам.';
-$lang['uploadxss']             = 'Качувањето беше блокирано за можна злонамерна Ñодржина.';
-$lang['uploadsize']            = 'Датотеката за качување е премногу голема. (макÑ. %s)';
-$lang['deletesucc']            = 'Датотеката „%s“ е избришана.';
-$lang['deletefail']            = '„%s“ не може да Ñе избрише - проверете пермиÑии.';
-$lang['mediainuse']            = 'Датотеката „%s“ не е избришана - Ñе уште е во употреба.';
-$lang['mediafiles']            = 'ДоÑтапни датотеки во';
-$lang['js']['searchmedia']     = 'Барај датотеки';
-$lang['js']['keepopen']        = 'Задржи го прозорецот отворен на означеното меÑто';
-$lang['js']['hidedetails']     = 'Скриј детали';
-$lang['js']['nosmblinks']      = 'Поврзувањето Ñо Windows Shares работи Ñамо Ñо Microsoft Internet Explorer. Сепак можете да ја копирате и вметнете врÑката.';
-$lang['js']['linkwiz']         = 'Волшебник за врÑки';
-$lang['js']['linkto']          = 'Ð’Ñ€Ñка до:';
-$lang['js']['del_confirm']     = 'Дали навиÑтина да ги избришам избраните датотеки?';
-$lang['mediausage']            = 'КориÑтете ја Ñледнава ÑинтакÑа за референцирање кон оваа датотека:';
-$lang['mediaview']             = 'Види ја оригиналната датотека';
-$lang['mediaroot']             = 'root';
-$lang['mediaextchange']        = 'ÐаÑтавката на датотеката е Ñменета од .%s во .%s!';
-$lang['reference']             = 'Референци за';
-$lang['ref_inuse']             = 'Датотеката не може да биде избришана бидејќи Ñе уште Ñе кориÑти од Ñледниве Ñтраници:';
-$lang['ref_hidden']            = 'Ðекои референци Ñе на Ñтраници на кои немате пермиÑии за читање';
-$lang['hits']                  = 'Прегледи';
-$lang['quickhits']             = 'Совпаѓачки имиња на Ñтраници';
-$lang['toc']                   = 'Содржина';
-$lang['current']               = 'Ñегашно';
-$lang['yours']                 = 'Вашата верзија';
-$lang['diff']                  = 'Прикажи разлики Ñо Ñегашната верзија';
-$lang['diff2']                 = 'Прикажи разлики помеѓу избраните ревизии';
-$lang['line']                  = 'Линија';
-$lang['breadcrumb']            = 'Следи:';
-$lang['youarehere']            = 'Вие Ñте тука:';
-$lang['lastmod']               = 'ПоÑледно изменета:';
-$lang['by']                    = 'од';
-$lang['deleted']               = 'отÑтранета';
-$lang['created']               = 'креирана';
-$lang['restored']              = 'обновена е Ñтара ревизија (%s)';
-$lang['external_edit']         = 'надворешно уредување';
-$lang['summary']               = 'Уреди го изводот';
-$lang['noflash']               = '<a href="http://www.adobe.com/products/flashplayer/">Adobe Flash приклучокот</a> е потребен за да Ñе прикаже оваа Ñодржина.';
-$lang['download']              = 'Симни Snippe';
-$lang['mail_newpage']          = 'додадена е Ñтраницата:';
-$lang['mail_changed']          = 'променета е Ñтраницата:';
-$lang['mail_new_user']         = 'нов кориÑник:';
-$lang['mail_upload']           = 'качена е датотеката:';
-$lang['qb_bold']               = 'Задебелен текÑÑ‚';
-$lang['qb_italic']             = 'ÐакоÑен текÑÑ‚';
-$lang['qb_underl']             = 'Подвлечен текÑÑ‚';
-$lang['qb_code']               = 'ТекÑÑ‚ за код';
-$lang['qb_strike']             = 'Прецртан текÑÑ‚';
-$lang['qb_h1']                 = 'Заглавие од 1-во ниво';
-$lang['qb_h2']                 = 'Заглавие од 2-ро ниво';
-$lang['qb_h3']                 = 'Заглавие од 3-то ниво';
-$lang['qb_h4']                 = 'Заглавие од 4-то ниво';
-$lang['qb_h5']                 = 'Заглавие од 5-то ниво';
-$lang['qb_h']                  = 'Заглавие';
-$lang['qb_hs']                 = 'Избери заглавие';
-$lang['qb_hplus']              = 'Зголеми заглавие';
-$lang['qb_hminus']             = 'Ðамали заглавие';
-$lang['qb_hequal']             = 'Заглавие од иÑто ниво';
-$lang['qb_link']               = 'Внатрешна врÑка';
-$lang['qb_extlink']            = 'Ðадворешна врÑка';
-$lang['qb_hr']                 = 'Хоризонтален линијар';
-$lang['qb_media']              = 'Додај Ñлики и други датотеки';
-$lang['qb_sig']                = 'ВнеÑи потпиÑ';
-$lang['qb_smileys']            = 'Смајлиња';
-$lang['qb_chars']              = 'Специјални знаци';
-$lang['metaedit']              = 'Уреди мета-податоци';
-$lang['metasaveerr']           = 'Запишување на мета-податоците не уÑпеа';
-$lang['metasaveok']            = 'Мета-податоците Ñе зачувани';
-$lang['btn_img_backto']            = 'Ðазад до %s';
-$lang['img_title']             = 'ÐаÑловна линија:';
-$lang['img_caption']           = 'ÐаÑлов:';
-$lang['img_date']              = 'Датум:';
-$lang['img_fname']             = 'Име на датотека:';
-$lang['img_fsize']             = 'Големина:';
-$lang['img_artist']            = 'Фотограф:';
-$lang['img_copyr']             = 'ÐвторÑко право:';
-$lang['img_format']            = 'Формат:';
-$lang['img_camera']            = 'Камера:';
-$lang['img_keywords']          = 'Клучни зборови:';
-$lang['subscr_subscribe_success'] = 'Додаден/а е %s во претплатничката лиÑта за %s';
-$lang['subscr_subscribe_error'] = 'Грешка при додавањето на %s во претплатничката лиÑта за %s';
-$lang['subscr_subscribe_noaddress'] = 'Ðема адреÑа за е-пошта поврзана Ñо Вашата најава, не може да бидете додадени на претплатничката лиÑта';
-$lang['subscr_unsubscribe_success'] = 'ОтÑтранет/а е %s од претплатничката лиÑта за %s';
-$lang['subscr_unsubscribe_error'] = 'Грешка при отÑтранувањето на %s од претплатничката лиÑта за %s';
-$lang['subscr_already_subscribed'] = '%s е веќе претплатен/а на %s';
-$lang['subscr_not_subscribed'] = '%s е не претплатен/а на %s';
-$lang['subscr_m_not_subscribed'] = 'Моментално не Ñте пријавени на Ñегашната Ñтраница или ';
-$lang['subscr_m_new_header']   = 'Додај претплата';
-$lang['subscr_m_current_header'] = 'Моментални претплати';
-$lang['subscr_m_unsubscribe']  = 'Отплатување';
-$lang['subscr_m_subscribe']    = 'Претплата';
-$lang['subscr_m_receive']      = 'Прими';
-$lang['subscr_style_every']    = 'е-пошта за Ñекоја промена';
-$lang['authtempfail']          = 'Ðвтентикација на кориÑник е привремено недоÑтапна. Ðко оваа Ñитуација иÑтрајува, ве молам извеÑтете го вики админиÑтратор.';
-$lang['i_chooselang']          = 'Избере јазик';
-$lang['i_installer']           = 'ИнÑталер за DokuWiki';
-$lang['i_wikiname']            = 'вики име';
-$lang['i_enableacl']           = 'Овозможи ACL (препорачано)';
-$lang['i_superuser']           = 'Супер кориÑник';
-$lang['i_problems']            = 'ИнÑталерот пронајде неколку проблеми кои Ñе прикажани подолу. Ðе можете да продолжите понатаму Ñе додека не ги поправите.';
-$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_permfail']            = '<code>%s</code> не е запишлива од DokuWiki. Треба да ги поправите подеÑувањата за пермиÑии на овој директориум!';
-$lang['i_confexists']          = '<code>%s</code> веќе поÑтои';
-$lang['i_writeerr']            = 'Ðе може да Ñе креира <code>%s</code>. Треба да ги проверите пермиÑиите на директориумот/датотеката и рачно да ја креирате датотеката.';
-$lang['i_badhash']             = 'непозната или изменете dokuwiki.php (hash=<code>%s</code>)';
-$lang['i_badval']              = '<code>%s</code> - нелегална или празна вредноÑÑ‚';
-$lang['i_success']             = 'Конфигурацијата уÑпешно заврши. Сега можете да ја избришете датотеката install.php. Продолжете до <a href="doku.php?id=wiki:welcome">вашето ново DokuWiki</a>.';
-$lang['i_failure']             = 'Се појавија некои грешки при запишувањето на конфигурациÑките датотеки. Можеби треба да ги поравите рачно пред да можете да го кориÑтите <a href="doku.php?id=wiki:welcome">вашето ново DokuWiki</a>.';
-$lang['i_policy']              = 'Почетна ACL политика';
-$lang['i_pol0']                = 'Отвори вики (читај, запиши, качи за Ñите)';
-$lang['i_pol1']                = 'Јавно вики (читај за Ñите, запиши и качи за региÑтрирани кориÑници)';
-$lang['i_pol2']                = 'Затворено вики (читај, запиши, качи Ñамо за региÑтрирани кориÑници)';
-$lang['i_retry']               = 'Пробај повторно';
-$lang['years']                 = 'пред %d години';
-$lang['months']                = 'пред %d меÑеци';
-$lang['weeks']                 = 'пред %d недели';
-$lang['days']                  = 'пред %d денови';
-$lang['hours']                 = 'пред %d чаÑа';
-$lang['minutes']               = 'пред %d минути';
-$lang['seconds']               = 'пред %d Ñекунди';
diff --git a/wiki/inc/lang/mk/read.txt b/wiki/inc/lang/mk/read.txt
deleted file mode 100644
index 8c8726e..0000000
--- a/wiki/inc/lang/mk/read.txt
+++ /dev/null
@@ -1 +0,0 @@
-Оваа Ñтраница е Ñамо за читање. Можете да го гледате изворот, но не можете да ја менувате. Ðко миÑлите дека ова е погрешно, контактирајте го админиÑтраторот.
\ No newline at end of file
diff --git a/wiki/inc/lang/mk/recent.txt b/wiki/inc/lang/mk/recent.txt
deleted file mode 100644
index cfbba4a..0000000
--- a/wiki/inc/lang/mk/recent.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Скорешни промени ======
-
-Следниве Ñтраници беа Ñкорешно променети.
\ No newline at end of file
diff --git a/wiki/inc/lang/mk/showrev.txt b/wiki/inc/lang/mk/showrev.txt
deleted file mode 100644
index a0ca735..0000000
--- a/wiki/inc/lang/mk/showrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**Ова е Ñтара ревизија од документото!**
-----
\ No newline at end of file
diff --git a/wiki/inc/lang/ml/admin.txt b/wiki/inc/lang/ml/admin.txt
deleted file mode 100644
index 0f9c814..0000000
--- a/wiki/inc/lang/ml/admin.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== പൊതൠസെറàµà´±à´¿à´‚à´—àµà´¸àµ  ======
-
-താഴെ കാണàµà´¨àµà´¨ പടàµà´Ÿà´¿à´• ഡോകàµà´•àµà´µà´¿à´•àµà´•ിയിൽ  ഉളàµà´³ പൊതൠസെറàµà´±à´¿à´‚à´—àµà´¸àµ ആണൠ. 
\ No newline at end of file
diff --git a/wiki/inc/lang/ml/jquery.ui.datepicker.js b/wiki/inc/lang/ml/jquery.ui.datepicker.js
deleted file mode 100644
index 440e09e..0000000
--- a/wiki/inc/lang/ml/jquery.ui.datepicker.js
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Malayalam (UTF-8) initialisation for the jQuery UI date picker plugin. */
-/* Written by Saji Nediyanchath (saji89@gmail.com). */
-( function( factory ) {
-	if ( typeof define === "function" && define.amd ) {
-
-		// AMD. Register as an anonymous module.
-		define( [ "../widgets/datepicker" ], factory );
-	} else {
-
-		// Browser globals
-		factory( jQuery.datepicker );
-	}
-}( function( datepicker ) {
-
-datepicker.regional.ml = {
-	closeText: "à´¶à´°à´¿",
-	prevText: "à´®àµà´¨àµà´¨à´¤àµà´¤àµ†",
-	nextText: "à´…à´Ÿàµà´¤àµà´¤à´¤àµ ",
-	currentText: "ഇനàµà´¨àµ",
-	monthNames: [ "ജനàµà´µà´°à´¿","ഫെബàµà´°àµà´µà´°à´¿","മാരàµâ€à´šàµà´šàµ","à´à´ªàµà´°à´¿à´²àµâ€","മേയàµ","ജൂണàµâ€",
-	"ജൂലൈ","ആഗസàµà´±àµà´±àµ","സെപàµà´±àµà´±à´‚ബരàµâ€","à´’à´•àµà´Ÿàµ‹à´¬à´°àµâ€","നവംബരàµâ€","ഡിസംബരàµâ€" ],
-	monthNamesShort: [ "ജനàµ", "ഫെബàµ", "മാരàµâ€", "à´à´ªàµà´°à´¿", "മേയàµ", "ജൂണàµâ€",
-	"ജൂലാ", "ആഗ", "സെപàµ", "à´’à´•àµà´Ÿàµ‹", "നവം", "à´¡à´¿à´¸" ],
-	dayNames: [ "ഞായരàµâ€", "തിങàµà´•à´³àµâ€", "ചൊവàµà´µ", "à´¬àµà´§à´¨àµâ€", "à´µàµà´¯à´¾à´´à´‚", "വെളàµà´³à´¿", "ശനി" ],
-	dayNamesShort: [ "ഞായ", "തിങàµà´•", "ചൊവàµà´µ", "à´¬àµà´§", "à´µàµà´¯à´¾à´´à´‚", "വെളàµà´³à´¿", "ശനി" ],
-	dayNamesMin: [ "à´žà´¾","തി","ചൊ","à´¬àµ","à´µàµà´¯à´¾","വെ","à´¶" ],
-	weekHeader: "à´†",
-	dateFormat: "dd/mm/yy",
-	firstDay: 1,
-	isRTL: false,
-	showMonthAfterYear: false,
-	yearSuffix: "" };
-datepicker.setDefaults( datepicker.regional.ml );
-
-return datepicker.regional.ml;
-
-} ) );
diff --git a/wiki/inc/lang/mr/admin.txt b/wiki/inc/lang/mr/admin.txt
deleted file mode 100644
index 6f54384..0000000
--- a/wiki/inc/lang/mr/admin.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== वà¥à¤¯à¤µà¤¸à¥à¤¥à¤¾à¤ªà¤¨ ======
-
-खाली तà¥à¤®à¥à¤¹à¤¾à¤²à¤¾ डॉकà¥à¤¯à¥à¤µà¤¿à¤•ि मधे उपलबà¥à¤§ असलेलà¥à¤¯à¤¾ वà¥à¤¯à¤µà¤¸à¥à¤¥à¤¾à¤ªà¤¨à¤¾à¤šà¥à¤¯à¤¾ कà¥à¤°à¤¿à¤¯à¤¾à¤‚ची सूची दिली आहे.
\ No newline at end of file
diff --git a/wiki/inc/lang/mr/backlinks.txt b/wiki/inc/lang/mr/backlinks.txt
deleted file mode 100644
index 997fa68..0000000
--- a/wiki/inc/lang/mr/backlinks.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== पà¥à¤°à¤¤à¤¿à¤²à¤¿à¤‚क ======
-
-ही तà¥à¤¯à¤¾ सरà¥à¤µ पà¥à¤°à¥ƒà¤·à¥à¤ à¤¾à¤‚ची सूची आहे जी या पृषà¥à¤ à¤¾à¤²à¤¾ परत लिंक करतात.
\ No newline at end of file
diff --git a/wiki/inc/lang/mr/conflict.txt b/wiki/inc/lang/mr/conflict.txt
deleted file mode 100644
index 2b1bb64..0000000
--- a/wiki/inc/lang/mr/conflict.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== नवीन आवृतà¥à¤¤à¥€ उपलबà¥à¤§ आहे ======
-
-तà¥à¤®à¥à¤¹à¥€ संपादित केलेलà¥à¤¯à¤¾ दसà¥à¤¤à¤¾à¤µà¥‡à¤œà¤¾à¤šà¥€ नवीन आवृतà¥à¤¤à¥€ उपलबà¥à¤§ आहे. तà¥à¤®à¥à¤¹à¥€ संपादित करत असलेलà¥à¤¯à¤¾ दसà¥à¤¤à¤¾à¤µà¥‡à¤œà¤¾à¤®à¤§à¥‡ तà¥à¤¯à¤¾à¤š वेळी इतर यूजरने बदल केलà¥à¤¯à¤¾à¤¸ असे घडते.
-
-खाली दरà¥à¤¶à¤¾à¤µà¤¿à¤²à¥‡à¤²à¥‡ फरक नीट तपासा आणि तà¥à¤¯à¤¾à¤ªà¥ˆà¤•ी कà¥à¤ à¤²à¥‡ ठेवायचे ते ठरवा. जर तà¥à¤®à¥à¤¹à¥€ 'सà¥à¤°à¤•à¥à¤·à¤¿à¤¤' केलं तर तà¥à¤®à¤šà¥‡ बदल सà¥à¤°à¤•à¥à¤·à¤¿à¤¤ होतील. सधà¥à¤¯à¤¾à¤šà¥€ आवृतà¥à¤¤à¤¿ ठेवणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ 'कॅनà¥à¤¸à¤²' वर कà¥à¤²à¤¿à¤• करा.
\ No newline at end of file
diff --git a/wiki/inc/lang/mr/denied.txt b/wiki/inc/lang/mr/denied.txt
deleted file mode 100644
index 5415fde..0000000
--- a/wiki/inc/lang/mr/denied.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== परवानगी नाकारली ======
-
-कà¥à¤·à¤®à¤¾ करा, पण तà¥à¤®à¥à¤¹à¤¾à¤²à¤¾ यापà¥à¤¢à¥‡ जाणà¥à¤¯à¤¾à¤šà¥‡ हकà¥à¤• नाहीत.
-
diff --git a/wiki/inc/lang/mr/diff.txt b/wiki/inc/lang/mr/diff.txt
deleted file mode 100644
index f0a8450..0000000
--- a/wiki/inc/lang/mr/diff.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== फरक ======
-
-या पानावर तà¥à¤®à¥à¤¹à¤¾à¤²à¤¾ निवडलेली आवृतà¥à¤¤à¥€ व सधà¥à¤¯à¤¾à¤šà¥à¤¯à¤¾ आवृतà¥à¤¤à¥€ मधले फरक दाखवले आहेत.
\ No newline at end of file
diff --git a/wiki/inc/lang/mr/draft.txt b/wiki/inc/lang/mr/draft.txt
deleted file mode 100644
index aa74475..0000000
--- a/wiki/inc/lang/mr/draft.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== मसà¥à¤¦à¥à¤¯à¤¾à¤šà¥€ फाइल मिळाली ======
-
-तà¥à¤®à¤šà¤¾ मागचा संपादानाचा सेशन नीट पूरà¥à¤£ à¤à¤¾à¤²à¤¾ नवà¥à¤¹à¤¤à¤¾. डॉकà¥à¤¯à¥à¤µà¤¿à¤•िने तà¥à¤®à¤šà¥à¤¯à¤¾ कामाचा मसà¥à¤¦à¤¾ आपोआप सà¥à¤°à¤•à¥à¤·à¤¿à¤¤ केला होता , जो वापरून तà¥à¤®à¤šà¥€ संपादन परत चालू करू शकता. खाली तà¥à¤®à¤šà¥à¤¯à¤¾ मागचà¥à¤¯à¤¾ सेशन मधला सà¥à¤°à¤•à¥à¤·à¤¿à¤¤ केलेला डेटा दाखवला आहे.
-
-कृपया आता हे ठरवा की तà¥à¤®à¤šà¥à¤¯à¤¾ संपादन सेशनचे //पà¥à¤¨à¤°à¥à¤¸à¥à¤¥à¤¾à¤ªà¤¨// करायचे, सà¥à¤°à¤•à¥à¤·à¤¿à¤¤ केलेला मसà¥à¤¦à¤¾ //रदà¥à¤¦// करायचा  का संपादनच //कॅनà¥à¤¸à¤²// करायचं.
\ No newline at end of file
diff --git a/wiki/inc/lang/mr/edit.txt b/wiki/inc/lang/mr/edit.txt
deleted file mode 100644
index 6c6347e..0000000
--- a/wiki/inc/lang/mr/edit.txt
+++ /dev/null
@@ -1 +0,0 @@
-पान संपादित करा आणि 'सà¥à¤°à¤•à¥à¤·à¤¿à¤¤' वर कà¥à¤²à¤¿à¤• करा. विकी सिनà¥à¤Ÿà¥…कà¥à¤¸ साठी [[wiki:syntax]] पहा.कृपया तà¥à¤®à¥à¤¹à¥€ जर à¤à¤–ादे पान **सà¥à¤§à¤¾à¤°à¤¿à¤¤** करू शकत असाल तरच ते संपादित करा. अनà¥à¤¯à¤¥à¤¾ जर तà¥à¤®à¥à¤¹à¤¾à¤²à¤¾ फ़कà¥à¤¤ काही गोषà¥à¤Ÿà¥€ टà¥à¤°à¤¾à¤¯ करून बघायचà¥à¤¯à¤¾ असतील तर [[playground:playground|पà¥à¤²à¥‡à¤—à¥à¤°à¤¾à¤Šà¤£à¥à¤¡]] मधे आपले धडे गिरवा!
\ No newline at end of file
diff --git a/wiki/inc/lang/mr/editrev.txt b/wiki/inc/lang/mr/editrev.txt
deleted file mode 100644
index d58c8ab..0000000
--- a/wiki/inc/lang/mr/editrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**तà¥à¤®à¤šà¥€ या पानाची जà¥à¤¨à¥€ आवृतà¥à¤¤à¥€ लोड केलि आहे!** जर तà¥à¤®à¤šà¥€ ती सà¥à¤°à¤•à¥à¤·à¤¿à¤¤ केली तर तà¥à¤®à¤šà¥€ तà¥à¤¯à¤¾à¤šà¥€ à¤à¤• नवीन आवृतà¥à¤¤à¥€ तयार कराल.
-----
\ No newline at end of file
diff --git a/wiki/inc/lang/mr/index.txt b/wiki/inc/lang/mr/index.txt
deleted file mode 100644
index 489b204..0000000
--- a/wiki/inc/lang/mr/index.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== सूची ======
-
-ही सरà¥à¤µ उपलबà¥à¤§ पानांची [[doku>namespaces|नेमसà¥à¤ªà¥‡à¤¸]] अनà¥à¤¸à¤¾à¤° तयार केलेली सूची आहे. 
\ No newline at end of file
diff --git a/wiki/inc/lang/mr/install.html b/wiki/inc/lang/mr/install.html
deleted file mode 100644
index 9696c78..0000000
--- a/wiki/inc/lang/mr/install.html
+++ /dev/null
@@ -1,10 +0,0 @@
-<p>हे पान <a href="http://dokuwiki.org">डॉकà¥à¤¯à¥à¤µà¤¿à¤•ि</a> चà¥à¤¯à¤¾ पहिलà¥à¤¯à¤¾ इनà¥à¤¸à¥à¤Ÿà¥‰à¤²à¥‡à¤¶à¤¨ आणि कॉनà¥à¤«à¤¿à¤—रेशन साठी मदत करतं. या इंसà¥à¤Ÿà¥‰à¤²à¤°  विषयी जासà¥à¤¤à¥€ माहिती तà¥à¤¯à¤¾à¤šà¥à¤¯à¤¾
-<a href="http://dokuwiki.org/installer">माहितीसंगà¥à¤°à¤¹ पानावर</a> उपलबà¥à¤§ आहे.</p>
-
-<p> डॉकà¥à¤¯à¥à¤µà¤¿à¤•ि विकी पाने व समà¥à¤¬à¤‚धित माहिती ( उदा. फोटो , शोध सूची, जà¥à¤¨à¥à¤¯à¤¾ आवृतà¥à¤¤à¥€ ई.) साठवणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ सामानà¥à¤¯ फाइलचा उपयोग करतं. डॉकà¥à¤¯à¥à¤µà¤¿à¤•िने नीट काम करणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ डॉकà¥à¤¯à¥à¤µà¤¿à¤•िला या फाइल जिथे साठवलà¥à¤¯à¤¾ आहेत तà¥à¤¯à¤¾ डिरेकà¥à¤Ÿà¤°à¥€à¤®à¤§à¥‡ लेखनाचे हकà¥à¤• ( write access ) असणे <strong>अतà¥à¤¯à¤¾à¤µà¤¶à¥à¤¯à¤•</strong> आहे. या इंसà¥à¤Ÿà¥‰à¤²à¤°à¤²à¤¾ डिरेकà¥à¤Ÿà¤°à¥€à¤šà¥‡ हकà¥à¤• सेट करता येत नाहीत. ते थेट तà¥à¤®à¤šà¥à¤¯à¤¾ शेल मधून सेट करावे लागतात, किंवा तà¥à¤®à¥à¤¹à¥€ वà¥à¤¯à¤¾à¤µà¤¸à¤¾à¤¯à¤¿à¤• होसà¥à¤Ÿà¤¿à¤‚ग वापरत असाल तर FTP वापरून अथवा तà¥à¤®à¤šà¥à¤¯à¤¾ होसà¥à¤Ÿà¤¿à¤‚ग कंटà¥à¤°à¥‹à¤² पॅनल ( उदा. cPanel  वगैरे ) मधून सेट करावे लागतात.</p>
-
-<p>हा इंसà¥à¤Ÿà¥‰à¤²à¤° तà¥à¤®à¤šà¥à¤¯à¤¾ डॉकà¥à¤¯à¥à¤µà¤¿à¤•िचे <abbr title="access control list">ACL</abbr> कॉनà¥à¤«à¤¿à¤—रेशन ठरवेल, जà¥à¤¯à¤¾à¤¦à¥à¤µà¤¾à¤°à¥‡ तà¥à¤®à¥à¤¹à¤¾à¤²à¤¾ वà¥à¤¯à¤µà¤¸à¥à¤¥à¤¾à¤ªà¤•ीय लॉगिन, डॉकà¥à¤¯à¥à¤µà¤¿à¤•िचà¥à¤¯à¤¾ वà¥à¤¯à¤µà¤¸à¥à¤¥à¤¾à¤ªà¤¨ मेनू मधे पà¥à¤²à¤—िनचे इनà¥à¤¸à¥à¤Ÿà¥‰à¤²à¥‡à¤¶à¤¨, सदसà¥à¤¯à¤¾à¤‚ची वà¥à¤¯à¤µà¤¸à¥à¤¥à¤¾, विकी पानांवरील हकà¥à¤•, कॉनà¥à¤«à¤¿à¤—रेशन बदलणे ई. साठी पà¥à¤°à¤µà¥‡à¤¶à¤¾à¤šà¥‡ हकà¥à¤• वगैरे बदल करता येतील. ही वà¥à¤¯à¤µà¤¸à¥à¤¥à¤¾ डॉकà¥à¤¯à¥à¤µà¤¿à¤•ि वापरणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ आवशà¥à¤¯à¤• नाही पण वापरलà¥à¤¯à¤¾à¤¸ डॉकà¥à¤¯à¥à¤µà¤¿à¤•िचे वà¥à¤¯à¤µà¤¸à¥à¤¥à¤¾à¤ªà¤¨ अधिक सà¥à¤°à¤³à¤¿à¤¤ होइल.</p>
-
-<p>अनà¥à¤­à¤µà¥€ सदसà¥à¤¯ किंवा जà¥à¤¯à¤¾à¤¨à¤¾ काही ख़ास गरजा असतील तà¥à¤¯à¤¾à¤¨à¥€ खालील लिंकà¥à¤¸ वापरावà¥à¤¯à¤¾à¤¤ :
-<a href="http://dokuwiki.org/install">इनà¥à¤¸à¥à¤Ÿà¥‰à¤²à¥‡à¤¶à¤¨à¤µà¤¿à¤·à¤¯à¥€ सूचना</a>
-and <a href="http://dokuwiki.org/config">कॉनà¥à¤«à¤¿à¤—रेशनची सेटिंग</a></p>
\ No newline at end of file
diff --git a/wiki/inc/lang/mr/lang.php b/wiki/inc/lang/mr/lang.php
deleted file mode 100644
index 5aa22f3..0000000
--- a/wiki/inc/lang/mr/lang.php
+++ /dev/null
@@ -1,265 +0,0 @@
-<?php
-/**
- * mr language file
- *
- * This file was initially built by fetching translations from other
- * Wiki projects. See the @url lines below. Additional translations
- * and fixes where done for DokuWiki by the people mentioned in the
- * lines starting with @author
- *
- * @url http://svn.wikimedia.org/viewvc/mediawiki/trunk/phase3/languages/messages/MessagesMr.php?view=co
- * @author ghatothkach@hotmail.com
- * @author Padmanabh Kulkarni <kulkarnipadmanabh@gmail.com>
- * @author shantanoo@gmail.com
- */
-$lang['encoding']              = 'utf-8';
-$lang['direction']             = 'ltr';
-$lang['doublequoteopening']    = '“';
-$lang['doublequoteclosing']    = 'â€';
-$lang['singlequoteopening']    = '`';
-$lang['singlequoteclosing']    = '\'';
-$lang['apostrophe']            = '\'';
-$lang['btn_edit']              = 'हे पृषà¥à¤  संपादित करा';
-$lang['btn_source']            = 'पानाचा सà¥à¤¤à¥à¤°à¥‹à¤¤ दाखवा ';
-$lang['btn_show']              = 'पान दाखवा';
-$lang['btn_create']            = 'हे पृषà¥à¤  लीहा';
-$lang['btn_search']            = 'शोधा';
-$lang['btn_save']              = 'सà¥à¤°à¤•à¥à¤·à¤¿à¤¤';
-$lang['btn_preview']           = 'à¤à¤²à¤•';
-$lang['btn_top']               = 'परत वर';
-$lang['btn_newer']             = 'जासà¥à¤¤ अलीकडचे';
-$lang['btn_older']             = 'कमी अलीकडचे';
-$lang['btn_revs']              = 'जूनà¥à¤¯à¤¾ आवà¥à¤°à¥à¤¤à¥à¤¤à¥€';
-$lang['btn_recent']            = 'अलीकडील बदल';
-$lang['btn_upload']            = 'अपलोड';
-$lang['btn_cancel']            = 'रदà¥à¤¦ करा';
-$lang['btn_index']             = 'सूचि';
-$lang['btn_secedit']           = 'संपादन';
-$lang['btn_login']             = 'पà¥à¤°à¤µà¥‡à¤¶ करा';
-$lang['btn_logout']            = 'बाहेर पडा';
-$lang['btn_admin']             = 'अधिकारी';
-$lang['btn_update']            = 'अदà¥à¤¯à¤¯à¤¾à¤µà¤¤';
-$lang['btn_delete']            = 'नषà¥à¤Ÿ';
-$lang['btn_back']              = 'मागॆ';
-$lang['btn_backlink']          = 'येथे काय जोडले आहे';
-$lang['btn_subscribe']         = 'पृषà¥à¤ à¤¾à¤šà¥à¤¯à¤¾ बदलांची पà¥à¤°à¤µà¤£à¥€ (फीड) लावा ';
-$lang['btn_profile']           = 'पà¥à¤°à¥‹à¤«à¤¾à¤‡à¤² अदà¥à¤¯à¤¯à¤¾à¤µà¤¤ करा';
-$lang['btn_reset']             = 'रिसेट';
-$lang['btn_resendpwd']         = 'नवीन पासवरà¥à¤¡';
-$lang['btn_draft']             = 'पà¥à¤°à¤¤ संपादन';
-$lang['btn_recover']           = 'पà¥à¤°à¤¤ परत मिळवा';
-$lang['btn_draftdel']          = 'पà¥à¤°à¤¤ रदà¥à¤¦';
-$lang['btn_revert']            = 'पà¥à¤¨à¤°à¥à¤¸à¥à¤¥à¤¾à¤ªà¤¨';
-$lang['btn_register']          = 'नोंदणी';
-$lang['btn_apply']             = 'लागू';
-$lang['btn_media']             = 'मिडिया वà¥à¤¯à¤µà¤¸à¥à¤¥à¤¾à¤ªà¤•';
-$lang['loggedinas']            = 'लॉगिन नाव:';
-$lang['user']                  = 'वापरकरà¥à¤¤à¤¾';
-$lang['pass']                  = 'परवलीचा शबà¥à¤¦';
-$lang['newpass']               = 'नवीन परवलीचा शबà¥à¤¦';
-$lang['oldpass']               = 'सधà¥à¤¯à¤¾à¤šà¤¾ परवलीचा शबà¥à¤¦ नकà¥à¤•ी करा';
-$lang['passchk']               = 'परत à¤à¤•दा';
-$lang['remember']              = 'लकà¥à¤·à¤¾à¤¤ ठेवा';
-$lang['fullname']              = 'पूरà¥à¤£ नावं';
-$lang['email']                 = 'इमेल';
-$lang['profile']               = 'वापरकरà¥à¤¤à¥à¤¯à¤¾à¤šà¥€ माहिती';
-$lang['badlogin']              = 'माफ़ करा, वापरकरà¥à¤¤à¤¾ नावात किंवा परवलीचà¥à¤¯à¤¾ शबà¥à¤¦à¤¾à¤¤ चूक à¤à¤¾à¤²à¥€ आहे.';
-$lang['minoredit']             = 'छोटे बदल';
-$lang['draftdate']             = 'पà¥à¤°à¤¤ आपोआप सà¥à¤°à¤•à¥à¤·à¤¿à¤¤ केलà¥à¤¯à¤¾à¤šà¥€ तारीख';
-$lang['nosecedit']             = 'मधà¥à¤¯à¤‚तरीचà¥à¤¯à¤¾ काळात हे पृषà¥à¤  बदलले आहे.विभागाची माहिती जà¥à¤¨à¥€ à¤à¤¾à¤²à¥€ होती. तà¥à¤¯à¤¾à¤à¤µà¤œà¥€ सबंध पृषà¥à¤  परत लोड केले आहे.';
-$lang['regmissing']            = 'कृपया सरà¥à¤µ रकाने भरा.';
-$lang['reguexists']            = 'या नावाने सदसà¥à¤¯à¤¾à¤šà¥€ नोंदणी à¤à¤¾à¤²à¥‡à¤²à¥€ आहे, कृपया दà¥à¤¸à¤°à¥‡ सदसà¥à¤¯ नाव निवडा.';
-$lang['regsuccess']            = 'सदसà¥à¤¯à¤¾à¤šà¥€ नोंदणी à¤à¤¾à¤²à¥€ आहे आणि परवलीचा शबà¥à¤¦ इमेल केला आहे.';
-$lang['regsuccess2']           = 'सदसà¥à¤¯à¤¾à¤šà¥€ नोंदणी à¤à¤¾à¤²à¥€.';
-$lang['regmailfail']           = 'परवलीचा शबà¥à¤¦à¤¾à¤šà¥€ इमेल पाठवणà¥à¤¯à¤¾à¤¤ चूक à¤à¤¾à¤²à¥€ आहे, कà¥à¤°à¥à¤ªà¤¯à¤¾ संचालकांशी संपरà¥à¤• साधा.';
-$lang['regbadmail']            = 'तà¥à¤®à¥à¤¹à¥€ दिलेला ईमेल बरोबर नाही असे दिसते - तà¥à¤®à¤šà¥à¤¯à¤¾ मते ही चूक असलà¥à¤¯à¤¾à¤¸ साईटचà¥à¤¯à¤¾ वà¥à¤¯à¤µà¤¸à¥à¤¥à¤¾à¤ªà¤•ाशी संपरà¥à¤• साधा.';
-$lang['regbadpass']            = 'आपला परवलीचा शबà¥à¤¦ चà¥à¤•ीचा आहे.';
-$lang['regpwmail']             = 'तà¥à¤®à¤šà¤¾ डोकà¥à¤¯à¥à¤µà¤¿à¤•ि परवली.';
-$lang['reghere']               = 'अजà¥à¤¨ तà¥à¤®à¤šà¥‡ खाते नाही ? à¤à¤• उघडून टाका.';
-$lang['profna']                = 'हà¥à¤¯à¤¾ विकी मधे पà¥à¤°à¥‹à¤«à¤¾à¤‡à¤² बदलणà¥à¤¯à¤¾à¤šà¥€ सà¥à¤µà¤¿à¤§à¤¾ नाही.';
-$lang['profnochange']          = 'काही बदल नाहित. करणà¥à¤¯à¤¾à¤¸à¤¾à¤°à¤–े काही नाही.';
-$lang['profnoempty']           = 'रिकामे नाव किंवा ईमेल चालत नाही.';
-$lang['profchanged']           = 'सदसà¥à¤¯à¤¾à¤šà¥€ पà¥à¤°à¥‹à¤«à¤¾à¤‡à¤² अदà¥à¤¯à¤¯à¤¾à¤µà¤¤ à¤à¤¾à¤²à¥€ आहे.';
-$lang['pwdforget']             = 'परवलीचा शबà¥à¤¦ विसरला आहे का? नविन मागवा.';
-$lang['resendna']              = 'हà¥à¤¯à¤¾ विकी मधे परवलीचा शबà¥à¤¦ परत पाथावà¥à¤¨à¥à¤¯à¤¾à¤šà¥€ सà¥à¤µà¤¿à¤§à¤¾ नाही.';
-$lang['resendpwd']             = 'नविन परवली इचà¥à¤›à¥à¤•';
-$lang['resendpwdmissing']      = 'माफ करा, पण सरà¥à¤µ जागा भरलà¥à¤¯à¤¾ पाहिजेत.';
-$lang['resendpwdnouser']       = 'माफ़ करा, हा सदसà¥à¤¯ आमचà¥à¤¯à¤¾ माहितिसंगà¥à¤°à¤¹à¤¾à¤¤ सापडला नाही.';
-$lang['resendpwdbadauth']      = 'माफ़ करा, हा अधिकार कोड बरोबर नाही. कृपया आपण पूरà¥à¤£ शिकामोरà¥à¤¤à¤¬à¤¾à¤šà¥€ लिंक वापरलà¥à¤¯à¤¾à¤šà¥€ खातà¥à¤°à¥€ करा.';
-$lang['resendpwdconfirm']      = 'शिकà¥à¤•ामोरà¥à¤¤à¤¬à¤¾à¤šà¥€ लिंक ईमेल दà¥à¤µà¤¾à¤°à¤¾ पाठवली आहे.';
-$lang['resendpwdsuccess']      = 'शिकà¥à¤•ामोरà¥à¤¤à¤¬à¤¾à¤šà¥€ लिंक ईमेल दà¥à¤µà¤¾à¤°à¤¾ पाठवली आहे.';
-$lang['license']               = 'विशिषà¥à¤  नोंद केलि नसलà¥à¤¯à¤¾à¤¸ हà¥à¤¯à¤¾ विकी वरील सरà¥à¤µ मजकूर खालील लायसनà¥à¤¸ मधे मोडतो : ';
-$lang['licenseok']             = 'नोंद : हे पृषà¥à¤  संपादित केलà¥à¤¯à¤¾à¤¸ तà¥à¤®à¥à¤¹à¥€ तà¥à¤®à¤šà¥‡ योगदान खालील लायसनà¥à¤¸ अंतरà¥à¤—त येइल : ';
-$lang['searchmedia']           = 'फाईल शोधा:';
-$lang['searchmedia_in']        = '%s मधे शोधा';
-$lang['txt_upload']            = 'अपलोड करणà¥à¤¯à¤¾à¤šà¥€ फाइल निवडा:';
-$lang['txt_filename']          = 'अपलोड उरà¥à¥ž ( वैकलà¥à¤ªà¤¿à¤• ):';
-$lang['txt_overwrt']           = 'असà¥à¤¤à¤¿à¤¤à¥à¤µà¤¾à¤¤ असलेलà¥à¤¯à¤¾ फाइलवरच सà¥à¤°à¤•à¥à¤·à¤¿à¤¤ करा.';
-$lang['lockedby']              = 'सधà¥à¤¯à¤¾ लॉक करणारा :';
-$lang['lockexpire']            = 'सधà¥à¤¯à¤¾ लॉक करणारा :';
-$lang['js']['willexpire']      = 'हे पृषà¥à¤  संपादित करणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ मिळालेले लॉक à¤à¤–ादà¥à¤¯à¤¾ मिनिटात संपणार आहे.\n चà¥à¤•ा होऊ नयेत मà¥à¤¹à¤£à¥à¤¨ कृपया पà¥à¤°à¥€à¤µà¥à¤¯à¥‚ बटन दाबà¥à¤¨ लॉक ची वेळ पà¥à¤¨à¥à¤¹à¤¾ चालू करा.';
-$lang['js']['notsavedyet']     = 'सà¥à¤°à¤•à¥à¤·à¤¿à¤¤ न केलेले बदल नषà¥à¤Ÿ होतील. नकà¥à¤•ी करू का ?';
-$lang['js']['searchmedia']     = 'फाईलà¥à¤¸à¤¸à¤¾à¤ à¥€ शोधा';
-$lang['js']['keepopen']        = 'निवड केलà¥à¤¯à¤¾à¤µà¤° विणà¥à¤¡à¥‹ उघडी ठेवा';
-$lang['js']['hidedetails']     = 'सविसà¥à¤¤à¤° मजकूर लपवा';
-$lang['js']['mediatitle']      = 'लिंक सेटिंग';
-$lang['js']['mediadisplay']    = 'लिंकचा पà¥à¤°à¤•ार';
-$lang['js']['mediaalign']      = 'जà¥à¤³à¤µà¤£à¥€';
-$lang['js']['mediasize']       = 'पà¥à¤°à¤¤à¤¿à¤®à¥‡à¤šà¤¾ आकार';
-$lang['js']['mediatarget']     = 'लिंकचे लकà¥à¤·à¥à¤¯';
-$lang['js']['mediaclose']      = 'बंद';
-$lang['js']['mediadisplayimg'] = 'पà¥à¤°à¤¤à¤¿à¤®à¤¾ दाखवा.';
-$lang['js']['mediadisplaylnk'] = 'फकà¥à¤¤ लिंक दाखवा.';
-$lang['js']['mediasmall']      = 'लहान आवृतà¥à¤¤à¥€';
-$lang['js']['mediamedium']     = 'माधà¥à¤¯à¤® आवृतà¥à¤¤à¥€';
-$lang['js']['medialarge']      = 'मोठी आवृतà¥à¤¤à¥€';
-$lang['js']['mediaoriginal']   = 'मूळ आवृतà¥à¤¤à¥€';
-$lang['js']['medialnk']        = 'सविसà¥à¤¤à¤° माहितीकडेची लिंक';
-$lang['js']['mediadirect']     = 'मूळ मजकà¥à¤°à¤¾à¤•डे थेट लिंक';
-$lang['js']['medianolnk']      = 'लिंक नको';
-$lang['js']['medianolink']     = 'पà¥à¤°à¤¤à¤¿à¤®à¤¾ लिंक करू नका';
-$lang['js']['medialeft']       = 'पà¥à¤°à¤¤à¤¿à¤®à¤¾ डावà¥à¤¯à¤¾ बाजूला जà¥à¤³à¤µà¥‚न घà¥à¤¯à¤¾.';
-$lang['js']['mediaright']      = 'पà¥à¤°à¤¤à¤¿à¤®à¤¾ उजवà¥à¤¯à¤¾ बाजूला जà¥à¤³à¤µà¥‚न घà¥à¤¯à¤¾.';
-$lang['js']['mediacenter']     = 'पà¥à¤°à¤¤à¤¿à¤®à¤¾ मधà¥à¤¯à¤­à¤¾à¤—ी जà¥à¤³à¤µà¥‚न घà¥à¤¯à¤¾.';
-$lang['js']['medianoalign']    = 'जà¥à¤³à¤µà¤¾à¤œà¥à¤³à¤µ वापरू नका.';
-$lang['js']['nosmblinks']      = 'विनà¥à¤¡à¥‹à¤œà¤¼ शेअर ला लिंक केलà¥à¤¯à¤¾à¤¸ ते फकà¥à¤¤ मायकà¥à¤°à¥‹à¤¸à¥‰à¥žà¥à¤Ÿ इनà¥à¤Ÿà¤°à¤¨à¥‡à¤Ÿ à¤à¤•à¥à¤¸à¥à¤ªà¥à¤²à¥‹à¤°à¤° वरच चालते. तरी तà¥à¤®à¥à¤¹à¥€ लिंक कॉपी करू शकता.';
-$lang['js']['linkwiz']         = 'लिंक जादूगार';
-$lang['js']['linkto']          = 'याला लिंक करा:';
-$lang['js']['del_confirm']     = 'निवडलेलà¥à¤¯à¤¾ गोषà¥à¤Ÿà¥€ नकà¥à¤•ी नषà¥à¤Ÿ करू का ?';
-$lang['js']['restore_confirm'] = 'हि आवृतà¥à¤¤à¥€ खरोखर पà¥à¤¨à¤°à¥à¤¸à¥à¤¥à¤¾à¤ªà¤¿à¤¤ करू का?';
-$lang['js']['media_diff']      = 'फरक बघू:';
-$lang['js']['media_diff_both'] = 'बाजूबाजूला';
-$lang['js']['media_diff_portions'] = 'सà¥à¤µà¤¾à¤ˆà¤ª';
-$lang['js']['media_select']    = 'फाईल निवड...';
-$lang['js']['media_upload_btn'] = 'अपलोड';
-$lang['js']['media_done_btn']  = 'à¤à¤¾à¤²à¤‚';
-$lang['js']['media_drop']      = 'अपलोड करणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ इथे फाईल टाका';
-$lang['js']['media_cancel']    = 'काढा';
-$lang['rssfailed']             = 'ही पà¥à¤°à¤µà¤£à¥€ आणणà¥à¤¯à¤¾à¤¤ काही चूक à¤à¤¾à¤²à¥€:';
-$lang['nothingfound']          = 'काही सापडला नाही.';
-$lang['mediaselect']           = 'दृकशà¥à¤°à¤¾à¤µà¥à¤¯ फाइल';
-$lang['uploadsucc']            = 'अपलोड यशसà¥à¤µà¥€';
-$lang['uploadfail']            = 'अपलोड अयशसà¥à¤µà¥€.कदाचित चà¥à¤•ीचà¥à¤¯à¤¾ परवानगà¥à¤¯à¤¾ असतील ?';
-$lang['uploadwrong']           = 'अपलोड नाकारणà¥à¤¯à¤¾à¤¤ आला. हे फाइल à¤à¤•à¥à¤¸à¤Ÿà¥‡à¤‚शन अवैध आहे!';
-$lang['uploadexist']           = 'फाइल आधीच असà¥à¤¤à¤¿à¤¤à¥à¤µà¤¾à¤¤ आहे. काही केले नाही.';
-$lang['uploadbadcontent']      = 'अपलोड केलेली माहिती %s फाइल à¤à¤•à¥à¤¸à¤Ÿà¥‡à¤‚शनशी मिळतिजà¥à¤³à¤¤à¤¿ नाही.';
-$lang['uploadspam']            = 'अपलोड सà¥à¤ªà¥…म बà¥à¤²à¥…कलिसà¥à¤Ÿà¤®à¥à¤³à¥‡ थोपवला आहे.';
-$lang['uploadxss']             = 'अपलोड संशयित हानिकारक मजकूर असलà¥à¤¯à¤¾à¤¨à¥‡ थोपवला आहे.';
-$lang['uploadsize']            = 'अपलोड केलेली फाइल जासà¥à¤¤à¥€à¤š मोठी होती. (जासà¥à¤¤à¥€à¤¤ जासà¥à¤¤ %s)';
-$lang['deletesucc']            = '%s ही फाइल नषà¥à¤Ÿ करणà¥à¤¯à¤¾à¤¤ आलेली आहे.';
-$lang['deletefail']            = '%s ही फाइल नषà¥à¤Ÿ करू शकलो नाही - कृपया परवानगà¥à¤¯à¤¾ तपासा.';
-$lang['mediainuse']            = '%s ही फाइल नषà¥à¤Ÿ केली नाही - ती अजà¥à¤¨ वापरात आहे.';
-$lang['namespaces']            = 'नेमसà¥à¤ªà¥‡à¤¸';
-$lang['mediafiles']            = 'मधà¥à¤¯à¥‡ उपलबà¥à¤§ असलेलà¥à¤¯à¤¾ फाइल';
-$lang['accessdenied']          = 'तà¥à¤®à¥à¤¹à¤¾à¤²à¤¾ हे पान बघायची परवानगी नाही.';
-$lang['mediausage']            = 'हà¥à¤¯à¤¾ फाइलचा संदरà¥à¤­ देणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ खालील सिनà¥à¤Ÿà¥…कà¥à¤¸ वापरा :';
-$lang['mediaview']             = 'मूळ फाइल बघू ';
-$lang['mediaroot']             = 'रूट';
-$lang['mediaupload']           = 'सधà¥à¤¯à¤¾à¤šà¥à¤¯à¤¾ नेमसà¥à¤ªà¥‡à¤¸à¤®à¤§à¥‡ इथेच फाइल अपलोड करा. उप-नेमसà¥à¤ªà¥‡à¤¸ बनवणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¤¿ तà¥à¤¯à¤¾à¤šà¥‡ नाव तà¥à¤®à¤šà¥à¤¯à¤¾ "अपलोड उरà¥à¤«à¤¼" मधे दिलेलà¥à¤¯à¤¾ फाइल नावाचà¥à¤¯à¤¾ आधी विसरà¥à¤—चिनà¥à¤¹à¤¾à¤¨à¥‡ वेगळे करून ते वापरा.';
-$lang['mediaextchange']        = 'फाइलचे à¤à¤•à¥à¤¸à¤Ÿà¥‡à¤‚शन .%s चे बदलून  .%s केले आहे.';
-$lang['reference']             = 'चà¥à¤¯à¤¾ साठी संदरà¥à¤­';
-$lang['ref_inuse']             = 'फाइल नषà¥à¤Ÿ केली जाऊ शकत नाही. ती अजà¥à¤¨ खालील पृषà¥à¤ à¥‡ वापरत आहेत :';
-$lang['ref_hidden']            = 'काही संदरà¥à¤­ तà¥à¤®à¥à¤¹à¤¾à¤²à¤¾ वाचणà¥à¤¯à¤¾à¤šà¥€ परवानगी नसलेलà¥à¤¯à¤¾ पृषà¥à¤ à¤¾à¤µà¤° आहेत';
-$lang['hits']                  = 'हिटà¥à¤¸';
-$lang['quickhits']             = 'जà¥à¤³à¤£à¤¾à¤°à¤¿ पाने';
-$lang['toc']                   = 'अनà¥à¤•à¥à¤°à¤®à¤£à¤¿à¤•ा';
-$lang['current']               = 'चालू';
-$lang['yours']                 = 'तà¥à¤®à¤šà¥€ आवृतà¥à¤¤à¤¿';
-$lang['diff']                  = 'सधà¥à¤¯à¤¾à¤šà¥à¤¯à¤¾ आवृतà¥à¤¤à¤¿à¤‚शी फरक दाखवा';
-$lang['diff2']                 = 'निवडलेलà¥à¤¯à¤¾ आवृतà¥à¤¤à¤¿à¤‚मधील फरक दाखवा';
-$lang['difflink']              = 'हà¥à¤¯à¤¾ तà¥à¤²à¤¨à¤¾ दृषà¥à¤Ÿà¥€à¤•ोनाला लिंक करा';
-$lang['diff_type']             = 'फरक बघू:';
-$lang['diff_inline']           = 'à¤à¤•ा ओळीत';
-$lang['diff_side']             = 'बाजूबाजूला';
-$lang['line']                  = 'ओळ';
-$lang['breadcrumb']            = 'मागमूस:';
-$lang['youarehere']            = 'तà¥à¤®à¥à¤¹à¥€ इथे आहात:';
-$lang['lastmod']               = 'सरà¥à¤µà¤¾à¤¤ शेवटचा बदल:';
-$lang['by']                    = 'दà¥à¤µà¤¾à¤°à¤¾';
-$lang['deleted']               = 'काढून टाकले';
-$lang['created']               = 'निरà¥à¤®à¤¾à¤£ केले';
-$lang['external_edit']         = 'बाहेरून संपादित';
-$lang['summary']               = 'सारांश बदला';
-$lang['noflash']               = 'ही माहिती दाखवणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ <a href="http://www.adobe.com/products/flashplayer/">अडोब फà¥à¤²à¥…श पà¥à¤²à¥‡à¤…र</a> ची गरज आहे.';
-$lang['download']              = 'तà¥à¤•डा डाउनलोड करा';
-$lang['tools']                 = 'साधने';
-$lang['user_tools']            = 'यà¥à¤œà¤°à¤šà¥€ साधने';
-$lang['site_tools']            = 'साईटची साधने';
-$lang['page_tools']            = 'पानाची साधने';
-$lang['skip_to_content']       = 'सरळ मजकà¥à¤°à¤¾à¤•डे ';
-$lang['mail_newpage']          = 'पृषà¥à¤  जोडले : ';
-$lang['mail_changed']          = 'पृषà¥à¤  बदलले : ';
-$lang['mail_subscribe_list']   = 'हà¥à¤¯à¤¾ नेमसà¥à¤ªà¥‡à¤¸ नाढे बदललेली पाने:';
-$lang['mail_new_user']         = 'नवीन सदसà¥à¤¯ : ';
-$lang['mail_upload']           = 'फाइल अपलोड केली : ';
-$lang['changes_type']          = 'हà¥à¤¯à¤¾à¤šà¥‡ बदल बघू';
-$lang['pages_changes']         = 'पाने';
-$lang['media_changes']         = 'मिडिया फाईल';
-$lang['both_changes']          = 'पाने आणि मिडिया फाईल दोनà¥à¤¹à¥€';
-$lang['qb_bold']               = 'ठळक मजकूर';
-$lang['qb_italic']             = 'तिरका मजकूर';
-$lang['qb_underl']             = 'अधोरेखित मजकूर';
-$lang['qb_code']               = 'कोड मजकूर';
-$lang['qb_strike']             = 'रदà¥à¤¦ मजकूर';
-$lang['qb_h1']                 = 'पहिलà¥à¤¯à¤¾ पातळीचे शीरà¥à¤·à¤•';
-$lang['qb_h2']                 = 'दà¥à¤¸à¤°à¥à¤¯à¤¾ पातळीचे शीरà¥à¤·à¤•';
-$lang['qb_h3']                 = 'तिसरà¥à¤¯à¤¾ पातळीचे शीरà¥à¤·à¤•';
-$lang['qb_h4']                 = 'चवथà¥à¤¯à¤¾ पातळीचे शीरà¥à¤·à¤•';
-$lang['qb_h5']                 = 'पाचवà¥à¤¯à¤¾ पातळीचे शीरà¥à¤·à¤•';
-$lang['qb_h']                  = 'शीरà¥à¤·à¤•';
-$lang['qb_hs']                 = 'शीरà¥à¤·à¤• निवड';
-$lang['qb_hplus']              = 'उंच शीरà¥à¤·à¤•';
-$lang['qb_hminus']             = 'खालचं शीरà¥à¤·à¤•';
-$lang['qb_hequal']             = 'समान लेवलचे शीरà¥à¤·à¤•';
-$lang['qb_link']               = 'अंतरà¥à¤—त लिंक';
-$lang['qb_extlink']            = 'बाहà¥à¤¯ लिंक';
-$lang['qb_hr']                 = 'आडवी पटà¥à¤Ÿà¥€';
-$lang['qb_ol']                 = 'अनà¥à¤•à¥à¤°à¤®à¤¿à¤¤ यादीतील वसà¥à¤¤à¥';
-$lang['qb_ul']                 = 'साधà¥à¤¯à¤¾ यादीतील वसà¥à¤¤à¥';
-$lang['qb_media']              = 'पà¥à¤°à¤¤à¤¿à¤®à¤¾ आणि इतर फाइल टाका';
-$lang['qb_sig']                = 'सà¥à¤µà¤¾à¤•à¥à¤·à¤°à¥€ टाका';
-$lang['qb_smileys']            = 'सà¥à¤®à¤¾à¤‡à¤²à¥€';
-$lang['qb_chars']              = 'ख़ास चिनà¥à¤¹';
-$lang['upperns']               = 'हà¥à¤¯à¤¾à¤µà¤°à¤šà¥à¤¯à¤¾ नेमसà¥à¤ªà¥‡à¤¸à¤•डे उडी मारा';
-$lang['metaedit']              = 'मेटाडेटा बदला';
-$lang['metasaveerr']           = 'मेटाडेटा सà¥à¤°à¤•à¥à¤·à¤¿à¤¤ à¤à¤¾à¤²à¤¾ नाही';
-$lang['metasaveok']            = 'मेटाडेटा सà¥à¤°à¤•à¥à¤·à¤¿à¤¤ à¤à¤¾à¤²à¤¾';
-$lang['btn_img_backto']            = 'परत जा %s';
-$lang['img_title']             = 'नाव:';
-$lang['img_caption']           = 'टीप:';
-$lang['img_date']              = 'तारीख:';
-$lang['img_fname']             = 'फाइल नाव:';
-$lang['img_fsize']             = 'साइà¤:';
-$lang['img_artist']            = 'फोटोगà¥à¤°à¤¾à¤«à¤°:';
-$lang['img_copyr']             = 'कॉपीराइट:';
-$lang['img_format']            = 'पà¥à¤°à¤•ार:';
-$lang['img_camera']            = 'कॅमेरा:';
-$lang['img_keywords']          = 'मà¥à¤–à¥à¤¯ शबà¥à¤¦:';
-$lang['img_width']             = 'रà¥à¤‚दी:';
-$lang['img_height']            = 'उंची:';
-$lang['btn_mediaManager']           = 'मिडिया वà¥à¤¯à¤µà¤¸à¥à¤¥à¤¾à¤ªà¤•ात बघू';
-$lang['authtempfail']          = 'सदसà¥à¤¯ अधिकृत करणà¥à¤¯à¤¾à¤šà¥€ सà¥à¤µà¤¿à¤§à¤¾ सधà¥à¤¯à¤¾ चालू नाही. सतत हा मजकूर दिसलà¥à¤¯à¤¾à¤¸ कृपया तà¥à¤®à¤šà¥à¤¯à¤¾ विकीचà¥à¤¯à¤¾ वà¥à¤¯à¤µà¤¸à¥à¤¥à¤¾à¤ªà¤•ाशी समà¥à¤ªà¤°à¥à¤• साधा.';
-$lang['i_chooselang']          = 'तà¥à¤®à¤šà¥€ भाषा निवडा';
-$lang['i_installer']           = 'डॉकà¥à¤¯à¥à¤µà¤¿à¤•ि इनसà¥à¤Ÿà¥‰à¤²à¤°';
-$lang['i_wikiname']            = 'विकी नाम';
-$lang['i_enableacl']           = 'ACL चालू करा ( अधिक चांगले )';
-$lang['i_superuser']           = 'सà¥à¤ªà¤°-सदसà¥à¤¯';
-$lang['i_problems']            = 'इनसà¥à¤Ÿà¥‰à¤²à¤°à¤²à¤¾ काही अडचणि आलà¥à¤¯à¤¾ आहेत. तà¥à¤¯à¤¾ ठीक केलà¥à¤¯à¤¾à¤¶à¤¿à¤µà¤¾à¤¯ तà¥à¤®à¥à¤¹à¥€ पà¥à¤¢à¥‡ जाऊ शकत नाही.';
-$lang['i_modified']            = 'सà¥à¤°à¤•à¥à¤·à¤¿à¤¤à¤¤à¥‡à¤šà¥à¤¯à¤¾ कारणासठि ही सà¥à¤•à¥à¤°à¤¿à¤ªà¥à¤Ÿ फ़कà¥à¤¤ नवीन आणि बदललेलà¥à¤¯à¤¾ डॉकà¥à¤¯à¥à¤µà¤¿à¤•ि इनà¥à¤¸à¥à¤Ÿà¥‰à¤²à¥‡à¤¶à¤¨ मधेच चालेल. तà¥à¤®à¥à¤¹à¥€ à¤à¤•तर डाउनलोड केलेले पॅकेज मधील फाइल परत पà¥à¤°à¤¸à¤¾à¤°à¤¿à¤¤ करा किंवा <a href="http://dokuwiki.org/install">डॉकà¥à¤¯à¥à¤µà¤¿à¤•ि इनà¥à¤¸à¥à¤Ÿà¥‰à¤²à¥‡à¤¶à¤¨ विषयी सूचना</a> वाचा.';
-$lang['i_funcna']              = 'PHP  मधलं <code>%s</code> हे फंकà¥à¤¶à¤¨ उपलबà¥à¤§ नाही. बहà¥à¤§à¤¾ तà¥à¤®à¤šà¥à¤¯à¤¾ होसà¥à¤Ÿà¤¿à¤‚ग पà¥à¤°à¤µà¤£à¤¾à¤°à¤¾à¤¨à¥‡ ते काही कारणाने अनà¥à¤ªà¤²à¤¬à¥à¤§ केलं असावं.';
-$lang['i_phpver']              = 'तà¥à¤®à¤šà¥€ PHP आवृतà¥à¤¤à¤¿ <code>%s</code> ही आवशà¥à¤¯à¤• असलेलà¥à¤¯à¤¾ <code>%s</code> हà¥à¤¯à¤¾ आवृतà¥à¤¤à¤¿à¤ªà¥‡à¤•à¥à¤·à¤¾ कमी आहे. कृपया तà¥à¤®à¤šà¥‡ PHP इनà¥à¤¸à¥à¤Ÿà¥‰à¤²à¥‡à¤¶à¤¨ अदà¥à¤¯à¤¯à¤¾à¤µà¤¤ करा.';
-$lang['i_permfail']            = '<code>%s</code> या डिरेकà¥à¤Ÿà¤°à¥€ मधà¥à¤¯à¥‡ डॉकà¥à¤¯à¥à¤µà¤¿à¤•ि बदल करू शकत नाही. कृपया या डिरेकà¥à¤Ÿà¤°à¥€à¤šà¥à¤¯à¤¾ परवानगà¥à¤¯à¤¾ ठीक करा.';
-$lang['i_confexists']          = '<code>%s</code> आधीच असà¥à¤¤à¤¿à¤¤à¥à¤µà¤¾à¤¤ आहे.';
-$lang['i_writeerr']            = '<code>%s</code> निरà¥à¤®à¤¾à¤£ करू शकलो नाही. तà¥à¤®à¥à¤¹à¤¾à¤²à¤¾ डिरेकà¥à¤Ÿà¤°à¥€ / फाइल चà¥à¤¯à¤¾ परवानगà¥à¤¯à¤¾ तपासून सà¥à¤µà¤¤à¤ƒà¤š ही फाइल बनवावी लागेल.';
-$lang['i_badhash']             = 'अनाकलनीय किंवा बदललेले dokuwiki.php (hash=<code>%s</code>)';
-$lang['i_badval']              = 'code>%s</code> - अवैध किंवा रिकामा मजकूर.';
-$lang['i_success']             = 'वà¥à¤¯à¤µà¤¸à¥à¤¥à¤¾ लावणà¥à¤¯à¤¾à¤šà¥‡ काम यशसà¥à¤µà¥€à¤°à¥€à¤¤à¥à¤¯à¤¾ पार पडले. आता तà¥à¤®à¥à¤¹à¥€ install.php डिलीट करू शकता. <a href="doku.php?id=wiki:welcome">तà¥à¤®à¤šà¥à¤¯à¤¾ नविन डॉकà¥à¤¯à¥à¤µà¤¿à¤•ि </a> वर जा.';
-$lang['i_failure']             = 'कॉनà¥à¤«à¤¿à¤—à¥à¤°à¥‡à¤¶à¤¨à¤šà¥à¤¯à¤¾ फाइल सà¥à¤°à¤•à¥à¤·à¤¿à¤¤ करताना काही अडचणी आलà¥à¤¯à¤¾ आहेत. <a href="doku.php?id=wiki:welcome">तà¥à¤®à¤šà¥€ नवीन डॉकà¥à¤¯à¥à¤µà¤¿à¤•ि </a> वापरणà¥à¤¯à¤¾à¤†à¤§à¥€ तà¥à¤®à¥à¤¹à¤¾à¤²à¤¾ हà¥à¤¯à¤¾ फाइल सà¥à¤µà¤¤à¤ƒ ठीक करावà¥à¤¯à¤¾ लागतील.';
-$lang['i_policy']              = 'आरंभीची ACL पॉलिसी';
-$lang['i_pol0']                = 'मà¥à¤•à¥à¤¤ विकी ( सरà¥à¤µà¤¾à¤‚ना वाचन, लेखन व अपलोड करणà¥à¤¯à¤¾à¤šà¥€ परवानगी )';
-$lang['i_pol1']                = 'सारà¥à¤µà¤œà¤¨à¤¿à¤• विकी ( सरà¥à¤µà¤¾à¤‚ना वाचणà¥à¤¯à¤¾à¤šà¥€ मà¥à¤­à¤¾ , लेखन व अपलोडची परवानगी फकà¥à¤¤ नोंदणीकृत सदसà¥à¤¯à¤¾à¤‚ना )';
-$lang['i_pol2']                = 'बंदिसà¥à¤¤ विकी ( वाचन , लेखन व अपलोडची परवानगी फकà¥à¤¤ नोंदणीकृत सदसà¥à¤¯à¤¾à¤‚ना ) ';
-$lang['i_retry']               = 'पà¥à¤¨à¥à¤¹à¤¾ पà¥à¤°à¤¯à¤¤à¥à¤¨';
-$lang['recent_global']         = 'तà¥à¤®à¥à¤¹à¥€ सधà¥à¤¯à¤¾ <b>%s</b> या नेमसà¥à¤ªà¥‡à¤¸ मधील बदल पाहात आहात.तà¥à¤®à¥à¤¹à¥€ <a href="%s">पूरà¥à¤£ विकी मधले बदल </a> सà¥à¤¦à¥à¤§à¤¾ पाहू शकता.';
-$lang['email_signature_text'] = 'हा ईमेल, येथील डॉकà¥à¤¯à¥à¤µà¤¿à¤•िदà¥à¤µà¤¾à¤°à¤¾ आपोआप तयार केला गेला आहे
-@DOKUWIKIURL@';
diff --git a/wiki/inc/lang/mr/locked.txt b/wiki/inc/lang/mr/locked.txt
deleted file mode 100644
index dae909c..0000000
--- a/wiki/inc/lang/mr/locked.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== पान लॉक आहे ======
-
-हे पान सधà¥à¤¯à¤¾ दà¥à¤¸à¤°à¥à¤¯à¤¾ सदसà¥à¤¯à¤¾à¤¨à¥‡ संपादनासाठी लॉक केले आहे. तà¥à¤®à¥à¤¹à¤¾à¤²à¤¾ तà¥à¤¯à¤¾à¤šà¥‡ संपादन करून होईपरà¥à¤¯à¤‚त किंवा लॉक संपेपरà¥à¤¯à¤‚त थांबावे लागेल.
\ No newline at end of file
diff --git a/wiki/inc/lang/mr/login.txt b/wiki/inc/lang/mr/login.txt
deleted file mode 100644
index f2fef4c..0000000
--- a/wiki/inc/lang/mr/login.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== लॉगिन ======
-
-तà¥à¤®à¥à¤¹à¥€ सधà¥à¤¯à¤¾ लॉगिन केलेले नाही! तà¥à¤®à¤šà¥‡ नाव-पासवरà¥à¤¡ देऊन खाली लॉगिन करा. लॉगिन करणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ तà¥à¤®à¤šà¥à¤¯à¤¾ बà¥à¤°à¤¾à¤‰à¤œà¤°à¤®à¤§à¥‡ कà¥à¤•ीज चालू असलà¥à¤¯à¤¾ पाहिजेत.
\ No newline at end of file
diff --git a/wiki/inc/lang/mr/mailtext.txt b/wiki/inc/lang/mr/mailtext.txt
deleted file mode 100644
index 826ab0c..0000000
--- a/wiki/inc/lang/mr/mailtext.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-तà¥à¤®à¤šà¥à¤¯à¤¾ डॉकà¥à¤¯à¥à¤µà¤¿à¤•िमधील à¤à¤• पान बदलले किंवा नवीन टाकले गेले आहे. तà¥à¤¯à¤¾à¤šà¥€ माहिती पà¥à¤¢à¥€à¤² पà¥à¤°à¤®à¤¾à¤£à¥‡ :
-
-दिनांक : @DATE@
-बà¥à¤°à¤¾à¤‰à¤œà¤° : @BROWSER@
-IP-पतà¥à¤¤à¤¾ : @IPADDRESS@
-मशिनचे नाव ( Host name ) : @HOSTNAME@
-जà¥à¤¨à¥€ आवृतà¥à¤¤à¥€ : @OLDPAGE@
-नवी आवृतà¥à¤¤à¥€ : @NEWPAGE@
-संपादन सारांश : @SUMMARY@
-सदसà¥à¤¯ : @USER@
-
-@DIFF@
diff --git a/wiki/inc/lang/mr/newpage.txt b/wiki/inc/lang/mr/newpage.txt
deleted file mode 100644
index 00a1c6b..0000000
--- a/wiki/inc/lang/mr/newpage.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== हा मà¥à¤¦à¥à¤¦à¤¾ अजून असà¥à¤¤à¤¿à¤¤à¥à¤¤à¥à¤µà¤¾à¤¤ नाही ======
-
-तà¥à¤®à¤šà¥€ अशा à¤à¤–ादà¥à¤¯à¤¾ मà¥à¤¦à¥à¤¦à¥à¤¯à¤¾à¤šà¥à¤¯à¤¾ लिंक वरून इथे आला आहात जो अजून असà¥à¤¤à¤¿à¤¤à¥à¤¤à¥à¤µà¤¾à¤¤ नाही. जर तà¥à¤®à¥à¤¹à¤¾à¤²à¤¾ परवानगी असेल तर तà¥à¤®à¤šà¥€ तà¥à¤¯à¤¾ मà¥à¤¦à¥à¤¦à¥à¤¯à¤¾à¤µà¤° "हे पान नवीन तयार करा" हे बटण कà¥à¤²à¤¿à¤• करून सà¥à¤µà¤¤à¤ƒ à¤à¤• पान तयार करू शकता.
\ No newline at end of file
diff --git a/wiki/inc/lang/mr/norev.txt b/wiki/inc/lang/mr/norev.txt
deleted file mode 100644
index 180b031..0000000
--- a/wiki/inc/lang/mr/norev.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== अशी कà¥à¤ à¤²à¥€ आवृतà¥à¤¤à¥€ नाही ======
-
-ही आवृतà¥à¤¤à¥€ असà¥à¤¤à¤¿à¤¤à¥à¤¤à¥à¤µà¤¾à¤¤ नाही. "जà¥à¤¨à¥à¤¯à¤¾ आवृतà¥à¤¤à¥à¤¯à¤¾" बटण वापरून या दसà¥à¤¤à¤¾à¤µà¥‡à¤œà¤¾à¤šà¥à¤¯à¤¾ सरà¥à¤µ जà¥à¤¨à¥à¤¯à¤¾ आवृतà¥à¤¤à¥à¤¯à¤¾ तà¥à¤®à¤šà¥€ पाहू शकता.
\ No newline at end of file
diff --git a/wiki/inc/lang/mr/password.txt b/wiki/inc/lang/mr/password.txt
deleted file mode 100644
index a83f97e..0000000
--- a/wiki/inc/lang/mr/password.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-नमसà¥à¤•ार @FULLNAME@!
-
-खाली तà¥à¤®à¤šà¥à¤¯à¤¾ @DOKUWIKIURL@ येथील @TITLE@ साठी सदसà¥à¤¯ माहिती दिली आहे.
-
-लॉगिन :  @LOGIN@
-पासवरà¥à¤¡ : @PASSWORD@
diff --git a/wiki/inc/lang/mr/preview.txt b/wiki/inc/lang/mr/preview.txt
deleted file mode 100644
index 8277398..0000000
--- a/wiki/inc/lang/mr/preview.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== à¤à¤²à¤• ======
-
-ही तà¥à¤®à¤šà¤¾ मजकूर कसा दिसेल तà¥à¤¯à¤¾à¤šà¥€ à¤à¤• à¤à¤²à¤• आहे. लकà¥à¤·à¤¾à¤¤ ठेवा : हा मजकूर अजà¥à¤¨ **सà¥à¤°à¤•à¥à¤·à¤¿à¤¤ केलेला नाही** !
\ No newline at end of file
diff --git a/wiki/inc/lang/mr/pwconfirm.txt b/wiki/inc/lang/mr/pwconfirm.txt
deleted file mode 100644
index 8c03f17..0000000
--- a/wiki/inc/lang/mr/pwconfirm.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-नमसà¥à¤•ार @FULLNAME@!
-
-कोणीतरी तà¥à¤®à¤šà¥à¤¯à¤¾ @TITLE@ या @DOKUWIKIURL@ येथील लॉगिनसाठी नवीन पासवरà¥à¤¡ मागवला आहे.
-जर तà¥à¤®à¥à¤¹à¥€ हा पासवरà¥à¤¡ मागवला नसेल तर कृपया हà¥à¤¯à¤¾ ईमेलकड़े दà¥à¤°à¥à¤²à¤•à¥à¤· करा.
-
-जर नकà¥à¤•ी तà¥à¤®à¥à¤¹à¥€à¤š हा पासवरà¥à¤¡ मागवला असेल तर खालील लिंकवर कà¥à¤²à¤¿à¤• करून ते नकà¥à¤•ी करा.
-
-@CONFIRM@
diff --git a/wiki/inc/lang/mr/read.txt b/wiki/inc/lang/mr/read.txt
deleted file mode 100644
index b834dd7..0000000
--- a/wiki/inc/lang/mr/read.txt
+++ /dev/null
@@ -1 +0,0 @@
-हे पान फकà¥à¤¤ वाचता येऊ शकतं. तà¥à¤®à¥à¤¹à¥€ तà¥à¤¯à¤¾à¤šà¤¾ मूळ विकी मजकूर पाहू शकता पण तो बदलू शकत नाही. जर हे चà¥à¤•ीचं असेल तर तà¥à¤®à¤šà¥à¤¯à¤¾ विकी वà¥à¤¯à¤µà¤¸à¥à¤¥à¤¾à¤ªà¤•ाशी संपरà¥à¤• साधा.
\ No newline at end of file
diff --git a/wiki/inc/lang/mr/recent.txt b/wiki/inc/lang/mr/recent.txt
deleted file mode 100644
index 9a6d6f1..0000000
--- a/wiki/inc/lang/mr/recent.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== अलीकडील बदल ======
-
-खालील पाने हलà¥à¤²à¥€à¤š बदलली आहेत
\ No newline at end of file
diff --git a/wiki/inc/lang/mr/register.txt b/wiki/inc/lang/mr/register.txt
deleted file mode 100644
index 3aca312..0000000
--- a/wiki/inc/lang/mr/register.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== नवीन सदसà¥à¤¯ मà¥à¤¹à¤£à¥à¤¨ नोंदणी करा ======
-
-खाली तà¥à¤®à¤šà¥€ माहिती भरून या विकी वर नवीन खातं उघडा. कृपया आपण देत असलेला ईमेल चालू असलà¥à¤¯à¤¾à¤šà¥€ खातà¥à¤°à¥€ करा - जर तà¥à¤®à¥à¤¹à¤¾à¤²à¤¾ इथे पासवरà¥à¤¡ टाकायला सांगितला नाही तयार à¤à¤• नवीन पासवरà¥à¤¡ तà¥à¤®à¥à¤¹à¤¾à¤²à¤¾ तà¥à¤¯à¤¾ ईमेल वर पाठवला जाइल. तà¥à¤®à¤šà¤‚ लॉगिन नाम à¤à¤• वैध [[doku>pagename|पेजनेम]] असले पाहिजे.
\ No newline at end of file
diff --git a/wiki/inc/lang/mr/registermail.txt b/wiki/inc/lang/mr/registermail.txt
deleted file mode 100644
index ed3b92b..0000000
--- a/wiki/inc/lang/mr/registermail.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-à¤à¤• नवीन सदसà¥à¤¯à¤¾à¤šà¥€ नोंदणी à¤à¤¾à¤²à¥€ आहे. तà¥à¤¯à¤¾à¤šà¥€ माहीत पà¥à¤¢à¥€à¤²à¤ªà¥à¤°à¤®à¤¾à¤£à¥‡ :
-
-सदसà¥à¤¯ नाम :  @NEWUSER@
-पूरà¥à¤£ नाव : @NEWNAME@
-ईमेल : @NEWEMAIL@
-
-दिनांक : @DATE@
-बà¥à¤°à¤¾à¤‰à¤œà¤° : @BROWSER@
-IP-पतà¥à¤¤à¤¾ : @IPADDRESS@
-होसà¥à¤Ÿ नाम : @HOSTNAME@
diff --git a/wiki/inc/lang/mr/resendpwd.txt b/wiki/inc/lang/mr/resendpwd.txt
deleted file mode 100644
index 64b95a4..0000000
--- a/wiki/inc/lang/mr/resendpwd.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== नवीन पासवरà¥à¤¡ पाठव ======
-
-या विकिवरील तà¥à¤®à¤šà¥à¤¯à¤¾ अकाउंटसाठी नवीन पासवरà¥à¤¡ मिळवणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ कृपया तà¥à¤®à¤šà¥‡ सदसà¥à¤¯ नाम खालचà¥à¤¯à¤¾ फॉरà¥à¤® मधे टाका. ही पासवरà¥à¤¡à¤šà¥€ मागणी नकà¥à¤•ी करणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ तà¥à¤®à¥à¤¹à¥€ नोंदणी करताना दिलेलà¥à¤¯à¤¾ ईमेल पतà¥à¤¤à¥à¤¯à¤¾à¤µà¤° à¤à¤• लिंक पाठवली जाइल.
\ No newline at end of file
diff --git a/wiki/inc/lang/mr/revisions.txt b/wiki/inc/lang/mr/revisions.txt
deleted file mode 100644
index fb842c7..0000000
--- a/wiki/inc/lang/mr/revisions.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== जà¥à¤¨à¥à¤¯à¤¾ आवृतà¥à¤¤à¥à¤¯à¤¾ ======
-
-हà¥à¤¯à¤¾ सदà¥à¤¯ दसà¥à¤¤à¤¾à¤µà¥‡à¤œà¤šà¥à¤¯à¤¾ जà¥à¤¨à¥à¤¯à¤¾ आवृतà¥à¤¤à¥à¤¯à¤¾ आहेत. à¤à¤–ादà¥à¤¯à¤¾ जà¥à¤¨à¥à¤¯à¤¾ आवृतà¥à¤¤à¥€à¤µà¤° परत जाणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ टी खालून निवडा, "हे पान संपादित करा" वर कà¥à¤²à¤¿à¤• करा आणि ते सà¥à¤°à¤•à¥à¤·à¤¿à¤¤ करा.
\ No newline at end of file
diff --git a/wiki/inc/lang/mr/searchpage.txt b/wiki/inc/lang/mr/searchpage.txt
deleted file mode 100644
index 707e699..0000000
--- a/wiki/inc/lang/mr/searchpage.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== शोध ======
-
-तà¥à¤®à¥à¤¹à¤¾à¤²à¤¾ खाली तà¥à¤®à¤šà¥à¤¯à¤¾ शोधाचे फलित दिसतील. @CREATEPAGEINFO@
-
diff --git a/wiki/inc/lang/mr/showrev.txt b/wiki/inc/lang/mr/showrev.txt
deleted file mode 100644
index dc05830..0000000
--- a/wiki/inc/lang/mr/showrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-** ही हà¥à¤¯à¤¾ दसà¥à¤¤à¤¾à¤µà¥‡à¤œà¤šà¥€ जà¥à¤¨à¥€ आवृतà¥à¤¤à¥€ आहे. **
-----
\ No newline at end of file
diff --git a/wiki/inc/lang/mr/stopwords.txt b/wiki/inc/lang/mr/stopwords.txt
deleted file mode 100644
index 2b413a9..0000000
--- a/wiki/inc/lang/mr/stopwords.txt
+++ /dev/null
@@ -1,39 +0,0 @@
-# ही अशा शबà¥à¤¦à¤¾à¤‚ची यादी आहे जी अनà¥à¤•à¥à¤°à¤®à¤• (इंडेकà¥à¤¸à¤°) दà¥à¤°à¥à¤²à¤•à¥à¤·à¤¿à¤¤ करतो, जर à¤à¤• ओळित à¤à¤• शबà¥à¤¦ आला तरच.
-# ही यादी बदललà¥à¤¯à¤¾à¤¸ केवळ यूनिकà¥à¤¸ पदà¥à¤§à¤¤à¥€à¤šà¥€ लाइन à¤à¤‚डिंग वापरा. तीन अकà¥à¤·à¤°à¤¾à¤ªà¥‡à¤•à¥à¤·à¤¾ लहान शबà¥à¤¦ टाकणà¥à¤¯à¤¾à¤šà¥€
-# गरज नाही - ते आपोआपच दà¥à¤°à¥à¤²à¤•à¥à¤·à¤¿à¤¤ केले जातात. ही यादी http://www.ranks.nl/stopwords/ येथील यादीवर
-# आधारित आहे.
-about
-are
-as
-an
-and
-you
-your
-them
-their
-com
-for
-from
-into
-if
-in
-is
-it
-how
-of
-on
-or
-that
-the
-this
-to
-was
-what
-when
-where
-who
-will
-with
-und
-the
-www
\ No newline at end of file
diff --git a/wiki/inc/lang/mr/updateprofile.txt b/wiki/inc/lang/mr/updateprofile.txt
deleted file mode 100644
index c08810f..0000000
--- a/wiki/inc/lang/mr/updateprofile.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== तà¥à¤®à¤šà¥€ सदसà¥à¤¯ माहिती अदà¥à¤¯à¤¯à¤¾à¤µà¤¤ करा ======
-
-फ़कà¥à¤¤ तà¥à¤®à¥à¤¹à¤¾à¤²à¤¾ बदल करायचा असेल तेच रकाने परत भरा. तà¥à¤®à¤šà¥€ तà¥à¤®à¤šà¥‡ सदसà¥à¤¯ नाम बदलू शकत नाही.
\ No newline at end of file
diff --git a/wiki/inc/lang/mr/uploadmail.txt b/wiki/inc/lang/mr/uploadmail.txt
deleted file mode 100644
index 1aea97c..0000000
--- a/wiki/inc/lang/mr/uploadmail.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-à¤à¤• फाइल तà¥à¤®à¤šà¥à¤¯à¤¾ डॉकà¥à¤¯à¥à¤µà¤¿à¤•िवर अपलोड केली गेली आहे. तà¥à¤¯à¤¾à¤šà¥€ माहिती यापà¥à¤°à¤®à¤¾à¤£à¥‡ :
-
-फाइल : @MEDIA@
-दिनांक : @DATE@
-बà¥à¤°à¤¾à¤‰à¤œà¤° : @BROWSER@
-IP-पतà¥à¤¤à¤¾ : @IPADDRESS@
-होसà¥à¤Ÿà¤¨à¤¾à¤® : @HOSTNAME@
-साइज़ : @SIZE@
-MIME टाइप : @MIME@
-सदसà¥à¤¯ : @USER@
diff --git a/wiki/inc/lang/ms/jquery.ui.datepicker.js b/wiki/inc/lang/ms/jquery.ui.datepicker.js
deleted file mode 100644
index 58bc4f5..0000000
--- a/wiki/inc/lang/ms/jquery.ui.datepicker.js
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Malaysian initialisation for the jQuery UI date picker plugin. */
-/* Written by Mohd Nawawi Mohamad Jamili (nawawi@ronggeng.net). */
-( function( factory ) {
-	if ( typeof define === "function" && define.amd ) {
-
-		// AMD. Register as an anonymous module.
-		define( [ "../widgets/datepicker" ], factory );
-	} else {
-
-		// Browser globals
-		factory( jQuery.datepicker );
-	}
-}( function( datepicker ) {
-
-datepicker.regional.ms = {
-	closeText: "Tutup",
-	prevText: "&#x3C;Sebelum",
-	nextText: "Selepas&#x3E;",
-	currentText: "hari ini",
-	monthNames: [ "Januari","Februari","Mac","April","Mei","Jun",
-	"Julai","Ogos","September","Oktober","November","Disember" ],
-	monthNamesShort: [ "Jan","Feb","Mac","Apr","Mei","Jun",
-	"Jul","Ogo","Sep","Okt","Nov","Dis" ],
-	dayNames: [ "Ahad","Isnin","Selasa","Rabu","Khamis","Jumaat","Sabtu" ],
-	dayNamesShort: [ "Aha","Isn","Sel","Rab","kha","Jum","Sab" ],
-	dayNamesMin: [ "Ah","Is","Se","Ra","Kh","Ju","Sa" ],
-	weekHeader: "Mg",
-	dateFormat: "dd/mm/yy",
-	firstDay: 0,
-	isRTL: false,
-	showMonthAfterYear: false,
-	yearSuffix: "" };
-datepicker.setDefaults( datepicker.regional.ms );
-
-return datepicker.regional.ms;
-
-} ) );
diff --git a/wiki/inc/lang/ms/lang.php b/wiki/inc/lang/ms/lang.php
deleted file mode 100644
index 14cb94e..0000000
--- a/wiki/inc/lang/ms/lang.php
+++ /dev/null
@@ -1,95 +0,0 @@
-<?php
-/**
- * ms language file
- *
- * This file was initially built by fetching translations from other
- * Wiki projects. See the @url lines below. Additional translations
- * and fixes where done for DokuWiki by the people mentioned in the
- * lines starting with @author
- *
- * @url http://svn.wikimedia.org/viewvc/mediawiki/trunk/phase3/languages/messages/MessagesMs.php?view=co
- * @author Markos
- */
-$lang['encoding']              = 'utf-8';
-$lang['direction']             = 'ltr';
-$lang['apostrophe']            = '\'';
-$lang['btn_edit']              = 'Sunting halaman ini';
-$lang['btn_source']            = 'Lihat sumber';
-$lang['btn_show']              = 'Baca';
-$lang['btn_create']            = 'Cipta halaman';
-$lang['btn_search']            = 'Cari';
-$lang['btn_save']              = 'Simpan';
-$lang['btn_preview']           = 'Pratonton';
-$lang['btn_top']               = 'Balik ke mula';
-$lang['btn_newer']             = '<< lebih kini';
-$lang['btn_older']             = 'lebih awal >>';
-$lang['btn_revs']              = 'Sejarah';
-$lang['btn_recent']            = 'Perubahan Terkini';
-$lang['btn_upload']            = 'Unggah (upload)';
-$lang['btn_cancel']            = 'Batal';
-$lang['btn_secedit']           = 'Sunting';
-$lang['btn_login']             = 'Masuk';
-$lang['btn_logout']            = 'Keluar';
-$lang['btn_admin']             = 'Admin';
-$lang['btn_update']            = 'Kemaskini';
-$lang['btn_delete']            = 'Hapus';
-$lang['btn_back']              = 'Balik';
-$lang['btn_backlink']          = 'Pautan ke halaman ini';
-$lang['btn_subscribe']         = 'Pantau';
-$lang['btn_profile']           = 'Kemaskinikan profil';
-$lang['btn_reset']             = 'Batalkan suntingan';
-$lang['btn_resendpwd']         = 'Emel kata laluan baru';
-$lang['btn_draft']             = 'Sunting draf';
-$lang['btn_recover']           = 'Pulihkan draf';
-$lang['btn_draftdel']          = 'Hapuskan draf';
-$lang['btn_revert']            = 'Pulihkan';
-$lang['btn_register']          = 'Daftaran';
-$lang['btn_apply']             = 'Simpan';
-$lang['btn_media']             = 'Manager media';
-$lang['loggedinas']            = 'Log masuk sebagai:';
-$lang['user']                  = 'Nama pengguna';
-$lang['pass']                  = 'Kata laluan';
-$lang['newpass']               = 'Kata laluan baru';
-$lang['oldpass']               = 'Kata laluan lama';
-$lang['passchk']               = 'sekali lagi';
-$lang['remember']              = 'Sentiasa ingati kata laluan saya.';
-$lang['fullname']              = 'Nama sebenar';
-$lang['email']                 = 'E-mel';
-$lang['profile']               = 'Profil pengguna';
-$lang['badlogin']              = 'Maaf, ralat log masuk. Nama pengguna atau kata laluan salah.';
-$lang['minoredit']             = 'Suntingan Kecil';
-$lang['draftdate']             = 'Draf automatik disimpan pada';
-$lang['nosecedit']             = 'Halaman ini telah bertukar pada waktu sementara dan info bahagian ini telah luput. Seluruh halaman telah disarat.';
-$lang['regmissing']            = 'Maaf, semua medan mesti diisi';
-$lang['reguexists']            = 'Maaf, nama pengguna yang dimasukkan telah diguna. Sila pilih nama yang lain.';
-$lang['regsuccess']            = 'Akaun pengguna telah dicipta dan kata laluan telah dikirim kepada e-mel anda.';
-$lang['regsuccess2']           = 'Akaun pegguna telah dicipta.';
-$lang['regbadmail']            = 'Format alamat e-mel tidak sah. Sila masukkan semula ataupun kosongkan sahaja medan tersebut.';
-$lang['regbadpass']            = 'Kedua-dua kata laluan tidak sama. Sila masukkan semula.';
-$lang['regpwmail']             = 'Kata laluan Dokuwiki anda';
-$lang['reghere']               = 'Belum mendaftar akaun? Dapat akaun baru';
-$lang['profna']                = 'Wiki ini tidak menyokong modifikasi profil';
-$lang['profnoempty']           = 'Medan nama pengguna atau e-mel yang kosong tidak dibenarkan.';
-$lang['profchanged']           = 'Profil pengguna telah dikemaskini.';
-$lang['pwdforget']             = 'Terlupa kata laluan? Dapatkan yang baru';
-$lang['resendpwd']             = 'Kirimkan kata laluan baru untuk';
-$lang['resendpwdmissing']      = 'Maaf, semua medan perlu diisi.';
-$lang['resendpwdnouser']       = 'Maaf, nama pengguna ini tidak dapat dicari dalam database kami.';
-$lang['resendpwdbadauth']      = 'Maaf, kod authorasi ini tidak sah. Semak bahawa anda telah menggunakan seluruh pautan pengesahan yang dikirim.';
-$lang['resendpwdconfirm']      = 'Pautan pengesahan telah dikirimkan ke e-mel anda.';
-$lang['resendpwdsuccess']      = 'Kata laluan baru telah dikirimkan ke e-mel anda.';
-$lang['license']               = 'Selain daripada yang dinyata, isi wiki ini disediakan dengan lesen berikut:';
-$lang['licenseok']             = 'Perhatian: Dengan menyunting halaman ini, anda setuju untuk isi-isi anda dilesen menggunakan lesen berikut:';
-$lang['searchmedia']           = 'Cari nama fail:';
-$lang['searchmedia_in']        = 'Cari di %s';
-$lang['txt_upload']            = 'Pilih fail untuk diunggah:';
-$lang['txt_filename']          = 'Unggah fail dengan nama (tidak wajib):';
-$lang['txt_overwrt']           = 'Timpa fail sekarang';
-$lang['lockedby']              = 'Halaman ini telah di:';
-$lang['uploadsucc']            = 'Pemuatan naik berjaya';
-$lang['uploadfail']            = 'Ralat muat naik';
-$lang['uploadxss']             = 'Fail ini mengandungi kod HTML atau kod skrip yang mungkin boleh disalah tafsir oleh pelayar web.';
-$lang['toc']                   = 'Jadual Kandungan';
-$lang['current']               = 'kini';
-$lang['restored']              = 'Telah dikembalikan ke semakan sebelumnya (%s)';
-$lang['summary']               = 'Paparan';
diff --git a/wiki/inc/lang/ne/admin.txt b/wiki/inc/lang/ne/admin.txt
deleted file mode 100644
index 7a829db..0000000
--- a/wiki/inc/lang/ne/admin.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-====== वà¥à¤¯à¤µà¤¸à¥à¤¥à¤¾à¤ªà¤¨ ======
-तल तपाईले  DokuWikiमा  उपलवà¥à¤§ वà¥à¤¯à¤µà¤¸à¥à¤¥à¤¾à¤ªà¤•िय कारà¥à¤¯à¤¹à¤°à¥à¤•ो सà¥à¤šà¥€ पाउन सकà¥à¤¨à¥à¤¹à¥à¤¨à¥à¤› ।
\ No newline at end of file
diff --git a/wiki/inc/lang/ne/adminplugins.txt b/wiki/inc/lang/ne/adminplugins.txt
deleted file mode 100644
index 93eff63..0000000
--- a/wiki/inc/lang/ne/adminplugins.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== थप पà¥à¤²à¤—िनहरू =====
\ No newline at end of file
diff --git a/wiki/inc/lang/ne/backlinks.txt b/wiki/inc/lang/ne/backlinks.txt
deleted file mode 100644
index 51b9573..0000000
--- a/wiki/inc/lang/ne/backlinks.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-====== पछाडि लिङà¥à¤• ======
-यो पृषà¥à¤ à¤¹à¤°à¥à¤•ो सà¥à¤šà¥€à¤¹à¤°à¥à¤²à¥‡ पछाडि लिङà¥à¤• सà¥à¤µà¤¯à¤‚लाई नै गरेको छ।
\ No newline at end of file
diff --git a/wiki/inc/lang/ne/conflict.txt b/wiki/inc/lang/ne/conflict.txt
deleted file mode 100644
index 457e108..0000000
--- a/wiki/inc/lang/ne/conflict.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== नयाठसंसà¥à¤•रण उपलबà¥à¤§ छ ======
-
-तपाईले समà¥à¤ªà¤¾à¤¦à¤¨ गरà¥à¤¨à¥à¤­à¤à¤•ो पाठको नयाठससà¥à¤•रण उपलबà¥à¤§ छ। तपाईले समà¥à¤ªà¤¾à¤¦à¤¨ गरिरहनॠभà¤à¤•ो समयमा अरà¥à¤•ो पà¥à¤°à¤¯à¥‹à¤—करà¥à¤¤à¤¾à¤²à¥‡ यो पाठ परिवरà¥à¤¤à¤¨ गरेकोले यसà¥à¤¤à¥‹ भà¤à¤•ो हो ।
-
-दà¥à¤¬à¥ˆà¤•ा फरक दाजà¥à¤¨à¥à¤¹à¥‹à¤¸à¥ र दà¥à¤ˆà¤®à¤¾ कà¥à¤¨ राखà¥à¤¨à¥‡à¤¹à¥‹  निशà¥à¤šà¤¿à¤¤ गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥ ।तपाईले "वचत गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥ " छानà¥à¤¨à¥ भयो भने तपाईको संसà¥à¤•रण वचत हà¥à¤¨à¥‡à¤›à¥¤ "रदà¥à¤¦ गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥" छानà¥à¤¨à¥ भयो भने अहिलेको संसà¥à¤•रण वचत हà¥à¤¨à¥‡à¤› । 
\ No newline at end of file
diff --git a/wiki/inc/lang/ne/denied.txt b/wiki/inc/lang/ne/denied.txt
deleted file mode 100644
index 5c58cde..0000000
--- a/wiki/inc/lang/ne/denied.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== अनà¥à¤®à¤¤à¤¿ अमानà¥à¤¯ ======
-
-माफ गरà¥à¤¨à¥à¤¹à¥‹à¤²à¤¾ तपाईलाई अगाडि बढà¥à¤¨ अनà¥à¤®à¤¤à¤¿ छैन।
-
diff --git a/wiki/inc/lang/ne/diff.txt b/wiki/inc/lang/ne/diff.txt
deleted file mode 100644
index 76d75fb..0000000
--- a/wiki/inc/lang/ne/diff.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== भिनà¥à¤¨à¤¤à¤¾à¤¹à¤°à¥ ======
-
-यसले यो पृषà¥à¤ à¤•ो  छानिà¤à¤•ो संसà¥à¤•रण र हालको संकरण बीच भिनà¥à¤¨à¤¤à¤¾à¤¹à¤°à¥ देखाउà¤à¤› ।
\ No newline at end of file
diff --git a/wiki/inc/lang/ne/draft.txt b/wiki/inc/lang/ne/draft.txt
deleted file mode 100644
index 88630c9..0000000
--- a/wiki/inc/lang/ne/draft.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== डà¥à¤°à¤¾à¤«à¥à¤Ÿ फाइल भेटियो ======
-
-तपाईको यो पृषà¥à¤ à¤•ो गत समà¥à¤ªà¤¾à¤¦à¤¨ सफलतापूरà¥à¤µà¤• समà¥à¤ªà¤¨à¥à¤¨ भà¤à¤•ो थिà¤à¤¨ ।DokuWiki ले सà¥à¤µà¤šà¤¾à¤²à¤¿à¤¤à¤°à¥à¤ªà¤®à¤¾ डà¥à¤°à¤¾à¤«à¥à¤Ÿ वचतगरेको छ तà¥à¤¯à¤¸ देखि तपाईले आफà¥à¤¨à¥‹ समà¥à¤ªà¤¾à¤¦à¤¨ कारà¥à¤¯à¤®à¤¾ निरनà¥à¤¤à¤°à¤¤à¤¾ दिन सकà¥à¤¨à¥à¤¹à¥à¤¨à¥à¤›à¥¤ तल तपाईले गत सतà¥à¤°à¤®à¤¾ बचत गरिà¤à¤•ो सामगà¥à¤°à¥€ देखà¥à¤¨ सकà¥à¤¨à¥à¤¹à¥à¤¨à¥à¤› ।
-
-कृपया निरà¥à¤£à¤¯ दिनà¥à¤¹à¥‹à¤¸à¥  कि तपाई गत सतà¥à¤°à¤®à¤¾ बचत गरिà¤à¤•ो सतà¥à¤°à¤•ो समà¥à¤ªà¤¾à¤¦à¤¨à¤•ारà¥à¤¯  //recover// , //delete// वा  //cancel//  के गरà¥à¤¨ चाहनà¥à¤¹à¥à¤¨à¥à¤› भनेर।
diff --git a/wiki/inc/lang/ne/edit.txt b/wiki/inc/lang/ne/edit.txt
deleted file mode 100644
index be498a6..0000000
--- a/wiki/inc/lang/ne/edit.txt
+++ /dev/null
@@ -1 +0,0 @@
-पृषà¥à¤  समà¥à¤ªà¤¾à¤¦à¤¨ गरà¥à¤¨à¥à¤¹à¥‹à¤¸ र "बचत" मा थिचà¥à¤¨à¥à¤¹à¥‹à¤¸à¥ । सिनà¥à¤Ÿà¥‡à¤•à¥à¤¸à¤•ो लागि  [[wiki:syntax]] हेरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥ । यो पृषà¥à¤ à¤²à¤¾à¤ˆ **सà¥à¤§à¤¾à¤°à¥à¤¨** सकà¥à¤¨à¥à¤¹à¥à¤¨à¥à¤› भने मातà¥à¤° समà¥à¤ªà¤¾à¤¦à¤¨ गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥ ।यदि कà¥à¤¨à¥ˆ पà¥à¤°à¤¯à¥‹à¤— गरà¥à¤¨ या , जानà¥à¤¨ चाहनà¥à¤¹à¥à¤¨à¥à¤› भने [[playground:playground|playground]] को पà¥à¤°à¤¯à¥‹à¤— गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥ ।
\ No newline at end of file
diff --git a/wiki/inc/lang/ne/editrev.txt b/wiki/inc/lang/ne/editrev.txt
deleted file mode 100644
index 0db67c2..0000000
--- a/wiki/inc/lang/ne/editrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-** तपाईले यस कागजातको पà¥à¤°à¤¾à¤¨à¥‹ संसà¥à¤•रण खोलà¥à¤¨à¥ भà¤à¤•ो छ ।** यदि यसलाई वचत गरà¥à¤¨à¥à¤­à¤¯à¥‹ भने यसैसामगà¥à¤°à¥€à¤¬à¤¾à¤Ÿ नयाठसंसà¥à¤•रणको निरà¥à¤®à¤¾à¤£ हà¥à¤¨à¥‡à¤› ।
-----
\ No newline at end of file
diff --git a/wiki/inc/lang/ne/index.txt b/wiki/inc/lang/ne/index.txt
deleted file mode 100644
index cb06f03..0000000
--- a/wiki/inc/lang/ne/index.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== सà¥à¤šà¥€ ======
-
-यो सबै उपलाबà¥à¤§ पृषà¥à¤ à¤¹à¤°à¥à¤•ो [[doku>namespaces|namespaces]] का आधारमा मिलाइà¤à¤•ो सà¥à¤šà¥€ हो ।
\ No newline at end of file
diff --git a/wiki/inc/lang/ne/lang.php b/wiki/inc/lang/ne/lang.php
deleted file mode 100644
index c0daf29..0000000
--- a/wiki/inc/lang/ne/lang.php
+++ /dev/null
@@ -1,204 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Saroj Kumar Dhakal <lotusnagarkot@gmail.com>
- * @author Saroj Kumar Dhakal <lotusnagarkot@yahoo.com>
- * @author सरोज ढकाल <lotusnagarkot@gmail.com>
- */
-$lang['encoding']              = 'utf-8';
-$lang['direction']             = 'ltr';
-$lang['doublequoteopening']    = '“';
-$lang['doublequoteclosing']    = 'â€';
-$lang['singlequoteopening']    = '‘';
-$lang['singlequoteclosing']    = '’';
-$lang['apostrophe']            = '’';
-$lang['btn_edit']              = 'यो पृषà¥à¤  समà¥à¤ªà¤¾à¤¦à¤¨ गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥ ';
-$lang['btn_source']            = 'यो पृषà¥à¤ à¤•ो सà¥à¤°à¥‹à¤¤ देखाउनà¥à¤¹à¥‹à¤¸à¥ ';
-$lang['btn_show']              = 'पृषà¥à¤  देखाउनà¥à¤¹à¥‹à¤¸à¥ ';
-$lang['btn_create']            = 'यो पृषà¥à¤  निरà¥à¤®à¤¾à¤£ गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥';
-$lang['btn_search']            = 'खोजà¥à¤¨à¥à¤¹à¥‹à¤¸à¥ ';
-$lang['btn_save']              = 'वचत गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥';
-$lang['btn_preview']           = 'पूरà¥à¤µà¤°à¥à¤ª ';
-$lang['btn_top']               = 'माथि फरà¥à¤•नà¥à¤¹à¥‹à¤¸à¥';
-$lang['btn_newer']             = '<< यो भनà¥à¤¦à¤¾ पछिको';
-$lang['btn_older']             = 'यो भनà¥à¤¦à¤¾ पहिलेको >>';
-$lang['btn_revs']              = 'पà¥à¤°à¤¾à¤¨à¥‹ संकरण';
-$lang['btn_recent']            = 'हालैका परिवरà¥à¤¤à¤¨à¤¹à¤°à¥ ';
-$lang['btn_upload']            = 'अपलोड ';
-$lang['btn_cancel']            = 'रदà¥à¤¦ गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥ ';
-$lang['btn_index']             = 'सà¥à¤šà¥€';
-$lang['btn_secedit']           = 'समà¥à¤ªà¤¾à¤¦à¤¨ गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥';
-$lang['btn_login']             = 'पà¥à¤°à¤µà¥‡à¤¶ गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥ ';
-$lang['btn_logout']            = 'बाहिर जानà¥à¤¹à¥‹à¤¸à¥ ';
-$lang['btn_admin']             = 'à¤à¤¡à¥à¤®à¤¿à¤¨(वà¥à¤¯à¤µà¤¸à¥à¤¥à¤¾à¤ªà¤•)';
-$lang['btn_update']            = 'अधà¥à¤¯à¤¾à¤µà¤§à¤¿à¤• गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥';
-$lang['btn_delete']            = 'मेटाउनà¥à¤¹à¥‹à¤¸à¥ ';
-$lang['btn_back']              = 'पछाडि';
-$lang['btn_backlink']          = 'पछाडिका लिङà¥à¤•हरॠ';
-$lang['btn_subscribe']         = 'पृषà¥à¤  परिवरà¥à¤¤à¤¨ गà¥à¤°à¤¾à¤¹à¥à¤¯ गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥';
-$lang['btn_profile']           = 'पà¥à¤°à¥‹à¤«à¤¾à¤‡à¤² अधà¥à¤¯à¤¾à¤µà¤§à¤¿à¤• गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥ ';
-$lang['btn_reset']             = 'पूरà¥à¤µà¤°à¥à¤ªà¤®à¤¾ फरà¥à¤•ाउनà¥à¤¹à¥‹à¤¸';
-$lang['btn_resendpwd']         = 'नयाठपासवरà¥à¤¡ राखà¥à¤¨à¥à¤¹à¥‹à¤¸';
-$lang['btn_draft']             = ' डà¥à¤°à¤¾à¤«à¥à¤Ÿ समà¥à¤ªà¤¾à¤¦à¤¨ गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥ ';
-$lang['btn_recover']           = 'पहिलेको डà¥à¤°à¤¾à¤«à¥à¤Ÿ हासिल गरà¥à¤¨à¥à¤¹à¥‹à¤¸ ';
-$lang['btn_draftdel']          = ' डà¥à¤°à¤¾à¤«à¥à¤Ÿ मेटाउनà¥à¤¹à¥‹à¤¸à¥ ';
-$lang['btn_revert']            = 'पूरà¥à¤µà¤°à¥‚पमा फरà¥à¤•ाउने';
-$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']                  = 'पà¥à¤°à¤µà¥‡à¤¶à¤¶à¤µà¥à¤¦';
-$lang['newpass']               = 'नयाठपà¥à¤°à¤µà¥‡à¤¶à¤¶à¤µà¥à¤¦';
-$lang['oldpass']               = 'नयाठपà¥à¤°à¤µà¥‡à¤¶à¤¶à¤µà¥à¤¦ निशà¥à¤šà¤¿à¤¤ गरà¥à¤¨à¥à¤¹à¥‹à¤¸ ';
-$lang['passchk']               = 'à¤à¤•पटक पà¥à¤¨:';
-$lang['remember']              = 'मलाई समà¥à¤à¤¨à¥';
-$lang['fullname']              = 'पूरा नाम';
-$lang['email']                 = 'इमेल';
-$lang['profile']               = 'पà¥à¤°à¤¯à¥‹à¤—करà¥à¤¤à¤¾à¤•ो पà¥à¤°à¥‹à¤«à¤¾à¤‡à¤²';
-$lang['badlogin']              = 'माफ गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥ , पà¥à¤°à¤¯à¥‹à¤—करà¥à¤¤à¤¾à¤¨à¤¾à¤® वा पà¥à¤°à¤µà¥‡à¤¶à¤¶à¤µà¥à¤¦ गलत भयो  ';
-$lang['badpassconfirm']        = 'माफ गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥ , पासवरà¥à¤¡ गलत छ ';
-$lang['minoredit']             = 'सामानà¥à¤¯ परिवरà¥à¤¤à¤¨';
-$lang['draftdate']             = 'डà¥à¤°à¤¾à¤«à¥à¤Ÿ सà¥à¤µà¤šà¤¾à¤²à¤¿à¤¤ रà¥à¤ªà¤®à¤¾ वचत भà¤à¤•ो';
-$lang['nosecedit']             = 'यो पृषà¥à¤  यसै बखतमा परिवरà¥à¤¤à¤¨ भयो, खणà¥à¤¡ जानकारी अधà¥à¤¯à¤¾à¤µà¤§à¤¿à¤• हà¥à¤¨ सकेन र पूरै पृषà¥à¤  लोड भयो । ';
-$lang['regmissing']            = 'माफ गरà¥à¤¨à¥à¤¹à¥‹à¤²à¤¾ , सबै ठाउमा भरà¥à¤¨à¥à¤ªà¤°à¥à¤¨à¥‡à¤› ।';
-$lang['reguexists']            = 'यो नामको पà¥à¤°à¤¯à¥‹à¤—करà¥à¤¤à¤¾ पहिले देखि रहेको छ।';
-$lang['regsuccess']            = 'यो पà¥à¤°à¤¯à¥‹à¤—करà¥à¤¤à¤¾ बनाइà¤à¤•ो छ र पà¥à¤°à¤µà¥‡à¤¶à¤¶à¤µà¥à¤¦ इमेलमा पठइà¤à¤•ो छ।';
-$lang['regsuccess2']           = 'यो पà¥à¤°à¤¯à¥‹à¤—करà¥à¤¤à¤¾ बनाइà¤à¤•ो छ ।';
-$lang['regmailfail']           = 'इमेलबाट पà¥à¤°à¤µà¥‡à¤¶à¤¶à¤¬à¥à¤¦ पठउन गलà¥à¤¤à¤¿ भयो । कृपया à¤à¤¡à¥à¤®à¤¿à¤¨(वà¥à¤¯à¤µà¤¸à¥à¤¥à¤¾à¤ªà¤•)लाई समà¥à¤ªà¤°à¥à¤• गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥  !';
-$lang['regbadmail']            = 'दिà¤à¤•ो इमेल ठेगाना गलत भठजसà¥à¤¤à¥‹ देखिनà¥à¤› - यदि यो सहि हो भने à¤à¤¡à¥à¤®à¤¿à¤¨(वà¥à¤¯à¤µà¤¸à¥à¤¥à¤¾à¤ªà¤•)लाई समà¥à¤ªà¤°à¥à¤• गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥  !';
-$lang['regbadpass']            = 'दिइà¤à¤•ा  पà¥à¤°à¤µà¥‡à¤¶à¤¶à¤µà¥à¤¦à¤¹à¤°à¥ मिलà¥à¤¦à¥ˆà¤¨à¤¨à¥ , पà¥à¤¨: पà¥à¤°à¤¯à¤¾à¤¸ गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥ ।';
-$lang['regpwmail']             = 'तपाईको DokuWiki पà¥à¤°à¤µà¥‡à¤¶à¤¶à¤¬à¥à¤¦ ';
-$lang['reghere']               = 'तपाईको आफà¥à¤¨à¥ˆ खाता छैन ? अहिलà¥à¤¯à¥ˆ à¤à¤‰à¤Ÿà¤¾ बनाउनà¥à¤¹à¥‹à¤¸à¥ ';
-$lang['profna']                = 'यो विकिले यो पà¥à¤°à¥‹à¤«à¤¾à¤‡à¤² परिवरà¥à¤¤à¤¨ समरà¥à¤¥à¤¨ गरà¥à¤¦à¥ˆà¤¨ ।';
-$lang['profnochange']          = 'केहि  परिवरà¥à¤¤à¤¨ छैन , केहि गरà¥à¤¨à¥ छैन ।';
-$lang['profnoempty']           = 'खाली नाम वा इमेल ठेगानालाई अनà¥à¤®à¤¤à¤¿ छैन ।';
-$lang['profchanged']           = 'पà¥à¤°à¤¯à¥‹à¤—करà¥à¤¤à¤¾à¤•ो पà¥à¤°à¤«à¤¾à¤‡à¤² सफलरà¥à¤ªà¤®à¤¾ परिवरà¥à¤¤à¤¨ भयो ।';
-$lang['profnodelete']          = 'यो विकिले पà¥à¤°à¤¯à¥‹à¤—करà¥à¤¤à¤¾à¤¹à¤°à¥‚ हटाउन समरà¥à¤¥à¤¨ गरà¥à¤¦à¥ˆà¤¨';
-$lang['profdeleteuser']        = 'खाता मेटà¥à¤¨à¥à¤¹à¥‹à¤¸';
-$lang['pwdforget']             = 'आफà¥à¤¨à¥‹ पासवरà¥à¤¡ भà¥à¤²à¥à¤¨à¥ भयो ? नयाठहासिल गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥ ';
-$lang['resendna']              = 'यो विकिबाट पà¥à¤°à¤µà¥‡à¤¶à¤¶à¤µà¥à¤¦ पठाउन समरà¥à¤¥à¤¿à¤¤ छैन ।';
-$lang['resendpwd']             = 'नयाठ पà¥à¤°à¤µà¥‡à¤¶à¤¶à¤µà¥à¤¦ पठाउनà¥à¤¹à¥‹à¤¸à¥ ';
-$lang['resendpwdnouser']       = 'माफ गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥,  हामà¥à¤°à¥‹ डेटावेसमा यो पà¥à¤°à¤¯à¥‹à¤—करà¥à¤¤à¤¾ भेटिà¤à¤¨ ।';
-$lang['resendpwdbadauth']      = 'माफ गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥ , यो अनà¥à¤®à¤¤à¤¿ चिनà¥à¤¹ गलत छ। तपाईले पूरै जानकारी लिङà¥à¤• पà¥à¤°à¤¯à¥‹à¤— गरà¥à¤¨à¥ परà¥à¤¨à¥‡à¤›à¥¤ ';
-$lang['resendpwdconfirm']      = 'तपाईको इमेलमा कनà¥à¤«à¤°à¤®à¥‡à¤¶à¤¨ लिङà¥à¤• पठाइà¤à¤•ो छ। ';
-$lang['resendpwdsuccess']      = 'तपाईको पà¥à¤°à¤µà¥‡à¤¶à¤¶à¤µà¥à¤¦ इमेलबाट पठाइà¤à¤•ो छ। ';
-$lang['license']               = 'खà¥à¤²à¤¾à¤‡à¤à¤•ो बाहेक, यस विकिका विषयवसà¥à¤¤à¥à¤¹à¤°à¥ निमà¥à¤¤ पà¥à¤°à¤®à¤¾à¤£ दà¥à¤µà¤¾à¤°à¤¾ पà¥à¤°à¤®à¤¾à¤£à¤¿à¤• गरिà¤à¤•ो छ।';
-$lang['licenseok']             = 'नोट: यस पृषà¥à¤  समà¥à¤ªà¤¾à¤¦à¤¨ गरी तपाईले आफà¥à¤¨à¥‹ विषयवसà¥à¤¤à¥ तलको पà¥à¤°à¤®à¤¾à¤£ पतà¥à¤° अनà¥à¤¤à¤°à¥à¤—त पà¥à¤°à¤®à¤¾à¤£à¤¿à¤• गरà¥à¤¨ राजी हà¥à¤¨à¥ हà¥à¤¨à¥‡à¤› ।';
-$lang['txt_upload']            = 'अपलोड गरà¥à¤¨à¤²à¤¾à¤ˆ फाइल छाà¥à¤¨à¥à¤¨à¥à¤¹à¥‹à¥à¤¸à¥:';
-$lang['txt_filename']          = 'अरà¥à¤•ो रà¥à¤ªà¤®à¤¾ अपलोड गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥ (à¤à¤šà¥à¤›à¤¿à¤•):';
-$lang['txt_overwrt']           = 'रहेको उहि नामको फाइललाई मेटाउने';
-$lang['lockedby']              = 'अहिले तालà¥à¤šà¤¾ लगाइà¤à¤•ो:';
-$lang['lockexpire']            = 'तालà¥à¤šà¤¾ अवधि सकिने :';
-$lang['js']['willexpire']      = 'तपाईलले यो पृषà¥à¤  समà¥à¤ªà¤¾à¤¦à¤¨ गरà¥à¤¨ लगाउनॠभà¤à¤•ो तालà¥à¤šà¤¾à¤•ो अवधि à¤à¤• मिनेट भितà¥à¤° सकिदै छ। \n दà¥à¤µà¤¨à¥à¤¦ हà¥à¤¨ नदिन  पूरà¥à¤µà¤°à¥à¤ª वा तालà¥à¤šà¤¾ समय परिवरà¥à¤¤à¤¨ गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥ ।';
-$lang['js']['notsavedyet']     = 'तपाईले वचन गरà¥à¤¨à¥ नभà¤à¤•ो परिवरà¥à¤°à¤¨ हराउने छ। \n साचà¥à¤šà¥ˆ जारी गरà¥à¤¨à¥à¤¹à¥à¤¨à¥à¤› ।';
-$lang['js']['keepopen']        = 'छनौटमा विनà¥à¤¡à¥‹ खà¥à¤²à¤¾ राखà¥à¤¨à¥à¤¹à¥‹à¤¸à¥ ';
-$lang['js']['hidedetails']     = 'जानकारी लà¥à¤•ाउनॠहोसॠ';
-$lang['js']['mediaclose']      = 'बनà¥à¤¦ गरà¥à¤¨à¥‡';
-$lang['js']['nosmblinks']      = 'विनà¥à¤¡à¥‹à¤¹à¤°à¥ लिङà¥à¤• गरà¥à¤¦à¤¾ माइकà¥à¤°à¥‹ सफà¥à¤Ÿ à¤à¤•à¥à¤¸à¤ªà¥à¤²à¥‹à¤°à¤°à¤®à¤¾à¤®à¤¾à¤¤à¥à¤°  काम साà¤à¤¾ हà¥à¤¨à¥à¤› । तर कपि गरà¥à¤¨ र टासà¥à¤¨ मिलà¥à¤›à¥¤   ';
-$lang['js']['del_confirm']     = 'साचà¥à¤šà¥ˆ छानिà¤à¤•ा वसà¥à¤¤à¥à¤¹à¤°à¥ मेटà¥à¤¨à¥‡ हो ?';
-$lang['rssfailed']             = 'यो फिड लिइ आउदा गलà¥à¤¤à¤¿ भयो ।';
-$lang['nothingfound']          = 'केहि पनि भेटिà¤à¤¨ ।';
-$lang['mediaselect']           = 'मिडिया फाइलहरू ';
-$lang['uploadsucc']            = 'अपलोड सफल ';
-$lang['uploadfail']            = 'अपलोड असफल । सायद गलत अनà¥à¤®à¤¤à¤¿ । ';
-$lang['uploadwrong']           = 'अपलोड असमरà¥à¤¥à¤¿à¤¤ । फाइल à¤à¤•à¥à¤¸à¤Ÿà¥‡à¤¨à¥à¤¸à¤¨ अमानà¥à¤¯à¥¤  ';
-$lang['uploadexist']           = 'फाइल पहिलेदेखि छ। केहि गरिà¤à¤¨ ।';
-$lang['uploadbadcontent']      = 'अपलोड गरिà¤à¤•ो वसà¥à¤¤à¥ %s फाइल à¤à¤•à¥à¤Ÿà¥‡à¤¨à¥à¤¸à¤¨ अनà¥à¤¸à¤¾à¤° मिलेन ।';
-$lang['uploadspam']            = 'अपलोड सà¥à¤ªà¥à¤¯à¤¾à¤® कालो सà¥à¤šà¥€à¤²à¥‡ रोकिà¤à¤•ो छ। ';
-$lang['uploadxss']             = 'अपलोड समà¥à¤­à¤µà¤¤: हानिकारक वसà¥à¤¤à¥à¤•ो कारणले रोकिà¤à¤•ो। ';
-$lang['deletesucc']            = 'फाइल  "%s"  मेटिà¤à¤•ो छ। ';
-$lang['deletefail']            = '"%s"  मेटà¥à¤¨ सकिà¤à¤¨ - अनà¥à¤®à¤¤à¤¿ हेरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥ ।';
-$lang['mediainuse']            = 'फाइल "%s" मेटिà¤à¤•ो छैन - पà¥à¤°à¤¯à¥‹à¤—मा छ।';
-$lang['namespaces']            = 'नेमसà¥à¤ªà¥‡à¤¸à¤¹à¤°à¥ ';
-$lang['mediafiles']            = ' उपलबà¥à¤§ फाइलहरॠ';
-$lang['mediausage']            = 'फाइललाई रेफरेनà¥à¤¸ गरà¥à¤¨ निमà¥à¤¨ सà¥à¤¤à¥à¤° पà¥à¤°à¤¯à¥‹à¤— गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥ :';
-$lang['mediaview']             = 'सकà¥à¤•ली फाइल हेरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥ ';
-$lang['mediaroot']             = 'रà¥à¤Ÿ(मूखà¥à¤¯ पà¥à¤°à¤¯à¥‹à¤—करà¥à¤¤à¤¾)';
-$lang['mediaupload']           = 'अहिलेको नेमसà¥à¤ªà¥‡à¤¸à¤®à¤¾ यहा अपलोड गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥ । सबनेमसà¥à¤ªà¥‡à¤¸à¤¹à¤°à¥ बनाउन "रà¥à¤ªà¤®à¤¾ आपलोड" छानी फाइलहरà¥à¤²à¤¾à¤ˆ कोलोन(:) ले छà¥à¤Ÿà¥à¤Ÿà¤¯à¤¾à¤‰à¤¨à¥à¤¹à¥‹à¤¸à¥ ।';
-$lang['mediaextchange']        = 'फाइल à¤à¤•सà¥à¤Ÿà¥‡à¤¨à¥à¤¸à¤¨ .%s देखि  .%s मा परिवरतित भयो ';
-$lang['reference']             = 'रेफररेनà¥à¤¸ ';
-$lang['ref_inuse']             = 'फाइल मेटà¥à¤¨ मिलेन , किनभने यो निमà¥à¤¨ पृषà¥à¤ à¤¹à¤°à¥à¤¦à¥à¤µà¤¾à¤°à¤¾ पà¥à¤°à¤¯à¥‹à¤—मा छ। ';
-$lang['ref_hidden']            = 'केहि रेफरेनà¥à¤¸ यसà¥à¤¤à¤¾ पृषà¥à¤ à¤¹à¤°à¥à¤®à¤¾ छनॠजà¥à¤¨ हेरà¥à¤¨ तपाईलाई अनà¥à¤®à¤¤à¤¿ छैन ।';
-$lang['hits']                  = 'मिलेको';
-$lang['quickhits']             = 'मिलेका पृषà¥à¤ à¤¨à¤¾à¤®à¤¹à¤°à¥ ';
-$lang['toc']                   = 'वसà¥à¤¤à¥à¤¹à¤°à¥à¤•ो सà¥à¤šà¥€';
-$lang['current']               = 'हालको';
-$lang['yours']                 = 'तपाईको संसà¥à¤•रण';
-$lang['diff']                  = 'हालको संसà¥à¤•रण सà¤à¤—को भिनà¥à¤¨à¤¤à¤¾';
-$lang['diff2']                 = 'रोजिà¤à¤•ा संसà¥à¤•रण वीचका भिनà¥à¤¨à¤¤à¤¾à¤¹à¤°à¥ ';
-$lang['line']                  = 'हरफ';
-$lang['breadcrumb']            = 'छà¥à¤Ÿà¥à¤Ÿà¥à¤¯à¤¾à¤‰à¤¨à¥à¤¹à¥‹à¤¸à¥ :';
-$lang['youarehere']            = 'तपाई यहा हà¥à¤¨à¥à¤¹à¥à¤¨à¥à¤›:';
-$lang['lastmod']               = 'अनà¥à¤¤à¤¿à¤® पटक सचà¥à¤¯à¤¾à¤‡à¤à¤•ो:';
-$lang['by']                    = 'दà¥à¤µà¤¾à¤°à¤¾ ';
-$lang['deleted']               = 'हटाइà¤à¤•ो';
-$lang['created']               = 'निरà¥à¤®à¤¾à¤£ गरिà¤à¤•ो';
-$lang['external_edit']         = 'बाहà¥à¤¯ समà¥à¤ªà¤¾à¤¦à¤¨';
-$lang['summary']               = 'समà¥à¤ªà¤¾à¤¦à¤¨à¤•ो बारेमा';
-$lang['mail_newpage']          = 'थपिà¤à¤•ो पृषà¥à¤ ';
-$lang['mail_changed']          = 'परिवरà¥à¤¤à¤¿à¤¤ पृषà¥à¤ ';
-$lang['mail_new_user']         = 'नयाठपà¥à¤°à¤¯à¥‹à¤—करà¥à¤¤à¤¾ ';
-$lang['mail_upload']           = 'अपलोड गरिà¤à¤•ो फाइल';
-$lang['qb_bold']               = 'मोटो पाठ(बोलà¥à¤¡)';
-$lang['qb_italic']             = 'इटालिक पाठ';
-$lang['qb_underl']             = 'निमà¥à¤¨ रेखांकित(अनà¥à¤¡à¤°à¤²à¤¾à¤‡à¤¨) पाठ';
-$lang['qb_code']               = 'चिनà¥à¤¹(कोड) पाठ';
-$lang['qb_strike']             = 'सà¥à¤Ÿà¥à¤°à¤¾à¤‡à¤•थà¥à¤°à¥ पाठ';
-$lang['qb_h1']                 = 'पहिलो सà¥à¤¤à¤°à¤•ो शिरà¥à¤·à¤•(लेभल १ हेडलाइन)';
-$lang['qb_h2']                 = 'दोसà¥à¤°à¥‹ सà¥à¤¤à¤°à¤•ो  शिरà¥à¤·à¤•(लेभल २ हेडलाइन)';
-$lang['qb_h3']                 = 'तेसà¥à¤°à¥‹ सà¥à¤¤à¤°à¤•ो  शिरà¥à¤·à¤•(लेभल ३ हेडलाइन)';
-$lang['qb_h4']                 = 'चौथो सà¥à¤¤à¤°à¤•ो  शिरà¥à¤·à¤•(लेभल ४ हेडलाइन)';
-$lang['qb_h5']                 = 'पाचौठसà¥à¤¤à¤°à¤•ो  शिरà¥à¤·à¤•(लेभल ५ हेडलाइन)';
-$lang['qb_link']               = 'आनà¥à¤¤à¤°à¤¿à¤• लिङà¥à¤• ';
-$lang['qb_extlink']            = 'वाहà¥à¤¯ लिङà¥à¤•';
-$lang['qb_hr']                 = 'कà¥à¤·à¤¿à¤¤à¤¿à¤œ (होरिजोनà¥à¤Ÿà¤²) रà¥à¤²';
-$lang['qb_ol']                 = 'मिलाइà¤à¤•ो सà¥à¤šà¥€';
-$lang['qb_ul']                 = 'नमिलाइà¤à¤•ो सà¥à¤šà¥€';
-$lang['qb_media']              = 'तसà¥à¤µà¤¿à¤° र अरॠफाइलहरॠथपà¥à¤¨à¥à¤¹à¥‹à¤¸à¥';
-$lang['qb_sig']                = 'हसà¥à¤¤à¤¾à¤•à¥à¤·à¤° थपà¥à¤¨à¥à¤¹à¥‹à¤¸à¥ ';
-$lang['qb_smileys']            = 'सà¥à¤®à¤¾à¤‡à¤²à¥€à¤¹à¤°à¥ ';
-$lang['qb_chars']              = 'विशेष वरà¥à¤£à¤¹à¤°à¥ ';
-$lang['metaedit']              = 'मेटाडेटा समà¥à¤ªà¤¾à¤¦à¤¨ गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥';
-$lang['metasaveerr']           = 'मेटाडाटा लेखन असफल';
-$lang['metasaveok']            = 'मेटाडाटा वचत भयो ';
-$lang['img_title']             = 'शिरà¥à¤·à¤•:';
-$lang['img_caption']           = 'निमà¥à¤¨ लेख:';
-$lang['img_date']              = 'मिति:';
-$lang['img_fname']             = 'फाइलनाम:';
-$lang['img_fsize']             = 'आकार:';
-$lang['img_artist']            = 'चितà¥à¤°à¤•ार:';
-$lang['img_copyr']             = 'सरà¥à¤µà¤¾à¤§à¤¿à¤•ार:';
-$lang['img_format']            = 'ढाचा:';
-$lang['img_camera']            = 'कà¥à¤¯à¤¾à¤®à¥‡à¤°à¤¾:';
-$lang['img_keywords']          = 'खोज शबà¥à¤¦:';
-$lang['authtempfail']          = 'पà¥à¤°à¤¯à¥‹à¤—करà¥à¤¤à¤¾ पà¥à¤°à¤¾à¤®à¤¾à¤£à¤¿à¤•रण असà¥à¤¥à¤¾à¤‡à¤°à¥à¤ªà¤®à¤¾ अनà¥à¤ªà¤²à¤¬à¥à¤§ छ। यदि यो समसà¥à¤¯à¤¾ रहि रहेमा तपाईको  विकि à¤à¤¡à¥à¤®à¤¿à¤¨à¤²à¤¾à¤ˆ खवर गरà¥à¤¨à¥à¤¹à¥‹à¤²à¤¾ ।';
-$lang['i_chooselang']          = 'भाषा छानà¥à¤¨à¥à¤¹à¥‹à¤¸à¥ ';
-$lang['i_installer']           = 'DokuWiki  सà¥à¤¥à¤¾à¤ªà¤•';
-$lang['i_wikiname']            = 'विकी नाम';
-$lang['i_enableacl']           = 'ACL लागॠगरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥( सिफारिस गरिà¤à¤•ो)';
-$lang['i_superuser']           = 'मूखà¥à¤¯ पà¥à¤°à¤¯à¥‹à¤—करà¥à¤¤à¤¾';
-$lang['i_problems']            = 'सà¥à¤¥à¤¾à¤ªà¤•ले तल देखाइà¤à¤•ो तà¥à¤°à¥à¤Ÿà¤¿ फेला पारà¥â€Œà¤¯à¥‹ ।तपाईले  यो तà¥à¤°à¥à¤Ÿà¤¿ नसचà¥à¤¯à¤¾à¤ समà¥à¤® अगि बढà¥à¤¨ सकà¥à¤¨à¥à¤¹à¥à¤¨à¥‡ छैन।';
-$lang['i_modified']            = 'सà¥à¤°à¤•à¥à¤·à¤¾à¤•ो कारणले यो सà¥à¤•à¥à¤°à¤¿à¤ªà¥à¤Ÿ नया तथा नसचà¥à¤¯à¤¾à¤‡à¤à¤•ो Dokuwiki सà¥à¤¥à¤¾à¤ªà¤¨à¤¾à¤®à¤¾  मातà¥à¤° काम गरà¥à¤›à¥¤  तपाईले कि डाउनलोड गरà¥à¤¨à¥à¤­à¤à¤•ो पà¥à¤¯à¤¾à¤•ेज पà¥à¤¨: खोलà¥à¤¨à¥à¤¹à¥‹à¤¸à¥  कि <a href="http://dokuwiki.org/install">Dokuwiki सà¥à¤¥à¤¾à¤ªà¤¨à¤¾ विधि</a>';
-$lang['i_funcna']              = 'PHP function <code>%s</code> उपलवà¥à¤§ छैन । हà¥à¤¨à¤¸à¤•à¥à¤› तपाईको होसà¥à¤Ÿà¤¿à¤™à¥à¤— पà¥à¤°à¤¦à¤¾à¤¯à¤•ले कà¥à¤¨à¥ˆ कारण वश यसलाई वनà¥à¤¦ गरिदिà¤à¤•ा हà¥à¤¨à¤¸à¤•à¥à¤›à¤¨à¥ । ';
-$lang['i_phpver']              = 'तपाईको PHP संसà¥à¤•रण <code>%s</code> चाहिà¤à¤•ो <code>%s</code> भनà¥à¤¦à¤¾ कम छ। तपाईले आफà¥à¤¨à¥‹ PHP सà¥à¤¥à¤¾à¤ªà¤¨à¤¾ अधà¥à¤¯à¤¾à¤µà¤§à¤¿à¤• गरà¥à¤¨à¥à¤ªà¤°à¥à¤› ।';
-$lang['i_permfail']            = '<code>%s</code> DokuWiki दà¥à¤µà¤¾à¤°à¤¾ लेखà¥à¤¯ छैन । तपाईले डाइरेकà¥à¤Ÿà¤°à¥€à¤•ो अनà¥à¤®à¤¤à¤¿ परिवरà¥à¤¤à¤¨ गरà¥à¤¨à¥à¤ªà¤°à¥à¤› !';
-$lang['i_confexists']          = '<code>%s</code> पहिले देखि नै रहेको छ।';
-$lang['i_writeerr']            = '<code>%s</code> बनाउन असमरà¥à¤¥ । तपाईले डाइरेकà¥à¤Ÿà¤°à¥€ / फाइल अनà¥à¤®à¤¤à¤¿ जाचà¥à¤¨à¥ परà¥à¤› र फाइल आफैले बनाउनॠपरà¥à¤› ।';
-$lang['i_badhash']             = 'पहिचान हà¥à¤¨ नसकेको वा परिवरà¥à¤¤à¤¿à¤¤  okuwiki.php (hash=code>%s</code>)';
-$lang['i_badval']              = '<code>%s</code> - अवैध वा रितà¥à¤¤à¥‹ मान ';
-$lang['i_success']             = 'सà¥à¤¥à¤¾à¤ªà¤¨à¤¾ सफलरà¥à¤ªà¤®à¤¾ समापà¥à¤¤ भयो ।तपाई install.php मेटà¥à¤¨ सकà¥à¤¨à¥à¤¹à¥à¥à¤¨à¥à¤› । <a href="doku.php?id=wiki:welcome">तपाईको नयाठDokuWiki</a> निरनà¥à¤¤à¤° गरà¥à¤¨ सकà¥à¤¨à¥à¤¹à¥à¤¨à¥à¤› ।';
-$lang['i_failure']             = 'सà¥à¤¥à¤¾à¤ªà¤¨à¤¾ समयमा केहि तà¥à¤°à¥à¤Ÿà¤¿ फेला परà¥à¤¯à¥‹ ।तपाईले आफैले यसलाई <a href="doku.php?id=wiki:welcome">तपाईको नयाठDokuWiki</a> पà¥à¤°à¤¯à¥‹à¤— गरà¥à¤¨à¥ अगि	सचà¥à¤¯à¤¾à¤‰à¤¨à¥à¤ªà¤°à¥à¤¨à¥‡  हà¥à¤¨à¥à¤› ।';
-$lang['i_policy']              = 'सà¥à¤°à¥à¤•ो ACL निति';
-$lang['i_pol0']                = 'खà¥à¤²à¥à¤²à¤¾ विकि (पठन, लेखन , अपलोड ) सबैका लागि';
-$lang['i_pol1']                = 'Public विकि (पठन सवैका लागि,लेखन र अपलोड दरà¥à¤¤à¤¾ गरिà¤à¤•ा पà¥à¤°à¤¯à¤ªà¤—करà¥à¤¤à¤¾à¤•ा लागि ) ';
-$lang['i_pol2']                = 'बनà¥à¤¦ विकि (पठन , लेखन, अपलोड ) दरà¥à¤¤à¤¾ भà¤à¤•ा पà¥à¤°à¤¯à¥‹à¤—करà¥à¤¤à¤¾à¤•ा लागि मातà¥à¤° ।';
-$lang['i_retry']               = 'पà¥à¤¨: पà¥à¤°à¤¯à¤¾à¤¸ गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥ ';
-$lang['recent_global']         = 'तपाई अहिले <b>%s</b> नेमसà¥à¤ªà¥‡à¤¸ भितà¥à¤° भà¤à¤•ा परिवरà¥à¤¤à¤¨ हेरà¥à¤¦à¥ˆà¤¹à¥à¤¨à¥à¤¹à¥à¤¨à¥à¤›à¥¤ तपाई <a href="%s">पà¥à¤°à¥ˆ विकिमा भà¤à¤•ो परिवरà¥à¤¤à¤¨ हेरà¥à¤¨ सकà¥à¤¨à¥à¤¹à¥à¤¨à¥à¤›</a>.';
-$lang['email_signature_text'] = 'यो पतà¥à¤° DokuWiki ले, मा तयार पारेको हो ।
-@DOKUWIKIURL@';
diff --git a/wiki/inc/lang/ne/locked.txt b/wiki/inc/lang/ne/locked.txt
deleted file mode 100644
index 85f5390..0000000
--- a/wiki/inc/lang/ne/locked.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== पृषà¥à¤ à¤®à¤¾ ताला लगाà¤à¤•ो छ ======
-
-यो पृषà¥à¤  अरà¥à¤•ो पà¥à¤°à¤¯à¥‹à¤—करà¥à¤¤à¤¾à¤¦à¥à¤µà¤¾à¤°à¤¾ समà¥à¤ªà¤¾à¤¦à¤¨à¤•ा लागि ताला लगाइà¤à¤•ो छ । तपाईले समà¥à¤ªà¤¾à¤¦à¤¨ समापà¥à¤¤ नहà¥à¤¨à¥à¤œà¥‡à¤² या तालाको समय समापà¥à¤¤ नहà¥à¤¨à¥à¤œà¥‡à¤² समà¥à¤® पà¥à¤°à¤¤à¤¿à¤•à¥à¤·à¤¾à¤—रà¥à¤¨à¥ परà¥à¤› ।
\ No newline at end of file
diff --git a/wiki/inc/lang/ne/norev.txt b/wiki/inc/lang/ne/norev.txt
deleted file mode 100644
index 28c4efb..0000000
--- a/wiki/inc/lang/ne/norev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-====== कà¥à¤¨à¥ˆ तà¥à¤¯à¤¸à¥à¤¤à¥‹ पà¥à¤¨:संसà¥à¤•रण भेटिà¤à¤¨ ======
-खà¥à¤²à¤¾à¤‡à¤à¤•ो पà¥à¤¨:संसà¥à¤•रण असà¥à¤¤à¤¿à¤¤à¥à¤µà¤®à¤¾ छैन ।यस कागजातको समà¥à¤ªà¥‚रà¥à¤£ संसà¥à¤•रणको  सà¥à¤šà¥€à¤•ो लागि  "पà¥à¤°à¤¾à¤¨à¥‹ पà¥à¤¨:संसà¥à¤•रण" बटन पà¥à¤°à¤¯à¥‹à¤—  गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥ ।
\ No newline at end of file
diff --git a/wiki/inc/lang/ne/pwconfirm.txt b/wiki/inc/lang/ne/pwconfirm.txt
deleted file mode 100644
index 0552cc5..0000000
--- a/wiki/inc/lang/ne/pwconfirm.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-नमसà¥à¤•ार @FULLNAME@!
-
-कसैदà¥à¤µà¤¾à¤°à¤¾ तपाईको @TITLE@ को लागि नयाठपà¥à¤°à¤µà¥‡à¤¶à¤¶à¤¬à¥à¤¦ माग भà¤à¤•ो छ ।@DOKUWIKIURL@मा पà¥à¤°à¤µà¥‡à¤¶  ।
-
-यदि तपाईले नयाठपà¥à¤°à¤µà¥‡à¤¶à¤¶à¤¬à¥à¤¦à¤•ो माग गरà¥à¤¨à¥à¤­à¤à¤•ो हैन भने यस इमेललाई वेवासà¥à¤¤à¤¾ गरà¥à¤¨ सकà¥à¤¨à¥à¤¹à¥à¤¨à¥à¤› ।
-
-कृपया तपाईको माग साचà¥à¤šà¥ˆ पठाइà¤à¤•ो थियो भनà¥à¤¨à¥‡   यकिन गराउनाको लागि तलाको लिङà¥à¤•मा पà¥à¤°à¤¯à¥‹à¤— गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥  ।
-
-@CONFIRM@
diff --git a/wiki/inc/lang/ne/read.txt b/wiki/inc/lang/ne/read.txt
deleted file mode 100644
index e004cd3..0000000
--- a/wiki/inc/lang/ne/read.txt
+++ /dev/null
@@ -1 +0,0 @@
-यो पृषà¥à¤  पढà¥à¤¨à¤•ो लागि मातà¥à¤° हो । तपाई सà¥à¤°à¥‹à¤¤à¤¹à¥‡à¤°à¥à¤¨ सकà¥à¤¨à¥à¤¹à¥à¤¨à¥à¤› ,तर समà¥à¤ªà¤¾à¤¦à¤¨ भने गरà¥à¤¨ सकà¥à¤¨à¥à¤¹à¥à¤¨à¥à¤¨ । तपाईको वà¥à¤¯à¤µà¤¸à¥à¤¥à¤¾à¤ªà¤•(administrator) सà¤à¤— के समसà¥à¤¯à¤¾ छ भनेर सोधà¥à¤¨à¥ होला ।
\ No newline at end of file
diff --git a/wiki/inc/lang/ne/recent.txt b/wiki/inc/lang/ne/recent.txt
deleted file mode 100644
index 239903f..0000000
--- a/wiki/inc/lang/ne/recent.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-====== हालैको परिवरà¥à¤¤à¤¨ ======
-निमà¥à¤¨ पृषà¥à¤ à¤¹à¤°à¥ हालै परिवरà¥à¤¤à¤¨ गरिà¤à¤•ा छनॠ।
\ No newline at end of file
diff --git a/wiki/inc/lang/ne/resendpwd.txt b/wiki/inc/lang/ne/resendpwd.txt
deleted file mode 100644
index aec9dfb..0000000
--- a/wiki/inc/lang/ne/resendpwd.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== नयाठपà¥à¤°à¤µà¥‡à¤¶à¤¶à¤¬à¥à¤¦ पठाउनà¥à¤¹à¥‹à¤¸à¥ ======
-
-कृपया तपाईको यस विकीमा रहेको खाताको लाहि नयाठपà¥à¤°à¤µà¥‡à¤¶à¤¶à¤µà¥à¤¦ अनà¥à¤°à¥‹à¤§ गरà¥à¤¨ तपाईà¤à¤•ो नाम निमà¥à¤¨ फरà¥à¤®à¤®à¤¾ पà¥à¤°à¤µà¤¿à¤·à¥à¤Ÿ गरà¥à¤¨à¥à¤¹à¥‹à¤¸ । à¤à¤‰à¤Ÿà¤¾ किटानी लिङà¥à¤• तपाईले दरà¥à¤¤à¤¾ गरà¥à¤¨à¥ भà¤à¤•ो इमेल ठेगानामा पठाइने छ ।  
\ No newline at end of file
diff --git a/wiki/inc/lang/ne/searchpage.txt b/wiki/inc/lang/ne/searchpage.txt
deleted file mode 100644
index 02219e7..0000000
--- a/wiki/inc/lang/ne/searchpage.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== खोज ======
-
-तपाईले आफà¥à¤¨à¥‹ खोजको निमà¥à¤¨ नतिजा  पाउन सकà¥à¤¨à¥à¤¹à¥à¤¨à¥à¤›à¥¤ @CREATEPAGEINFO@
-
diff --git a/wiki/inc/lang/ne/showrev.txt b/wiki/inc/lang/ne/showrev.txt
deleted file mode 100644
index 5b22e97..0000000
--- a/wiki/inc/lang/ne/showrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-** यो कागजातको पà¥à¤°à¤¾à¤¨à¥‹ पà¥à¤¨:संसà¥à¤•रण हो !**
----
\ No newline at end of file
diff --git a/wiki/inc/lang/ne/updateprofile.txt b/wiki/inc/lang/ne/updateprofile.txt
deleted file mode 100644
index e3027e4..0000000
--- a/wiki/inc/lang/ne/updateprofile.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-‌‌â€â€â€======तपाईà¤à¤•ो खाताको जानकारी अदà¥à¤¯à¤¾à¤µà¤§à¤¿à¤• गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥======
-
-तपाईà¤à¤²à¥‡ आफूले परिवरà¥à¤¤à¤¨ गरà¥à¤¨ चाहेको फिलà¥à¤¡ मातà¥à¤° परिवरà¥à¤¤à¤¨ गरे पà¥à¤—à¥à¤› । तपाईà¤à¤²à¥‡ आफà¥à¤¨à¥‹ पà¥à¤°à¤¯à¥‹à¤—करà¥à¤¤à¤¾ नाम परिवरà¥à¤¤à¤¨ गरà¥à¤¨ पाउनà¥à¤¹à¥à¤¨à¥‡ छैन ।
diff --git a/wiki/inc/lang/ne/uploadmail.txt b/wiki/inc/lang/ne/uploadmail.txt
deleted file mode 100644
index a023797..0000000
--- a/wiki/inc/lang/ne/uploadmail.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-à¤à¤‰à¤Ÿà¤¾ फाइल तपाईको DokuWiki मा भरण गरिà¤à¤•ो छ। थप जानकारी निमà¥à¤¨ रहेका छनॠ:
-फाइल : @MEDIA@
-मिति : @DATE@
-बà¥à¤°à¤¾à¤‰à¤œà¤° : @BROWSER@
-आइपि ठगाना  : @IPADDRESS@
-होसà¥à¤Ÿà¤¨à¤¾à¤® : @HOSTNAME@
-आकार : @SIZE@
-MIME पà¥à¤°à¤•ार : @MIME@
-पà¥à¤°à¤¯à¥‹à¤—करà¥à¤¤à¤¾ : @USER@
diff --git a/wiki/inc/lang/nl/admin.txt b/wiki/inc/lang/nl/admin.txt
deleted file mode 100644
index 7138456..0000000
--- a/wiki/inc/lang/nl/admin.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Beheer ======
-
-Hieronder zie je een lijst van beheertaken beschikbaar in DokuWiki.
diff --git a/wiki/inc/lang/nl/adminplugins.txt b/wiki/inc/lang/nl/adminplugins.txt
deleted file mode 100644
index f006f92..0000000
--- a/wiki/inc/lang/nl/adminplugins.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Toegevoegde plugins =====
\ No newline at end of file
diff --git a/wiki/inc/lang/nl/backlinks.txt b/wiki/inc/lang/nl/backlinks.txt
deleted file mode 100644
index 6edbf40..0000000
--- a/wiki/inc/lang/nl/backlinks.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Backlinks ======
-
-Dit is een lijst van pagina's die terug lijken te wijzen naar de huidige pagina.
-
diff --git a/wiki/inc/lang/nl/conflict.txt b/wiki/inc/lang/nl/conflict.txt
deleted file mode 100644
index 49a06b0..0000000
--- a/wiki/inc/lang/nl/conflict.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== Er bestaat een nieuwere versie ======
-
-Er bestaat een nieuwere versie van het document dat aangepast wordt. Dit komt voor als een andere gebruiker dit document tegelijk met jou wijzigt.
-
-Bekijk de verschillen die beneden weergegeven worden uitvoerig, en beslis dan welke versie de beste is en dus bewaard moet worden. Kies ''opslaan'' om de eigen versie te bewaren. Kies ''annuleren'' om de huidige versie te bewaren.
diff --git a/wiki/inc/lang/nl/denied.txt b/wiki/inc/lang/nl/denied.txt
deleted file mode 100644
index a172dda..0000000
--- a/wiki/inc/lang/nl/denied.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Toegang geweigerd ======
-
-Sorry: je hebt niet voldoende rechten om verder te gaan.
-
diff --git a/wiki/inc/lang/nl/diff.txt b/wiki/inc/lang/nl/diff.txt
deleted file mode 100644
index ef5a1b1..0000000
--- a/wiki/inc/lang/nl/diff.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Verschillen ======
-
-Dit geeft de verschillen weer tussen de geselecteerde revisie en de huidige revisie van de pagina.
diff --git a/wiki/inc/lang/nl/draft.txt b/wiki/inc/lang/nl/draft.txt
deleted file mode 100644
index a6bf527..0000000
--- a/wiki/inc/lang/nl/draft.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-===== Conceptbestand gevonden =====
-
-Je laatste bewerking op deze pagina is niet volledig afgerond. DokuWiki heeft automatisch een concept van je werk opgeslagen waarmee je nu verder kunt gaan. Hieronder tref je het concept aan.
-
-Beslis of je het concept wilt //herstellen//, //verwijderen// of het bewerken wilt //annuleren//.
diff --git a/wiki/inc/lang/nl/edit.txt b/wiki/inc/lang/nl/edit.txt
deleted file mode 100644
index 4a441bf..0000000
--- a/wiki/inc/lang/nl/edit.txt
+++ /dev/null
@@ -1 +0,0 @@
-Pas de pagina aan en klik op ''Opslaan''. Zie [[wiki:syntax]] voor de Wiki-syntax. Pas  de pagina alleen aan als hij **verbeterd** kan worden. Als je iets wilt uitproberen kun je spelen in de  [[playground:playground|speeltuin]].
diff --git a/wiki/inc/lang/nl/editrev.txt b/wiki/inc/lang/nl/editrev.txt
deleted file mode 100644
index 1b2d130..0000000
--- a/wiki/inc/lang/nl/editrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**Er is een oude revisie van het document geladen!** Als je nu opslaat bewaar je een nieuwe versie met deze inhoud.
-----
diff --git a/wiki/inc/lang/nl/index.txt b/wiki/inc/lang/nl/index.txt
deleted file mode 100644
index ad7122b..0000000
--- a/wiki/inc/lang/nl/index.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Index ======
-
-Dit is een index van alle beschikbare pagina's gesorteerd op [[doku>namespaces|namespaces]].
-
diff --git a/wiki/inc/lang/nl/install.html b/wiki/inc/lang/nl/install.html
deleted file mode 100644
index a653258..0000000
--- a/wiki/inc/lang/nl/install.html
+++ /dev/null
@@ -1,14 +0,0 @@
-<p>Deze pagina helpt u bij de eerste installatie en configuratie van <a href="http://dokuwiki.org">Dokuwiki</a>.
-Meer informatie over deze installer is beschikbaar op zijn eigen <a href="http://dokuwiki.org/installer">documentatiepagina</a>.</p>
-
-<p>DokuWiki gebruikt platte tekstbestanden voor het opslaan van wikipagina's en andere informatie die bij deze pagina's horen (bijvoorbeeld plaatjes, zoek-indexen, oude revisies enz.). Om goed te kunnen functioneren, <strong>moet</strong>
-DokuWiki schrijftoegang hebben tot de directories die deze bestanden bevatten.
-De installer kan zelf deze toegangspermissies niet regelen. Dit moet normaal gesproken direct in de command shell worden ingevoerd, of in het geval van hosting via FTP of via uw hosting control panel (bijvoorbeeld cPanel).</p>
-
-<p>Deze installer zal uw DokuWiki configureren voor <abbr title="access control list">ACL</abbr>,
-wat de beheerder in staat stelt in te loggen en toegang te verkrijgen tot het beheersdeel van de DokuWiki voor het installeren van plugins, beheren van gebruikers, toegangsrechten tot wiki pagina's en veranderen van configuratie-instellingen.
-Het is niet noodzakelijk voor DokuWiki om te functioneren maar het maakt het een stuk makkelijker om Dokuwiki te beheren.</p>
-
-<p>Ervaren gebruikers of gebruikers die een aangepaste configuratie nodig hebben kunnen voor details terecht op de volgende pagina's:
-<a href="http://dokuwiki.org/install">installatie-instructies</a>
-en <a href="http://dokuwiki.org/config">configuratie-instellingen</a>.</p>
diff --git a/wiki/inc/lang/nl/jquery.ui.datepicker.js b/wiki/inc/lang/nl/jquery.ui.datepicker.js
deleted file mode 100644
index 7fcbff1..0000000
--- a/wiki/inc/lang/nl/jquery.ui.datepicker.js
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Dutch (UTF-8) initialisation for the jQuery UI date picker plugin. */
-/* Written by Mathias Bynens <http://mathiasbynens.be/> */
-( function( factory ) {
-	if ( typeof define === "function" && define.amd ) {
-
-		// AMD. Register as an anonymous module.
-		define( [ "../widgets/datepicker" ], factory );
-	} else {
-
-		// Browser globals
-		factory( jQuery.datepicker );
-	}
-}( function( datepicker ) {
-
-datepicker.regional.nl = {
-	closeText: "Sluiten",
-	prevText: "â†",
-	nextText: "→",
-	currentText: "Vandaag",
-	monthNames: [ "januari", "februari", "maart", "april", "mei", "juni",
-	"juli", "augustus", "september", "oktober", "november", "december" ],
-	monthNamesShort: [ "jan", "feb", "mrt", "apr", "mei", "jun",
-	"jul", "aug", "sep", "okt", "nov", "dec" ],
-	dayNames: [ "zondag", "maandag", "dinsdag", "woensdag", "donderdag", "vrijdag", "zaterdag" ],
-	dayNamesShort: [ "zon", "maa", "din", "woe", "don", "vri", "zat" ],
-	dayNamesMin: [ "zo", "ma", "di", "wo", "do", "vr", "za" ],
-	weekHeader: "Wk",
-	dateFormat: "dd-mm-yy",
-	firstDay: 1,
-	isRTL: false,
-	showMonthAfterYear: false,
-	yearSuffix: "" };
-datepicker.setDefaults( datepicker.regional.nl );
-
-return datepicker.regional.nl;
-
-} ) );
diff --git a/wiki/inc/lang/nl/lang.php b/wiki/inc/lang/nl/lang.php
deleted file mode 100644
index fe3c879..0000000
--- a/wiki/inc/lang/nl/lang.php
+++ /dev/null
@@ -1,381 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Harriet Neitz <harrietneitz@gmail.com>
- * @author mark prins <mprins@users.sf.net>
- * @author François Kooman <fkooman.tuxed.net>
- * @author Jack van Klaren <dokuwiki@afentoe.xs4all.nl>
- * @author Riny Heijdendael <riny@heijdendael.nl>
- * @author Koen Huybrechts <huybkoen@gmail.com>
- * @author Wouter Schoot <wouter@schoot.org>
- * @author John de Graaff <john@de-graaff.net>
- * @author Dion Nicolaas <dion@nicolaas.net>
- * @author Danny Rotsaert <danny.rotsaert@edpnet.be>
- * @author Matthias Carchon <webmaster@c-mattic.be>
- * @author Marijn Hofstra <hofstra.m@gmail.com>
- * @author Timon Van Overveldt <timonvo@gmail.com>
- * @author Jeroen
- * @author Ricardo Guijt <ricardoguijt@gmail.com>
- * @author Gerrit <klapinklapin@gmail.com>
- * @author Remon <no@email.local>
- * @author gicalle <gicalle@hotmail.com>
- * @author Rene <wllywlnt@yahoo.com>
- * @author Johan Vervloet <johan.vervloet@gmail.com>
- * @author Mijndert <mijndert@mijndertstuij.nl>
- * @author Johan Wijnker <johan@wijnker.eu>
- * @author Hugo Smet <hugo.smet@scarlet.be>
- * @author Wesley de Weerd <wesleytiel@gmail.com>
- * @author Sjoerd <sjoerd@sjomar.eu>
- * @author Joachim David <joa_david@hotmail.com>
- * @author stafmans <dokuwiki@stafmans.net>
- */
-$lang['encoding']              = 'utf-8';
-$lang['direction']             = 'ltr';
-$lang['doublequoteopening']    = '“';
-$lang['doublequoteclosing']    = 'â€';
-$lang['singlequoteopening']    = '‘';
-$lang['singlequoteclosing']    = '’';
-$lang['apostrophe']            = '’';
-$lang['btn_edit']              = 'Pagina aanpassen';
-$lang['btn_source']            = 'Toon bronpagina';
-$lang['btn_show']              = 'Toon pagina';
-$lang['btn_create']            = 'Maak deze pagina aan';
-$lang['btn_search']            = 'Zoeken';
-$lang['btn_save']              = 'Opslaan';
-$lang['btn_preview']           = 'Voorbeeld';
-$lang['btn_top']               = 'Terug naar boven';
-$lang['btn_newer']             = '<< nieuwer';
-$lang['btn_older']             = 'ouder >>';
-$lang['btn_revs']              = 'Oude revisies';
-$lang['btn_recent']            = 'Recente aanpassingen';
-$lang['btn_upload']            = 'Uploaden';
-$lang['btn_cancel']            = 'Annuleren';
-$lang['btn_index']             = 'Index';
-$lang['btn_secedit']           = 'Aanpassen';
-$lang['btn_login']             = 'Inloggen';
-$lang['btn_logout']            = 'Uitloggen';
-$lang['btn_admin']             = 'Beheer';
-$lang['btn_update']            = 'Bijwerken';
-$lang['btn_delete']            = 'Verwijder';
-$lang['btn_back']              = 'Terug';
-$lang['btn_backlink']          = 'Referenties';
-$lang['btn_subscribe']         = 'Inschrijven wijzigingen';
-$lang['btn_profile']           = 'Profiel aanpassen';
-$lang['btn_reset']             = 'Wissen';
-$lang['btn_resendpwd']         = 'Nieuw wachtwoord bepalen';
-$lang['btn_draft']             = 'Bewerk concept';
-$lang['btn_recover']           = 'Herstel concept';
-$lang['btn_draftdel']          = 'Verwijder concept';
-$lang['btn_revert']            = 'Herstellen';
-$lang['btn_register']          = 'Registreren';
-$lang['btn_apply']             = 'Toepassen';
-$lang['btn_media']             = 'Mediabeheerder';
-$lang['btn_deleteuser']        = 'Verwijder mijn account';
-$lang['btn_img_backto']        = 'Terug naar %s';
-$lang['btn_mediaManager']      = 'In mediabeheerder bekijken';
-$lang['loggedinas']            = 'Ingelogd als:';
-$lang['user']                  = 'Gebruikersnaam';
-$lang['pass']                  = 'Wachtwoord';
-$lang['newpass']               = 'Nieuw wachtwoord';
-$lang['oldpass']               = 'Bevestig huidig wachtwoord';
-$lang['passchk']               = 'nogmaals';
-$lang['remember']              = 'Bewaar';
-$lang['fullname']              = 'Volledige naam';
-$lang['email']                 = 'E-mail';
-$lang['profile']               = 'Gebruikersprofiel';
-$lang['badlogin']              = 'Sorry, gebruikersnaam of wachtwoord onjuist';
-$lang['badpassconfirm']        = 'Sorry, het wachtwoord was onjuist';
-$lang['minoredit']             = 'Kleine wijziging';
-$lang['draftdate']             = 'Concept automatisch opgeslagen op';
-$lang['nosecedit']             = 'De pagina is tussentijds veranderd, sectie-informatie was verouderd, volledige pagina geladen.';
-$lang['searchcreatepage']      = 'Als je niet hebt gevonden wat je zocht, kun je de pagina %s, vernoemd naar je query, aanmaken of bewerken.';
-$lang['search_fullresults']    = 'Fulltext resultaten';
-$lang['js']['search_toggle_tools'] = 'Schakel zoek gereedschappen aan/uit';
-$lang['js']['willexpire']      = 'Je exclusieve gebruiksrecht voor het aanpassen van deze pagina verloopt over een minuut.\nKlik op de Voorbeeld-knop om het exclusieve gebruiksrecht te verlengen.';
-$lang['js']['notsavedyet']     = 'Nog niet bewaarde wijzigingen zullen verloren gaan.
-Weet je zeker dat je wilt doorgaan?';
-$lang['js']['searchmedia']     = 'Zoek naar bestanden';
-$lang['js']['keepopen']        = 'Houd scherm open bij selectie';
-$lang['js']['hidedetails']     = 'Verberg details';
-$lang['js']['mediatitle']      = 'Linkinstellingen';
-$lang['js']['mediadisplay']    = 'Linktype';
-$lang['js']['mediaalign']      = 'Uitlijning';
-$lang['js']['mediasize']       = 'Afbeeldingsomvang';
-$lang['js']['mediatarget']     = 'Linkdoel';
-$lang['js']['mediaclose']      = 'Sluiten';
-$lang['js']['mediainsert']     = 'Invoegen';
-$lang['js']['mediadisplayimg'] = 'De afbeelding weergeven';
-$lang['js']['mediadisplaylnk'] = 'Alleen de link weergeven';
-$lang['js']['mediasmall']      = 'Kleine versie';
-$lang['js']['mediamedium']     = 'Middelgrote versie';
-$lang['js']['medialarge']      = 'Grote versie';
-$lang['js']['mediaoriginal']   = 'Originele versie';
-$lang['js']['medialnk']        = 'Link naar detailpagina';
-$lang['js']['mediadirect']     = 'Directe link naar origineel';
-$lang['js']['medianolnk']      = 'Geen link';
-$lang['js']['medianolink']     = 'Link niet naar de afbeelding';
-$lang['js']['medialeft']       = 'Afbeelding links uitlijnen';
-$lang['js']['mediaright']      = 'Afbeelding rechts uitlijnen';
-$lang['js']['mediacenter']     = 'Afbeelding centreren';
-$lang['js']['medianoalign']    = 'Geen uitlijning gebruiken';
-$lang['js']['nosmblinks']      = 'Linken naar Windows shares werkt alleen in Microsoft Internet Explorer.
-Je kan de link wel kopiëren en plakken.';
-$lang['js']['linkwiz']         = 'Linkwizard';
-$lang['js']['linkto']          = 'Link naar:';
-$lang['js']['del_confirm']     = 'Item(s) verwijderen?';
-$lang['js']['restore_confirm'] = 'Werkelijk deze versie terugzetten?';
-$lang['js']['media_diff']      = 'Verschillen bekijken:';
-$lang['js']['media_diff_both'] = 'Naast elkaar';
-$lang['js']['media_diff_opacity'] = 'Doorschijnend';
-$lang['js']['media_diff_portions'] = 'Swipe';
-$lang['js']['media_select']    = 'Selecteer bestanden';
-$lang['js']['media_upload_btn'] = 'Uploaden';
-$lang['js']['media_done_btn']  = 'Klaar';
-$lang['js']['media_drop']      = 'Sleep bestanden hierheen om ze te uploaden';
-$lang['js']['media_cancel']    = 'Verwijderen';
-$lang['js']['media_overwrt']   = 'Bestaande bestanden overschrijven';
-$lang['search_exact_match']    = 'Exacte overeenkomst';
-$lang['search_starts_with']    = 'Begint met';
-$lang['search_ends_with']      = 'Eindigt op';
-$lang['search_contains']       = 'Bevat';
-$lang['search_custom_match']   = 'Maatwerk';
-$lang['search_any_ns']         = '(Iedere) Willekeurige namespace';
-$lang['search_any_time']       = 'Wanneer dan ook';
-$lang['search_past_7_days']    = 'Vorige week';
-$lang['search_past_month']     = 'Vorige maand';
-$lang['search_past_year']      = 'Vorig jaar';
-$lang['search_sort_by_hits']   = 'Sorteer op hits';
-$lang['search_sort_by_mtime']  = 'Sorteer op laatst gewijzigd';
-$lang['regmissing']            = 'Vul alle velden in';
-$lang['reguexists']            = 'Er bestaat al een gebruiker met deze loginnaam.';
-$lang['regsuccess']            = 'De gebruiker is aangemaakt. Het wachtwoord is per e-mail verzonden.';
-$lang['regsuccess2']           = 'De gebruiker is aangemaakt.';
-$lang['regfail']               = 'Gebruiker kon niet aangemaakt worden.';
-$lang['regmailfail']           = 'Het lijkt erop dat het sturen van de wachtwoordmail mislukt is. Neem contact op met de beheerder!';
-$lang['regbadmail']            = 'Het opgegeven e-mailadres lijkt ongeldig - als je denkt dat dit niet klopt neem dan contact op met de beheerder.';
-$lang['regbadpass']            = 'De twee ingevoerde wachtwoorden zijn niet identiek. Probeer het nog eens.';
-$lang['regpwmail']             = 'Je DokuWiki wachtwoord';
-$lang['reghere']               = 'Je hebt nog geen account? Vraag er eentje aan';
-$lang['profna']                = 'Deze wiki ondersteunt geen profielwijzigingen';
-$lang['profnochange']          = 'Geen wijzigingen, niets gedaan';
-$lang['profnoempty']           = 'Een lege gebruikersnaam of e-mailadres is niet toegestaan';
-$lang['profchanged']           = 'Gebruikersprofiel succesvol aangepast';
-$lang['profnodelete']          = 'Deze wiki heeft biedt geen ondersteuning voor verwijdering van gebruikers';
-$lang['profdeleteuser']        = 'Verwijder gebruiker';
-$lang['profdeleted']           = 'Uw gebruikersaccount is verwijderd van deze wiki';
-$lang['profconfdelete']        = 'Ik wil mijn gebruikersaccount verwijderen van deze wiki. <br/> Deze actie kan niet ongedaan gemaakt worden.';
-$lang['profconfdeletemissing'] = 'Bevestigingsvinkje niet gezet';
-$lang['proffail']              = 'Gebruikersprofiel werd niet bijgewerkt.';
-$lang['pwdforget']             = 'Je wachtwoord vergeten? Vraag een nieuw wachtwoord aan';
-$lang['resendna']              = 'Deze wiki ondersteunt het verzenden van wachtwoorden niet';
-$lang['resendpwd']             = 'Nieuw wachtwoord bepalen voor';
-$lang['resendpwdmissing']      = 'Sorry, je moet alle velden invullen.';
-$lang['resendpwdnouser']       = 'Sorry, we kunnen deze gebruikersnaam niet vinden in onze database.';
-$lang['resendpwdbadauth']      = 'Sorry, deze authentiecatiecode is niet geldig. Controleer of je de volledige bevestigings-link hebt gebruikt.';
-$lang['resendpwdconfirm']      = 'Een bevestigingslink is per e-mail verzonden.';
-$lang['resendpwdsuccess']      = 'Je nieuwe wachtwoord is per e-mail verzonden.';
-$lang['license']               = 'Tenzij anders vermeld valt de inhoud van deze wiki onder de volgende licentie:';
-$lang['licenseok']             = 'Let op: Door deze pagina aan te passen geef je de inhoud vrij onder de volgende licentie:';
-$lang['searchmedia']           = 'Bestandsnaam zoeken:';
-$lang['searchmedia_in']        = 'Zoek in %s';
-$lang['txt_upload']            = 'Selecteer een bestand om te uploaden:';
-$lang['txt_filename']          = 'Vul nieuwe naam in (optioneel):';
-$lang['txt_overwrt']           = 'Overschrijf bestaand bestand';
-$lang['maxuploadsize']         = 'Max %s per bestand';
-$lang['lockedby']              = 'Momenteel in gebruik door:';
-$lang['lockexpire']            = 'Exclusief gebruiksrecht vervalt op:';
-$lang['rssfailed']             = 'Er is een fout opgetreden bij het ophalen van de feed: ';
-$lang['nothingfound']          = 'Er werd niets gevonden.';
-$lang['mediaselect']           = 'Bestandsselectie';
-$lang['uploadsucc']            = 'Upload geslaagd';
-$lang['uploadfail']            = 'Upload mislukt. Misschien verkeerde permissies?';
-$lang['uploadwrong']           = 'Upload mislukt. Deze bestandsextensie is verboden!';
-$lang['uploadexist']           = 'Bestand bestaat reeds. Er is niets gewijzigd.';
-$lang['uploadbadcontent']      = 'Het geüploade bestand heeft niet de bestandsextensie %s.';
-$lang['uploadspam']            = 'De upload is geblokkeerd door de spam blacklist.';
-$lang['uploadxss']             = 'De upload is geblokkeerd wegens mogelijk onveilige inhoud.';
-$lang['uploadsize']            = 'Het geüploade bestand is te groot. (max. %s)';
-$lang['deletesucc']            = 'Het bestand "%s" is verwijderd.';
-$lang['deletefail']            = '"%s" kan niet worden verwijderd - controleer permissies.';
-$lang['mediainuse']            = 'Het bestand "%s" is niet verwijderd - het is nog in gebruik.';
-$lang['namespaces']            = 'Namespaces';
-$lang['mediafiles']            = 'Beschikbare bestanden in';
-$lang['accessdenied']          = 'U heeft geen toegang tot deze pagina.';
-$lang['mediausage']            = 'Gebruik de volgende syntax om aan het bestand te refereren:';
-$lang['mediaview']             = 'Bekijk het orginele bestand';
-$lang['mediaroot']             = 'root';
-$lang['mediaupload']           = 'Upload een bestand naar de huidige namespace. Om een subnamespace aan te maken, laat je die voorafgaan aan de bestandsnaam bij "Upload als", gescheiden door een dubbele punt.';
-$lang['mediaextchange']        = 'Bestandsextensie veranderd van .%s naar .%s!';
-$lang['reference']             = 'Referenties voor';
-$lang['ref_inuse']             = 'Het bestand kan niet worden verwijderd omdat het nog in gebruik is op de volgende pagina\'s:';
-$lang['ref_hidden']            = 'Enkele referenties staan op pagina\'s waarvoor je geen leesrechten hebt';
-$lang['hits']                  = 'Hits';
-$lang['quickhits']             = 'Overeenkomende paginanamen';
-$lang['toc']                   = 'Inhoud';
-$lang['current']               = 'huidige';
-$lang['yours']                 = 'Jouw versie';
-$lang['diff']                  = 'Toon verschillen met huidige revisie';
-$lang['diff2']                 = 'Toon verschillen tussen geselecteerde revisies';
-$lang['difflink']              = 'Link naar deze vergelijking';
-$lang['diff_type']             = 'Bekijk verschillen:';
-$lang['diff_inline']           = 'Inline';
-$lang['diff_side']             = 'Zij aan zij';
-$lang['diffprevrev']           = 'Vorige revisie';
-$lang['diffnextrev']           = 'Volgende revisie';
-$lang['difflastrev']           = 'Laatste revisie';
-$lang['diffbothprevrev']       = 'Beide kanten vorige revisie';
-$lang['diffbothnextrev']       = 'Beide kanten volgende revisie';
-$lang['line']                  = 'Regel';
-$lang['breadcrumb']            = 'Spoor:';
-$lang['youarehere']            = 'Je bent hier:';
-$lang['lastmod']               = 'Laatst gewijzigd:';
-$lang['by']                    = 'door';
-$lang['deleted']               = 'verwijderd';
-$lang['created']               = 'aangemaakt';
-$lang['restored']              = 'oude revisie hersteld (%s)';
-$lang['external_edit']         = 'Externe bewerking';
-$lang['summary']               = 'Samenvatting wijziging';
-$lang['noflash']               = 'De <a href="http://www.adobe.com/products/flashplayer/">Adobe Flash Plugin</a> is vereist om de pagina te kunnen weergeven.';
-$lang['download']              = 'Download fragment';
-$lang['tools']                 = 'Hulpmiddelen';
-$lang['user_tools']            = 'Gebruikershulpmiddelen';
-$lang['site_tools']            = 'Site-hulpmiddelen';
-$lang['page_tools']            = 'Paginahulpmiddelen';
-$lang['skip_to_content']       = 'spring naar tekst';
-$lang['sidebar']               = 'Zijbalk';
-$lang['mail_newpage']          = 'pagina toegevoegd:';
-$lang['mail_changed']          = 'pagina aangepast:';
-$lang['mail_subscribe_list']   = 'Pagina\'s veranderd in namespace:';
-$lang['mail_new_user']         = 'nieuwe gebruiker:';
-$lang['mail_upload']           = 'bestand geüpload:';
-$lang['changes_type']          = 'Bekijk wijzigingen van';
-$lang['pages_changes']         = 'Pagina\'s';
-$lang['media_changes']         = 'Mediabestanden';
-$lang['both_changes']          = 'Zowel pagina\'s als mediabestanden';
-$lang['qb_bold']               = 'Vetgedrukte tekst';
-$lang['qb_italic']             = 'Cursieve tekst';
-$lang['qb_underl']             = 'Onderstreepte tekst';
-$lang['qb_code']               = 'Code tekst';
-$lang['qb_strike']             = 'Doorgestreepte tekst';
-$lang['qb_h1']                 = 'Niveau 1 kop';
-$lang['qb_h2']                 = 'Niveau 2 kop';
-$lang['qb_h3']                 = 'Niveau 3 kop';
-$lang['qb_h4']                 = 'Niveau 4 kop';
-$lang['qb_h5']                 = 'Niveau 5 kop';
-$lang['qb_h']                  = 'Koptekst';
-$lang['qb_hs']                 = 'Kies koptekst';
-$lang['qb_hplus']              = 'Hogere koptekst';
-$lang['qb_hminus']             = 'Lagere koptekst';
-$lang['qb_hequal']             = 'Koptekst op zelfde niveau';
-$lang['qb_link']               = 'Interne link';
-$lang['qb_extlink']            = 'Externe link';
-$lang['qb_hr']                 = 'Horizontale lijn';
-$lang['qb_ol']                 = 'Geordende lijst';
-$lang['qb_ul']                 = 'Ongeordende lijst';
-$lang['qb_media']              = 'Voeg plaatjes en andere bestanden toe';
-$lang['qb_sig']                = 'Handtekening invoegen';
-$lang['qb_smileys']            = 'Smileys';
-$lang['qb_chars']              = 'Speciale tekens';
-$lang['upperns']               = 'Spring naar bovenliggende namespace';
-$lang['metaedit']              = 'Metadata wijzigen';
-$lang['metasaveerr']           = 'Schrijven van metadata mislukt';
-$lang['metasaveok']            = 'Metadata bewaard';
-$lang['img_title']             = 'Titel:';
-$lang['img_caption']           = 'Bijschrift:';
-$lang['img_date']              = 'Datum:';
-$lang['img_fname']             = 'Bestandsnaam:';
-$lang['img_fsize']             = 'Grootte:';
-$lang['img_artist']            = 'Fotograaf:';
-$lang['img_copyr']             = 'Copyright:';
-$lang['img_format']            = 'Formaat:';
-$lang['img_camera']            = 'Camera:';
-$lang['img_keywords']          = 'Trefwoorden:';
-$lang['img_width']             = 'Breedte:';
-$lang['img_height']            = 'Hoogte:';
-$lang['subscr_subscribe_success'] = '%s is ingeschreven voor %s';
-$lang['subscr_subscribe_error'] = 'Fout bij inschrijven van %s voor %s';
-$lang['subscr_subscribe_noaddress'] = 'Er is geen e-mailadres gekoppeld aan uw account, u kunt daardoor niet worden ingeschreven.';
-$lang['subscr_unsubscribe_success'] = '%s is nu uitgeschreven bij %s.';
-$lang['subscr_unsubscribe_error'] = 'Fout bij uitschrijven van %s bij %s.';
-$lang['subscr_already_subscribed'] = '%s is reeds ingeschreven bij %s.';
-$lang['subscr_not_subscribed'] = '%s is niet ingeschreven bij %s.';
-$lang['subscr_m_not_subscribed'] = 'Je bent momenteel niet ingeschreven bij de huidige pagina of namespace.';
-$lang['subscr_m_new_header']   = 'Inschrijving toevoegen';
-$lang['subscr_m_current_header'] = 'Huidige inschrijvingen';
-$lang['subscr_m_unsubscribe']  = 'Uitschrijven';
-$lang['subscr_m_subscribe']    = 'Inschrijven';
-$lang['subscr_m_receive']      = 'Ontvang';
-$lang['subscr_style_every']    = 'Email bij iedere wijziging';
-$lang['subscr_style_digest']   = 'Samenvattings-email met wijzigingen per pagina (elke %.2f dagen)';
-$lang['subscr_style_list']     = 'Lijst van veranderde pagina\'s sinds laatste email (elke %.2f dagen)';
-$lang['authtempfail']          = 'Gebruikersauthenticatie is tijdelijk niet beschikbaar. Als deze situatie zich blijft voordoen, informeer dan de wikibeheerder.';
-$lang['i_chooselang']          = 'Kies je taal';
-$lang['i_installer']           = 'DokuWiki Installer';
-$lang['i_wikiname']            = 'Wikinaam';
-$lang['i_enableacl']           = 'ACLs inschakelen (aanbevolen)';
-$lang['i_superuser']           = 'Superuser';
-$lang['i_problems']            = 'De installer vond problemen, hieronder aangegeven. Verhelp deze voor je doorgaat.';
-$lang['i_modified']            = 'Uit veiligheidsoverwegingen werkt dit script alleen met nieuwe en onveranderde DokuWiki-installaties. Pak de bestanden opnieuw uit of raadpleeg de <a href="http://dokuwiki.org/install">Dokuwiki installatie-instructies</a>';
-$lang['i_funcna']              = 'PHP functie <code>%s</code> is niet beschikbaar. Wellicht heeft je hosting provider deze uitgeschakeld?';
-$lang['i_phpver']              = 'PHP-versie <code>%s</code> is lager dan de vereiste <code>%s</code>. Upgrade PHP.';
-$lang['i_mbfuncoverload']      = 'Om DokuWiki te draaien moet mbstring.func_overload uitgeschakeld zijn in php.ini.';
-$lang['i_permfail']            = '<code>%s</code> is niet schrijfbaar voor DokuWiki. Pas de permissie-instellingen van deze directory aan.';
-$lang['i_confexists']          = '<code>%s</code> bestaat reeds';
-$lang['i_writeerr']            = 'Niet mogelijk om <code>%s</code> aan te maken. Controleer de directory/bestandspermissies en maak het bestand handmatig aan.';
-$lang['i_badhash']             = 'Onbekende of aangepaste dokuwiki.php (hash=<code>%s</code>)';
-$lang['i_badval']              = '<code>%s</code> - onjuiste of lege waarde';
-$lang['i_success']             = 'De configuratie is succesvol afgerond. Je kunt nu het bestand install.php verwijderen. Ga naar <a href="doku.php?id=wiki:welcome">je nieuwe DokuWiki</a>.';
-$lang['i_failure']             = 'Fouten deden zich voor tijdens het schrijven naar de configuratiebestanden. Pas deze aan voor je gebruik kunt maken van <a href="doku.php?id=wiki:welcome">je nieuwe DokuWiki</a>.';
-$lang['i_policy']              = 'Initieel ACL-beleid';
-$lang['i_pol0']                = 'Open wiki (lezen, schrijven, uploaden voor iedereen)';
-$lang['i_pol1']                = 'Publieke wiki (lezen voor iedereen, schrijven en uploaden voor geregistreerde gebruikers)';
-$lang['i_pol2']                = 'Besloten wiki (lezen, schrijven en uploaden alleen voor geregistreerde gebruikers)';
-$lang['i_allowreg']            = 'Toestaan dat gebruikers zichzelf registeren';
-$lang['i_retry']               = 'Opnieuw';
-$lang['i_license']             = 'Kies a.u.b. een licentie die u voor uw inhoud wilt gebruiken:';
-$lang['i_license_none']        = 'Toon geen licentie-informatie';
-$lang['i_pop_field']           = 'Help ons om je DokuWiki ervaring te verbeteren';
-$lang['i_pop_label']           = 'Stuur eens per maand geanonimiseerde gebruiksstatistieken naar de Dokuwiki ontwikkelaars';
-$lang['recent_global']         = 'Je bekijkt momenteel de wijzigingen binnen de <b>%s</b> namespace. Je kunt ook de <a href="%s">recente wijzigingen van de hele wiki</a> bekijken.';
-$lang['years']                 = '%d jaar geleden';
-$lang['months']                = '%d maand geleden';
-$lang['weeks']                 = '%d weken geleden';
-$lang['days']                  = '%d dagen geleden';
-$lang['hours']                 = '%d uren geleden';
-$lang['minutes']               = '%d minuten geleden';
-$lang['seconds']               = '%d seconden geleden';
-$lang['wordblock']             = 'Uw wijziging is niet opgeslagen omdat deze niet-toegestane tekst bevat (spam).';
-$lang['media_uploadtab']       = 'Uploaden';
-$lang['media_searchtab']       = 'Zoeken';
-$lang['media_file']            = 'Bestand';
-$lang['media_viewtab']         = 'Beeld';
-$lang['media_edittab']         = 'Bewerken';
-$lang['media_historytab']      = 'Geschiedenis';
-$lang['media_list_thumbs']     = 'Miniatuurweergaven';
-$lang['media_list_rows']       = 'Regels';
-$lang['media_sort_name']       = 'Naam';
-$lang['media_sort_date']       = 'Datum';
-$lang['media_namespaces']      = 'Kies namespace';
-$lang['media_files']           = 'Bestanden in %s';
-$lang['media_upload']          = 'Upload naar %s';
-$lang['media_search']          = 'Zoeken in %s';
-$lang['media_view']            = '%s';
-$lang['media_viewold']         = '%s bij %s';
-$lang['media_edit']            = '%s bewerken';
-$lang['media_history']         = 'Geschiedenis van %s';
-$lang['media_meta_edited']     = 'Metagegevens bewerkt';
-$lang['media_perm_read']       = 'Sorry, u heeft niet voldoende rechten om bestanden te lezen.';
-$lang['media_perm_upload']     = 'Sorry, u heeft niet voldoende rechten om bestanden te uploaden.';
-$lang['media_update']          = 'Upload nieuwe versie';
-$lang['media_restore']         = 'Deze versie terugzetten';
-$lang['media_acl_warning']     = 'De lijst is mogelijk niet compleet door ACL beperkingen en verborgen pagina\'s.';
-$lang['currentns']             = 'Huidige namespace';
-$lang['searchresult']          = 'Zoekresultaat';
-$lang['plainhtml']             = 'Alleen HTML';
-$lang['wikimarkup']            = 'Wiki Opmaak';
-$lang['page_nonexist_rev']     = 'Pagina bestaat niet bij %s. Het is vervolgens aangemaakt bij <a href="%s">%s</a>.';
-$lang['unable_to_parse_date']  = 'Begrijp het niet bij parameter "%s".';
-$lang['email_signature_text']  = 'Deze mail werd gegenereerd door DokuWiki op
-@DOKUWIKIURL@';
diff --git a/wiki/inc/lang/nl/locked.txt b/wiki/inc/lang/nl/locked.txt
deleted file mode 100644
index 878fb37..0000000
--- a/wiki/inc/lang/nl/locked.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Pagina in exclusief gebruik ======
-
-Deze pagina wordt momenteel aangepast door een andere gebruiker. Wacht tot deze gebruiker klaar is met aanpassen of totdat het gebruiksrecht vervalt.
diff --git a/wiki/inc/lang/nl/login.txt b/wiki/inc/lang/nl/login.txt
deleted file mode 100644
index 699cbf8..0000000
--- a/wiki/inc/lang/nl/login.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Login ======
-
-Je bent op dit moment niet ingelogd! Voer je login-gegevens hieronder in om in te loggen. Je browser moet cookies accepteren om in te kunnen loggen.
diff --git a/wiki/inc/lang/nl/mailtext.txt b/wiki/inc/lang/nl/mailtext.txt
deleted file mode 100644
index 32f6f63..0000000
--- a/wiki/inc/lang/nl/mailtext.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-Er is een pagina in je DokuWiki toegevoegd of gewijzigd. Hier zijn de details:
-
-Datum         : @DATE@
-Browser       : @BROWSER@
-IP-Adres      : @IPADDRESS@
-Hostnaam      : @HOSTNAME@
-Oude revisie  : @OLDPAGE@
-Nieuwe revisie: @NEWPAGE@
-Samenvatting  : @SUMMARY@
-User          : @USER@
-
-@DIFF@
diff --git a/wiki/inc/lang/nl/mailwrap.html b/wiki/inc/lang/nl/mailwrap.html
deleted file mode 100644
index f15ec06..0000000
--- a/wiki/inc/lang/nl/mailwrap.html
+++ /dev/null
@@ -1,13 +0,0 @@
-<html>
- <head>
- <title>@TITLE@</title>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
- </head>
- <body>
-
- @HTMLBODY@
-
- <br /><hr />
- <small>@EMAILSIGNATURE@</small>
- </body>
- </html>
\ No newline at end of file
diff --git a/wiki/inc/lang/nl/newpage.txt b/wiki/inc/lang/nl/newpage.txt
deleted file mode 100644
index 0e4b95e..0000000
--- a/wiki/inc/lang/nl/newpage.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Dit onderwerp bestaat nog niet ======
-
-De pagina over dit onderwerp bestaat nog niet. Aanmaken kan door op de ''Maak deze pagina aan'' te klikken.
diff --git a/wiki/inc/lang/nl/norev.txt b/wiki/inc/lang/nl/norev.txt
deleted file mode 100644
index 849fc51..0000000
--- a/wiki/inc/lang/nl/norev.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Revisie bestaat niet ======
-
-De opgegeven revisie bestaat niet. Klik op ''Oude revisies'' voor een lijst van oude revisies van dit document.
-
diff --git a/wiki/inc/lang/nl/password.txt b/wiki/inc/lang/nl/password.txt
deleted file mode 100644
index 94a180a..0000000
--- a/wiki/inc/lang/nl/password.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-Beste @FULLNAME@!
-
-Hier is je gebruikersinformatie voor @TITLE@ op @DOKUWIKIURL@
-
-Gebruikersnaam: @LOGIN@
-Wachtwoord    : @PASSWORD@
diff --git a/wiki/inc/lang/nl/preview.txt b/wiki/inc/lang/nl/preview.txt
deleted file mode 100644
index 4d2927a..0000000
--- a/wiki/inc/lang/nl/preview.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Preview ======
-
-Dit is een preview van de tekst zoals hij er uit komt te zien. Let op: het is nog **niet opgeslagen!**
-
diff --git a/wiki/inc/lang/nl/pwconfirm.txt b/wiki/inc/lang/nl/pwconfirm.txt
deleted file mode 100644
index 8b900b1..0000000
--- a/wiki/inc/lang/nl/pwconfirm.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-Beste @FULLNAME@!
-
-Iemand heeft een nieuw wachtwoord aangevraagd voor je @TITLE@ login op @DOKUWIKIURL@
-
-Als je geen nieuw wachtwoord hebt aangevraagd kun je deze e-mail negeren.
-
-Volg de volgende link om te bevestigen dat je inderdaad een nieuw wachtwoord wilt:
-
-@CONFIRM@
diff --git a/wiki/inc/lang/nl/read.txt b/wiki/inc/lang/nl/read.txt
deleted file mode 100644
index 2a9bb9a..0000000
--- a/wiki/inc/lang/nl/read.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-Deze pagina is alleen-lezen. Je kan de broncode bekijken maar niet veranderen. Neem contact op met de beheerder als je denkt dat dit niet klopt.
-
diff --git a/wiki/inc/lang/nl/recent.txt b/wiki/inc/lang/nl/recent.txt
deleted file mode 100644
index 4b507f2..0000000
--- a/wiki/inc/lang/nl/recent.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Recente wijzigingen ======
-
-De volgende pagina's zijn recent aangepast.
diff --git a/wiki/inc/lang/nl/register.txt b/wiki/inc/lang/nl/register.txt
deleted file mode 100644
index fc31860..0000000
--- a/wiki/inc/lang/nl/register.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Registreer als nieuwe gebruiker ======
-
-Vul alle informatie hieronder in om een nieuw account voor deze wiki aan te maken. Zorg dat je een **geldig e-mailadres** opgeeft - als je je wachtwoord hier niet in kunt vullen wordt het naar dit adres verzonden. De gebruikersnaam moet een geldige [[doku>pagename|paginanaam]] zijn.
-
diff --git a/wiki/inc/lang/nl/registermail.txt b/wiki/inc/lang/nl/registermail.txt
deleted file mode 100644
index 8d23efd..0000000
--- a/wiki/inc/lang/nl/registermail.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-Een nieuwe gebruiker heeft zich geregistreerd. Dit zijn de details:
-
-Gebruikersnaam: @NEWUSER@
-Volledige naam: @NEWNAME@
-E-mail        : @NEWEMAIL@
-
-Datum         : @DATE@
-Browser       : @BROWSER@
-IP-adres      : @IPADDRESS@
-Hostname      : @HOSTNAME@
diff --git a/wiki/inc/lang/nl/resendpwd.txt b/wiki/inc/lang/nl/resendpwd.txt
deleted file mode 100644
index 3a67587..0000000
--- a/wiki/inc/lang/nl/resendpwd.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-==== Verstuur een nieuw wachtwoord ====
-
-Voer je gebruikersnaam in het formulier hieronder in om een nieuw wachtwoord aan te vragen voor deze wiki. Een bevestigingslink zal worden verzonden naar het geregistreerde e-mailadres.
diff --git a/wiki/inc/lang/nl/resetpwd.txt b/wiki/inc/lang/nl/resetpwd.txt
deleted file mode 100644
index 345e307..0000000
--- a/wiki/inc/lang/nl/resetpwd.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Een nieuw wachtwoord instellen ======
-
-Vul alstublieft een nieuw wachtwoord in voor jouw account in deze wiki.
\ No newline at end of file
diff --git a/wiki/inc/lang/nl/revisions.txt b/wiki/inc/lang/nl/revisions.txt
deleted file mode 100644
index 7a78917..0000000
--- a/wiki/inc/lang/nl/revisions.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Oude revisies ======
-
-Dit zijn de oude revisies van het document. Om terug te keren naar een oude revisie selecteer je hem hieronder en klik je op de ''Pagina aanpassen'' en vervolgens op ''Opslaan''.
-
diff --git a/wiki/inc/lang/nl/searchpage.txt b/wiki/inc/lang/nl/searchpage.txt
deleted file mode 100644
index b9d1236..0000000
--- a/wiki/inc/lang/nl/searchpage.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Zoeken ======
-
-Hieronder zijn de resultaten van de zoekopdracht. @CREATEPAGEINFO@
-
diff --git a/wiki/inc/lang/nl/showrev.txt b/wiki/inc/lang/nl/showrev.txt
deleted file mode 100644
index c1bfa4e..0000000
--- a/wiki/inc/lang/nl/showrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**Dit is een oude revisie van het document!**
-----
diff --git a/wiki/inc/lang/nl/stopwords.txt b/wiki/inc/lang/nl/stopwords.txt
deleted file mode 100644
index 3056c4a..0000000
--- a/wiki/inc/lang/nl/stopwords.txt
+++ /dev/null
@@ -1,37 +0,0 @@
-# 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/
-aan
-als
-bij
-dan
-dat
-die
-dit
-een
-had
-heb
-hem
-het
-hij
-hoe
-hun
-kan
-men
-met
-mij
-nog
-ons
-ook
-tot
-uit
-van
-was
-wat
-wel
-wij
-zal
-zei
-zij
-zou
diff --git a/wiki/inc/lang/nl/subscr_digest.txt b/wiki/inc/lang/nl/subscr_digest.txt
deleted file mode 100644
index 6a904a7..0000000
--- a/wiki/inc/lang/nl/subscr_digest.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-Halllo!
-
-De pagina @PAGE@ in de @TITLE@ wiki is veranderd. Hier zijn de wijzigingen:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-Vorige revisie: @OLDPAGE@
-Nieuwe revisie: @NEWPAGE@
-
-Om het verzenden van deze wijzigingsberichten te stoppen, logt u in op de wiki op @DOKUWIKIURL@ en bezoekt u @SUBSCRIBE@. Vervolgens kunt u zich voor elke gewenste pagina of namespace uitschrijven.
diff --git a/wiki/inc/lang/nl/subscr_form.txt b/wiki/inc/lang/nl/subscr_form.txt
deleted file mode 100644
index 0f9f2d0..0000000
--- a/wiki/inc/lang/nl/subscr_form.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Beheer inschrijvingen ======
-
-Deze pagina stelt u in staat uw abonnementen voor de huidige pagina en namespace te configureren.
\ No newline at end of file
diff --git a/wiki/inc/lang/nl/subscr_list.txt b/wiki/inc/lang/nl/subscr_list.txt
deleted file mode 100644
index b77b075..0000000
--- a/wiki/inc/lang/nl/subscr_list.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-Halllo!
-
-Pagina's in de namespace @PAGE@ van de @TITLE@ wiki zijn veranderd. Hier zijn de veranderde pagina's:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-Om het verzenden van deze wijzigingsberichten te stoppen, logt u in op het wiki op @DOKUWIKIURL@ en navigeert u naar @SUBSCRIBE@. Vervolgens kunt u zich voor elke gewenste pagina of namespace uitschrijven.
diff --git a/wiki/inc/lang/nl/subscr_single.txt b/wiki/inc/lang/nl/subscr_single.txt
deleted file mode 100644
index fe761f0..0000000
--- a/wiki/inc/lang/nl/subscr_single.txt
+++ /dev/null
@@ -1,16 +0,0 @@
-Halllo!
-
-De pagina @PAGE@ in de @TITLE@ wiki is veranderd.
-Hier zijn de wijzigingen:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-Datum: @DATE@
-Gebruiker: @USER@
-Wijzigingssamenvatting: @SUMMARY@
-Vorige revisie: @OLDPAGE@
-Nieuwe revisie: @NEWPAGE@
-
-Om het verzenden van deze wijzigingsberichten te stoppen, logt u in op het wiki op @DOKUWIKIURL@ en navigeert u naar @NEWPAGE@. Vervolgens kunt u "Inschrijvingen wijzigen" gebruiken om inschrijvingen te stoppen.
diff --git a/wiki/inc/lang/nl/updateprofile.txt b/wiki/inc/lang/nl/updateprofile.txt
deleted file mode 100644
index 2368a09..0000000
--- a/wiki/inc/lang/nl/updateprofile.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-===== Wijzig uw gebruikersprofiel =====
-
-Je hoeft alleen de velden aan te passen die je wilt wijzigen. Je gebruikersnaam is niet aan te passen.
diff --git a/wiki/inc/lang/nl/uploadmail.txt b/wiki/inc/lang/nl/uploadmail.txt
deleted file mode 100644
index 85a4b95..0000000
--- a/wiki/inc/lang/nl/uploadmail.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-Er is een bestand geüpload naar uw DokuWiki. Hier zijn de details;
-
-Bestand  : @MEDIA@
-Oude revisie: @OLD@
-Datum    : @DATE@
-Browser  : @BROWSER@
-IP-adres : @IPADDRESS@
-Hostname : @HOSTNAME@
-Grootte  : @SIZE@
-MIME type: @MIME@
-Gebruiker: @USER@
diff --git a/wiki/inc/lang/no/admin.txt b/wiki/inc/lang/no/admin.txt
deleted file mode 100644
index 765177f..0000000
--- a/wiki/inc/lang/no/admin.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Administrasjon ======
-
-Nedenfor finner du en liste over administrative oppgaver i DokuWiki.
diff --git a/wiki/inc/lang/no/adminplugins.txt b/wiki/inc/lang/no/adminplugins.txt
deleted file mode 100644
index df78672..0000000
--- a/wiki/inc/lang/no/adminplugins.txt
+++ /dev/null
@@ -1 +0,0 @@
-====== Ekstra programtillegg ======
\ No newline at end of file
diff --git a/wiki/inc/lang/no/backlinks.txt b/wiki/inc/lang/no/backlinks.txt
deleted file mode 100644
index 2298acc..0000000
--- a/wiki/inc/lang/no/backlinks.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Tilbakelenker ======
-
-Dette er en liste over sider som ser ut til å lenke tilbake til denne siden.
\ No newline at end of file
diff --git a/wiki/inc/lang/no/conflict.txt b/wiki/inc/lang/no/conflict.txt
deleted file mode 100644
index 49961d0..0000000
--- a/wiki/inc/lang/no/conflict.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-====== Det finnes en nyere versjon ======
-
-Det fins en nyere utgave av dokumentet du har redigert. Dette kan skje når en annen bruker redigerer dokumentet samtidig med deg.
-
-Legg nøye merke til forskjellene som vises under, og velg deretter hvilken versjon du vil beholde. Om du velger ''**Lagre**'', så kommer din versjon til å lagres. Velg ''**Avbryt**'' for å beholde den nyeste versjonen (ikke din).
-
diff --git a/wiki/inc/lang/no/denied.txt b/wiki/inc/lang/no/denied.txt
deleted file mode 100644
index f60f48f..0000000
--- a/wiki/inc/lang/no/denied.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Adgang forbudt ======
-
-Beklager, men du har ikke rettigheter til dette.
-
diff --git a/wiki/inc/lang/no/diff.txt b/wiki/inc/lang/no/diff.txt
deleted file mode 100644
index e4c2eb0..0000000
--- a/wiki/inc/lang/no/diff.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Forskjeller ======
-
-Her vises forskjeller mellom den valgte versjonen og den nåværende versjonen av dokumentet.
-
diff --git a/wiki/inc/lang/no/draft.txt b/wiki/inc/lang/no/draft.txt
deleted file mode 100644
index 8bcea65..0000000
--- a/wiki/inc/lang/no/draft.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-====== Kladdfil funnet ======
-
-Din siste endring av denne siden ble ikke avsluttet riktig. DokuWiki lagret automatisk en kladd under ditt arbeid som du nå kan bruke for å fortsette redigeringen. Nedenfor kan du se de lagrede data.
-
-Vennligst avgjør om du vil //gjennopprette// din tapte sesjon, //slette// kladden eller //avbryte// redigeringen.
-
diff --git a/wiki/inc/lang/no/edit.txt b/wiki/inc/lang/no/edit.txt
deleted file mode 100644
index bdb3bc8..0000000
--- a/wiki/inc/lang/no/edit.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-Rediger siden og klikk på ''**Lagre**''. Se [[wiki:syntax]] for Wikisyntaks. Rediger siden bare hvis du kan **forbedre** sidens innhold. Hvis du vil teste ut hvordan saker og ting fungerer, kan du gjøre det på [[playground:playground|lekeplassen]].
-
diff --git a/wiki/inc/lang/no/editrev.txt b/wiki/inc/lang/no/editrev.txt
deleted file mode 100644
index 652a84c..0000000
--- a/wiki/inc/lang/no/editrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**Du har hentet en tidligere versjon av dokumentet!** Hvis du lagrer den tidligere versjonen så kommer du til å lage en ny og aktiv versjon med dette innholdet.
-----
diff --git a/wiki/inc/lang/no/index.txt b/wiki/inc/lang/no/index.txt
deleted file mode 100644
index e2ea959..0000000
--- a/wiki/inc/lang/no/index.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Indeks ======
-
-Dette er en fortegnelse over alle tilgjengelige sider, sortert etter [[doku>namespaces|navnerom]].
-
diff --git a/wiki/inc/lang/no/install.html b/wiki/inc/lang/no/install.html
deleted file mode 100644
index ef3ee2e..0000000
--- a/wiki/inc/lang/no/install.html
+++ /dev/null
@@ -1,24 +0,0 @@
-<p>Denne siden assisterer under førstegangs installasjon og konfigurasjon av
-<a href="http://dokuwiki.org">Dokuwiki</a>. Mer informasjon for denne
-installasjonen er tilgjengelig på
-<a href="http://dokuwiki.org/installer">dokumentasjonssiden</a>.</p>
-
-<p>DokuWiki bruker vanlige filer for lagring av wikisider og annen
-informasjon assosiert med disse sidene (f.eks. bilder, søkeindekser, eldre
-revisjoner osv.). For å kunne virke <strong>må</strong> DokuWiki
-ha skrivetilgang til de mapper som lagrer disse filene.
-Denne installasjonen kan ikke sette opp mapperettigheter. Det må normalt
-gjøres direkte fra et kommandoskall, eller om du bruker en leverandør,
-via FTP eller ditt kontrollpanel på tjener (f.eks. cPanel).</p>
-
-<p>Denne installasjonen vil sette opp din DokuWiki-konfigurasjon for
-<abbr title="access control list">ACL</abbr>, som igjen tillater administrator
-innlogging og tilgang til DokuWikiens administratormeny for installasjon av tillegg,
-brukerbehandling, adgangskontrollbehandling til wikisider og endring av konfigurasjon.
-Det er ikke påkrevd for at DokuWiki skal virke, men det vil gjøre Dokuwiki enklere å
-administrere.</p>
-
-<p>Erfarne brukere eller brukere med spessielle oppsettingskrav bør se på disse lenkene
-for detaljer rundt
-<a href="http://dokuwiki.org/install">installasjonsinstrukser</a>
-og <a href="http://dokuwiki.org/config">konfigurasjonsinnstillinger</a>.</p>
diff --git a/wiki/inc/lang/no/jquery.ui.datepicker.js b/wiki/inc/lang/no/jquery.ui.datepicker.js
deleted file mode 100644
index 8a755aa..0000000
--- a/wiki/inc/lang/no/jquery.ui.datepicker.js
+++ /dev/null
@@ -1,50 +0,0 @@
-/* Norwegian initialisation for the jQuery UI date picker plugin. */
-/* Written by Naimdjon Takhirov (naimdjon@gmail.com). */
-
-( function( factory ) {
-	if ( typeof define === "function" && define.amd ) {
-
-		// AMD. Register as an anonymous module.
-		define( [ "../widgets/datepicker" ], factory );
-	} else {
-
-		// Browser globals
-		factory( jQuery.datepicker );
-	}
-}( function( datepicker ) {
-
-datepicker.regional.no = {
-	closeText: "Lukk",
-	prevText: "&#xAB;Forrige",
-	nextText: "Neste&#xBB;",
-	currentText: "I dag",
-	monthNames: [
-		"januar",
-		"februar",
-		"mars",
-		"april",
-		"mai",
-		"juni",
-		"juli",
-		"august",
-		"september",
-		"oktober",
-		"november",
-		"desember"
-	],
-	monthNamesShort: [ "jan","feb","mar","apr","mai","jun","jul","aug","sep","okt","nov","des" ],
-	dayNamesShort: [ "søn","man","tir","ons","tor","fre","lør" ],
-	dayNames: [ "søndag","mandag","tirsdag","onsdag","torsdag","fredag","lørdag" ],
-	dayNamesMin: [ "sø","ma","ti","on","to","fr","lø" ],
-	weekHeader: "Uke",
-	dateFormat: "dd.mm.yy",
-	firstDay: 1,
-	isRTL: false,
-	showMonthAfterYear: false,
-	yearSuffix: ""
-};
-datepicker.setDefaults( datepicker.regional.no );
-
-return datepicker.regional.no;
-
-} ) );
diff --git a/wiki/inc/lang/no/lang.php b/wiki/inc/lang/no/lang.php
deleted file mode 100644
index b8d3d3b..0000000
--- a/wiki/inc/lang/no/lang.php
+++ /dev/null
@@ -1,366 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Reidar Mosvold <Reidar.Mosvold@hit.no>
- * @author Jorge Barrera Grandon <jorge@digitalwolves.org>
- * @author Rune Rasmussen [http://www.syntaxerror.no/]
- * @author Thomas Nygreen <nygreen@gmail.com>
- * @author Arild Burud <arildb@met.no>
- * @author Torkill Bruland <torkar-b@online.no>
- * @author Rune M. Andersen <rune.andersen@gmail.com>
- * @author Jakob Vad Nielsen <me@jakobnielsen.net>
- * @author Kjell Tore Næsgaard <kjell.t.nasgaard@ntnu.no>
- * @author Knut Staring <knutst@gmail.com>
- * @author Lisa Ditlefsen <lisa@vervesearch.com>
- * @author Erik Pedersen <erik.pedersen@shaw.ca>
- * @author Rune Rasmussen syntaxerror.no@gmail.com
- * @author Jon Bøe <jonmagneboe@hotmail.com>
- * @author Egil Hansen <egil@rosetta.no>
- * @author Thomas Juberg <Thomas.Juberg@Gmail.com>
- * @author Boris <boris@newton-media.no>
- * @author Christopher Schive <chschive@frisurf.no>
- * @author Patrick <spill.p@hotmail.com>
- * @author Danny Buckhof <daniel.raknes@hotmail.no>
- * @author Arne Hanssen <arne.hanssen@getmail.no>
- * @author Arne Hanssen <arnehans@getmail.no>
- * @author Patrick Sletvold <patricksletvold@hotmail.com>
- */
-$lang['encoding']              = 'utf-8';
-$lang['direction']             = 'ltr';
-$lang['doublequoteopening']    = '«';
-$lang['doublequoteclosing']    = '»';
-$lang['singlequoteopening']    = '‘';
-$lang['singlequoteclosing']    = '’';
-$lang['apostrophe']            = '’';
-$lang['btn_edit']              = 'Rediger denne siden';
-$lang['btn_source']            = 'Vis kildekode';
-$lang['btn_show']              = 'Vis siden';
-$lang['btn_create']            = 'Lag denne siden';
-$lang['btn_search']            = 'Søk';
-$lang['btn_save']              = 'Lagre';
-$lang['btn_preview']           = 'Forhåndsvis';
-$lang['btn_top']               = 'Til toppen av siden';
-$lang['btn_newer']             = '<< nyere';
-$lang['btn_older']             = 'eldre >>';
-$lang['btn_revs']              = 'Historikk';
-$lang['btn_recent']            = 'Siste endringer';
-$lang['btn_upload']            = 'Last opp';
-$lang['btn_cancel']            = 'Avbryt';
-$lang['btn_index']             = 'Indeks';
-$lang['btn_secedit']           = 'Rediger';
-$lang['btn_login']             = 'Logg inn';
-$lang['btn_logout']            = 'Logg ut';
-$lang['btn_admin']             = 'Admin';
-$lang['btn_update']            = 'Oppdater';
-$lang['btn_delete']            = 'Slett';
-$lang['btn_back']              = 'Tilbake';
-$lang['btn_backlink']          = 'Tilbakelenker';
-$lang['btn_subscribe']         = 'Abonnér på endringer';
-$lang['btn_profile']           = 'Oppdater profil';
-$lang['btn_reset']             = 'Tilbakestill';
-$lang['btn_resendpwd']         = 'Sett nytt passord';
-$lang['btn_draft']             = 'Rediger kladd';
-$lang['btn_recover']           = 'Gjennvinn kladd';
-$lang['btn_draftdel']          = 'Slett kladd';
-$lang['btn_revert']            = 'Gjenopprette';
-$lang['btn_register']          = 'Registrer deg';
-$lang['btn_apply']             = 'Bruk';
-$lang['btn_media']             = 'Mediefiler';
-$lang['btn_deleteuser']        = 'Fjern min konto';
-$lang['btn_img_backto']        = 'Tilbake til %s';
-$lang['btn_mediaManager']      = 'Vis i mediefilbehandler';
-$lang['loggedinas']            = 'Innlogget som:';
-$lang['user']                  = 'Brukernavn';
-$lang['pass']                  = 'Passord';
-$lang['newpass']               = 'Nytt passord';
-$lang['oldpass']               = 'Bekreft gjeldende passord';
-$lang['passchk']               = 'Bekreft passord';
-$lang['remember']              = 'Husk meg';
-$lang['fullname']              = 'Fullt navn';
-$lang['email']                 = 'E-post';
-$lang['profile']               = 'Brukerprofil';
-$lang['badlogin']              = 'Ugyldig brukernavn og/eller passord.';
-$lang['badpassconfirm']        = 'Beklager, passordet var feil';
-$lang['minoredit']             = 'Mindre endringer';
-$lang['draftdate']             = 'Kladd autolagret';
-$lang['nosecedit']             = 'Siden er i mellomtiden endret, seksjonsinfo har blitt foreldet - lastet full side istedet.';
-$lang['regmissing']            = 'Vennligst fyll ut alle felt.';
-$lang['reguexists']            = 'Det finnes allerede en konto med dette brukernavnet.';
-$lang['regsuccess']            = 'Brukerkonto har blitt laget og passord har blitt sendt via e-post.';
-$lang['regsuccess2']           = 'Brukeren har blitt laget.';
-$lang['regfail']               = 'Brukeren kan ikke opprettes';
-$lang['regmailfail']           = 'En feil oppstod da passordet ditt skulle sendes via e-post. Vennligst kontakt administratoren!';
-$lang['regbadmail']            = 'Den angitte e-post adressen ser ut til å være ugyldig. Vennligst kontakt administratoren om du anser dette som feilaktig.';
-$lang['regbadpass']            = 'De to angitte passordene er ikke like, vennligst forsøk igjen.';
-$lang['regpwmail']             = 'Ditt DokuWiki passord';
-$lang['reghere']               = 'Har du ikke en konto ennå? Lag deg en';
-$lang['profna']                = 'Denne wikien støtter ikke profilendringer';
-$lang['profnochange']          = 'Ingen endringer, ingenting å gjøre.';
-$lang['profnoempty']           = 'Tomt navn- eller e-postfelt er ikke tillatt.';
-$lang['profchanged']           = 'Brukerprofilen ble vellykket oppdatert.';
-$lang['profnodelete']          = 'Denne wikien støtter ikke sletting av brukere';
-$lang['profdeleteuser']        = 'Slett konto';
-$lang['profdeleted']           = 'Din brukerkonto har blitt slettet fra denne wikien';
-$lang['profconfdelete']        = 'Jeg ønsker å fjerne min konto fra denne wikien. <br/> Denne handlingen kan ikke gjøres om.';
-$lang['profconfdeletemissing'] = 'Boks for bekreftelse ikke avkrysset';
-$lang['proffail']              = 'Brukerprofilen ble ikke oppdatert';
-$lang['pwdforget']             = 'Glemt passordet ditt? FÃ¥ deg et nytt';
-$lang['resendna']              = 'Denne wikien støtter ikke nyutsending av passord.';
-$lang['resendpwd']             = 'Sett nytt passord for';
-$lang['resendpwdmissing']      = 'Beklager, du må fylle inn alle felt.';
-$lang['resendpwdnouser']       = 'Beklager, vi kan ikke finne denne brukeren i vår database.';
-$lang['resendpwdbadauth']      = 'Beklager, denne autorisasjonskoden er ikke gyldig. Sjekk at du brukte hele bekreftelseslenken.';
-$lang['resendpwdconfirm']      = 'En bekreftelseslenke er blitt sendt på e-post.';
-$lang['resendpwdsuccess']      = 'Ditt nye passord er blitt sendt på e-post.';
-$lang['license']               = 'Der annet ikke er angitt, er innholdet på denne wiki utgitt under følgende lisens:';
-$lang['licenseok']             = 'Merk: Ved å endre på denne siden godtar du at ditt innhold utgis under følgende lisens:';
-$lang['searchmedia']           = 'Søk filnavn';
-$lang['searchmedia_in']        = 'Søk i %s';
-$lang['txt_upload']            = 'Velg fil som skal lastes opp:';
-$lang['txt_filename']          = 'Skriv inn wikinavn (alternativt):';
-$lang['txt_overwrt']           = 'Overskriv eksisterende fil';
-$lang['maxuploadsize']         = 'Opplast maks %s per fil.';
-$lang['lockedby']              = 'LÃ¥st av:';
-$lang['lockexpire']            = 'Låsingen utløper:';
-$lang['js']['willexpire']      = 'Din redigeringslås for dette dokumentet kommer snart til å utløpe.\nFor å unngå versjonskonflikter bør du forhåndsvise dokumentet ditt for å forlenge redigeringslåsen.';
-$lang['js']['notsavedyet']     = 'Ulagrede endringer vil gå tapt!
-Vil du fortsette?';
-$lang['js']['searchmedia']     = 'Søk etter filer';
-$lang['js']['keepopen']        = 'Hold vindu åpent ved valg';
-$lang['js']['hidedetails']     = 'Skjul detaljer';
-$lang['js']['mediatitle']      = 'Lenkeinnstillinger';
-$lang['js']['mediadisplay']    = 'Lenketype';
-$lang['js']['mediaalign']      = 'Justering';
-$lang['js']['mediasize']       = 'Bildestørrelse';
-$lang['js']['mediatarget']     = 'Lenkemål';
-$lang['js']['mediaclose']      = 'Lukk';
-$lang['js']['mediainsert']     = 'Sett inn';
-$lang['js']['mediadisplayimg'] = 'Vis bilde.';
-$lang['js']['mediadisplaylnk'] = 'Vis bare lenken.';
-$lang['js']['mediasmall']      = 'Liten versjon';
-$lang['js']['mediamedium']     = 'Medium versjon';
-$lang['js']['medialarge']      = 'Stor versjon';
-$lang['js']['mediaoriginal']   = 'Original versjon';
-$lang['js']['medialnk']        = 'Lenke til detaljside';
-$lang['js']['mediadirect']     = 'Direktelenke til original';
-$lang['js']['medianolnk']      = 'Ingen lenke';
-$lang['js']['medianolink']     = 'Ikke lenk bildet';
-$lang['js']['medialeft']       = 'Venstrejuster bilde';
-$lang['js']['mediaright']      = 'Høyrejuster bilde';
-$lang['js']['mediacenter']     = 'Midtstill bilde';
-$lang['js']['medianoalign']    = 'Ingen justering';
-$lang['js']['nosmblinks']      = 'Lenker til Windows-ressurser fungerer bare i Microsoft sin Internet Explorer.
-Du kan fortsatt kopiere og lime inn lenken.';
-$lang['js']['linkwiz']         = 'guide til lenker';
-$lang['js']['linkto']          = 'Lenke til:';
-$lang['js']['del_confirm']     = 'Slett denne oppføringen?';
-$lang['js']['restore_confirm'] = 'Er du sikker på at du vil gjenopprette denne versjonen?';
-$lang['js']['media_diff']      = 'Vis forskjeller:';
-$lang['js']['media_diff_both'] = 'Side ved side';
-$lang['js']['media_diff_opacity'] = 'Gjennomskinnelighet';
-$lang['js']['media_diff_portions'] = 'Glidebryter';
-$lang['js']['media_select']    = 'Velg filer…';
-$lang['js']['media_upload_btn'] = 'Last opp';
-$lang['js']['media_done_btn']  = 'Ferdig';
-$lang['js']['media_drop']      = 'Dra filer hit for å laste dem opp';
-$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']           = 'Mediefiler';
-$lang['uploadsucc']            = 'Opplastingen var vellykket';
-$lang['uploadfail']            = 'Opplastingen var mislykket. Kanskje feil rettigheter?';
-$lang['uploadwrong']           = 'Opplastingen ble nektet. Denne filendelsen er ikke tillatt!';
-$lang['uploadexist']           = 'Filen eksisterer. Ingenting har blitt gjort.';
-$lang['uploadbadcontent']      = 'Det opplastede innholdet passer ikke til filendelsen %s.';
-$lang['uploadspam']            = 'Opplastingen ble blokkert av svartelisten for spam.';
-$lang['uploadxss']             = 'Opplastingen ble blokkert på grunn av mulig skadelig innhold.';
-$lang['uploadsize']            = 'Den opplastede filen var for stor. (max. %s)';
-$lang['deletesucc']            = 'Filen "%s" har blitt slettet.';
-$lang['deletefail']            = '"%s" kunne ikke slettes - sjekk rettighetene.';
-$lang['mediainuse']            = 'Filen "%s" har ikke biltt slettet - den er fortsatt i bruk.';
-$lang['namespaces']            = 'Navnerom';
-$lang['mediafiles']            = 'Tilgjengelige filer i';
-$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 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:';
-$lang['ref_hidden']            = 'Noen referanser er på sider du ikke har tilgang til å lese';
-$lang['hits']                  = 'Treff';
-$lang['quickhits']             = 'Matchende wikinavn';
-$lang['toc']                   = 'Innholdsfortegnelse';
-$lang['current']               = 'nåværende versjon';
-$lang['yours']                 = 'Din versjon';
-$lang['diff']                  = 'Vis forskjeller mot nåværende versjon';
-$lang['diff2']                 = 'Vis forskjeller mellom valgte versjoner';
-$lang['difflink']              = 'Lenk til denne sammenligningen';
-$lang['diff_type']             = 'Vis forskjeller:';
-$lang['diff_inline']           = 'I teksten';
-$lang['diff_side']             = 'Side ved side';
-$lang['diffprevrev']           = 'Forrige revisjon';
-$lang['diffnextrev']           = 'Neste revisjon';
-$lang['difflastrev']           = 'Siste revisjon';
-$lang['diffbothprevrev']       = 'Begge sider forrige revisjon';
-$lang['diffbothnextrev']       = 'Begge sider neste revisjon';
-$lang['line']                  = 'Linje';
-$lang['breadcrumb']            = 'Spor:';
-$lang['youarehere']            = 'Du er her:';
-$lang['lastmod']               = 'Sist endret:';
-$lang['by']                    = 'av';
-$lang['deleted']               = 'fjernet';
-$lang['created']               = 'opprettet';
-$lang['restored']              = 'gjenopprettet til en tidligere versjon (%s)';
-$lang['external_edit']         = 'ekstern redigering';
-$lang['summary']               = 'Redigeringskommentar';
-$lang['noflash']               = 'For at dette innholdet skal vises må du ha <a href="http://www.adobe.com/products/flashplayer/">Adobe Flash Plugin</a>.';
-$lang['download']              = 'Last ned utdraget';
-$lang['tools']                 = 'Verktøy';
-$lang['user_tools']            = 'Brukerverktøy';
-$lang['site_tools']            = 'Nettstedverktøy';
-$lang['page_tools']            = 'Sideverktøy';
-$lang['skip_to_content']       = 'Hopp til innhold';
-$lang['sidebar']               = 'Sidefelt';
-$lang['mail_newpage']          = 'side lagt til:';
-$lang['mail_changed']          = 'side endret:';
-$lang['mail_subscribe_list']   = 'side endret i \'namespace\':';
-$lang['mail_new_user']         = 'ny bruker:';
-$lang['mail_upload']           = 'fil opplastet:';
-$lang['changes_type']          = 'Vis endringer for';
-$lang['pages_changes']         = 'Sider';
-$lang['media_changes']         = 'Mediefiler';
-$lang['both_changes']          = 'BÃ¥de sider og mediefiler';
-$lang['qb_bold']               = 'Fet tekst';
-$lang['qb_italic']             = 'Kursiv tekst';
-$lang['qb_underl']             = 'Understreket tekst';
-$lang['qb_code']               = 'Kodetekst';
-$lang['qb_strike']             = 'Gjennomstreket tekst';
-$lang['qb_h1']                 = 'Overskrift nivå 1';
-$lang['qb_h2']                 = 'Overskrift nivå 2';
-$lang['qb_h3']                 = 'Overskrift nivå 3';
-$lang['qb_h4']                 = 'Overskrift nivå 4';
-$lang['qb_h5']                 = 'Overskrift nivå 5';
-$lang['qb_h']                  = 'Overskrift';
-$lang['qb_hs']                 = 'Velg overskrift';
-$lang['qb_hplus']              = 'Høyere overskrift';
-$lang['qb_hminus']             = 'Lavere overskrift';
-$lang['qb_hequal']             = 'Overskrift på samme nivå';
-$lang['qb_link']               = 'Intern lenke';
-$lang['qb_extlink']            = 'Ekstern lenke';
-$lang['qb_hr']                 = 'Horisontal linje';
-$lang['qb_ol']                 = 'Sortert listepunkt';
-$lang['qb_ul']                 = 'Usortert listepunkt';
-$lang['qb_media']              = 'Legg til bilder og andre filer';
-$lang['qb_sig']                = 'Føy til signatur';
-$lang['qb_smileys']            = 'Smilefjes';
-$lang['qb_chars']              = 'Spesialtegn';
-$lang['upperns']               = 'gå til overordnet navnerom';
-$lang['metaedit']              = 'Rediger metadata';
-$lang['metasaveerr']           = 'Skriving av metadata feilet';
-$lang['metasaveok']            = 'Metadata lagret';
-$lang['img_title']             = 'Tittel:';
-$lang['img_caption']           = 'Bildetekst:';
-$lang['img_date']              = 'Dato:';
-$lang['img_fname']             = 'Filnavn:';
-$lang['img_fsize']             = 'Størrelse:';
-$lang['img_artist']            = 'Fotograf:';
-$lang['img_copyr']             = 'Opphavsrett:';
-$lang['img_format']            = 'Format:';
-$lang['img_camera']            = 'Kamera:';
-$lang['img_keywords']          = 'Nøkkelord:';
-$lang['img_width']             = 'Bredde:';
-$lang['img_height']            = 'Høyde:';
-$lang['subscr_subscribe_success'] = 'La til %s som abonnent på %s';
-$lang['subscr_subscribe_error'] = 'Klarte ikke å legge til %s som abonnent på %s';
-$lang['subscr_subscribe_noaddress'] = 'Brukeren din er ikke registrert med noen adresse. Du kan derfor ikke legges til som abonnent.';
-$lang['subscr_unsubscribe_success'] = 'Avsluttet %s sitt abonnement på %s';
-$lang['subscr_unsubscribe_error'] = 'Klarte ikke å avslutte %s sitt abonnement på %s';
-$lang['subscr_already_subscribed'] = '%s abonnerer allerede på %s';
-$lang['subscr_not_subscribed'] = '%s abonnerer ikke på %s';
-$lang['subscr_m_not_subscribed'] = 'Du abonnerer ikke på denne sida eller dette navnerommet';
-$lang['subscr_m_new_header']   = 'Legg til abonnement';
-$lang['subscr_m_current_header'] = 'Gjeldende abonnementer';
-$lang['subscr_m_unsubscribe']  = 'Stoppe abonnement';
-$lang['subscr_m_subscribe']    = 'Abonnere på';
-$lang['subscr_m_receive']      = 'Motta';
-$lang['subscr_style_every']    = 'e-post for alle endringer';
-$lang['subscr_style_digest']   = 'e-post med sammendrag av endringer for hver side (%.2f dager mellom hver)';
-$lang['subscr_style_list']     = 'liste med sider som er endra siden forrige e-post (%.2f dager mellom hver)';
-$lang['authtempfail']          = 'Brukerautorisasjon er midlertidig utilgjengelig. Om dette vedvarer, vennligst informer Wiki-admin.';
-$lang['i_chooselang']          = 'Velg språk';
-$lang['i_installer']           = 'DokuWiki-installasjon';
-$lang['i_wikiname']            = 'Wikinavn';
-$lang['i_enableacl']           = 'Aktiver ACL (anbefalt)';
-$lang['i_superuser']           = 'Superbruker';
-$lang['i_problems']            = 'Installasjonen oppdaget noen problemer, disse listes nedenfor. Du kan ikke fortsett før du har løst disse.';
-$lang['i_modified']            = 'For sikkerhets skyld vil dette skriptet bare virke med en ny og uendret Dokuwiki-installsjon.
-                         Du bør enten pakke ut filene på nytt fra den nedlastede pakken, eller konsultere den komplette
-                         <a href="http://dokuwiki.org/install">Dokuwiki-installasjonsinstruksen</a>';
-$lang['i_funcna']              = 'PHP-funksjonen <code>%s</code> er ikke tilgjengelig. Kanskje din nettleverandør har deaktivert denne?';
-$lang['i_phpver']              = 'Din PHP versjon <code>%s</code> er lavere enn kravet <code>%s</code>. Du må oppgradere PHP installasjonen. ';
-$lang['i_mbfuncoverload']      = 'mbstring.func_overload må deaktiveres i php.ini for å kjøre DokuWiki.';
-$lang['i_permfail']            = '<code>%s</code> er ikke skrivbar for DokuWiki. Du må fikse rettighetene for denne mappen!';
-$lang['i_confexists']          = '<code>%s</code> eksisterer allerede';
-$lang['i_writeerr']            = 'Kunne ikke opprette <code>%s</code>. Du må sjekke mappe-/filrettigheter og opprette filen manuelt.';
-$lang['i_badhash']             = 'ikke gjenkjent eller modifisert dokuwiki.php (hash=<code>%s</code>)';
-$lang['i_badval']              = '<code>%s</code> - ugyldig eller tom verdi';
-$lang['i_success']             = 'Konfigurasjonen ble vellykket fullført. Du kan slette install.php filen nå. Fortsett til
-                        <a href="doku.php?id=wiki:welcome">din nye DokuWiki</a>.';
-$lang['i_failure']             = 'En eller flere feil oppstod ved skriving til konfigurasjonsfilene. Du må kanskje fikse dem manuelt før
-                         du kan bruke <a href="doku.php?id=wiki:welcome">din nye DokuWiki</a>.';
-$lang['i_policy']              = 'Innledende ACL-politikk';
-$lang['i_pol0']                = 'Ã…pen Wiki (les, skriv og opplasting for alle)';
-$lang['i_pol1']                = 'Offentlig Wiki (les for alle, skriving og opplasting bare for registrerte brukere)';
-$lang['i_pol2']                = 'Lukket Wiki (les, skriv og opplasting bare for registrerte brukere)';
-$lang['i_allowreg']            = 'Tillat at brukere registrerer seg selv';
-$lang['i_retry']               = 'Prøv igjen';
-$lang['i_license']             = 'Velg lisens som du vil legge ut innholdet under:';
-$lang['i_license_none']        = 'Ikke vis noen lisensinformasjon';
-$lang['i_pop_field']           = 'Venligst hejlp oss å forbedre Dokuwiki-opplevelsen:';
-$lang['i_pop_label']           = 'Sand annonyme bruksdata til Dokuwiki-utviklerene, en gang i måneden';
-$lang['recent_global']         = 'Du ser nå på endringene i navnerommet <b>%s</b>. Du kan også <a href="%s">se på nylig foretatte endringer for hele wikien</a>. ';
-$lang['years']                 = '%d år siden';
-$lang['months']                = '%d måneder siden';
-$lang['weeks']                 = '%d uker siden';
-$lang['days']                  = '%d dager siden';
-$lang['hours']                 = '%d timer siden';
-$lang['minutes']               = '%d minutter siden';
-$lang['seconds']               = '%d sekunder siden';
-$lang['wordblock']             = 'Din endring ble ikke lagret ettersom den inneholder blokkert tekst (søppel).';
-$lang['media_uploadtab']       = 'Last opp';
-$lang['media_searchtab']       = 'Søk';
-$lang['media_file']            = 'Fil';
-$lang['media_viewtab']         = 'Vis';
-$lang['media_edittab']         = 'Rediger';
-$lang['media_historytab']      = 'Historikk';
-$lang['media_list_thumbs']     = 'Miniatyrbilder';
-$lang['media_list_rows']       = 'Rader';
-$lang['media_sort_name']       = 'etter navn';
-$lang['media_sort_date']       = 'etter dato';
-$lang['media_namespaces']      = 'Velg navnerom';
-$lang['media_files']           = 'Filer i %s';
-$lang['media_upload']          = 'Last opp til navnerommet <strong>%s</strong>.';
-$lang['media_search']          = 'Søk i navnerommet <strong>%s</strong>.';
-$lang['media_view']            = '%s';
-$lang['media_viewold']         = '%s på %s';
-$lang['media_edit']            = 'Rediger %s';
-$lang['media_history']         = '%s vis historikk';
-$lang['media_meta_edited']     = 'metadata er endra';
-$lang['media_perm_read']       = 'Beklager, du har ikke tilgang til å lese filer.';
-$lang['media_perm_upload']     = 'Beklager, du har ikke tilgang til å laste opp filer.';
-$lang['media_update']          = 'Last opp ny versjon';
-$lang['media_restore']         = 'Gjenopprett denne versjonen';
-$lang['media_acl_warning']     = 'Kanskje er denne listen ikke komplett, pga. restrisjoner satt i ACL eller skjulte sider.';
-$lang['currentns']             = 'gjeldende navnemellomrom';
-$lang['searchresult']          = 'Søk i resultat';
-$lang['plainhtml']             = 'Enkel HTML';
-$lang['wikimarkup']            = 'wiki-format';
-$lang['page_nonexist_rev']     = 'Finnes ingen side på %s. Den er derfor laget på <a href="%s">%s</a>';
-$lang['unable_to_parse_date']  = 'Ikke mulig å tolke "%s".';
-$lang['email_signature_text']  = 'Denne meldingen ble laget av DokuWiki
-@DOKUWIKIURL@';
diff --git a/wiki/inc/lang/no/locked.txt b/wiki/inc/lang/no/locked.txt
deleted file mode 100644
index cb14c89..0000000
--- a/wiki/inc/lang/no/locked.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Dokumentet er låst ======
-
-Dette dokumentet er for tiden låst for redigering av en annen bruker. Du må vente til denne brukeren er ferdig med sin redigering, eller til dokumentlåsen opphører å gjelde.
diff --git a/wiki/inc/lang/no/login.txt b/wiki/inc/lang/no/login.txt
deleted file mode 100644
index 877fff0..0000000
--- a/wiki/inc/lang/no/login.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Logg inn ======
-
-Du er ikke innlogget! Angi ditt brukernavn og passord nedenfor for å logge inn. Støtte for informasjonskapsler (cockies) må være aktivert i din nettleser for at du skal kunne logge inn.
-
diff --git a/wiki/inc/lang/no/mailtext.txt b/wiki/inc/lang/no/mailtext.txt
deleted file mode 100644
index 7260733..0000000
--- a/wiki/inc/lang/no/mailtext.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-En side i din DokuWiki har blitt lagt til eller blitt endret. Informasjon om endringen:
-
-Dato                 : @DATE@
-Nettleser            : @BROWSER@
-IP-adresse           : @IPADDRESS@
-Vertsnavn            : @HOSTNAME@
-Tidligere versjon    : @OLDPAGE@
-Aktuell versjon      : @NEWPAGE@
-Redigeringskommentar : @SUMMARY@
-Bruker               : @USER@
-
-@DIFF@
diff --git a/wiki/inc/lang/no/newpage.txt b/wiki/inc/lang/no/newpage.txt
deleted file mode 100644
index 86cad00..0000000
--- a/wiki/inc/lang/no/newpage.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Dette emnet har ikke noe innhold ======
-
-Du har klikket på en lenke til et emne som ikke finnes ennå. Du kan opprette det ved å klikke på ''**Lag denne siden**''.
diff --git a/wiki/inc/lang/no/norev.txt b/wiki/inc/lang/no/norev.txt
deleted file mode 100644
index cc58c99..0000000
--- a/wiki/inc/lang/no/norev.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Versjonen finnes ikke ======
-
-Den angitte versjonen finnes ikke. Bruk ''**Historikk**'' for en oversikt over de versjoner som finnes av dette dokumentet.
-
diff --git a/wiki/inc/lang/no/password.txt b/wiki/inc/lang/no/password.txt
deleted file mode 100644
index 46023e3..0000000
--- a/wiki/inc/lang/no/password.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-Hei @FULLNAME@!
-
-Her er dine brukeropplysninger for @TITLE@ på @DOKUWIKIURL@
-
-Brukernavn : @LOGIN@
-Passord : @PASSWORD@
diff --git a/wiki/inc/lang/no/preview.txt b/wiki/inc/lang/no/preview.txt
deleted file mode 100644
index 2bed20e..0000000
--- a/wiki/inc/lang/no/preview.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Forhåndsvisning ======
-
-Dette er en forhåndsvisning av hvordan din tekst kommer til å se ut når den blir vist. Husk at den er **ikke lagret** ennå!
-
diff --git a/wiki/inc/lang/no/pwconfirm.txt b/wiki/inc/lang/no/pwconfirm.txt
deleted file mode 100644
index 29ff6f2..0000000
--- a/wiki/inc/lang/no/pwconfirm.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-Hei @FULLNAME@!
-
-Noen har bedt om nytt passord for din @TITLE@ innlogging
-på @DOKUWIKIURL@
-
-Om du ikke ba om nytt passord kan du bare overse denne e-posten.
-
-For å bekrefte at forespørselen virkelig kom fra deg kan du bruke
-følgende lenke:
-
-@CONFIRM@
diff --git a/wiki/inc/lang/no/read.txt b/wiki/inc/lang/no/read.txt
deleted file mode 100644
index 27fcb51..0000000
--- a/wiki/inc/lang/no/read.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-Denne siden er skrivebeskyttet. Du kan se på den, men ikke endre den. Kontakt administratoren hvis du mener at du bør kunne endre siden.
-
diff --git a/wiki/inc/lang/no/recent.txt b/wiki/inc/lang/no/recent.txt
deleted file mode 100644
index 857013c..0000000
--- a/wiki/inc/lang/no/recent.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== Siste nytt ======
-
-Følgende sider har nylig blitt oppdatert.
-
-
diff --git a/wiki/inc/lang/no/register.txt b/wiki/inc/lang/no/register.txt
deleted file mode 100644
index 160e473..0000000
--- a/wiki/inc/lang/no/register.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Registrer deg som bruker ======
-
-Angi all informasjon som det blir spurt om nedenfor for å lage en ny brukerkonto for denne wikien. Vær spesielt nøye med å angi en **gyldig e-postadresse** - ditt passord vil bli sendt til den e-postadressen du angir. Brukernavnet må være et gyldig [[doku>pagename|sidenavn]].
-
diff --git a/wiki/inc/lang/no/registermail.txt b/wiki/inc/lang/no/registermail.txt
deleted file mode 100644
index 8902273..0000000
--- a/wiki/inc/lang/no/registermail.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-En ny bruker har registrert seg, her er detaljene:
-
-Brukernavn  : @NEWUSER@
-Fult navn   : @NEWNAME@
-E-post      : @NEWEMAIL@
-
-Dato        : @DATE@
-Nettleser   : @BROWSER@
-IP-adresse  : @IPADDRESS@
-Tjener      : @HOSTNAME@
diff --git a/wiki/inc/lang/no/resendpwd.txt b/wiki/inc/lang/no/resendpwd.txt
deleted file mode 100644
index 315ab81..0000000
--- a/wiki/inc/lang/no/resendpwd.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Send nytt passord ======
-
-Fyll inn ditt brukernavn i skjema nedenfor for å be om nytt passord for din konto i denne wiki. En bekreftelseslenke vil bli sendt til din e-postadresse.
-
diff --git a/wiki/inc/lang/no/resetpwd.txt b/wiki/inc/lang/no/resetpwd.txt
deleted file mode 100644
index 2da7170..0000000
--- a/wiki/inc/lang/no/resetpwd.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Sett nytt passord ======
-
-Vennligst skriv inn et nytt passord for din konto i denne wikien. 
\ No newline at end of file
diff --git a/wiki/inc/lang/no/revisions.txt b/wiki/inc/lang/no/revisions.txt
deleted file mode 100644
index 023fd8d..0000000
--- a/wiki/inc/lang/no/revisions.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Historikk ======
-
-Her vises tidligere versjoner av dokumentet. For å sette dette dokumentet tilbake til en tidligere versjon kan du velge den ønskede versjonen nedenfor, klikke på **''Rediger denne siden''** og lagre dokumentet.
-
diff --git a/wiki/inc/lang/no/searchpage.txt b/wiki/inc/lang/no/searchpage.txt
deleted file mode 100644
index b8d9f01..0000000
--- a/wiki/inc/lang/no/searchpage.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Søk ======
-
-Du ser resultatet av dette søket nedenfor. @CREATEPAGEINFO@
-
diff --git a/wiki/inc/lang/no/showrev.txt b/wiki/inc/lang/no/showrev.txt
deleted file mode 100644
index 06514f2..0000000
--- a/wiki/inc/lang/no/showrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**Dette er en gammel utgave av dokumentet!**
-----
diff --git a/wiki/inc/lang/no/stopwords.txt b/wiki/inc/lang/no/stopwords.txt
deleted file mode 100644
index 9a4c302..0000000
--- a/wiki/inc/lang/no/stopwords.txt
+++ /dev/null
@@ -1,68 +0,0 @@
-# Dette er en liste med ord som indeksereren ignorerer, ett ord per linje.
-# Når du redigerer siden, pass på å bruke UNIX linjeslutt (enkel ny linje).
-# Ord kortere enn 3 bokstaver er automatisk ignorert.
-# Listen er basert på http://helmer.aksis.uib.no/nta/ord10000.txt
-i
-og
-det
-er
-på
-til
-som
-en
-Ã¥
-for
-av
-at
-har
-med
-de
-ikke
-den
-han
-om
-et
-fra
-men
-vi
-var
-jeg
-seg
-sier
-vil
-kan
-ble
-skal
-etter
-også
-så
-ut
-Ã¥r
-nå
-da
-dette
-blir
-ved
-mot
-hadde
-to
-hun
-over
-være
-ha
-må
-går
-opp
-få
-andre
-eller
-bare
-sin
-mer
-inn
-før
-bli
-vært
-enn
-alle
-www
\ No newline at end of file
diff --git a/wiki/inc/lang/no/subscr_digest.txt b/wiki/inc/lang/no/subscr_digest.txt
deleted file mode 100644
index 90da8e6..0000000
--- a/wiki/inc/lang/no/subscr_digest.txt
+++ /dev/null
@@ -1,16 +0,0 @@
-Hei!
-
-Siden @PAGE@ på wikien @TITLE@ har blitt endret.
-Her er endringene:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-Gammel versjon : @OLDPAGE@
-Ny versjon: @NEWPAGE@
-
-For å avslutte varslingen, logg inn på
-@DOKUWIKIURL@ og gå til
-@SUBSCRIBE@
-og avslutt abonnementet på endringer av siden eller i navnerommet.
diff --git a/wiki/inc/lang/no/subscr_form.txt b/wiki/inc/lang/no/subscr_form.txt
deleted file mode 100644
index f62b25b..0000000
--- a/wiki/inc/lang/no/subscr_form.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Administrere abonnement ======
-
-Denne siden lar deg administrere abonnementene dine for denne siden og dette navnerommet.
\ No newline at end of file
diff --git a/wiki/inc/lang/no/subscr_list.txt b/wiki/inc/lang/no/subscr_list.txt
deleted file mode 100644
index d06bc23..0000000
--- a/wiki/inc/lang/no/subscr_list.txt
+++ /dev/null
@@ -1,13 +0,0 @@
-Hei!
-
-Sider i navnerommet @PAGE@ på wikien @TITLE@ har blitt endra.
-Her er endringene:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-For å avslutte varslinga, logg inn på
-@DOKUWIKIURL@ og gå til
-@SUBSCRIBE@
-og avslutt abonnementet på endringer av sida eller i navnerommet.
diff --git a/wiki/inc/lang/no/subscr_single.txt b/wiki/inc/lang/no/subscr_single.txt
deleted file mode 100644
index 5fb7716..0000000
--- a/wiki/inc/lang/no/subscr_single.txt
+++ /dev/null
@@ -1,19 +0,0 @@
-Hei!
-
-Siden @PAGE@ på wikien @TITLE@ har blitt endret.
-Her er endringene:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-Dato : @DATE@
-Bruker : @USER@
-Sammendrag: @SUMMARY@
-Gammel versjon : @OLDPAGE@
-Ny versjon: @NEWPAGE@
-
-For å avslutte varslingen, logg inn på
-@DOKUWIKIURL@, gå til
-@SUBSCRIBE@
-og avslutt abonnementet på endringer av siden eller i navnerommet.
diff --git a/wiki/inc/lang/no/updateprofile.txt b/wiki/inc/lang/no/updateprofile.txt
deleted file mode 100644
index b2e37e7..0000000
--- a/wiki/inc/lang/no/updateprofile.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== Oppdater din brukerprofil ======
-
-Du behøver bare fylle ut de felter du ønsker å endre. Du kan ikke endre brukernavnet ditt.
-
-
diff --git a/wiki/inc/lang/no/uploadmail.txt b/wiki/inc/lang/no/uploadmail.txt
deleted file mode 100644
index 237ec65..0000000
--- a/wiki/inc/lang/no/uploadmail.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-En fil ble lastet opp på din DokuWiki. Her er detaljene:
-
-Fil : @MEDIA@
-Gammel versjon: @OLD@
-Dato : @DATE@
-Nettleser : @BROWSER@
-IP-adresse : @IPADDRESS@
-Vertnavn : @HOSTNAME@
-Størrelse : @SIZE@
-MIME-type : @MIME@
-Bruker : @USER@
diff --git a/wiki/inc/lang/pl/admin.txt b/wiki/inc/lang/pl/admin.txt
deleted file mode 100644
index cea45f9..0000000
--- a/wiki/inc/lang/pl/admin.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Administracja ======
-
-Czynności administracyjne DokuWiki.
-
diff --git a/wiki/inc/lang/pl/adminplugins.txt b/wiki/inc/lang/pl/adminplugins.txt
deleted file mode 100644
index 0fb0399..0000000
--- a/wiki/inc/lang/pl/adminplugins.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Dodatkowe Wtyczki =====
\ No newline at end of file
diff --git a/wiki/inc/lang/pl/backlinks.txt b/wiki/inc/lang/pl/backlinks.txt
deleted file mode 100644
index 4edccb0..0000000
--- a/wiki/inc/lang/pl/backlinks.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Odnośnik z innych stron ======
-
-Strony zawierające odnośniki do aktualnej strony.
-
diff --git a/wiki/inc/lang/pl/conflict.txt b/wiki/inc/lang/pl/conflict.txt
deleted file mode 100644
index da6f952..0000000
--- a/wiki/inc/lang/pl/conflict.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-====== Istnieje nowsza wersja strony ======
-
-Istnieje nowsza wersja edytowanej strony. Prawdopodobnie ktoś zmienił tę stronę w trakcie Twojej pracy.
-
-Przeglądnij dokładnie poniższe różnice i zdecyduj, którą wersję zatrzymać. Jeśli naciśniesz ''zapisz'' to Twoja wersja zostanie zapisana. Jeśli naciśniesz ''anuluj'' to zostanie wybrana aktualna wersja strony.
-
diff --git a/wiki/inc/lang/pl/denied.txt b/wiki/inc/lang/pl/denied.txt
deleted file mode 100644
index 2b268b9..0000000
--- a/wiki/inc/lang/pl/denied.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Brak dostępu ======
-
-Nie masz wystarczających uprawnień.
-
diff --git a/wiki/inc/lang/pl/diff.txt b/wiki/inc/lang/pl/diff.txt
deleted file mode 100644
index 2c896dd..0000000
--- a/wiki/inc/lang/pl/diff.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Różnice ======
-
-Różnice między wybraną wersją a wersją aktualną.
-
diff --git a/wiki/inc/lang/pl/draft.txt b/wiki/inc/lang/pl/draft.txt
deleted file mode 100644
index 4036c30..0000000
--- a/wiki/inc/lang/pl/draft.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-====== Znaleziono szkic strony ======
-
-Twoja ostatnia sesja edycji nie została poprawnie zakończona. DokuWiki automatycznie zachowało szkic strony podczas Twojej pracy abyś mógł (mogła) ją dokończyć. Poniżej możesz zobaczyć co zostało zapisane w czasie ostatnie sesji.
-
-Zdecyduj czy chcesz //przywrócić// ostatnią sesję, //usunąć// ją lub //anulować//.
-
diff --git a/wiki/inc/lang/pl/edit.txt b/wiki/inc/lang/pl/edit.txt
deleted file mode 100644
index abb20ae..0000000
--- a/wiki/inc/lang/pl/edit.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-Zredaguj tę stronę i naciśnij ''zapisz''.
-
-Na stronie ze [[wiki:syntax|składnią]] znajdziesz opis znaczników wiki. Jeśli chcesz poćwiczyć zajrzyj do [[playground:playground|piaskownicy]].
-
diff --git a/wiki/inc/lang/pl/editrev.txt b/wiki/inc/lang/pl/editrev.txt
deleted file mode 100644
index 1528cac..0000000
--- a/wiki/inc/lang/pl/editrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**Edytujesz nieaktualną wersję strony!** Jeśli ją zapiszesz to stanie się ona wersją aktualną.
-----
diff --git a/wiki/inc/lang/pl/index.txt b/wiki/inc/lang/pl/index.txt
deleted file mode 100644
index 1d3fd27..0000000
--- a/wiki/inc/lang/pl/index.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Indeks ======
-
-Indeks wszystkich dostępnych stron pogrupowany według [[doku>namespaces|katalogów]].
-
diff --git a/wiki/inc/lang/pl/install.html b/wiki/inc/lang/pl/install.html
deleted file mode 100644
index 01405e6..0000000
--- a/wiki/inc/lang/pl/install.html
+++ /dev/null
@@ -1,23 +0,0 @@
-<p>Ta strona ma na celu pomóc Ci w instalacji i konfiguracji
-<a href="http://dokuwiki.org">Dokuwiki</a>.
-Więcej informacji o instalatorze znajdziesz w
-<a href="http://dokuwiki.org/installer">dokumentacji instalatora</a>.</p>
-
-<p>DokuWiki używa zwykłych plików do przechowywania zawartości stron oraz wszelkich
-innych informacji takich jak obrazki, poprzednie wersje strony, itp.
-Żeby DokuWiki mogło poprawnie działać <strong>musisz</strong>
-nadać prawo zapisu do katalogu zawierającego te pliki. Instalator nie może wykonać
-tych czynności. Musisz zrobić to za pomocą polecenia powłoki, klienta FTP
-lub panelu kontrolnego Twojego dostawcy usług serwerowych.</p>
-
-<p>Instalator pomoże Ci w konfiguracji uprawnień
-<abbr title="access control list">ACL</abbr>,
-które z kolei umożliwią Ci założenie konta administratora oraz umożliwią dostęp
-do czynności administracyjnych takich jak instalowanie wtyczek, zarządzanie kontami,
-zarządzania uprawnieniami do stron oraz konfiguracji wiki. Użycie tego instalatora
-nie jest konieczne, jego celem jest tylko ułatwienie administracji DokuWiki.</p>
-
-<p>Zaawansowani użytkownicy lub użytkownicy mający specjalne wymagania powinni
-zapoznać się z
-<a href="http://dokuwiki.org/install">instrukcjÄ… instalacji</a>
-oraz <a href="http://dokuwiki.org/config">instrukcjÄ… konfiguracji</a>.</p>
diff --git a/wiki/inc/lang/pl/jquery.ui.datepicker.js b/wiki/inc/lang/pl/jquery.ui.datepicker.js
deleted file mode 100644
index c2fddc1..0000000
--- a/wiki/inc/lang/pl/jquery.ui.datepicker.js
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Polish initialisation for the jQuery UI date picker plugin. */
-/* Written by Jacek Wysocki (jacek.wysocki@gmail.com). */
-( function( factory ) {
-	if ( typeof define === "function" && define.amd ) {
-
-		// AMD. Register as an anonymous module.
-		define( [ "../widgets/datepicker" ], factory );
-	} else {
-
-		// Browser globals
-		factory( jQuery.datepicker );
-	}
-}( function( datepicker ) {
-
-datepicker.regional.pl = {
-	closeText: "Zamknij",
-	prevText: "&#x3C;Poprzedni",
-	nextText: "Następny&#x3E;",
-	currentText: "DziÅ›",
-	monthNames: [ "Styczeń","Luty","Marzec","Kwiecień","Maj","Czerwiec",
-	"Lipiec","Sierpień","Wrzesień","Październik","Listopad","Grudzień" ],
-	monthNamesShort: [ "Sty","Lu","Mar","Kw","Maj","Cze",
-	"Lip","Sie","Wrz","Pa","Lis","Gru" ],
-	dayNames: [ "Niedziela","Poniedziałek","Wtorek","Środa","Czwartek","Piątek","Sobota" ],
-	dayNamesShort: [ "Nie","Pn","Wt","Åšr","Czw","Pt","So" ],
-	dayNamesMin: [ "N","Pn","Wt","Åšr","Cz","Pt","So" ],
-	weekHeader: "Tydz",
-	dateFormat: "dd.mm.yy",
-	firstDay: 1,
-	isRTL: false,
-	showMonthAfterYear: false,
-	yearSuffix: "" };
-datepicker.setDefaults( datepicker.regional.pl );
-
-return datepicker.regional.pl;
-
-} ) );
diff --git a/wiki/inc/lang/pl/lang.php b/wiki/inc/lang/pl/lang.php
deleted file mode 100644
index f8e3fe8..0000000
--- a/wiki/inc/lang/pl/lang.php
+++ /dev/null
@@ -1,358 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Wojciech Lichota <wojciech@lichota.pl>
- * @author Max <maxrb146@gmail.com>
- * @author Grzegorz Żur <grzegorz.zur@gmail.com>
- * @author Mariusz Kujawski <marinespl@gmail.com>
- * @author Maciej Kurczewski <pipijajko@gmail.com>
- * @author Sławomir Boczek <slawkens@gmail.com>
- * @author sleshek <sleshek@wp.pl>
- * @author Leszek Stachowski <shazarre@gmail.com>
- * @author maros <dobrimaros@yahoo.pl>
- * @author Grzegorz Widła <dzesdzes@gmail.com>
- * @author Åukasz Chmaj <teachmeter@gmail.com>
- * @author Begina Felicysym <begina.felicysym@wp.eu>
- * @author Aoi Karasu <aoikarasu@gmail.com>
- * @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['encoding']              = 'utf-8';
-$lang['direction']             = 'ltr';
-$lang['doublequoteopening']    = '„';
-$lang['doublequoteclosing']    = 'â€';
-$lang['singlequoteopening']    = '‚';
-$lang['singlequoteclosing']    = '’';
-$lang['apostrophe']            = '’';
-$lang['btn_edit']              = 'Edytuj stronÄ™';
-$lang['btn_source']            = 'Pokaż źródło strony';
-$lang['btn_show']              = 'Pokaż stronę';
-$lang['btn_create']            = 'Utwórz stronę';
-$lang['btn_search']            = 'Szukaj';
-$lang['btn_save']              = 'Zapisz';
-$lang['btn_preview']           = 'PodglÄ…d';
-$lang['btn_top']               = 'Do góry';
-$lang['btn_newer']             = '<< nowsze';
-$lang['btn_older']             = 'starsze >>';
-$lang['btn_revs']              = 'Poprzednie wersje';
-$lang['btn_recent']            = 'Ostatnie zmiany';
-$lang['btn_upload']            = 'Wyślij';
-$lang['btn_cancel']            = 'Anuluj';
-$lang['btn_index']             = 'Indeks';
-$lang['btn_secedit']           = 'Edytuj';
-$lang['btn_login']             = 'Zaloguj';
-$lang['btn_logout']            = 'Wyloguj';
-$lang['btn_admin']             = 'Administracja';
-$lang['btn_update']            = 'Aktualizuj';
-$lang['btn_delete']            = 'Usuń';
-$lang['btn_back']              = 'Wstecz';
-$lang['btn_backlink']          = 'Odnośniki';
-$lang['btn_subscribe']         = 'Subskrybuj zmiany';
-$lang['btn_profile']           = 'Aktualizuj profil';
-$lang['btn_reset']             = 'Resetuj';
-$lang['btn_resendpwd']         = 'Podaj nowe hasło';
-$lang['btn_draft']             = 'Edytuj szkic';
-$lang['btn_recover']           = 'Przywróć szkic';
-$lang['btn_draftdel']          = 'Usuń szkic';
-$lang['btn_revert']            = 'Przywróć';
-$lang['btn_register']          = 'Zarejestruj siÄ™!';
-$lang['btn_apply']             = 'Zastosuj';
-$lang['btn_media']             = 'Menadżer multimediów';
-$lang['btn_deleteuser']        = 'Usuń moje konto';
-$lang['btn_img_backto']        = 'Wróć do %s';
-$lang['btn_mediaManager']      = 'Zobacz w menadżerze multimediów';
-$lang['loggedinas']            = 'Zalogowany jako:';
-$lang['user']                  = 'Użytkownik';
-$lang['pass']                  = 'Hasło';
-$lang['newpass']               = 'Nowe hasło';
-$lang['oldpass']               = 'Potwierdź aktualne hasło';
-$lang['passchk']               = 'Powtórz hasło';
-$lang['remember']              = 'Zapamiętaj';
-$lang['fullname']              = 'ImiÄ™ i nazwisko';
-$lang['email']                 = 'E-mail';
-$lang['profile']               = 'Profil użytkownika';
-$lang['badlogin']              = 'Nazwa użytkownika lub hasło są nieprawidłowe.';
-$lang['badpassconfirm']        = 'Niestety, hasło jest niepoprawne.';
-$lang['minoredit']             = 'Mniejsze zmiany';
-$lang['draftdate']             = 'Czas zachowania szkicu';
-$lang['nosecedit']             = 'Strona została zmodyfikowana, sekcje zostały zmienione. Załadowano całą stronę.';
-$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.';
-$lang['regpwmail']             = 'Twoje hasło do DokuWiki';
-$lang['reghere']               = 'Nie masz jeszcze konta? Zdobądź je';
-$lang['profna']                = 'To wiki nie pozwala na zmianÄ™ profilu.';
-$lang['profnochange']          = 'Żadnych zmian, nic do zrobienia.';
-$lang['profnoempty']           = 'Pusta nazwa lub adres e-mail nie dozwolone.';
-$lang['profchanged']           = 'Zaktualizowano profil użytkownika.';
-$lang['profnodelete']          = 'Ta wiki nie umożliwia usuwania użytkowników';
-$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';
-$lang['resendpwdmissing']      = 'Wypełnij wszystkie pola.';
-$lang['resendpwdnouser']       = 'Nie można znaleźć tego użytkownika w bazie danych.';
-$lang['resendpwdbadauth']      = 'Błędny kod autoryzacji! Upewnij się, że użyłeś(aś) właściwego odnośnika.';
-$lang['resendpwdconfirm']      = 'Prośba o potwierdzenie została przesłana pocztą.';
-$lang['resendpwdsuccess']      = 'Nowe hasło zostało wysłane pocztą.';
-$lang['license']               = 'Wszystkie treści w tym wiki, którym nie przyporządkowano licencji, podlegają licencji:';
-$lang['licenseok']             = 'Uwaga: edytując tę stronę zgadzasz się na publikowanie jej treści pod licencją:';
-$lang['searchmedia']           = 'Szukaj pliku o nazwie:';
-$lang['searchmedia_in']        = 'Szukaj w  %s';
-$lang['txt_upload']            = 'Wybierz plik do wysłania:';
-$lang['txt_filename']          = 'Nazwa pliku (opcjonalnie):';
-$lang['txt_overwrt']           = 'Nadpisać istniejący plik?';
-$lang['maxuploadsize']         = 'Maksymalny rozmiar wysyłanych danych wynosi %s dla jednego pliku.';
-$lang['lockedby']              = 'Aktualnie zablokowane przez:';
-$lang['lockexpire']            = 'Blokada wygasa:';
-$lang['js']['willexpire']      = 'Twoja blokada edycji tej strony wygaśnie w ciągu minuty. \nW celu uniknięcia konfliktów użyj przycisku podglądu aby odnowić blokadę.';
-$lang['js']['notsavedyet']     = 'Nie zapisane zmiany zostanÄ… utracone.
-Czy na pewno kontynuować?';
-$lang['js']['searchmedia']     = 'Szukaj plików';
-$lang['js']['keepopen']        = 'Nie zamykaj okna po wyborze';
-$lang['js']['hidedetails']     = 'Ukryj szczegóły';
-$lang['js']['mediatitle']      = 'Ustawienia odnośników';
-$lang['js']['mediadisplay']    = 'Typ odnośnika';
-$lang['js']['mediaalign']      = 'Położenie';
-$lang['js']['mediasize']       = 'Rozmiar grafiki';
-$lang['js']['mediatarget']     = 'Cel odnośnika';
-$lang['js']['mediaclose']      = 'Zamknij';
-$lang['js']['mediainsert']     = 'Wstaw';
-$lang['js']['mediadisplayimg'] = 'Pokaż grafikę';
-$lang['js']['mediadisplaylnk'] = 'Pokaż tylko odnośnik.';
-$lang['js']['mediasmall']      = 'Mały rozmiar';
-$lang['js']['mediamedium']     = 'Åšredni rozmiar';
-$lang['js']['medialarge']      = 'Duży rozmiar';
-$lang['js']['mediaoriginal']   = 'Wersja oryginalna';
-$lang['js']['medialnk']        = 'Odnośnik do strony ze szczegółami';
-$lang['js']['mediadirect']     = 'Bezpośredni odnośnik do oryginału';
-$lang['js']['medianolnk']      = 'Bez odnośnika';
-$lang['js']['medianolink']     = 'Nie ustawiaj odnośnika do grafiki';
-$lang['js']['medialeft']       = 'Ustaw położenie po lewej stronie.';
-$lang['js']['mediaright']      = 'Ustaw położenie po prawej stronie.';
-$lang['js']['mediacenter']     = 'Ustaw położenie po środku.';
-$lang['js']['medianoalign']    = 'Nie ustawiaj położenia.';
-$lang['js']['nosmblinks']      = 'Odnośniki do zasobów sieci Windows działają tylko w przeglądarce Internet Explorer.
-Możesz skopiować odnośnik.';
-$lang['js']['linkwiz']         = 'Tworzenie odnośników';
-$lang['js']['linkto']          = 'Link do';
-$lang['js']['del_confirm']     = 'Czy na pewno usunąć?';
-$lang['js']['restore_confirm'] = 'Naprawdę przywrócić tą wersję?';
-$lang['js']['media_diff']      = 'Pokaż różnice:';
-$lang['js']['media_diff_both'] = 'Obok siebie';
-$lang['js']['media_diff_opacity'] = 'Przezroczystość';
-$lang['js']['media_diff_portions'] = 'Przesunięcie';
-$lang['js']['media_select']    = 'Wybierz pliki...';
-$lang['js']['media_upload_btn'] = 'Przesłanie plików';
-$lang['js']['media_done_btn']  = 'Zrobione';
-$lang['js']['media_drop']      = 'Upuść tutaj pliki do przesłania';
-$lang['js']['media_cancel']    = 'usuń';
-$lang['js']['media_overwrt']   = 'Nadpisz istniejÄ…ce pliki';
-$lang['rssfailed']             = 'Wystąpił błąd przy pobieraniu tych danych: ';
-$lang['nothingfound']          = 'Nic nie znaleziono.';
-$lang['mediaselect']           = 'Wysyłanie pliku';
-$lang['uploadsucc']            = 'Wysyłanie powiodło się!';
-$lang['uploadfail']            = 'Błąd wysyłania pliku. Czy prawa do katalogów są poprawne?';
-$lang['uploadwrong']           = 'Wysyłanie zabronione. Nie można wysłać plików z takim rozszerzeniem';
-$lang['uploadexist']           = 'Plik już istnieje, nie wykonano operacji.';
-$lang['uploadbadcontent']      = 'Typ pliku "%s" nie odpowiadał jego rozszerzeniu.';
-$lang['uploadspam']            = 'Plik zablokowany przez filtr antyspamowy.';
-$lang['uploadxss']             = 'Plik zablokowany ze względu na podejrzaną zawartość.';
-$lang['uploadsize']            = 'Plik jest za duży (maksymalny rozmiar %s)';
-$lang['deletesucc']            = 'Plik "%s" został usunięty.';
-$lang['deletefail']            = 'Plik "%s" nie został usunięty, sprawdź uprawnienia.';
-$lang['mediainuse']            = 'Plik "%s" nie został usunięty, ponieważ jest używany.';
-$lang['namespaces']            = 'Katalogi';
-$lang['mediafiles']            = 'Dostępne pliki';
-$lang['accessdenied']          = 'Nie masz uprawnień, żeby wyświetlić tę stronę.';
-$lang['mediausage']            = 'Użyj następującej składni w odnośniku do tego pliku:';
-$lang['mediaview']             = 'Pokaż oryginalny plik';
-$lang['mediaroot']             = 'główny';
-$lang['mediaupload']           = 'Umieść plik w aktualnym katalogu. Aby utworzyć podkatalogi, poprzedź nazwę pliku nazwami katalogów oddzielonymi dwukropkami.';
-$lang['mediaextchange']        = 'Rozszerzenie pliku zmieniono z .%s na .%s!';
-$lang['reference']             = 'Odnośniki do';
-$lang['ref_inuse']             = 'Ten plik nie może być usunięty, ponieważ jest używany na następujących stronach:';
-$lang['ref_hidden']            = 'Odnośniki mogą znajdować się na stronach, do których nie masz uprawnień.';
-$lang['hits']                  = 'trafień';
-$lang['quickhits']             = 'Pasujące hasła';
-$lang['toc']                   = 'Spis treści';
-$lang['current']               = 'aktualna';
-$lang['yours']                 = 'Twoja wersja';
-$lang['diff']                  = 'Pokaż różnice między wersjami';
-$lang['diff2']                 = 'Pokaż różnice między zaznaczonymi wersjami';
-$lang['difflink']              = 'Odnośnik do tego porównania';
-$lang['diff_type']             = 'Zobacz różnice:';
-$lang['diff_inline']           = 'W linii';
-$lang['diff_side']             = 'Jeden obok drugiego';
-$lang['diffprevrev']           = 'Poprzednia wersja';
-$lang['diffnextrev']           = 'Nowa wersja';
-$lang['difflastrev']           = 'Ostatnia wersja';
-$lang['diffbothprevrev']       = 'Poprzednia rewizja po obu stronach';
-$lang['diffbothnextrev']       = 'Następna rewizja po obu stronach';
-$lang['line']                  = 'Linia';
-$lang['breadcrumb']            = 'Åšlad:';
-$lang['youarehere']            = 'JesteÅ› tutaj:';
-$lang['lastmod']               = 'ostatnio zmienione:';
-$lang['by']                    = 'przez';
-$lang['deleted']               = 'usunięto';
-$lang['created']               = 'utworzono';
-$lang['restored']              = 'przywrócono poprzednią wersję (%s)';
-$lang['external_edit']         = 'edycja zewnętrzna';
-$lang['summary']               = 'Opis zmian';
-$lang['noflash']               = 'Plugin <a href="http://www.adobe.com/products/flashplayer/">Adobe Flash Plugin</a> jest niezbędny do obejrzenia tej zawartości.';
-$lang['download']              = 'Pobierz zrzut';
-$lang['tools']                 = 'Narzędzia';
-$lang['user_tools']            = 'Narzędzia użytkownika';
-$lang['site_tools']            = 'Narzędzia witryny';
-$lang['page_tools']            = 'Narzędzia strony';
-$lang['skip_to_content']       = 'przejście do zawartości';
-$lang['sidebar']               = 'Pasek boczny';
-$lang['mail_newpage']          = 'Strona dodana:';
-$lang['mail_changed']          = 'Strona zmieniona:';
-$lang['mail_subscribe_list']   = 'Zmienione strony w katalogu:';
-$lang['mail_new_user']         = 'Nowy użytkownik:';
-$lang['mail_upload']           = 'Umieszczono plik:';
-$lang['changes_type']          = 'Zobacz zmiany';
-$lang['pages_changes']         = 'Strony';
-$lang['media_changes']         = 'Pliki multimediów';
-$lang['both_changes']          = 'Zarówno strony jak i pliki multimediów';
-$lang['qb_bold']               = 'Pogrubienie';
-$lang['qb_italic']             = 'Pochylenie';
-$lang['qb_underl']             = 'Podkreślenie';
-$lang['qb_code']               = 'Kod źródłowy';
-$lang['qb_strike']             = 'Przekreślenie';
-$lang['qb_h1']                 = 'Nagłówek 1 stopnia';
-$lang['qb_h2']                 = 'Nagłówek 2 stopnia';
-$lang['qb_h3']                 = 'Nagłówek 3 stopnia';
-$lang['qb_h4']                 = 'Nagłówek 4 stopnia';
-$lang['qb_h5']                 = 'Nagłówek 5 stopnia';
-$lang['qb_h']                  = 'Nagłówek';
-$lang['qb_hs']                 = 'Wybierz nagłówek';
-$lang['qb_hplus']              = 'Nagłówek wyższego stopnia';
-$lang['qb_hminus']             = 'Nagłówek niższego stopnia';
-$lang['qb_hequal']             = 'Nagłówek tego samego stopnia';
-$lang['qb_link']               = 'Odnośnik wewnętrzny';
-$lang['qb_extlink']            = 'Odnośnik zewnętrzny';
-$lang['qb_hr']                 = 'Linia pozioma';
-$lang['qb_ol']                 = 'Numeracja';
-$lang['qb_ul']                 = 'Wypunktowanie';
-$lang['qb_media']              = 'Dodaj obrazek lub inny plik';
-$lang['qb_sig']                = 'Wstaw podpis';
-$lang['qb_smileys']            = 'Emotikony';
-$lang['qb_chars']              = 'Znaki specjalne';
-$lang['upperns']               = 'Skok piętro wyżej';
-$lang['metaedit']              = 'Edytuj metadane';
-$lang['metasaveerr']           = 'Zapis metadanych nie powiódł się';
-$lang['metasaveok']            = 'Metadane zapisano';
-$lang['img_title']             = 'Tytuł:';
-$lang['img_caption']           = 'Nagłówek:';
-$lang['img_date']              = 'Data:';
-$lang['img_fname']             = 'Nazwa pliku:';
-$lang['img_fsize']             = 'Rozmiar:';
-$lang['img_artist']            = 'Fotograf:';
-$lang['img_copyr']             = 'Prawa autorskie:';
-$lang['img_format']            = 'Format:';
-$lang['img_camera']            = 'Aparat:';
-$lang['img_keywords']          = 'Słowa kluczowe:';
-$lang['img_width']             = 'Szerokość:';
-$lang['img_height']            = 'Wysokość:';
-$lang['subscr_subscribe_success'] = 'Dodano %s do listy subskrypcji %s';
-$lang['subscr_subscribe_error'] = 'Błąd podczas dodawania %s do listy subskrypcji %s';
-$lang['subscr_subscribe_noaddress'] = 'Brak adresu skojarzonego z twoim loginem, nie możesz zostać dodany(a) do listy subskrypcji';
-$lang['subscr_unsubscribe_success'] = 'Usunięto %s z listy subskrypcji %s';
-$lang['subscr_unsubscribe_error'] = 'Błąd podczas usuwania %s z listy subskrypcji %s';
-$lang['subscr_already_subscribed'] = '%s jest już subskrybowany(a) przez %s';
-$lang['subscr_not_subscribed'] = '%s nie jest subskrybowany(a) przez %s';
-$lang['subscr_m_not_subscribed'] = 'Obecnie nie subskrybujesz bieżącej strony lub katalogu.';
-$lang['subscr_m_new_header']   = 'Dodaj subskrypcjÄ™';
-$lang['subscr_m_current_header'] = 'Aktualne subskrypcje';
-$lang['subscr_m_unsubscribe']  = 'Zrezygnuj z subskrypcji';
-$lang['subscr_m_subscribe']    = 'Subskrybuj';
-$lang['subscr_m_receive']      = 'Otrzymuj';
-$lang['subscr_style_every']    = 'email przy każdej zmianie';
-$lang['subscr_style_digest']   = 'e-mailowy wyciąg zmian dla każdej strony (co %.2f dni)';
-$lang['subscr_style_list']     = 'lista zmienionych stron od ostatniego e-maila (co %.2f dni)';
-$lang['authtempfail']          = 'Uwierzytelnienie użytkownika jest w tej chwili niemożliwe. Jeśli ta sytuacja się powtórzy, powiadom administratora tego wiki.';
-$lang['i_chooselang']          = 'Wybierz język';
-$lang['i_installer']           = 'Instalator DokuWiki';
-$lang['i_wikiname']            = 'Nazwa Wiki';
-$lang['i_enableacl']           = 'Włącz mechanizm uprawnień ACL (zalecane)';
-$lang['i_superuser']           = 'Administrator';
-$lang['i_problems']            = 'Instalator napotkał poniższe problemy. Nie można kontynuować póki nie zostaną usunięte.';
-$lang['i_modified']            = 'Ze względów bezpieczeństwa, ten skrypt działa tylko z nową i niezmodyfikowaną instalacją DokuWiki.
-Aby uruchomić instalator ponownie, rozpakuj archiwum DokuWiki lub zapoznaj się z <a href="http://dokuwiki.org/install">instrukcją instalacji Dokuwiki</a>';
-$lang['i_funcna']              = 'Funkcja PHP <code>%s</code> jest niedostępna.';
-$lang['i_phpver']              = 'Wersja PHP <code>%s</code> jest niższa od wymaganej <code>%s</code>. Zaktualizuj instalację PHP.';
-$lang['i_mbfuncoverload']      = 'mbstring.func_overload musi zostać wyłączone w pliku php.ini aby móc uruchomić DokuWiki.';
-$lang['i_permfail']            = 'DokuWiki nie ma prawa zapisu w katalogu <code>%s</code>. Zmień uprawnienia zapisu dla tego katalogu!';
-$lang['i_confexists']          = '<code>%s</code> już istnieje';
-$lang['i_writeerr']            = 'Nie można utworzyć <code>%s</code>. Sprawdź uprawnienia do katalogu lub pliku i stwórz plik ręcznie.';
-$lang['i_badhash']             = 'nierozpoznany lub zmodyfikowany plik dokuwiki.php (skrót=<code>%s</code>)';
-$lang['i_badval']              = '<code>%s</code> - nieprawidłowa wartość lub jej brak';
-$lang['i_success']             = 'Konfiguracja pomyślnie zakończona. Możesz teraz usunąć plik install.php. Przejdź do <a href="doku.php?id=wiki:welcome">Twojego nowego DokuWiki</a>.';
-$lang['i_failure']             = 'Podczas zapisu plików konfiguracyjnych wystąpiły błędy. Musisz usunąć wszystkie problemy, zanim zaczniesz korzystać z <a href="doku.php?id=wiki:welcome">Twojego nowego DokuWiki</a>.';
-$lang['i_policy']              = 'Wstępna polityka uprawnień ACL';
-$lang['i_pol0']                = 'Otwarte Wiki (odczyt, zapis i dodawanie plików dla wszystkich)';
-$lang['i_pol1']                = 'Publiczne Wiki (odczyt dla wszystkich, zapis i dodawanie plików tylko dla zarejestrowanych użytkowników)';
-$lang['i_pol2']                = 'Zamknięte Wiki (odczyt, zapis i dodawanie plików tylko dla zarejestrowanych użytkowników)';
-$lang['i_allowreg']            = 'Pozwól użytkownikom rejestrować się.';
-$lang['i_retry']               = 'Spróbuj ponownie';
-$lang['i_license']             = 'Wybierz licencję, na warunkach której chcesz udostępniać treści:';
-$lang['i_license_none']        = 'Nie pokazuj żadnych informacji o licencji.';
-$lang['i_pop_field']           = 'Proszę, pomóż nam ulepszyć doświadczenia z DokuWiki:';
-$lang['i_pop_label']           = 'Raz na miesiąc, wysyłaj anonimowe statystyki do deweloperów DokuWiki';
-$lang['recent_global']         = 'W tej chwili przeglądasz zmiany w katalogu <b>%s</b>. Możesz przejrzeć także <a href="%s">zmiany w całym wiki</a>.';
-$lang['years']                 = '%d lat temu';
-$lang['months']                = '%d miesięcy temu';
-$lang['weeks']                 = '%d tygodni temu';
-$lang['days']                  = '%d dni temu';
-$lang['hours']                 = '%d godzin temu';
-$lang['minutes']               = '%d minut temu';
-$lang['seconds']               = '%d sekund temu';
-$lang['wordblock']             = 'Twoje ustawienia nie zostały zapisane ponieważ zawierają niedozwoloną treść (spam).';
-$lang['media_uploadtab']       = 'Przesyłanie plików';
-$lang['media_searchtab']       = 'Szukaj';
-$lang['media_file']            = 'Plik';
-$lang['media_viewtab']         = 'Widok';
-$lang['media_edittab']         = 'Zmiana';
-$lang['media_historytab']      = 'Historia';
-$lang['media_list_thumbs']     = 'Miniatury';
-$lang['media_list_rows']       = 'Wiersze';
-$lang['media_sort_name']       = 'Nazwa';
-$lang['media_sort_date']       = 'Data';
-$lang['media_namespaces']      = 'Wybierz katalog';
-$lang['media_files']           = 'Pliki w %s';
-$lang['media_upload']          = 'Przesyłanie plików na %s';
-$lang['media_search']          = 'Znajdź w %s';
-$lang['media_view']            = '%s';
-$lang['media_viewold']         = '%s na %s';
-$lang['media_edit']            = 'Zmień %s';
-$lang['media_history']         = 'Historia dla %s';
-$lang['media_meta_edited']     = 'zmienione metadane';
-$lang['media_perm_read']       = 'Przepraszamy, nie masz wystarczających uprawnień do odczytu plików.';
-$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['page_nonexist_rev']     = 'Strona nie istnieje w %s. Została następnie utworzony w <a href="%s">%s</a>.';
-$lang['unable_to_parse_date']  = 'Nie można przeanalizować parametru "%s".';
-$lang['email_signature_text']  = 'List został wygenerowany przez DokuWiki pod adresem
-@DOKUWIKIURL@';
diff --git a/wiki/inc/lang/pl/locked.txt b/wiki/inc/lang/pl/locked.txt
deleted file mode 100644
index e3e05fe..0000000
--- a/wiki/inc/lang/pl/locked.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Strona zablokowana ======
-
-Ta strona jest zablokowana do edycji przez innego użytkownika. Musisz zaczekać aż użytkownik zakończy redagowanie lub jego blokada wygaśnie.
diff --git a/wiki/inc/lang/pl/login.txt b/wiki/inc/lang/pl/login.txt
deleted file mode 100644
index b60427f..0000000
--- a/wiki/inc/lang/pl/login.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Logowanie ======
-
-Wprowadź nazwę użytkownika i hasło aby się zalogować. Twoja przeglądarka musi mieć włączoną obsługę ciasteczek (cookies).
-
diff --git a/wiki/inc/lang/pl/mailtext.txt b/wiki/inc/lang/pl/mailtext.txt
deleted file mode 100644
index cae98db..0000000
--- a/wiki/inc/lang/pl/mailtext.txt
+++ /dev/null
@@ -1,13 +0,0 @@
-Strona w Twoim DokuWiki została dodana lub zmieniona.
-Szczegółowe informacje:
-
-Data         : @DATE@
-PrzeglÄ…darka : @BROWSER@
-Adres IP     : @IPADDRESS@
-Nazwa DNS    : @HOSTNAME@
-Stara wersja : @OLDPAGE@
-Nowa wersja  : @NEWPAGE@
-Opis zmian   : @SUMMARY@
-Użytkownik   : @USER@
-
-@DIFF@
diff --git a/wiki/inc/lang/pl/mailwrap.html b/wiki/inc/lang/pl/mailwrap.html
deleted file mode 100644
index d257190..0000000
--- a/wiki/inc/lang/pl/mailwrap.html
+++ /dev/null
@@ -1,13 +0,0 @@
-<html>
-<head>
-<title>@TITLE@</title>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-</head>
-<body>
-
-@HTMLBODY@
-
-<br /><hr />
-<small>@EMAILSIGNATURE@</small>
-</body>
-</html>
\ No newline at end of file
diff --git a/wiki/inc/lang/pl/newpage.txt b/wiki/inc/lang/pl/newpage.txt
deleted file mode 100644
index 532d3f4..0000000
--- a/wiki/inc/lang/pl/newpage.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Ta strona jeszcze nie istnieje ======
-
-Jesteś na stronie, która jeszcze nie istnieje. Jeśli masz wystarczające uprawnienia, możesz utworzyć tę stronę klikając ''utwórz stronę''.
-
diff --git a/wiki/inc/lang/pl/norev.txt b/wiki/inc/lang/pl/norev.txt
deleted file mode 100644
index 858e4a8..0000000
--- a/wiki/inc/lang/pl/norev.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Nie ma takiej wersji ======
-
-Nie ma takiej wersji. Kliknij przycisk ''poprzednie wersje'', aby wyświetlić listę wszystkich wersji tej strony.
-
diff --git a/wiki/inc/lang/pl/password.txt b/wiki/inc/lang/pl/password.txt
deleted file mode 100644
index 745556f..0000000
--- a/wiki/inc/lang/pl/password.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-Witaj @FULLNAME@!
-
-Dane użytkownika @TITLE@ pod adresem @DOKUWIKIURL@
-
-Użytkownik : @LOGIN@
-Hasło      : @PASSWORD@
diff --git a/wiki/inc/lang/pl/preview.txt b/wiki/inc/lang/pl/preview.txt
deleted file mode 100644
index 41a123c..0000000
--- a/wiki/inc/lang/pl/preview.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== PodglÄ…d ======
-
-To jest podgląd edytowanej strony. Pamiętaj, że ta strona **nie** jest jeszcze zapisana!
-
diff --git a/wiki/inc/lang/pl/pwconfirm.txt b/wiki/inc/lang/pl/pwconfirm.txt
deleted file mode 100644
index 989de79..0000000
--- a/wiki/inc/lang/pl/pwconfirm.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-Witaj @FULLNAME@!
-
-Potwierdzenie prośby o nowe hasło dla konta @TITLE@ w wiki @DOKUWIKIURL@
-
-Jeśli to nie Ty prosiłeś(aś) o nowe hasło, zignoruj ten list.
-
-Aby potwierdzić prośbę o hasło, przejdź na następującą stronę.
-
-@CONFIRM@
diff --git a/wiki/inc/lang/pl/read.txt b/wiki/inc/lang/pl/read.txt
deleted file mode 100644
index 5f89fd9..0000000
--- a/wiki/inc/lang/pl/read.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-Ta strona jest tylko do odczytu. Możesz wyświetlić źródła tej strony ale nie możesz ich zmienić.
-
diff --git a/wiki/inc/lang/pl/recent.txt b/wiki/inc/lang/pl/recent.txt
deleted file mode 100644
index 65a776c..0000000
--- a/wiki/inc/lang/pl/recent.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== Ostatnie zmiany ======
-
-Ostatnio zmienione strony.
-
-
diff --git a/wiki/inc/lang/pl/register.txt b/wiki/inc/lang/pl/register.txt
deleted file mode 100644
index 91b761d..0000000
--- a/wiki/inc/lang/pl/register.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Rejestracja nowego użytkownika ======
-
-Wypełnij wszystkie pola formularza aby utworzyć nowe konto w tym wiki. Pamiętaj, żeby podać **poprawny adres e-mail**, ponieważ nowe hasło może zostać do Ciebie przesłane pocztą. Nazwa użytkownika powinna być zgodna z formatem [[doku>pagename|nazw stron]].
-
diff --git a/wiki/inc/lang/pl/registermail.txt b/wiki/inc/lang/pl/registermail.txt
deleted file mode 100644
index 0022967..0000000
--- a/wiki/inc/lang/pl/registermail.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-Zarejestrował się nowy użytkownik.
-Szczegółowe informacje:
-
-Użytkownik      : @NEWUSER@
-ImiÄ™ i nazwisko : @NEWNAME@
-E-mail          : @NEWEMAIL@
-
-Data            : @DATE@
-PrzeglÄ…darka    : @BROWSER@
-Adres IP        : @IPADDRESS@
-Nazwa DNS       : @HOSTNAME@
diff --git a/wiki/inc/lang/pl/resendpwd.txt b/wiki/inc/lang/pl/resendpwd.txt
deleted file mode 100644
index a7cac74..0000000
--- a/wiki/inc/lang/pl/resendpwd.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Przesyłanie nowego hasła ======
-
-Aby otrzymać nowe hasło, podaj nazwę Twojego konta w tym wiki. Prośba o potwierdzenie w postaci odnośnika zostanie Ci przesłana pocztą elektroniczną.
-
diff --git a/wiki/inc/lang/pl/resetpwd.txt b/wiki/inc/lang/pl/resetpwd.txt
deleted file mode 100644
index 64d2d7d..0000000
--- a/wiki/inc/lang/pl/resetpwd.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Ustalenie nowego hasła ======
-
-Podaj, proszę, nowe hasło do Twojego konta w tym wiki.
\ No newline at end of file
diff --git a/wiki/inc/lang/pl/revisions.txt b/wiki/inc/lang/pl/revisions.txt
deleted file mode 100644
index afe2b64..0000000
--- a/wiki/inc/lang/pl/revisions.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Poprzednie wersje ======
-
-Poprzednie wersje tej strony. Aby przywrócić poprzednią wersję wybierz ją, rozpocznij edycję a potem zapisz.
-
diff --git a/wiki/inc/lang/pl/searchpage.txt b/wiki/inc/lang/pl/searchpage.txt
deleted file mode 100644
index 70e1de6..0000000
--- a/wiki/inc/lang/pl/searchpage.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Wyszukiwanie ======
-
-Wyniki wyszukiwania. @CREATEPAGEINFO@
-
diff --git a/wiki/inc/lang/pl/showrev.txt b/wiki/inc/lang/pl/showrev.txt
deleted file mode 100644
index 43e826e..0000000
--- a/wiki/inc/lang/pl/showrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**To jest stara wersja strony!**
-----
diff --git a/wiki/inc/lang/pl/stopwords.txt b/wiki/inc/lang/pl/stopwords.txt
deleted file mode 100644
index f1d244a..0000000
--- a/wiki/inc/lang/pl/stopwords.txt
+++ /dev/null
@@ -1,89 +0,0 @@
-# Lista słów ignorowanych przy indeksowaniu treści.
-# W jednej linii powinno znajdować się tylko jedno słowo.
-# Przy edycji tego pliku pamiętaj o używaniu uniksowego końca linii (LF).
-# Nie ma potrzeby wpisywania słów krótszych niż 3 znaki, ponieważ one są zawsze ignorowane.
-# Lista oparta na danych ze strony http://www.ranks.nl/stopwords/
-aby
-ale
-bardziej
-bardzo
-bez
-bowiem
-był
-była
-było
-były
-będzie
-czy
-czyli
-dla
-dlatego
-gdy
-gdzie
-ich
-innych
-jak
-jako
-jednak
-jego
-jej
-jest
-jeszcze
-jeśli
-już
-kiedy
-kilka
-która
-które
-którego
-której
-który
-których
-którym
-którzy
-lub
-między
-mnie
-mogÄ…
-może
-można
-nad
-nam
-nas
-naszego
-naszych
-nawet
-nich
-nie
-nim
-niż
-oraz
-pod
-poza
-przed
-przede
-przez
-przy
-również
-siÄ™
-sobie
-swoje
-tak
-takie
-także
-tam
-tego
-tej
-ten
-też
-tych
-tylko
-tym
-wiele
-wielu
-więc
-wszystkich
-wszystkim
-wszystko
-właśnie
-zawsze
diff --git a/wiki/inc/lang/pl/subscr_digest.txt b/wiki/inc/lang/pl/subscr_digest.txt
deleted file mode 100644
index 7abbb35..0000000
--- a/wiki/inc/lang/pl/subscr_digest.txt
+++ /dev/null
@@ -1,17 +0,0 @@
-Witaj!
-
-Treść strony @PAGE@ na wiki @TITLE@ uległa
-następującym zmianom:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-Stara wersja: @OLDPAGE@
-Nowa wersja: @NEWPAGE@
-
-Aby zrezygnować z powiadomień o zmianach zaloguj się do wiki na
-@DOKUWIKIURL@, a następnie odwiedź
-@SUBSCRIBE@
-i anuluj otrzymywanie powiadomień o zmianach na stronach i/lub
-katalogach.
diff --git a/wiki/inc/lang/pl/subscr_form.txt b/wiki/inc/lang/pl/subscr_form.txt
deleted file mode 100644
index 59fdbdb..0000000
--- a/wiki/inc/lang/pl/subscr_form.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== ZarzÄ…dzanie SubskrypcjÄ…  ======
-
-Ta strona pozwala Tobie na zarzÄ…dzanie Twoimi subskrypcjami dla obecnej strony i katalogu.
\ No newline at end of file
diff --git a/wiki/inc/lang/pl/subscr_list.txt b/wiki/inc/lang/pl/subscr_list.txt
deleted file mode 100644
index 633225f..0000000
--- a/wiki/inc/lang/pl/subscr_list.txt
+++ /dev/null
@@ -1,14 +0,0 @@
-Witaj!
-
-Strony w katalogu @PAGE@ na wiki @TITLE@ uległy
-następującym zmianom:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-Aby zrezygnować z powiadomień o zmianach zaloguj się do wiki na
-@DOKUWIKIURL@, a następnie odwiedź
-@SUBSCRIBE@
-i anuluj otrzymywanie powiadomień o zmianach na stronach i/lub
-katalogach.
diff --git a/wiki/inc/lang/pl/subscr_single.txt b/wiki/inc/lang/pl/subscr_single.txt
deleted file mode 100644
index 0c8c3ea..0000000
--- a/wiki/inc/lang/pl/subscr_single.txt
+++ /dev/null
@@ -1,20 +0,0 @@
-Witaj!
-
-Treść strony @PAGE@ na wiki @TITLE@ uległa
-następującym zmianom:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-Data: @DATE@
-Użytkownik: @USER@
-Podsumowanie zmian: @SUMMARY@
-Stara wersja: @OLDPAGE@
-Nowa wersja: @NEWPAGE@
-
-Aby zrezygnować z powiadomień o zmianach zaloguj się do wiki na
-@DOKUWIKIURL@, a następnie odwiedź
-@SUBSCRIBE@
-i anuluj otrzymywanie powiadomień o zmianach na stronach i/lub
-katalogach.
diff --git a/wiki/inc/lang/pl/updateprofile.txt b/wiki/inc/lang/pl/updateprofile.txt
deleted file mode 100644
index aa80f4c..0000000
--- a/wiki/inc/lang/pl/updateprofile.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== Aktualizacja profilu użytkownika ======
-
-Wystarczy, że wypełnisz tylko te pola, które chcesz zmienić. Nie możesz zmienić nazwy użytkownika.
-
-
diff --git a/wiki/inc/lang/pl/uploadmail.txt b/wiki/inc/lang/pl/uploadmail.txt
deleted file mode 100644
index a8daa05..0000000
--- a/wiki/inc/lang/pl/uploadmail.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-Umieszczono nowy plik.
-
-Szczegóły:
-
-Plik         : @MEDIA@
-Data         : @DATE@
-PrzeglÄ…darka : @BROWSER@
-Adres IP     : @IPADDRESS@
-Nazwa DNS    : @HOSTNAME@
-Rozmiar      : @SIZE@
-Typ MIME     : @MIME@
-Użytkownik   : @USER@
diff --git a/wiki/inc/lang/pt-br/admin.txt b/wiki/inc/lang/pt-br/admin.txt
deleted file mode 100644
index f8be56e..0000000
--- a/wiki/inc/lang/pt-br/admin.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Administração ======
-
-Abaixo você encontra uma lista das tarefas administrativas disponíveis no DokuWiki.
-
diff --git a/wiki/inc/lang/pt-br/adminplugins.txt b/wiki/inc/lang/pt-br/adminplugins.txt
deleted file mode 100644
index 3eac7af..0000000
--- a/wiki/inc/lang/pt-br/adminplugins.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Plugins Adicionais =====
\ No newline at end of file
diff --git a/wiki/inc/lang/pt-br/backlinks.txt b/wiki/inc/lang/pt-br/backlinks.txt
deleted file mode 100644
index fce9dba..0000000
--- a/wiki/inc/lang/pt-br/backlinks.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Links reversos ======
-
-Esta é uma lista de todas as páginas que apresentam links para a página atual.
-
diff --git a/wiki/inc/lang/pt-br/conflict.txt b/wiki/inc/lang/pt-br/conflict.txt
deleted file mode 100644
index 53d9afa..0000000
--- a/wiki/inc/lang/pt-br/conflict.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== Existe uma nova versão ======
-
-Existe uma versão mais nova do documento que você editou. Isso acontece quando outro usuário modifica o documento enquanto você o está editando.
-
-Examine as diferenças mostradas abaixo atentamente e então decida qual versão deve permanecer. Se você selecionar ''Salvar'', sua versão será salva. Pressione ''Cancelar'' para manter a versão atual.
diff --git a/wiki/inc/lang/pt-br/denied.txt b/wiki/inc/lang/pt-br/denied.txt
deleted file mode 100644
index 9a71df6..0000000
--- a/wiki/inc/lang/pt-br/denied.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Permissão Negada ======
-
-Desculpe, você não tem permissões suficientes para continuar.
-
diff --git a/wiki/inc/lang/pt-br/diff.txt b/wiki/inc/lang/pt-br/diff.txt
deleted file mode 100644
index 517d9f2..0000000
--- a/wiki/inc/lang/pt-br/diff.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Diferenças ======
-
-Aqui você vê as diferenças entre duas revisões dessa página.
diff --git a/wiki/inc/lang/pt-br/draft.txt b/wiki/inc/lang/pt-br/draft.txt
deleted file mode 100644
index b3d345c..0000000
--- a/wiki/inc/lang/pt-br/draft.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== Rascunho encontrado ======
-
-A sua última sessão de edição não foi concluída corretamente. O DokuWiki automaticamente salvou um rascunho durante o seu trabalho, que você pode usar agora para continuar a sua edição. Abaixo você pode ver os dados que foram salvos na sua última sessão.
-
-Por favor, escolha se você quer //recuperar// sua sessão de edição perdida, //excluir// o rascunho salvo automaticamente ou //cancelar// o processo de edição.
\ No newline at end of file
diff --git a/wiki/inc/lang/pt-br/edit.txt b/wiki/inc/lang/pt-br/edit.txt
deleted file mode 100644
index 113fb8e..0000000
--- a/wiki/inc/lang/pt-br/edit.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-Edite a página e clique em ''Salvar''. Veja [[wiki:syntax|aqui]] a sintaxe do Wiki. Por favor, edite a página apenas se você puder **aprimorá-la**. Se você deseja testar alguma coisa, faça-o no [[playground:playground|playground]].
-
diff --git a/wiki/inc/lang/pt-br/editrev.txt b/wiki/inc/lang/pt-br/editrev.txt
deleted file mode 100644
index df64135..0000000
--- a/wiki/inc/lang/pt-br/editrev.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-**Você carregou uma revisão antiga desse documento!** Se você salvá-la, irá criar uma nova versão com esses dados.
-----
-
-
diff --git a/wiki/inc/lang/pt-br/index.txt b/wiki/inc/lang/pt-br/index.txt
deleted file mode 100644
index 816a499..0000000
--- a/wiki/inc/lang/pt-br/index.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Ãndice ======
-
-Esse é um índice de todas as páginas disponíveis, ordenadas por [[doku>namespaces|domínios]].
\ No newline at end of file
diff --git a/wiki/inc/lang/pt-br/install.html b/wiki/inc/lang/pt-br/install.html
deleted file mode 100644
index d1b7869..0000000
--- a/wiki/inc/lang/pt-br/install.html
+++ /dev/null
@@ -1,7 +0,0 @@
-<p>Essa página irá auxiliá-lo na instalação e configuração do <a href="http://dokuwiki.org">DokuWiki</a>. Você encontra mais informações sobre esse instalador na sua <a href="http://dokuwiki.org/installer">página de documentação</a>.</p>
-
-<p>O DokuWiki utiliza arquivos em texto simples para o armazenamento das páginas wiki e de outras informações associadas a essas páginas (ex.: imagens, índices de pesquisa, revisões antigas, etc.). Para que o DokuWiki funcione corretamente, ele <strong>precisa</strong> ter permissão de escrita aos diretórios onde esses arquivos ficarão armazenados. Esse instalador não tem capacidade de configurar as permissões de diretório. Isso normalmente é feito usando-se a linha de comando ou através do FTP ou do painel de controle da sua hospedagem (ex.: cPanel).</p>
-
-<p>O instalador irá definir as configurações da <abbr title="access control list (lista de controle de acessos)">ACL</abbr> do seu DokuWiki, o que permitirá a autenticação do administrador e o acesso ao menu de administração do sistema. Esse menu é utilizado para instalar plug-ins, alterar as configurações do ambiente e gerenciar usuários e acessos às páginas do wiki. Isso não é necessário para o funcionamento do DokuWiki, mas irá torna sua administração mais simples.</p>
-
-<p>Usuários experientes ou que necessitem efetuar configurações especiais devem utilizar os seguintes links, com instruções detalhadas da <a href="http://dokuwiki.org/install">instalação</a> e da <a href="http://dokuwiki.org/config">configuração</a>.</p>
\ No newline at end of file
diff --git a/wiki/inc/lang/pt-br/jquery.ui.datepicker.js b/wiki/inc/lang/pt-br/jquery.ui.datepicker.js
deleted file mode 100644
index aeae7ca..0000000
--- a/wiki/inc/lang/pt-br/jquery.ui.datepicker.js
+++ /dev/null
@@ -1,45 +0,0 @@
-/* Brazilian initialisation for the jQuery UI date picker plugin. */
-/* Written by Leonildo Costa Silva (leocsilva@gmail.com). */
-( function( factory ) {
-	if ( typeof define === "function" && define.amd ) {
-
-		// AMD. Register as an anonymous module.
-		define( [ "../widgets/datepicker" ], factory );
-	} else {
-
-		// Browser globals
-		factory( jQuery.datepicker );
-	}
-}( function( datepicker ) {
-
-datepicker.regional[ "pt-BR" ] = {
-	closeText: "Fechar",
-	prevText: "&#x3C;Anterior",
-	nextText: "Próximo&#x3E;",
-	currentText: "Hoje",
-	monthNames: [ "Janeiro","Fevereiro","Março","Abril","Maio","Junho",
-	"Julho","Agosto","Setembro","Outubro","Novembro","Dezembro" ],
-	monthNamesShort: [ "Jan","Fev","Mar","Abr","Mai","Jun",
-	"Jul","Ago","Set","Out","Nov","Dez" ],
-	dayNames: [
-		"Domingo",
-		"Segunda-feira",
-		"Terça-feira",
-		"Quarta-feira",
-		"Quinta-feira",
-		"Sexta-feira",
-		"Sábado"
-	],
-	dayNamesShort: [ "Dom","Seg","Ter","Qua","Qui","Sex","Sáb" ],
-	dayNamesMin: [ "Dom","Seg","Ter","Qua","Qui","Sex","Sáb" ],
-	weekHeader: "Sm",
-	dateFormat: "dd/mm/yy",
-	firstDay: 0,
-	isRTL: false,
-	showMonthAfterYear: false,
-	yearSuffix: "" };
-datepicker.setDefaults( datepicker.regional[ "pt-BR" ] );
-
-return datepicker.regional[ "pt-BR" ];
-
-} ) );
diff --git a/wiki/inc/lang/pt-br/lang.php b/wiki/inc/lang/pt-br/lang.php
deleted file mode 100644
index f671f9c..0000000
--- a/wiki/inc/lang/pt-br/lang.php
+++ /dev/null
@@ -1,361 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Frederico Gonçalves Guimarães <frederico@teia.bio.br>
- * @author Luis Fernando Enciso <lfenciso@certto.com.br>
- * @author Alauton/Loug
- * @author Felipe Castro <fefcas@gmail.com>
- * @author Lucien Raven <lucienraven@yahoo.com.br>
- * @author Enrico Nicoletto <liverig@gmail.com>
- * @author Flávio Veras <flaviove@gmail.com>
- * @author Jeferson Propheta <jeferson.propheta@gmail.com>
- * @author jair.henrique <jair.henrique@gmail.com>
- * @author Luis Dantas <luis@dantas.com>
- * @author Sergio Motta <sergio@cisne.com.br>
- * @author Isaias Masiero Filho <masiero@masiero.org>
- * @author Balaco Baco <balacobaco@imap.cc>
- * @author Victor Westmann <victor.westmann@gmail.com>
- * @author Leone Lisboa Magevski <leone1983@gmail.com>
- * @author Dário Estevão <darioems@gmail.com>
- * @author Juliano Marconi Lanigra <juliano.marconi@gmail.com>
- * @author Ednei <leuloch@gmail.com>
- * @author Hudson FAS <hudsonfas@gmail.com>
- * @author Guilherme Cardoso <guicardoso@gmail.com>
- * @author Viliam Dias <viliamjr@gmail.com>
- */
-$lang['encoding']              = 'utf-8';
-$lang['direction']             = 'ltr';
-$lang['doublequoteopening']    = '“';
-$lang['doublequoteclosing']    = 'â€';
-$lang['singlequoteopening']    = '‘';
-$lang['singlequoteclosing']    = '’';
-$lang['apostrophe']            = '’';
-$lang['btn_edit']              = 'Editar esta página';
-$lang['btn_source']            = 'Mostrar código fonte';
-$lang['btn_show']              = 'Mostrar página';
-$lang['btn_create']            = 'Criar esta página';
-$lang['btn_search']            = 'Pesquisar';
-$lang['btn_save']              = 'Salvar';
-$lang['btn_preview']           = 'Visualizar';
-$lang['btn_top']               = 'Voltar ao topo';
-$lang['btn_newer']             = '<< mais recente';
-$lang['btn_older']             = 'menos recente >>';
-$lang['btn_revs']              = 'Revisões anteriores';
-$lang['btn_recent']            = 'Alterações recentes';
-$lang['btn_upload']            = 'Enviar';
-$lang['btn_cancel']            = 'Cancelar';
-$lang['btn_index']             = 'Ãndice';
-$lang['btn_secedit']           = 'Editar';
-$lang['btn_login']             = 'Entrar';
-$lang['btn_logout']            = 'Sair';
-$lang['btn_admin']             = 'Administrar';
-$lang['btn_update']            = 'Atualizar';
-$lang['btn_delete']            = 'Excluir';
-$lang['btn_back']              = 'Voltar';
-$lang['btn_backlink']          = 'Links reversos';
-$lang['btn_subscribe']         = 'Monitorar alterações';
-$lang['btn_profile']           = 'Atualizar o perfil';
-$lang['btn_reset']             = 'Limpar';
-$lang['btn_resendpwd']         = 'Definir a nova senha';
-$lang['btn_draft']             = 'Editar o rascunho';
-$lang['btn_recover']           = 'Recuperar o rascunho';
-$lang['btn_draftdel']          = 'Excluir o rascunho';
-$lang['btn_revert']            = 'Restaurar';
-$lang['btn_register']          = 'Cadastre-se';
-$lang['btn_apply']             = 'Aplicar';
-$lang['btn_media']             = 'Gerenciador de mídias';
-$lang['btn_deleteuser']        = 'Remover minha conta';
-$lang['btn_img_backto']        = 'Voltar para %s';
-$lang['btn_mediaManager']      = 'Ver no gerenciador de mídias';
-$lang['loggedinas']            = 'Identificado(a) como:';
-$lang['user']                  = 'Nome de usuário';
-$lang['pass']                  = 'Senha';
-$lang['newpass']               = 'Nova senha';
-$lang['oldpass']               = 'Confirme a senha atual';
-$lang['passchk']               = 'Outra vez';
-$lang['remember']              = 'Lembre-se de mim';
-$lang['fullname']              = 'Nome completo';
-$lang['email']                 = 'E-mail';
-$lang['profile']               = 'Perfil do usuário';
-$lang['badlogin']              = 'Desculpe, mas o nome de usuário ou a senha estão incorretos.';
-$lang['badpassconfirm']        = 'Desculpe, mas a senha está errada ';
-$lang['minoredit']             = 'Alterações mínimas';
-$lang['draftdate']             = 'O rascunho foi salvo automaticamente em';
-$lang['nosecedit']             = 'A página foi modificada nesse intervalo de tempo. Como a informação da seção estava desatualizada, foi carregada a página inteira.';
-$lang['regmissing']            = 'Desculpe, mas você precisa preencher todos os campos.';
-$lang['reguexists']            = 'Desculpe, mas já existe um usuário com esse nome.';
-$lang['regsuccess']            = 'O usuário foi criado e a senha enviada para seu e-mail.';
-$lang['regsuccess2']           = 'O usuário foi criado.';
-$lang['regfail']               = 'Não foi possível criar esse usuário.';
-$lang['regmailfail']           = 'Aparentemente ocorreu um erro no envio da senha. Por favor, entre em contato com o administrador!';
-$lang['regbadmail']            = 'O endereço de e-mail fornecido é, aparentemente, inválido - se você acha que isso é um erro, entre em contato com o administrador';
-$lang['regbadpass']            = 'As senhas digitadas não são idênticas. Por favor, tente novamente.';
-$lang['regpwmail']             = 'A sua senha do DokuWiki';
-$lang['reghere']               = 'Ainda não tem uma conta? Crie uma';
-$lang['profna']                = 'Esse wiki não suporta modificações do perfil.';
-$lang['profnochange']          = 'Sem alterações, nada para fazer.';
-$lang['profnoempty']           = 'Não são permitidos nomes ou endereços de e-mail em branco.';
-$lang['profchanged']           = 'O perfil do usuário foi atualizado com sucesso.';
-$lang['profnodelete']          = 'Esse wiki não suporta a exclusão de usuários ';
-$lang['profdeleteuser']        = 'Excluir a conta';
-$lang['profdeleted']           = 'Sua conta de usuário foi excluída desse wiki';
-$lang['profconfdelete']        = 'Eu desejo remover minha conta dessa wiki. <br/> Essa ação não pode ser desfeita.';
-$lang['profconfdeletemissing'] = 'Caixa de confirmação não marcada';
-$lang['proffail']              = 'O perfil do usuário não foi atualizado.';
-$lang['pwdforget']             = 'Esqueceu sua senha? Solicite outra';
-$lang['resendna']              = 'Esse wiki não tem suporte para o reenvio de senhas.';
-$lang['resendpwd']             = 'Definir a nova senha para';
-$lang['resendpwdmissing']      = 'Desculpe, você deve preencher todos os campos.';
-$lang['resendpwdnouser']       = 'Desculpe, não foi possível encontrar esse usuário no nosso banco de dados.';
-$lang['resendpwdbadauth']      = 'Desculpe, esse código de autorização é inválido. Certifique-se de que você usou o link de confirmação inteiro.';
-$lang['resendpwdconfirm']      = 'Um link de confirmação foi enviado por e-mail.';
-$lang['resendpwdsuccess']      = 'Sua nova senha foi enviada por e-mail.';
-$lang['license']               = 'Exceto onde for informado ao contrário, o conteúdo neste wiki está sob a seguinte licença:';
-$lang['licenseok']             = 'Observe: editando esta página você aceita disponibilizar o seu conteúdo sob a seguinte licença:';
-$lang['searchmedia']           = 'Buscar arquivo:';
-$lang['searchmedia_in']        = 'Buscar em %s';
-$lang['txt_upload']            = 'Selecione o arquivo a ser enviado:';
-$lang['txt_filename']          = 'Enviar como (opcional):';
-$lang['txt_overwrt']           = 'Substituir o arquivo existente';
-$lang['maxuploadsize']         = 'Tamanho máximo de %s por arquivo.';
-$lang['lockedby']              = 'Atualmente bloqueada por:';
-$lang['lockexpire']            = 'O bloqueio expira em:';
-$lang['js']['willexpire']      = 'O seu bloqueio de edição deste página irá expirar em um minuto.\nPara evitar conflitos de edição, clique no botão de visualização para reiniciar o temporizador de bloqueio.';
-$lang['js']['notsavedyet']     = 'As alterações não salvas serão perdidas.
-Deseja realmente continuar?';
-$lang['js']['searchmedia']     = 'Buscar por arquivos';
-$lang['js']['keepopen']        = 'Manter a janela aberta na seleção';
-$lang['js']['hidedetails']     = 'Esconder detalhes';
-$lang['js']['mediatitle']      = 'Configurações do Link';
-$lang['js']['mediadisplay']    = 'Tipo de Link';
-$lang['js']['mediaalign']      = 'Alinhamento';
-$lang['js']['mediasize']       = 'Tamanho da Imagem';
-$lang['js']['mediatarget']     = 'Alvo do Link';
-$lang['js']['mediaclose']      = 'Fechar';
-$lang['js']['mediainsert']     = 'Inserir';
-$lang['js']['mediadisplayimg'] = 'Mostrar Imagem.';
-$lang['js']['mediadisplaylnk'] = 'Mostrar apenas Link.';
-$lang['js']['mediasmall']      = 'Versão Pequena';
-$lang['js']['mediamedium']     = 'Versão Média';
-$lang['js']['medialarge']      = 'Versão Grande';
-$lang['js']['mediaoriginal']   = 'Versão Original';
-$lang['js']['medialnk']        = 'Link para página de detalhes';
-$lang['js']['mediadirect']     = 'Link direto para original';
-$lang['js']['medianolnk']      = 'Sem Link';
-$lang['js']['medianolink']     = 'Sem link na imagem';
-$lang['js']['medialeft']       = 'Alinhamento de imagem a esquerda';
-$lang['js']['mediaright']      = 'Alinhamento de imagem a direita';
-$lang['js']['mediacenter']     = 'Alinhamento de imagem ao centro';
-$lang['js']['medianoalign']    = 'Sem alinhamento';
-$lang['js']['nosmblinks']      = 'Atalhos para pastas compartilhadas do Windows funcionam apenas no Microsoft Internet Explorer.
-Entretanto, você ainda pode copiar e colar o atalho.';
-$lang['js']['linkwiz']         = 'Link Wizard';
-$lang['js']['linkto']          = 'Link para:';
-$lang['js']['del_confirm']     = 'Deseja realmente excluir o(s) item(ns) selecionado(s)?';
-$lang['js']['restore_confirm'] = 'Deseja realmente restaurar essa versão?';
-$lang['js']['media_diff']      = 'Ver as diferenças:';
-$lang['js']['media_diff_both'] = 'Lado a lado';
-$lang['js']['media_diff_opacity'] = 'Sobreposição';
-$lang['js']['media_diff_portions'] = 'Deslizamento';
-$lang['js']['media_select']    = 'Selecione os arquivos...';
-$lang['js']['media_upload_btn'] = 'Enviar';
-$lang['js']['media_done_btn']  = 'Concluído';
-$lang['js']['media_drop']      = 'Arraste os arquivos até aqui para enviar';
-$lang['js']['media_cancel']    = 'remover';
-$lang['js']['media_overwrt']   = 'Sobrescrever arquivos existentes';
-$lang['rssfailed']             = 'Ocorreu um erro durante a atualização dessa fonte: ';
-$lang['nothingfound']          = 'Não foi encontrado nada.';
-$lang['mediaselect']           = 'Arquivos de mídia';
-$lang['uploadsucc']            = 'O envio foi efetuado com sucesso';
-$lang['uploadfail']            = 'Não foi possível enviar o arquivo. Será algum problema com as permissões?';
-$lang['uploadwrong']           = 'O envio foi bloqueado. Essa extensão de arquivo é proibida!';
-$lang['uploadexist']           = 'O arquivo já existe. Não foi feito nada.';
-$lang['uploadbadcontent']      = 'O conteúdo enviado não corresponde à extensão do arquivo %s.';
-$lang['uploadspam']            = 'O envio foi bloqueado pela lista negra de spams.';
-$lang['uploadxss']             = 'O envio foi bloqueado devido à possibilidade do seu conteúdo ser malicioso.';
-$lang['uploadsize']            = 'O arquivo transmitido era grande demais. (max. %s)';
-$lang['deletesucc']            = 'O arquivo "%s" foi excluído.';
-$lang['deletefail']            = 'Não foi possível excluir "%s" - verifique as permissões.';
-$lang['mediainuse']            = 'O arquivo "%s" não foi excluído - ele ainda está em uso.';
-$lang['namespaces']            = 'Espaços de nomes';
-$lang['mediafiles']            = 'Arquivos disponíveis em';
-$lang['accessdenied']          = 'Você não tem permissão para visualizar esta página.';
-$lang['mediausage']            = 'Use a seguinte sintaxe para referenciar esse arquivo:';
-$lang['mediaview']             = 'Ver o arquivo original';
-$lang['mediaroot']             = 'raiz';
-$lang['mediaupload']           = 'Envie um arquivo para o espaço de nomes atual aqui. Para criar subespaços de nomes, preponha-os ao nome do arquivo no parâmetro "Enviar como", separados por vírgulas.';
-$lang['mediaextchange']        = 'A extensão do arquivo mudou de .%s para .%s!';
-$lang['reference']             = 'Referências para';
-$lang['ref_inuse']             = 'O arquivo não pode ser excluído, porque ele ainda está sendo utilizado nas seguintes páginas:';
-$lang['ref_hidden']            = 'Algumas referências estão em páginas que você não tem permissão para ler';
-$lang['hits']                  = 'Resultados';
-$lang['quickhits']             = 'Nomes de páginas coincidentes';
-$lang['toc']                   = 'Tabela de conteúdos';
-$lang['current']               = 'atual';
-$lang['yours']                 = 'Sua versão';
-$lang['diff']                  = 'Mostrar diferenças com a revisão atual';
-$lang['diff2']                 = 'Mostrar diferenças entre as revisões selecionadas';
-$lang['difflink']              = 'Link para esta página de comparações';
-$lang['diff_type']             = 'Ver as diferenças:';
-$lang['diff_inline']           = 'Mescladas';
-$lang['diff_side']             = 'Lado a lado';
-$lang['diffprevrev']           = 'Revisão anterior';
-$lang['diffnextrev']           = 'Próxima revisão';
-$lang['difflastrev']           = 'Última revisão';
-$lang['diffbothprevrev']       = 'Ambos lados da revisão anterior';
-$lang['diffbothnextrev']       = 'Ambos lados da revisão seguinte';
-$lang['line']                  = 'Linha';
-$lang['breadcrumb']            = 'Visitou:';
-$lang['youarehere']            = 'Você está aqui:';
-$lang['lastmod']               = 'Última modificação:';
-$lang['by']                    = 'por';
-$lang['deleted']               = 'removida';
-$lang['created']               = 'criada';
-$lang['restored']              = 'a revisão anterior foi restaurada (%s)';
-$lang['external_edit']         = 'edição externa';
-$lang['summary']               = 'Resumo da edição';
-$lang['noflash']               = 'O <a href="http://www.adobe.com/products/flashplayer/">plug-in Adobe Flash</a> é necessário para exibir este conteúdo.';
-$lang['download']              = 'Baixar o snippet';
-$lang['tools']                 = 'Ferramentas';
-$lang['user_tools']            = 'Ferramentas do usuário';
-$lang['site_tools']            = 'Ferramentas do site';
-$lang['page_tools']            = 'Ferramentas da página';
-$lang['skip_to_content']       = 'ir para o conteúdo';
-$lang['sidebar']               = 'Barra lateral';
-$lang['mail_newpage']          = 'página adicionada:';
-$lang['mail_changed']          = 'página modificada:';
-$lang['mail_subscribe_list']   = 'páginas alteradas no espaço de nomes:';
-$lang['mail_new_user']         = 'novo usuário:';
-$lang['mail_upload']           = 'arquivo enviado:';
-$lang['changes_type']          = 'Ver as mudanças de';
-$lang['pages_changes']         = 'Páginas';
-$lang['media_changes']         = 'Arquivos de mídia';
-$lang['both_changes']          = 'Páginas e arquivos de mídia';
-$lang['qb_bold']               = 'Texto em negrito';
-$lang['qb_italic']             = 'Texto em itálico';
-$lang['qb_underl']             = 'Texto sublinhado';
-$lang['qb_code']               = 'Texto de código';
-$lang['qb_strike']             = 'Texto tachado';
-$lang['qb_h1']                 = 'Cabeçalho de nível 1';
-$lang['qb_h2']                 = 'Cabeçalho de nível 2';
-$lang['qb_h3']                 = 'Cabeçalho de nível 3';
-$lang['qb_h4']                 = 'Cabeçalho de nível 4';
-$lang['qb_h5']                 = 'Cabeçalho de nível 5';
-$lang['qb_h']                  = 'Cabeçalho';
-$lang['qb_hs']                 = 'Escolha o cabeçalho';
-$lang['qb_hplus']              = 'Cabeçalho de nível mais alto';
-$lang['qb_hminus']             = 'Cabeçalho de nível mais baixo';
-$lang['qb_hequal']             = 'Cabeçalho de mesmo nível';
-$lang['qb_link']               = 'Link interno';
-$lang['qb_extlink']            = 'Link externo';
-$lang['qb_hr']                 = 'Linha horizontal';
-$lang['qb_ol']                 = 'Item de lista ordenada';
-$lang['qb_ul']                 = 'Item de lista não ordenada';
-$lang['qb_media']              = 'Adicionar imagens e/ou outros arquivos';
-$lang['qb_sig']                = 'Inserir assinatura';
-$lang['qb_smileys']            = 'Carinhas';
-$lang['qb_chars']              = 'Caracteres especiais';
-$lang['upperns']               = 'Pular para espaço de nomes acima';
-$lang['metaedit']              = 'Editar metadados';
-$lang['metasaveerr']           = 'Não foi possível escrever os metadados';
-$lang['metasaveok']            = 'Os metadados foram salvos';
-$lang['img_title']             = 'Título:';
-$lang['img_caption']           = 'Descrição:';
-$lang['img_date']              = 'Data:';
-$lang['img_fname']             = 'Nome do arquivo:';
-$lang['img_fsize']             = 'Tamanho:';
-$lang['img_artist']            = 'Fotógrafo:';
-$lang['img_copyr']             = 'Direitos autorais:';
-$lang['img_format']            = 'Formato:';
-$lang['img_camera']            = 'Câmera:';
-$lang['img_keywords']          = 'Palavras-chave:';
-$lang['img_width']             = 'Largura:';
-$lang['img_height']            = 'Altura:';
-$lang['subscr_subscribe_success'] = 'Adicionado %s à lista de monitoramentos de %s';
-$lang['subscr_subscribe_error'] = 'Ocorreu um erro na adição de %s à lista de monitoramentos de %s';
-$lang['subscr_subscribe_noaddress'] = 'Como não há nenhum endereço associado ao seu usuário, você não pode ser adicionado à lista de monitoramento';
-$lang['subscr_unsubscribe_success'] = '%s foi removido da lista de monitoramento de %s';
-$lang['subscr_unsubscribe_error'] = 'Ocorreu um erro na remoção de %s da lista de monitoramentos de %s';
-$lang['subscr_already_subscribed'] = '%s já está monitorando %s';
-$lang['subscr_not_subscribed'] = '%s não está monitorando %s';
-$lang['subscr_m_not_subscribed'] = 'Você não está monitorando nem a página atual nem o espaço de nomes.';
-$lang['subscr_m_new_header']   = 'Adicionar monitoramento';
-$lang['subscr_m_current_header'] = 'Monitoramentos atuais';
-$lang['subscr_m_unsubscribe']  = 'Cancelar monitoramento';
-$lang['subscr_m_subscribe']    = 'Monitorar';
-$lang['subscr_m_receive']      = 'Receber';
-$lang['subscr_style_every']    = 'um e-mail a cada modificação';
-$lang['subscr_style_digest']   = 'um agrupamento de e-mails com as mudanças para cada página (a cada %.2f dias)';
-$lang['subscr_style_list']     = 'uma lista de páginas modificadas desde o último e-mail (a cada %.2f dias)';
-$lang['authtempfail']          = 'A autenticação de usuários está temporariamente desabilitada. Se essa situação persistir, por favor, informe ao administrador do Wiki.';
-$lang['i_chooselang']          = 'Selecione o seu idioma';
-$lang['i_installer']           = 'Instalador do DokuWiki';
-$lang['i_wikiname']            = 'Nome do Wiki';
-$lang['i_enableacl']           = 'Habilitar Lista de Controle de Acessos (recomendado)';
-$lang['i_superuser']           = 'Superusuário';
-$lang['i_problems']            = 'O instalador encontrou alguns problemas, indicados abaixo. Você não pode continuar até corrigi-los.';
-$lang['i_modified']            = 'Por questões de segurança, esse script funcionará apenas em uma instalação nova e não modificada do DokuWiki.
-Você pode extrair novamente os arquivos do pacote original ou consultar as <a href="http://dokuwiki.org/install">instruções de instalação do DokuWiki</a>.';
-$lang['i_funcna']              = 'A função PHP <code>%s</code> não está disponível. O seu host a mantém desabilitada por algum motivo?';
-$lang['i_phpver']              = 'A sua versão do PHP (<code>%s</code>) é inferior à necessária (<code>%s</code>). Você precisa atualizar a sua instalação do PHP.';
-$lang['i_mbfuncoverload']      = 'mbstring.func_overload precisa ser desabilitado no php.ini para executar o DokuWiki';
-$lang['i_permfail']            = 'O DokuWiki não tem permissão de escrita em <code>%s</code>. Você precisa corrigir as configurações de permissão nesse diretório!';
-$lang['i_confexists']          = '<code>%s</code> já existe';
-$lang['i_writeerr']            = 'Não foi possível criar <code>%s</code>. É necessário checar as permissões de arquivos/diretórios e criar o arquivo manualmente.';
-$lang['i_badhash']             = 'dokuwiki.php não reconhecido ou modificado (hash=<code>%s</code>)';
-$lang['i_badval']              = '<code>%s</code> - valor ilegal ou em branco';
-$lang['i_success']             = 'A configuração terminou com sucesso. Agora você deve excluir o arquivo install.php. Conheça o seu <a href="doku.php?id=wiki:welcome">novo DokuWiki</a>!';
-$lang['i_failure']             = 'Ocorreram alguns erros durante a escrita dos arquivos de configuração. É necessário corrigi-los manualmente antes de usar seu <a href="doku.php?id=wiki:welcome">novo DokuWiki</a>';
-$lang['i_policy']              = 'Política inicial de permissões';
-$lang['i_pol0']                = 'Wiki aberto (leitura, escrita e envio de arquivos por todos)';
-$lang['i_pol1']                = 'Wiki público (leitura por todos, escrita e envio de arquivos por usuários registrados)';
-$lang['i_pol2']                = 'Wiki fechado (leitura, escrita e envio de arquivos somente por usuários registrados)';
-$lang['i_allowreg']            = 'Permite usuários se registrarem';
-$lang['i_retry']               = 'Tentar novamente';
-$lang['i_license']             = 'Por favor escolha a licença que voce deseja utilizar para seu conteúdo:';
-$lang['i_license_none']        = 'Não mostrar nenhuma informação da licença';
-$lang['i_pop_field']           = 'Por favor, nos ajude a melhorar sua experiência com DokuWiki:';
-$lang['i_pop_label']           = 'Uma vez por mês, enviar anonimamente informações de uso de dados para os desenvolvedores DokuWiki';
-$lang['recent_global']         = 'Você está observando as alterações dentro do espaço de nomes <b>%s</b>. Também é possível ver as <a href="%s">modificações recentes no wiki inteiro</a>.';
-$lang['years']                 = '%d anos atrás';
-$lang['months']                = '%d meses atrás';
-$lang['weeks']                 = '%d semanas atrás';
-$lang['days']                  = '%d dias atrás';
-$lang['hours']                 = '%d horas atrás';
-$lang['minutes']               = '%d minutos atrás';
-$lang['seconds']               = '%d segundos atrás';
-$lang['wordblock']             = 'Suas mudanças não foram salvas pois contem texto bloqueados (spam)';
-$lang['media_uploadtab']       = 'Enviar';
-$lang['media_searchtab']       = 'Pesquisar';
-$lang['media_file']            = 'Arquivo';
-$lang['media_viewtab']         = 'Ver';
-$lang['media_edittab']         = 'Editar';
-$lang['media_historytab']      = 'Histórico';
-$lang['media_list_thumbs']     = 'Miniaturas';
-$lang['media_list_rows']       = 'Linhas';
-$lang['media_sort_name']       = 'Nome';
-$lang['media_sort_date']       = 'Data';
-$lang['media_namespaces']      = 'Selecione o espaço de nomes';
-$lang['media_files']           = 'Arquivos em %s';
-$lang['media_upload']          = 'Enviar para %s';
-$lang['media_search']          = 'Pesquisar em %s';
-$lang['media_view']            = '%s';
-$lang['media_viewold']         = '%s em %s';
-$lang['media_edit']            = 'Editar %s';
-$lang['media_history']         = 'Histórico de %s';
-$lang['media_meta_edited']     = 'o metadado foi editado';
-$lang['media_perm_read']       = 'Desculpe, mas você não tem privilégios suficientes para ler arquivos.';
-$lang['media_perm_upload']     = 'Desculpe, mas você não tem privilégios suficientes para enviar arquivos.';
-$lang['media_update']          = 'Enviar uma nova versão';
-$lang['media_restore']         = 'Restaurar esta versão';
-$lang['media_acl_warning']     = 'Essa lista pode não estar completa devido a restrições de ACL e páginas ocultas.';
-$lang['currentns']             = 'Domínio atual';
-$lang['searchresult']          = 'Resultado da Busca';
-$lang['plainhtml']             = 'HTML simples';
-$lang['wikimarkup']            = 'Marcação wiki';
-$lang['page_nonexist_rev']     = 'Página não encontrada em %s. Foi criada posteriormente em <a href="%s">%s</a>.';
-$lang['unable_to_parse_date']  = 'Impossível analisar em "%s".';
-$lang['email_signature_text']  = 'Essa mensagem foi gerada pelo DokuWiki em
-@DOKUWIKIURL@';
diff --git a/wiki/inc/lang/pt-br/locked.txt b/wiki/inc/lang/pt-br/locked.txt
deleted file mode 100644
index 70658cb..0000000
--- a/wiki/inc/lang/pt-br/locked.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Página bloqueada ======
-
-Essa página está bloqueada para edição por outro usuário. Você tem que esperar até que esse usuário termine a edição ou que o bloqueio expire.
diff --git a/wiki/inc/lang/pt-br/login.txt b/wiki/inc/lang/pt-br/login.txt
deleted file mode 100644
index 23215e1..0000000
--- a/wiki/inc/lang/pt-br/login.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Autenticação ======
-
-Você não está autenticado. Digite as seus dados de usuário abaixo para entrar no sistema. É necessário habilitar os //cookies// no seu navegador para que isso funcione.
diff --git a/wiki/inc/lang/pt-br/mailtext.txt b/wiki/inc/lang/pt-br/mailtext.txt
deleted file mode 100644
index 5bdbfdd..0000000
--- a/wiki/inc/lang/pt-br/mailtext.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-Uma página em seu DokuWiki foi adicionada ou alterada. Aqui estão os detalhes:
-
-Data: @DATE@
-Navegador: @BROWSER@
-Endereço IP: @IPADDRESS@
-Nome do host: @HOSTNAME@
-Revisão antiga: @OLDPAGE@
-Nova revisão: @NEWPAGE@
-Resumo da edição: @SUMMARY@
-Usuário: @USER@
-
-@DIFF@
diff --git a/wiki/inc/lang/pt-br/mailwrap.html b/wiki/inc/lang/pt-br/mailwrap.html
deleted file mode 100644
index d257190..0000000
--- a/wiki/inc/lang/pt-br/mailwrap.html
+++ /dev/null
@@ -1,13 +0,0 @@
-<html>
-<head>
-<title>@TITLE@</title>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-</head>
-<body>
-
-@HTMLBODY@
-
-<br /><hr />
-<small>@EMAILSIGNATURE@</small>
-</body>
-</html>
\ No newline at end of file
diff --git a/wiki/inc/lang/pt-br/newpage.txt b/wiki/inc/lang/pt-br/newpage.txt
deleted file mode 100644
index 77ba49f..0000000
--- a/wiki/inc/lang/pt-br/newpage.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Esse tópico ainda não existe ======
-
-Você clicou em um link para um tópico que ainda não existe. Se for permitido, você poderá criá-lo usando o botão ''Criar essa página''.
diff --git a/wiki/inc/lang/pt-br/norev.txt b/wiki/inc/lang/pt-br/norev.txt
deleted file mode 100644
index 19024dc..0000000
--- a/wiki/inc/lang/pt-br/norev.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Essa revisão não existe ======
-
-A revisão especificada não existe. Utilize o botão ''Revisões anteriores'' para uma listagem das revisões anteriores deste documento.
diff --git a/wiki/inc/lang/pt-br/password.txt b/wiki/inc/lang/pt-br/password.txt
deleted file mode 100644
index 0a7587a..0000000
--- a/wiki/inc/lang/pt-br/password.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-Olá @FULLNAME@!
-
-Aqui estão os seus dados de usuário para @TITLE@ em @DOKUWIKIURL@
-
-Usuário  : @LOGIN@
-Senha    : @PASSWORD@
diff --git a/wiki/inc/lang/pt-br/preview.txt b/wiki/inc/lang/pt-br/preview.txt
deleted file mode 100644
index efdc8f7..0000000
--- a/wiki/inc/lang/pt-br/preview.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Visualização ======
-
-Essa é uma visualização de como será a aparência do seu texto. Lembre-se: ele ainda **não foi gravado**!
diff --git a/wiki/inc/lang/pt-br/pwconfirm.txt b/wiki/inc/lang/pt-br/pwconfirm.txt
deleted file mode 100644
index 324f9df..0000000
--- a/wiki/inc/lang/pt-br/pwconfirm.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-Olá @FULLNAME@!
-
-Alguém requisitou um nova senha para o seu usuário @TITLE@ em @DOKUWIKIURL@.
-
-Se não foi você quem fez essa requisição, simplesmente ignore essa mensagem.
-
-Se você realmente deseja receber uma nova senha, por favor, utilize o link abaixo, para confirmar sua requisição.
-
-@CONFIRM@
diff --git a/wiki/inc/lang/pt-br/read.txt b/wiki/inc/lang/pt-br/read.txt
deleted file mode 100644
index 897155e..0000000
--- a/wiki/inc/lang/pt-br/read.txt
+++ /dev/null
@@ -1 +0,0 @@
-Essa página está em modo somente de leitura. Você pode visualizar a fonte, mas não alterá-la. Informe-se com o administrador do Wiki, caso você ache que isso está incorreto.
diff --git a/wiki/inc/lang/pt-br/recent.txt b/wiki/inc/lang/pt-br/recent.txt
deleted file mode 100644
index 988f235..0000000
--- a/wiki/inc/lang/pt-br/recent.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Alterações Recentes ======
-
-As seguintes páginas foram alteradas recentemente.
-
diff --git a/wiki/inc/lang/pt-br/register.txt b/wiki/inc/lang/pt-br/register.txt
deleted file mode 100644
index 431feca..0000000
--- a/wiki/inc/lang/pt-br/register.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Registre-se como um novo usuário ======
-
-Preencha todas as informações abaixo para criar uma nova conta nesse Wiki. Certifique-se de que você forneceu um **endereço de e-mail válido** - se não for pedido que você entre com uma senha aqui, ela será enviada para esse endereço. O nome de usuário deve ser um [[doku>pagename|nome de página]] válido.
-
diff --git a/wiki/inc/lang/pt-br/registermail.txt b/wiki/inc/lang/pt-br/registermail.txt
deleted file mode 100644
index bbf2547..0000000
--- a/wiki/inc/lang/pt-br/registermail.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-Foi registrado um novo usuário. Seus detalhes são:
-
-Nome de usuário: @NEWUSER@
-Nome completo: @NEWNAME@
-E-mail: @NEWEMAIL@
-
-Data: @DATE@
-Navegador: @BROWSER@
-Endereço IP: @IPADDRESS@
-Nome do host: @HOSTNAME@
diff --git a/wiki/inc/lang/pt-br/resendpwd.txt b/wiki/inc/lang/pt-br/resendpwd.txt
deleted file mode 100644
index b74713f..0000000
--- a/wiki/inc/lang/pt-br/resendpwd.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Enviar nova senha ======
-
-Por favor, digite o seu nome de usuário no formulário abaixo para requisitar uma nova senha para a sua conta nesse wiki. O link de confirmação será enviado para o endereço de e-mail que você forneceu.
\ No newline at end of file
diff --git a/wiki/inc/lang/pt-br/resetpwd.txt b/wiki/inc/lang/pt-br/resetpwd.txt
deleted file mode 100644
index febb1d6..0000000
--- a/wiki/inc/lang/pt-br/resetpwd.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Definir uma nova senha ======
-
-Por favor, digite uma nova senha para sua conta neste wiki.
\ No newline at end of file
diff --git a/wiki/inc/lang/pt-br/revisions.txt b/wiki/inc/lang/pt-br/revisions.txt
deleted file mode 100644
index 1c174dc..0000000
--- a/wiki/inc/lang/pt-br/revisions.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Revisões anteriores ======
-
-Essas são as revisões anteriores desse documento. Para reverter a uma revisão antiga, selecione-a abaixo, clique em ''Editar esta página'' e salve-a.
-
diff --git a/wiki/inc/lang/pt-br/searchpage.txt b/wiki/inc/lang/pt-br/searchpage.txt
deleted file mode 100644
index 2e8dd59..0000000
--- a/wiki/inc/lang/pt-br/searchpage.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Pesquisa ======
-
-Você pode encontrar os resultados da sua pesquisa abaixo. @CREATEPAGEINFO@
-
diff --git a/wiki/inc/lang/pt-br/showrev.txt b/wiki/inc/lang/pt-br/showrev.txt
deleted file mode 100644
index 89d9cad..0000000
--- a/wiki/inc/lang/pt-br/showrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**Essa é uma revisão anterior do documento!**
-----
diff --git a/wiki/inc/lang/pt-br/stopwords.txt b/wiki/inc/lang/pt-br/stopwords.txt
deleted file mode 100644
index c781ffb..0000000
--- a/wiki/inc/lang/pt-br/stopwords.txt
+++ /dev/null
@@ -1,55 +0,0 @@
-# Essa é uma lista de palavras que o indexador ignora, uma palavra por linha
-# Ao editar esse arquivo, certifique-se de usar terminações de linha UNIX (newline simples)
-# Não há necessidade de incluir palavras menores que 3 caracteres - elas já são ignoradas por padrão
-# Essa lista é baseada na encontrada em http://www.ranks.nl/stopwords/portugese.html
-acerca
-algum
-alguma
-algumas
-alguns
-ambos
-antes
-após
-aquela
-aquelas
-aquele
-aqueles
-até
-bem
-bom
-cada
-com
-como
-das
-desde
-dos
-enquanto
-então
-esta
-este
-estas
-estes
-essa
-essas
-esse
-esses
-isso
-isto
-mas
-mesmo
-onde
-para
-pelo
-por
-qual
-quando
-que
-quem
-sem
-somente
-tal
-também
-uma
-umas
-uns
-www
\ No newline at end of file
diff --git a/wiki/inc/lang/pt-br/subscr_digest.txt b/wiki/inc/lang/pt-br/subscr_digest.txt
deleted file mode 100644
index 8251651..0000000
--- a/wiki/inc/lang/pt-br/subscr_digest.txt
+++ /dev/null
@@ -1,16 +0,0 @@
-Olá!
-
-A página @PAGE@ na wiki @TITLE@ foi modificada.
-Estas foram as mudanças:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-Revisão antiga:@OLDPAGE@
-Nova Revisão:@NEWPAGE@
-
-Para cancelar as notificações de mudanças, entre em
-@DOKUWIKIURL@, vá até @SUBSCRIBE@
-e cancele o monitoramento da página e/ou do espaço de
-nomes.
diff --git a/wiki/inc/lang/pt-br/subscr_form.txt b/wiki/inc/lang/pt-br/subscr_form.txt
deleted file mode 100644
index 1611ea9..0000000
--- a/wiki/inc/lang/pt-br/subscr_form.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Gerenciamento de inscrição ======
-
-Esta página permite voce gerencias as inscrições para a página e namespace corrente.
diff --git a/wiki/inc/lang/pt-br/subscr_list.txt b/wiki/inc/lang/pt-br/subscr_list.txt
deleted file mode 100644
index fb46777..0000000
--- a/wiki/inc/lang/pt-br/subscr_list.txt
+++ /dev/null
@@ -1,26 +0,0 @@
-Olá!
-
-Páginas no espaço de nomes @PAGE@ na wiki
-@TITLE@ foram modificadas.
-Estas são as páginas modificadas:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-Para cancelar as notificações de alterações, entre em
-@DOKUWIKIURL@, vá até @SUBSCRIBE@
-e cancele o monitoramento da página e/ou do espaço de
-nomes.
-
-
-Para cancelar as notificações de páginas, entre na wiki @DOKUWIKIURL@
-e então visite @SUBSCRIBE@ e cancele a inscrição de edição da página ou namespace.
-
-
-Para cancelar a página de notificações, entre na wiki @DOKUWIKIURL@,
-visite a página de @SUBSCRIBE@ e cancele a inscrição de edição da página ou namespace.
-
-
-
-preview.txt ====== Preview ======
diff --git a/wiki/inc/lang/pt-br/subscr_single.txt b/wiki/inc/lang/pt-br/subscr_single.txt
deleted file mode 100644
index e59a1e1..0000000
--- a/wiki/inc/lang/pt-br/subscr_single.txt
+++ /dev/null
@@ -1,19 +0,0 @@
-Olá!
-
-A página @PAGE@ na wiki @TITLE@ foi alterada.
-Estas foram as mudanças:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-Data : @DATE@
-Usuário : @USER@
-Sumário : @SUMMARY@
-Revisão antiga:@OLDPAGE@
-Nova Revisão:@NEWPAGE@
-
-Para cancelar as notificações de mudanças, entre em
-@DOKUWIKIURL@, vá até @NEWPAGE@
-e cancele o monitoramento da página e/ou do espaço de
-nomes.
diff --git a/wiki/inc/lang/pt-br/updateprofile.txt b/wiki/inc/lang/pt-br/updateprofile.txt
deleted file mode 100644
index b3f62f3..0000000
--- a/wiki/inc/lang/pt-br/updateprofile.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== Atualize o perfil da sua conta ======
-
-Você precisa preencher somente os campos que você deseja alterar. Você não pode alterar o seu nome de usuário.
-
-
diff --git a/wiki/inc/lang/pt-br/uploadmail.txt b/wiki/inc/lang/pt-br/uploadmail.txt
deleted file mode 100644
index 8527f8e..0000000
--- a/wiki/inc/lang/pt-br/uploadmail.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-Um arquivo foi enviado para o seu DokuWiki. Os detalhes são:
-
-Arquivo: @MEDIA@
-Data: @DATE@
-Navegador: @BROWSER@
-Endereço IP: @IPADDRESS@
-Nome do host: @HOSTNAME@
-Tamanho: @SIZE@
-Tipo MIME: @MIME@
-Usuário: @USER@
diff --git a/wiki/inc/lang/pt/admin.txt b/wiki/inc/lang/pt/admin.txt
deleted file mode 100644
index 5b103b3..0000000
--- a/wiki/inc/lang/pt/admin.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Administração ======
-
-Abaixo pode encontrar uma lista de tarefas de administrativas disponíveis na DokuWiki.
\ No newline at end of file
diff --git a/wiki/inc/lang/pt/adminplugins.txt b/wiki/inc/lang/pt/adminplugins.txt
deleted file mode 100644
index 259f5ce..0000000
--- a/wiki/inc/lang/pt/adminplugins.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Extras Adicionais =====
\ No newline at end of file
diff --git a/wiki/inc/lang/pt/backlinks.txt b/wiki/inc/lang/pt/backlinks.txt
deleted file mode 100644
index 4eb82cb..0000000
--- a/wiki/inc/lang/pt/backlinks.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Backlinks ======
-
-Esta é uma lista de páginas que parece que interliga para a página atual.
-
diff --git a/wiki/inc/lang/pt/conflict.txt b/wiki/inc/lang/pt/conflict.txt
deleted file mode 100644
index 49575fd..0000000
--- a/wiki/inc/lang/pt/conflict.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== Existe uma versão mais recente ======
-
-Existe uma versão mais recente do documento editado. Isto acontece quando um outro utilizador alterou o documento enquanto o estava a editar.
-
-Analise cuidadosamente as diferenças mostradas abaixo, depois decida qual a versão a manter. Se escolher 'guardar'', a sua versão será guardada. Clique em ''cancelar '' para manter a versão atual.
diff --git a/wiki/inc/lang/pt/denied.txt b/wiki/inc/lang/pt/denied.txt
deleted file mode 100644
index f4e8e01..0000000
--- a/wiki/inc/lang/pt/denied.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Permissão Negada ======
-
-Desculpe, não tem direitos suficientes para continuar.
-
diff --git a/wiki/inc/lang/pt/diff.txt b/wiki/inc/lang/pt/diff.txt
deleted file mode 100644
index b733262..0000000
--- a/wiki/inc/lang/pt/diff.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Diferenças ======
-
-Esta página mostra as diferenças entre as duas revisões da página.
\ No newline at end of file
diff --git a/wiki/inc/lang/pt/draft.txt b/wiki/inc/lang/pt/draft.txt
deleted file mode 100644
index 1baf95c..0000000
--- a/wiki/inc/lang/pt/draft.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-====== Rascunho encontrado ======
-
-A sessão referente à última edição desta página não terminou correctamente. Foi guardado automaticamente um rascunho durante a edição que pode ou não usar para continuar a edição. Abaixo pode ver os dados guardados da última sessão.
-
-Por favor, decida se quer **recuperar** os dados guardados, **remover** o rascunho** ou **cancelar** o processo de edição corrente.
-
-----
diff --git a/wiki/inc/lang/pt/edit.txt b/wiki/inc/lang/pt/edit.txt
deleted file mode 100644
index 2fa596e..0000000
--- a/wiki/inc/lang/pt/edit.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-Edite o documento e clique no botão <Gravar>. Reveja a [[wiki:syntax|sintaxe]] das regras de formatação do texto.
-
-Por favor, altere o conteúdo deste documento apenas quando puder **melhorá-lo**.\\ Se pretende testar os seus conhecimentos no uso deste motor Wiki, realize os seus testes no [[playground:playground | Recreio]].
-
diff --git a/wiki/inc/lang/pt/editrev.txt b/wiki/inc/lang/pt/editrev.txt
deleted file mode 100644
index 2c7697b..0000000
--- a/wiki/inc/lang/pt/editrev.txt
+++ /dev/null
@@ -1 +0,0 @@
-**Carregou uma revisão antiga do documento!** Se a gravar irá criar uma nova versão do documento com este conteúdo, que substituirá a versão actual.
\ No newline at end of file
diff --git a/wiki/inc/lang/pt/index.txt b/wiki/inc/lang/pt/index.txt
deleted file mode 100644
index 46a807d..0000000
--- a/wiki/inc/lang/pt/index.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Ãndice ======
-
-Este índice mostra todas as páginas disponíveis, agrupadas por [[doku>namespaces|espaço de nome]].
\ No newline at end of file
diff --git a/wiki/inc/lang/pt/install.html b/wiki/inc/lang/pt/install.html
deleted file mode 100644
index 69227bd..0000000
--- a/wiki/inc/lang/pt/install.html
+++ /dev/null
@@ -1,8 +0,0 @@
-<p>Esta página serve de "assistente" para a primeira instalação e configuração do <a href="http://dokuwiki.org">Dokuwiki</a>. Está disponível mais informação sobre este "assistente" na sua <a href="http://dokuwiki.org/installer">página de documentação</a>.</p>
-
-<p>O DokuWiki usa ficheiros normais para armazenar as páginas Wiki e outras informações associadas a essas páginas (i.e. imagens, índices de pesquisa, revisões antigas, etc.). O DokuWiki para poder funcionar correctamente <strong>requer</strong> permissões de escrita às pastas que contêm esses ficheiros. Este "assistente" não é capaz de configurar essas permissões. Isso tem que ser feito via linha de comandos, FTP ou Painel de Controlo do serviço de alojamento (i.e. cPanel).</p>
-
-<p>Este "assistente" vai configurar o DokuWiki com
-<abbr title="access control list">ACL</abbr>, que por sua vez permite ao administrador entrar em sessão e aceder ao menu de Administração do DokuWiki para poder instalar plugins, gerir utilizadores e seus perfis, gerir acesso às páginas e à própria configuração do DokuWiki. Não é necessário para que o DokuWiki funcione, mas facilita a sua administração.</p>
-
-<p>Utilizadores experiente ou com requisitos especiais devem seguir estes links, que detalham mais em pormenor a<a href="http://dokuwiki.org/install">instalação</a> e <a href="http://dokuwiki.org/config">configuração</a> do DokuWiki.</p>
\ No newline at end of file
diff --git a/wiki/inc/lang/pt/jquery.ui.datepicker.js b/wiki/inc/lang/pt/jquery.ui.datepicker.js
deleted file mode 100644
index b1afd7b..0000000
--- a/wiki/inc/lang/pt/jquery.ui.datepicker.js
+++ /dev/null
@@ -1,44 +0,0 @@
-/* Portuguese initialisation for the jQuery UI date picker plugin. */
-( function( factory ) {
-	if ( typeof define === "function" && define.amd ) {
-
-		// AMD. Register as an anonymous module.
-		define( [ "../widgets/datepicker" ], factory );
-	} else {
-
-		// Browser globals
-		factory( jQuery.datepicker );
-	}
-}( function( datepicker ) {
-
-datepicker.regional.pt = {
-	closeText: "Fechar",
-	prevText: "Anterior",
-	nextText: "Seguinte",
-	currentText: "Hoje",
-	monthNames: [ "Janeiro","Fevereiro","Março","Abril","Maio","Junho",
-	"Julho","Agosto","Setembro","Outubro","Novembro","Dezembro" ],
-	monthNamesShort: [ "Jan","Fev","Mar","Abr","Mai","Jun",
-	"Jul","Ago","Set","Out","Nov","Dez" ],
-	dayNames: [
-		"Domingo",
-		"Segunda-feira",
-		"Terça-feira",
-		"Quarta-feira",
-		"Quinta-feira",
-		"Sexta-feira",
-		"Sábado"
-	],
-	dayNamesShort: [ "Dom","Seg","Ter","Qua","Qui","Sex","Sáb" ],
-	dayNamesMin: [ "Dom","Seg","Ter","Qua","Qui","Sex","Sáb" ],
-	weekHeader: "Sem",
-	dateFormat: "dd/mm/yy",
-	firstDay: 0,
-	isRTL: false,
-	showMonthAfterYear: false,
-	yearSuffix: "" };
-datepicker.setDefaults( datepicker.regional.pt );
-
-return datepicker.regional.pt;
-
-} ) );
diff --git a/wiki/inc/lang/pt/lang.php b/wiki/inc/lang/pt/lang.php
deleted file mode 100644
index 64c25fa..0000000
--- a/wiki/inc/lang/pt/lang.php
+++ /dev/null
@@ -1,350 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author José Carlos Monteiro <jose.c.monteiro@netcabo.pt>
- * @author José Monteiro <Jose.Monteiro@DoWeDo-IT.com>
- * @author Enrico Nicoletto <liverig@gmail.com>
- * @author Fil <fil@meteopt.com>
- * @author André Neves <drakferion@gmail.com>
- * @author José Campos zecarlosdecampos@gmail.com
- * @author Murilo <muriloricci@hotmail.com>
- * @author Paulo Silva <paulotsilva@yahoo.com>
- * @author Guido Salatino <guidorafael23@gmail.com>
- * @author Romulo Pereira <romuloccomp@gmail.com>
- * @author Paulo Carmino <contato@paulocarmino.com>
- * @author Alfredo Silva <alfredo.silva@sky.com>
- * @author Guilherme Sá <guilherme.sa@hotmail.com>
- */
-$lang['encoding']              = 'utf-8';
-$lang['direction']             = 'ltr';
-$lang['doublequoteopening']    = '“';
-$lang['doublequoteclosing']    = 'â€';
-$lang['singlequoteopening']    = '‘';
-$lang['singlequoteclosing']    = '’';
-$lang['apostrophe']            = '’';
-$lang['btn_edit']              = 'Editar esta página';
-$lang['btn_source']            = 'Mostrar página fonte ';
-$lang['btn_show']              = 'Mostrar página';
-$lang['btn_create']            = 'Criar esta página';
-$lang['btn_search']            = 'Pesquisar';
-$lang['btn_save']              = 'Guardar';
-$lang['btn_preview']           = 'Pré-visualizar';
-$lang['btn_top']               = 'Voltar ao topo';
-$lang['btn_newer']             = '<< mais recente';
-$lang['btn_older']             = 'menos recente >>';
-$lang['btn_revs']              = 'Revisões antigas';
-$lang['btn_recent']            = 'Alterações Recentes';
-$lang['btn_upload']            = 'Enviar';
-$lang['btn_cancel']            = 'Cancelar';
-$lang['btn_index']             = 'Ãndice';
-$lang['btn_secedit']           = 'Editar';
-$lang['btn_login']             = 'Iniciar sessão';
-$lang['btn_logout']            = 'Terminar sessão';
-$lang['btn_admin']             = 'Administrar';
-$lang['btn_update']            = 'Actualizar';
-$lang['btn_delete']            = 'Apagar';
-$lang['btn_back']              = 'Voltar';
-$lang['btn_backlink']          = 'Backlinks';
-$lang['btn_subscribe']         = 'Subscrever Alterações';
-$lang['btn_profile']           = 'Actualizar Perfil';
-$lang['btn_reset']             = 'Limpar';
-$lang['btn_resendpwd']         = 'Definir nova senha';
-$lang['btn_draft']             = 'Editar rascunho';
-$lang['btn_recover']           = 'Recuperar rascunho';
-$lang['btn_draftdel']          = 'Apagar rascunho';
-$lang['btn_revert']            = 'Restaurar';
-$lang['btn_register']          = 'Registar';
-$lang['btn_apply']             = 'Aplicar';
-$lang['btn_media']             = 'Gestor de Media';
-$lang['btn_deleteuser']        = 'Remover a Minha Conta';
-$lang['btn_img_backto']        = 'De volta a %s';
-$lang['btn_mediaManager']      = 'Ver em gestor de media';
-$lang['loggedinas']            = 'Está em sessão como:';
-$lang['user']                  = 'Utilizador';
-$lang['pass']                  = 'Senha';
-$lang['newpass']               = 'Nova senha';
-$lang['oldpass']               = 'Confirme senha actual';
-$lang['passchk']               = 'Confirmar novamente';
-$lang['remember']              = 'Memorizar?';
-$lang['fullname']              = 'Nome completo';
-$lang['email']                 = 'Email';
-$lang['profile']               = 'Perfil do Utilizador';
-$lang['badlogin']              = 'O utilizador inválido ou senha inválida.';
-$lang['badpassconfirm']        = 'Infelizmente a palavra-passe não é a correcta';
-$lang['minoredit']             = 'Alterações Menores';
-$lang['draftdate']             = 'Rascunho automaticamente gravado em';
-$lang['nosecedit']             = 'A página foi modificada entretanto. Como a informação da secção estava desactualizada, foi carregada a página inteira.';
-$lang['regmissing']            = 'Por favor, preencha todos os campos.';
-$lang['reguexists']            = 'Este utilizador já está inscrito. Por favor escolha outro nome de utilizador.';
-$lang['regsuccess']            = 'O utilizador foi criado e a senha foi enviada para o endereço de correio electrónico usado na inscrição.';
-$lang['regsuccess2']           = 'O utilizador foi criado.';
-$lang['regfail']               = 'O usuário não pode ser criado.';
-$lang['regmailfail']           = 'Houve um erro no envio da senha por e-mail. Por favor, contacte o administrador!';
-$lang['regbadmail']            = 'O endereço de correio electrónico é inválido. Se o endereço está correcto, e isto é um erro, por favor, contacte o administrador!';
-$lang['regbadpass']            = 'As duas senhas não são idênticas, por favor tente de novo.';
-$lang['regpwmail']             = 'A sua senha DokuWiki';
-$lang['reghere']               = 'Para se registar, clique em';
-$lang['profna']                = 'Este Wiki não suporta modificações aos perfis.';
-$lang['profnochange']          = 'Nada alteração, nada a fazer.';
-$lang['profnoempty']           = 'Não são permitidos nomes ou endereços em branco.';
-$lang['profchanged']           = 'Perfil do utilizador actualizado com sucesso.';
-$lang['profnodelete']          = 'Esta wiki não suporta remoção de utilizadores';
-$lang['profdeleteuser']        = 'Apagar Conta';
-$lang['profdeleted']           = 'A sua conta de utilizador foi removida desta wiki';
-$lang['profconfdelete']        = 'Quero remover a minha conta desta wiki. <br/> Esta acção não pode ser anulada.';
-$lang['profconfdeletemissing'] = 'A caixa de confirmação não foi marcada';
-$lang['proffail']              = 'O perfil do usuário não foi atualizado.';
-$lang['pwdforget']             = 'Esqueceu a sua senha? Pedir nova senha';
-$lang['resendna']              = 'Este wiki não suporta reenvio de senhas.';
-$lang['resendpwd']             = 'Definir nova senha para';
-$lang['resendpwdmissing']      = 'É preciso preencher todos os campos.';
-$lang['resendpwdnouser']       = 'Não foi possível encontrar este utilizador.';
-$lang['resendpwdbadauth']      = 'O código de autenticação não é válido. Por favor, assegure-se de que o link de confirmação está completo.';
-$lang['resendpwdconfirm']      = 'O link de confirmação foi enviado por e-mail.';
-$lang['resendpwdsuccess']      = 'A nova senha foi enviada por e-mail.';
-$lang['license']               = 'Excepto menção em contrário, o conteúdo neste wiki está sob a seguinte licença:';
-$lang['licenseok']             = 'Nota: Ao editar esta página você aceita disponibilizar o seu conteúdo sob a seguinte licença:';
-$lang['searchmedia']           = 'Procurar nome de ficheiro:';
-$lang['searchmedia_in']        = 'Procurar em %s';
-$lang['txt_upload']            = 'Escolha ficheiro para carregar:';
-$lang['txt_filename']          = 'Carregar como (opcional):';
-$lang['txt_overwrt']           = 'Escrever por cima do ficheiro já existente';
-$lang['maxuploadsize']         = 'Publique max. %s por arquivo.';
-$lang['lockedby']              = 'Bloqueado por:';
-$lang['lockexpire']            = 'Expira em:';
-$lang['js']['willexpire']      = 'O bloqueio de edição para este documento irá expirar num minuto.\nPara evitar conflitos use o botão Prever para re-iniciar o temporizador de bloqueio.';
-$lang['js']['notsavedyet']     = 'Alterações não gravadas serão perdidas.';
-$lang['js']['searchmedia']     = 'Procurar por ficheiros';
-$lang['js']['keepopen']        = 'Mantenha a janela aberta durante a selecção';
-$lang['js']['hidedetails']     = 'Esconder Detalhes';
-$lang['js']['mediatitle']      = 'Propriedades de ligação';
-$lang['js']['mediadisplay']    = 'Tipo de ligação';
-$lang['js']['mediaalign']      = 'Alinhamento';
-$lang['js']['mediasize']       = 'Tamanho da imagem';
-$lang['js']['mediatarget']     = 'Alvo da ligação';
-$lang['js']['mediaclose']      = 'Fechar';
-$lang['js']['mediainsert']     = 'Inserir';
-$lang['js']['mediadisplayimg'] = 'Mostrar a imagem';
-$lang['js']['mediadisplaylnk'] = 'Mostrar apenas a ligação';
-$lang['js']['mediasmall']      = 'Versão pequena';
-$lang['js']['mediamedium']     = 'Versão média';
-$lang['js']['medialarge']      = 'Versão grande';
-$lang['js']['mediaoriginal']   = 'Versão original';
-$lang['js']['medialnk']        = 'Ligação para a página de detalhe';
-$lang['js']['mediadirect']     = 'Ligação directa para o original';
-$lang['js']['medianolnk']      = 'Nenhuma ligação';
-$lang['js']['medianolink']     = 'Não ligar à imagem';
-$lang['js']['medialeft']       = 'Alinhar a imagem à esquerda.';
-$lang['js']['mediaright']      = 'Alinhar a imagem à direita.';
-$lang['js']['mediacenter']     = 'Alinhar a imagem ao centro.';
-$lang['js']['medianoalign']    = 'Não usar alinhamento algum.';
-$lang['js']['nosmblinks']      = 'Ligação a pastas Windows partilhadas apenas funciona com o Microsoft Internet Explorer.
-Pode no entanto copiar e colar o link.';
-$lang['js']['linkwiz']         = 'Assistente de Criação de Ligação';
-$lang['js']['linkto']          = 'Ligação para:';
-$lang['js']['del_confirm']     = 'Remover o(s) item(s) selecionados?';
-$lang['js']['restore_confirm'] = 'Restaurar esta versão?';
-$lang['js']['media_diff']      = 'Ver diferenças:';
-$lang['js']['media_diff_both'] = 'Lado a Lado';
-$lang['js']['media_diff_opacity'] = 'Sobreposição';
-$lang['js']['media_diff_portions'] = 'Slider';
-$lang['js']['media_select']    = 'Selecione ficheiros…';
-$lang['js']['media_upload_btn'] = 'Enviar';
-$lang['js']['media_done_btn']  = 'Feito';
-$lang['js']['media_drop']      = 'Largue ficheiros aqui para enviar';
-$lang['js']['media_cancel']    = 'remover';
-$lang['js']['media_overwrt']   = 'Escrever por cima de ficheiros existentes';
-$lang['rssfailed']             = 'Ocorreu um erro neste canal RSS: ';
-$lang['nothingfound']          = 'Nada foi encontrado.';
-$lang['mediaselect']           = 'Selecção de ficheiros';
-$lang['uploadsucc']            = 'Carregamento com sucesso';
-$lang['uploadfail']            = 'Falhou o carregamento. Talvez por não ter permissões?';
-$lang['uploadwrong']           = 'Carregamento negado. Esta extensão está proibida.';
-$lang['uploadexist']           = 'O ficheiro já existe. Não pode ser carregado.';
-$lang['uploadbadcontent']      = 'O conteúdo carregado não corresponde à extensão %s.';
-$lang['uploadspam']            = 'O carregamento foi bloqueado pela lista negra de SPAM.';
-$lang['uploadxss']             = 'O carregamento foi bloqueado porque possivelmente contem conteúdo malicioso.';
-$lang['uploadsize']            = 'O ficheiro carregado é demasiado grande. (máx. %s)';
-$lang['deletesucc']            = 'O ficheiro "%s" foi removido.';
-$lang['deletefail']            = 'O ficheiro "%s" não pode ser removido, por favor verifique as permissões.';
-$lang['mediainuse']            = 'O ficheiro "%s" não foi removido porque está ainda a ser usado.';
-$lang['namespaces']            = 'Grupos';
-$lang['mediafiles']            = 'Ficheiros disponíveis em';
-$lang['accessdenied']          = 'Não tem permissão para ver esta página.';
-$lang['mediausage']            = 'Use a seguinte sintaxe para referenciar este ficheiro:';
-$lang['mediaview']             = 'Ver ficheiro original';
-$lang['mediaroot']             = 'root';
-$lang['mediaupload']           = 'Carregar ficheiros para o grupo actual aqui. Para criar sub-grupos: escrever o nome do sub-grupo seguido de : antes do nome do ficheiro no campo "Carregar como".';
-$lang['mediaextchange']        = 'Extensão alterada de .%s para .%s!';
-$lang['reference']             = 'Referências para';
-$lang['ref_inuse']             = 'O ficheiro não pode ser removido, porque está ainda a ser usado nestes documentos:';
-$lang['ref_hidden']            = 'Algumas referências estão em documentos para os quais não tem permissão para ler';
-$lang['hits']                  = 'Resultados';
-$lang['quickhits']             = 'Documentos encontrados';
-$lang['toc']                   = 'Tabela de Conteúdos';
-$lang['current']               = 'Actual';
-$lang['yours']                 = 'A sua versão';
-$lang['diff']                  = 'mostrar diferenças com a versão actual';
-$lang['diff2']                 = 'mostrar diferenças entre versões escolhidas';
-$lang['difflink']              = 'Ligação para esta vista de comparação';
-$lang['diff_type']             = 'Ver diferenças';
-$lang['diff_inline']           = 'Embutido';
-$lang['diff_side']             = 'Lado a lado';
-$lang['diffprevrev']           = 'Revisão anterior';
-$lang['diffnextrev']           = 'Próxima revisão';
-$lang['difflastrev']           = 'Última revisão';
-$lang['diffbothprevrev']       = 'Ambos os lados da revisão anterior';
-$lang['diffbothnextrev']       = 'Ambos os lados da próxima revisão';
-$lang['line']                  = 'Linha';
-$lang['breadcrumb']            = 'Está em:';
-$lang['youarehere']            = 'Está aqui:';
-$lang['lastmod']               = 'Esta página foi modificada pela última vez em:';
-$lang['by']                    = 'por';
-$lang['deleted']               = 'Documento automaticamente removido.';
-$lang['created']               = 'Criação deste novo documento.';
-$lang['restored']              = 'Versão anterior restaurada (%s)';
-$lang['external_edit']         = 'Edição externa';
-$lang['summary']               = 'Sumário da Edição';
-$lang['noflash']               = 'O <a href="http://www.adobe.com/products/flashplayer/">Plugin Adobe Flash</a> é necessário para exibir este conteúdo.';
-$lang['download']              = 'Descarregar Snippet';
-$lang['tools']                 = 'Ferramentas';
-$lang['user_tools']            = 'Ferramentas de Utilizador';
-$lang['site_tools']            = 'Ferramentas de Site';
-$lang['page_tools']            = 'Ferramentas de Página';
-$lang['skip_to_content']       = 'saltar para conteúdo';
-$lang['sidebar']               = 'Barra Lateral';
-$lang['mail_newpage']          = 'documento adicionado:';
-$lang['mail_changed']          = 'documento modificado:';
-$lang['mail_subscribe_list']   = 'páginas alteradas no espaço de nome:';
-$lang['mail_new_user']         = 'Novo utilizador:';
-$lang['mail_upload']           = 'Ficheiro carregado:';
-$lang['changes_type']          = 'Ver alterações de';
-$lang['pages_changes']         = 'Páginas';
-$lang['media_changes']         = 'Ficheiros Media';
-$lang['both_changes']          = 'Tanto páginas como ficheiros media';
-$lang['qb_bold']               = 'Texto com Ênfase';
-$lang['qb_italic']             = 'Texto Itálico';
-$lang['qb_underl']             = 'Texto Sublinhado';
-$lang['qb_code']               = 'Texto Código';
-$lang['qb_strike']             = 'Texto Riscado';
-$lang['qb_h1']                 = 'Cabeçalho Nível 1';
-$lang['qb_h2']                 = 'Cabeçalho Nível 2';
-$lang['qb_h3']                 = 'Cabeçalho Nível 3';
-$lang['qb_h4']                 = 'Cabeçalho Nível 4';
-$lang['qb_h5']                 = 'Cabeçalho Nível 5';
-$lang['qb_h']                  = 'Cabeçalho';
-$lang['qb_hs']                 = 'Seleccionar Cabeçalho';
-$lang['qb_hplus']              = 'Cabeçalho Maior';
-$lang['qb_hminus']             = 'Cabeçalho Menor';
-$lang['qb_hequal']             = 'Cabeçalho de Nível Semelhante';
-$lang['qb_link']               = 'Ligação Interna';
-$lang['qb_extlink']            = 'Ligação Externa';
-$lang['qb_hr']                 = 'Barra Horizontal';
-$lang['qb_ol']                 = 'Item numa Lista Ordenada';
-$lang['qb_ul']                 = 'Item numa Lista Não Ordenada';
-$lang['qb_media']              = 'Incluir imagens e outros ficheiros';
-$lang['qb_sig']                = 'Inserir Assinatura';
-$lang['qb_smileys']            = 'Smileys';
-$lang['qb_chars']              = 'Caracteres Especiais';
-$lang['upperns']               = 'Ir para o espaço de nomes parente';
-$lang['metaedit']              = 'Editar Metadata';
-$lang['metasaveerr']           = 'Falhou a escrita de Metadata';
-$lang['metasaveok']            = 'Metadata gravada';
-$lang['img_title']             = 'Título:';
-$lang['img_caption']           = 'Legenda:';
-$lang['img_date']              = 'Data:';
-$lang['img_fname']             = 'Ficheiro:';
-$lang['img_fsize']             = 'Tamanho:';
-$lang['img_artist']            = 'Fotógrafo:';
-$lang['img_copyr']             = 'Copyright:';
-$lang['img_format']            = 'Formato:';
-$lang['img_camera']            = 'Câmara:';
-$lang['img_keywords']          = 'Palavras-Chave:';
-$lang['img_width']             = 'Largura:';
-$lang['img_height']            = 'Altura:';
-$lang['subscr_subscribe_success'] = 'Adicionado %s à lista de subscrição para %s';
-$lang['subscr_subscribe_error'] = 'Erro ao adicionar %s à lista de subscrição para %s';
-$lang['subscr_subscribe_noaddress'] = 'Não existe endereço algum associado com o seu nome de utilizador, não pode ser adicionado à lista de subscrição';
-$lang['subscr_unsubscribe_success'] = 'Removido %s da lista de subscrição para %s';
-$lang['subscr_unsubscribe_error'] = 'Erro ao remover %s da lista de subscrição para %s';
-$lang['subscr_already_subscribed'] = '%s já está subscrito em %s';
-$lang['subscr_not_subscribed'] = '%s não está subscrito em %s';
-$lang['subscr_m_not_subscribed'] = 'Não está subscrito à página ou espaço de nome corrente.';
-$lang['subscr_m_new_header']   = 'Adicionar subscrição';
-$lang['subscr_m_current_header'] = 'Subscrições correntes';
-$lang['subscr_m_unsubscribe']  = 'Des-subscrever';
-$lang['subscr_m_subscribe']    = 'Subscrever';
-$lang['subscr_m_receive']      = 'Receber';
-$lang['subscr_style_every']    = 'email em qualquer alteração';
-$lang['subscr_style_digest']   = '"digest email" de alterações em cada página (cada %.2f dias)';
-$lang['subscr_style_list']     = 'lista de páginas alteradas desde o último email (cada %.2f dias)';
-$lang['authtempfail']          = 'Autenticação temporariamente indisponível. Se a situação persistir, por favor informe o Wiki Admin.';
-$lang['i_chooselang']          = 'Escolha a linguagem';
-$lang['i_installer']           = 'Instalador do DokuWiki';
-$lang['i_wikiname']            = 'Nome Wiki';
-$lang['i_enableacl']           = 'Activar ACL (recomendado)';
-$lang['i_superuser']           = 'Super-utilizador';
-$lang['i_problems']            = 'O instalador encontrou alguns problemas, indicados mais abaixo. Não pode continuar até que sejam corrigidos.';
-$lang['i_modified']            = 'Por razões de segurança, este script só funciona em novas e não-modificadas instalações do Dokuwiki. Deve por isso re-extrair os ficheiros do pacote que descarregou ou então deve consultar as completas <a href="http://dokuwiki.org/install">instruções de instalação do Dokuwiki installation instructions</a>';
-$lang['i_funcna']              = 'A função PHP <code>%s</code> não está disponível. Terá o serviço de alojamento desactivado-a por alguma razão?';
-$lang['i_phpver']              = 'A versão de PHP actual <code>%s</code> é inferior à versão mínima <code>%s</code>. É preciso actualizar a instalação PHP.';
-$lang['i_mbfuncoverload']      = 'mbstring.func_overload deve ser desabilitada no php.ini para executar DokuWiki.';
-$lang['i_permfail']            = '<code>%s</code> não permite que o DokuWiki escreva nela. É preciso corrigir as permissões desta pasta!';
-$lang['i_confexists']          = '<code>%s</code> já existe';
-$lang['i_writeerr']            = 'Não foi possível criar <code>%s</code>. É preciso verificar as permissões e criar o ficheiro manualmente.';
-$lang['i_badhash']             = 'dokuwiki.php não é o original ou não é reconhecido (hash=<code>%s</code>)';
-$lang['i_badval']              = '<code>%s</code> - valor ilegal ou vazio';
-$lang['i_success']             = 'A instalação e configuração inicial foram bem sucedidas. Pode remover o install.php. Aceda ao seu novo <a href="doku.php?id=wiki:welcome">Wiki</a> a correr o DokuWiki.';
-$lang['i_failure']             = 'Ocorreram alguns erros durante a escrita nos ficheiros de configuração. Poderá ser preciso corrigi-los manualmente antes de poder aceder ao seu novo <a href="doku.php?id=wiki:welcome">Wiki</a> a correr o DokuWiki.';
-$lang['i_policy']              = 'Politica ACL inicial';
-$lang['i_pol0']                = 'Wiki Aberto (ler, escrever e carregar para todos)';
-$lang['i_pol1']                = 'Wiki Público (ler para todos, escrever e carregar para utilizadores inscritos)';
-$lang['i_pol2']                = 'Wiki Fechado (ler, escrever e carregar somente para utilizadores inscritos)';
-$lang['i_allowreg']            = 'Permitir aos utilizadores registarem-se por si próprios';
-$lang['i_retry']               = 'Repetir';
-$lang['i_license']             = 'Por favor escolha a licença sob a qual quer colocar o seu conteúdo:';
-$lang['i_license_none']        = 'Não mostrar nenhuma informação de licença';
-$lang['i_pop_field']           = 'Por favor ajude-nos a melhorar a experiência Dokuwiki:';
-$lang['i_pop_label']           = 'Uma vez por mês, enviar dados anónimos de uso para os desenvolvedores DokuWiki';
-$lang['recent_global']         = 'Você está a observar as alterações dentro do espaço de nomes <b>%s</b>. Também é possível ver as <a href="%s">modificações recentes no wiki inteiro</a>.';
-$lang['years']                 = '%d anos atrás';
-$lang['months']                = '%d meses atrás';
-$lang['weeks']                 = '%d semanas atrás';
-$lang['days']                  = '%d dias atrás';
-$lang['hours']                 = '%d horas atrás';
-$lang['minutes']               = '%d minutos atrás';
-$lang['seconds']               = '%d segundos atrás';
-$lang['wordblock']             = 'A sua alteração não foi guardada porque contém texto bloqueado (spam).';
-$lang['media_uploadtab']       = 'Enviar';
-$lang['media_searchtab']       = 'Procurar';
-$lang['media_file']            = 'Ficheiro';
-$lang['media_viewtab']         = 'Ver';
-$lang['media_edittab']         = 'Editar';
-$lang['media_historytab']      = 'Histórico';
-$lang['media_list_thumbs']     = 'Miniaturas';
-$lang['media_list_rows']       = 'Linhas';
-$lang['media_sort_name']       = 'Ordenar por nome';
-$lang['media_sort_date']       = 'Ordenar por data';
-$lang['media_namespaces']      = 'Escolha o namespace';
-$lang['media_files']           = 'Ficheiros em %s';
-$lang['media_upload']          = 'Enviar para o grupo <strong>%s</strong>.';
-$lang['media_search']          = 'Procurar no grupo <strong>%s</strong>.';
-$lang['media_view']            = '%s';
-$lang['media_viewold']         = '%s em %s';
-$lang['media_edit']            = 'Editar %s';
-$lang['media_history']         = 'Histórico do %s';
-$lang['media_meta_edited']     = 'metadata editada';
-$lang['media_perm_read']       = 'Perdão, não tem permissão para ler ficheiros.';
-$lang['media_perm_upload']     = 'Perdão, não tem permissão para enviar ficheiros.';
-$lang['media_update']          = 'enviar nova versão';
-$lang['media_restore']         = 'Restaurar esta versão';
-$lang['currentns']             = 'Namespace actual';
-$lang['searchresult']          = 'Resultado da pesquisa';
-$lang['plainhtml']             = 'HTML simples';
-$lang['wikimarkup']            = 'Markup de Wiki';
-$lang['page_nonexist_rev']     = 'Página não existia no %s. Posteriormente, foi criado em <a href="%s">%s</a>.';
-$lang['unable_to_parse_date']  = 'Não é possível analisar o parâmetro "%s".';
-$lang['email_signature_text']  = 'Este email foi gerado por DokuWiki em
-@DOKUWIKIURL@';
diff --git a/wiki/inc/lang/pt/locked.txt b/wiki/inc/lang/pt/locked.txt
deleted file mode 100644
index a4bb4d6..0000000
--- a/wiki/inc/lang/pt/locked.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Página em Edição ======
-
-Esta página está bloqueada por outro utilizador, que se encontra a editá-la neste momento. Terá que aguardar que o utilizador termine a edição ou que o bloqueio expire.
\ No newline at end of file
diff --git a/wiki/inc/lang/pt/login.txt b/wiki/inc/lang/pt/login.txt
deleted file mode 100644
index 42c2a98..0000000
--- a/wiki/inc/lang/pt/login.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Entrar ======
-
-Não está actualmente em sessão! Introduza as suas credenciais de autenticação abaixo para para entrar em sessão. Precisa de ter cookies activos no seu navegador.
\ No newline at end of file
diff --git a/wiki/inc/lang/pt/mailtext.txt b/wiki/inc/lang/pt/mailtext.txt
deleted file mode 100644
index 844f246..0000000
--- a/wiki/inc/lang/pt/mailtext.txt
+++ /dev/null
@@ -1,14 +0,0 @@
-Um documento no site Wiki @DOKUWIKIURL@ foi criado ou modificado.
-
-Aqui estão os detalhes:
-
-Data          : @DATE@
-Browser       : @BROWSER@
-Endereço IP   : @IPADDRESS@
-Hostname      : @HOSTNAME@
-Documento Ant.: @OLDPAGE@
-Documento Novo: @NEWPAGE@
-Edit Summary  : @SUMMARY@
-User          : @USER@
-
-@DIFF@
diff --git a/wiki/inc/lang/pt/newpage.txt b/wiki/inc/lang/pt/newpage.txt
deleted file mode 100644
index 2d9c955..0000000
--- a/wiki/inc/lang/pt/newpage.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Documento Inexistente ======
-
-Seguiu uma ligação para um documento que ainda não existe. Pode criá-lo usando o botão "Criar página", se as permissões lho permitirem.
\ No newline at end of file
diff --git a/wiki/inc/lang/pt/norev.txt b/wiki/inc/lang/pt/norev.txt
deleted file mode 100644
index 6dd8dfb..0000000
--- a/wiki/inc/lang/pt/norev.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-====== Revisão Inexistente ======
-
-A revisão especificada não existe.
-
-Clique no botão <Revisões> para aceder à lista de revisões deste documento.
-
-----
diff --git a/wiki/inc/lang/pt/password.txt b/wiki/inc/lang/pt/password.txt
deleted file mode 100644
index cfd81f3..0000000
--- a/wiki/inc/lang/pt/password.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-Olá, @FULLNAME@!
-
-Aqui estão as suas credenciais de autenticação para @TITLE@, em @DOKUWIKIURL@
-
-Utilizador : @LOGIN@
-Senha      : @PASSWORD@
diff --git a/wiki/inc/lang/pt/preview.txt b/wiki/inc/lang/pt/preview.txt
deleted file mode 100644
index 1a8dab0..0000000
--- a/wiki/inc/lang/pt/preview.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Previsão ======
-
-Esta é uma previsão de como ficará o conteúdo. Lembre-se: ainda **não está gravado**!
\ No newline at end of file
diff --git a/wiki/inc/lang/pt/pwconfirm.txt b/wiki/inc/lang/pt/pwconfirm.txt
deleted file mode 100644
index 00fee3e..0000000
--- a/wiki/inc/lang/pt/pwconfirm.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-Olá @FULLNAME@!
-
-Alguém efectuou um pedido para uma nova senha para o seu perfil @TITLE@ em @DOKUWIKIURL@
-
-Se não foi você que efectuou o pedido então por favor ignore esta mensagem.
-
-Senão, para confirmar o pedido, por favor siga este link:
-
-@CONFIRM@
diff --git a/wiki/inc/lang/pt/read.txt b/wiki/inc/lang/pt/read.txt
deleted file mode 100644
index 177b1e8..0000000
--- a/wiki/inc/lang/pt/read.txt
+++ /dev/null
@@ -1 +0,0 @@
-Esta página é apenas de leitura. Pode ver a fonte, mas não alterá-la. Informe-se com o administrador deste Wiki se achar que isto não está correcto.
\ No newline at end of file
diff --git a/wiki/inc/lang/pt/recent.txt b/wiki/inc/lang/pt/recent.txt
deleted file mode 100644
index 3957df4..0000000
--- a/wiki/inc/lang/pt/recent.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Alterações Recentes ======
-
-Os seguintes documentos foram alterados recentemente.
\ No newline at end of file
diff --git a/wiki/inc/lang/pt/register.txt b/wiki/inc/lang/pt/register.txt
deleted file mode 100644
index 228cb99..0000000
--- a/wiki/inc/lang/pt/register.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Inscrição como novo utilizador ======
-
-Preencha toda a informação abaixo para criar uma nova conta nesta wiki. Assegure que providencia um **endereço de email válido** - se não lhe for pedido que introduza uma nova palavra chave aqui, ser-lhe-á enviada uma para esse endereço. O nome de utilizador deve ser um [[doku>pagename|nome de página]] válido.
\ No newline at end of file
diff --git a/wiki/inc/lang/pt/registermail.txt b/wiki/inc/lang/pt/registermail.txt
deleted file mode 100644
index 7f5333d..0000000
--- a/wiki/inc/lang/pt/registermail.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-Inscrição de um novo utilizador. Aqui estão os detalhes:
-
-Username : @NEWUSER@
-Nome Completo : @NEWNAME@
-E-mail : @NEWEMAIL@
-
-Data : @DATE@
-Browser : @BROWSER@
-Endereço IP : @IPADDRESS@
-Hostname : @HOSTNAME@
diff --git a/wiki/inc/lang/pt/resendpwd.txt b/wiki/inc/lang/pt/resendpwd.txt
deleted file mode 100644
index 9a54ace..0000000
--- a/wiki/inc/lang/pt/resendpwd.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Enviar nova senha ======
-
-Por favor, insira o seu nome de utilizador neste formulário para requerer uma nova senha para esta conta/perfil. Um link de confirmação será enviado para o endereço de e-mail associado.
\ No newline at end of file
diff --git a/wiki/inc/lang/pt/resetpwd.txt b/wiki/inc/lang/pt/resetpwd.txt
deleted file mode 100644
index 898772a..0000000
--- a/wiki/inc/lang/pt/resetpwd.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Definir nova senha ======
-
-Digite uma nova senha para a sua conta nesta wiki.
\ No newline at end of file
diff --git a/wiki/inc/lang/pt/revisions.txt b/wiki/inc/lang/pt/revisions.txt
deleted file mode 100644
index 0a0d359..0000000
--- a/wiki/inc/lang/pt/revisions.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Revisões antigas ======
-
-Estas são as revisões antigas do documento corrente. Para reverter para uma destas revisões, escolha-a abaixo, clique no botão "Editar página" e grave.
\ No newline at end of file
diff --git a/wiki/inc/lang/pt/searchpage.txt b/wiki/inc/lang/pt/searchpage.txt
deleted file mode 100644
index 27a6baa..0000000
--- a/wiki/inc/lang/pt/searchpage.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Pesquisa ======
-
-Pode encontrar os resultados da sua pesquisa abaixo. @CREATEPAGEINFO@
-
diff --git a/wiki/inc/lang/pt/showrev.txt b/wiki/inc/lang/pt/showrev.txt
deleted file mode 100644
index 25d617f..0000000
--- a/wiki/inc/lang/pt/showrev.txt
+++ /dev/null
@@ -1 +0,0 @@
-**Esta é uma versão antiga do documento!**
\ No newline at end of file
diff --git a/wiki/inc/lang/pt/stopwords.txt b/wiki/inc/lang/pt/stopwords.txt
deleted file mode 100644
index 373e6ee..0000000
--- a/wiki/inc/lang/pt/stopwords.txt
+++ /dev/null
@@ -1,141 +0,0 @@
-# Esta é uma lista de plavaras que o indexador ignora, uma palavra por linha
-# Quando você edita esta lista certifique-se que usa fim de linha usado em sistemas UNIX
-# Não é necessário incluir palavras menores que 3 letras - estas são sempre ignoradas
-# Esta lista é baseada nas encontradas em http://www.ranks.nl/stopwords/
-último
-acerca
-agora
-algmas
-alguns
-ali
-ambos
-antes
-apontar
-aquela
-aquelas
-aquele
-aqueles
-aqui
-atrás
-bem
-bom
-cada
-caminho
-cima
-com
-como
-comprido
-conhecido
-corrente
-das
-debaixo
-dentro
-desde
-desligado
-deve
-devem
-deverá
-direita
-diz
-dizer
-dois
-dos
-ela
-ele
-eles
-enquanto
-então
-está
-estão
-estado
-estar
-estará
-este
-estes
-esteve
-estive
-estivemos
-estiveram
-fará
-faz
-fazer
-fazia
-fez
-fim
-foi
-fora
-horas
-iniciar
-inicio
-irá
-ista
-iste
-isto
-ligado
-maioria
-maiorias
-mais
-mas
-mesmo
-meu
-muito
-muitos
-nós
-não
-nome
-nosso
-novo
-onde
-outro
-para
-parte
-pegar
-pelo
-pessoas
-pode
-poderá
-podia
-por
-porque
-povo
-promeiro
-quê
-qual
-qualquer
-quando
-quem
-quieto
-são
-saber
-sem
-ser
-seu
-somente
-têm
-tal
-também
-tem
-tempo
-tenho
-tentar
-tentaram
-tente
-tentei
-teu
-teve
-tipo
-tive
-todos
-trabalhar
-trabalho
-uma
-umas
-uns
-usa
-usar
-valor
-veja
-ver
-verdade
-verdadeiro
-você
diff --git a/wiki/inc/lang/pt/subscr_digest.txt b/wiki/inc/lang/pt/subscr_digest.txt
deleted file mode 100644
index 943bba8..0000000
--- a/wiki/inc/lang/pt/subscr_digest.txt
+++ /dev/null
@@ -1,16 +0,0 @@
-Olá!
-
-A página @PAGE@ na wiki @TITLE@ mudou.
-Eis as mudanças:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-Revisão Antiga: @OLDPAGE@
-Revisão Nova: @NEWPAGE@
-
-Para cancelar as notificações de página, inicie sessão na wiki em
-@DOKUWIKIURL@, visite
-@SUBSCRIBE@
-e des-subscreva as alterações à página e/ou nome espaço de nome.
diff --git a/wiki/inc/lang/pt/subscr_form.txt b/wiki/inc/lang/pt/subscr_form.txt
deleted file mode 100644
index 9bb7b6b..0000000
--- a/wiki/inc/lang/pt/subscr_form.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Gestão de Subscrição ======
-
-Esta página permite-lhe gerir as suas subscrições para a página e espaço de nomes correntes.
\ No newline at end of file
diff --git a/wiki/inc/lang/pt/subscr_list.txt b/wiki/inc/lang/pt/subscr_list.txt
deleted file mode 100644
index fdaef5e..0000000
--- a/wiki/inc/lang/pt/subscr_list.txt
+++ /dev/null
@@ -1,13 +0,0 @@
-Olá!
-
-Páginas no espaço de nome  @PAGE@ da wiki @TITLE@ mudaram.
-Eis as páginas alteradas:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-Para cancelar as notificações de páginas, inicie sessão na wiki em
-@DOKUWIKIURL@, visite
-@SUBSCRIBE@
-e des-subscreva às alterações da página e/ou espaço de nome.
diff --git a/wiki/inc/lang/pt/subscr_single.txt b/wiki/inc/lang/pt/subscr_single.txt
deleted file mode 100644
index 10674f7..0000000
--- a/wiki/inc/lang/pt/subscr_single.txt
+++ /dev/null
@@ -1,19 +0,0 @@
-Olá!
-
-A página @PAGE@ no wiki @TITLE@ mudou.
-Eis as alterações:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-Data : @DATE@
-Utilizador : @USER@
-Sumário de Edição: @SUMMARY@
-Revisão Antiga: @OLDPAGE@
-Revisão Nova: @NEWPAGE@
-
-Para cancelar as notificações de página, inicie sessão no wiki em
-@DOKUWIKIURL@, visite
-@SUBSCRIBE@
-e des-subscreva às alterações de página e/ou espaço de nome.
diff --git a/wiki/inc/lang/pt/updateprofile.txt b/wiki/inc/lang/pt/updateprofile.txt
deleted file mode 100644
index efacfe4..0000000
--- a/wiki/inc/lang/pt/updateprofile.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Actualize o seu perfil ======
-
-Apenas precisa de completar os campos que pretende alterar. Não é possível alterar o seu nome de utilizador.
\ No newline at end of file
diff --git a/wiki/inc/lang/pt/uploadmail.txt b/wiki/inc/lang/pt/uploadmail.txt
deleted file mode 100644
index 09787e1..0000000
--- a/wiki/inc/lang/pt/uploadmail.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-Um ficheiro foi carregado. Aqui estão os detalhes:
-
-Ficheiro       : @MEDIA@
-Revisão antiga : @OLD@
-Data           : @DATE@
-Navegador      : @BROWSER@
-Endereço IP    : @IPADDRESS@
-Hostname       : @HOSTNAME@
-Tamanho        : @SIZE@
-MIME Type      : @MIME@
-Utilizador     : @USER@
diff --git a/wiki/inc/lang/ro/admin.txt b/wiki/inc/lang/ro/admin.txt
deleted file mode 100644
index 8c7b3d6..0000000
--- a/wiki/inc/lang/ro/admin.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Administrare ======
-
-Poți vedea mai jos o listă cu acțiunile administrative disponibile în DokuWiki.
diff --git a/wiki/inc/lang/ro/adminplugins.txt b/wiki/inc/lang/ro/adminplugins.txt
deleted file mode 100644
index 121a8fd..0000000
--- a/wiki/inc/lang/ro/adminplugins.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Plugin-uri suplimentare =====
diff --git a/wiki/inc/lang/ro/backlinks.txt b/wiki/inc/lang/ro/backlinks.txt
deleted file mode 100644
index ae52a10..0000000
--- a/wiki/inc/lang/ro/backlinks.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Legături înapoi ======
-
-Aceasta e o listă de pagini care au legături către pagina curentă.
diff --git a/wiki/inc/lang/ro/conflict.txt b/wiki/inc/lang/ro/conflict.txt
deleted file mode 100644
index dcac677..0000000
--- a/wiki/inc/lang/ro/conflict.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-====== Există o nouă versiune ======
-
-Există o versiune nouă a paginii editate. Aceasta se întâmplă atunci când
-un alt utilizator a modificat pagina în timp ce editai.
-
-Examinează diferențele indicate mai jos, apoi ia decizia care versiune o vei
-reține. Dacă alegi ''Salvează'', versiunea paginii va fi salvată. Apasă ''Renunțare'' pentru a menține versiunea curentă.
diff --git a/wiki/inc/lang/ro/denied.txt b/wiki/inc/lang/ro/denied.txt
deleted file mode 100644
index 490233a..0000000
--- a/wiki/inc/lang/ro/denied.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Acces nepermis ======
-
-Din păcate nu ai destule drepturi pentru a continua.
-
diff --git a/wiki/inc/lang/ro/diff.txt b/wiki/inc/lang/ro/diff.txt
deleted file mode 100644
index 4bf6250..0000000
--- a/wiki/inc/lang/ro/diff.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Diferențe ======
-
-Aici sunt prezentate diferențele dintre versiunile selectate și versiunea curentă a paginii.
diff --git a/wiki/inc/lang/ro/draft.txt b/wiki/inc/lang/ro/draft.txt
deleted file mode 100644
index 550db52..0000000
--- a/wiki/inc/lang/ro/draft.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-====== Fișierul schiță nu a fost găsit ======
-
-Ultima ta sesiune de editare nu s-a finalizat corect. ÃŽn vreme ce lucrai,
-DokuWiki a salvat automat o schiță, pe care o poți utiliza acum pentru a
-continua editarea. Mai jos poți vedea informațiile care s-au salvat de la ultima sesiune.
-
-Decide dacă vrei să //recuperezi// sesiunea de editare pierdută, să //ștergi//
-schița salvată automat sau să //anulezi// procesul de editare.
diff --git a/wiki/inc/lang/ro/edit.txt b/wiki/inc/lang/ro/edit.txt
deleted file mode 100644
index cd5aa2e..0000000
--- a/wiki/inc/lang/ro/edit.txt
+++ /dev/null
@@ -1 +0,0 @@
-Editează pagina și apasă ''Salvează''. Vezi [[wiki:syntax]] pentru sintaxă. Te rog editează pagina doar pentru a o **îmbunătați**. Dacă vrei să testezi câteva lucruri, învață sa faci primii pași în [[playground:playground]].
diff --git a/wiki/inc/lang/ro/editrev.txt b/wiki/inc/lang/ro/editrev.txt
deleted file mode 100644
index 983cd65..0000000
--- a/wiki/inc/lang/ro/editrev.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-**Ai încărcat o versiune anterioră a paginii.** Dacă ai salvat-o, vei crea o
-versiune nouă cu aceast conținut.
-----
diff --git a/wiki/inc/lang/ro/index.txt b/wiki/inc/lang/ro/index.txt
deleted file mode 100644
index 1ae5b9c..0000000
--- a/wiki/inc/lang/ro/index.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Index ======
-
-Acesta e un index al tuturor paginilor ordonat după [[doku>namespaces|spații
-de nume]].
diff --git a/wiki/inc/lang/ro/install.html b/wiki/inc/lang/ro/install.html
deleted file mode 100644
index 222b86e..0000000
--- a/wiki/inc/lang/ro/install.html
+++ /dev/null
@@ -1,10 +0,0 @@
-<p>Această pagină oferă asistență la instalarea pentru prima dată a <a href="http://dokuwiki.org">Dokuwiki</a>. Mai multe informații privind această instalare găsești în <a href="http://dokuwiki.org/installer">pagina de documentație</a>.</p>
-
-<p>DokuWiki folosește fișiere obișnuite pentru stocarea paginilor wiki și a informaților asociate acestor pagini (de ex. imagini, indecși de căutare, versiuni vechi etc.). Pentru a putea fi folosit, DokuWiki <strong>trebuie</strong> să aibă drepturi de scriere în directoarele ce conțin aceste fișiere.
-Acest script de instalare nu poate configura drepturile directoarelor. De regulă, aceasta se face direct, în linie de comandă, sau în cazul unoi soluții de hosting, prin FTP sau prin panoul de control al gazdei (de ex. cPanel).</p>
-
-<p>Acest script de instalare va configura DokuWiki pentru <abbr title="access control list">ACL</abbr>, care permite autentificarea administratorului și accesul la meniul de administrare pentru instalarea plugin-urilor, gestiunea utilizatorilor, accesului la paginile wiki și modificarea configurației.
-Acest script nu este necesar pentru funcționarea DokuWiki, însă ușurează administrarea.
-
-<p>Utilizatorii experimentați sau utilizatorii care au nevoie de o configurație specială pot accesa paginile cu <a href="http://dokuwiki.org/install">instrucțiunile de instalare</a> și <a href="http://dokuwiki.org/config">opțiunile de configurare</a> a DokuWiki.</p>
-
diff --git a/wiki/inc/lang/ro/jquery.ui.datepicker.js b/wiki/inc/lang/ro/jquery.ui.datepicker.js
deleted file mode 100644
index b26665c..0000000
--- a/wiki/inc/lang/ro/jquery.ui.datepicker.js
+++ /dev/null
@@ -1,40 +0,0 @@
-/* Romanian initialisation for the jQuery UI date picker plugin.
- *
- * Written by Edmond L. (ll_edmond@walla.com)
- * and Ionut G. Stan (ionut.g.stan@gmail.com)
- */
-( function( factory ) {
-	if ( typeof define === "function" && define.amd ) {
-
-		// AMD. Register as an anonymous module.
-		define( [ "../widgets/datepicker" ], factory );
-	} else {
-
-		// Browser globals
-		factory( jQuery.datepicker );
-	}
-}( function( datepicker ) {
-
-datepicker.regional.ro = {
-	closeText: "ÃŽnchide",
-	prevText: "&#xAB; Luna precedentă",
-	nextText: "Luna următoare &#xBB;",
-	currentText: "Azi",
-	monthNames: [ "Ianuarie","Februarie","Martie","Aprilie","Mai","Iunie",
-	"Iulie","August","Septembrie","Octombrie","Noiembrie","Decembrie" ],
-	monthNamesShort: [ "Ian", "Feb", "Mar", "Apr", "Mai", "Iun",
-	"Iul", "Aug", "Sep", "Oct", "Nov", "Dec" ],
-	dayNames: [ "Duminică", "Luni", "Marţi", "Miercuri", "Joi", "Vineri", "Sâmbătă" ],
-	dayNamesShort: [ "Dum", "Lun", "Mar", "Mie", "Joi", "Vin", "Sâm" ],
-	dayNamesMin: [ "Du","Lu","Ma","Mi","Jo","Vi","Sâ" ],
-	weekHeader: "Săpt",
-	dateFormat: "dd.mm.yy",
-	firstDay: 1,
-	isRTL: false,
-	showMonthAfterYear: false,
-	yearSuffix: "" };
-datepicker.setDefaults( datepicker.regional.ro );
-
-return datepicker.regional.ro;
-
-} ) );
diff --git a/wiki/inc/lang/ro/lang.php b/wiki/inc/lang/ro/lang.php
deleted file mode 100644
index 69d04ab..0000000
--- a/wiki/inc/lang/ro/lang.php
+++ /dev/null
@@ -1,338 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Tiberiu Micu <tibimicu@gmx.net>
- * @author Sergiu Baltariu <s_baltariu@yahoo.com>
- * @author Emanuel-Emeric Andrași <n30@mandrivausers.ro>
- * @author Emanuel-Emeric Andrași <em.andrasi@mandrivausers.ro>
- * @author Marius OLAR <olarmariusalex@gmail.com>
- * @author Marius Olar <olarmariusalex@yahoo.com>
- * @author Marian Banica <banica.marian@gmail.com>
- * @author Adrian Vesa <adrianvesa@dotwikis.com>
- * @author valentina_prof <sadoveanu.inform@gmail.com>
- */
-$lang['encoding']              = 'utf-8';
-$lang['direction']             = 'ltr';
-$lang['doublequoteopening']    = '„';
-$lang['doublequoteclosing']    = '“';
-$lang['singlequoteopening']    = '‚';
-$lang['singlequoteclosing']    = '‘';
-$lang['apostrophe']            = '’';
-$lang['btn_edit']              = 'Editează această pagină';
-$lang['btn_source']            = 'Arată sursa paginii';
-$lang['btn_show']              = 'Arată pagina';
-$lang['btn_create']            = 'Creează această pagină';
-$lang['btn_search']            = 'Caută';
-$lang['btn_save']              = 'Salvează';
-$lang['btn_preview']           = 'Previzualizează';
-$lang['btn_top']               = 'La început';
-$lang['btn_newer']             = '<< mai recent';
-$lang['btn_older']             = 'mai vechi>>';
-$lang['btn_revs']              = 'Versiuni anterioare';
-$lang['btn_recent']            = 'Modificări recente';
-$lang['btn_upload']            = 'Upload';
-$lang['btn_cancel']            = 'Renunțare';
-$lang['btn_index']             = 'Index';
-$lang['btn_secedit']           = 'Editează';
-$lang['btn_login']             = 'Autentificare';
-$lang['btn_logout']            = 'Deconectare';
-$lang['btn_admin']             = 'Administrativ';
-$lang['btn_update']            = 'Actualizează';
-$lang['btn_delete']            = 'Șterge';
-$lang['btn_back']              = 'ÃŽnapoi';
-$lang['btn_backlink']          = 'Legătură anterioară';
-$lang['btn_subscribe']         = 'Subscrie modificarea paginii';
-$lang['btn_profile']           = 'Actualizează profil';
-$lang['btn_reset']             = 'Resetează';
-$lang['btn_resendpwd']         = 'Configurează o parolă nouă';
-$lang['btn_draft']             = 'Editează schiță';
-$lang['btn_recover']           = 'Recuperează schiță';
-$lang['btn_draftdel']          = 'Șterge schiță';
-$lang['btn_revert']            = 'Revenire';
-$lang['btn_register']          = 'Înregistrează';
-$lang['btn_apply']             = 'Aplică';
-$lang['btn_media']             = 'Administrare media';
-$lang['btn_deleteuser']        = 'Sterge-mi contul';
-$lang['btn_img_backto']        = 'ÃŽnapoi la %s';
-$lang['btn_mediaManager']      = 'Vizualizează în administratorul media';
-$lang['loggedinas']            = 'Autentificat ca:';
-$lang['user']                  = 'Utilizator';
-$lang['pass']                  = 'Parola';
-$lang['newpass']               = 'Parola nouă';
-$lang['oldpass']               = 'Confirmă parola curentă';
-$lang['passchk']               = 'Încă o dată';
-$lang['remember']              = 'Ține-mă minte';
-$lang['fullname']              = 'Nume complet';
-$lang['email']                 = 'E-mail';
-$lang['profile']               = 'Profil utilizator';
-$lang['badlogin']              = 'Ne pare rău, utilizatorul și/sau parola au fost greșite.';
-$lang['badpassconfirm']        = 'Ne pare rau, parola este gresita';
-$lang['minoredit']             = 'Modificare minoră';
-$lang['draftdate']             = 'Schiță salvată automat la';
-$lang['nosecedit']             = 'Pagina s-a modificat între timp, secțiunea info a expirat, s-a încărcat pagina întreagă în loc.';
-$lang['regmissing']            = 'Ne pare rău, trebuie să completezi toate cîmpurile.';
-$lang['reguexists']            = 'Ne pare rău, un utilizator cu acest nume este deja autentificat.';
-$lang['regsuccess']            = 'Utilizatorul a fost creat. Parola a fost trimisă prin e-mail.';
-$lang['regsuccess2']           = 'Utilizatorul a fost creat.';
-$lang['regfail']               = 'Utilizatorul nu a putu fi creat.';
-$lang['regmailfail']           = 'Se pare că a fost o eroare la trimiterea parolei prin e-mail. Contactează administratorul!';
-$lang['regbadmail']            = 'Adresa de e-mail este nevalidă - dacă ești de părere că este o eroare contactează administratorul.';
-$lang['regbadpass']            = 'Cele două parole furnizate nu sunt identice; încearcă din nou.';
-$lang['regpwmail']             = 'Parola ta DokuWiki';
-$lang['reghere']               = 'Încă nu ai un cont? Creează unul!';
-$lang['profna']                = 'Acest wiki nu permite modificarea profilului';
-$lang['profnochange']          = 'Nici o modificare; nimic de făcut.';
-$lang['profnoempty']           = 'Nu sunt permise numele sau adresa de e-mail necompletate.';
-$lang['profchanged']           = 'Profilul de utilizator a fost actualizat cu succes.';
-$lang['profnodelete']          = 'Acest wiki nu accepta stergerea conturilor utilizatorilor';
-$lang['profdeleteuser']        = 'Sterge cont';
-$lang['profdeleted']           = 'Contul tau a fost sters de pe acest wiki';
-$lang['profconfdelete']        = 'As dori sa sterf contul meu de pe acest Wiki. <br/> Aceasta actiune nu poate fi anulata.';
-$lang['proffail']              = 'Profilul utilizatorului nu a fost actualizat.';
-$lang['pwdforget']             = 'Parolă uitată? Obține una nouă!';
-$lang['resendna']              = 'Acest wiki nu permite retrimiterea parolei.';
-$lang['resendpwd']             = 'Configurează o parolă nouă pentru';
-$lang['resendpwdmissing']      = 'Ne pare rău, trebuie completate toate câmpurile.';
-$lang['resendpwdnouser']       = 'Ne pare rău, acest utilizator nu poate fi găsit în baza de date.';
-$lang['resendpwdbadauth']      = 'Ne pare rău, acest cod de autorizare nu este corect. Verifică dacă ai folosit întreg link-ul de confirmare.';
-$lang['resendpwdconfirm']      = 'Un link de confirmare a fost trimis prin e-mail.';
-$lang['resendpwdsuccess']      = 'Noua parolă a fost trimisă prin e-mail.';
-$lang['license']               = 'Exceptând locurile unde este altfel specificat, conținutul acestui wiki este licențiat sub următoarea licență:';
-$lang['licenseok']             = 'Notă: Prin editarea acestei pagini ești de acord să publici conțintul sub următoarea licență:';
-$lang['searchmedia']           = 'Caută numele fișierului:';
-$lang['searchmedia_in']        = 'Caută în %s';
-$lang['txt_upload']            = 'Selectează fișierul de încărcat:';
-$lang['txt_filename']          = 'Încarcă fișierul ca (opțional):';
-$lang['txt_overwrt']           = 'Suprascrie fișierul existent';
-$lang['maxuploadsize']         = 'Incarcare maxima %s per fisier.';
-$lang['lockedby']              = 'Momentan blocat de:';
-$lang['lockexpire']            = 'Blocarea expiră la:';
-$lang['js']['willexpire']      = 'Blocarea pentru editarea paginii expiră intr-un minut.\nPentru a preveni conflictele folosește butonul de previzualizare pentru resetarea blocării.';
-$lang['js']['notsavedyet']     = 'Există modificări nesalvate care se vor pierde.
-Dorești să continui?';
-$lang['js']['searchmedia']     = 'Caută fișiere';
-$lang['js']['keepopen']        = 'Menține fereastra deschisă la selecție';
-$lang['js']['hidedetails']     = 'Ascunde detalii';
-$lang['js']['mediatitle']      = 'Configurare link';
-$lang['js']['mediadisplay']    = 'Tip de link';
-$lang['js']['mediaalign']      = 'Aliniere';
-$lang['js']['mediasize']       = 'Mărime imagine';
-$lang['js']['mediatarget']     = 'Țintă link';
-$lang['js']['mediaclose']      = 'ÃŽnchide';
-$lang['js']['mediainsert']     = 'Inserează';
-$lang['js']['mediadisplayimg'] = 'Afișează imaginea';
-$lang['js']['mediadisplaylnk'] = 'Afișează doar link-ul';
-$lang['js']['mediasmall']      = 'Versiune mică';
-$lang['js']['mediamedium']     = 'Versiune medie';
-$lang['js']['medialarge']      = 'Versiune mare';
-$lang['js']['mediaoriginal']   = 'Versiune inițială';
-$lang['js']['medialnk']        = 'Link către pagina detaliilor';
-$lang['js']['mediadirect']     = 'Link direct către versiunea inițială';
-$lang['js']['medianolnk']      = 'Fără link';
-$lang['js']['medianolink']     = 'Nu crea link către imagine';
-$lang['js']['medialeft']       = 'Aliniază imaginea la stânga';
-$lang['js']['mediaright']      = 'Aliniază imaginea la dreapta';
-$lang['js']['mediacenter']     = 'Aliniază imaginea la centru';
-$lang['js']['medianoalign']    = 'Nu utiliza aliniere';
-$lang['js']['nosmblinks']      = 'Link-urile către sharing-uri Windows funcționeaza numai în Microsoft Internet Explorer.
-Poți însă copia și insera link-ul.';
-$lang['js']['linkwiz']         = 'Asistent legătură';
-$lang['js']['linkto']          = 'Legătură la:';
-$lang['js']['del_confirm']     = 'Ești sigur de ștergerea elementele selectate?';
-$lang['js']['restore_confirm'] = 'Ești sigur de restaurarea acestei versiuni?';
-$lang['js']['media_diff']      = 'Arată diferențele:';
-$lang['js']['media_diff_both'] = 'Unul lângă altul';
-$lang['js']['media_diff_opacity'] = 'Străveziu';
-$lang['js']['media_diff_portions'] = 'Glisează';
-$lang['js']['media_select']    = 'Selectează fișierele...';
-$lang['js']['media_upload_btn'] = 'Încarcă';
-$lang['js']['media_done_btn']  = 'Gata';
-$lang['js']['media_drop']      = 'Lasă fișierele aici pentru încărcarea lor';
-$lang['js']['media_cancel']    = 'Înlătură';
-$lang['js']['media_overwrt']   = 'Suprascrie fișierele deja existente';
-$lang['rssfailed']             = 'A apărut o eroare in timpul descărcării acestui câmp: ';
-$lang['nothingfound']          = 'Nu am găsit nimic.';
-$lang['mediaselect']           = 'Fișiere media';
-$lang['uploadsucc']            = 'Încărcare reușită';
-$lang['uploadfail']            = 'Încărcare eșuată. Poate din cauza permisiunilor?';
-$lang['uploadwrong']           = 'Încărcare nepermisă. Extensia fișierului e nepermisă';
-$lang['uploadexist']           = 'Fișierul există deja. Nimic nu a fost făcut.';
-$lang['uploadbadcontent']      = 'Conținutul încărcat nu corespunde extensiei fișierului %s.';
-$lang['uploadspam']            = 'Încărcarea a fost blocată din cauza listei negre de spam.';
-$lang['uploadxss']             = 'Încărcarea a fost blocată din cauza unui posibil conținut dăunător.';
-$lang['uploadsize']            = 'Fișierul uploadat a fost prea mare. (max %s)';
-$lang['deletesucc']            = 'Fișierul "%s" a fost șters.';
-$lang['deletefail']            = '"%s" nu a putut fi șters - verifică permisiunile.';
-$lang['mediainuse']            = 'Fișierul "%s" nu a fost șters - este încă în uz.';
-$lang['namespaces']            = 'Spații de nume';
-$lang['mediafiles']            = 'Fișiere disponibile în';
-$lang['accessdenied']          = 'Nu îți este permis să vizualizezi această pagină.';
-$lang['mediausage']            = 'Folosește următoarea sintaxă pentru a face referință la acest fișier:';
-$lang['mediaview']             = 'Vizualizează fișierul inițial';
-$lang['mediaroot']             = 'root';
-$lang['mediaupload']           = 'Încarcă un fișier in acest spațiu de nume. Pentru a crea sub-spații de nume, adaugă-le la fișierul de încărcat, separate de doua puncte (:).';
-$lang['mediaextchange']        = 'Extensia fișierului a fost modificată din .%s în .%s.';
-$lang['reference']             = 'Referință pentru';
-$lang['ref_inuse']             = 'Fișierul nu a putut fi șters întrucât este folosit de următoarele pagini:';
-$lang['ref_hidden']            = 'Nu ai permisiunea să citești o parte din referințele din pagină.';
-$lang['hits']                  = 'Accese';
-$lang['quickhits']             = 'Nume de pagini potrivite';
-$lang['toc']                   = 'Cuprins';
-$lang['current']               = 'curent';
-$lang['yours']                 = 'Versiunea ta';
-$lang['diff']                  = 'Arată diferențele față de versiunea curentă';
-$lang['diff2']                 = 'Arată diferențele dintre versiunile selectate';
-$lang['difflink']              = 'Link către această vizualizare comparativă';
-$lang['diff_type']             = 'Vezi diferențe:';
-$lang['diff_inline']           = 'Succesiv';
-$lang['diff_side']             = 'Alăturate';
-$lang['diffprevrev']           = 'Versiuni anterioare';
-$lang['diffnextrev']           = 'Urmatoarea versiune';
-$lang['difflastrev']           = 'Ultima versiune';
-$lang['line']                  = 'Linia';
-$lang['breadcrumb']            = 'Traseu:';
-$lang['youarehere']            = 'Ești aici:';
-$lang['lastmod']               = 'Ultima modificare:';
-$lang['by']                    = 'de către';
-$lang['deleted']               = 'șters';
-$lang['created']               = 'creat';
-$lang['restored']              = 'versiune veche restaurată (%s)';
-$lang['external_edit']         = 'editare externă';
-$lang['summary']               = 'Editează sumarul';
-$lang['noflash']               = 'Plugin-ul <a href="http://www.adobe.com/products/flashplayer/">Adobe Flash Plugin</a> este necesar pentru afișarea corectă a conținutului.';
-$lang['download']              = 'Bloc descărcări';
-$lang['tools']                 = 'Unelte';
-$lang['user_tools']            = 'Unelte utilizator';
-$lang['site_tools']            = 'Unelte site';
-$lang['page_tools']            = 'Unelte pagină';
-$lang['skip_to_content']       = 'mergi la conținut';
-$lang['mail_newpage']          = 'pagină adăugată:';
-$lang['mail_changed']          = 'pagină schimbată:';
-$lang['mail_subscribe_list']   = 'pagini modificate în spațiul de nume:';
-$lang['mail_new_user']         = 'utilizator nou';
-$lang['mail_upload']           = 'fișier încărcat:';
-$lang['changes_type']          = 'Vizualizare modificări';
-$lang['pages_changes']         = 'Pagini';
-$lang['media_changes']         = 'Fișiere media';
-$lang['both_changes']          = 'Ambele pagini și fișiere media';
-$lang['qb_bold']               = 'Text aldin';
-$lang['qb_italic']             = 'Text cursiv';
-$lang['qb_underl']             = 'Text subliniat';
-$lang['qb_code']               = 'Text cod';
-$lang['qb_strike']             = 'Text tăiat';
-$lang['qb_h1']                 = 'Titlu de nivel 1';
-$lang['qb_h2']                 = 'Titlu de nivel 2';
-$lang['qb_h3']                 = 'Titlu de nivel 3';
-$lang['qb_h4']                 = 'Titlu de nivel 4';
-$lang['qb_h5']                 = 'Titlu de nivel 5';
-$lang['qb_h']                  = 'Titlu';
-$lang['qb_hs']                 = 'Selectează titlul';
-$lang['qb_hplus']              = 'Titlu mai mare';
-$lang['qb_hminus']             = 'Titlu mai mic';
-$lang['qb_hequal']             = 'Titlu de același nivel';
-$lang['qb_link']               = 'Link intern';
-$lang['qb_extlink']            = 'Link extern';
-$lang['qb_hr']                 = 'Linie orizontală';
-$lang['qb_ol']                 = 'Listă ordonată';
-$lang['qb_ul']                 = 'Listă neordoată';
-$lang['qb_media']              = 'Adaugă imagini și alte fișiere';
-$lang['qb_sig']                = 'Inserează semnătură';
-$lang['qb_smileys']            = 'Smiley-uri';
-$lang['qb_chars']              = 'Caractere speciale';
-$lang['upperns']               = 'Accesează spațiul de nume părinte';
-$lang['metaedit']              = 'Editează metadata';
-$lang['metasaveerr']           = 'Scrierea metadatelor a eșuat';
-$lang['metasaveok']            = 'Metadatele au fost salvate';
-$lang['img_title']             = 'Titlu:';
-$lang['img_caption']           = 'Legendă:';
-$lang['img_date']              = 'Dată:';
-$lang['img_fname']             = 'Nume fișier:';
-$lang['img_fsize']             = 'Dimensiune:';
-$lang['img_artist']            = 'Fotograf:';
-$lang['img_copyr']             = 'Drept de autor:';
-$lang['img_format']            = 'Format:';
-$lang['img_camera']            = 'Camera:';
-$lang['img_keywords']          = 'Cuvinte cheie:';
-$lang['img_width']             = 'Lățime:';
-$lang['img_height']            = 'Înălțime:';
-$lang['subscr_subscribe_success'] = 'Adăugat %s la lista de abonare pentru %s';
-$lang['subscr_subscribe_error'] = 'Eroare la adăugarea %s la lista de abonare pentru %s';
-$lang['subscr_subscribe_noaddress'] = 'Nu există adresă de e-mail asociată autentificării curente, nu poți fi adăugat la lista de abonare';
-$lang['subscr_unsubscribe_success'] = 'Șters %s din lista de abonare pentru %s';
-$lang['subscr_unsubscribe_error'] = 'Eroare la ștergerea %s din lista de abonare pentru %s';
-$lang['subscr_already_subscribed'] = '%s este deja abonat la %s';
-$lang['subscr_not_subscribed'] = '%s nu este abonat la %s';
-$lang['subscr_m_not_subscribed'] = 'Momentan nu ești abonat la pagina curentă sau la spațiul de nume.';
-$lang['subscr_m_new_header']   = 'Adaugă abonare';
-$lang['subscr_m_current_header'] = 'Abonări curente';
-$lang['subscr_m_unsubscribe']  = 'Dezabonează-te';
-$lang['subscr_m_subscribe']    = 'Abonează-te';
-$lang['subscr_m_receive']      = 'Primește';
-$lang['subscr_style_every']    = 'e-mail la ficare schimbare';
-$lang['subscr_style_digest']   = 'e-mail cu sumar al modificărilor pentru fiecare pagină (la fiecare %.2f zile)';
-$lang['subscr_style_list']     = 'lista paginilor modificate de la ultimul e-mail (la fiecare %.2f zile)';
-$lang['authtempfail']          = 'Autentificarea utilizatorului este temporar indisponibilă. Contactează administratorul.';
-$lang['i_chooselang']          = 'Alege limba';
-$lang['i_installer']           = 'Installer DokuWiki';
-$lang['i_wikiname']            = 'Numele acestui wiki';
-$lang['i_enableacl']           = 'Activează ACL (liste de control a accesului) (recomandat)';
-$lang['i_superuser']           = 'Utilizator privilegiat';
-$lang['i_problems']            = 'Programul de instalare a găsit câteva probleme, indicate mai jos. Nu poți continua până nu le rezolvi.';
-$lang['i_modified']            = 'Din motive de securitate, acest script va funcționa doar cu o instalare nouă și nemodificată a DokuWiki.
-Poți fie să extragi din nou fișierele din arhiva descărcată fie să consulți instrucțiunile de instalare DokuWiki la <a href="http://dokuwiki.org/install">';
-$lang['i_funcna']              = 'Funcția PHP <code>%s</code> nu este disponibilă. Probabil provider-ul tău a dezactivat-o pentru un motiv anume.';
-$lang['i_phpver']              = 'Versiunea ta de PHP <code>%s</code> este mai veche decât cea necesară (<code>%s</code>). Trebuie să îți actualizezi instalarea PHP.';
-$lang['i_permfail']            = '<code>%s</code> nu poate fi scris de către DokuWiki. Trebuie să modifici permisiunile pe acest director.';
-$lang['i_confexists']          = '<code>%s</code> există deja';
-$lang['i_writeerr']            = 'Nu s-a putut crea <code>%s</code>. Trebuie să verifici permisiunile directorului/fișierului și să creezi fișierul manual.';
-$lang['i_badhash']             = 'dokuwiki.php nu a fost recunoscut sau a fost modificat (hash=<code>%s</code>)';
-$lang['i_badval']              = '<code>%s</code> - valoare nepemisă sau neintrodusă';
-$lang['i_success']             = 'Configurarea a fost finalizată cu succes. Acum poți sterge fișierul install.php. Poți accesa <a href="doku.php?id=wiki:welcome">noua ta instanță DokuWiki</a>.';
-$lang['i_failure']             = 'Au apărut erori la scrierea fișierelor de configurare. Va trebui să le corectezi manual înainte de a putea folosi <a href="doku.php?id=wiki:welcome">noua ta instanță DokuWiki</a>.';
-$lang['i_policy']              = 'Politica ACL (liste de control a accesului) inițială';
-$lang['i_pol0']                = 'Wiki deschis (oricine poate citi, scrie și încărca fișiere)';
-$lang['i_pol1']                = 'Wiki public (oricine poate citi, utilizatorii înregistrați pot scrie și încărca fișiere)';
-$lang['i_pol2']                = 'Wiki închis (doar utilizatorii înregistrați pot citi, scrie și încărca fișiere)';
-$lang['i_allowreg']            = 'Permite utilizatorilor sa se inregistreze singuri.';
-$lang['i_retry']               = 'Încearcă din nou';
-$lang['i_license']             = 'Te rugăm să alegi licența sub care dorești să publici conținutul:';
-$lang['i_license_none']        = 'Nu arata nici o informatie despre licenta.';
-$lang['i_pop_field']           = 'Te rog, ajuta-ne sa imbunatatim experienta DokuWiki.';
-$lang['i_pop_label']           = 'Odata pe luna, trimite date catre dezvoltatorii DokuWiki in mod anonim.';
-$lang['recent_global']         = 'În acest moment vizualizezi modificările în interiorul spațiului de nume <b>%s</b>. De asemenea poți <a href="%s">vizualiza modificările recente în întregului wiki-ul</a>.';
-$lang['years']                 = 'acum %d ani';
-$lang['months']                = 'acum %d luni';
-$lang['weeks']                 = 'acum %d săptămâni';
-$lang['days']                  = 'acum %d zile';
-$lang['hours']                 = 'acum %d ore';
-$lang['minutes']               = 'acum %d minute';
-$lang['seconds']               = 'acum %d secunde';
-$lang['wordblock']             = 'Modificarea ta nu a fost salvată deoarece conține text blocat (spam).';
-$lang['media_uploadtab']       = 'Încărcare fișier';
-$lang['media_searchtab']       = 'Căutare';
-$lang['media_file']            = 'Fișier';
-$lang['media_viewtab']         = 'Vizualizare';
-$lang['media_edittab']         = 'Editare';
-$lang['media_historytab']      = 'Istoric';
-$lang['media_list_thumbs']     = 'Miniaturi';
-$lang['media_list_rows']       = 'Linii';
-$lang['media_sort_name']       = 'Nume';
-$lang['media_sort_date']       = 'Dată';
-$lang['media_namespaces']      = 'Alege spațiul de nume';
-$lang['media_files']           = 'Fișiere în %s';
-$lang['media_upload']          = 'Încărcare în %s';
-$lang['media_search']          = 'Cautare în %s';
-$lang['media_view']            = '%s';
-$lang['media_viewold']         = '%s în %s';
-$lang['media_edit']            = 'Editare %s';
-$lang['media_history']         = 'Istoricul pentru %s';
-$lang['media_meta_edited']     = 'metadate editate';
-$lang['media_perm_read']       = 'Ne pare rău, dar nu ai suficiente permisiuni pentru a putea citi fișiere.';
-$lang['media_perm_upload']     = 'Ne pare rău, dar nu ai suficiente permisiuni pentru a putea încărca fișiere.';
-$lang['media_update']          = 'Încarcă noua versiune';
-$lang['media_restore']         = 'Restaurează această versiune';
-$lang['searchresult']          = 'Rezultatul cautarii';
-$lang['email_signature_text']  = 'Acest e-mail a fost generat de DokuWiki la
-@DOKUWIKIURL@';
diff --git a/wiki/inc/lang/ro/locked.txt b/wiki/inc/lang/ro/locked.txt
deleted file mode 100644
index d1e80ad..0000000
--- a/wiki/inc/lang/ro/locked.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Pagină blocată ======
-
-Pagina este momentan blocată de alt utilizator. Trebuie să aștepți pînă când
-acest utilizator termină editarea sau până când expiră blocarea.
diff --git a/wiki/inc/lang/ro/login.txt b/wiki/inc/lang/ro/login.txt
deleted file mode 100644
index 7de38f6..0000000
--- a/wiki/inc/lang/ro/login.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Autentificare ======
-
-Nu ești autentificat! Introdu datele de autentificare. Pentru ca
-autentificarea să funcționeze trebuie să fie permise cookie-urile în browser.
diff --git a/wiki/inc/lang/ro/mailtext.txt b/wiki/inc/lang/ro/mailtext.txt
deleted file mode 100644
index 14a1538..0000000
--- a/wiki/inc/lang/ro/mailtext.txt
+++ /dev/null
@@ -1,13 +0,0 @@
-Salutare, @FULLNAME@!
-
-A fost adăugată sau modificată o pagină. Aici sunt detaliile:
-
-Dată        : @DATE@
-Browser   : @BROWSER@
-Adresă IP   : @IPADDRESS@
-Hostname  : @HOSTNAME@
-Versiune anterioară : @OLDPAGE@
-Versiune curentă  : @NEWPAGE@
-Sumar editare: @SUMMARY@
-
-@DIFF@
diff --git a/wiki/inc/lang/ro/newpage.txt b/wiki/inc/lang/ro/newpage.txt
deleted file mode 100644
index 2ef3513..0000000
--- a/wiki/inc/lang/ro/newpage.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Pagina nu există încă ======
-
-Ai urmat o legătură către o pagină care nu există. O poti crea prin apăsarea butonului ''Editează această pagină''.
diff --git a/wiki/inc/lang/ro/norev.txt b/wiki/inc/lang/ro/norev.txt
deleted file mode 100644
index 08bbb74..0000000
--- a/wiki/inc/lang/ro/norev.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Nu există versiunea paginii ======
-
-Versiunea indicată nu există. Folosește butonul ''Versiuni anterioare'' pentru
-o listă a versiunilor acestei pagini.
diff --git a/wiki/inc/lang/ro/password.txt b/wiki/inc/lang/ro/password.txt
deleted file mode 100644
index 3f8ae24..0000000
--- a/wiki/inc/lang/ro/password.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-Salutare, @FULLNAME@!
-
-Aici se găsesc credențialele de utilizator pentru @TITLE@ la @DOKUWIKIURL@
-
-Login    : @LOGIN@
-Parola   : @PASSWORD@
diff --git a/wiki/inc/lang/ro/preview.txt b/wiki/inc/lang/ro/preview.txt
deleted file mode 100644
index c89d197..0000000
--- a/wiki/inc/lang/ro/preview.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Previzualizare ======
-
-Acesta este modul în care va arăta textul. Ai în vedere: **Nu** e încă **salvat**!
diff --git a/wiki/inc/lang/ro/pwconfirm.txt b/wiki/inc/lang/ro/pwconfirm.txt
deleted file mode 100644
index 1123b8b..0000000
--- a/wiki/inc/lang/ro/pwconfirm.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-Salutare, @FULLNAME@!
-
-Cineva a cerut o parolă nouă pentru @TITLE@ pentru conectarea la
-@DOKUWIKIURL@.
-
-Dacă nu ai solicitat o parolă nouă, ignoră acest e-mail.
-
-Pentru a confirma că cererea a fost într-adevăr trimisă de tine, folosește link-ul de mai jos.
-
-@CONFIRM@
diff --git a/wiki/inc/lang/ro/read.txt b/wiki/inc/lang/ro/read.txt
deleted file mode 100644
index 442188f..0000000
--- a/wiki/inc/lang/ro/read.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-Această pagină poate fi doar citită. Poți vedea sursa, dar nu poți modifica
-pagina. Consultă administratorul dacă ești de părere că ceva este în neregulă.
diff --git a/wiki/inc/lang/ro/recent.txt b/wiki/inc/lang/ro/recent.txt
deleted file mode 100644
index e92ca8f..0000000
--- a/wiki/inc/lang/ro/recent.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Modificări recente ======
-
-Următoarele pagini au fost modificate recent.
diff --git a/wiki/inc/lang/ro/register.txt b/wiki/inc/lang/ro/register.txt
deleted file mode 100644
index 1a6ef25..0000000
--- a/wiki/inc/lang/ro/register.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Înregistrează-te ca utilizator nou ======
-
-Pentru a crea un wiki nou completează mai jos toate informațiile. Asigură-te
-că ai introdus o adresă de e-mail **validă** unde va fi trimisă noua parolă. Numele de utilizator trebuie de asemenea să fie valid [[doku>pagename|pagename]].
diff --git a/wiki/inc/lang/ro/registermail.txt b/wiki/inc/lang/ro/registermail.txt
deleted file mode 100644
index 599deab..0000000
--- a/wiki/inc/lang/ro/registermail.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-Salutare, @FULLNAME@!
-
-Un nou utilizator s-a înregistrat. Iată detaliile:
-
-Nume de utilizator : @NEWUSER@
-Nume complet : @NEWNAME@
-E-mail : @NEWEMAIL@
-Dată : @DATE@
-Browser : @BROWSER@
-Adresă IP : @IPADDRESS@
-Hostname : @HOSTNAME@
diff --git a/wiki/inc/lang/ro/resendpwd.txt b/wiki/inc/lang/ro/resendpwd.txt
deleted file mode 100644
index 24d995e..0000000
--- a/wiki/inc/lang/ro/resendpwd.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== Trimite parolă nouă ======
-
-Introduc numele de utilizator în formularul de mai jos pentru a solicita o
-nouă parolă pentru aceast wiki. Un link de confirmare va fi trimis la adresa
-de e-mail înregistrată.
diff --git a/wiki/inc/lang/ro/resetpwd.txt b/wiki/inc/lang/ro/resetpwd.txt
deleted file mode 100644
index 9cea53c..0000000
--- a/wiki/inc/lang/ro/resetpwd.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Configurează o parolă nouă ======
-
-Te rog să introduci o parolă nouă pentru contul tău de pe acest wiki.
diff --git a/wiki/inc/lang/ro/revisions.txt b/wiki/inc/lang/ro/revisions.txt
deleted file mode 100644
index 7cafaf0..0000000
--- a/wiki/inc/lang/ro/revisions.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== Versiune anterioară ======
-
-Acestea sunt versiunile anterioare ale paginii curente. Pentru revenirea la o
-versiune anteroară, selectează versiunea de mai jos, clic pe ''Editează
-această pagină'' și salvează versiunea.
diff --git a/wiki/inc/lang/ro/searchpage.txt b/wiki/inc/lang/ro/searchpage.txt
deleted file mode 100644
index 5b262fe..0000000
--- a/wiki/inc/lang/ro/searchpage.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Căutare ======
-
-Rezultatele căutării sunt afișate mai jos. @CREATEPAGEINFO@
-
diff --git a/wiki/inc/lang/ro/showrev.txt b/wiki/inc/lang/ro/showrev.txt
deleted file mode 100644
index 4c76fd4..0000000
--- a/wiki/inc/lang/ro/showrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**Aceasta e o versiune anterioară a paginii.**
-----
diff --git a/wiki/inc/lang/ro/stopwords.txt b/wiki/inc/lang/ro/stopwords.txt
deleted file mode 100644
index adcd7ef..0000000
--- a/wiki/inc/lang/ro/stopwords.txt
+++ /dev/null
@@ -1,31 +0,0 @@
-# Aceasta este o listă de cuvinte ignorate la indexare, câte un cuvânt pe linie
-# Când editezi acest fișier, asigură-te că folosești sfârșituri de linie UNIX
-# (o singură linie nouă).
-# Nu e nevoie să incluzi cuvinte mai scurte de 3 caractere - acestea sunt,
-# oricum, ignorate.
-# Această listă se bazează pe cele ce pot fi găsite la http://www.ranks.nl/stopwords/
-about
-are
-and
-you
-your
-them
-their
-com
-for
-from
-into
-how
-that
-the
-this
-was
-what
-when
-where
-who
-will
-with
-und
-the
-www
diff --git a/wiki/inc/lang/ro/subscr_digest.txt b/wiki/inc/lang/ro/subscr_digest.txt
deleted file mode 100644
index 4e661b6..0000000
--- a/wiki/inc/lang/ro/subscr_digest.txt
+++ /dev/null
@@ -1,16 +0,0 @@
-Salutare, @FULLNAME@!
-
-Pagina @PAGE@ în @TITLE@ wiki a fost modificată.
-Acestea sunt modificările:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-Versiune anterioară: @OLDPAGE@
-Versiune curentă: @NEWPAGE@
-
-Pentru a anula notificarea paginii, autentifică-te pe wiki la
-@DOKUWIKIURL@ apoi accesează
-@SUBSCRIBE@
-și dezabonează-te de la pagină și/sau modificările spațiului de nume.
diff --git a/wiki/inc/lang/ro/subscr_form.txt b/wiki/inc/lang/ro/subscr_form.txt
deleted file mode 100644
index c198caf..0000000
--- a/wiki/inc/lang/ro/subscr_form.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Administrarea abonărilor ======
-
-Această pagină îți permite să îți administrăzi abonările pentru pagina curentă
-și pentru spațiul de nume.
diff --git a/wiki/inc/lang/ro/subscr_list.txt b/wiki/inc/lang/ro/subscr_list.txt
deleted file mode 100644
index c561478..0000000
--- a/wiki/inc/lang/ro/subscr_list.txt
+++ /dev/null
@@ -1,13 +0,0 @@
-Salutare, @FULLNAME@!
-
-Paginile din spațiul de nume @PAGE@ al @TITLE@ wiki au fost modificate.
-Modificările sunt următoarele:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-Pentru a anula notificarea paginii, autentificcă-te pe wiki la
-@DOKUWIKIURL@ apoi accesează
-@SUBSCRIBE@
-și dezabonează-te de la pagină și/sau modificările spațiului de nume.
diff --git a/wiki/inc/lang/ro/subscr_single.txt b/wiki/inc/lang/ro/subscr_single.txt
deleted file mode 100644
index 6f8b2f9..0000000
--- a/wiki/inc/lang/ro/subscr_single.txt
+++ /dev/null
@@ -1,19 +0,0 @@
-Salutare, @FULLNAME@!
-
-Pagina @PAGE@ în @TITLE@ wiki a fost modificată.
-Modificările sunt următoarele:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-Dată: @DATE@
-Utilizator: @USER@
-Sumarul editării: @SUMMARY@
-Versiune anterioară: @OLDPAGE@
-Versiune curentă: @NEWPAGE@
-
-Pentru a anula notificarea paginii, autentificcă-te pe wiki la
-@DOKUWIKIURL@ apoi accesează
-@SUBSCRIBE@
-și dezabonează-te de la pagină și/sau modificările spațiului de nume.
diff --git a/wiki/inc/lang/ro/updateprofile.txt b/wiki/inc/lang/ro/updateprofile.txt
deleted file mode 100644
index de43c69..0000000
--- a/wiki/inc/lang/ro/updateprofile.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Actualizare profil utilizator ======
-
-Trebuie să completezi doar câmpurile pe care dorești să le modifici. Nu poți
-modifica numele de utilizator.
diff --git a/wiki/inc/lang/ro/uploadmail.txt b/wiki/inc/lang/ro/uploadmail.txt
deleted file mode 100644
index cf8e8e0..0000000
--- a/wiki/inc/lang/ro/uploadmail.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-Salutare, @FULLNAME@!
-
-Un fișier a fost încărcat în DokuWiki. Iată detaliile:
-
-Fișier : @MEDIA@
-Dată : @DATE@
-Browser : @BROWSER@
-Adresă IP : @IPADDRESS@
-Hostname : @HOSTNAME@
-Dimensiune : @SIZE@
-MIME Type : @MIME@
-Utilizator : @USER@
diff --git a/wiki/inc/lang/ru/admin.txt b/wiki/inc/lang/ru/admin.txt
deleted file mode 100644
index 8a670d5..0000000
--- a/wiki/inc/lang/ru/admin.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Управление ======
-
-Ðиже вы Ñможете найти ÑпиÑок админиÑтративных операций, доÑтупных в «Докувики».
-
diff --git a/wiki/inc/lang/ru/adminplugins.txt b/wiki/inc/lang/ru/adminplugins.txt
deleted file mode 100644
index 6e3fc26..0000000
--- a/wiki/inc/lang/ru/adminplugins.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Дополнительные плагины =====
\ No newline at end of file
diff --git a/wiki/inc/lang/ru/backlinks.txt b/wiki/inc/lang/ru/backlinks.txt
deleted file mode 100644
index a3b638d..0000000
--- a/wiki/inc/lang/ru/backlinks.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Обратные ÑÑылки ======
-
-Это ÑпиÑок Ñтраниц, которые ÑÑылаютÑÑ Ð½Ð° текущую Ñтраницу.
-
diff --git a/wiki/inc/lang/ru/conflict.txt b/wiki/inc/lang/ru/conflict.txt
deleted file mode 100644
index e813d8c..0000000
--- a/wiki/inc/lang/ru/conflict.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== СущеÑтвует более Ð½Ð¾Ð²Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ ======
-
-СущеÑтвует более Ð½Ð¾Ð²Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ð°, который вы редактировали. Такое ÑлучаетÑÑ, когда другой пользователь изменил документ, пока вы делали то же Ñамое.
-
-Внимательно изучите различиÑ, приведенные ниже, и решите, какую верÑию оÑтавить. ЕÑли вы выберете «Сохранить», то ваша верÑÐ¸Ñ Ð±ÑƒÐ´ÐµÑ‚ Ñохранена. Ðажав «Отменить», вы оÑтавите текущую верÑию.
diff --git a/wiki/inc/lang/ru/denied.txt b/wiki/inc/lang/ru/denied.txt
deleted file mode 100644
index 791b30b..0000000
--- a/wiki/inc/lang/ru/denied.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== ДоÑтуп запрещён ======
-
-Извините, ÑƒÂ Ð²Ð°Ñ Ð½ÐµÂ Ñ…Ð²Ð°Ñ‚Ð°ÐµÑ‚ прав Ð´Ð»Ñ Ñтого дейÑтвиÑ.
-
diff --git a/wiki/inc/lang/ru/diff.txt b/wiki/inc/lang/ru/diff.txt
deleted file mode 100644
index 21b8a8e..0000000
--- a/wiki/inc/lang/ru/diff.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Ð Ð°Ð·Ð»Ð¸Ñ‡Ð¸Ñ ======
-
-ЗдеÑÑŒ показаны Ñ€Ð°Ð·Ð»Ð¸Ñ‡Ð¸Ñ Ð¼ÐµÐ¶Ð´Ñƒ Ð´Ð²ÑƒÐ¼Ñ Ð²ÐµÑ€ÑиÑми данной Ñтраницы.
diff --git a/wiki/inc/lang/ru/draft.txt b/wiki/inc/lang/ru/draft.txt
deleted file mode 100644
index a92aa34..0000000
--- a/wiki/inc/lang/ru/draft.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== Ðайден черновик ======
-
-ПоÑледний раз редактирование Ñтой Ñтраницы не было корректно завершено. Ð’Ð¾Â Ð²Ñ€ÐµÐ¼Ñ Ð²Ð°ÑˆÐµÐ¹ работы был автоматичеÑки Ñохранён черновик, который вы теперь можете воÑÑтановить и продолжить прерванную правку. Ðиже вы видите автоматичеÑки Ñохранённую верÑию.
-
-ПожалуйÑта, решите, хотите ли вы //воÑÑтановить// потерÑнную верÑию, //удалить// черновик, или //отменить// редактирование.
diff --git a/wiki/inc/lang/ru/edit.txt b/wiki/inc/lang/ru/edit.txt
deleted file mode 100644
index 25ded41..0000000
--- a/wiki/inc/lang/ru/edit.txt
+++ /dev/null
@@ -1 +0,0 @@
-Отредактируйте Ñтраницу и нажмите «Сохранить». Прочтите [[wiki:syntax|Ñправочную Ñтраницу]] Ð´Ð»Ñ Ð¾Ð·Ð½Ð°ÐºÐ¾Ð¼Ð»ÐµÐ½Ð¸Ñ Ñ ÑинтакÑиÑом вики. ПожалуйÑта, редактируйте только в том Ñлучае, еÑли планируете **улучшить** Ñодержимое. ЕÑли вы проÑто хотите потеÑтировать что-либо, воÑпользуйтеÑÑŒ Ñпециальной Ñтраницей: [[playground:playground]].
diff --git a/wiki/inc/lang/ru/editrev.txt b/wiki/inc/lang/ru/editrev.txt
deleted file mode 100644
index d46f07b..0000000
--- a/wiki/inc/lang/ru/editrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**Вы загрузили Ñтарую ревизию документа!** Сохранив её, вы Ñоздадите новую текущую верÑию Ñ Ñтим Ñодержимым.
-----
diff --git a/wiki/inc/lang/ru/index.txt b/wiki/inc/lang/ru/index.txt
deleted file mode 100644
index a059b28..0000000
--- a/wiki/inc/lang/ru/index.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Содержание ======
-
-Перед вами ÑпиÑок доÑтупных Ñтраниц, упорÑдоченный по [[doku>namespaces|проÑтранÑтвам имён]].
-
diff --git a/wiki/inc/lang/ru/install.html b/wiki/inc/lang/ru/install.html
deleted file mode 100644
index c1c58fa..0000000
--- a/wiki/inc/lang/ru/install.html
+++ /dev/null
@@ -1,7 +0,0 @@
-<p>Эта Ñтраница предназначена помочь в первоначальной уÑтановке и конфигурации «<a href="http://www.dokuwiki.org/">ДокуВики</a>». Ð”Ð¾Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð°Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾Â Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¼Ðµ уÑтановки доÑтупна на её <a href="http://www.dokuwiki.org/installer">Ñтранице документации</a>.</p>
-
-<p>«ДокуВики» иÑпользует обычные файлы Ð´Ð»Ñ Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ñтраниц и дополнительной информации (например, изображений, поиÑкового индекÑа, предыдущих верÑий Ñтраницы, и т. д.). Ð”Ð»Ñ ÑƒÑпешной работы «ДокуВики» <strong>необходим</strong> доÑтуп на запиÑÑŒ к директориÑм Ñ Ñтими файлами. Ð”Ð°Ð½Ð½Ð°Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¼Ð° уÑтановки не может ÑамоÑтоÑтельно изменÑть ÑиÑтемные права доÑтупа к директориÑм. Обычно Ñто делаетÑÑ Ð½Ð°Ð¿Ñ€Ñмую из командной Ñтроки (shell), или, еÑли вы иÑпользуете удалённый хоÑтинг, через FTP или панель ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ñвоего хоÑтинга (например, cPanel).</p>
-
-<p>Программа уÑтановки включит иÑпользование ÑпиÑков ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»Ñ Ð´Ð¾Ñтупа (<abbr title="access control list">ACL</abbr>) в вашей «ДокуВики». Это позволит админиÑтратору, поÑле авторизации в «ДокуВики», иÑпользовать Ñпециальное меню Ð´Ð»Ñ ÑƒÑтановки плагинов, ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñми и доÑтупом к Ñтраницам вики, а также Ð´Ð»Ñ Ð½Ð°Ñтройки конфигурационных параметров. СпиÑки ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»Ñ Ð´Ð¾Ñтупа не обÑзательны Ð´Ð»Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹ «ДокуВики», однако они позволÑÑŽÑ‚ упроÑтить управление вашей «ДокуВики».</p>
-
-<p>Опытным пользователÑм и пользователÑм Ñо Ñпециальными требованиÑми к уÑтановке рекомендуетÑÑ Ð¾Ð±Ñ€Ð°Ñ‚Ð¸Ñ‚ÑŒÑÑ Ð¿Ð¾Â Ñледующим ÑÑылкам Ð´Ð»Ñ ÑƒÑ‚Ð¾Ñ‡Ð½ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð´Ñ€Ð¾Ð±Ð½Ð¾Ñтей <a href="http://www.dokuwiki.org/install">процеÑÑа уÑтановки</a> и <a href="http://www.dokuwiki.org/config">параметров конфигурации</a>.</p>
diff --git a/wiki/inc/lang/ru/jquery.ui.datepicker.js b/wiki/inc/lang/ru/jquery.ui.datepicker.js
deleted file mode 100644
index 223e776..0000000
--- a/wiki/inc/lang/ru/jquery.ui.datepicker.js
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Russian (UTF-8) initialisation for the jQuery UI date picker plugin. */
-/* Written by Andrew Stromnov (stromnov@gmail.com). */
-( function( factory ) {
-	if ( typeof define === "function" && define.amd ) {
-
-		// AMD. Register as an anonymous module.
-		define( [ "../widgets/datepicker" ], factory );
-	} else {
-
-		// Browser globals
-		factory( jQuery.datepicker );
-	}
-}( function( datepicker ) {
-
-datepicker.regional.ru = {
-	closeText: "Закрыть",
-	prevText: "&#x3C;Пред",
-	nextText: "След&#x3E;",
-	currentText: "СегоднÑ",
-	monthNames: [ "Январь","Февраль","Март","Ðпрель","Май","Июнь",
-	"Июль","ÐвгуÑÑ‚","СентÑбрь","ОктÑбрь","ÐоÑбрь","Декабрь" ],
-	monthNamesShort: [ "Янв","Фев","Мар","Ðпр","Май","Июн",
-	"Июл","Ðвг","Сен","Окт","ÐоÑ","Дек" ],
-	dayNames: [ "воÑкреÑенье","понедельник","вторник","Ñреда","четверг","пÑтница","Ñуббота" ],
-	dayNamesShort: [ "вÑк","пнд","втр","Ñрд","чтв","птн","Ñбт" ],
-	dayNamesMin: [ "Ð’Ñ","Пн","Ð’Ñ‚","Ср","Чт","Пт","Сб" ],
-	weekHeader: "Ðед",
-	dateFormat: "dd.mm.yy",
-	firstDay: 1,
-	isRTL: false,
-	showMonthAfterYear: false,
-	yearSuffix: "" };
-datepicker.setDefaults( datepicker.regional.ru );
-
-return datepicker.regional.ru;
-
-} ) );
diff --git a/wiki/inc/lang/ru/lang.php b/wiki/inc/lang/ru/lang.php
deleted file mode 100644
index 7eebd39..0000000
--- a/wiki/inc/lang/ru/lang.php
+++ /dev/null
@@ -1,391 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Yuriy Skalko <yuriy.skalko@gmail.com>
- * @author Zhassulan <zyesmukanov@gmail.com>
- * @author Aleksandr Selivanov <alexgearbox@yandex.ru>
- * @author Yuri Pimenov <up@ftpsearch.lv>
- * @author Igor Tarasov <tigr@mail15.com>
- * @author Denis Simakov <akinoame1@gmail.com>
- * @author Kaens Bard <kaens@mail.ru>
- * @author Andrew Pleshakov <beotiger@mail.ru>
- * @author Змей ЭтерийÑкий <evil_snake@eternion.ru>
- * @author Hikaru Nakajima <jisatsu@mail.ru>
- * @author Alexei Tereschenko <alexeitlex@yahoo.com>
- * @author Irina Ponomareva <irinaponomareva@webperfectionist.com>
- * @author Alexander Sorkin <kibizoid@gmail.com>
- * @author Kirill Krasnov <krasnovforum@gmail.com>
- * @author Vlad Tsybenko <vlad.development@gmail.com>
- * @author Aleksey Osadchiy <rfc@nm.ru>
- * @author Ladyko Andrey <fylh@succexy.spb.ru>
- * @author Eugene <windy.wanderer@gmail.com>
- * @author Johnny Utah <pcpa@cyberpunk.su>
- * @author Ivan I. Udovichenko (sendtome@mymailbox.pp.ua)
- * @author Pavel <ivanovtsk@mail.ru>
- * @author Artur <ncuxxx@gmail.com>
- * @author Erli Moen <evseev.jr@gmail.com>
- * @author Владимир <id37736@yandex.ru>
- * @author Igor Degraf <igordegraf@gmail.com>
- * @author Type-kun <workwork-1@yandex.ru>
- * @author Vitaly Filatenko <kot@hacktest.net>
- * @author Alex P <alexander@lanos.co.uk>
- * @author Nolf <m.kopachovets@gmail.com>
- * @author Takumo <9206984@mail.ru>
- * @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';
-$lang['doublequoteopening']    = '«';
-$lang['doublequoteclosing']    = '»';
-$lang['singlequoteopening']    = '„';
-$lang['singlequoteclosing']    = '“';
-$lang['apostrophe']            = '’';
-$lang['btn_edit']              = 'Править Ñтраницу';
-$lang['btn_source']            = 'Показать иÑходный текÑÑ‚';
-$lang['btn_show']              = 'Показать Ñтраницу';
-$lang['btn_create']            = 'Создать Ñтраницу';
-$lang['btn_search']            = 'Ðайти';
-$lang['btn_save']              = 'Сохранить';
-$lang['btn_preview']           = 'ПроÑмотр';
-$lang['btn_top']               = 'Ðаверх';
-$lang['btn_newer']             = '<< более новые';
-$lang['btn_older']             = 'более Ñтарые >>';
-$lang['btn_revs']              = 'ИÑÑ‚Ð¾Ñ€Ð¸Ñ Ñтраницы';
-$lang['btn_recent']            = 'Ðедавние изменениÑ';
-$lang['btn_upload']            = 'Загрузить';
-$lang['btn_cancel']            = 'Отменить';
-$lang['btn_index']             = 'Ð’Ñе Ñтраницы';
-$lang['btn_secedit']           = 'Править';
-$lang['btn_login']             = 'Войти';
-$lang['btn_logout']            = 'Выйти';
-$lang['btn_admin']             = 'Управление';
-$lang['btn_update']            = 'Обновить';
-$lang['btn_delete']            = 'Удалить';
-$lang['btn_back']              = 'Ðазад';
-$lang['btn_backlink']          = 'СÑылки Ñюда';
-$lang['btn_subscribe']         = 'Управление подпиÑками';
-$lang['btn_profile']           = 'Профиль';
-$lang['btn_reset']             = 'Вернуть';
-$lang['btn_resendpwd']         = 'УÑтановить новый пароль';
-$lang['btn_draft']             = 'Править черновик';
-$lang['btn_recover']           = 'ВоÑÑтановить черновик';
-$lang['btn_draftdel']          = 'Удалить черновик';
-$lang['btn_revert']            = 'ВоÑÑтановить';
-$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']                  = 'Пароль';
-$lang['newpass']               = 'Ðовый пароль';
-$lang['oldpass']               = 'Введите текущий пароль';
-$lang['passchk']               = 'повторите';
-$lang['remember']              = 'Запомнить менÑ';
-$lang['fullname']              = 'Полное имÑ';
-$lang['email']                 = 'Эл. адреÑ';
-$lang['profile']               = 'Профиль пользователÑ';
-$lang['badlogin']              = 'Извините, неверное Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¸Ð»Ð¸ пароль.';
-$lang['badpassconfirm']        = 'ПроÑтите, пароль неверный';
-$lang['minoredit']             = 'Ðезначительные изменениÑ';
-$lang['draftdate']             = 'Черновик Ñохранён';
-$lang['nosecedit']             = 'За Ñто Ð²Ñ€ÐµÐ¼Ñ Ñтраница была изменена Ð¸Â Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾Â Ñекции уÑтарела. Загружена Ð¿Ð¾Ð»Ð½Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ Ñтраницы.';
-$lang['searchcreatepage']      = 'ЕÑли вы не нашли то, что иÑкали, то можете Ñоздать или изменить Ñтраницу %s, названную ÑоответÑтвенно вашему запроÑу.';
-$lang['search_fullresults']    = 'Результаты полнотекÑтового поиÑка';
-$lang['js']['search_toggle_tools'] = 'ÐаÑтройка поиÑка';
-$lang['js']['willexpire']      = 'Ваша блокировка Ñтой Ñтраницы на редактирование иÑтекает в течение минуты.\nЧтобы предотвратить конфликты иÑпользуйте кнопку «ПроÑмотр» Ð´Ð»Ñ ÑброÑа таймера блокировки.';
-$lang['js']['notsavedyet']     = 'ÐеÑохранённые Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð±ÑƒÐ´ÑƒÑ‚ потерÑны. Вы дейÑтвительно хотите продолжить?';
-$lang['js']['searchmedia']     = 'ПоиÑк файлов';
-$lang['js']['keepopen']        = 'Ðе закрывать окно поÑле выбора';
-$lang['js']['hidedetails']     = 'Скрыть детали';
-$lang['js']['mediatitle']      = 'ÐаÑтройка ÑÑылки';
-$lang['js']['mediadisplay']    = 'Тип ÑÑылки';
-$lang['js']['mediaalign']      = 'Выравнивание';
-$lang['js']['mediasize']       = 'Размер';
-$lang['js']['mediatarget']     = 'Ð¦ÐµÐ»ÐµÐ²Ð°Ñ ÑÑылка';
-$lang['js']['mediaclose']      = 'Закрыть';
-$lang['js']['mediainsert']     = 'Ð’Ñтавить';
-$lang['js']['mediadisplayimg'] = 'Показывать изображение';
-$lang['js']['mediadisplaylnk'] = 'Показывать только ÑÑылку';
-$lang['js']['mediasmall']      = 'ÐœÐ°Ð»Ð°Ñ Ð²ÐµÑ€ÑиÑ';
-$lang['js']['mediamedium']     = 'СреднÑÑ Ð²ÐµÑ€ÑиÑ';
-$lang['js']['medialarge']      = 'ÐšÑ€ÑƒÐ¿Ð½Ð°Ñ Ð²ÐµÑ€ÑиÑ';
-$lang['js']['mediaoriginal']   = 'ИÑÑ…Ð¾Ð´Ð½Ð°Ñ Ð²ÐµÑ€ÑиÑ';
-$lang['js']['medialnk']        = 'СÑылка на подробноÑти';
-$lang['js']['mediadirect']     = 'ПрÑÐ¼Ð°Ñ ÑÑылка на оригинал';
-$lang['js']['medianolnk']      = 'Без ÑÑылки';
-$lang['js']['medianolink']     = 'Ðе давать ÑÑылку на изображение';
-$lang['js']['medialeft']       = 'ВыровнÑть изображение по левому краю';
-$lang['js']['mediaright']      = 'ВыровнÑть изображение по правому краю';
-$lang['js']['mediacenter']     = 'ВыровнÑть изображение по центру';
-$lang['js']['medianoalign']    = 'Ðе выравнивать';
-$lang['js']['nosmblinks']      = 'СÑылка на Ñетевые каталоги Windows работает только из MS Internet Explorer, но вы можете Ñкопировать ÑÑылку.';
-$lang['js']['linkwiz']         = 'МаÑтер ÑÑылок';
-$lang['js']['linkto']          = 'СÑылка на:';
-$lang['js']['del_confirm']     = 'Вы на Ñамом деле желаете удалить выбранное?';
-$lang['js']['restore_confirm'] = 'ДейÑтвительно воÑÑтановить Ñту верÑию?';
-$lang['js']['media_diff']      = 'ПроÑмотр отличий:';
-$lang['js']['media_diff_both'] = 'Ñ€Ñдом';
-$lang['js']['media_diff_opacity'] = 'наложением';
-$lang['js']['media_diff_portions'] = 'чаÑÑ‚Ñми';
-$lang['js']['media_select']    = 'Выбрать файлы…';
-$lang['js']['media_upload_btn'] = 'Загрузить';
-$lang['js']['media_done_btn']  = 'Готово';
-$lang['js']['media_drop']      = 'ПеремеÑтите файлы Ñюда Ð´Ð»Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ¸';
-$lang['js']['media_cancel']    = 'убрать';
-$lang['js']['media_overwrt']   = 'ПерезапиÑать ÑущеÑтвующие файлы';
-$lang['search_exact_match']    = 'Точное ÑоответÑтвие';
-$lang['search_starts_with']    = 'ÐачинаетÑÑ Ð½Ð°';
-$lang['search_ends_with']      = 'ЗаканчиваетÑÑ';
-$lang['search_contains']       = 'Содержит';
-$lang['search_custom_match']   = 'Задано пользователем';
-$lang['search_any_ns']         = 'Любое проÑтранÑтво имен';
-$lang['search_any_time']       = 'Любое времÑ';
-$lang['search_past_7_days']    = 'ÐŸÑ€Ð¾ÑˆÐ»Ð°Ñ Ð½ÐµÐ´ÐµÐ»Ñ';
-$lang['search_past_month']     = 'Прошлый меÑÑц';
-$lang['search_past_year']      = 'Прошлый год';
-$lang['search_sort_by_hits']   = 'Сортировать по хитам';
-$lang['search_sort_by_mtime']  = 'Сортировать по поÑледнему изменению';
-$lang['regmissing']            = 'Извините, вам Ñледует заполнить вÑе полÑ.';
-$lang['reguexists']            = 'Извините, пользователь Ñ Ñ‚Ð°ÐºÐ¸Ð¼ логином уже ÑущеÑтвует.';
-$lang['regsuccess']            = 'Пользователь Ñоздан; пароль выÑлан Ð½Ð°Â Ð°Ð´Ñ€ÐµÑ Ñлектронной почты.';
-$lang['regsuccess2']           = 'Пользователь Ñоздан.';
-$lang['regfail']               = 'Пользователь не может быть Ñоздан.';
-$lang['regmailfail']           = 'Похоже еÑть проблема Ñ отправкой Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð¿Ð¾Â Ð¿Ð¾Ñ‡Ñ‚Ðµ. ПожалуйÑта, Ñообщите об Ñтом админиÑтратору!';
-$lang['regbadmail']            = 'Данный вами Ð°Ð´Ñ€ÐµÑ Ñлектронной почты выглÑдит неправильным. ЕÑли вы Ñчитаете Ñто ошибкой, Ñообщите админиÑтратору.';
-$lang['regbadpass']            = 'Два введённых Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð½ÐµÂ Ñовпадают. ПожалуйÑта, попробуйте ещё раз.';
-$lang['regpwmail']             = 'Ваш пароль Ð´Ð»Ñ ÑиÑтемы «Докувики»';
-$lang['reghere']               = 'У Ð²Ð°Ñ ÐµÑ‰Ñ‘ нет аккаунта? ЗарегиÑтрируйтеÑÑŒ';
-$lang['profna']                = 'Ð”Ð°Ð½Ð½Ð°Ñ Ð²Ð¸ÐºÐ¸ не поддерживает изменение профилÑ';
-$lang['profnochange']          = 'Изменений не было внеÑено, профиль не обновлён.';
-$lang['profnoempty']           = 'Логин и Ð°Ð´Ñ€ÐµÑ Ñлектронной почты не могут быть пуÑтыми.';
-$lang['profchanged']           = 'Профиль Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ ÑƒÑпешно обновлён.';
-$lang['profnodelete']          = 'Ð”Ð°Ð½Ð½Ð°Ñ Ð²Ð¸ÐºÐ¸ не поддерживает удаление пользователей.';
-$lang['profdeleteuser']        = 'Удалить аккаунт';
-$lang['profdeleted']           = 'Ваш аккаунт был удалён из Ñтой вики';
-$lang['profconfdelete']        = 'Я хочу удалить Ñвой аккаунт из Ñтой вики. <br />
-Это дейÑтвие необратимо.';
-$lang['profconfdeletemissing'] = 'Флажок Ð¿Ð¾Ð´Ñ‚Ð²ÐµÑ€Ð¶Ð´ÐµÐ½Ð¸Ñ Ð½ÐµÂ ÑƒÑтановлен';
-$lang['proffail']              = 'Профиль Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð½ÐµÂ Ð±Ñ‹Ð» обновлен.';
-$lang['pwdforget']             = 'Забыли пароль? Получите новый';
-$lang['resendna']              = 'Ð”Ð°Ð½Ð½Ð°Ñ Ð²Ð¸ÐºÐ¸ не поддерживает повторную отправку паролÑ.';
-$lang['resendpwd']             = 'УÑтановить новый пароль длÑ';
-$lang['resendpwdmissing']      = 'Ð’Ñ‹ должны заполнить вÑе Ð¿Ð¾Ð»Ñ Ñ„Ð¾Ñ€Ð¼Ñ‹.';
-$lang['resendpwdnouser']       = 'Пользователь Ñ таким логином не обнаружен в нашей базе данных.';
-$lang['resendpwdbadauth']      = 'Извините, неверный код авторизации. УбедитеÑÑŒ, что вы полноÑтью Ñкопировали ÑÑылку.';
-$lang['resendpwdconfirm']      = 'СÑылка Ð´Ð»Ñ Ð¿Ð¾Ð´Ñ‚Ð²ÐµÑ€Ð¶Ð´ÐµÐ½Ð¸Ñ Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð±Ñ‹Ð»Ð° выÑлана по Ñлектронной почте.';
-$lang['resendpwdsuccess']      = 'Ваш новый пароль был выÑлан по Ñлектронной почте.';
-$lang['license']               = 'ЕÑли не указано иное, Ñодержимое Ñтой вики предоÑтавлÑетÑÑ Ð½Ð°Â ÑƒÑловиÑÑ… Ñледующей лицензии:';
-$lang['licenseok']             = 'Примечание: Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¸Ñ€ÑƒÑ Ñту Ñтраницу, вы ÑоглашаетеÑÑŒ на иÑпользование Ñвоего вклада на уÑловиÑÑ… Ñледующей лицензии:';
-$lang['searchmedia']           = 'ПоиÑк по имени файла:';
-$lang['searchmedia_in']        = 'ПоиÑк в %s';
-$lang['txt_upload']            = 'Выберите файл Ð´Ð»Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ¸:';
-$lang['txt_filename']          = 'Введите Ð¸Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð° в вики (необÑзательно):';
-$lang['txt_overwrt']           = 'ПерезапиÑать ÑущеÑтвующий файл';
-$lang['maxuploadsize']         = 'МакÑ. размер загружаемого файла %s.';
-$lang['lockedby']              = 'В данный момент заблокировано пользователем';
-$lang['lockexpire']            = 'Блокировка иÑтекает в';
-$lang['rssfailed']             = 'Произошла ошибка при получении Ñледующей новоÑтной ленты: ';
-$lang['nothingfound']          = 'Ðичего не найдено.';
-$lang['mediaselect']           = 'Выбор медиафайла';
-$lang['uploadsucc']            = 'Загрузка произведена уÑпешно';
-$lang['uploadfail']            = 'Загрузка не удалаÑÑŒ. Возможно, проблемы Ñ Ð¿Ñ€Ð°Ð²Ð°Ð¼Ð¸ доÑтупа?';
-$lang['uploadwrong']           = 'Ð’ загрузке отказано. Файлы Ñ Ñ‚Ð°ÐºÐ¸Ð¼ раÑширением запрещены!';
-$lang['uploadexist']           = 'Файл Ñ Ñ‚Ð°ÐºÐ¸Ð¼ именем ÑущеÑтвует. Загрузка не произведена.';
-$lang['uploadbadcontent']      = 'Содержание файла не ÑоответÑтвует раÑширению %s.';
-$lang['uploadspam']            = 'Загрузка заблокирована Ñпам-фильтром.';
-$lang['uploadxss']             = 'Загрузка заблокирована по ÑоображениÑм безопаÑноÑти.';
-$lang['uploadsize']            = 'Загруженный файл был Ñлишком большой (макÑ. %s).';
-$lang['deletesucc']            = 'Файл "%s" был удалён.';
-$lang['deletefail']            = 'Ðевозможно удалить файл "%s" — проверьте права доÑтупа к нему.';
-$lang['mediainuse']            = 'Файл "%s" не был удалён — он вÑÑ‘ ещё иÑпользуетÑÑ.';
-$lang['namespaces']            = 'ПроÑтранÑтва имён';
-$lang['mediafiles']            = 'ДоÑтупные файлы';
-$lang['accessdenied']          = 'Ð’Ñ‹ не можете проÑмотреть Ñту Ñтраницу.';
-$lang['mediausage']            = 'Ð”Ð»Ñ ÑÑылки на Ñтот файл иÑпользуйте Ñледующий ÑинтакÑиÑ:';
-$lang['mediaview']             = 'ПоÑмотреть иÑходный файл';
-$lang['mediaroot']             = 'корень';
-$lang['mediaupload']           = 'ЗдеÑÑŒ можно загрузить файл в текущий каталог («проÑтранÑтво имён»). Чтобы Ñоздать подкаталоги, добавьте их к началу имени файла («Загрузить как»). Имена подкаталогов разделÑÑŽÑ‚ÑÑ Ð´Ð²Ð¾ÐµÑ‚Ð¾Ñ‡Ð¸Ñми.';
-$lang['mediaextchange']        = 'РаÑширение изменилоÑÑŒ Ñ .%s на .%s!';
-$lang['reference']             = 'СÑылки длÑ';
-$lang['ref_inuse']             = 'Этот файл не может быть удалён, так как он иÑпользуетÑÑ Ð½Ð°Â Ñледующих Ñтраницах:';
-$lang['ref_hidden']            = 'Ðекоторые ÑÑылки находÑÑ‚ÑÑ Ð½Ð°Â Ñтраницах, на чтение которых ÑƒÂ Ð²Ð°Ñ Ð½ÐµÑ‚ прав доÑтупа';
-$lang['hits']                  = 'ÑоответÑтвий';
-$lang['quickhits']             = 'ПодходÑщие Ñтраницы';
-$lang['toc']                   = 'Содержание';
-$lang['current']               = 'текущий';
-$lang['yours']                 = 'Ваша верÑиÑ';
-$lang['diff']                  = 'Показать Ð¾Ñ‚Ð»Ð¸Ñ‡Ð¸Ñ Ð¾Ñ‚ текущей верÑии';
-$lang['diff2']                 = 'Показать Ñ€Ð°Ð·Ð»Ð¸Ñ‡Ð¸Ñ Ð¼ÐµÐ¶Ð´Ñƒ выбранными верÑиÑми';
-$lang['difflink']              = 'СÑылка на Ñто Ñравнение';
-$lang['diff_type']             = 'ПоÑмотреть различиÑ';
-$lang['diff_inline']           = 'внутри текÑта';
-$lang['diff_side']             = 'Ð´Ð²ÑƒÐ¼Ñ ÐºÐ¾Ð»Ð¾Ð½ÐºÐ°Ð¼Ð¸';
-$lang['diffprevrev']           = 'ÐŸÑ€ÐµÐ´Ñ‹Ð´ÑƒÑ‰Ð°Ñ Ð²ÐµÑ€ÑиÑ';
-$lang['diffnextrev']           = 'Ð¡Ð»ÐµÐ´ÑƒÑŽÑ‰Ð°Ñ Ð²ÐµÑ€ÑиÑ';
-$lang['difflastrev']           = 'ПоÑледнÑÑ Ð²ÐµÑ€ÑиÑ';
-$lang['diffbothprevrev']       = 'ÐŸÑ€ÐµÐ´Ñ‹Ð´ÑƒÑ‰Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ Ñправа и Ñлева';
-$lang['diffbothnextrev']       = 'Ð¡Ð»ÐµÐ´ÑƒÑŽÑ‰Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ Ñправа и Ñлева';
-$lang['line']                  = 'Строка';
-$lang['breadcrumb']            = 'Ð’Ñ‹ поÑетили:';
-$lang['youarehere']            = 'Ð’Ñ‹ находитеÑÑŒ здеÑÑŒ:';
-$lang['lastmod']               = 'ПоÑледние изменениÑ:';
-$lang['by']                    = ' —';
-$lang['deleted']               = 'удалено';
-$lang['created']               = 'Ñоздано';
-$lang['restored']              = 'ÑÑ‚Ð°Ñ€Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ Ð²Ð¾ÑÑтановлена (%s)';
-$lang['external_edit']         = 'внешнее изменение';
-$lang['summary']               = 'Сводка изменений';
-$lang['noflash']               = 'Ð”Ð»Ñ Ð¿Ñ€Ð¾Ñмотра Ñтого Ñодержимого требуетÑÑ <a href="http://www.adobe.com/products/flashplayer/">Adobe Flash Plugin</a>.';
-$lang['download']              = 'Скачать фрагмент кода';
-$lang['tools']                 = 'ИнÑтрументы';
-$lang['user_tools']            = 'ИнÑтрументы пользователÑ';
-$lang['site_tools']            = 'ИнÑтрументы Ñайта';
-$lang['page_tools']            = 'ИнÑтрументы Ñтраницы';
-$lang['skip_to_content']       = 'Перейти к Ñодержанию';
-$lang['sidebar']               = 'Ð‘Ð¾ÐºÐ¾Ð²Ð°Ñ Ð¿Ð°Ð½ÐµÐ»ÑŒ';
-$lang['mail_newpage']          = 'Ñтраница добавлена:';
-$lang['mail_changed']          = 'Ñтраница изменена:';
-$lang['mail_subscribe_list']   = 'изменилиÑÑŒ Ñтраницы в проÑтранÑтве имён:';
-$lang['mail_new_user']         = 'новый пользователь:';
-$lang['mail_upload']           = 'файл закачан:';
-$lang['changes_type']          = 'ПоÑмотреть изменениÑ';
-$lang['pages_changes']         = 'Ñтраниц';
-$lang['media_changes']         = 'медиафайлов';
-$lang['both_changes']          = 'и Ñтраниц, и медиафайлов';
-$lang['qb_bold']               = 'Полужирный';
-$lang['qb_italic']             = 'КурÑив';
-$lang['qb_underl']             = 'Подчёркнутый';
-$lang['qb_code']               = 'ТекÑÑ‚ кода';
-$lang['qb_strike']             = 'Зачёркнутый';
-$lang['qb_h1']                 = 'Заголовок 1-го уровнÑ';
-$lang['qb_h2']                 = 'Заголовок 2-го уровнÑ';
-$lang['qb_h3']                 = 'Заголовок 3-го уровнÑ';
-$lang['qb_h4']                 = 'Заголовок 4-го уровнÑ';
-$lang['qb_h5']                 = 'Заголовок 5-го уровнÑ';
-$lang['qb_h']                  = 'Заголовок';
-$lang['qb_hs']                 = 'Выбор заголовка';
-$lang['qb_hplus']              = 'Заголовок более выÑокого уровнÑ';
-$lang['qb_hminus']             = 'Заголовок более низкого ÑƒÑ€Ð¾Ð²Ð½Ñ (подзаголовок)';
-$lang['qb_hequal']             = 'Заголовок текущего уровнÑ';
-$lang['qb_link']               = 'ВнутреннÑÑ ÑÑылка';
-$lang['qb_extlink']            = 'ВнешнÑÑ ÑÑылка';
-$lang['qb_hr']                 = 'Ð“Ð¾Ñ€Ð¸Ð·Ð¾Ð½Ñ‚Ð°Ð»ÑŒÐ½Ð°Ñ Ð»Ð¸Ð½Ð¸Ñ';
-$lang['qb_ol']                 = 'Элемент нумерованного ÑпиÑка';
-$lang['qb_ul']                 = 'Элемент ненумерованного ÑпиÑка';
-$lang['qb_media']              = 'Добавить Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ð¸Ð»Ð¸ другие файлы (откроетÑÑ Ð² новом окне)';
-$lang['qb_sig']                = 'Ð’Ñтавить подпиÑÑŒ';
-$lang['qb_smileys']            = 'Смайлики';
-$lang['qb_chars']              = 'Специальные Ñимволы';
-$lang['upperns']               = 'Перейти в родительÑкое проÑтранÑтво имён';
-$lang['metaedit']              = 'Править метаданные';
-$lang['metasaveerr']           = 'Ошибка запиÑи метаданных';
-$lang['metasaveok']            = 'Метаданные Ñохранены';
-$lang['img_title']             = 'Ðазвание:';
-$lang['img_caption']           = 'ПодпиÑÑŒ:';
-$lang['img_date']              = 'Дата:';
-$lang['img_fname']             = 'Ð˜Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð°:';
-$lang['img_fsize']             = 'Размер:';
-$lang['img_artist']            = 'Фотограф:';
-$lang['img_copyr']             = 'ÐвторÑкие права:';
-$lang['img_format']            = 'Формат:';
-$lang['img_camera']            = 'Модель камеры:';
-$lang['img_keywords']          = 'Ключевые Ñлова:';
-$lang['img_width']             = 'Ширина:';
-$lang['img_height']            = 'Ð’Ñ‹Ñота:';
-$lang['subscr_subscribe_success'] = 'Добавлен %s в подпиÑку на %s';
-$lang['subscr_subscribe_error'] = 'Ðевозможно добавить %s в подпиÑку на %s';
-$lang['subscr_subscribe_noaddress'] = 'Ðет адреÑа Ñлектронной почты, ÑопоÑтавленного Ñ вашей учётной запиÑью. Ð’Ñ‹ не можете подпиÑатьÑÑ Ð½Ð°Â Ñ€Ð°ÑÑылку';
-$lang['subscr_unsubscribe_success'] = 'Удалён %s из подпиÑки на %s';
-$lang['subscr_unsubscribe_error'] = 'Ошибка ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ %s из подпиÑки на %s';
-$lang['subscr_already_subscribed'] = '%s уже подпиÑан на %s';
-$lang['subscr_not_subscribed'] = '%s не подпиÑан на %s';
-$lang['subscr_m_not_subscribed'] = 'Ð’Ñ‹ не подпиÑаны на текущую Ñтраницу или проÑтранÑтво имён.';
-$lang['subscr_m_new_header']   = 'Добавить подпиÑку';
-$lang['subscr_m_current_header'] = 'Текущие подпиÑки';
-$lang['subscr_m_unsubscribe']  = 'Отменить подпиÑку';
-$lang['subscr_m_subscribe']    = 'ПодпиÑатьÑÑ';
-$lang['subscr_m_receive']      = 'Получить';
-$lang['subscr_style_every']    = 'уведомлÑть о каждом изменении';
-$lang['subscr_style_digest']   = 'информационное Ñлектронное пиÑьмо Ñо ÑпиÑком изменений Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð¹ Ñтраницы (каждые %.2f дн.)';
-$lang['subscr_style_list']     = 'ÑпиÑок изменённых Ñтраниц Ñо времени поÑледнего отправленного Ñлектронного пиÑьма (каждые %.2f дн.)';
-$lang['authtempfail']          = 'ÐÑƒÑ‚ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»ÐµÐ¹ временно недоÑтупна. ЕÑли проблема продолжаетÑÑ ÐºÐ°ÐºÐ¾Ðµ-то времÑ, пожалуйÑта, Ñообщите об Ñтом админиÑтратору вики.';
-$lang['i_chooselang']          = 'Выберите Ñвой Ñзык / Choose your language';
-$lang['i_installer']           = 'УÑтановка «Докувики»';
-$lang['i_wikiname']            = 'Ðазвание вики';
-$lang['i_enableacl']           = 'Разрешить ограничение прав доÑтупа (рекомендуетÑÑ)';
-$lang['i_superuser']           = 'Суперпользователь';
-$lang['i_problems']            = 'Программа уÑтановки ÑтолкнулаÑÑŒ Ñ Ð¿Ñ€Ð¾Ð±Ð»ÐµÐ¼Ð°Ð¼Ð¸, перечиÑленными ниже. Чтобы продолжить, вам необходимо их уÑтранить. ';
-$lang['i_modified']            = 'Из Ñоображений безопаÑноÑти Ñта программа запуÑкаетÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ на новой, неизменённой уÑтановке «Докувики».
-                                  Вам нужно либо заново раÑпаковать Ñкачанный пакет уÑтановки, либо обратитьÑÑ Ðº полной
-                                  <a href="http://www.dokuwiki.org/install">инÑтрукции по уÑтановке «Докувики»</a>';
-$lang['i_funcna']              = 'Ð¤ÑƒÐ½ÐºÑ†Ð¸Ñ PHP <code>%s</code> недоÑтупна. Может быть, она по какой-то причине заблокирована вашим хоÑтером?';
-$lang['i_phpver']              = 'Ваша верÑÐ¸Ñ PHP (<code>%s</code>) ниже требуемой (<code>%s</code>). Вам необходимо обновить уÑтановленную верÑию PHP.';
-$lang['i_mbfuncoverload']      = 'Ð”Ð»Ñ Ð·Ð°Ð¿ÑƒÑка «Докувики» необходимо отключить параметр mbstring.func_overload в php.ini';
-$lang['i_permfail']            = '<code>%s</code> недоÑтупна Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи «Докувики». Вам необходимо иÑправить ÑиÑтемные права доÑтупа Ð´Ð»Ñ Ñтой директории!';
-$lang['i_confexists']          = '<code>%s</code> уже ÑущеÑтвует';
-$lang['i_writeerr']            = 'Ðе удалоÑÑŒ Ñоздать <code>%s</code>. Вам необходимо проверить ÑиÑтемные права доÑтупа к файлу и директориÑм, и Ñоздать файл вручную. ';
-$lang['i_badhash']             = 'dokuwiki.php не раÑпознан или изменён (hash=<code>%s</code>)';
-$lang['i_badval']              = '<code>%s</code> — недопуÑтимое или пуÑтое значение';
-$lang['i_success']             = 'ÐšÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñ Ð¿Ñ€Ð¾ÑˆÐ»Ð° уÑпешно. Теперь вы можете удалить файл install.php. Переходите к
-                                 <a href="doku.php?id=wiki:welcome">Ñвоей новой «Докувики»</a>.';
-$lang['i_failure']             = 'При запиÑи в файлы конфигурации были обнаружены ошибки. Возможно, вам придётÑÑ Ð¸Ñправить их вручную, прежде чем вы Ñможете иÑпользовать <a href="doku.php?id=wiki:welcome">Ñвою новую «Докувики»</a>.';
-$lang['i_policy']              = 'ИÑÑ…Ð¾Ð´Ð½Ð°Ñ Ð¿Ð¾Ð»Ð¸Ñ‚Ð¸ÐºÐ° прав доÑтупа';
-$lang['i_pol0']                = 'ÐžÑ‚ÐºÑ€Ñ‹Ñ‚Ð°Ñ Ð²Ð¸ÐºÐ¸ (чтение, запиÑÑŒ, загрузка файлов Ð´Ð»Ñ Ð²Ñех)';
-$lang['i_pol1']                = 'ОбщедоÑÑ‚ÑƒÐ¿Ð½Ð°Ñ Ð²Ð¸ÐºÐ¸ (чтение Ð´Ð»Ñ Ð²Ñех, запиÑÑŒ и загрузка файлов Ð´Ð»Ñ Ð·Ð°Ñ€ÐµÐ³Ð¸Ñтрированных пользователей)';
-$lang['i_pol2']                = 'Ð—Ð°ÐºÑ€Ñ‹Ñ‚Ð°Ñ Ð²Ð¸ÐºÐ¸ (чтение, запиÑÑŒ и загрузка файлов только Ð´Ð»Ñ Ð·Ð°Ñ€ÐµÐ³Ð¸Ñтрированных пользователей)';
-$lang['i_allowreg']            = 'Разрешить пользователÑм ÑамоÑтоÑтельно региÑтрироватьÑÑ';
-$lang['i_retry']               = 'Повторить попытку';
-$lang['i_license']             = 'ПожалуйÑта, выберите тип лицензии Ð´Ð»Ñ Ñвоей вики';
-$lang['i_license_none']        = 'Ðе отображать информацию о лицензии';
-$lang['i_pop_field']           = 'ПожалуйÑта, помогите нам улучшить «Докувики»:';
-$lang['i_pop_label']           = 'ОтправлÑть раз в меÑÑц анонимную пользовательÑкую информацию разработчикам «Докувики»';
-$lang['recent_global']         = 'Ð’Ñ‹ проÑматриваете Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² проÑтранÑтве имён <b>%s</b>. Ð’Ñ‹ можете также <a href="%s">проÑмотреть недавние Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð²Ð¾ вÑей вики</a>.';
-$lang['years']                 = '%d лет назад';
-$lang['months']                = '%d меÑÑц (-ев) назад';
-$lang['weeks']                 = '%d недель назад';
-$lang['days']                  = '%d дней назад';
-$lang['hours']                 = '%d Ñ‡Ð°Ñ (-ов) назад';
-$lang['minutes']               = '%d минут назад';
-$lang['seconds']               = '%d Ñекунд назад';
-$lang['wordblock']             = 'Ваши Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð½Ðµ Ñохранены, поÑкольку они Ñодержат блокируемые Ñлова (Ñпам).';
-$lang['media_uploadtab']       = 'Загрузка';
-$lang['media_searchtab']       = 'Ðайти';
-$lang['media_file']            = 'Файл';
-$lang['media_viewtab']         = 'ПроÑмотр';
-$lang['media_edittab']         = 'Правка';
-$lang['media_historytab']      = 'ИÑториÑ';
-$lang['media_list_thumbs']     = 'Миниатюры';
-$lang['media_list_rows']       = 'Строки';
-$lang['media_sort_name']       = 'Сортировка по имени';
-$lang['media_sort_date']       = 'Сортировка по дате';
-$lang['media_namespaces']      = 'Выберите проÑтранÑтво имён';
-$lang['media_files']           = 'Файлы в %s';
-$lang['media_upload']          = 'Загрузка в проÑтранÑтво имён %s';
-$lang['media_search']          = 'ПоиÑк в проÑтранÑтве имён %s';
-$lang['media_view']            = '%s';
-$lang['media_viewold']         = '%s в %s
-';
-$lang['media_edit']            = 'Правка %s';
-$lang['media_history']         = 'ИÑÑ‚Ð¾Ñ€Ð¸Ñ %s';
-$lang['media_meta_edited']     = 'метаданные изменены';
-$lang['media_perm_read']       = 'Извините, у Ð²Ð°Ñ Ð½ÐµÐ´Ð¾Ñтаточно прав Ð´Ð»Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð².';
-$lang['media_perm_upload']     = 'Извините, у Ð²Ð°Ñ Ð½ÐµÐ´Ð¾Ñтаточно прав Ð´Ð»Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ¸ файлов.';
-$lang['media_update']          = 'Загрузить новую верÑию';
-$lang['media_restore']         = 'ВоÑÑтановить Ñту верÑию';
-$lang['media_acl_warning']     = 'Этот ÑпиÑок может быть неполным из-за ограничений ÑпиÑков ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»Ñ Ð´Ð¾Ñтупа (ACL) и Ñкрытых Ñтраниц.';
-$lang['currentns']             = 'Текущее проÑтранÑтво имён';
-$lang['searchresult']          = 'Результаты поиÑка';
-$lang['plainhtml']             = 'ПроÑтой HTML';
-$lang['wikimarkup']            = 'вики-разметка';
-$lang['page_nonexist_rev']     = 'Эта Ñтраница ещё не ÑущеÑтвовала %s. Она была Ñоздана <a href="%s">%s</a>.';
-$lang['unable_to_parse_date']  = 'Ðевозможно обработать параметр "%s".';
-$lang['email_signature_text']  = 'Это пиÑьмо Ñоздано «Докувики» Ñ Ñайта
-@DOKUWIKIURL@';
diff --git a/wiki/inc/lang/ru/locked.txt b/wiki/inc/lang/ru/locked.txt
deleted file mode 100644
index 3e868ba..0000000
--- a/wiki/inc/lang/ru/locked.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Страница заблокирована ======
-
-Эта Ñтраница в данный момент заблокирована Ð´Ð»Ñ Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð´Ñ€ÑƒÐ³Ð¸Ð¼ пользователем. Вам придётÑÑ Ð¿Ð¾Ð´Ð¾Ð¶Ð´Ð°Ñ‚ÑŒ, пока Ñтот пользователь закончит редактирование или иÑтечёт Ð²Ñ€ÐµÐ¼Ñ Ð±Ð»Ð¾ÐºÐ¸Ñ€Ð¾Ð²ÐºÐ¸.
diff --git a/wiki/inc/lang/ru/login.txt b/wiki/inc/lang/ru/login.txt
deleted file mode 100644
index 0a94a0b..0000000
--- a/wiki/inc/lang/ru/login.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== ÐÐ²Ñ‚Ð¾Ñ€Ð¸Ð·Ð°Ñ†Ð¸Ñ ======
-
-Ð’ данный момент вы не в ÑиÑтеме. ÐвторизируйтеÑÑŒ при помощи Ñледующей формы. //Замечание:// Ð´Ð»Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹ у Ð²Ð°Ñ Ð´Ð¾Ð»Ð¶Ð½Ñ‹ быть включены куки (cookies).
-
diff --git a/wiki/inc/lang/ru/mailtext.txt b/wiki/inc/lang/ru/mailtext.txt
deleted file mode 100644
index 0eb31a1..0000000
--- a/wiki/inc/lang/ru/mailtext.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-Ð’ вашей вики была добавлена или изменена Ñтраница. ПодробноÑти:
-
-Дата: @DATE@
-Браузер: @BROWSER@
-IP-адреÑ: @IPADDRESS@
-ХоÑÑ‚: @HOSTNAME@
-Ð¡Ñ‚Ð°Ñ€Ð°Ñ Ð²ÐµÑ€ÑиÑ: @OLDPAGE@
-ÐÐ¾Ð²Ð°Ñ Ð²ÐµÑ€ÑиÑ: @NEWPAGE@
-Сводка изменений: @SUMMARY@
-Пользователь: @USER@
-
-@DIFF@
diff --git a/wiki/inc/lang/ru/newpage.txt b/wiki/inc/lang/ru/newpage.txt
deleted file mode 100644
index ea8e35b..0000000
--- a/wiki/inc/lang/ru/newpage.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Эта Ñтраница ещё не ÑущеÑтвует ======
-
-Ð’Ñ‹ перешли по ÑÑылке на тему, Ð´Ð»Ñ ÐºÐ¾Ñ‚Ð¾Ñ€Ð¾Ð¹ ещё не Ñоздана Ñтраница. ЕÑли позволÑÑŽÑ‚ ваши права доÑтупа, вы можете Ñоздать её, нажав на кнопку «Создать Ñтраницу».
diff --git a/wiki/inc/lang/ru/norev.txt b/wiki/inc/lang/ru/norev.txt
deleted file mode 100644
index c088d0d..0000000
--- a/wiki/inc/lang/ru/norev.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Такой верÑии не ÑущеÑтвует ======
-
-Ð£ÐºÐ°Ð·Ð°Ð½Ð½Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ Ñтраницы не ÑущеÑтвует. Ðажмите на кнопку «ИÑÑ‚Ð¾Ñ€Ð¸Ñ Ñтраницы», чтобы получить ÑпиÑок доÑтупных предыдущих верÑий Ñтого документа.
diff --git a/wiki/inc/lang/ru/password.txt b/wiki/inc/lang/ru/password.txt
deleted file mode 100644
index 52ed4b5..0000000
--- a/wiki/inc/lang/ru/password.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-ЗдравÑтвуйте, @FULLNAME@.
-
-Ваши данные Ð´Ð»Ñ @TITLE@ (@DOKUWIKIURL@)
-
-Логин: @LOGIN@
-Пароль: @PASSWORD@
diff --git a/wiki/inc/lang/ru/preview.txt b/wiki/inc/lang/ru/preview.txt
deleted file mode 100644
index 2bc383e..0000000
--- a/wiki/inc/lang/ru/preview.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== ПроÑмотр ======
-
-ЗдеÑÑŒ показано, как ваш текÑÑ‚ будет выглÑдеть. Внимание: текÑÑ‚ ещё **не Ñохранён!**
-
diff --git a/wiki/inc/lang/ru/pwconfirm.txt b/wiki/inc/lang/ru/pwconfirm.txt
deleted file mode 100644
index fff6694..0000000
--- a/wiki/inc/lang/ru/pwconfirm.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-ЗдравÑтвуйте, @FULLNAME@.
-
-Кто-то запроÑил новый пароль Ð´Ð»Ñ Ð²Ñ…Ð¾Ð´Ð° в @TITLE@ по адреÑу @DOKUWIKIURL@
-
-ЕÑли вы не запрашивали новый пароль, проÑто проигнорируйте Ñто пиÑьмо.
-
-Ð”Ð»Ñ Ð¿Ð¾Ð´Ñ‚Ð²ÐµÑ€Ð¶Ð´ÐµÐ½Ð¸Ñ, что Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð±Ñ‹Ð» дейÑтвительно Ñделан вами, пожалуйÑта, перейдите по Ñледующей ÑÑылке.
-
-@CONFIRM@
diff --git a/wiki/inc/lang/ru/read.txt b/wiki/inc/lang/ru/read.txt
deleted file mode 100644
index 08c3afa..0000000
--- a/wiki/inc/lang/ru/read.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-Эта Ñтраница только Ð´Ð»Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ. Ð’Ñ‹ можете поÑмотреть её иÑходный текÑÑ‚, но не можете его изменить. Сообщите админиÑтратору, еÑли Ñчитаете, что Ñто неправильно.
-
diff --git a/wiki/inc/lang/ru/recent.txt b/wiki/inc/lang/ru/recent.txt
deleted file mode 100644
index 0d4d328..0000000
--- a/wiki/inc/lang/ru/recent.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== Ðедавние Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ ======
-
-Следующие Ñтраницы были недавно изменены
-
-
diff --git a/wiki/inc/lang/ru/register.txt b/wiki/inc/lang/ru/register.txt
deleted file mode 100644
index 2d5d987..0000000
--- a/wiki/inc/lang/ru/register.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== РегиÑÑ‚Ñ€Ð°Ñ†Ð¸Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ ======
-
-Ð”Ð»Ñ Ñ€ÐµÐ³Ð¸Ñтрации в вики заполните вÑе Ð¿Ð¾Ð»Ñ Ð½Ð¸Ð¶Ðµ. Обратите внимание на **правильноÑть адреÑа Ñлектронной почты** — туда будет выÑлан пароль в том Ñлучае, еÑли Ð²Ð°Ñ Ð½Ðµ проÑÑÑ‚ ÑамоÑтоÑтельно ввеÑти его здеÑÑŒ. Логин должен удовлетворÑть ограничениÑм Ð´Ð»Ñ [[doku>pagename|идентификатора Ñтраницы]].
diff --git a/wiki/inc/lang/ru/registermail.txt b/wiki/inc/lang/ru/registermail.txt
deleted file mode 100644
index 8e420aa..0000000
--- a/wiki/inc/lang/ru/registermail.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-Был зарегиÑтрирован новый пользователь. ПодробноÑти:
-
-Логин: @NEWUSER@
-Полное имÑ: @NEWNAME@
-Эл. адреÑ: @NEWEMAIL@
-
-Дата: @DATE@
-Браузер: @BROWSER@
-ÐÐ´Ñ€ÐµÑ IP: @IPADDRESS@
-ХоÑÑ‚: @HOSTNAME@
diff --git a/wiki/inc/lang/ru/resendpwd.txt b/wiki/inc/lang/ru/resendpwd.txt
deleted file mode 100644
index bc24c49..0000000
--- a/wiki/inc/lang/ru/resendpwd.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Ð’Ñ‹Ñлать новый пароль ======
-
-Ð”Ð»Ñ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð²Ð²ÐµÐ´Ð¸Ñ‚Ðµ ваш логин. Ваш новый пароль будет отправлен по адреÑу Ñлектронной почты, зарегиÑтрированному на ваше имÑ.
\ No newline at end of file
diff --git a/wiki/inc/lang/ru/resetpwd.txt b/wiki/inc/lang/ru/resetpwd.txt
deleted file mode 100644
index f7c9d35..0000000
--- a/wiki/inc/lang/ru/resetpwd.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== УÑтановка нового Ð¿Ð°Ñ€Ð¾Ð»Ñ ======
-
-ПожалуйÑта введите новый пароль Ð´Ð»Ñ Ð²Ð°ÑˆÐµÐ¹ учетной запиÑи в Ñтой вики.
diff --git a/wiki/inc/lang/ru/revisions.txt b/wiki/inc/lang/ru/revisions.txt
deleted file mode 100644
index d5faf3d..0000000
--- a/wiki/inc/lang/ru/revisions.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== ИÑÑ‚Ð¾Ñ€Ð¸Ñ Ñтраницы ======
-
-Перед вами иÑÑ‚Ð¾Ñ€Ð¸Ñ Ð¿Ñ€Ð°Ð²Ð¾Ðº текущего документа. Чтобы вернутьÑÑ Ðº одной из предыдущих верÑий, выберите нужную, нажмите «Править Ñтраницу» и Ñохраните её.
\ No newline at end of file
diff --git a/wiki/inc/lang/ru/searchpage.txt b/wiki/inc/lang/ru/searchpage.txt
deleted file mode 100644
index deea577..0000000
--- a/wiki/inc/lang/ru/searchpage.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== ПоиÑк ======
-
-Перед вами результаты поиÑка. @CREATEPAGEINFO@
-
diff --git a/wiki/inc/lang/ru/showrev.txt b/wiki/inc/lang/ru/showrev.txt
deleted file mode 100644
index b3f3852..0000000
--- a/wiki/inc/lang/ru/showrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**Это ÑÑ‚Ð°Ñ€Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ð°!**
-----
diff --git a/wiki/inc/lang/ru/stopwords.txt b/wiki/inc/lang/ru/stopwords.txt
deleted file mode 100644
index 826a89e..0000000
--- a/wiki/inc/lang/ru/stopwords.txt
+++ /dev/null
@@ -1,93 +0,0 @@
-# Это ÑпиÑок Ñлов, которые индекÑатор игнорирует, по одному Ñлову в Ñтроке
-# При редактировании Ñтого файла обÑзательно иÑпользуйте Ð¾ÐºÐ¾Ð½Ñ‡Ð°Ð½Ð¸Ñ Ñтрок UNIX (только newline)
-# Ðе нужно включать Ñлова короче 3 Ñимволов - они игнорируютÑÑ Ð² любом Ñлучае
-более
-больше
-будет
-будто
-была
-было
-быть
-вдруг
-ведь
-впрочем
-вÑегда
-вÑех
-вÑего
-говорил
-говорила
-даже
-другой
-другаÑ
-еÑли
-еÑть
-жизнь
-жизнÑ
-зачем
-здеÑÑŒ
-иногда
-кажетÑÑ
-какаÑ
-какой
-какое
-когда
-конечно
-лучше
-между
-менее
-меньше
-менÑ
-много
-может
-можно
-надо
-наконец
-него
-нельзÑ
-нибудь
-никогда
-ничего
-нужно
-один
-одна
-опÑть
-перед
-поÑле
-потом
-потому
-почти
-разве
-Ñвое
-Ñвоё
-Ñвой
-Ñвою
-ÑвоÑ
-Ñебе
-ÑебÑ
-ÑегоднÑ
-ÑейчаÑ
-Ñказал
-Ñказала
-Ñказать
-ÑовÑем
-такаÑ
-такое
-такой
-тебÑ
-теперь
-тогда
-того
-тоже
-только
-тому
-хорошо
-хоть
-чего
-через
-чтоб
-чтобы
-чуть
-Ñтого
-Ñтой
-Ñтим
-Ñтот
diff --git a/wiki/inc/lang/ru/subscr_digest.txt b/wiki/inc/lang/ru/subscr_digest.txt
deleted file mode 100644
index afc34ef..0000000
--- a/wiki/inc/lang/ru/subscr_digest.txt
+++ /dev/null
@@ -1,15 +0,0 @@
-Привет!
-
-Страница @PAGE@ в вики @TITLE@ изменилаÑÑŒ.
-СпиÑок изменений:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-Ð¡Ñ‚Ð°Ñ€Ð°Ñ Ð²ÐµÑ€ÑиÑ: @OLDPAGE@
-ÐÐ¾Ð²Ð°Ñ Ð²ÐµÑ€ÑиÑ: @NEWPAGE@
-
-Чтобы отпиÑатьÑÑ Ð¾Ñ‚ уведомлений об изменениÑÑ…, войдите в вики
-@DOKUWIKIURL@ в раздел @SUBSCRIBE@
-и отмените подпиÑку на Ñтраницу и/или проÑтранÑтво имён.
diff --git a/wiki/inc/lang/ru/subscr_form.txt b/wiki/inc/lang/ru/subscr_form.txt
deleted file mode 100644
index 2a775c5..0000000
--- a/wiki/inc/lang/ru/subscr_form.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Управление подпиÑками ======
-
-ЗдеÑÑŒ вы можете управлÑть подпиÑками Ð´Ð»Ñ Ñ‚ÐµÐºÑƒÑ‰ÐµÐ¹ Ñтраницы и проÑтранÑтва имён.
\ No newline at end of file
diff --git a/wiki/inc/lang/ru/subscr_list.txt b/wiki/inc/lang/ru/subscr_list.txt
deleted file mode 100644
index cf3ef5d..0000000
--- a/wiki/inc/lang/ru/subscr_list.txt
+++ /dev/null
@@ -1,13 +0,0 @@
-Привет!
-
-Страницы в проÑтранÑтве имён @PAGE@ в вики @TITLE@ были изменены.
-
-СпиÑок изменившихÑÑ Ñтраниц:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-Чтобы отпиÑатьÑÑ Ð¾Ñ‚ уведомлений об изменениÑÑ…, войдите в вики
-@DOKUWIKIURL@ в раздел @SUBSCRIBE@
-и отмените подпиÑку на Ñтраницу и/или проÑтранÑтво имён.
diff --git a/wiki/inc/lang/ru/subscr_single.txt b/wiki/inc/lang/ru/subscr_single.txt
deleted file mode 100644
index 9b7d907..0000000
--- a/wiki/inc/lang/ru/subscr_single.txt
+++ /dev/null
@@ -1,19 +0,0 @@
-Привет!
-
-Страница @PAGE@ в вики @TITLE@ изменилаÑÑŒ.
-СпиÑок изменений:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-Дата: @DATE@
-Ðвтор: @USER@
-
-Примечание: @SUMMARY@
-Ð¡Ñ‚Ð°Ñ€Ð°Ñ Ð²ÐµÑ€ÑиÑ: @OLDPAGE@
-ÐÐ¾Ð²Ð°Ñ Ð²ÐµÑ€ÑиÑ: @NEWPAGE@
-
-Чтобы отпиÑатьÑÑ Ð¾Ñ‚ уведомлений об изменениÑÑ…, войдите в вики
-@DOKUWIKIURL@ в раздел @SUBSCRIBE@
-и отмените подпиÑку на Ñтраницу и/или проÑтранÑтво имён.
diff --git a/wiki/inc/lang/ru/updateprofile.txt b/wiki/inc/lang/ru/updateprofile.txt
deleted file mode 100644
index 824916c..0000000
--- a/wiki/inc/lang/ru/updateprofile.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== Обновить профиль ======
-
-Ðеобходимо заполнить только те полÑ, которые вы хотите изменить. Ваш логин не может быть изменён.
-
-
diff --git a/wiki/inc/lang/ru/uploadmail.txt b/wiki/inc/lang/ru/uploadmail.txt
deleted file mode 100644
index a92d855..0000000
--- a/wiki/inc/lang/ru/uploadmail.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-Ð’ вашу вики был закачан файл. ÐŸÐ¾Ð´Ñ€Ð¾Ð±Ð½Ð°Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ:
-
-Файл: @MEDIA@
-Ð¡Ñ‚Ð°Ñ€Ð°Ñ Ð²ÐµÑ€ÑиÑ: @OLD@
-Дата: @DATE@
-Браузер: @BROWSER@
-ÐÐ´Ñ€ÐµÑ IP: @IPADDRESS@
-ХоÑÑ‚: @HOSTNAME@
-Размер: @SIZE@
-Тип MIME: @MIME@
-Пользователь: @USER@
diff --git a/wiki/inc/lang/ru/wordblock.txt b/wiki/inc/lang/ru/wordblock.txt
deleted file mode 100644
index 09c663f..0000000
--- a/wiki/inc/lang/ru/wordblock.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== СПÐМ заблокирован ======
-
-Ваши Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ **не были** Ñохранены, так как они Ñодержат одно или более запрещенных Ñлов. ЕÑли Ð’Ñ‹ пыталиÑÑŒ добавить Ñпам в Вики -- ай-Ñй-Ñй!  ЕÑли Ð’Ñ‹ Ñчитаете, что Ñто какаÑ-то ошибка, обратитеÑÑŒ к админиÑтратору вики.
diff --git a/wiki/inc/lang/sk/admin.txt b/wiki/inc/lang/sk/admin.txt
deleted file mode 100644
index 510eeb9..0000000
--- a/wiki/inc/lang/sk/admin.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== Administrácia ======
-
-Nižšie môžete nájsť zoznam administratívnych úloh dostupných v DokuWiki.
-
-
diff --git a/wiki/inc/lang/sk/adminplugins.txt b/wiki/inc/lang/sk/adminplugins.txt
deleted file mode 100644
index 64d2ca7..0000000
--- a/wiki/inc/lang/sk/adminplugins.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Ďalšie pluginy =====
\ No newline at end of file
diff --git a/wiki/inc/lang/sk/backlinks.txt b/wiki/inc/lang/sk/backlinks.txt
deleted file mode 100644
index b3217d5..0000000
--- a/wiki/inc/lang/sk/backlinks.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Spätné odkazy ======
-
-Tu je zoznam stránok, ktoré pravdepodobne odkazujú na aktuálnu stránku.
diff --git a/wiki/inc/lang/sk/conflict.txt b/wiki/inc/lang/sk/conflict.txt
deleted file mode 100644
index 5dab2db..0000000
--- a/wiki/inc/lang/sk/conflict.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== Existuje novšia verzia ======
-
-Existuje novÅ¡ia verzia práve upravovaného dokumentu. To sa stáva, keÄ niekto iný zmenil dokument, ktorý práve upravujete.
-
-Prehliadnite si nižšie uvedené rozdiely, prípadne rozdiely z obidvoch verzií ruÄne spojte dohromady a rozhodnite sa, ktorú verziu uchovaÅ¥. Ak zvolíte ''UložiÅ¥', bude uložená vaÅ¡a verzia. V opaÄnom prípade stlaÄte ''Storno'' pre uchovanie pôvodnej verzie.
diff --git a/wiki/inc/lang/sk/denied.txt b/wiki/inc/lang/sk/denied.txt
deleted file mode 100644
index aa6f7b8..0000000
--- a/wiki/inc/lang/sk/denied.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Nepovolená akcia ======
-
-PrepáÄte, ale nemáte dostatoÄné oprávnenie k tejto Äinnosti.
-
diff --git a/wiki/inc/lang/sk/diff.txt b/wiki/inc/lang/sk/diff.txt
deleted file mode 100644
index 0548ea5..0000000
--- a/wiki/inc/lang/sk/diff.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Rozdiely ======
-
-Tu môžete vidieť rozdiely medzi vybranou verziou a aktuálnou verziou danej stránky.
-
diff --git a/wiki/inc/lang/sk/draft.txt b/wiki/inc/lang/sk/draft.txt
deleted file mode 100644
index 96a4e91..0000000
--- a/wiki/inc/lang/sk/draft.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-====== Nájdený súbor konceptu ======
-
-VaÅ¡a posledná editácia tejto stránky nebola ukonÄená korektne. Dokuwiki automaticky uložila poÄas vaÅ¡ej práce koncept a ten môžete teraz použiÅ¥ pre pokraÄovanie editácie. Nižšie môžete vidieÅ¥ dáta, ktoré boli uložené.
-
-Prosím, rozhodnite sa, Äi chcete //obnoviÅ¥// vaÅ¡u poslednú editáciu, //zmazaÅ¥// automaticky uložený koncept alebo //stornovaÅ¥// proces editácie.
-
diff --git a/wiki/inc/lang/sk/edit.txt b/wiki/inc/lang/sk/edit.txt
deleted file mode 100644
index b8d63fb..0000000
--- a/wiki/inc/lang/sk/edit.txt
+++ /dev/null
@@ -1 +0,0 @@
-Upravte stránku a stlaÄte ''UložiÅ¥''. Na stránke [[wiki:syntax]] sa môžete dozvedieÅ¥ viac o Wiki syntaxi. Prosím upravujte stránky, len pokiaľ ich môžete **zdokonaliÅ¥**. Pokiaľ si chcete nieÄo len vyskúšaÅ¥, použite [[playground:playground| pieskovisko]].
diff --git a/wiki/inc/lang/sk/editrev.txt b/wiki/inc/lang/sk/editrev.txt
deleted file mode 100644
index ed15e79..0000000
--- a/wiki/inc/lang/sk/editrev.txt
+++ /dev/null
@@ -1 +0,0 @@
-**Máte naÄítanú starÅ¡iu verziu dokumentu!** Pokiaľ ju uložíte, vytvoríte tým novú aktuálnu verziu.
diff --git a/wiki/inc/lang/sk/index.txt b/wiki/inc/lang/sk/index.txt
deleted file mode 100644
index b4189f2..0000000
--- a/wiki/inc/lang/sk/index.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Index ======
-
-Tu je k dispozícii index všetkých dostupných stránok zoradených podľa [[doku>namespaces|menných priestorov]].
diff --git a/wiki/inc/lang/sk/install.html b/wiki/inc/lang/sk/install.html
deleted file mode 100644
index 86cc6cc..0000000
--- a/wiki/inc/lang/sk/install.html
+++ /dev/null
@@ -1,23 +0,0 @@
-<p>Táto stránka sprevádza prvou inštaláciou a konfiguráciou
-<a href="http://dokuwiki.org">Dokuwiki</a>. Viac informácií o tomto inštalátore je dostupných na jeho
-<a href="http://dokuwiki.org/installer">dokumentaÄnej stránke</a>.</p>
-
-<p>DokuWiki používa bežné súbory pre ukladanie wiki stránok a iných informácií
-priradených k týmto stránkam (napr. obrázkov, vyhľadávacích indexov, starých
-revízií). Ak chcete úspešne narábať s DokuWiki, <strong>musí</strong>
-mať práva pre zápis do adresárov, kde sa ukladajú tieto súbory. Tento inštalátor
-nie je schopný nastaviť prístupové práva pre adresáre. Je potrebné to urobiť
-priamo cez príkazový riadok alebo, ak využívate webhosting, cez FTP alebo vaše
-webhostingové administraÄné rozhranie.</p>
-
-<p>Tento inštalátor nastaví <abbr title="access control list - zoznam prístupových práv">ACL</abbr>
-konfiguráciu vašej Dokuwiki. Umožňuje vytvoriť administrátorské konto
-s prístupom do administraÄného menu s možnosÅ¥ou inÅ¡talácie pluginov, správy
-užívateľov, správy prístupových práv k wiki stránkam a zmeny konfiguraÄných
-nastavení. Nie je nevyhnutné pre používanie Dokuwiki, ale umožňuje to ľahšie
-spravovať Dokuwiki.</p>
-
-<p>Skúsení užívatelia alebo užívatelia so špeciálnymi požiadavkami môžu použiť
-tieto odkazy pre bližšie informácie týkajúce sa
-<a href="http://dokuwiki.org/install">inÅ¡talaÄných pokynov</a>
-a <a href="http://dokuwiki.org/config">konfiguraÄných nastavení</a>.</p>
diff --git a/wiki/inc/lang/sk/jquery.ui.datepicker.js b/wiki/inc/lang/sk/jquery.ui.datepicker.js
deleted file mode 100644
index 16d8bdf..0000000
--- a/wiki/inc/lang/sk/jquery.ui.datepicker.js
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Slovak initialisation for the jQuery UI date picker plugin. */
-/* Written by Vojtech Rinik (vojto@hmm.sk). */
-( function( factory ) {
-	if ( typeof define === "function" && define.amd ) {
-
-		// AMD. Register as an anonymous module.
-		define( [ "../widgets/datepicker" ], factory );
-	} else {
-
-		// Browser globals
-		factory( jQuery.datepicker );
-	}
-}( function( datepicker ) {
-
-datepicker.regional.sk = {
-	closeText: "Zavrieť",
-	prevText: "&#x3C;Predchádzajúci",
-	nextText: "Nasledujúci&#x3E;",
-	currentText: "Dnes",
-	monthNames: [ "január","február","marec","apríl","máj","jún",
-	"júl","august","september","október","november","december" ],
-	monthNamesShort: [ "Jan","Feb","Mar","Apr","Máj","Jún",
-	"Júl","Aug","Sep","Okt","Nov","Dec" ],
-	dayNames: [ "nedeľa","pondelok","utorok","streda","štvrtok","piatok","sobota" ],
-	dayNamesShort: [ "Ned","Pon","Uto","Str","Å tv","Pia","Sob" ],
-	dayNamesMin: [ "Ne","Po","Ut","St","Å t","Pia","So" ],
-	weekHeader: "Ty",
-	dateFormat: "dd.mm.yy",
-	firstDay: 1,
-	isRTL: false,
-	showMonthAfterYear: false,
-	yearSuffix: "" };
-datepicker.setDefaults( datepicker.regional.sk );
-
-return datepicker.regional.sk;
-
-} ) );
diff --git a/wiki/inc/lang/sk/lang.php b/wiki/inc/lang/sk/lang.php
deleted file mode 100644
index bd8d1c9..0000000
--- a/wiki/inc/lang/sk/lang.php
+++ /dev/null
@@ -1,340 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Martin Michalek <michalek.dev@gmail.com>
- * @author Ondrej Vegh <ov@vsieti.sk> with help of the scholars from Zdruzena stredna skola polygraficka in Bratislava
- * @author Michal Mesko <michal.mesko@gmail.com>
- * @author exusik <exusik@gmail.com>
- */
-$lang['encoding']              = 'utf-8';
-$lang['direction']             = 'ltr';
-$lang['doublequoteopening']    = '„';
-$lang['doublequoteclosing']    = '“';
-$lang['singlequoteopening']    = '‚';
-$lang['singlequoteclosing']    = '‘';
-$lang['apostrophe']            = '’';
-$lang['btn_edit']              = 'Upraviť stránku';
-$lang['btn_source']            = 'Zobraziť zdroj stránky';
-$lang['btn_show']              = 'Zobraziť stránku';
-$lang['btn_create']            = 'Vytvoriť stránku';
-$lang['btn_search']            = 'Hľadať';
-$lang['btn_save']              = 'Uložiť';
-$lang['btn_preview']           = 'Náhľad';
-$lang['btn_top']               = 'Hore';
-$lang['btn_newer']             = '<< novšie';
-$lang['btn_older']             = 'staršie >>';
-$lang['btn_revs']              = 'Staršie verzie';
-$lang['btn_recent']            = 'Posledné úpravy';
-$lang['btn_upload']            = 'Nahrať';
-$lang['btn_cancel']            = 'Storno';
-$lang['btn_index']             = 'Index';
-$lang['btn_secedit']           = 'Upraviť';
-$lang['btn_login']             = 'Prihlásiť sa';
-$lang['btn_logout']            = 'Odhlásiť sa';
-$lang['btn_admin']             = 'Admin';
-$lang['btn_update']            = 'Aktualizovať';
-$lang['btn_delete']            = 'Zmazať';
-$lang['btn_back']              = 'Späť';
-$lang['btn_backlink']          = 'Spätné odkazy';
-$lang['btn_subscribe']         = 'Sledovať zmeny';
-$lang['btn_profile']           = 'Aktualizovať profil';
-$lang['btn_reset']             = 'Zrušiť';
-$lang['btn_resendpwd']         = 'Nastaviť nové heslo';
-$lang['btn_draft']             = 'Upraviť koncept';
-$lang['btn_recover']           = 'Obnoviť koncept';
-$lang['btn_draftdel']          = 'Zmazať koncept';
-$lang['btn_revert']            = 'Obnoviť';
-$lang['btn_register']          = 'Registrovať';
-$lang['btn_apply']             = 'Použiť';
-$lang['btn_media']             = 'Správa médií';
-$lang['btn_deleteuser']        = 'ZruÅ¡iÅ¥ môj úÄet';
-$lang['btn_img_backto']        = 'Späť na %s';
-$lang['btn_mediaManager']      = 'Prezrieť v správcovi médií';
-$lang['loggedinas']            = 'Prihlásený(á) ako:';
-$lang['user']                  = 'Používateľské meno';
-$lang['pass']                  = 'Heslo';
-$lang['newpass']               = 'Nové heslo';
-$lang['oldpass']               = 'PotvrÄ aktuálne heslo';
-$lang['passchk']               = 'Ešte raz znovu';
-$lang['remember']              = 'Zapamätaj si ma';
-$lang['fullname']              = 'Celé meno';
-$lang['email']                 = 'E-Mail';
-$lang['profile']               = 'Používateľský profil';
-$lang['badlogin']              = 'Zadané používateľské meno a heslo nie je správne.';
-$lang['badpassconfirm']        = 'Ľutujem, heslo bolo nesprávne.';
-$lang['minoredit']             = 'Menšie zmeny';
-$lang['draftdate']             = 'Koncept automaticky uložený';
-$lang['nosecedit']             = 'Stránka bola medziÄasom zmenená, informácie o sekcii sú zastaralé a z tohto dôvodu bola nahraná celá stránka.';
-$lang['regmissing']            = 'Musíte vyplniť všetky údaje.';
-$lang['reguexists']            = 'Používateľ s rovnakým menom je už zaregistrovaný.';
-$lang['regsuccess']            = 'Používateľský úÄet bol vytvorený a heslo zaslané emailom.';
-$lang['regsuccess2']           = 'Používateľský úÄet bol vytvorený.';
-$lang['regfail']               = 'Používateľský úÄet nemôže byÅ¥ vytvorený.';
-$lang['regmailfail']           = 'Zdá sa, že nastala chyba pri posielaní mailu s heslom. Skúste kontaktovať správcu.';
-$lang['regbadmail']            = 'Zadaná emailová adresa nie je platná. Pokiaľ si myslíte, že to je zle, skúste kontaktovať správcu.';
-$lang['regbadpass']            = 'Zadané heslá nie sú rovnaké, zadajte ich prosím znovu.';
-$lang['regpwmail']             = 'Vaše heslo do systému DokuWiki';
-$lang['reghere']               = 'Nemáte používateľský úÄet? Vytvorte si ho';
-$lang['profna']                = 'Táto wiki nepodporuje zmenu profilu';
-$lang['profnochange']          = 'Žiadne zmeny, nie je Äo robiÅ¥.';
-$lang['profnoempty']           = 'Prázdne meno alebo mailová adresa nie sú povolené.';
-$lang['profchanged']           = 'Profil požívateľa bol úspešne zmenený.';
-$lang['profnodelete']          = 'Táto wiki neumožňuje zrušenie používateľov.';
-$lang['profdeleteuser']        = 'ZruÅ¡iÅ¥ úÄet';
-$lang['profdeleted']           = 'Váš úÄet bol zruÅ¡ený v tejto wiki.';
-$lang['profconfdelete']        = 'Chcem odstrániÅ¥ môj úÄet z tejto wiki. <br/> Táto operácia je nevratná.';
-$lang['profconfdeletemissing'] = 'Nebolo zavolené potvrdzovacie políÄko';
-$lang['proffail']              = 'Profil používateľa nebol aktualizovaný.';
-$lang['pwdforget']             = 'Zabudli ste heslo? Získajte nové!';
-$lang['resendna']              = 'Táto wiki nepodporuje opätovné zasielanie hesla.';
-$lang['resendpwd']             = 'Nastaviť nové heslo pre';
-$lang['resendpwdmissing']      = 'PrepáÄte, musíte vyplniÅ¥ vÅ¡etky polia.';
-$lang['resendpwdnouser']       = 'PrepáÄte, nemôžeme nájsÅ¥ zadaného používateľa v databáze.';
-$lang['resendpwdbadauth']      = 'PrepáÄte, tento autorizaÄný kód nie je platný. Uistite sa, Äi ste použili celý autorizaÄný odkaz.';
-$lang['resendpwdconfirm']      = 'AutorizaÄný odkaz bol zaslaný na e-mail.';
-$lang['resendpwdsuccess']      = 'Vaše nové heslo bolo zaslané na e-mail.';
-$lang['license']               = 'Ak nie je uvedené inak, obsah tejto wiki je uverejnený pod nasledujúcou licenciou:';
-$lang['licenseok']             = 'Poznámka: Zmenou tejto stránky súhlasíte s uverejnením obsahu pod nasledujúcou licenciou:';
-$lang['searchmedia']           = 'Hľadať meno súboru:';
-$lang['searchmedia_in']        = 'Hľadať v %s';
-$lang['txt_upload']            = 'Vyberte súbor ako prílohu:';
-$lang['txt_filename']          = 'Uložiť ako (voliteľné):';
-$lang['txt_overwrt']           = 'Prepísať existujúci súbor';
-$lang['maxuploadsize']         = 'Obmedzenie max. %s na súbor.';
-$lang['lockedby']              = 'Práve zamknuté:';
-$lang['lockexpire']            = 'Zámok stratí platnosť:';
-$lang['js']['willexpire']      = 'Váš zámok pre editáciu za chvíľu stratí platnosÅ¥.\nAby ste prediÅ¡li konfliktom, stlaÄte tlaÄítko Náhľad a zámok sa predĺži.';
-$lang['js']['notsavedyet']     = 'Neuložené zmeny budú stratené.
-Chcete naozaj pokraÄovaÅ¥?';
-$lang['js']['searchmedia']     = 'Hľadať súbory';
-$lang['js']['keepopen']        = 'Po vybraní súboru ponechať okno otvorené';
-$lang['js']['hidedetails']     = 'Skryť detaily';
-$lang['js']['mediatitle']      = 'Nastavenia odkazu';
-$lang['js']['mediadisplay']    = 'Typ odkazu';
-$lang['js']['mediaalign']      = 'Zarovnanie';
-$lang['js']['mediasize']       = 'Veľkosť obrázka';
-$lang['js']['mediatarget']     = 'Cieľ odkazu';
-$lang['js']['mediaclose']      = 'Zatvoriť';
-$lang['js']['mediainsert']     = 'Vložiť';
-$lang['js']['mediadisplayimg'] = 'Zobraziť obrázok.';
-$lang['js']['mediadisplaylnk'] = 'Zobraziť iba odkaz.';
-$lang['js']['mediasmall']      = 'Malý';
-$lang['js']['mediamedium']     = 'Stredný';
-$lang['js']['medialarge']      = 'Veľký';
-$lang['js']['mediaoriginal']   = 'Originál';
-$lang['js']['medialnk']        = 'Odkaz na stránku s detailným popisom';
-$lang['js']['mediadirect']     = 'Priamy odkaz na originál';
-$lang['js']['medianolnk']      = 'Žiadny odkaz';
-$lang['js']['medianolink']     = 'Bez odkazu na obrázok';
-$lang['js']['medialeft']       = 'Zarovnať obrázok vľavo.';
-$lang['js']['mediaright']      = 'Zarovnať obrázok vpravo.';
-$lang['js']['mediacenter']     = 'Zarovnať obrázok na stred.';
-$lang['js']['medianoalign']    = 'Nepoužívať zarovnanie.';
-$lang['js']['nosmblinks']      = 'Odkazovanie na zdieľané prostriedky Windows funguje len v Internet Exploreri.
-Aj napriek tomu tento odkaz môžete skopírovať a vložiť inde.';
-$lang['js']['linkwiz']         = 'Sprievodca odkazmi';
-$lang['js']['linkto']          = 'Odkaz na:';
-$lang['js']['del_confirm']     = 'Zmazať túto položku?';
-$lang['js']['restore_confirm'] = 'SkutoÄne obnoviÅ¥ túto verziu?';
-$lang['js']['media_diff']      = 'Zobraziť rozdiely:';
-$lang['js']['media_diff_both'] = 'Vedľa seba';
-$lang['js']['media_diff_opacity'] = 'Presvitaním';
-$lang['js']['media_diff_portions'] = 'Potiahnutím';
-$lang['js']['media_select']    = 'Vybrať súbory...';
-$lang['js']['media_upload_btn'] = 'Nahrať';
-$lang['js']['media_done_btn']  = 'Hotovo';
-$lang['js']['media_drop']      = 'Pridajte súbory potiahnutím myšou';
-$lang['js']['media_cancel']    = 'odstrániť';
-$lang['js']['media_overwrt']   = 'Prepísať existujúce súbory';
-$lang['rssfailed']             = 'Nastala chyba pri vytváraní tohto RSS: ';
-$lang['nothingfound']          = 'NiÄ nenájdené.';
-$lang['mediaselect']           = 'Výber súboru';
-$lang['uploadsucc']            = 'Prenos prebehol v poriadku';
-$lang['uploadfail']            = 'Chyba pri nahrávaní. Možno kvôli zle nastaveným právam?';
-$lang['uploadwrong']           = 'Prenos súboru s takouto príponou nie je dovolený.';
-$lang['uploadexist']           = 'Súbor už existuje. Žiadna akcia.';
-$lang['uploadbadcontent']      = 'Nahraný obsah sa nezhoduje s príponou súboru %s.';
-$lang['uploadspam']            = 'Nahrávanie bolo zablokované spamovým blacklistom.';
-$lang['uploadxss']             = 'Nahrávanie bolo zablokované kvôli potenciálnemu škodlivému obsahu.';
-$lang['uploadsize']            = 'Nahraný súbor bol príliš veľký. (max %s)';
-$lang['deletesucc']            = 'Súbor "%s" bol zmazaný.';
-$lang['deletefail']            = '"%s" nie je možné zmazať - skontrolujte oprávnenia.';
-$lang['mediainuse']            = 'Súbor "%s" nebol zmazaný - je stále používaný.';
-$lang['namespaces']            = 'Menné priestory';
-$lang['mediafiles']            = 'Dostupné súbory';
-$lang['accessdenied']          = 'Nemáte oprávnenie na zobrazenie požadovanej stránky.';
-$lang['mediausage']            = 'Pre odkázanie na súbor použite nasledujúcu syntax:';
-$lang['mediaview']             = 'Zobraziť pôvodný súbor';
-$lang['mediaroot']             = 'root';
-$lang['mediaupload']           = 'NahraÅ¥ súbor do aktuálneho menného priestoru. Pre vytvorenie menného podpriestoru, pridajte jeho názov na zaÄiatok mena súboru (oddelený dvojbodkou)';
-$lang['mediaextchange']        = 'Prípona súboru bola zmenená z .%s na .%s!';
-$lang['reference']             = 'Referencie pre';
-$lang['ref_inuse']             = 'Súbor nemôže byť zmazaný, pretože je stále používaný nasledujúcimi stránkami:';
-$lang['ref_hidden']            = 'Niektoré referencie sú na stránky, pre ktoré nemáte právo na Äítanie';
-$lang['hits']                  = '- poÄet výskytov';
-$lang['quickhits']             = 'Zodpovedajúce stránky';
-$lang['toc']                   = 'Obsah';
-$lang['current']               = 'aktuálne';
-$lang['yours']                 = 'Vaša verzia';
-$lang['diff']                  = 'ZobraziÅ¥ rozdiely voÄi aktuálnej verzii';
-$lang['diff2']                 = 'Zobraziť rozdiely medzi vybranými verziami';
-$lang['difflink']              = 'Odkaz na tento prehľad zmien';
-$lang['diff_type']             = 'Prehľad zmien:';
-$lang['diff_inline']           = 'Vnorený';
-$lang['diff_side']             = 'Vedľa seba';
-$lang['diffprevrev']           = 'Predchádzajúca revízia';
-$lang['diffnextrev']           = 'Nasledujúca revízia';
-$lang['difflastrev']           = 'Posledná revízia';
-$lang['line']                  = 'Riadok';
-$lang['breadcrumb']            = 'História:';
-$lang['youarehere']            = 'Nachádzate sa:';
-$lang['lastmod']               = 'Posledná úprava:';
-$lang['by']                    = 'od';
-$lang['deleted']               = 'odstránené';
-$lang['created']               = 'vytvorené';
-$lang['restored']              = 'stará verzia bola obnovená (%s)';
-$lang['external_edit']         = 'externá úprava';
-$lang['summary']               = 'Komentár k úpravám';
-$lang['noflash']               = 'Pre zobrazenie tohto obsahu potrebujete <a href="http://www.adobe.com/products/flashplayer/">Adobe Flash Plugin</a>.';
-$lang['download']              = 'Stiahnuť';
-$lang['tools']                 = 'Nástroje';
-$lang['user_tools']            = 'Nástroje používateľa';
-$lang['site_tools']            = 'Nástoje správy stránok';
-$lang['page_tools']            = 'Nástoje stránky';
-$lang['skip_to_content']       = 'skok na obsah';
-$lang['sidebar']               = 'BoÄný panel';
-$lang['mail_newpage']          = 'stránka pridaná:';
-$lang['mail_changed']          = 'stránka zmenená:';
-$lang['mail_subscribe_list']   = 'stránky zmenené v mennom priestore:';
-$lang['mail_new_user']         = 'nový používateľ:';
-$lang['mail_upload']           = 'nahraný súbor:';
-$lang['changes_type']          = 'Prehľad zmien';
-$lang['pages_changes']         = 'Stránok';
-$lang['media_changes']         = 'Súbory';
-$lang['both_changes']          = 'Stránok spolu s média súbormi';
-$lang['qb_bold']               = 'TuÄné';
-$lang['qb_italic']             = 'Kurzíva';
-$lang['qb_underl']             = 'PodÄiarknutie';
-$lang['qb_code']               = 'Neformátovať (zdrojový kód)';
-$lang['qb_strike']             = 'PreÄiarknutie';
-$lang['qb_h1']                 = 'Nadpis 1. úrovne';
-$lang['qb_h2']                 = 'Nadpis 2. úrovne';
-$lang['qb_h3']                 = 'Nadpis 3. úrovne';
-$lang['qb_h4']                 = 'Nadpis 4. úrovne';
-$lang['qb_h5']                 = 'Nadpis 5. úrovne';
-$lang['qb_h']                  = 'Nadpis';
-$lang['qb_hs']                 = 'Zvoliť nadpis';
-$lang['qb_hplus']              = 'Nadpis vyššej úrovne';
-$lang['qb_hminus']             = 'Nadpis nižšej úrovne';
-$lang['qb_hequal']             = 'Nadpis predchádzajúcej úrovne';
-$lang['qb_link']               = 'Interný odkaz';
-$lang['qb_extlink']            = 'Externý odkaz';
-$lang['qb_hr']                 = 'Horizontálna linka';
-$lang['qb_ol']                 = 'Číslovaný zoznam';
-$lang['qb_ul']                 = 'NeÄíslovaný zoznam';
-$lang['qb_media']              = 'Vložiť obrázky alebo iné súbory';
-$lang['qb_sig']                = 'Vložiť podpis';
-$lang['qb_smileys']            = 'Smajlíky';
-$lang['qb_chars']              = 'Špeciálne znaky';
-$lang['upperns']               = 'návrat do nadradeného menného priestoru';
-$lang['metaedit']              = 'Upraviť metainformácie';
-$lang['metasaveerr']           = 'Zápis metainformácií zlyhal';
-$lang['metasaveok']            = 'Metainformácie uložené';
-$lang['img_title']             = 'Titul:';
-$lang['img_caption']           = 'Popis:';
-$lang['img_date']              = 'Dátum:';
-$lang['img_fname']             = 'Názov súboru:';
-$lang['img_fsize']             = 'Veľkosť:';
-$lang['img_artist']            = 'Fotograf:';
-$lang['img_copyr']             = 'Kopírovacie práva:';
-$lang['img_format']            = 'Formát:';
-$lang['img_camera']            = 'Fotoaparát:';
-$lang['img_keywords']          = 'KľúÄové slová:';
-$lang['img_width']             = 'Šírka:';
-$lang['img_height']            = 'Výška:';
-$lang['subscr_subscribe_success'] = 'Používateľ %s bol pridaný do zoznamu hlásení o zmenách %s';
-$lang['subscr_subscribe_error'] = 'Chyba pri pridaní používateľa %s do zoznamu hlásení o zmenách %s';
-$lang['subscr_subscribe_noaddress'] = 'Vaše prihlasovacie meno nemá priradenú žiadnu email adresu, nemôžete byť pridaný do zoznamu hlásení o zmenách';
-$lang['subscr_unsubscribe_success'] = 'Používateľ %s bol odstránený zo zoznamu hlásení o zmenách %s';
-$lang['subscr_unsubscribe_error'] = 'Chyba pri odstránení používateľa %s zo zoznamu hlásení o zmenách %s';
-$lang['subscr_already_subscribed'] = 'Používateľ %s už je v zozname hlásení o zmenách %s';
-$lang['subscr_not_subscribed'] = 'Používateľ %s nie je v zozname hlásení o zmenách %s';
-$lang['subscr_m_not_subscribed'] = 'Momentálne nesledujete zmeny aktuálnej stránky alebo menného priestoru.';
-$lang['subscr_m_new_header']   = 'Pridať sledovanie zmien';
-$lang['subscr_m_current_header'] = 'Aktuálne sledované zmeny';
-$lang['subscr_m_unsubscribe']  = 'Nesledovať zmeny';
-$lang['subscr_m_subscribe']    = 'Sledovať zmeny';
-$lang['subscr_m_receive']      = 'Dostávať';
-$lang['subscr_style_every']    = 'email pri každej zmene';
-$lang['subscr_style_digest']   = 'email so zhrnutím zmien pre každú stránku (perióda %.2f dňa)';
-$lang['subscr_style_list']     = 'zoznam zmenených stránok od posledného emailu (perióda %.2f dňa)';
-$lang['authtempfail']          = 'Používateľská autentifikácia je doÄasne nedostupná. Ak táto situácia pretrváva, prosím informujte správcu systému.';
-$lang['i_chooselang']          = 'Zvoľte váš jazyk';
-$lang['i_installer']           = 'DokuWiki inštalátor';
-$lang['i_wikiname']            = 'Názov Wiki';
-$lang['i_enableacl']           = 'AktivovaÅ¥ ACL (doporuÄené)';
-$lang['i_superuser']           = 'Správca';
-$lang['i_problems']            = 'InÅ¡talátor narazil na nižšie uvedené problémy. Nemôžete pokraÄovaÅ¥, pokiaľ ich neodstránite.';
-$lang['i_modified']            = 'Z bezpeÄnostných dôvodov bude tento skript fungovaÅ¥ iba s novou, neupravenou inÅ¡taláciou Dokuwiki. Môžete buÄ znovu rozbaliÅ¥ stiahnutý inÅ¡talaÄný balík alebo preÅ¡tudovaÅ¥ <a href="http://dokuwiki.org/install"> inÅ¡talaÄné inÅ¡trukcie Dokuwiki</a>';
-$lang['i_funcna']              = 'PHP funkcia <code>%s</code> nie je dostupná. Je možné, že ju z urÄitých dôvodov zablokoval váš poskytovateľ webhostingu?';
-$lang['i_phpver']              = 'Vaša verzia PHP <code>%s</code> je nižšia ako požadovaná <code>%s</code>. Potrebujete aktualizovať Vašu inštaláciu PHP.';
-$lang['i_mbfuncoverload']      = 'mbstring.func_overload musí byt zakázaná v php.ini pre bezproblémový chod DokuWiki.';
-$lang['i_permfail']            = '<code>%s</code> nie je zapisovateľný pre DokuWiki. Musíte zmeniť prístupové práva pre tento adresár!';
-$lang['i_confexists']          = '<code>%s</code> už existuje';
-$lang['i_writeerr']            = 'Nie je možné vytvoriť <code>%s</code>. Potrebujete skontrolovať prístupové práva pre adresár/súbor a vytvoriť ho manuálne.';
-$lang['i_badhash']             = 'neznámy alebo zmenený súbor dokuwiki.php (hash=<code>%s</code>)';
-$lang['i_badval']              = '<code>%s</code> - nesprávna alebo žiadna hodnota';
-$lang['i_success']             = 'Konfigurácia bola úspeÅ¡ne ukonÄená. Teraz môžete zmazaÅ¥ súbor install.php. PokraÄujte vo <a href="doku.php?id=wiki:welcome">vaÅ¡ej novej DokuWiki</a>.';
-$lang['i_failure']             = 'Pri zápise konfiguraÄného súboru nastali nejaké chyby. Potrebujete ich opraviÅ¥ manuálne pred tým, ako budete môcÅ¥ používaÅ¥ <a href="doku.php?id=wiki:welcome">vaÅ¡u novú DokuWiki</a>.';
-$lang['i_policy']              = 'PoÄiatoÄná ACL politika';
-$lang['i_pol0']                = 'Otvorená Wiki (Äítanie, zápis a nahrávanie pre každého)';
-$lang['i_pol1']                = 'Verejná Wiki (Äítanie pre každého, zápis a nahrávanie pre registrovaných používateľov)';
-$lang['i_pol2']                = 'Uzatvorená Wiki (Äítanie, zápis a nahrávanie len pre registrovaných používateľov)';
-$lang['i_allowreg']            = 'Povolenie samostanej registrácie používateľov';
-$lang['i_retry']               = 'Skúsiť znovu';
-$lang['i_license']             = 'Vyberte licenciu, pod ktorou chcete uložiť váš obsah:';
-$lang['i_license_none']        = 'NezobrazovaÅ¥ žiadne licenÄné informácie';
-$lang['i_pop_field']           = 'Prosím pomôžte nám zlepšiť prácu s DokuWiki:';
-$lang['i_pop_label']           = 'Raz mesaÄne zaslaÅ¥ anonymné údaje vývojárom DokuWiki';
-$lang['recent_global']         = 'Práve prehliadate zmeny v mennom priestore <b>%s</b>. Môžete si tiež pozrieť <a href="%s">aktuálne zmeny celej wiki</a>.';
-$lang['years']                 = 'pred %d rokmi';
-$lang['months']                = 'pred %d mesiacmi';
-$lang['weeks']                 = 'pred %d týždňami';
-$lang['days']                  = 'pred %d dňami';
-$lang['hours']                 = 'pred %d hodinami';
-$lang['minutes']               = 'pred %d minútami';
-$lang['seconds']               = 'pred %d sekundami';
-$lang['wordblock']             = 'Vaše zmeny neboli uložené, pretože obsahovali nepovolený text (spam).';
-$lang['media_uploadtab']       = 'Nahrať';
-$lang['media_searchtab']       = 'Hľadať';
-$lang['media_file']            = 'Súbor';
-$lang['media_viewtab']         = 'Náhľad';
-$lang['media_edittab']         = 'Upraviť';
-$lang['media_historytab']      = 'História';
-$lang['media_list_thumbs']     = 'Miniatúry';
-$lang['media_list_rows']       = 'Zoznam';
-$lang['media_sort_name']       = 'Meno';
-$lang['media_sort_date']       = 'Dátum';
-$lang['media_namespaces']      = 'Vybrať priestor';
-$lang['media_files']           = 'Súbory v %s';
-$lang['media_upload']          = 'Nahrať do %s';
-$lang['media_search']          = 'Hľadať v %s';
-$lang['media_view']            = '%s';
-$lang['media_viewold']         = '%s v %s';
-$lang['media_edit']            = 'Upraviť %s';
-$lang['media_history']         = 'História %s';
-$lang['media_meta_edited']     = 'metadáta upravené';
-$lang['media_perm_read']       = 'PrepáÄte, ale nemáte dostatoÄné oprávnenie na Äítanie súborov.';
-$lang['media_perm_upload']     = 'PrepáÄte, ale nemáte dostatoÄné oprávnenie na nahrávanie súborov.';
-$lang['media_update']          = 'Nahrať novú verziu';
-$lang['media_restore']         = 'Obnoviť túto verziu';
-$lang['media_acl_warning']     = 'Tento zoznam nemusí byť úplný z dôvodu ACL obmedzení alebo skratých stránok.';
-$lang['currentns']             = 'Aktuálny menný priestor';
-$lang['searchresult']          = 'Výsledky hľadania';
-$lang['plainhtml']             = 'Jednoduché HTML';
-$lang['wikimarkup']            = 'Wiki formát';
-$lang['unable_to_parse_date']  = 'Nie je možné spracovať parameter "%s".';
-$lang['email_signature_text']  = 'Táto správa bola zaslaná DokuWiki
-@DOKUWIKIURL@';
diff --git a/wiki/inc/lang/sk/locked.txt b/wiki/inc/lang/sk/locked.txt
deleted file mode 100644
index fae400b..0000000
--- a/wiki/inc/lang/sk/locked.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Stránka je uzamknutá ======
-
-Tato stránka je práve uzamknutá pre úpravy iným používateľom. Musíte poÄkaÅ¥ dovtedy, pokiaľ daný používateľ dokonÄí svoje úpravy alebo pokiaľ tento zámok stratí platnosÅ¥.
diff --git a/wiki/inc/lang/sk/login.txt b/wiki/inc/lang/sk/login.txt
deleted file mode 100644
index 3bfc910..0000000
--- a/wiki/inc/lang/sk/login.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Prihlásenie ======
-
-Momentálne nie ste prihlásený(á)! Prosím vložte svoje identifikaÄné údaje. Pre prihlásenie musíte maÅ¥ zapnuté cookies.
diff --git a/wiki/inc/lang/sk/mailtext.txt b/wiki/inc/lang/sk/mailtext.txt
deleted file mode 100644
index da2f441..0000000
--- a/wiki/inc/lang/sk/mailtext.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-Stránka vo vašej DokuWiki bola zmenená. Tu sú podrobnosti:
-
-Dátum : @DATE@
-PrehliadaÄ : @BROWSER@
-IP adresa : @IPADDRESS@
-Adresa : @HOSTNAME@
-Stará verzia : @OLDPAGE@
-Nová verzia : @NEWPAGE@
-Komentár : @SUMMARY@
-User : @USER@
-
-@DIFF@
diff --git a/wiki/inc/lang/sk/mailwrap.html b/wiki/inc/lang/sk/mailwrap.html
deleted file mode 100644
index d257190..0000000
--- a/wiki/inc/lang/sk/mailwrap.html
+++ /dev/null
@@ -1,13 +0,0 @@
-<html>
-<head>
-<title>@TITLE@</title>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-</head>
-<body>
-
-@HTMLBODY@
-
-<br /><hr />
-<small>@EMAILSIGNATURE@</small>
-</body>
-</html>
\ No newline at end of file
diff --git a/wiki/inc/lang/sk/newpage.txt b/wiki/inc/lang/sk/newpage.txt
deleted file mode 100644
index 180d80e..0000000
--- a/wiki/inc/lang/sk/newpage.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Stránka s týmto názvom ešte neexistuje ======
-
-Odkaz vás zaviedol na stránku, ktorá eÅ¡te neexistuje. Môžete ju vytvoriÅ¥ stlaÄením tlaÄítka ''VytvoriÅ¥ stránku''.
diff --git a/wiki/inc/lang/sk/norev.txt b/wiki/inc/lang/sk/norev.txt
deleted file mode 100644
index f664ae4..0000000
--- a/wiki/inc/lang/sk/norev.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Takáto verzia neexistuje ======
-
-Zadaná verzia neexistuje. StlaÄte tlaÄítko ''StarÅ¡ie verzie'' pre zoznam starších verzií tohoto dokumentu.
diff --git a/wiki/inc/lang/sk/password.txt b/wiki/inc/lang/sk/password.txt
deleted file mode 100644
index 8d0907e..0000000
--- a/wiki/inc/lang/sk/password.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-Dobrý deň,
-
-Tu sú prihlasovacie informácie pre @TITLE@ (@DOKUWIKIURL@)
-
-Meno : @FULLNAME@
-Používateľské meno : @LOGIN@
-Heslo : @PASSWORD@
diff --git a/wiki/inc/lang/sk/preview.txt b/wiki/inc/lang/sk/preview.txt
deleted file mode 100644
index 871bca3..0000000
--- a/wiki/inc/lang/sk/preview.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Náhľad ======
-
-Tu je náhľad, ako bude dokument vyzerať. Pozor: Súbor zatiaľ **nie je uložený**!
diff --git a/wiki/inc/lang/sk/pwconfirm.txt b/wiki/inc/lang/sk/pwconfirm.txt
deleted file mode 100644
index f8ba97a..0000000
--- a/wiki/inc/lang/sk/pwconfirm.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-Ahoj @FULLNAME@!
-
-Niekto žiadal o nové heslo pre vaše @TITLE@
-konto na @DOKUWIKIURL@
-
-Ak ste nežiadali o nové heslo, potom iba ignorujte tento mail.
-
-Pre potvrdenie, že požiadavka bola skutoÄne odoslaná vami,
-použite prosím nasledujúci odkaz.
-
-@CONFIRM@
diff --git a/wiki/inc/lang/sk/read.txt b/wiki/inc/lang/sk/read.txt
deleted file mode 100644
index 64b7ed2..0000000
--- a/wiki/inc/lang/sk/read.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-Táto stránka je iba na Äítanie. Môžete si prehliadnuÅ¥ zdrojový kód, ale nemôžete ho meniÅ¥. Opýtajte sa správcu, ak si myslíte, že nieÄo nie je v poriadku.
-
diff --git a/wiki/inc/lang/sk/recent.txt b/wiki/inc/lang/sk/recent.txt
deleted file mode 100644
index d9f7c3b..0000000
--- a/wiki/inc/lang/sk/recent.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Posledné úpravy ======
-
-Nasledujúce stránky boli nedávno zmenené.
diff --git a/wiki/inc/lang/sk/register.txt b/wiki/inc/lang/sk/register.txt
deleted file mode 100644
index b939dcc..0000000
--- a/wiki/inc/lang/sk/register.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Zaregistrujte sa ako nový užívateľ ======
-
-Aby ste získali používateľský úÄet, vyplňte prosím vÅ¡etky informácie v nasledujúcom formulári. Zadajte **platnú** mailovú adresu, na ktorú bude zaslané heslo. Používateľské meno musí byÅ¥ v platnom [[doku>pagename|formáte]] (ktorý je rovnaký ako formát názvu stránky).
diff --git a/wiki/inc/lang/sk/registermail.txt b/wiki/inc/lang/sk/registermail.txt
deleted file mode 100644
index 2be1ac3..0000000
--- a/wiki/inc/lang/sk/registermail.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-Nový používateľ bol registrovaný. Tu sú detaily:
-
-Používateľské meno : @NEWUSER@
-Celé meno        : @NEWNAME@
-E-Mail           : @NEWEMAIL@
-
-Dátum            : @DATE@
-PrehliadaÄ       : @BROWSER@
-IP adresa        : @IPADDRESS@
-Meno servera     : @HOSTNAME@
diff --git a/wiki/inc/lang/sk/resendpwd.txt b/wiki/inc/lang/sk/resendpwd.txt
deleted file mode 100644
index 143706b..0000000
--- a/wiki/inc/lang/sk/resendpwd.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Poslať nové heslo ======
-
-Zadajte prosím vaÅ¡e prihlasovacie meno do formulára za úÄelom vygenerovania nového hesla. AutorizaÄný odkaz bude zaslaný na vaÅ¡u zaregistrovanú email adresu.
\ No newline at end of file
diff --git a/wiki/inc/lang/sk/resetpwd.txt b/wiki/inc/lang/sk/resetpwd.txt
deleted file mode 100644
index a4df4a5..0000000
--- a/wiki/inc/lang/sk/resetpwd.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Nastavenie nového hesla ======
-
-Prosím zadajte nové heslo vášho úÄtu v tejto wiki.
diff --git a/wiki/inc/lang/sk/revisions.txt b/wiki/inc/lang/sk/revisions.txt
deleted file mode 100644
index ad99e72..0000000
--- a/wiki/inc/lang/sk/revisions.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Staršie verzie ======
-
-Tu sú starÅ¡ie verzie daného dokumentu. Pre návrat ku starÅ¡ej verzii si ju zvoľte zo zoznamu nižšie, stlaÄte tlaÄidlo ''UpraviÅ¥ stránku'' a uložte ju.
diff --git a/wiki/inc/lang/sk/searchpage.txt b/wiki/inc/lang/sk/searchpage.txt
deleted file mode 100644
index 5905db6..0000000
--- a/wiki/inc/lang/sk/searchpage.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Vyhľadávanie ======
-
-Výsledky hľadania môžete vidieť nižšie. @CREATEPAGEINFO@
-
diff --git a/wiki/inc/lang/sk/showrev.txt b/wiki/inc/lang/sk/showrev.txt
deleted file mode 100644
index b694c23..0000000
--- a/wiki/inc/lang/sk/showrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**Toto je staršia verzia dokumentu!**
-----
diff --git a/wiki/inc/lang/sk/stopwords.txt b/wiki/inc/lang/sk/stopwords.txt
deleted file mode 100644
index 060ee49..0000000
--- a/wiki/inc/lang/sk/stopwords.txt
+++ /dev/null
@@ -1,28 +0,0 @@
-#Toto je zoznam slov ignorovaných indexáciou, jedno slovo na riadok
-# KeÄ editujete tento súbor, uistite sa, Äi používate UNIXové konce riadkov (jednoduchý nový riadok)
-# Nie je potrebné vkladať slová kratšie ako 3 znaky - tie sú ignorované vždy.
-# Tento zoznam je založený na inom nájdenom na http://www.ranks.nl/stopwords/
-okolo
-tvoj
-ale
-ako
-aký
-aká
-aké
-kde
-kým
-kom
-komu
-ich
-jeho
-jej
-tvoj
-môj
-moja
-moje
-moji
-náš
-váš
-www
-
-
diff --git a/wiki/inc/lang/sk/subscr_digest.txt b/wiki/inc/lang/sk/subscr_digest.txt
deleted file mode 100644
index 6d336cb..0000000
--- a/wiki/inc/lang/sk/subscr_digest.txt
+++ /dev/null
@@ -1,16 +0,0 @@
-Dobrý deň!
-
-Stránka @PAGE@ wiki @TITLE@ bola zmenená.
-Zoznam zmien:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-Stará verzia: @OLDPAGE@
-Nová verzia: @NEWPAGE@
-
-Ak si neprajete zasielať tieto správy, prihláste sa do wiki
-@DOKUWIKIURL@, potom prejdite na
-@SUBSCRIBE@
-a odhláste sa z informovania o zmenách stránky alebo menného priestoru.
diff --git a/wiki/inc/lang/sk/subscr_form.txt b/wiki/inc/lang/sk/subscr_form.txt
deleted file mode 100644
index 1f12e9a..0000000
--- a/wiki/inc/lang/sk/subscr_form.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Sledovanie zmien ======
-
-Táto stánka umožňuje sledovať zmeny aktuálnej stránky a menného priestoru.
\ No newline at end of file
diff --git a/wiki/inc/lang/sk/subscr_list.txt b/wiki/inc/lang/sk/subscr_list.txt
deleted file mode 100644
index 7332e77..0000000
--- a/wiki/inc/lang/sk/subscr_list.txt
+++ /dev/null
@@ -1,13 +0,0 @@
-Dobrý deň!
-
-Stránky v mennom priestore @PAGE@ wiki @TITLE@ boli zmenené.
-Zoznam zmenených stránok:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-Ak si neprajete zasielať tieto správy, prihláste sa do wiki
-@DOKUWIKIURL@, potom prejdite na
-@SUBSCRIBE@
-a odhláste sa z informovania o zmenách stránky alebo menného priestoru.
diff --git a/wiki/inc/lang/sk/subscr_single.txt b/wiki/inc/lang/sk/subscr_single.txt
deleted file mode 100644
index 48825a4..0000000
--- a/wiki/inc/lang/sk/subscr_single.txt
+++ /dev/null
@@ -1,19 +0,0 @@
-Dobrý deň!
-
-Stránka @PAGE@ wiki @TITLE@ bola zmenená.
-Zoznam zmien:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-Dátum : @DATE@
-Používateľ : @USER@
-Komentár: @SUMMARY@
-Stará verzia: @OLDPAGE@
-Nová verzia: @NEWPAGE@
-
-Ak si neprajete zasielať tieto správy, prihláste sa do wiki
-@DOKUWIKIURL@, potom prejdite na
-@SUBSCRIBE@
-a odhláste sa z informovania o zmenách stránky alebo menného priestoru.
diff --git a/wiki/inc/lang/sk/updateprofile.txt b/wiki/inc/lang/sk/updateprofile.txt
deleted file mode 100644
index 33b5e5b..0000000
--- a/wiki/inc/lang/sk/updateprofile.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-====== Zmena vášho používateľského profilu ======
-
-Potrebujete vyplniť len tie polia, ktoré chcete zmeniť. Nemôžete zmeniť prihlasovacie meno.
-
-
-
diff --git a/wiki/inc/lang/sk/uploadmail.txt b/wiki/inc/lang/sk/uploadmail.txt
deleted file mode 100644
index df40967..0000000
--- a/wiki/inc/lang/sk/uploadmail.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-Súbor bol nahraný do DokuWiki. Tu sú podrobnosti:
-
-Súbor : @MEDIA@
-Dátum : @DATE@
-PrehliadaÄ : @BROWSER@
-IP adresa : @IPADDRESS@
-Názov hostiteľa : @HOSTNAME@
-Veľkosť : @SIZE@
-MIME Typ : @MIME@
-Užívateľ : @USER@
diff --git a/wiki/inc/lang/sl/admin.txt b/wiki/inc/lang/sl/admin.txt
deleted file mode 100644
index cee19de..0000000
--- a/wiki/inc/lang/sl/admin.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-===== Skrbništvo =====
-
-Navedene možnosti omogoÄajo skrbniÅ¡ko prilagajanje nastavitev sistema DokuWiki.
diff --git a/wiki/inc/lang/sl/adminplugins.txt b/wiki/inc/lang/sl/adminplugins.txt
deleted file mode 100644
index 899c854..0000000
--- a/wiki/inc/lang/sl/adminplugins.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Dodatni vstavki =====
\ No newline at end of file
diff --git a/wiki/inc/lang/sl/backlinks.txt b/wiki/inc/lang/sl/backlinks.txt
deleted file mode 100644
index 5e4d8ff..0000000
--- a/wiki/inc/lang/sl/backlinks.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Povratne povezave ======
-
-Spodaj je naveden seznam strani, ki so povezane na trenutno stran. EnoBesedne povezave niso zaznane kot povratne povezave.
diff --git a/wiki/inc/lang/sl/conflict.txt b/wiki/inc/lang/sl/conflict.txt
deleted file mode 100644
index ec5b370..0000000
--- a/wiki/inc/lang/sl/conflict.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== Obstaja novejÅ¡a razliÄica dokumenta ======
-
-Obstaja novejÅ¡a razliÄica dokumenta, ki ga trenutno urejate. Do zapleta pride, ko drug uporabnik spremeni dokument med vaÅ¡im urejanjem in ga pred vami shrani.
-
-Temeljito preglejte spodaj izpisane razlike med dokumentoma in izberite razliÄico, ki jo želite ohraniti. V kolikor je izbrana možnost ''shrani'', bo shranjena vaÅ¡a zadnja razliÄica. Z izbiro možnosti ''prekliÄi'', pa bo ohranjena trenutno shranjena razliÄica.
diff --git a/wiki/inc/lang/sl/denied.txt b/wiki/inc/lang/sl/denied.txt
deleted file mode 100644
index 206e167..0000000
--- a/wiki/inc/lang/sl/denied.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Ni ustreznih dovoljenj ======
-
-Za nadaljevanje opravila je treba imeti ustrezna dovoljenja.
-
diff --git a/wiki/inc/lang/sl/diff.txt b/wiki/inc/lang/sl/diff.txt
deleted file mode 100644
index 5cb2e3a..0000000
--- a/wiki/inc/lang/sl/diff.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Primerjava izbranih razliÄic ======
-
-Prikazane so razlike med izbrano in trenutno razliÄico strani.
diff --git a/wiki/inc/lang/sl/draft.txt b/wiki/inc/lang/sl/draft.txt
deleted file mode 100644
index b3fe4de..0000000
--- a/wiki/inc/lang/sl/draft.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-===== Zaznan je shranjen osnutek strani =====
-
-Zadnja seja te strani ni bila pravilno zakljuÄena. Sistem DokuWiki je samodejno shranil osnutek strani, ki ga je mogoÄe naprej urejati. Spodaj so navedeni podatki samodejnega shranjevanja zadnje seje.
-
-Vsebino osnutka je mogoÄe //obnoviti// na zadnjo sejo, //izbrisati// samodejno shranjen osnutek ali pa //prekiniti// urejanje.
\ No newline at end of file
diff --git a/wiki/inc/lang/sl/edit.txt b/wiki/inc/lang/sl/edit.txt
deleted file mode 100644
index 71d5fb0..0000000
--- a/wiki/inc/lang/sl/edit.txt
+++ /dev/null
@@ -1 +0,0 @@
-Po koncu urejanja strani, je stran treba ''shraniti''. Navodila in podrobnosti za urejanje je mogoÄe najti na strani [[wiki:syntax|skladnje]]. Možnosti urejanja in pravila skladnje je mogoÄe varno preizkusiti v [[playground:playground|peskovniku]].
diff --git a/wiki/inc/lang/sl/editrev.txt b/wiki/inc/lang/sl/editrev.txt
deleted file mode 100644
index baaacd2..0000000
--- a/wiki/inc/lang/sl/editrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**Naložena je stara razliÄica dokumenta!** V kolikor staro razliÄico shranite, bo shranjena kot najnovejÅ¡a razliÄica.
-----
\ No newline at end of file
diff --git a/wiki/inc/lang/sl/index.txt b/wiki/inc/lang/sl/index.txt
deleted file mode 100644
index dd54d2b..0000000
--- a/wiki/inc/lang/sl/index.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Kazalo ======
-
-Na spodnjem seznamu so izpisane vse wiki strani, ki so na voljo, razvrÅ¡Äene pa so po posameznih [[doku>namespaces|imenskih prostorih]].
-
diff --git a/wiki/inc/lang/sl/install.html b/wiki/inc/lang/sl/install.html
deleted file mode 100644
index a008334..0000000
--- a/wiki/inc/lang/sl/install.html
+++ /dev/null
@@ -1,20 +0,0 @@
-<p>Stran je namenjena pomoÄi pri prvi namestitvi in nastavitvi spletiÅ¡Äa
-<a href="http://dokuwiki.org">Dokuwiki</a>. VeÄ podrobnosti o tem je mogoÄe najti na straneh dokumentacije
-<a href="http://dokuwiki.org/installer">namestitve</a>.</p>
-
-<p>Sistem DokuWiki uporablja obiÄajne besedilne datoteke za shranjevanje
-wiki strani in drugih podrobnosti o teh straneh (npr. slike, kazalo, stare
-razliÄice in drugo). Za pravilno delovanje <strong>mora</strong> imeti sistem DokuWiki prost
-dostop do map in datotek, zato je kljuÄno, da so dovoljenja doloÄena pravilno.
-Z namestilnikom ni mogoÄe spreminjanje dovoljenj map. To je obiÄajno najlažje
-narediti v ukazni lupini ali pa, Äe spletiÅ¡Äe Wiki gostuje na zunanjih
-strežnikih, preko nadzornika FTP povezave (npr. cPanel).</p>
-
-<p>Z namestilnikom lahko spremenite nastavitve dostopa sistema Dokuwiki
-<abbr title="access control list">ACL</abbr>, ki omogoÄa skrbniÅ¡ko prijavo in dostop do upravljanja z vstavki,
-uporabniki, dovoljenji dostopa uporabnikov do doloÄenih strani in do nekaterih
-nastavitev. Za delovanje sistema ACL ni bistven, vendar pa moÄno vpliva na
-enostavnost upravljanja strani in nastavitev.</p>
-
-<p>Zahtevnejši uporabniki ali skrbniki s posebnimi zahtevami namestitve sistema
-si lahko veÄ podrobnosti ogledajo na straneh <a href="http://dokuwiki.org/install">navodil namestitve</a> in <a href="http://dokuwiki.org/config">nastavitve</a>.</p>
\ No newline at end of file
diff --git a/wiki/inc/lang/sl/jquery.ui.datepicker.js b/wiki/inc/lang/sl/jquery.ui.datepicker.js
deleted file mode 100644
index 6891624..0000000
--- a/wiki/inc/lang/sl/jquery.ui.datepicker.js
+++ /dev/null
@@ -1,38 +0,0 @@
-/* Slovenian initialisation for the jQuery UI date picker plugin. */
-/* Written by Jaka Jancar (jaka@kubje.org). */
-/* c = Ä, s = Å¡ z = ž C = ÄŒ S = Å  Z = Ž */
-( function( factory ) {
-	if ( typeof define === "function" && define.amd ) {
-
-		// AMD. Register as an anonymous module.
-		define( [ "../widgets/datepicker" ], factory );
-	} else {
-
-		// Browser globals
-		factory( jQuery.datepicker );
-	}
-}( function( datepicker ) {
-
-datepicker.regional.sl = {
-	closeText: "Zapri",
-	prevText: "&#x3C;Prejšnji",
-	nextText: "Naslednji&#x3E;",
-	currentText: "Trenutni",
-	monthNames: [ "Januar","Februar","Marec","April","Maj","Junij",
-	"Julij","Avgust","September","Oktober","November","December" ],
-	monthNamesShort: [ "Jan","Feb","Mar","Apr","Maj","Jun",
-	"Jul","Avg","Sep","Okt","Nov","Dec" ],
-	dayNames: [ "Nedelja","Ponedeljek","Torek","Sreda","ÄŒetrtek","Petek","Sobota" ],
-	dayNamesShort: [ "Ned","Pon","Tor","Sre","ÄŒet","Pet","Sob" ],
-	dayNamesMin: [ "Ne","Po","To","Sr","ÄŒe","Pe","So" ],
-	weekHeader: "Teden",
-	dateFormat: "dd.mm.yy",
-	firstDay: 1,
-	isRTL: false,
-	showMonthAfterYear: false,
-	yearSuffix: "" };
-datepicker.setDefaults( datepicker.regional.sl );
-
-return datepicker.regional.sl;
-
-} ) );
diff --git a/wiki/inc/lang/sl/lang.php b/wiki/inc/lang/sl/lang.php
deleted file mode 100644
index 213e0f8..0000000
--- a/wiki/inc/lang/sl/lang.php
+++ /dev/null
@@ -1,334 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Simon <sbx@protonmail.ch>
- * @author Jaka Kranjc <lynxlupodian@hotmail.com>
- * @author BoÅ¡tjan SeniÄar <senicar@gmail.com>
- * @author Dejan Levec <webphp@gmail.com>
- * @author Gregor Skumavc (grega.skumavc@gmail.com)
- * @author Matej UrbanÄiÄ (mateju@svn.gnome.org)
- * @author Matej UrbanÄiÄ <mateju@svn.gnome.org>
- * @author Jernej Vidmar <jernej.vidmar@vidmarboehm.com>
- */
-$lang['encoding']              = 'utf-8';
-$lang['direction']             = 'ltr';
-$lang['doublequoteopening']    = '„';
-$lang['doublequoteclosing']    = '“';
-$lang['singlequoteopening']    = '‚';
-$lang['singlequoteclosing']    = '‘';
-$lang['apostrophe']            = '’';
-$lang['btn_edit']              = 'Uredi stran';
-$lang['btn_source']            = 'Pokaži izvorno kodo strani';
-$lang['btn_show']              = 'Pokaži stran';
-$lang['btn_create']            = 'Ustvari stran';
-$lang['btn_search']            = 'PoiÅ¡Äi';
-$lang['btn_save']              = 'Shrani';
-$lang['btn_preview']           = 'Predogled';
-$lang['btn_top']               = 'Nazaj na vrh';
-$lang['btn_newer']             = '<< novejši';
-$lang['btn_older']             = 'starejši >>';
-$lang['btn_revs']              = 'Stare razliÄice';
-$lang['btn_recent']            = 'Nedavne spremembe';
-$lang['btn_upload']            = 'Pošlji';
-$lang['btn_cancel']            = 'PrekliÄi';
-$lang['btn_index']             = 'Kazalo';
-$lang['btn_secedit']           = 'Uredi';
-$lang['btn_login']             = 'Prijava';
-$lang['btn_logout']            = 'Odjava';
-$lang['btn_admin']             = 'Skrbništvo';
-$lang['btn_update']            = 'Posodobi';
-$lang['btn_delete']            = 'Izbriši';
-$lang['btn_back']              = 'Nazaj';
-$lang['btn_backlink']          = 'Povratne povezave';
-$lang['btn_subscribe']         = 'Urejanje naroÄnin';
-$lang['btn_profile']           = 'Posodobi profil';
-$lang['btn_reset']             = 'Ponastavi';
-$lang['btn_resendpwd']         = 'Nastavi novo geslo';
-$lang['btn_draft']             = 'Uredi osnutek';
-$lang['btn_recover']           = 'Obnovi osnutek';
-$lang['btn_draftdel']          = 'Izbriši osnutek';
-$lang['btn_revert']            = 'Povrni';
-$lang['btn_register']          = 'Registracija';
-$lang['btn_apply']             = 'Uveljavi';
-$lang['btn_media']             = 'Urejevalnik predstavnih vsebin';
-$lang['btn_deleteuser']        = 'Odstrani raÄun';
-$lang['btn_img_backto']        = 'Nazaj na %s';
-$lang['btn_mediaManager']      = 'Poglej v urejevalniku predstavnih vsebin';
-$lang['loggedinas']            = 'Prijava kot:';
-$lang['user']                  = 'Uporabniško ime';
-$lang['pass']                  = 'Geslo';
-$lang['newpass']               = 'Novo geslo';
-$lang['oldpass']               = 'Potrdi trenutno geslo';
-$lang['passchk']               = 'Ponovi novo geslo';
-$lang['remember']              = 'Zapomni si me';
-$lang['fullname']              = 'Pravo ime';
-$lang['email']                 = 'Elektronski naslov';
-$lang['profile']               = 'Uporabniški profil';
-$lang['badlogin']              = 'UporabniÅ¡ko ime ali geslo je napaÄno.';
-$lang['badpassconfirm']        = 'Napaka! Geslo ni pravo.';
-$lang['minoredit']             = 'Manjše spremembe';
-$lang['draftdate']             = 'Samodejno shranjevanje osnutka je omogoÄeno';
-$lang['nosecedit']             = 'Stran je bila v vmesnem Äasu spremenjena. Podatki strani so bili zastareli, zato se je celotna vsebina naložila znova.';
-$lang['regmissing']            = 'Izpolniti je treba vsa polja.';
-$lang['reguexists']            = 'Uporabnik s tem imenom že obstaja.';
-$lang['regsuccess']            = 'UporabniÅ¡ki raÄun je uspeÅ¡no ustvarjen. Geslo je bilo poslano na naveden elektronski naslov.';
-$lang['regsuccess2']           = 'UporabniÅ¡ki raÄun je uspeÅ¡no ustvarjen.';
-$lang['regmailfail']           = 'Videti je, da je prišlo do napake med pošiljanjem gesla. Stopite v stik s skrbnikom sistema!';
-$lang['regbadmail']            = 'Videti je, da je naveden elektronski naslov neveljaven - v kolikor je to napaka, stopite v stik s skrbnikom sistema.';
-$lang['regbadpass']            = 'Gesli nista enaki. Poskusite znova.';
-$lang['regpwmail']             = 'Geslo za DokuWiki';
-$lang['reghere']               = 'Nimate Å¡e raÄuna? VpiÅ¡ite se za nov raÄun.';
-$lang['profna']                = 'DokuWiki ne podpira spreminjanja profila.';
-$lang['profnochange']          = 'Brez sprememb.';
-$lang['profnoempty']           = 'Prazno polje elektronskega naslova ali imena ni dovoljeno.';
-$lang['profchanged']           = 'Uporabniški profil je uspešno posodobljen.';
-$lang['profnodelete']          = 'Ni omogoÄena podpora za brisanje uporabnikov.';
-$lang['profdeleteuser']        = 'IzbriÅ¡i raÄun';
-$lang['profdeleted']           = 'UporabniÅ¡ki raÄun je izbrisan.';
-$lang['profconfdeletemissing'] = 'Potrditveno okno ni oznaÄeno';
-$lang['pwdforget']             = 'Ali ste pozabili geslo? Pridobite si novo geslo.';
-$lang['resendna']              = 'DokuWiki ne podpira možnosti ponovnega pošiljanja gesel.';
-$lang['resendpwd']             = 'Nastavi novo geslo za';
-$lang['resendpwdmissing']      = 'Izpolniti je treba vsa polja.';
-$lang['resendpwdnouser']       = 'Podanega uporabniÅ¡kega imena v podatkovni zbirki ni mogoÄe najti.';
-$lang['resendpwdbadauth']      = 'Koda za overitev ni prava. PrepriÄajte se, da ste uporabili celotno povezavo za potrditev.';
-$lang['resendpwdconfirm']      = 'Povezava za potrditev raÄuna je bila poslana na elektronski naslov.';
-$lang['resendpwdsuccess']      = 'Novo geslo je bilo poslano na elektronski naslov.';
-$lang['license']               = 'V kolikor ni posebej doloÄeno, je vsebina Wiki strani objavljena pod pogoji dovoljenja:';
-$lang['licenseok']             = 'Opomba: z urejanjem vsebine strani, se strinjate z objavo pod pogoji dovoljenja:';
-$lang['searchmedia']           = 'PoiÅ¡Äi ime datoteke:';
-$lang['searchmedia_in']        = 'PoiÅ¡Äi v %s';
-$lang['txt_upload']            = 'Izberite datoteko za pošiljanje:';
-$lang['txt_filename']          = 'Pošlji z imenom (izborno):';
-$lang['txt_overwrt']           = 'PrepiÅ¡i obstojeÄo datoteko';
-$lang['lockedby']              = 'Trenutno je zaklenjeno s strani:';
-$lang['lockexpire']            = 'Zaklep preteÄe ob:';
-$lang['js']['willexpire']      = 'Zaklep za urejevanje bo pretekel Äez eno minuto.\nV izogib sporom, uporabite predogled, da se merilnik Äasa za zaklep ponastavi.';
-$lang['js']['notsavedyet']     = 'Neshranjene spremembe bodo izgubljene.';
-$lang['js']['searchmedia']     = 'PoiÅ¡Äi datoteke';
-$lang['js']['keepopen']        = 'Od izbiri ohrani okno odprto';
-$lang['js']['hidedetails']     = 'Skrij podrobnosti';
-$lang['js']['mediatitle']      = 'Nastavitve povezave';
-$lang['js']['mediadisplay']    = 'Vrsta povezave';
-$lang['js']['mediaalign']      = 'Poravnava';
-$lang['js']['mediasize']       = 'Velikost slike';
-$lang['js']['mediatarget']     = 'Mesto povezave';
-$lang['js']['mediaclose']      = 'Zapri';
-$lang['js']['mediainsert']     = 'Vstavi';
-$lang['js']['mediadisplayimg'] = 'Pokaži sliko.';
-$lang['js']['mediadisplaylnk'] = 'Pokaži le povezavo.';
-$lang['js']['mediasmall']      = 'Majhna razliÄica';
-$lang['js']['mediamedium']     = 'Srednja razliÄica';
-$lang['js']['medialarge']      = 'Velika razliÄica';
-$lang['js']['mediaoriginal']   = 'Izvorna razliÄica';
-$lang['js']['medialnk']        = 'Povezava na strani podrobnosti';
-$lang['js']['mediadirect']     = 'Neposredna povezava do izvorne razliÄice';
-$lang['js']['medianolnk']      = 'Brez povezave';
-$lang['js']['medianolink']     = 'Ne poveži s sliko';
-$lang['js']['medialeft']       = 'Poravnaj sliko na levo.';
-$lang['js']['mediaright']      = 'Poravnaj sliko na desno.';
-$lang['js']['mediacenter']     = 'Poravnaj sliko na sredini.';
-$lang['js']['medianoalign']    = 'Ne uporabi poravnave.';
-$lang['js']['nosmblinks']      = 'Povezovanje do souporabnih datotek sistema Windows deluje le pri uporabi brskalnika Microsoft Internet Explorer. Povezavo je mogoÄe kopirati roÄno.';
-$lang['js']['linkwiz']         = 'ÄŒarovnik za povezave';
-$lang['js']['linkto']          = 'Poveži na:';
-$lang['js']['del_confirm']     = 'Ali naj se res izbrišejo izbrani predmeti?';
-$lang['js']['restore_confirm'] = 'Ali naj se koda obnovi na to razliÄico?';
-$lang['js']['media_diff']      = 'Razlike:';
-$lang['js']['media_diff_both'] = 'Eno ob drugem';
-$lang['js']['media_diff_opacity'] = 'Prosojno';
-$lang['js']['media_select']    = 'Izbor datotek ...';
-$lang['js']['media_upload_btn'] = 'Naloži';
-$lang['js']['media_done_btn']  = 'KonÄano';
-$lang['js']['media_drop']      = 'Spusti datoteke za nalaganje.';
-$lang['js']['media_cancel']    = 'odstrani';
-$lang['js']['media_overwrt']   = 'PrepiÅ¡i obstojeÄe datoteke';
-$lang['rssfailed']             = 'Prišlo je do napake med pridobivanjem vira: ';
-$lang['nothingfound']          = 'Ni najdenih predmetov.';
-$lang['mediaselect']           = 'Predstavne datoteke';
-$lang['uploadsucc']            = 'PoÅ¡iljanje je bilo uspeÅ¡no konÄano.';
-$lang['uploadfail']            = 'Pošiljanje je spodletelo. Morda so uporabljena neustrezna dovoljenja.';
-$lang['uploadwrong']           = 'Pošiljanje je zavrnjeno. Uporabljena pripona datoteke je prepovedana.';
-$lang['uploadexist']           = 'Datoteka že obstaja. Ni sprememb.';
-$lang['uploadbadcontent']      = 'Poslana datoteka se ne sklada s pripono (%s) datoteke.';
-$lang['uploadspam']            = 'PoÅ¡iljanje je bilo ustavljeno na podlagi zapisa na Ärnem seznamu neželenih datotek.';
-$lang['uploadxss']             = 'Pošiljanje je zaustavljeno zaradi morebitne zlonamerne vsebine.';
-$lang['uploadsize']            = 'poslana datoteka prevelika (najveÄja dovoljena velikost je %s).';
-$lang['deletesucc']            = 'Datoteka "%s" je izbrisana.';
-$lang['deletefail']            = 'Datoteke "%s" ni mogoÄe izbrisati - preverite uporabniÅ¡ka dovoljenja.';
-$lang['mediainuse']            = 'Datoteka "%s" ni izbrisana - datoteka je še vedno v uporabi.';
-$lang['namespaces']            = 'Imenski prostori';
-$lang['mediafiles']            = 'Datoteke, ki so na voljo v';
-$lang['accessdenied']          = 'Za ogled te strani so zahtevana posebna dovoljenja.';
-$lang['mediausage']            = 'Za navajanje datoteke je treba uporabiti navedeno skladnjo:';
-$lang['mediaview']             = 'Pogled izvorne datoteke';
-$lang['mediaroot']             = 'koren';
-$lang['mediaupload']           = 'PoÅ¡iljanje datoteke v trenutni imenski prostor. Za ustvarjanje novih imenskih prostorov, jih pripnite k imenu datoteke navedene pri vnosnem polju "Naloži kot" in jih loÄite z dvopiÄjem.';
-$lang['mediaextchange']        = 'Pripona datoteke je spremenjena iz .%s v .%s!';
-$lang['reference']             = 'Sklic za';
-$lang['ref_inuse']             = 'Datoteke ni mogoÄe izbrisati, saj je Å¡e vedno povezana s stranmi:';
-$lang['ref_hidden']            = 'Nekaj sklicev je navedenih na straneh, do katerih s trenutnimi dovoljenji ni mogoÄ dostop.';
-$lang['hits']                  = 'Zadetki';
-$lang['quickhits']             = 'Ujemanje imen strani';
-$lang['toc']                   = 'Kazalo';
-$lang['current']               = 'Trenutna';
-$lang['yours']                 = 'VaÅ¡a razliÄica';
-$lang['diff']                  = 'Pokaži razlike s trenutno razliÄico';
-$lang['diff2']                 = 'Pokaži razlike med izbranimi razliÄicami.';
-$lang['difflink']              = 'Poveži s tem pogledom primerjave.';
-$lang['diff_type']             = 'Razlike:';
-$lang['diff_inline']           = 'V besedilu';
-$lang['diff_side']             = 'Eno ob drugem';
-$lang['diffprevrev']           = 'Prejšnja revizija';
-$lang['diffnextrev']           = 'Naslednja revizija';
-$lang['difflastrev']           = 'Zadnja revizija';
-$lang['line']                  = 'Vrstica';
-$lang['breadcrumb']            = 'Sled:';
-$lang['youarehere']            = 'Trenutno dejavna stran:';
-$lang['lastmod']               = 'Zadnja sprememba:';
-$lang['by']                    = 'uporabnika';
-$lang['deleted']               = 'odstranjena';
-$lang['created']               = 'ustvarjena';
-$lang['restored']              = 'povrnjena stara razliÄica (%s)';
-$lang['external_edit']         = 'urejanje v zunanjem urejevalniku';
-$lang['summary']               = 'Povzetek urejanja';
-$lang['noflash']               = 'Za prikaz vsebine je treba namestiti <a href="http://www.adobe.com/products/flashplayer/">Adobe Flash Plugin</a>';
-$lang['download']              = 'Naloži izrezek';
-$lang['tools']                 = 'Orodja';
-$lang['user_tools']            = 'Uporabniška orodja';
-$lang['site_tools']            = 'Orodja spletiÅ¡Äa';
-$lang['page_tools']            = 'Orodja strani';
-$lang['skip_to_content']       = 'preskoÄi na vsebino';
-$lang['sidebar']               = 'Stranska vrstica';
-$lang['mail_newpage']          = '[DokuWiki] stran dodana:';
-$lang['mail_changed']          = '[DokuWiki] stran spremenjena:';
-$lang['mail_subscribe_list']   = 'strani s spremenjenim imenom:';
-$lang['mail_new_user']         = 'nov uporabnik:';
-$lang['mail_upload']           = 'naložena datoteka:';
-$lang['changes_type']          = 'Poglej spremembe';
-$lang['pages_changes']         = 'Strani';
-$lang['media_changes']         = 'Predstavne datoteke';
-$lang['both_changes']          = 'Strani in predstavne datoteke';
-$lang['qb_bold']               = 'Krepko besedilo';
-$lang['qb_italic']             = 'LežeÄe besedilo';
-$lang['qb_underl']             = 'PodÄrtano besedilo';
-$lang['qb_code']               = 'Oznaka kode';
-$lang['qb_strike']             = 'PreÄrtano besedilo';
-$lang['qb_h1']                 = 'Naslov prve ravni';
-$lang['qb_h2']                 = 'Naslov druge ravni';
-$lang['qb_h3']                 = 'Naslov tretje ravni';
-$lang['qb_h4']                 = 'Naslov Äetrte ravni';
-$lang['qb_h5']                 = 'Naslov pete ravni';
-$lang['qb_h']                  = 'Naslov';
-$lang['qb_hs']                 = 'Izberi naslov';
-$lang['qb_hplus']              = 'Naslov na višji ravni';
-$lang['qb_hminus']             = 'Naslov na nižji ravni';
-$lang['qb_hequal']             = 'Naslov na isti ravni';
-$lang['qb_link']               = 'Notranja povezava';
-$lang['qb_extlink']            = 'Zunanja povezava';
-$lang['qb_hr']                 = 'Vodoravna Ärta';
-$lang['qb_ol']                 = 'Å tevilÄna oznaka predmeta';
-$lang['qb_ul']                 = 'VrstiÄna oznaka predmeta';
-$lang['qb_media']              = 'Dodajanje slik in drugih datotek';
-$lang['qb_sig']                = 'Vstavi podpis';
-$lang['qb_smileys']            = 'Smeški';
-$lang['qb_chars']              = 'Posebni znaki';
-$lang['upperns']               = 'skoÄi na nadrejeni imenski prostor';
-$lang['metaedit']              = 'Uredi metapodatke';
-$lang['metasaveerr']           = 'Zapisovanje metapodatkov je spodletelo';
-$lang['metasaveok']            = 'Metapodatki so shranjeni';
-$lang['img_title']             = 'Naslov:';
-$lang['img_caption']           = 'Opis:';
-$lang['img_date']              = 'Datum:';
-$lang['img_fname']             = 'Ime datoteke:';
-$lang['img_fsize']             = 'Velikost:';
-$lang['img_artist']            = 'Fotograf:';
-$lang['img_copyr']             = 'Avtorska pravica:';
-$lang['img_format']            = 'Zapis:';
-$lang['img_camera']            = 'Fotoaparat:';
-$lang['img_keywords']          = 'KljuÄne besede:';
-$lang['img_width']             = 'Å irina:';
-$lang['img_height']            = 'Višina:';
-$lang['subscr_subscribe_success'] = 'UporabniÅ¡ki raÄun %s je dodan na seznam naroÄnin na %s';
-$lang['subscr_subscribe_error'] = 'Napaka med dodajanjem %s na seznam naroÄnin na %s';
-$lang['subscr_subscribe_noaddress'] = 'S trenutnimi prijavnimi podatki ni povezanega elektronskega naslova, zato uporabniÅ¡kega raÄuna ni mogoÄe dodati na seznam naroÄnikov.';
-$lang['subscr_unsubscribe_success'] = 'UporabniÅ¡ki raÄun %s je odstranjen s seznama naroÄnin na %s';
-$lang['subscr_unsubscribe_error'] = 'Napaka med odstranjevanjem %s s seznama naroÄnin na %s';
-$lang['subscr_already_subscribed'] = '%s je že naroÄen na %s';
-$lang['subscr_not_subscribed'] = '%s ni naroÄen na %s';
-$lang['subscr_m_not_subscribed'] = 'Trenutni uporabniÅ¡ki raÄun nima prijavljene naroÄnine na trenutno stran ali imenski prostor.';
-$lang['subscr_m_new_header']   = 'NaroÄanje';
-$lang['subscr_m_current_header'] = 'Trenutne naroÄnine';
-$lang['subscr_m_unsubscribe']  = 'PrekliÄi naroÄnino';
-$lang['subscr_m_subscribe']    = 'Prijavi naroÄnino';
-$lang['subscr_m_receive']      = 'Prejmi';
-$lang['subscr_style_every']    = 'elektronsko sporoÄilo ob vsaki spremembi';
-$lang['subscr_style_digest']   = 'strnjeno elektronsko sporoÄilo sprememb za vsako stran (vsakih %.2f dni)';
-$lang['subscr_style_list']     = 'seznam spremenjenih strani od zadnjega elektronskega sporoÄila (vsakih %.2f dni)';
-$lang['authtempfail']          = 'Potrditev uporabnika je trenutno nedostopna. Stopite v stik s skrbnikom sistema wiki.';
-$lang['i_chooselang']          = 'Izberite jezik';
-$lang['i_installer']           = 'DokuWiki namestitev';
-$lang['i_wikiname']            = 'Ime Wiki spletiÅ¡Äa';
-$lang['i_enableacl']           = 'OmogoÄi ACL (priporoÄeno)';
-$lang['i_superuser']           = 'Skrbnik';
-$lang['i_problems']            = 'Namestilnik je naletel na težave, ki so izpisane spodaj. Namestitve ni mogoÄe nadaljevati, dokler težave ne bodo odpravljene.';
-$lang['i_modified']            = 'Iz varnostnih razlogov skript deluje le v novi in neprilagojeni namestitvi sistema DokuWiki. Postopek namestitve je treba zaÄeti znova ali pa sistem namestiti roÄno s pomoÄjo <a href="http://dokuwiki.org/install">navodil nameÅ¡Äanja Dokuwiki</a>.';
-$lang['i_funcna']              = 'Funkcija PHP <code>%s</code> ni na voljo. Morda je možnost na strežniku zaradi varnostnih razlogov onemogoÄena.';
-$lang['i_phpver']              = 'RazliÄica PHP <code>%s</code> je nižja od zahtevane razliÄice <code>%s</code>. Pred nadaljevanjem je treba posodobiti namestitev PHP.';
-$lang['i_permfail']            = 'Predmet <code>%s</code> ni zapisljiv. Zahtevana je sprememba dovoljenj za to mapo.';
-$lang['i_confexists']          = 'Predmet <code>%s</code> že obstaja.';
-$lang['i_writeerr']            = 'Ni mogoÄe ustvariti predmeta <code>%s</code>. Preveriti je treba dovoljenja datotek in map in nato ustvariti datoteko roÄno.';
-$lang['i_badhash']             = 'nepoznana ali spremenjena datoteka dokuwiki.php (razpršilo=<code>%s</code>)';
-$lang['i_badval']              = '<code>%s</code> - neveljavna ali prazna vrednost';
-$lang['i_success']             = 'Nastavitev je uspeÅ¡no konÄana. Datoteko install.php lahko sedaj izbriÅ¡ete. Nadaljujte v <a href="doku.php?id=wiki:welcome">novi DokuWiki</a>.';
-$lang['i_failure']             = 'Med zapisovanjem nastavitvenih datotek je prišlo do napak. Preden lahko uporabite vaš <a href="doku.php?id=wiki:welcome">DokuWiki</a>, jih je treba odpraviti.';
-$lang['i_policy']              = 'ZaÄetna doloÄila ACL';
-$lang['i_pol0']                = 'Odprt Wiki (branje, zapis, nalaganje datotek je javno za vse)';
-$lang['i_pol1']                = 'Javni Wiki (branje za vse, zapis in nalaganje datotek za prijavljene uporabnike)';
-$lang['i_pol2']                = 'Zaprt Wiki (berejo in urejajo lahko le prijavljeni uporabniki)';
-$lang['i_allowreg']            = 'Dovoli uporabnikom vpis';
-$lang['i_retry']               = 'Ponovni poskus';
-$lang['i_license']             = 'Izbor dovoljenja objave vsebine:';
-$lang['i_license_none']        = 'Ne pokaži podrobnosti dovoljenja.';
-$lang['i_pop_field']           = 'Prosimo pomagajte nam izboljšati DokuWiki izkušnjo:';
-$lang['i_pop_label']           = 'Enkrat na mesec pošlji anonimne uporabniške podatke DokuWiki razvijalcem';
-$lang['recent_global']         = 'Trenutno so prikazane spremembe znotraj imenskega prostora <b>%s</b>. MogoÄe si je ogledati tudi spremembe <a href="%s">celotnega sistema Wiki</a>.';
-$lang['years']                 = '%d let nazaj';
-$lang['months']                = '%d mesecev nazaj';
-$lang['weeks']                 = '%d tednov nazaj';
-$lang['days']                  = '%d dni nazaj';
-$lang['hours']                 = '%d ur nazaj';
-$lang['minutes']               = '%d minut nazaj';
-$lang['seconds']               = '%d sekund nazaj';
-$lang['wordblock']             = 'Spremembe niso shranjene, ker je v vsebini navedeno neželeno besedilo (spam).';
-$lang['media_uploadtab']       = 'Naloži';
-$lang['media_searchtab']       = 'PoiÅ¡Äi';
-$lang['media_file']            = 'Datoteka';
-$lang['media_viewtab']         = 'Pogled';
-$lang['media_edittab']         = 'Uredi';
-$lang['media_historytab']      = 'Zgodovina';
-$lang['media_list_thumbs']     = 'SliÄice';
-$lang['media_list_rows']       = 'Vrstice';
-$lang['media_sort_name']       = 'Ime';
-$lang['media_sort_date']       = 'Datum';
-$lang['media_namespaces']      = 'Izbor imenskega prostora';
-$lang['media_files']           = 'Datoteke v %s';
-$lang['media_upload']          = 'Naloži v %s';
-$lang['media_search']          = 'PoiÅ¡Äi v %s';
-$lang['media_view']            = '%s';
-$lang['media_viewold']         = '%s pri %s';
-$lang['media_edit']            = 'Uredi %s';
-$lang['media_history']         = 'Zgodovina %s';
-$lang['media_meta_edited']     = 'metapodatki so urejeni';
-$lang['media_perm_read']       = 'Ni ustreznih dovoljenj za branje datotek.';
-$lang['media_perm_upload']     = 'Ni ustreznih dovoljenj za nalaganje datotek.';
-$lang['media_update']          = 'Naloži novo razliÄico';
-$lang['media_restore']         = 'Obnovi to razliÄico';
-$lang['currentns']             = 'Trenutni imenski prostor';
-$lang['searchresult']          = 'Rezultati iskanja';
-$lang['plainhtml']             = 'Zapis HTML';
-$lang['wikimarkup']            = 'Oblikovni jezik Wiki';
-$lang['email_signature_text']  = 'SporoÄilo je samodejno ustvarjeno na spletiÅ¡Äu
-@DOKUWIKIURL@';
diff --git a/wiki/inc/lang/sl/locked.txt b/wiki/inc/lang/sl/locked.txt
deleted file mode 100644
index cc693d3..0000000
--- a/wiki/inc/lang/sl/locked.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Stran je zaklenjena ======
-
-Stran je zaklenjena za urejanje. PoÄakati je treba, da zaklep strani poteÄe.
diff --git a/wiki/inc/lang/sl/login.txt b/wiki/inc/lang/sl/login.txt
deleted file mode 100644
index eeae0c9..0000000
--- a/wiki/inc/lang/sl/login.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Prijava ======
-
-Niste prijavljeni! Spodaj vnesite ustrezne podatke in se prijavite. Prijaviti se je mogoÄe le, Äe so omogoÄeni piÅ¡kotki.
diff --git a/wiki/inc/lang/sl/mailtext.txt b/wiki/inc/lang/sl/mailtext.txt
deleted file mode 100644
index 9b33373..0000000
--- a/wiki/inc/lang/sl/mailtext.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-Stran na vašem DokuWiki je bila dodana ali spremenjena. Podrobnosti:
-
-Datum            : @DATE@
-Brskalnik        : @BROWSER@
-Naslov IP        : @IPADDRESS@
-Ime gostitelja   : @HOSTNAME@
-Stara razliÄica  : @OLDPAGE@
-Nova razliÄica   : @NEWPAGE@
-Povzetek urejanja: @SUMMARY@
-Uporabnik        : @USER@
-
-@DIFF@
diff --git a/wiki/inc/lang/sl/newpage.txt b/wiki/inc/lang/sl/newpage.txt
deleted file mode 100644
index 2f11bbf..0000000
--- a/wiki/inc/lang/sl/newpage.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Stran še ne obstaja ======
-
-Sledili ste povezavi na stran, ki Å¡e ne obstaja. Stran je mogoÄe ustvariti preko povezave ''Ustvari stran''.
diff --git a/wiki/inc/lang/sl/norev.txt b/wiki/inc/lang/sl/norev.txt
deleted file mode 100644
index adaa22d..0000000
--- a/wiki/inc/lang/sl/norev.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== NeobstojeÄa razliÄica strani ======
-
-Zahtevana razliÄica strani ne obstaja. Uporabite gumb ''Stare razliÄice'' za izpis seznama starih razliÄic tega dokumenta.
diff --git a/wiki/inc/lang/sl/password.txt b/wiki/inc/lang/sl/password.txt
deleted file mode 100644
index d0e1f69..0000000
--- a/wiki/inc/lang/sl/password.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-Pozdravljeni, @FULLNAME@!
-
-Spodaj so navedeni podatki za @TITLE@ na wiki spletiÅ¡Äu @DOKUWIKIURL@
-
-Uporabniško ime: @LOGIN@
-Geslo          : @PASSWORD@
diff --git a/wiki/inc/lang/sl/preview.txt b/wiki/inc/lang/sl/preview.txt
deleted file mode 100644
index c49de66..0000000
--- a/wiki/inc/lang/sl/preview.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Predogled ======
-
-Prikazan je predogled strani. Stran še ni shranjena!
diff --git a/wiki/inc/lang/sl/pwconfirm.txt b/wiki/inc/lang/sl/pwconfirm.txt
deleted file mode 100644
index 33f4787..0000000
--- a/wiki/inc/lang/sl/pwconfirm.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-Pozdravljeni, @FULLNAME@!
-
-S podatki vaÅ¡ega imena je bila poslana zahteva za pridobitev novega gesla za uporabniÅ¡ko ime @TITLE@ na wiki spletiÅ¡Äu @DOKUWIKIURL@.
-
- - V kolikor novega gesla niste zahtevali, prezrite to sporoÄilo.
- - Za potrditev zahteve za pridobitev novega gesla, kliknite spodnjo povezavo.
-
-@CONFIRM@
diff --git a/wiki/inc/lang/sl/read.txt b/wiki/inc/lang/sl/read.txt
deleted file mode 100644
index 5ba9a2e..0000000
--- a/wiki/inc/lang/sl/read.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-Stran je odprta z dovoljenji le za branje. Dovoljeno je ogledati si izvorno kodo strani, vsebine pa ni mogoÄe spreminjati. Za veÄ podrobnosti stopite v stik s skrbnikom sistema.
-
diff --git a/wiki/inc/lang/sl/recent.txt b/wiki/inc/lang/sl/recent.txt
deleted file mode 100644
index 282a492..0000000
--- a/wiki/inc/lang/sl/recent.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Nedavne spremembe ======
-
-Izpisane wiki strani so bile nedavno spremenjene.
diff --git a/wiki/inc/lang/sl/register.txt b/wiki/inc/lang/sl/register.txt
deleted file mode 100644
index f1b22f9..0000000
--- a/wiki/inc/lang/sl/register.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Vpis novega raÄuna ======
-
-V spodnji obrazec je treba vnesti vse zahtevane podatke za ustvarjanje novega raÄuna. Vnesti je treba veljaven **elektronski naslov**, na katerega bo poslano geslo. UporabniÅ¡ko ime mora biti veljavno [[doku>pagename|ime strani]].
diff --git a/wiki/inc/lang/sl/registermail.txt b/wiki/inc/lang/sl/registermail.txt
deleted file mode 100644
index 255eb62..0000000
--- a/wiki/inc/lang/sl/registermail.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-Nov uporabniÅ¡ki raÄun je uspeÅ¡no vpisan.
-Podatki raÄuna:
-
-Uporabniško ime   : @NEWUSER@
-Polno ime         : @NEWNAME@
-Elektronski naslov: @NEWEMAIL@
-
-Datum             : @DATE@
-Brskalnik         : @BROWSER@
-Naslov IP         : @IPADDRESS@
-Ime gostitelja    : @HOSTNAME@
diff --git a/wiki/inc/lang/sl/resendpwd.txt b/wiki/inc/lang/sl/resendpwd.txt
deleted file mode 100644
index 8a1e614..0000000
--- a/wiki/inc/lang/sl/resendpwd.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Pošiljanje novega gesla ======
-
-Za pridobitev novega gesla, vnesite vaÅ¡e uporabniÅ¡ko ime ustrezno polje spodnjega obrazca. Na naveden elektronski naslov bo poslano sporoÄilo v katerem bo navedena povezava do strani za overjanje istovetnosti uporabnika.
diff --git a/wiki/inc/lang/sl/resetpwd.txt b/wiki/inc/lang/sl/resetpwd.txt
deleted file mode 100644
index c2a81ab..0000000
--- a/wiki/inc/lang/sl/resetpwd.txt
+++ /dev/null
@@ -1 +0,0 @@
-====== Nastavitev novega gesla ======<br><br>Vnesite novo geslo za raÄun Wiki. 
\ No newline at end of file
diff --git a/wiki/inc/lang/sl/revisions.txt b/wiki/inc/lang/sl/revisions.txt
deleted file mode 100644
index 86ede9d..0000000
--- a/wiki/inc/lang/sl/revisions.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Stare razliÄice ======
-
-Prikazana je stara razliÄica tega dokumenta. Stran je mogoÄe povrniti na starejÅ¡o razliÄico tako, da stran izberete, pritisnete na povezavo ''Uredi stran'' in stran nato shranite.
diff --git a/wiki/inc/lang/sl/searchpage.txt b/wiki/inc/lang/sl/searchpage.txt
deleted file mode 100644
index d19d5e2..0000000
--- a/wiki/inc/lang/sl/searchpage.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Iskanje ======
-
-Spodaj so izpisani rezultati iskanja. @CREATEPAGEINFO@
-
diff --git a/wiki/inc/lang/sl/showrev.txt b/wiki/inc/lang/sl/showrev.txt
deleted file mode 100644
index 8383392..0000000
--- a/wiki/inc/lang/sl/showrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**Stara razliÄica tega dokumenta!**
-----
diff --git a/wiki/inc/lang/sl/stopwords.txt b/wiki/inc/lang/sl/stopwords.txt
deleted file mode 100644
index 8eed2da..0000000
--- a/wiki/inc/lang/sl/stopwords.txt
+++ /dev/null
@@ -1,18 +0,0 @@
-# To je seznam besed, ki jih ustvarjalnik kazala prezre. Seznam je sestavljen iz
-# besede, ki so zapisane vsaka v svoji vrstici. Datoteka mora biti zapisana s konÄnim
-# UNIX znakom vrstice. Besede krajÅ¡e od treh znakov so iz kazala izloÄene samodejno
-# zaradi preglednosti. Seznam se s bo s Äasom spreminjal in dopolnjeval.
-moja
-moje
-moji
-mojo
-njegovi
-njegove
-njegovo
-njeno
-njeni
-njene
-njihova
-njihove
-njihovi
-njihovo
diff --git a/wiki/inc/lang/sl/subscr_digest.txt b/wiki/inc/lang/sl/subscr_digest.txt
deleted file mode 100644
index 5da0042..0000000
--- a/wiki/inc/lang/sl/subscr_digest.txt
+++ /dev/null
@@ -1,16 +0,0 @@
-Pozdravljeni!
-
-Strani v imenskem prostoru @PAGE@ wiki spletiÅ¡Äa @TITLE@ so spremenjene.
-Podrobnosti sprememb so navedene spodaj.
-
-------------------------------------------------
-@DIFF@
-------------------------------------------------
-
-Stara razliÄica: @OLDPAGE@
-Nova razliÄica : @NEWPAGE@
-
-Za odjavo prejemanja podrobnosti sprememb, se je treba prijaviti na spletiÅ¡Äe
-@DOKUWIKIURL@ in med možnostmi naroÄanja
-@SUBSCRIBE@
-odjaviti prejemanje poroÄil sprememb strani ali imenskega prostora.
diff --git a/wiki/inc/lang/sl/subscr_form.txt b/wiki/inc/lang/sl/subscr_form.txt
deleted file mode 100644
index 46be8c9..0000000
--- a/wiki/inc/lang/sl/subscr_form.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-===== Urejanje naroÄnin ====
-
-Ta stran vam omogoÄa urejanje vaÅ¡ih naroÄnin za trenutno stran in imenski prostor.
\ No newline at end of file
diff --git a/wiki/inc/lang/sl/subscr_list.txt b/wiki/inc/lang/sl/subscr_list.txt
deleted file mode 100644
index 914ae15..0000000
--- a/wiki/inc/lang/sl/subscr_list.txt
+++ /dev/null
@@ -1,13 +0,0 @@
-Pozdravljeni!
-
-Strani v imenskem prostoru @PAGE@ wiki spletiÅ¡Äa @TITLE@ so spremenjene.
-Podrobnosti sprememb so navedene spodaj.
-
-------------------------------------------------
-@DIFF@
-------------------------------------------------
-
-Za odjavo prejemanja podrobnosti sprememb, se je treba prijaviti na spletiÅ¡Äe
-@DOKUWIKIURL@ in med možnostmi naroÄanja
-@SUBSCRIBE@
-odjaviti prejemanje poroÄil sprememb strani ali imenskega prostora.
diff --git a/wiki/inc/lang/sl/subscr_single.txt b/wiki/inc/lang/sl/subscr_single.txt
deleted file mode 100644
index 4324b2d..0000000
--- a/wiki/inc/lang/sl/subscr_single.txt
+++ /dev/null
@@ -1,19 +0,0 @@
-Pozdravljeni!
-
-Stran @PAGE@ na spletiÅ¡Äu Wiki @TITLE@ je spremenjena.
-Spremenjeno je:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-Datum            : @DATE@
-Uporabnik        : @USER@
-Povzetek urejanja: @SUMMARY@
-Stara razliÄica  : @OLDPAGE@
-Nova razliÄica   : @NEWPAGE@
-
-Preklic obveÅ¡Äanja o spremembah strani je mogoÄe doloÄiti
-na Wiki naslovu @DOKUWIKIURL@ in z obiskom @NEWPAGE@,
-kjer se je mogoÄe odjaviti od spremljanja strani ali
-imenskega prostora.
diff --git a/wiki/inc/lang/sl/updateprofile.txt b/wiki/inc/lang/sl/updateprofile.txt
deleted file mode 100644
index 5e939f2..0000000
--- a/wiki/inc/lang/sl/updateprofile.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-===== Posodabljanje raÄuna =====
-
-Posodobiti ali spremeniti je mogoÄe le nekatere podatke. UporabniÅ¡kega imena ni mogoÄe spremeniti.
\ No newline at end of file
diff --git a/wiki/inc/lang/sl/uploadmail.txt b/wiki/inc/lang/sl/uploadmail.txt
deleted file mode 100644
index 126ff2a..0000000
--- a/wiki/inc/lang/sl/uploadmail.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-Datoteka je bila uspeÅ¡no naložena na DokuWiki spletiÅ¡Äe.
-Podrobnosti o datoteki:
-
-Datoteka  : @MEDIA@
-Datum     : @DATE@
-Brskalnik : @BROWSER@
-Naslov IP : @IPADDRESS@
-Ponudnik  : @HOSTNAME@
-Velikost  : @SIZE@
-Vrsta MIME: @MIME@
-Uporabnik : @USER@
diff --git a/wiki/inc/lang/sq/admin.txt b/wiki/inc/lang/sq/admin.txt
deleted file mode 100644
index 6edbf8a..0000000
--- a/wiki/inc/lang/sq/admin.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Administrimi ======
-
-Poshtë është një listë e punëve administrative të disponueshme në DokuWiki.
\ No newline at end of file
diff --git a/wiki/inc/lang/sq/adminplugins.txt b/wiki/inc/lang/sq/adminplugins.txt
deleted file mode 100644
index f87626c..0000000
--- a/wiki/inc/lang/sq/adminplugins.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Plugin-e Shtesë =====
\ No newline at end of file
diff --git a/wiki/inc/lang/sq/backlinks.txt b/wiki/inc/lang/sq/backlinks.txt
deleted file mode 100644
index b25df00..0000000
--- a/wiki/inc/lang/sq/backlinks.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Linke të kthyeshëm ======
-
-Kjo është një listë e faqeve që duket se lidhen mbrapsht te kjo faqe aktuale.
\ No newline at end of file
diff --git a/wiki/inc/lang/sq/conflict.txt b/wiki/inc/lang/sq/conflict.txt
deleted file mode 100644
index 9c6cc94..0000000
--- a/wiki/inc/lang/sq/conflict.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== Ekziston një version më i ri ======
-
-Ekziston një version më i ri i dokumentit që ju redaktuat. Kjo ndodh kur një përdorues tjetër e ndryshoi dokumentin ndërkohë që ju po e redaktonit atë.
-
-Gjeni ndryshimet e treguara më poshtë dhe pastaj vendosni se kë version doni të mbani. Nëse zgjidhni "ruaj", versioni juaj do të ruhet. Klikon "fshi" për të mbajtur versioni aktual.
\ No newline at end of file
diff --git a/wiki/inc/lang/sq/denied.txt b/wiki/inc/lang/sq/denied.txt
deleted file mode 100644
index 60aa05e..0000000
--- a/wiki/inc/lang/sq/denied.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Leja Refuzohet ======
-
-Na vjen keq, ju nuk keni të drejta të mjaftueshme për të vazhduar.
-
diff --git a/wiki/inc/lang/sq/diff.txt b/wiki/inc/lang/sq/diff.txt
deleted file mode 100644
index ab03a28..0000000
--- a/wiki/inc/lang/sq/diff.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Ndryshimet ======
-
-Kjo tregon ndryshimet midis dy versioneve të faqes.
\ No newline at end of file
diff --git a/wiki/inc/lang/sq/draft.txt b/wiki/inc/lang/sq/draft.txt
deleted file mode 100644
index 80634a7..0000000
--- a/wiki/inc/lang/sq/draft.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== Skedari skicë u gjend ======
-
-Sesioni juaj i fundit i redaktimit në këtë faqe nuk përfundoi me sukses. DokuWiki ruajti automatikisht një skicë gjatë punës tuaj të cilën mund ta përdorni tani për të vazhduar redaktimin tuaj. Më poshtë mund të shihni të dhënat që janë ruajtur nga sesioni juaj i fundit.
-
-Ju lutem vendosni nëse doni të //rekuperoni// sesionin tuaj të humbur të redaktimit, //fshini// skicën e ruajtur automatikisht ose //dilni// nga proçesi i redaktimit.
\ No newline at end of file
diff --git a/wiki/inc/lang/sq/edit.txt b/wiki/inc/lang/sq/edit.txt
deleted file mode 100644
index 1f038ea..0000000
--- a/wiki/inc/lang/sq/edit.txt
+++ /dev/null
@@ -1 +0,0 @@
-Redaktoni faqen dhe shtypni "Ruaj". Shikoni [[wiki:syntax]] për sintaksën e Wiki-t. Nëse doni të provoni disa gjëra, mësoni të hidhni hapat e parë në [[playground:playground|playground]].
\ No newline at end of file
diff --git a/wiki/inc/lang/sq/editrev.txt b/wiki/inc/lang/sq/editrev.txt
deleted file mode 100644
index 08792ea..0000000
--- a/wiki/inc/lang/sq/editrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**Keni ngarkuar një rishikim të vjetër të dokumentit!** Nëse e ruani, do të krijoni një version të ri me këto të dhëna.
-----
\ No newline at end of file
diff --git a/wiki/inc/lang/sq/index.txt b/wiki/inc/lang/sq/index.txt
deleted file mode 100644
index 6daef1c..0000000
--- a/wiki/inc/lang/sq/index.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Index ======
-
-Ky është një index mbi të gjitha faqet e disponueshme të renditura sipas [[doku>namespaces|namespaces]].
\ No newline at end of file
diff --git a/wiki/inc/lang/sq/install.html b/wiki/inc/lang/sq/install.html
deleted file mode 100644
index bad30b1..0000000
--- a/wiki/inc/lang/sq/install.html
+++ /dev/null
@@ -1,8 +0,0 @@
-<p>Kjo faqe ndihmon në instalimin dhe konfigurimin për herë të parë të <a href="http://dokuwiki.org">Dokuwiki-t</a>. Më shumë informacion mbi këtë installer gjendet në <a href="http://dokuwiki.org/installer">faqen e tij të dokumentimit</a>.</p>
-
-<p>Dokuwiki përdor skedarë të zakonshëm për ruajtjen e faqeve wiki dhe informacioneve të tjera të lidhura me ato faqe (psh imazhe, indekse kërkimi, rishikime të vjetra etj). Në mënyrë që të funksionojë me sukses DokuWiki <strong>duhet</strong> të ketë akses shkrimi mbi direktoritë që mbajnë këto skedarë. Ky installer nuk është në gjendje të vendosë leje mbi direktoritë. Kjo normalisht duhet bërë drejtpërdrejt nga një command shell ose nëse jeni duke përdorur hostimin, nëpërmjet FTP ose panelit të kontrollit të hostit (psh cPanel).</p>
-
-<p>Ky installer do të instalojë konfigurimin e DokuWiki-t tuaj
-për <abbr title="access control list">ACL</abbr>, që në këmbim lejon hyrje si administrator dhe akses të menusë së administrimit të DokuWiki-t për të instaluar plugin-e, menaxhuar përdoruesit, menaxhuar akses në faqet wiki dhe ndryshim të konfigurimeve. Nuk është e domosdoshme për DokuWiki-n të funksionojë, megjithatë do ta bëjë DokuWiki-n më të lehtë për tu administruar.</p>
-
-<p>Përduruesit me përvojë ose përdoruesit me kërkesa speciale për instalim duhet të përdorin këto linke për detaje mbi <a href="http://dokuwiki.org/install">instruksionet e instalimit</a> dhe <a href="http://dokuwiki.org/config">konfigurimeve</a>.</p>
\ No newline at end of file
diff --git a/wiki/inc/lang/sq/jquery.ui.datepicker.js b/wiki/inc/lang/sq/jquery.ui.datepicker.js
deleted file mode 100644
index 34fe66a..0000000
--- a/wiki/inc/lang/sq/jquery.ui.datepicker.js
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Albanian initialisation for the jQuery UI date picker plugin. */
-/* Written by Flakron Bytyqi (flakron@gmail.com). */
-( function( factory ) {
-	if ( typeof define === "function" && define.amd ) {
-
-		// AMD. Register as an anonymous module.
-		define( [ "../widgets/datepicker" ], factory );
-	} else {
-
-		// Browser globals
-		factory( jQuery.datepicker );
-	}
-}( function( datepicker ) {
-
-datepicker.regional.sq = {
-	closeText: "mbylle",
-	prevText: "&#x3C;mbrapa",
-	nextText: "Përpara&#x3E;",
-	currentText: "sot",
-	monthNames: [ "Janar","Shkurt","Mars","Prill","Maj","Qershor",
-	"Korrik","Gusht","Shtator","Tetor","Nëntor","Dhjetor" ],
-	monthNamesShort: [ "Jan","Shk","Mar","Pri","Maj","Qer",
-	"Kor","Gus","Sht","Tet","Nën","Dhj" ],
-	dayNames: [ "E Diel","E Hënë","E Martë","E Mërkurë","E Enjte","E Premte","E Shtune" ],
-	dayNamesShort: [ "Di","Hë","Ma","Më","En","Pr","Sh" ],
-	dayNamesMin: [ "Di","Hë","Ma","Më","En","Pr","Sh" ],
-	weekHeader: "Ja",
-	dateFormat: "dd.mm.yy",
-	firstDay: 1,
-	isRTL: false,
-	showMonthAfterYear: false,
-	yearSuffix: "" };
-datepicker.setDefaults( datepicker.regional.sq );
-
-return datepicker.regional.sq;
-
-} ) );
diff --git a/wiki/inc/lang/sq/lang.php b/wiki/inc/lang/sq/lang.php
deleted file mode 100644
index 5313ddd..0000000
--- a/wiki/inc/lang/sq/lang.php
+++ /dev/null
@@ -1,236 +0,0 @@
-<?php
-/**
- * sq language file
- *
- * This file was initially built by fetching translations from other
- * Wiki projects. See the @url lines below. Additional translations
- * and fixes where done for DokuWiki by the people mentioned in the
- * lines starting with @author
- *
- * @url http://svn.wikimedia.org/viewvc/mediawiki/trunk/phase3/languages/messages/MessagesSq.php?view=co
- * @author Leonard Elezi <leonard.elezi@depinfo.info>
- */
-$lang['encoding']              = 'utf-8';
-$lang['direction']             = 'ltr';
-$lang['doublequoteopening']    = '„';
-$lang['doublequoteclosing']    = '“';
-$lang['singlequoteopening']    = '‘';
-$lang['singlequoteclosing']    = '’';
-$lang['apostrophe']            = '\'';
-$lang['btn_edit']              = 'Redaktoni këtë faqe';
-$lang['btn_source']            = 'Trego kodin burim të faqes';
-$lang['btn_show']              = 'Trego faqen';
-$lang['btn_create']            = 'Krijo këtë faqe';
-$lang['btn_search']            = 'Kërko';
-$lang['btn_save']              = 'Ruaj';
-$lang['btn_preview']           = 'Shikim paraprak';
-$lang['btn_top']               = 'Kthehu ne krye';
-$lang['btn_newer']             = '<< më të hershme';
-$lang['btn_older']             = 'më të vonshme';
-$lang['btn_revs']              = 'Shqyrtime të vjetra';
-$lang['btn_recent']            = 'Ndryshime së fundmi';
-$lang['btn_upload']            = 'Ngarko';
-$lang['btn_cancel']            = 'Harroji';
-$lang['btn_index']             = 'Kreu';
-$lang['btn_secedit']           = 'Redaktoni';
-$lang['btn_login']             = 'Hyrje';
-$lang['btn_logout']            = 'Dalje';
-$lang['btn_admin']             = 'Admin';
-$lang['btn_update']            = 'Përditëso';
-$lang['btn_delete']            = 'Fshi';
-$lang['btn_back']              = 'Mbrapa';
-$lang['btn_backlink']          = 'Lidhjet këtu';
-$lang['btn_subscribe']         = 'Menaxho Abonimet';
-$lang['btn_profile']           = 'Përditëso Profilin';
-$lang['btn_reset']             = 'Rivendos';
-$lang['btn_draft']             = 'Redakto skicën';
-$lang['btn_recover']           = 'Rekupero skicën';
-$lang['btn_draftdel']          = 'Fshi skicën';
-$lang['btn_revert']            = 'Kthe si më parë';
-$lang['btn_register']          = 'Regjsitrohuni';
-$lang['loggedinas']            = 'Regjistruar si :';
-$lang['user']                  = 'Nofka e përdoruesit:';
-$lang['pass']                  = 'Fjalëkalimi';
-$lang['newpass']               = 'Fjalëkalim i ri';
-$lang['oldpass']               = 'Konfirmo fjalëkalimin aktual';
-$lang['passchk']               = 'Edhe një herë';
-$lang['remember']              = 'Më mbaj mend';
-$lang['fullname']              = 'Emri i vërtetë';
-$lang['email']                 = 'Adresa e email-it*';
-$lang['profile']               = 'Profili i përdoruesit';
-$lang['badlogin']              = 'Na vjen keq, emri ose fjalëkalimi është gabim.';
-$lang['minoredit']             = 'Ndryshime të Vogla';
-$lang['draftdate']             = 'Skica u ruajt automatikisht në';
-$lang['nosecedit']             = 'Faqja u ndryshua ndëwrkohë, informacioni i kwtij seksioni ishte i vjetër, u ngarkua faqja e tërë në vend të saj.';
-$lang['regmissing']            = 'Na vjen keq, duhet të plotësoni të gjitha fushat.';
-$lang['reguexists']            = 'Na vjen keq, ekziston një përdorues tjetër me të njëjtin emër.';
-$lang['regsuccess']            = 'Përdoruesi u regjistrua dhe fjalëkalimi u dërgua me email.';
-$lang['regsuccess2']           = 'Llogarija e Përdoruesit u krijua';
-$lang['regmailfail']           = 'Duket se ka ndodhur një gabim gjatë dërgimit të fjalëkalimit me e-mail. Ju lutemi kontaktoni administratorin!';
-$lang['regbadmail']            = 'Adresa email e dhënë nuk mund të pranohet sepse nuk duket e rregullt. Ju lutem fusni një adresë të rregullt ose boshatisni kutinë e shtypit.';
-$lang['regbadpass']            = 'Dy fjalëkalimet e dhëna nuk janë njësoj, ju lutemi provoni përsëri.';
-$lang['regpwmail']             = 'Fjalëkalimi juaj i DokuWiki-it.';
-$lang['reghere']               = 'Ende nuk keni llogari? Hap një';
-$lang['profna']                = 'Ky wiki nuk e lejon ndryshimin e profilit.';
-$lang['profnochange']          = 'Asnjë ndryshim, asgjë për të bërë.';
-$lang['profnoempty']           = 'Një emër bosh ose adresë email-i bosh nuk lejohet.';
-$lang['profchanged']           = 'Profili i përdoruesit u përditësua me sukses.';
-$lang['pwdforget']             = 'E harruat fjalëkalimin? Merni një të ri';
-$lang['resendna']              = 'Ky wiki nuk e lejon ridërgimin e fjalëkalimeve.';
-$lang['resendpwdmissing']      = 'Na vjen keq, duhet t\'i plotësoni të gjitha fushat.';
-$lang['resendpwdnouser']       = 'Na vjen keq, nuk mund ta gjejmë këtë përdorues në bazën tonë të të dhënave.';
-$lang['resendpwdbadauth']      = 'Na vjen keq, ky kod autorizimi nuk është i vlefshëm. Sigurohuni që përdoret linkun e plotë të konfirmimit.';
-$lang['resendpwdconfirm']      = 'U dërgua një link konfirmimi nëpërmjet eMail-it.';
-$lang['resendpwdsuccess']      = 'Fjalëkalimi juaj i ri u dërgua nëpërmjet eMail-it.';
-$lang['license']               = 'Përveç rasteve të përcaktuara, përmbajtja në këtë wiki është e liçnsuar nën liçensën e mëposhtme:';
-$lang['licenseok']             = 'Shënim: Duke redaktuar këtë faqe ju bini dakort të liçensoni përmbajtjen tuaj nën liçensën e mëposhtme:';
-$lang['searchmedia']           = 'Kërko emrin e skedarit:';
-$lang['searchmedia_in']        = 'Kërko në %s';
-$lang['txt_upload']            = 'Zgjidh skedarin për ngarkim:';
-$lang['txt_filename']          = 'Ngarko si (alternative):';
-$lang['txt_overwrt']           = 'Zëvendëso skedarin ekzistues';
-$lang['lockedby']              = 'Kyçur momentalisht nga:';
-$lang['lockexpire']            = 'Kyçi skadon në:';
-$lang['js']['willexpire']            = 'Kyçi juaj për redaktimin e kësaj faqeje është duke skaduar.\nPër të shmangur konflikte përdorni butonin Shiko Paraprakisht për të rivendosur kohën e kyçjes.';
-$lang['js']['notsavedyet']     = 'Ndryshimet e paruajtura do të humbasin.\nVazhdo me të vërtetë?';
-$lang['rssfailed']             = 'Ndoshi një gabim gjatë kapjes së këtij lajmi:';
-$lang['nothingfound']          = 'Nuk u gjet asgjë.';
-$lang['mediaselect']           = 'Skedarët e Medias';
-$lang['uploadsucc']            = 'Ngarkim i suksesshëm';
-$lang['uploadfail']            = 'Ngarkimi dështoi. Ndoshta leje të gabuara?';
-$lang['uploadwrong']           = 'Ngarkimi u refuzua! Prapashtesa e skedarit është e ndaluar!';
-$lang['uploadexist']           = 'Skedari ekziston. Nuk u bë asgjë.';
-$lang['uploadbadcontent']      = 'Përmbajtja e ngarkimit nuk përkoi me prapshtesën e skedarit %s';
-$lang['uploadspam']            = 'Ngarkimi u bllokua nga lista e zezë e spam-eve.';
-$lang['uploadxss']             = 'Ngarkimi u bllokua për dyshim përmbajtjeje jo të sigurt.';
-$lang['uploadsize']            = 'Skedari i ngarkuar ishte tepër i madh. (maksimumi %s)';
-$lang['deletesucc']            = 'Skedari "%s" u fshi.';
-$lang['deletefail']            = '"%s" nuk mundi të fshihej. Kontrollo lejet.';
-$lang['mediainuse']            = 'Skedari "%s" nuk u fshi - është ende në përdorim.';
-$lang['namespaces']            = 'Hapësirat e Emrave';
-$lang['mediafiles']            = 'Skedarët e disponueshëm në';
-$lang['js']['searchmedia']     = 'Kërko për skedarë';
-$lang['js']['keepopen']        = 'Mbaje dritaren të hapur gjatë përzgjedhjes';
-$lang['js']['hidedetails']     = 'Fshih Detajet';
-$lang['js']['nosmblinks']      = 'Lidhja te Windows shares funksionon vetëm në Microsoft Internet Explorer. Ju prapë mund ta kopjoni dhe ngjitni linkun.';
-$lang['js']['linkwiz']         = 'Magjistari i Link';
-$lang['js']['linkto']          = 'Lidh tek:';
-$lang['js']['del_confirm']     = 'Fshiji vërtetë objektet e përzgjedhura?';
-$lang['mediausage']            = 'Përdor sintaksën e mëposhtme për të referuar këtë skedar:';
-$lang['mediaview']             = 'Shiko skedarin origjinal';
-$lang['mediaroot']             = 'rrënja';
-$lang['mediaupload']           = 'Ngarko një skedar tek hapësira e emrit aktuale këtu. Për të krijuaj nënhapësira emri, bashkangjiti ato pas emrit të skedarit "Ngarko Si" duke e ndarë me dy pika (:).';
-$lang['mediaextchange']        = 'Prapashtesa e skedarit u ndërrua nga .%s në .%s!';
-$lang['reference']             = 'Referenca për:';
-$lang['ref_inuse']             = 'Skedari nuk mund të fshihet, sepse është duke u përdorur ende nga faqet e mëposhtme:';
-$lang['ref_hidden']            = 'Disa referenca janë në faqe të cilat ju nuk keni leje t\'i lexoni.';
-$lang['hits']                  = 'Pamje';
-$lang['quickhits']             = 'Emrat e faqeve që përkojnë';
-$lang['toc']                   = 'Tabela e Përmbajtjeve';
-$lang['current']               = 'aktuale';
-$lang['yours']                 = 'Versioni Juaj';
-$lang['diff']                  = 'Trego ndryshimet nga rishikimet aktuale';
-$lang['diff2']                 = 'Trego ndryshimet mes rishikimeve të përzgjedhura';
-$lang['line']                  = 'Vijë';
-$lang['breadcrumb']            = 'Gjurmë:';
-$lang['youarehere']            = 'Ju jeni këtu:';
-$lang['lastmod']               = 'Redaktuar për herë të fundit:';
-$lang['by']                    = 'nga';
-$lang['deleted']               = 'u fshi';
-$lang['created']               = 'u krijua';
-$lang['restored']              = 'Kthehu tek një version i vjetër (%s)';
-$lang['external_edit']         = 'redaktim i jashtëm';
-$lang['summary']               = 'Përmbledhja redaktimit';
-$lang['noflash']               = 'Nevojitet <a href="http://www.adobe.com/products/flashplayer/">Adobe Flash Plugin</a> për të paraqitur këtë përmbajtje.';
-$lang['download']              = 'Shkarko Copën';
-$lang['mail_newpage']          = 'faqje u shtua:';
-$lang['mail_changed']          = 'faqja u ndryshua:';
-$lang['mail_subscribe_list']   = 'faqet u ndryshuan në hapësirën e emrave:';
-$lang['mail_new_user']         = 'përdorues i ri:';
-$lang['mail_upload']           = 'skedari u ngarkua:';
-$lang['qb_bold']               = 'Tekst i Theksuar';
-$lang['qb_italic']             = 'Tekst i Pjerrët';
-$lang['qb_underl']             = 'Tekst i Nënvijëzuar';
-$lang['qb_code']               = 'Tekst Kodi';
-$lang['qb_strike']             = 'Tekst me Vijë Mespërmes';
-$lang['qb_h1']                 = 'Titull me Nivel 1';
-$lang['qb_h2']                 = 'Titull me Nivel 2';
-$lang['qb_h3']                 = 'Titull me Nivel 3';
-$lang['qb_h4']                 = 'Titull me Nivel 4';
-$lang['qb_h5']                 = 'Titull me Nivel 5';
-$lang['qb_h']                  = 'Titull';
-$lang['qb_hs']                 = 'Përzgjidh Titull';
-$lang['qb_hplus']              = 'Titull Më i Lartë';
-$lang['qb_hminus']             = 'Titull Më i Ulët';
-$lang['qb_hequal']             = 'Titull i të Njëjtit Nivel';
-$lang['qb_link']               = 'Lidhje e Brendshme';
-$lang['qb_extlink']            = 'Lidhje e Jashtme ';
-$lang['qb_hr']                 = 'Vijë Horizontale';
-$lang['qb_ol']                 = 'Listë Objektesh të Renditur';
-$lang['qb_ul']                 = 'Listë Objektesh të Parenditura';
-$lang['qb_media']              = 'Shto imazhe dhe skedarë të tjerë';
-$lang['qb_sig']                = 'Fut Firmën';
-$lang['qb_smileys']            = 'Smileys';
-$lang['qb_chars']              = 'Karaktere Speciale';
-$lang['upperns']               = 'kërce tek hapësira e emrit prind';
-$lang['metaedit']              = 'Redakto Metadata';
-$lang['metasaveerr']           = 'Shkrimi i metadata-ve dështoi';
-$lang['metasaveok']            = 'Metadata u ruajt';
-$lang['btn_img_backto']            = 'Mbrapa te %s';
-$lang['img_title']             = 'Titulli :';
-$lang['img_caption']           = 'Titra:';
-$lang['img_date']              = 'Data:';
-$lang['img_fname']             = 'Emri Skedarit:';
-$lang['img_fsize']             = 'Madhësia:';
-$lang['img_artist']            = 'Autor:';
-$lang['img_copyr']             = 'Mbajtësi i të drejtave të autorit:';
-$lang['img_format']            = 'Formati:';
-$lang['img_camera']            = 'Kamera:';
-$lang['img_keywords']          = 'Fjalë Kyçe:';
-$lang['subscr_subscribe_success'] = 'Iu shtua %s listës së abonimeve për %s';
-$lang['subscr_subscribe_error'] = 'Gabim gjatë shtimit të %s listës së abonimeve për %s';
-$lang['subscr_subscribe_noaddress'] = 'Nuk ekziston asnjë adresë e lidhur me regjistrimin tuaj, ju nuk mund t\'i shtoheni listës së abonimeve.';
-$lang['subscr_unsubscribe_success'] = 'U hoq %s nga lista e abonimeve për %s';
-$lang['subscr_unsubscribe_error'] = 'Gabim në heqjen e %s nga lista e abonimeve për %s';
-$lang['subscr_already_subscribed'] = '%s është abonuar njëherë te %s';
-$lang['subscr_not_subscribed'] = '%s nuk është abonuar te %s';
-$lang['subscr_m_not_subscribed'] = 'Momentalisht ju nuk jeni i abonuar në faqen aktuale apo hapësirën e emrit aktual.';
-$lang['subscr_m_new_header']   = 'Shto abonim';
-$lang['subscr_m_current_header'] = 'Abonimet aktuale';
-$lang['subscr_m_unsubscribe']  = 'Fshi Abonimin';
-$lang['subscr_m_subscribe']    = 'Abonohu';
-$lang['subscr_m_receive']      = 'Mer';
-$lang['subscr_style_every']    = 'email mbi çdo ndryshim';
-$lang['authtempfail']          = 'Autentikimi i përdoruesve është përkohësisht i padisponueshëm. Nëse kjo gjendje vazhdon, ju lutemi të informoni Administratorin tuaj të Wiki-it.';
-$lang['i_chooselang']          = 'Zgjidhni gjuhën tuaj';
-$lang['i_installer']           = 'Installer-i DokuWiki';
-$lang['i_wikiname']            = 'Emri Wiki-it';
-$lang['i_enableacl']           = 'Aktivizo ACL (rekomanduar)';
-$lang['i_superuser']           = 'Superpërdorues';
-$lang['i_problems']            = 'Installer-i gjeti disa probleme, të shfaqura më poshtë. Nuk mund të vazhdoni derisa t\'i keni rregulluar.';
-$lang['i_modified']            = 'Për arsye sigurie ky skript do të punojë vetëm me një instalim të ri dhe të pamodifikuar DokuWiki.
-Ose duhet të ekstraktoni skedarët nga e para nga pakoja e shkarkimit ose konsultohuni me <a href="http://dokuwiki.org/install">Dokuwiki installation instructions</a>';
-$lang['i_funcna']              = 'Funksioni PHP <code>%s</code> nuk është i disponueshëm. Mbase siguruesi juaj i host-it e ka çaktivizuar për ndonjë arsye?';
-$lang['i_phpver']              = 'Versioni juaj i PHP <code>%s</code> është më i vogël se ai i duhuri <code>%s</code>. Duhet të përditësoni instalimin tuaj të PHP-së.';
-$lang['i_permfail']            = '<code>%s</code> nuk është e shkruajtshme nga DokuWiki. Duhet të rregulloni lejet e përdorimit për këtë direktori.';
-$lang['i_confexists']          = '<code>%s</code> ekziston njëherë';
-$lang['i_writeerr']            = '<code>%s</code> nuk mundi të krijohej. Duhet të kontrolloni lejet e dirkektorisë/skedarit dhe ta krijoni skedarin manualisht.';
-$lang['i_badhash']             = 'dokuwiki.php e panjohur ose e ndryshuar (hash=code>%s</code>)';
-$lang['i_badval']              = '<code>%s</code> - vlerë e palejuar ose boshe';
-$lang['i_success']             = 'Konfigurimi u mbarua me sukses. Tani mund ta fshini skedarin install.php. Vazhdoni tek <a href="doku.php?id=wiki:welcome">DokuWiki juaj i ri.</a>.';
-$lang['i_failure']             = 'Ndodhën disa gabime gjatë shkrimit të skedarit të konfigurimit. Do t\'ju duhet t\'i rregulloni manualisht para se të përdorni <a href="doku.php?id=wiki:welcome">DokuWiki-in tuaj të ri.</a>.';
-$lang['i_policy']              = 'Veprimi fillestar ACL';
-$lang['i_pol0']                = 'Wiki i Hapur (lexim, shkrim, ngarkim për këdo)';
-$lang['i_pol1']                = 'Wiki Publike (lexim për këdo, shkrim dhe ngarkim për përdoruesit e regjistruar)';
-$lang['i_pol2']                = 'Wiki e Mbyllur (lexim, shkrim, ngarkim vetëm për përdoruesit e regjistruar)';
-$lang['i_retry']               = 'Provo Përsëri';
-$lang['recent_global']         = 'Momentalisht jeni duke parë ndryshimet brenda hapësirës së emrit <b>%s</b>. Gjithashtu mund <a href="%s">të shihni ndryshimet më të fundit në të gjithë wiki-n</a>.';
-$lang['years']                 = '%d vite më parë';
-$lang['months']                = '%d muaj më parë';
-$lang['weeks']                 = '%d javë më parë';
-$lang['days']                  = '%d ditë më parë';
-$lang['hours']                 = '%d orë më parë';
-$lang['minutes']               = '%d minuta më parë';
-$lang['seconds']               = '%d sekonda më parë';
-$lang['email_signature_text'] = 'Ky email u gjenerua nga DokuWiki në
-@DOKUWIKIURL@';
diff --git a/wiki/inc/lang/sq/locked.txt b/wiki/inc/lang/sq/locked.txt
deleted file mode 100644
index 8c86c8b..0000000
--- a/wiki/inc/lang/sq/locked.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Faqe e kyçur ======
-
-Kjo faqe është përkohësisht e kyçur për redaktim nga një përdorues tjetër. Duhet të prisni derisa ky përdorues të mbarojë redaktimin ose çelësi të skadojë.
\ No newline at end of file
diff --git a/wiki/inc/lang/sq/login.txt b/wiki/inc/lang/sq/login.txt
deleted file mode 100644
index 843e476..0000000
--- a/wiki/inc/lang/sq/login.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Hyrje ======
-
-Momentalisht nuk jeni të futur në Wiki! Futni informacionet tuaja të autentikimit më poshtë për të hyrë. Duhet t'i keni cookies të aktivizuara për të hyrë.
\ No newline at end of file
diff --git a/wiki/inc/lang/sq/mailtext.txt b/wiki/inc/lang/sq/mailtext.txt
deleted file mode 100644
index 0566aaf..0000000
--- a/wiki/inc/lang/sq/mailtext.txt
+++ /dev/null
@@ -1,16 +0,0 @@
-Një faqe në DokuWiki-n tuaj u shtua ose u ndryshua. Këto janë detajet:
-
-Data: @DATE@
-Shfletuesi: @BROWSER@
-Adresa IP: @IPADDRESS@
-Emri Hostit: @HOSTNAME@
-Rishikimi i vjetër: @OLDPAGE@
-Rishikimi i ri: @NEWPAGE@
-Përmbledhja redaktimit: @SUMMARY@
-Përdoruesi: @USER@
-
-@DIFF@
-
----
-Ky email u gjenerua nga DokuWiki në
-@DOKUWIKIURL@
diff --git a/wiki/inc/lang/sq/newpage.txt b/wiki/inc/lang/sq/newpage.txt
deleted file mode 100644
index 1db750d..0000000
--- a/wiki/inc/lang/sq/newpage.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Kjo temë nuk ekziston ende ======
-
-Keni ndjekur një link për në një temë që nuk ekziston ende. Nëse ua lejojnë të drejtat, mund ta krijoni duke klikuar butonin "Krijo këtë faqe".
\ No newline at end of file
diff --git a/wiki/inc/lang/sq/norev.txt b/wiki/inc/lang/sq/norev.txt
deleted file mode 100644
index 0e73223..0000000
--- a/wiki/inc/lang/sq/norev.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Nuk ekzistion një rishikim i tillë ======
-
-Rishikimi i specifikuar nuk ekziston. Përdor buttonin "Rishikime të vjetra" për një listë të rishikimeve të vjetra të këtij dokumenti.
\ No newline at end of file
diff --git a/wiki/inc/lang/sq/password.txt b/wiki/inc/lang/sq/password.txt
deleted file mode 100644
index 44acfe6..0000000
--- a/wiki/inc/lang/sq/password.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-Përshëndetje @FULLNAME@!
-
-Këtu janë të dhënat e përdoruesit për @TITLE@ në @DOKUWIKIURL@
-
-Hyrje: @LOGIN@
-Fjalëkalimi: @PASSWORD@
-
----
-Ky email u gjenerua nga DokuWiki në
-@DOKUWIKIURL@
diff --git a/wiki/inc/lang/sq/preview.txt b/wiki/inc/lang/sq/preview.txt
deleted file mode 100644
index 07148b8..0000000
--- a/wiki/inc/lang/sq/preview.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Shikim Paraprak ======
-
-Ky është një shikim paraprak i tekstit tuaj. Kujtohuni: **Nuk** është ruajtur ende!
\ No newline at end of file
diff --git a/wiki/inc/lang/sq/pwconfirm.txt b/wiki/inc/lang/sq/pwconfirm.txt
deleted file mode 100644
index ec776d4..0000000
--- a/wiki/inc/lang/sq/pwconfirm.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-Përshëndetje @FULLNAME@!
-
-Dikush kërkoi një fjalëkalim të ri për hyrjen tuaj @TITLE@ në @DOKUWIKIURL@
-
-Nëse nuk kërkuat një fjalëkalim të ri atëherë thjesht injorojeni këtë email.
-
-Për të konfirmuar që kërkesa u dërgua me të vërtetë nga ju, ju lutemi përdorni link-un e mëposhtëm.
-
-@CONFIRM@
diff --git a/wiki/inc/lang/sq/read.txt b/wiki/inc/lang/sq/read.txt
deleted file mode 100644
index cbb0280..0000000
--- a/wiki/inc/lang/sq/read.txt
+++ /dev/null
@@ -1 +0,0 @@
-Kjo faqe është vetëm për lexim. Mund të shihni kodin burim, por nuk mund ta ndryshoni atë. Kontaktoni administratorin nëse mendoni se kjo është e gabuar.
\ No newline at end of file
diff --git a/wiki/inc/lang/sq/recent.txt b/wiki/inc/lang/sq/recent.txt
deleted file mode 100644
index 4b3bdf4..0000000
--- a/wiki/inc/lang/sq/recent.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Ndryshimet e kohëve të fundit ======
-
-Faqet e mëposhtme janë ndryshuar së fundmi.
\ No newline at end of file
diff --git a/wiki/inc/lang/sq/register.txt b/wiki/inc/lang/sq/register.txt
deleted file mode 100644
index d4a3ca3..0000000
--- a/wiki/inc/lang/sq/register.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Regjistrohuni si një përdorues i ri ======
-
-Plotësoni të gjitha informacionet e mëposhtme për të krijuar një llogari në këtë wiki. Sigorohuni që të jepni një **adresë email-i të vlefshme**. Nëse nuk ju kërkohet të futni një fjalëkalim këtu, një fjalëkalim i ri do t'ju dërgohet në adresën e email-it që specifikuat. Emri i hyrjes duhet të një [[doku>pagename|pagename]] e vlefshme.
\ No newline at end of file
diff --git a/wiki/inc/lang/sq/registermail.txt b/wiki/inc/lang/sq/registermail.txt
deleted file mode 100644
index d0f7d51..0000000
--- a/wiki/inc/lang/sq/registermail.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-Një përdorues i ri u regjistrua. Këto janë detajet:
-
-Emri përdoruesit: @NEWUSER@
-Emri i plotë i përdoruesit: @NEWNAME@
-E-mail: @NEWEMAIL@
-
-Data: @DATE@
-Shfletuesi: @BROWSER@
-Adresa IP: @IPADDRESS@
-Emri Hostit: @HOSTNAME@
diff --git a/wiki/inc/lang/sq/resendpwd.txt b/wiki/inc/lang/sq/resendpwd.txt
deleted file mode 100644
index 79d0b3e..0000000
--- a/wiki/inc/lang/sq/resendpwd.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Dërgo fjalëkalim të ri ======
-
-Ju lutemi futni emrin tuaj të përdorimit në formën e mëposhtme për të kërkuar një fjalëkalim të ri për llogarinë tuaj në këtë wiki. Një link konfirmimi do të dërgohet në adresën tuaj të eMail-it.
\ No newline at end of file
diff --git a/wiki/inc/lang/sq/revisions.txt b/wiki/inc/lang/sq/revisions.txt
deleted file mode 100644
index 349631f..0000000
--- a/wiki/inc/lang/sq/revisions.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Rishikime të vjetra ======
-
-Këto janë rishikimet e vjetra të dokumentit aktual. Për t'u kthyer në një rishikim të vjetër, zgjidhni nga këtu poshtë, klikoni "Redaktoni këtë faqe" dhe ruajeni atë.
diff --git a/wiki/inc/lang/sq/searchpage.txt b/wiki/inc/lang/sq/searchpage.txt
deleted file mode 100644
index 4c72f22..0000000
--- a/wiki/inc/lang/sq/searchpage.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Kërko ======
-
-Mund të gjeni rezultatet e kërkimit tuaj më poshtë. @CREATEPAGEINFO@
-
diff --git a/wiki/inc/lang/sq/showrev.txt b/wiki/inc/lang/sq/showrev.txt
deleted file mode 100644
index 9c1f761..0000000
--- a/wiki/inc/lang/sq/showrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**Ky është një rishikim i vjetër i dokumentit!**
-----
\ No newline at end of file
diff --git a/wiki/inc/lang/sq/stopwords.txt b/wiki/inc/lang/sq/stopwords.txt
deleted file mode 100644
index e356694..0000000
--- a/wiki/inc/lang/sq/stopwords.txt
+++ /dev/null
@@ -1,39 +0,0 @@
-# Kjo është një listë e fjalëve që indexer-i injoron, një fjalë për rresht
-# Kur të redaktoni këtë faqe sigurohuni që të përdorni fund-rreshtash UNIX (rresht i ri i vetëm)
-# Nuk është nevoja të përfshini fjalë më të shkurtra se tre karaktere - këtë injorohen gjithsesi
-# Kjo listë bazohet mbi ato që gjenden në http://www.ranks.nl/stopwords/
-about
-are
-as
-an
-and
-you
-your
-them
-their
-com
-for
-from
-into
-if
-in
-is
-it
-how
-of
-on
-or
-that
-the
-this
-to
-was
-what
-when
-where
-who
-will
-with
-und
-the
-www
\ No newline at end of file
diff --git a/wiki/inc/lang/sq/subscr_digest.txt b/wiki/inc/lang/sq/subscr_digest.txt
deleted file mode 100644
index 62ca057..0000000
--- a/wiki/inc/lang/sq/subscr_digest.txt
+++ /dev/null
@@ -1,16 +0,0 @@
-Përshëndetje!
-
-Faqja @PAGE@ në wiki-n @TITLE@ ndryshoi.
-Këtu janë ndryshimet:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-Rishikimi i vjetër: @OLDPAGE@
-Rishikimi i ri: @NEWPAGE@
-
-Për të fshirë lajmërimet e faqes, mund të hyni tek wiki në
-@DOKUWIKIURL@ pastaj vizitoni
-@SUBSCRIBE@
-dhe ç'regjistro faqen dhe/ose ndryshimet e hapësirës së emrit.
diff --git a/wiki/inc/lang/sq/subscr_form.txt b/wiki/inc/lang/sq/subscr_form.txt
deleted file mode 100644
index 7c71a4c..0000000
--- a/wiki/inc/lang/sq/subscr_form.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Menaxhimi i Abonimeve ======
-
-Kjo faqe lejon menaxhimin e abonimeve tuaja për faqen dhe hapësirën e emrit aktual.
\ No newline at end of file
diff --git a/wiki/inc/lang/sq/subscr_list.txt b/wiki/inc/lang/sq/subscr_list.txt
deleted file mode 100644
index 0677f40..0000000
--- a/wiki/inc/lang/sq/subscr_list.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-Përshëndetje!
-
-Faqet në hapësirën e emrit @PAGE@ të wiki-t @TITLE@ ndryshuan. Këto janë faqet e ndryshuara:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-Për të fshirë lajmërimet e faqes, hyni në wiki-n tek @DOKUWIKIURL@ dhe pastaj vizitoni @SUBSCRIBE@ dhe fshini ndryshimet e faqes dhe/ose të hapësirës së emrit.
diff --git a/wiki/inc/lang/sq/subscr_single.txt b/wiki/inc/lang/sq/subscr_single.txt
deleted file mode 100644
index 0e4a71c..0000000
--- a/wiki/inc/lang/sq/subscr_single.txt
+++ /dev/null
@@ -1,19 +0,0 @@
-Përshëndetje!
-
-Faqja @PAGE@ në wiki-n @TITLE@ ndryshoi.
-Këto janë ndryshimet:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-Data : @DATE@
-Përdoruesi : @USER@
-Përmbledhja redaktimit: @SUMMARY@
-Rishikimi i vjetër: @OLDPAGE@
-Rishikimi i ri: @NEWPAGE@
-
-Për të fshirë lajmërimet e faqes, hyni në wiki tek
-@DOKUWIKIURL@ dhe pastaj vizitoni
-@SUBSCRIBE@
-dhe fshini ndryshimet e faqes dhe/ose hapësirës së emrit.
diff --git a/wiki/inc/lang/sq/updateprofile.txt b/wiki/inc/lang/sq/updateprofile.txt
deleted file mode 100644
index ba76beb..0000000
--- a/wiki/inc/lang/sq/updateprofile.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Përditësoni profilin e llogarisë tuaj ======
-
-Duhet vetëm të plotësoni ato fusha që doni të ndryshoni. Mund të mos e ndryshoni emrin tuaj të përdoruesit.
\ No newline at end of file
diff --git a/wiki/inc/lang/sq/uploadmail.txt b/wiki/inc/lang/sq/uploadmail.txt
deleted file mode 100644
index 126aefc..0000000
--- a/wiki/inc/lang/sq/uploadmail.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-Një skedar u ngarkua në DokuWiki-n tënd. Detajet janë:
-
-Skedar: @MEDIA@
-Data: @DATE@
-Shfletuesi: @BROWSER@
-Adresa IP: @IPADDRESS@
-Emri Hostit: @HOSTNAME@
-Madhësia: @SIZE@
-Tipi MIME: @MIME@
-Përdoruesi: @USER@
diff --git a/wiki/inc/lang/sr/admin.txt b/wiki/inc/lang/sr/admin.txt
deleted file mode 100644
index 1e42970..0000000
--- a/wiki/inc/lang/sr/admin.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== ÐдминиÑтрација ======
-
-Изпод Ñе налази лиÑта доÑтупних админиÑтраторÑких опција у DokuWiki-ју.
-
diff --git a/wiki/inc/lang/sr/adminplugins.txt b/wiki/inc/lang/sr/adminplugins.txt
deleted file mode 100644
index 02b1a04..0000000
--- a/wiki/inc/lang/sr/adminplugins.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== ОÑтали додаци =====
\ No newline at end of file
diff --git a/wiki/inc/lang/sr/backlinks.txt b/wiki/inc/lang/sr/backlinks.txt
deleted file mode 100644
index dae8d5a..0000000
--- a/wiki/inc/lang/sr/backlinks.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Повратне везе ======
-
-Ово је лиÑта Ñтраница које имају везе ка тренутној Ñтраници.
-
diff --git a/wiki/inc/lang/sr/conflict.txt b/wiki/inc/lang/sr/conflict.txt
deleted file mode 100644
index 2a1427e..0000000
--- a/wiki/inc/lang/sr/conflict.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-====== ПоÑтоји новија верзија ======
-
-ПоÑтоји новија верзија документа који Ñте изменили. Ово Ñе дешава када неки други кориÑник измени документ док га Ви још увек мењате.
-
-Проучите разлике које Ñу доле детаљно приказане, па након тога одлучите коју верзију желите да задржите. Ðко изаберете ''Ñачувај'', Ваша верзија ће да буде Ñачувана. Ðко изаберите ''поништи'', тренутна верзија ће да буде Ñачувана.
-
diff --git a/wiki/inc/lang/sr/denied.txt b/wiki/inc/lang/sr/denied.txt
deleted file mode 100644
index 521c284..0000000
--- a/wiki/inc/lang/sr/denied.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Забрањен приÑтуп ======
-
-Извините, али немате довољно права да наÑтавите.
-
diff --git a/wiki/inc/lang/sr/diff.txt b/wiki/inc/lang/sr/diff.txt
deleted file mode 100644
index 39b7427..0000000
--- a/wiki/inc/lang/sr/diff.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Разлике ======
-
-Овде Ñу приказане разлике између изабране ревизије и тренутне верзије Ñтранице.
-
diff --git a/wiki/inc/lang/sr/draft.txt b/wiki/inc/lang/sr/draft.txt
deleted file mode 100644
index 44affdd..0000000
--- a/wiki/inc/lang/sr/draft.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== Пронађена је Ñкица датотеке ======
-
-Прошли пут кад Ñте покушали нешто да измените на овој Ñтраници ваше измене ниÑу уÑпешно Ñачуване. DokuWiki је аутоматÑки Ñачувао Ñкицу вашег рада коју Ñада можете да иÑкориÑтите да биÑте наÑтавили Ñа изменама. ИÑпод можете да видите податке који Ñу Ñачувани током ваше поÑледње поÑете.
-
-Молимо ваÑ, одаберите да ли желите да  //повратите// ваше измене, //обришете// аутоматÑки Ñачувану Ñкицу, или //поништите// цео Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð¸Ð·Ð¼ÐµÐ½Ð°.
\ No newline at end of file
diff --git a/wiki/inc/lang/sr/edit.txt b/wiki/inc/lang/sr/edit.txt
deleted file mode 100644
index 2d6fa7b..0000000
--- a/wiki/inc/lang/sr/edit.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-Измените ову Ñтраницу и притиÑните ''Сачувај''. Погледајте [[wiki:syntax]] за ÑинтакÑу Викија. Молим ВаÑ, измените ову Ñтраницу Ñамо ако имате намеру да је **побољшате**. Ðко желите да теÑтирате могућноÑти, научите да направите Ñвоје кораке на [[playground:playground]].
-
diff --git a/wiki/inc/lang/sr/editrev.txt b/wiki/inc/lang/sr/editrev.txt
deleted file mode 100644
index 3279029..0000000
--- a/wiki/inc/lang/sr/editrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**Учитали Ñте Ñтару ревизију документа!** Ðко је Ñачувате, направићете нову верзију Ñа овим подацима.
-----
diff --git a/wiki/inc/lang/sr/index.txt b/wiki/inc/lang/sr/index.txt
deleted file mode 100644
index fe6467a..0000000
--- a/wiki/inc/lang/sr/index.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Ð˜Ð½Ð´ÐµÐºÑ ======
-
-Овде је Ð¸Ð½Ð´ÐµÐºÑ Ñвих доÑтупних Ñтраница поређаних по [[doku>namespaces|именÑким проÑторима]].
-
diff --git a/wiki/inc/lang/sr/install.html b/wiki/inc/lang/sr/install.html
deleted file mode 100644
index c6c70df..0000000
--- a/wiki/inc/lang/sr/install.html
+++ /dev/null
@@ -1,12 +0,0 @@
-<p>Ова Ñтраница ће вам помоћи у инÑталацији и подешавању <a href="http://dokuwiki.org">Dokuwiki-ја</a>. Више информација о инÑталацији можете пронаћи у
-<a href="http://dokuwiki.org/installer">документацији</a>.</p>
-
-<p>DokuWiki кориÑти обичне датотеке за Ñкладиштење вики Ñтраница и оÑталих информација везаних за Ñтранице (Ñлике, Ð¸Ð½Ð´ÐµÐºÑ Ð¿Ñ€ÐµÑ‚Ñ€Ð°Ð³Ðµ, Ñтаре преправке, итд.).
-Да би радио како треба DokuWiki као апликација <strong>мора</strong> имати могућноÑÑ‚ пиÑања под фаÑциклама у којима Ñе налазе ове датотеке. Овај програм за инÑталацију нема могућноÑÑ‚ поÑтављања дозвола за фаÑцикле. То Ñе обично ради директно из командне линије или ако кориÑтите изнајмњени Ñервер, помоћу ФТПа или кроз Контролни панел (нпр. cPanel).</p>
-
-<p>Овај програм за инÑталацију DokuWiki-а ће поÑтавити подешавања за
-Права приÑтупа, које ће омогућити пријјављивање као админиÑтратор и приÑтуп менију за инÑталацију додатака, управљање кориÑницима, управљање приÑтупом ка Ñтраницама и алтернатвна подешавања. Ðије неопходно да би DokuWiki радио, али ће вам олакшати админиÑтрацију.</p>
-
-<p>ИÑкуÑнији кориÑници и кориÑници Ñа поÑебним захтевима би требало да погледају Ñледеће линкове Ñа детаљним упутÑтвима о
-<a href="http://dokuwiki.org/install">инÑтрукцијама за инÑталацију</a>
-и <a href="http://dokuwiki.org/config">подешавањима</a>.</p>
\ No newline at end of file
diff --git a/wiki/inc/lang/sr/jquery.ui.datepicker.js b/wiki/inc/lang/sr/jquery.ui.datepicker.js
deleted file mode 100644
index fa8827a..0000000
--- a/wiki/inc/lang/sr/jquery.ui.datepicker.js
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Serbian i18n for the jQuery UI date picker plugin. */
-/* Written by Dejan Dimić. */
-( function( factory ) {
-	if ( typeof define === "function" && define.amd ) {
-
-		// AMD. Register as an anonymous module.
-		define( [ "../widgets/datepicker" ], factory );
-	} else {
-
-		// Browser globals
-		factory( jQuery.datepicker );
-	}
-}( function( datepicker ) {
-
-datepicker.regional.sr = {
-	closeText: "Затвори",
-	prevText: "&#x3C;",
-	nextText: "&#x3E;",
-	currentText: "ДанаÑ",
-	monthNames: [ "Јануар","Фебруар","Март","Ðприл","Мај","Јун",
-	"Јул","ÐвгуÑÑ‚","Септембар","Октобар","Ðовембар","Децембар" ],
-	monthNamesShort: [ "Јан","Феб","Мар","Ðпр","Мај","Јун",
-	"Јул","Ðвг","Сеп","Окт","Ðов","Дец" ],
-	dayNames: [ "Ðедеља","Понедељак","Уторак","Среда","Четвртак","Петак","Субота" ],
-	dayNamesShort: [ "Ðед","Пон","Уто","Сре","Чет","Пет","Суб" ],
-	dayNamesMin: [ "Ðе","По","Ут","Ср","Че","Пе","Су" ],
-	weekHeader: "Сед",
-	dateFormat: "dd.mm.yy",
-	firstDay: 1,
-	isRTL: false,
-	showMonthAfterYear: false,
-	yearSuffix: "" };
-datepicker.setDefaults( datepicker.regional.sr );
-
-return datepicker.regional.sr;
-
-} ) );
diff --git a/wiki/inc/lang/sr/lang.php b/wiki/inc/lang/sr/lang.php
deleted file mode 100644
index 9182c1b..0000000
--- a/wiki/inc/lang/sr/lang.php
+++ /dev/null
@@ -1,342 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Filip Brcic <brcha@users.sourceforge.net>
- * @author Иван Петровић (Ivan Petrovic) <petrovicivan@ubuntusrbija.org>
- * @author Miroslav Å olti <solti.miroslav@gmail.com>
- * @author Жељко Тодоровић <zeljko_todorovic@mail.com>
- * @author Марко М. КоÑтић <marko.m.kostic@gmail.com>
- */
-$lang['encoding']              = 'utf-8';
-$lang['direction']             = 'ltr';
-$lang['doublequoteopening']    = '„';
-$lang['doublequoteclosing']    = '“';
-$lang['singlequoteopening']    = '‚';
-$lang['singlequoteclosing']    = '‘';
-$lang['apostrophe']            = '\'';
-$lang['btn_edit']              = 'Измени ову Ñтраницу';
-$lang['btn_source']            = 'Прикажи изворни код';
-$lang['btn_show']              = 'Прикажи Ñтраницу';
-$lang['btn_create']            = 'Ðаправи ову Ñтраницу';
-$lang['btn_search']            = 'Тражи';
-$lang['btn_save']              = 'Сачувај';
-$lang['btn_preview']           = 'Прегледај';
-$lang['btn_top']               = 'Врати Ñе на врх';
-$lang['btn_newer']             = '<< новије';
-$lang['btn_older']             = 'Ñтарије >>';
-$lang['btn_revs']              = 'Старе верзије';
-$lang['btn_recent']            = 'Скорије измене';
-$lang['btn_upload']            = 'Пошаљи';
-$lang['btn_cancel']            = 'Поништи';
-$lang['btn_index']             = 'ИндекÑ';
-$lang['btn_secedit']           = 'Измени';
-$lang['btn_login']             = 'Пријави Ñе';
-$lang['btn_logout']            = 'Одјави Ñе';
-$lang['btn_admin']             = 'ÐдминиÑтрација';
-$lang['btn_update']            = 'Ðжурирај';
-$lang['btn_delete']            = 'Избриши';
-$lang['btn_back']              = 'Ðатраг';
-$lang['btn_backlink']          = 'Повратне везе';
-$lang['btn_subscribe']         = 'Пријави Ñе на измене';
-$lang['btn_profile']           = 'Ðжурирај профил';
-$lang['btn_reset']             = 'Поништи';
-$lang['btn_resendpwd']         = 'ПоÑтавите нови лозинку';
-$lang['btn_draft']             = 'Измени нацрт';
-$lang['btn_recover']           = 'Опорави нацрт';
-$lang['btn_draftdel']          = 'Обриши нацрт';
-$lang['btn_revert']            = 'Врати на пређашњу верзију';
-$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']                  = 'Лозинка';
-$lang['newpass']               = 'Ðова лозинка';
-$lang['oldpass']               = 'УнеÑи Ñадашњу лозинку';
-$lang['passchk']               = 'поново';
-$lang['remember']              = 'Запамти ме';
-$lang['fullname']              = 'Име и презиме';
-$lang['email']                 = 'Е-адреÑа';
-$lang['profile']               = 'КориÑнички профил';
-$lang['badlogin']              = 'ÐажалоÑÑ‚, није добро кориÑничко име или лозинка.';
-$lang['badpassconfirm']        = 'ÐажалоÑÑ‚, лозинка је била погрешна';
-$lang['minoredit']             = 'Мала измена';
-$lang['draftdate']             = 'Ðацрт је аутоматÑки Ñачуван';
-$lang['nosecedit']             = 'Страна је у међувремену промењена, поглавље је заÑтарело и поново Ñе учитава цела Ñтрана.';
-$lang['regmissing']            = 'Извините, морате да попуните Ñва поља.';
-$lang['reguexists']            = 'Извините, кориÑник Ñа иÑтим именом већ поÑтоји.';
-$lang['regsuccess']            = 'КориÑник је направљен и лозинка је поÑлата путем е-поште.';
-$lang['regsuccess2']           = 'КориÑник је направљен.';
-$lang['regfail']               = 'ÐиÑам могао да направим кориÑника.';
-$lang['regmailfail']           = 'Изгледа да је дошло до грешке приликом Ñлања лозинке е-поштом. Контактирајте админиÑтратора!';
-$lang['regbadmail']            = 'Дата е-адреÑа није у реду - ако миÑлите да је ово грешка, контактирајте админиÑтратора';
-$lang['regbadpass']            = 'Две унете лозинке ниÑу иÑте. Пробајте поново.';
-$lang['regpwmail']             = 'Ваша DokuWiki лозинка';
-$lang['reghere']               = 'Још увек немате налог? Само направите један';
-$lang['profna']                = 'Овај вики не дозвољава измену профила';
-$lang['profnochange']          = 'Ðема промена.';
-$lang['profnoempty']           = 'Ðије дозвољено оÑтавити празно поље имена или е-адреÑе.';
-$lang['profchanged']           = 'КориÑнички профил је ажуриран.';
-$lang['profnodelete']          = 'Овај вики не подржава бриÑање кориÑника';
-$lang['profdeleteuser']        = 'Избриши налог';
-$lang['profdeleted']           = 'Ваш кориÑнички налог је избриÑан Ñа овог викија';
-$lang['profconfdelete']        = 'Желим да уклоним Ñвој налог Ñа овог викија. <br/> Ова радња Ñе не може опозвати.';
-$lang['profconfdeletemissing'] = 'Ðије штиклирано поље за потврду';
-$lang['proffail']              = 'КориÑнички профил није ажуриран.';
-$lang['pwdforget']             = 'Заборавили Ñте лозинку? Ðаправите нову';
-$lang['resendna']              = 'Овај вики не дозвољава Ñлање лозинки.';
-$lang['resendpwd']             = 'ПоÑтавите нову лозинку за';
-$lang['resendpwdmissing']      = 'Жао ми је, Ñва поља морају бити попуњена.';
-$lang['resendpwdnouser']       = 'Жао ми је, овај кориÑник не поÑтоји у нашој бази.';
-$lang['resendpwdbadauth']      = 'Жао ми је, потврдни код није иÑправан. Проверите да ли Ñте кориÑтили комплетан потврдни линк.';
-$lang['resendpwdconfirm']      = 'Потврдни линк је поÑтат као е-порука.';
-$lang['resendpwdsuccess']      = 'Ваша нова лозинка је поÑлата као е-порука.';
-$lang['license']               = 'ОÑим где је другачије назначено, материјал на овом викију је под Ñледећом лиценцом:';
-$lang['licenseok']             = 'Ðапомена: Изменом ове Ñтране Ñлажете Ñе да ће ваше измене бити под Ñледећом лиценцом:';
-$lang['searchmedia']           = 'Претражи по имену фајла';
-$lang['searchmedia_in']        = 'Претражи у %s';
-$lang['txt_upload']            = 'Изаберите датотеку за Ñлање:';
-$lang['txt_filename']          = 'УнеÑите вики-име (опционо):';
-$lang['txt_overwrt']           = 'Препишите тренутни фајл';
-$lang['maxuploadsize']         = 'Отпреми највише %s по датотеци.';
-$lang['lockedby']              = 'Тренутно закључано од Ñтране:';
-$lang['lockexpire']            = 'Закључавање иÑтиче:';
-$lang['js']['willexpire']      = 'Ваше закључавање за измену ове Ñтранице ће да иÑтекне за један минут.\nДа би Ñте избегли конфликте, иÑкориÑтите дугме за преглед како би Ñте реÑетовали тајмер закључавања.';
-$lang['js']['notsavedyet']     = 'ÐеÑачуване измене ће бити изгубљене.
-Да ли Ñтварно желите да наÑтавите?';
-$lang['js']['searchmedia']     = 'Потражи фајлове';
-$lang['js']['keepopen']        = 'Задржи отворен прозор након одабира';
-$lang['js']['hidedetails']     = 'Сакриј детаље';
-$lang['js']['mediatitle']      = 'Подешаванја везе';
-$lang['js']['mediadisplay']    = 'Тип везе';
-$lang['js']['mediaalign']      = 'Поравнање';
-$lang['js']['mediasize']       = 'Величина Ñлике';
-$lang['js']['mediatarget']     = 'веза води ка:';
-$lang['js']['mediaclose']      = 'Затвори';
-$lang['js']['mediainsert']     = 'Убаци';
-$lang['js']['mediadisplayimg'] = 'Покажи Ñлику';
-$lang['js']['mediadisplaylnk'] = 'Покажи Ñамо везу';
-$lang['js']['mediasmall']      = 'Мала верзија';
-$lang['js']['mediamedium']     = 'Средња верзија';
-$lang['js']['medialarge']      = 'Велика верзија';
-$lang['js']['mediaoriginal']   = 'Оригинална верзија';
-$lang['js']['medialnk']        = 'Веза ка Ñтраници Ñа детаљима';
-$lang['js']['mediadirect']     = 'Директна веза ка оригиналу';
-$lang['js']['medianolnk']      = 'Без везе';
-$lang['js']['medianolink']     = 'Ðе поÑтављај Ñлику као везу';
-$lang['js']['medialeft']       = 'Поравнај Ñлику на лево';
-$lang['js']['mediaright']      = 'Поравнај Ñлику на деÑно';
-$lang['js']['mediacenter']     = 'Поравнај Ñлику по Ñредини';
-$lang['js']['medianoalign']    = 'Без поравнања';
-$lang['js']['nosmblinks']      = 'Повезивање Ñа Windows дељеним фолдерима ради Ñамо у МајкроÑофтовом Интернет Претраживачу.
-Ипак, можете да иÑкопирате и залепите везу.';
-$lang['js']['linkwiz']         = 'Чаробњак за Ñтварање везе';
-$lang['js']['linkto']          = 'Повежи ка:';
-$lang['js']['del_confirm']     = 'Обриши овај уноÑ?';
-$lang['js']['restore_confirm'] = 'ЗаиÑта желите да вратите ово издање?';
-$lang['js']['media_diff']      = 'Погледај разлике:';
-$lang['js']['media_diff_both'] = 'Једно до другог';
-$lang['js']['media_select']    = 'Изабери датотеке…';
-$lang['js']['media_upload_btn'] = 'Отпреми';
-$lang['js']['media_done_btn']  = 'Готово';
-$lang['js']['media_drop']      = 'Превуците датотеке овде да биÑте их отпремили';
-$lang['js']['media_cancel']    = 'уклони';
-$lang['js']['media_overwrt']   = 'Препиши поÑтојеће датотеке';
-$lang['rssfailed']             = 'Дошло је до грешке приликом преузимања овог довода: ';
-$lang['nothingfound']          = 'Ðишта није нађено.';
-$lang['mediaselect']           = 'Избор медијÑке датотеке';
-$lang['uploadsucc']            = 'УÑпешно Ñлање';
-$lang['uploadfail']            = 'ÐеуÑпешно Ñлање. Можда немате дозволу?';
-$lang['uploadwrong']           = 'Слање је забрањено. Овај наÑтавак датотеке је забрањен!';
-$lang['uploadexist']           = 'Датотека већ поÑтоји. Ðишта није учињено.';
-$lang['uploadbadcontent']      = 'Материјал који шаљете не одговара %s ';
-$lang['uploadspam']            = 'Слање је блокирано јер Ñе налазите на црној лиÑти пошиљаоца.';
-$lang['uploadxss']             = 'Слање је блокирано јер је потенцијално малициозног Ñадржаја.';
-$lang['uploadsize']            = 'ПоÑлата датотека је превелика. (макÑимум је %s)';
-$lang['deletesucc']            = 'Фајл "%s" је избриÑан.';
-$lang['deletefail']            = '"%s" није могао да буде избриÑан - проверите дозволе.';
-$lang['mediainuse']            = 'Фајл "%s" није избриÑан - још је у употреби.';
-$lang['namespaces']            = 'ИменÑки проÑтори';
-$lang['mediafiles']            = 'ДоÑтупни фајлови у';
-$lang['accessdenied']          = 'Ðемате дозволу да видите ову Ñтраницу.';
-$lang['mediausage']            = 'КориÑтите Ñледећу ÑинтакÑу за референцу ка овој датотеци:';
-$lang['mediaview']             = 'Прикажи оригиналну датотеку';
-$lang['mediaroot']             = 'почетак';
-$lang['mediaupload']           = 'Пошаљи датотеку у тренутни именÑки проÑтор. Да биÑте направили подпроÑторе, предвидите их у поље „Пошаљи као“ раздвојено двотачкама.';
-$lang['mediaextchange']        = 'ÐаÑтавак датотеке је промењен из .%s у .%s!';
-$lang['reference']             = 'Референце за';
-$lang['ref_inuse']             = 'Фајл не може да буде избриÑан јер га још увек кориÑте Ñледеће Ñтранице:';
-$lang['ref_hidden']            = 'Ðеке референце Ñу на Ñтраницама за које немате дозволе за читање';
-$lang['hits']                  = 'Поготци';
-$lang['quickhits']             = 'Имена Ñтраница које Ñе поклапају';
-$lang['toc']                   = 'Садржај';
-$lang['current']               = 'тренутно';
-$lang['yours']                 = 'Ваша верзија';
-$lang['diff']                  = 'прикажи разлике до тренутне верзије';
-$lang['diff2']                 = 'Прикажи разлике између одабраних ревизија';
-$lang['difflink']              = 'ПоÑтави везу ка овом компаративном приказу';
-$lang['diff_type']             = 'Погледај разлике:';
-$lang['diff_inline']           = 'У линији';
-$lang['diff_side']             = 'Једно до другог';
-$lang['diffprevrev']           = 'Претходна ревизија';
-$lang['diffnextrev']           = 'Следећа ревизија';
-$lang['difflastrev']           = 'ПоÑледња ревизија';
-$lang['diffbothprevrev']       = 'Обе Ñтране поÑледње ревизије';
-$lang['diffbothnextrev']       = 'Обе Ñтране Ñледеће ревизије';
-$lang['line']                  = 'Линија';
-$lang['breadcrumb']            = 'Траг:';
-$lang['youarehere']            = 'Сада Ñте овде:';
-$lang['lastmod']               = 'ПоÑледњи пут мењано:';
-$lang['by']                    = 'од';
-$lang['deleted']               = 'избриÑано';
-$lang['created']               = 'направљено';
-$lang['restored']              = 'Ñтара верзија повраћена (%s)';
-$lang['external_edit']         = 'Ñпољна измена';
-$lang['summary']               = 'Сажетак измене';
-$lang['noflash']               = 'За приказивање ове врÑте материјала потребан вам је <a href="http://www.adobe.com/products/flashplayer/">Adobe Flash Plugin</a>.';
-$lang['download']              = 'Преузми Ñнипет';
-$lang['tools']                 = 'Ðлатке';
-$lang['user_tools']            = 'КориÑничке алатке';
-$lang['site_tools']            = 'Ðлатке Ñајта';
-$lang['page_tools']            = 'Ðлатке Ñтранице';
-$lang['skip_to_content']       = 'Ñкочи на Ñадржај';
-$lang['sidebar']               = 'Страничник';
-$lang['mail_newpage']          = 'Ñтраница додата:';
-$lang['mail_changed']          = 'Ñтраница измењена:';
-$lang['mail_subscribe_list']   = 'Странице промењене у именÑком проÑтору:';
-$lang['mail_new_user']         = 'нови кориÑник:';
-$lang['mail_upload']           = 'поÑлата датотека:';
-$lang['changes_type']          = 'Прикажи измене';
-$lang['pages_changes']         = 'Странице';
-$lang['media_changes']         = 'датотека';
-$lang['both_changes']          = 'И Ñтраница и датотека';
-$lang['qb_bold']               = 'МаÑтан текÑÑ‚';
-$lang['qb_italic']             = 'Курзивни текÑÑ‚';
-$lang['qb_underl']             = 'Подвучени текÑÑ‚';
-$lang['qb_code']               = 'Изворни код';
-$lang['qb_strike']             = 'Прецртани текÑÑ‚';
-$lang['qb_h1']                 = 'ÐаÑлов 1. нивоа';
-$lang['qb_h2']                 = 'ÐаÑлов 2. нивоа';
-$lang['qb_h3']                 = 'ÐаÑлов 3. нивоа';
-$lang['qb_h4']                 = 'ÐаÑлов 4. нивоа';
-$lang['qb_h5']                 = 'ÐаÑлов 5. нивоа';
-$lang['qb_h']                  = 'ÐаÑлов';
-$lang['qb_hs']                 = 'Одабери наÑлов';
-$lang['qb_hplus']              = 'Виши наÑлов';
-$lang['qb_hminus']             = 'Ðижи наÑлов';
-$lang['qb_hequal']             = 'ÐаÑлов на иÑтом нивоу';
-$lang['qb_link']               = 'Унутрашња веза';
-$lang['qb_extlink']            = 'Спољашња веза';
-$lang['qb_hr']                 = 'Хоризонтална линија';
-$lang['qb_ol']                 = 'Елемент уређене лиÑте';
-$lang['qb_ul']                 = 'Елемент неуређене лиÑте';
-$lang['qb_media']              = 'Додај Ñлике и друге фајлове';
-$lang['qb_sig']                = 'Убаци потпиÑ';
-$lang['qb_smileys']            = 'Смешко';
-$lang['qb_chars']              = 'ПоÑебни карактери';
-$lang['upperns']               = 'Скочи на виши именÑки проÑтор';
-$lang['metaedit']              = 'Измени мета-податке';
-$lang['metasaveerr']           = 'ЗапиÑивање мета-података није било уÑпешно';
-$lang['metasaveok']            = 'Мета-подаци Ñу Ñачувани';
-$lang['img_title']             = 'ÐаÑлов:';
-$lang['img_caption']           = 'Ðазив:';
-$lang['img_date']              = 'Датум:';
-$lang['img_fname']             = 'Име фајла:';
-$lang['img_fsize']             = 'Величина:';
-$lang['img_artist']            = 'Фотограф:';
-$lang['img_copyr']             = 'Права копирања:';
-$lang['img_format']            = 'Формат:';
-$lang['img_camera']            = 'Камера:';
-$lang['img_keywords']          = 'Кључне речи:';
-$lang['img_width']             = 'Ширина:';
-$lang['img_height']            = 'ВиÑина:';
-$lang['subscr_subscribe_success'] = '%s је додат на ÑпиÑак претплатника %s';
-$lang['subscr_subscribe_error'] = 'Грешка приликом додавања %s на ÑпиÑак претплатника %s';
-$lang['subscr_subscribe_noaddress'] = 'Ðе поÑтоји адреÑа повезана Ñа вашим подацима, Ñтога Ð²Ð°Ñ Ð½Ðµ можемо додати на ÑпиÑак претплатника.';
-$lang['subscr_unsubscribe_success'] = '%s уклоњен Ñа ÑпиÑка претплатника %s';
-$lang['subscr_unsubscribe_error'] = 'Грешка приликом уклањања %s Ñа ÑпиÑка претплатника %s';
-$lang['subscr_already_subscribed'] = '%s је већ претплаћен на %s';
-$lang['subscr_not_subscribed'] = '%s још није претплаћен на %s';
-$lang['subscr_m_not_subscribed'] = 'Тренутно ниÑте претплаћени на ову Ñтраницу или именÑки проÑтор.';
-$lang['subscr_m_new_header']   = 'Додај претплату';
-$lang['subscr_m_current_header'] = 'Тренутне претплате';
-$lang['subscr_m_unsubscribe']  = 'Уклони претплату';
-$lang['subscr_m_subscribe']    = 'Претплати Ñе';
-$lang['subscr_m_receive']      = 'Прими';
-$lang['subscr_style_every']    = 'имејл о Ñвакој промени';
-$lang['subscr_style_digest']   = 'Ñкраћени имејл о променама за Ñваку Ñтраницу (Ñваких %.2f дана)';
-$lang['subscr_style_list']     = 'СпиÑак Ñтраница промењених након поÑледњег имејла (Ñваких %.2f дана)';
-$lang['authtempfail']          = 'Провера кориÑника је тренутно недоÑтупна. Ðко Ñе Ñитуација наÑтави, молимо Ð’Ð°Ñ Ð´Ð° обавеÑтите админиÑтратора викија.';
-$lang['i_chooselang']          = 'Одаберите језик';
-$lang['i_installer']           = 'Докувики инÑталација';
-$lang['i_wikiname']            = 'Ðазив викија';
-$lang['i_enableacl']           = 'Укључи ';
-$lang['i_superuser']           = 'СуперкориÑник';
-$lang['i_problems']            = 'ИнÑталација је наишла на проблеме који Ñу навадени у текÑту иÑпод. Ðе можете наÑтавити даље док их не иÑправите.';
-$lang['i_modified']            = 'Из ÑигурноÑних разлога ова Ñкрипта ради Ñамо Ñа новом Dokuwiki инÑталацијом. Требало би или да опет раÑпакујете архиву преузету Ñа Ñајта или да погледате <a href="http://dokuwiki.org/install">Dokuwiki инÑтрукције за инÑталацију</a>';
-$lang['i_funcna']              = 'ПХП функција <code>%s</code> није доÑтупна. Можда је Ваш хоÑтинг провајдер забранио из неког разлога?';
-$lang['i_phpver']              = '<code>%s</code> Верзија Вашег ПХПа је нижа од неопходне <code>%s</code>. Требало би да надоградите ПХП инÑталацију.';
-$lang['i_mbfuncoverload']      = 'mbstring.func_overload мора бити иÑкључен у датотеци php.ini да биÑте кориÑтили Докувики.';
-$lang['i_permfail']            = 'DokuWiki нема дозволу пиÑања у <code>%s</code>. Потребно је да поправите дозволе за ову фаÑциклу!';
-$lang['i_confexists']          = '<code>%s</code> већ поÑтоји';
-$lang['i_writeerr']            = 'Ðе могу да направим <code>%s</code>. Проверите дозволе а затим ручно направите ову датотеку.';
-$lang['i_badhash']             = 'dokuwiki.php није препознат или је измењен (hash=<code>%s</code>)';
-$lang['i_badval']              = '<code>%s</code> - недозвољена или празна вредноÑÑ‚';
-$lang['i_success']             = 'Подешавања Ñу завршена. Сада можете обриÑати датотеку install.php. ÐаÑтавите у <a href="doku.php?id=wiki:welcome">Ваш нови DokuWiki</a>.';
-$lang['i_failure']             = 'Појавили Ñу Ñе проблеми при пиÑању датотеке Ñа подешавањима. Требало би да их ручно иÑправите пре него што ћете моћи да кориÑтите <a href="doku.php?id=wiki:welcome">Ваш нови DokuWiki</a>.';
-$lang['i_policy']              = 'Иницијалне кориÑничке дозволе';
-$lang['i_pol0']                = 'Отворени вики (читање, пиÑање, Ñлање датотека за Ñве)';
-$lang['i_pol1']                = 'Јавни вики (читање за Ñве, пиÑање и Ñлање датотека Ñамо за региÑтроване кориÑнике)';
-$lang['i_pol2']                = 'Затворени вики (читање, пиÑање и Ñлање датотека Ñамо за региÑтроване кориÑнике)';
-$lang['i_allowreg']            = 'Дозволи кориÑницима да Ñе региÑтрују';
-$lang['i_retry']               = 'Понови';
-$lang['i_license']             = 'Молимо ваÑ, одаберите лиценцу под коју желите да Ñтавите Ñвој Ñадржај:';
-$lang['i_license_none']        = 'Ðе приказуј податке о лиценци';
-$lang['i_pop_field']           = 'Помозите нам да побољшамо Докувики:';
-$lang['i_pop_label']           = 'Једном меÑечно шаљи анонимне податке о коришћењу програмерима Докувикија';
-$lang['recent_global']         = 'Тренутно пратите промене у именÑком проÑтору <b>%s</b>. Такође, можете пратити <a href="%s">прмене на целом викију</a>.';
-$lang['years']                 = 'Пре %d година';
-$lang['months']                = 'Пре %d меÑеци';
-$lang['weeks']                 = 'Пре %d недеља';
-$lang['days']                  = 'Пре %d дана';
-$lang['hours']                 = 'Пре %d Ñати';
-$lang['minutes']               = 'Пре %d минута';
-$lang['seconds']               = 'Пре %d Ñекунди';
-$lang['wordblock']             = 'Ваше измене ниÑу Ñачуване јер Ñадрже забрањен текÑÑ‚ (Ñпам)';
-$lang['media_uploadtab']       = 'Отпреми';
-$lang['media_searchtab']       = 'Претрага';
-$lang['media_file']            = 'Датотека';
-$lang['media_viewtab']         = 'Погледај';
-$lang['media_edittab']         = 'Уреди';
-$lang['media_historytab']      = 'ИÑторијат';
-$lang['media_list_thumbs']     = 'Сличице';
-$lang['media_list_rows']       = 'Редови';
-$lang['media_sort_name']       = 'Име';
-$lang['media_sort_date']       = 'Датум';
-$lang['media_namespaces']      = 'Изабери именÑки проÑтор';
-$lang['media_files']           = 'Датотеке у %s';
-$lang['media_upload']          = 'Отпреми на %s';
-$lang['media_search']          = 'Претражи у %s';
-$lang['media_view']            = '%s';
-$lang['media_viewold']         = '%s у %s';
-$lang['media_edit']            = 'Уреди %s';
-$lang['media_history']         = 'ИÑторијат од %s';
-$lang['media_meta_edited']     = 'промењени мета-подаци';
-$lang['media_perm_read']       = 'ÐажалоÑÑ‚, немате довољно овлашћења за читање датотека.';
-$lang['media_perm_upload']     = 'ÐажалоÑÑ‚, немате довољно овлашћења за отпремање датотека.';
-$lang['media_update']          = 'Отпреми ново издање';
-$lang['media_restore']         = 'Поврати ово издање';
-$lang['media_acl_warning']     = 'Овај ÑпиÑак је можда непотпун због забрана на ÑпиÑку контроле приÑтупа и Ñкривених Ñтраница.';
-$lang['currentns']             = 'Тренутни именÑки проÑтор';
-$lang['searchresult']          = 'Резултати претраге';
-$lang['plainhtml']             = 'Обичан HTML';
-$lang['wikimarkup']            = 'Вики маркап';
-$lang['page_nonexist_rev']     = 'Страница не поÑтоји у %s. КаÑније је направљена у <a href="%s">%s</a>.';
-$lang['unable_to_parse_date']  = 'Ðе могу да обрадим код параметра "%s".';
-$lang['email_signature_text']  = 'Ову поруку је генериÑао DokuWiki sa
-@DOKUWIKIURL@';
diff --git a/wiki/inc/lang/sr/locked.txt b/wiki/inc/lang/sr/locked.txt
deleted file mode 100644
index 4bcc0ac..0000000
--- a/wiki/inc/lang/sr/locked.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Страница је закључана ======
-
-Ову Ñтраница је други кориÑник у овом тренутку закључао за измене. Мораћете да Ñачекате док он не заврши Ñа изменама или не иÑтекне закључавање.
diff --git a/wiki/inc/lang/sr/login.txt b/wiki/inc/lang/sr/login.txt
deleted file mode 100644
index c2f5a6f..0000000
--- a/wiki/inc/lang/sr/login.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Пријављивање ======
-
-Тренутно ниÑте пријављени! УнеÑите Ваше информације иÑпод да биÑте Ñе пријавили. За то је неопходно да колачићи буду омогућен.
-
diff --git a/wiki/inc/lang/sr/mailtext.txt b/wiki/inc/lang/sr/mailtext.txt
deleted file mode 100644
index ab9d717..0000000
--- a/wiki/inc/lang/sr/mailtext.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-Страница на Вашем DokuWiki-ју је додата или измењена. Ево детаља
-
-Датум                 : @DATE@
-Веб читач           : @BROWSER@
-ИП адреÑа          : @IPADDRESS@
-Име домаћина     : @HOSTNAME@
-Стара ревизија    : @OLDPAGE@
-Ðова ревизија      : @NEWPAGE@
-Сажетак измена   : @SUMMARY@
-КориÑник             : @USER@
-
-@DIFF@
diff --git a/wiki/inc/lang/sr/newpage.txt b/wiki/inc/lang/sr/newpage.txt
deleted file mode 100644
index 40a36e6..0000000
--- a/wiki/inc/lang/sr/newpage.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Ова тема још увек не поÑтоји ======
-
-Пратили Ñте везу до теме која још увек не поÑтоји. Можете да је направите кориÑтећи дугме ''Ðаправи ову Ñтраницу''.
diff --git a/wiki/inc/lang/sr/norev.txt b/wiki/inc/lang/sr/norev.txt
deleted file mode 100644
index 73f8d0b..0000000
--- a/wiki/inc/lang/sr/norev.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Ðе поÑтоји таква ревизија ======
-
-Задата ревизија не поÑтоји. ИÑкориÑтите дугме ''Старе ревизије'' да излиÑтате Ñтаре ревизије овог документа.
-
diff --git a/wiki/inc/lang/sr/password.txt b/wiki/inc/lang/sr/password.txt
deleted file mode 100644
index bd2cf32..0000000
--- a/wiki/inc/lang/sr/password.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-Здраво @FULLNAME@!
-
-Ево Ваших података за @TITLE@ на @DOKUWIKIURL@
-
-КориÑничко име : @LOGIN@
-Лозинка          : @PASSWORD@
diff --git a/wiki/inc/lang/sr/preview.txt b/wiki/inc/lang/sr/preview.txt
deleted file mode 100644
index be92888..0000000
--- a/wiki/inc/lang/sr/preview.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Преглед ======
-
-Ово је преглед тога како би Ваш текÑÑ‚ изгледао. Ðе заборавите: он још **није Ñачуван**!
-
diff --git a/wiki/inc/lang/sr/pwconfirm.txt b/wiki/inc/lang/sr/pwconfirm.txt
deleted file mode 100644
index ce44cd5..0000000
--- a/wiki/inc/lang/sr/pwconfirm.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-Здраво @FULLNAME@!
-
-Ðеко је затражио нову лозинку за Ваш налог @TITLE@ на @DOKUWIKIURL@
-
-Ðко то ниÑте Ви, Ñамо игноришите ову поруку.
-
-У Ñупротном, да биÑте потврдили захтев кликните на Ñледећи линк:
-
-@CONFIRM@
diff --git a/wiki/inc/lang/sr/read.txt b/wiki/inc/lang/sr/read.txt
deleted file mode 100644
index c2d9fff..0000000
--- a/wiki/inc/lang/sr/read.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-Ова Ñтраница је Ñамо за читање. Можете да погледате изворни код, али не можете да је мењате. Обратите Ñе админиÑтратору ако миÑлите да то није уреду.
-
diff --git a/wiki/inc/lang/sr/recent.txt b/wiki/inc/lang/sr/recent.txt
deleted file mode 100644
index 54c0c26..0000000
--- a/wiki/inc/lang/sr/recent.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== Скорије измене ======
-
-Следеће Ñтранице Ñу биле измењене у Ñкорије време.
-
-
diff --git a/wiki/inc/lang/sr/register.txt b/wiki/inc/lang/sr/register.txt
deleted file mode 100644
index a553b7a..0000000
--- a/wiki/inc/lang/sr/register.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== РегиÑтрујте Ñе као нови кориÑник ======
-
-Попуните Ñве информације иÑпод како би Ñте направили нови налог на овом викију. Обавезно упишите **тачну е-адреÑу** - Ваша нова лозинка ће тамо бити поÑлата. КориÑничко име би требало да буде иÑправно [[doku>pagename|име Ñтранице]]
-
diff --git a/wiki/inc/lang/sr/registermail.txt b/wiki/inc/lang/sr/registermail.txt
deleted file mode 100644
index 9dca20c..0000000
--- a/wiki/inc/lang/sr/registermail.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-РегиÑтрован је нови кориÑник. Ово Ñу детаљи:
-
-КориÑничко име: @NEWUSER@
-Име и презиме: @NEWNAME@
-Е-адреÑа: @NEWEMAIL@
-
-Датум: @DATE@
-Веб читач: @BROWSER@
-ИП адреÑа: @IPADDRESS@
-Домаћин: @HOSTNAME@
diff --git a/wiki/inc/lang/sr/resendpwd.txt b/wiki/inc/lang/sr/resendpwd.txt
deleted file mode 100644
index 7f6623d..0000000
--- a/wiki/inc/lang/sr/resendpwd.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Пошаљи нову лозинку ======
-
-Молим Ð’Ð°Ñ ÑƒÐ½ÐµÑите кориÑничко име у форму да биÑте затражили нову лозинку за Ваш налог на овом викију. Потврдни линк ће бити поÑлат на е-адреÑу коју Ñте кориÑтили на региÑтрацији.
\ No newline at end of file
diff --git a/wiki/inc/lang/sr/resetpwd.txt b/wiki/inc/lang/sr/resetpwd.txt
deleted file mode 100644
index 642de98..0000000
--- a/wiki/inc/lang/sr/resetpwd.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== ПоÑтавите нову лозинку ======
-
-УнеÑите нову лозинку за ваш налог на овом викију.
\ No newline at end of file
diff --git a/wiki/inc/lang/sr/revisions.txt b/wiki/inc/lang/sr/revisions.txt
deleted file mode 100644
index 1ca995a..0000000
--- a/wiki/inc/lang/sr/revisions.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Старе ревизије ======
-
-Ово Ñу Ñтарије ревизије тренутног документа. Да би Ñте повратили Ñтару ревизију, изаберите је одоздо, кликните на ''Измени Ñтраницу'' и Ñачувајте је.
-
diff --git a/wiki/inc/lang/sr/searchpage.txt b/wiki/inc/lang/sr/searchpage.txt
deleted file mode 100644
index 4663f47..0000000
--- a/wiki/inc/lang/sr/searchpage.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Претрага ======
-
-ИÑпод можете да нађете резултате Ваше претраге. @CREATEPAGEINFO@
-
diff --git a/wiki/inc/lang/sr/showrev.txt b/wiki/inc/lang/sr/showrev.txt
deleted file mode 100644
index f2aabb2..0000000
--- a/wiki/inc/lang/sr/showrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**Ово је Ñтара верзија документа!**
-----
diff --git a/wiki/inc/lang/sr/stopwords.txt b/wiki/inc/lang/sr/stopwords.txt
deleted file mode 100644
index 78093e2..0000000
--- a/wiki/inc/lang/sr/stopwords.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-# Ово је лиÑта речи које Ñе неће индекÑирати, по једна реч у реду
-# Када мењате ову датотеку проверите да ли је нови ред запиÑан по UNIX ÑиÑтему
-# Ðема потребе уноÑити речи краће од 3 Ñлова - оне Ñе преÑкачу иначе
-ваш
-они
-њихов
-како
-ово
-шта
-кад
-где
-www
diff --git a/wiki/inc/lang/sr/subscr_digest.txt b/wiki/inc/lang/sr/subscr_digest.txt
deleted file mode 100644
index aaba525..0000000
--- a/wiki/inc/lang/sr/subscr_digest.txt
+++ /dev/null
@@ -1,16 +0,0 @@
-Здраво!
-
-Страница @PAGE@ под Вики наÑловом @TITLE@ је промењена.
-Ово Ñу промене:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-Стара верзија: @OLDPAGE@
-Ðова верзија: @NEWPAGE@
-
-
-Да биÑте поништили обавештења о променама Ñтраница, улогујте Ñе на Вики овде
-@DOKUWIKIURL@ а затим поÑетите
-@SUBSCRIBE@ и поништите обавештавање о променама Ñтраница и/или именÑких проÑтора..
diff --git a/wiki/inc/lang/sr/subscr_form.txt b/wiki/inc/lang/sr/subscr_form.txt
deleted file mode 100644
index 9bf72e4..0000000
--- a/wiki/inc/lang/sr/subscr_form.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-===== Управљање претплатама =====
-
-Ова Ñтраница вам омогућава да управљате Ñвојим претплатама на Ñтраницу и именÑки проÑтор на којима Ñе налазите.
\ No newline at end of file
diff --git a/wiki/inc/lang/sr/subscr_list.txt b/wiki/inc/lang/sr/subscr_list.txt
deleted file mode 100644
index 09df43d..0000000
--- a/wiki/inc/lang/sr/subscr_list.txt
+++ /dev/null
@@ -1,13 +0,0 @@
-Здраво!
-
-Страница у именÑком проÑтору @PAGE@ под Вики наÑловом @TITLE@ је промењена.
-Ово Ñу промењене Ñтранице:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-
-Да биÑте поништили обавештења о променама Ñтраница, улогујте Ñе на Вики овде
-@DOKUWIKIURL@ а затим поÑетите
-@SUBSCRIBE@ и поништите обавештавање о променама Ñтраница и/или именÑких проÑтора..
diff --git a/wiki/inc/lang/sr/subscr_single.txt b/wiki/inc/lang/sr/subscr_single.txt
deleted file mode 100644
index 67102dd..0000000
--- a/wiki/inc/lang/sr/subscr_single.txt
+++ /dev/null
@@ -1,19 +0,0 @@
-Здраво!
-
-Страница @PAGE@ под Вики наÑловом @TITLE@ је промењена.
-Ово Ñу промене:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-Датум : @DATE@
-КориÑникr : @USER@
-Измени Ñиже: @SUMMARY@
-Стара верзија: @OLDPAGE@
-Ðова верзија: @NEWPAGE@
-
-
-Да биÑте поништили обавештења о променама Ñтраница, улогујте Ñе на Бики овде
-@DOKUWIKIURL@ а затим поÑетите
-@SUBSCRIBE@ и поништите обавештавање о променама Ñтраница и/или именÑких проÑтора..
diff --git a/wiki/inc/lang/sr/updateprofile.txt b/wiki/inc/lang/sr/updateprofile.txt
deleted file mode 100644
index 1f31b22..0000000
--- a/wiki/inc/lang/sr/updateprofile.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Ðжурирање Вашег профила ======
-
-Потребно је попунити Ñамо она поља која желите да промените. Поље КориÑничко име не можете да промените.
\ No newline at end of file
diff --git a/wiki/inc/lang/sr/uploadmail.txt b/wiki/inc/lang/sr/uploadmail.txt
deleted file mode 100644
index 0db6f9e..0000000
--- a/wiki/inc/lang/sr/uploadmail.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-Ðова датотека је поÑлата на Ваш DokuWiki. Ово Ñу њени детањи:
-
-Датотека: @MEDIA@
-Датум: @DATE@
-Веб читач: @BROWSER@
-ИП адреÑа: @IPADDRESS@
-Домаћин: @HOSTNAME@
-Величина: @SIZE@
-MIME тип: @MIME@
-КориÑник: @USER@
diff --git a/wiki/inc/lang/sv/admin.txt b/wiki/inc/lang/sv/admin.txt
deleted file mode 100644
index 10887da..0000000
--- a/wiki/inc/lang/sv/admin.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Administration ======
-
-Nedan hittar du en lista över de tillgängliga administrativa uppgifterna i DokuWiki.
-
diff --git a/wiki/inc/lang/sv/adminplugins.txt b/wiki/inc/lang/sv/adminplugins.txt
deleted file mode 100644
index 2429b93..0000000
--- a/wiki/inc/lang/sv/adminplugins.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Ytterligare Tillägg =====
\ No newline at end of file
diff --git a/wiki/inc/lang/sv/backlinks.txt b/wiki/inc/lang/sv/backlinks.txt
deleted file mode 100644
index c907c8e..0000000
--- a/wiki/inc/lang/sv/backlinks.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Tillbakalänkar ======
-
-Detta är en lista över sidor som verkar länka tillbaka till den aktuella sidan.
diff --git a/wiki/inc/lang/sv/conflict.txt b/wiki/inc/lang/sv/conflict.txt
deleted file mode 100644
index 42168d1..0000000
--- a/wiki/inc/lang/sv/conflict.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-====== Det finns en senare version ======
-
-Det finns en senare version av dokumentet du har redigerat. Detta kan hända när en annan användare redigerar dokumentet samtidigt som du.
-
-Granska skillnaderna som visas nedan noga, och välj sedan vilken version du vill behålla. Om du väljer ''spara'', så kommer din version att sparas. Välj ''avbryt'' för att behålla den nuvarande versionen.
-
diff --git a/wiki/inc/lang/sv/denied.txt b/wiki/inc/lang/sv/denied.txt
deleted file mode 100644
index 7ae09b8..0000000
--- a/wiki/inc/lang/sv/denied.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Ã…tkomst nekad ======
-
-Tyvärr, du har inte behörighet att fortsätta.
-
diff --git a/wiki/inc/lang/sv/diff.txt b/wiki/inc/lang/sv/diff.txt
deleted file mode 100644
index 9fb8c20..0000000
--- a/wiki/inc/lang/sv/diff.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Skillnader ======
-
-Här visas skillnader mellan den valda versionen och den nuvarande versionen av sidan.
-
diff --git a/wiki/inc/lang/sv/draft.txt b/wiki/inc/lang/sv/draft.txt
deleted file mode 100644
index 3749ad0..0000000
--- a/wiki/inc/lang/sv/draft.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-====== Utkast hittat ======
-
-Din senaste redigering av sidan avslutades inte på ett korrekt sätt. DokuWiki sparade automatiskt ett utkast under tiden du arbetade, och nu kan du använda det för att fortsätta redigeringen. Nedan kan du se det innehåll som sparats från din förra session.
-
-Bestäm om du vill //återskapa// din förlorade redigeringssession, //radera// det automatiskt sparade utkastet eller //avbryta// redigeringen.
-
diff --git a/wiki/inc/lang/sv/edit.txt b/wiki/inc/lang/sv/edit.txt
deleted file mode 100644
index 187b11f..0000000
--- a/wiki/inc/lang/sv/edit.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-Redigera sidan och klicka ''Spara''. Se [[wiki:syntax]] för Wikisyntax. Redigera bara sidan om du kan **förbättra** den. Om du vill testa hur saker och ting fungerar, gör det på [[playground:playground|lekplatsen]].
-
diff --git a/wiki/inc/lang/sv/editrev.txt b/wiki/inc/lang/sv/editrev.txt
deleted file mode 100644
index 8bd1adb..0000000
--- a/wiki/inc/lang/sv/editrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**Du har hämtat en tidigare version av dokumentet!** Om du sparar den så kommer du att skapa en ny version med detta innehåll.
-----
diff --git a/wiki/inc/lang/sv/index.txt b/wiki/inc/lang/sv/index.txt
deleted file mode 100644
index 24d715b..0000000
--- a/wiki/inc/lang/sv/index.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Innehållsförteckning ======
-
-Detta är en innehållsförteckning över alla tillgängliga sidor, sorterad efter [[doku>namespaces|namnrymder]].
-
diff --git a/wiki/inc/lang/sv/install.html b/wiki/inc/lang/sv/install.html
deleted file mode 100644
index a6b3ade..0000000
--- a/wiki/inc/lang/sv/install.html
+++ /dev/null
@@ -1,25 +0,0 @@
-<p>Denna sida hjälper dig med nyinstallation och inställningar för
-<a href="http://dokuwiki.org">Dokuwiki</a>. Mer information om
-installationsprogrammet finns på dess egen
-<a href="http://dokuwiki.org/installer">dokumentationssida</a>.</p>
-
-<p>DokuWiki använder vanliga filer för att lagra wikisidor och annan
-information som här till sidorna (till exempel bilder, sökindex, gamla
-versioner, etc).  För att kunna fungera
-<strong>måste</strong> DokuWiki ha skrivrättigheter i de kataloger där
-filerna ligger. Detta installationsprogram kan inte ändra rättigheter
-på kataloger. Det måste normalt göras direkt på en kommandorad, eller
-om du använder ett webbhotell, via FTP eller din leverantörs kontrollpanel
-(till exempel cPanel).</p>
-
-<p>Detta installationsprogram anpassar inställningarna i din DokuWiki för
-<abbr title="access control list">ACL</abbr> (behörighetslista), vilket i sin tur gör att
-administratören kan logga in och komma åt DokuWikis administrationsmenu för
-att installera insticksmoduler, hantera användare, hantera behörighet till
-wikisidor och ändra inställningar. ACL är inget krav för att DokuWiki ska
-fungera, men det förenklar administrationen.</p>
-
-<p>Erfarna användare, eller användare med särskilda behov, kan använda dessa
-länkar för att hitta mer detaljer om
-<a href="http://dokuwiki.org/install">installation</a>
-och <a href="http://dokuwiki.org/config">inställningar</a>.</p>
diff --git a/wiki/inc/lang/sv/jquery.ui.datepicker.js b/wiki/inc/lang/sv/jquery.ui.datepicker.js
deleted file mode 100644
index 92686ef..0000000
--- a/wiki/inc/lang/sv/jquery.ui.datepicker.js
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Swedish initialisation for the jQuery UI date picker plugin. */
-/* Written by Anders Ekdahl ( anders@nomadiz.se). */
-( function( factory ) {
-	if ( typeof define === "function" && define.amd ) {
-
-		// AMD. Register as an anonymous module.
-		define( [ "../widgets/datepicker" ], factory );
-	} else {
-
-		// Browser globals
-		factory( jQuery.datepicker );
-	}
-}( function( datepicker ) {
-
-datepicker.regional.sv = {
-	closeText: "Stäng",
-	prevText: "&#xAB;Förra",
-	nextText: "Nästa&#xBB;",
-	currentText: "Idag",
-	monthNames: [ "Januari","Februari","Mars","April","Maj","Juni",
-	"Juli","Augusti","September","Oktober","November","December" ],
-	monthNamesShort: [ "Jan","Feb","Mar","Apr","Maj","Jun",
-	"Jul","Aug","Sep","Okt","Nov","Dec" ],
-	dayNamesShort: [ "Sön","Mån","Tis","Ons","Tor","Fre","Lör" ],
-	dayNames: [ "Söndag","Måndag","Tisdag","Onsdag","Torsdag","Fredag","Lördag" ],
-	dayNamesMin: [ "Sö","Må","Ti","On","To","Fr","Lö" ],
-	weekHeader: "Ve",
-	dateFormat: "yy-mm-dd",
-	firstDay: 1,
-	isRTL: false,
-	showMonthAfterYear: false,
-	yearSuffix: "" };
-datepicker.setDefaults( datepicker.regional.sv );
-
-return datepicker.regional.sv;
-
-} ) );
diff --git a/wiki/inc/lang/sv/lang.php b/wiki/inc/lang/sv/lang.php
deleted file mode 100644
index 1486421..0000000
--- a/wiki/inc/lang/sv/lang.php
+++ /dev/null
@@ -1,351 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Tor Härnqvist <tor@harnqvist.se>
- * @author Joaquim Homrighausen <joho@webbplatsen.se>
- * @author Per Foreby <per@foreby.se>
- * @author Nicklas Henriksson <nicklas[at]nihe.se>
- * @author HÃ¥kan Sandell <hakan.sandell@home.se>
- * @author Dennis Karlsson
- * @author Tormod Otter Johansson <tormod@latast.se>
- * @author Tormod Johansson <tormod.otter.johansson@gmail.com>
- * @author Pontus Bergendahl <pontus.bergendahl@gmail.com>
- * @author Emil Lind <emil@sys.nu>
- * @author Bogge Bogge <bogge@bogge.com>
- * @author Peter Åström <eaustreum@gmail.com>
- * @author Henrik <henrik@idealis.se>
- * @author Hans Iwan Bratt <hibratt@gmail.com>
- * @author Mikael Bergström <krank23@gmail.com>
- */
-$lang['encoding']              = 'utf-8';
-$lang['direction']             = 'ltr';
-$lang['doublequoteopening']    = 'â€';
-$lang['doublequoteclosing']    = 'â€';
-$lang['singlequoteopening']    = '’';
-$lang['singlequoteclosing']    = '’';
-$lang['apostrophe']            = '’';
-$lang['btn_edit']              = 'Redigera sidan';
-$lang['btn_source']            = 'Visa källkod';
-$lang['btn_show']              = 'Visa sidan';
-$lang['btn_create']            = 'Skapa sidan';
-$lang['btn_search']            = 'Sök';
-$lang['btn_save']              = 'Spara';
-$lang['btn_preview']           = 'Granska';
-$lang['btn_top']               = 'Till början av sidan';
-$lang['btn_newer']             = '<< nyare';
-$lang['btn_older']             = 'äldre >>';
-$lang['btn_revs']              = 'Historik';
-$lang['btn_recent']            = 'Nyligen ändrat';
-$lang['btn_upload']            = 'Ladda upp';
-$lang['btn_cancel']            = 'Avbryt';
-$lang['btn_index']             = 'Index';
-$lang['btn_secedit']           = 'Redigera';
-$lang['btn_login']             = 'Logga in';
-$lang['btn_logout']            = 'Logga ut';
-$lang['btn_admin']             = 'Admin';
-$lang['btn_update']            = 'Uppdatera';
-$lang['btn_delete']            = 'Radera';
-$lang['btn_back']              = 'Tillbaka';
-$lang['btn_backlink']          = 'Tillbakalänkar';
-$lang['btn_subscribe']         = 'Prenumerera på ändringar';
-$lang['btn_profile']           = 'Uppdatera profil';
-$lang['btn_reset']             = 'Återställ';
-$lang['btn_resendpwd']         = 'Skapa nytt lösenord';
-$lang['btn_draft']             = 'Redigera utkast';
-$lang['btn_recover']           = 'Ã…terskapa utkast';
-$lang['btn_draftdel']          = 'Radera utkast';
-$lang['btn_revert']            = 'Återställ';
-$lang['btn_register']          = 'Registrera';
-$lang['btn_apply']             = 'Verkställ';
-$lang['btn_media']             = 'Mediahanteraren';
-$lang['btn_deleteuser']        = 'Ta bort Mitt Konto';
-$lang['btn_img_backto']        = 'Tillbaka till %s';
-$lang['btn_mediaManager']      = 'Se mediahanteraren';
-$lang['loggedinas']            = 'Inloggad som:';
-$lang['user']                  = 'Användarnamn';
-$lang['pass']                  = 'Lösenord';
-$lang['newpass']               = 'Nytt lösenord';
-$lang['oldpass']               = 'Bekräfta nuvarande lösenord';
-$lang['passchk']               = 'en gång till';
-$lang['remember']              = 'Kom ihåg mig';
-$lang['fullname']              = 'Namn';
-$lang['email']                 = 'E-post';
-$lang['profile']               = 'Användarprofil';
-$lang['badlogin']              = 'Felaktigt användarnamn eller lösenord.';
-$lang['badpassconfirm']        = 'Ledsen, lösenordet var felaktigt';
-$lang['minoredit']             = 'Små ändringar';
-$lang['draftdate']             = 'Utkast automatiskt sparat';
-$lang['nosecedit']             = 'Sidan ändrades medan du skrev, sektionsinformationen var inte uppdaterad. Laddar hela sidan istället.';
-$lang['regmissing']            = 'Du måste fylla i alla fälten.';
-$lang['reguexists']            = 'Det finns redan en användare med det användarnamnet.';
-$lang['regsuccess']            = 'Användarkontot skapat, lösenordet har skickats via e-post.';
-$lang['regsuccess2']           = 'Användarkontot skapat.';
-$lang['regfail']               = 'Användaren kunde inte skapas.';
-$lang['regmailfail']           = 'Ett fel uppstod när ditt lösenord skulle skickas via e-post. Var god kontakta administratören!';
-$lang['regbadmail']            = 'Den angivna e-postadressen verkar vara ogiltig - om du anser detta felaktigt, var god kontakta administratören';
-$lang['regbadpass']            = 'De två angivna lösenorden är inte identiska. Försök igen.';
-$lang['regpwmail']             = 'Ditt DokuWikilösenord';
-$lang['reghere']               = 'Har du inte ett konto än? Skaffa ett';
-$lang['profna']                = 'Denna wiki stödjer inte ändringar av profiler';
-$lang['profnochange']          = 'Ingenting ändrades, inget att göra.';
-$lang['profnoempty']           = 'Namn och e-postadress måste fyllas i.';
-$lang['profchanged']           = 'Användarprofilen uppdaterad.';
-$lang['profnodelete']          = 'Den här wiki:n stödjer ej borttagning av användare';
-$lang['profdeleteuser']        = 'Radera kontot';
-$lang['profdeleted']           = 'Ditt användarkonto har raderats från den här wiki:n';
-$lang['profconfdelete']        = 'Jag vill ta bort mitt konto/inlogg på den här wiki:n <br/> Denna åtgärd går ej att ångra.';
-$lang['profconfdeletemissing'] = 'Bekräftelse-kryssrutan är ej markerad';
-$lang['proffail']              = 'Användarprofilen uppdaterades ej.';
-$lang['pwdforget']             = 'Glömt ditt lösenord? Ordna ett nytt';
-$lang['resendna']              = 'Den här wikin stödjer inte utskick av lösenord.';
-$lang['resendpwd']             = 'Sätt lösenord för';
-$lang['resendpwdmissing']      = 'Du måste fylla i alla fält.';
-$lang['resendpwdnouser']       = 'Den här användaren hittas inte i databasen.';
-$lang['resendpwdbadauth']      = 'Den här verifieringskoden är inte giltig. Kontrollera att du använde hela verifieringslänken.';
-$lang['resendpwdconfirm']      = 'En verifieringslänk har skickats med e-post.';
-$lang['resendpwdsuccess']      = 'Ditt nya lösenord har skickats med e-post.';
-$lang['license']               = 'Om inte annat angivet, innehållet i denna wiki är licensierat under följande licenser:';
-$lang['licenseok']             = 'Notera: Genom att ändra i denna sidan så accepterar du att licensiera ditt bidrag under följande licenser:';
-$lang['searchmedia']           = 'Sök efter filnamn:';
-$lang['searchmedia_in']        = 'Sök i %s';
-$lang['txt_upload']            = 'Välj fil att ladda upp:';
-$lang['txt_filename']          = 'Ladda upp som (ej obligatoriskt):';
-$lang['txt_overwrt']           = 'Skriv över befintlig fil';
-$lang['maxuploadsize']         = 'Max %s per uppladdad fil.';
-$lang['lockedby']              = 'LÃ¥st av:';
-$lang['lockexpire']            = 'Lås upphör att gälla:';
-$lang['js']['willexpire']      = 'Ditt redigeringslås för detta dokument kommer snart att upphöra.\nFör att undvika versionskonflikter bör du förhandsgranska ditt dokument för att förlänga redigeringslåset.';
-$lang['js']['notsavedyet']     = 'Det finns ändringar som inte är sparade.
-Är du säker på att du vill fortsätta?';
-$lang['js']['searchmedia']     = 'Sök efter filer';
-$lang['js']['keepopen']        = 'Lämna fönstret öppet efter val av fil';
-$lang['js']['hidedetails']     = 'Dölj detaljer';
-$lang['js']['mediatitle']      = 'Länkinställningar';
-$lang['js']['mediadisplay']    = 'Länktyp';
-$lang['js']['mediaalign']      = 'Justering';
-$lang['js']['mediasize']       = 'Bildstorlek';
-$lang['js']['mediatarget']     = 'Länköppning';
-$lang['js']['mediaclose']      = 'Stäng';
-$lang['js']['mediainsert']     = 'Infoga';
-$lang['js']['mediadisplayimg'] = 'Visa bilden.';
-$lang['js']['mediadisplaylnk'] = 'Visa endast länken.';
-$lang['js']['mediasmall']      = 'Liten storlek';
-$lang['js']['mediamedium']     = 'Mellanstor storlek';
-$lang['js']['medialarge']      = 'Stor storlek';
-$lang['js']['mediaoriginal']   = 'Originalstorlek';
-$lang['js']['medialnk']        = 'Länk till detalj sida';
-$lang['js']['mediadirect']     = 'Direktlänk till originalet';
-$lang['js']['medianolnk']      = 'Ingen länk';
-$lang['js']['medianolink']     = 'Länka inte bilden';
-$lang['js']['medialeft']       = 'Justera bilden till vänster.';
-$lang['js']['mediaright']      = 'Justera bilden till höger.';
-$lang['js']['mediacenter']     = 'Centrera bilden.';
-$lang['js']['nosmblinks']      = 'Länkning till Windowsresurser fungerar bara med Microsofts Internet Explorer.
-Du kan fortfarande klippa och klistra in länken om du använder en annan webbläsare än MSIE.';
-$lang['js']['linkwiz']         = 'Snabbguide Länkar';
-$lang['js']['linkto']          = 'Länk till:';
-$lang['js']['del_confirm']     = 'Vill du verkligen radera?';
-$lang['js']['restore_confirm'] = 'Återställa denna version?';
-$lang['js']['media_diff']      = 'Se skillnader:';
-$lang['js']['media_diff_both'] = 'Sida vid sida';
-$lang['js']['media_diff_opacity'] = 'Genomskinlig';
-$lang['js']['media_diff_portions'] = 'Svep';
-$lang['js']['media_select']    = 'Välj filer...';
-$lang['js']['media_upload_btn'] = 'Ladda upp';
-$lang['js']['media_done_btn']  = 'Färdig';
-$lang['js']['media_drop']      = 'Släpp filer här för att ladda upp';
-$lang['js']['media_cancel']    = 'ta bort';
-$lang['js']['media_overwrt']   = 'Skriv över existerande filer';
-$lang['rssfailed']             = 'Ett fel uppstod när detta RSS-flöde skulle hämtas: ';
-$lang['nothingfound']          = 'Inga filer hittades.';
-$lang['mediaselect']           = 'Mediafiler';
-$lang['uploadsucc']            = 'Uppladdningen lyckades';
-$lang['uploadfail']            = 'Uppladdningen misslyckades, fel filskydd?';
-$lang['uploadwrong']           = 'Uppladdning nekad. Filändelsen är inte tillåten!';
-$lang['uploadexist']           = 'Filen finns redan. Ingenting gjordes.';
-$lang['uploadbadcontent']      = 'Det uppladdade innehållet stämde inte överens med filändelsen %s.';
-$lang['uploadspam']            = 'Uppladdningen stoppades av spärrlistan för spam.';
-$lang['uploadxss']             = 'Uppladdningen stoppades på grund av eventuellt skadligt innehåll.';
-$lang['uploadsize']            = 'Den uppladdade filen är för stor. (max. %s)';
-$lang['deletesucc']            = 'Filen "%s" har raderats.';
-$lang['deletefail']            = 'Kunde inte radera "%s" - kontrollera filskydd.';
-$lang['mediainuse']            = 'Filen "%s" har inte raderats - den används fortfarande.';
-$lang['namespaces']            = 'Namnrymder';
-$lang['mediafiles']            = 'Tillgängliga filer i';
-$lang['accessdenied']          = 'Du får inte läsa den här sidan.';
-$lang['mediausage']            = 'Använd följande syntax för att referera till denna fil:';
-$lang['mediaview']             = 'Visa originalfilen';
-$lang['mediaroot']             = 'rot';
-$lang['mediaupload']           = 'Här kan du ladda upp en fil till den nuvarande namnrymden. För att skapa undernamnrymder, skriv dem före filnamnet under "Ladda upp som". Separera namnrymd och filnamn med kolon.';
-$lang['mediaextchange']        = 'Filändelsen ändrad från .%s till .%s!';
-$lang['reference']             = 'Referenser till';
-$lang['ref_inuse']             = 'Filen kan inte raderas eftersom den fortfarande används av följande sidor:';
-$lang['ref_hidden']            = 'Vissa referenser är på sidor som du inte har rätt att läsa';
-$lang['hits']                  = 'Träffar';
-$lang['quickhits']             = 'Matchande sidnamn';
-$lang['toc']                   = 'Innehållsförteckning';
-$lang['current']               = 'aktuell';
-$lang['yours']                 = 'Din version';
-$lang['diff']                  = 'visa skillnader mot aktuell version';
-$lang['diff2']                 = 'Visa skillnader mellan valda versioner';
-$lang['difflink']              = 'Länk till den här jämförelsesidan';
-$lang['diff_type']             = 'Visa skillnader:';
-$lang['diff_side']             = 'Sida vid sida';
-$lang['diffprevrev']           = 'Föregående version.';
-$lang['diffnextrev']           = 'Nästa version.';
-$lang['difflastrev']           = 'Senaste version.';
-$lang['line']                  = 'Rad';
-$lang['breadcrumb']            = 'Spår:';
-$lang['youarehere']            = 'Här är du:';
-$lang['lastmod']               = 'Senast uppdaterad:';
-$lang['by']                    = 'av';
-$lang['deleted']               = 'raderad';
-$lang['created']               = 'skapad';
-$lang['restored']              = 'tidigare version återställd (%s)';
-$lang['external_edit']         = 'extern redigering';
-$lang['summary']               = 'Redigeringskommentar';
-$lang['noflash']               = '<a href="http://www.adobe.com/products/flashplayer/">Adobe Flash Plugin</a> behövs för att visa detta innehåll.';
-$lang['download']              = 'Ladda ner kodfragmentet';
-$lang['tools']                 = 'Verktyg';
-$lang['user_tools']            = 'Användarverktyg';
-$lang['site_tools']            = 'Webbverktyg';
-$lang['page_tools']            = 'Sidverktyg';
-$lang['skip_to_content']       = 'hoppa till innehåll';
-$lang['sidebar']               = 'Sidmeny';
-$lang['mail_newpage']          = 'sida tillagd:';
-$lang['mail_changed']          = 'sida ändrad:';
-$lang['mail_subscribe_list']   = 'sidor ändrade i namnrymd:';
-$lang['mail_new_user']         = 'Ny användare:';
-$lang['mail_upload']           = 'fil uppladdad:';
-$lang['changes_type']          = 'Se ändringar av';
-$lang['pages_changes']         = 'Sidor';
-$lang['media_changes']         = 'Mediafiler';
-$lang['both_changes']          = 'BÃ¥de sidor och mediafiler';
-$lang['qb_bold']               = 'Fet text';
-$lang['qb_italic']             = 'Kursiv text';
-$lang['qb_underl']             = 'Understruken text';
-$lang['qb_code']               = 'Kodtext';
-$lang['qb_strike']             = 'Överstruken text';
-$lang['qb_h1']                 = 'Rubrik nivå 1';
-$lang['qb_h2']                 = 'Rubrik nivå 2';
-$lang['qb_h3']                 = 'Rubrik nivå 3';
-$lang['qb_h4']                 = 'Rubrik nivå 4';
-$lang['qb_h5']                 = 'Rubrik nivå 5';
-$lang['qb_h']                  = 'Rubrik';
-$lang['qb_hs']                 = 'Välj Rubrik';
-$lang['qb_hplus']              = 'Större Rubrik';
-$lang['qb_hminus']             = 'Mindre Rubrik';
-$lang['qb_hequal']             = 'Rubrik samma nivå.';
-$lang['qb_link']               = 'Intern Länk';
-$lang['qb_extlink']            = 'Extern Länk';
-$lang['qb_hr']                 = 'Horisontell linje';
-$lang['qb_ol']                 = 'Punkt i sorterad lista';
-$lang['qb_ul']                 = 'Punkt i osorterad lista';
-$lang['qb_media']              = 'Lägg till bilder och andra filer';
-$lang['qb_sig']                = 'Infoga signatur';
-$lang['qb_smileys']            = 'Smileys';
-$lang['qb_chars']              = 'Specialtecken';
-$lang['upperns']               = 'hoppa till föräldernamnrymd';
-$lang['metaedit']              = 'Redigera metadata';
-$lang['metasaveerr']           = 'Skrivning av metadata misslyckades';
-$lang['metasaveok']            = 'Metadata sparad';
-$lang['img_title']             = 'Rubrik:';
-$lang['img_caption']           = 'Bildtext:';
-$lang['img_date']              = 'Datum:';
-$lang['img_fname']             = 'Filnamn:';
-$lang['img_fsize']             = 'Storlek:';
-$lang['img_artist']            = 'Fotograf:';
-$lang['img_copyr']             = 'Copyright:';
-$lang['img_format']            = 'Format:';
-$lang['img_camera']            = 'Kamera:';
-$lang['img_keywords']          = 'Nyckelord:';
-$lang['img_width']             = 'Bredd:';
-$lang['img_height']            = 'Höjd:';
-$lang['subscr_subscribe_success'] = 'La till %s till prenumerationslista %s';
-$lang['subscr_subscribe_error'] = 'Error att lägga till %s till prenumerationslista för %s';
-$lang['subscr_subscribe_noaddress'] = 'Det finns ingen adress associerad med din inloggning, du kan inte bli tillagd i prenumerationslistan';
-$lang['subscr_unsubscribe_success'] = '%s borttagen från prenumerationslistan för %s';
-$lang['subscr_unsubscribe_error'] = 'Fel vid borttagning av %s från prenumerationslista %s';
-$lang['subscr_already_subscribed'] = '%s prenumererar redan på %s';
-$lang['subscr_not_subscribed'] = '%s prenumererar inte på %s';
-$lang['subscr_m_not_subscribed'] = 'Du prenumererar inte på denna sida eller namnrymd.';
-$lang['subscr_m_new_header']   = 'Lägg till prenumeration';
-$lang['subscr_m_current_header'] = 'Nuvarande prenumerationer';
-$lang['subscr_m_unsubscribe']  = 'Avsluta prenumeration';
-$lang['subscr_m_subscribe']    = 'Prenumerera';
-$lang['subscr_m_receive']      = 'Ta emot';
-$lang['subscr_style_every']    = 'skicka epost vid varje ändring';
-$lang['subscr_style_digest']   = 'Samlings-e-brev av ändringar för varje sida (var %.2f dag)';
-$lang['subscr_style_list']     = 'lista över ändrade sidor sedan senaste e-post (varje %.2f dag)';
-$lang['authtempfail']          = 'Tillfälligt fel på användarautentisering. Om felet kvarstår, var vänlig meddela wikiadministratören.';
-$lang['i_chooselang']          = 'Välj språk';
-$lang['i_installer']           = 'Installation av DokuWiki';
-$lang['i_wikiname']            = 'Wikins namn';
-$lang['i_enableacl']           = 'Aktivera behörighetslistan (ACL) (rekommenderas)';
-$lang['i_superuser']           = 'Användarnamn för administratören';
-$lang['i_problems']            = 'Installationsprogrammet hittade några problem som visas nedan. Du kan inte fortsätta innan du har fixat dem.';
-$lang['i_modified']            = 'Av säkerhetsskäl fungerar det här skriptet bara med en ny och omodifierad installation av Dokuwiki.
-                         Du får antingen packa upp det nedladdade paketet på nytt, eller konsultera de kompletta
-                         <a href="http://dokuwiki.org/install">instruktionerna för installation av Dokuwiki</a>';
-$lang['i_funcna']              = 'PHP-funktionen <code>%s</code> är inte tillgänglig. Kanske ditt webbhotell har avaktiverat den av någon anledning?';
-$lang['i_phpver']              = 'Din PHP-version <code>%s</code> är lägre än vad som krävs <code>%s</code>. Du behöver uppgradera din PHP-installation.';
-$lang['i_permfail']            = '<code>%s</code> är inte skrivbar av DokuWiki. Du behöver ändra filskyddet på den här katalogen!';
-$lang['i_confexists']          = '<code>%s</code> finns redan';
-$lang['i_writeerr']            = 'Kan inte skapa <code>%s</code>. Kontrollera filskyddet på kataloger/filer och skapa filen manuellt.';
-$lang['i_badhash']             = 'okänd eller ändrad dokuwiki.php (hash=<code>%s</code>)';
-$lang['i_badval']              = '<code>%s</code> - felaktig eller blank';
-$lang['i_success']             = 'Konfigurationen avslutades utan fel. Du kan radera filen install.php nu. Fortsätt till
-                        <a href="doku.php?id=wiki:welcome">din nya DokuWiki</a>.';
-$lang['i_failure']             = 'Fel uppstod vid skrivning av konfigurationsfilerna. Du kan behöva ordna till dem manuellt innan
-                         du kan använda <a href="doku.php?id=wiki:welcome">din nya DokuWiki</a>.';
-$lang['i_policy']              = 'Initial ACL-policy';
-$lang['i_pol0']                = 'Öppen wiki (alla får läsa, skriva och ladda upp filer)';
-$lang['i_pol1']                = 'Publik wiki (alla får läsa, registrerade användare för skriva och ladda upp filer)';
-$lang['i_pol2']                = 'Sluten wiki (endast registrerade användare får läsa, skriva och ladda upp filer)';
-$lang['i_allowreg']            = 'Tillåt användare att registrera sig själva';
-$lang['i_retry']               = 'Försök igen';
-$lang['i_license']             = 'Vänligen välj licens du vill använda för ditt innehåll:';
-$lang['i_license_none']        = 'Visa ingen licensinformation';
-$lang['i_pop_field']           = 'Hjälp oss förbättra DokuWiki upplevelsen:';
-$lang['i_pop_label']           = 'Sänd anonym användarinformation en gång i månaden till DokuWikis utvecklare';
-$lang['recent_global']         = 'Du bevakar ändringar i namnrymden <b>%s</b>. Du kan också titta på <a href="%s">senaste ändringar för hela wikin</a>.';
-$lang['years']                 = '%d år sedan';
-$lang['months']                = '%d månader sedan';
-$lang['weeks']                 = '%d veckor sedan';
-$lang['days']                  = '%d dagar sedan';
-$lang['hours']                 = '%d timmar sedan';
-$lang['minutes']               = '%d minuter sedan';
-$lang['seconds']               = '%d sekunder sedan';
-$lang['wordblock']             = 'Din ändring sparades inte för att den innehåller otillåten text (spam).';
-$lang['media_uploadtab']       = 'Ladda upp';
-$lang['media_searchtab']       = 'Sök';
-$lang['media_file']            = 'Fil';
-$lang['media_viewtab']         = 'Visa';
-$lang['media_edittab']         = 'Redigera';
-$lang['media_historytab']      = 'Historik';
-$lang['media_list_thumbs']     = 'Miniatyrbild';
-$lang['media_list_rows']       = 'Rader';
-$lang['media_sort_name']       = 'Namn';
-$lang['media_sort_date']       = 'Datum';
-$lang['media_namespaces']      = 'Visa namnrymd';
-$lang['media_files']           = 'Filer i %s';
-$lang['media_upload']          = 'Ladda upp till %s';
-$lang['media_search']          = 'Sök i %s';
-$lang['media_view']            = '%s';
-$lang['media_viewold']         = '%s vid %s';
-$lang['media_edit']            = 'Redigera %s';
-$lang['media_history']         = '%s-historik';
-$lang['media_meta_edited']     = 'metadata redigerat';
-$lang['media_perm_read']       = 'Du har tyvärr inte tillräckliga behörigheter för att läsa filer.';
-$lang['media_perm_upload']     = 'Du har tyvärr inte tillräckliga behörigheter för att ladda upp filer.';
-$lang['media_update']          = 'Ladda upp ny version';
-$lang['media_restore']         = 'Återställ denna version';
-$lang['media_acl_warning']     = 'Listan kanske inte är ';
-$lang['currentns']             = 'Nuvarande namnrymd.';
-$lang['searchresult']          = 'Sökresultat';
-$lang['plainhtml']             = 'Ren HTML';
-$lang['page_nonexist_rev']     = 'Sidan fanns inte på %s. Den blev sedermera skapad på <a href="%s">%s</a>.';
-$lang['email_signature_text']  = 'Detta meddelande har skapats av DokuWiki på
-@DOKUWIKIURL@';
diff --git a/wiki/inc/lang/sv/locked.txt b/wiki/inc/lang/sv/locked.txt
deleted file mode 100644
index cb64eaf..0000000
--- a/wiki/inc/lang/sv/locked.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Sidan låst ======
-
-Den här sidan är för närvarande låst för redigering av en annan användare. Du måste vänta tills den användaren är klar med sin redigering, eller tills dess att dokumentlåset upphör att gälla.
diff --git a/wiki/inc/lang/sv/login.txt b/wiki/inc/lang/sv/login.txt
deleted file mode 100644
index 5f0e3b2..0000000
--- a/wiki/inc/lang/sv/login.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Logga in ======
-
-Du är inte inloggad! Ange ditt användarnamn och lösenord i formuläret nedan för att logga in. Stöd för cookies måste vara aktiverat i din webbläsare för att du skall kunna logga in.
-
diff --git a/wiki/inc/lang/sv/mailtext.txt b/wiki/inc/lang/sv/mailtext.txt
deleted file mode 100644
index a45bc2a..0000000
--- a/wiki/inc/lang/sv/mailtext.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-En sida i din DokuWiki har lagts till eller ändrats. Här är detaljerna:
-
-Datum                : @DATE@
-Webbläsare           : @BROWSER@
-IP-adress            : @IPADDRESS@
-Datornamn            : @HOSTNAME@
-Tidigare version     : @OLDPAGE@
-Aktuell version      : @NEWPAGE@
-Redigeringskommentar : @SUMMARY@
-Användare            : @USER@
-
-@DIFF@
diff --git a/wiki/inc/lang/sv/mailwrap.html b/wiki/inc/lang/sv/mailwrap.html
deleted file mode 100644
index d257190..0000000
--- a/wiki/inc/lang/sv/mailwrap.html
+++ /dev/null
@@ -1,13 +0,0 @@
-<html>
-<head>
-<title>@TITLE@</title>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-</head>
-<body>
-
-@HTMLBODY@
-
-<br /><hr />
-<small>@EMAILSIGNATURE@</small>
-</body>
-</html>
\ No newline at end of file
diff --git a/wiki/inc/lang/sv/newpage.txt b/wiki/inc/lang/sv/newpage.txt
deleted file mode 100644
index 3e09510..0000000
--- a/wiki/inc/lang/sv/newpage.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Det här ämnet finns inte ännu ======
-
-Du har följt en länk till ett ämne som inte finns ännu. Du kan skapa det genom att klicka på ''Skapa den här sidan''.
diff --git a/wiki/inc/lang/sv/norev.txt b/wiki/inc/lang/sv/norev.txt
deleted file mode 100644
index 46df862..0000000
--- a/wiki/inc/lang/sv/norev.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Det finns ingen sådan version ======
-
-Den angivna versionen finns inte. Använd ''Historik'' för en förteckning över de versioner som finns av detta dokument.
-
diff --git a/wiki/inc/lang/sv/password.txt b/wiki/inc/lang/sv/password.txt
deleted file mode 100644
index f8465a4..0000000
--- a/wiki/inc/lang/sv/password.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-Hej @FULLNAME@!
-
-Här är dina användaruppgifter för @TITLE@ på @DOKUWIKIURL@
-
-Användarnamn : @LOGIN@
-Lösenord     : @PASSWORD@
diff --git a/wiki/inc/lang/sv/preview.txt b/wiki/inc/lang/sv/preview.txt
deleted file mode 100644
index 5c3a653..0000000
--- a/wiki/inc/lang/sv/preview.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Förhandsgranskning ======
-
-Detta är en förhandstitt på hur din text kommer att se ut när den visas. Kom ihåg: Den är **inte sparad** ännu!
-
diff --git a/wiki/inc/lang/sv/pwconfirm.txt b/wiki/inc/lang/sv/pwconfirm.txt
deleted file mode 100644
index 428cfa3..0000000
--- a/wiki/inc/lang/sv/pwconfirm.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-Hej @FULLNAME@!
-
-Någon har bett om ett nytt lösenord för ditt konto på @TITLE@
-(@DOKUWIKIURL@)
-
-Om det inte var du som bad om ett nytt lösenord kan du helt
-enkelt ignorera det här brevet.
-
-För att bekräfta att förfrågan verkligen kom från dig, var vänlig
-och använd följande länk.
-
-@CONFIRM@
diff --git a/wiki/inc/lang/sv/read.txt b/wiki/inc/lang/sv/read.txt
deleted file mode 100644
index 5391b3d..0000000
--- a/wiki/inc/lang/sv/read.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-Denna sida är skrivskyddad. Du kan titta på källkoden, men inte ändra den. Kontakta administratören om du anser att du bör kunna ändra sidan.
-
diff --git a/wiki/inc/lang/sv/recent.txt b/wiki/inc/lang/sv/recent.txt
deleted file mode 100644
index d8c39df..0000000
--- a/wiki/inc/lang/sv/recent.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== Senaste ändringarna ======
-
-Följande sidor/dokument har nyligen uppdaterats.
-
-
diff --git a/wiki/inc/lang/sv/register.txt b/wiki/inc/lang/sv/register.txt
deleted file mode 100644
index e75d2a6..0000000
--- a/wiki/inc/lang/sv/register.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Registrera dig som användare ======
-
-Fyll i all information som efterfrågas i formuläret nedan för att skapa ett nytt konto i denna wiki. Var särskilt noga med att ange en **giltig e-postadress** - om du inte blir ombedd att ange ett lösenord här kommer ett nytt lösenord att skickas till den adressen.  Användarnamnet skall vara ett giltigt [[doku>pagename|sidnamn]].
-
diff --git a/wiki/inc/lang/sv/registermail.txt b/wiki/inc/lang/sv/registermail.txt
deleted file mode 100644
index cbcf3f4..0000000
--- a/wiki/inc/lang/sv/registermail.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-En ny användare har registrerat sig. Här är detaljerna:
-
-Användarnamn : @NEWUSER@
-Namn         : @NEWNAME@
-E-post       : @NEWEMAIL@
-
-Datum        : @DATE@
-Webbläsare   : @BROWSER@
-IP-adress    : @IPADDRESS@
-Datornamn    : @HOSTNAME@
diff --git a/wiki/inc/lang/sv/resendpwd.txt b/wiki/inc/lang/sv/resendpwd.txt
deleted file mode 100644
index 0757ee9..0000000
--- a/wiki/inc/lang/sv/resendpwd.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Skicka nytt lösenord ======
-
-Fyll i ditt användarnamn i formuläret nedan för att få ett nytt lösenord till ditt konto i denna wiki. En länk för verifiering kommer att skickas till din registrerade e-postadress.
-
diff --git a/wiki/inc/lang/sv/resetpwd.txt b/wiki/inc/lang/sv/resetpwd.txt
deleted file mode 100644
index a329ce5..0000000
--- a/wiki/inc/lang/sv/resetpwd.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Sätt nytt lösenord ======
-
-Vänligen skriv ett nytt lösenord för ditt konto på denna wiki.
\ No newline at end of file
diff --git a/wiki/inc/lang/sv/revisions.txt b/wiki/inc/lang/sv/revisions.txt
deleted file mode 100644
index b9dfc56..0000000
--- a/wiki/inc/lang/sv/revisions.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Historik ======
-
-Här visas tidigare versioner av detta dokument. För att återställa dokumentet till en tidigare version, välj den önskade versionen nedan, klicka på ''Redigera sida'' och spara sedan dokumentet.
-
diff --git a/wiki/inc/lang/sv/searchpage.txt b/wiki/inc/lang/sv/searchpage.txt
deleted file mode 100644
index d01bf23..0000000
--- a/wiki/inc/lang/sv/searchpage.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Sök ======
-
-Nedan ser du resultatet av sökningen. @CREATEPAGEINFO@
-
diff --git a/wiki/inc/lang/sv/showrev.txt b/wiki/inc/lang/sv/showrev.txt
deleted file mode 100644
index a79b30b..0000000
--- a/wiki/inc/lang/sv/showrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**Detta är en gammal version av dokumentet!**
-----
diff --git a/wiki/inc/lang/sv/stopwords.txt b/wiki/inc/lang/sv/stopwords.txt
deleted file mode 100644
index 3576596..0000000
--- a/wiki/inc/lang/sv/stopwords.txt
+++ /dev/null
@@ -1,129 +0,0 @@
-# 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/
-about
-are
-and
-you
-your
-them
-their
-com
-for
-from
-into
-how
-that
-the
-this
-was
-what
-when
-where
-who
-will
-with
-und
-the
-www
-
-# Följande svenska stoppord kommer från
-# http://snowball.tartarus.org/algorithms/swedish/stop.txt. Ord kortare än tre
-# bokstäver har tagits bort (se kommentaren ovan) Se även
-# http://www.cling.gu.se/theses/2004/cl0sknub_cl0tsven.pdf. Vi behåller de
-# engelska orden eftersom det är rätt vanligt med engelska texter.
-och
-det
-att
-jag
-hon
-som
-han
-den
-med
-var
-sig
-för
-till
-men
-ett
-hade
-icke
-mig
-henne
-sin
-har
-inte
-hans
-honom
-skulle
-hennes
-där
-min
-man
-vid
-kunde
-något
-från
-när
-efter
-upp
-dem
-vara
-vad
-över
-dig
-kan
-sina
-här
-mot
-alla
-under
-någon
-eller
-allt
-mycket
-sedan
-denna
-själv
-detta
-utan
-varit
-hur
-ingen
-mitt
-bli
-blev
-oss
-din
-dessa
-några
-deras
-blir
-mina
-samma
-vilken
-sådan
-vår
-blivit
-dess
-inom
-mellan
-sådant
-varför
-varje
-vilka
-ditt
-vem
-vilket
-sitta
-sådana
-vart
-dina
-vars
-vårt
-våra
-ert
-era
-vilkas
diff --git a/wiki/inc/lang/sv/subscr_digest.txt b/wiki/inc/lang/sv/subscr_digest.txt
deleted file mode 100644
index adf6680..0000000
--- a/wiki/inc/lang/sv/subscr_digest.txt
+++ /dev/null
@@ -1,15 +0,0 @@
-Hej
-
-Sidan @PAGE@ med @TITLE@ har ändrats.
-Här är ändringarna:
-
------------------------------
-@DIFF@
------------------------------
-
-Äldre versionen: @OLDPAGE@
-Ny version: @NEWPAGE@
-
-För att avbryta meddelanden om sidändringar logga in till wikin @DOKUWIKIURL@, besök sedan
-@SUBSCRIBE@
-och avbeställ ändringar av sidor och/eller namespace.
diff --git a/wiki/inc/lang/sv/subscr_form.txt b/wiki/inc/lang/sv/subscr_form.txt
deleted file mode 100644
index bfb8fa3..0000000
--- a/wiki/inc/lang/sv/subscr_form.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Prenumerations hantering ======
-
-Denna sida låter dig hantera dina prenumerationer för nuvarande sida och namnrymd.
\ No newline at end of file
diff --git a/wiki/inc/lang/sv/subscr_list.txt b/wiki/inc/lang/sv/subscr_list.txt
deleted file mode 100644
index 4621917..0000000
--- a/wiki/inc/lang/sv/subscr_list.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-Hej!
-
-Sidorna i namnrymden @PAGE@ för wikin @TITLE@ har ändrats. Följande sidor har ändrats: 
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-För att inaktivera sidnotifieringar, logga in på wikin (@DOKUWIKIURL@), gå till @SUBSCRIBE@ och avanmäl dig från sid-och/eller namnrymd-ändringar.
\ No newline at end of file
diff --git a/wiki/inc/lang/sv/subscr_single.txt b/wiki/inc/lang/sv/subscr_single.txt
deleted file mode 100644
index 50ef056..0000000
--- a/wiki/inc/lang/sv/subscr_single.txt
+++ /dev/null
@@ -1,19 +0,0 @@
-Hej!
-
-Sidan @PAGE@ i wikin @TITLE@ har ändrats.
-Detta är ändringarna:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-Datum: @DATE@
-Användare: @USER@
-Ändrings sammanfattning: @SUMMARY@
-Gammal version: @OLDPAGE@
-Ny version: @NEWPAGE@
-
-För att avsluta noteringar om sidor, logga in på wikin vid
-@DOKUWIKIURL@ gå sedan till
-@SUBSCRIBE@
-och avsluta prenumerationen av sida och/eller namnrymd ändringar.
diff --git a/wiki/inc/lang/sv/updateprofile.txt b/wiki/inc/lang/sv/updateprofile.txt
deleted file mode 100644
index 98ed6e3..0000000
--- a/wiki/inc/lang/sv/updateprofile.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== Uppdatera din användarprofil ======
-
-Du behöver bara fylla i de fält som du vill ändra. Du kan inte ändra ditt användarnamn.
-
-
diff --git a/wiki/inc/lang/sv/uploadmail.txt b/wiki/inc/lang/sv/uploadmail.txt
deleted file mode 100644
index 8db5f55..0000000
--- a/wiki/inc/lang/sv/uploadmail.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-En fil har laddats upp till din DokuWiki. Här är detaljerna:
-
-Fil         : @MEDIA@
-Datum       : @DATE@
-Webbläsare  : @BROWSER@
-IP-adress   : @IPADDRESS@
-Datornamn   : @HOSTNAME@
-Storlek     : @SIZE@
-MIME-typ    : @MIME@
-Användare   : @USER@
diff --git a/wiki/inc/lang/ta/admin.txt b/wiki/inc/lang/ta/admin.txt
deleted file mode 100644
index 2538b45..0000000
--- a/wiki/inc/lang/ta/admin.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== நிரà¯à®µà®¾à®•ம௠======
-
-கீழே டோகà¯à®µà®¿à®•à¯à®•ியின௠நிரà¯à®µà®¾à®•ம௠தொடரà¯à®ªà®¾à®© à®®à¯à®±à¯ˆà®®à¯ˆà®•ளைப௠பாரà¯à®•à¯à®•லாமà¯.
\ No newline at end of file
diff --git a/wiki/inc/lang/ta/adminplugins.txt b/wiki/inc/lang/ta/adminplugins.txt
deleted file mode 100644
index 54a363a..0000000
--- a/wiki/inc/lang/ta/adminplugins.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== மேலதிக சொரà¯à®•ிகள௠=====
\ No newline at end of file
diff --git a/wiki/inc/lang/ta/backlinks.txt b/wiki/inc/lang/ta/backlinks.txt
deleted file mode 100644
index d8e618f..0000000
--- a/wiki/inc/lang/ta/backlinks.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== பினà¯à®©à®¿à®£à¯ˆà®ªà¯à®ªà¯à®•à¯à®•ள௠======
-
-கà¯à®±à®¿à®¤à¯à®¤ பகà¯à®•தà¯à®¤à®¿à®±à¯à®•ான இணைபà¯à®ªà¯ˆà®•௠கொணà¯à®Ÿà®¿à®°à¯à®•à¯à®•à¯à®®à¯ அனைதà¯à®¤à¯à®ªà¯ பகà¯à®•à®™à¯à®•ளà¯à®®à¯
\ No newline at end of file
diff --git a/wiki/inc/lang/ta/conflict.txt b/wiki/inc/lang/ta/conflict.txt
deleted file mode 100644
index 301c2f0..0000000
--- a/wiki/inc/lang/ta/conflict.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== பà¯à®¤à®¿à®¯ பதிபà¯à®ªà¯ உணà¯à®Ÿà¯ ======
-
-நீஙà¯à®•ள௠திரà¯à®¤à¯à®¤à®¿à®¯ பகà¯à®•தà¯à®¤à®¿à®±à¯à®•௠பà¯à®¤à®¿à®¯ பதிபà¯à®ªà¯ உரà¯à®µà®¾à®•ியà¯à®³à¯à®³à®¤à¯. நீஙà¯à®•ள௠கà¯à®±à®¿à®¤à¯à®¤ பகà¯à®•தà¯à®¤à¯ˆ திரà¯à®¤à¯à®¤à¯à®®à¯ போதà¯, இனà¯à®©à¯à®®à¯Šà®°à¯ பயனர௠அதே பகà¯à®•தà¯à®¤à¯ˆà®¤à¯ திரà¯à®¤à¯à®¤à®¿à®©à®¾à®²à¯ இபà¯à®ªà®Ÿà®¿ à®à®±à¯à®ªà®Ÿ வாயà¯à®ªà¯à®ªà¯à®£à¯à®Ÿà¯.
\ No newline at end of file
diff --git a/wiki/inc/lang/ta/denied.txt b/wiki/inc/lang/ta/denied.txt
deleted file mode 100644
index 9dcf1c9..0000000
--- a/wiki/inc/lang/ta/denied.txt
+++ /dev/null
@@ -1 +0,0 @@
-மனà¯à®©à®¿à®•à¯à®•வà¯à®®à¯ ! உஙà¯à®•ளà¯à®•à¯à®•௠தொடர அனà¯à®®à®¤à®¿ இலà¯à®²à¯ˆ
\ No newline at end of file
diff --git a/wiki/inc/lang/ta/diff.txt b/wiki/inc/lang/ta/diff.txt
deleted file mode 100644
index bbc2876..0000000
--- a/wiki/inc/lang/ta/diff.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== வேறà¯à®ªà®¾à®Ÿà¯à®•ள௠======
-
-கà¯à®±à®¿à®¤à¯à®¤ பகà¯à®•தà¯à®¤à®¿à®±à¯à®•ான இரà¯à®µà¯‡à®±à¯à®ªà®Ÿà¯à®Ÿ மாறà¯à®¤à®²à¯à®•ளைக௠ காடà¯à®Ÿà¯à®•ினà¯à®±à®¤à¯.
\ No newline at end of file
diff --git a/wiki/inc/lang/ta/draft.txt b/wiki/inc/lang/ta/draft.txt
deleted file mode 100644
index 2bb8921..0000000
--- a/wiki/inc/lang/ta/draft.txt
+++ /dev/null
@@ -1 +0,0 @@
-====== பூரணமாகத கோபà¯à®ªà¯ ======
\ No newline at end of file
diff --git a/wiki/inc/lang/ta/edit.txt b/wiki/inc/lang/ta/edit.txt
deleted file mode 100644
index e2d61d7..0000000
--- a/wiki/inc/lang/ta/edit.txt
+++ /dev/null
@@ -1 +0,0 @@
-பகà¯à®•தà¯à®¤à¯ˆà®¤à¯ திரà¯à®¤à¯à®¤à®¿ à®®à¯à®Ÿà®¿à®¨à¯à®¤à®µà¯à®Ÿà®©à¯, "செமி" எனà¯à®± படà¯à®Ÿà®©à¯ˆ à®…à®´à¯à®¤à¯à®¤à®µà¯à®®à¯. விகà¯à®•ியின௠வாகà¯à®•ிய அமைபà¯à®ªà¯à®•à¯à®•ளைப௠அறிநà¯à®¤à¯à®•ொளà¯à®³ [[wiki:syntax]] ஠பாரà¯à®•à¯à®•வà¯à®®à¯. நீஙà¯à®•ள௠விகà¯à®•ியில௠எழà¯à®¤à®¿à®ªà¯ பயிறà¯à®šà®¿à®ªà¯†à®± [playground:playground|விளையாடà¯à®Ÿà¯à®¤à¯à®¤à®¾à®Ÿà®²à¯ˆ]] பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤à®µà¯à®®à¯.
\ No newline at end of file
diff --git a/wiki/inc/lang/ta/jquery.ui.datepicker.js b/wiki/inc/lang/ta/jquery.ui.datepicker.js
deleted file mode 100644
index 722614d..0000000
--- a/wiki/inc/lang/ta/jquery.ui.datepicker.js
+++ /dev/null
@@ -1,53 +0,0 @@
-/* Tamil (UTF-8) initialisation for the jQuery UI date picker plugin. */
-/* Written by S A Sureshkumar (saskumar@live.com). */
-( function( factory ) {
-	if ( typeof define === "function" && define.amd ) {
-
-		// AMD. Register as an anonymous module.
-		define( [ "../widgets/datepicker" ], factory );
-	} else {
-
-		// Browser globals
-		factory( jQuery.datepicker );
-	}
-}( function( datepicker ) {
-
-datepicker.regional.ta = {
-	closeText: "மூடà¯",
-	prevText: "à®®à¯à®©à¯à®©à¯ˆà®¯à®¤à¯",
-	nextText: "அடà¯à®¤à¯à®¤à®¤à¯",
-	currentText: "இனà¯à®±à¯",
-	monthNames: [ "தை","மாசி","பஙà¯à®•à¯à®©à®¿","சிதà¯à®¤à®¿à®°à¯ˆ","வைகாசி","ஆனி",
-	"ஆடி","ஆவணி","பà¯à®°à®Ÿà¯à®Ÿà®¾à®šà®¿","à®à®ªà¯à®ªà®šà®¿","காரà¯à®¤à¯à®¤à®¿à®•ை","மாரà¯à®•ழி" ],
-	monthNamesShort: [ "தை","மாசி","பஙà¯","சிதà¯","வைகா","ஆனி",
-	"ஆடி","ஆவ","பà¯à®°","à®à®ªà¯","காரà¯","மாரà¯" ],
-	dayNames: [
-		"ஞாயிறà¯à®±à¯à®•à¯à®•ிழமை",
-		"திஙà¯à®•டà¯à®•ிழமை",
-		"செவà¯à®µà®¾à®¯à¯à®•à¯à®•ிழமை",
-		"பà¯à®¤à®©à¯à®•ிழமை",
-		"வியாழகà¯à®•ிழமை",
-		"வெளà¯à®³à®¿à®•à¯à®•ிழமை",
-		"சனிகà¯à®•ிழமை"
-	],
-	dayNamesShort: [
-		"ஞாயிறà¯",
-		"திஙà¯à®•ளà¯",
-		"செவà¯à®µà®¾à®¯à¯",
-		"பà¯à®¤à®©à¯",
-		"வியாழனà¯",
-		"வெளà¯à®³à®¿",
-		"சனி"
-	],
-	dayNamesMin: [ "ஞா","தி","செ","பà¯","வி","வெ","ச" ],
-	weekHeader: "Ðе",
-	dateFormat: "dd/mm/yy",
-	firstDay: 1,
-	isRTL: false,
-	showMonthAfterYear: false,
-	yearSuffix: "" };
-datepicker.setDefaults( datepicker.regional.ta );
-
-return datepicker.regional.ta;
-
-} ) );
diff --git a/wiki/inc/lang/ta/lang.php b/wiki/inc/lang/ta/lang.php
deleted file mode 100644
index 422613e..0000000
--- a/wiki/inc/lang/ta/lang.php
+++ /dev/null
@@ -1,55 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Naveen Venugopal <naveen.venugopal.anu@gmail.com>
- * @author Sri Saravana <saravanamuthaly@gmail.com>
- */
-$lang['doublequoteopening']    = '&quot;';
-$lang['doublequoteclosing']    = '&quot;';
-$lang['singlequoteopening']    = '\'';
-$lang['singlequoteclosing']    = '\'';
-$lang['apostrophe']            = '\'';
-$lang['btn_edit']              = 'இநà¯à®¤ பகà¯à®•தà¯à®¤à¯ˆ திரà¯à®¤à¯à®¤à¯ ';
-$lang['btn_source']            = 'பகà¯à®• மூலதà¯à®¤à¯ˆà®•௠காடà¯à®Ÿà¯';
-$lang['btn_show']              = 'பகà¯à®•தà¯à®¤à¯ˆ காணà¯à®ªà®¿ ';
-$lang['btn_create']            = 'இநà¯à®¤ பகà¯à®•தà¯à®¤à¯ˆ உரà¯à®µà®¾à®•à¯à®•௠';
-$lang['btn_search']            = 'தேடà¯';
-$lang['btn_save']              = 'சேமி ';
-$lang['btn_preview']           = 'à®®à¯à®©à¯à®©à¯‹à®Ÿà¯à®Ÿà®®à¯';
-$lang['btn_top']               = 'மேலே செலà¯';
-$lang['btn_revs']              = 'பழைய  திரà¯à®¤à¯à®¤à®™à¯à®•ளà¯';
-$lang['btn_recent']            = 'சமீபதà¯à®¤à®¿à®¯ மாறà¯à®±à®™à¯à®•ளà¯';
-$lang['btn_upload']            = 'பதிவேறà¯à®±à¯';
-$lang['btn_cancel']            = 'ரதà¯à®¤à¯';
-$lang['btn_index']             = 'தள வரைபடமà¯';
-$lang['btn_secedit']           = 'தொகà¯';
-$lang['btn_login']             = 'பà¯à®•à¯à®ªà®¤à®¿à®•ை';
-$lang['btn_logout']            = 'விடà¯à®ªà®¤à®¿à®•ை';
-$lang['btn_admin']             = 'நிரà¯à®µà®¾à®•à®®à¯';
-$lang['btn_update']            = 'மேமà¯à®ªà®Ÿà¯à®¤à¯à®¤à¯ ';
-$lang['btn_delete']            = 'நீகà¯à®•à¯';
-$lang['btn_back']              = 'பினà¯';
-$lang['btn_backlink']          = 'பினà¯à®©à®¿à®£à¯ˆà®ªà¯à®ªà¯à®•à¯à®•ளà¯';
-$lang['btn_subscribe']         = 'சநà¯à®¤à®¾ நிரà¯à®µà®•ிபà¯à®ªà¯';
-$lang['btn_profile']           = 'பயனர௠கணகà¯à®•௠மாறà¯à®±à®®à¯';
-$lang['btn_reset']             = 'மீடà¯à®Ÿà®®à¯ˆ';
-$lang['btn_resendpwd']         = 'பà¯à®¤à®¿à®¯ அடையாளசà¯à®šà¯Šà®²à¯à®²à¯ˆ நியமி';
-$lang['btn_draft']             = 'திரà¯à®¤à¯à®¤ வரைவà¯';
-$lang['btn_apply']             = 'உபயோகி';
-$lang['user']                  = 'பயனரà¯à®ªà¯†à®¯à®°à¯';
-$lang['pass']                  = 'அடையாளசà¯à®šà¯Šà®²à¯';
-$lang['newpass']               = 'பà¯à®¤à®¿à®¯ அடையாளசà¯à®šà¯Šà®²à¯';
-$lang['oldpass']               = 'தறà¯à®ªà¯‹à®¤à¯ˆà®¯  அடையாளசà¯à®šà¯Šà®²à¯à®²à¯ˆ உறà¯à®¤à®¿à®ªà¯à®ªà®Ÿà¯à®¤à¯à®¤à¯';
-$lang['passchk']               = 'மேலà¯à®®à¯ ஒர௠மà¯à®±à¯ˆ ';
-$lang['remember']              = 'எனà¯à®©à¯ˆ ஞாபகம௠வைதà¯à®¤à¯ கொளà¯';
-$lang['fullname']              = 'உணà¯à®®à¯ˆà®¯à®¾à®© பெயரà¯';
-$lang['email']                 = 'மினà¯à®©à®žà¯à®šà®²à¯';
-$lang['profile']               = 'பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤à¯à®ªà®µà®°à¯ விவரமà¯';
-$lang['minoredit']             = 'சிறிய மாறà¯à®±à®™à¯à®•ளà¯';
-$lang['media_historytab']      = 'வரலாறà¯';
-$lang['media_list_rows']       = 'வரிசைகள௠';
-$lang['media_sort_name']       = 'பெயர௠';
-$lang['media_sort_date']       = 'தேதி ';
-$lang['media_namespaces']      = 'பெயரà¯à®µà¯†à®³à®¿à®¯à¯ˆ தேரà¯à®µà¯à®šà¯†à®¯à¯ ';
diff --git a/wiki/inc/lang/th/admin.txt b/wiki/inc/lang/th/admin.txt
deleted file mode 100644
index 677e779..0000000
--- a/wiki/inc/lang/th/admin.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== งานธุรà¸à¸²à¸£à¸„วบคุมระบบ ======
-
-ด้านล่างนี้คุณสามารถพบรายà¸à¸²à¸£à¸‡à¸²à¸™à¸„วบคุมระบบทั้งหมดในโดà¸à¸¸à¸§à¸´à¸à¸´
\ No newline at end of file
diff --git a/wiki/inc/lang/th/adminplugins.txt b/wiki/inc/lang/th/adminplugins.txt
deleted file mode 100644
index 85a6b17..0000000
--- a/wiki/inc/lang/th/adminplugins.txt
+++ /dev/null
@@ -1 +0,0 @@
-====== ปลั๊à¸à¸­à¸´à¸™à¹€à¸ªà¸£à¸´à¸¡ ======
\ No newline at end of file
diff --git a/wiki/inc/lang/th/backlinks.txt b/wiki/inc/lang/th/backlinks.txt
deleted file mode 100644
index fff6898..0000000
--- a/wiki/inc/lang/th/backlinks.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== ลิงค์à¸à¸¥à¸±à¸š(Backlinks) ======
-
-นี่คือรายชื่อเพจที่ชี้ลิงค์à¸à¸¥à¸±à¸šà¸¡à¸²à¸¢à¸±à¸‡à¹€à¸žà¸ˆà¸›à¸±à¸ˆà¸ˆà¸¸à¸šà¸±à¸™
\ No newline at end of file
diff --git a/wiki/inc/lang/th/conflict.txt b/wiki/inc/lang/th/conflict.txt
deleted file mode 100644
index 5e786a6..0000000
--- a/wiki/inc/lang/th/conflict.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== มีเนื้อหารุ่นใหม่à¸à¸§à¹ˆà¸²à¹€à¸à¸´à¸”ขึ้น ======
-
-มีเอà¸à¸ªà¸²à¸£à¸£à¸¸à¹ˆà¸™à¹ƒà¸«à¸¡à¹ˆà¸à¸§à¹ˆà¸²à¸—ี่คุณได้à¹à¸à¹‰à¹„ขไว้ มันเà¸à¸´à¸”ขึ้นเมื่อผู้ใช้รายอื่นได้ทำà¸à¸²à¸£à¹à¸à¹‰à¹„ขเอà¸à¸ªà¸²à¸£à¹ƒà¸™à¸‚ณะที่ขณะเดียวà¸à¸±à¸™à¸à¸±à¸šà¸—ี่คุณà¸à¸³à¸¥à¸±à¸‡à¹à¸à¹‰à¹„ขมัน
-
-ให้ตรวจสอบความà¹à¸•à¸à¸•่างที่à¹à¸ªà¸”งไว้ด้านล่างนี้ให้ทั่วถึง, à¹à¸¥à¹‰à¸§à¸•ัดสินใจว่าจะเà¸à¹‡à¸šà¸‰à¸šà¸±à¸šà¹„หนไว้ ถ้าคุณเลือภ"บันทึà¸", ฉบับของคุณจะถูà¸à¸šà¸±à¸™à¸—ึà¸à¹„ว้ หรือà¸à¸” "ยà¸à¹€à¸¥à¸´à¸" เพื่อเà¸à¹‡à¸šà¸‰à¸šà¸±à¸šà¸›à¸±à¸ˆà¸ˆà¸¸à¸šà¸±à¸™
\ No newline at end of file
diff --git a/wiki/inc/lang/th/denied.txt b/wiki/inc/lang/th/denied.txt
deleted file mode 100644
index 4cc29d6..0000000
--- a/wiki/inc/lang/th/denied.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== ปà¸à¸´à¹€à¸ªà¸˜à¸ªà¸´à¸—ธิ์ ======
-
-ขออภัย คุณไม่มีสิทธิ์เพียงพอที่จะดำเนินà¸à¸²à¸£à¸•่อ
-
diff --git a/wiki/inc/lang/th/diff.txt b/wiki/inc/lang/th/diff.txt
deleted file mode 100644
index e21759e..0000000
--- a/wiki/inc/lang/th/diff.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== ความà¹à¸•à¸à¸•่าง ======
-
-นี่เป็นà¸à¸²à¸£à¹à¸ªà¸”งความà¹à¸•à¸à¸•่างระหว่างเพจสองรุ่น
\ No newline at end of file
diff --git a/wiki/inc/lang/th/draft.txt b/wiki/inc/lang/th/draft.txt
deleted file mode 100644
index 37b1841..0000000
--- a/wiki/inc/lang/th/draft.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== พบไฟล์ฉบับร่าง ======
-
-เซสชั่นที่คุณà¹à¸à¹‰à¹„ขฉบับล่าสุดในเพจนี้ไม่ถูà¸à¸ˆà¸±à¸”เà¸à¹‡à¸šà¹ƒà¸«à¹‰à¸ªà¸¡à¸šà¸¹à¸£à¸“์ โดà¸à¸¸à¸§à¸´à¸à¸´à¹„ด้ทำà¸à¸²à¸£à¸šà¸±à¸™à¸—ึà¸à¸‰à¸šà¸±à¸šà¸£à¹ˆà¸²à¸‡à¹ƒà¸«à¹‰à¹‚ดยอัตโนมัติในระหว่างที่คุณà¸à¸³à¸¥à¸±à¸‡à¸—ำงาน อันซึ่งขณะนี้คุณอาจต้องà¸à¸²à¸£à¹ƒà¸Šà¹‰à¸¡à¸±à¸™à¹€à¸žà¸·à¹ˆà¸­à¹à¸à¹‰à¹„ขต่อ ด้านล่างนี้คุณจะเห็นข้อมูลที่ถูà¸à¸šà¸±à¸™à¸—ึà¸à¹„ว้จาà¸à¸à¸²à¸£à¸—ำงานครั้งล่าสุด
-
-à¸à¸£à¸¸à¸“าตัดสินใจว่าคุณต้องà¸à¸²à¸£à¸—ี่จะ //à¸à¸¹à¹‰à¸„ืน//งานฉบับที่à¹à¸à¹‰à¹„ขล่าสุด, //ลบทิ้ง/// ตัวฉบับร่างที่ได้บันทึà¸à¸­à¸±à¸•โนมัติไว้, //ยà¸à¹€à¸¥à¸´à¸// à¸à¸£à¸°à¸šà¸§à¸™à¸à¸²à¸£à¹à¸à¹‰à¹„ขนี้
\ No newline at end of file
diff --git a/wiki/inc/lang/th/edit.txt b/wiki/inc/lang/th/edit.txt
deleted file mode 100644
index 81dc000..0000000
--- a/wiki/inc/lang/th/edit.txt
+++ /dev/null
@@ -1 +0,0 @@
-à¹à¸à¹‰à¹„ขหน้านี้à¹à¸¥à¹‰à¸§à¸à¸” "บันทึà¸" ให้อ่าน[[wiki:syntax|ไวยà¸à¸£à¸“์วิà¸à¸´]] สำหรับค้นหาไวยà¸à¸£à¸“์ที่ใช้ในวิà¸à¸´ à¹à¸¥à¸°à¸à¸£à¸¸à¸“าà¹à¸à¹‰à¹„ขเฉพาะเพจที่คุณสามารถ**ปรับปรุง**ให้มันดีขึ้นได้, ถ้าหาà¸à¸„ุณต้องà¸à¸²à¸£à¸—ี่จะทดสอบอะไรบางอย่าง ให้ไปลองเล่นครั้งà¹à¸£à¸à¹„ด้ใน[[playground:playground|สนามเด็à¸à¹€à¸¥à¹ˆà¸™]]
\ No newline at end of file
diff --git a/wiki/inc/lang/th/editrev.txt b/wiki/inc/lang/th/editrev.txt
deleted file mode 100644
index 28e6760..0000000
--- a/wiki/inc/lang/th/editrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**คุณได้โหลดเอาเอà¸à¸ªà¸²à¸£à¸‰à¸šà¸±à¸šà¹€à¸à¹ˆà¸²à¸‚ึ้นมา!** ถ้าคุณบันทึà¸à¸¡à¸±à¸™ คุณจะสร้างเอà¸à¸ªà¸²à¸£à¸£à¸¸à¹ˆà¸™à¹ƒà¸«à¸¡à¹ˆà¸”้วยข้อมูลเหล่านี้
-----
\ No newline at end of file
diff --git a/wiki/inc/lang/th/index.txt b/wiki/inc/lang/th/index.txt
deleted file mode 100644
index eb32a64..0000000
--- a/wiki/inc/lang/th/index.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-====== ดัชนี ======
-นี่คือดัชนีรวมทุà¸à¹€à¸žà¸ˆ เรียงตาม[[doku>namespaces|เนมสเปซ]]
\ No newline at end of file
diff --git a/wiki/inc/lang/th/jquery.ui.datepicker.js b/wiki/inc/lang/th/jquery.ui.datepicker.js
deleted file mode 100644
index 6de48cf..0000000
--- a/wiki/inc/lang/th/jquery.ui.datepicker.js
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Thai initialisation for the jQuery UI date picker plugin. */
-/* Written by pipo (pipo@sixhead.com). */
-( function( factory ) {
-	if ( typeof define === "function" && define.amd ) {
-
-		// AMD. Register as an anonymous module.
-		define( [ "../widgets/datepicker" ], factory );
-	} else {
-
-		// Browser globals
-		factory( jQuery.datepicker );
-	}
-}( function( datepicker ) {
-
-datepicker.regional.th = {
-	closeText: "ปิด",
-	prevText: "&#xAB;&#xA0;ย้อน",
-	nextText: "ถัดไป&#xA0;&#xBB;",
-	currentText: "วันนี้",
-	monthNames: [ "มà¸à¸£à¸²à¸„ม","à¸à¸¸à¸¡à¸ à¸²à¸žà¸±à¸™à¸˜à¹Œ","มีนาคม","เมษายน","พฤษภาคม","มิถุนายน",
-	"à¸à¸£à¸à¸Žà¸²à¸„ม","สิงหาคม","à¸à¸±à¸™à¸¢à¸²à¸¢à¸™","ตุลาคม","พฤศจิà¸à¸²à¸¢à¸™","ธันวาคม" ],
-	monthNamesShort: [ "ม.ค.","à¸.พ.","มี.ค.","เม.ย.","พ.ค.","มิ.ย.",
-	"à¸.ค.","ส.ค.","à¸.ย.","ต.ค.","พ.ย.","ธ.ค." ],
-	dayNames: [ "อาทิตย์","จันทร์","อังคาร","พุธ","พฤหัสบดี","ศุà¸à¸£à¹Œ","เสาร์" ],
-	dayNamesShort: [ "อา.","จ.","อ.","พ.","พฤ.","ศ.","ส." ],
-	dayNamesMin: [ "อา.","จ.","อ.","พ.","พฤ.","ศ.","ส." ],
-	weekHeader: "Wk",
-	dateFormat: "dd/mm/yy",
-	firstDay: 0,
-	isRTL: false,
-	showMonthAfterYear: false,
-	yearSuffix: "" };
-datepicker.setDefaults( datepicker.regional.th );
-
-return datepicker.regional.th;
-
-} ) );
diff --git a/wiki/inc/lang/th/lang.php b/wiki/inc/lang/th/lang.php
deleted file mode 100644
index b2b2fd8..0000000
--- a/wiki/inc/lang/th/lang.php
+++ /dev/null
@@ -1,245 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Komgrit Niyomrath <n.komgrit@gmail.com>
- * @author Arthit Suriyawongkul <arthit@gmail.com>
- * @author Kittithat Arnontavilas <mrtomyum@gmail.com>
- * @author Thanasak Sompaisansin <jombthep@gmail.com>
- * @author Yuthana Tantirungrotechai <yt203y@gmail.com>
- * @author Amnuay <amnuay@gmail.com>
- */
-$lang['encoding']              = 'utf-8';
-$lang['direction']             = 'ltr';
-$lang['doublequoteopening']    = '“';
-$lang['doublequoteclosing']    = 'â€';
-$lang['singlequoteopening']    = '‘';
-$lang['singlequoteclosing']    = '’';
-$lang['apostrophe']            = '’';
-$lang['btn_edit']              = 'à¹à¸à¹‰à¹„ขหน้านี้';
-$lang['btn_source']            = 'ดูโค้ด';
-$lang['btn_show']              = 'à¹à¸ªà¸”งเพจ';
-$lang['btn_create']            = 'สร้างเพจนี้';
-$lang['btn_search']            = 'ค้นหา';
-$lang['btn_save']              = 'บันทึà¸';
-$lang['btn_preview']           = 'à¹à¸ªà¸”งตัวอย่าง';
-$lang['btn_top']               = 'à¸à¸¥à¸±à¸šà¸ªà¸¹à¹ˆà¸”้านบน';
-$lang['btn_newer']             = '<< ใหม่à¸à¸§à¹ˆà¸²';
-$lang['btn_older']             = 'เà¸à¹ˆà¸²à¸à¸§à¹ˆà¸² >>';
-$lang['btn_revs']              = 'ฉบับเà¸à¹ˆà¸²à¹†';
-$lang['btn_recent']            = 'ปรับปรุงล่าสุด';
-$lang['btn_upload']            = 'ส่งข้อมูลเข้าสู่ระบบ';
-$lang['btn_cancel']            = 'ยà¸à¹€à¸¥à¸´à¸';
-$lang['btn_index']             = 'ดัชนี';
-$lang['btn_secedit']           = 'à¹à¸à¹‰à¹„ข';
-$lang['btn_login']             = 'ล็อà¸à¸­à¸´à¸™';
-$lang['btn_logout']            = 'ล็อà¸à¹€à¸­à¸²à¸•์';
-$lang['btn_admin']             = 'ผู้ควบคุมระบบ';
-$lang['btn_update']            = 'ปรับปรุง';
-$lang['btn_delete']            = 'ลบ';
-$lang['btn_back']              = 'ย้อนà¸à¸¥à¸±à¸š';
-$lang['btn_backlink']          = 'หน้าที่ลิงà¸à¹Œà¸¡à¸²';
-$lang['btn_subscribe']         = 'เà¸à¹‰à¸²à¸”ู';
-$lang['btn_profile']           = 'à¹à¸à¹‰à¸‚้อมูลผู้ใช้';
-$lang['btn_reset']             = 'เริ่มใหม่';
-$lang['btn_resendpwd']         = 'ตั้งพาสเวิร์ดใหม่';
-$lang['btn_draft']             = 'à¹à¸à¹‰à¹„ขเอà¸à¸ªà¸²à¸£à¸‰à¸šà¸±à¸šà¸£à¹ˆà¸²à¸‡';
-$lang['btn_recover']           = 'à¸à¸¹à¹‰à¸„ืนเอà¸à¸ªà¸²à¸£à¸‰à¸šà¸±à¸šà¸£à¹ˆà¸²à¸‡';
-$lang['btn_draftdel']          = 'ลบเอà¸à¸ªà¸²à¸£à¸‰à¸šà¸±à¸šà¸£à¹ˆà¸²à¸‡';
-$lang['btn_revert']            = 'à¸à¸¹à¹‰à¸„ืน';
-$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']                  = 'รหัสผ่าน';
-$lang['newpass']               = 'รหัสผ่านใหม่';
-$lang['oldpass']               = 'รหัสผ่านเดิม:';
-$lang['passchk']               = 'พิมพ์รหัสผ่านอีà¸à¸„รั้ง:';
-$lang['remember']              = 'จำชื่อà¹à¸¥à¸°à¸£à¸«à¸±à¸ªà¸œà¹ˆà¸²à¸™';
-$lang['fullname']              = 'ชื่อจริง:';
-$lang['email']                 = 'อีเมล:';
-$lang['profile']               = 'ข้อมูลส่วนตัวผู้ใช้';
-$lang['badlogin']              = 'ขัดข้อง:';
-$lang['badpassconfirm']        = 'พาสเวิร์ดไม่ถูà¸à¸•้อง';
-$lang['minoredit']             = 'เป็นà¸à¸²à¸£à¹à¸à¹‰à¹„ขเล็à¸à¸™à¹‰à¸­à¸¢';
-$lang['draftdate']             = 'บันทึà¸à¸‰à¸šà¸±à¸šà¸£à¹ˆà¸²à¸‡à¹€à¸¡à¸·à¹ˆà¸­';
-$lang['nosecedit']             = 'ในช่วงเวลาที่ผ่านมานี้เพจถูà¸à¹à¸à¹‰à¹„ขไปà¹à¸¥à¹‰à¸§, เนื้อหาในเซคชั่นนี้ไม่ทันสมัย à¸à¸£à¸¸à¸“าโหลดเพจใหม่ทั้งหน้าà¹à¸—น';
-$lang['regmissing']            = 'ขออภัย คุณต้องà¸à¸£à¸­à¸à¹ƒà¸«à¹‰à¸„รบทุà¸à¸Šà¹ˆà¸­à¸‡';
-$lang['reguexists']            = 'ชื่อบัà¸à¸Šà¸µà¸—ี่ใส่นั้นมีผู้อื่นได้ใช้à¹à¸¥à¹‰à¸§ à¸à¸£à¸¸à¸“าเลือà¸à¸Šà¸·à¹ˆà¸­à¸œà¸¹à¹‰à¹ƒà¸Šà¹‰à¸­à¸·à¹ˆà¸™';
-$lang['regsuccess']            = 'ผู้ใช้ถูà¸à¸ªà¸£à¹‰à¸²à¸‡à¹à¸¥à¹‰à¸§ à¹à¸¥à¸°à¸£à¸«à¸±à¸ªà¸œà¹ˆà¸²à¸™à¹„ด้ถูà¸à¸ªà¹ˆà¸‡à¹„ปทางอีเมลà¹à¸¥à¹‰à¸§';
-$lang['regsuccess2']           = 'ชื่อบัà¸à¸Šà¸µà¹„ด้ถูà¸à¸ªà¸£à¹‰à¸²à¸‡à¸‚ึ้น';
-$lang['regfail']               = 'à¸à¸²à¸£à¸ªà¸£à¹‰à¸²à¸‡à¸œà¸¹à¹‰à¹ƒà¸Šà¹‰à¹„ม่สำเร็จ';
-$lang['regmailfail']           = 'ดูเหมือนจะมีข้อผิดพลาดในà¸à¸²à¸£à¸ªà¹ˆà¸‡à¸£à¸«à¸±à¸ªà¸œà¹ˆà¸²à¸™à¸—างเมล์ à¸à¸£à¸¸à¸“าติดต่อผู้ดูà¹à¸¥à¸£à¸°à¸šà¸š';
-$lang['regbadmail']            = 'รูปà¹à¸šà¸šà¸­à¸µà¹€à¸¡à¸¥à¹„ม่ถูà¸à¸•้อง ให้ใส่อีเมลให้ถูà¸à¸•้องตามรูปà¹à¸šà¸šà¸­à¸µà¹€à¸¡à¸¥ หรือให้ทำช่องอีเมลให้ว่างà¹à¸—น';
-$lang['regbadpass']            = 'รหัสผ่านที่ใส่ไม่ถูà¸à¸•้อง';
-$lang['regpwmail']             = 'รหัสผ่านเข้าโดà¸à¸¸à¸§à¸´à¸à¸´à¸‚องคุณ';
-$lang['reghere']               = 'คุณยังไม่มีบัà¸à¸Šà¸µà¸«à¸£à¸·à¸­ à¸à¹‡à¹à¸„่สร้างขึ้นมาสัà¸à¸­à¸±à¸™à¸«à¸™à¸¶à¹ˆà¸‡';
-$lang['profna']                = 'วิà¸à¸´à¸™à¸µà¹‰à¹„ม่รองรับà¸à¸²à¸£à¹à¸à¹‰à¹„ขข้อมูลส่วนตัว';
-$lang['profnochange']          = 'ไม่มีà¸à¸²à¸£à¹€à¸›à¸¥à¸µà¹ˆà¸¢à¸™à¹à¸›à¸¥à¸‡à¸‚้อมูลส่วนตัว';
-$lang['profnoempty']           = 'ไม่อนุà¸à¸²à¸•ิให้เว้นว่างชื่อ หรืออีเมล';
-$lang['profchanged']           = 'ปรับปรุงข้อมูลส่วนตัวผู้ใช้สำเร็จ';
-$lang['profnodelete']          = 'วิà¸à¸´à¸™à¸µà¹‰à¹„ม่รองรับà¸à¸²à¸£à¸¥à¸šà¸šà¸±à¸à¸Šà¸µà¸œà¸¹à¹‰à¹ƒà¸Šà¹‰à¸‡à¸²à¸™';
-$lang['profdeleteuser']        = 'ลบบัà¸à¸Šà¸µà¸œà¸¹à¹‰à¹ƒà¸Šà¹‰à¸‡à¸²à¸™';
-$lang['profdeleted']           = 'บัà¸à¸Šà¸µà¸œà¸¹à¹‰à¹ƒà¸Šà¹‰à¸‡à¸²à¸™à¸‚องคุณได้ถูà¸à¸¥à¸šà¸­à¸­à¸à¸ˆà¸²à¸à¸§à¸´à¸à¸´à¹à¸¥à¹‰à¸§';
-$lang['profconfdelete']        = 'ฉันอยาà¸à¸¥à¸šà¸šà¸±à¸à¸Šà¸µà¸œà¸¹à¹‰à¹ƒà¸Šà¹‰à¸‡à¸²à¸™à¸‚องฉันจาà¸à¸§à¸´à¸à¸´à¸™à¸µà¹‰ <br/> à¸à¸²à¸£à¸”ำเนินà¸à¸²à¸£à¸™à¸µà¹‰à¹„ม่สามารถà¹à¸à¹‰à¹„ขคืนได้ ';
-$lang['profconfdeletemissing'] = 'ท่านไม่ได้ยืนยันในช่องยืนยัน';
-$lang['proffail']              = 'ข้อมูลผู้ใช้ไม่เป็นปัจจุบัน';
-$lang['pwdforget']             = 'ลืมรหัสผ่านหรือ? เอาอันใหม่สิ';
-$lang['resendna']              = 'วิà¸à¸´à¸™à¸µà¹‰à¹„ม่รองรับà¸à¸²à¸£à¸ªà¹ˆà¸‡à¸£à¸«à¸±à¸ªà¸œà¹ˆà¸²à¸™à¸‹à¹‰à¸³';
-$lang['resendpwd']             = 'สร้างรหัสผ่านใหม่สำหรับ';
-$lang['resendpwdmissing']      = 'ขออภัย, คุณต้องà¸à¸£à¸­à¸à¸—ุà¸à¸Šà¹ˆà¸­à¸‡';
-$lang['resendpwdnouser']       = 'ขออภัย, เราไม่พบผู้ใช้คนนี้ในà¸à¸²à¸™à¸‚้อมูลของเรา';
-$lang['resendpwdbadauth']      = 'ขออภัย, รหัสนี้ยังใช้ไม่ได้ à¸à¸£à¸¸à¸“าตรวจสอบว่าคุณà¸à¸”ลิ้งค์ยืนยันà¹à¸¥à¹‰à¸§';
-$lang['resendpwdconfirm']      = 'อีเมลยืนยันได้ถูà¸à¸ªà¹ˆà¸‡à¹„ปที่อีเมลที่ได้ถูà¸à¹€à¸ªà¸™à¸­ à¸à¹ˆà¸­à¸™à¸—ี่อีเมลจะถูà¸à¸ªà¹ˆà¸‡à¹„ปที่ชื่อบัà¸à¸Šà¸µà¸™à¸±à¹‰à¸™ คุณต้องปà¸à¸´à¸šà¸±à¸•ิตามคำà¹à¸™à¸°à¸™à¸³à¹ƒà¸™à¸­à¸µà¹€à¸¡à¸¥à¹€à¸žà¸·à¹ˆà¸­à¸¢à¸·à¸™à¸¢à¸±à¸™à¸§à¹ˆà¸²à¸«à¸¡à¸²à¸¢à¹€à¸¥à¸¢à¸šà¸±à¸à¸Šà¸µà¸™à¸±à¹‰à¸™à¹€à¸›à¹‡à¸™à¸‚องคุณ';
-$lang['resendpwdsuccess']      = 'รหัสผ่านใหม่ของคุณได้ถูà¸à¸ªà¹ˆà¸‡à¹ƒà¸«à¹‰à¹à¸¥à¹‰à¸§à¸—างอีเมล';
-$lang['license']               = 'เว้นà¹à¸•่จะได้à¹à¸ˆà¹‰à¸‡à¹„ว้เป็นอื่นใด เนื้อหาบนวิà¸à¸´à¸™à¸µà¹‰à¸–ูà¸à¸à¸³à¸«à¸™à¸”สิทธิ์ไว้ภายใต้สัà¸à¸à¸²à¸­à¸™à¸¸à¸à¸²à¸•ิต่อไปนี้:';
-$lang['licenseok']             = 'โปรดทราบ: เมื่อเริ่มà¹à¸à¹‰à¹„ขหน้านี้ ถือว่าคุณตà¸à¸¥à¸‡à¹ƒà¸«à¹‰à¸ªà¸´à¸—ธิ์à¸à¸±à¸šà¹€à¸™à¸·à¹‰à¸­à¸«à¸²à¸‚องคุณอยู่ภายใต้สัà¸à¸à¸²à¸­à¸™à¸¸à¸à¸²à¸•ินี้';
-$lang['searchmedia']           = 'สืบค้นไฟล์ชื่อ:';
-$lang['searchmedia_in']        = 'สืบค้นใน %s';
-$lang['txt_upload']            = 'เลือà¸à¹„ฟล์ที่จะอัพโหลด:';
-$lang['txt_filename']          = 'อัพโหลดเป็น(ตัวเลือà¸):';
-$lang['txt_overwrt']           = 'เขียนทับไฟล์ที่มีอยู่à¹à¸¥à¹‰à¸§';
-$lang['maxuploadsize']         = 'อัพโหลด สูงสุด %s ต่อไฟล์';
-$lang['lockedby']              = 'ตอนนี้ถูà¸à¸¥à¹Šà¸­à¸„โดย:';
-$lang['lockexpire']            = 'à¸à¸²à¸£à¸¥à¹Šà¸­à¸„จะหมดอายุเมื่อ:';
-$lang['js']['willexpire']      = 'à¸à¸²à¸£à¸¥à¹Šà¸­à¸„เพื่อà¹à¸à¹‰à¹„ขหน้านี้à¸à¸³à¸¥à¸±à¸‡à¸ˆà¸°à¸«à¸¡à¸”เวลาในอีภ\n นาที เพื่อที่จะหลีà¸à¹€à¸¥à¸µà¹ˆà¸¢à¸‡à¸‚้อขัดà¹à¸¢à¹‰à¸‡à¹ƒà¸«à¹‰à¹ƒà¸Šà¹‰à¸›à¸¸à¹ˆà¸¡ "Preview" เพื่อรีเซ็ทเวลาใหม่';
-$lang['js']['notsavedyet']     = 'à¸à¸²à¸£à¹à¸à¹‰à¹„ขที่ไม่ได้บันทึà¸à¸ˆà¸°à¸ªà¸¹à¸à¸«à¸²à¸¢ \n ต้องà¸à¸²à¸£à¸—ำต่อจริงๆหรือ?';
-$lang['js']['searchmedia']     = 'ค้นหาไฟล์';
-$lang['js']['keepopen']        = 'เปิดหน้าต่างไว้ระหว่างที่เลือà¸';
-$lang['js']['hidedetails']     = 'ซ่อนรายละเอียด';
-$lang['js']['mediatitle']      = 'à¸à¸³à¸«à¸™à¸”ข้อมูลลิงค์';
-$lang['js']['mediadisplay']    = 'ชนิดของลิงค์';
-$lang['js']['mediaalign']      = 'à¸à¸²à¸£à¸ˆà¸±à¸”วาง';
-$lang['js']['mediasize']       = 'ขนาดรูปภาพ';
-$lang['js']['mediatarget']     = 'เป้าหมายของลิงค์';
-$lang['js']['mediaclose']      = 'ปิด';
-$lang['js']['mediainsert']     = 'à¹à¸—รà¸';
-$lang['js']['mediadisplayimg'] = 'à¹à¸ªà¸”งรูปภาพ';
-$lang['js']['mediadisplaylnk'] = 'à¹à¸ªà¸”งลิงค์ เท่านั้น';
-$lang['js']['mediasmall']      = 'รูปà¹à¸šà¸šà¸‚นาดเล็à¸';
-$lang['js']['mediamedium']     = 'รูปà¹à¸šà¸šà¸‚นาดà¸à¸¥à¸²à¸‡';
-$lang['js']['medialarge']      = 'รูปà¹à¸šà¸šà¸‚นาดใหà¸à¹ˆ';
-$lang['js']['mediaoriginal']   = 'รูปà¹à¸šà¸šà¸•ั้งต้น';
-$lang['js']['nosmblinks']      = 'เชื่อมไปยังหน้าต่างà¹à¸šà¹ˆà¸‡à¸›à¸±à¸™ ทำงานได้à¸à¸±à¸šà¹€à¸‰à¸žà¸²à¸°à¹„มโครซอฟท์อินเตอร์เน็ตเอ็à¸à¸‹à¹‚ปรเรอร์(IE) คุณยังคงสามารถคัดลอà¸à¹à¸¥à¸°à¹à¸›à¸°à¸¥à¸´à¹‰à¸‡à¸„์ได้';
-$lang['js']['linkwiz']         = 'ลิงค์วิเศษ';
-$lang['js']['linkto']          = 'ลิงค์ไป:';
-$lang['js']['del_confirm']     = 'ต้องà¸à¸²à¸£à¸¥à¸šà¸£à¸²à¸¢à¸à¸²à¸£à¸—ี่เลือà¸à¸ˆà¸£à¸´à¸‡à¹†à¸«à¸£à¸·à¸­?';
-$lang['rssfailed']             = 'มีข้อผิดพลาดขณะดูดฟีดนี้';
-$lang['nothingfound']          = 'ไม่พบสิ่งใด';
-$lang['mediaselect']           = 'ไฟล์สื่อ';
-$lang['uploadsucc']            = 'อัปโหลดสำเร็จ';
-$lang['uploadfail']            = 'เà¸à¸´à¸”ความขัดข้องในà¸à¸²à¸£à¸­à¸±à¸›à¹‚หลด';
-$lang['uploadwrong']           = 'à¸à¸²à¸£à¸­à¸±à¸žà¹‚หลดถูà¸à¸›à¸à¸´à¹€à¸ªà¸˜ ส่วนขยายไฟล์นี้ต้องห้าม!';
-$lang['uploadexist']           = 'ไฟล์นี้มีอยู่à¹à¸¥à¹‰à¸§ ไม่มีà¸à¸²à¸£à¸šà¸±à¸™à¸—ึà¸à¹ƒà¸”ๆเà¸à¸´à¸”ขึ้น';
-$lang['uploadbadcontent']      = 'เนื้อหาที่อัพโหลดไม่ตรงà¸à¸±à¸šà¸ªà¹ˆà¸§à¸™à¸‚ยายไฟล์ %s ';
-$lang['uploadspam']            = 'à¸à¸²à¸£à¸­à¸±à¸žà¹‚หลดถูà¸à¸à¸µà¸”à¸à¸±à¸™à¸ˆà¸²à¸à¸šà¸±à¸à¸Šà¸µà¸”ำสà¹à¸›à¸¡';
-$lang['uploadxss']             = 'ไฟล์นี้มีส่วนประà¸à¸­à¸šà¸‚องโค้ดเอชทีเอ็มà¹à¸­à¸¥à¸«à¸£à¸·à¸­à¸ªà¸„ริปต์ ซึ่งอาจà¸à¹ˆà¸­à¹ƒà¸«à¹‰à¹€à¸à¸´à¸”ความผิดพลาดในà¸à¸²à¸£à¹à¸ªà¸”งผลของเว็บเบราว์เซอร์';
-$lang['uploadsize']            = 'ไฟล์ที่อัพโหลดใหà¸à¹ˆà¹€à¸à¸´à¸™à¹„ป (สูงสุด %s)';
-$lang['deletesucc']            = 'ไฟล์ "%s" ถูà¸à¸¥à¸š';
-$lang['deletefail']            = '"%s" ไม่สามารถลบได้ - ให้ตรวจสอบสิทธิ์à¸à¸²à¸£à¹ƒà¸Šà¹‰à¸‚องคุณ';
-$lang['mediainuse']            = 'ไฟล์ "%s" ไม่ได้ถูà¸à¸¥à¸š - มันถูà¸à¹ƒà¸Šà¹‰à¸­à¸¢à¸¹à¹ˆ';
-$lang['namespaces']            = 'เนมสเปซ';
-$lang['mediafiles']            = 'มีไฟล์พร้อมใช้อยู่ใน';
-$lang['mediausage']            = 'ให้ใช้ไวยà¸à¸£à¸“์ต่อไปนี้เพื่ออ้างอิงไฟล์นี้';
-$lang['mediaview']             = 'ดูไฟล์ต้นฉบับ';
-$lang['mediaroot']             = 'ราà¸(รูท)';
-$lang['mediaupload']           = 'อัพโหลดไฟล์ไปยังเนมสเปซปัจจุบันจาà¸à¸—ี่นี่ หาà¸à¸ˆà¸°à¸ªà¸£à¹‰à¸²à¸‡à¹€à¸™à¸¡à¸ªà¹€à¸›à¸‹à¸¢à¹ˆà¸­à¸¢ ให้พิมพ์ต่อข้อความของคุณหลังชื่อไฟล์ในช่อง "อัพโหลดเป็น" โดยให้คั่นด้วยโคล่อน(:)';
-$lang['mediaextchange']        = 'ส่วนขยายไฟล์ถูà¸à¹€à¸›à¸¥à¸µà¹ˆà¸¢à¸™à¸ˆà¸²à¸ .%s ไปเป็น .%s!';
-$lang['reference']             = 'อ้างอิงสำหรับ';
-$lang['ref_inuse']             = 'ไม่สามารถลบไฟล์ได้ เพราะมันยังคงถูà¸à¹ƒà¸Šà¹‰à¹‚ดยเพจดังต่อไปนี้:';
-$lang['ref_hidden']            = 'มีà¸à¸²à¸£à¸­à¹‰à¸²à¸‡à¸­à¸´à¸‡à¸šà¸²à¸‡à¸£à¸²à¸¢à¸à¸²à¸£à¹ƒà¸™à¹€à¸žà¸ˆ คุณไม่มีสิทธิ์ในà¸à¸²à¸£à¸­à¹ˆà¸²à¸™';
-$lang['hits']                  = 'คำที่ตรงà¸à¸±à¸™';
-$lang['quickhits']             = 'ชื่อเพจที่ตรงà¸à¸±à¸™';
-$lang['toc']                   = 'สารบัà¸';
-$lang['current']               = 'ฉบับปัจจุบัน';
-$lang['yours']                 = 'ฉบับของคุณ';
-$lang['diff']                  = 'à¹à¸ªà¸”งจุดà¹à¸•à¸à¸•่างà¸à¸±à¸šà¸‰à¸šà¸±à¸šà¸›à¸±à¸ˆà¸ˆà¸¸à¸šà¸±à¸™';
-$lang['diff2']                 = 'à¹à¸ªà¸”งจุดà¹à¸•à¸à¸•่างระหว่างฉบับที่เลือà¸à¹„ว้';
-$lang['line']                  = 'บรรทัด';
-$lang['breadcrumb']            = 'ตามรอย:';
-$lang['youarehere']            = 'คุณอยู่ที่นี่:';
-$lang['lastmod']               = 'à¹à¸à¹‰à¹„ขครั้งล่าสุด:';
-$lang['by']                    = 'โดย';
-$lang['deleted']               = 'ถูà¸à¸–อดออà¸';
-$lang['created']               = 'ถูà¸à¸ªà¸£à¹‰à¸²à¸‡';
-$lang['restored']              = 'ย้อนไปรุ่นà¸à¹ˆà¸­à¸™à¸«à¸™à¹‰à¸² (%s)';
-$lang['external_edit']         = 'à¹à¸à¹‰à¹„ขภายนอà¸';
-$lang['summary']               = 'สรุป(หมายเหตุ)à¸à¸²à¸£à¹à¸à¹‰à¹„ขนี้';
-$lang['noflash']               = 'ต้องà¸à¸²à¸£à¸•ัวเล่นà¹à¸Ÿà¸¥à¸Š <a href="http://www.adobe.com/products/flashplayer/">Adobe Flash Plugin</a> เพื่อà¹à¸ªà¸”งผลเนื้อหานี้';
-$lang['download']              = 'ดาวน์โหลดสนิปเป็ด(Snippet)';
-$lang['mail_newpage']          = 'เพิ่มเพจà¹à¸¥à¹‰à¸§:';
-$lang['mail_changed']          = 'à¹à¸à¹‰à¹„ขเพจà¹à¸¥à¹‰à¸§:';
-$lang['mail_new_user']         = 'ผู้ใช้คนใหม่:';
-$lang['mail_upload']           = 'ไฟล์อัพโหลดà¹à¸¥à¹‰à¸§:';
-$lang['qb_bold']               = 'ทำตัวหนา';
-$lang['qb_italic']             = 'ทำตัวเอียง';
-$lang['qb_underl']             = 'ขีดเส้นใต้ข้อความ';
-$lang['qb_code']               = 'ข้อความเป็นโค้ดโปรà¹à¸à¸£à¸¡';
-$lang['qb_strike']             = 'ขีดฆ่าข้อความ';
-$lang['qb_h1']                 = 'หัวเรื่องระดับที่ 1';
-$lang['qb_h2']                 = 'หัวเรื่องระดับที่ 2';
-$lang['qb_h3']                 = 'หัวเรื่องระดับที่ 3';
-$lang['qb_h4']                 = 'หัวเรื่องระดับที่ 4';
-$lang['qb_h5']                 = 'หัวเรื่องระดับที่ 5';
-$lang['qb_h']                  = 'หัวเรื่อง';
-$lang['qb_hs']                 = 'เลือà¸à¸«à¸±à¸§à¹€à¸£à¸·à¹ˆà¸­à¸‡';
-$lang['qb_hplus']              = 'หัวเรื่องที่สูงà¸à¸§à¹ˆà¸²';
-$lang['qb_hminus']             = 'หัวเรื่องที่ต่ำà¸à¸§à¹ˆà¸²';
-$lang['qb_hequal']             = 'หัวเรื่องระดับเดียวà¸à¸±à¸™';
-$lang['qb_link']               = 'ลิงà¸à¹Œà¸ à¸²à¸¢à¹ƒà¸™à¹€à¸§à¹‡à¸š';
-$lang['qb_extlink']            = 'ลิงà¸à¹Œà¹„ปที่อื่น (อย่าลืม http:// นำหน้าเสมอ)';
-$lang['qb_hr']                 = 'เส้นนอน';
-$lang['qb_ol']                 = 'รายà¸à¸²à¸£à¸—ี่เรียงลำดับà¹à¸¥à¹‰à¸§';
-$lang['qb_ul']                 = 'รายà¸à¸²à¸£à¸—ี่ยังไม่ได้เรียงลำดับ';
-$lang['qb_media']              = 'เพิ่มภาพà¹à¸¥à¸°à¹„ฟล์อื่นๆ';
-$lang['qb_sig']                = 'ลายเซ็นพร้อมลงเวลา';
-$lang['qb_smileys']            = 'ภาพà¹à¸ªà¸”งอารมณ์';
-$lang['qb_chars']              = 'อัà¸à¸‚ระพิเศษ';
-$lang['upperns']               = 'à¸à¸£à¸°à¹‚ดดขึ้นไปยังเนมสเปซà¹à¸¡à¹ˆ';
-$lang['metaedit']              = 'à¹à¸à¹‰à¹„ขข้อมูลเมต้า';
-$lang['metasaveerr']           = 'มีข้อผิดพลาดในà¸à¸²à¸£à¹€à¸‚ียนข้อมูลเมต้า';
-$lang['metasaveok']            = 'บันทึà¸à¹€à¸¡à¸•้าดาต้าà¹à¸¥à¹‰à¸§';
-$lang['img_title']             = 'ชื่อภาพ:';
-$lang['img_caption']           = 'คำบรรยายภาพ:';
-$lang['img_date']              = 'วันที่:';
-$lang['img_fname']             = 'ชื่อไฟล์:';
-$lang['img_fsize']             = 'ขนาดภาพ:';
-$lang['img_artist']            = 'ผู้สร้างสรรค์:';
-$lang['img_copyr']             = 'ผู้ถือลิขสิทธิ์:';
-$lang['img_format']            = 'รูปà¹à¸šà¸š:';
-$lang['img_camera']            = 'à¸à¸¥à¹‰à¸­à¸‡:';
-$lang['img_keywords']          = 'คำหลัà¸:';
-$lang['authtempfail']          = 'ระบบตรวจสอบสิทธิ์ผู้ใช้ไม่พร้อมใช้งานชั่วคราว หาà¸à¸ªà¸–านà¸à¸²à¸£à¸“์ยังไม่เปลี่ยนà¹à¸›à¸¥à¸‡ à¸à¸£à¸¸à¸“าà¹à¸ˆà¹‰à¸‡à¸œà¸¹à¹‰à¸”ูà¹à¸¥à¸£à¸°à¸šà¸§à¸´à¸à¸´à¸‚องคุณ';
-$lang['i_chooselang']          = 'เลือà¸à¸ à¸²à¸©à¸²à¸‚องคุณ';
-$lang['i_installer']           = 'ตัวติดตั้งโดà¸à¸¸à¸§à¸´à¸à¸´';
-$lang['i_wikiname']            = 'ชื่อวิà¸à¸´';
-$lang['i_enableacl']           = 'เปิดระบบ ACL(à¹à¸™à¸°à¸™à¸³)';
-$lang['i_superuser']           = 'ซุปเปอร์ยูสเซอร์';
-$lang['i_problems']            = 'ตัวติดตั้งพบปัà¸à¸«à¸²à¸šà¸²à¸‡à¸›à¸£à¸°à¸à¸²à¸£ ตามที่ระบุด้านล่าง คุณไม่สามารถทำต่อได้จนà¸à¸§à¹ˆà¸²à¸ˆà¸°à¹„ด้à¹à¸à¹‰à¹„ขสิ่งเหล่านั้น';
-$lang['i_modified']            = 'ด้วยเหตุผลด้านความปลอดภัย สคริปต์นี้จะทำงานà¸à¸±à¸šà¹€à¸‰à¸žà¸²à¸°à¹‚ดà¸à¸¸à¸§à¸´à¸à¸´à¸—ี่ติดตั้งใหม่หรือยังไม่ได้ดัดà¹à¸›à¸¥à¸‡à¹à¸à¹‰à¹„ข
-คุณควรเลือà¸à¸£à¸°à¸«à¸§à¹ˆà¸²à¸‡à¸„ลี่ไฟล์จาà¸à¹à¸žà¸„เà¸à¸ˆà¸—ี่ได้ดาวน์โหลดมาอีà¸à¸„รั้ง หรือศึà¸à¸©à¸²à¸ˆà¸²à¸à¸„ู่มือ
-<a href="http://dokuwiki.org/install">Dokuwiki installation instructions</a>';
-$lang['i_funcna']              = 'PHP function <code>%s</code> ไม่สามารถใช้งานได้ อาจเป็นเพราะผู้ให้บริà¸à¸²à¸£à¹‚ฮสไม่เปิดให้ใช้งาน';
-$lang['i_phpver']              = 'PHP รุ่นที่คุณà¸à¸³à¸¥à¸±à¸‡à¹ƒà¸Šà¹‰à¸‡à¸²à¸™à¸­à¸¢à¸¹à¹ˆà¸„ือ <code>%s</code> คุณจำเป็นต้องอัพเà¸à¸£à¸” PHP ให้เป็นรุ่น <code>%s</code> หรือสูงà¸à¸§à¹ˆà¸²';
-$lang['i_permfail']            = '<code>%s</code> DokuWiki ไม่สามารถเขียนข้อมูลได้ ต้องตั้งค่าสิทธิ์à¸à¸²à¸£à¸­à¸™à¸¸à¸à¸²à¸•ของไดเรคทอรีนี้เสียà¸à¹ˆà¸­à¸™!';
-$lang['i_confexists']          = '<code>%s</code> ถูà¸à¹ƒà¸Šà¹‰à¸‡à¸²à¸™à¹„ปà¹à¸¥à¹‰à¸§';
-$lang['i_writeerr']            = 'ไม่สามารถสร้าง <code>%s</code>. ตรวจสอบสิทธิ์à¸à¸²à¸£à¸­à¸™à¸¸à¸à¸²à¸•ของไดเรคทอรีหรือไฟล์ à¹à¸¥à¹‰à¸§à¸ªà¸£à¹‰à¸²à¸‡à¹„ฟล์ด้วยตนเอง';
-$lang['i_policy']              = 'นโยบายสิทธิ์เข้าถึง(ACL)ตั้งต้น';
-$lang['i_pol0']                = 'วิà¸à¸´à¹€à¸›à¸´à¸”à¸à¸§à¹‰à¸²à¸‡ (ใครà¸à¹‡ อ่าน, เขียน, อัพโหลดได้)';
-$lang['i_pol1']                = 'วิà¸à¸´à¸ªà¸²à¸˜à¸²à¸£à¸“ะ (ทุà¸à¸„นอ่านได้, เขียน à¹à¸¥à¸° อัพโหลดเฉพาะผู้ใช้ที่ลงทะเบียนà¹à¸¥à¹‰à¸§)';
-$lang['i_pol2']                = 'วิà¸à¸´à¸ à¸²à¸¢à¹ƒà¸™ (อ่าน, เขียน, อัพโหลด สำหรับผู้ใช้ที่ลงทะเบียนà¹à¸¥à¹‰à¸§à¹€à¸—่านั้น)';
-$lang['i_retry']               = 'ลองใหม่';
-$lang['years']                 = '%d ปีà¸à¹ˆà¸­à¸™';
-$lang['months']                = '%d เดือนà¸à¹ˆà¸­à¸™';
-$lang['weeks']                 = '%d สัปดาห์à¸à¹ˆà¸­à¸™';
-$lang['days']                  = '%d วันà¸à¹ˆà¸­à¸™';
-$lang['hours']                 = '%d ชั่วโมงà¸à¹ˆà¸­à¸™';
-$lang['minutes']               = '%d นาทีà¸à¹ˆà¸­à¸™';
-$lang['seconds']               = '%d วินาทีà¸à¹ˆà¸­à¸™';
-$lang['email_signature_text'] = 'จดหมายนี้ถูà¸à¸ªà¸£à¹‰à¸²à¸‡à¸‚ึ้นโดยโดà¸à¸¸à¸§à¸´à¸à¸´à¸—ี่
-@DOKUWIKIURL@';
diff --git a/wiki/inc/lang/th/locked.txt b/wiki/inc/lang/th/locked.txt
deleted file mode 100644
index a198ad7..0000000
--- a/wiki/inc/lang/th/locked.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== เพจถูà¸à¸¥à¹Šà¸­à¸„ ======
-
-เพจนี้à¸à¸³à¸¥à¸±à¸‡à¸–ูà¸à¸¥à¹Šà¸­à¸„จาà¸à¸à¸²à¸£à¹à¸à¹‰à¹„ขโดยผู้ใช้ท่านอื่น คุณต้องรอจนà¸à¸§à¹ˆà¸²à¸œà¸¹à¹‰à¹ƒà¸Šà¹‰à¸„นนี้จะà¹à¸à¹‰à¹„ขเสร็จ หรือà¸à¸²à¸£à¸¥à¹Šà¸­à¸„นั้นหมดเวลา
\ No newline at end of file
diff --git a/wiki/inc/lang/th/login.txt b/wiki/inc/lang/th/login.txt
deleted file mode 100644
index d384c2d..0000000
--- a/wiki/inc/lang/th/login.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== ล็อà¸à¸­à¸´à¸™ ======
-
-คุณยังไม่ได้เข้าสู่ระบบ(ล็อà¸à¸­à¸´à¸™)ในขณะนี้! à¸à¸£à¸­à¸à¸£à¸²à¸¢à¸¥à¸°à¹€à¸­à¸µà¸¢à¸”เพื่อพิสูจน์สิทธิ์ข้างล่างนี้เพื่อล็อà¸à¸­à¸´à¸™ คุณต้องเปิดคุ๊à¸à¸à¸µà¹‰à¹ƒà¸«à¹‰à¸—ำงานà¸à¹ˆà¸­à¸™à¸—ี่จะล็อà¸à¸­à¸´à¸™
-
diff --git a/wiki/inc/lang/th/mailtext.txt b/wiki/inc/lang/th/mailtext.txt
deleted file mode 100644
index 5dec222..0000000
--- a/wiki/inc/lang/th/mailtext.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-เพจในโดà¸à¸¸à¸§à¸´à¸à¸´à¸‚องคุณได้ถูà¸à¹€à¸žà¸´à¹ˆà¸¡ หรือà¹à¸à¹‰à¹„ข นี่คือรายละเอียด:
-
-วันที่: @DATE@
-บราวเซอร์: @BROWSER@
-ที่อยู่ไอพี: @IPADDRESS@
-ชื่อโฮสต์: @HOSTNAME@
-ฉบับเà¸à¹ˆà¸²: @OLDPAGE@
-ฉบับใหม่: @NEWPAGE@
-สรุปà¸à¸²à¸£à¹à¸à¹‰à¹„ข: @SUMMARY@
-ผู้ใช้: @USER@
-
-@DIFF@
diff --git a/wiki/inc/lang/th/newpage.txt b/wiki/inc/lang/th/newpage.txt
deleted file mode 100644
index cab906d..0000000
--- a/wiki/inc/lang/th/newpage.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== ยังไม่มีหัวข้อนี้ ======
-
-คุณได้à¸à¸”ลิ้งค์เข้ามายังหัวข้อที่ยังไม่ได้สร้าง ถ้าคุณได้รับอนุà¸à¸²à¸•ิ คุณอาจจะสร้างมันได้ด้วยà¸à¸²à¸£à¸à¸”ปุ่ม "สร้างเพจนี้"
\ No newline at end of file
diff --git a/wiki/inc/lang/th/norev.txt b/wiki/inc/lang/th/norev.txt
deleted file mode 100644
index 9127a20..0000000
--- a/wiki/inc/lang/th/norev.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== ไม่มีฉบับที่ระบุ ======
-
-ฉบับที่ระบุไม่มีอยู่จริง à¸à¸£à¸¸à¸“าใช้ปุ่ม "ฉบับเà¸à¹ˆà¸²à¹†" เพื่อà¹à¸ªà¸”งรายà¸à¸²à¸£à¸£à¸¸à¹ˆà¸™à¹€à¸à¹ˆà¸²à¹†à¸‚องเอà¸à¸ªà¸²à¸£à¸™à¸µà¹‰à¸´
\ No newline at end of file
diff --git a/wiki/inc/lang/th/password.txt b/wiki/inc/lang/th/password.txt
deleted file mode 100644
index e463e76..0000000
--- a/wiki/inc/lang/th/password.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-สวัสดี@FULLNAME@!
-
-นี่คือข้อมูลผู้ใช้ของคุณสำหรับ @TITLE@ ที่ @DOKUWIKIURL@
-
-ล็อà¸à¸­à¸´à¸™: @LOGIN@
-รหัสผ่าน : @PASSWORD@
diff --git a/wiki/inc/lang/th/preview.txt b/wiki/inc/lang/th/preview.txt
deleted file mode 100644
index caaf8ad..0000000
--- a/wiki/inc/lang/th/preview.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== ดูตัวอย่าง ======
-
-นี่คือหน้าตัวอย่างของข้อความที่คุณà¸à¸£à¸­à¸ จำไว้ว่า: มันยัง **ไม่ได้บันทึà¸** เà¸à¹‡à¸šà¹„ว้!
\ No newline at end of file
diff --git a/wiki/inc/lang/th/pwconfirm.txt b/wiki/inc/lang/th/pwconfirm.txt
deleted file mode 100644
index 1cf42c8..0000000
--- a/wiki/inc/lang/th/pwconfirm.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-เฮ้ @FULLNAME@!
-
-มีบางคนร้องขอรหัสผ่านใหม่สำหรับ @TITLE@ ของคุณ
-เพื่อล็อà¸à¸­à¸´à¸™à¸—ี่ @DOKUWIKIURL@
-
-ถ้าคุรไม่ได้ร้องขอรหัสผ่านใหม่ à¸à¹‡à¹„ม่ต้องสนใจอีเมลนี้
-
-หาà¸à¸•้องà¸à¸²à¸£à¸¢à¸·à¸™à¸¢à¸±à¸™à¸§à¹ˆà¸²à¸™à¸µà¹ˆà¸à¸²à¸£à¸£à¹‰à¸­à¸‡à¸‚อนี้ถูà¸à¸ªà¹ˆà¸‡à¹‚ดยคุณจริงๆ à¸à¸£à¸¸à¸“าใช้ลิงค์ดังต่อไปนี้
-
-@CONFIRM@
diff --git a/wiki/inc/lang/th/read.txt b/wiki/inc/lang/th/read.txt
deleted file mode 100644
index ac4f312..0000000
--- a/wiki/inc/lang/th/read.txt
+++ /dev/null
@@ -1 +0,0 @@
-หน้านี้มีไว้อ่านอย่างเดียว คุณสามารถอ่านข้อความต้นฉบับ ไม่สามารถà¹à¸à¹‰à¹„ขได้ ให้สอบถามผู้ดูà¹à¸¥à¸£à¸°à¸šà¸šà¸–้าคุณคิดว่านี่คือข้อผิดพลาด
\ No newline at end of file
diff --git a/wiki/inc/lang/th/recent.txt b/wiki/inc/lang/th/recent.txt
deleted file mode 100644
index 1655ae8..0000000
--- a/wiki/inc/lang/th/recent.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== à¸à¸²à¸£à¹€à¸›à¸¥à¸µà¹ˆà¸¢à¸™à¹à¸›à¸¥à¸‡à¹€à¸¡à¸·à¹ˆà¸­à¹€à¸£à¹‡à¸§à¹†à¸™à¸µà¹‰ ======
-
-เพจเหล่านี้ถูà¸à¹€à¸›à¸¥à¸µà¹ˆà¸¢à¸™à¹à¸›à¸¥à¸‡à¹€à¸¡à¸·à¹ˆà¸­à¹€à¸£à¹‡à¸§à¹†à¸™à¸µà¹‰
\ No newline at end of file
diff --git a/wiki/inc/lang/th/register.txt b/wiki/inc/lang/th/register.txt
deleted file mode 100644
index ed4a408..0000000
--- a/wiki/inc/lang/th/register.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== ลงทะเบียนเป็นผู้ใช้หน้าใหม่ ======
-
-à¸à¸£à¸­à¸à¸‚้อมูลทั้งหมดด้านล่างเพื่อสร้างบัà¸à¸Šà¸µà¹ƒà¸«à¸¡à¹ˆà¹ƒà¸™à¸§à¸´à¸à¸´à¸™à¸µà¹‰ ให้à¹à¸™à¹ˆà¹ƒà¸ˆà¸§à¹ˆà¸²à¸„ุณให้ **ที่อยู่อีเมลที่ใช้ได้จริง** ถ้าคุณไม่ถูà¸à¸–ามให้à¸à¸£à¸­à¸à¸£à¸«à¸±à¸ªà¸œà¸²à¹ˆà¸™à¸—ี่นี่, รหัสผ่านใหม่จะถูà¸à¸ªà¹ˆà¸‡à¹„ปยังที่อยู่ดังà¸à¸¥à¹ˆà¸²à¸§ ชื่อล็อà¸à¸­à¸´à¸™à¸„วรจะใช้ได้ถูà¸à¸•้องตาม[[doku>pagename|pagename]].
\ No newline at end of file
diff --git a/wiki/inc/lang/th/registermail.txt b/wiki/inc/lang/th/registermail.txt
deleted file mode 100644
index 4cfaddd..0000000
--- a/wiki/inc/lang/th/registermail.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-มีผู้ใช้คนใหม่ได้ลงทะเบียน นี่คือรายละเอียด:
-
-ชื่อผู้ใช้ : @NEWUSER@
-ชื่อเต็ม : @NEWNAME@
-อีเมล : @NEWEMAIL@
-
-วันที่ : @DATE@
-บราวเซอร์ : @BROWSER@
-ที่อยู่ไอพี : @IPADDRESS@
-ชื่อโฮสต์ : @HOSTNAME@
diff --git a/wiki/inc/lang/th/resendpwd.txt b/wiki/inc/lang/th/resendpwd.txt
deleted file mode 100644
index 1935abe..0000000
--- a/wiki/inc/lang/th/resendpwd.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== ส่งรหัสผ่านใหม่ ======
-
-à¸à¸£à¸¸à¸“าà¸à¸£à¸­à¸à¸Šà¸·à¹ˆà¸­à¸œà¸¹à¹‰à¹ƒà¸Šà¹‰à¹ƒà¸™à¸Šà¹ˆà¸­à¸‡à¸”้านล่างเพื่อร้องขอรหัสผ่านใหม่จาà¸à¸šà¸±à¸à¸Šà¸µà¸‚องคุณในวิà¸à¸´à¸™à¸µà¹‰ ลิงค์ยืนยันจะถูà¸à¸ªà¹ˆà¸‡à¹„ปยังที่อยู่อีเมลที่คุณลงทะเบียนไว้
\ No newline at end of file
diff --git a/wiki/inc/lang/th/revisions.txt b/wiki/inc/lang/th/revisions.txt
deleted file mode 100644
index 98a49d7..0000000
--- a/wiki/inc/lang/th/revisions.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== ฉบับเà¸à¹ˆà¸² ======
-
-เหล่านี้เป็นรายà¸à¸²à¸£à¸‰à¸šà¸±à¸šà¹€à¸à¹ˆà¸²à¸‚องเอà¸à¸ªà¸²à¸£à¸›à¸±à¸ˆà¸ˆà¸¸à¸šà¸±à¸™ หาà¸à¸•้องà¸à¸²à¸£à¸„ืนสภาพฉบับเà¸à¹ˆà¸² ให้เลือà¸à¸¡à¸±à¸™à¸ˆà¸²à¸à¸”้านล่าง, คลิ๊ภ"à¹à¸à¹‰à¹„ขเพจนี้" à¹à¸¥à¹‰à¸§à¸ˆà¸¶à¸‡à¸„่อยบันทึà¸à¸¡à¸±à¸™
\ No newline at end of file
diff --git a/wiki/inc/lang/th/searchpage.txt b/wiki/inc/lang/th/searchpage.txt
deleted file mode 100644
index 87153b0..0000000
--- a/wiki/inc/lang/th/searchpage.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== สืบค้น ======
-
-คุณสามารถพบผลลัพธ์à¸à¸²à¸£à¸ªà¸·à¸šà¸„้นของคุณด้านล่าง @CREATEPAGEINFO@
-
diff --git a/wiki/inc/lang/th/showrev.txt b/wiki/inc/lang/th/showrev.txt
deleted file mode 100644
index f93869f..0000000
--- a/wiki/inc/lang/th/showrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**นี่คือเอà¸à¸ªà¸²à¸£à¸£à¸¸à¹ˆà¸™/ฉบับเà¸à¹ˆà¸²**
-----
\ No newline at end of file
diff --git a/wiki/inc/lang/th/updateprofile.txt b/wiki/inc/lang/th/updateprofile.txt
deleted file mode 100644
index 3e0a8df..0000000
--- a/wiki/inc/lang/th/updateprofile.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== ปรับปรุงข้อมูลส่วนตัวของบัà¸à¸Šà¸µà¸„ุณ ======
-
-คุณเพียงต้องà¸à¸²à¸£à¸à¸£à¸­à¸à¸Šà¹ˆà¸­à¸‡à¸—ี่ต้องà¸à¸²à¸£à¹à¸à¹‰à¹„ขเหล่านี้ให้ครบ à¹à¸•่ไม่สามารถเปลี่ยนชื่อผู้ใช้ได้
\ No newline at end of file
diff --git a/wiki/inc/lang/th/uploadmail.txt b/wiki/inc/lang/th/uploadmail.txt
deleted file mode 100644
index 9d042b9..0000000
--- a/wiki/inc/lang/th/uploadmail.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-มีไฟล์ได้ถูà¸à¸­à¸±à¸žà¹‚หลดเข้าไปยังโดà¸à¸¸à¸§à¸´à¸à¸´à¸‚องคุณ นี่คือรายละเอียด:
-
-ไฟล์: @MEDIA@
-วันที่: @DATE@
-เบราเซอร์: @BROWSER@
-ที่อยู่ไอพี: @IPADDRESS@
-ชื่อโฮสต์: @HOSTNAME@
-ขนาด: @SIZE@
-MIME Type : @MIME@
-ผู้ใช้: @USER@
diff --git a/wiki/inc/lang/tr/admin.txt b/wiki/inc/lang/tr/admin.txt
deleted file mode 100644
index 2292b6e..0000000
--- a/wiki/inc/lang/tr/admin.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Yönetim ======
-
-Aşağıda DokuWiki için yapılabilecek yönetim işleri vardır.
diff --git a/wiki/inc/lang/tr/adminplugins.txt b/wiki/inc/lang/tr/adminplugins.txt
deleted file mode 100644
index 7c8de9d..0000000
--- a/wiki/inc/lang/tr/adminplugins.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== İlave Eklentiler =====
\ No newline at end of file
diff --git a/wiki/inc/lang/tr/backlinks.txt b/wiki/inc/lang/tr/backlinks.txt
deleted file mode 100644
index e219a60..0000000
--- a/wiki/inc/lang/tr/backlinks.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Geri linkler ======
-
-Bu sayfaya bağlantı veren sayfaların listesi aşağıdadır.
-
diff --git a/wiki/inc/lang/tr/conflict.txt b/wiki/inc/lang/tr/conflict.txt
deleted file mode 100644
index 5049479..0000000
--- a/wiki/inc/lang/tr/conflict.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-====== Yeni versiyon mevcut ======
-
-Değiştirdiğiniz dökümanın daha yeni bir versiyonu mevcut. Bu durum, siz dökümanı değiştirirken başka bir kullanıcının da aynı dökümanı değiştirmesi halinde olur.
-
-Aşağıda gösterilen farkları dikkatlice inceleyin, daha sonra hangi versiyonun korunacağına karar verin. Eğer ''Kaydet''i seçerseniz, sizin sürümünüz kaydedilir. Mevcut sürümü korumak için ''İptal''e tıklayın.
-
diff --git a/wiki/inc/lang/tr/denied.txt b/wiki/inc/lang/tr/denied.txt
deleted file mode 100644
index 2acfd7a..0000000
--- a/wiki/inc/lang/tr/denied.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Yetki Reddedildi ======
-
-Üzgünüz, devam etmek için yetkiniz yok.
-
diff --git a/wiki/inc/lang/tr/diff.txt b/wiki/inc/lang/tr/diff.txt
deleted file mode 100644
index 72baa67..0000000
--- a/wiki/inc/lang/tr/diff.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Farklar ======
-
-Bu sayfanın seçili sürümü ile mevcut sürümü arasındaki farkları gösterir.
-
diff --git a/wiki/inc/lang/tr/draft.txt b/wiki/inc/lang/tr/draft.txt
deleted file mode 100644
index b1a8881..0000000
--- a/wiki/inc/lang/tr/draft.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== Taslak Dosyası Bulundu ======
-
-Bu sayfadaki en son oturumunuz düzgün olarak tamamlanmamış. DokuWiki otomatik olarak bir taslak kaydetmiş olduğu için çalışmanıza devam edebilirsiniz.  Aşağıda en son oturumunuzda kaydedilmiş olan taslağı görebilirsiniz.
-
-Bu taslağı //geri getirebilir//, //silebilir// veya düzenleme sürecinden //vazgeçebilirsiniz//.
\ No newline at end of file
diff --git a/wiki/inc/lang/tr/edit.txt b/wiki/inc/lang/tr/edit.txt
deleted file mode 100644
index 4f84c4e..0000000
--- a/wiki/inc/lang/tr/edit.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-Sayfayı değiştirin ve ''Kaydete'' basın. Wiki sözdizimi için [[wiki:syntax]]'a bakınız. Lütfen sayfayı sadece eğer **geliştirebiliyorsanız** değiştirin. Eğer testler yapmak istiyorsanız, [[playground:playground|playground]] adresini kullanın.
-
diff --git a/wiki/inc/lang/tr/editrev.txt b/wiki/inc/lang/tr/editrev.txt
deleted file mode 100644
index 9c70fbe..0000000
--- a/wiki/inc/lang/tr/editrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**Sayfanın eski bir sürümünü yüklediniz!** Eğer kaydederseniz, bu veriyle yeni bir sürüm oluşturacaksınız.
-----
diff --git a/wiki/inc/lang/tr/index.txt b/wiki/inc/lang/tr/index.txt
deleted file mode 100644
index e361e87..0000000
--- a/wiki/inc/lang/tr/index.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== İndeks ======
-
-Bu mevcut tüm sayfaların [[doku>namespaces|isim alanlarına]] göre sıralı bir indeksidir.
-
diff --git a/wiki/inc/lang/tr/install.html b/wiki/inc/lang/tr/install.html
deleted file mode 100644
index de82d72..0000000
--- a/wiki/inc/lang/tr/install.html
+++ /dev/null
@@ -1,8 +0,0 @@
-<p>Bu sayfa <a href="http://dokuwiki.org">Dokuwiki</a> kurmanıza yardımcı olmaktadır. Kurulum hakkında bilgi sahibi olmak için <a href="http://dokuwiki.org/installer">bu sayfayı</a> ziyaret edebilirsiniz.</p>
-
-<p>DokuWiki wiki sayfalarını ve wiki sayfalarına ilişkin verileri (resimler, arama indeksi, geçmiş sürümler) dosyalarda tutar. DokuWikiyi sorunsuz olarak kullanmak için bu dosyaların bulunduğu dizinlere <strong>mutlaka</strong> yazma izniniz olması gereklidir.  Bu kurulum betiği yazma izinlerini ayarlayamamaktadır. İzinleri shell, FTP veya kontrol paneliniz (CPanel, Plesk vs.) aracılığı ile düzenleyebilirsiniz.</p>
-
-<p>Kurulum betiği <abbr title="access control list">ACL</abbr>'yi otomatik olarak ayarlamaktadır.  Böylece yönetici izinleri belirlenip, DokuWiki kullanımı kolaylaştırılmaktadır.</p>
-
-<p>Deneyimli kullanıcılar <a href="http://dokuwiki.org/install">bu sayfayı </a>
- edebilir ve <a href="http://dokuwiki.org/config">bu sayfa yardımıyla</a>  yapılandırma hakkında ekstra bilgi sahibi olabilir.</p>
\ No newline at end of file
diff --git a/wiki/inc/lang/tr/jquery.ui.datepicker.js b/wiki/inc/lang/tr/jquery.ui.datepicker.js
deleted file mode 100644
index 8328e21..0000000
--- a/wiki/inc/lang/tr/jquery.ui.datepicker.js
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Turkish initialisation for the jQuery UI date picker plugin. */
-/* Written by Izzet Emre Erkan (kara@karalamalar.net). */
-( function( factory ) {
-	if ( typeof define === "function" && define.amd ) {
-
-		// AMD. Register as an anonymous module.
-		define( [ "../widgets/datepicker" ], factory );
-	} else {
-
-		// Browser globals
-		factory( jQuery.datepicker );
-	}
-}( function( datepicker ) {
-
-datepicker.regional.tr = {
-	closeText: "kapat",
-	prevText: "&#x3C;geri",
-	nextText: "ileri&#x3e",
-	currentText: "bugün",
-	monthNames: [ "Ocak","Şubat","Mart","Nisan","Mayıs","Haziran",
-	"Temmuz","Ağustos","Eylül","Ekim","Kasım","Aralık" ],
-	monthNamesShort: [ "Oca","Åžub","Mar","Nis","May","Haz",
-	"Tem","AÄŸu","Eyl","Eki","Kas","Ara" ],
-	dayNames: [ "Pazar","Pazartesi","Salı","Çarşamba","Perşembe","Cuma","Cumartesi" ],
-	dayNamesShort: [ "Pz","Pt","Sa","Ça","Pe","Cu","Ct" ],
-	dayNamesMin: [ "Pz","Pt","Sa","Ça","Pe","Cu","Ct" ],
-	weekHeader: "Hf",
-	dateFormat: "dd.mm.yy",
-	firstDay: 1,
-	isRTL: false,
-	showMonthAfterYear: false,
-	yearSuffix: "" };
-datepicker.setDefaults( datepicker.regional.tr );
-
-return datepicker.regional.tr;
-
-} ) );
diff --git a/wiki/inc/lang/tr/lang.php b/wiki/inc/lang/tr/lang.php
deleted file mode 100644
index 4147a13..0000000
--- a/wiki/inc/lang/tr/lang.php
+++ /dev/null
@@ -1,342 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Selim FarsakoÄŸlu <farsakogluselim@yahoo.de>
- * @author Aydın Coşkuner <aydinweb@gmail.com>
- * @author Cihan Kahveci <kahvecicihan@gmail.com>
- * @author Yavuz Selim <yavuzselim@gmail.com>
- * @author Caleb Maclennan <caleb@alerque.com>
- * @author farukerdemoncel@gmail.com
- * @author Mustafa Aslan <maslan@hotmail.com>
- * @author huseyin can <huseyincan73@gmail.com>
- * @author ilker rifat kapaç <irifat@gmail.com>
- * @author İlker R. Kapaç <irifat@gmail.com>
- * @author Mete Cuma <mcumax@gmail.com>
- */
-$lang['encoding']              = 'utf-8';
-$lang['direction']             = 'ltr';
-$lang['doublequoteopening']    = '“';
-$lang['doublequoteclosing']    = 'â€';
-$lang['singlequoteopening']    = '‘';
-$lang['singlequoteclosing']    = '’';
-$lang['apostrophe']            = '’';
-$lang['btn_edit']              = 'Sayfayı düzenle';
-$lang['btn_source']            = 'Kaynağı göster';
-$lang['btn_show']              = 'Sayfayı göster';
-$lang['btn_create']            = 'Bu sayfayı oluştur';
-$lang['btn_search']            = 'Ara';
-$lang['btn_save']              = 'Kaydet';
-$lang['btn_preview']           = 'Önizleme';
-$lang['btn_top']               = 'Başa dön';
-$lang['btn_newer']             = '<< daha yeniler';
-$lang['btn_older']             = 'daha eskiler >>';
-$lang['btn_revs']              = 'Eski sürümler';
-$lang['btn_recent']            = 'En son deÄŸiÅŸiklikler';
-$lang['btn_upload']            = 'Yükle';
-$lang['btn_cancel']            = 'İptal';
-$lang['btn_index']             = 'İndeks';
-$lang['btn_secedit']           = 'Düzenle';
-$lang['btn_login']             = 'GiriÅŸ yap';
-$lang['btn_logout']            = 'Çıkış yap';
-$lang['btn_admin']             = 'Yönetici';
-$lang['btn_update']            = 'Güncelle';
-$lang['btn_delete']            = 'Sil';
-$lang['btn_back']              = 'Geri';
-$lang['btn_backlink']          = 'Geri linkler';
-$lang['btn_subscribe']         = 'Sayfa DeÄŸiÅŸikliklerini Bildir';
-$lang['btn_profile']           = 'Kullanıcı Bilgilerini Güncelle';
-$lang['btn_reset']             = 'Sıfırla';
-$lang['btn_resendpwd']         = 'Yeni ÅŸifre belirle';
-$lang['btn_draft']             = 'Taslağı düzenle';
-$lang['btn_recover']           = 'Taslağı geri yükle';
-$lang['btn_draftdel']          = 'Taslağı sil';
-$lang['btn_revert']            = 'Geri Yükle';
-$lang['btn_register']          = 'Kayıt ol';
-$lang['btn_apply']             = 'Uygula';
-$lang['btn_media']             = 'Çokluortam Yöneticisi';
-$lang['btn_deleteuser']        = 'Hesabımı Sil';
-$lang['btn_img_backto']        = 'Şuna dön: %s';
-$lang['btn_mediaManager']      = 'Ortam oynatıcısında göster';
-$lang['loggedinas']            = 'GiriÅŸ ismi:';
-$lang['user']                  = 'Kullanıcı ismi';
-$lang['pass']                  = 'Parola';
-$lang['newpass']               = 'Yeni Parola';
-$lang['oldpass']               = 'Kullanılan parolayı doğrula';
-$lang['passchk']               = 'Bir kez daha girin';
-$lang['remember']              = 'Beni hatırla';
-$lang['fullname']              = 'Tam isim';
-$lang['email']                 = 'E-posta';
-$lang['profile']               = 'Kullanıcı Bilgileri';
-$lang['badlogin']              = 'Üzgünüz, Kullanıcı adı veya şifre yanlış oldu.';
-$lang['badpassconfirm']        = 'Üzgünüz, parolanız yanlış';
-$lang['minoredit']             = 'Küçük Değişiklikler';
-$lang['draftdate']             = 'Taslak ÅŸu saatte otomatik kaydedildi:';
-$lang['nosecedit']             = 'Sayfa yakın zamanda değiştirilmiştir, bölüm bilgisi eski kalmıştır. Bunun için bölüm yerine tüm sayfa yüklenmiştir.';
-$lang['regmissing']            = 'Üzgünüz, tüm alanları doldurmalısınız.';
-$lang['reguexists']            = 'Üzgünüz, bu isime sahip bir kullanıcı zaten mevcut.';
-$lang['regsuccess']            = 'Kullanıcı oluşturuldu ve şifre e-posta adresine gönderildi.';
-$lang['regsuccess2']           = 'Kullanıcı oluşturuldu.';
-$lang['regfail']               = 'Kullanıcı oluşturulamadı.';
-$lang['regmailfail']           = 'Şifrenizi e-posta ile gönderirken bir hata oluşmuş gibi görünüyor. Lütfen yönetici ile temasa geçiniz!';
-$lang['regbadmail']            = 'Verilen e-posta adresi geçersiz gibi görünüyor - bunun bir hata olduğunu düşünüyorsanız yönetici ile temasa geçiniz.';
-$lang['regbadpass']            = 'Girilen parolalar aynı değil. Lütfen tekrar deneyiniz.';
-$lang['regpwmail']             = 'DokuWiki parolanız';
-$lang['reghere']               = 'Daha hesabınız yok mu? Hemen bir tane açtırın!';
-$lang['profna']                = 'Bu wiki kullanıcı bilgilerini değiştirmeyi desteklememektedir';
-$lang['profnochange']          = 'Değişiklik yok, birşey yapılmadı.';
-$lang['profnoempty']           = 'BoÅŸ isim veya e-posta adresine izin verilmiyor.';
-$lang['profchanged']           = 'Kullanıcı bilgileri başarıyla değiştirildi.';
-$lang['profnodelete']          = 'Bu wiki kullanıcı silmeyi desteklemiyor';
-$lang['profdeleteuser']        = 'Hesabı Sil';
-$lang['profdeleted']           = 'Bu wiki\'den hesabınız silindi';
-$lang['profconfdelete']        = 'Bu wiki\'den hesabımı silmek istiyorum. <br/>Bu işlem geri alınamaz';
-$lang['profconfdeletemissing'] = 'Onay kutusu iÅŸaretlenmedi';
-$lang['proffail']              = 'Kullanıcı bilgileri güncellenmedi.';
-$lang['pwdforget']             = 'Parolanızı mı unuttunuz? Yeni bir parola alın';
-$lang['resendna']              = 'Bu wiki parolayı tekrar göndermeyi desteklememektedir.';
-$lang['resendpwd']             = 'İçin yeni şifre belirle';
-$lang['resendpwdmissing']      = 'Üzgünüz, tüm alanları doldurmalısınız.';
-$lang['resendpwdnouser']       = 'Üzgünüz,  veritabanımızda bu kullanıcıyı bulamadık.';
-$lang['resendpwdbadauth']      = 'Üzgünüz, bu doğrulama kodu doğru değil. Doğrulama linkini tam olarak kullandığınıza emin olun.';
-$lang['resendpwdconfirm']      = 'Doğrulama linki e-posta adresinize gönderildi.';
-$lang['resendpwdsuccess']      = 'Yeni parolanız e-posta adresinize gönderildi.';
-$lang['license']               = 'Aksi belirtilmediği halde, bu wikinin içeriğinin telif hakları şu lisans ile korunmaktadır:';
-$lang['licenseok']             = 'Not: Bu sayfayı değiştirerek yazınızın şu lisans ile yayınlanmasını kabul etmiş olacaksınız:';
-$lang['searchmedia']           = 'Dosya Adı Ara:';
-$lang['searchmedia_in']        = '%s içinde ara';
-$lang['txt_upload']            = 'Yüklenecek dosyayı seç:';
-$lang['txt_filename']          = 'Dosya adı (zorunlu değil):';
-$lang['txt_overwrt']           = 'Mevcut dosyanın üstüne yaz';
-$lang['maxuploadsize']         = 'Yükleme dosya başına en fazla %s';
-$lang['lockedby']              = 'Şu an şunun tarafından kilitli:';
-$lang['lockexpire']            = 'Kilitin açılma tarihi:';
-$lang['js']['willexpire']      = 'Bu sayfayı değiştirme kilidinin süresi yaklaşık bir dakika içinde geçecek.\nÇakışmaları önlemek için önizleme tuşunu kullanarak kilit sayacını sıfırla.';
-$lang['js']['notsavedyet']     = 'KaydedilmemiÅŸ deÄŸiÅŸiklikler kaybolacak.
-Devam etmek istiyor musunuz?';
-$lang['js']['searchmedia']     = 'Dosyalar için Ara';
-$lang['js']['keepopen']        = 'Seçim yapıldığında bu pencereyi açık tut';
-$lang['js']['hidedetails']     = 'Ayrıntıları gizle';
-$lang['js']['mediatitle']      = 'Bağlantı Ayarları';
-$lang['js']['mediadisplay']    = 'Bağlantı Tipi';
-$lang['js']['mediaalign']      = 'Hizalama';
-$lang['js']['mediasize']       = 'Resim büyüklüğü';
-$lang['js']['mediatarget']     = 'Bağlantı hedefi';
-$lang['js']['mediaclose']      = 'Kapat';
-$lang['js']['mediainsert']     = 'Ekle';
-$lang['js']['mediadisplayimg'] = 'Resmi görüntüle';
-$lang['js']['mediadisplaylnk'] = 'Sadece bağlantıyı görüntüle ';
-$lang['js']['mediasmall']      = 'Küçük versiyon';
-$lang['js']['mediamedium']     = 'Orta versiyon';
-$lang['js']['medialarge']      = 'Büyük versiyon';
-$lang['js']['mediaoriginal']   = 'Orjinal versiyon';
-$lang['js']['medialnk']        = 'Detay sayfasına bağlantı';
-$lang['js']['mediadirect']     = 'Orjinal sayfaya bağlantı';
-$lang['js']['medianolnk']      = 'Bağlantı yok';
-$lang['js']['medianolink']     = 'Resme bağlantı verme';
-$lang['js']['medialeft']       = 'Resmi sola hizala';
-$lang['js']['mediaright']      = 'Resmi saÄŸa hizala';
-$lang['js']['mediacenter']     = 'Resmi ortaya hizala';
-$lang['js']['medianoalign']    = 'Hizalama kullanma';
-$lang['js']['nosmblinks']      = 'Windows paylaşımı sadece Microsoft Internet Explorer ile çalışmaktadır. Yine de hala bağlantıyı kopyalayıp yapıştırarak kullanabilirsiniz. ';
-$lang['js']['linkwiz']         = 'Bağlantı sihirbazı';
-$lang['js']['linkto']          = 'Bağlantı:';
-$lang['js']['del_confirm']     = 'Bu giriÅŸi sil?';
-$lang['js']['restore_confirm'] = 'Bu sürüme geri dönmek istediğinizden emin misiniz?';
-$lang['js']['media_diff']      = 'Farkları gör:';
-$lang['js']['media_diff_both'] = 'Yan yana';
-$lang['js']['media_select']    = 'Dosyalar seç...';
-$lang['js']['media_upload_btn'] = 'Yükle';
-$lang['js']['media_done_btn']  = 'Bitti';
-$lang['js']['media_drop']      = 'Yüklemek istediğiniz dosyaları buraya bırakın';
-$lang['js']['media_cancel']    = 'kaldır';
-$lang['js']['media_overwrt']   = 'Var olan dosyaların üzerine yaz';
-$lang['rssfailed']             = 'Bu beslemeyi çekerken hata oluştu: ';
-$lang['nothingfound']          = 'Hiçbir şey yok.';
-$lang['mediaselect']           = 'Çokluortam dosyası seçimi';
-$lang['uploadsucc']            = 'Yükleme tamam';
-$lang['uploadfail']            = 'Yükleme başarısız. Yetki hatası olabilir!';
-$lang['uploadwrong']           = 'Yükleme engellendi. Bu dosya uzantısına izin verilmiyor!';
-$lang['uploadexist']           = 'Dosya zaten var. Hiçbir şey yapılmadı.';
-$lang['uploadbadcontent']      = 'Yüklenen içerik %s uzantısı ile uyuşmuyor.';
-$lang['uploadspam']            = 'Yükleme işlemi spam karalistesi tarafından engellendi.';
-$lang['uploadxss']             = 'Yükleme işlemi muhtemel kötü içerik sebebiyle engellendi.';
-$lang['uploadsize']            = 'Yüklenmek istenen dosya boyutu çok büyük (en fazla %s)';
-$lang['deletesucc']            = '"%s" dosyası silindi.';
-$lang['deletefail']            = '"%s" silinemedi - yetkileri kontrol et.';
-$lang['mediainuse']            = '"%s" dosyası silinmedi, hala kullanımda.';
-$lang['namespaces']            = 'Namespaces';
-$lang['mediafiles']            = 'Şuradaki kullanıma hazır dosyalar:';
-$lang['accessdenied']          = 'Bu sayfayı görüntüleme yetkiniz bulunmamaktadır';
-$lang['mediausage']            = 'Åžu ';
-$lang['mediaview']             = 'Özgün dosyayı göster';
-$lang['mediaroot']             = 'Kök dizini';
-$lang['mediaupload']           = 'Dosya bu namespace\'e yüklenir. Alt namespace oluşturmak için "Dosya adı" kısmınının başına alt namespace adını ekleyip ardından iki nokta koyun.';
-$lang['mediaextchange']        = 'Dosya uzantısı .%s\'den .%s\'e çevrildi!';
-$lang['reference']             = 'Şunun için referanslar:';
-$lang['ref_inuse']             = 'Dosya silinemiyor, çünkü şu sayfalar tarafından hala kullanılmakta:';
-$lang['ref_hidden']            = 'Bazı referanslar okuma yetkiniz olmayan sayfalarda';
-$lang['hits']                  = 'tane bulundu';
-$lang['quickhits']             = 'Uyan sayfalar';
-$lang['toc']                   = 'İçindekiler';
-$lang['current']               = 'mevcut';
-$lang['yours']                 = 'Senin Sürümün';
-$lang['diff']                  = 'Kullanılan sürüm ile farkları göster';
-$lang['diff2']                 = 'Seçili sürümler arasındaki farkı göster';
-$lang['difflink']              = 'Karşılaştırma görünümüne bağlantı';
-$lang['diff_type']             = 'farklı görünüş';
-$lang['diff_inline']           = 'Satır içi';
-$lang['diff_side']             = 'Yan yana';
-$lang['diffprevrev']           = 'Önceki sürüm';
-$lang['diffnextrev']           = 'Sonraki sürüm';
-$lang['difflastrev']           = 'Son sürüm';
-$lang['diffbothprevrev']       = 'İki taraf da önceki sürüm';
-$lang['diffbothnextrev']       = 'İki taraf da sonraki sürüm';
-$lang['line']                  = 'Satır';
-$lang['breadcrumb']            = 'İz:';
-$lang['youarehere']            = 'Buradasınız:';
-$lang['lastmod']               = 'Son deÄŸiÅŸtirilme:';
-$lang['by']                    = 'DeÄŸiÅŸtiren:';
-$lang['deleted']               = 'silindi';
-$lang['created']               = 'oluÅŸturuldu';
-$lang['restored']              = 'eski sürüme dönüldü (%s)';
-$lang['external_edit']         = 'Dışarıdan düzenle';
-$lang['summary']               = 'Özeti düzenle';
-$lang['noflash']               = 'Bu içeriği göstermek için <a href="http://www.adobe.com/products/flashplayer/">Adobe Flash Eklentisi</a> gerekmektedir.';
-$lang['download']              = 'Parçacığı indir';
-$lang['tools']                 = 'Alet';
-$lang['user_tools']            = 'Kullanıcı Aletleri';
-$lang['site_tools']            = 'Site Aletleri';
-$lang['page_tools']            = 'Sayfa Aletleri';
-$lang['skip_to_content']       = 'Bağlanmak için kaydır';
-$lang['sidebar']               = 'kaydırma çubuğu';
-$lang['mail_newpage']          = 'sayfa eklenme:';
-$lang['mail_changed']          = 'sayfa deÄŸiÅŸtirilme:';
-$lang['mail_subscribe_list']   = 'isimalanındaki değişmiş sayfalar: ';
-$lang['mail_new_user']         = 'yeni kullanıcı';
-$lang['mail_upload']           = 'dosya yüklendi:';
-$lang['changes_type']          = 'görünüşü değiştir';
-$lang['pages_changes']         = 'Sayfalar';
-$lang['media_changes']         = 'Çokluortam dosyaları';
-$lang['both_changes']          = 'Sayfalar ve çoklu ortam dosyaları';
-$lang['qb_bold']               = 'Kalın Yazı';
-$lang['qb_italic']             = 'Eğik Yazı';
-$lang['qb_underl']             = 'Altı Çizgili Yazı';
-$lang['qb_code']               = 'Kod Haline Getir';
-$lang['qb_strike']             = 'Ortası Çizilmiş Yazı';
-$lang['qb_h1']                 = '1. Seviye Başlık';
-$lang['qb_h2']                 = '2. Seviye Başlık';
-$lang['qb_h3']                 = '3. Seviye Başlık';
-$lang['qb_h4']                 = '4. Seviye Başlık';
-$lang['qb_h5']                 = '5. Seviye Başlık';
-$lang['qb_h']                  = 'Başlık';
-$lang['qb_hs']                 = 'Başlığı seç';
-$lang['qb_hplus']              = 'Daha yüksek başlık';
-$lang['qb_hminus']             = 'Daha Düşük Başlık';
-$lang['qb_hequal']             = 'Aynı Seviye Başlık';
-$lang['qb_link']               = 'İç Bağlantı';
-$lang['qb_extlink']            = 'Dış Bağlantı';
-$lang['qb_hr']                 = 'Yatay Çizgi';
-$lang['qb_ol']                 = 'Sıralı liste';
-$lang['qb_ul']                 = 'Sırasız liste';
-$lang['qb_media']              = 'Resim ve baÅŸka dosyalar ekle';
-$lang['qb_sig']                = 'İmza Ekle';
-$lang['qb_smileys']            = 'Gülen Yüzler';
-$lang['qb_chars']              = 'Özel Karakterler';
-$lang['upperns']               = 'ebeveyn isimalanına atla';
-$lang['metaedit']              = 'Metaverileri DeÄŸiÅŸtir';
-$lang['metasaveerr']           = 'Metaveri yazma başarısız ';
-$lang['metasaveok']            = 'Metaveri kaydedildi';
-$lang['img_title']             = 'Başlık:';
-$lang['img_caption']           = 'Serlevha:';
-$lang['img_date']              = 'Tarih:';
-$lang['img_fname']             = 'Dosya Adı:';
-$lang['img_fsize']             = 'Boyut:';
-$lang['img_artist']            = 'Fotoğrafçı:';
-$lang['img_copyr']             = 'Telif Hakkı:';
-$lang['img_format']            = 'Biçim:';
-$lang['img_camera']            = 'Fotoğraf Makinası:';
-$lang['img_keywords']          = 'Anahtar Sözcükler:';
-$lang['img_width']             = 'GeniÅŸlik:';
-$lang['img_height']            = 'Yükseklik:';
-$lang['subscr_subscribe_success'] = '%s,  %s için abonelik listesine eklendi.';
-$lang['subscr_subscribe_error'] = '%s, %s için abonelik listesine eklenirken hata ile karşılaşıldı.';
-$lang['subscr_subscribe_noaddress'] = 'Oturum bilginiz ile ilişkilendirilmiş bir adres olmadığı için abonelik listesine dahil olamazsınız.';
-$lang['subscr_unsubscribe_success'] = '%s,  %s için abonelik listesinden çıkarıldı.';
-$lang['subscr_unsubscribe_error'] = '%s, %s için abonelik listesinden çıkarılırken hata ile karşılaşıldı.';
-$lang['subscr_already_subscribed'] = '%s zaten %s listesine abone.';
-$lang['subscr_not_subscribed'] = '%s, %s listesine abone deÄŸil.';
-$lang['subscr_m_not_subscribed'] = 'Bu sayfa veya isim alanına (namespace) abone değilsiniz.  ';
-$lang['subscr_m_new_header']   = 'Üyelik ekle';
-$lang['subscr_m_current_header'] = 'Üyeliğini onayla';
-$lang['subscr_m_unsubscribe']  = 'Üyelik iptali';
-$lang['subscr_m_subscribe']    = 'Kayıt ol';
-$lang['subscr_m_receive']      = 'Al';
-$lang['subscr_style_every']    = 'her değişiklikte e-posta gönder';
-$lang['subscr_style_list']     = 'Son e-postadan bu yana değiştirilen sayfaların listesi (her %.2f gün)';
-$lang['authtempfail']          = 'Kullanıcı doğrulama geçici olarak yapılamıyor. Eğer bu durum devam ederse lütfen Wiki yöneticine haber veriniz.';
-$lang['i_chooselang']          = 'Dili seçiniz';
-$lang['i_installer']           = 'Dokuwiki Kurulum Sihirbazı';
-$lang['i_wikiname']            = 'Wiki Adı';
-$lang['i_enableacl']           = 'ACL\'yi etkinleÅŸtir (tavsiye edilir)';
-$lang['i_superuser']           = 'Ana Kullanıcı';
-$lang['i_problems']            = 'Kurulum sihirbazı aşağıda gösterilen sorunları buldu. Bunları düzeltmeden devam etmeniz mümkün değil.';
-$lang['i_modified']            = 'Güzenlik sebebiyle bu script sadece yeni ve değiştirilmemiş bir Dokuwiki kurulumunda çalışır. Ya indirdiğiniz paketi yeniden açmalı ya da <a href="http://dokuwiki.org/install"> adresindeki Dokuwiki kurulum kılavuzu</a>na bakmalısınız.';
-$lang['i_funcna']              = '<code>%s</code> PHP fonksiyonu bulunmamaktadır. Barındırma(Hosting) hizmetinde bu özellik kapatılmış olabilir.';
-$lang['i_phpver']              = '<code>%s</code> PHP sürümü, gereken <code>%s</code>  sürümünden daha düşük. PHP kurulumunu yükseltmeniz gerekmektedir.';
-$lang['i_mbfuncoverload']      = 'DokuWiki\'nin çalışması için php.ini dosyasında mbstring.func_overload seçeneği kapalı (değeri 0) olarak ayarlanmalıdır.';
-$lang['i_permfail']            = '<code>%s</code> Dokuwiki tarafından yazılabilir değil. İzin ayarlarını bu klasör için düzeltmeniz gerekmektedir!';
-$lang['i_confexists']          = '<code>%s</code> zaten var';
-$lang['i_writeerr']            = '<code>%s</code> oluşturulamadı. Dosya/Klasör izin ayarlarını gözden geçirip dosyayı elle oluşturmalısınız.';
-$lang['i_badhash']             = 'dokuwiki.php tanınamadı ya da değiştirilmiş (hash=<code>%s</code>)';
-$lang['i_badval']              = '<code>%s</code> - Yanlış veya boş değer';
-$lang['i_success']             = 'Kurulum başarıyla tamamlandı. Şimdi install.php dosyasını silebilirsiniz. <a href="doku.php?id=wiki:welcome">Yeni DokuWikiniz</a>i kullanabilirsiniz.';
-$lang['i_failure']             = 'Ayar dosyalarını yazarken bazı hatalar oluştu. <a href="doku.php?id=wiki:welcome">Yeni DokuWikiniz</a>i kullanmadan önce bu hatalarınızı elle düzeltmeniz gerekebilir.';
-$lang['i_policy']              = 'İlk ACL ayarı';
-$lang['i_pol0']                = 'Tamamen Açık Wiki (herkes okuyabilir, yazabilir ve dosya yükleyebilir)';
-$lang['i_pol1']                = 'Açık Wiki (herkes okuyabilir, ancak  sadece üye olanlar yazabilir ve dosya yükleyebilir)';
-$lang['i_pol2']                = 'Kapalı Wiki (sadece üye olanlar okuyabilir, yazabilir ve dosya yükleyebilir)';
-$lang['i_allowreg']            = 'Kullanıcıların kendi kendilerine üye olmalarına için ver';
-$lang['i_retry']               = 'Tekrar Dene';
-$lang['i_license']             = 'Lütfen içeriği hangi lisans altında yayınlamak istediğniizi belirtin:';
-$lang['i_license_none']        = 'Hiç bir lisans bilgisi gösterme';
-$lang['i_pop_field']           = 'Lütfen DokuWiki deneyimini geliştirmemizde, bize yardım edin:';
-$lang['i_pop_label']           = 'DokuWiki geliştiricilerine ayda bir, anonim kullanım bilgisini gönder';
-$lang['recent_global']         = '<b>%s</b> namespace\'i içerisinde yapılan değişiklikleri görüntülemektesiniz. Wiki\'deki tüm değişiklikleri de <a href="%s">bu adresten</a> görebilirsiniz. ';
-$lang['years']                 = '%d yıl önce';
-$lang['months']                = '%d ay önce';
-$lang['weeks']                 = '%d hafta önce';
-$lang['days']                  = '%d gün önce';
-$lang['hours']                 = '%d saat önce';
-$lang['minutes']               = '%d dakika önce';
-$lang['seconds']               = '%d saniye önce';
-$lang['wordblock']             = 'Değişikliğiniz kaydedilmedi çünkü istenmeyen mesaj içeriyor (spam).';
-$lang['media_uploadtab']       = 'Karşıya yükle';
-$lang['media_searchtab']       = 'Ara';
-$lang['media_file']            = 'Dosya';
-$lang['media_viewtab']         = 'Görünüm';
-$lang['media_edittab']         = 'Düzenle';
-$lang['media_historytab']      = 'Geçmiş';
-$lang['media_list_thumbs']     = 'Küçük resimler';
-$lang['media_list_rows']       = 'Satırlar';
-$lang['media_sort_name']       = 'İsim';
-$lang['media_sort_date']       = 'Tarih';
-$lang['media_namespaces']      = 'İsimalanı seçin';
-$lang['media_files']           = '%s deki dosyalar';
-$lang['media_upload']          = '%s dizinine yükle';
-$lang['media_search']          = '%s dizininde ara';
-$lang['media_view']            = '%s';
-$lang['media_edit']            = 'Düzenle %s';
-$lang['media_history']         = 'Geçmiş %s';
-$lang['media_meta_edited']     = 'üstveri düzenlendi';
-$lang['media_perm_read']       = 'Özür dileriz, dosyaları okumak için yeterli haklara sahip değilsiniz.';
-$lang['media_perm_upload']     = 'Üzgünüm, karşıya dosya yükleme yetkiniz yok.';
-$lang['media_update']          = 'Yeni versiyonu yükleyin';
-$lang['media_restore']         = 'Bu sürümü eski haline getir';
-$lang['currentns']             = 'Geçerli isimalanı';
-$lang['searchresult']          = 'Arama Sonucu';
-$lang['plainhtml']             = 'Yalın HTML';
-$lang['wikimarkup']            = 'Wiki Biçimlendirmesi';
-$lang['email_signature_text'] = 'Bu e-posta aşağıdaki DokuWiki tarafından otomatik olarak oluşturulmuştur
-@DOKUWIKIURL@';
diff --git a/wiki/inc/lang/tr/locked.txt b/wiki/inc/lang/tr/locked.txt
deleted file mode 100644
index 1438542..0000000
--- a/wiki/inc/lang/tr/locked.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Sayfa kilitli ======
-
-Bu sayfa şu anda başka bir kullanıcının değiştirmesi için kilitli. Kilitin süresi geçene veya bu kullanıcı değiştirmeyi bitirene kadar beklemelisiniz.
-
diff --git a/wiki/inc/lang/tr/login.txt b/wiki/inc/lang/tr/login.txt
deleted file mode 100644
index 2ce378d..0000000
--- a/wiki/inc/lang/tr/login.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== GiriÅŸ ======
-
-Şu an giriş yapmış değilsiniz! Giriş yapmak için giriş bilgilerinizi aşağıya yazın. Giriş yapmak için çerezleri açmalısınız.
-
diff --git a/wiki/inc/lang/tr/mailtext.txt b/wiki/inc/lang/tr/mailtext.txt
deleted file mode 100644
index dfcc39e..0000000
--- a/wiki/inc/lang/tr/mailtext.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-DokuWikinizde bir sayfa eklendi veya deÄŸiÅŸti. Detaylar ÅŸunlar:
-
-Tarih            : @DATE@
-Tarayıcı         : @BROWSER@
-IP-Adresi        : @IPADDRESS@
-Sunucu adı       : @HOSTNAME@
-Eski Sürüm       : @OLDPAGE@
-Yeni Sürüm       : @NEWPAGE@
-Değiştirme Özeti : @SUMMARY@
-Kullanıcı        : @USER@
-
-@DIFF@
diff --git a/wiki/inc/lang/tr/newpage.txt b/wiki/inc/lang/tr/newpage.txt
deleted file mode 100644
index 8a47e6b..0000000
--- a/wiki/inc/lang/tr/newpage.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Bu başlık henüz mevcut değil ======
-
-Henüz mevcut olmayan bir başlığın linkiyle geldiniz. ''bu sayfayı oluştur'' tuşuna tıklayarak sayfayı oluşturabilirsiniz.
-
diff --git a/wiki/inc/lang/tr/norev.txt b/wiki/inc/lang/tr/norev.txt
deleted file mode 100644
index e6f97be..0000000
--- a/wiki/inc/lang/tr/norev.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Böyle bir sürüm yok ======
-
-Belirtilen sürüm mevcut değil. Bu dökümanın eski sürümlerinin bir listesine ulaşmak için ''Eski sürümler'' tuşunu kullanın.
-
diff --git a/wiki/inc/lang/tr/password.txt b/wiki/inc/lang/tr/password.txt
deleted file mode 100644
index 852811d..0000000
--- a/wiki/inc/lang/tr/password.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-Merhaba @FULLNAME@!
-
-
-@DOKUWIKIURL@ adresindeki @TITLE@ için kullanıcı bilgin şöyle:
-
-GiriÅŸ ismi : @LOGIN@
-Parola : @PASSWORD@
diff --git a/wiki/inc/lang/tr/preview.txt b/wiki/inc/lang/tr/preview.txt
deleted file mode 100644
index 71a8a42..0000000
--- a/wiki/inc/lang/tr/preview.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Önizleme ======
-
-Bu yazınızın nasıl çıkacağının bir önizlemesi. Unutma: Yazı henüz **kaydedilmedi!**
-
diff --git a/wiki/inc/lang/tr/pwconfirm.txt b/wiki/inc/lang/tr/pwconfirm.txt
deleted file mode 100644
index 7e440e8..0000000
--- a/wiki/inc/lang/tr/pwconfirm.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-Merhaba @FULLNAME@!
-
-@DOKUWIKIURL@ adresinde kullanılan @TITLE@ hesabı için parola talebinde bulunuldu.
-
-Eğer böyle bir talebiniz olmadıysa, bu e-postayı görmezden gelebilirsiniz.
-
-Onaylamak istiyorsanız aşağıdaki linke tıklayınız.
-
-@CONFIRM@
diff --git a/wiki/inc/lang/tr/read.txt b/wiki/inc/lang/tr/read.txt
deleted file mode 100644
index 59314f1..0000000
--- a/wiki/inc/lang/tr/read.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-Bu sayfa salt okunur. Kaynağı görebilirsiniz ama değiştiremezsiniz. Bunun yanlış olduğunu düşünüyorsanız yöneticiye danışın.
-
diff --git a/wiki/inc/lang/tr/recent.txt b/wiki/inc/lang/tr/recent.txt
deleted file mode 100644
index 99efc8f..0000000
--- a/wiki/inc/lang/tr/recent.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== Son deÄŸiÅŸiklikler ======
-
-Aşağıdaki sayfalar yakın zamanda değiştirildi.
-
-
diff --git a/wiki/inc/lang/tr/register.txt b/wiki/inc/lang/tr/register.txt
deleted file mode 100644
index b67e4b5..0000000
--- a/wiki/inc/lang/tr/register.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Yeni kullanıcı olarak kaydolun ======
-
-Bu wikide yeni bir hesap açmak için aşağıdaki tüm bilgileri doldurunuz. **Doğru e-posta adresi verdiğinizden** emin olun, yeni parolanız e-postanıza gönderilecek. Giriş adınız geçerli bir [[doku>pagename|sayfa adı]] olmalıdır.
-
diff --git a/wiki/inc/lang/tr/registermail.txt b/wiki/inc/lang/tr/registermail.txt
deleted file mode 100644
index 26ff739..0000000
--- a/wiki/inc/lang/tr/registermail.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-Yeni bir kullanıcı kayıt oldu. Ayrıntıları aşağıda listelenmiştir:
-
-Kullanıcı adı : @NEWUSER@
-İsim : @NEWNAME@
-E-posta : @NEWEMAIL@
-
-Tarih : @DATE@
-Tarayıcı : @BROWSER@
-IP Numarası : @IPADDRESS@
-Host : @HOSTNAME@
diff --git a/wiki/inc/lang/tr/resendpwd.txt b/wiki/inc/lang/tr/resendpwd.txt
deleted file mode 100644
index 1a34396..0000000
--- a/wiki/inc/lang/tr/resendpwd.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Yeni Parola Gönderimi ======
-
-Lütfen bu wikide kullanmış olduğunuz kullanıcı adını aşağıdaki forma yazınız. Onay linki, kayıtlı e-posta adresinize gönderilecektir.
diff --git a/wiki/inc/lang/tr/resetpwd.txt b/wiki/inc/lang/tr/resetpwd.txt
deleted file mode 100644
index 1ed7586..0000000
--- a/wiki/inc/lang/tr/resetpwd.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-	====== Yeni ÅŸifre belirle ======
-
-Lütfen bu wiki hesabınız için yeni bir şifre belirleyin.
\ No newline at end of file
diff --git a/wiki/inc/lang/tr/revisions.txt b/wiki/inc/lang/tr/revisions.txt
deleted file mode 100644
index 841fba2..0000000
--- a/wiki/inc/lang/tr/revisions.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Eski sürümler ======
-
-Bunlar mevcut dökümanın daha eski sürümleridir. Eski bir sürüme çevirmek için, sürümü aşağıdan seçin, ''Sayfayı değiştir''e tıklayın ve kaydedin.
-
diff --git a/wiki/inc/lang/tr/searchpage.txt b/wiki/inc/lang/tr/searchpage.txt
deleted file mode 100644
index 05660eb..0000000
--- a/wiki/inc/lang/tr/searchpage.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Arama ======
-
-Aşağıda aramanın sonuçları listelenmiştir. @CREATEPAGEINFO@
-
diff --git a/wiki/inc/lang/tr/showrev.txt b/wiki/inc/lang/tr/showrev.txt
deleted file mode 100644
index 4cf3d26..0000000
--- a/wiki/inc/lang/tr/showrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**Bu, dökümanın eski bir sürümüdür!**
-----
diff --git a/wiki/inc/lang/tr/stopwords.txt b/wiki/inc/lang/tr/stopwords.txt
deleted file mode 100644
index 293067a..0000000
--- a/wiki/inc/lang/tr/stopwords.txt
+++ /dev/null
@@ -1,29 +0,0 @@
-# Bu indeksleyicinin yok saydığı kelimelerin bir listesidir, satır başına bir kelime yazılır
-# Bu dosyayı değiştirirken UNIX satır sonları (tek satır sonu) kullandığınız emin olun
-# 3 karakterden kısa kelimeleri eklenmesine gerek yoktur, bunlar zaten indekslenmez
-# Bu liste http://www.ranks.nl/stopwords/ altındakilerden derlenmiştir
-about
-are
-and
-you
-your
-them
-their
-com
-for
-from
-into
-how
-that
-the
-this
-was
-what
-when
-where
-who
-will
-with
-und
-the
-www
diff --git a/wiki/inc/lang/tr/subscr_form.txt b/wiki/inc/lang/tr/subscr_form.txt
deleted file mode 100644
index 21a8fba..0000000
--- a/wiki/inc/lang/tr/subscr_form.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Abonelik Yönetimi ======
-
-Bu sayfa, geçerli isimalanı ve sayfa için aboneliklerinizi düzenlemenize olanak sağlar.
\ No newline at end of file
diff --git a/wiki/inc/lang/tr/updateprofile.txt b/wiki/inc/lang/tr/updateprofile.txt
deleted file mode 100644
index 20b07f9..0000000
--- a/wiki/inc/lang/tr/updateprofile.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Kullanıcı Bilgilerini Güncelleme ======
-
-İstediğiniz kullanıcı bilgilerini değiştirebilirsiniz. Ancak kullanıcı adınızı değiştirmeniz mümkün değildir.
diff --git a/wiki/inc/lang/tr/uploadmail.txt b/wiki/inc/lang/tr/uploadmail.txt
deleted file mode 100644
index 92feef2..0000000
--- a/wiki/inc/lang/tr/uploadmail.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-Yeni dosya yüklendi. Ayrıntıları aşağıda listelenmiştir:
-
-Dosya : @MEDIA@
-Tarih : @DATE@
-Tarayıcı : @BROWSER@
-IP Adresi : @IPADDRESS@
-Host : @HOSTNAME@
-Boyut : @SIZE@
-MIME Type : @MIME@
-Kullanıcı : @USER@
diff --git a/wiki/inc/lang/uk/admin.txt b/wiki/inc/lang/uk/admin.txt
deleted file mode 100644
index f698d93..0000000
--- a/wiki/inc/lang/uk/admin.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== ÐдмініÑÑ‚Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ ======
-
-Ðижче ви можете знайти перелік адмініÑтративних задач, що наÑвні в ДокуВікі.
-
diff --git a/wiki/inc/lang/uk/adminplugins.txt b/wiki/inc/lang/uk/adminplugins.txt
deleted file mode 100644
index 3689ccd..0000000
--- a/wiki/inc/lang/uk/adminplugins.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Додаткові плагіни =====
\ No newline at end of file
diff --git a/wiki/inc/lang/uk/backlinks.txt b/wiki/inc/lang/uk/backlinks.txt
deleted file mode 100644
index 5f293e5..0000000
--- a/wiki/inc/lang/uk/backlinks.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Зворотні зв'Ñзки ======
-
-Це перелік Ñторінок, Ñкі, здаєтьÑÑ, поÑилаютьÑÑ Ð½Ð° поточну Ñторінку.
diff --git a/wiki/inc/lang/uk/conflict.txt b/wiki/inc/lang/uk/conflict.txt
deleted file mode 100644
index 5a89307..0000000
--- a/wiki/inc/lang/uk/conflict.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-====== ІÑнує більш нова верÑÑ–Ñ ======
-
-ІÑнує новіша верÑÑ–Ñ Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ñƒ, що ви редагували. Це може ÑтатиÑÑ, коли інший кориÑтувач змінив документ під Ñ‡Ð°Ñ Ð²Ð°ÑˆÐ¾Ð³Ð¾ редагуваннÑ.
-
-Уважно переглÑньте розбіжноÑті та вирішіть, Ñку верÑÑ–ÑŽ залишити. Якщо ви натиÑнете
-''зберегти'', буде збережена ваша верÑÑ–Ñ. Якщо натиÑнете ''ÑкаÑувати'' --- то залишитьÑÑ
-поточна верÑÑ–Ñ.
-
diff --git a/wiki/inc/lang/uk/denied.txt b/wiki/inc/lang/uk/denied.txt
deleted file mode 100644
index 635d31c..0000000
--- a/wiki/inc/lang/uk/denied.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== ДоÑтуп заборонено ======
-
-Вибачте, але у Ð²Ð°Ñ Ð½Ðµ виÑтачає прав Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð´Ð¾Ð²Ð¶ÐµÐ½Ð½Ñ.
-
diff --git a/wiki/inc/lang/uk/diff.txt b/wiki/inc/lang/uk/diff.txt
deleted file mode 100644
index cfdf9a8..0000000
--- a/wiki/inc/lang/uk/diff.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== РозбіжноÑті ======
-
-Тут показані розбіжноÑті між вибраною ревізією та поточною верÑією Ñторінки.
-
diff --git a/wiki/inc/lang/uk/draft.txt b/wiki/inc/lang/uk/draft.txt
deleted file mode 100644
index f6acca8..0000000
--- a/wiki/inc/lang/uk/draft.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-====== Знайдено чернетку ======
-
-ОÑтаннє Ñ€ÐµÐ´Ð°Ð³ÑƒÐ²Ð°Ð½Ð½Ñ Ñ†Ñ–Ñ”Ñ— Ñторінки не було завершено коректно. ДокуВікі автоматично зберегла чернетку під Ñ‡Ð°Ñ Ð²Ð°ÑˆÐ¾Ñ— роботи. Ви можете викориÑтати чернетку Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð´Ð¾Ð²Ð¶ÐµÐ½Ð½Ñ Ñ€ÐµÐ´Ð°Ð³ÑƒÐ²Ð°Ð½Ð½Ñ. Ðижче ви можете побачити дані, збережені з попереднього ÑеанÑу.
-
-Будь лаÑка вирішить, чи ви бажаєте //відновити// оÑтанній ÑÐµÐ°Ð½Ñ Ñ€ÐµÐ´Ð°Ð³ÑƒÐ²Ð°Ð½Ð½Ñ, //знищити// збережену чернетку або //ÑкаÑувати// редагуваннÑ.
-
diff --git a/wiki/inc/lang/uk/edit.txt b/wiki/inc/lang/uk/edit.txt
deleted file mode 100644
index 82dbc1a..0000000
--- a/wiki/inc/lang/uk/edit.txt
+++ /dev/null
@@ -1 +0,0 @@
-Відредагуйте Ñторінку та натиÑніть ''Зберегти''. ВикориÑтовуйте [[wiki:syntax|поÑібник]] з ÑинтакÑиÑу Ð´Ð»Ñ Ð´Ð¾Ð²Ñ–Ð´ÐºÐ¸. Будь лаÑка, змінюйте Ñторінку лише у тому випадку, коли ви можете **покращити** Ñ—Ñ—. Якщо ви бажаєте щоÑÑŒ Ñпробувати, викориÑтовуйте Ñпеціальну Ñторінку [[playground:playground]]
diff --git a/wiki/inc/lang/uk/editrev.txt b/wiki/inc/lang/uk/editrev.txt
deleted file mode 100644
index aae86fa..0000000
--- a/wiki/inc/lang/uk/editrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**Ви завантажили Ñтару верÑÑ–ÑŽ документу!** Якщо ви збережете Ñ—Ñ—, ви Ñтворите нову верÑÑ–ÑŽ з ціми даними.
-----
diff --git a/wiki/inc/lang/uk/index.txt b/wiki/inc/lang/uk/index.txt
deleted file mode 100644
index 0ba0d18..0000000
--- a/wiki/inc/lang/uk/index.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== ЗміÑÑ‚ ======
-
-Це перелік уÑÑ–Ñ… доÑтупних Ñторінок, упорÑджених за [[doku>namespaces|проÑторами імен]]
-
diff --git a/wiki/inc/lang/uk/install.html b/wiki/inc/lang/uk/install.html
deleted file mode 100644
index a280427..0000000
--- a/wiki/inc/lang/uk/install.html
+++ /dev/null
@@ -1,21 +0,0 @@
-<p>Ð¦Ñ Ñторінка допомагає при першій уÑтановці та налаштуванні <a href="http://dokuwiki.org">ДокуВікі</a>.
-Більше інформації про програму уÑтановки можна знайти на <a href="http://dokuwiki.org/installer">Ñторінці документації</a>.</p>
-
-<p>ДокуВікі викориÑтовую звичайні файли Ð´Ð»Ñ Ð·Ð±ÐµÑ€Ñ–Ð³Ð°Ð½Ð½Ñ Ñторінок вікі та іншої інформації,
-щодо цих Ñторінок (наприклад, зображень, індекÑів пошуку, Ñтарих ревізій та ін.). ДлÑ
-уÑпішного Ñ„ÑƒÐ½ÐºÑ†Ñ–Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ð”Ð¾ÐºÑƒÐ’Ñ–ÐºÑ– <strong>має</strong> мати права на Ð·Ð°Ð¿Ð¸Ñ Ð´Ð»Ñ Ð¿Ð°Ð¿Ð¾Ðº, що
-міÑÑ‚Ñть ці файли. Ð¦Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð° уÑтановки не може змінювати права доÑтупу. Звичайно це
-робитьÑÑ Ð·Ð° допомогою інтерпретатора shell, або, Ñкщо ви викориÑтовуєте хоÑтинг,
-за допомогою FTP або панелі ÑƒÐ¿Ñ€Ð°Ð²Ð»Ñ–Ð½Ð½Ñ Ñ…Ð¾Ñтингом (наприклад cPanel).</p>
-
-<p>Ð¦Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð° уÑтановки налаштує вашу ДокуВікі Ð´Ð»Ñ Ð²Ð¸ÐºÐ¾Ñ€Ð¸ÑтаннÑ
-<abbr title="ÑпиÑок контролю доÑтупу">ACL</abbr>, що, в Ñвою чергу,
-дозволить адмініÑтратору входити до адмініÑтративного меню Ð´Ð»Ñ ÑƒÑтановки доданків,
-ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ ÐºÐ¾Ñ€Ð¸Ñтувачами, ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð°Ð²Ð°Ð¼Ð¸ доÑтупу до Ñторінок Вікі та змін параметрів
-конфігурації. Це не Ñ” обов'Ñзковим Ð´Ð»Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ ДокуВікі, але зробить Ð¶Ð¸Ñ‚Ñ‚Ñ Ð°Ð´Ð¼Ñ–Ð½Ñ–Ñтратора
-значно легшим.</p>
-
-<p>ДоÑвідчені кориÑтувачі, або кориÑтувачі, що мають оÑобливі вимоги до налагодженнÑ, мають
-викориÑтовувати ці поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð´Ð»Ñ Ð´ÐµÑ‚Ð°Ð»ÑŒÐ½Ð¾Ñ— інформації, щодо
-<a href="http://dokuwiki.org/install">інÑтрукцій з уÑтановки</a>
-та <a href="http://dokuwiki.org/config">параметрів конфігурації</a>.</p>
diff --git a/wiki/inc/lang/uk/jquery.ui.datepicker.js b/wiki/inc/lang/uk/jquery.ui.datepicker.js
deleted file mode 100644
index c82501a..0000000
--- a/wiki/inc/lang/uk/jquery.ui.datepicker.js
+++ /dev/null
@@ -1,38 +0,0 @@
-/* Ukrainian (UTF-8) initialisation for the jQuery UI date picker plugin. */
-/* Written by Maxim Drogobitskiy (maxdao@gmail.com). */
-/* Corrected by Igor Milla (igor.fsp.milla@gmail.com). */
-( function( factory ) {
-	if ( typeof define === "function" && define.amd ) {
-
-		// AMD. Register as an anonymous module.
-		define( [ "../widgets/datepicker" ], factory );
-	} else {
-
-		// Browser globals
-		factory( jQuery.datepicker );
-	}
-}( function( datepicker ) {
-
-datepicker.regional.uk = {
-	closeText: "Закрити",
-	prevText: "&#x3C;",
-	nextText: "&#x3E;",
-	currentText: "Сьогодні",
-	monthNames: [ "Січень","Лютий","Березень","Квітень","Травень","Червень",
-	"Липень","Серпень","ВереÑень","Жовтень","ЛиÑтопад","Грудень" ],
-	monthNamesShort: [ "Січ","Лют","Бер","Кві","Тра","Чер",
-	"Лип","Сер","Вер","Жов","ЛиÑ","Гру" ],
-	dayNames: [ "неділÑ","понеділок","вівторок","Ñереда","четвер","п’ÑтницÑ","Ñубота" ],
-	dayNamesShort: [ "нед","пнд","вів","Ñрд","чтв","птн","Ñбт" ],
-	dayNamesMin: [ "Ðд","Пн","Ð’Ñ‚","Ср","Чт","Пт","Сб" ],
-	weekHeader: "Тиж",
-	dateFormat: "dd.mm.yy",
-	firstDay: 1,
-	isRTL: false,
-	showMonthAfterYear: false,
-	yearSuffix: "" };
-datepicker.setDefaults( datepicker.regional.uk );
-
-return datepicker.regional.uk;
-
-} ) );
diff --git a/wiki/inc/lang/uk/lang.php b/wiki/inc/lang/uk/lang.php
deleted file mode 100644
index e9ed28a..0000000
--- a/wiki/inc/lang/uk/lang.php
+++ /dev/null
@@ -1,354 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Oleksii <alexey.furashev@gmail.com>
- * @author Vitaly <vitaly.balashov@smuzzy.com.ua>
- * @author Oleksiy Voronin <ovoronin@gmail.com>
- * @author serg_stetsuk <serg_stetsuk@ukr.net>
- * @author Oleksandr Kunytsia <okunia@gmail.com>
- * @author Uko <uko@uar.net>
- * @author Ulrikhe Lukoie <lukoie@gmail.com>
- * @author Egor Smkv <egorsmkv@gmail.com>
- * @author Max Lyashuk <m_lyashuk@ukr.net>
- * @author Pavel <pavelholovko@yandex.ru>
- * @author Maksim <nikropol@yandex.ru>
- * @author Nina Zolotova <nina-z@i.ua>
- * @author Roman <vsmemorial@gmail.com>
- */
-$lang['encoding']              = 'utf-8';
-$lang['direction']             = 'ltr';
-$lang['doublequoteopening']    = '“';
-$lang['doublequoteclosing']    = 'â€';
-$lang['singlequoteopening']    = '‘';
-$lang['singlequoteclosing']    = '’';
-$lang['apostrophe']            = '’';
-$lang['btn_edit']              = 'Редагувати';
-$lang['btn_source']            = 'Показати вихідний текÑÑ‚';
-$lang['btn_show']              = 'Показати Ñторінку';
-$lang['btn_create']            = 'Створити Ñторінку';
-$lang['btn_search']            = 'Пошук';
-$lang['btn_save']              = 'Зберегти';
-$lang['btn_preview']           = 'ПереглÑд';
-$lang['btn_top']               = 'ПовернутиÑÑ Ð½Ð°Ð²ÐµÑ€Ñ…';
-$lang['btn_newer']             = '<< більш нові';
-$lang['btn_older']             = 'більш Ñтарі >>';
-$lang['btn_revs']              = 'Старі ревізії';
-$lang['btn_recent']            = 'ОÑтанні зміни';
-$lang['btn_upload']            = 'Завантажити';
-$lang['btn_cancel']            = 'СкаÑувати';
-$lang['btn_index']             = 'ЗміÑÑ‚';
-$lang['btn_secedit']           = 'Редагувати';
-$lang['btn_login']             = 'Увійти';
-$lang['btn_logout']            = 'Вийти';
-$lang['btn_admin']             = 'КеруваннÑ';
-$lang['btn_update']            = 'Оновити';
-$lang['btn_delete']            = 'Видалити';
-$lang['btn_back']              = 'Ðазад';
-$lang['btn_backlink']          = 'ПоÑÐ¸Ð»Ð°Ð½Ð½Ñ Ñюди';
-$lang['btn_subscribe']         = 'ПідпиÑатиÑÑ';
-$lang['btn_profile']           = 'Оновити профіль';
-$lang['btn_reset']             = 'ОчиÑтити';
-$lang['btn_resendpwd']         = 'Ð’Ñтановити новий пароль';
-$lang['btn_draft']             = 'Редагувати чернетку';
-$lang['btn_recover']           = 'Відновити чернетку';
-$lang['btn_draftdel']          = 'Знищити чернетку';
-$lang['btn_revert']            = 'Відновити';
-$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']                  = 'Пароль';
-$lang['newpass']               = 'Ðовий пароль';
-$lang['oldpass']               = 'Поточний пароль';
-$lang['passchk']               = 'ще раз';
-$lang['remember']              = 'Запам\'Ñтати мене';
-$lang['fullname']              = 'Повне ім\'Ñ';
-$lang['email']                 = 'E-Mail';
-$lang['profile']               = 'Профіль кориÑтувача';
-$lang['badlogin']              = 'Вибачте, невірне ім\'Ñ Ñ‡Ð¸ пароль.';
-$lang['badpassconfirm']        = 'Вибачте, але пароль невірний';
-$lang['minoredit']             = 'Ðезначні зміни';
-$lang['draftdate']             = 'Чернетка збережена';
-$lang['nosecedit']             = 'Сторінку змінено, дані розділу заÑтарілі. Завантажено Ñторінку повніÑтю.';
-$lang['regmissing']            = 'Ðеобхідно заповнити вÑÑ– полÑ.';
-$lang['reguexists']            = 'КориÑтувач з таким іменем вже Ñ–Ñнує.';
-$lang['regsuccess']            = 'КориÑтувача Ñтворено. Пароль відправлено на e-mail.';
-$lang['regsuccess2']           = 'КориÑтувача Ñтворено.';
-$lang['regfail']               = 'КориÑтувач не Ñтворений';
-$lang['regmailfail']           = 'При відправленні Ð¿Ð°Ñ€Ð¾Ð»Ñ ÑталаÑÑŒ помилка. Зв’ÑжітьÑÑ Ð· адмініÑтратором!';
-$lang['regbadmail']            = 'Схоже, що адреÑа e-mail невірна - Ñкщо ви вважаєте, що це помилка, зв’ÑжітьÑÑ Ð· адмініÑтратором';
-$lang['regbadpass']            = 'Ðадані паролі не Ñпівпадають, Ñпробуйте ще раз.';
-$lang['regpwmail']             = 'Пароль ДокуВікі';
-$lang['reghere']               = 'Ще не маєте облікового запиÑу? Отримайте його негайно';
-$lang['profna']                = 'Ð¦Ñ Ð’Ñ–ÐºÑ– не підтримує зміни профілю';
-$lang['profnochange']          = 'Ðемає змін, немає що робити.';
-$lang['profnoempty']           = 'Ð†Ð¼â€™Ñ Ð°Ð±Ð¾ e-mail не можуть бути пуÑтими.';
-$lang['profchanged']           = 'Профіль уÑпішно змінено.';
-$lang['profnodelete']          = 'Ð¦Ñ Ð²Ñ–ÐºÑ– не підтримує Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ ÐºÐ¾Ñ€Ð¸Ñтувачів.';
-$lang['profdeleteuser']        = 'Видалити аккаунт';
-$lang['profdeleted']           = 'Ваш профіль кориÑтувача буде видалено з цієї wiki.';
-$lang['profconfdelete']        = 'Я хочу видалити мій акаунт з цієї вікі.';
-$lang['profconfdeletemissing'] = 'Галочка на "Підтверджено" не поÑтавлена';
-$lang['proffail']              = 'Профіль кориÑтувача не вдалоÑÑ Ð¿Ð¾Ð½Ð¾Ð²Ð¸Ñ‚Ð¸.';
-$lang['pwdforget']             = 'Забули пароль? Отримайте новий';
-$lang['resendna']              = 'Ð¦Ñ Ð’Ñ–ÐºÑ– не підтримує повторне Ð²Ñ–Ð´Ð¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð½Ñ Ð¿Ð°Ñ€Ð¾Ð»Ñ.';
-$lang['resendpwd']             = 'Ð’Ñтановити новий пароль длÑ';
-$lang['resendpwdmissing']      = 'Ðеобхідно заповнити уÑÑ– полÑ.';
-$lang['resendpwdnouser']       = 'Такий кориÑтувач не Ñ–Ñнує.';
-$lang['resendpwdbadauth']      = 'Код автентифікації невірний. Перевірте, чи ви викориÑтали повне поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð´Ð»Ñ Ð¿Ñ–Ð´Ñ‚Ð²ÐµÑ€Ð´Ð¶ÐµÐ½Ð½Ñ.';
-$lang['resendpwdconfirm']      = 'ПоÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð´Ð»Ñ Ð¿Ñ–Ð´Ñ‚Ð²ÐµÑ€Ð´Ð¶ÐµÐ½Ð½Ñ Ð²Ñ–Ð´Ñ–Ñлано на e-mail.';
-$lang['resendpwdsuccess']      = 'Ðовий пароль відіÑлано на e-mail.';
-$lang['license']               = 'Якщо не вказано інше, вміÑÑ‚ цієї Вікі підпадає під дію такої ліцензії:';
-$lang['licenseok']             = 'Примітка. Редагуючи ці Ñторінку, ви погоджуєтеÑÑŒ на розповÑÑŽÐ´Ð¶ÐµÐ½Ð½Ñ Ñ–Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ— за такою ліцензією:';
-$lang['searchmedia']           = 'Пошук файлу:';
-$lang['searchmedia_in']        = 'Шукати у %s';
-$lang['txt_upload']            = 'Виберіть файл Ð´Ð»Ñ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ:';
-$lang['txt_filename']          = 'Завантажити Ñк (не обов\'Ñзкове):';
-$lang['txt_overwrt']           = 'ПерезапиÑати Ñ–Ñнуючий файл';
-$lang['maxuploadsize']         = 'Ð’Ñ–Ð´Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð¼Ð°ÐºÑимум %s на файл.';
-$lang['lockedby']              = 'Заблоковано:';
-$lang['lockexpire']            = 'Ð‘Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÑƒÑ”Ñ‚ÑŒÑÑ Ð²:';
-$lang['js']['willexpire']      = 'Ð‘Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ñ€ÐµÐ´Ð°Ð³ÑƒÐ²Ð°Ð½Ð½Ñ Ñ†Ñ–Ñ”Ñ— Ñторінки закінчуєтьÑÑ Ñ‡ÐµÑ€ÐµÐ· хвилину.\n Щоб уникнути конфліктів викориÑтовуйте кнопку переглÑду Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð´Ð¾Ð²Ð¶ÐµÐ½Ð½Ñ Ð±Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ.';
-$lang['js']['notsavedyet']     = 'Ðезбережені зміни будуть втрачені.
- ДійÑно продовжити?';
-$lang['js']['searchmedia']     = 'Шукати файли';
-$lang['js']['keepopen']        = 'Тримати вікно відкритим під Ñ‡Ð°Ñ Ð²Ð¸Ð±Ð¾Ñ€Ñƒ';
-$lang['js']['hidedetails']     = 'Сховати деталі';
-$lang['js']['mediatitle']      = 'Ðалаштунки поÑиланнÑ';
-$lang['js']['mediadisplay']    = 'Тип поÑиланнÑ';
-$lang['js']['mediaalign']      = 'ВирівнюваннÑ';
-$lang['js']['mediasize']       = 'Розмір зображеннÑ';
-$lang['js']['mediatarget']     = 'Ціль поÑиланнÑ';
-$lang['js']['mediaclose']      = 'Закрити';
-$lang['js']['mediainsert']     = 'Ð’Ñтавити';
-$lang['js']['mediadisplayimg'] = 'Показати зображеннÑ.';
-$lang['js']['mediadisplaylnk'] = 'Показати тільки поÑиланнÑ.';
-$lang['js']['mediasmall']      = 'Зменшена верÑÑ–Ñ';
-$lang['js']['mediamedium']     = 'Ð¡ÐµÑ€ÐµÐ´Ð½Ñ Ð²ÐµÑ€ÑÑ–Ñ';
-$lang['js']['medialarge']      = 'Велика верÑÑ–Ñ';
-$lang['js']['mediaoriginal']   = 'Оригінальна верÑÑ–Ñ';
-$lang['js']['medialnk']        = 'ПоÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° Ñторінку з опиÑом';
-$lang['js']['mediadirect']     = 'ПрÑме поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° оригінал';
-$lang['js']['medianolnk']      = 'Ðемає поÑиланнÑ';
-$lang['js']['medianolink']     = 'Ðе поÑилайтеÑÑ Ð½Ð° зображеннÑ';
-$lang['js']['medialeft']       = 'ВирівнÑти Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð¿Ð¾ лівому краю.';
-$lang['js']['mediaright']      = 'ВирівнÑти Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð¿Ð¾ правому краю.';
-$lang['js']['mediacenter']     = 'ВирівнÑти Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð¿Ð¾ центру.';
-$lang['js']['medianoalign']    = 'Ðе вирівнювати зображеннÑ.';
-$lang['js']['nosmblinks']      = 'ПоÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° мережеві папки працює лише в Internet Explorer.
-Ви можете Ñкопіювати поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ñ– відкрити його за допомогою Internet Explorer.';
-$lang['js']['linkwiz']         = 'Чарівник поÑилань';
-$lang['js']['linkto']          = 'ПоÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð°:';
-$lang['js']['del_confirm']     = 'ДійÑно знищити обрані елементи?';
-$lang['js']['restore_confirm'] = 'ДійÑно відновити цю верÑÑ–ÑŽ?';
-$lang['js']['media_diff']      = 'ПереглÑнути різницю:';
-$lang['js']['media_diff_both'] = 'Крок за кроком';
-$lang['js']['media_diff_portions'] = 'Прогорнути';
-$lang['js']['media_select']    = 'Оберіть файли';
-$lang['js']['media_upload_btn'] = 'Завантажити';
-$lang['js']['media_done_btn']  = 'УÑпішно';
-$lang['js']['media_drop']      = 'ПеретÑгніть Ñюди файли Ð´Ð»Ñ Ð²Ñ–Ð´Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ';
-$lang['js']['media_cancel']    = 'видалити';
-$lang['js']['media_overwrt']   = 'ПерезапиÑати Ñ–Ñнуючі файли';
-$lang['rssfailed']             = 'Виникла помилка під Ñ‡Ð°Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ RSS-Ñтрічки: ';
-$lang['nothingfound']          = 'Ðічого не знайдено.';
-$lang['mediaselect']           = 'Вибір медіа-файлу';
-$lang['uploadsucc']            = 'Ð—Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾Ð¹ÑˆÐ»Ð¾ уÑпішно';
-$lang['uploadfail']            = 'Помилка при завантаженні. Можливо неправильні права?';
-$lang['uploadwrong']           = 'Ð—Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð·Ð°Ð±Ð¾Ñ€Ð¾Ð½ÐµÐ½Ð¾. Таке Ñ€Ð¾Ð·ÑˆÐ¸Ñ€ÐµÐ½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñƒ не дозволÑєтьÑÑ!';
-$lang['uploadexist']           = 'Файл вже Ñ–Ñнує. Ðічого не зроблено.';
-$lang['uploadbadcontent']      = 'Завантажений вміÑÑ‚ не відповідає розширенню %s.';
-$lang['uploadspam']            = 'Ð—Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð·Ð°Ð±Ð»Ð¾ÐºÐ¾Ð²Ð°Ð½Ð¾ Ñпам-фільтром.';
-$lang['uploadxss']             = 'Ð—Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð·Ð°Ð±Ð»Ð¾ÐºÐ¾Ð²Ð°Ð½Ð¾ через можливіÑть злонаміреного вміÑту.';
-$lang['uploadsize']            = 'Завантажений файл надто великий (макÑимум %s).';
-$lang['deletesucc']            = 'Файл "%s" знищено.';
-$lang['deletefail']            = 'Ðеможливо знищити "%s" - перевірте права доÑтупу.';
-$lang['mediainuse']            = '"%s" не знищено - файл викориÑтовуєтьÑÑ.';
-$lang['namespaces']            = 'ПроÑтори імен';
-$lang['mediafiles']            = 'ДоÑтупні файли';
-$lang['accessdenied']          = 'Вам не дозволено переглÑдати цю Ñторінку.';
-$lang['mediausage']            = 'Ð”Ð»Ñ Ð¿Ð¾ÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° цей файл викориÑтовуйте такий ÑинтакÑиÑ:';
-$lang['mediaview']             = 'ПереглÑнути початковий файл';
-$lang['mediaroot']             = 'корінь';
-$lang['mediaupload']           = 'Ð—Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñƒ у поточний проÑтір імен. Щоб Ñтворити проÑтори імен, додайте Ñ—Ñ… в початок імені файлу та розділіть двокрапками.';
-$lang['mediaextchange']        = 'Ð Ð¾Ð·ÑˆÐ¸Ñ€ÐµÐ½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñƒ змінено з .%s на .%s!';
-$lang['reference']             = 'ПоÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð´Ð»Ñ';
-$lang['ref_inuse']             = 'Цей файл не може бути знищено, оÑкільки він викориÑтовуєтьÑÑ Ñ‚Ð°ÐºÐ¸Ð¼Ð¸ Ñторінками:';
-$lang['ref_hidden']            = 'ДеÑкі поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ñ–Ñнують на Ñторінках, Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ñких у Ð²Ð°Ñ Ð½ÐµÐ¼Ð°Ñ” прав.';
-$lang['hits']                  = 'Збіги';
-$lang['quickhits']             = 'Збіги у назвах Ñторінок';
-$lang['toc']                   = 'ЗміÑÑ‚';
-$lang['current']               = 'поточний';
-$lang['yours']                 = 'Ваша верÑÑ–Ñ';
-$lang['diff']                  = 'показати відмінноÑті від поточної верÑÑ–Ñ—';
-$lang['diff2']                 = 'Показати відмінноÑті між вибраними верÑÑ–Ñми';
-$lang['difflink']              = 'ПоÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° цей ÑпиÑок змін';
-$lang['diff_type']             = 'ПереглÑнути відмінноÑті:';
-$lang['diff_inline']           = 'Вбудувати';
-$lang['diff_side']             = 'ПорÑд';
-$lang['diffprevrev']           = 'ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð½Ñ Ñ€ÐµÐ²Ñ–Ð·Ñ–Ñ';
-$lang['diffnextrev']           = 'ÐаÑтупна ревізіÑ';
-$lang['difflastrev']           = 'ОÑÑ‚Ð°Ð½Ð½Ñ Ñ€ÐµÐ²Ñ–Ð·Ñ–Ñ';
-$lang['diffbothprevrev']       = 'ПорівнÑÐ½Ð½Ñ Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð½Ñ–Ñ… верÑій';
-$lang['diffbothnextrev']       = 'По Ñторонах наÑтупні верÑÑ–Ñ—';
-$lang['line']                  = 'РÑдок';
-$lang['breadcrumb']            = 'Відвідано:';
-$lang['youarehere']            = 'Ви тут:';
-$lang['lastmod']               = 'ВоÑтаннє змінено:';
-$lang['by']                    = 'повз';
-$lang['deleted']               = 'знищено';
-$lang['created']               = 'Ñтворено';
-$lang['restored']              = 'відновлено Ñтару ревізію (%s)';
-$lang['external_edit']         = 'зовнішнє редагуваннÑ';
-$lang['summary']               = 'ПідÑумок змін';
-$lang['noflash']               = 'Ð”Ð»Ñ Ð¿ÐµÑ€ÐµÐ³Ð»Ñду цієї Ñторінки необхідно вÑтановити <a href="http://www.adobe.com/products/flashplayer/">Adobe Flash Plugin</a>.';
-$lang['download']              = 'Завантажити фрагмент';
-$lang['tools']                 = 'ÐалаштуваннÑ';
-$lang['user_tools']            = 'КориÑтувальницькькі налаштуваннÑ';
-$lang['site_tools']            = 'ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñайту';
-$lang['page_tools']            = 'ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñторінки';
-$lang['skip_to_content']       = 'Перейти до зміÑту';
-$lang['sidebar']               = 'Сайдбар';
-$lang['mail_newpage']          = 'Ñторінку додано:';
-$lang['mail_changed']          = 'Ñторінку змінено:';
-$lang['mail_subscribe_list']   = 'Ñторінки, що змінено у проÑторі імен:';
-$lang['mail_new_user']         = 'новий кориÑтувач:';
-$lang['mail_upload']           = 'завантажено файл:';
-$lang['changes_type']          = 'ПереглÑнути зміни ';
-$lang['pages_changes']         = 'Сторінок';
-$lang['media_changes']         = 'Медіа-файли';
-$lang['both_changes']          = 'Сторінки та медіа-файли';
-$lang['qb_bold']               = 'Ðапівжирний текÑÑ‚';
-$lang['qb_italic']             = 'КурÑив';
-$lang['qb_underl']             = 'ПідкреÑлений текÑÑ‚';
-$lang['qb_code']               = 'ТекÑÑ‚ коду';
-$lang['qb_strike']             = 'ЗакреÑлений текÑÑ‚';
-$lang['qb_h1']                 = 'Заголовок 1-го рівнÑ';
-$lang['qb_h2']                 = 'Заголовок 2-го рівнÑ';
-$lang['qb_h3']                 = 'Заголовок 3-го рівнÑ';
-$lang['qb_h4']                 = 'Заголовок 4-го рівнÑ';
-$lang['qb_h5']                 = 'Заголовок 5-го рівнÑ';
-$lang['qb_h']                  = 'Заголовок';
-$lang['qb_hs']                 = 'Вибрати заголовок';
-$lang['qb_hplus']              = 'Заголовок вищого рівнÑ';
-$lang['qb_hminus']             = 'Заголовок нищого рівнÑ';
-$lang['qb_hequal']             = 'Заголовок того ж рівнÑ';
-$lang['qb_link']               = 'Внутрішнє поÑиланнÑ';
-$lang['qb_extlink']            = 'Зовнішнє поÑиланнÑ';
-$lang['qb_hr']                 = 'Роздільник';
-$lang['qb_ol']                 = 'Елемент нумерованого ÑпиÑку';
-$lang['qb_ul']                 = 'Елемент ненумерованого ÑпиÑку';
-$lang['qb_media']              = 'Додати зображень та інші файли';
-$lang['qb_sig']                = 'Додати підпиÑ';
-$lang['qb_smileys']            = 'ПоÑмішки';
-$lang['qb_chars']              = 'Спеціальні Ñимволи';
-$lang['upperns']               = 'Перейти до батьківÑького проÑтору імен';
-$lang['metaedit']              = 'Редагувати метадані';
-$lang['metasaveerr']           = 'Помилка запиÑу метаданих';
-$lang['metasaveok']            = 'Метадані збережено';
-$lang['img_title']             = 'Ðазва:';
-$lang['img_caption']           = 'ПідпиÑ:';
-$lang['img_date']              = 'Дата:';
-$lang['img_fname']             = 'Ð†Ð¼â€™Ñ Ñ„Ð°Ð¹Ð»Ñƒ:';
-$lang['img_fsize']             = 'Розмір:';
-$lang['img_artist']            = 'Фотограф:';
-$lang['img_copyr']             = 'ÐвторÑькі права:';
-$lang['img_format']            = 'Формат:';
-$lang['img_camera']            = 'Камера:';
-$lang['img_keywords']          = 'Ключові Ñлова:';
-$lang['img_width']             = 'Ширини:';
-$lang['img_height']            = 'ВиÑота:';
-$lang['subscr_subscribe_success'] = 'Додано %s до ÑпиÑку підпиÑки Ð´Ð»Ñ %s';
-$lang['subscr_subscribe_error'] = 'Помилка при додавані %s до ÑпиÑку підпиÑки Ð´Ð»Ñ %s';
-$lang['subscr_subscribe_noaddress'] = 'Ðемає адреÑи, аÑоційованої з Вашим логіном, тому Ви не можете бути додані до ÑпиÑку підпиÑки.';
-$lang['subscr_unsubscribe_success'] = 'Видалено %s із ÑпиÑку підпиÑки Ð´Ð»Ñ %s';
-$lang['subscr_unsubscribe_error'] = 'Помилка при видаленні %s зі ÑпиÑку підпиÑки Ð´Ð»Ñ %s';
-$lang['subscr_already_subscribed'] = '%s вже підпиÑаний до %s';
-$lang['subscr_not_subscribed'] = '%s не підпиÑаний до %s';
-$lang['subscr_m_not_subscribed'] = 'Ви зараз не підпиÑані до цієї Ñторінки або проÑтору імен.';
-$lang['subscr_m_new_header']   = 'Додати підпиÑку';
-$lang['subscr_m_current_header'] = 'Поточні підпиÑки';
-$lang['subscr_m_unsubscribe']  = 'ВідпиÑатиÑÑ';
-$lang['subscr_m_subscribe']    = 'ПідпиÑатиÑÑ';
-$lang['subscr_m_receive']      = 'Отримувати';
-$lang['subscr_style_every']    = 'повідомлÑти на пошту про кожну зміну';
-$lang['subscr_style_digest']   = 'лиÑÑ‚ з дайджеÑтом Ð´Ð»Ñ Ð·Ð¼Ñ–Ð½Ð¸ кожної Ñторінки (кожні %.2f днів)';
-$lang['subscr_style_list']     = 'ÑпиÑок змінених Ñторінок від чаÑу Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð¾Ñтаннього лиÑта (кожні %.2f днів)';
-$lang['authtempfail']          = 'ÐÐ²Ñ‚ÐµÐ½Ñ‚Ð¸Ñ„Ñ–ÐºÐ°Ñ†Ñ–Ñ ÐºÐ¾Ñ€Ð¸Ñтувача тимчаÑово не доÑтупна. Якщо це буде продовжуватиÑÑŒ, будь лаÑка, повідомте адмініÑтратора.';
-$lang['i_chooselang']          = 'Виберіть мову';
-$lang['i_installer']           = 'Програма уÑтановки ДокуВікі';
-$lang['i_wikiname']            = 'Ðазва Вікі';
-$lang['i_enableacl']           = 'Дозволити викориÑÑ‚Ð°Ð½Ð½Ñ ACL (рекомендовано)';
-$lang['i_superuser']           = 'СуперкориÑтувач';
-$lang['i_problems']            = 'Програма уÑтановки знайшла декілька проблем, що вказані нижче. Ви не можете продовжити, поки не виправите Ñ—Ñ…';
-$lang['i_modified']            = 'З причин безпеки цей Ñкрипт буде працювати тільки з новою та немодифікованою уÑтановкою ДокуВікі.
-Вам Ñлід або ще раз розпакувати файли із завантаженого пакету, або звернутиÑÑ Ð´Ð¾ повної <a href="http://dokuwiki.org/install">інÑтрукції з уÑтановки ДокуВікі</a>';
-$lang['i_funcna']              = 'Ð¤ÑƒÐ½ÐºÑ†Ñ–Ñ PHP <code>%s</code> не доÑтупна. Можливо, хоÑтинг-провайдер відключив Ñ—Ñ— з ÑкихоÑÑŒ причин?';
-$lang['i_phpver']              = 'ВерÑÑ–Ñ PHP <code>%s</code> менша, ніж необхідно - <code>%s</code>. Ðеобхідно оновити PHP.';
-$lang['i_mbfuncoverload']      = 'mbstring.func_overload має бути вимкнена у php.ini щоб запуÑтити DokuWiki.';
-$lang['i_permfail']            = 'ДокуВікі не має прав на Ð·Ð°Ð¿Ð¸Ñ <code>%s</code>. Ðеобхідно змінити права доÑтупа Ð´Ð»Ñ Ñ†Ñ–Ñ”Ñ— папки!';
-$lang['i_confexists']          = '<code>%s</code> вже Ñ–Ñнує';
-$lang['i_writeerr']            = 'Ðеможливо Ñтворити <code>%s</code>. Ðеобхідно перевірити права доÑтупа Ð´Ð»Ñ Ñ„Ð°Ð¹Ð»Ñƒ/папки та Ñтворити файл вручну.';
-$lang['i_badhash']             = 'Ðевпізнаний або модифікований dokuwiki.php (hash=<code>%s</code>)';
-$lang['i_badval']              = '<code>%s</code> - невірне або пуÑте значеннÑ.';
-$lang['i_success']             = 'ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¾. Ви можете знищити файл install.php.
-Перейдіть до <a href="doku.php?id=wiki:welcome">вашої нової ДокуВікі</a>';
-$lang['i_failure']             = 'При збереженні файлу конфігурації виникли помилки. Можливо вам доведетьÑÑ Ð²Ð¸Ð¿Ñ€Ð°Ð²Ð¸Ñ‚Ð¸ Ñ—Ñ… ÑамоÑтійно
-до початку викориÑÑ‚Ð°Ð½Ð½Ñ <a href="doku.php?id=wiki:welcome">вашої нової ДокуВікі</a>.';
-$lang['i_policy']              = 'Початкова політика ACL';
-$lang['i_pol0']                = 'Відкрита Вікі (читаннÑ, Ð·Ð°Ð¿Ð¸Ñ Ñ‚Ð° Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñ–Ð² Ð´Ð»Ñ Ð²ÑÑ–Ñ…)';
-$lang['i_pol1']                = 'Публічна Вікі (Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ð´Ð»Ñ Ð²ÑÑ–Ñ…, Ð·Ð°Ð¿Ð¸Ñ Ñ‚Ð° Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ð·Ð°Ñ€ÐµÑ”Ñтрованих кориÑтувачів)';
-$lang['i_pol2']                = 'Закрита Вікі (читаннÑ, Ð·Ð°Ð¿Ð¸Ñ Ñ‚Ð° Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ñ‚Ñ–Ð»ÑŒÐºÐ¸ Ð´Ð»Ñ Ð·Ð°Ñ€ÐµÑ”Ñтрованих кориÑтувачів)';
-$lang['i_allowreg']            = 'Дозволити кориÑтувачам реєÑтруватиÑÑ ÑамоÑтійно.';
-$lang['i_retry']               = 'Повторити';
-$lang['i_license']             = 'Будь лаÑка, виберіть тип ліцензії, під Ñкою Ð’Ñ– бажаєте опублікувати матеріал:';
-$lang['i_license_none']        = 'Ðе показувати жодної інформації про ліцензії.';
-$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 міÑÑців тому';
-$lang['weeks']                 = '%d тижнів тому';
-$lang['days']                  = '%d днів тому';
-$lang['hours']                 = '%d годин тому';
-$lang['minutes']               = '%d хвилин тому';
-$lang['seconds']               = '%d Ñекунд тому';
-$lang['wordblock']             = 'Ваші зміни не збережено, тому що вони розпізнані Ñк такі, що міÑÑ‚Ñть заблокований текÑÑ‚(Ñпам).';
-$lang['media_uploadtab']       = 'Завантажити';
-$lang['media_searchtab']       = 'Пошук';
-$lang['media_file']            = 'Файл';
-$lang['media_viewtab']         = 'ОглÑд';
-$lang['media_edittab']         = 'Редагувати';
-$lang['media_historytab']      = 'ІÑторіÑ';
-$lang['media_list_thumbs']     = 'Іконки';
-$lang['media_list_rows']       = 'РÑдки';
-$lang['media_sort_name']       = 'Ім’Ñ';
-$lang['media_sort_date']       = 'Дата';
-$lang['media_namespaces']      = 'Оберіть проÑтір назв';
-$lang['media_files']           = 'Файли у %s';
-$lang['media_upload']          = 'Завантажити до %s';
-$lang['media_search']          = 'Шукати у %s';
-$lang['media_view']            = '%s';
-$lang['media_viewold']         = '%s до %s';
-$lang['media_edit']            = 'Редагувати %s';
-$lang['media_history']         = 'ІÑÑ‚Ð¾Ñ€Ñ–Ñ %s';
-$lang['media_meta_edited']     = 'метаданні відредаговано';
-$lang['media_perm_read']       = 'Вибачте, у Ð²Ð°Ñ Ð½Ðµ доÑтатньо прав Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ñ†ÑŒÐ¾Ð³Ð¾ файлу.';
-$lang['media_perm_upload']     = 'Вибачте, у Ð²Ð°Ñ Ð½ÐµÐ´Ð¾Ñтатньо прав, щоб завантажувати файли.';
-$lang['media_update']          = 'Завантажити нову верÑÑ–ÑŽ';
-$lang['media_restore']         = 'Відновити цю верÑÑ–ÑŽ';
-$lang['media_acl_warning']     = 'СпиÑок може бути не повним через Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ ACL та приховані Ñторінки.';
-$lang['currentns']             = 'Поточний діапазон імен';
-$lang['searchresult']          = 'Результати пошуку';
-$lang['plainhtml']             = 'ПроÑтий HTML';
-$lang['wikimarkup']            = 'Wiki розмітка';
-$lang['page_nonexist_rev']     = 'Сторінка %s відÑутнÑ. Може бути Ñтворена Ñк <a href="%s">%s</a>.';
-$lang['unable_to_parse_date']  = 'Ðе можливо розібрати параметр "%s" ';
-$lang['email_signature_text']  = 'Це Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð±ÑƒÐ»Ð¾ Ñтворене ДокуВікі з
-@DOKUWIKIURL@';
diff --git a/wiki/inc/lang/uk/locked.txt b/wiki/inc/lang/uk/locked.txt
deleted file mode 100644
index 367c286..0000000
--- a/wiki/inc/lang/uk/locked.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Сторінку заблоковано ======
-
-Цю Ñторінку заблоковано іншим кориÑтувачем Ð´Ð»Ñ Ñ€ÐµÐ´Ð°Ð³ÑƒÐ²Ð°Ð½Ð½Ñ. Зачекайте, поки цей кориÑтувач завершить Ñ€ÐµÐ´Ð°Ð³ÑƒÐ²Ð°Ð½Ð½Ñ Ð°Ð±Ð¾ закінчитьÑÑ Ñ‡Ð°Ñ Ð±Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ.
\ No newline at end of file
diff --git a/wiki/inc/lang/uk/login.txt b/wiki/inc/lang/uk/login.txt
deleted file mode 100644
index f45f810..0000000
--- a/wiki/inc/lang/uk/login.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Вхід до вікі ======
-
-Ви не ввійшли до ÑиÑтеми. Введіть ваші реєÑтраційні дані Ð´Ð»Ñ Ñ‚Ð¾Ð³Ð¾, щоб увійти. У вашому браузері повинні бути увімкнені файли cookies.
-
diff --git a/wiki/inc/lang/uk/mailtext.txt b/wiki/inc/lang/uk/mailtext.txt
deleted file mode 100644
index 4f3072c..0000000
--- a/wiki/inc/lang/uk/mailtext.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-Сторінка в вашому ДокуВікі була змінена. Деталі нижче:
-
-Дата         : @DATE@
-ОглÑдач      : @BROWSER@
-ÐдреÑа IP    : @IPADDRESS@
-Ім'Ñ Ð²ÑƒÐ·Ð»Ð°   : @HOSTNAME@
-Стара ревізіÑ: @OLDPAGE@
-Ðова Ñ€ÐµÐ²Ñ–Ð·Ñ–Ñ : @NEWPAGE@
-ПідÑумок змін : @SUMMARY@
-КориÑтувач   : @USER@
-
-@DIFF@
diff --git a/wiki/inc/lang/uk/newpage.txt b/wiki/inc/lang/uk/newpage.txt
deleted file mode 100644
index 39cdecc..0000000
--- a/wiki/inc/lang/uk/newpage.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Сторінка ще не Ñ–Ñнує ======
-
-Ви прийшли за поÑиланнÑм на Ñторінку, що ще не Ñ–Ñнує. Якщо ваші права дозволÑють, ви можете Ñтворити цю Ñторінку натиÑнувши кнопку ''Створити Ñторінку''.
-
diff --git a/wiki/inc/lang/uk/norev.txt b/wiki/inc/lang/uk/norev.txt
deleted file mode 100644
index 3c9295f..0000000
--- a/wiki/inc/lang/uk/norev.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Ðемає такої ревізії ======
-
-Вказана Ñ€ÐµÐ²Ñ–Ð·Ñ–Ñ Ð½Ðµ Ñ–Ñнує. ВикориÑтовуйте кнопку ''Старі ревізії'', щоб отримати перелік ревізій цього документу.
-
diff --git a/wiki/inc/lang/uk/password.txt b/wiki/inc/lang/uk/password.txt
deleted file mode 100644
index 7db9be3..0000000
--- a/wiki/inc/lang/uk/password.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-Доброго днÑ, @FULLNAME@!
-
-Ваші дані кориÑтувача Ð´Ð»Ñ @TITLE@ на @DOKUWIKIURL@
-
-Login    : @LOGIN@
-Password : @PASSWORD@
diff --git a/wiki/inc/lang/uk/preview.txt b/wiki/inc/lang/uk/preview.txt
deleted file mode 100644
index b4174c7..0000000
--- a/wiki/inc/lang/uk/preview.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Попередній переглÑд ======
-
-Це попередній переглÑд того, Ñк буде виглÑдати ваш текÑÑ‚. Ðе забувайте, текÑÑ‚ ще **не збережено**!
-
diff --git a/wiki/inc/lang/uk/pwconfirm.txt b/wiki/inc/lang/uk/pwconfirm.txt
deleted file mode 100644
index cd981f1..0000000
--- a/wiki/inc/lang/uk/pwconfirm.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-Доброго днÑ, @FULLNAME@!
-
-ХтоÑÑŒ запитав новий пароль Ð´Ð»Ñ ÐºÐ¾Ñ€Ð¸Ñтувача @TITLE@ на @DOKUWIKIURL@
-
-Якщо це були не ви, ігноруйте це повідомленнÑ.
-
-Ð”Ð»Ñ Ð¿Ñ–Ð´Ñ‚Ð²ÐµÑ€Ð´Ð¶ÐµÐ½Ð½Ñ, що це дійÑно ви запитали новий пароль, будь лаÑка
-перейдіть за наÑтупним поÑиланнÑм.
-
-@CONFIRM@
diff --git a/wiki/inc/lang/uk/read.txt b/wiki/inc/lang/uk/read.txt
deleted file mode 100644
index 59ea6a1..0000000
--- a/wiki/inc/lang/uk/read.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-Ð¦Ñ Ñторінка доÑтупна тільки Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ³Ð»Ñду. Ви можете продивитиÑÑ Ð²Ð¸Ñ…Ñ–Ð´Ð½Ð¸Ð¹ текÑÑ‚, але не можете змінювати його. Якщо ви вважаєте, що це не вірно, звернітьÑÑ Ð´Ð¾ адмініÑтратора.
-
diff --git a/wiki/inc/lang/uk/recent.txt b/wiki/inc/lang/uk/recent.txt
deleted file mode 100644
index 645e3d8..0000000
--- a/wiki/inc/lang/uk/recent.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== ОÑтанні зміни ======
-
-Вказані нижче Ñторінки було змінено нещодавно.
-
diff --git a/wiki/inc/lang/uk/register.txt b/wiki/inc/lang/uk/register.txt
deleted file mode 100644
index 8fffc00..0000000
--- a/wiki/inc/lang/uk/register.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== РеєÑÑ‚Ñ€Ð°Ñ†Ñ–Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ кориÑтувача ======
-
-Введіть необхідну інформацію Ð´Ð»Ñ Ñ‚Ð¾Ð³Ð¾, щоб Ñтворити нового кориÑтувача у цій Вікі. ПереконайтеÑÑ. що ви ввели **правильну адреÑу e-mail** - Ñкщо ви не ввели пароль, то новий пароль буде відіÑлано на цю адреÑу. Ім'Ñ ÐºÐ¾Ñ€Ð¸Ñтувача повинно бути дозволеною [[doku>pagename|назвою Ñторінки]] вікі.
-
diff --git a/wiki/inc/lang/uk/registermail.txt b/wiki/inc/lang/uk/registermail.txt
deleted file mode 100644
index 14f0e4b..0000000
--- a/wiki/inc/lang/uk/registermail.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-ЗареєÑтровано нового кориÑтувача. ПереглÑньте деталі:
-
-КориÑтувач  : @NEWUSER@
-Повне ім'Ñ  : @NEWNAME@
-E-Mail      : @NEWEMAIL@
-
-Дата        : @DATE@
-Браузер     : @BROWSER@
-ÐдреÑа IP   : @IPADDRESS@
-Ðазва хоÑту : @HOSTNAME@
diff --git a/wiki/inc/lang/uk/resendpwd.txt b/wiki/inc/lang/uk/resendpwd.txt
deleted file mode 100644
index 208efad..0000000
--- a/wiki/inc/lang/uk/resendpwd.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== ÐадіÑлати новий пароль ======
-
-Заповніть відомоÑті Ð´Ð»Ñ Ñ‚Ð¾Ð³Ð¾, щоб отримати новий пароль у цій Вікі. Ðовий пароль буде надіÑлано на e-mail, що вказано у реєÑтраційних даних. Ім'Ñ ÐºÐ¾Ñ€Ð¸Ñтувача повинно бути дозволеним іменем кориÑтувача Вікі.
diff --git a/wiki/inc/lang/uk/resetpwd.txt b/wiki/inc/lang/uk/resetpwd.txt
deleted file mode 100644
index b24e884..0000000
--- a/wiki/inc/lang/uk/resetpwd.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Ð’Ñтановити новий пароль ======
-
-Будь-лаÑка, введіть новий пароль Ð´Ð»Ñ Ñ†Ñ–Ñ”Ñ— wiki.
\ No newline at end of file
diff --git a/wiki/inc/lang/uk/revisions.txt b/wiki/inc/lang/uk/revisions.txt
deleted file mode 100644
index 646de2a..0000000
--- a/wiki/inc/lang/uk/revisions.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Старі ревізії ======
-
-Це Ñтарі верÑÑ–Ñ— поточного документа. Ð”Ð»Ñ Ñ‚Ð¾Ð³Ð¾, щоб повернутиÑÑ Ð´Ð¾ Ñтарої верÑÑ–Ñ—, виберіть Ñ—Ñ—, натиÑніть ''Редагувати'', та збережіть Ñторінку.
-
diff --git a/wiki/inc/lang/uk/searchpage.txt b/wiki/inc/lang/uk/searchpage.txt
deleted file mode 100644
index f323c4a..0000000
--- a/wiki/inc/lang/uk/searchpage.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Пошук ======
-
-ДивітьÑÑ Ñ€ÐµÐ·ÑƒÐ»ÑŒÑ‚Ð°Ñ‚Ð¸ пошуку нижче. @CREATEPAGEINFO@
-
diff --git a/wiki/inc/lang/uk/showrev.txt b/wiki/inc/lang/uk/showrev.txt
deleted file mode 100644
index 2706b35..0000000
--- a/wiki/inc/lang/uk/showrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**Це Ñтара верÑÑ–Ñ Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ñƒ!**
-----
diff --git a/wiki/inc/lang/uk/stopwords.txt b/wiki/inc/lang/uk/stopwords.txt
deleted file mode 100644
index 288ab8e..0000000
--- a/wiki/inc/lang/uk/stopwords.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-# Це ÑпиÑок ігнорованих індекÑатором Ñлів, одне Ñлово в Ñ€Ñдку
-# При редагуванні цього файлу переконайтеÑÑ, що викориÑтовуєте Ñимволи Ð¿ÐµÑ€ÐµÐ²ÐµÐ´ÐµÐ½Ð½Ñ Ñ€Ñдку, Ñк в UNIX (одиночні)
-# Слова, коротші за 3 Ñимволи включати не треба. Вони ігноруютьÑÑ Ð² будь-Ñкому випадку
diff --git a/wiki/inc/lang/uk/subscr_digest.txt b/wiki/inc/lang/uk/subscr_digest.txt
deleted file mode 100644
index c226e29..0000000
--- a/wiki/inc/lang/uk/subscr_digest.txt
+++ /dev/null
@@ -1,14 +0,0 @@
-Доброго днÑ!
-
-Сторінку @PAGE@ у @TITLE@ було змінено.
-Зміни, Ñкі відбулиÑÑ:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-Стара верÑÑ–Ñ: @OLDPAGE@
-Ðова верÑÑ–Ñ: @NEWPAGE@
-
-Щоб відмовитиÑÑ Ð²Ñ–Ð´ повідомлень про Ñ€ÐµÐ´Ð°Ð³ÑƒÐ²Ð°Ð½Ð½Ñ Ñторінок, зайдіть під Ñвоїм ім'Ñм на Ñайт @DOKUWIKIURL@, потім відвідайте Ñторінку @SUBSCRIBE@
-та відпишітьÑÑ Ð²Ñ–Ð´ повідомлень про зміну Ñторінки та/або проÑтору імен.
diff --git a/wiki/inc/lang/uk/subscr_form.txt b/wiki/inc/lang/uk/subscr_form.txt
deleted file mode 100644
index 1c9d6d2..0000000
--- a/wiki/inc/lang/uk/subscr_form.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ–Ð´Ð¿Ð¸Ñками ======
-
-Ð¦Ñ Ñторінка дозволÑÑ” Вам керувати Вашими підпиÑками Ð´Ð»Ñ Ñ†Ñ–Ñ”Ñ— Ñторінки та проÑтору імен.
\ No newline at end of file
diff --git a/wiki/inc/lang/uk/subscr_list.txt b/wiki/inc/lang/uk/subscr_list.txt
deleted file mode 100644
index 6c4001f..0000000
--- a/wiki/inc/lang/uk/subscr_list.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-Доброго днÑ!
-
-Було змінено Ñторінки проÑтору імен @PAGE@ у @TITLE@.
-Зміни, Ñкі вібдулиÑÑ:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-Щоб відмовитиÑÑ Ð²Ñ–Ð´ повідомлень про Ñ€ÐµÐ´Ð°Ð³ÑƒÐ²Ð°Ð½Ð½Ñ Ñторінок, зайдіть під Ñвоїм ім'Ñм на Ñайт @DOKUWIKIURL@, потім відвідайте Ñторінку @SUBSCRIBE@
-та відпишітьÑÑ Ð²Ñ–Ð´ повідомлень про зміну Ñторінки та/або проÑтору імен.
diff --git a/wiki/inc/lang/uk/subscr_single.txt b/wiki/inc/lang/uk/subscr_single.txt
deleted file mode 100644
index 658bae5..0000000
--- a/wiki/inc/lang/uk/subscr_single.txt
+++ /dev/null
@@ -1,17 +0,0 @@
-Доброго чаÑу!
-
-Сторінку @PAGE@ у @TITLE@ було змінено.
-Зміни, що відбулиÑÑ:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-Дата : @DATE@
-КориÑтувач : @USER@
-ПідÑумок: @SUMMARY@
-Стара верÑÑ–Ñ: @OLDPAGE@
-Ðова верÑÑ–Ñ: @NEWPAGE@
-
-Щоб відмовитиÑÑ Ð²Ñ–Ð´ повідомлень про Ñ€ÐµÐ´Ð°Ð³ÑƒÐ²Ð°Ð½Ð½Ñ Ñторінок, зайдіть під Ñвоїм ім'Ñм на Ñайт @DOKUWIKIURL@, потім відвідайте Ñторінку @NEWPAGE@
-та відпишітьÑÑ Ð²Ñ–Ð´ повідомлень про зміну Ñторінки та/або проÑтору імен.
diff --git a/wiki/inc/lang/uk/updateprofile.txt b/wiki/inc/lang/uk/updateprofile.txt
deleted file mode 100644
index d043f99..0000000
--- a/wiki/inc/lang/uk/updateprofile.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== Оновити ваш профіль ======
-
-Ðеобхідно заповнити тільки ті полÑ, Ñкі ви бажаєте змінити. Ви не можете змінити Ñ–Ð¼â€™Ñ ÐºÐ¾Ñ€Ð¸Ñтувача.
-
-
diff --git a/wiki/inc/lang/uk/uploadmail.txt b/wiki/inc/lang/uk/uploadmail.txt
deleted file mode 100644
index ee982c8..0000000
--- a/wiki/inc/lang/uk/uploadmail.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-Ðа вашу ДокуВікі завантажено файл. Деталі:
-
-Файл : @MEDIA@
-Дата : @DATE@
-Браузер : @BROWSER@
-IP-ÐдреÑа : @IPADDRESS@
-Ðазва вузла : @HOSTNAME@
-Розмір : @SIZE@
-Тип MIME : @MIME@
-КориÑтувач : @USER@
diff --git a/wiki/inc/lang/vi/admin.txt b/wiki/inc/lang/vi/admin.txt
deleted file mode 100644
index d8ac73e..0000000
--- a/wiki/inc/lang/vi/admin.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Quản lý ======
-
-Sau đây là các mục quản lý trong DokuWiki.
diff --git a/wiki/inc/lang/vi/backlinks.txt b/wiki/inc/lang/vi/backlinks.txt
deleted file mode 100644
index eee624d..0000000
--- a/wiki/inc/lang/vi/backlinks.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Liên kết đến trang vừa xem ======
-
-Äây là danh sách các trang có liên kết đến trang vừa xem.
diff --git a/wiki/inc/lang/vi/conflict.txt b/wiki/inc/lang/vi/conflict.txt
deleted file mode 100644
index 646dcbc..0000000
--- a/wiki/inc/lang/vi/conflict.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== Có phiên bản mới hơn ======
-
-Trang bạn đang biên soạn có một phiên bản mới hơn. Việc này xảy ra khi một bạn đổi trang ấy khi bạn đang biên soạn trang này.
-
-Xem kỹ những thay đổi dưới đây, rồi quyết định giữ phiên bản nào. Nếu chá»n ''Lưu'', phiên bản cá»§a bạn được giữ lại. Bấm ''huá»·'' để giữ phiên bản kia.
diff --git a/wiki/inc/lang/vi/denied.txt b/wiki/inc/lang/vi/denied.txt
deleted file mode 100644
index fe6e759..0000000
--- a/wiki/inc/lang/vi/denied.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Không được phép vào ======
-
-Rất tiếc là bạn không được phép để tiếp tục.
-
diff --git a/wiki/inc/lang/vi/diff.txt b/wiki/inc/lang/vi/diff.txt
deleted file mode 100644
index 10bfd0f..0000000
--- a/wiki/inc/lang/vi/diff.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Khác biệt ======
-
-Äây là những khác biệt giữa phiên bạn được chá»n và phiên bản hiện tại cá»§a trang này.
-
diff --git a/wiki/inc/lang/vi/edit.txt b/wiki/inc/lang/vi/edit.txt
deleted file mode 100644
index 1c16f90..0000000
--- a/wiki/inc/lang/vi/edit.txt
+++ /dev/null
@@ -1 +0,0 @@
-Biên soạn trang này và bấm ''Lưu''. Xem [[wiki:syntax:vi|cú pháp của Wiki]] để biết cách soạn thảo. Xin bạn biên soạn trang này nếu bạn có thể **cải tiến** nó. Nếu bạn muốn thử nghiệm, bạn có thể thử ở [[playground:playground| chỗ thử]].
diff --git a/wiki/inc/lang/vi/editrev.txt b/wiki/inc/lang/vi/editrev.txt
deleted file mode 100644
index 8a2031c..0000000
--- a/wiki/inc/lang/vi/editrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**Bạn đã nạp một phiên bản cũ của văn bản!** Nếu lưu nó, bạn sẽ tạo phiên bản mới với dữ kiện này.
-----
diff --git a/wiki/inc/lang/vi/index.txt b/wiki/inc/lang/vi/index.txt
deleted file mode 100644
index 708d203..0000000
--- a/wiki/inc/lang/vi/index.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Mục lục ======
-
-Äây là mục lục cá»§a tất cả các trang, xếp theo thứ tá»± [[doku>namespaces|namespaces]].
diff --git a/wiki/inc/lang/vi/jquery.ui.datepicker.js b/wiki/inc/lang/vi/jquery.ui.datepicker.js
deleted file mode 100644
index 2c208ab..0000000
--- a/wiki/inc/lang/vi/jquery.ui.datepicker.js
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Vietnamese initialisation for the jQuery UI date picker plugin. */
-/* Translated by Le Thanh Huy (lthanhhuy@cit.ctu.edu.vn). */
-( function( factory ) {
-	if ( typeof define === "function" && define.amd ) {
-
-		// AMD. Register as an anonymous module.
-		define( [ "../widgets/datepicker" ], factory );
-	} else {
-
-		// Browser globals
-		factory( jQuery.datepicker );
-	}
-}( function( datepicker ) {
-
-datepicker.regional.vi = {
-	closeText: "Äóng",
-	prevText: "&#x3C;Trước",
-	nextText: "Tiếp&#x3E;",
-	currentText: "Hôm nay",
-	monthNames: [ "Tháng Một", "Tháng Hai", "Tháng Ba", "Tháng Tư", "Tháng Năm", "Tháng Sáu",
-	"Tháng Bảy", "Tháng Tám", "Tháng Chín", "Tháng Mưá»i", "Tháng Mưá»i Má»™t", "Tháng Mưá»i Hai" ],
-	monthNamesShort: [ "Tháng 1", "Tháng 2", "Tháng 3", "Tháng 4", "Tháng 5", "Tháng 6",
-	"Tháng 7", "Tháng 8", "Tháng 9", "Tháng 10", "Tháng 11", "Tháng 12" ],
-	dayNames: [ "Chủ Nhật", "Thứ Hai", "Thứ Ba", "Thứ Tư", "Thứ Năm", "Thứ Sáu", "Thứ Bảy" ],
-	dayNamesShort: [ "CN", "T2", "T3", "T4", "T5", "T6", "T7" ],
-	dayNamesMin: [ "CN", "T2", "T3", "T4", "T5", "T6", "T7" ],
-	weekHeader: "Tu",
-	dateFormat: "dd/mm/yy",
-	firstDay: 0,
-	isRTL: false,
-	showMonthAfterYear: false,
-	yearSuffix: "" };
-datepicker.setDefaults( datepicker.regional.vi );
-
-return datepicker.regional.vi;
-
-} ) );
diff --git a/wiki/inc/lang/vi/lang.php b/wiki/inc/lang/vi/lang.php
deleted file mode 100644
index 8e49dec..0000000
--- a/wiki/inc/lang/vi/lang.php
+++ /dev/null
@@ -1,242 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author James Do <jdo@myrealbox.com>
- */
-$lang['encoding']              = 'utf-8';
-$lang['direction']             = 'ltr';
-$lang['doublequoteopening']    = '“';
-$lang['doublequoteclosing']    = 'â€';
-$lang['singlequoteopening']    = '‘';
-$lang['singlequoteclosing']    = '’';
-$lang['apostrophe']            = '’';
-$lang['btn_edit']              = 'Biên soạn trang này';
-$lang['btn_source']            = 'Xem mã nguồn';
-$lang['btn_show']              = 'Xem trang';
-$lang['btn_create']            = 'Tạo trang này';
-$lang['btn_search']            = 'Tìm';
-$lang['btn_save']              = 'Lưu';
-$lang['btn_preview']           = 'Duyệt trước';
-$lang['btn_top']               = 'Trở lên trên';
-$lang['btn_newer']             = '<< mới hơn';
-$lang['btn_older']             = 'cũ hơn >>';
-$lang['btn_revs']              = 'Các phiên bản cũ';
-$lang['btn_recent']            = 'Thay đổi gần đây';
-$lang['btn_upload']            = 'Tải lên';
-$lang['btn_cancel']            = 'Huá»· bá»';
-$lang['btn_index']             = 'Mục lục';
-$lang['btn_secedit']           = 'Biên soạn';
-$lang['btn_login']             = 'Äăng nhập';
-$lang['btn_logout']            = 'Thoát';
-$lang['btn_admin']             = 'Quản lý';
-$lang['btn_update']            = 'Cập nhật';
-$lang['btn_delete']            = 'Xoá';
-$lang['btn_back']              = 'Quay lại';
-$lang['btn_backlink']          = 'Liên kết tới đây';
-$lang['btn_profile']           = 'Cập nhật hồ sơ';
-$lang['btn_reset']             = 'Làm lại';
-$lang['btn_resendpwd']         = 'Gửi mật khẩu mới';
-$lang['btn_draft']             = 'Sửa bản nháp';
-$lang['btn_recover']           = 'Phục hồi bản nháp';
-$lang['btn_draftdel']          = 'Xóa bản nháp';
-$lang['btn_revert']            = 'Phục hồi';
-$lang['btn_register']          = 'Äăng ký';
-$lang['btn_apply']             = 'Chấp nhận';
-$lang['btn_media']             = 'Quản lý tệp tin';
-$lang['loggedinas']            = 'Username đang dùng:';
-$lang['user']                  = 'Username';
-$lang['pass']                  = 'Mật khẩu';
-$lang['newpass']               = 'Mật khẩu mới';
-$lang['oldpass']               = 'Nhập lại mật khẩu hiện tại';
-$lang['passchk']               = 'lần nữa';
-$lang['remember']              = 'Lưu username/password lại';
-$lang['fullname']              = 'HỠvà tên';
-$lang['email']                 = 'E-Mail';
-$lang['profile']               = 'Hồ sơ thành viên';
-$lang['badlogin']              = 'Username hoặc password không đúng.';
-$lang['minoredit']             = 'Minor Changes';
-$lang['draftdate']             = 'Bản nháp được tự động lưu lúc';
-$lang['nosecedit']             = 'Các trang web đã được thay đổi trong khi chỠđợi, phần thông tin quá hạn đã được thay thế bằng trang đầy đủ.';
-$lang['regmissing']            = 'Bạn cần Ä‘iá»n vào tất cả các trưá»ng';
-$lang['reguexists']            = 'Bạn khác đã dùng username này rồi.';
-$lang['regsuccess']            = 'Äã tạo username, và đã gởi password.';
-$lang['regsuccess2']           = 'Thành viên vừa được tạo.';
-$lang['regmailfail']           = 'Không gởi password được. Xin bạn liên hệ vá»›i ngưá»i quản lý.';
-$lang['regbadmail']            = 'Email hình như không đúng. Xin bạn liên hệ vá»›i ngưá»i quản lý.';
-$lang['regbadpass']            = 'Hai mật khẩu đưa ra là không giống nhau, xin vui lòng thử lại.';
-$lang['regpwmail']             = 'Password DokuWiki của bạn là';
-$lang['reghere']               = 'Xin bạn đăng ký username nếu chưa có';
-$lang['profna']                = 'Wiki này không hỗ trợ sửa đổi hồ sơ cá nhân';
-$lang['profnochange']          = 'Không có thay đổi, không có gì để làm.';
-$lang['profnoempty']           = 'Không được để trống tên hoặc địa chỉ email.';
-$lang['profchanged']           = 'Cập nhật hồ sơ thành viên thành công.';
-$lang['pwdforget']             = 'Bạn quên mật khẩu? Tạo lại mật khẩu mới';
-$lang['resendna']              = 'Wiki này không hỗ trợ gửi lại mật khẩu.';
-$lang['resendpwd']             = 'Gửi mật khẩu mới cho';
-$lang['resendpwdmissing']      = 'Xin lá»—i, bạn phải Ä‘iá»n vào tất cả các trưá»ng.';
-$lang['resendpwdnouser']       = 'Xin lỗi, chúng tôi không thể tìm thấy thành viên này trong cơ sở dữ liệu của chúng tôi.';
-$lang['resendpwdbadauth']      = 'Xin lỗi, mã này xác thực không hợp lệ. Hãy chắc chắn rằng bạn sử dụng liên kết xác nhận đầy đủ.';
-$lang['resendpwdconfirm']      = 'Một liên kết xác nhận đã được gửi bằng email.';
-$lang['resendpwdsuccess']      = 'Mật khẩu mới của bạn đã được gửi bằng email.';
-$lang['license']               = 'Trừ khi có ghi chú khác, nội dung trên wiki này được cấp phép theo giấy phép sau đây:';
-$lang['licenseok']             = 'Lưu ý: Bằng cách chỉnh sửa trang này, bạn đồng ý cấp giấy phép nội dung của bạn theo giấy phép sau:';
-$lang['searchmedia']           = 'Tìm tên file:';
-$lang['searchmedia_in']        = 'Tìm ở %s';
-$lang['txt_upload']            = 'Chá»n tệp để tải lên:';
-$lang['txt_filename']          = 'Äiá»n wikiname (tuỳ ý):';
-$lang['txt_overwrt']           = 'Ghi đè file trùng';
-$lang['lockedby']              = 'Äang khoá bởi:';
-$lang['lockexpire']            = 'Sẽ được mở khóa vào lúc:';
-$lang['js']['willexpire']      = 'Trong má»™t phút nữa bài viết sẽ được mở khóa để cho phép ngưá»i khác chỉnh sá»­a.\nÄể tránh xung đột, bạn nên bấm nút Duyệt trước để lập lại thá»i gian khoá bài';
-$lang['js']['notsavedyet']     = 'Hiện có những thay đổi chưa được bảo lưu, và sẽ mất.\nBạn thật sự muốn tiếp tục?';
-$lang['js']['searchmedia']     = 'Tìm kiếm tập tin';
-$lang['js']['keepopen']        = 'Giữ cá»­a sổ Ä‘ang mở trên lá»±a chá»n';
-$lang['js']['hidedetails']     = 'Ẩn thông tin chi tiết';
-$lang['js']['mediatitle']      = 'Thiết lập liên kết';
-$lang['js']['mediadisplay']    = 'Kiểu liên kết';
-$lang['js']['mediaalign']      = 'Sắp hàng';
-$lang['js']['mediasize']       = 'Cỡ ảnh';
-$lang['js']['mediatarget']     = 'Äích cá»§a liên kết';
-$lang['js']['mediaclose']      = 'Äóng';
-$lang['js']['mediainsert']     = 'Chèn';
-$lang['js']['mediadisplayimg'] = 'Hiển thị ảnh.';
-$lang['js']['mediadisplaylnk'] = 'Chỉ hiển thị liên kết.';
-$lang['js']['mediasmall']      = 'Nhá»';
-$lang['js']['mediamedium']     = 'Vừa';
-$lang['js']['medialarge']      = 'To';
-$lang['js']['mediaoriginal']   = 'Kích cỡ gốc';
-$lang['js']['medialnk']        = 'Liên kết tới trang chi tiết';
-$lang['js']['mediadirect']     = 'Liên kết trực tiếp tới ảnh gốc';
-$lang['js']['medianolnk']      = 'Không liên kết';
-$lang['js']['medianolink']     = 'Không liên kết tới ảnh';
-$lang['js']['medialeft']       = 'Căn ảnh sang trái.';
-$lang['js']['mediaright']      = 'Căn ảnh sang phải.';
-$lang['js']['mediacenter']     = 'Cản ảnh ra giữa.';
-$lang['js']['medianoalign']    = 'Không căn.';
-$lang['js']['nosmblinks']      = 'Nối với các Windows shares chỉ có hiệu lực với Microsoft Internet Explorer.\nBạn vẫn có thể sao và chép các mốc nối.';
-$lang['js']['linkwiz']         = 'Hộp thoại liên kết';
-$lang['js']['linkto']          = 'Liên kết tới:';
-$lang['js']['del_confirm']     = 'Xoá mục này?';
-$lang['js']['restore_confirm'] = 'Sẵn sàng phục hồi phiên bản này?';
-$lang['js']['media_diff']      = 'So sánh:';
-$lang['js']['media_select']    = 'Chá»n nhiá»u file…';
-$lang['js']['media_upload_btn'] = 'Tải lên';
-$lang['js']['media_done_btn']  = 'Xong';
-$lang['js']['media_drop']      = 'Kéo các file vào đây để tải lên';
-$lang['js']['media_overwrt']   = 'Ghi đè các file trùng';
-$lang['rssfailed']             = 'Nguồn này gặp phải lỗi';
-$lang['nothingfound']          = 'Không tìm được gì';
-$lang['mediaselect']           = 'Xem';
-$lang['uploadsucc']            = 'Tải lên thành công';
-$lang['uploadfail']            = 'Tải lên thất bại. Có thể vì không đủ quyá»n?';
-$lang['uploadwrong']           = 'Tải lên bị từ chối. Cấm tải loại tệp này';
-$lang['uploadexist']           = 'Tệp tin bị trùng. Chưa có gì xảy ra.';
-$lang['namespaces']            = 'Thư mục';
-$lang['mediafiles']            = 'Tệp có sẵn ở';
-$lang['accessdenied']          = 'Bạn không được phép xem trang này.';
-$lang['mediausage']            = 'Sử dụng cú pháp sau đây để dẫn đến tập tin này:';
-$lang['mediaview']             = 'Xem tệp gốc';
-$lang['mediaroot']             = 'thư mục gốc';
-$lang['mediaupload']           = 'Tải má»™t tập tin lên thư mục hiện tại ở đây. Äể tạo thư mục con, thêm nó vào trước tên tập tin cá»§a bạn, phân cách bằng dấu hai chấm sau khi bạn chá»n các tập tin. File còn có thể được lá»±a chá»n bằng cách kéo và thả.';
-$lang['mediaextchange']        = 'Phần mở rộng thay đổi từ .%s thành .%s!';
-$lang['ref_inuse']             = 'Không thể xóa tập tin vì nó đang được sử dụng cho các trang sau:';
-$lang['ref_hidden']            = 'Một số tài liệu sử dụng cho trang này bạn không được cấp phép truy cập.';
-$lang['hits']                  = 'Trùng';
-$lang['quickhits']             = 'Trang trùng hợp';
-$lang['toc']                   = 'Ná»™i dung';
-$lang['current']               = 'hiện tại';
-$lang['yours']                 = 'Phiên bản hiện tại';
-$lang['diff']                  = 'cho xem khác biệt với phiên bản hiện tại';
-$lang['diff2']                 = 'Sá»± khác biệt giữa các bản được lá»±a chá»n';
-$lang['difflink']              = 'Liên kết để xem bản so sánh này';
-$lang['diff_type']             = 'Xem sự khác biệt:';
-$lang['diff_inline']           = 'Nội tuyến';
-$lang['diff_side']             = 'Xếp cạnh nhau';
-$lang['line']                  = 'Dòng';
-$lang['breadcrumb']            = 'Trang đã xem:';
-$lang['youarehere']            = 'Bạn đang ở đây:';
-$lang['lastmod']               = 'Thá»i Ä‘iểm thay đổi:';
-$lang['by']                    = 'do';
-$lang['deleted']               = 'bị xoá';
-$lang['created']               = 'được tạo ra';
-$lang['restored']              = 'phiên bản cũ đã được khôi phục (%s)';
-$lang['external_edit']         = 'external edit';
-$lang['summary']               = 'Tóm tắt biên soạn';
-$lang['noflash']               = '<a href="http://www.adobe.com/products/flashplayer/">Adobe Flash Plugin</a> cần được cài để có thể xem nội dung này.';
-$lang['mail_newpage']          = 'Trang được thêm:';
-$lang['mail_changed']          = 'Trang thay đổi:';
-$lang['changes_type']          = 'Xem thay đổi của';
-$lang['pages_changes']         = 'Trang';
-$lang['media_changes']         = 'Tệp media';
-$lang['both_changes']          = 'Cả trang và các tập tin media';
-$lang['qb_bold']               = 'Chữ đậm';
-$lang['qb_italic']             = 'Chữ nghiêng';
-$lang['qb_underl']             = 'Chữ gạch dưới';
-$lang['qb_code']               = 'Chữ mã nguồn';
-$lang['qb_strike']             = 'Strike-through Text';
-$lang['qb_h1']                 = 'Äầu đỠcấp 1';
-$lang['qb_h2']                 = 'Äầu đỠcấp 2';
-$lang['qb_h3']                 = 'Äầu đỠcấp 3';
-$lang['qb_h4']                 = 'Äầu đỠcấp 4';
-$lang['qb_h5']                 = 'Äầu đỠcấp 5';
-$lang['qb_link']               = 'Mốc nối nội tại';
-$lang['qb_extlink']            = 'Mốc nối ra ngoài';
-$lang['qb_hr']                 = 'Gạch ngang';
-$lang['qb_ol']                 = 'Äiểm trong danh sách có thứ tá»±';
-$lang['qb_ul']                 = 'Äiểm trong danh sách không đánh số';
-$lang['qb_media']              = 'Thêm ảnh và tệp khác';
-$lang['qb_sig']                = 'Äặt chữ ký';
-$lang['metaedit']              = 'Sá»­a Metadata';
-$lang['metasaveerr']           = 'Thất bại khi viết metadata';
-$lang['metasaveok']            = 'Metadata đã được lưu';
-$lang['btn_img_backto']            = 'Quay lại %s';
-$lang['img_title']             = 'Tiêu Ä‘á»:';
-$lang['img_caption']           = 'Ghi chú:';
-$lang['img_date']              = 'Ngày:';
-$lang['img_fname']             = 'Tên file:';
-$lang['img_fsize']             = 'Kích cỡ:';
-$lang['img_artist']            = 'Ngưá»i chụp:';
-$lang['img_copyr']             = 'Bản quyá»n:';
-$lang['img_format']            = 'Äịnh dạng:';
-$lang['img_camera']            = 'Camera:';
-$lang['img_keywords']          = 'Từ khóa:';
-$lang['img_width']             = 'Rá»™ng:';
-$lang['img_height']            = 'Cao:';
-$lang['btn_mediaManager']           = 'Xem trong trình quản lý tệp media';
-$lang['i_chooselang']          = 'Chá»n ngôn ngữ';
-$lang['i_retry']               = 'Thử lại';
-$lang['years']                 = 'cách đây %d năm';
-$lang['months']                = 'cách đây %d tháng';
-$lang['weeks']                 = 'cách đây %d tuần';
-$lang['days']                  = 'cách đây %d ngày';
-$lang['hours']                 = 'cách đây %d giá»';
-$lang['minutes']               = 'cách đây %d phút';
-$lang['seconds']               = 'cách đây %d giây';
-$lang['wordblock']             = 'Thay đổi của bạn đã không được lưu lại bởi vì nó có chứa văn bản bị chặn (spam).';
-$lang['media_uploadtab']       = 'Tải lên';
-$lang['media_searchtab']       = 'Tìm';
-$lang['media_file']            = 'Tệp';
-$lang['media_viewtab']         = 'Xem';
-$lang['media_edittab']         = 'Sá»­a';
-$lang['media_historytab']      = 'Lịch sử';
-$lang['media_list_thumbs']     = 'Ảnh thu nhá»';
-$lang['media_list_rows']       = 'Dòng';
-$lang['media_sort_name']       = 'Tên';
-$lang['media_sort_date']       = 'Ngày';
-$lang['media_namespaces']      = 'Chá»n thư mục';
-$lang['media_files']           = 'Các tệp trong %s';
-$lang['media_upload']          = 'Tải lên %s';
-$lang['media_search']          = 'Tìm ở %s';
-$lang['media_view']            = '%s';
-$lang['media_viewold']         = '%s ở %s';
-$lang['media_edit']            = 'Sá»­a %s';
-$lang['media_history']         = 'Lịch sử của %s';
-$lang['media_meta_edited']     = 'đã sửa metadata';
-$lang['media_perm_read']       = 'Sorry, bạn không đủ quyá»n truy cập.';
-$lang['media_perm_upload']     = 'Xin lá»—i, bạn không đủ quyá»n để upload file lên.';
-$lang['media_update']          = 'Tải lên phiên bản mới';
-$lang['media_restore']         = 'Phục hồi phiên bản này';
-$lang['email_signature_text'] = 'Äiện thư này tạo bởi DokuWiki ở
-@DOKUWIKIURL@';
diff --git a/wiki/inc/lang/vi/locked.txt b/wiki/inc/lang/vi/locked.txt
deleted file mode 100644
index acb0981..0000000
--- a/wiki/inc/lang/vi/locked.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Trang bị khoá ======
-
-Trang này đang bị khoá để một bạn khác biên soạn. Bạn cần đợi cho đến khi nào bạn kia đã biên soạn xong, hoặc khoá hết hạn.
diff --git a/wiki/inc/lang/vi/login.txt b/wiki/inc/lang/vi/login.txt
deleted file mode 100644
index 71a8b1a..0000000
--- a/wiki/inc/lang/vi/login.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Äăng nhập ======
-
-Hiện bạn chưa đăng nhập! Hãy khai báo thông tin đăng nhập vào ô ở phía dưới. Máy của bạn cần đặt chế độ nhận cookies để đăng nhập.
diff --git a/wiki/inc/lang/vi/mailtext.txt b/wiki/inc/lang/vi/mailtext.txt
deleted file mode 100644
index bcbb656..0000000
--- a/wiki/inc/lang/vi/mailtext.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-Một trang trên DokuWiki của bạn vừa được bổ sung hoặc thay đổi. Sau đây là chi tiết:
-
-Date        : @DATE@
-Browser     : @BROWSER@
-IP-Address  : @IPADDRESS@
-Hostname    : @HOSTNAME@
-Old Revision: @OLDPAGE@
-New Revision: @NEWPAGE@
-Edit Summary: @SUMMARY@
-User        : @USER@
-
-@DIFF@
diff --git a/wiki/inc/lang/vi/newpage.txt b/wiki/inc/lang/vi/newpage.txt
deleted file mode 100644
index 93f474b..0000000
--- a/wiki/inc/lang/vi/newpage.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Chưa có đỠtài này ======
-
-Bạn kết nối vào má»™t đỠtài chưa có. Bạn có tạo đỠtài này bằng cách bấm vào nút ''Tạo trang này'' ở góc trên, bên trái cá»­a sổ này. Nếu bạn không thấy nút này, thay vào đó là nút ''Xem mã nguồn'' chứng tá» bạn không có quyá»n biên tập trang này, hãy đăng nhập thá»­ xem bạn có quyá»n biên tập trang không. Nếu bạn nghÄ© đây là má»™t lá»—i, hãy báo cho ngưá»i quản trị.
diff --git a/wiki/inc/lang/vi/norev.txt b/wiki/inc/lang/vi/norev.txt
deleted file mode 100644
index 224bd1d..0000000
--- a/wiki/inc/lang/vi/norev.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Phiên bản chưa có ======
-
-Chưa có phiên bản được chỉ định. Xin bấm nút ''Phiên bản cũ'' để xem danh sách các phiên bản của văn bản này.
diff --git a/wiki/inc/lang/vi/password.txt b/wiki/inc/lang/vi/password.txt
deleted file mode 100644
index 9f80429..0000000
--- a/wiki/inc/lang/vi/password.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-Thân chào bạn @FULLNAME@!
-
-Äây là chi tiết để bạn đăng nhập @TITLE@ tại @DOKUWIKIURL@:
-
-Username: @LOGIN@
-Password: @PASSWORD@
diff --git a/wiki/inc/lang/vi/preview.txt b/wiki/inc/lang/vi/preview.txt
deleted file mode 100644
index f02a251..0000000
--- a/wiki/inc/lang/vi/preview.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Xem trước ======
-
-Văn bản của bạn sẽ thể hiện như sau. Nên nhớ: Văn bản này **chưa được lưu**!
diff --git a/wiki/inc/lang/vi/read.txt b/wiki/inc/lang/vi/read.txt
deleted file mode 100644
index eec6996..0000000
--- a/wiki/inc/lang/vi/read.txt
+++ /dev/null
@@ -1 +0,0 @@
-Trang này chỉ được Ä‘á»c thôi. Bạn có thể xem mã nguồn, nhưng không được thay đổi. Hãy báo lại ngưá»i quản lý nếu hệ thống hoạt động không đúng.
diff --git a/wiki/inc/lang/vi/recent.txt b/wiki/inc/lang/vi/recent.txt
deleted file mode 100644
index fe6628f..0000000
--- a/wiki/inc/lang/vi/recent.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Thay đổi gần đây ======
-
-Những trang sau được thay đổi gần đây.
diff --git a/wiki/inc/lang/vi/register.txt b/wiki/inc/lang/vi/register.txt
deleted file mode 100644
index f7d35c8..0000000
--- a/wiki/inc/lang/vi/register.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Äăng ký má»›i ======
-
-Xin Ä‘iá»n vào má»i thông tin sau đây để tạo má»™t username má»›i cho wiki này. Bạn cần cung cấp **e-mail chính xác** - để gởi password má»›i cá»§a bạn đến đấy. Username cần là má»™t [[doku>pagename|pagename]] hợp lệ.
diff --git a/wiki/inc/lang/vi/revisions.txt b/wiki/inc/lang/vi/revisions.txt
deleted file mode 100644
index b9e9779..0000000
--- a/wiki/inc/lang/vi/revisions.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Phiên bản cũ ======
-
-Sau đây là các phiên bản cÅ© cá»§a văn bản này. Äể quay vá» má»™t phiên bản cÅ©, bạn hãy chá»n nó từ danh sách dưới đây, sau đó bấm vào nút ''Phục hồi'' hoặc nhấp nút ''Biên soạn trang này'' và lưu nó lại.
diff --git a/wiki/inc/lang/vi/searchpage.txt b/wiki/inc/lang/vi/searchpage.txt
deleted file mode 100644
index cbba3fa..0000000
--- a/wiki/inc/lang/vi/searchpage.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Tìm ======
-
-Sau đây là kết quả mà bạn đã tìm. @CREATEPAGEINFO@
-
diff --git a/wiki/inc/lang/vi/showrev.txt b/wiki/inc/lang/vi/showrev.txt
deleted file mode 100644
index a146f4e..0000000
--- a/wiki/inc/lang/vi/showrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**Äây là má»™t phiên bản cÅ© cùa văn kiện!**
-----
diff --git a/wiki/inc/lang/zh-tw/admin.txt b/wiki/inc/lang/zh-tw/admin.txt
deleted file mode 100644
index 5916e71..0000000
--- a/wiki/inc/lang/zh-tw/admin.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== 管ç†é¸å–® ======
-
-以下為 DokuWiki 的管ç†è¨­å®šã€‚
\ No newline at end of file
diff --git a/wiki/inc/lang/zh-tw/adminplugins.txt b/wiki/inc/lang/zh-tw/adminplugins.txt
deleted file mode 100644
index 6d21ac2..0000000
--- a/wiki/inc/lang/zh-tw/adminplugins.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== 附加元件 =====
\ No newline at end of file
diff --git a/wiki/inc/lang/zh-tw/backlinks.txt b/wiki/inc/lang/zh-tw/backlinks.txt
deleted file mode 100644
index 6a8bf88..0000000
--- a/wiki/inc/lang/zh-tw/backlinks.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== åå‘é€£çµ ======
-
-這是引用ã€é€£çµåˆ°ç›®å‰é é¢çš„é é¢æ¸…單。
-
diff --git a/wiki/inc/lang/zh-tw/conflict.txt b/wiki/inc/lang/zh-tw/conflict.txt
deleted file mode 100644
index 4f31f66..0000000
--- a/wiki/inc/lang/zh-tw/conflict.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== 已存在更新版本 ======
-
-此檔案已存在更新的版本。這是因為有其他使用者在您編輯時變更了這份文件。
-
-è«‹ä»”ç´°æª¢æŸ¥ä»¥ä¸‹å·®ç•°ï¼Œå†æ±ºå®šä¿ç•™å“ªä»½ã€‚您å¯é¸æ“‡ã€Œå„²å­˜ã€æ‚¨çš„ç‰ˆæœ¬æˆ–ã€Œå–æ¶ˆã€ä¿ç•™ç›®å‰ç‰ˆæœ¬ã€‚
\ No newline at end of file
diff --git a/wiki/inc/lang/zh-tw/denied.txt b/wiki/inc/lang/zh-tw/denied.txt
deleted file mode 100644
index 23f306d..0000000
--- a/wiki/inc/lang/zh-tw/denied.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== æ¬Šé™æ‹’絕 ======
-
-抱歉,您沒有足夠權é™ç¹¼çºŒåŸ·è¡Œã€‚
-
diff --git a/wiki/inc/lang/zh-tw/diff.txt b/wiki/inc/lang/zh-tw/diff.txt
deleted file mode 100644
index e2c0500..0000000
--- a/wiki/inc/lang/zh-tw/diff.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== 差異處 ======
-
-這è£é¡¯ç¤ºå…©å€‹ç‰ˆæœ¬çš„差異處。
\ No newline at end of file
diff --git a/wiki/inc/lang/zh-tw/draft.txt b/wiki/inc/lang/zh-tw/draft.txt
deleted file mode 100644
index f14702e..0000000
--- a/wiki/inc/lang/zh-tw/draft.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== 發ç¾è‰ç¨¿æª”案 ======
-
-您上次的編輯程åºä¸¦æœªæ­£ç¢ºå®Œæˆã€‚DokuWiki 已在您編輯時自動儲存了一份è‰ç¨¿ä½¿æ‚¨å¯ä»¥ç¹¼çºŒç·¨è¼¯ã€‚以下是上次的編輯資料。
-
-請決定è¦//復原//您éºå¤±çš„編輯文件,//刪除//這份è‰ç¨¿ï¼Œæˆ–者//å–æ¶ˆ//編輯程åºã€‚
diff --git a/wiki/inc/lang/zh-tw/edit.txt b/wiki/inc/lang/zh-tw/edit.txt
deleted file mode 100644
index f6b7479..0000000
--- a/wiki/inc/lang/zh-tw/edit.txt
+++ /dev/null
@@ -1 +0,0 @@
-編輯本é å¾Œï¼Œè«‹æŒ‰ä¸‹ã€Œå„²å­˜ã€æŒ‰éˆ•。若è¦åƒçœ‹èªžæ³•說明,請到[[wiki:syntax|語法]]é ã€‚è«‹åªåœ¨èƒ½è®“本文å“質**更好**時æ‰ç·¨è¼¯ã€‚å¦‚æžœåªæ˜¯è¦æ¸¬è©¦ï¼Œè«‹ç§»çŽ‰æ­¥è‡³ [[playground:playground|éŠæ¨‚å ´]]。
\ No newline at end of file
diff --git a/wiki/inc/lang/zh-tw/editrev.txt b/wiki/inc/lang/zh-tw/editrev.txt
deleted file mode 100644
index 98a800a..0000000
--- a/wiki/inc/lang/zh-tw/editrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**您目å‰è¼‰å…¥çš„æ˜¯æœ¬ä»½æ–‡ä»¶çš„舊版ï¼** æ‚¨å¦‚æžœå­˜æª”ï¼Œé€™äº›èˆŠç‰ˆè³‡æ–™å°±æœƒè®Šæˆæœ€æ–°ç‰ˆæœ¬ã€‚
-----
diff --git a/wiki/inc/lang/zh-tw/index.txt b/wiki/inc/lang/zh-tw/index.txt
deleted file mode 100644
index 31e60ac..0000000
--- a/wiki/inc/lang/zh-tw/index.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== 網站地圖 ======
-
-這個網站地圖列出了所有å…許的é é¢ï¼Œä¾ [[doku>namespaces|分類å稱]] 排åºã€‚
\ No newline at end of file
diff --git a/wiki/inc/lang/zh-tw/install.html b/wiki/inc/lang/zh-tw/install.html
deleted file mode 100644
index 9a0d1dc..0000000
--- a/wiki/inc/lang/zh-tw/install.html
+++ /dev/null
@@ -1,8 +0,0 @@
-<p>本é é¢æ—¨åœ¨å¹«åŠ©æ‚¨å®Œæˆç¬¬ä¸€æ¬¡å®‰è£…和設定 <a href="http://dokuwiki.org">Dokuwiki</a>。關於安è£å·¥å…·çš„æ›´å¤šè¨Šæ¯è«‹åƒé–± <a href="http://dokuwiki.org/installer">官方文檔é é¢</a>。</p>
-
-<p>DokuWiki 使用普通檔案來儲存 wiki é é¢ï¼Œä»¥åŠèˆ‡é é¢ç›¸é—œçš„訊æ¯ï¼ˆä¾‹å¦‚:圖åƒã€æœå°‹ç´¢å¼•ã€ä¿®è¨‚記錄等)。為了正常é‹ä½œï¼ŒDokuWiki <strong>å¿…é ˆ</strong> æ“æœ‰é‡å°é‚£äº›è·¯å¾‘和檔案的寫入權é™ã€‚本安è£å·¥å…·ç„¡æ³•設定目錄權é™ï¼Œé€™é€šå¸¸è¦é€éŽå‘½ä»¤è¡Œã€FTP 或您主機上的控制å°ï¼ˆå¦‚cPanel)進行。</p>
-
-<p>本安è£å·¥å…·å°‡è¨­å®šæ‚¨çš„ DokuWiki 用於 <abbr title="è¨ªå•æŽ§åˆ¶åˆ—è¡¨">ACL</abbr> 的設定檔,它能讓管ç†å“¡ç™»å…¥ä¸¦ä½¿ç”¨ã€Œç®¡ç†ã€åŠŸèƒ½ä¾†å®‰è£é™„加元件ã€ç®¡ç†ä½¿ç”¨è€…ã€ç®¡ç†è¨ªå•權é™å’Œå…¶ä»–è¨­å®šè¨­å®šã€‚å®ƒä¸¦ä¸æ˜¯ DokuWiki 正常é‹ä½œæ‰€å¿…須,但安è£ä¹‹å¾Œå°‡æ›´æ–¹ä¾¿ç®¡ç†ã€‚</p>
-
-<p>有經驗的或有特殊需求的使用者,請åƒé–±æ›´è©³ç´°çš„ <a href="http://dokuwiki.org/install">å®‰è£æŒ‡å—</a>
-和 <a href="http://dokuwiki.org/config">設定</a>。</p>
\ No newline at end of file
diff --git a/wiki/inc/lang/zh-tw/jquery.ui.datepicker.js b/wiki/inc/lang/zh-tw/jquery.ui.datepicker.js
deleted file mode 100644
index c20754b..0000000
--- a/wiki/inc/lang/zh-tw/jquery.ui.datepicker.js
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Chinese initialisation for the jQuery UI date picker plugin. */
-/* Written by Ressol (ressol@gmail.com). */
-( function( factory ) {
-	if ( typeof define === "function" && define.amd ) {
-
-		// AMD. Register as an anonymous module.
-		define( [ "../widgets/datepicker" ], factory );
-	} else {
-
-		// Browser globals
-		factory( jQuery.datepicker );
-	}
-}( function( datepicker ) {
-
-datepicker.regional[ "zh-TW" ] = {
-	closeText: "關閉",
-	prevText: "&#x3C;上月",
-	nextText: "下月&#x3E;",
-	currentText: "今天",
-	monthNames: [ "一月","二月","三月","四月","五月","六月",
-	"七月","八月","乿œˆ","åæœˆ","å一月","å二月" ],
-	monthNamesShort: [ "一月","二月","三月","四月","五月","六月",
-	"七月","八月","乿œˆ","åæœˆ","å一月","å二月" ],
-	dayNames: [ "星期日","星期一","星期二","星期三","星期四","星期五","星期六" ],
-	dayNamesShort: [ "周日","周一","周二","周三","周四","周五","周六" ],
-	dayNamesMin: [ "日","一","二","三","四","五","六" ],
-	weekHeader: "周",
-	dateFormat: "yy/mm/dd",
-	firstDay: 1,
-	isRTL: false,
-	showMonthAfterYear: true,
-	yearSuffix: "å¹´" };
-datepicker.setDefaults( datepicker.regional[ "zh-TW" ] );
-
-return datepicker.regional[ "zh-TW" ];
-
-} ) );
diff --git a/wiki/inc/lang/zh-tw/lang.php b/wiki/inc/lang/zh-tw/lang.php
deleted file mode 100644
index e7384cf..0000000
--- a/wiki/inc/lang/zh-tw/lang.php
+++ /dev/null
@@ -1,348 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author chinsan <chinsan@mail2000.com.tw>
- * @author Li-Jiun Huang <ljhuang.tw@gmail.com>
- * @author http://www.chinese-tools.com/tools/converter-simptrad.html
- * @author Wayne San <waynesan@zerozone.tw>
- * @author Cheng-Wei Chien <e.cwchien@gmail.com>
- * @author Shuo-Ting Jian <shoting@gmail.com>
- * @author syaoranhinata@gmail.com
- * @author Ichirou Uchiki <syaoranhinata@gmail.com>
- * @author tsangho <ou4222@gmail.com>
- * @author Danny Lin <danny0838@gmail.com>
- * @author Stan <talktostan@gmail.com>
- * @author June-Hao Hou <junehao@gmail.com>
- * @author lioujheyu <lioujheyu@gmail.com>
- * @author Liou, Jhe-Yu <lioujheyu@gmail.com>
- */
-$lang['encoding']              = 'utf-8';
-$lang['direction']             = 'ltr';
-$lang['doublequoteopening']    = '“';
-$lang['doublequoteclosing']    = 'â€';
-$lang['singlequoteopening']    = '‘';
-$lang['singlequoteclosing']    = '’';
-$lang['apostrophe']            = '’';
-$lang['btn_edit']              = '編輯本é ';
-$lang['btn_source']            = '顯示原始碼';
-$lang['btn_show']              = '顯示é é¢';
-$lang['btn_create']            = '建立此é ';
-$lang['btn_search']            = 'æœå°‹';
-$lang['btn_save']              = '儲存';
-$lang['btn_preview']           = 'é è¦½';
-$lang['btn_top']               = '回到é é ‚';
-$lang['btn_newer']             = '<< 較新';
-$lang['btn_older']             = '較舊 >>';
-$lang['btn_revs']              = '舊版';
-$lang['btn_recent']            = '最近更新';
-$lang['btn_upload']            = '上傳';
-$lang['btn_cancel']            = 'å–æ¶ˆ';
-$lang['btn_index']             = '網站地圖';
-$lang['btn_secedit']           = '編輯此段';
-$lang['btn_login']             = '登入';
-$lang['btn_logout']            = '登出';
-$lang['btn_admin']             = '管ç†é¸å–®';
-$lang['btn_update']            = '更新設定';
-$lang['btn_delete']            = '刪除';
-$lang['btn_back']              = '回上一步';
-$lang['btn_backlink']          = 'åå‘連çµ';
-$lang['btn_subscribe']         = '訂閱更動通知';
-$lang['btn_profile']           = '更新個人資料';
-$lang['btn_reset']             = '資料é‡è¨­';
-$lang['btn_resendpwd']         = '設定新密碼';
-$lang['btn_draft']             = '編輯è‰ç¨¿';
-$lang['btn_recover']           = '復原è‰ç¨¿';
-$lang['btn_draftdel']          = 'æ¨æ£„è‰ç¨¿';
-$lang['btn_revert']            = '復原';
-$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']                  = '密碼';
-$lang['newpass']               = '新密碼';
-$lang['oldpass']               = 'ç›®å‰å¯†ç¢¼';
-$lang['passchk']               = '確èªå¯†ç¢¼';
-$lang['remember']              = '記ä½å¸³è™Ÿå¯†ç¢¼';
-$lang['fullname']              = 'å§“å';
-$lang['email']                 = '電郵';
-$lang['profile']               = '使用者個人資料';
-$lang['badlogin']              = '很抱歉,您的使用者å稱或密碼å¯èƒ½æœ‰éŒ¯èª¤ã€‚';
-$lang['badpassconfirm']        = '抱歉,這密碼是錯的';
-$lang['minoredit']             = 'å°ä¿®æ”¹';
-$lang['draftdate']             = 'è‰ç¨¿å·²è‡ªå‹•存檔於';
-$lang['nosecedit']             = 'åœ¨æ‚¨ç·¨è¼¯æœŸé–“ï¼Œå…¶ä»–ä½¿ç”¨è€…ä¿®æ”¹éŽæœ¬é é¢ã€‚倿®µè³‡æ–™å·²é€¾æ™‚,因此系統載入了全é ï¼Œä»¥å–代之。';
-$lang['regmissing']            = '很抱歉,所有欄ä½éƒ½è¦å¡«å¯«ã€‚';
-$lang['reguexists']            = '很抱歉,有人已使用了這個帳號。';
-$lang['regsuccess']            = '使用者帳號已建立,密碼已寄發至該電郵。';
-$lang['regsuccess2']           = '使用者帳號已建立。';
-$lang['regmailfail']           = '寄出密碼信似乎有å•題,請跟管ç†å“¡è¯çµ¡ï¼';
-$lang['regbadmail']            = '您輸入的電郵地å€ä¼¼ä¹Žä¸æ­£ç¢ºã€‚若您覺得是正確的,請與管ç†å“¡è¯çµ¡ã€‚';
-$lang['regbadpass']            = '兩次輸入的密碼ä¸ä¸€è‡´ï¼Œè«‹å†è©¦ä¸€æ¬¡ã€‚';
-$lang['regpwmail']             = '您的 DokuWiki 帳號密碼';
-$lang['reghere']               = '您還沒有帳號嗎?註冊一個å§ã€‚';
-$lang['profna']                = '本 wiki 䏿”¯æ´ä¿®æ”¹å€‹äººè³‡æ–™ã€‚';
-$lang['profnochange']          = '並未作任何變更。';
-$lang['profnoempty']           = '帳號或電郵地å€ä¸å¯ç©ºç™½ï¼';
-$lang['profchanged']           = '個人資料已更新。';
-$lang['profnodelete']          = '本 wiki 䏿”¯æ´åˆªé™¤ä½¿ç”¨è€…';
-$lang['profdeleteuser']        = '刪除帳號';
-$lang['profdeleted']           = '您的使用者帳號已從本 wiki 刪除';
-$lang['profconfdelete']        = '我想把帳號從本 wiki 刪除(ä¸èƒ½å¾©åŽŸï¼‰';
-$lang['profconfdeletemissing'] = '未勾é¸ç¢ºèªæ–¹å¡Š';
-$lang['pwdforget']             = 'å¿˜è¨˜å¯†ç¢¼äº†ï¼Ÿç´¢å–æ–°å¯†ç¢¼ï¼';
-$lang['resendna']              = '本 wiki 䏿”¯æ´é‡å¯„密碼。';
-$lang['resendpwd']             = '設定新密碼供';
-$lang['resendpwdmissing']      = '抱歉,您必須填寫所有欄ä½ã€‚';
-$lang['resendpwdnouser']       = '抱歉,資料庫內找ä¸åˆ°é€™å€‹ä½¿ç”¨è€…。';
-$lang['resendpwdbadauth']      = '抱歉,èªè­‰ç¢¼ç„¡æ•ˆã€‚è«‹ç¢ºèªæ‚¨ä½¿ç”¨äº†å®Œæ•´çš„確èªé€£çµã€‚';
-$lang['resendpwdconfirm']      = '確èªé€£çµå·²é€šéŽéƒµä»¶ç™¼é€çµ¦æ‚¨äº†ã€‚';
-$lang['resendpwdsuccess']      = '您的新密碼已寄出。';
-$lang['license']               = '若無特別註明,本 wiki 上的內容都是採用以下授權方å¼ï¼š';
-$lang['licenseok']             = '注æ„:編輯此é é¢è¡¨ç¤ºæ‚¨åŒæ„用以下授權方å¼ç™¼å¸ƒæ‚¨æ’°å¯«çš„內容:';
-$lang['searchmedia']           = 'æœå°‹æª”å:';
-$lang['searchmedia_in']        = '在 %s è£æœå°‹';
-$lang['txt_upload']            = 'è«‹é¸æ“‡è¦ä¸Šå‚³çš„æª”案:';
-$lang['txt_filename']          = '請輸入è¦ä¸Šå‚³è‡³æœ¬ wiki 的檔案å稱 (éžå¿…è¦):';
-$lang['txt_overwrt']           = '是å¦è¦è¦†è“‹åŽŸæœ‰æª”æ¡ˆ';
-$lang['maxuploadsize']         = 'æ¯å€‹ä¸Šå‚³æª”案ä¸å¯å¤§æ–¼ %s 。';
-$lang['lockedby']              = 'ç›®å‰å·²è¢«ä¸‹åˆ—人員鎖定:';
-$lang['lockexpire']            = 'é è¨ˆè§£é™¤éŽ–å®šæ–¼:';
-$lang['js']['willexpire']      = '本é çš„編輯鎖定將在一分é˜å…§åˆ°æœŸã€‚è¦é¿å…發生è¡çªï¼Œè«‹æŒ‰ã€Œé è¦½ã€éµé‡è¨­éŽ–å®šè¨ˆæ™‚ã€‚';
-$lang['js']['notsavedyet']     = '未儲存的變更將會éºå¤±ï¼Œç¹¼çºŒå—Žï¼Ÿ';
-$lang['js']['searchmedia']     = 'æœå°‹æª”案';
-$lang['js']['keepopen']        = '鏿“‡æ™‚ä¿æŒè¦–窗開啟';
-$lang['js']['hidedetails']     = 'éš±è—詳細內容';
-$lang['js']['mediatitle']      = '連çµè¨­å®š';
-$lang['js']['mediadisplay']    = '連çµé¡žåž‹';
-$lang['js']['mediaalign']      = 'æ ¡æ­£';
-$lang['js']['mediasize']       = '圖åƒå¤§å°';
-$lang['js']['mediatarget']     = '連çµç›®æ¨™';
-$lang['js']['mediaclose']      = '關閉';
-$lang['js']['mediainsert']     = 'æ’å…¥';
-$lang['js']['mediadisplayimg'] = '顯示此圖åƒ';
-$lang['js']['mediadisplaylnk'] = 'åªé¡¯ç¤ºé€£çµ';
-$lang['js']['mediasmall']      = 'å°åž‹ç‰ˆæœ¬';
-$lang['js']['mediamedium']     = '中型版本';
-$lang['js']['medialarge']      = '大型版本';
-$lang['js']['mediaoriginal']   = '原始版本';
-$lang['js']['medialnk']        = '連å‘內容é é¢';
-$lang['js']['mediadirect']     = '連å‘原始圖片';
-$lang['js']['medianolnk']      = 'ä¸é€£çµ';
-$lang['js']['medianolink']     = 'ä¸é€£çµåœ–åƒ';
-$lang['js']['medialeft']       = '圖åƒé å·¦å°é½Š';
-$lang['js']['mediaright']      = '圖åƒé å³å°é½Š';
-$lang['js']['mediacenter']     = '圖åƒç½®ä¸­å°é½Š';
-$lang['js']['medianoalign']    = 'ä¸å°é½Š';
-$lang['js']['nosmblinks']      = 'åªæœ‰åœ¨ Microsoft IE 下æ‰èƒ½åŸ·è¡Œã€Œé€£çµåˆ° Windows sharesã€ã€‚
-ä¸éŽæ‚¨ä»å¯è¤‡è£½åŠè²¼ä¸Šé€™å€‹é€£çµã€‚';
-$lang['js']['linkwiz']         = '建立連çµç²¾éˆ';
-$lang['js']['linkto']          = '連çµè‡³ï¼š';
-$lang['js']['del_confirm']     = '確定刪除é¸å–的項目?';
-$lang['js']['restore_confirm'] = '確定還原到這個版本?';
-$lang['js']['media_diff']      = '檢視差異:';
-$lang['js']['media_diff_both'] = '並排';
-$lang['js']['media_diff_opacity'] = 'é‡ç–Š';
-$lang['js']['media_diff_portions'] = '滑動';
-$lang['js']['media_select']    = '鏿“‡æª”案……';
-$lang['js']['media_upload_btn'] = '上傳';
-$lang['js']['media_done_btn']  = '完æˆ';
-$lang['js']['media_drop']      = '拖拉檔案到此上傳';
-$lang['js']['media_cancel']    = '刪除';
-$lang['js']['media_overwrt']   = '覆蓋已存在的檔案';
-$lang['rssfailed']             = 'æ“·å– RSS 饋逿ª”時發生錯誤:';
-$lang['nothingfound']          = 'æ²’æ‰¾åˆ°ä»»ä½•çµæžœã€‚';
-$lang['mediaselect']           = '媒體檔案';
-$lang['uploadsucc']            = '已上傳';
-$lang['uploadfail']            = '無法上傳。是å¦å› æ¬Šé™éŒ¯èª¤ï¼Ÿ';
-$lang['uploadwrong']           = '拒絕上傳。這個副檔åè¢«ç¦æ­¢äº†ï¼';
-$lang['uploadexist']           = '檔案已存在,未處ç†ã€‚';
-$lang['uploadbadcontent']      = '上傳檔案的內容ä¸ç¬¦åˆ %s 檔的副檔å。';
-$lang['uploadspam']            = '是次上傳被垃圾訊æ¯é»‘å單阻檔了。';
-$lang['uploadxss']             = 'å› å¯èƒ½å«æœ‰æƒ¡æ„內容,是次上傳已被阻檔。';
-$lang['uploadsize']            = '上傳的檔案太大了 (最大為:%s)';
-$lang['deletesucc']            = '檔案 "%s" 已刪除。';
-$lang['deletefail']            = '檔案 "%s" 無法刪除,請檢查權é™å®šã€‚';
-$lang['mediainuse']            = '檔案 "%s" ä»åœ¨ä½¿ç”¨ï¼Œä¸¦æœªåˆªé™¤ã€‚';
-$lang['namespaces']            = '分類å稱';
-$lang['mediafiles']            = 'å¯ç”¨çš„æª”案有';
-$lang['accessdenied']          = '您ä¸å¯ä»¥æª¢è¦–æ­¤é é¢ã€‚';
-$lang['mediausage']            = 'ä½¿ç”¨ä»¥ä¸‹çš„èªžæ³•ä¾†é€£çµæ­¤æª”案:';
-$lang['mediaview']             = '檢視原始檔案';
-$lang['mediaroot']             = 'root';
-$lang['mediaupload']           = '上傳檔案至目å‰åˆ†é¡žå稱之下。è¦å»ºç«‹å­åˆ†é¡žå稱,請將其å稱加在「上傳並é‡å‘½åç‚ºã€æª”案åçš„å‰é¢ï¼Œä¸¦ç”¨è‹±æ–‡å†’號隔開。';
-$lang['mediaextchange']        = '檔案類型已由 .%s 變更作 .%s ï¼';
-$lang['reference']             = '引用到本é çš„,åˆè¨ˆæœ‰';
-$lang['ref_inuse']             = '此檔案無法刪除,因以下é é¢æ­£åœ¨ä½¿ç”¨å®ƒï¼š';
-$lang['ref_hidden']            = '一些åƒè€ƒå…§å®¹ä½æ–¼æ‚¨æ²’æœ‰è®€å–æ¬Šé™çš„é é¢ä¸­';
-$lang['hits']                  = '個符åˆ';
-$lang['quickhits']             = '符åˆçš„é é¢å稱';
-$lang['toc']                   = '目錄表';
-$lang['current']               = 'ç›®å‰ç‰ˆæœ¬';
-$lang['yours']                 = '您的版本';
-$lang['diff']                  = '顯示與目å‰ç‰ˆæœ¬çš„差異';
-$lang['diff2']                 = 'é¡¯ç¤ºé¸æ“‡ç‰ˆæœ¬é–“的差異';
-$lang['difflink']              = '連å‘é€™å€‹æ¯”å°æª¢è¦–';
-$lang['diff_type']             = '檢視差異:';
-$lang['diff_inline']           = '行內';
-$lang['diff_side']             = '並排';
-$lang['diffprevrev']           = '剿¬¡ä¿®æ”¹
-';
-$lang['diffnextrev']           = '下次修改';
-$lang['difflastrev']           = '最後一次修改
-';
-$lang['line']                  = '行';
-$lang['breadcrumb']            = '足跡:';
-$lang['youarehere']            = '您在這è£:';
-$lang['lastmod']               = '上一次變更:';
-$lang['by']                    = 'ç”±';
-$lang['deleted']               = '移除';
-$lang['created']               = '建立';
-$lang['restored']              = '還原æˆèˆŠç‰ˆ (%s)';
-$lang['external_edit']         = '外部編輯';
-$lang['summary']               = '編輯摘è¦';
-$lang['noflash']               = 'é¡¯ç¤ºæ­¤å…§å®¹éœ€è¦ <a href="http://www.adobe.com/products/flashplayer/">Adobe Flash 附加元件</a>。';
-$lang['download']              = '下載程å¼ç¢¼ç‰‡æ®µ';
-$lang['tools']                 = '工具';
-$lang['user_tools']            = '使用者工具';
-$lang['site_tools']            = '網站工具';
-$lang['page_tools']            = 'é é¢å·¥å…·';
-$lang['skip_to_content']       = '跳至內容';
-$lang['sidebar']               = 'å´æ¬„';
-$lang['mail_newpage']          = '增加的é é¢ï¼š';
-$lang['mail_changed']          = '變更的é é¢ï¼š';
-$lang['mail_subscribe_list']   = '分類å稱中變更的é é¢ï¼š';
-$lang['mail_new_user']         = '新使用者:';
-$lang['mail_upload']           = '已上傳檔案:';
-$lang['changes_type']          = '檢視最近更新類型';
-$lang['pages_changes']         = 'é é¢';
-$lang['media_changes']         = '多媒體檔案';
-$lang['both_changes']          = 'é é¢å’Œå¤šåª’體檔案';
-$lang['qb_bold']               = 'ç²—é«”';
-$lang['qb_italic']             = '斜體';
-$lang['qb_underl']             = '底線';
-$lang['qb_code']               = '程å¼ç¢¼';
-$lang['qb_strike']             = '刪除線';
-$lang['qb_h1']                 = 'H1 標題';
-$lang['qb_h2']                 = 'H2 標題';
-$lang['qb_h3']                 = 'H3 標題';
-$lang['qb_h4']                 = 'H4 標題';
-$lang['qb_h5']                 = 'H5 標題';
-$lang['qb_h']                  = '標題';
-$lang['qb_hs']                 = '鏿“‡æ¨™é¡Œ';
-$lang['qb_hplus']              = '較大標題';
-$lang['qb_hminus']             = 'è¼ƒå°æ¨™é¡Œ';
-$lang['qb_hequal']             = 'åŒç­‰æ¨™é¡Œ';
-$lang['qb_link']               = '內部連çµ';
-$lang['qb_extlink']            = '外部連çµ';
-$lang['qb_hr']                 = '水平線';
-$lang['qb_ol']                 = '有åºåˆ—表項目';
-$lang['qb_ul']                 = 'ç„¡åºåˆ—表項目';
-$lang['qb_media']              = '加入圖片或檔案 (開新視窗)';
-$lang['qb_sig']                = 'æ’入簽å';
-$lang['qb_smileys']            = '表情符號';
-$lang['qb_chars']              = '特殊字元';
-$lang['upperns']               = 'å‰å¾€çˆ¶åˆ†é¡žå稱';
-$lang['metaedit']              = '編輯後設資料';
-$lang['metasaveerr']           = '後設資料無法寫入';
-$lang['metasaveok']            = '後設資料已儲存';
-$lang['img_title']             = '標題:';
-$lang['img_caption']           = '照片說明:';
-$lang['img_date']              = '日期:';
-$lang['img_fname']             = '檔å:';
-$lang['img_fsize']             = '大å°:';
-$lang['img_artist']            = 'æ”影者:';
-$lang['img_copyr']             = '版權:';
-$lang['img_format']            = 'æ ¼å¼:';
-$lang['img_camera']            = '相機:';
-$lang['img_keywords']          = 'é—œéµå­—:';
-$lang['img_width']             = '寬度:';
-$lang['img_height']            = '高度:';
-$lang['subscr_subscribe_success'] = '已將 %s 加入至 %s 的訂閱列表';
-$lang['subscr_subscribe_error'] = '將 %s 加入至 %s 的訂閱列表時發生錯誤';
-$lang['subscr_subscribe_noaddress'] = '沒有與您登入相關的地å€ï¼Œç„¡æ³•將您加入訂閱列表';
-$lang['subscr_unsubscribe_success'] = '已將 %s 移除自 %s 的訂閱列表';
-$lang['subscr_unsubscribe_error'] = '將 %s 移除自 %s 的訂閱列表時發生錯誤';
-$lang['subscr_already_subscribed'] = '%s å·²ç¶“ç² %s 訂閱了';
-$lang['subscr_not_subscribed'] = '%s å°šæœªç² %s 訂閱';
-$lang['subscr_m_not_subscribed'] = '您尚未訂閱目å‰çš„é é¢æˆ–分類å稱。';
-$lang['subscr_m_new_header']   = '加入訂閱';
-$lang['subscr_m_current_header'] = 'ç›®å‰è¨‚é–±';
-$lang['subscr_m_unsubscribe']  = 'å–æ¶ˆè¨‚é–±';
-$lang['subscr_m_subscribe']    = '訂閱';
-$lang['subscr_m_receive']      = '接收';
-$lang['subscr_style_every']    = 'æ¯æ¬¡æ›´æ”¹éƒ½ç™¼é€ä¿¡ä»¶';
-$lang['subscr_style_digest']   = 'å°æ¯å€‹é é¢ç™¼é€æ›´æ”¹çš„æ‘˜è¦ä¿¡ä»¶ (æ¯ %.2f 天)';
-$lang['subscr_style_list']     = '自上次發信以來更改的é é¢çš„列表 (æ¯ %.2f 天)';
-$lang['authtempfail']          = 'æš«ä¸æä¾›å¸³è™Ÿèªè­‰ã€‚è‹¥æœ¬ç‹€æ³æŒçºŒï¼Œè«‹é€šçŸ¥æœ¬ wiki 管ç†å“¡ã€‚';
-$lang['i_chooselang']          = '鏿“‡æ‚¨çš„語系';
-$lang['i_installer']           = 'DokuWiki 安è£å·¥å…·';
-$lang['i_wikiname']            = '本 wiki çš„å稱';
-$lang['i_enableacl']           = '啟用 ACL (建議)';
-$lang['i_superuser']           = '超級使用者';
-$lang['i_problems']            = '安è£ç¨‹å¼ç™¼ç¾å¦‚下的å•題。您必須修正它們æ‰èƒ½ç¹¼çºŒã€‚';
-$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_permfail']            = '<code>%s</code> 無法經由 DokuWiki 寫入。您必須修正該目錄的權é™ï¼';
-$lang['i_confexists']          = '<code>%s</code> 已經存在';
-$lang['i_writeerr']            = '無法建立 <code>%s</code>。您必須檢查目錄/檔案的權é™ä¸¦æ‰‹å‹•建立該檔案。';
-$lang['i_badhash']             = '無法辨識或已é­ä¿®æ”¹çš„ dokuwiki.php (hash=<code>%s</code>)';
-$lang['i_badval']              = '<code>%s</code> —— éžæ³•或空白的值';
-$lang['i_success']             = '設定已完æˆã€‚您ç¾åœ¨å¯ä»¥åˆªé™¤ install.php 檔案。繼續到
-<a href="doku.php?id=wiki:welcome">您的新 DokuWiki</a>.';
-$lang['i_failure']             = '寫入設定檔時發生了一些錯誤。您必須在使用<a href="doku.php?id=wiki:welcome">您的新 Dokuwiki</a> 之剿‰‹å‹•修正它們。';
-$lang['i_policy']              = 'åˆæ­¥çš„ ACL 政策';
-$lang['i_pol0']                = '開放的 wiki (任何人å¯è®€å–ã€å¯«å…¥ã€ä¸Šå‚³)';
-$lang['i_pol1']                = '公開的 wiki (任何人å¯è®€å–,註冊使用者å¯å¯«å…¥èˆ‡ä¸Šå‚³)';
-$lang['i_pol2']                = 'å°é–‰çš„ wiki (åªæœ‰è¨»å†Šä½¿ç”¨è€…å¯è®€å–ã€å¯«å…¥ã€ä¸Šå‚³)';
-$lang['i_allowreg']            = 'å…許使用者自行註冊';
-$lang['i_retry']               = 'é‡è©¦';
-$lang['i_license']             = 'è«‹é¸æ“‡æ‚¨æƒ³è¦çš„內容發佈授權方å¼ï¼š';
-$lang['i_license_none']        = 'ä¸è¦é¡¯ç¤ºä»»ä½•關於授權方å¼çš„訊æ¯';
-$lang['i_pop_field']           = 'è«‹å”助我們改進 Dokuwiki:';
-$lang['i_pop_label']           = 'æ¯æœˆå‘ Dokuwiki 開發者發é€åŒ¿å的使用數據';
-$lang['recent_global']         = '您正在閱讀分類å稱: <b>%s</b> 中的變更。您亦å¯è§€çœ‹æœ¬ wiki <a href="%s">所有的最近更新</a>。';
-$lang['years']                 = '%d å¹´å‰';
-$lang['months']                = '%d 個月å‰';
-$lang['weeks']                 = '%d 週å‰';
-$lang['days']                  = '%d 天å‰';
-$lang['hours']                 = '%d 個尿™‚å‰';
-$lang['minutes']               = '%d 分é˜å‰';
-$lang['seconds']               = '%d ç§’é˜å‰';
-$lang['wordblock']             = 'ç„¡æ³•å„²å­˜æ‚¨çš„æ›´æ”¹ï¼Œå› å®ƒå«æœ‰å—阻擋的文字 (垃圾訊æ¯)。';
-$lang['media_uploadtab']       = '上傳';
-$lang['media_searchtab']       = 'æœå°‹';
-$lang['media_file']            = '檔案';
-$lang['media_viewtab']         = '檢視';
-$lang['media_edittab']         = '編輯';
-$lang['media_historytab']      = 'æ­·å²ç´€éŒ„';
-$lang['media_list_thumbs']     = '縮圖';
-$lang['media_list_rows']       = '列表';
-$lang['media_sort_name']       = 'å稱';
-$lang['media_sort_date']       = '日期';
-$lang['media_namespaces']      = '鏿“‡åˆ†é¡žå稱';
-$lang['media_files']           = '在 %s 中的檔案';
-$lang['media_upload']          = '上傳至 %s';
-$lang['media_search']          = '在 %s 中æœå°‹';
-$lang['media_view']            = '%s';
-$lang['media_viewold']         = '%s 在 %s';
-$lang['media_edit']            = '編輯 %s';
-$lang['media_history']         = '%s 的歷å²ç´€éŒ„';
-$lang['media_meta_edited']     = '元資料已編輯';
-$lang['media_perm_read']       = '抱歉,您沒有足夠權é™è®€å–檔案。';
-$lang['media_perm_upload']     = '抱歉,您沒有足夠權é™ä¸Šå‚³æª”案。';
-$lang['media_update']          = '上傳新的版本';
-$lang['media_restore']         = '還原這個版本';
-$lang['currentns']             = 'ç›®å‰çš„命å空間';
-$lang['searchresult']          = 'æœå°‹çµæžœ';
-$lang['plainhtml']             = 'ç´” HTML';
-$lang['wikimarkup']            = 'Wiki 語法標記';
-$lang['email_signature_text'] = '本信件由以下 DokuWiki 網站產生
-@DOKUWIKIURL@';
diff --git a/wiki/inc/lang/zh-tw/locked.txt b/wiki/inc/lang/zh-tw/locked.txt
deleted file mode 100644
index 819e59e..0000000
--- a/wiki/inc/lang/zh-tw/locked.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== é é¢éŽ–å®š ======
-
-其他使用者正在編輯本é ï¼Œæ‚¨å¿…須等他完æˆç·¨è¼¯æˆ–等鎖定時間éŽåŽ»ã€‚
diff --git a/wiki/inc/lang/zh-tw/login.txt b/wiki/inc/lang/zh-tw/login.txt
deleted file mode 100644
index b82f08a..0000000
--- a/wiki/inc/lang/zh-tw/login.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== 登入 ======
-
-您尚未登入,請輸入您的使用者å稱和密碼。 å¦å¤–,ç€è¦½å™¨éœ€è¦å•Ÿç”¨ cookies 以登入本 wiki。
-
diff --git a/wiki/inc/lang/zh-tw/mailtext.txt b/wiki/inc/lang/zh-tw/mailtext.txt
deleted file mode 100644
index 7ffb83e..0000000
--- a/wiki/inc/lang/zh-tw/mailtext.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-您的 DokuWiki 有個新增或變動的é é¢ã€‚詳細資料如下:
-
-日期     : @DATE@
-ç€è¦½å™¨   : @BROWSER@
-IP ä½å€   : @IPADDRESS@
-主機å稱 : @HOSTNAME@
-舊版本   : @OLDPAGE@
-新版本   : @NEWPAGE@
-ç·¨è¼¯æ‘˜è¦ : @SUMMARY@
-使用者   : @USER@
-
-@DIFF@
diff --git a/wiki/inc/lang/zh-tw/mailwrap.html b/wiki/inc/lang/zh-tw/mailwrap.html
deleted file mode 100644
index d257190..0000000
--- a/wiki/inc/lang/zh-tw/mailwrap.html
+++ /dev/null
@@ -1,13 +0,0 @@
-<html>
-<head>
-<title>@TITLE@</title>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-</head>
-<body>
-
-@HTMLBODY@
-
-<br /><hr />
-<small>@EMAILSIGNATURE@</small>
-</body>
-</html>
\ No newline at end of file
diff --git a/wiki/inc/lang/zh-tw/newpage.txt b/wiki/inc/lang/zh-tw/newpage.txt
deleted file mode 100644
index 06ccd3d..0000000
--- a/wiki/inc/lang/zh-tw/newpage.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== 此主題ä¸å­˜åœ¨ ======
-
-您來到了一個未建立é é¢çš„主題。如果權é™å…許,您å¯ä»¥ç”¨ 「建立此é ã€æŒ‰éˆ•建立é é¢ã€‚ 
\ No newline at end of file
diff --git a/wiki/inc/lang/zh-tw/norev.txt b/wiki/inc/lang/zh-tw/norev.txt
deleted file mode 100644
index 2a32ba6..0000000
--- a/wiki/inc/lang/zh-tw/norev.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== 無此版本 ======
-
-該版本的文件ä¸å­˜åœ¨ã€‚è«‹ç”¨ã€ŒèˆŠç‰ˆã€æŒ‰éˆ•檢視該文件所有舊版本清單。
\ No newline at end of file
diff --git a/wiki/inc/lang/zh-tw/password.txt b/wiki/inc/lang/zh-tw/password.txt
deleted file mode 100644
index 9898f24..0000000
--- a/wiki/inc/lang/zh-tw/password.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-@FULLNAME@ 您好ï¼
-
-é€™æ˜¯æ‚¨åœ¨ä½æ–¼ @DOKUWIKIURL@ 之 @TITLE@ 的使用者資料
-
-帳號 : @LOGIN@
-密碼 : @PASSWORD@
diff --git a/wiki/inc/lang/zh-tw/preview.txt b/wiki/inc/lang/zh-tw/preview.txt
deleted file mode 100644
index 95d4b10..0000000
--- a/wiki/inc/lang/zh-tw/preview.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== é è¦½ ======
-
-以下是該文件的é è¦½ã€‚請記ä½ï¼š**您還未儲存它**ï¼
-
diff --git a/wiki/inc/lang/zh-tw/pwconfirm.txt b/wiki/inc/lang/zh-tw/pwconfirm.txt
deleted file mode 100644
index 93ed569..0000000
--- a/wiki/inc/lang/zh-tw/pwconfirm.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-@FULLNAME@ 您好ï¼
-
-æ„Ÿè¬æ‚¨åœ¨ @TITLE@ ( @DOKUWIKIURL@ ) 註冊了使用者帳號。我們收到請求,希望能å…許此帳號使用新密碼。
-
-å¦‚æžœæ‚¨æ²’æœ‰ç™¼é€æ­¤è«‹æ±‚,請忽略這å°éƒµä»¶ã€‚
-
-若您真的è¦ä½¿ç”¨æ–°å¯†ç¢¼ï¼Œè«‹æ‹œè¨ªä»¥ä¸‹çš„連çµã€‚
-
-@CONFIRM@
diff --git a/wiki/inc/lang/zh-tw/read.txt b/wiki/inc/lang/zh-tw/read.txt
deleted file mode 100644
index 4a472cd..0000000
--- a/wiki/inc/lang/zh-tw/read.txt
+++ /dev/null
@@ -1 +0,0 @@
-æœ¬é æ˜¯å”¯è®€çš„,您å¯ä»¥çœ‹åˆ°åŽŸå§‹ç¢¼ï¼Œä½†ä¸èƒ½æ›´å‹•å®ƒã€‚æ‚¨å¦‚æžœè¦ºå¾—å®ƒä¸æ‡‰è¢«éŽ–ä¸Šï¼Œè«‹è©¢å•管ç†å“¡ã€‚
\ No newline at end of file
diff --git a/wiki/inc/lang/zh-tw/recent.txt b/wiki/inc/lang/zh-tw/recent.txt
deleted file mode 100644
index 2831429..0000000
--- a/wiki/inc/lang/zh-tw/recent.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== 最近更新 ======
-
-以下的é é¢æ˜¯æœ€è¿‘æ‰æ›´æ–°çš„:
-
-
diff --git a/wiki/inc/lang/zh-tw/register.txt b/wiki/inc/lang/zh-tw/register.txt
deleted file mode 100644
index 6f2a75c..0000000
--- a/wiki/inc/lang/zh-tw/register.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== 註冊新使用者 ======
-
-è‹¥è¦è¨»å†Šæœ¬ wiki 的帳號,請填寫下列資料。請確定您æä¾›çš„æ˜¯**åˆæ³•的電郵地å€**。如果您ä¸å¿…填寫密碼,系統就會為您自動產生登入密碼,並寄é€åˆ°è©²é›»éƒµåœ°å€ã€‚登入åç¨±é ˆç¬¦åˆæ­£ç¢º[[doku>pagename|é é¢å稱]]之æ¢ä»¶ã€‚
diff --git a/wiki/inc/lang/zh-tw/registermail.txt b/wiki/inc/lang/zh-tw/registermail.txt
deleted file mode 100644
index 22b7ff8..0000000
--- a/wiki/inc/lang/zh-tw/registermail.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-有新的使用者註冊。詳細資料如下:
-
-帳號     : @NEWUSER@
-å§“å     : @NEWNAME@
-電郵   : @NEWEMAIL@
-
-日期     : @DATE@
-ç€è¦½å™¨   : @BROWSER@
-IP ä½å€   : @IPADDRESS@
-主機å稱 : @HOSTNAME@
diff --git a/wiki/inc/lang/zh-tw/resendpwd.txt b/wiki/inc/lang/zh-tw/resendpwd.txt
deleted file mode 100644
index 46078a3..0000000
--- a/wiki/inc/lang/zh-tw/resendpwd.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== 坄逿–°å¯†ç¢¼ ======
-
-請在以下欄ä½è¼¸å…¥æ‚¨çš„帳號,新密碼將會寄é€åˆ°æ‚¨è¨»å†Šæ™‚填寫的電郵地å€ã€‚
\ No newline at end of file
diff --git a/wiki/inc/lang/zh-tw/resetpwd.txt b/wiki/inc/lang/zh-tw/resetpwd.txt
deleted file mode 100644
index ef0bff2..0000000
--- a/wiki/inc/lang/zh-tw/resetpwd.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== 設定新密碼 ======
-
-請為您的帳號輸入新密碼。
\ No newline at end of file
diff --git a/wiki/inc/lang/zh-tw/revisions.txt b/wiki/inc/lang/zh-tw/revisions.txt
deleted file mode 100644
index 64daa99..0000000
--- a/wiki/inc/lang/zh-tw/revisions.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== 舊版 ======
-
-以下是該文件的舊版本。如è¦é‚„åŽŸæˆæŸå€‹èˆŠç‰ˆæ¬¡ï¼Œå°±é»žä¸‹å®ƒï¼Œç„¶å¾ŒæŒ‰ã€Œç·¨è¼¯æœ¬é ã€ï¼Œä¸¦å­˜æª”起來就å¯ä»¥äº†ã€‚
\ No newline at end of file
diff --git a/wiki/inc/lang/zh-tw/searchpage.txt b/wiki/inc/lang/zh-tw/searchpage.txt
deleted file mode 100644
index 9e2c13a..0000000
--- a/wiki/inc/lang/zh-tw/searchpage.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== æœå°‹ç²¾éˆ ======
-
-æç¤ºï¼šæ‚¨å¯ä»¥åœ¨ä¸‹é¢æ‰¾åˆ°æ‚¨çš„æœå°‹çµæžœã€‚@CREATEPAGEINFO@
-
diff --git a/wiki/inc/lang/zh-tw/showrev.txt b/wiki/inc/lang/zh-tw/showrev.txt
deleted file mode 100644
index 306aa6e..0000000
--- a/wiki/inc/lang/zh-tw/showrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**這是本文件的舊版ï¼**
-----
diff --git a/wiki/inc/lang/zh-tw/stopwords.txt b/wiki/inc/lang/zh-tw/stopwords.txt
deleted file mode 100644
index e549250..0000000
--- a/wiki/inc/lang/zh-tw/stopwords.txt
+++ /dev/null
@@ -1,31 +0,0 @@
-# 本清單列出製作索引檔 (index) 時ä¸è¦åˆ—入的關éµå­—,格å¼ç‚ºæ¯å­— (詞) 佔一行。
-# 在修改本清單時,請注æ„è¦ç”¨ UNIX æ ¼å¼çš„æ›è¡Œç¬¦è™Ÿ (newline) 處ç†ï¼Œè€Œéž DOS çš„ CR-LR 。
-# (如果在 MS Windows 環境使用的話,å¯ä½¿ç”¨ vim win32 版〠UltraEdit 或其他類似編輯器修改。)
-#
-# 還有,ä¸å¿…æŠŠå°æ–¼ 3 個字元 (英數字元) 都包括進來。
-# ç›®å‰æœ¬æ¸…單的內容是以 http://www.ranks.nl/stopwords/ 為基礎,發展而æˆçš„。
-about
-are
-and
-you
-your
-them
-their
-com
-for
-from
-into
-how
-that
-the
-this
-was
-what
-when
-where
-who
-will
-with
-und
-the
-www
diff --git a/wiki/inc/lang/zh-tw/subscr_digest.txt b/wiki/inc/lang/zh-tw/subscr_digest.txt
deleted file mode 100644
index 2ab0bc0..0000000
--- a/wiki/inc/lang/zh-tw/subscr_digest.txt
+++ /dev/null
@@ -1,15 +0,0 @@
-您好ï¼
-
-本 wiki ( @TITLE@ ) çš„é é¢ @PAGE@ 已更改。
-更改內容如下:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-舊版本:@OLDPAGE@
-新版本:@NEWPAGE@
-
-è¦å–消é é¢æé†’,請登入本 wiki @DOKUWIKIURL@
-然後拜訪 @SUBSCRIBE@
-䏦喿¶ˆè¨‚é–±é é¢æˆ–分類å稱的更改。
diff --git a/wiki/inc/lang/zh-tw/subscr_form.txt b/wiki/inc/lang/zh-tw/subscr_form.txt
deleted file mode 100644
index ba3f161..0000000
--- a/wiki/inc/lang/zh-tw/subscr_form.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== è¨‚é–±ç®¡ç† ======
-
-在此é è£ï¼Œæ‚¨å¯ä»¥ç®¡ç†åœ¨ç›®å‰é é¢åŠåˆ†é¡žå稱之訂閱。
\ No newline at end of file
diff --git a/wiki/inc/lang/zh-tw/subscr_list.txt b/wiki/inc/lang/zh-tw/subscr_list.txt
deleted file mode 100644
index 8cbb24c..0000000
--- a/wiki/inc/lang/zh-tw/subscr_list.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-您好ï¼
-
-本 wiki ( @TITLE@ ) çš„ @PAGE@ 分類å稱é é¢å·²æ›´æ”¹ã€‚
-更改內容如下:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-è¦å–消é é¢æé†’,請登入本 wiki @DOKUWIKIURL@
-然後拜訪 @SUBSCRIBE@
-䏦喿¶ˆè¨‚é–±é é¢æˆ–分類å稱的更改。
diff --git a/wiki/inc/lang/zh-tw/subscr_single.txt b/wiki/inc/lang/zh-tw/subscr_single.txt
deleted file mode 100644
index db9ed2d..0000000
--- a/wiki/inc/lang/zh-tw/subscr_single.txt
+++ /dev/null
@@ -1,18 +0,0 @@
-您好ï¼
-
-本 wiki ( @TITLE@ ) çš„é é¢ @PAGE@ 已更改。
-更改內容如下:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-時間     : @DATE@
-使用者   : @USER@
-ç·¨è¼¯æ‘˜è¦ : @SUMMARY@
-舊版本   : @OLDPAGE@
-新版本   : @NEWPAGE@
-
-è¦å–消é é¢æé†’,請登入本 wiki @DOKUWIKIURL@
-然後拜訪 @NEWPAGE@
-䏦喿¶ˆè¨‚é–±é é¢æˆ–分類å稱的更改。
diff --git a/wiki/inc/lang/zh-tw/updateprofile.txt b/wiki/inc/lang/zh-tw/updateprofile.txt
deleted file mode 100644
index a7a2ad8..0000000
--- a/wiki/inc/lang/zh-tw/updateprofile.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== 更新個人資料 ======
-
-您åªéœ€ä¿®æ”¹æƒ³æ›´æ–°çš„æ¬„ä½å°±å¥½ï¼Œå¸³è™Ÿå稱ä¸èƒ½è®Šæ›´ã€‚
\ No newline at end of file
diff --git a/wiki/inc/lang/zh-tw/uploadmail.txt b/wiki/inc/lang/zh-tw/uploadmail.txt
deleted file mode 100644
index 9572681..0000000
--- a/wiki/inc/lang/zh-tw/uploadmail.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-有人把檔案上傳到您的 DokuWiki。詳細資料如下:
-
-æª”å     : @MEDIA@
-日期     : @DATE@
-ç€è¦½å™¨   : @BROWSER@
-IP ä½å€   : @IPADDRESS@
-主機å稱 : @HOSTNAME@
-å¤§å°     : @SIZE@
-MIME類型 : @MIME@
-使用者   : @USER@
diff --git a/wiki/inc/lang/zh/admin.txt b/wiki/inc/lang/zh/admin.txt
deleted file mode 100644
index bf6476e..0000000
--- a/wiki/inc/lang/zh/admin.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== ç®¡ç† ======
-
-åœ¨ä¸‹é¢æ‚¨èƒ½æ‰¾åˆ° DokuWiki 中å¯ç”¨ç®¡ç†ä»»åŠ¡çš„åˆ—è¡¨ã€‚
\ No newline at end of file
diff --git a/wiki/inc/lang/zh/adminplugins.txt b/wiki/inc/lang/zh/adminplugins.txt
deleted file mode 100644
index 66cee45..0000000
--- a/wiki/inc/lang/zh/adminplugins.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== 附加æ’ä»¶ =====
\ No newline at end of file
diff --git a/wiki/inc/lang/zh/backlinks.txt b/wiki/inc/lang/zh/backlinks.txt
deleted file mode 100644
index 19e3fee..0000000
--- a/wiki/inc/lang/zh/backlinks.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== åå‘链接 ======
-
-这里是能够åå‘链接到当å‰é¡µé¢çš„其他页é¢åˆ—表。
\ No newline at end of file
diff --git a/wiki/inc/lang/zh/conflict.txt b/wiki/inc/lang/zh/conflict.txt
deleted file mode 100644
index 92eedf4..0000000
--- a/wiki/inc/lang/zh/conflict.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== 存在一个更新的版本 ======
-
-æ‚¨ç¼–è¾‘çš„æ–‡æ¡£å­˜åœ¨ä¸€ä¸ªæ›´æ–°çš„ç‰ˆæœ¬ã€‚è¿™ç§æƒ…况的å‘生是因为在您编辑时有å¦ä¸€ä¸ªç”¨æˆ·æ›´æ”¹äº†è¯¥æ–‡æ¡£ã€‚
-
-请仔细检查下é¢åˆ—出的差别,并决定ä¿ç•™å“ªä¸ªç‰ˆæœ¬ã€‚如果您选择“ä¿å­˜â€ï¼Œæ‚¨çš„版本将被ä¿ç•™ã€‚ç‚¹å‡»â€œå–æ¶ˆâ€å°†ä¿ç•™å½“å‰ç‰ˆæœ¬ã€‚
diff --git a/wiki/inc/lang/zh/denied.txt b/wiki/inc/lang/zh/denied.txt
deleted file mode 100644
index 94721e4..0000000
--- a/wiki/inc/lang/zh/denied.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== æ‹’ç»æŽˆæƒ ======
-
-对ä¸èµ·ï¼Œæ‚¨æ²¡æœ‰è¶³å¤Ÿæƒé™ï¼Œæ— æ³•继续。
-
diff --git a/wiki/inc/lang/zh/diff.txt b/wiki/inc/lang/zh/diff.txt
deleted file mode 100644
index 19e8ef7..0000000
--- a/wiki/inc/lang/zh/diff.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== 差别 ======
-
-这里会显示出您选择的修订版和当å‰ç‰ˆæœ¬ä¹‹é—´çš„差别。
\ No newline at end of file
diff --git a/wiki/inc/lang/zh/draft.txt b/wiki/inc/lang/zh/draft.txt
deleted file mode 100644
index 615cb07..0000000
--- a/wiki/inc/lang/zh/draft.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-====== å‘现è‰ç¨¿ ======
-
-您在本页最åŽçš„编辑过程没有正常结æŸã€‚DokuWiki 在您的编辑过程中自动ä¿å­˜äº†ä¸€ä»½è‰ç¨¿ï¼Œæ‚¨çŽ°åœ¨å¯ä»¥ä½¿ç”¨å®ƒç»§ç»­ç¼–辑。 䏋颿˜¯æœ€åŽç¼–辑时的数æ®ã€‚
-
-请决定您希望 //æ¢å¤// 您丢失的编辑数æ®ï¼Œ//删除// 自动ä¿å­˜çš„è‰ç¨¿ï¼Œæˆ–者 //å–æ¶ˆ// 本编辑过程。
-
-
diff --git a/wiki/inc/lang/zh/edit.txt b/wiki/inc/lang/zh/edit.txt
deleted file mode 100644
index 846e898..0000000
--- a/wiki/inc/lang/zh/edit.txt
+++ /dev/null
@@ -1 +0,0 @@
-编辑本页åŽè¯·ç‚¹å‡»â€œä¿å­˜â€ã€‚请å‚阅 [[wiki:syntax]] äº†è§£ç»´åŸºè¯­æ³•ã€‚åªæœ‰åœ¨æ‚¨èƒ½ **改进** 该页é¢çš„剿䏋æ‰ç¼–辑它。如果您想å°è¯•一些东西,请先到 [[playground:playground|playground]] 热身。
\ No newline at end of file
diff --git a/wiki/inc/lang/zh/editrev.txt b/wiki/inc/lang/zh/editrev.txt
deleted file mode 100644
index 82013cb..0000000
--- a/wiki/inc/lang/zh/editrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**您载入了该文档旧的修订版ï¼** 如果您ä¿å­˜äº†å®ƒï¼Œæ‚¨å°±ä¼šç”¨è¿™äº›æ•°æ®åˆ›å»ºä¸€ä»½æ–°çš„修订版。
-----
\ No newline at end of file
diff --git a/wiki/inc/lang/zh/index.txt b/wiki/inc/lang/zh/index.txt
deleted file mode 100644
index efb07b9..0000000
--- a/wiki/inc/lang/zh/index.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== 索引 ======
-
-è¿™æ˜¯æ ¹æ® [[doku>namespaces|命å空间]] 排列的所有å¯è®¿é—®é¡µé¢çš„索引。
\ No newline at end of file
diff --git a/wiki/inc/lang/zh/install.html b/wiki/inc/lang/zh/install.html
deleted file mode 100644
index 448f6bd..0000000
--- a/wiki/inc/lang/zh/install.html
+++ /dev/null
@@ -1,8 +0,0 @@
-<p>æœ¬é¡µé¢æ—¨åœ¨å¸®åŠ©æ‚¨å®Œæˆç¬¬ä¸€æ¬¡å®‰è£…å’Œé…ç½® <a href="http://dokuwiki.org">Dokuwiki</a>。关于安装工具的更多信æ¯è¯·å‚阅其 <a href="http://dokuwiki.org/installer">官方文档页é¢</a>。</p>
-
-<p>DokuWiki 使用普通的文件ä¿å­˜ç»´åŸºé¡µé¢å’Œå…¶ä»–ä¸Žè¿™äº›é¡µé¢æŒ‚钩的信æ¯ï¼ˆä¾‹å¦‚:图åƒï¼Œæœç´¢ç´¢å¼•,修订记录等)。为了能正常è¿è¡Œï¼ŒDokuWiki <strong>å¿…é¡»</strong> 拥有针对那些路径和文件的写æƒé™ã€‚本安装工具ä¸èƒ½ç”¨äºŽè®¾ç½®è¿™äº›æƒé™ã€‚对æƒé™çš„æ“ä½œé€šå¸¸é€šè¿‡å‘½ä»¤è¡Œæˆ–ä½¿ç”¨æ‚¨çš„ç½‘ç»œæœåŠ¡æä¾›å•†çš„ FTP æˆ–æŽ§åˆ¶é¢æ¿ï¼ˆä¾‹å¦‚ cPanel)进行æ“作。</p>
-
-<p>本安装工具将设置您的 DokuWiki é…ç½® <abbr title="访问控制列表">ACL</abbr>,它能让管ç†å‘˜ç™»å½•并使用“管ç†â€åŠŸèƒ½æ¥å®‰è£…æ’件,管ç†ç”¨æˆ·ï¼Œç®¡ç†è®¿é—®æƒé™å’Œå…¶ä»–é…ç½®è®¾ç½®ã€‚å®ƒå¹¶ä¸æ˜¯ DokuWiki 正常è¿è¡Œæ‰€å¿…须的,但安装之åŽå®ƒå°†æ›´æ–¹ä¾¿æ‚¨çš„管ç†ã€‚</p>
-
-<p>有ç»éªŒçš„用户或有特殊需求的用户请å‚阅更详细的 <a href="http://dokuwiki.org/install">安装指å—</a>
-å’Œ <a href="http://dokuwiki.org/config">é…置设置</a>。</p>
diff --git a/wiki/inc/lang/zh/jquery.ui.datepicker.js b/wiki/inc/lang/zh/jquery.ui.datepicker.js
deleted file mode 100644
index 91f99b4..0000000
--- a/wiki/inc/lang/zh/jquery.ui.datepicker.js
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Chinese initialisation for the jQuery UI date picker plugin. */
-/* Written by Cloudream (cloudream@gmail.com). */
-( function( factory ) {
-	if ( typeof define === "function" && define.amd ) {
-
-		// AMD. Register as an anonymous module.
-		define( [ "../widgets/datepicker" ], factory );
-	} else {
-
-		// Browser globals
-		factory( jQuery.datepicker );
-	}
-}( function( datepicker ) {
-
-datepicker.regional[ "zh-CN" ] = {
-	closeText: "关闭",
-	prevText: "&#x3C;上月",
-	nextText: "下月&#x3E;",
-	currentText: "今天",
-	monthNames: [ "一月","二月","三月","四月","五月","六月",
-	"七月","八月","乿œˆ","åæœˆ","å一月","å二月" ],
-	monthNamesShort: [ "一月","二月","三月","四月","五月","六月",
-	"七月","八月","乿œˆ","åæœˆ","å一月","å二月" ],
-	dayNames: [ "星期日","星期一","星期二","星期三","星期四","星期五","星期六" ],
-	dayNamesShort: [ "周日","周一","周二","周三","周四","周五","周六" ],
-	dayNamesMin: [ "日","一","二","三","四","五","六" ],
-	weekHeader: "周",
-	dateFormat: "yy-mm-dd",
-	firstDay: 1,
-	isRTL: false,
-	showMonthAfterYear: true,
-	yearSuffix: "å¹´" };
-datepicker.setDefaults( datepicker.regional[ "zh-CN" ] );
-
-return datepicker.regional[ "zh-CN" ];
-
-} ) );
diff --git a/wiki/inc/lang/zh/lang.php b/wiki/inc/lang/zh/lang.php
deleted file mode 100644
index 3de6a2f..0000000
--- a/wiki/inc/lang/zh/lang.php
+++ /dev/null
@@ -1,370 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author lempel <riverlempel@hotmail.com>
- * @author ZDYX <zhangduyixiong@gmail.com>
- * @author http://www.chinese-tools.com/tools/converter-tradsimp.html
- * @author George Sheraton <guxd@163.com>
- * @author Simon zhan <simonzhan@21cn.com>
- * @author ben <ben@livetom.com>
- * @author lainme <lainme993@gmail.com>
- * @author caii <zhoucaiqi@gmail.com>
- * @author Hiphen Lee <jacob.b.leung@gmail.com>
- * @author Shuo-Ting Jian <shoting@gmail.com>
- * @author Rachel <rzhang0802@gmail.com>
- * @author Donald <donaldtcong@gmail.com>
- * @author Yangyu Huang <yangyu.huang@gmail.com>
- * @author anjianshi <anjianshi@gmail.com>
- * @author oott123 <ip.192.168.1.1@qq.com>
- * @author Cupen <Cupenoruler@foxmail.com>
- * @author xiqingongzi <Xiqingongzi@Gmail.com>
- * @author qinghao <qingxianhao@gmail.com>
- * @author Yuwei Sun <yuwei@hrz.tu-chemnitz.de>
- * @author Errol <errol@hotmail.com>
- * @author Garfield <garfield_550@outlook.com>
- * @author JellyChen <451453325@qq.com>
- * @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';
-$lang['doublequoteopening']    = '“';
-$lang['doublequoteclosing']    = 'â€';
-$lang['singlequoteopening']    = '‘';
-$lang['singlequoteclosing']    = '’';
-$lang['apostrophe']            = '’';
-$lang['btn_edit']              = '编辑本页';
-$lang['btn_source']            = 'æ˜¾ç¤ºæºæ–‡ä»¶';
-$lang['btn_show']              = '显示页é¢';
-$lang['btn_create']            = '创建该页é¢';
-$lang['btn_search']            = 'æœç´¢';
-$lang['btn_save']              = 'ä¿å­˜';
-$lang['btn_preview']           = '预览';
-$lang['btn_top']               = '回到顶部';
-$lang['btn_newer']             = '<< 较新的';
-$lang['btn_older']             = '较旧的 >>';
-$lang['btn_revs']              = '修订记录';
-$lang['btn_recent']            = '最近更改';
-$lang['btn_upload']            = '上传';
-$lang['btn_cancel']            = 'å–æ¶ˆ';
-$lang['btn_index']             = '网站地图';
-$lang['btn_secedit']           = '编辑';
-$lang['btn_login']             = '登录';
-$lang['btn_logout']            = '退出';
-$lang['btn_admin']             = '管ç†';
-$lang['btn_update']            = 'æ›´æ–°';
-$lang['btn_delete']            = '删除';
-$lang['btn_back']              = '返回';
-$lang['btn_backlink']          = 'åå‘链接';
-$lang['btn_subscribe']         = '订阅本页更改';
-$lang['btn_profile']           = '更新个人信æ¯';
-$lang['btn_reset']             = 'é‡è®¾';
-$lang['btn_resendpwd']         = '设置新密ç ';
-$lang['btn_draft']             = '编辑è‰ç¨¿';
-$lang['btn_recover']           = 'æ¢å¤è‰ç¨¿';
-$lang['btn_draftdel']          = '删除è‰ç¨¿';
-$lang['btn_revert']            = 'æ¢å¤';
-$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']                  = '密ç ';
-$lang['newpass']               = '请输入新密ç ';
-$lang['oldpass']               = '请输入当å‰å¯†ç ';
-$lang['passchk']               = '请å†è¾“一次';
-$lang['remember']              = 'è®°ä½æˆ‘';
-$lang['fullname']              = 'å…¨å';
-$lang['email']                 = 'E-Mail';
-$lang['profile']               = '用户信æ¯';
-$lang['badlogin']              = '对ä¸èµ·ï¼Œç”¨æˆ·å或密ç é”™è¯¯ã€‚';
-$lang['badpassconfirm']        = '对ä¸èµ·ï¼Œå¯†ç é”™è¯¯';
-$lang['minoredit']             = '细微修改';
-$lang['draftdate']             = 'è‰ç¨¿è‡ªåЍä¿å­˜äºŽ';
-$lang['nosecedit']             = '在您编辑期间本页刚被他人修改过,局部信æ¯å·²è¿‡æœŸï¼Œæ•…载入全页。';
-$lang['regmissing']            = '对ä¸èµ·ï¼Œæ‚¨å¿…须填写所有的字段。';
-$lang['reguexists']            = '对ä¸èµ·ï¼Œè¯¥ç”¨æˆ·åå·²ç»å­˜åœ¨ã€‚';
-$lang['regsuccess']            = '新用户已建立,密ç å°†é€šè¿‡ç”µå­é‚®ä»¶å‘é€ç»™æ‚¨ã€‚';
-$lang['regsuccess2']           = '新用户已建立';
-$lang['regfail']               = '用户ä¸èƒ½è¢«åˆ›å»ºã€‚';
-$lang['regmailfail']           = 'å‘é€å¯†ç é‚®ä»¶æ—¶äº§ç”Ÿé”™è¯¯ã€‚请è”系管ç†å‘˜ï¼';
-$lang['regbadmail']            = 'æ‚¨è¾“å…¥çš„é‚®ä»¶åœ°å€æœ‰é—®é¢˜â€”—如果您认为这是系统错误,请è”系管ç†å‘˜ã€‚';
-$lang['regbadpass']            = '您输入的密ç ä¸Žç³»ç»Ÿäº§ç”Ÿçš„ä¸ç¬¦ï¼Œè¯·é‡è¯•。';
-$lang['regpwmail']             = '您的 DokuWiki 密ç ';
-$lang['reghere']               = '还没有账å·ï¼Ÿç«‹å³æ³¨å†Œ';
-$lang['profna']                = '本维基ä¸å…许修改个人信æ¯';
-$lang['profnochange']          = '没有改动,ä¸è¿›è¡Œæ“作。';
-$lang['profnoempty']           = 'ä¸å…è®¸ä½¿ç”¨ç©ºçš„ç”¨æˆ·åæˆ–邮件地å€ã€‚';
-$lang['profchanged']           = 'ç”¨æˆ·ä¿¡æ¯æ›´æ–°æˆåŠŸã€‚';
-$lang['profnodelete']          = '这个 wiki 䏿”¯æŒåˆ é™¤ç”¨æˆ·';
-$lang['profdeleteuser']        = '删除账å·';
-$lang['profdeleted']           = '你的用户已ç»ä»Žè¿™ä¸ª wiki 中删除';
-$lang['profconfdelete']        = '我希望删除我的账户。<br/>这项æ“作无法撤销。';
-$lang['profconfdeletemissing'] = '确认框未勾选';
-$lang['proffail']              = '用户设置没有更新。';
-$lang['pwdforget']             = '忘记密ç ï¼Ÿç«‹å³èŽ·å–æ–°å¯†ç ';
-$lang['resendna']              = 'æœ¬ç»´åŸºä¸æ”¯æŒäºŒæ¬¡å‘é€å¯†ç ã€‚';
-$lang['resendpwd']             = '设置新密ç ç”¨äºŽ';
-$lang['resendpwdmissing']      = '对ä¸èµ·ï¼Œæ‚¨å¿…须填写所有的区域。';
-$lang['resendpwdnouser']       = '对ä¸èµ·ï¼Œåœ¨æˆ‘们的用户数æ®ä¸­æ‰¾ä¸åˆ°è¯¥ç”¨æˆ·ã€‚';
-$lang['resendpwdbadauth']      = '对ä¸èµ·ï¼Œè¯¥è®¤è¯ç é”™è¯¯ã€‚请使用完整的确认链接。';
-$lang['resendpwdconfirm']      = '确认链接已ç»é€šè¿‡é‚®ä»¶å‘é€ç»™æ‚¨äº†ã€‚';
-$lang['resendpwdsuccess']      = '您的新密ç å·²ç»é€šè¿‡é‚®ä»¶å‘é€ç»™æ‚¨äº†ã€‚';
-$lang['license']               = '除é¢å¤–注明的地方外,本维基上的内容按下列许å¯åè®®å‘布:';
-$lang['licenseok']             = '当您选择开始编辑本页,å³å¯“ç¤ºä½ åŒæ„将你贡献的内容按下列许å¯åè®®å‘布:';
-$lang['searchmedia']           = '查找文件å:';
-$lang['searchmedia_in']        = '在%s中查找';
-$lang['txt_upload']            = '选择è¦ä¸Šä¼ çš„æ–‡ä»¶:';
-$lang['txt_filename']          = '上传并é‡å‘½å为(å¯é€‰ï¼‰:';
-$lang['txt_overwrt']           = '覆盖已存在的åŒå文件';
-$lang['maxuploadsize']         = '上传é™åˆ¶ã€‚æ¯ä¸ªæ–‡ä»¶ %s';
-$lang['lockedby']              = 'ç›®å‰å·²è¢«ä¸‹åˆ—人员é”定:';
-$lang['lockexpire']            = '预计é”定解除于:';
-$lang['js']['willexpire']      = '您对本页的独有编辑æƒå°†äºŽä¸€åˆ†é’Ÿä¹‹åŽè§£é™¤ã€‚\n为了防止与其他人的编辑冲çªï¼Œè¯·ä½¿ç”¨é¢„览按钮é‡è®¾è®¡æ—¶å™¨ã€‚';
-$lang['js']['notsavedyet']     = '未ä¿å­˜çš„æ›´æ”¹å°†ä¸¢å¤±ã€‚
-真的è¦ç»§ç»­ï¼Ÿ';
-$lang['js']['searchmedia']     = '查找文件';
-$lang['js']['keepopen']        = '选中åŽä¸è‡ªåŠ¨å…³é—­çª—å£';
-$lang['js']['hidedetails']     = 'éšè—详细信æ¯';
-$lang['js']['mediatitle']      = '链接设置';
-$lang['js']['mediadisplay']    = '链接类型';
-$lang['js']['mediaalign']      = '对é½';
-$lang['js']['mediasize']       = '图片大å°';
-$lang['js']['mediatarget']     = '链接目标';
-$lang['js']['mediaclose']      = '关闭';
-$lang['js']['mediainsert']     = 'æ’å…¥';
-$lang['js']['mediadisplayimg'] = '显示图片。';
-$lang['js']['mediadisplaylnk'] = '仅显示链接。';
-$lang['js']['mediasmall']      = 'å°å°ºå¯¸';
-$lang['js']['mediamedium']     = '中等尺寸';
-$lang['js']['medialarge']      = '大尺寸';
-$lang['js']['mediaoriginal']   = '原始版本';
-$lang['js']['medialnk']        = '到详细页é¢çš„链接';
-$lang['js']['mediadirect']     = '到原始文件的直接链接';
-$lang['js']['medianolnk']      = '没有链接';
-$lang['js']['medianolink']     = 'ä¸è¦é“¾æŽ¥å›¾ç‰‡';
-$lang['js']['medialeft']       = '左对é½å›¾ç‰‡ã€‚';
-$lang['js']['mediaright']      = 'å³å¯¹é½å›¾ç‰‡ã€‚';
-$lang['js']['mediacenter']     = '居中对é½å›¾ç‰‡ã€‚';
-$lang['js']['medianoalign']    = 'ä¸ä½¿ç”¨å¯¹é½ã€‚';
-$lang['js']['nosmblinks']      = '连接到 Windows å…±äº«åŠŸèƒ½åªæœ‰åœ¨ IE æµè§ˆå™¨ä¸­æ‰èƒ½æ­£å¸¸ä½¿ç”¨ã€‚
-但您ä»èƒ½å¤åˆ¶å¹¶ç²˜è´´è¯¥é“¾æŽ¥ã€‚';
-$lang['js']['linkwiz']         = '链接å‘导';
-$lang['js']['linkto']          = '链接到:';
-$lang['js']['del_confirm']     = '真的è¦åˆ é™¤é€‰ä¸­çš„项目å—?';
-$lang['js']['restore_confirm'] = 'ç¡®å®žè¦æ¢å¤è¿™ä¸ªç‰ˆæœ¬ä¹ˆï¼Ÿ';
-$lang['js']['media_diff']      = '查看差异:';
-$lang['js']['media_diff_both'] = 'è‚©å¹¶è‚©';
-$lang['js']['media_diff_opacity'] = 'å åŠ ';
-$lang['js']['media_diff_portions'] = '滑å—';
-$lang['js']['media_select']    = '选择文件……';
-$lang['js']['media_upload_btn'] = '上传';
-$lang['js']['media_done_btn']  = '完æˆ';
-$lang['js']['media_drop']      = '拖拽文件到此处æ¥ä¸Šä¼ ';
-$lang['js']['media_cancel']    = '删除';
-$lang['js']['media_overwrt']   = '覆盖已存在的文件';
-$lang['rssfailed']             = '获å–该 RSS ä¿¡æ¯æ—¶äº§ç”Ÿé”™è¯¯ï¼š';
-$lang['nothingfound']          = '什么都没有找到。';
-$lang['mediaselect']           = '媒体文件';
-$lang['uploadsucc']            = '上传æˆåŠŸ';
-$lang['uploadfail']            = '上传失败。也许是上传æƒé™é”™è¯¯ã€‚';
-$lang['uploadwrong']           = '上传失败。该扩展åè¢«ç¦æ­¢ã€‚';
-$lang['uploadexist']           = '文件已存在。ä¸è¿›è¡Œæ“作。';
-$lang['uploadbadcontent']      = '上传的文件与扩展å %s ä¸ç¬¦ã€‚';
-$lang['uploadspam']            = '上传æ“作被垃圾信æ¯é»‘åå•阻止。';
-$lang['uploadxss']             = '上传æ“作因å¯èƒ½å­˜åœ¨æ¶æ„内容而被阻止。';
-$lang['uploadsize']            = '上传的文件过大。(最大 %s)';
-$lang['deletesucc']            = '文件“%sâ€å·²ç»è¢«åˆ é™¤ã€‚';
-$lang['deletefail']            = '无法删除“%sâ€- 请检查æƒé™ã€‚';
-$lang['mediainuse']            = '文件“%sâ€æ— æ³•删除 - 它正被使用中。';
-$lang['namespaces']            = '命å空间';
-$lang['mediafiles']            = 'å¯ç”¨çš„æ–‡ä»¶';
-$lang['accessdenied']          = '您没有æƒé™æµè§ˆæ­¤é¡µé¢ã€‚';
-$lang['mediausage']            = '使用下列字符链接到该文件:';
-$lang['mediaview']             = '查看该文件';
-$lang['mediaroot']             = '根目录';
-$lang['mediaupload']           = '上传文件至当å‰çš„命å空间。è¦åˆ›å»ºæ¬¡çº§å‘½å空间,将其å称加在“上传并é‡å‘½åä¸ºâ€æ–‡ä»¶åçš„å‰é¢ï¼Œå¹¶ç”¨è‹±æ–‡å†’å·éš”å¼€';
-$lang['mediaextchange']        = '文件的扩展åç”± .%s 改为了 .%sï¼';
-$lang['reference']             = '相关的';
-$lang['ref_inuse']             = '该文件无法删除,因为它正被下列页é¢ä½¿ç”¨ï¼š';
-$lang['ref_hidden']            = 'ä¸€äº›ç›¸å…³çš„é¡µé¢æ‚¨å¹¶æ²¡æœ‰æƒé™é˜…读';
-$lang['hits']                  = '符åˆ';
-$lang['quickhits']             = '匹é…的页é¢åç§°';
-$lang['toc']                   = '目录';
-$lang['current']               = '当å‰ç‰ˆæœ¬';
-$lang['yours']                 = '您的版本';
-$lang['diff']                  = '显示与当å‰ç‰ˆæœ¬çš„差别';
-$lang['diff2']                 = '显示跟目å‰ç‰ˆæœ¬çš„差异';
-$lang['difflink']              = '到此差别页é¢çš„链接';
-$lang['diff_type']             = '查看差异:';
-$lang['diff_inline']           = '行内显示';
-$lang['diff_side']             = '并排显示';
-$lang['diffprevrev']           = 'å‰ä¸€ä¿®è®¢ç‰ˆ';
-$lang['diffnextrev']           = 'åŽä¸€ä¿®è®¢ç‰ˆ';
-$lang['difflastrev']           = '上一修订版';
-$lang['diffbothprevrev']       = 'ä¸¤ä¾§åŒæ—¶æ¢åˆ°ä¹‹å‰çš„修订记录';
-$lang['diffbothnextrev']       = 'ä¸¤ä¾§åŒæ—¶æ¢åˆ°ä¹‹åŽçš„修订记录';
-$lang['line']                  = '行';
-$lang['breadcrumb']            = '您的足迹:';
-$lang['youarehere']            = '您在这里:';
-$lang['lastmod']               = 'æœ€åŽæ›´æ”¹:';
-$lang['by']                    = 'ç”±';
-$lang['deleted']               = '移除';
-$lang['created']               = '创建';
-$lang['restored']              = 'å·²æ¢å¤ä¸ºæ—§ç‰ˆ (%s)';
-$lang['external_edit']         = '外部编辑';
-$lang['summary']               = '编辑摘è¦';
-$lang['noflash']               = 'éœ€è¦ <a href="http://www.adobe.com/products/flashplayer/">Adobe Flash æ’ä»¶</a> æ¥æ’­æ”¾æœ¬å†…容。 ';
-$lang['download']              = '下载片段';
-$lang['tools']                 = '工具';
-$lang['user_tools']            = '用户工具';
-$lang['site_tools']            = '站点工具';
-$lang['page_tools']            = '页é¢å·¥å…·';
-$lang['skip_to_content']       = '跳至内容';
-$lang['sidebar']               = 'ä¾§è¾¹æ ';
-$lang['mail_newpage']          = '添加页é¢ï¼š';
-$lang['mail_changed']          = '更改页é¢ï¼š';
-$lang['mail_subscribe_list']   = '命å空间中改å˜çš„页é¢ï¼š';
-$lang['mail_new_user']         = '新用户:';
-$lang['mail_upload']           = '已上传的文件:';
-$lang['changes_type']          = 'æŸ¥çœ‹ä½•ç§æ›´æ”¹';
-$lang['pages_changes']         = '页é¢';
-$lang['media_changes']         = '媒体文件';
-$lang['both_changes']          = '页é¢å’Œåª’体文件';
-$lang['qb_bold']               = '粗体';
-$lang['qb_italic']             = '斜体';
-$lang['qb_underl']             = '下划线';
-$lang['qb_code']               = '代ç ';
-$lang['qb_strike']             = '删除线';
-$lang['qb_h1']                 = '标题 H1';
-$lang['qb_h2']                 = '标题 H2 ';
-$lang['qb_h3']                 = '标题 H3';
-$lang['qb_h4']                 = '标题 H4';
-$lang['qb_h5']                 = '标题 H5';
-$lang['qb_h']                  = '标题';
-$lang['qb_hs']                 = '选择标题';
-$lang['qb_hplus']              = '上级标题';
-$lang['qb_hminus']             = '下级标题';
-$lang['qb_hequal']             = 'åŒçº§æ ‡é¢˜';
-$lang['qb_link']               = '内部链接';
-$lang['qb_extlink']            = '外部链接';
-$lang['qb_hr']                 = '水平线';
-$lang['qb_ol']                 = '数字列表项目';
-$lang['qb_ul']                 = '普通列表项目';
-$lang['qb_media']              = 'æ’å…¥å›¾åƒæˆ–其他文件';
-$lang['qb_sig']                = 'æ’入签å';
-$lang['qb_smileys']            = '表情符å·';
-$lang['qb_chars']              = '特殊字符';
-$lang['upperns']               = '跳转到父级å空间';
-$lang['metaedit']              = '编辑元数æ®';
-$lang['metasaveerr']           = '写入元数æ®å¤±è´¥';
-$lang['metasaveok']            = '元数æ®å·²ä¿å­˜';
-$lang['img_title']             = '标题:';
-$lang['img_caption']           = '说明:';
-$lang['img_date']              = '日期:';
-$lang['img_fname']             = 'åç§°:';
-$lang['img_fsize']             = '大å°:';
-$lang['img_artist']            = '摄影师:';
-$lang['img_copyr']             = '版æƒ:';
-$lang['img_format']            = 'æ ¼å¼:';
-$lang['img_camera']            = '相机:';
-$lang['img_keywords']          = '关键字:';
-$lang['img_width']             = '宽度:';
-$lang['img_height']            = '高度:';
-$lang['subscr_subscribe_success'] = '添加 %s 到 %s 的订阅列表';
-$lang['subscr_subscribe_error'] = '添加 %s 到 %s 的订阅列表中出现错误';
-$lang['subscr_subscribe_noaddress'] = '没有与您登录信æ¯ç›¸å…³è”的地å€ï¼Œæ‚¨æ— æ³•被添加到订阅列表';
-$lang['subscr_unsubscribe_success'] = '%s 被移出 %s 的订阅列表';
-$lang['subscr_unsubscribe_error'] = '%s 被移出 %s 的订阅列表中出现错误';
-$lang['subscr_already_subscribed'] = '%s å·²ç»è®¢é˜…了 %s';
-$lang['subscr_not_subscribed'] = '%s 没有订阅 %s';
-$lang['subscr_m_not_subscribed'] = '您现在没有订阅当å‰é¡µé¢æˆ–者命å空间。';
-$lang['subscr_m_new_header']   = '添加订阅';
-$lang['subscr_m_current_header'] = '当å‰è®¢é˜…';
-$lang['subscr_m_unsubscribe']  = '退订';
-$lang['subscr_m_subscribe']    = '订阅';
-$lang['subscr_m_receive']      = '接收';
-$lang['subscr_style_every']    = 'å¯¹æ¯æ¬¡æ›´æ”¹å‘é€é‚®ä»¶';
-$lang['subscr_style_digest']   = '对æ¯ä¸ªé¡µé¢å‘逿›´æ”¹çš„æ‘˜è¦é‚®ä»¶ï¼ˆæ¯ %.2f 天)';
-$lang['subscr_style_list']     = '自上å°é‚®ä»¶ä»¥æ¥æ›´æ”¹çš„页é¢çš„åˆ—è¡¨ï¼ˆæ¯ %.2f 天)';
-$lang['authtempfail']          = 'ç”¨æˆ·è®¤è¯æš‚æ—¶æ— æ³•使用。如果该状æ€ä¸€ç›´å­˜åœ¨ï¼Œè¯·é€šçŸ¥ç»´åŸºç®¡ç†å‘˜ã€‚';
-$lang['i_chooselang']          = '选择您的语言';
-$lang['i_installer']           = 'DokuWiki 安装工具';
-$lang['i_wikiname']            = '维基åç§°';
-$lang['i_enableacl']           = 'å¯ç”¨ ACL(推è)';
-$lang['i_superuser']           = '超级用户';
-$lang['i_problems']            = '安装工具å‘现一些问题,已在下é¢åˆ—出。您必须先修å¤è¿™äº›é—®é¢˜ï¼Œæ‰èƒ½ç»§ç»­å®‰è£…。';
-$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']      = '为了è¿è¡Œ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>ã€‚æ‚¨éœ€è¦æ£€æŸ¥è¯¥è·¯å¾„/文件的æƒé™è®¾å®šå¹¶æ‰‹åŠ¨åˆ›å»ºè¯¥æ–‡ä»¶ã€‚';
-$lang['i_badhash']             = '无法识别的或被修改的 dokuwiki.php(值=<code>%s</code>)';
-$lang['i_badval']              = '<code>%s</code> - éžæ³•或空值';
-$lang['i_success']             = 'é…ç½®æˆåŠŸå®Œæˆã€‚您现在å¯ä»¥åˆ é™¤ install.php 了。继续进入
-                        <a href="doku.php?id=wiki:welcome">您全新的 DokuWiki</a>。';
-$lang['i_failure']             = '写入é…置文件的时候产生一些错误。在使用 <a href="doku.php?id=wiki:welcome">您全新安装的 DokuWiki</a> å‰
-                         æ‚¨éœ€è¦æ‰‹åŠ¨ä¿®å¤å®ƒä»¬ã€‚';
-$lang['i_policy']              = 'åˆå§‹çš„ ACL 政策';
-$lang['i_pol0']                = '开放的维基(任何人都有读ã€å†™ã€ä¸Šä¼ çš„æƒé™ï¼‰';
-$lang['i_pol1']                = '公共的维基(任何人都有读的æƒé™ï¼Œåªæœ‰æ³¨å†Œç”¨æˆ·æ‰æœ‰å†™å’Œä¸Šä¼ çš„æƒé™ï¼‰';
-$lang['i_pol2']                = 'å…³é—­çš„ç»´åŸºï¼ˆåªæœ‰æ³¨å†Œç”¨æˆ·æ‰æœ‰è¯»ã€å†™ã€ä¸Šä¼ çš„æƒé™ï¼‰';
-$lang['i_allowreg']            = 'å…许用户自行注册';
-$lang['i_retry']               = 'é‡è¯•';
-$lang['i_license']             = '请选择您希望的内容å‘布许å¯å议:';
-$lang['i_license_none']        = 'ä¸è¦æ˜¾ç¤ºä»»ä½•许å¯å议信æ¯';
-$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月å‰';
-$lang['weeks']                 = '%d周å‰';
-$lang['days']                  = '%d天å‰';
-$lang['hours']                 = '%då°æ—¶å‰';
-$lang['minutes']               = '%d分钟å‰';
-$lang['seconds']               = '%dç§’å‰';
-$lang['wordblock']             = '您的更改没有被ä¿å­˜ï¼Œå› ä¸ºå®ƒåŒ…å«è¢«å±è”½çš„æ–‡å­—(垃圾信æ¯ï¼‰ã€‚';
-$lang['media_uploadtab']       = '上传';
-$lang['media_searchtab']       = 'æœç´¢';
-$lang['media_file']            = '文件';
-$lang['media_viewtab']         = '查看';
-$lang['media_edittab']         = '编辑';
-$lang['media_historytab']      = '历å²';
-$lang['media_list_thumbs']     = '缩图';
-$lang['media_list_rows']       = '列表';
-$lang['media_sort_name']       = '按åç§°';
-$lang['media_sort_date']       = '按日期';
-$lang['media_namespaces']      = '选择命å空间';
-$lang['media_files']           = '在 %s 中的文件';
-$lang['media_upload']          = '上传到 <strong>%s</strong> 命å空间。';
-$lang['media_search']          = '在 <strong>%s</strong> 命å空间中æœç´¢ã€‚';
-$lang['media_view']            = '%s';
-$lang['media_viewold']         = '%s 在 %s';
-$lang['media_edit']            = '编辑 %s';
-$lang['media_history']         = '%s 的历å²çºªå½•';
-$lang['media_meta_edited']     = '元数æ®å·²ç¼–辑';
-$lang['media_perm_read']       = '抱歉,您没有足够æƒé™è¯»å–这些文件。';
-$lang['media_perm_upload']     = '抱歉,您没有足够æƒé™æ¥ä¸Šä¼ æ–‡ä»¶ã€‚';
-$lang['media_update']          = '上传新版本';
-$lang['media_restore']         = 'æ¢å¤è¿™ä¸ªç‰ˆæœ¬';
-$lang['media_acl_warning']     = '此列表å¯èƒ½ä¸å®Œå…¨æ˜¯ç”±ACLé™åˆ¶å’Œéšè—的页é¢ã€‚';
-$lang['currentns']             = '当å‰å‘½å空间';
-$lang['searchresult']          = 'æœç´¢ç»“æžœ';
-$lang['plainhtml']             = '纯HTML';
-$lang['wikimarkup']            = 'Wiki Markup 语言';
-$lang['page_nonexist_rev']     = '页é¢åœ¨ %s ä¸å­˜åœ¨ã€‚它曾创建于 <a href="%s">%s</a>。';
-$lang['unable_to_parse_date']  = '无法解æžå‚æ•° "%s"。';
-$lang['email_signature_text']  = '本邮件由 DokuWiki 自动创建
-@DOKUWIKIURL@';
diff --git a/wiki/inc/lang/zh/locked.txt b/wiki/inc/lang/zh/locked.txt
deleted file mode 100644
index 321e4a0..0000000
--- a/wiki/inc/lang/zh/locked.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== 页é¢å·²é”定 ======
-
-本页é¢ç›®å‰æ­£è¢«å…¶ä»–用户编辑。您è¦ç­‰åˆ°è¯¥ç”¨æˆ·å®Œæˆç¼–辑或é”å®šå› è¿‡æœŸè€Œè‡ªåŠ¨è§£é™¤åŽæ‰èƒ½ç¼–辑。
\ No newline at end of file
diff --git a/wiki/inc/lang/zh/login.txt b/wiki/inc/lang/zh/login.txt
deleted file mode 100644
index 8ff8b38..0000000
--- a/wiki/inc/lang/zh/login.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== 登录 ======
-
-您尚未登录ï¼è¯·åœ¨ä¸‹æ–¹è¾“入您的用户å和密ç è¿›è¡Œç™»å½•。 您的æµè§ˆå™¨éœ€è¦æ”¯æŒ Cookies æ‰èƒ½æ­£å¸¸ç™»å½•。
diff --git a/wiki/inc/lang/zh/mailtext.txt b/wiki/inc/lang/zh/mailtext.txt
deleted file mode 100644
index f5e6081..0000000
--- a/wiki/inc/lang/zh/mailtext.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-您的 DokuWiki 中有一个页é¢è¢«æ·»åŠ æˆ–æ›´æ”¹äº†ã€‚ä»¥ä¸‹æ˜¯è¯¦ç»†èµ„æ–™ï¼š
-
-日期        : @DATE@
-æµè§ˆå™¨      : @BROWSER@
-IP åœ°å€     : @IPADDRESS@
-机器åç§°    : @HOSTNAME@
-修订记录    : @OLDPAGE@
-最新修订    : @NEWPAGE@
-ç¼–è¾‘æ‘˜è¦    : @SUMMARY@
-用户        : @USER@
-
-@DIFF@
diff --git a/wiki/inc/lang/zh/mailwrap.html b/wiki/inc/lang/zh/mailwrap.html
deleted file mode 100644
index d257190..0000000
--- a/wiki/inc/lang/zh/mailwrap.html
+++ /dev/null
@@ -1,13 +0,0 @@
-<html>
-<head>
-<title>@TITLE@</title>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-</head>
-<body>
-
-@HTMLBODY@
-
-<br /><hr />
-<small>@EMAILSIGNATURE@</small>
-</body>
-</html>
\ No newline at end of file
diff --git a/wiki/inc/lang/zh/newpage.txt b/wiki/inc/lang/zh/newpage.txt
deleted file mode 100644
index 6f96b56..0000000
--- a/wiki/inc/lang/zh/newpage.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== 该主题尚ä¸å­˜åœ¨ ======
-
-您访问的页é¢å¹¶ä¸å­˜åœ¨ã€‚如果å…许,您å¯ä»¥ä½¿ç”¨â€œåˆ›å»ºè¯¥é¡µé¢â€æŒ‰é’®æ¥åˆ›å»ºå®ƒã€‚
\ No newline at end of file
diff --git a/wiki/inc/lang/zh/norev.txt b/wiki/inc/lang/zh/norev.txt
deleted file mode 100644
index 3fe5aab..0000000
--- a/wiki/inc/lang/zh/norev.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== 没有该修订版 ======
-
-您指定的修订版并ä¸å­˜åœ¨ã€‚è¯·ä½¿ç”¨â€œä¿®è®¢è®°å½•â€æŒ‰é’®æŸ¥çœ‹æœ¬é¡µé¢çš„修订记录列表。
\ No newline at end of file
diff --git a/wiki/inc/lang/zh/password.txt b/wiki/inc/lang/zh/password.txt
deleted file mode 100644
index 39095a1..0000000
--- a/wiki/inc/lang/zh/password.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-@FULLNAME@ 您好ï¼
-
-这是您在 @TITLE@(@DOKUWIKIURL@)的用户资料
-用户å:@LOGIN@
-密ç ï¼š@PASSWORD@
diff --git a/wiki/inc/lang/zh/preview.txt b/wiki/inc/lang/zh/preview.txt
deleted file mode 100644
index dbb3de6..0000000
--- a/wiki/inc/lang/zh/preview.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== 预览 ======
-
-这是该文件的效果预览。请记ä½ï¼šå®ƒ**并没有被ä¿å­˜**ï¼
diff --git a/wiki/inc/lang/zh/pwconfirm.txt b/wiki/inc/lang/zh/pwconfirm.txt
deleted file mode 100644
index 1b31636..0000000
--- a/wiki/inc/lang/zh/pwconfirm.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-@FULLNAME@ 您好ï¼
-
-有人请求为您在 @DOKUWIKIURL@ 注册的用户å @TITLE@ å‘逿–°å¯†ç 
-
-如果您没有请求å‘逿–°å¯†ç ï¼Œè¯·å¿½ç•¥è¿™å°é‚®ä»¶ã€‚
-
-为了确认å‘逿–°å¯†ç è¯·æ±‚的确æ¥è‡ªæ‚¨ï¼Œè¯·ä½¿ç”¨ä¸‹é¢çš„链接。
-
-@CONFIRM@
diff --git a/wiki/inc/lang/zh/read.txt b/wiki/inc/lang/zh/read.txt
deleted file mode 100644
index eb47765..0000000
--- a/wiki/inc/lang/zh/read.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-本页é¢åªè¯»ã€‚您å¯ä»¥æŸ¥çœ‹æºæ–‡ä»¶ï¼Œä½†ä¸èƒ½æ›´æ”¹å®ƒã€‚如果您觉得这是系统错误,请è”系管ç†å‘˜ã€‚
-
diff --git a/wiki/inc/lang/zh/recent.txt b/wiki/inc/lang/zh/recent.txt
deleted file mode 100644
index 95634d0..0000000
--- a/wiki/inc/lang/zh/recent.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== 最近更新 ======
-
-ä»¥ä¸‹çš„é¡µé¢æ˜¯æœ€è¿‘æ‰æ›´æ–°çš„:
-
-
diff --git a/wiki/inc/lang/zh/register.txt b/wiki/inc/lang/zh/register.txt
deleted file mode 100644
index 7410ff1..0000000
--- a/wiki/inc/lang/zh/register.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== 注册新用户 ======
-
-填写以下资料æ¥åˆ›å»ºä¸€ä¸ªæ–°å¸æˆ·ã€‚请确定您æä¾›çš„æ˜¯ **正确的 E-mail 地å€** - å¦‚æžœæ‚¨æ²¡æœ‰è¢«è¦æ±‚在这里输入密ç ï¼Œé‚£ä¹ˆæ–°å¯†ç å°†é€šè¿‡æ‚¨çš„邮件地å€å‘é€ç»™æ‚¨ã€‚ 用于登录的用户åå¿…é¡»åˆæ³•,请å‚阅 [[doku>pagename|pagename]]。
diff --git a/wiki/inc/lang/zh/registermail.txt b/wiki/inc/lang/zh/registermail.txt
deleted file mode 100644
index 56568dc..0000000
--- a/wiki/inc/lang/zh/registermail.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-æ–°ç”¨æˆ·å·²åˆ›å»ºã€‚ä¸‹é¢æ˜¯è¯¦ç»†ä¿¡æ¯ï¼š
-
-ç”¨æˆ·å      : @NEWUSER@
-å…¨å        : @NEWNAME@
-E-mail      : @NEWEMAIL@
-
-日期        : @DATE@
-æµè§ˆå™¨      : @BROWSER@
-IP åœ°å€     : @IPADDRESS@
-机器åç§°    : @HOSTNAME@
diff --git a/wiki/inc/lang/zh/resendpwd.txt b/wiki/inc/lang/zh/resendpwd.txt
deleted file mode 100644
index f98e469..0000000
--- a/wiki/inc/lang/zh/resendpwd.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== å‘逿–°å¯†ç  ======
-
-è¯·åœ¨ä¸‹åˆ—åŒºåŸŸä¸­è¾“å…¥æ‚¨çš„ç”¨æˆ·åæ¥èŽ·å–æ–°å¯†ç ã€‚ 一å°åŒ…å«ç¡®è®¤é“¾æŽ¥çš„邮件将å‘é€ç»™æ‚¨æ³¨å†Œçš„邮件地å€ã€‚
-
-
diff --git a/wiki/inc/lang/zh/resetpwd.txt b/wiki/inc/lang/zh/resetpwd.txt
deleted file mode 100644
index a9d59fd..0000000
--- a/wiki/inc/lang/zh/resetpwd.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== è®¾ç½®æ–°å¯†ç  ======
-
-请为您在本维基上的账户设置一个新密ç ã€‚
\ No newline at end of file
diff --git a/wiki/inc/lang/zh/revisions.txt b/wiki/inc/lang/zh/revisions.txt
deleted file mode 100644
index 89d2a78..0000000
--- a/wiki/inc/lang/zh/revisions.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== 修订记录 ======
-
-ä»¥ä¸‹æ˜¯å½“å‰æ–‡æ¡£çš„修订记录。如果è¦å›žå¤åˆ°æŸä¸ªæ—§çš„修订版,请在下é¢é€‰æ‹©å®ƒï¼Œå¹¶ç‚¹å‡»â€œç¼–辑本页â€ï¼Œä¹‹åŽä¿å­˜å³å¯ã€‚
\ No newline at end of file
diff --git a/wiki/inc/lang/zh/searchpage.txt b/wiki/inc/lang/zh/searchpage.txt
deleted file mode 100644
index 0ea6cb5..0000000
--- a/wiki/inc/lang/zh/searchpage.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== æœç´¢ ======
-
-下é¢å°†æ˜¾ç¤ºæ‚¨çš„æœç´¢ç»“æžœã€‚@CREATEPAGEINFO@
-
diff --git a/wiki/inc/lang/zh/showrev.txt b/wiki/inc/lang/zh/showrev.txt
deleted file mode 100644
index 770fecc..0000000
--- a/wiki/inc/lang/zh/showrev.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-**这是本文档旧的修订版ï¼**
-----
diff --git a/wiki/inc/lang/zh/stopwords.txt b/wiki/inc/lang/zh/stopwords.txt
deleted file mode 100644
index 0a18e46..0000000
--- a/wiki/inc/lang/zh/stopwords.txt
+++ /dev/null
@@ -1,29 +0,0 @@
-# 这是一个索引器忽略的å•è¯åˆ—表,æ¯è¡Œä¸€ä¸ªå•è¯
-# 这个文件需è¦ä½¿ç”¨UNIXè¡Œç»“å°¾ï¼ˆå•æ¢è¡Œç¬¦ï¼‰
-# ä¸éœ€è¦åŒ…括短于3字符的è¯ï¼Œè¿™äº›éƒ½ä¼šè¢«å¿½ç•¥
-# 这个列表是基于此改进的 http://www.ranks.nl/stopwords/
-about
-are
-and
-you
-your
-them
-their
-com
-for
-from
-into
-how
-that
-the
-this
-was
-what
-when
-where
-who
-will
-with
-und
-the
-www
diff --git a/wiki/inc/lang/zh/subscr_digest.txt b/wiki/inc/lang/zh/subscr_digest.txt
deleted file mode 100644
index 53326ae..0000000
--- a/wiki/inc/lang/zh/subscr_digest.txt
+++ /dev/null
@@ -1,15 +0,0 @@
-您好ï¼
-
-@TITLE@ ä¸­çš„é¡µé¢ @PAGE@ å·²ç»æ›´æ”¹ã€‚
-这里是更改的内容:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-旧版本:@OLDPAGE@
-新版本:@NEWPAGE@
-
-è¦å–æ¶ˆé¡µé¢æé†’ï¼Œä»Ž @DOKUWIKIURL@ ç™»å½•ç»´åŸºï¼Œç„¶åŽæµè§ˆ
-@SUBSCRIBE@
-并退订页é¢ä»¥åŠ/或者命å空间的更改。
diff --git a/wiki/inc/lang/zh/subscr_form.txt b/wiki/inc/lang/zh/subscr_form.txt
deleted file mode 100644
index 65bfd40..0000000
--- a/wiki/inc/lang/zh/subscr_form.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== è®¢é˜…ç®¡ç† ======
-
-这个页é¢å…许您管ç†åœ¨å½“å‰é¡µé¢å’Œå‘½å空间的订阅。
\ No newline at end of file
diff --git a/wiki/inc/lang/zh/subscr_list.txt b/wiki/inc/lang/zh/subscr_list.txt
deleted file mode 100644
index 79846f6..0000000
--- a/wiki/inc/lang/zh/subscr_list.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-您好ï¼
-
-@TITLE@ 中的命å空间 @PAGE@ 的页é¢å·²ç»æ›´æ”¹ã€‚
-这里是更改的页é¢ï¼š
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-è¦å–æ¶ˆé¡µé¢æé†’ï¼Œä»Ž @DOKUWIKIURL@ ç™»å½•ç»´åŸºï¼Œç„¶åŽæµè§ˆ
-@SUBSCRIBE@
-并退订页é¢ä»¥åŠ/或者命å空间的更改。
diff --git a/wiki/inc/lang/zh/subscr_single.txt b/wiki/inc/lang/zh/subscr_single.txt
deleted file mode 100644
index 9c1adc8..0000000
--- a/wiki/inc/lang/zh/subscr_single.txt
+++ /dev/null
@@ -1,18 +0,0 @@
-您好ï¼
-
-@TITLE@ ä¸­çš„é¡µé¢ @PAGE@ å·²ç»æ›´æ”¹ã€‚
-这里是更改的内容:
-
---------------------------------------------------------
-@DIFF@
---------------------------------------------------------
-
-时间:@DATE@
-用户:@USER@
-编辑摘è¦ï¼š@SUMMARY@
-旧版本:@OLDPAGE@
-新版本:@NEWPAGE@
-
-è¦å–æ¶ˆé¡µé¢æé†’ï¼Œä»Ž @DOKUWIKIURL@ ç™»å½•ç»´åŸºï¼Œç„¶åŽæµè§ˆ
-@SUBSCRIBE@
-并退订页é¢ä»¥åŠ/或者命å空间的更改。
diff --git a/wiki/inc/lang/zh/updateprofile.txt b/wiki/inc/lang/zh/updateprofile.txt
deleted file mode 100644
index 0075788..0000000
--- a/wiki/inc/lang/zh/updateprofile.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== æ›´æ–°æ‚¨å¸æˆ·çš„ä¿¡æ¯ ======
-
-您åªéœ€è¦å¡«å†™å¸Œæœ›æ›´æ”¹çš„区域å³å¯ã€‚您ä¸èƒ½æ›´æ”¹ç”¨æˆ·å。
-
-
diff --git a/wiki/inc/lang/zh/uploadmail.txt b/wiki/inc/lang/zh/uploadmail.txt
deleted file mode 100644
index a5ce539..0000000
--- a/wiki/inc/lang/zh/uploadmail.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-您好ï¼
-
-一个文件被上传到您的 DokuWiki ç«™ç‚¹ã€‚ä¸‹é¢æ˜¯è¯¦ç»†ä¿¡æ¯ï¼š
-
-文件å : @MEDIA@
-日期 : @DATE@
-æµè§ˆå™¨ : @BROWSER@
-IP åœ°å€ : @IPADDRESS@
-主机å : @HOSTNAME@
-å¤§å° : @SIZE@
-MIME 类型 : @MIME@
-用户 : @USER@
diff --git a/wiki/inc/load.php b/wiki/inc/load.php
deleted file mode 100644
index 2131b9d..0000000
--- a/wiki/inc/load.php
+++ /dev/null
@@ -1,159 +0,0 @@
-<?php
-/**
- * Load all internal libraries and setup class autoloader
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- */
-
-// setup class autoloader
-spl_autoload_register('load_autoload');
-
-// require all the common libraries
-// for a few of these order does matter
-require_once(DOKU_INC.'inc/actions.php');
-require_once(DOKU_INC.'inc/changelog.php');
-require_once(DOKU_INC.'inc/common.php');
-require_once(DOKU_INC.'inc/confutils.php');
-require_once(DOKU_INC.'inc/pluginutils.php');
-require_once(DOKU_INC.'inc/events.php');
-require_once(DOKU_INC.'inc/form.php');
-require_once(DOKU_INC.'inc/fulltext.php');
-require_once(DOKU_INC.'inc/html.php');
-require_once(DOKU_INC.'inc/httputils.php');
-require_once(DOKU_INC.'inc/indexer.php');
-require_once(DOKU_INC.'inc/infoutils.php');
-require_once(DOKU_INC.'inc/io.php');
-require_once(DOKU_INC.'inc/mail.php');
-require_once(DOKU_INC.'inc/media.php');
-require_once(DOKU_INC.'inc/pageutils.php');
-require_once(DOKU_INC.'inc/parserutils.php');
-require_once(DOKU_INC.'inc/search.php');
-require_once(DOKU_INC.'inc/subscription.php');
-require_once(DOKU_INC.'inc/template.php');
-require_once(DOKU_INC.'inc/toolbar.php');
-require_once(DOKU_INC.'inc/utf8.php');
-require_once(DOKU_INC.'inc/auth.php');
-require_once(DOKU_INC.'inc/compatibility.php');
-
-/**
- * spl_autoload_register callback
- *
- * Contains a static list of DokuWiki's core classes and automatically
- * require()s their associated php files when an object is instantiated.
- *
- * @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;
-    if(is_null($classes)) $classes = array(
-        'DokuHTTPClient'        => DOKU_INC.'inc/HTTPClient.php',
-        'HTTPClient'            => DOKU_INC.'inc/HTTPClient.php',
-        'JSON'                  => DOKU_INC.'inc/JSON.php',
-        'Diff'                  => DOKU_INC.'inc/DifferenceEngine.php',
-        'UnifiedDiffFormatter'  => DOKU_INC.'inc/DifferenceEngine.php',
-        'TableDiffFormatter'    => DOKU_INC.'inc/DifferenceEngine.php',
-        'cache'                 => DOKU_INC.'inc/cache.php',
-        'cache_parser'          => DOKU_INC.'inc/cache.php',
-        'cache_instructions'    => DOKU_INC.'inc/cache.php',
-        'cache_renderer'        => DOKU_INC.'inc/cache.php',
-        'Doku_Event'            => DOKU_INC.'inc/events.php',
-        'Doku_Event_Handler'    => DOKU_INC.'inc/events.php',
-        'Input'                 => DOKU_INC.'inc/Input.class.php',
-        'JpegMeta'              => DOKU_INC.'inc/JpegMeta.php',
-        'SimplePie'             => DOKU_INC.'inc/SimplePie.php',
-        'FeedParser'            => DOKU_INC.'inc/FeedParser.php',
-        'IXR_Server'            => DOKU_INC.'inc/IXR_Library.php',
-        'IXR_Client'            => DOKU_INC.'inc/IXR_Library.php',
-        'IXR_Error'             => DOKU_INC.'inc/IXR_Library.php',
-        'IXR_IntrospectionServer' => DOKU_INC.'inc/IXR_Library.php',
-        'Doku_Plugin_Controller'=> DOKU_INC.'inc/plugincontroller.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',
-        'Sitemapper'            => DOKU_INC.'inc/Sitemapper.php',
-        'PassHash'              => DOKU_INC.'inc/PassHash.class.php',
-        'Mailer'                => DOKU_INC.'inc/Mailer.class.php',
-        'RemoteAPI'             => DOKU_INC.'inc/remote.php',
-        'RemoteAPICore'         => DOKU_INC.'inc/RemoteAPICore.php',
-        'Subscription'          => DOKU_INC.'inc/subscription.php',
-
-        'DokuWiki_PluginInterface' => DOKU_INC.'inc/PluginInterface.php',
-        'DokuWiki_PluginTrait'     => DOKU_INC.'inc/PluginTrait.php',
-        'DokuWiki_Plugin'          => DOKU_INC.'inc/Plugin.php',
-
-
-        'DokuWiki_Action_Plugin' => DOKU_PLUGIN.'action.php',
-        'DokuWiki_Admin_Plugin'  => DOKU_PLUGIN.'admin.php',
-        'DokuWiki_Syntax_Plugin' => DOKU_PLUGIN.'syntax.php',
-        'DokuWiki_Remote_Plugin' => DOKU_PLUGIN.'remote.php',
-        'DokuWiki_Auth_Plugin'   => DOKU_PLUGIN.'auth.php',
-        'DokuWiki_CLI_Plugin'    => DOKU_PLUGIN.'cli.php',
-
-        'Doku_Renderer'          => DOKU_INC.'inc/parser/renderer.php',
-        'Doku_Renderer_xhtml'    => DOKU_INC.'inc/parser/xhtml.php',
-        'Doku_Renderer_code'     => DOKU_INC.'inc/parser/code.php',
-        'Doku_Renderer_xhtmlsummary' => DOKU_INC.'inc/parser/xhtmlsummary.php',
-        'Doku_Renderer_metadata' => DOKU_INC.'inc/parser/metadata.php',
-
-        'DokuCLI'                => DOKU_INC.'inc/cli.php',
-        'DokuCLI_Options'        => DOKU_INC.'inc/cli.php',
-        'DokuCLI_Colors'         => DOKU_INC.'inc/cli.php',
-
-    );
-
-    if(isset($classes[$name])){
-        require ($classes[$name]);
-        return true;
-    }
-
-    // namespace to directory conversion
-    $name = str_replace('\\', '/', $name);
-
-    // plugin namespace
-    if(substr($name, 0, 16) == 'dokuwiki/plugin/') {
-        $name = str_replace('/test/', '/_test/', $name); // no underscore in test namespace
-        $file = DOKU_PLUGIN . substr($name, 16) . '.php';
-        if(file_exists($file)) {
-            require $file;
-            return true;
-        }
-    }
-
-    // template namespace
-    if(substr($name, 0, 18) == 'dokuwiki/template/') {
-        $name = str_replace('/test/', '/_test/', $name); // no underscore in test namespace
-        $file = DOKU_INC.'lib/tpl/' . substr($name, 18) . '.php';
-        if(file_exists($file)) {
-            require $file;
-            return true;
-        }
-    }
-
-    // our own namespace
-    if(substr($name, 0, 9) == 'dokuwiki/') {
-        $file = DOKU_INC . 'inc/' . substr($name, 9) . '.php';
-        if(file_exists($file)) {
-            require $file;
-            return true;
-        }
-    }
-
-    // Plugin loading
-    if(preg_match('/^(auth|helper|syntax|action|admin|renderer|remote|cli)_plugin_('.DOKU_PLUGIN_NAME_REGEX.')(?:_([^_]+))?$/',
-                  $name, $m)) {
-        // try to load the wanted plugin file
-        $c = ((count($m) === 4) ? "/{$m[3]}" : '');
-        $plg = DOKU_PLUGIN . "{$m[2]}/{$m[1]}$c.php";
-        if(file_exists($plg)){
-            require $plg;
-        }
-        return true;
-    }
-    return false;
-}
-
diff --git a/wiki/inc/mail.php b/wiki/inc/mail.php
deleted file mode 100644
index f72dbde..0000000
--- a/wiki/inc/mail.php
+++ /dev/null
@@ -1,348 +0,0 @@
-<?php
-/**
- * Mail functions
- *
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * @author     Andreas Gohr <andi@splitbrain.org>
- */
-
-if(!defined('DOKU_INC')) die('meh.');
-
-// end of line for mail lines - RFC822 says CRLF but postfix (and other MTAs?)
-// think different
-if(!defined('MAILHEADER_EOL')) define('MAILHEADER_EOL',"\n");
-#define('MAILHEADER_ASCIIONLY',1);
-
-/**
- * Patterns for use in email detection and validation
- *
- * NOTE: there is an unquoted '/' in RFC2822_ATEXT, it must remain unquoted to be used in the parser
- * the pattern uses non-capturing groups as captured groups aren't allowed in the parser
- * select pattern delimiters with care!
- *
- * May not be completly RFC conform!
- * @link http://www.faqs.org/rfcs/rfc2822.html (paras 3.4.1 & 3.2.4)
- *
- * @author Chris Smith <chris@jalakai.co.uk>
- * Check if a given mail address is valid
- */
-if (!defined('RFC2822_ATEXT')) define('RFC2822_ATEXT',"0-9a-zA-Z!#$%&'*+/=?^_`{|}~-");
-if (!defined('PREG_PATTERN_VALID_EMAIL')) define('PREG_PATTERN_VALID_EMAIL', '['.RFC2822_ATEXT.']+(?:\.['.RFC2822_ATEXT.']+)*@(?i:[0-9a-z][0-9a-z-]*\.)+(?i:[a-z]{2,63})');
-
-/**
- * Prepare mailfrom replacement patterns
- *
- * Also prepares a mailfromnobody config that contains an autoconstructed address
- * if the mailfrom one is userdependent and this might not be wanted (subscriptions)
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- */
-function mail_setup(){
-    global $conf;
-    global $USERINFO;
-    /** @var Input $INPUT */
-    global $INPUT;
-
-    // auto constructed address
-    $host = @parse_url(DOKU_URL,PHP_URL_HOST);
-    if(!$host) $host = 'example.com';
-    $noreply = 'noreply@'.$host;
-
-    $replace = array();
-    if(!empty($USERINFO['mail'])){
-        $replace['@MAIL@'] = $USERINFO['mail'];
-    }else{
-        $replace['@MAIL@'] = $noreply;
-    }
-
-    // use 'noreply' if no user
-    $replace['@USER@'] = $INPUT->server->str('REMOTE_USER', 'noreply', true);
-
-    if(!empty($USERINFO['name'])){
-        $replace['@NAME@'] = $USERINFO['name'];
-    }else{
-        $replace['@NAME@'] = '';
-    }
-
-    // apply replacements
-    $from = str_replace(array_keys($replace),
-                        array_values($replace),
-                        $conf['mailfrom']);
-
-    // any replacements done? set different mailfromnone
-    if($from != $conf['mailfrom']){
-        $conf['mailfromnobody'] = $noreply;
-    }else{
-        $conf['mailfromnobody'] = $from;
-    }
-    $conf['mailfrom'] = $from;
-}
-
-/**
- * UTF-8 autoencoding replacement for PHPs mail function
- *
- * Email address fields (To, From, Cc, Bcc can contain a textpart and an address
- * like this: 'Andreas Gohr <andi@splitbrain.org>' - the text part is encoded
- * automatically. You can seperate receivers by commas.
- *
- * @param string $to      Receiver of the mail (multiple seperated by commas)
- * @param string $subject Mailsubject
- * @param string $body    Messagebody
- * @param string $from    Sender address
- * @param string $cc      CarbonCopy receiver (multiple seperated by commas)
- * @param string $bcc     BlindCarbonCopy receiver (multiple seperated by commas)
- * @param string $headers Additional Headers (seperated by MAILHEADER_EOL
- * @param string $params  Additonal Sendmail params (passed to mail())
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- * @see    mail()
- *
- * @deprecated User the Mailer:: class instead
- */
-function mail_send($to, $subject, $body, $from='', $cc='', $bcc='', $headers=null, $params=null){
-    dbg_deprecated('class Mailer::');
-    $message = compact('to','subject','body','from','cc','bcc','headers','params');
-    return trigger_event('MAIL_MESSAGE_SEND',$message,'_mail_send_action');
-}
-
-/**
- * @param $data
- * @return bool
- *
- * @deprecated User the Mailer:: class instead
- */
-function _mail_send_action($data) {
-    dbg_deprecated('class Mailer::');
-    // retrieve parameters from event data, $to, $subject, $body, $from, $cc, $bcc, $headers, $params
-    $to = $data['to'];
-    $subject = $data['subject'];
-    $body = $data['body'];
-
-    // add robustness in case plugin removes any of these optional values
-    $from = isset($data['from']) ? $data['from'] : '';
-    $cc = isset($data['cc']) ? $data['cc'] : '';
-    $bcc = isset($data['bcc']) ? $data['bcc'] : '';
-    $headers = isset($data['headers']) ? $data['headers'] : null;
-    $params = isset($data['params']) ? $data['params'] : null;
-
-    // discard mail request if no recipients are available
-    if(trim($to) === '' && trim($cc) === '' && trim($bcc) === '') return false;
-
-    // end additional code to support event ... original mail_send() code from here
-
-    if(defined('MAILHEADER_ASCIIONLY')){
-        $subject = utf8_deaccent($subject);
-        $subject = utf8_strip($subject);
-    }
-
-    if(!utf8_isASCII($subject)) {
-        $enc_subj = '=?UTF-8?Q?'.mail_quotedprintable_encode($subject,0).'?=';
-        // Spaces must be encoded according to rfc2047. Use the "_" shorthand
-        $enc_subj = preg_replace('/ /', '_', $enc_subj);
-
-        // quoted printable has length restriction, use base64 if needed
-        if(strlen($subject) > 74){
-            $enc_subj = '=?UTF-8?B?'.base64_encode($subject).'?=';
-        }
-
-        $subject = $enc_subj;
-    }
-
-    $header  = '';
-
-    // No named recipients for To: in Windows (see FS#652)
-    $usenames = (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') ? false : true;
-
-    $to = mail_encode_address($to,'',$usenames);
-    $header .= mail_encode_address($from,'From');
-    $header .= mail_encode_address($cc,'Cc');
-    $header .= mail_encode_address($bcc,'Bcc');
-    $header .= 'MIME-Version: 1.0'.MAILHEADER_EOL;
-    $header .= 'Content-Type: text/plain; charset=UTF-8'.MAILHEADER_EOL;
-    $header .= 'Content-Transfer-Encoding: quoted-printable'.MAILHEADER_EOL;
-    $header .= $headers;
-    $header  = trim($header);
-
-    $body = mail_quotedprintable_encode($body);
-
-    if($params == null){
-        return @mail($to,$subject,$body,$header);
-    }else{
-        return @mail($to,$subject,$body,$header,$params);
-    }
-}
-
-/**
- * Encodes an email address header
- *
- * Unicode characters will be deaccented and encoded
- * quoted_printable for headers.
- * Addresses may not contain Non-ASCII data!
- *
- * Example:
- *   mail_encode_address("föö <foo@bar.com>, me@somewhere.com","TBcc");
- *
- * @param string  $string Multiple adresses separated by commas
- * @param string  $header Name of the header (To,Bcc,Cc,...)
- * @param boolean $names  Allow named Recipients?
- *
- * @deprecated User the Mailer:: class instead
- */
-function mail_encode_address($string,$header='',$names=true){
-    dbg_deprecated('class Mailer::');
-    $headers = '';
-    $parts = explode(',',$string);
-    foreach ($parts as $part){
-        $part = trim($part);
-
-        // parse address
-        if(preg_match('#(.*?)<(.*?)>#',$part,$matches)){
-            $text = trim($matches[1]);
-            $addr = $matches[2];
-        }else{
-            $addr = $part;
-        }
-
-        // skip empty ones
-        if(empty($addr)){
-            continue;
-        }
-
-        // FIXME: is there a way to encode the localpart of a emailaddress?
-        if(!utf8_isASCII($addr)){
-            msg(hsc("E-Mail address <$addr> is not ASCII"),-1);
-            continue;
-        }
-
-        if(!mail_isvalid($addr)){
-            msg(hsc("E-Mail address <$addr> is not valid"),-1);
-            continue;
-        }
-
-        // text was given
-        if(!empty($text) && $names){
-            // add address quotes
-            $addr = "<$addr>";
-
-            if(defined('MAILHEADER_ASCIIONLY')){
-                $text = utf8_deaccent($text);
-                $text = utf8_strip($text);
-            }
-
-            if(!utf8_isASCII($text)){
-                // put the quotes outside as in =?UTF-8?Q?"Elan Ruusam=C3=A4e"?= vs "=?UTF-8?Q?Elan Ruusam=C3=A4e?="
-                if (preg_match('/^"(.+)"$/', $text, $matches)) {
-                    $text = '"=?UTF-8?Q?'.mail_quotedprintable_encode($matches[1], 0).'?="';
-                } else {
-                    $text = '=?UTF-8?Q?'.mail_quotedprintable_encode($text, 0).'?=';
-                }
-                // additionally the space character should be encoded as =20 (or each
-                // word QP encoded separately).
-                // however this is needed only in mail headers, not globally in mail_quotedprintable_encode().
-                $text = str_replace(" ", "=20", $text);
-            }
-        }else{
-            $text = '';
-        }
-
-        // add to header comma seperated
-        if($headers != ''){
-            $headers .= ',';
-            if($header) $headers .= MAILHEADER_EOL.' '; // avoid overlong mail headers
-        }
-        $headers .= $text.' '.$addr;
-    }
-
-    if(empty($headers)) return null;
-
-    //if headername was given add it and close correctly
-    if($header) $headers = $header.': '.$headers.MAILHEADER_EOL;
-
-    return $headers;
-}
-
-/**
- * Check if a given mail address is valid
- *
- * @param   string $email the address to check
- * @return  bool          true if address is valid
- */
-function mail_isvalid($email) {
-    return EmailAddressValidator::checkEmailAddress($email, true);
-}
-
-/**
- * Quoted printable encoding
- *
- * @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
-    $aLines= preg_split("/(?:\r\n|\r|\n)/", $sText);
-    $cnt = count($aLines);
-
-    for ($i=0;$i<$cnt;$i++) {
-        $sLine =& $aLines[$i];
-        if (strlen($sLine)===0) continue; // do nothing, if empty
-
-        $sRegExp = '/[^\x09\x20\x21-\x3C\x3E-\x7E]/e';
-
-        // imap_8bit encodes x09 everywhere, not only at lineends,
-        // for EBCDIC safeness encode !"#$@[\]^`{|}~,
-        // for complete safeness encode every character :)
-        if ($bEmulate_imap_8bit)
-            $sRegExp = '/[^\x20\x21-\x3C\x3E-\x7E]/';
-
-        $sLine = preg_replace_callback( $sRegExp, 'mail_quotedprintable_encode_callback', $sLine );
-
-        // encode x09,x20 at lineends
-        {
-            $iLength = strlen($sLine);
-            $iLastChar = ord($sLine{$iLength-1});
-
-            //              !!!!!!!!
-            // imap_8_bit does not encode x20 at the very end of a text,
-            // here is, where I don't agree with imap_8_bit,
-            // please correct me, if I'm wrong,
-            // or comment next line for RFC2045 conformance, if you like
-            if (!($bEmulate_imap_8bit && ($i==count($aLines)-1))){
-                if (($iLastChar==0x09)||($iLastChar==0x20)) {
-                    $sLine{$iLength-1}='=';
-                    $sLine .= ($iLastChar==0x09)?'09':'20';
-                }
-            }
-        }    // imap_8bit encodes x20 before chr(13), too
-        // although IMHO not requested by RFC2045, why not do it safer :)
-        // and why not encode any x20 around chr(10) or chr(13)
-        if ($bEmulate_imap_8bit) {
-            $sLine=str_replace(' =0D','=20=0D',$sLine);
-            //$sLine=str_replace(' =0A','=20=0A',$sLine);
-            //$sLine=str_replace('=0D ','=0D=20',$sLine);
-            //$sLine=str_replace('=0A ','=0A=20',$sLine);
-        }
-
-        // finally split into softlines no longer than $maxlen chars,
-        // for even more safeness one could encode x09,x20
-        // at the very first character of the line
-        // and after soft linebreaks, as well,
-        // but this wouldn't be caught by such an easy RegExp
-        if($maxlen){
-            preg_match_all( '/.{1,'.($maxlen - 2).'}([^=]{0,2})?/', $sLine, $aMatch );
-            $sLine = implode( '=' . MAILHEADER_EOL, $aMatch[0] ); // add soft crlf's
-        }
-    }
-
-    // join lines into text
-    return implode(MAILHEADER_EOL,$aLines);
-}
-
-function mail_quotedprintable_encode_callback($matches){
-    return sprintf( "=%02X", ord ( $matches[0] ) ) ;
-}
diff --git a/wiki/inc/media.php b/wiki/inc/media.php
deleted file mode 100644
index 1284660..0000000
--- a/wiki/inc/media.php
+++ /dev/null
@@ -1,2498 +0,0 @@
-<?php
-/**
- * All output and handler function needed for the media management popup
- *
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * @author     Andreas Gohr <andi@splitbrain.org>
- */
-
-if(!defined('DOKU_INC')) die('meh.');
-if(!defined('NL')) define('NL',"\n");
-
-/**
- * Lists pages which currently use a media file selected for deletion
- *
- * References uses the same visual as search results and share
- * their CSS tags except pagenames won't be links.
- *
- * @author Matthias Grimm <matthiasgrimm@users.sourceforge.net>
- *
- * @param array $data
- * @param string $id
- */
-function media_filesinuse($data,$id){
-    global $lang;
-    echo '<h1>'.$lang['reference'].' <code>'.hsc(noNS($id)).'</code></h1>';
-    echo '<p>'.hsc($lang['ref_inuse']).'</p>';
-
-    $hidden=0; //count of hits without read permission
-    foreach($data as $row){
-        if(auth_quickaclcheck($row) >= AUTH_READ && isVisiblePage($row)){
-            echo '<div class="search_result">';
-            echo '<span class="mediaref_ref">'.hsc($row).'</span>';
-            echo '</div>';
-        }else
-            $hidden++;
-    }
-    if ($hidden){
-        print '<div class="mediaref_hidden">'.$lang['ref_hidden'].'</div>';
-    }
-}
-
-/**
- * Handles the saving of image meta data
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- * @author Kate Arzamastseva <pshns@ukr.net>
- *
- * @param string $id media id
- * @param int $auth permission level
- * @param array $data
- * @return false|string
- */
-function media_metasave($id,$auth,$data){
-    if($auth < AUTH_UPLOAD) return false;
-    if(!checkSecurityToken()) return false;
-    global $lang;
-    global $conf;
-    $src = mediaFN($id);
-
-    $meta = new JpegMeta($src);
-    $meta->_parseAll();
-
-    foreach($data as $key => $val){
-        $val=trim($val);
-        if(empty($val)){
-            $meta->deleteField($key);
-        }else{
-            $meta->setField($key,$val);
-        }
-    }
-
-    $old = @filemtime($src);
-    if(!file_exists(mediaFN($id, $old)) && file_exists($src)) {
-        // add old revision to the attic
-        media_saveOldRevision($id);
-    }
-    $filesize_old = filesize($src);
-    if($meta->save()){
-        if($conf['fperm']) chmod($src, $conf['fperm']);
-        @clearstatcache(true, $src);
-        $new = @filemtime($src);
-        $filesize_new = filesize($src);
-        $sizechange = $filesize_new - $filesize_old;
-
-        // add a log entry to the media changelog
-        addMediaLogEntry($new, $id, DOKU_CHANGE_TYPE_EDIT, $lang['media_meta_edited'], '', null, $sizechange);
-
-        msg($lang['metasaveok'],1);
-        return $id;
-    }else{
-        msg($lang['metasaveerr'],-1);
-        return false;
-    }
-}
-
-/**
- * check if a media is external source
- *
- * @author Gerrit Uitslag <klapinklapin@gmail.com>
- *
- * @param string $id the media ID or URL
- * @return bool
- */
-function media_isexternal($id){
-    if (preg_match('#^(?:https?|ftp)://#i', $id)) return true;
-    return false;
-}
-
-/**
- * Check if a media item is public (eg, external URL or readable by @ALL)
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- *
- * @param string $id  the media ID or URL
- * @return bool
- */
-function media_ispublic($id){
-    if(media_isexternal($id)) return true;
-    $id = cleanID($id);
-    if(auth_aclcheck(getNS($id).':*', '', array()) >= AUTH_READ) return true;
-    return false;
-}
-
-/**
- * Display the form to edit image meta data
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- * @author Kate Arzamastseva <pshns@ukr.net>
- *
- * @param string $id media id
- * @param int $auth permission level
- * @return bool
- */
-function media_metaform($id,$auth){
-    global $lang;
-
-    if($auth < AUTH_UPLOAD) {
-        echo '<div class="nothing">'.$lang['media_perm_upload'].'</div>'.NL;
-        return false;
-    }
-
-    // load the field descriptions
-    static $fields = null;
-    if(is_null($fields)){
-        $config_files = getConfigFiles('mediameta');
-        foreach ($config_files as $config_file) {
-            if(file_exists($config_file)) include($config_file);
-        }
-    }
-
-    $src = mediaFN($id);
-
-    // output
-    $form = new Doku_Form(array('action' => media_managerURL(array('tab_details' => 'view'), '&'),
-                                'class' => 'meta'));
-    $form->addHidden('img', $id);
-    $form->addHidden('mediado', 'save');
-    foreach($fields as $key => $field){
-        // get current value
-        if (empty($field[0])) continue;
-        $tags = array($field[0]);
-        if(is_array($field[3])) $tags = array_merge($tags,$field[3]);
-        $value = tpl_img_getTag($tags,'',$src);
-        $value = cleanText($value);
-
-        // prepare attributes
-        $p = array();
-        $p['class'] = 'edit';
-        $p['id']    = 'meta__'.$key;
-        $p['name']  = 'meta['.$field[0].']';
-        $p_attrs    = array('class' => 'edit');
-
-        $form->addElement('<div class="row">');
-        if($field[2] == 'text'){
-            $form->addElement(form_makeField('text', $p['name'], $value, ($lang[$field[1]]) ? $lang[$field[1]] : $field[1] . ':', $p['id'], $p['class'], $p_attrs));
-        }else{
-            $att = buildAttributes($p);
-            $form->addElement('<label for="meta__'.$key.'">'.$lang[$field[1]].'</label>');
-            $form->addElement("<textarea $att rows=\"6\" cols=\"50\">".formText($value).'</textarea>');
-        }
-        $form->addElement('</div>'.NL);
-    }
-    $form->addElement('<div class="buttons">');
-    $form->addElement(form_makeButton('submit', '', $lang['btn_save'], array('accesskey' => 's', 'name' => 'mediado[save]')));
-    $form->addElement('</div>'.NL);
-    $form->printForm();
-
-    return true;
-}
-
-/**
- * Convenience function to check if a media file is still in use
- *
- * @author Michael Klier <chi@chimeric.de>
- *
- * @param string $id media id
- * @return array|bool
- */
-function media_inuse($id) {
-    global $conf;
-
-    if($conf['refcheck']){
-        $mediareferences = ft_mediause($id,true);
-        if(!count($mediareferences)) {
-            return false;
-        } else {
-            return $mediareferences;
-        }
-    } else {
-        return false;
-    }
-}
-
-define('DOKU_MEDIA_DELETED', 1);
-define('DOKU_MEDIA_NOT_AUTH', 2);
-define('DOKU_MEDIA_INUSE', 4);
-define('DOKU_MEDIA_EMPTY_NS', 8);
-
-/**
- * Handles media file deletions
- *
- * If configured, checks for media references before deletion
- *
- * @author             Andreas Gohr <andi@splitbrain.org>
- *
- * @param string $id media id
- * @param int $auth no longer used
- * @return int One of: 0,
- *                     DOKU_MEDIA_DELETED,
- *                     DOKU_MEDIA_DELETED | DOKU_MEDIA_EMPTY_NS,
- *                     DOKU_MEDIA_NOT_AUTH,
- *                     DOKU_MEDIA_INUSE
- */
-function media_delete($id,$auth){
-    global $lang;
-    $auth = auth_quickaclcheck(ltrim(getNS($id).':*', ':'));
-    if($auth < AUTH_DELETE) return DOKU_MEDIA_NOT_AUTH;
-    if(media_inuse($id)) return DOKU_MEDIA_INUSE;
-
-    $file = mediaFN($id);
-
-    // trigger an event - MEDIA_DELETE_FILE
-    $data = array();
-    $data['id']   = $id;
-    $data['name'] = utf8_basename($file);
-    $data['path'] = $file;
-    $data['size'] = (file_exists($file)) ? filesize($file) : 0;
-
-    $data['unl'] = false;
-    $data['del'] = false;
-    $evt = new Doku_Event('MEDIA_DELETE_FILE',$data);
-    if ($evt->advise_before()) {
-        $old = @filemtime($file);
-        if(!file_exists(mediaFN($id, $old)) && file_exists($file)) {
-            // add old revision to the attic
-            media_saveOldRevision($id);
-        }
-
-        $data['unl'] = @unlink($file);
-        if($data['unl']) {
-            $sizechange = 0 - $data['size'];
-            addMediaLogEntry(time(), $id, DOKU_CHANGE_TYPE_DELETE, $lang['deleted'], '', null, $sizechange);
-
-            $data['del'] = io_sweepNS($id, 'mediadir');
-        }
-    }
-    $evt->advise_after();
-    unset($evt);
-
-    if($data['unl'] && $data['del']){
-        return DOKU_MEDIA_DELETED | DOKU_MEDIA_EMPTY_NS;
-    }
-
-    return $data['unl'] ? DOKU_MEDIA_DELETED : 0;
-}
-
-/**
- * Handle file uploads via XMLHttpRequest
- *
- * @param string $ns   target namespace
- * @param int    $auth current auth check result
- * @return false|string false on error, id of the new file on success
- */
-function media_upload_xhr($ns,$auth){
-    if(!checkSecurityToken()) return false;
-    global $INPUT;
-
-    $id = $INPUT->get->str('qqfile');
-    list($ext,$mime) = mimetype($id);
-    $input = fopen("php://input", "r");
-    if (!($tmp = io_mktmpdir())) return false;
-    $path = $tmp.'/'.md5($id);
-    $target = fopen($path, "w");
-    $realSize = stream_copy_to_stream($input, $target);
-    fclose($target);
-    fclose($input);
-    if (isset($_SERVER["CONTENT_LENGTH"]) && ($realSize != (int)$_SERVER["CONTENT_LENGTH"])){
-        unlink($path);
-        return false;
-    }
-
-    $res = media_save(
-        array('name' => $path,
-            'mime' => $mime,
-            'ext'  => $ext),
-        $ns.':'.$id,
-        (($INPUT->get->str('ow') == 'true') ? true : false),
-        $auth,
-        'copy'
-    );
-    unlink($path);
-    if ($tmp) io_rmdir($tmp, true);
-    if (is_array($res)) {
-        msg($res[0], $res[1]);
-        return false;
-    }
-    return $res;
-}
-
-/**
- * Handles media file uploads
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- * @author Michael Klier <chi@chimeric.de>
- *
- * @param string     $ns    target namespace
- * @param int        $auth  current auth check result
- * @param bool|array $file  $_FILES member, $_FILES['upload'] if false
- * @return false|string false on error, id of the new file on success
- */
-function media_upload($ns,$auth,$file=false){
-    if(!checkSecurityToken()) return false;
-    global $lang;
-    global $INPUT;
-
-    // get file and id
-    $id   = $INPUT->post->str('mediaid');
-    if (!$file) $file = $_FILES['upload'];
-    if(empty($id)) $id = $file['name'];
-
-    // check for errors (messages are done in lib/exe/mediamanager.php)
-    if($file['error']) return false;
-
-    // check extensions
-    list($fext,$fmime) = mimetype($file['name']);
-    list($iext,$imime) = mimetype($id);
-    if($fext && !$iext){
-        // no extension specified in id - read original one
-        $id   .= '.'.$fext;
-        $imime = $fmime;
-    }elseif($fext && $fext != $iext){
-        // extension was changed, print warning
-        msg(sprintf($lang['mediaextchange'],$fext,$iext));
-    }
-
-    $res = media_save(array('name' => $file['tmp_name'],
-                            'mime' => $imime,
-                            'ext'  => $iext), $ns.':'.$id,
-                      $INPUT->post->bool('ow'), $auth, 'copy_uploaded_file');
-    if (is_array($res)) {
-        msg($res[0], $res[1]);
-        return false;
-    }
-    return $res;
-}
-
-/**
- * An alternative to move_uploaded_file that copies
- *
- * Using copy, makes sure any setgid bits on the media directory are honored
- *
- * @see   move_uploaded_file()
- *
- * @param string $from
- * @param string $to
- * @return bool
- */
-function copy_uploaded_file($from, $to){
-    if(!is_uploaded_file($from)) return false;
-    $ok = copy($from, $to);
-    @unlink($from);
-    return $ok;
-}
-
-/**
- * This generates an action event and delegates to _media_upload_action().
- * Action plugins are allowed to pre/postprocess the uploaded file.
- * (The triggered event is preventable.)
- *
- * Event data:
- * $data[0]     fn_tmp:    the temporary file name (read from $_FILES)
- * $data[1]     fn:        the file name of the uploaded file
- * $data[2]     id:        the future directory id of the uploaded file
- * $data[3]     imime:     the mimetype of the uploaded file
- * $data[4]     overwrite: if an existing file is going to be overwritten
- * $data[5]     move:      name of function that performs move/copy/..
- *
- * @triggers MEDIA_UPLOAD_FINISH
- *
- * @param array  $file
- * @param string $id   media id
- * @param bool   $ow   overwrite?
- * @param int    $auth permission level
- * @param string $move name of functions that performs move/copy/..
- * @return false|array|string
- */
-function media_save($file, $id, $ow, $auth, $move) {
-    if($auth < AUTH_UPLOAD) {
-        return array("You don't have permissions to upload files.", -1);
-    }
-
-    if (!isset($file['mime']) || !isset($file['ext'])) {
-        list($ext, $mime) = mimetype($id);
-        if (!isset($file['mime'])) {
-            $file['mime'] = $mime;
-        }
-        if (!isset($file['ext'])) {
-            $file['ext'] = $ext;
-        }
-    }
-
-    global $lang, $conf;
-
-    // get filename
-    $id   = cleanID($id);
-    $fn   = mediaFN($id);
-
-    // get filetype regexp
-    $types = array_keys(getMimeTypes());
-    $types = array_map(
-        function ($q) {
-            return preg_quote($q, "/");
-        },
-        $types
-    );
-    $regex = join('|',$types);
-
-    // because a temp file was created already
-    if(!preg_match('/\.('.$regex.')$/i',$fn)) {
-        return array($lang['uploadwrong'],-1);
-    }
-
-    //check for overwrite
-    $overwrite = file_exists($fn);
-    $auth_ow = (($conf['mediarevisions']) ? AUTH_UPLOAD : AUTH_DELETE);
-    if($overwrite && (!$ow || $auth < $auth_ow)) {
-        return array($lang['uploadexist'], 0);
-    }
-    // check for valid content
-    $ok = media_contentcheck($file['name'], $file['mime']);
-    if($ok == -1){
-        return array(sprintf($lang['uploadbadcontent'],'.' . $file['ext']),-1);
-    }elseif($ok == -2){
-        return array($lang['uploadspam'],-1);
-    }elseif($ok == -3){
-        return array($lang['uploadxss'],-1);
-    }
-
-    // prepare event data
-    $data = array();
-    $data[0] = $file['name'];
-    $data[1] = $fn;
-    $data[2] = $id;
-    $data[3] = $file['mime'];
-    $data[4] = $overwrite;
-    $data[5] = $move;
-
-    // trigger event
-    return trigger_event('MEDIA_UPLOAD_FINISH', $data, '_media_upload_action', true);
-}
-
-/**
- * Callback adapter for media_upload_finish() triggered by MEDIA_UPLOAD_FINISH
- *
- * @author Michael Klier <chi@chimeric.de>
- *
- * @param array $data event data
- * @return false|array|string
- */
-function _media_upload_action($data) {
-    // fixme do further sanity tests of given data?
-    if(is_array($data) && count($data)===6) {
-        return media_upload_finish($data[0], $data[1], $data[2], $data[3], $data[4], $data[5]);
-    } else {
-        return false; //callback error
-    }
-}
-
-/**
- * Saves an uploaded media file
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- * @author Michael Klier <chi@chimeric.de>
- * @author Kate Arzamastseva <pshns@ukr.net>
- *
- * @param string $fn_tmp
- * @param string $fn
- * @param string $id        media id
- * @param string $imime     mime type
- * @param bool   $overwrite overwrite existing?
- * @param string $move      function name
- * @return array|string
- */
-function media_upload_finish($fn_tmp, $fn, $id, $imime, $overwrite, $move = 'move_uploaded_file') {
-    global $conf;
-    global $lang;
-    global $REV;
-
-    $old = @filemtime($fn);
-    if(!file_exists(mediaFN($id, $old)) && file_exists($fn)) {
-        // add old revision to the attic if missing
-        media_saveOldRevision($id);
-    }
-
-    // prepare directory
-    io_createNamespace($id, 'media');
-
-    $filesize_old = file_exists($fn) ? filesize($fn) : 0;
-
-    if($move($fn_tmp, $fn)) {
-        @clearstatcache(true,$fn);
-        $new = @filemtime($fn);
-        // Set the correct permission here.
-        // Always chmod media because they may be saved with different permissions than expected from the php umask.
-        // (Should normally chmod to $conf['fperm'] only if $conf['fperm'] is set.)
-        chmod($fn, $conf['fmode']);
-        msg($lang['uploadsucc'],1);
-        media_notify($id,$fn,$imime,$old);
-        // add a log entry to the media changelog
-        $filesize_new = filesize($fn);
-        $sizechange = $filesize_new - $filesize_old;
-        if($REV) {
-            addMediaLogEntry($new, $id, DOKU_CHANGE_TYPE_REVERT, sprintf($lang['restored'], dformat($REV)), $REV, null, $sizechange);
-        } elseif($overwrite) {
-            addMediaLogEntry($new, $id, DOKU_CHANGE_TYPE_EDIT, '', '', null, $sizechange);
-        } else {
-            addMediaLogEntry($new, $id, DOKU_CHANGE_TYPE_CREATE, $lang['created'], '', null, $sizechange);
-        }
-        return $id;
-    }else{
-        return array($lang['uploadfail'],-1);
-    }
-}
-
-/**
- * Moves the current version of media file to the media_attic
- * directory
- *
- * @author Kate Arzamastseva <pshns@ukr.net>
- *
- * @param string $id
- * @return int - revision date
- */
-function media_saveOldRevision($id){
-    global $conf, $lang;
-
-    $oldf = mediaFN($id);
-    if(!file_exists($oldf)) return '';
-    $date = filemtime($oldf);
-    if (!$conf['mediarevisions']) return $date;
-
-    $medialog = new MediaChangeLog($id);
-    if (!$medialog->getRevisionInfo($date)) {
-        // there was an external edit,
-        // there is no log entry for current version of file
-        $sizechange = filesize($oldf);
-        if(!file_exists(mediaMetaFN($id, '.changes'))) {
-            addMediaLogEntry($date, $id, DOKU_CHANGE_TYPE_CREATE, $lang['created'], '', null, $sizechange);
-        } else {
-            $oldRev = $medialog->getRevisions(-1, 1); // from changelog
-            $oldRev = (int) (empty($oldRev) ? 0 : $oldRev[0]);
-            $filesize_old = filesize(mediaFN($id, $oldRev));
-            $sizechange = $sizechange - $filesize_old;
-
-            addMediaLogEntry($date, $id, DOKU_CHANGE_TYPE_EDIT, '', '', null, $sizechange);
-        }
-    }
-
-    $newf = mediaFN($id,$date);
-    io_makeFileDir($newf);
-    if(copy($oldf, $newf)) {
-        // Set the correct permission here.
-        // Always chmod media because they may be saved with different permissions than expected from the php umask.
-        // (Should normally chmod to $conf['fperm'] only if $conf['fperm'] is set.)
-        chmod($newf, $conf['fmode']);
-    }
-    return $date;
-}
-
-/**
- * This function checks if the uploaded content is really what the
- * mimetype says it is. We also do spam checking for text types here.
- *
- * We need to do this stuff because we can not rely on the browser
- * to do this check correctly. Yes, IE is broken as usual.
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- * @link   http://www.splitbrain.org/blog/2007-02/12-internet_explorer_facilitates_cross_site_scripting
- * @fixme  check all 26 magic IE filetypes here?
- *
- * @param string $file path to file
- * @param string $mime mimetype
- * @return int
- */
-function media_contentcheck($file,$mime){
-    global $conf;
-    if($conf['iexssprotect']){
-        $fh = @fopen($file, 'rb');
-        if($fh){
-            $bytes = fread($fh, 256);
-            fclose($fh);
-            if(preg_match('/<(script|a|img|html|body|iframe)[\s>]/i',$bytes)){
-                return -3; //XSS: possibly malicious content
-            }
-        }
-    }
-    if(substr($mime,0,6) == 'image/'){
-        $info = @getimagesize($file);
-        if($mime == 'image/gif' && $info[2] != 1){
-            return -1; // uploaded content did not match the file extension
-        }elseif($mime == 'image/jpeg' && $info[2] != 2){
-            return -1;
-        }elseif($mime == 'image/png' && $info[2] != 3){
-            return -1;
-        }
-        # fixme maybe check other images types as well
-    }elseif(substr($mime,0,5) == 'text/'){
-        global $TEXT;
-        $TEXT = io_readFile($file);
-        if(checkwordblock()){
-            return -2; //blocked by the spam blacklist
-        }
-    }
-    return 0;
-}
-
-/**
- * Send a notify mail on uploads
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- *
- * @param string   $id      media id
- * @param string   $file    path to file
- * @param string   $mime    mime type
- * @param bool|int $old_rev revision timestamp or false
- * @return bool
- */
-function media_notify($id,$file,$mime,$old_rev=false){
-    global $conf;
-    if(empty($conf['notify'])) return false; //notify enabled?
-
-    $subscription = new Subscription();
-    return $subscription->send_media_diff($conf['notify'], 'uploadmail', $id, $old_rev);
-}
-
-/**
- * List all files in a given Media namespace
- *
- * @param string      $ns             namespace
- * @param null|int    $auth           permission level
- * @param string      $jump           id
- * @param bool        $fullscreenview
- * @param bool|string $sort           sorting order, false skips sorting
- */
-function media_filelist($ns,$auth=null,$jump='',$fullscreenview=false,$sort=false){
-    global $conf;
-    global $lang;
-    $ns = cleanID($ns);
-
-    // check auth our self if not given (needed for ajax calls)
-    if(is_null($auth)) $auth = auth_quickaclcheck("$ns:*");
-
-    if (!$fullscreenview) echo '<h1 id="media__ns">:'.hsc($ns).'</h1>'.NL;
-
-    if($auth < AUTH_READ){
-        // FIXME: print permission warning here instead?
-        echo '<div class="nothing">'.$lang['nothingfound'].'</div>'.NL;
-    }else{
-        if (!$fullscreenview) {
-            media_uploadform($ns, $auth);
-            media_searchform($ns);
-        }
-
-        $dir = utf8_encodeFN(str_replace(':','/',$ns));
-        $data = array();
-        search($data,$conf['mediadir'],'search_media',
-                array('showmsg'=>true,'depth'=>1),$dir,1,$sort);
-
-        if(!count($data)){
-            echo '<div class="nothing">'.$lang['nothingfound'].'</div>'.NL;
-        }else {
-            if ($fullscreenview) {
-                echo '<ul class="' . _media_get_list_type() . '">';
-            }
-            foreach($data as $item){
-                if (!$fullscreenview) {
-                    media_printfile($item,$auth,$jump);
-                } else {
-                    media_printfile_thumbs($item,$auth,$jump);
-                }
-            }
-            if ($fullscreenview) echo '</ul>'.NL;
-        }
-    }
-}
-
-/**
- * Prints tabs for files list actions
- *
- * @author Kate Arzamastseva <pshns@ukr.net>
- * @author Adrian Lang <mail@adrianlang.de>
- *
- * @param string $selected_tab - opened tab
- */
-
-function media_tabs_files($selected_tab = ''){
-    global $lang;
-    $tabs = array();
-    foreach(array('files'  => 'mediaselect',
-                  'upload' => 'media_uploadtab',
-                  'search' => 'media_searchtab') as $tab => $caption) {
-        $tabs[$tab] = array('href'    => media_managerURL(array('tab_files' => $tab), '&'),
-                            'caption' => $lang[$caption]);
-    }
-
-    html_tabs($tabs, $selected_tab);
-}
-
-/**
- * Prints tabs for files details actions
- *
- * @author Kate Arzamastseva <pshns@ukr.net>
- * @param string $image filename of the current image
- * @param string $selected_tab opened tab
- */
-function media_tabs_details($image, $selected_tab = ''){
-    global $lang, $conf;
-
-    $tabs = array();
-    $tabs['view'] = array('href'    => media_managerURL(array('tab_details' => 'view'), '&'),
-                          'caption' => $lang['media_viewtab']);
-
-    list(, $mime) = mimetype($image);
-    if ($mime == 'image/jpeg' && file_exists(mediaFN($image))) {
-        $tabs['edit'] = array('href'    => media_managerURL(array('tab_details' => 'edit'), '&'),
-                              'caption' => $lang['media_edittab']);
-    }
-    if ($conf['mediarevisions']) {
-        $tabs['history'] = array('href'    => media_managerURL(array('tab_details' => 'history'), '&'),
-                                 'caption' => $lang['media_historytab']);
-    }
-
-    html_tabs($tabs, $selected_tab);
-}
-
-/**
- * Prints options for the tab that displays a list of all files
- *
- * @author Kate Arzamastseva <pshns@ukr.net>
- */
-function media_tab_files_options(){
-    global $lang;
-    global $INPUT;
-    global $ID;
-    $form = new Doku_Form(array('class' => 'options', 'method' => 'get',
-                                'action' => wl($ID)));
-    $media_manager_params = media_managerURL(array(), '', false, true);
-    foreach($media_manager_params as $pKey => $pVal){
-        $form->addHidden($pKey, $pVal);
-    }
-    $form->addHidden('sectok', null);
-    if ($INPUT->has('q')) {
-        $form->addHidden('q', $INPUT->str('q'));
-    }
-    $form->addElement('<ul>'.NL);
-    foreach(array('list' => array('listType', array('thumbs', 'rows')),
-                  'sort' => array('sortBy', array('name', 'date')))
-            as $group => $content) {
-        $checked = "_media_get_${group}_type";
-        $checked = $checked();
-
-        $form->addElement('<li class="' . $content[0] . '">');
-        foreach($content[1] as $option) {
-            $attrs = array();
-            if ($checked == $option) {
-                $attrs['checked'] = 'checked';
-            }
-            $form->addElement(form_makeRadioField($group . '_dwmedia', $option,
-                                       $lang['media_' . $group . '_' . $option],
-                                                  $content[0] . '__' . $option,
-                                                  $option, $attrs));
-        }
-        $form->addElement('</li>'.NL);
-    }
-    $form->addElement('<li>');
-    $form->addElement(form_makeButton('submit', '', $lang['btn_apply']));
-    $form->addElement('</li>'.NL);
-    $form->addElement('</ul>'.NL);
-    $form->printForm();
-}
-
-/**
- * Returns type of sorting for the list of files in media manager
- *
- * @author Kate Arzamastseva <pshns@ukr.net>
- *
- * @return string - sort type
- */
-function _media_get_sort_type() {
-    return _media_get_display_param('sort', array('default' => 'name', 'date'));
-}
-
-/**
- * Returns type of listing for the list of files in media manager
- *
- * @author Kate Arzamastseva <pshns@ukr.net>
- *
- * @return string - list type
- */
-function _media_get_list_type() {
-    return _media_get_display_param('list', array('default' => 'thumbs', 'rows'));
-}
-
-/**
- * Get display parameters
- *
- * @param string $param   name of parameter
- * @param array  $values  allowed values, where default value has index key 'default'
- * @return string the parameter value
- */
-function _media_get_display_param($param, $values) {
-    global $INPUT;
-    if (in_array($INPUT->str($param), $values)) {
-        // FIXME: Set cookie
-        return $INPUT->str($param);
-    } else {
-        $val = get_doku_pref($param, $values['default']);
-        if (!in_array($val, $values)) {
-            $val = $values['default'];
-        }
-        return $val;
-    }
-}
-
-/**
- * Prints tab that displays a list of all files
- *
- * @author Kate Arzamastseva <pshns@ukr.net>
- *
- * @param string    $ns
- * @param null|int  $auth permission level
- * @param string    $jump item id
- */
-function media_tab_files($ns,$auth=null,$jump='') {
-    global $lang;
-    if(is_null($auth)) $auth = auth_quickaclcheck("$ns:*");
-
-    if($auth < AUTH_READ){
-        echo '<div class="nothing">'.$lang['media_perm_read'].'</div>'.NL;
-    }else{
-        media_filelist($ns,$auth,$jump,true,_media_get_sort_type());
-    }
-}
-
-/**
- * Prints tab that displays uploading form
- *
- * @author Kate Arzamastseva <pshns@ukr.net>
- *
- * @param string   $ns
- * @param null|int $auth permission level
- * @param string   $jump item id
- */
-function media_tab_upload($ns,$auth=null,$jump='') {
-    global $lang;
-    if(is_null($auth)) $auth = auth_quickaclcheck("$ns:*");
-
-    echo '<div class="upload">'.NL;
-    if ($auth >= AUTH_UPLOAD) {
-        echo '<p>' . $lang['mediaupload'] . '</p>';
-    }
-    media_uploadform($ns, $auth, true);
-    echo '</div>'.NL;
-}
-
-/**
- * Prints tab that displays search form
- *
- * @author Kate Arzamastseva <pshns@ukr.net>
- *
- * @param string $ns
- * @param null|int $auth permission level
- */
-function media_tab_search($ns,$auth=null) {
-    global $INPUT;
-
-    $do = $INPUT->str('mediado');
-    $query = $INPUT->str('q');
-    echo '<div class="search">'.NL;
-
-    media_searchform($ns, $query, true);
-    if ($do == 'searchlist' || $query) {
-        media_searchlist($query,$ns,$auth,true,_media_get_sort_type());
-    }
-    echo '</div>'.NL;
-}
-
-/**
- * Prints tab that displays mediafile details
- *
- * @author Kate Arzamastseva <pshns@ukr.net>
- *
- * @param string     $image media id
- * @param string     $ns
- * @param null|int   $auth  permission level
- * @param string|int $rev   revision timestamp or empty string
- */
-function media_tab_view($image, $ns, $auth=null, $rev='') {
-    global $lang;
-    if(is_null($auth)) $auth = auth_quickaclcheck("$ns:*");
-
-    if ($image && $auth >= AUTH_READ) {
-        $meta = new JpegMeta(mediaFN($image, $rev));
-        media_preview($image, $auth, $rev, $meta);
-        media_preview_buttons($image, $auth, $rev);
-        media_details($image, $auth, $rev, $meta);
-
-    } else {
-        echo '<div class="nothing">'.$lang['media_perm_read'].'</div>'.NL;
-    }
-}
-
-/**
- * Prints tab that displays form for editing mediafile metadata
- *
- * @author Kate Arzamastseva <pshns@ukr.net>
- *
- * @param string     $image media id
- * @param string     $ns
- * @param null|int   $auth permission level
- */
-function media_tab_edit($image, $ns, $auth=null) {
-    if(is_null($auth)) $auth = auth_quickaclcheck("$ns:*");
-
-    if ($image) {
-        list(, $mime) = mimetype($image);
-        if ($mime == 'image/jpeg') media_metaform($image,$auth);
-    }
-}
-
-/**
- * Prints tab that displays mediafile revisions
- *
- * @author Kate Arzamastseva <pshns@ukr.net>
- *
- * @param string     $image media id
- * @param string     $ns
- * @param null|int   $auth permission level
- */
-function media_tab_history($image, $ns, $auth=null) {
-    global $lang;
-    global $INPUT;
-
-    if(is_null($auth)) $auth = auth_quickaclcheck("$ns:*");
-    $do = $INPUT->str('mediado');
-
-    if ($auth >= AUTH_READ && $image) {
-        if ($do == 'diff'){
-            media_diff($image, $ns, $auth);
-        } else {
-            $first = $INPUT->int('first');
-            html_revisions($first, $image);
-        }
-    } else {
-        echo '<div class="nothing">'.$lang['media_perm_read'].'</div>'.NL;
-    }
-}
-
-/**
- * Prints mediafile details
- *
- * @param string         $image media id
- * @param int            $auth permission level
- * @param int|string     $rev revision timestamp or empty string
- * @param JpegMeta|bool  $meta
- *
- * @author Kate Arzamastseva <pshns@ukr.net>
- */
-function media_preview($image, $auth, $rev='', $meta=false) {
-
-    $size = media_image_preview_size($image, $rev, $meta);
-
-    if ($size) {
-        global $lang;
-        echo '<div class="image">';
-
-        $more = array();
-        if ($rev) {
-            $more['rev'] = $rev;
-        } else {
-            $t = @filemtime(mediaFN($image));
-            $more['t'] = $t;
-        }
-
-        $more['w'] = $size[0];
-        $more['h'] = $size[1];
-        $src = ml($image, $more);
-
-        echo '<a href="'.$src.'" target="_blank" title="'.$lang['mediaview'].'">';
-        echo '<img src="'.$src.'" alt="" style="max-width: '.$size[0].'px;" />';
-        echo '</a>';
-
-        echo '</div>'.NL;
-    }
-}
-
-/**
- * Prints mediafile action buttons
- *
- * @author Kate Arzamastseva <pshns@ukr.net>
- *
- * @param string     $image media id
- * @param int        $auth  permission level
- * @param string|int $rev   revision timestamp, or empty string
- */
-function media_preview_buttons($image, $auth, $rev='') {
-    global $lang, $conf;
-
-    echo '<ul class="actions">'.NL;
-
-    if($auth >= AUTH_DELETE && !$rev && file_exists(mediaFN($image))){
-
-        // delete button
-        $form = new Doku_Form(array('id' => 'mediamanager__btn_delete',
-            'action'=>media_managerURL(array('delete' => $image), '&')));
-        $form->addElement(form_makeButton('submit','',$lang['btn_delete']));
-        echo '<li>';
-        $form->printForm();
-        echo '</li>'.NL;
-    }
-
-    $auth_ow = (($conf['mediarevisions']) ? AUTH_UPLOAD : AUTH_DELETE);
-    if($auth >= $auth_ow && !$rev){
-
-        // upload new version button
-        $form = new Doku_Form(array('id' => 'mediamanager__btn_update',
-            'action'=>media_managerURL(array('image' => $image, 'mediado' => 'update'), '&')));
-        $form->addElement(form_makeButton('submit','',$lang['media_update']));
-        echo '<li>';
-        $form->printForm();
-        echo '</li>'.NL;
-    }
-
-    if($auth >= AUTH_UPLOAD && $rev && $conf['mediarevisions'] && file_exists(mediaFN($image, $rev))){
-
-        // restore button
-        $form = new Doku_Form(array('id' => 'mediamanager__btn_restore',
-            'action'=>media_managerURL(array('image' => $image), '&')));
-        $form->addHidden('mediado','restore');
-        $form->addHidden('rev',$rev);
-        $form->addElement(form_makeButton('submit','',$lang['media_restore']));
-        echo '<li>';
-        $form->printForm();
-        echo '</li>'.NL;
-    }
-
-    echo '</ul>'.NL;
-}
-
-/**
- * Returns image width and height for mediamanager preview panel
- *
- * @author Kate Arzamastseva <pshns@ukr.net>
- * @param string         $image
- * @param int|string     $rev
- * @param JpegMeta|bool  $meta
- * @param int            $size
- * @return array|false
- */
-function media_image_preview_size($image, $rev, $meta, $size = 500) {
-    if (!preg_match("/\.(jpe?g|gif|png)$/", $image) || !file_exists(mediaFN($image, $rev))) return false;
-
-    $info = getimagesize(mediaFN($image, $rev));
-    $w = (int) $info[0];
-    $h = (int) $info[1];
-
-    if($meta && ($w > $size || $h > $size)){
-        $ratio = $meta->getResizeRatio($size, $size);
-        $w = floor($w * $ratio);
-        $h = floor($h * $ratio);
-    }
-    return array($w, $h);
-}
-
-/**
- * Returns the requested EXIF/IPTC tag from the image meta
- *
- * @author Kate Arzamastseva <pshns@ukr.net>
- *
- * @param array    $tags array with tags, first existing is returned
- * @param JpegMeta $meta
- * @param string   $alt  alternative value
- * @return string
- */
-function media_getTag($tags,$meta,$alt=''){
-    if($meta === false) return $alt;
-    $info = $meta->getField($tags);
-    if($info == false) return $alt;
-    return $info;
-}
-
-/**
- * Returns mediafile tags
- *
- * @author Kate Arzamastseva <pshns@ukr.net>
- *
- * @param JpegMeta $meta
- * @return array list of tags of the mediafile
- */
-function media_file_tags($meta) {
-    // load the field descriptions
-    static $fields = null;
-    if(is_null($fields)){
-        $config_files = getConfigFiles('mediameta');
-        foreach ($config_files as $config_file) {
-            if(file_exists($config_file)) include($config_file);
-        }
-    }
-
-    $tags = array();
-
-    foreach($fields as $key => $tag){
-        $t = array();
-        if (!empty($tag[0])) $t = array($tag[0]);
-        if(isset($tag[3]) && is_array($tag[3])) $t = array_merge($t,$tag[3]);
-        $value = media_getTag($t, $meta);
-        $tags[] = array('tag' => $tag, 'value' => $value);
-    }
-
-    return $tags;
-}
-
-/**
- * Prints mediafile tags
- *
- * @author Kate Arzamastseva <pshns@ukr.net>
- *
- * @param string        $image image id
- * @param int           $auth  permission level
- * @param string|int    $rev   revision timestamp, or empty string
- * @param bool|JpegMeta $meta  image object, or create one if false
- */
-function media_details($image, $auth, $rev='', $meta=false) {
-    global $lang;
-
-    if (!$meta) $meta = new JpegMeta(mediaFN($image, $rev));
-    $tags = media_file_tags($meta);
-
-    echo '<dl>'.NL;
-    foreach($tags as $tag){
-        if ($tag['value']) {
-            $value = cleanText($tag['value']);
-            echo '<dt>'.$lang[$tag['tag'][1]].'</dt><dd>';
-            if ($tag['tag'][2] == 'date') echo dformat($value);
-            else echo hsc($value);
-            echo '</dd>'.NL;
-        }
-    }
-    echo '</dl>'.NL;
-    echo '<dl>'.NL;
-    echo '<dt>'.$lang['reference'].':</dt>';
-    $media_usage = ft_mediause($image,true);
-    if(count($media_usage) > 0){
-        foreach($media_usage as $path){
-            echo '<dd>'.html_wikilink($path).'</dd>';
-        }
-    }else{
-        echo '<dd>'.$lang['nothingfound'].'</dd>';
-    }
-    echo '</dl>'.NL;
-
-}
-
-/**
- * Shows difference between two revisions of file
- *
- * @author Kate Arzamastseva <pshns@ukr.net>
- *
- * @param string $image  image id
- * @param string $ns
- * @param int $auth permission level
- * @param bool $fromajax
- * @return false|null|string
- */
-function media_diff($image, $ns, $auth, $fromajax = false) {
-    global $conf;
-    global $INPUT;
-
-    if ($auth < AUTH_READ || !$image || !$conf['mediarevisions']) return '';
-
-    $rev1 = $INPUT->int('rev');
-
-    $rev2 = $INPUT->ref('rev2');
-    if(is_array($rev2)){
-        $rev1 = (int) $rev2[0];
-        $rev2 = (int) $rev2[1];
-
-        if(!$rev1){
-            $rev1 = $rev2;
-            unset($rev2);
-        }
-    }else{
-        $rev2 = $INPUT->int('rev2');
-    }
-
-    if ($rev1 && !file_exists(mediaFN($image, $rev1))) $rev1 = false;
-    if ($rev2 && !file_exists(mediaFN($image, $rev2))) $rev2 = false;
-
-    if($rev1 && $rev2){            // two specific revisions wanted
-        // make sure order is correct (older on the left)
-        if($rev1 < $rev2){
-            $l_rev = $rev1;
-            $r_rev = $rev2;
-        }else{
-            $l_rev = $rev2;
-            $r_rev = $rev1;
-        }
-    }elseif($rev1){                // single revision given, compare to current
-        $r_rev = '';
-        $l_rev = $rev1;
-    }else{                        // no revision was given, compare previous to current
-        $r_rev = '';
-        $medialog = new MediaChangeLog($image);
-        $revs = $medialog->getRevisions(0, 1);
-        if (file_exists(mediaFN($image, $revs[0]))) {
-            $l_rev = $revs[0];
-        } else {
-            $l_rev = '';
-        }
-    }
-
-    // prepare event data
-    $data = array();
-    $data[0] = $image;
-    $data[1] = $l_rev;
-    $data[2] = $r_rev;
-    $data[3] = $ns;
-    $data[4] = $auth;
-    $data[5] = $fromajax;
-
-    // trigger event
-    return trigger_event('MEDIA_DIFF', $data, '_media_file_diff', true);
-}
-
-/**
- * Callback for media file diff
- *
- * @param array $data event data
- * @return false|null
- */
-function _media_file_diff($data) {
-    if(is_array($data) && count($data)===6) {
-        media_file_diff($data[0], $data[1], $data[2], $data[3], $data[4], $data[5]);
-    } else {
-        return false;
-    }
-}
-
-/**
- * Shows difference between two revisions of image
- *
- * @author Kate Arzamastseva <pshns@ukr.net>
- *
- * @param string $image
- * @param string|int $l_rev revision timestamp, or empty string
- * @param string|int $r_rev revision timestamp, or empty string
- * @param string $ns
- * @param int $auth permission level
- * @param bool $fromajax
- */
-function media_file_diff($image, $l_rev, $r_rev, $ns, $auth, $fromajax){
-    global $lang;
-    global $INPUT;
-
-    $l_meta = new JpegMeta(mediaFN($image, $l_rev));
-    $r_meta = new JpegMeta(mediaFN($image, $r_rev));
-
-    $is_img = preg_match('/\.(jpe?g|gif|png)$/', $image);
-    if ($is_img) {
-        $l_size = media_image_preview_size($image, $l_rev, $l_meta);
-        $r_size = media_image_preview_size($image, $r_rev, $r_meta);
-        $is_img = ($l_size && $r_size && ($l_size[0] >= 30 || $r_size[0] >= 30));
-
-        $difftype = $INPUT->str('difftype');
-
-        if (!$fromajax) {
-            $form = new Doku_Form(array(
-                'action' => media_managerURL(array(), '&'),
-                'method' => 'get',
-                'id' => 'mediamanager__form_diffview',
-                'class' => 'diffView'
-            ));
-            $form->addHidden('sectok', null);
-            $form->addElement('<input type="hidden" name="rev2[]" value="'.$l_rev.'" ></input>');
-            $form->addElement('<input type="hidden" name="rev2[]" value="'.$r_rev.'" ></input>');
-            $form->addHidden('mediado', 'diff');
-            $form->printForm();
-
-            echo NL.'<div id="mediamanager__diff" >'.NL;
-        }
-
-        if ($difftype == 'opacity' || $difftype == 'portions') {
-            media_image_diff($image, $l_rev, $r_rev, $l_size, $r_size, $difftype);
-            if (!$fromajax) echo '</div>';
-            return;
-        }
-    }
-
-    list($l_head, $r_head) = html_diff_head($l_rev, $r_rev, $image, true);
-
-    ?>
-    <div class="table">
-    <table>
-      <tr>
-        <th><?php echo $l_head; ?></th>
-        <th><?php echo $r_head; ?></th>
-      </tr>
-    <?php
-
-    echo '<tr class="image">';
-    echo '<td>';
-    media_preview($image, $auth, $l_rev, $l_meta);
-    echo '</td>';
-
-    echo '<td>';
-    media_preview($image, $auth, $r_rev, $r_meta);
-    echo '</td>';
-    echo '</tr>'.NL;
-
-    echo '<tr class="actions">';
-    echo '<td>';
-    media_preview_buttons($image, $auth, $l_rev);
-    echo '</td>';
-
-    echo '<td>';
-    media_preview_buttons($image, $auth, $r_rev);
-    echo '</td>';
-    echo '</tr>'.NL;
-
-    $l_tags = media_file_tags($l_meta);
-    $r_tags = media_file_tags($r_meta);
-    // FIXME r_tags-only stuff
-    foreach ($l_tags as $key => $l_tag) {
-        if ($l_tag['value'] != $r_tags[$key]['value']) {
-            $r_tags[$key]['highlighted'] = true;
-            $l_tags[$key]['highlighted'] = true;
-        } else if (!$l_tag['value'] || !$r_tags[$key]['value']) {
-            unset($r_tags[$key]);
-            unset($l_tags[$key]);
-        }
-    }
-
-    echo '<tr>';
-    foreach(array($l_tags,$r_tags) as $tags){
-        echo '<td>'.NL;
-
-        echo '<dl class="img_tags">';
-        foreach($tags as $tag){
-            $value = cleanText($tag['value']);
-            if (!$value) $value = '-';
-            echo '<dt>'.$lang[$tag['tag'][1]].'</dt>';
-            echo '<dd>';
-            if ($tag['highlighted']) {
-                echo '<strong>';
-            }
-            if ($tag['tag'][2] == 'date') echo dformat($value);
-            else echo hsc($value);
-            if ($tag['highlighted']) {
-                echo '</strong>';
-            }
-            echo '</dd>';
-        }
-        echo '</dl>'.NL;
-
-        echo '</td>';
-    }
-    echo '</tr>'.NL;
-
-    echo '</table>'.NL;
-    echo '</div>'.NL;
-
-    if ($is_img && !$fromajax) echo '</div>';
-}
-
-/**
- * Prints two images side by side
- * and slider
- *
- * @author Kate Arzamastseva <pshns@ukr.net>
- *
- * @param string $image   image id
- * @param int    $l_rev   revision timestamp, or empty string
- * @param int    $r_rev   revision timestamp, or empty string
- * @param array  $l_size  array with width and height
- * @param array  $r_size  array with width and height
- * @param string $type
- */
-function media_image_diff($image, $l_rev, $r_rev, $l_size, $r_size, $type) {
-    if ($l_size != $r_size) {
-        if ($r_size[0] > $l_size[0]) {
-            $l_size = $r_size;
-        }
-    }
-
-    $l_more = array('rev' => $l_rev, 'h' => $l_size[1], 'w' => $l_size[0]);
-    $r_more = array('rev' => $r_rev, 'h' => $l_size[1], 'w' => $l_size[0]);
-
-    $l_src = ml($image, $l_more);
-    $r_src = ml($image, $r_more);
-
-    // slider
-    echo '<div class="slider" style="max-width: '.($l_size[0]-20).'px;" ></div>'.NL;
-
-    // two images in divs
-    echo '<div class="imageDiff ' . $type . '">'.NL;
-    echo '<div class="image1" style="max-width: '.$l_size[0].'px;">';
-    echo '<img src="'.$l_src.'" alt="" />';
-    echo '</div>'.NL;
-    echo '<div class="image2" style="max-width: '.$l_size[0].'px;">';
-    echo '<img src="'.$r_src.'" alt="" />';
-    echo '</div>'.NL;
-    echo '</div>'.NL;
-}
-
-/**
- * Restores an old revision of a media file
- *
- * @param string $image media id
- * @param int    $rev   revision timestamp or empty string
- * @param int    $auth
- * @return string - file's id
- *
- * @author Kate Arzamastseva <pshns@ukr.net>
- */
-function media_restore($image, $rev, $auth){
-    global $conf;
-    if ($auth < AUTH_UPLOAD || !$conf['mediarevisions']) return false;
-    $removed = (!file_exists(mediaFN($image)) && file_exists(mediaMetaFN($image, '.changes')));
-    if (!$image || (!file_exists(mediaFN($image)) && !$removed)) return false;
-    if (!$rev || !file_exists(mediaFN($image, $rev))) return false;
-    list(,$imime,) = mimetype($image);
-    $res = media_upload_finish(mediaFN($image, $rev),
-        mediaFN($image),
-        $image,
-        $imime,
-        true,
-        'copy');
-    if (is_array($res)) {
-        msg($res[0], $res[1]);
-        return false;
-    }
-    return $res;
-}
-
-/**
- * List all files found by the search request
- *
- * @author Tobias Sarnowski <sarnowski@cosmocode.de>
- * @author Andreas Gohr <gohr@cosmocode.de>
- * @author Kate Arzamastseva <pshns@ukr.net>
- * @triggers MEDIA_SEARCH
- *
- * @param string $query
- * @param string $ns
- * @param null|int $auth
- * @param bool $fullscreen
- * @param string $sort
- */
-function media_searchlist($query,$ns,$auth=null,$fullscreen=false,$sort='natural'){
-    global $conf;
-    global $lang;
-
-    $ns = cleanID($ns);
-    $evdata = array(
-        'ns'    => $ns,
-        'data'  => array(),
-        'query' => $query
-    );
-    if (!blank($query)) {
-        $evt = new Doku_Event('MEDIA_SEARCH', $evdata);
-        if ($evt->advise_before()) {
-            $dir = utf8_encodeFN(str_replace(':','/',$evdata['ns']));
-            $quoted = preg_quote($evdata['query'],'/');
-            //apply globbing
-            $quoted = str_replace(array('\*', '\?'), array('.*', '.'), $quoted, $count);
-
-            //if we use globbing file name must match entirely but may be preceded by arbitrary namespace
-            if ($count > 0) $quoted = '^([^:]*:)*'.$quoted.'$';
-
-            $pattern = '/'.$quoted.'/i';
-            search($evdata['data'],
-                    $conf['mediadir'],
-                    'search_media',
-                    array('showmsg'=>false,'pattern'=>$pattern),
-                    $dir,
-                    1,
-                    $sort);
-        }
-        $evt->advise_after();
-        unset($evt);
-    }
-
-    if (!$fullscreen) {
-        echo '<h1 id="media__ns">'.sprintf($lang['searchmedia_in'],hsc($ns).':*').'</h1>'.NL;
-        media_searchform($ns,$query);
-    }
-
-    if(!count($evdata['data'])){
-        echo '<div class="nothing">'.$lang['nothingfound'].'</div>'.NL;
-    }else {
-        if ($fullscreen) {
-            echo '<ul class="' . _media_get_list_type() . '">';
-        }
-        foreach($evdata['data'] as $item){
-            if (!$fullscreen) media_printfile($item,$item['perm'],'',true);
-            else media_printfile_thumbs($item,$item['perm'],false,true);
-        }
-        if ($fullscreen) echo '</ul>'.NL;
-    }
-}
-
-/**
- * Formats and prints one file in the list
- *
- * @param array     $item
- * @param int       $auth              permission level
- * @param string    $jump              item id
- * @param bool      $display_namespace
- */
-function media_printfile($item,$auth,$jump,$display_namespace=false){
-    global $lang;
-
-    // Prepare zebra coloring
-    // I always wanted to use this variable name :-D
-    static $twibble = 1;
-    $twibble *= -1;
-    $zebra = ($twibble == -1) ? 'odd' : 'even';
-
-    // Automatically jump to recent action
-    if($jump == $item['id']) {
-        $jump = ' id="scroll__here" ';
-    }else{
-        $jump = '';
-    }
-
-    // Prepare fileicons
-    list($ext) = mimetype($item['file'],false);
-    $class = preg_replace('/[^_\-a-z0-9]+/i','_',$ext);
-    $class = 'select mediafile mf_'.$class;
-
-    // Prepare filename
-    $file = utf8_decodeFN($item['file']);
-
-    // Prepare info
-    $info = '';
-    if($item['isimg']){
-        $info .= (int) $item['meta']->getField('File.Width');
-        $info .= '&#215;';
-        $info .= (int) $item['meta']->getField('File.Height');
-        $info .= ' ';
-    }
-    $info .= '<i>'.dformat($item['mtime']).'</i>';
-    $info .= ' ';
-    $info .= filesize_h($item['size']);
-
-    // output
-    echo '<div class="'.$zebra.'"'.$jump.' title="'.hsc($item['id']).'">'.NL;
-    if (!$display_namespace) {
-        echo '<a id="h_:'.$item['id'].'" class="'.$class.'">'.hsc($file).'</a> ';
-    } else {
-        echo '<a id="h_:'.$item['id'].'" class="'.$class.'">'.hsc($item['id']).'</a><br/>';
-    }
-    echo '<span class="info">('.$info.')</span>'.NL;
-
-    // view button
-    $link = ml($item['id'],'',true);
-    echo ' <a href="'.$link.'" target="_blank"><img src="'.DOKU_BASE.'lib/images/magnifier.png" '.
-        'alt="'.$lang['mediaview'].'" title="'.$lang['mediaview'].'" class="btn" /></a>';
-
-    // mediamanager button
-    $link = wl('',array('do'=>'media','image'=>$item['id'],'ns'=>getNS($item['id'])));
-    echo ' <a href="'.$link.'" target="_blank"><img src="'.DOKU_BASE.'lib/images/mediamanager.png" '.
-        'alt="'.$lang['btn_media'].'" title="'.$lang['btn_media'].'" class="btn" /></a>';
-
-    // delete button
-    if($item['writable'] && $auth >= AUTH_DELETE){
-        $link = DOKU_BASE.'lib/exe/mediamanager.php?delete='.rawurlencode($item['id']).
-            '&amp;sectok='.getSecurityToken();
-        echo ' <a href="'.$link.'" class="btn_media_delete" title="'.$item['id'].'">'.
-            '<img src="'.DOKU_BASE.'lib/images/trash.png" alt="'.$lang['btn_delete'].'" '.
-            'title="'.$lang['btn_delete'].'" class="btn" /></a>';
-    }
-
-    echo '<div class="example" id="ex_'.str_replace(':','_',$item['id']).'">';
-    echo $lang['mediausage'].' <code>{{:'.$item['id'].'}}</code>';
-    echo '</div>';
-    if($item['isimg']) media_printimgdetail($item);
-    echo '<div class="clearer"></div>'.NL;
-    echo '</div>'.NL;
-}
-
-/**
- * Display a media icon
- *
- * @param string $filename media id
- * @param string $size     the size subfolder, if not specified 16x16 is used
- * @return string html
- */
-function media_printicon($filename, $size=''){
-    list($ext) = mimetype(mediaFN($filename),false);
-
-    if (file_exists(DOKU_INC.'lib/images/fileicons/'.$size.'/'.$ext.'.png')) {
-        $icon = DOKU_BASE.'lib/images/fileicons/'.$size.'/'.$ext.'.png';
-    } else {
-        $icon = DOKU_BASE.'lib/images/fileicons/'.$size.'/file.png';
-    }
-
-    return '<img src="'.$icon.'" alt="'.$filename.'" class="icon" />';
-}
-
-/**
- * Formats and prints one file in the list in the thumbnails view
- *
- * @author Kate Arzamastseva <pshns@ukr.net>
- *
- * @param array       $item
- * @param int         $auth              permission level
- * @param bool|string $jump              item id
- * @param bool        $display_namespace
- */
-function media_printfile_thumbs($item,$auth,$jump=false,$display_namespace=false){
-
-    // Prepare filename
-    $file = utf8_decodeFN($item['file']);
-
-    // output
-    echo '<li><dl title="'.hsc($item['id']).'">'.NL;
-
-        echo '<dt>';
-    if($item['isimg']) {
-        media_printimgdetail($item, true);
-
-    } else {
-        echo '<a id="d_:'.$item['id'].'" class="image" title="'.$item['id'].'" href="'.
-            media_managerURL(array('image' => hsc($item['id']), 'ns' => getNS($item['id']),
-            'tab_details' => 'view')).'">';
-        echo media_printicon($item['id'], '32x32');
-        echo '</a>';
-    }
-    echo '</dt>'.NL;
-    if (!$display_namespace) {
-        $name = hsc($file);
-    } else {
-        $name = hsc($item['id']);
-    }
-    echo '<dd class="name"><a href="'.media_managerURL(array('image' => hsc($item['id']), 'ns' => getNS($item['id']),
-        'tab_details' => 'view')).'" id="h_:'.$item['id'].'">'.$name.'</a></dd>'.NL;
-
-    if($item['isimg']){
-        $size = '';
-        $size .= (int) $item['meta']->getField('File.Width');
-        $size .= '&#215;';
-        $size .= (int) $item['meta']->getField('File.Height');
-        echo '<dd class="size">'.$size.'</dd>'.NL;
-    } else {
-        echo '<dd class="size">&#160;</dd>'.NL;
-    }
-    $date = dformat($item['mtime']);
-    echo '<dd class="date">'.$date.'</dd>'.NL;
-    $filesize = filesize_h($item['size']);
-    echo '<dd class="filesize">'.$filesize.'</dd>'.NL;
-    echo '</dl></li>'.NL;
-}
-
-/**
- * Prints a thumbnail and metainfo
- *
- * @param array $item
- * @param bool  $fullscreen
- */
-function media_printimgdetail($item, $fullscreen=false){
-    // prepare thumbnail
-    $size = $fullscreen ? 90 : 120;
-
-    $w = (int) $item['meta']->getField('File.Width');
-    $h = (int) $item['meta']->getField('File.Height');
-    if($w>$size || $h>$size){
-        if (!$fullscreen) {
-            $ratio = $item['meta']->getResizeRatio($size);
-        } else {
-            $ratio = $item['meta']->getResizeRatio($size,$size);
-        }
-        $w = floor($w * $ratio);
-        $h = floor($h * $ratio);
-    }
-    $src = ml($item['id'],array('w'=>$w,'h'=>$h,'t'=>$item['mtime']));
-    $p = array();
-    if (!$fullscreen) {
-        // In fullscreen mediamanager view, image resizing is done via CSS.
-        $p['width']  = $w;
-        $p['height'] = $h;
-    }
-    $p['alt']    = $item['id'];
-    $att = buildAttributes($p);
-
-    // output
-    if ($fullscreen) {
-        echo '<a id="l_:'.$item['id'].'" class="image thumb" href="'.
-            media_managerURL(array('image' => hsc($item['id']), 'ns' => getNS($item['id']), 'tab_details' => 'view')).'">';
-        echo '<img src="'.$src.'" '.$att.' />';
-        echo '</a>';
-    }
-
-    if ($fullscreen) return;
-
-    echo '<div class="detail">';
-    echo '<div class="thumb">';
-    echo '<a id="d_:'.$item['id'].'" class="select">';
-    echo '<img src="'.$src.'" '.$att.' />';
-    echo '</a>';
-    echo '</div>';
-
-    // read EXIF/IPTC data
-    $t = $item['meta']->getField(array('IPTC.Headline','xmp.dc:title'));
-    $d = $item['meta']->getField(array('IPTC.Caption','EXIF.UserComment',
-                'EXIF.TIFFImageDescription',
-                'EXIF.TIFFUserComment'));
-    if(utf8_strlen($d) > 250) $d = utf8_substr($d,0,250).'...';
-    $k = $item['meta']->getField(array('IPTC.Keywords','IPTC.Category','xmp.dc:subject'));
-
-    // print EXIF/IPTC data
-    if($t || $d || $k ){
-        echo '<p>';
-        if($t) echo '<strong>'.hsc($t).'</strong><br />';
-        if($d) echo hsc($d).'<br />';
-        if($t) echo '<em>'.hsc($k).'</em>';
-        echo '</p>';
-    }
-    echo '</div>';
-}
-
-/**
- * Build link based on the current, adding/rewriting parameters
- *
- * @author Kate Arzamastseva <pshns@ukr.net>
- *
- * @param array|bool $params
- * @param string     $amp           separator
- * @param bool       $abs           absolute url?
- * @param bool       $params_array  return the parmeters array?
- * @return string|array - link or link parameters
- */
-function media_managerURL($params=false, $amp='&amp;', $abs=false, $params_array=false) {
-    global $ID;
-    global $INPUT;
-
-    $gets = array('do' => 'media');
-    $media_manager_params = array('tab_files', 'tab_details', 'image', 'ns', 'list', 'sort');
-    foreach ($media_manager_params as $x) {
-        if ($INPUT->has($x)) $gets[$x] = $INPUT->str($x);
-    }
-
-    if ($params) {
-        $gets = $params + $gets;
-    }
-    unset($gets['id']);
-    if (isset($gets['delete'])) {
-        unset($gets['image']);
-        unset($gets['tab_details']);
-    }
-
-    if ($params_array) return $gets;
-
-    return wl($ID,$gets,$abs,$amp);
-}
-
-/**
- * Print the media upload form if permissions are correct
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- * @author Kate Arzamastseva <pshns@ukr.net>
- *
- * @param string $ns
- * @param int    $auth permission level
- * @param bool  $fullscreen
- */
-function media_uploadform($ns, $auth, $fullscreen = false){
-    global $lang;
-    global $conf;
-    global $INPUT;
-
-    if($auth < AUTH_UPLOAD) {
-        echo '<div class="nothing">'.$lang['media_perm_upload'].'</div>'.NL;
-        return;
-    }
-    $auth_ow = (($conf['mediarevisions']) ? AUTH_UPLOAD : AUTH_DELETE);
-
-    $update = false;
-    $id = '';
-    if ($auth >= $auth_ow && $fullscreen && $INPUT->str('mediado') == 'update') {
-        $update = true;
-        $id = cleanID($INPUT->str('image'));
-    }
-
-    // The default HTML upload form
-    $params = array('id'      => 'dw__upload',
-                    'enctype' => 'multipart/form-data');
-    if (!$fullscreen) {
-        $params['action'] = DOKU_BASE.'lib/exe/mediamanager.php';
-    } else {
-        $params['action'] = media_managerURL(array('tab_files' => 'files',
-            'tab_details' => 'view'), '&');
-    }
-
-    $form = new Doku_Form($params);
-    if (!$fullscreen) echo '<div class="upload">' . $lang['mediaupload'] . '</div>';
-    $form->addElement(formSecurityToken());
-    $form->addHidden('ns', hsc($ns));
-    $form->addElement(form_makeOpenTag('p'));
-    $form->addElement(form_makeFileField('upload', $lang['txt_upload'], 'upload__file'));
-    $form->addElement(form_makeCloseTag('p'));
-    $form->addElement(form_makeOpenTag('p'));
-    $form->addElement(form_makeTextField('mediaid', noNS($id), $lang['txt_filename'], 'upload__name'));
-    $form->addElement(form_makeButton('submit', '', $lang['btn_upload']));
-    $form->addElement(form_makeCloseTag('p'));
-
-    if($auth >= $auth_ow){
-        $form->addElement(form_makeOpenTag('p'));
-        $attrs = array();
-        if ($update) $attrs['checked'] = 'checked';
-        $form->addElement(form_makeCheckboxField('ow', 1, $lang['txt_overwrt'], 'dw__ow', 'check', $attrs));
-        $form->addElement(form_makeCloseTag('p'));
-    }
-
-    echo NL.'<div id="mediamanager__uploader">'.NL;
-    html_form('upload', $form);
-
-    echo '</div>'.NL;
-
-    echo '<p class="maxsize">';
-    printf($lang['maxuploadsize'],filesize_h(media_getuploadsize()));
-    echo '</p>'.NL;
-
-}
-
-/**
- * Returns the size uploaded files may have
- *
- * This uses a conservative approach using the lowest number found
- * in any of the limiting ini settings
- *
- * @returns int size in bytes
- */
-function media_getuploadsize(){
-    $okay = 0;
-
-    $post = (int) php_to_byte(@ini_get('post_max_size'));
-    $suho = (int) php_to_byte(@ini_get('suhosin.post.max_value_length'));
-    $upld = (int) php_to_byte(@ini_get('upload_max_filesize'));
-
-    if($post && ($post < $okay || $okay == 0)) $okay = $post;
-    if($suho && ($suho < $okay || $okay == 0)) $okay = $suho;
-    if($upld && ($upld < $okay || $okay == 0)) $okay = $upld;
-
-    return $okay;
-}
-
-/**
- * Print the search field form
- *
- * @author Tobias Sarnowski <sarnowski@cosmocode.de>
- * @author Kate Arzamastseva <pshns@ukr.net>
- *
- * @param string $ns
- * @param string $query
- * @param bool $fullscreen
- */
-function media_searchform($ns,$query='',$fullscreen=false){
-    global $lang;
-
-    // The default HTML search form
-    $params = array('id' => 'dw__mediasearch');
-    if (!$fullscreen) {
-        $params['action'] = DOKU_BASE.'lib/exe/mediamanager.php';
-    } else {
-        $params['action'] = media_managerURL(array(), '&');
-    }
-    $form = new Doku_Form($params);
-    $form->addHidden('ns', $ns);
-    $form->addHidden($fullscreen ? 'mediado' : 'do', 'searchlist');
-
-    $form->addElement(form_makeOpenTag('p'));
-    $form->addElement(form_makeTextField('q', $query,$lang['searchmedia'],'','',array('title'=>sprintf($lang['searchmedia_in'],hsc($ns).':*'))));
-    $form->addElement(form_makeButton('submit', '', $lang['btn_search']));
-    $form->addElement(form_makeCloseTag('p'));
-    html_form('searchmedia', $form);
-}
-
-/**
- * Build a tree outline of available media namespaces
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- *
- * @param string $ns
- */
-function media_nstree($ns){
-    global $conf;
-    global $lang;
-
-    // currently selected namespace
-    $ns  = cleanID($ns);
-    if(empty($ns)){
-        global $ID;
-        $ns = (string)getNS($ID);
-    }
-
-    $ns_dir  = utf8_encodeFN(str_replace(':','/',$ns));
-
-    $data = array();
-    search($data,$conf['mediadir'],'search_index',array('ns' => $ns_dir, 'nofiles' => true));
-
-    // wrap a list with the root level around the other namespaces
-    array_unshift($data, array('level' => 0, 'id' => '', 'open' =>'true',
-                               'label' => '['.$lang['mediaroot'].']'));
-
-    // insert the current ns into the hierarchy if it isn't already part of it
-    $ns_parts = explode(':', $ns);
-    $tmp_ns = '';
-    $pos = 0;
-    foreach ($ns_parts as $level => $part) {
-        if ($tmp_ns) $tmp_ns .= ':'.$part;
-        else $tmp_ns = $part;
-
-        // find the namespace parts or insert them
-        while ($data[$pos]['id'] != $tmp_ns) {
-            if ($pos >= count($data) || ($data[$pos]['level'] <= $level+1 && strnatcmp(utf8_encodeFN($data[$pos]['id']), utf8_encodeFN($tmp_ns)) > 0)) {
-                array_splice($data, $pos, 0, array(array('level' => $level+1, 'id' => $tmp_ns, 'open' => 'true')));
-                break;
-            }
-            ++$pos;
-        }
-    }
-
-    echo html_buildlist($data,'idx','media_nstree_item','media_nstree_li');
-}
-
-/**
- * Userfunction for html_buildlist
- *
- * Prints a media namespace tree item
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- *
- * @param array $item
- * @return string html
- */
-function media_nstree_item($item){
-    global $INPUT;
-    $pos   = strrpos($item['id'], ':');
-    $label = substr($item['id'], $pos > 0 ? $pos + 1 : 0);
-    if(empty($item['label'])) $item['label'] = $label;
-
-    $ret  = '';
-    if (!($INPUT->str('do') == 'media'))
-    $ret .= '<a href="'.DOKU_BASE.'lib/exe/mediamanager.php?ns='.idfilter($item['id']).'" class="idx_dir">';
-    else $ret .= '<a href="'.media_managerURL(array('ns' => idfilter($item['id'], false), 'tab_files' => 'files'))
-        .'" class="idx_dir">';
-    $ret .= $item['label'];
-    $ret .= '</a>';
-    return $ret;
-}
-
-/**
- * Userfunction for html_buildlist
- *
- * Prints a media namespace tree item opener
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- *
- * @param array $item
- * @return string html
- */
-function media_nstree_li($item){
-    $class='media level'.$item['level'];
-    if($item['open']){
-        $class .= ' open';
-        $img   = DOKU_BASE.'lib/images/minus.gif';
-        $alt   = '−';
-    }else{
-        $class .= ' closed';
-        $img   = DOKU_BASE.'lib/images/plus.gif';
-        $alt   = '+';
-    }
-    // TODO: only deliver an image if it actually has a subtree...
-    return '<li class="'.$class.'">'.
-        '<img src="'.$img.'" alt="'.$alt.'" />';
-}
-
-/**
- * Resizes the given image to the given size
- *
- * @author  Andreas Gohr <andi@splitbrain.org>
- *
- * @param string $file filename, path to file
- * @param string $ext  extension
- * @param int    $w    desired width
- * @param int    $h    desired height
- * @return string path to resized or original size if failed
- */
-function media_resize_image($file, $ext, $w, $h=0){
-    global $conf;
-
-    $info = @getimagesize($file); //get original size
-    if($info == false) return $file; // that's no image - it's a spaceship!
-
-    if(!$h) $h = round(($w * $info[1]) / $info[0]);
-    if(!$w) $w = round(($h * $info[0]) / $info[1]);
-
-    // we wont scale up to infinity
-    if($w > 2000 || $h > 2000) return $file;
-
-    // resize necessary? - (w,h) = native dimensions
-    if(($w == $info[0]) && ($h == $info[1])) return $file;
-
-    //cache
-    $local = getCacheName($file,'.media.'.$w.'x'.$h.'.'.$ext);
-    $mtime = @filemtime($local); // 0 if not exists
-
-    if($mtime > filemtime($file) ||
-        media_resize_imageIM($ext, $file, $info[0], $info[1], $local, $w, $h) ||
-        media_resize_imageGD($ext, $file, $info[0], $info[1], $local, $w, $h)
-    ) {
-        if(!empty($conf['fperm'])) @chmod($local, $conf['fperm']);
-        return $local;
-    }
-    //still here? resizing failed
-    return $file;
-}
-
-/**
- * Crops the given image to the wanted ratio, then calls media_resize_image to scale it
- * to the wanted size
- *
- * Crops are centered horizontally but prefer the upper third of an vertical
- * image because most pics are more interesting in that area (rule of thirds)
- *
- * @author  Andreas Gohr <andi@splitbrain.org>
- *
- * @param string $file filename, path to file
- * @param string $ext  extension
- * @param int    $w    desired width
- * @param int    $h    desired height
- * @return string path to resized or original size if failed
- */
-function media_crop_image($file, $ext, $w, $h=0){
-    global $conf;
-
-    if(!$h) $h = $w;
-    $info = @getimagesize($file); //get original size
-    if($info == false) return $file; // that's no image - it's a spaceship!
-
-    // calculate crop size
-    $fr = $info[0]/$info[1];
-    $tr = $w/$h;
-
-    // check if the crop can be handled completely by resize,
-    // i.e. the specified width & height match the aspect ratio of the source image
-    if ($w == round($h*$fr)) {
-        return media_resize_image($file, $ext, $w);
-    }
-
-    if($tr >= 1){
-        if($tr > $fr){
-            $cw = $info[0];
-            $ch = (int) ($info[0]/$tr);
-        }else{
-            $cw = (int) ($info[1]*$tr);
-            $ch = $info[1];
-        }
-    }else{
-        if($tr < $fr){
-            $cw = (int) ($info[1]*$tr);
-            $ch = $info[1];
-        }else{
-            $cw = $info[0];
-            $ch = (int) ($info[0]/$tr);
-        }
-    }
-    // calculate crop offset
-    $cx = (int) (($info[0]-$cw)/2);
-    $cy = (int) (($info[1]-$ch)/3);
-
-    //cache
-    $local = getCacheName($file,'.media.'.$cw.'x'.$ch.'.crop.'.$ext);
-    $mtime = @filemtime($local); // 0 if not exists
-
-    if( $mtime > @filemtime($file) ||
-            media_crop_imageIM($ext,$file,$info[0],$info[1],$local,$cw,$ch,$cx,$cy) ||
-            media_resize_imageGD($ext,$file,$cw,$ch,$local,$cw,$ch,$cx,$cy) ){
-        if(!empty($conf['fperm'])) @chmod($local, $conf['fperm']);
-        return media_resize_image($local,$ext, $w, $h);
-    }
-
-    //still here? cropping failed
-    return media_resize_image($file,$ext, $w, $h);
-}
-
-/**
- * Calculate a token to be used to verify fetch requests for resized or
- * cropped images have been internally generated - and prevent external
- * DDOS attacks via fetch
- *
- * @author Christopher Smith <chris@jalakai.co.uk>
- *
- * @param string  $id    id of the image
- * @param int     $w     resize/crop width
- * @param int     $h     resize/crop height
- * @return string token or empty string if no token required
- */
-function media_get_token($id,$w,$h){
-    // token is only required for modified images
-    if ($w || $h || media_isexternal($id)) {
-        $token = $id;
-        if ($w) $token .= '.'.$w;
-        if ($h) $token .= '.'.$h;
-
-        return substr(PassHash::hmac('md5', $token, auth_cookiesalt()),0,6);
-    }
-
-    return '';
-}
-
-/**
- * Download a remote file and return local filename
- *
- * returns false if download fails. Uses cached file if available and
- * wanted
- *
- * @author  Andreas Gohr <andi@splitbrain.org>
- * @author  Pavel Vitis <Pavel.Vitis@seznam.cz>
- *
- * @param string $url
- * @param string $ext   extension
- * @param int    $cache cachetime in seconds
- * @return false|string path to cached file
- */
-function media_get_from_URL($url,$ext,$cache){
-    global $conf;
-
-    // if no cache or fetchsize just redirect
-    if ($cache==0)           return false;
-    if (!$conf['fetchsize']) return false;
-
-    $local = getCacheName(strtolower($url),".media.$ext");
-    $mtime = @filemtime($local); // 0 if not exists
-
-    //decide if download needed:
-    if(($mtime == 0) || // cache does not exist
-        ($cache != -1 && $mtime < time() - $cache) // 'recache' and cache has expired
-    ) {
-        if(media_image_download($url, $local)) {
-            return $local;
-        } else {
-            return false;
-        }
-    }
-
-    //if cache exists use it else
-    if($mtime) return $local;
-
-    //else return false
-    return false;
-}
-
-/**
- * Download image files
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- *
- * @param string $url
- * @param string $file path to file in which to put the downloaded content
- * @return bool
- */
-function media_image_download($url,$file){
-    global $conf;
-    $http = new DokuHTTPClient();
-    $http->keep_alive = false; // we do single ops here, no need for keep-alive
-
-    $http->max_bodysize = $conf['fetchsize'];
-    $http->timeout = 25; //max. 25 sec
-    $http->header_regexp = '!\r\nContent-Type: image/(jpe?g|gif|png)!i';
-
-    $data = $http->get($url);
-    if(!$data) return false;
-
-    $fileexists = file_exists($file);
-    $fp = @fopen($file,"w");
-    if(!$fp) return false;
-    fwrite($fp,$data);
-    fclose($fp);
-    if(!$fileexists and $conf['fperm']) chmod($file, $conf['fperm']);
-
-    // check if it is really an image
-    $info = @getimagesize($file);
-    if(!$info){
-        @unlink($file);
-        return false;
-    }
-
-    return true;
-}
-
-/**
- * resize images using external ImageMagick convert program
- *
- * @author Pavel Vitis <Pavel.Vitis@seznam.cz>
- * @author Andreas Gohr <andi@splitbrain.org>
- *
- * @param string $ext     extension
- * @param string $from    filename path to file
- * @param int    $from_w  original width
- * @param int    $from_h  original height
- * @param string $to      path to resized file
- * @param int    $to_w    desired width
- * @param int    $to_h    desired height
- * @return bool
- */
-function media_resize_imageIM($ext,$from,$from_w,$from_h,$to,$to_w,$to_h){
-    global $conf;
-
-    // check if convert is configured
-    if(!$conf['im_convert']) return false;
-
-    // prepare command
-    $cmd  = $conf['im_convert'];
-    $cmd .= ' -resize '.$to_w.'x'.$to_h.'!';
-    if ($ext == 'jpg' || $ext == 'jpeg') {
-        $cmd .= ' -quality '.$conf['jpg_quality'];
-    }
-    $cmd .= " $from $to";
-
-    @exec($cmd,$out,$retval);
-    if ($retval == 0) return true;
-    return false;
-}
-
-/**
- * crop images using external ImageMagick convert program
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- *
- * @param string $ext     extension
- * @param string $from    filename path to file
- * @param int    $from_w  original width
- * @param int    $from_h  original height
- * @param string $to      path to resized file
- * @param int    $to_w    desired width
- * @param int    $to_h    desired height
- * @param int    $ofs_x   offset of crop centre
- * @param int    $ofs_y   offset of crop centre
- * @return bool
- */
-function media_crop_imageIM($ext,$from,$from_w,$from_h,$to,$to_w,$to_h,$ofs_x,$ofs_y){
-    global $conf;
-
-    // check if convert is configured
-    if(!$conf['im_convert']) return false;
-
-    // prepare command
-    $cmd  = $conf['im_convert'];
-    $cmd .= ' -crop '.$to_w.'x'.$to_h.'+'.$ofs_x.'+'.$ofs_y;
-    if ($ext == 'jpg' || $ext == 'jpeg') {
-        $cmd .= ' -quality '.$conf['jpg_quality'];
-    }
-    $cmd .= " $from $to";
-
-    @exec($cmd,$out,$retval);
-    if ($retval == 0) return true;
-    return false;
-}
-
-/**
- * resize or crop images using PHP's libGD support
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- * @author Sebastian Wienecke <s_wienecke@web.de>
- *
- * @param string $ext     extension
- * @param string $from    filename path to file
- * @param int    $from_w  original width
- * @param int    $from_h  original height
- * @param string $to      path to resized file
- * @param int    $to_w    desired width
- * @param int    $to_h    desired height
- * @param int    $ofs_x   offset of crop centre
- * @param int    $ofs_y   offset of crop centre
- * @return bool
- */
-function media_resize_imageGD($ext,$from,$from_w,$from_h,$to,$to_w,$to_h,$ofs_x=0,$ofs_y=0){
-    global $conf;
-
-    if($conf['gdlib'] < 1) return false; //no GDlib available or wanted
-
-    // check available memory
-    if(!is_mem_available(($from_w * $from_h * 4) + ($to_w * $to_h * 4))){
-        return false;
-    }
-
-    // create an image of the given filetype
-    $image = false;
-    if ($ext == 'jpg' || $ext == 'jpeg'){
-        if(!function_exists("imagecreatefromjpeg")) return false;
-        $image = @imagecreatefromjpeg($from);
-    }elseif($ext == 'png') {
-        if(!function_exists("imagecreatefrompng")) return false;
-        $image = @imagecreatefrompng($from);
-
-    }elseif($ext == 'gif') {
-        if(!function_exists("imagecreatefromgif")) return false;
-        $image = @imagecreatefromgif($from);
-    }
-    if(!$image) return false;
-
-    $newimg = false;
-    if(($conf['gdlib']>1) && function_exists("imagecreatetruecolor") && $ext != 'gif'){
-        $newimg = @imagecreatetruecolor ($to_w, $to_h);
-    }
-    if(!$newimg) $newimg = @imagecreate($to_w, $to_h);
-    if(!$newimg){
-        imagedestroy($image);
-        return false;
-    }
-
-    //keep png alpha channel if possible
-    if($ext == 'png' && $conf['gdlib']>1 && function_exists('imagesavealpha')){
-        imagealphablending($newimg, false);
-        imagesavealpha($newimg,true);
-    }
-
-    //keep gif transparent color if possible
-    if($ext == 'gif' && function_exists('imagefill') && function_exists('imagecolorallocate')) {
-        if(function_exists('imagecolorsforindex') && function_exists('imagecolortransparent')) {
-            $transcolorindex = @imagecolortransparent($image);
-            if($transcolorindex >= 0 ) { //transparent color exists
-                $transcolor = @imagecolorsforindex($image, $transcolorindex);
-                $transcolorindex = @imagecolorallocate($newimg, $transcolor['red'], $transcolor['green'], $transcolor['blue']);
-                @imagefill($newimg, 0, 0, $transcolorindex);
-                @imagecolortransparent($newimg, $transcolorindex);
-            }else{ //filling with white
-                $whitecolorindex = @imagecolorallocate($newimg, 255, 255, 255);
-                @imagefill($newimg, 0, 0, $whitecolorindex);
-            }
-        }else{ //filling with white
-            $whitecolorindex = @imagecolorallocate($newimg, 255, 255, 255);
-            @imagefill($newimg, 0, 0, $whitecolorindex);
-        }
-    }
-
-    //try resampling first
-    if(function_exists("imagecopyresampled")){
-        if(!@imagecopyresampled($newimg, $image, 0, 0, $ofs_x, $ofs_y, $to_w, $to_h, $from_w, $from_h)) {
-            imagecopyresized($newimg, $image, 0, 0, $ofs_x, $ofs_y, $to_w, $to_h, $from_w, $from_h);
-        }
-    }else{
-        imagecopyresized($newimg, $image, 0, 0, $ofs_x, $ofs_y, $to_w, $to_h, $from_w, $from_h);
-    }
-
-    $okay = false;
-    if ($ext == 'jpg' || $ext == 'jpeg'){
-        if(!function_exists('imagejpeg')){
-            $okay = false;
-        }else{
-            $okay = imagejpeg($newimg, $to, $conf['jpg_quality']);
-        }
-    }elseif($ext == 'png') {
-        if(!function_exists('imagepng')){
-            $okay = false;
-        }else{
-            $okay =  imagepng($newimg, $to);
-        }
-    }elseif($ext == 'gif') {
-        if(!function_exists('imagegif')){
-            $okay = false;
-        }else{
-            $okay = imagegif($newimg, $to);
-        }
-    }
-
-    // destroy GD image ressources
-    if($image) imagedestroy($image);
-    if($newimg) imagedestroy($newimg);
-
-    return $okay;
-}
-
-/**
- * Return other media files with the same base name
- * but different extensions.
- *
- * @param string   $src     - ID of media file
- * @param string[] $exts    - alternative extensions to find other files for
- * @return array            - array(mime type => file ID)
- *
- * @author Anika Henke <anika@selfthinker.org>
- */
-function media_alternativefiles($src, $exts){
-
-    $files = array();
-    list($srcExt, /* $srcMime */) = mimetype($src);
-    $filebase = substr($src, 0, -1 * (strlen($srcExt)+1));
-
-    foreach($exts as $ext) {
-        $fileid = $filebase.'.'.$ext;
-        $file = mediaFN($fileid);
-        if(file_exists($file)) {
-            list(/* $fileExt */, $fileMime) = mimetype($file);
-            $files[$fileMime] = $fileid;
-        }
-    }
-    return $files;
-}
-
-/**
- * Check if video/audio is supported to be embedded.
- *
- * @param string $mime      - mimetype of media file
- * @param string $type      - type of media files to check ('video', 'audio', or null for all)
- * @return boolean
- *
- * @author Anika Henke <anika@selfthinker.org>
- */
-function media_supportedav($mime, $type=NULL){
-    $supportedAudio = array(
-        'ogg' => 'audio/ogg',
-        'mp3' => 'audio/mpeg',
-        'wav' => 'audio/wav',
-    );
-    $supportedVideo = array(
-        'webm' => 'video/webm',
-        'ogv' => 'video/ogg',
-        'mp4' => 'video/mp4',
-    );
-    if ($type == 'audio') {
-        $supportedAv = $supportedAudio;
-    } elseif ($type == 'video') {
-        $supportedAv = $supportedVideo;
-    } else {
-        $supportedAv = array_merge($supportedAudio, $supportedVideo);
-    }
-    return in_array($mime, $supportedAv);
-}
-
-/**
- * Return track media files with the same base name
- * but extensions that indicate kind and lang.
- * ie for foo.webm search foo.sub.lang.vtt, foo.cap.lang.vtt...
- *
- * @param string   $src     - ID of media file
- * @return array            - array(mediaID => array( kind, srclang ))
- *
- * @author Schplurtz le Déboulonné <Schplurtz@laposte.net>
- */
-function media_trackfiles($src){
-    $kinds=array(
-        'sub' => 'subtitles',
-        'cap' => 'captions',
-        'des' => 'descriptions',
-        'cha' => 'chapters',
-        'met' => 'metadata'
-    );
-
-    $files = array();
-    $re='/\\.(sub|cap|des|cha|met)\\.([^.]+)\\.vtt$/';
-    $baseid=pathinfo($src, PATHINFO_FILENAME);
-    $pattern=mediaFN($baseid).'.*.*.vtt';
-    $list=glob($pattern);
-    foreach($list as $track) {
-        if(preg_match($re, $track, $matches)){
-            $files[$baseid.'.'.$matches[1].'.'.$matches[2].'.vtt']=array(
-                $kinds[$matches[1]],
-                $matches[2],
-            );
-        }
-    }
-    return $files;
-}
-
-/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
diff --git a/wiki/inc/pageutils.php b/wiki/inc/pageutils.php
deleted file mode 100644
index 55eda55..0000000
--- a/wiki/inc/pageutils.php
+++ /dev/null
@@ -1,775 +0,0 @@
-<?php
-/**
- * Utilities for handling pagenames
- *
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * @author     Andreas Gohr <andi@splitbrain.org>
- * @todo       Combine similar functions like {wiki,media,meta}FN()
- */
-
-/**
- * Fetch the an ID from request
- *
- * Uses either standard $_REQUEST variable or extracts it from
- * the full request URI when userewrite is set to 2
- *
- * For $param='id' $conf['start'] is returned if no id was found.
- * If the second parameter is true (default) the ID is cleaned.
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- *
- * @param string $param  the $_REQUEST variable name, default 'id'
- * @param bool   $clean  if true, ID is cleaned
- * @return string
- */
-function getID($param='id',$clean=true){
-    /** @var Input $INPUT */
-    global $INPUT;
-    global $conf;
-    global $ACT;
-
-    $id = $INPUT->str($param);
-
-    //construct page id from request URI
-    if(empty($id) && $conf['userewrite'] == 2){
-        $request = $INPUT->server->str('REQUEST_URI');
-        $script = '';
-
-        //get the script URL
-        if($conf['basedir']){
-            $relpath = '';
-            if($param != 'id') {
-                $relpath = 'lib/exe/';
-            }
-            $script = $conf['basedir'].$relpath.utf8_basename($INPUT->server->str('SCRIPT_FILENAME'));
-
-        }elseif($INPUT->server->str('PATH_INFO')){
-            $request = $INPUT->server->str('PATH_INFO');
-        }elseif($INPUT->server->str('SCRIPT_NAME')){
-            $script = $INPUT->server->str('SCRIPT_NAME');
-        }elseif($INPUT->server->str('DOCUMENT_ROOT') && $INPUT->server->str('SCRIPT_FILENAME')){
-            $script = preg_replace ('/^'.preg_quote($INPUT->server->str('DOCUMENT_ROOT'),'/').'/','',
-                    $INPUT->server->str('SCRIPT_FILENAME'));
-            $script = '/'.$script;
-        }
-
-        //clean script and request (fixes a windows problem)
-        $script  = preg_replace('/\/\/+/','/',$script);
-        $request = preg_replace('/\/\/+/','/',$request);
-
-        //remove script URL and Querystring to gain the id
-        if(preg_match('/^'.preg_quote($script,'/').'(.*)/',$request, $match)){
-            $id = preg_replace ('/\?.*/','',$match[1]);
-        }
-        $id = urldecode($id);
-        //strip leading slashes
-        $id = preg_replace('!^/+!','',$id);
-    }
-
-    // Namespace autolinking from URL
-    if(substr($id,-1) == ':' || ($conf['useslash'] && substr($id,-1) == '/')){
-        if(page_exists($id.$conf['start'])){
-            // start page inside namespace
-            $id = $id.$conf['start'];
-        }elseif(page_exists($id.noNS(cleanID($id)))){
-            // page named like the NS inside the NS
-            $id = $id.noNS(cleanID($id));
-        }elseif(page_exists($id)){
-            // page like namespace exists
-            $id = substr($id,0,-1);
-        }else{
-            // fall back to default
-            $id = $id.$conf['start'];
-        }
-        if (isset($ACT) && $ACT === 'show') {
-            $urlParameters = $_GET;
-            if (isset($urlParameters['id'])) {
-                unset($urlParameters['id']);
-            }
-            send_redirect(wl($id,$urlParameters,true));
-        }
-    }
-
-    if($clean) $id = cleanID($id);
-    if(empty($id) && $param=='id') $id = $conf['start'];
-
-    return $id;
-}
-
-/**
- * Remove unwanted chars from ID
- *
- * Cleans a given ID to only use allowed characters. Accented characters are
- * converted to unaccented ones
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- *
- * @param  string  $raw_id    The pageid to clean
- * @param  boolean $ascii     Force ASCII
- * @return string cleaned id
- */
-function cleanID($raw_id,$ascii=false){
-    global $conf;
-    static $sepcharpat = null;
-
-    global $cache_cleanid;
-    $cache = & $cache_cleanid;
-
-    // check if it's already in the memory cache
-    if (!$ascii && isset($cache[(string)$raw_id])) {
-        return $cache[(string)$raw_id];
-    }
-
-    $sepchar = $conf['sepchar'];
-    if($sepcharpat == null) // build string only once to save clock cycles
-        $sepcharpat = '#\\'.$sepchar.'+#';
-
-    $id = trim((string)$raw_id);
-    $id = utf8_strtolower($id);
-
-    //alternative namespace seperator
-    if($conf['useslash']){
-        $id = strtr($id,';/','::');
-    }else{
-        $id = strtr($id,';/',':'.$sepchar);
-    }
-
-    if($conf['deaccent'] == 2 || $ascii) $id = utf8_romanize($id);
-    if($conf['deaccent'] || $ascii) $id = utf8_deaccent($id,-1);
-
-    //remove specials
-    $id = utf8_stripspecials($id,$sepchar,'\*');
-
-    if($ascii) $id = utf8_strip($id);
-
-    //clean up
-    $id = preg_replace($sepcharpat,$sepchar,$id);
-    $id = preg_replace('#:+#',':',$id);
-    $id = trim($id,':._-');
-    $id = preg_replace('#:[:\._\-]+#',':',$id);
-    $id = preg_replace('#[:\._\-]+:#',':',$id);
-
-    if (!$ascii) $cache[(string)$raw_id] = $id;
-    return($id);
-}
-
-/**
- * Return namespacepart of a wiki ID
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- *
- * @param string $id
- * @return string|false the namespace part or false if the given ID has no namespace (root)
- */
-function getNS($id){
-    $pos = strrpos((string)$id,':');
-    if($pos!==false){
-        return substr((string)$id,0,$pos);
-    }
-    return false;
-}
-
-/**
- * Returns the ID without the namespace
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- *
- * @param string $id
- * @return string
- */
-function noNS($id) {
-    $pos = strrpos($id, ':');
-    if ($pos!==false) {
-        return substr($id, $pos+1);
-    } else {
-        return $id;
-    }
-}
-
-/**
- * Returns the current namespace
- *
- * @author Nathan Fritz <fritzn@crown.edu>
- *
- * @param string $id
- * @return string
- */
-function curNS($id) {
-    return noNS(getNS($id));
-}
-
-/**
- * Returns the ID without the namespace or current namespace for 'start' pages
- *
- * @author Nathan Fritz <fritzn@crown.edu>
- *
- * @param string $id
- * @return string
- */
-function noNSorNS($id) {
-    global $conf;
-
-    $p = noNS($id);
-    if ($p == $conf['start'] || $p == false) {
-        $p = curNS($id);
-        if ($p == false) {
-            return $conf['start'];
-        }
-    }
-    return $p;
-}
-
-/**
- * Creates a XHTML valid linkid from a given headline title
- *
- * @param string  $title   The headline title
- * @param array|bool   $check   Existing IDs (title => number)
- * @return string the title
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- */
-function sectionID($title,&$check) {
-    $title = str_replace(array(':','.'),'',cleanID($title));
-    $new = ltrim($title,'0123456789_-');
-    if(empty($new)){
-        $title = 'section'.preg_replace('/[^0-9]+/','',$title); //keep numbers from headline
-    }else{
-        $title = $new;
-    }
-
-    if(is_array($check)){
-        // make sure tiles are unique
-        if (!array_key_exists ($title,$check)) {
-            $check[$title] = 0;
-        } else {
-            $title .= ++ $check[$title];
-        }
-    }
-
-    return $title;
-}
-
-/**
- * Wiki page existence check
- *
- * parameters as for wikiFN
- *
- * @author Chris Smith <chris@jalakai.co.uk>
- *
- * @param string $id page id
- * @param string|int $rev empty or revision timestamp
- * @param bool $clean flag indicating that $id should be cleaned (see wikiFN as well)
- * @param bool $date_at
- * @return bool exists?
- */
-function page_exists($id,$rev='',$clean=true, $date_at=false) {
-    if($rev !== '' && $date_at) {
-        $pagelog = new PageChangeLog($id);
-        $pagelog_rev = $pagelog->getLastRevisionAt($rev);
-        if($pagelog_rev !== false)
-            $rev = $pagelog_rev;
-    }
-    return file_exists(wikiFN($id,$rev,$clean));
-}
-
-/**
- * returns the full path to the datafile specified by ID and optional revision
- *
- * The filename is URL encoded to protect Unicode chars
- *
- * @param  $raw_id  string   id of wikipage
- * @param  $rev     int|string   page revision, empty string for current
- * @param  $clean   bool     flag indicating that $raw_id should be cleaned.  Only set to false
- *                           when $id is guaranteed to have been cleaned already.
- * @return string full path
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- */
-function wikiFN($raw_id,$rev='',$clean=true){
-    global $conf;
-
-    global $cache_wikifn;
-    $cache = & $cache_wikifn;
-
-    $id = $raw_id;
-
-    if ($clean) $id = cleanID($id);
-    $id = str_replace(':','/',$id);
-
-    if (isset($cache[$id]) && isset($cache[$id][$rev])) {
-        return $cache[$id][$rev];
-    }
-
-    if(empty($rev)){
-        $fn = $conf['datadir'].'/'.utf8_encodeFN($id).'.txt';
-    }else{
-        $fn = $conf['olddir'].'/'.utf8_encodeFN($id).'.'.$rev.'.txt';
-        if($conf['compression']){
-            //test for extensions here, we want to read both compressions
-            if (file_exists($fn . '.gz')){
-                $fn .= '.gz';
-            }else if(file_exists($fn . '.bz2')){
-                $fn .= '.bz2';
-            }else{
-                //file doesnt exist yet, so we take the configured extension
-                $fn .= '.' . $conf['compression'];
-            }
-        }
-    }
-
-    if (!isset($cache[$id])) { $cache[$id] = array(); }
-    $cache[$id][$rev] = $fn;
-    return $fn;
-}
-
-/**
- * Returns the full path to the file for locking the page while editing.
- *
- * @author Ben Coburn <btcoburn@silicodon.net>
- *
- * @param string $id page id
- * @return string full path
- */
-function wikiLockFN($id) {
-    global $conf;
-    return $conf['lockdir'].'/'.md5(cleanID($id)).'.lock';
-}
-
-
-/**
- * returns the full path to the meta file specified by ID and extension
- *
- * @author Steven Danz <steven-danz@kc.rr.com>
- *
- * @param string $id   page id
- * @param string $ext  file extension
- * @return string full path
- */
-function metaFN($id,$ext){
-    global $conf;
-    $id = cleanID($id);
-    $id = str_replace(':','/',$id);
-    $fn = $conf['metadir'].'/'.utf8_encodeFN($id).$ext;
-    return $fn;
-}
-
-/**
- * returns the full path to the media's meta file specified by ID and extension
- *
- * @author Kate Arzamastseva <pshns@ukr.net>
- *
- * @param string $id   media id
- * @param string $ext  extension of media
- * @return string
- */
-function mediaMetaFN($id,$ext){
-    global $conf;
-    $id = cleanID($id);
-    $id = str_replace(':','/',$id);
-    $fn = $conf['mediametadir'].'/'.utf8_encodeFN($id).$ext;
-    return $fn;
-}
-
-/**
- * returns an array of full paths to all metafiles of a given ID
- *
- * @author Esther Brunner <esther@kaffeehaus.ch>
- * @author Michael Hamann <michael@content-space.de>
- *
- * @param string $id page id
- * @return array
- */
-function metaFiles($id){
-    $basename = metaFN($id, '');
-    $files    = glob($basename.'.*', GLOB_MARK);
-    // filter files like foo.bar.meta when $id == 'foo'
-    return    $files ? preg_grep('/^'.preg_quote($basename, '/').'\.[^.\/]*$/u', $files) : array();
-}
-
-/**
- * returns the full path to the mediafile specified by ID
- *
- * The filename is URL encoded to protect Unicode chars
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- * @author Kate Arzamastseva <pshns@ukr.net>
- *
- * @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){
-    global $conf;
-    if ($clean) $id = cleanID($id);
-    $id = str_replace(':','/',$id);
-    if(empty($rev)){
-        $fn = $conf['mediadir'].'/'.utf8_encodeFN($id);
-    }else{
-        $ext = mimetype($id);
-        $name = substr($id,0, -1*strlen($ext[0])-1);
-        $fn = $conf['mediaolddir'].'/'.utf8_encodeFN($name .'.'.( (int) $rev ).'.'.$ext[0]);
-    }
-    return $fn;
-}
-
-/**
- * Returns the full filepath to a localized file if local
- * version isn't found the english one is returned
- *
- * @param  string $id  The id of the local file
- * @param  string $ext The file extension (usually txt)
- * @return string full filepath to localized file
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- */
-function localeFN($id,$ext='txt'){
-    global $conf;
-    $file = DOKU_CONF.'lang/'.$conf['lang'].'/'.$id.'.'.$ext;
-    if(!file_exists($file)){
-        $file = DOKU_INC.'inc/lang/'.$conf['lang'].'/'.$id.'.'.$ext;
-        if(!file_exists($file)){
-            //fall back to english
-            $file = DOKU_INC.'inc/lang/en/'.$id.'.'.$ext;
-        }
-    }
-    return $file;
-}
-
-/**
- * Resolve relative paths in IDs
- *
- * Do not call directly use resolve_mediaid or resolve_pageid
- * instead
- *
- * Partyly based on a cleanPath function found at
- * http://php.net/manual/en/function.realpath.php#57016
- *
- * @author <bart at mediawave dot nl>
- *
- * @param string $ns     namespace which is context of id
- * @param string $id     relative id
- * @param bool   $clean  flag indicating that id should be cleaned
- * @return string
- */
-function resolve_id($ns,$id,$clean=true){
-    global $conf;
-
-    // some pre cleaning for useslash:
-    if($conf['useslash']) $id = str_replace('/',':',$id);
-
-    // if the id starts with a dot we need to handle the
-    // relative stuff
-    if($id && $id{0} == '.'){
-        // normalize initial dots without a colon
-        $id = preg_replace('/^(\.+)(?=[^:\.])/','\1:',$id);
-        // prepend the current namespace
-        $id = $ns.':'.$id;
-
-        // cleanup relatives
-        $result = array();
-        $pathA  = explode(':', $id);
-        if (!$pathA[0]) $result[] = '';
-        foreach ($pathA AS $key => $dir) {
-            if ($dir == '..') {
-                if (end($result) == '..') {
-                    $result[] = '..';
-                } elseif (!array_pop($result)) {
-                    $result[] = '..';
-                }
-            } elseif ($dir && $dir != '.') {
-                $result[] = $dir;
-            }
-        }
-        if (!end($pathA)) $result[] = '';
-        $id = implode(':', $result);
-    }elseif($ns !== false && strpos($id,':') === false){
-        //if link contains no namespace. add current namespace (if any)
-        $id = $ns.':'.$id;
-    }
-
-    if($clean) $id = cleanID($id);
-    return $id;
-}
-
-/**
- * Returns a full media id
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- *
- * @param string $ns namespace which is context of id
- * @param string &$page (reference) relative media id, updated to resolved id
- * @param bool &$exists (reference) updated with existance of media
- * @param int|string $rev
- * @param bool $date_at
- */
-function resolve_mediaid($ns,&$page,&$exists,$rev='',$date_at=false){
-    $page   = resolve_id($ns,$page);
-    if($rev !== '' &&  $date_at){
-        $medialog = new MediaChangeLog($page);
-        $medialog_rev = $medialog->getLastRevisionAt($rev);
-        if($medialog_rev !== false) {
-            $rev = $medialog_rev;
-        }
-    }
-
-    $file   = mediaFN($page,$rev);
-    $exists = file_exists($file);
-}
-
-/**
- * Returns a full page id
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- *
- * @param string $ns namespace which is context of id
- * @param string &$page (reference) relative page id, updated to resolved id
- * @param bool &$exists (reference) updated with existance of media
- * @param string $rev
- * @param bool $date_at
- */
-function resolve_pageid($ns,&$page,&$exists,$rev='',$date_at=false ){
-    global $conf;
-    global $ID;
-    $exists = false;
-
-    //empty address should point to current page
-    if ($page === "") {
-        $page = $ID;
-    }
-
-    //keep hashlink if exists then clean both parts
-    if (strpos($page,'#')) {
-        list($page,$hash) = explode('#',$page,2);
-    } else {
-        $hash = '';
-    }
-    $hash = cleanID($hash);
-    $page = resolve_id($ns,$page,false); // resolve but don't clean, yet
-
-    // get filename (calls clean itself)
-    if($rev !== '' && $date_at) {
-        $pagelog = new PageChangeLog($page);
-        $pagelog_rev = $pagelog->getLastRevisionAt($rev);
-        if($pagelog_rev !== false)//something found
-           $rev  = $pagelog_rev;
-    }
-    $file = wikiFN($page,$rev);
-
-    // if ends with colon or slash we have a namespace link
-    if(in_array(substr($page,-1), array(':', ';')) ||
-       ($conf['useslash'] && substr($page,-1) == '/')){
-        if(page_exists($page.$conf['start'],$rev,true,$date_at)){
-            // start page inside namespace
-            $page = $page.$conf['start'];
-            $exists = true;
-        }elseif(page_exists($page.noNS(cleanID($page)),$rev,true,$date_at)){
-            // page named like the NS inside the NS
-            $page = $page.noNS(cleanID($page));
-            $exists = true;
-        }elseif(page_exists($page,$rev,true,$date_at)){
-            // page like namespace exists
-            $page = $page;
-            $exists = true;
-        }else{
-            // fall back to default
-            $page = $page.$conf['start'];
-        }
-    }else{
-        //check alternative plural/nonplural form
-        if(!file_exists($file)){
-            if( $conf['autoplural'] ){
-                if(substr($page,-1) == 's'){
-                    $try = substr($page,0,-1);
-                }else{
-                    $try = $page.'s';
-                }
-                if(page_exists($try,$rev,true,$date_at)){
-                    $page   = $try;
-                    $exists = true;
-                }
-            }
-        }else{
-            $exists = true;
-        }
-    }
-
-    // now make sure we have a clean page
-    $page = cleanID($page);
-
-    //add hash if any
-    if(!empty($hash)) $page .= '#'.$hash;
-}
-
-/**
- * Returns the name of a cachefile from given data
- *
- * The needed directory is created by this function!
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- *
- * @param string $data  This data is used to create a unique md5 name
- * @param string $ext   This is appended to the filename if given
- * @return string       The filename of the cachefile
- */
-function getCacheName($data,$ext=''){
-    global $conf;
-    $md5  = md5($data);
-    $file = $conf['cachedir'].'/'.$md5{0}.'/'.$md5.$ext;
-    io_makeFileDir($file);
-    return $file;
-}
-
-/**
- * Checks a pageid against $conf['hidepages']
- *
- * @author Andreas Gohr <gohr@cosmocode.de>
- *
- * @param string $id page id
- * @return bool
- */
-function isHiddenPage($id){
-    $data = array(
-        'id' => $id,
-        'hidden' => false
-    );
-    trigger_event('PAGEUTILS_ID_HIDEPAGE', $data, '_isHiddenPage');
-    return $data['hidden'];
-}
-
-/**
- * callback checks if page is hidden
- *
- * @param array $data event data    - see isHiddenPage()
- */
-function _isHiddenPage(&$data) {
-    global $conf;
-    global $ACT;
-
-    if ($data['hidden']) return;
-    if(empty($conf['hidepages'])) return;
-    if($ACT == 'admin') return;
-
-    if(preg_match('/'.$conf['hidepages'].'/ui',':'.$data['id'])){
-        $data['hidden'] = true;
-    }
-}
-
-/**
- * Reverse of isHiddenPage
- *
- * @author Andreas Gohr <gohr@cosmocode.de>
- *
- * @param string $id page id
- * @return bool
- */
-function isVisiblePage($id){
-    return !isHiddenPage($id);
-}
-
-/**
- * Format an id for output to a user
- *
- * Namespaces are denoted by a trailing “:*â€. The root namespace is
- * “*â€. Output is escaped.
- *
- * @author Adrian Lang <lang@cosmocode.de>
- *
- * @param string $id page id
- * @return string
- */
-function prettyprint_id($id) {
-    if (!$id || $id === ':') {
-        return '*';
-    }
-    if ((substr($id, -1, 1) === ':')) {
-        $id .= '*';
-    }
-    return hsc($id);
-}
-
-/**
- * Encode a UTF-8 filename to use on any filesystem
- *
- * Uses the 'fnencode' option to determine encoding
- *
- * When the second parameter is true the string will
- * be encoded only if non ASCII characters are detected -
- * This makes it safe to run it multiple times on the
- * same string (default is true)
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- * @see    urlencode
- *
- * @param string $file file name
- * @param bool   $safe if true, only encoded when non ASCII characters detected
- * @return string
- */
-function utf8_encodeFN($file,$safe=true){
-    global $conf;
-    if($conf['fnencode'] == 'utf-8') return $file;
-
-    if($safe && preg_match('#^[a-zA-Z0-9/_\-\.%]+$#',$file)){
-        return $file;
-    }
-
-    if($conf['fnencode'] == 'safe'){
-        return SafeFN::encode($file);
-    }
-
-    $file = urlencode($file);
-    $file = str_replace('%2F','/',$file);
-    return $file;
-}
-
-/**
- * Decode a filename back to UTF-8
- *
- * Uses the 'fnencode' option to determine encoding
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- * @see    urldecode
- *
- * @param string $file file name
- * @return string
- */
-function utf8_decodeFN($file){
-    global $conf;
-    if($conf['fnencode'] == 'utf-8') return $file;
-
-    if($conf['fnencode'] == 'safe'){
-        return SafeFN::decode($file);
-    }
-
-    return urldecode($file);
-}
-
-/**
- * Find a page in the current namespace (determined from $ID) or any
- * higher namespace that can be accessed by the current user,
- * this condition can be overriden by an optional parameter.
- *
- * Used for sidebars, but can be used other stuff as well
- *
- * @todo   add event hook
- *
- * @param  string $page the pagename you're looking for
- * @param bool $useacl only return pages readable by the current user, false to ignore ACLs
- * @return false|string the full page id of the found page, false if any
- */
-function page_findnearest($page, $useacl = true){
-    if (!$page) return false;
-    global $ID;
-
-    $ns = $ID;
-    do {
-        $ns = getNS($ns);
-        $pageid = cleanID("$ns:$page");
-        if(page_exists($pageid) && (!$useacl || auth_quickaclcheck($pageid) >= AUTH_READ)){
-            return $pageid;
-        }
-    } while($ns);
-
-    return false;
-}
diff --git a/wiki/inc/parser/code.php b/wiki/inc/parser/code.php
deleted file mode 100644
index f91f1d2..0000000
--- a/wiki/inc/parser/code.php
+++ /dev/null
@@ -1,73 +0,0 @@
-<?php
-/**
- * A simple renderer that allows downloading of code and file snippets
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- */
-if(!defined('DOKU_INC')) die('meh.');
-
-class Doku_Renderer_code extends Doku_Renderer {
-    var $_codeblock = 0;
-
-    /**
-     * 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;
-        if(!$language) $language = 'txt';
-        $language = preg_replace(PREG_PATTERN_VALID_LANGUAGE, '', $language);
-        if(!$filename) $filename = 'snippet.'.$language;
-        $filename = utf8_basename($filename);
-        $filename = utf8_stripspecials($filename, '_');
-
-        // send CRLF to Windows clients
-        if(strpos($INPUT->server->str('HTTP_USER_AGENT'), 'Windows') !== false) {
-            $text = str_replace("\n", "\r\n", $text);
-        }
-
-        if($this->_codeblock == $INPUT->str('codeblock')) {
-            header("Content-Type: text/plain; charset=utf-8");
-            header("Content-Disposition: attachment; filename=$filename");
-            header("X-Robots-Tag: noindex");
-            echo trim($text, "\r\n");
-            exit;
-        }
-
-        $this->_codeblock++;
-    }
-
-    /**
-     * Wraps around code()
-     *
-     * @param string $text
-     * @param string $language
-     * @param string $filename
-     */
-    function file($text, $language = null, $filename = '') {
-        $this->code($text, $language, $filename);
-    }
-
-    /**
-     * This should never be reached, if it is send a 404
-     */
-    function document_end() {
-        http_status(404);
-        echo '404 - Not found';
-        exit;
-    }
-
-    /**
-     * Return the format of the renderer
-     *
-     * @returns string 'code'
-     */
-    function getFormat() {
-        return 'code';
-    }
-}
diff --git a/wiki/inc/parser/handler.php b/wiki/inc/parser/handler.php
deleted file mode 100644
index 780c6cf..0000000
--- a/wiki/inc/parser/handler.php
+++ /dev/null
@@ -1,1811 +0,0 @@
-<?php
-if(!defined('DOKU_INC')) die('meh.');
-if (!defined('DOKU_PARSER_EOL')) define('DOKU_PARSER_EOL',"\n");   // add this to make handling test cases simpler
-
-class Doku_Handler {
-
-    var $Renderer = null;
-
-    var $CallWriter = null;
-
-    var $calls = array();
-
-    var $status = array(
-        'section' => false,
-        'doublequote' => 0,
-    );
-
-    var $rewriteBlocks = true;
-
-    function __construct() {
-        $this->CallWriter = new Doku_Handler_CallWriter($this);
-    }
-
-    /**
-     * @param string $handler
-     * @param mixed $args
-     * @param integer|string $pos
-     */
-    function _addCall($handler, $args, $pos) {
-        $call = array($handler,$args, $pos);
-        $this->CallWriter->writeCall($call);
-    }
-
-    function addPluginCall($plugin, $args, $state, $pos, $match) {
-        $call = array('plugin',array($plugin, $args, $state, $match), $pos);
-        $this->CallWriter->writeCall($call);
-    }
-
-    function _finalize(){
-
-        $this->CallWriter->finalise();
-
-        if ( $this->status['section'] ) {
-            $last_call = end($this->calls);
-            array_push($this->calls,array('section_close',array(), $last_call[2]));
-        }
-
-        if ( $this->rewriteBlocks ) {
-            $B = new Doku_Handler_Block();
-            $this->calls = $B->process($this->calls);
-        }
-
-        trigger_event('PARSER_HANDLER_DONE',$this);
-
-        array_unshift($this->calls,array('document_start',array(),0));
-        $last_call = end($this->calls);
-        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 = current($this->calls);
-        if($call !== false) {
-            next($this->calls); //advance the pointer
-            return $call;
-        }
-        return false;
-    }
-
-
-    /**
-     * Special plugin handler
-     *
-     * This handler is called for all modes starting with 'plugin_'.
-     * 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);
-        /** @var DokuWiki_Syntax_Plugin $plugin */
-        $plugin = plugin_load('syntax',$pluginname);
-        if($plugin != null){
-            $data = $plugin->handle($match, $state, $pos, $this);
-        }
-        if ($data !== false) {
-            $this->addPluginCall($pluginname,$data,$state,$pos,$match);
-        }
-        return true;
-    }
-
-    function base($match, $state, $pos) {
-        switch ( $state ) {
-            case DOKU_LEXER_UNMATCHED:
-                $this->_addCall('cdata',array($match), $pos);
-                return true;
-            break;
-        }
-    }
-
-    function header($match, $state, $pos) {
-        // get level and title
-        $title = trim($match);
-        $level = 7 - strspn($title,'=');
-        if($level < 1) $level = 1;
-        $title = trim($title,'=');
-        $title = trim($title);
-
-        if ($this->status['section']) $this->_addCall('section_close',array(),$pos);
-
-        $this->_addCall('header',array($title,$level,$pos), $pos);
-
-        $this->_addCall('section_open',array($level),$pos);
-        $this->status['section'] = true;
-        return true;
-    }
-
-    function notoc($match, $state, $pos) {
-        $this->_addCall('notoc',array(),$pos);
-        return true;
-    }
-
-    function nocache($match, $state, $pos) {
-        $this->_addCall('nocache',array(),$pos);
-        return true;
-    }
-
-    function linebreak($match, $state, $pos) {
-        $this->_addCall('linebreak',array(),$pos);
-        return true;
-    }
-
-    function eol($match, $state, $pos) {
-        $this->_addCall('eol',array(),$pos);
-        return true;
-    }
-
-    function hr($match, $state, $pos) {
-        $this->_addCall('hr',array(),$pos);
-        return true;
-    }
-
-    /**
-     * @param string|integer $match
-     * @param string|integer $state
-     * @param integer $pos
-     * @param string $name
-     */
-    function _nestingTag($match, $state, $pos, $name) {
-        switch ( $state ) {
-            case DOKU_LEXER_ENTER:
-                $this->_addCall($name.'_open', array(), $pos);
-            break;
-            case DOKU_LEXER_EXIT:
-                $this->_addCall($name.'_close', array(), $pos);
-            break;
-            case DOKU_LEXER_UNMATCHED:
-                $this->_addCall('cdata',array($match), $pos);
-            break;
-        }
-    }
-
-    function strong($match, $state, $pos) {
-        $this->_nestingTag($match, $state, $pos, 'strong');
-        return true;
-    }
-
-    function emphasis($match, $state, $pos) {
-        $this->_nestingTag($match, $state, $pos, 'emphasis');
-        return true;
-    }
-
-    function underline($match, $state, $pos) {
-        $this->_nestingTag($match, $state, $pos, 'underline');
-        return true;
-    }
-
-    function monospace($match, $state, $pos) {
-        $this->_nestingTag($match, $state, $pos, 'monospace');
-        return true;
-    }
-
-    function subscript($match, $state, $pos) {
-        $this->_nestingTag($match, $state, $pos, 'subscript');
-        return true;
-    }
-
-    function superscript($match, $state, $pos) {
-        $this->_nestingTag($match, $state, $pos, 'superscript');
-        return true;
-    }
-
-    function deleted($match, $state, $pos) {
-        $this->_nestingTag($match, $state, $pos, 'deleted');
-        return true;
-    }
-
-
-    function footnote($match, $state, $pos) {
-//        $this->_nestingTag($match, $state, $pos, 'footnote');
-        if (!isset($this->_footnote)) $this->_footnote = false;
-
-        switch ( $state ) {
-            case DOKU_LEXER_ENTER:
-                // footnotes can not be nested - however due to limitations in lexer it can't be prevented
-                // we will still enter a new footnote mode, we just do nothing
-                if ($this->_footnote) {
-                    $this->_addCall('cdata',array($match), $pos);
-                    break;
-                }
-
-                $this->_footnote = true;
-
-                $ReWriter = new Doku_Handler_Nest($this->CallWriter,'footnote_close');
-                $this->CallWriter = & $ReWriter;
-                $this->_addCall('footnote_open', array(), $pos);
-            break;
-            case DOKU_LEXER_EXIT:
-                // check whether we have already exitted the footnote mode, can happen if the modes were nested
-                if (!$this->_footnote) {
-                    $this->_addCall('cdata',array($match), $pos);
-                    break;
-                }
-
-                $this->_footnote = false;
-
-                $this->_addCall('footnote_close', array(), $pos);
-                $this->CallWriter->process();
-                $ReWriter = & $this->CallWriter;
-                $this->CallWriter = & $ReWriter->CallWriter;
-            break;
-            case DOKU_LEXER_UNMATCHED:
-                $this->_addCall('cdata', array($match), $pos);
-            break;
-        }
-        return true;
-    }
-
-    function listblock($match, $state, $pos) {
-        switch ( $state ) {
-            case DOKU_LEXER_ENTER:
-                $ReWriter = new Doku_Handler_List($this->CallWriter);
-                $this->CallWriter = & $ReWriter;
-                $this->_addCall('list_open', array($match), $pos);
-            break;
-            case DOKU_LEXER_EXIT:
-                $this->_addCall('list_close', array(), $pos);
-                $this->CallWriter->process();
-                $ReWriter = & $this->CallWriter;
-                $this->CallWriter = & $ReWriter->CallWriter;
-            break;
-            case DOKU_LEXER_MATCHED:
-                $this->_addCall('list_item', array($match), $pos);
-            break;
-            case DOKU_LEXER_UNMATCHED:
-                $this->_addCall('cdata', array($match), $pos);
-            break;
-        }
-        return true;
-    }
-
-    function unformatted($match, $state, $pos) {
-        if ( $state == DOKU_LEXER_UNMATCHED ) {
-            $this->_addCall('unformatted',array($match), $pos);
-        }
-        return true;
-    }
-
-    function php($match, $state, $pos) {
-        global $conf;
-        if ( $state == DOKU_LEXER_UNMATCHED ) {
-            $this->_addCall('php',array($match), $pos);
-        }
-        return true;
-    }
-
-    function phpblock($match, $state, $pos) {
-        global $conf;
-        if ( $state == DOKU_LEXER_UNMATCHED ) {
-            $this->_addCall('phpblock',array($match), $pos);
-        }
-        return true;
-    }
-
-    function html($match, $state, $pos) {
-        global $conf;
-        if ( $state == DOKU_LEXER_UNMATCHED ) {
-            $this->_addCall('html',array($match), $pos);
-        }
-        return true;
-    }
-
-    function htmlblock($match, $state, $pos) {
-        global $conf;
-        if ( $state == DOKU_LEXER_UNMATCHED ) {
-            $this->_addCall('htmlblock',array($match), $pos);
-        }
-        return true;
-    }
-
-    function preformatted($match, $state, $pos) {
-        switch ( $state ) {
-            case DOKU_LEXER_ENTER:
-                $ReWriter = new Doku_Handler_Preformatted($this->CallWriter);
-                $this->CallWriter = $ReWriter;
-                $this->_addCall('preformatted_start',array(), $pos);
-            break;
-            case DOKU_LEXER_EXIT:
-                $this->_addCall('preformatted_end',array(), $pos);
-                $this->CallWriter->process();
-                $ReWriter = & $this->CallWriter;
-                $this->CallWriter = & $ReWriter->CallWriter;
-            break;
-            case DOKU_LEXER_MATCHED:
-                $this->_addCall('preformatted_newline',array(), $pos);
-            break;
-            case DOKU_LEXER_UNMATCHED:
-                $this->_addCall('preformatted_content',array($match), $pos);
-            break;
-        }
-
-        return true;
-    }
-
-    function quote($match, $state, $pos) {
-
-        switch ( $state ) {
-
-            case DOKU_LEXER_ENTER:
-                $ReWriter = new Doku_Handler_Quote($this->CallWriter);
-                $this->CallWriter = & $ReWriter;
-                $this->_addCall('quote_start',array($match), $pos);
-            break;
-
-            case DOKU_LEXER_EXIT:
-                $this->_addCall('quote_end',array(), $pos);
-                $this->CallWriter->process();
-                $ReWriter = & $this->CallWriter;
-                $this->CallWriter = & $ReWriter->CallWriter;
-            break;
-
-            case DOKU_LEXER_MATCHED:
-                $this->_addCall('quote_newline',array($match), $pos);
-            break;
-
-            case DOKU_LEXER_UNMATCHED:
-                $this->_addCall('cdata',array($match), $pos);
-            break;
-
-        }
-
-        return true;
-    }
-
-    /**
-     * Internal function for parsing highlight options.
-     * $options is parsed for key value pairs separated by commas.
-     * A value might also be missing in which case the value will simple
-     * be set to true. Commas in strings are ignored, e.g. option="4,56"
-     * will work as expected and will only create one entry.
-     *
-     * @param string $options space separated list of key-value pairs,
-     *                        e.g. option1=123, option2="456"
-     * @return array|null     Array of key-value pairs $array['key'] = 'value';
-     *                        or null if no entries found
-     */
-    protected function parse_highlight_options ($options) {
-        $result = array();
-        preg_match_all('/(\w+(?:="[^"]*"))|(\w+(?:=[^\s]*))|(\w+[^=\s\]])(?:\s*)/', $options, $matches, PREG_SET_ORDER);
-        foreach ($matches as $match) {
-            $equal_sign = strpos($match [0], '=');
-            if ($equal_sign === false) {
-                $key = trim($match[0]);
-                $result [$key] = 1;
-            } else {
-                $key = substr($match[0], 0, $equal_sign);
-                $value = substr($match[0], $equal_sign+1);
-                $value = trim($value, '"');
-                if (strlen($value) > 0) {
-                    $result [$key] = $value;
-                } else {
-                    $result [$key] = 1;
-                }
-            }
-        }
-
-        // Check for supported options
-        $result = array_intersect_key(
-            $result,
-            array_flip(array(
-                'enable_line_numbers',
-                'start_line_numbers_at',
-                'highlight_lines_extra',
-                'enable_keyword_links')
-            )
-        );
-
-        // Sanitize values
-        if(isset($result['enable_line_numbers'])) {
-            if($result['enable_line_numbers'] === 'false') {
-                $result['enable_line_numbers'] = false;
-            }
-            $result['enable_line_numbers'] = (bool) $result['enable_line_numbers'];
-        }
-        if(isset($result['highlight_lines_extra'])) {
-            $result['highlight_lines_extra'] = array_map('intval', explode(',', $result['highlight_lines_extra']));
-            $result['highlight_lines_extra'] = array_filter($result['highlight_lines_extra']);
-            $result['highlight_lines_extra'] = array_unique($result['highlight_lines_extra']);
-        }
-        if(isset($result['start_line_numbers_at'])) {
-            $result['start_line_numbers_at'] = (int) $result['start_line_numbers_at'];
-        }
-        if(isset($result['enable_keyword_links'])) {
-            if($result['enable_keyword_links'] === 'false') {
-                $result['enable_keyword_links'] = false;
-            }
-            $result['enable_keyword_links'] = (bool) $result['enable_keyword_links'];
-        }
-        if (count($result) == 0) {
-            return null;
-        }
-
-        return $result;
-    }
-
-    function file($match, $state, $pos) {
-        return $this->code($match, $state, $pos, 'file');
-    }
-
-    function code($match, $state, $pos, $type='code') {
-        if ( $state == DOKU_LEXER_UNMATCHED ) {
-            $matches = explode('>',$match,2);
-            // Cut out variable options enclosed in []
-            preg_match('/\[.*\]/', $matches[0], $options);
-            if (!empty($options[0])) {
-                $matches[0] = str_replace($options[0], '', $matches[0]);
-            }
-            $param = preg_split('/\s+/', $matches[0], 2, PREG_SPLIT_NO_EMPTY);
-            while(count($param) < 2) array_push($param, null);
-            // We shortcut html here.
-            if ($param[0] == 'html') $param[0] = 'html4strict';
-            if ($param[0] == '-') $param[0] = null;
-            array_unshift($param, $matches[1]);
-            if (!empty($options[0])) {
-                $param [] = $this->parse_highlight_options ($options[0]);
-            }
-            $this->_addCall($type, $param, $pos);
-        }
-        return true;
-    }
-
-    function acronym($match, $state, $pos) {
-        $this->_addCall('acronym',array($match), $pos);
-        return true;
-    }
-
-    function smiley($match, $state, $pos) {
-        $this->_addCall('smiley',array($match), $pos);
-        return true;
-    }
-
-    function wordblock($match, $state, $pos) {
-        $this->_addCall('wordblock',array($match), $pos);
-        return true;
-    }
-
-    function entity($match, $state, $pos) {
-        $this->_addCall('entity',array($match), $pos);
-        return true;
-    }
-
-    function multiplyentity($match, $state, $pos) {
-        preg_match_all('/\d+/',$match,$matches);
-        $this->_addCall('multiplyentity',array($matches[0][0],$matches[0][1]), $pos);
-        return true;
-    }
-
-    function singlequoteopening($match, $state, $pos) {
-        $this->_addCall('singlequoteopening',array(), $pos);
-        return true;
-    }
-
-    function singlequoteclosing($match, $state, $pos) {
-        $this->_addCall('singlequoteclosing',array(), $pos);
-        return true;
-    }
-
-    function apostrophe($match, $state, $pos) {
-        $this->_addCall('apostrophe',array(), $pos);
-        return true;
-    }
-
-    function doublequoteopening($match, $state, $pos) {
-        $this->_addCall('doublequoteopening',array(), $pos);
-        $this->status['doublequote']++;
-        return true;
-    }
-
-    function doublequoteclosing($match, $state, $pos) {
-        if ($this->status['doublequote'] <= 0) {
-            $this->doublequoteopening($match, $state, $pos);
-        } else {
-            $this->_addCall('doublequoteclosing',array(), $pos);
-            $this->status['doublequote'] = max(0, --$this->status['doublequote']);
-        }
-        return true;
-    }
-
-    function camelcaselink($match, $state, $pos) {
-        $this->_addCall('camelcaselink',array($match), $pos);
-        return true;
-    }
-
-    /*
-    */
-    function internallink($match, $state, $pos) {
-        // Strip the opening and closing markup
-        $link = preg_replace(array('/^\[\[/','/\]\]$/u'),'',$match);
-
-        // Split title from URL
-        $link = explode('|',$link,2);
-        if ( !isset($link[1]) ) {
-            $link[1] = null;
-        } else if ( preg_match('/^\{\{[^\}]+\}\}$/',$link[1]) ) {
-            // If the title is an image, convert it to an array containing the image details
-            $link[1] = Doku_Handler_Parse_Media($link[1]);
-        }
-        $link[0] = trim($link[0]);
-
-        //decide which kind of link it is
-
-        if ( link_isinterwiki($link[0]) ) {
-            // Interwiki
-            $interwiki = explode('>',$link[0],2);
-            $this->_addCall(
-                'interwikilink',
-                array($link[0],$link[1],strtolower($interwiki[0]),$interwiki[1]),
-                $pos
-                );
-        }elseif ( preg_match('/^\\\\\\\\[^\\\\]+?\\\\/u',$link[0]) ) {
-            // Windows Share
-            $this->_addCall(
-                'windowssharelink',
-                array($link[0],$link[1]),
-                $pos
-                );
-        }elseif ( preg_match('#^([a-z0-9\-\.+]+?)://#i',$link[0]) ) {
-            // external link (accepts all protocols)
-            $this->_addCall(
-                    'externallink',
-                    array($link[0],$link[1]),
-                    $pos
-                    );
-        }elseif ( preg_match('<'.PREG_PATTERN_VALID_EMAIL.'>',$link[0]) ) {
-            // E-Mail (pattern above is defined in inc/mail.php)
-            $this->_addCall(
-                'emaillink',
-                array($link[0],$link[1]),
-                $pos
-                );
-        }elseif ( preg_match('!^#.+!',$link[0]) ){
-            // local link
-            $this->_addCall(
-                'locallink',
-                array(substr($link[0],1),$link[1]),
-                $pos
-                );
-        }else{
-            // internal link
-            $this->_addCall(
-                'internallink',
-                array($link[0],$link[1]),
-                $pos
-                );
-        }
-
-        return true;
-    }
-
-    function filelink($match, $state, $pos) {
-        $this->_addCall('filelink',array($match, null), $pos);
-        return true;
-    }
-
-    function windowssharelink($match, $state, $pos) {
-        $this->_addCall('windowssharelink',array($match, null), $pos);
-        return true;
-    }
-
-    function media($match, $state, $pos) {
-        $p = Doku_Handler_Parse_Media($match);
-
-        $this->_addCall(
-              $p['type'],
-              array($p['src'], $p['title'], $p['align'], $p['width'],
-                     $p['height'], $p['cache'], $p['linking']),
-              $pos
-             );
-        return true;
-    }
-
-    function rss($match, $state, $pos) {
-        $link = preg_replace(array('/^\{\{rss>/','/\}\}$/'),'',$match);
-
-        // get params
-        list($link,$params) = explode(' ',$link,2);
-
-        $p = array();
-        if(preg_match('/\b(\d+)\b/',$params,$match)){
-            $p['max'] = $match[1];
-        }else{
-            $p['max'] = 8;
-        }
-        $p['reverse'] = (preg_match('/rev/',$params));
-        $p['author']  = (preg_match('/\b(by|author)/',$params));
-        $p['date']    = (preg_match('/\b(date)/',$params));
-        $p['details'] = (preg_match('/\b(desc|detail)/',$params));
-        $p['nosort']  = (preg_match('/\b(nosort)\b/',$params));
-
-        if (preg_match('/\b(\d+)([dhm])\b/',$params,$match)) {
-            $period = array('d' => 86400, 'h' => 3600, 'm' => 60);
-            $p['refresh'] = max(600,$match[1]*$period[$match[2]]);  // n * period in seconds, minimum 10 minutes
-        } else {
-            $p['refresh'] = 14400;   // default to 4 hours
-        }
-
-        $this->_addCall('rss',array($link,$p),$pos);
-        return true;
-    }
-
-    function externallink($match, $state, $pos) {
-        $url   = $match;
-        $title = null;
-
-        // add protocol on simple short URLs
-        if(substr($url,0,3) == 'ftp' && (substr($url,0,6) != 'ftp://')){
-            $title = $url;
-            $url   = 'ftp://'.$url;
-        }
-        if(substr($url,0,3) == 'www' && (substr($url,0,7) != 'http://')){
-            $title = $url;
-            $url = 'http://'.$url;
-        }
-
-        $this->_addCall('externallink',array($url, $title), $pos);
-        return true;
-    }
-
-    function emaillink($match, $state, $pos) {
-        $email = preg_replace(array('/^</','/>$/'),'',$match);
-        $this->_addCall('emaillink',array($email, null), $pos);
-        return true;
-    }
-
-    function table($match, $state, $pos) {
-        switch ( $state ) {
-
-            case DOKU_LEXER_ENTER:
-
-                $ReWriter = new Doku_Handler_Table($this->CallWriter);
-                $this->CallWriter = & $ReWriter;
-
-                $this->_addCall('table_start', array($pos + 1), $pos);
-                if ( trim($match) == '^' ) {
-                    $this->_addCall('tableheader', array(), $pos);
-                } else {
-                    $this->_addCall('tablecell', array(), $pos);
-                }
-            break;
-
-            case DOKU_LEXER_EXIT:
-                $this->_addCall('table_end', array($pos), $pos);
-                $this->CallWriter->process();
-                $ReWriter = & $this->CallWriter;
-                $this->CallWriter = & $ReWriter->CallWriter;
-            break;
-
-            case DOKU_LEXER_UNMATCHED:
-                if ( trim($match) != '' ) {
-                    $this->_addCall('cdata',array($match), $pos);
-                }
-            break;
-
-            case DOKU_LEXER_MATCHED:
-                if ( $match == ' ' ){
-                    $this->_addCall('cdata', array($match), $pos);
-                } else if ( preg_match('/:::/',$match) ) {
-                    $this->_addCall('rowspan', array($match), $pos);
-                } else if ( preg_match('/\t+/',$match) ) {
-                    $this->_addCall('table_align', array($match), $pos);
-                } else if ( preg_match('/ {2,}/',$match) ) {
-                    $this->_addCall('table_align', array($match), $pos);
-                } else if ( $match == "\n|" ) {
-                    $this->_addCall('table_row', array(), $pos);
-                    $this->_addCall('tablecell', array(), $pos);
-                } else if ( $match == "\n^" ) {
-                    $this->_addCall('table_row', array(), $pos);
-                    $this->_addCall('tableheader', array(), $pos);
-                } else if ( $match == '|' ) {
-                    $this->_addCall('tablecell', array(), $pos);
-                } else if ( $match == '^' ) {
-                    $this->_addCall('tableheader', array(), $pos);
-                }
-            break;
-        }
-        return true;
-    }
-}
-
-//------------------------------------------------------------------------
-function Doku_Handler_Parse_Media($match) {
-
-    // Strip the opening and closing markup
-    $link = preg_replace(array('/^\{\{/','/\}\}$/u'),'',$match);
-
-    // Split title from URL
-    $link = explode('|',$link,2);
-
-    // Check alignment
-    $ralign = (bool)preg_match('/^ /',$link[0]);
-    $lalign = (bool)preg_match('/ $/',$link[0]);
-
-    // Logic = what's that ;)...
-    if ( $lalign & $ralign ) {
-        $align = 'center';
-    } else if ( $ralign ) {
-        $align = 'right';
-    } else if ( $lalign ) {
-        $align = 'left';
-    } else {
-        $align = null;
-    }
-
-    // The title...
-    if ( !isset($link[1]) ) {
-        $link[1] = null;
-    }
-
-    //remove aligning spaces
-    $link[0] = trim($link[0]);
-
-    //split into src and parameters (using the very last questionmark)
-    $pos = strrpos($link[0], '?');
-    if($pos !== false){
-        $src   = substr($link[0],0,$pos);
-        $param = substr($link[0],$pos+1);
-    }else{
-        $src   = $link[0];
-        $param = '';
-    }
-
-    //parse width and height
-    if(preg_match('#(\d+)(x(\d+))?#i',$param,$size)){
-        !empty($size[1]) ? $w = $size[1] : $w = null;
-        !empty($size[3]) ? $h = $size[3] : $h = null;
-    } else {
-        $w = null;
-        $h = null;
-    }
-
-    //get linking command
-    if(preg_match('/nolink/i',$param)){
-        $linking = 'nolink';
-    }else if(preg_match('/direct/i',$param)){
-        $linking = 'direct';
-    }else if(preg_match('/linkonly/i',$param)){
-        $linking = 'linkonly';
-    }else{
-        $linking = 'details';
-    }
-
-    //get caching command
-    if (preg_match('/(nocache|recache)/i',$param,$cachemode)){
-        $cache = $cachemode[1];
-    }else{
-        $cache = 'cache';
-    }
-
-    // Check whether this is a local or remote image or interwiki
-    if (media_isexternal($src) || link_isinterwiki($src)){
-        $call = 'externalmedia';
-    } else {
-        $call = 'internalmedia';
-    }
-
-    $params = array(
-        'type'=>$call,
-        'src'=>$src,
-        'title'=>$link[1],
-        'align'=>$align,
-        'width'=>$w,
-        'height'=>$h,
-        'cache'=>$cache,
-        'linking'=>$linking,
-    );
-
-    return $params;
-}
-
-//------------------------------------------------------------------------
-interface Doku_Handler_CallWriter_Interface {
-    public function writeCall($call);
-    public function writeCalls($calls);
-    public function finalise();
-}
-
-class Doku_Handler_CallWriter implements Doku_Handler_CallWriter_Interface {
-
-    var $Handler;
-
-    /**
-     * @param Doku_Handler $Handler
-     */
-    function __construct(Doku_Handler $Handler) {
-        $this->Handler = $Handler;
-    }
-
-    function writeCall($call) {
-        $this->Handler->calls[] = $call;
-    }
-
-    function writeCalls($calls) {
-        $this->Handler->calls = array_merge($this->Handler->calls, $calls);
-    }
-
-    // function is required, but since this call writer is first/highest in
-    // the chain it is not required to do anything
-    function finalise() {
-        unset($this->Handler);
-    }
-}
-
-//------------------------------------------------------------------------
-/**
- * Generic call writer class to handle nesting of rendering instructions
- * within a render instruction. Also see nest() method of renderer base class
- *
- * @author    Chris Smith <chris@jalakai.co.uk>
- */
-class Doku_Handler_Nest implements Doku_Handler_CallWriter_Interface {
-
-    var $CallWriter;
-    var $calls = array();
-
-    var $closingInstruction;
-
-    /**
-     * constructor
-     *
-     * @param  Doku_Handler_CallWriter $CallWriter     the renderers current call writer
-     * @param  string     $close          closing instruction name, this is required to properly terminate the
-     *                                    syntax mode if the document ends without a closing pattern
-     */
-    function __construct(Doku_Handler_CallWriter_Interface $CallWriter, $close="nest_close") {
-        $this->CallWriter = $CallWriter;
-
-        $this->closingInstruction = $close;
-    }
-
-    function writeCall($call) {
-        $this->calls[] = $call;
-    }
-
-    function writeCalls($calls) {
-        $this->calls = array_merge($this->calls, $calls);
-    }
-
-    function finalise() {
-        $last_call = end($this->calls);
-        $this->writeCall(array($this->closingInstruction,array(), $last_call[2]));
-
-        $this->process();
-        $this->CallWriter->finalise();
-        unset($this->CallWriter);
-    }
-
-    function process() {
-        // merge consecutive cdata
-        $unmerged_calls = $this->calls;
-        $this->calls = array();
-
-        foreach ($unmerged_calls as $call) $this->addCall($call);
-
-        $first_call = reset($this->calls);
-        $this->CallWriter->writeCall(array("nest", array($this->calls), $first_call[2]));
-    }
-
-    function addCall($call) {
-        $key = count($this->calls);
-        if ($key and ($call[0] == 'cdata') and ($this->calls[$key-1][0] == 'cdata')) {
-            $this->calls[$key-1][1][0] .= $call[1][0];
-        } else if ($call[0] == 'eol') {
-            // do nothing (eol shouldn't be allowed, to counter preformatted fix in #1652 & #1699)
-        } else {
-            $this->calls[] = $call;
-        }
-    }
-}
-
-class Doku_Handler_List implements Doku_Handler_CallWriter_Interface {
-
-    var $CallWriter;
-
-    var $calls = array();
-    var $listCalls = array();
-    var $listStack = array();
-
-    const NODE = 1;
-
-    function __construct(Doku_Handler_CallWriter_Interface $CallWriter) {
-        $this->CallWriter = $CallWriter;
-    }
-
-    function writeCall($call) {
-        $this->calls[] = $call;
-    }
-
-    // Probably not needed but just in case...
-    function writeCalls($calls) {
-        $this->calls = array_merge($this->calls, $calls);
-#        $this->CallWriter->writeCalls($this->calls);
-    }
-
-    function finalise() {
-        $last_call = end($this->calls);
-        $this->writeCall(array('list_close',array(), $last_call[2]));
-
-        $this->process();
-        $this->CallWriter->finalise();
-        unset($this->CallWriter);
-    }
-
-    //------------------------------------------------------------------------
-    function process() {
-
-        foreach ( $this->calls as $call ) {
-            switch ($call[0]) {
-                case 'list_item':
-                    $this->listOpen($call);
-                break;
-                case 'list_open':
-                    $this->listStart($call);
-                break;
-                case 'list_close':
-                    $this->listEnd($call);
-                break;
-                default:
-                    $this->listContent($call);
-                break;
-            }
-        }
-
-        $this->CallWriter->writeCalls($this->listCalls);
-    }
-
-    //------------------------------------------------------------------------
-    function listStart($call) {
-        $depth = $this->interpretSyntax($call[1][0], $listType);
-
-        $this->initialDepth = $depth;
-        //                   array(list type, current depth, index of current listitem_open)
-        $this->listStack[] = array($listType, $depth, 1);
-
-        $this->listCalls[] = array('list'.$listType.'_open',array(),$call[2]);
-        $this->listCalls[] = array('listitem_open',array(1),$call[2]);
-        $this->listCalls[] = array('listcontent_open',array(),$call[2]);
-    }
-
-    //------------------------------------------------------------------------
-    function listEnd($call) {
-        $closeContent = true;
-
-        while ( $list = array_pop($this->listStack) ) {
-            if ( $closeContent ) {
-                $this->listCalls[] = array('listcontent_close',array(),$call[2]);
-                $closeContent = false;
-            }
-            $this->listCalls[] = array('listitem_close',array(),$call[2]);
-            $this->listCalls[] = array('list'.$list[0].'_close', array(), $call[2]);
-        }
-    }
-
-    //------------------------------------------------------------------------
-    function listOpen($call) {
-        $depth = $this->interpretSyntax($call[1][0], $listType);
-        $end = end($this->listStack);
-        $key = key($this->listStack);
-
-        // Not allowed to be shallower than initialDepth
-        if ( $depth < $this->initialDepth ) {
-            $depth = $this->initialDepth;
-        }
-
-        //------------------------------------------------------------------------
-        if ( $depth == $end[1] ) {
-
-            // Just another item in the list...
-            if ( $listType == $end[0] ) {
-                $this->listCalls[] = array('listcontent_close',array(),$call[2]);
-                $this->listCalls[] = array('listitem_close',array(),$call[2]);
-                $this->listCalls[] = array('listitem_open',array($depth-1),$call[2]);
-                $this->listCalls[] = array('listcontent_open',array(),$call[2]);
-
-                // new list item, update list stack's index into current listitem_open
-                $this->listStack[$key][2] = count($this->listCalls) - 2;
-
-            // Switched list type...
-            } else {
-
-                $this->listCalls[] = array('listcontent_close',array(),$call[2]);
-                $this->listCalls[] = array('listitem_close',array(),$call[2]);
-                $this->listCalls[] = array('list'.$end[0].'_close', array(), $call[2]);
-                $this->listCalls[] = array('list'.$listType.'_open', array(), $call[2]);
-                $this->listCalls[] = array('listitem_open', array($depth-1), $call[2]);
-                $this->listCalls[] = array('listcontent_open',array(),$call[2]);
-
-                array_pop($this->listStack);
-                $this->listStack[] = array($listType, $depth, count($this->listCalls) - 2);
-            }
-
-        //------------------------------------------------------------------------
-        // Getting deeper...
-        } else if ( $depth > $end[1] ) {
-
-            $this->listCalls[] = array('listcontent_close',array(),$call[2]);
-            $this->listCalls[] = array('list'.$listType.'_open', array(), $call[2]);
-            $this->listCalls[] = array('listitem_open', array($depth-1), $call[2]);
-            $this->listCalls[] = array('listcontent_open',array(),$call[2]);
-
-            // set the node/leaf state of this item's parent listitem_open to NODE
-            $this->listCalls[$this->listStack[$key][2]][1][1] = self::NODE;
-
-            $this->listStack[] = array($listType, $depth, count($this->listCalls) - 2);
-
-        //------------------------------------------------------------------------
-        // Getting shallower ( $depth < $end[1] )
-        } else {
-            $this->listCalls[] = array('listcontent_close',array(),$call[2]);
-            $this->listCalls[] = array('listitem_close',array(),$call[2]);
-            $this->listCalls[] = array('list'.$end[0].'_close',array(),$call[2]);
-
-            // Throw away the end - done
-            array_pop($this->listStack);
-
-            while (1) {
-                $end = end($this->listStack);
-                $key = key($this->listStack);
-
-                if ( $end[1] <= $depth ) {
-
-                    // Normalize depths
-                    $depth = $end[1];
-
-                    $this->listCalls[] = array('listitem_close',array(),$call[2]);
-
-                    if ( $end[0] == $listType ) {
-                        $this->listCalls[] = array('listitem_open',array($depth-1),$call[2]);
-                        $this->listCalls[] = array('listcontent_open',array(),$call[2]);
-
-                        // new list item, update list stack's index into current listitem_open
-                        $this->listStack[$key][2] = count($this->listCalls) - 2;
-
-                    } else {
-                        // Switching list type...
-                        $this->listCalls[] = array('list'.$end[0].'_close', array(), $call[2]);
-                        $this->listCalls[] = array('list'.$listType.'_open', array(), $call[2]);
-                        $this->listCalls[] = array('listitem_open', array($depth-1), $call[2]);
-                        $this->listCalls[] = array('listcontent_open',array(),$call[2]);
-
-                        array_pop($this->listStack);
-                        $this->listStack[] = array($listType, $depth, count($this->listCalls) - 2);
-                    }
-
-                    break;
-
-                // Haven't dropped down far enough yet.... ( $end[1] > $depth )
-                } else {
-
-                    $this->listCalls[] = array('listitem_close',array(),$call[2]);
-                    $this->listCalls[] = array('list'.$end[0].'_close',array(),$call[2]);
-
-                    array_pop($this->listStack);
-
-                }
-
-            }
-
-        }
-    }
-
-    //------------------------------------------------------------------------
-    function listContent($call) {
-        $this->listCalls[] = $call;
-    }
-
-    //------------------------------------------------------------------------
-    function interpretSyntax($match, & $type) {
-        if ( substr($match,-1) == '*' ) {
-            $type = 'u';
-        } else {
-            $type = 'o';
-        }
-        // Is the +1 needed? It used to be count(explode(...))
-        // but I don't think the number is seen outside this handler
-        return substr_count(str_replace("\t",'  ',$match), '  ') + 1;
-    }
-}
-
-//------------------------------------------------------------------------
-class Doku_Handler_Preformatted implements Doku_Handler_CallWriter_Interface {
-
-    var $CallWriter;
-
-    var $calls = array();
-    var $pos;
-    var $text ='';
-
-
-
-    function __construct(Doku_Handler_CallWriter_Interface $CallWriter) {
-        $this->CallWriter = $CallWriter;
-    }
-
-    function writeCall($call) {
-        $this->calls[] = $call;
-    }
-
-    // Probably not needed but just in case...
-    function writeCalls($calls) {
-        $this->calls = array_merge($this->calls, $calls);
-#        $this->CallWriter->writeCalls($this->calls);
-    }
-
-    function finalise() {
-        $last_call = end($this->calls);
-        $this->writeCall(array('preformatted_end',array(), $last_call[2]));
-
-        $this->process();
-        $this->CallWriter->finalise();
-        unset($this->CallWriter);
-    }
-
-    function process() {
-        foreach ( $this->calls as $call ) {
-            switch ($call[0]) {
-                case 'preformatted_start':
-                    $this->pos = $call[2];
-                break;
-                case 'preformatted_newline':
-                    $this->text .= "\n";
-                break;
-                case 'preformatted_content':
-                    $this->text .= $call[1][0];
-                break;
-                case 'preformatted_end':
-                    if (trim($this->text)) {
-                        $this->CallWriter->writeCall(array('preformatted',array($this->text),$this->pos));
-                    }
-                    // see FS#1699 & FS#1652, add 'eol' instructions to ensure proper triggering of following p_open
-                    $this->CallWriter->writeCall(array('eol',array(),$this->pos));
-                    $this->CallWriter->writeCall(array('eol',array(),$this->pos));
-                break;
-            }
-        }
-    }
-
-}
-
-//------------------------------------------------------------------------
-class Doku_Handler_Quote implements Doku_Handler_CallWriter_Interface {
-
-    var $CallWriter;
-
-    var $calls = array();
-
-    var $quoteCalls = array();
-
-    function __construct(Doku_Handler_CallWriter_Interface $CallWriter) {
-        $this->CallWriter = $CallWriter;
-    }
-
-    function writeCall($call) {
-        $this->calls[] = $call;
-    }
-
-    // Probably not needed but just in case...
-    function writeCalls($calls) {
-        $this->calls = array_merge($this->calls, $calls);
-    }
-
-    function finalise() {
-        $last_call = end($this->calls);
-        $this->writeCall(array('quote_end',array(), $last_call[2]));
-
-        $this->process();
-        $this->CallWriter->finalise();
-        unset($this->CallWriter);
-    }
-
-    function process() {
-
-        $quoteDepth = 1;
-
-        foreach ( $this->calls as $call ) {
-            switch ($call[0]) {
-
-                case 'quote_start':
-
-                    $this->quoteCalls[] = array('quote_open',array(),$call[2]);
-
-                case 'quote_newline':
-
-                    $quoteLength = $this->getDepth($call[1][0]);
-
-                    if ( $quoteLength > $quoteDepth ) {
-                        $quoteDiff = $quoteLength - $quoteDepth;
-                        for ( $i = 1; $i <= $quoteDiff; $i++ ) {
-                            $this->quoteCalls[] = array('quote_open',array(),$call[2]);
-                        }
-                    } else if ( $quoteLength < $quoteDepth ) {
-                        $quoteDiff = $quoteDepth - $quoteLength;
-                        for ( $i = 1; $i <= $quoteDiff; $i++ ) {
-                            $this->quoteCalls[] = array('quote_close',array(),$call[2]);
-                        }
-                    } else {
-                        if ($call[0] != 'quote_start') $this->quoteCalls[] = array('linebreak',array(),$call[2]);
-                    }
-
-                    $quoteDepth = $quoteLength;
-
-                break;
-
-                case 'quote_end':
-
-                    if ( $quoteDepth > 1 ) {
-                        $quoteDiff = $quoteDepth - 1;
-                        for ( $i = 1; $i <= $quoteDiff; $i++ ) {
-                            $this->quoteCalls[] = array('quote_close',array(),$call[2]);
-                        }
-                    }
-
-                    $this->quoteCalls[] = array('quote_close',array(),$call[2]);
-
-                    $this->CallWriter->writeCalls($this->quoteCalls);
-                break;
-
-                default:
-                    $this->quoteCalls[] = $call;
-                break;
-            }
-        }
-    }
-
-    function getDepth($marker) {
-        preg_match('/>{1,}/', $marker, $matches);
-        $quoteLength = strlen($matches[0]);
-        return $quoteLength;
-    }
-}
-
-//------------------------------------------------------------------------
-class Doku_Handler_Table implements Doku_Handler_CallWriter_Interface {
-
-    var $CallWriter;
-
-    var $calls = array();
-    var $tableCalls = array();
-    var $maxCols = 0;
-    var $maxRows = 1;
-    var $currentCols = 0;
-    var $firstCell = false;
-    var $lastCellType = 'tablecell';
-    var $inTableHead = true;
-    var $currentRow = array('tableheader' => 0, 'tablecell' => 0);
-    var $countTableHeadRows = 0;
-
-    function __construct(Doku_Handler_CallWriter_Interface $CallWriter) {
-        $this->CallWriter = $CallWriter;
-    }
-
-    function writeCall($call) {
-        $this->calls[] = $call;
-    }
-
-    // Probably not needed but just in case...
-    function writeCalls($calls) {
-        $this->calls = array_merge($this->calls, $calls);
-    }
-
-    function finalise() {
-        $last_call = end($this->calls);
-        $this->writeCall(array('table_end',array(), $last_call[2]));
-
-        $this->process();
-        $this->CallWriter->finalise();
-        unset($this->CallWriter);
-    }
-
-    //------------------------------------------------------------------------
-    function process() {
-        foreach ( $this->calls as $call ) {
-            switch ( $call[0] ) {
-                case 'table_start':
-                    $this->tableStart($call);
-                break;
-                case 'table_row':
-                    $this->tableRowClose($call);
-                    $this->tableRowOpen(array('tablerow_open',$call[1],$call[2]));
-                break;
-                case 'tableheader':
-                case 'tablecell':
-                    $this->tableCell($call);
-                break;
-                case 'table_end':
-                    $this->tableRowClose($call);
-                    $this->tableEnd($call);
-                break;
-                default:
-                    $this->tableDefault($call);
-                break;
-            }
-        }
-        $this->CallWriter->writeCalls($this->tableCalls);
-    }
-
-    function tableStart($call) {
-        $this->tableCalls[] = array('table_open',$call[1],$call[2]);
-        $this->tableCalls[] = array('tablerow_open',array(),$call[2]);
-        $this->firstCell = true;
-    }
-
-    function tableEnd($call) {
-        $this->tableCalls[] = array('table_close',$call[1],$call[2]);
-        $this->finalizeTable();
-    }
-
-    function tableRowOpen($call) {
-        $this->tableCalls[] = $call;
-        $this->currentCols = 0;
-        $this->firstCell = true;
-        $this->lastCellType = 'tablecell';
-        $this->maxRows++;
-        if ($this->inTableHead) {
-            $this->currentRow = array('tablecell' => 0, 'tableheader' => 0);
-        }
-    }
-
-    function tableRowClose($call) {
-        if ($this->inTableHead && ($this->inTableHead = $this->isTableHeadRow())) {
-            $this->countTableHeadRows++;
-        }
-        // Strip off final cell opening and anything after it
-        while ( $discard = array_pop($this->tableCalls ) ) {
-
-            if ( $discard[0] == 'tablecell_open' || $discard[0] == 'tableheader_open') {
-                break;
-            }
-            if (!empty($this->currentRow[$discard[0]])) {
-                $this->currentRow[$discard[0]]--;
-            }
-        }
-        $this->tableCalls[] = array('tablerow_close', array(), $call[2]);
-
-        if ( $this->currentCols > $this->maxCols ) {
-            $this->maxCols = $this->currentCols;
-        }
-    }
-
-    function isTableHeadRow() {
-        $td = $this->currentRow['tablecell'];
-        $th = $this->currentRow['tableheader'];
-
-        if (!$th || $td > 2) return false;
-        if (2*$td > $th) return false;
-
-        return true;
-    }
-
-    function tableCell($call) {
-        if ($this->inTableHead) {
-            $this->currentRow[$call[0]]++;
-        }
-        if ( !$this->firstCell ) {
-
-            // Increase the span
-            $lastCall = end($this->tableCalls);
-
-            // A cell call which follows an open cell means an empty cell so span
-            if ( $lastCall[0] == 'tablecell_open' || $lastCall[0] == 'tableheader_open' ) {
-                 $this->tableCalls[] = array('colspan',array(),$call[2]);
-
-            }
-
-            $this->tableCalls[] = array($this->lastCellType.'_close',array(),$call[2]);
-            $this->tableCalls[] = array($call[0].'_open',array(1,null,1),$call[2]);
-            $this->lastCellType = $call[0];
-
-        } else {
-
-            $this->tableCalls[] = array($call[0].'_open',array(1,null,1),$call[2]);
-            $this->lastCellType = $call[0];
-            $this->firstCell = false;
-
-        }
-
-        $this->currentCols++;
-    }
-
-    function tableDefault($call) {
-        $this->tableCalls[] = $call;
-    }
-
-    function finalizeTable() {
-
-        // Add the max cols and rows to the table opening
-        if ( $this->tableCalls[0][0] == 'table_open' ) {
-            // Adjust to num cols not num col delimeters
-            $this->tableCalls[0][1][] = $this->maxCols - 1;
-            $this->tableCalls[0][1][] = $this->maxRows;
-            $this->tableCalls[0][1][] = array_shift($this->tableCalls[0][1]);
-        } else {
-            trigger_error('First element in table call list is not table_open');
-        }
-
-        $lastRow = 0;
-        $lastCell = 0;
-        $cellKey = array();
-        $toDelete = array();
-
-        // if still in tableheader, then there can be no table header
-        // as all rows can't be within <THEAD>
-        if ($this->inTableHead) {
-            $this->inTableHead = false;
-            $this->countTableHeadRows = 0;
-        }
-
-        // Look for the colspan elements and increment the colspan on the
-        // previous non-empty opening cell. Once done, delete all the cells
-        // that contain colspans
-        for ($key = 0 ; $key < count($this->tableCalls) ; ++$key) {
-            $call = $this->tableCalls[$key];
-
-            switch ($call[0]) {
-                case 'table_open' :
-                    if($this->countTableHeadRows) {
-                        array_splice($this->tableCalls, $key+1, 0, array(
-                              array('tablethead_open', array(), $call[2]))
-                        );
-                    }
-                    break;
-
-                case 'tablerow_open':
-
-                    $lastRow++;
-                    $lastCell = 0;
-                    break;
-
-                case 'tablecell_open':
-                case 'tableheader_open':
-
-                    $lastCell++;
-                    $cellKey[$lastRow][$lastCell] = $key;
-                    break;
-
-                case 'table_align':
-
-                    $prev = in_array($this->tableCalls[$key-1][0], array('tablecell_open', 'tableheader_open'));
-                    $next = in_array($this->tableCalls[$key+1][0], array('tablecell_close', 'tableheader_close'));
-                    // If the cell is empty, align left
-                    if ($prev && $next) {
-                        $this->tableCalls[$key-1][1][1] = 'left';
-
-                    // If the previous element was a cell open, align right
-                    } elseif ($prev) {
-                        $this->tableCalls[$key-1][1][1] = 'right';
-
-                    // If the next element is the close of an element, align either center or left
-                    } elseif ( $next) {
-                        if ( $this->tableCalls[$cellKey[$lastRow][$lastCell]][1][1] == 'right' ) {
-                            $this->tableCalls[$cellKey[$lastRow][$lastCell]][1][1] = 'center';
-                        } else {
-                            $this->tableCalls[$cellKey[$lastRow][$lastCell]][1][1] = 'left';
-                        }
-
-                    }
-
-                    // Now convert the whitespace back to cdata
-                    $this->tableCalls[$key][0] = 'cdata';
-                    break;
-
-                case 'colspan':
-
-                    $this->tableCalls[$key-1][1][0] = false;
-
-                    for($i = $key-2; $i >= $cellKey[$lastRow][1]; $i--) {
-
-                        if ( $this->tableCalls[$i][0] == 'tablecell_open' || $this->tableCalls[$i][0] == 'tableheader_open' ) {
-
-                            if ( false !== $this->tableCalls[$i][1][0] ) {
-                                $this->tableCalls[$i][1][0]++;
-                                break;
-                            }
-
-                        }
-                    }
-
-                    $toDelete[] = $key-1;
-                    $toDelete[] = $key;
-                    $toDelete[] = $key+1;
-                    break;
-
-                case 'rowspan':
-
-                    if ( $this->tableCalls[$key-1][0] == 'cdata' ) {
-                        // ignore rowspan if previous call was cdata (text mixed with :::) we don't have to check next call as that wont match regex
-                        $this->tableCalls[$key][0] = 'cdata';
-
-                    } else {
-
-                        $spanning_cell = null;
-
-                        // can't cross thead/tbody boundary
-                        if (!$this->countTableHeadRows || ($lastRow-1 != $this->countTableHeadRows)) {
-                            for($i = $lastRow-1; $i > 0; $i--) {
-
-                                if ( $this->tableCalls[$cellKey[$i][$lastCell]][0] == 'tablecell_open' || $this->tableCalls[$cellKey[$i][$lastCell]][0] == 'tableheader_open' ) {
-
-                                    if ($this->tableCalls[$cellKey[$i][$lastCell]][1][2] >= $lastRow - $i) {
-                                        $spanning_cell = $i;
-                                        break;
-                                    }
-
-                                }
-                            }
-                        }
-                        if (is_null($spanning_cell)) {
-                            // No spanning cell found, so convert this cell to
-                            // an empty one to avoid broken tables
-                            $this->tableCalls[$key][0] = 'cdata';
-                            $this->tableCalls[$key][1][0] = '';
-                            continue;
-                        }
-                        $this->tableCalls[$cellKey[$spanning_cell][$lastCell]][1][2]++;
-
-                        $this->tableCalls[$key-1][1][2] = false;
-
-                        $toDelete[] = $key-1;
-                        $toDelete[] = $key;
-                        $toDelete[] = $key+1;
-                    }
-                    break;
-
-                case 'tablerow_close':
-
-                    // Fix broken tables by adding missing cells
-                    $moreCalls = array();
-                    while (++$lastCell < $this->maxCols) {
-                        $moreCalls[] = array('tablecell_open', array(1, null, 1), $call[2]);
-                        $moreCalls[] = array('cdata', array(''), $call[2]);
-                        $moreCalls[] = array('tablecell_close', array(), $call[2]);
-                    }
-                    $moreCallsLength = count($moreCalls);
-                    if($moreCallsLength) {
-                        array_splice($this->tableCalls, $key, 0, $moreCalls);
-                        $key += $moreCallsLength;
-                    }
-
-                    if($this->countTableHeadRows == $lastRow) {
-                        array_splice($this->tableCalls, $key+1, 0, array(
-                              array('tablethead_close', array(), $call[2])));
-                    }
-                    break;
-
-            }
-        }
-
-        // condense cdata
-        $cnt = count($this->tableCalls);
-        for( $key = 0; $key < $cnt; $key++){
-            if($this->tableCalls[$key][0] == 'cdata'){
-                $ckey = $key;
-                $key++;
-                while($this->tableCalls[$key][0] == 'cdata'){
-                    $this->tableCalls[$ckey][1][0] .= $this->tableCalls[$key][1][0];
-                    $toDelete[] = $key;
-                    $key++;
-                }
-                continue;
-            }
-        }
-
-        foreach ( $toDelete as $delete ) {
-            unset($this->tableCalls[$delete]);
-        }
-        $this->tableCalls = array_values($this->tableCalls);
-    }
-}
-
-
-/**
- * Handler for paragraphs
- *
- * @author Harry Fuecks <hfuecks@gmail.com>
- */
-class Doku_Handler_Block {
-    var $calls = array();
-    var $skipEol = false;
-    var $inParagraph = false;
-
-    // Blocks these should not be inside paragraphs
-    var $blockOpen = array(
-            'header',
-            'listu_open','listo_open','listitem_open','listcontent_open',
-            'table_open','tablerow_open','tablecell_open','tableheader_open','tablethead_open',
-            'quote_open',
-            'code','file','hr','preformatted','rss',
-            'htmlblock','phpblock',
-            'footnote_open',
-        );
-
-    var $blockClose = array(
-            'header',
-            'listu_close','listo_close','listitem_close','listcontent_close',
-            'table_close','tablerow_close','tablecell_close','tableheader_close','tablethead_close',
-            'quote_close',
-            'code','file','hr','preformatted','rss',
-            'htmlblock','phpblock',
-            'footnote_close',
-        );
-
-    // Stacks can contain paragraphs
-    var $stackOpen = array(
-        'section_open',
-        );
-
-    var $stackClose = array(
-        'section_close',
-        );
-
-
-    /**
-     * Constructor. Adds loaded syntax plugins to the block and stack
-     * arrays
-     *
-     * @author Andreas Gohr <andi@splitbrain.org>
-     */
-    function __construct(){
-        global $DOKU_PLUGINS;
-        //check if syntax plugins were loaded
-        if(empty($DOKU_PLUGINS['syntax'])) return;
-        foreach($DOKU_PLUGINS['syntax'] as $n => $p){
-            $ptype = $p->getPType();
-            if($ptype == 'block'){
-                $this->blockOpen[]  = 'plugin_'.$n;
-                $this->blockClose[] = 'plugin_'.$n;
-            }elseif($ptype == 'stack'){
-                $this->stackOpen[]  = 'plugin_'.$n;
-                $this->stackClose[] = 'plugin_'.$n;
-            }
-        }
-    }
-
-    function openParagraph($pos){
-        if ($this->inParagraph) return;
-        $this->calls[] = array('p_open',array(), $pos);
-        $this->inParagraph = true;
-        $this->skipEol = true;
-    }
-
-    /**
-     * Close a paragraph if needed
-     *
-     * 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;
-        // look back if there was any content - we don't want empty paragraphs
-        $content = '';
-        $ccount = count($this->calls);
-        for($i=$ccount-1; $i>=0; $i--){
-            if($this->calls[$i][0] == 'p_open'){
-                break;
-            }elseif($this->calls[$i][0] == 'cdata'){
-                $content .= $this->calls[$i][1][0];
-            }else{
-                $content = 'found markup';
-                break;
-            }
-        }
-
-        if(trim($content)==''){
-            //remove the whole paragraph
-            //array_splice($this->calls,$i); // <- this is much slower than the loop below
-            for($x=$ccount; $x>$i; $x--) array_pop($this->calls);
-        }else{
-            // remove ending linebreaks in the paragraph
-            $i=count($this->calls)-1;
-            if ($this->calls[$i][0] == 'cdata') $this->calls[$i][1][0] = rtrim($this->calls[$i][1][0],DOKU_PARSER_EOL);
-            $this->calls[] = array('p_close',array(), $pos);
-        }
-
-        $this->inParagraph = false;
-        $this->skipEol = true;
-    }
-
-    function addCall($call) {
-        $key = count($this->calls);
-        if ($key and ($call[0] == 'cdata') and ($this->calls[$key-1][0] == 'cdata')) {
-            $this->calls[$key-1][1][0] .= $call[1][0];
-        } else {
-            $this->calls[] = $call;
-        }
-    }
-
-    // simple version of addCall, without checking cdata
-    function storeCall($call) {
-        $this->calls[] = $call;
-    }
-
-    /**
-     * Processes the whole instruction stack to open and close paragraphs
-     *
-     * @author Harry Fuecks <hfuecks@gmail.com>
-     * @author Andreas Gohr <andi@splitbrain.org>
-     *
-     * @param array $calls
-     *
-     * @return array
-     */
-    function process($calls) {
-        // open first paragraph
-        $this->openParagraph(0);
-        foreach ( $calls as $key => $call ) {
-            $cname = $call[0];
-            if ($cname == 'plugin') {
-                $cname='plugin_'.$call[1][0];
-                $plugin = true;
-                $plugin_open = (($call[1][2] == DOKU_LEXER_ENTER) || ($call[1][2] == DOKU_LEXER_SPECIAL));
-                $plugin_close = (($call[1][2] == DOKU_LEXER_EXIT) || ($call[1][2] == DOKU_LEXER_SPECIAL));
-            } else {
-                $plugin = false;
-            }
-            /* stack */
-            if ( in_array($cname,$this->stackClose ) && (!$plugin || $plugin_close)) {
-                $this->closeParagraph($call[2]);
-                $this->storeCall($call);
-                $this->openParagraph($call[2]);
-                continue;
-            }
-            if ( in_array($cname,$this->stackOpen ) && (!$plugin || $plugin_open) ) {
-                $this->closeParagraph($call[2]);
-                $this->storeCall($call);
-                $this->openParagraph($call[2]);
-                continue;
-            }
-            /* block */
-            // If it's a substition it opens and closes at the same call.
-            // To make sure next paragraph is correctly started, let close go first.
-            if ( in_array($cname, $this->blockClose) && (!$plugin || $plugin_close)) {
-                $this->closeParagraph($call[2]);
-                $this->storeCall($call);
-                $this->openParagraph($call[2]);
-                continue;
-            }
-            if ( in_array($cname, $this->blockOpen) && (!$plugin || $plugin_open)) {
-                $this->closeParagraph($call[2]);
-                $this->storeCall($call);
-                continue;
-            }
-            /* eol */
-            if ( $cname == 'eol' ) {
-                // Check this isn't an eol instruction to skip...
-                if ( !$this->skipEol ) {
-                    // Next is EOL => double eol => mark as paragraph
-                    if ( isset($calls[$key+1]) && $calls[$key+1][0] == 'eol' ) {
-                        $this->closeParagraph($call[2]);
-                        $this->openParagraph($call[2]);
-                    } else {
-                        //if this is just a single eol make a space from it
-                        $this->addCall(array('cdata',array(DOKU_PARSER_EOL), $call[2]));
-                    }
-                }
-                continue;
-            }
-            /* normal */
-            $this->addCall($call);
-            $this->skipEol = false;
-        }
-        // close last paragraph
-        $call = end($this->calls);
-        $this->closeParagraph($call[2]);
-        return $this->calls;
-    }
-}
-
-//Setup VIM: ex: et ts=4 :
diff --git a/wiki/inc/parser/lexer.php b/wiki/inc/parser/lexer.php
deleted file mode 100644
index ba6a653..0000000
--- a/wiki/inc/parser/lexer.php
+++ /dev/null
@@ -1,614 +0,0 @@
-<?php
-/**
- * Author Markus Baker: http://www.lastcraft.com
- * Version adapted from Simple Test: http://sourceforge.net/projects/simpletest/
- * For an intro to the Lexer see:
- * https://web.archive.org/web/20120125041816/http://www.phppatterns.com/docs/develop/simple_test_lexer_notes
- * @author Marcus Baker
- * @package Doku
- * @subpackage Lexer
- * @version $Id: lexer.php,v 1.1 2005/03/23 23:14:09 harryf Exp $
- */
-
-/**
- * Init path constant
- */
-if(!defined('DOKU_INC')) die('meh.');
-
-/**#@+
- * lexer mode constant
- */
-define("DOKU_LEXER_ENTER", 1);
-define("DOKU_LEXER_MATCHED", 2);
-define("DOKU_LEXER_UNMATCHED", 3);
-define("DOKU_LEXER_EXIT", 4);
-define("DOKU_LEXER_SPECIAL", 5);
-/**#@-*/
-
-/**
- * Compounded regular expression. Any of
- * the contained patterns could match and
- * when one does it's label is returned.
- *
- * @package Doku
- * @subpackage Lexer
- */
-class Doku_LexerParallelRegex {
-    var $_patterns;
-    var $_labels;
-    var $_regex;
-    var $_case;
-
-    /**
-     * Constructor. Starts with no patterns.
-     *
-     * @param boolean $case    True for case sensitive, false
-     *                         for insensitive.
-     * @access public
-     */
-    function __construct($case) {
-        $this->_case = $case;
-        $this->_patterns = array();
-        $this->_labels = array();
-        $this->_regex = null;
-    }
-
-    /**
-     * Adds a pattern with an optional label.
-     *
-     * @param mixed       $pattern Perl style regex. Must be UTF-8
-     *                             encoded. If its a string, the (, )
-     *                             lose their meaning unless they
-     *                             form part of a lookahead or
-     *                             lookbehind assertation.
-     * @param bool|string $label   Label of regex to be returned
-     *                             on a match. Label must be ASCII
-     * @access public
-     */
-    function addPattern($pattern, $label = true) {
-        $count = count($this->_patterns);
-        $this->_patterns[$count] = $pattern;
-        $this->_labels[$count] = $label;
-        $this->_regex = null;
-    }
-
-    /**
-     * Attempts to match all patterns at once against a string.
-     *
-     * @param string $subject      String to match against.
-     * @param string $match        First matched portion of
-     *                             subject.
-     * @return boolean             True on success.
-     * @access public
-     */
-    function match($subject, &$match) {
-        if (count($this->_patterns) == 0) {
-            return false;
-        }
-        if (! preg_match($this->_getCompoundedRegex(), $subject, $matches)) {
-            $match = "";
-            return false;
-        }
-
-        $match = $matches[0];
-        $size = count($matches);
-        for ($i = 1; $i < $size; $i++) {
-            if ($matches[$i] && isset($this->_labels[$i - 1])) {
-                return $this->_labels[$i - 1];
-            }
-        }
-        return true;
-    }
-
-    /**
-     * Attempts to split the string against all patterns at once
-     *
-     * @param string $subject      String to match against.
-     * @param array $split         The split result: array containing, pre-match, match & post-match strings
-     * @return boolean             True on success.
-     * @access public
-     *
-     * @author Christopher Smith <chris@jalakai.co.uk>
-     */
-    function split($subject, &$split) {
-        if (count($this->_patterns) == 0) {
-            return false;
-        }
-
-        if (! preg_match($this->_getCompoundedRegex(), $subject, $matches)) {
-            if(function_exists('preg_last_error')){
-                $err = preg_last_error();
-                switch($err){
-                    case PREG_BACKTRACK_LIMIT_ERROR:
-                        msg('A PCRE backtrack error occured. Try to increase the pcre.backtrack_limit in php.ini',-1);
-                        break;
-                    case PREG_RECURSION_LIMIT_ERROR:
-                        msg('A PCRE recursion error occured. Try to increase the pcre.recursion_limit in php.ini',-1);
-                        break;
-                    case PREG_BAD_UTF8_ERROR:
-                        msg('A PCRE UTF-8 error occured. This might be caused by a faulty plugin',-1);
-                        break;
-                    case PREG_INTERNAL_ERROR:
-                        msg('A PCRE internal error occured. This might be caused by a faulty plugin',-1);
-                        break;
-                }
-            }
-
-            $split = array($subject, "", "");
-            return false;
-        }
-
-        $idx = count($matches)-2;
-        list($pre, $post) = preg_split($this->_patterns[$idx].$this->_getPerlMatchingFlags(), $subject, 2);
-        $split = array($pre, $matches[0], $post);
-
-        return isset($this->_labels[$idx]) ? $this->_labels[$idx] : true;
-    }
-
-    /**
-     * Compounds the patterns into a single
-     * regular expression separated with the
-     * "or" operator. Caches the regex.
-     * Will automatically escape (, ) and / tokens.
-     *
-     * @internal array $_patterns List of patterns in order.
-     * @return null|string
-     * @access private
-     */
-    function _getCompoundedRegex() {
-        if ($this->_regex == null) {
-            $cnt = count($this->_patterns);
-            for ($i = 0; $i < $cnt; $i++) {
-
-                /*
-                 * decompose the input pattern into "(", "(?", ")",
-                 * "[...]", "[]..]", "[^]..]", "[...[:...:]..]", "\x"...
-                 * elements.
-                 */
-                preg_match_all('/\\\\.|' .
-                               '\(\?|' .
-                               '[()]|' .
-                               '\[\^?\]?(?:\\\\.|\[:[^]]*:\]|[^]\\\\])*\]|' .
-                               '[^[()\\\\]+/', $this->_patterns[$i], $elts);
-
-                $pattern = "";
-                $level = 0;
-
-                foreach ($elts[0] as $elt) {
-                    /*
-                     * for "(", ")" remember the nesting level, add "\"
-                     * only to the non-"(?" ones.
-                     */
-
-                    switch($elt) {
-                        case '(':
-                            $pattern .= '\(';
-                            break;
-                        case ')':
-                            if ($level > 0)
-                                $level--; /* closing (? */
-                            else
-                                $pattern .= '\\';
-                            $pattern .= ')';
-                            break;
-                        case '(?':
-                            $level++;
-                            $pattern .= '(?';
-                            break;
-                        default:
-                            if (substr($elt, 0, 1) == '\\')
-                                $pattern .= $elt;
-                            else
-                                $pattern .= str_replace('/', '\/', $elt);
-                    }
-                }
-                $this->_patterns[$i] = "($pattern)";
-            }
-            $this->_regex = "/" . implode("|", $this->_patterns) . "/" . $this->_getPerlMatchingFlags();
-        }
-        return $this->_regex;
-    }
-
-    /**
-     * Accessor for perl regex mode flags to use.
-     * @return string       Perl regex flags.
-     * @access private
-     */
-    function _getPerlMatchingFlags() {
-        return ($this->_case ? "msS" : "msSi");
-    }
-}
-
-/**
- * States for a stack machine.
- * @package Lexer
- * @subpackage Lexer
- */
-class Doku_LexerStateStack {
-    var $_stack;
-
-    /**
-     * Constructor. Starts in named state.
-     * @param string $start        Starting state name.
-     * @access public
-     */
-    function __construct($start) {
-        $this->_stack = array($start);
-    }
-
-    /**
-     * Accessor for current state.
-     * @return string       State.
-     * @access public
-     */
-    function getCurrent() {
-        return $this->_stack[count($this->_stack) - 1];
-    }
-
-    /**
-     * Adds a state to the stack and sets it
-     * to be the current state.
-     * @param string $state        New state.
-     * @access public
-     */
-    function enter($state) {
-        array_push($this->_stack, $state);
-    }
-
-    /**
-     * Leaves the current state and reverts
-     * to the previous one.
-     * @return boolean    False if we drop off
-     *                    the bottom of the list.
-     * @access public
-     */
-    function leave() {
-        if (count($this->_stack) == 1) {
-            return false;
-        }
-        array_pop($this->_stack);
-        return true;
-    }
-}
-
-/**
- * Accepts text and breaks it into tokens.
- * Some optimisation to make the sure the
- * content is only scanned by the PHP regex
- * parser once. Lexer modes must not start
- * with leading underscores.
- * @package Doku
- * @subpackage Lexer
- */
-class Doku_Lexer {
-    var $_regexes;
-    var $_parser;
-    var $_mode;
-    var $_mode_handlers;
-    var $_case;
-
-    /**
-     * Sets up the lexer in case insensitive matching
-     * by default.
-     * @param Doku_Parser $parser  Handling strategy by
-     *                                 reference.
-     * @param string $start            Starting handler.
-     * @param boolean $case            True for case sensitive.
-     * @access public
-     */
-    function __construct($parser, $start = "accept", $case = false) {
-        $this->_case = $case;
-        /** @var Doku_LexerParallelRegex[] _regexes */
-        $this->_regexes = array();
-        $this->_parser = $parser;
-        $this->_mode = new Doku_LexerStateStack($start);
-        $this->_mode_handlers = array();
-    }
-
-    /**
-     * Adds a token search pattern for a particular
-     * parsing mode. The pattern does not change the
-     * current mode.
-     * @param string $pattern      Perl style regex, but ( and )
-     *                             lose the usual meaning.
-     * @param string $mode         Should only apply this
-     *                             pattern when dealing with
-     *                             this type of input.
-     * @access public
-     */
-    function addPattern($pattern, $mode = "accept") {
-        if (! isset($this->_regexes[$mode])) {
-            $this->_regexes[$mode] = new Doku_LexerParallelRegex($this->_case);
-        }
-        $this->_regexes[$mode]->addPattern($pattern);
-    }
-
-    /**
-     * Adds a pattern that will enter a new parsing
-     * mode. Useful for entering parenthesis, strings,
-     * tags, etc.
-     * @param string $pattern      Perl style regex, but ( and )
-     *                             lose the usual meaning.
-     * @param string $mode         Should only apply this
-     *                             pattern when dealing with
-     *                             this type of input.
-     * @param string $new_mode     Change parsing to this new
-     *                             nested mode.
-     * @access public
-     */
-    function addEntryPattern($pattern, $mode, $new_mode) {
-        if (! isset($this->_regexes[$mode])) {
-            $this->_regexes[$mode] = new Doku_LexerParallelRegex($this->_case);
-        }
-        $this->_regexes[$mode]->addPattern($pattern, $new_mode);
-    }
-
-    /**
-     * Adds a pattern that will exit the current mode
-     * and re-enter the previous one.
-     * @param string $pattern      Perl style regex, but ( and )
-     *                             lose the usual meaning.
-     * @param string $mode         Mode to leave.
-     * @access public
-     */
-    function addExitPattern($pattern, $mode) {
-        if (! isset($this->_regexes[$mode])) {
-            $this->_regexes[$mode] = new Doku_LexerParallelRegex($this->_case);
-        }
-        $this->_regexes[$mode]->addPattern($pattern, "__exit");
-    }
-
-    /**
-     * Adds a pattern that has a special mode. Acts as an entry
-     * and exit pattern in one go, effectively calling a special
-     * parser handler for this token only.
-     * @param string $pattern      Perl style regex, but ( and )
-     *                             lose the usual meaning.
-     * @param string $mode         Should only apply this
-     *                             pattern when dealing with
-     *                             this type of input.
-     * @param string $special      Use this mode for this one token.
-     * @access public
-     */
-    function addSpecialPattern($pattern, $mode, $special) {
-        if (! isset($this->_regexes[$mode])) {
-            $this->_regexes[$mode] = new Doku_LexerParallelRegex($this->_case);
-        }
-        $this->_regexes[$mode]->addPattern($pattern, "_$special");
-    }
-
-    /**
-     * Adds a mapping from a mode to another handler.
-     * @param string $mode        Mode to be remapped.
-     * @param string $handler     New target handler.
-     * @access public
-     */
-    function mapHandler($mode, $handler) {
-        $this->_mode_handlers[$mode] = $handler;
-    }
-
-    /**
-     * Splits the page text into tokens. Will fail
-     * if the handlers report an error or if no
-     * content is consumed. If successful then each
-     * unparsed and parsed token invokes a call to the
-     * held listener.
-     * @param string $raw        Raw HTML text.
-     * @return boolean           True on success, else false.
-     * @access public
-     */
-    function parse($raw) {
-        if (! isset($this->_parser)) {
-            return false;
-        }
-        $initialLength = strlen($raw);
-        $length = $initialLength;
-        $pos = 0;
-        while (is_array($parsed = $this->_reduce($raw))) {
-            list($unmatched, $matched, $mode) = $parsed;
-            $currentLength = strlen($raw);
-            $matchPos = $initialLength - $currentLength - strlen($matched);
-            if (! $this->_dispatchTokens($unmatched, $matched, $mode, $pos, $matchPos)) {
-                return false;
-            }
-            if ($currentLength == $length) {
-                return false;
-            }
-            $length = $currentLength;
-            $pos = $initialLength - $currentLength;
-        }
-        if (!$parsed) {
-            return false;
-        }
-        return $this->_invokeParser($raw, DOKU_LEXER_UNMATCHED, $pos);
-    }
-
-    /**
-     * Sends the matched token and any leading unmatched
-     * text to the parser changing the lexer to a new
-     * mode if one is listed.
-     * @param string $unmatched Unmatched leading portion.
-     * @param string $matched Actual token match.
-     * @param bool|string $mode Mode after match. A boolean
-     *                             false mode causes no change.
-     * @param int $initialPos
-     * @param int $matchPos
-     *                             Current byte index location in raw doc
-     *                             thats being parsed
-     * @return boolean             False if there was any error
-     *                             from the parser.
-     * @access private
-     */
-    function _dispatchTokens($unmatched, $matched, $mode = false, $initialPos, $matchPos) {
-        if (! $this->_invokeParser($unmatched, DOKU_LEXER_UNMATCHED, $initialPos) ){
-            return false;
-        }
-        if ($this->_isModeEnd($mode)) {
-            if (! $this->_invokeParser($matched, DOKU_LEXER_EXIT, $matchPos)) {
-                return false;
-            }
-            return $this->_mode->leave();
-        }
-        if ($this->_isSpecialMode($mode)) {
-            $this->_mode->enter($this->_decodeSpecial($mode));
-            if (! $this->_invokeParser($matched, DOKU_LEXER_SPECIAL, $matchPos)) {
-                return false;
-            }
-            return $this->_mode->leave();
-        }
-        if (is_string($mode)) {
-            $this->_mode->enter($mode);
-            return $this->_invokeParser($matched, DOKU_LEXER_ENTER, $matchPos);
-        }
-        return $this->_invokeParser($matched, DOKU_LEXER_MATCHED, $matchPos);
-    }
-
-    /**
-     * Tests to see if the new mode is actually to leave
-     * the current mode and pop an item from the matching
-     * mode stack.
-     * @param string $mode    Mode to test.
-     * @return boolean        True if this is the exit mode.
-     * @access private
-     */
-    function _isModeEnd($mode) {
-        return ($mode === "__exit");
-    }
-
-    /**
-     * Test to see if the mode is one where this mode
-     * is entered for this token only and automatically
-     * leaves immediately afterwoods.
-     * @param string $mode    Mode to test.
-     * @return boolean        True if this is the exit mode.
-     * @access private
-     */
-    function _isSpecialMode($mode) {
-        return (strncmp($mode, "_", 1) == 0);
-    }
-
-    /**
-     * Strips the magic underscore marking single token
-     * modes.
-     * @param string $mode    Mode to decode.
-     * @return string         Underlying mode name.
-     * @access private
-     */
-    function _decodeSpecial($mode) {
-        return substr($mode, 1);
-    }
-
-    /**
-     * Calls the parser method named after the current
-     * mode. Empty content will be ignored. The lexer
-     * has a parser handler for each mode in the lexer.
-     * @param string $content Text parsed.
-     * @param boolean $is_match Token is recognised rather
-     *                               than unparsed data.
-     * @param int $pos Current byte index location in raw doc
-     *                             thats being parsed
-     * @return bool
-     * @access private
-     */
-    function _invokeParser($content, $is_match, $pos) {
-        if (($content === "") || ($content === false)) {
-            return true;
-        }
-        $handler = $this->_mode->getCurrent();
-        if (isset($this->_mode_handlers[$handler])) {
-            $handler = $this->_mode_handlers[$handler];
-        }
-
-        // modes starting with plugin_ are all handled by the same
-        // handler but with an additional parameter
-        if(substr($handler,0,7)=='plugin_'){
-            list($handler,$plugin) = explode('_',$handler,2);
-            return $this->_parser->$handler($content, $is_match, $pos, $plugin);
-        }
-
-            return $this->_parser->$handler($content, $is_match, $pos);
-        }
-
-    /**
-     * Tries to match a chunk of text and if successful
-     * removes the recognised chunk and any leading
-     * unparsed data. Empty strings will not be matched.
-     * @param string $raw         The subject to parse. This is the
-     *                            content that will be eaten.
-     * @return array              Three item list of unparsed
-     *                            content followed by the
-     *                            recognised token and finally the
-     *                            action the parser is to take.
-     *                            True if no match, false if there
-     *                            is a parsing error.
-     * @access private
-     */
-    function _reduce(&$raw) {
-        if (! isset($this->_regexes[$this->_mode->getCurrent()])) {
-            return false;
-        }
-        if ($raw === "") {
-            return true;
-        }
-        if ($action = $this->_regexes[$this->_mode->getCurrent()]->split($raw, $split)) {
-            list($unparsed, $match, $raw) = $split;
-            return array($unparsed, $match, $action);
-        }
-        return true;
-    }
-}
-
-/**
- * Escapes regex characters other than (, ) and /
- *
- * @TODO
- *
- * @param string $str
- *
- * @return mixed
- */
-function Doku_Lexer_Escape($str) {
-    //$str = addslashes($str);
-    $chars = array(
-        '/\\\\/',
-        '/\./',
-        '/\+/',
-        '/\*/',
-        '/\?/',
-        '/\[/',
-        '/\^/',
-        '/\]/',
-        '/\$/',
-        '/\{/',
-        '/\}/',
-        '/\=/',
-        '/\!/',
-        '/\</',
-        '/\>/',
-        '/\|/',
-        '/\:/'
-        );
-
-    $escaped = array(
-        '\\\\\\\\',
-        '\.',
-        '\+',
-        '\*',
-        '\?',
-        '\[',
-        '\^',
-        '\]',
-        '\$',
-        '\{',
-        '\}',
-        '\=',
-        '\!',
-        '\<',
-        '\>',
-        '\|',
-        '\:'
-        );
-    return preg_replace($chars, $escaped, $str);
-}
-
-//Setup VIM: ex: et ts=4 sw=4 :
diff --git a/wiki/inc/parser/metadata.php b/wiki/inc/parser/metadata.php
deleted file mode 100644
index 9b1b5c9..0000000
--- a/wiki/inc/parser/metadata.php
+++ /dev/null
@@ -1,694 +0,0 @@
-<?php
-/**
- * Renderer for metadata
- *
- * @author Esther Brunner <wikidesign@gmail.com>
- */
-if(!defined('DOKU_INC')) die('meh.');
-
-if(!defined('DOKU_LF')) {
-    // Some whitespace to help View > Source
-    define ('DOKU_LF', "\n");
-}
-
-if(!defined('DOKU_TAB')) {
-    // Some whitespace to help View > Source
-    define ('DOKU_TAB', "\t");
-}
-
-/**
- * The MetaData Renderer
- *
- * Metadata is additional information about a DokuWiki page that gets extracted mainly from the page's content
- * but also it's own filesystem data (like the creation time). All metadata is stored in the fields $meta and
- * $persistent.
- *
- * Some simplified rendering to $doc is done to gather the page's (text-only) abstract.
- */
-class Doku_Renderer_metadata extends Doku_Renderer {
-    /** the approximate byte lenght to capture for the abstract */
-    const ABSTRACT_LEN = 250;
-
-    /** the maximum UTF8 character length for the abstract */
-    const ABSTRACT_MAX = 500;
-
-    /** @var array transient meta data, will be reset on each rendering */
-    public $meta = array();
-
-    /** @var array persistent meta data, will be kept until explicitly deleted */
-    public $persistent = array();
-
-    /** @var array the list of headers used to create unique link ids */
-    protected $headers = array();
-
-    /** @var string temporary $doc store */
-    protected $store = '';
-
-    /** @var string keeps the first image reference */
-    protected $firstimage = '';
-
-    /** @var bool determines if enough data for the abstract was collected, yet */
-    public $capture = true;
-
-    /** @var int number of bytes captured for abstract */
-    protected $captured = 0;
-
-    /**
-     * Returns the format produced by this renderer.
-     *
-     * @return string always 'metadata'
-     */
-    function getFormat() {
-        return 'metadata';
-    }
-
-    /**
-     * Initialize the document
-     *
-     * Sets up some of the persistent info about the page if it doesn't exist, yet.
-     */
-    function document_start() {
-        global $ID;
-
-        $this->headers = array();
-
-        // external pages are missing create date
-        if(!$this->persistent['date']['created']) {
-            $this->persistent['date']['created'] = filectime(wikiFN($ID));
-        }
-        if(!isset($this->persistent['user'])) {
-            $this->persistent['user'] = '';
-        }
-        if(!isset($this->persistent['creator'])) {
-            $this->persistent['creator'] = '';
-        }
-        // reset metadata to persistent values
-        $this->meta = $this->persistent;
-    }
-
-    /**
-     * Finalize the document
-     *
-     * Stores collected data in the metadata
-     */
-    function document_end() {
-        global $ID;
-
-        // store internal info in metadata (notoc,nocache)
-        $this->meta['internal'] = $this->info;
-
-        if(!isset($this->meta['description']['abstract'])) {
-            // cut off too long abstracts
-            $this->doc = trim($this->doc);
-            if(strlen($this->doc) > self::ABSTRACT_MAX) {
-                $this->doc = utf8_substr($this->doc, 0, self::ABSTRACT_MAX).'…';
-            }
-            $this->meta['description']['abstract'] = $this->doc;
-        }
-
-        $this->meta['relation']['firstimage'] = $this->firstimage;
-
-        if(!isset($this->meta['date']['modified'])) {
-            $this->meta['date']['modified'] = filemtime(wikiFN($ID));
-        }
-
-    }
-
-    /**
-     * Render plain text data
-     *
-     * This function takes care of the amount captured data and will stop capturing when
-     * enough abstract data is available
-     *
-     * @param $text
-     */
-    function cdata($text) {
-        if(!$this->capture) return;
-
-        $this->doc .= $text;
-
-        $this->captured += strlen($text);
-        if($this->captured > self::ABSTRACT_LEN) $this->capture = false;
-    }
-
-    /**
-     * Add an item to the TOC
-     *
-     * @param string $id       the hash link
-     * @param string $text     the text to display
-     * @param int    $level    the nesting level
-     */
-    function toc_additem($id, $text, $level) {
-        global $conf;
-
-        //only add items within configured levels
-        if($level >= $conf['toptoclevel'] && $level <= $conf['maxtoclevel']) {
-            // the TOC is one of our standard ul list arrays ;-)
-            $this->meta['description']['tableofcontents'][] = array(
-                'hid'   => $id,
-                'title' => $text,
-                'type'  => 'ul',
-                'level' => $level - $conf['toptoclevel'] + 1
-            );
-        }
-
-    }
-
-    /**
-     * Render a heading
-     *
-     * @param string $text  the text to display
-     * @param int    $level header level
-     * @param int    $pos   byte position in the original source
-     */
-    function header($text, $level, $pos) {
-        if(!isset($this->meta['title'])) $this->meta['title'] = $text;
-
-        // add the header to the TOC
-        $hid = $this->_headerToLink($text, true);
-        $this->toc_additem($hid, $text, $level);
-
-        // add to summary
-        $this->cdata(DOKU_LF.$text.DOKU_LF);
-    }
-
-    /**
-     * Open a paragraph
-     */
-    function p_open() {
-        $this->cdata(DOKU_LF);
-    }
-
-    /**
-     * Close a paragraph
-     */
-    function p_close() {
-        $this->cdata(DOKU_LF);
-    }
-
-    /**
-     * Create a line break
-     */
-    function linebreak() {
-        $this->cdata(DOKU_LF);
-    }
-
-    /**
-     * Create a horizontal line
-     */
-    function hr() {
-        $this->cdata(DOKU_LF.'----------'.DOKU_LF);
-    }
-
-    /**
-     * Callback for footnote start syntax
-     *
-     * All following content will go to the footnote instead of
-     * the document. To achieve this the previous rendered content
-     * is moved to $store and $doc is cleared
-     *
-     * @author Andreas Gohr <andi@splitbrain.org>
-     */
-    function footnote_open() {
-        if($this->capture) {
-            // move current content to store and record footnote
-            $this->store = $this->doc;
-            $this->doc   = '';
-        }
-    }
-
-    /**
-     * Callback for footnote end syntax
-     *
-     * All rendered content is moved to the $footnotes array and the old
-     * content is restored from $store again
-     *
-     * @author Andreas Gohr
-     */
-    function footnote_close() {
-        if($this->capture) {
-            // restore old content
-            $this->doc   = $this->store;
-            $this->store = '';
-        }
-    }
-
-    /**
-     * Open an unordered list
-     */
-    function listu_open() {
-        $this->cdata(DOKU_LF);
-    }
-
-    /**
-     * Open an ordered list
-     */
-    function listo_open() {
-        $this->cdata(DOKU_LF);
-    }
-
-    /**
-     * Open a list item
-     *
-     * @param int $level the nesting level
-     * @param bool $node true when a node; false when a leaf
-     */
-    function listitem_open($level,$node=false) {
-        $this->cdata(str_repeat(DOKU_TAB, $level).'* ');
-    }
-
-    /**
-     * Close a list item
-     */
-    function listitem_close() {
-        $this->cdata(DOKU_LF);
-    }
-
-    /**
-     * Output preformatted text
-     *
-     * @param string $text
-     */
-    function preformatted($text) {
-        $this->cdata($text);
-    }
-
-    /**
-     * Start a block quote
-     */
-    function quote_open() {
-        $this->cdata(DOKU_LF.DOKU_TAB.'"');
-    }
-
-    /**
-     * Stop a block quote
-     */
-    function quote_close() {
-        $this->cdata('"'.DOKU_LF);
-    }
-
-    /**
-     * Display text as file content, optionally syntax highlighted
-     *
-     * @param string $text text to show
-     * @param string $lang programming language to use for syntax highlighting
-     * @param string $file file path label
-     */
-    function file($text, $lang = null, $file = null) {
-        $this->cdata(DOKU_LF.$text.DOKU_LF);
-    }
-
-    /**
-     * Display text as code content, optionally syntax highlighted
-     *
-     * @param string $text     text to show
-     * @param string $language programming language to use for syntax highlighting
-     * @param string $file     file path label
-     */
-    function code($text, $language = null, $file = null) {
-        $this->cdata(DOKU_LF.$text.DOKU_LF);
-    }
-
-    /**
-     * Format an acronym
-     *
-     * Uses $this->acronyms
-     *
-     * @param string $acronym
-     */
-    function acronym($acronym) {
-        $this->cdata($acronym);
-    }
-
-    /**
-     * Format a smiley
-     *
-     * Uses $this->smiley
-     *
-     * @param string $smiley
-     */
-    function smiley($smiley) {
-        $this->cdata($smiley);
-    }
-
-    /**
-     * Format an entity
-     *
-     * Entities are basically small text replacements
-     *
-     * Uses $this->entities
-     *
-     * @param string $entity
-     */
-    function entity($entity) {
-        $this->cdata($entity);
-    }
-
-    /**
-     * Typographically format a multiply sign
-     *
-     * Example: ($x=640, $y=480) should result in "640×480"
-     *
-     * @param string|int $x first value
-     * @param string|int $y second value
-     */
-    function multiplyentity($x, $y) {
-        $this->cdata($x.'×'.$y);
-    }
-
-    /**
-     * Render an opening single quote char (language specific)
-     */
-    function singlequoteopening() {
-        global $lang;
-        $this->cdata($lang['singlequoteopening']);
-    }
-
-    /**
-     * Render a closing single quote char (language specific)
-     */
-    function singlequoteclosing() {
-        global $lang;
-        $this->cdata($lang['singlequoteclosing']);
-    }
-
-    /**
-     * Render an apostrophe char (language specific)
-     */
-    function apostrophe() {
-        global $lang;
-        $this->cdata($lang['apostrophe']);
-    }
-
-    /**
-     * Render an opening double quote char (language specific)
-     */
-    function doublequoteopening() {
-        global $lang;
-        $this->cdata($lang['doublequoteopening']);
-    }
-
-    /**
-     * Render an closinging double quote char (language specific)
-     */
-    function doublequoteclosing() {
-        global $lang;
-        $this->cdata($lang['doublequoteclosing']);
-    }
-
-    /**
-     * Render a CamelCase link
-     *
-     * @param string $link The link name
-     * @see http://en.wikipedia.org/wiki/CamelCase
-     */
-    function camelcaselink($link) {
-        $this->internallink($link, $link);
-    }
-
-    /**
-     * Render a page local link
-     *
-     * @param string $hash hash link identifier
-     * @param string $name name for the link
-     */
-    function locallink($hash, $name = null) {
-        if(is_array($name)) {
-            $this->_firstimage($name['src']);
-            if($name['type'] == 'internalmedia') $this->_recordMediaUsage($name['src']);
-        }
-    }
-
-    /**
-     * keep track of internal links in $this->meta['relation']['references']
-     *
-     * @param string            $id   page ID to link to. eg. 'wiki:syntax'
-     * @param string|array|null $name name for the link, array for media file
-     */
-    function internallink($id, $name = null) {
-        global $ID;
-
-        if(is_array($name)) {
-            $this->_firstimage($name['src']);
-            if($name['type'] == 'internalmedia') $this->_recordMediaUsage($name['src']);
-        }
-
-        $parts = explode('?', $id, 2);
-        if(count($parts) === 2) {
-            $id = $parts[0];
-        }
-
-        $default = $this->_simpleTitle($id);
-
-        // first resolve and clean up the $id
-        resolve_pageid(getNS($ID), $id, $exists);
-        @list($page) = explode('#', $id, 2);
-
-        // set metadata
-        $this->meta['relation']['references'][$page] = $exists;
-        // $data = array('relation' => array('isreferencedby' => array($ID => true)));
-        // p_set_metadata($id, $data);
-
-        // add link title to summary
-        if($this->capture) {
-            $name = $this->_getLinkTitle($name, $default, $id);
-            $this->doc .= $name;
-        }
-    }
-
-    /**
-     * Render an external link
-     *
-     * @param string            $url  full URL with scheme
-     * @param string|array|null $name name for the link, array for media file
-     */
-    function externallink($url, $name = null) {
-        if(is_array($name)) {
-            $this->_firstimage($name['src']);
-            if($name['type'] == 'internalmedia') $this->_recordMediaUsage($name['src']);
-        }
-
-        if($this->capture) {
-            $this->doc .= $this->_getLinkTitle($name, '<'.$url.'>');
-        }
-    }
-
-    /**
-     * Render an interwiki link
-     *
-     * You may want to use $this->_resolveInterWiki() here
-     *
-     * @param string       $match     original link - probably not much use
-     * @param string|array $name      name for the link, array for media file
-     * @param string       $wikiName  indentifier (shortcut) for the remote wiki
-     * @param string       $wikiUri   the fragment parsed from the original link
-     */
-    function interwikilink($match, $name = null, $wikiName, $wikiUri) {
-        if(is_array($name)) {
-            $this->_firstimage($name['src']);
-            if($name['type'] == 'internalmedia') $this->_recordMediaUsage($name['src']);
-        }
-
-        if($this->capture) {
-            list($wikiUri) = explode('#', $wikiUri, 2);
-            $name = $this->_getLinkTitle($name, $wikiUri);
-            $this->doc .= $name;
-        }
-    }
-
-    /**
-     * Link to windows share
-     *
-     * @param string       $url  the link
-     * @param string|array $name name for the link, array for media file
-     */
-    function windowssharelink($url, $name = null) {
-        if(is_array($name)) {
-            $this->_firstimage($name['src']);
-            if($name['type'] == 'internalmedia') $this->_recordMediaUsage($name['src']);
-        }
-
-        if($this->capture) {
-            if($name) $this->doc .= $name;
-            else $this->doc .= '<'.$url.'>';
-        }
-    }
-
-    /**
-     * Render a linked E-Mail Address
-     *
-     * Should honor $conf['mailguard'] setting
-     *
-     * @param string       $address Email-Address
-     * @param string|array $name    name for the link, array for media file
-     */
-    function emaillink($address, $name = null) {
-        if(is_array($name)) {
-            $this->_firstimage($name['src']);
-            if($name['type'] == 'internalmedia') $this->_recordMediaUsage($name['src']);
-        }
-
-        if($this->capture) {
-            if($name) $this->doc .= $name;
-            else $this->doc .= '<'.$address.'>';
-        }
-    }
-
-    /**
-     * Render an internal media file
-     *
-     * @param string $src     media ID
-     * @param string $title   descriptive text
-     * @param string $align   left|center|right
-     * @param int    $width   width of media in pixel
-     * @param int    $height  height of media in pixel
-     * @param string $cache   cache|recache|nocache
-     * @param string $linking linkonly|detail|nolink
-     */
-    function internalmedia($src, $title = null, $align = null, $width = null,
-                           $height = null, $cache = null, $linking = null) {
-        if($this->capture && $title) $this->doc .= '['.$title.']';
-        $this->_firstimage($src);
-        $this->_recordMediaUsage($src);
-    }
-
-    /**
-     * Render an external media file
-     *
-     * @param string $src     full media URL
-     * @param string $title   descriptive text
-     * @param string $align   left|center|right
-     * @param int    $width   width of media in pixel
-     * @param int    $height  height of media in pixel
-     * @param string $cache   cache|recache|nocache
-     * @param string $linking linkonly|detail|nolink
-     */
-    function externalmedia($src, $title = null, $align = null, $width = null,
-                           $height = null, $cache = null, $linking = null) {
-        if($this->capture && $title) $this->doc .= '['.$title.']';
-        $this->_firstimage($src);
-    }
-
-    /**
-     * Render the output of an RSS feed
-     *
-     * @param string $url    URL of the feed
-     * @param array  $params Finetuning of the output
-     */
-    function rss($url, $params) {
-        $this->meta['relation']['haspart'][$url] = true;
-
-        $this->meta['date']['valid']['age'] =
-            isset($this->meta['date']['valid']['age']) ?
-                min($this->meta['date']['valid']['age'], $params['refresh']) :
-                $params['refresh'];
-    }
-
-    #region Utils
-
-    /**
-     * Removes any Namespace from the given name but keeps
-     * casing and special chars
-     *
-     * @author Andreas Gohr <andi@splitbrain.org>
-     *
-     * @param string $name
-     *
-     * @return mixed|string
-     */
-    function _simpleTitle($name) {
-        global $conf;
-
-        if(is_array($name)) return '';
-
-        if($conf['useslash']) {
-            $nssep = '[:;/]';
-        } else {
-            $nssep = '[:;]';
-        }
-        $name = preg_replace('!.*'.$nssep.'!', '', $name);
-        //if there is a hash we use the anchor name only
-        $name = preg_replace('!.*#!', '', $name);
-        return $name;
-    }
-
-    /**
-     * Creates a linkid from a headline
-     *
-     * @author Andreas Gohr <andi@splitbrain.org>
-     * @param string  $title   The headline title
-     * @param boolean $create  Create a new unique ID?
-     * @return string
-     */
-    function _headerToLink($title, $create = false) {
-        if($create) {
-            return sectionID($title, $this->headers);
-        } else {
-            $check = false;
-            return sectionID($title, $check);
-        }
-    }
-
-    /**
-     * Construct a title and handle images in titles
-     *
-     * @author Harry Fuecks <hfuecks@gmail.com>
-     * @param string|array|null $title    either string title or media array
-     * @param string            $default  default title if nothing else is found
-     * @param null|string       $id       linked page id (used to extract title from first heading)
-     * @return string title text
-     */
-    function _getLinkTitle($title, $default, $id = null) {
-        if(is_array($title)) {
-            if($title['title']) {
-                return '['.$title['title'].']';
-            } else {
-                return $default;
-            }
-        } else if(is_null($title) || trim($title) == '') {
-            if(useHeading('content') && $id) {
-                $heading = p_get_first_heading($id, METADATA_DONT_RENDER);
-                if($heading) return $heading;
-            }
-            return $default;
-        } else {
-            return $title;
-        }
-    }
-
-    /**
-     * Remember first image
-     *
-     * @param string $src image URL or ID
-     */
-    function _firstimage($src) {
-        if($this->firstimage) return;
-        global $ID;
-
-        list($src) = explode('#', $src, 2);
-        if(!media_isexternal($src)) {
-            resolve_mediaid(getNS($ID), $src, $exists);
-        }
-        if(preg_match('/.(jpe?g|gif|png)$/i', $src)) {
-            $this->firstimage = $src;
-        }
-    }
-
-    /**
-     * Store list of used media files in metadata
-     *
-     * @param string $src media ID
-     */
-    function _recordMediaUsage($src) {
-        global $ID;
-
-        list ($src) = explode('#', $src, 2);
-        if(media_isexternal($src)) return;
-        resolve_mediaid(getNS($ID), $src, $exists);
-        $this->meta['relation']['media'][$src] = $exists;
-    }
-
-    #endregion
-}
-
-//Setup VIM: ex: et ts=4 :
diff --git a/wiki/inc/parser/parser.php b/wiki/inc/parser/parser.php
deleted file mode 100644
index 8cff2b8..0000000
--- a/wiki/inc/parser/parser.php
+++ /dev/null
@@ -1,1034 +0,0 @@
-<?php
-if(!defined('DOKU_INC')) die('meh.');
-require_once DOKU_INC . 'inc/parser/lexer.php';
-require_once DOKU_INC . 'inc/parser/handler.php';
-
-
-/**
- * Define various types of modes used by the parser - they are used to
- * populate the list of modes another mode accepts
- */
-global $PARSER_MODES;
-$PARSER_MODES = array(
-    // containers are complex modes that can contain many other modes
-    // hr breaks the principle but they shouldn't be used in tables / lists
-    // so they are put here
-    'container'    => array('listblock','table','quote','hr'),
-
-    // some mode are allowed inside the base mode only
-    'baseonly'     => array('header'),
-
-    // modes for styling text -- footnote behaves similar to styling
-    'formatting'   => array('strong', 'emphasis', 'underline', 'monospace',
-                            'subscript', 'superscript', 'deleted', 'footnote'),
-
-    // modes where the token is simply replaced - they can not contain any
-    // other modes
-    'substition'   => array('acronym','smiley','wordblock','entity',
-                            'camelcaselink', 'internallink','media',
-                            'externallink','linebreak','emaillink',
-                            'windowssharelink','filelink','notoc',
-                            'nocache','multiplyentity','quotes','rss'),
-
-    // modes which have a start and end token but inside which
-    // no other modes should be applied
-    'protected'    => array('preformatted','code','file','php','html','htmlblock','phpblock'),
-
-    // inside this mode no wiki markup should be applied but lineendings
-    // and whitespace isn't preserved
-    'disabled'     => array('unformatted'),
-
-    // used to mark paragraph boundaries
-    'paragraphs'   => array('eol')
-);
-
-//-------------------------------------------------------------------
-
-/**
- * Sets up the Lexer with modes and points it to the Handler
- * For an intro to the Lexer see: wiki:parser
- */
-class Doku_Parser {
-
-    var $Handler;
-
-    /**
-     * @var Doku_Lexer $Lexer
-     */
-    var $Lexer;
-
-    var $modes = array();
-
-    var $connected = false;
-
-    /**
-     * @param Doku_Parser_Mode_base $BaseMode
-     */
-    function addBaseMode($BaseMode) {
-        $this->modes['base'] = $BaseMode;
-        if ( !$this->Lexer ) {
-            $this->Lexer = new Doku_Lexer($this->Handler,'base', true);
-        }
-        $this->modes['base']->Lexer = $this->Lexer;
-    }
-
-    /**
-     * 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']) ) {
-            $this->addBaseMode(new Doku_Parser_Mode_base());
-        }
-        $Mode->Lexer = $this->Lexer;
-        $this->modes[$name] = $Mode;
-    }
-
-    function connectModes() {
-
-        if ( $this->connected ) {
-            return;
-        }
-
-        foreach ( array_keys($this->modes) as $mode ) {
-
-            // Base isn't connected to anything
-            if ( $mode == 'base' ) {
-                continue;
-            }
-            $this->modes[$mode]->preConnect();
-
-            foreach ( array_keys($this->modes) as $cm ) {
-
-                if ( $this->modes[$cm]->accepts($mode) ) {
-                    $this->modes[$mode]->connectTo($cm);
-                }
-
-            }
-
-            $this->modes[$mode]->postConnect();
-        }
-
-        $this->connected = true;
-    }
-
-    function parse($doc) {
-        if ( $this->Lexer ) {
-            $this->connectModes();
-            // Normalize CRs and pad doc
-            $doc = "\n".str_replace("\r\n","\n",$doc)."\n";
-            $this->Lexer->parse($doc);
-            $this->Handler->_finalize();
-            return $this->Handler->calls;
-        } else {
-            return false;
-        }
-    }
-
-}
-
-//-------------------------------------------------------------------
-
-/**
- * Class Doku_Parser_Mode_Interface
- *
- * Defines a mode (syntax component) in the Parser
- */
-interface Doku_Parser_Mode_Interface {
-    /**
-     * returns a number used to determine in which order modes are added
-     */
-    public function getSort();
-
-    /**
-     * Called before any calls to connectTo
-     * @return void
-     */
-    function preConnect();
-
-    /**
-     * Connects the mode
-     *
-     * @param string $mode
-     * @return void
-     */
-    function connectTo($mode);
-
-    /**
-     * Called after all calls to connectTo
-     * @return void
-     */
-    function postConnect();
-
-    /**
-     * Check if given mode is accepted inside this mode
-     *
-     * @param string $mode
-     * @return bool
-     */
-    function accepts($mode);
-}
-
-/**
- * This class and all the subclasses below are used to reduce the effort required to register
- * modes with the Lexer.
- *
- * @author Harry Fuecks <hfuecks@gmail.com>
- */
-class Doku_Parser_Mode implements Doku_Parser_Mode_Interface {
-    /**
-     * @var Doku_Lexer $Lexer
-     */
-    var $Lexer;
-    var $allowedModes = array();
-
-    function getSort() {
-        trigger_error('getSort() not implemented in '.get_class($this), E_USER_WARNING);
-    }
-
-    function preConnect() {}
-    function connectTo($mode) {}
-    function postConnect() {}
-    function accepts($mode) {
-        return in_array($mode, (array) $this->allowedModes );
-    }
-}
-
-/**
- * Basically the same as Doku_Parser_Mode but extends from DokuWiki_Plugin
- *
- * Adds additional functions to syntax plugins
- */
-class Doku_Parser_Mode_Plugin extends DokuWiki_Plugin implements Doku_Parser_Mode_Interface {
-    /**
-     * @var Doku_Lexer $Lexer
-     */
-    var $Lexer;
-    var $allowedModes = array();
-
-    /**
-     * Sort for applying this mode
-     *
-     * @return int
-     */
-    function getSort() {
-        trigger_error('getSort() not implemented in '.get_class($this), E_USER_WARNING);
-    }
-
-    function preConnect() {}
-    function connectTo($mode) {}
-    function postConnect() {}
-    function accepts($mode) {
-        return in_array($mode, (array) $this->allowedModes );
-    }
-}
-
-//-------------------------------------------------------------------
-class Doku_Parser_Mode_base extends Doku_Parser_Mode {
-
-    function __construct() {
-        global $PARSER_MODES;
-
-        $this->allowedModes = array_merge (
-                $PARSER_MODES['container'],
-                $PARSER_MODES['baseonly'],
-                $PARSER_MODES['paragraphs'],
-                $PARSER_MODES['formatting'],
-                $PARSER_MODES['substition'],
-                $PARSER_MODES['protected'],
-                $PARSER_MODES['disabled']
-            );
-    }
-
-    function getSort() {
-        return 0;
-    }
-}
-
-//-------------------------------------------------------------------
-class Doku_Parser_Mode_footnote extends Doku_Parser_Mode {
-
-    function __construct() {
-        global $PARSER_MODES;
-
-        $this->allowedModes = array_merge (
-                $PARSER_MODES['container'],
-                $PARSER_MODES['formatting'],
-                $PARSER_MODES['substition'],
-                $PARSER_MODES['protected'],
-                $PARSER_MODES['disabled']
-            );
-
-        unset($this->allowedModes[array_search('footnote', $this->allowedModes)]);
-    }
-
-    function connectTo($mode) {
-        $this->Lexer->addEntryPattern(
-            '\x28\x28(?=.*\x29\x29)',$mode,'footnote'
-            );
-    }
-
-    function postConnect() {
-        $this->Lexer->addExitPattern(
-            '\x29\x29','footnote'
-            );
-    }
-
-    function getSort() {
-        return 150;
-    }
-}
-
-//-------------------------------------------------------------------
-class Doku_Parser_Mode_header extends Doku_Parser_Mode {
-
-    function connectTo($mode) {
-        //we're not picky about the closing ones, two are enough
-        $this->Lexer->addSpecialPattern(
-                            '[ \t]*={2,}[^\n]+={2,}[ \t]*(?=\n)',
-                            $mode,
-                            'header'
-                        );
-    }
-
-    function getSort() {
-        return 50;
-    }
-}
-
-//-------------------------------------------------------------------
-class Doku_Parser_Mode_notoc extends Doku_Parser_Mode {
-
-    function connectTo($mode) {
-        $this->Lexer->addSpecialPattern('~~NOTOC~~',$mode,'notoc');
-    }
-
-    function getSort() {
-        return 30;
-    }
-}
-
-//-------------------------------------------------------------------
-class Doku_Parser_Mode_nocache extends Doku_Parser_Mode {
-
-    function connectTo($mode) {
-        $this->Lexer->addSpecialPattern('~~NOCACHE~~',$mode,'nocache');
-    }
-
-    function getSort() {
-        return 40;
-    }
-}
-
-//-------------------------------------------------------------------
-class Doku_Parser_Mode_linebreak extends Doku_Parser_Mode {
-
-    function connectTo($mode) {
-        $this->Lexer->addSpecialPattern('\x5C{2}(?:[ \t]|(?=\n))',$mode,'linebreak');
-    }
-
-    function getSort() {
-        return 140;
-    }
-}
-
-//-------------------------------------------------------------------
-class Doku_Parser_Mode_eol extends Doku_Parser_Mode {
-
-    function connectTo($mode) {
-        $badModes = array('listblock','table');
-        if ( in_array($mode, $badModes) ) {
-            return;
-        }
-        // see FS#1652, pattern extended to swallow preceding whitespace to avoid issues with lines that only contain whitespace
-        $this->Lexer->addSpecialPattern('(?:^[ \t]*)?\n',$mode,'eol');
-    }
-
-    function getSort() {
-        return 370;
-    }
-}
-
-//-------------------------------------------------------------------
-class Doku_Parser_Mode_hr extends Doku_Parser_Mode {
-
-    function connectTo($mode) {
-        $this->Lexer->addSpecialPattern('\n[ \t]*-{4,}[ \t]*(?=\n)',$mode,'hr');
-    }
-
-    function getSort() {
-        return 160;
-    }
-}
-
-//-------------------------------------------------------------------
-/**
- * This class sets the markup for bold (=strong),
- * italic (=emphasis), underline etc.
- */
-class Doku_Parser_Mode_formatting extends Doku_Parser_Mode {
-    var $type;
-
-    var $formatting = array (
-        'strong' => array (
-            'entry'=>'\*\*(?=.*\*\*)',
-            'exit'=>'\*\*',
-            'sort'=>70
-            ),
-
-        'emphasis'=> array (
-            'entry'=>'//(?=[^\x00]*[^:])', //hack for bugs #384 #763 #1468
-            'exit'=>'//',
-            'sort'=>80
-            ),
-
-        'underline'=> array (
-            'entry'=>'__(?=.*__)',
-            'exit'=>'__',
-            'sort'=>90
-            ),
-
-        'monospace'=> array (
-            'entry'=>'\x27\x27(?=.*\x27\x27)',
-            'exit'=>'\x27\x27',
-            'sort'=>100
-            ),
-
-        'subscript'=> array (
-            'entry'=>'<sub>(?=.*</sub>)',
-            'exit'=>'</sub>',
-            'sort'=>110
-            ),
-
-        'superscript'=> array (
-            'entry'=>'<sup>(?=.*</sup>)',
-            'exit'=>'</sup>',
-            'sort'=>120
-            ),
-
-        'deleted'=> array (
-            'entry'=>'<del>(?=.*</del>)',
-            'exit'=>'</del>',
-            'sort'=>130
-            ),
-        );
-
-    /**
-     * @param string $type
-     */
-    function __construct($type) {
-        global $PARSER_MODES;
-
-        if ( !array_key_exists($type, $this->formatting) ) {
-            trigger_error('Invalid formatting type '.$type, E_USER_WARNING);
-        }
-
-        $this->type = $type;
-
-        // formatting may contain other formatting but not it self
-        $modes = $PARSER_MODES['formatting'];
-        $key = array_search($type, $modes);
-        if ( is_int($key) ) {
-            unset($modes[$key]);
-        }
-
-        $this->allowedModes = array_merge (
-                $modes,
-                $PARSER_MODES['substition'],
-                $PARSER_MODES['disabled']
-            );
-    }
-
-    function connectTo($mode) {
-
-        // Can't nest formatting in itself
-        if ( $mode == $this->type ) {
-            return;
-        }
-
-        $this->Lexer->addEntryPattern(
-                $this->formatting[$this->type]['entry'],
-                $mode,
-                $this->type
-            );
-    }
-
-    function postConnect() {
-
-        $this->Lexer->addExitPattern(
-            $this->formatting[$this->type]['exit'],
-            $this->type
-            );
-
-    }
-
-    function getSort() {
-        return $this->formatting[$this->type]['sort'];
-    }
-}
-
-//-------------------------------------------------------------------
-class Doku_Parser_Mode_listblock extends Doku_Parser_Mode {
-
-    function __construct() {
-        global $PARSER_MODES;
-
-        $this->allowedModes = array_merge (
-                $PARSER_MODES['formatting'],
-                $PARSER_MODES['substition'],
-                $PARSER_MODES['disabled'],
-                $PARSER_MODES['protected'] #XXX new
-            );
-
-    //    $this->allowedModes[] = 'footnote';
-    }
-
-    function connectTo($mode) {
-        $this->Lexer->addEntryPattern('[ \t]*\n {2,}[\-\*]',$mode,'listblock');
-        $this->Lexer->addEntryPattern('[ \t]*\n\t{1,}[\-\*]',$mode,'listblock');
-
-        $this->Lexer->addPattern('\n {2,}[\-\*]','listblock');
-        $this->Lexer->addPattern('\n\t{1,}[\-\*]','listblock');
-
-    }
-
-    function postConnect() {
-        $this->Lexer->addExitPattern('\n','listblock');
-    }
-
-    function getSort() {
-        return 10;
-    }
-}
-
-//-------------------------------------------------------------------
-class Doku_Parser_Mode_table extends Doku_Parser_Mode {
-
-    function __construct() {
-        global $PARSER_MODES;
-
-        $this->allowedModes = array_merge (
-                $PARSER_MODES['formatting'],
-                $PARSER_MODES['substition'],
-                $PARSER_MODES['disabled'],
-                $PARSER_MODES['protected']
-            );
-    }
-
-    function connectTo($mode) {
-        $this->Lexer->addEntryPattern('[\t ]*\n\^',$mode,'table');
-        $this->Lexer->addEntryPattern('[\t ]*\n\|',$mode,'table');
-    }
-
-    function postConnect() {
-        $this->Lexer->addPattern('\n\^','table');
-        $this->Lexer->addPattern('\n\|','table');
-        $this->Lexer->addPattern('[\t ]*:::[\t ]*(?=[\|\^])','table');
-        $this->Lexer->addPattern('[\t ]+','table');
-        $this->Lexer->addPattern('\^','table');
-        $this->Lexer->addPattern('\|','table');
-        $this->Lexer->addExitPattern('\n','table');
-    }
-
-    function getSort() {
-        return 60;
-    }
-}
-
-//-------------------------------------------------------------------
-class Doku_Parser_Mode_unformatted extends Doku_Parser_Mode {
-
-    function connectTo($mode) {
-        $this->Lexer->addEntryPattern('<nowiki>(?=.*</nowiki>)',$mode,'unformatted');
-        $this->Lexer->addEntryPattern('%%(?=.*%%)',$mode,'unformattedalt');
-    }
-
-    function postConnect() {
-        $this->Lexer->addExitPattern('</nowiki>','unformatted');
-        $this->Lexer->addExitPattern('%%','unformattedalt');
-        $this->Lexer->mapHandler('unformattedalt','unformatted');
-    }
-
-    function getSort() {
-        return 170;
-    }
-}
-
-//-------------------------------------------------------------------
-class Doku_Parser_Mode_php extends Doku_Parser_Mode {
-
-    function connectTo($mode) {
-        $this->Lexer->addEntryPattern('<php>(?=.*</php>)',$mode,'php');
-        $this->Lexer->addEntryPattern('<PHP>(?=.*</PHP>)',$mode,'phpblock');
-    }
-
-    function postConnect() {
-        $this->Lexer->addExitPattern('</php>','php');
-        $this->Lexer->addExitPattern('</PHP>','phpblock');
-    }
-
-    function getSort() {
-        return 180;
-    }
-}
-
-//-------------------------------------------------------------------
-class Doku_Parser_Mode_html extends Doku_Parser_Mode {
-
-    function connectTo($mode) {
-        $this->Lexer->addEntryPattern('<html>(?=.*</html>)',$mode,'html');
-        $this->Lexer->addEntryPattern('<HTML>(?=.*</HTML>)',$mode,'htmlblock');
-    }
-
-    function postConnect() {
-        $this->Lexer->addExitPattern('</html>','html');
-        $this->Lexer->addExitPattern('</HTML>','htmlblock');
-    }
-
-    function getSort() {
-        return 190;
-    }
-}
-
-//-------------------------------------------------------------------
-class Doku_Parser_Mode_preformatted extends Doku_Parser_Mode {
-
-    function connectTo($mode) {
-        // Has hard coded awareness of lists...
-        $this->Lexer->addEntryPattern('\n  (?![\*\-])',$mode,'preformatted');
-        $this->Lexer->addEntryPattern('\n\t(?![\*\-])',$mode,'preformatted');
-
-        // How to effect a sub pattern with the Lexer!
-        $this->Lexer->addPattern('\n  ','preformatted');
-        $this->Lexer->addPattern('\n\t','preformatted');
-
-    }
-
-    function postConnect() {
-        $this->Lexer->addExitPattern('\n','preformatted');
-    }
-
-    function getSort() {
-        return 20;
-    }
-}
-
-//-------------------------------------------------------------------
-class Doku_Parser_Mode_code extends Doku_Parser_Mode {
-
-    function connectTo($mode) {
-        $this->Lexer->addEntryPattern('<code\b(?=.*</code>)',$mode,'code');
-    }
-
-    function postConnect() {
-        $this->Lexer->addExitPattern('</code>','code');
-    }
-
-    function getSort() {
-        return 200;
-    }
-}
-
-//-------------------------------------------------------------------
-class Doku_Parser_Mode_file extends Doku_Parser_Mode {
-
-    function connectTo($mode) {
-        $this->Lexer->addEntryPattern('<file\b(?=.*</file>)',$mode,'file');
-    }
-
-    function postConnect() {
-        $this->Lexer->addExitPattern('</file>','file');
-    }
-
-    function getSort() {
-        return 210;
-    }
-}
-
-//-------------------------------------------------------------------
-class Doku_Parser_Mode_quote extends Doku_Parser_Mode {
-
-    function __construct() {
-        global $PARSER_MODES;
-
-        $this->allowedModes = array_merge (
-                $PARSER_MODES['formatting'],
-                $PARSER_MODES['substition'],
-                $PARSER_MODES['disabled'],
-                $PARSER_MODES['protected'] #XXX new
-            );
-            #$this->allowedModes[] = 'footnote';
-            #$this->allowedModes[] = 'preformatted';
-            #$this->allowedModes[] = 'unformatted';
-    }
-
-    function connectTo($mode) {
-        $this->Lexer->addEntryPattern('\n>{1,}',$mode,'quote');
-    }
-
-    function postConnect() {
-        $this->Lexer->addPattern('\n>{1,}','quote');
-        $this->Lexer->addExitPattern('\n','quote');
-    }
-
-    function getSort() {
-        return 220;
-    }
-}
-
-//-------------------------------------------------------------------
-class Doku_Parser_Mode_acronym extends Doku_Parser_Mode {
-    // A list
-    var $acronyms = array();
-    var $pattern = '';
-
-    function __construct($acronyms) {
-        usort($acronyms,array($this,'_compare'));
-        $this->acronyms = $acronyms;
-    }
-
-    function preConnect() {
-        if(!count($this->acronyms)) return;
-
-        $bound = '[\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]';
-        $acronyms = array_map('Doku_Lexer_Escape',$this->acronyms);
-        $this->pattern = '(?<=^|'.$bound.')(?:'.join('|',$acronyms).')(?='.$bound.')';
-    }
-
-    function connectTo($mode) {
-        if(!count($this->acronyms)) return;
-
-        if ( strlen($this->pattern) > 0 ) {
-            $this->Lexer->addSpecialPattern($this->pattern,$mode,'acronym');
-        }
-    }
-
-    function getSort() {
-        return 240;
-    }
-
-    /**
-     * sort callback to order by string length descending
-     *
-     * @param string $a
-     * @param string $b
-     *
-     * @return int
-     */
-    function _compare($a,$b) {
-        $a_len = strlen($a);
-        $b_len = strlen($b);
-        if ($a_len > $b_len) {
-            return -1;
-        } else if ($a_len < $b_len) {
-            return 1;
-        }
-
-        return 0;
-    }
-}
-
-//-------------------------------------------------------------------
-class Doku_Parser_Mode_smiley extends Doku_Parser_Mode {
-    // A list
-    var $smileys = array();
-    var $pattern = '';
-
-    function __construct($smileys) {
-        $this->smileys = $smileys;
-    }
-
-    function preConnect() {
-        if(!count($this->smileys) || $this->pattern != '') return;
-
-        $sep = '';
-        foreach ( $this->smileys as $smiley ) {
-            $this->pattern .= $sep.'(?<=\W|^)'.Doku_Lexer_Escape($smiley).'(?=\W|$)';
-            $sep = '|';
-        }
-    }
-
-    function connectTo($mode) {
-        if(!count($this->smileys)) return;
-
-        if ( strlen($this->pattern) > 0 ) {
-            $this->Lexer->addSpecialPattern($this->pattern,$mode,'smiley');
-        }
-    }
-
-    function getSort() {
-        return 230;
-    }
-}
-
-//-------------------------------------------------------------------
-class Doku_Parser_Mode_wordblock extends Doku_Parser_Mode {
-    // A list
-    var $badwords = array();
-    var $pattern = '';
-
-    function __construct($badwords) {
-        $this->badwords = $badwords;
-    }
-
-    function preConnect() {
-
-        if ( count($this->badwords) == 0 || $this->pattern != '') {
-            return;
-        }
-
-        $sep = '';
-        foreach ( $this->badwords as $badword ) {
-            $this->pattern .= $sep.'(?<=\b)(?i)'.Doku_Lexer_Escape($badword).'(?-i)(?=\b)';
-            $sep = '|';
-        }
-
-    }
-
-    function connectTo($mode) {
-        if ( strlen($this->pattern) > 0 ) {
-            $this->Lexer->addSpecialPattern($this->pattern,$mode,'wordblock');
-        }
-    }
-
-    function getSort() {
-        return 250;
-    }
-}
-
-//-------------------------------------------------------------------
-class Doku_Parser_Mode_entity extends Doku_Parser_Mode {
-    // A list
-    var $entities = array();
-    var $pattern = '';
-
-    function __construct($entities) {
-        $this->entities = $entities;
-    }
-
-    function preConnect() {
-        if(!count($this->entities) || $this->pattern != '') return;
-
-        $sep = '';
-        foreach ( $this->entities as $entity ) {
-            $this->pattern .= $sep.Doku_Lexer_Escape($entity);
-            $sep = '|';
-        }
-    }
-
-    function connectTo($mode) {
-        if(!count($this->entities)) return;
-
-        if ( strlen($this->pattern) > 0 ) {
-            $this->Lexer->addSpecialPattern($this->pattern,$mode,'entity');
-        }
-    }
-
-    function getSort() {
-        return 260;
-    }
-}
-
-//-------------------------------------------------------------------
-// Implements the 640x480 replacement
-class Doku_Parser_Mode_multiplyentity extends Doku_Parser_Mode {
-
-    function connectTo($mode) {
-
-        $this->Lexer->addSpecialPattern(
-                    '(?<=\b)(?:[1-9]|\d{2,})[xX]\d+(?=\b)',$mode,'multiplyentity'
-                );
-
-    }
-
-    function getSort() {
-        return 270;
-    }
-}
-
-//-------------------------------------------------------------------
-class Doku_Parser_Mode_quotes extends Doku_Parser_Mode {
-
-    function connectTo($mode) {
-        global $conf;
-
-        $ws   =  '\s/\#~:+=&%@\-\x28\x29\]\[{}><"\'';   // whitespace
-        $punc =  ';,\.?!';
-
-        if($conf['typography'] == 2){
-            $this->Lexer->addSpecialPattern(
-                        "(?<=^|[$ws])'(?=[^$ws$punc])",$mode,'singlequoteopening'
-                    );
-            $this->Lexer->addSpecialPattern(
-                        "(?<=^|[^$ws]|[$punc])'(?=$|[$ws$punc])",$mode,'singlequoteclosing'
-                    );
-            $this->Lexer->addSpecialPattern(
-                        "(?<=^|[^$ws$punc])'(?=$|[^$ws$punc])",$mode,'apostrophe'
-                    );
-        }
-
-        $this->Lexer->addSpecialPattern(
-                    "(?<=^|[$ws])\"(?=[^$ws$punc])",$mode,'doublequoteopening'
-                );
-        $this->Lexer->addSpecialPattern(
-                    "\"",$mode,'doublequoteclosing'
-                );
-
-    }
-
-    function getSort() {
-        return 280;
-    }
-}
-
-//-------------------------------------------------------------------
-class Doku_Parser_Mode_camelcaselink extends Doku_Parser_Mode {
-
-    function connectTo($mode) {
-        $this->Lexer->addSpecialPattern(
-                '\b[A-Z]+[a-z]+[A-Z][A-Za-z]*\b',$mode,'camelcaselink'
-            );
-    }
-
-    function getSort() {
-        return 290;
-    }
-}
-
-//-------------------------------------------------------------------
-class Doku_Parser_Mode_internallink extends Doku_Parser_Mode {
-
-    function connectTo($mode) {
-        // Word boundaries?
-        $this->Lexer->addSpecialPattern("\[\[.*?\]\](?!\])",$mode,'internallink');
-    }
-
-    function getSort() {
-        return 300;
-    }
-}
-
-//-------------------------------------------------------------------
-class Doku_Parser_Mode_media extends Doku_Parser_Mode {
-
-    function connectTo($mode) {
-        // Word boundaries?
-        $this->Lexer->addSpecialPattern("\{\{(?:[^\}]|(?:\}[^\}]))+\}\}",$mode,'media');
-    }
-
-    function getSort() {
-        return 320;
-    }
-}
-
-//-------------------------------------------------------------------
-class Doku_Parser_Mode_rss extends Doku_Parser_Mode {
-
-    function connectTo($mode) {
-        $this->Lexer->addSpecialPattern("\{\{rss>[^\}]+\}\}",$mode,'rss');
-    }
-
-    function getSort() {
-        return 310;
-    }
-}
-
-//-------------------------------------------------------------------
-class Doku_Parser_Mode_externallink extends Doku_Parser_Mode {
-    var $schemes = array();
-    var $patterns = array();
-
-    function preConnect() {
-        if(count($this->patterns)) return;
-
-        $ltrs = '\w';
-        $gunk = '/\#~:.?+=&%@!\-\[\]';
-        $punc = '.:?\-;,';
-        $host = $ltrs.$punc;
-        $any  = $ltrs.$gunk.$punc;
-
-        $this->schemes = getSchemes();
-        foreach ( $this->schemes as $scheme ) {
-            $this->patterns[] = '\b(?i)'.$scheme.'(?-i)://['.$any.']+?(?=['.$punc.']*[^'.$any.'])';
-        }
-
-        $this->patterns[] = '(?<=\s)(?i)www?(?-i)\.['.$host.']+?\.['.$host.']+?['.$any.']+?(?=['.$punc.']*[^'.$any.'])';
-        $this->patterns[] = '(?<=\s)(?i)ftp?(?-i)\.['.$host.']+?\.['.$host.']+?['.$any.']+?(?=['.$punc.']*[^'.$any.'])';
-    }
-
-    function connectTo($mode) {
-
-        foreach ( $this->patterns as $pattern ) {
-            $this->Lexer->addSpecialPattern($pattern,$mode,'externallink');
-        }
-    }
-
-    function getSort() {
-        return 330;
-    }
-}
-
-//-------------------------------------------------------------------
-class Doku_Parser_Mode_filelink extends Doku_Parser_Mode {
-
-    var $pattern;
-
-    function preConnect() {
-
-        $ltrs = '\w';
-        $gunk = '/\#~:.?+=&%@!\-';
-        $punc = '.:?\-;,';
-        $host = $ltrs.$punc;
-        $any  = $ltrs.$gunk.$punc;
-
-        $this->pattern = '\b(?i)file(?-i)://['.$any.']+?['.
-            $punc.']*[^'.$any.']';
-    }
-
-    function connectTo($mode) {
-        $this->Lexer->addSpecialPattern(
-            $this->pattern,$mode,'filelink');
-    }
-
-    function getSort() {
-        return 360;
-    }
-}
-
-//-------------------------------------------------------------------
-class Doku_Parser_Mode_windowssharelink extends Doku_Parser_Mode {
-
-    var $pattern;
-
-    function preConnect() {
-        $this->pattern = "\\\\\\\\\w+?(?:\\\\[\w\-$]+)+";
-    }
-
-    function connectTo($mode) {
-        $this->Lexer->addSpecialPattern(
-            $this->pattern,$mode,'windowssharelink');
-    }
-
-    function getSort() {
-        return 350;
-    }
-}
-
-//-------------------------------------------------------------------
-class Doku_Parser_Mode_emaillink extends Doku_Parser_Mode {
-
-    function connectTo($mode) {
-        // pattern below is defined in inc/mail.php
-        $this->Lexer->addSpecialPattern('<'.PREG_PATTERN_VALID_EMAIL.'>',$mode,'emaillink');
-    }
-
-    function getSort() {
-        return 340;
-    }
-}
-
-
-//Setup VIM: ex: et ts=4 :
diff --git a/wiki/inc/parser/renderer.php b/wiki/inc/parser/renderer.php
deleted file mode 100644
index 83b51d4..0000000
--- a/wiki/inc/parser/renderer.php
+++ /dev/null
@@ -1,883 +0,0 @@
-<?php
-/**
- * Renderer output base class
- *
- * @author Harry Fuecks <hfuecks@gmail.com>
- * @author Andreas Gohr <andi@splitbrain.org>
- */
-if(!defined('DOKU_INC')) die('meh.');
-
-/**
- * Allowed chars in $language for code highlighting
- * @see GeSHi::set_language()
- */
-define('PREG_PATTERN_VALID_LANGUAGE', '#[^a-zA-Z0-9\-_]#');
-
-/**
- * An empty renderer, produces no output
- *
- * Inherits from DokuWiki_Plugin for giving additional functions to render plugins
- *
- * The renderer transforms the syntax instructions created by the parser and handler into the
- * desired output format. For each instruction a corresponding method defined in this class will
- * be called. That method needs to produce the desired output for the instruction and add it to the
- * $doc field. When all instructions are processed, the $doc field contents will be cached by
- * DokuWiki and sent to the user.
- */
-class Doku_Renderer extends DokuWiki_Plugin {
-    /** @var array Settings, control the behavior of the renderer */
-    public $info = array(
-        'cache' => true, // may the rendered result cached?
-        'toc'   => true, // render the TOC?
-    );
-
-    /** @var array contains the smiley configuration, set in p_render() */
-    public $smileys = array();
-    /** @var array contains the entity configuration, set in p_render() */
-    public $entities = array();
-    /** @var array contains the acronym configuration, set in p_render() */
-    public $acronyms = array();
-    /** @var array contains the interwiki configuration, set in p_render() */
-    public $interwiki = array();
-
-    /**
-     * @var string the rendered document, this will be cached after the renderer ran through
-     */
-    public $doc = '';
-
-    /**
-     * clean out any per-use values
-     *
-     * This is called before each use of the renderer object and should be used to
-     * completely reset the state of the renderer to be reused for a new document
-     */
-    function reset() {
-    }
-
-    /**
-     * Allow the plugin to prevent DokuWiki from reusing an instance
-     *
-     * Since most renderer plugins fail to implement Doku_Renderer::reset() we default
-     * to reinstantiating the renderer here
-     *
-     * @return bool   false if the plugin has to be instantiated
-     */
-    function isSingleton() {
-        return false;
-    }
-
-    /**
-     * Returns the format produced by this renderer.
-     *
-     * Has to be overidden by sub classes
-     *
-     * @return string
-     */
-    function getFormat() {
-        trigger_error('getFormat() not implemented in '.get_class($this), E_USER_WARNING);
-        return '';
-    }
-
-    /**
-     * Disable caching of this renderer's output
-     */
-    function nocache() {
-        $this->info['cache'] = false;
-    }
-
-    /**
-     * Disable TOC generation for this renderer's output
-     *
-     * This might not be used for certain sub renderer
-     */
-    function notoc() {
-        $this->info['toc'] = false;
-    }
-
-    /**
-     * Handle plugin rendering
-     *
-     * Most likely this needs NOT to be overwritten by sub classes
-     *
-     * @param string $name  Plugin name
-     * @param mixed  $data  custom data set by handler
-     * @param string $state matched state if any
-     * @param string $match raw matched syntax
-     */
-    function plugin($name, $data, $state = '', $match = '') {
-        /** @var DokuWiki_Syntax_Plugin $plugin */
-        $plugin = plugin_load('syntax', $name);
-        if($plugin != null) {
-            $plugin->render($this->getFormat(), $this, $data);
-        }
-    }
-
-    /**
-     * handle nested render instructions
-     * this method (and nest_close method) should not be overloaded in actual renderer output classes
-     *
-     * @param array $instructions
-     */
-    function nest($instructions) {
-        foreach($instructions as $instruction) {
-            // execute the callback against ourself
-            if(method_exists($this, $instruction[0])) {
-                call_user_func_array(array($this, $instruction[0]), $instruction[1] ? $instruction[1] : array());
-            }
-        }
-    }
-
-    /**
-     * dummy closing instruction issued by Doku_Handler_Nest
-     *
-     * normally the syntax mode should override this instruction when instantiating Doku_Handler_Nest -
-     * however plugins will not be able to - as their instructions require data.
-     */
-    function nest_close() {
-    }
-
-    #region Syntax modes - sub classes will need to implement them to fill $doc
-
-    /**
-     * Initialize the document
-     */
-    function document_start() {
-    }
-
-    /**
-     * Finalize the document
-     */
-    function document_end() {
-    }
-
-    /**
-     * Render the Table of Contents
-     *
-     * @return string
-     */
-    function render_TOC() {
-        return '';
-    }
-
-    /**
-     * Add an item to the TOC
-     *
-     * @param string $id       the hash link
-     * @param string $text     the text to display
-     * @param int    $level    the nesting level
-     */
-    function toc_additem($id, $text, $level) {
-    }
-
-    /**
-     * Render a heading
-     *
-     * @param string $text  the text to display
-     * @param int    $level header level
-     * @param int    $pos   byte position in the original source
-     */
-    function header($text, $level, $pos) {
-    }
-
-    /**
-     * Open a new section
-     *
-     * @param int $level section level (as determined by the previous header)
-     */
-    function section_open($level) {
-    }
-
-    /**
-     * Close the current section
-     */
-    function section_close() {
-    }
-
-    /**
-     * Render plain text data
-     *
-     * @param string $text
-     */
-    function cdata($text) {
-    }
-
-    /**
-     * Open a paragraph
-     */
-    function p_open() {
-    }
-
-    /**
-     * Close a paragraph
-     */
-    function p_close() {
-    }
-
-    /**
-     * Create a line break
-     */
-    function linebreak() {
-    }
-
-    /**
-     * Create a horizontal line
-     */
-    function hr() {
-    }
-
-    /**
-     * Start strong (bold) formatting
-     */
-    function strong_open() {
-    }
-
-    /**
-     * Stop strong (bold) formatting
-     */
-    function strong_close() {
-    }
-
-    /**
-     * Start emphasis (italics) formatting
-     */
-    function emphasis_open() {
-    }
-
-    /**
-     * Stop emphasis (italics) formatting
-     */
-    function emphasis_close() {
-    }
-
-    /**
-     * Start underline formatting
-     */
-    function underline_open() {
-    }
-
-    /**
-     * Stop underline formatting
-     */
-    function underline_close() {
-    }
-
-    /**
-     * Start monospace formatting
-     */
-    function monospace_open() {
-    }
-
-    /**
-     * Stop monospace formatting
-     */
-    function monospace_close() {
-    }
-
-    /**
-     * Start a subscript
-     */
-    function subscript_open() {
-    }
-
-    /**
-     * Stop a subscript
-     */
-    function subscript_close() {
-    }
-
-    /**
-     * Start a superscript
-     */
-    function superscript_open() {
-    }
-
-    /**
-     * Stop a superscript
-     */
-    function superscript_close() {
-    }
-
-    /**
-     * Start deleted (strike-through) formatting
-     */
-    function deleted_open() {
-    }
-
-    /**
-     * Stop deleted (strike-through) formatting
-     */
-    function deleted_close() {
-    }
-
-    /**
-     * Start a footnote
-     */
-    function footnote_open() {
-    }
-
-    /**
-     * Stop a footnote
-     */
-    function footnote_close() {
-    }
-
-    /**
-     * Open an unordered list
-     */
-    function listu_open() {
-    }
-
-    /**
-     * Close an unordered list
-     */
-    function listu_close() {
-    }
-
-    /**
-     * Open an ordered list
-     */
-    function listo_open() {
-    }
-
-    /**
-     * Close an ordered list
-     */
-    function listo_close() {
-    }
-
-    /**
-     * Open a list item
-     *
-     * @param int $level the nesting level
-     * @param bool $node true when a node; false when a leaf
-     */
-    function listitem_open($level,$node=false) {
-    }
-
-    /**
-     * Close a list item
-     */
-    function listitem_close() {
-    }
-
-    /**
-     * Start the content of a list item
-     */
-    function listcontent_open() {
-    }
-
-    /**
-     * Stop the content of a list item
-     */
-    function listcontent_close() {
-    }
-
-    /**
-     * Output unformatted $text
-     *
-     * Defaults to $this->cdata()
-     *
-     * @param string $text
-     */
-    function unformatted($text) {
-        $this->cdata($text);
-    }
-
-    /**
-     * Output inline PHP code
-     *
-     * If $conf['phpok'] is true this should evaluate the given code and append the result
-     * to $doc
-     *
-     * @param string $text The PHP code
-     */
-    function php($text) {
-    }
-
-    /**
-     * Output block level PHP code
-     *
-     * If $conf['phpok'] is true this should evaluate the given code and append the result
-     * to $doc
-     *
-     * @param string $text The PHP code
-     */
-    function phpblock($text) {
-    }
-
-    /**
-     * Output raw inline HTML
-     *
-     * If $conf['htmlok'] is true this should add the code as is to $doc
-     *
-     * @param string $text The HTML
-     */
-    function html($text) {
-    }
-
-    /**
-     * Output raw block-level HTML
-     *
-     * If $conf['htmlok'] is true this should add the code as is to $doc
-     *
-     * @param string $text The HTML
-     */
-    function htmlblock($text) {
-    }
-
-    /**
-     * Output preformatted text
-     *
-     * @param string $text
-     */
-    function preformatted($text) {
-    }
-
-    /**
-     * Start a block quote
-     */
-    function quote_open() {
-    }
-
-    /**
-     * Stop a block quote
-     */
-    function quote_close() {
-    }
-
-    /**
-     * Display text as file content, optionally syntax highlighted
-     *
-     * @param string $text text to show
-     * @param string $lang programming language to use for syntax highlighting
-     * @param string $file file path label
-     */
-    function file($text, $lang = null, $file = null) {
-    }
-
-    /**
-     * Display text as code content, optionally syntax highlighted
-     *
-     * @param string $text text to show
-     * @param string $lang programming language to use for syntax highlighting
-     * @param string $file file path label
-     */
-    function code($text, $lang = null, $file = null) {
-    }
-
-    /**
-     * Format an acronym
-     *
-     * Uses $this->acronyms
-     *
-     * @param string $acronym
-     */
-    function acronym($acronym) {
-    }
-
-    /**
-     * Format a smiley
-     *
-     * Uses $this->smiley
-     *
-     * @param string $smiley
-     */
-    function smiley($smiley) {
-    }
-
-    /**
-     * Format an entity
-     *
-     * Entities are basically small text replacements
-     *
-     * Uses $this->entities
-     *
-     * @param string $entity
-     */
-    function entity($entity) {
-    }
-
-    /**
-     * Typographically format a multiply sign
-     *
-     * Example: ($x=640, $y=480) should result in "640×480"
-     *
-     * @param string|int $x first value
-     * @param string|int $y second value
-     */
-    function multiplyentity($x, $y) {
-    }
-
-    /**
-     * Render an opening single quote char (language specific)
-     */
-    function singlequoteopening() {
-    }
-
-    /**
-     * Render a closing single quote char (language specific)
-     */
-    function singlequoteclosing() {
-    }
-
-    /**
-     * Render an apostrophe char (language specific)
-     */
-    function apostrophe() {
-    }
-
-    /**
-     * Render an opening double quote char (language specific)
-     */
-    function doublequoteopening() {
-    }
-
-    /**
-     * Render an closinging double quote char (language specific)
-     */
-    function doublequoteclosing() {
-    }
-
-    /**
-     * Render a CamelCase link
-     *
-     * @param string $link The link name
-     * @see http://en.wikipedia.org/wiki/CamelCase
-     */
-    function camelcaselink($link) {
-    }
-
-    /**
-     * Render a page local link
-     *
-     * @param string $hash hash link identifier
-     * @param string $name name for the link
-     */
-    function locallink($hash, $name = null) {
-    }
-
-    /**
-     * Render a wiki internal link
-     *
-     * @param string       $link  page ID to link to. eg. 'wiki:syntax'
-     * @param string|array $title name for the link, array for media file
-     */
-    function internallink($link, $title = null) {
-    }
-
-    /**
-     * Render an external link
-     *
-     * @param string       $link  full URL with scheme
-     * @param string|array $title name for the link, array for media file
-     */
-    function externallink($link, $title = null) {
-    }
-
-    /**
-     * Render the output of an RSS feed
-     *
-     * @param string $url    URL of the feed
-     * @param array  $params Finetuning of the output
-     */
-    function rss($url, $params) {
-    }
-
-    /**
-     * Render an interwiki link
-     *
-     * You may want to use $this->_resolveInterWiki() here
-     *
-     * @param string       $link     original link - probably not much use
-     * @param string|array $title    name for the link, array for media file
-     * @param string       $wikiName indentifier (shortcut) for the remote wiki
-     * @param string       $wikiUri  the fragment parsed from the original link
-     */
-    function interwikilink($link, $title = null, $wikiName, $wikiUri) {
-    }
-
-    /**
-     * Link to file on users OS
-     *
-     * @param string       $link  the link
-     * @param string|array $title name for the link, array for media file
-     */
-    function filelink($link, $title = null) {
-    }
-
-    /**
-     * Link to windows share
-     *
-     * @param string       $link  the link
-     * @param string|array $title name for the link, array for media file
-     */
-    function windowssharelink($link, $title = null) {
-    }
-
-    /**
-     * Render a linked E-Mail Address
-     *
-     * Should honor $conf['mailguard'] setting
-     *
-     * @param string $address Email-Address
-     * @param string|array $name name for the link, array for media file
-     */
-    function emaillink($address, $name = null) {
-    }
-
-    /**
-     * Render an internal media file
-     *
-     * @param string $src     media ID
-     * @param string $title   descriptive text
-     * @param string $align   left|center|right
-     * @param int    $width   width of media in pixel
-     * @param int    $height  height of media in pixel
-     * @param string $cache   cache|recache|nocache
-     * @param string $linking linkonly|detail|nolink
-     */
-    function internalmedia($src, $title = null, $align = null, $width = null,
-                           $height = null, $cache = null, $linking = null) {
-    }
-
-    /**
-     * Render an external media file
-     *
-     * @param string $src     full media URL
-     * @param string $title   descriptive text
-     * @param string $align   left|center|right
-     * @param int    $width   width of media in pixel
-     * @param int    $height  height of media in pixel
-     * @param string $cache   cache|recache|nocache
-     * @param string $linking linkonly|detail|nolink
-     */
-    function externalmedia($src, $title = null, $align = null, $width = null,
-                           $height = null, $cache = null, $linking = null) {
-    }
-
-    /**
-     * Render a link to an internal media file
-     *
-     * @param string $src     media ID
-     * @param string $title   descriptive text
-     * @param string $align   left|center|right
-     * @param int    $width   width of media in pixel
-     * @param int    $height  height of media in pixel
-     * @param string $cache   cache|recache|nocache
-     */
-    function internalmedialink($src, $title = null, $align = null,
-                               $width = null, $height = null, $cache = null) {
-    }
-
-    /**
-     * Render a link to an external media file
-     *
-     * @param string $src     media ID
-     * @param string $title   descriptive text
-     * @param string $align   left|center|right
-     * @param int    $width   width of media in pixel
-     * @param int    $height  height of media in pixel
-     * @param string $cache   cache|recache|nocache
-     */
-    function externalmedialink($src, $title = null, $align = null,
-                               $width = null, $height = null, $cache = null) {
-    }
-
-    /**
-     * Start a table
-     *
-     * @param int $maxcols maximum number of columns
-     * @param int $numrows NOT IMPLEMENTED
-     * @param int $pos     byte position in the original source
-     */
-    function table_open($maxcols = null, $numrows = null, $pos = null) {
-    }
-
-    /**
-     * Close a table
-     *
-     * @param int $pos byte position in the original source
-     */
-    function table_close($pos = null) {
-    }
-
-    /**
-     * Open a table header
-     */
-    function tablethead_open() {
-    }
-
-    /**
-     * Close a table header
-     */
-    function tablethead_close() {
-    }
-
-    /**
-     * Open a table body
-     */
-    function tabletbody_open() {
-    }
-
-    /**
-     * Close a table body
-     */
-    function tabletbody_close() {
-    }
-
-    /**
-     * Open a table footer
-     */
-    function tabletfoot_open() {
-    }
-
-    /**
-     * Close a table footer
-     */
-    function tabletfoot_close() {
-    }
-
-    /**
-     * Open a table row
-     */
-    function tablerow_open() {
-    }
-
-    /**
-     * Close a table row
-     */
-    function tablerow_close() {
-    }
-
-    /**
-     * Open a table header cell
-     *
-     * @param int    $colspan
-     * @param string $align left|center|right
-     * @param int    $rowspan
-     */
-    function tableheader_open($colspan = 1, $align = null, $rowspan = 1) {
-    }
-
-    /**
-     * Close a table header cell
-     */
-    function tableheader_close() {
-    }
-
-    /**
-     * Open a table cell
-     *
-     * @param int    $colspan
-     * @param string $align left|center|right
-     * @param int    $rowspan
-     */
-    function tablecell_open($colspan = 1, $align = null, $rowspan = 1) {
-    }
-
-    /**
-     * Close a table cell
-     */
-    function tablecell_close() {
-    }
-
-    #endregion
-
-    #region util functions, you probably won't need to reimplement them
-
-    /**
-     * Removes any Namespace from the given name but keeps
-     * casing and special chars
-     *
-     * @author Andreas Gohr <andi@splitbrain.org>
-     *
-     * @param string $name
-     * @return string
-     */
-    function _simpleTitle($name) {
-        global $conf;
-
-        //if there is a hash we use the ancor name only
-        @list($name, $hash) = explode('#', $name, 2);
-        if($hash) return $hash;
-
-        if($conf['useslash']) {
-            $name = strtr($name, ';/', ';:');
-        } else {
-            $name = strtr($name, ';', ':');
-        }
-
-        return noNSorNS($name);
-    }
-
-    /**
-     * Resolve an interwikilink
-     *
-     * @param string    $shortcut  identifier for the interwiki link
-     * @param string    $reference fragment that refers the content
-     * @param null|bool $exists    reference which returns if an internal page exists
-     * @return string interwikilink
-     */
-    function _resolveInterWiki(&$shortcut, $reference, &$exists = null) {
-        //get interwiki URL
-        if(isset($this->interwiki[$shortcut])) {
-            $url = $this->interwiki[$shortcut];
-        } else {
-            // Default to Google I'm feeling lucky
-            $url      = 'https://www.google.com/search?q={URL}&amp;btnI=lucky';
-            $shortcut = 'go';
-        }
-
-        //split into hash and url part
-        $hash = strrchr($reference, '#');
-        if($hash) {
-            $reference = substr($reference, 0, -strlen($hash));
-            $hash = substr($hash, 1);
-        }
-
-        //replace placeholder
-        if(preg_match('#\{(URL|NAME|SCHEME|HOST|PORT|PATH|QUERY)\}#', $url)) {
-            //use placeholders
-            $url    = str_replace('{URL}', rawurlencode($reference), $url);
-            //wiki names will be cleaned next, otherwise urlencode unsafe chars
-            $url    = str_replace('{NAME}', ($url{0} === ':') ? $reference :
-                                  preg_replace_callback('/[[\\\\\]^`{|}#%]/', function($match) {
-                                    return rawurlencode($match[0]);
-                                  }, $reference), $url);
-            $parsed = parse_url($reference);
-            if (empty($parsed['scheme'])) $parsed['scheme'] = '';
-            if (empty($parsed['host'])) $parsed['host'] = '';
-            if (empty($parsed['port'])) $parsed['port'] = 80;
-            if (empty($parsed['path'])) $parsed['path'] = '';
-            if (empty($parsed['query'])) $parsed['query'] = '';
-            $url = strtr($url,[
-                '{SCHEME}' => $parsed['scheme'],
-                '{HOST}' => $parsed['host'],
-                '{PORT}' => $parsed['port'],
-                '{PATH}' => $parsed['path'],
-                '{QUERY}' => $parsed['query'] ,
-            ]);
-        } else {
-            //default
-            $url = $url.rawurlencode($reference);
-        }
-        //handle as wiki links
-        if($url{0} === ':') {
-            $urlparam = null;
-            $id = $url;
-            if (strpos($url, '?') !== false) {
-                list($id, $urlparam) = explode('?', $url, 2);
-            }
-            $url    = wl(cleanID($id), $urlparam);
-            $exists = page_exists($id);
-        }
-        if($hash) $url .= '#'.rawurlencode($hash);
-
-        return $url;
-    }
-
-    #endregion
-}
-
-
-//Setup VIM: ex: et ts=4 :
diff --git a/wiki/inc/parser/xhtml.php b/wiki/inc/parser/xhtml.php
deleted file mode 100644
index a3e7b45..0000000
--- a/wiki/inc/parser/xhtml.php
+++ /dev/null
@@ -1,1970 +0,0 @@
-<?php
-/**
- * Renderer for XHTML output
- *
- * @author Harry Fuecks <hfuecks@gmail.com>
- * @author Andreas Gohr <andi@splitbrain.org>
- */
-if(!defined('DOKU_INC')) die('meh.');
-
-if(!defined('DOKU_LF')) {
-    // Some whitespace to help View > Source
-    define ('DOKU_LF', "\n");
-}
-
-if(!defined('DOKU_TAB')) {
-    // Some whitespace to help View > Source
-    define ('DOKU_TAB', "\t");
-}
-
-/**
- * The XHTML Renderer
- *
- * This is DokuWiki's main renderer used to display page content in the wiki
- */
-class Doku_Renderer_xhtml extends Doku_Renderer {
-    /** @var array store the table of contents */
-    public $toc = array();
-
-    /** @var array A stack of section edit data */
-    protected $sectionedits = array();
-    var $date_at = '';    // link pages and media against this revision
-
-    /** @var int last section edit id, used by startSectionEdit */
-    protected $lastsecid = 0;
-
-    /** @var array the list of headers used to create unique link ids */
-    protected $headers = array();
-
-    /** @var array a list of footnotes, list starts at 1! */
-    protected $footnotes = array();
-
-    /** @var int current section level */
-    protected $lastlevel = 0;
-    /** @var array section node tracker */
-    protected $node = array(0, 0, 0, 0, 0);
-
-    /** @var string temporary $doc store */
-    protected $store = '';
-
-    /** @var array global counter, for table classes etc. */
-    protected $_counter = array(); //
-
-    /** @var int counts the code and file blocks, used to provide download links */
-    protected $_codeblock = 0;
-
-    /** @var array list of allowed URL schemes */
-    protected $schemes = null;
-
-    /**
-     * Register a new edit section range
-     *
-     * @param int    $start  The byte position for the edit start
-     * @param array  $data   Associative array with section data:
-     *                       Key 'name': the section name/title
-     *                       Key 'target': the target for the section edit,
-     *                                     e.g. 'section' or 'table'
-     *                       Key 'hid': header id
-     *                       Key 'codeblockOffset': actual code block index
-     *                       Key 'start': set in startSectionEdit(),
-     *                                    do not set yourself
-     *                       Key 'range': calculated from 'start' and
-     *                                    $key in finishSectionEdit(),
-     *                                    do not set yourself
-     * @return string  A marker class for the starting HTML element
-     *
-     * @author Adrian Lang <lang@cosmocode.de>
-     */
-    public function startSectionEdit($start, $data) {
-        if (!is_array($data)) {
-            msg(
-                sprintf(
-                    'startSectionEdit: $data "%s" is NOT an array! One of your plugins needs an update.',
-                    hsc((string) $data)
-                ), -1
-            );
-
-            // @deprecated 2018-04-14, backward compatibility
-            $args = func_get_args();
-            $data = array();
-            if(isset($args[1])) $data['target'] = $args[1];
-            if(isset($args[2])) $data['name'] = $args[2];
-            if(isset($args[3])) $data['hid'] = $args[3];
-        }
-        $data['secid'] = ++$this->lastsecid;
-        $data['start'] = $start;
-        $this->sectionedits[] = $data;
-        return 'sectionedit'.$data['secid'];
-    }
-
-    /**
-     * Finish an edit section range
-     *
-     * @param int  $end     The byte position for the edit end; null for the rest of the page
-     *
-     * @author Adrian Lang <lang@cosmocode.de>
-     */
-    public function finishSectionEdit($end = null, $hid = null) {
-        $data = array_pop($this->sectionedits);
-        if(!is_null($end) && $end <= $data['start']) {
-            return;
-        }
-        if(!is_null($hid)) {
-            $data['hid'] .= $hid;
-        }
-        $data['range'] = $data['start'].'-'.(is_null($end) ? '' : $end);
-        unset($data['start']);
-        $this->doc .= '<!-- EDIT'.hsc(json_encode ($data)).' -->';
-    }
-
-    /**
-     * Returns the format produced by this renderer.
-     *
-     * @return string always 'xhtml'
-     */
-    function getFormat() {
-        return 'xhtml';
-    }
-
-    /**
-     * Initialize the document
-     */
-    function document_start() {
-        //reset some internals
-        $this->toc     = array();
-        $this->headers = array();
-    }
-
-    /**
-     * Finalize the document
-     */
-    function document_end() {
-        // Finish open section edits.
-        while(count($this->sectionedits) > 0) {
-            if($this->sectionedits[count($this->sectionedits) - 1]['start'] <= 1) {
-                // If there is only one section, do not write a section edit
-                // marker.
-                array_pop($this->sectionedits);
-            } else {
-                $this->finishSectionEdit();
-            }
-        }
-
-        if(count($this->footnotes) > 0) {
-            $this->doc .= '<div class="footnotes">'.DOKU_LF;
-
-            foreach($this->footnotes as $id => $footnote) {
-                // check its not a placeholder that indicates actual footnote text is elsewhere
-                if(substr($footnote, 0, 5) != "@@FNT") {
-
-                    // open the footnote and set the anchor and backlink
-                    $this->doc .= '<div class="fn">';
-                    $this->doc .= '<sup><a href="#fnt__'.$id.'" id="fn__'.$id.'" class="fn_bot">';
-                    $this->doc .= $id.')</a></sup> '.DOKU_LF;
-
-                    // get any other footnotes that use the same markup
-                    $alt = array_keys($this->footnotes, "@@FNT$id");
-
-                    if(count($alt)) {
-                        foreach($alt as $ref) {
-                            // set anchor and backlink for the other footnotes
-                            $this->doc .= ', <sup><a href="#fnt__'.($ref).'" id="fn__'.($ref).'" class="fn_bot">';
-                            $this->doc .= ($ref).')</a></sup> '.DOKU_LF;
-                        }
-                    }
-
-                    // add footnote markup and close this footnote
-                    $this->doc .= '<div class="content">'.$footnote.'</div>';
-                    $this->doc .= '</div>'.DOKU_LF;
-                }
-            }
-            $this->doc .= '</div>'.DOKU_LF;
-        }
-
-        // Prepare the TOC
-        global $conf;
-        if($this->info['toc'] && is_array($this->toc) && $conf['tocminheads'] && count($this->toc) >= $conf['tocminheads']) {
-            global $TOC;
-            $TOC = $this->toc;
-        }
-
-        // make sure there are no empty paragraphs
-        $this->doc = preg_replace('#<p>\s*</p>#', '', $this->doc);
-    }
-
-    /**
-     * Add an item to the TOC
-     *
-     * @param string $id       the hash link
-     * @param string $text     the text to display
-     * @param int    $level    the nesting level
-     */
-    function toc_additem($id, $text, $level) {
-        global $conf;
-
-        //handle TOC
-        if($level >= $conf['toptoclevel'] && $level <= $conf['maxtoclevel']) {
-            $this->toc[] = html_mktocitem($id, $text, $level - $conf['toptoclevel'] + 1);
-        }
-    }
-
-    /**
-     * Render a heading
-     *
-     * @param string $text  the text to display
-     * @param int    $level header level
-     * @param int    $pos   byte position in the original source
-     */
-    function header($text, $level, $pos) {
-        global $conf;
-
-        if(blank($text)) return; //skip empty headlines
-
-        $hid = $this->_headerToLink($text, true);
-
-        //only add items within configured levels
-        $this->toc_additem($hid, $text, $level);
-
-        // adjust $node to reflect hierarchy of levels
-        $this->node[$level - 1]++;
-        if($level < $this->lastlevel) {
-            for($i = 0; $i < $this->lastlevel - $level; $i++) {
-                $this->node[$this->lastlevel - $i - 1] = 0;
-            }
-        }
-        $this->lastlevel = $level;
-
-        if($level <= $conf['maxseclevel'] &&
-            count($this->sectionedits) > 0 &&
-            $this->sectionedits[count($this->sectionedits) - 1]['target'] === 'section'
-        ) {
-            $this->finishSectionEdit($pos - 1);
-        }
-
-        // write the header
-        $this->doc .= DOKU_LF.'<h'.$level;
-        if($level <= $conf['maxseclevel']) {
-            $data = array();
-            $data['target'] = 'section';
-            $data['name'] = $text;
-            $data['hid'] = $hid;
-            $data['codeblockOffset'] = $this->_codeblock;
-            $this->doc .= ' class="'.$this->startSectionEdit($pos, $data).'"';
-        }
-        $this->doc .= ' id="'.$hid.'">';
-        $this->doc .= $this->_xmlEntities($text);
-        $this->doc .= "</h$level>".DOKU_LF;
-    }
-
-    /**
-     * Open a new section
-     *
-     * @param int $level section level (as determined by the previous header)
-     */
-    function section_open($level) {
-        $this->doc .= '<div class="level'.$level.'">'.DOKU_LF;
-    }
-
-    /**
-     * Close the current section
-     */
-    function section_close() {
-        $this->doc .= DOKU_LF.'</div>'.DOKU_LF;
-    }
-
-    /**
-     * Render plain text data
-     *
-     * @param $text
-     */
-    function cdata($text) {
-        $this->doc .= $this->_xmlEntities($text);
-    }
-
-    /**
-     * Open a paragraph
-     */
-    function p_open() {
-        $this->doc .= DOKU_LF.'<p>'.DOKU_LF;
-    }
-
-    /**
-     * Close a paragraph
-     */
-    function p_close() {
-        $this->doc .= DOKU_LF.'</p>'.DOKU_LF;
-    }
-
-    /**
-     * Create a line break
-     */
-    function linebreak() {
-        $this->doc .= '<br/>'.DOKU_LF;
-    }
-
-    /**
-     * Create a horizontal line
-     */
-    function hr() {
-        $this->doc .= '<hr />'.DOKU_LF;
-    }
-
-    /**
-     * Start strong (bold) formatting
-     */
-    function strong_open() {
-        $this->doc .= '<strong>';
-    }
-
-    /**
-     * Stop strong (bold) formatting
-     */
-    function strong_close() {
-        $this->doc .= '</strong>';
-    }
-
-    /**
-     * Start emphasis (italics) formatting
-     */
-    function emphasis_open() {
-        $this->doc .= '<em>';
-    }
-
-    /**
-     * Stop emphasis (italics) formatting
-     */
-    function emphasis_close() {
-        $this->doc .= '</em>';
-    }
-
-    /**
-     * Start underline formatting
-     */
-    function underline_open() {
-        $this->doc .= '<em class="u">';
-    }
-
-    /**
-     * Stop underline formatting
-     */
-    function underline_close() {
-        $this->doc .= '</em>';
-    }
-
-    /**
-     * Start monospace formatting
-     */
-    function monospace_open() {
-        $this->doc .= '<code>';
-    }
-
-    /**
-     * Stop monospace formatting
-     */
-    function monospace_close() {
-        $this->doc .= '</code>';
-    }
-
-    /**
-     * Start a subscript
-     */
-    function subscript_open() {
-        $this->doc .= '<sub>';
-    }
-
-    /**
-     * Stop a subscript
-     */
-    function subscript_close() {
-        $this->doc .= '</sub>';
-    }
-
-    /**
-     * Start a superscript
-     */
-    function superscript_open() {
-        $this->doc .= '<sup>';
-    }
-
-    /**
-     * Stop a superscript
-     */
-    function superscript_close() {
-        $this->doc .= '</sup>';
-    }
-
-    /**
-     * Start deleted (strike-through) formatting
-     */
-    function deleted_open() {
-        $this->doc .= '<del>';
-    }
-
-    /**
-     * Stop deleted (strike-through) formatting
-     */
-    function deleted_close() {
-        $this->doc .= '</del>';
-    }
-
-    /**
-     * Callback for footnote start syntax
-     *
-     * All following content will go to the footnote instead of
-     * the document. To achieve this the previous rendered content
-     * is moved to $store and $doc is cleared
-     *
-     * @author Andreas Gohr <andi@splitbrain.org>
-     */
-    function footnote_open() {
-
-        // move current content to store and record footnote
-        $this->store = $this->doc;
-        $this->doc   = '';
-    }
-
-    /**
-     * Callback for footnote end syntax
-     *
-     * All rendered content is moved to the $footnotes array and the old
-     * content is restored from $store again
-     *
-     * @author Andreas Gohr
-     */
-    function footnote_close() {
-        /** @var $fnid int takes track of seen footnotes, assures they are unique even across multiple docs FS#2841 */
-        static $fnid = 0;
-        // assign new footnote id (we start at 1)
-        $fnid++;
-
-        // recover footnote into the stack and restore old content
-        $footnote    = $this->doc;
-        $this->doc   = $this->store;
-        $this->store = '';
-
-        // check to see if this footnote has been seen before
-        $i = array_search($footnote, $this->footnotes);
-
-        if($i === false) {
-            // its a new footnote, add it to the $footnotes array
-            $this->footnotes[$fnid] = $footnote;
-        } else {
-            // seen this one before, save a placeholder
-            $this->footnotes[$fnid] = "@@FNT".($i);
-        }
-
-        // output the footnote reference and link
-        $this->doc .= '<sup><a href="#fn__'.$fnid.'" id="fnt__'.$fnid.'" class="fn_top">'.$fnid.')</a></sup>';
-    }
-
-    /**
-     * Open an unordered list
-     *
-     * @param string|string[] $classes css classes - have to be valid, do not pass unfiltered user input
-     */
-    function listu_open($classes = null) {
-        $class = '';
-        if($classes !== null) {
-            if(is_array($classes)) $classes = join(' ', $classes);
-            $class = " class=\"$classes\"";
-        }
-        $this->doc .= "<ul$class>".DOKU_LF;
-    }
-
-    /**
-     * Close an unordered list
-     */
-    function listu_close() {
-        $this->doc .= '</ul>'.DOKU_LF;
-    }
-
-    /**
-     * Open an ordered list
-     *
-     * @param string|string[] $classes css classes - have to be valid, do not pass unfiltered user input
-     */
-    function listo_open($classes = null) {
-        $class = '';
-        if($classes !== null) {
-            if(is_array($classes)) $classes = join(' ', $classes);
-            $class = " class=\"$classes\"";
-        }
-        $this->doc .= "<ol$class>".DOKU_LF;
-    }
-
-    /**
-     * Close an ordered list
-     */
-    function listo_close() {
-        $this->doc .= '</ol>'.DOKU_LF;
-    }
-
-    /**
-     * Open a list item
-     *
-     * @param int $level the nesting level
-     * @param bool $node true when a node; false when a leaf
-     */
-    function listitem_open($level, $node=false) {
-        $branching = $node ? ' node' : '';
-        $this->doc .= '<li class="level'.$level.$branching.'">';
-    }
-
-    /**
-     * Close a list item
-     */
-    function listitem_close() {
-        $this->doc .= '</li>'.DOKU_LF;
-    }
-
-    /**
-     * Start the content of a list item
-     */
-    function listcontent_open() {
-        $this->doc .= '<div class="li">';
-    }
-
-    /**
-     * Stop the content of a list item
-     */
-    function listcontent_close() {
-        $this->doc .= '</div>'.DOKU_LF;
-    }
-
-    /**
-     * Output unformatted $text
-     *
-     * Defaults to $this->cdata()
-     *
-     * @param string $text
-     */
-    function unformatted($text) {
-        $this->doc .= $this->_xmlEntities($text);
-    }
-
-    /**
-     * Execute PHP code if allowed
-     *
-     * @param  string $text      PHP code that is either executed or printed
-     * @param  string $wrapper   html element to wrap result if $conf['phpok'] is okff
-     *
-     * @author Andreas Gohr <andi@splitbrain.org>
-     */
-    function php($text, $wrapper = 'code') {
-        global $conf;
-
-        if($conf['phpok']) {
-            ob_start();
-            eval($text);
-            $this->doc .= ob_get_contents();
-            ob_end_clean();
-        } else {
-            $this->doc .= p_xhtml_cached_geshi($text, 'php', $wrapper);
-        }
-    }
-
-    /**
-     * Output block level PHP code
-     *
-     * If $conf['phpok'] is true this should evaluate the given code and append the result
-     * to $doc
-     *
-     * @param string $text The PHP code
-     */
-    function phpblock($text) {
-        $this->php($text, 'pre');
-    }
-
-    /**
-     * Insert HTML if allowed
-     *
-     * @param  string $text      html text
-     * @param  string $wrapper   html element to wrap result if $conf['htmlok'] is okff
-     *
-     * @author Andreas Gohr <andi@splitbrain.org>
-     */
-    function html($text, $wrapper = 'code') {
-        global $conf;
-
-        if($conf['htmlok']) {
-            $this->doc .= $text;
-        } else {
-            $this->doc .= p_xhtml_cached_geshi($text, 'html4strict', $wrapper);
-        }
-    }
-
-    /**
-     * Output raw block-level HTML
-     *
-     * If $conf['htmlok'] is true this should add the code as is to $doc
-     *
-     * @param string $text The HTML
-     */
-    function htmlblock($text) {
-        $this->html($text, 'pre');
-    }
-
-    /**
-     * Start a block quote
-     */
-    function quote_open() {
-        $this->doc .= '<blockquote><div class="no">'.DOKU_LF;
-    }
-
-    /**
-     * Stop a block quote
-     */
-    function quote_close() {
-        $this->doc .= '</div></blockquote>'.DOKU_LF;
-    }
-
-    /**
-     * Output preformatted text
-     *
-     * @param string $text
-     */
-    function preformatted($text) {
-        $this->doc .= '<pre class="code">'.trim($this->_xmlEntities($text), "\n\r").'</pre>'.DOKU_LF;
-    }
-
-    /**
-     * Display text as file content, optionally syntax highlighted
-     *
-     * @param string $text     text to show
-     * @param string $language programming language to use for syntax highlighting
-     * @param string $filename file path label
-     * @param array  $options  assoziative array with additional geshi options
-     */
-    function file($text, $language = null, $filename = null, $options=null) {
-        $this->_highlight('file', $text, $language, $filename, $options);
-    }
-
-    /**
-     * Display text as code content, optionally syntax highlighted
-     *
-     * @param string $text     text to show
-     * @param string $language programming language to use for syntax highlighting
-     * @param string $filename file path label
-     * @param array  $options  assoziative array with additional geshi options
-     */
-    function code($text, $language = null, $filename = null, $options=null) {
-        $this->_highlight('code', $text, $language, $filename, $options);
-    }
-
-    /**
-     * Use GeSHi to highlight language syntax in code and file blocks
-     *
-     * @author Andreas Gohr <andi@splitbrain.org>
-     * @param string $type     code|file
-     * @param string $text     text to show
-     * @param string $language programming language to use for syntax highlighting
-     * @param string $filename file path label
-     * @param array  $options  assoziative array with additional geshi options
-     */
-    function _highlight($type, $text, $language = null, $filename = null, $options = null) {
-        global $ID;
-        global $lang;
-        global $INPUT;
-
-        $language = preg_replace(PREG_PATTERN_VALID_LANGUAGE, '', $language);
-
-        $language = preg_replace(PREG_PATTERN_VALID_LANGUAGE, '', $language);
-
-        if($filename) {
-            // add icon
-            list($ext) = mimetype($filename, false);
-            $class = preg_replace('/[^_\-a-z0-9]+/i', '_', $ext);
-            $class = 'mediafile mf_'.$class;
-
-            $offset = 0;
-            if ($INPUT->has('codeblockOffset')) {
-                $offset = $INPUT->str('codeblockOffset');
-            }
-            $this->doc .= '<dl class="'.$type.'">'.DOKU_LF;
-            $this->doc .= '<dt><a href="'.exportlink($ID, 'code', array('codeblock' => $offset+$this->_codeblock)).'" title="'.$lang['download'].'" class="'.$class.'">';
-            $this->doc .= hsc($filename);
-            $this->doc .= '</a></dt>'.DOKU_LF.'<dd>';
-        }
-
-        if($text{0} == "\n") {
-            $text = substr($text, 1);
-        }
-        if(substr($text, -1) == "\n") {
-            $text = substr($text, 0, -1);
-        }
-
-        if(empty($language)) { // empty is faster than is_null and can prevent '' string
-            $this->doc .= '<pre class="'.$type.'">'.$this->_xmlEntities($text).'</pre>'.DOKU_LF;
-        } else {
-            $class = 'code'; //we always need the code class to make the syntax highlighting apply
-            if($type != 'code') $class .= ' '.$type;
-
-            $this->doc .= "<pre class=\"$class $language\">".p_xhtml_cached_geshi($text, $language, '', $options).'</pre>'.DOKU_LF;
-        }
-
-        if($filename) {
-            $this->doc .= '</dd></dl>'.DOKU_LF;
-        }
-
-        $this->_codeblock++;
-    }
-
-    /**
-     * Format an acronym
-     *
-     * Uses $this->acronyms
-     *
-     * @param string $acronym
-     */
-    function acronym($acronym) {
-
-        if(array_key_exists($acronym, $this->acronyms)) {
-
-            $title = $this->_xmlEntities($this->acronyms[$acronym]);
-
-            $this->doc .= '<abbr title="'.$title
-                .'">'.$this->_xmlEntities($acronym).'</abbr>';
-
-        } else {
-            $this->doc .= $this->_xmlEntities($acronym);
-        }
-    }
-
-    /**
-     * Format a smiley
-     *
-     * Uses $this->smiley
-     *
-     * @param string $smiley
-     */
-    function smiley($smiley) {
-        if(array_key_exists($smiley, $this->smileys)) {
-            $this->doc .= '<img src="'.DOKU_BASE.'lib/images/smileys/'.$this->smileys[$smiley].
-                '" class="icon" alt="'.
-                $this->_xmlEntities($smiley).'" />';
-        } else {
-            $this->doc .= $this->_xmlEntities($smiley);
-        }
-    }
-
-    /**
-     * Format an entity
-     *
-     * Entities are basically small text replacements
-     *
-     * Uses $this->entities
-     *
-     * @param string $entity
-     */
-    function entity($entity) {
-        if(array_key_exists($entity, $this->entities)) {
-            $this->doc .= $this->entities[$entity];
-        } else {
-            $this->doc .= $this->_xmlEntities($entity);
-        }
-    }
-
-    /**
-     * Typographically format a multiply sign
-     *
-     * Example: ($x=640, $y=480) should result in "640×480"
-     *
-     * @param string|int $x first value
-     * @param string|int $y second value
-     */
-    function multiplyentity($x, $y) {
-        $this->doc .= "$x&times;$y";
-    }
-
-    /**
-     * Render an opening single quote char (language specific)
-     */
-    function singlequoteopening() {
-        global $lang;
-        $this->doc .= $lang['singlequoteopening'];
-    }
-
-    /**
-     * Render a closing single quote char (language specific)
-     */
-    function singlequoteclosing() {
-        global $lang;
-        $this->doc .= $lang['singlequoteclosing'];
-    }
-
-    /**
-     * Render an apostrophe char (language specific)
-     */
-    function apostrophe() {
-        global $lang;
-        $this->doc .= $lang['apostrophe'];
-    }
-
-    /**
-     * Render an opening double quote char (language specific)
-     */
-    function doublequoteopening() {
-        global $lang;
-        $this->doc .= $lang['doublequoteopening'];
-    }
-
-    /**
-     * Render an closinging double quote char (language specific)
-     */
-    function doublequoteclosing() {
-        global $lang;
-        $this->doc .= $lang['doublequoteclosing'];
-    }
-
-    /**
-     * Render a CamelCase link
-     *
-     * @param string $link       The link name
-     * @param bool   $returnonly whether to return html or write to doc attribute
-     * @return void|string writes to doc attribute or returns html depends on $returnonly
-     *
-     * @see http://en.wikipedia.org/wiki/CamelCase
-     */
-    function camelcaselink($link, $returnonly = false) {
-        if($returnonly) {
-          return $this->internallink($link, $link, null, true);
-        } else {
-          $this->internallink($link, $link);
-        }
-    }
-
-    /**
-     * Render a page local link
-     *
-     * @param string $hash       hash link identifier
-     * @param string $name       name for the link
-     * @param bool   $returnonly whether to return html or write to doc attribute
-     * @return void|string writes to doc attribute or returns html depends on $returnonly
-     */
-    function locallink($hash, $name = null, $returnonly = false) {
-        global $ID;
-        $name  = $this->_getLinkTitle($name, $hash, $isImage);
-        $hash  = $this->_headerToLink($hash);
-        $title = $ID.' ↵';
-
-        $doc = '<a href="#'.$hash.'" title="'.$title.'" class="wikilink1">';
-        $doc .= $name;
-        $doc .= '</a>';
-
-        if($returnonly) {
-          return $doc;
-        } else {
-          $this->doc .= $doc;
-        }
-    }
-
-    /**
-     * Render an internal Wiki Link
-     *
-     * $search,$returnonly & $linktype are not for the renderer but are used
-     * elsewhere - no need to implement them in other renderers
-     *
-     * @author Andreas Gohr <andi@splitbrain.org>
-     * @param string      $id         pageid
-     * @param string|null $name       link name
-     * @param string|null $search     adds search url param
-     * @param bool        $returnonly whether to return html or write to doc attribute
-     * @param string      $linktype   type to set use of headings
-     * @return void|string writes to doc attribute or returns html depends on $returnonly
-     */
-    function internallink($id, $name = null, $search = null, $returnonly = false, $linktype = 'content') {
-        global $conf;
-        global $ID;
-        global $INFO;
-
-        $params = '';
-        $parts  = explode('?', $id, 2);
-        if(count($parts) === 2) {
-            $id     = $parts[0];
-            $params = $parts[1];
-        }
-
-        // For empty $id we need to know the current $ID
-        // We need this check because _simpleTitle needs
-        // correct $id and resolve_pageid() use cleanID($id)
-        // (some things could be lost)
-        if($id === '') {
-            $id = $ID;
-        }
-
-        // default name is based on $id as given
-        $default = $this->_simpleTitle($id);
-
-        // now first resolve and clean up the $id
-        resolve_pageid(getNS($ID), $id, $exists, $this->date_at, true);
-
-        $link = array();
-        $name = $this->_getLinkTitle($name, $default, $isImage, $id, $linktype);
-        if(!$isImage) {
-            if($exists) {
-                $class = 'wikilink1';
-            } else {
-                $class       = 'wikilink2';
-                $link['rel'] = 'nofollow';
-            }
-        } else {
-            $class = 'media';
-        }
-
-        //keep hash anchor
-        @list($id, $hash) = explode('#', $id, 2);
-        if(!empty($hash)) $hash = $this->_headerToLink($hash);
-
-        //prepare for formating
-        $link['target'] = $conf['target']['wiki'];
-        $link['style']  = '';
-        $link['pre']    = '';
-        $link['suf']    = '';
-        // highlight link to current page
-        if($id == $INFO['id']) {
-            $link['pre'] = '<span class="curid">';
-            $link['suf'] = '</span>';
-        }
-        $link['more']   = '';
-        $link['class']  = $class;
-        if($this->date_at) {
-            $params = $params.'&at='.rawurlencode($this->date_at);
-        }
-        $link['url']    = wl($id, $params);
-        $link['name']   = $name;
-        $link['title']  = $id;
-        //add search string
-        if($search) {
-            ($conf['userewrite']) ? $link['url'] .= '?' : $link['url'] .= '&amp;';
-            if(is_array($search)) {
-                $search = array_map('rawurlencode', $search);
-                $link['url'] .= 's[]='.join('&amp;s[]=', $search);
-            } else {
-                $link['url'] .= 's='.rawurlencode($search);
-            }
-        }
-
-        //keep hash
-        if($hash) $link['url'] .= '#'.$hash;
-
-        //output formatted
-        if($returnonly) {
-            return $this->_formatLink($link);
-        } else {
-            $this->doc .= $this->_formatLink($link);
-        }
-    }
-
-    /**
-     * Render an external link
-     *
-     * @param string       $url        full URL with scheme
-     * @param string|array $name       name for the link, array for media file
-     * @param bool         $returnonly whether to return html or write to doc attribute
-     * @return void|string writes to doc attribute or returns html depends on $returnonly
-     */
-    function externallink($url, $name = null, $returnonly = false) {
-        global $conf;
-
-        $name = $this->_getLinkTitle($name, $url, $isImage);
-
-        // url might be an attack vector, only allow registered protocols
-        if(is_null($this->schemes)) $this->schemes = getSchemes();
-        list($scheme) = explode('://', $url);
-        $scheme = strtolower($scheme);
-        if(!in_array($scheme, $this->schemes)) $url = '';
-
-        // is there still an URL?
-        if(!$url) {
-            if($returnonly) {
-                return $name;
-            } else {
-                $this->doc .= $name;
-            }
-            return;
-        }
-
-        // set class
-        if(!$isImage) {
-            $class = 'urlextern';
-        } else {
-            $class = 'media';
-        }
-
-        //prepare for formating
-        $link = array();
-        $link['target'] = $conf['target']['extern'];
-        $link['style']  = '';
-        $link['pre']    = '';
-        $link['suf']    = '';
-        $link['more']   = '';
-        $link['class']  = $class;
-        $link['url']    = $url;
-        $link['rel']    = '';
-
-        $link['name']  = $name;
-        $link['title'] = $this->_xmlEntities($url);
-        if($conf['relnofollow']) $link['rel'] .= ' nofollow';
-        if($conf['target']['extern']) $link['rel'] .= ' noopener';
-
-        //output formatted
-        if($returnonly) {
-            return $this->_formatLink($link);
-        } else {
-            $this->doc .= $this->_formatLink($link);
-        }
-    }
-
-    /**
-     * Render an interwiki link
-     *
-     * You may want to use $this->_resolveInterWiki() here
-     *
-     * @param string       $match      original link - probably not much use
-     * @param string|array $name       name for the link, array for media file
-     * @param string       $wikiName   indentifier (shortcut) for the remote wiki
-     * @param string       $wikiUri    the fragment parsed from the original link
-     * @param bool         $returnonly whether to return html or write to doc attribute
-     * @return void|string writes to doc attribute or returns html depends on $returnonly
-     */
-    function interwikilink($match, $name = null, $wikiName, $wikiUri, $returnonly = false) {
-        global $conf;
-
-        $link           = array();
-        $link['target'] = $conf['target']['interwiki'];
-        $link['pre']    = '';
-        $link['suf']    = '';
-        $link['more']   = '';
-        $link['name']   = $this->_getLinkTitle($name, $wikiUri, $isImage);
-        $link['rel']    = '';
-
-        //get interwiki URL
-        $exists = null;
-        $url    = $this->_resolveInterWiki($wikiName, $wikiUri, $exists);
-
-        if(!$isImage) {
-            $class         = preg_replace('/[^_\-a-z0-9]+/i', '_', $wikiName);
-            $link['class'] = "interwiki iw_$class";
-        } else {
-            $link['class'] = 'media';
-        }
-
-        //do we stay at the same server? Use local target
-        if(strpos($url, DOKU_URL) === 0 OR strpos($url, DOKU_BASE) === 0) {
-            $link['target'] = $conf['target']['wiki'];
-        }
-        if($exists !== null && !$isImage) {
-            if($exists) {
-                $link['class'] .= ' wikilink1';
-            } else {
-                $link['class'] .= ' wikilink2';
-                $link['rel'] .= ' nofollow';
-            }
-        }
-        if($conf['target']['interwiki']) $link['rel'] .= ' noopener';
-
-        $link['url']   = $url;
-        $link['title'] = htmlspecialchars($link['url']);
-
-        //output formatted
-        if($returnonly) {
-            return $this->_formatLink($link);
-        } else {
-            $this->doc .= $this->_formatLink($link);
-        }
-    }
-
-    /**
-     * Link to windows share
-     *
-     * @param string       $url        the link
-     * @param string|array $name       name for the link, array for media file
-     * @param bool         $returnonly whether to return html or write to doc attribute
-     * @return void|string writes to doc attribute or returns html depends on $returnonly
-     */
-    function windowssharelink($url, $name = null, $returnonly = false) {
-        global $conf;
-
-        //simple setup
-        $link = array();
-        $link['target'] = $conf['target']['windows'];
-        $link['pre']    = '';
-        $link['suf']    = '';
-        $link['style']  = '';
-
-        $link['name'] = $this->_getLinkTitle($name, $url, $isImage);
-        if(!$isImage) {
-            $link['class'] = 'windows';
-        } else {
-            $link['class'] = 'media';
-        }
-
-        $link['title'] = $this->_xmlEntities($url);
-        $url           = str_replace('\\', '/', $url);
-        $url           = 'file:///'.$url;
-        $link['url']   = $url;
-
-        //output formatted
-        if($returnonly) {
-            return $this->_formatLink($link);
-        } else {
-            $this->doc .= $this->_formatLink($link);
-        }
-    }
-
-    /**
-     * Render a linked E-Mail Address
-     *
-     * Honors $conf['mailguard'] setting
-     *
-     * @param string       $address    Email-Address
-     * @param string|array $name       name for the link, array for media file
-     * @param bool         $returnonly whether to return html or write to doc attribute
-     * @return void|string writes to doc attribute or returns html depends on $returnonly
-     */
-    function emaillink($address, $name = null, $returnonly = false) {
-        global $conf;
-        //simple setup
-        $link           = array();
-        $link['target'] = '';
-        $link['pre']    = '';
-        $link['suf']    = '';
-        $link['style']  = '';
-        $link['more']   = '';
-
-        $name = $this->_getLinkTitle($name, '', $isImage);
-        if(!$isImage) {
-            $link['class'] = 'mail';
-        } else {
-            $link['class'] = 'media';
-        }
-
-        $address = $this->_xmlEntities($address);
-        $address = obfuscate($address);
-        $title   = $address;
-
-        if(empty($name)) {
-            $name = $address;
-        }
-
-        if($conf['mailguard'] == 'visible') $address = rawurlencode($address);
-
-        $link['url']   = 'mailto:'.$address;
-        $link['name']  = $name;
-        $link['title'] = $title;
-
-        //output formatted
-        if($returnonly) {
-            return $this->_formatLink($link);
-        } else {
-            $this->doc .= $this->_formatLink($link);
-        }
-    }
-
-    /**
-     * Render an internal media file
-     *
-     * @param string $src       media ID
-     * @param string $title     descriptive text
-     * @param string $align     left|center|right
-     * @param int    $width     width of media in pixel
-     * @param int    $height    height of media in pixel
-     * @param string $cache     cache|recache|nocache
-     * @param string $linking   linkonly|detail|nolink
-     * @param bool   $return    return HTML instead of adding to $doc
-     * @return void|string writes to doc attribute or returns html depends on $return
-     */
-    function internalmedia($src, $title = null, $align = null, $width = null,
-                           $height = null, $cache = null, $linking = null, $return = false) {
-        global $ID;
-        if (strpos($src, '#') !== false) {
-            list($src, $hash) = explode('#', $src, 2);
-        }
-        resolve_mediaid(getNS($ID), $src, $exists, $this->date_at, true);
-
-        $noLink = false;
-        $render = ($linking == 'linkonly') ? false : true;
-        $link   = $this->_getMediaLinkConf($src, $title, $align, $width, $height, $cache, $render);
-
-        list($ext, $mime) = mimetype($src, false);
-        if(substr($mime, 0, 5) == 'image' && $render) {
-            $link['url'] = ml($src, array('id' => $ID, 'cache' => $cache, 'rev'=>$this->_getLastMediaRevisionAt($src)), ($linking == 'direct'));
-        } elseif(($mime == 'application/x-shockwave-flash' || media_supportedav($mime)) && $render) {
-            // don't link movies
-            $noLink = true;
-        } else {
-            // add file icons
-            $class = preg_replace('/[^_\-a-z0-9]+/i', '_', $ext);
-            $link['class'] .= ' mediafile mf_'.$class;
-            $link['url'] = ml($src, array('id' => $ID, 'cache' => $cache , 'rev'=>$this->_getLastMediaRevisionAt($src)), true);
-            if($exists) $link['title'] .= ' ('.filesize_h(filesize(mediaFN($src))).')';
-        }
-
-        if (!empty($hash)) $link['url'] .= '#'.$hash;
-
-        //markup non existing files
-        if(!$exists) {
-            $link['class'] .= ' wikilink2';
-        }
-
-        //output formatted
-        if($return) {
-            if($linking == 'nolink' || $noLink) return $link['name'];
-            else return $this->_formatLink($link);
-        } else {
-            if($linking == 'nolink' || $noLink) $this->doc .= $link['name'];
-            else $this->doc .= $this->_formatLink($link);
-        }
-    }
-
-    /**
-     * Render an external media file
-     *
-     * @param string $src     full media URL
-     * @param string $title   descriptive text
-     * @param string $align   left|center|right
-     * @param int    $width   width of media in pixel
-     * @param int    $height  height of media in pixel
-     * @param string $cache   cache|recache|nocache
-     * @param string $linking linkonly|detail|nolink
-     * @param bool   $return  return HTML instead of adding to $doc
-     * @return void|string writes to doc attribute or returns html depends on $return
-     */
-    function externalmedia($src, $title = null, $align = null, $width = null,
-                           $height = null, $cache = null, $linking = null, $return = false) {
-        if(link_isinterwiki($src)){
-            list($shortcut, $reference) = explode('>', $src, 2);
-            $exists = null;
-            $src = $this->_resolveInterWiki($shortcut, $reference, $exists);
-        }
-        list($src, $hash) = explode('#', $src, 2);
-        $noLink = false;
-        $render = ($linking == 'linkonly') ? false : true;
-        $link   = $this->_getMediaLinkConf($src, $title, $align, $width, $height, $cache, $render);
-
-        $link['url'] = ml($src, array('cache' => $cache));
-
-        list($ext, $mime) = mimetype($src, false);
-        if(substr($mime, 0, 5) == 'image' && $render) {
-            // link only jpeg images
-            // if ($ext != 'jpg' && $ext != 'jpeg') $noLink = true;
-        } elseif(($mime == 'application/x-shockwave-flash' || media_supportedav($mime)) && $render) {
-            // don't link movies
-            $noLink = true;
-        } else {
-            // add file icons
-            $class = preg_replace('/[^_\-a-z0-9]+/i', '_', $ext);
-            $link['class'] .= ' mediafile mf_'.$class;
-        }
-
-        if($hash) $link['url'] .= '#'.$hash;
-
-        //output formatted
-        if($return) {
-            if($linking == 'nolink' || $noLink) return $link['name'];
-            else return $this->_formatLink($link);
-        } else {
-            if($linking == 'nolink' || $noLink) $this->doc .= $link['name'];
-            else $this->doc .= $this->_formatLink($link);
-        }
-    }
-
-    /**
-     * Renders an RSS feed
-     *
-     * @param string $url    URL of the feed
-     * @param array  $params Finetuning of the output
-     *
-     * @author Andreas Gohr <andi@splitbrain.org>
-     */
-    function rss($url, $params) {
-        global $lang;
-        global $conf;
-
-        require_once(DOKU_INC.'inc/FeedParser.php');
-        $feed = new FeedParser();
-        $feed->set_feed_url($url);
-
-        //disable warning while fetching
-        if(!defined('DOKU_E_LEVEL')) {
-            $elvl = error_reporting(E_ERROR);
-        }
-        $rc = $feed->init();
-        if(isset($elvl)) {
-            error_reporting($elvl);
-        }
-
-        if($params['nosort']) $feed->enable_order_by_date(false);
-
-        //decide on start and end
-        if($params['reverse']) {
-            $mod   = -1;
-            $start = $feed->get_item_quantity() - 1;
-            $end   = $start - ($params['max']);
-            $end   = ($end < -1) ? -1 : $end;
-        } else {
-            $mod   = 1;
-            $start = 0;
-            $end   = $feed->get_item_quantity();
-            $end   = ($end > $params['max']) ? $params['max'] : $end;
-        }
-
-        $this->doc .= '<ul class="rss">';
-        if($rc) {
-            for($x = $start; $x != $end; $x += $mod) {
-                $item = $feed->get_item($x);
-                $this->doc .= '<li><div class="li">';
-                // support feeds without links
-                $lnkurl = $item->get_permalink();
-                if($lnkurl) {
-                    // title is escaped by SimplePie, we unescape here because it
-                    // is escaped again in externallink() FS#1705
-                    $this->externallink(
-                        $item->get_permalink(),
-                        html_entity_decode($item->get_title(), ENT_QUOTES, 'UTF-8')
-                    );
-                } else {
-                    $this->doc .= ' '.$item->get_title();
-                }
-                if($params['author']) {
-                    $author = $item->get_author(0);
-                    if($author) {
-                        $name = $author->get_name();
-                        if(!$name) $name = $author->get_email();
-                        if($name) $this->doc .= ' '.$lang['by'].' '.hsc($name);
-                    }
-                }
-                if($params['date']) {
-                    $this->doc .= ' ('.$item->get_local_date($conf['dformat']).')';
-                }
-                if($params['details']) {
-                    $this->doc .= '<div class="detail">';
-                    if($conf['htmlok']) {
-                        $this->doc .= $item->get_description();
-                    } else {
-                        $this->doc .= strip_tags($item->get_description());
-                    }
-                    $this->doc .= '</div>';
-                }
-
-                $this->doc .= '</div></li>';
-            }
-        } else {
-            $this->doc .= '<li><div class="li">';
-            $this->doc .= '<em>'.$lang['rssfailed'].'</em>';
-            $this->externallink($url);
-            if($conf['allowdebug']) {
-                $this->doc .= '<!--'.hsc($feed->error).'-->';
-            }
-            $this->doc .= '</div></li>';
-        }
-        $this->doc .= '</ul>';
-    }
-
-    /**
-     * Start a table
-     *
-     * @param int $maxcols maximum number of columns
-     * @param int $numrows NOT IMPLEMENTED
-     * @param int $pos byte position in the original source
-     * @param string|string[] $classes css classes - have to be valid, do not pass unfiltered user input
-     */
-    function table_open($maxcols = null, $numrows = null, $pos = null, $classes = null) {
-        // initialize the row counter used for classes
-        $this->_counter['row_counter'] = 0;
-        $class                         = 'table';
-        if($classes !== null) {
-            if(is_array($classes)) $classes = join(' ', $classes);
-            $class .= ' ' . $classes;
-        }
-        if($pos !== null) {
-            $hid = $this->_headerToLink($class, true);
-            $data = array();
-            $data['target'] = 'table';
-            $data['name'] = '';
-            $data['hid'] = $hid;
-            $class .= ' '.$this->startSectionEdit($pos, $data);
-        }
-        $this->doc .= '<div class="'.$class.'"><table class="inline">'.
-            DOKU_LF;
-    }
-
-    /**
-     * Close a table
-     *
-     * @param int $pos byte position in the original source
-     */
-    function table_close($pos = null) {
-        $this->doc .= '</table></div>'.DOKU_LF;
-        if($pos !== null) {
-            $this->finishSectionEdit($pos);
-        }
-    }
-
-    /**
-     * Open a table header
-     */
-    function tablethead_open() {
-        $this->doc .= DOKU_TAB.'<thead>'.DOKU_LF;
-    }
-
-    /**
-     * Close a table header
-     */
-    function tablethead_close() {
-        $this->doc .= DOKU_TAB.'</thead>'.DOKU_LF;
-    }
-
-    /**
-     * Open a table body
-     */
-    function tabletbody_open() {
-        $this->doc .= DOKU_TAB.'<tbody>'.DOKU_LF;
-    }
-
-    /**
-     * Close a table body
-     */
-    function tabletbody_close() {
-        $this->doc .= DOKU_TAB.'</tbody>'.DOKU_LF;
-    }
-
-    /**
-     * Open a table footer
-     */
-    function tabletfoot_open() {
-        $this->doc .= DOKU_TAB.'<tfoot>'.DOKU_LF;
-    }
-
-    /**
-     * Close a table footer
-     */
-    function tabletfoot_close() {
-        $this->doc .= DOKU_TAB.'</tfoot>'.DOKU_LF;
-    }
-
-    /**
-     * Open a table row
-     *
-     * @param string|string[] $classes css classes - have to be valid, do not pass unfiltered user input
-     */
-    function tablerow_open($classes = null) {
-        // initialize the cell counter used for classes
-        $this->_counter['cell_counter'] = 0;
-        $class                          = 'row'.$this->_counter['row_counter']++;
-        if($classes !== null) {
-            if(is_array($classes)) $classes = join(' ', $classes);
-            $class .= ' ' . $classes;
-        }
-        $this->doc .= DOKU_TAB.'<tr class="'.$class.'">'.DOKU_LF.DOKU_TAB.DOKU_TAB;
-    }
-
-    /**
-     * Close a table row
-     */
-    function tablerow_close() {
-        $this->doc .= DOKU_LF.DOKU_TAB.'</tr>'.DOKU_LF;
-    }
-
-    /**
-     * Open a table header cell
-     *
-     * @param int    $colspan
-     * @param string $align left|center|right
-     * @param int    $rowspan
-     * @param string|string[] $classes css classes - have to be valid, do not pass unfiltered user input
-     */
-    function tableheader_open($colspan = 1, $align = null, $rowspan = 1, $classes = null) {
-        $class = 'class="col'.$this->_counter['cell_counter']++;
-        if(!is_null($align)) {
-            $class .= ' '.$align.'align';
-        }
-        if($classes !== null) {
-            if(is_array($classes)) $classes = join(' ', $classes);
-            $class .= ' ' . $classes;
-        }
-        $class .= '"';
-        $this->doc .= '<th '.$class;
-        if($colspan > 1) {
-            $this->_counter['cell_counter'] += $colspan - 1;
-            $this->doc .= ' colspan="'.$colspan.'"';
-        }
-        if($rowspan > 1) {
-            $this->doc .= ' rowspan="'.$rowspan.'"';
-        }
-        $this->doc .= '>';
-    }
-
-    /**
-     * Close a table header cell
-     */
-    function tableheader_close() {
-        $this->doc .= '</th>';
-    }
-
-    /**
-     * Open a table cell
-     *
-     * @param int       $colspan
-     * @param string    $align left|center|right
-     * @param int       $rowspan
-     * @param string|string[]    $classes css classes - have to be valid, do not pass unfiltered user input
-     */
-    function tablecell_open($colspan = 1, $align = null, $rowspan = 1, $classes = null) {
-        $class = 'class="col'.$this->_counter['cell_counter']++;
-        if(!is_null($align)) {
-            $class .= ' '.$align.'align';
-        }
-        if($classes !== null) {
-            if(is_array($classes)) $classes = join(' ', $classes);
-            $class .= ' ' . $classes;
-        }
-        $class .= '"';
-        $this->doc .= '<td '.$class;
-        if($colspan > 1) {
-            $this->_counter['cell_counter'] += $colspan - 1;
-            $this->doc .= ' colspan="'.$colspan.'"';
-        }
-        if($rowspan > 1) {
-            $this->doc .= ' rowspan="'.$rowspan.'"';
-        }
-        $this->doc .= '>';
-    }
-
-    /**
-     * Close a table cell
-     */
-    function tablecell_close() {
-        $this->doc .= '</td>';
-    }
-
-    /**
-     * Returns the current header level.
-     * (required e.g. by the filelist plugin)
-     *
-     * @return int The current header level
-     */
-    function getLastlevel() {
-        return $this->lastlevel;
-    }
-
-    #region Utility functions
-
-    /**
-     * Build a link
-     *
-     * Assembles all parts defined in $link returns HTML for the link
-     *
-     * @param array $link attributes of a link
-     * @return string
-     *
-     * @author Andreas Gohr <andi@splitbrain.org>
-     */
-    function _formatLink($link) {
-        //make sure the url is XHTML compliant (skip mailto)
-        if(substr($link['url'], 0, 7) != 'mailto:') {
-            $link['url'] = str_replace('&', '&amp;', $link['url']);
-            $link['url'] = str_replace('&amp;amp;', '&amp;', $link['url']);
-        }
-        //remove double encodings in titles
-        $link['title'] = str_replace('&amp;amp;', '&amp;', $link['title']);
-
-        // be sure there are no bad chars in url or title
-        // (we can't do this for name because it can contain an img tag)
-        $link['url']   = strtr($link['url'], array('>' => '%3E', '<' => '%3C', '"' => '%22'));
-        $link['title'] = strtr($link['title'], array('>' => '&gt;', '<' => '&lt;', '"' => '&quot;'));
-
-        $ret = '';
-        $ret .= $link['pre'];
-        $ret .= '<a href="'.$link['url'].'"';
-        if(!empty($link['class'])) $ret .= ' class="'.$link['class'].'"';
-        if(!empty($link['target'])) $ret .= ' target="'.$link['target'].'"';
-        if(!empty($link['title'])) $ret .= ' title="'.$link['title'].'"';
-        if(!empty($link['style'])) $ret .= ' style="'.$link['style'].'"';
-        if(!empty($link['rel'])) $ret .= ' rel="'.trim($link['rel']).'"';
-        if(!empty($link['more'])) $ret .= ' '.$link['more'];
-        $ret .= '>';
-        $ret .= $link['name'];
-        $ret .= '</a>';
-        $ret .= $link['suf'];
-        return $ret;
-    }
-
-    /**
-     * Renders internal and external media
-     *
-     * @author Andreas Gohr <andi@splitbrain.org>
-     * @param string $src       media ID
-     * @param string $title     descriptive text
-     * @param string $align     left|center|right
-     * @param int    $width     width of media in pixel
-     * @param int    $height    height of media in pixel
-     * @param string $cache     cache|recache|nocache
-     * @param bool   $render    should the media be embedded inline or just linked
-     * @return string
-     */
-    function _media($src, $title = null, $align = null, $width = null,
-                    $height = null, $cache = null, $render = true) {
-
-        $ret = '';
-
-        list($ext, $mime) = mimetype($src);
-        if(substr($mime, 0, 5) == 'image') {
-            // first get the $title
-            if(!is_null($title)) {
-                $title = $this->_xmlEntities($title);
-            } elseif($ext == 'jpg' || $ext == 'jpeg') {
-                //try to use the caption from IPTC/EXIF
-                require_once(DOKU_INC.'inc/JpegMeta.php');
-                $jpeg = new JpegMeta(mediaFN($src));
-                if($jpeg !== false) $cap = $jpeg->getTitle();
-                if(!empty($cap)) {
-                    $title = $this->_xmlEntities($cap);
-                }
-            }
-            if(!$render) {
-                // if the picture is not supposed to be rendered
-                // return the title of the picture
-                if(!$title) {
-                    // just show the sourcename
-                    $title = $this->_xmlEntities(utf8_basename(noNS($src)));
-                }
-                return $title;
-            }
-            //add image tag
-            $ret .= '<img src="'.ml($src, array('w' => $width, 'h' => $height, 'cache' => $cache, 'rev'=>$this->_getLastMediaRevisionAt($src))).'"';
-            $ret .= ' class="media'.$align.'"';
-
-            if($title) {
-                $ret .= ' title="'.$title.'"';
-                $ret .= ' alt="'.$title.'"';
-            } else {
-                $ret .= ' alt=""';
-            }
-
-            if(!is_null($width))
-                $ret .= ' width="'.$this->_xmlEntities($width).'"';
-
-            if(!is_null($height))
-                $ret .= ' height="'.$this->_xmlEntities($height).'"';
-
-            $ret .= ' />';
-
-        } elseif(media_supportedav($mime, 'video') || media_supportedav($mime, 'audio')) {
-            // first get the $title
-            $title = !is_null($title) ? $this->_xmlEntities($title) : false;
-            if(!$render) {
-                // if the file is not supposed to be rendered
-                // return the title of the file (just the sourcename if there is no title)
-                return $title ? $title : $this->_xmlEntities(utf8_basename(noNS($src)));
-            }
-
-            $att          = array();
-            $att['class'] = "media$align";
-            if($title) {
-                $att['title'] = $title;
-            }
-
-            if(media_supportedav($mime, 'video')) {
-                //add video
-                $ret .= $this->_video($src, $width, $height, $att);
-            }
-            if(media_supportedav($mime, 'audio')) {
-                //add audio
-                $ret .= $this->_audio($src, $att);
-            }
-
-        } elseif($mime == 'application/x-shockwave-flash') {
-            if(!$render) {
-                // if the flash is not supposed to be rendered
-                // return the title of the flash
-                if(!$title) {
-                    // just show the sourcename
-                    $title = utf8_basename(noNS($src));
-                }
-                return $this->_xmlEntities($title);
-            }
-
-            $att          = array();
-            $att['class'] = "media$align";
-            if($align == 'right') $att['align'] = 'right';
-            if($align == 'left') $att['align'] = 'left';
-            $ret .= html_flashobject(
-                ml($src, array('cache' => $cache), true, '&'), $width, $height,
-                array('quality' => 'high'),
-                null,
-                $att,
-                $this->_xmlEntities($title)
-            );
-        } elseif($title) {
-            // well at least we have a title to display
-            $ret .= $this->_xmlEntities($title);
-        } else {
-            // just show the sourcename
-            $ret .= $this->_xmlEntities(utf8_basename(noNS($src)));
-        }
-
-        return $ret;
-    }
-
-    /**
-     * Escape string for output
-     *
-     * @param $string
-     * @return string
-     */
-    function _xmlEntities($string) {
-        return htmlspecialchars($string, ENT_QUOTES, 'UTF-8');
-    }
-
-    /**
-     * Creates a linkid from a headline
-     *
-     * @author Andreas Gohr <andi@splitbrain.org>
-     * @param string  $title   The headline title
-     * @param boolean $create  Create a new unique ID?
-     * @return string
-     */
-    function _headerToLink($title, $create = false) {
-        if($create) {
-            return sectionID($title, $this->headers);
-        } else {
-            $check = false;
-            return sectionID($title, $check);
-        }
-    }
-
-    /**
-     * Construct a title and handle images in titles
-     *
-     * @author Harry Fuecks <hfuecks@gmail.com>
-     * @param string|array $title    either string title or media array
-     * @param string       $default  default title if nothing else is found
-     * @param bool         $isImage  will be set to true if it's a media file
-     * @param null|string  $id       linked page id (used to extract title from first heading)
-     * @param string       $linktype content|navigation
-     * @return string      HTML of the title, might be full image tag or just escaped text
-     */
-    function _getLinkTitle($title, $default, &$isImage, $id = null, $linktype = 'content') {
-        $isImage = false;
-        if(is_array($title)) {
-            $isImage = true;
-            return $this->_imageTitle($title);
-        } elseif(is_null($title) || trim($title) == '') {
-            if(useHeading($linktype) && $id) {
-                $heading = p_get_first_heading($id);
-                if(!blank($heading)) {
-                    return $this->_xmlEntities($heading);
-                }
-            }
-            return $this->_xmlEntities($default);
-        } else {
-            return $this->_xmlEntities($title);
-        }
-    }
-
-    /**
-     * Returns HTML code for images used in link titles
-     *
-     * @author Andreas Gohr <andi@splitbrain.org>
-     * @param array $img
-     * @return string HTML img tag or similar
-     */
-    function _imageTitle($img) {
-        global $ID;
-
-        // some fixes on $img['src']
-        // see internalmedia() and externalmedia()
-        list($img['src']) = explode('#', $img['src'], 2);
-        if($img['type'] == 'internalmedia') {
-            resolve_mediaid(getNS($ID), $img['src'], $exists ,$this->date_at, true);
-        }
-
-        return $this->_media(
-            $img['src'],
-            $img['title'],
-            $img['align'],
-            $img['width'],
-            $img['height'],
-            $img['cache']
-        );
-    }
-
-    /**
-     * helperfunction to return a basic link to a media
-     *
-     * used in internalmedia() and externalmedia()
-     *
-     * @author   Pierre Spring <pierre.spring@liip.ch>
-     * @param string $src       media ID
-     * @param string $title     descriptive text
-     * @param string $align     left|center|right
-     * @param int    $width     width of media in pixel
-     * @param int    $height    height of media in pixel
-     * @param string $cache     cache|recache|nocache
-     * @param bool   $render    should the media be embedded inline or just linked
-     * @return array associative array with link config
-     */
-    function _getMediaLinkConf($src, $title, $align, $width, $height, $cache, $render) {
-        global $conf;
-
-        $link           = array();
-        $link['class']  = 'media';
-        $link['style']  = '';
-        $link['pre']    = '';
-        $link['suf']    = '';
-        $link['more']   = '';
-        $link['target'] = $conf['target']['media'];
-        if($conf['target']['media']) $link['rel'] = 'noopener';
-        $link['title']  = $this->_xmlEntities($src);
-        $link['name']   = $this->_media($src, $title, $align, $width, $height, $cache, $render);
-
-        return $link;
-    }
-
-    /**
-     * Embed video(s) in HTML
-     *
-     * @author Anika Henke <anika@selfthinker.org>
-     * @author Schplurtz le Déboulonné <Schplurtz@laposte.net>
-     *
-     * @param string $src         - ID of video to embed
-     * @param int    $width       - width of the video in pixels
-     * @param int    $height      - height of the video in pixels
-     * @param array  $atts        - additional attributes for the <video> tag
-     * @return string
-     */
-    function _video($src, $width, $height, $atts = null) {
-        // prepare width and height
-        if(is_null($atts)) $atts = array();
-        $atts['width']  = (int) $width;
-        $atts['height'] = (int) $height;
-        if(!$atts['width']) $atts['width'] = 320;
-        if(!$atts['height']) $atts['height'] = 240;
-
-        $posterUrl = '';
-        $files = array();
-        $tracks = array();
-        $isExternal = media_isexternal($src);
-
-        if ($isExternal) {
-            // take direct source for external files
-            list(/*ext*/, $srcMime) = mimetype($src);
-            $files[$srcMime] = $src;
-        } else {
-            // prepare alternative formats
-            $extensions   = array('webm', 'ogv', 'mp4');
-            $files        = media_alternativefiles($src, $extensions);
-            $poster       = media_alternativefiles($src, array('jpg', 'png'));
-            $tracks       = media_trackfiles($src);
-            if(!empty($poster)) {
-                $posterUrl = ml(reset($poster), '', true, '&');
-            }
-        }
-
-        $out = '';
-        // open video tag
-        $out .= '<video '.buildAttributes($atts).' controls="controls"';
-        if($posterUrl) $out .= ' poster="'.hsc($posterUrl).'"';
-        $out .= '>'.NL;
-        $fallback = '';
-
-        // output source for each alternative video format
-        foreach($files as $mime => $file) {
-            if ($isExternal) {
-                $url = $file;
-                $linkType = 'externalmedia';
-            } else {
-                $url = ml($file, '', true, '&');
-                $linkType = 'internalmedia';
-            }
-            $title = $atts['title'] ? $atts['title'] : $this->_xmlEntities(utf8_basename(noNS($file)));
-
-            $out .= '<source src="'.hsc($url).'" type="'.$mime.'" />'.NL;
-            // alternative content (just a link to the file)
-            $fallback .= $this->$linkType($file, $title, null, null, null, $cache = null, $linking = 'linkonly', $return = true);
-        }
-
-        // output each track if any
-        foreach( $tracks as $trackid => $info ) {
-            list( $kind, $srclang ) = array_map( 'hsc', $info );
-            $out .= "<track kind=\"$kind\" srclang=\"$srclang\" ";
-            $out .= "label=\"$srclang\" ";
-            $out .= 'src="'.ml($trackid, '', true).'">'.NL;
-        }
-
-        // finish
-        $out .= $fallback;
-        $out .= '</video>'.NL;
-        return $out;
-    }
-
-    /**
-     * Embed audio in HTML
-     *
-     * @author Anika Henke <anika@selfthinker.org>
-     *
-     * @param string $src       - ID of audio to embed
-     * @param array  $atts      - additional attributes for the <audio> tag
-     * @return string
-     */
-    function _audio($src, $atts = array()) {
-        $files = array();
-        $isExternal = media_isexternal($src);
-
-        if ($isExternal) {
-            // take direct source for external files
-            list(/*ext*/, $srcMime) = mimetype($src);
-            $files[$srcMime] = $src;
-        } else {
-            // prepare alternative formats
-            $extensions   = array('ogg', 'mp3', 'wav');
-            $files        = media_alternativefiles($src, $extensions);
-        }
-
-        $out = '';
-        // open audio tag
-        $out .= '<audio '.buildAttributes($atts).' controls="controls">'.NL;
-        $fallback = '';
-
-        // output source for each alternative audio format
-        foreach($files as $mime => $file) {
-            if ($isExternal) {
-                $url = $file;
-                $linkType = 'externalmedia';
-            } else {
-                $url = ml($file, '', true, '&');
-                $linkType = 'internalmedia';
-            }
-            $title = $atts['title'] ? $atts['title'] : $this->_xmlEntities(utf8_basename(noNS($file)));
-
-            $out .= '<source src="'.hsc($url).'" type="'.$mime.'" />'.NL;
-            // alternative content (just a link to the file)
-            $fallback .= $this->$linkType($file, $title, null, null, null, $cache = null, $linking = 'linkonly', $return = true);
-        }
-
-        // finish
-        $out .= $fallback;
-        $out .= '</audio>'.NL;
-        return $out;
-    }
-
-    /**
-     * _getLastMediaRevisionAt is a helperfunction to internalmedia() and _media()
-     * which returns an existing media revision less or equal to rev or date_at
-     *
-     * @author lisps
-     * @param string $media_id
-     * @access protected
-     * @return string revision ('' for current)
-     */
-    function _getLastMediaRevisionAt($media_id){
-        if(!$this->date_at || media_isexternal($media_id)) return '';
-        $pagelog = new MediaChangeLog($media_id);
-        return $pagelog->getLastRevisionAt($this->date_at);
-    }
-
-    #endregion
-}
-
-//Setup VIM: ex: et ts=4 :
diff --git a/wiki/inc/parser/xhtmlsummary.php b/wiki/inc/parser/xhtmlsummary.php
deleted file mode 100644
index 867b71f..0000000
--- a/wiki/inc/parser/xhtmlsummary.php
+++ /dev/null
@@ -1,89 +0,0 @@
-<?php
-if(!defined('DOKU_INC')) die('meh.');
-
-/**
- * The summary XHTML form selects either up to the first two paragraphs
- * it find in a page or the first section (whichever comes first)
- * It strips out the table of contents if one exists
- * Section divs are not used - everything should be nested in a single
- * div with CSS class "page"
- * Headings have their a name link removed and section editing links
- * removed
- * It also attempts to capture the first heading in a page for
- * use as the title of the page.
- *
- *
- * @author Harry Fuecks <hfuecks@gmail.com>
- * @todo   Is this currently used anywhere? Should it?
- */
-class Doku_Renderer_xhtmlsummary extends Doku_Renderer_xhtml {
-
-    // Namespace these variables to
-    // avoid clashes with parent classes
-    var $sum_paragraphs = 0;
-    var $sum_capture = true;
-    var $sum_inSection = false;
-    var $sum_summary = '';
-    var $sum_pageTitle = false;
-
-    function document_start() {
-        $this->doc .= DOKU_LF.'<div>'.DOKU_LF;
-    }
-
-    function document_end() {
-        $this->doc = $this->sum_summary;
-        $this->doc .= DOKU_LF.'</div>'.DOKU_LF;
-    }
-
-    // FIXME not supported anymore
-    function toc_open() {
-        $this->sum_summary .= $this->doc;
-    }
-
-    // FIXME not supported anymore
-    function toc_close() {
-        $this->doc = '';
-    }
-
-    function header($text, $level, $pos) {
-        if ( !$this->sum_pageTitle ) {
-            $this->info['sum_pagetitle'] = $text;
-            $this->sum_pageTitle = true;
-        }
-        $this->doc .= DOKU_LF.'<h'.$level.'>';
-        $this->doc .= $this->_xmlEntities($text);
-        $this->doc .= "</h$level>".DOKU_LF;
-    }
-
-    function section_open($level) {
-        if ( $this->sum_capture ) {
-            $this->sum_inSection = true;
-        }
-    }
-
-    function section_close() {
-        if ( $this->sum_capture && $this->sum_inSection ) {
-            $this->sum_summary .= $this->doc;
-            $this->sum_capture = false;
-        }
-    }
-
-    function p_open() {
-        if ( $this->sum_capture && $this->sum_paragraphs < 2 ) {
-            $this->sum_paragraphs++;
-        }
-        parent :: p_open();
-    }
-
-    function p_close() {
-        parent :: p_close();
-        if ( $this->sum_capture && $this->sum_paragraphs >= 2 ) {
-            $this->sum_summary .= $this->doc;
-            $this->sum_capture = false;
-        }
-    }
-
-}
-
-
-//Setup VIM: ex: et ts=2 :
diff --git a/wiki/inc/parserutils.php b/wiki/inc/parserutils.php
deleted file mode 100644
index 5b0cab0..0000000
--- a/wiki/inc/parserutils.php
+++ /dev/null
@@ -1,790 +0,0 @@
-<?php
-/**
- * Utilities for accessing the parser
- *
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * @author     Harry Fuecks <hfuecks@gmail.com>
- * @author     Andreas Gohr <andi@splitbrain.org>
- */
-
-if(!defined('DOKU_INC')) die('meh.');
-
-/**
- * How many pages shall be rendered for getting metadata during one request
- * at maximum? Note that this limit isn't respected when METADATA_RENDER_UNLIMITED
- * is passed as render parameter to p_get_metadata.
- */
-if (!defined('P_GET_METADATA_RENDER_LIMIT')) define('P_GET_METADATA_RENDER_LIMIT', 5);
-
-/** Don't render metadata even if it is outdated or doesn't exist */
-define('METADATA_DONT_RENDER', 0);
-/**
- * Render metadata when the page is really newer or the metadata doesn't exist.
- * Uses just a simple check, but should work pretty well for loading simple
- * metadata values like the page title and avoids rendering a lot of pages in
- * one request. The P_GET_METADATA_RENDER_LIMIT is used in this mode.
- * Use this if it is unlikely that the metadata value you are requesting
- * does depend e.g. on pages that are included in the current page using
- * the include plugin (this is very likely the case for the page title, but
- * not for relation references).
- */
-define('METADATA_RENDER_USING_SIMPLE_CACHE', 1);
-/**
- * Render metadata using the metadata cache logic. The P_GET_METADATA_RENDER_LIMIT
- * is used in this mode. Use this mode when you are requesting more complex
- * metadata. Although this will cause rendering more often it might actually have
- * the effect that less current metadata is returned as it is more likely than in
- * the simple cache mode that metadata needs to be rendered for all pages at once
- * which means that when the metadata for the page is requested that actually needs
- * to be updated the limit might have been reached already.
- */
-define('METADATA_RENDER_USING_CACHE', 2);
-/**
- * Render metadata without limiting the number of pages for which metadata is
- * rendered. Use this mode with care, normally it should only be used in places
- * like the indexer or in cli scripts where the execution time normally isn't
- * limited. This can be combined with the simple cache using
- * METADATA_RENDER_USING_CACHE | METADATA_RENDER_UNLIMITED.
- */
-define('METADATA_RENDER_UNLIMITED', 4);
-
-/**
- * Returns the parsed Wikitext in XHTML for the given id and revision.
- *
- * If $excuse is true an explanation is returned if the file
- * wasn't found
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- *
- * @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=''){
-    $file = wikiFN($id,$rev);
-    $ret  = '';
-
-    //ensure $id is in global $ID (needed for parsing)
-    global $ID;
-    $keep = $ID;
-    $ID   = $id;
-
-    if($rev || $date_at){
-        if(file_exists($file)){
-            $ret = p_render('xhtml',p_get_instructions(io_readWikiPage($file,$id,$rev)),$info,$date_at); //no caching on old revisions
-        }elseif($excuse){
-            $ret = p_locale_xhtml('norev');
-        }
-    }else{
-        if(file_exists($file)){
-            $ret = p_cached_output($file,'xhtml',$id);
-        }elseif($excuse){
-            $ret = p_locale_xhtml('newpage');
-        }
-    }
-
-    //restore ID (just in case)
-    $ID = $keep;
-
-    return $ret;
-}
-
-/**
- * Returns the specified local text in parsed format
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- *
- * @param string $id page id
- * @return null|string
- */
-function p_locale_xhtml($id){
-    //fetch parsed locale
-    $html = p_cached_output(localeFN($id));
-    return $html;
-}
-
-/**
- * Returns the given file parsed into the requested output format
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- * @author Chris Smith <chris@jalakai.co.uk>
- *
- * @param string $file filename, path to file
- * @param string $format
- * @param string $id page id
- * @return null|string
- */
-function p_cached_output($file, $format='xhtml', $id='') {
-    global $conf;
-
-    $cache = new cache_renderer($id, $file, $format);
-    if ($cache->useCache()) {
-        $parsed = $cache->retrieveCache(false);
-        if($conf['allowdebug'] && $format=='xhtml') {
-            $parsed .= "\n<!-- cachefile {$cache->cache} used -->\n";
-        }
-    } else {
-        $parsed = p_render($format, p_cached_instructions($file,false,$id), $info);
-
-        if ($info['cache'] && $cache->storeCache($parsed)) {              // storeCache() attempts to save cachefile
-            if($conf['allowdebug'] && $format=='xhtml') {
-                $parsed .= "\n<!-- no cachefile used, but created {$cache->cache} -->\n";
-            }
-        }else{
-            $cache->removeCache();                     //try to delete cachefile
-            if($conf['allowdebug'] && $format=='xhtml') {
-                $parsed .= "\n<!-- no cachefile used, caching forbidden -->\n";
-            }
-        }
-    }
-
-    return $parsed;
-}
-
-/**
- * Returns the render instructions for a file
- *
- * Uses and creates a serialized cache file
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- *
- * @param string $file      filename, path to file
- * @param bool   $cacheonly
- * @param string $id        page id
- * @return array|null
- */
-function p_cached_instructions($file,$cacheonly=false,$id='') {
-    static $run = null;
-    if(is_null($run)) $run = array();
-
-    $cache = new cache_instructions($id, $file);
-
-    if ($cacheonly || $cache->useCache() || (isset($run[$file]) && !defined('DOKU_UNITTEST'))) {
-        return $cache->retrieveCache();
-    } else if (file_exists($file)) {
-        // no cache - do some work
-        $ins = p_get_instructions(io_readWikiPage($file,$id));
-        if ($cache->storeCache($ins)) {
-            $run[$file] = true; // we won't rebuild these instructions in the same run again
-        } else {
-            msg('Unable to save cache file. Hint: disk full; file permissions; safe_mode setting.',-1);
-        }
-        return $ins;
-    }
-
-    return null;
-}
-
-/**
- * turns a page into a list of instructions
- *
- * @author Harry Fuecks <hfuecks@gmail.com>
- * @author Andreas Gohr <andi@splitbrain.org>
- *
- * @param string $text  raw wiki syntax text
- * @return array a list of instruction arrays
- */
-function p_get_instructions($text){
-
-    $modes = p_get_parsermodes();
-
-    // Create the parser
-    $Parser = new Doku_Parser();
-
-    // Add the Handler
-    $Parser->Handler = new Doku_Handler();
-
-    //add modes to parser
-    foreach($modes as $mode){
-        $Parser->addMode($mode['mode'],$mode['obj']);
-    }
-
-    // Do the parsing
-    trigger_event('PARSER_WIKITEXT_PREPROCESS', $text);
-    $p = $Parser->parse($text);
-    //  dbg($p);
-    return $p;
-}
-
-/**
- * returns the metadata of a page
- *
- * @param string $id      The id of the page the metadata should be returned from
- * @param string $key     The key of the metdata value that shall be read (by default everything) - separate hierarchies by " " like "date created"
- * @param int    $render  If the page should be rendererd - possible values:
- *     METADATA_DONT_RENDER, METADATA_RENDER_USING_SIMPLE_CACHE, METADATA_RENDER_USING_CACHE
- *     METADATA_RENDER_UNLIMITED (also combined with the previous two options),
- *     default: METADATA_RENDER_USING_CACHE
- * @return mixed The requested metadata fields
- *
- * @author Esther Brunner <esther@kaffeehaus.ch>
- * @author Michael Hamann <michael@content-space.de>
- */
-function p_get_metadata($id, $key='', $render=METADATA_RENDER_USING_CACHE){
-    global $ID;
-    static $render_count = 0;
-    // track pages that have already been rendered in order to avoid rendering the same page
-    // again
-    static $rendered_pages = array();
-
-    // cache the current page
-    // Benchmarking shows the current page's metadata is generally the only page metadata
-    // accessed several times. This may catch a few other pages, but that shouldn't be an issue.
-    $cache = ($ID == $id);
-    $meta = p_read_metadata($id, $cache);
-
-    if (!is_numeric($render)) {
-        if ($render) {
-            $render = METADATA_RENDER_USING_SIMPLE_CACHE;
-        } else {
-            $render = METADATA_DONT_RENDER;
-        }
-    }
-
-    // prevent recursive calls in the cache
-    static $recursion = false;
-    if (!$recursion && $render != METADATA_DONT_RENDER && !isset($rendered_pages[$id])&& page_exists($id)){
-        $recursion = true;
-
-        $cachefile = new cache_renderer($id, wikiFN($id), 'metadata');
-
-        $do_render = false;
-        if ($render & METADATA_RENDER_UNLIMITED || $render_count < P_GET_METADATA_RENDER_LIMIT) {
-            if ($render & METADATA_RENDER_USING_SIMPLE_CACHE) {
-                $pagefn = wikiFN($id);
-                $metafn = metaFN($id, '.meta');
-                if (!file_exists($metafn) || @filemtime($pagefn) > @filemtime($cachefile->cache)) {
-                    $do_render = true;
-                }
-            } elseif (!$cachefile->useCache()){
-                $do_render = true;
-            }
-        }
-        if ($do_render) {
-            if (!defined('DOKU_UNITTEST')) {
-                ++$render_count;
-                $rendered_pages[$id] = true;
-            }
-            $old_meta = $meta;
-            $meta = p_render_metadata($id, $meta);
-            // only update the file when the metadata has been changed
-            if ($meta == $old_meta || p_save_metadata($id, $meta)) {
-                // store a timestamp in order to make sure that the cachefile is touched
-                // this timestamp is also stored when the meta data is still the same
-                $cachefile->storeCache(time());
-            } else {
-                msg('Unable to save metadata file. Hint: disk full; file permissions; safe_mode setting.',-1);
-            }
-        }
-
-        $recursion = false;
-    }
-
-    $val = $meta['current'];
-
-    // filter by $key
-    foreach(preg_split('/\s+/', $key, 2, PREG_SPLIT_NO_EMPTY) as $cur_key) {
-        if (!isset($val[$cur_key])) {
-            return null;
-        }
-        $val = $val[$cur_key];
-    }
-    return $val;
-}
-
-/**
- * sets metadata elements of a page
- *
- * @see http://www.dokuwiki.org/devel:metadata#functions_to_get_and_set_metadata
- *
- * @param String  $id         is the ID of a wiki page
- * @param Array   $data       is an array with key ⇒ value pairs to be set in the metadata
- * @param Boolean $render     whether or not the page metadata should be generated with the renderer
- * @param Boolean $persistent indicates whether or not the particular metadata value will persist through
- *                            the next metadata rendering.
- * @return boolean true on success
- *
- * @author Esther Brunner <esther@kaffeehaus.ch>
- * @author Michael Hamann <michael@content-space.de>
- */
-function p_set_metadata($id, $data, $render=false, $persistent=true){
-    if (!is_array($data)) return false;
-
-    global $ID, $METADATA_RENDERERS;
-
-    // if there is currently a renderer change the data in the renderer instead
-    if (isset($METADATA_RENDERERS[$id])) {
-        $orig =& $METADATA_RENDERERS[$id];
-        $meta = $orig;
-    } else {
-        // cache the current page
-        $cache = ($ID == $id);
-        $orig = p_read_metadata($id, $cache);
-
-        // render metadata first?
-        $meta = $render ? p_render_metadata($id, $orig) : $orig;
-    }
-
-    // now add the passed metadata
-    $protected = array('description', 'date', 'contributor');
-    foreach ($data as $key => $value){
-
-        // be careful with sub-arrays of $meta['relation']
-        if ($key == 'relation'){
-
-            foreach ($value as $subkey => $subvalue){
-                if(isset($meta['current'][$key][$subkey]) && is_array($meta['current'][$key][$subkey])) {
-                    $meta['current'][$key][$subkey] = array_replace($meta['current'][$key][$subkey], (array)$subvalue);
-                } else {
-                    $meta['current'][$key][$subkey] = $subvalue;
-                }
-                if($persistent) {
-                    if(isset($meta['persistent'][$key][$subkey]) && is_array($meta['persistent'][$key][$subkey])) {
-                        $meta['persistent'][$key][$subkey] = array_replace($meta['persistent'][$key][$subkey], (array)$subvalue);
-                    } else {
-                        $meta['persistent'][$key][$subkey] = $subvalue;
-                    }
-                }
-            }
-
-            // be careful with some senisitive arrays of $meta
-        } elseif (in_array($key, $protected)){
-
-            // these keys, must have subkeys - a legitimate value must be an array
-            if (is_array($value)) {
-                $meta['current'][$key] = !empty($meta['current'][$key]) ? array_replace((array)$meta['current'][$key],$value) : $value;
-
-                if ($persistent) {
-                    $meta['persistent'][$key] = !empty($meta['persistent'][$key]) ? array_replace((array)$meta['persistent'][$key],$value) : $value;
-                }
-            }
-
-            // no special treatment for the rest
-        } else {
-            $meta['current'][$key] = $value;
-            if ($persistent) $meta['persistent'][$key] = $value;
-        }
-    }
-
-    // save only if metadata changed
-    if ($meta == $orig) return true;
-
-    if (isset($METADATA_RENDERERS[$id])) {
-        // set both keys individually as the renderer has references to the individual keys
-        $METADATA_RENDERERS[$id]['current']    = $meta['current'];
-        $METADATA_RENDERERS[$id]['persistent'] = $meta['persistent'];
-        return true;
-    } else {
-        return p_save_metadata($id, $meta);
-    }
-}
-
-/**
- * Purges the non-persistant part of the meta data
- * used on page deletion
- *
- * @author Michael Klier <chi@chimeric.de>
- *
- * @param string $id page id
- * @return bool  success / fail
- */
-function p_purge_metadata($id) {
-    $meta = p_read_metadata($id);
-    foreach($meta['current'] as $key => $value) {
-        if(is_array($meta[$key])) {
-            $meta['current'][$key] = array();
-        } else {
-            $meta['current'][$key] = '';
-        }
-
-    }
-    return p_save_metadata($id, $meta);
-}
-
-/**
- * read the metadata from source/cache for $id
- * (internal use only - called by p_get_metadata & p_set_metadata)
- *
- * @author   Christopher Smith <chris@jalakai.co.uk>
- *
- * @param    string   $id      absolute wiki page id
- * @param    bool     $cache   whether or not to cache metadata in memory
- *                             (only use for metadata likely to be accessed several times)
- *
- * @return   array             metadata
- */
-function p_read_metadata($id,$cache=false) {
-    global $cache_metadata;
-
-    if (isset($cache_metadata[(string)$id])) return $cache_metadata[(string)$id];
-
-    $file = metaFN($id, '.meta');
-    $meta = file_exists($file) ? unserialize(io_readFile($file, false)) : array('current'=>array(),'persistent'=>array());
-
-    if ($cache) {
-        $cache_metadata[(string)$id] = $meta;
-    }
-
-    return $meta;
-}
-
-/**
- * This is the backend function to save a metadata array to a file
- *
- * @param    string   $id      absolute wiki page id
- * @param    array    $meta    metadata
- *
- * @return   bool              success / fail
- */
-function p_save_metadata($id, $meta) {
-    // sync cached copies, including $INFO metadata
-    global $cache_metadata, $INFO;
-
-    if (isset($cache_metadata[$id])) $cache_metadata[$id] = $meta;
-    if (!empty($INFO) && ($id == $INFO['id'])) { $INFO['meta'] = $meta['current']; }
-
-    return io_saveFile(metaFN($id, '.meta'), serialize($meta));
-}
-
-/**
- * renders the metadata of a page
- *
- * @author Esther Brunner <esther@kaffeehaus.ch>
- *
- * @param string $id    page id
- * @param array  $orig  the original metadata
- * @return array|null array('current'=> array,'persistent'=> array);
- */
-function p_render_metadata($id, $orig){
-    // make sure the correct ID is in global ID
-    global $ID, $METADATA_RENDERERS;
-
-    // avoid recursive rendering processes for the same id
-    if (isset($METADATA_RENDERERS[$id])) {
-        return $orig;
-    }
-
-    // store the original metadata in the global $METADATA_RENDERERS so p_set_metadata can use it
-    $METADATA_RENDERERS[$id] =& $orig;
-
-    $keep = $ID;
-    $ID   = $id;
-
-    // add an extra key for the event - to tell event handlers the page whose metadata this is
-    $orig['page'] = $id;
-    $evt = new Doku_Event('PARSER_METADATA_RENDER', $orig);
-    if ($evt->advise_before()) {
-
-        // get instructions
-        $instructions = p_cached_instructions(wikiFN($id),false,$id);
-        if(is_null($instructions)){
-            $ID = $keep;
-            unset($METADATA_RENDERERS[$id]);
-            return null; // something went wrong with the instructions
-        }
-
-        // set up the renderer
-        $renderer = new Doku_Renderer_metadata();
-        $renderer->meta =& $orig['current'];
-        $renderer->persistent =& $orig['persistent'];
-
-        // loop through the instructions
-        foreach ($instructions as $instruction){
-            // execute the callback against the renderer
-            call_user_func_array(array(&$renderer, $instruction[0]), (array) $instruction[1]);
-        }
-
-        $evt->result = array('current'=>&$renderer->meta,'persistent'=>&$renderer->persistent);
-    }
-    $evt->advise_after();
-
-    // clean up
-    $ID = $keep;
-    unset($METADATA_RENDERERS[$id]);
-    return $evt->result;
-}
-
-/**
- * returns all available parser syntax modes in correct order
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- *
- * @return array[] with for each plugin the array('sort' => sortnumber, 'mode' => mode string, 'obj'  => plugin object)
- */
-function p_get_parsermodes(){
-    global $conf;
-
-    //reuse old data
-    static $modes = null;
-    if($modes != null && !defined('DOKU_UNITTEST')){
-        return $modes;
-    }
-
-    //import parser classes and mode definitions
-    require_once DOKU_INC . 'inc/parser/parser.php';
-
-    // we now collect all syntax modes and their objects, then they will
-    // be sorted and added to the parser in correct order
-    $modes = array();
-
-    // add syntax plugins
-    $pluginlist = plugin_list('syntax');
-    if(count($pluginlist)){
-        global $PARSER_MODES;
-        $obj = null;
-        foreach($pluginlist as $p){
-            /** @var DokuWiki_Syntax_Plugin $obj */
-            if(!$obj = plugin_load('syntax',$p)) continue; //attempt to load plugin into $obj
-            $PARSER_MODES[$obj->getType()][] = "plugin_$p"; //register mode type
-            //add to modes
-            $modes[] = array(
-                    'sort' => $obj->getSort(),
-                    'mode' => "plugin_$p",
-                    'obj'  => $obj,
-                    );
-            unset($obj); //remove the reference
-        }
-    }
-
-    // add default modes
-    $std_modes = array('listblock','preformatted','notoc','nocache',
-            'header','table','linebreak','footnote','hr',
-            'unformatted','php','html','code','file','quote',
-            'internallink','rss','media','externallink',
-            'emaillink','windowssharelink','eol');
-    if($conf['typography']){
-        $std_modes[] = 'quotes';
-        $std_modes[] = 'multiplyentity';
-    }
-    foreach($std_modes as $m){
-        $class = "Doku_Parser_Mode_$m";
-        $obj   = new $class();
-        $modes[] = array(
-                'sort' => $obj->getSort(),
-                'mode' => $m,
-                'obj'  => $obj
-                );
-    }
-
-    // add formatting modes
-    $fmt_modes = array('strong','emphasis','underline','monospace',
-            'subscript','superscript','deleted');
-    foreach($fmt_modes as $m){
-        $obj   = new Doku_Parser_Mode_formatting($m);
-        $modes[] = array(
-                'sort' => $obj->getSort(),
-                'mode' => $m,
-                'obj'  => $obj
-                );
-    }
-
-    // add modes which need files
-    $obj     = new Doku_Parser_Mode_smiley(array_keys(getSmileys()));
-    $modes[] = array('sort' => $obj->getSort(), 'mode' => 'smiley','obj'  => $obj );
-    $obj     = new Doku_Parser_Mode_acronym(array_keys(getAcronyms()));
-    $modes[] = array('sort' => $obj->getSort(), 'mode' => 'acronym','obj'  => $obj );
-    $obj     = new Doku_Parser_Mode_entity(array_keys(getEntities()));
-    $modes[] = array('sort' => $obj->getSort(), 'mode' => 'entity','obj'  => $obj );
-
-    // add optional camelcase mode
-    if($conf['camelcase']){
-        $obj     = new Doku_Parser_Mode_camelcaselink();
-        $modes[] = array('sort' => $obj->getSort(), 'mode' => 'camelcaselink','obj'  => $obj );
-    }
-
-    //sort modes
-    usort($modes,'p_sort_modes');
-
-    return $modes;
-}
-
-/**
- * Callback function for usort
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- *
- * @param array $a
- * @param array $b
- * @return int $a is lower/equal/higher than $b
- */
-function p_sort_modes($a, $b){
-    if($a['sort'] == $b['sort']) return 0;
-    return ($a['sort'] < $b['sort']) ? -1 : 1;
-}
-
-/**
- * Renders a list of instruction to the specified output mode
- *
- * In the $info array is information from the renderer returned
- *
- * @author Harry Fuecks <hfuecks@gmail.com>
- * @author Andreas Gohr <andi@splitbrain.org>
- *
- * @param string $mode
- * @param array|null|false $instructions
- * @param array $info returns render info like enabled toc and cache
- * @param string $date_at
- * @return null|string rendered output
- */
-function p_render($mode,$instructions,&$info,$date_at=''){
-    if(is_null($instructions)) return '';
-    if($instructions === false) return '';
-
-    $Renderer = p_get_renderer($mode);
-    if (is_null($Renderer)) return null;
-
-    $Renderer->reset();
-
-    if($date_at) {
-        $Renderer->date_at = $date_at;
-    }
-
-    $Renderer->smileys = getSmileys();
-    $Renderer->entities = getEntities();
-    $Renderer->acronyms = getAcronyms();
-    $Renderer->interwiki = getInterwiki();
-
-    // Loop through the instructions
-    foreach ( $instructions as $instruction ) {
-        // Execute the callback against the Renderer
-        if(method_exists($Renderer, $instruction[0])){
-            call_user_func_array(array(&$Renderer, $instruction[0]), $instruction[1] ? $instruction[1] : array());
-        }
-    }
-
-    //set info array
-    $info = $Renderer->info;
-
-    // Post process and return the output
-    $data = array($mode,& $Renderer->doc);
-    trigger_event('RENDERER_CONTENT_POSTPROCESS',$data);
-    return $Renderer->doc;
-}
-
-/**
- * Figure out the correct renderer class to use for $mode,
- * instantiate and return it
- *
- * @param string $mode Mode of the renderer to get
- * @return null|Doku_Renderer The renderer
- *
- * @author Christopher Smith <chris@jalakai.co.uk>
- */
-function p_get_renderer($mode) {
-    /** @var Doku_Plugin_Controller $plugin_controller */
-    global $conf, $plugin_controller;
-
-    $rname = !empty($conf['renderer_'.$mode]) ? $conf['renderer_'.$mode] : $mode;
-    $rclass = "Doku_Renderer_$rname";
-
-    // if requested earlier or a bundled renderer
-    if( class_exists($rclass) ) {
-        $Renderer = new $rclass();
-        return $Renderer;
-    }
-
-    // not bundled, see if its an enabled renderer plugin & when $mode is 'xhtml', the renderer can supply that format.
-    /** @var Doku_Renderer $Renderer */
-    $Renderer = $plugin_controller->load('renderer',$rname);
-    if ($Renderer && is_a($Renderer, 'Doku_Renderer')  && ($mode != 'xhtml' || $mode == $Renderer->getFormat())) {
-        return $Renderer;
-    }
-
-    // there is a configuration error!
-    // not bundled, not a valid enabled plugin, use $mode to try to fallback to a bundled renderer
-    $rclass = "Doku_Renderer_$mode";
-    if ( class_exists($rclass) ) {
-        // viewers should see renderered output, so restrict the warning to admins only
-        $msg = "No renderer '$rname' found for mode '$mode', check your plugins";
-        if ($mode == 'xhtml') {
-            $msg .= " and the 'renderer_xhtml' config setting";
-        }
-        $msg .= ".<br/>Attempting to fallback to the bundled renderer.";
-        msg($msg,-1,'','',MSG_ADMINS_ONLY);
-
-        $Renderer = new $rclass;
-        $Renderer->nocache();     // fallback only (and may include admin alerts), don't cache
-        return $Renderer;
-    }
-
-    // fallback failed, alert the world
-    msg("No renderer '$rname' found for mode '$mode'",-1);
-    return null;
-}
-
-/**
- * Gets the first heading from a file
- *
- * @param   string   $id       dokuwiki page id
- * @param   int      $render   rerender if first heading not known
- *                             default: METADATA_RENDER_USING_SIMPLE_CACHE
- *                             Possible values: METADATA_DONT_RENDER,
- *                                              METADATA_RENDER_USING_SIMPLE_CACHE,
- *                                              METADATA_RENDER_USING_CACHE,
- *                                              METADATA_RENDER_UNLIMITED
- * @return string|null The first heading
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- * @author Michael Hamann <michael@content-space.de>
- */
-function p_get_first_heading($id, $render=METADATA_RENDER_USING_SIMPLE_CACHE){
-    return p_get_metadata(cleanID($id),'title',$render);
-}
-
-/**
- * Wrapper for GeSHi Code Highlighter, provides caching of its output
- *
- * @param  string   $code       source code to be highlighted
- * @param  string   $language   language to provide highlighting
- * @param  string   $wrapper    html element to wrap the returned highlighted text
- * @return string xhtml code
- *
- * @author Christopher Smith <chris@jalakai.co.uk>
- * @author Andreas Gohr <andi@splitbrain.org>
- */
-function p_xhtml_cached_geshi($code, $language, $wrapper='pre', array $options=null) {
-    global $conf, $config_cascade, $INPUT;
-    $language = strtolower($language);
-
-    // remove any leading or trailing blank lines
-    $code = preg_replace('/^\s*?\n|\s*?\n$/','',$code);
-
-    $optionsmd5 = md5(serialize($options));
-    $cache = getCacheName($language.$code.$optionsmd5,".code");
-    $ctime = @filemtime($cache);
-    if($ctime && !$INPUT->bool('purge') &&
-            $ctime > filemtime(DOKU_INC.'vendor/composer/installed.json') &&  // libraries changed
-            $ctime > filemtime(reset($config_cascade['main']['default']))){ // dokuwiki changed
-        $highlighted_code = io_readFile($cache, false);
-    } else {
-
-        $geshi = new GeSHi($code, $language);
-        $geshi->set_encoding('utf-8');
-        $geshi->enable_classes();
-        $geshi->set_header_type(GESHI_HEADER_PRE);
-        $geshi->set_link_target($conf['target']['extern']);
-        if($options !== null) {
-            foreach ($options as $function => $params) {
-                if(is_callable(array($geshi, $function))) {
-                    $geshi->$function($params);
-                }
-            }
-        }
-
-        // remove GeSHi's wrapper element (we'll replace it with our own later)
-        // we need to use a GeSHi wrapper to avoid <BR> throughout the highlighted text
-        $highlighted_code = trim(preg_replace('!^<pre[^>]*>|</pre>$!','',$geshi->parse_code()),"\n\r");
-        io_saveFile($cache,$highlighted_code);
-    }
-
-    // add a wrapper element if required
-    if ($wrapper) {
-        return "<$wrapper class=\"code $language\">$highlighted_code</$wrapper>";
-    } else {
-        return $highlighted_code;
-    }
-}
-
diff --git a/wiki/inc/plugincontroller.class.php b/wiki/inc/plugincontroller.class.php
deleted file mode 100644
index fd8cd96..0000000
--- a/wiki/inc/plugincontroller.class.php
+++ /dev/null
@@ -1,347 +0,0 @@
-<?php
-/**
- * Class to encapsulate access to dokuwiki plugins
- *
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * @author     Christopher Smith <chris@jalakai.co.uk>
- */
-
-// plugin related constants
-if(!defined('DOKU_PLUGIN'))  define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/');
-
-class Doku_Plugin_Controller {
-
-    protected $list_bytype = array();
-    protected $tmp_plugins = array();
-    protected $plugin_cascade = array('default'=>array(),'local'=>array(),'protected'=>array());
-    protected $last_local_config_file = '';
-
-    /**
-     * Populates the master list of plugins
-     */
-    public function __construct() {
-        $this->loadConfig();
-        $this->_populateMasterList();
-    }
-
-    /**
-     * Returns a list of available plugins of given type
-     *
-     * @param $type  string, plugin_type name;
-     *               the type of plugin to return,
-     *               use empty string for all types
-     * @param $all   bool;
-     *               false to only return enabled plugins,
-     *               true to return both enabled and disabled plugins
-     *
-     * @return       array of
-     *                  - plugin names when $type = ''
-     *                  - or plugin component names when a $type is given
-     *
-     * @author Andreas Gohr <andi@splitbrain.org>
-     */
-    public function getList($type='',$all=false){
-
-        // request the complete list
-        if (!$type) {
-            return $all ? array_keys($this->tmp_plugins) : array_keys(array_filter($this->tmp_plugins));
-        }
-
-        if (!isset($this->list_bytype[$type]['enabled'])) {
-            $this->list_bytype[$type]['enabled'] = $this->_getListByType($type,true);
-        }
-        if ($all && !isset($this->list_bytype[$type]['disabled'])) {
-            $this->list_bytype[$type]['disabled'] = $this->_getListByType($type,false);
-        }
-
-        return $all ? array_merge($this->list_bytype[$type]['enabled'],$this->list_bytype[$type]['disabled']) : $this->list_bytype[$type]['enabled'];
-    }
-
-    /**
-     * Loads the given plugin and creates an object of it
-     *
-     * @author Andreas Gohr <andi@splitbrain.org>
-     *
-     * @param  $type     string type of plugin to load
-     * @param  $name     string name of the plugin to load
-     * @param  $new      bool   true to return a new instance of the plugin, false to use an already loaded instance
-     * @param  $disabled bool   true to load even disabled plugins
-     * @return DokuWiki_PluginInterface|null  the plugin object or null on failure
-     */
-    public function load($type,$name,$new=false,$disabled=false){
-
-        //we keep all loaded plugins available in global scope for reuse
-        global $DOKU_PLUGINS;
-
-        list($plugin, /* $component */) = $this->_splitName($name);
-
-        // check if disabled
-        if(!$disabled && $this->isdisabled($plugin)){
-            return null;
-        }
-
-        $class = $type.'_plugin_'.$name;
-
-        //plugin already loaded?
-        if(!empty($DOKU_PLUGINS[$type][$name])){
-            if ($new || !$DOKU_PLUGINS[$type][$name]->isSingleton()) {
-                return class_exists($class, true) ? new $class : null;
-            } else {
-                return $DOKU_PLUGINS[$type][$name];
-            }
-        }
-
-        //construct class and instantiate
-        if (!class_exists($class, true)) {
-
-            # the plugin might be in the wrong directory
-            $dir = $this->get_directory($plugin);
-            $inf = confToHash(DOKU_PLUGIN."$dir/plugin.info.txt");
-            if($inf['base'] && $inf['base'] != $plugin){
-                msg(sprintf("Plugin installed incorrectly. Rename plugin directory '%s' to '%s'.", hsc($plugin), hsc($inf['base'])), -1);
-            } elseif (preg_match('/^'.DOKU_PLUGIN_NAME_REGEX.'$/', $plugin) !== 1) {
-                msg(sprintf("Plugin name '%s' is not a valid plugin name, only the characters a-z and 0-9 are allowed. ".
-                                'Maybe the plugin has been installed in the wrong directory?', hsc($plugin)), -1);
-            }
-            return null;
-        }
-
-        $DOKU_PLUGINS[$type][$name] = new $class;
-        return $DOKU_PLUGINS[$type][$name];
-    }
-
-    /**
-     * Whether plugin is disabled
-     *
-     * @param string $plugin name of plugin
-     * @return bool  true disabled, false enabled
-     */
-    public function isdisabled($plugin) {
-        return empty($this->tmp_plugins[$plugin]);
-    }
-
-    /**
-     * Disable the plugin
-     *
-     * @param string $plugin name of plugin
-     * @return bool  true saving succeed, false saving failed
-     */
-    public function disable($plugin) {
-        if(array_key_exists($plugin,$this->plugin_cascade['protected'])) return false;
-        $this->tmp_plugins[$plugin] = 0;
-        return $this->saveList();
-    }
-
-    /**
-     * Enable the plugin
-     *
-     * @param string $plugin name of plugin
-     * @return bool  true saving succeed, false saving failed
-     */
-    public function enable($plugin) {
-        if(array_key_exists($plugin,$this->plugin_cascade['protected'])) return false;
-        $this->tmp_plugins[$plugin] = 1;
-        return $this->saveList();
-    }
-
-    /**
-     * Returns directory name of plugin
-     *
-     * @param string $plugin name of plugin
-     * @return string name of directory
-     */
-    public function get_directory($plugin) {
-        return $plugin;
-    }
-
-    /**
-     * Returns cascade of the config files
-     *
-     * @return array with arrays of plugin configs
-     */
-    public function getCascade() {
-        return $this->plugin_cascade;
-    }
-
-    protected function _populateMasterList() {
-        global $conf;
-
-        if ($dh = @opendir(DOKU_PLUGIN)) {
-            $all_plugins = array();
-            while (false !== ($plugin = readdir($dh))) {
-                if ($plugin[0] == '.') continue;               // skip hidden entries
-                if (is_file(DOKU_PLUGIN.$plugin)) continue;    // skip files, we're only interested in directories
-
-                if (array_key_exists($plugin,$this->tmp_plugins) && $this->tmp_plugins[$plugin] == 0){
-                    $all_plugins[$plugin] = 0;
-
-                } elseif ((array_key_exists($plugin,$this->tmp_plugins) && $this->tmp_plugins[$plugin] == 1)) {
-                    $all_plugins[$plugin] = 1;
-                } else {
-                    $all_plugins[$plugin] = 1;
-                }
-            }
-            $this->tmp_plugins = $all_plugins;
-            if (!file_exists($this->last_local_config_file)) {
-                $this->saveList(true);
-            }
-        }
-    }
-
-    /**
-     * Includes the plugin config $files
-     * and returns the entries of the $plugins array set in these files
-     *
-     * @param array $files list of files to include, latter overrides previous
-     * @return array with entries of the $plugins arrays of the included files
-     */
-    protected function checkRequire($files) {
-        $plugins = array();
-        foreach($files as $file) {
-            if(file_exists($file)) {
-                include_once($file);
-            }
-        }
-        return $plugins;
-    }
-
-    /**
-     * Save the current list of plugins
-     *
-     * @param bool $forceSave;
-     *              false to save only when config changed
-     *              true to always save
-     * @return bool  true saving succeed, false saving failed
-     */
-    protected function saveList($forceSave = false) {
-        global $conf;
-
-        if (empty($this->tmp_plugins)) return false;
-
-        // Rebuild list of local settings
-        $local_plugins = $this->rebuildLocal();
-        if($local_plugins != $this->plugin_cascade['local'] || $forceSave) {
-            $file = $this->last_local_config_file;
-            $out = "<?php\n/*\n * Local plugin enable/disable settings\n * Auto-generated through plugin/extension manager\n *\n".
-                   " * NOTE: Plugins will not be added to this file unless there is a need to override a default setting. Plugins are\n".
-                   " *       enabled by default.\n */\n";
-            foreach ($local_plugins as $plugin => $value) {
-                $out .= "\$plugins['$plugin'] = $value;\n";
-            }
-            // backup current file (remove any existing backup)
-            if (file_exists($file)) {
-                $backup = $file.'.bak';
-                if (file_exists($backup)) @unlink($backup);
-                if (!@copy($file,$backup)) return false;
-                if (!empty($conf['fperm'])) chmod($backup, $conf['fperm']);
-            }
-            //check if can open for writing, else restore
-            return io_saveFile($file,$out);
-        }
-        return false;
-    }
-
-    /**
-     * Rebuild the set of local plugins
-     *
-     * @return array array of plugins to be saved in end($config_cascade['plugins']['local'])
-     */
-    protected function rebuildLocal() {
-        //assign to local variable to avoid overwriting
-        $backup = $this->tmp_plugins;
-        //Can't do anything about protected one so rule them out completely
-        $local_default = array_diff_key($backup,$this->plugin_cascade['protected']);
-        //Diff between local+default and default
-        //gives us the ones we need to check and save
-        $diffed_ones = array_diff_key($local_default,$this->plugin_cascade['default']);
-        //The ones which we are sure of (list of 0s not in default)
-        $sure_plugins = array_filter($diffed_ones,array($this,'negate'));
-        //the ones in need of diff
-        $conflicts = array_diff_key($local_default,$diffed_ones);
-        //The final list
-        return array_merge($sure_plugins,array_diff_assoc($conflicts,$this->plugin_cascade['default']));
-    }
-
-    /**
-     * Build the list of plugins and cascade
-     *
-     */
-    protected function loadConfig() {
-        global $config_cascade;
-        foreach(array('default','protected') as $type) {
-            if(array_key_exists($type,$config_cascade['plugins']))
-                $this->plugin_cascade[$type] = $this->checkRequire($config_cascade['plugins'][$type]);
-        }
-        $local = $config_cascade['plugins']['local'];
-        $this->last_local_config_file = array_pop($local);
-        $this->plugin_cascade['local'] = $this->checkRequire(array($this->last_local_config_file));
-        if(is_array($local)) {
-            $this->plugin_cascade['default'] = array_merge($this->plugin_cascade['default'],$this->checkRequire($local));
-        }
-        $this->tmp_plugins = array_merge($this->plugin_cascade['default'],$this->plugin_cascade['local'],$this->plugin_cascade['protected']);
-    }
-
-    /**
-     * Returns a list of available plugin components of given type
-     *
-     * @param string $type      plugin_type name; the type of plugin to return,
-     * @param bool   $enabled   true to return enabled plugins,
-     *                          false to return disabled plugins
-     * @return array of plugin components of requested type
-     */
-    protected function _getListByType($type, $enabled) {
-        $master_list = $enabled ? array_keys(array_filter($this->tmp_plugins)) : array_keys(array_filter($this->tmp_plugins,array($this,'negate')));
-        $plugins = array();
-
-        foreach ($master_list as $plugin) {
-
-            $basedir = $this->get_directory($plugin);
-            if (file_exists(DOKU_PLUGIN."$basedir/$type.php")){
-                $plugins[] = $plugin;
-                continue;
-            }
-
-            $typedir = DOKU_PLUGIN."$basedir/$type/";
-            if (is_dir($typedir)) {
-                if ($dp = opendir($typedir)) {
-                    while (false !== ($component = readdir($dp))) {
-                        if (substr($component,0,1) == '.' || strtolower(substr($component, -4)) != ".php") continue;
-                        if (is_file($typedir.$component)) {
-                            $plugins[] = $plugin.'_'.substr($component, 0, -4);
-                        }
-                    }
-                    closedir($dp);
-                }
-            }
-
-        }//foreach
-
-        return $plugins;
-    }
-
-    /**
-     * Split name in a plugin name and a component name
-     *
-     * @param string $name
-     * @return array with
-     *              - plugin name
-     *              - and component name when available, otherwise empty string
-     */
-    protected function _splitName($name) {
-        if (array_search($name, array_keys($this->tmp_plugins)) === false) {
-            return explode('_',$name,2);
-        }
-
-        return array($name,'');
-    }
-
-    /**
-     * Returns inverse boolean value of the input
-     *
-     * @param mixed $input
-     * @return bool inversed boolean value of input
-     */
-    protected function negate($input) {
-        return !(bool) $input;
-    }
-}
diff --git a/wiki/inc/pluginutils.php b/wiki/inc/pluginutils.php
deleted file mode 100644
index a395be4..0000000
--- a/wiki/inc/pluginutils.php
+++ /dev/null
@@ -1,136 +0,0 @@
-<?php
-/**
- * Utilities for handling plugins
- *
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * @author     Andreas Gohr <andi@splitbrain.org>
- */
-
-// plugin related constants
-if(!defined('DOKU_PLUGIN'))  define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/');
-// note that only [a-z0-9]+ is officially supported, this is only to support plugins that don't follow these conventions, too
-if(!defined('DOKU_PLUGIN_NAME_REGEX')) define('DOKU_PLUGIN_NAME_REGEX', '[a-zA-Z0-9\x7f-\xff]+');
-
-/**
- * Original plugin functions, remain for backwards compatibility
- */
-
-/**
- * Return list of available plugins
- *
- * @param string $type type of plugins; empty string for all
- * @param bool $all; true to retrieve all, false to retrieve only enabled plugins
- * @return array with plugin names or plugin component names
- */
-function plugin_list($type='',$all=false) {
-    /** @var $plugin_controller Doku_Plugin_Controller */
-    global $plugin_controller;
-    return $plugin_controller->getList($type,$all);
-}
-
-/**
- * Returns plugin object
- * Returns only new instances of a plugin when $new is true or if plugin is not Singleton,
- * otherwise an already loaded instance.
- *
- * @param  $type     string type of plugin to load
- * @param  $name     string name of the plugin to load
- * @param  $new      bool   true to return a new instance of the plugin, false to use an already loaded instance
- * @param  $disabled bool   true to load even disabled plugins
- * @return DokuWiki_PluginInterface|null  the plugin object or null on failure
- */
-function plugin_load($type,$name,$new=false,$disabled=false) {
-    /** @var $plugin_controller Doku_Plugin_Controller */
-    global $plugin_controller;
-    return $plugin_controller->load($type,$name,$new,$disabled);
-}
-
-/**
- * Whether plugin is disabled
- *
- * @param string $plugin name of plugin
- * @return bool true disabled, false enabled
- */
-function plugin_isdisabled($plugin) {
-    /** @var $plugin_controller Doku_Plugin_Controller */
-    global $plugin_controller;
-    return $plugin_controller->isdisabled($plugin);
-}
-
-/**
- * Enable the plugin
- *
- * @param string $plugin name of plugin
- * @return bool true saving succeed, false saving failed
- */
-function plugin_enable($plugin) {
-    /** @var $plugin_controller Doku_Plugin_Controller */
-    global $plugin_controller;
-    return $plugin_controller->enable($plugin);
-}
-
-/**
- * Disable the plugin
- *
- * @param string $plugin name of plugin
- * @return bool  true saving succeed, false saving failed
- */
-function plugin_disable($plugin) {
-    /** @var $plugin_controller Doku_Plugin_Controller */
-    global $plugin_controller;
-    return $plugin_controller->disable($plugin);
-}
-
-/**
- * Returns directory name of plugin
- *
- * @param string $plugin name of plugin
- * @return string name of directory
- */
-function plugin_directory($plugin) {
-    /** @var $plugin_controller Doku_Plugin_Controller */
-    global $plugin_controller;
-    return $plugin_controller->get_directory($plugin);
-}
-
-/**
- * Returns cascade of the config files
- *
- * @return array with arrays of plugin configs
- */
-function plugin_getcascade() {
-    /** @var $plugin_controller Doku_Plugin_Controller */
-    global $plugin_controller;
-    return $plugin_controller->getCascade();
-}
-
-
-/**
- * Return the currently operating admin plugin or null
- * if not on an admin plugin page
- *
- * @return Doku_Plugin_Admin
- */
-function plugin_getRequestAdminPlugin(){
-    static $admin_plugin = false;
-    global $ACT,$INPUT,$INFO;
-
-    if ($admin_plugin === false) {
-        if (($ACT == 'admin') && ($page = $INPUT->str('page', '', true)) != '') {
-            $pluginlist = plugin_list('admin');
-            if (in_array($page, $pluginlist)) {
-                // attempt to load the plugin
-                /** @var $admin_plugin DokuWiki_Admin_Plugin */
-                $admin_plugin = plugin_load('admin', $page);
-                // verify
-                if ($admin_plugin && $admin_plugin->forAdminOnly() && !$INFO['isadmin']) {
-                    $admin_plugin = null;
-                    $INPUT->remove('page');
-                    msg('For admins only',-1);
-                }
-            }
-        }
-    }
-
-    return $admin_plugin;
-}
diff --git a/wiki/inc/preload.php.dist b/wiki/inc/preload.php.dist
deleted file mode 100644
index 7acda0e..0000000
--- a/wiki/inc/preload.php.dist
+++ /dev/null
@@ -1,17 +0,0 @@
-<?php
-/**
- * This is an example for a farm setup. Simply copy this file to preload.php and
- * uncomment what you need. See http://www.dokuwiki.org/farms for more information.
- * You can also use preload.php for other things than farming, e.g. for moving
- * local configuration files out of the main ./conf directory.
- */
-
-// set this to your farm directory
-//if(!defined('DOKU_FARMDIR')) define('DOKU_FARMDIR', '/var/www/farm');
-
-// include this after DOKU_FARMDIR if you want to use farms
-//include(fullpath(dirname(__FILE__)).'/farm.php');
-
-// you can overwrite the $config_cascade to your liking
-//$config_cascade = array(
-//);
diff --git a/wiki/inc/remote.php b/wiki/inc/remote.php
deleted file mode 100644
index 2d2e327..0000000
--- a/wiki/inc/remote.php
+++ /dev/null
@@ -1,357 +0,0 @@
-<?php
-
-if (!defined('DOKU_INC')) die();
-
-class RemoteException extends Exception {}
-class RemoteAccessDeniedException extends RemoteException {}
-
-/**
- * This class provides information about remote access to the wiki.
- *
- * == Types of methods ==
- * There are two types of remote methods. The first is the core methods.
- * These are always available and provided by dokuwiki.
- * The other is plugin methods. These are provided by remote plugins.
- *
- * == Information structure ==
- * The information about methods will be given in an array with the following structure:
- * array(
- *     'method.remoteName' => array(
- *          'args' => array(
- *              'type eg. string|int|...|date|file',
- *          )
- *          'name' => 'method name in class',
- *          'return' => 'type',
- *          'public' => 1/0 - method bypass default group check (used by login)
- *          ['doc' = 'method documentation'],
- *     )
- * )
- *
- * plugin names are formed the following:
- *   core methods begin by a 'dokuwiki' or 'wiki' followed by a . and the method name itself.
- *   i.e.: dokuwiki.version or wiki.getPage
- *
- * plugin methods are formed like 'plugin.<plugin name>.<method name>'.
- * i.e.: plugin.clock.getTime or plugin.clock_gmt.getTime
- *
- * @throws RemoteException
- */
-class RemoteAPI {
-
-    /**
-     * @var RemoteAPICore
-     */
-    private $coreMethods = null;
-
-    /**
-     * @var array remote methods provided by dokuwiki plugins - will be filled lazy via
-     * {@see RemoteAPI#getPluginMethods}
-     */
-    private $pluginMethods = null;
-
-    /**
-     * @var array contains custom calls to the api. Plugins can use the XML_CALL_REGISTER event.
-     * The data inside is 'custom.call.something' => array('plugin name', 'remote method name')
-     *
-     * The remote method name is the same as in the remote name returned by _getMethods().
-     */
-    private $pluginCustomCalls = null;
-
-    private $dateTransformation;
-    private $fileTransformation;
-
-    /**
-     * constructor
-     */
-    public function __construct() {
-        $this->dateTransformation = array($this, 'dummyTransformation');
-        $this->fileTransformation = array($this, 'dummyTransformation');
-    }
-
-    /**
-     * Get all available methods with remote access.
-     *
-     * @return array with information to all available methods
-     */
-    public function getMethods() {
-        return array_merge($this->getCoreMethods(), $this->getPluginMethods());
-    }
-
-    /**
-     * Call a method via remote api.
-     *
-     * @param string $method name of the method to call.
-     * @param array $args arguments to pass to the given method
-     * @return mixed result of method call, must be a primitive type.
-     */
-    public function call($method, $args = array()) {
-        if ($args === null) {
-            $args = array();
-        }
-        list($type, $pluginName, /* $call */) = explode('.', $method, 3);
-        if ($type === 'plugin') {
-            return $this->callPlugin($pluginName, $method, $args);
-        }
-        if ($this->coreMethodExist($method)) {
-            return $this->callCoreMethod($method, $args);
-        }
-        return $this->callCustomCallPlugin($method, $args);
-    }
-
-    /**
-     * Check existance of core methods
-     *
-     * @param string $name name of the method
-     * @return bool if method exists
-     */
-    private function coreMethodExist($name) {
-        $coreMethods = $this->getCoreMethods();
-        return array_key_exists($name, $coreMethods);
-    }
-
-    /**
-     * Try to call custom methods provided by plugins
-     *
-     * @param string $method name of method
-     * @param array  $args
-     * @return mixed
-     * @throws RemoteException if method not exists
-     */
-    private function  callCustomCallPlugin($method, $args) {
-        $customCalls = $this->getCustomCallPlugins();
-        if (!array_key_exists($method, $customCalls)) {
-            throw new RemoteException('Method does not exist', -32603);
-        }
-        $customCall = $customCalls[$method];
-        return $this->callPlugin($customCall[0], $customCall[1], $args);
-    }
-
-    /**
-     * Returns plugin calls that are registered via RPC_CALL_ADD action
-     *
-     * @return array with pairs of custom plugin calls
-     * @triggers RPC_CALL_ADD
-     */
-    private function getCustomCallPlugins() {
-        if ($this->pluginCustomCalls === null) {
-            $data = array();
-            trigger_event('RPC_CALL_ADD', $data);
-            $this->pluginCustomCalls = $data;
-        }
-        return $this->pluginCustomCalls;
-    }
-
-    /**
-     * Call a plugin method
-     *
-     * @param string $pluginName
-     * @param string $method method name
-     * @param array  $args
-     * @return mixed return of custom method
-     * @throws RemoteException
-     */
-    private function callPlugin($pluginName, $method, $args) {
-        $plugin = plugin_load('remote', $pluginName);
-        $methods = $this->getPluginMethods();
-        if (!$plugin) {
-            throw new RemoteException('Method does not exist', -32603);
-        }
-        $this->checkAccess($methods[$method]);
-        $name = $this->getMethodName($methods, $method);
-        return call_user_func_array(array($plugin, $name), $args);
-    }
-
-    /**
-     * Call a core method
-     *
-     * @param string $method name of method
-     * @param array  $args
-     * @return mixed
-     * @throws RemoteException if method not exist
-     */
-    private function callCoreMethod($method, $args) {
-        $coreMethods = $this->getCoreMethods();
-        $this->checkAccess($coreMethods[$method]);
-        if (!isset($coreMethods[$method])) {
-            throw new RemoteException('Method does not exist', -32603);
-        }
-        $this->checkArgumentLength($coreMethods[$method], $args);
-        return call_user_func_array(array($this->coreMethods, $this->getMethodName($coreMethods, $method)), $args);
-    }
-
-    /**
-     * Check if access should be checked
-     *
-     * @param array $methodMeta data about the method
-     */
-    private function checkAccess($methodMeta) {
-        if (!isset($methodMeta['public'])) {
-            $this->forceAccess();
-        } else{
-            if ($methodMeta['public'] == '0') {
-                $this->forceAccess();
-            }
-        }
-    }
-
-    /**
-     * Check the number of parameters
-     *
-     * @param array $methodMeta data about the method
-     * @param array $args
-     * @throws RemoteException if wrong parameter count
-     */
-    private function checkArgumentLength($methodMeta, $args) {
-        if (count($methodMeta['args']) < count($args)) {
-            throw new RemoteException('Method does not exist - wrong parameter count.', -32603);
-        }
-    }
-
-    /**
-     * Determine the name of the real method
-     *
-     * @param array $methodMeta list of data of the methods
-     * @param string $method name of method
-     * @return string
-     */
-    private function getMethodName($methodMeta, $method) {
-        if (isset($methodMeta[$method]['name'])) {
-            return $methodMeta[$method]['name'];
-        }
-        $method = explode('.', $method);
-        return $method[count($method)-1];
-    }
-
-    /**
-     * Perform access check for current user
-     *
-     * @return bool true if the current user has access to remote api.
-     * @throws RemoteAccessDeniedException If remote access disabled
-     */
-    public function hasAccess() {
-        global $conf;
-        global $USERINFO;
-        /** @var Input $INPUT */
-        global $INPUT;
-
-        if (!$conf['remote']) {
-            throw new RemoteAccessDeniedException('server error. RPC server not enabled.',-32604); //should not be here,just throw
-        }
-        if(trim($conf['remoteuser']) == '!!not set!!') {
-            return false;
-        }
-        if(!$conf['useacl']) {
-            return true;
-        }
-        if(trim($conf['remoteuser']) == '') {
-            return true;
-        }
-
-        return auth_isMember($conf['remoteuser'], $INPUT->server->str('REMOTE_USER'), (array) $USERINFO['grps']);
-    }
-
-    /**
-     * Requests access
-     *
-     * @return void
-     * @throws RemoteException On denied access.
-     */
-    public function forceAccess() {
-        if (!$this->hasAccess()) {
-            throw new RemoteAccessDeniedException('server error. not authorized to call method', -32604);
-        }
-    }
-
-    /**
-     * Collects all the methods of the enabled Remote Plugins
-     *
-     * @return array all plugin methods.
-     * @throws RemoteException if not implemented
-     */
-    public function getPluginMethods() {
-        if ($this->pluginMethods === null) {
-            $this->pluginMethods = array();
-            $plugins = plugin_list('remote');
-
-            foreach ($plugins as $pluginName) {
-                /** @var DokuWiki_Remote_Plugin $plugin */
-                $plugin = plugin_load('remote', $pluginName);
-                if (!is_subclass_of($plugin, 'DokuWiki_Remote_Plugin')) {
-                    throw new RemoteException("Plugin $pluginName does not implement DokuWiki_Remote_Plugin");
-                }
-
-                $methods = $plugin->_getMethods();
-                foreach ($methods as $method => $meta) {
-                    $this->pluginMethods["plugin.$pluginName.$method"] = $meta;
-                }
-            }
-        }
-        return $this->pluginMethods;
-    }
-
-    /**
-     * Collects all the core methods
-     *
-     * @param RemoteAPICore $apiCore this parameter is used for testing. Here you can pass a non-default RemoteAPICore
-     *                               instance. (for mocking)
-     * @return array all core methods.
-     */
-    public function getCoreMethods($apiCore = null) {
-        if ($this->coreMethods === null) {
-            if ($apiCore === null) {
-                $this->coreMethods = new RemoteAPICore($this);
-            } else {
-                $this->coreMethods = $apiCore;
-            }
-        }
-        return $this->coreMethods->__getRemoteInfo();
-    }
-
-    /**
-     * Transform file to xml
-     *
-     * @param mixed $data
-     * @return mixed
-     */
-    public function toFile($data) {
-        return call_user_func($this->fileTransformation, $data);
-    }
-
-    /**
-     * Transform date to xml
-     *
-     * @param mixed $data
-     * @return mixed
-     */
-    public function toDate($data) {
-        return call_user_func($this->dateTransformation, $data);
-    }
-
-    /**
-     * A simple transformation
-     *
-     * @param mixed $data
-     * @return mixed
-     */
-    public function dummyTransformation($data) {
-        return $data;
-    }
-
-    /**
-     * Set the transformer function
-     *
-     * @param callback $dateTransformation
-     */
-    public function setDateTransformation($dateTransformation) {
-        $this->dateTransformation = $dateTransformation;
-    }
-
-    /**
-     * Set the transformer function
-     *
-     * @param callback $fileTransformation
-     */
-    public function setFileTransformation($fileTransformation) {
-        $this->fileTransformation = $fileTransformation;
-    }
-}
diff --git a/wiki/inc/search.php b/wiki/inc/search.php
deleted file mode 100644
index 14cd0f8..0000000
--- a/wiki/inc/search.php
+++ /dev/null
@@ -1,518 +0,0 @@
-<?php
-/**
- * DokuWiki search functions
- *
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * @author     Andreas Gohr <andi@splitbrain.org>
- */
-
-if(!defined('DOKU_INC')) die('meh.');
-
-/**
- * Recurse directory
- *
- * This function recurses into a given base directory
- * and calls the supplied function for each file and directory
- *
- * @param   array    &$data The results of the search are stored here
- * @param   string    $base Where to start the search
- * @param   callback  $func Callback (function name or array with object,method)
- * @param   array     $opts option array will be given to the Callback
- * @param   string    $dir  Current directory beyond $base
- * @param   int       $lvl  Recursion Level
- * @param   mixed     $sort 'natural' to use natural order sorting (default); 'date' to sort by filemtime; leave empty to skip sorting.
- * @author  Andreas Gohr <andi@splitbrain.org>
- */
-function search(&$data,$base,$func,$opts,$dir='',$lvl=1,$sort='natural'){
-    $dirs   = array();
-    $files  = array();
-    $filepaths = array();
-
-    // safeguard against runaways #1452
-    if($base == '' || $base == '/') {
-        throw new RuntimeException('No valid $base passed to search() - possible misconfiguration or bug');
-    }
-
-    //read in directories and files
-    $dh = @opendir($base.'/'.$dir);
-    if(!$dh) return;
-    while(($file = readdir($dh)) !== false){
-        if(preg_match('/^[\._]/',$file)) continue; //skip hidden files and upper dirs
-        if(is_dir($base.'/'.$dir.'/'.$file)){
-            $dirs[] = $dir.'/'.$file;
-            continue;
-        }
-        $files[] = $dir.'/'.$file;
-        $filepaths[] = $base.'/'.$dir.'/'.$file;
-    }
-    closedir($dh);
-    if (!empty($sort)) {
-        if ($sort == 'date') {
-            @array_multisort(array_map('filemtime', $filepaths), SORT_NUMERIC, SORT_DESC, $files);
-        } else /* natural */ {
-            natsort($files);
-        }
-        natsort($dirs);
-    }
-
-    //give directories to userfunction then recurse
-    foreach($dirs as $dir){
-        if (call_user_func_array($func, array(&$data,$base,$dir,'d',$lvl,$opts))){
-            search($data,$base,$func,$opts,$dir,$lvl+1,$sort);
-        }
-    }
-    //now handle the files
-    foreach($files as $file){
-        call_user_func_array($func, array(&$data,$base,$file,'f',$lvl,$opts));
-    }
-}
-
-/**
- * The following functions are userfunctions to use with the search
- * function above. This function is called for every found file or
- * directory. When a directory is given to the function it has to
- * decide if this directory should be traversed (true) or not (false)
- * The function has to accept the following parameters:
- *
- * array &$data  - Reference to the result data structure
- * string $base  - Base usually $conf['datadir']
- * string $file  - current file or directory relative to $base
- * string $type  - Type either 'd' for directory or 'f' for file
- * int    $lvl   - Current recursion depht
- * array  $opts  - option array as given to search()
- *
- * return values for files are ignored
- *
- * All functions should check the ACL for document READ rights
- * namespaces (directories) are NOT checked (when sneaky_index is 0) as this
- * would break the recursion (You can have an nonreadable dir over a readable
- * one deeper nested) also make sure to check the file type (for example
- * in case of lockfiles).
- */
-
-/**
- * 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(
-            'idmatch'   => '(^|:)'.preg_quote($opts['query'],'/').'/',
-            'listfiles' => true,
-            'pagesonly' => true,
-            );
-    return search_universal($data,$base,$file,$type,$lvl,$opts);
-}
-
-/**
- * Build the browsable index of pages
- *
- * $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;
-    $opts = array(
-        'pagesonly' => true,
-        'listdirs' => true,
-        'listfiles' => empty($opts['nofiles']),
-        'sneakyacl' => $conf['sneaky_index'],
-        // Hacky, should rather use recmatch
-        'depth' => preg_match('#^'.preg_quote($file, '#').'(/|$)#','/'.$opts['ns']) ? 0 : -1
-    );
-
-    return search_universal($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(
-            'listdirs' => true,
-            );
-    return search_universal($data,$base,$file,$type,$lvl,$opts);
-}
-
-/**
- * List all mediafiles in a namespace
- *   $opts['depth']     recursion level, 0 for all
- *   $opts['showmsg']   shows message if invalid media id is used
- *   $opts['skipacl']   skip acl checking
- *   $opts['pattern']   check given pattern
- *   $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){
-
-    //we do nothing with directories
-    if($type == 'd') {
-        if(empty($opts['depth'])) return true; // recurse forever
-        $depth = substr_count($file,'/');
-        if($depth >= $opts['depth']) return false; // depth reached
-        return true;
-    }
-
-    $info         = array();
-    $info['id']   = pathID($file,true);
-    if($info['id'] != cleanID($info['id'])){
-        if($opts['showmsg'])
-            msg(hsc($info['id']).' is not a valid file name for DokuWiki - skipped',-1);
-        return false; // skip non-valid files
-    }
-
-    //check ACL for namespace (we have no ACL for mediafiles)
-    $info['perm'] = auth_quickaclcheck(getNS($info['id']).':*');
-    if(empty($opts['skipacl']) && $info['perm'] < AUTH_READ){
-        return false;
-    }
-
-    //check pattern filter
-    if(!empty($opts['pattern']) && !@preg_match($opts['pattern'], $info['id'])){
-        return false;
-    }
-
-    $info['file']     = utf8_basename($file);
-    $info['size']     = filesize($base.'/'.$file);
-    $info['mtime']    = filemtime($base.'/'.$file);
-    $info['writable'] = is_writable($base.'/'.$file);
-    if(preg_match("/\.(jpe?g|gif|png)$/",$file)){
-        $info['isimg'] = true;
-        $info['meta']  = new JpegMeta($base.'/'.$file);
-    }else{
-        $info['isimg'] = false;
-    }
-    if(!empty($opts['hash'])){
-        $info['hash'] = md5(io_readFile(mediaFN($info['id']),false));
-    }
-
-    $data[] = $info;
-
-    return false;
-}
-
-/**
- * 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
-    if($type == 'd') return false;
-    //only search txt files
-    if(substr($file,-4) == '.txt'){
-        //check ACL
-        $id = pathID($file);
-        if(auth_quickaclcheck($id) < AUTH_READ){
-            return false;
-        }
-        $data[]['id'] = $id;
-    }
-    return false;
-}
-
-/**
- * Quicksearch for searching matching pagenames
- *
- * $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
-    if($type == 'd') return true;
-    //only search txt files
-    if(substr($file,-4) != '.txt') return true;
-
-    //simple stringmatching
-    if (!empty($opts['query'])){
-        if(strpos($file,$opts['query']) !== false){
-            //check ACL
-            $id = pathID($file);
-            if(auth_quickaclcheck($id) < AUTH_READ){
-                return false;
-            }
-            $data[]['id'] = $id;
-        }
-    }
-    return true;
-}
-
-/**
- * Just lists all documents
- *
- * $opts['depth']   recursion level, 0 for all
- * $opts['hash']    do md5 sum of content?
- * $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']){
-        $parts = explode('/',ltrim($file,'/'));
-        if(($type == 'd' && count($parts) >= $opts['depth'])
-          || ($type != 'd' && count($parts) > $opts['depth'])){
-            return false; // depth reached
-        }
-    }
-
-    //we do nothing with directories
-    if($type == 'd'){
-        return true;
-    }
-
-    //only search txt files
-    if(substr($file,-4) != '.txt') return true;
-
-    $item = array();
-    $item['id']   = pathID($file);
-    if(isset($opts['skipacl']) && !$opts['skipacl'] && auth_quickaclcheck($item['id']) < AUTH_READ){
-        return false;
-    }
-
-    $item['rev']   = filemtime($base.'/'.$file);
-    $item['mtime'] = $item['rev'];
-    $item['size']  = filesize($base.'/'.$file);
-    if(!empty($opts['hash'])){
-        $item['hash'] = md5(trim(rawWiki($item['id'])));
-    }
-
-    $data[] = $item;
-    return true;
-}
-
-/* ------------- helper functions below -------------- */
-
-/**
- * fulltext sort
- *
- * Callback sort function for use with usort to sort the data
- * 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']){
-        return -1;
-    }elseif($a['count'] < $b['count']){
-        return 1;
-    }else{
-        return strcmp($a['id'],$b['id']);
-    }
-}
-
-/**
- * translates a document path to an ID
- *
- * @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);
-    $id = str_replace('/',':',$id);
-    if(!$keeptxt) $id = preg_replace('#\.txt$#','',$id);
-    $id = trim($id, ':');
-    return $id;
-}
-
-
-/**
- * This is a very universal callback for the search() function, replacing
- * many of the former individual functions at the cost of a more complex
- * setup.
- *
- * How the function behaves, depends on the options passed in the $opts
- * array, where the following settings can be used.
- *
- * depth      int     recursion depth. 0 for unlimited                       (default: 0)
- * keeptxt    bool    keep .txt extension for IDs                            (default: false)
- * listfiles  bool    include files in listing                               (default: false)
- * listdirs   bool    include namespaces in listing                          (default: false)
- * pagesonly  bool    restrict files to pages                                (default: false)
- * skipacl    bool    do not check for READ permission                       (default: false)
- * sneakyacl  bool    don't recurse into nonreadable dirs                    (default: false)
- * hash       bool    create MD5 hash for files                              (default: false)
- * meta       bool    return file metadata                                   (default: false)
- * filematch  string  match files against this regexp                        (default: '', so accept everything)
- * idmatch    string  match full ID against this regexp                      (default: '', so accept everything)
- * dirmatch   string  match directory against this regexp when adding        (default: '', so accept everything)
- * nsmatch    string  match namespace against this regexp when adding        (default: '', so accept everything)
- * recmatch   string  match directory against this regexp when recursing     (default: '', so accept everything)
- * showmsg    bool    warn about non-ID files                                (default: false)
- * showhidden bool    show hidden files(e.g. by hidepages config) too        (default: false)
- * firsthead  bool    return first heading for pages                         (default: false)
- *
- * @param array &$data  - Reference to the result data structure
- * @param string $base  - Base usually $conf['datadir']
- * @param string $file  - current file or directory relative to $base
- * @param string $type  - Type either 'd' for directory or 'f' for file
- * @param int    $lvl   - Current recursion depht
- * @param array  $opts  - option array as given to search()
- * @return bool if this directory should be traversed (true) or not (false)
- *              return value is ignored for files
- *
- * @author Andreas Gohr <gohr@cosmocode.de>
- */
-function search_universal(&$data,$base,$file,$type,$lvl,$opts){
-    $item   = array();
-    $return = true;
-
-    // get ID and check if it is a valid one
-    $item['id'] = pathID($file,($type == 'd' || !empty($opts['keeptxt'])));
-    if($item['id'] != cleanID($item['id'])){
-        if(!empty($opts['showmsg'])){
-            msg(hsc($item['id']).' is not a valid file name for DokuWiki - skipped',-1);
-        }
-        return false; // skip non-valid files
-    }
-    $item['ns']  = getNS($item['id']);
-
-    if($type == 'd') {
-        // decide if to recursion into this directory is wanted
-        if(empty($opts['depth'])){
-            $return = true; // recurse forever
-        }else{
-            $depth = substr_count($file,'/');
-            if($depth >= $opts['depth']){
-                $return = false; // depth reached
-            }else{
-                $return = true;
-            }
-        }
-
-        if ($return) {
-            $match = empty($opts['recmatch']) || preg_match('/'.$opts['recmatch'].'/',$file);
-            if (!$match) {
-                return false; // doesn't match
-            }
-        }
-    }
-
-    // check ACL
-    if(empty($opts['skipacl'])){
-        if($type == 'd'){
-            $item['perm'] = auth_quickaclcheck($item['id'].':*');
-        }else{
-            $item['perm'] = auth_quickaclcheck($item['id']); //FIXME check namespace for media files
-        }
-    }else{
-        $item['perm'] = AUTH_DELETE;
-    }
-
-    // are we done here maybe?
-    if($type == 'd'){
-        if(empty($opts['listdirs'])) return $return;
-        if(empty($opts['skipacl']) && !empty($opts['sneakyacl']) && $item['perm'] < AUTH_READ) return false; //neither list nor recurse
-        if(!empty($opts['dirmatch']) && !preg_match('/'.$opts['dirmatch'].'/',$file)) return $return;
-        if(!empty($opts['nsmatch']) && !preg_match('/'.$opts['nsmatch'].'/',$item['ns'])) return $return;
-    }else{
-        if(empty($opts['listfiles'])) return $return;
-        if(empty($opts['skipacl']) && $item['perm'] < AUTH_READ) return $return;
-        if(!empty($opts['pagesonly']) && (substr($file,-4) != '.txt')) return $return;
-        if(empty($opts['showhidden']) && isHiddenPage($item['id'])) return $return;
-        if(!empty($opts['filematch']) && !preg_match('/'.$opts['filematch'].'/',$file)) return $return;
-        if(!empty($opts['idmatch']) && !preg_match('/'.$opts['idmatch'].'/',$item['id'])) return $return;
-    }
-
-    // still here? prepare the item
-    $item['type']  = $type;
-    $item['level'] = $lvl;
-    $item['open']  = $return;
-
-    if(!empty($opts['meta'])){
-        $item['file']       = utf8_basename($file);
-        $item['size']       = filesize($base.'/'.$file);
-        $item['mtime']      = filemtime($base.'/'.$file);
-        $item['rev']        = $item['mtime'];
-        $item['writable']   = is_writable($base.'/'.$file);
-        $item['executable'] = is_executable($base.'/'.$file);
-    }
-
-    if($type == 'f'){
-        if(!empty($opts['hash'])) $item['hash'] = md5(io_readFile($base.'/'.$file,false));
-        if(!empty($opts['firsthead'])) $item['title'] = p_get_first_heading($item['id'],METADATA_DONT_RENDER);
-    }
-
-    // finally add the item
-    $data[] = $item;
-    return $return;
-}
-
-//Setup VIM: ex: et ts=4 :
diff --git a/wiki/inc/subscription.php b/wiki/inc/subscription.php
deleted file mode 100644
index 74bec65..0000000
--- a/wiki/inc/subscription.php
+++ /dev/null
@@ -1,693 +0,0 @@
-<?php
-/**
- * Class for handling (email) subscriptions
- *
- * @author  Adrian Lang <lang@cosmocode.de>
- * @author  Andreas Gohr <andi@splitbrain.org>
- * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
- */
-class Subscription {
-
-    /**
-     * Check if subscription system is enabled
-     *
-     * @return bool
-     */
-    public function isenabled() {
-        return actionOK('subscribe');
-    }
-
-    /**
-     * Return the subscription meta file for the given ID
-     *
-     * @author Adrian Lang <lang@cosmocode.de>
-     *
-     * @param string $id The target page or namespace, specified by id; Namespaces
-     *                   are identified by appending a colon.
-     * @return string
-     */
-    protected function file($id) {
-        $meta_fname = '.mlist';
-        if((substr($id, -1, 1) === ':')) {
-            $meta_froot = getNS($id);
-            $meta_fname = '/'.$meta_fname;
-        } else {
-            $meta_froot = $id;
-        }
-        return metaFN((string) $meta_froot, $meta_fname);
-    }
-
-    /**
-     * Lock subscription info
-     *
-     * We don't use io_lock() her because we do not wait for the lock and use a larger stale time
-     *
-     * @author Adrian Lang <lang@cosmocode.de>
-     * @param string $id The target page or namespace, specified by id; Namespaces
-     *                   are identified by appending a colon.
-     * @return bool true, if you got a succesful lock
-     */
-    protected function lock($id) {
-        global $conf;
-
-        $lock = $conf['lockdir'].'/_subscr_'.md5($id).'.lock';
-
-        if(is_dir($lock) && time() - @filemtime($lock) > 60 * 5) {
-            // looks like a stale lock - remove it
-            @rmdir($lock);
-        }
-
-        // try creating the lock directory
-        if(!@mkdir($lock, $conf['dmode'])) {
-            return false;
-        }
-
-        if(!empty($conf['dperm'])) chmod($lock, $conf['dperm']);
-        return true;
-    }
-
-    /**
-     * Unlock subscription info
-     *
-     * @author Adrian Lang <lang@cosmocode.de>
-     * @param string $id The target page or namespace, specified by id; Namespaces
-     *                   are identified by appending a colon.
-     * @return bool
-     */
-    protected function unlock($id) {
-        global $conf;
-        $lock = $conf['lockdir'].'/_subscr_'.md5($id).'.lock';
-        return @rmdir($lock);
-    }
-
-    /**
-     * Construct a regular expression for parsing a subscription definition line
-     *
-     * @author Andreas Gohr <andi@splitbrain.org>
-     *
-     * @param string|array $user
-     * @param string|array $style
-     * @param string|array $data
-     * @return string complete regexp including delimiters
-     * @throws Exception when no data is passed
-     */
-    protected function buildregex($user = null, $style = null, $data = null) {
-        // always work with arrays
-        $user = (array) $user;
-        $style = (array) $style;
-        $data = (array) $data;
-
-        // clean
-        $user = array_filter(array_map('trim', $user));
-        $style = array_filter(array_map('trim', $style));
-        $data = array_filter(array_map('trim', $data));
-
-        // user names are encoded
-        $user = array_map('auth_nameencode', $user);
-
-        // quote
-        $user = array_map('preg_quote_cb', $user);
-        $style = array_map('preg_quote_cb', $style);
-        $data = array_map('preg_quote_cb', $data);
-
-        // join
-        $user = join('|', $user);
-        $style = join('|', $style);
-        $data = join('|', $data);
-
-        // any data at all?
-        if($user.$style.$data === '') throw new Exception('no data passed');
-
-        // replace empty values, set which ones are optional
-        $sopt = '';
-        $dopt = '';
-        if($user === '') {
-            $user = '\S+';
-        }
-        if($style === '') {
-            $style = '\S+';
-            $sopt = '?';
-        }
-        if($data === '') {
-            $data = '\S+';
-            $dopt = '?';
-        }
-
-        // assemble
-        return "/^($user)(?:\\s+($style))$sopt(?:\\s+($data))$dopt$/";
-    }
-
-    /**
-     * Recursively search for matching subscriptions
-     *
-     * This function searches all relevant subscription files for a page or
-     * namespace.
-     *
-     * @author Adrian Lang <lang@cosmocode.de>
-     *
-     * @param string         $page The target object’s (namespace or page) id
-     * @param string|array   $user
-     * @param string|array   $style
-     * @param string|array   $data
-     * @return array
-     */
-    public function subscribers($page, $user = null, $style = null, $data = null) {
-        if(!$this->isenabled()) return array();
-
-        // Construct list of files which may contain relevant subscriptions.
-        $files = array(':' => $this->file(':'));
-        do {
-            $files[$page] = $this->file($page);
-            $page = getNS(rtrim($page, ':')).':';
-        } while($page !== ':');
-
-        $re = $this->buildregex($user, $style, $data);
-
-        // Handle files.
-        $result = array();
-        foreach($files as $target => $file) {
-            if(!file_exists($file)) continue;
-
-            $lines = file($file);
-            foreach($lines as $line) {
-                // fix old style subscription files
-                if(strpos($line, ' ') === false) $line = trim($line)." every\n";
-
-                // check for matching entries
-                if(!preg_match($re, $line, $m)) continue;
-
-                $u = rawurldecode($m[1]); // decode the user name
-                if(!isset($result[$target])) $result[$target] = array();
-                $result[$target][$u] = array($m[2], $m[3]); // add to result
-            }
-        }
-        return array_reverse($result);
-    }
-
-    /**
-     * Adds a new subscription for the given page or namespace
-     *
-     * This will automatically overwrite any existent subscription for the given user on this
-     * *exact* page or namespace. It will *not* modify any subscription that may exist in higher namespaces.
-     *
-     * @param string $id The target page or namespace, specified by id; Namespaces
-     *                   are identified by appending a colon.
-     * @param string $user
-     * @param string $style
-     * @param string $data
-     * @throws Exception when user or style is empty
-     * @return bool
-     */
-    public function add($id, $user, $style, $data = '') {
-        if(!$this->isenabled()) return false;
-
-        // delete any existing subscription
-        $this->remove($id, $user);
-
-        $user  = auth_nameencode(trim($user));
-        $style = trim($style);
-        $data  = trim($data);
-
-        if(!$user) throw new Exception('no subscription user given');
-        if(!$style) throw new Exception('no subscription style given');
-        if(!$data) $data = time(); //always add current time for new subscriptions
-
-        $line = "$user $style $data\n";
-        $file = $this->file($id);
-        return io_saveFile($file, $line, true);
-    }
-
-    /**
-     * Removes a subscription for the given page or namespace
-     *
-     * This removes all subscriptions matching the given criteria on the given page or
-     * namespace. It will *not* modify any subscriptions that may exist in higher
-     * namespaces.
-     *
-     * @param string         $id   The target object’s (namespace or page) id
-     * @param string|array   $user
-     * @param string|array   $style
-     * @param string|array   $data
-     * @return bool
-     */
-    public function remove($id, $user = null, $style = null, $data = null) {
-        if(!$this->isenabled()) return false;
-
-        $file = $this->file($id);
-        if(!file_exists($file)) return true;
-
-        $re = $this->buildregex($user, $style, $data);
-        return io_deleteFromFile($file, $re, true);
-    }
-
-    /**
-     * Get data for $INFO['subscribed']
-     *
-     * $INFO['subscribed'] is either false if no subscription for the current page
-     * and user is in effect. Else it contains an array of arrays with the fields
-     * “targetâ€, “styleâ€, and optionally “dataâ€.
-     *
-     * @param string $id  Page ID, defaults to global $ID
-     * @param string $user User, defaults to $_SERVER['REMOTE_USER']
-     * @return array
-     * @author Adrian Lang <lang@cosmocode.de>
-     */
-    function user_subscription($id = '', $user = '') {
-        if(!$this->isenabled()) return false;
-
-        global $ID;
-        /** @var Input $INPUT */
-        global $INPUT;
-        if(!$id) $id = $ID;
-        if(!$user) $user = $INPUT->server->str('REMOTE_USER');
-
-        $subs = $this->subscribers($id, $user);
-        if(!count($subs)) return false;
-
-        $result = array();
-        foreach($subs as $target => $info) {
-            $result[] = array(
-                'target' => $target,
-                'style' => $info[$user][0],
-                'data' => $info[$user][1]
-            );
-        }
-
-        return $result;
-    }
-
-    /**
-     * Send digest and list subscriptions
-     *
-     * This sends mails to all subscribers that have a subscription for namespaces above
-     * the given page if the needed $conf['subscribe_time'] has passed already.
-     *
-     * This function is called form lib/exe/indexer.php
-     *
-     * @param string $page
-     * @return int number of sent mails
-     */
-    public function send_bulk($page) {
-        if(!$this->isenabled()) return 0;
-
-        /** @var DokuWiki_Auth_Plugin $auth */
-        global $auth;
-        global $conf;
-        global $USERINFO;
-        /** @var Input $INPUT */
-        global $INPUT;
-        $count = 0;
-
-        $subscriptions = $this->subscribers($page, null, array('digest', 'list'));
-
-        // remember current user info
-        $olduinfo = $USERINFO;
-        $olduser = $INPUT->server->str('REMOTE_USER');
-
-        foreach($subscriptions as $target => $users) {
-            if(!$this->lock($target)) continue;
-
-            foreach($users as $user => $info) {
-                list($style, $lastupdate) = $info;
-
-                $lastupdate = (int) $lastupdate;
-                if($lastupdate + $conf['subscribe_time'] > time()) {
-                    // Less than the configured time period passed since last
-                    // update.
-                    continue;
-                }
-
-                // Work as the user to make sure ACLs apply correctly
-                $USERINFO = $auth->getUserData($user);
-                $INPUT->server->set('REMOTE_USER',$user);
-                if($USERINFO === false) continue;
-                if(!$USERINFO['mail']) continue;
-
-                if(substr($target, -1, 1) === ':') {
-                    // subscription target is a namespace, get all changes within
-                    $changes = getRecentsSince($lastupdate, null, getNS($target));
-                } else {
-                    // single page subscription, check ACL ourselves
-                    if(auth_quickaclcheck($target) < AUTH_READ) continue;
-                    $meta = p_get_metadata($target);
-                    $changes = array($meta['last_change']);
-                }
-
-                // Filter out pages only changed in small and own edits
-                $change_ids = array();
-                foreach($changes as $rev) {
-                    $n = 0;
-                    while(!is_null($rev) && $rev['date'] >= $lastupdate &&
-                        ($INPUT->server->str('REMOTE_USER') === $rev['user'] ||
-                            $rev['type'] === DOKU_CHANGE_TYPE_MINOR_EDIT)) {
-                        $pagelog = new PageChangeLog($rev['id']);
-                        $rev = $pagelog->getRevisions($n++, 1);
-                        $rev = (count($rev) > 0) ? $rev[0] : null;
-                    }
-
-                    if(!is_null($rev) && $rev['date'] >= $lastupdate) {
-                        // Some change was not a minor one and not by myself
-                        $change_ids[] = $rev['id'];
-                    }
-                }
-
-                // send it
-                if($style === 'digest') {
-                    foreach($change_ids as $change_id) {
-                        $this->send_digest(
-                            $USERINFO['mail'], $change_id,
-                            $lastupdate
-                        );
-                        $count++;
-                    }
-                } elseif($style === 'list') {
-                    $this->send_list($USERINFO['mail'], $change_ids, $target);
-                    $count++;
-                }
-                // TODO: Handle duplicate subscriptions.
-
-                // Update notification time.
-                $this->add($target, $user, $style, time());
-            }
-            $this->unlock($target);
-        }
-
-        // restore current user info
-        $USERINFO = $olduinfo;
-        $INPUT->server->set('REMOTE_USER',$olduser);
-        return $count;
-    }
-
-    /**
-     * Send the diff for some page change
-     *
-     * @param string   $subscriber_mail The target mail address
-     * @param string   $template        Mail template ('subscr_digest', 'subscr_single', 'mailtext', ...)
-     * @param string   $id              Page for which the notification is
-     * @param int|null $rev             Old revision if any
-     * @param string   $summary         Change summary if any
-     * @return bool                     true if successfully sent
-     */
-    public function send_diff($subscriber_mail, $template, $id, $rev = null, $summary = '') {
-        global $DIFF_INLINESTYLES;
-
-        // prepare replacements (keys not set in hrep will be taken from trep)
-        $trep = array(
-            'PAGE' => $id,
-            'NEWPAGE' => wl($id, '', true, '&'),
-            'SUMMARY' => $summary,
-            'SUBSCRIBE' => wl($id, array('do' => 'subscribe'), true, '&')
-        );
-        $hrep = array();
-
-        if($rev) {
-            $subject = 'changed';
-            $trep['OLDPAGE'] = wl($id, "rev=$rev", true, '&');
-
-            $old_content = rawWiki($id, $rev);
-            $new_content = rawWiki($id);
-
-            $df = new Diff(explode("\n", $old_content),
-                           explode("\n", $new_content));
-            $dformat = new UnifiedDiffFormatter();
-            $tdiff = $dformat->format($df);
-
-            $DIFF_INLINESTYLES = true;
-            $df = new Diff(explode("\n", $old_content),
-                           explode("\n", $new_content));
-            $dformat = new InlineDiffFormatter();
-            $hdiff = $dformat->format($df);
-            $hdiff = '<table>'.$hdiff.'</table>';
-            $DIFF_INLINESTYLES = false;
-        } else {
-            $subject = 'newpage';
-            $trep['OLDPAGE'] = '---';
-            $tdiff = rawWiki($id);
-            $hdiff = nl2br(hsc($tdiff));
-        }
-
-        $trep['DIFF'] = $tdiff;
-        $hrep['DIFF'] = $hdiff;
-
-        $headers = array('Message-Id' => $this->getMessageID($id));
-        if ($rev) {
-            $headers['In-Reply-To'] =  $this->getMessageID($id, $rev);
-        }
-
-        return $this->send(
-            $subscriber_mail, $subject, $id,
-            $template, $trep, $hrep, $headers
-        );
-    }
-
-    /**
-     * Send the diff for some media change
-     *
-     * @fixme this should embed thumbnails of images in HTML version
-     *
-     * @param string   $subscriber_mail The target mail address
-     * @param string   $template        Mail template ('uploadmail', ...)
-     * @param string   $id              Media file for which the notification is
-     * @param int|bool $rev             Old revision if any
-     */
-    public function send_media_diff($subscriber_mail, $template, $id, $rev = false) {
-        global $conf;
-
-        $file = mediaFN($id);
-        list($mime, /* $ext */) = mimetype($id);
-
-        $trep = array(
-            'MIME'  => $mime,
-            'MEDIA' => ml($id,'',true,'&',true),
-            'SIZE'  => filesize_h(filesize($file)),
-        );
-
-        if ($rev && $conf['mediarevisions']) {
-            $trep['OLD'] = ml($id, "rev=$rev", true, '&', true);
-        } else {
-            $trep['OLD'] = '---';
-        }
-
-        $headers = array('Message-Id' => $this->getMessageID($id, @filemtime($file)));
-        if ($rev) {
-            $headers['In-Reply-To'] =  $this->getMessageID($id, $rev);
-        }
-
-        $this->send($subscriber_mail, 'upload', $id, $template, $trep, null, $headers);
-
-    }
-
-    /**
-     * Send a notify mail on new registration
-     *
-     * @author Andreas Gohr <andi@splitbrain.org>
-     *
-     * @param string $login    login name of the new user
-     * @param string $fullname full name of the new user
-     * @param string $email    email address of the new user
-     * @return bool true if a mail was sent
-     */
-    public function send_register($login, $fullname, $email) {
-        global $conf;
-        if(empty($conf['registernotify'])) return false;
-
-        $trep = array(
-            'NEWUSER' => $login,
-            'NEWNAME' => $fullname,
-            'NEWEMAIL' => $email,
-        );
-
-        return $this->send(
-            $conf['registernotify'],
-            'new_user',
-            $login,
-            'registermail',
-            $trep
-        );
-    }
-
-    /**
-     * Send a digest mail
-     *
-     * Sends a digest mail showing a bunch of changes of a single page. Basically the same as send_diff()
-     * but determines the last known revision first
-     *
-     * @author Adrian Lang <lang@cosmocode.de>
-     *
-     * @param string $subscriber_mail The target mail address
-     * @param string $id              The ID
-     * @param int    $lastupdate      Time of the last notification
-     * @return bool
-     */
-    protected function send_digest($subscriber_mail, $id, $lastupdate) {
-        $pagelog = new PageChangeLog($id);
-        $n = 0;
-        do {
-            $rev = $pagelog->getRevisions($n++, 1);
-            $rev = (count($rev) > 0) ? $rev[0] : null;
-        } while(!is_null($rev) && $rev > $lastupdate);
-
-        return $this->send_diff(
-            $subscriber_mail,
-            'subscr_digest',
-            $id, $rev
-        );
-    }
-
-    /**
-     * Send a list mail
-     *
-     * Sends a list mail showing a list of changed pages.
-     *
-     * @author Adrian Lang <lang@cosmocode.de>
-     *
-     * @param string $subscriber_mail The target mail address
-     * @param array  $ids             Array of ids
-     * @param string $ns_id           The id of the namespace
-     * @return bool true if a mail was sent
-     */
-    protected function send_list($subscriber_mail, $ids, $ns_id) {
-        if(count($ids) === 0) return false;
-
-        $tlist = '';
-        $hlist = '<ul>';
-        foreach($ids as $id) {
-            $link = wl($id, array(), true);
-            $tlist .= '* '.$link.NL;
-            $hlist .= '<li><a href="'.$link.'">'.hsc($id).'</a></li>'.NL;
-        }
-        $hlist .= '</ul>';
-
-        $id = prettyprint_id($ns_id);
-        $trep = array(
-            'DIFF' => rtrim($tlist),
-            'PAGE' => $id,
-            'SUBSCRIBE' => wl($id, array('do' => 'subscribe'), true, '&')
-        );
-        $hrep = array(
-            'DIFF' => $hlist
-        );
-
-        return $this->send(
-            $subscriber_mail,
-            'subscribe_list',
-            $ns_id,
-            'subscr_list', $trep, $hrep
-        );
-    }
-
-    /**
-     * Helper function for sending a mail
-     *
-     * @author Adrian Lang <lang@cosmocode.de>
-     *
-     * @param string $subscriber_mail The target mail address
-     * @param string $subject         The lang id of the mail subject (without the
-     *                                prefix “mail_â€)
-     * @param string $context         The context of this mail, eg. page or namespace id
-     * @param string $template        The name of the mail template
-     * @param array  $trep            Predefined parameters used to parse the
-     *                                template (in text format)
-     * @param array  $hrep            Predefined parameters used to parse the
-     *                                template (in HTML format), null to default to $trep
-     * @param array  $headers         Additional mail headers in the form 'name' => 'value'
-     * @return bool
-     */
-    protected function send($subscriber_mail, $subject, $context, $template, $trep, $hrep = null, $headers = array()) {
-        global $lang;
-        global $conf;
-
-        $text = rawLocale($template);
-        $subject = $lang['mail_'.$subject].' '.$context;
-        $mail = new Mailer();
-        $mail->bcc($subscriber_mail);
-        $mail->subject($subject);
-        $mail->setBody($text, $trep, $hrep);
-        if(in_array($template, array('subscr_list', 'subscr_digest'))){
-            $mail->from($conf['mailfromnobody']);
-        }
-        if(isset($trep['SUBSCRIBE'])) {
-            $mail->setHeader('List-Unsubscribe', '<'.$trep['SUBSCRIBE'].'>', false);
-        }
-
-        foreach ($headers as $header => $value) {
-            $mail->setHeader($header, $value);
-        }
-
-        return $mail->send();
-    }
-
-    /**
-     * Get a valid message id for a certain $id and revision (or the current revision)
-     *
-     * @param string $id  The id of the page (or media file) the message id should be for
-     * @param string $rev The revision of the page, set to the current revision of the page $id if not set
-     * @return string
-     */
-    protected function getMessageID($id, $rev = null) {
-        static $listid = null;
-        if (is_null($listid)) {
-            $server = parse_url(DOKU_URL, PHP_URL_HOST);
-            $listid = join('.', array_reverse(explode('/', DOKU_BASE))).$server;
-            $listid = urlencode($listid);
-            $listid = strtolower(trim($listid, '.'));
-        }
-
-        if (is_null($rev)) {
-            $rev = @filemtime(wikiFN($id));
-        }
-
-        return "<$id?rev=$rev@$listid>";
-    }
-
-    /**
-     * Default callback for COMMON_NOTIFY_ADDRESSLIST
-     *
-     * Aggregates all email addresses of user who have subscribed the given page with 'every' style
-     *
-     * @author Steven Danz <steven-danz@kc.rr.com>
-     * @author Adrian Lang <lang@cosmocode.de>
-     *
-     * @todo move the whole functionality into this class, trigger SUBSCRIPTION_NOTIFY_ADDRESSLIST instead,
-     *       use an array for the addresses within it
-     *
-     * @param array &$data Containing the entries:
-     *    - $id (the page id),
-     *    - $self (whether the author should be notified,
-     *    - $addresslist (current email address list)
-     *    - $replacements (array of additional string substitutions, @KEY@ to be replaced by value)
-     */
-    public function notifyaddresses(&$data) {
-        if(!$this->isenabled()) return;
-
-        /** @var DokuWiki_Auth_Plugin $auth */
-        global $auth;
-        global $conf;
-        /** @var Input $INPUT */
-        global $INPUT;
-
-        $id = $data['id'];
-        $self = $data['self'];
-        $addresslist = $data['addresslist'];
-
-        $subscriptions = $this->subscribers($id, null, 'every');
-
-        $result = array();
-        foreach($subscriptions as $target => $users) {
-            foreach($users as $user => $info) {
-                $userinfo = $auth->getUserData($user);
-                if($userinfo === false) continue;
-                if(!$userinfo['mail']) continue;
-                if(!$self && $user == $INPUT->server->str('REMOTE_USER')) continue; //skip our own changes
-
-                $level = auth_aclcheck($id, $user, $userinfo['grps']);
-                if($level >= AUTH_READ) {
-                    if(strcasecmp($userinfo['mail'], $conf['notify']) != 0) { //skip user who get notified elsewhere
-                        $result[$user] = $userinfo['mail'];
-                    }
-                }
-            }
-        }
-        $data['addresslist'] = trim($addresslist.','.implode(',', $result), ',');
-    }
-}
diff --git a/wiki/inc/template.php b/wiki/inc/template.php
deleted file mode 100644
index b4acae1..0000000
--- a/wiki/inc/template.php
+++ /dev/null
@@ -1,1873 +0,0 @@
-<?php
-/**
- * DokuWiki template functions
- *
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * @author     Andreas Gohr <andi@splitbrain.org>
- */
-
-if(!defined('DOKU_INC')) die('meh.');
-
-/**
- * Access a template file
- *
- * Returns the path to the given file inside the current template, uses
- * default template if the custom version doesn't exist.
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- * @param string $file
- * @return string
- */
-function template($file) {
-    global $conf;
-
-    if(@is_readable(DOKU_INC.'lib/tpl/'.$conf['template'].'/'.$file))
-        return DOKU_INC.'lib/tpl/'.$conf['template'].'/'.$file;
-
-    return DOKU_INC.'lib/tpl/dokuwiki/'.$file;
-}
-
-/**
- * Convenience function to access template dir from local FS
- *
- * This replaces the deprecated DOKU_TPLINC constant
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- * @param string $tpl The template to use, default to current one
- * @return string
- */
-function tpl_incdir($tpl='') {
-    global $conf;
-    if(!$tpl) $tpl = $conf['template'];
-    return DOKU_INC.'lib/tpl/'.$tpl.'/';
-}
-
-/**
- * Convenience function to access template dir from web
- *
- * This replaces the deprecated DOKU_TPL constant
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- * @param string $tpl The template to use, default to current one
- * @return string
- */
-function tpl_basedir($tpl='') {
-    global $conf;
-    if(!$tpl) $tpl = $conf['template'];
-    return DOKU_BASE.'lib/tpl/'.$tpl.'/';
-}
-
-/**
- * Print the content
- *
- * This function is used for printing all the usual content
- * (defined by the global $ACT var) by calling the appropriate
- * outputfunction(s) from html.php
- *
- * Everything that doesn't use the main template file isn't
- * handled by this function. ACL stuff is not done here either.
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- *
- * @triggers TPL_ACT_RENDER
- * @triggers TPL_CONTENT_DISPLAY
- * @param bool $prependTOC should the TOC be displayed here?
- * @return bool true if any output
- */
-function tpl_content($prependTOC = true) {
-    global $ACT;
-    global $INFO;
-    $INFO['prependTOC'] = $prependTOC;
-
-    ob_start();
-    trigger_event('TPL_ACT_RENDER', $ACT, 'tpl_content_core');
-    $html_output = ob_get_clean();
-    trigger_event('TPL_CONTENT_DISPLAY', $html_output, 'ptln');
-
-    return !empty($html_output);
-}
-
-/**
- * Default Action of TPL_ACT_RENDER
- *
- * @return bool
- */
-function tpl_content_core() {
-    $router = \dokuwiki\ActionRouter::getInstance();
-    try {
-        $router->getAction()->tplContent();
-    } catch(\dokuwiki\Action\Exception\FatalException $e) {
-        // there was no content for the action
-        msg(hsc($e->getMessage()), -1);
-        return false;
-    }
-    return true;
-}
-
-/**
- * Places the TOC where the function is called
- *
- * If you use this you most probably want to call tpl_content with
- * a false argument
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- *
- * @param bool $return Should the TOC be returned instead to be printed?
- * @return string
- */
-function tpl_toc($return = false) {
-    global $TOC;
-    global $ACT;
-    global $ID;
-    global $REV;
-    global $INFO;
-    global $conf;
-    global $INPUT;
-    $toc = array();
-
-    if(is_array($TOC)) {
-        // if a TOC was prepared in global scope, always use it
-        $toc = $TOC;
-    } elseif(($ACT == 'show' || substr($ACT, 0, 6) == 'export') && !$REV && $INFO['exists']) {
-        // get TOC from metadata, render if neccessary
-        $meta = p_get_metadata($ID, '', METADATA_RENDER_USING_CACHE);
-        if(isset($meta['internal']['toc'])) {
-            $tocok = $meta['internal']['toc'];
-        } else {
-            $tocok = true;
-        }
-        $toc = isset($meta['description']['tableofcontents']) ? $meta['description']['tableofcontents'] : null;
-        if(!$tocok || !is_array($toc) || !$conf['tocminheads'] || count($toc) < $conf['tocminheads']) {
-            $toc = array();
-        }
-    } elseif($ACT == 'admin') {
-        // try to load admin plugin TOC
-        /** @var $plugin DokuWiki_Admin_Plugin */
-        if ($plugin = plugin_getRequestAdminPlugin()) {
-            $toc = $plugin->getTOC();
-            $TOC = $toc; // avoid later rebuild
-        }
-    }
-
-    trigger_event('TPL_TOC_RENDER', $toc, null, false);
-    $html = html_TOC($toc);
-    if($return) return $html;
-    echo $html;
-    return '';
-}
-
-/**
- * Handle the admin page contents
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- *
- * @return bool
- */
-function tpl_admin() {
-    global $INFO;
-    global $TOC;
-    global $INPUT;
-
-    $plugin = null;
-    $class  = $INPUT->str('page');
-    if(!empty($class)) {
-        $pluginlist = plugin_list('admin');
-
-        if(in_array($class, $pluginlist)) {
-            // attempt to load the plugin
-            /** @var $plugin DokuWiki_Admin_Plugin */
-            $plugin = plugin_load('admin', $class);
-        }
-    }
-
-    if($plugin !== null) {
-        if(!is_array($TOC)) $TOC = $plugin->getTOC(); //if TOC wasn't requested yet
-        if($INFO['prependTOC']) tpl_toc();
-        $plugin->html();
-    } else {
-        $admin = new dokuwiki\Ui\Admin();
-        $admin->show();
-    }
-    return true;
-}
-
-/**
- * Print the correct HTML meta headers
- *
- * This has to go into the head section of your template.
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- *
- * @triggers TPL_METAHEADER_OUTPUT
- * @param  bool $alt Should feeds and alternative format links be added?
- * @return bool
- */
-function tpl_metaheaders($alt = true) {
-    global $ID;
-    global $REV;
-    global $INFO;
-    global $JSINFO;
-    global $ACT;
-    global $QUERY;
-    global $lang;
-    global $conf;
-    global $updateVersion;
-    /** @var Input $INPUT */
-    global $INPUT;
-
-    // prepare the head array
-    $head = array();
-
-    // prepare seed for js and css
-    $tseed   = $updateVersion;
-    $depends = getConfigFiles('main');
-    $depends[] = DOKU_CONF."tpl/".$conf['template']."/style.ini";
-    foreach($depends as $f) $tseed .= @filemtime($f);
-    $tseed   = md5($tseed);
-
-    // the usual stuff
-    $head['meta'][] = array('name'=> 'generator', 'content'=> 'DokuWiki');
-    if(actionOK('search')) {
-        $head['link'][] = array(
-            'rel' => 'search', 'type'=> 'application/opensearchdescription+xml',
-            'href'=> DOKU_BASE.'lib/exe/opensearch.php', 'title'=> $conf['title']
-        );
-    }
-
-    $head['link'][] = array('rel'=> 'start', 'href'=> DOKU_BASE);
-    if(actionOK('index')) {
-        $head['link'][] = array(
-            'rel'  => 'contents', 'href'=> wl($ID, 'do=index', false, '&'),
-            'title'=> $lang['btn_index']
-        );
-    }
-
-    if (actionOK('manifest')) {
-        $head['link'][] = array('rel'=> 'manifest', 'href'=> DOKU_BASE.'lib/exe/manifest.php');
-    }
-
-    $styleUtil = new \dokuwiki\StyleUtils();
-    $styleIni = $styleUtil->cssStyleini($conf['template']);
-    $replacements = $styleIni['replacements'];
-    if (!empty($replacements['__theme_color__'])) {
-        $head['meta'][] = array('name' => 'theme-color', 'content' => $replacements['__theme_color__']);
-    }
-
-    if($alt) {
-        if(actionOK('rss')) {
-            $head['link'][] = array(
-                'rel'  => 'alternate', 'type'=> 'application/rss+xml',
-                'title'=> $lang['btn_recent'], 'href'=> DOKU_BASE.'feed.php'
-            );
-            $head['link'][] = array(
-                'rel'  => 'alternate', 'type'=> 'application/rss+xml',
-                'title'=> $lang['currentns'],
-                'href' => DOKU_BASE.'feed.php?mode=list&ns='.$INFO['namespace']
-            );
-        }
-        if(($ACT == 'show' || $ACT == 'search') && $INFO['writable']) {
-            $head['link'][] = array(
-                'rel'  => 'edit',
-                'title'=> $lang['btn_edit'],
-                'href' => wl($ID, 'do=edit', false, '&')
-            );
-        }
-
-        if(actionOK('rss') && $ACT == 'search') {
-            $head['link'][] = array(
-                'rel'  => 'alternate', 'type'=> 'application/rss+xml',
-                'title'=> $lang['searchresult'],
-                'href' => DOKU_BASE.'feed.php?mode=search&q='.$QUERY
-            );
-        }
-
-        if(actionOK('export_xhtml')) {
-            $head['link'][] = array(
-                'rel' => 'alternate', 'type'=> 'text/html', 'title'=> $lang['plainhtml'],
-                'href'=> exportlink($ID, 'xhtml', '', false, '&')
-            );
-        }
-
-        if(actionOK('export_raw')) {
-            $head['link'][] = array(
-                'rel' => 'alternate', 'type'=> 'text/plain', 'title'=> $lang['wikimarkup'],
-                'href'=> exportlink($ID, 'raw', '', false, '&')
-            );
-        }
-    }
-
-    // setup robot tags apropriate for different modes
-    if(($ACT == 'show' || $ACT == 'export_xhtml') && !$REV) {
-        if($INFO['exists']) {
-            //delay indexing:
-            if((time() - $INFO['lastmod']) >= $conf['indexdelay'] && !isHiddenPage($ID) ) {
-                $head['meta'][] = array('name'=> 'robots', 'content'=> 'index,follow');
-            } else {
-                $head['meta'][] = array('name'=> 'robots', 'content'=> 'noindex,nofollow');
-            }
-            $canonicalUrl = wl($ID, '', true, '&');
-            if ($ID == $conf['start']) {
-                $canonicalUrl = DOKU_URL;
-            }
-            $head['link'][] = array('rel'=> 'canonical', 'href'=> $canonicalUrl);
-        } else {
-            $head['meta'][] = array('name'=> 'robots', 'content'=> 'noindex,follow');
-        }
-    } elseif(defined('DOKU_MEDIADETAIL')) {
-        $head['meta'][] = array('name'=> 'robots', 'content'=> 'index,follow');
-    } else {
-        $head['meta'][] = array('name'=> 'robots', 'content'=> 'noindex,nofollow');
-    }
-
-    // set metadata
-    if($ACT == 'show' || $ACT == 'export_xhtml') {
-        // keywords (explicit or implicit)
-        if(!empty($INFO['meta']['subject'])) {
-            $head['meta'][] = array('name'=> 'keywords', 'content'=> join(',', $INFO['meta']['subject']));
-        } else {
-            $head['meta'][] = array('name'=> 'keywords', 'content'=> str_replace(':', ',', $ID));
-        }
-    }
-
-    // load stylesheets
-    $head['link'][] = array(
-        'rel' => 'stylesheet', 'type'=> 'text/css',
-        'href'=> DOKU_BASE.'lib/exe/css.php?t='.rawurlencode($conf['template']).'&tseed='.$tseed
-    );
-
-    $script = "var NS='".$INFO['namespace']."';";
-    if($conf['useacl'] && $INPUT->server->str('REMOTE_USER')) {
-        $script .= "var SIG='".toolbar_signature()."';";
-    }
-    jsinfo();
-    $script .= 'var JSINFO = ' . json_encode($JSINFO).';';
-    $head['script'][] = array('type'=> 'text/javascript', '_data'=> $script);
-
-    // load jquery
-    $jquery = getCdnUrls();
-    foreach($jquery as $src) {
-        $head['script'][] = array(
-            'type' => 'text/javascript', 'charset' => 'utf-8', '_data' => '', 'src' => $src
-        );
-    }
-
-    // load our javascript dispatcher
-    $head['script'][] = array(
-        'type'=> 'text/javascript', 'charset'=> 'utf-8', '_data'=> '',
-        'src' => DOKU_BASE.'lib/exe/js.php'.'?t='.rawurlencode($conf['template']).'&tseed='.$tseed
-    );
-
-    // trigger event here
-    trigger_event('TPL_METAHEADER_OUTPUT', $head, '_tpl_metaheaders_action', true);
-    return true;
-}
-
-/**
- * prints the array build by tpl_metaheaders
- *
- * $data is an array of different header tags. Each tag can have multiple
- * instances. Attributes are given as key value pairs. Values will be HTML
- * encoded automatically so they should be provided as is in the $data array.
- *
- * For tags having a body attribute specify the body data in the special
- * attribute '_data'. This field will NOT BE ESCAPED automatically.
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- *
- * @param array $data
- */
-function _tpl_metaheaders_action($data) {
-    foreach($data as $tag => $inst) {
-        if($tag == 'script') {
-            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'])
-                    $attr['_data'] = "/*<![CDATA[*/".
-                        $attr['_data'].
-                        "\n/*!]]>*/";
-
-                echo '>', $attr['_data'], '</', $tag, '>';
-            } else {
-                echo '/>';
-            }
-            echo "\n";
-        }
-        if($tag == 'script') {
-            echo "<!--<![endif]-->\n";
-        }
-    }
-}
-
-/**
- * Print a link
- *
- * Just builds a link.
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- *
- * @param string $url
- * @param string $name
- * @param string $more
- * @param bool $return if true return the link html, otherwise print
- * @return bool|string html of the link, or true if printed
- */
-function tpl_link($url, $name, $more = '', $return = false) {
-    $out = '<a href="'.$url.'" ';
-    if($more) $out .= ' '.$more;
-    $out .= ">$name</a>";
-    if($return) return $out;
-    print $out;
-    return true;
-}
-
-/**
- * Prints a link to a WikiPage
- *
- * Wrapper around html_wikilink
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- *
- * @param string      $id   page id
- * @param string|null $name the name of the link
- * @param bool        $return
- * @return true|string
- */
-function tpl_pagelink($id, $name = null, $return = false) {
-    $out = '<bdi>'.html_wikilink($id, $name).'</bdi>';
-    if($return) return $out;
-    print $out;
-    return true;
-}
-
-/**
- * get the parent page
- *
- * Tries to find out which page is parent.
- * returns false if none is available
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- *
- * @param string $id page id
- * @return false|string
- */
-function tpl_getparent($id) {
-    $parent = getNS($id).':';
-    resolve_pageid('', $parent, $exists);
-    if($parent == $id) {
-        $pos    = strrpos(getNS($id), ':');
-        $parent = substr($parent, 0, $pos).':';
-        resolve_pageid('', $parent, $exists);
-        if($parent == $id) return false;
-    }
-    return $parent;
-}
-
-/**
- * Print one of the buttons
- *
- * @author Adrian Lang <mail@adrianlang.de>
- * @see    tpl_get_action
- *
- * @param string $type
- * @param bool $return
- * @return bool|string html, or false if no data, true if printed
- * @deprecated 2017-09-01 see devel:menus
- */
-function tpl_button($type, $return = false) {
-    dbg_deprecated('see devel:menus');
-    $data = tpl_get_action($type);
-    if($data === false) {
-        return false;
-    } elseif(!is_array($data)) {
-        $out = sprintf($data, 'button');
-    } else {
-        /**
-         * @var string $accesskey
-         * @var string $id
-         * @var string $method
-         * @var array  $params
-         */
-        extract($data);
-        if($id === '#dokuwiki__top') {
-            $out = html_topbtn();
-        } else {
-            $out = html_btn($type, $id, $accesskey, $params, $method);
-        }
-    }
-    if($return) return $out;
-    echo $out;
-    return true;
-}
-
-/**
- * Like the action buttons but links
- *
- * @author Adrian Lang <mail@adrianlang.de>
- * @see    tpl_get_action
- *
- * @param string $type    action command
- * @param string $pre     prefix of link
- * @param string $suf     suffix of link
- * @param string $inner   innerHML of link
- * @param bool   $return  if true it returns html, otherwise prints
- * @return bool|string html or false if no data, true if printed
- * @deprecated 2017-09-01 see devel:menus
- */
-function tpl_actionlink($type, $pre = '', $suf = '', $inner = '', $return = false) {
-    dbg_deprecated('see devel:menus');
-    global $lang;
-    $data = tpl_get_action($type);
-    if($data === false) {
-        return false;
-    } elseif(!is_array($data)) {
-        $out = sprintf($data, 'link');
-    } else {
-        /**
-         * @var string $accesskey
-         * @var string $id
-         * @var string $method
-         * @var bool   $nofollow
-         * @var array  $params
-         * @var string $replacement
-         */
-        extract($data);
-        if(strpos($id, '#') === 0) {
-            $linktarget = $id;
-        } else {
-            $linktarget = wl($id, $params);
-        }
-        $caption = $lang['btn_'.$type];
-        if(strpos($caption, '%s')){
-            $caption = sprintf($caption, $replacement);
-        }
-        $akey    = $addTitle = '';
-        if($accesskey) {
-            $akey     = 'accesskey="'.$accesskey.'" ';
-            $addTitle = ' ['.strtoupper($accesskey).']';
-        }
-        $rel = $nofollow ? 'rel="nofollow" ' : '';
-        $out = tpl_link(
-            $linktarget, $pre.(($inner) ? $inner : $caption).$suf,
-            'class="action '.$type.'" '.
-                $akey.$rel.
-                'title="'.hsc($caption).$addTitle.'"', true
-        );
-    }
-    if($return) return $out;
-    echo $out;
-    return true;
-}
-
-/**
- * Check the actions and get data for buttons and links
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- * @author Matthias Grimm <matthiasgrimm@users.sourceforge.net>
- * @author Adrian Lang <mail@adrianlang.de>
- *
- * @param string $type
- * @return array|bool|string
- * @deprecated 2017-09-01 see devel:menus
- */
-function tpl_get_action($type) {
-    dbg_deprecated('see devel:menus');
-    if($type == 'history') $type = 'revisions';
-    if($type == 'subscription') $type = 'subscribe';
-    if($type == 'img_backto') $type = 'imgBackto';
-
-    $class = '\\dokuwiki\\Menu\\Item\\' . ucfirst($type);
-    if(class_exists($class)) {
-        try {
-            /** @var \dokuwiki\Menu\Item\AbstractItem $item */
-            $item = new $class;
-            $data = $item->getLegacyData();
-            $unknown = false;
-        } catch(\RuntimeException $ignored) {
-            return false;
-        }
-    } else {
-        global $ID;
-        $data = array(
-            'accesskey' => null,
-            'type' => $type,
-            'id' => $ID,
-            'method' => 'get',
-            'params' => array('do' => $type),
-            'nofollow' => true,
-            'replacement' => '',
-        );
-        $unknown = true;
-    }
-
-    $evt = new Doku_Event('TPL_ACTION_GET', $data);
-    if($evt->advise_before()) {
-        //handle unknown types
-        if($unknown) {
-            $data = '[unknown %s type]';
-        }
-    }
-    $evt->advise_after();
-    unset($evt);
-
-    return $data;
-}
-
-/**
- * Wrapper around tpl_button() and tpl_actionlink()
- *
- * @author Anika Henke <anika@selfthinker.org>
- *
- * @param string        $type action command
- * @param bool          $link link or form button?
- * @param string|bool   $wrapper HTML element wrapper
- * @param bool          $return return or print
- * @param string        $pre prefix for links
- * @param string        $suf suffix for links
- * @param string        $inner inner HTML for links
- * @return bool|string
- * @deprecated 2017-09-01 see devel:menus
- */
-function tpl_action($type, $link = false, $wrapper = false, $return = false, $pre = '', $suf = '', $inner = '') {
-    dbg_deprecated('see devel:menus');
-    $out = '';
-    if($link) {
-        $out .= tpl_actionlink($type, $pre, $suf, $inner, true);
-    } else {
-        $out .= tpl_button($type, true);
-    }
-    if($out && $wrapper) $out = "<$wrapper>$out</$wrapper>";
-
-    if($return) return $out;
-    print $out;
-    return $out ? true : false;
-}
-
-/**
- * Print the search form
- *
- * If the first parameter is given a div with the ID 'qsearch_out' will
- * be added which instructs the ajax pagequicksearch to kick in and place
- * its output into this div. The second parameter controls the propritary
- * attribute autocomplete. If set to false this attribute will be set with an
- * value of "off" to instruct the browser to disable it's own built in
- * autocompletion feature (MSIE and Firefox)
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- *
- * @param bool $ajax
- * @param bool $autocomplete
- * @return bool
- */
-function tpl_searchform($ajax = true, $autocomplete = true) {
-    global $lang;
-    global $ACT;
-    global $QUERY;
-    global $ID;
-
-    // don't print the search form if search action has been disabled
-    if(!actionOK('search')) return false;
-
-    $searchForm = new dokuwiki\Form\Form([
-        'action' => wl(),
-        'method' => 'get',
-        'role' => 'search',
-        'class' => 'search',
-        'id' => 'dw__search',
-    ], true);
-    $searchForm->addTagOpen('div')->addClass('no');
-    $searchForm->setHiddenField('do', 'search');
-    $searchForm->setHiddenField('id', $ID);
-    $searchForm->addTextInput('q')
-        ->addClass('edit')
-        ->attrs([
-            'title' => '[F]',
-            'accesskey' => 'f',
-            'placeholder' => $lang['btn_search'],
-            'autocomplete' => $autocomplete ? 'on' : 'off',
-        ])
-        ->id('qsearch__in')
-        ->val($ACT === 'search' ? $QUERY : '')
-        ->useInput(false)
-    ;
-    $searchForm->addButton('', $lang['btn_search'])->attrs([
-        'type' => 'submit',
-        'title' => $lang['btn_search'],
-    ]);
-    if ($ajax) {
-        $searchForm->addTagOpen('div')->id('qsearch__out')->addClass('ajax_qsearch JSpopup');
-        $searchForm->addTagClose('div');
-    }
-    $searchForm->addTagClose('div');
-    trigger_event('FORM_QUICKSEARCH_OUTPUT', $searchForm);
-
-    echo $searchForm->toHTML();
-
-    return true;
-}
-
-/**
- * Print the breadcrumbs trace
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- *
- * @param string $sep Separator between entries
- * @param bool   $return return or print
- * @return bool|string
- */
-function tpl_breadcrumbs($sep = null, $return = false) {
-    global $lang;
-    global $conf;
-
-    //check if enabled
-    if(!$conf['breadcrumbs']) return false;
-
-    //set default
-    if(is_null($sep)) $sep = '•';
-
-    $out='';
-
-    $crumbs = breadcrumbs(); //setup crumb trace
-
-    $crumbs_sep = ' <span class="bcsep">'.$sep.'</span> ';
-
-    //render crumbs, highlight the last one
-    $out .= '<span class="bchead">'.$lang['breadcrumb'].'</span>';
-    $last = count($crumbs);
-    $i    = 0;
-    foreach($crumbs as $id => $name) {
-        $i++;
-        $out .= $crumbs_sep;
-        if($i == $last) $out .= '<span class="curid">';
-        $out .= '<bdi>' . tpl_link(wl($id), hsc($name), 'class="breadcrumbs" title="'.$id.'"', true) .  '</bdi>';
-        if($i == $last) $out .= '</span>';
-    }
-    if($return) return $out;
-    print $out;
-    return $out ? true : false;
-}
-
-/**
- * Hierarchical breadcrumbs
- *
- * This code was suggested as replacement for the usual breadcrumbs.
- * It only makes sense with a deep site structure.
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- * @author Nigel McNie <oracle.shinoda@gmail.com>
- * @author Sean Coates <sean@caedmon.net>
- * @author <fredrik@averpil.com>
- * @todo   May behave strangely in RTL languages
- *
- * @param string $sep Separator between entries
- * @param bool   $return return or print
- * @return bool|string
- */
-function tpl_youarehere($sep = null, $return = false) {
-    global $conf;
-    global $ID;
-    global $lang;
-
-    // check if enabled
-    if(!$conf['youarehere']) return false;
-
-    //set default
-    if(is_null($sep)) $sep = ' » ';
-
-    $out = '';
-
-    $parts = explode(':', $ID);
-    $count = count($parts);
-
-    $out .= '<span class="bchead">'.$lang['youarehere'].' </span>';
-
-    // always print the startpage
-    $out .= '<span class="home">' . tpl_pagelink(':'.$conf['start'], null, true) . '</span>';
-
-    // print intermediate namespace links
-    $part = '';
-    for($i = 0; $i < $count - 1; $i++) {
-        $part .= $parts[$i].':';
-        $page = $part;
-        if($page == $conf['start']) continue; // Skip startpage
-
-        // output
-        $out .= $sep . tpl_pagelink($page, null, true);
-    }
-
-    // print current page, skipping start page, skipping for namespace index
-    resolve_pageid('', $page, $exists);
-    if (isset($page) && $page == $part.$parts[$i]) {
-        if($return) return $out;
-        print $out;
-        return true;
-    }
-    $page = $part.$parts[$i];
-    if($page == $conf['start']) {
-        if($return) return $out;
-        print $out;
-        return true;
-    }
-    $out .= $sep;
-    $out .= tpl_pagelink($page, null, true);
-    if($return) return $out;
-    print $out;
-    return $out ? true : false;
-}
-
-/**
- * Print info if the user is logged in
- * and show full name in that case
- *
- * Could be enhanced with a profile link in future?
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- *
- * @return bool
- */
-function tpl_userinfo() {
-    global $lang;
-    /** @var Input $INPUT */
-    global $INPUT;
-
-    if($INPUT->server->str('REMOTE_USER')) {
-        print $lang['loggedinas'].' '.userlink();
-        return true;
-    }
-    return false;
-}
-
-/**
- * Print some info about the current page
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- *
- * @param bool $ret return content instead of printing it
- * @return bool|string
- */
-function tpl_pageinfo($ret = false) {
-    global $conf;
-    global $lang;
-    global $INFO;
-    global $ID;
-
-    // return if we are not allowed to view the page
-    if(!auth_quickaclcheck($ID)) {
-        return false;
-    }
-
-    // prepare date and path
-    $fn = $INFO['filepath'];
-    if(!$conf['fullpath']) {
-        if($INFO['rev']) {
-            $fn = str_replace($conf['olddir'].'/', '', $fn);
-        } else {
-            $fn = str_replace($conf['datadir'].'/', '', $fn);
-        }
-    }
-    $fn   = utf8_decodeFN($fn);
-    $date = dformat($INFO['lastmod']);
-
-    // print it
-    if($INFO['exists']) {
-        $out = '';
-        $out .= '<bdi>'.$fn.'</bdi>';
-        $out .= ' · ';
-        $out .= $lang['lastmod'];
-        $out .= ' ';
-        $out .= $date;
-        if($INFO['editor']) {
-            $out .= ' '.$lang['by'].' ';
-            $out .= '<bdi>'.editorinfo($INFO['editor']).'</bdi>';
-        } else {
-            $out .= ' ('.$lang['external_edit'].')';
-        }
-        if($INFO['locked']) {
-            $out .= ' · ';
-            $out .= $lang['lockedby'];
-            $out .= ' ';
-            $out .= '<bdi>'.editorinfo($INFO['locked']).'</bdi>';
-        }
-        if($ret) {
-            return $out;
-        } else {
-            echo $out;
-            return true;
-        }
-    }
-    return false;
-}
-
-/**
- * Prints or returns the name of the given page (current one if none given).
- *
- * If useheading is enabled this will use the first headline else
- * the given ID is used.
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- *
- * @param string $id page id
- * @param bool   $ret return content instead of printing
- * @return bool|string
- */
-function tpl_pagetitle($id = null, $ret = false) {
-    global $ACT, $INPUT, $conf, $lang;
-
-    if(is_null($id)) {
-        global $ID;
-        $id = $ID;
-    }
-
-    $name = $id;
-    if(useHeading('navigation')) {
-        $first_heading = p_get_first_heading($id);
-        if($first_heading) $name = $first_heading;
-    }
-
-    // default page title is the page name, modify with the current action
-    switch ($ACT) {
-        // admin functions
-        case 'admin' :
-            $page_title = $lang['btn_admin'];
-            // try to get the plugin name
-            /** @var $plugin DokuWiki_Admin_Plugin */
-            if ($plugin = plugin_getRequestAdminPlugin()){
-                $plugin_title = $plugin->getMenuText($conf['lang']);
-                $page_title = $plugin_title ? $plugin_title : $plugin->getPluginName();
-            }
-            break;
-
-        // user functions
-        case 'login' :
-        case 'profile' :
-        case 'register' :
-        case 'resendpwd' :
-            $page_title = $lang['btn_'.$ACT];
-            break;
-
-         // wiki functions
-        case 'search' :
-        case 'index' :
-            $page_title = $lang['btn_'.$ACT];
-            break;
-
-        // page functions
-        case 'edit' :
-            $page_title = "✎ ".$name;
-            break;
-
-        case 'revisions' :
-            $page_title = $name . ' - ' . $lang['btn_revs'];
-            break;
-
-        case 'backlink' :
-        case 'recent' :
-        case 'subscribe' :
-            $page_title = $name . ' - ' . $lang['btn_'.$ACT];
-            break;
-
-        default : // SHOW and anything else not included
-            $page_title = $name;
-    }
-
-    if($ret) {
-        return hsc($page_title);
-    } else {
-        print hsc($page_title);
-        return true;
-    }
-}
-
-/**
- * Returns the requested EXIF/IPTC tag from the current image
- *
- * If $tags is an array all given tags are tried until a
- * value is found. If no value is found $alt is returned.
- *
- * Which texts are known is defined in the functions _exifTagNames
- * and _iptcTagNames() in inc/jpeg.php (You need to prepend IPTC
- * to the names of the latter one)
- *
- * Only allowed in: detail.php
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- *
- * @param array|string $tags tag or array of tags to try
- * @param string       $alt  alternative output if no data was found
- * @param null|string  $src  the image src, uses global $SRC if not given
- * @return string
- */
-function tpl_img_getTag($tags, $alt = '', $src = null) {
-    // Init Exif Reader
-    global $SRC;
-
-    if(is_null($src)) $src = $SRC;
-
-    static $meta = null;
-    if(is_null($meta)) $meta = new JpegMeta($src);
-    if($meta === false) return $alt;
-    $info = cleanText($meta->getField($tags));
-    if($info == false) return $alt;
-    return $info;
-}
-
-/**
- * Returns a description list of the metatags of the current image
- *
- * @return string html of description list
- */
-function tpl_img_meta() {
-    global $lang;
-
-    $tags = tpl_get_img_meta();
-
-    echo '<dl>';
-    foreach($tags as $tag) {
-        $label = $lang[$tag['langkey']];
-        if(!$label) $label = $tag['langkey'] . ':';
-
-        echo '<dt>'.$label.'</dt><dd>';
-        if ($tag['type'] == 'date') {
-            echo dformat($tag['value']);
-        } else {
-            echo hsc($tag['value']);
-        }
-        echo '</dd>';
-    }
-    echo '</dl>';
-}
-
-/**
- * Returns metadata as configured in mediameta config file, ready for creating html
- *
- * @return array with arrays containing the entries:
- *   - string langkey  key to lookup in the $lang var, if not found printed as is
- *   - string type     type of value
- *   - string value    tag value (unescaped)
- */
-function tpl_get_img_meta() {
-
-    $config_files = getConfigFiles('mediameta');
-    foreach ($config_files as $config_file) {
-        if(file_exists($config_file)) {
-            include($config_file);
-        }
-    }
-    /** @var array $fields the included array with metadata */
-
-    $tags = array();
-    foreach($fields as $tag){
-        $t = array();
-        if (!empty($tag[0])) {
-            $t = array($tag[0]);
-        }
-        if(is_array($tag[3])) {
-            $t = array_merge($t,$tag[3]);
-        }
-        $value = tpl_img_getTag($t);
-        if ($value) {
-            $tags[] = array('langkey' => $tag[1], 'type' => $tag[2], 'value' => $value);
-        }
-    }
-    return $tags;
-}
-
-/**
- * Prints the image with a link to the full sized version
- *
- * Only allowed in: detail.php
- *
- * @triggers TPL_IMG_DISPLAY
- * @param $maxwidth  int - maximal width of the image
- * @param $maxheight int - maximal height of the image
- * @param $link bool     - link to the orginal size?
- * @param $params array  - additional image attributes
- * @return bool Result of TPL_IMG_DISPLAY
- */
-function tpl_img($maxwidth = 0, $maxheight = 0, $link = true, $params = null) {
-    global $IMG;
-    /** @var Input $INPUT */
-    global $INPUT;
-    global $REV;
-    $w = (int) tpl_img_getTag('File.Width');
-    $h = (int) tpl_img_getTag('File.Height');
-
-    //resize to given max values
-    $ratio = 1;
-    if($w >= $h) {
-        if($maxwidth && $w >= $maxwidth) {
-            $ratio = $maxwidth / $w;
-        } elseif($maxheight && $h > $maxheight) {
-            $ratio = $maxheight / $h;
-        }
-    } else {
-        if($maxheight && $h >= $maxheight) {
-            $ratio = $maxheight / $h;
-        } elseif($maxwidth && $w > $maxwidth) {
-            $ratio = $maxwidth / $w;
-        }
-    }
-    if($ratio) {
-        $w = floor($ratio * $w);
-        $h = floor($ratio * $h);
-    }
-
-    //prepare URLs
-    $url = ml($IMG, array('cache'=> $INPUT->str('cache'),'rev'=>$REV), true, '&');
-    $src = ml($IMG, array('cache'=> $INPUT->str('cache'),'rev'=>$REV, 'w'=> $w, 'h'=> $h), true, '&');
-
-    //prepare attributes
-    $alt = tpl_img_getTag('Simple.Title');
-    if(is_null($params)) {
-        $p = array();
-    } else {
-        $p = $params;
-    }
-    if($w) $p['width'] = $w;
-    if($h) $p['height'] = $h;
-    $p['class'] = 'img_detail';
-    if($alt) {
-        $p['alt']   = $alt;
-        $p['title'] = $alt;
-    } else {
-        $p['alt'] = '';
-    }
-    $p['src'] = $src;
-
-    $data = array('url'=> ($link ? $url : null), 'params'=> $p);
-    return trigger_event('TPL_IMG_DISPLAY', $data, '_tpl_img_action', true);
-}
-
-/**
- * Default action for TPL_IMG_DISPLAY
- *
- * @param array $data
- * @return bool
- */
-function _tpl_img_action($data) {
-    global $lang;
-    $p = buildAttributes($data['params']);
-
-    if($data['url']) print '<a href="'.hsc($data['url']).'" title="'.$lang['mediaview'].'">';
-    print '<img '.$p.'/>';
-    if($data['url']) print '</a>';
-    return true;
-}
-
-/**
- * This function inserts a small gif which in reality is the indexer function.
- *
- * Should be called somewhere at the very end of the main.php
- * template
- *
- * @return bool
- */
-function tpl_indexerWebBug() {
-    global $ID;
-
-    $p           = array();
-    $p['src']    = DOKU_BASE.'lib/exe/indexer.php?id='.rawurlencode($ID).
-        '&'.time();
-    $p['width']  = 2; //no more 1x1 px image because we live in times of ad blockers...
-    $p['height'] = 1;
-    $p['alt']    = '';
-    $att         = buildAttributes($p);
-    print "<img $att />";
-    return true;
-}
-
-/**
- * tpl_getConf($id)
- *
- * use this function to access template configuration variables
- *
- * @param string $id      name of the value to access
- * @param mixed  $notset  what to return if the setting is not available
- * @return mixed
- */
-function tpl_getConf($id, $notset=false) {
-    global $conf;
-    static $tpl_configloaded = false;
-
-    $tpl = $conf['template'];
-
-    if(!$tpl_configloaded) {
-        $tconf = tpl_loadConfig();
-        if($tconf !== false) {
-            foreach($tconf as $key => $value) {
-                if(isset($conf['tpl'][$tpl][$key])) continue;
-                $conf['tpl'][$tpl][$key] = $value;
-            }
-            $tpl_configloaded = true;
-        }
-    }
-
-    if(isset($conf['tpl'][$tpl][$id])){
-        return $conf['tpl'][$tpl][$id];
-    }
-
-    return $notset;
-}
-
-/**
- * tpl_loadConfig()
- *
- * reads all template configuration variables
- * this function is automatically called by tpl_getConf()
- *
- * @return array
- */
-function tpl_loadConfig() {
-
-    $file = tpl_incdir().'/conf/default.php';
-    $conf = array();
-
-    if(!file_exists($file)) return false;
-
-    // load default config file
-    include($file);
-
-    return $conf;
-}
-
-// language methods
-/**
- * tpl_getLang($id)
- *
- * use this function to access template language variables
- *
- * @param string $id key of language string
- * @return string
- */
-function tpl_getLang($id) {
-    static $lang = array();
-
-    if(count($lang) === 0) {
-        global $conf, $config_cascade; // definitely don't invoke "global $lang"
-
-        $path = tpl_incdir() . 'lang/';
-
-        $lang = array();
-
-        // don't include once
-        @include($path . 'en/lang.php');
-        foreach($config_cascade['lang']['template'] as $config_file) {
-            if(file_exists($config_file . $conf['template'] . '/en/lang.php')) {
-                include($config_file . $conf['template'] . '/en/lang.php');
-            }
-        }
-
-        if($conf['lang'] != 'en') {
-            @include($path . $conf['lang'] . '/lang.php');
-            foreach($config_cascade['lang']['template'] as $config_file) {
-                if(file_exists($config_file . $conf['template'] . '/' . $conf['lang'] . '/lang.php')) {
-                    include($config_file . $conf['template'] . '/' . $conf['lang'] . '/lang.php');
-                }
-            }
-        }
-    }
-    return $lang[$id];
-}
-
-/**
- * Retrieve a language dependent file and pass to xhtml renderer for display
- * template equivalent of p_locale_xhtml()
- *
- * @param   string $id id of language dependent wiki page
- * @return  string     parsed contents of the wiki page in xhtml format
- */
-function tpl_locale_xhtml($id) {
-    return p_cached_output(tpl_localeFN($id));
-}
-
-/**
- * Prepends appropriate path for a language dependent filename
- *
- * @param string $id id of localized text
- * @return string wiki text
- */
-function tpl_localeFN($id) {
-    $path = tpl_incdir().'lang/';
-    global $conf;
-    $file = DOKU_CONF.'template_lang/'.$conf['template'].'/'.$conf['lang'].'/'.$id.'.txt';
-    if (!file_exists($file)){
-        $file = $path.$conf['lang'].'/'.$id.'.txt';
-        if(!file_exists($file)){
-            //fall back to english
-            $file = $path.'en/'.$id.'.txt';
-        }
-    }
-    return $file;
-}
-
-/**
- * prints the "main content" in the mediamanager popup
- *
- * Depending on the user's actions this may be a list of
- * files in a namespace, the meta editing dialog or
- * a message of referencing pages
- *
- * Only allowed in mediamanager.php
- *
- * @triggers MEDIAMANAGER_CONTENT_OUTPUT
- * @param bool $fromajax - set true when calling this function via ajax
- * @param string $sort
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- */
-function tpl_mediaContent($fromajax = false, $sort='natural') {
-    global $IMG;
-    global $AUTH;
-    global $INUSE;
-    global $NS;
-    global $JUMPTO;
-    /** @var Input $INPUT */
-    global $INPUT;
-
-    $do = $INPUT->extract('do')->str('do');
-    if(in_array($do, array('save', 'cancel'))) $do = '';
-
-    if(!$do) {
-        if($INPUT->bool('edit')) {
-            $do = 'metaform';
-        } elseif(is_array($INUSE)) {
-            $do = 'filesinuse';
-        } else {
-            $do = 'filelist';
-        }
-    }
-
-    // output the content pane, wrapped in an event.
-    if(!$fromajax) ptln('<div id="media__content">');
-    $data = array('do' => $do);
-    $evt  = new Doku_Event('MEDIAMANAGER_CONTENT_OUTPUT', $data);
-    if($evt->advise_before()) {
-        $do = $data['do'];
-        if($do == 'filesinuse') {
-            media_filesinuse($INUSE, $IMG);
-        } elseif($do == 'filelist') {
-            media_filelist($NS, $AUTH, $JUMPTO,false,$sort);
-        } elseif($do == 'searchlist') {
-            media_searchlist($INPUT->str('q'), $NS, $AUTH);
-        } else {
-            msg('Unknown action '.hsc($do), -1);
-        }
-    }
-    $evt->advise_after();
-    unset($evt);
-    if(!$fromajax) ptln('</div>');
-
-}
-
-/**
- * Prints the central column in full-screen media manager
- * Depending on the opened tab this may be a list of
- * files in a namespace, upload form or search form
- *
- * @author Kate Arzamastseva <pshns@ukr.net>
- */
-function tpl_mediaFileList() {
-    global $AUTH;
-    global $NS;
-    global $JUMPTO;
-    global $lang;
-    /** @var Input $INPUT */
-    global $INPUT;
-
-    $opened_tab = $INPUT->str('tab_files');
-    if(!$opened_tab || !in_array($opened_tab, array('files', 'upload', 'search'))) $opened_tab = 'files';
-    if($INPUT->str('mediado') == 'update') $opened_tab = 'upload';
-
-    echo '<h2 class="a11y">'.$lang['mediaselect'].'</h2>'.NL;
-
-    media_tabs_files($opened_tab);
-
-    echo '<div class="panelHeader">'.NL;
-    echo '<h3>';
-    $tabTitle = ($NS) ? $NS : '['.$lang['mediaroot'].']';
-    printf($lang['media_'.$opened_tab], '<strong>'.hsc($tabTitle).'</strong>');
-    echo '</h3>'.NL;
-    if($opened_tab === 'search' || $opened_tab === 'files') {
-        media_tab_files_options();
-    }
-    echo '</div>'.NL;
-
-    echo '<div class="panelContent">'.NL;
-    if($opened_tab == 'files') {
-        media_tab_files($NS, $AUTH, $JUMPTO);
-    } elseif($opened_tab == 'upload') {
-        media_tab_upload($NS, $AUTH, $JUMPTO);
-    } elseif($opened_tab == 'search') {
-        media_tab_search($NS, $AUTH);
-    }
-    echo '</div>'.NL;
-}
-
-/**
- * Prints the third column in full-screen media manager
- * Depending on the opened tab this may be details of the
- * selected file, the meta editing dialog or
- * 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;
-    /** @var Input $INPUT */
-    global $INPUT;
-
-    $removed = (!file_exists(mediaFN($image)) && file_exists(mediaMetaFN($image, '.changes')) && $conf['mediarevisions']);
-    if(!$image || (!file_exists(mediaFN($image)) && !$removed) || $DEL) return;
-    if($rev && !file_exists(mediaFN($image, $rev))) $rev = false;
-    $ns = getNS($image);
-    $do = $INPUT->str('mediado');
-
-    $opened_tab = $INPUT->str('tab_details');
-
-    $tab_array = array('view');
-    list(, $mime) = mimetype($image);
-    if($mime == 'image/jpeg') {
-        $tab_array[] = 'edit';
-    }
-    if($conf['mediarevisions']) {
-        $tab_array[] = 'history';
-    }
-
-    if(!$opened_tab || !in_array($opened_tab, $tab_array)) $opened_tab = 'view';
-    if($INPUT->bool('edit')) $opened_tab = 'edit';
-    if($do == 'restore') $opened_tab = 'view';
-
-    media_tabs_details($image, $opened_tab);
-
-    echo '<div class="panelHeader"><h3>';
-    list($ext) = mimetype($image, false);
-    $class    = preg_replace('/[^_\-a-z0-9]+/i', '_', $ext);
-    $class    = 'select mediafile mf_'.$class;
-    $attributes = $rev ? ['rev' => $rev] : [];
-    $tabTitle = '<strong><a href="'.ml($image, $attributes).'" class="'.$class.'" title="'.$lang['mediaview'].'">'.$image.'</a>'.'</strong>';
-    if($opened_tab === 'view' && $rev) {
-        printf($lang['media_viewold'], $tabTitle, dformat($rev));
-    } else {
-        printf($lang['media_'.$opened_tab], $tabTitle);
-    }
-
-    echo '</h3></div>'.NL;
-
-    echo '<div class="panelContent">'.NL;
-
-    if($opened_tab == 'view') {
-        media_tab_view($image, $ns, null, $rev);
-
-    } elseif($opened_tab == 'edit' && !$removed) {
-        media_tab_edit($image, $ns);
-
-    } elseif($opened_tab == 'history' && $conf['mediarevisions']) {
-        media_tab_history($image, $ns);
-    }
-
-    echo '</div>'.NL;
-}
-
-/**
- * prints the namespace tree in the mediamanager popup
- *
- * Only allowed in mediamanager.php
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- */
-function tpl_mediaTree() {
-    global $NS;
-    ptln('<div id="media__tree">');
-    media_nstree($NS);
-    ptln('</div>');
-}
-
-/**
- * Print a dropdown menu with all DokuWiki actions
- *
- * Note: this will not use any pretty URLs
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- *
- * @param string $empty empty option label
- * @param string $button submit button label
- * @deprecated 2017-09-01 see devel:menus
- */
-function tpl_actiondropdown($empty = '', $button = '&gt;') {
-    dbg_deprecated('see devel:menus');
-    $menu = new \dokuwiki\Menu\MobileMenu();
-    echo $menu->getDropdown($empty, $button);
-}
-
-/**
- * Print a informational line about the used license
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- * @param  string $img     print image? (|button|badge)
- * @param  bool   $imgonly skip the textual description?
- * @param  bool   $return  when true don't print, but return HTML
- * @param  bool   $wrap    wrap in div with class="license"?
- * @return string
- */
-function tpl_license($img = 'badge', $imgonly = false, $return = false, $wrap = true) {
-    global $license;
-    global $conf;
-    global $lang;
-    if(!$conf['license']) return '';
-    if(!is_array($license[$conf['license']])) return '';
-    $lic    = $license[$conf['license']];
-    $target = ($conf['target']['extern']) ? ' target="'.$conf['target']['extern'].'"' : '';
-
-    $out = '';
-    if($wrap) $out .= '<div class="license">';
-    if($img) {
-        $src = license_img($img);
-        if($src) {
-            $out .= '<a href="'.$lic['url'].'" rel="license"'.$target;
-            $out .= '><img src="'.DOKU_BASE.$src.'" alt="'.$lic['name'].'" /></a>';
-            if(!$imgonly) $out .= ' ';
-        }
-    }
-    if(!$imgonly) {
-        $out .= $lang['license'].' ';
-        $out .= '<bdi><a href="'.$lic['url'].'" rel="license" class="urlextern"'.$target;
-        $out .= '>'.$lic['name'].'</a></bdi>';
-    }
-    if($wrap) $out .= '</div>';
-
-    if($return) return $out;
-    echo $out;
-    return '';
-}
-
-/**
- * Includes the rendered HTML of a given page
- *
- * This function is useful to populate sidebars or similar features in a
- * template
- *
- * @param string $pageid The page name you want to include
- * @param bool $print Should the content be printed or returned only
- * @param bool $propagate Search higher namespaces, too?
- * @param bool $useacl Include the page only if the ACLs check out?
- * @return bool|null|string
- */
-function tpl_include_page($pageid, $print = true, $propagate = false, $useacl = true) {
-    if($propagate) {
-        $pageid = page_findnearest($pageid, $useacl);
-    } elseif($useacl && auth_quickaclcheck($pageid) == AUTH_NONE) {
-        return false;
-    }
-    if(!$pageid) return false;
-
-    global $TOC;
-    $oldtoc = $TOC;
-    $html   = p_wiki_xhtml($pageid, '', false);
-    $TOC    = $oldtoc;
-
-    if($print) echo $html;
-    return $html;
-}
-
-/**
- * Display the subscribe form
- *
- * @author Adrian Lang <lang@cosmocode.de>
- */
-function tpl_subscribe() {
-    global $INFO;
-    global $ID;
-    global $lang;
-    global $conf;
-    $stime_days = $conf['subscribe_time'] / 60 / 60 / 24;
-
-    echo p_locale_xhtml('subscr_form');
-    echo '<h2>'.$lang['subscr_m_current_header'].'</h2>';
-    echo '<div class="level2">';
-    if($INFO['subscribed'] === false) {
-        echo '<p>'.$lang['subscr_m_not_subscribed'].'</p>';
-    } else {
-        echo '<ul>';
-        foreach($INFO['subscribed'] as $sub) {
-            echo '<li><div class="li">';
-            if($sub['target'] !== $ID) {
-                echo '<code class="ns">'.hsc(prettyprint_id($sub['target'])).'</code>';
-            } else {
-                echo '<code class="page">'.hsc(prettyprint_id($sub['target'])).'</code>';
-            }
-            $sstl = sprintf($lang['subscr_style_'.$sub['style']], $stime_days);
-            if(!$sstl) $sstl = hsc($sub['style']);
-            echo ' ('.$sstl.') ';
-
-            echo '<a href="'.wl(
-                $ID,
-                array(
-                     'do'        => 'subscribe',
-                     'sub_target'=> $sub['target'],
-                     'sub_style' => $sub['style'],
-                     'sub_action'=> 'unsubscribe',
-                     'sectok'    => getSecurityToken()
-                )
-            ).
-                '" class="unsubscribe">'.$lang['subscr_m_unsubscribe'].
-                '</a></div></li>';
-        }
-        echo '</ul>';
-    }
-    echo '</div>';
-
-    // Add new subscription form
-    echo '<h2>'.$lang['subscr_m_new_header'].'</h2>';
-    echo '<div class="level2">';
-    $ns      = getNS($ID).':';
-    $targets = array(
-        $ID => '<code class="page">'.prettyprint_id($ID).'</code>',
-        $ns => '<code class="ns">'.prettyprint_id($ns).'</code>',
-    );
-    $styles  = array(
-        'every'  => $lang['subscr_style_every'],
-        'digest' => sprintf($lang['subscr_style_digest'], $stime_days),
-        'list'   => sprintf($lang['subscr_style_list'], $stime_days),
-    );
-
-    $form = new Doku_Form(array('id' => 'subscribe__form'));
-    $form->startFieldset($lang['subscr_m_subscribe']);
-    $form->addRadioSet('sub_target', $targets);
-    $form->startFieldset($lang['subscr_m_receive']);
-    $form->addRadioSet('sub_style', $styles);
-    $form->addHidden('sub_action', 'subscribe');
-    $form->addHidden('do', 'subscribe');
-    $form->addHidden('id', $ID);
-    $form->endFieldset();
-    $form->addElement(form_makeButton('submit', 'subscribe', $lang['subscr_m_subscribe']));
-    html_form('SUBSCRIBE', $form);
-    echo '</div>';
-}
-
-/**
- * Tries to send already created content right to the browser
- *
- * Wraps around ob_flush() and flush()
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- */
-function tpl_flush() {
-    ob_flush();
-    flush();
-}
-
-/**
- * Tries to find a ressource file in the given locations.
- *
- * If a given location starts with a colon it is assumed to be a media
- * file, otherwise it is assumed to be relative to the current template
- *
- * @param  string[] $search       locations to look at
- * @param  bool     $abs           if to use absolute URL
- * @param  array   &$imginfo   filled with getimagesize()
- * @return string
- *
- * @author Andreas  Gohr <andi@splitbrain.org>
- */
-function tpl_getMediaFile($search, $abs = false, &$imginfo = null) {
-    $img     = '';
-    $file    = '';
-    $ismedia = false;
-    // loop through candidates until a match was found:
-    foreach($search as $img) {
-        if(substr($img, 0, 1) == ':') {
-            $file    = mediaFN($img);
-            $ismedia = true;
-        } else {
-            $file    = tpl_incdir().$img;
-            $ismedia = false;
-        }
-
-        if(file_exists($file)) break;
-    }
-
-    // fetch image data if requested
-    if(!is_null($imginfo)) {
-        $imginfo = getimagesize($file);
-    }
-
-    // build URL
-    if($ismedia) {
-        $url = ml($img, '', true, '', $abs);
-    } else {
-        $url = tpl_basedir().$img;
-        if($abs) $url = DOKU_URL.substr($url, strlen(DOKU_REL));
-    }
-
-    return $url;
-}
-
-/**
- * PHP include a file
- *
- * either from the conf directory if it exists, otherwise use
- * file in the template's root directory.
- *
- * The function honours config cascade settings and looks for the given
- * file next to the ´main´ config files, in the order protected, local,
- * default.
- *
- * Note: no escaping or sanity checking is done here. Never pass user input
- * to this function!
- *
- * @author Anika Henke <anika@selfthinker.org>
- * @author Andreas Gohr <andi@splitbrain.org>
- *
- * @param string $file
- */
-function tpl_includeFile($file) {
-    global $config_cascade;
-    foreach(array('protected', 'local', 'default') as $config_group) {
-        if(empty($config_cascade['main'][$config_group])) continue;
-        foreach($config_cascade['main'][$config_group] as $conf_file) {
-            $dir = dirname($conf_file);
-            if(file_exists("$dir/$file")) {
-                include("$dir/$file");
-                return;
-            }
-        }
-    }
-
-    // still here? try the template dir
-    $file = tpl_incdir().$file;
-    if(file_exists($file)) {
-        include($file);
-    }
-}
-
-/**
- * Returns <link> tag for various icon types (favicon|mobile|generic)
- *
- * @author Anika Henke <anika@selfthinker.org>
- *
- * @param  array $types - list of icon types to display (favicon|mobile|generic)
- * @return string
- */
-function tpl_favicon($types = array('favicon')) {
-
-    $return = '';
-
-    foreach($types as $type) {
-        switch($type) {
-            case 'favicon':
-                $look = array(':wiki:favicon.ico', ':favicon.ico', 'images/favicon.ico');
-                $return .= '<link rel="shortcut icon" href="'.tpl_getMediaFile($look).'" />'.NL;
-                break;
-            case 'mobile':
-                $look = array(':wiki:apple-touch-icon.png', ':apple-touch-icon.png', 'images/apple-touch-icon.png');
-                $return .= '<link rel="apple-touch-icon" href="'.tpl_getMediaFile($look).'" />'.NL;
-                break;
-            case 'generic':
-                // ideal world solution, which doesn't work in any browser yet
-                $look = array(':wiki:favicon.svg', ':favicon.svg', 'images/favicon.svg');
-                $return .= '<link rel="icon" href="'.tpl_getMediaFile($look).'" type="image/svg+xml" />'.NL;
-                break;
-        }
-    }
-
-    return $return;
-}
-
-/**
- * Prints full-screen media manager
- *
- * @author Kate Arzamastseva <pshns@ukr.net>
- */
-function tpl_media() {
-    global $NS, $IMG, $JUMPTO, $REV, $lang, $fullscreen, $INPUT;
-    $fullscreen = true;
-    require_once DOKU_INC.'lib/exe/mediamanager.php';
-
-    $rev   = '';
-    $image = cleanID($INPUT->str('image'));
-    if(isset($IMG)) $image = $IMG;
-    if(isset($JUMPTO)) $image = $JUMPTO;
-    if(isset($REV) && !$JUMPTO) $rev = $REV;
-
-    echo '<div id="mediamanager__page">'.NL;
-    echo '<h1>'.$lang['btn_media'].'</h1>'.NL;
-    html_msgarea();
-
-    echo '<div class="panel namespaces">'.NL;
-    echo '<h2>'.$lang['namespaces'].'</h2>'.NL;
-    echo '<div class="panelHeader">';
-    echo $lang['media_namespaces'];
-    echo '</div>'.NL;
-
-    echo '<div class="panelContent" id="media__tree">'.NL;
-    media_nstree($NS);
-    echo '</div>'.NL;
-    echo '</div>'.NL;
-
-    echo '<div class="panel filelist">'.NL;
-    tpl_mediaFileList();
-    echo '</div>'.NL;
-
-    echo '<div class="panel file">'.NL;
-    echo '<h2 class="a11y">'.$lang['media_file'].'</h2>'.NL;
-    tpl_mediaFileDetails($image, $rev);
-    echo '</div>'.NL;
-
-    echo '</div>'.NL;
-}
-
-/**
- * Return useful layout classes
- *
- * @author Anika Henke <anika@selfthinker.org>
- *
- * @return string
- */
-function tpl_classes() {
-    global $ACT, $conf, $ID, $INFO;
-    /** @var Input $INPUT */
-    global $INPUT;
-
-    $classes = array(
-        'dokuwiki',
-        'mode_'.$ACT,
-        'tpl_'.$conf['template'],
-        $INPUT->server->bool('REMOTE_USER') ? 'loggedIn' : '',
-        $INFO['exists'] ? '' : 'notFound',
-        ($ID == $conf['start']) ? 'home' : '',
-    );
-    return join(' ', $classes);
-}
-
-/**
- * Create event for tools menues
- *
- * @author Anika Henke <anika@selfthinker.org>
- * @param string $toolsname name of menu
- * @param array $items
- * @param string $view e.g. 'main', 'detail', ...
- * @deprecated 2017-09-01 see devel:menus
- */
-function tpl_toolsevent($toolsname, $items, $view = 'main') {
-    dbg_deprecated('see devel:menus');
-    $data = array(
-        'view' => $view,
-        'items' => $items
-    );
-
-    $hook = 'TEMPLATE_' . strtoupper($toolsname) . '_DISPLAY';
-    $evt = new Doku_Event($hook, $data);
-    if($evt->advise_before()) {
-        foreach($evt->data['items'] as $k => $html) echo $html;
-    }
-    $evt->advise_after();
-}
-
-//Setup VIM: ex: et ts=4 :
-
diff --git a/wiki/inc/toolbar.php b/wiki/inc/toolbar.php
deleted file mode 100644
index 7cc29e8..0000000
--- a/wiki/inc/toolbar.php
+++ /dev/null
@@ -1,257 +0,0 @@
-<?php
-/**
- * Editing toolbar functions
- *
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * @author     Andreas Gohr <andi@splitbrain.org>
- */
-
-if(!defined('DOKU_INC')) die('meh.');
-
-/**
- * Prepares and prints an JavaScript array with all toolbar buttons
- *
- * @emits  TOOLBAR_DEFINE
- * @param  string $varname Name of the JS variable to fill
- * @author Andreas Gohr <andi@splitbrain.org>
- */
-function toolbar_JSdefines($varname){
-    global $lang;
-
-    $menu = array();
-
-    $evt = new Doku_Event('TOOLBAR_DEFINE', $menu);
-    if ($evt->advise_before()){
-
-        // build button array
-        $menu = array_merge($menu, array(
-           array(
-                'type'   => 'format',
-                'title'  => $lang['qb_bold'],
-                'icon'   => 'bold.png',
-                'key'    => 'b',
-                'open'   => '**',
-                'close'  => '**',
-                'block'  => false
-                ),
-           array(
-                'type'   => 'format',
-                'title'  => $lang['qb_italic'],
-                'icon'   => 'italic.png',
-                'key'    => 'i',
-                'open'   => '//',
-                'close'  => '//',
-                'block'  => false
-                ),
-           array(
-                'type'   => 'format',
-                'title'  => $lang['qb_underl'],
-                'icon'   => 'underline.png',
-                'key'    => 'u',
-                'open'   => '__',
-                'close'  => '__',
-                'block'  => false
-                ),
-           array(
-                'type'   => 'format',
-                'title'  => $lang['qb_code'],
-                'icon'   => 'mono.png',
-                'key'    => 'm',
-                'open'   => "''",
-                'close'  => "''",
-                'block'  => false
-                ),
-           array(
-                'type'   => 'format',
-                'title'  => $lang['qb_strike'],
-                'icon'   => 'strike.png',
-                'key'    => 'd',
-                'open'  => '<del>',
-                'close'   => '</del>',
-                'block'  => false
-                ),
-
-           array(
-                'type'   => 'autohead',
-                'title'  => $lang['qb_hequal'],
-                'icon'   => 'hequal.png',
-                'key'    => '8',
-                'text'   => $lang['qb_h'],
-                'mod'    => 0,
-                'block'  => true
-               ),
-           array(
-                'type'   => 'autohead',
-                'title'  => $lang['qb_hminus'],
-                'icon'   => 'hminus.png',
-                'key'    => '9',
-                'text'   => $lang['qb_h'],
-                'mod'    => 1,
-                'block'  => true
-               ),
-           array(
-                'type'   => 'autohead',
-                'title'  => $lang['qb_hplus'],
-                'icon'   => 'hplus.png',
-                'key'    => '0',
-                'text'   => $lang['qb_h'],
-                'mod'    => -1,
-                'block'  => true
-               ),
-
-           array(
-                'type'   => 'picker',
-                'title'  => $lang['qb_hs'],
-                'icon'   => 'h.png',
-                'class'  => 'pk_hl',
-                'list'   => array(
-                               array(
-                                    'type'   => 'format',
-                                    'title'  => $lang['qb_h1'],
-                                    'icon'   => 'h1.png',
-                                    'key'    => '1',
-                                    'open'   => '====== ',
-                                    'close'  => ' ======\n',
-                                    ),
-                               array(
-                                    'type'   => 'format',
-                                    'title'  => $lang['qb_h2'],
-                                    'icon'   => 'h2.png',
-                                    'key'    => '2',
-                                    'open'   => '===== ',
-                                    'close'  => ' =====\n',
-                                    ),
-                               array(
-                                    'type'   => 'format',
-                                    'title'  => $lang['qb_h3'],
-                                    'icon'   => 'h3.png',
-                                    'key'    => '3',
-                                    'open'   => '==== ',
-                                    'close'  => ' ====\n',
-                                    ),
-                               array(
-                                    'type'   => 'format',
-                                    'title'  => $lang['qb_h4'],
-                                    'icon'   => 'h4.png',
-                                    'key'    => '4',
-                                    'open'   => '=== ',
-                                    'close'  => ' ===\n',
-                                    ),
-                               array(
-                                    'type'   => 'format',
-                                    'title'  => $lang['qb_h5'],
-                                    'icon'   => 'h5.png',
-                                    'key'    => '5',
-                                    'open'   => '== ',
-                                    'close'  => ' ==\n',
-                                    ),
-                            ),
-                'block'  => true
-                ),
-
-           array(
-                'type'   => 'linkwiz',
-                'title'  => $lang['qb_link'],
-                'icon'   => 'link.png',
-                'key'    => 'l',
-                'open'   => '[[',
-                'close'  => ']]',
-                'block'  => false
-                ),
-           array(
-                'type'   => 'format',
-                'title'  => $lang['qb_extlink'],
-                'icon'   => 'linkextern.png',
-                'open'   => '[[',
-                'close'  => ']]',
-                'sample' => 'http://example.com|'.$lang['qb_extlink'],
-                'block'  => false
-                ),
-           array(
-                'type'   => 'formatln',
-                'title'  => $lang['qb_ol'],
-                'icon'   => 'ol.png',
-                'open'   => '  - ',
-                'close'  => '',
-                'key'    => '-',
-                'block'  => true
-                ),
-           array(
-                'type'   => 'formatln',
-                'title'  => $lang['qb_ul'],
-                'icon'   => 'ul.png',
-                'open'   => '  * ',
-                'close'  => '',
-                'key'    => '.',
-                'block'  => true
-                ),
-           array(
-                'type'   => 'insert',
-                'title'  => $lang['qb_hr'],
-                'icon'   => 'hr.png',
-                'insert' => '\n----\n',
-                'block'  => true
-                ),
-           array(
-                'type'   => 'mediapopup',
-                'title'  => $lang['qb_media'],
-                'icon'   => 'image.png',
-                'url'    => 'lib/exe/mediamanager.php?ns=',
-                'name'   => 'mediaselect',
-                'options'=> 'width=750,height=500,left=20,top=20,scrollbars=yes,resizable=yes',
-                'block'  => false
-                ),
-          array(
-                'type'   => 'picker',
-                'title'  => $lang['qb_smileys'],
-                'icon'   => 'smiley.png',
-                'list'   => getSmileys(),
-                'icobase'=> 'smileys',
-                'block'  => false
-               ),
-          array(
-                'type'   => 'picker',
-                'title'  => $lang['qb_chars'],
-                'icon'   => 'chars.png',
-                'list'   => explode(' ','À à à á  â à ã Ä ä Ç ÇŽ Ä‚ ă Ã… Ã¥ Ä€ Ä Ä„ Ä… Æ æ Ć ć Ç ç ÄŒ Ä Äˆ ĉ ÄŠ Ä‹ à đ ð ÄŽ Ä Ãˆ è É é Ê ê Ë ë Äš Ä› Ä’ Ä“ Ä– Ä— Ę Ä™ Ä¢ Ä£ Äœ Ä Äž ÄŸ Ä  Ä¡ Ĥ Ä¥ ÃŒ ì à í ÃŽ î à ï Ç Ç Äª Ä« İ ı Ä® į Ä´ ĵ Ķ Ä· Ĺ ĺ Ä» ļ Ľ ľ Å Å‚ Ä¿ Å€ Ń Å„ Ñ ñ Å… ņ Ň ň Ã’ ò Ó ó Ô ô Õ õ Ö ö Ç‘ Ç’ ÅŒ Å Å Å‘ Å’ Å“ Ø ø Å” Å• Å– Å— Ř Å™ Åš Å› Åž ÅŸ Å  Å¡ Åœ ŠŢ Å£ Ť Å¥ Ù ù Ú ú Û û Ü ü Ç“ Ç” Ŭ Å­ Ū Å« Å® ů Ç– ǘ Çš Çœ Ų ų Ű ű Å´ ŵ à ý Ÿ ÿ Ŷ Å· Ź ź Ž ž Å» ż Þ þ ß Ħ ħ ¿ ¡ ¢ £ ¤ Â¥ € ¦ § ª ¬ ¯ ° ± ÷ ‰ ¼ ½ ¾ ¹ ² ³ µ ¶ † ‡ · • º ∀ ∂ ∃ Æ É™ ∅ ∇ ∈ ∉ ∋ ∠∑ ‾ − ∗ × ℠√ ∠∞ ∠ ∧ ∨ ∩ ∪ ∫ ∴ ∼ ≅ ≈ ≠ ≡ ≤ ≥ ⊂ ⊃ ⊄ ⊆ ⊇ ⊕ ⊗ ⊥ â‹… â—Š ℘ â„‘ ℜ ℵ â™  ♣ ♥ ♦ α β Γ γ Δ δ ε ζ η Θ θ ι κ Λ λ μ Ξ ξ Π Ï€ Ï Î£ σ Τ Ï„ Ï… Φ φ χ Ψ ψ Ω ω ★ ☆ ☎ ☚ ☛ ☜ ☠☞ ☟ ☹ ☺ ✔ ✘ „ “ †‚ ‘ ’ « » ‹ › — – … ↠↑ → ↓ ↔ ⇠⇑ ⇒ ⇓ ⇔ © â„¢ ® ′ ″ [ ] { } ~ ( ) % § $ # | @'),
-                'block'  => false
-               ),
-          array(
-                'type'   => 'signature',
-                'title'  => $lang['qb_sig'],
-                'icon'   => 'sig.png',
-                'key'    => 'y',
-                'block'  => false
-               ),
-        ));
-    } // end event TOOLBAR_DEFINE default action
-    $evt->advise_after();
-    unset($evt);
-
-    // use JSON to build the JavaScript array
-    $json = new JSON();
-    print "var $varname = ".$json->encode($menu).";\n";
-}
-
-/**
- * prepares the signature string as configured in the config
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- */
-function toolbar_signature(){
-    global $conf;
-    global $INFO;
-    /** @var Input $INPUT */
-    global $INPUT;
-
-    $sig = $conf['signature'];
-    $sig = dformat(null,$sig);
-    $sig = str_replace('@USER@',$INPUT->server->str('REMOTE_USER'),$sig);
-    $sig = str_replace('@NAME@',$INFO['userinfo']['name'],$sig);
-    $sig = str_replace('@MAIL@',$INFO['userinfo']['mail'],$sig);
-    $sig = str_replace('@DATE@',dformat(),$sig);
-    $sig = str_replace('\\\\n','\\n',addslashes($sig));
-    return $sig;
-}
-
-//Setup VIM: ex: et ts=4 :
diff --git a/wiki/inc/utf8.php b/wiki/inc/utf8.php
deleted file mode 100644
index 4de2874..0000000
--- a/wiki/inc/utf8.php
+++ /dev/null
@@ -1,1771 +0,0 @@
-<?php
-/**
- * UTF8 helper functions
- *
- * @license    LGPL 2.1 (http://www.gnu.org/copyleft/lesser.html)
- * @author     Andreas Gohr <andi@splitbrain.org>
- */
-
-/**
- * check for mb_string support
- */
-if(!defined('UTF8_MBSTRING')){
-    if(function_exists('mb_substr') && !defined('UTF8_NOMBSTRING')){
-        define('UTF8_MBSTRING',1);
-    }else{
-        define('UTF8_MBSTRING',0);
-    }
-}
-
-/**
- * Check if PREG was compiled with UTF-8 support
- *
- * Without this many of the functions below will not work, so this is a minimal requirement
- */
-if(!defined('UTF8_PREGSUPPORT')){
-    define('UTF8_PREGSUPPORT', (bool) @preg_match('/^.$/u', 'ñ'));
-}
-
-/**
- * Check if PREG was compiled with Unicode Property support
- *
- * This is not required for the functions below, but might be needed in a UTF-8 aware application
- */
-if(!defined('UTF8_PROPERTYSUPPORT')){
-    define('UTF8_PROPERTYSUPPORT', (bool) @preg_match('/^\pL$/u', 'ñ'));
-}
-
-
-if(UTF8_MBSTRING){ mb_internal_encoding('UTF-8'); }
-
-if(!function_exists('utf8_isASCII')){
-    /**
-     * Checks if a string contains 7bit ASCII only
-     *
-     * @author Andreas Haerter <andreas.haerter@dev.mail-node.com>
-     *
-     * @param string $str
-     * @return bool
-     */
-    function utf8_isASCII($str){
-        return (preg_match('/(?:[^\x00-\x7F])/', $str) !== 1);
-    }
-}
-
-if(!function_exists('utf8_strip')){
-    /**
-     * Strips all highbyte chars
-     *
-     * Returns a pure ASCII7 string
-     *
-     * @author Andreas Gohr <andi@splitbrain.org>
-     *
-     * @param string $str
-     * @return string
-     */
-    function utf8_strip($str){
-        $ascii = '';
-        $len = strlen($str);
-        for($i=0; $i<$len; $i++){
-            if(ord($str{$i}) <128){
-                $ascii .= $str{$i};
-            }
-        }
-        return $ascii;
-    }
-}
-
-if(!function_exists('utf8_check')){
-    /**
-     * Tries to detect if a string is in Unicode encoding
-     *
-     * @author <bmorel@ssi.fr>
-     * @link   http://php.net/manual/en/function.utf8-encode.php
-     *
-     * @param string $Str
-     * @return bool
-     */
-    function utf8_check($Str) {
-        $len = strlen($Str);
-        for ($i=0; $i<$len; $i++) {
-            $b = ord($Str[$i]);
-            if ($b < 0x80) continue; # 0bbbbbbb
-            elseif (($b & 0xE0) == 0xC0) $n=1; # 110bbbbb
-            elseif (($b & 0xF0) == 0xE0) $n=2; # 1110bbbb
-            elseif (($b & 0xF8) == 0xF0) $n=3; # 11110bbb
-            elseif (($b & 0xFC) == 0xF8) $n=4; # 111110bb
-            elseif (($b & 0xFE) == 0xFC) $n=5; # 1111110b
-            else return false; # Does not match any model
-
-            for ($j=0; $j<$n; $j++) { # n bytes matching 10bbbbbb follow ?
-                if ((++$i == $len) || ((ord($Str[$i]) & 0xC0) != 0x80))
-                    return false;
-            }
-        }
-        return true;
-    }
-}
-
-if(!function_exists('utf8_basename')){
-    /**
-     * A locale independent basename() implementation
-     *
-     * works around a bug in PHP's basename() implementation
-     *
-     * @see basename()
-     * @link   https://bugs.php.net/bug.php?id=37738
-     *
-     * @param string $path     A path
-     * @param string $suffix   If the name component ends in suffix this will also be cut off
-     * @return string
-     */
-    function utf8_basename($path, $suffix=''){
-        $path = trim($path,'\\/');
-        $rpos = max(strrpos($path, '/'), strrpos($path, '\\'));
-        if($rpos) $path = substr($path, $rpos+1);
-
-        $suflen = strlen($suffix);
-        if($suflen && (substr($path, -$suflen) == $suffix)){
-            $path = substr($path, 0, -$suflen);
-        }
-
-        return $path;
-    }
-}
-
-if(!function_exists('utf8_strlen')){
-    /**
-     * Unicode aware replacement for strlen()
-     *
-     * utf8_decode() converts characters that are not in ISO-8859-1
-     * to '?', which, for the purpose of counting, is alright - It's
-     * even faster than mb_strlen.
-     *
-     * @author <chernyshevsky at hotmail dot com>
-     * @see    strlen()
-     * @see    utf8_decode()
-     *
-     * @param string $string
-     * @return int
-     */
-    function utf8_strlen($string) {
-        if (function_exists('utf8_decode')) {
-            return strlen(utf8_decode($string));
-        } elseif (UTF8_MBSTRING) {
-            return mb_strlen($string, 'UTF-8');
-        } elseif (function_exists('iconv_strlen')) {
-            return iconv_strlen($string, 'UTF-8');
-        } else {
-            return strlen($string);
-        }
-    }
-}
-
-if(!function_exists('utf8_substr')){
-    /**
-     * UTF-8 aware alternative to substr
-     *
-     * Return part of a string given character offset (and optionally length)
-     *
-     * @author Harry Fuecks <hfuecks@gmail.com>
-     * @author Chris Smith <chris@jalakai.co.uk>
-     *
-     * @param string $str
-     * @param int $offset number of UTF-8 characters offset (from left)
-     * @param int $length (optional) length in UTF-8 characters from offset
-     * @return string
-     */
-    function utf8_substr($str, $offset, $length = null) {
-        if(UTF8_MBSTRING){
-            if( $length === null ){
-                return mb_substr($str, $offset);
-            }else{
-                return mb_substr($str, $offset, $length);
-            }
-        }
-
-        /*
-         * Notes:
-         *
-         * no mb string support, so we'll use pcre regex's with 'u' flag
-         * pcre only supports repetitions of less than 65536, in order to accept up to MAXINT values for
-         * offset and length, we'll repeat a group of 65535 characters when needed (ok, up to MAXINT-65536)
-         *
-         * substr documentation states false can be returned in some cases (e.g. offset > string length)
-         * mb_substr never returns false, it will return an empty string instead.
-         *
-         * calculating the number of characters in the string is a relatively expensive operation, so
-         * we only carry it out when necessary. It isn't necessary for +ve offsets and no specified length
-         */
-
-        // cast parameters to appropriate types to avoid multiple notices/warnings
-        $str = (string)$str;                          // generates E_NOTICE for PHP4 objects, but not PHP5 objects
-        $offset = (int)$offset;
-        if (!is_null($length)) $length = (int)$length;
-
-        // handle trivial cases
-        if ($length === 0) return '';
-        if ($offset < 0 && $length < 0 && $length < $offset) return '';
-
-        $offset_pattern = '';
-        $length_pattern = '';
-
-        // normalise -ve offsets (we could use a tail anchored pattern, but they are horribly slow!)
-        if ($offset < 0) {
-            $strlen = utf8_strlen($str);        // see notes
-            $offset = $strlen + $offset;
-            if ($offset < 0) $offset = 0;
-        }
-
-        // establish a pattern for offset, a non-captured group equal in length to offset
-        if ($offset > 0) {
-            $Ox = (int)($offset/65535);
-            $Oy = $offset%65535;
-
-            if ($Ox) $offset_pattern = '(?:.{65535}){'.$Ox.'}';
-            $offset_pattern = '^(?:'.$offset_pattern.'.{'.$Oy.'})';
-        } else {
-            $offset_pattern = '^';                      // offset == 0; just anchor the pattern
-        }
-
-        // establish a pattern for length
-        if (is_null($length)) {
-            $length_pattern = '(.*)$';                  // the rest of the string
-        } else {
-
-            if (!isset($strlen)) $strlen = utf8_strlen($str);    // see notes
-            if ($offset > $strlen) return '';           // another trivial case
-
-            if ($length > 0) {
-
-                $length = min($strlen-$offset, $length);  // reduce any length that would go passed the end of the string
-
-                $Lx = (int)($length/65535);
-                $Ly = $length%65535;
-
-                // +ve length requires ... a captured group of length characters
-                if ($Lx) $length_pattern = '(?:.{65535}){'.$Lx.'}';
-                    $length_pattern = '('.$length_pattern.'.{'.$Ly.'})';
-
-            } else if ($length < 0) {
-
-                if ($length < ($offset - $strlen)) return '';
-
-                $Lx = (int)((-$length)/65535);
-                $Ly = (-$length)%65535;
-
-                // -ve length requires ... capture everything except a group of -length characters
-                //                         anchored at the tail-end of the string
-                if ($Lx) $length_pattern = '(?:.{65535}){'.$Lx.'}';
-                $length_pattern = '(.*)(?:'.$length_pattern.'.{'.$Ly.'})$';
-            }
-        }
-
-        if (!preg_match('#'.$offset_pattern.$length_pattern.'#us',$str,$match)) return '';
-        return $match[1];
-    }
-}
-
-if(!function_exists('utf8_substr_replace')){
-    /**
-     * Unicode aware replacement for substr_replace()
-     *
-     * @author Andreas Gohr <andi@splitbrain.org>
-     * @see    substr_replace()
-     *
-     * @param string $string      input string
-     * @param string $replacement the replacement
-     * @param int    $start       the replacing will begin at the start'th offset into string.
-     * @param int    $length      If given and is positive, it represents the length of the portion of string which is
-     *                            to be replaced. If length is zero then this function will have the effect of inserting
-     *                            replacement into string at the given start offset.
-     * @return string
-     */
-    function utf8_substr_replace($string, $replacement, $start , $length=0 ){
-        $ret = '';
-        if($start>0) $ret .= utf8_substr($string, 0, $start);
-        $ret .= $replacement;
-        $ret .= utf8_substr($string, $start+$length);
-        return $ret;
-    }
-}
-
-if(!function_exists('utf8_ltrim')){
-    /**
-     * Unicode aware replacement for ltrim()
-     *
-     * @author Andreas Gohr <andi@splitbrain.org>
-     * @see    ltrim()
-     *
-     * @param  string $str
-     * @param  string $charlist
-     * @return string
-     */
-    function utf8_ltrim($str,$charlist=''){
-        if($charlist == '') return ltrim($str);
-
-        //quote charlist for use in a characterclass
-        $charlist = preg_replace('!([\\\\\\-\\]\\[/])!','\\\${1}',$charlist);
-
-        return preg_replace('/^['.$charlist.']+/u','',$str);
-    }
-}
-
-if(!function_exists('utf8_rtrim')){
-    /**
-     * Unicode aware replacement for rtrim()
-     *
-     * @author Andreas Gohr <andi@splitbrain.org>
-     * @see    rtrim()
-     *
-     * @param  string $str
-     * @param  string $charlist
-     * @return string
-     */
-    function  utf8_rtrim($str,$charlist=''){
-        if($charlist == '') return rtrim($str);
-
-        //quote charlist for use in a characterclass
-        $charlist = preg_replace('!([\\\\\\-\\]\\[/])!','\\\${1}',$charlist);
-
-        return preg_replace('/['.$charlist.']+$/u','',$str);
-    }
-}
-
-if(!function_exists('utf8_trim')){
-    /**
-     * Unicode aware replacement for trim()
-     *
-     * @author Andreas Gohr <andi@splitbrain.org>
-     * @see    trim()
-     *
-     * @param  string $str
-     * @param  string $charlist
-     * @return string
-     */
-    function  utf8_trim($str,$charlist='') {
-        if($charlist == '') return trim($str);
-
-        return utf8_ltrim(utf8_rtrim($str,$charlist),$charlist);
-    }
-}
-
-if(!function_exists('utf8_strtolower')){
-    /**
-     * This is a unicode aware replacement for strtolower()
-     *
-     * Uses mb_string extension if available
-     *
-     * @author Leo Feyer <leo@typolight.org>
-     * @see    strtolower()
-     * @see    utf8_strtoupper()
-     *
-     * @param string $string
-     * @return string
-     */
-    function utf8_strtolower($string){
-        if(UTF8_MBSTRING) {
-            if (class_exists("Normalizer", $autoload = false))
-                return normalizer::normalize(mb_strtolower($string,'utf-8'));
-            else
-                return (mb_strtolower($string,'utf-8'));
-        }
-        global $UTF8_UPPER_TO_LOWER;
-        return strtr($string,$UTF8_UPPER_TO_LOWER);
-    }
-}
-
-if(!function_exists('utf8_strtoupper')){
-    /**
-     * This is a unicode aware replacement for strtoupper()
-     *
-     * Uses mb_string extension if available
-     *
-     * @author Leo Feyer <leo@typolight.org>
-     * @see    strtoupper()
-     * @see    utf8_strtoupper()
-     *
-     * @param string $string
-     * @return string
-     */
-    function utf8_strtoupper($string){
-        if(UTF8_MBSTRING) return mb_strtoupper($string,'utf-8');
-
-        global $UTF8_LOWER_TO_UPPER;
-        return strtr($string,$UTF8_LOWER_TO_UPPER);
-    }
-}
-
-if(!function_exists('utf8_ucfirst')){
-    /**
-     * UTF-8 aware alternative to ucfirst
-     * Make a string's first character uppercase
-     *
-     * @author Harry Fuecks
-     *
-     * @param string $str
-     * @return string with first character as upper case (if applicable)
-     */
-    function utf8_ucfirst($str){
-        switch ( utf8_strlen($str) ) {
-            case 0:
-                return '';
-            case 1:
-                return utf8_strtoupper($str);
-            default:
-                preg_match('/^(.{1})(.*)$/us', $str, $matches);
-                return utf8_strtoupper($matches[1]).$matches[2];
-        }
-    }
-}
-
-if(!function_exists('utf8_ucwords')){
-    /**
-     * UTF-8 aware alternative to ucwords
-     * Uppercase the first character of each word in a string
-     *
-     * @author Harry Fuecks
-     * @see http://php.net/ucwords
-     *
-     * @param string $str
-     * @return string with first char of each word uppercase
-     */
-    function utf8_ucwords($str) {
-        // Note: [\x0c\x09\x0b\x0a\x0d\x20] matches;
-        // form feeds, horizontal tabs, vertical tabs, linefeeds and carriage returns
-        // This corresponds to the definition of a "word" defined at http://php.net/ucwords
-        $pattern = '/(^|([\x0c\x09\x0b\x0a\x0d\x20]+))([^\x0c\x09\x0b\x0a\x0d\x20]{1})[^\x0c\x09\x0b\x0a\x0d\x20]*/u';
-
-        return preg_replace_callback($pattern, 'utf8_ucwords_callback',$str);
-    }
-
-    /**
-     * Callback function for preg_replace_callback call in utf8_ucwords
-     * You don't need to call this yourself
-     *
-     * @author Harry Fuecks
-     * @see utf8_ucwords
-     * @see utf8_strtoupper
-     *
-     * @param  array $matches matches corresponding to a single word
-     * @return string with first char of the word in uppercase
-     */
-    function utf8_ucwords_callback($matches) {
-        $leadingws = $matches[2];
-        $ucfirst = utf8_strtoupper($matches[3]);
-        $ucword = utf8_substr_replace(ltrim($matches[0]),$ucfirst,0,1);
-        return $leadingws . $ucword;
-    }
-}
-
-if(!function_exists('utf8_deaccent')){
-    /**
-     * Replace accented UTF-8 characters by unaccented ASCII-7 equivalents
-     *
-     * Use the optional parameter to just deaccent lower ($case = -1) or upper ($case = 1)
-     * letters. Default is to deaccent both cases ($case = 0)
-     *
-     * @author Andreas Gohr <andi@splitbrain.org>
-     *
-     * @param string $string
-     * @param int $case
-     * @return string
-     */
-    function utf8_deaccent($string,$case=0){
-        if($case <= 0){
-            global $UTF8_LOWER_ACCENTS;
-            $string = strtr($string,$UTF8_LOWER_ACCENTS);
-        }
-        if($case >= 0){
-            global $UTF8_UPPER_ACCENTS;
-            $string = strtr($string,$UTF8_UPPER_ACCENTS);
-        }
-        return $string;
-    }
-}
-
-if(!function_exists('utf8_romanize')){
-    /**
-     * Romanize a non-latin string
-     *
-     * @author Andreas Gohr <andi@splitbrain.org>
-     *
-     * @param string $string
-     * @return string
-     */
-    function utf8_romanize($string){
-        if(utf8_isASCII($string)) return $string; //nothing to do
-
-        global $UTF8_ROMANIZATION;
-        return strtr($string,$UTF8_ROMANIZATION);
-    }
-}
-
-if(!function_exists('utf8_stripspecials')){
-    /**
-     * Removes special characters (nonalphanumeric) from a UTF-8 string
-     *
-     * This function adds the controlchars 0x00 to 0x19 to the array of
-     * stripped chars (they are not included in $UTF8_SPECIAL_CHARS)
-     *
-     * @author Andreas Gohr <andi@splitbrain.org>
-     *
-     * @param  string $string     The UTF8 string to strip of special chars
-     * @param  string $repl       Replace special with this string
-     * @param  string $additional Additional chars to strip (used in regexp char class)
-     * @return string
-     */
-    function utf8_stripspecials($string,$repl='',$additional=''){
-        global $UTF8_SPECIAL_CHARS2;
-
-        static $specials = null;
-        if(is_null($specials)){
-            #$specials = preg_quote(unicode_to_utf8($UTF8_SPECIAL_CHARS), '/');
-            $specials = preg_quote($UTF8_SPECIAL_CHARS2, '/');
-        }
-
-        return preg_replace('/['.$additional.'\x00-\x19'.$specials.']/u',$repl,$string);
-    }
-}
-
-if(!function_exists('utf8_strpos')){
-    /**
-     * This is an Unicode aware replacement for strpos
-     *
-     * @author Leo Feyer <leo@typolight.org>
-     * @see    strpos()
-     *
-     * @param  string  $haystack
-     * @param  string  $needle
-     * @param  integer $offset
-     * @return integer
-     */
-    function utf8_strpos($haystack, $needle, $offset=0){
-        $comp = 0;
-        $length = null;
-
-        while (is_null($length) || $length < $offset) {
-            $pos = strpos($haystack, $needle, $offset + $comp);
-
-            if ($pos === false)
-                return false;
-
-            $length = utf8_strlen(substr($haystack, 0, $pos));
-
-            if ($length < $offset)
-                $comp = $pos - $length;
-        }
-
-        return $length;
-    }
-}
-
-if(!function_exists('utf8_tohtml')){
-    /**
-     * Encodes UTF-8 characters to HTML entities
-     *
-     * @author Tom N Harris <tnharris@whoopdedo.org>
-     * @author <vpribish at shopping dot com>
-     * @link   http://php.net/manual/en/function.utf8-decode.php
-     *
-     * @param string $str
-     * @return string
-     */
-    function utf8_tohtml ($str) {
-        $ret = '';
-        foreach (utf8_to_unicode($str) as $cp) {
-            if ($cp < 0x80)
-                $ret .= chr($cp);
-            elseif ($cp < 0x100)
-                $ret .= "&#$cp;";
-            else
-                $ret .= '&#x'.dechex($cp).';';
-        }
-        return $ret;
-    }
-}
-
-if(!function_exists('utf8_unhtml')){
-    /**
-     * Decodes HTML entities to UTF-8 characters
-     *
-     * Convert any &#..; entity to a codepoint,
-     * The entities flag defaults to only decoding numeric entities.
-     * Pass HTML_ENTITIES and named entities, including &amp; &lt; etc.
-     * are handled as well. Avoids the problem that would occur if you
-     * had to decode "&amp;#38;&#38;amp;#38;"
-     *
-     * unhtmlspecialchars(utf8_unhtml($s)) -> "&#38;&#38;"
-     * utf8_unhtml(unhtmlspecialchars($s)) -> "&&amp#38;"
-     * what it should be                   -> "&#38;&amp#38;"
-     *
-     * @author Tom N Harris <tnharris@whoopdedo.org>
-     *
-     * @param  string  $str      UTF-8 encoded string
-     * @param  boolean $entities Flag controlling decoding of named entities.
-     * @return string  UTF-8 encoded string with numeric (and named) entities replaced.
-     */
-    function utf8_unhtml($str, $entities=null) {
-        static $decoder = null;
-        if (is_null($decoder))
-            $decoder = new utf8_entity_decoder();
-        if (is_null($entities))
-            return preg_replace_callback('/(&#([Xx])?([0-9A-Za-z]+);)/m',
-                                         'utf8_decode_numeric', $str);
-        else
-            return preg_replace_callback('/&(#)?([Xx])?([0-9A-Za-z]+);/m',
-                                         array(&$decoder, 'decode'), $str);
-    }
-}
-
-if(!function_exists('utf8_decode_numeric')){
-    /**
-     * Decodes numeric HTML entities to their correct UTF-8 characters
-     *
-     * @param $ent string A numeric entity
-     * @return string|false
-     */
-    function utf8_decode_numeric($ent) {
-        switch ($ent[2]) {
-            case 'X':
-            case 'x':
-                $cp = hexdec($ent[3]);
-                break;
-            default:
-                $cp = intval($ent[3]);
-                break;
-        }
-        return unicode_to_utf8(array($cp));
-    }
-}
-
-if(!class_exists('utf8_entity_decoder')){
-    /**
-     * Encapsulate HTML entity decoding tables
-     */
-    class utf8_entity_decoder {
-        protected $table;
-
-        /**
-         * Initializes the decoding tables
-         */
-        function __construct() {
-            $table = get_html_translation_table(HTML_ENTITIES);
-            $table = array_flip($table);
-            $this->table = array_map(array(&$this,'makeutf8'), $table);
-        }
-
-        /**
-         * Wrapper around unicode_to_utf8()
-         *
-         * @param string $c
-         * @return string|false
-         */
-        function makeutf8($c) {
-            return unicode_to_utf8(array(ord($c)));
-        }
-
-        /**
-         * Decodes any HTML entity to it's correct UTF-8 char equivalent
-         *
-         * @param string $ent An entity
-         * @return string|false
-         */
-        function decode($ent) {
-            if ($ent[1] == '#') {
-                return utf8_decode_numeric($ent);
-            } elseif (array_key_exists($ent[0],$this->table)) {
-                return $this->table[$ent[0]];
-            } else {
-                return $ent[0];
-            }
-        }
-    }
-}
-
-if(!function_exists('utf8_to_unicode')){
-    /**
-     * Takes an UTF-8 string and returns an array of ints representing the
-     * Unicode characters. Astral planes are supported ie. the ints in the
-     * output can be > 0xFFFF. Occurrances of the BOM are ignored. Surrogates
-     * are not allowed.
-     *
-     * If $strict is set to true the function returns false if the input
-     * string isn't a valid UTF-8 octet sequence and raises a PHP error at
-     * level E_USER_WARNING
-     *
-     * Note: this function has been modified slightly in this library to
-     * trigger errors on encountering bad bytes
-     *
-     * @author <hsivonen@iki.fi>
-     * @author Harry Fuecks <hfuecks@gmail.com>
-     * @see    unicode_to_utf8
-     * @link   http://hsivonen.iki.fi/php-utf8/
-     * @link   http://sourceforge.net/projects/phputf8/
-     *
-     * @param  string  $str UTF-8 encoded string
-     * @param  boolean $strict Check for invalid sequences?
-     * @return mixed array of unicode code points or false if UTF-8 invalid
-     */
-    function utf8_to_unicode($str,$strict=false) {
-        $mState = 0;     // cached expected number of octets after the current octet
-                         // until the beginning of the next UTF8 character sequence
-        $mUcs4  = 0;     // cached Unicode character
-        $mBytes = 1;     // cached expected number of octets in the current sequence
-
-        $out = array();
-
-        $len = strlen($str);
-
-        for($i = 0; $i < $len; $i++) {
-
-            $in = ord($str{$i});
-
-            if ( $mState == 0) {
-
-                // When mState is zero we expect either a US-ASCII character or a
-                // multi-octet sequence.
-                if (0 == (0x80 & ($in))) {
-                    // US-ASCII, pass straight through.
-                    $out[] = $in;
-                    $mBytes = 1;
-
-                } else if (0xC0 == (0xE0 & ($in))) {
-                    // First octet of 2 octet sequence
-                    $mUcs4 = ($in);
-                    $mUcs4 = ($mUcs4 & 0x1F) << 6;
-                    $mState = 1;
-                    $mBytes = 2;
-
-                } else if (0xE0 == (0xF0 & ($in))) {
-                    // First octet of 3 octet sequence
-                    $mUcs4 = ($in);
-                    $mUcs4 = ($mUcs4 & 0x0F) << 12;
-                    $mState = 2;
-                    $mBytes = 3;
-
-                } else if (0xF0 == (0xF8 & ($in))) {
-                    // First octet of 4 octet sequence
-                    $mUcs4 = ($in);
-                    $mUcs4 = ($mUcs4 & 0x07) << 18;
-                    $mState = 3;
-                    $mBytes = 4;
-
-                } else if (0xF8 == (0xFC & ($in))) {
-                    /* First octet of 5 octet sequence.
-                     *
-                     * This is illegal because the encoded codepoint must be either
-                     * (a) not the shortest form or
-                     * (b) outside the Unicode range of 0-0x10FFFF.
-                     * Rather than trying to resynchronize, we will carry on until the end
-                     * of the sequence and let the later error handling code catch it.
-                     */
-                    $mUcs4 = ($in);
-                    $mUcs4 = ($mUcs4 & 0x03) << 24;
-                    $mState = 4;
-                    $mBytes = 5;
-
-                } else if (0xFC == (0xFE & ($in))) {
-                    // First octet of 6 octet sequence, see comments for 5 octet sequence.
-                    $mUcs4 = ($in);
-                    $mUcs4 = ($mUcs4 & 1) << 30;
-                    $mState = 5;
-                    $mBytes = 6;
-
-                } elseif($strict) {
-                    /* Current octet is neither in the US-ASCII range nor a legal first
-                     * octet of a multi-octet sequence.
-                     */
-                    trigger_error(
-                            'utf8_to_unicode: Illegal sequence identifier '.
-                                'in UTF-8 at byte '.$i,
-                            E_USER_WARNING
-                        );
-                    return false;
-
-                }
-
-            } else {
-
-                // When mState is non-zero, we expect a continuation of the multi-octet
-                // sequence
-                if (0x80 == (0xC0 & ($in))) {
-
-                    // Legal continuation.
-                    $shift = ($mState - 1) * 6;
-                    $tmp = $in;
-                    $tmp = ($tmp & 0x0000003F) << $shift;
-                    $mUcs4 |= $tmp;
-
-                    /**
-                     * End of the multi-octet sequence. mUcs4 now contains the final
-                     * Unicode codepoint to be output
-                     */
-                    if (0 == --$mState) {
-
-                        /*
-                         * Check for illegal sequences and codepoints.
-                         */
-                        // From Unicode 3.1, non-shortest form is illegal
-                        if (((2 == $mBytes) && ($mUcs4 < 0x0080)) ||
-                            ((3 == $mBytes) && ($mUcs4 < 0x0800)) ||
-                            ((4 == $mBytes) && ($mUcs4 < 0x10000)) ||
-                            (4 < $mBytes) ||
-                            // From Unicode 3.2, surrogate characters are illegal
-                            (($mUcs4 & 0xFFFFF800) == 0xD800) ||
-                            // Codepoints outside the Unicode range are illegal
-                            ($mUcs4 > 0x10FFFF)) {
-
-                            if($strict){
-                                trigger_error(
-                                        'utf8_to_unicode: Illegal sequence or codepoint '.
-                                            'in UTF-8 at byte '.$i,
-                                        E_USER_WARNING
-                                    );
-
-                                return false;
-                            }
-
-                        }
-
-                        if (0xFEFF != $mUcs4) {
-                            // BOM is legal but we don't want to output it
-                            $out[] = $mUcs4;
-                        }
-
-                        //initialize UTF8 cache
-                        $mState = 0;
-                        $mUcs4  = 0;
-                        $mBytes = 1;
-                    }
-
-                } elseif($strict) {
-                    /**
-                     *((0xC0 & (*in) != 0x80) && (mState != 0))
-                     * Incomplete multi-octet sequence.
-                     */
-                    trigger_error(
-                            'utf8_to_unicode: Incomplete multi-octet '.
-                            '   sequence in UTF-8 at byte '.$i,
-                            E_USER_WARNING
-                        );
-
-                    return false;
-                }
-            }
-        }
-        return $out;
-    }
-}
-
-if(!function_exists('unicode_to_utf8')){
-    /**
-     * Takes an array of ints representing the Unicode characters and returns
-     * a UTF-8 string. Astral planes are supported ie. the ints in the
-     * input can be > 0xFFFF. Occurrances of the BOM are ignored. Surrogates
-     * are not allowed.
-     *
-     * If $strict is set to true the function returns false if the input
-     * array contains ints that represent surrogates or are outside the
-     * Unicode range and raises a PHP error at level E_USER_WARNING
-     *
-     * Note: this function has been modified slightly in this library to use
-     * output buffering to concatenate the UTF-8 string (faster) as well as
-     * reference the array by it's keys
-     *
-     * @param  array $arr of unicode code points representing a string
-     * @param  boolean $strict Check for invalid sequences?
-     * @return string|false UTF-8 string or false if array contains invalid code points
-     *
-     * @author <hsivonen@iki.fi>
-     * @author Harry Fuecks <hfuecks@gmail.com>
-     * @see    utf8_to_unicode
-     * @link   http://hsivonen.iki.fi/php-utf8/
-     * @link   http://sourceforge.net/projects/phputf8/
-     */
-    function unicode_to_utf8($arr,$strict=false) {
-        if (!is_array($arr)) return '';
-        ob_start();
-
-        foreach (array_keys($arr) as $k) {
-
-            if ( ($arr[$k] >= 0) && ($arr[$k] <= 0x007f) ) {
-                # ASCII range (including control chars)
-
-                echo chr($arr[$k]);
-
-            } else if ($arr[$k] <= 0x07ff) {
-                # 2 byte sequence
-
-                echo chr(0xc0 | ($arr[$k] >> 6));
-                echo chr(0x80 | ($arr[$k] & 0x003f));
-
-            } else if($arr[$k] == 0xFEFF) {
-                # Byte order mark (skip)
-
-                // nop -- zap the BOM
-
-            } else if ($arr[$k] >= 0xD800 && $arr[$k] <= 0xDFFF) {
-                # Test for illegal surrogates
-
-                // found a surrogate
-                if($strict){
-                    trigger_error(
-                        'unicode_to_utf8: Illegal surrogate '.
-                            'at index: '.$k.', value: '.$arr[$k],
-                        E_USER_WARNING
-                        );
-                    return false;
-                }
-
-            } else if ($arr[$k] <= 0xffff) {
-                # 3 byte sequence
-
-                echo chr(0xe0 | ($arr[$k] >> 12));
-                echo chr(0x80 | (($arr[$k] >> 6) & 0x003f));
-                echo chr(0x80 | ($arr[$k] & 0x003f));
-
-            } else if ($arr[$k] <= 0x10ffff) {
-                # 4 byte sequence
-
-                echo chr(0xf0 | ($arr[$k] >> 18));
-                echo chr(0x80 | (($arr[$k] >> 12) & 0x3f));
-                echo chr(0x80 | (($arr[$k] >> 6) & 0x3f));
-                echo chr(0x80 | ($arr[$k] & 0x3f));
-
-            } elseif($strict) {
-
-                trigger_error(
-                    'unicode_to_utf8: Codepoint out of Unicode range '.
-                        'at index: '.$k.', value: '.$arr[$k],
-                    E_USER_WARNING
-                    );
-
-                // out of range
-                return false;
-            }
-        }
-
-        $result = ob_get_contents();
-        ob_end_clean();
-        return $result;
-    }
-}
-
-if(!function_exists('utf8_to_utf16be')){
-    /**
-     * UTF-8 to UTF-16BE conversion.
-     *
-     * Maybe really UCS-2 without mb_string due to utf8_to_unicode limits
-     *
-     * @param string $str
-     * @param bool $bom
-     * @return string
-     */
-    function utf8_to_utf16be(&$str, $bom = false) {
-        $out = $bom ? "\xFE\xFF" : '';
-        if(UTF8_MBSTRING) return $out.mb_convert_encoding($str,'UTF-16BE','UTF-8');
-
-        $uni = utf8_to_unicode($str);
-        foreach($uni as $cp){
-            $out .= pack('n',$cp);
-        }
-        return $out;
-    }
-}
-
-if(!function_exists('utf16be_to_utf8')){
-    /**
-     * UTF-8 to UTF-16BE conversion.
-     *
-     * Maybe really UCS-2 without mb_string due to utf8_to_unicode limits
-     *
-     * @param string $str
-     * @return false|string
-     */
-    function utf16be_to_utf8(&$str) {
-        $uni = unpack('n*',$str);
-        return unicode_to_utf8($uni);
-    }
-}
-
-if(!function_exists('utf8_bad_replace')){
-    /**
-     * Replace bad bytes with an alternative character
-     *
-     * ASCII character is recommended for replacement char
-     *
-     * PCRE Pattern to locate bad bytes in a UTF-8 string
-     * Comes from W3 FAQ: Multilingual Forms
-     * Note: modified to include full ASCII range including control chars
-     *
-     * @author Harry Fuecks <hfuecks@gmail.com>
-     * @see http://www.w3.org/International/questions/qa-forms-utf-8
-     *
-     * @param string $str to search
-     * @param string $replace to replace bad bytes with (defaults to '?') - use ASCII
-     * @return string
-     */
-    function utf8_bad_replace($str, $replace = '') {
-        $UTF8_BAD =
-         '([\x00-\x7F]'.                          # ASCII (including control chars)
-         '|[\xC2-\xDF][\x80-\xBF]'.               # non-overlong 2-byte
-         '|\xE0[\xA0-\xBF][\x80-\xBF]'.           # excluding overlongs
-         '|[\xE1-\xEC\xEE\xEF][\x80-\xBF]{2}'.    # straight 3-byte
-         '|\xED[\x80-\x9F][\x80-\xBF]'.           # excluding surrogates
-         '|\xF0[\x90-\xBF][\x80-\xBF]{2}'.        # planes 1-3
-         '|[\xF1-\xF3][\x80-\xBF]{3}'.            # planes 4-15
-         '|\xF4[\x80-\x8F][\x80-\xBF]{2}'.        # plane 16
-         '|(.{1}))';                              # invalid byte
-        ob_start();
-        while (preg_match('/'.$UTF8_BAD.'/S', $str, $matches)) {
-            if ( !isset($matches[2])) {
-                echo $matches[0];
-            } else {
-                echo $replace;
-            }
-            $str = substr($str,strlen($matches[0]));
-        }
-        $result = ob_get_contents();
-        ob_end_clean();
-        return $result;
-    }
-}
-
-if(!function_exists('utf8_correctIdx')){
-    /**
-     * adjust a byte index into a utf8 string to a utf8 character boundary
-     *
-     * @param string $str   utf8 character string
-     * @param int    $i     byte index into $str
-     * @param $next  bool     direction to search for boundary,
-     *                           false = up (current character)
-     *                           true = down (next character)
-     *
-     * @return int            byte index into $str now pointing to a utf8 character boundary
-     *
-     * @author       chris smith <chris@jalakai.co.uk>
-     */
-    function utf8_correctIdx(&$str,$i,$next=false) {
-
-        if ($i <= 0) return 0;
-
-        $limit = strlen($str);
-        if ($i>=$limit) return $limit;
-
-        if ($next) {
-            while (($i<$limit) && ((ord($str[$i]) & 0xC0) == 0x80)) $i++;
-        } else {
-            while ($i && ((ord($str[$i]) & 0xC0) == 0x80)) $i--;
-        }
-
-        return $i;
-    }
-}
-
-// only needed if no mb_string available
-if(!UTF8_MBSTRING){
-    /**
-     * UTF-8 Case lookup table
-     *
-     * This lookuptable defines the upper case letters to their correspponding
-     * lower case letter in UTF-8
-     *
-     * @author Andreas Gohr <andi@splitbrain.org>
-     */
-    global $UTF8_LOWER_TO_UPPER;
-    if(empty($UTF8_LOWER_TO_UPPER)) $UTF8_LOWER_TO_UPPER = array(
-            "z"=>"Z","y"=>"Y","x"=>"X","w"=>"W","v"=>"V","u"=>"U","t"=>"T","s"=>"S","r"=>"R","q"=>"Q",
-            "ï½"=>"ï¼°","ï½"=>"O","n"=>"ï¼®","ï½"=>"ï¼­","l"=>"L","k"=>"K","j"=>"J","i"=>"I","h"=>"H","g"=>"ï¼§",
-            "f"=>"F","ï½…"=>"ï¼¥","d"=>"D","c"=>"ï¼£","b"=>"ï¼¢","ï½"=>"A","ῳ"=>"ῼ","á¿¥"=>"Ῥ","á¿¡"=>"á¿©","á¿‘"=>"á¿™",
-            "á¿"=>"Ῐ","ῃ"=>"ῌ","ι"=>"Ι","á¾³"=>"á¾¼","á¾±"=>"á¾¹","á¾°"=>"Ᾰ","á¾§"=>"ᾯ","ᾦ"=>"á¾®","á¾¥"=>"á¾­","ᾤ"=>"ᾬ",
-            "á¾£"=>"ᾫ","á¾¢"=>"ᾪ","ᾡ"=>"ᾩ","á¾—"=>"ᾟ","á¾–"=>"ᾞ","ᾕ"=>"á¾","á¾”"=>"ᾜ","ᾓ"=>"á¾›","á¾’"=>"ᾚ","ᾑ"=>"á¾™",
-            "á¾"=>"ᾘ","ᾇ"=>"á¾","ᾆ"=>"ᾎ","á¾…"=>"á¾","ᾄ"=>"ᾌ","ᾃ"=>"ᾋ","ᾂ"=>"ᾊ","á¾"=>"ᾉ","á¾€"=>"ᾈ","ÏŽ"=>"Î",
-            "á½¼"=>"Ὼ","Ï"=>"ÎŽ","ὺ"=>"Ὺ","ÏŒ"=>"ÎŒ","ὸ"=>"Ὸ","ί"=>"Ί","á½¶"=>"Ὶ","ή"=>"Ή","á½´"=>"Ὴ","έ"=>"Έ",
-            "ὲ"=>"Ὲ","ά"=>"Ά","ὰ"=>"Ὰ","ὧ"=>"Ὧ","ὦ"=>"Ὦ","ὥ"=>"Ὥ","ὤ"=>"Ὤ","ὣ"=>"Ὣ","ὢ"=>"Ὢ","ὡ"=>"Ὡ",
-            "á½—"=>"Ὗ","ὕ"=>"á½","ὓ"=>"á½›","ὑ"=>"á½™","á½…"=>"á½","ὄ"=>"Ὄ","ὃ"=>"Ὃ","ὂ"=>"Ὂ","á½"=>"Ὁ","á½€"=>"Ὀ",
-            "ἷ"=>"Ἷ","ἶ"=>"Ἶ","ἵ"=>"Ἵ","ἴ"=>"Ἴ","ἳ"=>"Ἳ","ἲ"=>"Ἲ","ἱ"=>"Ἱ","ἰ"=>"Ἰ","ἧ"=>"Ἧ","ἦ"=>"Ἦ",
-            "á¼¥"=>"á¼­","ἤ"=>"Ἤ","á¼£"=>"Ἣ","á¼¢"=>"Ἢ","ἡ"=>"Ἡ","ἕ"=>"á¼","á¼”"=>"Ἔ","ἓ"=>"á¼›","á¼’"=>"Ἒ","ἑ"=>"á¼™",
-            "á¼"=>"Ἐ","ἇ"=>"á¼","ἆ"=>"Ἆ","á¼…"=>"á¼","ἄ"=>"Ἄ","ἃ"=>"Ἃ","ἂ"=>"Ἂ","á¼"=>"Ἁ","á¼€"=>"Ἀ","ỹ"=>"Ỹ",
-            "ỷ"=>"Ỷ","ỵ"=>"Ỵ","ỳ"=>"Ỳ","ự"=>"Ự","ữ"=>"Ữ","ử"=>"Ử","ừ"=>"Ừ","ứ"=>"Ứ","ủ"=>"Ủ","ụ"=>"Ụ",
-            "ợ"=>"Ợ","ỡ"=>"á» ","ở"=>"Ở","á»"=>"Ờ","á»›"=>"Ớ","á»™"=>"Ộ","á»—"=>"á»–","ổ"=>"á»”","ồ"=>"á»’","ố"=>"á»",
-            "á»"=>"Ỏ","á»"=>"Ọ","ị"=>"Ị","ỉ"=>"Ỉ","ệ"=>"Ệ","á»…"=>"Ễ","ể"=>"Ể","á»"=>"Ề","ế"=>"Ế","ẽ"=>"Ẽ",
-            "ẻ"=>"Ẻ","ẹ"=>"Ẹ","ặ"=>"Ặ","ẵ"=>"Ẵ","ẳ"=>"Ẳ","ằ"=>"Ằ","ắ"=>"Ắ","ậ"=>"Ậ","ẫ"=>"Ẫ","ẩ"=>"Ẩ",
-            "ầ"=>"Ầ","ấ"=>"Ấ","ả"=>"Ả","ạ"=>"Ạ","ẛ"=>"á¹ ","ẕ"=>"Ẕ","ẓ"=>"Ẓ","ẑ"=>"áº","áº"=>"Ẏ","áº"=>"Ẍ",
-            "ẋ"=>"Ẋ","ẉ"=>"Ẉ","ẇ"=>"Ẇ","ẅ"=>"Ẅ","ẃ"=>"Ẃ","áº"=>"Ẁ","ṿ"=>"á¹¾","á¹½"=>"á¹¼","á¹»"=>"Ṻ","á¹¹"=>"Ṹ",
-            "ṷ"=>"Ṷ","ṵ"=>"Ṵ","ṳ"=>"Ṳ","ṱ"=>"Ṱ","ṯ"=>"Ṯ","ṭ"=>"Ṭ","ṫ"=>"Ṫ","ṩ"=>"Ṩ","ṧ"=>"Ṧ","ṥ"=>"Ṥ",
-            "á¹£"=>"á¹¢","ṡ"=>"á¹ ","ṟ"=>"Ṟ","á¹"=>"Ṝ","á¹›"=>"Ṛ","á¹™"=>"Ṙ","á¹—"=>"á¹–","ṕ"=>"á¹”","ṓ"=>"á¹’","ṑ"=>"á¹",
-            "á¹"=>"Ṏ","á¹"=>"Ṍ","ṋ"=>"Ṋ","ṉ"=>"Ṉ","ṇ"=>"Ṇ","á¹…"=>"Ṅ","ṃ"=>"Ṃ","á¹"=>"á¹€","ḿ"=>"Ḿ","ḽ"=>"Ḽ",
-            "ḻ"=>"Ḻ","ḹ"=>"Ḹ","ḷ"=>"Ḷ","ḵ"=>"Ḵ","ḳ"=>"Ḳ","ḱ"=>"Ḱ","ḯ"=>"Ḯ","ḭ"=>"Ḭ","ḫ"=>"Ḫ","ḩ"=>"Ḩ",
-            "ḧ"=>"Ḧ","ḥ"=>"Ḥ","ḣ"=>"Ḣ","ḡ"=>"Ḡ","ḟ"=>"Ḟ","á¸"=>"Ḝ","ḛ"=>"Ḛ","ḙ"=>"Ḙ","ḗ"=>"Ḗ","ḕ"=>"Ḕ",
-            "ḓ"=>"Ḓ","ḑ"=>"á¸","á¸"=>"Ḏ","á¸"=>"Ḍ","ḋ"=>"Ḋ","ḉ"=>"Ḉ","ḇ"=>"Ḇ","ḅ"=>"Ḅ","ḃ"=>"Ḃ","á¸"=>"Ḁ",
-            "Ö†"=>"Õ–","Ö…"=>"Õ•","Ö„"=>"Õ”","Öƒ"=>"Õ“","Ö‚"=>"Õ’","Ö"=>"Õ‘","Ö€"=>"Õ","Õ¿"=>"Õ","Õ¾"=>"ÕŽ","Õ½"=>"Õ",
-            "ռ"=>"Ռ","ջ"=>"Ջ","պ"=>"Պ","չ"=>"Չ","ո"=>"Ո","շ"=>"Շ","ն"=>"Ն","յ"=>"Յ","մ"=>"Մ","ճ"=>"Ճ",
-            "Õ²"=>"Õ‚","Õ±"=>"Õ","Õ°"=>"Õ€","Õ¯"=>"Ô¿","Õ®"=>"Ô¾","Õ­"=>"Ô½","Õ¬"=>"Ô¼","Õ«"=>"Ô»","Õª"=>"Ôº","Õ©"=>"Ô¹",
-            "Õ¨"=>"Ô¸","Õ§"=>"Ô·","Õ¦"=>"Ô¶","Õ¥"=>"Ôµ","Õ¤"=>"Ô´","Õ£"=>"Ô³","Õ¢"=>"Ô²","Õ¡"=>"Ô±","Ô"=>"ÔŽ","Ô"=>"ÔŒ",
-            "Ô‹"=>"ÔŠ","Ô‰"=>"Ôˆ","Ô‡"=>"Ô†","Ô…"=>"Ô„","Ôƒ"=>"Ô‚","Ô"=>"Ô€","Ó¹"=>"Ó¸","Óµ"=>"Ó´","Ó³"=>"Ó²","Ó±"=>"Ó°",
-            "Ó¯"=>"Ó®","Ó­"=>"Ó¬","Ó«"=>"Óª","Ó©"=>"Ó¨","Ó§"=>"Ó¦","Ó¥"=>"Ó¤","Ó£"=>"Ó¢","Ó¡"=>"Ó ","ÓŸ"=>"Óž","Ó"=>"Óœ",
-            "Ó›"=>"Óš","Ó™"=>"Ó˜","Ó—"=>"Ó–","Ó•"=>"Ó”","Ó“"=>"Ó’","Ó‘"=>"Ó","ÓŽ"=>"Ó","ÓŒ"=>"Ó‹","ÓŠ"=>"Ó‰","Óˆ"=>"Ó‡",
-            "Ó†"=>"Ó…","Ó„"=>"Óƒ","Ó‚"=>"Ó","Ò¿"=>"Ò¾","Ò½"=>"Ò¼","Ò»"=>"Òº","Ò¹"=>"Ò¸","Ò·"=>"Ò¶","Òµ"=>"Ò´","Ò³"=>"Ò²",
-            "Ò±"=>"Ò°","Ò¯"=>"Ò®","Ò­"=>"Ò¬","Ò«"=>"Òª","Ò©"=>"Ò¨","Ò§"=>"Ò¦","Ò¥"=>"Ò¤","Ò£"=>"Ò¢","Ò¡"=>"Ò ","ÒŸ"=>"Òž",
-            "Ò"=>"Òœ","Ò›"=>"Òš","Ò™"=>"Ò˜","Ò—"=>"Ò–","Ò•"=>"Ò”","Ò“"=>"Ò’","Ò‘"=>"Ò","Ò"=>"ÒŽ","Ò"=>"ÒŒ","Ò‹"=>"ÒŠ",
-            "Ò"=>"Ò€","Ñ¿"=>"Ѿ","ѽ"=>"Ѽ","Ñ»"=>"Ѻ","ѹ"=>"Ѹ","Ñ·"=>"Ѷ","ѵ"=>"Ñ´","ѳ"=>"Ѳ","ѱ"=>"Ѱ","ѯ"=>"Ñ®",
-            "Ñ­"=>"Ѭ","Ñ«"=>"Ѫ","Ñ©"=>"Ѩ","ѧ"=>"Ѧ","Ñ¥"=>"Ѥ","Ñ£"=>"Ñ¢","Ñ¡"=>"Ñ ","ÑŸ"=>"Ð","Ñž"=>"ÐŽ","Ñ"=>"Ð",
-            "ќ"=>"Ќ","ћ"=>"Ћ","њ"=>"Њ","љ"=>"Љ","ј"=>"Ј","ї"=>"Ї","і"=>"І","ѕ"=>"Ѕ","є"=>"Є","ѓ"=>"Ѓ",
-            "Ñ’"=>"Ђ","Ñ‘"=>"Ð","Ñ"=>"Ѐ","Ñ"=>"Я","ÑŽ"=>"Ю","Ñ"=>"Э","ÑŒ"=>"Ь","Ñ‹"=>"Ы","ÑŠ"=>"Ъ","щ"=>"Щ",
-            "ш"=>"Ш","ч"=>"Ч","ц"=>"Ц","Ñ…"=>"Ð¥","Ñ„"=>"Ф","у"=>"У","Ñ‚"=>"Т","Ñ"=>"С","Ñ€"=>"Р","п"=>"П",
-            "о"=>"О","н"=>"Ð","м"=>"М","л"=>"Л","к"=>"К","й"=>"Й","и"=>"И","з"=>"З","ж"=>"Ж","е"=>"Е",
-            "д"=>"Д","г"=>"Г","в"=>"Ð’","б"=>"Б","а"=>"Ð","ϵ"=>"Ε","ϲ"=>"Σ","ϱ"=>"Ρ","ϰ"=>"Κ","ϯ"=>"Ï®",
-            "Ï­"=>"Ϭ","Ï«"=>"Ϫ","Ï©"=>"Ϩ","ϧ"=>"Ϧ","Ï¥"=>"Ϥ","Ï£"=>"Ï¢","Ï¡"=>"Ï ","ÏŸ"=>"Ïž","Ï"=>"Ïœ","Ï›"=>"Ïš",
-            "Ï™"=>"Ϙ","Ï–"=>"Π","Ï•"=>"Φ","Ï‘"=>"Θ","Ï"=>"Î’","ÏŽ"=>"Î","Ï"=>"ÎŽ","ÏŒ"=>"ÎŒ","Ï‹"=>"Ϋ","ÏŠ"=>"Ϊ",
-            "ω"=>"Ω","ψ"=>"Ψ","χ"=>"Χ","φ"=>"Φ","Ï…"=>"Î¥","Ï„"=>"Τ","σ"=>"Σ","Ï‚"=>"Σ","Ï"=>"Ρ","Ï€"=>"Π",
-            "ο"=>"Ο","ξ"=>"Ξ","ν"=>"Î","μ"=>"Μ","λ"=>"Λ","κ"=>"Κ","ι"=>"Ι","θ"=>"Θ","η"=>"Η","ζ"=>"Ζ",
-            "ε"=>"Ε","δ"=>"Δ","γ"=>"Γ","β"=>"Β","α"=>"Α","ί"=>"Ί","ή"=>"Ή","έ"=>"Έ","ά"=>"Ά","ʒ"=>"Ʒ",
-            "Ê‹"=>"Ʋ","ÊŠ"=>"Ʊ","ʈ"=>"Æ®","ʃ"=>"Æ©","Ê€"=>"Ʀ","ɵ"=>"ÆŸ","ɲ"=>"Æ","ɯ"=>"Æœ","É©"=>"Æ–","ɨ"=>"Æ—",
-            "É£"=>"Æ”","É›"=>"Æ","É™"=>"Æ","É—"=>"ÆŠ","É–"=>"Ɖ","É”"=>"Ɔ","É“"=>"Æ","ȳ"=>"Ȳ","ȱ"=>"Ȱ","ȯ"=>"È®",
-            "È­"=>"Ȭ","È«"=>"Ȫ","È©"=>"Ȩ","ȧ"=>"Ȧ","È¥"=>"Ȥ","È£"=>"È¢","ÈŸ"=>"Èž","È"=>"Èœ","È›"=>"Èš","È™"=>"Ș",
-            "È—"=>"È–","È•"=>"È”","È“"=>"È’","È‘"=>"È","È"=>"ÈŽ","È"=>"ÈŒ","È‹"=>"ÈŠ","ȉ"=>"Ȉ","ȇ"=>"Ȇ","È…"=>"È„",
-            "ȃ"=>"È‚","È"=>"È€","Ç¿"=>"Ǿ","ǽ"=>"Ǽ","Ç»"=>"Ǻ","ǹ"=>"Ǹ","ǵ"=>"Ç´","dz"=>"Dz","ǯ"=>"Ç®","Ç­"=>"Ǭ",
-            "Ç«"=>"Ǫ","Ç©"=>"Ǩ","ǧ"=>"Ǧ","Ç¥"=>"Ǥ","Ç£"=>"Ç¢","Ç¡"=>"Ç ","ÇŸ"=>"Çž","Ç"=>"ÆŽ","Çœ"=>"Ç›","Çš"=>"Ç™",
-            "ǘ"=>"Ç—","Ç–"=>"Ç•","Ç”"=>"Ç“","Ç’"=>"Ç‘","Ç"=>"Ç","ÇŽ"=>"Ç","ÇŒ"=>"Ç‹","lj"=>"Lj","dž"=>"Ç…","Æ¿"=>"Ç·",
-            "ƽ"=>"Ƽ","ƹ"=>"Ƹ","ƶ"=>"Ƶ","ƴ"=>"Ƴ","ư"=>"Ư","ƭ"=>"Ƭ","ƨ"=>"Ƨ","ƥ"=>"Ƥ","ƣ"=>"Ƣ","ơ"=>"Ơ",
-            "ƞ"=>"Ƞ","ƙ"=>"Ƙ","ƕ"=>"Ƕ","ƒ"=>"Ƒ","ƌ"=>"Ƌ","ƈ"=>"Ƈ","ƅ"=>"Ƅ","ƃ"=>"Ƃ","ſ"=>"S","ž"=>"Ž",
-            "ż"=>"Ż","ź"=>"Ź","ŷ"=>"Ŷ","ŵ"=>"Ŵ","ų"=>"Ų","ű"=>"Ű","ů"=>"Ů","ŭ"=>"Ŭ","ū"=>"Ū","ũ"=>"Ũ",
-            "ŧ"=>"Ŧ","Å¥"=>"Ť","Å£"=>"Å¢","Å¡"=>"Å ","ÅŸ"=>"Åž","Å"=>"Åœ","Å›"=>"Åš","Å™"=>"Ř","Å—"=>"Å–","Å•"=>"Å”",
-            "Å“"=>"Å’","Å‘"=>"Å","Å"=>"ÅŽ","Å"=>"ÅŒ","Å‹"=>"ÅŠ","ň"=>"Ň","ņ"=>"Å…","Å„"=>"Ń","Å‚"=>"Å","Å€"=>"Ä¿",
-            "ľ"=>"Ľ","ļ"=>"Ļ","ĺ"=>"Ĺ","ķ"=>"Ķ","ĵ"=>"Ĵ","ij"=>"IJ","ı"=>"I","į"=>"Į","ĭ"=>"Ĭ","ī"=>"Ī",
-            "Ä©"=>"Ĩ","ħ"=>"Ħ","Ä¥"=>"Ĥ","Ä£"=>"Ä¢","Ä¡"=>"Ä ","ÄŸ"=>"Äž","Ä"=>"Äœ","Ä›"=>"Äš","Ä™"=>"Ę","Ä—"=>"Ä–",
-            "Ä•"=>"Ä”","Ä“"=>"Ä’","Ä‘"=>"Ä","Ä"=>"ÄŽ","Ä"=>"ÄŒ","Ä‹"=>"ÄŠ","ĉ"=>"Ĉ","ć"=>"Ć","Ä…"=>"Ä„","ă"=>"Ä‚",
-            "Ä"=>"Ä€","ÿ"=>"Ÿ","þ"=>"Þ","ý"=>"Ã","ü"=>"Ü","û"=>"Û","ú"=>"Ú","ù"=>"Ù","ø"=>"Ø","ö"=>"Ö",
-            "õ"=>"Õ","ô"=>"Ô","ó"=>"Ó","ò"=>"Ã’","ñ"=>"Ñ","ð"=>"Ã","ï"=>"Ã","î"=>"ÃŽ","í"=>"Ã","ì"=>"ÃŒ",
-            "ë"=>"Ë","ê"=>"Ê","é"=>"É","è"=>"È","ç"=>"Ç","æ"=>"Æ","å"=>"Å","ä"=>"Ä","ã"=>"Ã","â"=>"Â",
-            "á"=>"Ã","à"=>"À","µ"=>"Μ","z"=>"Z","y"=>"Y","x"=>"X","w"=>"W","v"=>"V","u"=>"U","t"=>"T",
-            "s"=>"S","r"=>"R","q"=>"Q","p"=>"P","o"=>"O","n"=>"N","m"=>"M","l"=>"L","k"=>"K","j"=>"J",
-            "i"=>"I","h"=>"H","g"=>"G","f"=>"F","e"=>"E","d"=>"D","c"=>"C","b"=>"B","a"=>"A"
-                );
-
-    /**
-     * UTF-8 Case lookup table
-     *
-     * This lookuptable defines the lower case letters to their corresponding
-     * upper case letter in UTF-8
-     *
-     * @author Andreas Gohr <andi@splitbrain.org>
-     */
-    global $UTF8_UPPER_TO_LOWER;
-    if(empty($UTF8_UPPER_TO_LOWER)) $UTF8_UPPER_TO_LOWER = array (
-            "Z"=>"z","Y"=>"y","X"=>"x","W"=>"w","V"=>"v","U"=>"u","T"=>"t","S"=>"s","R"=>"r","Q"=>"q",
-            "ï¼°"=>"ï½","O"=>"ï½","ï¼®"=>"n","ï¼­"=>"ï½","L"=>"l","K"=>"k","J"=>"j","I"=>"i","H"=>"h","ï¼§"=>"g",
-            "F"=>"f","ï¼¥"=>"ï½…","D"=>"d","ï¼£"=>"c","ï¼¢"=>"b","A"=>"ï½","ῼ"=>"ῳ","Ῥ"=>"á¿¥","á¿©"=>"á¿¡","á¿™"=>"á¿‘",
-            "Ῐ"=>"á¿","ῌ"=>"ῃ","Ι"=>"ι","á¾¼"=>"á¾³","á¾¹"=>"á¾±","Ᾰ"=>"á¾°","ᾯ"=>"á¾§","á¾®"=>"ᾦ","á¾­"=>"á¾¥","ᾬ"=>"ᾤ",
-            "ᾫ"=>"á¾£","ᾪ"=>"á¾¢","ᾩ"=>"ᾡ","ᾟ"=>"á¾—","ᾞ"=>"á¾–","á¾"=>"ᾕ","ᾜ"=>"á¾”","á¾›"=>"ᾓ","ᾚ"=>"á¾’","á¾™"=>"ᾑ",
-            "ᾘ"=>"á¾","á¾"=>"ᾇ","ᾎ"=>"ᾆ","á¾"=>"á¾…","ᾌ"=>"ᾄ","ᾋ"=>"ᾃ","ᾊ"=>"ᾂ","ᾉ"=>"á¾","ᾈ"=>"á¾€","Î"=>"ÏŽ",
-            "Ὼ"=>"á½¼","ÎŽ"=>"Ï","Ὺ"=>"ὺ","ÎŒ"=>"ÏŒ","Ὸ"=>"ὸ","Ί"=>"ί","Ὶ"=>"á½¶","Ή"=>"ή","Ὴ"=>"á½´","Έ"=>"έ",
-            "Ὲ"=>"ὲ","Ά"=>"ά","Ὰ"=>"ὰ","Ὧ"=>"ὧ","Ὦ"=>"ὦ","Ὥ"=>"ὥ","Ὤ"=>"ὤ","Ὣ"=>"ὣ","Ὢ"=>"ὢ","Ὡ"=>"ὡ",
-            "Ὗ"=>"á½—","á½"=>"ὕ","á½›"=>"ὓ","á½™"=>"ὑ","á½"=>"á½…","Ὄ"=>"ὄ","Ὃ"=>"ὃ","Ὂ"=>"ὂ","Ὁ"=>"á½","Ὀ"=>"á½€",
-            "Ἷ"=>"ἷ","Ἶ"=>"ἶ","Ἵ"=>"ἵ","Ἴ"=>"ἴ","Ἳ"=>"ἳ","Ἲ"=>"ἲ","Ἱ"=>"ἱ","Ἰ"=>"ἰ","Ἧ"=>"ἧ","Ἦ"=>"ἦ",
-            "á¼­"=>"á¼¥","Ἤ"=>"ἤ","Ἣ"=>"á¼£","Ἢ"=>"á¼¢","Ἡ"=>"ἡ","á¼"=>"ἕ","Ἔ"=>"á¼”","á¼›"=>"ἓ","Ἒ"=>"á¼’","á¼™"=>"ἑ",
-            "Ἐ"=>"á¼","á¼"=>"ἇ","Ἆ"=>"ἆ","á¼"=>"á¼…","Ἄ"=>"ἄ","Ἃ"=>"ἃ","Ἂ"=>"ἂ","Ἁ"=>"á¼","Ἀ"=>"á¼€","Ỹ"=>"ỹ",
-            "Ỷ"=>"ỷ","Ỵ"=>"ỵ","Ỳ"=>"ỳ","Ự"=>"ự","Ữ"=>"ữ","Ử"=>"ử","Ừ"=>"ừ","Ứ"=>"ứ","Ủ"=>"ủ","Ụ"=>"ụ",
-            "Ợ"=>"ợ","á» "=>"ỡ","Ở"=>"ở","Ờ"=>"á»","Ớ"=>"á»›","Ộ"=>"á»™","á»–"=>"á»—","á»”"=>"ổ","á»’"=>"ồ","á»"=>"ố",
-            "Ỏ"=>"á»","Ọ"=>"á»","Ị"=>"ị","Ỉ"=>"ỉ","Ệ"=>"ệ","Ễ"=>"á»…","Ể"=>"ể","Ề"=>"á»","Ế"=>"ế","Ẽ"=>"ẽ",
-            "Ẻ"=>"ẻ","Ẹ"=>"ẹ","Ặ"=>"ặ","Ẵ"=>"ẵ","Ẳ"=>"ẳ","Ằ"=>"ằ","Ắ"=>"ắ","Ậ"=>"ậ","Ẫ"=>"ẫ","Ẩ"=>"ẩ",
-            "Ầ"=>"ầ","Ấ"=>"ấ","Ả"=>"ả","Ạ"=>"ạ","á¹ "=>"ẛ","Ẕ"=>"ẕ","Ẓ"=>"ẓ","áº"=>"ẑ","Ẏ"=>"áº","Ẍ"=>"áº",
-            "Ẋ"=>"ẋ","Ẉ"=>"ẉ","Ẇ"=>"ẇ","Ẅ"=>"ẅ","Ẃ"=>"ẃ","Ẁ"=>"áº","á¹¾"=>"ṿ","á¹¼"=>"á¹½","Ṻ"=>"á¹»","Ṹ"=>"á¹¹",
-            "Ṷ"=>"ṷ","Ṵ"=>"ṵ","Ṳ"=>"ṳ","Ṱ"=>"ṱ","Ṯ"=>"ṯ","Ṭ"=>"ṭ","Ṫ"=>"ṫ","Ṩ"=>"ṩ","Ṧ"=>"ṧ","Ṥ"=>"ṥ",
-            "á¹¢"=>"á¹£","á¹ "=>"ṡ","Ṟ"=>"ṟ","Ṝ"=>"á¹","Ṛ"=>"á¹›","Ṙ"=>"á¹™","á¹–"=>"á¹—","á¹”"=>"ṕ","á¹’"=>"ṓ","á¹"=>"ṑ",
-            "Ṏ"=>"á¹","Ṍ"=>"á¹","Ṋ"=>"ṋ","Ṉ"=>"ṉ","Ṇ"=>"ṇ","Ṅ"=>"á¹…","Ṃ"=>"ṃ","á¹€"=>"á¹","Ḿ"=>"ḿ","Ḽ"=>"ḽ",
-            "Ḻ"=>"ḻ","Ḹ"=>"ḹ","Ḷ"=>"ḷ","Ḵ"=>"ḵ","Ḳ"=>"ḳ","Ḱ"=>"ḱ","Ḯ"=>"ḯ","Ḭ"=>"ḭ","Ḫ"=>"ḫ","Ḩ"=>"ḩ",
-            "Ḧ"=>"ḧ","Ḥ"=>"ḥ","Ḣ"=>"ḣ","Ḡ"=>"ḡ","Ḟ"=>"ḟ","Ḝ"=>"á¸","Ḛ"=>"ḛ","Ḙ"=>"ḙ","Ḗ"=>"ḗ","Ḕ"=>"ḕ",
-            "Ḓ"=>"ḓ","á¸"=>"ḑ","Ḏ"=>"á¸","Ḍ"=>"á¸","Ḋ"=>"ḋ","Ḉ"=>"ḉ","Ḇ"=>"ḇ","Ḅ"=>"ḅ","Ḃ"=>"ḃ","Ḁ"=>"á¸",
-            "Õ–"=>"Ö†","Õ•"=>"Ö…","Õ”"=>"Ö„","Õ“"=>"Öƒ","Õ’"=>"Ö‚","Õ‘"=>"Ö","Õ"=>"Ö€","Õ"=>"Õ¿","ÕŽ"=>"Õ¾","Õ"=>"Õ½",
-            "Ռ"=>"ռ","Ջ"=>"ջ","Պ"=>"պ","Չ"=>"չ","Ո"=>"ո","Շ"=>"շ","Ն"=>"ն","Յ"=>"յ","Մ"=>"մ","Ճ"=>"ճ",
-            "Õ‚"=>"Õ²","Õ"=>"Õ±","Õ€"=>"Õ°","Ô¿"=>"Õ¯","Ô¾"=>"Õ®","Ô½"=>"Õ­","Ô¼"=>"Õ¬","Ô»"=>"Õ«","Ôº"=>"Õª","Ô¹"=>"Õ©",
-            "Ô¸"=>"Õ¨","Ô·"=>"Õ§","Ô¶"=>"Õ¦","Ôµ"=>"Õ¥","Ô´"=>"Õ¤","Ô³"=>"Õ£","Ô²"=>"Õ¢","Ô±"=>"Õ¡","ÔŽ"=>"Ô","ÔŒ"=>"Ô",
-            "ÔŠ"=>"Ô‹","Ôˆ"=>"Ô‰","Ô†"=>"Ô‡","Ô„"=>"Ô…","Ô‚"=>"Ôƒ","Ô€"=>"Ô","Ó¸"=>"Ó¹","Ó´"=>"Óµ","Ó²"=>"Ó³","Ó°"=>"Ó±",
-            "Ó®"=>"Ó¯","Ó¬"=>"Ó­","Óª"=>"Ó«","Ó¨"=>"Ó©","Ó¦"=>"Ó§","Ó¤"=>"Ó¥","Ó¢"=>"Ó£","Ó "=>"Ó¡","Óž"=>"ÓŸ","Óœ"=>"Ó",
-            "Óš"=>"Ó›","Ó˜"=>"Ó™","Ó–"=>"Ó—","Ó”"=>"Ó•","Ó’"=>"Ó“","Ó"=>"Ó‘","Ó"=>"ÓŽ","Ó‹"=>"ÓŒ","Ó‰"=>"ÓŠ","Ó‡"=>"Óˆ",
-            "Ó…"=>"Ó†","Óƒ"=>"Ó„","Ó"=>"Ó‚","Ò¾"=>"Ò¿","Ò¼"=>"Ò½","Òº"=>"Ò»","Ò¸"=>"Ò¹","Ò¶"=>"Ò·","Ò´"=>"Òµ","Ò²"=>"Ò³",
-            "Ò°"=>"Ò±","Ò®"=>"Ò¯","Ò¬"=>"Ò­","Òª"=>"Ò«","Ò¨"=>"Ò©","Ò¦"=>"Ò§","Ò¤"=>"Ò¥","Ò¢"=>"Ò£","Ò "=>"Ò¡","Òž"=>"ÒŸ",
-            "Òœ"=>"Ò","Òš"=>"Ò›","Ò˜"=>"Ò™","Ò–"=>"Ò—","Ò”"=>"Ò•","Ò’"=>"Ò“","Ò"=>"Ò‘","ÒŽ"=>"Ò","ÒŒ"=>"Ò","ÒŠ"=>"Ò‹",
-            "Ò€"=>"Ò","Ѿ"=>"Ñ¿","Ѽ"=>"ѽ","Ѻ"=>"Ñ»","Ѹ"=>"ѹ","Ѷ"=>"Ñ·","Ñ´"=>"ѵ","Ѳ"=>"ѳ","Ѱ"=>"ѱ","Ñ®"=>"ѯ",
-            "Ѭ"=>"Ñ­","Ѫ"=>"Ñ«","Ѩ"=>"Ñ©","Ѧ"=>"ѧ","Ѥ"=>"Ñ¥","Ñ¢"=>"Ñ£","Ñ "=>"Ñ¡","Ð"=>"ÑŸ","ÐŽ"=>"Ñž","Ð"=>"Ñ",
-            "Ќ"=>"ќ","Ћ"=>"ћ","Њ"=>"њ","Љ"=>"љ","Ј"=>"ј","Ї"=>"ї","І"=>"і","Ѕ"=>"ѕ","Є"=>"є","Ѓ"=>"ѓ",
-            "Ђ"=>"Ñ’","Ð"=>"Ñ‘","Ѐ"=>"Ñ","Я"=>"Ñ","Ю"=>"ÑŽ","Э"=>"Ñ","Ь"=>"ÑŒ","Ы"=>"Ñ‹","Ъ"=>"ÑŠ","Щ"=>"щ",
-            "Ш"=>"ш","Ч"=>"ч","Ц"=>"ц","Ð¥"=>"Ñ…","Ф"=>"Ñ„","У"=>"у","Т"=>"Ñ‚","С"=>"Ñ","Р"=>"Ñ€","П"=>"п",
-            "О"=>"о","Ð"=>"н","М"=>"м","Л"=>"л","К"=>"к","Й"=>"й","И"=>"и","З"=>"з","Ж"=>"ж","Е"=>"е",
-            "Д"=>"д","Г"=>"г","Ð’"=>"в","Б"=>"б","Ð"=>"а","Ε"=>"ϵ","Σ"=>"ϲ","Ρ"=>"ϱ","Κ"=>"ϰ","Ï®"=>"ϯ",
-            "Ϭ"=>"Ï­","Ϫ"=>"Ï«","Ϩ"=>"Ï©","Ϧ"=>"ϧ","Ϥ"=>"Ï¥","Ï¢"=>"Ï£","Ï "=>"Ï¡","Ïž"=>"ÏŸ","Ïœ"=>"Ï","Ïš"=>"Ï›",
-            "Ϙ"=>"Ï™","Π"=>"Ï–","Φ"=>"Ï•","Θ"=>"Ï‘","Î’"=>"Ï","Î"=>"ÏŽ","ÎŽ"=>"Ï","ÎŒ"=>"ÏŒ","Ϋ"=>"Ï‹","Ϊ"=>"ÏŠ",
-            "Ω"=>"ω","Ψ"=>"ψ","Χ"=>"χ","Φ"=>"φ","Î¥"=>"Ï…","Τ"=>"Ï„","Σ"=>"σ","Σ"=>"Ï‚","Ρ"=>"Ï","Π"=>"Ï€",
-            "Ο"=>"ο","Ξ"=>"ξ","Î"=>"ν","Μ"=>"μ","Λ"=>"λ","Κ"=>"κ","Ι"=>"ι","Θ"=>"θ","Η"=>"η","Ζ"=>"ζ",
-            "Ε"=>"ε","Δ"=>"δ","Γ"=>"γ","Β"=>"β","Α"=>"α","Ί"=>"ί","Ή"=>"ή","Έ"=>"έ","Ά"=>"ά","Ʒ"=>"ʒ",
-            "Ʋ"=>"Ê‹","Ʊ"=>"ÊŠ","Æ®"=>"ʈ","Æ©"=>"ʃ","Ʀ"=>"Ê€","ÆŸ"=>"ɵ","Æ"=>"ɲ","Æœ"=>"ɯ","Æ–"=>"É©","Æ—"=>"ɨ",
-            "Æ”"=>"É£","Æ"=>"É›","Æ"=>"É™","ÆŠ"=>"É—","Ɖ"=>"É–","Ɔ"=>"É”","Æ"=>"É“","Ȳ"=>"ȳ","Ȱ"=>"ȱ","È®"=>"ȯ",
-            "Ȭ"=>"È­","Ȫ"=>"È«","Ȩ"=>"È©","Ȧ"=>"ȧ","Ȥ"=>"È¥","È¢"=>"È£","Èž"=>"ÈŸ","Èœ"=>"È","Èš"=>"È›","Ș"=>"È™",
-            "È–"=>"È—","È”"=>"È•","È’"=>"È“","È"=>"È‘","ÈŽ"=>"È","ÈŒ"=>"È","ÈŠ"=>"È‹","Ȉ"=>"ȉ","Ȇ"=>"ȇ","È„"=>"È…",
-            "È‚"=>"ȃ","È€"=>"È","Ǿ"=>"Ç¿","Ǽ"=>"ǽ","Ǻ"=>"Ç»","Ǹ"=>"ǹ","Ç´"=>"ǵ","Dz"=>"dz","Ç®"=>"ǯ","Ǭ"=>"Ç­",
-            "Ǫ"=>"Ç«","Ǩ"=>"Ç©","Ǧ"=>"ǧ","Ǥ"=>"Ç¥","Ç¢"=>"Ç£","Ç "=>"Ç¡","Çž"=>"ÇŸ","ÆŽ"=>"Ç","Ç›"=>"Çœ","Ç™"=>"Çš",
-            "Ç—"=>"ǘ","Ç•"=>"Ç–","Ç“"=>"Ç”","Ç‘"=>"Ç’","Ç"=>"Ç","Ç"=>"ÇŽ","Ç‹"=>"ÇŒ","Lj"=>"lj","Ç…"=>"dž","Ç·"=>"Æ¿",
-            "Ƽ"=>"ƽ","Ƹ"=>"ƹ","Ƶ"=>"ƶ","Ƴ"=>"ƴ","Ư"=>"ư","Ƭ"=>"ƭ","Ƨ"=>"ƨ","Ƥ"=>"ƥ","Ƣ"=>"ƣ","Ơ"=>"ơ",
-            "Ƞ"=>"ƞ","Ƙ"=>"ƙ","Ƕ"=>"ƕ","Ƒ"=>"ƒ","Ƌ"=>"ƌ","Ƈ"=>"ƈ","Ƅ"=>"ƅ","Ƃ"=>"ƃ","S"=>"ſ","Ž"=>"ž",
-            "Ż"=>"ż","Ź"=>"ź","Ŷ"=>"ŷ","Ŵ"=>"ŵ","Ų"=>"ų","Ű"=>"ű","Ů"=>"ů","Ŭ"=>"ŭ","Ū"=>"ū","Ũ"=>"ũ",
-            "Ŧ"=>"ŧ","Ť"=>"Å¥","Å¢"=>"Å£","Å "=>"Å¡","Åž"=>"ÅŸ","Åœ"=>"Å","Åš"=>"Å›","Ř"=>"Å™","Å–"=>"Å—","Å”"=>"Å•",
-            "Å’"=>"Å“","Å"=>"Å‘","ÅŽ"=>"Å","ÅŒ"=>"Å","ÅŠ"=>"Å‹","Ň"=>"ň","Å…"=>"ņ","Ń"=>"Å„","Å"=>"Å‚","Ä¿"=>"Å€",
-            "Ľ"=>"ľ","Ļ"=>"ļ","Ĺ"=>"ĺ","Ķ"=>"ķ","Ĵ"=>"ĵ","IJ"=>"ij","I"=>"ı","Į"=>"į","Ĭ"=>"ĭ","Ī"=>"ī",
-            "Ĩ"=>"Ä©","Ħ"=>"ħ","Ĥ"=>"Ä¥","Ä¢"=>"Ä£","Ä "=>"Ä¡","Äž"=>"ÄŸ","Äœ"=>"Ä","Äš"=>"Ä›","Ę"=>"Ä™","Ä–"=>"Ä—",
-            "Ä”"=>"Ä•","Ä’"=>"Ä“","Ä"=>"Ä‘","ÄŽ"=>"Ä","ÄŒ"=>"Ä","ÄŠ"=>"Ä‹","Ĉ"=>"ĉ","Ć"=>"ć","Ä„"=>"Ä…","Ä‚"=>"ă",
-            "Ä€"=>"Ä","Ÿ"=>"ÿ","Þ"=>"þ","Ã"=>"ý","Ü"=>"ü","Û"=>"û","Ú"=>"ú","Ù"=>"ù","Ø"=>"ø","Ö"=>"ö",
-            "Õ"=>"õ","Ô"=>"ô","Ó"=>"ó","Ã’"=>"ò","Ñ"=>"ñ","Ã"=>"ð","Ã"=>"ï","ÃŽ"=>"î","Ã"=>"í","ÃŒ"=>"ì",
-            "Ë"=>"ë","Ê"=>"ê","É"=>"é","È"=>"è","Ç"=>"ç","Æ"=>"æ","Å"=>"å","Ä"=>"ä","Ã"=>"ã","Â"=>"â",
-            "Ã"=>"á","À"=>"à","Μ"=>"µ","Z"=>"z","Y"=>"y","X"=>"x","W"=>"w","V"=>"v","U"=>"u","T"=>"t",
-            "S"=>"s","R"=>"r","Q"=>"q","P"=>"p","O"=>"o","N"=>"n","M"=>"m","L"=>"l","K"=>"k","J"=>"j",
-            "I"=>"i","H"=>"h","G"=>"g","F"=>"f","E"=>"e","D"=>"d","C"=>"c","B"=>"b","A"=>"a"
-                );
-}; // end of case lookup tables
-
-/**
- * UTF-8 lookup table for lower case accented letters
- *
- * This lookuptable defines replacements for accented characters from the ASCII-7
- * range. This are lower case letters only.
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- * @see    utf8_deaccent()
- */
-global $UTF8_LOWER_ACCENTS;
-if(empty($UTF8_LOWER_ACCENTS)) $UTF8_LOWER_ACCENTS = array(
-  'à' => 'a', 'ô' => 'o', 'Ä' => 'd', 'ḟ' => 'f', 'ë' => 'e', 'Å¡' => 's', 'Æ¡' => 'o',
-  'ß' => 'ss', 'ă' => 'a', 'Å™' => 'r', 'È›' => 't', 'ň' => 'n', 'Ä' => 'a', 'Ä·' => 'k',
-  'Å' => 's', 'ỳ' => 'y', 'ņ' => 'n', 'ĺ' => 'l', 'ħ' => 'h', 'á¹—' => 'p', 'ó' => 'o',
-  'ú' => 'u', 'Ä›' => 'e', 'é' => 'e', 'ç' => 'c', 'áº' => 'w', 'Ä‹' => 'c', 'õ' => 'o',
-  'ṡ' => 's', 'ø' => 'o', 'ģ' => 'g', 'ŧ' => 't', 'ș' => 's', 'ė' => 'e', 'ĉ' => 'c',
-  'ś' => 's', 'î' => 'i', 'ű' => 'u', 'ć' => 'c', 'ę' => 'e', 'ŵ' => 'w', 'ṫ' => 't',
-  'Å«' => 'u', 'Ä' => 'c', 'ö' => 'oe', 'è' => 'e', 'Å·' => 'y', 'Ä…' => 'a', 'Å‚' => 'l',
-  'ų' => 'u', 'ů' => 'u', 'ş' => 's', 'ğ' => 'g', 'ļ' => 'l', 'ƒ' => 'f', 'ž' => 'z',
-  'ẃ' => 'w', 'ḃ' => 'b', 'å' => 'a', 'ì' => 'i', 'ï' => 'i', 'ḋ' => 'd', 'ť' => 't',
-  'ŗ' => 'r', 'ä' => 'ae', 'í' => 'i', 'ŕ' => 'r', 'ê' => 'e', 'ü' => 'ue', 'ò' => 'o',
-  'Ä“' => 'e', 'ñ' => 'n', 'Å„' => 'n', 'Ä¥' => 'h', 'Ä' => 'g', 'Ä‘' => 'd', 'ĵ' => 'j',
-  'ÿ' => 'y', 'ũ' => 'u', 'ŭ' => 'u', 'ư' => 'u', 'ţ' => 't', 'ý' => 'y', 'ő' => 'o',
-  'â' => 'a', 'ľ' => 'l', 'ẅ' => 'w', 'ż' => 'z', 'ī' => 'i', 'ã' => 'a', 'ġ' => 'g',
-  'á¹' => 'm', 'Å' => 'o', 'Ä©' => 'i', 'ù' => 'u', 'į' => 'i', 'ź' => 'z', 'á' => 'a',
-  'û' => 'u', 'þ' => 'th', 'ð' => 'dh', 'æ' => 'ae', 'µ' => 'u', 'ĕ' => 'e',
-);
-
-/**
- * UTF-8 lookup table for upper case accented letters
- *
- * This lookuptable defines replacements for accented characters from the ASCII-7
- * range. This are upper case letters only.
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- * @see    utf8_deaccent()
- */
-global $UTF8_UPPER_ACCENTS;
-if(empty($UTF8_UPPER_ACCENTS)) $UTF8_UPPER_ACCENTS = array(
-  'À' => 'A', 'Ô' => 'O', 'Ď' => 'D', 'Ḟ' => 'F', 'Ë' => 'E', 'Š' => 'S', 'Ơ' => 'O',
-  'Ă' => 'A', 'Ř' => 'R', 'Ț' => 'T', 'Ň' => 'N', 'Ā' => 'A', 'Ķ' => 'K',
-  'Ŝ' => 'S', 'Ỳ' => 'Y', 'Ņ' => 'N', 'Ĺ' => 'L', 'Ħ' => 'H', 'Ṗ' => 'P', 'Ó' => 'O',
-  'Ú' => 'U', 'Ě' => 'E', 'É' => 'E', 'Ç' => 'C', 'Ẁ' => 'W', 'Ċ' => 'C', 'Õ' => 'O',
-  'Ṡ' => 'S', 'Ø' => 'O', 'Ģ' => 'G', 'Ŧ' => 'T', 'Ș' => 'S', 'Ė' => 'E', 'Ĉ' => 'C',
-  'Ś' => 'S', 'Î' => 'I', 'Ű' => 'U', 'Ć' => 'C', 'Ę' => 'E', 'Ŵ' => 'W', 'Ṫ' => 'T',
-  'Ū' => 'U', 'ÄŒ' => 'C', 'Ö' => 'Oe', 'È' => 'E', 'Ŷ' => 'Y', 'Ä„' => 'A', 'Å' => 'L',
-  'Ų' => 'U', 'Ů' => 'U', 'Ş' => 'S', 'Ğ' => 'G', 'Ļ' => 'L', 'Ƒ' => 'F', 'Ž' => 'Z',
-  'Ẃ' => 'W', 'Ḃ' => 'B', 'Ã…' => 'A', 'ÃŒ' => 'I', 'Ã' => 'I', 'Ḋ' => 'D', 'Ť' => 'T',
-  'Å–' => 'R', 'Ä' => 'Ae', 'Ã' => 'I', 'Å”' => 'R', 'Ê' => 'E', 'Ü' => 'Ue', 'Ã’' => 'O',
-  'Ä’' => 'E', 'Ñ' => 'N', 'Ń' => 'N', 'Ĥ' => 'H', 'Äœ' => 'G', 'Ä' => 'D', 'Ä´' => 'J',
-  'Ÿ' => 'Y', 'Ũ' => 'U', 'Ŭ' => 'U', 'Ư' => 'U', 'Å¢' => 'T', 'Ã' => 'Y', 'Å' => 'O',
-  'Â' => 'A', 'Ľ' => 'L', 'Ẅ' => 'W', 'Ż' => 'Z', 'Ī' => 'I', 'Ã' => 'A', 'Ġ' => 'G',
-  'á¹€' => 'M', 'ÅŒ' => 'O', 'Ĩ' => 'I', 'Ù' => 'U', 'Ä®' => 'I', 'Ź' => 'Z', 'Ã' => 'A',
-  'Û' => 'U', 'Þ' => 'Th', 'Ã' => 'Dh', 'Æ' => 'Ae', 'Ä”' => 'E',
-);
-
-/**
- * UTF-8 array of common special characters
- *
- * This array should contain all special characters (not a letter or digit)
- * defined in the various local charsets - it's not a complete list of non-alphanum
- * characters in UTF-8. It's not perfect but should match most cases of special
- * chars.
- *
- * The controlchars 0x00 to 0x19 are _not_ included in this array. The space 0x20 is!
- * These chars are _not_ in the array either:  _ (0x5f), : 0x3a, . 0x2e, - 0x2d, * 0x2a
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- * @see    utf8_stripspecials()
- */
-global $UTF8_SPECIAL_CHARS;
-if(empty($UTF8_SPECIAL_CHARS)) $UTF8_SPECIAL_CHARS = array(
-  0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023,
-  0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029,         0x002b, 0x002c,
-          0x002f,         0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x005b,
-  0x005c, 0x005d, 0x005e,         0x0060, 0x007b, 0x007c, 0x007d, 0x007e,
-  0x007f, 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, 0x0088,
-  0x0089, 0x008a, 0x008b, 0x008c, 0x008d, 0x008e, 0x008f, 0x0090, 0x0091, 0x0092,
-  0x0093, 0x0094, 0x0095, 0x0096, 0x0097, 0x0098, 0x0099, 0x009a, 0x009b, 0x009c,
-  0x009d, 0x009e, 0x009f, 0x00a0, 0x00a1, 0x00a2, 0x00a3, 0x00a4, 0x00a5, 0x00a6,
-  0x00a7, 0x00a8, 0x00a9, 0x00aa, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00af, 0x00b0,
-  0x00b1, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x00b6, 0x00b7, 0x00b8, 0x00b9, 0x00ba,
-  0x00bb, 0x00bc, 0x00bd, 0x00be, 0x00bf, 0x00d7, 0x00f7, 0x02c7, 0x02d8, 0x02d9,
-  0x02da, 0x02db, 0x02dc, 0x02dd, 0x0300, 0x0301, 0x0303, 0x0309, 0x0323, 0x0384,
-  0x0385, 0x0387, 0x03c6, 0x03d1, 0x03d2, 0x03d5, 0x03d6, 0x05b0, 0x05b1,
-  0x05b2, 0x05b3, 0x05b4, 0x05b5, 0x05b6, 0x05b7, 0x05b8, 0x05b9, 0x05bb, 0x05bc,
-  0x05bd, 0x05be, 0x05bf, 0x05c0, 0x05c1, 0x05c2, 0x05c3, 0x05f3, 0x05f4, 0x060c,
-  0x061b, 0x061f, 0x0640, 0x064b, 0x064c, 0x064d, 0x064e, 0x064f, 0x0650, 0x0651,
-  0x0652, 0x066a, 0x0e3f, 0x200c, 0x200d, 0x200e, 0x200f, 0x2013, 0x2014, 0x2015,
-  0x2017, 0x2018, 0x2019, 0x201a, 0x201c, 0x201d, 0x201e, 0x2020, 0x2021, 0x2022,
-  0x2026, 0x2030, 0x2032, 0x2033, 0x2039, 0x203a, 0x2044, 0x20a7, 0x20aa, 0x20ab,
-  0x20ac, 0x2116, 0x2118, 0x2122, 0x2126, 0x2135, 0x2190, 0x2191, 0x2192, 0x2193,
-  0x2194, 0x2195, 0x21b5, 0x21d0, 0x21d1, 0x21d2, 0x21d3, 0x21d4, 0x2200, 0x2202,
-  0x2203, 0x2205, 0x2206, 0x2207, 0x2208, 0x2209, 0x220b, 0x220f, 0x2211, 0x2212,
-  0x2215, 0x2217, 0x2219, 0x221a, 0x221d, 0x221e, 0x2220, 0x2227, 0x2228, 0x2229,
-  0x222a, 0x222b, 0x2234, 0x223c, 0x2245, 0x2248, 0x2260, 0x2261, 0x2264, 0x2265,
-  0x2282, 0x2283, 0x2284, 0x2286, 0x2287, 0x2295, 0x2297, 0x22a5, 0x22c5, 0x2310,
-  0x2320, 0x2321, 0x2329, 0x232a, 0x2469, 0x2500, 0x2502, 0x250c, 0x2510, 0x2514,
-  0x2518, 0x251c, 0x2524, 0x252c, 0x2534, 0x253c, 0x2550, 0x2551, 0x2552, 0x2553,
-  0x2554, 0x2555, 0x2556, 0x2557, 0x2558, 0x2559, 0x255a, 0x255b, 0x255c, 0x255d,
-  0x255e, 0x255f, 0x2560, 0x2561, 0x2562, 0x2563, 0x2564, 0x2565, 0x2566, 0x2567,
-  0x2568, 0x2569, 0x256a, 0x256b, 0x256c, 0x2580, 0x2584, 0x2588, 0x258c, 0x2590,
-  0x2591, 0x2592, 0x2593, 0x25a0, 0x25b2, 0x25bc, 0x25c6, 0x25ca, 0x25cf, 0x25d7,
-  0x2605, 0x260e, 0x261b, 0x261e, 0x2660, 0x2663, 0x2665, 0x2666, 0x2701, 0x2702,
-  0x2703, 0x2704, 0x2706, 0x2707, 0x2708, 0x2709, 0x270c, 0x270d, 0x270e, 0x270f,
-  0x2710, 0x2711, 0x2712, 0x2713, 0x2714, 0x2715, 0x2716, 0x2717, 0x2718, 0x2719,
-  0x271a, 0x271b, 0x271c, 0x271d, 0x271e, 0x271f, 0x2720, 0x2721, 0x2722, 0x2723,
-  0x2724, 0x2725, 0x2726, 0x2727, 0x2729, 0x272a, 0x272b, 0x272c, 0x272d, 0x272e,
-  0x272f, 0x2730, 0x2731, 0x2732, 0x2733, 0x2734, 0x2735, 0x2736, 0x2737, 0x2738,
-  0x2739, 0x273a, 0x273b, 0x273c, 0x273d, 0x273e, 0x273f, 0x2740, 0x2741, 0x2742,
-  0x2743, 0x2744, 0x2745, 0x2746, 0x2747, 0x2748, 0x2749, 0x274a, 0x274b, 0x274d,
-  0x274f, 0x2750, 0x2751, 0x2752, 0x2756, 0x2758, 0x2759, 0x275a, 0x275b, 0x275c,
-  0x275d, 0x275e, 0x2761, 0x2762, 0x2763, 0x2764, 0x2765, 0x2766, 0x2767, 0x277f,
-  0x2789, 0x2793, 0x2794, 0x2798, 0x2799, 0x279a, 0x279b, 0x279c, 0x279d, 0x279e,
-  0x279f, 0x27a0, 0x27a1, 0x27a2, 0x27a3, 0x27a4, 0x27a5, 0x27a6, 0x27a7, 0x27a8,
-  0x27a9, 0x27aa, 0x27ab, 0x27ac, 0x27ad, 0x27ae, 0x27af, 0x27b1, 0x27b2, 0x27b3,
-  0x27b4, 0x27b5, 0x27b6, 0x27b7, 0x27b8, 0x27b9, 0x27ba, 0x27bb, 0x27bc, 0x27bd,
-  0x27be, 0x3000, 0x3001, 0x3002, 0x3003, 0x3008, 0x3009, 0x300a, 0x300b, 0x300c,
-  0x300d, 0x300e, 0x300f, 0x3010, 0x3011, 0x3012, 0x3014, 0x3015, 0x3016, 0x3017,
-  0x3018, 0x3019, 0x301a, 0x301b, 0x3036,
-  0xf6d9, 0xf6da, 0xf6db, 0xf8d7, 0xf8d8, 0xf8d9, 0xf8da, 0xf8db, 0xf8dc,
-  0xf8dd, 0xf8de, 0xf8df, 0xf8e0, 0xf8e1, 0xf8e2, 0xf8e3, 0xf8e4, 0xf8e5, 0xf8e6,
-  0xf8e7, 0xf8e8, 0xf8e9, 0xf8ea, 0xf8eb, 0xf8ec, 0xf8ed, 0xf8ee, 0xf8ef, 0xf8f0,
-  0xf8f1, 0xf8f2, 0xf8f3, 0xf8f4, 0xf8f5, 0xf8f6, 0xf8f7, 0xf8f8, 0xf8f9, 0xf8fa,
-  0xf8fb, 0xf8fc, 0xf8fd, 0xf8fe, 0xfe7c, 0xfe7d,
-          0xff01, 0xff02, 0xff03, 0xff04, 0xff05, 0xff06, 0xff07, 0xff08, 0xff09,
-  0xff09, 0xff0a, 0xff0b, 0xff0c, 0xff0d, 0xff0e, 0xff0f, 0xff1a, 0xff1b, 0xff1c,
-  0xff1d, 0xff1e, 0xff1f, 0xff20, 0xff3b, 0xff3c, 0xff3d, 0xff3e, 0xff40, 0xff5b,
-  0xff5c, 0xff5d, 0xff5e, 0xff5f, 0xff60, 0xff61, 0xff62, 0xff63, 0xff64, 0xff65,
-  0xffe0, 0xffe1, 0xffe2, 0xffe3, 0xffe4, 0xffe5, 0xffe6, 0xffe8, 0xffe9, 0xffea,
-  0xffeb, 0xffec, 0xffed, 0xffee,
-  0x01d6fc, 0x01d6fd, 0x01d6fe, 0x01d6ff, 0x01d700, 0x01d701, 0x01d702, 0x01d703,
-  0x01d704, 0x01d705, 0x01d706, 0x01d707, 0x01d708, 0x01d709, 0x01d70a, 0x01d70b,
-  0x01d70c, 0x01d70d, 0x01d70e, 0x01d70f, 0x01d710, 0x01d711, 0x01d712, 0x01d713,
-  0x01d714, 0x01d715, 0x01d716, 0x01d717, 0x01d718, 0x01d719, 0x01d71a, 0x01d71b,
-  0xc2a0, 0xe28087, 0xe280af, 0xe281a0, 0xefbbbf,
-);
-
-// utf8 version of above data
-global $UTF8_SPECIAL_CHARS2;
-if(empty($UTF8_SPECIAL_CHARS2)) $UTF8_SPECIAL_CHARS2 =
-    "\x1A".' !"#$%&\'()+,/;<=>?@[\]^`{|}~€Â‚ƒ„…†‡ˆ‰Š‹ŒÂŽ‘’“”•�'.
-    '�—˜™š›œÂžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½�'.
-    '�¿×÷ˇ˘˙˚˛˜Ẹ̈̀Ì̃̉΄΅·ϖְֱֲֳִֵֶַָֹֻּֽ־ֿ�'.
-    '�×ׂ׃׳״،؛؟ـًٌÙÙŽÙÙّْ٪฿‌â€â€Žâ€â€“—―‗‘’‚“â€ï¿½'.
-    '��†‡•…‰′″‹›â„₧₪₫€№℘™Ωℵâ†â†‘→↓↔↕↵'.
-    'â‡â‡‘⇒⇓⇔∀∂∃∅∆∇∈∉∋âˆâˆ‘−∕∗∙√âˆâˆžâˆ âˆ§âˆ¨ï¿½'.
-    '�∪∫∴∼≅≈≠≡≤≥⊂⊃⊄⊆⊇⊕⊗⊥⋅âŒâŒ âŒ¡ã€ˆã€‰â‘©â”€ï¿½'.
-    '��┌â”└┘├┤┬┴┼â•║╒╓╔╕╖╗╘╙╚╛╜â•╞╟╠'.
-    '╡╢╣╤╥╦╧╨╩╪╫╬▀▄█▌â–░▒▓■▲▼◆◊â—�'.
-    '�★☎☛☞♠♣♥♦âœâœ‚✃✄✆✇✈✉✌âœâœŽâœâœâœ‘✒✓✔✕�'.
-    '��✗✘✙✚✛✜âœâœžâœŸâœ âœ¡âœ¢âœ£âœ¤âœ¥âœ¦âœ§âœ©âœªâœ«âœ¬âœ­âœ®âœ¯âœ°âœ±'.
-    '✲✳✴✵✶✷✸✹✺✻✼✽✾✿â€ââ‚âƒâ„â…â†â‡âˆâ‰âŠâ‹ï¿½'.
-    '�âââ‘â’â–â˜â™âšâ›âœââžâ¡â¢â£â¤â¥â¦â§â¿âž‰âž“➔➘➙➚�'.
-    '��➜âžâžžâžŸâž âž¡âž¢âž£âž¤âž¥âž¦âž§âž¨âž©âžªâž«âž¬âž­âž®âž¯âž±âž²âž³âž´âžµâž¶'.
-    '➷➸➹➺➻➼➽➾'.
-    ' ã€ã€‚〃〈〉《》「ã€ã€Žã€ã€ã€‘〒〔〕〖〗〘〙〚〛〶'.
-    'ï£ï£žï£Ÿï£ ï£¡ï£¢ï££ï£¤ï£¥ï¿½'.
-    '�ﹼﹽ'.
-    'ï¼ï¼‚#$%&'()*+,ï¼ï¼Žï¼ï¼šï¼›ï¼œï¼ï¼žï¼Ÿï¼ ï¼»ï¼¼ï¼½ï¼¾ï½€ï½›ï½œï½ï½ž'.
-    '⦅⦆。「」、・¢£¬ ̄¦¥₩│←↑→↓■○'.
-    'ð›¼ð›½ð›¾ð›¿ðœ€ðœðœ‚ðœƒðœ„ðœ…ðœ†ðœ‡ðœˆðœ‰ðœŠðœ‹ðœŒðœðœŽðœðœðœ‘ðœ’ðœ“ðœ”ðœ•ðœ–ðœ—ðœ˜ðœ™ðœšðœ›'.
-    '   â ï»¿';
-
-/**
- * Romanization lookup table
- *
- * This lookup tables provides a way to transform strings written in a language
- * different from the ones based upon latin letters into plain ASCII.
- *
- * Please note: this is not a scientific transliteration table. It only works
- * oneway from nonlatin to ASCII and it works by simple character replacement
- * only. Specialities of each language are not supported.
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- * @author Vitaly Blokhin <vitinfo@vitn.com>
- * @link   http://www.uconv.com/translit.htm
- * @author Bisqwit <bisqwit@iki.fi>
- * @link   http://kanjidict.stc.cx/hiragana.php?src=2
- * @link   http://www.translatum.gr/converter/greek-transliteration.htm
- * @link   http://en.wikipedia.org/wiki/Royal_Thai_General_System_of_Transcription
- * @link   http://www.btranslations.com/resources/romanization/korean.asp
- * @author Arthit Suriyawongkul <arthit@gmail.com>
- * @author Denis Scheither <amorphis@uni-bremen.de>
- * @author Eivind Morland <eivind.morland@gmail.com>
- */
-global $UTF8_ROMANIZATION;
-if(empty($UTF8_ROMANIZATION)) $UTF8_ROMANIZATION = array(
-  // scandinavian - differs from what we do in deaccent
-  'å'=>'a','Å'=>'A','ä'=>'a','Ä'=>'A','ö'=>'o','Ö'=>'O',
-
-  //russian cyrillic
-  'а'=>'a','Ð'=>'A','б'=>'b','Б'=>'B','в'=>'v','Ð’'=>'V','г'=>'g','Г'=>'G',
-  'д'=>'d','Д'=>'D','е'=>'e','Е'=>'E','Ñ‘'=>'jo','Ð'=>'Jo','ж'=>'zh','Ж'=>'Zh',
-  'з'=>'z','З'=>'Z','и'=>'i','И'=>'I','й'=>'j','Й'=>'J','к'=>'k','К'=>'K',
-  'л'=>'l','Л'=>'L','м'=>'m','М'=>'M','н'=>'n','Ð'=>'N','о'=>'o','О'=>'O',
-  'п'=>'p','П'=>'P','Ñ€'=>'r','Р'=>'R','Ñ'=>'s','С'=>'S','Ñ‚'=>'t','Т'=>'T',
-  'у'=>'u','У'=>'U','ф'=>'f','Ф'=>'F','х'=>'x','Х'=>'X','ц'=>'c','Ц'=>'C',
-  'ч'=>'ch','Ч'=>'Ch','ш'=>'sh','Ш'=>'Sh','щ'=>'sch','Щ'=>'Sch','ъ'=>'',
-  'Ъ'=>'','Ñ‹'=>'y','Ы'=>'Y','ÑŒ'=>'','Ь'=>'','Ñ'=>'eh','Э'=>'Eh','ÑŽ'=>'ju',
-  'Ю'=>'Ju','Ñ'=>'ja','Я'=>'Ja',
-  // Ukrainian cyrillic
-  'Ò'=>'Gh','Ò‘'=>'gh','Є'=>'Je','Ñ”'=>'je','І'=>'I','Ñ–'=>'i','Ї'=>'Ji','Ñ—'=>'ji',
-  // Georgian
-  'áƒ'=>'a','ბ'=>'b','გ'=>'g','დ'=>'d','ე'=>'e','ვ'=>'v','ზ'=>'z','თ'=>'th',
-  'ი'=>'i','კ'=>'p','ლ'=>'l','მ'=>'m','ნ'=>'n','áƒ'=>'o','პ'=>'p','ჟ'=>'zh',
-  'რ'=>'r','ს'=>'s','ტ'=>'t','უ'=>'u','ფ'=>'ph','ქ'=>'kh','ღ'=>'gh','ყ'=>'q',
-  'შ'=>'sh','ჩ'=>'ch','ც'=>'c','ძ'=>'dh','წ'=>'w','ჭ'=>'j','ხ'=>'x','ჯ'=>'jh',
-  'ჰ'=>'xh',
-  //Sanskrit
-  'अ'=>'a','आ'=>'ah','इ'=>'i','ई'=>'ih','उ'=>'u','ऊ'=>'uh','ऋ'=>'ry',
-  'ॠ'=>'ryh','ऌ'=>'ly','ॡ'=>'lyh','à¤'=>'e','à¤'=>'ay','ओ'=>'o','औ'=>'aw',
-  'अं'=>'amh','अः'=>'aq','क'=>'k','ख'=>'kh','ग'=>'g','घ'=>'gh','ङ'=>'nh',
-  'च'=>'c','छ'=>'ch','ज'=>'j','à¤'=>'jh','ञ'=>'ny','ट'=>'tq','ठ'=>'tqh',
-  'ड'=>'dq','ढ'=>'dqh','ण'=>'nq','त'=>'t','थ'=>'th','द'=>'d','ध'=>'dh',
-  'न'=>'n','प'=>'p','फ'=>'ph','ब'=>'b','भ'=>'bh','म'=>'m','य'=>'z','र'=>'r',
-  'ल'=>'l','व'=>'v','श'=>'sh','ष'=>'sqh','स'=>'s','ह'=>'x',
-  //Sanskrit diacritics
-  'Ā'=>'A','Ī'=>'I','Ū'=>'U','Ṛ'=>'R','Ṝ'=>'R','Ṅ'=>'N','Ñ'=>'N','Ṭ'=>'T',
-  'Ḍ'=>'D','Ṇ'=>'N','Ś'=>'S','Ṣ'=>'S','Ṁ'=>'M','Ṃ'=>'M','Ḥ'=>'H','Ḷ'=>'L','Ḹ'=>'L',
-  'Ä'=>'a','Ä«'=>'i','Å«'=>'u','á¹›'=>'r','á¹'=>'r','á¹…'=>'n','ñ'=>'n','á¹­'=>'t',
-  'á¸'=>'d','ṇ'=>'n','Å›'=>'s','á¹£'=>'s','á¹'=>'m','ṃ'=>'m','ḥ'=>'h','ḷ'=>'l','ḹ'=>'l',
-  //Hebrew
-  '×'=>'a', 'ב'=>'b','×’'=>'g','ד'=>'d','×”'=>'h','ו'=>'v','×–'=>'z','×—'=>'kh','ט'=>'th',
-  '×™'=>'y','ך'=>'h','×›'=>'k','ל'=>'l','×'=>'m','מ'=>'m','ן'=>'n','× '=>'n',
-  'ס'=>'s','ע'=>'ah','ף'=>'f','פ'=>'p','ץ'=>'c','צ'=>'c','ק'=>'q','ר'=>'r',
-  'ש'=>'sh','ת'=>'t',
-  //Arabic
-  'ا'=>'a','ب'=>'b','ت'=>'t','ث'=>'th','ج'=>'g','ح'=>'xh','خ'=>'x','د'=>'d',
-  'ذ'=>'dh','ر'=>'r','ز'=>'z','س'=>'s','ش'=>'sh','ص'=>'s\'','ض'=>'d\'',
-  'Ø·'=>'t\'','ظ'=>'z\'','ع'=>'y','غ'=>'gh','Ù'=>'f','Ù‚'=>'q','Ùƒ'=>'k',
-  'Ù„'=>'l','Ù…'=>'m','Ù†'=>'n','Ù‡'=>'x\'','Ùˆ'=>'u','ÙŠ'=>'i',
-
-  // Japanese characters  (last update: 2008-05-09)
-
-  // Japanese hiragana
-
-  // 3 character syllables, 㣠doubles the consonant after
-  'ã£ã¡ã‚ƒ'=>'ccha','ã£ã¡ã‡'=>'cche','ã£ã¡ã‚‡'=>'ccho','ã£ã¡ã‚…'=>'cchu',
-  'ã£ã³ã‚ƒ'=>'bbya','ã£ã³ã‡'=>'bbye','ã£ã³ãƒ'=>'bbyi','ã£ã³ã‚‡'=>'bbyo','ã£ã³ã‚…'=>'bbyu',
-  'ã£ã´ã‚ƒ'=>'ppya','ã£ã´ã‡'=>'ppye','ã£ã´ãƒ'=>'ppyi','ã£ã´ã‚‡'=>'ppyo','ã£ã´ã‚…'=>'ppyu',
-  'ã£ã¡ã‚ƒ'=>'ccha','ã£ã¡ã‡'=>'cche','ã£ã¡'=>'cchi','ã£ã¡ã‚‡'=>'ccho','ã£ã¡ã‚…'=>'cchu',
-  // 'ã£ã²ã‚ƒ'=>'hya','ã£ã²ã‡'=>'hye','ã£ã²ãƒ'=>'hyi','ã£ã²ã‚‡'=>'hyo','ã£ã²ã‚…'=>'hyu',
-  'ã£ãゃ'=>'kkya','ã£ãã‡'=>'kkye','ã£ããƒ'=>'kkyi','ã£ãょ'=>'kkyo','ã£ãã‚…'=>'kkyu',
-  'ã£ãŽã‚ƒ'=>'ggya','ã£ãŽã‡'=>'ggye','ã£ãŽãƒ'=>'ggyi','ã£ãŽã‚‡'=>'ggyo','ã£ãŽã‚…'=>'ggyu',
-  'ã£ã¿ã‚ƒ'=>'mmya','ã£ã¿ã‡'=>'mmye','ã£ã¿ãƒ'=>'mmyi','ã£ã¿ã‚‡'=>'mmyo','ã£ã¿ã‚…'=>'mmyu',
-  'ã£ã«ã‚ƒ'=>'nnya','ã£ã«ã‡'=>'nnye','ã£ã«ãƒ'=>'nnyi','ã£ã«ã‚‡'=>'nnyo','ã£ã«ã‚…'=>'nnyu',
-  'ã£ã‚Šã‚ƒ'=>'rrya','ã£ã‚Šã‡'=>'rrye','ã£ã‚Šãƒ'=>'rryi','ã£ã‚Šã‚‡'=>'rryo','ã£ã‚Šã‚…'=>'rryu',
-  'ã£ã—ゃ'=>'ssha','ã£ã—ã‡'=>'sshe','ã£ã—'=>'sshi','ã£ã—ょ'=>'ssho','ã£ã—ã‚…'=>'sshu',
-
-  // seperate hiragana 'n' ('n' + 'i' != 'ni', normally we would write "kon'nichi wa" but the apostrophe would be converted to _ anyway)
-  'ã‚“ã‚'=>'n_a','ã‚“ãˆ'=>'n_e','ã‚“ã„'=>'n_i','ã‚“ãŠ'=>'n_o','ã‚“ã†'=>'n_u',
-  'んや'=>'n_ya','んよ'=>'n_yo','んゆ'=>'n_yu',
-
-   // 2 character syllables - normal
-  'ãµã'=>'fa','ãµã‡'=>'fe','ãµãƒ'=>'fi','ãµã‰'=>'fo',
-  'ã¡ã‚ƒ'=>'cha','ã¡ã‡'=>'che','ã¡'=>'chi','ã¡ã‚‡'=>'cho','ã¡ã‚…'=>'chu',
-  'ã²ã‚ƒ'=>'hya','ã²ã‡'=>'hye','ã²ãƒ'=>'hyi','ã²ã‚‡'=>'hyo','ã²ã‚…'=>'hyu',
-  'ã³ã‚ƒ'=>'bya','ã³ã‡'=>'bye','ã³ãƒ'=>'byi','ã³ã‚‡'=>'byo','ã³ã‚…'=>'byu',
-  'ã´ã‚ƒ'=>'pya','ã´ã‡'=>'pye','ã´ãƒ'=>'pyi','ã´ã‚‡'=>'pyo','ã´ã‚…'=>'pyu',
-  'ãゃ'=>'kya','ãã‡'=>'kye','ããƒ'=>'kyi','ãょ'=>'kyo','ãã‚…'=>'kyu',
-  'ãŽã‚ƒ'=>'gya','ãŽã‡'=>'gye','ãŽãƒ'=>'gyi','ãŽã‚‡'=>'gyo','ãŽã‚…'=>'gyu',
-  'ã¿ã‚ƒ'=>'mya','ã¿ã‡'=>'mye','ã¿ãƒ'=>'myi','ã¿ã‚‡'=>'myo','ã¿ã‚…'=>'myu',
-  'ã«ã‚ƒ'=>'nya','ã«ã‡'=>'nye','ã«ãƒ'=>'nyi','ã«ã‚‡'=>'nyo','ã«ã‚…'=>'nyu',
-  'りゃ'=>'rya','りã‡'=>'rye','りãƒ'=>'ryi','りょ'=>'ryo','りゅ'=>'ryu',
-  'ã—ゃ'=>'sha','ã—ã‡'=>'she','ã—'=>'shi','ã—ょ'=>'sho','ã—ã‚…'=>'shu',
-  'ã˜ã‚ƒ'=>'ja','ã˜ã‡'=>'je','ã˜ã‚‡'=>'jo','ã˜ã‚…'=>'ju',
-  'ã†ã‡'=>'we','ã†ãƒ'=>'wi',
-  'ã„ã‡'=>'ye',
-
-  // 2 character syllables, 㣠doubles the consonant after
-  'ã£ã°'=>'bba','ã£ã¹'=>'bbe','ã£ã³'=>'bbi','ã£ã¼'=>'bbo','ã£ã¶'=>'bbu',
-  'ã£ã±'=>'ppa','ã£ãº'=>'ppe','ã£ã´'=>'ppi','ã£ã½'=>'ppo','ã£ã·'=>'ppu',
-  'ã£ãŸ'=>'tta','ã£ã¦'=>'tte','ã£ã¡'=>'cchi','ã£ã¨'=>'tto','ã£ã¤'=>'ttsu',
-  'ã£ã '=>'dda','ã£ã§'=>'dde','ã£ã¢'=>'ddi','ã£ã©'=>'ddo','ã£ã¥'=>'ddu',
-  'ã£ãŒ'=>'gga','ã£ã’'=>'gge','ã£ãŽ'=>'ggi','ã£ã”'=>'ggo','ã£ã'=>'ggu',
-  'ã£ã‹'=>'kka','ã£ã‘'=>'kke','ã£ã'=>'kki','ã£ã“'=>'kko','ã£ã'=>'kku',
-  'ã£ã¾'=>'mma','ã£ã‚'=>'mme','ã£ã¿'=>'mmi','ã£ã‚‚'=>'mmo','ã£ã‚€'=>'mmu',
-  'ã£ãª'=>'nna','ã£ã­'=>'nne','ã£ã«'=>'nni','ã£ã®'=>'nno','ã£ã¬'=>'nnu',
-  'ã£ã‚‰'=>'rra','ã£ã‚Œ'=>'rre','ã£ã‚Š'=>'rri','ã£ã‚'=>'rro','ã£ã‚‹'=>'rru',
-  'ã£ã•'=>'ssa','ã£ã›'=>'sse','ã£ã—'=>'sshi','ã£ã'=>'sso','ã£ã™'=>'ssu',
-  'ã£ã–'=>'zza','ã£ãœ'=>'zze','ã£ã˜'=>'jji','ã£ãž'=>'zzo','ã£ãš'=>'zzu',
-
-  // 1 character syllabels
-  'ã‚'=>'a','ãˆ'=>'e','ã„'=>'i','ãŠ'=>'o','ã†'=>'u','ã‚“'=>'n',
-  'ã¯'=>'ha','ã¸'=>'he','ã²'=>'hi','ã»'=>'ho','ãµ'=>'fu',
-  'ã°'=>'ba','ã¹'=>'be','ã³'=>'bi','ã¼'=>'bo','ã¶'=>'bu',
-  'ã±'=>'pa','ãº'=>'pe','ã´'=>'pi','ã½'=>'po','ã·'=>'pu',
-  'ãŸ'=>'ta','ã¦'=>'te','ã¡'=>'chi','ã¨'=>'to','ã¤'=>'tsu',
-  'ã '=>'da','ã§'=>'de','ã¢'=>'di','ã©'=>'do','ã¥'=>'du',
-  'ãŒ'=>'ga','ã’'=>'ge','ãŽ'=>'gi','ã”'=>'go','ã'=>'gu',
-  'ã‹'=>'ka','ã‘'=>'ke','ã'=>'ki','ã“'=>'ko','ã'=>'ku',
-  'ã¾'=>'ma','ã‚'=>'me','ã¿'=>'mi','ã‚‚'=>'mo','ã‚€'=>'mu',
-  'ãª'=>'na','ã­'=>'ne','ã«'=>'ni','ã®'=>'no','ã¬'=>'nu',
-  'ら'=>'ra','れ'=>'re','り'=>'ri','ã‚'=>'ro','ã‚‹'=>'ru',
-  'ã•'=>'sa','ã›'=>'se','ã—'=>'shi','ã'=>'so','ã™'=>'su',
-  'ã‚'=>'wa','ã‚’'=>'wo',
-  'ã–'=>'za','ãœ'=>'ze','ã˜'=>'ji','ãž'=>'zo','ãš'=>'zu',
-  'や'=>'ya','よ'=>'yo','ゆ'=>'yu',
-  // old characters
-  'ã‚‘'=>'we','ã‚'=>'wi',
-
-  //  convert what's left (probably only kicks in when something's missing above)
-  // 'ã'=>'a','ã‡'=>'e','ãƒ'=>'i','ã‰'=>'o','ã…'=>'u',
-  // 'ゃ'=>'ya','ょ'=>'yo','ゅ'=>'yu',
-
-  // never seen one of those (disabled for the moment)
-  // 'ヴã'=>'va','ヴã‡'=>'ve','ヴãƒ'=>'vi','ヴã‰'=>'vo','ヴ'=>'vu',
-  // 'ã§ã‚ƒ'=>'dha','ã§ã‡'=>'dhe','ã§ãƒ'=>'dhi','ã§ã‚‡'=>'dho','ã§ã‚…'=>'dhu',
-  // 'ã©ã'=>'dwa','ã©ã‡'=>'dwe','ã©ãƒ'=>'dwi','ã©ã‰'=>'dwo','ã©ã…'=>'dwu',
-  // 'ã¢ã‚ƒ'=>'dya','ã¢ã‡'=>'dye','ã¢ãƒ'=>'dyi','ã¢ã‚‡'=>'dyo','ã¢ã‚…'=>'dyu',
-  // 'ãµã'=>'fwa','ãµã‡'=>'fwe','ãµãƒ'=>'fwi','ãµã‰'=>'fwo','ãµã…'=>'fwu',
-  // 'ãµã‚ƒ'=>'fya','ãµã‡'=>'fye','ãµãƒ'=>'fyi','ãµã‚‡'=>'fyo','ãµã‚…'=>'fyu',
-  // 'ã™ã'=>'swa','ã™ã‡'=>'swe','ã™ãƒ'=>'swi','ã™ã‰'=>'swo','ã™ã…'=>'swu',
-  // 'ã¦ã‚ƒ'=>'tha','ã¦ã‡'=>'the','ã¦ãƒ'=>'thi','ã¦ã‚‡'=>'tho','ã¦ã‚…'=>'thu',
-  // 'ã¤ã‚ƒ'=>'tsa','ã¤ã‡'=>'tse','ã¤ãƒ'=>'tsi','ã¤ã‚‡'=>'tso','ã¤'=>'tsu',
-  // 'ã¨ã'=>'twa','ã¨ã‡'=>'twe','ã¨ãƒ'=>'twi','ã¨ã‰'=>'two','ã¨ã…'=>'twu',
-  // 'ヴゃ'=>'vya','ヴã‡'=>'vye','ヴãƒ'=>'vyi','ヴょ'=>'vyo','ヴゅ'=>'vyu',
-  // 'ã†ã'=>'wha','ã†ã‡'=>'whe','ã†ãƒ'=>'whi','ã†ã‰'=>'who','ã†ã…'=>'whu',
-  // 'ã˜ã‚ƒ'=>'zha','ã˜ã‡'=>'zhe','ã˜ãƒ'=>'zhi','ã˜ã‚‡'=>'zho','ã˜ã‚…'=>'zhu',
-  // 'ã˜ã‚ƒ'=>'zya','ã˜ã‡'=>'zye','ã˜ãƒ'=>'zyi','ã˜ã‚‡'=>'zyo','ã˜ã‚…'=>'zyu',
-
-  // 'spare' characters from other romanization systems
-  // 'ã '=>'da','ã§'=>'de','ã¢'=>'di','ã©'=>'do','ã¥'=>'du',
-  // 'ら'=>'la','れ'=>'le','り'=>'li','ã‚'=>'lo','ã‚‹'=>'lu',
-  // 'ã•'=>'sa','ã›'=>'se','ã—'=>'si','ã'=>'so','ã™'=>'su',
-  // 'ã¡ã‚ƒ'=>'cya','ã¡ã‡'=>'cye','ã¡ãƒ'=>'cyi','ã¡ã‚‡'=>'cyo','ã¡ã‚…'=>'cyu',
-  //'ã˜ã‚ƒ'=>'jya','ã˜ã‡'=>'jye','ã˜ãƒ'=>'jyi','ã˜ã‚‡'=>'jyo','ã˜ã‚…'=>'jyu',
-  //'りゃ'=>'lya','りã‡'=>'lye','りãƒ'=>'lyi','りょ'=>'lyo','りゅ'=>'lyu',
-  //'ã—ゃ'=>'sya','ã—ã‡'=>'sye','ã—ãƒ'=>'syi','ã—ょ'=>'syo','ã—ã‚…'=>'syu',
-  //'ã¡ã‚ƒ'=>'tya','ã¡ã‡'=>'tye','ã¡ãƒ'=>'tyi','ã¡ã‚‡'=>'tyo','ã¡ã‚…'=>'tyu',
-  //'ã—'=>'ci',,ã„'=>'yi','ã¢'=>'dzi',
-  //'ã£ã˜ã‚ƒ'=>'jja','ã£ã˜ã‡'=>'jje','ã£ã˜'=>'jji','ã£ã˜ã‚‡'=>'jjo','ã£ã˜ã‚…'=>'jju',
-
-
-  // Japanese katakana
-
-  // 4 character syllables: ッ doubles the consonant after, ー doubles the vowel before (usualy written with macron, but we don't want that in our URLs)
-  'ッビャー'=>'bbyaa','ッビェー'=>'bbyee','ッビィー'=>'bbyii','ッビョー'=>'bbyoo','ッビュー'=>'bbyuu',
-  'ッピャー'=>'ppyaa','ッピェー'=>'ppyee','ッピィー'=>'ppyii','ッピョー'=>'ppyoo','ッピュー'=>'ppyuu',
-  'ッキャー'=>'kkyaa','ッキェー'=>'kkyee','ッキィー'=>'kkyii','ッキョー'=>'kkyoo','ッキュー'=>'kkyuu',
-  'ッギャー'=>'ggyaa','ッギェー'=>'ggyee','ッギィー'=>'ggyii','ッギョー'=>'ggyoo','ッギュー'=>'ggyuu',
-  'ッミャー'=>'mmyaa','ッミェー'=>'mmyee','ッミィー'=>'mmyii','ッミョー'=>'mmyoo','ッミュー'=>'mmyuu',
-  'ッニャー'=>'nnyaa','ッニェー'=>'nnyee','ッニィー'=>'nnyii','ッニョー'=>'nnyoo','ッニュー'=>'nnyuu',
-  'ッリャー'=>'rryaa','ッリェー'=>'rryee','ッリィー'=>'rryii','ッリョー'=>'rryoo','ッリュー'=>'rryuu',
-  'ッシャー'=>'sshaa','ッシェー'=>'sshee','ッシー'=>'sshii','ッショー'=>'sshoo','ッシュー'=>'sshuu',
-  'ッãƒãƒ£ãƒ¼'=>'cchaa','ッãƒã‚§ãƒ¼'=>'cchee','ッãƒãƒ¼'=>'cchii','ッãƒãƒ§ãƒ¼'=>'cchoo','ッãƒãƒ¥ãƒ¼'=>'cchuu',
-  'ッティー'=>'ttii',
-  'ッヂィー'=>'ddii',
-
-  // 3 character syllables - doubled vowels
-  'ファー'=>'faa','フェー'=>'fee','フィー'=>'fii','フォー'=>'foo',
-  'フャー'=>'fyaa','フェー'=>'fyee','フィー'=>'fyii','フョー'=>'fyoo','フュー'=>'fyuu',
-  'ヒャー'=>'hyaa','ヒェー'=>'hyee','ヒィー'=>'hyii','ヒョー'=>'hyoo','ヒュー'=>'hyuu',
-  'ビャー'=>'byaa','ビェー'=>'byee','ビィー'=>'byii','ビョー'=>'byoo','ビュー'=>'byuu',
-  'ピャー'=>'pyaa','ピェー'=>'pyee','ピィー'=>'pyii','ピョー'=>'pyoo','ピュー'=>'pyuu',
-  'キャー'=>'kyaa','キェー'=>'kyee','キィー'=>'kyii','キョー'=>'kyoo','キュー'=>'kyuu',
-  'ギャー'=>'gyaa','ギェー'=>'gyee','ギィー'=>'gyii','ギョー'=>'gyoo','ギュー'=>'gyuu',
-  'ミャー'=>'myaa','ミェー'=>'myee','ミィー'=>'myii','ミョー'=>'myoo','ミュー'=>'myuu',
-  'ニャー'=>'nyaa','ニェー'=>'nyee','ニィー'=>'nyii','ニョー'=>'nyoo','ニュー'=>'nyuu',
-  'リャー'=>'ryaa','リェー'=>'ryee','リィー'=>'ryii','リョー'=>'ryoo','リュー'=>'ryuu',
-  'シャー'=>'shaa','シェー'=>'shee','シー'=>'shii','ショー'=>'shoo','シュー'=>'shuu',
-  'ジャー'=>'jaa','ジェー'=>'jee','ジー'=>'jii','ジョー'=>'joo','ジュー'=>'juu',
-  'スァー'=>'swaa','スェー'=>'swee','スィー'=>'swii','スォー'=>'swoo','スゥー'=>'swuu',
-  'デァー'=>'daa','デェー'=>'dee','ディー'=>'dii','デォー'=>'doo','デゥー'=>'duu',
-  'ãƒãƒ£ãƒ¼'=>'chaa','ãƒã‚§ãƒ¼'=>'chee','ãƒãƒ¼'=>'chii','ãƒãƒ§ãƒ¼'=>'choo','ãƒãƒ¥ãƒ¼'=>'chuu',
-  'ヂャー'=>'dyaa','ヂェー'=>'dyee','ヂィー'=>'dyii','ヂョー'=>'dyoo','ヂュー'=>'dyuu',
-  'ツャー'=>'tsaa','ツェー'=>'tsee','ツィー'=>'tsii','ツョー'=>'tsoo','ツー'=>'tsuu',
-  'トァー'=>'twaa','トェー'=>'twee','トィー'=>'twii','トォー'=>'twoo','トゥー'=>'twuu',
-  'ドァー'=>'dwaa','ドェー'=>'dwee','ドィー'=>'dwii','ドォー'=>'dwoo','ドゥー'=>'dwuu',
-  'ウァー'=>'whaa','ウェー'=>'whee','ウィー'=>'whii','ウォー'=>'whoo','ウゥー'=>'whuu',
-  'ヴャー'=>'vyaa','ヴェー'=>'vyee','ヴィー'=>'vyii','ヴョー'=>'vyoo','ヴュー'=>'vyuu',
-  'ヴァー'=>'vaa','ヴェー'=>'vee','ヴィー'=>'vii','ヴォー'=>'voo','ヴー'=>'vuu',
-  'ウェー'=>'wee','ウィー'=>'wii',
-  'イェー'=>'yee',
-  'ティー'=>'tii',
-  'ヂィー'=>'dii',
-
-  // 3 character syllables - doubled consonants
-  'ッビャ'=>'bbya','ッビェ'=>'bbye','ッビィ'=>'bbyi','ッビョ'=>'bbyo','ッビュ'=>'bbyu',
-  'ッピャ'=>'ppya','ッピェ'=>'ppye','ッピィ'=>'ppyi','ッピョ'=>'ppyo','ッピュ'=>'ppyu',
-  'ッキャ'=>'kkya','ッキェ'=>'kkye','ッキィ'=>'kkyi','ッキョ'=>'kkyo','ッキュ'=>'kkyu',
-  'ッギャ'=>'ggya','ッギェ'=>'ggye','ッギィ'=>'ggyi','ッギョ'=>'ggyo','ッギュ'=>'ggyu',
-  'ッミャ'=>'mmya','ッミェ'=>'mmye','ッミィ'=>'mmyi','ッミョ'=>'mmyo','ッミュ'=>'mmyu',
-  'ッニャ'=>'nnya','ッニェ'=>'nnye','ッニィ'=>'nnyi','ッニョ'=>'nnyo','ッニュ'=>'nnyu',
-  'ッリャ'=>'rrya','ッリェ'=>'rrye','ッリィ'=>'rryi','ッリョ'=>'rryo','ッリュ'=>'rryu',
-  'ッシャ'=>'ssha','ッシェ'=>'sshe','ッシ'=>'sshi','ッショ'=>'ssho','ッシュ'=>'sshu',
-  'ッãƒãƒ£'=>'ccha','ッãƒã‚§'=>'cche','ッãƒ'=>'cchi','ッãƒãƒ§'=>'ccho','ッãƒãƒ¥'=>'cchu',
-  'ッティ'=>'tti',
-  'ッヂィ'=>'ddi',
-
-  // 3 character syllables - doubled vowel and consonants
-  'ッãƒãƒ¼'=>'bbaa','ッベー'=>'bbee','ッビー'=>'bbii','ッボー'=>'bboo','ッブー'=>'bbuu',
-  'ッパー'=>'ppaa','ッペー'=>'ppee','ッピー'=>'ppii','ッãƒãƒ¼'=>'ppoo','ップー'=>'ppuu',
-  'ッケー'=>'kkee','ッキー'=>'kkii','ッコー'=>'kkoo','ックー'=>'kkuu','ッカー'=>'kkaa',
-  'ッガー'=>'ggaa','ッゲー'=>'ggee','ッギー'=>'ggii','ッゴー'=>'ggoo','ッグー'=>'gguu',
-  'ッマー'=>'maa','ッメー'=>'mee','ッミー'=>'mii','ッモー'=>'moo','ッムー'=>'muu',
-  'ッナー'=>'nnaa','ッãƒãƒ¼'=>'nnee','ッニー'=>'nnii','ッノー'=>'nnoo','ッヌー'=>'nnuu',
-  'ッラー'=>'rraa','ッレー'=>'rree','ッリー'=>'rrii','ッロー'=>'rroo','ッルー'=>'rruu',
-  'ッサー'=>'ssaa','ッセー'=>'ssee','ッシー'=>'sshii','ッソー'=>'ssoo','ッスー'=>'ssuu',
-  'ッザー'=>'zzaa','ッゼー'=>'zzee','ッジー'=>'jjii','ッゾー'=>'zzoo','ッズー'=>'zzuu',
-  'ッター'=>'ttaa','ッテー'=>'ttee','ッãƒãƒ¼'=>'chii','ットー'=>'ttoo','ッツー'=>'ttsuu',
-  'ッダー'=>'ddaa','ッデー'=>'ddee','ッヂー'=>'ddii','ッドー'=>'ddoo','ッヅー'=>'dduu',
-
-  // 2 character syllables - normal
-  'ファ'=>'fa','フェ'=>'fe','フィ'=>'fi','フォ'=>'fo','フゥ'=>'fu',
-  // 'フャ'=>'fya','フェ'=>'fye','フィ'=>'fyi','フョ'=>'fyo','フュ'=>'fyu',
-  'フャ'=>'fa','フェ'=>'fe','フィ'=>'fi','フョ'=>'fo','フュ'=>'fu',
-  'ヒャ'=>'hya','ヒェ'=>'hye','ヒィ'=>'hyi','ヒョ'=>'hyo','ヒュ'=>'hyu',
-  'ビャ'=>'bya','ビェ'=>'bye','ビィ'=>'byi','ビョ'=>'byo','ビュ'=>'byu',
-  'ピャ'=>'pya','ピェ'=>'pye','ピィ'=>'pyi','ピョ'=>'pyo','ピュ'=>'pyu',
-  'キャ'=>'kya','キェ'=>'kye','キィ'=>'kyi','キョ'=>'kyo','キュ'=>'kyu',
-  'ギャ'=>'gya','ギェ'=>'gye','ギィ'=>'gyi','ギョ'=>'gyo','ギュ'=>'gyu',
-  'ミャ'=>'mya','ミェ'=>'mye','ミィ'=>'myi','ミョ'=>'myo','ミュ'=>'myu',
-  'ニャ'=>'nya','ニェ'=>'nye','ニィ'=>'nyi','ニョ'=>'nyo','ニュ'=>'nyu',
-  'リャ'=>'rya','リェ'=>'rye','リィ'=>'ryi','リョ'=>'ryo','リュ'=>'ryu',
-  'シャ'=>'sha','シェ'=>'she','ショ'=>'sho','シュ'=>'shu',
-  'ジャ'=>'ja','ジェ'=>'je','ジョ'=>'jo','ジュ'=>'ju',
-  'スァ'=>'swa','スェ'=>'swe','スィ'=>'swi','スォ'=>'swo','スゥ'=>'swu',
-  'デァ'=>'da','デェ'=>'de','ディ'=>'di','デォ'=>'do','デゥ'=>'du',
-  'ãƒãƒ£'=>'cha','ãƒã‚§'=>'che','ãƒ'=>'chi','ãƒãƒ§'=>'cho','ãƒãƒ¥'=>'chu',
-  // 'ヂャ'=>'dya','ヂェ'=>'dye','ヂィ'=>'dyi','ヂョ'=>'dyo','ヂュ'=>'dyu',
-  'ツャ'=>'tsa','ツェ'=>'tse','ツィ'=>'tsi','ツョ'=>'tso','ツ'=>'tsu',
-  'トァ'=>'twa','トェ'=>'twe','トィ'=>'twi','トォ'=>'two','トゥ'=>'twu',
-  'ドァ'=>'dwa','ドェ'=>'dwe','ドィ'=>'dwi','ドォ'=>'dwo','ドゥ'=>'dwu',
-  'ウァ'=>'wha','ウェ'=>'whe','ウィ'=>'whi','ウォ'=>'who','ウゥ'=>'whu',
-  'ヴャ'=>'vya','ヴェ'=>'vye','ヴィ'=>'vyi','ヴョ'=>'vyo','ヴュ'=>'vyu',
-  'ヴァ'=>'va','ヴェ'=>'ve','ヴィ'=>'vi','ヴォ'=>'vo','ヴ'=>'vu',
-  'ウェ'=>'we','ウィ'=>'wi',
-  'イェ'=>'ye',
-  'ティ'=>'ti',
-  'ヂィ'=>'di',
-
-  // 2 character syllables - doubled vocal
-  'アー'=>'aa','エー'=>'ee','イー'=>'ii','オー'=>'oo','ウー'=>'uu',
-  'ダー'=>'daa','デー'=>'dee','ヂー'=>'dii','ドー'=>'doo','ヅー'=>'duu',
-  'ãƒãƒ¼'=>'haa','ヘー'=>'hee','ヒー'=>'hii','ホー'=>'hoo','フー'=>'fuu',
-  'ãƒãƒ¼'=>'baa','ベー'=>'bee','ビー'=>'bii','ボー'=>'boo','ブー'=>'buu',
-  'パー'=>'paa','ペー'=>'pee','ピー'=>'pii','ãƒãƒ¼'=>'poo','プー'=>'puu',
-  'ケー'=>'kee','キー'=>'kii','コー'=>'koo','クー'=>'kuu','カー'=>'kaa',
-  'ガー'=>'gaa','ゲー'=>'gee','ギー'=>'gii','ゴー'=>'goo','グー'=>'guu',
-  'マー'=>'maa','メー'=>'mee','ミー'=>'mii','モー'=>'moo','ムー'=>'muu',
-  'ナー'=>'naa','ãƒãƒ¼'=>'nee','ニー'=>'nii','ノー'=>'noo','ヌー'=>'nuu',
-  'ラー'=>'raa','レー'=>'ree','リー'=>'rii','ロー'=>'roo','ルー'=>'ruu',
-  'サー'=>'saa','セー'=>'see','シー'=>'shii','ソー'=>'soo','スー'=>'suu',
-  'ザー'=>'zaa','ゼー'=>'zee','ジー'=>'jii','ゾー'=>'zoo','ズー'=>'zuu',
-  'ター'=>'taa','テー'=>'tee','ãƒãƒ¼'=>'chii','トー'=>'too','ツー'=>'tsuu',
-  'ワー'=>'waa','ヲー'=>'woo',
-  'ヤー'=>'yaa','ヨー'=>'yoo','ユー'=>'yuu',
-  'ヵー'=>'kaa','ヶー'=>'kee',
-  // old characters
-  'ヱー'=>'wee','ヰー'=>'wii',
-
-  // seperate katakana 'n'
-  'ンア'=>'n_a','ンエ'=>'n_e','ンイ'=>'n_i','ンオ'=>'n_o','ンウ'=>'n_u',
-  'ンヤ'=>'n_ya','ンヨ'=>'n_yo','ンユ'=>'n_yu',
-
-  // 2 character syllables - doubled consonants
-  'ッãƒ'=>'bba','ッベ'=>'bbe','ッビ'=>'bbi','ッボ'=>'bbo','ッブ'=>'bbu',
-  'ッパ'=>'ppa','ッペ'=>'ppe','ッピ'=>'ppi','ッãƒ'=>'ppo','ップ'=>'ppu',
-  'ッケ'=>'kke','ッキ'=>'kki','ッコ'=>'kko','ック'=>'kku','ッカ'=>'kka',
-  'ッガ'=>'gga','ッゲ'=>'gge','ッギ'=>'ggi','ッゴ'=>'ggo','ッグ'=>'ggu',
-  'ッマ'=>'ma','ッメ'=>'me','ッミ'=>'mi','ッモ'=>'mo','ッム'=>'mu',
-  'ッナ'=>'nna','ッãƒ'=>'nne','ッニ'=>'nni','ッノ'=>'nno','ッヌ'=>'nnu',
-  'ッラ'=>'rra','ッレ'=>'rre','ッリ'=>'rri','ッロ'=>'rro','ッル'=>'rru',
-  'ッサ'=>'ssa','ッセ'=>'sse','ッシ'=>'sshi','ッソ'=>'sso','ッス'=>'ssu',
-  'ッザ'=>'zza','ッゼ'=>'zze','ッジ'=>'jji','ッゾ'=>'zzo','ッズ'=>'zzu',
-  'ッタ'=>'tta','ッテ'=>'tte','ッãƒ'=>'cchi','ット'=>'tto','ッツ'=>'ttsu',
-  'ッダ'=>'dda','ッデ'=>'dde','ッヂ'=>'ddi','ッド'=>'ddo','ッヅ'=>'ddu',
-
-  // 1 character syllables
-  'ア'=>'a','エ'=>'e','イ'=>'i','オ'=>'o','ウ'=>'u','ン'=>'n',
-  'ãƒ'=>'ha','ヘ'=>'he','ヒ'=>'hi','ホ'=>'ho','フ'=>'fu',
-  'ãƒ'=>'ba','ベ'=>'be','ビ'=>'bi','ボ'=>'bo','ブ'=>'bu',
-  'パ'=>'pa','ペ'=>'pe','ピ'=>'pi','ãƒ'=>'po','プ'=>'pu',
-  'ケ'=>'ke','キ'=>'ki','コ'=>'ko','ク'=>'ku','カ'=>'ka',
-  'ガ'=>'ga','ゲ'=>'ge','ギ'=>'gi','ゴ'=>'go','グ'=>'gu',
-  'マ'=>'ma','メ'=>'me','ミ'=>'mi','モ'=>'mo','ム'=>'mu',
-  'ナ'=>'na','ãƒ'=>'ne','ニ'=>'ni','ノ'=>'no','ヌ'=>'nu',
-  'ラ'=>'ra','レ'=>'re','リ'=>'ri','ロ'=>'ro','ル'=>'ru',
-  'サ'=>'sa','セ'=>'se','シ'=>'shi','ソ'=>'so','ス'=>'su',
-  'ザ'=>'za','ゼ'=>'ze','ジ'=>'ji','ゾ'=>'zo','ズ'=>'zu',
-  'ã‚¿'=>'ta','テ'=>'te','ãƒ'=>'chi','ト'=>'to','ツ'=>'tsu',
-  'ダ'=>'da','デ'=>'de','ヂ'=>'di','ド'=>'do','ヅ'=>'du',
-  'ワ'=>'wa','ヲ'=>'wo',
-  'ヤ'=>'ya','ヨ'=>'yo','ユ'=>'yu',
-  'ヵ'=>'ka','ヶ'=>'ke',
-  // old characters
-  'ヱ'=>'we','ヰ'=>'wi',
-
-  //  convert what's left (probably only kicks in when something's missing above)
-  'ã‚¡'=>'a','ã‚§'=>'e','ã‚£'=>'i','ã‚©'=>'o','ã‚¥'=>'u',
-  'ャ'=>'ya','ョ'=>'yo','ュ'=>'yu',
-
-  // special characters
-  '・'=>'_','ã€'=>'_',
-  'ー'=>'_', // when used with hiragana (seldom), this character would not be converted otherwise
-
-  // 'ラ'=>'la','レ'=>'le','リ'=>'li','ロ'=>'lo','ル'=>'lu',
-  // 'ãƒãƒ£'=>'cya','ãƒã‚§'=>'cye','ãƒã‚£'=>'cyi','ãƒãƒ§'=>'cyo','ãƒãƒ¥'=>'cyu',
-  //'デャ'=>'dha','デェ'=>'dhe','ディ'=>'dhi','デョ'=>'dho','デュ'=>'dhu',
-  // 'リャ'=>'lya','リェ'=>'lye','リィ'=>'lyi','リョ'=>'lyo','リュ'=>'lyu',
-  // 'テャ'=>'tha','テェ'=>'the','ティ'=>'thi','テョ'=>'tho','テュ'=>'thu',
-  //'ファ'=>'fwa','フェ'=>'fwe','フィ'=>'fwi','フォ'=>'fwo','フゥ'=>'fwu',
-  //'ãƒãƒ£'=>'tya','ãƒã‚§'=>'tye','ãƒã‚£'=>'tyi','ãƒãƒ§'=>'tyo','ãƒãƒ¥'=>'tyu',
-  // 'ジャ'=>'jya','ジェ'=>'jye','ジィ'=>'jyi','ジョ'=>'jyo','ジュ'=>'jyu',
-  // 'ジャ'=>'zha','ジェ'=>'zhe','ジィ'=>'zhi','ジョ'=>'zho','ジュ'=>'zhu',
-  //'ジャ'=>'zya','ジェ'=>'zye','ジィ'=>'zyi','ジョ'=>'zyo','ジュ'=>'zyu',
-  //'シャ'=>'sya','シェ'=>'sye','シィ'=>'syi','ショ'=>'syo','シュ'=>'syu',
-  //'ã‚·'=>'ci','フ'=>'hu',ã‚·'=>'si','ãƒ'=>'ti','ツ'=>'tu','イ'=>'yi','ヂ'=>'dzi',
-
-  // "Greeklish"
-  'Γ'=>'G','Δ'=>'E','Θ'=>'Th','Λ'=>'L','Ξ'=>'X','Π'=>'P','Σ'=>'S','Φ'=>'F','Ψ'=>'Ps',
-  'γ'=>'g','δ'=>'e','θ'=>'th','λ'=>'l','ξ'=>'x','π'=>'p','σ'=>'s','φ'=>'f','ψ'=>'ps',
-
-  // Thai
-  'à¸'=>'k','ข'=>'kh','ฃ'=>'kh','ค'=>'kh','ฅ'=>'kh','ฆ'=>'kh','ง'=>'ng','จ'=>'ch',
-  'ฉ'=>'ch','ช'=>'ch','ซ'=>'s','ฌ'=>'ch','à¸'=>'y','ฎ'=>'d','à¸'=>'t','à¸'=>'th',
-  'ฑ'=>'d','ฒ'=>'th','ณ'=>'n','ด'=>'d','ต'=>'t','ถ'=>'th','ท'=>'th','ธ'=>'th',
-  'น'=>'n','บ'=>'b','ป'=>'p','ผ'=>'ph','à¸'=>'f','พ'=>'ph','ฟ'=>'f','ภ'=>'ph',
-  'ม'=>'m','ย'=>'y','ร'=>'r','ฤ'=>'rue','ฤๅ'=>'rue','ล'=>'l','ฦ'=>'lue',
-  'ฦๅ'=>'lue','ว'=>'w','ศ'=>'s','ษ'=>'s','ส'=>'s','ห'=>'h','ฬ'=>'l','ฮ'=>'h',
-  'ะ'=>'a','ั'=>'a','รร'=>'a','า'=>'a','ๅ'=>'a','ำ'=>'am','à¹à¸²'=>'am',
-  'ิ'=>'i','ี'=>'i','ึ'=>'ue','ี'=>'ue','ุ'=>'u','ู'=>'u',
-  'เ'=>'e','à¹'=>'ae','โ'=>'o','อ'=>'o',
-  'ียะ'=>'ia','ีย'=>'ia','ือะ'=>'uea','ือ'=>'uea','ัวะ'=>'ua','ัว'=>'ua',
-  'ใ'=>'ai','ไ'=>'ai','ัย'=>'ai','าย'=>'ai','าว'=>'ao',
-  'ุย'=>'ui','อย'=>'oi','ือย'=>'ueai','วย'=>'uai',
-  'ิว'=>'io','็ว'=>'eo','ียว'=>'iao',
-  '่'=>'','้'=>'','๊'=>'','๋'=>'','็'=>'',
-  '์'=>'','๎'=>'','à¹'=>'','ฺ'=>'',
-  'ๆ'=>'2','à¹'=>'o','ฯ'=>'-','๚'=>'-','๛'=>'-',
-  'à¹'=>'0','๑'=>'1','๒'=>'2','๓'=>'3','๔'=>'4',
-  '๕'=>'5','๖'=>'6','๗'=>'7','๘'=>'8','๙'=>'9',
-
-  // Korean
-  'ㄱ'=>'k','ㅋ'=>'kh','ㄲ'=>'kk','ㄷ'=>'t','ㅌ'=>'th','ㄸ'=>'tt','ㅂ'=>'p',
-  'ã…'=>'ph','ã…ƒ'=>'pp','ã…ˆ'=>'c','ã…Š'=>'ch','ã…‰'=>'cc','ã……'=>'s','ã…†'=>'ss',
-  'ã…Ž'=>'h','ã…‡'=>'ng','ã„´'=>'n','ㄹ'=>'l','ã…'=>'m', 'ã…'=>'a','ã…“'=>'e','ã…—'=>'o',
-  'ã…œ'=>'wu','ã…¡'=>'u','ã…£'=>'i','ã…'=>'ay','ã…”'=>'ey','ã…š'=>'oy','ã…˜'=>'wa','ã…'=>'we',
-  'ã…Ÿ'=>'wi','ã…™'=>'way','ã…ž'=>'wey','ã…¢'=>'uy','ã…‘'=>'ya','ã…•'=>'ye','ã…›'=>'oy',
-  'ã… '=>'yu','ã…’'=>'yay','ã…–'=>'yey',
-);
-
-
diff --git a/wiki/index.html b/wiki/index.html
deleted file mode 100644
index e406642..0000000
--- a/wiki/index.html
+++ /dev/null
@@ -1 +0,0 @@
-<meta http-equiv="refresh" content="1; /wiki/doku.php" ?>
diff --git a/wiki/index.php b/wiki/index.php
deleted file mode 100644
index 689ce17..0000000
--- a/wiki/index.php
+++ /dev/null
@@ -1,68 +0,0 @@
-<?php
-/**
- * Forwarder/Router to doku.php
- *
- * In normal usage, this script simply redirects to doku.php. However it can also be used as a routing
- * script with PHP's builtin webserver. It takes care of .htaccess compatible rewriting, directory/file
- * access permission checking and passing on static files.
- *
- * Usage example:
- *
- *   php -S localhost:8000 index.php
- *
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * @author     Andreas Gohr <andi@splitbrain.org>
- */
-if(php_sapi_name() != 'cli-server') {
-    header("Location: doku.php");
-    exit;
-}
-
-# ROUTER starts below
-
-# avoid path traversal
-$_SERVER['SCRIPT_NAME'] = str_replace('/../', '/', $_SERVER['SCRIPT_NAME']);
-
-# routing aka. rewriting
-if(preg_match('/^\/_media\/(.*)/', $_SERVER['SCRIPT_NAME'], $m)) {
-    # media dispatcher
-    $_GET['media'] = $m[1];
-    require $_SERVER['DOCUMENT_ROOT'] . '/lib/exe/fetch.php';
-
-} else if(preg_match('/^\/_detail\/(.*)/', $_SERVER['SCRIPT_NAME'], $m)) {
-    # image detail view
-    $_GET['media'] = $m[1];
-    require $_SERVER['DOCUMENT_ROOT'] . '/lib/exe/detail.php';
-
-} else if(preg_match('/^\/_media\/(.*)/', $_SERVER['SCRIPT_NAME'], $m)) {
-    # exports
-    $_GET['do'] = 'export_' . $m[1];
-    $_GET['id'] = $m[2];
-    require $_SERVER['DOCUMENT_ROOT'] . '/doku.php';
-
-} elseif($_SERVER['SCRIPT_NAME'] == '/index.php') {
-    # 404s are automatically mapped to index.php
-    if(isset($_SERVER['PATH_INFO'])) {
-        $_GET['id'] = $_SERVER['PATH_INFO'];
-    }
-    require $_SERVER['DOCUMENT_ROOT'] . '/doku.php';
-
-} else if(file_exists($_SERVER['DOCUMENT_ROOT'] . $_SERVER['SCRIPT_NAME'])) {
-    # existing files
-
-    # access limitiations
-    if(preg_match('/\/([\._]ht|README$|VERSION$|COPYING$)/', $_SERVER['SCRIPT_NAME']) or
-        preg_match('/^\/(data|conf|bin|inc)\//', $_SERVER['SCRIPT_NAME'])
-    ) {
-        die('Access denied');
-    }
-
-    if(substr($_SERVER['SCRIPT_NAME'], -4) == '.php') {
-        # php scripts
-        require $_SERVER['DOCUMENT_ROOT'] . $_SERVER['SCRIPT_NAME'];
-    } else {
-        # static files
-        return false;
-    }
-}
-# 404
diff --git a/wiki/lib/exe/ajax.php b/wiki/lib/exe/ajax.php
deleted file mode 100644
index 55f1c87..0000000
--- a/wiki/lib/exe/ajax.php
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
-/**
- * DokuWiki AJAX call handler
- *
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * @author     Andreas Gohr <andi@splitbrain.org>
- */
-
-if(!defined('DOKU_INC')) define('DOKU_INC', dirname(__FILE__) . '/../../');
-require_once(DOKU_INC . 'inc/init.php');
-
-//close session
-session_write_close();
-
-// default header, ajax call may overwrite it later
-header('Content-Type: text/html; charset=utf-8');
-
-//call the requested function
-global $INPUT;
-if($INPUT->has('call')) {
-    $call = $INPUT->filter('utf8_stripspecials')->str('call');
-    new \dokuwiki\Ajax($call);
-} else {
-    http_status(404);
-}
diff --git a/wiki/lib/exe/css.php b/wiki/lib/exe/css.php
deleted file mode 100644
index 40eaf99..0000000
--- a/wiki/lib/exe/css.php
+++ /dev/null
@@ -1,635 +0,0 @@
-<?php
-/**
- * DokuWiki StyleSheet creator
- *
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * @author     Andreas Gohr <andi@splitbrain.org>
- */
-
-if(!defined('DOKU_INC')) define('DOKU_INC',dirname(__FILE__).'/../../');
-if(!defined('NOSESSION')) define('NOSESSION',true); // we do not use a session or authentication here (better caching)
-if(!defined('DOKU_DISABLE_GZIP_OUTPUT')) define('DOKU_DISABLE_GZIP_OUTPUT',1); // we gzip ourself here
-if(!defined('NL')) define('NL',"\n");
-require_once(DOKU_INC.'inc/init.php');
-
-// Main (don't run when UNIT test)
-if(!defined('SIMPLE_TEST')){
-    header('Content-Type: text/css; charset=utf-8');
-    css_out();
-}
-
-
-// ---------------------- functions ------------------------------
-
-/**
- * Output all needed Styles
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- */
-function css_out(){
-    global $conf;
-    global $lang;
-    global $config_cascade;
-    global $INPUT;
-
-    if ($INPUT->str('s') == 'feed') {
-        $mediatypes = array('feed');
-        $type = 'feed';
-    } else {
-        $mediatypes = array('screen', 'all', 'print', 'speech');
-        $type = '';
-    }
-
-    // decide from where to get the template
-    $tpl = trim(preg_replace('/[^\w-]+/','',$INPUT->str('t')));
-    if(!$tpl) $tpl = $conf['template'];
-
-    // load style.ini
-    $styleUtil = new \dokuwiki\StyleUtils();
-    $styleini = $styleUtil->cssStyleini($tpl, $INPUT->bool('preview'));
-
-    // cache influencers
-    $tplinc = tpl_incdir($tpl);
-    $cache_files = getConfigFiles('main');
-    $cache_files[] = $tplinc.'style.ini';
-    $cache_files[] = DOKU_CONF."tpl/$tpl/style.ini";
-    $cache_files[] = __FILE__;
-    if($INPUT->bool('preview')) $cache_files[] = $conf['cachedir'].'/preview.ini';
-
-    // Array of needed files and their web locations, the latter ones
-    // are needed to fix relative paths in the stylesheets
-    $media_files = array();
-    foreach($mediatypes as $mediatype) {
-        $files = array();
-
-        // load core styles
-        $files[DOKU_INC.'lib/styles/'.$mediatype.'.css'] = DOKU_BASE.'lib/styles/';
-
-        // load jQuery-UI theme
-        if ($mediatype == 'screen') {
-            $files[DOKU_INC.'lib/scripts/jquery/jquery-ui-theme/smoothness.css'] = DOKU_BASE.'lib/scripts/jquery/jquery-ui-theme/';
-        }
-        // load plugin styles
-        $files = array_merge($files, css_pluginstyles($mediatype));
-        // load template styles
-        if (isset($styleini['stylesheets'][$mediatype])) {
-            $files = array_merge($files, $styleini['stylesheets'][$mediatype]);
-        }
-        // load user styles
-        if(!empty($config_cascade['userstyle'][$mediatype])) {
-            foreach($config_cascade['userstyle'][$mediatype] as $userstyle) {
-                $files[$userstyle] = DOKU_BASE;
-            }
-        }
-
-        // Let plugins decide to either put more styles here or to remove some
-        $media_files[$mediatype] = css_filewrapper($mediatype, $files);
-        $CSSEvt = new Doku_Event('CSS_STYLES_INCLUDED', $media_files[$mediatype]);
-
-        // Make it preventable.
-        if ( $CSSEvt->advise_before() ) {
-            $cache_files = array_merge($cache_files, array_keys($media_files[$mediatype]['files']));
-        } else {
-            // unset if prevented. Nothing will be printed for this mediatype.
-            unset($media_files[$mediatype]);
-        }
-
-        // finish event.
-        $CSSEvt->advise_after();
-    }
-
-    // The generated script depends on some dynamic options
-    $cache = new cache('styles'.$_SERVER['HTTP_HOST'].$_SERVER['SERVER_PORT'].$INPUT->bool('preview').DOKU_BASE.$tpl.$type,'.css');
-    $cache->_event = 'CSS_CACHE_USE';
-
-    // check cache age & handle conditional request
-    // This may exit if a cache can be used
-    $cache_ok = $cache->useCache(array('files' => $cache_files));
-    http_cached($cache->cache, $cache_ok);
-
-    // start output buffering
-    ob_start();
-
-    // Fire CSS_STYLES_INCLUDED for one last time to let the
-    // plugins decide whether to include the DW default styles.
-    // This can be done by preventing the Default.
-    $media_files['DW_DEFAULT'] = css_filewrapper('DW_DEFAULT');
-    trigger_event('CSS_STYLES_INCLUDED', $media_files['DW_DEFAULT'], 'css_defaultstyles');
-
-    // build the stylesheet
-    foreach ($mediatypes as $mediatype) {
-
-        // Check if there is a wrapper set for this type.
-        if ( !isset($media_files[$mediatype]) ) {
-            continue;
-        }
-
-        $cssData = $media_files[$mediatype];
-
-        // Print the styles.
-        print NL;
-        if ( $cssData['encapsulate'] === true ) print $cssData['encapsulationPrefix'] . ' {';
-        print '/* START '.$cssData['mediatype'].' styles */'.NL;
-
-        // load files
-        foreach($cssData['files'] as $file => $location){
-            $display = str_replace(fullpath(DOKU_INC), '', fullpath($file));
-            print "\n/* XXXXXXXXX $display XXXXXXXXX */\n";
-            print css_loadfile($file, $location);
-        }
-
-        print NL;
-        if ( $cssData['encapsulate'] === true ) print '} /* /@media ';
-        else print '/*';
-        print ' END '.$cssData['mediatype'].' styles */'.NL;
-    }
-
-    // end output buffering and get contents
-    $css = ob_get_contents();
-    ob_end_clean();
-
-    // strip any source maps
-    stripsourcemaps($css);
-
-    // apply style replacements
-    $css = css_applystyle($css, $styleini['replacements']);
-
-    // parse less
-    $css = css_parseless($css);
-
-    // compress whitespace and comments
-    if($conf['compress']){
-        $css = css_compress($css);
-    }
-
-    // embed small images right into the stylesheet
-    if($conf['cssdatauri']){
-        $base = preg_quote(DOKU_BASE,'#');
-        $css = preg_replace_callback('#(url\([ \'"]*)('.$base.')(.*?(?:\.(png|gif)))#i','css_datauri',$css);
-    }
-
-    http_cached_finish($cache->cache, $css);
-}
-
-/**
- * Uses phpless to parse LESS in our CSS
- *
- * most of this function is error handling to show a nice useful error when
- * LESS compilation fails
- *
- * @param string $css
- * @return string
- */
-function css_parseless($css) {
-    global $conf;
-
-    $less = new lessc();
-    $less->importDir = array(DOKU_INC);
-    $less->setPreserveComments(!$conf['compress']);
-
-    if (defined('DOKU_UNITTEST')){
-        $less->importDir[] = TMP_DIR;
-    }
-
-    try {
-        return $less->compile($css);
-    } catch(Exception $e) {
-        // get exception message
-        $msg = str_replace(array("\n", "\r", "'"), array(), $e->getMessage());
-
-        // try to use line number to find affected file
-        if(preg_match('/line: (\d+)$/', $msg, $m)){
-            $msg = substr($msg, 0, -1* strlen($m[0])); //remove useless linenumber
-            $lno = $m[1];
-
-            // walk upwards to last include
-            $lines = explode("\n", $css);
-            for($i=$lno-1; $i>=0; $i--){
-                if(preg_match('/\/(\* XXXXXXXXX )(.*?)( XXXXXXXXX \*)\//', $lines[$i], $m)){
-                    // we found it, add info to message
-                    $msg .= ' in '.$m[2].' at line '.($lno-$i);
-                    break;
-                }
-            }
-        }
-
-        // something went wrong
-        $error = 'A fatal error occured during compilation of the CSS files. '.
-            'If you recently installed a new plugin or template it '.
-            'might be broken and you should try disabling it again. ['.$msg.']';
-
-        echo ".dokuwiki:before {
-            content: '$error';
-            background-color: red;
-            display: block;
-            background-color: #fcc;
-            border-color: #ebb;
-            color: #000;
-            padding: 0.5em;
-        }";
-
-        exit;
-    }
-}
-
-/**
- * Does placeholder replacements in the style according to
- * the ones defined in a templates style.ini file
- *
- * This also adds the ini defined placeholders as less variables
- * (sans the surrounding __ and with a ini_ prefix)
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- *
- * @param string $css
- * @param array $replacements  array(placeholder => value)
- * @return string
- */
-function css_applystyle($css, $replacements) {
-    // we convert ini replacements to LESS variable names
-    // and build a list of variable: value; pairs
-    $less = '';
-    foreach((array) $replacements as $key => $value) {
-        $lkey = trim($key, '_');
-        $lkey = '@ini_'.$lkey;
-        $less .= "$lkey: $value;\n";
-
-        $replacements[$key] = $lkey;
-    }
-
-    // we now replace all old ini replacements with LESS variables
-    $css = strtr($css, $replacements);
-
-    // now prepend the list of LESS variables as the very first thing
-    $css = $less.$css;
-    return $css;
-}
-
-/**
- * Wrapper for the files, content and mediatype for the event CSS_STYLES_INCLUDED
- *
- * @author Gerry Weißbach <gerry.w@gammaproduction.de>
- *
- * @param string $mediatype type ofthe current media files/content set
- * @param array $files set of files that define the current mediatype
- * @return array
- */
-function css_filewrapper($mediatype, $files=array()){
-    return array(
-            'files'                 => $files,
-            'mediatype'             => $mediatype,
-            'encapsulate'           => $mediatype != 'all',
-            'encapsulationPrefix'   => '@media '.$mediatype
-        );
-}
-
-/**
- * Prints the @media encapsulated default styles of DokuWiki
- *
- * @author Gerry Weißbach <gerry.w@gammaproduction.de>
- *
- * This function is being called by a CSS_STYLES_INCLUDED event
- * The event can be distinguished by the mediatype which is:
- *   DW_DEFAULT
- */
-function css_defaultstyles(){
-    // print the default classes for interwiki links and file downloads
-    print '@media screen {';
-    css_interwiki();
-    css_filetypes();
-    print '}';
-}
-
-/**
- * Prints classes for interwikilinks
- *
- * Interwiki links have two classes: 'interwiki' and 'iw_$name>' where
- * $name is the identifier given in the config. All Interwiki links get
- * an default style with a default icon. If a special icon is available
- * for an interwiki URL it is set in it's own class. Both classes can be
- * overwritten in the template or userstyles.
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- */
-function css_interwiki(){
-
-    // default style
-    echo 'a.interwiki {';
-    echo ' background: transparent url('.DOKU_BASE.'lib/images/interwiki.png) 0px 1px no-repeat;';
-    echo ' padding: 1px 0px 1px 16px;';
-    echo '}';
-
-    // additional styles when icon available
-    $iwlinks = getInterwiki();
-    foreach(array_keys($iwlinks) as $iw){
-        $class = preg_replace('/[^_\-a-z0-9]+/i','_',$iw);
-        if(file_exists(DOKU_INC.'lib/images/interwiki/'.$iw.'.png')){
-            echo "a.iw_$class {";
-            echo '  background-image: url('.DOKU_BASE.'lib/images/interwiki/'.$iw.'.png)';
-            echo '}';
-        }elseif(file_exists(DOKU_INC.'lib/images/interwiki/'.$iw.'.gif')){
-            echo "a.iw_$class {";
-            echo '  background-image: url('.DOKU_BASE.'lib/images/interwiki/'.$iw.'.gif)';
-            echo '}';
-        }
-    }
-}
-
-/**
- * Prints classes for file download links
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- */
-function css_filetypes(){
-
-    // default style
-    echo '.mediafile {';
-    echo ' background: transparent url('.DOKU_BASE.'lib/images/fileicons/file.png) 0px 1px no-repeat;';
-    echo ' padding-left: 18px;';
-    echo ' padding-bottom: 1px;';
-    echo '}';
-
-    // additional styles when icon available
-    // scan directory for all icons
-    $exts = array();
-    if($dh = opendir(DOKU_INC.'lib/images/fileicons')){
-        while(false !== ($file = readdir($dh))){
-            if(preg_match('/([_\-a-z0-9]+(?:\.[_\-a-z0-9]+)*?)\.(png|gif)/i',$file,$match)){
-                $ext = strtolower($match[1]);
-                $type = '.'.strtolower($match[2]);
-                if($ext!='file' && (!isset($exts[$ext]) || $type=='.png')){
-                    $exts[$ext] = $type;
-                }
-            }
-        }
-        closedir($dh);
-    }
-    foreach($exts as $ext=>$type){
-        $class = preg_replace('/[^_\-a-z0-9]+/','_',$ext);
-        echo ".mf_$class {";
-        echo '  background-image: url('.DOKU_BASE.'lib/images/fileicons/'.$ext.$type.')';
-        echo '}';
-    }
-}
-
-/**
- * Loads a given file and fixes relative URLs with the
- * given location prefix
- *
- * @param string $file file system path
- * @param string $location
- * @return string
- */
-function css_loadfile($file,$location=''){
-    $css_file = new DokuCssFile($file);
-    return $css_file->load($location);
-}
-
-/**
- *  Helper class to abstract loading of css/less files
- *
- *  @author Chris Smith <chris@jalakai.co.uk>
- */
-class DokuCssFile {
-
-    protected $filepath;             // file system path to the CSS/Less file
-    protected $location;             // base url location of the CSS/Less file
-    protected $relative_path = null;
-
-    public function __construct($file) {
-        $this->filepath = $file;
-    }
-
-    /**
-     * Load the contents of the css/less file and adjust any relative paths/urls (relative to this file) to be
-     * relative to the dokuwiki root: the web root (DOKU_BASE) for most files; the file system root (DOKU_INC)
-     * for less files.
-     *
-     * @param   string   $location   base url for this file
-     * @return  string               the CSS/Less contents of the file
-     */
-    public function load($location='') {
-        if (!file_exists($this->filepath)) return '';
-
-        $css = io_readFile($this->filepath);
-        if (!$location) return $css;
-
-        $this->location = $location;
-
-        $css = preg_replace_callback('#(url\( *)([\'"]?)(.*?)(\2)( *\))#',array($this,'replacements'),$css);
-        $css = preg_replace_callback('#(@import\s+)([\'"])(.*?)(\2)#',array($this,'replacements'),$css);
-
-        return $css;
-    }
-
-    /**
-     * Get the relative file system path of this file, relative to dokuwiki's root folder, DOKU_INC
-     *
-     * @return string   relative file system path
-     */
-    protected function getRelativePath(){
-
-        if (is_null($this->relative_path)) {
-            $basedir = array(DOKU_INC);
-
-            // during testing, files may be found relative to a second base dir, TMP_DIR
-            if (defined('DOKU_UNITTEST')) {
-                $basedir[] = realpath(TMP_DIR);
-            }
-
-            $basedir = array_map('preg_quote_cb', $basedir);
-            $regex = '/^('.join('|',$basedir).')/';
-            $this->relative_path = preg_replace($regex, '', dirname($this->filepath));
-        }
-
-        return $this->relative_path;
-    }
-
-    /**
-     * preg_replace callback to adjust relative urls from relative to this file to relative
-     * to the appropriate dokuwiki root location as described in the code
-     *
-     * @param  array    see http://php.net/preg_replace_callback
-     * @return string   see http://php.net/preg_replace_callback
-     */
-    public function replacements($match) {
-
-        // not a relative url? - no adjustment required
-        if (preg_match('#^(/|data:|https?://)#',$match[3])) {
-            return $match[0];
-        }
-        // a less file import? - requires a file system location
-        else if (substr($match[3],-5) == '.less') {
-            if ($match[3]{0} != '/') {
-                $match[3] = $this->getRelativePath() . '/' . $match[3];
-            }
-        }
-        // everything else requires a url adjustment
-        else {
-            $match[3] = $this->location . $match[3];
-        }
-
-        return join('',array_slice($match,1));
-    }
-}
-
-/**
- * Convert local image URLs to data URLs if the filesize is small
- *
- * Callback for preg_replace_callback
- *
- * @param array $match
- * @return string
- */
-function css_datauri($match){
-    global $conf;
-
-    $pre   = unslash($match[1]);
-    $base  = unslash($match[2]);
-    $url   = unslash($match[3]);
-    $ext   = unslash($match[4]);
-
-    $local = DOKU_INC.$url;
-    $size  = @filesize($local);
-    if($size && $size < $conf['cssdatauri']){
-        $data = base64_encode(file_get_contents($local));
-    }
-    if (!empty($data)){
-        $url = 'data:image/'.$ext.';base64,'.$data;
-    }else{
-        $url = $base.$url;
-    }
-    return $pre.$url;
-}
-
-
-/**
- * Returns a list of possible Plugin Styles (no existance check here)
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- *
- * @param string $mediatype
- * @return array
- */
-function css_pluginstyles($mediatype='screen'){
-    $list = array();
-    $plugins = plugin_list();
-    foreach ($plugins as $p){
-        $list[DOKU_PLUGIN."$p/$mediatype.css"]  = DOKU_BASE."lib/plugins/$p/";
-        $list[DOKU_PLUGIN."$p/$mediatype.less"]  = DOKU_BASE."lib/plugins/$p/";
-        // alternative for screen.css
-        if ($mediatype=='screen') {
-            $list[DOKU_PLUGIN."$p/style.css"]  = DOKU_BASE."lib/plugins/$p/";
-            $list[DOKU_PLUGIN."$p/style.less"]  = DOKU_BASE."lib/plugins/$p/";
-        }
-    }
-    return $list;
-}
-
-/**
- * Very simple CSS optimizer
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- *
- * @param string $css
- * @return string
- */
-function css_compress($css){
-    //strip comments through a callback
-    $css = preg_replace_callback('#(/\*)(.*?)(\*/)#s','css_comment_cb',$css);
-
-    //strip (incorrect but common) one line comments
-    $css = preg_replace_callback('/^.*\/\/.*$/m','css_onelinecomment_cb',$css);
-
-    // strip whitespaces
-    $css = preg_replace('![\r\n\t ]+!',' ',$css);
-    $css = preg_replace('/ ?([;,{}\/]) ?/','\\1',$css);
-    $css = preg_replace('/ ?: /',':',$css);
-
-    // number compression
-    $css = preg_replace('/([: ])0+(\.\d+?)0*((?:pt|pc|in|mm|cm|em|ex|px)\b|%)(?=[^\{]*[;\}])/', '$1$2$3', $css); // "0.1em" to ".1em", "1.10em" to "1.1em"
-    $css = preg_replace('/([: ])\.(0)+((?:pt|pc|in|mm|cm|em|ex|px)\b|%)(?=[^\{]*[;\}])/', '$1$2', $css); // ".0em" to "0"
-    $css = preg_replace('/([: ]0)0*(\.0*)?((?:pt|pc|in|mm|cm|em|ex|px)(?=[^\{]*[;\}])\b|%)/', '$1', $css); // "0.0em" to "0"
-    $css = preg_replace('/([: ]\d+)(\.0*)((?:pt|pc|in|mm|cm|em|ex|px)(?=[^\{]*[;\}])\b|%)/', '$1$3', $css); // "1.0em" to "1em"
-    $css = preg_replace('/([: ])0+(\d+|\d*\.\d+)((?:pt|pc|in|mm|cm|em|ex|px)(?=[^\{]*[;\}])\b|%)/', '$1$2$3', $css); // "001em" to "1em"
-
-    // shorten attributes (1em 1em 1em 1em -> 1em)
-    $css = preg_replace('/(?<![\w\-])((?:margin|padding|border|border-(?:width|radius)):)([\w\.]+)( \2)+(?=[;\}]| !)/', '$1$2', $css); // "1em 1em 1em 1em" to "1em"
-    $css = preg_replace('/(?<![\w\-])((?:margin|padding|border|border-(?:width)):)([\w\.]+) ([\w\.]+) \2 \3(?=[;\}]| !)/', '$1$2 $3', $css); // "1em 2em 1em 2em" to "1em 2em"
-
-    // shorten colors
-    $css = preg_replace("/#([0-9a-fA-F]{1})\\1([0-9a-fA-F]{1})\\2([0-9a-fA-F]{1})\\3(?=[^\{]*[;\}])/", "#\\1\\2\\3", $css);
-
-    return $css;
-}
-
-/**
- * Callback for css_compress()
- *
- * Keeps short comments (< 5 chars) to maintain typical browser hacks
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- *
- * @param array $matches
- * @return string
- */
-function css_comment_cb($matches){
-    if(strlen($matches[2]) > 4) return '';
-    return $matches[0];
-}
-
-/**
- * Callback for css_compress()
- *
- * Strips one line comments but makes sure it will not destroy url() constructs with slashes
- *
- * @param array $matches
- * @return string
- */
-function css_onelinecomment_cb($matches) {
-    $line = $matches[0];
-
-    $i = 0;
-    $len = strlen($line);
-
-    while ($i< $len){
-        $nextcom = strpos($line, '//', $i);
-        $nexturl = stripos($line, 'url(', $i);
-
-        if($nextcom === false) {
-            // no more comments, we're done
-            $i = $len;
-            break;
-        }
-
-        // keep any quoted string that starts before a comment
-        $nextsqt = strpos($line, "'", $i);
-        $nextdqt = strpos($line, '"', $i);
-        if(min($nextsqt, $nextdqt) < $nextcom) {
-            $skipto = false;
-            if($nextsqt !== false && ($nextdqt === false || $nextsqt < $nextdqt)) {
-                $skipto = strpos($line, "'", $nextsqt+1) +1;
-            } else if ($nextdqt !== false) {
-                $skipto = strpos($line, '"', $nextdqt+1) +1;
-            }
-
-            if($skipto !== false) {
-                $i = $skipto;
-                continue;
-            }
-        }
-
-        if($nexturl === false || $nextcom < $nexturl) {
-            // no url anymore, strip comment and be done
-            $i = $nextcom;
-            break;
-        }
-
-        // we have an upcoming url
-        $i = strpos($line, ')', $nexturl);
-    }
-
-    return substr($line, 0, $i);
-}
-
-//Setup VIM: ex: et ts=4 :
diff --git a/wiki/lib/exe/detail.php b/wiki/lib/exe/detail.php
deleted file mode 100644
index ec1a9b8..0000000
--- a/wiki/lib/exe/detail.php
+++ /dev/null
@@ -1,53 +0,0 @@
-<?php
-if(!defined('DOKU_INC')) define('DOKU_INC',dirname(__FILE__).'/../../');
-define('DOKU_MEDIADETAIL',1);
-require_once(DOKU_INC.'inc/init.php');
-
-$IMG  = getID('media');
-$ID   = cleanID($INPUT->str('id'));
-$REV  = $INPUT->int('rev');
-
-// this makes some general info available as well as the info about the
-// "parent" page
-$INFO = array_merge(pageinfo(),mediainfo());
-
-$tmp = array();
-trigger_event('DETAIL_STARTED', $tmp);
-
-//close session
-session_write_close();
-
-if($conf['allowdebug'] && $INPUT->has('debug')){
-    print '<pre>';
-    foreach(explode(' ','basedir userewrite baseurl useslash') as $x){
-        print '$'."conf['$x'] = '".$conf[$x]."';\n";
-    }
-    foreach(explode(' ','DOCUMENT_ROOT HTTP_HOST SCRIPT_FILENAME PHP_SELF '.
-                'REQUEST_URI SCRIPT_NAME PATH_INFO PATH_TRANSLATED') as $x){
-        print '$'."_SERVER['$x'] = '".$_SERVER[$x]."';\n";
-    }
-    print "getID('media'): ".getID('media')."\n";
-    print "getID('media',false): ".getID('media',false)."\n";
-    print '</pre>';
-}
-
-$ERROR = false;
-// check image permissions
-$AUTH = auth_quickaclcheck($IMG);
-if($AUTH >= AUTH_READ){
-    // check if image exists
-    $SRC = mediaFN($IMG,$REV); 
-    if(!file_exists($SRC)){
-        //doesn't exist!
-        http_status(404);
-        $ERROR = 'File not found';
-    }
-}else{
-    // no auth
-    $ERROR = p_locale_xhtml('denied');
-}
-
-//start output and load template
-header('Content-Type: text/html; charset=utf-8');
-include(template('detail.php'));
-
diff --git a/wiki/lib/exe/fetch.php b/wiki/lib/exe/fetch.php
deleted file mode 100644
index 933367e..0000000
--- a/wiki/lib/exe/fetch.php
+++ /dev/null
@@ -1,99 +0,0 @@
-<?php
-/**
- * DokuWiki media passthrough file
- *
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * @author     Andreas Gohr <andi@splitbrain.org>
- */
-
-if(!defined('DOKU_INC')) define('DOKU_INC', dirname(__FILE__).'/../../');
-if (!defined('DOKU_DISABLE_GZIP_OUTPUT')) define('DOKU_DISABLE_GZIP_OUTPUT', 1);
-require_once(DOKU_INC.'inc/init.php');
-session_write_close(); //close session
-
-require_once(DOKU_INC.'inc/fetch.functions.php');
-
-if (defined('SIMPLE_TEST')) {
-    $INPUT = new Input();
-}
-
-// BEGIN main
-    $mimetypes = getMimeTypes();
-
-    //get input
-    $MEDIA  = stripctl(getID('media', false)); // no cleaning except control chars - maybe external
-    $CACHE  = calc_cache($INPUT->str('cache'));
-    $WIDTH  = $INPUT->int('w');
-    $HEIGHT = $INPUT->int('h');
-    $REV    = & $INPUT->ref('rev');
-    //sanitize revision
-    $REV = preg_replace('/[^0-9]/', '', $REV);
-
-    list($EXT, $MIME, $DL) = mimetype($MEDIA, false);
-    if($EXT === false) {
-        $EXT  = 'unknown';
-        $MIME = 'application/octet-stream';
-        $DL   = true;
-    }
-
-    // check for permissions, preconditions and cache external files
-    list($STATUS, $STATUSMESSAGE) = checkFileStatus($MEDIA, $FILE, $REV, $WIDTH, $HEIGHT);
-
-    // prepare data for plugin events
-    $data = array(
-        'media'         => $MEDIA,
-        'file'          => $FILE,
-        'orig'          => $FILE,
-        'mime'          => $MIME,
-        'download'      => $DL,
-        'cache'         => $CACHE,
-        'ext'           => $EXT,
-        'width'         => $WIDTH,
-        'height'        => $HEIGHT,
-        'status'        => $STATUS,
-        'statusmessage' => $STATUSMESSAGE,
-        'ispublic'      => media_ispublic($MEDIA),
-    );
-
-    // handle the file status
-    $evt = new Doku_Event('FETCH_MEDIA_STATUS', $data);
-    if($evt->advise_before()) {
-        // redirects
-        if($data['status'] > 300 && $data['status'] <= 304) {
-            if (defined('SIMPLE_TEST')) return; //TestResponse doesn't recognize redirects
-            send_redirect($data['statusmessage']);
-        }
-        // send any non 200 status
-        if($data['status'] != 200) {
-            http_status($data['status'], $data['statusmessage']);
-        }
-        // die on errors
-        if($data['status'] > 203) {
-            print $data['statusmessage'];
-            if (defined('SIMPLE_TEST')) return;
-            exit;
-        }
-    }
-    $evt->advise_after();
-    unset($evt);
-
-    //handle image resizing/cropping
-    if((substr($MIME, 0, 5) == 'image') && ($WIDTH || $HEIGHT)) {
-        if($HEIGHT && $WIDTH) {
-            $data['file'] = $FILE = media_crop_image($data['file'], $EXT, $WIDTH, $HEIGHT);
-        } else {
-            $data['file'] = $FILE = media_resize_image($data['file'], $EXT, $WIDTH, $HEIGHT);
-        }
-    }
-
-    // finally send the file to the client
-    $evt = new Doku_Event('MEDIA_SENDFILE', $data);
-    if($evt->advise_before()) {
-        sendFile($data['file'], $data['mime'], $data['download'], $data['cache'], $data['ispublic'], $data['orig']);
-    }
-    // Do something after the download finished.
-    $evt->advise_after();  // will not be emitted on 304 or x-sendfile
-
-// END DO main
-
-//Setup VIM: ex: et ts=2 :
diff --git a/wiki/lib/exe/index.html b/wiki/lib/exe/index.html
deleted file mode 100644
index 977f90e..0000000
--- a/wiki/lib/exe/index.html
+++ /dev/null
@@ -1,11 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<meta http-equiv="refresh" content="0; URL=../../" />
-<meta name="robots" content="noindex" />
-<title>nothing here...</title>
-</head>
-<body>
-<!-- this is just here to prevent directory browsing -->
-</body>
-</html>
diff --git a/wiki/lib/exe/indexer.php b/wiki/lib/exe/indexer.php
deleted file mode 100644
index 4f60f16..0000000
--- a/wiki/lib/exe/indexer.php
+++ /dev/null
@@ -1,209 +0,0 @@
-<?php
-/**
- * DokuWiki indexer
- *
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * @author     Andreas Gohr <andi@splitbrain.org>
- */
-if(!defined('DOKU_INC')) define('DOKU_INC',dirname(__FILE__).'/../../');
-define('DOKU_DISABLE_GZIP_OUTPUT',1);
-require_once(DOKU_INC.'inc/init.php');
-session_write_close();  //close session
-if(!defined('NL')) define('NL',"\n");
-
-// keep running after browser closes connection
-@ignore_user_abort(true);
-
-// check if user abort worked, if yes send output early
-$defer = !@ignore_user_abort() || $conf['broken_iua'];
-$output = $INPUT->has('debug') && $conf['allowdebug'];
-if(!$defer && !$output){
-    sendGIF(); // send gif
-}
-
-$ID = cleanID($INPUT->str('id'));
-
-// Catch any possible output (e.g. errors)
-if(!$output) ob_start();
-else header('Content-Type: text/plain');
-
-// run one of the jobs
-$tmp = array(); // No event data
-$evt = new Doku_Event('INDEXER_TASKS_RUN', $tmp);
-if ($evt->advise_before()) {
-    runIndexer() or
-    runSitemapper() or
-    sendDigest() or
-    runTrimRecentChanges() or
-    runTrimRecentChanges(true) or
-    $evt->advise_after();
-}
-
-if(!$output) {
-    ob_end_clean();
-    if($defer) sendGIF();
-}
-
-exit;
-
-// --------------------------------------------------------------------
-
-/**
- * Trims the recent changes cache (or imports the old changelog) as needed.
- *
- * @param bool $media_changes If the media changelog shall be trimmed instead of
- *                              the page changelog
- * @return bool
- *
- * @author Ben Coburn <btcoburn@silicodon.net>
- */
-function runTrimRecentChanges($media_changes = false) {
-    global $conf;
-
-    echo "runTrimRecentChanges($media_changes): started".NL;
-
-    $fn = ($media_changes ? $conf['media_changelog'] : $conf['changelog']);
-
-    // Trim the Recent Changes
-    // Trims the recent changes cache to the last $conf['changes_days'] recent
-    // changes or $conf['recent'] items, which ever is larger.
-    // The trimming is only done once a day.
-    if (file_exists($fn) &&
-        (@filemtime($fn.'.trimmed')+86400)<time() &&
-        !file_exists($fn.'_tmp')) {
-            @touch($fn.'.trimmed');
-            io_lock($fn);
-            $lines = file($fn);
-            if (count($lines)<=$conf['recent']) {
-                // nothing to trim
-                io_unlock($fn);
-                echo "runTrimRecentChanges($media_changes): finished".NL;
-                return false;
-            }
-
-            io_saveFile($fn.'_tmp', '');          // presave tmp as 2nd lock
-            $trim_time = time() - $conf['recent_days']*86400;
-            $out_lines = array();
-            $old_lines = array();
-            for ($i=0; $i<count($lines); $i++) {
-                $log = parseChangelogLine($lines[$i]);
-                if ($log === false) continue;                      // discard junk
-                if ($log['date'] < $trim_time) {
-                    $old_lines[$log['date'].".$i"] = $lines[$i];     // keep old lines for now (append .$i to prevent key collisions)
-                } else {
-                    $out_lines[$log['date'].".$i"] = $lines[$i];     // definitely keep these lines
-                }
-            }
-
-            if (count($lines)==count($out_lines)) {
-              // nothing to trim
-              @unlink($fn.'_tmp');
-              io_unlock($fn);
-              echo "runTrimRecentChanges($media_changes): finished".NL;
-              return false;
-            }
-
-            // sort the final result, it shouldn't be necessary,
-            //   however the extra robustness in making the changelog cache self-correcting is worth it
-            ksort($out_lines);
-            $extra = $conf['recent'] - count($out_lines);        // do we need extra lines do bring us up to minimum
-            if ($extra > 0) {
-              ksort($old_lines);
-              $out_lines = array_merge(array_slice($old_lines,-$extra),$out_lines);
-            }
-
-            // save trimmed changelog
-            io_saveFile($fn.'_tmp', implode('', $out_lines));
-            @unlink($fn);
-            if (!rename($fn.'_tmp', $fn)) {
-                // rename failed so try another way...
-                io_unlock($fn);
-                io_saveFile($fn, implode('', $out_lines));
-                @unlink($fn.'_tmp');
-            } else {
-                io_unlock($fn);
-            }
-            echo "runTrimRecentChanges($media_changes): finished".NL;
-            return true;
-    }
-
-    // nothing done
-    echo "runTrimRecentChanges($media_changes): finished".NL;
-    return false;
-}
-
-/**
- * Runs the indexer for the current page
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- */
-function runIndexer(){
-    global $ID;
-    global $conf;
-    print "runIndexer(): started".NL;
-
-    if(!$ID) return false;
-
-    // do the work
-    return idx_addPage($ID, true);
-}
-
-/**
- * Builds a Google Sitemap of all public pages known to the indexer
- *
- * The map is placed in the root directory named sitemap.xml.gz - This
- * file needs to be writable!
- *
- * @author Andreas Gohr
- * @link   https://www.google.com/webmasters/sitemaps/docs/en/about.html
- */
-function runSitemapper(){
-    print "runSitemapper(): started".NL;
-    $result = Sitemapper::generate() && Sitemapper::pingSearchEngines();
-    print 'runSitemapper(): finished'.NL;
-    return $result;
-}
-
-/**
- * Send digest and list mails for all subscriptions which are in effect for the
- * current page
- *
- * @author Adrian Lang <lang@cosmocode.de>
- */
-function sendDigest() {
-    global $conf;
-    global $ID;
-
-    echo 'sendDigest(): started'.NL;
-    if(!actionOK('subscribe')) {
-        echo 'sendDigest(): disabled'.NL;
-        return false;
-    }
-    $sub = new Subscription();
-    $sent = $sub->send_bulk($ID);
-
-    echo "sendDigest(): sent $sent mails".NL;
-    echo 'sendDigest(): finished'.NL;
-    return (bool) $sent;
-}
-
-/**
- * Just send a 1x1 pixel blank gif to the browser
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- * @author Harry Fuecks <fuecks@gmail.com>
- */
-function sendGIF(){
-    $img = base64_decode('R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAEALAAAAAABAAEAAAIBTAA7');
-    header('Content-Type: image/gif');
-    header('Content-Length: '.strlen($img));
-    header('Connection: Close');
-    print $img;
-    tpl_flush();
-    // Browser should drop connection after this
-    // Thinks it's got the whole image
-}
-
-//Setup VIM: ex: et ts=4 :
-// No trailing PHP closing tag - no output please!
-// See Note at http://php.net/manual/en/language.basic-syntax.instruction-separation.php
diff --git a/wiki/lib/exe/jquery.php b/wiki/lib/exe/jquery.php
deleted file mode 100644
index f32aef7..0000000
--- a/wiki/lib/exe/jquery.php
+++ /dev/null
@@ -1,43 +0,0 @@
-<?php
-
-if(!defined('DOKU_INC')) define('DOKU_INC', dirname(__FILE__) . '/../../');
-if(!defined('NOSESSION')) define('NOSESSION', true); // we do not use a session or authentication here (better caching)
-if(!defined('NL')) define('NL', "\n");
-if(!defined('DOKU_DISABLE_GZIP_OUTPUT')) define('DOKU_DISABLE_GZIP_OUTPUT', 1); // we gzip ourself here
-require_once(DOKU_INC . 'inc/init.php');
-
-// MAIN
-header('Content-Type: application/javascript; charset=utf-8');
-jquery_out();
-
-/**
- * Delivers the jQuery JavaScript
- *
- * We do absolutely nothing fancy here but concatenating the different files
- * and handling conditional and gzipped requests
- *
- * uses cache or fills it
- */
-function jquery_out() {
-    $cache = new cache('jquery', '.js');
-    $files = array(
-        DOKU_INC . 'lib/scripts/jquery/jquery.min.js',
-        DOKU_INC . 'lib/scripts/jquery/jquery-ui.min.js',
-        DOKU_INC . 'lib/scripts/jquery/jquery-migrate.min.js',
-    );
-    $cache_files = $files;
-    $cache_files[] = __FILE__;
-
-    // check cache age & handle conditional request
-    // This may exit if a cache can be used
-    $cache_ok = $cache->useCache(array('files' => $cache_files));
-    http_cached($cache->cache, $cache_ok);
-
-    $js = '';
-    foreach($files as $file) {
-        $js .= file_get_contents($file)."\n";
-    }
-    stripsourcemaps($js);
-
-    http_cached_finish($cache->cache, $js);
-}
diff --git a/wiki/lib/exe/js.php b/wiki/lib/exe/js.php
deleted file mode 100644
index 7b76efa..0000000
--- a/wiki/lib/exe/js.php
+++ /dev/null
@@ -1,484 +0,0 @@
-<?php
-/**
- * DokuWiki JavaScript creator
- *
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * @author     Andreas Gohr <andi@splitbrain.org>
- */
-
-if(!defined('DOKU_INC')) define('DOKU_INC',dirname(__FILE__).'/../../');
-if(!defined('NOSESSION')) define('NOSESSION',true); // we do not use a session or authentication here (better caching)
-if(!defined('NL')) define('NL',"\n");
-if(!defined('DOKU_DISABLE_GZIP_OUTPUT')) define('DOKU_DISABLE_GZIP_OUTPUT',1); // we gzip ourself here
-require_once(DOKU_INC.'inc/init.php');
-
-// Main (don't run when UNIT test)
-if(!defined('SIMPLE_TEST')){
-    header('Content-Type: application/javascript; charset=utf-8');
-    js_out();
-}
-
-
-// ---------------------- functions ------------------------------
-
-/**
- * Output all needed JavaScript
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- */
-function js_out(){
-    global $conf;
-    global $lang;
-    global $config_cascade;
-    global $INPUT;
-
-    // decide from where to get the template
-    $tpl = trim(preg_replace('/[^\w-]+/','',$INPUT->str('t')));
-    if(!$tpl) $tpl = $conf['template'];
-
-    // array of core files
-    $files = array(
-                DOKU_INC.'lib/scripts/jquery/jquery.cookie.js',
-                DOKU_INC.'inc/lang/'.$conf['lang'].'/jquery.ui.datepicker.js',
-                DOKU_INC."lib/scripts/fileuploader.js",
-                DOKU_INC."lib/scripts/fileuploaderextended.js",
-                DOKU_INC.'lib/scripts/helpers.js',
-                DOKU_INC.'lib/scripts/delay.js',
-                DOKU_INC.'lib/scripts/cookie.js',
-                DOKU_INC.'lib/scripts/script.js',
-                DOKU_INC.'lib/scripts/qsearch.js',
-                DOKU_INC.'lib/scripts/search.js',
-                DOKU_INC.'lib/scripts/tree.js',
-                DOKU_INC.'lib/scripts/index.js',
-                DOKU_INC.'lib/scripts/textselection.js',
-                DOKU_INC.'lib/scripts/toolbar.js',
-                DOKU_INC.'lib/scripts/edit.js',
-                DOKU_INC.'lib/scripts/editor.js',
-                DOKU_INC.'lib/scripts/locktimer.js',
-                DOKU_INC.'lib/scripts/linkwiz.js',
-                DOKU_INC.'lib/scripts/media.js',
-                DOKU_INC.'lib/scripts/compatibility.js',
-# disabled for FS#1958                DOKU_INC.'lib/scripts/hotkeys.js',
-                DOKU_INC.'lib/scripts/behaviour.js',
-                DOKU_INC.'lib/scripts/page.js',
-                tpl_incdir($tpl).'script.js',
-            );
-
-    // add possible plugin scripts and userscript
-    $files   = array_merge($files,js_pluginscripts());
-    if(!empty($config_cascade['userscript']['default'])) {
-        foreach($config_cascade['userscript']['default'] as $userscript) {
-            $files[] = $userscript;
-        }
-    }
-
-    // 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__;
-
-    // check cache age & handle conditional request
-    // This may exit if a cache can be used
-    $cache_ok = $cache->useCache(array('files' => $cache_files));
-    http_cached($cache->cache, $cache_ok);
-
-    // start output buffering and build the script
-    ob_start();
-
-    $json = new JSON();
-    // add some global variables
-    print "var DOKU_BASE   = '".DOKU_BASE."';";
-    print "var DOKU_TPL    = '".tpl_basedir($tpl)."';";
-    print "var DOKU_COOKIE_PARAM = " . $json->encode(
-            array(
-                 'path' => empty($conf['cookiedir']) ? DOKU_REL : $conf['cookiedir'],
-                 'secure' => $conf['securecookie'] && is_ssl()
-            )).";";
-    // FIXME: Move those to JSINFO
-    print "Object.defineProperty(window, 'DOKU_UHN', { get: function() { console.warn('Using DOKU_UHN is deprecated. Please use JSINFO.useHeadingNavigation instead'); return JSINFO.useHeadingNavigation; } });";
-    print "Object.defineProperty(window, 'DOKU_UHC', { get: function() { console.warn('Using DOKU_UHC is deprecated. Please use JSINFO.useHeadingContent instead'); return JSINFO.useHeadingContent; } });";
-
-    // load JS specific translations
-    $lang['js']['plugins'] = js_pluginstrings();
-    $templatestrings = js_templatestrings($tpl);
-    if(!empty($templatestrings)) {
-        $lang['js']['template'] = $templatestrings;
-    }
-    echo 'LANG = '.$json->encode($lang['js']).";\n";
-
-    // load toolbar
-    toolbar_JSdefines('toolbar');
-
-    // load files
-    foreach($files as $file){
-        if(!file_exists($file)) continue;
-        $ismin = (substr($file,-7) == '.min.js');
-        $debugjs = ($conf['allowdebug'] && strpos($file, DOKU_INC.'lib/scripts/') !== 0);
-
-        echo "\n\n/* XXXXXXXXXX begin of ".str_replace(DOKU_INC, '', $file) ." XXXXXXXXXX */\n\n";
-        if($ismin) echo "\n/* BEGIN NOCOMPRESS */\n";
-        if ($debugjs) echo "\ntry {\n";
-        js_load($file);
-        if ($debugjs) echo "\n} catch (e) {\n   logError(e, '".str_replace(DOKU_INC, '', $file)."');\n}\n";
-        if($ismin) echo "\n/* END NOCOMPRESS */\n";
-        echo "\n\n/* XXXXXXXXXX end of " . str_replace(DOKU_INC, '', $file) . " XXXXXXXXXX */\n\n";
-    }
-
-    // init stuff
-    if($conf['locktime'] != 0){
-        js_runonstart("dw_locktimer.init(".($conf['locktime'] - 60).",".$conf['usedraft'].")");
-    }
-    // init hotkeys - must have been done after init of toolbar
-# disabled for FS#1958    js_runonstart('initializeHotkeys()');
-
-    // end output buffering and get contents
-    $js = ob_get_contents();
-    ob_end_clean();
-
-    // strip any source maps
-    stripsourcemaps($js);
-
-    // compress whitespace and comments
-    if($conf['compress']){
-        $js = js_compress($js);
-    }
-
-    $js .= "\n"; // https://bugzilla.mozilla.org/show_bug.cgi?id=316033
-
-    http_cached_finish($cache->cache, $js);
-}
-
-/**
- * Load the given file, handle include calls and print it
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- *
- * @param string $file filename path to file
- */
-function js_load($file){
-    if(!file_exists($file)) return;
-    static $loaded = array();
-
-    $data = io_readFile($file);
-    while(preg_match('#/\*\s*DOKUWIKI:include(_once)?\s+([\w\.\-_/]+)\s*\*/#',$data,$match)){
-        $ifile = $match[2];
-
-        // is it a include_once?
-        if($match[1]){
-            $base = utf8_basename($ifile);
-            if(array_key_exists($base, $loaded) && $loaded[$base] === true){
-                $data  = str_replace($match[0], '' ,$data);
-                continue;
-            }
-            $loaded[$base] = true;
-        }
-
-        if($ifile{0} != '/') $ifile = dirname($file).'/'.$ifile;
-
-        if(file_exists($ifile)){
-            $idata = io_readFile($ifile);
-        }else{
-            $idata = '';
-        }
-        $data  = str_replace($match[0],$idata,$data);
-    }
-    echo "$data\n";
-}
-
-/**
- * Returns a list of possible Plugin Scripts (no existance check here)
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- *
- * @return array
- */
-function js_pluginscripts(){
-    $list = array();
-    $plugins = plugin_list();
-    foreach ($plugins as $p){
-        $list[] = DOKU_PLUGIN."$p/script.js";
-    }
-    return $list;
-}
-
-/**
- * Return an two-dimensional array with strings from the language file of each plugin.
- *
- * - $lang['js'] must be an array.
- * - Nothing is returned for plugins without an entry for $lang['js']
- *
- * @author Gabriel Birke <birke@d-scribe.de>
- *
- * @return array
- */
-function js_pluginstrings() {
-    global $conf, $config_cascade;
-    $pluginstrings = array();
-    $plugins = plugin_list();
-    foreach($plugins as $p) {
-        $path = DOKU_PLUGIN . $p . '/lang/';
-
-        if(isset($lang)) unset($lang);
-        if(file_exists($path . "en/lang.php")) {
-            include $path . "en/lang.php";
-        }
-        foreach($config_cascade['lang']['plugin'] as $config_file) {
-            if(file_exists($config_file . $p . '/en/lang.php')) {
-                include($config_file . $p . '/en/lang.php');
-            }
-        }
-        if(isset($conf['lang']) && $conf['lang'] != 'en') {
-            if(file_exists($path . $conf['lang'] . "/lang.php")) {
-                include($path . $conf['lang'] . '/lang.php');
-            }
-            foreach($config_cascade['lang']['plugin'] as $config_file) {
-                if(file_exists($config_file . $p . '/' . $conf['lang'] . '/lang.php')) {
-                    include($config_file . $p . '/' . $conf['lang'] . '/lang.php');
-                }
-            }
-        }
-
-        if(isset($lang['js'])) {
-            $pluginstrings[$p] = $lang['js'];
-        }
-    }
-    return $pluginstrings;
-}
-
-/**
- * Return an two-dimensional array with strings from the language file of current active template.
- *
- * - $lang['js'] must be an array.
- * - Nothing is returned for template without an entry for $lang['js']
- *
- * @param string $tpl
- * @return array
- */
-function js_templatestrings($tpl) {
-    global $conf, $config_cascade;
-
-    $path = tpl_incdir() . 'lang/';
-
-    $templatestrings = array();
-    if(file_exists($path . "en/lang.php")) {
-        include $path . "en/lang.php";
-    }
-    foreach($config_cascade['lang']['template'] as $config_file) {
-        if(file_exists($config_file . $conf['template'] . '/en/lang.php')) {
-            include($config_file . $conf['template'] . '/en/lang.php');
-        }
-    }
-    if(isset($conf['lang']) && $conf['lang'] != 'en' && file_exists($path . $conf['lang'] . "/lang.php")) {
-        include $path . $conf['lang'] . "/lang.php";
-    }
-    if(isset($conf['lang']) && $conf['lang'] != 'en') {
-        if(file_exists($path . $conf['lang'] . "/lang.php")) {
-            include $path . $conf['lang'] . "/lang.php";
-        }
-        foreach($config_cascade['lang']['template'] as $config_file) {
-            if(file_exists($config_file . $conf['template'] . '/' . $conf['lang'] . '/lang.php')) {
-                include($config_file . $conf['template'] . '/' . $conf['lang'] . '/lang.php');
-            }
-        }
-    }
-
-    if(isset($lang['js'])) {
-        $templatestrings[$tpl] = $lang['js'];
-    }
-    return $templatestrings;
-}
-
-/**
- * Escapes a String to be embedded in a JavaScript call, keeps \n
- * as newline
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- *
- * @param string $string
- * @return string
- */
-function js_escape($string){
-    return str_replace('\\\\n','\\n',addslashes($string));
-}
-
-/**
- * Adds the given JavaScript code to the window.onload() event
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- *
- * @param string $func
- */
-function js_runonstart($func){
-    echo "jQuery(function(){ $func; });".NL;
-}
-
-/**
- * Strip comments and whitespaces from given JavaScript Code
- *
- * This is a port of Nick Galbreath's python tool jsstrip.py which is
- * released under BSD license. See link for original code.
- *
- * @author Nick Galbreath <nickg@modp.com>
- * @author Andreas Gohr <andi@splitbrain.org>
- * @link   http://code.google.com/p/jsstrip/
- *
- * @param string $s
- * @return string
- */
-function js_compress($s){
-    $s = ltrim($s);     // strip all initial whitespace
-    $s .= "\n";
-    $i = 0;             // char index for input string
-    $j = 0;             // char forward index for input string
-    $line = 0;          // line number of file (close to it anyways)
-    $slen = strlen($s); // size of input string
-    $lch  = '';         // last char added
-    $result = '';       // we store the final result here
-
-    // items that don't need spaces next to them
-    $chars = "^&|!+\-*\/%=\?:;,{}()<>% \t\n\r'\"[]";
-
-    // items which need a space if the sign before and after whitespace is equal.
-    // E.g. '+ ++' may not be compressed to '+++' --> syntax error.
-    $ops = "+-";
-
-    $regex_starters = array("(", "=", "[", "," , ":", "!", "&", "|");
-
-    $whitespaces_chars = array(" ", "\t", "\n", "\r", "\0", "\x0B");
-
-    while($i < $slen){
-        // skip all "boring" characters.  This is either
-        // reserved word (e.g. "for", "else", "if") or a
-        // variable/object/method (e.g. "foo.color")
-        while ($i < $slen && (strpos($chars,$s[$i]) === false) ){
-            $result .= $s{$i};
-            $i = $i + 1;
-        }
-
-        $ch = $s{$i};
-        // multiline comments (keeping IE conditionals)
-        if($ch == '/' && $s{$i+1} == '*' && $s{$i+2} != '@'){
-            $endC = strpos($s,'*/',$i+2);
-            if($endC === false) trigger_error('Found invalid /*..*/ comment', E_USER_ERROR);
-
-            // check if this is a NOCOMPRESS comment
-            if(substr($s, $i, $endC+2-$i) == '/* BEGIN NOCOMPRESS */'){
-                $endNC = strpos($s, '/* END NOCOMPRESS */', $endC+2);
-                if($endNC === false) trigger_error('Found invalid NOCOMPRESS comment', E_USER_ERROR);
-
-                // verbatim copy contents, trimming but putting it on its own line
-                $result .= "\n".trim(substr($s, $i + 22, $endNC - ($i + 22)))."\n"; // BEGIN comment = 22 chars
-                $i = $endNC + 20; // END comment = 20 chars
-            }else{
-                $i = $endC + 2;
-            }
-            continue;
-        }
-
-        // singleline
-        if($ch == '/' && $s{$i+1} == '/'){
-            $endC = strpos($s,"\n",$i+2);
-            if($endC === false) trigger_error('Invalid comment', E_USER_ERROR);
-            $i = $endC;
-            continue;
-        }
-
-        // tricky.  might be an RE
-        if($ch == '/'){
-            // rewind, skip white space
-            $j = 1;
-            while(in_array($s{$i-$j}, $whitespaces_chars)){
-                $j = $j + 1;
-            }
-            if( in_array($s{$i-$j}, $regex_starters) ){
-                // yes, this is an re
-                // now move forward and find the end of it
-                $j = 1;
-                while($s{$i+$j} != '/'){
-                    if($s{$i+$j} == '\\') $j = $j + 2;
-                    else $j++;
-                }
-                $result .= substr($s,$i,$j+1);
-                $i = $i + $j + 1;
-                continue;
-            }
-        }
-
-        // double quote strings
-        if($ch == '"'){
-            $j = 1;
-            while( $s{$i+$j} != '"' && ($i+$j < $slen)){
-                if( $s{$i+$j} == '\\' && ($s{$i+$j+1} == '"' || $s{$i+$j+1} == '\\') ){
-                    $j += 2;
-                }else{
-                    $j += 1;
-                }
-            }
-            $string  = substr($s,$i,$j+1);
-            // remove multiline markers:
-            $string  = str_replace("\\\n",'',$string);
-            $result .= $string;
-            $i = $i + $j + 1;
-            continue;
-        }
-
-        // single quote strings
-        if($ch == "'"){
-            $j = 1;
-            while( $s{$i+$j} != "'" && ($i+$j < $slen)){
-                if( $s{$i+$j} == '\\' && ($s{$i+$j+1} == "'" || $s{$i+$j+1} == '\\') ){
-                    $j += 2;
-                }else{
-                    $j += 1;
-                }
-            }
-            $string = substr($s,$i,$j+1);
-            // remove multiline markers:
-            $string  = str_replace("\\\n",'',$string);
-            $result .= $string;
-            $i = $i + $j + 1;
-            continue;
-        }
-
-        // whitespaces
-        if( $ch == ' ' || $ch == "\r" || $ch == "\n" || $ch == "\t" ){
-            $lch = substr($result,-1);
-
-            // Only consider deleting whitespace if the signs before and after
-            // are not equal and are not an operator which may not follow itself.
-            if ($i+1 < $slen && ((!$lch || $s[$i+1] == ' ')
-                || $lch != $s[$i+1]
-                || strpos($ops,$s[$i+1]) === false)) {
-                // leading spaces
-                if($i+1 < $slen && (strpos($chars,$s[$i+1]) !== false)){
-                    $i = $i + 1;
-                    continue;
-                }
-                // trailing spaces
-                //  if this ch is space AND the last char processed
-                //  is special, then skip the space
-                if($lch && (strpos($chars,$lch) !== false)){
-                    $i = $i + 1;
-                    continue;
-                }
-            }
-
-            // else after all of this convert the "whitespace" to
-            // a single space.  It will get appended below
-            $ch = ' ';
-        }
-
-        // other chars
-        $result .= $ch;
-        $i = $i + 1;
-    }
-
-    return trim($result);
-}
-
-//Setup VIM: ex: et ts=4 :
diff --git a/wiki/lib/exe/manifest.php b/wiki/lib/exe/manifest.php
deleted file mode 100644
index e9a3528..0000000
--- a/wiki/lib/exe/manifest.php
+++ /dev/null
@@ -1,14 +0,0 @@
-<?php
-
-if (!defined('DOKU_INC')) {
-    define('DOKU_INC', __DIR__ . '/../../');
-}
-require_once(DOKU_INC . 'inc/init.php');
-
-if (!actionOK('manifest')) {
-    http_status(404, 'Manifest has been disabled in DokuWiki configuration.');
-    exit();
-}
-
-$manifest = new \dokuwiki\Manifest();
-$manifest->sendManifest();
diff --git a/wiki/lib/exe/mediamanager.php b/wiki/lib/exe/mediamanager.php
deleted file mode 100644
index 7222544..0000000
--- a/wiki/lib/exe/mediamanager.php
+++ /dev/null
@@ -1,126 +0,0 @@
-<?php
-    if(!defined('DOKU_INC')) define('DOKU_INC',dirname(__FILE__).'/../../');
-    define('DOKU_MEDIAMANAGER',1);
-
-    // for multi uploader:
-    @ini_set('session.use_only_cookies',0);
-
-    require_once(DOKU_INC.'inc/init.php');
-
-    global $INPUT;
-    global $lang;
-    global $conf;
-    // handle passed message
-    if($INPUT->str('msg1')) msg(hsc($INPUT->str('msg1')),1);
-    if($INPUT->str('err')) msg(hsc($INPUT->str('err')),-1);
-
-    global $DEL;
-    // get namespace to display (either direct or from deletion order)
-    if($INPUT->str('delete')){
-        $DEL = cleanID($INPUT->str('delete'));
-        $IMG = $DEL;
-        $NS  = getNS($DEL);
-    }elseif($INPUT->str('edit')){
-        $IMG = cleanID($INPUT->str('edit'));
-        $NS  = getNS($IMG);
-    }elseif($INPUT->str('img')){
-        $IMG = cleanID($INPUT->str('img'));
-        $NS  = getNS($IMG);
-    }else{
-        $NS = cleanID($INPUT->str('ns'));
-        $IMG = null;
-    }
-
-    global $INFO, $JSINFO;
-    $INFO = !empty($INFO) ? array_merge($INFO, mediainfo()) : mediainfo();
-    $JSINFO['id']        = '';
-    $JSINFO['namespace'] = '';
-    $AUTH = $INFO['perm'];    // shortcut for historical reasons
-
-    $tmp = array();
-    trigger_event('MEDIAMANAGER_STARTED', $tmp);
-    session_write_close();  //close session
-
-    // do not display the manager if user does not have read access
-    if($AUTH < AUTH_READ && !$fullscreen) {
-        http_status(403);
-        die($lang['accessdenied']);
-    }
-
-    // handle flash upload
-    if(isset($_FILES['Filedata'])){
-        $_FILES['upload'] =& $_FILES['Filedata'];
-        $JUMPTO = media_upload($NS,$AUTH);
-        if($JUMPTO == false){
-            http_status(400);
-            echo 'Upload failed';
-        }
-        echo 'ok';
-        exit;
-    }
-
-    // give info on PHP caught upload errors
-    if(!empty($_FILES['upload']['error'])){
-        switch($_FILES['upload']['error']){
-            case 1:
-            case 2:
-                msg(sprintf($lang['uploadsize'],
-                    filesize_h(php_to_byte(ini_get('upload_max_filesize')))),-1);
-                break;
-            default:
-                msg($lang['uploadfail'].' ('.$_FILES['upload']['error'].')',-1);
-        }
-        unset($_FILES['upload']);
-    }
-
-    // handle upload
-    if(!empty($_FILES['upload']['tmp_name'])){
-        $JUMPTO = media_upload($NS,$AUTH);
-        if($JUMPTO) $NS = getNS($JUMPTO);
-    }
-
-    // handle meta saving
-    if($IMG && @array_key_exists('save', $INPUT->arr('do'))){
-        $JUMPTO = media_metasave($IMG,$AUTH,$INPUT->arr('meta'));
-    }
-
-    if($IMG && ($INPUT->str('mediado') == 'save' || @array_key_exists('save', $INPUT->arr('mediado')))) {
-        $JUMPTO = media_metasave($IMG,$AUTH,$INPUT->arr('meta'));
-    }
-
-    if ($INPUT->int('rev') && $conf['mediarevisions']) $REV = $INPUT->int('rev');
-
-    if($INPUT->str('mediado') == 'restore' && $conf['mediarevisions']){
-        $JUMPTO = media_restore($INPUT->str('image'), $REV, $AUTH);
-    }
-
-    // handle deletion
-    if($DEL) {
-        $res = 0;
-        if(checkSecurityToken()) {
-            $res = media_delete($DEL,$AUTH);
-        }
-        if ($res & DOKU_MEDIA_DELETED) {
-            $msg = sprintf($lang['deletesucc'], noNS($DEL));
-            if ($res & DOKU_MEDIA_EMPTY_NS && !$fullscreen) {
-                // current namespace was removed. redirecting to root ns passing msg along
-                send_redirect(DOKU_URL.'lib/exe/mediamanager.php?msg1='.
-                        rawurlencode($msg).'&edid='.$INPUT->str('edid'));
-            }
-            msg($msg,1);
-        } elseif ($res & DOKU_MEDIA_INUSE) {
-            if(!$conf['refshow']) {
-                msg(sprintf($lang['mediainuse'],noNS($DEL)),0);
-            }
-        } else {
-            msg(sprintf($lang['deletefail'],noNS($DEL)),-1);
-        }
-    }
-    // finished - start output
-
-    if (!$fullscreen) {
-        header('Content-Type: text/html; charset=utf-8');
-        include(template('mediamanager.php'));
-    }
-
-/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
diff --git a/wiki/lib/exe/opensearch.php b/wiki/lib/exe/opensearch.php
deleted file mode 100644
index b00b2b7..0000000
--- a/wiki/lib/exe/opensearch.php
+++ /dev/null
@@ -1,38 +0,0 @@
-<?php
-/**
- * DokuWiki OpenSearch creator
- *
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * @link       http://www.opensearch.org/
- * @author     Mike Frysinger <vapier@gentoo.org>
- * @author     Andreas Gohr <andi@splitbrain.org>
- */
-
-if(!defined('DOKU_INC')) define('DOKU_INC',dirname(__FILE__).'/../../');
-if(!defined('NOSESSION')) define('NOSESSION',true); // we do not use a session or authentication here (better caching)
-if(!defined('NL')) define('NL',"\n");
-require_once(DOKU_INC.'inc/init.php');
-
-// try to be clever about the favicon location
-if(file_exists(DOKU_INC.'favicon.ico')){
-    $ico = DOKU_URL.'favicon.ico';
-}elseif(file_exists(tpl_incdir().'images/favicon.ico')){
-    $ico = DOKU_URL.'lib/tpl/'.$conf['template'].'/images/favicon.ico';
-}elseif(file_exists(tpl_incdir().'favicon.ico')){
-    $ico = DOKU_URL.'lib/tpl/'.$conf['template'].'/favicon.ico';
-}else{
-    $ico = DOKU_URL.'lib/tpl/dokuwiki/images/favicon.ico';
-}
-
-// output
-header('Content-Type: application/opensearchdescription+xml; charset=utf-8');
-echo '<?xml version="1.0"?>'.NL;
-echo '<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/">'.NL;
-echo '  <ShortName>'.hsc($conf['title']).'</ShortName>'.NL;
-echo '  <Image width="16" height="16" type="image/x-icon">'.$ico.'</Image>'.NL;
-echo '  <Url type="text/html" template="'.DOKU_URL.DOKU_SCRIPT.'?do=search&amp;id={searchTerms}" />'.NL;
-echo '  <Url type="application/x-suggestions+json" template="'.
-        DOKU_URL.'lib/exe/ajax.php?call=suggestions&amp;q={searchTerms}" />'.NL;
-echo '</OpenSearchDescription>'.NL;
-
-//Setup VIM: ex: et ts=4 :
diff --git a/wiki/lib/exe/xmlrpc.php b/wiki/lib/exe/xmlrpc.php
deleted file mode 100644
index 3046f47..0000000
--- a/wiki/lib/exe/xmlrpc.php
+++ /dev/null
@@ -1,67 +0,0 @@
-<?php
-if(!defined('DOKU_INC')) define('DOKU_INC',dirname(__FILE__).'/../../');
-
-require_once(DOKU_INC.'inc/init.php');
-session_write_close();  //close session
-
-if(!$conf['remote']) die((new IXR_Error(-32605, "XML-RPC server not enabled."))->getXml());
-
-/**
- * Contains needed wrapper functions and registers all available
- * XMLRPC functions.
- */
-class dokuwiki_xmlrpc_server extends IXR_Server {
-    protected $remote;
-
-    /**
-     * Constructor. Register methods and run Server
-     */
-    public function __construct(){
-        $this->remote = new RemoteAPI();
-        $this->remote->setDateTransformation(array($this, 'toDate'));
-        $this->remote->setFileTransformation(array($this, 'toFile'));
-        parent::__construct();
-    }
-
-    /**
-     * @param string $methodname
-     * @param array $args
-     * @return IXR_Error|mixed
-     */
-    public function call($methodname, $args){
-        try {
-            $result = $this->remote->call($methodname, $args);
-            return $result;
-        } catch (RemoteAccessDeniedException $e) {
-            if (!isset($_SERVER['REMOTE_USER'])) {
-                http_status(401);
-                return new IXR_Error(-32603, "server error. not authorized to call method $methodname");
-            } else {
-                http_status(403);
-                return new IXR_Error(-32604, "server error. forbidden to call the method $methodname");
-            }
-        } catch (RemoteException $e) {
-            return new IXR_Error($e->getCode(), $e->getMessage());
-        }
-    }
-
-    /**
-     * @param string|int $data iso date(yyyy[-]mm[-]dd[ hh:mm[:ss]]) or timestamp
-     * @return IXR_Date
-     */
-    public function toDate($data) {
-        return new IXR_Date($data);
-    }
-
-    /**
-     * @param string $data
-     * @return IXR_Base64
-     */
-    public function toFile($data) {
-        return new IXR_Base64($data);
-    }
-}
-
-$server = new dokuwiki_xmlrpc_server();
-
-// vim:ts=4:sw=4:et:
diff --git a/wiki/lib/images/README b/wiki/lib/images/README
deleted file mode 100644
index e2788b4..0000000
--- a/wiki/lib/images/README
+++ /dev/null
@@ -1,6 +0,0 @@
-
-Icons:      email.png, external-link.png, unc.png
-Icon set:   Dusseldorf
-Designer:   pc.de
-License:    Creative Commons Attribution License [http://creativecommons.org/licenses/by/3.0/]
-URL:        http://pc.de/icons/#Dusseldorf
diff --git a/wiki/lib/images/_deprecated.txt b/wiki/lib/images/_deprecated.txt
deleted file mode 100644
index a347f8b..0000000
--- a/wiki/lib/images/_deprecated.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-
-(none)
diff --git a/wiki/lib/images/admin/README b/wiki/lib/images/admin/README
deleted file mode 100644
index 53e7d83..0000000
--- a/wiki/lib/images/admin/README
+++ /dev/null
@@ -1,4 +0,0 @@
-These icons were taken from the nuvoX KDE icon theme and are GPL licensed
-See http://www.kde-look.org/content/show.php/nuvoX?content=38467
-
-styling.png from https://openclipart.org/detail/25595/brush Public Domain
diff --git a/wiki/lib/images/admin/acl.png b/wiki/lib/images/admin/acl.png
deleted file mode 100644
index 542e108..0000000
--- a/wiki/lib/images/admin/acl.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/admin/config.png b/wiki/lib/images/admin/config.png
deleted file mode 100644
index 679a673..0000000
--- a/wiki/lib/images/admin/config.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/admin/plugin.png b/wiki/lib/images/admin/plugin.png
deleted file mode 100644
index 27bd154..0000000
--- a/wiki/lib/images/admin/plugin.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/admin/popularity.png b/wiki/lib/images/admin/popularity.png
deleted file mode 100644
index e18a8cb..0000000
--- a/wiki/lib/images/admin/popularity.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/admin/revert.png b/wiki/lib/images/admin/revert.png
deleted file mode 100644
index c74c792..0000000
--- a/wiki/lib/images/admin/revert.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/admin/styling.png b/wiki/lib/images/admin/styling.png
deleted file mode 100644
index 859c8c9..0000000
--- a/wiki/lib/images/admin/styling.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/admin/usermanager.png b/wiki/lib/images/admin/usermanager.png
deleted file mode 100644
index e6f72e0..0000000
--- a/wiki/lib/images/admin/usermanager.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/blank.gif b/wiki/lib/images/blank.gif
deleted file mode 100644
index 9935f82..0000000
--- a/wiki/lib/images/blank.gif
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/bullet.png b/wiki/lib/images/bullet.png
deleted file mode 100644
index b8ec60c..0000000
--- a/wiki/lib/images/bullet.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/closed-rtl.png b/wiki/lib/images/closed-rtl.png
deleted file mode 100644
index 016a3c3..0000000
--- a/wiki/lib/images/closed-rtl.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/closed.png b/wiki/lib/images/closed.png
deleted file mode 100644
index 927bfc5..0000000
--- a/wiki/lib/images/closed.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/diff.png b/wiki/lib/images/diff.png
deleted file mode 100644
index 04fab07..0000000
--- a/wiki/lib/images/diff.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/email.png b/wiki/lib/images/email.png
deleted file mode 100644
index 575b831..0000000
--- a/wiki/lib/images/email.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/error.png b/wiki/lib/images/error.png
deleted file mode 100644
index da06924..0000000
--- a/wiki/lib/images/error.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/external-link.png b/wiki/lib/images/external-link.png
deleted file mode 100644
index fecac61..0000000
--- a/wiki/lib/images/external-link.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/32x32/7z.png b/wiki/lib/images/fileicons/32x32/7z.png
deleted file mode 100644
index 2537cb9..0000000
--- a/wiki/lib/images/fileicons/32x32/7z.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/32x32/asm.png b/wiki/lib/images/fileicons/32x32/asm.png
deleted file mode 100644
index 17e74d0..0000000
--- a/wiki/lib/images/fileicons/32x32/asm.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/32x32/bash.png b/wiki/lib/images/fileicons/32x32/bash.png
deleted file mode 100644
index a31ee68..0000000
--- a/wiki/lib/images/fileicons/32x32/bash.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/32x32/bz2.png b/wiki/lib/images/fileicons/32x32/bz2.png
deleted file mode 100644
index c780316..0000000
--- a/wiki/lib/images/fileicons/32x32/bz2.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/32x32/c.png b/wiki/lib/images/fileicons/32x32/c.png
deleted file mode 100644
index d8032d0..0000000
--- a/wiki/lib/images/fileicons/32x32/c.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/32x32/cc.png b/wiki/lib/images/fileicons/32x32/cc.png
deleted file mode 100644
index 241ebd4..0000000
--- a/wiki/lib/images/fileicons/32x32/cc.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/32x32/conf.png b/wiki/lib/images/fileicons/32x32/conf.png
deleted file mode 100644
index 9797c2a..0000000
--- a/wiki/lib/images/fileicons/32x32/conf.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/32x32/cpp.png b/wiki/lib/images/fileicons/32x32/cpp.png
deleted file mode 100644
index 1289065..0000000
--- a/wiki/lib/images/fileicons/32x32/cpp.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/32x32/cs.png b/wiki/lib/images/fileicons/32x32/cs.png
deleted file mode 100644
index 6c2aae2..0000000
--- a/wiki/lib/images/fileicons/32x32/cs.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/32x32/csh.png b/wiki/lib/images/fileicons/32x32/csh.png
deleted file mode 100644
index e43584c..0000000
--- a/wiki/lib/images/fileicons/32x32/csh.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/32x32/css.png b/wiki/lib/images/fileicons/32x32/css.png
deleted file mode 100644
index 786f304..0000000
--- a/wiki/lib/images/fileicons/32x32/css.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/32x32/csv.png b/wiki/lib/images/fileicons/32x32/csv.png
deleted file mode 100644
index e5cdbf9..0000000
--- a/wiki/lib/images/fileicons/32x32/csv.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/32x32/deb.png b/wiki/lib/images/fileicons/32x32/deb.png
deleted file mode 100644
index e2828a3..0000000
--- a/wiki/lib/images/fileicons/32x32/deb.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/32x32/diff.png b/wiki/lib/images/fileicons/32x32/diff.png
deleted file mode 100644
index 9e413cb..0000000
--- a/wiki/lib/images/fileicons/32x32/diff.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/32x32/doc.png b/wiki/lib/images/fileicons/32x32/doc.png
deleted file mode 100644
index 43ec354..0000000
--- a/wiki/lib/images/fileicons/32x32/doc.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/32x32/docx.png b/wiki/lib/images/fileicons/32x32/docx.png
deleted file mode 100644
index a25f260..0000000
--- a/wiki/lib/images/fileicons/32x32/docx.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/32x32/file.png b/wiki/lib/images/fileicons/32x32/file.png
deleted file mode 100644
index 7f6d51a..0000000
--- a/wiki/lib/images/fileicons/32x32/file.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/32x32/gif.png b/wiki/lib/images/fileicons/32x32/gif.png
deleted file mode 100644
index dde2d84..0000000
--- a/wiki/lib/images/fileicons/32x32/gif.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/32x32/gz.png b/wiki/lib/images/fileicons/32x32/gz.png
deleted file mode 100644
index 5bddffb..0000000
--- a/wiki/lib/images/fileicons/32x32/gz.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/32x32/h.png b/wiki/lib/images/fileicons/32x32/h.png
deleted file mode 100644
index 5c169a3..0000000
--- a/wiki/lib/images/fileicons/32x32/h.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/32x32/hpp.png b/wiki/lib/images/fileicons/32x32/hpp.png
deleted file mode 100644
index 128110d..0000000
--- a/wiki/lib/images/fileicons/32x32/hpp.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/32x32/htm.png b/wiki/lib/images/fileicons/32x32/htm.png
deleted file mode 100644
index 79096dc..0000000
--- a/wiki/lib/images/fileicons/32x32/htm.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/32x32/html.png b/wiki/lib/images/fileicons/32x32/html.png
deleted file mode 100644
index 79096dc..0000000
--- a/wiki/lib/images/fileicons/32x32/html.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/32x32/ico.png b/wiki/lib/images/fileicons/32x32/ico.png
deleted file mode 100644
index 60f73bd..0000000
--- a/wiki/lib/images/fileicons/32x32/ico.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/32x32/java.png b/wiki/lib/images/fileicons/32x32/java.png
deleted file mode 100644
index 1d86949..0000000
--- a/wiki/lib/images/fileicons/32x32/java.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/32x32/jpeg.png b/wiki/lib/images/fileicons/32x32/jpeg.png
deleted file mode 100644
index 4b5c425..0000000
--- a/wiki/lib/images/fileicons/32x32/jpeg.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/32x32/jpg.png b/wiki/lib/images/fileicons/32x32/jpg.png
deleted file mode 100644
index 4b5c425..0000000
--- a/wiki/lib/images/fileicons/32x32/jpg.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/32x32/js.png b/wiki/lib/images/fileicons/32x32/js.png
deleted file mode 100644
index 5a8dabe..0000000
--- a/wiki/lib/images/fileicons/32x32/js.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/32x32/json.png b/wiki/lib/images/fileicons/32x32/json.png
deleted file mode 100644
index e4a55e6..0000000
--- a/wiki/lib/images/fileicons/32x32/json.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/32x32/lua.png b/wiki/lib/images/fileicons/32x32/lua.png
deleted file mode 100644
index c8e0bf2..0000000
--- a/wiki/lib/images/fileicons/32x32/lua.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/32x32/mp3.png b/wiki/lib/images/fileicons/32x32/mp3.png
deleted file mode 100644
index 9bf1695..0000000
--- a/wiki/lib/images/fileicons/32x32/mp3.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/32x32/mp4.png b/wiki/lib/images/fileicons/32x32/mp4.png
deleted file mode 100644
index 071abc3..0000000
--- a/wiki/lib/images/fileicons/32x32/mp4.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/32x32/odc.png b/wiki/lib/images/fileicons/32x32/odc.png
deleted file mode 100644
index 3ad6a3c..0000000
--- a/wiki/lib/images/fileicons/32x32/odc.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/32x32/odf.png b/wiki/lib/images/fileicons/32x32/odf.png
deleted file mode 100644
index 8dd89ea..0000000
--- a/wiki/lib/images/fileicons/32x32/odf.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/32x32/odg.png b/wiki/lib/images/fileicons/32x32/odg.png
deleted file mode 100644
index 7020d13..0000000
--- a/wiki/lib/images/fileicons/32x32/odg.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/32x32/odi.png b/wiki/lib/images/fileicons/32x32/odi.png
deleted file mode 100644
index 9a08a42..0000000
--- a/wiki/lib/images/fileicons/32x32/odi.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/32x32/odp.png b/wiki/lib/images/fileicons/32x32/odp.png
deleted file mode 100644
index e6b538d..0000000
--- a/wiki/lib/images/fileicons/32x32/odp.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/32x32/ods.png b/wiki/lib/images/fileicons/32x32/ods.png
deleted file mode 100644
index cf4a226..0000000
--- a/wiki/lib/images/fileicons/32x32/ods.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/32x32/odt.png b/wiki/lib/images/fileicons/32x32/odt.png
deleted file mode 100644
index 1eae19c..0000000
--- a/wiki/lib/images/fileicons/32x32/odt.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/32x32/ogg.png b/wiki/lib/images/fileicons/32x32/ogg.png
deleted file mode 100644
index d7b0553..0000000
--- a/wiki/lib/images/fileicons/32x32/ogg.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/32x32/ogv.png b/wiki/lib/images/fileicons/32x32/ogv.png
deleted file mode 100644
index 4fdedba..0000000
--- a/wiki/lib/images/fileicons/32x32/ogv.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/32x32/pas.png b/wiki/lib/images/fileicons/32x32/pas.png
deleted file mode 100644
index 8d2999e..0000000
--- a/wiki/lib/images/fileicons/32x32/pas.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/32x32/pdf.png b/wiki/lib/images/fileicons/32x32/pdf.png
deleted file mode 100644
index 09ae62e..0000000
--- a/wiki/lib/images/fileicons/32x32/pdf.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/32x32/php.png b/wiki/lib/images/fileicons/32x32/php.png
deleted file mode 100644
index 1f4cabf..0000000
--- a/wiki/lib/images/fileicons/32x32/php.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/32x32/pl.png b/wiki/lib/images/fileicons/32x32/pl.png
deleted file mode 100644
index 038e9f3..0000000
--- a/wiki/lib/images/fileicons/32x32/pl.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/32x32/png.png b/wiki/lib/images/fileicons/32x32/png.png
deleted file mode 100644
index e3ea1c3..0000000
--- a/wiki/lib/images/fileicons/32x32/png.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/32x32/ppt.png b/wiki/lib/images/fileicons/32x32/ppt.png
deleted file mode 100644
index acee945..0000000
--- a/wiki/lib/images/fileicons/32x32/ppt.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/32x32/pptx.png b/wiki/lib/images/fileicons/32x32/pptx.png
deleted file mode 100644
index b57b091..0000000
--- a/wiki/lib/images/fileicons/32x32/pptx.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/32x32/ps.png b/wiki/lib/images/fileicons/32x32/ps.png
deleted file mode 100644
index 523a0be..0000000
--- a/wiki/lib/images/fileicons/32x32/ps.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/32x32/py.png b/wiki/lib/images/fileicons/32x32/py.png
deleted file mode 100644
index ae6e06a..0000000
--- a/wiki/lib/images/fileicons/32x32/py.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/32x32/rar.png b/wiki/lib/images/fileicons/32x32/rar.png
deleted file mode 100644
index 5b1cfcb..0000000
--- a/wiki/lib/images/fileicons/32x32/rar.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/32x32/rb.png b/wiki/lib/images/fileicons/32x32/rb.png
deleted file mode 100644
index 398f208..0000000
--- a/wiki/lib/images/fileicons/32x32/rb.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/32x32/rpm.png b/wiki/lib/images/fileicons/32x32/rpm.png
deleted file mode 100644
index c66a907..0000000
--- a/wiki/lib/images/fileicons/32x32/rpm.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/32x32/rtf.png b/wiki/lib/images/fileicons/32x32/rtf.png
deleted file mode 100644
index 43182f3..0000000
--- a/wiki/lib/images/fileicons/32x32/rtf.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/32x32/sh.png b/wiki/lib/images/fileicons/32x32/sh.png
deleted file mode 100644
index 52e3f95..0000000
--- a/wiki/lib/images/fileicons/32x32/sh.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/32x32/sql.png b/wiki/lib/images/fileicons/32x32/sql.png
deleted file mode 100644
index bb23e56..0000000
--- a/wiki/lib/images/fileicons/32x32/sql.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/32x32/swf.png b/wiki/lib/images/fileicons/32x32/swf.png
deleted file mode 100644
index be8f546..0000000
--- a/wiki/lib/images/fileicons/32x32/swf.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/32x32/sxc.png b/wiki/lib/images/fileicons/32x32/sxc.png
deleted file mode 100644
index cc45ffa..0000000
--- a/wiki/lib/images/fileicons/32x32/sxc.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/32x32/sxd.png b/wiki/lib/images/fileicons/32x32/sxd.png
deleted file mode 100644
index 26f44c2..0000000
--- a/wiki/lib/images/fileicons/32x32/sxd.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/32x32/sxi.png b/wiki/lib/images/fileicons/32x32/sxi.png
deleted file mode 100644
index 62e90bc..0000000
--- a/wiki/lib/images/fileicons/32x32/sxi.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/32x32/sxw.png b/wiki/lib/images/fileicons/32x32/sxw.png
deleted file mode 100644
index 5196307..0000000
--- a/wiki/lib/images/fileicons/32x32/sxw.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/32x32/tar.png b/wiki/lib/images/fileicons/32x32/tar.png
deleted file mode 100644
index 8eb0ef4..0000000
--- a/wiki/lib/images/fileicons/32x32/tar.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/32x32/tgz.png b/wiki/lib/images/fileicons/32x32/tgz.png
deleted file mode 100644
index 77faacb..0000000
--- a/wiki/lib/images/fileicons/32x32/tgz.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/32x32/txt.png b/wiki/lib/images/fileicons/32x32/txt.png
deleted file mode 100644
index 5d09e3c..0000000
--- a/wiki/lib/images/fileicons/32x32/txt.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/32x32/wav.png b/wiki/lib/images/fileicons/32x32/wav.png
deleted file mode 100644
index 37b871b..0000000
--- a/wiki/lib/images/fileicons/32x32/wav.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/32x32/webm.png b/wiki/lib/images/fileicons/32x32/webm.png
deleted file mode 100644
index 9044845..0000000
--- a/wiki/lib/images/fileicons/32x32/webm.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/32x32/xls.png b/wiki/lib/images/fileicons/32x32/xls.png
deleted file mode 100644
index 1c21a6e..0000000
--- a/wiki/lib/images/fileicons/32x32/xls.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/32x32/xlsx.png b/wiki/lib/images/fileicons/32x32/xlsx.png
deleted file mode 100644
index cba5937..0000000
--- a/wiki/lib/images/fileicons/32x32/xlsx.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/32x32/xml.png b/wiki/lib/images/fileicons/32x32/xml.png
deleted file mode 100644
index 8eee583..0000000
--- a/wiki/lib/images/fileicons/32x32/xml.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/32x32/zip.png b/wiki/lib/images/fileicons/32x32/zip.png
deleted file mode 100644
index 0ce83b6..0000000
--- a/wiki/lib/images/fileicons/32x32/zip.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/7z.png b/wiki/lib/images/fileicons/7z.png
deleted file mode 100644
index fa6abe3..0000000
--- a/wiki/lib/images/fileicons/7z.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/README b/wiki/lib/images/fileicons/README
deleted file mode 100644
index 0538586..0000000
--- a/wiki/lib/images/fileicons/README
+++ /dev/null
@@ -1,2 +0,0 @@
-For the generator of these files see
-https://github.com/splitbrain/file-icon-generator/blob/master/example-dokuwiki.php
diff --git a/wiki/lib/images/fileicons/asm.png b/wiki/lib/images/fileicons/asm.png
deleted file mode 100644
index c22c451..0000000
--- a/wiki/lib/images/fileicons/asm.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/bash.png b/wiki/lib/images/fileicons/bash.png
deleted file mode 100644
index f352cfd..0000000
--- a/wiki/lib/images/fileicons/bash.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/bz2.png b/wiki/lib/images/fileicons/bz2.png
deleted file mode 100644
index a1b048f..0000000
--- a/wiki/lib/images/fileicons/bz2.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/c.png b/wiki/lib/images/fileicons/c.png
deleted file mode 100644
index 51d9c7f..0000000
--- a/wiki/lib/images/fileicons/c.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/cc.png b/wiki/lib/images/fileicons/cc.png
deleted file mode 100644
index 8aeae79..0000000
--- a/wiki/lib/images/fileicons/cc.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/conf.png b/wiki/lib/images/fileicons/conf.png
deleted file mode 100644
index c845d49..0000000
--- a/wiki/lib/images/fileicons/conf.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/cpp.png b/wiki/lib/images/fileicons/cpp.png
deleted file mode 100644
index 1a04c32..0000000
--- a/wiki/lib/images/fileicons/cpp.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/cs.png b/wiki/lib/images/fileicons/cs.png
deleted file mode 100644
index 740725a..0000000
--- a/wiki/lib/images/fileicons/cs.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/csh.png b/wiki/lib/images/fileicons/csh.png
deleted file mode 100644
index c0131c5..0000000
--- a/wiki/lib/images/fileicons/csh.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/css.png b/wiki/lib/images/fileicons/css.png
deleted file mode 100644
index 89ac364..0000000
--- a/wiki/lib/images/fileicons/css.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/csv.png b/wiki/lib/images/fileicons/csv.png
deleted file mode 100644
index 837ae29..0000000
--- a/wiki/lib/images/fileicons/csv.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/deb.png b/wiki/lib/images/fileicons/deb.png
deleted file mode 100644
index 1db6fa5..0000000
--- a/wiki/lib/images/fileicons/deb.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/diff.png b/wiki/lib/images/fileicons/diff.png
deleted file mode 100644
index 03e9af9..0000000
--- a/wiki/lib/images/fileicons/diff.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/doc.png b/wiki/lib/images/fileicons/doc.png
deleted file mode 100644
index dcc070f..0000000
--- a/wiki/lib/images/fileicons/doc.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/docx.png b/wiki/lib/images/fileicons/docx.png
deleted file mode 100644
index 1a98a8d..0000000
--- a/wiki/lib/images/fileicons/docx.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/file.png b/wiki/lib/images/fileicons/file.png
deleted file mode 100644
index 54fe8ab..0000000
--- a/wiki/lib/images/fileicons/file.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/gif.png b/wiki/lib/images/fileicons/gif.png
deleted file mode 100644
index 38bdbf2..0000000
--- a/wiki/lib/images/fileicons/gif.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/gz.png b/wiki/lib/images/fileicons/gz.png
deleted file mode 100644
index 422693a..0000000
--- a/wiki/lib/images/fileicons/gz.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/h.png b/wiki/lib/images/fileicons/h.png
deleted file mode 100644
index d65f2f5..0000000
--- a/wiki/lib/images/fileicons/h.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/hpp.png b/wiki/lib/images/fileicons/hpp.png
deleted file mode 100644
index 6d314f5..0000000
--- a/wiki/lib/images/fileicons/hpp.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/htm.png b/wiki/lib/images/fileicons/htm.png
deleted file mode 100644
index f45847f..0000000
--- a/wiki/lib/images/fileicons/htm.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/html.png b/wiki/lib/images/fileicons/html.png
deleted file mode 100644
index f45847f..0000000
--- a/wiki/lib/images/fileicons/html.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/ico.png b/wiki/lib/images/fileicons/ico.png
deleted file mode 100644
index 38aa34b..0000000
--- a/wiki/lib/images/fileicons/ico.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/index.php b/wiki/lib/images/fileicons/index.php
deleted file mode 100644
index 09b6c9d..0000000
--- a/wiki/lib/images/fileicons/index.php
+++ /dev/null
@@ -1,67 +0,0 @@
-<!DOCTYPE html>
-<html lang="en" dir="ltr">
-<head>
-    <title>filetype icons</title>
-
-    <style type="text/css">
-        body {
-            background-color: #ccc;
-            font-family: Arial;
-        }
-
-        .box {
-            width: 200px;
-            float:left;
-            padding: 0.5em;
-            margin: 0;
-        }
-
-        .white {
-            background-color: #fff;
-        }
-
-        .black {
-            background-color: #000;
-        }
-    </style>
-
-</head>
-<body>
-
-<div class="white box">
-<?php
-foreach (glob('*.png') as $img) {
-    echo '<img src="'.$img.'" alt="'.$img.'" title="'.$img.'" /> ';
-}
-?>
-</div>
-
-<div class="black box">
-<?php
-foreach (glob('*.png') as $img) {
-    echo '<img src="'.$img.'" alt="'.$img.'" title="'.$img.'" /> ';
-}
-?>
-</div>
-
-<br style="clear: left" />
-
-<div class="white box">
-    <?php
-    foreach (glob('32x32/*.png') as $img) {
-        echo '<img src="'.$img.'" alt="'.$img.'" title="'.$img.'" /> ';
-    }
-    ?>
-</div>
-
-<div class="black box">
-    <?php
-    foreach (glob('32x32/*.png') as $img) {
-        echo '<img src="'.$img.'" alt="'.$img.'" title="'.$img.'" /> ';
-    }
-    ?>
-</div>
-
-
-</body>
-</html>
diff --git a/wiki/lib/images/fileicons/java.png b/wiki/lib/images/fileicons/java.png
deleted file mode 100644
index 0c62347..0000000
--- a/wiki/lib/images/fileicons/java.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/jpeg.png b/wiki/lib/images/fileicons/jpeg.png
deleted file mode 100644
index e446dd4..0000000
--- a/wiki/lib/images/fileicons/jpeg.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/jpg.png b/wiki/lib/images/fileicons/jpg.png
deleted file mode 100644
index e446dd4..0000000
--- a/wiki/lib/images/fileicons/jpg.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/js.png b/wiki/lib/images/fileicons/js.png
deleted file mode 100644
index bee428f..0000000
--- a/wiki/lib/images/fileicons/js.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/json.png b/wiki/lib/images/fileicons/json.png
deleted file mode 100644
index 4d0a3cf..0000000
--- a/wiki/lib/images/fileicons/json.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/lua.png b/wiki/lib/images/fileicons/lua.png
deleted file mode 100644
index fcebe3d..0000000
--- a/wiki/lib/images/fileicons/lua.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/mp3.png b/wiki/lib/images/fileicons/mp3.png
deleted file mode 100644
index 2be976f..0000000
--- a/wiki/lib/images/fileicons/mp3.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/mp4.png b/wiki/lib/images/fileicons/mp4.png
deleted file mode 100644
index dc6fd00..0000000
--- a/wiki/lib/images/fileicons/mp4.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/odc.png b/wiki/lib/images/fileicons/odc.png
deleted file mode 100644
index bf3b3a1..0000000
--- a/wiki/lib/images/fileicons/odc.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/odf.png b/wiki/lib/images/fileicons/odf.png
deleted file mode 100644
index fcfc58f..0000000
--- a/wiki/lib/images/fileicons/odf.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/odg.png b/wiki/lib/images/fileicons/odg.png
deleted file mode 100644
index 0a8196c..0000000
--- a/wiki/lib/images/fileicons/odg.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/odi.png b/wiki/lib/images/fileicons/odi.png
deleted file mode 100644
index 0fc8508..0000000
--- a/wiki/lib/images/fileicons/odi.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/odp.png b/wiki/lib/images/fileicons/odp.png
deleted file mode 100644
index 75b1db8..0000000
--- a/wiki/lib/images/fileicons/odp.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/ods.png b/wiki/lib/images/fileicons/ods.png
deleted file mode 100644
index 2017426..0000000
--- a/wiki/lib/images/fileicons/ods.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/odt.png b/wiki/lib/images/fileicons/odt.png
deleted file mode 100644
index 6f8fae4..0000000
--- a/wiki/lib/images/fileicons/odt.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/ogg.png b/wiki/lib/images/fileicons/ogg.png
deleted file mode 100644
index 8bb5080..0000000
--- a/wiki/lib/images/fileicons/ogg.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/ogv.png b/wiki/lib/images/fileicons/ogv.png
deleted file mode 100644
index e6b65ac..0000000
--- a/wiki/lib/images/fileicons/ogv.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/pas.png b/wiki/lib/images/fileicons/pas.png
deleted file mode 100644
index 19f0a3c..0000000
--- a/wiki/lib/images/fileicons/pas.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/pdf.png b/wiki/lib/images/fileicons/pdf.png
deleted file mode 100644
index 42fbfd2..0000000
--- a/wiki/lib/images/fileicons/pdf.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/php.png b/wiki/lib/images/fileicons/php.png
deleted file mode 100644
index de0d8ee..0000000
--- a/wiki/lib/images/fileicons/php.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/pl.png b/wiki/lib/images/fileicons/pl.png
deleted file mode 100644
index d95513d..0000000
--- a/wiki/lib/images/fileicons/pl.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/png.png b/wiki/lib/images/fileicons/png.png
deleted file mode 100644
index 273476d..0000000
--- a/wiki/lib/images/fileicons/png.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/ppt.png b/wiki/lib/images/fileicons/ppt.png
deleted file mode 100644
index a03d3c0..0000000
--- a/wiki/lib/images/fileicons/ppt.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/pptx.png b/wiki/lib/images/fileicons/pptx.png
deleted file mode 100644
index 9b5c633..0000000
--- a/wiki/lib/images/fileicons/pptx.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/ps.png b/wiki/lib/images/fileicons/ps.png
deleted file mode 100644
index 3b7848c..0000000
--- a/wiki/lib/images/fileicons/ps.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/py.png b/wiki/lib/images/fileicons/py.png
deleted file mode 100644
index 893019e..0000000
--- a/wiki/lib/images/fileicons/py.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/rar.png b/wiki/lib/images/fileicons/rar.png
deleted file mode 100644
index 091a635..0000000
--- a/wiki/lib/images/fileicons/rar.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/rb.png b/wiki/lib/images/fileicons/rb.png
deleted file mode 100644
index 9b58db0..0000000
--- a/wiki/lib/images/fileicons/rb.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/rpm.png b/wiki/lib/images/fileicons/rpm.png
deleted file mode 100644
index 75da50e..0000000
--- a/wiki/lib/images/fileicons/rpm.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/rtf.png b/wiki/lib/images/fileicons/rtf.png
deleted file mode 100644
index 2e5a6e5..0000000
--- a/wiki/lib/images/fileicons/rtf.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/sh.png b/wiki/lib/images/fileicons/sh.png
deleted file mode 100644
index bc48354..0000000
--- a/wiki/lib/images/fileicons/sh.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/sql.png b/wiki/lib/images/fileicons/sql.png
deleted file mode 100644
index c36f3a8..0000000
--- a/wiki/lib/images/fileicons/sql.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/swf.png b/wiki/lib/images/fileicons/swf.png
deleted file mode 100644
index 5c88387..0000000
--- a/wiki/lib/images/fileicons/swf.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/sxc.png b/wiki/lib/images/fileicons/sxc.png
deleted file mode 100644
index 3b5c71f..0000000
--- a/wiki/lib/images/fileicons/sxc.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/sxd.png b/wiki/lib/images/fileicons/sxd.png
deleted file mode 100644
index 15390cd..0000000
--- a/wiki/lib/images/fileicons/sxd.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/sxi.png b/wiki/lib/images/fileicons/sxi.png
deleted file mode 100644
index a0fb654..0000000
--- a/wiki/lib/images/fileicons/sxi.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/sxw.png b/wiki/lib/images/fileicons/sxw.png
deleted file mode 100644
index 865dc0c..0000000
--- a/wiki/lib/images/fileicons/sxw.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/tar.png b/wiki/lib/images/fileicons/tar.png
deleted file mode 100644
index 8f9fd0f..0000000
--- a/wiki/lib/images/fileicons/tar.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/tgz.png b/wiki/lib/images/fileicons/tgz.png
deleted file mode 100644
index 8423ef0..0000000
--- a/wiki/lib/images/fileicons/tgz.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/txt.png b/wiki/lib/images/fileicons/txt.png
deleted file mode 100644
index 1619cc4..0000000
--- a/wiki/lib/images/fileicons/txt.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/wav.png b/wiki/lib/images/fileicons/wav.png
deleted file mode 100644
index 80eac97..0000000
--- a/wiki/lib/images/fileicons/wav.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/webm.png b/wiki/lib/images/fileicons/webm.png
deleted file mode 100644
index cec3e6d..0000000
--- a/wiki/lib/images/fileicons/webm.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/xls.png b/wiki/lib/images/fileicons/xls.png
deleted file mode 100644
index be9b42f..0000000
--- a/wiki/lib/images/fileicons/xls.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/xlsx.png b/wiki/lib/images/fileicons/xlsx.png
deleted file mode 100644
index fd5d4f1..0000000
--- a/wiki/lib/images/fileicons/xlsx.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/xml.png b/wiki/lib/images/fileicons/xml.png
deleted file mode 100644
index 2a96d8b..0000000
--- a/wiki/lib/images/fileicons/xml.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/fileicons/zip.png b/wiki/lib/images/fileicons/zip.png
deleted file mode 100644
index 4ce08bf..0000000
--- a/wiki/lib/images/fileicons/zip.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/history.png b/wiki/lib/images/history.png
deleted file mode 100644
index f6af0f6..0000000
--- a/wiki/lib/images/history.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/icon-list.png b/wiki/lib/images/icon-list.png
deleted file mode 100644
index 4ae738a..0000000
--- a/wiki/lib/images/icon-list.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/icon-sort.png b/wiki/lib/images/icon-sort.png
deleted file mode 100644
index 190397e..0000000
--- a/wiki/lib/images/icon-sort.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/index.html b/wiki/lib/images/index.html
deleted file mode 100644
index 977f90e..0000000
--- a/wiki/lib/images/index.html
+++ /dev/null
@@ -1,11 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<meta http-equiv="refresh" content="0; URL=../../" />
-<meta name="robots" content="noindex" />
-<title>nothing here...</title>
-</head>
-<body>
-<!-- this is just here to prevent directory browsing -->
-</body>
-</html>
diff --git a/wiki/lib/images/info.png b/wiki/lib/images/info.png
deleted file mode 100644
index 5e23364..0000000
--- a/wiki/lib/images/info.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/interwiki.png b/wiki/lib/images/interwiki.png
deleted file mode 100644
index 10a2bbe..0000000
--- a/wiki/lib/images/interwiki.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/interwiki/amazon.de.gif b/wiki/lib/images/interwiki/amazon.de.gif
deleted file mode 100644
index a0d2cd4..0000000
--- a/wiki/lib/images/interwiki/amazon.de.gif
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/interwiki/amazon.gif b/wiki/lib/images/interwiki/amazon.gif
deleted file mode 100644
index a0d2cd4..0000000
--- a/wiki/lib/images/interwiki/amazon.gif
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/interwiki/amazon.uk.gif b/wiki/lib/images/interwiki/amazon.uk.gif
deleted file mode 100644
index a0d2cd4..0000000
--- a/wiki/lib/images/interwiki/amazon.uk.gif
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/interwiki/callto.gif b/wiki/lib/images/interwiki/callto.gif
deleted file mode 100644
index 60158c5..0000000
--- a/wiki/lib/images/interwiki/callto.gif
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/interwiki/doku.gif b/wiki/lib/images/interwiki/doku.gif
deleted file mode 100644
index 3ccf012..0000000
--- a/wiki/lib/images/interwiki/doku.gif
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/interwiki/google.gif b/wiki/lib/images/interwiki/google.gif
deleted file mode 100644
index 3a28437..0000000
--- a/wiki/lib/images/interwiki/google.gif
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/interwiki/paypal.gif b/wiki/lib/images/interwiki/paypal.gif
deleted file mode 100644
index 633797f..0000000
--- a/wiki/lib/images/interwiki/paypal.gif
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/interwiki/phpfn.gif b/wiki/lib/images/interwiki/phpfn.gif
deleted file mode 100644
index 89ac1db..0000000
--- a/wiki/lib/images/interwiki/phpfn.gif
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/interwiki/skype.gif b/wiki/lib/images/interwiki/skype.gif
deleted file mode 100644
index d9bd575..0000000
--- a/wiki/lib/images/interwiki/skype.gif
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/interwiki/tel.gif b/wiki/lib/images/interwiki/tel.gif
deleted file mode 100644
index 60158c5..0000000
--- a/wiki/lib/images/interwiki/tel.gif
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/interwiki/user.png b/wiki/lib/images/interwiki/user.png
deleted file mode 100644
index da84e3d..0000000
--- a/wiki/lib/images/interwiki/user.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/interwiki/wp.gif b/wiki/lib/images/interwiki/wp.gif
deleted file mode 100644
index b07fd89..0000000
--- a/wiki/lib/images/interwiki/wp.gif
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/interwiki/wpde.gif b/wiki/lib/images/interwiki/wpde.gif
deleted file mode 100644
index b07fd89..0000000
--- a/wiki/lib/images/interwiki/wpde.gif
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/interwiki/wpes.gif b/wiki/lib/images/interwiki/wpes.gif
deleted file mode 100644
index b07fd89..0000000
--- a/wiki/lib/images/interwiki/wpes.gif
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/interwiki/wpfr.gif b/wiki/lib/images/interwiki/wpfr.gif
deleted file mode 100644
index b07fd89..0000000
--- a/wiki/lib/images/interwiki/wpfr.gif
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/interwiki/wpjp.gif b/wiki/lib/images/interwiki/wpjp.gif
deleted file mode 100644
index b07fd89..0000000
--- a/wiki/lib/images/interwiki/wpjp.gif
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/interwiki/wpmeta.gif b/wiki/lib/images/interwiki/wpmeta.gif
deleted file mode 100644
index b07fd89..0000000
--- a/wiki/lib/images/interwiki/wpmeta.gif
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/interwiki/wppl.gif b/wiki/lib/images/interwiki/wppl.gif
deleted file mode 100644
index b07fd89..0000000
--- a/wiki/lib/images/interwiki/wppl.gif
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/larger.gif b/wiki/lib/images/larger.gif
deleted file mode 100644
index e137c92..0000000
--- a/wiki/lib/images/larger.gif
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/license/badge/cc-by-nc-nd.png b/wiki/lib/images/license/badge/cc-by-nc-nd.png
deleted file mode 100644
index c84aff1..0000000
--- a/wiki/lib/images/license/badge/cc-by-nc-nd.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/license/badge/cc-by-nc-sa.png b/wiki/lib/images/license/badge/cc-by-nc-sa.png
deleted file mode 100644
index e7b5784..0000000
--- a/wiki/lib/images/license/badge/cc-by-nc-sa.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/license/badge/cc-by-nc.png b/wiki/lib/images/license/badge/cc-by-nc.png
deleted file mode 100644
index b422cdc..0000000
--- a/wiki/lib/images/license/badge/cc-by-nc.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/license/badge/cc-by-nd.png b/wiki/lib/images/license/badge/cc-by-nd.png
deleted file mode 100644
index 1832299..0000000
--- a/wiki/lib/images/license/badge/cc-by-nd.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/license/badge/cc-by-sa.png b/wiki/lib/images/license/badge/cc-by-sa.png
deleted file mode 100644
index 5749f65..0000000
--- a/wiki/lib/images/license/badge/cc-by-sa.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/license/badge/cc-by.png b/wiki/lib/images/license/badge/cc-by.png
deleted file mode 100644
index 700679a..0000000
--- a/wiki/lib/images/license/badge/cc-by.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/license/badge/cc-zero.png b/wiki/lib/images/license/badge/cc-zero.png
deleted file mode 100644
index e6d82bf..0000000
--- a/wiki/lib/images/license/badge/cc-zero.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/license/badge/cc.png b/wiki/lib/images/license/badge/cc.png
deleted file mode 100644
index e28f32c..0000000
--- a/wiki/lib/images/license/badge/cc.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/license/badge/gnufdl.png b/wiki/lib/images/license/badge/gnufdl.png
deleted file mode 100644
index 635de2b..0000000
--- a/wiki/lib/images/license/badge/gnufdl.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/license/badge/publicdomain.png b/wiki/lib/images/license/badge/publicdomain.png
deleted file mode 100644
index fd742cc..0000000
--- a/wiki/lib/images/license/badge/publicdomain.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/license/button/cc-by-nc-nd.png b/wiki/lib/images/license/button/cc-by-nc-nd.png
deleted file mode 100644
index 994025f..0000000
--- a/wiki/lib/images/license/button/cc-by-nc-nd.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/license/button/cc-by-nc-sa.png b/wiki/lib/images/license/button/cc-by-nc-sa.png
deleted file mode 100644
index 3b896bd..0000000
--- a/wiki/lib/images/license/button/cc-by-nc-sa.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/license/button/cc-by-nc.png b/wiki/lib/images/license/button/cc-by-nc.png
deleted file mode 100644
index d5be8f8..0000000
--- a/wiki/lib/images/license/button/cc-by-nc.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/license/button/cc-by-nd.png b/wiki/lib/images/license/button/cc-by-nd.png
deleted file mode 100644
index e1918b0..0000000
--- a/wiki/lib/images/license/button/cc-by-nd.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/license/button/cc-by-sa.png b/wiki/lib/images/license/button/cc-by-sa.png
deleted file mode 100644
index 9b9b522..0000000
--- a/wiki/lib/images/license/button/cc-by-sa.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/license/button/cc-by.png b/wiki/lib/images/license/button/cc-by.png
deleted file mode 100644
index 53b1dea..0000000
--- a/wiki/lib/images/license/button/cc-by.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/license/button/cc-zero.png b/wiki/lib/images/license/button/cc-zero.png
deleted file mode 100644
index e6a1a5b..0000000
--- a/wiki/lib/images/license/button/cc-zero.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/license/button/cc.png b/wiki/lib/images/license/button/cc.png
deleted file mode 100644
index e04958a..0000000
--- a/wiki/lib/images/license/button/cc.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/license/button/gnufdl.png b/wiki/lib/images/license/button/gnufdl.png
deleted file mode 100644
index b0e0793..0000000
--- a/wiki/lib/images/license/button/gnufdl.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/license/button/publicdomain.png b/wiki/lib/images/license/button/publicdomain.png
deleted file mode 100644
index b301baf..0000000
--- a/wiki/lib/images/license/button/publicdomain.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/magnifier.png b/wiki/lib/images/magnifier.png
deleted file mode 100644
index 014fa92..0000000
--- a/wiki/lib/images/magnifier.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/media_align_center.png b/wiki/lib/images/media_align_center.png
deleted file mode 100644
index 8b30a05..0000000
--- a/wiki/lib/images/media_align_center.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/media_align_left.png b/wiki/lib/images/media_align_left.png
deleted file mode 100644
index d32bbc2..0000000
--- a/wiki/lib/images/media_align_left.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/media_align_noalign.png b/wiki/lib/images/media_align_noalign.png
deleted file mode 100644
index e6ce857..0000000
--- a/wiki/lib/images/media_align_noalign.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/media_align_right.png b/wiki/lib/images/media_align_right.png
deleted file mode 100644
index 32a5cb0..0000000
--- a/wiki/lib/images/media_align_right.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/media_link_direct.png b/wiki/lib/images/media_link_direct.png
deleted file mode 100644
index 13d24ad..0000000
--- a/wiki/lib/images/media_link_direct.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/media_link_displaylnk.png b/wiki/lib/images/media_link_displaylnk.png
deleted file mode 100644
index 102834e..0000000
--- a/wiki/lib/images/media_link_displaylnk.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/media_link_lnk.png b/wiki/lib/images/media_link_lnk.png
deleted file mode 100644
index 5db14ad..0000000
--- a/wiki/lib/images/media_link_lnk.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/media_link_nolnk.png b/wiki/lib/images/media_link_nolnk.png
deleted file mode 100644
index d277ac9..0000000
--- a/wiki/lib/images/media_link_nolnk.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/media_size_large.png b/wiki/lib/images/media_size_large.png
deleted file mode 100644
index c4f745e..0000000
--- a/wiki/lib/images/media_size_large.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/media_size_medium.png b/wiki/lib/images/media_size_medium.png
deleted file mode 100644
index 580c63e..0000000
--- a/wiki/lib/images/media_size_medium.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/media_size_original.png b/wiki/lib/images/media_size_original.png
deleted file mode 100644
index 60d1925..0000000
--- a/wiki/lib/images/media_size_original.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/media_size_small.png b/wiki/lib/images/media_size_small.png
deleted file mode 100644
index 8d5a629..0000000
--- a/wiki/lib/images/media_size_small.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/mediamanager.png b/wiki/lib/images/mediamanager.png
deleted file mode 100644
index 5093381..0000000
--- a/wiki/lib/images/mediamanager.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/menu/00-default_checkbox-blank-circle-outline.svg b/wiki/lib/images/menu/00-default_checkbox-blank-circle-outline.svg
deleted file mode 100644
index e8f8c07..0000000
--- a/wiki/lib/images/menu/00-default_checkbox-blank-circle-outline.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 20a8 8 0 0 1-8-8 8 8 0 0 1 8-8 8 8 0 0 1 8 8 8 8 0 0 1-8 8m0-18A10 10 0 0 0 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2z"/></svg>
\ No newline at end of file
diff --git a/wiki/lib/images/menu/01-edit_pencil.svg b/wiki/lib/images/menu/01-edit_pencil.svg
deleted file mode 100644
index e3a4faa..0000000
--- a/wiki/lib/images/menu/01-edit_pencil.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20.71 7.04c.39-.39.39-1.04 0-1.41l-2.34-2.34c-.37-.39-1.02-.39-1.41 0l-1.84 1.83 3.75 3.75M3 17.25V21h3.75L17.81 9.93l-3.75-3.75L3 17.25z"/></svg>
\ No newline at end of file
diff --git a/wiki/lib/images/menu/02-create_pencil.svg b/wiki/lib/images/menu/02-create_pencil.svg
deleted file mode 100644
index 4c30b49..0000000
--- a/wiki/lib/images/menu/02-create_pencil.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" height="24" width="24"><path d="M13.118 16.118h3v-3h2v3h3v2h-3v3h-2v-3h-3zM20.71 7.04c.39-.39.39-1.04 0-1.41l-2.34-2.34c-.37-.39-1.02-.39-1.41 0l-1.84 1.83 3.75 3.75M3 17.25V21h3.75L17.81 9.93l-3.75-3.75z"/></svg>
\ No newline at end of file
diff --git a/wiki/lib/images/menu/03-draft_android-studio.svg b/wiki/lib/images/menu/03-draft_android-studio.svg
deleted file mode 100644
index 589658d..0000000
--- a/wiki/lib/images/menu/03-draft_android-studio.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M11 2h2v2h.5A1.5 1.5 0 0 1 15 5.5V9l-.44.44 1.64 2.84C17.31 11.19 18 9.68 18 8h2c0 2.42-1.07 4.59-2.77 6.06l3.14 5.44.13 2.22-1.87-1.22-3.07-5.33c-1.06.53-2.28.83-3.56.83-1.28 0-2.5-.3-3.56-.83L5.37 20.5 3.5 21.72l.13-2.22L9.44 9.44 9 9V5.5A1.5 1.5 0 0 1 10.5 4h.5V2M9.44 13.43c.78.37 1.65.57 2.56.57.91 0 1.78-.2 2.56-.57L13.1 10.9h-.01c-.62.6-1.56.6-2.18 0h-.01l-1.46 2.53M12 6a1 1 0 0 0-1 1 1 1 0 0 0 1 1 1 1 0 0 0 1-1 1 1 0 0 0-1-1z"/></svg>
\ No newline at end of file
diff --git a/wiki/lib/images/menu/04-show_file-document.svg b/wiki/lib/images/menu/04-show_file-document.svg
deleted file mode 100644
index 0eed274..0000000
--- a/wiki/lib/images/menu/04-show_file-document.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M13 9h5.5L13 3.5V9M6 2h8l6 6v12a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V4c0-1.11.89-2 2-2m9 16v-2H6v2h9m3-4v-2H6v2h12z"/></svg>
\ No newline at end of file
diff --git a/wiki/lib/images/menu/05-source_file-xml.svg b/wiki/lib/images/menu/05-source_file-xml.svg
deleted file mode 100644
index 7e00342..0000000
--- a/wiki/lib/images/menu/05-source_file-xml.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M13 9h5.5L13 3.5V9M6 2h8l6 6v12a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V4c0-1.11.89-2 2-2m.12 13.5l3.74 3.74 1.42-1.41-2.33-2.33 2.33-2.33-1.42-1.41-3.74 3.74m11.16 0l-3.74-3.74-1.42 1.41 2.33 2.33-2.33 2.33 1.42 1.41 3.74-3.74z"/></svg>
\ No newline at end of file
diff --git a/wiki/lib/images/menu/06-revert_replay.svg b/wiki/lib/images/menu/06-revert_replay.svg
deleted file mode 100644
index 0911e5b..0000000
--- a/wiki/lib/images/menu/06-revert_replay.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 5V1L7 6l5 5V7a6 6 0 0 1 6 6 6 6 0 0 1-6 6 6 6 0 0 1-6-6H4a8 8 0 0 0 8 8 8 8 0 0 0 8-8 8 8 0 0 0-8-8z"/></svg>
\ No newline at end of file
diff --git a/wiki/lib/images/menu/07-revisions_history.svg b/wiki/lib/images/menu/07-revisions_history.svg
deleted file mode 100644
index cedbc1b..0000000
--- a/wiki/lib/images/menu/07-revisions_history.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M11 7v5.11l4.71 2.79.79-1.28-4-2.37V7m0-5C8.97 2 5.91 3.92 4.27 6.77L2 4.5V11h6.5L5.75 8.25C6.96 5.73 9.5 4 12.5 4a7.5 7.5 0 0 1 7.5 7.5 7.5 7.5 0 0 1-7.5 7.5c-3.27 0-6.03-2.09-7.06-5h-2.1c1.1 4.03 4.77 7 9.16 7 5.24 0 9.5-4.25 9.5-9.5A9.5 9.5 0 0 0 12.5 2z"/></svg>
\ No newline at end of file
diff --git a/wiki/lib/images/menu/08-backlink_link-variant.svg b/wiki/lib/images/menu/08-backlink_link-variant.svg
deleted file mode 100644
index 4d639a5..0000000
--- a/wiki/lib/images/menu/08-backlink_link-variant.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M10.59 13.41c.41.39.41 1.03 0 1.42-.39.39-1.03.39-1.42 0a5.003 5.003 0 0 1 0-7.07l3.54-3.54a5.003 5.003 0 0 1 7.07 0 5.003 5.003 0 0 1 0 7.07l-1.49 1.49c.01-.82-.12-1.64-.4-2.42l.47-.48a2.982 2.982 0 0 0 0-4.24 2.982 2.982 0 0 0-4.24 0l-3.53 3.53a2.982 2.982 0 0 0 0 4.24m2.82-4.24c.39-.39 1.03-.39 1.42 0a5.003 5.003 0 0 1 0 7.07l-3.54 3.54a5.003 5.003 0 0 1-7.07 0 5.003 5.003 0 0 1 0-7.07l1.49-1.49c-.01.82.12 1.64.4 2.43l-.47.47a2.982 2.982 0 0 0 0 4.24 2.982 2.982 0 0 0 4.24 0l3.53-3.53a2.982 2.982 0 0 0 0-4.24.973.973 0 0 1 0-1.42z"/></svg>
\ No newline at end of file
diff --git a/wiki/lib/images/menu/09-subscribe_email-outline.svg b/wiki/lib/images/menu/09-subscribe_email-outline.svg
deleted file mode 100644
index 3b23dac..0000000
--- a/wiki/lib/images/menu/09-subscribe_email-outline.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 4H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2m0 14H4V8l8 5 8-5v10m0-12l-8 5-8-5h16z"/></svg>
\ No newline at end of file
diff --git a/wiki/lib/images/menu/10-top_arrow-up.svg b/wiki/lib/images/menu/10-top_arrow-up.svg
deleted file mode 100644
index 61003a8..0000000
--- a/wiki/lib/images/menu/10-top_arrow-up.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8v12z"/></svg>
\ No newline at end of file
diff --git a/wiki/lib/images/menu/11-mediamanager_folder-image.svg b/wiki/lib/images/menu/11-mediamanager_folder-image.svg
deleted file mode 100644
index 4376fdf..0000000
--- a/wiki/lib/images/menu/11-mediamanager_folder-image.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M5 17l4.5-6 3.5 4.5 2.5-3L19 17m1-11h-8l-2-2H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2z"/></svg>
\ No newline at end of file
diff --git a/wiki/lib/images/menu/12-back_arrow-left.svg b/wiki/lib/images/menu/12-back_arrow-left.svg
deleted file mode 100644
index d8011b1..0000000
--- a/wiki/lib/images/menu/12-back_arrow-left.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12z"/></svg>
\ No newline at end of file
diff --git a/wiki/lib/images/menu/account-card-details.svg b/wiki/lib/images/menu/account-card-details.svg
deleted file mode 100644
index ba74256..0000000
--- a/wiki/lib/images/menu/account-card-details.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M2 3h20c1.05 0 2 .95 2 2v14c0 1.05-.95 2-2 2H2c-1.05 0-2-.95-2-2V5c0-1.05.95-2 2-2m12 3v1h8V6h-8m0 2v1h8V8h-8m0 2v1h7v-1h-7m-6 3.91C6 13.91 2 15 2 17v1h12v-1c0-2-4-3.09-6-3.09M8 6a3 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/wiki/lib/images/menu/account-plus.svg b/wiki/lib/images/menu/account-plus.svg
deleted file mode 100644
index a978bf1..0000000
--- a/wiki/lib/images/menu/account-plus.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M15 14c-2.67 0-8 1.33-8 4v2h16v-2c0-2.67-5.33-4-8-4m-9-4V7H4v3H1v2h3v3h2v-3h3v-2m6 2a4 4 0 0 0 4-4 4 4 0 0 0-4-4 4 4 0 0 0-4 4 4 4 0 0 0 4 4z"/></svg>
\ No newline at end of file
diff --git a/wiki/lib/images/menu/calendar-clock.svg b/wiki/lib/images/menu/calendar-clock.svg
deleted file mode 100644
index b19735d..0000000
--- a/wiki/lib/images/menu/calendar-clock.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M15 13h1.5v2.82l2.44 1.41-.75 1.3L15 16.69V13m4-5H5v11h4.67c-.43-.91-.67-1.93-.67-3a7 7 0 0 1 7-7c1.07 0 2.09.24 3 .67V8M5 21a2 2 0 0 1-2-2V5c0-1.11.89-2 2-2h1V1h2v2h8V1h2v2h1a2 2 0 0 1 2 2v6.1c1.24 1.26 2 2.99 2 4.9a7 7 0 0 1-7 7c-1.91 0-3.64-.76-4.9-2H5m11-9.85A4.85 4.85 0 0 0 11.15 16c0 2.68 2.17 4.85 4.85 4.85A4.85 4.85 0 0 0 20.85 16c0-2.68-2.17-4.85-4.85-4.85z"/></svg>
\ No newline at end of file
diff --git a/wiki/lib/images/menu/file-tree.svg b/wiki/lib/images/menu/file-tree.svg
deleted file mode 100644
index 0f26188..0000000
--- a/wiki/lib/images/menu/file-tree.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M3 3h6v4H3V3m12 7h6v4h-6v-4m0 7h6v4h-6v-4m-2-4H7v5h6v2H5V9h2v2h6v2z"/></svg>
\ No newline at end of file
diff --git a/wiki/lib/images/menu/folder-multiple-image.svg b/wiki/lib/images/menu/folder-multiple-image.svg
deleted file mode 100644
index f66aaad..0000000
--- a/wiki/lib/images/menu/folder-multiple-image.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M7 15l4.5-6 3.5 4.5 2.5-3L21 15m1-11h-8l-2-2H6a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2M2 6H0v14a2 2 0 0 0 2 2h18v-2H2V6z"/></svg>
\ No newline at end of file
diff --git a/wiki/lib/images/menu/lock-reset.svg b/wiki/lib/images/menu/lock-reset.svg
deleted file mode 100644
index 49693c6..0000000
--- a/wiki/lib/images/menu/lock-reset.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12.63 2c5.53 0 10.01 4.5 10.01 10s-4.48 10-10.01 10c-3.51 0-6.58-1.82-8.37-4.57l1.58-1.25C7.25 18.47 9.76 20 12.64 20a8 8 0 0 0 8-8 8 8 0 0 0-8-8C8.56 4 5.2 7.06 4.71 11h2.76l-3.74 3.73L0 11h2.69c.5-5.05 4.76-9 9.94-9m2.96 8.24c.5.01.91.41.91.92v4.61c0 .5-.41.92-.92.92h-5.53c-.51 0-.92-.42-.92-.92v-4.61c0-.51.41-.91.91-.92V9.23c0-1.53 1.25-2.77 2.77-2.77 1.53 0 2.78 1.24 2.78 2.77v1.01m-2.78-2.38c-.75 0-1.37.61-1.37 1.37v1.01h2.75V9.23c0-.76-.62-1.37-1.38-1.37z"/></svg>
\ No newline at end of file
diff --git a/wiki/lib/images/menu/login.svg b/wiki/lib/images/menu/login.svg
deleted file mode 100644
index 07a9896..0000000
--- a/wiki/lib/images/menu/login.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M10 17.25V14H3v-4h7V6.75L15.25 12 10 17.25M8 2h9a2 2 0 0 1 2 2v16a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2v-4h2v4h9V4H8v4H6V4a2 2 0 0 1 2-2z"/></svg>
\ No newline at end of file
diff --git a/wiki/lib/images/menu/logout.svg b/wiki/lib/images/menu/logout.svg
deleted file mode 100644
index 97d3158..0000000
--- a/wiki/lib/images/menu/logout.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17 17.25V14h-7v-4h7V6.75L22.25 12 17 17.25M13 2a2 2 0 0 1 2 2v4h-2V4H4v16h9v-4h2v4a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9z"/></svg>
\ No newline at end of file
diff --git a/wiki/lib/images/menu/settings.svg b/wiki/lib/images/menu/settings.svg
deleted file mode 100644
index ced9871..0000000
--- a/wiki/lib/images/menu/settings.svg
+++ /dev/null
@@ -1 +0,0 @@
-<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/wiki/lib/images/minus.gif b/wiki/lib/images/minus.gif
deleted file mode 100644
index 7e8cbd7..0000000
--- a/wiki/lib/images/minus.gif
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/notify.png b/wiki/lib/images/notify.png
deleted file mode 100644
index f6c56ee..0000000
--- a/wiki/lib/images/notify.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/ns.png b/wiki/lib/images/ns.png
deleted file mode 100644
index 77e03b1..0000000
--- a/wiki/lib/images/ns.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/open.png b/wiki/lib/images/open.png
deleted file mode 100644
index b9e4fdf..0000000
--- a/wiki/lib/images/open.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/page.png b/wiki/lib/images/page.png
deleted file mode 100644
index b1b7ebe..0000000
--- a/wiki/lib/images/page.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/plus.gif b/wiki/lib/images/plus.gif
deleted file mode 100644
index 3da3b94..0000000
--- a/wiki/lib/images/plus.gif
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/resizecol.png b/wiki/lib/images/resizecol.png
deleted file mode 100644
index 91ad7d1..0000000
--- a/wiki/lib/images/resizecol.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/smaller.gif b/wiki/lib/images/smaller.gif
deleted file mode 100644
index 66d3a51..0000000
--- a/wiki/lib/images/smaller.gif
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/smileys/delete.gif b/wiki/lib/images/smileys/delete.gif
deleted file mode 100644
index e94c68c..0000000
--- a/wiki/lib/images/smileys/delete.gif
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/smileys/facepalm.gif b/wiki/lib/images/smileys/facepalm.gif
deleted file mode 100644
index 5bebb20..0000000
--- a/wiki/lib/images/smileys/facepalm.gif
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/smileys/fixme.gif b/wiki/lib/images/smileys/fixme.gif
deleted file mode 100644
index e191413..0000000
--- a/wiki/lib/images/smileys/fixme.gif
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/smileys/icon_arrow.gif b/wiki/lib/images/smileys/icon_arrow.gif
deleted file mode 100644
index 6771def..0000000
--- a/wiki/lib/images/smileys/icon_arrow.gif
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/smileys/icon_biggrin.gif b/wiki/lib/images/smileys/icon_biggrin.gif
deleted file mode 100644
index aa29c14..0000000
--- a/wiki/lib/images/smileys/icon_biggrin.gif
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/smileys/icon_confused.gif b/wiki/lib/images/smileys/icon_confused.gif
deleted file mode 100644
index 0ea9ed2..0000000
--- a/wiki/lib/images/smileys/icon_confused.gif
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/smileys/icon_cool.gif b/wiki/lib/images/smileys/icon_cool.gif
deleted file mode 100644
index 3469ad4..0000000
--- a/wiki/lib/images/smileys/icon_cool.gif
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/smileys/icon_cry.gif b/wiki/lib/images/smileys/icon_cry.gif
deleted file mode 100644
index 25aea57..0000000
--- a/wiki/lib/images/smileys/icon_cry.gif
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/smileys/icon_doubt.gif b/wiki/lib/images/smileys/icon_doubt.gif
deleted file mode 100644
index b4afc6d..0000000
--- a/wiki/lib/images/smileys/icon_doubt.gif
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/smileys/icon_doubt2.gif b/wiki/lib/images/smileys/icon_doubt2.gif
deleted file mode 100644
index 1f57eb9..0000000
--- a/wiki/lib/images/smileys/icon_doubt2.gif
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/smileys/icon_eek.gif b/wiki/lib/images/smileys/icon_eek.gif
deleted file mode 100644
index 276b01d..0000000
--- a/wiki/lib/images/smileys/icon_eek.gif
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/smileys/icon_evil.gif b/wiki/lib/images/smileys/icon_evil.gif
deleted file mode 100644
index d756916..0000000
--- a/wiki/lib/images/smileys/icon_evil.gif
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/smileys/icon_exclaim.gif b/wiki/lib/images/smileys/icon_exclaim.gif
deleted file mode 100644
index 215b32e..0000000
--- a/wiki/lib/images/smileys/icon_exclaim.gif
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/smileys/icon_frown.gif b/wiki/lib/images/smileys/icon_frown.gif
deleted file mode 100644
index d46caf7..0000000
--- a/wiki/lib/images/smileys/icon_frown.gif
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/smileys/icon_fun.gif b/wiki/lib/images/smileys/icon_fun.gif
deleted file mode 100644
index 6d3c442..0000000
--- a/wiki/lib/images/smileys/icon_fun.gif
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/smileys/icon_idea.gif b/wiki/lib/images/smileys/icon_idea.gif
deleted file mode 100644
index 41eaa06..0000000
--- a/wiki/lib/images/smileys/icon_idea.gif
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/smileys/icon_kaddi.gif b/wiki/lib/images/smileys/icon_kaddi.gif
deleted file mode 100644
index 56344bb..0000000
--- a/wiki/lib/images/smileys/icon_kaddi.gif
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/smileys/icon_lol.gif b/wiki/lib/images/smileys/icon_lol.gif
deleted file mode 100644
index d1c20c0..0000000
--- a/wiki/lib/images/smileys/icon_lol.gif
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/smileys/icon_mrgreen.gif b/wiki/lib/images/smileys/icon_mrgreen.gif
deleted file mode 100644
index fc5d916..0000000
--- a/wiki/lib/images/smileys/icon_mrgreen.gif
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/smileys/icon_neutral.gif b/wiki/lib/images/smileys/icon_neutral.gif
deleted file mode 100644
index c82a974..0000000
--- a/wiki/lib/images/smileys/icon_neutral.gif
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/smileys/icon_question.gif b/wiki/lib/images/smileys/icon_question.gif
deleted file mode 100644
index 4e30924..0000000
--- a/wiki/lib/images/smileys/icon_question.gif
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/smileys/icon_razz.gif b/wiki/lib/images/smileys/icon_razz.gif
deleted file mode 100644
index 310655e..0000000
--- a/wiki/lib/images/smileys/icon_razz.gif
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/smileys/icon_redface.gif b/wiki/lib/images/smileys/icon_redface.gif
deleted file mode 100644
index 160c20f..0000000
--- a/wiki/lib/images/smileys/icon_redface.gif
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/smileys/icon_rolleyes.gif b/wiki/lib/images/smileys/icon_rolleyes.gif
deleted file mode 100644
index 502c5c1..0000000
--- a/wiki/lib/images/smileys/icon_rolleyes.gif
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/smileys/icon_sad.gif b/wiki/lib/images/smileys/icon_sad.gif
deleted file mode 100644
index d46caf7..0000000
--- a/wiki/lib/images/smileys/icon_sad.gif
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/smileys/icon_silenced.gif b/wiki/lib/images/smileys/icon_silenced.gif
deleted file mode 100644
index 5f722e0..0000000
--- a/wiki/lib/images/smileys/icon_silenced.gif
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/smileys/icon_smile.gif b/wiki/lib/images/smileys/icon_smile.gif
deleted file mode 100644
index df125e2..0000000
--- a/wiki/lib/images/smileys/icon_smile.gif
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/smileys/icon_smile2.gif b/wiki/lib/images/smileys/icon_smile2.gif
deleted file mode 100644
index 6b4909c..0000000
--- a/wiki/lib/images/smileys/icon_smile2.gif
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/smileys/icon_surprised.gif b/wiki/lib/images/smileys/icon_surprised.gif
deleted file mode 100644
index aaa94f1..0000000
--- a/wiki/lib/images/smileys/icon_surprised.gif
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/smileys/icon_twisted.gif b/wiki/lib/images/smileys/icon_twisted.gif
deleted file mode 100644
index eaec193..0000000
--- a/wiki/lib/images/smileys/icon_twisted.gif
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/smileys/icon_wink.gif b/wiki/lib/images/smileys/icon_wink.gif
deleted file mode 100644
index 78b6ad3..0000000
--- a/wiki/lib/images/smileys/icon_wink.gif
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/smileys/index.php b/wiki/lib/images/smileys/index.php
deleted file mode 100644
index 4167eda..0000000
--- a/wiki/lib/images/smileys/index.php
+++ /dev/null
@@ -1,48 +0,0 @@
-<!DOCTYPE html>
-<html lang="en" dir="ltr">
-<head>
-    <title>smileys</title>
-
-    <style type="text/css">
-        body {
-            background-color: #ccc;
-            font-family: Arial;
-        }
-
-        .box {
-            width: 200px;
-            float:left;
-            padding: 0.5em;
-            margin: 0;
-        }
-
-        .white {
-            background-color: #fff;
-        }
-
-        .black {
-            background-color: #000;
-        }
-    </style>
-
-</head>
-<body>
-
-<div class="white box">
-<?php
-foreach (glob('*.gif') as $img) {
-    echo '<img src="'.$img.'" alt="'.$img.'" title="'.$img.'" /> ';
-}
-?>
-</div>
-
-<div class="black box">
-<?php
-foreach (glob('*.gif') as $img) {
-    echo '<img src="'.$img.'" alt="'.$img.'" title="'.$img.'" /> ';
-}
-?>
-</div>
-
-</body>
-</html>
diff --git a/wiki/lib/images/success.png b/wiki/lib/images/success.png
deleted file mode 100644
index 200142f..0000000
--- a/wiki/lib/images/success.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/throbber.gif b/wiki/lib/images/throbber.gif
deleted file mode 100644
index 27178a8..0000000
--- a/wiki/lib/images/throbber.gif
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/toolbar/bold.png b/wiki/lib/images/toolbar/bold.png
deleted file mode 100644
index 8f425e9..0000000
--- a/wiki/lib/images/toolbar/bold.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/toolbar/chars.png b/wiki/lib/images/toolbar/chars.png
deleted file mode 100644
index a906bc8..0000000
--- a/wiki/lib/images/toolbar/chars.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/toolbar/h.png b/wiki/lib/images/toolbar/h.png
deleted file mode 100644
index 7e43d64..0000000
--- a/wiki/lib/images/toolbar/h.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/toolbar/h1.png b/wiki/lib/images/toolbar/h1.png
deleted file mode 100644
index 9f1970f..0000000
--- a/wiki/lib/images/toolbar/h1.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/toolbar/h2.png b/wiki/lib/images/toolbar/h2.png
deleted file mode 100644
index adec9ec..0000000
--- a/wiki/lib/images/toolbar/h2.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/toolbar/h3.png b/wiki/lib/images/toolbar/h3.png
deleted file mode 100644
index a758b89..0000000
--- a/wiki/lib/images/toolbar/h3.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/toolbar/h4.png b/wiki/lib/images/toolbar/h4.png
deleted file mode 100644
index 9cd6061..0000000
--- a/wiki/lib/images/toolbar/h4.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/toolbar/h5.png b/wiki/lib/images/toolbar/h5.png
deleted file mode 100644
index 86b7259..0000000
--- a/wiki/lib/images/toolbar/h5.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/toolbar/hequal.png b/wiki/lib/images/toolbar/hequal.png
deleted file mode 100644
index 869a2dd..0000000
--- a/wiki/lib/images/toolbar/hequal.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/toolbar/hminus.png b/wiki/lib/images/toolbar/hminus.png
deleted file mode 100644
index 1a99ee4..0000000
--- a/wiki/lib/images/toolbar/hminus.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/toolbar/hplus.png b/wiki/lib/images/toolbar/hplus.png
deleted file mode 100644
index 92efcdb..0000000
--- a/wiki/lib/images/toolbar/hplus.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/toolbar/hr.png b/wiki/lib/images/toolbar/hr.png
deleted file mode 100644
index 40ae210..0000000
--- a/wiki/lib/images/toolbar/hr.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/toolbar/image.png b/wiki/lib/images/toolbar/image.png
deleted file mode 100644
index 5cc7afa..0000000
--- a/wiki/lib/images/toolbar/image.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/toolbar/italic.png b/wiki/lib/images/toolbar/italic.png
deleted file mode 100644
index b37dc2d..0000000
--- a/wiki/lib/images/toolbar/italic.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/toolbar/link.png b/wiki/lib/images/toolbar/link.png
deleted file mode 100644
index 3d2180a..0000000
--- a/wiki/lib/images/toolbar/link.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/toolbar/linkextern.png b/wiki/lib/images/toolbar/linkextern.png
deleted file mode 100644
index e854572..0000000
--- a/wiki/lib/images/toolbar/linkextern.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/toolbar/mono.png b/wiki/lib/images/toolbar/mono.png
deleted file mode 100644
index a6f56d6..0000000
--- a/wiki/lib/images/toolbar/mono.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/toolbar/ol.png b/wiki/lib/images/toolbar/ol.png
deleted file mode 100644
index c12229a..0000000
--- a/wiki/lib/images/toolbar/ol.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/toolbar/sig.png b/wiki/lib/images/toolbar/sig.png
deleted file mode 100644
index 72fdad0..0000000
--- a/wiki/lib/images/toolbar/sig.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/toolbar/smiley.png b/wiki/lib/images/toolbar/smiley.png
deleted file mode 100644
index 54f1e6f..0000000
--- a/wiki/lib/images/toolbar/smiley.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/toolbar/strike.png b/wiki/lib/images/toolbar/strike.png
deleted file mode 100644
index 5adbba4..0000000
--- a/wiki/lib/images/toolbar/strike.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/toolbar/ul.png b/wiki/lib/images/toolbar/ul.png
deleted file mode 100644
index 39e5d34..0000000
--- a/wiki/lib/images/toolbar/ul.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/toolbar/underline.png b/wiki/lib/images/toolbar/underline.png
deleted file mode 100644
index 57bf3e2..0000000
--- a/wiki/lib/images/toolbar/underline.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/trash.png b/wiki/lib/images/trash.png
deleted file mode 100644
index 350c5e1..0000000
--- a/wiki/lib/images/trash.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/unc.png b/wiki/lib/images/unc.png
deleted file mode 100644
index 145b728..0000000
--- a/wiki/lib/images/unc.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/up.png b/wiki/lib/images/up.png
deleted file mode 100644
index dbacf3f..0000000
--- a/wiki/lib/images/up.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/images/wrap.gif b/wiki/lib/images/wrap.gif
deleted file mode 100644
index f2253e4..0000000
--- a/wiki/lib/images/wrap.gif
+++ /dev/null
Binary files differdiff --git a/wiki/lib/index.html b/wiki/lib/index.html
deleted file mode 100644
index 885c954..0000000
--- a/wiki/lib/index.html
+++ /dev/null
@@ -1,11 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<meta http-equiv="refresh" content="0; URL=../" />
-<meta name="robots" content="noindex" />
-<title>nothing here...</title>
-</head>
-<body>
-<!-- this is just here to prevent directory browsing -->
-</body>
-</html>
diff --git a/wiki/lib/plugins/acl/action.php b/wiki/lib/plugins/acl/action.php
deleted file mode 100644
index a7226f5..0000000
--- a/wiki/lib/plugins/acl/action.php
+++ /dev/null
@@ -1,88 +0,0 @@
-<?php
-/**
- * AJAX call handler for ACL plugin
- *
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * @author     Andreas Gohr <andi@splitbrain.org>
- */
-
-// must be run within Dokuwiki
-if(!defined('DOKU_INC')) die();
-
-/**
- * Register handler
- */
-class action_plugin_acl extends DokuWiki_Action_Plugin {
-
-    /**
-     * Registers a callback function for a given event
-     *
-     * @param Doku_Event_Handler $controller DokuWiki's event controller object
-     * @return void
-     */
-    public function register(Doku_Event_Handler $controller) {
-
-        $controller->register_hook('AJAX_CALL_UNKNOWN', 'BEFORE', $this, 'handle_ajax_call_acl');
-
-    }
-
-    /**
-     * AJAX call handler for ACL plugin
-     *
-     * @param Doku_Event $event  event object by reference
-     * @param mixed $param  empty
-     * @return void
-     */
-
-    public function handle_ajax_call_acl(Doku_Event &$event, $param) {
-        if($event->data !== 'plugin_acl') {
-            return;
-        }
-        $event->stopPropagation();
-        $event->preventDefault();
-
-        global $ID;
-        global $INPUT;
-
-        if(!auth_isadmin()) {
-            echo 'for admins only';
-            return;
-        }
-        if(!checkSecurityToken()) {
-            echo 'CRSF Attack';
-            return;
-        }
-
-        $ID = getID();
-
-        /** @var $acl admin_plugin_acl */
-        $acl = plugin_load('admin', 'acl');
-        $acl->handle();
-
-        $ajax = $INPUT->str('ajax');
-        header('Content-Type: text/html; charset=utf-8');
-
-        if($ajax == 'info') {
-            $acl->_html_info();
-        } elseif($ajax == 'tree') {
-
-            $ns = $INPUT->str('ns');
-            if($ns == '*') {
-                $ns = '';
-            }
-            $ns = cleanID($ns);
-            $lvl = count(explode(':', $ns));
-            $ns = utf8_encodeFN(str_replace(':', '/', $ns));
-
-            $data = $acl->_get_tree($ns, $ns);
-
-            foreach(array_keys($data) as $item) {
-                $data[$item]['level'] = $lvl + 1;
-            }
-            echo html_buildlist(
-                $data, 'acl', array($acl, '_html_list_acl'),
-                array($acl, '_html_li_acl')
-            );
-        }
-    }
-}
diff --git a/wiki/lib/plugins/acl/admin.php b/wiki/lib/plugins/acl/admin.php
deleted file mode 100644
index 6edc6c6..0000000
--- a/wiki/lib/plugins/acl/admin.php
+++ /dev/null
@@ -1,815 +0,0 @@
-<?php
-/**
- * ACL administration functions
- *
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * @author     Andreas Gohr <andi@splitbrain.org>
- * @author     Anika Henke <anika@selfthinker.org> (concepts)
- * @author     Frank Schubert <frank@schokilade.de> (old version)
- */
-// must be run within Dokuwiki
-if(!defined('DOKU_INC')) die();
-
-/**
- * All DokuWiki plugins to extend the admin function
- * need to inherit from this class
- */
-class admin_plugin_acl extends DokuWiki_Admin_Plugin {
-    var $acl = null;
-    var $ns  = null;
-    /**
-     * The currently selected item, associative array with id and type.
-     * Populated from (in this order):
-     * $_REQUEST['current_ns']
-     * $_REQUEST['current_id']
-     * $ns
-     * $ID
-     */
-    var $current_item = null;
-    var $who = '';
-    var $usersgroups = array();
-    var $specials = array();
-
-    /**
-     * return prompt for admin menu
-     */
-    function getMenuText($language) {
-        return $this->getLang('admin_acl');
-    }
-
-    /**
-     * return sort order for position in admin menu
-     */
-    function getMenuSort() {
-        return 1;
-    }
-
-    /**
-     * handle user request
-     *
-     * Initializes internal vars and handles modifications
-     *
-     * @author Andreas Gohr <andi@splitbrain.org>
-     */
-    function handle() {
-        global $AUTH_ACL;
-        global $ID;
-        global $auth;
-        global $config_cascade;
-        global $INPUT;
-
-        // fresh 1:1 copy without replacements
-        $AUTH_ACL = file($config_cascade['acl']['default']);
-
-        // namespace given?
-        if($INPUT->str('ns') == '*'){
-            $this->ns = '*';
-        }else{
-            $this->ns = cleanID($INPUT->str('ns'));
-        }
-
-        if ($INPUT->str('current_ns')) {
-            $this->current_item = array('id' => cleanID($INPUT->str('current_ns')), 'type' => 'd');
-        } elseif ($INPUT->str('current_id')) {
-            $this->current_item = array('id' => cleanID($INPUT->str('current_id')), 'type' => 'f');
-        } elseif ($this->ns) {
-            $this->current_item = array('id' => $this->ns, 'type' => 'd');
-        } else {
-            $this->current_item = array('id' => $ID, 'type' => 'f');
-        }
-
-        // user or group choosen?
-        $who = trim($INPUT->str('acl_w'));
-        if($INPUT->str('acl_t') == '__g__' && $who){
-            $this->who = '@'.ltrim($auth->cleanGroup($who),'@');
-        }elseif($INPUT->str('acl_t') == '__u__' && $who){
-            $this->who = ltrim($who,'@');
-            if($this->who != '%USER%' && $this->who != '%GROUP%'){ #keep wildcard as is
-                $this->who = $auth->cleanUser($this->who);
-            }
-        }elseif($INPUT->str('acl_t') &&
-                $INPUT->str('acl_t') != '__u__' &&
-                $INPUT->str('acl_t') != '__g__'){
-            $this->who = $INPUT->str('acl_t');
-        }elseif($who){
-            $this->who = $who;
-        }
-
-        // handle modifications
-        if($INPUT->has('cmd') && checkSecurityToken()){
-            $cmd = $INPUT->extract('cmd')->str('cmd');
-
-            // scope for modifications
-            if($this->ns){
-                if($this->ns == '*'){
-                    $scope = '*';
-                }else{
-                    $scope = $this->ns.':*';
-                }
-            }else{
-                $scope = $ID;
-            }
-
-            if($cmd == 'save' && $scope && $this->who && $INPUT->has('acl')){
-                // handle additions or single modifications
-                $this->_acl_del($scope, $this->who);
-                $this->_acl_add($scope, $this->who, $INPUT->int('acl'));
-            }elseif($cmd == 'del' && $scope && $this->who){
-                // handle single deletions
-                $this->_acl_del($scope, $this->who);
-            }elseif($cmd == 'update'){
-                $acl = $INPUT->arr('acl');
-
-                // handle update of the whole file
-                foreach($INPUT->arr('del') as $where => $names){
-                    // remove all rules marked for deletion
-                    foreach($names as $who)
-                        unset($acl[$where][$who]);
-                }
-                // prepare lines
-                $lines = array();
-                // keep header
-                foreach($AUTH_ACL as $line){
-                    if($line{0} == '#'){
-                        $lines[] = $line;
-                    }else{
-                        break;
-                    }
-                }
-                // re-add all rules
-                foreach($acl as $where => $opt){
-                    foreach($opt as $who => $perm){
-                        if ($who[0]=='@') {
-                            if ($who!='@ALL') {
-                                $who = '@'.ltrim($auth->cleanGroup($who),'@');
-                            }
-                        } elseif ($who != '%USER%' && $who != '%GROUP%'){ #keep wildcard as is
-                            $who = $auth->cleanUser($who);
-                        }
-                        $who = auth_nameencode($who,true);
-                        $lines[] = "$where\t$who\t$perm\n";
-                    }
-                }
-                // save it
-                io_saveFile($config_cascade['acl']['default'], join('',$lines));
-            }
-
-            // reload ACL config
-            $AUTH_ACL = file($config_cascade['acl']['default']);
-        }
-
-        // initialize ACL array
-        $this->_init_acl_config();
-    }
-
-    /**
-     * ACL Output function
-     *
-     * print a table with all significant permissions for the
-     * current id
-     *
-     * @author  Frank Schubert <frank@schokilade.de>
-     * @author  Andreas Gohr <andi@splitbrain.org>
-     */
-    function html() {
-        echo '<div id="acl_manager">'.NL;
-        echo '<h1>'.$this->getLang('admin_acl').'</h1>'.NL;
-        echo '<div class="level1">'.NL;
-
-        echo '<div id="acl__tree">'.NL;
-        $this->_html_explorer();
-        echo '</div>'.NL;
-
-        echo '<div id="acl__detail">'.NL;
-        $this->_html_detail();
-        echo '</div>'.NL;
-        echo '</div>'.NL;
-
-        echo '<div class="clearer"></div>';
-        echo '<h2>'.$this->getLang('current').'</h2>'.NL;
-        echo '<div class="level2">'.NL;
-        $this->_html_table();
-        echo '</div>'.NL;
-
-        echo '<div class="footnotes"><div class="fn">'.NL;
-        echo '<sup><a id="fn__1" class="fn_bot" href="#fnt__1">1)</a></sup>'.NL;
-        echo $this->getLang('p_include');
-        echo '</div></div>';
-
-        echo '</div>'.NL;
-    }
-
-    /**
-     * returns array with set options for building links
-     *
-     * @author Andreas Gohr <andi@splitbrain.org>
-     */
-    function _get_opts($addopts=null){
-        $opts = array(
-                    'do'=>'admin',
-                    'page'=>'acl',
-                );
-        if($this->ns) $opts['ns'] = $this->ns;
-        if($this->who) $opts['acl_w'] = $this->who;
-
-        if(is_null($addopts)) return $opts;
-        return array_merge($opts, $addopts);
-    }
-
-    /**
-     * Display a tree menu to select a page or namespace
-     *
-     * @author Andreas Gohr <andi@splitbrain.org>
-     */
-    function _html_explorer(){
-        global $conf;
-        global $ID;
-        global $lang;
-
-        $ns  = $this->ns;
-        if(empty($ns)){
-            $ns = dirname(str_replace(':','/',$ID));
-            if($ns == '.') $ns ='';
-        }elseif($ns == '*'){
-            $ns ='';
-        }
-        $ns  = utf8_encodeFN(str_replace(':','/',$ns));
-
-        $data = $this->_get_tree($ns);
-
-        // wrap a list with the root level around the other namespaces
-        array_unshift($data, array( 'level' => 0, 'id' => '*', 'type' => 'd',
-                   'open' =>'true', 'label' => '['.$lang['mediaroot'].']'));
-
-        echo html_buildlist($data,'acl',
-                            array($this,'_html_list_acl'),
-                            array($this,'_html_li_acl'));
-
-    }
-
-    /**
-     * get a combined list of media and page files
-     *
-     * @param string $folder an already converted filesystem folder of the current namespace
-     * @param string $limit  limit the search to this folder
-     */
-    function _get_tree($folder,$limit=''){
-        global $conf;
-
-        // read tree structure from pages and media
-        $data = array();
-        search($data,$conf['datadir'],'search_index',array('ns' => $folder),$limit);
-        $media = array();
-        search($media,$conf['mediadir'],'search_index',array('ns' => $folder, 'nofiles' => true),$limit);
-        $data = array_merge($data,$media);
-        unset($media);
-
-        // combine by sorting and removing duplicates
-        usort($data,array($this,'_tree_sort'));
-        $count = count($data);
-        if($count>0) for($i=1; $i<$count; $i++){
-            if($data[$i-1]['id'] == $data[$i]['id'] && $data[$i-1]['type'] == $data[$i]['type']) {
-                unset($data[$i]);
-                $i++;  // duplicate found, next $i can't be a duplicate, so skip forward one
-            }
-        }
-        return $data;
-    }
-
-    /**
-     * usort callback
-     *
-     * Sorts the combined trees of media and page files
-     */
-    function _tree_sort($a,$b){
-        // handle the trivial cases first
-        if ($a['id'] == '') return -1;
-        if ($b['id'] == '') return 1;
-        // split up the id into parts
-        $a_ids = explode(':', $a['id']);
-        $b_ids = explode(':', $b['id']);
-        // now loop through the parts
-        while (count($a_ids) && count($b_ids)) {
-            // compare each level from upper to lower
-            // until a non-equal component is found
-            $cur_result = strcmp(array_shift($a_ids), array_shift($b_ids));
-            if ($cur_result) {
-                // if one of the components is the last component and is a file
-                // and the other one is either of a deeper level or a directory,
-                // the file has to come after the deeper level or directory
-                if (empty($a_ids) && $a['type'] == 'f' && (count($b_ids) || $b['type'] == 'd')) return 1;
-                if (empty($b_ids) && $b['type'] == 'f' && (count($a_ids) || $a['type'] == 'd')) return -1;
-                return $cur_result;
-            }
-        }
-        // The two ids seem to be equal. One of them might however refer
-        // to a page, one to a namespace, the namespace needs to be first.
-        if (empty($a_ids) && empty($b_ids)) {
-            if ($a['type'] == $b['type']) return 0;
-            if ($a['type'] == 'f') return 1;
-            return -1;
-        }
-        // Now the empty part is either a page in the parent namespace
-        // that obviously needs to be after the namespace
-        // Or it is the namespace that contains the other part and should be
-        // before that other part.
-        if (empty($a_ids)) return ($a['type'] == 'd') ? -1 : 1;
-        if (empty($b_ids)) return ($b['type'] == 'd') ? 1 : -1;
-    }
-
-    /**
-     * Display the current ACL for selected where/who combination with
-     * selectors and modification form
-     *
-     * @author Andreas Gohr <andi@splitbrain.org>
-     */
-    function _html_detail(){
-        global $ID;
-
-        echo '<form action="'.wl().'" method="post" accept-charset="utf-8"><div class="no">'.NL;
-
-        echo '<div id="acl__user">';
-        echo $this->getLang('acl_perms').' ';
-        $inl =  $this->_html_select();
-        echo '<input type="text" name="acl_w" class="edit" value="'.(($inl)?'':hsc(ltrim($this->who,'@'))).'" />'.NL;
-        echo '<button type="submit">'.$this->getLang('btn_select').'</button>'.NL;
-        echo '</div>'.NL;
-
-        echo '<div id="acl__info">';
-        $this->_html_info();
-        echo '</div>';
-
-        echo '<input type="hidden" name="ns" value="'.hsc($this->ns).'" />'.NL;
-        echo '<input type="hidden" name="id" value="'.hsc($ID).'" />'.NL;
-        echo '<input type="hidden" name="do" value="admin" />'.NL;
-        echo '<input type="hidden" name="page" value="acl" />'.NL;
-        echo '<input type="hidden" name="sectok" value="'.getSecurityToken().'" />'.NL;
-        echo '</div></form>'.NL;
-    }
-
-    /**
-     * Print info and editor
-     */
-    function _html_info(){
-        global $ID;
-
-        if($this->who){
-            $current = $this->_get_exact_perm();
-
-            // explain current permissions
-            $this->_html_explain($current);
-            // load editor
-            $this->_html_acleditor($current);
-        }else{
-            echo '<p>';
-            if($this->ns){
-                printf($this->getLang('p_choose_ns'),hsc($this->ns));
-            }else{
-                printf($this->getLang('p_choose_id'),hsc($ID));
-            }
-            echo '</p>';
-
-            echo $this->locale_xhtml('help');
-        }
-    }
-
-    /**
-     * Display the ACL editor
-     *
-     * @author Andreas Gohr <andi@splitbrain.org>
-     */
-    function _html_acleditor($current){
-        global $lang;
-
-        echo '<fieldset>';
-        if(is_null($current)){
-            echo '<legend>'.$this->getLang('acl_new').'</legend>';
-        }else{
-            echo '<legend>'.$this->getLang('acl_mod').'</legend>';
-        }
-
-        echo $this->_html_checkboxes($current,empty($this->ns),'acl');
-
-        if(is_null($current)){
-            echo '<button type="submit" name="cmd[save]">'.$lang['btn_save'].'</button>'.NL;
-        }else{
-            echo '<button type="submit" name="cmd[save]">'.$lang['btn_update'].'</button>'.NL;
-            echo '<button type="submit" name="cmd[del]">'.$lang['btn_delete'].'</button>'.NL;
-        }
-
-        echo '</fieldset>';
-    }
-
-    /**
-     * Explain the currently set permissions in plain english/$lang
-     *
-     * @author Andreas Gohr <andi@splitbrain.org>
-     */
-    function _html_explain($current){
-        global $ID;
-        global $auth;
-
-        $who = $this->who;
-        $ns  = $this->ns;
-
-        // prepare where to check
-        if($ns){
-            if($ns == '*'){
-                $check='*';
-            }else{
-                $check=$ns.':*';
-            }
-        }else{
-            $check = $ID;
-        }
-
-        // prepare who to check
-        if($who{0} == '@'){
-            $user   = '';
-            $groups = array(ltrim($who,'@'));
-        }else{
-            $user = $who;
-            $info = $auth->getUserData($user);
-            if($info === false){
-                $groups = array();
-            }else{
-                $groups = $info['grps'];
-            }
-        }
-
-        // check the permissions
-        $perm = auth_aclcheck($check,$user,$groups);
-
-        // build array of named permissions
-        $names = array();
-        if($perm){
-            if($ns){
-                if($perm >= AUTH_DELETE) $names[] = $this->getLang('acl_perm16');
-                if($perm >= AUTH_UPLOAD) $names[] = $this->getLang('acl_perm8');
-                if($perm >= AUTH_CREATE) $names[] = $this->getLang('acl_perm4');
-            }
-            if($perm >= AUTH_EDIT) $names[] = $this->getLang('acl_perm2');
-            if($perm >= AUTH_READ) $names[] = $this->getLang('acl_perm1');
-            $names = array_reverse($names);
-        }else{
-            $names[] = $this->getLang('acl_perm0');
-        }
-
-        // print permission explanation
-        echo '<p>';
-        if($user){
-            if($ns){
-                printf($this->getLang('p_user_ns'),hsc($who),hsc($ns),join(', ',$names));
-            }else{
-                printf($this->getLang('p_user_id'),hsc($who),hsc($ID),join(', ',$names));
-            }
-        }else{
-            if($ns){
-                printf($this->getLang('p_group_ns'),hsc(ltrim($who,'@')),hsc($ns),join(', ',$names));
-            }else{
-                printf($this->getLang('p_group_id'),hsc(ltrim($who,'@')),hsc($ID),join(', ',$names));
-            }
-        }
-        echo '</p>';
-
-        // add note if admin
-        if($perm == AUTH_ADMIN){
-            echo '<p>'.$this->getLang('p_isadmin').'</p>';
-        }elseif(is_null($current)){
-            echo '<p>'.$this->getLang('p_inherited').'</p>';
-        }
-    }
-
-
-    /**
-     * Item formatter for the tree view
-     *
-     * User function for html_buildlist()
-     *
-     * @author Andreas Gohr <andi@splitbrain.org>
-     */
-    function _html_list_acl($item){
-        $ret = '';
-        // what to display
-        if(!empty($item['label'])){
-            $base = $item['label'];
-        }else{
-            $base = ':'.$item['id'];
-            $base = substr($base,strrpos($base,':')+1);
-        }
-
-        // highlight?
-        if( ($item['type']== $this->current_item['type'] && $item['id'] == $this->current_item['id'])) {
-            $cl = ' cur';
-        } else {
-            $cl = '';
-        }
-
-        // namespace or page?
-        if($item['type']=='d'){
-            if($item['open']){
-                $img   = DOKU_BASE.'lib/images/minus.gif';
-                $alt   = '−';
-            }else{
-                $img   = DOKU_BASE.'lib/images/plus.gif';
-                $alt   = '+';
-            }
-            $ret .= '<img src="'.$img.'" alt="'.$alt.'" />';
-            $ret .= '<a href="'.wl('',$this->_get_opts(array('ns'=>$item['id'],'sectok'=>getSecurityToken()))).'" class="idx_dir'.$cl.'">';
-            $ret .= $base;
-            $ret .= '</a>';
-        }else{
-            $ret .= '<a href="'.wl('',$this->_get_opts(array('id'=>$item['id'],'ns'=>'','sectok'=>getSecurityToken()))).'" class="wikilink1'.$cl.'">';
-            $ret .= noNS($item['id']);
-            $ret .= '</a>';
-        }
-        return $ret;
-    }
-
-
-    function _html_li_acl($item){
-        return '<li class="level' . $item['level'] . ' ' .
-               ($item['open'] ? 'open' : 'closed') . '">';
-    }
-
-
-    /**
-     * Get current ACL settings as multidim array
-     *
-     * @author Andreas Gohr <andi@splitbrain.org>
-     */
-    function _init_acl_config(){
-        global $AUTH_ACL;
-        global $conf;
-        $acl_config=array();
-        $usersgroups = array();
-
-        // get special users and groups
-        $this->specials[] = '@ALL';
-        $this->specials[] = '@'.$conf['defaultgroup'];
-        if($conf['manager'] != '!!not set!!'){
-            $this->specials = array_merge($this->specials,
-                                          array_map('trim',
-                                                    explode(',',$conf['manager'])));
-        }
-        $this->specials = array_filter($this->specials);
-        $this->specials = array_unique($this->specials);
-        sort($this->specials);
-
-        foreach($AUTH_ACL as $line){
-            $line = trim(preg_replace('/#.*$/','',$line)); //ignore comments
-            if(!$line) continue;
-
-            $acl = preg_split('/[ \t]+/',$line);
-            //0 is pagename, 1 is user, 2 is acl
-
-            $acl[1] = rawurldecode($acl[1]);
-            $acl_config[$acl[0]][$acl[1]] = $acl[2];
-
-            // store non-special users and groups for later selection dialog
-            $ug = $acl[1];
-            if(in_array($ug,$this->specials)) continue;
-            $usersgroups[] = $ug;
-        }
-
-        $usersgroups = array_unique($usersgroups);
-        sort($usersgroups);
-        ksort($acl_config);
-
-        $this->acl = $acl_config;
-        $this->usersgroups = $usersgroups;
-    }
-
-    /**
-     * Display all currently set permissions in a table
-     *
-     * @author Andreas Gohr <andi@splitbrain.org>
-     */
-    function _html_table(){
-        global $lang;
-        global $ID;
-
-        echo '<form action="'.wl().'" method="post" accept-charset="utf-8"><div class="no">'.NL;
-        if($this->ns){
-            echo '<input type="hidden" name="ns" value="'.hsc($this->ns).'" />'.NL;
-        }else{
-            echo '<input type="hidden" name="id" value="'.hsc($ID).'" />'.NL;
-        }
-        echo '<input type="hidden" name="acl_w" value="'.hsc($this->who).'" />'.NL;
-        echo '<input type="hidden" name="do" value="admin" />'.NL;
-        echo '<input type="hidden" name="page" value="acl" />'.NL;
-        echo '<input type="hidden" name="sectok" value="'.getSecurityToken().'" />'.NL;
-        echo '<div class="table">';
-        echo '<table class="inline">';
-        echo '<tr>';
-        echo '<th>'.$this->getLang('where').'</th>';
-        echo '<th>'.$this->getLang('who').'</th>';
-        echo '<th>'.$this->getLang('perm').'<sup><a id="fnt__1" class="fn_top" href="#fn__1">1)</a></sup></th>';
-        echo '<th>'.$lang['btn_delete'].'</th>';
-        echo '</tr>';
-        foreach($this->acl as $where => $set){
-            foreach($set as $who => $perm){
-                echo '<tr>';
-                echo '<td>';
-                if(substr($where,-1) == '*'){
-                    echo '<span class="aclns">'.hsc($where).'</span>';
-                    $ispage = false;
-                }else{
-                    echo '<span class="aclpage">'.hsc($where).'</span>';
-                    $ispage = true;
-                }
-                echo '</td>';
-
-                echo '<td>';
-                if($who{0} == '@'){
-                    echo '<span class="aclgroup">'.hsc($who).'</span>';
-                }else{
-                    echo '<span class="acluser">'.hsc($who).'</span>';
-                }
-                echo '</td>';
-
-                echo '<td>';
-                echo $this->_html_checkboxes($perm,$ispage,'acl['.$where.']['.$who.']');
-                echo '</td>';
-
-                echo '<td class="check">';
-                echo '<input type="checkbox" name="del['.hsc($where).'][]" value="'.hsc($who).'" />';
-                echo '</td>';
-                echo '</tr>';
-            }
-        }
-
-        echo '<tr>';
-        echo '<th class="action" colspan="4">';
-        echo '<button type="submit" name="cmd[update]">'.$lang['btn_update'].'</button>';
-        echo '</th>';
-        echo '</tr>';
-        echo '</table>';
-        echo '</div>';
-        echo '</div></form>'.NL;
-    }
-
-    /**
-     * Returns the permission which were set for exactly the given user/group
-     * and page/namespace. Returns null if no exact match is available
-     *
-     * @author Andreas Gohr <andi@splitbrain.org>
-     */
-    function _get_exact_perm(){
-        global $ID;
-        if($this->ns){
-            if($this->ns == '*'){
-                $check = '*';
-            }else{
-                $check = $this->ns.':*';
-            }
-        }else{
-            $check = $ID;
-        }
-
-        if(isset($this->acl[$check][$this->who])){
-            return $this->acl[$check][$this->who];
-        }else{
-            return null;
-        }
-    }
-
-    /**
-     * adds new acl-entry to conf/acl.auth.php
-     *
-     * @author  Frank Schubert <frank@schokilade.de>
-     */
-    function _acl_add($acl_scope, $acl_user, $acl_level){
-        global $config_cascade;
-        $acl_user = auth_nameencode($acl_user,true);
-
-        // max level for pagenames is edit
-        if(strpos($acl_scope,'*') === false) {
-            if($acl_level > AUTH_EDIT) $acl_level = AUTH_EDIT;
-        }
-
-        $new_acl = "$acl_scope\t$acl_user\t$acl_level\n";
-
-        return io_saveFile($config_cascade['acl']['default'], $new_acl, true);
-    }
-
-    /**
-     * remove acl-entry from conf/acl.auth.php
-     *
-     * @author  Frank Schubert <frank@schokilade.de>
-     */
-    function _acl_del($acl_scope, $acl_user){
-        global $config_cascade;
-        $acl_user = auth_nameencode($acl_user,true);
-
-        $acl_pattern = '^'.preg_quote($acl_scope,'/').'[ \t]+'.$acl_user.'[ \t]+[0-8].*$';
-
-        return io_deleteFromFile($config_cascade['acl']['default'], "/$acl_pattern/", true);
-    }
-
-    /**
-     * print the permission radio boxes
-     *
-     * @author  Frank Schubert <frank@schokilade.de>
-     * @author  Andreas Gohr <andi@splitbrain.org>
-     */
-    function _html_checkboxes($setperm,$ispage,$name){
-        global $lang;
-
-        static $label = 0; //number labels
-        $ret = '';
-
-        if($ispage && $setperm > AUTH_EDIT) $setperm = AUTH_EDIT;
-
-        foreach(array(AUTH_NONE,AUTH_READ,AUTH_EDIT,AUTH_CREATE,AUTH_UPLOAD,AUTH_DELETE) as $perm){
-            $label += 1;
-
-            //general checkbox attributes
-            $atts = array( 'type'  => 'radio',
-                           'id'    => 'pbox'.$label,
-                           'name'  => $name,
-                           'value' => $perm );
-            //dynamic attributes
-            if(!is_null($setperm) && $setperm == $perm) $atts['checked']  = 'checked';
-            if($ispage && $perm > AUTH_EDIT){
-                $atts['disabled'] = 'disabled';
-                $class = ' class="disabled"';
-            }else{
-                $class = '';
-            }
-
-            //build code
-            $ret .= '<label for="pbox'.$label.'"'.$class.'>';
-            $ret .= '<input '.buildAttributes($atts).' />&#160;';
-            $ret .= $this->getLang('acl_perm'.$perm);
-            $ret .= '</label>'.NL;
-        }
-        return $ret;
-    }
-
-    /**
-     * Print a user/group selector (reusing already used users and groups)
-     *
-     * @author  Andreas Gohr <andi@splitbrain.org>
-     */
-    function _html_select(){
-        $inlist = false;
-        $usel = '';
-        $gsel = '';
-
-        if($this->who &&
-           !in_array($this->who,$this->usersgroups) &&
-           !in_array($this->who,$this->specials)){
-
-            if($this->who{0} == '@'){
-                $gsel = ' selected="selected"';
-            }else{
-                $usel = ' selected="selected"';
-            }
-        }else{
-            $inlist = true;
-        }
-
-        echo '<select name="acl_t" class="edit">'.NL;
-        echo '  <option value="__g__" class="aclgroup"'.$gsel.'>'.$this->getLang('acl_group').'</option>'.NL;
-        echo '  <option value="__u__"  class="acluser"'.$usel.'>'.$this->getLang('acl_user').'</option>'.NL;
-        if (!empty($this->specials)) {
-            echo '  <optgroup label="&#160;">'.NL;
-            foreach($this->specials as $ug){
-                if($ug == $this->who){
-                    $sel    = ' selected="selected"';
-                    $inlist = true;
-                }else{
-                    $sel = '';
-                }
-
-                if($ug{0} == '@'){
-                        echo '  <option value="'.hsc($ug).'" class="aclgroup"'.$sel.'>'.hsc($ug).'</option>'.NL;
-                }else{
-                        echo '  <option value="'.hsc($ug).'" class="acluser"'.$sel.'>'.hsc($ug).'</option>'.NL;
-                }
-            }
-            echo '  </optgroup>'.NL;
-        }
-        if (!empty($this->usersgroups)) {
-            echo '  <optgroup label="&#160;">'.NL;
-            foreach($this->usersgroups as $ug){
-                if($ug == $this->who){
-                    $sel    = ' selected="selected"';
-                    $inlist = true;
-                }else{
-                    $sel = '';
-                }
-
-                if($ug{0} == '@'){
-                        echo '  <option value="'.hsc($ug).'" class="aclgroup"'.$sel.'>'.hsc($ug).'</option>'.NL;
-                }else{
-                        echo '  <option value="'.hsc($ug).'" class="acluser"'.$sel.'>'.hsc($ug).'</option>'.NL;
-                }
-            }
-            echo '  </optgroup>'.NL;
-        }
-        echo '</select>'.NL;
-        return $inlist;
-    }
-}
diff --git a/wiki/lib/plugins/acl/admin.svg b/wiki/lib/plugins/acl/admin.svg
deleted file mode 100644
index b5cf001..0000000
--- a/wiki/lib/plugins/acl/admin.svg
+++ /dev/null
@@ -1 +0,0 @@
-<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/wiki/lib/plugins/acl/lang/af/lang.php b/wiki/lib/plugins/acl/lang/af/lang.php
deleted file mode 100644
index 04d9b0a..0000000
--- a/wiki/lib/plugins/acl/lang/af/lang.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-/**
- * Afrikaans language file
- *
- */
-$lang['page']                  = 'Bladsy';
-$lang['acl_perm0']             = 'Niks';
-$lang['acl_perm1']             = 'Lees';
-$lang['acl_perm2']             = 'Verander';
-$lang['acl_perm4']             = 'Maak';
diff --git a/wiki/lib/plugins/acl/lang/ar/help.txt b/wiki/lib/plugins/acl/lang/ar/help.txt
deleted file mode 100644
index 70f5cf6..0000000
--- a/wiki/lib/plugins/acl/lang/ar/help.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-=== مساعدة سريعة: ===
-
-على هذه Ø§Ù„ØµÙØ­Ø© يمكنك Ø¥Ø¶Ø§ÙØ© أو إزالة الصلاحيات الخاصة بالنطاقات Ùˆ Ø§Ù„ØµÙØ­Ø§Øª ÙÙŠ ويكيتك.
-
-الشريط الأيسر يظهر كل النطاقات Ùˆ Ø§Ù„ØµÙØ­Ø§Øª المتاحة.
-
-النموذج ÙÙŠ الأسÙÙ„ يمكنك من رؤية Ùˆ تعديل الصلاحيات لمستخدم محدد أو مجموعة .
-
-ÙÙŠ الجدول ÙÙŠ الأسÙÙ„ تجد قواعد التحكم بالوصول معروضة. يمكنك استخدامها لحذ٠أو تغيير عدة قواعد بسرعة.
-
-قراءة [[doku>acl|المستندات الرسمية عن ACL]] قد يساعدك على الÙهم الكامل لطريقة عمل التحكم بالوصول ÙÙŠ دوكو ويكي.
diff --git a/wiki/lib/plugins/acl/lang/ar/lang.php b/wiki/lib/plugins/acl/lang/ar/lang.php
deleted file mode 100644
index 89fe27a..0000000
--- a/wiki/lib/plugins/acl/lang/ar/lang.php
+++ /dev/null
@@ -1,38 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author Mostafa Hussein <mostafa@gmail.com>
- * @author Yaman Hokan <always.smile.yh@hotmail.com>
- * @author Usama Akkad <uahello@gmail.com>
- * @author uahello@gmail.com
- */
-$lang['admin_acl']             = 'إدارة قوائم التحكم بالدخول';
-$lang['acl_group']             = 'مجموعة:';
-$lang['acl_user']              = 'مستخدم:';
-$lang['acl_perms']             = 'ترخيص لـ';
-$lang['page']                  = 'ØµÙØ­Ø©';
-$lang['namespace']             = 'ÙØ¶Ø§Ø¡ التسمية';
-$lang['btn_select']            = 'اختيار';
-$lang['p_user_id']             = 'المستخدم<b class="acluser">%s</b> عنده حاليا الصلاحيات التالية على Ø§Ù„ØµÙØ­Ø©<b class="aclpage">%s</b>: <i>%s</i>.';
-$lang['p_user_ns']             = 'المستخدم <b class="acluser">%s</b> عنده حاليا الصلاحيات التالية ÙÙŠ النطاق<b class="aclns">%s</b>: <i>%s</i>.';
-$lang['p_group_id']            = 'أعضاء مجموعة<b class="aclgroup">%s</b> عندهم حاليا الصلاحيات التالية على Ø§Ù„ØµÙØ­Ø© page <b class="aclpage">%s</b>: <i>%s</i>.';
-$lang['p_group_ns']            = 'أعضاء مجموعة <b class="aclgroup">%s</b> عندهم حاليا الصلاحيات التالية ÙÙŠ النطاق <b class="aclns">%s</b>: <i>%s</i>.';
-$lang['p_choose_id']           = 'رجاء <b>مستخدما أو مجموعة</b> ÙÙŠ النموذج أعلاه لعرض أو تحرير اعداد الصلاحيات Ù„Ù„ØµÙØ­Ø©<b class="aclpage">%s</b>.';
-$lang['p_choose_ns']           = 'رجاء Please <b>أدخل مستخدما أو مجموعة</b> ÙÙŠ النموذج أعلاه لعرض أو تحرير اعداد الصلاحيات للنطاق<b class="aclns">%s</b>.';
-$lang['p_inherited']           = 'لاحظ: هذه الصلاحيات لم تنشأ إراديا بل ÙˆÙØ±Ø«Øª من مجموعات أخرى أو نطاقات أعلى.';
-$lang['p_isadmin']             = 'لاحظ: المجموعة أو المستخدم المحدد عندهم دائما صلاحيات كاملة بسبب ضبطهم كمستخدمين متÙوقين.';
-$lang['p_include']             = 'الصلاحيات الاعلى تتضمن Ø§Ù„Ø£Ø®ÙØ¶. صلاحيات الإنشاء ØŒ ÙˆØ§Ù„Ø±ÙØ¹ØŒ والحذ٠تطبق Ùقط على النطاقات، وليس على Ø§Ù„ØµÙØ­Ø§Øª.';
-$lang['current']               = 'قواعد ACL الحالية';
-$lang['where']                 = 'Ø§Ù„ØµÙØ­Ø©/النطاق';
-$lang['who']                   = 'اسم المستخدم / المجموعة';
-$lang['perm']                  = 'التصاريح';
-$lang['acl_perm0']             = 'لا يوجد';
-$lang['acl_perm1']             = 'قراءة';
-$lang['acl_perm2']             = 'تحرير';
-$lang['acl_perm4']             = 'إنشاء';
-$lang['acl_perm8']             = 'تحميل';
-$lang['acl_perm16']            = 'مسح';
-$lang['acl_new']               = 'Ø£Ø¶Ù Ø£Ø¶Ø§ÙØ© جديدة';
-$lang['acl_mod']               = 'عدل المدخلة';
diff --git a/wiki/lib/plugins/acl/lang/bg/help.txt b/wiki/lib/plugins/acl/lang/bg/help.txt
deleted file mode 100644
index ffda1ff..0000000
--- a/wiki/lib/plugins/acl/lang/bg/help.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-=== Помощ ===
-
-От тук можете да добавÑте и премахвате права за именни проÑтранÑтва и Ñтраници във вашето Wiki.
-  * левиÑÑ‚ панел показва вÑички налични именни проÑтранÑтва и Ñтраници.
-  * формата отгоре ви позволÑва да преглеждате и променÑте правата на избран потребител или група.
-  * в таблицата долу Ñа показани вÑички актуални правила за контрол на доÑтъпа.
-Можете да Ñ Ð¿Ð¾Ð»Ð·Ð²Ð°Ñ‚Ðµ за бързо изтриване или промÑна на множеÑтво правила.
-
-За да разберете как работи контрола на доÑтъпа в DokuWiki трÑбва да прочетете [[doku>acl|документациÑта отноÑно ACL]].
\ No newline at end of file
diff --git a/wiki/lib/plugins/acl/lang/bg/lang.php b/wiki/lib/plugins/acl/lang/bg/lang.php
deleted file mode 100644
index 648b91e..0000000
--- a/wiki/lib/plugins/acl/lang/bg/lang.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author Nikolay Vladimirov <nikolay@vladimiroff.com>
- * @author Viktor Usunov <usun0v@mail.bg>
- * @author Kiril <neohidra@gmail.com>
- */
-$lang['admin_acl']             = 'Управление на ÑпиÑъците за доÑтъп';
-$lang['acl_group']             = 'Група:';
-$lang['acl_user']              = 'Потребител:';
-$lang['acl_perms']             = 'Права за';
-$lang['page']                  = 'Страница';
-$lang['namespace']             = 'Именно проÑтранÑтво';
-$lang['btn_select']            = 'Избери';
-$lang['p_user_id']             = 'ПотребителÑÑ‚ <b class="acluser">%s</b> в момента има Ñледните права за Ñтраницата <b class="aclpage">%s</b>: <i>%s</i>.';
-$lang['p_user_ns']             = 'ПотребителÑÑ‚ <b class="acluser">%s</b> в момента има Ñледните права за именното проÑтранÑтво <b class="aclns">%s</b>: <i>%s</i>.';
-$lang['p_group_id']            = 'Членовете на групата <b class="aclgroup">%s</b> в момента имат Ñледните права за Ñтраницата <b class="aclpage">%s</b>: <i>%s</i>.';
-$lang['p_group_ns']            = 'Членовете на групата <b class="aclgroup">%s</b> в момента имат Ñледните права за именното проÑтранÑтво <b class="aclns">%s</b>: <i>%s</i>.';
-$lang['p_choose_id']           = 'МолÑ, <b>въведете потребител или група</b> в полето отгоре, за да видите или промените правата за Ñтраницата <b class="aclpage">%s</b>.';
-$lang['p_choose_ns']           = 'МолÑ, <b>въведете потребител или група</b> в полето отгоре, за да видите или промените правата за именното проÑтранÑтво <b class="aclns">%s</b>.';
-$lang['p_inherited']           = 'Бележка: Тези права не Ñа зададени директно, а Ñа наÑледени от други групи или именни проÑтранÑтва.';
-$lang['p_isadmin']             = 'Бележка: Избраната група или потребител има вÑички права, защото е определен за Ñупер потребител.';
-$lang['p_include']             = 'ВиÑшите права включват по-ниÑши такива. Правата за Ñъздаване, качване и изтриване Ñа приложими Ñамо за именни проÑтранÑтва, но не  за Ñтраници.';
-$lang['current']               = 'Текущи ACL права';
-$lang['where']                 = 'Страница/Именно проÑтранÑтво';
-$lang['who']                   = 'Потребител/Група';
-$lang['perm']                  = 'Права';
-$lang['acl_perm0']             = 'Ðикакви';
-$lang['acl_perm1']             = 'Четене';
-$lang['acl_perm2']             = 'Редактиране';
-$lang['acl_perm4']             = 'Създаване';
-$lang['acl_perm8']             = 'Качване';
-$lang['acl_perm16']            = 'Изтриване';
-$lang['acl_new']               = 'ДобавÑне на право';
-$lang['acl_mod']               = 'ПромÑна на правата';
diff --git a/wiki/lib/plugins/acl/lang/ca-valencia/help.txt b/wiki/lib/plugins/acl/lang/ca-valencia/help.txt
deleted file mode 100644
index 87450d2..0000000
--- a/wiki/lib/plugins/acl/lang/ca-valencia/help.txt
+++ /dev/null
@@ -1,15 +0,0 @@
-=== Ajuda ràpida: ===
-
-En esta pàgina pot afegir i llevar permissos per a espais de noms i
-pàgines del wiki.
-
-El panel esquerre mostra tots els espais de noms i pàgines disponibles.
-
-El formulari de dalt permet vore i modificar els permissos de l'usuari
-o grup seleccionat.
-
-En la taula de baix es mostren totes les regles d'accés actuals. Pot
-usar-la per a canviar o borrar ràpidament vàries regles.
-
-Llegint la [[doku>acl|documentació oficial sobre ACL]] podrà
-comprendre millor com funciona el control d'accés en DokuWiki.
diff --git a/wiki/lib/plugins/acl/lang/ca-valencia/lang.php b/wiki/lib/plugins/acl/lang/ca-valencia/lang.php
deleted file mode 100644
index bdfa7da..0000000
--- a/wiki/lib/plugins/acl/lang/ca-valencia/lang.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-/**
- * valencian language file
- *
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * @author Bernat Arlandis i Mañó <berarma@ya.com>
- * @author Bernat Arlandis <berarma@ya.com>
- * @author Bernat Arlandis <berarma@llenguaitecnologia.com>
- */
-$lang['admin_acl']             = 'Gestor de les llistes de control d\'accés';
-$lang['acl_group']             = 'Grup:';
-$lang['acl_user']              = 'Usuari:';
-$lang['acl_perms']             = 'Permissos per a';
-$lang['page']                  = 'Pàgina';
-$lang['namespace']             = 'Espai de noms';
-$lang['btn_select']            = 'Seleccionar';
-$lang['p_user_id']             = 'L\'usuari <b class="acluser">%s</b> té actualment els següents permissos en la pàgina <b class="aclpage">%s</b>: <i>%s</i>.';
-$lang['p_user_ns']             = 'L\'usuari <b class="acluser">%s</b> té actualment els següents permissos en l\'espai de noms <b class="aclns">%s</b>: <i>%s</i>.';
-$lang['p_group_id']            = 'Els membres del grup <b class="aclgroup">%s</b> tenen actualment els següents permissos en la pàgina <b class="aclpage">%s</b>: <i>%s</i>.';
-$lang['p_group_ns']            = 'Els membres del grup <b class="aclgroup">%s</b> tenen actualment els següents permissos en l\'espai de noms <b class="aclns">%s</b>: <i>%s</i>.';
-$lang['p_choose_id']           = 'Per favor, <b>introduïxca un usuari o grup</b> en el formulari de dalt per a vore o editar els per a la pàgina <b class="aclpage">%s</b>.';
-$lang['p_choose_ns']           = 'Per favor, <b>introduïxca un usuari o grup</b> en el formulari de dalt per a vore o editar els permissos per a l\'espai de noms <b class="aclns">%s</b>.';
-$lang['p_inherited']           = 'Nota: estos permissos no s\'han indicat explícitament sino que s\'hereten d\'atres grups o d\'espais de noms antecessors.';
-$lang['p_isadmin']             = 'Nota: el grup o usuari seleccionat té sempre tots els permissos perque està configurat com a super-usuari.';
-$lang['p_include']             = 'Els permissos més alts inclouen als més baixos. Els permissos per a crear, enviar i borrar només valen per a espais de noms, pàgines no.';
-$lang['current']               = 'Regles ACL actuals';
-$lang['where']                 = 'Pàgina/espai de noms';
-$lang['who']                   = 'Usuari/grup';
-$lang['perm']                  = 'Permissos';
-$lang['acl_perm0']             = 'Cap';
-$lang['acl_perm1']             = 'Llegir';
-$lang['acl_perm2']             = 'Editar';
-$lang['acl_perm4']             = 'Crear';
-$lang['acl_perm8']             = 'Pujar';
-$lang['acl_perm16']            = 'Borrar';
-$lang['acl_new']               = 'Afegir entrada nova';
-$lang['acl_mod']               = 'Modificar entrada';
diff --git a/wiki/lib/plugins/acl/lang/ca/help.txt b/wiki/lib/plugins/acl/lang/ca/help.txt
deleted file mode 100644
index d9bcc12..0000000
--- a/wiki/lib/plugins/acl/lang/ca/help.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-=== Ajuda ràpida ===
-
-En aquesta pàgina podeu afegir i treure permisos per a espais i pàgines del vostre wiki.
-
-La subfinestra de l'esquerra mostra tots els espais i pàgines disponibles.
-
-El formulari de dalt us permet veure i modificar els permisos de l'usuari o grup que seleccioneu.
-
-En la taula de baix es mostren totes les regles de control d'accés que hagin estat definides. Podeu utilitzar aquesta taula per suprimir o modificar ràpidament totes les regles que vulgueu.
-
-Llegir la [[doku>acl|documentació oficial sobre ACL]] us pot ajudar a entendre del tot com funciona el control d'accés en DokuWiki.
\ No newline at end of file
diff --git a/wiki/lib/plugins/acl/lang/ca/lang.php b/wiki/lib/plugins/acl/lang/ca/lang.php
deleted file mode 100644
index 0c88296..0000000
--- a/wiki/lib/plugins/acl/lang/ca/lang.php
+++ /dev/null
@@ -1,39 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Carles Bellver <carles.bellver@cent.uji.es>
- * @author Carles Bellver <carles.bellver@gmail.com>
- * @author carles.bellver@gmail.com
- * @author carles.bellver@cent.uji.es
- * @author daniel@6temes.cat
- */
-$lang['admin_acl']             = 'Gestió de la Llista de Control d\'Accés';
-$lang['acl_group']             = 'Grup:';
-$lang['acl_user']              = 'Usuari:';
-$lang['acl_perms']             = 'Permisos per a';
-$lang['page']                  = 'Pàgina';
-$lang['namespace']             = 'Espai';
-$lang['btn_select']            = 'Selecciona';
-$lang['p_user_id']             = 'L\'usuari <b class="acluser">%s</b> té a hores d\'ara els permisos següents en la pàgina <b class="aclpage">%s</b>: <i>%s</i>.';
-$lang['p_user_ns']             = 'L\'usuari <b class="acluser">%s</b> té a hores d\'ara els permisos següents en l\'espai <b class="aclns">%s</b>: <i>%s</i>.';
-$lang['p_group_id']            = 'Els membres del grup <b class="aclgroup">%s</b> tenen a hores d\'ara els permisos següents en la pàgina <b class="aclpage">%s</b>: <i>%s</i>.';
-$lang['p_group_ns']            = 'Els membres del grup <b class="aclgroup">%s</b> tenen a hores d\'ara els permisos següents en l\'espai <b class="aclns">%s</b>: <i>%s</i>.';
-$lang['p_choose_id']           = '<b>Introduïu un usuari o grup</b> en el formulari de dalt per veure o editar els seus permisos en la pàgina <b class="aclpage">%s</b>.';
-$lang['p_choose_ns']           = '<b>Introduïu un usuari o grup</b> en el formulari de dalt per veure o editar els seus permisos en l\'espai <b class="aclns">%s</b>.';
-$lang['p_inherited']           = 'Nota: aquests permisos no s\'han definit explícitament, sinó que són heretats d\'altres grups o d\'espais d\'ordre superior.';
-$lang['p_isadmin']             = 'Nota: l\'usuari o grup seleccionat té sempre tots els permisos perquè ha estat configurat com a superusuari.';
-$lang['p_include']             = 'Els permisos més alts inclouen tots els permisos inferiors. Els permisos per a crear, penjar i suprimir només s\'apliquen als espais, no a pàgines.';
-$lang['current']               = 'Regles ACL actuals';
-$lang['where']                 = 'Pàgina/espai';
-$lang['who']                   = 'Usuari/grup';
-$lang['perm']                  = 'Permisos';
-$lang['acl_perm0']             = 'Cap';
-$lang['acl_perm1']             = 'Lectura';
-$lang['acl_perm2']             = 'Edició';
-$lang['acl_perm4']             = 'Creació';
-$lang['acl_perm8']             = 'Penjar fitxers';
-$lang['acl_perm16']            = 'Suprimir';
-$lang['acl_new']               = 'Afegeix nova entrada';
-$lang['acl_mod']               = 'Modifica entrada';
diff --git a/wiki/lib/plugins/acl/lang/cs/help.txt b/wiki/lib/plugins/acl/lang/cs/help.txt
deleted file mode 100644
index 1b6fa1e..0000000
--- a/wiki/lib/plugins/acl/lang/cs/help.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-=== Nápověda: ===
-
-Na této stránce můžete přidávat a odebírat oprávnění pro jmenné prostory a stránky svojí wiki.
-* Levý panel zobrazuje všechny dostupné jmenné prostory a stránky.
-* Formulář výše umožňuje vidět a modifikovat oprávnění vybraného uživatele nebo skupiny.
-* V tabulce uvedené níže jsou zobrazeny všechna aktuální pravidla pro řízení přístupu (oprávnění). Zde můžete rychle odebírat a měnit více položek (oprávnění) najednou.
-
-Pro detailnÄ›jší nápovÄ›du si pÅ™eÄtÄ›te stránku [[doku>acl|oficiální dokumentace ACL]], která Vám může pomoci plnÄ› pochopit princip, na kterém řízení přístupu na DokuWiki funguje.
diff --git a/wiki/lib/plugins/acl/lang/cs/lang.php b/wiki/lib/plugins/acl/lang/cs/lang.php
deleted file mode 100644
index 1898571..0000000
--- a/wiki/lib/plugins/acl/lang/cs/lang.php
+++ /dev/null
@@ -1,43 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Bohumir Zamecnik <bohumir@zamecnik.org>
- * @author Zbynek Krivka <zbynek.krivka@seznam.cz>
- * @author tomas <tomas@valenta.cz>
- * @author Marek Sacha <sachamar@fel.cvut.cz>
- * @author Lefty <lefty@multihost.cz>
- * @author Vojta Beran <xmamut@email.cz>
- * @author Jakub A. Těšínský (j@kub.cz)
- * @author mkucera66 <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:';
-$lang['acl_user']              = 'Uživatel:';
-$lang['acl_perms']             = 'Práva pro';
-$lang['page']                  = 'Stránka';
-$lang['namespace']             = 'Jmenný prostor';
-$lang['btn_select']            = 'Vybrat';
-$lang['p_user_id']             = 'Uživatel <b class="acluser">%s</b> má nyní na stránku <b class="aclpage">%s</b> následující oprávnění: <i>%s</i>.';
-$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>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.';
-$lang['current']               = 'Aktuální ACL pravidla';
-$lang['where']                 = 'Stránka/Jmenný prostor';
-$lang['who']                   = 'Uživatel/Skupina';
-$lang['perm']                  = 'Oprávnění';
-$lang['acl_perm0']             = 'Žádné';
-$lang['acl_perm1']             = 'Čtení';
-$lang['acl_perm2']             = 'Úpravy';
-$lang['acl_perm4']             = 'Vytvoření';
-$lang['acl_perm8']             = 'Upload';
-$lang['acl_perm16']            = 'Mazání';
-$lang['acl_new']               = 'Přidat novou položku';
-$lang['acl_mod']               = 'Editovat položku';
diff --git a/wiki/lib/plugins/acl/lang/cy/help.txt b/wiki/lib/plugins/acl/lang/cy/help.txt
deleted file mode 100644
index f3d6474..0000000
--- a/wiki/lib/plugins/acl/lang/cy/help.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-=== Cymorth Byw: ===
-
-Ar y dudalen hon, gallwch chi ychwanegu a dileu hawliau ar gyfer namespaces a thudalennau yn eich wici.
-  * Mae'r panel ar y chwith yn dangos pob namespace a thudalen.
-  * Mae'r ffurflen uchod yn eich galluogi chi i weld a newid hawliau defnyddiwr neu grŵp a ddewiswyd.
-  * Yn y tabl isod, dengys pob rheol rheoli mynediad sydd wedi'u gosod yn bresennol. Gallwch chi ei ddefnyddio i ddileu neu newid sawl rheol ar y tro.
-
-Gall darllen [[doku>acl|dogfennaeth swyddogol ar ACL]] fod o fudd er mwyn eich helpu chi ddeall yn llawn sut mae rheolaeth mynediad yn gweithio mewn DokuWiki.
-
-
diff --git a/wiki/lib/plugins/acl/lang/cy/lang.php b/wiki/lib/plugins/acl/lang/cy/lang.php
deleted file mode 100644
index add3ca4..0000000
--- a/wiki/lib/plugins/acl/lang/cy/lang.php
+++ /dev/null
@@ -1,47 +0,0 @@
-<?php
-/**
- * welsh language file
- *
- * @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>
- * @author     Alan Davies <ben.brynsadler@gmail.com>
- */
-
-$lang['admin_acl']  = 'Rheolaeth Rhestr Rheoli Mynediad';
-$lang['acl_group']  = 'Grŵp:';
-$lang['acl_user']   = 'Defnyddiwr:';
-$lang['acl_perms']  = 'Hawliau';
-$lang['page']       = 'Tudalen';
-$lang['namespace']  = 'Namespace'; //namespace
-
-$lang['btn_select']  = 'Dewis';
-
-$lang['p_user_id']    = 'Mae gan y defnyddiwr <b class="acluser">%s</b> yr hawliau canlynol yn bresennol ar dudalen <b class="aclpage">%s</b>: <i>%s</i>.';
-$lang['p_user_ns']    = 'Mae gan y defnyddiwr <b class="acluser">%s</b> yr hawliau canlynol yn bresennol mewn namespace <b class="aclns">%s</b>: <i>%s</i>.';//namespace
-$lang['p_group_id']   = 'Mae gan aelodau grŵp <b class="aclgroup">%s</b> yr hawliau canlynol yn bresennol ar dudalen <b class="aclpage">%s</b>: <i>%s</i>.';
-$lang['p_group_ns']   = 'Mae gan aelodau grŵp <b class="aclgroup">%s</b> yr hawliau canlynol yn bresennol mewn namespace <b class="aclns">%s</b>: <i>%s</i>.';//namespace
-
-$lang['p_choose_id']  = 'Rhowch <b>ddefnyddiwr neu grŵp</b> yn y ffurflen uchod i weld neu golugu\'r hawliau sydd wedi\'u gosod ar gyfer y dudalen <b class="aclpage">%s</b>.';
-$lang['p_choose_ns']  = 'Rhowch <b>ddefnyddiwr neu grŵp</b> yn y ffurflen uchod i weld neu golugu\'r hawliau sydd wedi\'u gosod ar gyfer y namespace <b class="aclns">%s</b>.';//namespace
-
-
-$lang['p_inherited']  = 'Sylw: Doedd yr hawliau hynny heb eu gosod yn uniongyrchol ond cawsant eu hetifeddu o grwpiau eraill neu namespaces uwch.';//namespace
-$lang['p_isadmin']    = 'Sylw: Mae gan y grŵp neu\'r defnyddiwr hawliau llawn oherwydd mae wedi\'i ffurfweddu fel uwchddefnyddiwr.';
-$lang['p_include']    = 'Mae hawliau uwch yn cynnwys rhai is. Mae Creu, Lanlwytho a Dileu yn berthnasol i namespaces yn unig, nid tudalennau.';//namespace
-
-$lang['current'] = 'Rheolau ACL Cyfredol';
-$lang['where'] = 'Tudalen/Namespace';//namespace
-$lang['who']   = 'Defnyddiwr/Grŵp';
-$lang['perm']  = 'Hawliau';
-
-$lang['acl_perm0']  = 'Dim';
-$lang['acl_perm1']  = 'Darllen';
-$lang['acl_perm2']  = 'Golygu';
-$lang['acl_perm4']  = 'Creu';
-$lang['acl_perm8']  = 'Lanlwytho';
-$lang['acl_perm16'] = 'Dileu';
-$lang['acl_new']    = 'Ychwanegu Cofnod Newydd';
-$lang['acl_mod']    = 'Newid Cofnod';
-//Setup VIM: ex: et ts=2 :
diff --git a/wiki/lib/plugins/acl/lang/da/help.txt b/wiki/lib/plugins/acl/lang/da/help.txt
deleted file mode 100644
index c8eedfc..0000000
--- a/wiki/lib/plugins/acl/lang/da/help.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-=== Vejledning ===
-
-På denne side kan du tilføje og fjerne tilladelser for navnerum og sider i din wiki.
-
-Panelet i venstre side viser alle tilgængelige navnerum og sider.
-
-I kassen for oven giver dig mulighed for at se og ændre tilladelser for en bestemt bruger eller gruppe.
-
-Nedenstående skema viser dig alle de satte regler for adgangskontrol. Du kan bruge den til hurtigt at slette eller ændre nogle af dem.
-
-Ved at læse [[doku>acl|den officielle vejledning til ACL]] kan du opnå yderligere hjælp til at blive sat helt ind i, hvordan adgangskontrol virker i DokuWiki.
\ No newline at end of file
diff --git a/wiki/lib/plugins/acl/lang/da/lang.php b/wiki/lib/plugins/acl/lang/da/lang.php
deleted file mode 100644
index 5209b7b..0000000
--- a/wiki/lib/plugins/acl/lang/da/lang.php
+++ /dev/null
@@ -1,44 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author koeppe <koeppe@kazur.dk>
- * @author Jon Bendtsen <bendtsen@diku.dk>
- * @author Lars Næsbye Christensen <larsnaesbye@stud.ku.dk>
- * @author Kalle Sommer Nielsen <kalle@php.net>
- * @author Esben Laursen <hyber@hyber.dk>
- * @author Harith <haj@berlingske.dk>
- * @author Daniel Ejsing-Duun <dokuwiki@zilvador.dk>
- * @author Erik Bjørn Pedersen <erik.pedersen@shaw.ca>
- * @author rasmus <rasmus@kinnerup.com>
- * @author Mikael Lyngvig <mikael@lyngvig.org>
- */
-$lang['admin_acl']             = 'Rettighedsadministration';
-$lang['acl_group']             = 'Gruppe:';
-$lang['acl_user']              = 'Bruger:';
-$lang['acl_perms']             = 'Rettigheder for';
-$lang['page']                  = 'Dokument';
-$lang['namespace']             = 'Navnerum';
-$lang['btn_select']            = 'Vælg';
-$lang['p_user_id']             = 'Bruger <b class="acluser">%s</b> har følgende adgang på siden <b class="aclpage">%s</b>: <i>%s</i>';
-$lang['p_user_ns']             = 'Bruger <b class="acluser">%s</b> har foreløbig følgende tilladelse i navnerummet <b class="aclns">%s</b>: <i>%s</i>.';
-$lang['p_group_id']            = 'Medlemmerne af gruppen <b class="aclgroup">%s</b> har foreløbigt de følgende tilladelser på siden <b class="aclpage">%s</b>: <i>%s</i>.';
-$lang['p_group_ns']            = 'Medlemmerne af gruppen <b class="aclgroup">%s</b> har foreløbigt de følgende tilladelser i navnerummet <b class="aclns">%s</b>: <i>%s</i>.';
-$lang['p_choose_id']           = 'Venligst <b>udfyld en bruger eller gruppe</b> i ovennævnte formular for at se eller redigere tilladelserne for denne side<b class="aclpage">%s</b>.';
-$lang['p_choose_ns']           = 'Venligst <b>udfyld en bruger eller gruppe</b> i ovennævnte formular for at se eller redigere tilladelserne for navnerummet <b class="aclns">%s</b>.';
-$lang['p_inherited']           = 'Bemærk: Disse tilladelser var ikke lagt entydigt ind, men var arvet fra andre grupper eller højere navnerum.';
-$lang['p_isadmin']             = 'Bemærk: Den valgte gruppe eller bruger har altid fuld adgang, fordi den er sat til at være en supergruppe eller -bruger';
-$lang['p_include']             = 'Højere tilladelse inkluderer også lavere. Tilladelser til at oprette, lægge filer op og slette gælder kun for navnerum, ikke sider.';
-$lang['current']               = 'Aktuelle ACL-regler';
-$lang['where']                 = 'Side/navnerum';
-$lang['who']                   = 'Bruger/gruppe';
-$lang['perm']                  = 'Rettigheder';
-$lang['acl_perm0']             = 'Ingen';
-$lang['acl_perm1']             = 'Læs';
-$lang['acl_perm2']             = 'Skriv';
-$lang['acl_perm4']             = 'Opret';
-$lang['acl_perm8']             = 'Overføre';
-$lang['acl_perm16']            = 'Slet';
-$lang['acl_new']               = 'Tilføj ny post';
-$lang['acl_mod']               = 'Ændre post';
diff --git a/wiki/lib/plugins/acl/lang/de-informal/help.txt b/wiki/lib/plugins/acl/lang/de-informal/help.txt
deleted file mode 100644
index d7930f8..0000000
--- a/wiki/lib/plugins/acl/lang/de-informal/help.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-=== Schnellhilfe ===
-
-Auf dieser Seite kannst Du Rechte für Namensräume und Seiten in deinem Wiki hinzufügen oder entfernen.
-
-Der linke Bereich zeigt alle Namensräume und Seiten.
-
-Das obere Formular zeigt die die Rechte der ausgewählten Gruppe bzw. Benutzers.
-
-In der Tabelle unten werden alle momentan gesetzten Zugriffsregeln gezeigt. Hier kannst Du schnell mehrere Regeln löschen oder ändern.
-
-Das Lesen von [[doku>acl|official documentation on ACL]] kann Dir helfen zu verstehen, wie die Zugriffskontrole in DokuWiki funktioniert.
diff --git a/wiki/lib/plugins/acl/lang/de-informal/lang.php b/wiki/lib/plugins/acl/lang/de-informal/lang.php
deleted file mode 100644
index 9efdecb..0000000
--- a/wiki/lib/plugins/acl/lang/de-informal/lang.php
+++ /dev/null
@@ -1,42 +0,0 @@
-<?php
-
-/**
- * @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>
- * @author Matthias Schulte <dokuwiki@lupo49.de>
- * @author Christian Wichmann <nospam@zone0.de>
- * @author Pierre Corell <info@joomla-praxis.de>
- * @author Frank Loizzi <contact@software.bacal.de>
- * @author Volker Bödker <volker@boedker.de>
- */
-$lang['admin_acl']             = 'Zugangsverwaltung';
-$lang['acl_group']             = 'Gruppe:';
-$lang['acl_user']              = 'Benutzer:';
-$lang['acl_perms']             = 'Rechte für';
-$lang['page']                  = 'Seite';
-$lang['namespace']             = 'Namensraum';
-$lang['btn_select']            = 'Auswählen';
-$lang['p_user_id']             = 'Benutzer <b class="acluser">%s</b> hat im Moment folgende Rechte auf der Seite <b class="aclpage">%s</b>: <i>%s</i>';
-$lang['p_user_ns']             = 'Benutzer <b class="acluser">%s</b> hat momentan die folgenden Rechte im Namensraum <b class="aclns">%s</b>: <i>%s</i>.';
-$lang['p_group_id']            = 'Die Gruppenmitglieder <b class="aclgroup">%s</b> haben momentan die folgenden Rechte auf der Seite <b class="aclpage">%s</b>: <i>%s</i>.';
-$lang['p_group_ns']            = 'Die Mitglieder der Gruppe <b class="aclgroup">%s</b> haben gerade Zugriff in folgenden Namensräumen <b class="aclns">%s</b>: <i>%s</i>.';
-$lang['p_choose_id']           = 'Bitte <b>gib einen Benutzer oder eine Gruppe</b> in das Formular ein, um die Berechtigungen der Seite <b class="aclpage">%s</b> anzusehen oder zu bearbeiten.';
-$lang['p_choose_ns']           = 'Bitte <b>gib einen Benutzer oder eine Gruppe</b> in das Formular ein, um die Berechtigungen des Namenraumes <b class="aclpage">%s</b> anzusehen oder zu bearbeiten.';
-$lang['p_inherited']           = 'Hinweis: Diese Rechte wurden nicht explizit gesetzt, sondern von anderen Gruppen oder übergeordneten Namensräumen geerbt.';
-$lang['p_isadmin']             = 'Hinweis: Die gewählte Gruppe oder der Benutzer haben immer die vollen Rechte, weil sie als Superuser konfiguriert sind.';
-$lang['p_include']             = 'Höhere Rechte schließen kleinere mit ein. Hochlade- und Löschrechte sind nur für Namensräume, nicht für Seiten.';
-$lang['current']               = 'Momentane Zugriffsregeln';
-$lang['where']                 = 'Seite/Namensraum';
-$lang['who']                   = 'Benutzer/Gruppe';
-$lang['perm']                  = 'Rechte';
-$lang['acl_perm0']             = 'Keine';
-$lang['acl_perm1']             = 'Lesen';
-$lang['acl_perm2']             = 'Bearbeiten';
-$lang['acl_perm4']             = 'Erstellen';
-$lang['acl_perm8']             = 'Hochladen';
-$lang['acl_perm16']            = 'Löschen';
-$lang['acl_new']               = 'Neuen Eintrag zufügen';
-$lang['acl_mod']               = 'Eintrag modifizieren';
diff --git a/wiki/lib/plugins/acl/lang/de/help.txt b/wiki/lib/plugins/acl/lang/de/help.txt
deleted file mode 100644
index 2a3efe5..0000000
--- a/wiki/lib/plugins/acl/lang/de/help.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-=== Kurzhilfe ===
-
-Auf dieser Seite können sie Zugriffsberechtigungen für Seiten und Namensräume festlegen und ändern.
-
-Die Liste links zeigt alle verfügbaren Namensräume und Seiten.
-
-Das Formular oben erlaubt Anzeige, Ändern und Hinzufügen von Zugriffsregeln für einen ausgewählten Benutzer oder eine Gruppe.
-
-In der Tabelle unten werden alle bestehenden Regeln aufgeführt und können dort modifiziert oder gelöscht werden.
-
-Für ein tiefergehendes Verständnis wie Zugriffsbeschränkungen in DokuWiki funktionieren, sollten Sie die [[doku>acl|offizielle Dokumentation]] lesen.
\ No newline at end of file
diff --git a/wiki/lib/plugins/acl/lang/de/lang.php b/wiki/lib/plugins/acl/lang/de/lang.php
deleted file mode 100644
index 45d35bc..0000000
--- a/wiki/lib/plugins/acl/lang/de/lang.php
+++ /dev/null
@@ -1,52 +0,0 @@
-<?php
-
-/**
- * @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>
- * @author Esther Brunner <esther@kaffeehaus.ch>
- * @author Matthias Grimm <matthiasgrimm@users.sourceforge.net>
- * @author Michael Klier <chi@chimeric.de>
- * @author Leo Moll <leo@yeasoft.com>
- * @author Florian Anderiasch <fa@art-core.org>
- * @author Robin Kluth <commi1993@gmail.com>
- * @author Arne Pelka <mail@arnepelka.de>
- * @author Dirk Einecke <dirk@dirkeinecke.de>
- * @author Blitzi94 <Blitzi94@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 Michael Große <grosse@cosmocode.de>
- */
-$lang['admin_acl']             = 'Zugangsverwaltung';
-$lang['acl_group']             = 'Gruppe:';
-$lang['acl_user']              = 'Benutzer:';
-$lang['acl_perms']             = 'Berechtigungen für';
-$lang['page']                  = 'Seite';
-$lang['namespace']             = 'Namensraum';
-$lang['btn_select']            = 'Auswählen';
-$lang['p_user_id']             = 'Nutzer <b class="acluser">%s</b> hat momentan folgende Berechtigungen für die Seite <b class="aclpage">%s</b>: <i>%s</i>.';
-$lang['p_user_ns']             = 'Nutzer <b class="acluser">%s</b> hat momentan folgende Berechtigungen im Namensraum <b class="aclns">%s</b>: <i>%s</i>.';
-$lang['p_group_id']            = 'Mitglieder der Gruppe <b class="aclgroup">%s</b> haben momentan folgende Berechtigungen für die Seite <b class="aclpage">%s</b>: <i>%s</i>.';
-$lang['p_group_ns']            = 'Mitglieder der Gruppe <b class="aclgroup">%s</b> haben momentan folgende Berechtigungen für den Namensraum <b class="aclns">%s</b>: <i>%s</i>.';
-$lang['p_choose_id']           = 'Bitte geben Sie in obigem Formular eine <b>einen Benutzer oder eine Gruppe</b> an, um die Berechtigungen für die Seite <b class="aclpage">%s</b> zu sehen oder zu ändern.';
-$lang['p_choose_ns']           = 'Bitte geben Sie in obigem Formular eine <b>einen Benutzer oder eine Gruppe</b> an, um die Berechtigungen für den Namensraum <b class="aclns">%s</b> zu sehen oder zu ändern.';
-$lang['p_inherited']           = 'Hinweis: Diese Berechtigungen wurden nicht explizit gesetzt, sondern von anderen Gruppen oder höher liegenden Namensräumen geerbt.';
-$lang['p_isadmin']             = 'Hinweis: Die ausgewählte Gruppe oder Benutzer haben immer alle Berechtigungen, da sie als Superuser konfiguriert wurden.';
-$lang['p_include']             = 'Höhere Berechtigungen schließen niedrigere mit ein. Anlegen, Hochladen und Entfernen gilt nur für Namensräume, nicht für einzelne Seiten';
-$lang['current']               = 'Momentane Zugriffsregeln';
-$lang['where']                 = 'Seite/Namensraum';
-$lang['who']                   = 'Nutzer/Gruppe';
-$lang['perm']                  = 'Berechtigungen';
-$lang['acl_perm0']             = 'Keine';
-$lang['acl_perm1']             = 'Lesen';
-$lang['acl_perm2']             = 'Bearbeiten';
-$lang['acl_perm4']             = 'Anlegen';
-$lang['acl_perm8']             = 'Hochladen';
-$lang['acl_perm16']            = 'Entfernen';
-$lang['acl_new']               = 'Eintrag hinzufügen';
-$lang['acl_mod']               = 'Eintrag bearbeiten';
diff --git a/wiki/lib/plugins/acl/lang/el/help.txt b/wiki/lib/plugins/acl/lang/el/help.txt
deleted file mode 100644
index ea2f816..0000000
--- a/wiki/lib/plugins/acl/lang/el/help.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-=== ΓÏήγοÏη Βοήθεια: ===
-
-Στη σελίδα αυτή μποÏείτε να Ï€Ïοσθέσετε και αφαιÏέσετε δικαιώματα Ï€Ïόσβασης για φακέλους και σελίδες στο wiki σας.
-
-Το αÏιστεÏÏŒ πλαίσιο δείχνει όλους τους διαθέσιμους φακέλους και αÏχεία.
-
-Η παÏαπάνω φόÏμα επιτÏέπει να δείτε και να Ï„Ïοποποιήσετε τα διακαιώματα μίας επιλεγμένης ομάδας χÏηστών ή ενός χÏήστη.
-
-Στον παÏακάτω πίνακα εμφανίζονται όλοι οι Ï„Ïέχοντες κανόνες παÏαχώÏησης δικαιωμάτων Ï€Ïόσβασης. ΜποÏείτε να τον χÏησιμοποιήσετε ώστε να σβήσετε ή να Ï„Ïοποποιήσετε γÏήγοÏα πολλαπλοÏÏ‚ κανόνες.
-Διαβάζοντας την [[doku>acl|επίσημη τεκμηÏίωση για τις Λίστες Δικαιωμάτων ΠÏόσβασης - ACL]] ίσως σας βοηθήσει να καταλάβετε πλήÏως το πως αυτές εφαÏμόζονται στην DokuWiki.
\ No newline at end of file
diff --git a/wiki/lib/plugins/acl/lang/el/lang.php b/wiki/lib/plugins/acl/lang/el/lang.php
deleted file mode 100644
index 75cc415..0000000
--- a/wiki/lib/plugins/acl/lang/el/lang.php
+++ /dev/null
@@ -1,43 +0,0 @@
-<?php
-
-/**
- * @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>
- * @author Thanos Massias <tm@thriasio.gr>
- * @author Αθανάσιος Îταής <homunculus@wana.gr>
- * @author Konstantinos Koryllos <koryllos@gmail.com>
- * @author George Petsagourakis <petsagouris@gmail.com>
- * @author Petros Vidalis <pvidalis@gmail.com>
- * @author Vasileios Karavasilis vasileioskaravasilis@gmail.com
- */
-$lang['admin_acl']             = 'ΔιαχείÏιση Δικαιωμάτων ΠÏόσβασης';
-$lang['acl_group']             = 'Ομάδα:';
-$lang['acl_user']              = 'ΧÏήστης:';
-$lang['acl_perms']             = 'Δικαιώματα για';
-$lang['page']                  = 'Σελίδα';
-$lang['namespace']             = 'Φάκελος';
-$lang['btn_select']            = 'Επιλογή';
-$lang['p_user_id']             = 'Ο χÏήστης <b class="acluser">%s</b> έχει τα ακόλουθα δικαιώματα Ï€Ïόσβασης στην σελίδα <b class="aclpage">%s</b>: <i>%s</i>.';
-$lang['p_user_ns']             = 'Ο χÏήστης <b class="acluser">%s</b> έχει τα ακόλουθα δικαιώματα Ï€Ïόσβασης στον φάκελο <b class="aclns">%s</b>: <i>%s</i>.';
-$lang['p_group_id']            = 'Τα μέλη της ομάδας <b class="aclgroup">%s</b> έχουν τα ακόλουθα δικαιώματα Ï€Ïόσβασης στην σελίδα <b class="aclpage">%s</b>: <i>%s</i>.';
-$lang['p_group_ns']            = 'Τα μέλη της ομάδας <b class="aclgroup">%s</b> έχουν τα ακόλουθα δικαιώματα Ï€Ïόσβασης στον φάκελο <b class="aclns">%s</b>: <i>%s</i>.';
-$lang['p_choose_id']           = 'ΠαÏακαλώ <b>δώστε ένα όνομα χÏήστη ή ομάδας χÏηστών</b> στην παÏαπάνω μοÏφή για να δείτε τα αντίστοιχα δικαιώματα Ï€Ïόσβασης για την σελίδα <b class="aclpage">%s</b>.';
-$lang['p_choose_ns']           = 'ΠαÏακαλώ <b>δώστε ένα όνομα χÏήστη ή ομάδας χÏηστών</b> στην παÏαπάνω μοÏφή για να δείτε τα αντίστοιχα δικαιώματα Ï€Ïόσβασης για τον φάκελο <b class="aclns">%s</b>.';
-$lang['p_inherited']           = 'Σημείωση: Αυτά τα διακαιώματα χÏήσης δεν οÏίστηκαν άμεσα αλλά κληÏονομήθηκαν από άλλες ομάδες χÏηστών ή φακέλους σε υψηλότεÏο επίπεδο.';
-$lang['p_isadmin']             = 'Σημείωση: Η επιλεγμένη ομάδα χÏηστών ή χÏήστης έχει πάντα πλήÏη διακαιώματα Ï€Ïόσβασης διότι είναι δηλωμένος σαν υπεÏχÏήστης (superuser).';
-$lang['p_include']             = 'Τα υψηλότεÏα δικαιώματα Ï€Ïόσβασης πεÏιλαμβάνουν τα χαμηλότεÏα. Τα δικαιώματα για ΔημιουÏγία, ΦόÏτωση και ΔιαγÏαφή αφοÏοÏν μόνο φακέλους και όχι σελίδες. ';
-$lang['current']               = 'ΤÏέχοντες κανόνες Λίστας Δικαιωμάτων ΠÏόσβασης - ACL';
-$lang['where']                 = 'Σελίδα/Φάκελος';
-$lang['who']                   = 'ΧÏήστης/Ομάδα χÏηστών';
-$lang['perm']                  = 'Δικαιώματα Ï€Ïόσβασης';
-$lang['acl_perm0']             = 'Κανένα';
-$lang['acl_perm1']             = 'Ανάγνωση';
-$lang['acl_perm2']             = 'ΤÏοποποίηση';
-$lang['acl_perm4']             = 'ΔημιουÏγία';
-$lang['acl_perm8']             = 'ΦόÏτωση';
-$lang['acl_perm16']            = 'ΔιαγÏαφή';
-$lang['acl_new']               = 'ΠÏοσθήκη νέας εγγÏαφής';
-$lang['acl_mod']               = 'ΤÏοποποίηση εγγÏαφής';
diff --git a/wiki/lib/plugins/acl/lang/en/help.txt b/wiki/lib/plugins/acl/lang/en/help.txt
deleted file mode 100644
index e865bbb..0000000
--- a/wiki/lib/plugins/acl/lang/en/help.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-=== Quick Help: ===
-
-On this page you can add and remove permissions for namespaces and pages in your wiki.
-  * The left pane displays all available namespaces and pages.
-  * The form above allows you to see and modify the permissions of a selected user or group.
-  * In the table below all currently set access control rules are shown. You can use it to quickly delete or change multiple rules.
-
-Reading the [[doku>acl|official documentation on ACL]] might help you to fully understand how access control works in DokuWiki.
-
diff --git a/wiki/lib/plugins/acl/lang/en/lang.php b/wiki/lib/plugins/acl/lang/en/lang.php
deleted file mode 100644
index 0c86489..0000000
--- a/wiki/lib/plugins/acl/lang/en/lang.php
+++ /dev/null
@@ -1,46 +0,0 @@
-<?php
-/**
- * english language file
- *
- * @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>
- */
-
-$lang['admin_acl']  = 'Access Control List Management';
-$lang['acl_group']  = 'Group:';
-$lang['acl_user']   = 'User:';
-$lang['acl_perms']  = 'Permissions for';
-$lang['page']       = 'Page';
-$lang['namespace']  = 'Namespace';
-
-$lang['btn_select']  = 'Select';
-
-$lang['p_user_id']    = 'User <b class="acluser">%s</b> currently has the following permissions on page <b class="aclpage">%s</b>: <i>%s</i>.';
-$lang['p_user_ns']    = 'User <b class="acluser">%s</b> currently has the following permissions in namespace <b class="aclns">%s</b>: <i>%s</i>.';
-$lang['p_group_id']   = 'Members of group <b class="aclgroup">%s</b> currently have the following permissions on page <b class="aclpage">%s</b>: <i>%s</i>.';
-$lang['p_group_ns']   = 'Members of group <b class="aclgroup">%s</b> currently have the following permissions in namespace <b class="aclns">%s</b>: <i>%s</i>.';
-
-$lang['p_choose_id']  = 'Please <b>enter a user or group</b> in the form above to view or edit the permissions set for the page <b class="aclpage">%s</b>.';
-$lang['p_choose_ns']  = 'Please <b>enter a user or group</b> in the form above to view or edit the permissions set for the namespace <b class="aclns">%s</b>.';
-
-
-$lang['p_inherited']  = 'Note: Those permissions were not set explicitly but were inherited from other groups or higher namespaces.';
-$lang['p_isadmin']    = 'Note: The selected group or user has always full permissions because it is configured as superuser.';
-$lang['p_include']    = 'Higher permissions include lower ones. Create, Upload and Delete permissions only apply to namespaces, not pages.';
-
-$lang['current'] = 'Current ACL Rules';
-$lang['where'] = 'Page/Namespace';
-$lang['who']   = 'User/Group';
-$lang['perm']  = 'Permissions';
-
-$lang['acl_perm0']  = 'None';
-$lang['acl_perm1']  = 'Read';
-$lang['acl_perm2']  = 'Edit';
-$lang['acl_perm4']  = 'Create';
-$lang['acl_perm8']  = 'Upload';
-$lang['acl_perm16'] = 'Delete';
-$lang['acl_new']    = 'Add new Entry';
-$lang['acl_mod']    = 'Modify Entry';
-//Setup VIM: ex: et ts=2 :
diff --git a/wiki/lib/plugins/acl/lang/eo/help.txt b/wiki/lib/plugins/acl/lang/eo/help.txt
deleted file mode 100644
index 488e84a..0000000
--- a/wiki/lib/plugins/acl/lang/eo/help.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-=== Helpeto: ===
-
-En tiu ĉi paÄo vi povas aldoni kaj forigi rajtojn por nomspacoj kaj paÄoj en via vikio.
-
-La maldekstra panelo montras ĉiujn disponeblajn nomspacojn kaj paÄojn.
-
-La suba agordilo permesas al vi rigardi kaj modifi la rajtojn de elektita uzanto aÅ­ grupo.
-
-En la suba tabelo ĉiuj aktuale difinitaj alirkontrolaj reguloj estas montrataj. Vi povas uzi Äin por rapide forigi aÅ­ ÅanÄi multoblajn regulojn.
-
-Legi la [[doku>acl|oficialan dokumentaron pri ACL]] povus helpi vin bone kompreni kiel alirkontrolo funkcias en DokuWiki.
diff --git a/wiki/lib/plugins/acl/lang/eo/lang.php b/wiki/lib/plugins/acl/lang/eo/lang.php
deleted file mode 100644
index b59f465..0000000
--- a/wiki/lib/plugins/acl/lang/eo/lang.php
+++ /dev/null
@@ -1,38 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Felipe Castro <fefcas@uol.com.br>
- * @author Felipo Kastro <fefcas@gmail.com>
- * @author Robert Bogenschneider <robog@gmx.de>
- * @author Erik Pedersen <erik pedersen@shaw.ca>
- */
-$lang['admin_acl']             = 'Administrado de Alirkontrola Listo (ACL)';
-$lang['acl_group']             = 'Grupo:';
-$lang['acl_user']              = 'Uzanto:';
-$lang['acl_perms']             = 'Rajtoj por';
-$lang['page']                  = 'PaÄo';
-$lang['namespace']             = 'Nomspaco';
-$lang['btn_select']            = 'Elekti';
-$lang['p_user_id']             = 'Uzanto <b class="acluser">%s</b> aktuale havas la jenajn rajtojn en la paÄo <b class="aclpage">%s</b>: <i>%s</i>.';
-$lang['p_user_ns']             = 'Uzanto <b class="acluser">%s</b> aktuale havas la jenajn rajtojn en la nomspaco <b class="aclns">%s</b>: <i>%s</i>.';
-$lang['p_group_id']            = 'Anoj de la grupo <b class="aclgroup">%s</b> aktuale havas la jenajn rajtojn en la paÄo <b class="aclpage">%s</b>: <i>%s</i>.';
-$lang['p_group_ns']            = 'Anoj de la grupo <b class="aclgroup">%s</b> aktuale havas la jenajn rajtojn en la nomspaco <b class="aclns">%s</b>: <i>%s</i>.';
-$lang['p_choose_id']           = 'Bonvolu <b>enmeti uzanton aÅ­ grupon</b> en la suban agordilon por rigardi aÅ­ redakti la aron da rajtoj por la paÄo <b class="aclpage">%s</b>.';
-$lang['p_choose_ns']           = 'Bonvolu <b>enmeti uzanton aÅ­ grupon</b> en la suban agordilon por rigardi aÅ­ redakti la aron da rajtoj por la nomspaco <b class="aclns">%s</b>.';
-$lang['p_inherited']           = 'Rimarko: tiuj rajtoj ne estas rekte difinitaj, sed ili herediÄas el aliaj pli supraj grupoj aÅ­ nomspacoj.';
-$lang['p_isadmin']             = 'Rimarko: la elektita grupo aÅ­ uzanto ĉiam havas plenan rajtaron ĉar Äi estas difinita kiel superuzanto.';
-$lang['p_include']             = 'Plialtaj permesoj inkluzivas malpli altajn. La permesoj por Krei, AlÅuti kaj Forigi nur aplikeblas al nomspacoj, ne al paÄoj.';
-$lang['current']               = 'Aktuala regularo ACL';
-$lang['where']                 = 'PaÄo/Nomspaco';
-$lang['who']                   = 'Uzanto/Grupo';
-$lang['perm']                  = 'Rajtoj';
-$lang['acl_perm0']             = 'Nenio';
-$lang['acl_perm1']             = 'Legi';
-$lang['acl_perm2']             = 'Redakti';
-$lang['acl_perm4']             = 'Krei';
-$lang['acl_perm8']             = 'AlÅuti';
-$lang['acl_perm16']            = 'Forigi';
-$lang['acl_new']               = 'Aldoni novan enmetaĵon';
-$lang['acl_mod']               = 'Modifi enmetaĵon';
diff --git a/wiki/lib/plugins/acl/lang/es/help.txt b/wiki/lib/plugins/acl/lang/es/help.txt
deleted file mode 100644
index 01f7a2e..0000000
--- a/wiki/lib/plugins/acl/lang/es/help.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-=== Ayuda rápida: ===
-
-En esta página puede agregar o retirar permisos para los espacios de nombres y páginas en su wiki.
-
-El panel de la izquierda muestra todos los espacios de nombres y páginas
-
-El formulario inferior permite  ver y modificar los permisos del usuario o grupo elegido.
-
-En la tabla anterior se muestran todas  las reglas de control de acceso vigentes  Puede usarla para borrar o cambiar varias reglas rápidamente.
-
-Consultar el  [[doku>acl|official documentation on ACL]] puede ayudarle a entender completamente como el control de acceso trabaja en DokuWiki.
diff --git a/wiki/lib/plugins/acl/lang/es/lang.php b/wiki/lib/plugins/acl/lang/es/lang.php
deleted file mode 100644
index 7518e38..0000000
--- a/wiki/lib/plugins/acl/lang/es/lang.php
+++ /dev/null
@@ -1,54 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Miguel Pagano <miguel.pagano@gmail.com>
- * @author Oscar M. Lage <r0sk10@gmail.com>
- * @author Gabriel Castillo <gch@pumas.ii.unam.mx>
- * @author oliver <oliver@samera.com.py>
- * @author Enrico Nicoletto <liverig@gmail.com>
- * @author Manuel Meco <manuel.meco@gmail.com>
- * @author VictorCastelan <victorcastelan@gmail.com>
- * @author Jordan Mero <hack.jord@gmail.com>
- * @author Felipe Martinez <metalmartinez@gmail.com>
- * @author Javier Aranda <internet@javierav.com>
- * @author Zerial <fernando@zerial.org>
- * @author Marvin Ortega <maty1206@maryanlinux.com>
- * @author Daniel Castro Alvarado <dancas2@gmail.com>
- * @author Fernando J. Gómez <fjgomez@gmail.com>
- * @author Mauro Javier Giamberardino <mgiamberardino@gmail.com>
- * @author emezeta <emezeta@infoprimo.com>
- * @author Oscar Ciudad <oscar@jacho.net>
- * @author Ruben Figols <ruben.figols@gmail.com>
- * @author Gerardo Zamudio <gerardo@gerardozamudio.net>
- * @author Mercè López <mercelz@gmail.com>
- */
-$lang['admin_acl']             = 'Administración de lista de control de acceso';
-$lang['acl_group']             = 'Grupo:';
-$lang['acl_user']              = 'Usuario:';
-$lang['acl_perms']             = 'Permiso para';
-$lang['page']                  = 'Página';
-$lang['namespace']             = 'Espacio de nombres';
-$lang['btn_select']            = 'Seleccionar';
-$lang['p_user_id']             = 'El usuario <b class="acluser">%s</b> tiene los siguientes permisos sobre la página <b class="aclpage">%s</b>: <i>%s</i>.';
-$lang['p_user_ns']             = 'El usuario <b class="acluser">%s</b> tiene los siguientes permisos sobre el espacio de nombres <b class="aclns">%s</b>: <i>%s</i>.';
-$lang['p_group_id']            = 'Los miembros del grupo <b class="aclgroup">%s</b> tienen actualmente los siguientes permisos sobre la página <b class="aclpage">%s</b>: <i>%s</i>.';
-$lang['p_group_ns']            = 'Los miembros del grupo <b class="aclgroup">%s</b> tienen actualmente los siguientes permisos sobre el espacio de nombres <b class="aclns">%s</b>: <i>%s</i>.';
-$lang['p_choose_id']           = 'Por favor <b>proporcione un usuario o grupo</b>en el formulario arriba mostrado para ver o editar los permisos asignados sobre la página<b class="aclpage">%s</b>.';
-$lang['p_choose_ns']           = 'Por favor <b>proporcione un usuario o grupo</b>en el formulario arriba mostrado para ver o editar los permisos asignados sobre el espacio de nombres <b class="aclns">%s</b>.';
-$lang['p_inherited']           = 'Nota: Esos permisos no fueron establecidos explícitamente sino que fueron heredados desde otros grupos o espacios de nombres superiores';
-$lang['p_isadmin']             = 'Nota: El grupo o usuario seleccionado simepre tiene permisos totales debido a que se encuentra configurado como superusuario.';
-$lang['p_include']             = 'Los permisos superiores incluyen a los inferiores. Los permisos Crear, Cargar y Eliminar sólo se aplican a los espacios de nombres, no a las páginas.';
-$lang['current']               = 'Reglas ACL vigentes';
-$lang['where']                 = 'Página/Espacio de nombres';
-$lang['who']                   = 'Usuario/Grupo';
-$lang['perm']                  = 'Permisos';
-$lang['acl_perm0']             = 'ninguno';
-$lang['acl_perm1']             = 'Leer';
-$lang['acl_perm2']             = 'Editar';
-$lang['acl_perm4']             = 'Crear';
-$lang['acl_perm8']             = 'Subir un fichero';
-$lang['acl_perm16']            = 'Borrar';
-$lang['acl_new']               = 'Agregar una nueva entrada';
-$lang['acl_mod']               = 'Modificar una entrada';
diff --git a/wiki/lib/plugins/acl/lang/et/help.txt b/wiki/lib/plugins/acl/lang/et/help.txt
deleted file mode 100644
index a2c8e9e..0000000
--- a/wiki/lib/plugins/acl/lang/et/help.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-=== Kiir-spikker: ===
-
-Käesoleval leheküljel saad oma wiki nimeruumidele ja lehekülgedele lisada ning eemaldada õigusi.
-  * Vasemas paanis on näidatud kõik saada olevad nimeruumid ja leheküljed.
-  * Ülal olev vorm laseb sul vaadelda ja muuta valitud rühma või kasutaja õigusi.
-  * Allolevas tabelis näidatakse kõiki hetkel sättestatud reegleid ligipääsudele.
-Saad seda kasutada reeglite hulgi muutmiseks või kustutamiseks
-
-Mõistmaks paremini DokuWiki ligipääsu halduse toimimist, võiks abiks olla [[doku>acl|ACL-i ametliku dokumentatsiooniga]] tutvumine.
\ No newline at end of file
diff --git a/wiki/lib/plugins/acl/lang/et/lang.php b/wiki/lib/plugins/acl/lang/et/lang.php
deleted file mode 100644
index d1a047a..0000000
--- a/wiki/lib/plugins/acl/lang/et/lang.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author Oliver S6ro <seem.iges@mail.ee>
- * @author Aari Juhanson <aari@vmg.vil.ee>
- * @author Kaiko Kaur <kaiko@kultuur.edu.ee>
- * @author kristian.kankainen@kuu.la
- * @author Rivo Zängov <eraser@eraser.ee>
- * @author Janar Leas <janar.leas@eesti.ee>
- */
-$lang['admin_acl']             = 'Ligipääsukontrolli nimekirja haldamine';
-$lang['acl_group']             = 'Rühm:';
-$lang['acl_user']              = 'Kasutaja:';
-$lang['acl_perms']             = 'Lubatud';
-$lang['page']                  = 'leht';
-$lang['namespace']             = 'Nimeruum';
-$lang['btn_select']            = 'Vali';
-$lang['p_user_ns']             = 'Kasutaja <b class="aclgroup">%s</b> omab nimeruumis <b class="aclns">%s</b>: <i>%s</i> järgmisi õigusi.';
-$lang['p_group_ns']            = 'Rühma <b class="aclgroup">%s</b> liikmed omavad nimeruumis <b class="aclns">%s</b>: <i>%s</i> järgmisi õigusi.';
-$lang['p_choose_id']           = 'Sisesta ülal-olevasse vormi <b>kasutaja või rühm</b> nägemaks leheküljele <b class="aclpage">%s</b> sätestatud volitusi.';
-$lang['p_choose_ns']           = 'Sisesta ülal-olevasse vormi <b>kasutaja või rühm</b> nägemaks nimeruumile <b class="aclpage">%s</b> sätestatud volitusi.';
-$lang['p_inherited']           = 'Teadmiseks: Neid õigusi pole eralti määratletud, vaid on päritud teistest rühmadest või ülemast nimeruumist.';
-$lang['p_isadmin']             = 'Teadmiseks: Valitud rühm või kasutaja omab alati kõiki õigusi, kuna nii on sätestanud ülemkasutaja.';
-$lang['p_include']             = 'Kõrgemad õigused hõlmavad alamaid. Õigus loomine, üleslaadida ja kustutada rakenduvad nimeruumidele, mitte lehekülgedele.';
-$lang['where']                 = 'Lehekülg/nimeruum';
-$lang['who']                   = 'Kasutaja/Grupp';
-$lang['perm']                  = 'Õigused';
-$lang['acl_perm0']             = 'Pole';
-$lang['acl_perm1']             = 'Lugemine';
-$lang['acl_perm2']             = 'Toimetamine';
-$lang['acl_perm4']             = 'Tekitamine';
-$lang['acl_perm8']             = 'Üles laadimine';
-$lang['acl_perm16']            = 'Kustuta';
-$lang['acl_new']               = 'Uue kirje lisamine';
-$lang['acl_mod']               = 'Muuda sissekannet';
diff --git a/wiki/lib/plugins/acl/lang/eu/help.txt b/wiki/lib/plugins/acl/lang/eu/help.txt
deleted file mode 100644
index 9e6070a..0000000
--- a/wiki/lib/plugins/acl/lang/eu/help.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-=== Laguntza Bizkorra: ===
-
-Orri honetan wiki-ko orri eta izen-espazioen baimenak gehitu eta kendu ahal ditzakezu.
-
-Ezkerreko panelak eskuragarri dauden orri eta izen-espazioak erakusten ditu.
-
-Goiko formularioak aukeratutako erabiltzaile edo taldearen baimenak ikusi eta aldatzea ahalbidetzen dizu.
-
-Beheko taulan une honetan ezarritako atzipen kontrol arauak daude. Hainbat arau bizkor ezabatu edo aldatzeko erabili dezakezu.
-
-[[doku>acl|Atzipen Kontrol Listen inguruko dokumentazio ofiziala]] irakurtzeak atzipen kontrolak DokuWiki-n nola funtzionatzen duen ulertzen lagundu zaitzaike.
diff --git a/wiki/lib/plugins/acl/lang/eu/lang.php b/wiki/lib/plugins/acl/lang/eu/lang.php
deleted file mode 100644
index 722ffd1..0000000
--- a/wiki/lib/plugins/acl/lang/eu/lang.php
+++ /dev/null
@@ -1,36 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Inko Illarramendi <inko.i.a@gmail.com>
- * @author Zigor Astarbe <astarbe@gmail.com>
- */
-$lang['admin_acl']             = 'Atzipen Kontrol Listaren Kudeaketa';
-$lang['acl_group']             = 'Taldea:';
-$lang['acl_user']              = 'Erabiltzailea:';
-$lang['acl_perms']             = 'Baimenak honetarako:';
-$lang['page']                  = 'Orria';
-$lang['namespace']             = 'Izen-espazioa';
-$lang['btn_select']            = 'Aukeratu';
-$lang['p_user_id']             = '<b class="acluser">%s</b> erabiltzaileak une honetan honako baimenak ditu <b class="aclpage">%s</b> orrian: <i>%s</i>.';
-$lang['p_user_ns']             = '<b class="acluser">%s</b> erabiltzaileak une honetan honako baimenak ditu <b class="aclns">%s</b> izen-espazioan: <i>%s</i>.';
-$lang['p_group_id']            = '<b class="aclgroup">%s</b> taldeko kideek une honetan honako baimenak dituzte <b class="aclpage">%s</b> orrian: <i>%s</i>.';
-$lang['p_group_ns']            = '<b class="aclgroup">%s</b> taldeko kideek une honetan honako baimenak dituzte <b class="aclns">%s</b> izen-espazioan: <i>%s</i>.';
-$lang['p_choose_id']           = 'Mesedez <b>sartu erabiltzaile edo taldea</b> goiko formularioan <b class="aclpage">%s</b> orrian ezarritako baimenak ikusi edo aldatzeko.';
-$lang['p_choose_ns']           = 'Mesedez <b>sartu erabiltzaile edo taldea</b> goiko formularioan <b class="aclns">%s</b> izen-espazioan ezarritako baimenak ikusi edo aldatzeko.';
-$lang['p_inherited']           = 'Oharra: Baimen horiek ez dira esplizituki jarriak, beste talde batzuetatik edo goragoko izen-espazioetatik heredatuak baizik.';
-$lang['p_isadmin']             = 'Oharra: Aukeratutako talde edo erabiltzaileak beti daika baimen osoa, supererabiltzaile gisa konfiguratuta  baitago.';
-$lang['p_include']             = 'Baimen handiagoek baimen txikiagoak barneratzen dituzte. Sortu, Igo eta Ezabatu baimenak izen-espazioei soilik aplikatzen zaizkie, ez orriei.';
-$lang['current']               = 'Uneko AKL Arauak';
-$lang['where']                 = 'Orria/Izen-espazioa';
-$lang['who']                   = 'Erabiltzailea/Taldea';
-$lang['perm']                  = 'Baimenak';
-$lang['acl_perm0']             = 'Inork';
-$lang['acl_perm1']             = 'Irakurri';
-$lang['acl_perm2']             = 'Editatu';
-$lang['acl_perm4']             = 'Sortu';
-$lang['acl_perm8']             = 'Igo';
-$lang['acl_perm16']            = 'Ezabatu';
-$lang['acl_new']               = 'Sarrera berri bat gehitu';
-$lang['acl_mod']               = 'Aldatu Sarrera';
diff --git a/wiki/lib/plugins/acl/lang/fa/help.txt b/wiki/lib/plugins/acl/lang/fa/help.txt
deleted file mode 100644
index 1ec797f..0000000
--- a/wiki/lib/plugins/acl/lang/fa/help.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-=== راهنما: ===
-
-در این ØµÙØ­Ù‡ شما می‌توانید دسترسی ØµÙØ­Ø§Øª Ùˆ ÙØ¶Ø§ÛŒâ€ŒÙ†Ø§Ù…‌ها را مدیریت کنید.
-
-در قسمت سمت راست، لیست تمام ØµÙØ­Ø§Øª Ùˆ ÙØ¶Ø§ÛŒâ€ŒÙ†Ø§Ù…‌ها را مشاهده می‌کنید.
-
-در ÙØ±Ù… بالا می‌توانید دسترسی‌های کاربران Ùˆ گروه‌های مختل٠را مشاهده Ùˆ ویرایش کنید.
-
-در جدول زیر، تمامی قوانین مدیریتی را مشاهده می‌کنید. شما می‌توانید آن‌ها را حذ٠یا تعدادی از آن‌ها رو تغییر دهید.
-
-ممکن است خواندن [[doku>acl|مطلب رسمی در مورد مدیریت دسترسی‌ها]] شما را در درک بهتر این قسمت DokuWiki یاری کند.
\ No newline at end of file
diff --git a/wiki/lib/plugins/acl/lang/fa/lang.php b/wiki/lib/plugins/acl/lang/fa/lang.php
deleted file mode 100644
index 2938e1b..0000000
--- a/wiki/lib/plugins/acl/lang/fa/lang.php
+++ /dev/null
@@ -1,41 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author behrad eslamifar <behrad_es@yahoo.com)
- * @author Mohsen Firoozmandan <info@mambolearn.com>
- * @author omidmr@gmail.com
- * @author Omid Mottaghi <omidmr@gmail.com>
- * @author Mohammad Reza Shoaei <shoaei@gmail.com>
- * @author Milad DZand <M.DastanZand@gmail.com>
- * @author AmirH Hassaneini <mytechmix@gmail.com>
- */
-$lang['admin_acl']             = 'مدیریت کنترل دسترسی‌ها';
-$lang['acl_group']             = 'گروه:';
-$lang['acl_user']              = 'کاربر:';
-$lang['acl_perms']             = 'مجوز برای';
-$lang['page']                  = 'ØµÙØ­Ù‡';
-$lang['namespace']             = 'ÙØ¶Ø§ÛŒâ€ŒÙ†Ø§Ù…';
-$lang['btn_select']            = 'انتخاب';
-$lang['p_user_id']             = 'کاربر <b class="acluser">%s</b> دسترسی‌های زیر را برای ØµÙØ­Ù‡â€ŒÛŒ <b class="aclpage">%s</b> دارد: <i>%s</i>.';
-$lang['p_user_ns']             = 'کاربر <b class="acluser">%s</b> دسترسی‌های زیر را برای ÙØ¶Ø§ÛŒâ€ŒÙ†Ø§Ù… <b class="aclpage">%s</b> دارد: <i>%s</i>.';
-$lang['p_group_id']            = 'اعضای گروه <b class="aclgroup">%s</b> دسترسی‌های زیر را برای ØµÙØ­Ù‡â€ŒÛŒ <b class="aclpage">%s</b> دارند: <i>%s</i>.';
-$lang['p_group_ns']            = 'اعضای گروه <b class="aclgroup">%s</b> دسترسی‌های زیر را برای ÙØ¶Ø§ÛŒâ€ŒÙ†Ø§Ù… <b class="aclpage">%s</b> دارند: <i>%s</i>.';
-$lang['p_choose_id']           = 'خواهشمندیم <b>نام یک کاربر یا گروه</b> را در ÙØ±Ù… بالا وارد کنید تا دسترسی‌های آن را برای ØµÙØ­Ù‡â€ŒÛŒ <b class="aclpage">%s</b> ببینید Ùˆ ویرایش کنید.';
-$lang['p_choose_ns']           = 'خواهشمندیم <b>نام یک کاربر یا گروه</b> را در ÙØ±Ù… بالا وارد کنید تا دسترسی‌های آن را برای ÙØ¶Ø§ÛŒâ€ŒÙ†Ø§Ù… <b class="aclpage">%s</b> ببینید Ùˆ ویرایش کنید.';
-$lang['p_inherited']           = 'توجه: دسترسی‌ها مستقیمن مقداردهی نشده است، بلکه از گروه‌های بالا یا ÙØ¶Ø§ÛŒâ€ŒÙ†Ø§Ù… Ú¯Ø±ÙØªÙ‡ شده است.';
-$lang['p_isadmin']             = 'توجه: کاربر یا گروه انتخاب شده همیشه با تمام دسترسی می‌باشد، زیرا به عنوان «superuser» انتخاب شده است.';
-$lang['p_include']             = 'دسترسی‌های بالا، دسترسی‌های پایین را شامل می‌شود. ایجاد، ارسال Ùˆ حذ٠Ùقط به ÙØ¶Ø§ÛŒâ€ŒÙ†Ø§Ù… الحاق می‌شود.';
-$lang['current']               = 'قوانین دسترسی ÙØ¹Ù„ÛŒ';
-$lang['where']                 = 'ØµÙØ­Ù‡/ÙØ¶Ø§ÛŒâ€ŒÙ†Ø§Ù…';
-$lang['who']                   = 'کاربر/گروه';
-$lang['perm']                  = 'دسترسی‌ها';
-$lang['acl_perm0']             = 'هیچ‌کدام';
-$lang['acl_perm1']             = 'خواندن';
-$lang['acl_perm2']             = 'ویزایش';
-$lang['acl_perm4']             = 'ایجاد';
-$lang['acl_perm8']             = 'ارسال';
-$lang['acl_perm16']            = 'حذÙ';
-$lang['acl_new']               = 'اضاÙÙ‡ کردن ورودی جدید';
-$lang['acl_mod']               = 'ویرایش ورودی';
diff --git a/wiki/lib/plugins/acl/lang/fi/help.txt b/wiki/lib/plugins/acl/lang/fi/help.txt
deleted file mode 100644
index d821f2d..0000000
--- a/wiki/lib/plugins/acl/lang/fi/help.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-=== Pika-apu: ===
-
-Tällä sivulla voit lisätä tai poistaa oikeuksia wikisi nimiavaruuksiin tai sivuihin.
-
-Vasen osa näyttää kaikki tarjolla olevat nimiavaruudet ja sivut.
-
-Yllä olevan kaavakkeen avulla voit katsoa ja muokata oikeuksia valitulle käyttäjälle ja ryhmälle.
-
-Alla olevassa taulukossa on näkyvissä päällä olevat pääsyoikeudet. Voit käyttää sitä muokataksesi tai poistaaksesi useita oikeuksia.
-
-[[doku>acl|Virallisen käyttöoikeus (ACL) dokumentaation]]  lukeminen voi helpottaa sinua täysin ymmärtämään mitän käyttöoikeudet toimivat DokuWikissä.
diff --git a/wiki/lib/plugins/acl/lang/fi/lang.php b/wiki/lib/plugins/acl/lang/fi/lang.php
deleted file mode 100644
index 2dfc358..0000000
--- a/wiki/lib/plugins/acl/lang/fi/lang.php
+++ /dev/null
@@ -1,38 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author otto@valjakko.net
- * @author Otto Vainio <otto@valjakko.net>
- * @author Teemu Mattila <ghcsystems@gmail.com>
- * @author Sami Olmari <sami@olmari.fi>
- */
-$lang['admin_acl']             = 'Käyttöoikeudet (ACL)';
-$lang['acl_group']             = 'Ryhmä:';
-$lang['acl_user']              = 'Käyttäjä:';
-$lang['acl_perms']             = 'Oikeudet';
-$lang['page']                  = 'Sivu';
-$lang['namespace']             = 'Nimiavaruus';
-$lang['btn_select']            = 'Valitse';
-$lang['p_user_id']             = 'Käyttäjällä <b class="acluser">%s</b> on tällä hetkellä seuraavat oikeudet sivulla <b class="aclpage">%s</b>: <i>%s</i>.';
-$lang['p_user_ns']             = 'Käyttäjällä <b class="acluser">%s</b> on tällä hetkellä seuraavat oikeudet nimiavaruudessa <b class="aclpage">%s</b>: <i>%s</i>.';
-$lang['p_group_id']            = 'Ryhmän <b class="aclgroup">%s</b> jäsenillä on tällä hetkellä seuraavat oikeudet sivulla <b class="aclpage">%s</b>: <i>%s</i>.';
-$lang['p_group_ns']            = 'Ryhmän <b class="aclgroup">%s</b> jäsenillä on tällä hetkellä seuraavat oikeudet nimiavaruudessa <b class="aclpage">%s</b>: <i>%s</i>.';
-$lang['p_choose_id']           = 'Ole hyvä ja <b>syötä ryhmän nimi</b> yllä olevaan kaavakkeeseen katsoaksesi tai muokataksesi oikeuksia sivulle <b class="aclpage">%s</b>.';
-$lang['p_choose_ns']           = 'Ole hyvä ja <b>syötä ryhmän nimi</b> yllä olevaan kaavakkeeseen katsoaksesi tai muokataksesi oikeuksia nimiavaruuteen <b class="aclpage">%s</b>.';
-$lang['p_inherited']           = 'Huomaa: Oikeuksia ei ole erikseen asetettu, vaan ne on peritty toiselta ryhmältä tai ylemmältä nimiavaruudelta.';
-$lang['p_isadmin']             = 'Huomaa: Valitulla ryhmällä tai käyttäjällä on aina täydet oikeudet, koska se on määritelty pääkäyttäjäksi (Superuser)';
-$lang['p_include']             = 'Korkeammat oikeudet sisältävät matalammat. Luonti-, Lähetys- ja Poisto-oikeudet vaikuttavat vain nimiavaruuksiin, ei sivuihin.';
-$lang['current']               = 'Tämänhetkiset käyttöoikeudet (ACL)';
-$lang['where']                 = 'Sivu/Nimiavaruus';
-$lang['who']                   = 'Käyttäjä/Ryhmä';
-$lang['perm']                  = 'Oikeudet';
-$lang['acl_perm0']             = 'Ei mitään';
-$lang['acl_perm1']             = 'Luku';
-$lang['acl_perm2']             = 'Muokkaus';
-$lang['acl_perm4']             = 'Luonti';
-$lang['acl_perm8']             = 'Lähetys';
-$lang['acl_perm16']            = 'Poisto';
-$lang['acl_new']               = 'Lisää uusi';
-$lang['acl_mod']               = 'Muokkaa';
diff --git a/wiki/lib/plugins/acl/lang/fr/help.txt b/wiki/lib/plugins/acl/lang/fr/help.txt
deleted file mode 100644
index 9fc2af6..0000000
--- a/wiki/lib/plugins/acl/lang/fr/help.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-=== Aide rapide ===
-
-Cette page vous permet d'ajouter ou de supprimer des autorisations pour les catégories et les pages de votre wiki.
-
-Le panneau de gauche liste toutes les catégories et les pages disponibles.
-
-Le formulaire ci-dessus permet d'afficher et de modifier les autorisations d'un utilisateur ou d'un groupe sélectionné.
-
-Le tableau ci-dessous présente toutes les listes de contrôle d'accès (ACL) actuelles. Vous pouvez l'utiliser pour supprimer ou modifier rapidement plusieurs contrôles d'accès.
-
-La lecture de [[doku>fr:acl|la documentation officielle des contrôles d'accès]] pourra vous permettre de mieux comprendre le fonctionnement du contrôle d'accès dans DokuWiki.
diff --git a/wiki/lib/plugins/acl/lang/fr/lang.php b/wiki/lib/plugins/acl/lang/fr/lang.php
deleted file mode 100644
index 10ff5cf..0000000
--- a/wiki/lib/plugins/acl/lang/fr/lang.php
+++ /dev/null
@@ -1,54 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Sébastien Bauer <sebastien.bauer@advalvas.be>
- * @author Antoine Fixary <antoine.fixary@freesbee.fr>
- * @author cumulus <pta-n56@myamail.com>
- * @author Gwenn Gueguen <contact@demisel.net>
- * @author Guy Brand <gb@unistra.fr>
- * @author Fabien Chabreuil <fabien@integralpersonality.com>
- * @author Stéphane Chamberland <stephane.chamberland@ec.gc.ca>
- * @author Maurice A. LeBlanc <leblancma@cooptel.qc.ca>
- * @author stephane.gully <stephane.gully@gmail.com>
- * @author Guillaume Turri <guillaume.turri@gmail.com>
- * @author Erik Pedersen <erik.pedersen@shaw.ca>
- * @author olivier duperray <duperray.olivier@laposte.net>
- * @author Vincent Feltz <psycho@feltzv.fr>
- * @author Philippe Bajoit <philippe.bajoit@gmail.com>
- * @author Florian Gaub <floriang@floriang.net>
- * @author Johan Guilbaud <guilbaud.johan@gmail.com>
- * @author Yannick Aure <yannick.aure@gmail.com>
- * @author Olivier DUVAL <zorky00@gmail.com>
- * @author Anael Mobilia <contrib@anael.eu>
- * @author Bruno Veilleux <bruno.vey@gmail.com>
- */
-$lang['admin_acl']             = 'Gestion de la liste des contrôles d\'accès (ACL)';
-$lang['acl_group']             = 'Groupe:';
-$lang['acl_user']              = 'Utilisateur:';
-$lang['acl_perms']             = 'Autorisations pour';
-$lang['page']                  = 'Page';
-$lang['namespace']             = 'Catégorie';
-$lang['btn_select']            = 'Sélectionner';
-$lang['p_user_id']             = 'Autorisations actuelles de l\'utilisateur <strong class="acluser">%s</strong> sur la page <strong class="aclpage">%s</strong> : <em>%s</em>.';
-$lang['p_user_ns']             = 'Autorisations actuelles de l\'utilisateur <strong class="acluser">%s</strong> sur la catégorie <strong class="aclns">%s</strong> : <em>%s</em>.';
-$lang['p_group_id']            = 'Autorisations actuelles des membres du groupe <strong class="aclgroup">%s</strong> sur la page <strong class="aclpage">%s</strong> : <em>%s</em>.';
-$lang['p_group_ns']            = 'Autorisations actuelles des membres du groupe <strong class="aclgroup">%s</strong> sur la catégorie <strong class="aclns">%s</strong> : <em>%s</em>.';
-$lang['p_choose_id']           = 'Saisissez un <strong>nom d\'utilisateur ou de groupe</strong> dans le formulaire ci-dessous pour afficher ou éditer les autorisations relatives à la page <strong class="aclpage">%s</strong>.';
-$lang['p_choose_ns']           = 'Saisissez un <strong>nom d\'utilisateur ou de groupe</strong> dans le formulaire ci-dessous pour afficher ou éditer les autorisations relatives à la catégorie <strong class="aclns">%s</strong>.';
-$lang['p_inherited']           = 'Note : ces autorisations n\'ont pas été explicitement définies mais sont héritées de groupes ou catégories supérieurs.';
-$lang['p_isadmin']             = 'Note : le groupe ou l\'utilisateur sélectionné dispose toujours de toutes les autorisations car il est paramétré en tant que super-utilisateur.';
-$lang['p_include']             = 'Les autorisations les plus élevées incluent les plus faibles. Création, Envoyer et Effacer ne s\'appliquent qu\'aux catégories, pas aux pages.';
-$lang['current']               = 'Contrôles d\'accès actuels';
-$lang['where']                 = 'Page/Catégorie';
-$lang['who']                   = 'Utilisateur/Groupe';
-$lang['perm']                  = 'Autorisations';
-$lang['acl_perm0']             = 'Aucune';
-$lang['acl_perm1']             = 'Lecture';
-$lang['acl_perm2']             = 'Écriture';
-$lang['acl_perm4']             = 'Création';
-$lang['acl_perm8']             = 'Envoyer';
-$lang['acl_perm16']            = 'Effacer';
-$lang['acl_new']               = 'Ajouter une nouvelle entrée';
-$lang['acl_mod']               = 'Modifier l\'entrée';
diff --git a/wiki/lib/plugins/acl/lang/gl/help.txt b/wiki/lib/plugins/acl/lang/gl/help.txt
deleted file mode 100644
index 593dcef..0000000
--- a/wiki/lib/plugins/acl/lang/gl/help.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-=== Axuda Rápida: ===
-
-Nesta páxina podes engadir e eliminar permisos para os nomes de espazo e as páxinas do teu wiki.
-
-O panel da esquerda amosa todos os nomes de espazo e páxinas dispoñíbeis.
-
-O formulario de enriba permíteche ver e modificares os permisos do usuario ou grupo seleccionado.
-
-Na táboa de embaixo amósanse todas as regras de control de accesos estabelecidas. Podes empregala para mudares ou eliminares varias regras dun xeito rápido.
-
-A lectura da [[doku>acl|documentación oficial da ACL]] pode servirche de axuda para comprenderes como funciona o control de accesos no Dokuwiki.
diff --git a/wiki/lib/plugins/acl/lang/gl/lang.php b/wiki/lib/plugins/acl/lang/gl/lang.php
deleted file mode 100644
index 74d2a79..0000000
--- a/wiki/lib/plugins/acl/lang/gl/lang.php
+++ /dev/null
@@ -1,36 +0,0 @@
-<?php
-/**
- * Galicianlanguage file
- *
- * @author Medúlio <medulio@ciberirmandade.org>
- * @author Oscar M. Lage <r0sk10@gmail.com>
- * @author Rodrigo Rega <rodrigorega@gmail.com>
- */
-$lang['admin_acl']             = 'Xestión da Lista de Control de Acceso (ACL)';
-$lang['acl_group']             = 'Grupo:';
-$lang['acl_user']              = 'Usuario:';
-$lang['acl_perms']             = 'Permisos para';
-$lang['page']                  = 'Páxina';
-$lang['namespace']             = 'Nome de espazo';
-$lang['btn_select']            = 'Escolle';
-$lang['p_user_id']             = 'O usuario <b class="acluser">%s</b> dispón actualmente dos seguintes permisos na páxina <b class="aclpage">%s</b>: <i>%s</i>.';
-$lang['p_user_ns']             = 'O usuario <b class="acluser">%s</b> dispón actualmente dos seguintes permisos no nome de espazo <b class="aclns">%s</b>: <i>%s</i>.';
-$lang['p_group_id']            = 'Os membros do grupo <b class="aclgroup">%s</b> dispoñen actualmente dos seguintes permisos na páxina <b class="aclpage">%s</b>: <i>%s</i>.';
-$lang['p_group_ns']            = 'Os membros do grupo <b class="aclgroup">%s</b> cdispoñen actualmente dos seguintes permisos no nome de espazo <b class="aclns">%s</b>: <i>%s</i>.';
-$lang['p_choose_id']           = 'Por favor, <b>insire un usuario ou grupo</b> no formulario de enriba para ver ou editar os permisos establecidos para a páxina <b class="aclpage">%s</b>.';
-$lang['p_choose_ns']           = 'Por favor <b>insire un usuario ou grupo</b> no formulario de enriba para ver ou editar os permisos establecidos no nome de espazo <b class="aclns">%s</b>.';
-$lang['p_inherited']           = 'Nota: Estes permisos non foron establecidos explicitamente senón que foron herdadas de outros grupos ou nomes de espazo meirandes.';
-$lang['p_isadmin']             = 'Nota: O grupo ou usuario seleccionado terá sempre permisos completos por estar configurado como super-usuario.';
-$lang['p_include']             = 'Os permisos meirandes inclúen os menores. Os permisos de Creación, Subida e Eliminado só se aplican aos nomes de espazo, non ás páxinas.';
-$lang['current']               = 'Regras ACL Actuais';
-$lang['where']                 = 'Páxina/Nome de Espazo';
-$lang['who']                   = 'Usuario/Grupo';
-$lang['perm']                  = 'Permisos';
-$lang['acl_perm0']             = 'Ningún';
-$lang['acl_perm1']             = 'Ler';
-$lang['acl_perm2']             = 'Editar';
-$lang['acl_perm4']             = 'Crear';
-$lang['acl_perm8']             = 'Subir arquivos';
-$lang['acl_perm16']            = 'Eliminar';
-$lang['acl_new']               = 'Engadir nova Entrada';
-$lang['acl_mod']               = 'Modificar Entrada';
diff --git a/wiki/lib/plugins/acl/lang/he/help.txt b/wiki/lib/plugins/acl/lang/he/help.txt
deleted file mode 100644
index 33f2933..0000000
--- a/wiki/lib/plugins/acl/lang/he/help.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-=== עזרה חפוזה: ===
-
-בדף ×–×” ניתן להוסיף ולהסיר הרש×ות למרחבי שמות ×•×œ×“×¤×™× ×‘×•×™×§×™ שלך.
-
-הצד השמ×לי מציג ×ת כל מרבי השמות ×•×”×“×¤×™× ×”×–×ž×™× ×™×.
-
-הטופס מעלה מ×פשר לך לר×ות ולשנות ×ת ההרש×ות של משתמש ×ו קבוצה נבחרי×.
-
-בטבלה מטה ×ž×•×¦×’×™× ×›×œ כללי בקרת הגישה הנוכחיי×. ניתן להשתמש בה כדי למחוק ×ו לשנות מספר ×›×œ×œ×™× ×‘×ž×”×™×¨×•×ª.
-
-קרי×ת [[doku>acl|התיעוד הרשמי ל-ACL ACL]] יכולה לעזור לך להבין ב×ופן ×ž×œ× ×›×™×¦×“ בקרת הגישה עובדת בדוקוויקי.
diff --git a/wiki/lib/plugins/acl/lang/he/lang.php b/wiki/lib/plugins/acl/lang/he/lang.php
deleted file mode 100644
index 33ce761..0000000
--- a/wiki/lib/plugins/acl/lang/he/lang.php
+++ /dev/null
@@ -1,36 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author DoK <kamberd@yahoo.com>
- * @author Moshe Kaplan <mokplan@gmail.com>
- * @author Yaron Yogev <yaronyogev@gmail.com>
- * @author Yaron Shahrabani <sh.yaron@gmail.com>
- */
-$lang['admin_acl']             = 'ניהול רשימת בקרת גישות';
-$lang['acl_group']             = 'קבוצה:';
-$lang['acl_user']              = 'משתמש:';
-$lang['acl_perms']             = 'הרש×ות עבור';
-$lang['page']                  = 'דף';
-$lang['namespace']             = 'מרחב שמות';
-$lang['p_user_id']             = 'למשתמש <b class="acluser">%s</b> יש כרגע ×ת ההרש×ות הב×ות בדף <b class="aclpage">%s</b>: <i>%s</i>.';
-$lang['p_user_ns']             = 'למשתמש <b class="acluser">%s</b> יש כרגע ×ת ההרש×ות הב×ות במרחב ×”×©× <b class="aclns">%s</b>: <i>%s</i>.';
-$lang['p_group_id']            = 'לחברי קבוצת <b class="aclgroup">%s</b> יש כרגע ×ת ההרש×ות הב×ות בדף <b class="aclpage">%s</b>: <i>%s</i>.';
-$lang['p_group_ns']            = 'לחברי קבוצת <b class="aclgroup">%s</b> יש כרגע ×ת ההרש×ות הב×ות במרחב ×”×©× <b class="aclns">%s</b>: <i>%s</i>.';
-$lang['p_choose_id']           = '× × <b>להזין משתמש ×ו קבוצה</b> בטופס מעלה כדי לצפות ×ו לערוך ×ת ההרש×ות המוגדרות עבור הדף <b class="aclpage">%s</b>.';
-$lang['p_choose_ns']           = '× × <b>להזין משתמש ×ו קבוצה</b> בטופס מעלה כדי לצפות ×ו לערוך ×ת ההרש×ות המוגדרות עבור מרחב ×”×©× <b class="aclns">%s</b>.';
-$lang['p_inherited']           = 'לתשומת לבך: הרש×ות ×לו ×œ× ×”×•×’×“×¨×• ב×ופן מפורש ××œ× × ×•×¨×©×• מקבוצות ×חרות ×ו ממרחב שמות גבוה יותר.';
-$lang['p_isadmin']             = 'לתשומת לבך: לקבוצה ×ו המשתמש שנבחרו יש תמיד הרש×ות מל×ות בגלל ×”×’×“×¨×ª× ×›×ž×©×ª×ž×©-על.';
-$lang['current']               = 'חוקי ×”-ACL הנוכחיי×';
-$lang['where']                 = 'דף/מרחב ש×';
-$lang['who']                   = 'משתמש/קבוצה';
-$lang['perm']                  = 'הרש×ות';
-$lang['acl_perm0']             = 'לל×';
-$lang['acl_perm1']             = 'קרי××”';
-$lang['acl_perm2']             = 'עריכה';
-$lang['acl_perm4']             = 'יצירה';
-$lang['acl_perm8']             = 'העל××”';
-$lang['acl_perm16']            = 'מחיקה';
-$lang['acl_new']               = 'הוספת רשומה חדשה';
-$lang['acl_mod']               = 'שינויי מוב××”';
diff --git a/wiki/lib/plugins/acl/lang/hr/help.txt b/wiki/lib/plugins/acl/lang/hr/help.txt
deleted file mode 100644
index 4e7cfc3..0000000
--- a/wiki/lib/plugins/acl/lang/hr/help.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-=== Brza Pomoć: ===
-
-Na ovoj stranici možeš dodavati i brisati dozvole za imenske prostore i stranice u svom wiki-u.
-
-Lijevi prozor prikazuje sve dostupne imenske prostore i stranice.
-
-Forma iznad ti omogućuje pregled i mijenjanje dozvola odabranom korisniku ili grupi.
-
-U tablici ispod prikazana su sva trenutno postavljena pravila kontrole pristupa. Koristite je za višestruko brisanje ili mijenjanje pravila.
-
-Čitanje [[doku>acl|službena dokumentacija o ACL]] može vam pomoći potpuno razumijeti kako kontrola pristupa radi u DokuWiki.
\ No newline at end of file
diff --git a/wiki/lib/plugins/acl/lang/hr/lang.php b/wiki/lib/plugins/acl/lang/hr/lang.php
deleted file mode 100644
index d188176..0000000
--- a/wiki/lib/plugins/acl/lang/hr/lang.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Branko Rihtman <theney@gmail.com>
- * @author Dražen Odobašić <dodobasic@gmail.com>
- * @author Dejan Igrec <dejan.igrec@gmail.com>
- */
-$lang['admin_acl']             = 'Upravljanje listom kontrole pristupa';
-$lang['acl_group']             = 'Grupa:';
-$lang['acl_user']              = 'Korisnik:';
-$lang['acl_perms']             = 'Dozvole za';
-$lang['page']                  = 'Stranica';
-$lang['namespace']             = 'Imenski prostor';
-$lang['btn_select']            = 'Odaberi';
-$lang['p_user_id']             = 'Korisnik <b class="acluser">%s</b> trenutno ima sljedeće dozvole na stranici <b class="aclpage">%s</b>: <i>%s</i>.';
-$lang['p_user_ns']             = 'Korisnik <b class="acluser">%s</b> trenutno ima sljedeće dozvole u imenskom prostoru <b class="aclns">%s</b>: <i>%s</i>.';
-$lang['p_group_id']            = 'Članovi grupe <b class="aclgroup">%s</b> trenutno imaju sljedeće dozvole na stranici <b class="aclpage">%s</b>: <i>%s</i>.';
-$lang['p_group_ns']            = 'Članovi grupe <b class="aclgroup">%s</b> trenutno imaju sljedeće dozvole u imenskom prostoru <b class="aclns">%s</b>: <i>%s</i>.';
-$lang['p_choose_id']           = 'Molim <b>unesti korisnika ili grupu</b> u gornju formu za pregled ili uređivanje dozvola postavljenih za stranicu <b class="aclpage">%s</b>.';
-$lang['p_choose_ns']           = 'Molim <b>unesti korisnika ili grupu</b> u gornju formu za pregled ili uređivanje dozvola postavljenih za imenski prostor <b class="aclns">%s</b>.';
-$lang['p_inherited']           = 'Napomena: Ove dozvole nisu postavljene eksplicitno već su naslijeđene od drugih grupa ili nadređenih imenskih prostora.';
-$lang['p_isadmin']             = 'Napomena: Odabrana grupa ili korisnik uvijek ima sve dozvole jer je postavljen kao superuser.';
-$lang['p_include']             = 'ViÅ¡e dozvole ukljuÄuju sve niže. Dozvole Kreiraj, UÄitaj i BriÅ¡i se primjenjuju samo na imenske prostore, ne stranice.';
-$lang['current']               = 'Trenutna ACL Pravila';
-$lang['where']                 = 'Stranica/Imenski prostor';
-$lang['who']                   = 'Korisnik/Grupa';
-$lang['perm']                  = 'Dozvole';
-$lang['acl_perm0']             = 'Ništa';
-$lang['acl_perm1']             = 'ÄŒitaj';
-$lang['acl_perm2']             = 'Uredi';
-$lang['acl_perm4']             = 'Kreiraj';
-$lang['acl_perm8']             = 'UÄitaj';
-$lang['acl_perm16']            = 'Briši';
-$lang['acl_new']               = 'Dodaj novi Zapis';
-$lang['acl_mod']               = 'Promijeni Zapis';
diff --git a/wiki/lib/plugins/acl/lang/hu/help.txt b/wiki/lib/plugins/acl/lang/hu/help.txt
deleted file mode 100644
index 57f16a3..0000000
--- a/wiki/lib/plugins/acl/lang/hu/help.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-=== Hozzáférési lista (ACL) kezelő ===
-
-Ezen az oldalon jogokat oszthat és vehet el a wiki oldalakhoz és névterekhez.
-
-A bal oldalon látható az összes névtér és oldal.
-
-A felső form segít a kiválasztott felhasználó vagy csoport jogosultságainak megtekintésében vagy változtatásában.
-
-Az alsó táblázat mutatja az összes jelenleg érvényes hozzáférési szabályt. Ennek segítségével gyorsan törölhetők vagy megváltoztathatók a szabályok.
-
-A [[doku>acl|hivatalos ACL dokumentáció]] segíthet a DokuWiki hozzáférés-kezelés működésének megértésében.
-
diff --git a/wiki/lib/plugins/acl/lang/hu/lang.php b/wiki/lib/plugins/acl/lang/hu/lang.php
deleted file mode 100644
index cc35243..0000000
--- a/wiki/lib/plugins/acl/lang/hu/lang.php
+++ /dev/null
@@ -1,41 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author Sandor TIHANYI <stihanyi+dw@gmail.com>
- * @author Siaynoq Mage <siaynoqmage@gmail.com>
- * @author schilling.janos@gmail.com
- * @author Szabó Dávid <szabo.david@gyumolcstarhely.hu>
- * @author Sándor TIHANYI <stihanyi+dw@gmail.com>
- * @author David Szabo <szabo.david@gyumolcstarhely.hu>
- * @author Marton Sebok <sebokmarton@gmail.com>
- */
-$lang['admin_acl']             = 'Hozzáférési lista (ACL) kezelő';
-$lang['acl_group']             = 'Csoport:';
-$lang['acl_user']              = 'Felhasználó:';
-$lang['acl_perms']             = 'Jogosultság ehhez:';
-$lang['page']                  = 'Oldal';
-$lang['namespace']             = 'Névtér';
-$lang['btn_select']            = 'Kiválaszt';
-$lang['p_user_id']             = 'A(z) <b class="acluser">%s</b> felhasználónak jelenleg a következő jogosultsága van ezen az oldalon:  <b class="aclpage">%s</b>: <i>%s</i>.';
-$lang['p_user_ns']             = 'A(z) <b class="acluser">%s</b> felhasználónak jelenleg a következő jogosultsága van ebben a névtérben: <b class="aclns">%s</b>: <i>%s</i>.';
-$lang['p_group_id']            = 'A(z) <b class="aclgroup">%s</b> csoport tagjainak jelenleg a következő jogosultsága van ezen az oldalon:  <b class="aclpage">%s</b>: <i>%s</i>.';
-$lang['p_group_ns']            = 'A(z) <b class="aclgroup">%s</b> csoport tagjainak jelenleg a következő jogosultsága van ebben a névtérben: <b class="aclns">%s</b>: <i>%s</i>.';
-$lang['p_choose_id']           = 'A felső űrlapon <b>adjon meg egy felhasználót vagy csoportot</b>, akinek a(z) <b class="aclpage">%s</b> oldalhoz beállított jogosultságait megtekinteni vagy változtatni szeretné.';
-$lang['p_choose_ns']           = 'A felső űrlapon <b>adj meg egy felhasználót vagy csoportot</b>, akinek a(z) <b class="aclns">%s</b> névtérhez beállított jogosultságait megtekinteni vagy változtatni szeretnéd.';
-$lang['p_inherited']           = 'Megjegyzés: ezek a jogok nem itt lettek explicit beállítva, hanem öröklődtek egyéb csoportokból vagy felsőbb névterekből.';
-$lang['p_isadmin']             = 'Megjegyzés: a kiválasztott csoportnak vagy felhasználónak mindig teljes jogosultsága lesz, mert Adminisztrátornak van beállítva.';
-$lang['p_include']             = 'A magasabb szintű jogok tartalmazzák az alacsonyabbakat. A Létrehozás, Feltöltés és Törlés jogosultságok csak névterekre alkalmazhatók, az egyes oldalakra nem.';
-$lang['current']               = 'Jelenlegi hozzáférési szabályok';
-$lang['where']                 = 'Oldal/Névtér';
-$lang['who']                   = 'Felhasználó/Csoport';
-$lang['perm']                  = 'Jogosultságok';
-$lang['acl_perm0']             = 'Semmi';
-$lang['acl_perm1']             = 'Olvasás';
-$lang['acl_perm2']             = 'Szerkesztés';
-$lang['acl_perm4']             = 'Létrehozás';
-$lang['acl_perm8']             = 'Feltöltés';
-$lang['acl_perm16']            = 'Törlés';
-$lang['acl_new']               = 'Új bejegyzés hozzáadása';
-$lang['acl_mod']               = 'Bejegyzés módosítása';
diff --git a/wiki/lib/plugins/acl/lang/ia/help.txt b/wiki/lib/plugins/acl/lang/ia/help.txt
deleted file mode 100644
index 59f5764..0000000
--- a/wiki/lib/plugins/acl/lang/ia/help.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-=== Adjuta rapide: ===
-
-In iste pagina tu pote adder e remover permissiones pro spatios de nomines e paginas in tu wiki.
-
-Le columna sinistre presenta tote le spatios de nomines e paginas disponibile.
-
-Le formulario hic supra permitte vider e modificar le permissiones de un usator o gruppo seligite.
-
-In le tabella hic infra se monstra tote le regulas de controlo de accesso actualmente configurate. Tu pote usar lo pro rapidemente deler o modificar plure regulas.
-
-Es recommendate leger le [[doku>acl|documentation official super ACL]] pro comprender completemente como le controlo de accesso functiona in DokuWiki.
diff --git a/wiki/lib/plugins/acl/lang/ia/lang.php b/wiki/lib/plugins/acl/lang/ia/lang.php
deleted file mode 100644
index 121424c..0000000
--- a/wiki/lib/plugins/acl/lang/ia/lang.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-/**
- * Interlingua language file
- *
- * @author robocap <robocap1@gmail.com>
- * @author Martijn Dekker <martijn@inlv.org>
- */
-$lang['admin_acl']             = 'Gestion de listas de controlo de accesso';
-$lang['acl_group']             = 'Gruppo:';
-$lang['acl_user']              = 'Usator:';
-$lang['acl_perms']             = 'Permissiones pro';
-$lang['page']                  = 'Pagina';
-$lang['namespace']             = 'Spatio de nomines';
-$lang['btn_select']            = 'Seliger';
-$lang['p_user_id']             = 'Le usator <b class="acluser">%s</b> ha actualmente le sequente permissiones in le pagina <b class="aclpage">%s</b>: <i>%s</i>.';
-$lang['p_user_ns']             = 'Le usator <b class="acluser">%s</b> ha actualmente le sequente permissiones in le spatio de nomines <b class="aclns">%s</b>: <i>%s</i>.';
-$lang['p_group_id']            = 'Le membros del gruppo <b class="aclgroup">%s</b> a actualmente le sequente permissiones in le pagina <b class="aclpage">%s</b>: <i>%s</i>.';
-$lang['p_group_ns']            = 'Le membros del gruppo <b class="aclgroup">%s</b> ha actualmente le sequente permissiones in le spatio de nomines <b class="aclns">%s</b>: <i>%s</i>.';
-$lang['p_choose_id']           = 'Per favor <b>entra un usator o gruppo</b> in le formulario hic supra pro vider o modificar le permissiones configurate pro le pagina <b class="aclpage">%s</b>.';
-$lang['p_choose_ns']           = 'Per favor <b>entra un usator o gruppo</b> in le formulario hic supra pro vider o modificar le permissiones configurate pro le spatio de nomines <b class="aclns">%s</b>.';
-$lang['p_inherited']           = 'Nota ben: Iste permissiones non ha essite configurate explicitemente ma ha essite hereditate de altere gruppos o de spatios de nomines superior.';
-$lang['p_isadmin']             = 'Nota ben: Le gruppo o usator seligite ha sempre permissiones integral proque es configurate como superusator.';
-$lang['p_include']             = 'Le permissiones superior include les inferior. Le permissiones de Crear, Incargar e Deler es solmente applicabile a spatios de nomines, non a paginas.';
-$lang['current']               = 'Regulas ACL actual';
-$lang['where']                 = 'Pagina/Spatio de nomines';
-$lang['who']                   = 'Usator/Gruppo';
-$lang['perm']                  = 'Permissiones';
-$lang['acl_perm0']             = 'Nulle';
-$lang['acl_perm1']             = 'Leger';
-$lang['acl_perm2']             = 'Modificar';
-$lang['acl_perm4']             = 'Crear';
-$lang['acl_perm8']             = 'Incargar';
-$lang['acl_perm16']            = 'Deler';
-$lang['acl_new']               = 'Adder nove entrata';
-$lang['acl_mod']               = 'Modificar entrata';
diff --git a/wiki/lib/plugins/acl/lang/id/lang.php b/wiki/lib/plugins/acl/lang/id/lang.php
deleted file mode 100644
index 3b0ecf4..0000000
--- a/wiki/lib/plugins/acl/lang/id/lang.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author mubaidillah <mubaidillah@gmail.com>
- * @author Yustinus Waruwu <juswaruwu@gmail.com>
- */
-$lang['admin_acl']             = 'Manajemen Daftar Pengendali Akses';
-$lang['acl_group']             = 'Grup:';
-$lang['acl_user']              = 'User:';
-$lang['acl_perms']             = 'Ijin untuk';
-$lang['page']                  = 'Halaman';
-$lang['namespace']             = 'Namespace';
-$lang['btn_select']            = 'Pilih';
-$lang['acl_perm1']             = 'Baca';
-$lang['acl_perm2']             = 'Ubah';
-$lang['acl_perm4']             = 'Buat';
-$lang['acl_perm8']             = 'Upload';
-$lang['acl_perm16']            = 'Hapus';
-$lang['acl_new']               = 'Tambah Entry baru';
diff --git a/wiki/lib/plugins/acl/lang/is/lang.php b/wiki/lib/plugins/acl/lang/is/lang.php
deleted file mode 100644
index 13ed7bf..0000000
--- a/wiki/lib/plugins/acl/lang/is/lang.php
+++ /dev/null
@@ -1,15 +0,0 @@
-<?php
-/**
- * Icelandic language file
- *
- * @author Hrannar Baldursson <hrannar.baldursson@gmail.com>
- * @author Ólafur Gunnlaugsson <oli@audiotools.com>
- * @author Erik Bjørn Pedersen <erik.pedersen@shaw.ca>
- */
-$lang['acl_group']             = 'Hópur:';
-$lang['acl_user']              = 'Notandi:';
-$lang['page']                  = 'Síða';
-$lang['namespace']             = 'Nafnrými';
-$lang['btn_select']            = 'Veldu';
-$lang['where']                 = 'Síða/Nafnrými';
-$lang['acl_perm16']            = 'Eyða';
diff --git a/wiki/lib/plugins/acl/lang/it/help.txt b/wiki/lib/plugins/acl/lang/it/help.txt
deleted file mode 100644
index 8bf68e8..0000000
--- a/wiki/lib/plugins/acl/lang/it/help.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-=== Breve Aiuto: ===
-
-In questa pagina puoi aggiungere e rimuovere permessi per categorie e pagine del tuo wiki.
-
-Il pannello di sinistra mostra tutte le categorie e le pagine disponibili.
-
-Il campo sopra ti permette di vedere e modificare i permessi di un utente o gruppo selezionato.
-
-Nella tabella sotto, sono riportate tutte le regole di controllo degli accessi attualmente impostate. Puoi utilizzarla per eliminare o cambiare al volo varie regole.
-
-Leggere la [[doku>acl|documentazione ufficale delle ACL]] può aiutarti a capire pienamente come funziona il controllo degli accessi in DokuWiki.
diff --git a/wiki/lib/plugins/acl/lang/it/lang.php b/wiki/lib/plugins/acl/lang/it/lang.php
deleted file mode 100644
index 7528d49..0000000
--- a/wiki/lib/plugins/acl/lang/it/lang.php
+++ /dev/null
@@ -1,41 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Giorgio Vecchiocattivi <giorgio@vecchio.it>
- * @author Roberto Bolli <http://www.rbnet.it/>
- * @author Pietro Battiston <toobaz@email.it>
- * @author Lorenzo Breda <lbreda@gmail.com>
- * @author robocap <robocap1@gmail.com>
- * @author Jacopo Corbetta <jacopo.corbetta@gmail.com>
- * @author Matteo Pasotti <matteo@xquiet.eu>
- */
-$lang['admin_acl']             = 'Gestione Lista Controllo Accessi (ACL)';
-$lang['acl_group']             = 'Gruppo:';
-$lang['acl_user']              = 'Utente:';
-$lang['acl_perms']             = 'Permessi per';
-$lang['page']                  = 'Pagina';
-$lang['namespace']             = 'Categoria';
-$lang['btn_select']            = 'Seleziona';
-$lang['p_user_id']             = 'L\'utente <b class="acluser">%s</b> attualmente ha i seguenti permessi sulla pagina <b class="aclpage">%s</b>: <i>%s</i>.';
-$lang['p_user_ns']             = 'L\'utente <b class="acluser">%s</b> attualmente ha i seguenti permessi per la categoria <b class="aclns">%s</b>: <i>%s</i>.';
-$lang['p_group_id']            = 'I membri del gruppo<b class="aclgroup">%s</b> attualmente hanno i seguenti permessi sulla pagina <b class="aclpage">%s</b>: <i>%s</i>.';
-$lang['p_group_ns']            = 'I membri del gruppo<b class="aclgroup">%s</b> attualmente hanno i seguenti permessi per la categoria <b class="aclns">%s</b>: <i>%s</i>.';
-$lang['p_choose_id']           = '<b>Inserisci un utente o gruppo</b> nel campo sopra per modificare i permessi impostati per la pagina <b class="aclpage">%s</b>.';
-$lang['p_choose_ns']           = '<b>Inserisci un utente o un gruppo</b> nel campo sopra per modificare i permessi impostati per la categoria <b class="aclns">%s</b>.';
-$lang['p_inherited']           = 'Nota: questi permessi non sono stati esplicitamente impostati, ma sono stati ereditati da altri gruppi o da categorie superiori.';
-$lang['p_isadmin']             = 'Nota: il gruppo o utente selezionato ha sempre tutti i permessi perché è configurato come amministratore.';
-$lang['p_include']             = 'I permessi più elevati includono i permessi inferiori. I permessi Crea, Carica ed Elimina si applicano soltanto alle categorie e non alle pagine.';
-$lang['current']               = 'Regole ACL attuali';
-$lang['where']                 = 'Pagina/Categoria';
-$lang['who']                   = 'Utente/Gruppo';
-$lang['perm']                  = 'Permessi';
-$lang['acl_perm0']             = 'Nessuno';
-$lang['acl_perm1']             = 'Lettura';
-$lang['acl_perm2']             = 'Modifica';
-$lang['acl_perm4']             = 'Crea';
-$lang['acl_perm8']             = 'Carica';
-$lang['acl_perm16']            = 'Elimina';
-$lang['acl_new']               = 'Aggiungi nuovo valore';
-$lang['acl_mod']               = 'Modifica valore';
diff --git a/wiki/lib/plugins/acl/lang/ja/help.txt b/wiki/lib/plugins/acl/lang/ja/help.txt
deleted file mode 100644
index a1f03a3..0000000
--- a/wiki/lib/plugins/acl/lang/ja/help.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-=== æ“作案内 ===
-
-ã“ã®ãƒšãƒ¼ã‚¸ã§ã¯ã€Wiki 内ã®åå‰ç©ºé–“ã¨ãƒšãƒ¼ã‚¸ã«å¯¾ã™ã‚‹æ¨©é™ã‚’追加・削除ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚
-  * å·¦å´ã®ãƒœãƒƒã‚¯ã‚¹ã«ã¯å­˜åœ¨ã™ã‚‹åå‰ç©ºé–“ã¨ãƒšãƒ¼ã‚¸ãŒè¡¨ç¤ºã•れã¦ã„ã¾ã™ã€‚
-  * 上部ã®ãƒ•ォームを使ã£ã¦ã€é¸æŠžã—ãŸãƒ¦ãƒ¼ã‚¶ãƒ¼ã‚‚ã—ãã¯ã‚°ãƒ«ãƒ¼ãƒ—ã®æ¨©é™ã‚’閲覧・変更ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚
-  * 下部ã®ä¸€è¦§ã¯ã€ç¾åœ¨è¨­å®šã•れã¦ã„るアクセス制御ã®ãƒ«ãƒ¼ãƒ«ã‚’表示ã—ã¾ã™ã€‚ã“ã®ä¸€è¦§ã‚’使ã£ã¦ã€è¤‡æ•°ã®ãƒ«ãƒ¼ãƒ«ã‚’ç´ æ—©ã変更・削除ã™ã‚‹ã“ã¨ãŒå¯èƒ½ã§ã™ã€‚
-
-DokuWiki ã®ã‚¢ã‚¯ã‚»ã‚¹åˆ¶å¾¡ã«ã¤ã„ã¦ã¯ã€[[doku>ja:acl|アクセス制御リスト (ACL)ã®å…¬å¼è§£èª¬]]ã‚’ãŠèª­ã¿ä¸‹ã•ã„。
\ No newline at end of file
diff --git a/wiki/lib/plugins/acl/lang/ja/lang.php b/wiki/lib/plugins/acl/lang/ja/lang.php
deleted file mode 100644
index 24a3639..0000000
--- a/wiki/lib/plugins/acl/lang/ja/lang.php
+++ /dev/null
@@ -1,41 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Davilin(Yuji Takenaka) <webmaster@davilin.com>
- * @author Yuji Takenaka <webmaster@davilin.com>
- * @author Ikuo Obataya <i.obataya@gmail.com>
- * @author Daniel Dupriest <kououken@gmail.com>
- * @author Kazutaka Miyasaka <kazmiya@gmail.com>
- * @author Taisuke Shimamoto <dentostar@gmail.com>
- * @author Satoshi Sahara <sahara.satoshi@gmail.com>
- */
-$lang['admin_acl']             = 'アクセスコントロール管ç†';
-$lang['acl_group']             = 'グループ:';
-$lang['acl_user']              = 'ユーザー:';
-$lang['acl_perms']             = '権é™ã‚’追加';
-$lang['page']                  = '文書';
-$lang['namespace']             = 'åå‰ç©ºé–“';
-$lang['btn_select']            = 'é¸æŠž';
-$lang['p_user_id']             = 'ユーザー <b class="acluser">%s</b> ã¯ã€ãƒšãƒ¼ã‚¸ <b class="aclpage">%s</b> ã«å¯¾ã—ã¦æ¬¡ã®æ¨©é™ã‚’æŒã£ã¦ã„ã¾ã™: <i>%s</i>';
-$lang['p_user_ns']             = 'ユーザー <b class="acluser">%s</b> ã¯ã€åå‰ç©ºé–“ <b class="aclns">%s</b> ã«å¯¾ã—ã¦æ¬¡ã®æ¨©é™ã‚’æŒã£ã¦ã„ã¾ã™: <i>%s</i>';
-$lang['p_group_id']            = 'グループ <b class="aclgroup">%s</b> ã®ãƒ¡ãƒ³ãƒãƒ¼ã¯ã€ãƒšãƒ¼ã‚¸ <b class="aclpage">%s</b> ã«å¯¾ã—ã¦æ¬¡ã®æ¨©é™ã‚’æŒã£ã¦ã„ã¾ã™: <i>%s</i>';
-$lang['p_group_ns']            = 'グループ <b class="aclgroup">%s</b> ã®ãƒ¡ãƒ³ãƒãƒ¼ã¯ã€åå‰ç©ºé–“ <b class="aclns">%s</b> ã«å¯¾ã—ã¦æ¬¡ã®æ¨©é™ã‚’æŒã£ã¦ã„ã¾ã™: <i>%s</i>';
-$lang['p_choose_id']           = 'ページ <b class="aclpage">%s</b> ã«ã‚»ãƒƒãƒˆã•ã‚ŒãŸæ¨©é™ã‚’閲覧・編集ã™ã‚‹ãŸã‚ã«ã¯ã€ä¸Šè¨˜ã®ãƒ•ォームã«<b>ユーザーåã‚‚ã—ãã¯ã‚°ãƒ«ãƒ¼ãƒ—åを入力ã—ã¦ä¸‹ã•ã„</b>。';
-$lang['p_choose_ns']           = 'åå‰ç©ºé–“ <b class="aclns">%s</b> ã«ã‚»ãƒƒãƒˆã•ã‚ŒãŸæ¨©é™ã‚’閲覧・編集ã™ã‚‹ãŸã‚ã«ã¯ã€ä¸Šè¨˜ã®ãƒ•ォームã«<b>ユーザーåã‚‚ã—ãã¯ã‚°ãƒ«ãƒ¼ãƒ—åを入力ã—ã¦ä¸‹ã•ã„</b>。';
-$lang['p_inherited']           = '注æ„:ã“ã‚Œã‚‰ã®æ¨©é™ã¯æ˜Žç¤ºã•れã¦ã„ã¾ã›ã‚“ãŒã€ä»–ã®ã‚°ãƒ«ãƒ¼ãƒ—ã‚‚ã—ãã¯ä¸Šä½ã®åå‰ç©ºé–“ã®æ¨©é™ã‚’継承ã—ã¾ã™ã€‚';
-$lang['p_isadmin']             = '注æ„ï¼šé¸æŠžã—ãŸã‚°ãƒ«ãƒ¼ãƒ—ã‚‚ã—ãã¯ãƒ¦ãƒ¼ã‚¶ãƒ¼ã¯ã‚¹ãƒ¼ãƒ‘ーユーザーã§ã‚ã‚‹ãŸã‚ã€å…¨ã¦ã®æ¨©é™ãŒã‚りã¾ã™ã€‚';
-$lang['p_include']             = 'é«˜æ¬¡ã®æ¨©é™ã¯ã€ãã‚Œã‚ˆã‚Šä½Žæ¬¡ã®æ¨©é™ã‚’å«ã¿ã¾ã™ã€‚作æˆãƒ»ã‚¢ãƒƒãƒ—ãƒ­ãƒ¼ãƒ‰ãƒ»å‰Šé™¤ã®æ¨©é™ã¯ã€ãƒšãƒ¼ã‚¸ã§ã¯ãªãåå‰ç©ºé–“ã®ã¿ã«é©ç”¨ã•れã¾ã™ã€‚';
-$lang['current']               = 'ç¾åœ¨ã®ACLルール';
-$lang['where']                 = 'ページ/åå‰ç©ºé–“';
-$lang['who']                   = 'ユーザー/グループ';
-$lang['perm']                  = '権é™';
-$lang['acl_perm0']             = 'ç„¡ã—';
-$lang['acl_perm1']             = '読å–';
-$lang['acl_perm2']             = '編集';
-$lang['acl_perm4']             = '作æˆ';
-$lang['acl_perm8']             = 'アップロード';
-$lang['acl_perm16']            = '削除';
-$lang['acl_new']               = 'æ–°è¦ã‚¨ãƒ³ãƒˆãƒª';
-$lang['acl_mod']               = 'エントリã®ç·¨é›†';
diff --git a/wiki/lib/plugins/acl/lang/kk/lang.php b/wiki/lib/plugins/acl/lang/kk/lang.php
deleted file mode 100644
index 28984fd..0000000
--- a/wiki/lib/plugins/acl/lang/kk/lang.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-/**
- * kazakh language file
- *
- * @author Nurgozha Kaliaskarov astana08@gmail.com
- */
-$lang['acl_group']             = 'Группа:';
-$lang['acl_user']              = 'Пайдаланушы:';
-$lang['page']                  = 'Бет';
-$lang['acl_perm1']             = 'Оқу';
diff --git a/wiki/lib/plugins/acl/lang/ko/help.txt b/wiki/lib/plugins/acl/lang/ko/help.txt
deleted file mode 100644
index 80069b3..0000000
--- a/wiki/lib/plugins/acl/lang/ko/help.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-=== 빠른 ë„움ë§: ===
-
-현재 문서ì—서 위키 ì´ë¦„공간과 ë¬¸ì„œì— ëŒ€í•œ ì ‘ê·¼ ê¶Œí•œì„ ì¶”ê°€í•˜ê±°ë‚˜ 삭제할 수 있습니다.
-  * 왼쪽 ì˜ì—­ì—는 ì„ íƒ ê°€ëŠ¥í•œ ì´ë¦„공간과 문서 목ë¡ì„ ë³´ì—¬ì¤ë‹ˆë‹¤.
-  * 위쪽 ìž…ë ¥ ì–‘ì‹ì—서 ì„ íƒëœ 사용ìžì™€ ê·¸ë£¹ì˜ ì ‘ê·¼ ê¶Œí•œì„ ë³´ê±°ë‚˜ 바꿀 수 있습니다.
-  * 아래 í…Œì´ë¸”ì—서 현재 ì„¤ì •ëœ ëª¨ë“  ì ‘ê·¼ 제어 ê·œì¹™ì„ ë³¼ 수 있으며, 즉시 여러 ê·œì¹™ì„ ì‚­ì œí•˜ê±°ë‚˜ 바꿀 수 있습니다.
-
-ë„쿠위키ì—서 ì ‘ê·¼ 제어가 어떻게 ë™ìž‘ë˜ëŠ”ì§€ 알아보려면 [[doku>ko:acl|ACL ê³µì‹ ë¬¸ì„œ]]를 ì½ì–´ë³´ì‹œê¸° ë°”ëžë‹ˆë‹¤.
\ No newline at end of file
diff --git a/wiki/lib/plugins/acl/lang/ko/lang.php b/wiki/lib/plugins/acl/lang/ko/lang.php
deleted file mode 100644
index 35f06c4..0000000
--- a/wiki/lib/plugins/acl/lang/ko/lang.php
+++ /dev/null
@@ -1,44 +0,0 @@
-<?php
-
-/**
- * @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>
- * @author jk Lee
- * @author dongnak <dongnak@gmail.com>
- * @author Song Younghwan <purluno@gmail.com>
- * @author Seung-Chul Yoo <dryoo@live.com>
- * @author erial2 <erial2@gmail.com>
- * @author Myeongjin <aranet100@gmail.com>
- * @author Garam <rowain8@gmail.com>
- */
-$lang['admin_acl']             = 'ì ‘ê·¼ 제어 ëª©ë¡ ê´€ë¦¬';
-$lang['acl_group']             = '그룹:';
-$lang['acl_user']              = '사용ìž:';
-$lang['acl_perms']             = '권한';
-$lang['page']                  = '문서';
-$lang['namespace']             = 'ì´ë¦„공간';
-$lang['btn_select']            = 'ì„ íƒ';
-$lang['p_user_id']             = '<b class="acluser">%s</b> 사용ìžëŠ” 현재 <b class="aclpage">%s</b>: <i>%s</i> ë¬¸ì„œì— ì ‘ê·¼ì´ ê°€ëŠ¥í•©ë‹ˆë‹¤.';
-$lang['p_user_ns']             = '<b class="acluser">%s</b> 사용ìžëŠ” 현재 <b class="aclns">%s</b>: <i>%s</i> ì´ë¦„ê³µê°„ì— ì ‘ê·¼ì´ ê°€ëŠ¥í•©ë‹ˆë‹¤.';
-$lang['p_group_id']            = '<b class="aclgroup">%s</b> 그룹 구성ì›ì€ 현재 <b class="aclpage">%s</b>: <i>%s</i> ë¬¸ì„œì— ì ‘ê·¼ì´ ê°€ëŠ¥í•©ë‹ˆë‹¤.';
-$lang['p_group_ns']            = '<b class="aclgroup">%s</b> 그룹 구성ì›ì€ 현재 <b class="aclns">%s</b>: <i>%s</i> ì´ë¦„ê³µê°„ì— ì ‘ê·¼ì´ ê°€ëŠ¥í•©ë‹ˆë‹¤.';
-$lang['p_choose_id']           = '<b class="aclpage">%s</b> 문서 ì ‘ê·¼ ê¶Œí•œì„ ë³´ê±°ë‚˜ 바꾸려면 <b>사용ìž</b>나 <b>그룹</b>ì„ ìœ„ ì–‘ì‹ì— 입력하세요.';
-$lang['p_choose_ns']           = '<b class="aclns">%s</b> ì´ë¦„공간 ì ‘ê·¼ ê¶Œí•œì„ ë³´ê±°ë‚˜ 바꾸려면 <b>사용ìž</b>나 <b>그룹</b>ì„ ìœ„ ì–‘ì‹ì— 입력하세요.';
-$lang['p_inherited']           = '참고: ê¶Œí•œì´ ëª…ì‹œì ìœ¼ë¡œ 설정ë˜ì§€ 않았으므로 다른 그룹ì´ë‚˜ ìƒìœ„ ì´ë¦„공간으로부터 가져왔습니다.';
-$lang['p_isadmin']             = '참고: ìŠˆí¼ ì‚¬ìš©ìžë¡œ 설정ë˜ì–´ 있으므로 ì„ íƒëœ 그룹ì´ë‚˜ 사용ìžëŠ” 언제나 모든 ì ‘ê·¼ ê¶Œí•œì„ ê°€ì§‘ë‹ˆë‹¤.';
-$lang['p_include']             = 'ë” ë†’ì€ ì ‘ê·¼ ê¶Œí•œì€ í•˜ìœ„ë¥¼ í¬í•¨í•©ë‹ˆë‹¤. 문서가 아닌 ì´ë¦„공간ì—는 만들기, 올리기, ì‚­ì œ 권한만 ì ìš©ë©ë‹ˆë‹¤.';
-$lang['current']               = '현재 ACL 규칙';
-$lang['where']                 = '문서/ì´ë¦„공간';
-$lang['who']                   = '사용ìž/그룹';
-$lang['perm']                  = '권한';
-$lang['acl_perm0']             = 'ì—†ìŒ';
-$lang['acl_perm1']             = 'ì½ê¸°';
-$lang['acl_perm2']             = '편집';
-$lang['acl_perm4']             = '만들기';
-$lang['acl_perm8']             = '올리기';
-$lang['acl_perm16']            = '삭제';
-$lang['acl_new']               = '새 항목 추가';
-$lang['acl_mod']               = '항목 수정';
diff --git a/wiki/lib/plugins/acl/lang/la/help.txt b/wiki/lib/plugins/acl/lang/la/help.txt
deleted file mode 100644
index 553884c..0000000
--- a/wiki/lib/plugins/acl/lang/la/help.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-=== Auxilium: ===
-
-Hic facultates generum paginarumque addere delereue potes.
-
-Tabella sinistra omnes paginas generaque ostendit.
-
-His campis mutare facultates electorum Sodalium Gregumque potes.
-
-In tabula omnes administrationis leges ostensae sunt. Delere quoque uel mutare plures leges potes.
-
-Si [[doku>acl|official documentation on ACL]] legas, maius auxilium in Vicem mutando habes.
\ No newline at end of file
diff --git a/wiki/lib/plugins/acl/lang/la/lang.php b/wiki/lib/plugins/acl/lang/la/lang.php
deleted file mode 100644
index 3779ba7..0000000
--- a/wiki/lib/plugins/acl/lang/la/lang.php
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-/**
- * Latin language file
- *
- * @author Massimiliano Vassalli <vassalli.max@gmail.com>
- */
-$lang['admin_acl']             = 'Administratio Indicis Custodiae Aditus';
-$lang['acl_group']             = 'Grex:';
-$lang['acl_user']              = 'Sodalis:';
-$lang['acl_perms']             = 'Facultas:';
-$lang['page']                  = 'Pagina';
-$lang['namespace']             = 'Genus';
-$lang['btn_select']            = 'eligere';
-$lang['p_user_id']             = 'Sodalis <b class="acluser">%s</b> nunc has facultates paginae "<b class="aclpage">%s</b> habes: <i>%s</i>.';
-$lang['p_user_ns']             = 'Sodalis <b class="acluser">%s</b> nunc has facultates generis "<b class="aclns">%s</b> habes: <i>%s</i>.';
-$lang['p_group_id']            = 'Socius\a gregis <b class="aclgroup">%s</b> nunc has facultates paginae "<b class="aclpage">%s</b> habes: <i>%s</i>.';
-$lang['p_group_ns']            = 'Socius\a gregis <b class="aclgroup">%s</b> nunc has facultates generis "<b class="aclns">%s</b> habes: <i>%s</i>.';
-$lang['p_choose_id']           = '<b>Sodalis grexue</b> in campo insere ut facultates paginae <b class="aclpage">%s</b> uideas.';
-$lang['p_choose_ns']           = '<b>Sodalis grexue</b> in campo insere ut facultates generis <b class="aclns">%s</b> uideas.';
-$lang['p_inherited']           = 'Caue: hae facultates et huic rei et aliis gregibus uel generibus legitimae sunt.';
-$lang['p_isadmin']             = 'Caue: electi greges semper plenum ius habent, eo quod ut magister\stra elegitur.';
-$lang['p_include']             = 'Maiores facultates minores includunt. Creandi, onerandi uel delendi facultates solum generibus, non paginis sunt.';
-$lang['current']               = 'Communes ICA leges';
-$lang['where']                 = 'Pagina/Genus';
-$lang['who']                   = 'Sodalis/Grex';
-$lang['perm']                  = 'Facultates';
-$lang['acl_perm0']             = 'Nihil';
-$lang['acl_perm1']             = 'Legere';
-$lang['acl_perm2']             = 'Recensere';
-$lang['acl_perm4']             = 'Creare';
-$lang['acl_perm8']             = 'Onerare';
-$lang['acl_perm16']            = 'Delere';
-$lang['acl_new']               = 'Nouom addere';
-$lang['acl_mod']               = 'Nouom recensere';
diff --git a/wiki/lib/plugins/acl/lang/lb/help.txt b/wiki/lib/plugins/acl/lang/lb/help.txt
deleted file mode 100644
index e36ed37..0000000
--- a/wiki/lib/plugins/acl/lang/lb/help.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-=== Séier Hëllef: ===
-
-Op dëser Säit kanns de Rechter fir Namespacen a Säiten an dengem Wiki setzen.
-
-Op der lénkser Säit hues de all d'Namespacen a Säiten.
-
-Am Formulär hei uewendriwwer kanns de d'Rechter vun dem ausgewielte Benotzer oder Grupp änneren
-
-An der Tabell hei ënnendrënner kanns de all d'Reegele gesinn déi de Moment gesat sinn. Du kanns se huelen fir Reegelen ze änneren oder ze läschen.
-
-Déi [[doku>acl|offiziell Dokumentatioun iwwert ACL]] hëlleft der besser ze verstoen wéi déi Reegelen am Dokuwiki funktionéieren.
diff --git a/wiki/lib/plugins/acl/lang/lt/lang.php b/wiki/lib/plugins/acl/lang/lt/lang.php
deleted file mode 100644
index 2a1748a..0000000
--- a/wiki/lib/plugins/acl/lang/lt/lang.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author Linas Valiukas <shirshegsm@gmail.com>
- * @author audrius.klevas@gmail.com
- * @author Arunas Vaitekunas <aras@fan.lt>
- */
-$lang['admin_acl']             = 'Priėjimo Kontrolės Sąrašų valdymas';
-$lang['acl_group']             = 'GrupÄ—:';
-$lang['acl_user']              = 'Vartotojas:';
-$lang['acl_perms']             = 'Leidimai';
-$lang['page']                  = 'Puslapis';
-$lang['namespace']             = 'Pavadinimas';
-$lang['btn_select']            = 'Rinktis';
-$lang['acl_perm1']             = 'Skaityti';
-$lang['acl_perm2']             = 'Redaguoti';
-$lang['acl_perm4']             = 'Sukurti';
-$lang['acl_perm8']             = 'Atsiųsti';
-$lang['acl_perm16']            = 'Ištrinti';
-$lang['acl_new']               = 'Pridėti naują įrašą';
diff --git a/wiki/lib/plugins/acl/lang/lv/help.txt b/wiki/lib/plugins/acl/lang/lv/help.txt
deleted file mode 100644
index f570d79..0000000
--- a/wiki/lib/plugins/acl/lang/lv/help.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-=== Īsa palīdzība ===
-
-Å ajÄ lapÄ var uzdot un noņemt tiesÄ«bas uz lapÄm un nodaļÄm.
-
-KreisajÄ pusÄ“ parÄdÄ«tas visas pieejamÄs nodaļas un lapas.
-
-FormÄ augÅ¡pusÄ“ var redzÄ“t un grozÄ«t norÄdÄ«tÄ lietotÄja vai grupas tiesÄ«bas .
-
-ApakÅ¡Ä tabulÄ  parÄdÄ«ts visu tiesÄ«bu saraksts. To var lietot, lai Ätri mainÄ«tu vairÄkus pieejas tiesÄ«bu noteikumus.
-
-[[doku>acl|OfficiÄlajos piekļuves tiesÄ«bu noteikumu dokumentos]] var atrast izvÄ“rstu informÄciju, kÄ darbojas DokuWiki sistÄ“mas piekļuves tiesÄ«bu kontrole.
diff --git a/wiki/lib/plugins/acl/lang/lv/lang.php b/wiki/lib/plugins/acl/lang/lv/lang.php
deleted file mode 100644
index e4ca492..0000000
--- a/wiki/lib/plugins/acl/lang/lv/lang.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Aivars Miška <allefm@gmail.com>
- */
-$lang['admin_acl']             = 'Piekļuves tiesību vadība';
-$lang['acl_group']             = 'Grupa:';
-$lang['acl_user']              = 'LietotÄjs:';
-$lang['acl_perms']             = 'Tiesības';
-$lang['page']                  = 'Lapa';
-$lang['namespace']             = 'Nodaļa';
-$lang['btn_select']            = 'Izvēlēties';
-$lang['p_user_id']             = 'LietotÄjam <b class="acluser">%s</b> ir tiesÄ«bas <i>%s</i> lapu <b class="aclpage">%s</b> .';
-$lang['p_user_ns']             = 'LietotÄjam <b class="acluser">%s</b> nodaÄ¼Ä <b class="aclns">%s</b> ir tiesÄ«bas <i>%s</i>.';
-$lang['p_group_id']            = 'Grupas <b class="aclgroup">%s</b> biedriem ir tiesības <i>%s</i> lapu <b class="aclpage">%s</b>.';
-$lang['p_group_ns']            = 'Grupas <b class="aclgroup">%s</b> biedriem ir tiesības <i>%s</i> nodaļu  <b class="aclns">%s</b>: .';
-$lang['p_choose_id']           = 'LÅ«dzu <b>ieraksti lietotÄju vai grupu</b> augstÄk norÄdÄ«tajÄ laukÄ, lai skatÄ«tu vai labotu tiesÄ«bas lapai <b class="aclpage">%s</b>.';
-$lang['p_choose_ns']           = 'LÅ«dzu <b>ieraksti lietotÄju vai grupu</b> augstÄk norÄdÄ«tajÄ laukÄ, lai skatÄ«tu vai labotu tiesÄ«bas nodaļai <b class="aclpage">%s</b>.';
-$lang['p_inherited']           = 'IevÄ“ro: Å Ä«s tiesÄ«bas nav tieÅ¡i uzdotas, bet mantotas no citÄm grupÄm vai augstÄkÄm nodaļÄm. ';
-$lang['p_isadmin']             = 'IevÄ“ro: NorÄdÄ«tajai grupai vai lietotÄjam vienmÄ“r ir visas tiesÄ«bas, jo tas konfigurÄ“ts kÄ <i>superuser</i>.';
-$lang['p_include']             = 'AugstÄka atļauja iekļauj arÄ« zemÄkÄs tiesÄ«bas. IzveidoÅ¡anas, augÅ¡upielÄdēšanas un dzēšanas tiesÄ«bas attiecas tikai uz nodaļÄm, nevis lapÄm.';
-$lang['current']               = 'Patreizējo tiesību saraksts (ACL)';
-$lang['where']                 = 'Lapa/nodaļa';
-$lang['who']                   = 'LietotÄjs/grupa';
-$lang['perm']                  = 'Tiesības';
-$lang['acl_perm0']             = 'nekÄdas';
-$lang['acl_perm1']             = 'lasīt';
-$lang['acl_perm2']             = 'labot';
-$lang['acl_perm4']             = 'izveidot';
-$lang['acl_perm8']             = 'augÅ¡upielÄdÄ“t';
-$lang['acl_perm16']            = 'dzēst';
-$lang['acl_new']               = 'pievienot jaunu šķirkli';
-$lang['acl_mod']               = 'labot šķirkli';
diff --git a/wiki/lib/plugins/acl/lang/mk/lang.php b/wiki/lib/plugins/acl/lang/mk/lang.php
deleted file mode 100644
index 27f41e7..0000000
--- a/wiki/lib/plugins/acl/lang/mk/lang.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-/**
- * Macedonian language file
- *
- * @author Dimitar Talevski <dimi3.14@gmail.com>
- */
-$lang['acl_group']             = 'Група:';
-$lang['acl_user']              = 'КориÑник:';
-$lang['acl_perms']             = 'ПермиÑии за';
-$lang['page']                  = 'Страница';
-$lang['btn_select']            = 'Избери';
-$lang['current']               = 'Моментални ACL правила';
-$lang['who']                   = 'КориÑник/група';
-$lang['perm']                  = 'ПермиÑии';
-$lang['acl_perm0']             = 'Ðишто';
-$lang['acl_perm1']             = 'Читај';
-$lang['acl_perm2']             = 'Уреди';
-$lang['acl_perm4']             = 'Креирај';
-$lang['acl_perm8']             = 'Качи';
-$lang['acl_perm16']            = 'Избриши';
-$lang['acl_new']               = 'Додај нов запиÑ';
-$lang['acl_mod']               = 'Измени запиÑ';
diff --git a/wiki/lib/plugins/acl/lang/mr/help.txt b/wiki/lib/plugins/acl/lang/mr/help.txt
deleted file mode 100644
index e8aa13b..0000000
--- a/wiki/lib/plugins/acl/lang/mr/help.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-=== तà¥à¤µà¤°à¤¿à¤¤ मदत ===
-
-या पानावर तà¥à¤®à¤šà¥€ तà¥à¤®à¤šà¥à¤¯à¤¾ विकी मधील पाने किंवा नेमसà¥à¤ªà¥‡à¤¸ वरील परवानगà¥à¤¯à¤¾ बदलू शकता.
-
-डाविकडील मारà¥à¤œà¤¿à¤¨ मधे सरà¥à¤µ उपलबà¥à¤§ पाने आणि नेमसà¥à¤ªà¥‡à¤¸ दाखवले आहेत.
-
-वरील फॉरà¥à¤® वापरून तà¥à¤®à¤šà¥€ निवडलेलà¥à¤¯à¤¾ सदसà¥à¤¯ किंवा गटाचà¥à¤¯à¤¾ परवानगà¥à¤¯à¤¾ बदलू शकता.
-
-खालील टेबल मधे सधà¥à¤¯à¤¾ सेट असलेले नियम दिलेले आहेत.
-हे टेबल वापरून तà¥à¤®à¥à¤¹à¥€ चटकन हे नियम बदलू शकता.
-
-[[doku>acl| ACL वरील अधिकृत माहितीसंगà¥à¤°à¤¹ ]] वाचून तà¥à¤®à¥à¤¹à¤¾à¤²à¤¾ डॉकà¥à¤¯à¥à¤µà¤¿à¤•िमधे परवानगीची वà¥à¤¯à¤µà¤¸à¥à¤¥à¤¾ कशी काम करते ते नीट समजेल.
\ No newline at end of file
diff --git a/wiki/lib/plugins/acl/lang/mr/lang.php b/wiki/lib/plugins/acl/lang/mr/lang.php
deleted file mode 100644
index 1094ed7..0000000
--- a/wiki/lib/plugins/acl/lang/mr/lang.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-/**
- * Marathi language file
- *
- * @author ghatothkach@hotmail.com
- * @author Padmanabh Kulkarni <kulkarnipadmanabh@gmail.com>
- * @author Padmanabh Kulkarni<kulkarnipadmanabh@gmail.com>
- * @author shantanoo@gmail.com
- */
-$lang['admin_acl']             = 'Access Control List  वà¥à¤¯à¤µà¤¸à¥à¤¥à¤¾à¤ªà¤¨';
-$lang['acl_group']             = 'गट:';
-$lang['acl_user']              = 'सदसà¥à¤¯:';
-$lang['acl_perms']             = 'परवानगी \'चà¥à¤¯à¤¾ साठी';
-$lang['page']                  = 'पान';
-$lang['namespace']             = 'नेमसà¥à¤ªà¥‡à¤¸';
-$lang['btn_select']            = 'निवडा';
-$lang['p_user_id']             = '<b class="acluser">%s</b> हà¥à¤¯à¤¾ सदसà¥à¤¯à¤¾à¤²à¤¾ सधà¥à¤¯à¤¾ <b class="aclpage">%s</b> या पानावर पà¥à¤¢à¥€à¤² परवानगà¥à¤¯à¤¾ आहेत : <i>%s</i>.';
-$lang['p_user_ns']             = '<b class="acluser">%s</b> या सदसà¥à¤¯à¤¾à¤²à¤¾ सधà¥à¤¯à¤¾ <b class="aclns">%s</b> या नेमसà¥à¤ªà¥‡à¤¸à¤µà¤° पà¥à¤¢à¥€à¤² परवानगà¥à¤¯à¤¾ आहेत : <i>%s</i>.';
-$lang['p_group_id']            = '<b class="aclgroup">%s</b> या गटाचà¥à¤¯à¤¾ सदसà¥à¤¯à¤¾à¤¨à¤¾ सधà¥à¤¯à¤¾ <b class="aclpage">%s</b> या पानावर पà¥à¤¢à¥€à¤² परवानगà¥à¤¯à¤¾ आहेत : <i>%s</i>.';
-$lang['p_group_ns']            = '<b class="aclgroup">%s</b> या गटाचà¥à¤¯à¤¾ सदसà¥à¤¯à¤¾à¤¨à¤¾ सधà¥à¤¯à¤¾ <b class="aclns">%s</b> या नेमसà¥à¤ªà¥‡à¤¸à¤µà¤° पà¥à¤¢à¥€à¤² परवानगà¥à¤¯à¤¾ आहेत : <i>%s</i>.';
-$lang['p_choose_id']           = 'वरील फॉरà¥à¤® मधे à¤à¤–ादà¥à¤¯à¤¾ <b>सदसà¥à¤¯ किंवा गटाचे </b> नाव टाकà¥à¤¨ <b class="aclpage">%s</b> या पानासाठी तà¥à¤¯à¤¾à¤‚चà¥à¤¯à¤¾ परवानगà¥à¤¯à¤¾ पाहू/बदलू शकता.';
-$lang['p_choose_ns']           = 'वरील फॉरà¥à¤® मधे à¤à¤–ादà¥à¤¯à¤¾ <b>सदसà¥à¤¯ किंवा गटाचे </b> नाव टाकà¥à¤¨ <b class="aclns">%s</b> या नेमसà¥à¤ªà¥‡à¤¸à¤¸à¤¾à¤ à¥€ तà¥à¤¯à¤¾à¤‚चà¥à¤¯à¤¾ परवानगà¥à¤¯à¤¾ पाहू/बदलू शकता.';
-$lang['p_inherited']           = 'टीप : हà¥à¤¯à¤¾ परवानगà¥à¤¯à¤¾ पà¥à¤°à¤¤à¥à¤¯à¤•à¥à¤· सेट केलà¥à¤¯à¤¾ नसून तà¥à¤¯à¤¾ इतर गट किंवा अधिक उचà¥à¤š नेमसà¥à¤ªà¥‡à¤¸ कडून वारसाहकà¥à¤•ाने  :) आलà¥à¤¯à¤¾ आहेत.';
-$lang['p_isadmin']             = 'टीप : निवडलेलà¥à¤¯à¤¾ सदसà¥à¤¯ किंवा गटाला कायम सरà¥à¤µ परवानगà¥à¤¯à¤¾ असतात कारण तो सà¥à¤ªà¤° सदसà¥à¤¯ मà¥à¤¹à¤£à¥à¤¨ सेट केला आहे.';
-$lang['p_include']             = 'उचà¥à¤š परवानगà¥à¤¯à¤¾à¤‚मधे तà¥à¤¯à¤¾à¤–ालिल परवानगà¥à¤¯à¤¾ अधà¥à¤¯à¤¾à¤¹à¥ƒà¤¤ असतात. कà¥à¤°à¤¿à¤à¤Ÿ, अपलोड आणि डिलीट परवानगà¥à¤¯à¤¾ फ़कà¥à¤¤ नामसमà¥à¤¹à¤¾à¤µà¤° (नेमसà¥à¤ªà¥‡à¤¸) लागू असतात, पानांवर नाही.';
-$lang['current']               = 'सदà¥à¤¯ ACL नियम';
-$lang['where']                 = 'पान/नेमसà¥à¤ªà¥‡à¤¸';
-$lang['who']                   = 'सदसà¥à¤¯/गट';
-$lang['perm']                  = 'परवानगà¥à¤¯à¤¾';
-$lang['acl_perm0']             = 'काही नाही.';
-$lang['acl_perm1']             = 'वाचन';
-$lang['acl_perm2']             = 'संपादन';
-$lang['acl_perm4']             = 'निरà¥à¤®à¤¾à¤£';
-$lang['acl_perm8']             = 'अपलोड';
-$lang['acl_perm16']            = 'डिलीट';
-$lang['acl_new']               = 'नवीन à¤à¤‚टà¥à¤°à¥€ करा';
-$lang['acl_mod']               = 'à¤à¤‚टà¥à¤°à¥€ बदला';
diff --git a/wiki/lib/plugins/acl/lang/ne/lang.php b/wiki/lib/plugins/acl/lang/ne/lang.php
deleted file mode 100644
index 481b39a..0000000
--- a/wiki/lib/plugins/acl/lang/ne/lang.php
+++ /dev/null
@@ -1,28 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author Saroj Kumar Dhakal <lotusnagarkot@gmail.com>
- * @author SarojKumar Dhakal <lotusnagarkot@yahoo.com>
- * @author Saroj Dhakal<lotusnagarkot@yahoo.com>
- */
-$lang['admin_acl']             = 'à¤à¤•à¥à¤¸à¥‡à¤¸ कनà¥à¤Ÿà¥à¤°à¥‹à¤² लिसà¥à¤Ÿ वà¥à¤¯à¤µà¤¸à¥à¤¥à¤¾à¤ªà¤¨';
-$lang['acl_group']             = 'समूह:';
-$lang['acl_user']              = 'पà¥à¤°à¥‹à¤—करà¥à¤¤à¤¾:';
-$lang['acl_perms']             = 'को लागि अनà¥à¤®à¤¤à¤¿';
-$lang['page']                  = 'पृषà¥à¤ ';
-$lang['namespace']             = 'नेमसà¥à¤ªà¥‡à¤¸';
-$lang['btn_select']            = 'छानà¥à¤¨à¥à¤¹à¥‹à¤¸à¥';
-$lang['current']               = 'हालैको ACL नियमहरॠ';
-$lang['where']                 = 'पृषà¥à¤  / नेमसà¥à¤ªà¥‡à¤¸';
-$lang['who']                   = 'पà¥à¤°à¤¯à¥‹à¤—करà¥à¤¤à¤¾ / समूह ';
-$lang['perm']                  = 'अनà¥à¤®à¤¤à¤¿';
-$lang['acl_perm0']             = 'कà¥à¤¨à¥ˆ पनि होइन';
-$lang['acl_perm1']             = 'पठन गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥';
-$lang['acl_perm2']             = 'समà¥à¤ªà¤¾à¤¦à¤¨ गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥';
-$lang['acl_perm4']             = 'निरà¥à¤®à¤¾à¤£ गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥';
-$lang['acl_perm8']             = 'अपलोड गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥';
-$lang['acl_perm16']            = 'मेटाउनà¥à¤¹à¥‹à¤¸à¥';
-$lang['acl_new']               = 'नयाठपà¥à¤°à¤µà¤¿à¤·à¥à¤ à¤¿ गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥';
-$lang['acl_mod']               = 'पà¥à¤°à¤µà¤¿à¤·à¥à¤ à¤¿ सचà¥à¤¯à¤¾à¤‰à¤¨à¥à¤¹à¥‹à¤¸à¥';
diff --git a/wiki/lib/plugins/acl/lang/nl/help.txt b/wiki/lib/plugins/acl/lang/nl/help.txt
deleted file mode 100644
index 14c78e2..0000000
--- a/wiki/lib/plugins/acl/lang/nl/help.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-=== Snelle hulp: ===
-
-Op deze pagina kun je bevoegdheden toevoegen en verwijderen voor namespaces en pagina's in je wiki.
-  * Het linkerpaneel geeft alle beschikbare namespaces en pagina's weer.
-  * In het formulier hierboven kun je bevoegdheden zien en aanpassen voor een selecteerde gebruiker of groep.
-  * In de tabel hieronder worden alle momenteel ingestelde toegangsregels weergegeven. Je kunt hier snel regels wijzigen of verwijderen.
-
-Lees de  [[doku>acl|documentatie over ACLs]] om de mogelijkheden volledig te begrijpen.
diff --git a/wiki/lib/plugins/acl/lang/nl/lang.php b/wiki/lib/plugins/acl/lang/nl/lang.php
deleted file mode 100644
index 7f28170..0000000
--- a/wiki/lib/plugins/acl/lang/nl/lang.php
+++ /dev/null
@@ -1,48 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author François Kooman <fkooman.tuxed.net>
- * @author Jack van Klaren <dokuwiki@afentoe.xs4all.nl>
- * @author Riny Heijdendael <riny@heijdendael.nl>
- * @author Koen Huybrechts <huybkoen@gmail.com>
- * @author Wouter Schoot <wouter@schoot.org>
- * @author John de Graaff <john@de-graaff.net>
- * @author Niels Schoot <niels.schoot@quintiq.com>
- * @author Dion Nicolaas <dion@nicolaas.net>
- * @author Danny Rotsaert <danny.rotsaert@edpnet.be>
- * @author Marijn Hofstra <hofstra.m@gmail.com>
- * @author Timon Van Overveldt <timonvo@gmail.com>
- * @author Ricardo Guijt <ricardoguijt@gmail.com>
- * @author Gerrit <klapinklapin@gmail.com>
- * @author Remon <no@email.local>
- */
-$lang['admin_acl']             = 'Toegangsrechten';
-$lang['acl_group']             = 'Groep:';
-$lang['acl_user']              = 'Gebruiker:';
-$lang['acl_perms']             = 'Permissies voor';
-$lang['page']                  = 'Pagina';
-$lang['namespace']             = 'Namespace';
-$lang['btn_select']            = 'Selecteer';
-$lang['p_user_id']             = 'Gebruiker <b class="acluser">%s</b> heeft momenteel de volgende bevoegdheden op pagina <b class="aclpage">%s</b>: <i>%s</i>.';
-$lang['p_user_ns']             = 'Gebruiker <b class="acluser">%s</b> heeft momenteel de volgende bevoegdheden op namespace <b class="aclns">%s</b>: <i>%s</i>.';
-$lang['p_group_id']            = 'Leden van groep <b class="aclgroup">%s</b> hebben momenteel de volgende bevoegdheden op pagina <b class="aclpage">%s</b>: <i>%s</i>.';
-$lang['p_group_ns']            = 'Leden van groep <b class="aclgroup">%s</b> hebben momenteel de volgende bevoegdheden in namespace <b class="aclns">%s</b>: <i>%s</i>.';
-$lang['p_choose_id']           = 'Vul een <b>gebruiker of groep</b> in in het bovenstaande formulier om de bevoegdheden te bekijken of te bewerken voor de pagina <b class="aclpage">%s</b>.';
-$lang['p_choose_ns']           = 'Vul een <b>gebruiker of groep</b> in in het bovenstaande formulier om de bevoegdheden te bekijken of te bewerken voor de namespace <b class="aclns">%s</b>.';
-$lang['p_inherited']           = 'Let op: Deze permissies zijn niet expliciet ingesteld maar overerfd van andere groepen of hogere namespaces.';
-$lang['p_isadmin']             = 'Let op: De geselecteerde groep of gebruiker heeft altijd volledige toegangsrechten omdat hij als superuser geconfigureerd is.';
-$lang['p_include']             = 'Hogere permissies bevatten ook de lagere. Aanmaken, uploaden en verwijderen gelden alleen voor namespaces, niet voor pagina\'s.';
-$lang['current']               = 'Huidige ACL regels';
-$lang['where']                 = 'Pagina/Namespace';
-$lang['who']                   = 'Gebruiker/Groep';
-$lang['perm']                  = 'Bevoegdheden';
-$lang['acl_perm0']             = 'Geen';
-$lang['acl_perm1']             = 'Lezen';
-$lang['acl_perm2']             = 'Bewerken';
-$lang['acl_perm4']             = 'Aanmaken';
-$lang['acl_perm8']             = 'Uploaden';
-$lang['acl_perm16']            = 'Verwijderen';
-$lang['acl_new']               = 'Nieuwe regel toevoegen';
-$lang['acl_mod']               = 'Regel aanpassen';
diff --git a/wiki/lib/plugins/acl/lang/no/help.txt b/wiki/lib/plugins/acl/lang/no/help.txt
deleted file mode 100644
index c3d3688..0000000
--- a/wiki/lib/plugins/acl/lang/no/help.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-=== Hurtighjelp: ===
-
-PÃ¥ denne siden kan du legge til og fjerne tillatelser for navnerom og sider i din wiki.
-
-Venstre panel viser alle tilgjengelige navnerom og sider.
-
-Skjemaet over tillater deg å se og modifisere tillatelser for en valgt bruker eller gruppe.
-
-I tabellen nedenfor vises alle nærværende satte adgangskontroll-regler. Du kan bruke den til raskt å slette eller endre mange regler i slengen.
-
-Å lese  [[doku>acl|den offisielle dokumentasjonen for ACL]]  kan hjelpe deg å fullt ut forstå hvordan adgangskontroll fungerer i DokuWiki.
diff --git a/wiki/lib/plugins/acl/lang/no/lang.php b/wiki/lib/plugins/acl/lang/no/lang.php
deleted file mode 100644
index 13770f4..0000000
--- a/wiki/lib/plugins/acl/lang/no/lang.php
+++ /dev/null
@@ -1,49 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Reidar Mosvold <Reidar.Mosvold@hit.no>
- * @author Jorge Barrera Grandon <jorge@digitalwolves.org>
- * @author Thomas Nygreen <nygreen@gmail.com>
- * @author Arild Burud <arildb@met.no>
- * @author Torkill Bruland <torkar-b@online.no>
- * @author Rune M. Andersen <rune.andersen@gmail.com>
- * @author Jakob Vad Nielsen (me@jakobnielsen.net)
- * @author Kjell Tore Næsgaard <kjell.t.nasgaard@ntnu.no>
- * @author Knut Staring <knutst@gmail.com>
- * @author Lisa Ditlefsen <lisa@vervesearch.com>
- * @author Erik Pedersen <erik.pedersen@shaw.ca>
- * @author Erik Bjørn Pedersen <erik.pedersen@shaw.ca>
- * @author Rune Rasmussen syntaxerror.no@gmail.com
- * @author Jon Bøe <jonmagneboe@hotmail.com>
- * @author Egil Hansen <egil@rosetta.no>
- */
-$lang['admin_acl']             = 'Administrasjon av lister for adgangskontroll (ACL)';
-$lang['acl_group']             = 'Gruppe:';
-$lang['acl_user']              = 'Bruker:';
-$lang['acl_perms']             = 'Rettigheter for';
-$lang['page']                  = 'Side';
-$lang['namespace']             = 'Navnerom';
-$lang['btn_select']            = 'Velg';
-$lang['p_user_id']             = 'Bruker <b class="acluser">%s</b> har for tiden følgende tillatelser i for siden  <b class="aclpage">%s</b>: <i>%s</i>.';
-$lang['p_user_ns']             = 'Bruker <b class="acluser">%s</b> har for tiden følgende tillatelser i navnerom <b class="aclns">%s</b>: <i>%s</i>.';
-$lang['p_group_id']            = 'Medlemmer av gruppe <b class="aclgroup">%s</b> har for tiden følgende tillatelser i for siden <b class="aclpage">%s</b>: <i>%s</i>.';
-$lang['p_group_ns']            = 'Medlemmer av gruppe <b class="aclgroup">%s</b> har for tiden følgende tillatelser i navnerom <b class="aclns">%s</b>: <i>%s</i>.';
-$lang['p_choose_id']           = '<b>Før inn en bruker eller gruppe</b> i skjemaet over for å vise eller redigere tillatelser satt for siden <b class="aclpage">%s</b>.';
-$lang['p_choose_ns']           = '<b>Før inn en bruker eller gruppe</b> i skjemaet over for å vise eller redigere tillatelser satt for navnerommet <b class="aclns">%s</b>.';
-$lang['p_inherited']           = 'Merk: Disse tillatelser ble ikke eksplisitt satt, men ble arvet fra andre grupper eller høyere navnerom.';
-$lang['p_isadmin']             = 'Merk: Den valgte gruppen eller bruker har altid fulle tillatelser fordi vedkommende er konfigurert som superbruker.';
-$lang['p_include']             = 'Høyere tillgangsrettigheter inkluderer lavere. Rettigheter for å opprette, laste opp og slette gjelder bare  for navnerom, ikke enkeltsider.';
-$lang['current']               = 'Gjeldende ACL-regler';
-$lang['where']                 = 'Side/Navnerom';
-$lang['who']                   = 'Bruker/Gruppe';
-$lang['perm']                  = 'Rettigheter';
-$lang['acl_perm0']             = 'Ingen';
-$lang['acl_perm1']             = 'Lese';
-$lang['acl_perm2']             = 'Redigere';
-$lang['acl_perm4']             = 'Opprette';
-$lang['acl_perm8']             = 'Laste opp';
-$lang['acl_perm16']            = 'Slette';
-$lang['acl_new']               = 'Legg til ny oppføring';
-$lang['acl_mod']               = 'Endre oppføring';
diff --git a/wiki/lib/plugins/acl/lang/pl/help.txt b/wiki/lib/plugins/acl/lang/pl/help.txt
deleted file mode 100644
index 331fd2a..0000000
--- a/wiki/lib/plugins/acl/lang/pl/help.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-=== Pomoc ===
-
-Na tej stronie możesz zmienić uprawnienia do stron i katalogów w wiki.
-
-Lewy panel pokazuje wszystkie dostępne katalogi i strony.
-
-Formularz powyżej pozwala wyświetlać uprawnienia wybranego użytkownika oraz grupy.
-
-W tabeli poniżej znajdują się wszystkie aktywne reguły dotyczące uprawnień.
-
-Więcej informacji na temat uprawnień w DokuWiki możesz znaleźć w [[doku>acl|oficjalnej dokumentacji uprawnień]].
diff --git a/wiki/lib/plugins/acl/lang/pl/lang.php b/wiki/lib/plugins/acl/lang/pl/lang.php
deleted file mode 100644
index 2d2f91e..0000000
--- a/wiki/lib/plugins/acl/lang/pl/lang.php
+++ /dev/null
@@ -1,45 +0,0 @@
-<?php
-
-/**
- * @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>
- * @author Sławomir Boczek <slawkens@gmail.com>
- * @author sleshek <sleshek@wp.pl>
- * @author Leszek Stachowski <shazarre@gmail.com>
- * @author maros <dobrimaros@yahoo.pl>
- * @author Grzegorz Widła <dzesdzes@gmail.com>
- * @author Åukasz Chmaj <teachmeter@gmail.com>
- * @author Begina Felicysym <begina.felicysym@wp.eu>
- * @author Aoi Karasu <aoikarasu@gmail.com>
- */
-$lang['admin_acl']             = 'ZarzÄ…dzanie uprawnieniami';
-$lang['acl_group']             = 'Grupa:';
-$lang['acl_user']              = 'Użytkownik:';
-$lang['acl_perms']             = 'Uprawnienia użytkownika';
-$lang['page']                  = 'Strona';
-$lang['namespace']             = 'Katalog';
-$lang['btn_select']            = 'Wybierz';
-$lang['p_user_id']             = 'Użytkownik <b class="acluser">%s</b> posiada następujące uprawnienia do strony <b class="aclpage">%s</b>: <i>%s</i>.';
-$lang['p_user_ns']             = 'Użytkownik <b class="acluser">%s</b> posiada następujące uprawnienia do katalogów <b class="aclns">%s</b>: <i>%s</i>.';
-$lang['p_group_id']            = 'Członkowie grupy <b class="aclgroup">%s</b> posiadają następujące uprawnienia do strony <b class="aclpage">%s</b>: <i>%s</i>.';
-$lang['p_group_ns']            = 'Członkowie grupy <b class="aclgroup">%s</b> posiadają następujące uprawnienia do katalogu <b class="aclns">%s</b>: <i>%s</i>.';
-$lang['p_choose_id']           = 'Podaj <b>nazwę użytkownika lub grupy</b> w powyższym formularzu, by wyświetlić lub zmienić uprawnienia do strony <b class="aclpage">%s</b>.';
-$lang['p_choose_ns']           = 'Podaj <b>nazwę użytkownika lub grupy</b> w powyższym formularzu, by wyświetlić lub zmienić uprawnienia do katalogu <b class="aclns">%s</b>.';
-$lang['p_inherited']           = 'Uwaga: Uprawnienia nie zostały nadane wprost ale są dziedziczone z grupy lub katalogu.';
-$lang['p_isadmin']             = 'Uwaga: Wybrana grupa lub użytkownika zawsze dysponuje pełnymi uprawnieniami ponieważ posiada uprawnienia administratora.';
-$lang['p_include']             = 'Szersze uprawnienia zawierają węższe. Tworzenie, przesyłanie plików oraz usuwanie mają znaczenie tylko dla katalogów, nie dla stron.';
-$lang['current']               = 'Aktywne reguły zarządzania uprawnieniami';
-$lang['where']                 = 'Strona/Katalog';
-$lang['who']                   = 'Użytkownik/Grupa';
-$lang['perm']                  = 'Uprawnienie';
-$lang['acl_perm0']             = 'Żadne';
-$lang['acl_perm1']             = 'Czytanie';
-$lang['acl_perm2']             = 'Zmiana';
-$lang['acl_perm4']             = 'Tworzenie';
-$lang['acl_perm8']             = 'Przesyłanie plików';
-$lang['acl_perm16']            = 'Usuwanie';
-$lang['acl_new']               = 'Dodaj nowy wpis';
-$lang['acl_mod']               = 'Zmień wpis';
diff --git a/wiki/lib/plugins/acl/lang/pt-br/help.txt b/wiki/lib/plugins/acl/lang/pt-br/help.txt
deleted file mode 100644
index b2a49a9..0000000
--- a/wiki/lib/plugins/acl/lang/pt-br/help.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-=== Ajuda rápida: ===
-
-Nessa página você pode adicionar e remover permissões para espaços de nomes e páginas do seu wiki.
-
-O painel à esquerda mostra todos os espaços de nomes e páginas disponíveis.
-
-O formulário acima permite a visualização e modificação das permissões de um determinado usuário ou grupo.
-
-Na tabela abaixo são exibidas todas as regras de controle de acesso definidas. Você pode usá-la para excluir ou mudar rapidamente várias regras.
-
-A leitura da [[doku>acl|documentação oficial sobre ACL]] pode ajudar a compreender melhor como o controle de acessos funciona no DokuWiki.
diff --git a/wiki/lib/plugins/acl/lang/pt-br/lang.php b/wiki/lib/plugins/acl/lang/pt-br/lang.php
deleted file mode 100644
index 466a2d2..0000000
--- a/wiki/lib/plugins/acl/lang/pt-br/lang.php
+++ /dev/null
@@ -1,48 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Luis Fernando Enciso <lfenciso@certto.com.br>
- * @author Alauton/Loug
- * @author Frederico Gonçalves Guimarães <frederico@teia.bio.br>
- * @author Felipe Castro <fefcas@gmail.com>
- * @author Lucien Raven <lucienraven@yahoo.com.br>
- * @author Enrico Nicoletto <liverig@gmail.com>
- * @author Flávio Veras <flaviove@gmail.com>
- * @author Jeferson Propheta <jeferson.propheta@gmail.com>
- * @author jair.henrique <jair.henrique@gmail.com>
- * @author Luis Dantas <luis@dantas.com>
- * @author Sergio Motta <sergio@cisne.com.br>
- * @author Isaias Masiero Filho <masiero@masiero.org>
- * @author Balaco Baco <balacobaco@imap.cc>
- * @author Victor Westmann <victor.westmann@gmail.com>
- */
-$lang['admin_acl']             = 'Administração da Lista de Controles de Acesso';
-$lang['acl_group']             = 'Grupo:';
-$lang['acl_user']              = 'Usuário:';
-$lang['acl_perms']             = 'Permissões para';
-$lang['page']                  = 'Página';
-$lang['namespace']             = 'Espaço de nomes';
-$lang['btn_select']            = 'Selecionar';
-$lang['p_user_id']             = 'O usuário <b class="acluser">%s</b> possui as seguintes permissões na página <b class="aclpage">%s</b>: <i>%s</i>.';
-$lang['p_user_ns']             = 'O usuário <b class="acluser">%s</b> possui as seguintes permissões no espaço de nomes <b class="aclns">%s</b>: <i>%s</i>.';
-$lang['p_group_id']            = 'Os membros do grupo <b class="aclgroup">%s</b> possuem as seguintes permissões na página <b class="aclpage">%s</b>: <i>%s</i>.';
-$lang['p_group_ns']            = 'Os membros do grupo <b class="aclgroup">%s</b> possuem as seguintes permissões no espaço de nomes <b class="aclpage">%s</b>: <i>%s</i>.';
-$lang['p_choose_id']           = 'Por favor <b>digite um usuário ou grupo</b> no formulário acima para ver ou editar as permissões para a página <b class="aclpage">%s</b>.';
-$lang['p_choose_ns']           = 'Por favor <b>digite um usuário ou grupo</b> no formulário acima para ver ou editar as permissões para o espaço de nomes <b class="aclpage">%s</b>.';
-$lang['p_inherited']           = 'Nota: Essas permissões não foram definidas explicitamente, mas sim herdadas de outros grupos ou espaço de nomes superiores.';
-$lang['p_isadmin']             = 'Nota: O grupo ou usuário selecionado sempre tem permissões completas, porque ele está configurado como superusuário.';
-$lang['p_include']             = 'As permissões superiores incluem as inferiores. Permissões para Criar, Enviar e Apagar aplicam-se apenas aos espaços de nomes e não às páginas.';
-$lang['current']               = 'Regras atuais da ACL';
-$lang['where']                 = 'Página/Espaço de nomes';
-$lang['who']                   = 'Usuário/Grupo';
-$lang['perm']                  = 'Permissões';
-$lang['acl_perm0']             = 'Nenhuma';
-$lang['acl_perm1']             = 'Ler';
-$lang['acl_perm2']             = 'Editar';
-$lang['acl_perm4']             = 'Criar';
-$lang['acl_perm8']             = 'Enviar';
-$lang['acl_perm16']            = 'Excluir';
-$lang['acl_new']               = 'Adicionar nova entrada';
-$lang['acl_mod']               = 'Modificar a entrada';
diff --git a/wiki/lib/plugins/acl/lang/pt/help.txt b/wiki/lib/plugins/acl/lang/pt/help.txt
deleted file mode 100644
index cf4619d..0000000
--- a/wiki/lib/plugins/acl/lang/pt/help.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-=== Auxílio Rápido ===
-
-Nesta página podes adicionar e remover permissões para espaço de nomes e páginas no seu wiki.
-
-O painel esquerdo exibe todos os espaço de nomes e páginas. O formulario acima permite a visualização e modificar as permissões de um selecionado utilizador ou grupo.
-
-Na tabela inferior são exibidas todas as actuais regras de controle de acesso. Podes utilisá-la para excluir ou mudar rapidamente várias regras ao mesmo tempo.
-
-A leitura da [[doku>acl|documentação oficial acerca ACL]] pode ajudar a compreender melhor como o controle de acessos funciona no DokuWiki.
diff --git a/wiki/lib/plugins/acl/lang/pt/lang.php b/wiki/lib/plugins/acl/lang/pt/lang.php
deleted file mode 100644
index eb77cba..0000000
--- a/wiki/lib/plugins/acl/lang/pt/lang.php
+++ /dev/null
@@ -1,40 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author José Carlos Monteiro <jose.c.monteiro@netcabo.pt>
- * @author José Monteiro <Jose.Monteiro@DoWeDo-IT.com>
- * @author Enrico Nicoletto <liverig@gmail.com>
- * @author Fil <fil@meteopt.com>
- * @author André Neves <drakferion@gmail.com>
- * @author José Campos zecarlosdecampos@gmail.com
- */
-$lang['admin_acl']             = 'Gestão de ACLs';
-$lang['acl_group']             = 'Grupo:';
-$lang['acl_user']              = 'Utilizador:';
-$lang['acl_perms']             = 'Permissão para';
-$lang['page']                  = 'Documento';
-$lang['namespace']             = 'Namespace';
-$lang['btn_select']            = 'Selecionar';
-$lang['p_user_id']             = 'O utilizador <b class="acluser">%s</b> tem as seguintes permissões na página <b class="aclpage">%s</b>: <i>%s</i>.';
-$lang['p_user_ns']             = 'O utilizador <b class="acluser">%s</b> tem as seguintes permissões no espaço de nomes <b class="aclns">%s</b>: <i>%s</i>.';
-$lang['p_group_id']            = 'Os membros do grupo <b class="aclgroup">%s</b> têm as seguintes permissões na página <b class="aclpage">%s</b>: <i>%s</i>.';
-$lang['p_group_ns']            = 'Os membros do grupo <b class="aclgroup">%s</b> têm as seguintes permissões no espaço de nomes <b class="aclpage">%s</b>: <i>%s</i>.';
-$lang['p_choose_id']           = 'Por favor <b>digite um utilizador ou grupo</b> no formulário acima para ver ou editar as permissões para a página <b class="aclpage">%s</b>.';
-$lang['p_choose_ns']           = 'Por favor <b>digite um utilizador ou grupo</b> no formulário acima para ver ou editar as permissões para o espaço de nomes <b class="aclpage">%s</b>.';
-$lang['p_inherited']           = 'Nota: Essas permissões não foram definidas explicitamente, mas sim herdadas de outros grupos ou espaço de nomes superiores.';
-$lang['p_isadmin']             = 'Nota: O grupo ou utilizador seleccionado tem sempre permissões completas, porque ele está configurado como superutilizador.';
-$lang['p_include']             = 'As permissões superiores incluem as inferiores. Permissões para Criar, Enviar e Apagar aplicam-se apenas aos espaços de nomes e não às páginas.';
-$lang['current']               = 'Regras Actuais ACL';
-$lang['where']                 = 'Página/Espaço de Nomes';
-$lang['who']                   = 'Utilizador/Grupo';
-$lang['perm']                  = 'Permissões';
-$lang['acl_perm0']             = 'Nenhum';
-$lang['acl_perm1']             = 'Ler';
-$lang['acl_perm2']             = 'Editar';
-$lang['acl_perm4']             = 'Criar';
-$lang['acl_perm8']             = 'Carregar';
-$lang['acl_perm16']            = 'Remover';
-$lang['acl_new']               = 'Adicionar nova entrada';
-$lang['acl_mod']               = 'Modificar Entrada';
diff --git a/wiki/lib/plugins/acl/lang/ro/help.txt b/wiki/lib/plugins/acl/lang/ro/help.txt
deleted file mode 100644
index 3f76261..0000000
--- a/wiki/lib/plugins/acl/lang/ro/help.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-=== Quick Help: ===
-
-Pe această pagină puteţi adăuga şi elimina autorizaţiile pentru spaţiile de nume şi paginile din wiki.
-
-Panoul din stânga afişează toate spaţiile de nume şi paginile disponibile.
-
-Formularul de sus vă permite să vedeţi şi să modificaţi autorizaţiile unui anume utilizator sau grup.
-
-In tabelul de jos sunt arătate toate regulile de control a accesului setate. Îl puteţi folosi pentru a şterge sau modifica rapid mai multe reguli.
-
-Consultarea [[doku>acl|official documentation on ACL]] vă poate ajuta să înţelegeţi deplin cum funcţionează controlul accesului în DocuWiki.
\ No newline at end of file
diff --git a/wiki/lib/plugins/acl/lang/ro/lang.php b/wiki/lib/plugins/acl/lang/ro/lang.php
deleted file mode 100644
index 804bc80..0000000
--- a/wiki/lib/plugins/acl/lang/ro/lang.php
+++ /dev/null
@@ -1,43 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Sergiu Baltariu <s_baltariu@yahoo.com>
- * @author s_baltariu@yahoo.com
- * @author Emanuel-Emeric Andrasi <n30@mandrivausers.ro>
- * @author Emanuel-Emeric Andrași <n30@mandrivausers.ro>
- * @author Emanuel-Emeric AndraÅŸi <em.andrasi@mandrivausers.ro>
- * @author Emanuel-Emeric Andrasi <em.andrasi@mandrivausers.ro>
- * @author Marius OLAR <olarmariusalex@gmail.com>
- * @author Marius Olar <olarmariusalex@yahoo.com>
- * @author Emanuel-Emeric Andrași <em.andrasi@mandrivausers.ro>
- */
-$lang['admin_acl']             = 'Managementul Listei de Control a Accesului';
-$lang['acl_group']             = 'Grup:';
-$lang['acl_user']              = 'Utilizator:';
-$lang['acl_perms']             = 'Autorizare pentru';
-$lang['page']                  = 'Pagina';
-$lang['namespace']             = 'Spaţiu de nume';
-$lang['btn_select']            = 'Selectează';
-$lang['p_user_id']             = 'Utilizatorul <b class="acluser">%s</b> are următoarele autorizaţii pe pagină <b class="aclpage">%s</b>: <i>%s</i>.';
-$lang['p_user_ns']             = 'Utilizatorul <b class="acluser">%s</b> are următoarele autorizaţii pe spaţiul de nume <b class="aclns">%s</b>: <i>%s</i>.';
-$lang['p_group_id']            = 'Membrii grupului <b class="aclgroup">%s</b> au următoarele autorizaţii pe pagină <b class="aclpage">%s</b>: <i>%s</i>.';
-$lang['p_group_ns']            = 'Membrii grupului <b class="aclgroup">%s</b> au următoarele autorizaţii pe spaţiul de nume <b class="aclns">%s</b>: <i>%s</i>.';
-$lang['p_choose_id']           = '<b>Introduceţi un utilizator sau un grup</b> în formularul de mai sus pentru a vizualiza sau edita autorizaţiile paginii <b class="aclpage">%s</b>.';
-$lang['p_choose_ns']           = '<b>Introduceţi un utilizator sau un grup</b> în formularul de mai sus pentru a vizualiza sau edita autorizaţiile spaţiului de nume <b class="aclns">%s</b>.';
-$lang['p_inherited']           = 'Notă: Aceste autorizaţii nu au fost setate explicit ci au fost moştenite de la alte grupuri sau spaţii de nume superioare ierarhic.';
-$lang['p_isadmin']             = 'Notă: Grupul sau utilizatorul selectat are intotdeauna toate autorizatiile întrucât este configurat ca superutilizator.';
-$lang['p_include']             = 'Permisiunile superioare le includ pe cele inferioare. Permisiunile de Creare, Upload şi Ştergere se aplică doar numelor de spaţiu, nu paginilor.';
-$lang['current']               = 'Reguli ACL actuale';
-$lang['where']                 = 'Pagină/Spaţiu de nume';
-$lang['who']                   = 'Utilizator/Grup';
-$lang['perm']                  = 'Autorizaţii';
-$lang['acl_perm0']             = 'Nici una';
-$lang['acl_perm1']             = 'Citire';
-$lang['acl_perm2']             = 'Editare';
-$lang['acl_perm4']             = 'Creare';
-$lang['acl_perm8']             = 'Încărcare';
-$lang['acl_perm16']            = 'Åžtergere';
-$lang['acl_new']               = 'Adaugă intrare nouă';
-$lang['acl_mod']               = 'Modifică intrare';
diff --git a/wiki/lib/plugins/acl/lang/ru/help.txt b/wiki/lib/plugins/acl/lang/ru/help.txt
deleted file mode 100644
index e1b76c2..0000000
--- a/wiki/lib/plugins/acl/lang/ru/help.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-=== ÐšÑ€Ð°Ñ‚ÐºÐ°Ñ Ñправка ===
-
-Ðа Ñтой Ñтранице вы можете добавить или удалить права доÑтупа к проÑтранÑтвам имён и Ñтраницам Ñвоей вики.
-  * Ðа панели Ñлева отображены доÑтупные проÑтранÑтва имён и Ñтраницы.
-  * Форма выше позволÑет вам проÑмотреть и изменить права доÑтупа Ð´Ð»Ñ Ð²Ñ‹Ð±Ñ€Ð°Ð½Ð½Ð¾Ð³Ð¾ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¸Ð»Ð¸ группы.
-  * Текущие права доÑтупа отображены в таблице ниже. Ð’Ñ‹ можете иÑпользовать её Ð´Ð»Ñ Ð±Ñ‹Ñтрого ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ Ð¸Ð»Ð¸ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð°Ð²Ð¸Ð».
-
-Прочтение  [[doku>acl|официальной документации по правам доÑтупа]] может помочь вам в полном понимании работы ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð°Ð²Ð°Ð¼Ð¸ доÑтупа в «Докувики».
diff --git a/wiki/lib/plugins/acl/lang/ru/lang.php b/wiki/lib/plugins/acl/lang/ru/lang.php
deleted file mode 100644
index 5dfbced..0000000
--- a/wiki/lib/plugins/acl/lang/ru/lang.php
+++ /dev/null
@@ -1,46 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Denis Simakov <akinoame1@gmail.com>
- * @author Змей ЭтерийÑкий <evil_snake@eternion.ru>
- * @author Hikaru Nakajima <jisatsu@mail.ru>
- * @author Alexei Tereschenko <alexeitlex@yahoo.com>
- * @author Alexander Sorkin <kibizoid@gmail.com>
- * @author Kirill Krasnov <krasnovforum@gmail.com>
- * @author Vlad Tsybenko <vlad.development@gmail.com>
- * @author Aleksey Osadchiy <rfc@nm.ru>
- * @author Aleksandr Selivanov <alexgearbox@gmail.com>
- * @author Ladyko Andrey <fylh@succexy.spb.ru>
- * @author Eugene <windy.wanderer@gmail.com>
- * @author Johnny Utah <pcpa@cyberpunk.su>
- */
-$lang['admin_acl']             = 'Управление ÑпиÑками ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»Ñ Ð´Ð¾Ñтупа';
-$lang['acl_group']             = 'Группа:';
-$lang['acl_user']              = 'Пользователь:';
-$lang['acl_perms']             = 'Права доÑтупа длÑ';
-$lang['page']                  = 'Страница';
-$lang['namespace']             = 'ПроÑтранÑтво имён';
-$lang['btn_select']            = 'Выбрать';
-$lang['p_user_id']             = 'Ð¡ÐµÐ¹Ñ‡Ð°Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»ÑŒ <b class="acluser">%s</b> имеет Ñледующие права на доÑтуп к Ñтранице <b class="aclpage">%s</b>: <i>%s</i>.';
-$lang['p_user_ns']             = 'Ð¡ÐµÐ¹Ñ‡Ð°Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»ÑŒ <b class="acluser">%s</b> имеет Ñледующие права на доÑтуп к проÑтранÑтву имён <b class="aclns">%s</b>: <i>%s</i>.';
-$lang['p_group_id']            = 'Ð¡ÐµÐ¹Ñ‡Ð°Ñ Ñ‡Ð»ÐµÐ½Ñ‹ группы <b class="aclgroup">%s</b> имеют Ñледующие права на доÑтуп к Ñтранице <b class="aclpage">%s</b>: <i>%s</i>.';
-$lang['p_group_ns']            = 'Ð¡ÐµÐ¹Ñ‡Ð°Ñ Ñ‡Ð»ÐµÐ½Ñ‹ группы <b class="aclgroup">%s</b> имеют Ñледующие права на доÑтуп к проÑтранÑтву имён <b class="aclns">%s</b>: <i>%s</i>.';
-$lang['p_choose_id']           = 'ПожалуйÑта, <b>введите Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¸Ð»Ð¸ группу</b> в форме выше, чтобы проÑмотреть или отредактировать права на доÑтуп к Ñтранице <b class="aclpage">%s</b>.';
-$lang['p_choose_ns']           = 'ПожалуйÑта, <b>введите Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¸Ð»Ð¸ группу</b> в форме выше, чтобы проÑмотреть или отредактировать права на доÑтуп к проÑтранÑтву имён <b class="aclns">%s</b>.';
-$lang['p_inherited']           = 'Замечание: Ñти права доÑтупа не были заданы Ñвно, а были унаÑледованы от других групп или проÑтранÑтв имён более выÑокого порÑдка.';
-$lang['p_isadmin']             = 'Замечание: выбранный пользователь вÑегда имеет полные права, так как он ÑвлÑетÑÑ Ñуперпользователем.';
-$lang['p_include']             = 'Более выÑокие права доÑтупа включают в ÑÐµÐ±Ñ Ð±Ð¾Ð»ÐµÐµ низкие. Права доÑтупа «Создание», «Загрузка» и «Удаление» отноÑÑÑ‚ÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ к проÑтранÑтвам имён, а не к Ñтраницам.';
-$lang['current']               = 'Текущие права ACL';
-$lang['where']                 = 'Страница/ПроÑтранÑтво имён';
-$lang['who']                   = 'Пользователь/Группа';
-$lang['perm']                  = 'Права доÑтупа';
-$lang['acl_perm0']             = 'Ðет доÑтупа';
-$lang['acl_perm1']             = 'Чтение';
-$lang['acl_perm2']             = 'Правка';
-$lang['acl_perm4']             = 'Создание';
-$lang['acl_perm8']             = 'Загрузка файлов';
-$lang['acl_perm16']            = 'Удаление';
-$lang['acl_new']               = 'Добавить новую запиÑÑŒ';
-$lang['acl_mod']               = 'Отредактировать запиÑÑŒ';
diff --git a/wiki/lib/plugins/acl/lang/sk/help.txt b/wiki/lib/plugins/acl/lang/sk/help.txt
deleted file mode 100644
index 103a034..0000000
--- a/wiki/lib/plugins/acl/lang/sk/help.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-=== Krátka nápoveda: ===
-
-Na tejto stránke môžete pridávať alebo rušiť oprávnenia pre menné priestory a stránky vo Vašej wiki.
-
-Ľavý panel zobrazuje všetky dostupné menné priestory a stránky.
-
-Formulár zobrazený vyššie Vám dovoľuje prehliadať a meniť oprávnenia pre vybraného používateľa alebo skupinu.
-
-V tabuľke nižšie sú zobrazené vÅ¡etky aktuálne prístupové pravidlá. Môžete v nej rýchlo ruÅ¡iÅ¥ alebo meniÅ¥ viacero pravidiel súÄasne.
-
-PreÄítanie [[doku>acl|oficiálnej dokumentácie ACL]] Vám môže pomôcÅ¥ plne pochopiÅ¥ spôsob ako fungujú prístupové pravidlá (oprávnenia) v DokuWiki.
\ No newline at end of file
diff --git a/wiki/lib/plugins/acl/lang/sk/lang.php b/wiki/lib/plugins/acl/lang/sk/lang.php
deleted file mode 100644
index 0434fe5..0000000
--- a/wiki/lib/plugins/acl/lang/sk/lang.php
+++ /dev/null
@@ -1,38 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Ondrej Vegh <ov@vsieti.sk>
- * @author Michal Mesko <michal.mesko@gmail.com>
- * @author exusik <exusik@gmail.com>
- * @author Martin Michalek <michalek.dev@gmail.com>
- */
-$lang['admin_acl']             = 'Správa zoznamu prístupových práv';
-$lang['acl_group']             = 'Skupina:';
-$lang['acl_user']              = 'Užívateľ:';
-$lang['acl_perms']             = 'Práva pre';
-$lang['page']                  = 'Stránka';
-$lang['namespace']             = 'Menný priestor';
-$lang['btn_select']            = 'Vybrať';
-$lang['p_user_id']             = 'Používateľ <b class="acluser">%s</b> má aktuálne nasledujúce oprávnenia k stránke <b class="aclpage">%s</b>: <i>%s</i>.';
-$lang['p_user_ns']             = 'Používateľ <b class="acluser">%s</b> má aktuálne nasledujúce oprávnenia v mennom priestore <b class="aclns">%s</b>: <i>%s</i>.';
-$lang['p_group_id']            = 'Členovia skupiny <b class="aclgroup">%s</b> majú aktuálne nasledujúce oprávnenia k stránke <b class="aclpage">%s</b>: <i>%s</i>.';
-$lang['p_group_ns']            = 'Členovia skupiny <b class="aclgroup">%s</b> majú aktuálne nasledujúce oprávnenia v mennom priestore <b class="aclns">%s</b>: <i>%s</i>.';
-$lang['p_choose_id']           = 'Prosím <b>zadajte používateľa alebo skupinu</b> do formulára zobrazeného vyššie, aby ste mohli prezerať alebo meniť oprávnenia k stránke <b class="aclpage">%s</b>.';
-$lang['p_choose_ns']           = 'Prosím <b>zadajte používateľa alebo skupinu</b> do formulára zobrazeného vyššie, aby ste mohli prezerať alebo meniť oprávnenia v mennom priestore <b class="aclns">%s</b>.';
-$lang['p_inherited']           = 'Poznámka: Tieto oprávnenia neboli nastavené explicitne, ale boli odvodené z inej skupiny alebo nadradeného menného priestoru.';
-$lang['p_isadmin']             = 'Poznámka: Vybraná skupina alebo používateľ má vždy najvyššie oprávnenia, pretože je vedená/vedený ako správca.';
-$lang['p_include']             = 'Vyššie oprávnenia zahŕňajú nižšie. Oprávnenie Vytvoriť, Nahrať a Zmazať sa vzťahujú iba k menným priestorom, nie ku stránkam.';
-$lang['current']               = 'Aktuálne pravidlá prístupu (ACL)';
-$lang['where']                 = 'Stránka/Menný priestor';
-$lang['who']                   = 'Používateľ/Skupina';
-$lang['perm']                  = 'Povolenia';
-$lang['acl_perm0']             = 'Žiadne';
-$lang['acl_perm1']             = 'Čítať';
-$lang['acl_perm2']             = 'Zmeniť';
-$lang['acl_perm4']             = 'Vytvoriť';
-$lang['acl_perm8']             = 'Nahrať súbor';
-$lang['acl_perm16']            = 'Zmazať';
-$lang['acl_new']               = 'Pridať nový záznam';
-$lang['acl_mod']               = 'Upraviť záznam';
diff --git a/wiki/lib/plugins/acl/lang/sl/help.txt b/wiki/lib/plugins/acl/lang/sl/help.txt
deleted file mode 100644
index ff096ae..0000000
--- a/wiki/lib/plugins/acl/lang/sl/help.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-=== Hitra pomoÄ ===
-
-Na tej strani je mogoÄe dodajati, odstranjevati in spreminjati dovoljenja za delo z wiki stranmi in imenskimi prostori.
-
-Na veli strani so izpisani vsi imenski prostori in strani.
-
-Na obrazcu zgoraj je mogoÄe pregledovati in spreminjati dovoljenja za izbranega uporabnika ali skupino.
-
-V preglednici spodaj so prikazana vsa pravila nadzora. Ta je mogoÄe hitro spreminjati ali brisati.
-
-VeÄ podrobnosti o delovanju nadzora dostopa sistema DokuWiki je mogoÄe najti v [[doku>acl|uradni dokumentaciji ACL]].
diff --git a/wiki/lib/plugins/acl/lang/sl/lang.php b/wiki/lib/plugins/acl/lang/sl/lang.php
deleted file mode 100644
index 9edbe0d..0000000
--- a/wiki/lib/plugins/acl/lang/sl/lang.php
+++ /dev/null
@@ -1,38 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Dejan Levec <webphp@gmail.com>
- * @author BoÅ¡tjan SeniÄar <senicar@gmail.com>
- * @author Gregor Skumavc (grega.skumavc@gmail.com)
- * @author Matej UrbanÄiÄ (mateju@svn.gnome.org)
- */
-$lang['admin_acl']             = 'Upravljanje dostopa';
-$lang['acl_group']             = 'Skupina:';
-$lang['acl_user']              = 'Uporabnik:';
-$lang['acl_perms']             = 'Dovoljenja za';
-$lang['page']                  = 'Stran';
-$lang['namespace']             = 'Imenski prostor';
-$lang['btn_select']            = 'Izberi';
-$lang['p_user_id']             = 'Uporabnik %s ima naslednja dovoljenja za stran %s: %s.';
-$lang['p_user_ns']             = 'Uporabnik %s ima naslednja dovoljenja za imenski prostor %s: %s.';
-$lang['p_group_id']            = 'Uporabniška skupina %s ima naslednja dovoljenja za stran %s: %s.';
-$lang['p_group_ns']            = 'Uporabniška skupina %s ima naslednja dovoljenja za imenski prostor %s: %s.';
-$lang['p_choose_id']           = 'Vnesite ime <b>uporabnika ali skupine</b> v zgornji obrazec za ogled ali urejanje dovoljenj za stran %s.';
-$lang['p_choose_ns']           = 'Vnesite ime <b>uporabnika ali skupine</b> v zgornji obrazec za ogled ali urejanje dovoljenj za imenski prostor %s.';
-$lang['p_inherited']           = 'Opomba: trenutna dovoljenja niso bila posebej doloÄena, temveÄ so bila prevzeta iz drugih skupin ali viÅ¡jih imenskih prostorov.';
-$lang['p_isadmin']             = 'Opomba: izbrana skupina ali uporabnik imajo vsa dovoljenja za spreminjanje, saj so doloÄeni kot skrbniki sistema.';
-$lang['p_include']             = 'ViÅ¡ja dovoljenja vkljuÄujejo tudi nižja. ';
-$lang['current']               = 'Trenutna pravila dostopa';
-$lang['where']                 = 'Stran / Imenski prostor';
-$lang['who']                   = 'Uporabnik/Skupina';
-$lang['perm']                  = 'Dovoljenja';
-$lang['acl_perm0']             = 'NiÄ';
-$lang['acl_perm1']             = 'Preberi';
-$lang['acl_perm2']             = 'Uredi';
-$lang['acl_perm4']             = 'Ustvari';
-$lang['acl_perm8']             = 'Naloži';
-$lang['acl_perm16']            = 'Zbriši';
-$lang['acl_new']               = 'Dodaj nov zapis';
-$lang['acl_mod']               = 'Spremeni zapis';
diff --git a/wiki/lib/plugins/acl/lang/sq/help.txt b/wiki/lib/plugins/acl/lang/sq/help.txt
deleted file mode 100644
index 84a567f..0000000
--- a/wiki/lib/plugins/acl/lang/sq/help.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-=== Ndihmë e Shpejtë: ===
-
-Në këtë faqe mund të shtoni ose hiqni të drejta për hapësira emri dhe faqe në wiki-n tuaj.
-
-Paneli i majtë tregon të gjitha faqet dhe hapësirat e emrit të disponueshme.
-
-Forma më sipër ju lejon të shihni dhe ndryshoni lejet për një grup ose përdorues të përzgjedhur.
-
-Në tabelën më poshtë tregohen të gjitha rregullat e vendosjes së aksesit. Mund ta përdorni për të fshirë shpejt ose ndryshuar shumë rregulla njëkohësisht.
-
-Leximi i [[doku>acl|dokumentimit zyrtar mbi ACL]]  mund t'ju ndihmojë për të kuptuar plotësisht sesi funksionin Kontrolli i Aksesit në DokuWiki.
diff --git a/wiki/lib/plugins/acl/lang/sq/lang.php b/wiki/lib/plugins/acl/lang/sq/lang.php
deleted file mode 100644
index 3edd709..0000000
--- a/wiki/lib/plugins/acl/lang/sq/lang.php
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-/**
- * Albanian language file
- *
- * @author Leonard Elezi leonard.elezi@depinfo.info
- */
-$lang['admin_acl']             = 'Menaxhimi i Listës së Kontrollit të Aksesit';
-$lang['acl_group']             = 'Grup:';
-$lang['acl_user']              = 'Përdorues:';
-$lang['acl_perms']             = 'Të drejta për';
-$lang['page']                  = 'Faqe';
-$lang['namespace']             = 'Hapësira e Emrit';
-$lang['btn_select']            = 'Zgjidh';
-$lang['p_user_id']             = 'Përdoruesi <b class="acluser">%s</b> momentalisht ka të drejtat e mëposhtme mbi faqen <b class="aclpage">%s</b>: <i>%s</i>.';
-$lang['p_user_ns']             = 'Përdoruesi <b class="acluser">%s</b> momentalisht ka të drejtat e mëposhtme mbi hapësirën e emrit <b class="aclns">%s</b>: <i>%s</i>.';
-$lang['p_group_id']            = 'Anëtarët e grupit <b class="aclgroup">%s</b> momentalisht kanë të drejtat e mëposhtme mbi faqen <b class="aclpage">%s</b>: <i>%s</i>.';
-$lang['p_group_ns']            = 'Anëtarët e grupit <b class="aclgroup">%s</b> momentalisht kanë të drejtat e mëposhtme mbi hapësirën e emrit <b class="aclns">%s</b>: <i>%s</i>.';
-$lang['p_choose_id']           = 'Ju lutemi <b>futni një përdorues ose grup</b> në formën e mësipërme për të parë ose ndryshuar bashkësinë e të drejtave për faqen <b class="aclpage">%s</b>.';
-$lang['p_choose_ns']           = 'Ju lutemi <b>futni një përdorues ose grup</b> në formën e mësipërme për të parë ose ndryshuar bashkësinë e të drejtave për hapësirën e emrit <b class="aclns">%s</b>.';
-$lang['p_inherited']           = 'Shënim: Ato të drejta nuk janë vendosur specifikisht por janë të trashëguara nga grupe të tjera ose hapësira emri më të larta.';
-$lang['p_isadmin']             = 'Shënim: Grupi ose përdoruesi i përzgjedhur ka gjithmonë të drejta të plota sepse është konfiguruar si superpërdorues.';
-$lang['p_include']             = 'Të drejtat më të larta i përfshijnë edhe ato më të ultat. Të drejtat Krijo, Ngarko dhe Fshi u aplikohen vetëm hapësirave të emrit, jo faqeve.';
-$lang['current']               = 'Rregullat aktuale ACL';
-$lang['where']                 = 'Faqe/Hapësirë Emri';
-$lang['who']                   = 'Përdorues/Grup';
-$lang['perm']                  = 'Të Drejta';
-$lang['acl_perm0']             = 'Asgjë';
-$lang['acl_perm1']             = 'Lexim';
-$lang['acl_perm2']             = 'Redaktim';
-$lang['acl_perm4']             = 'Krijim';
-$lang['acl_perm8']             = 'Ngarkim';
-$lang['acl_perm16']            = 'Fshi';
-$lang['acl_new']               = 'Shto Hyrje të re';
-$lang['acl_mod']               = 'Ndrysho Hyrje';
diff --git a/wiki/lib/plugins/acl/lang/sr/help.txt b/wiki/lib/plugins/acl/lang/sr/help.txt
deleted file mode 100644
index 0ec8921..0000000
--- a/wiki/lib/plugins/acl/lang/sr/help.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-=== Приручна помоћ: ===
-
-Ðа овој Ñтрани можете додати или уклонити дозволе за Ñтранице и именÑке проÑторе на Вашем викију.
-
-Леви панел приказује Ñве доÑтупне именÑке проÑторе и Ñтранице.
-
-Формулар изнад омогућава приказ и измену дозвола за одабране кориÑнике или групе.
-
-У табели иÑпод Ñу приказане Ñве тренутно поÑтављене дозволе. Можете је кориÑтити за брзо бриÑање или измену више правила.
-
-Читање [[doku>acl|званичне документације о ACL]] Вам може помоћи у потпуном разумевању рада дозвола приÑтупа у DokuWiki-ју.
diff --git a/wiki/lib/plugins/acl/lang/sr/lang.php b/wiki/lib/plugins/acl/lang/sr/lang.php
deleted file mode 100644
index 0ba322a..0000000
--- a/wiki/lib/plugins/acl/lang/sr/lang.php
+++ /dev/null
@@ -1,38 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Filip Brcic <brcha@users.sourceforge.net>
- * @author Иван Петровић petrovicivan@ubuntusrbija.org
- * @author Ivan Petrovic <petrovicivan@ubuntusrbija.org>
- * @author Miroslav Å olti <solti.miroslav@gmail.com>
- */
-$lang['admin_acl']             = 'Управљање лиÑтом контроле приÑтупа';
-$lang['acl_group']             = 'Група:';
-$lang['acl_user']              = 'КориÑник:';
-$lang['acl_perms']             = 'Дозволе за';
-$lang['page']                  = 'Страница';
-$lang['namespace']             = 'ИменÑки проÑтор';
-$lang['btn_select']            = 'Одабери';
-$lang['p_user_id']             = 'КориÑник <b class="acluser">%s</b> тренутно има Ñледеће дозволе за ову Ñтраницу <b class="aclpage">%s</b>: <i>%s</i>.';
-$lang['p_user_ns']             = 'КориÑник <b class="acluser">%s</b> тренутно има Ñледеће дозволе за овај именÑки проÑтор <b class="aclpage">%s</b>: <i>%s</i>.';
-$lang['p_group_id']            = 'Чланови групе <b class="acluser">%s</b> тренутно имају Ñледеће дозволе за ову Ñтраницу <b class="aclpage">%s</b>: <i>%s</i>.';
-$lang['p_group_ns']            = 'Чланови групе <b class="acluser">%s</b> тренутно имају Ñледеће дозволе за овај именÑки проÑтор <b class="aclpage">%s</b>: <i>%s</i>.';
-$lang['p_choose_id']           = 'Молим Ð’Ð°Ñ <b>унеÑите кориÑника или групу</b> у формулар изнад да биÑте приказали или изменили дозволе за Ñтраницу <b class="aclpage">%s</b>.';
-$lang['p_choose_ns']           = 'Молим Ð’Ð°Ñ <b>унеÑите кориÑника или групу</b> у формулар изнад да биÑте приказали или изменили дозволе за именÑки проÑтор <b class="aclpage">%s</b>.';
-$lang['p_inherited']           = 'Ðапомена: Ове дозволе Ñе не поÑтављају екÑплицитно већ Ñамо тамо где Ñе не Ñударају Ñа оÑталим групама или вишем иманÑком проÑтору.';
-$lang['p_isadmin']             = 'Ðапомена: Одабран кориÑник или група има увек пуне дозволе јер је поÑтављен за ÑуперкориÑника.';
-$lang['p_include']             = 'Више дозволе укључују ниже. Дозволе одавања, Ñлања и бриÑања ће бити примењене Ñамо на именÑке проÑторе, не и на Ñтране.';
-$lang['current']               = 'Тренутна правила проÑтупа';
-$lang['where']                 = 'Страница/ИменÑки проÑтор';
-$lang['who']                   = 'КориÑник/Група';
-$lang['perm']                  = 'Дозволе';
-$lang['acl_perm0']             = 'Ðишта';
-$lang['acl_perm1']             = 'Читање';
-$lang['acl_perm2']             = 'Измена';
-$lang['acl_perm4']             = 'Прављење';
-$lang['acl_perm8']             = 'Слање';
-$lang['acl_perm16']            = 'БриÑање';
-$lang['acl_new']               = 'Додај нови уноÑ';
-$lang['acl_mod']               = 'Измени уноÑ';
diff --git a/wiki/lib/plugins/acl/lang/sv/help.txt b/wiki/lib/plugins/acl/lang/sv/help.txt
deleted file mode 100644
index 5ba770f..0000000
--- a/wiki/lib/plugins/acl/lang/sv/help.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-=== Hjälp ===
-På den här sidan kan du lägga till och ta bort åtkomsträttigheter för namnrymder och enstaka sidor i din wiki.
-
-Till vänster visas alla tillgängliga namnrymder och sidor du kan välja.  I formuläret ovanför kan du sedan välja användare eller grupp för vilken åtkomsträttigheterna ska visas eller ändras.
-
-Tabellen nedanför visar samtliga uppsatta regler för åtkomsträttigheter. Den kan du använda för att snabbt ta bort eller ändra flera regler på en gång.
-
-Läs gärna [[doku>acl|den officiella dokumentationen för ACL]] som kan hjälpa dig till fullo förstå hur åtkomsträttigheter fungerar i DokuWiki.
\ No newline at end of file
diff --git a/wiki/lib/plugins/acl/lang/sv/lang.php b/wiki/lib/plugins/acl/lang/sv/lang.php
deleted file mode 100644
index 176a937..0000000
--- a/wiki/lib/plugins/acl/lang/sv/lang.php
+++ /dev/null
@@ -1,43 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Per Foreby <per@foreby.se>
- * @author Nicklas Henriksson <nicklas[at]nihe.se>
- * @author HÃ¥kan Sandell <hakan.sandell@home.se>
- * @author Dennis Karlsson
- * @author Tormod Otter Johansson <tormod@latast.se>
- * @author Pontus Bergendahl <pontus.bergendahl@gmail.com>
- * @author Emil Lind <emil@sys.nu>
- * @author Bogge Bogge <bogge@bogge.com>
- * @author Peter Åström <eaustreum@gmail.com>
- */
-$lang['admin_acl']             = 'Hantera behörighetslistan (ACL)';
-$lang['acl_group']             = 'Grupp:';
-$lang['acl_user']              = 'Användare:';
-$lang['acl_perms']             = 'Behörighet för';
-$lang['page']                  = 'Sida';
-$lang['namespace']             = 'Namnrymd';
-$lang['btn_select']            = 'Välj';
-$lang['p_user_id']             = 'Användaren <b class="acluser">%s</b> har förnärvarande följande rättigheter på sidan <b class="aclpage">%s</b>: <i>%s</i>.';
-$lang['p_user_ns']             = 'Användaren <b class="acluser">%s</b> har för närvarande följande rättigheter i namnrymden <b class="aclns">%s</b>: <i>%s</i>.';
-$lang['p_group_id']            = 'Medlemmar av gruppen <b class="aclgroup">%s</b> har för närvarande följande rättigheter på sidan <b class="aclpage">%s</b>: <i>%s</i>.';
-$lang['p_group_ns']            = 'Medlemmar av gruppen <b class="aclgroup">%s</b> har för närvarande följande rättigheter i namnrymden <b class="aclns">%s</b>: <i>%s</i>.';
-$lang['p_choose_id']           = 'Vänligen <b>ange en användare eller grupp</b> i formuläret ovan för att visa eller ändra rättigheterna för sidan <b class="aclpage">%s</b>.';
-$lang['p_choose_ns']           = 'Vänligen <b>ange en användare eller grupp</b> i formuläret ovan för att visa eller ändra rättigheterna för namnrymden <b class="aclns">%s</b>.';
-$lang['p_inherited']           = 'Notering: De här rättigheterna är inte explicit satta utan var ärvda från andra grupper eller högre namnrymder.';
-$lang['p_isadmin']             = 'Notering: Den valda gruppen eller användaren har alltid fulla rättigheter på grund av att den är konfigurerad som superanvändare.';
-$lang['p_include']             = 'Högre rättigheter inkluderar lägre. Rättigheter för Skapa, Ladda upp och Radera är endast applicerbara namnrymder, inte sidor.';
-$lang['current']               = 'Nuvarande ACL regler';
-$lang['where']                 = 'Sida/Namnrymd';
-$lang['who']                   = 'Användare/Grupp';
-$lang['perm']                  = 'Rättigheter';
-$lang['acl_perm0']             = 'Inga';
-$lang['acl_perm1']             = 'Läsa';
-$lang['acl_perm2']             = 'Redigera';
-$lang['acl_perm4']             = 'Skapa';
-$lang['acl_perm8']             = 'Ladda upp';
-$lang['acl_perm16']            = 'Radera';
-$lang['acl_new']               = 'Lägg till ny behörighet';
-$lang['acl_mod']               = 'Ändra behörighet';
diff --git a/wiki/lib/plugins/acl/lang/th/help.txt b/wiki/lib/plugins/acl/lang/th/help.txt
deleted file mode 100644
index 52edca9..0000000
--- a/wiki/lib/plugins/acl/lang/th/help.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-=== ตัวช่วยอย่างเร็ว ===
-
-ในหน้านี้คุณสามารถเพิ่มà¹à¸¥à¸°à¸–อดสิทธิ์สำหรับเนมสเปซ à¹à¸¥à¸°à¹€à¸žà¸ˆà¹ƒà¸™à¸§à¸´à¸à¸´à¸‚องคุณ
-
-à¹à¸–บด้านซ้ายจะà¹à¸ªà¸”งรายชื่อเนมสเปซ à¹à¸¥à¸°à¹€à¸žà¸ˆà¸—ี่มีอยู่ทั้งหมด
-
-à¹à¸šà¸šà¸Ÿà¸­à¸£à¹Œà¸¡à¸‚้างบนอนุà¸à¸²à¸•ิให้คุณมองเห็น à¹à¸¥à¸°à¹à¸à¹‰à¹„ขสิทธิ์ของผู้ใช้หรือà¸à¸¥à¸¸à¹ˆà¸¡à¸—ี่เลือà¸à¹„ว้ได้
-
-ในตารางด้านล่างได้à¹à¸ªà¸”งà¸à¸à¸„วบคุมà¸à¸²à¸£à¹€à¸‚้าถึงทั้งหมดไว้ คุณสามารถใช้มันลบ หรือเปลี่ยนà¸à¸à¸„รั้งละหลายๆตัวพร้อมà¸à¸±à¸™à¹„ด้อย่างรวดเร็ว
-
-à¸à¸²à¸£à¸­à¹ˆà¸²à¸™ [[doku>acl|official documentation on ACL]] น่าจะช่วยให้คุณเข้าใจวิธีควบคุมà¸à¸²à¸£à¹€à¸‚้าถึงของโดà¸à¸¸à¸§à¸´à¸à¸´à¹„ด้อย่างถ่องà¹à¸—้
\ No newline at end of file
diff --git a/wiki/lib/plugins/acl/lang/th/lang.php b/wiki/lib/plugins/acl/lang/th/lang.php
deleted file mode 100644
index 55b707b..0000000
--- a/wiki/lib/plugins/acl/lang/th/lang.php
+++ /dev/null
@@ -1,28 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author Komgrit Niyomrath <n.komgrit@gmail.com>
- * @author Kittithat Arnontavilas mrtomyum@gmail.com
- * @author Kittithat Arnontavilas <mrtomyum@gmail.com>
- * @author Thanasak Sompaisansin <jombthep@gmail.com>
- */
-$lang['admin_acl']             = 'จัดà¸à¸²à¸£à¸£à¸²à¸¢à¸Šà¸·à¹ˆà¸­à¹€à¸žà¸·à¹ˆà¸­à¸„วบคุมà¸à¸²à¸£à¹€à¸‚้าถึง (Access Control List:ACL)';
-$lang['acl_group']             = 'à¸à¸¥à¸¸à¹ˆà¸¡:';
-$lang['acl_user']              = 'ผู้ใช้:';
-$lang['acl_perms']             = 'สิทธิสำหรับ';
-$lang['page']                  = 'เพจ';
-$lang['namespace']             = 'เนมสเปซ';
-$lang['btn_select']            = 'เลือà¸';
-$lang['where']                 = 'เพจ/เนมสเปซ';
-$lang['who']                   = 'ผู้ใช้/à¸à¸¥à¸¸à¹ˆà¸¡';
-$lang['perm']                  = 'สิทธิ์';
-$lang['acl_perm0']             = 'ไร้สิทธิ์';
-$lang['acl_perm1']             = 'อ่าน';
-$lang['acl_perm2']             = 'à¹à¸à¹‰à¹„ข';
-$lang['acl_perm4']             = 'สร้าง';
-$lang['acl_perm8']             = 'อัพโหลด';
-$lang['acl_perm16']            = 'ลบ';
-$lang['acl_new']               = 'เพิ่มเนื้อหาใหม่';
-$lang['acl_mod']               = 'ปรับà¹à¸à¹‰à¹€à¸™à¸·à¹‰à¸­à¸«à¸²';
diff --git a/wiki/lib/plugins/acl/lang/tr/help.txt b/wiki/lib/plugins/acl/lang/tr/help.txt
deleted file mode 100644
index b467c50..0000000
--- a/wiki/lib/plugins/acl/lang/tr/help.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-=== Hızlı yardım: ===
-
-Bu sayfada Wiki'nizin namespace ve sayfaları için izinleri belirleyebilirsiniz.
-
-Soldaki kısım varolan namespace ve sayfaları listeler.
-
-Yukarıdaki kısım seçilen bir kullanıcı veya grup için izinleri görüp değiştirmenizi sağlar.
-
-Aşağıdaki tablo ise varolan erişim kontrol kurallarını gösterir. Bu tabloyu birden fazla kuralı hızlıca silip değiştirmek için kullanabilirsiniz.
-
-Resmi ACL dökümanını ([[doku>acl|official documentation on ACL]]) okuyarak erişim kontrolünün nasıl çalıştığını öğrenebilirsiniz.
diff --git a/wiki/lib/plugins/acl/lang/tr/lang.php b/wiki/lib/plugins/acl/lang/tr/lang.php
deleted file mode 100644
index 3c3e3db..0000000
--- a/wiki/lib/plugins/acl/lang/tr/lang.php
+++ /dev/null
@@ -1,40 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author Selim FarsakoÄŸlu <farsakogluselim@yahoo.de>
- * @author Aydın Coşkuner <aydinweb@gmail.com>
- * @author Cihan Kahveci <kahvecicihan@gmail.com>
- * @author Yavuz Selim <yavuzselim@gmail.com>
- * @author Caleb Maclennan <caleb@alerque.com>
- * @author farukerdemoncel@gmail.com
- */
-$lang['admin_acl']             = 'Erişim Kontrol Listesi (ACL) Yönetimi';
-$lang['acl_group']             = 'Grup:';
-$lang['acl_user']              = 'Kullanıcı:';
-$lang['acl_perms']             = 'Şunun için yetkiler:';
-$lang['page']                  = 'Sayfa';
-$lang['namespace']             = 'Namespace';
-$lang['btn_select']            = 'Seç';
-$lang['p_user_id']             = '<b class="acluser">%s</b> kullanıcısının şu anda <b class="aclpage">%s</b> sayfası için yetkisi: <i>%s</i>.';
-$lang['p_user_ns']             = '<b class="acluser">%s</b> kullanıcısının şu anda <b class="aclns">%s</b> namesapace\'i için yetkisi: <i>%s</i>.';
-$lang['p_group_id']            = '<b class="aclgroup">%s</b> grubunun şu anda <b class="aclpage">%s</b> sayfası için yetkisi: <i>%s</i>.';
-$lang['p_group_ns']            = '<b class="aclgroup">%s</b> grubunun şu anda <b class="aclns">%s</b> namesapace\'i için yetkisi: <i>%s</i>.';
-$lang['p_choose_id']           = 'Lütfen <b class="aclpage">%s</b> sayfasına izin verilen yetkilerini görmek veya değiştirmek için yukarıdaki forma <b>bir kullanıcı veya grup adı</b> girin.';
-$lang['p_choose_ns']           = 'Lütfen <b class="aclpage">%s</b> namespace\'ie izin verilen yetkileri görmek veya değiştirmek için yukarıdaki forma <b>bir kullanıcı veya grup adı</b> girin.';
-$lang['p_inherited']           = 'Not: Bu izinler doğrudan ayarlanmadan başka grup veya üst namespace\'lerden gelmektedir.';
-$lang['p_isadmin']             = 'Not: Seçili grup veya kullanıcı, "Ana kullanıcı" olarak atandığından tüm izinlere sahiptir.';
-$lang['p_include']             = 'Üst seviye izinler alt izinleri içermektedir. Oluşturma, Yükleme ve Silme yetkisi sadece namespace\'e uygulanmaktadır. Bu yetki sayfalara uygulanmaz.';
-$lang['current']               = 'Şimdiki ACL(İzin Kontrol listesi) kuralları';
-$lang['where']                 = 'Sayfa/Namespace';
-$lang['who']                   = 'Kullanıcı/Grup';
-$lang['perm']                  = 'İzinler';
-$lang['acl_perm0']             = 'Yok';
-$lang['acl_perm1']             = 'Okuma';
-$lang['acl_perm2']             = 'DeÄŸiÅŸtirme';
-$lang['acl_perm4']             = 'OluÅŸturma';
-$lang['acl_perm8']             = 'Yükleme';
-$lang['acl_perm16']            = 'Silme';
-$lang['acl_new']               = 'Yeni giriÅŸ ekle';
-$lang['acl_mod']               = 'Eski giriÅŸi deÄŸiÅŸtirme';
diff --git a/wiki/lib/plugins/acl/lang/uk/help.txt b/wiki/lib/plugins/acl/lang/uk/help.txt
deleted file mode 100644
index d16af0a..0000000
--- a/wiki/lib/plugins/acl/lang/uk/help.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-=== Швидка довідка: ===
-
-Ðа цій Ñторінці ви можете додавати чи знищувати права доÑтупу Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñторів імен чи Ñторінок вашої вікі.
-
-Ліва панель показує вÑÑ– доÑтупні проÑтори імен Ñ– Ñторінки.
-
-Ð’ÐµÑ€Ñ…Ð½Ñ Ñ„Ð¾Ñ€Ð¼Ð° дозволÑÑ” переглÑнути Ñ– редагувати права доÑтупу Ð´Ð»Ñ Ð¾Ð±Ñ€Ð°Ð½Ð¾Ð³Ð¾ кориÑтувача чи групи
-
-Ð’ таблиці знизу показані вÑÑ– оголошені правила доÑтупу. Можете Ñ—Ñ— викориÑтовувати Ð´Ð»Ñ ÑˆÐ²Ð¸Ð´ÐºÐ¾Ð³Ð¾ Ð·Ð½Ð¸Ñ‰ÐµÐ½Ð½Ñ Ñ‡Ð¸ модифікації кількох правил.
-
-Додаткова допомога в [[doku>acl|офіційній документації по ACL]] допоможе вам більше зрозуміти Ñк працює контроль доÑтупу у ДокуВікі.
\ No newline at end of file
diff --git a/wiki/lib/plugins/acl/lang/uk/lang.php b/wiki/lib/plugins/acl/lang/uk/lang.php
deleted file mode 100644
index 05c2596..0000000
--- a/wiki/lib/plugins/acl/lang/uk/lang.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Oleksiy Voronin <ovoronin@gmail.com>
- * @author serg_stetsuk <serg_stetsuk@ukr.net>
- * @author Oleksandr Kunytsia <okunia@gmail.com>
- */
-$lang['admin_acl']             = 'ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ ÑпиÑками контролю доÑтупу';
-$lang['acl_group']             = 'Група:';
-$lang['acl_user']              = 'КориÑтувач:';
-$lang['acl_perms']             = 'Права доÑтупу длÑ';
-$lang['page']                  = 'Сторінка';
-$lang['namespace']             = 'ПроÑтір імен';
-$lang['btn_select']            = 'Вибрати';
-$lang['p_user_id']             = 'КориÑтувач <b class="acluser">%s</b> зараз має такі права доÑтупу до Ñторінки <b class="aclpage">%s</b>: <i>%s</i>.';
-$lang['p_user_ns']             = 'КориÑтувач <b class="acluser">%s</b> зараз має такі права доÑтупу до проÑтору імен <b class="aclns">%s</b>: <i>%s</i>.';
-$lang['p_group_id']            = 'Члени групи <b class="aclgroup">%s</b> зараз мають такі права Ð´Ð»Ñ Ñторінки <b class="aclpage">%s</b>: <i>%s</i>.';
-$lang['p_group_ns']            = 'Члени групи <b class="aclgroup">%s</b> зараз мають такі права доÑтупу до проÑтору імен <b class="aclns">%s</b>: <i>%s</i>.';
-$lang['p_choose_id']           = 'Будь-лаÑка <b>введіть кориÑтувача або групу<b> в поле зверху, щоб подивитиÑÑ Ñ‡Ð¸ змінити права доÑтупу до Ñторінки <b class="aclpage">%s</b>.';
-$lang['p_choose_ns']           = 'Будь-лаÑка <b>введіть кориÑтувача або групу<b> у вікно зверху, щоб подивитиÑÑ Ñ‡Ð¸ змінити права доÑтупу до Ñторінки <b class="aclns">%s</b>.';
-$lang['p_inherited']           = 'Зверніть увагу! Права доÑтупу, не вÑтановлені Ñвно, наÑлідуютьÑÑ Ð²Ñ–Ð´ інших груп чи вищих проÑторів імен.';
-$lang['p_isadmin']             = 'Зверніть увагу! Обрані група чи кориÑтувач завжди мають повні права доÑтупу, оÑкільки вони Ñ” ÑуперкориÑтувачами.';
-$lang['p_include']             = 'Старші права доÑтупу включають молодші. СтвореннÑ, Ð—Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ñ– Ð’Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ Ð·Ð°ÑтоÑовні лише до проÑторів імен.';
-$lang['current']               = 'Поточні правила ACL';
-$lang['where']                 = 'Сторінка/ПроÑтір імен';
-$lang['who']                   = 'КориÑтувач/Група';
-$lang['perm']                  = 'Права доÑтупу';
-$lang['acl_perm0']             = 'Жодних';
-$lang['acl_perm1']             = 'ЧитаннÑ';
-$lang['acl_perm2']             = 'РедагуваннÑ';
-$lang['acl_perm4']             = 'СтвореннÑ';
-$lang['acl_perm8']             = 'ЗавантаженнÑ';
-$lang['acl_perm16']            = 'ВилученнÑ';
-$lang['acl_new']               = 'Додати новий запиÑ';
-$lang['acl_mod']               = 'Змінити запиÑ';
diff --git a/wiki/lib/plugins/acl/lang/vi/help.txt b/wiki/lib/plugins/acl/lang/vi/help.txt
deleted file mode 100644
index 816e5ee..0000000
--- a/wiki/lib/plugins/acl/lang/vi/help.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-=== Trợ giúp nhanh: ===
-
-Trang này giúp bạn thêm hoặc xóa quyá»n được cấp cho 1 thư mục hoặc trang wiki cá»§a bạn.
-
-Của sổ bên trái hiển thị tất cả các thư mục và trang văn bản.
-
-Khung trên đây cho phép bạn xem và sá»­a quyá»n cá»§a má»™t nhóm hoặc thành viên đã chá»n.
-
-Bảng bên dưới hiển thị tất cả các quyá»n được cấp. Bạn có thể sá»­a hoặc hóa các quyá»n đó má»™t cách nhanh chóng.
-
-Äá»c [[doku>acl|tài liệu chính thức vá» ACL]] sẽ giúp bạn hiểu hÆ¡n vá» cách phân quyá»n ở DokuWiki.
-
diff --git a/wiki/lib/plugins/acl/lang/vi/lang.php b/wiki/lib/plugins/acl/lang/vi/lang.php
deleted file mode 100644
index 8ca888c..0000000
--- a/wiki/lib/plugins/acl/lang/vi/lang.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author NukeViet <admin@nukeviet.vn>
- */
-$lang['admin_acl']             = 'Quản lý danh sách quyá»n truy cập';
-$lang['acl_group']             = 'Nhóm:';
-$lang['acl_user']              = 'Thành viên:';
-$lang['acl_perms']             = 'Cấp phép cho';
-$lang['page']                  = 'Trang';
-$lang['namespace']             = 'Thư mục';
-$lang['btn_select']            = 'Chá»n';
-$lang['p_user_id']             = 'Thành viên <b class="acluser">%s</b> hiện tại được cấp phép cho trang <b class="aclpage">%s</b>: <i>%s</i>.';
-$lang['p_user_ns']             = 'Thành viên <b class="acluser">%s</b>  hiện tại được cấp phép cho thư mục <b class="aclns">%s</b>: <i>%s</i>.';
-$lang['p_group_id']            = 'Thành viên trong nhóm <b class="aclgroup">%s</b> hiện tại được cấp phép cho trang <b class="aclpage">%s</b>: <i>%s</i>.';
-$lang['p_group_ns']            = 'Thành viên trong nhóm <b class="aclgroup">%s</b> hiện tại được cấp phép cho thư mục <b class="aclns">%s</b>: <i>%s</i>.';
-$lang['p_choose_id']           = 'Hãy <b>nhập tên thành viên hoặc nhóm</b> vào ô trên đây để xem hoặc sá»­a quyá»n đã thiết đặt cho trang <b class="aclpage">%s</b>.';
-$lang['p_choose_ns']           = 'Hãy <b>nhập tên thành viên hoặc nhóm</b> vào ô trên đây để xem hoặc sá»­a quyá»n đã thiết đặt cho thư mục <b class="aclns">%s</b>.';
-$lang['p_inherited']           = 'Ghi chú: Có những quyá»n không được thể hiện ở đây nhưng nó được cấp phép từ những nhóm hoặc thư mục cấp cao.';
-$lang['p_isadmin']             = 'Ghi chú: Nhóm hoặc thành viên này luôn được cấp đủ quyá»n vì há» là Quản trị tối cao';
-$lang['p_include']             = 'Má»™t số quyá»n thấp được thể hiện ở mức cao hÆ¡n. Quyá»n tạo, tải lên và xóa chỉ dành cho thư mục, không dành cho trang.';
-$lang['current']               = 'Danh sách quyá»n truy cập hiện tại';
-$lang['where']                 = 'Trang/Thư mục';
-$lang['who']                   = 'Thành viên/Nhóm';
-$lang['perm']                  = 'Quyá»n';
-$lang['acl_perm0']             = 'Không';
-$lang['acl_perm1']             = 'Äá»c';
-$lang['acl_perm2']             = 'Sá»­a';
-$lang['acl_perm4']             = 'Tạo';
-$lang['acl_perm8']             = 'Tải lên';
-$lang['acl_perm16']            = 'Xóa';
-$lang['acl_new']               = 'Thêm mục mới';
-$lang['acl_mod']               = 'Sá»­a';
diff --git a/wiki/lib/plugins/acl/lang/zh-tw/help.txt b/wiki/lib/plugins/acl/lang/zh-tw/help.txt
deleted file mode 100644
index 2d1c84b..0000000
--- a/wiki/lib/plugins/acl/lang/zh-tw/help.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-=== 快速指å—: ===
-
-ä½ å¯ä»¥ç”¨é€™å€‹é é¢ï¼Œç‚ºæœ¬ wiki 中的分類å稱或é é¢å¢žåŠ æˆ–ç§»é™¤æ¬Šé™ã€‚
-
-å·¦æ–¹é¢æ¿é¡¯ç¤ºäº†æ‰€æœ‰åˆ†é¡žå稱和é é¢ã€‚
-
-上方表格å…許你觀看åŠä¿®æ”¹é¸å–的使用者或群組的權é™ã€‚
-
-ä¸‹æ–¹è¡¨æ ¼é¡¯ç¤ºäº†ç›®å‰æ‰€æœ‰çš„å­˜å–æŽ§åˆ¶è¡¨ (ACL),你å¯ä»¥ç”¨å®ƒå¿«é€Ÿåˆªé™¤æˆ–更改多項è¦å‰‡ã€‚
-
-閱讀 [[doku>acl|official documentation on ACL]] å¯ä»¥å¹«åŠ©ä½ å®Œæ•´åœ°äº†è§£ DokuWiki å­˜å–æŽ§åˆ¶çš„é‹ä½œã€‚
\ No newline at end of file
diff --git a/wiki/lib/plugins/acl/lang/zh-tw/lang.php b/wiki/lib/plugins/acl/lang/zh-tw/lang.php
deleted file mode 100644
index c377272..0000000
--- a/wiki/lib/plugins/acl/lang/zh-tw/lang.php
+++ /dev/null
@@ -1,44 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author chinsan <chinsan@mail2000.com.tw>
- * @author Li-Jiun Huang <ljhuang.tw@gmail.com>
- * @author http://www.chinese-tools.com/tools/converter-simptrad.html
- * @author Wayne San <waynesan@zerozone.tw>
- * @author Li-Jiun Huang <ljhuang.tw@gmai.com>
- * @author Cheng-Wei Chien <e.cwchien@gmail.com>
- * @author Danny Lin <danny0838@pchome.com.tw>
- * @author Shuo-Ting Jian <shoting@gmail.com>
- * @author syaoranhinata@gmail.com
- * @author Ichirou Uchiki <syaoranhinata@gmail.com>
- */
-$lang['admin_acl']             = '管ç†å­˜å–控制表 (ACL)';
-$lang['acl_group']             = '群組:';
-$lang['acl_user']              = '使用者:';
-$lang['acl_perms']             = 'è¨­å®šæ¬Šé™æ–¼';
-$lang['page']                  = 'é é¢';
-$lang['namespace']             = '分類å稱';
-$lang['btn_select']            = '鏿“‡';
-$lang['p_user_id']             = '使用者 <b class="acluser">%s</b> ç›®å‰åœ¨é é¢ <b class="aclpage">%s</b> è£æ“有以下權é™ï¼š<i>%s</i>。';
-$lang['p_user_ns']             = '使用者 <b class=\"acluser\">%s</b> ç›®å‰åœ¨åˆ†é¡žå稱 <b class=\"aclns\">%s</b> è£æ“有以下權é™ï¼š<i>%s</i>。';
-$lang['p_group_id']            = '群組 <b class="aclgroup">%s</b> çš„æˆå“¡ç›®å‰åœ¨é é¢ <b class="aclpage">%s</b> è£æ“有以下權é™ï¼š<i>%s</i>。';
-$lang['p_group_ns']            = '群組 <b class=\"aclgroup\">%s</b> çš„æˆå“¡ç›®å‰åœ¨åˆ†é¡žå稱 <b class=\"aclns\">%s</b> è£æ“有以下權é™ï¼š<i>%s</i>。';
-$lang['p_choose_id']           = '請在上方表格<b>輸入使用者或群組</b>以檢視或編輯é é¢ <b class="aclpage">%s</b> 的權é™è¨­å®šã€‚';
-$lang['p_choose_ns']           = '請在上方表格<b>輸入使用者或群組</b>以檢視或編輯分類å稱 <b class=\"aclns\">%s</b> 的權é™è¨­å®šã€‚';
-$lang['p_inherited']           = '注æ„:這些權é™ä¸¦æœªæ˜Žç¢ºæŒ‡å®šï¼Œå®ƒå€‘是從群組或上層的分類å稱繼承而來。';
-$lang['p_isadmin']             = '注æ„:é¸å–çš„ç¾¤çµ„æˆ–ä½¿ç”¨è€…æ“æœ‰å®Œæ•´æ¬Šé™ï¼Œå› ç‚ºä»–或他們已æˆç‚ºè¶…級使用者。';
-$lang['p_include']             = '較高的權é™äº¦åŒ…å«äº†è¼ƒä½Žçš„æ¬Šé™ã€‚新增ã€ä¸Šå‚³èˆ‡åˆªé™¤æ¬Šé™åªèƒ½å¥—用至分類å稱,ä¸èƒ½å¥—用至é é¢ã€‚';
-$lang['current']               = 'ç›®å‰çš„å­˜å–æŽ§åˆ¶è¦å‰‡';
-$lang['where']                 = 'é é¢/分類å稱';
-$lang['who']                   = '使用者/群組';
-$lang['perm']                  = '權é™';
-$lang['acl_perm0']             = 'ç„¡';
-$lang['acl_perm1']             = '讀å–é é¢';
-$lang['acl_perm2']             = '編輯é é¢';
-$lang['acl_perm4']             = '新增é é¢';
-$lang['acl_perm8']             = '上傳圖檔';
-$lang['acl_perm16']            = '刪除檔案';
-$lang['acl_new']               = '增加è¦å‰‡';
-$lang['acl_mod']               = '修改è¦å‰‡';
diff --git a/wiki/lib/plugins/acl/lang/zh/help.txt b/wiki/lib/plugins/acl/lang/zh/help.txt
deleted file mode 100644
index 526dcee..0000000
--- a/wiki/lib/plugins/acl/lang/zh/help.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-=== 快速帮助 ===
-
-本页中您å¯ä»¥æ·»åŠ æˆ–ç§»é™¤å‘½å空间或页é¢çš„æƒé™ã€‚
-
-左边的窗格显示的是全部å¯ç”¨çš„命å空间和页é¢ã€‚
-
-您å¯ä»¥åœ¨ä¸Šæ–¹çš„表格中查看并修改选定用户或组的æƒé™ã€‚
-
-下方的表格中显示的是当å‰è®¾ç½®çš„全部访问控制规则。 您å¯ä»¥é€šè¿‡å®ƒå¿«é€Ÿåˆ é™¤æˆ–更改多æ¡è§„则。
-
-å‚阅 [[doku>acl|official documentation on ACL]] 能帮助您完整地ç†è§£ DokuWiki 中的访问控制是如何工作的。
diff --git a/wiki/lib/plugins/acl/lang/zh/lang.php b/wiki/lib/plugins/acl/lang/zh/lang.php
deleted file mode 100644
index 3191745..0000000
--- a/wiki/lib/plugins/acl/lang/zh/lang.php
+++ /dev/null
@@ -1,42 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author ZDYX <zhangduyixiong@gmail.com>
- * @author http://www.chinese-tools.com/tools/converter-tradsimp.html
- * @author Simon zhan <simonzhan@21cn.com>
- * @author ben <ben@livetom.com>
- * @author lainme <lainme993@gmail.com>
- * @author caii <zhoucaiqi@gmail.com>
- * @author Hiphen Lee <jacob.b.leung@gmail.com>
- * @author Shuo-Ting Jian <shoting@gmail.com>
- */
-$lang['admin_acl']             = '访问控制列表(ACL)管ç†å™¨';
-$lang['acl_group']             = '组:';
-$lang['acl_user']              = '用户:';
-$lang['acl_perms']             = '许å¯ç»™';
-$lang['page']                  = '页é¢';
-$lang['namespace']             = '命å空间';
-$lang['btn_select']            = '鏿“‡';
-$lang['p_user_id']             = '用户 <b class="acluser">%s</b> 当å‰åœ¨é¡µé¢ <b class="aclpage">%s</b> 拥有以下æƒé™ï¼š<i>%s</i>。';
-$lang['p_user_ns']             = '用户 <b class="acluser">%s</b> 当å‰åœ¨å‘½å空间 <b class="aclns">%s</b> 拥有以下æƒé™ï¼š<i>%s</i>。';
-$lang['p_group_id']            = '<b class="aclgroup">%s</b> 组æˆå‘˜å½“å‰åœ¨é¡µé¢ <b class="aclpage">%s</b> 拥有以下æƒé™ï¼š<i>%s</i>。';
-$lang['p_group_ns']            = '<b class="aclgroup">%s</b> 组æˆå‘˜å½“å‰åœ¨å‘½å空间 <b class="aclns">%s</b> 拥有以下æƒé™ï¼š<i>%s</i>。';
-$lang['p_choose_id']           = '请在上表中<b>è¾“å…¥ç”¨æˆ·åæˆ–组åç§°</b>ï¼Œæ¥æŸ¥çœ‹æˆ–ç¼–è¾‘é¡µé¢ <b class="aclpage">%s</b> çš„æƒé™è®¾ç½®ã€‚';
-$lang['p_choose_ns']           = '请在上表中<b>è¾“å…¥ç”¨æˆ·åæˆ–组åç§°</b>ï¼Œæ¥æŸ¥çœ‹æˆ–编辑命å空间 <b class="aclns">%s</b> çš„æƒé™è®¾ç½®ã€‚';
-$lang['p_inherited']           = '请注æ„:这些æƒé™å¹¶æ²¡æœ‰æ˜Žç¡®è®¾å®šï¼Œè€Œæ˜¯ä»Žå…¶ä»–组或更高级的å称空间继承而æ¥ã€‚';
-$lang['p_isadmin']             = '请注æ„:选定的组或用户拥有完全æƒé™ï¼Œå› ä¸ºå®ƒè¢«è®¾å®šä¸ºè¶…级用户。';
-$lang['p_include']             = '高æƒé™åŒ…å«ä½Žæƒé™ã€‚创建ã€ä¸Šä¼ å’Œåˆ é™¤æƒé™åªèƒ½åº”用于åç§°ç©ºé—´ï¼Œè€Œä¸æ˜¯å•个页é¢ã€‚';
-$lang['current']               = 'å½“å‰ ACL 规则';
-$lang['where']                 = '页é¢/命å空间';
-$lang['who']                   = '用户/组';
-$lang['perm']                  = 'æƒé™';
-$lang['acl_perm0']             = 'æ— ';
-$lang['acl_perm1']             = '读å–';
-$lang['acl_perm2']             = '编辑';
-$lang['acl_perm4']             = '创建';
-$lang['acl_perm8']             = '上传';
-$lang['acl_perm16']            = '删除';
-$lang['acl_new']               = '添加新æ¡ç›®';
-$lang['acl_mod']               = '编辑æ¡ç›®';
diff --git a/wiki/lib/plugins/acl/pix/group.png b/wiki/lib/plugins/acl/pix/group.png
deleted file mode 100644
index 348d4e5..0000000
--- a/wiki/lib/plugins/acl/pix/group.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/plugins/acl/pix/ns.png b/wiki/lib/plugins/acl/pix/ns.png
deleted file mode 100644
index 77e03b1..0000000
--- a/wiki/lib/plugins/acl/pix/ns.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/plugins/acl/pix/page.png b/wiki/lib/plugins/acl/pix/page.png
deleted file mode 100644
index b1b7ebe..0000000
--- a/wiki/lib/plugins/acl/pix/page.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/plugins/acl/pix/user.png b/wiki/lib/plugins/acl/pix/user.png
deleted file mode 100644
index 8d5d1c2..0000000
--- a/wiki/lib/plugins/acl/pix/user.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/plugins/acl/plugin.info.txt b/wiki/lib/plugins/acl/plugin.info.txt
deleted file mode 100644
index 1b2c82c..0000000
--- a/wiki/lib/plugins/acl/plugin.info.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-base   acl
-author Andreas Gohr
-email  andi@splitbrain.org
-date   2015-07-25
-name   ACL Manager
-desc   Manage Page Access Control Lists
-url    http://dokuwiki.org/plugin:acl
diff --git a/wiki/lib/plugins/acl/remote.php b/wiki/lib/plugins/acl/remote.php
deleted file mode 100644
index 27c5c16..0000000
--- a/wiki/lib/plugins/acl/remote.php
+++ /dev/null
@@ -1,87 +0,0 @@
-<?php
-
-/**
- * Class remote_plugin_acl
- */
-class remote_plugin_acl extends DokuWiki_Remote_Plugin {
-
-    /**
-     * Returns details about the remote plugin methods
-     *
-     * @return array Information about all provided methods. {@see RemoteAPI}
-     */
-    public function _getMethods() {
-        return array(
-            'listAcls' => array(
-                'args' => array(),
-                'return' => 'Array of ACLs {scope, user, permission}',
-                'name' => 'listAcls',
-                'doc' => 'Get the list of all ACLs',
-            ),'addAcl' => array(
-                'args' => array('string','string','int'),
-                'return' => 'int',
-                'name' => 'addAcl',
-                'doc' => 'Adds a new ACL rule.'
-            ), 'delAcl' => array(
-                'args' => array('string','string'),
-                'return' => 'int',
-                'name' => 'delAcl',
-                'doc' => 'Delete an existing ACL rule.'
-            ),
-        );
-    }
-
-    /**
-     * List all ACL config entries
-     *
-     * @throws RemoteAccessDeniedException
-     * @return dictionary {Scope: ACL}, where ACL = dictionnary {user/group: permissions_int}
-     */
-    public function listAcls(){
-        if(!auth_isadmin()) {
-         throw new RemoteAccessDeniedException('You are not allowed to access ACLs, superuser permission is required', 114);
-        }
-        /** @var admin_plugin_acl $apa */
-        $apa = plugin_load('admin', 'acl');
-        $apa->_init_acl_config();
-        return $apa->acl;
-    }
-
-    /**
-     * Add a new entry to ACL config
-     *
-     * @param string $scope
-     * @param string $user
-     * @param int    $level see also inc/auth.php
-     * @throws RemoteAccessDeniedException
-     * @return bool
-     */
-    public function addAcl($scope, $user, $level){
-        if(!auth_isadmin()) {
-            throw new RemoteAccessDeniedException('You are not allowed to access ACLs, superuser permission is required', 114);
-        }
-
-        /** @var admin_plugin_acl $apa */
-        $apa = plugin_load('admin', 'acl');
-        return $apa->_acl_add($scope, $user, $level);
-    }
-
-    /**
-     * Remove an entry from ACL config
-     *
-     * @param string $scope
-     * @param string $user
-     * @throws RemoteAccessDeniedException
-     * @return bool
-     */
-    public function delAcl($scope, $user){
-        if(!auth_isadmin()) {
-            throw new RemoteAccessDeniedException('You are not allowed to access ACLs, superuser permission is required', 114);
-        }
-
-        /** @var admin_plugin_acl $apa */
-        $apa = plugin_load('admin', 'acl');
-        return $apa->_acl_del($scope, $user);
-    }
-}
-
diff --git a/wiki/lib/plugins/acl/script.js b/wiki/lib/plugins/acl/script.js
deleted file mode 100644
index 86badff..0000000
--- a/wiki/lib/plugins/acl/script.js
+++ /dev/null
@@ -1,121 +0,0 @@
-/**
- * ACL Manager AJAX enhancements
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- */
-var dw_acl = {
-    /**
-     * Initialize the object and attach the event handlers
-     */
-    init: function () {
-        var $tree;
-
-        //FIXME only one underscore!!
-        if (jQuery('#acl_manager').length === 0) {
-            return;
-        }
-
-        jQuery('#acl__user select').change(dw_acl.userselhandler);
-        jQuery('#acl__user button').click(dw_acl.loadinfo);
-
-        $tree = jQuery('#acl__tree');
-        $tree.dw_tree({toggle_selector: 'img',
-                       load_data: function (show_sublist, $clicky) {
-                           // get the enclosed link and the edit form
-                           var $frm = jQuery('#acl__detail form');
-
-                           jQuery.post(
-                               DOKU_BASE + 'lib/exe/ajax.php',
-                               jQuery.extend(dw_acl.parseatt($clicky.parent().find('a')[0].search),
-                                             {call: 'plugin_acl',
-                                              ajax: 'tree',
-                                              current_ns: $frm.find('input[name=ns]').val(),
-                                              current_id: $frm.find('input[name=id]').val()}),
-                               show_sublist,
-                               'html'
-                           );
-                       },
-
-                       toggle_display: function ($clicky, opening) {
-                           $clicky.attr('src',
-                                        DOKU_BASE + 'lib/images/' +
-                                        (opening ? 'minus' : 'plus') + '.gif');
-                       }});
-        $tree.delegate('a', 'click', dw_acl.treehandler);
-    },
-
-    /**
-     * Handle user dropdown
-     *
-     * Hides or shows the user/group entry box depending on what was selected in the
-     * dropdown element
-     */
-    userselhandler: function () {
-        // make entry field visible/invisible
-        jQuery('#acl__user input').toggle(this.value === '__g__' ||
-                                          this.value === '__u__');
-        dw_acl.loadinfo();
-    },
-
-    /**
-     * Load the current permission info and edit form
-     */
-    loadinfo: function () {
-        jQuery('#acl__info')
-            .attr('role', 'alert')
-            .html('<img src="'+DOKU_BASE+'lib/images/throbber.gif" alt="..." />')
-            .load(
-                DOKU_BASE + 'lib/exe/ajax.php',
-                jQuery('#acl__detail form').serialize() + '&call=plugin_acl&ajax=info'
-            );
-        return false;
-    },
-
-    /**
-     * parse URL attributes into a associative array
-     *
-     * @todo put into global script lib?
-     */
-    parseatt: function (str) {
-        if (str[0] === '?') {
-            str = str.substr(1);
-        }
-        var attributes = {};
-        var all = str.split('&');
-        for (var i = 0; i < all.length; i++) {
-            var att = all[i].split('=');
-            attributes[att[0]] = decodeURIComponent(att[1]);
-        }
-        return attributes;
-    },
-
-    /**
-     * Handles clicks to the tree nodes
-     */
-    treehandler: function () {
-        var $link, $frm;
-
-        $link = jQuery(this);
-
-            // remove highlighting
-            jQuery('#acl__tree a.cur').removeClass('cur');
-
-            // add new highlighting
-        $link.addClass('cur');
-
-            // set new page to detail form
-        $frm = jQuery('#acl__detail form');
-        if ($link.hasClass('wikilink1')) {
-            $frm.find('input[name=ns]').val('');
-            $frm.find('input[name=id]').val(dw_acl.parseatt($link[0].search).id);
-        } else if ($link.hasClass('idx_dir')) {
-            $frm.find('input[name=ns]').val(dw_acl.parseatt($link[0].search).ns);
-            $frm.find('input[name=id]').val('');
-            }
-        dw_acl.loadinfo();
-
-        return false;
-    }
-};
-
-jQuery(dw_acl.init);
diff --git a/wiki/lib/plugins/acl/style.css b/wiki/lib/plugins/acl/style.css
deleted file mode 100644
index 4233cd3..0000000
--- a/wiki/lib/plugins/acl/style.css
+++ /dev/null
@@ -1,135 +0,0 @@
-#acl__tree {
-    font-size: 90%;
-    width: 25%;
-    height: 300px;
-    float: left;
-    overflow: auto;
-    border: 1px solid __border__;
-    text-align: left;
-}
-[dir=rtl] #acl__tree {
-    float: right;
-    text-align: right;
-}
-
-#acl__tree a.cur {
-    background-color: __highlight__;
-    font-weight: bold;
-}
-
-#acl__tree ul {
-    list-style-type: none;
-    margin: 0;
-    padding: 0;
-}
-
-#acl__tree li {
-    padding-left: 1em;
-    list-style-image: none;
-}
-[dir=rtl] #acl__tree li {
-    padding-left: 0em;
-    padding-right: 1em;
-}
-
-#acl__tree ul img {
-    margin-right: 0.25em;
-    cursor: pointer;
-}
-[dir=rtl] #acl__tree ul img {
-    margin-left: 0.25em;
-    margin-right: 0em;
-}
-
-#acl__detail {
-    width: 73%;
-    height: 300px;
-    float: right;
-    overflow: auto;
-}
-[dir=rtl] #acl__detail {
-    float: left;
-}
-
-#acl__detail fieldset {
-    width: 90%;
-}
-
-#acl__detail div#acl__user {
-    border: 1px solid __border__;
-    padding: 0.5em;
-    margin-bottom: 0.6em;
-}
-
-#acl_manager table.inline {
-    width: 100%;
-    margin: 0;
-}
-
-#acl_manager table .check {
-    text-align: center;
-}
-
-#acl_manager table .action {
-    text-align: right;
-}
-
-#acl_manager .aclgroup {
-    background: transparent url(pix/group.png) 0px 1px no-repeat;
-    padding: 1px 0px 1px 18px;
-}
-[dir=rtl] #acl_manager .aclgroup {
-    background: transparent url(pix/group.png) right 1px no-repeat;
-    padding: 1px 18px 1px 0px;
-}
-
-#acl_manager .acluser {
-    background: transparent url(pix/user.png) 0px 1px no-repeat;
-    padding: 1px 0px 1px 18px;
-}
-[dir=rtl] #acl_manager .acluser {
-    background: transparent url(pix/user.png) right 1px no-repeat;
-    padding: 1px 18px 1px 0px;
-}
-
-#acl_manager .aclpage {
-    background: transparent url(pix/page.png) 0px 1px no-repeat;
-    padding: 1px 0px 1px 18px;
-}
-[dir=rtl] #acl_manager .aclpage {
-    background: transparent url(pix/page.png) right 1px no-repeat;
-    padding: 1px 18px 1px 0px;
-}
-
-#acl_manager .aclns {
-    background: transparent url(pix/ns.png) 0px 1px no-repeat;
-    padding: 1px 0px 1px 18px;
-}
-[dir=rtl] #acl_manager .aclns {
-    background: transparent url(pix/ns.png) right 1px no-repeat;
-    padding: 1px 18px 1px 0px;
-}
-
-#acl_manager label.disabled {
-    opacity: .5;
-    cursor: auto;
-}
-
-#acl_manager label {
-    text-align: left;
-    font-weight: normal;
-    display: inline;
-}
-
-#acl_manager table {
-    margin-left: 10%;
-    width: 80%;
-}
-
-#acl_manager table tr {
-    background-color: inherit;
-}
-
-#acl_manager table tr:hover {
-    background-color: __background_alt__;
-}
diff --git a/wiki/lib/plugins/action.php b/wiki/lib/plugins/action.php
deleted file mode 100644
index 23d94a5..0000000
--- a/wiki/lib/plugins/action.php
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
-/**
- * Action Plugin Prototype
- *
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * @author     Christopher Smith <chris@jalakai.co.uk>
- */
-// must be run within Dokuwiki
-if(!defined('DOKU_INC')) die();
-
-/**
- * All DokuWiki plugins to interfere with the event system
- * need to inherit from this class
- */
-class DokuWiki_Action_Plugin extends DokuWiki_Plugin {
-
-    /**
-     * Registers a callback function for a given event
-     *
-     * @param Doku_Event_Handler $controller
-     */
-    public function register(Doku_Event_Handler $controller) {
-        trigger_error('register() not implemented in '.get_class($this), E_USER_WARNING);
-    }
-}
diff --git a/wiki/lib/plugins/admin.php b/wiki/lib/plugins/admin.php
deleted file mode 100644
index 4e1cbbb..0000000
--- a/wiki/lib/plugins/admin.php
+++ /dev/null
@@ -1,96 +0,0 @@
-<?php
-/**
- * Admin Plugin Prototype
- *
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * @author     Christopher Smith <chris@jalakai.co.uk>
- */
-// must be run within Dokuwiki
-if(!defined('DOKU_INC')) die();
-
-/**
- * All DokuWiki plugins to extend the admin function
- * need to inherit from this class
- */
-class DokuWiki_Admin_Plugin extends DokuWiki_Plugin {
-
-    /**
-     * Return the text that is displayed at the main admin menu
-     * (Default localized language string 'menu' is returned, override this function for setting another name)
-     *
-     * @param string $language language code
-     * @return string menu string
-     */
-    public function getMenuText($language) {
-        $menutext = $this->getLang('menu');
-        if (!$menutext) {
-            $info = $this->getInfo();
-            $menutext = $info['name'].' ...';
-        }
-        return $menutext;
-    }
-
-    /**
-     * Return the path to the icon being displayed in the main admin menu.
-     * By default it tries to find an 'admin.svg' file in the plugin directory.
-     * (Override this function for setting another image)
-     *
-     * Important: you have to return a single path, monochrome SVG icon! It has to be
-     * under 2 Kilobytes!
-     *
-     * We recommend icons from https://materialdesignicons.com/ or to use a matching
-     * style.
-     *
-     * @return string full path to the icon file
-     */
-    public function getMenuIcon() {
-        $plugin = $this->getPluginName();
-        return DOKU_PLUGIN . $plugin . '/admin.svg';
-    }
-
-    /**
-     * Determine position in list in admin window
-     * Lower values are sorted up
-     *
-     * @return int
-     */
-    public function getMenuSort() {
-        return 1000;
-    }
-
-    /**
-     * Carry out required processing
-     */
-    public function handle() {
-        trigger_error('handle() not implemented in '.get_class($this), E_USER_WARNING);
-    }
-
-    /**
-     * Output html of the admin page
-     */
-    public function html() {
-        trigger_error('html() not implemented in '.get_class($this), E_USER_WARNING);
-    }
-
-    /**
-     * Return true for access only by admins (config:superuser) or false if managers are allowed as well
-     *
-     * @return bool
-     */
-    public function forAdminOnly() {
-        return true;
-    }
-
-    /**
-     * Return array with ToC items. Items can be created with the html_mktocitem()
-     *
-     * @see html_mktocitem()
-     * @see tpl_toc()
-     *
-     * @return array
-     */
-    public function getTOC(){
-        return array();
-    }
-}
-//Setup VIM: ex: et ts=4 :
diff --git a/wiki/lib/plugins/auth.php b/wiki/lib/plugins/auth.php
deleted file mode 100644
index 0cd965b..0000000
--- a/wiki/lib/plugins/auth.php
+++ /dev/null
@@ -1,438 +0,0 @@
-<?php
-// must be run within Dokuwiki
-if(!defined('DOKU_INC')) die();
-
-/**
- * Auth Plugin Prototype
- *
- * foundation authorisation class
- * all auth classes should inherit from this class
- *
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * @author     Chris Smith <chris@jalakai.co.uk>
- * @author     Jan Schumann <js@jschumann-it.com>
- */
-class DokuWiki_Auth_Plugin extends DokuWiki_Plugin {
-    public $success = true;
-
-    /**
-     * Possible things an auth backend module may be able to
-     * do. The things a backend can do need to be set to true
-     * in the constructor.
-     */
-    protected $cando = array(
-        'addUser'      => false, // can Users be created?
-        'delUser'      => false, // can Users be deleted?
-        'modLogin'     => false, // can login names be changed?
-        'modPass'      => false, // can passwords be changed?
-        'modName'      => false, // can real names be changed?
-        'modMail'      => false, // can emails be changed?
-        'modGroups'    => false, // can groups be changed?
-        'getUsers'     => false, // can a (filtered) list of users be retrieved?
-        'getUserCount' => false, // can the number of users be retrieved?
-        'getGroups'    => false, // can a list of available groups be retrieved?
-        'external'     => false, // does the module do external auth checking?
-        'logout'       => true, // can the user logout again? (eg. not possible with HTTP auth)
-    );
-
-    /**
-     * Constructor.
-     *
-     * Carry out sanity checks to ensure the object is
-     * able to operate. Set capabilities in $this->cando
-     * array here
-     *
-     * For future compatibility, sub classes should always include a call
-     * to parent::__constructor() in their constructors!
-     *
-     * Set $this->success to false if checks fail
-     *
-     * @author  Christopher Smith <chris@jalakai.co.uk>
-     */
-    public function __construct() {
-        // the base class constructor does nothing, derived class
-        // constructors do the real work
-    }
-
-    /**
-     * Available Capabilities. [ DO NOT OVERRIDE ]
-     *
-     * For introspection/debugging
-     *
-     * @author  Christopher Smith <chris@jalakai.co.uk>
-     * @return  array
-     */
-    public function getCapabilities(){
-        return array_keys($this->cando);
-    }
-
-    /**
-     * Capability check. [ DO NOT OVERRIDE ]
-     *
-     * Checks the capabilities set in the $this->cando array and
-     * some pseudo capabilities (shortcutting access to multiple
-     * ones)
-     *
-     * ususal capabilities start with lowercase letter
-     * shortcut capabilities start with uppercase letter
-     *
-     * @author  Andreas Gohr <andi@splitbrain.org>
-     * @param   string $cap the capability to check
-     * @return  bool
-     */
-    public function canDo($cap) {
-        switch($cap) {
-            case 'Profile':
-                // can at least one of the user's properties be changed?
-                return ($this->cando['modPass'] ||
-                    $this->cando['modName'] ||
-                    $this->cando['modMail']);
-                break;
-            case 'UserMod':
-                // can at least anything be changed?
-                return ($this->cando['modPass'] ||
-                    $this->cando['modName'] ||
-                    $this->cando['modMail'] ||
-                    $this->cando['modLogin'] ||
-                    $this->cando['modGroups'] ||
-                    $this->cando['modMail']);
-                break;
-            default:
-                // print a helping message for developers
-                if(!isset($this->cando[$cap])) {
-                    msg("Check for unknown capability '$cap' - Do you use an outdated Plugin?", -1);
-                }
-                return $this->cando[$cap];
-        }
-    }
-
-    /**
-     * Trigger the AUTH_USERDATA_CHANGE event and call the modification function. [ DO NOT OVERRIDE ]
-     *
-     * You should use this function instead of calling createUser, modifyUser or
-     * deleteUsers directly. The event handlers can prevent the modification, for
-     * example for enforcing a user name schema.
-     *
-     * @author Gabriel Birke <birke@d-scribe.de>
-     * @param string $type   Modification type ('create', 'modify', 'delete')
-     * @param array  $params Parameters for the createUser, modifyUser or deleteUsers method. The content of this array depends on the modification type
-     * @return bool|null|int Result from the modification function or false if an event handler has canceled the action
-     */
-    public function triggerUserMod($type, $params) {
-        $validTypes = array(
-            'create' => 'createUser',
-            'modify' => 'modifyUser',
-            'delete' => 'deleteUsers'
-        );
-        if(empty($validTypes[$type])) {
-            return false;
-        }
-
-        $result = false;
-        $eventdata = array('type' => $type, 'params' => $params, 'modification_result' => null);
-        $evt       = new Doku_Event('AUTH_USER_CHANGE', $eventdata);
-        if($evt->advise_before(true)) {
-            $result                           = call_user_func_array(array($this, $validTypes[$type]), $evt->data['params']);
-            $evt->data['modification_result'] = $result;
-        }
-        $evt->advise_after();
-        unset($evt);
-        return $result;
-    }
-
-    /**
-     * Log off the current user [ OPTIONAL ]
-     *
-     * Is run in addition to the ususal logoff method. Should
-     * only be needed when trustExternal is implemented.
-     *
-     * @see     auth_logoff()
-     * @author  Andreas Gohr <andi@splitbrain.org>
-     */
-    public function logOff() {
-    }
-
-    /**
-     * Do all authentication [ OPTIONAL ]
-     *
-     * Set $this->cando['external'] = true when implemented
-     *
-     * If this function is implemented it will be used to
-     * authenticate a user - all other DokuWiki internals
-     * will not be used for authenticating, thus
-     * implementing the checkPass() function is not needed
-     * anymore.
-     *
-     * The function can be used to authenticate against third
-     * party cookies or Apache auth mechanisms and replaces
-     * the auth_login() function
-     *
-     * The function will be called with or without a set
-     * username. If the Username is given it was called
-     * from the login form and the given credentials might
-     * need to be checked. If no username was given it
-     * the function needs to check if the user is logged in
-     * by other means (cookie, environment).
-     *
-     * The function needs to set some globals needed by
-     * DokuWiki like auth_login() does.
-     *
-     * @see     auth_login()
-     * @author  Andreas Gohr <andi@splitbrain.org>
-     *
-     * @param   string  $user    Username
-     * @param   string  $pass    Cleartext Password
-     * @param   bool    $sticky  Cookie should not expire
-     * @return  bool             true on successful auth
-     */
-    public function trustExternal($user, $pass, $sticky = false) {
-        /* some example:
-
-        global $USERINFO;
-        global $conf;
-        $sticky ? $sticky = true : $sticky = false; //sanity check
-
-        // do the checking here
-
-        // set the globals if authed
-        $USERINFO['name'] = 'FIXME';
-        $USERINFO['mail'] = 'FIXME';
-        $USERINFO['grps'] = array('FIXME');
-        $_SERVER['REMOTE_USER'] = $user;
-        $_SESSION[DOKU_COOKIE]['auth']['user'] = $user;
-        $_SESSION[DOKU_COOKIE]['auth']['pass'] = $pass;
-        $_SESSION[DOKU_COOKIE]['auth']['info'] = $USERINFO;
-        return true;
-
-        */
-    }
-
-    /**
-     * Check user+password [ MUST BE OVERRIDDEN ]
-     *
-     * Checks if the given user exists and the given
-     * plaintext password is correct
-     *
-     * May be ommited if trustExternal is used.
-     *
-     * @author  Andreas Gohr <andi@splitbrain.org>
-     * @param   string $user the user name
-     * @param   string $pass the clear text password
-     * @return  bool
-     */
-    public function checkPass($user, $pass) {
-        msg("no valid authorisation system in use", -1);
-        return false;
-    }
-
-    /**
-     * Return user info [ MUST BE OVERRIDDEN ]
-     *
-     * Returns info about the given user needs to contain
-     * at least these fields:
-     *
-     * name string  full name of the user
-     * mail string  email address of the user
-     * grps array   list of groups the user is in
-     *
-     * @author  Andreas Gohr <andi@splitbrain.org>
-     * @param   string $user the user name
-     * @param   bool $requireGroups whether or not the returned data must include groups
-     * @return  false|array containing user data or false
-     */
-    public function getUserData($user, $requireGroups=true) {
-        if(!$this->cando['external']) msg("no valid authorisation system in use", -1);
-        return false;
-    }
-
-    /**
-     * Create a new User [implement only where required/possible]
-     *
-     * Returns false if the user already exists, null when an error
-     * occurred and true if everything went well.
-     *
-     * The new user HAS TO be added to the default group by this
-     * function!
-     *
-     * Set addUser capability when implemented
-     *
-     * @author  Andreas Gohr <andi@splitbrain.org>
-     * @param  string     $user
-     * @param  string     $pass
-     * @param  string     $name
-     * @param  string     $mail
-     * @param  null|array $grps
-     * @return bool|null
-     */
-    public function createUser($user, $pass, $name, $mail, $grps = null) {
-        msg("authorisation method does not allow creation of new users", -1);
-        return null;
-    }
-
-    /**
-     * Modify user data [implement only where required/possible]
-     *
-     * Set the mod* capabilities according to the implemented features
-     *
-     * @author  Chris Smith <chris@jalakai.co.uk>
-     * @param   string $user    nick of the user to be changed
-     * @param   array  $changes array of field/value pairs to be changed (password will be clear text)
-     * @return  bool
-     */
-    public function modifyUser($user, $changes) {
-        msg("authorisation method does not allow modifying of user data", -1);
-        return false;
-    }
-
-    /**
-     * Delete one or more users [implement only where required/possible]
-     *
-     * Set delUser capability when implemented
-     *
-     * @author  Chris Smith <chris@jalakai.co.uk>
-     * @param   array  $users
-     * @return  int    number of users deleted
-     */
-    public function deleteUsers($users) {
-        msg("authorisation method does not allow deleting of users", -1);
-        return 0;
-    }
-
-    /**
-     * Return a count of the number of user which meet $filter criteria
-     * [should be implemented whenever retrieveUsers is implemented]
-     *
-     * Set getUserCount capability when implemented
-     *
-     * @author Chris Smith <chris@jalakai.co.uk>
-     * @param  array $filter array of field/pattern pairs, empty array for no filter
-     * @return int
-     */
-    public function getUserCount($filter = array()) {
-        msg("authorisation method does not provide user counts", -1);
-        return 0;
-    }
-
-    /**
-     * Bulk retrieval of user data [implement only where required/possible]
-     *
-     * Set getUsers capability when implemented
-     *
-     * @author  Chris Smith <chris@jalakai.co.uk>
-     * @param   int   $start     index of first user to be returned
-     * @param   int   $limit     max number of users to be returned, 0 for unlimited
-     * @param   array $filter    array of field/pattern pairs, null for no filter
-     * @return  array list of userinfo (refer getUserData for internal userinfo details)
-     */
-    public function retrieveUsers($start = 0, $limit = 0, $filter = null) {
-        msg("authorisation method does not support mass retrieval of user data", -1);
-        return array();
-    }
-
-    /**
-     * Define a group [implement only where required/possible]
-     *
-     * Set addGroup capability when implemented
-     *
-     * @author  Chris Smith <chris@jalakai.co.uk>
-     * @param   string $group
-     * @return  bool
-     */
-    public function addGroup($group) {
-        msg("authorisation method does not support independent group creation", -1);
-        return false;
-    }
-
-    /**
-     * Retrieve groups [implement only where required/possible]
-     *
-     * Set getGroups capability when implemented
-     *
-     * @author  Chris Smith <chris@jalakai.co.uk>
-     * @param   int $start
-     * @param   int $limit
-     * @return  array
-     */
-    public function retrieveGroups($start = 0, $limit = 0) {
-        msg("authorisation method does not support group list retrieval", -1);
-        return array();
-    }
-
-    /**
-     * Return case sensitivity of the backend [OPTIONAL]
-     *
-     * When your backend is caseinsensitive (eg. you can login with USER and
-     * user) then you need to overwrite this method and return false
-     *
-     * @return bool
-     */
-    public function isCaseSensitive() {
-        return true;
-    }
-
-    /**
-     * Sanitize a given username [OPTIONAL]
-     *
-     * This function is applied to any user name that is given to
-     * the backend and should also be applied to any user name within
-     * the backend before returning it somewhere.
-     *
-     * This should be used to enforce username restrictions.
-     *
-     * @author Andreas Gohr <andi@splitbrain.org>
-     * @param string $user username
-     * @return string the cleaned username
-     */
-    public function cleanUser($user) {
-        return $user;
-    }
-
-    /**
-     * Sanitize a given groupname [OPTIONAL]
-     *
-     * This function is applied to any groupname that is given to
-     * the backend and should also be applied to any groupname within
-     * the backend before returning it somewhere.
-     *
-     * This should be used to enforce groupname restrictions.
-     *
-     * Groupnames are to be passed without a leading '@' here.
-     *
-     * @author Andreas Gohr <andi@splitbrain.org>
-     * @param  string $group groupname
-     * @return string the cleaned groupname
-     */
-    public function cleanGroup($group) {
-        return $group;
-    }
-
-    /**
-     * Check Session Cache validity [implement only where required/possible]
-     *
-     * DokuWiki caches user info in the user's session for the timespan defined
-     * in $conf['auth_security_timeout'].
-     *
-     * This makes sure slow authentication backends do not slow down DokuWiki.
-     * This also means that changes to the user database will not be reflected
-     * on currently logged in users.
-     *
-     * To accommodate for this, the user manager plugin will touch a reference
-     * file whenever a change is submitted. This function compares the filetime
-     * of this reference file with the time stored in the session.
-     *
-     * This reference file mechanism does not reflect changes done directly in
-     * the backend's database through other means than the user manager plugin.
-     *
-     * Fast backends might want to return always false, to force rechecks on
-     * each page load. Others might want to use their own checking here. If
-     * unsure, do not override.
-     *
-     * @param  string $user - The username
-     * @author Andreas Gohr <andi@splitbrain.org>
-     * @return bool
-     */
-    public function useSessionCache($user) {
-        global $conf;
-        return ($_SESSION[DOKU_COOKIE]['auth']['time'] >= @filemtime($conf['cachedir'].'/sessionpurge'));
-    }
-}
diff --git a/wiki/lib/plugins/authad/action.php b/wiki/lib/plugins/authad/action.php
deleted file mode 100644
index bc0f90c..0000000
--- a/wiki/lib/plugins/authad/action.php
+++ /dev/null
@@ -1,91 +0,0 @@
-<?php
-/**
- * DokuWiki Plugin addomain (Action Component)
- *
- * @license GPL 2 http://www.gnu.org/licenses/gpl-2.0.html
- * @author  Andreas Gohr <gohr@cosmocode.de>
- */
-
-// must be run within Dokuwiki
-if(!defined('DOKU_INC')) die();
-
-/**
- * Class action_plugin_addomain
- */
-class action_plugin_authad extends DokuWiki_Action_Plugin {
-
-    /**
-     * Registers a callback function for a given event
-     */
-    public function register(Doku_Event_Handler $controller) {
-
-        $controller->register_hook('AUTH_LOGIN_CHECK', 'BEFORE', $this, 'handle_auth_login_check');
-        $controller->register_hook('HTML_LOGINFORM_OUTPUT', 'BEFORE', $this, 'handle_html_loginform_output');
-
-    }
-
-    /**
-     * Adds the selected domain as user postfix when attempting a login
-     *
-     * @param Doku_Event $event
-     * @param array      $param
-     */
-    public function handle_auth_login_check(Doku_Event &$event, $param) {
-        global $INPUT;
-
-        /** @var auth_plugin_authad $auth */
-        global $auth;
-        if(!is_a($auth, 'auth_plugin_authad')) return; // AD not even used
-
-        if($INPUT->str('dom')) {
-            $usr = $auth->cleanUser($event->data['user']);
-            $dom = $auth->_userDomain($usr);
-            if(!$dom) {
-                $usr = "$usr@".$INPUT->str('dom');
-            }
-            $INPUT->post->set('u', $usr);
-            $event->data['user'] = $usr;
-        }
-    }
-
-    /**
-     * Shows a domain selection in the login form when more than one domain is configured
-     *
-     * @param Doku_Event $event
-     * @param array      $param
-     */
-    public function handle_html_loginform_output(Doku_Event &$event, $param) {
-        global $INPUT;
-        /** @var auth_plugin_authad $auth */
-        global $auth;
-        if(!is_a($auth, 'auth_plugin_authad')) return; // AD not even used
-        $domains = $auth->_getConfiguredDomains();
-        if(count($domains) <= 1) return; // no choice at all
-
-        /** @var Doku_Form $form */
-        $form =& $event->data;
-
-        // any default?
-        $dom = '';
-        if($INPUT->has('u')) {
-            $usr = $auth->cleanUser($INPUT->str('u'));
-            $dom = $auth->_userDomain($usr);
-
-            // update user field value
-            if($dom) {
-                $usr          = $auth->_userName($usr);
-                $pos          = $form->findElementByAttribute('name', 'u');
-                $ele          =& $form->getElementAt($pos);
-                $ele['value'] = $usr;
-            }
-        }
-
-        // add select box
-        $element = form_makeListboxField('dom', $domains, $dom, $this->getLang('domain'), '', 'block');
-        $pos     = $form->findElementByAttribute('name', 'p');
-        $form->insertElement($pos + 1, $element);
-    }
-
-}
-
-// vim:ts=4:sw=4:et:
\ No newline at end of file
diff --git a/wiki/lib/plugins/authad/adLDAP/adLDAP.php b/wiki/lib/plugins/authad/adLDAP/adLDAP.php
deleted file mode 100644
index c84a4f4..0000000
--- a/wiki/lib/plugins/authad/adLDAP/adLDAP.php
+++ /dev/null
@@ -1,949 +0,0 @@
-<?php
-/**
- * PHP LDAP CLASS FOR MANIPULATING ACTIVE DIRECTORY 
- * Version 4.0.4
- * 
- * PHP Version 5 with SSL and LDAP support
- * 
- * Written by Scott Barnett, Richard Hyland
- *   email: scott@wiggumworld.com, adldap@richardhyland.com
- *   http://adldap.sourceforge.net/
- * 
- * Copyright (c) 2006-2012 Scott Barnett, Richard Hyland
- * 
- * We'd appreciate any improvements or additions to be submitted back
- * to benefit the entire community :)
- * 
- * 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.
- * 
- * 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.
- * 
- * @category ToolsAndUtilities
- * @package adLDAP
- * @author Scott Barnett, Richard Hyland
- * @copyright (c) 2006-2012 Scott Barnett, Richard Hyland
- * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html LGPLv2.1
- * @revision $Revision: 169 $
- * @version 4.0.4
- * @link http://adldap.sourceforge.net/
- */
-
-/**
-* Main adLDAP class
-* 
-* Can be initialised using $adldap = new adLDAP();
-* 
-* Something to keep in mind is that Active Directory is a permissions
-* based directory. If you bind as a domain user, you can't fetch as
-* much information on other users as you could as a domain admin.
-* 
-* Before asking questions, please read the Documentation at
-* http://adldap.sourceforge.net/wiki/doku.php?id=api
-*/
-require_once(dirname(__FILE__) . '/collections/adLDAPCollection.php');
-require_once(dirname(__FILE__) . '/classes/adLDAPGroups.php');
-require_once(dirname(__FILE__) . '/classes/adLDAPUsers.php');
-require_once(dirname(__FILE__) . '/classes/adLDAPFolders.php');
-require_once(dirname(__FILE__) . '/classes/adLDAPUtils.php');
-require_once(dirname(__FILE__) . '/classes/adLDAPContacts.php');
-require_once(dirname(__FILE__) . '/classes/adLDAPExchange.php');
-require_once(dirname(__FILE__) . '/classes/adLDAPComputers.php');
-
-class adLDAP {
-    
-    /**
-     * Define the different types of account in AD
-     */
-    const ADLDAP_NORMAL_ACCOUNT = 805306368;
-    const ADLDAP_WORKSTATION_TRUST = 805306369;
-    const ADLDAP_INTERDOMAIN_TRUST = 805306370;
-    const ADLDAP_SECURITY_GLOBAL_GROUP = 268435456;
-    const ADLDAP_DISTRIBUTION_GROUP = 268435457;
-    const ADLDAP_SECURITY_LOCAL_GROUP = 536870912;
-    const ADLDAP_DISTRIBUTION_LOCAL_GROUP = 536870913;
-    const ADLDAP_FOLDER = 'OU';
-    const ADLDAP_CONTAINER = 'CN';
-    
-    /**
-    * The default port for LDAP non-SSL connections
-    */
-    const ADLDAP_LDAP_PORT = '389';
-    /**
-    * The default port for LDAPS SSL connections
-    */
-    const ADLDAP_LDAPS_PORT = '636';
-    
-    /**
-    * The account suffix for your domain, can be set when the class is invoked
-    * 
-    * @var string
-    */   
-        protected $accountSuffix = "@mydomain.local";
-    
-    /**
-    * The base dn for your domain
-    * 
-    * If this is set to null then adLDAP will attempt to obtain this automatically from the rootDSE
-    * 
-    * @var string
-    */
-        protected $baseDn = "DC=mydomain,DC=local"; 
-    
-    /** 
-    * Port used to talk to the domain controllers. 
-    *  
-    * @var int 
-    */ 
-    protected $adPort = self::ADLDAP_LDAP_PORT; 
-        
-    /**
-    * Array of domain controllers. Specifiy multiple controllers if you
-    * would like the class to balance the LDAP queries amongst multiple servers
-    * 
-    * @var array
-    */
-    protected $domainControllers = array("dc01.mydomain.local");
-        
-    /**
-    * Optional account with higher privileges for searching
-    * This should be set to a domain admin account
-    * 
-    * @var string
-    * @var string
-    */
-        protected $adminUsername = NULL;
-    protected $adminPassword = NULL;
-    
-    /**
-    * AD does not return the primary group. http://support.microsoft.com/?kbid=321360
-    * This tweak will resolve the real primary group. 
-    * Setting to false will fudge "Domain Users" and is much faster. Keep in mind though that if
-    * someone's primary group is NOT domain users, this is obviously going to mess up the results
-    * 
-    * @var bool
-    */
-        protected $realPrimaryGroup = true;
-        
-    /**
-    * Use SSL (LDAPS), your server needs to be setup, please see
-    * http://adldap.sourceforge.net/wiki/doku.php?id=ldap_over_ssl
-    * 
-    * @var bool
-    */
-        protected $useSSL = false;
-    
-    /**
-    * Use TLS
-    * If you wish to use TLS you should ensure that $useSSL is set to false and vice-versa
-    * 
-    * @var bool
-    */
-    protected $useTLS = false;
-    
-    /**
-    * Use SSO  
-    * To indicate to adLDAP to reuse password set by the brower through NTLM or Kerberos 
-    * 
-    * @var bool
-    */
-    protected $useSSO = false;
-    
-    /**
-    * When querying group memberships, do it recursively 
-    * eg. User Fred is a member of Group A, which is a member of Group B, which is a member of Group C
-    * user_ingroup("Fred","C") will returns true with this option turned on, false if turned off     
-    * 
-    * @var bool
-    */
-        protected $recursiveGroups = true;
-        
-        // You should not need to edit anything below this line
-        //******************************************************************************************
-        
-        /**
-    * Connection and bind default variables
-    * 
-    * @var mixed
-    * @var mixed
-    */
-        protected $ldapConnection;
-        protected $ldapBind;
-    
-    /**
-    * Get the active LDAP Connection
-    * 
-    * @return resource
-    */
-    public function getLdapConnection() {
-        if ($this->ldapConnection) {
-            return $this->ldapConnection;   
-        }
-        return false;
-    }
-    
-    /**
-    * Get the bind status
-    * 
-    * @return bool
-    */
-    public function getLdapBind() {
-        return $this->ldapBind;
-    }
-    
-    /**
-    * Get the current base DN
-    * 
-    * @return string
-    */
-    public function getBaseDn() {
-        return $this->baseDn;   
-    }
-    
-    /**
-    * The group class
-    * 
-    * @var adLDAPGroups
-    */
-    protected $groupClass;
-    
-    /**
-    * Get the group class interface
-    * 
-    * @return adLDAPGroups
-    */
-    public function group() {
-        if (!$this->groupClass) {
-            $this->groupClass = new adLDAPGroups($this);
-        }   
-        return $this->groupClass;
-    }
-    
-    /**
-    * The user class
-    * 
-    * @var adLDAPUsers
-    */
-    protected $userClass;
-    
-    /**
-    * Get the userclass interface
-    * 
-    * @return adLDAPUsers
-    */
-    public function user() {
-        if (!$this->userClass) {
-            $this->userClass = new adLDAPUsers($this);
-        }   
-        return $this->userClass;
-    }
-    
-    /**
-    * The folders class
-    * 
-    * @var adLDAPFolders
-    */
-    protected $folderClass;
-    
-    /**
-    * Get the folder class interface
-    * 
-    * @return adLDAPFolders
-    */
-    public function folder() {
-        if (!$this->folderClass) {
-            $this->folderClass = new adLDAPFolders($this);
-        }   
-        return $this->folderClass;
-    }
-    
-    /**
-    * The utils class
-    * 
-    * @var adLDAPUtils
-    */
-    protected $utilClass;
-    
-    /**
-    * Get the utils class interface
-    * 
-    * @return adLDAPUtils
-    */
-    public function utilities() {
-        if (!$this->utilClass) {
-            $this->utilClass = new adLDAPUtils($this);
-        }   
-        return $this->utilClass;
-    }
-    
-    /**
-    * The contacts class
-    * 
-    * @var adLDAPContacts
-    */
-    protected $contactClass;
-    
-    /**
-    * Get the contacts class interface
-    * 
-    * @return adLDAPContacts
-    */
-    public function contact() {
-        if (!$this->contactClass) {
-            $this->contactClass = new adLDAPContacts($this);
-        }   
-        return $this->contactClass;
-    }
-    
-    /**
-    * The exchange class
-    * 
-    * @var adLDAPExchange
-    */
-    protected $exchangeClass;
-    
-    /**
-    * Get the exchange class interface
-    * 
-    * @return adLDAPExchange
-    */
-    public function exchange() {
-        if (!$this->exchangeClass) {
-            $this->exchangeClass = new adLDAPExchange($this);
-        }   
-        return $this->exchangeClass;
-    }
-    
-    /**
-    * The computers class
-    * 
-    * @var adLDAPComputers
-    */
-    protected $computersClass;
-    
-    /**
-    * Get the computers class interface
-    * 
-    * @return adLDAPComputers
-    */
-    public function computer() {
-        if (!$this->computerClass) {
-            $this->computerClass = new adLDAPComputers($this);
-        }   
-        return $this->computerClass;
-    }
-
-    /**
-    * Getters and Setters
-    */
-    
-    /**
-    * Set the account suffix
-    * 
-    * @param string $accountSuffix
-    * @return void
-    */
-    public function setAccountSuffix($accountSuffix)
-    {
-          $this->accountSuffix = $accountSuffix;
-    }
-
-    /**
-    * Get the account suffix
-    * 
-    * @return string
-    */
-    public function getAccountSuffix()
-    {
-          return $this->accountSuffix;
-    }
-    
-    /**
-    * Set the domain controllers array
-    * 
-    * @param array $domainControllers
-    * @return void
-    */
-    public function setDomainControllers(array $domainControllers)
-    {
-          $this->domainControllers = $domainControllers;
-    }
-
-    /**
-    * Get the list of domain controllers
-    * 
-    * @return void
-    */
-    public function getDomainControllers()
-    {
-          return $this->domainControllers;
-    }
-    
-    /**
-    * Sets the port number your domain controller communicates over
-    * 
-    * @param int $adPort
-    */
-    public function setPort($adPort) 
-    { 
-        $this->adPort = $adPort; 
-    } 
-    
-    /**
-    * Gets the port number your domain controller communicates over
-    * 
-    * @return int
-    */
-    public function getPort() 
-    { 
-        return $this->adPort; 
-    } 
-    
-    /**
-    * Set the username of an account with higher priviledges
-    * 
-    * @param string $adminUsername
-    * @return void
-    */
-    public function setAdminUsername($adminUsername)
-    {
-          $this->adminUsername = $adminUsername;
-    }
-
-    /**
-    * Get the username of the account with higher priviledges
-    * 
-    * This will throw an exception for security reasons
-    */
-    public function getAdminUsername()
-    {
-          throw new adLDAPException('For security reasons you cannot access the domain administrator account details');
-    }
-    
-    /**
-    * Set the password of an account with higher priviledges
-    * 
-    * @param string $adminPassword
-    * @return void
-    */
-    public function setAdminPassword($adminPassword)
-    {
-          $this->adminPassword = $adminPassword;
-    }
-
-    /**
-    * Get the password of the account with higher priviledges
-    * 
-    * This will throw an exception for security reasons
-    */
-    public function getAdminPassword()
-    {
-          throw new adLDAPException('For security reasons you cannot access the domain administrator account details');
-    }
-    
-    /**
-    * Set whether to detect the true primary group
-    * 
-    * @param bool $realPrimaryGroup
-    * @return void
-    */
-    public function setRealPrimaryGroup($realPrimaryGroup)
-    {
-          $this->realPrimaryGroup = $realPrimaryGroup;
-    }
-
-    /**
-    * Get the real primary group setting
-    * 
-    * @return bool
-    */
-    public function getRealPrimaryGroup()
-    {
-          return $this->realPrimaryGroup;
-    }
-    
-    /**
-    * Set whether to use SSL
-    * 
-    * @param bool $useSSL
-    * @return void
-    */
-    public function setUseSSL($useSSL)
-    {
-          $this->useSSL = $useSSL;
-          // Set the default port correctly 
-          if($this->useSSL) { 
-            $this->setPort(self::ADLDAP_LDAPS_PORT); 
-          }
-          else { 
-            $this->setPort(self::ADLDAP_LDAP_PORT); 
-          } 
-    }
-
-    /**
-    * Get the SSL setting
-    * 
-    * @return bool
-    */
-    public function getUseSSL()
-    {
-          return $this->useSSL;
-    }
-    
-    /**
-    * Set whether to use TLS
-    * 
-    * @param bool $useTLS
-    * @return void
-    */
-    public function setUseTLS($useTLS)
-    {
-          $this->useTLS = $useTLS;
-    }
-
-    /**
-    * Get the TLS setting
-    * 
-    * @return bool
-    */
-    public function getUseTLS()
-    {
-          return $this->useTLS;
-    }
-    
-    /**
-    * Set whether to use SSO
-    * Requires ldap_sasl_bind support. Be sure --with-ldap-sasl is used when configuring PHP otherwise this function will be undefined. 
-    * 
-    * @param bool $useSSO
-    * @return void
-    */
-    public function setUseSSO($useSSO)
-    {
-          if ($useSSO === true && !$this->ldapSaslSupported()) {
-              throw new adLDAPException('No LDAP SASL support for PHP.  See: http://php.net/ldap_sasl_bind');
-          }
-          $this->useSSO = $useSSO;
-    }
-
-    /**
-    * Get the SSO setting
-    * 
-    * @return bool
-    */
-    public function getUseSSO()
-    {
-          return $this->useSSO;
-    }
-    
-    /**
-    * Set whether to lookup recursive groups
-    * 
-    * @param bool $recursiveGroups
-    * @return void
-    */
-    public function setRecursiveGroups($recursiveGroups)
-    {
-          $this->recursiveGroups = $recursiveGroups;
-    }
-
-    /**
-    * Get the recursive groups setting
-    * 
-    * @return bool
-    */
-    public function getRecursiveGroups()
-    {
-          return $this->recursiveGroups;
-    }
-
-    /**
-    * Default Constructor
-    * 
-    * Tries to bind to the AD domain over LDAP or LDAPs
-    * 
-    * @param array $options Array of options to pass to the constructor
-    * @throws Exception - if unable to bind to Domain Controller
-    * @return bool
-    */
-    function __construct($options = array()) {
-        // You can specifically overide any of the default configuration options setup above
-        if (count($options) > 0) {
-            if (array_key_exists("account_suffix",$options)){ $this->accountSuffix = $options["account_suffix"]; }
-            if (array_key_exists("base_dn",$options)){ $this->baseDn = $options["base_dn"]; }
-            if (array_key_exists("domain_controllers",$options)){ 
-                if (!is_array($options["domain_controllers"])) { 
-                    throw new adLDAPException('[domain_controllers] option must be an array');
-                }
-                $this->domainControllers = $options["domain_controllers"]; 
-            }
-            if (array_key_exists("admin_username",$options)){ $this->adminUsername = $options["admin_username"]; }
-            if (array_key_exists("admin_password",$options)){ $this->adminPassword = $options["admin_password"]; }
-            if (array_key_exists("real_primarygroup",$options)){ $this->realPrimaryGroup = $options["real_primarygroup"]; }
-            if (array_key_exists("use_ssl",$options)){ $this->setUseSSL($options["use_ssl"]); }
-            if (array_key_exists("use_tls",$options)){ $this->useTLS = $options["use_tls"]; }
-            if (array_key_exists("recursive_groups",$options)){ $this->recursiveGroups = $options["recursive_groups"]; }
-            if (array_key_exists("ad_port",$options)){ $this->setPort($options["ad_port"]); } 
-            if (array_key_exists("sso",$options)) { 
-                $this->setUseSSO($options["sso"]);
-                if (!$this->ldapSaslSupported()) {
-                    $this->setUseSSO(false);
-                }
-            } 
-        }
-        
-        if ($this->ldapSupported() === false) {
-            throw new adLDAPException('No LDAP support for PHP.  See: http://php.net/ldap');
-        }
-
-        return $this->connect();
-    }
-
-    /**
-    * Default Destructor
-    * 
-    * Closes the LDAP connection
-    * 
-    * @return void
-    */
-    function __destruct() { 
-        $this->close(); 
-    }
-
-    /**
-    * Connects and Binds to the Domain Controller
-    * 
-    * @return bool
-    */
-    public function connect() 
-    {
-        // Connect to the AD/LDAP server as the username/password
-        $domainController = $this->randomController();
-        if ($this->useSSL) {
-            $this->ldapConnection = ldap_connect("ldaps://" . $domainController, $this->adPort);
-        } else {
-            $this->ldapConnection = ldap_connect($domainController, $this->adPort);
-        }
-               
-        // Set some ldap options for talking to AD
-        ldap_set_option($this->ldapConnection, LDAP_OPT_PROTOCOL_VERSION, 3);
-        ldap_set_option($this->ldapConnection, LDAP_OPT_REFERRALS, 0);
-        
-        if ($this->useTLS) {
-            ldap_start_tls($this->ldapConnection);
-        }
-               
-        // Bind as a domain admin if they've set it up
-        if ($this->adminUsername !== NULL && $this->adminPassword !== NULL) {
-            $this->ldapBind = @ldap_bind($this->ldapConnection, $this->adminUsername . $this->accountSuffix, $this->adminPassword);
-            if (!$this->ldapBind) {
-                if ($this->useSSL && !$this->useTLS) {
-                    // If you have problems troubleshooting, remove the @ character from the ldapldapBind command above to get the actual error message
-                    throw new adLDAPException('Bind to Active Directory failed. Either the LDAPs connection failed or the login credentials are incorrect. AD said: ' . $this->getLastError());
-                }
-                else {
-                    throw new adLDAPException('Bind to Active Directory failed. Check the login credentials and/or server details. AD said: ' . $this->getLastError());
-                }
-            }
-        }
-        if ($this->useSSO && $_SERVER['REMOTE_USER'] && $this->adminUsername === null && $_SERVER['KRB5CCNAME']) {
-            putenv("KRB5CCNAME=" . $_SERVER['KRB5CCNAME']);  
-            $this->ldapBind = @ldap_sasl_bind($this->ldapConnection, NULL, NULL, "GSSAPI"); 
-            if (!$this->ldapBind){ 
-                throw new adLDAPException('Rebind to Active Directory failed. AD said: ' . $this->getLastError()); 
-            }
-            else {
-                return true;
-            }
-        }
-                
-        
-        if ($this->baseDn == NULL) {
-            $this->baseDn = $this->findBaseDn();   
-        }
-        
-        return true;
-    }
-    
-    /**
-    * Closes the LDAP connection
-    * 
-    * @return void
-    */
-    public function close() {
-        if ($this->ldapConnection) {
-            @ldap_close($this->ldapConnection);
-        }
-    }
-    
-    /**
-    * Validate a user's login credentials
-    * 
-    * @param string $username A user's AD username
-    * @param string $password A user's AD password
-    * @param bool optional $preventRebind
-    * @return bool
-    */
-    public function authenticate($username, $password, $preventRebind = false) {
-        // Prevent null binding
-        if ($username === NULL || $password === NULL) { return false; } 
-        if (empty($username) || empty($password)) { return false; }
-        
-        // Allow binding over SSO for Kerberos
-        if ($this->useSSO && $_SERVER['REMOTE_USER'] && $_SERVER['REMOTE_USER'] == $username && $this->adminUsername === NULL && $_SERVER['KRB5CCNAME']) { 
-            putenv("KRB5CCNAME=" . $_SERVER['KRB5CCNAME']);
-            $this->ldapBind = @ldap_sasl_bind($this->ldapConnection, NULL, NULL, "GSSAPI");
-            if (!$this->ldapBind) {
-                throw new adLDAPException('Rebind to Active Directory failed. AD said: ' . $this->getLastError());
-            }
-            else {
-                return true;
-            }
-        }
-        
-        // Bind as the user        
-        $ret = true;
-        $this->ldapBind = @ldap_bind($this->ldapConnection, $username . $this->accountSuffix, $password);
-        if (!$this->ldapBind){ 
-            $ret = false; 
-        }
-        
-        // Cnce we've checked their details, kick back into admin mode if we have it
-        if ($this->adminUsername !== NULL && !$preventRebind) {
-            $this->ldapBind = @ldap_bind($this->ldapConnection, $this->adminUsername . $this->accountSuffix , $this->adminPassword);
-            if (!$this->ldapBind){
-                // This should never happen in theory
-                throw new adLDAPException('Rebind to Active Directory failed. AD said: ' . $this->getLastError());
-            } 
-        } 
-        
-        return $ret;
-    }
-    
-    /**
-    * Find the Base DN of your domain controller
-    * 
-    * @return string
-    */
-    public function findBaseDn() 
-    {
-        $namingContext = $this->getRootDse(array('defaultnamingcontext'));   
-        return $namingContext[0]['defaultnamingcontext'][0];
-    }
-    
-    /**
-    * Get the RootDSE properties from a domain controller
-    * 
-    * @param array $attributes The attributes you wish to query e.g. defaultnamingcontext
-    * @return array
-    */
-    public function getRootDse($attributes = array("*", "+")) {
-        if (!$this->ldapBind){ return (false); }
-        
-        $sr = @ldap_read($this->ldapConnection, NULL, 'objectClass=*', $attributes);
-        $entries = @ldap_get_entries($this->ldapConnection, $sr);
-        return $entries;
-    }
-
-    /**
-    * Get last error from Active Directory
-    * 
-    * This function gets the last message from Active Directory
-    * This may indeed be a 'Success' message but if you get an unknown error
-    * it might be worth calling this function to see what errors were raised
-    * 
-    * return string
-    */
-    public function getLastError() {
-        return @ldap_error($this->ldapConnection);
-    }
-    
-    /**
-    * Detect LDAP support in php
-    * 
-    * @return bool
-    */    
-    protected function ldapSupported()
-    {
-        if (!function_exists('ldap_connect')) {
-            return false;   
-        }
-        return true;
-    }
-    
-    /**
-    * Detect ldap_sasl_bind support in PHP
-    * 
-    * @return bool
-    */
-    protected function ldapSaslSupported()
-    {
-        if (!function_exists('ldap_sasl_bind')) {
-            return false;
-        }
-        return true;
-    }
-    
-    /**
-    * Schema
-    * 
-    * @param array $attributes Attributes to be queried
-    * @return array
-    */    
-    public function adldap_schema($attributes){
-    
-        // LDAP doesn't like NULL attributes, only set them if they have values
-        // If you wish to remove an attribute you should set it to a space
-        // TO DO: Adapt user_modify to use ldap_mod_delete to remove a NULL attribute
-        $mod=array();
-        
-        // Check every attribute to see if it contains 8bit characters and then UTF8 encode them
-        array_walk($attributes, array($this, 'encode8bit'));
-
-        if ($attributes["address_city"]){ $mod["l"][0]=$attributes["address_city"]; }
-        if ($attributes["address_code"]){ $mod["postalCode"][0]=$attributes["address_code"]; }
-        //if ($attributes["address_country"]){ $mod["countryCode"][0]=$attributes["address_country"]; } // use country codes?
-        if ($attributes["address_country"]){ $mod["c"][0]=$attributes["address_country"]; }
-        if ($attributes["address_pobox"]){ $mod["postOfficeBox"][0]=$attributes["address_pobox"]; }
-        if ($attributes["address_state"]){ $mod["st"][0]=$attributes["address_state"]; }
-        if ($attributes["address_street"]){ $mod["streetAddress"][0]=$attributes["address_street"]; }
-        if ($attributes["company"]){ $mod["company"][0]=$attributes["company"]; }
-        if ($attributes["change_password"]){ $mod["pwdLastSet"][0]=0; }
-        if ($attributes["department"]){ $mod["department"][0]=$attributes["department"]; }
-        if ($attributes["description"]){ $mod["description"][0]=$attributes["description"]; }
-        if ($attributes["display_name"]){ $mod["displayName"][0]=$attributes["display_name"]; }
-        if ($attributes["email"]){ $mod["mail"][0]=$attributes["email"]; }
-        if ($attributes["expires"]){ $mod["accountExpires"][0]=$attributes["expires"]; } //unix epoch format?
-        if ($attributes["firstname"]){ $mod["givenName"][0]=$attributes["firstname"]; }
-        if ($attributes["home_directory"]){ $mod["homeDirectory"][0]=$attributes["home_directory"]; }
-        if ($attributes["home_drive"]){ $mod["homeDrive"][0]=$attributes["home_drive"]; }
-        if ($attributes["initials"]){ $mod["initials"][0]=$attributes["initials"]; }
-        if ($attributes["logon_name"]){ $mod["userPrincipalName"][0]=$attributes["logon_name"]; }
-        if ($attributes["manager"]){ $mod["manager"][0]=$attributes["manager"]; }  //UNTESTED ***Use DistinguishedName***
-        if ($attributes["office"]){ $mod["physicalDeliveryOfficeName"][0]=$attributes["office"]; }
-        if ($attributes["password"]){ $mod["unicodePwd"][0]=$this->user()->encodePassword($attributes["password"]); }
-        if ($attributes["profile_path"]){ $mod["profilepath"][0]=$attributes["profile_path"]; }
-        if ($attributes["script_path"]){ $mod["scriptPath"][0]=$attributes["script_path"]; }
-        if ($attributes["surname"]){ $mod["sn"][0]=$attributes["surname"]; }
-        if ($attributes["title"]){ $mod["title"][0]=$attributes["title"]; }
-        if ($attributes["telephone"]){ $mod["telephoneNumber"][0]=$attributes["telephone"]; }
-        if ($attributes["mobile"]){ $mod["mobile"][0]=$attributes["mobile"]; }
-        if ($attributes["pager"]){ $mod["pager"][0]=$attributes["pager"]; }
-        if ($attributes["ipphone"]){ $mod["ipphone"][0]=$attributes["ipphone"]; }
-        if ($attributes["web_page"]){ $mod["wWWHomePage"][0]=$attributes["web_page"]; }
-        if ($attributes["fax"]){ $mod["facsimileTelephoneNumber"][0]=$attributes["fax"]; }
-        if ($attributes["enabled"]){ $mod["userAccountControl"][0]=$attributes["enabled"]; }
-        if ($attributes["homephone"]){ $mod["homephone"][0]=$attributes["homephone"]; }
-        
-        // Distribution List specific schema
-        if ($attributes["group_sendpermission"]){ $mod["dlMemSubmitPerms"][0]=$attributes["group_sendpermission"]; }
-        if ($attributes["group_rejectpermission"]){ $mod["dlMemRejectPerms"][0]=$attributes["group_rejectpermission"]; }
-        
-        // Exchange Schema
-        if ($attributes["exchange_homemdb"]){ $mod["homeMDB"][0]=$attributes["exchange_homemdb"]; }
-        if ($attributes["exchange_mailnickname"]){ $mod["mailNickname"][0]=$attributes["exchange_mailnickname"]; }
-        if ($attributes["exchange_proxyaddress"]){ $mod["proxyAddresses"][0]=$attributes["exchange_proxyaddress"]; }
-        if ($attributes["exchange_usedefaults"]){ $mod["mDBUseDefaults"][0]=$attributes["exchange_usedefaults"]; }
-        if ($attributes["exchange_policyexclude"]){ $mod["msExchPoliciesExcluded"][0]=$attributes["exchange_policyexclude"]; }
-        if ($attributes["exchange_policyinclude"]){ $mod["msExchPoliciesIncluded"][0]=$attributes["exchange_policyinclude"]; }       
-        if ($attributes["exchange_addressbook"]){ $mod["showInAddressBook"][0]=$attributes["exchange_addressbook"]; }    
-        if ($attributes["exchange_altrecipient"]){ $mod["altRecipient"][0]=$attributes["exchange_altrecipient"]; } 
-        if ($attributes["exchange_deliverandredirect"]){ $mod["deliverAndRedirect"][0]=$attributes["exchange_deliverandredirect"]; }    
-        
-        // This schema is designed for contacts
-        if ($attributes["exchange_hidefromlists"]){ $mod["msExchHideFromAddressLists"][0]=$attributes["exchange_hidefromlists"]; }
-        if ($attributes["contact_email"]){ $mod["targetAddress"][0]=$attributes["contact_email"]; }
-        
-        //echo ("<pre>"); print_r($mod);
-        /*
-        // modifying a name is a bit fiddly
-        if ($attributes["firstname"] && $attributes["surname"]){
-            $mod["cn"][0]=$attributes["firstname"]." ".$attributes["surname"];
-            $mod["displayname"][0]=$attributes["firstname"]." ".$attributes["surname"];
-            $mod["name"][0]=$attributes["firstname"]." ".$attributes["surname"];
-        }
-        */
-
-        if (count($mod)==0){ return (false); }
-        return ($mod);
-    }
-    
-    /**
-    * Convert 8bit characters e.g. accented characters to UTF8 encoded characters
-    */
-    protected function encode8Bit(&$item, $key) {
-        $encode = false;
-        if (is_string($item)) {
-            for ($i=0; $i<strlen($item); $i++) {
-                if (ord($item[$i]) >> 7) {
-                    $encode = true;
-                }
-            }
-        }
-        if ($encode === true && $key != 'password') {
-            $item = utf8_encode($item);   
-        }
-    }
-    
-    /**
-    * Select a random domain controller from your domain controller array
-    * 
-    * @return string
-    */
-    protected function randomController() 
-    {
-        mt_srand(doubleval(microtime()) * 100000000); // For older PHP versions
-        /*if (sizeof($this->domainControllers) > 1) {
-            $adController = $this->domainControllers[array_rand($this->domainControllers)]; 
-            // Test if the controller is responding to pings
-            $ping = $this->pingController($adController); 
-            if ($ping === false) { 
-                // Find the current key in the domain controllers array
-                $key = array_search($adController, $this->domainControllers);
-                // Remove it so that we don't end up in a recursive loop
-                unset($this->domainControllers[$key]);
-                // Select a new controller
-                return $this->randomController(); 
-            }
-            else { 
-                return ($adController); 
-            }
-        } */
-        return $this->domainControllers[array_rand($this->domainControllers)];
-    }  
-    
-    /** 
-    * Test basic connectivity to controller 
-    * 
-    * @return bool
-    */ 
-    protected function pingController($host) {
-        $port = $this->adPort; 
-        fsockopen($host, $port, $errno, $errstr, 10); 
-        if ($errno > 0) {
-            return false;
-        }
-        return true;
-    }
-
-}
-
-/**
-* adLDAP Exception Handler
-* 
-* Exceptions of this type are thrown on bind failure or when SSL is required but not configured
-* Example:
-* try {
-*   $adldap = new adLDAP();
-* }
-* catch (adLDAPException $e) {
-*   echo $e;
-*   exit();
-* }
-*/
-class adLDAPException extends Exception {}
diff --git a/wiki/lib/plugins/authad/adLDAP/classes/adLDAPComputers.php b/wiki/lib/plugins/authad/adLDAP/classes/adLDAPComputers.php
deleted file mode 100644
index aabd88f..0000000
--- a/wiki/lib/plugins/authad/adLDAP/classes/adLDAPComputers.php
+++ /dev/null
@@ -1,153 +0,0 @@
-<?php
-/**
- * PHP LDAP CLASS FOR MANIPULATING ACTIVE DIRECTORY 
- * Version 4.0.4
- * 
- * PHP Version 5 with SSL and LDAP support
- * 
- * Written by Scott Barnett, Richard Hyland
- *   email: scott@wiggumworld.com, adldap@richardhyland.com
- *   http://adldap.sourceforge.net/
- * 
- * Copyright (c) 2006-2012 Scott Barnett, Richard Hyland
- * 
- * We'd appreciate any improvements or additions to be submitted back
- * to benefit the entire community :)
- * 
- * 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.
- * 
- * 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.
- * 
- * @category ToolsAndUtilities
- * @package adLDAP
- * @subpackage Computers
- * @author Scott Barnett, Richard Hyland
- * @copyright (c) 2006-2012 Scott Barnett, Richard Hyland
- * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html LGPLv2.1
- * @revision $Revision: 97 $
- * @version 4.0.4
- * @link http://adldap.sourceforge.net/
- */
-require_once(dirname(__FILE__) . '/../adLDAP.php');
-require_once(dirname(__FILE__) . '/../collections/adLDAPComputerCollection.php');  
-
-/**
-* COMPUTER MANAGEMENT FUNCTIONS
-*/
-class adLDAPComputers {
-    
-    /**
-    * The current adLDAP connection via dependency injection
-    * 
-    * @var adLDAP
-    */
-    protected $adldap;
-    
-    public function __construct(adLDAP $adldap) {
-        $this->adldap = $adldap;
-    }
-    
-    /**
-    * Get information about a specific computer. Returned in a raw array format from AD
-    * 
-    * @param string $computerName The name of the computer
-    * @param array $fields Attributes to return
-    * @return array
-    */
-    public function info($computerName, $fields = NULL)
-    {
-        if ($computerName === NULL) { return false; }
-        if (!$this->adldap->getLdapBind()) { return false; }
-
-        $filter = "(&(objectClass=computer)(cn=" . $computerName . "))";
-        if ($fields === NULL) { 
-            $fields = array("memberof","cn","displayname","dnshostname","distinguishedname","objectcategory","operatingsystem","operatingsystemservicepack","operatingsystemversion"); 
-        }
-        $sr = ldap_search($this->adldap->getLdapConnection(), $this->adldap->getBaseDn(), $filter, $fields);
-        $entries = ldap_get_entries($this->adldap->getLdapConnection(), $sr);
-        
-        return $entries;
-    }
-    
-    /**
-    * Find information about the computers. Returned in a raw array format from AD
-    * 
-    * @param string $computerName The name of the computer
-    * @param array $fields Array of parameters to query
-    * @return mixed
-    */
-    public function infoCollection($computerName, $fields = NULL)
-    {
-        if ($computerName === NULL) { return false; }
-        if (!$this->adldap->getLdapBind()) { return false; }
-        
-        $info = $this->info($computerName, $fields);
-        
-        if ($info !== false) {
-            $collection = new adLDAPComputerCollection($info, $this->adldap);
-            return $collection;
-        }
-        return false;
-    }
-    
-    /**
-    * Check if a computer is in a group
-    * 
-    * @param string $computerName The name of the computer
-    * @param string $group The group to check
-    * @param bool $recursive Whether to check recursively
-    * @return array
-    */
-    public function inGroup($computerName, $group, $recursive = NULL)
-    {
-        if ($computerName === NULL) { return false; }
-        if ($group === NULL) { return false; }
-        if (!$this->adldap->getLdapBind()) { return false; }
-        if ($recursive === NULL) { $recursive = $this->adldap->getRecursiveGroups(); } // use the default option if they haven't set it
-
-        //get a list of the groups
-        $groups = $this->groups($computerName, array("memberof"), $recursive);
-
-        //return true if the specified group is in the group list
-        if (in_array($group, $groups)){ 
-            return true; 
-        }
-
-        return false;
-    }
-    
-    /**
-    * Get the groups a computer is in
-    * 
-    * @param string $computerName The name of the computer
-    * @param bool $recursive Whether to check recursively
-    * @return array
-    */
-    public function groups($computerName, $recursive = NULL)
-    {
-        if ($computerName === NULL) { return false; }
-        if ($recursive === NULL) { $recursive = $this->adldap->getRecursiveGroups(); } //use the default option if they haven't set it
-        if (!$this->adldap->getLdapBind()){ return false; }
-
-        //search the directory for their information
-        $info = @$this->info($computerName, array("memberof", "primarygroupid"));
-        $groups = $this->adldap->utilities()->niceNames($info[0]["memberof"]); //presuming the entry returned is our guy (unique usernames)
-
-        if ($recursive === true) {
-            foreach ($groups as $id => $groupName){
-              $extraGroups = $this->adldap->group()->recursiveGroups($groupName);
-              $groups = array_merge($groups, $extraGroups);
-            }
-        }
-
-        return $groups;
-    }
-    
-}
-?>
\ No newline at end of file
diff --git a/wiki/lib/plugins/authad/adLDAP/classes/adLDAPContacts.php b/wiki/lib/plugins/authad/adLDAP/classes/adLDAPContacts.php
deleted file mode 100644
index 42a0d75..0000000
--- a/wiki/lib/plugins/authad/adLDAP/classes/adLDAPContacts.php
+++ /dev/null
@@ -1,294 +0,0 @@
-<?php
-/**
- * PHP LDAP CLASS FOR MANIPULATING ACTIVE DIRECTORY 
- * Version 4.0.4
- * 
- * PHP Version 5 with SSL and LDAP support
- * 
- * Written by Scott Barnett, Richard Hyland
- *   email: scott@wiggumworld.com, adldap@richardhyland.com
- *   http://adldap.sourceforge.net/
- * 
- * Copyright (c) 2006-2012 Scott Barnett, Richard Hyland
- * 
- * We'd appreciate any improvements or additions to be submitted back
- * to benefit the entire community :)
- * 
- * 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.
- * 
- * 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.
- * 
- * @category ToolsAndUtilities
- * @package adLDAP
- * @subpackage Contacts
- * @author Scott Barnett, Richard Hyland
- * @copyright (c) 2006-2012 Scott Barnett, Richard Hyland
- * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html LGPLv2.1
- * @revision $Revision: 97 $
- * @version 4.0.4
- * @link http://adldap.sourceforge.net/
- */
-
-require_once(dirname(__FILE__) . '/../adLDAP.php');
-require_once(dirname(__FILE__) . '/../collections/adLDAPContactCollection.php');
-
-class adLDAPContacts {
-    /**
-    * The current adLDAP connection via dependency injection
-    * 
-    * @var adLDAP
-    */
-    protected $adldap;
-    
-    public function __construct(adLDAP $adldap) {
-        $this->adldap = $adldap;
-    }
-    
-    //*****************************************************************************************************************
-    // CONTACT FUNCTIONS
-    // * Still work to do in this area, and new functions to write
-    
-    /**
-    * Create a contact
-    * 
-    * @param array $attributes The attributes to set to the contact
-    * @return bool
-    */
-    public function create($attributes)
-    {
-        // Check for compulsory fields
-        if (!array_key_exists("display_name", $attributes)) { return "Missing compulsory field [display_name]"; }
-        if (!array_key_exists("email", $attributes)) { return "Missing compulsory field [email]"; }
-        if (!array_key_exists("container", $attributes)) { return "Missing compulsory field [container]"; }
-        if (!is_array($attributes["container"])) { return "Container attribute must be an array."; }
-
-        // Translate the schema
-        $add = $this->adldap->adldap_schema($attributes);
-        
-        // Additional stuff only used for adding contacts
-        $add["cn"][0] = $attributes["display_name"];
-        $add["objectclass"][0] = "top";
-        $add["objectclass"][1] = "person";
-        $add["objectclass"][2] = "organizationalPerson";
-        $add["objectclass"][3] = "contact"; 
-        if (!isset($attributes['exchange_hidefromlists'])) {
-            $add["msExchHideFromAddressLists"][0] = "TRUE";
-        }
-
-        // Determine the container
-        $attributes["container"] = array_reverse($attributes["container"]);
-        $container= "OU=" . implode(",OU=", $attributes["container"]);
-
-        // Add the entry
-        $result = @ldap_add($this->adldap->getLdapConnection(), "CN=" . $this->adldap->utilities()->escapeCharacters($add["cn"][0]) . ", " . $container . "," . $this->adldap->getBaseDn(), $add);
-        if ($result != true) { 
-            return false; 
-        }
-        
-        return true;
-    }  
-    
-    /**
-    * Determine the list of groups a contact is a member of
-    * 
-    * @param string $distinguisedname The full DN of a contact
-    * @param bool $recursive Recursively check groups
-    * @return array
-    */
-    public function groups($distinguishedName, $recursive = NULL)
-    {
-        if ($distinguishedName === NULL) { return false; }
-        if ($recursive === NULL) { $recursive = $this->adldap->getRecursiveGroups(); } //use the default option if they haven't set it
-        if (!$this->adldap->getLdapBind()){ return false; }
-        
-        // Search the directory for their information
-        $info = @$this->info($distinguishedName, array("memberof", "primarygroupid"));
-        $groups = $this->adldap->utilities()->niceNames($info[0]["memberof"]); //presuming the entry returned is our contact
-
-        if ($recursive === true){
-            foreach ($groups as $id => $groupName){
-                $extraGroups = $this->adldap->group()->recursiveGroups($groupName);
-                $groups = array_merge($groups, $extraGroups);
-            }
-        }
-        
-        return $groups;
-    }
-    
-    /**
-    * Get contact information. Returned in a raw array format from AD
-    * 
-    * @param string $distinguisedname The full DN of a contact
-    * @param array $fields Attributes to be returned
-    * @return array
-    */
-    public function info($distinguishedName, $fields = NULL)
-    {
-        if ($distinguishedName === NULL) { return false; }
-        if (!$this->adldap->getLdapBind()) { return false; }
-
-        $filter = "distinguishedName=" . $distinguishedName;
-        if ($fields === NULL) { 
-            $fields = array("distinguishedname", "mail", "memberof", "department", "displayname", "telephonenumber", "primarygroupid", "objectsid"); 
-        }
-        $sr = ldap_search($this->adldap->getLdapConnection(), $this->adldap->getBaseDn(), $filter, $fields);
-        $entries = ldap_get_entries($this->adldap->getLdapConnection(), $sr);
-        
-        if ($entries[0]['count'] >= 1) {
-            // AD does not return the primary group in the ldap query, we may need to fudge it
-            if ($this->adldap->getRealPrimaryGroup() && isset($entries[0]["primarygroupid"][0]) && isset($entries[0]["primarygroupid"][0])){
-                //$entries[0]["memberof"][]=$this->group_cn($entries[0]["primarygroupid"][0]);
-                $entries[0]["memberof"][] = $this->adldap->group()->getPrimaryGroup($entries[0]["primarygroupid"][0], $entries[0]["objectsid"][0]);
-            } else {
-                $entries[0]["memberof"][] = "CN=Domain Users,CN=Users," . $this->adldap->getBaseDn();
-            }
-        }
-        
-        $entries[0]["memberof"]["count"]++;
-        return $entries;
-    }
-    
-    /**
-    * Find information about the contacts. Returned in a raw array format from AD
-    * 
-    * @param string $distinguishedName The full DN of a contact 
-    * @param array $fields Array of parameters to query
-    * @return mixed
-    */
-    public function infoCollection($distinguishedName, $fields = NULL)
-    {
-        if ($distinguishedName === NULL) { return false; }
-        if (!$this->adldap->getLdapBind()) { return false; }
-        
-        $info = $this->info($distinguishedName, $fields);
-        
-        if ($info !== false) {
-            $collection = new adLDAPContactCollection($info, $this->adldap);
-            return $collection;
-        }
-        return false;
-    }
-    
-    /**
-    * Determine if a contact is a member of a group
-    * 
-    * @param string $distinguisedName The full DN of a contact
-    * @param string $group The group name to query
-    * @param bool $recursive Recursively check groups
-    * @return bool
-    */
-    public function inGroup($distinguisedName, $group, $recursive = NULL)
-    {
-        if ($distinguisedName === NULL) { return false; }
-        if ($group === NULL) { return false; }
-        if (!$this->adldap->getLdapBind()) { return false; }
-        if ($recursive === NULL) { $recursive = $this->adldap->getRecursiveGroups(); } //use the default option if they haven't set it
-        
-        // Get a list of the groups
-        $groups = $this->groups($distinguisedName, array("memberof"), $recursive);
-        
-        // Return true if the specified group is in the group list
-        if (in_array($group, $groups)){ 
-            return true; 
-        }
-
-        return false;
-    }          
-    
-    /**
-    * Modify a contact
-    * 
-    * @param string $distinguishedName The contact to query
-    * @param array $attributes The attributes to modify.  Note if you set the enabled attribute you must not specify any other attributes
-    * @return bool
-    */
-    public function modify($distinguishedName, $attributes) {
-        if ($distinguishedName === NULL) { return "Missing compulsory field [distinguishedname]"; }
-        
-        // Translate the update to the LDAP schema                
-        $mod = $this->adldap->adldap_schema($attributes);
-        
-        // Check to see if this is an enabled status update
-        if (!$mod) { 
-            return false; 
-        }
-        
-        // Do the update
-        $result = ldap_modify($this->adldap->getLdapConnection(), $distinguishedName, $mod);
-        if ($result == false) { 
-            return false; 
-        }
-        
-        return true;
-    }
-    
-    /**
-    * Delete a contact
-    * 
-    * @param string $distinguishedName The contact dn to delete (please be careful here!)
-    * @return array
-    */
-    public function delete($distinguishedName) 
-    {
-        $result = $this->folder()->delete($distinguishedName);
-        if ($result != true) { 
-            return false; 
-        }       
-        return true;
-    }
-    
-    /**
-    * Return a list of all contacts
-    * 
-    * @param bool $includeDescription Include a description of a contact
-    * @param string $search The search parameters
-    * @param bool $sorted Whether to sort the results
-    * @return array
-    */
-    public function all($includeDescription = false, $search = "*", $sorted = true) {
-        if (!$this->adldap->getLdapBind()) { return false; }
-        
-        // Perform the search and grab all their details
-        $filter = "(&(objectClass=contact)(cn=" . $search . "))";
-        $fields = array("displayname","distinguishedname");           
-        $sr = ldap_search($this->adldap->getLdapConnection(), $this->adldap->getBaseDn(), $filter, $fields);
-        $entries = ldap_get_entries($this->adldap->getLdapConnection(), $sr);
-
-        $usersArray = array();
-        for ($i=0; $i<$entries["count"]; $i++){
-            if ($includeDescription && strlen($entries[$i]["displayname"][0])>0){
-                $usersArray[$entries[$i]["distinguishedname"][0]] = $entries[$i]["displayname"][0];
-            } elseif ($includeDescription){
-                $usersArray[$entries[$i]["distinguishedname"][0]] = $entries[$i]["distinguishedname"][0];
-            } else {
-                array_push($usersArray, $entries[$i]["distinguishedname"][0]);
-            }
-        }
-        if ($sorted) { 
-            asort($usersArray); 
-        }
-        return $usersArray;
-    }
-    
-    /**
-    * Mail enable a contact
-    * Allows email to be sent to them through Exchange
-    * 
-    * @param string $distinguishedname The contact to mail enable
-    * @param string $emailaddress The email address to allow emails to be sent through
-    * @param string $mailnickname The mailnickname for the contact in Exchange.  If NULL this will be set to the display name
-    * @return bool
-    */
-    public function contactMailEnable($distinguishedName, $emailAddress, $mailNickname = NULL){
-        return $this->adldap->exchange()->contactMailEnable($distinguishedName, $emailAddress, $mailNickname);
-    }
-    
-    
-}
-?>
diff --git a/wiki/lib/plugins/authad/adLDAP/classes/adLDAPExchange.php b/wiki/lib/plugins/authad/adLDAP/classes/adLDAPExchange.php
deleted file mode 100644
index d70aac7..0000000
--- a/wiki/lib/plugins/authad/adLDAP/classes/adLDAPExchange.php
+++ /dev/null
@@ -1,390 +0,0 @@
-<?php
-/**
- * PHP LDAP CLASS FOR MANIPULATING ACTIVE DIRECTORY 
- * Version 4.0.4
- * 
- * PHP Version 5 with SSL and LDAP support
- * 
- * Written by Scott Barnett, Richard Hyland
- *   email: scott@wiggumworld.com, adldap@richardhyland.com
- *   http://adldap.sourceforge.net/
- * 
- * Copyright (c) 2006-2012 Scott Barnett, Richard Hyland
- * 
- * We'd appreciate any improvements or additions to be submitted back
- * to benefit the entire community :)
- * 
- * 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.
- * 
- * 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.
- * 
- * @category ToolsAndUtilities
- * @package adLDAP
- * @subpackage Exchange
- * @author Scott Barnett, Richard Hyland
- * @copyright (c) 2006-2012 Scott Barnett, Richard Hyland
- * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html LGPLv2.1
- * @revision $Revision: 97 $
- * @version 4.0.4
- * @link http://adldap.sourceforge.net/
- */
-require_once(dirname(__FILE__) . '/../adLDAP.php');
-
-/**
-* MICROSOFT EXCHANGE FUNCTIONS
-*/
-class adLDAPExchange {
-    /**
-    * The current adLDAP connection via dependency injection
-    * 
-    * @var adLDAP
-    */
-    protected $adldap;
-    
-    public function __construct(adLDAP $adldap) {
-        $this->adldap = $adldap;
-    }
-    
-    /**
-    * Create an Exchange account
-    * 
-    * @param string $username The username of the user to add the Exchange account to
-    * @param array $storageGroup The mailbox, Exchange Storage Group, for the user account, this must be a full CN
-    *                            If the storage group has a different base_dn to the adLDAP configuration, set it using $base_dn
-    * @param string $emailAddress The primary email address to add to this user
-    * @param string $mailNickname The mail nick name.  If mail nickname is blank, the username will be used
-    * @param bool $mdbUseDefaults Indicates whether the store should use the default quota, rather than the per-mailbox quota.
-    * @param string $baseDn Specify an alternative base_dn for the Exchange storage group
-    * @param bool $isGUID Is the username passed a GUID or a samAccountName
-    * @return bool
-    */
-    public function createMailbox($username, $storageGroup, $emailAddress, $mailNickname=NULL, $useDefaults=TRUE, $baseDn=NULL, $isGUID=false)
-    {
-        if ($username === NULL){ return "Missing compulsory field [username]"; }     
-        if ($storageGroup === NULL) { return "Missing compulsory array [storagegroup]"; }
-        if (!is_array($storageGroup)) { return "[storagegroup] must be an array"; }
-        if ($emailAddress === NULL) { return "Missing compulsory field [emailAddress]"; }
-        
-        if ($baseDn === NULL) {
-            $baseDn = $this->adldap->getBaseDn();   
-        }
-        
-        $container = "CN=" . implode(",CN=", $storageGroup);
-        
-        if ($mailNickname === NULL) { 
-            $mailNickname = $username; 
-        }
-        $mdbUseDefaults = $this->adldap->utilities()->boolToString($useDefaults);
-        
-        $attributes = array(
-            'exchange_homemdb'=>$container.",".$baseDn,
-            'exchange_proxyaddress'=>'SMTP:' . $emailAddress,
-            'exchange_mailnickname'=>$mailNickname,
-            'exchange_usedefaults'=>$mdbUseDefaults
-        );
-        $result = $this->adldap->user()->modify($username, $attributes, $isGUID);
-        if ($result == false) { 
-            return false; 
-        }
-        return true;
-    }
-    
-    /**
-    * Add an X400 address to Exchange
-    * See http://tools.ietf.org/html/rfc1685 for more information.
-    * An X400 Address looks similar to this X400:c=US;a= ;p=Domain;o=Organization;s=Doe;g=John;
-    * 
-    * @param string $username The username of the user to add the X400 to to
-    * @param string $country Country
-    * @param string $admd Administration Management Domain
-    * @param string $pdmd Private Management Domain (often your AD domain)
-    * @param string $org Organization
-    * @param string $surname Surname
-    * @param string $givenName Given name
-    * @param bool $isGUID Is the username passed a GUID or a samAccountName
-    * @return bool
-    */
-    public function addX400($username, $country, $admd, $pdmd, $org, $surname, $givenName, $isGUID=false) 
-    {
-        if ($username === NULL){ return "Missing compulsory field [username]"; }     
-        
-        $proxyValue = 'X400:';
-            
-        // Find the dn of the user
-        $user = $this->adldap->user()->info($username, array("cn","proxyaddresses"), $isGUID);
-        if ($user[0]["dn"] === NULL) { return false; }
-        $userDn = $user[0]["dn"];
-        
-        // We do not have to demote an email address from the default so we can just add the new proxy address
-        $attributes['exchange_proxyaddress'] = $proxyValue . 'c=' . $country . ';a=' . $admd . ';p=' . $pdmd . ';o=' . $org . ';s=' . $surname . ';g=' . $givenName . ';';
-       
-        // Translate the update to the LDAP schema                
-        $add = $this->adldap->adldap_schema($attributes);
-        
-        if (!$add) { return false; }
-        
-        // Do the update
-        // Take out the @ to see any errors, usually this error might occur because the address already
-        // exists in the list of proxyAddresses
-        $result = @ldap_mod_add($this->adldap->getLdapConnection(), $userDn, $add);
-        if ($result == false) { 
-            return false; 
-        }
-        
-        return true;
-    }
-    
-    /**
-    * Add an address to Exchange
-    * 
-    * @param string $username The username of the user to add the Exchange account to
-    * @param string $emailAddress The email address to add to this user
-    * @param bool $default Make this email address the default address, this is a bit more intensive as we have to demote any existing default addresses
-    * @param bool $isGUID Is the username passed a GUID or a samAccountName
-    * @return bool
-    */
-    public function addAddress($username, $emailAddress, $default = FALSE, $isGUID = false) 
-    {
-        if ($username === NULL) { return "Missing compulsory field [username]"; }     
-        if ($emailAddress === NULL) { return "Missing compulsory fields [emailAddress]"; }
-        
-        $proxyValue = 'smtp:';
-        if ($default === true) {
-            $proxyValue = 'SMTP:';
-        }
-              
-        // Find the dn of the user
-        $user = $this->adldap->user()->info($username, array("cn","proxyaddresses"), $isGUID);
-        if ($user[0]["dn"] === NULL){ return false; }
-        $userDn = $user[0]["dn"];
-        
-        // We need to scan existing proxy addresses and demote the default one
-        if (is_array($user[0]["proxyaddresses"]) && $default === true) {
-            $modAddresses = array();
-            for ($i=0;$i<sizeof($user[0]['proxyaddresses']);$i++) {
-                if (strstr($user[0]['proxyaddresses'][$i], 'SMTP:') !== false) {
-                    $user[0]['proxyaddresses'][$i] = str_replace('SMTP:', 'smtp:', $user[0]['proxyaddresses'][$i]);
-                }
-                if ($user[0]['proxyaddresses'][$i] != '') {
-                    $modAddresses['proxyAddresses'][$i] = $user[0]['proxyaddresses'][$i];
-                }
-            }
-            $modAddresses['proxyAddresses'][(sizeof($user[0]['proxyaddresses'])-1)] = 'SMTP:' . $emailAddress;
-            
-            $result = @ldap_mod_replace($this->adldap->getLdapConnection(), $userDn, $modAddresses);
-            if ($result == false) { 
-                return false; 
-            }
-            
-            return true;
-        }
-        else {
-            // We do not have to demote an email address from the default so we can just add the new proxy address
-            $attributes['exchange_proxyaddress'] = $proxyValue . $emailAddress;
-            
-            // Translate the update to the LDAP schema                
-            $add = $this->adldap->adldap_schema($attributes);
-            
-            if (!$add) { 
-                return false; 
-            }
-            
-            // Do the update
-            // Take out the @ to see any errors, usually this error might occur because the address already
-            // exists in the list of proxyAddresses
-            $result = @ldap_mod_add($this->adldap->getLdapConnection(), $userDn,$add);
-            if ($result == false) { 
-                return false; 
-            }
-            
-            return true;
-        }
-    }
-    
-    /**
-    * Remove an address to Exchange
-    * If you remove a default address the account will no longer have a default, 
-    * we recommend changing the default address first
-    * 
-    * @param string $username The username of the user to add the Exchange account to
-    * @param string $emailAddress The email address to add to this user
-    * @param bool $isGUID Is the username passed a GUID or a samAccountName
-    * @return bool
-    */
-    public function deleteAddress($username, $emailAddress, $isGUID=false) 
-    {
-        if ($username === NULL) { return "Missing compulsory field [username]"; }     
-        if ($emailAddress === NULL) { return "Missing compulsory fields [emailAddress]"; }
-        
-        // Find the dn of the user
-        $user = $this->adldap->user()->info($username, array("cn","proxyaddresses"), $isGUID);
-        if ($user[0]["dn"] === NULL) { return false; }
-        $userDn = $user[0]["dn"];
-        
-        if (is_array($user[0]["proxyaddresses"])) {
-            $mod = array();
-            for ($i=0;$i<sizeof($user[0]['proxyaddresses']);$i++) {
-                if (strstr($user[0]['proxyaddresses'][$i], 'SMTP:') !== false && $user[0]['proxyaddresses'][$i] == 'SMTP:' . $emailAddress) {
-                    $mod['proxyAddresses'][0] = 'SMTP:' . $emailAddress;
-                }
-                elseif (strstr($user[0]['proxyaddresses'][$i], 'smtp:') !== false && $user[0]['proxyaddresses'][$i] == 'smtp:' . $emailAddress) {
-                    $mod['proxyAddresses'][0] = 'smtp:' . $emailAddress;
-                }
-            }
-            
-            $result = @ldap_mod_del($this->adldap->getLdapConnection(), $userDn,$mod);
-            if ($result == false) { 
-                return false; 
-            }
-            
-            return true;
-        }
-        else {
-            return false;
-        }
-    }
-    /**
-    * Change the default address
-    * 
-    * @param string $username The username of the user to add the Exchange account to
-    * @param string $emailAddress The email address to make default
-    * @param bool $isGUID Is the username passed a GUID or a samAccountName
-    * @return bool
-    */
-    public function primaryAddress($username, $emailAddress, $isGUID = false) 
-    {
-        if ($username === NULL) { return "Missing compulsory field [username]"; }     
-        if ($emailAddress === NULL) { return "Missing compulsory fields [emailAddress]"; }
-        
-        // Find the dn of the user
-        $user = $this->adldap->user()->info($username, array("cn","proxyaddresses"), $isGUID);
-        if ($user[0]["dn"] === NULL){ return false; }
-        $userDn = $user[0]["dn"];
-        
-        if (is_array($user[0]["proxyaddresses"])) {
-            $modAddresses = array();
-            for ($i=0;$i<sizeof($user[0]['proxyaddresses']);$i++) {
-                if (strstr($user[0]['proxyaddresses'][$i], 'SMTP:') !== false) {
-                    $user[0]['proxyaddresses'][$i] = str_replace('SMTP:', 'smtp:', $user[0]['proxyaddresses'][$i]);
-                }
-                if ($user[0]['proxyaddresses'][$i] == 'smtp:' . $emailAddress) {
-                    $user[0]['proxyaddresses'][$i] = str_replace('smtp:', 'SMTP:', $user[0]['proxyaddresses'][$i]);
-                }
-                if ($user[0]['proxyaddresses'][$i] != '') {
-                    $modAddresses['proxyAddresses'][$i] = $user[0]['proxyaddresses'][$i];
-                }
-            }
-            
-            $result = @ldap_mod_replace($this->adldap->getLdapConnection(), $userDn, $modAddresses);
-            if ($result == false) { 
-                return false; 
-            }
-            
-            return true;
-        }
-        
-    }
-    
-    /**
-    * Mail enable a contact
-    * Allows email to be sent to them through Exchange
-    * 
-    * @param string $distinguishedName The contact to mail enable
-    * @param string $emailAddress The email address to allow emails to be sent through
-    * @param string $mailNickname The mailnickname for the contact in Exchange.  If NULL this will be set to the display name
-    * @return bool
-    */
-    public function contactMailEnable($distinguishedName, $emailAddress, $mailNickname = NULL)
-    {
-        if ($distinguishedName === NULL) { return "Missing compulsory field [distinguishedName]"; }   
-        if ($emailAddress === NULL) { return "Missing compulsory field [emailAddress]"; }  
-        
-        if ($mailNickname !== NULL) {
-            // Find the dn of the user
-            $user = $this->adldap->contact()->info($distinguishedName, array("cn","displayname"));
-            if ($user[0]["displayname"] === NULL) { return false; }
-            $mailNickname = $user[0]['displayname'][0];
-        }
-        
-        $attributes = array("email"=>$emailAddress,"contact_email"=>"SMTP:" . $emailAddress,"exchange_proxyaddress"=>"SMTP:" . $emailAddress,"exchange_mailnickname" => $mailNickname);
-         
-        // Translate the update to the LDAP schema                
-        $mod = $this->adldap->adldap_schema($attributes);
-        
-        // Check to see if this is an enabled status update
-        if (!$mod) { return false; }
-        
-        // Do the update
-        $result = ldap_modify($this->adldap->getLdapConnection(), $distinguishedName, $mod);
-        if ($result == false) { return false; }
-        
-        return true;
-    }
-    
-    /**
-    * Returns a list of Exchange Servers in the ConfigurationNamingContext of the domain
-    * 
-    * @param array $attributes An array of the AD attributes you wish to return
-    * @return array
-    */
-    public function servers($attributes = array('cn','distinguishedname','serialnumber')) 
-    {
-        if (!$this->adldap->getLdapBind()){ return false; }
-        
-        $configurationNamingContext = $this->adldap->getRootDse(array('configurationnamingcontext'));
-        $sr = @ldap_search($this->adldap->getLdapConnection(), $configurationNamingContext[0]['configurationnamingcontext'][0],'(&(objectCategory=msExchExchangeServer))', $attributes);
-        $entries = @ldap_get_entries($this->adldap->getLdapConnection(), $sr);
-        return $entries;
-    }
-    
-    /**
-    * Returns a list of Storage Groups in Exchange for a given mail server
-    * 
-    * @param string $exchangeServer The full DN of an Exchange server.  You can use exchange_servers() to find the DN for your server
-    * @param array $attributes An array of the AD attributes you wish to return
-    * @param bool $recursive If enabled this will automatically query the databases within a storage group
-    * @return array
-    */
-    public function storageGroups($exchangeServer, $attributes = array('cn','distinguishedname'), $recursive = NULL) 
-    {
-        if (!$this->adldap->getLdapBind()){ return false; }
-        if ($exchangeServer === NULL) { return "Missing compulsory field [exchangeServer]"; }
-        if ($recursive === NULL) { $recursive = $this->adldap->getRecursiveGroups(); }
-
-        $filter = '(&(objectCategory=msExchStorageGroup))';
-        $sr = @ldap_search($this->adldap->getLdapConnection(), $exchangeServer, $filter, $attributes);
-        $entries = @ldap_get_entries($this->adldap->getLdapConnection(), $sr);
-
-        if ($recursive === true) {
-            for ($i=0; $i<$entries['count']; $i++) {
-                $entries[$i]['msexchprivatemdb'] = $this->storageDatabases($entries[$i]['distinguishedname'][0]);       
-            }
-        }
-        
-        return $entries;
-    }
-    
-    /**
-    * Returns a list of Databases within any given storage group in Exchange for a given mail server
-    * 
-    * @param string $storageGroup The full DN of an Storage Group.  You can use exchange_storage_groups() to find the DN 
-    * @param array $attributes An array of the AD attributes you wish to return
-    * @return array
-    */
-    public function storageDatabases($storageGroup, $attributes = array('cn','distinguishedname','displayname')) {
-        if (!$this->adldap->getLdapBind()){ return false; }
-        if ($storageGroup === NULL) { return "Missing compulsory field [storageGroup]"; }
-        
-        $filter = '(&(objectCategory=msExchPrivateMDB))';
-        $sr = @ldap_search($this->adldap->getLdapConnection(), $storageGroup, $filter, $attributes);
-        $entries = @ldap_get_entries($this->adldap->getLdapConnection(), $sr);
-        return $entries;
-    }
-}
-?>
\ No newline at end of file
diff --git a/wiki/lib/plugins/authad/adLDAP/classes/adLDAPFolders.php b/wiki/lib/plugins/authad/adLDAP/classes/adLDAPFolders.php
deleted file mode 100644
index 67b1474..0000000
--- a/wiki/lib/plugins/authad/adLDAP/classes/adLDAPFolders.php
+++ /dev/null
@@ -1,179 +0,0 @@
-<?php
-/**
- * PHP LDAP CLASS FOR MANIPULATING ACTIVE DIRECTORY 
- * Version 4.0.4
- * 
- * PHP Version 5 with SSL and LDAP support
- * 
- * Written by Scott Barnett, Richard Hyland
- *   email: scott@wiggumworld.com, adldap@richardhyland.com
- *   http://adldap.sourceforge.net/
- * 
- * Copyright (c) 2006-2012 Scott Barnett, Richard Hyland
- * 
- * We'd appreciate any improvements or additions to be submitted back
- * to benefit the entire community :)
- * 
- * 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.
- * 
- * 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.
- * 
- * @category ToolsAndUtilities
- * @package adLDAP
- * @subpackage Folders
- * @author Scott Barnett, Richard Hyland
- * @copyright (c) 2006-2012 Scott Barnett, Richard Hyland
- * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html LGPLv2.1
- * @revision $Revision: 97 $
- * @version 4.0.4
- * @link http://adldap.sourceforge.net/
- */
-require_once(dirname(__FILE__) . '/../adLDAP.php');
-
-/**
-* FOLDER / OU MANAGEMENT FUNCTIONS
-*/
-class adLDAPFolders {
-    /**
-    * The current adLDAP connection via dependency injection
-    * 
-    * @var adLDAP
-    */
-    protected $adldap;
-    
-    public function __construct(adLDAP $adldap) {
-        $this->adldap = $adldap;
-    }
-    
-    /**
-    * Delete a distinguished name from Active Directory
-    * You should never need to call this yourself, just use the wrapper functions user_delete and contact_delete
-    *
-    * @param string $dn The distinguished name to delete
-    * @return bool
-    */
-    public function delete($dn){ 
-        $result = ldap_delete($this->adldap->getLdapConnection(), $dn);
-        if ($result != true) { 
-            return false; 
-        }
-        return true;
-    }
-    
-    /**
-    * Returns a folder listing for a specific OU
-    * See http://adldap.sourceforge.net/wiki/doku.php?id=api_folder_functions
-    * 
-    * @param array $folderName An array to the OU you wish to list. 
-    *                           If set to NULL will list the root, strongly recommended to set 
-    *                           $recursive to false in that instance!
-    * @param string $dnType The type of record to list.  This can be ADLDAP_FOLDER or ADLDAP_CONTAINER.
-    * @param bool $recursive Recursively search sub folders
-    * @param bool $type Specify a type of object to search for
-    * @return array
-    */
-    public function listing($folderName = NULL, $dnType = adLDAP::ADLDAP_FOLDER, $recursive = NULL, $type = NULL) 
-    {
-        if ($recursive === NULL) { $recursive = $this->adldap->getRecursiveGroups(); } //use the default option if they haven't set it
-        if (!$this->adldap->getLdapBind()) { return false; }
-
-        $filter = '(&';
-        if ($type !== NULL) {
-            switch ($type) {
-                case 'contact':
-                    $filter .= '(objectClass=contact)';
-                    break;
-                case 'computer':
-                    $filter .= '(objectClass=computer)';
-                    break;
-                case 'group':
-                    $filter .= '(objectClass=group)';
-                    break;
-                case 'folder':
-                    $filter .= '(objectClass=organizationalUnit)';
-                    break;
-                case 'container':
-                    $filter .= '(objectClass=container)';
-                    break;
-                case 'domain':
-                    $filter .= '(objectClass=builtinDomain)';
-                    break;
-                default:
-                    $filter .= '(objectClass=user)';
-                    break;   
-            }
-        }
-        else {
-            $filter .= '(objectClass=*)';   
-        }
-        // If the folder name is null then we will search the root level of AD
-        // This requires us to not have an OU= part, just the base_dn
-        $searchOu = $this->adldap->getBaseDn();
-        if (is_array($folderName)) {
-            $ou = $dnType . "=" . implode("," . $dnType . "=", $folderName);
-            $filter .= '(!(distinguishedname=' . $ou . ',' . $this->adldap->getBaseDn() . ')))';
-            $searchOu = $ou . ',' . $this->adldap->getBaseDn();
-        }
-        else {
-            $filter .= '(!(distinguishedname=' . $this->adldap->getBaseDn() . ')))';
-        }
-
-        if ($recursive === true) {
-            $sr = ldap_search($this->adldap->getLdapConnection(), $searchOu, $filter, array('objectclass', 'distinguishedname', 'samaccountname'));
-            $entries = @ldap_get_entries($this->adldap->getLdapConnection(), $sr);
-            if (is_array($entries)) {
-                return $entries;
-            }
-        }
-        else {
-            $sr = ldap_list($this->adldap->getLdapConnection(), $searchOu, $filter, array('objectclass', 'distinguishedname', 'samaccountname'));
-            $entries = @ldap_get_entries($this->adldap->getLdapConnection(), $sr);
-            if (is_array($entries)) {
-                return $entries;
-            }
-        }
-        
-        return false;
-    }
-
-    /**
-    * Create an organizational unit
-    * 
-    * @param array $attributes Default attributes of the ou
-    * @return bool
-    */
-    public function create($attributes)
-    {
-        if (!is_array($attributes)){ return "Attributes must be an array"; }
-        if (!is_array($attributes["container"])) { return "Container attribute must be an array."; }
-        if (!array_key_exists("ou_name",$attributes)) { return "Missing compulsory field [ou_name]"; }
-        if (!array_key_exists("container",$attributes)) { return "Missing compulsory field [container]"; }
-        
-        $attributes["container"] = array_reverse($attributes["container"]);
-
-        $add=array();
-        $add["objectClass"] = "organizationalUnit";
-        $add["OU"] = $attributes['ou_name'];
-        $containers = "";
-        if (count($attributes['container']) > 0) {
-            $containers = "OU=" . implode(",OU=", $attributes["container"]) . ",";
-        }
-
-        $containers = "OU=" . implode(",OU=", $attributes["container"]);
-        $result = ldap_add($this->adldap->getLdapConnection(), "OU=" . $add["OU"] . ", " . $containers . $this->adldap->getBaseDn(), $add);
-        if ($result != true) { 
-            return false; 
-        }
-        
-        return true;
-    }
-    
-}
-
-?>
\ No newline at end of file
diff --git a/wiki/lib/plugins/authad/adLDAP/classes/adLDAPGroups.php b/wiki/lib/plugins/authad/adLDAP/classes/adLDAPGroups.php
deleted file mode 100644
index 94bc048..0000000
--- a/wiki/lib/plugins/authad/adLDAP/classes/adLDAPGroups.php
+++ /dev/null
@@ -1,631 +0,0 @@
-<?php
-/**
- * PHP LDAP CLASS FOR MANIPULATING ACTIVE DIRECTORY 
- * Version 4.0.4
- * 
- * PHP Version 5 with SSL and LDAP support
- * 
- * Written by Scott Barnett, Richard Hyland
- *   email: scott@wiggumworld.com, adldap@richardhyland.com
- *   http://adldap.sourceforge.net/
- * 
- * Copyright (c) 2006-2012 Scott Barnett, Richard Hyland
- * 
- * We'd appreciate any improvements or additions to be submitted back
- * to benefit the entire community :)
- * 
- * 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.
- * 
- * 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.
- * 
- * @category ToolsAndUtilities
- * @package adLDAP
- * @subpackage Groups
- * @author Scott Barnett, Richard Hyland
- * @copyright (c) 2006-2012 Scott Barnett, Richard Hyland
- * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html LGPLv2.1
- * @revision $Revision: 97 $
- * @version 4.0.4
- * @link http://adldap.sourceforge.net/
- */
-require_once(dirname(__FILE__) . '/../adLDAP.php');
-require_once(dirname(__FILE__) . '/../collections/adLDAPGroupCollection.php');
-
-/**
-* GROUP FUNCTIONS
-*/
-class adLDAPGroups {
-    /**
-    * The current adLDAP connection via dependency injection
-    * 
-    * @var adLDAP
-    */
-    protected $adldap;
-    
-    public function __construct(adLDAP $adldap) {
-        $this->adldap = $adldap;
-    }
-    
-    /**
-    * Add a group to a group
-    * 
-    * @param string $parent The parent group name
-    * @param string $child The child group name
-    * @return bool
-    */
-    public function addGroup($parent,$child){
-
-        // Find the parent group's dn
-        $parentGroup = $this->ginfo($parent, array("cn"));
-        if ($parentGroup[0]["dn"] === NULL){
-            return false; 
-        }
-        $parentDn = $parentGroup[0]["dn"];
-        
-        // Find the child group's dn
-        $childGroup = $this->info($child, array("cn"));
-        if ($childGroup[0]["dn"] === NULL){ 
-            return false; 
-        }
-        $childDn = $childGroup[0]["dn"];
-                
-        $add = array();
-        $add["member"] = $childDn;
-        
-        $result = @ldap_mod_add($this->adldap->getLdapConnection(), $parentDn, $add);
-        if ($result == false) { 
-            return false; 
-        }
-        return true;
-    }
-    
-    /**
-    * Add a user to a group
-    * 
-    * @param string $group The group to add the user to
-    * @param string $user The user to add to the group
-    * @param bool $isGUID Is the username passed a GUID or a samAccountName
-    * @return bool
-    */
-    public function addUser($group, $user, $isGUID = false)
-    {
-        // Adding a user is a bit fiddly, we need to get the full DN of the user
-        // and add it using the full DN of the group
-        
-        // Find the user's dn
-        $userDn = $this->adldap->user()->dn($user, $isGUID);
-        if ($userDn === false) { 
-            return false; 
-        }
-        
-        // Find the group's dn
-        $groupInfo = $this->info($group, array("cn"));
-        if ($groupInfo[0]["dn"] === NULL) { 
-            return false; 
-        }
-        $groupDn = $groupInfo[0]["dn"];
-        
-        $add = array();
-        $add["member"] = $userDn;
-        
-        $result = @ldap_mod_add($this->adldap->getLdapConnection(), $groupDn, $add);
-        if ($result == false) { 
-            return false; 
-        }
-        return true;
-    }
-    
-    /**
-    * Add a contact to a group
-    * 
-    * @param string $group The group to add the contact to
-    * @param string $contactDn The DN of the contact to add
-    * @return bool
-    */
-    public function addContact($group, $contactDn)
-    {
-        // To add a contact we take the contact's DN
-        // and add it using the full DN of the group
-        
-        // Find the group's dn
-        $groupInfo = $this->info($group, array("cn"));
-        if ($groupInfo[0]["dn"] === NULL) { 
-            return false; 
-        }
-        $groupDn = $groupInfo[0]["dn"];
-        
-        $add = array();
-        $add["member"] = $contactDn;
-        
-        $result = @ldap_mod_add($this->adldap->getLdapConnection(), $groupDn, $add);
-        if ($result == false) { 
-            return false; 
-        }
-        return true;
-    }
-
-    /**
-    * Create a group
-    * 
-    * @param array $attributes Default attributes of the group
-    * @return bool
-    */
-    public function create($attributes)
-    {
-        if (!is_array($attributes)){ return "Attributes must be an array"; }
-        if (!array_key_exists("group_name", $attributes)){ return "Missing compulsory field [group_name]"; }
-        if (!array_key_exists("container", $attributes)){ return "Missing compulsory field [container]"; }
-        if (!array_key_exists("description", $attributes)){ return "Missing compulsory field [description]"; }
-        if (!is_array($attributes["container"])){ return "Container attribute must be an array."; }
-        $attributes["container"] = array_reverse($attributes["container"]);
-
-        //$member_array = array();
-        //$member_array[0] = "cn=user1,cn=Users,dc=yourdomain,dc=com";
-        //$member_array[1] = "cn=administrator,cn=Users,dc=yourdomain,dc=com";
-        
-        $add = array();
-        $add["cn"] = $attributes["group_name"];
-        $add["samaccountname"] = $attributes["group_name"];
-        $add["objectClass"] = "Group";
-        $add["description"] = $attributes["description"];
-        //$add["member"] = $member_array; UNTESTED
-
-        $container = "OU=" . implode(",OU=", $attributes["container"]);
-        $result = ldap_add($this->adldap->getLdapConnection(), "CN=" . $add["cn"] . ", " . $container . "," . $this->adldap->getBaseDn(), $add);
-        if ($result != true) { 
-            return false; 
-        }
-        return true;
-    }
-    
-    /**
-    * Delete a group account 
-    * 
-    * @param string $group The group to delete (please be careful here!) 
-    * 
-    * @return array 
-    */
-    public function delete($group) {
-        if (!$this->adldap->getLdapBind()){ return false; }
-        if ($group === null){ return "Missing compulsory field [group]"; }
-        
-        $groupInfo = $this->info($group, array("*"));
-        $dn = $groupInfo[0]['distinguishedname'][0]; 
-        $result = $this->adldap->folder()->delete($dn); 
-        if ($result !== true) { 
-            return false; 
-        } return true;   
-    }
-
-    /**
-    * Remove a group from a group
-    * 
-    * @param string $parent The parent group name
-    * @param string $child The child group name
-    * @return bool
-    */
-    public function removeGroup($parent , $child)
-    {
-    
-        // Find the parent dn
-        $parentGroup = $this->info($parent, array("cn"));
-        if ($parentGroup[0]["dn"] === NULL) { 
-            return false; 
-        }
-        $parentDn = $parentGroup[0]["dn"];
-        
-        // Find the child dn
-        $childGroup = $this->info($child, array("cn"));
-        if ($childGroup[0]["dn"] === NULL) { 
-            return false; 
-        }
-        $childDn = $childGroup[0]["dn"];
-        
-        $del = array();
-        $del["member"] = $childDn;
-        
-        $result = @ldap_mod_del($this->adldap->getLdapConnection(), $parentDn, $del);
-        if ($result == false) { 
-            return false; 
-        }
-        return true;
-    }
-    
-    /**
-    * Remove a user from a group
-    * 
-    * @param string $group The group to remove a user from
-    * @param string $user The AD user to remove from the group
-    * @param bool $isGUID Is the username passed a GUID or a samAccountName
-    * @return bool
-    */
-    public function removeUser($group, $user, $isGUID = false)
-    {
-    
-        // Find the parent dn
-        $groupInfo = $this->info($group, array("cn"));
-        if ($groupInfo[0]["dn"] === NULL){ 
-            return false; 
-        }
-        $groupDn = $groupInfo[0]["dn"];
-        
-        // Find the users dn
-        $userDn = $this->adldap->user()->dn($user, $isGUID);
-        if ($userDn === false) {
-            return false; 
-        }
-
-        $del = array();
-        $del["member"] = $userDn;
-        
-        $result = @ldap_mod_del($this->adldap->getLdapConnection(), $groupDn, $del);
-        if ($result == false) {
-            return false; 
-        }
-        return true;
-    }
-    
-    /**
-    * Remove a contact from a group
-    * 
-    * @param string $group The group to remove a user from
-    * @param string $contactDn The DN of a contact to remove from the group
-    * @return bool
-    */
-    public function removeContact($group, $contactDn)
-    {
-    
-        // Find the parent dn
-        $groupInfo = $this->info($group, array("cn"));
-        if ($groupInfo[0]["dn"] === NULL) { 
-            return false; 
-        }
-        $groupDn = $groupInfo[0]["dn"];
-    
-        $del = array();
-        $del["member"] = $contactDn;
-        
-        $result = @ldap_mod_del($this->adldap->getLdapConnection(), $groupDn, $del);
-        if ($result == false) { 
-            return false; 
-        }
-        return true;
-    }
-    
-    /**
-    * Return a list of groups in a group
-    * 
-    * @param string $group The group to query
-    * @param bool $recursive Recursively get groups
-    * @return array
-    */
-    public function inGroup($group, $recursive = NULL)
-    {
-        if (!$this->adldap->getLdapBind()){ return false; }
-        if ($recursive === NULL){ $recursive = $this->adldap->getRecursiveGroups(); } // Use the default option if they haven't set it 
-        
-        // Search the directory for the members of a group
-        $info = $this->info($group, array("member","cn"));
-        $groups = $info[0]["member"];
-        if (!is_array($groups)) {
-            return false;   
-        }
- 
-        $groupArray = array();
-
-        for ($i=0; $i<$groups["count"]; $i++){ 
-             $filter = "(&(objectCategory=group)(distinguishedName=" . $this->adldap->utilities()->ldapSlashes($groups[$i]) . "))";
-             $fields = array("samaccountname", "distinguishedname", "objectClass");
-             $sr = ldap_search($this->adldap->getLdapConnection(), $this->adldap->getBaseDn(), $filter, $fields);
-             $entries = ldap_get_entries($this->adldap->getLdapConnection(), $sr);
-
-             // not a person, look for a group  
-             if ($entries['count'] == 0 && $recursive == true) {  
-                $filter = "(&(objectCategory=group)(distinguishedName=" . $this->adldap->utilities()->ldapSlashes($groups[$i]) . "))";  
-                $fields = array("distinguishedname");  
-                $sr = ldap_search($this->adldap->getLdapConnection(), $this->adldap->getBaseDn(), $filter, $fields);  
-                $entries = ldap_get_entries($this->adldap->getLdapConnection(), $sr);  
-                if (!isset($entries[0]['distinguishedname'][0])) {
-                    continue;  
-                }
-                $subGroups = $this->inGroup($entries[0]['distinguishedname'][0], $recursive);  
-                if (is_array($subGroups)) {
-                    $groupArray = array_merge($groupArray, $subGroups); 
-                    $groupArray = array_unique($groupArray);  
-                }
-                continue;  
-             } 
-
-             $groupArray[] = $entries[0]['distinguishedname'][0];
-        }
-        return $groupArray;
-    }
-    
-    /**
-    * Return a list of members in a group
-    * 
-    * @param string $group The group to query
-    * @param bool $recursive Recursively get group members
-    * @return array
-    */
-    public function members($group, $recursive = NULL)
-    {
-        if (!$this->adldap->getLdapBind()){ return false; }
-        if ($recursive === NULL){ $recursive = $this->adldap->getRecursiveGroups(); } // Use the default option if they haven't set it 
-        // Search the directory for the members of a group
-        $info = $this->info($group, array("member","cn"));
-        $users = $info[0]["member"];
-        if (!is_array($users)) {
-            return false;   
-        }
- 
-        $userArray = array();
-
-        for ($i=0; $i<$users["count"]; $i++){ 
-             $filter = "(&(objectCategory=person)(distinguishedName=" . $this->adldap->utilities()->ldapSlashes($users[$i]) . "))";
-             $fields = array("samaccountname", "distinguishedname", "objectClass");
-             $sr = ldap_search($this->adldap->getLdapConnection(), $this->adldap->getBaseDn(), $filter, $fields);
-             $entries = ldap_get_entries($this->adldap->getLdapConnection(), $sr);
-
-             // not a person, look for a group  
-             if ($entries['count'] == 0 && $recursive == true) {  
-                $filter = "(&(objectCategory=group)(distinguishedName=" . $this->adldap->utilities()->ldapSlashes($users[$i]) . "))";  
-                $fields = array("samaccountname");  
-                $sr = ldap_search($this->adldap->getLdapConnection(), $this->adldap->getBaseDn(), $filter, $fields);  
-                $entries = ldap_get_entries($this->adldap->getLdapConnection(), $sr);  
-                if (!isset($entries[0]['samaccountname'][0])) {
-                    continue;  
-                }
-                $subUsers = $this->members($entries[0]['samaccountname'][0], $recursive);  
-                if (is_array($subUsers)) {
-                    $userArray = array_merge($userArray, $subUsers); 
-                    $userArray = array_unique($userArray);  
-                }
-                continue;  
-             } 
-             else if ($entries['count'] == 0) {   
-                continue; 
-             } 
-
-             if ((!isset($entries[0]['samaccountname'][0]) || $entries[0]['samaccountname'][0] === NULL) && $entries[0]['distinguishedname'][0] !== NULL) {
-                 $userArray[] = $entries[0]['distinguishedname'][0];
-             }
-             else if ($entries[0]['samaccountname'][0] !== NULL) {
-                $userArray[] = $entries[0]['samaccountname'][0];
-             }
-        }
-        return $userArray;
-    }
-    
-    /**
-    * Group Information.  Returns an array of raw information about a group.
-    * The group name is case sensitive
-    * 
-    * @param string $groupName The group name to retrieve info about
-    * @param array $fields Fields to retrieve
-    * @return array
-    */
-    public function info($groupName, $fields = NULL)
-    {
-        if ($groupName === NULL) { return false; }
-        if (!$this->adldap->getLdapBind()) { return false; }
-        
-        if (stristr($groupName, '+')) {
-            $groupName = stripslashes($groupName);   
-        }
-        
-        $filter = "(&(objectCategory=group)(name=" . $this->adldap->utilities()->ldapSlashes($groupName) . "))";
-        if ($fields === NULL) { 
-            $fields = array("member","memberof","cn","description","distinguishedname","objectcategory","samaccountname"); 
-        }
-        $sr = ldap_search($this->adldap->getLdapConnection(), $this->adldap->getBaseDn(), $filter, $fields);
-        $entries = ldap_get_entries($this->adldap->getLdapConnection(), $sr);
-
-        return $entries;
-    }
-    
-    /**
-    * Group Information.  Returns an collection
-    * The group name is case sensitive
-    * 
-    * @param string $groupName The group name to retrieve info about
-    * @param array $fields Fields to retrieve
-    * @return adLDAPGroupCollection
-    */
-    public function infoCollection($groupName, $fields = NULL)
-    {
-        if ($groupName === NULL) { return false; }
-        if (!$this->adldap->getLdapBind()) { return false; }
-        
-        $info = $this->info($groupName, $fields);
-        if ($info !== false) {
-            $collection = new adLDAPGroupCollection($info, $this->adldap);
-            return $collection;
-        }
-        return false;
-    }
-    
-    /**
-    * Return a complete list of "groups in groups"
-    * 
-    * @param string $group The group to get the list from
-    * @return array
-    */
-    public function recursiveGroups($group)
-    {
-        if ($group === NULL) { return false; }
-
-        $stack = array(); 
-        $processed = array(); 
-        $retGroups = array(); 
-     
-        array_push($stack, $group); // Initial Group to Start with 
-        while (count($stack) > 0) {
-            $parent = array_pop($stack);
-            array_push($processed, $parent);
-            
-            $info = $this->info($parent, array("memberof"));
-            
-            if (isset($info[0]["memberof"]) && is_array($info[0]["memberof"])) {
-                $groups = $info[0]["memberof"]; 
-                if ($groups) {
-                    $groupNames = $this->adldap->utilities()->niceNames($groups);  
-                    $retGroups = array_merge($retGroups, $groupNames); //final groups to return
-                    foreach ($groupNames as $id => $groupName) { 
-                        if (!in_array($groupName, $processed)) {
-                            array_push($stack, $groupName);
-                        }
-                    }
-                }
-            }
-        }
-        
-        return $retGroups;
-    }
-    
-    /**
-    * Returns a complete list of the groups in AD based on a SAM Account Type  
-    * 
-    * @param string $sAMAaccountType The account type to return
-    * @param bool $includeDescription Whether to return a description
-    * @param string $search Search parameters
-    * @param bool $sorted Whether to sort the results
-    * @return array
-    */
-    public function search($sAMAaccountType = adLDAP::ADLDAP_SECURITY_GLOBAL_GROUP, $includeDescription = false, $search = "*", $sorted = true) {
-        if (!$this->adldap->getLdapBind()) { return false; }
-        
-        $filter = '(&(objectCategory=group)';
-        if ($sAMAaccountType !== null) {
-            $filter .= '(samaccounttype='. $sAMAaccountType .')';
-        }
-        $filter .= '(cn=' . $search . '))';
-        // Perform the search and grab all their details
-        $fields = array("samaccountname", "description");
-        $sr = ldap_search($this->adldap->getLdapConnection(), $this->adldap->getBaseDn(), $filter, $fields);
-        $entries = ldap_get_entries($this->adldap->getLdapConnection(), $sr);
-
-        $groupsArray = array();        
-        for ($i=0; $i<$entries["count"]; $i++){
-            if ($includeDescription && strlen($entries[$i]["description"][0]) > 0 ) {
-                $groupsArray[$entries[$i]["samaccountname"][0]] = $entries[$i]["description"][0];
-            }
-            else if ($includeDescription){
-                $groupsArray[$entries[$i]["samaccountname"][0]] = $entries[$i]["samaccountname"][0];
-            }
-            else {
-                array_push($groupsArray, $entries[$i]["samaccountname"][0]);
-            }
-        }
-        if ($sorted) { 
-            asort($groupsArray); 
-        }
-        return $groupsArray;
-    }
-    
-    /**
-    * Returns a complete list of all groups in AD
-    * 
-    * @param bool $includeDescription Whether to return a description
-    * @param string $search Search parameters
-    * @param bool $sorted Whether to sort the results
-    * @return array
-    */
-    public function all($includeDescription = false, $search = "*", $sorted = true){
-        $groupsArray = $this->search(null, $includeDescription, $search, $sorted);
-        return $groupsArray;
-    }
-    
-    /**
-    * Returns a complete list of security groups in AD
-    * 
-    * @param bool $includeDescription Whether to return a description
-    * @param string $search Search parameters
-    * @param bool $sorted Whether to sort the results
-    * @return array
-    */
-    public function allSecurity($includeDescription = false, $search = "*", $sorted = true){
-        $groupsArray = $this->search(adLDAP::ADLDAP_SECURITY_GLOBAL_GROUP, $includeDescription, $search, $sorted);
-        return $groupsArray;
-    }
-    
-    /**
-    * Returns a complete list of distribution lists in AD
-    * 
-    * @param bool $includeDescription Whether to return a description
-    * @param string $search Search parameters
-    * @param bool $sorted Whether to sort the results
-    * @return array
-    */
-    public function allDistribution($includeDescription = false, $search = "*", $sorted = true){
-        $groupsArray = $this->search(adLDAP::ADLDAP_DISTRIBUTION_GROUP, $includeDescription, $search, $sorted);
-        return $groupsArray;
-    }
-    
-    /**
-    * Coping with AD not returning the primary group
-    * http://support.microsoft.com/?kbid=321360 
-    * 
-    * This is a re-write based on code submitted by Bruce which prevents the 
-    * need to search each security group to find the true primary group
-    * 
-    * @param string $gid Group ID
-    * @param string $usersid User's Object SID
-    * @return mixed
-    */
-    public function getPrimaryGroup($gid, $usersid)
-    {
-        if ($gid === NULL || $usersid === NULL) { return false; }
-        $sr = false;
-
-        $gsid = substr_replace($usersid, pack('V',$gid), strlen($usersid)-4,4);
-        $filter = '(objectsid=' . $this->adldap->utilities()->getTextSID($gsid).')';
-        $fields = array("samaccountname","distinguishedname");
-        $sr = ldap_search($this->adldap->getLdapConnection(), $this->adldap->getBaseDn(), $filter, $fields);
-        $entries = ldap_get_entries($this->adldap->getLdapConnection(), $sr);
-
-        if (isset($entries[0]['distinguishedname'][0])) {
-            return $entries[0]['distinguishedname'][0];
-        }
-        return false;
-     }
-     
-     /**
-    * Coping with AD not returning the primary group
-    * http://support.microsoft.com/?kbid=321360 
-    * 
-    * For some reason it's not possible to search on primarygrouptoken=XXX
-    * If someone can show otherwise, I'd like to know about it :)
-    * this way is resource intensive and generally a pain in the @#%^
-    * 
-    * @deprecated deprecated since version 3.1, see get get_primary_group
-    * @param string $gid Group ID
-    * @return string
-    */
-    public function cn($gid){    
-        if ($gid === NULL) { return false; }
-        $sr = false;
-        $r = '';
-        
-        $filter = "(&(objectCategory=group)(samaccounttype=" . adLDAP::ADLDAP_SECURITY_GLOBAL_GROUP . "))";
-        $fields = array("primarygrouptoken", "samaccountname", "distinguishedname");
-        $sr = ldap_search($this->adldap->getLdapConnection(), $this->adldap->getBaseDn(), $filter, $fields);
-        $entries = ldap_get_entries($this->adldap->getLdapConnection(), $sr);
-        
-        for ($i=0; $i<$entries["count"]; $i++){
-            if ($entries[$i]["primarygrouptoken"][0] == $gid) {
-                $r = $entries[$i]["distinguishedname"][0];
-                $i = $entries["count"];
-            }
-        }
-
-        return $r;
-    }
-}
-?>
diff --git a/wiki/lib/plugins/authad/adLDAP/classes/adLDAPUsers.php b/wiki/lib/plugins/authad/adLDAP/classes/adLDAPUsers.php
deleted file mode 100644
index dc3ebd7..0000000
--- a/wiki/lib/plugins/authad/adLDAP/classes/adLDAPUsers.php
+++ /dev/null
@@ -1,682 +0,0 @@
-<?php
-/**
- * PHP LDAP CLASS FOR MANIPULATING ACTIVE DIRECTORY 
- * Version 4.0.4
- * 
- * PHP Version 5 with SSL and LDAP support
- * 
- * Written by Scott Barnett, Richard Hyland
- *   email: scott@wiggumworld.com, adldap@richardhyland.com
- *   http://adldap.sourceforge.net/
- * 
- * Copyright (c) 2006-2012 Scott Barnett, Richard Hyland
- * 
- * We'd appreciate any improvements or additions to be submitted back
- * to benefit the entire community :)
- * 
- * 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.
- * 
- * 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.
- * 
- * @category ToolsAndUtilities
- * @package adLDAP
- * @subpackage User
- * @author Scott Barnett, Richard Hyland
- * @copyright (c) 2006-2012 Scott Barnett, Richard Hyland
- * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html LGPLv2.1
- * @revision $Revision: 97 $
- * @version 4.0.4
- * @link http://adldap.sourceforge.net/
- */
-require_once(dirname(__FILE__) . '/../adLDAP.php');
-require_once(dirname(__FILE__) . '/../collections/adLDAPUserCollection.php');
-
-/**
-* USER FUNCTIONS
-*/
-class adLDAPUsers {
-    /**
-    * The current adLDAP connection via dependency injection
-    * 
-    * @var adLDAP
-    */
-    protected $adldap;
-    
-    public function __construct(adLDAP $adldap) {
-        $this->adldap = $adldap;
-    }
-    
-    /**
-    * Validate a user's login credentials
-    * 
-    * @param string $username A user's AD username
-    * @param string $password A user's AD password
-    * @param bool optional $prevent_rebind
-    * @return bool
-    */
-    public function authenticate($username, $password, $preventRebind = false) {
-        return $this->adldap->authenticate($username, $password, $preventRebind);
-    }
-    
-    /**
-    * Create a user
-    * 
-    * If you specify a password here, this can only be performed over SSL
-    * 
-    * @param array $attributes The attributes to set to the user account
-    * @return bool
-    */
-    public function create($attributes)
-    {
-        // Check for compulsory fields
-        if (!array_key_exists("username", $attributes)){ return "Missing compulsory field [username]"; }
-        if (!array_key_exists("firstname", $attributes)){ return "Missing compulsory field [firstname]"; }
-        if (!array_key_exists("surname", $attributes)){ return "Missing compulsory field [surname]"; }
-        if (!array_key_exists("email", $attributes)){ return "Missing compulsory field [email]"; }
-        if (!array_key_exists("container", $attributes)){ return "Missing compulsory field [container]"; }
-        if (!is_array($attributes["container"])){ return "Container attribute must be an array."; }
-
-        if (array_key_exists("password",$attributes) && (!$this->adldap->getUseSSL() && !$this->adldap->getUseTLS())){ 
-            throw new adLDAPException('SSL must be configured on your webserver and enabled in the class to set passwords.');
-        }
-
-        if (!array_key_exists("display_name", $attributes)) { 
-            $attributes["display_name"] = $attributes["firstname"] . " " . $attributes["surname"]; 
-        }
-
-        // Translate the schema
-        $add = $this->adldap->adldap_schema($attributes);
-        
-        // Additional stuff only used for adding accounts
-        $add["cn"][0] = $attributes["display_name"];
-        $add["samaccountname"][0] = $attributes["username"];
-        $add["objectclass"][0] = "top";
-        $add["objectclass"][1] = "person";
-        $add["objectclass"][2] = "organizationalPerson";
-        $add["objectclass"][3] = "user"; //person?
-        //$add["name"][0]=$attributes["firstname"]." ".$attributes["surname"];
-
-        // Set the account control attribute
-        $control_options = array("NORMAL_ACCOUNT");
-        if (!$attributes["enabled"]) { 
-            $control_options[] = "ACCOUNTDISABLE"; 
-        }
-        $add["userAccountControl"][0] = $this->accountControl($control_options);
-        
-        // Determine the container
-        $attributes["container"] = array_reverse($attributes["container"]);
-        $container = "OU=" . implode(", OU=",$attributes["container"]);
-
-        // Add the entry
-        $result = @ldap_add($this->adldap->getLdapConnection(), "CN=" . $add["cn"][0] . ", " . $container . "," . $this->adldap->getBaseDn(), $add);
-        if ($result != true) { 
-            return false; 
-        }
-        
-        return true;
-    }
-    
-    /**
-    * Account control options
-    *
-    * @param array $options The options to convert to int 
-    * @return int
-    */
-    protected function accountControl($options)
-    {
-        $val=0;
-
-        if (is_array($options)) {
-            if (in_array("SCRIPT",$options)){ $val=$val+1; }
-            if (in_array("ACCOUNTDISABLE",$options)){ $val=$val+2; }
-            if (in_array("HOMEDIR_REQUIRED",$options)){ $val=$val+8; }
-            if (in_array("LOCKOUT",$options)){ $val=$val+16; }
-            if (in_array("PASSWD_NOTREQD",$options)){ $val=$val+32; }
-            //PASSWD_CANT_CHANGE Note You cannot assign this permission by directly modifying the UserAccountControl attribute.
-            //For information about how to set the permission programmatically, see the "Property flag descriptions" section.
-            if (in_array("ENCRYPTED_TEXT_PWD_ALLOWED",$options)){ $val=$val+128; }
-            if (in_array("TEMP_DUPLICATE_ACCOUNT",$options)){ $val=$val+256; }
-            if (in_array("NORMAL_ACCOUNT",$options)){ $val=$val+512; }
-            if (in_array("INTERDOMAIN_TRUST_ACCOUNT",$options)){ $val=$val+2048; }
-            if (in_array("WORKSTATION_TRUST_ACCOUNT",$options)){ $val=$val+4096; }
-            if (in_array("SERVER_TRUST_ACCOUNT",$options)){ $val=$val+8192; }
-            if (in_array("DONT_EXPIRE_PASSWORD",$options)){ $val=$val+65536; }
-            if (in_array("MNS_LOGON_ACCOUNT",$options)){ $val=$val+131072; }
-            if (in_array("SMARTCARD_REQUIRED",$options)){ $val=$val+262144; }
-            if (in_array("TRUSTED_FOR_DELEGATION",$options)){ $val=$val+524288; }
-            if (in_array("NOT_DELEGATED",$options)){ $val=$val+1048576; }
-            if (in_array("USE_DES_KEY_ONLY",$options)){ $val=$val+2097152; }
-            if (in_array("DONT_REQ_PREAUTH",$options)){ $val=$val+4194304; } 
-            if (in_array("PASSWORD_EXPIRED",$options)){ $val=$val+8388608; }
-            if (in_array("TRUSTED_TO_AUTH_FOR_DELEGATION",$options)){ $val=$val+16777216; }
-        }
-        return $val;
-    }
-    
-    /**
-    * Delete a user account
-    * 
-    * @param string $username The username to delete (please be careful here!)
-    * @param bool $isGUID Is the username a GUID or a samAccountName
-    * @return array
-    */
-    public function delete($username, $isGUID = false) 
-    {      
-        $userinfo = $this->info($username, array("*"), $isGUID);
-        $dn = $userinfo[0]['distinguishedname'][0];
-        $result = $this->adldap->folder()->delete($dn);
-        if ($result != true) { 
-            return false;
-        }        
-        return true;
-    }
-    
-    /**
-    * Groups the user is a member of
-    * 
-    * @param string $username The username to query
-    * @param bool $recursive Recursive list of groups
-    * @param bool $isGUID Is the username passed a GUID or a samAccountName
-    * @return array
-    */
-    public function groups($username, $recursive = NULL, $isGUID = false)
-    {
-        if ($username === NULL) { return false; }
-        if ($recursive === NULL) { $recursive = $this->adldap->getRecursiveGroups(); } // Use the default option if they haven't set it
-        if (!$this->adldap->getLdapBind()) { return false; }
-        
-        // Search the directory for their information
-        $info = @$this->info($username, array("memberof", "primarygroupid"), $isGUID);
-        $groups = $this->adldap->utilities()->niceNames($info[0]["memberof"]); // Presuming the entry returned is our guy (unique usernames)
-
-        if ($recursive === true){
-            foreach ($groups as $id => $groupName){
-                $extraGroups = $this->adldap->group()->recursiveGroups($groupName);
-                $groups = array_merge($groups, $extraGroups);
-            }
-        }
-        
-        return $groups;
-    }
-    
-    /**
-    * Find information about the users. Returned in a raw array format from AD
-    * 
-    * @param string $username The username to query
-    * @param array $fields Array of parameters to query
-    * @param bool $isGUID Is the username passed a GUID or a samAccountName
-    * @return array
-    */
-    public function info($username, $fields = NULL, $isGUID = false)
-    {
-        if ($username === NULL) { return false; }
-        if (!$this->adldap->getLdapBind()) { return false; }
-
-        if ($isGUID === true) {
-            $username = $this->adldap->utilities()->strGuidToHex($username);
-            $filter = "objectguid=" . $username;
-        }
-        else if (strstr($username, "@")) {
-             $filter = "userPrincipalName=" . $username;
-        }
-        else {
-             $filter = "samaccountname=" . $username;
-        }
-        $filter = "(&(objectCategory=person)({$filter}))";
-        if ($fields === NULL) { 
-            $fields = array("samaccountname","mail","memberof","department","displayname","telephonenumber","primarygroupid","objectsid"); 
-        }
-        if (!in_array("objectsid", $fields)) {
-            $fields[] = "objectsid";
-        }
-        $sr = ldap_search($this->adldap->getLdapConnection(), $this->adldap->getBaseDn(), $filter, $fields);
-        $entries = ldap_get_entries($this->adldap->getLdapConnection(), $sr);
-        
-        if (isset($entries[0])) {
-            if ($entries[0]['count'] >= 1) {
-                if (in_array("memberof", $fields)) {
-                    // AD does not return the primary group in the ldap query, we may need to fudge it
-                    if ($this->adldap->getRealPrimaryGroup() && isset($entries[0]["primarygroupid"][0]) && isset($entries[0]["objectsid"][0])){
-                        //$entries[0]["memberof"][]=$this->group_cn($entries[0]["primarygroupid"][0]);
-                        $entries[0]["memberof"][] = $this->adldap->group()->getPrimaryGroup($entries[0]["primarygroupid"][0], $entries[0]["objectsid"][0]);
-                    } else {
-                        $entries[0]["memberof"][] = "CN=Domain Users,CN=Users," . $this->adldap->getBaseDn();
-                    }
-                    if (!isset($entries[0]["memberof"]["count"])) {
-                        $entries[0]["memberof"]["count"] = 0;
-                    }
-                    $entries[0]["memberof"]["count"]++;
-                }
-            }
-            
-            return $entries;
-        }
-        return false;
-    }
-    
-    /**
-    * Find information about the users. Returned in a raw array format from AD
-    * 
-    * @param string $username The username to query
-    * @param array $fields Array of parameters to query
-    * @param bool $isGUID Is the username passed a GUID or a samAccountName
-    * @return mixed
-    */
-    public function infoCollection($username, $fields = NULL, $isGUID = false)
-    {
-        if ($username === NULL) { return false; }
-        if (!$this->adldap->getLdapBind()) { return false; }
-        
-        $info = $this->info($username, $fields, $isGUID);
-        
-        if ($info !== false) {
-            $collection = new adLDAPUserCollection($info, $this->adldap);
-            return $collection;
-        }
-        return false;
-    }
-    
-    /**
-    * Determine if a user is in a specific group
-    * 
-    * @param string $username The username to query
-    * @param string $group The name of the group to check against
-    * @param bool $recursive Check groups recursively
-    * @param bool $isGUID Is the username passed a GUID or a samAccountName
-    * @return bool
-    */
-    public function inGroup($username, $group, $recursive = NULL, $isGUID = false)
-    {
-        if ($username === NULL) { return false; }
-        if ($group === NULL) { return false; }
-        if (!$this->adldap->getLdapBind()) { return false; }
-        if ($recursive === NULL) { $recursive = $this->adldap->getRecursiveGroups(); } // Use the default option if they haven't set it
-        
-        // Get a list of the groups
-        $groups = $this->groups($username, $recursive, $isGUID);
-        
-        // Return true if the specified group is in the group list
-        if (in_array($group, $groups)) { 
-            return true; 
-        }
-
-        return false;
-    }
-    
-    /**
-    * Determine a user's password expiry date
-    * 
-    * @param string $username The username to query
-    * @param book $isGUID Is the username passed a GUID or a samAccountName
-    * @requires bcmath http://php.net/manual/en/book.bc.php
-    * @return array
-    */
-    public function passwordExpiry($username, $isGUID = false) 
-    {
-        if ($username === NULL) { return "Missing compulsory field [username]"; }
-        if (!$this->adldap->getLdapBind()) { return false; }
-        if (!function_exists('bcmod')) { throw new adLDAPException("Missing function support [bcmod] http://php.net/manual/en/book.bc.php"); };
-        
-        $userInfo = $this->info($username, array("pwdlastset", "useraccountcontrol"), $isGUID);
-        $pwdLastSet = $userInfo[0]['pwdlastset'][0];
-        $status = array();
-        
-        if ($userInfo[0]['useraccountcontrol'][0] == '66048') {
-            // Password does not expire
-            return "Does not expire";
-        }
-        if ($pwdLastSet === '0') {
-            // Password has already expired
-            return "Password has expired";
-        }
-        
-         // Password expiry in AD can be calculated from TWO values:
-         //   - User's own pwdLastSet attribute: stores the last time the password was changed
-         //   - Domain's maxPwdAge attribute: how long passwords last in the domain
-         //
-         // Although Microsoft chose to use a different base and unit for time measurements.
-         // This function will convert them to Unix timestamps
-         $sr = ldap_read($this->adldap->getLdapConnection(), $this->adldap->getBaseDn(), 'objectclass=*', array('maxPwdAge'));
-         if (!$sr) {
-             return false;
-         }
-         $info = ldap_get_entries($this->adldap->getLdapConnection(), $sr);
-         $maxPwdAge = $info[0]['maxpwdage'][0];
-         
-
-         // See MSDN: http://msdn.microsoft.com/en-us/library/ms974598.aspx
-         //
-         // pwdLastSet contains the number of 100 nanosecond intervals since January 1, 1601 (UTC), 
-         // stored in a 64 bit integer. 
-         //
-         // The number of seconds between this date and Unix epoch is 11644473600.
-         //
-         // maxPwdAge is stored as a large integer that represents the number of 100 nanosecond
-         // intervals from the time the password was set before the password expires.
-         //
-         // We also need to scale this to seconds but also this value is a _negative_ quantity!
-         //
-         // If the low 32 bits of maxPwdAge are equal to 0 passwords do not expire
-         //
-         // Unfortunately the maths involved are too big for PHP integers, so I've had to require
-         // BCMath functions to work with arbitrary precision numbers.
-         if (bcmod($maxPwdAge, 4294967296) === '0') {
-            return "Domain does not expire passwords";
-        }
-        
-        // Add maxpwdage and pwdlastset and we get password expiration time in Microsoft's
-        // time units.  Because maxpwd age is negative we need to subtract it.
-        $pwdExpire = bcsub($pwdLastSet, $maxPwdAge);
-    
-        // Convert MS's time to Unix time
-        $status['expiryts'] = bcsub(bcdiv($pwdExpire, '10000000'), '11644473600');
-        $status['expiryformat'] = date('Y-m-d H:i:s', bcsub(bcdiv($pwdExpire, '10000000'), '11644473600'));
-        
-        return $status;
-    }
-    
-    /**
-    * Modify a user
-    * 
-    * @param string $username The username to query
-    * @param array $attributes The attributes to modify.  Note if you set the enabled attribute you must not specify any other attributes
-    * @param bool $isGUID Is the username passed a GUID or a samAccountName
-    * @return bool
-    */
-    public function modify($username, $attributes, $isGUID = false)
-    {
-        if ($username === NULL) { return "Missing compulsory field [username]"; }
-        if (array_key_exists("password", $attributes) && !$this->adldap->getUseSSL() && !$this->adldap->getUseTLS()) { 
-            throw new adLDAPException('SSL/TLS must be configured on your webserver and enabled in the class to set passwords.');
-        }
-
-        // Find the dn of the user
-        $userDn = $this->dn($username, $isGUID);
-        if ($userDn === false) { 
-            return false; 
-        }
-        
-        // Translate the update to the LDAP schema                
-        $mod = $this->adldap->adldap_schema($attributes);
-        
-        // Check to see if this is an enabled status update
-        if (!$mod && !array_key_exists("enabled", $attributes)){ 
-            return false; 
-        }
-        
-        // Set the account control attribute (only if specified)
-        if (array_key_exists("enabled", $attributes)){
-            if ($attributes["enabled"]){ 
-                $controlOptions = array("NORMAL_ACCOUNT"); 
-            }
-            else { 
-                $controlOptions = array("NORMAL_ACCOUNT", "ACCOUNTDISABLE"); 
-            }
-            $mod["userAccountControl"][0] = $this->accountControl($controlOptions);
-        }
-
-        // Do the update
-        $result = @ldap_modify($this->adldap->getLdapConnection(), $userDn, $mod);
-        if ($result == false) { 
-            return false; 
-        }
-        
-        return true;
-    }
-    
-    /**
-    * Disable a user account
-    * 
-    * @param string $username The username to disable
-    * @param bool $isGUID Is the username passed a GUID or a samAccountName
-    * @return bool
-    */
-    public function disable($username, $isGUID = false)
-    {
-        if ($username === NULL) { return "Missing compulsory field [username]"; }
-        $attributes = array("enabled" => 0);
-        $result = $this->modify($username, $attributes, $isGUID);
-        if ($result == false) { return false; }
-        
-        return true;
-    }
-    
-    /**
-    * Enable a user account
-    * 
-    * @param string $username The username to enable
-    * @param bool $isGUID Is the username passed a GUID or a samAccountName
-    * @return bool
-    */
-    public function enable($username, $isGUID = false)
-    {
-        if ($username === NULL) { return "Missing compulsory field [username]"; }
-        $attributes = array("enabled" => 1);
-        $result = $this->modify($username, $attributes, $isGUID);
-        if ($result == false) { return false; }
-        
-        return true;
-    }
-    
-    /**
-    * Set the password of a user - This must be performed over SSL
-    * 
-    * @param string $username The username to modify
-    * @param string $password The new password
-    * @param bool $isGUID Is the username passed a GUID or a samAccountName
-    * @return bool
-    */
-    public function password($username, $password, $isGUID = false)
-    {
-        if ($username === NULL) { return false; }
-        if ($password === NULL) { return false; }
-        if (!$this->adldap->getLdapBind()) { return false; }
-        if (!$this->adldap->getUseSSL() && !$this->adldap->getUseTLS()) { 
-            throw new adLDAPException('SSL must be configured on your webserver and enabled in the class to set passwords.');
-        }
-        
-        $userDn = $this->dn($username, $isGUID);
-        if ($userDn === false) { 
-            return false; 
-        }
-                
-        $add=array();
-        $add["unicodePwd"][0] = $this->encodePassword($password);
-        
-        $result = @ldap_mod_replace($this->adldap->getLdapConnection(), $userDn, $add);
-        if ($result === false){
-            $err = ldap_errno($this->adldap->getLdapConnection());
-            if ($err) {
-                $msg = 'Error ' . $err . ': ' . ldap_err2str($err) . '.';
-                if($err == 53) {
-                    $msg .= ' Your password might not match the password policy.';
-                }
-                throw new adLDAPException($msg);
-            }
-            else {
-                return false;
-            }
-        }
-        
-        return true;
-    }
-    
-    /**
-    * Encode a password for transmission over LDAP
-    *
-    * @param string $password The password to encode
-    * @return string
-    */
-    public function encodePassword($password)
-    {
-        $password="\"".$password."\"";
-        $encoded="";
-        for ($i=0; $i <strlen($password); $i++){ $encoded.="{$password{$i}}\000"; }
-        return $encoded;
-    }
-     
-    /**
-    * Obtain the user's distinguished name based on their userid 
-    * 
-    * 
-    * @param string $username The username
-    * @param bool $isGUID Is the username passed a GUID or a samAccountName
-    * @return string
-    */
-    public function dn($username, $isGUID=false)
-    {
-        $user = $this->info($username, array("cn"), $isGUID);
-        if ($user[0]["dn"] === NULL) { 
-            return false; 
-        }
-        $userDn = $user[0]["dn"];
-        return $userDn;
-    }
-    
-    /**
-    * Return a list of all users in AD
-    * 
-    * @param bool $includeDescription Return a description of the user
-    * @param string $search Search parameter
-    * @param bool $sorted Sort the user accounts
-    * @return array
-    */
-    public function all($includeDescription = false, $search = "*", $sorted = true)
-    {
-        if (!$this->adldap->getLdapBind()) { return false; }
-        
-        // Perform the search and grab all their details
-        $filter = "(&(objectClass=user)(samaccounttype=" . adLDAP::ADLDAP_NORMAL_ACCOUNT .")(objectCategory=person)(cn=" . $search . "))";
-        $fields = array("samaccountname","displayname");
-        $sr = ldap_search($this->adldap->getLdapConnection(), $this->adldap->getBaseDn(), $filter, $fields);
-        $entries = ldap_get_entries($this->adldap->getLdapConnection(), $sr);
-
-        $usersArray = array();
-        for ($i=0; $i<$entries["count"]; $i++){
-            if ($includeDescription && strlen($entries[$i]["displayname"][0])>0){
-                $usersArray[$entries[$i]["samaccountname"][0]] = $entries[$i]["displayname"][0];
-            } elseif ($includeDescription){
-                $usersArray[$entries[$i]["samaccountname"][0]] = $entries[$i]["samaccountname"][0];
-            } else {
-                array_push($usersArray, $entries[$i]["samaccountname"][0]);
-            }
-        }
-        if ($sorted) { 
-            asort($usersArray); 
-        }
-        return $usersArray;
-    }
-    
-    /**
-    * Converts a username (samAccountName) to a GUID
-    * 
-    * @param string $username The username to query
-    * @return string
-    */
-    public function usernameToGuid($username) 
-    {
-        if (!$this->adldap->getLdapBind()){ return false; }
-        if ($username === null){ return "Missing compulsory field [username]"; }
-        
-        $filter = "samaccountname=" . $username; 
-        $fields = array("objectGUID"); 
-        $sr = @ldap_search($this->adldap->getLdapConnection(), $this->adldap->getBaseDn(), $filter, $fields); 
-        if (ldap_count_entries($this->adldap->getLdapConnection(), $sr) > 0) { 
-            $entry = @ldap_first_entry($this->adldap->getLdapConnection(), $sr); 
-            $guid = @ldap_get_values_len($this->adldap->getLdapConnection(), $entry, 'objectGUID'); 
-            $strGUID = $this->adldap->utilities()->binaryToText($guid[0]);          
-            return $strGUID; 
-        }
-        return false; 
-    }
-    
-    /**
-    * Return a list of all users in AD that have a specific value in a field
-    *
-    * @param bool $includeDescription Return a description of the user
-    * @param string $searchField Field to search search for
-    * @param string $searchFilter Value to search for in the specified field
-    * @param bool $sorted Sort the user accounts
-    * @return array
-    */
-    public function find($includeDescription = false, $searchField = false, $searchFilter = false, $sorted = true){
-        if (!$this->adldap->getLdapBind()){ return false; }
-          
-        // Perform the search and grab all their details
-        $searchParams = "";
-        if ($searchField) {
-            $searchParams = "(" . $searchField . "=" . $searchFilter . ")";
-        }                           
-        $filter = "(&(objectClass=user)(samaccounttype=" . adLDAP::ADLDAP_NORMAL_ACCOUNT .")(objectCategory=person)" . $searchParams . ")";
-        $fields = array("samaccountname","displayname");
-        $sr = ldap_search($this->adldap->getLdapConnection(), $this->adldap->getBaseDn(), $filter, $fields);
-        $entries = ldap_get_entries($this->adldap->getLdapConnection(), $sr);
-
-        $usersArray = array();
-        for ($i=0; $i < $entries["count"]; $i++) {
-            if ($includeDescription && strlen($entries[$i]["displayname"][0]) > 0) {
-                $usersArray[$entries[$i]["samaccountname"][0]] = $entries[$i]["displayname"][0];
-            }
-            else if ($includeDescription) {
-                $usersArray[$entries[$i]["samaccountname"][0]] = $entries[$i]["samaccountname"][0];
-            }
-            else {
-                array_push($usersArray, $entries[$i]["samaccountname"][0]);
-            }
-        }
-        if ($sorted){ 
-          asort($usersArray); 
-        }
-        return ($usersArray);
-    }
-    
-    /**
-    * Move a user account to a different OU
-    *
-    * @param string $username The username to move (please be careful here!)
-    * @param array $container The container or containers to move the user to (please be careful here!).
-    * accepts containers in 1. parent 2. child order
-    * @return array
-    */
-    public function move($username, $container) 
-    {
-        if (!$this->adldap->getLdapBind()) { return false; }
-        if ($username === null) { return "Missing compulsory field [username]"; }
-        if ($container === null) { return "Missing compulsory field [container]"; }
-        if (!is_array($container)) { return "Container must be an array"; }
-        
-        $userInfo = $this->info($username, array("*"));
-        $dn = $userInfo[0]['distinguishedname'][0];
-        $newRDn = "cn=" . $username;
-        $container = array_reverse($container);
-        $newContainer = "ou=" . implode(",ou=",$container);
-        $newBaseDn = strtolower($newContainer) . "," . $this->adldap->getBaseDn();
-        $result = @ldap_rename($this->adldap->getLdapConnection(), $dn, $newRDn, $newBaseDn, true);
-        if ($result !== true) {
-            return false;
-        }
-        return true;
-    }
-    
-    /**
-    * Get the last logon time of any user as a Unix timestamp
-    * 
-    * @param string $username
-    * @return long $unixTimestamp
-    */
-    public function getLastLogon($username) {
-        if (!$this->adldap->getLdapBind()) { return false; }
-        if ($username === null) { return "Missing compulsory field [username]"; }
-        $userInfo = $this->info($username, array("lastLogonTimestamp"));
-        $lastLogon = adLDAPUtils::convertWindowsTimeToUnixTime($userInfo[0]['lastLogonTimestamp'][0]);
-        return $lastLogon;
-    }
-    
-}
-?>
diff --git a/wiki/lib/plugins/authad/adLDAP/classes/adLDAPUtils.php b/wiki/lib/plugins/authad/adLDAP/classes/adLDAPUtils.php
deleted file mode 100644
index 6f94fe2..0000000
--- a/wiki/lib/plugins/authad/adLDAP/classes/adLDAPUtils.php
+++ /dev/null
@@ -1,268 +0,0 @@
-<?php
-/**
- * PHP LDAP CLASS FOR MANIPULATING ACTIVE DIRECTORY 
- * Version 4.0.4
- * 
- * PHP Version 5 with SSL and LDAP support
- * 
- * Written by Scott Barnett, Richard Hyland
- *   email: scott@wiggumworld.com, adldap@richardhyland.com
- *   http://adldap.sourceforge.net/
- * 
- * Copyright (c) 2006-2012 Scott Barnett, Richard Hyland
- * 
- * We'd appreciate any improvements or additions to be submitted back
- * to benefit the entire community :)
- * 
- * 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.
- * 
- * 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.
- * 
- * @category ToolsAndUtilities
- * @package adLDAP
- * @subpackage Utils
- * @author Scott Barnett, Richard Hyland
- * @copyright (c) 2006-2012 Scott Barnett, Richard Hyland
- * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html LGPLv2.1
- * @revision $Revision: 97 $
- * @version 4.0.4
- * @link http://adldap.sourceforge.net/
- */
-require_once(dirname(__FILE__) . '/../adLDAP.php');
-
-/**
-* UTILITY FUNCTIONS
-*/
-class adLDAPUtils {
-    const ADLDAP_VERSION = '4.0.4';
-    
-    /**
-    * The current adLDAP connection via dependency injection
-    * 
-    * @var adLDAP
-    */
-    protected $adldap;
-    
-    public function __construct(adLDAP $adldap) {
-        $this->adldap = $adldap;
-    }
-    
-    
-    /**
-    * Take an LDAP query and return the nice names, without all the LDAP prefixes (eg. CN, DN)
-    *
-    * @param array $groups
-    * @return array
-    */
-    public function niceNames($groups)
-    {
-
-        $groupArray = array();
-        for ($i=0; $i<$groups["count"]; $i++){ // For each group
-            $line = $groups[$i];
-            
-            if (strlen($line)>0) { 
-                // More presumptions, they're all prefixed with CN=
-                // so we ditch the first three characters and the group
-                // name goes up to the first comma
-                $bits=explode(",", $line);
-                $groupArray[] = substr($bits[0], 3, (strlen($bits[0])-3));
-            }
-        }
-        return $groupArray;    
-    }
-    
-    /**
-    * Escape characters for use in an ldap_create function
-    * 
-    * @param string $str
-    * @return string
-    */
-    public function escapeCharacters($str) {
-        $str = str_replace(",", "\,", $str);
-        return $str;
-    }
-    
-    /**
-    * Escape strings for the use in LDAP filters
-    * 
-    * DEVELOPERS SHOULD BE DOING PROPER FILTERING IF THEY'RE ACCEPTING USER INPUT
-    * Ported from Perl's Net::LDAP::Util escape_filter_value
-    *
-    * @param string $str The string the parse
-    * @author Port by Andreas Gohr <andi@splitbrain.org>
-    * @return string
-    */
-    public function ldapSlashes($str) {
-        // see https://github.com/adldap/adLDAP/issues/22
-        return preg_replace_callback(
-            '/([\x00-\x1F\*\(\)\\\\])/',
-            function ($matches) {
-                return "\\".join("", unpack("H2", $matches[1]));
-            },
-            $str
-        );
-    }
-    /**
-    * Converts a string GUID to a hexdecimal value so it can be queried
-    *
-    * @param string $strGUID A string representation of a GUID
-    * @return string
-    */
-    public function strGuidToHex($strGUID)
-    {
-        $strGUID = str_replace('-', '', $strGUID);
-
-        $octet_str = '\\' . substr($strGUID, 6, 2);
-        $octet_str .= '\\' . substr($strGUID, 4, 2);
-        $octet_str .= '\\' . substr($strGUID, 2, 2);
-        $octet_str .= '\\' . substr($strGUID, 0, 2);
-        $octet_str .= '\\' . substr($strGUID, 10, 2);
-        $octet_str .= '\\' . substr($strGUID, 8, 2);
-        $octet_str .= '\\' . substr($strGUID, 14, 2);
-        $octet_str .= '\\' . substr($strGUID, 12, 2);
-        //$octet_str .= '\\' . substr($strGUID, 16, strlen($strGUID));
-        for ($i=16; $i<=(strlen($strGUID)-2); $i++) {
-            if (($i % 2) == 0) {
-                $octet_str .= '\\' . substr($strGUID, $i, 2);
-            }
-        }
-        
-        return $octet_str;
-    }
-    
-    /**
-    * Convert a binary SID to a text SID
-    * 
-    * @param string $binsid A Binary SID
-    * @return string
-    */
-     public function getTextSID($binsid) {
-        $hex_sid = bin2hex($binsid);
-        $rev = hexdec(substr($hex_sid, 0, 2));
-        $subcount = hexdec(substr($hex_sid, 2, 2));
-        $auth = hexdec(substr($hex_sid, 4, 12));
-        $result = "$rev-$auth";
-
-        for ($x=0;$x < $subcount; $x++) {
-            $subauth[$x] =
-                hexdec($this->littleEndian(substr($hex_sid, 16 + ($x * 8), 8)));
-                $result .= "-" . $subauth[$x];
-        }
-
-        // Cheat by tacking on the S-
-        return 'S-' . $result;
-     }
-     
-    /**
-    * Converts a little-endian hex number to one that hexdec() can convert
-    * 
-    * @param string $hex A hex code
-    * @return string
-    */
-     public function littleEndian($hex) 
-     {
-        $result = '';
-        for ($x = strlen($hex) - 2; $x >= 0; $x = $x - 2) {
-            $result .= substr($hex, $x, 2);
-        }
-        return $result;
-     }
-     
-     /**
-    * Converts a binary attribute to a string
-    * 
-    * @param string $bin A binary LDAP attribute
-    * @return string
-    */
-    public function binaryToText($bin) 
-    {
-        $hex_guid = bin2hex($bin); 
-        $hex_guid_to_guid_str = ''; 
-        for($k = 1; $k <= 4; ++$k) { 
-            $hex_guid_to_guid_str .= substr($hex_guid, 8 - 2 * $k, 2); 
-        } 
-        $hex_guid_to_guid_str .= '-'; 
-        for($k = 1; $k <= 2; ++$k) { 
-            $hex_guid_to_guid_str .= substr($hex_guid, 12 - 2 * $k, 2); 
-        } 
-        $hex_guid_to_guid_str .= '-'; 
-        for($k = 1; $k <= 2; ++$k) { 
-            $hex_guid_to_guid_str .= substr($hex_guid, 16 - 2 * $k, 2); 
-        } 
-        $hex_guid_to_guid_str .= '-' . substr($hex_guid, 16, 4); 
-        $hex_guid_to_guid_str .= '-' . substr($hex_guid, 20); 
-        return strtoupper($hex_guid_to_guid_str);   
-    }
-    
-    /**
-    * Converts a binary GUID to a string GUID
-    * 
-    * @param string $binaryGuid The binary GUID attribute to convert
-    * @return string
-    */
-    public function decodeGuid($binaryGuid) 
-    {
-        if ($binaryGuid === null){ return "Missing compulsory field [binaryGuid]"; }
-        
-        $strGUID = $this->binaryToText($binaryGuid);          
-        return $strGUID; 
-    }
-    
-    /**
-    * Convert a boolean value to a string
-    * You should never need to call this yourself
-    *
-    * @param bool $bool Boolean value
-    * @return string
-    */
-    public function boolToStr($bool) 
-    {
-        return ($bool) ? 'TRUE' : 'FALSE';
-    }
-    
-    /**
-    * Convert 8bit characters e.g. accented characters to UTF8 encoded characters
-    */
-    public function encode8Bit(&$item, $key) {
-        $encode = false;
-        if (is_string($item)) {
-            for ($i=0; $i<strlen($item); $i++) {
-                if (ord($item[$i]) >> 7) {
-                    $encode = true;
-                }
-            }
-        }
-        if ($encode === true && $key != 'password') {
-            $item = utf8_encode($item);   
-        }
-    }  
-    
-    /**
-    * Get the current class version number
-    * 
-    * @return string
-    */
-    public function getVersion() {
-        return self::ADLDAP_VERSION;
-    }
-    
-    /**
-    * Round a Windows timestamp down to seconds and remove the seconds between 1601-01-01 and 1970-01-01
-    * 
-    * @param long $windowsTime
-    * @return long $unixTime
-    */
-    public static function convertWindowsTimeToUnixTime($windowsTime) {
-      $unixTime = round($windowsTime / 10000000) - 11644477200; 
-      return $unixTime; 
-    }
-}
-
-?>
diff --git a/wiki/lib/plugins/authad/adLDAP/collections/adLDAPCollection.php b/wiki/lib/plugins/authad/adLDAP/collections/adLDAPCollection.php
deleted file mode 100644
index 433d39f..0000000
--- a/wiki/lib/plugins/authad/adLDAP/collections/adLDAPCollection.php
+++ /dev/null
@@ -1,137 +0,0 @@
-<?php
-/**
- * PHP LDAP CLASS FOR MANIPULATING ACTIVE DIRECTORY 
- * Version 4.0.4
- * 
- * PHP Version 5 with SSL and LDAP support
- * 
- * Written by Scott Barnett, Richard Hyland
- *   email: scott@wiggumworld.com, adldap@richardhyland.com
- *   http://adldap.sourceforge.net/
- * 
- * Copyright (c) 2006-2012 Scott Barnett, Richard Hyland
- * 
- * We'd appreciate any improvements or additions to be submitted back
- * to benefit the entire community :)
- * 
- * 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.
- * 
- * 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.
- * 
- * @category ToolsAndUtilities
- * @package adLDAP
- * @subpackage Collection
- * @author Scott Barnett, Richard Hyland
- * @copyright (c) 2006-2012 Scott Barnett, Richard Hyland
- * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html LGPLv2.1
- * @revision $Revision: 97 $
- * @version 4.0.4
- * @link http://adldap.sourceforge.net/
-*/
-
-abstract class adLDAPCollection
-{
-    /**
-    * The current adLDAP connection via dependency injection
-    * 
-    * @var adLDAP
-    */
-    protected $adldap;
-    
-    /**
-    * The current object being modifed / called
-    * 
-    * @var mixed
-    */
-    protected $currentObject;
-    
-    /**
-    * The raw info array from Active Directory
-    * 
-    * @var array
-    */
-    protected $info;
-    
-    public function __construct($info, adLDAP $adldap) 
-    {
-        $this->setInfo($info);   
-        $this->adldap = $adldap;
-    }
-    
-    /**
-    * Set the raw info array from Active Directory
-    * 
-    * @param array $info
-    */
-    public function setInfo(array $info) 
-    {
-        if ($this->info && sizeof($info) >= 1) {
-            unset($this->info);
-        }
-        $this->info = $info;   
-    }
-    
-    /**
-    * Magic get method to retrieve data from the raw array in a formatted way
-    * 
-    * @param string $attribute
-    * @return mixed
-    */
-    public function __get($attribute)
-    {
-        if (isset($this->info[0]) && is_array($this->info[0])) {
-            foreach ($this->info[0] as $keyAttr => $valueAttr) {
-                if (strtolower($keyAttr) == strtolower($attribute)) {
-                    if ($this->info[0][strtolower($attribute)]['count'] == 1) {
-                        return $this->info[0][strtolower($attribute)][0];   
-                    }
-                    else {
-                        $array = array();
-                        foreach ($this->info[0][strtolower($attribute)] as $key => $value) {
-                            if ((string)$key != 'count') {
-                                $array[$key] = $value;
-                            } 
-                        }  
-                        return $array;   
-                    }
-                }   
-            }
-        }
-        else {
-            return NULL;   
-        }
-    }    
-    
-    /**
-    * Magic set method to update an attribute
-    * 
-    * @param string $attribute
-    * @param string $value
-    * @return bool
-    */
-    abstract public function __set($attribute, $value);
-    
-    /** 
-    * Magic isset method to check for the existence of an attribute 
-    * 
-    * @param string $attribute 
-    * @return bool 
-    */ 
-    public function __isset($attribute) {
-        if (isset($this->info[0]) && is_array($this->info[0])) { 
-            foreach ($this->info[0] as $keyAttr => $valueAttr) { 
-                if (strtolower($keyAttr) == strtolower($attribute)) { 
-                    return true; 
-                } 
-            } 
-        } 
-        return false; 
-     } 
-}
-?>
diff --git a/wiki/lib/plugins/authad/adLDAP/collections/adLDAPComputerCollection.php b/wiki/lib/plugins/authad/adLDAP/collections/adLDAPComputerCollection.php
deleted file mode 100644
index 09f82ca..0000000
--- a/wiki/lib/plugins/authad/adLDAP/collections/adLDAPComputerCollection.php
+++ /dev/null
@@ -1,46 +0,0 @@
-<?php
-/**
- * PHP LDAP CLASS FOR MANIPULATING ACTIVE DIRECTORY 
- * Version 4.0.4
- * 
- * PHP Version 5 with SSL and LDAP support
- * 
- * Written by Scott Barnett, Richard Hyland
- *   email: scott@wiggumworld.com, adldap@richardhyland.com
- *   http://adldap.sourceforge.net/
- * 
- * Copyright (c) 2006-2012 Scott Barnett, Richard Hyland
- * 
- * We'd appreciate any improvements or additions to be submitted back
- * to benefit the entire community :)
- * 
- * 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.
- * 
- * 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.
- * 
- * @category ToolsAndUtilities
- * @package adLDAP
- * @subpackage ComputerCollection
- * @author Scott Barnett, Richard Hyland
- * @copyright (c) 2006-2012 Scott Barnett, Richard Hyland
- * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html LGPLv2.1
- * @revision $Revision: 97 $
- * @version 4.0.4
- * @link http://adldap.sourceforge.net/
-*/
-
-class adLDAPComputerCollection extends adLDAPCollection 
-{
-    
-    public function __set($attribute, $value)
-    {
-
-    }
-}
-?>
diff --git a/wiki/lib/plugins/authad/adLDAP/collections/adLDAPContactCollection.php b/wiki/lib/plugins/authad/adLDAP/collections/adLDAPContactCollection.php
deleted file mode 100644
index a9efad5..0000000
--- a/wiki/lib/plugins/authad/adLDAP/collections/adLDAPContactCollection.php
+++ /dev/null
@@ -1,46 +0,0 @@
-<?php
-/**
- * PHP LDAP CLASS FOR MANIPULATING ACTIVE DIRECTORY 
- * Version 4.0.4
- * 
- * PHP Version 5 with SSL and LDAP support
- * 
- * Written by Scott Barnett, Richard Hyland
- *   email: scott@wiggumworld.com, adldap@richardhyland.com
- *   http://adldap.sourceforge.net/
- * 
- * Copyright (c) 2006-2012 Scott Barnett, Richard Hyland
- * 
- * We'd appreciate any improvements or additions to be submitted back
- * to benefit the entire community :)
- * 
- * 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.
- * 
- * 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.
- * 
- * @category ToolsAndUtilities
- * @package adLDAP
- * @subpackage ContactCollection
- * @author Scott Barnett, Richard Hyland
- * @copyright (c) 2006-2012 Scott Barnett, Richard Hyland
- * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html LGPLv2.1
- * @revision $Revision: 97 $
- * @version 4.0.4
- * @link http://adldap.sourceforge.net/
-*/
-
-class adLDAPContactCollection extends adLDAPCollection 
-{
-    
-    public function __set($attribute, $value)
-    {
-
-    }
-}
-?>
diff --git a/wiki/lib/plugins/authad/adLDAP/collections/adLDAPGroupCollection.php b/wiki/lib/plugins/authad/adLDAP/collections/adLDAPGroupCollection.php
deleted file mode 100644
index ef4af8d..0000000
--- a/wiki/lib/plugins/authad/adLDAP/collections/adLDAPGroupCollection.php
+++ /dev/null
@@ -1,46 +0,0 @@
-<?php
-/**
- * PHP LDAP CLASS FOR MANIPULATING ACTIVE DIRECTORY 
- * Version 4.0.4
- * 
- * PHP Version 5 with SSL and LDAP support
- * 
- * Written by Scott Barnett, Richard Hyland
- *   email: scott@wiggumworld.com, adldap@richardhyland.com
- *   http://adldap.sourceforge.net/
- * 
- * Copyright (c) 2006-2012 Scott Barnett, Richard Hyland
- * 
- * We'd appreciate any improvements or additions to be submitted back
- * to benefit the entire community :)
- * 
- * 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.
- * 
- * 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.
- * 
- * @category ToolsAndUtilities
- * @package adLDAP
- * @subpackage GroupCollection
- * @author Scott Barnett, Richard Hyland
- * @copyright (c) 2006-2012 Scott Barnett, Richard Hyland
- * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html LGPLv2.1
- * @revision $Revision: 97 $
- * @version 4.0.4
- * @link http://adldap.sourceforge.net/
-*/
-
-class adLDAPGroupCollection extends adLDAPCollection 
-{
-    
-    public function __set($attribute, $value)
-    {
-
-    }
-}
-?>
diff --git a/wiki/lib/plugins/authad/adLDAP/collections/adLDAPUserCollection.php b/wiki/lib/plugins/authad/adLDAP/collections/adLDAPUserCollection.php
deleted file mode 100644
index 63fce5f..0000000
--- a/wiki/lib/plugins/authad/adLDAP/collections/adLDAPUserCollection.php
+++ /dev/null
@@ -1,46 +0,0 @@
-<?php
-/**
- * PHP LDAP CLASS FOR MANIPULATING ACTIVE DIRECTORY 
- * Version 4.0.4
- * 
- * PHP Version 5 with SSL and LDAP support
- * 
- * Written by Scott Barnett, Richard Hyland
- *   email: scott@wiggumworld.com, adldap@richardhyland.com
- *   http://adldap.sourceforge.net/
- * 
- * Copyright (c) 2006-2012 Scott Barnett, Richard Hyland
- * 
- * We'd appreciate any improvements or additions to be submitted back
- * to benefit the entire community :)
- * 
- * 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.
- * 
- * 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.
- * 
- * @category ToolsAndUtilities
- * @package adLDAP
- * @subpackage UserCollection
- * @author Scott Barnett, Richard Hyland
- * @copyright (c) 2006-2012 Scott Barnett, Richard Hyland
- * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html LGPLv2.1
- * @revision $Revision: 97 $
- * @version 4.0.4
- * @link http://adldap.sourceforge.net/
-*/
-
-class adLDAPUserCollection extends adLDAPCollection 
-{
-    
-    public function __set($attribute, $value)
-    {
-
-    }
-}
-?>
diff --git a/wiki/lib/plugins/authad/auth.php b/wiki/lib/plugins/authad/auth.php
deleted file mode 100644
index 50f7084..0000000
--- a/wiki/lib/plugins/authad/auth.php
+++ /dev/null
@@ -1,730 +0,0 @@
-<?php
-// must be run within Dokuwiki
-if(!defined('DOKU_INC')) die();
-
-require_once(DOKU_PLUGIN.'authad/adLDAP/adLDAP.php');
-require_once(DOKU_PLUGIN.'authad/adLDAP/classes/adLDAPUtils.php');
-
-/**
- * Active Directory authentication backend for DokuWiki
- *
- * This makes authentication with a Active Directory server much easier
- * than when using the normal LDAP backend by utilizing the adLDAP library
- *
- * Usage:
- *   Set DokuWiki's local.protected.php auth setting to read
- *
- *   $conf['authtype']       = 'authad';
- *
- *   $conf['plugin']['authad']['account_suffix']     = '@my.domain.org';
- *   $conf['plugin']['authad']['base_dn']            = 'DC=my,DC=domain,DC=org';
- *   $conf['plugin']['authad']['domain_controllers'] = 'srv1.domain.org,srv2.domain.org';
- *
- *   //optional:
- *   $conf['plugin']['authad']['sso']                = 1;
- *   $conf['plugin']['authad']['admin_username']     = 'root';
- *   $conf['plugin']['authad']['admin_password']     = 'pass';
- *   $conf['plugin']['authad']['real_primarygroup']  = 1;
- *   $conf['plugin']['authad']['use_ssl']            = 1;
- *   $conf['plugin']['authad']['use_tls']            = 1;
- *   $conf['plugin']['authad']['debug']              = 1;
- *   // warn user about expiring password this many days in advance:
- *   $conf['plugin']['authad']['expirywarn']         = 5;
- *
- *   // get additional information to the userinfo array
- *   // add a list of comma separated ldap contact fields.
- *   $conf['plugin']['authad']['additional'] = 'field1,field2';
- *
- * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * @author  James Van Lommel <jamesvl@gmail.com>
- * @link    http://www.nosq.com/blog/2005/08/ldap-activedirectory-and-dokuwiki/
- * @author  Andreas Gohr <andi@splitbrain.org>
- * @author  Jan Schumann <js@schumann-it.com>
- */
-class auth_plugin_authad extends DokuWiki_Auth_Plugin {
-
-    /**
-     * @var array hold connection data for a specific AD domain
-     */
-    protected $opts = array();
-
-    /**
-     * @var array open connections for each AD domain, as adLDAP objects
-     */
-    protected $adldap = array();
-
-    /**
-     * @var bool message state
-     */
-    protected $msgshown = false;
-
-    /**
-     * @var array user listing cache
-     */
-    protected $users = array();
-
-    /**
-     * @var array filter patterns for listing users
-     */
-    protected $_pattern = array();
-
-    protected $_actualstart = 0;
-
-    protected $_grpsusers = array();
-
-    /**
-     * Constructor
-     */
-    public function __construct() {
-        global $INPUT;
-        parent::__construct();
-
-        // we load the config early to modify it a bit here
-        $this->loadConfig();
-
-        // additional information fields
-        if(isset($this->conf['additional'])) {
-            $this->conf['additional'] = str_replace(' ', '', $this->conf['additional']);
-            $this->conf['additional'] = explode(',', $this->conf['additional']);
-        } else $this->conf['additional'] = array();
-
-        // ldap extension is needed
-        if(!function_exists('ldap_connect')) {
-            if($this->conf['debug'])
-                msg("AD Auth: PHP LDAP extension not found.", -1);
-            $this->success = false;
-            return;
-        }
-
-        // Prepare SSO
-        if(!empty($_SERVER['REMOTE_USER'])) {
-
-            // make sure the right encoding is used
-            if($this->getConf('sso_charset')) {
-                $_SERVER['REMOTE_USER'] = iconv($this->getConf('sso_charset'), 'UTF-8', $_SERVER['REMOTE_USER']);
-            } elseif(!utf8_check($_SERVER['REMOTE_USER'])) {
-                $_SERVER['REMOTE_USER'] = utf8_encode($_SERVER['REMOTE_USER']);
-            }
-
-            // trust the incoming user
-            if($this->conf['sso']) {
-                $_SERVER['REMOTE_USER'] = $this->cleanUser($_SERVER['REMOTE_USER']);
-
-                // we need to simulate a login
-                if(empty($_COOKIE[DOKU_COOKIE])) {
-                    $INPUT->set('u', $_SERVER['REMOTE_USER']);
-                    $INPUT->set('p', 'sso_only');
-                }
-            }
-        }
-
-        // other can do's are changed in $this->_loadServerConfig() base on domain setup
-        $this->cando['modName'] = (bool)$this->conf['update_name'];
-        $this->cando['modMail'] = (bool)$this->conf['update_mail'];
-        $this->cando['getUserCount'] = true;
-    }
-
-    /**
-     * Load domain config on capability check
-     *
-     * @param string $cap
-     * @return bool
-     */
-    public function canDo($cap) {
-        //capabilities depend on config, which may change depending on domain
-        $domain = $this->_userDomain($_SERVER['REMOTE_USER']);
-        $this->_loadServerConfig($domain);
-        return parent::canDo($cap);
-    }
-
-    /**
-     * Check user+password [required auth function]
-     *
-     * Checks if the given user exists and the given
-     * plaintext password is correct by trying to bind
-     * to the LDAP server
-     *
-     * @author  James Van Lommel <james@nosq.com>
-     * @param string $user
-     * @param string $pass
-     * @return  bool
-     */
-    public function checkPass($user, $pass) {
-        if($_SERVER['REMOTE_USER'] &&
-            $_SERVER['REMOTE_USER'] == $user &&
-            $this->conf['sso']
-        ) return true;
-
-        $adldap = $this->_adldap($this->_userDomain($user));
-        if(!$adldap) return false;
-
-        return $adldap->authenticate($this->_userName($user), $pass);
-    }
-
-    /**
-     * Return user info [required auth function]
-     *
-     * Returns info about the given user needs to contain
-     * at least these fields:
-     *
-     * name    string  full name of the user
-     * mail    string  email address of the user
-     * grps    array   list of groups the user is in
-     *
-     * This AD specific function returns the following
-     * addional fields:
-     *
-     * dn         string    distinguished name (DN)
-     * uid        string    samaccountname
-     * lastpwd    int       timestamp of the date when the password was set
-     * expires    true      if the password expires
-     * expiresin  int       seconds until the password expires
-     * any fields specified in the 'additional' config option
-     *
-     * @author  James Van Lommel <james@nosq.com>
-     * @param string $user
-     * @param bool $requireGroups (optional) - ignored, groups are always supplied by this plugin
-     * @return array
-     */
-    public function getUserData($user, $requireGroups=true) {
-        global $conf;
-        global $lang;
-        global $ID;
-        $adldap = $this->_adldap($this->_userDomain($user));
-        if(!$adldap) return false;
-
-        if($user == '') return array();
-
-        $fields = array('mail', 'displayname', 'samaccountname', 'lastpwd', 'pwdlastset', 'useraccountcontrol');
-
-        // add additional fields to read
-        $fields = array_merge($fields, $this->conf['additional']);
-        $fields = array_unique($fields);
-        $fields = array_filter($fields);
-
-        //get info for given user
-        $result = $adldap->user()->info($this->_userName($user), $fields);
-        if($result == false){
-            return array();
-        }
-
-        //general user info
-        $info = array();
-        $info['name'] = $result[0]['displayname'][0];
-        $info['mail'] = $result[0]['mail'][0];
-        $info['uid']  = $result[0]['samaccountname'][0];
-        $info['dn']   = $result[0]['dn'];
-        //last password set (Windows counts from January 1st 1601)
-        $info['lastpwd'] = $result[0]['pwdlastset'][0] / 10000000 - 11644473600;
-        //will it expire?
-        $info['expires'] = !($result[0]['useraccountcontrol'][0] & 0x10000); //ADS_UF_DONT_EXPIRE_PASSWD
-
-        // additional information
-        foreach($this->conf['additional'] as $field) {
-            if(isset($result[0][strtolower($field)])) {
-                $info[$field] = $result[0][strtolower($field)][0];
-            }
-        }
-
-        // handle ActiveDirectory memberOf
-        $info['grps'] = $adldap->user()->groups($this->_userName($user),(bool) $this->opts['recursive_groups']);
-
-        if(is_array($info['grps'])) {
-            foreach($info['grps'] as $ndx => $group) {
-                $info['grps'][$ndx] = $this->cleanGroup($group);
-            }
-        }
-
-        // always add the default group to the list of groups
-        if(!is_array($info['grps']) || !in_array($conf['defaultgroup'], $info['grps'])) {
-            $info['grps'][] = $conf['defaultgroup'];
-        }
-
-        // add the user's domain to the groups
-        $domain = $this->_userDomain($user);
-        if($domain && !in_array("domain-$domain", (array) $info['grps'])) {
-            $info['grps'][] = $this->cleanGroup("domain-$domain");
-        }
-
-        // check expiry time
-        if($info['expires'] && $this->conf['expirywarn']){
-            $expiry = $adldap->user()->passwordExpiry($user);
-            if(is_array($expiry)){
-                $info['expiresat'] = $expiry['expiryts'];
-                $info['expiresin'] = round(($info['expiresat'] - time())/(24*60*60));
-
-                // if this is the current user, warn him (once per request only)
-                if(($_SERVER['REMOTE_USER'] == $user) &&
-                    ($info['expiresin'] <= $this->conf['expirywarn']) &&
-                    !$this->msgshown
-                ) {
-                    $msg = sprintf($this->getLang('authpwdexpire'), $info['expiresin']);
-                    if($this->canDo('modPass')) {
-                        $url = wl($ID, array('do'=> 'profile'));
-                        $msg .= ' <a href="'.$url.'">'.$lang['btn_profile'].'</a>';
-                    }
-                    msg($msg);
-                    $this->msgshown = true;
-                }
-            }
-        }
-
-        return $info;
-    }
-
-    /**
-     * Make AD group names usable by DokuWiki.
-     *
-     * Removes backslashes ('\'), pound signs ('#'), and converts spaces to underscores.
-     *
-     * @author  James Van Lommel (jamesvl@gmail.com)
-     * @param string $group
-     * @return string
-     */
-    public function cleanGroup($group) {
-        $group = str_replace('\\', '', $group);
-        $group = str_replace('#', '', $group);
-        $group = preg_replace('[\s]', '_', $group);
-        $group = utf8_strtolower(trim($group));
-        return $group;
-    }
-
-    /**
-     * Sanitize user names
-     *
-     * Normalizes domain parts, does not modify the user name itself (unlike cleanGroup)
-     *
-     * @author Andreas Gohr <gohr@cosmocode.de>
-     * @param string $user
-     * @return string
-     */
-    public function cleanUser($user) {
-        $domain = '';
-
-        // get NTLM or Kerberos domain part
-        list($dom, $user) = explode('\\', $user, 2);
-        if(!$user) $user = $dom;
-        if($dom) $domain = $dom;
-        list($user, $dom) = explode('@', $user, 2);
-        if($dom) $domain = $dom;
-
-        // clean up both
-        $domain = utf8_strtolower(trim($domain));
-        $user   = utf8_strtolower(trim($user));
-
-        // is this a known, valid domain? if not discard
-        if(!is_array($this->conf[$domain])) {
-            $domain = '';
-        }
-
-        // reattach domain
-        if($domain) $user = "$user@$domain";
-        return $user;
-    }
-
-    /**
-     * Most values in LDAP are case-insensitive
-     *
-     * @return bool
-     */
-    public function isCaseSensitive() {
-        return false;
-    }
-
-    /**
-     * Create a Search-String useable by adLDAPUsers::all($includeDescription = false, $search = "*", $sorted = true)
-     *
-     * @param array $filter
-     * @return string
-     */
-    protected function _constructSearchString($filter){
-        if (!$filter){
-            return '*';
-        }
-        $adldapUtils = new adLDAPUtils($this->_adldap(null));
-        $result = '*';
-        if (isset($filter['name'])) {
-            $result .= ')(displayname=*' . $adldapUtils->ldapSlashes($filter['name']) . '*';
-            unset($filter['name']);
-        }
-
-        if (isset($filter['user'])) {
-            $result .= ')(samAccountName=*' . $adldapUtils->ldapSlashes($filter['user']) . '*';
-            unset($filter['user']);
-        }
-
-        if (isset($filter['mail'])) {
-            $result .= ')(mail=*' . $adldapUtils->ldapSlashes($filter['mail']) . '*';
-            unset($filter['mail']);
-        }
-        return $result;
-    }
-
-    /**
-     * Return a count of the number of user which meet $filter criteria
-     *
-     * @param array $filter  $filter array of field/pattern pairs, empty array for no filter
-     * @return int number of users
-     */
-    public function getUserCount($filter = array()) {
-        $adldap = $this->_adldap(null);
-        if(!$adldap) {
-            dbglog("authad/auth.php getUserCount(): _adldap not set.");
-            return -1;
-        }
-        if ($filter == array()) {
-            $result = $adldap->user()->all();
-        } else {
-            $searchString = $this->_constructSearchString($filter);
-            $result = $adldap->user()->all(false, $searchString);
-            if (isset($filter['grps'])) {
-                $this->users = array_fill_keys($result, false);
-                $usermanager = plugin_load("admin", "usermanager", false);
-                $usermanager->setLastdisabled(true);
-                if (!isset($this->_grpsusers[$this->_filterToString($filter)])){
-                    $this->_fillGroupUserArray($filter,$usermanager->getStart() + 3*$usermanager->getPagesize());
-                } elseif (count($this->_grpsusers[$this->_filterToString($filter)]) < $usermanager->getStart() + 3*$usermanager->getPagesize()) {
-                    $this->_fillGroupUserArray($filter,$usermanager->getStart() + 3*$usermanager->getPagesize() - count($this->_grpsusers[$this->_filterToString($filter)]));
-                }
-                $result = $this->_grpsusers[$this->_filterToString($filter)];
-            } else {
-                $usermanager = plugin_load("admin", "usermanager", false);
-                $usermanager->setLastdisabled(false);
-            }
-
-        }
-
-        if (!$result) {
-            return 0;
-        }
-        return count($result);
-    }
-
-    /**
-     *
-     * create a unique string for each filter used with a group
-     *
-     * @param array $filter
-     * @return string
-     */
-    protected function _filterToString ($filter) {
-        $result = '';
-        if (isset($filter['user'])) {
-            $result .= 'user-' . $filter['user'];
-        }
-        if (isset($filter['name'])) {
-            $result .= 'name-' . $filter['name'];
-        }
-        if (isset($filter['mail'])) {
-            $result .= 'mail-' . $filter['mail'];
-        }
-        if (isset($filter['grps'])) {
-            $result .= 'grps-' . $filter['grps'];
-        }
-        return $result;
-    }
-
-    /**
-     * Create an array of $numberOfAdds users passing a certain $filter, including belonging
-     * to a certain group and save them to a object-wide array. If the array
-     * already exists try to add $numberOfAdds further users to it.
-     *
-     * @param array $filter
-     * @param int $numberOfAdds additional number of users requested
-     * @return int number of Users actually add to Array
-     */
-    protected function _fillGroupUserArray($filter, $numberOfAdds){
-        $this->_grpsusers[$this->_filterToString($filter)];
-        $i = 0;
-        $count = 0;
-        $this->_constructPattern($filter);
-        foreach ($this->users as $user => &$info) {
-            if($i++ < $this->_actualstart) {
-                continue;
-            }
-            if($info === false) {
-                $info = $this->getUserData($user);
-            }
-            if($this->_filter($user, $info)) {
-                $this->_grpsusers[$this->_filterToString($filter)][$user] = $info;
-                if(($numberOfAdds > 0) && (++$count >= $numberOfAdds)) break;
-            }
-        }
-        $this->_actualstart = $i;
-        return $count;
-    }
-
-    /**
-     * Bulk retrieval of user data
-     *
-     * @author  Dominik Eckelmann <dokuwiki@cosmocode.de>
-     *
-     * @param   int $start index of first user to be returned
-     * @param   int $limit max number of users to be returned
-     * @param   array $filter array of field/pattern pairs, null for no filter
-     * @return array userinfo (refer getUserData for internal userinfo details)
-     */
-    public function retrieveUsers($start = 0, $limit = 0, $filter = array()) {
-        $adldap = $this->_adldap(null);
-        if(!$adldap) return false;
-
-        if(!$this->users) {
-            //get info for given user
-            $result = $adldap->user()->all(false, $this->_constructSearchString($filter));
-            if (!$result) return array();
-            $this->users = array_fill_keys($result, false);
-        }
-
-        $i     = 0;
-        $count = 0;
-        $result = array();
-
-        if (!isset($filter['grps'])) {
-            $usermanager = plugin_load("admin", "usermanager", false);
-            $usermanager->setLastdisabled(false);
-            $this->_constructPattern($filter);
-            foreach($this->users as $user => &$info) {
-                if($i++ < $start) {
-                    continue;
-                }
-                if($info === false) {
-                    $info = $this->getUserData($user);
-                }
-                $result[$user] = $info;
-                if(($limit > 0) && (++$count >= $limit)) break;
-            }
-        } else {
-            $usermanager = plugin_load("admin", "usermanager", false);
-            $usermanager->setLastdisabled(true);
-            if (!isset($this->_grpsusers[$this->_filterToString($filter)]) || count($this->_grpsusers[$this->_filterToString($filter)]) < ($start+$limit)) {
-                $this->_fillGroupUserArray($filter,$start+$limit - count($this->_grpsusers[$this->_filterToString($filter)]) +1);
-            }
-            if (!$this->_grpsusers[$this->_filterToString($filter)]) return false;
-            foreach($this->_grpsusers[$this->_filterToString($filter)] as $user => &$info) {
-                if($i++ < $start) {
-                    continue;
-                }
-                $result[$user] = $info;
-                if(($limit > 0) && (++$count >= $limit)) break;
-            }
-
-        }
-        return $result;
-    }
-
-    /**
-     * Modify user data
-     *
-     * @param   string $user      nick of the user to be changed
-     * @param   array  $changes   array of field/value pairs to be changed
-     * @return  bool
-     */
-    public function modifyUser($user, $changes) {
-        $return = true;
-        $adldap = $this->_adldap($this->_userDomain($user));
-        if(!$adldap) {
-            msg($this->getLang('connectfail'), -1);
-            return false;
-        }
-
-        // password changing
-        if(isset($changes['pass'])) {
-            try {
-                $return = $adldap->user()->password($this->_userName($user),$changes['pass']);
-            } catch (adLDAPException $e) {
-                if ($this->conf['debug']) msg('AD Auth: '.$e->getMessage(), -1);
-                $return = false;
-            }
-            if(!$return) msg($this->getLang('passchangefail'), -1);
-        }
-
-        // changing user data
-        $adchanges = array();
-        if(isset($changes['name'])) {
-            // get first and last name
-            $parts                     = explode(' ', $changes['name']);
-            $adchanges['surname']      = array_pop($parts);
-            $adchanges['firstname']    = join(' ', $parts);
-            $adchanges['display_name'] = $changes['name'];
-        }
-        if(isset($changes['mail'])) {
-            $adchanges['email'] = $changes['mail'];
-        }
-        if(count($adchanges)) {
-            try {
-                $return = $return & $adldap->user()->modify($this->_userName($user),$adchanges);
-            } catch (adLDAPException $e) {
-                if ($this->conf['debug']) msg('AD Auth: '.$e->getMessage(), -1);
-                $return = false;
-            }
-            if(!$return) msg($this->getLang('userchangefail'), -1);
-        }
-
-        return $return;
-    }
-
-    /**
-     * Initialize the AdLDAP library and connect to the server
-     *
-     * When you pass null as domain, it will reuse any existing domain.
-     * Eg. the one of the logged in user. It falls back to the default
-     * domain if no current one is available.
-     *
-     * @param string|null $domain The AD domain to use
-     * @return adLDAP|bool true if a connection was established
-     */
-    protected function _adldap($domain) {
-        if(is_null($domain) && is_array($this->opts)) {
-            $domain = $this->opts['domain'];
-        }
-
-        $this->opts = $this->_loadServerConfig((string) $domain);
-        if(isset($this->adldap[$domain])) return $this->adldap[$domain];
-
-        // connect
-        try {
-            $this->adldap[$domain] = new adLDAP($this->opts);
-            return $this->adldap[$domain];
-        } catch(adLDAPException $e) {
-            if($this->conf['debug']) {
-                msg('AD Auth: '.$e->getMessage(), -1);
-            }
-            $this->success         = false;
-            $this->adldap[$domain] = null;
-        }
-        return false;
-    }
-
-    /**
-     * Get the domain part from a user
-     *
-     * @param string $user
-     * @return string
-     */
-    public function _userDomain($user) {
-        list(, $domain) = explode('@', $user, 2);
-        return $domain;
-    }
-
-    /**
-     * Get the user part from a user
-     *
-     * @param string $user
-     * @return string
-     */
-    public function _userName($user) {
-        list($name) = explode('@', $user, 2);
-        return $name;
-    }
-
-    /**
-     * Fetch the configuration for the given AD domain
-     *
-     * @param string $domain current AD domain
-     * @return array
-     */
-    protected function _loadServerConfig($domain) {
-        // prepare adLDAP standard configuration
-        $opts = $this->conf;
-
-        $opts['domain'] = $domain;
-
-        // add possible domain specific configuration
-        if($domain && is_array($this->conf[$domain])) foreach($this->conf[$domain] as $key => $val) {
-            $opts[$key] = $val;
-        }
-
-        // handle multiple AD servers
-        $opts['domain_controllers'] = explode(',', $opts['domain_controllers']);
-        $opts['domain_controllers'] = array_map('trim', $opts['domain_controllers']);
-        $opts['domain_controllers'] = array_filter($opts['domain_controllers']);
-
-        // compatibility with old option name
-        if(empty($opts['admin_username']) && !empty($opts['ad_username'])) $opts['admin_username'] = $opts['ad_username'];
-        if(empty($opts['admin_password']) && !empty($opts['ad_password'])) $opts['admin_password'] = $opts['ad_password'];
-        $opts['admin_password'] = conf_decodeString($opts['admin_password']); // deobfuscate
-
-        // we can change the password if SSL is set
-        if($opts['use_ssl'] || $opts['use_tls']) {
-            $this->cando['modPass'] = true;
-        } else {
-            $this->cando['modPass'] = false;
-        }
-
-        // adLDAP expects empty user/pass as NULL, we're less strict FS#2781
-        if(empty($opts['admin_username'])) $opts['admin_username'] = null;
-        if(empty($opts['admin_password'])) $opts['admin_password'] = null;
-
-        // user listing needs admin priviledges
-        if(!empty($opts['admin_username']) && !empty($opts['admin_password'])) {
-            $this->cando['getUsers'] = true;
-        } else {
-            $this->cando['getUsers'] = false;
-        }
-
-        return $opts;
-    }
-
-    /**
-     * Returns a list of configured domains
-     *
-     * The default domain has an empty string as key
-     *
-     * @return array associative array(key => domain)
-     */
-    public function _getConfiguredDomains() {
-        $domains = array();
-        if(empty($this->conf['account_suffix'])) return $domains; // not configured yet
-
-        // add default domain, using the name from account suffix
-        $domains[''] = ltrim($this->conf['account_suffix'], '@');
-
-        // find additional domains
-        foreach($this->conf as $key => $val) {
-            if(is_array($val) && isset($val['account_suffix'])) {
-                $domains[$key] = ltrim($val['account_suffix'], '@');
-            }
-        }
-        ksort($domains);
-
-        return $domains;
-    }
-
-    /**
-     * Check provided user and userinfo for matching patterns
-     *
-     * The patterns are set up with $this->_constructPattern()
-     *
-     * @author Chris Smith <chris@jalakai.co.uk>
-     *
-     * @param string $user
-     * @param array  $info
-     * @return bool
-     */
-    protected function _filter($user, $info) {
-        foreach($this->_pattern as $item => $pattern) {
-            if($item == 'user') {
-                if(!preg_match($pattern, $user)) return false;
-            } else if($item == 'grps') {
-                if(!count(preg_grep($pattern, $info['grps']))) return false;
-            } else {
-                if(!preg_match($pattern, $info[$item])) return false;
-            }
-        }
-        return true;
-    }
-
-    /**
-     * Create a pattern for $this->_filter()
-     *
-     * @author Chris Smith <chris@jalakai.co.uk>
-     *
-     * @param array $filter
-     */
-    protected function _constructPattern($filter) {
-        $this->_pattern = array();
-        foreach($filter as $item => $pattern) {
-            $this->_pattern[$item] = '/'.str_replace('/', '\/', $pattern).'/i'; // allow regex characters
-        }
-    }
-}
diff --git a/wiki/lib/plugins/authad/conf/default.php b/wiki/lib/plugins/authad/conf/default.php
deleted file mode 100644
index f2834c8..0000000
--- a/wiki/lib/plugins/authad/conf/default.php
+++ /dev/null
@@ -1,17 +0,0 @@
-<?php
-
-$conf['account_suffix']     = '';
-$conf['base_dn']            = '';
-$conf['domain_controllers'] = '';
-$conf['sso']                = 0;
-$conf['sso_charset']        = '';
-$conf['admin_username']     = '';
-$conf['admin_password']     = '';
-$conf['real_primarygroup']  = 0;
-$conf['use_ssl']            = 0;
-$conf['use_tls']            = 0;
-$conf['debug']              = 0;
-$conf['expirywarn']         = 0;
-$conf['additional']         = '';
-$conf['update_name']        = 0;
-$conf['update_mail']        = 0;
diff --git a/wiki/lib/plugins/authad/conf/metadata.php b/wiki/lib/plugins/authad/conf/metadata.php
deleted file mode 100644
index 6b0fc16..0000000
--- a/wiki/lib/plugins/authad/conf/metadata.php
+++ /dev/null
@@ -1,17 +0,0 @@
-<?php
-
-$meta['account_suffix']     = array('string','_caution' => 'danger');
-$meta['base_dn']            = array('string','_caution' => 'danger');
-$meta['domain_controllers'] = array('string','_caution' => 'danger');
-$meta['sso']                = array('onoff','_caution' => 'danger');
-$meta['sso_charset']        = array('string','_caution' => 'danger');
-$meta['admin_username']     = array('string','_caution' => 'danger');
-$meta['admin_password']     = array('password','_caution' => 'danger','_code' => 'base64');
-$meta['real_primarygroup']  = array('onoff','_caution' => 'danger');
-$meta['use_ssl']            = array('onoff','_caution' => 'danger');
-$meta['use_tls']            = array('onoff','_caution' => 'danger');
-$meta['debug']              = array('onoff','_caution' => 'security');
-$meta['expirywarn']         = array('numeric', '_min'=>0,'_caution' => 'danger');
-$meta['additional']         = array('string','_caution' => 'danger');
-$meta['update_name']        = array('onoff','_caution' => 'danger');
-$meta['update_mail']        = array('onoff','_caution' => 'danger');
diff --git a/wiki/lib/plugins/authad/lang/ar/lang.php b/wiki/lib/plugins/authad/lang/ar/lang.php
deleted file mode 100644
index 173c80f..0000000
--- a/wiki/lib/plugins/authad/lang/ar/lang.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author Mohamed Belhsine <b.mohamed897@gmail.com>
- * @author Usama Akkad <uahello@gmail.com>
- */
-$lang['domain']                = 'مجال تسجيل الدخول';
-$lang['authpwdexpire']         = 'ستنتهي صلاحية كلمة السر ÙÙŠ %d . عليك بتغييرها سريعا.';
diff --git a/wiki/lib/plugins/authad/lang/ar/settings.php b/wiki/lib/plugins/authad/lang/ar/settings.php
deleted file mode 100644
index d2a2e2a..0000000
--- a/wiki/lib/plugins/authad/lang/ar/settings.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author alhajr <alhajr300@gmail.com>
- */
-$lang['account_suffix']        = 'لاحقة الحساب الخاص بك. على سبيل المثال. <code>@my.domain.org</code>';
-$lang['domain_controllers']    = 'قائمة Ù…ÙØµÙˆÙ„Ø© بÙواصل من وحدات التحكم بالمجال. على سبيل المثال. <code>srv1.domain.org,srv2.domain.org</code>';
-$lang['admin_password']        = 'كلمة المرور للمستخدم أعلاه.';
-$lang['real_primarygroup']     = 'ينبغي أن تحل المجموعة الأساسية الحقيقية بدلاً من Ø§ÙØªØ±Ø§Ø¶ "Domain Users" (أبطأ).';
-$lang['expirywarn']            = 'عدد الأيام المقدمة لتحذير المستخدم حول كلمة مرور منتهية الصلاحية. (0) للتعطيل.';
diff --git a/wiki/lib/plugins/authad/lang/bg/lang.php b/wiki/lib/plugins/authad/lang/bg/lang.php
deleted file mode 100644
index 3de5df6..0000000
--- a/wiki/lib/plugins/authad/lang/bg/lang.php
+++ /dev/null
@@ -1,8 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author Kiril <neohidra@gmail.com>
- */
-$lang['authpwdexpire']         = 'Срока на паролата ви ще изтече Ñлед %d дни. Препоръчително е да Ñ Ñмените по-Ñкоро.';
diff --git a/wiki/lib/plugins/authad/lang/bg/settings.php b/wiki/lib/plugins/authad/lang/bg/settings.php
deleted file mode 100644
index bf7a2d8..0000000
--- a/wiki/lib/plugins/authad/lang/bg/settings.php
+++ /dev/null
@@ -1,19 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author Kiril <neohidra@gmail.com>
- */
-$lang['account_suffix']        = 'ÐаÑтавка на акаунта Ви. Ðапример <code>@нÑкакъв.домейн.org</code>';
-$lang['base_dn']               = 'ВашиÑÑ‚ оÑновен DN. Ðапример <code>DC=моÑÑ‚,DC=домейн,DC=org</code>';
-$lang['domain_controllers']    = 'Domain controller ÑпиÑък, разделете Ñървърите ÑÑŠÑ Ð·Ð°Ð¿ÐµÑ‚Ð°Ñ. Ðапример <code>Ñървър1.домейн.org,Ñървър2.домейн.org</code>';
-$lang['admin_username']        = 'Привилегирован Active Directory потребител Ñ Ð´Ð¾Ñтъп до данните на оÑтаналите потребители. Ðе е задължително, но е необходимо за нÑкои функционалноÑти като изпращането на имейл за абонаменти.';
-$lang['admin_password']        = 'Паролата на Ð³Ð¾Ñ€Ð½Ð¸Ñ Ð¿Ð¾Ñ‚Ñ€ÐµÐ±Ð¸Ñ‚ÐµÐ».';
-$lang['sso']                   = 'Да Ñе ползва ли еднократно впиÑване чрез Kerberos или NTLM?';
-$lang['real_primarygroup']     = 'Да Ñе извлича ли иÑтинÑката група вмеÑто да Ñе предполага "Domain Users" (по-бавно)';
-$lang['use_ssl']               = 'Ползване на SSL ÑвързаноÑÑ‚? Ðе отбелÑзвайте TLS (по-долу) ако включите опциÑта.';
-$lang['use_tls']               = 'Ползване на TLS ÑвързаноÑÑ‚? Ðе отбелÑзвайте SSL (по-горе) ако включите опциÑта.';
-$lang['debug']                 = 'Показване на допълнителна debug Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¿Ñ€Ð¸ грешка?';
-$lang['expirywarn']            = 'Предупреждаване на потребителите Ð¥ дни преди изтичане валидноÑтта на паролата им. Въведете 0 за изключване.';
-$lang['additional']            = 'СпиÑък Ñ Ð´Ð¾Ð¿ÑŠÐ»Ð½Ð¸Ñ‚ÐµÐ»Ð½Ð¸ AD атрибути за извличане от потребителÑките данни (разделÑйте ги ÑÑŠÑ Ð·Ð°Ð¿ÐµÑ‚Ð°Ñ). Ползва Ñе от нÑколко приÑтавки.';
diff --git a/wiki/lib/plugins/authad/lang/ca/lang.php b/wiki/lib/plugins/authad/lang/ca/lang.php
deleted file mode 100644
index 5669205..0000000
--- a/wiki/lib/plugins/authad/lang/ca/lang.php
+++ /dev/null
@@ -1,14 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @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/wiki/lib/plugins/authad/lang/ca/settings.php b/wiki/lib/plugins/authad/lang/ca/settings.php
deleted file mode 100644
index 161f552..0000000
--- a/wiki/lib/plugins/authad/lang/ca/settings.php
+++ /dev/null
@@ -1,19 +0,0 @@
-<?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/wiki/lib/plugins/authad/lang/cs/lang.php b/wiki/lib/plugins/authad/lang/cs/lang.php
deleted file mode 100644
index 91e91d0..0000000
--- a/wiki/lib/plugins/authad/lang/cs/lang.php
+++ /dev/null
@@ -1,13 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Jaroslav Lichtblau <jlichtblau@seznam.cz>
- * @author Miroslav Svoboda <msv@email.cz>
- */
-$lang['domain']                = 'Přihlašovací doména';
-$lang['authpwdexpire']         = 'Platnost vašeho hesla vyprší za %d dní, měli byste ho změnit co nejdříve.';
-$lang['passchangefail']        = 'Změna hesla selhala. Možná nebyla dodržena pravidla pro jejich tvorbu?';
-$lang['userchangefail']        = 'ZmÄ›na atributů uživatele selhala. Možná nemá váš úÄet dostateÄná oprávnÄ›ní pro provádÄ›ní zmÄ›n. ';
-$lang['connectfail']           = 'Připojení k serveru Active Directory selhalo.';
diff --git a/wiki/lib/plugins/authad/lang/cs/settings.php b/wiki/lib/plugins/authad/lang/cs/settings.php
deleted file mode 100644
index c0e7895..0000000
--- a/wiki/lib/plugins/authad/lang/cs/settings.php
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author mkucera66 <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']    = '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)?';
-$lang['sso_charset']           = 'Znaková sada kterou bude webserverem přenášeno uživatelské jméno pro Kerberos nebo NTLM. Prázdné pro UTF-8 nebo latin-1. Vyžaduje rozšíření iconv.';
-$lang['real_primarygroup']     = 'Má být zjištěna primární skupina namísto vyhodnocení hodnoty "doménoví uživatelé" (pomalejší)';
-$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['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/wiki/lib/plugins/authad/lang/cy/lang.php b/wiki/lib/plugins/authad/lang/cy/lang.php
deleted file mode 100644
index 8cc3746..0000000
--- a/wiki/lib/plugins/authad/lang/cy/lang.php
+++ /dev/null
@@ -1,16 +0,0 @@
-<?php
-/**
- * Welsh language file for addomain plugin
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Andreas Gohr <gohr@cosmocode.de>
- * @author Alan Davies <ben.brynsadler@gmail.com>
- */
-
-$lang['domain']          = 'Parth Mewngofnodi';
-$lang['authpwdexpire']   = 'Bydd eich cyfrinair yn dod i ben mewn %d diwrnod, dylech chi ei newid e\'n fuan.';
-$lang['passchangefail']  = 'Methodd newid y cyfrinair. Posib roedd y cyfrinair yn annilys?';
-$lang['userchangefail']  = 'Methodd newid priodoleddau defnyddiwr. Posib \'sdim hawliau \'da chi i wneud newidiadau?';
-$lang['connectfail']     = 'Methodd y cysylltiad i weinydd yr Active Directory.';
-
-//Setup VIM: ex: et ts=4 :
diff --git a/wiki/lib/plugins/authad/lang/cy/settings.php b/wiki/lib/plugins/authad/lang/cy/settings.php
deleted file mode 100644
index e343485..0000000
--- a/wiki/lib/plugins/authad/lang/cy/settings.php
+++ /dev/null
@@ -1,15 +0,0 @@
-<?php
-
-$lang['account_suffix']     = 'Olddodiad eich cyfrif. Ee. <code>@my.domain.org</code>';
-$lang['base_dn']            = 'Sail eich DN. Eg. <code>DC=my,DC=domain,DC=org</code>';
-$lang['domain_controllers'] = 'Rhestr gwahanwyd gan goma o reolwyr Parth. Ee. <code>srv1.domain.org,srv2.domain.org</code>';
-$lang['admin_username']     = 'Defnyddiwr Active Directory breintiedig gyda mynediad i ddata pob defnyddiwr arall. Yn opsiynol, ond yn hanfodol ar gyfer gweithredoedd penodol fel anfon ebyst tanysgrifio.';
-$lang['admin_password']     = 'Cyfrinair y defnyddiwr uchod.';
-$lang['sso']                = 'A ddylai Mewngofnodi-Unigol gan Kerberos neu NTLM gael ei ddefnyddio?';
-$lang['sso_charset']        = 'Y set nod mae\'ch gweinydd gwe yn pasio defnyddair Kerberos neu NTLM ynddi. Gwag ar gyfer UTF-8 neu latin-1. Bydd angen estyniad iconv.';
-$lang['real_primarygroup']  = 'Os ydy\'r prif grŵp real yn cael ei hadfer yn hytrach na thybio "Defnyddwyr Parth" (arafach).';
-$lang['use_ssl']            = 'Defnyddio cysylltiad SSL? Os ydych chi\'n defnyddio hwn, peidiwch â galluogi TLS isod.';
-$lang['use_tls']            = 'Defnyddio cysylltiad TLS? Os ydych chi\'n defnyddio hwn, peidiwch â galluogi SSL uchod.';
-$lang['debug']              = 'Dangos allbwn dadfygio ychwanegol ar wallau?';
-$lang['expirywarn']         = 'Diwrnodau o flaen llaw i rybuddio defnyddwyr o ran cyfrinair yn dod i ben. 0 i analluogi.';
-$lang['additional']         = 'Rhestr a wahanwyd gan goma o briodoleddau AD ychwanegol i nôl o ddata defnyddiwr. Defnyddiwyd gan rai ategion.';
diff --git a/wiki/lib/plugins/authad/lang/da/lang.php b/wiki/lib/plugins/authad/lang/da/lang.php
deleted file mode 100644
index 6badbaf..0000000
--- a/wiki/lib/plugins/authad/lang/da/lang.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Jacob Palm <mail@jacobpalm.dk>
- * @author Mikael Lyngvig <mikael@lyngvig.org>
- */
-$lang['domain']                = 'Logondomæne';
-$lang['authpwdexpire']         = 'Din adgangskode vil udløbe om %d dage, du bør ændre det snart.';
-$lang['passchangefail']        = 'Kunne ikke skifte adgangskoden. MÃ¥ske blev adgangskodepolitikken ikke opfyldt?';
-$lang['connectfail']           = 'Kunne ikke forbinde til Active Directory serveren.';
diff --git a/wiki/lib/plugins/authad/lang/da/settings.php b/wiki/lib/plugins/authad/lang/da/settings.php
deleted file mode 100644
index 8b2d624..0000000
--- a/wiki/lib/plugins/authad/lang/da/settings.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Soren Birk <soer9648@hotmail.com>
- * @author Jens Hyllegaard <jens.hyllegaard@gmail.com>
- * @author Jacob Palm <mail@jacobpalm.dk>
- */
-$lang['account_suffix']        = 'Dit konto suffiks. F.eks. <code>@mit.domæne.dk</code>';
-$lang['base_dn']               = 'Dit grund DN. F.eks. <code>DC=mit,DC=domæne,DC=dk</code>';
-$lang['domain_controllers']    = 'En kommasepareret liste over domænecontrollere. F.eks. <code>srv1.domain.org,srv2.domain.org</code>';
-$lang['admin_username']        = 'En privilegeret Active Directory bruger med adgang til alle andre brugeres data. Valgfri, men skal bruges til forskellige handlinger såsom at sende abonnement e-mails.';
-$lang['admin_password']        = 'Kodeordet til den ovenstående bruger.';
-$lang['sso']                   = 'Bør Single-Sign-On via Kerberos eller NTLM bruges?';
-$lang['real_primarygroup']     = 'Bør den korrekte primære gruppe findes i stedet for at antage "Domain Users" (langsommere)';
-$lang['use_ssl']               = 'Benyt SSL forbindelse? hvis ja, vælg ikke TLS herunder.';
-$lang['use_tls']               = 'Benyt TLS forbindelse? hvis ja, vælg ikke SSL herover.';
-$lang['debug']                 = 'Vis yderligere debug output ved fejl?';
-$lang['expirywarn']            = 'Dage før brugere skal advares om udløben adgangskode. 0 for at deaktivere.';
-$lang['additional']            = 'En kommasepareret liste over yderligere AD attributter der skal hentes fra brugerdata. Brug af nogen udvidelser.';
-$lang['update_name']           = 'Tillad at brugere opdaterer deres visningnavn i AD?';
-$lang['update_mail']           = 'Tillad at brugere opdaterer deres e-mail adresse?';
diff --git a/wiki/lib/plugins/authad/lang/de-informal/lang.php b/wiki/lib/plugins/authad/lang/de-informal/lang.php
deleted file mode 100644
index 3166798..0000000
--- a/wiki/lib/plugins/authad/lang/de-informal/lang.php
+++ /dev/null
@@ -1,13 +0,0 @@
-<?php
-
-/**
- * @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/wiki/lib/plugins/authad/lang/de-informal/settings.php b/wiki/lib/plugins/authad/lang/de-informal/settings.php
deleted file mode 100644
index 4daa81d..0000000
--- a/wiki/lib/plugins/authad/lang/de-informal/settings.php
+++ /dev/null
@@ -1,26 +0,0 @@
-<?php
-
-/**
- * @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>';
-$lang['domain_controllers']    = 'Eine Komma-separierte Liste von Domänen-Controllern. Z.B. <code>srv1.domain.org,srv2.domain.org</code>';
-$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/wiki/lib/plugins/authad/lang/de/lang.php b/wiki/lib/plugins/authad/lang/de/lang.php
deleted file mode 100644
index 335cd61..0000000
--- a/wiki/lib/plugins/authad/lang/de/lang.php
+++ /dev/null
@@ -1,14 +0,0 @@
-<?php
-
-/**
- * @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>
- */
-$lang['domain']                = 'Anmelde-Domäne';
-$lang['authpwdexpire']         = 'Ihr Passwort läuft in %d Tag(en) ab. Sie sollten es frühzeitig ändern.';
-$lang['passchangefail']        = 'Kennwortänderung fehlgeschlagen. Entspricht das Kennwort der Richtlinie?';
-$lang['userchangefail']        = 'Änderung der Nutzerattribute fehlgeschlagen. Möglicherweise hat ihr Benutzerkonto nicht die nötigen Rechte um diese Änderungen durchzuführen';
-$lang['connectfail']           = 'Verbindung zum Active Directory Server fehlgeschlagen.';
diff --git a/wiki/lib/plugins/authad/lang/de/settings.php b/wiki/lib/plugins/authad/lang/de/settings.php
deleted file mode 100644
index 5708411..0000000
--- a/wiki/lib/plugins/authad/lang/de/settings.php
+++ /dev/null
@@ -1,26 +0,0 @@
-<?php
-
-/**
- * @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>
- * @author Jonas Gröger <jonas.groeger@gmail.com>
- * @author Carsten Perthel <carsten@cpesoft.com>
- */
-$lang['account_suffix']        = 'Ihr Account-Suffix. Z. B. <code>@my.domain.org</code>';
-$lang['base_dn']               = 'Ihr Base-DN. Z. B. <code>DC=my,DC=domain,DC=org</code>';
-$lang['domain_controllers']    = 'Eine Komma-separierte Liste von Domänen-Controllern. Z. B. <code>srv1.domain.org,srv2.domain.org</code>';
-$lang['admin_username']        = 'Ein priviligierter 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, mit dem der Server den Kerberos- oder NTLM-Benutzernamen versendet. Leer lassen für UTF-8 oder latin-1. Benötigt die iconv-Erweiterung.';
-$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']           = 'Benutzern erlauben, ihren AD Anzeige-Namen zu ändern?';
-$lang['update_mail']           = 'Benutzern erlauben, ihre E-Mail-Adresse zu ändern?';
diff --git a/wiki/lib/plugins/authad/lang/el/lang.php b/wiki/lib/plugins/authad/lang/el/lang.php
deleted file mode 100644
index c6064f0..0000000
--- a/wiki/lib/plugins/authad/lang/el/lang.php
+++ /dev/null
@@ -1,8 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Vasileios Karavasilis vasileioskaravasilis@gmail.com
- */
-$lang['authpwdexpire']         = 'Ο κωδικός Ï€Ïόσβασης θα λήξει σε %d ημέÏες. ΠÏοτείνουμε να τον αλλάξετε σÏντομα.';
diff --git a/wiki/lib/plugins/authad/lang/el/settings.php b/wiki/lib/plugins/authad/lang/el/settings.php
deleted file mode 100644
index b7608df..0000000
--- a/wiki/lib/plugins/authad/lang/el/settings.php
+++ /dev/null
@@ -1,8 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author chris taklis <ctaklis@gmail.com>
- */
-$lang['admin_password']        = 'Ο κωδικός του παÏαπάνω χÏήστη.';
diff --git a/wiki/lib/plugins/authad/lang/en/lang.php b/wiki/lib/plugins/authad/lang/en/lang.php
deleted file mode 100644
index 3e8a9e2..0000000
--- a/wiki/lib/plugins/authad/lang/en/lang.php
+++ /dev/null
@@ -1,15 +0,0 @@
-<?php
-/**
- * English language file for addomain plugin
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Andreas Gohr <gohr@cosmocode.de>
- */
-
-$lang['domain']          = 'Logon Domain';
-$lang['authpwdexpire']   = 'Your password will expire in %d days, you should change it soon.';
-$lang['passchangefail']  = 'Failed to change the password. Maybe the password policy was not met?';
-$lang['userchangefail']  = 'Failed to change user attributes. Maybe your account does not have permissions to make changes?';
-$lang['connectfail']     = 'Failed to connect to Active Directory server.';
-
-//Setup VIM: ex: et ts=4 :
diff --git a/wiki/lib/plugins/authad/lang/en/settings.php b/wiki/lib/plugins/authad/lang/en/settings.php
deleted file mode 100644
index 9e7a7c3..0000000
--- a/wiki/lib/plugins/authad/lang/en/settings.php
+++ /dev/null
@@ -1,17 +0,0 @@
-<?php
-
-$lang['account_suffix']     = 'Your account suffix. Eg. <code>@my.domain.org</code>';
-$lang['base_dn']            = 'Your base DN. Eg. <code>DC=my,DC=domain,DC=org</code>';
-$lang['domain_controllers'] = 'A comma separated list of Domain controllers. Eg. <code>srv1.domain.org,srv2.domain.org</code>';
-$lang['admin_username']     = 'A privileged Active Directory user with access to all other user\'s data. Optional, but needed for certain actions like sending subscription mails.';
-$lang['admin_password']     = 'The password of the above user.';
-$lang['sso']                = 'Should Single-Sign-On via Kerberos or NTLM be used?';
-$lang['sso_charset']        = 'The charset your webserver will pass the Kerberos or NTLM username in. Empty for UTF-8 or latin-1. Requires the iconv extension.';
-$lang['real_primarygroup']  = 'Should the real primary group be resolved instead of assuming "Domain Users" (slower).';
-$lang['use_ssl']            = 'Use SSL connection? If used, do not enable TLS below.';
-$lang['use_tls']            = 'Use TLS connection? If used, do not enable SSL above.';
-$lang['debug']              = 'Display additional debugging output on errors?';
-$lang['expirywarn']         = 'Days in advance to warn user about expiring password. 0 to disable.';
-$lang['additional']         = 'A comma separated list of additional AD attributes to fetch from user data. Used by some plugins.';
-$lang['update_name']        = 'Allow users to update their AD display name?';
-$lang['update_mail']        = 'Allow users to update their email address?';
diff --git a/wiki/lib/plugins/authad/lang/eo/lang.php b/wiki/lib/plugins/authad/lang/eo/lang.php
deleted file mode 100644
index 94580c6..0000000
--- a/wiki/lib/plugins/authad/lang/eo/lang.php
+++ /dev/null
@@ -1,9 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Robert Bogenschneider <bogi@uea.org>
- */
-$lang['domain']                = 'Ensaluta domajno';
-$lang['authpwdexpire']         = 'Via pasvorto malvalidos post %d tagoj, prefere ÅanÄu Äin baldaÅ©.';
diff --git a/wiki/lib/plugins/authad/lang/eo/settings.php b/wiki/lib/plugins/authad/lang/eo/settings.php
deleted file mode 100644
index cf9cad0..0000000
--- a/wiki/lib/plugins/authad/lang/eo/settings.php
+++ /dev/null
@@ -1,20 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Robert Bogenschneider <bogi@uea.org>
- */
-$lang['account_suffix']        = 'Via konto-aldonaĵo, ekz. <code>@mia.domajno.lando</code>';
-$lang['base_dn']               = 'Via baza DN, ekz. <code>DC=mia,DC=domajno,DC=lando</code>';
-$lang['domain_controllers']    = 'Komodisigita listo de domajno-serviloj, ekz. <code>srv1.domajno.lando,srv2.domajno.lando</code>';
-$lang['admin_username']        = 'Privilegiita Aktiv-Dosieruja uzanto kun aliro al ĉiuj uzantaj datumoj. Libervole, sed necesa por iuj agadoj kiel sendi abonan retpoÅton.';
-$lang['admin_password']        = 'La pasvorto de tiu uzanto.';
-$lang['sso']                   = 'Ĉu uzi Sola Aliro tra Kerberos aŭ NTLM?';
-$lang['sso_charset']           = 'Per kiu karaktraro via retservilo pludonas uzantonomojn al Kerberos aŭ NTLM? Malplena por UTF-8 aŭ latin-1. Bezonas iconv-aldonaĵon.';
-$lang['real_primarygroup']     = 'Ĉu trovi la veran ĉefan grupon anstataŭ supozi "Domajnuzantoj" (pli malrapida)?';
-$lang['use_ssl']               = 'Ĉu uzi SSL-konekton? Se jes, ne aktivigu TLS sube.';
-$lang['use_tls']               = 'Ĉu uzi TLS-konekton? Se jes, ne aktivigu SSL supre.';
-$lang['debug']                 = 'Ĉu montri aldonajn informojn dum eraroj?';
-$lang['expirywarn']            = 'Tagoj da antaÅ­averto pri malvalidiÄonta pasvorto. 0 por malebligi.';
-$lang['additional']            = 'Komodisigita listo de aldonaj AD-atributoj por preni el uzantaj datumoj. Uzita de iuj kromaĵoj.';
diff --git a/wiki/lib/plugins/authad/lang/es/lang.php b/wiki/lib/plugins/authad/lang/es/lang.php
deleted file mode 100644
index 381db9f..0000000
--- a/wiki/lib/plugins/authad/lang/es/lang.php
+++ /dev/null
@@ -1,15 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Juan De La Cruz <juann.dlc@gmail.com>
- * @author Gerardo Zamudio <gerardo@gerardozamudio.net>
- * @author Mauricio Segura <maose38@yahoo.es>
- * @author Romano <romanocl@outlook.com>
- */
-$lang['domain']                = 'Dominio de inicio';
-$lang['authpwdexpire']         = 'Su contraseña caducara en %d días, debería cambiarla lo antes posible';
-$lang['passchangefail']        = 'Error al cambiar la contraseña. ¿Tal vez no se cumplió la directiva de contraseñas?';
-$lang['userchangefail']        = 'Falló al intentar modificar los atributos del usuario.  Puede ser que su cuenta no tiene permisos para realizar cambios?';
-$lang['connectfail']           = 'Error al conectar con el servidor de Active Directory.';
diff --git a/wiki/lib/plugins/authad/lang/es/settings.php b/wiki/lib/plugins/authad/lang/es/settings.php
deleted file mode 100644
index 7892222..0000000
--- a/wiki/lib/plugins/authad/lang/es/settings.php
+++ /dev/null
@@ -1,26 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author monica <may.dorado@gmail.com>
- * @author Antonio Bueno <atnbueno@gmail.com>
- * @author Juan De La Cruz <juann.dlc@gmail.com>
- * @author Eloy <ej.perezgomez@gmail.com>
- * @author David Roy <davidroyapp@gmail.com>
- */
-$lang['account_suffix']        = 'Su cuenta, sufijo. Ejem. <code> @ my.domain.org </code>';
-$lang['base_dn']               = 'Su base DN. Ejem. <code>DC=my,DC=dominio,DC=org</code>';
-$lang['domain_controllers']    = 'Una lista separada por coma de los controladores de dominios. Ejem. <code>srv1.dominio.org,srv2.dominio.org</code>';
-$lang['admin_username']        = 'Un usuario con privilegios de Active Directory con acceso a los datos de cualquier otro usuario. Opcional, pero es necesario para determinadas acciones como el envío de suscripciones de correos electrónicos.';
-$lang['admin_password']        = 'La contraseña del usuario anterior.';
-$lang['sso']                   = 'En caso de inicio de sesión usará ¿Kerberos o NTLM?';
-$lang['sso_charset']           = 'La codificación con que tu servidor web pasará el nombre de usuario Kerberos o NTLM. Si es UTF-8 o latin-1 dejar en blanco. Requiere la extensión iconv.';
-$lang['real_primarygroup']     = 'Resolver el grupo primario real en vez de asumir "Domain Users" (más lento)';
-$lang['use_ssl']               = '¿Usar conexión SSL? Si se usa, no habilitar TLS abajo.';
-$lang['use_tls']               = '¿Usar conexión TLS? Si se usa, no habilitar SSL arriba.';
-$lang['debug']                 = 'Mostrar información adicional de depuración sobre los errores?';
-$lang['expirywarn']            = 'Días por adelantado para avisar al usuario de que contraseña expirará. 0 para deshabilitar.';
-$lang['additional']            = 'Una lista separada por comas de atributos AD adicionales a obtener de los datos de usuario. Usado por algunos plugins.';
-$lang['update_name']           = '¿Permitir a los usuarios actualizar su nombre de AD?';
-$lang['update_mail']           = '¿Permitir a los usuarios actualizar su email?';
diff --git a/wiki/lib/plugins/authad/lang/et/lang.php b/wiki/lib/plugins/authad/lang/et/lang.php
deleted file mode 100644
index 94fe9ed..0000000
--- a/wiki/lib/plugins/authad/lang/et/lang.php
+++ /dev/null
@@ -1,8 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Janar Leas <janar.leas@eesti.ee>
- */
-$lang['authpwdexpire']         = 'Sinu salasõna aegub %d päeva pärast, võiksid seda peatselt muuta.';
diff --git a/wiki/lib/plugins/authad/lang/eu/lang.php b/wiki/lib/plugins/authad/lang/eu/lang.php
deleted file mode 100644
index 6c694bb..0000000
--- a/wiki/lib/plugins/authad/lang/eu/lang.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Zigor Astarbe <astarbe@gmail.com>
- * @author Osoitz <oelkoro@gmail.com>
- */
-$lang['authpwdexpire']         = 'Zure pasahitza %d egun barru iraungiko da, laster aldatu beharko zenuke.';
-$lang['connectfail']           = 'Huts egin du Active Directory zerbitzarira konektatzean';
diff --git a/wiki/lib/plugins/authad/lang/eu/settings.php b/wiki/lib/plugins/authad/lang/eu/settings.php
deleted file mode 100644
index e6852b2..0000000
--- a/wiki/lib/plugins/authad/lang/eu/settings.php
+++ /dev/null
@@ -1,13 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Osoitz <oelkoro@gmail.com>
- */
-$lang['account_suffix']        = 'Zure kontuaren atzizkia. Esaterako <code>@niredomeinua.eus</code>';
-$lang['admin_password']        = 'Goiko erabiltzailearen pasahitza';
-$lang['use_ssl']               = 'SSL konexioa darabilzu? Hala bada, ez gaitu TLS behean.';
-$lang['use_tls']               = 'Erabili TLS konexioa? Erabiltzekotan, ez gaitu SSL goian.';
-$lang['expirywarn']            = 'Pasahitza iraungitzear dagoela abisatzeko aurretia egunetan. 0 desgaitzeko.';
-$lang['update_mail']           = 'Baimendu erabiltzaileei bere email helbidea eguneratzea?';
diff --git a/wiki/lib/plugins/authad/lang/fa/lang.php b/wiki/lib/plugins/authad/lang/fa/lang.php
deleted file mode 100644
index e5ff05d..0000000
--- a/wiki/lib/plugins/authad/lang/fa/lang.php
+++ /dev/null
@@ -1,14 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Hamid <zarrabi@sharif.edu>
- * @author Milad DZand <M.DastanZand@gmail.com>
- * @author Mohmmad Razavi <sepent@gmail.com>
- */
-$lang['domain']                = 'دامنه‌ی ورود';
-$lang['authpwdexpire']         = 'کلمه عبور شما در %d روز منقضی خواهد شد ، شما باید آن را زود تغییر دهید';
-$lang['passchangefail']        = 'تغیر رمزعبور با خطا مواجه شد. شاید سیاستهای مربوط به گذاشتن نام کاربری درست رعایت نشده است.';
-$lang['userchangefail']        = 'تغییر ویژگی‌های کابر با خطا مواجه شد. شاید حساب کاربری شما مجاز به انجام این تغییرات نیست.';
-$lang['connectfail']           = 'ارتباط با سرور Active Directory با خطا مواجه شد.';
diff --git a/wiki/lib/plugins/authad/lang/fa/settings.php b/wiki/lib/plugins/authad/lang/fa/settings.php
deleted file mode 100644
index 79d62e7..0000000
--- a/wiki/lib/plugins/authad/lang/fa/settings.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Omid Hezaveh <hezpublic@gmail.com>
- * @author Mohmmad Razavi <sepent@gmail.com>
- * @author Masoud Sadrnezhaad <masoud@sadrnezhaad.ir>
- */
-$lang['account_suffix']        = 'پسوند حساب کاربری شما. به عنوان مثال <code>@my.domain.org</code>';
-$lang['base_dn']               = 'DN پایه شما. به عنوان مثال <code>DC=my,DC=domain,DC=org</code>';
-$lang['domain_controllers']    = 'لیست کنترل کننده‌های دامنه که با کاما ازهم جدا شده اند. به عنوان مثال <code>srv1.domain.org,srv2.domain.org</code';
-$lang['admin_username']        = 'کاربر دارای دسترسی Active Directory Ú©Ù‡ دارای دسترسی به تمام اطلاعات کاربران است. اختیاریست ولی برای برخی ÙØ¹Ø§Ù„یت‌ها مثل ایمیل‌های عضویت لازم است.';
-$lang['admin_password']        = 'رمز کاربر بالایی ';
-$lang['sso']                   = 'آیا Single-Sign-On از طریق Kerberos یا NTLM Ø§Ø³ØªÙØ§Ø¯Ù‡ شود؟';
-$lang['sso_charset']           = 'کدبندی نویسه‌ای Ú©Ù‡ وب‌سرورتان نام کاربری NTLM یا Kerberos را به آن منتقل می‌کند. برای انتخاب UTF-8 یا latin-1 خالی بگذارید. لازم است Ú©Ù‡ Ø§ÙØ²ÙˆÙ†Ù‡Ù” iconv نصب باشد.';
-$lang['real_primarygroup']     = 'باید گروه اصلی به جای "دامنهٔ کاربران" برگردد. (کندتر)';
-$lang['use_ssl']               = 'از اس‌اس‌ال Ø§Ø³ØªÙØ§Ø¯Ù‡ می‌کنید؟ در این صورت تی‌ال‌اس را در پایین ÙØ¹Ø§Ù„ نکنید. ';
-$lang['use_tls']               = 'از تی‌ال‌اس Ø§Ø³ØªÙØ§Ø¯Ù‡ می‌کنید؟ در این صورت اس‌اس‌ال را در بالا ÙØ¹Ø§Ù„ نکنید. ';
-$lang['debug']                 = 'داده‌های اضاÙÛŒ خروجی دیباگ در هنگام بروز خطا نمایش داده شود؟';
-$lang['expirywarn']            = 'تعداد روزهایی Ú©Ù‡ پس گذشتن آن برای تغییر رمزعبور به شما هشدار داده شود. باری ØºÛŒØ±ÙØ¹Ø§Ù„ سازی از مقدار 0 Ø§Ø³ØªÙØ§Ø¯Ù‡ کنید.';
-$lang['additional']            = 'لیست ØµÙØ§Øª اضاÙÛŒ AD برای Ú¯Ø±ÙØªÙ† از اطلاعات کاربر Ú©Ù‡ توسط برخی از Ø§ÙØ²ÙˆÙ†Ù‡â€ŒÙ‡Ø§ Ø§Ø³ØªÙØ§Ø¯Ù‡ می‌شود. با کاما جدا شود.';
-$lang['update_name']           = 'به کاربران اجازهٔ به روزرسانی نام AD داده شود؟';
-$lang['update_mail']           = 'به کاربران اجازهٔ به روزرسانی ایمیلشان داده شود؟';
diff --git a/wiki/lib/plugins/authad/lang/fi/lang.php b/wiki/lib/plugins/authad/lang/fi/lang.php
deleted file mode 100644
index 88a87b8..0000000
--- a/wiki/lib/plugins/authad/lang/fi/lang.php
+++ /dev/null
@@ -1,8 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author Jussi Takala <jussi.takala@live.fi>
- */
-$lang['authpwdexpire']         = 'Salasanasi vanhenee %d pv:n päästä, vaihda salasanasi pikaisesti.';
diff --git a/wiki/lib/plugins/authad/lang/fi/settings.php b/wiki/lib/plugins/authad/lang/fi/settings.php
deleted file mode 100644
index e2f432f..0000000
--- a/wiki/lib/plugins/authad/lang/fi/settings.php
+++ /dev/null
@@ -1,9 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author Otto Vainio <otto@valjakko.net>
- */
-$lang['debug']                 = 'Näytä lisää debug-koodia virheistä?';
-$lang['expirywarn']            = 'Montako päivää etukäteen varoitetaan salasanan vanhenemissta. 0 poistaa.';
diff --git a/wiki/lib/plugins/authad/lang/fr/lang.php b/wiki/lib/plugins/authad/lang/fr/lang.php
deleted file mode 100644
index ba51235..0000000
--- a/wiki/lib/plugins/authad/lang/fr/lang.php
+++ /dev/null
@@ -1,15 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author ggallon <gwenael.gallon@mac.com>
- * @author Yannick Aure <yannick.aure@gmail.com>
- * @author Pietroni <pietroni@informatique.univ-paris-diderot.fr>
- * @author Schplurtz le Déboulonné <Schplurtz@laposte.net>
- */
-$lang['domain']                = 'Domaine de connexion';
-$lang['authpwdexpire']         = 'Votre mot de passe expirera dans %d jours, vous devriez le changer bientôt.';
-$lang['passchangefail']        = 'Impossible de changer le mot de passe. Il est possible que les règles de sécurité des mots de passe n\'aient pas été respectées.';
-$lang['userchangefail']        = 'Impossible de modifier les attributs de l\'utilisateur. Votre compte n\'a peut-être pas les permissions d\'effectuer des changements.';
-$lang['connectfail']           = 'Impossible de se connecter au serveur Active Directory.';
diff --git a/wiki/lib/plugins/authad/lang/fr/settings.php b/wiki/lib/plugins/authad/lang/fr/settings.php
deleted file mode 100644
index f747c08..0000000
--- a/wiki/lib/plugins/authad/lang/fr/settings.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Bruno Veilleux <bruno.vey@gmail.com>
- * @author Momo50 <c.brothelande@gmail.com>
- * @author Schplurtz le Déboulonné <Schplurtz@laposte.net>
- */
-$lang['account_suffix']        = 'Le suffixe de votre compte. Ex.: <code>@mon.domaine.org</code>';
-$lang['base_dn']               = 'Votre nom de domaine de base. <code>DC=mon,DC=domaine,DC=org</code>';
-$lang['domain_controllers']    = 'Une liste de contrôleurs de domaine séparés par des virgules. Ex.: <code>srv1.domaine.org,srv2.domaine.org</code>';
-$lang['admin_username']        = 'Un utilisateur Active Directory avec accès aux données de tous les autres utilisateurs. Facultatif, mais nécessaire pour certaines actions telles que l\'envoi de courriels d\'abonnement.';
-$lang['admin_password']        = 'Le mot de passe de l\'utilisateur ci-dessus.';
-$lang['sso']                   = 'Est-ce que la connexion unique (Single-Sign-On) par Kerberos ou NTLM doit être utilisée?';
-$lang['sso_charset']           = 'Le jeu de caractères de votre serveur web va passer le nom d\'utilisateur Kerberos ou NTLM. Vide pour UTF-8 ou latin-1. Nécessite l\'extension iconv.';
-$lang['real_primarygroup']     = 'Est-ce que le véritable groupe principal doit être résolu au lieu de présumer "Domain Users" (plus lent)?';
-$lang['use_ssl']               = 'Utiliser une connexion SSL? Si utilisée, n\'activez pas TLS ci-dessous.';
-$lang['use_tls']               = 'Utiliser une connexion TLS? Si utilisée, n\'activez pas SSL ci-dessus.';
-$lang['debug']                 = 'Afficher des informations de débogage supplémentaires pour les erreurs?';
-$lang['expirywarn']            = 'Jours d\'avance pour l\'avertissement envoyé aux utilisateurs lorsque leur mot de passe va expirer. 0 pour désactiver.';
-$lang['additional']            = 'Une liste séparée par des virgules d\'attributs AD supplémentaires à récupérer dans les données utilisateur. Utilisée par certains modules.';
-$lang['update_name']           = 'Autoriser les utilisateurs à modifier leur nom affiché de l\'AD ?';
-$lang['update_mail']           = 'Autoriser les utilisateurs à modifier leur adresse de courriel ?';
diff --git a/wiki/lib/plugins/authad/lang/gl/lang.php b/wiki/lib/plugins/authad/lang/gl/lang.php
deleted file mode 100644
index b10126a..0000000
--- a/wiki/lib/plugins/authad/lang/gl/lang.php
+++ /dev/null
@@ -1,8 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author Rodrigo Rega <rodrigorega@gmail.com>
- */
-$lang['authpwdexpire']         = 'A túa contrasinal expirará en %d días, deberías cambiala pronto.';
diff --git a/wiki/lib/plugins/authad/lang/he/lang.php b/wiki/lib/plugins/authad/lang/he/lang.php
deleted file mode 100644
index ac8fbcb..0000000
--- a/wiki/lib/plugins/authad/lang/he/lang.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author tomer <tomercarolldergicz@gmail.com>
- * @author Menashe Tomer <menashesite@gmail.com>
- */
-$lang['authpwdexpire']         = 'הסיסמה שלך תפוג ב %d ימי×, ×תה צריך לשנות ×ת ×–×” בקרוב.';
-$lang['passchangefail']        = 'שגי××” בשינוי סיסמה. ×”×× ×”×¡×™×¡×ž×” תו×מת למדיניות המערכת?';
diff --git a/wiki/lib/plugins/authad/lang/he/settings.php b/wiki/lib/plugins/authad/lang/he/settings.php
deleted file mode 100644
index d0d459c..0000000
--- a/wiki/lib/plugins/authad/lang/he/settings.php
+++ /dev/null
@@ -1,8 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Menashe Tomer <menashesite@gmail.com>
- */
-$lang['admin_password']        = 'סיסמת המשתמש המוזכן';
diff --git a/wiki/lib/plugins/authad/lang/hr/lang.php b/wiki/lib/plugins/authad/lang/hr/lang.php
deleted file mode 100644
index 04268c2..0000000
--- a/wiki/lib/plugins/authad/lang/hr/lang.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Davor Turkalj <turki.bsc@gmail.com>
- */
-$lang['domain']                = 'Domena za prijavu';
-$lang['authpwdexpire']         = 'Vaša lozinka će isteći za %d dana, trebate ju promijeniti.';
-$lang['passchangefail']        = 'Ne mogu izmijeniti lozinku. Možda nije zadovoljen set pravila za lozinke?';
-$lang['userchangefail']        = 'Greška pri promjeni atributa korisnika. Možda Vaš korisnik nema autorizacije da bi radio promjene?';
-$lang['connectfail']           = 'Ne mogu se povezati s Active Directory poslužiteljem.';
diff --git a/wiki/lib/plugins/authad/lang/hr/settings.php b/wiki/lib/plugins/authad/lang/hr/settings.php
deleted file mode 100644
index a34d89b..0000000
--- a/wiki/lib/plugins/authad/lang/hr/settings.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Davor Turkalj <turki.bsc@gmail.com>
- */
-$lang['account_suffix']        = 'VaÅ¡ sufiks korisniÄkog imena. Npr. <code>@my.domain.org</code>';
-$lang['base_dn']               = 'Vaš bazni DN. Npr. <code>DC=my,DC=domain,DC=org</code>';
-$lang['domain_controllers']    = 'Zarezom odvojena lista domenskih kontrolera. Npr. <code>srv1.domain.org,srv2.domain.org</code>';
-$lang['admin_username']        = 'Privilegirani korisnik Active Directory-a s pristupom svim korisniÄkim podacima. Opcionalno, ali potrebno za odreÄ‘ene akcije kao Å¡to je slanje pretplatniÄkih poruka.';
-$lang['admin_password']        = 'Lozinka gore navedenoga korisnika.';
-$lang['sso']                   = 'Da li će Single-Sign-On prijava biti korištena preko Kerberosa ili NTLM-a?';
-$lang['sso_charset']           = 'Znakovni set koji će se koristiti Kerberos ili NTLM pri slanju imena korisnika. Prazno za UTF-8 ili latin-1. Zahtjeva iconv ekstenziju.';
-$lang['real_primarygroup']     = 'Da li da se razluÄi stvarna primarna grupa umjesto pretpostavke da je to "Domain Users" (sporije !).';
-$lang['use_ssl']               = 'Koristi SSL vezu? Ako da, dolje ne koristi TLS!';
-$lang['use_tls']               = 'Koristi TLS vezu? Ako da, gore ne koristi SSL!';
-$lang['debug']                 = 'Prikaži dodatni debug ispis u sluÄaju greÅ¡ke? ';
-$lang['expirywarn']            = 'Upozori korisnike o isteku lozinke ovoliko dana. 0 za onemogućavanje. ';
-$lang['additional']            = 'Zarezom odvojena lista dodatnih AD atributa koji se dohvaćaju iz korisniÄkih podataka. Koristi se u nekim dodatcima (plugin).';
-$lang['update_name']           = 'Omogućiti korisnicima da izmjene svoje ime u AD-u?';
-$lang['update_mail']           = 'Omogućiti korisnicima da izmjene svoju email adresu?';
diff --git a/wiki/lib/plugins/authad/lang/hu/lang.php b/wiki/lib/plugins/authad/lang/hu/lang.php
deleted file mode 100644
index 023e6b9..0000000
--- a/wiki/lib/plugins/authad/lang/hu/lang.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author Marton Sebok <sebokmarton@gmail.com>
- */
-$lang['domain']                = 'Bejelentkezési tartomány';
-$lang['authpwdexpire']         = 'A jelszavad %d nap múlva lejár, hamarosan meg kell változtatnod.';
-$lang['passchangefail']        = 'A jelszó megváltoztatása sikertelen. Lehet, hogy nem felel meg a jelszóházirendnek?';
-$lang['connectfail']           = 'A csatlakozás az Active Directory szerverhez sikertelen.';
diff --git a/wiki/lib/plugins/authad/lang/hu/settings.php b/wiki/lib/plugins/authad/lang/hu/settings.php
deleted file mode 100644
index be0592d..0000000
--- a/wiki/lib/plugins/authad/lang/hu/settings.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author Marton Sebok <sebokmarton@gmail.com>
- * @author Marina Vladi <deldadam@gmail.com>
- */
-$lang['account_suffix']        = 'Felhasználói azonosító végződése, pl. <code>@my.domain.org</code>.';
-$lang['base_dn']               = 'Bázis DN, pl. <code>DC=my,DC=domain,DC=org</code>.';
-$lang['domain_controllers']    = 'Tartománykezelők listája vesszővel elválasztva, pl. <code>srv1.domain.org,srv2.domain.org</code>.';
-$lang['admin_username']        = 'Privilegizált AD felhasználó, aki az összes feéhasználó adatait elérheti. Elhagyható, de bizonyos funkciókhoz, például a feliratkozási e-mailek kiküldéséhez szükséges.';
-$lang['admin_password']        = 'Ehhez tartozó jelszó.';
-$lang['sso']                   = 'Kerberos egyszeri bejelentkezés vagy NTLM használata?';
-$lang['sso_charset']           = 'A webkiszolgáló karakterkészlete megfelel a Kerberos- és NTLM-felhasználóneveknek. Üres UTF-8 és Latin-1-hez. Szükséges az iconv bővítmény.';
-$lang['real_primarygroup']     = 'A valódi elsődleges csoport feloldása a "Tartományfelhasználók" csoport használata helyett? (lassabb)';
-$lang['use_ssl']               = 'SSL használata? Ha használjuk, tiltsuk le a TLS-t!';
-$lang['use_tls']               = 'TLS használata? Ha használjuk, tiltsuk le az SSL-t!';
-$lang['debug']                 = 'További hibakeresési üzenetek megjelenítése hiba esetén';
-$lang['expirywarn']            = 'Felhasználók értesítése ennyi nappal a jelszavuk lejárata előtt. 0 a funkció kikapcsolásához.';
-$lang['additional']            = 'Vesszővel elválasztott lista a további AD attribútumok lekéréséhez. Néhány bővítmény használhatja.';
diff --git a/wiki/lib/plugins/authad/lang/it/lang.php b/wiki/lib/plugins/authad/lang/it/lang.php
deleted file mode 100644
index ee97442..0000000
--- a/wiki/lib/plugins/authad/lang/it/lang.php
+++ /dev/null
@@ -1,13 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Matteo Pasotti <matteo@xquiet.eu>
- * @author Torpedo <dgtorpedo@gmail.com>
- */
-$lang['domain']                = 'Dominio di accesso';
-$lang['authpwdexpire']         = 'La tua password scadrà in %d giorni, dovresti cambiarla quanto prima.';
-$lang['passchangefail']        = 'Cambio password fallito. Forse non sono state rispettate le regole adottate per le password';
-$lang['userchangefail']        = 'Cambio attributi utente fallito. Forse il tuo account non ha i permessi per eseguire delle modifiche?';
-$lang['connectfail']           = 'Connessione fallita al server Active Directory';
diff --git a/wiki/lib/plugins/authad/lang/it/settings.php b/wiki/lib/plugins/authad/lang/it/settings.php
deleted file mode 100644
index 9fd8235..0000000
--- a/wiki/lib/plugins/authad/lang/it/settings.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Edmondo Di Tucci <snarchio@gmail.com>
- * @author Torpedo <dgtorpedo@gmail.com>
- */
-$lang['account_suffix']        = 'Il suffisso del tuo account. Eg. <code>@my.domain.org</code>';
-$lang['base_dn']               = 'Il tuo DN. base Eg. <code>DC=my,DC=domain,DC=org</code>';
-$lang['domain_controllers']    = 'Elenco separato da virgole di Domain Controllers. Eg. <code>srv1.domain.org,srv2.domain.org</code>';
-$lang['admin_username']        = 'Utente privilegiato di Active Directory con accesso ai dati di tutti gli utenti. Opzionale ma necessario per alcune attività come mandare email di iscrizione.';
-$lang['admin_password']        = 'La password dell\'utente soprascritto.';
-$lang['sso']                   = 'Deve essere usato Single-Sign-On via Kerberos oppure NTLM?';
-$lang['sso_charset']           = 'Il set di caratteri che il tuo web server passera nel nome utente Kerberos o NTLM. Lasciare vuoto per UTF-8 p latin-1. Richiesta estensione iconv. ';
-$lang['real_primarygroup']     = 'Se il vero gruppo primario dovesse essere risolo invece di assumere "Domain Users" (lento).';
-$lang['use_ssl']               = 'Usare la connessione SSL? Se usata, non abilitare TSL qui sotto.';
-$lang['use_tls']               = 'Usare la connessione TSL? Se usata, non abilitare SSL qui sopra.';
-$lang['debug']                 = 'Visualizzare output addizionale di debug per gli errori?';
-$lang['expirywarn']            = 'Giorni di preavviso per la scadenza della password dell\'utente. 0 per disabilitare.';
-$lang['additional']            = 'Valori separati da virgola di attributi AD addizionali da caricare dai dati utente. Usato da alcuni plugin.';
-$lang['update_name']           = 'Permettere agli utenti di aggiornare il loro nome AD visualizzato? ';
-$lang['update_mail']           = 'Permettere agli utenti di aggiornare il loro indirizzo e-mail?';
diff --git a/wiki/lib/plugins/authad/lang/ja/lang.php b/wiki/lib/plugins/authad/lang/ja/lang.php
deleted file mode 100644
index 602b079..0000000
--- a/wiki/lib/plugins/authad/lang/ja/lang.php
+++ /dev/null
@@ -1,15 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author PzF_X <jp_minecraft@yahoo.co.jp>
- * @author Osaka <mr.osaka@gmail.com>
- * @author Ikuo Obataya <i.obataya@gmail.com>
- * @author Hideaki SAWADA <chuno@live.jp>
- */
-$lang['domain']                = 'ログオン時ã®ãƒ‰ãƒ¡ã‚¤ãƒ³';
-$lang['authpwdexpire']         = 'ã‚ãªãŸã®ãƒ‘スワードã¯ã€ã‚ã¨%dæ—¥ã§æœ‰åŠ¹æœŸé™ãŒåˆ‡ã‚Œã¾ã™ã€‚パスワードを変更ã—ã¦ãã ã•ã„。';
-$lang['passchangefail']        = 'パスワードを変更ã§ãã¾ã›ã‚“ã§ã—ãŸã€‚パスワードã®ãƒ«ãƒ¼ãƒ«ã«åˆã‚ãªã‹ã£ãŸã®ã‹ã‚‚ã—れã¾ã›ã‚“。';
-$lang['userchangefail']        = 'ユーザー属性を変更ã§ãã¾ã›ã‚“ã§ã—ãŸã€‚ãŠãらãã€å¤‰æ›´æ¨©é™ã®ãªã„アカウントã§ã™ã€‚';
-$lang['connectfail']           = 'Active Directoryサーãƒãƒ¼ã«æŽ¥ç¶šã§ãã¾ã›ã‚“ã§ã—ãŸã€‚';
diff --git a/wiki/lib/plugins/authad/lang/ja/settings.php b/wiki/lib/plugins/authad/lang/ja/settings.php
deleted file mode 100644
index 0dc5649..0000000
--- a/wiki/lib/plugins/authad/lang/ja/settings.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Satoshi Sahara <sahara.satoshi@gmail.com>
- * @author Hideaki SAWADA <chuno@live.jp>
- * @author PzF_X <jp_minecraft@yahoo.co.jp>
- */
-$lang['account_suffix']        = 'ã‚¢ã‚«ã‚¦ãƒ³ãƒˆã®æŽ¥å°¾èªžã€‚ä¾‹ï¼š<code>@my.domain.org</code>';
-$lang['base_dn']               = 'ベースDN。例:<code>DC=my,DC=domain,DC=org</code>';
-$lang['domain_controllers']    = 'ドメインコントローラã®ã‚«ãƒ³ãƒžåŒºåˆ‡ã‚Šä¸€è¦§ã€‚例:<code>srv1.domain.org,srv2.domain.org</code>';
-$lang['admin_username']        = '全ユーザーデータã¸ã®ã‚¢ã‚¯ã‚»ã‚¹æ¨©ã®ã‚る特権Active Directoryユーザー。任æ„ã§ã™ãŒã€ãƒ¡ãƒ¼ãƒ«é€šçŸ¥ã®ç™»éŒ²ç­‰ã®ç‰¹å®šã®å‹•作ã«å¿…è¦ã€‚';
-$lang['admin_password']        = '上記ユーザーã®ãƒ‘スワード';
-$lang['sso']                   = 'Kerberos ã‹ NTLM を使ã£ãŸã‚·ãƒ³ã‚°ãƒ«ã‚µã‚¤ãƒ³ã‚ªãƒ³ï¼ˆSSO)をã—ã¾ã™ã‹ï¼Ÿ';
-$lang['sso_charset']           = 'サーãƒãƒ¼ã¯ç©ºã®UTF-8ã‹Latin-1ã§Kerberosã‹NTLMユーザãƒãƒ¼ãƒ ã‚’é€ä¿¡ã—ã¾ã™ã€‚iconv拡張モジュールãŒå¿…è¦ã§ã™ã€‚';
-$lang['real_primarygroup']     = '"Domain Users" を仮定ã™ã‚‹ä»£ã‚ã‚Šã«æœ¬å½“ã®ãƒ—ライマリグループを解決ã™ã‚‹ï¼ˆä½Žé€Ÿï¼‰';
-$lang['use_ssl']               = 'SSL接続を使用ã—ã¾ã™ã‹ï¼Ÿä½¿ç”¨ã—ãŸå ´åˆã€ä¸‹ã®SSLを有効ã«ã—ãªã„ã§ãã ã•ã„。';
-$lang['use_tls']               = 'TLS接続を使用ã—ã¾ã™ã‹ï¼Ÿä½¿ç”¨ã—ãŸå ´åˆã€ä¸Šã®SSLを有効ã«ã—ãªã„ã§ãã ã•ã„。';
-$lang['debug']                 = 'エラー時ã«è¿½åŠ ã®ãƒ‡ãƒãƒƒã‚°å‡ºåŠ›ã‚’è¡¨ç¤ºã™ã‚‹ï¼Ÿ';
-$lang['expirywarn']            = '何日å‰ã‹ã‚‰ãƒ‘ã‚¹ãƒ¯ãƒ¼ãƒ‰ã®æœ‰åŠ¹æœŸé™ã‚’ユーザーã«è­¦å‘Šã™ã‚‹ã€‚0 ã®å ´åˆã¯ç„¡åй';
-$lang['additional']            = 'ユーザデータã‹ã‚‰å–å¾—ã™ã‚‹è¿½åŠ AD属性ã®ã‚«ãƒ³ãƒžåŒºåˆ‡ã‚Šä¸€è¦§ã€‚ã„ãã¤ã‹ã®ãƒ—ラグインãŒä½¿ç”¨ã™ã‚‹ã€‚';
-$lang['update_name']           = 'ユーザー自身ã«AD表示åã®å¤‰æ›´ã‚’許å¯ã—ã¾ã™ã‹ï¼Ÿ';
-$lang['update_mail']           = 'ユーザー自身ã«ãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹ã®å¤‰æ›´ã‚’許å¯ã—ã¾ã™ã‹ï¼Ÿ';
diff --git a/wiki/lib/plugins/authad/lang/ka/lang.php b/wiki/lib/plugins/authad/lang/ka/lang.php
deleted file mode 100644
index 474906c..0000000
--- a/wiki/lib/plugins/authad/lang/ka/lang.php
+++ /dev/null
@@ -1,8 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Luka Lejava <luka.lejava@gmail.com>
- */
-$lang['authpwdexpire']         = 'თქვენს პáƒáƒ áƒáƒšáƒ¡ ვáƒáƒ“რგáƒáƒ£áƒ•რ%d დღეში, მáƒáƒšáƒ” შეცვლრმáƒáƒ’იწევთ.';
diff --git a/wiki/lib/plugins/authad/lang/ko/lang.php b/wiki/lib/plugins/authad/lang/ko/lang.php
deleted file mode 100644
index 0a652ad..0000000
--- a/wiki/lib/plugins/authad/lang/ko/lang.php
+++ /dev/null
@@ -1,13 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Myeongjin <aranet100@gmail.com>
- * @author Erial <erial2@gmail.com>
- */
-$lang['domain']                = '로그온 ë„ë©”ì¸';
-$lang['authpwdexpire']         = '비밀번호를 바꾼지 %dì¼ì´ 지났으며, 비밀번호를 ê³§ 바꿔야 합니다.';
-$lang['passchangefail']        = '비밀번호를 바꾸는 ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤. 비밀번호 ì •ì±…ì„ ë”°ë¥´ì§€ ì•Šì€ ê±´ ì•„ë‹ê¹Œìš”?';
-$lang['userchangefail']        = 'ì‚¬ìš©ìž íŠ¹ì„±ì„ ë°”ê¾¸ëŠ” ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤. ë‹¹ì‹ ì˜ ê³„ì •ì— ë°”ê¿€ ê¶Œí•œì´ ì—†ëŠ” ê±´ ì•„ë‹ê¹Œìš”?';
-$lang['connectfail']           = 'Active Directory ì„œë²„ì— ì—°ê²°í•˜ëŠ” ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤.';
diff --git a/wiki/lib/plugins/authad/lang/ko/settings.php b/wiki/lib/plugins/authad/lang/ko/settings.php
deleted file mode 100644
index 605819f..0000000
--- a/wiki/lib/plugins/authad/lang/ko/settings.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Myeongjin <aranet100@gmail.com>
- * @author Garam <rowain8@gmail.com>
- */
-$lang['account_suffix']        = '계정 접미어. 예를 들어 <code>@my.domain.org</code>';
-$lang['base_dn']               = '기본 DN. 예를 들어 <code>DC=my,DC=domain,DC=org</code>';
-$lang['domain_controllers']    = 'ë„ë©”ì¸ ì»¨íŠ¸ë¡¤ëŸ¬ì˜ ì‰¼í‘œë¡œ 구분한 목ë¡. 예를 들어 <code>srv1.domain.org,srv2.domain.org</code>';
-$lang['admin_username']        = '다른 모든 사용ìžì˜ ë°ì´í„°ì— 접근할 수 있는 ê¶Œí•œì´ ìžˆëŠ” Active Directory 사용ìž. ì„ íƒì ì´ì§€ë§Œ êµ¬ë… ë©”ì¼ì„ 보내는 ë“±ì˜ íŠ¹ì • ìž‘ì—…ì— í•„ìš”í•©ë‹ˆë‹¤.';
-$lang['admin_password']        = '위 사용ìžì˜ 비밀번호.';
-$lang['sso']                   = 'Kerberos나 NTLMì„ í†µí•´ Single-Sign-Onì„ ì‚¬ìš©í•´ì•¼ 합니까?';
-$lang['sso_charset']           = 'ë‹¹ì‹ ì˜ ì›¹ì„œë²„ì˜ ë¬¸ìžì§‘í•©ì€ Kerberos나 NTLM ì‚¬ìš©ìž ì´ë¦„으로 전달ë©ë‹ˆë‹¤. UTF-8ì´ë‚˜ ë¼ë¦°-1ì´ ë¹„ì–´ 있습니다. icov 확장 ê¸°ëŠ¥ì´ í•„ìš”í•©ë‹ˆë‹¤.';
-$lang['real_primarygroup']     = '실제 기본 ê·¸ë£¹ì€ "ë„ë©”ì¸ ì‚¬ìš©ìž"를 가정하는 대신 í•´ê²°ë  ê²ƒìž…ë‹ˆë‹¤. (ëŠë¦¼)';
-$lang['use_ssl']               = 'SSL ì—°ê²°ì„ ì‚¬ìš©í•©ë‹ˆê¹Œ? 사용한다면 아래 TLSì„ í™œì„±í™”í•˜ì§€ 마세요.';
-$lang['use_tls']               = 'TLS ì—°ê²°ì„ ì‚¬ìš©í•©ë‹ˆê¹Œ? 사용한다면 위 SSLì„ í™œì„±í™”í•˜ì§€ 마세요.';
-$lang['debug']                 = 'ì˜¤ë¥˜ì— ëŒ€í•œ 추가ì ì¸ 디버그 정보를 ë³´ì´ê² ìŠµë‹ˆê¹Œ?';
-$lang['expirywarn']            = '미리 비밀번호 만료를 사용ìžì—게 경고할 ë‚ ì§œ. 0ì¼ ê²½ìš° 비활성화합니다.';
-$lang['additional']            = 'ì‚¬ìš©ìž ë°ì´í„°ì—서 가져올 추가ì ì¸ AD ì†ì„±ì˜ 쉼표로 구분한 목ë¡. ì¼ë¶€ 플러그ì¸ì´ 사용합니다.';
-$lang['update_name']           = '사용ìžê°€ ìžì‹ ì˜ AD 표시 ì´ë¦„ì„ ì—…ë°ì´íŠ¸í•  수 있ë„ë¡ í•˜ê² ìŠµë‹ˆê¹Œ?';
-$lang['update_mail']           = '사용ìžê°€ ìžì‹ ì˜ ì´ë©”ì¼ ì£¼ì†Œë¥¼ ì—…ë°ì´íŠ¸í•  수 있ë„ë¡ í•˜ê² ìŠµë‹ˆê¹Œ?';
diff --git a/wiki/lib/plugins/authad/lang/lv/lang.php b/wiki/lib/plugins/authad/lang/lv/lang.php
deleted file mode 100644
index fd20d34..0000000
--- a/wiki/lib/plugins/authad/lang/lv/lang.php
+++ /dev/null
@@ -1,13 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Oskars Pakers <oskars.pakers@gmail.com>
- * @author Aivars Miška <allefm@gmail.com>
- */
-$lang['domain']                = 'IežurnÄlēšanÄs domÄ“ns';
-$lang['authpwdexpire']         = 'Tavai parolei pÄ“c %d dienÄm biegsies termiņš, tÄ drÄ«zumÄ jÄnomaina.';
-$lang['passchangefail']        = 'NeizdevÄs nomainÄ«t paroli. VarbÅ«t parole neatbilst noteikumiem?';
-$lang['userchangefail']        = 'NeizdevÄs labot lietotÄju. VarbÅ«t jÅ«su kontam nav nepiecieÅ¡amÄs atļaujas?';
-$lang['connectfail']           = 'NeizdevÄs savienotes ar aktÄ«vÄs direktorijas serveri.';
diff --git a/wiki/lib/plugins/authad/lang/lv/settings.php b/wiki/lib/plugins/authad/lang/lv/settings.php
deleted file mode 100644
index 72b9cf2..0000000
--- a/wiki/lib/plugins/authad/lang/lv/settings.php
+++ /dev/null
@@ -1,13 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Oskars Pakers <oskars.pakers@gmail.com>
- * @author Aivars Miška <allefm@gmail.com>
- */
-$lang['account_suffix']        = 'Jūsu konta sufikss. Piemēram, <code>@my.domain.org</code>';
-$lang['base_dn']               = 'JÅ«su bÄzes DN. PiemÄ“ram, <code>DC=my,DC=domain,DC=org</code>';
-$lang['domain_controllers']    = 'Ar komatiem atdalīts domēna kontroleru saraksts. Piemēram, <code>srv1.domain.org,srv2.domain.org</code>';
-$lang['admin_password']        = 'MinÄ“tÄ lietotÄja parole.';
-$lang['expirywarn']            = 'Cik dienas iepriekÅ¡ brÄ«dinÄt lietotÄju par paroles termiņa beigÄm. IerakstÄ«t 0, lai atspÄ“jotu.';
diff --git a/wiki/lib/plugins/authad/lang/nl/lang.php b/wiki/lib/plugins/authad/lang/nl/lang.php
deleted file mode 100644
index 1449b19..0000000
--- a/wiki/lib/plugins/authad/lang/nl/lang.php
+++ /dev/null
@@ -1,15 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Rene <wllywlnt@yahoo.com>
- * @author Dion Nicolaas <dion@nicolaas.net>
- * @author Hugo Smet <hugo.smet@scarlet.be>
- * @author Wesley de Weerd <wesleytiel@gmail.com>
- */
-$lang['domain']                = 'Inlog Domein';
-$lang['authpwdexpire']         = 'Je wachtwoord verloopt in %d dagen, je moet het binnenkort veranderen';
-$lang['passchangefail']        = 'Wijziging van het paswoord is mislukt. Wellicht beantwoord het paswoord niet aan de voorwaarden. ';
-$lang['userchangefail']        = 'Kan gebruiker attributen veranderen . Misschien heeft uw account geen rechten om wijzigingen aan te brengen?';
-$lang['connectfail']           = 'Connectie met Active Directory server mislukt.';
diff --git a/wiki/lib/plugins/authad/lang/nl/settings.php b/wiki/lib/plugins/authad/lang/nl/settings.php
deleted file mode 100644
index c0be12e..0000000
--- a/wiki/lib/plugins/authad/lang/nl/settings.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Remon <no@email.local>
- * @author Gerrit Uitslag <klapinklapin@gmail.com>
- * @author Sjoerd <sjoerd@sjomar.eu>
- */
-$lang['account_suffix']        = 'Je account domeinnaam. Bijv <code>@mijn.domein.org</code>';
-$lang['base_dn']               = 'Je basis DN. Bijv. <code>DC=mijn,DC=domein,DC=org</code>';
-$lang['domain_controllers']    = 'Eeen kommagescheiden lijst van domeinservers. Bijv. <code>srv1.domein.org,srv2.domein.org</code>';
-$lang['admin_username']        = 'Een geprivilegeerde Active Directory gebruiker die bij alle gebruikersgegevens kan komen. Dit is optioneel maar kan nodig zijn voor bepaalde acties, zoals het versturen van abonnementsmailtjes.';
-$lang['admin_password']        = 'Het wachtwoord van bovenstaande gebruiker.';
-$lang['sso']                   = 'Wordt voor Single-Sign-on Kerberos of NTLM gebruikt?';
-$lang['sso_charset']           = 'Het tekenset waarin je webserver de Kerberos of NTLM gebruikersnaam doorsturen. Leeglaten voor UTF-8 of latin-1. Vereist de iconv extensie.';
-$lang['real_primarygroup']     = 'Moet de echte primaire groep worden opgezocht in plaats van het aannemen van "Domeingebruikers" (langzamer)';
-$lang['use_ssl']               = 'SSL verbinding gebruiken? Zo ja, activeer dan niet de TLS optie hieronder.';
-$lang['use_tls']               = 'TLS verbinding gebruiken? Zo ja, activeer dan niet de SSL verbinding hierboven.';
-$lang['debug']                 = 'Aanvullende debug informatie tonen bij fouten?';
-$lang['expirywarn']            = 'Waarschuwingstermijn voor vervallen wachtwoord. 0 om te deactiveren.';
-$lang['additional']            = 'Een kommagescheiden lijst van extra AD attributen van de gebruiker. Wordt gebruikt door sommige plugins.';
-$lang['update_name']           = 'Sta gebruikers toe om hun getoonde AD naam bij te werken';
-$lang['update_mail']           = 'Sta gebruikers toe hun email adres bij te werken';
diff --git a/wiki/lib/plugins/authad/lang/no/lang.php b/wiki/lib/plugins/authad/lang/no/lang.php
deleted file mode 100644
index c702e9e..0000000
--- a/wiki/lib/plugins/authad/lang/no/lang.php
+++ /dev/null
@@ -1,16 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Patrick <spill.p@hotmail.com>
- * @author Thomas Juberg <Thomas.Juberg@Gmail.com>
- * @author Danny Buckhof <daniel.raknes@hotmail.no>
- * @author Patrick Sletvold <patricksletvold@hotmail.com>
- * @author Arne Hanssen <arnehans@getmail.no>
- */
-$lang['domain']                = 'Loggpå-domene';
-$lang['authpwdexpire']         = 'Ditt passord går ut om %d dager, du bør endre det snarest.';
-$lang['passchangefail']        = 'Feil ved endring av passord. Det kan være at passordet ikke er i tråd med passordpolicyen ';
-$lang['userchangefail']        = 'Klarte ikke å endre brukerattributter. Kanskje gar ikke kontoen din rettigheter til å gjøre endringer?';
-$lang['connectfail']           = 'Feil ved kontakt med Active Directory serveren.';
diff --git a/wiki/lib/plugins/authad/lang/no/settings.php b/wiki/lib/plugins/authad/lang/no/settings.php
deleted file mode 100644
index a374f38..0000000
--- a/wiki/lib/plugins/authad/lang/no/settings.php
+++ /dev/null
@@ -1,26 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Christopher Schive <chschive@frisurf.no>
- * @author Patrick <spill.p@hotmail.com>
- * @author Danny Buckhof <daniel.raknes@hotmail.no>
- * @author Patrick Sletvold <patricksletvold@hotmail.com>
- * @author Arne Hanssen <arnehans@getmail.no>
- */
-$lang['account_suffix']        = 'Ditt konto-suffiks F. Eks. <code>@my.domain.org</code>';
-$lang['base_dn']               = 'Din rot-DN. F.eks. <code>DC=my,DC=domain,DC=org</code>';
-$lang['domain_controllers']    = 'En kommaseparert liste over domenekontrollere. Eks. <code>srv1.domene.org,srv2.domene.org</code>';
-$lang['admin_username']        = 'En «Active Directory»-bruker med tilgang til alle andre brukeres data. Valgfritt, men nødvendig for visse handlinger f.eks. for utsendelse av e-poster til abonnenter.';
-$lang['admin_password']        = 'Passordet til brukeren over.';
-$lang['sso']                   = 'Skal engangspålogging via Kerberos eller NTLM bli brukt?';
-$lang['sso_charset']           = 'Tegnsettet din web-server vil bruke for ditt Kerberos- eller NTLM-brukernavn. La stå tomt for UTF-8 eller ISO Latin-1. Avhengig av utvidelsen iconv.';
-$lang['real_primarygroup']     = 'Skal en finne den virkelige gruppen i stedet for å anta at dette er "domene-brukere" (tregere).';
-$lang['use_ssl']               = 'Bruk SSL tilknytning? Hvis denne brukes, ikke aktiver TLS nedenfor.';
-$lang['use_tls']               = 'Bruk TLS tilknytning? Hvis denne brukes, ikke aktiver SSL over.';
-$lang['debug']                 = 'Ved feil, vise tilleggsinformasjon for feilsøking?';
-$lang['expirywarn']            = 'Antall dager på forhånd brukeren varsles om at passordet utgår. 0 for å deaktivere.';
-$lang['additional']            = 'En kommaseparert liste med AD-attributter som skal hentes fra brukerdata. Blir brukt av enkelte programtillegg.';
-$lang['update_name']           = 'Tillate at brukere endrer AD-visningsnavnet sitt?';
-$lang['update_mail']           = 'Tillate at brukere endrer e-postadressen sin?';
diff --git a/wiki/lib/plugins/authad/lang/pl/lang.php b/wiki/lib/plugins/authad/lang/pl/lang.php
deleted file mode 100644
index 8ea095a..0000000
--- a/wiki/lib/plugins/authad/lang/pl/lang.php
+++ /dev/null
@@ -1,13 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Wojciech Lichota <wojciech@lichota.pl>
- * @author Aoi Karasu <aoikarasu@gmail.com>
- */
-$lang['domain']                = 'Domena logowania';
-$lang['authpwdexpire']         = 'Twoje hasło wygaśnie za %d dni. Należy je zmienić w krótkim czasie.';
-$lang['passchangefail']        = 'Nie udało się zmienić hasła. Możliwe, że zasady dotyczące haseł nie zostały spełnione.';
-$lang['userchangefail']        = 'Nie udało się zmienić atrybutów użytkownika. Możliwe, że twoje konto nie ma uprawnień do wprowadzania zmian.';
-$lang['connectfail']           = 'Nie można połączyć się z serwerem Active Directory.';
diff --git a/wiki/lib/plugins/authad/lang/pl/settings.php b/wiki/lib/plugins/authad/lang/pl/settings.php
deleted file mode 100644
index d5af79c..0000000
--- a/wiki/lib/plugins/authad/lang/pl/settings.php
+++ /dev/null
@@ -1,29 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Wojciech Lichota <wojciech@lichota.pl>
- * @author Max <maxrb146@gmail.com>
- * @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>';
-$lang['domain_controllers']    = 'Podzielona przecinkami lista kontrolerów domen np. <code>srv1.domena.pl,srv2.domena.pl</code>';
-$lang['admin_username']        = 'Uprawniony użytkownik katalogu Active Directory z dostępem do danych wszystkich użytkowników.
-Opcjonalne, ale wymagane dla niektórych akcji np. wysyłania emailowych subskrypcji.';
-$lang['admin_password']        = 'Hasło dla powyższego użytkownika.';
-$lang['sso']                   = 'Czy pojedyncze logowanie powinno korzystać z Kerberos czy NTML?';
-$lang['sso_charset']           = 'Kodowanie znaków wykorzystywane do przesyłania nazwy użytkownika dla Kerberos lub NTLM. Pozostaw puste dla UTF-8 lub latin-1. Wymaga rozszerzenia iconv.';
-$lang['real_primarygroup']     = 'Czy prawdziwa grupa podstawowa powinna zostać pobrana, zamiast  przyjmowania domyślnej wartości "Domain Users" (wolniej).';
-$lang['use_ssl']               = 'Użyć połączenie SSL? Jeśli tak to nie aktywuj TLS poniżej.';
-$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['additional']            = 'Oddzielona przecinkami lista dodatkowych atrybutów AD do pobrania z danych użytkownika. Używane przez niektóre wtyczki.';
-$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/wiki/lib/plugins/authad/lang/pt-br/lang.php b/wiki/lib/plugins/authad/lang/pt-br/lang.php
deleted file mode 100644
index 8a30102..0000000
--- a/wiki/lib/plugins/authad/lang/pt-br/lang.php
+++ /dev/null
@@ -1,14 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Felipe Castro <fefcas@gmail.com>
- * @author Frederico Gonçalves Guimarães <frederico@teia.bio.br>
- * @author Guilherme Cardoso <guicardoso@gmail.com>
- */
-$lang['domain']                = 'Domínio de "Logon"';
-$lang['authpwdexpire']         = 'Sua senha vai expirar em %d dias. Você deve mudá-la assim que for possível.';
-$lang['passchangefail']        = 'Não foi possível alterar a senha. Pode ser algum conflito com a política de senhas.';
-$lang['userchangefail']        = 'Falha ao mudar os atributos do usuário. Talvez a sua conta não tenha permissões para fazer mudanças.';
-$lang['connectfail']           = 'Não foi possível conectar ao servidor Active Directory.';
diff --git a/wiki/lib/plugins/authad/lang/pt-br/settings.php b/wiki/lib/plugins/authad/lang/pt-br/settings.php
deleted file mode 100644
index 1231077..0000000
--- a/wiki/lib/plugins/authad/lang/pt-br/settings.php
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Victor Westmann <victor.westmann@gmail.com>
- * @author Frederico Guimarães <frederico@teia.bio.br>
- * @author Juliano Marconi Lanigra <juliano.marconi@gmail.com>
- * @author Viliam Dias <viliamjr@gmail.com>
- */
-$lang['account_suffix']        = 'Sufixo de sua conta. Eg. <code>@meu.domínio.org</code>';
-$lang['base_dn']               = 'Sua base DN. Eg. <code>DC=meu,DC=domínio,DC=org</code>';
-$lang['domain_controllers']    = 'Uma lista de controles de domínios separada por vírgulas. Eg. <code>srv1.domínio.org,srv2.domínio.org</code>';
-$lang['admin_username']        = 'Um usuário do Active Directory com privilégios para acessar os dados de todos os outros usuários. Opcional, mas necessário para realizar certas ações, tais como enviar mensagens de assinatura.';
-$lang['admin_password']        = 'A senha do usuário acima.';
-$lang['sso']                   = 'Usar Single-Sign-On através do Kerberos ou NTLM?';
-$lang['sso_charset']           = 'A codificação de caracteres que seu servidor web passará o nome de usuário Kerberos ou NTLM. Vazio para UTF-8 ou latin-1. Requere a extensão iconv.';
-$lang['real_primarygroup']     = 'O grupo primário real deve ser resolvido ao invés de assumirmos como "Usuários do Domínio" (mais lento)';
-$lang['use_ssl']               = 'Usar conexão SSL? Se usar, não habilitar TLS abaixo.';
-$lang['use_tls']               = 'Usar conexão TLS? se usar, não habilitar SSL acima.';
-$lang['debug']                 = 'Mostrar saída adicional de depuração em mensagens de erros?';
-$lang['expirywarn']            = 'Dias com antecedência para avisar o usuário de uma senha que vai expirar. 0 para desabilitar.';
-$lang['additional']            = 'Uma lista separada de vírgulas de atributos adicionais AD para pegar dados de usuários. Usados por alguns plugins.';
-$lang['update_name']           = 'Permitir aos usuários que atualizem seus nomes de exibição AD?';
-$lang['update_mail']           = 'Permitir aos usuários que atualizem seu endereço de e-mail?';
diff --git a/wiki/lib/plugins/authad/lang/pt/lang.php b/wiki/lib/plugins/authad/lang/pt/lang.php
deleted file mode 100644
index 4f8266b..0000000
--- a/wiki/lib/plugins/authad/lang/pt/lang.php
+++ /dev/null
@@ -1,13 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Paulo Silva <paulotsilva@yahoo.com>
- * @author André Neves <drakferion@gmail.com>
- * @author Paulo Carmino <contato@paulocarmino.com>
- */
-$lang['domain']                = 'Domínio de Início de Sessão';
-$lang['authpwdexpire']         = 'A sua senha expirará dentro de %d dias, deve mudá-la em breve.';
-$lang['passchangefail']        = 'Falha ao alterar a senha. Tente prosseguir com uma senha mais segura.';
-$lang['connectfail']           = 'Falha ao conectar com o servidor Active Directory.';
diff --git a/wiki/lib/plugins/authad/lang/pt/settings.php b/wiki/lib/plugins/authad/lang/pt/settings.php
deleted file mode 100644
index b734c48..0000000
--- a/wiki/lib/plugins/authad/lang/pt/settings.php
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author André Neves <drakferion@gmail.com>
- * @author Murilo <muriloricci@hotmail.com>
- * @author Paulo Silva <paulotsilva@yahoo.com>
- * @author Guido Salatino <guidorafael23@gmail.com>
- * @author Guilherme Sá <guilherme.sa@hotmail.com>
- */
-$lang['account_suffix']        = 'O sufixo da sua conta. Por exemplo, <code>@my.domain.org</code>';
-$lang['base_dn']               = 'Sua base DN. Eg. <code> DC=meu, DC=dominio, DC=org </code>';
-$lang['domain_controllers']    = 'Uma lista separada por vírgulas de Controladores de Domínio (AD DC). Ex.: <code>srv1.domain.org,srv2.domain.org</code>';
-$lang['admin_username']        = 'Um utilizador com privilégios na Active Directory que tenha acesso aos dados de todos os outros utilizadores. Opcional, mas necessário para certas ações como enviar emails de subscrição.';
-$lang['admin_password']        = 'A senha para o utilizador acima.';
-$lang['sso']                   = 'Deve ser usado o Single-Sign-On via Kerberos ou NTLM?';
-$lang['sso_charset']           = 'O charset do seu servidor web vai passar o nome de usuário Kerberos ou NTLM  vazio para UTF-8 ou latin-1. Requer a extensão iconv.';
-$lang['real_primarygroup']     = 'Deveria ser resolvido, de fato, o grupo primário ao invés de assumir "Usuários de Domínio" (mais lento).';
-$lang['use_ssl']               = 'Usar ligação SSL? Se usada, não ative TLS abaixo.';
-$lang['use_tls']               = 'Usar ligação TLS? Se usada, não ative SSL abaixo.';
-$lang['debug']                 = 'Deve-se mostrar saída adicional de depuração de erros?';
-$lang['expirywarn']            = 'Número de dias de avanço para avisar o utilizador da expiração da senha. 0 para desativar.';
-$lang['additional']            = 'Uma lista separada por vírgula de atributos adicionais de AD para buscar a partir de dados do usuário. Usado por alguns plugins.';
-$lang['update_mail']           = 'Permitir que usuários atualizem seus endereços de e-mail?';
diff --git a/wiki/lib/plugins/authad/lang/ro/lang.php b/wiki/lib/plugins/authad/lang/ro/lang.php
deleted file mode 100644
index f08a22c..0000000
--- a/wiki/lib/plugins/authad/lang/ro/lang.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Razvan Deaconescu <razvan.deaconescu@cs.pub.ro>
- * @author Adrian Vesa <adrianvesa@dotwikis.com>
- */
-$lang['authpwdexpire']         = 'Parola va expira în %d zile, ar trebui să o schimbi în curând.';
-$lang['passchangefail']        = 'Parola nu a putu fi schimbata. Poate politica pentru parole nu a fost indeplinita ?';
-$lang['userchangefail']        = 'Nu am putu schimba atributiile pentru acest utilizator. Poate nu ai permisiunea sa faci aceste schimbari ?';
diff --git a/wiki/lib/plugins/authad/lang/ru/lang.php b/wiki/lib/plugins/authad/lang/ru/lang.php
deleted file mode 100644
index 0d398f7..0000000
--- a/wiki/lib/plugins/authad/lang/ru/lang.php
+++ /dev/null
@@ -1,15 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Yuriy Skalko <yuriy.skalko@gmail.com>
- * @author Aleksandr Selivanov <alexgearbox@yandex.ru>
- * @author Takumo <9206984@mail.ru>
- * @author dimsharav <dimsharav@gmail.com>
- */
-$lang['domain']                = 'Домен';
-$lang['authpwdexpire']         = 'ДейÑтвие вашего Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð¸Ñтекает через %d дней. Ð’Ñ‹ должны изменить его как можно Ñкорее.';
-$lang['passchangefail']        = 'Ðе удалоÑÑŒ изменить пароль. Возможно, он не ÑоответÑтвует требованиÑм к паролю.';
-$lang['userchangefail']        = 'Ошибка при изменении атрибутов пользователÑ. Возможно, у Вашей учетной запиÑи недоÑтаточно прав?';
-$lang['connectfail']           = 'Ðевозможно ÑоединитьÑÑ Ñ Ñервером Active Directory.';
diff --git a/wiki/lib/plugins/authad/lang/ru/settings.php b/wiki/lib/plugins/authad/lang/ru/settings.php
deleted file mode 100644
index d6bc8fc..0000000
--- a/wiki/lib/plugins/authad/lang/ru/settings.php
+++ /dev/null
@@ -1,30 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Yuriy Skalko <yuriy.skalko@gmail.com>
- * @author Ivan I. Udovichenko (sendtome@mymailbox.pp.ua)
- * @author Aleksandr Selivanov <alexgearbox@gmail.com>
- * @author Artur <ncuxxx@gmail.com>
- * @author Erli Moen <evseev.jr@gmail.com>
- * @author Владимир <id37736@yandex.ru>
- * @author Type-kun <workwork-1@yandex.ru>
- * @author Vitaly Filatenko <kot@hacktest.net>
- * @author Radimir <radimir.shevchenko@gmail.com>
- */
-$lang['account_suffix']        = 'Ð¡ÑƒÑ„Ñ„Ð¸ÐºÑ Ð²Ð°ÑˆÐµÐ³Ð¾ аккаунта. Ðапример, <code>@my.domain.org</code>';
-$lang['base_dn']               = 'Ваш базовый DN. Ðапример: <code>DC=my,DC=domain,DC=org</code>';
-$lang['domain_controllers']    = 'СпиÑок контроллеров домена, разделённых запÑтой. Ðапример:<code>srv1.domain.org,srv2.domain.org</code>';
-$lang['admin_username']        = 'Привилегированный пользователь Active Directory Ñ Ð´Ð¾Ñтупом ко вÑем оÑтальным пользовательÑким данным. ÐеобÑзательно, однако необходимо Ð´Ð»Ñ Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»Ñ‘Ð½Ð½Ñ‹Ñ… дейÑтвий вроде отправки почтовой подпиÑки.';
-$lang['admin_password']        = 'Пароль Ð´Ð»Ñ ÑƒÐºÐ°Ð·Ð°Ð½Ð½Ð¾Ð³Ð¾ пользователÑ.';
-$lang['sso']                   = 'ИÑпользовать SSO (Single-Sign-On) через Kerberos или NTLM?';
-$lang['sso_charset']           = 'Кодировка, в которой веб-Ñервер передаёт Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Kerberos или NTLM. Ð”Ð»Ñ UTF-8 или latin-1 оÑтаётÑÑ Ð¿ÑƒÑтым. Требует раÑширение iconv.';
-$lang['real_primarygroup']     = 'Должна ли иÑпользоватьÑÑ Ð½Ð°ÑтоÑÑ‰Ð°Ñ Ð¿ÐµÑ€Ð²Ð¸Ñ‡Ð½Ð°Ñ Ð³Ñ€ÑƒÐ¿Ð¿Ð° вмеÑто “Domain Users†(медленнее).';
-$lang['use_ssl']               = 'ИÑпользовать SSL? ЕÑли да, то не включайте TLS.';
-$lang['use_tls']               = 'ИÑпользовать TLS? ЕÑли да, то не включайте SSL.';
-$lang['debug']                 = 'Выводить дополнительную информацию при ошибках?';
-$lang['expirywarn']            = 'За Ñколько дней нужно предупреждать Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¾ необходимоÑти изменить пароль? Ð”Ð»Ñ Ð¾Ñ‚ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ ÑƒÐºÐ°Ð¶Ð¸Ñ‚Ðµ 0 (ноль).';
-$lang['additional']            = 'Дополнительные AD-атрибуты, разделённые запÑтой, Ð´Ð»Ñ Ð²Ñ‹Ð±Ð¾Ñ€ÐºÐ¸ из данных пользователÑ. ИÑпользуетÑÑ Ð½ÐµÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ð¼Ð¸ плагинами.';
-$lang['update_name']           = 'Разрешить пользователÑм редактировать Ñвое AD-имÑ?';
-$lang['update_mail']           = 'Разрешить пользователÑм редактировать Ñвой Ñлектронный адреÑ?';
diff --git a/wiki/lib/plugins/authad/lang/sk/lang.php b/wiki/lib/plugins/authad/lang/sk/lang.php
deleted file mode 100644
index 1ff338d..0000000
--- a/wiki/lib/plugins/authad/lang/sk/lang.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Martin Michalek <michalek.dev@gmail.com>
- */
-$lang['domain']                = 'Prihlasovacia doména';
-$lang['authpwdexpire']         = 'PlatnosÅ¥ hesla vyprší za %d dní, mali by ste ho zmeniÅ¥ Äo najskôr.';
-$lang['passchangefail']        = 'Nepodarilo sa zmeniť heslo. Možno neboli splnené podmienky';
-$lang['userchangefail']        = 'Nepodarilo sa zmeniÅ¥ atribúty používateľa. Možno tvoj úÄet nemá oprávnenia na vykonanie týchto zmien?';
-$lang['connectfail']           = 'Nepodarilo sa pripojiť na Active Directory server.';
diff --git a/wiki/lib/plugins/authad/lang/sk/settings.php b/wiki/lib/plugins/authad/lang/sk/settings.php
deleted file mode 100644
index a8aabc7..0000000
--- a/wiki/lib/plugins/authad/lang/sk/settings.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Martin Michalek <michalek.dev@gmail.com>
- */
-$lang['account_suffix']        = 'Prípona používateľského úÄtu. Napr. <code>@my.domain.org</code>';
-$lang['base_dn']               = 'Vaše base DN. Napr. <code>DC=my,DC=domain,DC=org</code>';
-$lang['domain_controllers']    = 'Zoznam doménových radiÄov oddelených Äiarkou. Napr. <code>srv1.domain.org,srv2.domain.org</code>';
-$lang['admin_username']        = 'Privilegovaný používateľ Active Directory s prístupom ku vÅ¡etkým dátam ostatných používateľov. Nepovinné nastavenie, ale potrebné pre urÄité akcie ako napríklad zasielanie mailov o zmenách.';
-$lang['admin_password']        = 'Heslo vyššie uvedeného používateľa.';
-$lang['sso']                   = 'Použiť Single-Sign-On cez Kerberos alebo NTLM?';
-$lang['sso_charset']           = 'Znaková sada, v ktorej bude webserver prenášať meno Kerberos or NTLM používateľa. Prázne pole znamená UTF-8 alebo latin-1. Vyžaduje iconv rozšírenie.';
-$lang['real_primarygroup']     = 'PoužiÅ¥ skutoÄnú primárnu skupinu používateľa namiesto "Doménoví používatelia" (pomalÅ¡ie).';
-$lang['use_ssl']               = 'Použiť SSL pripojenie? Ak áno, nepovoľte TLS nižšie.';
-$lang['use_tls']               = 'Použiť TLS pripojenie? Ak áno, nepovoľte SSL vyššie.';
-$lang['debug']                 = 'ZobraziÅ¥ dodatoÄné ladiace informácie pri chybe?';
-$lang['expirywarn']            = 'PoÄet dní pred uplynutím platnosti hesla, poÄas ktorých používateľ dostáva upozornenie. 0 deaktivuje túto voľbu.';
-$lang['additional']            = 'Zoznam dodatoÄných AD atribútov oddelených Äiarkou získaných z údajov používateľa. Používané niektorými pluginmi.';
-$lang['update_name']           = 'Povoliť používateľom zmenu ich zobrazovaného mena v AD?';
-$lang['update_mail']           = 'Povoliť používateľom zmenu ich emailovej adresy?';
diff --git a/wiki/lib/plugins/authad/lang/sl/lang.php b/wiki/lib/plugins/authad/lang/sl/lang.php
deleted file mode 100644
index b4c8643..0000000
--- a/wiki/lib/plugins/authad/lang/sl/lang.php
+++ /dev/null
@@ -1,8 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author matej <mateju@svn.gnome.org>
- */
-$lang['authpwdexpire']         = 'Geslo bo poteklo v %d dneh. PriporoÄljivo ga je zamenjati.';
diff --git a/wiki/lib/plugins/authad/lang/sl/settings.php b/wiki/lib/plugins/authad/lang/sl/settings.php
deleted file mode 100644
index f166309..0000000
--- a/wiki/lib/plugins/authad/lang/sl/settings.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author matej <mateju@svn.gnome.org>
- * @author Jernej Vidmar <jernej.vidmar@vidmarboehm.com>
- */
-$lang['admin_password']        = 'Geslo zgoraj omenjenega uporabnika';
-$lang['use_tls']               = 'Uporabi TLS povezavo? ÄŒe da, ne vkljuÄi SSL povezave zgoraj.';
-$lang['debug']                 = 'Ali naj bodo prikazane dodatne podrobnosti napak?';
diff --git a/wiki/lib/plugins/authad/lang/sr/lang.php b/wiki/lib/plugins/authad/lang/sr/lang.php
deleted file mode 100644
index d5ac17b..0000000
--- a/wiki/lib/plugins/authad/lang/sr/lang.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Марко М. КоÑтић <marko.m.kostic@gmail.com>
- */
-$lang['domain']                = 'Домен пријаве';
-$lang['authpwdexpire']         = 'Ваша лозинка ће иÑтећи за %d дан(а), требало би да је промените уÑкоро.';
-$lang['passchangefail']        = 'ÐиÑам уÑпео да променим лозинку. Можда ниÑу иÑпоштована правила за промену лозинке.';
-$lang['userchangefail']        = 'ÐиÑам уÑпео да променим кориÑничке оÑобине. Можда ваш налог нема довољно овлашћења за прављење измена?';
-$lang['connectfail']           = 'ÐиÑам уÑпео да Ñе повежем на Active Directory Ñервер.';
diff --git a/wiki/lib/plugins/authad/lang/sr/settings.php b/wiki/lib/plugins/authad/lang/sr/settings.php
deleted file mode 100644
index 5e4409c..0000000
--- a/wiki/lib/plugins/authad/lang/sr/settings.php
+++ /dev/null
@@ -1,19 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Марко М. КоÑтић <marko.m.kostic@gmail.com>
- */
-$lang['account_suffix']        = 'Ð¡ÑƒÑ„Ð¸ÐºÑ Ð½Ð° вашем налогу. Ðпр.: <code>@moj.domen.rs</code>';
-$lang['base_dn']               = 'Ваше оÑновно име домена. Ðпр.: <code>DC=moj,DC=domen,DC=org</code>';
-$lang['domain_controllers']    = 'СпиÑак доменÑких контролера, одвојених зарезима. Ðпр.: <code>srv1.domen.org,srv2.domen.org</code>';
-$lang['admin_username']        = 'Повлашћени Active Directory кориÑник Ñа приÑтупом подацима Ñвих кориÑника. Изборно али је потребно за одређене радње као што је Ñлање мејлова о претплаћивању.';
-$lang['admin_password']        = 'Лозинка за кориÑника изнад.';
-$lang['sso']                   = 'Да ли треба да Ñе кориÑти Single-Sign-On преко КербероÑа или NTLM-а?';
-$lang['use_ssl']               = 'КориÑтити SSL везу? Ðко Ñе кориÑти, не омогућујте TLS иÑпод.';
-$lang['use_tls']               = 'КориÑтити TLS везу? Ðко Ñе кориÑти, не омогућујте SSL иÑпод.';
-$lang['debug']                 = 'Приказати додатан излаз за поправљање грешака код наÑтанка грешака?';
-$lang['expirywarn']            = 'Дана унапред за које треба упозорити кориÑника на иÑтицање лозинке. 0 за иÑкључивање.';
-$lang['update_name']           = 'Дозволити кориÑницима да ажурирају њихово AD приказно име?';
-$lang['update_mail']           = 'Дозволити кориÑницима да ажурирају њихове мејл адрÑе?';
diff --git a/wiki/lib/plugins/authad/lang/sv/lang.php b/wiki/lib/plugins/authad/lang/sv/lang.php
deleted file mode 100644
index 8c63975..0000000
--- a/wiki/lib/plugins/authad/lang/sv/lang.php
+++ /dev/null
@@ -1,13 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Tor Härnqvist <tor@harnqvist.se>
- * @author Smorkster Andersson smorkster@gmail.com
- */
-$lang['domain']                = 'Inloggningsdomän';
-$lang['authpwdexpire']         = 'Ditt lösenord kommer att bli ogiltigt om %d dagar, du bör ändra det snart.';
-$lang['passchangefail']        = 'Kunde inte ändra lösenord. Kanske var inte lösenordspolicyn uppfylld?';
-$lang['userchangefail']        = 'Kunde inte ändra användaregenskaper. Kanske har ditt konto inte behörighet att göra ändringar?';
-$lang['connectfail']           = 'Kunde inte ansluta till Active Directory-server.';
diff --git a/wiki/lib/plugins/authad/lang/sv/settings.php b/wiki/lib/plugins/authad/lang/sv/settings.php
deleted file mode 100644
index 249eb33..0000000
--- a/wiki/lib/plugins/authad/lang/sv/settings.php
+++ /dev/null
@@ -1,20 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Tor Härnqvist <tor@harnqvist.se>
- * @author Smorkster Andersson smorkster@gmail.com
- */
-$lang['account_suffix']        = 'Ditt konto suffix. T.ex. <code>min.domän.org</code>';
-$lang['base_dn']               = 'Din bas-DN. T ex <code>DC=min,DC=domän,DC=org</code>';
-$lang['domain_controllers']    = 'En kommaseparerad lista av Domain controllers. T ex <code>srv1.domain.org,srv2.domain.org</code>';
-$lang['admin_password']        = 'Lösenord för användare ovan.';
-$lang['sso']                   = 'Ska Single-Sign-On via Kerberos eller NTLM användas?';
-$lang['use_ssl']               = 'Använda SSL anslutning? Om använd, möjliggör inte TLS nedan.';
-$lang['use_tls']               = 'Använda TLS anslutning? Om använd, möjliggör inte SSL ovan.';
-$lang['debug']                 = 'Visa utökad avlusningsinformation för fel?';
-$lang['expirywarn']            = 'Antakl dagar i förväg att varna användare om utgående lösenord. 0 för att inaktivera.';
-$lang['additional']            = 'En komma-separerad lista på extra AT-attibut att hämta från användardata. Används av vissa plugin.';
-$lang['update_name']           = 'Tillåt användare att uppdatera deras AD-visningsnamn?';
-$lang['update_mail']           = 'Tillåt användare att uppdatera deras e-postadresser?';
diff --git a/wiki/lib/plugins/authad/lang/tr/lang.php b/wiki/lib/plugins/authad/lang/tr/lang.php
deleted file mode 100644
index 2336e0f..0000000
--- a/wiki/lib/plugins/authad/lang/tr/lang.php
+++ /dev/null
@@ -1,8 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author farukerdemoncel@gmail.com
- */
-$lang['authpwdexpire']         = 'Şifreniz %d gün sonra geçersiz hale gelecek, yakın bir zamanda değiştirmelisiniz.';
diff --git a/wiki/lib/plugins/authad/lang/uk/lang.php b/wiki/lib/plugins/authad/lang/uk/lang.php
deleted file mode 100644
index 7e685a9..0000000
--- a/wiki/lib/plugins/authad/lang/uk/lang.php
+++ /dev/null
@@ -1,14 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author ОлекÑій <alexey.furashev@gmail.com>
- * @author Vitaly <vitaly.balashov@smuzzy.com.ua>
- * @author Nina Zolotova <nina-z@i.ua>
- */
-$lang['domain']                = 'Домен';
-$lang['authpwdexpire']         = 'Ð”Ñ–Ñ Ð²Ð°ÑˆÐ¾Ð³Ð¾ паролю завершитÑÑ Ñ‡ÐµÑ€ÐµÐ· %d днів, вам необхідно змінити його щонайвшидше.';
-$lang['passchangefail']        = 'Ðе вдалоÑÑ Ð·Ð¼Ñ–Ð½Ð¸Ñ‚Ð¸ пароль. Можливо, політика Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð½Ðµ була заÑтоÑована?';
-$lang['userchangefail']        = 'Ðе вийшло змінити атрибути кориÑтувача. Можливо, у вашого акаунту немає дозволу на внеÑÐµÐ½Ð½Ñ Ð·Ð¼Ñ–Ð½?';
-$lang['connectfail']           = 'Ðе вийшло з\'єднатиÑÑ Ñ Ñервером Active Directory.';
diff --git a/wiki/lib/plugins/authad/lang/uk/settings.php b/wiki/lib/plugins/authad/lang/uk/settings.php
deleted file mode 100644
index 0c76e7d..0000000
--- a/wiki/lib/plugins/authad/lang/uk/settings.php
+++ /dev/null
@@ -1,17 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Oleksii <alexey.furashev@gmail.com>
- * @author Nina Zolotova <nina-z@i.ua>
- */
-$lang['account_suffix']        = 'Ð¡ÑƒÑ„Ñ–ÐºÑ Ð²Ð°ÑˆÐ¾Ð³Ð¾ облікового запиÑу. ЩоÑÑŒ на шквалт: <code>@my.domain.org</code>';
-$lang['base_dn']               = 'Ваш DN. ЩоÑÑŒ на шквалт: <code>DC=my,DC=domain,DC=org</code>';
-$lang['admin_password']        = 'Пароль вказаного кориÑтувача.';
-$lang['use_ssl']               = 'ВикориÑтовуєте SSL-з\'єднаннÑ? Якщо так, не вмикайте TLS нижче.';
-$lang['use_tls']               = 'ВикориÑтовуєте TLS-з\'єднаннÑ? Якщо так, не вмикайте SSL нижче.';
-$lang['debug']                 = 'Показати додаткові відомоÑті щодо помилок?';
-$lang['expirywarn']            = 'КількіÑть днів за Ñких попереджати про Ð·Ð°ÐºÑ–Ð½Ñ‡ÐµÐ½Ð½Ñ Ð´Ñ–Ñ— Ð¿Ð°Ñ€Ð¾Ð»Ñ ÐºÐ¾Ñ€Ð¸Ñтувача. 0 - не попереджати.';
-$lang['update_name']           = 'Дозволити кориÑтувачам оновлювати ім\'Ñ AD, Ñке відображаєтьÑÑ?';
-$lang['update_mail']           = 'Дозволити кориÑтувачам оновлювати Ñ—Ñ… адреÑи електронної пошлти?';
diff --git a/wiki/lib/plugins/authad/lang/zh-tw/lang.php b/wiki/lib/plugins/authad/lang/zh-tw/lang.php
deleted file mode 100644
index b2ce485..0000000
--- a/wiki/lib/plugins/authad/lang/zh-tw/lang.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author June-Hao Hou <junehao@gmail.com>
- * @author syaoranhinata@gmail.com
- */
-$lang['domain']                = '登入網域';
-$lang['authpwdexpire']         = '您的密碼將在 %d å¤©å…§åˆ°æœŸï¼Œè«‹é¦¬ä¸Šæ›´æ›æ–°å¯†ç¢¼ã€‚';
diff --git a/wiki/lib/plugins/authad/lang/zh-tw/settings.php b/wiki/lib/plugins/authad/lang/zh-tw/settings.php
deleted file mode 100644
index 42cd8c9..0000000
--- a/wiki/lib/plugins/authad/lang/zh-tw/settings.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author syaoranhinata@gmail.com
- * @author June-Hao Hou <junehao@gmail.com>
- */
-$lang['account_suffix']        = '您的帳號後綴。如: <code>@my.domain.org</code>';
-$lang['base_dn']               = '您的基本識別å。如: <code>DC=my,DC=domain,DC=org</code>';
-$lang['domain_controllers']    = 'ä»¥é€—è™Ÿåˆ†éš”çš„åŸŸåæŽ§åˆ¶å™¨åˆ—表。如: <code>srv1.domain.org,srv2.domain.org</code>';
-$lang['admin_username']        = 'Active Directory 的特權使用者,å¯ä»¥æŸ¥çœ‹æ‰€æœ‰ä½¿ç”¨è€…的數據。(éžå¿…è¦ï¼Œä½†å°ç™¼é€è¨‚閱郵件等活動來說,這是必須的。)';
-$lang['admin_password']        = '上述使用者的密碼。';
-$lang['sso']                   = '是å¦ä½¿ç”¨ Kerberos 或 NTLM 的單一登入系統 (Single-Sign-On)?';
-$lang['sso_charset']           = '你的網站伺æœå™¨å‚³éž Kerberos 或 NTML 帳號å稱所用的語系編碼。空白表示 UTF-8 或 latin-1。此設定需è¦ç”¨åˆ° iconv 套件。';
-$lang['real_primarygroup']     = '是å¦è¦–作真正的主è¦ç¾¤çµ„ï¼Œè€Œä¸æ˜¯å‡è¨­ç‚ºç¶²åŸŸä½¿ç”¨è€… (比較慢)';
-$lang['use_ssl']               = '使用 SSL 連接嗎?如果è¦ä½¿ç”¨ï¼Œè«‹ä¸è¦å•Ÿç”¨ä¸‹æ–¹çš„ TLS。';
-$lang['use_tls']               = '使用 TLS 連接嗎?如果è¦ä½¿ç”¨ï¼Œè«‹ä¸è¦å•Ÿç”¨ä¸Šæ–¹çš„ SSL。';
-$lang['debug']                 = '有錯誤時,顯示é¡å¤–除錯資訊嗎?';
-$lang['expirywarn']            = 'æå‰å¤šå°‘天警告使用者密碼å³å°‡åˆ°æœŸã€‚輸入0表示åœç”¨ã€‚';
-$lang['additional']            = '從使用者數據中å–å¾—é¡å¤– AD 屬性列表,以供æŸäº›é™„加元件使用。列表以逗號分隔。';
diff --git a/wiki/lib/plugins/authad/lang/zh/lang.php b/wiki/lib/plugins/authad/lang/zh/lang.php
deleted file mode 100644
index 4b2c885..0000000
--- a/wiki/lib/plugins/authad/lang/zh/lang.php
+++ /dev/null
@@ -1,14 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author lainme <lainme993@gmail.com>
- * @author Errol <errol@hotmail.com>
- * @author phy25 <git@phy25.com>
- */
-$lang['domain']                = '登录域';
-$lang['authpwdexpire']         = '您的密ç å°†åœ¨ %d 天内过期,请尽快更改。';
-$lang['passchangefail']        = 'å¯†ç æ›´æ”¹å¤±è´¥ã€‚æ˜¯ä¸æ˜¯å¯†ç è§„则ä¸ç¬¦åˆï¼Ÿ';
-$lang['userchangefail']        = '更改用户属性失败。或许您的å¸å·æ²¡æœ‰åšæ­¤æ›´æ”¹çš„æƒé™ï¼Ÿ';
-$lang['connectfail']           = '无法连接到Active DirectoryæœåŠ¡å™¨ã€‚';
diff --git a/wiki/lib/plugins/authad/lang/zh/settings.php b/wiki/lib/plugins/authad/lang/zh/settings.php
deleted file mode 100644
index 1ccadd3..0000000
--- a/wiki/lib/plugins/authad/lang/zh/settings.php
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author lainme <lainme993@gmail.com>
- * @author oott123 <ip.192.168.1.1@qq.com>
- * @author JellyChen <451453325@qq.com>
- * @author é«˜åš <bobnemo1983@gmail.com>
- */
-$lang['account_suffix']        = '您的账户åŽç¼€ã€‚例如 <code>@my.domain.org</code>';
-$lang['base_dn']               = '您的基本分辨å。例如 <code>DC=my,DC=domain,DC=org</code>';
-$lang['domain_controllers']    = '逗å·åˆ†éš”çš„åŸŸåæŽ§åˆ¶å™¨åˆ—表。例如 <code>srv1.domain.org,srv2.domain.org</code>';
-$lang['admin_username']        = '一个活动目录的特æƒç”¨æˆ·ï¼Œå¯ä»¥æŸ¥çœ‹å…¶ä»–所有用户的数æ®ã€‚å¯é€‰ï¼Œä½†å¯¹æŸäº›æ´»åЍ例如å‘é€è®¢é˜…邮件是必须的。';
-$lang['admin_password']        = '上述用户的密ç ã€‚';
-$lang['sso']                   = '是å¦ä½¿ç”¨ç»ç”± Kerberos å’Œ NTLM çš„ Single-Sign-On?';
-$lang['sso_charset']           = 'æœåС噍传入 Kerberos 或者 NTLM 用户å的编ç ã€‚留空为 UTF-8 或 latin-1 ã€‚æ­¤åŠŸèƒ½éœ€è¦æœåŠ¡å™¨æ”¯æŒiconv扩展。';
-$lang['real_primarygroup']     = ' 是å¦è§£æžçœŸå®žçš„主è¦ç»„ï¼Œè€Œä¸æ˜¯å‡è®¾ä¸ºâ€œåŸŸç”¨æˆ·â€ (较慢)';
-$lang['use_ssl']               = '使用 SSL 连接?如果是,ä¸è¦æ¿€æ´»ä¸‹é¢çš„ TLS。';
-$lang['use_tls']               = '使用 TLS 连接?如果是 ,ä¸è¦æ¿€æ´»ä¸Šé¢çš„ SSL。';
-$lang['debug']                 = '有错误时显示é¢å¤–的调试信æ¯ï¼Ÿ';
-$lang['expirywarn']            = 'æå‰å¤šå°‘天警告用户密ç å³å°†åˆ°æœŸã€‚0 则ç¦ç”¨ã€‚';
-$lang['additional']            = '需è¦ä»Žç”¨æˆ·æ•°æ®ä¸­èŽ·å–çš„é¢å¤– AD 属性的列表,以逗å·åˆ†éš”。用于æŸäº›æ’件。';
-$lang['update_name']           = 'å…许用户更新其AD显示å称?';
-$lang['update_mail']           = '是å¦å…许用户更新他们的电å­é‚®ä»¶åœ°å€ï¼Ÿ';
diff --git a/wiki/lib/plugins/authad/plugin.info.txt b/wiki/lib/plugins/authad/plugin.info.txt
deleted file mode 100644
index 57e1387..0000000
--- a/wiki/lib/plugins/authad/plugin.info.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-base   authad
-author Andreas Gohr
-email  andi@splitbrain.org
-date   2015-07-13
-name   Active Directory Auth Plugin
-desc   Provides user authentication against a Microsoft Active Directory
-url    http://www.dokuwiki.org/plugin:authad
diff --git a/wiki/lib/plugins/authldap/auth.php b/wiki/lib/plugins/authldap/auth.php
deleted file mode 100644
index 52f9ba5..0000000
--- a/wiki/lib/plugins/authldap/auth.php
+++ /dev/null
@@ -1,649 +0,0 @@
-<?php
-// must be run within Dokuwiki
-if(!defined('DOKU_INC')) die();
-
-/**
- * LDAP authentication backend
- *
- * @license   GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * @author    Andreas Gohr <andi@splitbrain.org>
- * @author    Chris Smith <chris@jalakaic.co.uk>
- * @author    Jan Schumann <js@schumann-it.com>
- */
-class auth_plugin_authldap extends DokuWiki_Auth_Plugin {
-    /* @var resource $con holds the LDAP connection*/
-    protected $con = null;
-
-    /* @var int $bound What type of connection does already exist? */
-    protected $bound = 0; // 0: anonymous, 1: user, 2: superuser
-
-    /* @var array $users User data cache */
-    protected $users = null;
-
-    /* @var array $_pattern User filter pattern */
-    protected $_pattern = null;
-
-    /**
-     * Constructor
-     */
-    public function __construct() {
-        parent::__construct();
-
-        // ldap extension is needed
-        if(!function_exists('ldap_connect')) {
-            $this->_debug("LDAP err: PHP LDAP extension not found.", -1, __LINE__, __FILE__);
-            $this->success = false;
-            return;
-        }
-
-        // Add the capabilities to change the password
-        $this->cando['modPass'] = $this->getConf('modPass');
-    }
-
-    /**
-     * Check user+password
-     *
-     * Checks if the given user exists and the given
-     * plaintext password is correct by trying to bind
-     * to the LDAP server
-     *
-     * @author  Andreas Gohr <andi@splitbrain.org>
-     * @param string $user
-     * @param string $pass
-     * @return  bool
-     */
-    public function checkPass($user, $pass) {
-        // reject empty password
-        if(empty($pass)) return false;
-        if(!$this->_openLDAP()) return false;
-
-        // indirect user bind
-        if($this->getConf('binddn') && $this->getConf('bindpw')) {
-            // use superuser credentials
-            if(!@ldap_bind($this->con, $this->getConf('binddn'), conf_decodeString($this->getConf('bindpw')))) {
-                $this->_debug('LDAP bind as superuser: '.htmlspecialchars(ldap_error($this->con)), 0, __LINE__, __FILE__);
-                return false;
-            }
-            $this->bound = 2;
-        } else if($this->getConf('binddn') &&
-            $this->getConf('usertree') &&
-            $this->getConf('userfilter')
-        ) {
-            // special bind string
-            $dn = $this->_makeFilter(
-                $this->getConf('binddn'),
-                array('user'=> $user, 'server'=> $this->getConf('server'))
-            );
-
-        } else if(strpos($this->getConf('usertree'), '%{user}')) {
-            // direct user bind
-            $dn = $this->_makeFilter(
-                $this->getConf('usertree'),
-                array('user'=> $user, 'server'=> $this->getConf('server'))
-            );
-
-        } else {
-            // Anonymous bind
-            if(!@ldap_bind($this->con)) {
-                msg("LDAP: can not bind anonymously", -1);
-                $this->_debug('LDAP anonymous bind: '.htmlspecialchars(ldap_error($this->con)), 0, __LINE__, __FILE__);
-                return false;
-            }
-        }
-
-        // Try to bind to with the dn if we have one.
-        if(!empty($dn)) {
-            // User/Password bind
-            if(!@ldap_bind($this->con, $dn, $pass)) {
-                $this->_debug("LDAP: bind with $dn failed", -1, __LINE__, __FILE__);
-                $this->_debug('LDAP user dn bind: '.htmlspecialchars(ldap_error($this->con)), 0, __LINE__, __FILE__);
-                return false;
-            }
-            $this->bound = 1;
-            return true;
-        } else {
-            // See if we can find the user
-            $info = $this->_getUserData($user, true);
-            if(empty($info['dn'])) {
-                return false;
-            } else {
-                $dn = $info['dn'];
-            }
-
-            // Try to bind with the dn provided
-            if(!@ldap_bind($this->con, $dn, $pass)) {
-                $this->_debug("LDAP: bind with $dn failed", -1, __LINE__, __FILE__);
-                $this->_debug('LDAP user bind: '.htmlspecialchars(ldap_error($this->con)), 0, __LINE__, __FILE__);
-                return false;
-            }
-            $this->bound = 1;
-            return true;
-        }
-    }
-
-    /**
-     * Return user info
-     *
-     * Returns info about the given user needs to contain
-     * at least these fields:
-     *
-     * name string  full name of the user
-     * mail string  email addres of the user
-     * grps array   list of groups the user is in
-     *
-     * This LDAP specific function returns the following
-     * addional fields:
-     *
-     * dn     string  distinguished name (DN)
-     * uid    string  Posix User ID
-     * inbind bool    for internal use - avoid loop in binding
-     *
-     * @author  Andreas Gohr <andi@splitbrain.org>
-     * @author  Trouble
-     * @author  Dan Allen <dan.j.allen@gmail.com>
-     * @author  <evaldas.auryla@pheur.org>
-     * @author  Stephane Chazelas <stephane.chazelas@emerson.com>
-     * @author  Steffen Schoch <schoch@dsb.net>
-     *
-     * @param   string $user
-     * @param   bool   $requireGroups (optional) - ignored, groups are always supplied by this plugin
-     * @return  array containing user data or false
-     */
-    public function getUserData($user, $requireGroups=true) {
-        return $this->_getUserData($user);
-    }
-
-    /**
-     * @param   string $user
-     * @param   bool   $inbind authldap specific, true if in bind phase
-     * @return  array containing user data or false
-     */
-    protected function _getUserData($user, $inbind = false) {
-        global $conf;
-        if(!$this->_openLDAP()) return false;
-
-        // force superuser bind if wanted and not bound as superuser yet
-        if($this->getConf('binddn') && $this->getConf('bindpw') && $this->bound < 2) {
-            // use superuser credentials
-            if(!@ldap_bind($this->con, $this->getConf('binddn'), conf_decodeString($this->getConf('bindpw')))) {
-                $this->_debug('LDAP bind as superuser: '.htmlspecialchars(ldap_error($this->con)), 0, __LINE__, __FILE__);
-                return false;
-            }
-            $this->bound = 2;
-        } elseif($this->bound == 0 && !$inbind) {
-            // in some cases getUserData is called outside the authentication workflow
-            // eg. for sending email notification on subscribed pages. This data might not
-            // be accessible anonymously, so we try to rebind the current user here
-            list($loginuser, $loginsticky, $loginpass) = auth_getCookie();
-            if($loginuser && $loginpass) {
-                $loginpass = auth_decrypt($loginpass, auth_cookiesalt(!$loginsticky, true));
-                $this->checkPass($loginuser, $loginpass);
-            }
-        }
-
-        $info = array();
-        $info['user']   = $user;
-		$this->_debug('LDAP user to find: '.htmlspecialchars($info['user']), 0, __LINE__, __FILE__);
-
-        $info['server'] = $this->getConf('server');
-		$this->_debug('LDAP Server: '.htmlspecialchars($info['server']), 0, __LINE__, __FILE__);
-
-
-        //get info for given user
-        $base = $this->_makeFilter($this->getConf('usertree'), $info);
-        if($this->getConf('userfilter')) {
-            $filter = $this->_makeFilter($this->getConf('userfilter'), $info);
-        } else {
-            $filter = "(ObjectClass=*)";
-        }
-
-		$this->_debug('LDAP Filter: '.htmlspecialchars($filter), 0, __LINE__, __FILE__);
-
-        $this->_debug('LDAP user search: '.htmlspecialchars(ldap_error($this->con)), 0, __LINE__, __FILE__);
-        $this->_debug('LDAP search at: '.htmlspecialchars($base.' '.$filter), 0, __LINE__, __FILE__);
-		$sr     = $this->_ldapsearch($this->con, $base, $filter, $this->getConf('userscope'));
-
-		$result = @ldap_get_entries($this->con, $sr);
-
-        // if result is not an array
-        if(!is_array($result)) {
-			// no objects found
-			$this->_debug('LDAP search returned non-array result: '.htmlspecialchars(print($result)), -1, __LINE__, __FILE__);
-            return false;
-        }
-
-		// Don't accept more or less than one response
-		if ($result['count'] != 1)		{
-			$this->_debug('LDAP search returned '.htmlspecialchars($result['count']).' results while it should return 1!', -1, __LINE__, __FILE__);
-			//for($i = 0; $i < $result["count"]; $i++) {
-				//$this->_debug('result: '.htmlspecialchars(print_r($result[$i])), 0, __LINE__, __FILE__);
-			//}
-			return false;
-		}
-
-
-		$this->_debug('LDAP search found single result !', 0, __LINE__, __FILE__);
-
-        $user_result = $result[0];
-        ldap_free_result($sr);
-
-        // general user info
-        $info['dn']   = $user_result['dn'];
-        $info['gid']  = $user_result['gidnumber'][0];
-        $info['mail'] = $user_result['mail'][0];
-        $info['name'] = $user_result['cn'][0];
-        $info['grps'] = array();
-
-        // overwrite if other attribs are specified.
-        if(is_array($this->getConf('mapping'))) {
-            foreach($this->getConf('mapping') as $localkey => $key) {
-                if(is_array($key)) {
-                    // use regexp to clean up user_result
-                    // $key = array($key=>$regexp), only handles the first key-value
-                    $regexp = current($key);
-                    $key = key($key);
-                    if($user_result[$key]) foreach($user_result[$key] as $grpkey => $grp) {
-                        if($grpkey !== 'count' && preg_match($regexp, $grp, $match)) {
-                            if($localkey == 'grps') {
-                                $info[$localkey][] = $match[1];
-                            } else {
-                                $info[$localkey] = $match[1];
-                            }
-                        }
-                    }
-                } else {
-                    $info[$localkey] = $user_result[$key][0];
-                }
-            }
-        }
-        $user_result = array_merge($info, $user_result);
-
-        //get groups for given user if grouptree is given
-        if($this->getConf('grouptree') || $this->getConf('groupfilter')) {
-            $base   = $this->_makeFilter($this->getConf('grouptree'), $user_result);
-            $filter = $this->_makeFilter($this->getConf('groupfilter'), $user_result);
-            $sr     = $this->_ldapsearch($this->con, $base, $filter, $this->getConf('groupscope'), array($this->getConf('groupkey')));
-            $this->_debug('LDAP group search: '.htmlspecialchars(ldap_error($this->con)), 0, __LINE__, __FILE__);
-            $this->_debug('LDAP search at: '.htmlspecialchars($base.' '.$filter), 0, __LINE__, __FILE__);
-
-            if(!$sr) {
-                msg("LDAP: Reading group memberships failed", -1);
-                return false;
-            }
-            $result = ldap_get_entries($this->con, $sr);
-            ldap_free_result($sr);
-
-            if(is_array($result)) foreach($result as $grp) {
-                if(!empty($grp[$this->getConf('groupkey')])) {
-                    $group = $grp[$this->getConf('groupkey')];
-                    if(is_array($group)){
-                        $group = $group[0];
-                    } else {
-                        $this->_debug('groupkey did not return a detailled result', 0, __LINE__, __FILE__);
-                    }
-                    if($group === '') continue;
-
-                    $this->_debug('LDAP usergroup: '.htmlspecialchars($group), 0, __LINE__, __FILE__);
-                    $info['grps'][] = $group;
-                }
-            }
-        }
-
-        // always add the default group to the list of groups
-        if(!$info['grps'] or !in_array($conf['defaultgroup'], $info['grps'])) {
-            $info['grps'][] = $conf['defaultgroup'];
-        }
-        return $info;
-    }
-
-    /**
-     * Definition of the function modifyUser in order to modify the password
-     *
-     * @param   string $user    nick of the user to be changed
-     * @param   array  $changes array of field/value pairs to be changed (password will be clear text)
-     * @return  bool   true on success, false on error
-     */
-
-    function modifyUser($user,$changes){
-
-        // open the connection to the ldap
-        if(!$this->_openLDAP()){
-            $this->_debug('LDAP cannot connect: '. htmlspecialchars(ldap_error($this->con)), 0, __LINE__, __FILE__);
-            return false;
-        }
-
-        // find the information about the user, in particular the "dn"
-        $info = $this->getUserData($user,true);
-        if(empty($info['dn'])) {
-            $this->_debug('LDAP cannot find your user dn', 0, __LINE__, __FILE__);
-            return false;
-        }
-        $dn = $info['dn'];
-
-        // find the old password of the user
-        list($loginuser,$loginsticky,$loginpass) = auth_getCookie();
-        if ($loginuser !== null) { // the user is currently logged in
-            $secret = auth_cookiesalt(!$loginsticky, true);
-            $pass   = auth_decrypt($loginpass, $secret);
-
-            // bind with the ldap
-            if(!@ldap_bind($this->con, $dn, $pass)){
-                $this->_debug('LDAP user bind failed: '. htmlspecialchars($dn) .': '.htmlspecialchars(ldap_error($this->con)), 0, __LINE__, __FILE__);
-                return false;
-            }
-        } elseif ($this->getConf('binddn') && $this->getConf('bindpw')) {
-            // we are changing the password on behalf of the user (eg: forgotten password)
-            // bind with the superuser ldap
-            if (!@ldap_bind($this->con, $this->getConf('binddn'), conf_decodeString($this->getConf('bindpw')))){
-                $this->_debug('LDAP bind as superuser: '.htmlspecialchars(ldap_error($this->con)), 0, __LINE__, __FILE__);
-                return false;
-            }
-        }
-        else {
-            return false; // no otherway
-        }
-
-        // Generate the salted hashed password for LDAP
-        $phash = new PassHash();
-        $hash = $phash->hash_ssha($changes['pass']);
-
-        // change the password
-        if(!@ldap_mod_replace($this->con, $dn,array('userpassword' => $hash))){
-            $this->_debug('LDAP mod replace failed: '. htmlspecialchars($dn) .': '.htmlspecialchars(ldap_error($this->con)), 0, __LINE__, __FILE__);
-            return false;
-        }
-
-        return true;
-    }
-
-    /**
-     * Most values in LDAP are case-insensitive
-     *
-     * @return bool
-     */
-    public function isCaseSensitive() {
-        return false;
-    }
-
-    /**
-     * Bulk retrieval of user data
-     *
-     * @author  Dominik Eckelmann <dokuwiki@cosmocode.de>
-     * @param   int   $start     index of first user to be returned
-     * @param   int   $limit     max number of users to be returned
-     * @param   array $filter  array of field/pattern pairs, null for no filter
-     * @return  array of userinfo (refer getUserData for internal userinfo details)
-     */
-    function retrieveUsers($start = 0, $limit = 0, $filter = array()) {
-        if(!$this->_openLDAP()) return false;
-
-        if(is_null($this->users)) {
-            // Perform the search and grab all their details
-            if($this->getConf('userfilter')) {
-                $all_filter = str_replace('%{user}', '*', $this->getConf('userfilter'));
-            } else {
-                $all_filter = "(ObjectClass=*)";
-            }
-            $sr          = ldap_search($this->con, $this->getConf('usertree'), $all_filter);
-            $entries     = ldap_get_entries($this->con, $sr);
-            $users_array = array();
-            $userkey     = $this->getConf('userkey');
-            for($i = 0; $i < $entries["count"]; $i++) {
-                array_push($users_array, $entries[$i][$userkey][0]);
-            }
-            asort($users_array);
-            $result = $users_array;
-            if(!$result) return array();
-            $this->users = array_fill_keys($result, false);
-        }
-        $i     = 0;
-        $count = 0;
-        $this->_constructPattern($filter);
-        $result = array();
-
-        foreach($this->users as $user => &$info) {
-            if($i++ < $start) {
-                continue;
-            }
-            if($info === false) {
-                $info = $this->getUserData($user);
-            }
-            if($this->_filter($user, $info)) {
-                $result[$user] = $info;
-                if(($limit > 0) && (++$count >= $limit)) break;
-            }
-        }
-        return $result;
-    }
-
-    /**
-     * Make LDAP filter strings.
-     *
-     * Used by auth_getUserData to make the filter
-     * strings for grouptree and groupfilter
-     *
-     * @author  Troels Liebe Bentsen <tlb@rapanden.dk>
-     * @param   string $filter ldap search filter with placeholders
-     * @param   array  $placeholders placeholders to fill in
-     * @return  string
-     */
-    protected function _makeFilter($filter, $placeholders) {
-        preg_match_all("/%{([^}]+)/", $filter, $matches, PREG_PATTERN_ORDER);
-        //replace each match
-        foreach($matches[1] as $match) {
-            //take first element if array
-            if(is_array($placeholders[$match])) {
-                $value = $placeholders[$match][0];
-            } else {
-                $value = $placeholders[$match];
-            }
-            $value  = $this->_filterEscape($value);
-            $filter = str_replace('%{'.$match.'}', $value, $filter);
-        }
-        return $filter;
-    }
-
-    /**
-     * return true if $user + $info match $filter criteria, false otherwise
-     *
-     * @author Chris Smith <chris@jalakai.co.uk>
-     *
-     * @param  string $user the user's login name
-     * @param  array  $info the user's userinfo array
-     * @return bool
-     */
-    protected  function _filter($user, $info) {
-        foreach($this->_pattern as $item => $pattern) {
-            if($item == 'user') {
-                if(!preg_match($pattern, $user)) return false;
-            } else if($item == 'grps') {
-                if(!count(preg_grep($pattern, $info['grps']))) return false;
-            } else {
-                if(!preg_match($pattern, $info[$item])) return false;
-            }
-        }
-        return true;
-    }
-
-    /**
-     * Set the filter pattern
-     *
-     * @author Chris Smith <chris@jalakai.co.uk>
-     *
-     * @param $filter
-     * @return void
-     */
-    protected function _constructPattern($filter) {
-        $this->_pattern = array();
-        foreach($filter as $item => $pattern) {
-            $this->_pattern[$item] = '/'.str_replace('/', '\/', $pattern).'/i'; // allow regex characters
-        }
-    }
-
-    /**
-     * Escape a string to be used in a LDAP filter
-     *
-     * Ported from Perl's Net::LDAP::Util escape_filter_value
-     *
-     * @author Andreas Gohr
-     * @param  string $string
-     * @return string
-     */
-    protected function _filterEscape($string) {
-        // see https://github.com/adldap/adLDAP/issues/22
-        return preg_replace_callback(
-            '/([\x00-\x1F\*\(\)\\\\])/',
-            function ($matches) {
-                return "\\".join("", unpack("H2", $matches[1]));
-            },
-            $string
-        );
-    }
-
-    /**
-     * Opens a connection to the configured LDAP server and sets the wanted
-     * option on the connection
-     *
-     * @author  Andreas Gohr <andi@splitbrain.org>
-     */
-    protected function _openLDAP() {
-        if($this->con) return true; // connection already established
-
-        if($this->getConf('debug')) {
-            ldap_set_option(NULL, LDAP_OPT_DEBUG_LEVEL, 7);
-        }
-
-        $this->bound = 0;
-
-        $port    = $this->getConf('port');
-        $bound   = false;
-        $servers = explode(',', $this->getConf('server'));
-        foreach($servers as $server) {
-            $server    = trim($server);
-            $this->con = @ldap_connect($server, $port);
-            if(!$this->con) {
-                continue;
-            }
-
-            /*
-             * When OpenLDAP 2.x.x is used, ldap_connect() will always return a resource as it does
-             * not actually connect but just initializes the connecting parameters. The actual
-             * connect happens with the next calls to ldap_* funcs, usually with ldap_bind().
-             *
-             * So we should try to bind to server in order to check its availability.
-             */
-
-            //set protocol version and dependend options
-            if($this->getConf('version')) {
-                if(!@ldap_set_option(
-                    $this->con, LDAP_OPT_PROTOCOL_VERSION,
-                    $this->getConf('version')
-                )
-                ) {
-                    msg('Setting LDAP Protocol version '.$this->getConf('version').' failed', -1);
-                    $this->_debug('LDAP version set: '.htmlspecialchars(ldap_error($this->con)), 0, __LINE__, __FILE__);
-                } else {
-                    //use TLS (needs version 3)
-                    if($this->getConf('starttls')) {
-                        if(!@ldap_start_tls($this->con)) {
-                            msg('Starting TLS failed', -1);
-                            $this->_debug('LDAP TLS set: '.htmlspecialchars(ldap_error($this->con)), 0, __LINE__, __FILE__);
-                        }
-                    }
-                    // needs version 3
-                    if($this->getConf('referrals') > -1) {
-                        if(!@ldap_set_option(
-                            $this->con, LDAP_OPT_REFERRALS,
-                            $this->getConf('referrals')
-                        )
-                        ) {
-                            msg('Setting LDAP referrals failed', -1);
-                            $this->_debug('LDAP referal set: '.htmlspecialchars(ldap_error($this->con)), 0, __LINE__, __FILE__);
-                        }
-                    }
-                }
-            }
-
-            //set deref mode
-            if($this->getConf('deref')) {
-                if(!@ldap_set_option($this->con, LDAP_OPT_DEREF, $this->getConf('deref'))) {
-                    msg('Setting LDAP Deref mode '.$this->getConf('deref').' failed', -1);
-                    $this->_debug('LDAP deref set: '.htmlspecialchars(ldap_error($this->con)), 0, __LINE__, __FILE__);
-                }
-            }
-            /* As of PHP 5.3.0 we can set timeout to speedup skipping of invalid servers */
-            if(defined('LDAP_OPT_NETWORK_TIMEOUT')) {
-                ldap_set_option($this->con, LDAP_OPT_NETWORK_TIMEOUT, 1);
-            }
-
-            if($this->getConf('binddn') && $this->getConf('bindpw')) {
-                $bound = @ldap_bind($this->con, $this->getConf('binddn'), conf_decodeString($this->getConf('bindpw')));
-                $this->bound = 2;
-            } else {
-                $bound = @ldap_bind($this->con);
-            }
-            if($bound) {
-                break;
-            }
-        }
-
-        if(!$bound) {
-            msg("LDAP: couldn't connect to LDAP server", -1);
-            $this->_debug(ldap_error($this->con), 0, __LINE__, __FILE__);
-            return false;
-        }
-
-        $this->cando['getUsers'] = true;
-        return true;
-    }
-
-    /**
-     * Wraps around ldap_search, ldap_list or ldap_read depending on $scope
-     *
-     * @author Andreas Gohr <andi@splitbrain.org>
-     * @param resource   $link_identifier
-     * @param string     $base_dn
-     * @param string     $filter
-     * @param string     $scope can be 'base', 'one' or 'sub'
-     * @param null|array $attributes
-     * @param int        $attrsonly
-     * @param int        $sizelimit
-     * @return resource
-     */
-    protected function _ldapsearch($link_identifier, $base_dn, $filter, $scope = 'sub', $attributes = null,
-                         $attrsonly = 0, $sizelimit = 0) {
-        if(is_null($attributes)) $attributes = array();
-
-        if($scope == 'base') {
-            return @ldap_read(
-                $link_identifier, $base_dn, $filter, $attributes,
-                $attrsonly, $sizelimit
-            );
-        } elseif($scope == 'one') {
-            return @ldap_list(
-                $link_identifier, $base_dn, $filter, $attributes,
-                $attrsonly, $sizelimit
-            );
-        } else {
-            return @ldap_search(
-                $link_identifier, $base_dn, $filter, $attributes,
-                $attrsonly, $sizelimit
-            );
-        }
-    }
-
-    /**
-     * Wrapper around msg() but outputs only when debug is enabled
-     *
-     * @param string $message
-     * @param int    $err
-     * @param int    $line
-     * @param string $file
-     * @return void
-     */
-    protected function _debug($message, $err, $line, $file) {
-        if(!$this->getConf('debug')) return;
-        msg($message, $err, $line, $file);
-    }
-
-}
diff --git a/wiki/lib/plugins/authldap/conf/default.php b/wiki/lib/plugins/authldap/conf/default.php
deleted file mode 100644
index 116cb9d..0000000
--- a/wiki/lib/plugins/authldap/conf/default.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-
-$conf['server']      = '';
-$conf['port']        = 389;
-$conf['usertree']    = '';
-$conf['grouptree']   = '';
-$conf['userfilter']  = '';
-$conf['groupfilter'] = '';
-$conf['version']     = 2;
-$conf['starttls']    = 0;
-$conf['referrals']   = -1;
-$conf['deref']       = 0;
-$conf['binddn']      = '';
-$conf['bindpw']      = '';
-//$conf['mapping']['name']  unsupported in config manager
-//$conf['mapping']['grps']  unsupported in config manager
-$conf['userscope']  = 'sub';
-$conf['groupscope'] = 'sub';
-$conf['userkey']    = 'uid';
-$conf['groupkey']   = 'cn';
-$conf['debug']      = 0;
-$conf['modPass']    = 1;
diff --git a/wiki/lib/plugins/authldap/conf/metadata.php b/wiki/lib/plugins/authldap/conf/metadata.php
deleted file mode 100644
index f32aed1..0000000
--- a/wiki/lib/plugins/authldap/conf/metadata.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-$meta['server']      = array('string','_caution' => 'danger');
-$meta['port']        = array('numeric','_caution' => 'danger');
-$meta['usertree']    = array('string','_caution' => 'danger');
-$meta['grouptree']   = array('string','_caution' => 'danger');
-$meta['userfilter']  = array('string','_caution' => 'danger');
-$meta['groupfilter'] = array('string','_caution' => 'danger');
-$meta['version']     = array('numeric','_caution' => 'danger');
-$meta['starttls']    = array('onoff','_caution' => 'danger');
-$meta['referrals']   = array('multichoice','_choices' => array(-1,0,1),'_caution' => 'danger');
-$meta['deref']       = array('multichoice','_choices' => array(0,1,2,3),'_caution' => 'danger');
-$meta['binddn']      = array('string','_caution' => 'danger');
-$meta['bindpw']      = array('password','_caution' => 'danger','_code'=>'base64');
-//$meta['mapping']['name']  unsupported in config manager
-//$meta['mapping']['grps']  unsupported in config manager
-$meta['userscope']   = array('multichoice','_choices' => array('sub','one','base'),'_caution' => 'danger');
-$meta['groupscope']  = array('multichoice','_choices' => array('sub','one','base'),'_caution' => 'danger');
-$meta['userkey']     = array('string','_caution' => 'danger');
-$meta['groupkey']    = array('string','_caution' => 'danger');
-$meta['debug']       = array('onoff','_caution' => 'security');
-$meta['modPass']     = array('onoff');
diff --git a/wiki/lib/plugins/authldap/lang/ar/settings.php b/wiki/lib/plugins/authldap/lang/ar/settings.php
deleted file mode 100644
index aaef776..0000000
--- a/wiki/lib/plugins/authldap/lang/ar/settings.php
+++ /dev/null
@@ -1,13 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author alhajr <alhajr300@gmail.com>
- */
-$lang['port']                  = 'LDAP Ø§Ù„Ù…Ù†ÙØ° الملقم إذا لم يعط أي عنوان URL كامل أعلاه';
-$lang['version']               = 'إصدار نسخة البروتوكول الستخدامه. قد تحتاج لتعيين هذه القيمة إلى <code>3</code>';
-$lang['starttls']              = 'استخدام اتصالات TLS؟';
-$lang['referrals']             = 'يتبع الإحالات؟';
-$lang['deref']                 = 'كيÙية إلغاء مرجعية الأسماء المستعارة؟';
-$lang['bindpw']                = 'كلمة مرور المستخدم أعلاه';
diff --git a/wiki/lib/plugins/authldap/lang/bg/settings.php b/wiki/lib/plugins/authldap/lang/bg/settings.php
deleted file mode 100644
index 165216d..0000000
--- a/wiki/lib/plugins/authldap/lang/bg/settings.php
+++ /dev/null
@@ -1,20 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author Kiril <neohidra@gmail.com>
- */
-$lang['server']                = 'ВашиÑÑ‚ LDAP Ñървър. Име на хоÑта (<code>localhost</code>) или целиÑÑ‚ URL Ð°Ð´Ñ€ÐµÑ (<code>ldap://Ñървър.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['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>';
-$lang['starttls']              = 'Ползване на TLS ÑвързаноÑÑ‚?';
-$lang['referrals']             = 'Да бъдат ли Ñледвани препратките (препращаниÑта)?';
-$lang['bindpw']                = 'Парола за Ð³Ð¾Ñ€Ð½Ð¸Ñ Ð¿Ð¾Ñ‚Ñ€ÐµÐ±Ð¸Ñ‚ÐµÐ»';
-$lang['userscope']             = 'Ограничаване на обхвата за търÑене на потребители';
-$lang['groupscope']            = 'Ограничаване на обхвата за търÑене на потребителÑки групи';
-$lang['debug']                 = 'Показване на допълнителна debug Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¿Ñ€Ð¸ грешка';
diff --git a/wiki/lib/plugins/authldap/lang/ca/lang.php b/wiki/lib/plugins/authldap/lang/ca/lang.php
deleted file mode 100644
index f4431a3..0000000
--- a/wiki/lib/plugins/authldap/lang/ca/lang.php
+++ /dev/null
@@ -1,9 +0,0 @@
-<?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/wiki/lib/plugins/authldap/lang/ca/settings.php b/wiki/lib/plugins/authldap/lang/ca/settings.php
deleted file mode 100644
index 2f73833..0000000
--- a/wiki/lib/plugins/authldap/lang/ca/settings.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?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/wiki/lib/plugins/authldap/lang/cs/lang.php b/wiki/lib/plugins/authldap/lang/cs/lang.php
deleted file mode 100644
index 0fac2df..0000000
--- a/wiki/lib/plugins/authldap/lang/cs/lang.php
+++ /dev/null
@@ -1,9 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Jaroslav Lichtblau <jlichtblau@seznam.cz>
- */
-$lang['connectfail']           = 'LDAP pÅ™ipojení nefunkÄní: %s';
-$lang['domainfail']            = 'LDAP nenalezlo uživatelské dn';
diff --git a/wiki/lib/plugins/authldap/lang/cs/settings.php b/wiki/lib/plugins/authldap/lang/cs/settings.php
deleted file mode 100644
index 741a56a..0000000
--- a/wiki/lib/plugins/authldap/lang/cs/settings.php
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author mkucera66 <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']            = '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?';
-$lang['deref']                 = 'Jak rozlišovat aliasy?';
-$lang['binddn']                = 'Doménový název DN volitelně připojeného uživatele, pokus anonymní připojení není vyhovující, tj.  <code>cn=admin, dc=muj, dc=domov</code>';
-$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['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';
-$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']        = 'použít výchozí';
-$lang['referrals_o_0']         = 'nenásledovat odkazy';
-$lang['referrals_o_1']         = 'následovat odkazy';
diff --git a/wiki/lib/plugins/authldap/lang/cy/lang.php b/wiki/lib/plugins/authldap/lang/cy/lang.php
deleted file mode 100644
index f6c5cf6..0000000
--- a/wiki/lib/plugins/authldap/lang/cy/lang.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-/**
- * Welsh language file for authldap plugin
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- */
-
-$lang['connectfail']     = 'LDAP yn methu cysylltu: %s';
-$lang['domainfail']       = 'LDAP yn methu darganfod eich defnyddiwr dn';
-
-//Setup VIM: ex: et ts=4 :
diff --git a/wiki/lib/plugins/authldap/lang/cy/settings.php b/wiki/lib/plugins/authldap/lang/cy/settings.php
deleted file mode 100644
index 91c9bfd..0000000
--- a/wiki/lib/plugins/authldap/lang/cy/settings.php
+++ /dev/null
@@ -1,29 +0,0 @@
-<?php
-$lang['server']      = 'Eich gweinydd LDAP. Naill ai enw\'r gweinydd (<code>localhost</code>) neu\'r URL llawn (<code>ldap://server.tld:389</code>)';
-$lang['port']        = 'Porth gweinydd LDAP os nac oes URL llawn wedi\'i gyflwyno uchod';
-$lang['usertree']    = 'Ble i ddarganfod cyfrifon defnyddwyr. Ee. <code>ou=People, dc=server, dc=tld</code>';
-$lang['grouptree']   = 'Ble i ddarganfod y grwpiau defnyddiwr. Eg. <code>ou=Group, dc=server, dc=tld</code>';
-$lang['userfilter']  = 'Hidlydd LDAP i ddarganfod cyfrifon defnyddwyr. Eg. <code>(&amp;(uid=%{user})(objectClass=posixAccount))</code>';
-$lang['groupfilter'] = 'Hidlydd LDAP i chwilio am grwpiau. Eg. <code>(&amp;(objectClass=posixGroup)(|(gidNumber=%{gid})(memberUID=%{user})))</code>';
-$lang['version']     = 'Y fersiwn protocol i\'w ddefnyddio. Efallai bydd angen gosod hwn i <code>3</code>';
-$lang['starttls']    = 'Defnyddio cysylltiadau TLS?';
-$lang['referrals']   = 'Dilyn cyfeiriadau (referrals)?';
-$lang['deref']       = 'Sut i ddadgyfeirio alias?'; //alias - enw arall?
-$lang['binddn']      = 'DN rhwymiad defnyddiwr opsiynol os ydy rhwymiad anhysbys yn annigonol. Ee. <code>cn=admin, dc=my, dc=home</code>';
-$lang['bindpw']      = 'Cyfrinair y defnyddiwr uchod';
-$lang['userscope']   = 'Cyfyngu sgôp chwiliadau ar gyfer chwiliad defnyddwyr';
-$lang['groupscope']  = 'Cyfyngu sgôp chwiliadau ar gyfer chwiliad grwpiau';
-$lang['userkey']     = 'Priodoledd yn denodi\'r defnyddair; rhaid iddo fod yn gyson i \'r hidlydd defnyddwyr.';
-$lang['groupkey']    = 'Aelodaeth grŵp o unrhyw briodoledd defnyddiwr (yn hytrach na grwpiau AD safonol) e.e. grŵp o adran neu rif ffôn';
-$lang['modPass']     = 'Gall cyfrinair LDAP gael ei newid gan DokuWiki?';
-$lang['debug']       = 'Dangos gwybodaeth dadfygio ychwanegol gyda gwallau';
-
-
-$lang['deref_o_0']   = 'LDAP_DEREF_NEVER';
-$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'] = 'defnyddio\'r diofyn';
-$lang['referrals_o_0']  = 'peidio dilyn cyfeiriadau';
-$lang['referrals_o_1']  = 'dilyn cyfeiriadau';
\ No newline at end of file
diff --git a/wiki/lib/plugins/authldap/lang/da/lang.php b/wiki/lib/plugins/authldap/lang/da/lang.php
deleted file mode 100644
index 35249df..0000000
--- a/wiki/lib/plugins/authldap/lang/da/lang.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Jon Theil Nielsen <jontheil@gmail.com>
- * @author Jacob Palm <mail@jacobpalm.dk>
- */
-$lang['connectfail']           = 'LDAP kan ikke forbinde: %s';
-$lang['domainfail']            = 'LDAP kan ikke finde dit bruger dn';
diff --git a/wiki/lib/plugins/authldap/lang/da/settings.php b/wiki/lib/plugins/authldap/lang/da/settings.php
deleted file mode 100644
index 7a1384d..0000000
--- a/wiki/lib/plugins/authldap/lang/da/settings.php
+++ /dev/null
@@ -1,29 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Jon Theil Nielsen <jontheil@gmail.com>
- * @author Jens Hyllegaard <jens.hyllegaard@gmail.com>
- * @author soer9648 <soer9648@eucl.dk>
- * @author Jacob Palm <mail@jacobpalm.dk>
- */
-$lang['server']                = 'Din LDAP server. Enten værtsnavn (<code>localhost</code>) eller fuld kvalificeret URL (<code>ldap://server.tld:389</code>)';
-$lang['port']                  = 'LDAP server port, hvis der ikke er angivet en komplet URL ovenfor.';
-$lang['usertree']              = 'Hvor findes brugerkonti. F.eks. <code>ou=Personer, dc=server, dc=tld</code>';
-$lang['grouptree']             = 'Hvor findes brugergrupper. F.eks. <code>ou=Grupper, dc=server, dc=tld</code>';
-$lang['userfilter']            = 'LDAP filter der benyttes til at søge efter brugerkonti. F.eks. <code>(&amp;(uid=%{user})(objectClass=posixAccount))</code>';
-$lang['groupfilter']           = 'LDAP filter tder benyttes til at søge efter grupper. F.eks. <code>(&amp;(objectClass=posixGroup)(|(gidNumber=%{gid})(memberUID=%{user})))</code>';
-$lang['version']               = 'Protokol version der skal benyttes. Det er muligvis nødvendigt at sætte denne til <code>3</code>';
-$lang['starttls']              = 'Benyt TLS forbindelser?';
-$lang['binddn']                = 'DN af en valgfri <bindings-bruger, hvis ikke anonym binding er tilstrækkeligt. Fx <code>cn=admin,dc=my,dc=home</code>';
-$lang['bindpw']                = 'Kodeord til ovenstående bruger';
-$lang['userscope']             = 'Begræns søgekriterier for brugersøgning';
-$lang['groupscope']            = 'Begræns søgekriterier for gruppesøgning';
-$lang['userkey']               = 'Attribut der betegner brugernavnet; skal være i overensstemmelse med brugerfilteret.';
-$lang['groupkey']              = 'Gruppemedlemskab fra hvilken som helst brugerattribut (i stedet for standard AD-grupper), fx gruppe fra afdeling eller telefonnummer';
-$lang['modPass']               = 'Kan LDAP adgangskoden skiftes via DokuWiki?';
-$lang['debug']                 = 'Vis yderligere debug output ved fejl';
-$lang['referrals_o_-1']        = 'brug standardindstilling';
-$lang['referrals_o_0']         = 'følg ikke henvisninger';
-$lang['referrals_o_1']         = 'følg henvisninger';
diff --git a/wiki/lib/plugins/authldap/lang/de-informal/lang.php b/wiki/lib/plugins/authldap/lang/de-informal/lang.php
deleted file mode 100644
index 79016fe..0000000
--- a/wiki/lib/plugins/authldap/lang/de-informal/lang.php
+++ /dev/null
@@ -1,9 +0,0 @@
-<?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/wiki/lib/plugins/authldap/lang/de-informal/settings.php b/wiki/lib/plugins/authldap/lang/de-informal/settings.php
deleted file mode 100644
index 716b92e..0000000
--- a/wiki/lib/plugins/authldap/lang/de-informal/settings.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-
-/**
- * @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>
- * @author F. Mueller-Donath <j.felix@mueller-donath.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.';
-$lang['usertree']              = 'Zweig, in dem die die Benutzeraccounts gespeichert sind. Zum Beispiel: <code>ou=People, dc=server, dc=tld</code>.';
-$lang['grouptree']             = 'Zweig, in dem die Benutzergruppen gespeichert sind. Zum Beispiel:  <code>ou=Group, dc=server, dc=tld</code>.';
-$lang['userfilter']            = 'LDAP-Filter, um die Benutzeraccounts zu suchen. Zum Beispiel: <code>(&amp;(uid=%{user})(objectClass=posixAccount))</code>.';
-$lang['groupfilter']           = 'LDAP-Filter, um die Benutzergruppen zu suchen. Zum Beispiel:  <code>(&amp;(objectClass=posixGroup)(|(gidNumber=%{gid})(memberUID=%{user})))</code>.';
-$lang['version']               = 'Zu verwendende Protokollversion von LDAP.';
-$lang['starttls']              = 'Verbindung über TLS aufbauen?';
-$lang['referrals']             = 'Weiterverfolgen von LDAP-Referrals (Verweise)?';
-$lang['deref']                 = 'Wie sollen Aliasse derefernziert werden?';
-$lang['binddn']                = 'DN eines optionalen Benutzers, wenn der anonyme Zugriff nicht ausreichend ist. Zum Beispiel: <code>cn=admin, dc=my, dc=home</code>.';
-$lang['bindpw']                = 'Passwort des angegebenen Benutzers.';
-$lang['userscope']             = 'Die Suchweite nach Benutzeraccounts.';
-$lang['groupscope']            = 'Die Suchweite nach Benutzergruppen.';
-$lang['userkey']               = 'Attribut, das den Benutzernamen enthält; muss konsistent zum userfilter sein.';
-$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/wiki/lib/plugins/authldap/lang/de/lang.php b/wiki/lib/plugins/authldap/lang/de/lang.php
deleted file mode 100644
index db6b891..0000000
--- a/wiki/lib/plugins/authldap/lang/de/lang.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-
-/**
- * @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 Ihren Benutzer (DN) nicht finden';
diff --git a/wiki/lib/plugins/authldap/lang/de/settings.php b/wiki/lib/plugins/authldap/lang/de/settings.php
deleted file mode 100644
index f1bfc00..0000000
--- a/wiki/lib/plugins/authldap/lang/de/settings.php
+++ /dev/null
@@ -1,36 +0,0 @@
-<?php
-
-/**
- * @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.';
-$lang['usertree']              = 'Zweig, in dem die die Benutzeraccounts gespeichert sind. Zum Beispiel: <code>ou=People, dc=server, dc=tld</code>.';
-$lang['grouptree']             = 'Zweig, in dem die Benutzergruppen gespeichert sind. Zum Beispiel:  <code>ou=Group, dc=server, dc=tld</code>.';
-$lang['userfilter']            = 'LDAP-Filter, um die Benutzeraccounts zu suchen. Zum Beispiel: <code>(&amp;(uid=%{user})(objectClass=posixAccount))</code>.';
-$lang['groupfilter']           = 'LDAP-Filter, um die Benutzergruppen zu suchen. Zum Beispiel:  <code>(&amp;(objectClass=posixGroup)(|(gidNumber=%{gid})(memberUID=%{user})))</code>.';
-$lang['version']               = 'Zu verwendende Protokollversion von LDAP.';
-$lang['starttls']              = 'Verbindung über TLS aufbauen?';
-$lang['referrals']             = 'Weiterverfolgen von LDAP-Referrals (Verweise)?';
-$lang['deref']                 = 'Wie sollen Aliase aufgelöst werden?';
-$lang['binddn']                = 'DN eines optionalen Benutzers, wenn der anonyme Zugriff nicht ausreichend ist. Zum Beispiel: <code>cn=admin, dc=my, dc=home</code>.';
-$lang['bindpw']                = 'Passwort des angegebenen Benutzers.';
-$lang['userscope']             = 'Die Suchweite nach Benutzeraccounts.';
-$lang['groupscope']            = 'Die Suchweite nach Benutzergruppen.';
-$lang['userkey']               = 'Attribut, das den Benutzernamen enthält; muss konsistent zum userfilter sein.';
-$lang['groupkey']              = 'Gruppieren der Benutzeraccounts anhand eines beliebigen Benutzerattributes z. B. Telefonnummer oder Abteilung, anstelle der Standard-Gruppen).';
-$lang['modPass']               = 'Darf über Dokuwiki das LDAP-Passwort geändert werden?';
-$lang['debug']                 = 'Debug-Informationen beim Auftreten von Fehlern anzeigen?';
-$lang['deref_o_0']             = 'LDAP_DEREF_NEVER';
-$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']         = 'Referrals nicht folgen';
-$lang['referrals_o_1']         = 'Referrals folgen';
diff --git a/wiki/lib/plugins/authldap/lang/en/lang.php b/wiki/lib/plugins/authldap/lang/en/lang.php
deleted file mode 100644
index 8185a84..0000000
--- a/wiki/lib/plugins/authldap/lang/en/lang.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-/**
- * English language file for authldap plugin
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- */
-
-$lang['connectfail']     = 'LDAP cannot connect: %s';
-$lang['domainfail']       = 'LDAP cannot find your user dn';
-
-//Setup VIM: ex: et ts=4 :
diff --git a/wiki/lib/plugins/authldap/lang/en/settings.php b/wiki/lib/plugins/authldap/lang/en/settings.php
deleted file mode 100644
index a4194b0..0000000
--- a/wiki/lib/plugins/authldap/lang/en/settings.php
+++ /dev/null
@@ -1,29 +0,0 @@
-<?php
-$lang['server']      = 'Your LDAP server. Either hostname (<code>localhost</code>) or full qualified URL (<code>ldap://server.tld:389</code>)';
-$lang['port']        = 'LDAP server port if no full URL was given above';
-$lang['usertree']    = 'Where to find the user accounts. Eg. <code>ou=People, dc=server, dc=tld</code>';
-$lang['grouptree']   = 'Where to find the user groups. Eg. <code>ou=Group, dc=server, dc=tld</code>';
-$lang['userfilter']  = 'LDAP filter to search for user accounts. Eg. <code>(&amp;(uid=%{user})(objectClass=posixAccount))</code>';
-$lang['groupfilter'] = 'LDAP filter to search for groups. Eg. <code>(&amp;(objectClass=posixGroup)(|(gidNumber=%{gid})(memberUID=%{user})))</code>';
-$lang['version']     = 'The protocol version to use. You may need to set this to <code>3</code>';
-$lang['starttls']    = 'Use TLS connections?';
-$lang['referrals']   = 'Shall referrals be followed?';
-$lang['deref']       = 'How to dereference aliases?';
-$lang['binddn']      = 'DN of an optional bind user if anonymous bind is not sufficient. Eg. <code>cn=admin, dc=my, dc=home</code>';
-$lang['bindpw']      = 'Password of above user';
-$lang['userscope']   = 'Limit search scope for user search';
-$lang['groupscope']  = 'Limit search scope for group search';
-$lang['userkey']     = 'Attribute denoting the username; must be consistent to userfilter.';
-$lang['groupkey']    = 'Group membership from any user attribute (instead of standard AD groups) e.g. group from department or telephone number';
-$lang['modPass']     = 'Can the LDAP password be changed via dokuwiki?';
-$lang['debug']       = 'Display additional debug information on errors';
-
-
-$lang['deref_o_0']   = 'LDAP_DEREF_NEVER';
-$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'] = 'use default';
-$lang['referrals_o_0']  = 'don\'t follow referrals';
-$lang['referrals_o_1']  = 'follow referrals';
\ No newline at end of file
diff --git a/wiki/lib/plugins/authldap/lang/eo/settings.php b/wiki/lib/plugins/authldap/lang/eo/settings.php
deleted file mode 100644
index ca20f67..0000000
--- a/wiki/lib/plugins/authldap/lang/eo/settings.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Felipe Castro <fefcas@yahoo.com.br>
- */
-$lang['server']                = 'Via LDAP-servilo. AÅ­ servila nomo (<code>localhost</code>) aÅ­ plene detala URL (<code>ldap://servilo.lando:389</code>)';
-$lang['port']                  = 'LDAP-servila pordego, se vi supre ne indikis la plenan URL';
-$lang['usertree']              = 'Kie trovi uzantajn kontojn, ekz. <code>ou=Personoj, dc=servilo, dc=lando</code>';
-$lang['grouptree']             = 'Kie trovi uzantogrupojn, ekz. <code>ou=Grupo, dc=servilo, dc=lando</code>';
-$lang['userfilter']            = 'LDAP-filtrilo por serĉi uzantokontojn, ekz. <code>(&amp;(uid=%{user})(objectClass=posixAccount))</code>';
-$lang['groupfilter']           = 'LDAP-filtrilo por serĉi grupojn, ekz. <code>(&amp;(objectClass=posixGroup)(|(gidNumber=%{gid})(memberUID=%{user})))</code>';
-$lang['version']               = 'La uzenda protokolversio. Eble necesas indiki <code>3</code>';
-$lang['starttls']              = 'Ĉu uzi TLS-konektojn?';
-$lang['referrals']             = 'Ĉu sekvi referencojn?';
-$lang['deref']                 = 'Kiel dereferencigi kromnomojn?';
-$lang['binddn']                = 'DN de opcie bindita uzanto, se anonima bindado ne sufiĉas, ekz. <code>cn=admin, dc=mia, dc=hejmo</code>';
-$lang['bindpw']                = 'Pasvorto de tiu uzanto';
-$lang['userscope']             = 'Limigi serĉospacon de uzantaj serĉoj';
-$lang['groupscope']            = 'Limigi serĉospacon por grupaj serĉoj';
-$lang['groupkey']              = 'Grupa membreco de iu uzanta atributo (anstataÅ­ standardaj AD-grupoj), ekz. grupo de departemento aÅ­ telefonnumero';
-$lang['debug']                 = 'Ĉu montri aldonajn erarinformojn?';
-$lang['deref_o_0']             = 'LDAP_DEREF_NEVER';
-$lang['deref_o_1']             = 'LDAP_DEREF_SEARCHING';
-$lang['deref_o_2']             = 'LDAP_DEREF_FINDING';
-$lang['deref_o_3']             = 'LDAP_DEREF_ALWAYS';
diff --git a/wiki/lib/plugins/authldap/lang/es/lang.php b/wiki/lib/plugins/authldap/lang/es/lang.php
deleted file mode 100644
index 53db676..0000000
--- a/wiki/lib/plugins/authldap/lang/es/lang.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Mauricio Segura <maose38@yahoo.es>
- * @author David Roy <davidroyapp@gmail.com>
- */
-$lang['connectfail']           = 'LDAP no se puede conectar: %s';
-$lang['domainfail']            = 'LDAP no puede encontrar el DN de tu usuario';
diff --git a/wiki/lib/plugins/authldap/lang/es/settings.php b/wiki/lib/plugins/authldap/lang/es/settings.php
deleted file mode 100644
index ba8f41e..0000000
--- a/wiki/lib/plugins/authldap/lang/es/settings.php
+++ /dev/null
@@ -1,36 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Antonio Bueno <atnbueno@gmail.com>
- * @author Eloy <ej.perezgomez@gmail.com>
- * @author Alejandro Nunez <nunez.alejandro@gmail.com>
- * @author Enny Rodriguez <aquilez.4@gmail.com>
- * @author Domingo Redal <docxml@gmail.com>
- */
-$lang['server']                = 'Tu servidor LDAP. Puede ser el nombre del host  (<code>localhost</code>) o una URL completa (<code>ldap://server.tld:389</code>)';
-$lang['port']                  = 'Servidor LDAP en caso de que no se diera la URL completa anteriormente.';
-$lang['usertree']              = 'Donde encontrar cuentas de usuario. Ej. <code>ou=People, dc=server, dc=tld</code>';
-$lang['grouptree']             = 'Donde encontrar grupos de usuarios. Ej. <code>ou=Group, dc=server, dc=tld</code>';
-$lang['userfilter']            = 'Filtro LDAP para la busqueda de cuentas de usuario. P. E. <code>(&amp;(uid=%{user})(objectClass=posixAccount))</code>';
-$lang['groupfilter']           = 'Filtro LDAP para la busqueda de grupos. P. E. <code>(&amp;(objectClass=posixGroup)(|(gidNumber=%{gid})(memberUID=%{user})))</code>';
-$lang['version']               = 'La versión del protocolo a usar. Puede que necesites poner esto a <code>3</code>';
-$lang['starttls']              = 'Usar conexiones TLS?';
-$lang['referrals']             = '¿Deben ser seguidas las referencias?';
-$lang['deref']                 = '¿Cómo desreferenciar los alias?';
-$lang['binddn']                = 'DN de un usuario de enlace opcional si el enlace anónimo no es suficiente. P. ej. <code>cn=admin, dc=my, dc=home</code>';
-$lang['bindpw']                = 'Contraseña del usuario de arriba.';
-$lang['userscope']             = 'Limitar ámbito de búsqueda para búsqueda de usuarios';
-$lang['groupscope']            = 'Limitar ámbito de búsqueda para búsqueda de grupos';
-$lang['userkey']               = 'Atributo que denota el nombre de usuario; debe ser coherente con el filtro.';
-$lang['groupkey']              = 'Pertenencia al grupo desde cualquier atributo de usuario (en lugar de grupos AD estándar) p.e., grupo a partir departamento o número de teléfono';
-$lang['modPass']               = 'Puede ser cambiara via dokuwiki la password LDAP?';
-$lang['debug']                 = 'Mostrar información adicional para depuración de errores';
-$lang['deref_o_0']             = 'LDAP_DEREF_NEVER';
-$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']        = 'usar default';
-$lang['referrals_o_0']         = 'no seguir referencias';
-$lang['referrals_o_1']         = 'seguir referencias';
diff --git a/wiki/lib/plugins/authldap/lang/et/settings.php b/wiki/lib/plugins/authldap/lang/et/settings.php
deleted file mode 100644
index f4933b6..0000000
--- a/wiki/lib/plugins/authldap/lang/et/settings.php
+++ /dev/null
@@ -1,9 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author Janar Leas <janar.leas@eesti.ee>
- */
-$lang['grouptree']             = 'Kus kohast kasutaja rühmi otsida. Nt. <code>ou=Rühm, dc=server, dc=tld</code>';
-$lang['groupscope']            = 'Piiritle otsingu ulatus rühma otsinguga';
diff --git a/wiki/lib/plugins/authldap/lang/eu/lang.php b/wiki/lib/plugins/authldap/lang/eu/lang.php
deleted file mode 100644
index f68b6d1..0000000
--- a/wiki/lib/plugins/authldap/lang/eu/lang.php
+++ /dev/null
@@ -1,8 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Osoitz <oelkoro@gmail.com>
- */
-$lang['connectfail']           = 'LDAP ezin da konektaku: %s';
diff --git a/wiki/lib/plugins/authldap/lang/eu/settings.php b/wiki/lib/plugins/authldap/lang/eu/settings.php
deleted file mode 100644
index cd3d62c..0000000
--- a/wiki/lib/plugins/authldap/lang/eu/settings.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Osoitz <oelkoro@gmail.com>
- */
-$lang['version']               = 'Erabiltzen duzun proitokoloaren bertsioa. <code>3</code> gisa jarri behar zenezake';
-$lang['starttls']              = 'Erabili TLS konexioak?';
-$lang['bindpw']                = 'Goiko erabiltzailearen pasahitza';
-$lang['referrals_o_-1']        = 'erabili lehenetsitakoa';
diff --git a/wiki/lib/plugins/authldap/lang/fa/lang.php b/wiki/lib/plugins/authldap/lang/fa/lang.php
deleted file mode 100644
index a4e776b..0000000
--- a/wiki/lib/plugins/authldap/lang/fa/lang.php
+++ /dev/null
@@ -1,9 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Masoud Sadrnezhaad <masoud@sadrnezhaad.ir>
- */
-$lang['connectfail']           = 'LDAP نمیتواند وصل شود: %s';
-$lang['domainfail']            = 'LDAP نمیتواند کاربر شما را پیدا کند';
diff --git a/wiki/lib/plugins/authldap/lang/fa/settings.php b/wiki/lib/plugins/authldap/lang/fa/settings.php
deleted file mode 100644
index 3d4f17b..0000000
--- a/wiki/lib/plugins/authldap/lang/fa/settings.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Mohammad Sadegh <msdn2013@gmail.com>
- * @author Omid Hezaveh <hezpublic@gmail.com>
- * @author Mohmmad Razavi <sepent@gmail.com>
- * @author Masoud Sadrnezhaad <masoud@sadrnezhaad.ir>
- * @author sam01 <m.sajad079@gmail.com>
- */
-$lang['server']                = 'سرور LDAP شما. چه به صورت ';
-$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['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> وارد کنید.';
-$lang['starttls']              = 'از تی‌ال‌اس (TLS) Ø§Ø³ØªÙØ§Ø¯Ù‡ می‌کنید؟';
-$lang['referrals']             = 'آیا ارجاعات باید دنبال شوند؟';
-$lang['deref']                 = 'نام‌های مستعار چطور ارجاع یابی شوند؟';
-$lang['binddn']                = ' DN برای کاربر اتصال اگر اتصال ناشناخته کاÙÛŒ نیست. مثال
-<code>cn=admin, dc=my, dc=home</code>';
-$lang['bindpw']                = 'رمزعبور کاربر بالا';
-$lang['userscope']             = 'محدود کردن محدودهٔ جستجو به جستجوی کاربر';
-$lang['groupscope']            = 'محدود کردن محدودهٔ جستجو به جستجوی گروه';
-$lang['userkey']               = 'ØµÙØªÛŒ Ú©Ù‡ نشان‌دهندهٔ نام کاربر است؛ باید با userfilter نامتناقض باشد.';
-$lang['groupkey']              = 'عضویت در گروه برمبنای هر کدام از ØµÙØ§Øª کاربر (به جای گروه‌های استاندارد AD) برای مثال گروه برمبنای دپارتمان یا شماره تلÙÙ†';
-$lang['modPass']               = 'آیا پسورد LDAP می‌تواند توسط داکو ویکی تغییر کند؟';
-$lang['debug']                 = 'نمایش اطلاعات بیشتر برای خطایابی در ارورها';
-$lang['deref_o_0']             = 'LDAP_DEREF_NEVER';
-$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']        = 'Ø§Ø³ØªÙØ§Ø¯Ù‡ از Ù¾ÛŒØ´ÙØ±Ø¶';
-$lang['referrals_o_0']         = 'ارجاعات را دنبال نکن';
-$lang['referrals_o_1']         = 'ارجاعات را دنبال کن';
diff --git a/wiki/lib/plugins/authldap/lang/fi/settings.php b/wiki/lib/plugins/authldap/lang/fi/settings.php
deleted file mode 100644
index b15d8c6..0000000
--- a/wiki/lib/plugins/authldap/lang/fi/settings.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author Otto Vainio <otto@valjakko.net>
- */
-$lang['starttls']              = 'Käytä TLS yhteyttä';
-$lang['bindpw']                = 'Ylläolevan käyttäjän salasana';
-$lang['userscope']             = 'Etsi vain käyttäjiä';
-$lang['groupscope']            = 'Etsi vain ryhmiä';
diff --git a/wiki/lib/plugins/authldap/lang/fr/lang.php b/wiki/lib/plugins/authldap/lang/fr/lang.php
deleted file mode 100644
index ce26e86..0000000
--- a/wiki/lib/plugins/authldap/lang/fr/lang.php
+++ /dev/null
@@ -1,9 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Pietroni <pietroni@informatique.univ-paris-diderot.fr>
- */
-$lang['connectfail']           = 'LDAP ne peux se connecter : %s';
-$lang['domainfail']            = 'LDAP ne trouve pas l\'utilisateur dn';
diff --git a/wiki/lib/plugins/authldap/lang/fr/settings.php b/wiki/lib/plugins/authldap/lang/fr/settings.php
deleted file mode 100644
index be36367..0000000
--- a/wiki/lib/plugins/authldap/lang/fr/settings.php
+++ /dev/null
@@ -1,33 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Bruno Veilleux <bruno.vey@gmail.com>
- * @author schplurtz <Schplurtz@laposte.net>
- */
-$lang['server']                = 'Votre serveur LDAP. Soit le nom d\'hôte (<code>localhost</code>) ou l\'URL complète (<code>ldap://serveur.dom:389</code>)';
-$lang['port']                  = 'Port du serveur LDAP si l\'URL complète n\'a pas été indiquée ci-dessus';
-$lang['usertree']              = 'Où trouver les comptes utilisateur. Ex.: <code>ou=Utilisateurs, dc=serveur, dc=dom</code>';
-$lang['grouptree']             = 'Où trouver les groupes d\'utilisateurs. Ex.: <code>ou=Groupes, dc=serveur, dc=dom</code>';
-$lang['userfilter']            = 'Filtre LDAP pour rechercher les comptes utilisateur. Ex.: <code>(&amp;(uid=%{user})(objectClass=posixAccount))</code>';
-$lang['groupfilter']           = 'Filtre LDAP pour rechercher les groupes. Ex.: <code>(&amp;(objectClass=posixGroup)(|(gidNumber=%{gid})(memberUID=%{user})))</code>';
-$lang['version']               = 'La version de protocole à utiliser. Il se peut que vous deviez utiliser <code>3</code>';
-$lang['starttls']              = 'Utiliser les connexions TLS?';
-$lang['referrals']             = 'Suivre les références?';
-$lang['deref']                 = 'Comment déréférencer les alias ?';
-$lang['binddn']                = 'Nom de domaine d\'un utilisateur de connexion facultatif si une connexion anonyme n\'est pas suffisante. Ex. : <code>cn=admin, dc=mon, dc=accueil</code>';
-$lang['bindpw']                = 'Mot de passe de l\'utilisateur ci-dessus.';
-$lang['userscope']             = 'Limiter la portée de recherche d\'utilisateurs';
-$lang['groupscope']            = 'Limiter la portée de recherche de groupes';
-$lang['userkey']               = 'Attribut indiquant le nom d\'utilisateur. Doit être en accord avec le filtre d\'utilisateur.';
-$lang['groupkey']              = 'Affiliation aux groupes à partir de n\'importe quel attribut utilisateur (au lieu des groupes AD standards), p. ex. groupes par département ou numéro de téléphone';
-$lang['modPass']               = 'Peut-on changer le mot de passe LDAP depuis DokiWiki ?';
-$lang['debug']                 = 'Afficher des informations de bégogage supplémentaires pour les erreurs';
-$lang['deref_o_0']             = 'LDAP_DEREF_NEVER';
-$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']        = 'comportement par défaut';
-$lang['referrals_o_0']         = 'ne pas suivre les références';
-$lang['referrals_o_1']         = 'suivre les références';
diff --git a/wiki/lib/plugins/authldap/lang/he/settings.php b/wiki/lib/plugins/authldap/lang/he/settings.php
deleted file mode 100644
index 8886446..0000000
--- a/wiki/lib/plugins/authldap/lang/he/settings.php
+++ /dev/null
@@ -1,14 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Guy Yakobovitch <guy.yakobovitch@gmail.com>
- * @author matt carroll <matt.carroll@gmail.com>
- * @author Menashe Tomer <menashesite@gmail.com>
- */
-$lang['starttls']              = 'השתמש בחיבורי TLS';
-$lang['bindpw']                = 'סיסמה של המשתמש לעיל';
-$lang['modPass']               = '×”×× dokuwiki יכול ליצור סיסמ×ות LDAP?';
-$lang['debug']                 = 'הצג מידע נוסף על שגי×ות';
-$lang['referrals_o_-1']        = 'ברירת מחדל';
diff --git a/wiki/lib/plugins/authldap/lang/hr/lang.php b/wiki/lib/plugins/authldap/lang/hr/lang.php
deleted file mode 100644
index fb915b4..0000000
--- a/wiki/lib/plugins/authldap/lang/hr/lang.php
+++ /dev/null
@@ -1,9 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Davor Turkalj <turki.bsc@gmail.com>
- */
-$lang['connectfail']           = 'LDAP se ne može spojiti: %s';
-$lang['domainfail']            = 'LDAP ne može pronaći VaÅ¡ korisniÄki dn';
diff --git a/wiki/lib/plugins/authldap/lang/hr/settings.php b/wiki/lib/plugins/authldap/lang/hr/settings.php
deleted file mode 100644
index 0e5faa4..0000000
--- a/wiki/lib/plugins/authldap/lang/hr/settings.php
+++ /dev/null
@@ -1,32 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Davor Turkalj <turki.bsc@gmail.com>
- */
-$lang['server']                = 'VaÅ¡ LDAP server. UpiÅ¡ite ili naziv raÄunala (<code>localhost</code>) ili puni URL (<code>ldap://server.tld:389</code>)';
-$lang['port']                  = 'LDAP server port, ako gore nije specificiran puni URL.';
-$lang['usertree']              = 'Gdje da naÄ‘em korisniÄke prijave. Npr. <code>ou=People, dc=server, dc=tld</code>';
-$lang['grouptree']             = 'Gdje da naÄ‘em korisniÄke grupe. Npr. <code>ou=Group, dc=server, dc=tld</code>';
-$lang['userfilter']            = 'LDAP filter za pretragu korisniÄkih prijava. Npr. <code>(&amp;(uid=%{user})(objectClass=posixAccount))</code>';
-$lang['groupfilter']           = 'LDAP filter za pretragu grupa. Npr. <code>(&amp;(objectClass=posixGroup)(|(gidNumber=%{gid})(memberUID=%{user})))</code>';
-$lang['version']               = 'Protokol koji se koristi. Možda će te trebati postaviti na <code>3</code>';
-$lang['starttls']              = 'Korisni TLS vezu?';
-$lang['referrals']             = 'Da li da slijedim uputnice?';
-$lang['deref']                 = 'Kako da razlikujem aliase?';
-$lang['binddn']                = 'DN opcionalnog korisnika ako anonimni korisnik nije dovoljan. Npr. <code>cn=admin, dc=my, dc=home</code>';
-$lang['bindpw']                = 'Lozinka gore navedenog korisnika';
-$lang['userscope']             = 'OgraniÄi podruÄje za pretragu korisnika';
-$lang['groupscope']            = 'OgraniÄi podruÄje za pretragu grupa';
-$lang['userkey']               = 'Atribut oznaÄava ime; mora biti u skladu s korisniÄkim filterom.';
-$lang['groupkey']              = 'ÄŒlanstvo grupa iz svih atributa korisnika (umjesto standardnih AD grupa) npr. grupa iz odjela ili telefonskog broja';
-$lang['modPass']               = 'Da li LDAP lozinka može biti izmijenjena kroz dokuwiki?';
-$lang['debug']                 = 'Prikaži dodatne informacije u sluÄaju greÅ¡ke';
-$lang['deref_o_0']             = 'LDAP_DEREF_NEVER';
-$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']        = 'koristi podrazumijevano';
-$lang['referrals_o_0']         = 'ne slijedi preporuke';
-$lang['referrals_o_1']         = 'slijedi preporuke';
diff --git a/wiki/lib/plugins/authldap/lang/hu/lang.php b/wiki/lib/plugins/authldap/lang/hu/lang.php
deleted file mode 100644
index 07c16f3..0000000
--- a/wiki/lib/plugins/authldap/lang/hu/lang.php
+++ /dev/null
@@ -1,9 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author Marton Sebok <sebokmarton@gmail.com>
- */
-$lang['connectfail']           = 'Az LDAP nem tudott csatlakozni: %s';
-$lang['domainfail']            = 'Az LDAP nem találta a felhasználód megkülönböztető nevét (DN)';
diff --git a/wiki/lib/plugins/authldap/lang/hu/settings.php b/wiki/lib/plugins/authldap/lang/hu/settings.php
deleted file mode 100644
index 364a1e9..0000000
--- a/wiki/lib/plugins/authldap/lang/hu/settings.php
+++ /dev/null
@@ -1,33 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author Marton Sebok <sebokmarton@gmail.com>
- * @author Marina Vladi <deldadam@gmail.com>
- */
-$lang['server']                = 'LDAP-szerver. Kiszolgálónév (<code>localhost</code>) vagy teljes URL-cím (<code>ldap://server.tld:389</code>)';
-$lang['port']                  = 'LDAP-kiszolgáló portja, ha URL-cím nem lett megadva';
-$lang['usertree']              = 'Hol találom a felhasználókat? Pl. <code>ou=People, dc=server, dc=tld</code>';
-$lang['grouptree']             = 'Hol találom a csoportokat? Pl. <code>ou=Group, dc=server, dc=tld</code>';
-$lang['userfilter']            = 'LDAP szűrő a felhasználók kereséséhez, pl. <code>(&amp;(uid=%{user})(objectClass=posixAccount))</code>';
-$lang['groupfilter']           = 'LDAP szűrő a csoportok kereséséhez, pl. <code>(&amp;(objectClass=posixGroup)(|(gidNumber=%{gid})(memberUID=%{user})))</code>';
-$lang['version']               = 'A használt protokollverzió. Valószínűleg a <code>3</code> megfelelő';
-$lang['starttls']              = 'TLS használata?';
-$lang['referrals']             = 'Hivatkozások követése?';
-$lang['deref']                 = 'Hogyan fejtsük vissza az aliasokat?';
-$lang['binddn']                = 'Egy hozzáféréshez használt felhasználó DN-je, ha nincs névtelen hozzáférés. Pl. <code>cn=admin, dc=my, dc=home</code>';
-$lang['bindpw']                = 'Ehhez tartozó jelszó.';
-$lang['userscope']             = 'A keresési tartomány korlátozása erre a felhasználókra való keresésnél';
-$lang['groupscope']            = 'A keresési tartomány korlátozása erre a csoportokra való keresésnél';
-$lang['userkey']               = 'A felhasználónevet leíró attribútum; konzisztensnek kell lennie a felhasználói szűrővel (userfilter).';
-$lang['groupkey']              = 'Csoport meghatározása a következő attribútumból (az alapértelmezett AD csoporttagság helyett), pl. a szervezeti egység vagy a telefonszám';
-$lang['modPass']               = 'Az LDAP jelszó megváltoztatható a DokuWiki-n keresztül?';
-$lang['debug']                 = 'Továbi hibakeresési információk megjelenítése hiba esetén';
-$lang['deref_o_0']             = 'LDAP_DEREF_NEVER';
-$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']        = 'alapértelmezett érték használata';
-$lang['referrals_o_0']         = 'ne kövesse az átirányításokat (referral)';
-$lang['referrals_o_1']         = 'kövesse az átirányításokat (referral)';
diff --git a/wiki/lib/plugins/authldap/lang/it/lang.php b/wiki/lib/plugins/authldap/lang/it/lang.php
deleted file mode 100644
index 28c4bc8..0000000
--- a/wiki/lib/plugins/authldap/lang/it/lang.php
+++ /dev/null
@@ -1,9 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Torpedo <dgtorpedo@gmail.com>
- */
-$lang['connectfail']           = 'LDAP non è in grado di connettere: %s';
-$lang['domainfail']            = 'LDAP non è in grado di trovare il tuo DN utente';
diff --git a/wiki/lib/plugins/authldap/lang/it/settings.php b/wiki/lib/plugins/authldap/lang/it/settings.php
deleted file mode 100644
index 862aa0f..0000000
--- a/wiki/lib/plugins/authldap/lang/it/settings.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Edmondo Di Tucci <snarchio@gmail.com>
- * @author Claudio Lanconelli <lancos@libero.it>
- * @author Francesco <francesco.cavalli@hotmail.com>
- * @author Torpedo <dgtorpedo@gmail.com>
- */
-$lang['server']                = 'Il tuo server LDAP. Inserire o l\'hostname (<code>localhost</code>) oppure un URL completo (<code>ldap://server.tld:389</code>)';
-$lang['port']                  = 'Porta del server LDAP se non è stato fornito un URL completo più sopra.';
-$lang['usertree']              = 'Dove cercare l\'account utente. Eg. <code>ou=People, dc=server, dc=tld</code>';
-$lang['grouptree']             = 'Dove cercare i gruppi utente. Eg. <code>ou=Group, dc=server, dc=tld</code>';
-$lang['userfilter']            = 'Filtro per cercare l\'account utente LDAP. Eg. <code>(&amp;(uid=%{user})(objectClass=posixAccount))</code>';
-$lang['groupfilter']           = 'Filtro per cercare i gruppi LDAP. Eg. <code>(&amp;(objectClass=posixGroup)(|(gidNumber=%{gid})(memberUID=%{user})))</code>';
-$lang['version']               = 'Versione protocollo da usare. Pu<code>3</code>';
-$lang['starttls']              = 'Usare la connessione TSL?';
-$lang['referrals']             = 'Possono i reindirizzamenti essere seguiti?';
-$lang['deref']                 = 'Come differenziare un alias?';
-$lang['binddn']                = 'DN di un utente bind opzionale se un bind anonimo non è sufficiente. E.g. <code>cn=admin, dc=casa, dc=mia</code>';
-$lang['bindpw']                = 'Password del utente di cui sopra';
-$lang['userscope']             = 'Limita il contesto di ricerca per la ricerca degli utenti';
-$lang['groupscope']            = 'Limita il contesto di ricerca per la ricerca dei gruppi';
-$lang['userkey']               = 'Attributo indicante il nome utente; deve essere consistente con il filtro utente.';
-$lang['groupkey']              = 'Gruppo di appartenenza sulla base di qualunque attributo utente (invece di gruppo AD standard) e.g. gruppo in base al dipartimento o al numero di telefono';
-$lang['modPass']               = 'Può la password LDAP essere cambiata attraverso DokuWiki?';
-$lang['debug']                 = 'In caso di errori mostra ulteriori informazioni di debug';
-$lang['deref_o_0']             = 'LDAP_DEREF_NEVER';
-$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']        = 'usa default';
-$lang['referrals_o_0']         = 'non seguire i reindirizzamenti';
-$lang['referrals_o_1']         = 'segui i reindirizzamenti';
diff --git a/wiki/lib/plugins/authldap/lang/ja/lang.php b/wiki/lib/plugins/authldap/lang/ja/lang.php
deleted file mode 100644
index c602b43..0000000
--- a/wiki/lib/plugins/authldap/lang/ja/lang.php
+++ /dev/null
@@ -1,9 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Hideaki SAWADA <chuno@live.jp>
- */
-$lang['connectfail']           = 'LDAP ã«æŽ¥ç¶šã§ãã¾ã›ã‚“: %s';
-$lang['domainfail']            = 'LDAP ã§ user dn を発見ã§ãã¾ã›ã‚“。';
diff --git a/wiki/lib/plugins/authldap/lang/ja/settings.php b/wiki/lib/plugins/authldap/lang/ja/settings.php
deleted file mode 100644
index fd7ad76..0000000
--- a/wiki/lib/plugins/authldap/lang/ja/settings.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Satoshi Sahara <sahara.satoshi@gmail.com>
- * @author Hideaki SAWADA <sawadakun@live.jp>
- * @author Hideaki SAWADA <chuno@live.jp>
- * @author PzF_X <jp_minecraft@yahoo.co.jp>
- * @author Ikuo Obataya <i.obataya@gmail.com>
- */
-$lang['server']                = 'LDAPサーãƒãƒ¼ã€‚ホストå(<code>localhost</code>)åˆã¯å®Œå…¨ä¿®é£¾URL(<code>ldap://server.tld:389</code>)';
-$lang['port']                  = '上記ãŒå®Œå…¨ä¿®é£¾URLã§ãªã„å ´åˆã€LDAPサーãƒãƒ¼ãƒãƒ¼ãƒˆ';
-$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>を設定ã™ã‚‹å¿…è¦ãŒã‚ã‚‹å ´åˆãŒã‚りã¾ã™ã€‚';
-$lang['starttls']              = 'TLS接続を使用ã—ã¾ã™ã‹ï¼Ÿ';
-$lang['referrals']             = '紹介ã«å¾“ã„ã¾ã™ã‹?';
-$lang['deref']                 = 'ã©ã®ã‚ˆã†ã«é–“接å‚ç…§ã®ã‚¨ã‚¤ãƒªã‚¢ã‚¹ã«ã—ã¾ã™ã‹?';
-$lang['binddn']                = '匿åãƒã‚¤ãƒ³ãƒ‰ã§ã¯ä¸å分ãªå ´åˆã€ã‚ªãƒ—ションãƒã‚¤ãƒ³ãƒ‰ãƒ¦ãƒ¼ã‚¶ãƒ¼ã®DN。例:<code>cn=admin, dc=my, dc=home</code>';
-$lang['bindpw']                = '上記ユーザーã®ãƒ‘スワード';
-$lang['userscope']             = 'ユーザー検索ã®ç¯„囲をé™å®šã•ã›ã‚‹';
-$lang['groupscope']            = 'グループ検索ã®ç¯„囲をé™å®šã•ã›ã‚‹';
-$lang['userkey']               = 'ユーザーåを示ã™å±žæ€§ã€‚userfilter ã¨ä¸€è‡´ã—ã¦ã„ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚';
-$lang['groupkey']              = 'ユーザー属性をグループã®ãƒ¡ãƒ³ãƒãƒ¼ã‚·ãƒƒãƒ—ã‹ã‚‰è¨­å®šã—ã¾ã™(代ã‚ã‚Šã«æ¨™æº–ã®ADグループ)。
-例ãˆã°ã€éƒ¨ç½²ã‚„電話番å·ãªã©ã§ã™ã€‚';
-$lang['modPass']               = 'DokuWiki ã‹ã‚‰ LDAP パスワードã®å¤‰æ›´ãŒå¯èƒ½ï¼Ÿ';
-$lang['debug']                 = 'エラーã«é–¢ã—ã¦è¿½åŠ ã®ãƒ‡ãƒãƒƒã‚°æƒ…報を表示ã™ã‚‹ã€‚';
-$lang['deref_o_0']             = 'LDAP_DEREF_NEVER';
-$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']        = 'デフォルトを使用ã™ã‚‹';
-$lang['referrals_o_0']         = 'referral ã«å¾“ã‚ãªã„';
-$lang['referrals_o_1']         = 'referral ã«å¾“ã†';
diff --git a/wiki/lib/plugins/authldap/lang/ko/lang.php b/wiki/lib/plugins/authldap/lang/ko/lang.php
deleted file mode 100644
index 1e1bef4..0000000
--- a/wiki/lib/plugins/authldap/lang/ko/lang.php
+++ /dev/null
@@ -1,9 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Myeongjin <aranet100@gmail.com>
- */
-$lang['connectfail']           = 'LDAP가 연결할 수 없습니다: %s';
-$lang['domainfail']            = 'LDAPê°€ ì‚¬ìš©ìž DNì„ ì°¾ì„ ìˆ˜ 없습니다';
diff --git a/wiki/lib/plugins/authldap/lang/ko/settings.php b/wiki/lib/plugins/authldap/lang/ko/settings.php
deleted file mode 100644
index b988436..0000000
--- a/wiki/lib/plugins/authldap/lang/ko/settings.php
+++ /dev/null
@@ -1,32 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Myeongjin <aranet100@gmail.com>
- */
-$lang['server']                = 'LDAP 서버. 호스트 ì´ë¦„(<code>localhost</code>)ì´ë‚˜ ì „ì²´ ìžê²© URL(<code>ldap://server.tld:389</code>) 중 하나';
-$lang['port']                  = 'ìœ„ì— ì£¼ì–´ì§„ ì „ì²´ URLì´ ì—†ì„ ë•Œì˜ LDAP 서버 í¬íЏ';
-$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>으로 설정해야 í•  ìˆ˜ë„ ìžˆìŠµë‹ˆë‹¤';
-$lang['starttls']              = 'TLS ì—°ê²°ì„ ì‚¬ìš©í•˜ê² ìŠµë‹ˆê¹Œ?';
-$lang['referrals']             = '참조(referrals)를 허용하겠습니까? ';
-$lang['deref']                 = '어떻게 ë³„ëª…ì„ ê°„ì ‘ 참조하겠습니까?';
-$lang['binddn']                = 'ìµëª… ë°”ì¸ë“œê°€ 충분하지 않으면 ì„ íƒì ì¸ ë°”ì¸ë“œ 사용ìžì˜ DN. 예를 들어 <code>cn=admin, dc=my, dc=home</code>';
-$lang['bindpw']                = '위 사용ìžì˜ 비밀번호';
-$lang['userscope']             = 'ì‚¬ìš©ìž ê²€ìƒ‰ì— ëŒ€í•œ 검색 범위 제한';
-$lang['groupscope']            = '그룹 ê²€ìƒ‰ì— ëŒ€í•œ 검색 범위 제한';
-$lang['userkey']               = 'ì‚¬ìš©ìž ì´ë¦„ì„ ë‚˜íƒ€ë‚´ëŠ” 특성; ì‚¬ìš©ìž í•„í„°ì— ì¼ê´€ì„±ì´ 있어야 합니다.';
-$lang['groupkey']              = '(표준 AD 그룹 대신) ì‚¬ìš©ìž ì†ì„±ì—서 그룹 구성ì›. 예를 들어 부서나 ì „í™”ì—서 그룹';
-$lang['modPass']               = 'LDAP 비밀번호를 ë„쿠위키를 통해 바꿀 수 있습니까?';
-$lang['debug']                 = 'ì˜¤ë¥˜ì— ëŒ€í•œ 추가ì ì¸ 디버그 정보를 ë³´ì´ê¸°';
-$lang['deref_o_0']             = 'LDAP_DEREF_NEVER';
-$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']        = '기본값 사용';
-$lang['referrals_o_0']         = '참조 (referral)를 따르지 않ìŒ';
-$lang['referrals_o_1']         = '참조 (referral)를 따름';
diff --git a/wiki/lib/plugins/authldap/lang/lv/settings.php b/wiki/lib/plugins/authldap/lang/lv/settings.php
deleted file mode 100644
index 9ffb4e8..0000000
--- a/wiki/lib/plugins/authldap/lang/lv/settings.php
+++ /dev/null
@@ -1,9 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Aivars Miška <allefm@gmail.com>
- */
-$lang['starttls']              = 'Lietot TLS  savienojumus?';
-$lang['bindpw']                = 'LietotÄja parole';
diff --git a/wiki/lib/plugins/authldap/lang/nl/lang.php b/wiki/lib/plugins/authldap/lang/nl/lang.php
deleted file mode 100644
index fab4870..0000000
--- a/wiki/lib/plugins/authldap/lang/nl/lang.php
+++ /dev/null
@@ -1,9 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Hugo Smet <hugo.smet@scarlet.be>
- */
-$lang['connectfail']           = 'LDAP kan niet connecteren: %s';
-$lang['domainfail']            = 'LDAP kan je gebruikers dn niet vinden';
diff --git a/wiki/lib/plugins/authldap/lang/nl/settings.php b/wiki/lib/plugins/authldap/lang/nl/settings.php
deleted file mode 100644
index 1f80b02..0000000
--- a/wiki/lib/plugins/authldap/lang/nl/settings.php
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Gerrit Uitslag <klapinklapin@gmail.com>
- * @author Remon <no@email.local>
- * @author Johan Wijnker <johan@wijnker.eu>
- */
-$lang['server']                = 'Je LDAP server. Of de servernaam (<code>localhost</code>) of de volledige URL (<code>ldap://server.tld:389</code>)';
-$lang['port']                  = 'LDAP server poort als bij de entry hierboven geen volledige URL is opgegeven';
-$lang['usertree']              = 'Locatie van de gebruikersaccounts. Bijv. <code>ou=Personen,dc=server,dc=tld</code>';
-$lang['grouptree']             = 'Locatie van de gebruikersgroepen. Bijv. <code>ou=Group,dc=server,dc=tld</code>';
-$lang['userfilter']            = 'LDAP gebruikersfilter. Bijv. <code>(&amp;(uid=%{user})(objectClass=posixAccount))</code>';
-$lang['groupfilter']           = 'LDAP groepsfilter. Bijv. <code>(&amp;(objectClass=posixGroup)(|(gidNumber=%{gid})(memberUID=%{user})))</code>';
-$lang['version']               = 'Te gebruiken protocolversie. Mogelijk dat dit ingesteld moet worden op <code>3</code>';
-$lang['starttls']              = 'Gebruik maken van TLS verbindingen?';
-$lang['referrals']             = 'Moeten verwijzingen worden gevolgd?';
-$lang['deref']                 = 'Hoe moeten de verwijzing van aliases worden bepaald?';
-$lang['binddn']                = 'DN van een optionele bind gebruiker als anonieme bind niet genoeg is. Bijv. <code>cn=beheer, dc=mijn, dc=thuis</code>';
-$lang['bindpw']                = 'Wachtwoord van bovenstaande gebruiker';
-$lang['userscope']             = 'Beperken scope van zoekfuncties voor gebruikers';
-$lang['groupscope']            = 'Beperken scope van zoekfuncties voor groepen';
-$lang['userkey']               = 'Attribuut aanduiding van de gebruikersnaam; moet consistent zijn met userfilter.';
-$lang['groupkey']              = 'Groepslidmaatschap van enig gebruikersattribuut (in plaats van standaard AD groepen), bijv. groep van afdeling of telefoonnummer';
-$lang['modPass']               = 'Kan het LDAP wachtwoord worden gewijzigd met DokuWiki?';
-$lang['debug']                 = 'Tonen van aanvullende debuginformatie bij fouten';
-$lang['deref_o_0']             = 'LDAP_DEREF_NEVER';
-$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']        = 'gebruik standaard';
-$lang['referrals_o_0']         = 'volg verwijzing niet';
-$lang['referrals_o_1']         = 'volg verwijzing';
diff --git a/wiki/lib/plugins/authldap/lang/no/lang.php b/wiki/lib/plugins/authldap/lang/no/lang.php
deleted file mode 100644
index 72c0c6e..0000000
--- a/wiki/lib/plugins/authldap/lang/no/lang.php
+++ /dev/null
@@ -1,9 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Arne Hanssen <arnehans@getmail.no>
- */
-$lang['connectfail']           = 'LDAP klarte ikke koble til: %s';
-$lang['domainfail']            = 'LDAP greide ikke finne din bruker-dn (dist.name)';
diff --git a/wiki/lib/plugins/authldap/lang/no/settings.php b/wiki/lib/plugins/authldap/lang/no/settings.php
deleted file mode 100644
index 3e320bd..0000000
--- a/wiki/lib/plugins/authldap/lang/no/settings.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Christopher Schive <chschive@frisurf.no>
- * @author Patrick <spill.p@hotmail.com>
- * @author Arne Hanssen <arne.hanssen@getmail.no>
- * @author Arne Hanssen <arnehans@getmail.no>
- */
-$lang['server']                = 'Din LDAP-server. Enten  vertsnavnet (<code>localhost</code>) eller hele URL (<code>ldap://server.tld:389</code>)';
-$lang['port']                  = 'LDAP serverport dersom ingen full URL var gitt over.';
-$lang['usertree']              = 'Hvor en kan finne brukerkontoer. F.eks. Eg. <code>ou=People, dc=server, dc=tld</code>';
-$lang['grouptree']             = 'Hvor en kan finne brukergrupper. F.eks. <code>ou=Group, dc=server, dc=tld</code>';
-$lang['userfilter']            = 'LDAP-filter for å søke etter brukerkontoer. F.eks. <code>(&amp;(uid=%{user})(objectClass=posixAccount))</code>';
-$lang['groupfilter']           = 'LDAP-filter for å søke etter grupper. F.eks.. <code>(&amp;(objectClass=posixGroup)(|(gidNumber=%{gid})(memberUID=%{user})))</code>';
-$lang['version']               = 'Protokollversjonen som skal brukes. Mulig du må sette denne til <code>3</code>';
-$lang['starttls']              = 'Bruke TLS-forbindelser?';
-$lang['referrals']             = 'Skal pekere som henviser til noe følges?';
-$lang['deref']                 = 'Hvordan finne hva aliaser refererer til?';
-$lang['binddn']                = 'DN (Distinguished Name) til en valgfri bind-bruker, angis dersom annonym bind ikke er tilstrekkelig. f.eks.. <code>cn=admin, dc=my, dc=home</code>';
-$lang['bindpw']                = 'Passord til brukeren over';
-$lang['userscope']             = 'Begrens søk til brukere';
-$lang['groupscope']            = 'Begrens søk til grupper';
-$lang['userkey']               = 'Attributt som angir brukernavn; må være konsistent for brukerfiltrering.';
-$lang['groupkey']              = 'Gruppemedlemskap fra brukerattributt (i stedet for standard AD-grupper) f.eks gruppe fra avdeling, eller telefonnummer';
-$lang['modPass']               = 'Kan LDAP-passordet endres via DokuWiki?';
-$lang['debug']                 = 'Ved feil, vis tilleggsinformasjon for feilsøking';
-$lang['deref_o_0']             = 'LDAP_DEREF_NEVER';
-$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']        = 'bruk standard';
-$lang['referrals_o_0']         = 'ikke følg referanser';
-$lang['referrals_o_1']         = 'følg referanser';
diff --git a/wiki/lib/plugins/authldap/lang/pl/lang.php b/wiki/lib/plugins/authldap/lang/pl/lang.php
deleted file mode 100644
index a93252c..0000000
--- a/wiki/lib/plugins/authldap/lang/pl/lang.php
+++ /dev/null
@@ -1,9 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Wojciech Lichota <wojciech@lichota.pl>
- */
-$lang['connectfail']           = 'LDAP nie może się połączyć: %s';
-$lang['domainfail']            = 'LDAP nie może znaleźć DN użytkownika';
diff --git a/wiki/lib/plugins/authldap/lang/pl/settings.php b/wiki/lib/plugins/authldap/lang/pl/settings.php
deleted file mode 100644
index 7181885..0000000
--- a/wiki/lib/plugins/authldap/lang/pl/settings.php
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Wojciech Lichota <wojciech@lichota.pl>
- * @author Paweł Jan Czochański <czochanski@gmail.com>
- * @author Maciej Helt <geraldziu@gmail.com>
- */
-$lang['server']                = 'Twój serwer LDAP. Podaj nazwę hosta (<code>localhost</code>) albo pełen adres URL (<code>ldap://server.tld:389</code>).';
-$lang['port']                  = 'Port serwera LDAP jeżeli nie podano pełnego adresu URL wyżej.';
-$lang['usertree']              = 'Gdzie szukać kont użytkownika? np. <code>ou=People, dc=server, dc=tld</code>';
-$lang['grouptree']             = 'Gdzie szukać grup użytkowników? np. <code>ou=Group, dc=server, dc=tld</code>';
-$lang['userfilter']            = 'Filtr LDAP wykorzystany przy szukaniu kont użytkowników np. <code>(&amp;(uid=%{user})(objectClass=posixAccount))</code>';
-$lang['groupfilter']           = 'Filtr LDAP wykorzystany przy szukaniu grup użytkowników np. <code>(&amp;(objectClass=posixGroup)(|(gidNumber=%{gid})(memberUID=%{user})))</code>';
-$lang['version']               = 'Wykorzystywana wersja protokołu. Być może konieczne jest ustawienie tego na <code>3</code>.';
-$lang['starttls']              = 'Użyć połączeń TLS?';
-$lang['referrals']             = 'Czy należy podążać za przekierowaniami?';
-$lang['deref']                 = 'Jak rozwiązywać aliasy?';
-$lang['binddn']                = 'DN opcjonalnego użytkownika powiązanego, jeśli powiązanie anonimowe nie jest wystarczające, np. <code>cn=admin, dc=my, dc=home</code>';
-$lang['bindpw']                = 'Hasło powyższego użytkownika';
-$lang['userscope']             = 'Ogranicz zakres wyszukiwania do wyszukiwania użytkowników';
-$lang['groupscope']            = 'Ogranicz zakres wyszukiwania do wyszukiwania grup użytkowników';
-$lang['userkey']               = 'Atrybut opisujący nazwę użytkownika; musi być zgodny z filtrem użytkownika.';
-$lang['groupkey']              = 'Przynależność do grupy z dowolnego atrybutu użytkownika (zamiast standardowych grup AD), np. grupa z działu lub numer telefonu';
-$lang['modPass']               = 'Czy hasło LDAP można zmienić za pomocą dokuwiki?';
-$lang['debug']                 = 'Przy błędach wyświetl dodatkowe informacje debugujące.';
-$lang['deref_o_0']             = 'LDAP_DEREF_NEVER';
-$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']        = 'użyj domyślnej wartości';
-$lang['referrals_o_0']         = 'nie podążaj za przekierowaniami';
-$lang['referrals_o_1']         = 'podążaj za przekierowaniami';
diff --git a/wiki/lib/plugins/authldap/lang/pt-br/lang.php b/wiki/lib/plugins/authldap/lang/pt-br/lang.php
deleted file mode 100644
index 63e276a..0000000
--- a/wiki/lib/plugins/authldap/lang/pt-br/lang.php
+++ /dev/null
@@ -1,9 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Frederico Gonçalves Guimarães <frederico@teia.bio.br>
- */
-$lang['connectfail']           = 'Não foi possível conectar ao LDAP: %s';
-$lang['domainfail']            = 'Não foi possível encontrar o seu user dn no LDAP';
diff --git a/wiki/lib/plugins/authldap/lang/pt-br/settings.php b/wiki/lib/plugins/authldap/lang/pt-br/settings.php
deleted file mode 100644
index 03469e5..0000000
--- a/wiki/lib/plugins/authldap/lang/pt-br/settings.php
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Victor Westmann <victor.westmann@gmail.com>
- * @author Frederico Guimarães <frederico@teia.bio.br>
- * @author Hudson FAS <hudsonfas@gmail.com>
- */
-$lang['server']                = 'Seu servidor LDAP. Ou hostname (<code>localhost</code>) ou uma URL completa (<code>ldap://server.tld:389</code>)';
-$lang['port']                  = 'Porta LDAP do servidor se nenhuma URL completa tiver sido fornecida acima';
-$lang['usertree']              = 'Onde encontrar as contas de usuários. Eg. <code>ou=Pessoas, dc=servidor, dc=tld</code>';
-$lang['grouptree']             = 'Onde encontrar os grupos de usuários. Eg. <code>ou=Pessoas, dc=servidor, dc=tld</code>';
-$lang['userfilter']            = 'Filtro LDAP para pesquisar por contas de usuários. Ex. <code>(&amp;(uid=%{user})(objectClass=posixAccount))</code>';
-$lang['groupfilter']           = 'Filtro LDAP para pesquisar por grupos. Ex. <code>(&amp;(objectClass=posixGroup)(|(gidNumber=%{gid})(memberUID=%{user})))</code>';
-$lang['version']               = 'A versão do protocolo para usar. Você talvez deva definir isto para <code>3</code>';
-$lang['starttls']              = 'Usar conexões TLS?';
-$lang['referrals']             = 'Permitir que as referências sejam seguidas?';
-$lang['deref']                 = 'Como dereferenciar os aliases?';
-$lang['binddn']                = 'DN de um vínculo opcional de usuário se vínculo anônimo não for suficiente. Eg. <code>cn=admin, dc=my, dc=home</code>';
-$lang['bindpw']                = 'Senha do usuário acima';
-$lang['userscope']             = 'Limitar escopo da busca para busca de usuário';
-$lang['groupscope']            = 'Limitar escopo da busca para busca de grupo';
-$lang['userkey']               = 'Atributo que indica o nome do usuário; deve ser consistente com userfilter.';
-$lang['groupkey']              = 'Membro de grupo vem de qualquer atributo do usuário (ao invés de grupos padrões AD) e.g. departamento de grupo ou número de telefone';
-$lang['modPass']               = 'A senha LDAP pode ser alterada pelo dokuwiki ?';
-$lang['debug']                 = 'Mostrar informações adicionais de depuração em erros';
-$lang['deref_o_0']             = 'LDAP_DEREF_NEVER';
-$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']        = 'use o padr&atilde;o';
-$lang['referrals_o_0']         = 'não seguem refer&ecirc;ncias';
-$lang['referrals_o_1']         = 'seguem refer&ecirc;ncias';
diff --git a/wiki/lib/plugins/authldap/lang/pt/lang.php b/wiki/lib/plugins/authldap/lang/pt/lang.php
deleted file mode 100644
index 7314d12..0000000
--- a/wiki/lib/plugins/authldap/lang/pt/lang.php
+++ /dev/null
@@ -1,9 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Paulo Carmino <contato@paulocarmino.com>
- */
-$lang['connectfail']           = 'Não foi possível conectar o LDAP: %s';
-$lang['domainfail']            = 'O LDAP não encontrou seu usuário';
diff --git a/wiki/lib/plugins/authldap/lang/pt/settings.php b/wiki/lib/plugins/authldap/lang/pt/settings.php
deleted file mode 100644
index ff308c6..0000000
--- a/wiki/lib/plugins/authldap/lang/pt/settings.php
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author André Neves <drakferion@gmail.com>
- * @author Guido Salatino <guidorafael23@gmail.com>
- * @author Romulo Pereira <romuloccomp@gmail.com>
- * @author Paulo Carmino <contato@paulocarmino.com>
- */
-$lang['server']                = 'O seu servidor de LDAP. Ou hostname (<code>localhost</code>) ou URL qualificado completo (<code>ldap://servidor.tld:389</code>)';
-$lang['port']                  = 'Porta de servidor de LDAP se o URL completo não foi fornecido acima';
-$lang['usertree']              = 'Onde encontrar as contas de utilizador. Por exemplo <code>ou=Pessoas, dc=servidor, dc=tld</code>';
-$lang['grouptree']             = 'Onde encontrar os grupos de utilizadores. Por exemplo code>ou=Grupo, dc=servidor, dc=tld</code>';
-$lang['userfilter']            = 'Filtro LDAP para procurar por contas de utilizador. Por exemplo <code>(&amp;(uid=%{user})(objectClass=posixAccount))</code>';
-$lang['groupfilter']           = 'Filtro LDAP para procurar por grupos. Por exemplo <code>(&amp;(objectClass=posixGroup)(|(gidNumber=%{gid})(memberUID=%{user})))</code>';
-$lang['version']               = 'A versão do protocolo a utilizar. Pode precisar de alterar isto para <code>3</code>';
-$lang['starttls']              = 'Usar ligações TLS?';
-$lang['referrals']             = 'Referrals devem ser seguidos?';
-$lang['deref']                 = 'Como desreferenciar aliases?';
-$lang['binddn']                = 'DN de um usuário de ligação opcional, quando a ligação é anônima não é suficiente. Eg. <code> cn = admin, dc = my, dc = home </code>';
-$lang['bindpw']                = 'Senha do utilizador acima';
-$lang['userscope']             = 'Escopo de pesquisa Limite para pesquisa de usuário';
-$lang['groupscope']            = 'Escopo de pesquisa Limite para pesquisa de grupo';
-$lang['groupkey']              = 'A participação no grupo a partir de qualquer atributo de usuário (em vez de AD padrão de grupos) exemplo: grupo de departamento ou número de telefone';
-$lang['modPass']               = 'Sua senha LDAP pode ser alterada via dokuwiki?';
-$lang['debug']                 = 'Mostrar informação adicional de debug aquando de erros';
-$lang['deref_o_0']             = 'LDAP_DEREF_NUNCA';
-$lang['deref_o_1']             = 'LDAP_DEREF_PESQUISANDO';
-$lang['deref_o_2']             = 'LDAP_DEREF_BUSCANDO';
-$lang['deref_o_3']             = 'LDAP_DEREF_SEMPRE';
-$lang['referrals_o_-1']        = 'usar padrão';
-$lang['referrals_o_0']         = 'não seguir as referências';
-$lang['referrals_o_1']         = 'seguir as referências';
diff --git a/wiki/lib/plugins/authldap/lang/ru/lang.php b/wiki/lib/plugins/authldap/lang/ru/lang.php
deleted file mode 100644
index 1a90899..0000000
--- a/wiki/lib/plugins/authldap/lang/ru/lang.php
+++ /dev/null
@@ -1,9 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Takumo <9206984@mail.ru>
- */
-$lang['connectfail']           = 'Ошибка ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ LDAP Ñ %s';
-$lang['domainfail']            = 'Ðе найдено Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ LDAP (dn)';
diff --git a/wiki/lib/plugins/authldap/lang/ru/settings.php b/wiki/lib/plugins/authldap/lang/ru/settings.php
deleted file mode 100644
index 916d9a2..0000000
--- a/wiki/lib/plugins/authldap/lang/ru/settings.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Ivan I. Udovichenko (sendtome@mymailbox.pp.ua)
- * @author Aleksandr Selivanov <alexgearbox@gmail.com>
- * @author Erli Moen <evseev.jr@gmail.com>
- * @author Владимир <id37736@yandex.ru>
- * @author Vitaly Filatenko <kot@hacktest.net>
- * @author Alex P <alexander@lanos.co.uk>
- */
-$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['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>';
-$lang['starttls']              = 'ИÑпользовать TLS-подключениÑ?';
-$lang['referrals']             = 'Следовать за referrals?';
-$lang['deref']                 = 'Как раÑшифровывать пÑевдонимы?';
-$lang['binddn']                = 'DN вторичного bind-пользователÑ, еÑли anonymous bind недоÑтаточно. Ðапример: <code>cn=admin, dc=my, dc=home</code>';
-$lang['bindpw']                = 'Пароль Ð´Ð»Ñ ÑƒÐºÐ°Ð·Ð°Ð½Ð½Ð¾Ð³Ð¾ пользователÑ';
-$lang['userscope']             = 'Ограничить облаÑть поиÑка при поиÑке пользователей';
-$lang['groupscope']            = 'Ограничить облаÑть поиÑка при поиÑке групп';
-$lang['userkey']               = 'Ðтрибут означающий Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ; должен быть таким же как в userfilter';
-$lang['groupkey']              = 'ИÑпользовать любой атрибут Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð´Ð»Ñ Ð²ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ð² группу (вмеÑто Ñтандартного AD groups) Ðапример из атрибута department или telephone number';
-$lang['modPass']               = 'Может ли пароль LDAP быть изменён через «Докувики»?';
-$lang['debug']                 = 'Показывать дополнительную отладочную информацию при ошибках';
-$lang['deref_o_0']             = 'LDAP_DEREF_NEVER';
-$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']        = 'иÑользовать по умолчанию';
-$lang['referrals_o_0']         = 'не Ñледовать за referrals';
-$lang['referrals_o_1']         = 'Ñледовать за referrals';
diff --git a/wiki/lib/plugins/authldap/lang/sk/lang.php b/wiki/lib/plugins/authldap/lang/sk/lang.php
deleted file mode 100644
index 1cca469..0000000
--- a/wiki/lib/plugins/authldap/lang/sk/lang.php
+++ /dev/null
@@ -1,9 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Martin Michalek <michalek.dev@gmail.com>
- */
-$lang['connectfail']           = 'LDAP sa nemôže pripojiť: %s';
-$lang['domainfail']            = 'LDAP nemôže nájsť vaše meno (user dn)';
diff --git a/wiki/lib/plugins/authldap/lang/sk/settings.php b/wiki/lib/plugins/authldap/lang/sk/settings.php
deleted file mode 100644
index 2d45c92..0000000
--- a/wiki/lib/plugins/authldap/lang/sk/settings.php
+++ /dev/null
@@ -1,29 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Martin Michalek <michalek.dev@gmail.com>
- */
-$lang['server']                = 'LDAP server. Adresa (<code>localhost</code>) alebo úplné URL (<code>ldap://server.tld:389</code>)';
-$lang['port']                  = 'Port LDAP servera, ak nebolo vyššie zadané úplné URL';
-$lang['usertree']              = 'Umiestnenie úÄtov používateľov. Napr. <code>ou=People, dc=server, dc=tld</code>';
-$lang['grouptree']             = 'Umiestnenie skupín používateľov. Napr. <code>ou=Group, dc=server, dc=tld</code>';
-$lang['userfilter']            = 'LDAP filter pre vyhľadávanie používateľských úÄtov. Napr. <code>(&amp;(uid=%{user})(objectClass=posixAccount))</code>';
-$lang['groupfilter']           = 'LDAP filter pre vyhľadávanie skupín. Napr. <code>(&amp;(objectClass=posixGroup)(|(gidNumber=%{gid})(memberUID=%{user})))</code>';
-$lang['version']               = 'Použitá verzia protokolu. Možno bude potrebné nastaviť na hodnotu <code>3</code>';
-$lang['starttls']              = 'Použiť TLS pripojenie?';
-$lang['referrals']             = 'Majú byť nasledované odkazy na používateľov (referrals)?';
-$lang['deref']                 = 'Ako previesť aliasy?';
-$lang['binddn']                = 'DN prípadného priradenia používateľa, ak anonymné priradenie nie je dostatoÄné. Napr. <code>cn=admin, dc=my, dc=home</code>';
-$lang['bindpw']                = 'Heslo vyššie uvedeného používateľa';
-$lang['userscope']             = 'Obmedzenie oblasti pri vyhľadávaní používateľa';
-$lang['groupscope']            = 'Obmedzenie oblasti pri vyhľadávaní skupiny';
-$lang['userkey']               = 'Atribút oznaÄujúci meno používateľa, musí byt konzistentný s používateľským filtrom.';
-$lang['groupkey']              = 'PrísluÅ¡nost k skupine urÄená z daného atribútu používateľa (namiesto Å¡tandardnej AD skupiny) napr. skupiny podľa oddelenia alebo telefónneho Äísla';
-$lang['modPass']               = 'Môže byť LDAP heslo zmenené prostredníctvom dokuwiki?';
-$lang['debug']                 = 'ZobraziÅ¥ dodatoÄné ladiace informácie pri chybe';
-$lang['deref_o_0']             = 'LDAP_DEREF_NEVER';
-$lang['deref_o_1']             = 'LDAP_DEREF_SEARCHING';
-$lang['deref_o_2']             = 'LDAP_DEREF_FINDING';
-$lang['deref_o_3']             = 'LDAP_DEREF_ALWAYS';
diff --git a/wiki/lib/plugins/authldap/lang/sl/settings.php b/wiki/lib/plugins/authldap/lang/sl/settings.php
deleted file mode 100644
index 1711520..0000000
--- a/wiki/lib/plugins/authldap/lang/sl/settings.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author matej <mateju@svn.gnome.org>
- * @author Jernej Vidmar <jernej.vidmar@vidmarboehm.com>
- */
-$lang['starttls']              = 'Ali naj se uporabijo povezave TLS?';
-$lang['bindpw']                = 'Geslo uporabnika zgoraj';
diff --git a/wiki/lib/plugins/authldap/lang/sr/lang.php b/wiki/lib/plugins/authldap/lang/sr/lang.php
deleted file mode 100644
index 9b78602..0000000
--- a/wiki/lib/plugins/authldap/lang/sr/lang.php
+++ /dev/null
@@ -1,9 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Марко М. КоÑтић <marko.m.kostic@gmail.com>
- */
-$lang['connectfail']           = 'LDAP - немогуће повезивање: %s';
-$lang['domainfail']            = 'LDAP - не могу наћи ваш кориÑнички dn';
diff --git a/wiki/lib/plugins/authldap/lang/sr/settings.php b/wiki/lib/plugins/authldap/lang/sr/settings.php
deleted file mode 100644
index 3aec5c3..0000000
--- a/wiki/lib/plugins/authldap/lang/sr/settings.php
+++ /dev/null
@@ -1,17 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Марко М. КоÑтић <marko.m.kostic@gmail.com>
- */
-$lang['starttls']              = 'КориÑтити TLS везе?';
-$lang['referrals']             = 'Да ли треба пратити реферале?';
-$lang['bindpw']                = 'Лозинка кориÑника изнад';
-$lang['userscope']             = 'Ограничи опÑег претраживања за кориÑничке претраге';
-$lang['groupscope']            = 'Ограничи опÑег претраживања за групне претраге';
-$lang['modPass']               = 'Омогућити измену LDAP лозинке преко докувикија?';
-$lang['debug']                 = 'Прикажи додатне податке за поправљање грешака приликом наÑтанка грешака';
-$lang['referrals_o_-1']        = 'кориÑти подразумевано';
-$lang['referrals_o_0']         = 'не прати реферале';
-$lang['referrals_o_1']         = 'прати реферале';
diff --git a/wiki/lib/plugins/authldap/lang/sv/lang.php b/wiki/lib/plugins/authldap/lang/sv/lang.php
deleted file mode 100644
index cdc6c33..0000000
--- a/wiki/lib/plugins/authldap/lang/sv/lang.php
+++ /dev/null
@@ -1,9 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Tor Härnqvist <tor@harnqvist.se>
- */
-$lang['connectfail']           = 'LDAP kan inte ansluta: %s';
-$lang['domainfail']            = 'LDAP kan inte hitta din användar-dn';
diff --git a/wiki/lib/plugins/authldap/lang/sv/settings.php b/wiki/lib/plugins/authldap/lang/sv/settings.php
deleted file mode 100644
index 07fc574..0000000
--- a/wiki/lib/plugins/authldap/lang/sv/settings.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Tor Härnqvist <tor@harnqvist.se>
- * @author Smorkster Andersson smorkster@gmail.com
- */
-$lang['server']                = 'Din LDAO server. Antingen värdnamn (<code>localhost</code>) eller giltig full URL (<code>ldap://server.tld:389</code>)';
-$lang['port']                  = 'LDAP server port, om det inte angavs full URL ovan';
-$lang['usertree']              = 'Specificera var användarkonton finns. T.ex. <code>ou=Användare, dc=server, dc=tld</code>';
-$lang['grouptree']             = 'Specificera var grupper finns. T.ex. <code>ou=Grupp, dc=server, dc=tld</code>';
-$lang['userfilter']            = 'LDAP filter för att söka efter användarkonton. T.ex. <code>(&amp;(uid=%{user})(objectClass=posixAccount))</code>';
-$lang['groupfilter']           = 'LDAP filter för att söka efter grupper. T.ex. <code>(&amp;(objectClass=posixGroup)(|(gidNumber=%{gid})(memberUID=%{user})))</code>';
-$lang['version']               = 'Version av protokoll att använda. Du kan behöva sätta detta till <code>3</code>';
-$lang['starttls']              = 'Använd TLS-anslutningar';
-$lang['bindpw']                = 'Lösenord för användare ovan';
-$lang['userscope']             = 'Begränsa sökomfattning för användarsökning';
-$lang['groupscope']            = 'Begränsa sökomfattning för gruppsökning';
-$lang['groupkey']              = 'Gruppmedlemskap från något användarattribut (istället för standard AD grupp) t.ex. grupp från avdelning eller telefonnummer';
-$lang['modPass']               = 'Får LDAP-lösenordet ändras via DokuWiki?';
-$lang['debug']                 = 'Visa ytterligare felsökningsinformation vid fel';
-$lang['referrals_o_-1']        = 'använd standard';
diff --git a/wiki/lib/plugins/authldap/lang/tr/settings.php b/wiki/lib/plugins/authldap/lang/tr/settings.php
deleted file mode 100644
index 843b7ef..0000000
--- a/wiki/lib/plugins/authldap/lang/tr/settings.php
+++ /dev/null
@@ -1,8 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author ilker rifat kapaç <irifat@gmail.com>
- */
-$lang['bindpw']                = 'Üstteki kullanıcının şifresi';
diff --git a/wiki/lib/plugins/authldap/lang/uk/lang.php b/wiki/lib/plugins/authldap/lang/uk/lang.php
deleted file mode 100644
index 9043121..0000000
--- a/wiki/lib/plugins/authldap/lang/uk/lang.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Oleksii <alexey.furashev@gmail.com>
- * @author Nina Zolotova <nina-z@i.ua>
- */
-$lang['connectfail']           = 'LDAP не може вÑтановити з\'єднаннÑ: %s';
-$lang['domainfail']            = 'LDAP не знайшов Ваш dn';
diff --git a/wiki/lib/plugins/authldap/lang/uk/settings.php b/wiki/lib/plugins/authldap/lang/uk/settings.php
deleted file mode 100644
index 2ae728b..0000000
--- a/wiki/lib/plugins/authldap/lang/uk/settings.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Oleksii <alexey.furashev@gmail.com>
- * @author Nina Zolotova <nina-z@i.ua>
- */
-$lang['userfilter']            = 'Фільтр LDAP Ð´Ð»Ñ Ð²Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð¾Ð±Ð»Ñ–ÐºÐ¾Ð²Ð¸Ñ… запиÑів. ЩоÑÑŒ на зразок <code>(&amp;(uid=%{user})(objectClass=posixAccount))</code>';
-$lang['version']               = 'ВикориÑтовувати верÑÑ–ÑŽ протоколу. Можливо Вам доведетьÑÑ Ð²ÐºÐ°Ð·Ð°Ñ‚Ð¸ <code>3</code>.';
-$lang['starttls']              = 'ВикориÑтовуєте TLS з\'єднаннÑ?';
-$lang['referrals']             = 'Слід підтримувати перепоÑиланнÑ?';
-$lang['deref']                 = 'Як Ñкинути пÑевдоніми?';
-$lang['bindpw']                = 'Пароль вказаного кориÑтувача';
-$lang['userscope']             = 'Обмежити облаÑть пошуку кориÑтувачів';
-$lang['groupscope']            = 'Обмежити коло пошуку Ð´Ð»Ñ Ð³Ñ€ÑƒÐ¿Ð¾Ð²Ð¾Ð³Ð¾ запиту';
-$lang['userkey']               = 'Ðтрибут, Ñкий визначає ім\'Ñ ÐºÐ¾Ñ€Ð¸Ñтувача, має бути узгодженим із правилами кориÑтувацьких фільтрів.';
-$lang['modPass']               = 'Можете змінити пароль в LDAP через DokuWiki?';
-$lang['debug']                 = 'Показати додаткову інформацію про помилки';
-$lang['deref_o_0']             = 'LDAP_DEREF_NEVER';
-$lang['deref_o_1']             = 'LDAP_DEREF_SEARCHING';
-$lang['deref_o_2']             = 'LDAP_DEREF_FINDING';
-$lang['referrals_o_-1']        = 'ВикориÑтовувати за замовчуваннÑм';
diff --git a/wiki/lib/plugins/authldap/lang/zh-tw/settings.php b/wiki/lib/plugins/authldap/lang/zh-tw/settings.php
deleted file mode 100644
index cb0bb71..0000000
--- a/wiki/lib/plugins/authldap/lang/zh-tw/settings.php
+++ /dev/null
@@ -1,26 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author syaoranhinata@gmail.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['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>';
-$lang['starttls']              = '使用 TLS 連接嗎?';
-$lang['referrals']             = '是å¦å…許引用 (referrals)?';
-$lang['binddn']                = 'éžå¿…è¦ç¶å®šä½¿ç”¨è€… (optional bind user) çš„ DN (匿åç¶å®šä¸èƒ½æ»¿è¶³è¦æ±‚時使用)。如: <code>cn=admin, dc=my, dc=home</code>';
-$lang['bindpw']                = '上述使用者的密碼';
-$lang['userscope']             = 'é™åˆ¶ä½¿ç”¨è€…æœç´¢çš„範åœ';
-$lang['groupscope']            = 'é™åˆ¶ç¾¤çµ„æœç´¢çš„範åœ';
-$lang['groupkey']              = '以其他使用者屬性 (è€Œéžæ¨™æº– AD 群組) 來把使用者分組,例如以部門或電話號碼分類';
-$lang['debug']                 = '有錯誤時,顯示é¡å¤–除錯資訊';
-$lang['deref_o_0']             = 'LDAP_DEREF_NEVER';
-$lang['deref_o_1']             = 'LDAP_DEREF_SEARCHING';
-$lang['deref_o_2']             = 'LDAP_DEREF_FINDING';
-$lang['deref_o_3']             = 'LDAP_DEREF_ALWAYS';
diff --git a/wiki/lib/plugins/authldap/lang/zh/lang.php b/wiki/lib/plugins/authldap/lang/zh/lang.php
deleted file mode 100644
index c736056..0000000
--- a/wiki/lib/plugins/authldap/lang/zh/lang.php
+++ /dev/null
@@ -1,9 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Errol <errol@hotmail.com>
- */
-$lang['connectfail']           = 'LDAP 无法连接: %s';
-$lang['domainfail']            = 'LDAP 无法找到你的用户 dn';
diff --git a/wiki/lib/plugins/authldap/lang/zh/settings.php b/wiki/lib/plugins/authldap/lang/zh/settings.php
deleted file mode 100644
index f3c2103..0000000
--- a/wiki/lib/plugins/authldap/lang/zh/settings.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @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['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>';
-$lang['starttls']              = '使用 TLS 连接?';
-$lang['referrals']             = '是å¦å…许引用 (referrals)?';
-$lang['deref']                 = '如何间接引用别å?';
-$lang['binddn']                = '一个å¯é€‰çš„绑定用户的 DN (如果匿åç»‘å®šä¸æ»¡è¶³è¦æ±‚)。例如 <code>cn=admin, dc=my, dc=home</code>';
-$lang['bindpw']                = '上述用户的密ç ';
-$lang['userscope']             = 'é™åˆ¶ç”¨æˆ·æœç´¢çš„范围';
-$lang['groupscope']            = 'é™åˆ¶ç»„æœç´¢çš„范围';
-$lang['userkey']               = '表示用户åçš„å±žæ€§ï¼›å¿…é¡»å’Œç”¨æˆ·è¿‡æ»¤å™¨ä¿æŒä¸€è‡´ã€‚';
-$lang['groupkey']              = 'æ ¹æ®ä»»ä½•用户属性得æ¥çš„组æˆå‘˜(è€Œä¸æ˜¯æ ‡å‡†çš„ AD 组),例如根æ®éƒ¨é—¨æˆ–者电è¯å·ç å¾—到的组。';
-$lang['modPass']               = ' LDAP密ç å¯ä»¥é€šè¿‡ DokuWiki 修改å—?';
-$lang['debug']                 = '有错误时显示é¢å¤–的调试信æ¯';
-$lang['deref_o_0']             = 'LDAP_DEREF_NEVER';
-$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']        = '默认';
-$lang['referrals_o_0']         = 'ä¸è¦è·Ÿéšå‚ç…§(referral)';
-$lang['referrals_o_1']         = 'è·Ÿéšå‚ç…§(referral)';
diff --git a/wiki/lib/plugins/authldap/plugin.info.txt b/wiki/lib/plugins/authldap/plugin.info.txt
deleted file mode 100644
index e0c6144..0000000
--- a/wiki/lib/plugins/authldap/plugin.info.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-base   authldap
-author Andreas Gohr
-email  andi@splitbrain.org
-date   2015-07-13
-name   LDAP Auth Plugin
-desc   Provides user authentication against an LDAP server
-url    http://www.dokuwiki.org/plugin:authldap
diff --git a/wiki/lib/plugins/authmysql/auth.php b/wiki/lib/plugins/authmysql/auth.php
deleted file mode 100644
index 999542a..0000000
--- a/wiki/lib/plugins/authmysql/auth.php
+++ /dev/null
@@ -1,1110 +0,0 @@
-<?php
-// must be run within Dokuwiki
-if(!defined('DOKU_INC')) die();
-
-/**
- * MySQL authentication backend
- *
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * @author     Andreas Gohr <andi@splitbrain.org>
- * @author     Chris Smith <chris@jalakai.co.uk>
- * @author     Matthias Grimm <matthias.grimmm@sourceforge.net>
- * @author     Jan Schumann <js@schumann-it.com>
- */
-class auth_plugin_authmysql extends DokuWiki_Auth_Plugin {
-    /** @var resource holds the database connection */
-    protected $dbcon = 0;
-    /** @var int database version*/
-    protected $dbver = 0;
-    /** @var int database revision */
-    protected $dbrev = 0;
-    /** @var int database subrevision */
-    protected $dbsub = 0;
-
-    /** @var array cache to avoid re-reading user info data */
-    protected $cacheUserInfo = array();
-
-    /**
-     * Constructor
-     *
-     * checks if the mysql interface is available, otherwise it will
-     * set the variable $success of the basis class to false
-     *
-     * @author Matthias Grimm <matthiasgrimm@users.sourceforge.net>
-     */
-    public function __construct() {
-        parent::__construct();
-
-        if(!function_exists('mysql_connect')) {
-            $this->_debug("MySQL err: PHP MySQL extension not found.", -1, __LINE__, __FILE__);
-            $this->success = false;
-            return;
-        }
-
-        // set capabilities based upon config strings set
-        if(!$this->getConf('server') || !$this->getConf('user') || !$this->getConf('database')) {
-            $this->_debug("MySQL err: insufficient configuration.", -1, __LINE__, __FILE__);
-
-            $this->success = false;
-            return;
-        }
-
-        $this->cando['addUser']   = $this->_chkcnf(
-            array(
-                 'getUserInfo',
-                 'getGroups',
-                 'addUser',
-                 'getUserID',
-                 'getGroupID',
-                 'addGroup',
-                 'addUserGroup'
-            ), true
-        );
-        $this->cando['delUser']   = $this->_chkcnf(
-            array(
-                 'getUserID',
-                 'delUser',
-                 'delUserRefs'
-            ), true
-        );
-        $this->cando['modLogin']  = $this->_chkcnf(
-            array(
-                 'getUserID',
-                 'updateUser',
-                 'UpdateTarget'
-            ), true
-        );
-        $this->cando['modPass']   = $this->cando['modLogin'];
-        $this->cando['modName']   = $this->cando['modLogin'];
-        $this->cando['modMail']   = $this->cando['modLogin'];
-        $this->cando['modGroups'] = $this->_chkcnf(
-            array(
-                 'getUserID',
-                 'getGroups',
-                 'getGroupID',
-                 'addGroup',
-                 'addUserGroup',
-                 'delGroup',
-                 'getGroupID',
-                 'delUserGroup'
-            ), true
-        );
-        /* getGroups is not yet supported
-           $this->cando['getGroups']    = $this->_chkcnf(array('getGroups',
-           'getGroupID'),false); */
-        $this->cando['getUsers']     = $this->_chkcnf(
-            array(
-                 'getUsers',
-                 'getUserInfo',
-                 'getGroups'
-            ), false
-        );
-        $this->cando['getUserCount'] = $this->_chkcnf(array('getUsers'), false);
-
-        if($this->getConf('debug') >= 2) {
-            $candoDebug = '';
-            foreach($this->cando as $cd => $value) {
-                if($value) { $value = 'yes'; } else { $value = 'no'; }
-                $candoDebug .= $cd . ": " . $value . " | ";
-            }
-            $this->_debug("authmysql cando: " . $candoDebug, 0, __LINE__, __FILE__);
-        }
-    }
-
-    /**
-     * Check if the given config strings are set
-     *
-     * @author  Matthias Grimm <matthiasgrimm@users.sourceforge.net>
-     *
-     * @param   string[] $keys
-     * @param   bool  $wop is this a check for a write operation?
-     * @return  bool
-     */
-    protected function _chkcnf($keys, $wop = false) {
-        foreach($keys as $key) {
-            if(!$this->getConf($key)) return false;
-        }
-
-        /* write operation and lock array filled with tables names? */
-        if($wop && (!is_array($this->getConf('TablesToLock')) ||
-            !count($this->getConf('TablesToLock')))
-        ) {
-            return false;
-        }
-
-        return true;
-    }
-
-    /**
-     * Checks if the given user exists and the given plaintext password
-     * is correct. Furtheron it might be checked wether the user is
-     * member of the right group
-     *
-     * Depending on which SQL string is defined in the config, password
-     * checking is done here (getpass) or by the database (passcheck)
-     *
-     * @param  string $user user who would like access
-     * @param  string $pass user's clear text password to check
-     * @return bool
-     *
-     * @author  Andreas Gohr <andi@splitbrain.org>
-     * @author  Matthias Grimm <matthiasgrimm@users.sourceforge.net>
-     */
-    public function checkPass($user, $pass) {
-        global $conf;
-        $rc = false;
-
-        if($this->_openDB()) {
-            $sql    = str_replace('%{user}', $this->_escape($user), $this->getConf('checkPass'));
-            $sql    = str_replace('%{pass}', $this->_escape($pass), $sql);
-            $sql    = str_replace('%{dgroup}', $this->_escape($conf['defaultgroup']), $sql);
-            $result = $this->_queryDB($sql);
-
-            if($result !== false && count($result) == 1) {
-                if($this->getConf('forwardClearPass') == 1) {
-                    $rc = true;
-                } else {
-                    $rc = auth_verifyPassword($pass, $result[0]['pass']);
-                }
-            }
-            $this->_closeDB();
-        }
-        return $rc;
-    }
-
-    /**
-     * Return user info
-     *
-     * @author  Andreas Gohr <andi@splitbrain.org>
-     * @author  Matthias Grimm <matthiasgrimm@users.sourceforge.net>
-     *
-     * @param string $user user login to get data for
-     * @param bool $requireGroups  when true, group membership information should be included in the returned array;
-     *                             when false, it maybe included, but is not required by the caller
-     * @return array|bool
-     */
-    public function getUserData($user, $requireGroups=true) {
-        if($this->_cacheExists($user, $requireGroups)) {
-            return $this->cacheUserInfo[$user];
-        }
-
-        if($this->_openDB()) {
-            $this->_lockTables("READ");
-            $info = $this->_getUserInfo($user, $requireGroups);
-            $this->_unlockTables();
-            $this->_closeDB();
-        } else {
-            $info = false;
-        }
-        return $info;
-    }
-
-    /**
-     * Create a new User. Returns false if the user already exists,
-     * null when an error occurred and true if everything went well.
-     *
-     * The new user will be added to the default group by this
-     * function if grps are not specified (default behaviour).
-     *
-     * @author  Andreas Gohr <andi@splitbrain.org>
-     * @author  Chris Smith <chris@jalakai.co.uk>
-     * @author  Matthias Grimm <matthiasgrimm@users.sourceforge.net>
-     *
-     * @param string $user  nick of the user
-     * @param string $pwd   clear text password
-     * @param string $name  full name of the user
-     * @param string $mail  email address
-     * @param array  $grps  array of groups the user should become member of
-     * @return bool|null
-     */
-    public function createUser($user, $pwd, $name, $mail, $grps = null) {
-        global $conf;
-
-        if($this->_openDB()) {
-            if(($info = $this->_getUserInfo($user)) !== false) {
-                msg($this->getLang('userexists'), -1);
-                return false; // user already exists
-            }
-
-            // set defaultgroup if no groups were given
-            if($grps == null) {
-                $grps = array($conf['defaultgroup']);
-            }
-
-            $this->_lockTables("WRITE");
-            $pwd = $this->getConf('forwardClearPass') ? $pwd : auth_cryptPassword($pwd);
-            $rc  = $this->_addUser($user, $pwd, $name, $mail, $grps);
-            $this->_unlockTables();
-            $this->_closeDB();
-            if(!$rc) {
-                msg($this->getLang('writefail'));
-                return null;
-            }
-            return true;
-        } else {
-            msg($this->getLang('connectfail'), -1);
-        }
-        return null; // return error
-    }
-
-    /**
-     * Modify user data
-     *
-     * An existing user dataset will be modified. Changes are given in an array.
-     *
-     * The dataset update will be rejected if the user name should be changed
-     * to an already existing one.
-     *
-     * The password must be provided unencrypted. Pasword encryption is done
-     * automatically if configured.
-     *
-     * If one or more groups can't be updated, an error will be set. In
-     * this case the dataset might already be changed and we can't rollback
-     * the changes. Transactions would be really useful here.
-     *
-     * modifyUser() may be called without SQL statements defined that are
-     * needed to change group membership (for example if only the user profile
-     * should be modified). In this case we assure that we don't touch groups
-     * even when $changes['grps'] is set by mistake.
-     *
-     * @author  Chris Smith <chris@jalakai.co.uk>
-     * @author  Matthias Grimm <matthiasgrimm@users.sourceforge.net>
-     *
-     * @param   string $user    nick of the user to be changed
-     * @param   array  $changes array of field/value pairs to be changed (password will be clear text)
-     * @return  bool   true on success, false on error
-     */
-    public function modifyUser($user, $changes) {
-        $rc = false;
-
-        if(!is_array($changes) || !count($changes)) {
-            return true; // nothing to change
-        }
-
-        if($this->_openDB()) {
-            $this->_lockTables("WRITE");
-
-            $rc = $this->_updateUserInfo($user, $changes);
-
-            if(!$rc) {
-                msg($this->getLang('usernotexists'), -1);
-            } elseif(isset($changes['grps']) && $this->cando['modGroups']) {
-                $groups = $this->_getGroups($user);
-                $grpadd = array_diff($changes['grps'], $groups);
-                $grpdel = array_diff($groups, $changes['grps']);
-
-                foreach($grpadd as $group) {
-                    if(($this->_addUserToGroup($user, $group, true)) == false) {
-                        $rc = false;
-                    }
-                }
-
-                foreach($grpdel as $group) {
-                    if(($this->_delUserFromGroup($user, $group)) == false) {
-                        $rc = false;
-                    }
-                }
-
-                if(!$rc) msg($this->getLang('writefail'));
-            }
-
-            $this->_unlockTables();
-            $this->_closeDB();
-        } else {
-            msg($this->getLang('connectfail'), -1);
-        }
-        return $rc;
-    }
-
-    /**
-     * [public function]
-     *
-     * Remove one or more users from the list of registered users
-     *
-     * @param   array  $users   array of users to be deleted
-     * @return  int             the number of users deleted
-     *
-     * @author  Christopher Smith <chris@jalakai.co.uk>
-     * @author  Matthias Grimm <matthiasgrimm@users.sourceforge.net>
-     */
-    function deleteUsers($users) {
-        $count = 0;
-
-        if($this->_openDB()) {
-            if(is_array($users) && count($users)) {
-                $this->_lockTables("WRITE");
-                foreach($users as $user) {
-                    if($this->_delUser($user)) {
-                        $count++;
-                    }
-                }
-                $this->_unlockTables();
-            }
-            $this->_closeDB();
-        } else {
-            msg($this->getLang('connectfail'), -1);
-        }
-        return $count;
-    }
-
-    /**
-     * Counts users which meet certain $filter criteria.
-     *
-     * @author  Matthias Grimm <matthiasgrimm@users.sourceforge.net>
-     *
-     * @param  array $filter  filter criteria in item/pattern pairs
-     * @return int count of found users
-     */
-    public function getUserCount($filter = array()) {
-        $rc = 0;
-
-        if($this->_openDB()) {
-            $sql = $this->_createSQLFilter($this->getConf('getUsers'), $filter);
-
-            if($this->dbver >= 4) {
-                $sql = substr($sql, 6); /* remove 'SELECT' or 'select' */
-                $sql = "SELECT SQL_CALC_FOUND_ROWS".$sql." LIMIT 1";
-                $this->_queryDB($sql);
-                $result = $this->_queryDB("SELECT FOUND_ROWS()");
-                $rc     = $result[0]['FOUND_ROWS()'];
-            } else if(($result = $this->_queryDB($sql)))
-                $rc = count($result);
-
-            $this->_closeDB();
-        }
-        return $rc;
-    }
-
-    /**
-     * Bulk retrieval of user data
-     *
-     * @author  Matthias Grimm <matthiasgrimm@users.sourceforge.net>
-     *
-     * @param  int          $first  index of first user to be returned
-     * @param  int          $limit  max number of users to be returned
-     * @param  array $filter array of field/pattern pairs
-     * @return  array userinfo (refer getUserData for internal userinfo details)
-     */
-    public function retrieveUsers($first = 0, $limit = 0, $filter = array()) {
-        $out = array();
-
-        if($this->_openDB()) {
-            $this->_lockTables("READ");
-            $sql = $this->_createSQLFilter($this->getConf('getUsers'), $filter);
-            $sql .= " ".$this->getConf('SortOrder');
-            if($limit) {
-                $sql .= " LIMIT $first, $limit";
-            } elseif($first) {
-                $sql .= " LIMIT $first";
-            }
-            $result = $this->_queryDB($sql);
-
-            if(!empty($result)) {
-                foreach($result as $user) {
-                    if(($info = $this->_getUserInfo($user['user']))) {
-                        $out[$user['user']] = $info;
-                    }
-                }
-            }
-
-            $this->_unlockTables();
-            $this->_closeDB();
-        }
-        return $out;
-    }
-
-    /**
-     * Give user membership of a group
-     *
-     * @author  Matthias Grimm <matthiasgrimm@users.sourceforge.net>
-     *
-     * @param   string $user
-     * @param   string $group
-     * @return  bool   true on success, false on error
-     */
-    protected function joinGroup($user, $group) {
-        $rc = false;
-
-        if($this->_openDB()) {
-            $this->_lockTables("WRITE");
-            $rc = $this->_addUserToGroup($user, $group);
-            $this->_unlockTables();
-            $this->_closeDB();
-        }
-        return $rc;
-    }
-
-    /**
-     * Remove user from a group
-     *
-     * @author  Matthias Grimm <matthiasgrimm@users.sourceforge.net>
-     *
-     * @param   string $user  user that leaves a group
-     * @param   string $group group to leave
-     * @return  bool
-     */
-    protected function leaveGroup($user, $group) {
-        $rc = false;
-
-        if($this->_openDB()) {
-            $this->_lockTables("WRITE");
-            $rc  = $this->_delUserFromGroup($user, $group);
-            $this->_unlockTables();
-            $this->_closeDB();
-        }
-        return $rc;
-    }
-
-    /**
-     * MySQL is case-insensitive
-     */
-    public function isCaseSensitive() {
-        return false;
-    }
-
-    /**
-     * Adds a user to a group.
-     *
-     * If $force is set to true non existing groups would be created.
-     *
-     * The database connection must already be established. Otherwise
-     * this function does nothing and returns 'false'. It is strongly
-     * recommended to call this function only after all participating
-     * tables (group and usergroup) have been locked.
-     *
-     * @author Matthias Grimm <matthiasgrimm@users.sourceforge.net>
-     *
-     * @param   string $user    user to add to a group
-     * @param   string $group   name of the group
-     * @param   bool   $force   create missing groups
-     * @return  bool   true on success, false on error
-     */
-    protected function _addUserToGroup($user, $group, $force = false) {
-        $newgroup = 0;
-
-        if(($this->dbcon) && ($user)) {
-            $gid = $this->_getGroupID($group);
-            if(!$gid) {
-                if($force) { // create missing groups
-                    $sql      = str_replace('%{group}', $this->_escape($group), $this->getConf('addGroup'));
-                    $gid      = $this->_modifyDB($sql);
-                    $newgroup = 1; // group newly created
-                }
-                if(!$gid) return false; // group didn't exist and can't be created
-            }
-
-            $sql = $this->getConf('addUserGroup');
-            if(strpos($sql, '%{uid}') !== false) {
-                $uid = $this->_getUserID($user);
-                $sql = str_replace('%{uid}', $this->_escape($uid), $sql);
-            }
-            $sql = str_replace('%{user}', $this->_escape($user), $sql);
-            $sql = str_replace('%{gid}', $this->_escape($gid), $sql);
-            $sql = str_replace('%{group}', $this->_escape($group), $sql);
-            if($this->_modifyDB($sql) !== false) {
-                $this->_flushUserInfoCache($user);
-                return true;
-            }
-
-            if($newgroup) { // remove previously created group on error
-                $sql = str_replace('%{gid}', $this->_escape($gid), $this->getConf('delGroup'));
-                $sql = str_replace('%{group}', $this->_escape($group), $sql);
-                $this->_modifyDB($sql);
-            }
-        }
-        return false;
-    }
-
-    /**
-     * Remove user from a group
-     *
-     * @author  Matthias Grimm <matthiasgrimm@users.sourceforge.net>
-     *
-     * @param   string $user  user that leaves a group
-     * @param   string $group group to leave
-     * @return  bool   true on success, false on error
-     */
-    protected function _delUserFromGroup($user, $group) {
-        $rc = false;
-
-        if(($this->dbcon) && ($user)) {
-            $sql = $this->getConf('delUserGroup');
-            if(strpos($sql, '%{uid}') !== false) {
-                $uid = $this->_getUserID($user);
-                $sql = str_replace('%{uid}', $this->_escape($uid), $sql);
-            }
-            $gid = $this->_getGroupID($group);
-            if($gid) {
-                $sql = str_replace('%{user}', $this->_escape($user), $sql);
-                $sql = str_replace('%{gid}', $this->_escape($gid), $sql);
-                $sql = str_replace('%{group}', $this->_escape($group), $sql);
-                $rc  = $this->_modifyDB($sql) == 0 ? true : false;
-
-                if ($rc) {
-                    $this->_flushUserInfoCache($user);
-                }
-            }
-        }
-        return $rc;
-    }
-
-    /**
-     * Retrieves a list of groups the user is a member off.
-     *
-     * The database connection must already be established
-     * for this function to work. Otherwise it will return
-     * false.
-     *
-     * @author Matthias Grimm <matthiasgrimm@users.sourceforge.net>
-     *
-     * @param  string $user user whose groups should be listed
-     * @return bool|array false on error, all groups on success
-     */
-    protected function _getGroups($user) {
-        $groups = array();
-
-        if($this->dbcon) {
-            $sql    = str_replace('%{user}', $this->_escape($user), $this->getConf('getGroups'));
-            $result = $this->_queryDB($sql);
-
-            if($result !== false && count($result)) {
-                foreach($result as $row) {
-                    $groups[] = $row['group'];
-                }
-            }
-            return $groups;
-        }
-        return false;
-    }
-
-    /**
-     * Retrieves the user id of a given user name
-     *
-     * The database connection must already be established
-     * for this function to work. Otherwise it will return
-     * false.
-     *
-     * @author Matthias Grimm <matthiasgrimm@users.sourceforge.net>
-     *
-     * @param  string $user user whose id is desired
-     * @return mixed  user id
-     */
-    protected function _getUserID($user) {
-        if($this->dbcon) {
-            $sql    = str_replace('%{user}', $this->_escape($user), $this->getConf('getUserID'));
-            $result = $this->_queryDB($sql);
-            return $result === false ? false : $result[0]['id'];
-        }
-        return false;
-    }
-
-    /**
-     * Adds a new User to the database.
-     *
-     * The database connection must already be established
-     * for this function to work. Otherwise it will return
-     * false.
-     *
-     * @author  Andreas Gohr <andi@splitbrain.org>
-     * @author  Chris Smith <chris@jalakai.co.uk>
-     * @author  Matthias Grimm <matthiasgrimm@users.sourceforge.net>
-     *
-     * @param  string $user  login of the user
-     * @param  string $pwd   encrypted password
-     * @param  string $name  full name of the user
-     * @param  string $mail  email address
-     * @param  array  $grps  array of groups the user should become member of
-     * @return bool
-     */
-    protected function _addUser($user, $pwd, $name, $mail, $grps) {
-        if($this->dbcon && is_array($grps)) {
-            $sql = str_replace('%{user}', $this->_escape($user), $this->getConf('addUser'));
-            $sql = str_replace('%{pass}', $this->_escape($pwd), $sql);
-            $sql = str_replace('%{name}', $this->_escape($name), $sql);
-            $sql = str_replace('%{email}', $this->_escape($mail), $sql);
-            $uid = $this->_modifyDB($sql);
-            $gid = false;
-            $group = '';
-
-            if($uid) {
-                foreach($grps as $group) {
-                    $gid = $this->_addUserToGroup($user, $group, true);
-                    if($gid === false) break;
-                }
-
-                if($gid !== false){
-                    $this->_flushUserInfoCache($user);
-                    return true;
-                } else {
-                    /* remove the new user and all group relations if a group can't
-                     * be assigned. Newly created groups will remain in the database
-                     * and won't be removed. This might create orphaned groups but
-                     * is not a big issue so we ignore this problem here.
-                     */
-                    $this->_delUser($user);
-                    $this->_debug("MySQL err: Adding user '$user' to group '$group' failed.", -1, __LINE__, __FILE__);
-                }
-            }
-        }
-        return false;
-    }
-
-    /**
-     * Deletes a given user and all his group references.
-     *
-     * The database connection must already be established
-     * for this function to work. Otherwise it will return
-     * false.
-     *
-     * @author Matthias Grimm <matthiasgrimm@users.sourceforge.net>
-     *
-     * @param  string $user username of the user to be deleted
-     * @return bool
-     */
-    protected function _delUser($user) {
-        if($this->dbcon) {
-            $uid = $this->_getUserID($user);
-            if($uid) {
-                $sql = str_replace('%{uid}', $this->_escape($uid), $this->getConf('delUserRefs'));
-                $this->_modifyDB($sql);
-                $sql = str_replace('%{uid}', $this->_escape($uid), $this->getConf('delUser'));
-                $sql = str_replace('%{user}', $this->_escape($user), $sql);
-                $this->_modifyDB($sql);
-                $this->_flushUserInfoCache($user);
-                return true;
-            }
-        }
-        return false;
-    }
-
-    /**
-     * Flush cached user information
-     *
-     * @author Christopher Smith <chris@jalakai.co.uk>
-     *
-     * @param  string  $user username of the user whose data is to be removed from the cache
-     *                       if null, empty the whole cache
-     */
-    protected function _flushUserInfoCache($user=null) {
-        if (is_null($user)) {
-            $this->cacheUserInfo = array();
-        } else {
-            unset($this->cacheUserInfo[$user]);
-        }
-    }
-
-    /**
-     * Quick lookup to see if a user's information has been cached
-     *
-     * This test does not need a database connection or read lock
-     *
-     * @author Christopher Smith <chris@jalakai.co.uk>
-     *
-     * @param  string  $user  username to be looked up in the cache
-     * @param  bool    $requireGroups  true, if cached info should include group memberships
-     *
-     * @return bool    existence of required user information in the cache
-     */
-    protected function _cacheExists($user, $requireGroups=true) {
-        if (isset($this->cacheUserInfo[$user])) {
-            if (!is_array($this->cacheUserInfo[$user])) {
-                return true;          // user doesn't exist
-            }
-
-            if (!$requireGroups || isset($this->cacheUserInfo[$user]['grps'])) {
-                return true;
-            }
-        }
-
-        return false;
-    }
-
-    /**
-     * Get a user's information
-     *
-     * The database connection must already be established for this function to work.
-     *
-     * @author Christopher Smith <chris@jalakai.co.uk>
-     *
-     * @param  string  $user  username of the user whose information is being reterieved
-     * @param  bool    $requireGroups  true if group memberships should be included
-     * @param  bool    $useCache       true if ok to return cached data & to cache returned data
-     *
-     * @return mixed   false|array     false if the user doesn't exist
-     *                                 array containing user information if user does exist
-     */
-    protected function _getUserInfo($user, $requireGroups=true, $useCache=true) {
-        $info = null;
-
-        if ($useCache && isset($this->cacheUserInfo[$user])) {
-            $info = $this->cacheUserInfo[$user];
-        }
-
-        if (is_null($info)) {
-            $info = $this->_retrieveUserInfo($user);
-        }
-
-        if (($requireGroups == true) && $info && !isset($info['grps'])) {
-            $info['grps'] = $this->_getGroups($user);
-        }
-
-        if ($useCache) {
-            $this->cacheUserInfo[$user] = $info;
-        }
-
-        return $info;
-    }
-
-    /**
-     * retrieveUserInfo
-     *
-     * Gets the data for a specific user. The database connection
-     * must already be established for this function to work.
-     * Otherwise it will return 'false'.
-     *
-     * @author Matthias Grimm <matthiasgrimm@users.sourceforge.net>
-     *
-     * @param  string $user  user's nick to get data for
-     * @return false|array false on error, user info on success
-     */
-    protected function _retrieveUserInfo($user) {
-        $sql    = str_replace('%{user}', $this->_escape($user), $this->getConf('getUserInfo'));
-        $result = $this->_queryDB($sql);
-        if($result !== false && count($result)) {
-            $info         = $result[0];
-            return $info;
-        }
-        return false;
-    }
-
-    /**
-     * Updates the user info in the database
-     *
-     * Update a user data structure in the database according changes
-     * given in an array. The user name can only be changes if it didn't
-     * exists already. If the new user name exists the update procedure
-     * will be aborted. The database keeps unchanged.
-     *
-     * The database connection has already to be established for this
-     * function to work. Otherwise it will return 'false'.
-     *
-     * The password will be encrypted if necessary.
-     *
-     * @param  string $user    user's nick being updated
-     * @param  array $changes  array of items to change as pairs of item and value
-     * @return bool true on success or false on error
-     *
-     * @author Matthias Grimm <matthiasgrimm@users.sourceforge.net>
-     */
-    protected function _updateUserInfo($user, $changes) {
-        $sql = $this->getConf('updateUser')." ";
-        $cnt = 0;
-        $err = 0;
-
-        if($this->dbcon) {
-            $uid = $this->_getUserID($user);
-            if ($uid === false) {
-                return false;
-            }
-
-            foreach($changes as $item => $value) {
-                if($item == 'user') {
-                    if(($this->_getUserID($changes['user']))) {
-                        $err = 1; /* new username already exists */
-                        break; /* abort update */
-                    }
-                    if($cnt++ > 0) $sql .= ", ";
-                    $sql .= str_replace('%{user}', $value, $this->getConf('UpdateLogin'));
-                } else if($item == 'name') {
-                    if($cnt++ > 0) $sql .= ", ";
-                    $sql .= str_replace('%{name}', $value, $this->getConf('UpdateName'));
-                } else if($item == 'pass') {
-                    if(!$this->getConf('forwardClearPass'))
-                        $value = auth_cryptPassword($value);
-                    if($cnt++ > 0) $sql .= ", ";
-                    $sql .= str_replace('%{pass}', $value, $this->getConf('UpdatePass'));
-                } else if($item == 'mail') {
-                    if($cnt++ > 0) $sql .= ", ";
-                    $sql .= str_replace('%{email}', $value, $this->getConf('UpdateEmail'));
-                }
-            }
-
-            if($err == 0) {
-                if($cnt > 0) {
-                    $sql .= " ".str_replace('%{uid}', $uid, $this->getConf('UpdateTarget'));
-                    if(get_class($this) == 'auth_mysql') $sql .= " LIMIT 1"; //some PgSQL inheritance comp.
-                    $this->_modifyDB($sql);
-                    $this->_flushUserInfoCache($user);
-                }
-                return true;
-            }
-        }
-        return false;
-    }
-
-    /**
-     * Retrieves the group id of a given group name
-     *
-     * The database connection must already be established
-     * for this function to work. Otherwise it will return
-     * false.
-     *
-     * @author Matthias Grimm <matthiasgrimm@users.sourceforge.net>
-     *
-     * @param  string $group   group name which id is desired
-     * @return false|string group id
-     */
-    protected function _getGroupID($group) {
-        if($this->dbcon) {
-            $sql    = str_replace('%{group}', $this->_escape($group), $this->getConf('getGroupID'));
-            $result = $this->_queryDB($sql);
-            return $result === false ? false : $result[0]['id'];
-        }
-        return false;
-    }
-
-    /**
-     * Opens a connection to a database and saves the handle for further
-     * usage in the object. The successful call to this functions is
-     * essential for most functions in this object.
-     *
-     * @author Matthias Grimm <matthiasgrimm@users.sourceforge.net>
-     *
-     * @return bool
-     */
-    protected function _openDB() {
-        if(!$this->dbcon) {
-            $con = @mysql_connect($this->getConf('server'), $this->getConf('user'), conf_decodeString($this->getConf('password')));
-            if($con) {
-                if((mysql_select_db($this->getConf('database'), $con))) {
-                    if((preg_match('/^(\d+)\.(\d+)\.(\d+).*/', mysql_get_server_info($con), $result)) == 1) {
-                        $this->dbver = $result[1];
-                        $this->dbrev = $result[2];
-                        $this->dbsub = $result[3];
-                    }
-                    $this->dbcon = $con;
-                    if($this->getConf('charset')) {
-                        mysql_query('SET CHARACTER SET "'.$this->getConf('charset').'"', $con);
-                    }
-                    return true; // connection and database successfully opened
-                } else {
-                    mysql_close($con);
-                    $this->_debug("MySQL err: No access to database {$this->getConf('database')}.", -1, __LINE__, __FILE__);
-                }
-            } else {
-                $this->_debug(
-                    "MySQL err: Connection to {$this->getConf('user')}@{$this->getConf('server')} not possible.",
-                    -1, __LINE__, __FILE__
-                );
-            }
-
-            return false; // connection failed
-        }
-        return true; // connection already open
-    }
-
-    /**
-     * Closes a database connection.
-     *
-     * @author Matthias Grimm <matthiasgrimm@users.sourceforge.net>
-     */
-    protected function _closeDB() {
-        if($this->dbcon) {
-            mysql_close($this->dbcon);
-            $this->dbcon = 0;
-        }
-    }
-
-    /**
-     * Sends a SQL query to the database and transforms the result into
-     * an associative array.
-     *
-     * This function is only able to handle queries that returns a
-     * table such as SELECT.
-     *
-     * @author Matthias Grimm <matthiasgrimm@users.sourceforge.net>
-     *
-     * @param string $query  SQL string that contains the query
-     * @return array|false with the result table
-     */
-    protected function _queryDB($query) {
-        if($this->getConf('debug') >= 2) {
-            msg('MySQL query: '.hsc($query), 0, __LINE__, __FILE__);
-        }
-
-        $resultarray = array();
-        if($this->dbcon) {
-            $result = @mysql_query($query, $this->dbcon);
-            if($result) {
-                while(($t = mysql_fetch_assoc($result)) !== false)
-                    $resultarray[] = $t;
-                mysql_free_result($result);
-                return $resultarray;
-            }
-            $this->_debug('MySQL err: '.mysql_error($this->dbcon), -1, __LINE__, __FILE__);
-        }
-        return false;
-    }
-
-    /**
-     * Sends a SQL query to the database
-     *
-     * This function is only able to handle queries that returns
-     * either nothing or an id value such as INPUT, DELETE, UPDATE, etc.
-     *
-     * @author Matthias Grimm <matthiasgrimm@users.sourceforge.net>
-     *
-     * @param string $query  SQL string that contains the query
-     * @return int|bool insert id or 0, false on error
-     */
-    protected function _modifyDB($query) {
-        if($this->getConf('debug') >= 2) {
-            msg('MySQL query: '.hsc($query), 0, __LINE__, __FILE__);
-        }
-
-        if($this->dbcon) {
-            $result = @mysql_query($query, $this->dbcon);
-            if($result) {
-                $rc = mysql_insert_id($this->dbcon); //give back ID on insert
-                if($rc !== false) return $rc;
-            }
-            $this->_debug('MySQL err: '.mysql_error($this->dbcon), -1, __LINE__, __FILE__);
-        }
-        return false;
-    }
-
-    /**
-     * Locked a list of tables for exclusive access so that modifications
-     * to the database can't be disturbed by other threads. The list
-     * could be set with $conf['plugin']['authmysql']['TablesToLock'] = array()
-     *
-     * If aliases for tables are used in SQL statements, also this aliases
-     * must be locked. For eg. you use a table 'user' and the alias 'u' in
-     * some sql queries, the array must looks like this (order is important):
-     *   array("user", "user AS u");
-     *
-     * MySQL V3 is not able to handle transactions with COMMIT/ROLLBACK
-     * so that this functionality is simulated by this function. Nevertheless
-     * it is not as powerful as transactions, it is a good compromise in safty.
-     *
-     * @author Matthias Grimm <matthiasgrimm@users.sourceforge.net>
-     *
-     * @param string $mode  could be 'READ' or 'WRITE'
-     * @return bool
-     */
-    protected function _lockTables($mode) {
-        if($this->dbcon) {
-            $ttl = $this->getConf('TablesToLock');
-            if(is_array($ttl) && !empty($ttl)) {
-                if($mode == "READ" || $mode == "WRITE") {
-                    $sql = "LOCK TABLES ";
-                    $cnt = 0;
-                    foreach($ttl as $table) {
-                        if($cnt++ != 0) $sql .= ", ";
-                        $sql .= "$table $mode";
-                    }
-                    $this->_modifyDB($sql);
-                    return true;
-                }
-            }
-        }
-        return false;
-    }
-
-    /**
-     * Unlock locked tables. All existing locks of this thread will be
-     * abrogated.
-     *
-     * @author Matthias Grimm <matthiasgrimm@users.sourceforge.net>
-     *
-     * @return bool
-     */
-    protected function _unlockTables() {
-        if($this->dbcon) {
-            $this->_modifyDB("UNLOCK TABLES");
-            return true;
-        }
-        return false;
-    }
-
-    /**
-     * Transforms the filter settings in an filter string for a SQL database
-     * The database connection must already be established, otherwise the
-     * original SQL string without filter criteria will be returned.
-     *
-     * @author Matthias Grimm <matthiasgrimm@users.sourceforge.net>
-     *
-     * @param  string $sql     SQL string to which the $filter criteria should be added
-     * @param  array $filter  array of filter criteria as pairs of item and pattern
-     * @return string SQL string with attached $filter criteria on success, original SQL string on error
-     */
-    protected function _createSQLFilter($sql, $filter) {
-        $SQLfilter = "";
-        $cnt       = 0;
-
-        if($this->dbcon) {
-            foreach($filter as $item => $pattern) {
-                $tmp = '%'.$this->_escape($pattern).'%';
-                if($item == 'user') {
-                    if($cnt++ > 0) $SQLfilter .= " AND ";
-                    $SQLfilter .= str_replace('%{user}', $tmp, $this->getConf('FilterLogin'));
-                } else if($item == 'name') {
-                    if($cnt++ > 0) $SQLfilter .= " AND ";
-                    $SQLfilter .= str_replace('%{name}', $tmp, $this->getConf('FilterName'));
-                } else if($item == 'mail') {
-                    if($cnt++ > 0) $SQLfilter .= " AND ";
-                    $SQLfilter .= str_replace('%{email}', $tmp, $this->getConf('FilterEmail'));
-                } else if($item == 'grps') {
-                    if($cnt++ > 0) $SQLfilter .= " AND ";
-                    $SQLfilter .= str_replace('%{group}', $tmp, $this->getConf('FilterGroup'));
-                }
-            }
-
-            // we have to check SQLfilter here and must not use $cnt because if
-            // any of cnf['Filter????'] is not defined, a malformed SQL string
-            // would be generated.
-
-            if(strlen($SQLfilter)) {
-                $glue = strpos(strtolower($sql), "where") ? " AND " : " WHERE ";
-                $sql  = $sql.$glue.$SQLfilter;
-            }
-        }
-
-        return $sql;
-    }
-
-    /**
-     * Escape a string for insertion into the database
-     *
-     * @author Andreas Gohr <andi@splitbrain.org>
-     *
-     * @param  string  $string The string to escape
-     * @param  boolean $like   Escape wildcard chars as well?
-     * @return string
-     */
-    protected function _escape($string, $like = false) {
-        if($this->dbcon) {
-            $string = mysql_real_escape_string($string, $this->dbcon);
-        } else {
-            $string = addslashes($string);
-        }
-        if($like) {
-            $string = addcslashes($string, '%_');
-        }
-        return $string;
-    }
-
-    /**
-     * Wrapper around msg() but outputs only when debug is enabled
-     *
-     * @param string $message
-     * @param int    $err
-     * @param int    $line
-     * @param string $file
-     * @return void
-     */
-    protected function _debug($message, $err, $line, $file) {
-        if(!$this->getConf('debug')) return;
-        msg($message, $err, $line, $file);
-    }
-}
diff --git a/wiki/lib/plugins/authmysql/conf/default.php b/wiki/lib/plugins/authmysql/conf/default.php
deleted file mode 100644
index 427bea2..0000000
--- a/wiki/lib/plugins/authmysql/conf/default.php
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-
-$conf['charset']          = 'utf8';
-$conf['server']           = '';
-$conf['user']             = '';
-$conf['password']         = '';
-$conf['database']         = '';
-$conf['debug']            = 0;
-$conf['forwardClearPass'] = 0;
-$conf['TablesToLock']     = array();
-$conf['checkPass']        = '';
-$conf['getUserInfo']      = '';
-$conf['getGroups']        = '';
-$conf['getUsers']         = '';
-$conf['FilterLogin']      = '';
-$conf['FilterName']       = '';
-$conf['FilterEmail']      = '';
-$conf['FilterGroup']      = '';
-$conf['SortOrder']        = '';
-$conf['addUser']          = '';
-$conf['addGroup']         = '';
-$conf['addUserGroup']     = '';
-$conf['delGroup']         = '';
-$conf['getUserID']        = '';
-$conf['delUser']          = '';
-$conf['delUserRefs']      = '';
-$conf['updateUser']       = '';
-$conf['UpdateLogin']      = '';
-$conf['UpdatePass']       = '';
-$conf['UpdateEmail']      = '';
-$conf['UpdateName']       = '';
-$conf['UpdateTarget']     = '';
-$conf['delUserGroup']     = '';
-$conf['getGroupID']       = '';
\ No newline at end of file
diff --git a/wiki/lib/plugins/authmysql/conf/metadata.php b/wiki/lib/plugins/authmysql/conf/metadata.php
deleted file mode 100644
index bad34e6..0000000
--- a/wiki/lib/plugins/authmysql/conf/metadata.php
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-
-$meta['server']           = array('string','_caution' => 'danger');
-$meta['user']             = array('string','_caution' => 'danger');
-$meta['password']         = array('password','_caution' => 'danger','_code' => 'base64');
-$meta['database']         = array('string','_caution' => 'danger');
-$meta['charset']          = array('string','_caution' => 'danger');
-$meta['debug']            = array('multichoice','_choices' => array(0,1,2),'_caution' => 'security');
-$meta['forwardClearPass'] = array('onoff','_caution' => 'danger');
-$meta['TablesToLock']     = array('array','_caution' => 'danger');
-$meta['checkPass']        = array('','_caution' => 'danger');
-$meta['getUserInfo']      = array('','_caution' => 'danger');
-$meta['getGroups']        = array('','_caution' => 'danger');
-$meta['getUsers']         = array('','_caution' => 'danger');
-$meta['FilterLogin']      = array('string','_caution' => 'danger');
-$meta['FilterName']       = array('string','_caution' => 'danger');
-$meta['FilterEmail']      = array('string','_caution' => 'danger');
-$meta['FilterGroup']      = array('string','_caution' => 'danger');
-$meta['SortOrder']        = array('string','_caution' => 'danger');
-$meta['addUser']          = array('','_caution' => 'danger');
-$meta['addGroup']         = array('','_caution' => 'danger');
-$meta['addUserGroup']     = array('','_caution' => 'danger');
-$meta['delGroup']         = array('','_caution' => 'danger');
-$meta['getUserID']        = array('','_caution' => 'danger');
-$meta['delUser']          = array('','_caution' => 'danger');
-$meta['delUserRefs']      = array('','_caution' => 'danger');
-$meta['updateUser']       = array('string','_caution' => 'danger');
-$meta['UpdateLogin']      = array('string','_caution' => 'danger');
-$meta['UpdatePass']       = array('string','_caution' => 'danger');
-$meta['UpdateEmail']      = array('string','_caution' => 'danger');
-$meta['UpdateName']       = array('string','_caution' => 'danger');
-$meta['UpdateTarget']     = array('string','_caution' => 'danger');
-$meta['delUserGroup']     = array('','_caution' => 'danger');
-$meta['getGroupID']       = array('','_caution' => 'danger');
diff --git a/wiki/lib/plugins/authmysql/lang/bg/lang.php b/wiki/lib/plugins/authmysql/lang/bg/lang.php
deleted file mode 100644
index d5837c7..0000000
--- a/wiki/lib/plugins/authmysql/lang/bg/lang.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author Kiril <neohidra@gmail.com>
- */
-$lang['connectfail']           = 'Свързването Ñ Ð±Ð°Ð·Ð°Ñ‚Ð° данни Ñе провали.';
-$lang['userexists']            = 'За Ñъжаление вече ÑъщеÑтвува потребител Ñ Ñ‚Ð¾Ð²Ð° име.';
-$lang['usernotexists']         = 'За Ñъжаление не ÑъщеÑтвува такъв потребител.';
diff --git a/wiki/lib/plugins/authmysql/lang/bg/settings.php b/wiki/lib/plugins/authmysql/lang/bg/settings.php
deleted file mode 100644
index cd63702..0000000
--- a/wiki/lib/plugins/authmysql/lang/bg/settings.php
+++ /dev/null
@@ -1,19 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author Kiril <neohidra@gmail.com>
- * @author Ivan Peltekov <ivan.peltekov@abv.bg>
- */
-$lang['server']                = 'ВашиÑÑ‚ MySQL Ñървър';
-$lang['user']                  = 'MySQL потребителÑко име';
-$lang['password']              = 'Парола за Ð³Ð¾Ñ€Ð½Ð¸Ñ Ð¿Ð¾Ñ‚Ñ€ÐµÐ±Ð¸Ñ‚ÐµÐ»';
-$lang['database']              = 'Име на базата от данни';
-$lang['charset']               = 'Ðабор от знаци, който Ñе ползва в базата от данни';
-$lang['debug']                 = 'Показване на допълнителна debug информациÑ';
-$lang['checkPass']             = 'SQL заÑвка за проверка на паролите';
-$lang['getUserInfo']           = 'SQL заÑвка за извличане на Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° Ð¿Ð¾Ñ‚Ñ€ÐµÐ±Ð¸Ñ‚ÐµÐ»Ñ Ð½';
-$lang['debug_o_0']             = 'не';
-$lang['debug_o_1']             = 'Ñамо при грешка';
-$lang['debug_o_2']             = 'за вÑÑко SQL запитване';
diff --git a/wiki/lib/plugins/authmysql/lang/cs/lang.php b/wiki/lib/plugins/authmysql/lang/cs/lang.php
deleted file mode 100644
index 4dd63b4..0000000
--- a/wiki/lib/plugins/authmysql/lang/cs/lang.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Jaroslav Lichtblau <jlichtblau@seznam.cz>
- */
-$lang['connectfail']           = 'Selhalo připojení k databázi.';
-$lang['userexists']            = 'Omlouváme se, ale uživatel s tímto jménem již existuje.';
-$lang['usernotexists']         = 'Omlouváme se, uživatel tohoto jména neexistuje.';
-$lang['writefail']             = 'Nelze změnit údaje uživatele. Informujte prosím správce wiki';
diff --git a/wiki/lib/plugins/authmysql/lang/cs/settings.php b/wiki/lib/plugins/authmysql/lang/cs/settings.php
deleted file mode 100644
index bc8e136..0000000
--- a/wiki/lib/plugins/authmysql/lang/cs/settings.php
+++ /dev/null
@@ -1,43 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author mkucera66 <mkucera66@seznam.cz>
- * @author Jaroslav Lichtblau <jlichtblau@seznam.cz>
- */
-$lang['server']                = 'Váš server MySQL';
-$lang['user']                  = 'Uživatelské jméno pro MySQL';
-$lang['password']              = 'Heslo tohoto uživatele';
-$lang['database']              = 'Použtá databáze';
-$lang['charset']               = 'znaková sada použitá v databázi';
-$lang['debug']                 = 'Zobrazit dodateÄné debugovací informace';
-$lang['forwardClearPass']      = 'Posílat uživatelské heslo jako Äistý text do příkazů SQL namísto využití volby passcrypt.';
-$lang['TablesToLock']          = 'Čárkou oddÄ›lený seznam tabulek, které mohou být zamÄené bÄ›hem operací zápisu';
-$lang['checkPass']             = 'Příkaz SQL pro kontrolu hesel';
-$lang['getUserInfo']           = 'Příkaz SQL pro získání informací o uživateli';
-$lang['getGroups']             = 'Příkaz SQL pro získání uživatelovy skupiny';
-$lang['getUsers']              = 'Příkaz SQL pro seznam všech uživatelů';
-$lang['FilterLogin']           = 'Příkaz SQL pro filtrování uživatelů podle přihlašovacího jména';
-$lang['FilterName']            = 'Příkaz SQL pro filtrování uživatelů podle celého jména';
-$lang['FilterEmail']           = 'Příkaz SQL pro filtrování uživatelů podle adres e-mailů';
-$lang['FilterGroup']           = 'Příkaz SQL pro filtrování uživatelů podle Älenství ve skupinách';
-$lang['SortOrder']             = 'Příkaz SQL pro řazení uživatelů';
-$lang['addUser']               = 'Příkaz SQL pro přidání nového uživatele';
-$lang['addGroup']              = 'Příkaz SQL pro přidání nové skupiny';
-$lang['addUserGroup']          = 'Příkaz SQL pro přidání uživatele do existující skupiny';
-$lang['delGroup']              = 'Příkaz SQL pro vymazání skupiny';
-$lang['getUserID']             = 'Příkaz SQL pro získání primárního klíÄe uživatele';
-$lang['delUser']               = 'Příkaz SQL pro vymazání uživatele';
-$lang['delUserRefs']           = 'Příkaz SQL pro odstranÄ›ní Älenství uživatele se vÅ¡ech skupin';
-$lang['updateUser']            = 'Příkaz SQL pro aktualizaci uživatelského profilu';
-$lang['UpdateLogin']           = 'Klauzule pro aktualizaci pÅ™ihlaÄovacího jména uživatele';
-$lang['UpdatePass']            = 'Klauzule pro aktualizaci hesla uživatele';
-$lang['UpdateEmail']           = 'Klauzule pro aktualizaci e-mailové adresy uživatele';
-$lang['UpdateName']            = 'Klauzule pro aktualizaci celého jména uživatele';
-$lang['UpdateTarget']          = 'Omezující klauzule pro identifikaci uživatele při aktualizaci';
-$lang['delUserGroup']          = 'Příkaz SQL pro zruÅ¡ení Älenství uživatele v dané skupinÄ›';
-$lang['getGroupID']            = 'Příkaz SQL pro získání primárního klíÄe skupiny';
-$lang['debug_o_0']             = 'nic';
-$lang['debug_o_1']             = 'pouze při chybách';
-$lang['debug_o_2']             = 'všechny dotazy SQL';
diff --git a/wiki/lib/plugins/authmysql/lang/cy/lang.php b/wiki/lib/plugins/authmysql/lang/cy/lang.php
deleted file mode 100644
index a96715c..0000000
--- a/wiki/lib/plugins/authmysql/lang/cy/lang.php
+++ /dev/null
@@ -1,13 +0,0 @@
-<?php
-/**
- * Welsh language file for authmysql plugin
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- */
-
-$lang['connectfail']    = 'Method y cysylltiad i\'r databas.';
-$lang['userexists']     = 'Sori, mae defnyddiwr gyda\'r enw mewngofnodi hwn eisoes yn bodoli.';
-$lang['usernotexists']  = 'Sori, \'dyw\'r defnyddiwr hwnnw ddim yn bodoli.';
-$lang['writefail']      = 'Methu â newid data defnyddiwr. Rhowch wybod i Weinyddwr y Wici';
-
-//Setup VIM: ex: et ts=4 :
diff --git a/wiki/lib/plugins/authmysql/lang/cy/settings.php b/wiki/lib/plugins/authmysql/lang/cy/settings.php
deleted file mode 100644
index 526cffa..0000000
--- a/wiki/lib/plugins/authmysql/lang/cy/settings.php
+++ /dev/null
@@ -1,39 +0,0 @@
-<?php
-
-$lang['server']           = 'Eich gweinydd MySQL';
-$lang['user']             = 'Defnyddair MySQL';
-$lang['password']         = 'Cyfrinair y defnyddiwr uchod';
-$lang['database']         = 'Databas i\'w ddefnyddio';
-$lang['charset']          = 'Set nodau i\'w defnyddio gyda\'r databas';
-$lang['debug']            = 'Dangos gwybodaeth dadfygio ychwanegol';
-$lang['forwardClearPass'] = 'Pasio cyfrineiriau defnyddwyr fel \'cleartext\' i\'r datganiadau SQL isod, yn hytrach na defnyddio\'r opsiwn \'passcrypt\'';
-$lang['TablesToLock']     = 'Rhestr a wahanwyd gan goma o dablau sydd angen eu cloi yn ystod gweithredoedd ysgrifennu';
-$lang['checkPass']        = 'Datganiad SQL i wirio cyfrineiriau';
-$lang['getUserInfo']      = 'Datganiad SQL i nôl gwybodaeth defnyddiwr';
-$lang['getGroups']        = 'Datganiad SQL i nôl aelodaeth grŵp y defnyddiwr';
-$lang['getUsers']         = 'Datganiad SQL i restru pob defnyddiwr';
-$lang['FilterLogin']      = 'Cymal SQL i hidlo defnyddwyr gan enw mewngofnodi';
-$lang['FilterName']       = 'Cymal SQL i hidlo defnyddwyr gan enw llawn';
-$lang['FilterEmail']      = 'Cymal SQL i hidlo defnyddwyr gan gyfeiriad ebost';
-$lang['FilterGroup']      = 'Cymal SQL i hidlo defnyddwyr gan aelodaeth grŵp';
-$lang['SortOrder']        = 'Cymal SQL i drefnu defnyddwyr';
-$lang['addUser']          = 'Datganiad SQL i ychwanegu defnyddiwr newydd';
-$lang['addGroup']         = 'Datganiad SQL i ychwanegu grŵp newydd';
-$lang['addUserGroup']     = 'Datganiad SQL i ychwanegu defnyddiwr newydd i grŵp sy\'n bodoli eisoes';
-$lang['delGroup']         = 'Datganiad SQL i dynnu grŵp';
-$lang['getUserID']        = 'Datganiad SQL i nôl prif allwedd y defnyddiwr';
-$lang['delUser']          = 'Datganiad SQL i ddileu defnyddiwr';
-$lang['delUserRefs']      = 'Datganiad SQL i dynnu defnyddiwr o bob grŵp';
-$lang['updateUser']       = 'Datganiad SQL i ddiweddaru proffil defnyddiwr';
-$lang['UpdateLogin']      = 'Cymal Diweddaru i ddiweddaru enw mewngofnodi defnyddiwr';
-$lang['UpdatePass']       = 'Cymal Diweddaru i ddiweddaru cyfrinair defnyddiwr';
-$lang['UpdateEmail']      = 'Cymal Diweddaru i ddiweddaru cyfeiriad ebost defnyddiwr';
-$lang['UpdateName']       = 'Cymal Diweddaru i ddiweddaru enw llawn defnyddiwr';
-$lang['UpdateTarget']     = 'Cymal Cyfyngu i adnabod y defnyddiwr wrth ddiweddaru';
-$lang['delUserGroup']     = 'Datganiad SQL i dynnu defnyddiwr oddi ar grŵp';
-$lang['getGroupID']       = 'Datganiad SQL i nôl prif allwedd grŵp penodol';
-
-
-$lang['debug_o_0'] = 'dim';
-$lang['debug_o_1'] = 'gyda gwallau yn unig';
-$lang['debug_o_2'] = 'pob ymholiad SQL';
diff --git a/wiki/lib/plugins/authmysql/lang/da/lang.php b/wiki/lib/plugins/authmysql/lang/da/lang.php
deleted file mode 100644
index 9806e16..0000000
--- a/wiki/lib/plugins/authmysql/lang/da/lang.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Jon Theil Nielsen <jontheil@gmail.com>
- * @author Jacob Palm <mail@jacobpalm.dk>
- */
-$lang['connectfail']           = 'Kunne ikke forbinde til databasen.';
-$lang['userexists']            = 'Beklager, en bruger med dette login findes allerede.';
-$lang['usernotexists']         = 'Beklager, brugeren eksisterer ikke.';
-$lang['writefail']             = 'Kan ikke ændre brugerdata. Informér venligst wiki-administratoren';
diff --git a/wiki/lib/plugins/authmysql/lang/da/settings.php b/wiki/lib/plugins/authmysql/lang/da/settings.php
deleted file mode 100644
index 158765c..0000000
--- a/wiki/lib/plugins/authmysql/lang/da/settings.php
+++ /dev/null
@@ -1,31 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Jens Hyllegaard <jens.hyllegaard@gmail.com>
- * @author soer9648 <soer9648@eucl.dk>
- * @author Jacob Palm <mail@jacobpalm.dk>
- */
-$lang['server']                = 'Din MySQL server';
-$lang['user']                  = 'MySQL brugernavn';
-$lang['password']              = 'Kodeord til ovenstående bruger';
-$lang['database']              = 'Database der skal benyttes';
-$lang['charset']               = 'Tegnsæt benyttet i database';
-$lang['debug']                 = 'Vis yderligere debug output';
-$lang['forwardClearPass']      = 'Videregiv bruger adgangskoder i klar tekst til nedenstående SQL statement, i stedet for at benytte passcrypt';
-$lang['TablesToLock']          = 'Kommasepareret liste over tabeller der skal låses under skrivning';
-$lang['checkPass']             = 'SQL-sætning til at kontrollere kodeord';
-$lang['getUserInfo']           = 'SQL-sætning til at hente brugerinformation';
-$lang['getGroups']             = 'SQL statement til at bestemme en brugers medlemskab af grupper';
-$lang['getUsers']              = 'SQL-sætning til at liste alle brugere';
-$lang['addUser']               = 'SQL-sætning til at tilføje en ny bruger';
-$lang['addGroup']              = 'SQL-sætning til at tilføje en ny gruppe';
-$lang['addUserGroup']          = 'SQL-sætning til at tilføje en bruger til en eksisterende gruppe';
-$lang['delGroup']              = 'SQL-sætning til at fjerne en gruppe';
-$lang['delUser']               = 'SQL-sætning til at slette en bruger';
-$lang['delUserRefs']           = 'SQL-sætning til at fjerne en bruger fra alle grupper';
-$lang['updateUser']            = 'SQL-sætning til at opdatere en brugerprofil';
-$lang['debug_o_0']             = 'ingen';
-$lang['debug_o_1']             = 'kun ved fejl';
-$lang['debug_o_2']             = 'alle SQL forespørgsler';
diff --git a/wiki/lib/plugins/authmysql/lang/de-informal/lang.php b/wiki/lib/plugins/authmysql/lang/de-informal/lang.php
deleted file mode 100644
index 11b130f..0000000
--- a/wiki/lib/plugins/authmysql/lang/de-informal/lang.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?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/wiki/lib/plugins/authmysql/lang/de-informal/settings.php b/wiki/lib/plugins/authmysql/lang/de-informal/settings.php
deleted file mode 100644
index f6033d3..0000000
--- a/wiki/lib/plugins/authmysql/lang/de-informal/settings.php
+++ /dev/null
@@ -1,43 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Matthias Schulte <dokuwiki@lupo49.de>
- * @author Volker Bödker <volker@boedker.de>
- */
-$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['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.';
-$lang['checkPass']             = 'SQL-Kommando zum Überprüfen von Passwörtern.';
-$lang['getUserInfo']           = 'SQL-Kommando um Benutzerinformationen auszulesen.';
-$lang['getGroups']             = 'SQL-Kommando um Gruppen eines Benutzers auszulesen.';
-$lang['getUsers']              = 'SQL-Kommando um alle Benutzer auszulesen.';
-$lang['FilterLogin']           = 'SQL-Bedingung um Benutzer anhand ihres Anmeldenamens zu filtern.';
-$lang['FilterName']            = 'SQL-Bedingung um Benutzer anhand ihres Namens zu filtern.';
-$lang['FilterEmail']           = 'SQL-Bedingung um Benutzer anhand ihrer E-Mail-Adresse zu filtern.';
-$lang['FilterGroup']           = 'SQL-Bedingung um Benutzer anhand ihrer Gruppenzugehörigkeit zu filtern.';
-$lang['SortOrder']             = 'SQL-Bedingung um anhand der die Benutzerliste sortiert wird.';
-$lang['addUser']               = 'SQL-Kommando um einen neuen Benutzer anzulegen.';
-$lang['addGroup']              = 'SQL-Kommando um eine neue Gruppe anzulegen.';
-$lang['addUserGroup']          = 'SQL-Kommando um einen Benutzer zu einer Gruppe hinzuzufügen.';
-$lang['delGroup']              = 'SQL-Kommando um eine Gruppe zu löschen.';
-$lang['getUserID']             = 'SQL-Kommando um den Primärschlüssel des Benutzers auszulesen.';
-$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['delUserGroup']          = 'SQL-Kommando um einen Benutzer aus einer angegeben Gruppe zu entfernen.';
-$lang['getGroupID']            = 'SQL-Kommando um den Primärschlüssel einer Gruppe auszulesen.';
-$lang['debug_o_0']             = 'Keine.';
-$lang['debug_o_1']             = 'Nur Fehler.';
-$lang['debug_o_2']             = 'Alle SQL-Abfragen.';
diff --git a/wiki/lib/plugins/authmysql/lang/de/lang.php b/wiki/lib/plugins/authmysql/lang/de/lang.php
deleted file mode 100644
index b552823..0000000
--- a/wiki/lib/plugins/authmysql/lang/de/lang.php
+++ /dev/null
@@ -1,13 +0,0 @@
-<?php
-
-/**
- * @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>
- */
-$lang['connectfail']           = 'Verbindung zur Datenbank fehlgeschlagen.';
-$lang['userexists']            = 'Entschuldigung, aber dieser Benutzername ist bereits vergeben.';
-$lang['usernotexists']         = 'Sorry, dieser Nutzer existiert nicht.';
-$lang['writefail']             = 'Die Benutzerdaten konnten nicht geändert werden. Bitte wenden Sie sich an den Wiki-Admin.';
diff --git a/wiki/lib/plugins/authmysql/lang/de/settings.php b/wiki/lib/plugins/authmysql/lang/de/settings.php
deleted file mode 100644
index 5b603e2..0000000
--- a/wiki/lib/plugins/authmysql/lang/de/settings.php
+++ /dev/null
@@ -1,43 +0,0 @@
-<?php
-
-/**
- * @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']               = '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.';
-$lang['checkPass']             = 'SQL-Kommando zum Überprüfen von Passwörtern.';
-$lang['getUserInfo']           = 'SQL-Kommando um Benutzerinformationen auszulesen.';
-$lang['getGroups']             = 'SQL-Kommando um Gruppen eines Benutzers auszulesen.';
-$lang['getUsers']              = 'SQL-Kommando um alle Benutzer auszulesen.';
-$lang['FilterLogin']           = 'SQL-Bedingung um Benutzer anhand ihres Anmeldenamens zu filtern.';
-$lang['FilterName']            = 'SQL-Bedingung um Benutzer anhand ihres Namens zu filtern.';
-$lang['FilterEmail']           = 'SQL-Bedingung um Benutzer anhand ihrer E-Mail-Adresse zu filtern.';
-$lang['FilterGroup']           = 'SQL-Bedingung um Benutzer anhand ihrer Gruppenzugehörigkeit zu filtern.';
-$lang['SortOrder']             = 'SQL-Bedingung um anhand der die Benutzerliste sortiert wird.';
-$lang['addUser']               = 'SQL-Kommando um einen neuen Benutzer anzulegen.';
-$lang['addGroup']              = 'SQL-Kommando um eine neue Gruppe anzulegen.';
-$lang['addUserGroup']          = 'SQL-Kommando um einen Benutzer zu einer Gruppe hinzuzufügen.';
-$lang['delGroup']              = 'SQL-Kommando um eine Gruppe zu löschen.';
-$lang['getUserID']             = 'SQL-Kommando um den Primärschlüssel des Benutzers auszulesen.';
-$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['delUserGroup']          = 'SQL-Kommando um einen Benutzer aus einer angegeben Gruppe zu entfernen.';
-$lang['getGroupID']            = 'SQL-Kommando um den Primärschlüssel einer Gruppe auszulesen.';
-$lang['debug_o_0']             = 'Keine.';
-$lang['debug_o_1']             = 'Nur Fehler.';
-$lang['debug_o_2']             = 'Alle SQL-Abfragen.';
diff --git a/wiki/lib/plugins/authmysql/lang/en/lang.php b/wiki/lib/plugins/authmysql/lang/en/lang.php
deleted file mode 100644
index 8313616..0000000
--- a/wiki/lib/plugins/authmysql/lang/en/lang.php
+++ /dev/null
@@ -1,13 +0,0 @@
-<?php
-/**
- * English language file for authmysql plugin
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- */
-
-$lang['connectfail']    = 'Failed to connect to database.';
-$lang['userexists']     = 'Sorry, a user with this login already exists.';
-$lang['usernotexists']  = 'Sorry, that user doesn\'t exist.';
-$lang['writefail']      = 'Unable to modify user data. Please inform the Wiki-Admin';
-
-//Setup VIM: ex: et ts=4 :
diff --git a/wiki/lib/plugins/authmysql/lang/en/settings.php b/wiki/lib/plugins/authmysql/lang/en/settings.php
deleted file mode 100644
index b95f397..0000000
--- a/wiki/lib/plugins/authmysql/lang/en/settings.php
+++ /dev/null
@@ -1,39 +0,0 @@
-<?php
-
-$lang['server']           = 'Your MySQL server';
-$lang['user']             = 'MySQL user name';
-$lang['password']         = 'Password for above user';
-$lang['database']         = 'Database to use';
-$lang['charset']          = 'Character set used in database';
-$lang['debug']            = 'Display additional debug information';
-$lang['forwardClearPass'] = 'Pass user passwords as cleartext to the SQL statements below, instead of using the passcrypt option';
-$lang['TablesToLock']     = 'Comma separated list of tables that should be locked on write operations';
-$lang['checkPass']        = 'SQL statement for checking passwords';
-$lang['getUserInfo']      = 'SQL statement for retrieving user information';
-$lang['getGroups']        = 'SQL statement for retrieving a user\'s group memberships';
-$lang['getUsers']         = 'SQL statement to list all users';
-$lang['FilterLogin']      = 'SQL clause for filtering users by login name';
-$lang['FilterName']       = 'SQL clause for filtering users by full name';
-$lang['FilterEmail']      = 'SQL clause for filtering users by email address';
-$lang['FilterGroup']      = 'SQL clause for filtering users by group membership';
-$lang['SortOrder']        = 'SQL clause to sort users';
-$lang['addUser']          = 'SQL statement to add a new user';
-$lang['addGroup']         = 'SQL statement to add a new group';
-$lang['addUserGroup']     = 'SQL statement to add a user to an existing group';
-$lang['delGroup']         = 'SQL statement to remove a group';
-$lang['getUserID']        = 'SQL statement to get the primary key of a user';
-$lang['delUser']          = 'SQL statement to delete a user';
-$lang['delUserRefs']      = 'SQL statement to remove a user from all groups';
-$lang['updateUser']       = 'SQL statement to update a user profile';
-$lang['UpdateLogin']      = 'Update clause for updating the user\'s login name';
-$lang['UpdatePass']       = 'Update clause for updating the user\'s password';
-$lang['UpdateEmail']      = 'Update clause for updating the user\'s email address';
-$lang['UpdateName']       = 'Update clause for updating the user\'s full name';
-$lang['UpdateTarget']     = 'Limit clause to identify the user when updating';
-$lang['delUserGroup']     = 'SQL statement to remove a user from a given group';
-$lang['getGroupID']       = 'SQL statement to get the primary key of a given group';
-
-
-$lang['debug_o_0'] = 'none';
-$lang['debug_o_1'] = 'on errors only';
-$lang['debug_o_2'] = 'all SQL queries';
diff --git a/wiki/lib/plugins/authmysql/lang/eo/lang.php b/wiki/lib/plugins/authmysql/lang/eo/lang.php
deleted file mode 100644
index 818c392..0000000
--- a/wiki/lib/plugins/authmysql/lang/eo/lang.php
+++ /dev/null
@@ -1,8 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Kristjan SCHMIDT <kristjan.schmidt@googlemail.com>
- */
-$lang['usernotexists']         = 'Pardonu, tiu uzanto ne ekzistas.';
diff --git a/wiki/lib/plugins/authmysql/lang/eo/settings.php b/wiki/lib/plugins/authmysql/lang/eo/settings.php
deleted file mode 100644
index b85f812..0000000
--- a/wiki/lib/plugins/authmysql/lang/eo/settings.php
+++ /dev/null
@@ -1,41 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- */
-$lang['server']                = 'Via MySQL-servilo';
-$lang['user']                  = 'MySQL uzantonomo';
-$lang['password']              = 'Pasvorto por tiu uzanto';
-$lang['database']              = 'Uzenda datumbazo';
-$lang['charset']               = 'Uzata tiparo en la datumbazo';
-$lang['debug']                 = 'Ĉu montri aldonajn erarinformojn?';
-$lang['forwardClearPass']      = 'Ĉu transdoni pasvortojn klartekste al la SQL-frazoj sube anstataÅ­ uzi pasvortan kaÅon';
-$lang['TablesToLock']          = 'Komodisigita listo de tabeloj, al kiuj ne eblu skribi';
-$lang['checkPass']             = 'SQL-frazo por testi pasvortojn';
-$lang['getUserInfo']           = 'SQL-frazo por ricevi uzantajn informojn';
-$lang['getGroups']             = 'SQL-frazo por ricevi la grupmembrecojn de uzanto';
-$lang['getUsers']              = 'SQL-frazo por listigi ĉiujn uzantojn';
-$lang['FilterLogin']           = 'SQL-frazo por filtri uzantojn je ensaluta nomo';
-$lang['FilterName']            = 'SQL-frazo por filtri uzantojn je plena nomo';
-$lang['FilterEmail']           = 'SQL-frazo por filtri uzantojn je retpoÅtadreso';
-$lang['FilterGroup']           = 'SQL-frazo por filtri uzantojn je grupmembreco';
-$lang['SortOrder']             = 'SQL-frazo por ordigi uzantojn';
-$lang['addUser']               = 'SQL-frazo por aldoni novan uzanton';
-$lang['addGroup']              = 'SQL-frazo por aldoni novan grupon';
-$lang['addUserGroup']          = 'SQL-frazo por aldoni uzanton al ekzistanta grupo';
-$lang['delGroup']              = 'SQL-frazo por forigi grupon';
-$lang['getUserID']             = 'SQL-frazo por ricevi la ĉefan Ålosilon de uzanto';
-$lang['delUser']               = 'SQL-frazo por forigi uzanton';
-$lang['delUserRefs']           = 'SQL-frazo por forigi uzanton el ĉiuj grupoj';
-$lang['updateUser']            = 'SQL-frazo por aktualigi uzantan profilon';
-$lang['UpdateLogin']           = 'Aktualiga frazo por uzanta ensalutnomo';
-$lang['UpdatePass']            = 'Aktualiga frazo por uzanta pasvorto';
-$lang['UpdateEmail']           = 'Aktualiga frazo por uzanta retpoÅtadreso';
-$lang['UpdateName']            = 'Aktualiga frazo por plena uzanta nomo';
-$lang['UpdateTarget']          = 'Limiga frazo por identigi la uzanton dum aktualigado';
-$lang['delUserGroup']          = 'SQL-frazo por forigi uzanton el indikita grupo';
-$lang['getGroupID']            = 'SQL-frazo por ricevi la ĉefan Ålosilon de indikita grupo';
-$lang['debug_o_0']             = 'neniu';
-$lang['debug_o_1']             = 'nur dum eraroj';
-$lang['debug_o_2']             = 'ĉiuj SQL-serĉoj';
diff --git a/wiki/lib/plugins/authmysql/lang/es/lang.php b/wiki/lib/plugins/authmysql/lang/es/lang.php
deleted file mode 100644
index 3fc8228..0000000
--- a/wiki/lib/plugins/authmysql/lang/es/lang.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Domingo Redal <docxml@gmail.com>
- */
-$lang['connectfail']           = 'Error al conectar con la base de datos.';
-$lang['userexists']            = 'Lo sentimos, ya existe un usuario con ese inicio de sesión.';
-$lang['usernotexists']         = 'Lo sentimos, no existe ese usuario.';
-$lang['writefail']             = 'No es posible modificar los datos del usuario. Por favor, informa al Administrador del Wiki';
diff --git a/wiki/lib/plugins/authmysql/lang/es/settings.php b/wiki/lib/plugins/authmysql/lang/es/settings.php
deleted file mode 100644
index baa991d..0000000
--- a/wiki/lib/plugins/authmysql/lang/es/settings.php
+++ /dev/null
@@ -1,46 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Antonio Bueno <atnbueno@gmail.com>
- * @author Eloy <ej.perezgomez@gmail.com>
- * @author Antonio Castilla <antoniocastilla@trazoide.com>
- * @author Alejandro Nunez <nunez.alejandro@gmail.com>
- * @author Domingo Redal <docxml@gmail.com>
- */
-$lang['server']                = 'Tu servidor MySQL';
-$lang['user']                  = 'Nombre de usuario MySQL';
-$lang['password']              = 'Contraseña para el usuario de arriba.';
-$lang['database']              = 'Base de datos a usar';
-$lang['charset']               = 'Codificación usada en la base de datos';
-$lang['debug']                 = 'Mostrar información adicional para depuración de errores';
-$lang['forwardClearPass']      = 'Enviar las contraseñas de usuario comotexto plano a las siguientes sentencias de SQL, en lugar de utilizar la opción passcrypt';
-$lang['TablesToLock']          = 'Lista separada por comasde las tablas a bloquear durante operaciones de escritura';
-$lang['checkPass']             = 'Sentencia SQL para verificar las contraseñas';
-$lang['getUserInfo']           = 'Sentencia SQL para obtener información del usuario';
-$lang['getGroups']             = 'Sentencia SQL para obtener la pertenencia a grupos de un usuario';
-$lang['getUsers']              = 'Sentencia SQL para listar todos los usuarios';
-$lang['FilterLogin']           = 'Cláusula SQL para filtrar usuarios por su nombre de usuario';
-$lang['FilterName']            = 'Cláusula SQL para filtrar usuarios por su nombre completo';
-$lang['FilterEmail']           = 'Cláusula SQL para filtrar usuarios por su dirección de correo electrónico';
-$lang['FilterGroup']           = 'Cláusula SQL para filtrar usuarios por su pertenencia a grupos';
-$lang['SortOrder']             = 'Cláusula SQL para ordenar usuarios';
-$lang['addUser']               = 'Sentencia SQL para agregar un nuevo usuario';
-$lang['addGroup']              = 'Sentencia SQL para agregar un nuevo grupo';
-$lang['addUserGroup']          = 'Sentencia SQL para agregar un usuario a un grupo existente';
-$lang['delGroup']              = 'Sentencia SQL para eliminar un grupo';
-$lang['getUserID']             = 'Sentencia SQL para obtener la clave primaria de un usuario';
-$lang['delUser']               = 'Sentencia SQL para eliminar un usuario';
-$lang['delUserRefs']           = 'Sentencia SQL para eliminar un usuario de todos los grupos';
-$lang['updateUser']            = 'Sentencia SQL para actualizar un perfil de usuario';
-$lang['UpdateLogin']           = 'Cláusula de actualización para actualizar el login del usuario';
-$lang['UpdatePass']            = 'Cláusula de actualización para actualizar la contraseña del usuario';
-$lang['UpdateEmail']           = 'Cláusula de actualización para actualizar la dirección de correo del usuario';
-$lang['UpdateName']            = 'Cláusula de actualización para actualizar el nomblre completo del usuario';
-$lang['UpdateTarget']          = 'Cláusula limite para identificar al usuario cuando se actualiza';
-$lang['delUserGroup']          = 'Sentencia SQL para eliminar un usuario de un grupo dado';
-$lang['getGroupID']            = 'Sentencia SQL para obtener la clave principal de un grupo dado';
-$lang['debug_o_0']             = 'ninguno';
-$lang['debug_o_1']             = 'sólo errores';
-$lang['debug_o_2']             = 'todas las consultas SQL';
diff --git a/wiki/lib/plugins/authmysql/lang/eu/lang.php b/wiki/lib/plugins/authmysql/lang/eu/lang.php
deleted file mode 100644
index 6408324..0000000
--- a/wiki/lib/plugins/authmysql/lang/eu/lang.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Osoitz <oelkoro@gmail.com>
- */
-$lang['connectfail']           = 'Datu-basera konektatzeak huts egin du';
-$lang['userexists']            = 'Badago izen hori duen erabiltzaile bat.';
-$lang['usernotexists']         = 'Ez dago izen hori duen erabiltzailerik.';
diff --git a/wiki/lib/plugins/authmysql/lang/eu/settings.php b/wiki/lib/plugins/authmysql/lang/eu/settings.php
deleted file mode 100644
index 2a44a59..0000000
--- a/wiki/lib/plugins/authmysql/lang/eu/settings.php
+++ /dev/null
@@ -1,14 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Osoitz <oelkoro@gmail.com>
- */
-$lang['server']                = 'Zure MYSQL zerbitzaria';
-$lang['user']                  = 'MYSQL erabiltzaile-izena';
-$lang['password']              = 'Goiko erabiltzailearen pasahitza';
-$lang['database']              = 'Erabili beharreko datu-basea';
-$lang['charset']               = 'Datu-basean erabilitako karaktere kodeketa';
-$lang['forwardClearPass']      = 'Pasatu erabiltzaileen pasahitza testu argian beheko SQL esaldiei, passcrypt aukera erabili ordez';
-$lang['debug_o_0']             = 'bat ere ez';
diff --git a/wiki/lib/plugins/authmysql/lang/fa/lang.php b/wiki/lib/plugins/authmysql/lang/fa/lang.php
deleted file mode 100644
index b5b8786..0000000
--- a/wiki/lib/plugins/authmysql/lang/fa/lang.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Mohmmad Razavi <sepent@gmail.com>
- * @author Masoud Sadrnezhaad <masoud@sadrnezhaad.ir>
- */
-$lang['connectfail']           = 'خطا در اتصال به دیتابیس';
-$lang['userexists']            = 'با عرض پوزش، یک کاربر با این نام از قبل وجود دارد.';
-$lang['usernotexists']         = 'با عرض پوزش، آن کاربر وجود نداشت.';
-$lang['writefail']             = 'امکان تغییر داده کاربر وجود نداشت. Ù„Ø·ÙØ§ مسئول Wiki را آگاه کنید.';
diff --git a/wiki/lib/plugins/authmysql/lang/fa/settings.php b/wiki/lib/plugins/authmysql/lang/fa/settings.php
deleted file mode 100644
index 4c708a0..0000000
--- a/wiki/lib/plugins/authmysql/lang/fa/settings.php
+++ /dev/null
@@ -1,43 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Mohamad Mehdi Habibi <habibi.esf@gmail.com>
- * @author Mohmmad Razavi <sepent@gmail.com>
- */
-$lang['server']                = 'سرور MySQL';
-$lang['user']                  = 'نام کاربری MySQL';
-$lang['password']              = 'رمزعبور کاربر بالا';
-$lang['database']              = 'پایگاه داده مورد Ø§Ø³ØªÙØ§Ø¯Ù‡';
-$lang['charset']               = 'مجموعه کاراکترهایی (Character set) Ú©Ù‡ در پایگاه داده بکار Ø±ÙØªÙ‡';
-$lang['debug']                 = 'نمایش اطلاعات بیشتر برای دیباگ';
-$lang['forwardClearPass']      = 'بجای Ø§Ø³ØªÙØ§Ø¯Ù‡ از گزینه passcryptØŒ رمزعبورهای کاربر را بصورت آشکار به دستور SQL زیر پاس دهید.';
-$lang['TablesToLock']          = 'لیست جدولهایی Ú©Ù‡ هنگام عملیات نوشتن باید Ù‚ÙÙ„ شود Ú©Ù‡ با کاما از هم جدا شده اند';
-$lang['checkPass']             = 'دستور SQL برای بررسی رمزعبورها';
-$lang['getUserInfo']           = 'دستور SQL برای Ø¯Ø±ÛŒØ§ÙØª اطلاعات نام کاربری';
-$lang['getGroups']             = 'دستور SQL برای Ø¯Ø±ÛŒØ§ÙØª گروه‌های عضویت یک کاربر';
-$lang['getUsers']              = 'دستور SQL برای Ú¯Ø±ÙØªÙ† لیست تمامی کاربران';
-$lang['FilterLogin']           = 'عبارت SQL برای Ùیلتر کردن کاربران با نام کاربری (login name)';
-$lang['FilterName']            = 'عبارت SQL برای Ùیلتر کردن کاربران با نام کامل';
-$lang['FilterEmail']           = 'عبارت SQL برای Ùیلتر کردن کابران با آدرس ایمیل';
-$lang['FilterGroup']           = 'عبارت SQL برای Ùیلتر کاربران با گروه عضویتشان';
-$lang['SortOrder']             = 'عبارت SQL برای مرتب کردن کاربران';
-$lang['addUser']               = 'دستور SQL برای اضاÙÙ‡ کردن کاربر جدید';
-$lang['addGroup']              = 'دستور SQL برای اضاÙÙ‡ کردن گروه جدید';
-$lang['addUserGroup']          = 'دستور SQL برای اضاÙÙ‡ کردن یک کاربر به یک گروه موجود از قبل';
-$lang['delGroup']              = 'دستور SQL برای حذ٠یک گروه';
-$lang['getUserID']             = 'دستور SQL برای Ú¯Ø±ÙØªÙ† کلید اصلی (primary key) یک کاربر';
-$lang['delUser']               = 'دستور SQL برای حذ٠یک کاربر';
-$lang['delUserRefs']           = 'دستور SQL برای حذ٠یک کابر از تمامی گروه‌ها';
-$lang['updateUser']            = 'دستور SQL برای بروزرسانی Ù¾Ø±ÙˆÙØ§ÛŒÙ„ یک کاربر';
-$lang['UpdateLogin']           = 'عبارت Update برای بروزرسانی نام کاربری (login name)';
-$lang['UpdatePass']            = 'عبارت Update برای بروزرسانی رمزعبور کاربر';
-$lang['UpdateEmail']           = 'عبارت Update برای بروزرسانی ادرسی ایمیل کاربر';
-$lang['UpdateName']            = 'عبارت Update برای بروزرسانی نام کامل کاربر';
-$lang['UpdateTarget']          = 'عبارت Limit برای شناسایی کابر هنگام بروزرسانی';
-$lang['delUserGroup']          = 'دستور SQL برای حذ٠یک کاربر ';
-$lang['getGroupID']            = 'دستور SQL برای Ú¯Ø±ÙØªÙ† کلید اصلی (primary key) گروه داده شده';
-$lang['debug_o_0']             = 'هیچ';
-$lang['debug_o_1']             = 'Ùقط هنگام خطا';
-$lang['debug_o_2']             = 'تمام پرس‌وجوهای SQL';
diff --git a/wiki/lib/plugins/authmysql/lang/fi/settings.php b/wiki/lib/plugins/authmysql/lang/fi/settings.php
deleted file mode 100644
index 3251795..0000000
--- a/wiki/lib/plugins/authmysql/lang/fi/settings.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author Jussi Takala <jussi.takala@live.fi>
- */
-$lang['server']                = 'Sinun MySQL-serveri';
-$lang['user']                  = 'MySQL-käyttäjänimi';
-$lang['password']              = 'Salasana yläolevalle käyttäjälle';
-$lang['charset']               = 'Käytetty merkistö tietokannassa';
diff --git a/wiki/lib/plugins/authmysql/lang/fr/lang.php b/wiki/lib/plugins/authmysql/lang/fr/lang.php
deleted file mode 100644
index 5e9fb69..0000000
--- a/wiki/lib/plugins/authmysql/lang/fr/lang.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Pietroni <pietroni@informatique.univ-paris-diderot.fr>
- */
-$lang['connectfail']           = 'Impossible de se connecter à la base de données.';
-$lang['userexists']            = 'Désolé, un utilisateur avec cet identifiant existe déjà.';
-$lang['usernotexists']         = 'Désolé, cet utilisateur n\'existe pas.';
-$lang['writefail']             = 'Impossible de modifier les données utilisateur. Veuillez en informer l\'administrateur du Wiki.';
diff --git a/wiki/lib/plugins/authmysql/lang/fr/settings.php b/wiki/lib/plugins/authmysql/lang/fr/settings.php
deleted file mode 100644
index a88b325..0000000
--- a/wiki/lib/plugins/authmysql/lang/fr/settings.php
+++ /dev/null
@@ -1,42 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Bruno Veilleux <bruno.vey@gmail.com>
- */
-$lang['server']                = 'Votre serveur MySQL';
-$lang['user']                  = 'Nom d\'utilisateur MySQL';
-$lang['password']              = 'Mot de passe pour l\'utilisateur ci-dessus';
-$lang['database']              = 'Base de données à utiliser';
-$lang['charset']               = 'Jeu de caractères utilisé dans la base de données';
-$lang['debug']                 = 'Afficher des informations de débogage supplémentaires';
-$lang['forwardClearPass']      = 'Passer les mots de passe aux requêtes SQL ci-dessous en cleartext plutôt qu\'avec l\'option passcrypt';
-$lang['TablesToLock']          = 'Liste séparée par des virgules des tables devant être verrouillées par les opérations d\'écriture';
-$lang['checkPass']             = 'Requête SQL pour la vérification des mots de passe';
-$lang['getUserInfo']           = 'Requête SQL pour la récupération des informations d\'un utilisateur';
-$lang['getGroups']             = 'Requête SQL pour la récupération des groupes d\'un utilisateur';
-$lang['getUsers']              = 'Requête SQL pour énumérer tous les utilisateurs';
-$lang['FilterLogin']           = 'Clause SQL pour filtrer les utilisateurs par identifiant';
-$lang['FilterName']            = 'Clause SQL pour filtrer les utilisateurs par nom complet';
-$lang['FilterEmail']           = 'Clause SQL pour filtrer les utilisateurs par adresse électronique';
-$lang['FilterGroup']           = 'Clause SQL pour filtrer les utilisateurs par groupes';
-$lang['SortOrder']             = 'Clause SQL pour trier les utilisateurs';
-$lang['addUser']               = 'Requête SQL pour ajouter un nouvel utilisateur';
-$lang['addGroup']              = 'Requête SQL pour ajouter un nouveau groupe';
-$lang['addUserGroup']          = 'Requête SQL pour ajouter un utilisateur à un groupe existant';
-$lang['delGroup']              = 'Requête SQL pour retirer un groupe';
-$lang['getUserID']             = 'Requête SQL pour obtenir la clé primaire d\'un utilisateur';
-$lang['delUser']               = 'Requête SQL pour supprimer un utilisateur';
-$lang['delUserRefs']           = 'Requête SQL pour retirer un utilisateur de tous les groupes';
-$lang['updateUser']            = 'Requête SQL pour mettre à jour le profil d\'un utilisateur';
-$lang['UpdateLogin']           = 'Clause de mise à jour pour mettre à jour l\'identifiant d\'un utilisateur';
-$lang['UpdatePass']            = 'Clause de mise à jour pour mettre à jour le mot de passe d\'un utilisateur';
-$lang['UpdateEmail']           = 'Clause de mise à jour pour mettre à jour l\'adresse électronique d\'un utilisateur';
-$lang['UpdateName']            = 'Clause de mise à jour pour mettre à jour le nom complet d\'un utilisateur';
-$lang['UpdateTarget']          = 'Clause de limite pour identifier l\'utilisateur durant une mise à jour';
-$lang['delUserGroup']          = 'Requête SQL pour retirer un utilisateur d\'un groupe donné';
-$lang['getGroupID']            = 'Requête SQL pour obtenir la clé primaire d\'un groupe donné';
-$lang['debug_o_0']             = 'aucun';
-$lang['debug_o_1']             = 'sur erreur seulement';
-$lang['debug_o_2']             = 'toutes les requêtes SQL';
diff --git a/wiki/lib/plugins/authmysql/lang/he/settings.php b/wiki/lib/plugins/authmysql/lang/he/settings.php
deleted file mode 100644
index 22c30e5..0000000
--- a/wiki/lib/plugins/authmysql/lang/he/settings.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Menashe Tomer <menashesite@gmail.com>
- */
-$lang['getUserID']             = 'ש×ילתת SQL לקבלת מפתח ר×שי של המשתמש';
-$lang['UpdateLogin']           = 'ש×ילתת SQL לעדכון ×©× ×”×ž×©×ª×ž×©';
-$lang['UpdatePass']            = 'ש×ילתת SQL לעדכון סיסמת המשתמש';
-$lang['UpdateEmail']           = 'ש×ילתת SQL לעדכון כתובת הדו×"ל של המשתמש';
-$lang['UpdateName']            = 'ש×ילתת SQL לעדכון ×©× ×”×ž×©×ª×ž×©';
diff --git a/wiki/lib/plugins/authmysql/lang/hr/lang.php b/wiki/lib/plugins/authmysql/lang/hr/lang.php
deleted file mode 100644
index e839d67..0000000
--- a/wiki/lib/plugins/authmysql/lang/hr/lang.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Davor Turkalj <turki.bsc@gmail.com>
- */
-$lang['connectfail']           = 'Ne mogu se spojiti na bazu.';
-$lang['userexists']            = 'Oprostite ali korisnik s ovom prijavom već postoji.';
-$lang['usernotexists']         = 'Oprostite ali ovaj korisnik ne postoji.';
-$lang['writefail']             = 'Ne mogu izmijeniti podatke. Molim obavijestite Wiki administratora';
diff --git a/wiki/lib/plugins/authmysql/lang/hr/settings.php b/wiki/lib/plugins/authmysql/lang/hr/settings.php
deleted file mode 100644
index 370b645..0000000
--- a/wiki/lib/plugins/authmysql/lang/hr/settings.php
+++ /dev/null
@@ -1,42 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Davor Turkalj <turki.bsc@gmail.com>
- */
-$lang['server']                = 'Vaš MySQL server';
-$lang['user']                  = 'MySQL korisniÄko ime';
-$lang['password']              = 'Lozinka gore navedenog korisnika';
-$lang['database']              = 'Baza koja se koristi';
-$lang['charset']               = 'Znakovni set koji se koristi u bazi';
-$lang['debug']                 = 'Prikaz dodatnih debug informacija';
-$lang['forwardClearPass']      = 'Proslijedi korisniÄku lozinku kao Äisti tekst u SQL upitu niže, umjesto koriÅ¡tenja passcrypt opcije';
-$lang['TablesToLock']          = 'Zarezom odvojena lista tabela koje trebaju biti zakljuÄane pri operacijama pisanja';
-$lang['checkPass']             = 'SQL izraz za provjeru lozinki';
-$lang['getUserInfo']           = 'SQL izraz za dohvaćanje informacija o korisniku';
-$lang['getGroups']             = 'SQL izraz za dohvaćanje Älanstva u grupama';
-$lang['getUsers']              = 'SQL izraz za ispis svih korisnika';
-$lang['FilterLogin']           = 'SQL izraz za izdvajanje korisnika po korisniÄkom imenu';
-$lang['FilterName']            = 'SQL izraz za izdvajanje korisnika po punom imenu';
-$lang['FilterEmail']           = 'SQL izraz za izdvajanje korisnika po adresi e-pošte';
-$lang['FilterGroup']           = 'SQL izraz za izdvajanje korisnika po Älanstvu u grupama';
-$lang['SortOrder']             = 'SQL izraz za sortiranje korisnika';
-$lang['addUser']               = 'SQL izraz za dodavanje novih korisnika';
-$lang['addGroup']              = 'SQL izraz za dodavanje novih grupa';
-$lang['addUserGroup']          = 'SQL izraz za dodavanje korisnika u postojeću grupu';
-$lang['delGroup']              = 'SQL izraz za uklanjanje grupe';
-$lang['getUserID']             = 'SQL izraz za dobivanje primarnog kljuÄa korisnika';
-$lang['delUser']               = 'SQL izraz za brisanje korisnika';
-$lang['delUserRefs']           = 'SQL izraz za uklanjanje korisnika iz grupe';
-$lang['updateUser']            = 'SQL izraz za ažuriranje korisniÄkog profila';
-$lang['UpdateLogin']           = 'UPDATE izraz za ažuriranje korisniÄkog imena';
-$lang['UpdatePass']            = 'UPDATE izraz za ažuriranje korisniÄke lozinke';
-$lang['UpdateEmail']           = 'UPDATE izraz za ažuriranje korisniÄke email adrese';
-$lang['UpdateName']            = 'UPDATE izraz za ažuriranje punog imena korisnika';
-$lang['UpdateTarget']          = 'Limit izraz za identificiranje korisnika pri ažuriranju';
-$lang['delUserGroup']          = 'SQL izraz za uklanjanje korisnika iz zadane grupe';
-$lang['getGroupID']            = 'SQL izraz za dobivanje primarnoga kljuÄa zadane grupe';
-$lang['debug_o_0']             = 'ništa';
-$lang['debug_o_1']             = 'u sluÄaju greÅ¡ke';
-$lang['debug_o_2']             = 'svi SQL upiti';
diff --git a/wiki/lib/plugins/authmysql/lang/hu/lang.php b/wiki/lib/plugins/authmysql/lang/hu/lang.php
deleted file mode 100644
index 3f48da3..0000000
--- a/wiki/lib/plugins/authmysql/lang/hu/lang.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author Marton Sebok <sebokmarton@gmail.com>
- */
-$lang['connectfail']           = 'Az adatbázishoz való csatlakozás sikertelen.';
-$lang['userexists']            = 'Sajnos már létezik ilyen azonosítójú felhasználó.';
-$lang['usernotexists']         = 'Sajnos ez a felhasználó nem létezik.';
-$lang['writefail']             = 'A felhasználói adatok módosítása sikertelen. Kérlek, fordulj a wiki rendszergazdájához!';
diff --git a/wiki/lib/plugins/authmysql/lang/hu/settings.php b/wiki/lib/plugins/authmysql/lang/hu/settings.php
deleted file mode 100644
index cf7b26b..0000000
--- a/wiki/lib/plugins/authmysql/lang/hu/settings.php
+++ /dev/null
@@ -1,43 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author Marton Sebok <sebokmarton@gmail.com>
- * @author Marina Vladi <deldadam@gmail.com>
- */
-$lang['server']                = 'MySQL-kiszolgáló';
-$lang['user']                  = 'MySQL-felhasználónév';
-$lang['password']              = 'Fenti felhasználó jelszava';
-$lang['database']              = 'Adatbázis';
-$lang['charset']               = 'Az adatbázisban használt karakterkészlet';
-$lang['debug']                 = 'Hibakeresési üzenetek megjelenítése';
-$lang['forwardClearPass']      = 'A jelszó nyílt szövegként történő átadása az alábbi SQL-utasításoknak a passcrypt opció használata helyett';
-$lang['TablesToLock']          = 'Az íráskor zárolni kívánt táblák vesszővel elválasztott listája';
-$lang['checkPass']             = 'SQL-utasítás a jelszavak ellenőrzéséhez';
-$lang['getUserInfo']           = 'SQL-utasítás a felhasználói információk lekérdezéséhez';
-$lang['getGroups']             = 'SQL-utasítás egy felhasználó csoporttagságainak lekérdezéséhez';
-$lang['getUsers']              = 'SQL-utasítás a felhasználók listázásához';
-$lang['FilterLogin']           = 'SQL-kifejezés a felhasználók azonosító alapú szűréséhez';
-$lang['FilterName']            = 'SQL-kifejezés a felhasználók név alapú szűréséhez';
-$lang['FilterEmail']           = 'SQL-kifejezés a felhasználók e-mail cím alapú szűréséhez';
-$lang['FilterGroup']           = 'SQL-kifejezés a felhasználók csoporttagság alapú szűréséhez';
-$lang['SortOrder']             = 'SQL-kifejezés a felhasználók rendezéséhez';
-$lang['addUser']               = 'SQL-utasítás új felhasználó hozzáadásához';
-$lang['addGroup']              = 'SQL-utasítás új csoport hozzáadásához';
-$lang['addUserGroup']          = 'SQL-utasítás egy felhasználó egy meglévő csoporthoz való hozzáadásához';
-$lang['delGroup']              = 'SQL-utasítás egy csoport törléséhez';
-$lang['getUserID']             = 'SQL-utasítás egy felhasználó elsődleges kulcsának lekérdezéséhez';
-$lang['delUser']               = 'SQL-utasítás egy felhasználó törléséhez';
-$lang['delUserRefs']           = 'SQL-utasítás egy felhasználó eltávolításához az összes csoportból';
-$lang['updateUser']            = 'SQL-utasítás egy felhasználó profiljának frissítéséhez';
-$lang['UpdateLogin']           = 'UPDATE-klauzula a felhasználó azonosítójának frissítéséhez';
-$lang['UpdatePass']            = 'UPDATE-klauzula a felhasználó jelszavának frissítéséhez';
-$lang['UpdateEmail']           = 'UPDATE-klauzula a felhasználó e-mail címének frissítéséhez';
-$lang['UpdateName']            = 'UPDATE-klauzula a felhasználó teljes nevének frissítéséhez';
-$lang['UpdateTarget']          = 'LIMIT-klauzula a felhasználó kiválasztásához az adatok frissítésekor';
-$lang['delUserGroup']          = 'SQL-utasítás felhasználó adott csoportból történő törléséhez ';
-$lang['getGroupID']            = 'SQL-utasítás adott csoport elsődleges kulcsának lekérdezéséhez';
-$lang['debug_o_0']             = 'nem';
-$lang['debug_o_1']             = 'csak hiba esetén';
-$lang['debug_o_2']             = 'minden SQL-lekérdezésnél';
diff --git a/wiki/lib/plugins/authmysql/lang/it/lang.php b/wiki/lib/plugins/authmysql/lang/it/lang.php
deleted file mode 100644
index 6ba3ef8..0000000
--- a/wiki/lib/plugins/authmysql/lang/it/lang.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Torpedo <dgtorpedo@gmail.com>
- */
-$lang['connectfail']           = 'Connessione fallita al database.';
-$lang['userexists']            = 'Spiacente, esiste già un utente con queste credenziali.';
-$lang['usernotexists']         = 'Spiacente, quell\'utente non esiste.';
-$lang['writefail']             = 'Non è possibile cambiare le informazioni utente. Si prega di informare l\'Amministratore del wiki';
diff --git a/wiki/lib/plugins/authmysql/lang/it/settings.php b/wiki/lib/plugins/authmysql/lang/it/settings.php
deleted file mode 100644
index ec2d670..0000000
--- a/wiki/lib/plugins/authmysql/lang/it/settings.php
+++ /dev/null
@@ -1,46 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Claudio Lanconelli <lancos@libero.it>
- * @author Mirko <malisan.mirko@gmail.com>
- * @author Francesco <francesco.cavalli@hotmail.com>
- * @author Maurizio <mcannavo@katamail.com>
- * @author Torpedo <dgtorpedo@gmail.com>
- */
-$lang['server']                = 'Il tuo server MySQL';
-$lang['user']                  = 'User name di MySQL';
-$lang['password']              = 'Password per l\'utente di cui sopra';
-$lang['database']              = 'Database da usare';
-$lang['charset']               = 'Set di caratteri usato nel database';
-$lang['debug']                 = 'Mostra ulteriori informazioni di debug';
-$lang['forwardClearPass']      = 'Fornisci le password utente come testo visibile alle istruzioni SQL qui sotto, invece che usare l\'opzione passcrypt';
-$lang['TablesToLock']          = 'Lista, separata da virgola, delle tabelle che devono essere bloccate in scrittura';
-$lang['checkPass']             = 'Istruzione SQL per il controllo password';
-$lang['getUserInfo']           = 'Istruzione SQL per recuperare le informazioni utente';
-$lang['getGroups']             = 'Istruzione SQL per recuperare il gruppo di appartenenza di un utente';
-$lang['getUsers']              = 'Istruzione SQL per listare tutti gli utenti';
-$lang['FilterLogin']           = 'Condizione SQL per per filtrare gli utenti in funzione del "login name"';
-$lang['FilterName']            = 'Condizione SQL per filtrare gli utenti in base al nome completo';
-$lang['FilterEmail']           = 'Condizione SQL per filtrare gli utenti in base all\'indirizzo e-mail';
-$lang['FilterGroup']           = 'Condizione SQL per filtrare gli utenti in base al gruppo di appartenenza';
-$lang['SortOrder']             = 'Condizione SQL per ordinare gli utenti';
-$lang['addUser']               = 'Istruzione SQL per aggiungere un nuovo utente';
-$lang['addGroup']              = 'Istruzione SQL per aggiungere un nuovo gruppo';
-$lang['addUserGroup']          = 'Istruzione SQL per aggiungere un utente ad un gruppo esistente';
-$lang['delGroup']              = 'Istruzione SQL per imuovere un gruppo';
-$lang['getUserID']             = 'Istruzione SQL per recuperare la primary key di un utente';
-$lang['delUser']               = 'Istruzione SQL per cancellare un utente';
-$lang['delUserRefs']           = 'Istruzione SQL per rimuovere un utente da tutti i gruppi';
-$lang['updateUser']            = 'Istruzione SQL per aggiornare il profilo utente';
-$lang['UpdateLogin']           = 'Condizione SQL per aggiornare il nome di accesso dell\'utente';
-$lang['UpdatePass']            = 'Condizione SQL per aggiornare la password utente';
-$lang['UpdateEmail']           = 'Condizione SQL per aggiornare l\'e-mail utente';
-$lang['UpdateName']            = 'Condizione SQL per aggiornare il nome completo dell\'utente';
-$lang['UpdateTarget']          = 'Condizione SQL per identificare l\'utente quando aggiornato';
-$lang['delUserGroup']          = 'Istruzione SQL per rimuovere un utente da un dato gruppo';
-$lang['getGroupID']            = 'Istruzione SQL per avere la primary key di un dato gruppo';
-$lang['debug_o_0']             = 'Nulla';
-$lang['debug_o_1']             = 'Solo in errore';
-$lang['debug_o_2']             = 'Tutte le query SQL';
diff --git a/wiki/lib/plugins/authmysql/lang/ja/lang.php b/wiki/lib/plugins/authmysql/lang/ja/lang.php
deleted file mode 100644
index 55c908b..0000000
--- a/wiki/lib/plugins/authmysql/lang/ja/lang.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Hideaki SAWADA <chuno@live.jp>
- */
-$lang['connectfail']           = 'データベースã¸ã®æŽ¥ç¶šã«å¤±æ•—ã—ã¾ã—ãŸã€‚';
-$lang['userexists']            = 'ã“ã®ãƒ­ã‚°ã‚¤ãƒ³åã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒæ—¢ã«å­˜åœ¨ã—ã¦ã„ã¾ã™ã€‚';
-$lang['usernotexists']         = 'ãã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã¯å­˜åœ¨ã—ã¾ã›ã‚“。';
-$lang['writefail']             = 'ユーザーデータを変更ã§ãã¾ã›ã‚“。Wiki ã®ç®¡ç†è€…ã«é€£çµ¡ã—ã¦ãã ã•ã„。';
diff --git a/wiki/lib/plugins/authmysql/lang/ja/settings.php b/wiki/lib/plugins/authmysql/lang/ja/settings.php
deleted file mode 100644
index cc0146b..0000000
--- a/wiki/lib/plugins/authmysql/lang/ja/settings.php
+++ /dev/null
@@ -1,42 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Satoshi Sahara <sahara.satoshi@gmail.com>
- */
-$lang['server']                = 'MySQL ã®ãƒ›ã‚¹ãƒˆå';
-$lang['user']                  = 'MySQL 接続用ユーザーå';
-$lang['password']              = 'MySQL 接続用ユーザーã®ãƒ‘スワード';
-$lang['database']              = '使用ã™ã‚‹ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹å';
-$lang['charset']               = 'ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã®æ–‡å­—コード';
-$lang['debug']                 = 'デãƒãƒƒã‚¯æƒ…報を表示ã™ã‚‹';
-$lang['forwardClearPass']      = '以下ã§å®šç¾©ã™ã‚‹ SQL ステートメントã«ãŠã„ã¦, パスワード変数 を平文ã¨ã™ã‚‹(DokiWikiå´ã§æš—å·åŒ–ã—ãªã„)';
-$lang['TablesToLock']          = '書ãè¾¼ã¿æ™‚ã«ãƒ­ãƒƒã‚¯ã™ã‚‹ãƒ†ãƒ¼ãƒ–ル(コンマ区切りã§åˆ—挙)';
-$lang['checkPass']             = 'パスワードã®ç…§åˆã«ç”¨ã„ã‚‹ SQL ステートメント';
-$lang['getUserInfo']           = 'ユーザー情報ã®å–å¾—ã«ç”¨ã„ã‚‹ SQL ステートメント';
-$lang['getGroups']             = 'ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒæ‰€å±žã™ã‚‹å…¨ã¦ã®ã‚°ãƒ«ãƒ¼ãƒ—ã®å–å¾—ã«ç”¨ã„ã‚‹ SQL ステートメント';
-$lang['getUsers']              = 'ユーザーリストをå–å¾—ã™ã‚‹ SQL ステートメント';
-$lang['FilterLogin']           = 'ユーザーリストをログインåã§çµžã‚Šè¾¼ã‚€ SQL å¥';
-$lang['FilterName']            = 'ユーザーリストをフルãƒãƒ¼ãƒ ã§çµžã‚Šè¾¼ã‚€ SQL å¥';
-$lang['FilterEmail']           = 'ユーザーリストをメールアドレスã§çµžã‚Šè¾¼ã‚€ SQL å¥';
-$lang['FilterGroup']           = 'ユーザーリストを所属グループã§çµžã‚Šè¾¼ã‚€ SQL å¥';
-$lang['SortOrder']             = 'ユーザーリストã®ã‚½ãƒ¼ãƒˆæ–¹æ³•を指定ã™ã‚‹ SQL å¥';
-$lang['addUser']               = 'æ–°è¦ãƒ¦ãƒ¼ã‚¶ãƒ¼ã‚’追加ã™ã‚‹ SQL ステートメント';
-$lang['addGroup']              = 'æ–°è¦ã‚°ãƒ«ãƒ¼ãƒ—を追加ã™ã‚‹ SQL ステートメント';
-$lang['addUserGroup']          = 'ユーザーをグループã«é…属ã™ã‚‹ SQL ステートメント';
-$lang['delGroup']              = 'グループを削除ã™ã‚‹ SQL ステートメント';
-$lang['getUserID']             = 'ユーザーIDã®å–å¾—ã«ç”¨ã„ã‚‹ SQL ステートメント';
-$lang['delUser']               = 'ユーザーを削除ã™ã‚‹ SQL ステートメント';
-$lang['delUserRefs']           = 'ユーザーã®ã‚°ãƒ«ãƒ¼ãƒ—所属を全ã¦å–り消㙠SQL ステートメント';
-$lang['updateUser']            = 'ユーザー情報を変更ã™ã‚‹ SQL ステートメント';
-$lang['UpdateLogin']           = '変更後ã®ãƒ­ã‚°ã‚¤ãƒ³åを指定ã™ã‚‹ SQL å¥';
-$lang['UpdatePass']            = '変更後ã®ãƒ‘スワードを指定ã™ã‚‹ SQL å¥';
-$lang['UpdateEmail']           = '変更後ã®ãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’指定ã™ã‚‹ SQL å¥';
-$lang['UpdateName']            = '変更後ã®ãƒ•ルãƒãƒ¼ãƒ ã‚’指定ã™ã‚‹ SQL å¥';
-$lang['UpdateTarget']          = '変更対象ã®ãƒ¦ãƒ¼ã‚¶ã‚’特定ã™ã‚‹ãŸã‚ã® SQL å¥';
-$lang['delUserGroup']          = 'ユーザーをグループã‹ã‚‰é™¤åã™ã‚‹ SQL ステートメント';
-$lang['getGroupID']            = 'グループIDã®å–å¾—ã«ç”¨ã„ã‚‹ SQL ステートメント';
-$lang['debug_o_0']             = '表示ã—ãªã„';
-$lang['debug_o_1']             = 'エラー発生時ã®ã¿è¡¨ç¤º';
-$lang['debug_o_2']             = 'å…¨ã¦ã® SQLクエリã§è¡¨ç¤º';
diff --git a/wiki/lib/plugins/authmysql/lang/ko/lang.php b/wiki/lib/plugins/authmysql/lang/ko/lang.php
deleted file mode 100644
index 5e96a44..0000000
--- a/wiki/lib/plugins/authmysql/lang/ko/lang.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author hyeonsoft <hyeonsoft@live.co.kr>
- * @author Myeongjin <aranet100@gmail.com>
- */
-$lang['connectfail']           = 'ë°ì´í„°ë² ì´ìŠ¤ì— ì—°ê²°í•˜ëŠ” ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤.';
-$lang['userexists']            = '죄송하지만 ì´ ê³„ì •ìœ¼ë¡œ ì´ë¯¸ 로그ì¸í•œ 사용ìžê°€ 있습니다.';
-$lang['usernotexists']         = '죄송하지만 해당 사용ìžê°€ 존재하지 않습니다.';
-$lang['writefail']             = 'ì‚¬ìš©ìž ë°ì´í„°ë¥¼ 수정할 수 없습니다. 위키 관리ìžì—게 문ì˜í•˜ì‹œê¸° ë°”ëžë‹ˆë‹¤';
diff --git a/wiki/lib/plugins/authmysql/lang/ko/settings.php b/wiki/lib/plugins/authmysql/lang/ko/settings.php
deleted file mode 100644
index ee7c1ef..0000000
--- a/wiki/lib/plugins/authmysql/lang/ko/settings.php
+++ /dev/null
@@ -1,43 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Myeongjin <aranet100@gmail.com>
- * @author Garam <rowain8@gmail.com>
- */
-$lang['server']                = 'MySQL 서버';
-$lang['user']                  = 'MySQL ì‚¬ìš©ìž ì´ë¦„';
-$lang['password']              = '위 사용ìžì˜ 비밀번호';
-$lang['database']              = '사용할 ë°ì´í„°ë² ì´ìФ';
-$lang['charset']               = 'ë°ì´í„°ë² ì´ìŠ¤ì— ì‚¬ìš©í•˜ëŠ” ë¬¸ìž ì§‘í•©';
-$lang['debug']                 = '추가ì ì¸ 디버그 ì •ë³´ ë³´ì´ê¸°';
-$lang['forwardClearPass']      = 'passcrypt ì˜µì…˜ì„ ì‚¬ìš©í•˜ëŠ” 대신 아래 SQL ë¬¸ì— ì¼ë°˜ í…스트로 ì‚¬ìš©ìž ë¹„ë°€ë²ˆí˜¸ë¥¼ 전달';
-$lang['TablesToLock']          = '쓰기 ìž‘ì—…ì— ìž ê¶ˆì•¼ 하는 í…Œì´ë¸”ì˜ ì‰¼í‘œë¡œ 구분한 목ë¡';
-$lang['checkPass']             = '비밀번호를 확ì¸í•˜ê¸° 위한 SQL 문';
-$lang['getUserInfo']           = 'ì‚¬ìš©ìž ì •ë³´ë¥¼ 가져오기 위한 SQL 문';
-$lang['getGroups']             = '사용ìžì˜ 그룹 구성ì›ì„ 가져오기 위한 SQL 문';
-$lang['getUsers']              = '모든 사용ìžë¥¼ 나타낼 SQL 문';
-$lang['FilterLogin']           = 'ë¡œê·¸ì¸ ì´ë¦„별로 사용ìžë¥¼ 필터하기 위한 SQL ì¡°í•­';
-$lang['FilterName']            = 'ì „ì²´ ì´ë¦„별로 사용ìžë¥¼ 필터하기 위한 SQL ì¡°í•­';
-$lang['FilterEmail']           = 'ì´ë©”ì¼ ì£¼ì†Œë³„ë¡œ 사용ìžë¥¼ 필터하기 위한 SQL ì¡°í•­';
-$lang['FilterGroup']           = '그룹 구성ì›ë³„로 사용ìžë¥¼ 필터하기 위한 SQL ì¡°í•­';
-$lang['SortOrder']             = '사용ìžë¥¼ 정렬할 SQL ì¡°í•­';
-$lang['addUser']               = '새 사용ìžë¥¼ 추가할 SQL 문';
-$lang['addGroup']              = '새 ê·¸ë£¹ì„ ì¶”ê°€í•  SQL 문';
-$lang['addUserGroup']          = '기존 ê·¸ë£¹ì— ì‚¬ìš©ìžë¥¼ 추가할 SQL 문';
-$lang['delGroup']              = 'ê·¸ë£¹ì„ ì œê±°í•  SQL 문';
-$lang['getUserID']             = '사용ìžì˜ 기본 키를 ì–»ì„ SQL 문';
-$lang['delUser']               = '사용ìžë¥¼ 삭제할 SQL 문';
-$lang['delUserRefs']           = '모든 그룹ì—서 사용ìžë¥¼ 제거할 SQL 문';
-$lang['updateUser']            = 'ì‚¬ìš©ìž í”„ë¡œí•„ì„ ì—…ë°ì´íŠ¸í•  SQL 문';
-$lang['UpdateLogin']           = '사용ìžì˜ ë¡œê·¸ì¸ ì´ë¦„ì„ ì—…ë°ì´íŠ¸í•˜ê¸° 위한 Update ì¡°í•­';
-$lang['UpdatePass']            = '사용ìžì˜ 비밀번호를 ì—…ë°ì´íŠ¸í•˜ê¸° 위한 Update ì¡°í•­';
-$lang['UpdateEmail']           = '사용ìžì˜ ì´ë©”ì¼ ì£¼ì†Œë¥¼ ì—…ë°ì´íŠ¸í•˜ê¸° 위한 Update ì¡°í•­';
-$lang['UpdateName']            = '사용ìžì˜ ì „ì²´ ì´ë¦„ì„ ì—…ë°ì´íŠ¸í•˜ê¸° 위한 Update ì¡°í•­';
-$lang['UpdateTarget']          = 'ì—…ë°ì´íŠ¸í•  때 사용ìžë¥¼ ì‹ë³„í•  Limit ì¡°í•­';
-$lang['delUserGroup']          = '주어진 그룹ì—서 사용ìžë¥¼ 제거할 SQL 문';
-$lang['getGroupID']            = '주어진 ê·¸ë£¹ì˜ ê¸°ë³¸ 키를 ì–»ì„ SQL 문';
-$lang['debug_o_0']             = 'ì—†ìŒ';
-$lang['debug_o_1']             = '오류ì—ë§Œ';
-$lang['debug_o_2']             = '모든 SQL 쿼리';
diff --git a/wiki/lib/plugins/authmysql/lang/lv/settings.php b/wiki/lib/plugins/authmysql/lang/lv/settings.php
deleted file mode 100644
index 008ef34..0000000
--- a/wiki/lib/plugins/authmysql/lang/lv/settings.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Oskars Pakers <oskars.pakers@gmail.com>
- * @author Aivars Miška <allefm@gmail.com>
- */
-$lang['server']                = 'Jūsu MySQL serveris';
-$lang['user']                  = 'MySQL lietotÄja vÄrds';
-$lang['password']              = 'LietotÄja parole';
-$lang['delUser']               = 'SQL pieprasÄ«jums lietotÄja dzēšanai';
diff --git a/wiki/lib/plugins/authmysql/lang/nl/lang.php b/wiki/lib/plugins/authmysql/lang/nl/lang.php
deleted file mode 100644
index 1f6d8af..0000000
--- a/wiki/lib/plugins/authmysql/lang/nl/lang.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Hugo Smet <hugo.smet@scarlet.be>
- */
-$lang['connectfail']           = 'Connectie met de database mislukt.';
-$lang['userexists']            = 'Sorry, een gebruiker met deze login bestaat reeds.';
-$lang['usernotexists']         = 'Sorry, deze gebruiker bestaat niet.';
-$lang['writefail']             = 'Onmogelijk om de gebruikers data te wijzigen. Gelieve de Wiki-Admin te informeren.';
diff --git a/wiki/lib/plugins/authmysql/lang/nl/settings.php b/wiki/lib/plugins/authmysql/lang/nl/settings.php
deleted file mode 100644
index a4bab2d..0000000
--- a/wiki/lib/plugins/authmysql/lang/nl/settings.php
+++ /dev/null
@@ -1,42 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Remon <no@email.local>
- */
-$lang['server']                = 'De MySQL server';
-$lang['user']                  = 'MySql gebruikersnaam';
-$lang['password']              = 'Wachtwoord van bovenstaande gebruiker';
-$lang['database']              = 'Te gebruiken database';
-$lang['charset']               = 'Tekenset voor database';
-$lang['debug']                 = 'Tonen aanvullende debuginformatie';
-$lang['forwardClearPass']      = 'Wachtwoorden als leesbare tekst in SQL commando\'s opnemen in plaats van versleutelde tekens';
-$lang['TablesToLock']          = 'Kommagescheiden lijst van tabellen die gelocked moeten worden bij schrijfacties';
-$lang['checkPass']             = 'SQL commando voor het verifiëren van wachtwoorden';
-$lang['getUserInfo']           = 'SQL commando voor het ophalen van gebruikersinformatie';
-$lang['getGroups']             = 'SQL commando voor het ophalen van groepslidmaatschappen';
-$lang['getUsers']              = 'SQL commando voor het tonen van alle gebruikers';
-$lang['FilterLogin']           = 'SQL clausule voor het filteren van gebruikers op inlognaam';
-$lang['FilterName']            = 'SQL clausule voor het filteren van gebruikers op volledige naam';
-$lang['FilterEmail']           = 'SQL clausule voor het filteren van gebruikers op e-mailadres';
-$lang['FilterGroup']           = 'SQL clausule voor het filteren van gebruikers op groepslidmaatschap';
-$lang['SortOrder']             = 'SQL clausule voor het sorteren van gebruikers';
-$lang['addUser']               = 'SQL commando om een nieuwe gebruiker toe te voegen';
-$lang['addGroup']              = 'SQL commando om een nieuwe groep toe te voegen';
-$lang['addUserGroup']          = 'SQL commando om een gebruiker aan een bestaande groep toe te voegen';
-$lang['delGroup']              = 'SQL commando om een groep te verwijderen';
-$lang['getUserID']             = 'SQL commando om de de primaire sleutel van een gebruiker op te halen';
-$lang['delUser']               = 'SQL commando om een gebruiker te verwijderen';
-$lang['delUserRefs']           = 'SQL commando om een gebruiker uit alle groepen te verwijderen';
-$lang['updateUser']            = 'SQL commando om een gebruikersprofiel bij te werken';
-$lang['UpdateLogin']           = 'Bijwerkcommando om de inlognaam van de gebruiker bij te werken';
-$lang['UpdatePass']            = 'Bijwerkcommando om het wachtwoord van de gebruiker bij te werken';
-$lang['UpdateEmail']           = 'Bijwerkcommando om het e-mailadres van de gebruiker bij te werken';
-$lang['UpdateName']            = 'Bijwerkcommando om de volledige naam van de gebruiker bij te werken';
-$lang['UpdateTarget']          = 'Beperkingsclausule om de gebruiker te identificeren voor bijwerken';
-$lang['delUserGroup']          = 'SQL commando om een gebruiker uit een bepaalde groep te verwijderen';
-$lang['getGroupID']            = 'SQL commando om de primaire sletel van een bepaalde groep op te halen';
-$lang['debug_o_0']             = 'geen';
-$lang['debug_o_1']             = 'alleen bij fouten';
-$lang['debug_o_2']             = 'alle SQL queries';
diff --git a/wiki/lib/plugins/authmysql/lang/no/lang.php b/wiki/lib/plugins/authmysql/lang/no/lang.php
deleted file mode 100644
index 38377b5..0000000
--- a/wiki/lib/plugins/authmysql/lang/no/lang.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Arne Hanssen <arne.hanssen@getmail.no>
- */
-$lang['connectfail']           = 'Klarte ikke koble til databasen.';
-$lang['userexists']            = 'Beklager, men en bruker med dette brukernavnet fins fra før.';
-$lang['usernotexists']         = 'Beklager med bruker fins ikke.';
-$lang['writefail']             = 'Klarte ikke endre brukerdata. Dette bør meldes til wikiens administrator';
diff --git a/wiki/lib/plugins/authmysql/lang/no/settings.php b/wiki/lib/plugins/authmysql/lang/no/settings.php
deleted file mode 100644
index 6d4134f..0000000
--- a/wiki/lib/plugins/authmysql/lang/no/settings.php
+++ /dev/null
@@ -1,44 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Patrick <spill.p@hotmail.com>
- * @author Arne Hanssen <arne.hanssen@getmail.no>
- * @author Arne Hanssen <arnehans@getmail.no>
- */
-$lang['server']                = 'Din MySQL-server';
-$lang['user']                  = 'Ditt MySQL-brukernavn';
-$lang['password']              = 'Passord til brukeren';
-$lang['database']              = 'Database som skal brukes';
-$lang['charset']               = 'Tegnsettet som datasen bruker';
-$lang['debug']                 = 'Vis tilleggsinformasjon for feilsøking';
-$lang['forwardClearPass']      = 'Videresendt passord i klartekst til SQL-uttrykket under, i stedet for å bruke det krypterte passordet';
-$lang['TablesToLock']          = 'Kommaseparert liste over tabeller som må låses ved skriveopperasjoner';
-$lang['checkPass']             = 'SQL-uttrykk for å sjekke passord';
-$lang['getUserInfo']           = 'SQL-uttrykk for å hente informasjon om bruker';
-$lang['getGroups']             = 'SQL-uttrykk for å hente gruppene en bruker tilhører';
-$lang['getUsers']              = 'SQL-utrykk for å liste alle brukere';
-$lang['FilterLogin']           = 'SQL-utrykk for å filtrere brukere etter brukernavn';
-$lang['FilterName']            = 'SQL-utrykk for å filtrere brukere etter fult navn';
-$lang['FilterEmail']           = 'SQL-utrykk for å filtrere brukere etter e-postadresse';
-$lang['FilterGroup']           = 'SQL-uttrykk for å filtrere brukere etter hvilken grupper de tilhører';
-$lang['SortOrder']             = 'SQL-utrykk for å sortere brukere';
-$lang['addUser']               = 'SQL-utrykk for å legge til en ny bruker ';
-$lang['addGroup']              = 'SQL-utrykk for å legge til en ny gruppe';
-$lang['addUserGroup']          = 'SQL-uttrykk for å legge til en bruker i en eksisterende gruppe';
-$lang['delGroup']              = 'SQL-uttrykk for å fjerne en gruppe';
-$lang['getUserID']             = 'SQL-uttrykk for å hente primærnøkkel for en bruker';
-$lang['delUser']               = 'SQL-utrykk for å slette en bruker';
-$lang['delUserRefs']           = 'SQL-utrykk for å fjerne en bruke fra alle grupper';
-$lang['updateUser']            = 'SQL-uttrykk for å oppdatere en brukerprofil';
-$lang['UpdateLogin']           = 'Update-utrykk for å oppdatere brukernavn';
-$lang['UpdatePass']            = 'Update-utrykk for å oppdatere brukers passord';
-$lang['UpdateEmail']           = 'Update-utrykk for å oppdatere brukers e-postadresse';
-$lang['UpdateName']            = 'Update-utrykk for å oppdatere brukers fulle navn';
-$lang['UpdateTarget']          = 'Limit-uttrykk for å identifisere brukeren ved oppdatering';
-$lang['delUserGroup']          = 'SQL-uttrykk for å fjerne en bruker fra en gitt gruppe';
-$lang['getGroupID']            = 'SQL-uttrykk for å hente primærnøkkel for en gitt gruppe ';
-$lang['debug_o_0']             = 'ingen';
-$lang['debug_o_1']             = 'bare ved feil';
-$lang['debug_o_2']             = 'alle SQL-spørringer';
diff --git a/wiki/lib/plugins/authmysql/lang/pl/lang.php b/wiki/lib/plugins/authmysql/lang/pl/lang.php
deleted file mode 100644
index 14f645e..0000000
--- a/wiki/lib/plugins/authmysql/lang/pl/lang.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Wojciech Lichota <wojciech@lichota.pl>
- */
-$lang['connectfail']           = 'Nie można połączyć się z bazą danych.';
-$lang['userexists']            = 'Niestety, użytkownik o tym loginie już istnieje.';
-$lang['usernotexists']         = 'Niestety, taki użytkownik nie istnieje.';
-$lang['writefail']             = 'Nie można zmodyfikować danych użytkownika. Proszę poinformować administratora Wiki.';
diff --git a/wiki/lib/plugins/authmysql/lang/pl/settings.php b/wiki/lib/plugins/authmysql/lang/pl/settings.php
deleted file mode 100644
index e54372e..0000000
--- a/wiki/lib/plugins/authmysql/lang/pl/settings.php
+++ /dev/null
@@ -1,45 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Wojciech Lichota <wojciech@lichota.pl>
- * @author Paweł Jan Czochański <czochanski@gmail.com>
- * @author Mati <mackosa@wp.pl>
- * @author Maciej Helt <geraldziu@gmail.com>
- */
-$lang['server']                = 'Twój server MySQL';
-$lang['user']                  = 'Nazwa użytkownika MySQL';
-$lang['password']              = 'Hasło dla powyższego użytkownika';
-$lang['database']              = 'Używana baza danych';
-$lang['charset']               = 'Zestaw znaków uzyty w bazie danych';
-$lang['debug']                 = 'Wyświetlaj dodatkowe informacje do debugowania.';
-$lang['forwardClearPass']      = 'Zamiast używać opcji passcrypt, przekazuj hasła użytkowników jako czysty tekst do poniższej instrukcji SQL';
-$lang['TablesToLock']          = 'Rozdzielana przecinkami lista tabel, które powinny być blokowane podczas operacji zapisu';
-$lang['checkPass']             = 'Zapytanie SQL wykorzystywane do sprawdzania haseł.';
-$lang['getUserInfo']           = 'Zapytanie SQL zwracające informacje o użytkowniku';
-$lang['getGroups']             = 'Zapytanie SQL przynależność do grup danego użytkownika';
-$lang['getUsers']              = 'Zapytanie SQL zwracające listę wszystkich użytkowników';
-$lang['FilterLogin']           = 'Klauzula SQL używana do filtrowania użytkowników na podstawie ich loginu';
-$lang['FilterName']            = 'Klauzula SQL używana do filtrowania użytkowników na podstawie ich pełnej nazwy';
-$lang['FilterEmail']           = 'Klauzula SQL używana do filtrowania użytkowników na podstawie ich adresu email';
-$lang['FilterGroup']           = 'Klauzula SQL używana do filtrowania użytkowników na podstawie ich przynależności do grup';
-$lang['SortOrder']             = 'Klauzula SQL używana do sortowania użytkowników';
-$lang['addUser']               = 'Zapytanie SQL dodające nowego użytkownika';
-$lang['addGroup']              = 'Instrukcja SQL dodajÄ…ca nowÄ… grupÄ™';
-$lang['addUserGroup']          = 'Instrukcja SQL dodająca użytkownika do istniejącej grupy';
-$lang['delGroup']              = 'Instrukcja SQL usuwajÄ…ca grupÄ™';
-$lang['getUserID']             = 'Instrukcja SQL pobierająca klucz główny użytkownika';
-$lang['delUser']               = 'Instrukcja SQL usuwająca użytkownika';
-$lang['delUserRefs']           = 'Instrukcja SQL usuwająca użytkownika ze wszystkich grup';
-$lang['updateUser']            = 'Instrukcja SQL aktualizująca profil użytkownika';
-$lang['UpdateLogin']           = 'Polecenie służące do aktualizacji loginu użytkownika';
-$lang['UpdatePass']            = 'Polecenie służące do aktualizacji hasła użytkownika';
-$lang['UpdateEmail']           = 'Polecenie służące do aktualizacji e-mailu użytkownika';
-$lang['UpdateName']            = 'Polecenie służące do aktualizacji imienia i nazwiska użytkownika';
-$lang['UpdateTarget']          = 'Instrukcja limitu do identyfikacji użytkownika podczas aktualizacji';
-$lang['delUserGroup']          = 'Instrukcja SQL usuwająca użytkownika ze wskazanej grupy';
-$lang['getGroupID']            = 'Instrukcja SQL pobierający klucz główny wskazanej grupy';
-$lang['debug_o_0']             = 'brak';
-$lang['debug_o_1']             = 'tylko w przypadku błędów';
-$lang['debug_o_2']             = 'wszystkie zapytania SQL';
diff --git a/wiki/lib/plugins/authmysql/lang/pt-br/lang.php b/wiki/lib/plugins/authmysql/lang/pt-br/lang.php
deleted file mode 100644
index 02c4b9e..0000000
--- a/wiki/lib/plugins/authmysql/lang/pt-br/lang.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Frederico Gonçalves Guimarães <frederico@teia.bio.br>
- */
-$lang['connectfail']           = 'Não foi possível conectar ao banco de dados.';
-$lang['userexists']            = 'Desculpe, mas já existe esse nome de usuário.';
-$lang['usernotexists']         = 'Desculpe, mas esse usuário não existe.';
-$lang['writefail']             = 'Não foi possível modificar os dados do usuário. Por favor, informe ao administrador do Wiki.';
diff --git a/wiki/lib/plugins/authmysql/lang/pt-br/settings.php b/wiki/lib/plugins/authmysql/lang/pt-br/settings.php
deleted file mode 100644
index cc637d6..0000000
--- a/wiki/lib/plugins/authmysql/lang/pt-br/settings.php
+++ /dev/null
@@ -1,43 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Victor Westmann <victor.westmann@gmail.com>
- * @author Frederico Guimarães <frederico@teia.bio.br>
- */
-$lang['server']                = 'Seu servidor MySQL';
-$lang['user']                  = 'usuário MySQL';
-$lang['password']              = 'Senha do usuário acima';
-$lang['database']              = 'Base de dados para usar';
-$lang['charset']               = 'Codificação de caracter usado na base de dados';
-$lang['debug']                 = 'Mostrar informações adicionais de depuração';
-$lang['forwardClearPass']      = 'Passar senhas de usuários como texto puro para comandos SQL abaixo, ao invés de usar opção passcrypt';
-$lang['TablesToLock']          = 'Lista separada por vírgulas para tabelas que devem estar travadas em operações de escrita';
-$lang['checkPass']             = 'Comandos SQL para verificar senhas';
-$lang['getUserInfo']           = 'Comando SQL para obter informações de usuário';
-$lang['getGroups']             = 'Comando SQL para obter as credenciais de grupo de um usuário';
-$lang['getUsers']              = 'Comando SQL para listar todos os usuários';
-$lang['FilterLogin']           = 'Comando SQL para filtrar usuários pelo login';
-$lang['FilterName']            = 'Cláusula SQL para filtrar usuários por nome completo';
-$lang['FilterEmail']           = 'Cláusula SQL para filtrar usuários por endereço de email';
-$lang['FilterGroup']           = 'Cláusula SQL para filtrar usuários por membros de grupos';
-$lang['SortOrder']             = 'Cláusula SQL para ordenar usuários';
-$lang['addUser']               = 'Comando SQL para adicionar um novo usuário';
-$lang['addGroup']              = 'Comando SQL para adicionar um novo grupo';
-$lang['addUserGroup']          = 'Comando SQL para adicionar um usuário a um determinado grupo';
-$lang['delGroup']              = 'Comando SQL para remover um grupo';
-$lang['getUserID']             = 'Comando SQL para obter a chave primária de um usuário';
-$lang['delUser']               = 'Comando SQL para apagar um usuário';
-$lang['delUserRefs']           = 'Comando SQL para apagar um usuário de todos os grupos';
-$lang['updateUser']            = 'Comando SQL para atualizar perfil de usuário';
-$lang['UpdateLogin']           = 'Comando SQL para atualizar o login de um usuário';
-$lang['UpdatePass']            = 'Cláusula de atualização para atualizar senha de usuário';
-$lang['UpdateEmail']           = 'Cláusula de atualização para atualizar email do usuário';
-$lang['UpdateName']            = 'Cláusula de atualização para atualizar nome completo do usuário';
-$lang['UpdateTarget']          = 'Limitar cláusula para identificar usuário quando estiver atualizando';
-$lang['delUserGroup']          = 'Comando SQL para remover um usuário de um grupo determinado';
-$lang['getGroupID']            = 'Comando SQL para obter a chave primária de um grupo determinado';
-$lang['debug_o_0']             = 'nenhum';
-$lang['debug_o_1']             = 'apenas em erros';
-$lang['debug_o_2']             = 'todas as queries SQL';
diff --git a/wiki/lib/plugins/authmysql/lang/pt/lang.php b/wiki/lib/plugins/authmysql/lang/pt/lang.php
deleted file mode 100644
index 9e8bd6c..0000000
--- a/wiki/lib/plugins/authmysql/lang/pt/lang.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Paulo Carmino <contato@paulocarmino.com>
- * @author Guilherme Sá <guilherme.sa@hotmail.com>
- */
-$lang['connectfail']           = 'Falha ao conectar com o banco de dados.';
-$lang['userexists']            = 'Desculpe, esse login já está sendo usado.';
-$lang['usernotexists']         = 'Desculpe, esse login não existe.';
-$lang['writefail']             = 'Incapaz de modificar dados do usuário. Favor informar ao Wiki-Admin.';
diff --git a/wiki/lib/plugins/authmysql/lang/pt/settings.php b/wiki/lib/plugins/authmysql/lang/pt/settings.php
deleted file mode 100644
index 2488487..0000000
--- a/wiki/lib/plugins/authmysql/lang/pt/settings.php
+++ /dev/null
@@ -1,43 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author André Neves <drakferion@gmail.com>
- * @author Guido Salatino <guidorafael23@gmail.com>
- */
-$lang['server']                = 'O seu servidor de MySQL';
-$lang['user']                  = 'Utilizador MySQL';
-$lang['password']              = 'Senha para o utilizador acima';
-$lang['database']              = 'Base de dados a usar';
-$lang['charset']               = 'Conjunto de caracteres usado na base de dados';
-$lang['debug']                 = 'Mostrar informação adicional de debug';
-$lang['forwardClearPass']      = 'Passe as senhas do usuário como texto puro para as instruções SQL abaixo, em vez de usar a opção passcrypt';
-$lang['TablesToLock']          = 'Lista de tabelas, separadas por virgula, que devem ser bloqueadas em operações de escrita';
-$lang['checkPass']             = 'Instrução SQL para verificar senhas';
-$lang['getUserInfo']           = 'Instrução SQL para recuperar informações do usuário';
-$lang['getGroups']             = 'Instrução SQL para recuperar os usuários participantes de um grupo';
-$lang['getUsers']              = 'Instrução SQL para listar todos usuários';
-$lang['FilterLogin']           = 'Cláusula SQL para filtrar utilizadores por tipo de login';
-$lang['FilterName']            = 'Cláusula SQL para filtrar utilizadores por nome completo';
-$lang['FilterEmail']           = 'Cláusula SQL para filtrar utilizadores por endereço de email';
-$lang['FilterGroup']           = 'Cláusula SQL para filtrar utilizadores por pertença a grupo';
-$lang['SortOrder']             = 'Cláusula SQL para ordenar utilizadores';
-$lang['addUser']               = 'Instrução SQL para adicionar novo usuário';
-$lang['addGroup']              = 'Instrução SQL para adicionar um novo grupo';
-$lang['addUserGroup']          = 'Instrução SQL para adicionar um usuário a um grupo existente';
-$lang['delGroup']              = 'Instrução SQL para remover um grupo';
-$lang['getUserID']             = 'Instrução SQL para obter a chave principal de um usuário';
-$lang['delUser']               = 'Instrução SQL para excluir um usuário';
-$lang['delUserRefs']           = 'Instrução SQL para excluir um usuário de todos os grupos';
-$lang['updateUser']            = 'Instrução SQL para atualizar um perfil de usuário';
-$lang['UpdateLogin']           = 'Cláusula de atualização para atualizar o nome de login do utilizador';
-$lang['UpdatePass']            = 'Cláusula de atualização para atualizar a senha do utilizador';
-$lang['UpdateEmail']           = 'Cláusula de atualização para atualizar o endereço de email do utilizador';
-$lang['UpdateName']            = 'Cláusula de atualização para atualizar o nome completo do utilizador';
-$lang['UpdateTarget']          = 'Cláusula limite para identificar o usuário ao atualizar';
-$lang['delUserGroup']          = 'Instrução SQL para remover um usuário de um determinado grupo';
-$lang['getGroupID']            = 'Instrução SQL para obter a chave principal de um determinado grupo';
-$lang['debug_o_0']             = 'nenhum';
-$lang['debug_o_1']             = 'só aquando de erros';
-$lang['debug_o_2']             = 'todas as consultas SQL';
diff --git a/wiki/lib/plugins/authmysql/lang/ru/lang.php b/wiki/lib/plugins/authmysql/lang/ru/lang.php
deleted file mode 100644
index 27153fd..0000000
--- a/wiki/lib/plugins/authmysql/lang/ru/lang.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Takumo <9206984@mail.ru>
- * @author Aleksandr Selivanov <alexgearbox@yandex.ru>
- */
-$lang['connectfail']           = 'Ошибка ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ñ Ð±Ð°Ð·Ð¾Ð¹ данных.';
-$lang['userexists']            = 'Извините, пользователь Ñ Ñ‚Ð°ÐºÐ¸Ð¼ логином уже ÑущеÑтвует.';
-$lang['usernotexists']         = 'Извините, такой пользователь не ÑущеÑтвует.';
-$lang['writefail']             = 'Ðевозможно изменить данные пользователÑ. Сообщите об Ñтом админиÑтратору вики.';
diff --git a/wiki/lib/plugins/authmysql/lang/ru/settings.php b/wiki/lib/plugins/authmysql/lang/ru/settings.php
deleted file mode 100644
index 8109377..0000000
--- a/wiki/lib/plugins/authmysql/lang/ru/settings.php
+++ /dev/null
@@ -1,45 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Yuriy Skalko <yuriy.skalko@gmail.com>
- * @author Ivan I. Udovichenko (sendtome@mymailbox.pp.ua)
- * @author Aleksandr Selivanov <alexgearbox@gmail.com>
- * @author Type-kun <workwork-1@yandex.ru>
- */
-$lang['server']                = 'Ваш MySQL-Ñервер';
-$lang['user']                  = 'Ð˜Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ MySQL';
-$lang['password']              = 'Пароль Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ MySQL';
-$lang['database']              = 'Ð˜Ð¼Ñ Ð±Ð°Ð·Ñ‹ данных';
-$lang['charset']               = 'ИÑпользуемый набор Ñимволов в базе данных';
-$lang['debug']                 = 'Отображение дополнительной отладочной информации';
-$lang['forwardClearPass']      = 'Передача Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚Ñ‹Ð¼ текÑтом, вмеÑто зашифрованной формы, в иÑпользуемом выражении SQL';
-$lang['TablesToLock']          = 'Имена таблиц (через запÑтую), которым необходимо ограничение Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи';
-$lang['checkPass']             = 'Выражение SQL, оÑущеÑтвлÑющее проверку паролÑ';
-$lang['getUserInfo']           = 'Выражение SQL, оÑущеÑтвлÑющее извлечение информации о пользователе';
-$lang['getGroups']             = 'Выражение SQL, оÑущеÑтвлÑющее извлечение информации о членÑтве пользователе в группах';
-$lang['getUsers']              = 'Выражение SQL, оÑущеÑтвлÑющее извлечение полного ÑпиÑка пользователей';
-$lang['FilterLogin']           = 'Выражение SQL, оÑущеÑтвлÑющее фильтрацию пользователей по логину';
-$lang['FilterName']            = 'Выражение SQL, оÑущеÑтвлÑющее фильтрацию пользователей по полному имени';
-$lang['FilterEmail']           = 'Выражение SQL, оÑущеÑтвлÑющее фильтрацию пользователей по адреÑу Ñлектронной почты';
-$lang['FilterGroup']           = 'Выражение SQL, оÑущеÑтвлÑющее фильтрацию пользователей ÑоглаÑно членÑтву в группе';
-$lang['SortOrder']             = 'Выражение SQL, оÑущеÑтвлÑющее Ñортировку пользователей';
-$lang['addUser']               = 'Выражение SQL, оÑущеÑтвлÑющее добавление нового пользователÑ';
-$lang['addGroup']              = 'Выражение SQL, оÑущеÑтвлÑющее добавление новой группы';
-$lang['addUserGroup']          = 'Выражение SQL, оÑущеÑтвлÑющее добавление Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð² ÑущеÑтвующую группу';
-$lang['delGroup']              = 'Выражение SQL, оÑущеÑтвлÑющее удаление группы';
-$lang['getUserID']             = 'Выражение SQL, обеÑпечивающее получение первичного ключа пользователÑ';
-$lang['delUser']               = 'Выражение SQL, оÑущеÑтвлÑющее удаление пользователÑ';
-$lang['delUserRefs']           = 'Выражение SQL, оÑущеÑтвлÑющее удаление Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¸Ð· вÑех групп';
-$lang['updateUser']            = 'Выражение SQL, оÑущеÑтвлÑющее обновление Ð¿Ñ€Ð¾Ñ„Ð¸Ð»Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ';
-$lang['UpdateLogin']           = 'УÑловие Ð´Ð»Ñ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¸Ð¼ÐµÐ½Ð¸ пользователÑ';
-$lang['UpdatePass']            = 'УÑловие Ð´Ð»Ñ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ';
-$lang['UpdateEmail']           = 'УÑловие Ð´Ð»Ñ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð°Ð´Ñ€ÐµÑа Ñлектронной почты пользователÑ';
-$lang['UpdateName']            = 'УÑловие Ð´Ð»Ñ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð»Ð½Ð¾Ð³Ð¾ имени пользователÑ';
-$lang['UpdateTarget']          = 'Выражение \'LIMIT\' Ð´Ð»Ñ Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ð¸ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¿Ñ€Ð¸ обновлении';
-$lang['delUserGroup']          = 'Выражение SQL, оÑущеÑтвлÑющее удаление Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¸Ð· указанной группы';
-$lang['getGroupID']            = 'Выражение SQL, обеÑпечивающее получение первичного ключа указанной группы';
-$lang['debug_o_0']             = 'ни один из вариантов';
-$lang['debug_o_1']             = 'только при возникновении ошибок';
-$lang['debug_o_2']             = 'вÑе SQL-запроÑÑ‹';
diff --git a/wiki/lib/plugins/authmysql/lang/sk/lang.php b/wiki/lib/plugins/authmysql/lang/sk/lang.php
deleted file mode 100644
index 9d792b7..0000000
--- a/wiki/lib/plugins/authmysql/lang/sk/lang.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Martin Michalek <michalek.dev@gmail.com>
- */
-$lang['connectfail']           = 'Nepodarilo sa pripojiť k databáze.';
-$lang['userexists']            = 'Ľutujem, ale používateľ s týmto prihlasovacím menom už existuje.';
-$lang['usernotexists']         = 'Ľutujem, daný používateľ neexistuje.';
-$lang['writefail']             = 'Nie je možné zmeniť údaje používateľa, informujte prosím administrátora Wiki.';
diff --git a/wiki/lib/plugins/authmysql/lang/sk/settings.php b/wiki/lib/plugins/authmysql/lang/sk/settings.php
deleted file mode 100644
index 4def5d6..0000000
--- a/wiki/lib/plugins/authmysql/lang/sk/settings.php
+++ /dev/null
@@ -1,42 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Martin Michalek <michalek.dev@gmail.com>
- */
-$lang['server']                = 'MySQL server';
-$lang['user']                  = 'Meno používateľa MySQL';
-$lang['password']              = 'Heslo pre vyššie uvedeného používateľa';
-$lang['database']              = 'Použiť databázu';
-$lang['charset']               = 'Znaková sada databázy';
-$lang['debug']                 = 'ZobraziÅ¥ dodatoÄné ladiace informácie';
-$lang['forwardClearPass']      = 'Posielať heslo ako nezakódovaný text nižšie uvedenému SQL príkazu namiesto použitia kódovania';
-$lang['TablesToLock']          = 'Zoznam tabuliek oddelených Äiarkou, ktoré by mali byÅ¥ uzamknuté pri operáciách zápisu';
-$lang['checkPass']             = 'SQL príkaz pre kontrolu hesla';
-$lang['getUserInfo']           = 'SQL príkaz pre získanie informácií o používateľovi';
-$lang['getGroups']             = 'SQL príkaz pre získanie informácií o skupinách používateľa';
-$lang['getUsers']              = 'SQL príkaz pre získanie zoznamu používateľov';
-$lang['FilterLogin']           = 'SQL podmienka pre filtrovanie používateľov podľa prihlasovacieho mena';
-$lang['FilterName']            = 'SQL podmienka pre filtrovanie používateľov podľa mena a priezviska';
-$lang['FilterEmail']           = 'SQL podmienka pre filtrovanie používateľov podľa emailovej adresy';
-$lang['FilterGroup']           = 'SQL podmienka pre filtrovanie používateľov podľa skupiny';
-$lang['SortOrder']             = 'SQL podmienka pre usporiadenia používateľov';
-$lang['addUser']               = 'SQL príkaz pre pridanie nového používateľa';
-$lang['addGroup']              = 'SQL príkaz pre pridanie novej skupiny';
-$lang['addUserGroup']          = 'SQL príkaz pre pridanie používateľa do existujúcej skupiny';
-$lang['delGroup']              = 'SQL príkaz pre zrušenie skupiny';
-$lang['getUserID']             = 'SQL príkaz pre získanie primárneho klúÄa používateľa';
-$lang['delUser']               = 'SQL príkaz pre zrušenie používateľa';
-$lang['delUserRefs']           = 'SQL príkaz pre vyradenie používateľa zo všetkých skupín';
-$lang['updateUser']            = 'SQL príkaz pre aktualizáciu informácií o používateľovi';
-$lang['UpdateLogin']           = 'SQL podmienka pre aktualizáciu prihlasovacieho mena používateľa';
-$lang['UpdatePass']            = 'SQL podmienka pre aktualizáciu hesla používateľa';
-$lang['UpdateEmail']           = 'SQL podmienka pre aktualizáciu emailovej adresy používateľa';
-$lang['UpdateName']            = 'SQL podmienka pre aktualizáciu mena a priezviska používateľa';
-$lang['UpdateTarget']          = 'Podmienka identifikácie používateľa pri aktualizácii';
-$lang['delUserGroup']          = 'SQL príkaz pre vyradenie používateľa z danej skupiny';
-$lang['getGroupID']            = 'SQL príkaz pre získanie primárneho kľúÄa skupiny';
-$lang['debug_o_0']             = 'žiadne';
-$lang['debug_o_1']             = 'iba pri chybách';
-$lang['debug_o_2']             = 'všetky SQL dopyty';
diff --git a/wiki/lib/plugins/authmysql/lang/sl/settings.php b/wiki/lib/plugins/authmysql/lang/sl/settings.php
deleted file mode 100644
index 8e0b58c..0000000
--- a/wiki/lib/plugins/authmysql/lang/sl/settings.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Matej UrbanÄiÄ <mateju@svn.gnome.org>
- */
-$lang['database']              = 'Podatkovna zbirka za uporabo';
-$lang['debug_o_0']             = 'brez';
-$lang['debug_o_1']             = 'le ob napakah';
-$lang['debug_o_2']             = 'vse poizvedbe SQL';
diff --git a/wiki/lib/plugins/authmysql/lang/sr/lang.php b/wiki/lib/plugins/authmysql/lang/sr/lang.php
deleted file mode 100644
index 7ec2fb6..0000000
--- a/wiki/lib/plugins/authmysql/lang/sr/lang.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Марко М. КоÑтић <marko.m.kostic@gmail.com>
- */
-$lang['connectfail']           = 'ÐиÑам уÑпео да Ñе повежем на базу.';
-$lang['userexists']            = 'ÐажалоÑÑ‚, кориÑник Ñа таквом пријавом већ поÑтоји.';
-$lang['usernotexists']         = 'ÐажалоÑÑ‚, тај кориÑник не поÑтоји.';
-$lang['writefail']             = 'Ðе могу да променим кориÑничке податке. ОбавеÑтите админа викија';
diff --git a/wiki/lib/plugins/authmysql/lang/sr/settings.php b/wiki/lib/plugins/authmysql/lang/sr/settings.php
deleted file mode 100644
index eabdfbc..0000000
--- a/wiki/lib/plugins/authmysql/lang/sr/settings.php
+++ /dev/null
@@ -1,42 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Марко М. КоÑтић <marko.m.kostic@gmail.com>
- */
-$lang['server']                = 'Ваш MySQL Ñервер';
-$lang['user']                  = 'MySQL кориÑничко име';
-$lang['password']              = 'Лозинка кориÑника изнад';
-$lang['database']              = 'База коју треба кориÑтити';
-$lang['charset']               = 'Кодни раÑпоред коришћен у бази';
-$lang['debug']                 = 'Прикажи додатне податке за поправљање грешака';
-$lang['forwardClearPass']      = 'ПренеÑи кориÑничке лозинке као чиÑÑ‚ текÑÑ‚ у SQL изјавама иÑпод умеÑто коришћења passcrypt опције';
-$lang['TablesToLock']          = 'СпиÑак табела одвојених размаком које треба закључати приликом упиÑивања';
-$lang['checkPass']             = 'SQL упит за проверу лозинки';
-$lang['getUserInfo']           = 'SQL упит за добављање података о кориÑнику';
-$lang['getGroups']             = 'SQL за добављање кориÑничких учлањења у групе';
-$lang['getUsers']              = 'SQL упит за излиÑтавање Ñвих кориÑника';
-$lang['FilterLogin']           = 'SQL уÑлов за филтрирање кориÑника по имену за пријаву';
-$lang['FilterName']            = 'SQL уÑлов за филтрирање кориÑника по пуном имену';
-$lang['FilterEmail']           = 'SQL уÑлов за филтрирање кориÑника по мејл адреÑи';
-$lang['FilterGroup']           = 'SQL уÑлов за филтрирање кориÑника по чланÑтву у групама';
-$lang['SortOrder']             = 'SQL уÑлов за Ñортирање кориÑника';
-$lang['addUser']               = 'SQL упит за додавање новог кориÑника';
-$lang['addGroup']              = 'SQL упит за додавање нове групе';
-$lang['addUserGroup']          = 'SQL упит за додавање кориÑника у поÑтојећу групу';
-$lang['delGroup']              = 'SQL упит за уклањање групе';
-$lang['getUserID']             = 'SQL упит за добављање примарног кључа кориÑника';
-$lang['delUser']               = 'SQL упит за бриÑање кориÑника';
-$lang['delUserRefs']           = 'SQL упит за бриÑање кориÑника из Ñвих група';
-$lang['updateUser']            = 'SQL упит за ажурирање кориÑничког профила';
-$lang['UpdateLogin']           = 'УÑлов за ажурирање кориÑничког имена за пријаву';
-$lang['UpdatePass']            = 'УÑлов за ажурирање кориÑничке лозинке';
-$lang['UpdateEmail']           = 'УÑлов за ажурирање кориÑничке мејл адреÑе';
-$lang['UpdateName']            = 'УÑлов за ажурирање кориÑничког пуног имена';
-$lang['UpdateTarget']          = 'Ограничи уÑлов да би Ñе утврдио кориÑник приликом ажурирања';
-$lang['delUserGroup']          = 'SQL упит за уклањање кориÑника из дате групе';
-$lang['getGroupID']            = 'SQL упит за добављање примарног кључа дате групе';
-$lang['debug_o_0']             = 'ништа';
-$lang['debug_o_1']             = 'Ñамо на грешкама';
-$lang['debug_o_2']             = 'Ñви SQL упити';
diff --git a/wiki/lib/plugins/authmysql/lang/sv/lang.php b/wiki/lib/plugins/authmysql/lang/sv/lang.php
deleted file mode 100644
index 9c97bd7..0000000
--- a/wiki/lib/plugins/authmysql/lang/sv/lang.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Tor Härnqvist <tor@harnqvist.se>
- */
-$lang['connectfail']           = 'Kunde inte ansluta till databas.';
-$lang['userexists']            = 'Tyvärr, en användare med denna inloggning existerar redan.';
-$lang['usernotexists']         = 'Tyvärr, den användaren existerar inte.';
-$lang['writefail']             = 'Kunde inte ändra användardata. Var god inormera Wiki-administratören.';
diff --git a/wiki/lib/plugins/authmysql/lang/sv/settings.php b/wiki/lib/plugins/authmysql/lang/sv/settings.php
deleted file mode 100644
index aa76b89..0000000
--- a/wiki/lib/plugins/authmysql/lang/sv/settings.php
+++ /dev/null
@@ -1,29 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Tor Härnqvist <tor@harnqvist.se>
- * @author Smorkster Andersson smorkster@gmail.com
- */
-$lang['server']                = 'Din MySQL server';
-$lang['user']                  = 'Användarnamn för MySQL';
-$lang['password']              = 'Lösenord för användare ovan';
-$lang['database']              = 'Databas att använda';
-$lang['charset']               = 'Teckenuppsättning som används i databas';
-$lang['debug']                 = 'Visa ytterligare felsökningsinformation';
-$lang['forwardClearPass']      = 'Skicka användares lösenord i klartext till SQL sats nedan, istället för att använda passcrypt alternativet';
-$lang['checkPass']             = 'SQL sats för kontroll av lösenord';
-$lang['getUserInfo']           = 'SQL sats för att hämta användarinformation';
-$lang['getGroups']             = 'SQL sats för att hämta en användares gruppmedlemskap';
-$lang['getUsers']              = 'SQL sats för att lista alla användare';
-$lang['addUser']               = 'SQL sats för att lägga till en användare';
-$lang['addGroup']              = 'SQL sats för att lägga till en grupp';
-$lang['addUserGroup']          = 'SQL sats för att lägga till en användare i en existerande grupp';
-$lang['delGroup']              = 'SQL sats för att ta bort en grupp';
-$lang['delUser']               = 'SQL sats för att ta bort en användare';
-$lang['delUserRefs']           = 'SQL sats för att ta bort en användare från alla grupper';
-$lang['updateUser']            = 'SQL sats för att uppdatera en användarprofil';
-$lang['delUserGroup']          = 'SQL sats för att ta bort en användare från en angiven grupp';
-$lang['debug_o_0']             = 'ingen';
-$lang['debug_o_1']             = 'enbart för fel';
diff --git a/wiki/lib/plugins/authmysql/lang/tr/lang.php b/wiki/lib/plugins/authmysql/lang/tr/lang.php
deleted file mode 100644
index b5c7b2f..0000000
--- a/wiki/lib/plugins/authmysql/lang/tr/lang.php
+++ /dev/null
@@ -1,9 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author Mete Cuma <mcumax@gmail.com>
- */
-$lang['connectfail']           = 'Veritabanına bağlantı kurulamadı.';
-$lang['usernotexists']         = 'Üzgünüz, kullanıcı mevcut değil.';
diff --git a/wiki/lib/plugins/authmysql/lang/tr/settings.php b/wiki/lib/plugins/authmysql/lang/tr/settings.php
deleted file mode 100644
index ca6a7c6..0000000
--- a/wiki/lib/plugins/authmysql/lang/tr/settings.php
+++ /dev/null
@@ -1,41 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author ilker rifat kapaç <irifat@gmail.com>
- * @author İlker R. Kapaç <irifat@gmail.com>
- */
-$lang['server']                = 'Sizin MySQL sunucunuz';
-$lang['user']                  = 'MySQL kullanıcısının adı';
-$lang['password']              = 'Üstteki kullanıcı için şifre';
-$lang['database']              = 'Kullanılacak veritabanı';
-$lang['charset']               = 'Veritabanında kullanılacak karakter seti';
-$lang['debug']                 = 'İlave hata ayıklama bilgisini görüntüle';
-$lang['checkPass']             = 'Åžifreleri kontrol eden SQL ifadesi';
-$lang['getUserInfo']           = 'Kullanıcı bilgilerini getiren SQL ifadesi';
-$lang['getGroups']             = 'Kullanıcının grup üyeliklerini getiren SQL ifadesi';
-$lang['getUsers']              = 'Tüm kullanıcıları listeleyen SQL ifadesi';
-$lang['FilterLogin']           = 'Kullanıcıları giriş yaptıkları isimlere göre süzmek için SQL şartı';
-$lang['FilterName']            = 'Kullanıcıları tam isimlerine göre süzmek için SQL şartı';
-$lang['FilterEmail']           = 'Kullanıcıları e-posta adreslerine göre süzmek için SQL şartı';
-$lang['FilterGroup']           = 'Kullanıcıları üye oldukları grup isimlerine göre süzmek için SQL şartı';
-$lang['SortOrder']             = 'Kullanıcıları sıralamak için SQL şartı';
-$lang['addUser']               = 'Yeni bir kullanıcı ekleyen SQL ifadesi';
-$lang['addGroup']              = 'Yeni bir grup ekleyen SQL ifadesi';
-$lang['addUserGroup']          = 'Varolan gruba yeni bir kullanıcı ekleyen SQL ifadesi';
-$lang['delGroup']              = 'Grup silen SQL ifadesi';
-$lang['getUserID']             = 'Kullanıcının birincil anahtarını getiren SQL ifadesi';
-$lang['delUser']               = 'Kullanıcı silen SQL ifadesi';
-$lang['delUserRefs']           = 'Kullanıcıyı tüm gruplardan çıkartan SQL ifadesi';
-$lang['updateUser']            = 'Kullanıcı profilini güncelleyen SQL ifadesi';
-$lang['UpdateLogin']           = 'Kullanıcının giriş yaptığı ismi güncelleyen, güncelleme şartı';
-$lang['UpdatePass']            = 'Kullanıcının  şifresini güncelleyen, güncelleme şartı';
-$lang['UpdateEmail']           = 'Kullanıcının e-posta adresini güncelleyen, güncelleme şartı';
-$lang['UpdateName']            = 'Kullanıcının tam adını güncelleyen, güncelleme şartı';
-$lang['UpdateTarget']          = 'Güncelleme esnasında kullanıcıyı belirleyen, sınır şartı';
-$lang['delUserGroup']          = 'Kullanıcıyı verilen gruptan silen SQL ifadesi';
-$lang['getGroupID']            = 'Verilen grubun birincil anahtarını getiren SQL ifadesi';
-$lang['debug_o_0']             = 'hiçbiri';
-$lang['debug_o_1']             = 'sadece hata olduÄŸunda';
-$lang['debug_o_2']             = 'tüm SQL sorguları';
diff --git a/wiki/lib/plugins/authmysql/lang/uk/lang.php b/wiki/lib/plugins/authmysql/lang/uk/lang.php
deleted file mode 100644
index e6cbaf0..0000000
--- a/wiki/lib/plugins/authmysql/lang/uk/lang.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Nina Zolotova <nina-z@i.ua>
- */
-$lang['connectfail']           = 'Ðе вдалоÑÑ Ð·\'єднатиÑÑ Ð· базою даних.';
-$lang['userexists']            = 'Вибачте, кориÑтувач з таким логіном вже Ñ–Ñнує.';
-$lang['usernotexists']         = 'Вибачте, такого кориÑтувача не Ñ–Ñнує.';
diff --git a/wiki/lib/plugins/authmysql/lang/zh-tw/settings.php b/wiki/lib/plugins/authmysql/lang/zh-tw/settings.php
deleted file mode 100644
index 3fbee15..0000000
--- a/wiki/lib/plugins/authmysql/lang/zh-tw/settings.php
+++ /dev/null
@@ -1,42 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author syaoranhinata@gmail.com
- */
-$lang['server']                = '您的 MySQL 伺æœå™¨';
-$lang['user']                  = 'MySQL 使用者å稱';
-$lang['password']              = '上述使用者的密碼';
-$lang['database']              = '使用的資料庫';
-$lang['charset']               = '資料庫使用的字符集';
-$lang['debug']                 = '顯示é¡å¤–除錯資訊';
-$lang['forwardClearPass']      = '以明文形å¼ï¼ŒæŠŠä½¿ç”¨è€…密碼傳é€ç»™ä¸‹åˆ—çš„ SQL 語å¥ï¼Œè€Œä¸ä½¿ç”¨ passcrypt 密碼加密é¸é …';
-$lang['TablesToLock']          = '在寫æ“作時需è¦éŽ–å®šçš„æ•¸æ“šè¡¨åˆ—è¡¨ï¼Œä»¥é€—è™Ÿåˆ†éš”';
-$lang['checkPass']             = '檢查密碼的 SQL 語å¥';
-$lang['getUserInfo']           = 'ç²å–使用者訊æ¯çš„ SQL 語å¥';
-$lang['getGroups']             = 'ç²å–使用者群組æˆå“¡èº«ä»½çš„ SQL 語å¥';
-$lang['getUsers']              = '把所有使用者列出的 SQL 語å¥';
-$lang['FilterLogin']           = '根據登入å稱來篩é¸ä½¿ç”¨è€…çš„ SQL å­å¥';
-$lang['FilterName']            = '根據全å來篩é¸ä½¿ç”¨è€…çš„ SQL å­å¥';
-$lang['FilterEmail']           = '根據電郵地å€ä¾†ç¯©é¸ä½¿ç”¨è€…çš„ SQL å­å¥';
-$lang['FilterGroup']           = '根據群組æˆå“¡èº«ä»½ä¾†ç¯©é¸ä½¿ç”¨è€…çš„ SQL å­å¥';
-$lang['SortOrder']             = 'å°ä½¿ç”¨è€…排åºçš„ SQL å­å¥';
-$lang['addUser']               = '增加新使用者的 SQL 語å¥';
-$lang['addGroup']              = '增加新群組的 SQL 語å¥';
-$lang['addUserGroup']          = 'æŠŠä½¿ç”¨è€…æ–°å¢žè‡³ç¾æœ‰ç¾¤çµ„çš„ SQL 語å¥';
-$lang['delGroup']              = '把群組刪除的 SQL 語å¥';
-$lang['getUserID']             = 'å–得使用者主éµçš„ SQL 語å¥';
-$lang['delUser']               = '把使用者刪除的 SQL 語å¥';
-$lang['delUserRefs']           = '把使用者從所有群組è£åˆªé™¤çš„ SQL 語å¥';
-$lang['updateUser']            = '更新使用者訊æ¯çš„ SQL 語å¥';
-$lang['UpdateLogin']           = '更新使用者登入å稱的 Update å­å¥';
-$lang['UpdatePass']            = '更新帳號密碼的 Update å­å¥';
-$lang['UpdateEmail']           = '更新使用者電郵地å€çš„ Update å­å¥';
-$lang['UpdateName']            = '更新使用者全åçš„ Update å­å¥';
-$lang['UpdateTarget']          = '在更新時識別使用者的 Limit å­å¥';
-$lang['delUserGroup']          = '把使用者從指定群組中刪除的 SQL 語å¥';
-$lang['getGroupID']            = 'å–得指定群組主éµçš„ SQL 語å¥';
-$lang['debug_o_0']             = 'ç„¡';
-$lang['debug_o_1']             = '僅在有錯誤時';
-$lang['debug_o_2']             = '所有 SQL 查詢';
diff --git a/wiki/lib/plugins/authmysql/lang/zh/lang.php b/wiki/lib/plugins/authmysql/lang/zh/lang.php
deleted file mode 100644
index d96b7ba..0000000
--- a/wiki/lib/plugins/authmysql/lang/zh/lang.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Errol <errol@hotmail.com>
- */
-$lang['connectfail']           = '连接数æ®åº“失败';
-$lang['userexists']            = '抱歉,用户å已被使用。';
-$lang['usernotexists']         = '抱歉,用户ä¸å­˜åœ¨ã€‚';
-$lang['writefail']             = '无法修改用户数æ®ã€‚请通知管ç†å‘˜';
diff --git a/wiki/lib/plugins/authmysql/lang/zh/settings.php b/wiki/lib/plugins/authmysql/lang/zh/settings.php
deleted file mode 100644
index 26ecc6b..0000000
--- a/wiki/lib/plugins/authmysql/lang/zh/settings.php
+++ /dev/null
@@ -1,42 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author lainme <lainme993@gmail.com>
- */
-$lang['server']                = '您的 MySQL æœåС噍';
-$lang['user']                  = 'MySQL 用户å';
-$lang['password']              = '上述用户的密ç ';
-$lang['database']              = '使用的数æ®åº“';
-$lang['charset']               = 'æ•°æ®åº“中使用的字符集';
-$lang['debug']                 = '显示é¢å¤–调试信æ¯';
-$lang['forwardClearPass']      = '将用户密ç ä»¥æ˜Žæ–‡å½¢å¼ä¼ é€ç»™ä¸‹é¢çš„ SQL 语å¥ï¼Œè€Œä¸ä½¿ç”¨ passcrypt 密ç åР坆选项';
-$lang['TablesToLock']          = '在写æ“作时需è¦é”定的数æ®è¡¨åˆ—表,以逗å·åˆ†éš”';
-$lang['checkPass']             = '检查密ç çš„ SQL 语å¥';
-$lang['getUserInfo']           = '获å–用户信æ¯çš„ SQL 语å¥';
-$lang['getGroups']             = '或许用户的组æˆå‘˜èº«ä»½çš„ SQL 语å¥';
-$lang['getUsers']              = '列出所有用户的 SQL 语å¥';
-$lang['FilterLogin']           = 'æ ¹æ®ç™»å½•å筛选用户的 SQL å­å¥';
-$lang['FilterName']            = 'æ ¹æ®å…¨å筛选用户的 SQL å­å¥';
-$lang['FilterEmail']           = 'æ ¹æ®ç”µå­é‚®ä»¶åœ°å€ç­›é€‰ç”¨æˆ·çš„ SQL å­å¥';
-$lang['FilterGroup']           = 'æ ¹æ®ç»„æˆå‘˜èº«ä»½ç­›é€‰ç”¨æˆ·çš„ SQL å­å¥';
-$lang['SortOrder']             = '对用户排åºçš„ SQL å­å¥';
-$lang['addUser']               = '添加新用户的 SQL 语å¥';
-$lang['addGroup']              = '添加新组的 SQL 语å¥';
-$lang['addUserGroup']          = '将用户添加到现有组的 SQL 语å¥';
-$lang['delGroup']              = '删除组的 SQL 语å¥';
-$lang['getUserID']             = '获å–用户主键的 SQL 语å¥';
-$lang['delUser']               = '删除用户的 SQL 语å¥';
-$lang['delUserRefs']           = '从所有组中删除一个用户的 SQL 语å¥';
-$lang['updateUser']            = '更新用户信æ¯çš„ SQL 语å¥';
-$lang['UpdateLogin']           = '更新用户登录åçš„ Update å­å¥';
-$lang['UpdatePass']            = '更新用户密ç çš„ Update å­å¥';
-$lang['UpdateEmail']           = '更新用户电å­é‚®ä»¶åœ°å€çš„ Update å­å¥';
-$lang['UpdateName']            = '更新用户全åçš„ Update å­å¥';
-$lang['UpdateTarget']          = '更新时识别用户的 Limit å­å¥';
-$lang['delUserGroup']          = '从指定组删除用户的 SQL 语å¥';
-$lang['getGroupID']            = 'èŽ·å–æŒ‡å®šç»„主键的 SQL 语å¥';
-$lang['debug_o_0']             = 'æ— ';
-$lang['debug_o_1']             = '仅在有错误时';
-$lang['debug_o_2']             = '所有 SQL 查询';
diff --git a/wiki/lib/plugins/authmysql/plugin.info.txt b/wiki/lib/plugins/authmysql/plugin.info.txt
deleted file mode 100644
index 5f8493d..0000000
--- a/wiki/lib/plugins/authmysql/plugin.info.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-base   authmysql
-author Andreas Gohr
-email  andi@splitbrain.org
-date   2015-07-13
-name   [DEPRECATED] MYSQL Auth Plugin
-desc   â–¶This plugin will be removed from DokuWiki in a future release! Use authpdo instead.â—€ Provides user authentication against a MySQL database
-url    http://www.dokuwiki.org/plugin:authmysql
diff --git a/wiki/lib/plugins/authpdo/README b/wiki/lib/plugins/authpdo/README
deleted file mode 100644
index c99bfbf..0000000
--- a/wiki/lib/plugins/authpdo/README
+++ /dev/null
@@ -1,27 +0,0 @@
-authpdo Plugin for DokuWiki
-
-Authenticate against a database via PDO
-
-All documentation for this plugin can be found at
-https://www.dokuwiki.org/plugin:authpdo
-
-If you install this plugin manually, make sure it is installed in
-lib/plugins/authpdo/ - if the folder is called different it
-will not work!
-
-Please refer to http://www.dokuwiki.org/plugins for additional info
-on how to install plugins in DokuWiki.
-
-----
-Copyright (C) Andreas Gohr <andi@splitbrain.org>
-
-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; version 2 of the License
-
-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.
-
-See the COPYING file in your DokuWiki folder for details
diff --git a/wiki/lib/plugins/authpdo/auth.php b/wiki/lib/plugins/authpdo/auth.php
deleted file mode 100644
index dfe1254..0000000
--- a/wiki/lib/plugins/authpdo/auth.php
+++ /dev/null
@@ -1,781 +0,0 @@
-<?php
-/**
- * DokuWiki Plugin authpdo (Auth Component)
- *
- * @license GPL 2 http://www.gnu.org/licenses/gpl-2.0.html
- * @author  Andreas Gohr <andi@splitbrain.org>
- */
-
-// must be run within Dokuwiki
-if(!defined('DOKU_INC')) die();
-
-/**
- * Class auth_plugin_authpdo
- */
-class auth_plugin_authpdo extends DokuWiki_Auth_Plugin {
-
-    /** @var PDO */
-    protected $pdo;
-
-    /** @var null|array The list of all groups */
-    protected $groupcache = null;
-
-    /**
-     * Constructor.
-     */
-    public function __construct() {
-        parent::__construct(); // for compatibility
-
-        if(!class_exists('PDO')) {
-            $this->_debug('PDO extension for PHP not found.', -1, __LINE__);
-            $this->success = false;
-            return;
-        }
-
-        if(!$this->getConf('dsn')) {
-            $this->_debug('No DSN specified', -1, __LINE__);
-            $this->success = false;
-            return;
-        }
-
-        try {
-            $this->pdo = new PDO(
-                $this->getConf('dsn'),
-                $this->getConf('user'),
-                conf_decodeString($this->getConf('pass')),
-                array(
-                    PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, // always fetch as array
-                    PDO::ATTR_EMULATE_PREPARES => true, // emulating prepares allows us to reuse param names
-                    PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, // we want exceptions, not error codes
-                )
-            );
-        } catch(PDOException $e) {
-            $this->_debug($e);
-            msg($this->getLang('connectfail'), -1);
-            $this->success = false;
-            return;
-        }
-
-        // can Users be created?
-        $this->cando['addUser'] = $this->_chkcnf(
-            array(
-                'select-user',
-                'select-user-groups',
-                'select-groups',
-                'insert-user',
-                'insert-group',
-                'join-group'
-            )
-        );
-
-        // can Users be deleted?
-        $this->cando['delUser'] = $this->_chkcnf(
-            array(
-                'select-user',
-                'select-user-groups',
-                'select-groups',
-                'leave-group',
-                'delete-user'
-            )
-        );
-
-        // can login names be changed?
-        $this->cando['modLogin'] = $this->_chkcnf(
-            array(
-                'select-user',
-                'select-user-groups',
-                'update-user-login'
-            )
-        );
-
-        // can passwords be changed?
-        $this->cando['modPass'] = $this->_chkcnf(
-            array(
-                'select-user',
-                'select-user-groups',
-                'update-user-pass'
-            )
-        );
-
-        // can real names be changed?
-        $this->cando['modName'] = $this->_chkcnf(
-            array(
-                'select-user',
-                'select-user-groups',
-                'update-user-info:name'
-            )
-        );
-
-        // can real email be changed?
-        $this->cando['modMail'] = $this->_chkcnf(
-            array(
-                'select-user',
-                'select-user-groups',
-                'update-user-info:mail'
-            )
-        );
-
-        // can groups be changed?
-        $this->cando['modGroups'] = $this->_chkcnf(
-            array(
-                'select-user',
-                'select-user-groups',
-                'select-groups',
-                'leave-group',
-                'join-group',
-                'insert-group'
-            )
-        );
-
-        // can a filtered list of users be retrieved?
-        $this->cando['getUsers'] = $this->_chkcnf(
-            array(
-                'list-users'
-            )
-        );
-
-        // can the number of users be retrieved?
-        $this->cando['getUserCount'] = $this->_chkcnf(
-            array(
-                'count-users'
-            )
-        );
-
-        // can a list of available groups be retrieved?
-        $this->cando['getGroups'] = $this->_chkcnf(
-            array(
-                'select-groups'
-            )
-        );
-
-        $this->success = true;
-    }
-
-    /**
-     * Check user+password
-     *
-     * @param   string $user the user name
-     * @param   string $pass the clear text password
-     * @return  bool
-     */
-    public function checkPass($user, $pass) {
-
-        $userdata = $this->_selectUser($user);
-        if($userdata == false) return false;
-
-        // password checking done in SQL?
-        if($this->_chkcnf(array('check-pass'))) {
-            $userdata['clear'] = $pass;
-            $userdata['hash'] = auth_cryptPassword($pass);
-            $result = $this->_query($this->getConf('check-pass'), $userdata);
-            if($result === false) return false;
-            return (count($result) == 1);
-        }
-
-        // we do password checking on our own
-        if(isset($userdata['hash'])) {
-            // hashed password
-            $passhash = new PassHash();
-            return $passhash->verify_hash($pass, $userdata['hash']);
-        } else {
-            // clear text password in the database O_o
-            return ($pass === $userdata['clear']);
-        }
-    }
-
-    /**
-     * Return user info
-     *
-     * Returns info about the given user needs to contain
-     * at least these fields:
-     *
-     * name string  full name of the user
-     * mail string  email addres of the user
-     * grps array   list of groups the user is in
-     *
-     * @param   string $user the user name
-     * @param   bool $requireGroups whether or not the returned data must include groups
-     * @return array|bool containing user data or false
-     */
-    public function getUserData($user, $requireGroups = true) {
-        $data = $this->_selectUser($user);
-        if($data == false) return false;
-
-        if(isset($data['hash'])) unset($data['hash']);
-        if(isset($data['clean'])) unset($data['clean']);
-
-        if($requireGroups) {
-            $data['grps'] = $this->_selectUserGroups($data);
-            if($data['grps'] === false) return false;
-        }
-
-        return $data;
-    }
-
-    /**
-     * Create a new User [implement only where required/possible]
-     *
-     * Returns false if the user already exists, null when an error
-     * occurred and true if everything went well.
-     *
-     * The new user HAS TO be added to the default group by this
-     * function!
-     *
-     * Set addUser capability when implemented
-     *
-     * @param  string $user
-     * @param  string $clear
-     * @param  string $name
-     * @param  string $mail
-     * @param  null|array $grps
-     * @return bool|null
-     */
-    public function createUser($user, $clear, $name, $mail, $grps = null) {
-        global $conf;
-
-        if(($info = $this->getUserData($user, false)) !== false) {
-            msg($this->getLang('userexists'), -1);
-            return false; // user already exists
-        }
-
-        // prepare data
-        if($grps == null) $grps = array();
-        array_unshift($grps, $conf['defaultgroup']);
-        $grps = array_unique($grps);
-        $hash = auth_cryptPassword($clear);
-        $userdata = compact('user', 'clear', 'hash', 'name', 'mail');
-
-        // action protected by transaction
-        $this->pdo->beginTransaction();
-        {
-            // insert the user
-            $ok = $this->_query($this->getConf('insert-user'), $userdata);
-            if($ok === false) goto FAIL;
-            $userdata = $this->getUserData($user, false);
-            if($userdata === false) goto FAIL;
-
-            // create all groups that do not exist, the refetch the groups
-            $allgroups = $this->_selectGroups();
-            foreach($grps as $group) {
-                if(!isset($allgroups[$group])) {
-                    $ok = $this->addGroup($group);
-                    if($ok === false) goto FAIL;
-                }
-            }
-            $allgroups = $this->_selectGroups();
-
-            // add user to the groups
-            foreach($grps as $group) {
-                $ok = $this->_joinGroup($userdata, $allgroups[$group]);
-                if($ok === false) goto FAIL;
-            }
-        }
-        $this->pdo->commit();
-        return true;
-
-        // something went wrong, rollback
-        FAIL:
-        $this->pdo->rollBack();
-        $this->_debug('Transaction rolled back', 0, __LINE__);
-        msg($this->getLang('writefail'), -1);
-        return null; // return error
-    }
-
-    /**
-     * Modify user data
-     *
-     * @param   string $user nick of the user to be changed
-     * @param   array $changes array of field/value pairs to be changed (password will be clear text)
-     * @return  bool
-     */
-    public function modifyUser($user, $changes) {
-        // secure everything in transaction
-        $this->pdo->beginTransaction();
-        {
-            $olddata = $this->getUserData($user);
-            $oldgroups = $olddata['grps'];
-            unset($olddata['grps']);
-
-            // changing the user name?
-            if(isset($changes['user'])) {
-                if($this->getUserData($changes['user'], false)) goto FAIL;
-                $params = $olddata;
-                $params['newlogin'] = $changes['user'];
-
-                $ok = $this->_query($this->getConf('update-user-login'), $params);
-                if($ok === false) goto FAIL;
-            }
-
-            // changing the password?
-            if(isset($changes['pass'])) {
-                $params = $olddata;
-                $params['clear'] = $changes['pass'];
-                $params['hash'] = auth_cryptPassword($changes['pass']);
-
-                $ok = $this->_query($this->getConf('update-user-pass'), $params);
-                if($ok === false) goto FAIL;
-            }
-
-            // changing info?
-            if(isset($changes['mail']) || isset($changes['name'])) {
-                $params = $olddata;
-                if(isset($changes['mail'])) $params['mail'] = $changes['mail'];
-                if(isset($changes['name'])) $params['name'] = $changes['name'];
-
-                $ok = $this->_query($this->getConf('update-user-info'), $params);
-                if($ok === false) goto FAIL;
-            }
-
-            // changing groups?
-            if(isset($changes['grps'])) {
-                $allgroups = $this->_selectGroups();
-
-                // remove membership for previous groups
-                foreach($oldgroups as $group) {
-                    if(!in_array($group, $changes['grps']) && isset($allgroups[$group])) {
-                        $ok = $this->_leaveGroup($olddata, $allgroups[$group]);
-                        if($ok === false) goto FAIL;
-                    }
-                }
-
-                // create all new groups that are missing
-                $added = 0;
-                foreach($changes['grps'] as $group) {
-                    if(!isset($allgroups[$group])) {
-                        $ok = $this->addGroup($group);
-                        if($ok === false) goto FAIL;
-                        $added++;
-                    }
-                }
-                // reload group info
-                if($added > 0) $allgroups = $this->_selectGroups();
-
-                // add membership for new groups
-                foreach($changes['grps'] as $group) {
-                    if(!in_array($group, $oldgroups)) {
-                        $ok = $this->_joinGroup($olddata, $allgroups[$group]);
-                        if($ok === false) goto FAIL;
-                    }
-                }
-            }
-
-        }
-        $this->pdo->commit();
-        return true;
-
-        // something went wrong, rollback
-        FAIL:
-        $this->pdo->rollBack();
-        $this->_debug('Transaction rolled back', 0, __LINE__);
-        msg($this->getLang('writefail'), -1);
-        return false; // return error
-    }
-
-    /**
-     * Delete one or more users
-     *
-     * Set delUser capability when implemented
-     *
-     * @param   array $users
-     * @return  int    number of users deleted
-     */
-    public function deleteUsers($users) {
-        $count = 0;
-        foreach($users as $user) {
-            if($this->_deleteUser($user)) $count++;
-        }
-        return $count;
-    }
-
-    /**
-     * Bulk retrieval of user data [implement only where required/possible]
-     *
-     * Set getUsers capability when implemented
-     *
-     * @param   int $start index of first user to be returned
-     * @param   int $limit max number of users to be returned
-     * @param   array $filter array of field/pattern pairs, null for no filter
-     * @return  array list of userinfo (refer getUserData for internal userinfo details)
-     */
-    public function retrieveUsers($start = 0, $limit = -1, $filter = null) {
-        if($limit < 0) $limit = 10000; // we don't support no limit
-        if(is_null($filter)) $filter = array();
-
-        if(isset($filter['grps'])) $filter['group'] = $filter['grps'];
-        foreach(array('user', 'name', 'mail', 'group') as $key) {
-            if(!isset($filter[$key])) {
-                $filter[$key] = '%';
-            } else {
-                $filter[$key] = '%' . $filter[$key] . '%';
-            }
-        }
-        $filter['start'] = (int) $start;
-        $filter['end'] = (int) $start + $limit;
-        $filter['limit'] = (int) $limit;
-
-        $result = $this->_query($this->getConf('list-users'), $filter);
-        if(!$result) return array();
-        $users = array();
-        foreach($result as $row) {
-            if(!isset($row['user'])) {
-                $this->_debug("Statement did not return 'user' attribute", -1, __LINE__);
-                return array();
-            }
-            $users[] = $this->getUserData($row['user']);
-        }
-        return $users;
-    }
-
-    /**
-     * Return a count of the number of user which meet $filter criteria
-     *
-     * @param  array $filter array of field/pattern pairs, empty array for no filter
-     * @return int
-     */
-    public function getUserCount($filter = array()) {
-        if(is_null($filter)) $filter = array();
-
-        if(isset($filter['grps'])) $filter['group'] = $filter['grps'];
-        foreach(array('user', 'name', 'mail', 'group') as $key) {
-            if(!isset($filter[$key])) {
-                $filter[$key] = '%';
-            } else {
-                $filter[$key] = '%' . $filter[$key] . '%';
-            }
-        }
-
-        $result = $this->_query($this->getConf('count-users'), $filter);
-        if(!$result || !isset($result[0]['count'])) {
-            $this->_debug("Statement did not return 'count' attribute", -1, __LINE__);
-        }
-        return (int) $result[0]['count'];
-    }
-
-    /**
-     * Create a new group with the given name
-     *
-     * @param string $group
-     * @return bool
-     */
-    public function addGroup($group) {
-        $sql = $this->getConf('insert-group');
-
-        $result = $this->_query($sql, array(':group' => $group));
-        $this->_clearGroupCache();
-        if($result === false) return false;
-        return true;
-    }
-
-    /**
-     * Retrieve groups
-     *
-     * Set getGroups capability when implemented
-     *
-     * @param   int $start
-     * @param   int $limit
-     * @return  array
-     */
-    public function retrieveGroups($start = 0, $limit = 0) {
-        $groups = array_keys($this->_selectGroups());
-        if($groups === false) return array();
-
-        if(!$limit) {
-            return array_splice($groups, $start);
-        } else {
-            return array_splice($groups, $start, $limit);
-        }
-    }
-
-    /**
-     * Select data of a specified user
-     *
-     * @param string $user the user name
-     * @return bool|array user data, false on error
-     */
-    protected function _selectUser($user) {
-        $sql = $this->getConf('select-user');
-
-        $result = $this->_query($sql, array(':user' => $user));
-        if(!$result) return false;
-
-        if(count($result) > 1) {
-            $this->_debug('Found more than one matching user', -1, __LINE__);
-            return false;
-        }
-
-        $data = array_shift($result);
-        $dataok = true;
-
-        if(!isset($data['user'])) {
-            $this->_debug("Statement did not return 'user' attribute", -1, __LINE__);
-            $dataok = false;
-        }
-        if(!isset($data['hash']) && !isset($data['clear']) && !$this->_chkcnf(array('check-pass'))) {
-            $this->_debug("Statement did not return 'clear' or 'hash' attribute", -1, __LINE__);
-            $dataok = false;
-        }
-        if(!isset($data['name'])) {
-            $this->_debug("Statement did not return 'name' attribute", -1, __LINE__);
-            $dataok = false;
-        }
-        if(!isset($data['mail'])) {
-            $this->_debug("Statement did not return 'mail' attribute", -1, __LINE__);
-            $dataok = false;
-        }
-
-        if(!$dataok) return false;
-        return $data;
-    }
-
-    /**
-     * Delete a user after removing all their group memberships
-     *
-     * @param string $user
-     * @return bool true when the user was deleted
-     */
-    protected function _deleteUser($user) {
-        $this->pdo->beginTransaction();
-        {
-            $userdata = $this->getUserData($user);
-            if($userdata === false) goto FAIL;
-            $allgroups = $this->_selectGroups();
-
-            // remove group memberships (ignore errors)
-            foreach($userdata['grps'] as $group) {
-                if(isset($allgroups[$group])) {
-                    $this->_leaveGroup($userdata, $allgroups[$group]);
-                }
-            }
-
-            $ok = $this->_query($this->getConf('delete-user'), $userdata);
-            if($ok === false) goto FAIL;
-        }
-        $this->pdo->commit();
-        return true;
-
-        FAIL:
-        $this->pdo->rollBack();
-        return false;
-    }
-
-    /**
-     * Select all groups of a user
-     *
-     * @param array $userdata The userdata as returned by _selectUser()
-     * @return array|bool list of group names, false on error
-     */
-    protected function _selectUserGroups($userdata) {
-        global $conf;
-        $sql = $this->getConf('select-user-groups');
-        $result = $this->_query($sql, $userdata);
-        if($result === false) return false;
-
-        $groups = array($conf['defaultgroup']); // always add default config
-        foreach($result as $row) {
-            if(!isset($row['group'])) {
-                $this->_debug("No 'group' field returned in select-user-groups statement");
-                return false;
-            }
-            $groups[] = $row['group'];
-        }
-
-        $groups = array_unique($groups);
-        sort($groups);
-        return $groups;
-    }
-
-    /**
-     * Select all available groups
-     *
-     * @return array|bool list of all available groups and their properties
-     */
-    protected function _selectGroups() {
-        if($this->groupcache) return $this->groupcache;
-
-        $sql = $this->getConf('select-groups');
-        $result = $this->_query($sql);
-        if($result === false) return false;
-
-        $groups = array();
-        foreach($result as $row) {
-            if(!isset($row['group'])) {
-                $this->_debug("No 'group' field returned from select-groups statement", -1, __LINE__);
-                return false;
-            }
-
-            // relayout result with group name as key
-            $group = $row['group'];
-            $groups[$group] = $row;
-        }
-
-        ksort($groups);
-        return $groups;
-    }
-
-    /**
-     * Remove all entries from the group cache
-     */
-    protected function _clearGroupCache() {
-        $this->groupcache = null;
-    }
-
-    /**
-     * Adds the user to the group
-     *
-     * @param array $userdata all the user data
-     * @param array $groupdata all the group data
-     * @return bool
-     */
-    protected function _joinGroup($userdata, $groupdata) {
-        $data = array_merge($userdata, $groupdata);
-        $sql = $this->getConf('join-group');
-        $result = $this->_query($sql, $data);
-        if($result === false) return false;
-        return true;
-    }
-
-    /**
-     * Removes the user from the group
-     *
-     * @param array $userdata all the user data
-     * @param array $groupdata all the group data
-     * @return bool
-     */
-    protected function _leaveGroup($userdata, $groupdata) {
-        $data = array_merge($userdata, $groupdata);
-        $sql = $this->getConf('leave-group');
-        $result = $this->_query($sql, $data);
-        if($result === false) return false;
-        return true;
-    }
-
-    /**
-     * Executes a query
-     *
-     * @param string $sql The SQL statement to execute
-     * @param array $arguments Named parameters to be used in the statement
-     * @return array|int|bool The result as associative array for SELECTs, affected rows for others, false on error
-     */
-    protected function _query($sql, $arguments = array()) {
-        $sql = trim($sql);
-        if(empty($sql)) {
-            $this->_debug('No SQL query given', -1, __LINE__);
-            return false;
-        }
-
-        // execute
-        $params = array();
-        $sth = $this->pdo->prepare($sql);
-        try {
-            // prepare parameters - we only use those that exist in the SQL
-            foreach($arguments as $key => $value) {
-                if(is_array($value)) continue;
-                if(is_object($value)) continue;
-                if($key[0] != ':') $key = ":$key"; // prefix with colon if needed
-                if(strpos($sql, $key) === false) continue; // skip if parameter is missing
-
-                if(is_int($value)) {
-                    $sth->bindValue($key, $value, PDO::PARAM_INT);
-                } else {
-                    $sth->bindValue($key, $value);
-                }
-                $params[$key] = $value; //remember for debugging
-            }
-
-            $sth->execute();
-            if(strtolower(substr($sql, 0, 6)) == 'select') {
-                $result = $sth->fetchAll();
-            } else {
-                $result = $sth->rowCount();
-            }
-        } catch(Exception $e) {
-            // report the caller's line
-            $trace = debug_backtrace();
-            $line = $trace[0]['line'];
-            $dsql = $this->_debugSQL($sql, $params, !defined('DOKU_UNITTEST'));
-            $this->_debug($e, -1, $line);
-            $this->_debug("SQL: <pre>$dsql</pre>", -1, $line);
-            $result = false;
-        }
-        $sth->closeCursor();
-        $sth = null;
-
-        return $result;
-    }
-
-    /**
-     * Wrapper around msg() but outputs only when debug is enabled
-     *
-     * @param string|Exception $message
-     * @param int $err
-     * @param int $line
-     */
-    protected function _debug($message, $err = 0, $line = 0) {
-        if(!$this->getConf('debug')) return;
-        if(is_a($message, 'Exception')) {
-            $err = -1;
-            $msg = $message->getMessage();
-            if(!$line) $line = $message->getLine();
-        } else {
-            $msg = $message;
-        }
-
-        if(defined('DOKU_UNITTEST')) {
-            printf("\n%s, %s:%d\n", $msg, __FILE__, $line);
-        } else {
-            msg('authpdo: ' . $msg, $err, $line, __FILE__);
-        }
-    }
-
-    /**
-     * Check if the given config strings are set
-     *
-     * @author  Matthias Grimm <matthiasgrimm@users.sourceforge.net>
-     *
-     * @param   string[] $keys
-     * @return  bool
-     */
-    protected function _chkcnf($keys) {
-        foreach($keys as $key) {
-            $params = explode(':', $key);
-            $key = array_shift($params);
-            $sql = trim($this->getConf($key));
-
-            // check if sql is set
-            if(!$sql) return false;
-            // check if needed params are there
-            foreach($params as $param) {
-                if(strpos($sql, ":$param") === false) return false;
-            }
-        }
-
-        return true;
-    }
-
-    /**
-     * create an approximation of the SQL string with parameters replaced
-     *
-     * @param string $sql
-     * @param array $params
-     * @param bool $htmlescape Should the result be escaped for output in HTML?
-     * @return string
-     */
-    protected function _debugSQL($sql, $params, $htmlescape = true) {
-        foreach($params as $key => $val) {
-            if(is_int($val)) {
-                $val = $this->pdo->quote($val, PDO::PARAM_INT);
-            } elseif(is_bool($val)) {
-                $val = $this->pdo->quote($val, PDO::PARAM_BOOL);
-            } elseif(is_null($val)) {
-                $val = 'NULL';
-            } else {
-                $val = $this->pdo->quote($val);
-            }
-            $sql = str_replace($key, $val, $sql);
-        }
-        if($htmlescape) $sql = hsc($sql);
-        return $sql;
-    }
-}
-
-// vim:ts=4:sw=4:et:
diff --git a/wiki/lib/plugins/authpdo/conf/default.php b/wiki/lib/plugins/authpdo/conf/default.php
deleted file mode 100644
index 138ca2f..0000000
--- a/wiki/lib/plugins/authpdo/conf/default.php
+++ /dev/null
@@ -1,118 +0,0 @@
-<?php
-/**
- * Default settings for the authpdo plugin
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- */
-
-$conf['debug'] = 0;
-$conf['dsn'] = '';
-$conf['user'] = '';
-$conf['pass'] = '';
-
-/**
- * statement to select a single user identified by its login name
- *
- * input: :user
- * return: user, name, mail, (clear|hash), [uid], [*]
- */
-$conf['select-user'] = '';
-
-/**
- * statement to check the password in SQL, optional when above returned clear or hash
- *
- * input: :user, :clear, :hash, [uid], [*]
- * return: *
- */
-$conf['check-pass'] = '';
-
-/**
- * statement to select a single user identified by its login name
- *
- * input: :user, [uid]
- * return: group
- */
-$conf['select-user-groups'] = '';
-
-/**
- * Select all the existing group names
- *
- * return: group, [gid], [*]
- */
-$conf['select-groups'] = '';
-
-/**
- * Create a new user
- *
- * input: :user, :name, :mail, (:clear|:hash)
- */
-$conf['insert-user'] = '';
-
-/**
- * Remove a user
- *
- * input: :user, [:uid], [*]
- */
-$conf['delete-user'] = '';
-
-/**
- * list user names matching the given criteria
- *
- * Make sure the list is distinct and sorted by user name. Apply the given limit and offset
- *
- * input: :user, :name, :mail, :group, :start, :end, :limit
- * out: user
- */
-$conf['list-users'] = '';
-
-/**
- * count user names matching the given criteria
- *
- * Make sure the counted list is distinct
- *
- * input: :user, :name, :mail, :group
- * out: count
- */
-$conf['count-users'] = '';
-
-/**
- * Update user data (except password and user name)
- *
- * input: :user, :name, :mail, [:uid], [*]
- */
-$conf['update-user-info'] = '';
-
-/**
- * Update user name aka login
- *
- * input: :user, :newlogin, [:uid], [*]
- */
-$conf['update-user-login'] = '';
-
-/**
- * Update user password
- *
- * input: :user, :clear, :hash, [:uid], [*]
- */
-$conf['update-user-pass'] = '';
-
-/**
- * Create a new group
- *
- * input: :group
- */
-$conf['insert-group'] = '';
-
-/**
- * Make user join group
- *
- * input: :user, [:uid], group, [:gid], [*]
- */
-$conf['join-group'] = '';
-
-/**
- * Make user leave group
- *
- * input: :user, [:uid], group, [:gid], [*]
- */
-$conf['leave-group'] = '';
diff --git a/wiki/lib/plugins/authpdo/conf/metadata.php b/wiki/lib/plugins/authpdo/conf/metadata.php
deleted file mode 100644
index 7c2ee8c..0000000
--- a/wiki/lib/plugins/authpdo/conf/metadata.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-/**
- * Options for the authpdo plugin
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- */
-
-$meta['debug']              = array('onoff', '_caution' => 'security');
-$meta['dsn']                = array('string', '_caution' => 'danger');
-$meta['user']               = array('string', '_caution' => 'danger');
-$meta['pass']               = array('password', '_caution' => 'danger', '_code' => 'base64');
-$meta['select-user']        = array('', '_caution' => 'danger');
-$meta['check-pass']         = array('', '_caution' => 'danger');
-$meta['select-user-groups'] = array('', '_caution' => 'danger');
-$meta['select-groups']      = array('', '_caution' => 'danger');
-$meta['insert-user']        = array('', '_caution' => 'danger');
-$meta['delete-user']        = array('', '_caution' => 'danger');
-$meta['list-users']         = array('', '_caution' => 'danger');
-$meta['count-users']        = array('', '_caution' => 'danger');
-$meta['update-user-info']   = array('', '_caution' => 'danger');
-$meta['update-user-login']  = array('', '_caution' => 'danger');
-$meta['update-user-pass']   = array('', '_caution' => 'danger');
-$meta['insert-group']       = array('', '_caution' => 'danger');
-$meta['join-group']         = array('', '_caution' => 'danger');
-$meta['leave-group']        = array('', '_caution' => 'danger');
-
-
diff --git a/wiki/lib/plugins/authpdo/lang/bg/lang.php b/wiki/lib/plugins/authpdo/lang/bg/lang.php
deleted file mode 100644
index f6532c4..0000000
--- a/wiki/lib/plugins/authpdo/lang/bg/lang.php
+++ /dev/null
@@ -1,9 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author Kiril <neohidra@gmail.com>
- */
-$lang['connectfail']           = 'Свързването Ñ Ð±Ð°Ð·Ð°Ñ‚Ð° данни Ñе провали.';
-$lang['userexists']            = 'За Ñъжаление вече ÑъщеÑтвува потребител Ñ Ñ‚Ð¾Ð²Ð° име.';
diff --git a/wiki/lib/plugins/authpdo/lang/cs/lang.php b/wiki/lib/plugins/authpdo/lang/cs/lang.php
deleted file mode 100644
index cf52a18..0000000
--- a/wiki/lib/plugins/authpdo/lang/cs/lang.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author Jaroslav Lichtblau <jlichtblau@seznam.cz>
- */
-$lang['connectfail']           = 'Selhalo připojení k databázi.';
-$lang['userexists']            = 'Omlouváme se, ale uživatel s tímto jménem již existuje.';
-$lang['writefail']             = 'Nelze změnit údaje uživatele. Informujte prosím správce wiki';
diff --git a/wiki/lib/plugins/authpdo/lang/cy/lang.php b/wiki/lib/plugins/authpdo/lang/cy/lang.php
deleted file mode 100644
index 449e3ef..0000000
--- a/wiki/lib/plugins/authpdo/lang/cy/lang.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-/**
- * Welsh language file for authmysql plugin
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- */
-
-$lang['connectfail']    = 'Method y cysylltiad i\'r databas.';
-$lang['userexists']     = 'Sori, mae defnyddiwr gyda\'r enw mewngofnodi hwn eisoes yn bodoli.';
-$lang['writefail']      = 'Methu â newid data defnyddiwr. Rhowch wybod i Weinyddwr y Wici';
-
-//Setup VIM: ex: et ts=4 :
diff --git a/wiki/lib/plugins/authpdo/lang/de/lang.php b/wiki/lib/plugins/authpdo/lang/de/lang.php
deleted file mode 100644
index 7ae13dd..0000000
--- a/wiki/lib/plugins/authpdo/lang/de/lang.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-
-/**
- * @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>
- */
-$lang['connectfail']           = 'Verbindung zur Datenbank fehlgeschlagen.';
-$lang['userexists']            = 'Entschuldigung, aber dieser Benutzername ist bereits vergeben.';
-$lang['writefail']             = 'Die Benutzerdaten konnten nicht geändert werden. Bitte wenden Sie sich an den Wiki-Admin.';
diff --git a/wiki/lib/plugins/authpdo/lang/en/lang.php b/wiki/lib/plugins/authpdo/lang/en/lang.php
deleted file mode 100644
index 3e1482e..0000000
--- a/wiki/lib/plugins/authpdo/lang/en/lang.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-/**
- * English language file for authpdo plugin
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- */
-
-$lang['connectfail']    = 'Failed to connect to database.';
-$lang['userexists']     = 'Sorry, a user with this login already exists.';
-$lang['writefail']      = 'Unable to modify user data. Please inform the Wiki-Admin';
-
-//Setup VIM: ex: et ts=4 :
diff --git a/wiki/lib/plugins/authpdo/lang/en/settings.php b/wiki/lib/plugins/authpdo/lang/en/settings.php
deleted file mode 100644
index 1aaaec0..0000000
--- a/wiki/lib/plugins/authpdo/lang/en/settings.php
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
-/**
- * english language file for authpdo plugin
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- */
-
-$lang['debug']              = 'Print out detailed error messages. Should be disabled after setup.';
-$lang['dsn']                = 'The DSN to connect to the database.';
-$lang['user']               = 'The user for the above database connection (empty for sqlite)';
-$lang['pass']               = 'The password for the above database connection (empty for sqlite)';
-$lang['select-user']        = 'SQL Statement to select the data of a single user';
-$lang['select-user-groups'] = 'SQL Statement to select all groups of a single user';
-$lang['select-groups']      = 'SQL Statement to select all available groups';
-$lang['insert-user']        = 'SQL Statement to insert a new user into the database';
-$lang['delete-user']        = 'SQL Statement to remove a single user from the database';
-$lang['list-users']         = 'SQL Statement to list users matching a filter';
-$lang['count-users']        = 'SQL Statement to count users matching a filter';
-$lang['update-user-info']   = 'SQL Statement to update the full name and email address of a single user';
-$lang['update-user-login']  = 'SQL Statement to update the login name of a single user';
-$lang['update-user-pass']   = 'SQL Statement to update the password of a single user';
-$lang['insert-group']       = 'SQL Statement to insert a new group into the database';
-$lang['join-group']         = 'SQL Statement to add a user to an existing group';
-$lang['leave-group']        = 'SQL Statement to remove a user from a group';
-$lang['check-pass']         = 'SQL Statement to check the password for a user. Can be left empty if password info is fetched in select-user.';
diff --git a/wiki/lib/plugins/authpdo/lang/es/lang.php b/wiki/lib/plugins/authpdo/lang/es/lang.php
deleted file mode 100644
index 9bd9211..0000000
--- a/wiki/lib/plugins/authpdo/lang/es/lang.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author Domingo Redal <docxml@gmail.com>
- */
-$lang['connectfail']           = 'Error al conectar con la base de datos.';
-$lang['userexists']            = 'Lo sentimos, ya existe un usuario con ese inicio de sesión.';
-$lang['writefail']             = 'No es posible modificar los datos del usuario. Por favor, informa al Administrador del Wiki';
diff --git a/wiki/lib/plugins/authpdo/lang/fa/lang.php b/wiki/lib/plugins/authpdo/lang/fa/lang.php
deleted file mode 100644
index b26e836..0000000
--- a/wiki/lib/plugins/authpdo/lang/fa/lang.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author Mohmmad Razavi <sepent@gmail.com>
- * @author Masoud Sadrnezhaad <masoud@sadrnezhaad.ir>
- */
-$lang['connectfail']           = 'خطا در اتصال به دیتابیس';
-$lang['userexists']            = 'با عرض پوزش، یک کاربر با این نام از قبل وجود دارد.';
-$lang['writefail']             = 'امکان تغییر داده کاربر وجود نداشت. Ù„Ø·ÙØ§ مسئول Wiki را آگاه کنید.';
diff --git a/wiki/lib/plugins/authpdo/lang/fr/lang.php b/wiki/lib/plugins/authpdo/lang/fr/lang.php
deleted file mode 100644
index ee87b0d..0000000
--- a/wiki/lib/plugins/authpdo/lang/fr/lang.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author Pietroni <pietroni@informatique.univ-paris-diderot.fr>
- */
-$lang['connectfail']           = 'Impossible de se connecter à la base de données.';
-$lang['userexists']            = 'Désolé, un utilisateur avec cet identifiant existe déjà.';
-$lang['writefail']             = 'Impossible de modifier les données utilisateur. Veuillez en informer l\'administrateur du Wiki.';
diff --git a/wiki/lib/plugins/authpdo/lang/hr/lang.php b/wiki/lib/plugins/authpdo/lang/hr/lang.php
deleted file mode 100644
index 3acdbf4..0000000
--- a/wiki/lib/plugins/authpdo/lang/hr/lang.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author Davor Turkalj <turki.bsc@gmail.com>
- */
-$lang['connectfail']           = 'Ne mogu se spojiti na bazu.';
-$lang['userexists']            = 'Oprostite ali korisnik s ovom prijavom već postoji.';
-$lang['writefail']             = 'Ne mogu izmijeniti podatke. Molim obavijestite Wiki administratora';
diff --git a/wiki/lib/plugins/authpdo/lang/hu/lang.php b/wiki/lib/plugins/authpdo/lang/hu/lang.php
deleted file mode 100644
index 1a2098e..0000000
--- a/wiki/lib/plugins/authpdo/lang/hu/lang.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author Marton Sebok <sebokmarton@gmail.com>
- */
-$lang['connectfail']           = 'Az adatbázishoz való csatlakozás sikertelen.';
-$lang['userexists']            = 'Sajnos már létezik ilyen azonosítójú felhasználó.';
-$lang['writefail']             = 'A felhasználói adatok módosítása sikertelen. Kérlek, fordulj a wiki rendszergazdájához!';
diff --git a/wiki/lib/plugins/authpdo/lang/it/lang.php b/wiki/lib/plugins/authpdo/lang/it/lang.php
deleted file mode 100644
index 5c0a3f1..0000000
--- a/wiki/lib/plugins/authpdo/lang/it/lang.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author Torpedo <dgtorpedo@gmail.com>
- */
-$lang['connectfail']           = 'Connessione fallita al database.';
-$lang['userexists']            = 'Spiacente, esiste già un utente con queste credenziali.';
-$lang['writefail']             = 'Non è possibile cambiare le informazioni utente. Si prega di informare l\'Amministratore del wiki';
diff --git a/wiki/lib/plugins/authpdo/lang/ja/lang.php b/wiki/lib/plugins/authpdo/lang/ja/lang.php
deleted file mode 100644
index 1cd441b..0000000
--- a/wiki/lib/plugins/authpdo/lang/ja/lang.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author Hideaki SAWADA <chuno@live.jp>
- */
-$lang['connectfail']           = 'データベースã¸ã®æŽ¥ç¶šã«å¤±æ•—ã—ã¾ã—ãŸã€‚';
-$lang['userexists']            = 'ã“ã®ãƒ­ã‚°ã‚¤ãƒ³åã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒæ—¢ã«å­˜åœ¨ã—ã¦ã„ã¾ã™ã€‚';
-$lang['writefail']             = 'ユーザーデータを変更ã§ãã¾ã›ã‚“。Wiki ã®ç®¡ç†è€…ã«é€£çµ¡ã—ã¦ãã ã•ã„。';
diff --git a/wiki/lib/plugins/authpdo/lang/ko/lang.php b/wiki/lib/plugins/authpdo/lang/ko/lang.php
deleted file mode 100644
index 0b14197..0000000
--- a/wiki/lib/plugins/authpdo/lang/ko/lang.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author hyeonsoft <hyeonsoft@live.co.kr>
- * @author Myeongjin <aranet100@gmail.com>
- */
-$lang['connectfail']           = 'ë°ì´í„°ë² ì´ìŠ¤ì— ì—°ê²°í•˜ëŠ” ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤.';
-$lang['userexists']            = '죄송하지만 ì´ ê³„ì •ìœ¼ë¡œ ì´ë¯¸ 로그ì¸í•œ 사용ìžê°€ 있습니다.';
-$lang['writefail']             = 'ì‚¬ìš©ìž ë°ì´í„°ë¥¼ 수정할 수 없습니다. 위키 관리ìžì—게 문ì˜í•˜ì‹œê¸° ë°”ëžë‹ˆë‹¤';
diff --git a/wiki/lib/plugins/authpdo/lang/nl/lang.php b/wiki/lib/plugins/authpdo/lang/nl/lang.php
deleted file mode 100644
index b426f6b..0000000
--- a/wiki/lib/plugins/authpdo/lang/nl/lang.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author Hugo Smet <hugo.smet@scarlet.be>
- */
-$lang['connectfail']           = 'Connectie met de database mislukt.';
-$lang['userexists']            = 'Sorry, een gebruiker met deze login bestaat reeds.';
-$lang['writefail']             = 'Onmogelijk om de gebruikers data te wijzigen. Gelieve de Wiki-Admin te informeren.';
diff --git a/wiki/lib/plugins/authpdo/lang/pt-br/lang.php b/wiki/lib/plugins/authpdo/lang/pt-br/lang.php
deleted file mode 100644
index 2008ae6..0000000
--- a/wiki/lib/plugins/authpdo/lang/pt-br/lang.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author Frederico Gonçalves Guimarães <frederico@teia.bio.br>
- */
-$lang['connectfail']           = 'Não foi possível conectar ao banco de dados.';
-$lang['userexists']            = 'Desculpe, mas já existe esse nome de usuário.';
-$lang['writefail']             = 'Não foi possível modificar os dados do usuário. Por favor, informe ao administrador do Wiki.';
diff --git a/wiki/lib/plugins/authpdo/lang/pt/lang.php b/wiki/lib/plugins/authpdo/lang/pt/lang.php
deleted file mode 100644
index f2eca8f..0000000
--- a/wiki/lib/plugins/authpdo/lang/pt/lang.php
+++ /dev/null
@@ -1,9 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author Paulo Carmino <contato@paulocarmino.com>
- */
-$lang['connectfail']           = 'Falha ao conectar com o banco de dados.';
-$lang['userexists']            = 'Desculpe, esse login já está sendo usado.';
diff --git a/wiki/lib/plugins/authpdo/lang/ru/lang.php b/wiki/lib/plugins/authpdo/lang/ru/lang.php
deleted file mode 100644
index 9f75d17..0000000
--- a/wiki/lib/plugins/authpdo/lang/ru/lang.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author Takumo <9206984@mail.ru>
- * @author Aleksandr Selivanov <alexgearbox@yandex.ru>
- */
-$lang['connectfail']           = 'Ошибка ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ñ Ð±Ð°Ð·Ð¾Ð¹ данных.';
-$lang['userexists']            = 'Извините, пользователь Ñ Ñ‚Ð°ÐºÐ¸Ð¼ логином уже ÑущеÑтвует.';
-$lang['writefail']             = 'Ðевозможно изменить данные пользователÑ. Сообщите об Ñтом админиÑтратору вики.';
diff --git a/wiki/lib/plugins/authpdo/lang/sk/lang.php b/wiki/lib/plugins/authpdo/lang/sk/lang.php
deleted file mode 100644
index d143bbf..0000000
--- a/wiki/lib/plugins/authpdo/lang/sk/lang.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author Martin Michalek <michalek.dev@gmail.com>
- */
-$lang['connectfail']           = 'Nepodarilo sa pripojiť k databáze.';
-$lang['userexists']            = 'Ľutujem, ale používateľ s týmto prihlasovacím menom už existuje.';
-$lang['writefail']             = 'Nie je možné zmeniť údaje používateľa, informujte prosím administrátora Wiki.';
diff --git a/wiki/lib/plugins/authpdo/lang/tr/lang.php b/wiki/lib/plugins/authpdo/lang/tr/lang.php
deleted file mode 100644
index 30576c0..0000000
--- a/wiki/lib/plugins/authpdo/lang/tr/lang.php
+++ /dev/null
@@ -1,8 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author Mete Cuma <mcumax@gmail.com>
- */
-$lang['connectfail']           = 'Veritabanına bağlantı kurulamadı.';
diff --git a/wiki/lib/plugins/authpdo/lang/zh/lang.php b/wiki/lib/plugins/authpdo/lang/zh/lang.php
deleted file mode 100644
index 06c258f..0000000
--- a/wiki/lib/plugins/authpdo/lang/zh/lang.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author Errol <errol@hotmail.com>
- */
-$lang['connectfail']           = '连接数æ®åº“失败';
-$lang['userexists']            = '抱歉,用户å已被使用。';
-$lang['writefail']             = '无法修改用户数æ®ã€‚请通知管ç†å‘˜';
diff --git a/wiki/lib/plugins/authpdo/plugin.info.txt b/wiki/lib/plugins/authpdo/plugin.info.txt
deleted file mode 100644
index e60ff0b..0000000
--- a/wiki/lib/plugins/authpdo/plugin.info.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-base   authpdo
-author Andreas Gohr
-email  andi@splitbrain.org
-date   2016-08-20
-name   authpdo plugin
-desc   Authenticate against a database via PDO
-url    https://www.dokuwiki.org/plugin:authpdo
diff --git a/wiki/lib/plugins/authpgsql/auth.php b/wiki/lib/plugins/authpgsql/auth.php
deleted file mode 100644
index 7b677d3..0000000
--- a/wiki/lib/plugins/authpgsql/auth.php
+++ /dev/null
@@ -1,431 +0,0 @@
-<?php
-// must be run within Dokuwiki
-if(!defined('DOKU_INC')) die();
-
-/**
- * PostgreSQL authentication backend
- *
- * This class inherits much functionality from the MySQL class
- * and just reimplements the Postgres specific parts.
- *
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * @author     Andreas Gohr <andi@splitbrain.org>
- * @author     Chris Smith <chris@jalakai.co.uk>
- * @author     Matthias Grimm <matthias.grimmm@sourceforge.net>
- * @author     Jan Schumann <js@schumann-it.com>
- */
-class auth_plugin_authpgsql extends auth_plugin_authmysql {
-
-    /**
-     * Constructor
-     *
-     * checks if the pgsql interface is available, otherwise it will
-     * set the variable $success of the basis class to false
-     *
-     * @author Matthias Grimm <matthiasgrimm@users.sourceforge.net>
-     * @author Andreas Gohr <andi@splitbrain.org>
-     */
-    public function __construct() {
-        // we don't want the stuff the MySQL constructor does, but the grandparent might do something
-        DokuWiki_Auth_Plugin::__construct();
-
-        if(!function_exists('pg_connect')) {
-            $this->_debug("PgSQL err: PHP Postgres extension not found.", -1, __LINE__, __FILE__);
-            $this->success = false;
-            return;
-        }
-
-        $this->loadConfig();
-
-        // set capabilities based upon config strings set
-        if(empty($this->conf['user']) ||
-            empty($this->conf['password']) || empty($this->conf['database'])
-        ) {
-            $this->_debug("PgSQL err: insufficient configuration.", -1, __LINE__, __FILE__);
-            $this->success = false;
-            return;
-        }
-
-        $this->cando['addUser']   = $this->_chkcnf(
-            array(
-                 'getUserInfo',
-                 'getGroups',
-                 'addUser',
-                 'getUserID',
-                 'getGroupID',
-                 'addGroup',
-                 'addUserGroup'
-            )
-        );
-        $this->cando['delUser']   = $this->_chkcnf(
-            array(
-                 'getUserID',
-                 'delUser',
-                 'delUserRefs'
-            )
-        );
-        $this->cando['modLogin']  = $this->_chkcnf(
-            array(
-                 'getUserID',
-                 'updateUser',
-                 'UpdateTarget'
-            )
-        );
-        $this->cando['modPass']   = $this->cando['modLogin'];
-        $this->cando['modName']   = $this->cando['modLogin'];
-        $this->cando['modMail']   = $this->cando['modLogin'];
-        $this->cando['modGroups'] = $this->_chkcnf(
-            array(
-                 'getUserID',
-                 'getGroups',
-                 'getGroupID',
-                 'addGroup',
-                 'addUserGroup',
-                 'delGroup',
-                 'getGroupID',
-                 'delUserGroup'
-            )
-        );
-        /* getGroups is not yet supported
-           $this->cando['getGroups']    = $this->_chkcnf(array('getGroups',
-           'getGroupID')); */
-        $this->cando['getUsers']     = $this->_chkcnf(
-            array(
-                 'getUsers',
-                 'getUserInfo',
-                 'getGroups'
-            )
-        );
-        $this->cando['getUserCount'] = $this->_chkcnf(array('getUsers'));
-    }
-
-    /**
-     * Check if the given config strings are set
-     *
-     * @author  Matthias Grimm <matthiasgrimm@users.sourceforge.net>
-     *
-     * @param   string[] $keys
-     * @param   bool  $wop
-     * @return  bool
-     */
-    protected function _chkcnf($keys, $wop = false) {
-        foreach($keys as $key) {
-            if(empty($this->conf[$key])) return false;
-        }
-        return true;
-    }
-
-    /**
-     * Counts users which meet certain $filter criteria.
-     *
-     * @author  Matthias Grimm <matthiasgrimm@users.sourceforge.net>
-     *
-     * @param  array  $filter  filter criteria in item/pattern pairs
-     * @return int count of found users.
-     */
-    public function getUserCount($filter = array()) {
-        $rc = 0;
-
-        if($this->_openDB()) {
-            $sql = $this->_createSQLFilter($this->conf['getUsers'], $filter);
-
-            // no equivalent of SQL_CALC_FOUND_ROWS in pgsql?
-            if(($result = $this->_queryDB($sql))) {
-                $rc = count($result);
-            }
-            $this->_closeDB();
-        }
-        return $rc;
-    }
-
-    /**
-     * Bulk retrieval of user data
-     *
-     * @author  Matthias Grimm <matthiasgrimm@users.sourceforge.net>
-     *
-     * @param   int   $first     index of first user to be returned
-     * @param   int   $limit     max number of users to be returned
-     * @param   array $filter    array of field/pattern pairs
-     * @return  array userinfo (refer getUserData for internal userinfo details)
-     */
-    public function retrieveUsers($first = 0, $limit = 0, $filter = array()) {
-        $out = array();
-
-        if($this->_openDB()) {
-            $this->_lockTables("READ");
-            $sql = $this->_createSQLFilter($this->conf['getUsers'], $filter);
-            $sql .= " ".$this->conf['SortOrder'];
-            if($limit) $sql .= " LIMIT $limit";
-            if($first) $sql .= " OFFSET $first";
-            $result = $this->_queryDB($sql);
-
-            foreach($result as $user) {
-                if(($info = $this->_getUserInfo($user['user']))) {
-                    $out[$user['user']] = $info;
-                }
-            }
-
-            $this->_unlockTables();
-            $this->_closeDB();
-        }
-        return $out;
-    }
-
-    // @inherit function joinGroup($user, $group)
-    // @inherit function leaveGroup($user, $group) {
-
-    /**
-     * Adds a user to a group.
-     *
-     * If $force is set to true non existing groups would be created.
-     *
-     * The database connection must already be established. Otherwise
-     * this function does nothing and returns 'false'.
-     *
-     * @author Matthias Grimm <matthiasgrimm@users.sourceforge.net>
-     * @author Andreas Gohr   <andi@splitbrain.org>
-     *
-     * @param   string $user    user to add to a group
-     * @param   string $group   name of the group
-     * @param   bool   $force   create missing groups
-     * @return  bool   true on success, false on error
-     */
-    protected function _addUserToGroup($user, $group, $force = false) {
-        $newgroup = 0;
-
-        if(($this->dbcon) && ($user)) {
-            $gid = $this->_getGroupID($group);
-            if(!$gid) {
-                if($force) { // create missing groups
-                    $sql = str_replace('%{group}', addslashes($group), $this->conf['addGroup']);
-                    $this->_modifyDB($sql);
-                    //group should now exists try again to fetch it
-                    $gid      = $this->_getGroupID($group);
-                    $newgroup = 1; // group newly created
-                }
-            }
-            if(!$gid) return false; // group didn't exist and can't be created
-
-            $sql = $this->conf['addUserGroup'];
-            if(strpos($sql, '%{uid}') !== false) {
-                $uid = $this->_getUserID($user);
-                $sql = str_replace('%{uid}', addslashes($uid), $sql);
-            }
-            $sql = str_replace('%{user}', addslashes($user), $sql);
-            $sql = str_replace('%{gid}', addslashes($gid), $sql);
-            $sql = str_replace('%{group}', addslashes($group), $sql);
-            if($this->_modifyDB($sql) !== false) {
-                $this->_flushUserInfoCache($user);
-                return true;
-            }
-
-            if($newgroup) { // remove previously created group on error
-                $sql = str_replace('%{gid}', addslashes($gid), $this->conf['delGroup']);
-                $sql = str_replace('%{group}', addslashes($group), $sql);
-                $this->_modifyDB($sql);
-            }
-        }
-        return false;
-    }
-
-    // @inherit function _delUserFromGroup($user $group)
-    // @inherit function _getGroups($user)
-    // @inherit function _getUserID($user)
-
-    /**
-     * Adds a new User to the database.
-     *
-     * The database connection must already be established
-     * for this function to work. Otherwise it will return
-     * 'false'.
-     *
-     * @param  string $user  login of the user
-     * @param  string $pwd   encrypted password
-     * @param  string $name  full name of the user
-     * @param  string $mail  email address
-     * @param  array  $grps  array of groups the user should become member of
-     * @return bool
-     *
-     * @author  Andreas Gohr <andi@splitbrain.org>
-     * @author  Chris Smith <chris@jalakai.co.uk>
-     * @author  Matthias Grimm <matthiasgrimm@users.sourceforge.net>
-     */
-    protected function _addUser($user, $pwd, $name, $mail, $grps) {
-        if($this->dbcon && is_array($grps)) {
-            $sql = str_replace('%{user}', addslashes($user), $this->conf['addUser']);
-            $sql = str_replace('%{pass}', addslashes($pwd), $sql);
-            $sql = str_replace('%{name}', addslashes($name), $sql);
-            $sql = str_replace('%{email}', addslashes($mail), $sql);
-            if($this->_modifyDB($sql)) {
-                $uid = $this->_getUserID($user);
-            } else {
-                return false;
-            }
-
-            $group = '';
-            $gid = false;
-
-            if($uid) {
-                foreach($grps as $group) {
-                    $gid = $this->_addUserToGroup($user, $group, true);
-                    if($gid === false) break;
-                }
-
-                if($gid !== false){
-                    $this->_flushUserInfoCache($user);
-                    return true;
-                } else {
-                    /* remove the new user and all group relations if a group can't
-                     * be assigned. Newly created groups will remain in the database
-                     * and won't be removed. This might create orphaned groups but
-                     * is not a big issue so we ignore this problem here.
-                     */
-                    $this->_delUser($user);
-                    $this->_debug("PgSQL err: Adding user '$user' to group '$group' failed.", -1, __LINE__, __FILE__);
-                }
-            }
-        }
-        return false;
-    }
-
-    /**
-     * Opens a connection to a database and saves the handle for further
-     * usage in the object. The successful call to this functions is
-     * essential for most functions in this object.
-     *
-     * @author Matthias Grimm <matthiasgrimm@users.sourceforge.net>
-     *
-     * @return bool
-     */
-    protected function _openDB() {
-        if(!$this->dbcon) {
-            $dsn = $this->conf['server'] ? 'host='.$this->conf['server'] : '';
-            $dsn .= ' port='.$this->conf['port'];
-            $dsn .= ' dbname='.$this->conf['database'];
-            $dsn .= ' user='.$this->conf['user'];
-            $dsn .= ' password='.conf_decodeString($this->conf['password']);
-
-            $con = @pg_connect($dsn);
-            if($con) {
-                $this->dbcon = $con;
-                return true; // connection and database successfully opened
-            } else {
-                $this->_debug(
-                        "PgSQL err: Connection to {$this->conf['user']}@{$this->conf['server']} not possible.",
-                        -1, __LINE__, __FILE__
-                    );
-            }
-            return false; // connection failed
-        }
-        return true; // connection already open
-    }
-
-    /**
-     * Closes a database connection.
-     *
-     * @author Matthias Grimm <matthiasgrimm@users.sourceforge.net>
-     */
-    protected function _closeDB() {
-        if($this->dbcon) {
-            pg_close($this->dbcon);
-            $this->dbcon = 0;
-        }
-    }
-
-    /**
-     * Sends a SQL query to the database and transforms the result into
-     * an associative array.
-     *
-     * This function is only able to handle queries that returns a
-     * table such as SELECT.
-     *
-     * @author Matthias Grimm <matthiasgrimm@users.sourceforge.net>
-     *
-     * @param  string $query  SQL string that contains the query
-     * @return array|false the result table
-     */
-    protected function _queryDB($query) {
-        $resultarray = array();
-        if($this->dbcon) {
-            $result = @pg_query($this->dbcon, $query);
-            if($result) {
-                while(($t = pg_fetch_assoc($result)) !== false)
-                    $resultarray[] = $t;
-                pg_free_result($result);
-                return $resultarray;
-            } else{
-                $this->_debug('PgSQL err: '.pg_last_error($this->dbcon), -1, __LINE__, __FILE__);
-            }
-        }
-        return false;
-    }
-
-    /**
-     * Executes an update or insert query. This differs from the
-     * MySQL one because it does NOT return the last insertID
-     *
-     * @author Andreas Gohr <andi@splitbrain.org>
-     *
-     * @param string $query
-     * @return bool
-     */
-    protected function _modifyDB($query) {
-        if($this->dbcon) {
-            $result = @pg_query($this->dbcon, $query);
-            if($result) {
-                pg_free_result($result);
-                return true;
-            }
-            $this->_debug('PgSQL err: '.pg_last_error($this->dbcon), -1, __LINE__, __FILE__);
-        }
-        return false;
-    }
-
-    /**
-     * Start a transaction
-     *
-     * @author Matthias Grimm <matthiasgrimm@users.sourceforge.net>
-     *
-     * @param string $mode  could be 'READ' or 'WRITE'
-     * @return bool
-     */
-    protected function _lockTables($mode) {
-        if($this->dbcon) {
-            $this->_modifyDB('BEGIN');
-            return true;
-        }
-        return false;
-    }
-
-    /**
-     * Commit a transaction
-     *
-     * @author Matthias Grimm <matthiasgrimm@users.sourceforge.net>
-     *
-     * @return bool
-     */
-    protected function _unlockTables() {
-        if($this->dbcon) {
-            $this->_modifyDB('COMMIT');
-            return true;
-        }
-        return false;
-    }
-
-    /**
-     * Escape a string for insertion into the database
-     *
-     * @author Andreas Gohr <andi@splitbrain.org>
-     *
-     * @param  string  $string The string to escape
-     * @param  bool    $like   Escape wildcard chars as well?
-     * @return string
-     */
-    protected function _escape($string, $like = false) {
-        $string = pg_escape_string($string);
-        if($like) {
-            $string = addcslashes($string, '%_');
-        }
-        return $string;
-    }
-}
diff --git a/wiki/lib/plugins/authpgsql/conf/default.php b/wiki/lib/plugins/authpgsql/conf/default.php
deleted file mode 100644
index 7f78280..0000000
--- a/wiki/lib/plugins/authpgsql/conf/default.php
+++ /dev/null
@@ -1,33 +0,0 @@
-<?php
-
-$conf['server']           = '';
-$conf['port']             = 5432;
-$conf['user']             = '';
-$conf['password']         = '';
-$conf['database']         = '';
-$conf['debug']            = 0;
-$conf['forwardClearPass'] = 0;
-$conf['checkPass']        = '';
-$conf['getUserInfo']      = '';
-$conf['getGroups']        = '';
-$conf['getUsers']         = '';
-$conf['FilterLogin']      = '';
-$conf['FilterName']       = '';
-$conf['FilterEmail']      = '';
-$conf['FilterGroup']      = '';
-$conf['SortOrder']        = '';
-$conf['addUser']          = '';
-$conf['addGroup']         = '';
-$conf['addUserGroup']     = '';
-$conf['delGroup']         = '';
-$conf['getUserID']        = '';
-$conf['delUser']          = '';
-$conf['delUserRefs']      = '';
-$conf['updateUser']       = '';
-$conf['UpdateLogin']      = '';
-$conf['UpdatePass']       = '';
-$conf['UpdateEmail']      = '';
-$conf['UpdateName']       = '';
-$conf['UpdateTarget']     = '';
-$conf['delUserGroup']     = '';
-$conf['getGroupID']       = '';
\ No newline at end of file
diff --git a/wiki/lib/plugins/authpgsql/conf/metadata.php b/wiki/lib/plugins/authpgsql/conf/metadata.php
deleted file mode 100644
index cb9c456..0000000
--- a/wiki/lib/plugins/authpgsql/conf/metadata.php
+++ /dev/null
@@ -1,33 +0,0 @@
-<?php
-
-$meta['server']           = array('string','_caution' => 'danger');
-$meta['port']             = array('numeric','_caution' => 'danger');
-$meta['user']             = array('string','_caution' => 'danger');
-$meta['password']         = array('password','_caution' => 'danger','_code'=>'base64');
-$meta['database']         = array('string','_caution' => 'danger');
-$meta['debug']            = array('onoff','_caution' => 'security');
-$meta['forwardClearPass'] = array('onoff','_caution' => 'danger');
-$meta['checkPass']        = array('','_caution' => 'danger');
-$meta['getUserInfo']      = array('','_caution' => 'danger');
-$meta['getGroups']        = array('');
-$meta['getUsers']         = array('','_caution' => 'danger');
-$meta['FilterLogin']      = array('string','_caution' => 'danger');
-$meta['FilterName']       = array('string','_caution' => 'danger');
-$meta['FilterEmail']      = array('string','_caution' => 'danger');
-$meta['FilterGroup']      = array('string','_caution' => 'danger');
-$meta['SortOrder']        = array('string','_caution' => 'danger');
-$meta['addUser']          = array('','_caution' => 'danger');
-$meta['addGroup']         = array('','_caution' => 'danger');
-$meta['addUserGroup']     = array('','_caution' => 'danger');
-$meta['delGroup']         = array('','_caution' => 'danger');
-$meta['getUserID']        = array('','_caution' => 'danger');
-$meta['delUser']          = array('','_caution' => 'danger');
-$meta['delUserRefs']      = array('','_caution' => 'danger');
-$meta['updateUser']       = array('string','_caution' => 'danger');
-$meta['UpdateLogin']      = array('string','_caution' => 'danger');
-$meta['UpdatePass']       = array('string','_caution' => 'danger');
-$meta['UpdateEmail']      = array('string','_caution' => 'danger');
-$meta['UpdateName']       = array('string','_caution' => 'danger');
-$meta['UpdateTarget']     = array('string','_caution' => 'danger');
-$meta['delUserGroup']     = array('','_caution' => 'danger');
-$meta['getGroupID']       = array('','_caution' => 'danger');
diff --git a/wiki/lib/plugins/authpgsql/lang/bg/settings.php b/wiki/lib/plugins/authpgsql/lang/bg/settings.php
deleted file mode 100644
index bd6ae1c..0000000
--- a/wiki/lib/plugins/authpgsql/lang/bg/settings.php
+++ /dev/null
@@ -1,13 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author Kiril <neohidra@gmail.com>
- */
-$lang['server']                = 'ВашиÑÑ‚ PostgreSQL Ñървър';
-$lang['port']                  = 'Порт за PostgreSQL Ñървъра';
-$lang['user']                  = 'PostgreSQL потребител';
-$lang['password']              = 'Парола за Ð³Ð¾Ñ€Ð½Ð¸Ñ Ð¿Ð¾Ñ‚Ñ€ÐµÐ±Ð¸Ñ‚ÐµÐ»';
-$lang['database']              = 'Име на базата от данни';
-$lang['debug']                 = 'Показване на допълнителна debug информациÑ';
diff --git a/wiki/lib/plugins/authpgsql/lang/cs/settings.php b/wiki/lib/plugins/authpgsql/lang/cs/settings.php
deleted file mode 100644
index af8b837..0000000
--- a/wiki/lib/plugins/authpgsql/lang/cs/settings.php
+++ /dev/null
@@ -1,39 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author mkucera66 <mkucera66@seznam.cz>
- * @author Jaroslav Lichtblau <jlichtblau@seznam.cz>
- */
-$lang['server']                = 'Váš server PostgreSQL';
-$lang['port']                  = 'Port vašeho serveru PostgreSQL';
-$lang['user']                  = 'Uživatelské jméno pro PostgreSQL';
-$lang['password']              = 'Heslo tohoto uživatele';
-$lang['database']              = 'Použtá databáze';
-$lang['debug']                 = 'Zobrazit dodateÄné debugovací informace';
-$lang['forwardClearPass']      = 'Posílat uživatelské heslo jako Äistý text do příkazů SQL namísto využití volby passcrypt.';
-$lang['checkPass']             = 'Příkaz SQL pro kontrolu hesel';
-$lang['getUserInfo']           = 'Příkaz SQL pro získání informací o uživateli';
-$lang['getGroups']             = 'Příkaz SQL pro získání Älenství uživatele ve skupinách';
-$lang['getUsers']              = 'Příkaz SQL pro seznam všech uživatelů';
-$lang['FilterLogin']           = 'Příkaz SQL pro filtrování uživatelů podle přihlašovacího jména';
-$lang['FilterName']            = 'Příkaz SQL pro filtrování uživatelů podle celého jména';
-$lang['FilterEmail']           = 'Příkaz SQL pro filtrování uživatelů podle adres e-mailů';
-$lang['FilterGroup']           = 'Příkaz SQL pro filtrování uživatelů podle Älenství ve skupinách';
-$lang['SortOrder']             = 'Příkaz SQL pro řazení uživatelů';
-$lang['addUser']               = 'Příkaz SQL pro řazení uživatelů';
-$lang['addGroup']              = 'Příkaz SQL pro přidání nové skupiny';
-$lang['addUserGroup']          = 'Příkaz SQL pro přidání uživatele do existující skupiny';
-$lang['delGroup']              = 'Příkaz SQL pro vymazání skupiny';
-$lang['getUserID']             = 'Příkaz SQL pro získání primárního klíÄe uživatele';
-$lang['delUser']               = 'Příkaz SQL pro vymazání uživatele';
-$lang['delUserRefs']           = 'Příkaz SQL pro odstranÄ›ní Älenství uživatele se vÅ¡ech skupin';
-$lang['updateUser']            = 'Příkaz SQL pro aktualizaci uživatelského profilu';
-$lang['UpdateLogin']           = 'Klauzule pro aktualizaci pÅ™ihlaÄovacího jména uživatele';
-$lang['UpdatePass']            = 'Klauzule pro aktualizaci hesla uživatele';
-$lang['UpdateEmail']           = 'Klauzule pro aktualizaci e-mailové adresy uživatele';
-$lang['UpdateName']            = 'Klauzule pro aktualizaci celého jména uživatele';
-$lang['UpdateTarget']          = 'Omezující klauzule pro identifikaci uživatele při aktualizaci';
-$lang['delUserGroup']          = 'Příkaz SQL pro zruÅ¡ení Älenství uživatele v dané skupinÄ›';
-$lang['getGroupID']            = 'Příkaz SQL pro získání primárního klíÄe skupiny';
diff --git a/wiki/lib/plugins/authpgsql/lang/cy/settings.php b/wiki/lib/plugins/authpgsql/lang/cy/settings.php
deleted file mode 100644
index 0c32ad7..0000000
--- a/wiki/lib/plugins/authpgsql/lang/cy/settings.php
+++ /dev/null
@@ -1,33 +0,0 @@
-<?php
-
-$lang['server']           = 'Eich gweinydd PostgreSQL';
-$lang['port']             = 'Porth eich gweinydd PostgreSQL';
-$lang['user']             = 'Defnyddair PostgreSQL';
-$lang['password']         = 'Cyfrinair y defnyddiwr uchod';
-$lang['database']         = 'Databas i\'w ddefnyddio';
-$lang['debug']            = 'angos gwybodaeth dadfygio ychwanegol';
-$lang['forwardClearPass'] = 'Pasio cyfrineiriau defnyddwyr fel \'cleartext\' i\'r datganiadau SQL isod, yn hytrach na defnyddio\'r opsiwn \'passcrypt\'';
-$lang['checkPass']        = 'Datganiad SQL i wirio cyfrineiriau';
-$lang['getUserInfo']      = 'Datganiad SQL i nôl gwybodaeth defnyddiwr';
-$lang['getGroups']        = 'Datganiad SQL i nôl aelodaeth grŵp y defnyddiwr';
-$lang['getUsers']         = 'Datganiad SQL i restru pob defnyddiwr';
-$lang['FilterLogin']      = 'Cymal SQL i hidlo defnyddwyr gan enw mewngofnodi';
-$lang['FilterName']       = 'Cymal SQL i hidlo defnyddwyr gan enw llawn';
-$lang['FilterEmail']      = 'Cymal SQL i hidlo defnyddwyr gan gyfeiriad ebost';
-$lang['FilterGroup']      = 'Cymal SQL i hidlo defnyddwyr gan aelodaeth grŵp';
-$lang['SortOrder']        = 'Cymal SQL i drefnu defnyddwyr';
-$lang['addUser']          = 'Datganiad SQL i ychwanegu defnyddiwr newydd';
-$lang['addGroup']         = 'Datganiad SQL i ychwanegu grŵp newydd';
-$lang['addUserGroup']     = 'Datganiad SQL i ychwanegu defnyddiwr newydd i grŵp sy\'n bodoli eisoes';
-$lang['delGroup']         = 'Datganiad SQL i dynnu grŵp';
-$lang['getUserID']        = 'Datganiad SQL i nôl prif allwedd y defnyddiwr';
-$lang['delUser']          = 'Datganiad SQL i ddileu defnyddiwr';
-$lang['delUserRefs']      = 'Datganiad SQL i dynnu defnyddiwr o bob grŵp';
-$lang['updateUser']       = 'Datganiad SQL i ddiweddaru proffil defnyddiwr';
-$lang['UpdateLogin']      = 'Cymal Diweddaru i ddiweddaru enw mewngofnodi defnyddiwr';
-$lang['UpdatePass']       = 'Cymal Diweddaru i ddiweddaru cyfrinair defnyddiwr';
-$lang['UpdateEmail']      = 'Cymal Diweddaru i ddiweddaru cyfeiriad ebost defnyddiwr';
-$lang['UpdateName']       = 'Cymal Diweddaru i ddiweddaru enw llawn defnyddiwr';
-$lang['UpdateTarget']     = 'Cymal Cyfyngu i adnabod y defnyddiwr wrth ddiweddaru';
-$lang['delUserGroup']     = 'Datganiad SQL i dynnu defnyddiwr oddi ar grŵp';
-$lang['getGroupID']       = 'Datganiad SQL i nôl prif allwedd grŵp penodol';
diff --git a/wiki/lib/plugins/authpgsql/lang/da/settings.php b/wiki/lib/plugins/authpgsql/lang/da/settings.php
deleted file mode 100644
index bca2bfb..0000000
--- a/wiki/lib/plugins/authpgsql/lang/da/settings.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Jens Hyllegaard <jens.hyllegaard@gmail.com>
- * @author soer9648 <soer9648@eucl.dk>
- */
-$lang['server']                = 'Din PostgresSQL server';
-$lang['port']                  = 'Din PostgresSQL servers port';
-$lang['password']              = 'Kodeord til ovenstående bruger';
-$lang['database']              = 'Database der skal benyttes';
-$lang['debug']                 = 'Vis yderligere debug output';
-$lang['checkPass']             = 'SQL-sætning til at kontrollere kodeord';
-$lang['getUsers']              = 'SQL-sætning til at liste alle brugere';
-$lang['addUser']               = 'SQL-sætning til at tilføje en ny bruger';
-$lang['addGroup']              = 'SQL-sætning til at tilføje en ny gruppe';
-$lang['addUserGroup']          = 'SQL-sætning til at tilføje en bruger til en eksisterende gruppe';
-$lang['delGroup']              = 'SQL-sætning til at fjerne en gruppe';
-$lang['delUser']               = 'SQL-sætning til at slette en bruger';
-$lang['delUserRefs']           = 'SQL-sætning til at fjerne en bruger fra alle grupper';
-$lang['updateUser']            = 'SQL-sætning til at opdatere en brugerprofil';
diff --git a/wiki/lib/plugins/authpgsql/lang/de-informal/settings.php b/wiki/lib/plugins/authpgsql/lang/de-informal/settings.php
deleted file mode 100644
index 2547e2c..0000000
--- a/wiki/lib/plugins/authpgsql/lang/de-informal/settings.php
+++ /dev/null
@@ -1,39 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Matthias Schulte <dokuwiki@lupo49.de>
- * @author Volker Bödker <volker@boedker.de>
- */
-$lang['server']                = 'PostgreSQL-Server';
-$lang['port']                  = 'Port des PostgreSQL-Servers.';
-$lang['user']                  = 'Benutzername für den Zugriff auf den PostgreSQL-Server.';
-$lang['password']              = 'Passwort des angegebenen Benutzers.';
-$lang['database']              = 'Zu verwendende 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['checkPass']             = 'SQL-Kommando zum Überprüfen von Passwörtern.';
-$lang['getUserInfo']           = 'SQL-Kommando um Benutzerinformationen auszulesen.';
-$lang['getGroups']             = 'SQL-Kommando um Gruppen eines Benutzers auszulesen.';
-$lang['getUsers']              = 'SQL-Kommando um alle Benutzer auszulesen.';
-$lang['FilterLogin']           = 'SQL-Bedingung um Benutzer anhand ihres Anmeldenamens zu filtern.';
-$lang['FilterName']            = 'SQL-Bedingung um Benutzer anhand ihres Namens zu filtern.';
-$lang['FilterEmail']           = 'SQL-Bedingung um Benutzer anhand ihrer E-Mail-Adresse zu filtern.';
-$lang['FilterGroup']           = 'SQL-Bedingung um Benutzer anhand ihrer Gruppenzugehörigkeit zu filtern.';
-$lang['SortOrder']             = 'SQL-Bedingung um anhand der die Benutzerliste sortiert wird.';
-$lang['addUser']               = 'SQL-Kommando um einen neuen Benutzer anzulegen.';
-$lang['addGroup']              = 'SQL-Kommando um eine neue Gruppe anzulegen.';
-$lang['addUserGroup']          = 'SQL-Kommando um einen Benutzer zu einer Gruppe hinzuzufügen.';
-$lang['delGroup']              = 'SQL-Kommando um eine Gruppe zu löschen.';
-$lang['getUserID']             = 'SQL-Kommando um den Primärschlüssel des Benutzers auszulesen.';
-$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['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/wiki/lib/plugins/authpgsql/lang/de/settings.php b/wiki/lib/plugins/authpgsql/lang/de/settings.php
deleted file mode 100644
index 6a18811..0000000
--- a/wiki/lib/plugins/authpgsql/lang/de/settings.php
+++ /dev/null
@@ -1,39 +0,0 @@
-<?php
-
-/**
- * @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.';
-$lang['user']                  = 'Benutzername für den Zugriff auf den PostgreSQL-Server.';
-$lang['password']              = 'Passwort des angegebenen Benutzers.';
-$lang['database']              = 'Zu verwendende 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['checkPass']             = 'SQL-Kommando zum Überprüfen von Passwörtern.';
-$lang['getUserInfo']           = 'SQL-Kommando um Benutzerinformationen auszulesen.';
-$lang['getGroups']             = 'SQL-Kommando um Gruppen eines Benutzers auszulesen.';
-$lang['getUsers']              = 'SQL-Kommando um alle Benutzer auszulesen.';
-$lang['FilterLogin']           = 'SQL-Bedingung um Benutzer anhand ihres Anmeldenamens zu filtern.';
-$lang['FilterName']            = 'SQL-Bedingung um Benutzer anhand ihres Namens zu filtern.';
-$lang['FilterEmail']           = 'SQL-Bedingung um Benutzer anhand ihrer E-Mail-Adresse zu filtern.';
-$lang['FilterGroup']           = 'SQL-Bedingung um Benutzer anhand ihrer Gruppenzugehörigkeit zu filtern.';
-$lang['SortOrder']             = 'SQL-Bedingung um anhand der die Benutzerliste sortiert wird.';
-$lang['addUser']               = 'SQL-Kommando um einen neuen Benutzer anzulegen.';
-$lang['addGroup']              = 'SQL-Kommando um eine neue Gruppe anzulegen.';
-$lang['addUserGroup']          = 'SQL-Kommando um einen Benutzer zu einer Gruppe hinzuzufügen.';
-$lang['delGroup']              = 'SQL-Kommando um eine Gruppe zu löschen.';
-$lang['getUserID']             = 'SQL-Kommando um den Primärschlüssel des Benutzers auszulesen.';
-$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-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/wiki/lib/plugins/authpgsql/lang/en/settings.php b/wiki/lib/plugins/authpgsql/lang/en/settings.php
deleted file mode 100644
index cfb2686..0000000
--- a/wiki/lib/plugins/authpgsql/lang/en/settings.php
+++ /dev/null
@@ -1,33 +0,0 @@
-<?php
-
-$lang['server']           = 'Your PostgreSQL server';
-$lang['port']             = 'Your PostgreSQL server\'s port';
-$lang['user']             = 'PostgreSQL user name';
-$lang['password']         = 'Password for above user';
-$lang['database']         = 'Database to use';
-$lang['debug']            = 'Display additional debug information';
-$lang['forwardClearPass'] = 'Pass user passwords as cleartext to the SQL statements below, instead of using the passcrypt option';
-$lang['checkPass']        = 'SQL statement for checking passwords';
-$lang['getUserInfo']      = 'SQL statement for retrieving user information';
-$lang['getGroups']        = 'SQL statement for retrieving a user\'s group memberships';
-$lang['getUsers']         = 'SQL statement to list all users';
-$lang['FilterLogin']      = 'SQL clause for filtering users by login name';
-$lang['FilterName']       = 'SQL clause for filtering users by full name';
-$lang['FilterEmail']      = 'SQL clause for filtering users by email address';
-$lang['FilterGroup']      = 'SQL clause for filtering users by group membership';
-$lang['SortOrder']        = 'SQL clause to sort users';
-$lang['addUser']          = 'SQL statement to add a new user';
-$lang['addGroup']         = 'SQL statement to add a new group';
-$lang['addUserGroup']     = 'SQL statement to add a user to an existing group';
-$lang['delGroup']         = 'SQL statement to remove a group';
-$lang['getUserID']        = 'SQL statement to get the primary key of a user';
-$lang['delUser']          = 'SQL statement to delete a user';
-$lang['delUserRefs']      = 'SQL statement to remove a user from all groups';
-$lang['updateUser']       = 'SQL statement to update a user profile';
-$lang['UpdateLogin']      = 'Update clause for updating the user\'s login name';
-$lang['UpdatePass']       = 'Update clause for updating the user\'s password';
-$lang['UpdateEmail']      = 'Update clause for updating the user\'s email address';
-$lang['UpdateName']       = 'Update clause for updating the user\'s full name';
-$lang['UpdateTarget']     = 'Limit clause to identify the user when updating';
-$lang['delUserGroup']     = 'SQL statement to remove a user from a given group';
-$lang['getGroupID']       = 'SQL statement to get the primary key of a given group';
diff --git a/wiki/lib/plugins/authpgsql/lang/eo/settings.php b/wiki/lib/plugins/authpgsql/lang/eo/settings.php
deleted file mode 100644
index 3af6b40..0000000
--- a/wiki/lib/plugins/authpgsql/lang/eo/settings.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- */
-$lang['server']                = 'Via PostgreSQL-servilo';
-$lang['port']                  = 'Via PostgreSQL-servila pordego';
-$lang['user']                  = 'PostgreSQL-uzantonomo';
-$lang['password']              = 'Pasvorto por tiu uzanto';
-$lang['database']              = 'Uzenda datumbazo';
-$lang['debug']                 = 'Ĉu indiki aldonajn erarinformojn';
-$lang['forwardClearPass']      = 'Ĉu transdoni pasvortojn klartekste al la SQL-frazoj sube anstataÅ­ uzi pasvortan kaÅon';
-$lang['checkPass']             = 'SQL-frazo por testi pasvortojn';
-$lang['getUserInfo']           = 'SQL-frazo por ricevi uzantajn informojn';
-$lang['getGroups']             = 'SQL-frazo por ricevi la grupmembrecojn de uzanto';
-$lang['getUsers']              = 'SQL-frazo por listigi ĉiujn uzantojn';
-$lang['FilterLogin']           = 'SQL-frazo por filtri uzantojn je ensaluta nomo';
-$lang['FilterName']            = 'SQL-frazo por filtri uzantojn je plena nomo';
-$lang['FilterEmail']           = 'SQL-frazo por filtri uzantojn je retpoÅtadreso';
-$lang['FilterGroup']           = 'SQL-frazo por filtri uzantojn je grupmembreco';
-$lang['SortOrder']             = 'SQL-frazo por ordigi uzantojn';
-$lang['addUser']               = 'SQL-frazo por aldoni novan uzanton';
-$lang['addGroup']              = 'SQL-frazo por aldoni novan grupon';
-$lang['addUserGroup']          = 'SQL-frazo por aldoni uzanton al ekzistanta grupo';
-$lang['delGroup']              = 'SQL-frazo por forigi grupon';
-$lang['getUserID']             = 'SQL-frazo por ricevi la ĉefan Ålosilon de uzanto';
-$lang['delUser']               = 'SQL-frazo por forigi uzanton';
-$lang['delUserRefs']           = 'SQL-frazo por forigi uzanton el ĉiuj grupoj';
-$lang['updateUser']            = 'SQL-frazo por aktualigi uzantan profilon';
-$lang['UpdateLogin']           = 'Aktualiga frazo por uzanta ensalutnomo';
-$lang['UpdatePass']            = 'Aktualiga frazo por uzanta pasvorto';
-$lang['UpdateEmail']           = 'Aktualiga frazo por uzanta retpoÅtadreso';
-$lang['UpdateName']            = 'Aktualiga frazo por plena uzanta nomo';
-$lang['UpdateTarget']          = 'Limiga frazo por identigi la uzanton dum aktualigado';
-$lang['delUserGroup']          = 'SQL-frazo por forigi uzanton el indikita grupo';
-$lang['getGroupID']            = 'SQL-frazo por ricevi la ĉefan Ålosilon de indikita grupo';
diff --git a/wiki/lib/plugins/authpgsql/lang/es/settings.php b/wiki/lib/plugins/authpgsql/lang/es/settings.php
deleted file mode 100644
index 384d798..0000000
--- a/wiki/lib/plugins/authpgsql/lang/es/settings.php
+++ /dev/null
@@ -1,41 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Antonio Bueno <atnbueno@gmail.com>
- * @author Antonio Castilla <antoniocastilla@trazoide.com>
- * @author pokesakura <pokesakura@gmail.com>
- * @author Domingo Redal <docxml@gmail.com>
- */
-$lang['server']                = 'Su servidor PostgreSQL';
-$lang['port']                  = 'Puerto de su servidor PostgreSQL';
-$lang['user']                  = 'Nombre de usuario PostgreSQL';
-$lang['password']              = 'Contraseña del usuario indicado';
-$lang['database']              = 'Base de datos a usar';
-$lang['debug']                 = 'Muestra la información de depuración adicional';
-$lang['forwardClearPass']      = 'Pasar las contraseñas de usuario en texto plano a las siguientes sentencias de SQL, en lugar de utilizar la opción passcrypt';
-$lang['checkPass']             = 'Sentencia SQL para el control de las contraseñas';
-$lang['getUserInfo']           = 'Sentencia SQL para recuperar información del usuario';
-$lang['getGroups']             = 'Sentencia SQL para recuperar la pertenencia a grupos de un usuario';
-$lang['getUsers']              = 'Sentencia SQL para enumerar todos los usuarios';
-$lang['FilterLogin']           = 'Sentencia SQL para filtrar a los usuarios por su login';
-$lang['FilterName']            = 'Sentencia SQL para filtrar a los usuarios por su nombre completo';
-$lang['FilterEmail']           = 'Sentencia SQL para filtrar a los usuarios por su correo electrónico';
-$lang['FilterGroup']           = 'Sentencia SQL para filtrar a los usuarios por su membresía en un grupo';
-$lang['SortOrder']             = 'Sentencia SQL para ordenar a los usuarios';
-$lang['addUser']               = 'Sentencia de SQL para agregar un nuevo usuario';
-$lang['addGroup']              = 'Sentencia de SQL para agregar un nuevo grupo';
-$lang['addUserGroup']          = 'Sentencia SQL para agregar un usuario a un grupo existente';
-$lang['delGroup']              = 'Instrucción SQL para eliminar un grupo';
-$lang['getUserID']             = 'Sentencia SQL para obtener la clave principal de un usuario';
-$lang['delUser']               = 'Sentencia SQL para eliminar un usuario';
-$lang['delUserRefs']           = 'Sentencia SQL para remover a un usuario de su memebresia en todos los grupos';
-$lang['updateUser']            = 'Sentencia SQL para actualizar los datos del usuario';
-$lang['UpdateLogin']           = 'Sentencia de actualizacion para el login del usuario';
-$lang['UpdatePass']            = 'Sentencia de actualizacion para el password del usuario';
-$lang['UpdateEmail']           = 'Sentencia de actualizacion del correo electrónico del usuario';
-$lang['UpdateName']            = 'Sentencia de actualizacion del nombre completo del usuario';
-$lang['UpdateTarget']          = 'Cláusula limite para identificar al usuario cuando se actualiza';
-$lang['delUserGroup']          = 'Sentencia SQL para eliminar un usuario de un grupo determinado';
-$lang['getGroupID']            = 'Sentencia SQL para obtener la clave principal de un grupo dado';
diff --git a/wiki/lib/plugins/authpgsql/lang/fa/settings.php b/wiki/lib/plugins/authpgsql/lang/fa/settings.php
deleted file mode 100644
index 9fe5032..0000000
--- a/wiki/lib/plugins/authpgsql/lang/fa/settings.php
+++ /dev/null
@@ -1,40 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Mohamad Mehdi Habibi <habibi.esf@gmail.com>
- * @author Mohmmad Razavi <sepent@gmail.com>
- * @author Masoud Sadrnezhaad <masoud@sadrnezhaad.ir>
- */
-$lang['server']                = 'سرور PostgreSQL شما';
-$lang['port']                  = 'پورت سرور PostgreSQL شما';
-$lang['user']                  = 'نام کاربری PostgreSQL';
-$lang['password']              = 'رمزعبور کابر بالا';
-$lang['database']              = 'پایگاه داده مورد Ø§Ø³ØªÙØ§Ø¯Ù‡';
-$lang['debug']                 = 'نمایش اطلاعات بیشتر برای خطایابی';
-$lang['forwardClearPass']      = 'به جای Ø§Ø³ØªÙØ§Ø¯Ù‡ از امکان رمزنگاری، پسورد کاربران به صورت متنی به دستورات SQL ارسال شود';
-$lang['checkPass']             = 'دستور SQL برای چک کردن پسورد';
-$lang['getUserInfo']           = 'دستور SQL برای Ø¯Ø±ÛŒØ§ÙØª اطلاعات کاربران';
-$lang['getGroups']             = 'دستور SQL برای Ø¯Ø±ÛŒØ§ÙØª گروه‌های یک کاربر';
-$lang['getUsers']              = 'دستور SQL برای Ùهرست کردن تمام کاربران';
-$lang['FilterLogin']           = 'کلاز SQL برای Ùیلتر کردن کاربران با نام کاربری';
-$lang['FilterName']            = 'کلاز SQL برای Ùیلتر کردن کاربران با نام کامل';
-$lang['FilterEmail']           = 'کلاز SQL برای Ùیلتر کردن کاربران با آدرس ایمیل';
-$lang['FilterGroup']           = 'کلاز SQL برای Ùیلتر کردن کاربران با عضویت در گروه';
-$lang['SortOrder']             = 'کلاز SQL برای مرتب کردن کاربران';
-$lang['addUser']               = 'دستور SQL برای Ø§ÙØ²ÙˆØ¯Ù† کاربر جدید';
-$lang['addGroup']              = 'دستور SQL برای Ø§ÙØ²ÙˆØ¯Ù† گروه جدید';
-$lang['addUserGroup']          = 'دستور SQL برای Ø§ÙØ²ÙˆØ¯Ù† یک کاربر به یک گروه موجود';
-$lang['delGroup']              = 'دستور SQL برای پاک کردن یک گروه';
-$lang['getUserID']             = 'دستور SQL برای Ú¯Ø±ÙØªÙ† کلید اصلی یک کاربر';
-$lang['delUser']               = 'دستور SQL برای حذ٠یک کاربر';
-$lang['delUserRefs']           = 'دستور SQL برای پاک کردن یک کاربر از تمام گروه‌ها';
-$lang['updateUser']            = 'دستور SQL برای به‌روزرسانی Ù¾Ø±ÙˆÙØ§ÛŒÙ„ کاربر';
-$lang['UpdateLogin']           = 'کلاز Update برای به روز کردن نام کاربری';
-$lang['UpdatePass']            = 'کلاز Update برای به روز کردن پسورد کاربر';
-$lang['UpdateEmail']           = 'کلاز Update برای به روز کردن ایمیل کاربر';
-$lang['UpdateName']            = 'کلاز Update برای به روز کردن نام کامل کاربر';
-$lang['UpdateTarget']          = 'کلاز Limit برای شناسایی کاربر هنگام به روز رسانی';
-$lang['delUserGroup']          = 'دستور SQL برای حذ٠یک کاربر از یک گروه';
-$lang['getGroupID']            = 'دستور SQL برای Ú¯Ø±ÙØªÙ† کلید اصلی یک گروه';
diff --git a/wiki/lib/plugins/authpgsql/lang/fr/settings.php b/wiki/lib/plugins/authpgsql/lang/fr/settings.php
deleted file mode 100644
index 8cd9c6a..0000000
--- a/wiki/lib/plugins/authpgsql/lang/fr/settings.php
+++ /dev/null
@@ -1,38 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Bruno Veilleux <bruno.vey@gmail.com>
- */
-$lang['server']                = 'Votre serveur PostgreSQL';
-$lang['port']                  = 'Le port de votre serveur PostgreSQL';
-$lang['user']                  = 'Nom d\'utilisateur PostgreSQL';
-$lang['password']              = 'Mot de passe pour l\'utilisateur ci-dessus';
-$lang['database']              = 'Base de données à utiliser';
-$lang['debug']                 = 'Afficher des informations de débogage supplémentaires';
-$lang['forwardClearPass']      = 'Passer les mots de passe aux requêtes SQL ci-dessous en cleartext plutôt qu\'avec l\'option passcrypt';
-$lang['checkPass']             = 'Requête SQL pour la vérification des mots de passe';
-$lang['getUserInfo']           = 'Requête SQL pour la récupération des informations d\'un utilisateur';
-$lang['getGroups']             = 'Requête SQL pour la récupération des groupes d\'un utilisateur';
-$lang['getUsers']              = 'Requête SQL pour énumérer tous les utilisateurs';
-$lang['FilterLogin']           = 'Clause SQL pour filtrer les utilisateurs par identifiant';
-$lang['FilterName']            = 'Clause SQL pour filtrer les utilisateurs par nom complet';
-$lang['FilterEmail']           = 'Clause SQL pour filtrer les utilisateurs par adresse électronique';
-$lang['FilterGroup']           = 'Clause SQL pour filtrer les utilisateurs par groupes';
-$lang['SortOrder']             = 'Clause SQL pour trier les utilisateurs';
-$lang['addUser']               = 'Requête SQL pour ajouter un nouvel utilisateur';
-$lang['addGroup']              = 'Requête SQL pour ajouter un nouveau groupe';
-$lang['addUserGroup']          = 'Requête SQL pour ajouter un utilisateur à un groupe existant';
-$lang['delGroup']              = 'Requête SQL pour retirer un groupe';
-$lang['getUserID']             = 'Requête SQL pour obtenir la clé primaire d\'un utilisateur';
-$lang['delUser']               = 'Requête SQL pour supprimer un utilisateur';
-$lang['delUserRefs']           = 'Requête SQL pour retirer un utilisateur de tous les groupes';
-$lang['updateUser']            = 'Requête SQL pour mettre à jour le profil d\'un utilisateur';
-$lang['UpdateLogin']           = 'Clause de mise à jour pour mettre à jour l\'identifiant d\'un utilisateur';
-$lang['UpdatePass']            = 'Clause de mise à jour pour mettre à jour le mot de passe d\'un utilisateur';
-$lang['UpdateEmail']           = 'Clause de mise à jour pour mettre à jour l\'adresse électronique d\'un utilisateur';
-$lang['UpdateName']            = 'Clause de mise à jour pour mettre à jour le nom complet d\'un utilisateur';
-$lang['UpdateTarget']          = 'Clause de limite pour identifier l\'utilisateur durant une mise à jour';
-$lang['delUserGroup']          = 'Requête SQL pour retirer un utilisateur d\'un groupe donné';
-$lang['getGroupID']            = 'Requête SQL pour obtenir la clé primaire d\'un groupe donné';
diff --git a/wiki/lib/plugins/authpgsql/lang/hr/settings.php b/wiki/lib/plugins/authpgsql/lang/hr/settings.php
deleted file mode 100644
index 2cec4e5..0000000
--- a/wiki/lib/plugins/authpgsql/lang/hr/settings.php
+++ /dev/null
@@ -1,38 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Davor Turkalj <turki.bsc@gmail.com>
- */
-$lang['server']                = 'Vaš PostgreSQL server';
-$lang['port']                  = 'Port vašeg PostgreSQL servera';
-$lang['user']                  = 'PostgreSQL korisniÄko ime';
-$lang['password']              = 'Lozinka gore navedenoga korisnika';
-$lang['database']              = 'Baza koja se koristi';
-$lang['debug']                 = 'Prikaz dodatnih dijagnostiÄkih informacija';
-$lang['forwardClearPass']      = 'Proslijed lozinku kao obiÄan tekst u SQL izrazima koji slijede, umjesto koriÅ¡tenja passcrypt opcije';
-$lang['checkPass']             = 'SQL izraz za provjeru lozinke';
-$lang['getUserInfo']           = 'SQL izraz za dohvat korisniÄkih informacija';
-$lang['getGroups']             = 'SQL izraz za dohvat korisniÄkog Älanstva u grupama';
-$lang['getUsers']              = 'SQL izraz za ispis svih korisnika';
-$lang['FilterLogin']           = 'SQL izraz za filtriranje korisnika po korisniÄkom imenu';
-$lang['FilterName']            = 'SQL izraz za filtriranje korisnika po punom imenu';
-$lang['FilterEmail']           = 'SQL izraz za filtriranje korisnika po email adresi';
-$lang['FilterGroup']           = 'SQL izraz za filtriranje korisnika po Älanstvu u grupama';
-$lang['SortOrder']             = 'SQL izraz za sortiranje korisnika';
-$lang['addUser']               = 'SQL izraz za dodavanje novog korisnika';
-$lang['addGroup']              = 'SQL izraz za dodavanje nove grupe';
-$lang['addUserGroup']          = 'SQL izraz za dodavanje korisnika u postojeću grupu';
-$lang['delGroup']              = 'SQL izraz za brisanje grupe';
-$lang['getUserID']             = 'SQL izraz za dohvaćanje primarnog kljuÄa korisnika';
-$lang['delUser']               = 'SQL izraz za brisanje korisnika';
-$lang['delUserRefs']           = 'SQL izraz za uklanjanje korisnika iz svih grupa';
-$lang['updateUser']            = 'SQL izraz za ažuriranje korisniÄkog profila';
-$lang['UpdateLogin']           = 'UPDATE izraz za ažuriranje korisniÄkog imena';
-$lang['UpdatePass']            = 'UPDATE izraz za ažuriranje korisniÄke lozinke';
-$lang['UpdateEmail']           = 'UPDATE izraz za ažuriranje korisniÄke email adrese';
-$lang['UpdateName']            = 'UPDATE izraz za ažuriranje korisniÄkog punog imena';
-$lang['UpdateTarget']          = 'Limitirajući izraz za identificiranje korisnika pri ažuriranju';
-$lang['delUserGroup']          = 'SQL izraz za uklanjanje korisnika iz navedenih grupa';
-$lang['getGroupID']            = 'SQL izraz za dobivanje primarnog kljuÄa navedene grupe';
diff --git a/wiki/lib/plugins/authpgsql/lang/hu/settings.php b/wiki/lib/plugins/authpgsql/lang/hu/settings.php
deleted file mode 100644
index 213fc87..0000000
--- a/wiki/lib/plugins/authpgsql/lang/hu/settings.php
+++ /dev/null
@@ -1,39 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author Marton Sebok <sebokmarton@gmail.com>
- * @author Marina Vladi <deldadam@gmail.com>
- */
-$lang['server']                = 'PostgreSQL-kiszolgáló';
-$lang['port']                  = 'PostgreSQL-kiszolgáló portja';
-$lang['user']                  = 'PostgreSQL-felhasználónév';
-$lang['password']              = 'Fenti felhasználó jelszava';
-$lang['database']              = 'Adatbázis';
-$lang['debug']                 = 'Hibakeresési üzenetek megjelenítése';
-$lang['forwardClearPass']      = 'A jelszó nyílt szövegben való átadása a következő SQL utasításokban a passcrypt opció használata helyett';
-$lang['checkPass']             = 'SQL-utasítás a jelszavak ellenőrzéséhez';
-$lang['getUserInfo']           = 'SQL-utasítás a felhasználói információk lekérdezéséhez';
-$lang['getGroups']             = 'SQL-utasítás egy felhasználó csoporttagságainak lekérdezéséhez';
-$lang['getUsers']              = 'SQL-utasítás a felhasználók listázásához';
-$lang['FilterLogin']           = 'SQL-kifejezés a felhasználók azonosító alapú szűréséhez';
-$lang['FilterName']            = 'SQL-klauzula a felhasználók név alapú szűréséhez';
-$lang['FilterEmail']           = 'SQL-klauzula a felhasználók e-mail cím alapú szűréséhez';
-$lang['FilterGroup']           = 'SQL-klauzula a felhasználók csoporttagság alapú szűréséhez';
-$lang['SortOrder']             = 'SQL-klauzula a felhasználók rendezéséhez';
-$lang['addUser']               = 'SQL-klauzula új felhasználó hozzáadásához';
-$lang['addGroup']              = 'SQL-klauzula új csoport hozzáadásához';
-$lang['addUserGroup']          = 'SQL-utasítás felhasználó meglévő csoporthoz való hozzáadásához';
-$lang['delGroup']              = 'SQL-utasítás csoport törléséhez';
-$lang['getUserID']             = 'SQL-utasítás felhasználó elsődleges kulcsának lekérdezéséhez';
-$lang['delUser']               = 'SQL-utasítás felhasználó törléséhez';
-$lang['delUserRefs']           = 'SQL-utasítás felhasználó összes csoportból való törléséhez';
-$lang['updateUser']            = 'SQL-utasítás felhasználó profiljának frissítéséhez';
-$lang['UpdateLogin']           = 'UPDATE-klauzula felhasználók azonosítójának frissítéséhez';
-$lang['UpdatePass']            = 'UPDATE-klauzula felhasználók jelszavának frissítéséhez';
-$lang['UpdateEmail']           = 'UPDATE-klauzula felhasználók e-mailcímének frissítéséhez';
-$lang['UpdateName']            = 'SQL-kifejezés a felhasználó nevének frissítéséhez';
-$lang['UpdateTarget']          = 'SQL-kifejezés a felhasználó kiválasztásához az adatok frissítésekor';
-$lang['delUserGroup']          = 'SQL-utasítás egy felhasználó eltávolításához egy adott csoportból';
-$lang['getGroupID']            = 'SQL-utasítás egy csoport elsődleges kulcsának lekérdezéséhez';
diff --git a/wiki/lib/plugins/authpgsql/lang/it/settings.php b/wiki/lib/plugins/authpgsql/lang/it/settings.php
deleted file mode 100644
index 365fc47..0000000
--- a/wiki/lib/plugins/authpgsql/lang/it/settings.php
+++ /dev/null
@@ -1,40 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Francesco <francesco.cavalli@hotmail.com>
- * @author Torpedo <dgtorpedo@gmail.com>
- * @author Maurizio <mcannavo@katamail.com>
- */
-$lang['server']                = 'Il tuo server PostgreSQL ';
-$lang['port']                  = 'La porta del tuo server PostgreSQL ';
-$lang['user']                  = 'Lo username PostgreSQL';
-$lang['password']              = 'Password dell\'utente summenzionato';
-$lang['database']              = 'Database da usare';
-$lang['debug']                 = 'Visualizza informazioni addizionali di debug';
-$lang['forwardClearPass']      = 'Fornisci le password utente come testo visibile alle istruzioni SQL qui sotto, invece che usare l\'opzione passcrypt';
-$lang['checkPass']             = 'Istruzione SQL per il controllo password';
-$lang['getUserInfo']           = 'Istruzione SQL per recuperare le informazioni utente';
-$lang['getGroups']             = 'Istruzione SQL per recuperare il gruppo di appartenenza di un utente';
-$lang['getUsers']              = 'Istruzione SQL per elencare tutti gli utenti';
-$lang['FilterLogin']           = 'Condizione SQL per filtrare gli utenti in base al nome di accesso';
-$lang['FilterName']            = 'Condizione SQL per filtrare gli utenti in base al nome completo';
-$lang['FilterEmail']           = 'Condizione SQL per filtrare gli utenti in base all\'indirizzo e-mail';
-$lang['FilterGroup']           = 'Condizione SQL per filtrare gli utenti in base al gruppo di appartenenza';
-$lang['SortOrder']             = 'Condizione SQL per ordinare gli utenti';
-$lang['addUser']               = 'Istruzione SQL per aggiungere un nuovo utente';
-$lang['addGroup']              = 'Istruzione SQL per aggiungere un nuovo gruppo';
-$lang['addUserGroup']          = 'Istruzione SQL per aggiungere un utente ad un gruppo esistente';
-$lang['delGroup']              = 'Istruzione SQL per imuovere un gruppo';
-$lang['getUserID']             = 'Istruzione SQL per recuperare la primary key di un utente';
-$lang['delUser']               = 'Istruzione SQL per cancellare un utente';
-$lang['delUserRefs']           = 'Istruzione SQL per rimuovere un utente da tutti i gruppi';
-$lang['updateUser']            = 'Istruzione SQL per aggiornare il profilo utente';
-$lang['UpdateLogin']           = 'Condizione SQL per aggiornare il nome di accesso dell\'utente';
-$lang['UpdatePass']            = 'Condizione SQL per aggiornare la password utente';
-$lang['UpdateEmail']           = 'Condizione SQL per aggiornare l\'e-mail utente';
-$lang['UpdateName']            = 'Condizione SQL per aggiornare il nome completo dell\'utente';
-$lang['UpdateTarget']          = 'Condizione SQL per identificare l\'utente quando aggiornato';
-$lang['delUserGroup']          = 'Istruzione SQL per rimuovere un utente da un dato gruppo';
-$lang['getGroupID']            = 'Istruzione SQL per avere la primary key di un dato gruppo';
diff --git a/wiki/lib/plugins/authpgsql/lang/ja/settings.php b/wiki/lib/plugins/authpgsql/lang/ja/settings.php
deleted file mode 100644
index 001008c..0000000
--- a/wiki/lib/plugins/authpgsql/lang/ja/settings.php
+++ /dev/null
@@ -1,38 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Satoshi Sahara <sahara.satoshi@gmail.com>
- */
-$lang['server']                = 'PostgreSQL ã®ã‚µãƒ¼ãƒãƒ¼å';
-$lang['port']                  = 'PostgreSQL サーãƒãƒ¼ã®ãƒãƒ¼ãƒˆç•ªå·';
-$lang['user']                  = 'PostgreSQL 接続用ユーザーå';
-$lang['password']              = 'PostgreSQL 接続用ユーザーã®ãƒ‘スワード';
-$lang['database']              = '使用ã™ã‚‹ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹å';
-$lang['debug']                 = 'デãƒãƒƒã‚¯æƒ…報を表示ã™ã‚‹';
-$lang['forwardClearPass']      = '以下ã§å®šç¾©ã™ã‚‹ SQL ステートメントã«ãŠã„ã¦, パスワード変数 を平文ã¨ã™ã‚‹(DokiWikiå´ã§æš—å·åŒ–ã—ãªã„)';
-$lang['checkPass']             = 'パスワードã®ç…§åˆã«ç”¨ã„ã‚‹ SQL ステートメント';
-$lang['getUserInfo']           = 'ユーザー情報ã®å–å¾—ã«ç”¨ã„ã‚‹ SQL ステートメント';
-$lang['getGroups']             = 'ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒæ‰€å±žã™ã‚‹å…¨ã¦ã®ã‚°ãƒ«ãƒ¼ãƒ—ã®å–å¾—ã«ç”¨ã„ã‚‹ SQL ステートメント';
-$lang['getUsers']              = 'ユーザーリストをå–å¾—ã™ã‚‹ SQL ステートメント';
-$lang['FilterLogin']           = 'ユーザーリストをログインåã§çµžã‚Šè¾¼ã‚€ SQL å¥';
-$lang['FilterName']            = 'ユーザーリストをフルãƒãƒ¼ãƒ ã§çµžã‚Šè¾¼ã‚€ SQL å¥';
-$lang['FilterEmail']           = 'ユーザーリストをメールアドレスã§çµžã‚Šè¾¼ã‚€ SQL å¥';
-$lang['FilterGroup']           = 'ユーザーリストを所属グループã§çµžã‚Šè¾¼ã‚€ SQL å¥';
-$lang['SortOrder']             = 'ユーザーリストã®ã‚½ãƒ¼ãƒˆæ–¹æ³•を指定ã™ã‚‹ SQL å¥';
-$lang['addUser']               = 'æ–°è¦ãƒ¦ãƒ¼ã‚¶ãƒ¼ã‚’追加ã™ã‚‹ SQL ステートメント';
-$lang['addGroup']              = 'æ–°è¦ã‚°ãƒ«ãƒ¼ãƒ—を追加ã™ã‚‹ SQL ステートメント';
-$lang['addUserGroup']          = 'ユーザーをグループã«é…属ã™ã‚‹ SQL ステートメント';
-$lang['delGroup']              = 'グループを削除ã™ã‚‹ SQL ステートメント';
-$lang['getUserID']             = 'ユーザーIDã®å–å¾—ã«ç”¨ã„ã‚‹ SQL ステートメン';
-$lang['delUser']               = 'ユーザーを削除ã™ã‚‹ SQL ステートメント';
-$lang['delUserRefs']           = 'ユーザーã®ã‚°ãƒ«ãƒ¼ãƒ—所属を全ã¦å–り消㙠SQL ステートメント';
-$lang['updateUser']            = 'ユーザー情報を変更ã™ã‚‹ SQL ステートメント';
-$lang['UpdateLogin']           = '変更後ã®ãƒ­ã‚°ã‚¤ãƒ³åを指定ã™ã‚‹ SQL å¥';
-$lang['UpdatePass']            = '変更後ã®ãƒ‘スワードを指定ã™ã‚‹ SQL å¥';
-$lang['UpdateEmail']           = '変更後ã®ãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’指定ã™ã‚‹ SQL å¥';
-$lang['UpdateName']            = '変更後ã®ãƒ•ルãƒãƒ¼ãƒ ã‚’指定ã™ã‚‹ SQL å¥';
-$lang['UpdateTarget']          = '変更対象ã®ãƒ¦ãƒ¼ã‚¶ã‚’特定ã™ã‚‹ãŸã‚ã® SQL å¥';
-$lang['delUserGroup']          = 'ユーザーをグループã‹ã‚‰é™¤åã™ã‚‹ SQL ステートメント';
-$lang['getGroupID']            = 'グループIDã®å–å¾—ã«ç”¨ã„ã‚‹ SQL ステートメント';
diff --git a/wiki/lib/plugins/authpgsql/lang/ko/settings.php b/wiki/lib/plugins/authpgsql/lang/ko/settings.php
deleted file mode 100644
index fd45bfa..0000000
--- a/wiki/lib/plugins/authpgsql/lang/ko/settings.php
+++ /dev/null
@@ -1,39 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Myeongjin <aranet100@gmail.com>
- * @author Garam <rowain8@gmail.com>
- */
-$lang['server']                = 'PostgreSQL 서버';
-$lang['port']                  = 'PostgreSQL ì„œë²„ì˜ í¬íЏ';
-$lang['user']                  = 'PostgreSQL ì‚¬ìš©ìž ì´ë¦„';
-$lang['password']              = '위 사용ìžì˜ 비밀번호';
-$lang['database']              = '사용할 ë°ì´í„°ë² ì´ìФ';
-$lang['debug']                 = '추가ì ì¸ 디버그 ì •ë³´ ë³´ì´ê¸°';
-$lang['forwardClearPass']      = 'passcrypt ì˜µì…˜ì„ ì‚¬ìš©í•˜ëŠ” 대신 아래 SQL ë¬¸ì— ì¼ë°˜ í…스트로 ì‚¬ìš©ìž ë¹„ë°€ë²ˆí˜¸ë¥¼ 전달';
-$lang['checkPass']             = '비밀번호를 확ì¸í•˜ê¸° 위한 SQL 문';
-$lang['getUserInfo']           = 'ì‚¬ìš©ìž ì •ë³´ë¥¼ 가져오기 위한 SQL 문';
-$lang['getGroups']             = '사용ìžì˜ 그룹 구성ì›ì„ 가져오기 위한 SQL 문';
-$lang['getUsers']              = '모든 사용ìžë¥¼ 나타낼 SQL 문';
-$lang['FilterLogin']           = 'ë¡œê·¸ì¸ ì´ë¦„별로 사용ìžë¥¼ 필터하기 위한 SQL ì¡°í•­';
-$lang['FilterName']            = 'ì „ì²´ ì´ë¦„별로 사용ìžë¥¼ 필터하기 위한 SQL ì¡°í•­';
-$lang['FilterEmail']           = 'ì´ë©”ì¼ ì£¼ì†Œë³„ë¡œ 사용ìžë¥¼ 필터하기 위한 SQL ì¡°í•­';
-$lang['FilterGroup']           = '그룹 구성ì›ë³„로 사용ìžë¥¼ 필터하기 위한 SQL ì¡°í•­';
-$lang['SortOrder']             = '사용ìžë¥¼ 정렬할 SQL ì¡°í•­';
-$lang['addUser']               = '새 사용ìžë¥¼ 추가할 SQL 문';
-$lang['addGroup']              = '새 ê·¸ë£¹ì„ ì¶”ê°€í•  SQL 문';
-$lang['addUserGroup']          = '기존 ê·¸ë£¹ì— ì‚¬ìš©ìžë¥¼ 추가할 SQL 문';
-$lang['delGroup']              = 'ê·¸ë£¹ì„ ì œê±°í•  SQL 문';
-$lang['getUserID']             = '사용ìžì˜ 기본 키를 ì–»ì„ SQL 문';
-$lang['delUser']               = '사용ìžë¥¼ 삭제할 SQL 문';
-$lang['delUserRefs']           = '모든 그룹ì—서 사용ìžë¥¼ 제거할 SQL 문';
-$lang['updateUser']            = 'ì‚¬ìš©ìž í”„ë¡œí•„ì„ ì—…ë°ì´íŠ¸í•  SQL 문';
-$lang['UpdateLogin']           = '사용ìžì˜ ë¡œê·¸ì¸ ì´ë¦„ì„ ì—…ë°ì´íŠ¸í•˜ê¸° 위한 Update ì¡°í•­';
-$lang['UpdatePass']            = '사용ìžì˜ 비밀번호를 ì—…ë°ì´íŠ¸í•˜ê¸° 위한 Update ì¡°í•­';
-$lang['UpdateEmail']           = '사용ìžì˜ ì´ë©”ì¼ ì£¼ì†Œë¥¼ ì—…ë°ì´íŠ¸í•˜ê¸° 위한 Update ì¡°í•­';
-$lang['UpdateName']            = '사용ìžì˜ ì „ì²´ ì´ë¦„ì„ ì—…ë°ì´íŠ¸í•˜ê¸° 위한 Update ì¡°í•­';
-$lang['UpdateTarget']          = 'ì—…ë°ì´íŠ¸í•  때 사용ìžë¥¼ ì‹ë³„í•  Limit ì¡°í•­';
-$lang['delUserGroup']          = '주어진 그룹ì—서 사용ìžë¥¼ 제거할 SQL 문';
-$lang['getGroupID']            = '주어진 ê·¸ë£¹ì˜ ê¸°ë³¸ 키를 ì–»ì„ SQL 문';
diff --git a/wiki/lib/plugins/authpgsql/lang/lv/settings.php b/wiki/lib/plugins/authpgsql/lang/lv/settings.php
deleted file mode 100644
index dd63544..0000000
--- a/wiki/lib/plugins/authpgsql/lang/lv/settings.php
+++ /dev/null
@@ -1,9 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Aivars Miška <allefm@gmail.com>
- */
-$lang['password']              = 'LietotÄja parole';
-$lang['delUser']               = 'SQL pieprasÄ«jums lietotÄja dzēšanai';
diff --git a/wiki/lib/plugins/authpgsql/lang/nl/settings.php b/wiki/lib/plugins/authpgsql/lang/nl/settings.php
deleted file mode 100644
index 7b4ec70..0000000
--- a/wiki/lib/plugins/authpgsql/lang/nl/settings.php
+++ /dev/null
@@ -1,38 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Remon <no@email.local>
- */
-$lang['server']                = 'Je PostgreSQL server';
-$lang['port']                  = 'Je PostgreSQL server poort';
-$lang['user']                  = 'PostgreSQL gebruikersnaam';
-$lang['password']              = 'Wachtwoord voor bovenstaande gebruiker';
-$lang['database']              = 'Te gebruiken database';
-$lang['debug']                 = 'Tonen aanvullende debuginformatie';
-$lang['forwardClearPass']      = 'Wachtwoorden als leesbare tekst in SQL commando\'s opnemen in plaats van versleuteld';
-$lang['checkPass']             = 'SQL commando voor het verifiëren van wachtwoorden';
-$lang['getUserInfo']           = 'SQL commando voor het ophalen van gebruikersinformatie';
-$lang['getGroups']             = 'SQL commando voor het ophalen van groepslidmaatschappen van gebruikers';
-$lang['getUsers']              = 'SQL commando voor het tonen van alle gebruikers';
-$lang['FilterLogin']           = 'SQL commando voor het filteren van gebruikers op inlognaam';
-$lang['FilterName']            = 'SQL commando voor het filteren van gebruikers op volledige naam';
-$lang['FilterEmail']           = 'SQL commando voor het filteren van gebruikers op e-mailadres';
-$lang['FilterGroup']           = 'SQL commando voor het filteren van gebruikers op groepslidmaatschap';
-$lang['SortOrder']             = 'SQL commando voor het sorteren van gebruikers';
-$lang['addUser']               = 'SQL commando voor het toevoegen van een nieuwe gebruiker';
-$lang['addGroup']              = 'SQL commando voor het toevoegen van een nieuwe groep';
-$lang['addUserGroup']          = 'SQL commando voor toevoegen van een gebruiker aan een bestaande groep';
-$lang['delGroup']              = 'SQL commando voor het verwijderen van een groep';
-$lang['getUserID']             = 'SQL commando om de primaire sleutel van een gebruiker op te halen';
-$lang['delUser']               = 'SQL commando voor het verwijderen van een gebruiker';
-$lang['delUserRefs']           = 'SQL commando om een gebruiker uit alle groepen te verwijderen';
-$lang['updateUser']            = 'SQL commando om een gebruikersprofiel bij te werken';
-$lang['UpdateLogin']           = 'SQL commando om een inlognaam bij te werken';
-$lang['UpdatePass']            = 'SQL commando om een wachtwoord bij te werken';
-$lang['UpdateEmail']           = 'SQL commando om een e-mailadres bij te werken';
-$lang['UpdateName']            = 'SQL commando om een volledige naam bij te werken';
-$lang['UpdateTarget']          = 'Beperkingsclausule om de gebruiker te identificeren bij het bijwerken';
-$lang['delUserGroup']          = 'SQL commando om een gebruiker uit een bepaalde groep te verwijderen';
-$lang['getGroupID']            = 'SQL commando om de primaire sleutel van een bepaalde groep op te halen';
diff --git a/wiki/lib/plugins/authpgsql/lang/no/settings.php b/wiki/lib/plugins/authpgsql/lang/no/settings.php
deleted file mode 100644
index 9e84e4d..0000000
--- a/wiki/lib/plugins/authpgsql/lang/no/settings.php
+++ /dev/null
@@ -1,38 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Arne Hanssen <arne.hanssen@getmail.no>
- */
-$lang['server']                = 'Din PostgreSQL-server';
-$lang['port']                  = 'Porten til din PostgreSQL-server';
-$lang['user']                  = 'PostgreSQL-brukernavn';
-$lang['password']              = 'Passord til bruker over';
-$lang['database']              = 'Database som brukes';
-$lang['debug']                 = 'Vis utvidet feilinformasjon';
-$lang['forwardClearPass']      = 'Videresendt passord i klartekst til SQL-uttrykket under, i stedet for å bruke det krypterte passordet';
-$lang['checkPass']             = 'SQL-uttrykk for å sjekke passordet';
-$lang['getUserInfo']           = 'SQL-uttrykk for å hente informasjon om en bruker';
-$lang['getGroups']             = 'SQL-uttrykk for å hente gruppene en bruker tilhører';
-$lang['getUsers']              = 'SQL-uttrykk for å liste alle brukere ';
-$lang['FilterLogin']           = 'SQL-uttrykk for å filtrere brukere etter brukernavn';
-$lang['FilterName']            = 'SQL-uttrykk for å filtrere brukere etter fult navn';
-$lang['FilterEmail']           = 'SQL-uttrykk for å filtrere brukere etter e-postadresse';
-$lang['FilterGroup']           = 'SQL-uttrykk for å filtrere brukere etter hvilken grupper de tilhører';
-$lang['SortOrder']             = 'SQL-uttrykk for å sortere brukere';
-$lang['addUser']               = 'SQL-uttrykk for å legge til en ny bruker';
-$lang['addGroup']              = 'SQL-uttrykk for å legge til en ny gruppe';
-$lang['addUserGroup']          = 'SQL-uttrykk for å legge til en bruker i en eksisterende gruppe';
-$lang['delGroup']              = 'SQL-uttrykk for å fjerne en gruppe ';
-$lang['getUserID']             = 'SQL-uttrykk for å hente primærnøkkel for en gitt bruker';
-$lang['delUser']               = 'SQL-utrykk for å slette en bruker ';
-$lang['delUserRefs']           = 'SQL-utrykk for å fjerne en bruke fra alle grupper';
-$lang['updateUser']            = 'SQL-uttrykk for å oppdatere en brukerprofil';
-$lang['UpdateLogin']           = 'Update-utrykk for å oppdatere brukernavn';
-$lang['UpdatePass']            = 'Update-utrykk for å oppdatere brukers passord';
-$lang['UpdateEmail']           = 'Update-utrykk for å oppdatere brukers e-postadresse';
-$lang['UpdateName']            = 'Update-utrykk for å oppdatere brukers fulle navn';
-$lang['UpdateTarget']          = 'Limit-uttrykk for å identifisere brukeren ved oppdatering';
-$lang['delUserGroup']          = 'SQL-uttrykk for fjerne en bruker fra gitt gruppe';
-$lang['getGroupID']            = 'SQL-uttrykk for å hente primærnøkkel for en gitt gruppe';
diff --git a/wiki/lib/plugins/authpgsql/lang/pl/settings.php b/wiki/lib/plugins/authpgsql/lang/pl/settings.php
deleted file mode 100644
index e89fd91..0000000
--- a/wiki/lib/plugins/authpgsql/lang/pl/settings.php
+++ /dev/null
@@ -1,40 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Wojciech Lichota <wojciech@lichota.pl>
- * @author Max <maxrb146@gmail.com>
- * @author Mati <mackosa@wp.pl>
- */
-$lang['server']                = 'Twój serwer PostgreSQL';
-$lang['port']                  = 'Port Twojego serwera PostgreSQL';
-$lang['user']                  = 'Nazwa użytkownika PostgreSQL';
-$lang['password']              = 'Hasła dla powyższego użytkownika';
-$lang['database']              = 'Baza danych do użycia';
-$lang['debug']                 = 'Wyświetl dodatkowe informacje debagowania';
-$lang['forwardClearPass']      = 'Przekazuj do poniższej instrukcji SQL hasła użytkowników jako czysty tekst do instrukcji SQL zamiast używać opcji passcrypt';
-$lang['checkPass']             = 'Instrukcja SQL sprawdzająca hasła';
-$lang['getUserInfo']           = 'Instrukcja SQL pobierająca dane użytkownika';
-$lang['getGroups']             = 'Instrukcja SQL pobierająca przynależność użytkownika do grup';
-$lang['getUsers']              = 'Instrukcja SQL listująca wszystkich użytkowników';
-$lang['FilterLogin']           = 'Instrukcja SQL filtrująca użytkowników po loginie';
-$lang['FilterName']            = 'Instrukcja SQL filtrująca użytkowników po imieniu i nazwisku';
-$lang['FilterEmail']           = 'Instrukcja SQL filtrująca użytkowników po emailu';
-$lang['FilterGroup']           = 'Instrukcja SQL filtrująca użytkowników po przynależności do grupy';
-$lang['SortOrder']             = 'Instrukcja SQL sortująca użytkowników';
-$lang['addUser']               = 'Instrukcja SQL dodająca nowego użytkownika';
-$lang['addGroup']              = 'Instrukcja SQL dodajÄ…ca nowÄ… grupÄ™';
-$lang['addUserGroup']          = 'Instrukcja SQL dodająca użytkownika do istniejącej grupy';
-$lang['delGroup']              = 'Instrukcja SQL usuwajÄ…ca grupÄ™';
-$lang['getUserID']             = 'Instrukcja SQL pobierająca klucz główny użytkownika';
-$lang['delUser']               = 'Instrukcja SQL usuwająca użytkownika';
-$lang['delUserRefs']           = 'Instrukcja SQL usuwająca użytkownika ze wszystkich grup';
-$lang['updateUser']            = 'Instrukcja SQL aktualizująca profil użytkownika';
-$lang['UpdateLogin']           = 'Polecenie służące do aktualizacji loginu użytkownika';
-$lang['UpdatePass']            = 'Polecenie służące do aktualizacji hasła użytkownika';
-$lang['UpdateEmail']           = 'Polecenie służące do aktualizacji e-mailu użytkownika';
-$lang['UpdateName']            = 'Polecenie służące do aktualizacji imienia i nazwiska użytkownika';
-$lang['UpdateTarget']          = 'Instrukcja limitu do identyfikacji użytkownika podczas aktualizacji';
-$lang['delUserGroup']          = 'Instrukcja SQL usuwająca użytkownika ze wskazanej grupy';
-$lang['getGroupID']            = 'Instrukcja SQL pobierająca klucz główny wskazanej grupy';
diff --git a/wiki/lib/plugins/authpgsql/lang/pt-br/settings.php b/wiki/lib/plugins/authpgsql/lang/pt-br/settings.php
deleted file mode 100644
index a06ce0e..0000000
--- a/wiki/lib/plugins/authpgsql/lang/pt-br/settings.php
+++ /dev/null
@@ -1,39 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Victor Westmann <victor.westmann@gmail.com>
- * @author Frederico Guimarães <frederico@teia.bio.br>
- */
-$lang['server']                = 'Seu servidor PostgreSQL';
-$lang['port']                  = 'Sua porta do servidor PostgreSQL';
-$lang['user']                  = 'Nome de usuário PostgreSQL';
-$lang['password']              = 'Senha do usuário acima';
-$lang['database']              = 'Base de dados para usar';
-$lang['debug']                 = 'Mostrar informações adicionais de depuração';
-$lang['forwardClearPass']      = 'Transmitir senhas de usuário como texto puro para comandos SQL abaixo, ao invés de usar a opção passcrypt';
-$lang['checkPass']             = 'Comando SQL para verificar senhas';
-$lang['getUserInfo']           = 'Comando SQL para obter informações do usuário';
-$lang['getGroups']             = 'Comando SQL para obter as credenciais de um usuário de um determinado grupo';
-$lang['getUsers']              = 'Comando SQL para listar todos os usuários';
-$lang['FilterLogin']           = 'Cláusula SQL para filtrar usuários pelo nome de login';
-$lang['FilterName']            = 'Cláusula SQL para filtrar usuários pelo nome completo';
-$lang['FilterEmail']           = 'Cláusula SQL para filtrar usuários pelo endereço de email';
-$lang['FilterGroup']           = 'Cláusula SQL para filtrar usuários pelo grupo que pertencem';
-$lang['SortOrder']             = 'Comando SQL para adicionar novo grupo';
-$lang['addUser']               = 'Comando SQL para adicionar novo usuário';
-$lang['addGroup']              = 'Comando SQL para adicionar novo grupo';
-$lang['addUserGroup']          = 'Comando SQL para adicionar um usuário a um grupo existente';
-$lang['delGroup']              = 'Comando SQL para remover um grupo';
-$lang['getUserID']             = 'Comando SQL para obter chave primária de usuário';
-$lang['delUser']               = 'Comando SQL para apagar usuário';
-$lang['delUserRefs']           = 'Comando SQL para remover um usuário de todos os grupos';
-$lang['updateUser']            = 'Comando SQL para atualizar perfil de usuário';
-$lang['UpdateLogin']           = 'Atualizar cláusula para atualizar o login do usuário';
-$lang['UpdatePass']            = 'Atualizar cláusula para atualizar a senha do usuário';
-$lang['UpdateEmail']           = 'Atualizar cláusula para atualizar o endereço de email';
-$lang['UpdateName']            = 'Atualizar cláusula para atualizar o nome completo do usuário';
-$lang['UpdateTarget']          = 'Limitar cláusula para identificar quando um usuário estiver atualizando';
-$lang['delUserGroup']          = 'Comando SQL para remover um usuário de um determinado grupo';
-$lang['getGroupID']            = 'Comando SQL para obter a chave primária de um determinado grupo';
diff --git a/wiki/lib/plugins/authpgsql/lang/pt/settings.php b/wiki/lib/plugins/authpgsql/lang/pt/settings.php
deleted file mode 100644
index edc4e1a..0000000
--- a/wiki/lib/plugins/authpgsql/lang/pt/settings.php
+++ /dev/null
@@ -1,39 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author André Neves <drakferion@gmail.com>
- * @author Guido Salatino <guidorafael23@gmail.com>
- */
-$lang['server']                = 'O seu servidor PostgreSQL';
-$lang['port']                  = 'A porta do seu servidor PostgreSQL';
-$lang['user']                  = 'Nome de utilizador PostgreSQL';
-$lang['password']              = 'Senha do utilizador acima';
-$lang['database']              = 'Base de dados a usar';
-$lang['debug']                 = 'Mostrar informação adicional de debug';
-$lang['forwardClearPass']      = 'Passe as senhas do usuário como texto puro para as instruções SQL abaixo, em vez de usar a opção passcrypt';
-$lang['checkPass']             = 'Instrução SQL para verificar senhas';
-$lang['getUserInfo']           = 'Instrução SQL para recuperar informações de um usuário';
-$lang['getGroups']             = 'Instrução SQL para recuperar os usuários participantes de um grupo';
-$lang['getUsers']              = 'Instrução SQL para listar todos usuários';
-$lang['FilterLogin']           = 'Cláusula SQL para filtrar utilizadores por nome de login';
-$lang['FilterName']            = 'Cláusula SQL para filtrar utilizadores por nome completo';
-$lang['FilterEmail']           = 'Cláusula SQL para filtrar utilizadores por endereço de email';
-$lang['FilterGroup']           = 'Cláusula SQL para filtrar utilizadores por pertença a grupo';
-$lang['SortOrder']             = 'Cláusula SQL para ordenar utilizadores';
-$lang['addUser']               = 'Instrução SQL para adicionar um novo usuário';
-$lang['addGroup']              = 'Instrução SQL para adicionar um novo grupo';
-$lang['addUserGroup']          = 'Instrução SQL para adicionar um usuário a um grupo existente';
-$lang['delGroup']              = 'Instrução SQL para remover um grupo';
-$lang['getUserID']             = 'Instrução SQL para obter a chave principal de um usuário';
-$lang['delUser']               = 'Instrução SQL para remover um usuário';
-$lang['delUserRefs']           = 'Instrução SQL para remover um usuário de todos os grupos';
-$lang['updateUser']            = 'Instrução SQL para atualizar um perfil de usuário';
-$lang['UpdateLogin']           = 'Cláusula de atualização para atualizar o nome de login do utilizador';
-$lang['UpdatePass']            = 'Cláusula de atualização para atualizar a senha do utilizador';
-$lang['UpdateEmail']           = 'Cláusula de atualização para atualizar o endereço de email do utilizador';
-$lang['UpdateName']            = 'Cláusula de atualização para atualizar o nome completo do utilizador';
-$lang['UpdateTarget']          = 'Cláusula limite para identificar o usuário ao atualizar';
-$lang['delUserGroup']          = 'Instrução SQL para remover um usuário de um determinado grupo';
-$lang['getGroupID']            = 'Instrução SQL para obter a chave principal de um determinado grupo';
diff --git a/wiki/lib/plugins/authpgsql/lang/ru/settings.php b/wiki/lib/plugins/authpgsql/lang/ru/settings.php
deleted file mode 100644
index ceb5bd4..0000000
--- a/wiki/lib/plugins/authpgsql/lang/ru/settings.php
+++ /dev/null
@@ -1,42 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Ivan I. Udovichenko (sendtome@mymailbox.pp.ua)
- * @author Aleksandr Selivanov <alexgearbox@gmail.com>
- * @author Vitaly Filatenko <kot@hacktest.net>
- * @author Type-kun <workwork-1@yandex.ru>
- * @author Alex P <alexander@lanos.co.uk>
- */
-$lang['server']                = 'Ваш PostgreSQL-Ñервер';
-$lang['port']                  = 'Порт вашего PostgreSQL-Ñервера';
-$lang['user']                  = 'Ð˜Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ PostgreSQL';
-$lang['password']              = 'Пароль Ð´Ð»Ñ ÑƒÐºÐ°Ð·Ð°Ð½Ð½Ð¾Ð³Ð¾ пользователÑ';
-$lang['database']              = 'Ð˜Ð¼Ñ Ð±Ð°Ð·Ñ‹ данных';
-$lang['debug']                 = 'Отображать дополнительную отладочную информацию';
-$lang['forwardClearPass']      = 'Передать чиÑтым текÑтом ползовательÑкие пароли в SQL запроÑÑ‹ ниже, вмеÑто иÑпользование опции passcrypt';
-$lang['checkPass']             = 'Выражение SQL, оÑущеÑтвлÑющее проверку паролÑ';
-$lang['getUserInfo']           = 'Выражение SQL, оÑущеÑтвлÑющее извлечение информации о пользователе';
-$lang['getGroups']             = 'Выражение SQL, оÑущеÑтвлÑющее извлечение информации о членÑтве пользователе в группах';
-$lang['getUsers']              = 'Выражение SQL, оÑущеÑтвлÑющее извлечение полного ÑпиÑка пользователей';
-$lang['FilterLogin']           = 'Выражение SQL, оÑущеÑтвлÑющее фильтрацию пользователей по логину';
-$lang['FilterName']            = 'Выражение SQL, оÑущеÑтвлÑющее фильтрацию пользователей по полному имени';
-$lang['FilterEmail']           = 'Выражение SQL, оÑущеÑтвлÑющее фильтрацию пользователей по адреÑу Ñлектронной почты';
-$lang['FilterGroup']           = 'Выражение SQL, оÑущеÑтвлÑющее фильтрацию пользователей ÑоглаÑно членÑтву в группе';
-$lang['SortOrder']             = 'Выражение SQL, оÑущеÑтвлÑющее Ñортировку пользователей';
-$lang['addUser']               = 'Выражение SQL, оÑущеÑтвлÑющее добавление нового пользователÑ';
-$lang['addGroup']              = 'Выражение SQL, оÑущеÑтвлÑющее добавление новой группы';
-$lang['addUserGroup']          = 'Выражение SQL, оÑущеÑтвлÑющее добавление Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð² ÑущеÑтвующую группу';
-$lang['delGroup']              = 'Выражение SQL, оÑущеÑтвлÑющее удаление группы';
-$lang['getUserID']             = 'Выражение SQL, обеÑпечивающее получение первичного ключа пользователÑ';
-$lang['delUser']               = 'Выражение SQL, оÑущеÑтвлÑющее удаление пользователÑ';
-$lang['delUserRefs']           = 'Выражение SQL, оÑущеÑтвлÑющее удаление Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¸Ð· вÑех группы';
-$lang['updateUser']            = 'Выражение SQL, оÑущеÑтвлÑющее обновление Ð¿Ñ€Ð¾Ñ„Ð¸Ð»Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ';
-$lang['UpdateLogin']           = 'Измените уÑловие Ð´Ð»Ñ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð»Ð¾Ð³Ð¸Ð½Ð°';
-$lang['UpdatePass']            = 'Измените уÑловие Ð´Ð»Ñ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ð°Ñ€Ð¾Ð»Ñ';
-$lang['UpdateEmail']           = 'Измените уÑловие Ð´Ð»Ñ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ email';
-$lang['UpdateName']            = 'УÑловие Ð´Ð»Ñ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð»Ð½Ð¾Ð³Ð¾ имени пользователÑ';
-$lang['UpdateTarget']          = 'Выражение \'LIMIT\' Ð´Ð»Ñ Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ð¸ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¿Ñ€Ð¸ обновлении';
-$lang['delUserGroup']          = 'Выражение SQL, оÑущеÑтвлÑющее удаление Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¸Ð· указанной группы';
-$lang['getGroupID']            = 'Выражение SQL, обеÑпечивающее получение первичного ключа указанной группы';
diff --git a/wiki/lib/plugins/authpgsql/lang/sk/settings.php b/wiki/lib/plugins/authpgsql/lang/sk/settings.php
deleted file mode 100644
index acdc2d7..0000000
--- a/wiki/lib/plugins/authpgsql/lang/sk/settings.php
+++ /dev/null
@@ -1,38 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Martin Michalek <michalek.dev@gmail.com>
- */
-$lang['server']                = 'PostgreSQL server';
-$lang['port']                  = 'Port PostgreSQL servera';
-$lang['user']                  = 'Meno používateľa PostgreSQL';
-$lang['password']              = 'Heslo pre vyššie uvedeného používateľa';
-$lang['database']              = 'Použiť databázu';
-$lang['debug']                 = 'ZobraziÅ¥ dodatoÄné ladiace informácie';
-$lang['forwardClearPass']      = 'Posielať heslo ako nezakódovaný text nižšie uvedenému SQL príkazu namiesto použitia kódovania';
-$lang['checkPass']             = 'SQL príkaz pre kontrolu hesla';
-$lang['getUserInfo']           = 'SQL príkaz pre získanie informácií o používateľovi';
-$lang['getGroups']             = 'SQL príkaz pre získanie informácií o skupinách používateľa';
-$lang['getUsers']              = 'SQL príkaz pre získanie zoznamu používateľov';
-$lang['FilterLogin']           = 'SQL podmienka pre filtrovanie používateľov podľa prihlasovacieho mena';
-$lang['FilterName']            = 'SQL podmienka pre filtrovanie používateľov podľa mena a priezviska';
-$lang['FilterEmail']           = 'SQL podmienka pre filtrovanie používateľov podľa emailovej adresy';
-$lang['FilterGroup']           = 'SQL podmienka pre filtrovanie používateľov podľa skupiny';
-$lang['SortOrder']             = 'SQL podmienka pre usporiadenia používateľov';
-$lang['addUser']               = 'SQL príkaz pre pridanie nového používateľa';
-$lang['addGroup']              = 'SQL príkaz pre pridanie novej skupiny';
-$lang['addUserGroup']          = 'SQL príkaz pre pridanie používateľa do existujúcej skupiny';
-$lang['delGroup']              = 'SQL príkaz pre zrušenie skupiny';
-$lang['getUserID']             = 'SQL príkaz pre získanie primárneho klúÄa používateľa';
-$lang['delUser']               = 'SQL príkaz pre zrušenie používateľa';
-$lang['delUserRefs']           = 'SQL príkaz pre vyradenie používateľa zo všetkých skupín';
-$lang['updateUser']            = 'SQL príkaz pre aktualizáciu informácií o používateľovi';
-$lang['UpdateLogin']           = 'SQL podmienka pre aktualizáciu prihlasovacieho mena používateľa';
-$lang['UpdatePass']            = 'SQL podmienka pre aktualizáciu hesla používateľa';
-$lang['UpdateEmail']           = 'SQL podmienka pre aktualizáciu emailovej adresy používateľa';
-$lang['UpdateName']            = 'SQL podmienka pre aktualizáciu mena a priezviska používateľa';
-$lang['UpdateTarget']          = 'Podmienka identifikácie používateľa pri aktualizácii';
-$lang['delUserGroup']          = 'SQL príkaz pre vyradenie používateľa z danej skupiny';
-$lang['getGroupID']            = 'SQL príkaz pre získanie primárneho kľúÄa skupiny';
diff --git a/wiki/lib/plugins/authpgsql/lang/sl/settings.php b/wiki/lib/plugins/authpgsql/lang/sl/settings.php
deleted file mode 100644
index 7110a6e..0000000
--- a/wiki/lib/plugins/authpgsql/lang/sl/settings.php
+++ /dev/null
@@ -1,16 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Matej UrbanÄiÄ <mateju@svn.gnome.org>
- */
-$lang['database']              = 'Podatkovna zbirka za uporabo';
-$lang['addUserGroup']          = 'Ukaz SQL za dodajanje uporabnika v obstojeÄo skupino';
-$lang['delGroup']              = 'Ukaz SQL za odstranitev skupine';
-$lang['getUserID']             = 'Ukaz SQL za pridobitev osnovnega kljuÄa uporabnika';
-$lang['delUser']               = 'Ukaz SQL za izbris uporabnika';
-$lang['delUserRefs']           = 'Ukaz SQL za odstranitev uporabnika iz vseh skupin';
-$lang['updateUser']            = 'Ukaz SQL za posodobitev profila uporabnika';
-$lang['delUserGroup']          = 'Ukaz SQL za odstranitev uporabnika iz podane skupine';
-$lang['getGroupID']            = 'Ukaz SQL za pridobitev osnovnega kljuÄa podane skupine';
diff --git a/wiki/lib/plugins/authpgsql/lang/sr/settings.php b/wiki/lib/plugins/authpgsql/lang/sr/settings.php
deleted file mode 100644
index 4b1cd8b..0000000
--- a/wiki/lib/plugins/authpgsql/lang/sr/settings.php
+++ /dev/null
@@ -1,18 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Марко М. КоÑтић <marko.m.kostic@gmail.com>
- */
-$lang['server']                = 'Ваш PostgreSQL Ñервер';
-$lang['port']                  = 'Порт вашег PostgreSQL Ñервера';
-$lang['user']                  = 'PostgreSQL кориÑничко име';
-$lang['password']              = 'Лозинка за кориÑника изнад';
-$lang['database']              = 'База коју треба кориÑтити';
-$lang['debug']                 = 'Прикажи додатне податке за поправљање грешака';
-$lang['forwardClearPass']      = 'ПренеÑи кориÑничке лозинке као чиÑÑ‚ текÑÑ‚ ка SQL упитима иÑпод умеÑто коришћења passcrypt опције';
-$lang['checkPass']             = 'SQL упит за проверу лозинки';
-$lang['getUserInfo']           = 'SQL упит за добављање кориÑничких података';
-$lang['getGroups']             = 'SQL упит за добављање групних учлањења кориÑника';
-$lang['getUsers']              = 'SQL упит за лиÑтање Ñвих кориÑника';
diff --git a/wiki/lib/plugins/authpgsql/lang/sv/settings.php b/wiki/lib/plugins/authpgsql/lang/sv/settings.php
deleted file mode 100644
index 1082583..0000000
--- a/wiki/lib/plugins/authpgsql/lang/sv/settings.php
+++ /dev/null
@@ -1,29 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Smorkster Andersson smorkster@gmail.com
- */
-$lang['server']                = 'Din PostgreSQL server';
-$lang['port']                  = 'Din PostgreSQL servers port';
-$lang['user']                  = 'PostgreSQL användarnamn';
-$lang['password']              = 'Lösenord för användaren ovan';
-$lang['database']              = 'Databas att använda';
-$lang['debug']                 = 'Visa ytterligare felsökningsinformation';
-$lang['forwardClearPass']      = 'Skicka lösenord för användare som klartext till SQL satserna nedan, istället för att använda krypteringsalternativet';
-$lang['checkPass']             = 'SQL sats för kontroll av lösenord';
-$lang['getUserInfo']           = 'SQL sats för att hämta användarinformation';
-$lang['getGroups']             = 'SQL sats för att hämta en användares gruppmedlemskap';
-$lang['getUsers']              = 'SQL sats för att lista alla användare';
-$lang['FilterLogin']           = 'SQL klausul för att filtrera användare efter inloggningsnamn';
-$lang['FilterName']            = 'SQL klausul för att filtrera användare efter fullt namn';
-$lang['FilterEmail']           = 'SQL klausul för att filtrera användare efter e-post adress';
-$lang['addUser']               = 'SQL sats för att lägga till en ny användare';
-$lang['addGroup']              = 'SQL sats för att lägga till en ny grupp';
-$lang['addUserGroup']          = 'SQL sats för att lägga till en användare i en existerande grupp';
-$lang['delGroup']              = 'SQL sats för att ta bort en grupp';
-$lang['delUser']               = 'SQL sats för att ta bort en användare';
-$lang['delUserRefs']           = 'SQL sats för att ta bort en användare från alla grupper';
-$lang['updateUser']            = 'SQL sats för att uppdatera en användarprofil';
-$lang['delUserGroup']          = 'SQL sats för att ta bort en användare från angiven grupp';
diff --git a/wiki/lib/plugins/authpgsql/lang/tr/settings.php b/wiki/lib/plugins/authpgsql/lang/tr/settings.php
deleted file mode 100644
index f6fef9c..0000000
--- a/wiki/lib/plugins/authpgsql/lang/tr/settings.php
+++ /dev/null
@@ -1,13 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author İlker R. Kapaç <irifat@gmail.com>
- */
-$lang['server']                = 'PostgreSQL sunucunuz';
-$lang['port']                  = 'PostgreSQL sunucunuzun kapısı (port)';
-$lang['user']                  = 'PostgreSQL kullanıcısının adı';
-$lang['password']              = 'Yukarıdaki kullanıcı için şifre';
-$lang['database']              = 'Kullanılacak veritabanı';
-$lang['debug']                 = 'İlave hata ayıklama bilgisini görüntüle';
diff --git a/wiki/lib/plugins/authpgsql/lang/uk/settings.php b/wiki/lib/plugins/authpgsql/lang/uk/settings.php
deleted file mode 100644
index 9a35341..0000000
--- a/wiki/lib/plugins/authpgsql/lang/uk/settings.php
+++ /dev/null
@@ -1,8 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Nina Zolotova <nina-z@i.ua>
- */
-$lang['database']              = 'ВикориÑтовувати базу даних';
diff --git a/wiki/lib/plugins/authpgsql/lang/zh-tw/settings.php b/wiki/lib/plugins/authpgsql/lang/zh-tw/settings.php
deleted file mode 100644
index b7dd9c6..0000000
--- a/wiki/lib/plugins/authpgsql/lang/zh-tw/settings.php
+++ /dev/null
@@ -1,38 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author syaoranhinata@gmail.com
- */
-$lang['server']                = '您的 PostgreSQL 伺æœå™¨';
-$lang['port']                  = '您的 PostgreSQL 伺æœå™¨ç«¯å£';
-$lang['user']                  = 'PostgreSQL 使用者å稱';
-$lang['password']              = '上述使用者的密碼';
-$lang['database']              = '使用的資料庫';
-$lang['debug']                 = '顯示é¡å¤–除錯資訊';
-$lang['forwardClearPass']      = '以明文形å¼ï¼ŒæŠŠä½¿ç”¨è€…密碼傳é€ç»™ä¸‹åˆ—çš„ SQL 語å¥ï¼Œè€Œä¸ä½¿ç”¨ passcrypt 密碼加密é¸é …';
-$lang['checkPass']             = '檢查密碼的 SQL 語å¥';
-$lang['getUserInfo']           = 'ç²å–使用者訊æ¯çš„ SQL 語å¥';
-$lang['getGroups']             = 'ç²å–使用者群組æˆå“¡èº«ä»½çš„ SQL 語å¥';
-$lang['getUsers']              = '把所有使用者列出的 SQL 語å¥';
-$lang['FilterLogin']           = '根據登入å稱來篩é¸ä½¿ç”¨è€…çš„ SQL å­å¥';
-$lang['FilterName']            = '根據全å來篩é¸ä½¿ç”¨è€…çš„ SQL å­å¥';
-$lang['FilterEmail']           = '根據電郵地å€ä¾†ç¯©é¸ä½¿ç”¨è€…çš„ SQL å­å¥';
-$lang['FilterGroup']           = '根據群組æˆå“¡èº«ä»½ä¾†ç¯©é¸ä½¿ç”¨è€…çš„ SQL å­å¥';
-$lang['SortOrder']             = 'å°ä½¿ç”¨è€…排åºçš„ SQL å­å¥';
-$lang['addUser']               = '增加新使用者的 SQL 語å¥';
-$lang['addGroup']              = '增加新群組的 SQL 語å¥';
-$lang['addUserGroup']          = 'æŠŠä½¿ç”¨è€…æ–°å¢žè‡³ç¾æœ‰ç¾¤çµ„çš„ SQL 語å¥';
-$lang['delGroup']              = '把群組刪除的 SQL 語å¥';
-$lang['getUserID']             = 'å–得使用者主éµçš„ SQL 語å¥';
-$lang['delUser']               = '把使用者刪除的 SQL 語å¥';
-$lang['delUserRefs']           = '把使用者從所有群組è£åˆªé™¤çš„ SQL 語å¥';
-$lang['updateUser']            = '更新使用者訊æ¯çš„ SQL 語å¥';
-$lang['UpdateLogin']           = '更新使用者登入å稱的 Update å­å¥';
-$lang['UpdatePass']            = '更新帳號密碼的 Update å­å¥';
-$lang['UpdateEmail']           = '更新使用者電郵地å€çš„ Update å­å¥';
-$lang['UpdateName']            = '更新使用者全åçš„ Update å­å¥';
-$lang['UpdateTarget']          = '在更新時識別使用者的 Limit å­å¥';
-$lang['delUserGroup']          = '把使用者從指定群組中刪除的 SQL 語å¥';
-$lang['getGroupID']            = 'å–得指定群組主éµçš„ SQL 語å¥';
diff --git a/wiki/lib/plugins/authpgsql/lang/zh/settings.php b/wiki/lib/plugins/authpgsql/lang/zh/settings.php
deleted file mode 100644
index 5140d11..0000000
--- a/wiki/lib/plugins/authpgsql/lang/zh/settings.php
+++ /dev/null
@@ -1,38 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author lainme <lainme993@gmail.com>
- */
-$lang['server']                = '您的 PostgreSQL æœåС噍';
-$lang['port']                  = '您的 PostgreSQL æœåŠ¡å™¨ç«¯å£';
-$lang['user']                  = 'PostgreSQL 用户å';
-$lang['password']              = '上述用户的密ç ';
-$lang['database']              = '使用的数æ®åº“';
-$lang['debug']                 = '显示é¢å¤–调试信æ¯';
-$lang['forwardClearPass']      = '将用户密ç ä»¥æ˜Žæ–‡å½¢å¼ä¼ é€ç»™ä¸‹é¢çš„ SQL 语å¥ï¼Œè€Œä¸ä½¿ç”¨ passcrypt 密ç åР坆选项';
-$lang['checkPass']             = '检查密ç çš„ SQL 语å¥';
-$lang['getUserInfo']           = '获å–用户信æ¯çš„ SQL 语å¥';
-$lang['getGroups']             = '获å–用户的组æˆå‘˜èº«ä»½çš„ SQL 语å¥';
-$lang['getUsers']              = '列出所有用户的 SQL 语å¥';
-$lang['FilterLogin']           = 'æ ¹æ®ç™»å½•å筛选用户的 SQL å­å¥';
-$lang['FilterName']            = 'æ ¹æ®å…¨å筛选用户的 SQL å­å¥';
-$lang['FilterEmail']           = 'æ ¹æ®ç”µå­é‚®ä»¶åœ°å€ç­›é€‰ç”¨æˆ·çš„ SQL å­å¥';
-$lang['FilterGroup']           = 'æ ¹æ®ç»„æˆå‘˜èº«ä»½ç­›é€‰ç”¨æˆ·çš„ SQL å­å¥';
-$lang['SortOrder']             = '对用户排åºçš„ SQL å­å¥';
-$lang['addUser']               = '添加新用户的 SQL 语å¥';
-$lang['addGroup']              = '添加新组的 SQL 语å¥';
-$lang['addUserGroup']          = '将用户添加到现有组的 SQL 语å¥';
-$lang['delGroup']              = '删除组的 SQL 语å¥';
-$lang['getUserID']             = '获å–用户主键的 SQL 语å¥';
-$lang['delUser']               = '删除用户的 SQL 语å¥';
-$lang['delUserRefs']           = '从所有组中删除一个用户的 SQL 语å¥';
-$lang['updateUser']            = '更新用户信æ¯çš„ SQL 语å¥';
-$lang['UpdateLogin']           = '更新用户登录åçš„ Update å­å¥';
-$lang['UpdatePass']            = '更新用户密ç çš„ Update å­å¥';
-$lang['UpdateEmail']           = '更新用户电å­é‚®ä»¶åœ°å€çš„ Update å­å¥';
-$lang['UpdateName']            = '更新用户全åçš„ Update å­å¥';
-$lang['UpdateTarget']          = '更新时识别用户的 Limit å­å¥';
-$lang['delUserGroup']          = '从指定组删除用户的 SQL 语å¥';
-$lang['getGroupID']            = 'èŽ·å–æŒ‡å®šç»„主键的 SQL 语å¥';
diff --git a/wiki/lib/plugins/authpgsql/plugin.info.txt b/wiki/lib/plugins/authpgsql/plugin.info.txt
deleted file mode 100644
index 033c291..0000000
--- a/wiki/lib/plugins/authpgsql/plugin.info.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-base   authpgsql
-author Andreas Gohr
-email  andi@splitbrain.org
-date   2015-07-13
-name   [DEPRECATED] PostgreSQL Auth Plugin
-desc   â–¶This plugin will be removed from DokuWiki in a future release! Use authpdo instead.â—€ Provides user authentication against a PostgreSQL database
-url    http://www.dokuwiki.org/plugin:authpgsql
diff --git a/wiki/lib/plugins/authplain/auth.php b/wiki/lib/plugins/authplain/auth.php
deleted file mode 100644
index 7dfa43a..0000000
--- a/wiki/lib/plugins/authplain/auth.php
+++ /dev/null
@@ -1,443 +0,0 @@
-<?php
-// must be run within Dokuwiki
-if(!defined('DOKU_INC')) die();
-
-/**
- * Plaintext authentication backend
- *
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * @author     Andreas Gohr <andi@splitbrain.org>
- * @author     Chris Smith <chris@jalakai.co.uk>
- * @author     Jan Schumann <js@schumann-it.com>
- */
-class auth_plugin_authplain extends DokuWiki_Auth_Plugin {
-    /** @var array user cache */
-    protected $users = null;
-
-    /** @var array filter pattern */
-    protected $_pattern = array();
-
-    /** @var bool safe version of preg_split */
-    protected $_pregsplit_safe = false;
-
-    /**
-     * Constructor
-     *
-     * Carry out sanity checks to ensure the object is
-     * able to operate. Set capabilities.
-     *
-     * @author  Christopher Smith <chris@jalakai.co.uk>
-     */
-    public function __construct() {
-        parent::__construct();
-        global $config_cascade;
-
-        if(!@is_readable($config_cascade['plainauth.users']['default'])) {
-            $this->success = false;
-        } else {
-            if(@is_writable($config_cascade['plainauth.users']['default'])) {
-                $this->cando['addUser']   = true;
-                $this->cando['delUser']   = true;
-                $this->cando['modLogin']  = true;
-                $this->cando['modPass']   = true;
-                $this->cando['modName']   = true;
-                $this->cando['modMail']   = true;
-                $this->cando['modGroups'] = true;
-            }
-            $this->cando['getUsers']     = true;
-            $this->cando['getUserCount'] = true;
-        }
-
-        $this->_pregsplit_safe = version_compare(PCRE_VERSION,'6.7','>=');
-    }
-
-    /**
-     * Check user+password
-     *
-     * Checks if the given user exists and the given
-     * plaintext password is correct
-     *
-     * @author  Andreas Gohr <andi@splitbrain.org>
-     * @param string $user
-     * @param string $pass
-     * @return  bool
-     */
-    public function checkPass($user, $pass) {
-        $userinfo = $this->getUserData($user);
-        if($userinfo === false) return false;
-
-        return auth_verifyPassword($pass, $this->users[$user]['pass']);
-    }
-
-    /**
-     * Return user info
-     *
-     * Returns info about the given user needs to contain
-     * at least these fields:
-     *
-     * name string  full name of the user
-     * mail string  email addres of the user
-     * grps array   list of groups the user is in
-     *
-     * @author  Andreas Gohr <andi@splitbrain.org>
-     * @param string $user
-     * @param bool $requireGroups  (optional) ignored by this plugin, grps info always supplied
-     * @return array|false
-     */
-    public function getUserData($user, $requireGroups=true) {
-        if($this->users === null) $this->_loadUserData();
-        return isset($this->users[$user]) ? $this->users[$user] : false;
-    }
-
-    /**
-     * Creates a string suitable for saving as a line
-     * in the file database
-     * (delimiters escaped, etc.)
-     *
-     * @param string $user
-     * @param string $pass
-     * @param string $name
-     * @param string $mail
-     * @param array  $grps list of groups the user is in
-     * @return string
-     */
-    protected function _createUserLine($user, $pass, $name, $mail, $grps) {
-        $groups   = join(',', $grps);
-        $userline = array($user, $pass, $name, $mail, $groups);
-        $userline = str_replace('\\', '\\\\', $userline); // escape \ as \\
-        $userline = str_replace(':', '\\:', $userline); // escape : as \:
-        $userline = join(':', $userline)."\n";
-        return $userline;
-    }
-
-    /**
-     * Create a new User
-     *
-     * Returns false if the user already exists, null when an error
-     * occurred and true if everything went well.
-     *
-     * The new user will be added to the default group by this
-     * function if grps are not specified (default behaviour).
-     *
-     * @author  Andreas Gohr <andi@splitbrain.org>
-     * @author  Chris Smith <chris@jalakai.co.uk>
-     *
-     * @param string $user
-     * @param string $pwd
-     * @param string $name
-     * @param string $mail
-     * @param array  $grps
-     * @return bool|null|string
-     */
-    public function createUser($user, $pwd, $name, $mail, $grps = null) {
-        global $conf;
-        global $config_cascade;
-
-        // user mustn't already exist
-        if($this->getUserData($user) !== false) {
-            msg($this->getLang('userexists'), -1);
-            return false;
-        }
-
-        $pass = auth_cryptPassword($pwd);
-
-        // set default group if no groups specified
-        if(!is_array($grps)) $grps = array($conf['defaultgroup']);
-
-        // prepare user line
-        $userline = $this->_createUserLine($user, $pass, $name, $mail, $grps);
-
-        if(!io_saveFile($config_cascade['plainauth.users']['default'], $userline, true)) {
-            msg($this->getLang('writefail'), -1);
-            return null;
-        }
-
-        $this->users[$user] = compact('pass', 'name', 'mail', 'grps');
-        return $pwd;
-    }
-
-    /**
-     * Modify user data
-     *
-     * @author  Chris Smith <chris@jalakai.co.uk>
-     * @param   string $user      nick of the user to be changed
-     * @param   array  $changes   array of field/value pairs to be changed (password will be clear text)
-     * @return  bool
-     */
-    public function modifyUser($user, $changes) {
-        global $ACT;
-        global $config_cascade;
-
-        // sanity checks, user must already exist and there must be something to change
-        if(($userinfo = $this->getUserData($user)) === false) {
-            msg($this->getLang('usernotexists'), -1);
-            return false;
-        }
-
-        // don't modify protected users
-        if(!empty($userinfo['protected'])) {
-            msg(sprintf($this->getLang('protected'), hsc($user)), -1);
-            return false;
-        }
-
-        if(!is_array($changes) || !count($changes)) return true;
-
-        // update userinfo with new data, remembering to encrypt any password
-        $newuser = $user;
-        foreach($changes as $field => $value) {
-            if($field == 'user') {
-                $newuser = $value;
-                continue;
-            }
-            if($field == 'pass') $value = auth_cryptPassword($value);
-            $userinfo[$field] = $value;
-        }
-
-        $userline = $this->_createUserLine($newuser, $userinfo['pass'], $userinfo['name'], $userinfo['mail'], $userinfo['grps']);
-
-        if(!io_replaceInFile($config_cascade['plainauth.users']['default'], '/^'.$user.':/', $userline, true)) {
-            msg('There was an error modifying your user data. You may need to register again.', -1);
-            // FIXME, io functions should be fail-safe so existing data isn't lost
-            $ACT = 'register';
-            return false;
-        }
-
-        $this->users[$newuser] = $userinfo;
-        return true;
-    }
-
-    /**
-     * Remove one or more users from the list of registered users
-     *
-     * @author  Christopher Smith <chris@jalakai.co.uk>
-     * @param   array  $users   array of users to be deleted
-     * @return  int             the number of users deleted
-     */
-    public function deleteUsers($users) {
-        global $config_cascade;
-
-        if(!is_array($users) || empty($users)) return 0;
-
-        if($this->users === null) $this->_loadUserData();
-
-        $deleted = array();
-        foreach($users as $user) {
-            // don't delete protected users
-            if(!empty($this->users[$user]['protected'])) {
-                msg(sprintf($this->getLang('protected'), hsc($user)), -1);
-                continue;
-            }
-            if(isset($this->users[$user])) $deleted[] = preg_quote($user, '/');
-        }
-
-        if(empty($deleted)) return 0;
-
-        $pattern = '/^('.join('|', $deleted).'):/';
-        if (!io_deleteFromFile($config_cascade['plainauth.users']['default'], $pattern, true)) {
-            msg($this->getLang('writefail'), -1);
-            return 0;
-        }
-
-        // reload the user list and count the difference
-        $count = count($this->users);
-        $this->_loadUserData();
-        $count -= count($this->users);
-        return $count;
-    }
-
-    /**
-     * Return a count of the number of user which meet $filter criteria
-     *
-     * @author  Chris Smith <chris@jalakai.co.uk>
-     *
-     * @param array $filter
-     * @return int
-     */
-    public function getUserCount($filter = array()) {
-
-        if($this->users === null) $this->_loadUserData();
-
-        if(!count($filter)) return count($this->users);
-
-        $count = 0;
-        $this->_constructPattern($filter);
-
-        foreach($this->users as $user => $info) {
-            $count += $this->_filter($user, $info);
-        }
-
-        return $count;
-    }
-
-    /**
-     * Bulk retrieval of user data
-     *
-     * @author  Chris Smith <chris@jalakai.co.uk>
-     *
-     * @param   int   $start index of first user to be returned
-     * @param   int   $limit max number of users to be returned
-     * @param   array $filter array of field/pattern pairs
-     * @return  array userinfo (refer getUserData for internal userinfo details)
-     */
-    public function retrieveUsers($start = 0, $limit = 0, $filter = array()) {
-
-        if($this->users === null) $this->_loadUserData();
-
-        ksort($this->users);
-
-        $i     = 0;
-        $count = 0;
-        $out   = array();
-        $this->_constructPattern($filter);
-
-        foreach($this->users as $user => $info) {
-            if($this->_filter($user, $info)) {
-                if($i >= $start) {
-                    $out[$user] = $info;
-                    $count++;
-                    if(($limit > 0) && ($count >= $limit)) break;
-                }
-                $i++;
-            }
-        }
-
-        return $out;
-    }
-
-    /**
-     * Only valid pageid's (no namespaces) for usernames
-     *
-     * @param string $user
-     * @return string
-     */
-    public function cleanUser($user) {
-        global $conf;
-        return cleanID(str_replace(':', $conf['sepchar'], $user));
-    }
-
-    /**
-     * Only valid pageid's (no namespaces) for groupnames
-     *
-     * @param string $group
-     * @return string
-     */
-    public function cleanGroup($group) {
-        global $conf;
-        return cleanID(str_replace(':', $conf['sepchar'], $group));
-    }
-
-    /**
-     * Load all user data
-     *
-     * loads the user file into a datastructure
-     *
-     * @author  Andreas Gohr <andi@splitbrain.org>
-     */
-    protected function _loadUserData() {
-        global $config_cascade;
-
-        $this->users = $this->_readUserFile($config_cascade['plainauth.users']['default']);
-
-        // support protected users
-        if(!empty($config_cascade['plainauth.users']['protected'])) {
-            $protected = $this->_readUserFile($config_cascade['plainauth.users']['protected']);
-            foreach(array_keys($protected) as $key) {
-                $protected[$key]['protected'] = true;
-            }
-            $this->users = array_merge($this->users, $protected);
-        }
-    }
-
-    /**
-     * Read user data from given file
-     *
-     * ignores non existing files
-     *
-     * @param string $file the file to load data from
-     * @return array
-     */
-    protected function _readUserFile($file) {
-        $users = array();
-        if(!file_exists($file)) return $users;
-
-        $lines = file($file);
-        foreach($lines as $line) {
-            $line = preg_replace('/#.*$/', '', $line); //ignore comments
-            $line = trim($line);
-            if(empty($line)) continue;
-
-            $row = $this->_splitUserData($line);
-            $row = str_replace('\\:', ':', $row);
-            $row = str_replace('\\\\', '\\', $row);
-
-            $groups = array_values(array_filter(explode(",", $row[4])));
-
-            $users[$row[0]]['pass'] = $row[1];
-            $users[$row[0]]['name'] = urldecode($row[2]);
-            $users[$row[0]]['mail'] = $row[3];
-            $users[$row[0]]['grps'] = $groups;
-        }
-        return $users;
-    }
-
-    protected function _splitUserData($line){
-        // due to a bug in PCRE 6.6, preg_split will fail with the regex we use here
-        // refer github issues 877 & 885
-        if ($this->_pregsplit_safe){
-            return preg_split('/(?<![^\\\\]\\\\)\:/', $line, 5);       // allow for : escaped as \:
-        }
-
-        $row = array();
-        $piece = '';
-        $len = strlen($line);
-        for($i=0; $i<$len; $i++){
-            if ($line[$i]=='\\'){
-                $piece .= $line[$i];
-                $i++;
-                if ($i>=$len) break;
-            } else if ($line[$i]==':'){
-                $row[] = $piece;
-                $piece = '';
-                continue;
-            }
-            $piece .= $line[$i];
-        }
-        $row[] = $piece;
-
-        return $row;
-    }
-
-    /**
-     * return true if $user + $info match $filter criteria, false otherwise
-     *
-     * @author   Chris Smith <chris@jalakai.co.uk>
-     *
-     * @param string $user User login
-     * @param array  $info User's userinfo array
-     * @return bool
-     */
-    protected function _filter($user, $info) {
-        foreach($this->_pattern as $item => $pattern) {
-            if($item == 'user') {
-                if(!preg_match($pattern, $user)) return false;
-            } else if($item == 'grps') {
-                if(!count(preg_grep($pattern, $info['grps']))) return false;
-            } else {
-                if(!preg_match($pattern, $info[$item])) return false;
-            }
-        }
-        return true;
-    }
-
-    /**
-     * construct a filter pattern
-     *
-     * @param array $filter
-     */
-    protected function _constructPattern($filter) {
-        $this->_pattern = array();
-        foreach($filter as $item => $pattern) {
-            $this->_pattern[$item] = '/'.str_replace('/', '\/', $pattern).'/i'; // allow regex characters
-        }
-    }
-}
diff --git a/wiki/lib/plugins/authplain/lang/af/lang.php b/wiki/lib/plugins/authplain/lang/af/lang.php
deleted file mode 100644
index 29742cf..0000000
--- a/wiki/lib/plugins/authplain/lang/af/lang.php
+++ /dev/null
@@ -1,6 +0,0 @@
-<?php
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- */
-$lang['userexists']     = 'Die gebruikersnaam wat jy gebruik het, is alreeds gebruik. Kies asseblief \'n ander gebruikersnaam.';
diff --git a/wiki/lib/plugins/authplain/lang/ar/lang.php b/wiki/lib/plugins/authplain/lang/ar/lang.php
deleted file mode 100644
index 16d59f3..0000000
--- a/wiki/lib/plugins/authplain/lang/ar/lang.php
+++ /dev/null
@@ -1,6 +0,0 @@
-<?php
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- */
-$lang['userexists']     = 'عذرا، يوجد مشترك Ø¨Ù†ÙØ³ الاسم.';
diff --git a/wiki/lib/plugins/authplain/lang/az/lang.php b/wiki/lib/plugins/authplain/lang/az/lang.php
deleted file mode 100644
index 8d29d4c..0000000
--- a/wiki/lib/plugins/authplain/lang/az/lang.php
+++ /dev/null
@@ -1,7 +0,0 @@
-<?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.';
diff --git a/wiki/lib/plugins/authplain/lang/bg/lang.php b/wiki/lib/plugins/authplain/lang/bg/lang.php
deleted file mode 100644
index 62e62dc..0000000
--- a/wiki/lib/plugins/authplain/lang/bg/lang.php
+++ /dev/null
@@ -1,9 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author Kiril <neohidra@gmail.com>
- */
-$lang['userexists']            = 'Вече ÑъщеÑтвува потребител Ñ Ð¸Ð·Ð±Ñ€Ð°Ð½Ð¾Ñ‚Ð¾ име.';
-$lang['usernotexists']         = 'За Ñъжаление потребителÑÑ‚ не ÑъщеÑтвува.';
diff --git a/wiki/lib/plugins/authplain/lang/bn/lang.php b/wiki/lib/plugins/authplain/lang/bn/lang.php
deleted file mode 100644
index 43fe4ca..0000000
--- a/wiki/lib/plugins/authplain/lang/bn/lang.php
+++ /dev/null
@@ -1,6 +0,0 @@
-<?php
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- */
-$lang['userexists']     = 'দà§à¦ƒà¦–িত, à¦à¦‡ লগইন সঙà§à¦—ে à¦à¦•টি বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•ারী ইতিমধà§à¦¯à§‡à¦‡ বিদà§à¦¯à¦®à¦¾à¦¨.';
diff --git a/wiki/lib/plugins/authplain/lang/ca-valencia/lang.php b/wiki/lib/plugins/authplain/lang/ca-valencia/lang.php
deleted file mode 100644
index 3e973be..0000000
--- a/wiki/lib/plugins/authplain/lang/ca-valencia/lang.php
+++ /dev/null
@@ -1,6 +0,0 @@
-<?php
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- */
-$lang['userexists']     = 'Disculpe, pero ya existix un usuari en este nom.';
diff --git a/wiki/lib/plugins/authplain/lang/ca/lang.php b/wiki/lib/plugins/authplain/lang/ca/lang.php
deleted file mode 100644
index f792817..0000000
--- a/wiki/lib/plugins/authplain/lang/ca/lang.php
+++ /dev/null
@@ -1,7 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- */
-$lang['userexists']            = 'Ja existeix un altre usuari amb aquest nom.';
diff --git a/wiki/lib/plugins/authplain/lang/cs/lang.php b/wiki/lib/plugins/authplain/lang/cs/lang.php
deleted file mode 100644
index 4eaacdc..0000000
--- a/wiki/lib/plugins/authplain/lang/cs/lang.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Jaroslav Lichtblau <jlichtblau@seznam.cz>
- * @author Daniel SlováÄek <danslo@danslo.cz>
- */
-$lang['userexists']            = 'Uživatel se stejným jménem už je zaregistrován.';
-$lang['usernotexists']         = 'Omlouváme se, uživatel tohoto jména neexistuje.';
-$lang['writefail']             = 'Nelze změnit údaje uživatele. Informujte prosím správce wiki';
-$lang['protected']             = 'Data pro uživatele %s jsou chráněna a nemůžou být upravena nebo smazána.';
diff --git a/wiki/lib/plugins/authplain/lang/cy/lang.php b/wiki/lib/plugins/authplain/lang/cy/lang.php
deleted file mode 100644
index 7f789e5..0000000
--- a/wiki/lib/plugins/authplain/lang/cy/lang.php
+++ /dev/null
@@ -1,8 +0,0 @@
-<?php
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- */
-$lang['userexists']     = 'Sori, mae defnyddiwr gyda\'r enw hwnnw eisoes yn bodoli.';
-$lang['usernotexists']  = 'Sori, \'dyw\'r defnyddiwr hwnnw ddim yn bodoli.';
-$lang['writefail']      = 'Methu â newid data defnyddiwr. Rhowch wybod i Weinydd y Wici';
diff --git a/wiki/lib/plugins/authplain/lang/da/lang.php b/wiki/lib/plugins/authplain/lang/da/lang.php
deleted file mode 100644
index ff683ed..0000000
--- a/wiki/lib/plugins/authplain/lang/da/lang.php
+++ /dev/null
@@ -1,9 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Kenneth Schack Banner <kescba@gmail.com>
- */
-$lang['userexists']            = 'Dette brugernavn er allerede i brug.';
-$lang['writefail']             = 'Ude af stand til at redigere bruger data. Kontakt venligst Wiki-Administratoren';
diff --git a/wiki/lib/plugins/authplain/lang/de-informal/lang.php b/wiki/lib/plugins/authplain/lang/de-informal/lang.php
deleted file mode 100644
index c087073..0000000
--- a/wiki/lib/plugins/authplain/lang/de-informal/lang.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author rnck <dokuwiki@rnck.de>
- */
-$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/wiki/lib/plugins/authplain/lang/de/lang.php b/wiki/lib/plugins/authplain/lang/de/lang.php
deleted file mode 100644
index e524372..0000000
--- a/wiki/lib/plugins/authplain/lang/de/lang.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Anika Henke <anika@selfthinker.org>
- * @author Carsten Perthel <carsten@cpesoft.com>
- */
-$lang['userexists']            = 'Der Benutzername existiert leider schon.';
-$lang['usernotexists']         = 'Dieser Benutzer existiert nicht.';
-$lang['writefail']             = 'Kann Benutzerdaten nicht ändern. Bitte informieren Sie den Wiki-Administratoren';
-$lang['protected']             = 'Die Daten des Benutzers %s sind geschützt und können nicht verändert oder gelöscht werden.';
diff --git a/wiki/lib/plugins/authplain/lang/el/lang.php b/wiki/lib/plugins/authplain/lang/el/lang.php
deleted file mode 100644
index 1d83eb1..0000000
--- a/wiki/lib/plugins/authplain/lang/el/lang.php
+++ /dev/null
@@ -1,7 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- */
-$lang['userexists']            = 'Αυτός ο λογαÏιασμός υπάÏχει ήδη.';
diff --git a/wiki/lib/plugins/authplain/lang/en/lang.php b/wiki/lib/plugins/authplain/lang/en/lang.php
deleted file mode 100644
index 7108f38..0000000
--- a/wiki/lib/plugins/authplain/lang/en/lang.php
+++ /dev/null
@@ -1,9 +0,0 @@
-<?php
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- */
-$lang['userexists']     = 'Sorry, a user with this login already exists.';
-$lang['usernotexists']  = 'Sorry, that user doesn\'t exist.';
-$lang['writefail']      = 'Unable to modify user data. Please inform the Wiki-Admin';
-$lang['protected']      = 'Data for user %s is protected and can not be modified or deleted.';
diff --git a/wiki/lib/plugins/authplain/lang/eo/lang.php b/wiki/lib/plugins/authplain/lang/eo/lang.php
deleted file mode 100644
index 3a3f45c..0000000
--- a/wiki/lib/plugins/authplain/lang/eo/lang.php
+++ /dev/null
@@ -1,9 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Kristjan SCHMIDT <kristjan.schmidt@googlemail.com>
- */
-$lang['userexists']            = 'Pardonu, ĉi tiu uzanto-nomo jam ekzistas.';
-$lang['usernotexists']         = 'Pardonu, tiu uzanto ne ekzistas.';
diff --git a/wiki/lib/plugins/authplain/lang/es/lang.php b/wiki/lib/plugins/authplain/lang/es/lang.php
deleted file mode 100644
index b81bbb8..0000000
--- a/wiki/lib/plugins/authplain/lang/es/lang.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Domingo Redal <docxml@gmail.com>
- * @author Enny Rodriguez <aquilez.4@gmail.com>
- */
-$lang['userexists']            = 'Lo siento, ya existe un usuario con este nombre.';
-$lang['usernotexists']         = 'Lo sentimos, no existe ese usuario.';
-$lang['writefail']             = 'No es posible modificar los datos del usuario. Por favor, informa al Administrador del Wiki';
-$lang['protected']             = 'Los datos del usuario %s están protegidos y no pueden ser modificados o eliminados.';
diff --git a/wiki/lib/plugins/authplain/lang/et/lang.php b/wiki/lib/plugins/authplain/lang/et/lang.php
deleted file mode 100644
index 7f9f777..0000000
--- a/wiki/lib/plugins/authplain/lang/et/lang.php
+++ /dev/null
@@ -1,6 +0,0 @@
-<?php
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- */
-$lang['userexists']     = 'Tegelikult on sellise nimega kasutaja juba olemas.';
diff --git a/wiki/lib/plugins/authplain/lang/eu/lang.php b/wiki/lib/plugins/authplain/lang/eu/lang.php
deleted file mode 100644
index 2c7e853..0000000
--- a/wiki/lib/plugins/authplain/lang/eu/lang.php
+++ /dev/null
@@ -1,7 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- */
-$lang['userexists']            = 'Barkatu, izen bereko erabiltzailea existitzen da.';
diff --git a/wiki/lib/plugins/authplain/lang/fa/lang.php b/wiki/lib/plugins/authplain/lang/fa/lang.php
deleted file mode 100644
index 4c92aea..0000000
--- a/wiki/lib/plugins/authplain/lang/fa/lang.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Masoud Sadrnezhaad <masoud@sadrnezhaad.ir>
- * @author sam01 <m.sajad079@gmail.com>
- */
-$lang['userexists']            = 'نام کاربری‌ای Ú©Ù‡ وارد کردید قبلن Ø§Ø³ØªÙØ§Ø¯Ù‡ شده است. خواهشمندیم یک نام دیگر انتخاب کنید.';
-$lang['usernotexists']         = 'Ù…ØªØ§Ø³ÙØ§Ù†Ù‡ این کاربر وجود ندارد.';
-$lang['writefail']             = 'امکان ویرایش اطلاعات کاربر وجود ندارد. Ù„Ø·ÙØ§ ادمین ویکی را مطلع نمایید.';
-$lang['protected']             = 'داده‌ها برای کاربر %s Ù…Ø­Ø§ÙØ¸Øª شده Ùˆ قابل تغییر نیست یا حذ٠شده اند.';
diff --git a/wiki/lib/plugins/authplain/lang/fi/lang.php b/wiki/lib/plugins/authplain/lang/fi/lang.php
deleted file mode 100644
index abdaf67..0000000
--- a/wiki/lib/plugins/authplain/lang/fi/lang.php
+++ /dev/null
@@ -1,7 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- */
-$lang['userexists']            = 'Käyttäjä tällä käyttäjänimellä on jo olemassa.';
diff --git a/wiki/lib/plugins/authplain/lang/fo/lang.php b/wiki/lib/plugins/authplain/lang/fo/lang.php
deleted file mode 100644
index a965466..0000000
--- a/wiki/lib/plugins/authplain/lang/fo/lang.php
+++ /dev/null
@@ -1,6 +0,0 @@
-<?php
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- */
-$lang['userexists']     = 'Hetta brúkaranavn er upptiki.';
diff --git a/wiki/lib/plugins/authplain/lang/fr/lang.php b/wiki/lib/plugins/authplain/lang/fr/lang.php
deleted file mode 100644
index b675455..0000000
--- a/wiki/lib/plugins/authplain/lang/fr/lang.php
+++ /dev/null
@@ -1,13 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Carbain Frédéric <fcarbain@yahoo.fr>
- * @author Nicolas Friedli <nicolas@theologique.ch>
- * @author Schplurtz le Déboulonné <Schplurtz@laposte.net>
- */
-$lang['userexists']            = 'Désolé, ce nom d\'utilisateur est déjà pris.';
-$lang['usernotexists']         = 'Désolé, cet utilisateur n\'existe pas.';
-$lang['writefail']             = 'Impossible de modifier les données utilisateur. Merci d\'en informer l\'administrateur du wiki.';
-$lang['protected']             = 'Les données du compte d\'utilisateur %s sont protégées et ne peuvent être ni modifiées ni supprimées.';
diff --git a/wiki/lib/plugins/authplain/lang/gl/lang.php b/wiki/lib/plugins/authplain/lang/gl/lang.php
deleted file mode 100644
index 35138d3..0000000
--- a/wiki/lib/plugins/authplain/lang/gl/lang.php
+++ /dev/null
@@ -1,6 +0,0 @@
-<?php
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- */
-$lang['userexists']     = 'Sentímolo, mais xa existe un usuario con ese nome.';
diff --git a/wiki/lib/plugins/authplain/lang/he/lang.php b/wiki/lib/plugins/authplain/lang/he/lang.php
deleted file mode 100644
index a2e1324..0000000
--- a/wiki/lib/plugins/authplain/lang/he/lang.php
+++ /dev/null
@@ -1,7 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- */
-$lang['userexists']            = 'משתמש ×‘×©× ×–×” כבר נרש×, עמך הסליחה.';
diff --git a/wiki/lib/plugins/authplain/lang/hr/lang.php b/wiki/lib/plugins/authplain/lang/hr/lang.php
deleted file mode 100644
index f15a25e..0000000
--- a/wiki/lib/plugins/authplain/lang/hr/lang.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Davor Turkalj <turki.bsc@gmail.com>
- */
-$lang['userexists']            = 'Korisnik s tim korisniÄkim imenom već postoji.';
-$lang['usernotexists']         = 'Nažalost korisnik ne postoji';
-$lang['writefail']             = 'Ne mogu izmijeniti korisniÄke podatke. Molim obavijestite svog Wiki administratora';
-$lang['protected']             = 'Podaci za korisnika %s su zaštićeni i ne mogu biti izmijenjeni ili obrisani.';
diff --git a/wiki/lib/plugins/authplain/lang/hu/lang.php b/wiki/lib/plugins/authplain/lang/hu/lang.php
deleted file mode 100644
index 5f684d7..0000000
--- a/wiki/lib/plugins/authplain/lang/hu/lang.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author Marton Sebok <sebokmarton@gmail.com>
- */
-$lang['userexists']            = 'Sajnáljuk, ilyen azonosítójú felhasználónk már van.';
-$lang['usernotexists']         = 'Sajnos ez a felhasználó nem létezik.';
-$lang['writefail']             = 'A felhasználói adatok módosítása sikertelen. Kérlek, fordulj a wiki rendszergazdájához!';
diff --git a/wiki/lib/plugins/authplain/lang/ia/lang.php b/wiki/lib/plugins/authplain/lang/ia/lang.php
deleted file mode 100644
index 7596f3f..0000000
--- a/wiki/lib/plugins/authplain/lang/ia/lang.php
+++ /dev/null
@@ -1,6 +0,0 @@
-<?php
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- */
-$lang['userexists']     = 'Regrettabilemente, un usator con iste nomine ja existe.';
diff --git a/wiki/lib/plugins/authplain/lang/id-ni/lang.php b/wiki/lib/plugins/authplain/lang/id-ni/lang.php
deleted file mode 100644
index 729c9f9..0000000
--- a/wiki/lib/plugins/authplain/lang/id-ni/lang.php
+++ /dev/null
@@ -1,6 +0,0 @@
-<?php
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- */
-$lang['userexists']     = 'Bologö dödöu, no so zangoguna\'ö töi da\'a.';
diff --git a/wiki/lib/plugins/authplain/lang/id/lang.php b/wiki/lib/plugins/authplain/lang/id/lang.php
deleted file mode 100644
index 5e6a998..0000000
--- a/wiki/lib/plugins/authplain/lang/id/lang.php
+++ /dev/null
@@ -1,6 +0,0 @@
-<?php
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- */
-$lang['userexists']     = 'Maaf, user dengan user login ini telah ada.';
diff --git a/wiki/lib/plugins/authplain/lang/is/lang.php b/wiki/lib/plugins/authplain/lang/is/lang.php
deleted file mode 100644
index 21392ee..0000000
--- a/wiki/lib/plugins/authplain/lang/is/lang.php
+++ /dev/null
@@ -1,6 +0,0 @@
-<?php
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- */
-$lang['userexists']     = 'Afsakið, notandi með þessu nafni er þegar skráður inn.';
diff --git a/wiki/lib/plugins/authplain/lang/it/lang.php b/wiki/lib/plugins/authplain/lang/it/lang.php
deleted file mode 100644
index 1627a15..0000000
--- a/wiki/lib/plugins/authplain/lang/it/lang.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Torpedo <dgtorpedo@gmail.com>
- * @author Riccardo <riccardofila@gmail.com>
- */
-$lang['userexists']            = 'Il nome utente inserito esiste già.';
-$lang['usernotexists']         = 'Spiacente, quell\'utente non esiste.';
-$lang['writefail']             = 'Impossibile modificare i dati utente. Per favore informa l\'Amministratore del Wiki';
-$lang['protected']             = 'I dati relativi all\'utente %s sono protetti e non possono essere modificati o cancellati.';
diff --git a/wiki/lib/plugins/authplain/lang/ja/lang.php b/wiki/lib/plugins/authplain/lang/ja/lang.php
deleted file mode 100644
index f290cba..0000000
--- a/wiki/lib/plugins/authplain/lang/ja/lang.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Hideaki SAWADA <chuno@live.jp>
- */
-$lang['userexists']            = 'ã“ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼åã¯æ—¢ã«å­˜åœ¨ã—ã¦ã„ã¾ã™ã€‚';
-$lang['usernotexists']         = 'ã“ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã¯æœªç™»éŒ²ã§ã™ã€‚';
-$lang['writefail']             = 'ユーザーデータを変更ã§ãã¾ã›ã‚“。管ç†è€…ã«å•ã„åˆã‚ã›ã¦ãã ã•ã„。';
-$lang['protected']             = 'ユーザ %s ã®ãƒ‡ãƒ¼ã‚¿ã¯ä¿è­·ã•れã¦ãŠã‚Šã€å¤‰æ›´ãƒ»å‰Šé™¤ã¯ã§ãã¾ã›ã‚“。';
diff --git a/wiki/lib/plugins/authplain/lang/ka/lang.php b/wiki/lib/plugins/authplain/lang/ka/lang.php
deleted file mode 100644
index 1a1a297..0000000
--- a/wiki/lib/plugins/authplain/lang/ka/lang.php
+++ /dev/null
@@ -1,7 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- */
-$lang['userexists']            = 'მსგáƒáƒ•სი ლáƒáƒ’ინი უკვე áƒáƒ áƒ¡áƒ”ბáƒáƒ‘ს';
diff --git a/wiki/lib/plugins/authplain/lang/kk/lang.php b/wiki/lib/plugins/authplain/lang/kk/lang.php
deleted file mode 100644
index 95fe532..0000000
--- a/wiki/lib/plugins/authplain/lang/kk/lang.php
+++ /dev/null
@@ -1,6 +0,0 @@
-<?php
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- */
-$lang['userexists']     = 'Кешіріңіз, бұл түпнұÑкамен де пайдаланушы бар.';
diff --git a/wiki/lib/plugins/authplain/lang/km/lang.php b/wiki/lib/plugins/authplain/lang/km/lang.php
deleted file mode 100644
index 322e454..0000000
--- a/wiki/lib/plugins/authplain/lang/km/lang.php
+++ /dev/null
@@ -1,6 +0,0 @@
-<?php
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- */
-$lang['userexists']     = 'សុំអាទោស​ នាមប្រើនáŸáŸ‡áž˜áž¶áž“រួចហើ។';
diff --git a/wiki/lib/plugins/authplain/lang/ko/lang.php b/wiki/lib/plugins/authplain/lang/ko/lang.php
deleted file mode 100644
index 402a963..0000000
--- a/wiki/lib/plugins/authplain/lang/ko/lang.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Myeongjin <aranet100@gmail.com>
- */
-$lang['userexists']            = '죄송하지만 ê°™ì€ ì´ë¦„ì„ ì‚¬ìš©í•˜ëŠ” 사용ìžê°€ 있습니다.';
-$lang['usernotexists']         = '죄송하지만 해당 사용ìžê°€ 존재하지 않습니다.';
-$lang['writefail']             = 'ì‚¬ìš©ìž ë°ì´í„°ë¥¼ 수정할 수 없습니다. 위키 관리ìžì—게 문ì˜í•˜ì‹œê¸° ë°”ëžë‹ˆë‹¤';
-$lang['protected']             = '%s 사용ìžì˜ ë°ì´í„°ëŠ” 잠겨 있어 수정하거나 삭제할 수 없습니다.';
diff --git a/wiki/lib/plugins/authplain/lang/ku/lang.php b/wiki/lib/plugins/authplain/lang/ku/lang.php
deleted file mode 100644
index 64cb834..0000000
--- a/wiki/lib/plugins/authplain/lang/ku/lang.php
+++ /dev/null
@@ -1,6 +0,0 @@
-<?php
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- */
-$lang['userexists']     = 'Sorry, a user with this login already exists.';
diff --git a/wiki/lib/plugins/authplain/lang/la/lang.php b/wiki/lib/plugins/authplain/lang/la/lang.php
deleted file mode 100644
index 5f2eecf..0000000
--- a/wiki/lib/plugins/authplain/lang/la/lang.php
+++ /dev/null
@@ -1,6 +0,0 @@
-<?php
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- */
-$lang['userexists']     = 'Nomen Sodalis ab aliquo iam elegitur.';
diff --git a/wiki/lib/plugins/authplain/lang/lb/lang.php b/wiki/lib/plugins/authplain/lang/lb/lang.php
deleted file mode 100644
index 4c760df..0000000
--- a/wiki/lib/plugins/authplain/lang/lb/lang.php
+++ /dev/null
@@ -1,6 +0,0 @@
-<?php
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- */
-$lang['userexists']     = 'Et get schonn e Benotzer mat deem Numm.';
diff --git a/wiki/lib/plugins/authplain/lang/lt/lang.php b/wiki/lib/plugins/authplain/lang/lt/lang.php
deleted file mode 100644
index 5ad435a..0000000
--- a/wiki/lib/plugins/authplain/lang/lt/lang.php
+++ /dev/null
@@ -1,6 +0,0 @@
-<?php
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- */
-$lang['userexists']     = 'Vartotojas su pasirinktu prisijungimo vardu jau egzistuoja.';
diff --git a/wiki/lib/plugins/authplain/lang/lv/lang.php b/wiki/lib/plugins/authplain/lang/lv/lang.php
deleted file mode 100644
index afc89e4..0000000
--- a/wiki/lib/plugins/authplain/lang/lv/lang.php
+++ /dev/null
@@ -1,7 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- */
-$lang['userexists']            = 'Atvaino, tÄds lietotÄjs jau ir.';
diff --git a/wiki/lib/plugins/authplain/lang/mg/lang.php b/wiki/lib/plugins/authplain/lang/mg/lang.php
deleted file mode 100644
index 8472161..0000000
--- a/wiki/lib/plugins/authplain/lang/mg/lang.php
+++ /dev/null
@@ -1,6 +0,0 @@
-<?php
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- */
-$lang['userexists']     = 'Indrisy fa efa nisy namandrika io anarana io.';
diff --git a/wiki/lib/plugins/authplain/lang/mk/lang.php b/wiki/lib/plugins/authplain/lang/mk/lang.php
deleted file mode 100644
index 8ebb9fa..0000000
--- a/wiki/lib/plugins/authplain/lang/mk/lang.php
+++ /dev/null
@@ -1,6 +0,0 @@
-<?php
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- */
-$lang['userexists']     = 'Жалам, кориÑник Ñо ова кориÑничко име веќе поÑтои.';
diff --git a/wiki/lib/plugins/authplain/lang/mr/lang.php b/wiki/lib/plugins/authplain/lang/mr/lang.php
deleted file mode 100644
index 15dcf18..0000000
--- a/wiki/lib/plugins/authplain/lang/mr/lang.php
+++ /dev/null
@@ -1,6 +0,0 @@
-<?php
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- */
-$lang['userexists']     = 'या नावाने सदसà¥à¤¯à¤¾à¤šà¥€ नोंदणी à¤à¤¾à¤²à¥‡à¤²à¥€ आहे, कृपया दà¥à¤¸à¤°à¥‡ सदसà¥à¤¯ नाव निवडा.';
diff --git a/wiki/lib/plugins/authplain/lang/ms/lang.php b/wiki/lib/plugins/authplain/lang/ms/lang.php
deleted file mode 100644
index 14c3b11..0000000
--- a/wiki/lib/plugins/authplain/lang/ms/lang.php
+++ /dev/null
@@ -1,6 +0,0 @@
-<?php
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- */
-$lang['userexists']     = 'Maaf, nama pengguna yang dimasukkan telah diguna. Sila pilih nama yang lain.';
diff --git a/wiki/lib/plugins/authplain/lang/ne/lang.php b/wiki/lib/plugins/authplain/lang/ne/lang.php
deleted file mode 100644
index 9427578..0000000
--- a/wiki/lib/plugins/authplain/lang/ne/lang.php
+++ /dev/null
@@ -1,6 +0,0 @@
-<?php
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- */
-$lang['userexists']     = 'यो नामको पà¥à¤°à¤¯à¥‹à¤—करà¥à¤¤à¤¾ पहिले देखि रहेको छ।';
diff --git a/wiki/lib/plugins/authplain/lang/nl/lang.php b/wiki/lib/plugins/authplain/lang/nl/lang.php
deleted file mode 100644
index e1d81d2..0000000
--- a/wiki/lib/plugins/authplain/lang/nl/lang.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Hugo Smet <hugo.smet@scarlet.be>
- * @author Sjoerd <sjoerd@sjomar.eu>
- */
-$lang['userexists']            = 'Er bestaat al een gebruiker met deze loginnaam.';
-$lang['usernotexists']         = 'Sorry, deze gebruiker bestaat niet.';
-$lang['writefail']             = 'Onmogelijk om de gebruikers data te wijzigen. Gelieve de Wiki-Admin te informeren.';
-$lang['protected']             = 'Gegevens van gebruiker %s zijn beschermd en kunnen niet worden veranderd of verwijderd';
diff --git a/wiki/lib/plugins/authplain/lang/no/lang.php b/wiki/lib/plugins/authplain/lang/no/lang.php
deleted file mode 100644
index a92c262..0000000
--- a/wiki/lib/plugins/authplain/lang/no/lang.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Arne Hanssen <arne.hanssen@getmail.no>
- */
-$lang['userexists']            = 'Det finnes allerede en konto med dette brukernavnet.';
-$lang['usernotexists']         = 'Beklager, denne bruker fins ikke.';
-$lang['writefail']             = 'Klarte ikke endre brukerdata. Dette bør meldes til wikiens administrator';
-$lang['protected']             = 'Data for bruker %s er beskyttet og kan ikke endres eller slettes.';
diff --git a/wiki/lib/plugins/authplain/lang/pl/lang.php b/wiki/lib/plugins/authplain/lang/pl/lang.php
deleted file mode 100644
index 95b46fe..0000000
--- a/wiki/lib/plugins/authplain/lang/pl/lang.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Max <maxrb146@gmail.com>
- */
-$lang['userexists']            = 'Użytkownik o tej nazwie już istnieje.';
-$lang['usernotexists']         = 'Przepraszamy, użytkownik nie istnieje';
-$lang['writefail']             = 'Nie można modyfikować danych użytkownika. Proszę skontaktować się z administratorem ';
-$lang['protected']             = 'Dane użytkownika %s są chronione, nie mogą być modyfikowane oraz usuwane';
diff --git a/wiki/lib/plugins/authplain/lang/pt-br/lang.php b/wiki/lib/plugins/authplain/lang/pt-br/lang.php
deleted file mode 100644
index ee42b83..0000000
--- a/wiki/lib/plugins/authplain/lang/pt-br/lang.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Frederico Gonçalves Guimarães <frederico@teia.bio.br>
- * @author Felipe Castro <fefcas@gmail.com>
- */
-$lang['userexists']            = 'Desculpe, mas já existe um usuário com esse nome.';
-$lang['usernotexists']         = 'Desculpe, mas esse usuário não existe.';
-$lang['writefail']             = 'Não foi possível modificar os dados do usuário. Por favor, informe ao administrador do Wiki.';
-$lang['protected']             = 'Dados para o usuário %s estão protegidos e não podem ser modificados ou apagados.';
diff --git a/wiki/lib/plugins/authplain/lang/pt/lang.php b/wiki/lib/plugins/authplain/lang/pt/lang.php
deleted file mode 100644
index 3334ea6..0000000
--- a/wiki/lib/plugins/authplain/lang/pt/lang.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Paulo Carmino <contato@paulocarmino.com>
- * @author Guilherme Sá <guilherme.sa@hotmail.com>
- */
-$lang['userexists']            = 'Este utilizador já está inscrito. Por favor escolha outro nome de utilizador.';
-$lang['usernotexists']         = 'Desculpe, esse login não existe.';
-$lang['writefail']             = 'Incapaz de modificar dados do usuário. Favor informar ao Wiki-Admin.';
diff --git a/wiki/lib/plugins/authplain/lang/ro/lang.php b/wiki/lib/plugins/authplain/lang/ro/lang.php
deleted file mode 100644
index d549e1f..0000000
--- a/wiki/lib/plugins/authplain/lang/ro/lang.php
+++ /dev/null
@@ -1,7 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- */
-$lang['userexists']            = 'Ne pare rău, un utilizator cu acest nume este deja autentificat.';
diff --git a/wiki/lib/plugins/authplain/lang/ru/lang.php b/wiki/lib/plugins/authplain/lang/ru/lang.php
deleted file mode 100644
index 0ee34f9..0000000
--- a/wiki/lib/plugins/authplain/lang/ru/lang.php
+++ /dev/null
@@ -1,13 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author RainbowSpike <1@2.ru>
- * @author Aleksandr Selivanov <alexgearbox@yandex.ru>
- * @author Radimir <radimir.shevchenko@gmail.com>
- */
-$lang['userexists']            = 'Извините, пользователь Ñ Ñ‚Ð°ÐºÐ¸Ð¼ логином уже ÑущеÑтвует.';
-$lang['usernotexists']         = 'Этот пользователь не зарегиÑтрирован.';
-$lang['writefail']             = 'Ðевозможно обновить данные пользователÑ. СвÑжитеÑÑŒ Ñ Ð°Ð´Ð¼Ð¸Ð½Ð¸Ñтратором вики';
-$lang['protected']             = 'Данные Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ %s защищены и не могут быть изменены или удалены.';
diff --git a/wiki/lib/plugins/authplain/lang/sk/lang.php b/wiki/lib/plugins/authplain/lang/sk/lang.php
deleted file mode 100644
index d1cfbfd..0000000
--- a/wiki/lib/plugins/authplain/lang/sk/lang.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Martin Michalek <michalek.dev@gmail.com>
- */
-$lang['userexists']            = 'Užívateľ s rovnakým menom je už zaregistrovaný.';
-$lang['usernotexists']         = 'Ľutujem, daný používateľ neexistuje.';
-$lang['writefail']             = 'Nie je možné zmeniť údaje používateľa, informujte prosím administrátora Wiki.';
-$lang['protected']             = 'Údaje používateľa %s sú chránené a nemôžu by zmenené alebo vymazané.';
diff --git a/wiki/lib/plugins/authplain/lang/sl/lang.php b/wiki/lib/plugins/authplain/lang/sl/lang.php
deleted file mode 100644
index 46eb4bf..0000000
--- a/wiki/lib/plugins/authplain/lang/sl/lang.php
+++ /dev/null
@@ -1,7 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- */
-$lang['userexists']            = 'Uporabnik s tem imenom že obstaja.';
diff --git a/wiki/lib/plugins/authplain/lang/sq/lang.php b/wiki/lib/plugins/authplain/lang/sq/lang.php
deleted file mode 100644
index e3a9350..0000000
--- a/wiki/lib/plugins/authplain/lang/sq/lang.php
+++ /dev/null
@@ -1,6 +0,0 @@
-<?php
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- */
-$lang['userexists']     = 'Na vjen keq, ekziston një përdorues tjetër me të njëjtin emër.';
diff --git a/wiki/lib/plugins/authplain/lang/sr/lang.php b/wiki/lib/plugins/authplain/lang/sr/lang.php
deleted file mode 100644
index 19bd8b7..0000000
--- a/wiki/lib/plugins/authplain/lang/sr/lang.php
+++ /dev/null
@@ -1,7 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- */
-$lang['userexists']            = 'Извините, кориÑник Ñа иÑтим именом већ поÑтоји.';
diff --git a/wiki/lib/plugins/authplain/lang/sv/lang.php b/wiki/lib/plugins/authplain/lang/sv/lang.php
deleted file mode 100644
index 83c24d7..0000000
--- a/wiki/lib/plugins/authplain/lang/sv/lang.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Tor Härnqvist <tor@harnqvist.se>
- */
-$lang['userexists']            = 'Det finns redan en användare med det användarnamnet.';
-$lang['usernotexists']         = 'Tyvärr, den användaren existerar inte.';
-$lang['writefail']             = 'Kunde inte ändra användardata. Var god informera Wiki-administratören';
diff --git a/wiki/lib/plugins/authplain/lang/th/lang.php b/wiki/lib/plugins/authplain/lang/th/lang.php
deleted file mode 100644
index 463a279..0000000
--- a/wiki/lib/plugins/authplain/lang/th/lang.php
+++ /dev/null
@@ -1,7 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- */
-$lang['userexists']            = 'ชื่อบัà¸à¸Šà¸µà¸—ี่ใส่นั้นมีผู้อื่นได้ใช้à¹à¸¥à¹‰à¸§ à¸à¸£à¸¸à¸“าเลือà¸à¸Šà¸·à¹ˆà¸­à¸œà¸¹à¹‰à¹ƒà¸Šà¹‰à¸­à¸·à¹ˆà¸™';
diff --git a/wiki/lib/plugins/authplain/lang/tr/lang.php b/wiki/lib/plugins/authplain/lang/tr/lang.php
deleted file mode 100644
index 6111085..0000000
--- a/wiki/lib/plugins/authplain/lang/tr/lang.php
+++ /dev/null
@@ -1,7 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- */
-$lang['userexists']            = 'Üzgünüz, bu isime sahip bir kullanıcı zaten mevcut.';
diff --git a/wiki/lib/plugins/authplain/lang/uk/lang.php b/wiki/lib/plugins/authplain/lang/uk/lang.php
deleted file mode 100644
index 86ab3d1..0000000
--- a/wiki/lib/plugins/authplain/lang/uk/lang.php
+++ /dev/null
@@ -1,9 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Nina Zolotova <nina-z@i.ua>
- */
-$lang['userexists']            = 'КориÑтувач з таким іменем вже Ñ–Ñнує.';
-$lang['usernotexists']         = 'Вибачте, такого кориÑтувача не Ñ–Ñнує.';
diff --git a/wiki/lib/plugins/authplain/lang/vi/lang.php b/wiki/lib/plugins/authplain/lang/vi/lang.php
deleted file mode 100644
index 7ecb0a2..0000000
--- a/wiki/lib/plugins/authplain/lang/vi/lang.php
+++ /dev/null
@@ -1,6 +0,0 @@
-<?php
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- */
-$lang['userexists']     = 'Bạn khác đã dùng username này rồi.';
diff --git a/wiki/lib/plugins/authplain/lang/zh-tw/lang.php b/wiki/lib/plugins/authplain/lang/zh-tw/lang.php
deleted file mode 100644
index 39578f5..0000000
--- a/wiki/lib/plugins/authplain/lang/zh-tw/lang.php
+++ /dev/null
@@ -1,7 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- */
-$lang['userexists']            = '很抱歉,有人已使用了這個帳號。';
diff --git a/wiki/lib/plugins/authplain/lang/zh/lang.php b/wiki/lib/plugins/authplain/lang/zh/lang.php
deleted file mode 100644
index 1e0dd10..0000000
--- a/wiki/lib/plugins/authplain/lang/zh/lang.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author lainme <lainme993@gmail.com>
- * @author tai <tai_tang@126.com>
- */
-$lang['userexists']            = '对ä¸èµ·ï¼Œè¯¥ç”¨æˆ·åå·²ç»å­˜åœ¨ã€‚';
-$lang['usernotexists']         = '抱歉,该用户ä¸å­˜åœ¨';
-$lang['writefail']             = '无法修改用户数æ®ã€‚请è”系维基管ç†å‘˜';
-$lang['protected']             = '用户 %s 的数æ®è¢«ä¿æŠ¤å’Œæ— æ³•被编辑或删除。';
diff --git a/wiki/lib/plugins/authplain/plugin.info.txt b/wiki/lib/plugins/authplain/plugin.info.txt
deleted file mode 100644
index c09dbcb..0000000
--- a/wiki/lib/plugins/authplain/plugin.info.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-base   authplain
-author Andreas Gohr
-email  andi@splitbrain.org
-date   2015-07-18
-name   Plain Auth Plugin
-desc   Provides user authentication against DokuWiki's local password storage
-url    http://www.dokuwiki.org/plugin:authplain
diff --git a/wiki/lib/plugins/cli.php b/wiki/lib/plugins/cli.php
deleted file mode 100644
index 721f547..0000000
--- a/wiki/lib/plugins/cli.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-
-/**
- * Base class for CLI plugins
- *
- * Provides DokuWiki plugin functionality on top of phpcli
- */
-abstract class DokuWiki_CLI_Plugin extends \splitbrain\phpcli\CLI implements DokuWiki_PluginInterface {
-    use DokuWiki_PluginTrait;
-
-}
diff --git a/wiki/lib/plugins/config/admin.php b/wiki/lib/plugins/config/admin.php
deleted file mode 100644
index 76ecae2..0000000
--- a/wiki/lib/plugins/config/admin.php
+++ /dev/null
@@ -1,404 +0,0 @@
-<?php
-/**
- * Configuration Manager admin plugin
- *
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * @author     Christopher Smith <chris@jalakai.co.uk>
- * @author     Ben Coburn <btcoburn@silicodon.net>
- */
-// must be run within Dokuwiki
-if(!defined('DOKU_INC')) die();
-
-define('CM_KEYMARKER','____');            // used for settings with multiple dimensions of array indices
-
-define('PLUGIN_SELF',dirname(__FILE__).'/');
-define('PLUGIN_METADATA',PLUGIN_SELF.'settings/config.metadata.php');
-if(!defined('DOKU_PLUGIN_IMAGES')) define('DOKU_PLUGIN_IMAGES',DOKU_BASE.'lib/plugins/config/images/');
-
-require_once(PLUGIN_SELF.'settings/config.class.php');  // main configuration class and generic settings classes
-require_once(PLUGIN_SELF.'settings/extra.class.php');   // settings classes specific to these settings
-
-/**
- * All DokuWiki plugins to extend the admin function
- * need to inherit from this class
- */
-class admin_plugin_config extends DokuWiki_Admin_Plugin {
-
-    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
-     */
-    public function getMenuSort() { return 100; }
-
-    /**
-     * handle user request
-     */
-    public function handle() {
-        global $ID, $INPUT;
-
-        if(!$this->_restore_session() || $INPUT->int('save') != 1 || !checkSecurityToken()) {
-            $this->_close_session();
-            return;
-        }
-
-        if(is_null($this->_config)) {
-            $this->_config = new configuration($this->_file);
-        }
-
-        // don't go any further if the configuration is locked
-        if($this->_config->locked) {
-            $this->_close_session();
-            return;
-        }
-
-        $this->_input = $INPUT->arr('config');
-
-        foreach ($this->_config->setting as $key => $value){
-            $input = isset($this->_input[$key]) ? $this->_input[$key] : null;
-            if ($this->_config->setting[$key]->update($input)) {
-                $this->_changed = true;
-            }
-            if ($this->_config->setting[$key]->error()) $this->_error = true;
-        }
-
-        if ($this->_changed  && !$this->_error) {
-            $this->_config->save_settings($this->getPluginName());
-
-            // save state & force a page reload to get the new settings to take effect
-            $_SESSION['PLUGIN_CONFIG'] = array('state' => 'updated', 'time' => time());
-            $this->_close_session();
-            send_redirect(wl($ID,array('do'=>'admin','page'=>'config'),true,'&'));
-            exit();
-        } elseif(!$this->_error) {
-            $this->_config->touch_settings(); // just touch to refresh cache
-        }
-
-        $this->_close_session();
-    }
-
-    /**
-     * output appropriate html
-     */
-    public function html() {
-        $allow_debug = $GLOBALS['conf']['allowdebug']; // avoid global $conf; here.
-        global $lang;
-        global $ID;
-
-        if (is_null($this->_config)) { $this->_config = new configuration($this->_file); }
-        $this->setupLocale(true);
-
-        print $this->locale_xhtml('intro');
-
-        ptln('<div id="config__manager">');
-
-        if ($this->_config->locked)
-            ptln('<div class="info">'.$this->getLang('locked').'</div>');
-        elseif ($this->_error)
-            ptln('<div class="error">'.$this->getLang('error').'</div>');
-        elseif ($this->_changed)
-            ptln('<div class="success">'.$this->getLang('updated').'</div>');
-
-        // POST to script() instead of wl($ID) so config manager still works if
-        // rewrite config is broken. Add $ID as hidden field to remember
-        // current ID in most cases.
-        ptln('<form action="'.script().'" method="post">');
-        ptln('<div class="no"><input type="hidden" name="id" value="'.$ID.'" /></div>');
-        formSecurityToken();
-        $this->_print_h1('dokuwiki_settings', $this->getLang('_header_dokuwiki'));
-
-        /** @var setting[] $undefined_settings */
-        $undefined_settings = array();
-        $in_fieldset = false;
-        $first_plugin_fieldset = true;
-        $first_template_fieldset = true;
-        foreach($this->_config->setting as $setting) {
-            if (is_a($setting, 'setting_hidden')) {
-                // skip hidden (and undefined) settings
-                if ($allow_debug && is_a($setting, 'setting_undefined')) {
-                    $undefined_settings[] = $setting;
-                } else {
-                    continue;
-                }
-            } else if (is_a($setting, 'setting_fieldset')) {
-                // config setting group
-                if ($in_fieldset) {
-                    ptln('  </table>');
-                    ptln('  </div>');
-                    ptln('  </fieldset>');
-                } else {
-                    $in_fieldset = true;
-                }
-                if ($first_plugin_fieldset && substr($setting->_key, 0, 10)=='plugin'.CM_KEYMARKER) {
-                    $this->_print_h1('plugin_settings', $this->getLang('_header_plugin'));
-                    $first_plugin_fieldset = false;
-                } else if ($first_template_fieldset && substr($setting->_key, 0, 7)=='tpl'.CM_KEYMARKER) {
-                    $this->_print_h1('template_settings', $this->getLang('_header_template'));
-                    $first_template_fieldset = false;
-                }
-                ptln('  <fieldset id="'.$setting->_key.'">');
-                ptln('  <legend>'.$setting->prompt($this).'</legend>');
-                ptln('  <div class="table">');
-                ptln('  <table class="inline">');
-            } else {
-                // config settings
-                list($label,$input) = $setting->html($this, $this->_error);
-
-                $class = $setting->is_default() ? ' class="default"' : ($setting->is_protected() ? ' class="protected"' : '');
-                $error = $setting->error() ? ' class="value error"' : ' class="value"';
-                $icon = $setting->caution() ? '<img src="'.DOKU_PLUGIN_IMAGES.$setting->caution().'.png" alt="'.$setting->caution().'" title="'.$this->getLang($setting->caution()).'" />' : '';
-
-                ptln('    <tr'.$class.'>');
-                ptln('      <td class="label">');
-                ptln('        <span class="outkey">'.$setting->_out_key(true, true).'</span>');
-                ptln('        '.$icon.$label);
-                ptln('      </td>');
-                ptln('      <td'.$error.'>'.$input.'</td>');
-                ptln('    </tr>');
-            }
-        }
-
-        ptln('  </table>');
-        ptln('  </div>');
-        if ($in_fieldset) {
-            ptln('  </fieldset>');
-        }
-
-        // show undefined settings list
-        if ($allow_debug && !empty($undefined_settings)) {
-            /**
-             * Callback for sorting settings
-             *
-             * @param setting $a
-             * @param setting $b
-             * @return int if $a is lower/equal/higher than $b
-             */
-            function _setting_natural_comparison($a, $b) {
-                return strnatcmp($a->_key, $b->_key);
-            }
-
-            usort($undefined_settings, '_setting_natural_comparison');
-            $this->_print_h1('undefined_settings', $this->getLang('_header_undefined'));
-            ptln('<fieldset>');
-            ptln('<div class="table">');
-            ptln('<table class="inline">');
-            $undefined_setting_match = array();
-            foreach($undefined_settings as $setting) {
-                if (preg_match('/^(?:plugin|tpl)'.CM_KEYMARKER.'.*?'.CM_KEYMARKER.'(.*)$/', $setting->_key, $undefined_setting_match)) {
-                    $undefined_setting_key = $undefined_setting_match[1];
-                } else {
-                    $undefined_setting_key = $setting->_key;
-                }
-                ptln('  <tr>');
-                ptln('    <td class="label"><span title="$meta[\''.$undefined_setting_key.'\']">$'.$this->_config->_name.'[\''.$setting->_out_key().'\']</span></td>');
-                ptln('    <td>'.$this->getLang('_msg_'.get_class($setting)).'</td>');
-                ptln('  </tr>');
-            }
-            ptln('</table>');
-            ptln('</div>');
-            ptln('</fieldset>');
-        }
-
-        // finish up form
-        ptln('<p>');
-        ptln('  <input type="hidden" name="do"     value="admin" />');
-        ptln('  <input type="hidden" name="page"   value="config" />');
-
-        if (!$this->_config->locked) {
-            ptln('  <input type="hidden" name="save"   value="1" />');
-            ptln('  <button type="submit" name="submit" accesskey="s">'.$lang['btn_save'].'</button>');
-            ptln('  <button type="reset">'.$lang['btn_reset'].'</button>');
-        }
-
-        ptln('</p>');
-
-        ptln('</form>');
-        ptln('</div>');
-    }
-
-    /**
-     * @return boolean   true - proceed with handle, false - don't proceed
-     */
-    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
-        if (!headers_sent()) {
-            session_start();
-            $this->_session_started = true;
-        }
-
-        if (!isset($_SESSION['PLUGIN_CONFIG'])) return true;
-
-        $session = $_SESSION['PLUGIN_CONFIG'];
-        unset($_SESSION['PLUGIN_CONFIG']);
-
-        // still valid?
-        if (time() - $session['time'] > 120) return true;
-
-        switch ($session['state']) {
-            case 'updated' :
-                $this->_changed = true;
-                return false;
-        }
-
-        return true;
-    }
-
-    protected function _close_session() {
-      if ($this->_session_started) session_write_close();
-    }
-
-    /**
-     * @param bool $prompts
-     */
-    public function setupLocale($prompts=false) {
-
-        parent::setupLocale();
-        if (!$prompts || $this->_localised_prompts) return;
-
-        $this->_setup_localised_plugin_prompts();
-        $this->_localised_prompts = true;
-
-    }
-
-    /**
-     * @return bool
-     */
-    protected function _setup_localised_plugin_prompts() {
-        global $conf;
-
-        $langfile   = '/lang/'.$conf['lang'].'/settings.php';
-        $enlangfile = '/lang/en/settings.php';
-
-        if ($dh = opendir(DOKU_PLUGIN)) {
-            while (false !== ($plugin = readdir($dh))) {
-                if ($plugin == '.' || $plugin == '..' || $plugin == 'tmp' || $plugin == 'config') continue;
-                if (is_file(DOKU_PLUGIN.$plugin)) continue;
-
-                if (file_exists(DOKU_PLUGIN.$plugin.$enlangfile)){
-                    $lang = array();
-                    @include(DOKU_PLUGIN.$plugin.$enlangfile);
-                    if ($conf['lang'] != 'en') @include(DOKU_PLUGIN.$plugin.$langfile);
-                    foreach ($lang as $key => $value){
-                        $this->lang['plugin'.CM_KEYMARKER.$plugin.CM_KEYMARKER.$key] = $value;
-                    }
-                }
-
-                // fill in the plugin name if missing (should exist for plugins with settings)
-                if (!isset($this->lang['plugin'.CM_KEYMARKER.$plugin.CM_KEYMARKER.'plugin_settings_name'])) {
-                    $this->lang['plugin'.CM_KEYMARKER.$plugin.CM_KEYMARKER.'plugin_settings_name'] =
-                      ucwords(str_replace('_', ' ', $plugin));
-                }
-            }
-            closedir($dh);
-      }
-
-        // the same for the active template
-        $tpl = $conf['template'];
-
-        if (file_exists(tpl_incdir().$enlangfile)){
-            $lang = array();
-            @include(tpl_incdir().$enlangfile);
-            if ($conf['lang'] != 'en') @include(tpl_incdir().$langfile);
-            foreach ($lang as $key => $value){
-                $this->lang['tpl'.CM_KEYMARKER.$tpl.CM_KEYMARKER.$key] = $value;
-            }
-        }
-
-        // fill in the template name if missing (should exist for templates with settings)
-        if (!isset($this->lang['tpl'.CM_KEYMARKER.$tpl.CM_KEYMARKER.'template_settings_name'])) {
-            $this->lang['tpl'.CM_KEYMARKER.$tpl.CM_KEYMARKER.'template_settings_name'] =
-              ucwords(str_replace('_', ' ', $tpl));
-        }
-
-        return true;
-    }
-
-    /**
-     * Generates a two-level table of contents for the config plugin.
-     *
-     * @author Ben Coburn <btcoburn@silicodon.net>
-     *
-     * @return array
-     */
-    public function getTOC() {
-        if (is_null($this->_config)) { $this->_config = new configuration($this->_file); }
-        $this->setupLocale(true);
-
-        $allow_debug = $GLOBALS['conf']['allowdebug']; // avoid global $conf; here.
-
-        // gather toc data
-        $has_undefined = false;
-        $toc = array('conf'=>array(), 'plugin'=>array(), 'template'=>null);
-        foreach($this->_config->setting as $setting) {
-            if (is_a($setting, 'setting_fieldset')) {
-                if (substr($setting->_key, 0, 10)=='plugin'.CM_KEYMARKER) {
-                    $toc['plugin'][] = $setting;
-                } else if (substr($setting->_key, 0, 7)=='tpl'.CM_KEYMARKER) {
-                    $toc['template'] = $setting;
-                } else {
-                    $toc['conf'][] = $setting;
-                }
-            } else if (!$has_undefined && is_a($setting, 'setting_undefined')) {
-                $has_undefined = true;
-            }
-        }
-
-        // build toc
-        $t = array();
-
-        $check = false;
-        $title = $this->getLang('_configuration_manager');
-        $t[] = html_mktocitem(sectionID($title, $check), $title, 1);
-        $t[] = html_mktocitem('dokuwiki_settings', $this->getLang('_header_dokuwiki'), 1);
-        /** @var setting $setting */
-        foreach($toc['conf'] as $setting) {
-            $name = $setting->prompt($this);
-            $t[] = html_mktocitem($setting->_key, $name, 2);
-        }
-        if (!empty($toc['plugin'])) {
-            $t[] = html_mktocitem('plugin_settings', $this->getLang('_header_plugin'), 1);
-        }
-        foreach($toc['plugin'] as $setting) {
-            $name = $setting->prompt($this);
-            $t[] = html_mktocitem($setting->_key, $name, 2);
-        }
-        if (isset($toc['template'])) {
-            $t[] = html_mktocitem('template_settings', $this->getLang('_header_template'), 1);
-            $setting = $toc['template'];
-            $name = $setting->prompt($this);
-            $t[] = html_mktocitem($setting->_key, $name, 2);
-        }
-        if ($has_undefined && $allow_debug) {
-            $t[] = html_mktocitem('undefined_settings', $this->getLang('_header_undefined'), 1);
-        }
-
-        return $t;
-    }
-
-    /**
-     * @param string $id
-     * @param string $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/wiki/lib/plugins/config/admin.svg b/wiki/lib/plugins/config/admin.svg
deleted file mode 100644
index ced9871..0000000
--- a/wiki/lib/plugins/config/admin.svg
+++ /dev/null
@@ -1 +0,0 @@
-<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/wiki/lib/plugins/config/images/danger.png b/wiki/lib/plugins/config/images/danger.png
deleted file mode 100644
index da06924..0000000
--- a/wiki/lib/plugins/config/images/danger.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/plugins/config/images/security.png b/wiki/lib/plugins/config/images/security.png
deleted file mode 100644
index 3ee8476..0000000
--- a/wiki/lib/plugins/config/images/security.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/plugins/config/images/warning.png b/wiki/lib/plugins/config/images/warning.png
deleted file mode 100644
index c1af79f..0000000
--- a/wiki/lib/plugins/config/images/warning.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/plugins/config/lang/af/lang.php b/wiki/lib/plugins/config/lang/af/lang.php
deleted file mode 100644
index cf71576..0000000
--- a/wiki/lib/plugins/config/lang/af/lang.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-/**
- * Afrikaans language file
- *
- */
-$lang['userewrite']            = 'Gebraik moie URLs';
-$lang['sepchar']               = 'Blydsy naam woord spassie';
-$lang['typography_o_0']        = 'Niks';
-$lang['userewrite_o_0']        = 'niks';
-$lang['userewrite_o_1']        = '.htaccess';
-$lang['deaccent_o_0']          = 'aff';
-$lang['gdlib_o_0']             = 'GD Lib nie beskibaar nie';
-$lang['rss_type_o_rss']        = 'RSS 0.91';
-$lang['rss_type_o_rss1']       = 'RSS 1.0';
-$lang['rss_type_o_rss2']       = 'RSS 2.0';
-$lang['rss_type_o_atom']       = 'Atom 0.3';
-$lang['rss_type_o_atom1']      = 'Atom 1.0';
-$lang['compression_o_0']       = 'niks';
-$lang['compression_o_gz']      = 'gzip';
-$lang['compression_o_bz2']     = 'bz2';
-$lang['xsendfile_o_0']         = 'moet nie gebrake nie';
-$lang['useheading_o_0']        = 'Noit';
-$lang['useheading_o_1']        = 'Altyde';
diff --git a/wiki/lib/plugins/config/lang/ar/intro.txt b/wiki/lib/plugins/config/lang/ar/intro.txt
deleted file mode 100644
index 1590518..0000000
--- a/wiki/lib/plugins/config/lang/ar/intro.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-====== مدير الضبط ======
-
-استخدم هذه Ø§Ù„ØµÙØ­Ø© للتحكم باعدادات دوكو ويكي المثبتة عندك. للمساعدة ÙÙŠ أمر ما أشر إلى [[doku>config]]. لمعلومات اكثر عن هذه Ø§Ù„Ø§Ø¶Ø§ÙØ© انظر [[doku>plugin:config]].
-
-الاعدادات الظاهرة بخلÙية حمراء ÙØ§ØªØ­Ø© اعدادات محمية ولا يمكن تغييرها بهذه Ø§Ù„Ø§Ø¶Ø§ÙØ©. الاعدادات الظاهرة بخلÙية زرقاء هي القيم Ø§Ù„Ø§ÙØªØ±Ø§Ø¶ÙŠØ© والاعدادات الظاهرة بخلÙية بيضاء خصصت لهذا التثبيت محليا. الاعدادات الزرقاء والبيضاء يمكن تغييرها.
-
-تأكد من ضغط زر **SAVE** قبل ترك Ø§Ù„ØµÙØ­Ø© وإلا ستضيع تعديلاتك.
diff --git a/wiki/lib/plugins/config/lang/ar/lang.php b/wiki/lib/plugins/config/lang/ar/lang.php
deleted file mode 100644
index 69e843f..0000000
--- a/wiki/lib/plugins/config/lang/ar/lang.php
+++ /dev/null
@@ -1,192 +0,0 @@
-<?php
-/**
- * Arabic language file
- *
- * @author Yaman Hokan <always.smile.yh@hotmail.com>
- * @author Usama Akkad <uahello@gmail.com>
- * @author uahello@gmail.com
- */
-$lang['menu']                  = 'الإعدادات';
-$lang['error']                 = 'لم تحدث الاعدادات بسبب قيمة غير صالحة، رجاء راجع تغييراتك ثم ارسلها.
-<br />القيم الخاطئة ستظهر محاطة بحدود حمراء.';
-$lang['updated']               = 'Ø±ÙØ¹Øª الاعدادات بنجاح.';
-$lang['nochoice']              = '(لا خيارات اخرى متاحة)';
-$lang['locked']                = 'تعذر تحديث مل٠الاعدادات، إن لم يكن ذلك مقصودا، <br />
-تأكد من صحة اسم و صلاحيات مل٠الاعدادات المحلي.';
-$lang['danger']                = 'خطر: تغيير هذا الخيار قد يؤدي إلى تعذر الوصول للويكي و قائمة الاعدادات.';
-$lang['warning']               = 'تحذير: تغييرهذا الخيار قد يؤدي لسلوك غير متوقع.';
-$lang['security']              = 'تحذير أمني: تغيير هذا الخيار قد يؤدي إلى مخاطرة أمنية.';
-$lang['_configuration_manager'] = 'مدير الاعدادات';
-$lang['_header_dokuwiki']      = 'اعدادات دوكو ويكي';
-$lang['_header_plugin']        = 'اعدادات الملحقات';
-$lang['_header_template']      = 'اعدادات القوالب';
-$lang['_header_undefined']     = 'اعدادات غير محددة';
-$lang['_basic']                = 'اعدادات اساسية';
-$lang['_display']              = 'اعدادات العرض';
-$lang['_authentication']       = 'اعدادات المواثقة';
-$lang['_anti_spam']            = 'اعدادات مضاد Ø§Ù„Ù†ÙØ§ÙŠØ©';
-$lang['_editing']              = 'اعدادات التحرير';
-$lang['_links']                = 'اعدادات الروابط';
-$lang['_media']                = 'اعدادات الوسائط';
-$lang['_notifications']        = 'اعدادات التنبيه';
-$lang['_advanced']             = 'اعدادات متقدمة';
-$lang['_network']              = 'اعدادات الشبكة';
-$lang['_msg_setting_undefined'] = 'لا بيانات إعدادات.';
-$lang['_msg_setting_no_class'] = 'لا صن٠إعدادات.';
-$lang['_msg_setting_no_default'] = 'لا قيمة Ø§ÙØªØ±Ø§Ø¶ÙŠØ©.';
-$lang['title']                 = 'عنوان الويكي';
-$lang['start']                 = 'اسم ØµÙØ­Ø© البداية';
-$lang['lang']                  = 'لغة الواجهة';
-$lang['template']              = 'القالب';
-$lang['tagline']               = 'Tagline (ÙÙŠ حال دعم القالب له)
-';
-$lang['sidebar']               = 'اسم ØµÙØ­Ø© الشريط الجانبي (ÙÙŠ حال دعم القالب له). تركه ÙØ§Ø±ØºØ§ يعطل الشريط الجانبي.';
-$lang['license']               = 'تحت أي رخصة تريد اصدار المحتوى؟';
-$lang['savedir']               = 'دليل Ø­ÙØ¸ البيانات';
-$lang['basedir']               = 'مسار الخادوم (مثال. <code>/dokuwiki/</code>) اترك ÙØ§Ø±ØºØ§ للاكتشا٠التلقائي.';
-$lang['baseurl']               = 'عنوان الخادوم (مثال. <code>http://www.yourserver.com</code>). اترك ÙØ§Ø±ØºØ§ للاكتشا٠التلقائي.';
-$lang['cookiedir']             = 'مسار الكعكات. اترك ÙØ§Ø±ØºØ§ لاستخدام baseurl.';
-$lang['dmode']                 = 'نمط انشاء المجلدات';
-$lang['fmode']                 = 'نمط انشاء Ø§Ù„Ù…Ù„ÙØ§Øª';
-$lang['allowdebug']            = 'مكّن التنقيح <b>عطّلها إن لم تكن بحاجلة لها!</b>';
-$lang['recent']                = 'أحدث التغييرات';
-$lang['recent_days']           = 'مدة إبقاء أحدث التغييرات (ايام)';
-$lang['breadcrumbs']           = 'عدد العناقيد للزيارات';
-$lang['youarehere']            = 'عناقيد هرمية';
-$lang['fullpath']              = 'اظهر المحتوى الكامل Ù„Ù„ØµÙØ­Ø§Øª ÙÙŠ ';
-$lang['typography']            = 'اعمل استبدالات طبوغراÙية';
-$lang['dformat']               = 'تنسيق التاريخ (انظر ÙˆØ¸ÙŠÙØ© PHP,s <a href="http://php.net/strftime">strftime</a>)';
-$lang['signature']             = 'التوقيع';
-$lang['showuseras']            = 'الذي يعرض لاظهار المستخدم الذي قام بآخر تحرير Ù„ØµÙØ­Ø©';
-$lang['toptoclevel']           = 'المستوى الأعلى لمحتويات الجدول';
-$lang['tocminheads']           = 'الحد الأدنى من الترويسات لبناء جدول المحتويات';
-$lang['maxtoclevel']           = 'المستوى الأقصى لمحتويات الجدول';
-$lang['maxseclevel']           = 'المستوى الأقصى لتحرير القسم';
-$lang['camelcase']             = 'استخدم CamelCase للروابط';
-$lang['deaccent']              = 'نظّ٠اسماء Ø§Ù„ØµÙØ­Ø§Øª';
-$lang['useheading']            = 'استخدم اول ترويسة كأسم Ù„Ù„ØµÙØ­Ø©';
-$lang['sneaky_index']          = 'Ø§ÙØªØ±Ø§Ø¶ÙŠØ§ØŒ ستعرض دوكو ويكي كل اسماء النطاقات ÙÙŠ عرض الÙهرس. ØªÙØ¹ÙŠÙ„ هذا الخيار سيخÙÙŠ مالا يملك المستخدم صلاحية قراءته. قد يؤدي هذا إلى Ø§Ø®ÙØ§Ø¡ نطاقات ÙØ±Ø¹ÙŠØ© متاحة. وقد يؤدي لجعل ØµÙØ­Ø© الÙهرس معطلة ÙÙŠ بعض اعدادات ACL.';
-$lang['hidepages']             = 'Ø£Ø®Ù Ø§Ù„ØµÙØ­Ø§Øª المنطبق عليها (تعابير شرطية)';
-$lang['useacl']                = 'استخدم قائمة التحم بالوصول';
-$lang['autopasswd']            = 'ولد كلمات سر تلقائيا';
-$lang['authtype']              = 'آلية المواثقة';
-$lang['passcrypt']             = 'نمط تشÙير كلمة السر';
-$lang['defaultgroup']          = 'المجموعة Ø§Ù„Ø§ÙØªØ±Ø§Ø¶ÙŠØ©';
-$lang['superuser']             = 'مجموعة المستخدم المتÙوق أو مستخدم أو قائمة Ù…ÙØµÙˆÙ„Ø© Ø¨Ø§Ù„ÙØ§ØµÙ„Ø© مستخدم1ØŒ@مجموعة، مستخدم2 صلاحيتهم الوصول الكامل لكل Ø§Ù„ØµÙØ­Ø§Øª Ùˆ الوظائ٠بغض النظر عن اعدادات ACL';
-$lang['manager']               = 'مجموعة المدراء أو مستخدم أو قائمة Ù…ÙØµÙˆÙ„Ø© Ø¨Ø§Ù„ÙØ§ØµÙ„Ø© مستخدم1ØŒ@مجموعة، مستخدم2 صلاحيتهم بعض الوظائ٠الادارية';
-$lang['profileconfirm']        = 'اكد تغيير اللاحة بكلمة المرور';
-$lang['rememberme']            = 'اسمح بكعكات الدخول الدائم (تذكرني)';
-$lang['disableactions']        = 'عطّل اجراءات دوكو ويكي';
-$lang['disableactions_check']  = 'تحقق';
-$lang['disableactions_subscription'] = 'اشترك/الغ الاشتراك';
-$lang['disableactions_wikicode'] = 'اعرض المصدر/صدّر ØµØ±ÙØ§';
-$lang['disableactions_other']  = 'اجراءات أخرى (Ù…ÙØµÙˆÙ„Ø© Ø¨Ø§Ù„ÙØ§ØµÙ„Ø©)';
-$lang['auth_security_timeout'] = 'زمن انتهاء أمان المواثقة (ثوان)';
-$lang['securecookie']          = 'هل ÙŠÙØ±Ø¶ على كعكات Ø§Ù„ØªØµÙØ­ المعدة عبر HTTPS ان ترسل Ùقط عبر HTTPS من قبل Ø§Ù„Ù…ØªØµÙØ­ØŸ عطل هذا إن كان الولوج للويكي مؤمنا Ùقط عبر SSL لكن ØªØµÙØ­ الويكي غير مؤمن.';
-$lang['remote']                = 'مكّن نظام API البعيد. يسمح هذا لبرامج أخرى بالوصول للويكي عبر XML-RPC أو آليات أخرى.';
-$lang['remoteuser']            = 'احصر الوصول البعيد Ù„ API لمستخدمين ومجموعات ÙŠÙØµÙ„ بينها Ø¨Ø§Ù„ÙØ§ØµÙ„Ø© هنا. اترك ÙØ§Ø±ØºØ§ لتمكين الجميع.';
-$lang['usewordblock']          = 'احجز الغثاء بناء على قائمة كلمات';
-$lang['relnofollow']           = 'استخدم rel="nofollow" للروابط الخارجية';
-$lang['indexdelay']            = 'التأخير قبل الÙهرسة (ثوان)';
-$lang['mailguard']             = 'عناوين بريدية مبهمة';
-$lang['iexssprotect']          = 'تحقق Ø§Ù„Ù…Ù„ÙØ§Øª المرÙوعة من احتمال وجود أكواد Ø¬Ø§ÙØ§Ø³ÙƒØ±Ø¨Øª أو HTML ضارة';
-$lang['usedraft']              = 'Ø§Ø­ÙØ¸ المسودة تلقائيا أثناء التحرير';
-$lang['htmlok']                = 'مكّن تضمين HTML';
-$lang['phpok']                 = 'مكّن تضمين PHP';
-$lang['locktime']              = 'الحد الأعظمي لقÙÙ„ المل٠(ثوان)';
-$lang['cachetime']             = 'الحد الأعظم لعمر Ø§Ù„Ù…Ø®ÙØ¨Ø£ (ثوان)';
-$lang['target____wiki']        = 'Ø§Ù„Ù†Ø§ÙØ°Ø© الهد٠للروابط الداخلية';
-$lang['target____interwiki']   = 'Ø§Ù„Ù†Ø§ÙØ°Ø© الهد٠للروابط الممرة interwiki';
-$lang['target____extern']      = 'Ø§Ù„Ù†Ø§ÙØ°Ø© الهد٠للروابط الخارجية';
-$lang['target____media']       = 'Ø§Ù„Ù†Ø§ÙØ°Ø© الهد٠لروابط الوسائط';
-$lang['target____windows']     = 'Ø§Ù„Ù†Ø§ÙØ°Ø© الهد٠لروابط Ø§Ù„Ù†ÙˆØ§ÙØ°';
-$lang['mediarevisions']        = 'ØªÙØ¹ÙŠÙ„ إصدارات الوسائط؟';
-$lang['refcheck']              = 'التحقق من مرجع الوسائط';
-$lang['gdlib']                 = 'اصدار مكتبة GD';
-$lang['im_convert']            = 'المسار إلى اداة تحويل ImageMagick';
-$lang['jpg_quality']           = 'دقة ضغط JPG (0-100)';
-$lang['fetchsize']             = 'الحجم الأعظمي (بايت) ل fetch.php لتنزيله من الخارج';
-$lang['subscribers']           = 'مكن دعم اشتراك Ø§Ù„ØµÙØ­Ø©';
-$lang['subscribe_time']        = 'المهلة بعد ارسال قوائم الاشتراكات والملخصات (ثوان); هذا يجب أن يكون أقل من الوقت المخصص ÙÙŠ أيام أحدث التغييرات.';
-$lang['notify']                = 'ارسل تنبيهات التغيير لهذا البريد';
-$lang['registernotify']        = 'ارسل بيانات عن المستخدمين المسجلين جديدا لهذا البريد';
-$lang['mailfrom']              = 'البريد الالكتروني ليستخدم للرسائل الآلية';
-$lang['mailprefix']            = 'بادئة موضوع البريد لتستخدم مع الرسائل الآلية';
-$lang['sitemap']               = 'ولد خرائط موقع جوجل (أيام)';
-$lang['rss_type']              = 'نوع تلقيمات XML';
-$lang['rss_linkto']            = 'تلقيمات XML توصل إلى';
-$lang['rss_content']           = 'مالذي يعرض ÙÙŠ عناصر تلقيمات XMLØŸ';
-$lang['rss_update']            = 'تحديث تلقيم XML (ثوان)';
-$lang['rss_show_summary']      = 'تلقيم XML يظهر ملخصا ÙÙŠ العنوان';
-$lang['rss_media']             = 'مانوع التغييرات التي ستدرج ÙÙŠ تغذية XMLØŸ';
-$lang['updatecheck']           = 'تحقق من التحديثات و تنبيهات الأمان؟ دوكو ويكي ستحتاج للاتصال ب update.dokuwiki.org لأجل ذلك';
-$lang['userewrite']            = 'استعمل عناوين URLs جميلة';
-$lang['useslash']              = 'استخدم الشرطة ÙƒÙØ§ØµÙ„ النطاق ÙÙŠ العناوين';
-$lang['sepchar']               = 'ÙØ§ØµÙ„ كلمة اسم Ø§Ù„ØµÙØ­Ø©';
-$lang['canonical']             = 'استخدم العناوين الشائعة كاملة';
-$lang['fnencode']              = 'نظام ترميز اسماء Ø§Ù„Ù…Ù„ÙØ§Øª بغير الأسكي.';
-$lang['autoplural']            = 'تحقق من صيغ الجمع ÙÙŠ الروابط';
-$lang['compression']           = 'طريقة الغضط Ù„Ù…Ù„ÙØ§Øª attic';
-$lang['gzip_output']           = 'استخدم ترميز-محتوى gzip ل xhtml';
-$lang['compress']              = 'Ø±ÙØµ مخرجات CSS Ùˆ Ø¬Ø§ÙØ§ سكربت';
-$lang['cssdatauri']            = 'الحجم بالبايتات للصور المذكورة ÙÙŠ CSS التي Ø³ØªÙØ¶Ù…Ù† ÙÙŠ ØµÙØ­Ø©-التنسيق Ù„Ø®ÙØ¶ طلبات HTTP. <code>400</code> إلى <code>600</code> بايت تعد قيمة جيدة. اضبط إلى <code>0</code> لتعطلها.';
-$lang['send404']               = 'ارسل "HTTP 404/Page Not Found" Ù„Ù„ØµÙØ­Ø§Øª غير الموجودة';
-$lang['broken_iua']            = 'هل Ø§Ù„ÙˆØ¸ÙŠÙØ© ignore_user_abort معطلة على جهازك؟ قد يؤدي ذلك لتعطيل Ùهرسة البحث. IIS+PHP/CGI تعر٠بأنها لاتعمل. أنظر <a href="http://bugs.splitbrain.org/?do=details&amp;task_id=852">العلة 852</a> لمزيد من المعلومات.';
-$lang['xsendfile']             = 'استخدم ترويسة X-Sendfile لتمكين خادم الوب من تقديم Ù…Ù„ÙØ§Øª ثابتة؟ يجب أن يكون خادم الوب داعما له.';
-$lang['renderer_xhtml']        = 'المحرك ليستخدم لمخرجات الويكي الأساسية ÙˆÙÙ‚ (xhtml).';
-$lang['renderer__core']        = '%s (نواة دوكو ويكي)';
-$lang['renderer__plugin']      = '%s (ملحق)';
-$lang['proxy____host']         = 'اسم خادوم الوكيل';
-$lang['proxy____port']         = 'Ù…Ù†ÙØ° الوكيل';
-$lang['proxy____user']         = 'اسم مستخدم الوكيل';
-$lang['proxy____pass']         = 'كلمة سر الوكيل';
-$lang['proxy____ssl']          = 'استخدم ssl للاتصال بالوكيل';
-$lang['proxy____except']       = 'تعبير شرطي لمقابلة العناوين التي ستتجاوز البروكسي.';
-$lang['safemodehack']          = 'مكّن hack الوضع الآمن';
-$lang['ftp____host']           = 'خادوم FTP ل hack الوضع الآمن';
-$lang['ftp____port']           = 'Ù…Ù†ÙØ° FTP Ù„ hack الوضع الآمن';
-$lang['ftp____user']           = 'اسم مستخدم FTP ل hack الوضع الآمن';
-$lang['ftp____pass']           = 'كلمة سر FTP ل hack الوضع الآمن';
-$lang['ftp____root']           = 'دليل الجذر ل FTP لأجل hack الوضع الآمن';
-$lang['license_o_']            = 'غير مختار';
-$lang['typography_o_0']        = 'لاشيء';
-$lang['typography_o_1']        = 'استبعاد الاقتباس Ø§Ù„Ù…ÙØ±Ø¯';
-$lang['typography_o_2']        = 'تضمين علامات اقتباس Ù…ÙØ±Ø¯Ø© (قد لا يعمل دائما)';
-$lang['userewrite_o_0']        = 'لاشيء';
-$lang['userewrite_o_1']        = '.htaccess';
-$lang['userewrite_o_2']        = 'دو';
-$lang['deaccent_o_0']          = 'معطل';
-$lang['deaccent_o_1']          = 'أزل اللهجة';
-$lang['deaccent_o_2']          = 'اجعلها لاتينية';
-$lang['gdlib_o_0']             = 'مكتبة GD غير Ù…ØªÙˆÙØ±Ø©';
-$lang['gdlib_o_1']             = 'الاصدار 1.x';
-$lang['gdlib_o_2']             = 'اكتشا٠تلقائي';
-$lang['rss_type_o_rss']        = 'RSS 0.91';
-$lang['rss_type_o_rss1']       = 'RSS 1.0';
-$lang['rss_type_o_rss2']       = 'RSS 2.0';
-$lang['rss_type_o_atom']       = 'أتوم 0.3';
-$lang['rss_type_o_atom1']      = 'أتوم 1.0';
-$lang['rss_content_o_abstract'] = 'خلاصة';
-$lang['rss_content_o_diff']    = 'Ø§Ù„ÙØ±ÙˆÙ‚ الموحدة';
-$lang['rss_content_o_htmldiff'] = 'جدول Ø§Ù„ÙØ±ÙˆÙ‚ بهيئة HTML';
-$lang['rss_content_o_html']    = 'محتوى HTML الكامل Ù„Ù„ØµÙØ­Ø©';
-$lang['rss_linkto_o_diff']     = 'عرض Ø§Ù„Ø§Ø®ØªÙ„Ø§ÙØ§Øª';
-$lang['rss_linkto_o_page']     = 'Ø§Ù„ØµÙØ­Ø© المعدلة';
-$lang['rss_linkto_o_rev']      = 'قائمة بالمراجعات';
-$lang['rss_linkto_o_current']  = 'Ø§Ù„ØµÙØ­Ø© الحالية';
-$lang['compression_o_0']       = 'لا شيء';
-$lang['compression_o_gz']      = 'gzip';
-$lang['compression_o_bz2']     = 'bz2';
-$lang['xsendfile_o_0']         = 'لا تستخدم';
-$lang['xsendfile_o_1']         = 'ترويسة lighttpd مملوكة (قبل الاصدار 1.5)';
-$lang['xsendfile_o_2']         = 'ترويسة X-Sendfile قياسية';
-$lang['xsendfile_o_3']         = 'ترويسة Nginx X-Accel-Redirect مملوكة';
-$lang['showuseras_o_loginname'] = 'اسم الدخول';
-$lang['showuseras_o_username'] = 'اسم المستخدم الكامل';
-$lang['showuseras_o_email']    = 'عنوان بريد المستخدم (مبهم تبعا لاعدادات حارس_البريد)';
-$lang['showuseras_o_email_link'] = 'عنوان بريد المستخدم كـ مالتيو: رابط';
-$lang['useheading_o_0']        = 'أبدا';
-$lang['useheading_o_navigation'] = 'التنقل Ùقط';
-$lang['useheading_o_content']  = 'محتوى الويكي Ùقط';
-$lang['useheading_o_1']        = 'دائما';
-$lang['readdircache']          = 'المدة القصوى لتخزين ';
diff --git a/wiki/lib/plugins/config/lang/bg/intro.txt b/wiki/lib/plugins/config/lang/bg/intro.txt
deleted file mode 100644
index db09e68..0000000
--- a/wiki/lib/plugins/config/lang/bg/intro.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-====== ДиÑпечер на наÑтройките ======
-
-От тук можете да управлÑвате наÑтройките на вашето Dokuwiki. За отделните наÑтройки вижте [[doku>config]]. За повече Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾Ñ‚Ð½Ð¾Ñно тази приÑтавка вижте  [[doku>plugin:config]].
-
-ÐаÑтройките изобразени ÑÑŠÑ Ñветло червен фон Ñа защитени и не могат да бъдат променÑни Ñ Ñ‚Ð°Ð·Ð¸ приÑтавка. ÐаÑтройките показани ÑÑŠÑ Ñин фон Ñа Ñтандартните ÑтойноÑти, а наÑтройките Ñ Ð±Ñл фон Ñа били наÑтроени локално за тази конкретна инÑталациÑ. Можете да променÑте както Ñините, така и белите наÑтройки.
-
-Ðе забравÑйте да натиÑнете бутона **ЗÐПИС** преди да напуÑнете Ñтраницата, в противен Ñлучай промените нÑма да бъдат приложени.
diff --git a/wiki/lib/plugins/config/lang/bg/lang.php b/wiki/lib/plugins/config/lang/bg/lang.php
deleted file mode 100644
index 75508a5..0000000
--- a/wiki/lib/plugins/config/lang/bg/lang.php
+++ /dev/null
@@ -1,195 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author Nikolay Vladimirov <nikolay@vladimiroff.com>
- * @author Viktor Usunov <usun0v@mail.bg>
- * @author Kiril <neohidra@gmail.com>
- */
-$lang['menu']                  = 'ÐаÑтройки';
-$lang['error']                 = 'ОбновÑването на наÑтройките не е възможно, поради невалидна ÑтойноÑÑ‚, молÑ, прегледайте промените Ñи и пробвайте отново.
-                       <br />Ðеверните ÑтойноÑти ще бъдат обградени Ñ Ñ‡ÐµÑ€Ð²ÐµÐ½Ð° рамка.';
-$lang['updated']               = 'ОбновÑването на наÑтройките е уÑпешно.';
-$lang['nochoice']              = '(нÑма друг възможен избор)';
-$lang['locked']                = 'ОбновÑването на файла Ñ Ð½Ð°Ñтройките не е възможно, ако това не е нарочно, проверете,<br />
-                       дали името на Ð»Ð¾ÐºÐ°Ð»Ð½Ð¸Ñ Ñ„Ð°Ð¹Ð» Ñ Ð½Ð°Ñтройки и правата Ñа верни.';
-$lang['danger']                = 'Внимание: промÑна на опциÑта може да направи Wiki-то и менюто за наÑтройване недоÑтъпни.';
-$lang['warning']               = 'Предупреждение: промÑна на опциÑта може предизвика нежелани поÑледици.';
-$lang['security']              = 'Предупреждение: промÑна на опциÑта може да предÑтавлÑва риÑк за ÑигурноÑтта.';
-$lang['_configuration_manager'] = 'ДиÑпечер на наÑтройките';
-$lang['_header_dokuwiki']      = 'ÐаÑтройки на DokuWiki';
-$lang['_header_plugin']        = 'ÐаÑтройки на приÑтавки';
-$lang['_header_template']      = 'ÐаÑтройки на шаблона';
-$lang['_header_undefined']     = 'Ðеопределени наÑтройки';
-$lang['_basic']                = 'ОÑновни наÑтройки';
-$lang['_display']              = 'ÐаÑтройки за изобразÑване';
-$lang['_authentication']       = 'ÐаÑтройки за удоÑтоверÑване';
-$lang['_anti_spam']            = 'ÐаÑтройки за борба ÑÑŠÑ SPAM-ма';
-$lang['_editing']              = 'ÐаÑтройки за редактиране';
-$lang['_links']                = 'ÐаÑтройки на препратките';
-$lang['_media']                = 'ÐаÑтройки на медиÑта';
-$lang['_notifications']        = 'ÐаÑтройки за извеÑÑ‚Ñване';
-$lang['_syndication']          = 'ÐаÑтройки на RSS емиÑиите';
-$lang['_advanced']             = 'Допълнителни наÑтройки';
-$lang['_network']              = 'Мрежови наÑтройки';
-$lang['_msg_setting_undefined'] = 'ÐÑма метаданни за наÑтройките.';
-$lang['_msg_setting_no_class'] = 'ÐÑма ÐºÐ»Ð°Ñ Ð½Ð°Ñтройки.';
-$lang['_msg_setting_no_default'] = 'ÐÑма Ñтандартна ÑтойноÑÑ‚.';
-$lang['title']                 = 'Заглавие за Wiki-то, тоеÑÑ‚ името';
-$lang['start']                 = 'Име на началната Ñтраница';
-$lang['lang']                  = 'Език на интерфейÑа';
-$lang['template']              = 'Шаблон (Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»Ñ Ð²Ð¸Ð´Ð° на Ñтраниците)';
-$lang['tagline']               = 'Подзаглавие - изобразÑва Ñе под името на Wiki-то (ако Ñе поддържа от шаблона)';
-$lang['sidebar']               = 'Име на Ñтраницата за Ñтраничната лента (ако Ñе поддържа от шаблона). ОÑтавите ли полето празно лентата ще бъде изключена';
-$lang['license']               = 'Под какъв лиценз да бъде публикувано Ñъдържанието?';
-$lang['savedir']               = 'Ð”Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð·Ð° запиÑване на данните';
-$lang['basedir']               = 'Главна Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ (напр. <code>/dokuwiki/</code>). ОÑтавете празно, за да бъде заÑечена автоматично.';
-$lang['baseurl']               = 'URL Ð°Ð´Ñ€ÐµÑ (напр. <code>http://www.yourserver.com</code>). ОÑтавете празно, за да бъде заÑечен автоматично.';
-$lang['cookiedir']             = 'Път за биÑквитките. ОÑтавите ли полето празно ще Ñе ползва Ð³Ð¾Ñ€Ð½Ð¸Ñ URL адреÑ.';
-$lang['dmode']                 = 'Режим (права) за Ñъздаване на директории';
-$lang['fmode']                 = 'Режим (права) за Ñъздаване на файлове';
-$lang['allowdebug']            = 'Включване на режи debug - <b>изключете, ако не е нужен!</b>';
-$lang['recent']                = 'Скорошни промени - брой елементи на Ñтраница';
-$lang['recent_days']           = 'Колко от Ñкорошните промени да Ñе пазÑÑ‚ (дни)';
-$lang['breadcrumbs']           = 'Брой на Ñледите. За изключване на функциÑта задайте 0.';
-$lang['youarehere']            = 'Йерархични Ñледи (в този Ñлучай можете да изключите горната опциÑ)';
-$lang['fullpath']              = 'Показване на Ð¿ÑŠÐ»Ð½Ð¸Ñ Ð¿ÑŠÑ‚ до Ñтраниците в Ð´Ð¾Ð»Ð½Ð¸Ñ ÐºÐ¾Ð»Ð¾Ð½Ñ‚Ð¸Ñ‚ÑƒÐ».';
-$lang['typography']            = 'ЗамÑна на поÑледователноÑÑ‚ от Ñимволи Ñ Ñ‚Ð¸Ð¿Ð¾Ð³Ñ€Ð°Ñ„Ñки еквивалент';
-$lang['dformat']               = 'Формат на датата (виж. <a href="http://php.net/strftime">strftime</a> функциÑта на PHP)';
-$lang['signature']             = 'ÐŸÐ¾Ð´Ð¿Ð¸Ñ - какво да внаÑÑ Ð±ÑƒÑ‚Ð¾Ð½Ð° "Вмъкване на подпиÑ" от редактора';
-$lang['showuseras']            = 'Какво да Ñе показва за потребителÑ, който поÑледно е променил дадена Ñтраницата';
-$lang['toptoclevel']           = 'Главно ниво (заглавие) за Ñъдържанието';
-$lang['tocminheads']           = 'Минимален брой заглавиÑ, определÑщ дали да бъде Ñъздадено Ñъдържание';
-$lang['maxtoclevel']           = 'МакÑимален брой нива (заглавиÑ) за включване в Ñъдържанието';
-$lang['maxseclevel']           = 'МакÑимален брой нива предоÑтавÑни за ÑамоÑтоÑтелно редактиране';
-$lang['camelcase']             = 'Ползване на CamelCase за линкове';
-$lang['deaccent']              = 'ПочиÑтване имената на Ñтраниците (на файловете)';
-$lang['useheading']            = 'Ползване на първото заглавие за име на Ñтраница';
-$lang['sneaky_index']          = 'Стандартно DokuWiki ще показва вÑички именни проÑтранÑтва в индекÑа. ОпциÑта Ñкрива тези, за които потребителÑÑ‚ нÑма права за четене. Това може да доведе и до Ñкриване на иначе доÑтъпни подименни проÑтранÑтва. С определени наÑтройки на ÑпиÑъците за контрол на доÑтъпа (ACL) може да направи индекÑа неизползваем. ';
-$lang['hidepages']             = 'Скриване на Ñтраниците Ñъвпадащи Ñ Ñ‚Ð¾Ð·Ð¸ регулÑрен израз(regular expressions)';
-$lang['useacl']                = 'Ползване на ÑпиÑъци за доÑтъп';
-$lang['autopasswd']            = 'Ðвтоматично генериране на пароли, на нови потребители и пращане по пощата';
-$lang['authtype']              = 'Метод за удоÑтоверÑване';
-$lang['passcrypt']             = 'Метод за криптиране на паролите';
-$lang['defaultgroup']          = 'Стандартна група';
-$lang['superuser']             = 'Супер потребител -  група, потребител или ÑпиÑък ÑÑŠÑ ÑтойноÑти разделени чрез Ð·Ð°Ð¿ÐµÑ‚Ð°Ñ (user1,@group1,user2) Ñ Ð¿ÑŠÐ»ÐµÐ½ доÑтъп до вÑички Ñтраници и функции без значение от наÑтройките на ÑпиÑъците за доÑтъп (ACL)';
-$lang['manager']               = 'Управител - група, потребител или ÑпиÑък ÑÑŠÑ ÑтойноÑти разделени чрез Ð·Ð°Ð¿ÐµÑ‚Ð°Ñ (user1,@group1,user2) Ñ Ð´Ð¾Ñтъп до определени управленÑки функции ';
-$lang['profileconfirm']        = 'Потвърждаване на промени в профила Ñ Ð¿Ð°Ñ€Ð¾Ð»Ð°';
-$lang['rememberme']            = 'Ползване на поÑтоÑнни биÑквитки за впиÑване (за функциÑта "Запомни ме")';
-$lang['disableactions']        = 'Изключване функции на DokuWiki';
-$lang['disableactions_check']  = 'Проверка';
-$lang['disableactions_subscription'] = 'Ðбониране/ОтпиÑване';
-$lang['disableactions_wikicode'] = 'Преглед на кода/ЕкÑпортиране на оригинална верÑиÑ';
-$lang['disableactions_other']  = 'Други дейÑÑ‚Ð²Ð¸Ñ (разделени ÑÑŠÑ Ð·Ð°Ð¿ÐµÑ‚Ð°Ñ)';
-$lang['auth_security_timeout'] = 'Ðвтоматично проверÑване на удоÑтоверÑването вÑеки (Ñек)';
-$lang['securecookie']          = 'Да Ñе изпращат ли биÑквитките зададени чрез HTTPS, Ñамо чрез HTTPS от браузъра? Изключете опциÑта, когато SSL Ñе ползва Ñамо за впиÑване, а четенето е без SSL.';
-$lang['remote']                = 'Включване на ÑиÑтемата за отдалечен API доÑтъп. Това ще позволи на Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð´Ð° Ñе Ñвързват Ñ DokuWiki чрез XML-RPC или друг механизъм.';
-$lang['remoteuser']            = 'Ограничаване на Ð¾Ñ‚Ð´Ð°Ð»ÐµÑ‡ÐµÐ½Ð¸Ñ API доÑтъп - активиране Ñамо за Ñледните групи и потребители (отделени ÑÑŠÑ Ð·Ð°Ð¿ÐµÑ‚Ð°Ñ). Ðко оÑтавите полето празно вÑеки ще има доÑтъп доÑтъп.';
-$lang['usewordblock']          = 'Блокиране на SPAM въз оÑнова на на ÑпиÑък от думи';
-$lang['relnofollow']           = 'Ползване на rel="nofollow" за външни препратки';
-$lang['indexdelay']            = 'ЗабавÑне преди индекÑиране (Ñек)';
-$lang['mailguard']             = 'ПромÑна на адреÑите на ел. поща (във форма непозволÑваща пращането на SPAM)';
-$lang['iexssprotect']          = 'ПроверÑване на качените файлове за вероÑтен зловреден JavaScript и HTML код';
-$lang['usedraft']              = 'Ðвтоматично запазване на чернова по време на редактиране';
-$lang['htmlok']                = 'Разрешаване вграждането на HTML код';
-$lang['phpok']                 = 'Разрешаване вграждането на PHP код';
-$lang['locktime']              = 'МакÑ. период за ÑъхранÑване на заключените файлове (Ñек)';
-$lang['cachetime']             = 'МакÑ. период за ÑъхранÑване на кеша (Ñек)';
-$lang['target____wiki']        = 'Прозорец за вътрешни препратки';
-$lang['target____interwiki']   = 'Прозорец за препратки към други Wiki Ñайтове';
-$lang['target____extern']      = 'Прозорец за външни препратки';
-$lang['target____media']       = 'Прозорец за медийни препратки';
-$lang['target____windows']     = 'Прозорец за препратки към Windows';
-$lang['mediarevisions']        = 'Да Ñе пазÑÑ‚ ли Ñтари верÑии на качените файлове (Mediarevisions)?';
-$lang['refcheck']              = 'Проверка за препратка към медиÑ, преди да бъде изтрита';
-$lang['gdlib']                 = 'ВерÑÐ¸Ñ Ð½Ð° GD Lib';
-$lang['im_convert']            = 'Път до инÑтрумента за транÑÑ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð½Ð° ImageMagick';
-$lang['jpg_quality']           = 'КачеÑтво на JPG компреÑиÑта (0-100)';
-$lang['fetchsize']             = 'МакÑимален размер (байтове), който fetch.php може да ÑвалÑ';
-$lang['subscribers']           = 'Включване на поддръжката за абониране към Ñтраници';
-$lang['subscribe_time']        = 'Време Ñлед което абонаментните ÑпиÑъци и Ð¾Ð±Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ñе изпращат (Ñек); ТрÑбва да е по-малко от времето определено в recent_days.';
-$lang['notify']                = 'Пращане на ÑÑŠÐ¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð·Ð° промени по Ñтраниците на Ñледната eл. поща';
-$lang['registernotify']        = 'Пращане на Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° нови потребители на Ñледната ел. поща';
-$lang['mailfrom']              = 'Ел. поща, коÑто да Ñе ползва за автоматично изпращане на ел. пиÑма';
-$lang['mailprefix']            = 'ПредÑтавка за темите (поле subject) на автоматично изпращаните ел. пиÑма';
-$lang['htmlmail']              = 'Изпращане на по-добре изглеждащи, но по-големи по-размер HTML ел. пиÑма. Изключете ако желаете пиÑмата да Ñе изпращат като чиÑÑ‚ текÑÑ‚.';
-$lang['sitemap']               = 'Генериране на Google sitemap (дни)';
-$lang['rss_type']              = 'Тип на XML емиÑиÑта';
-$lang['rss_linkto']            = 'XML емиÑиÑта препраща към';
-$lang['rss_content']           = 'Какво да показват елементите на XML емиÑиÑта?';
-$lang['rss_update']            = 'Интервал на актуализиране на XML емиÑиÑта (Ñек)';
-$lang['rss_show_summary']      = 'Показване на обобщение в заглавието на XML емиÑиÑта';
-$lang['rss_media']             = 'Кой тип промени да Ñе включват в XML миÑиÑта?';
-$lang['updatecheck']           = 'ПроверÑване за за нови верÑии и Ð¿Ñ€ÐµÐ´ÑƒÐ¿Ñ€ÐµÐ¶Ð´ÐµÐ½Ð¸Ñ Ð·Ð° ÑигурноÑтта? Ðеобходимо е Dokiwiki да може да Ñе Ñвързва ÑÑŠÑ update.dokuwiki.org за тази функционалноÑÑ‚.';
-$lang['userewrite']            = 'Ползване на nice URL адреÑи';
-$lang['useslash']              = 'Ползване на наклонена черта за разделител на именните проÑтранÑтва в URL';
-$lang['sepchar']               = 'Разделител между думите в имената на Ñтраници';
-$lang['canonical']             = 'Ползване на напълно уеднаквени URL адреÑи (абÑолютни адреÑи - http://server/path)';
-$lang['fnencode']              = 'Метод за кодиране на не-ASCII именуваните файлове.';
-$lang['autoplural']            = 'ПроверÑване за множеÑтвено чиÑло в препратките';
-$lang['compression']           = 'Метод за компреÑÐ¸Ñ Ð½Ð° attic файлове';
-$lang['gzip_output']           = 'Кодиране на Ñъдържанието Ñ gzip за xhtml';
-$lang['compress']              = 'Компактен CSS и javascript изглед';
-$lang['cssdatauri']            = 'МакÑимален размер, в байтове, до който изображениÑта поÑочени в .CSS файл ще бъдат вграждани в Ñтила (stylesheet), за да Ñе намали Ð±Ñ€Ð¾Ñ Ð½Ð° HTTP заÑвките. Техниката не работи за верÑиите на IE преди 8! Препоръчителни ÑтойноÑти: <code>400</code> до <code>600</code> байта. Въведете <code>0</code> за изключване.';
-$lang['send404']               = 'Пращане на "HTTP 404/Page Not Found" за неÑъщеÑтвуващи Ñтраници';
-$lang['broken_iua']            = 'Отметнете, ако ignore_user_abort функциÑта не работи. Може да попречи на търÑенето в Ñтраниците. Знае Ñе, че комбинациÑта IIS+PHP/CGI е лоша. Вижте  <a href="http://bugs.splitbrain.org/?do=details&amp;task_id=852">Грешка 852</a> за повече информациÑ.';
-$lang['xsendfile']             = 'Ползване на Ð¥-Sendfile header, за да може уебÑървъра да дава Ñтатични файлове? ВашиÑÑ‚ уеб Ñървър трÑбва да го поддържа.';
-$lang['renderer_xhtml']        = 'ПредÑтавÑне на оÑновните изходни данни (xhtml) от Wiki-то Ñ';
-$lang['renderer__core']        = '%s (Ñдрото на DokuWiki)';
-$lang['renderer__plugin']      = '%s (приÑтавка)';
-$lang['dnslookups']            = 'DokuWiki ще търÑи имената на хоÑтовете, на отдалечени IP адреÑи, от които потребители редактират Ñтраници. ÐЕ е желателно да ползвате опциÑта ако имате бавен или неработещ DNS Ñървър.';
-$lang['proxy____host']         = 'Име на прокÑи Ñървър';
-$lang['proxy____port']         = 'Порт за прокÑито';
-$lang['proxy____user']         = 'Потребител за прокÑито';
-$lang['proxy____pass']         = 'Парола за прокÑито';
-$lang['proxy____ssl']          = 'Ползване на SSL при Ñвързване Ñ Ð¿Ñ€Ð¾ÐºÑито';
-$lang['proxy____except']       = 'РегулÑрен израз определÑщ за кои URL адреÑи да не Ñе ползва прокÑи Ñървър.';
-$lang['safemodehack']          = 'Ползване на хака safemode';
-$lang['ftp____host']           = 'FTP Ñървър за хака safemode';
-$lang['ftp____port']           = 'FTP порт за хака safemode';
-$lang['ftp____user']           = 'FTP потребител за хака safemode';
-$lang['ftp____pass']           = 'FTP парола за хака safemode';
-$lang['ftp____root']           = 'FTP главна Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð·Ð° хака safemode';
-$lang['license_o_']            = 'Ðищо не е избрано';
-$lang['typography_o_0']        = 'без';
-$lang['typography_o_1']        = 'Ñ Ð¸Ð·ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ðµ на единични кавички';
-$lang['typography_o_2']        = 'включително единични кавички (не винаги работи)';
-$lang['userewrite_o_0']        = 'без';
-$lang['userewrite_o_1']        = 'файлът .htaccess';
-$lang['userewrite_o_2']        = 'вътрешно от DokuWiki ';
-$lang['deaccent_o_0']          = 'изключено';
-$lang['deaccent_o_1']          = 'премахване на акценти';
-$lang['deaccent_o_2']          = 'транÑлитерациÑ';
-$lang['gdlib_o_0']             = 'GD Lib не е доÑтъпна';
-$lang['gdlib_o_1']             = 'ВерÑÐ¸Ñ 1.x';
-$lang['gdlib_o_2']             = 'Ðвтоматично разпознаване';
-$lang['rss_type_o_rss']        = 'RSS верÑÐ¸Ñ 0.91';
-$lang['rss_type_o_rss1']       = 'RSS верÑÐ¸Ñ 1.0';
-$lang['rss_type_o_rss2']       = 'RSS верÑÐ¸Ñ 2.0';
-$lang['rss_type_o_atom']       = 'Atom верÑÐ¸Ñ 0.3';
-$lang['rss_type_o_atom1']      = 'Atom верÑÐ¸Ñ 1.0';
-$lang['rss_content_o_abstract'] = 'Извлечение';
-$lang['rss_content_o_diff']    = 'Обединени разлики';
-$lang['rss_content_o_htmldiff'] = 'Таблица Ñ Ñ€Ð°Ð·Ð»Ð¸ÐºÐ¸Ñ‚Ðµ в HTML формат';
-$lang['rss_content_o_html']    = 'ЦÑлото Ñъдържание на HTML Ñтраницата';
-$lang['rss_linkto_o_diff']     = 'изглед на разликите';
-$lang['rss_linkto_o_page']     = 'променената Ñтраница';
-$lang['rss_linkto_o_rev']      = 'ÑпиÑък на верÑиите';
-$lang['rss_linkto_o_current']  = 'текущата Ñтраница';
-$lang['compression_o_0']       = 'без';
-$lang['compression_o_gz']      = 'gzip';
-$lang['compression_o_bz2']     = 'bz2';
-$lang['xsendfile_o_0']         = 'без';
-$lang['xsendfile_o_1']         = 'Специфичен lighttpd header (преди верÑÐ¸Ñ 1.5)';
-$lang['xsendfile_o_2']         = 'Стандартен X-Sendfile header';
-$lang['xsendfile_o_3']         = 'Специфичен Nginx X-Accel-Redirect header за пренаÑочване';
-$lang['showuseras_o_loginname'] = 'Име за впиÑване';
-$lang['showuseras_o_username'] = 'Пълно потребителÑко име';
-$lang['showuseras_o_email']    = 'Ел, поща (променени Ñпоред наÑтройките на mailguard)';
-$lang['showuseras_o_email_link'] = 'Ел. поща под формата на връзка тип mailto:';
-$lang['useheading_o_0']        = 'Ðикога';
-$lang['useheading_o_navigation'] = 'Само за навигациÑ';
-$lang['useheading_o_content']  = 'Само за Ñъдържанието на Wiki-то';
-$lang['useheading_o_1']        = 'Винаги';
-$lang['readdircache']          = 'МакÑимален период за ÑъхранÑване кеша на readdir (Ñек)';
diff --git a/wiki/lib/plugins/config/lang/ca-valencia/intro.txt b/wiki/lib/plugins/config/lang/ca-valencia/intro.txt
deleted file mode 100644
index 6dd461d..0000000
--- a/wiki/lib/plugins/config/lang/ca-valencia/intro.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-====== Gestor de configuració ======
-
-Controle des d'esta pàgina els ajusts de DokuWiki.
-Per a obtindre ajuda sobre cada ajust vaja a [[doku>config]].
-Per a més informació al voltant d'este plúgin vaja a [[doku>config]].
-
-Els ajusts mostrats en un fondo roig claret estan protegits i no els pot
-modificar en este plúgin. Els ajusts mostrats en un fondo blau tenen els valors predeterminats i els ajusts mostrats en un fondo blanc han segut modificats localment per ad esta instalació. Abdós ajusts, blaus i blancs, es poden modificar.
-
-Recorde pulsar el botó **GUARDAR** ans d'anar-se'n d'esta pàgina o perdrà els canvis que haja fet.
diff --git a/wiki/lib/plugins/config/lang/ca-valencia/lang.php b/wiki/lib/plugins/config/lang/ca-valencia/lang.php
deleted file mode 100644
index db86dc9..0000000
--- a/wiki/lib/plugins/config/lang/ca-valencia/lang.php
+++ /dev/null
@@ -1,177 +0,0 @@
-<?php
-/**
- * valencian language file
- *
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * @author Bernat Arlandis i Mañó <berarma@ya.com>
- * @author Bernat Arlandis <berarma@ya.com>
- * @author Bernat Arlandis <berarma@llenguaitecnologia.com>
- */
-$lang['menu']                  = 'Ajusts de configuració';
-$lang['error']                 = 'Els ajusts no s\'han actualisat per algun valor invàlit, per favor, revise els canvis i torne a guardar.
-<br />Els valors incorrectes es mostraran en una vora roja.';
-$lang['updated']               = 'Els ajusts s\'han actualisat correctament.';
-$lang['nochoice']              = '(no n\'hi ha atres opcions disponibles)';
-$lang['locked']                = 'L\'archiu de configuració no es pot actualisar, si açò no és intencionat,<br /> comprove que els permissos de l\'archiu de configuració local estiguen be.';
-$lang['danger']                = 'Perill: canviant esta opció pot fer inaccessibles el wiki i el menú de configuració.';
-$lang['warning']               = 'Advertència: canviar esta opció pot causar un comportament imprevist.';
-$lang['security']              = 'Advertència de seguritat: canviar esta opció pot presentar un risc de seguritat.';
-$lang['_configuration_manager'] = 'Gestor de configuració';
-$lang['_header_dokuwiki']      = 'Ajusts de DokuWiki';
-$lang['_header_plugin']        = 'Configuració de plúgins';
-$lang['_header_template']      = 'Configuració de plantilles';
-$lang['_header_undefined']     = 'Atres configuracions';
-$lang['_basic']                = 'Ajusts bàsics';
-$lang['_display']              = 'Ajusts de visualisació';
-$lang['_authentication']       = 'Ajusts d\'autenticació';
-$lang['_anti_spam']            = 'Ajusts anti-spam';
-$lang['_editing']              = 'Ajusts d\'edició';
-$lang['_links']                = 'Ajusts de vínculs';
-$lang['_media']                = 'Ajusts de mijos';
-$lang['_advanced']             = 'Ajusts alvançats';
-$lang['_network']              = 'Ajusts de ret';
-$lang['_msg_setting_undefined'] = 'Ajust sense informació.';
-$lang['_msg_setting_no_class'] = 'Ajust sense classe.';
-$lang['_msg_setting_no_default'] = 'Sense valor predeterminat.';
-$lang['fmode']                 = 'Modo de creació d\'archius';
-$lang['dmode']                 = 'Modo de creació de directoris';
-$lang['lang']                  = 'Idioma';
-$lang['basedir']               = 'Directori base';
-$lang['baseurl']               = 'URL base';
-$lang['savedir']               = 'Directori per a guardar senyes';
-$lang['start']                 = 'Nom de la pàgina inicial';
-$lang['title']                 = 'Títul del Wiki';
-$lang['template']              = 'Plantilla';
-$lang['license']               = '¿Baix quina llicència deuen publicar-se els continguts?';
-$lang['fullpath']              = 'Mostrar en el peu el camí complet a les pàgines';
-$lang['recent']                = 'Canvis recents';
-$lang['breadcrumbs']           = 'Llongitut del rastre';
-$lang['youarehere']            = 'Rastre jeràrquic';
-$lang['typography']            = 'Fer substitucions tipogràfiques';
-$lang['htmlok']                = 'Permetre HTML';
-$lang['phpok']                 = 'Permetre PHP';
-$lang['dformat']               = 'Format de data (vore la funció <a href="http://php.net/date">date</a> de PHP)';
-$lang['signature']             = 'Firma';
-$lang['toptoclevel']           = 'Nivell superior de la taula de continguts';
-$lang['tocminheads']           = 'Número mínim de titulars que generen una TDC';
-$lang['maxtoclevel']           = 'Nivell màxim de la taula de continguts';
-$lang['maxseclevel']           = 'Nivell màxim d\'edició de seccions';
-$lang['camelcase']             = 'Utilisar CamelCase per als vínculs';
-$lang['deaccent']              = 'Depurar els noms de pàgines';
-$lang['useheading']            = 'Utilisar el primer titular per al nom de pàgina';
-$lang['refcheck']              = 'Comprovar referències a mijos';
-$lang['allowdebug']            = 'Permetre depurar (<b>¡desactivar quan no es necessite!</b>)';
-$lang['usewordblock']          = 'Bloquejar spam basant-se en una llista de paraules';
-$lang['indexdelay']            = 'Retart abans d\'indexar (seg.)';
-$lang['relnofollow']           = 'Utilisar rel="nofollow" en vínculs externs';
-$lang['mailguard']             = 'Ofuscar les direccions de correu';
-$lang['iexssprotect']          = 'Comprovar que els archius pujats no tinguen possible còdic Javascript o HTML maliciós';
-$lang['showuseras']            = 'Qué mostrar quan aparega l\'últim usuari que ha editat la pàgina';
-$lang['useacl']                = 'Utilisar llistes de control d\'accés';
-$lang['autopasswd']            = 'Generar contrasenyes automàticament';
-$lang['authtype']              = 'Sistema d\'autenticació';
-$lang['passcrypt']             = 'Método de sifrat de la contrasenya';
-$lang['defaultgroup']          = 'Grup predeterminat';
-$lang['superuser']             = 'Super-usuari - grup, usuari o llista separada per comes (usuari1,@grup1,usuari2) en accés total a totes les pàgines i funcions independentment dels ajusts ACL';
-$lang['manager']               = 'Manager - grup, usuari o llista separada per comes (usuari1,@grup1,usuari2) en accés a certes funcions d\'administració';
-$lang['profileconfirm']        = 'Confirmar canvis al perfil en la contrasenya';
-$lang['disableactions']        = 'Desactivar accions de DokuWiki';
-$lang['disableactions_check']  = 'Comprovar';
-$lang['disableactions_subscription'] = 'Subscriure\'s/Desubscriure\'s';
-$lang['disableactions_wikicode'] = 'Vore font/exportar còdic';
-$lang['disableactions_other']  = 'Atres accions (separades per comes)';
-$lang['sneaky_index']          = 'Normalment, DokuWiki mostra tots els espais de noms en la vista d\'índex. Activant esta opció s\'ocultaran aquells per als que l\'usuari no tinga permís de llectura. Açò pot ocultar subespais accessibles i inutilisar l\'índex per a certes configuracions del ACL.';
-$lang['auth_security_timeout'] = 'Temps de seguritat màxim per a l\'autenticació (segons)';
-$lang['securecookie']          = '¿El navegador deuria enviar per HTTPS només les galletes que s\'han generat per HTTPS? Desactive esta opció quan utilise SSL només en la pàgina d\'inici de sessió.';
-$lang['updatecheck']           = '¿Buscar actualisacions i advertències de seguritat? DokuWiki necessita conectar a update.dokuwiki.org per ad açò.';
-$lang['userewrite']            = 'Utilisar URL millorades';
-$lang['useslash']              = 'Utilisar \'/\' per a separar espais de noms en les URL';
-$lang['usedraft']              = 'Guardar automàticament un borrador mentres edite';
-$lang['sepchar']               = 'Separador de paraules en els noms de pàgines';
-$lang['canonical']             = 'Utilisar URL totalment canòniques';
-$lang['autoplural']            = 'Buscar formes en plural en els vínculs';
-$lang['compression']           = 'Método de compressió per als archius de l\'àtic';
-$lang['cachetime']             = 'Edat màxima de la caché (seg.)';
-$lang['locktime']              = 'Edat màxima d\'archius de bloqueig (seg.)';
-$lang['fetchsize']             = 'Tamany màxim (bytes) que fetch.php pot descarregar externament';
-$lang['notify']                = 'Enviar notificacions de canvis ad esta direcció de correu';
-$lang['registernotify']        = 'Enviar informació d\'usuaris recentment registrats ad esta direcció de correu';
-$lang['mailfrom']              = 'Direcció de correu a utilisar per a mensages automàtics';
-$lang['gzip_output']           = 'Utilisar Content-Encoding gzip per a xhtml';
-$lang['gdlib']                 = 'Versió de GD Lib';
-$lang['im_convert']            = 'Ruta a la ferramenta de conversió ImageMagick';
-$lang['jpg_quality']           = 'Calitat de compressió JPG (0-100)';
-$lang['subscribers']           = 'Activar la subscripció a pàgines';
-$lang['compress']              = 'Compactar l\'eixida CSS i Javascript';
-$lang['hidepages']             = 'Amagar les pàgines coincidents (expressions regulars)';
-$lang['send404']               = 'Enviar "HTTP 404/Page Not Found" per a les pàgines que no existixen';
-$lang['sitemap']               = 'Generar sitemap de Google (dies)';
-$lang['broken_iua']            = '¿La funció ignore_user_abort funciona mal en este sistema? Podria ser la causa d\'un índex de busca que no funcione. Es sap que IIS+PHP/CGI té este problema. Veja <a href="http://bugs.splitbrain.org/?do=details&amp;task_id=852">Bug 852</a> per a més informació.';
-$lang['xsendfile']             = '¿Utilisar l\'encapçalat X-Sendfile per a que el servidor web servixca archius estàtics? El servidor web ho ha d\'admetre.';
-$lang['renderer_xhtml']        = 'Visualisador a utilisar per a l\'eixida principal del wiki (xhtml)';
-$lang['renderer__core']        = '%s (dokuwiki core)';
-$lang['renderer__plugin']      = '%s (plúgin)';
-$lang['rememberme']            = 'Permetre recordar permanentment la sessió (recordar-me)';
-$lang['rss_type']              = 'Tipo de canal XML';
-$lang['rss_linkto']            = 'El canal XML vincula a';
-$lang['rss_content']           = '¿Qué mostrar en els ítems del canal XML?';
-$lang['rss_update']            = 'Interval d\'actualisació del canal XML (seg.)';
-$lang['recent_days']           = 'Quànts canvis recents guardar (dies)';
-$lang['rss_show_summary']      = 'Que el canal XML mostre el sumari en el títul';
-$lang['target____wiki']        = 'Finestra destí per a vínculs interns';
-$lang['target____interwiki']   = 'Finestra destí per a vínculs d\'interwiki';
-$lang['target____extern']      = 'Finestra destí per a vínculs externs';
-$lang['target____media']       = 'Finestra destí per a vinculs a mijos';
-$lang['target____windows']     = 'Finestra destí per a vínculs a finestres';
-$lang['proxy____host']         = 'Nom del servidor proxy';
-$lang['proxy____port']         = 'Port del proxy';
-$lang['proxy____user']         = 'Nom d\'usuari del proxy';
-$lang['proxy____pass']         = 'Contrasenya del proxy';
-$lang['proxy____ssl']          = 'Utilisar SSL per a conectar al proxy';
-$lang['safemodehack']          = 'Activar \'hack\' de modo segur';
-$lang['ftp____host']           = 'Servidor FTP per al \'hack\' de modo segur';
-$lang['ftp____port']           = 'Port FTP per al \'hack\' de modo segur';
-$lang['ftp____user']           = 'Nom de l\'usuari per al \'hack\' de modo segur';
-$lang['ftp____pass']           = 'Contrasenya FTP per al \'hack\' de modo segur';
-$lang['ftp____root']           = 'Directori base FTP per al \'hack\' de modo segur';
-$lang['license_o_']            = 'Cap triada';
-$lang['typography_o_0']        = 'cap';
-$lang['typography_o_1']        = 'Excloure cometes simples';
-$lang['typography_o_2']        = 'Incloure cometes simples (podria no funcionar sempre)';
-$lang['userewrite_o_0']        = 'cap';
-$lang['userewrite_o_1']        = '.htaccess';
-$lang['userewrite_o_2']        = 'Interna de DokuWiki';
-$lang['deaccent_o_0']          = 'desactivat';
-$lang['deaccent_o_1']          = 'llevar accents';
-$lang['deaccent_o_2']          = 'romanisar';
-$lang['gdlib_o_0']             = 'GD Lib no està disponible';
-$lang['gdlib_o_1']             = 'Versió 1.x';
-$lang['gdlib_o_2']             = 'Autodetecció';
-$lang['rss_type_o_rss']        = 'RSS 0.91';
-$lang['rss_type_o_rss1']       = 'RSS 1.0';
-$lang['rss_type_o_rss2']       = 'RSS 2.0';
-$lang['rss_type_o_atom']       = 'Atom 0.3';
-$lang['rss_type_o_atom1']      = 'Atom 1.0';
-$lang['rss_content_o_abstract'] = 'Abstracte';
-$lang['rss_content_o_diff']    = 'Unified Diff';
-$lang['rss_content_o_htmldiff'] = 'Taula de diferències en format HTML';
-$lang['rss_content_o_html']    = 'Contingut complet de la pàgina en HTML';
-$lang['rss_linkto_o_diff']     = 'mostrar diferències';
-$lang['rss_linkto_o_page']     = 'la pàgina revisada';
-$lang['rss_linkto_o_rev']      = 'llista de revisions';
-$lang['rss_linkto_o_current']  = 'la pàgina actual';
-$lang['compression_o_0']       = 'cap';
-$lang['compression_o_gz']      = 'gzip';
-$lang['compression_o_bz2']     = 'bz2';
-$lang['xsendfile_o_0']         = 'No utilisar';
-$lang['xsendfile_o_1']         = 'Encapçalat propietari lighttpd (abans de la versió 1.5)';
-$lang['xsendfile_o_2']         = 'Encapçalat Standard X-Sendfile';
-$lang['xsendfile_o_3']         = 'Encapçalat propietari Nginx X-Accel-Redirect';
-$lang['showuseras_o_loginname'] = 'Nom d\'inici de sessió';
-$lang['showuseras_o_username'] = 'Nom complet de l\'usuari';
-$lang['showuseras_o_email']    = 'Direcció de correu de l\'usuari (oculta segons la configuració)';
-$lang['showuseras_o_email_link'] = 'Direcció de correu de l\'usuari com un víncul mailto:';
-$lang['useheading_o_0']        = 'Mai';
-$lang['useheading_o_navigation'] = 'Només navegació';
-$lang['useheading_o_content']  = 'Només contingut del wiki';
-$lang['useheading_o_1']        = 'Sempre';
diff --git a/wiki/lib/plugins/config/lang/ca/intro.txt b/wiki/lib/plugins/config/lang/ca/intro.txt
deleted file mode 100644
index 9ce4e66..0000000
--- a/wiki/lib/plugins/config/lang/ca/intro.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-====== Gestió de la configuració ======
-
-Utilitzeu aquesta pàgina per controlar els paràmetres de la vostra instal·lació de DokuWiki. Ajuda sobre paràmetres individuals en [[doku>config]]. Més detalls sobre aquest connector en [[doku>plugin:config]].
-
-Els paràmetres que es visualitzen sobre fons vermell clar estan protegits i no es poden modificar amb aquest connector. Els paràmetres que es visualitzen sobre fons blau tenen valors per defecte. Els de fons blanc s'han configurat localment per a aquesta instal·lació. Tant els blaus com els blanc es poden modificar.
-
-Recordeu que cal prémer el botó **DESA** abans de sortir d'aquesta pàgina, o si no es perdrien els canvis.
diff --git a/wiki/lib/plugins/config/lang/ca/lang.php b/wiki/lib/plugins/config/lang/ca/lang.php
deleted file mode 100644
index 7ef19e7..0000000
--- a/wiki/lib/plugins/config/lang/ca/lang.php
+++ /dev/null
@@ -1,188 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Carles Bellver <carles.bellver@gmail.com>
- * @author carles.bellver@gmail.com
- * @author carles.bellver@cent.uji.es
- * @author Carles Bellver <carles.bellver@cent.uji.es>
- * @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.';
-$lang['updated']               = 'Els paràmetres s\'han actualitzat amb èxit.';
-$lang['nochoice']              = '(no hi altres opcions disponibles)';
-$lang['locked']                = 'El fitxer de paràmetres no es pot actualitzar. Si això és involuntari, <br />
-assegureu-vos que el nom i els permisos del fitxer local de paràmetres són correctes.';
-$lang['danger']                = 'Alerta: si canvieu aquesta opció podeu fer que el wiki i el menú de configuració no siguin accessibles.';
-$lang['warning']               = 'Avís: modificar aquesta opció pot provocar un comportament no desitjat.';
-$lang['security']              = 'Avís de seguretat: modificar aquesta opció pot implicar un risc de seguretat.';
-$lang['_configuration_manager'] = 'Gestió de la configuració';
-$lang['_header_dokuwiki']      = 'Paràmetres de DokuWiki';
-$lang['_header_plugin']        = 'Paràmetres de connectors';
-$lang['_header_template']      = 'Paràmetres de plantilles';
-$lang['_header_undefined']     = 'Paràmetres no definits';
-$lang['_basic']                = 'Paràmetres bàsics';
-$lang['_display']              = 'Paràmetres de visualització';
-$lang['_authentication']       = 'Paràmetres d\'autenticació';
-$lang['_anti_spam']            = 'Paràmetres anti-brossa';
-$lang['_editing']              = 'Paràmetres d\'edició';
-$lang['_links']                = 'Paràmetres d\'enllaços';
-$lang['_media']                = 'Paràmetres de mitjans';
-$lang['_notifications']        = 'Paràmetres de notificació';
-$lang['_syndication']          = 'Paràmetres de sindicació';
-$lang['_advanced']             = 'Paràmetres avançats';
-$lang['_network']              = 'Paràmetres de xarxa';
-$lang['_msg_setting_undefined'] = 'Falten metadades de paràmetre.';
-$lang['_msg_setting_no_class'] = 'Falta classe de paràmetre.';
-$lang['_msg_setting_no_default'] = 'No hi ha valor per defecte.';
-$lang['title']                 = 'Títol del wiki';
-$lang['start']                 = 'Nom de la pàgina d\'inici';
-$lang['lang']                  = 'Idioma';
-$lang['template']              = 'Plantilla';
-$lang['tagline']               = 'Lema (si la plantilla ho suporta)';
-$lang['sidebar']               = 'Nom de la barra lateral (si la plantilla ho suporta). Si ho deixeu buit, la barra lateral es deshabilitarà.';
-$lang['license']               = 'Amb quina llicència voleu publicar el contingut?';
-$lang['savedir']               = 'Directori per desar les dades';
-$lang['basedir']               = 'Directori base';
-$lang['baseurl']               = 'URL base';
-$lang['cookiedir']             = 'Adreça per a les galetes. Si ho deixeu en blanc, es farà servir la URL base.';
-$lang['dmode']                 = 'Mode de creació de directoris';
-$lang['fmode']                 = 'Mode de creació de fitxers';
-$lang['allowdebug']            = 'Permet depuració <strong>inhabiliteu si no és necessari</strong>';
-$lang['recent']                = 'Canvis recents';
-$lang['recent_days']           = 'Quantitat de canvis recents que es mantenen (dies)';
-$lang['breadcrumbs']           = 'Nombre d\'engrunes';
-$lang['youarehere']            = 'Camí d\'engrunes jeràrquic';
-$lang['fullpath']              = 'Mostra el camí complet de les pàgines al peu';
-$lang['typography']            = 'Substitucions tipogràfiques';
-$lang['dformat']               = 'Format de data (vg. la funció PHP <a href="http://php.net/strftime">strftime</a>)';
-$lang['signature']             = 'Signatura';
-$lang['showuseras']            = 'Què cal visualitzar quan es mostra el darrer usuari que ha editat la pàgina';
-$lang['toptoclevel']           = 'Nivell superior per a la taula de continguts';
-$lang['tocminheads']           = 'Quantitat mínima d\'encapçalaments que determina si es construeix o no la taula de continguts.';
-$lang['maxtoclevel']           = 'Nivell màxim per a la taula de continguts';
-$lang['maxseclevel']           = 'Nivell màxim d\'edició de seccions';
-$lang['camelcase']             = 'Utilitza CamelCase per als enllaços';
-$lang['deaccent']              = 'Noms de pàgina nets';
-$lang['useheading']            = 'Utilitza el primer encapçalament per als noms de pàgina';
-$lang['sneaky_index']          = 'Per defecte, DokuWiki mostrarà tots els espai en la visualització d\'índex. Si activeu aquest paràmetre, s\'ocultaran aquells espais en els quals l\'usuari no té accés de lectura. Això pot fer que s\'ocultin subespais que sí que són accessibles. En algunes configuracions ACL pot fer que l\'índex resulti inutilitzable.';
-$lang['hidepages']             = 'Oculta pàgines coincidents (expressions regulars)';
-$lang['useacl']                = 'Utilitza llistes de control d\'accés';
-$lang['autopasswd']            = 'Generació automàtica de contrasenyes';
-$lang['authtype']              = 'Rerefons d\'autenticació';
-$lang['passcrypt']             = 'Mètode d\'encriptació de contrasenyes';
-$lang['defaultgroup']          = 'Grup per defecte';
-$lang['superuser']             = 'Superusuari: un grup o usuari amb accés complet a totes les pàgines i funcions independentment dels paràmetres ACL';
-$lang['manager']               = 'Administrador: un grup o usuari amb accés a certes funcions d\'administració';
-$lang['profileconfirm']        = 'Confirma amb contrasenya els canvis en el perfil';
-$lang['rememberme']            = 'Permet galetes de sessió permanents ("recorda\'m")';
-$lang['disableactions']        = 'Inhabilita accions DokuWiki';
-$lang['disableactions_check']  = 'Revisa';
-$lang['disableactions_subscription'] = 'Subscripció/cancel·lació';
-$lang['disableactions_wikicode'] = 'Mostra/exporta font';
-$lang['disableactions_other']  = 'Altres accions (separades per comes)';
-$lang['auth_security_timeout'] = 'Temps d\'espera de seguretat en l\'autenticació (segons)';
-$lang['securecookie']          = 'Les galetes que s\'han creat via HTTPS, només s\'han d\'enviar des del navegador per HTTPS? Inhabiliteu aquesta opció si només l\'inici de sessió del wiki es fa amb SSL i la navegació del wiki es fa sense seguretat.';
-$lang['usewordblock']          = 'Bloca brossa per llista de paraules';
-$lang['relnofollow']           = 'Utilitza rel="nofollow" en enllaços externs';
-$lang['indexdelay']            = 'Retard abans d\'indexar (segons)';
-$lang['mailguard']             = 'Ofusca les adreces de correu';
-$lang['iexssprotect']          = 'Comprova codi HTML o Javascript maligne en els fitxers penjats';
-$lang['usedraft']              = 'Desa automàticament un esborrany mentre s\'edita';
-$lang['htmlok']                = 'Permet HTML incrustat';
-$lang['phpok']                 = 'Permet PHP incrustat';
-$lang['locktime']              = 'Durada màxima dels fitxers de bloqueig (segons)';
-$lang['cachetime']             = 'Durada màxima de la memòria cau (segons)';
-$lang['target____wiki']        = 'Finestra de destinació en enllaços interns';
-$lang['target____interwiki']   = 'Finestra de destinació en enllaços interwiki';
-$lang['target____extern']      = 'Finestra de destinació en enllaços externs';
-$lang['target____media']       = 'Finestra de destinació en enllaços de mitjans';
-$lang['target____windows']     = 'Finestra de destinació en enllaços de Windows';
-$lang['refcheck']              = 'Comprova la referència en els fitxers de mitjans';
-$lang['gdlib']                 = 'Versió GD Lib';
-$lang['im_convert']            = 'Camí de la utilitat convert d\'ImageMagick';
-$lang['jpg_quality']           = 'Qualitat de compressió JPEG (0-100)';
-$lang['fetchsize']             = 'Mida màxima (bytes) que fetch.php pot baixar d\'un lloc extern';
-$lang['subscribers']           = 'Habilita la subscripció a pàgines';
-$lang['notify']                = 'Envia notificacions de canvis a aquesta adreça de correu';
-$lang['registernotify']        = 'Envia informació sobre nous usuaris registrats a aquesta adreça de correu';
-$lang['mailfrom']              = 'Adreça de correu remitent per a missatges automàtics';
-$lang['sitemap']               = 'Genera mapa del lloc en format Google (dies)';
-$lang['rss_type']              = 'Tipus de canal XML';
-$lang['rss_linkto']            = 'Destinació dels enllaços en el canal XML';
-$lang['rss_content']           = 'Què es mostrarà en els elements del canal XML?';
-$lang['rss_update']            = 'Interval d\'actualització del canal XML (segons)';
-$lang['rss_show_summary']      = 'Mostra resum en els títols del canal XML';
-$lang['updatecheck']           = 'Comprova actualitzacions i avisos de seguretat. DokuWiki necessitarà contactar amb update.dokuwiki.org per utilitzar aquesta característica.';
-$lang['userewrite']            = 'Utilitza URL nets';
-$lang['useslash']              = 'Utilitza la barra / com a separador d\'espais en els URL';
-$lang['sepchar']               = 'Separador de paraules en els noms de pàgina';
-$lang['canonical']             = 'Utilitza URL canònics complets';
-$lang['autoplural']            = 'Comprova formes plurals en els enllaços';
-$lang['compression']           = 'Mètode de compressió per als fitxers de les golfes';
-$lang['gzip_output']           = 'Codifica contingut xhtml com a gzip';
-$lang['compress']              = 'Sortida CSS i Javascript compacta';
-$lang['send404']               = 'Envia "HTTP 404/Page Not Found" per a les pàgines inexistents';
-$lang['broken_iua']            = 'No funciona en el vostre sistema la funció ignore_user_abort? Això podria malmetre l\'índex de cerques. Amb IIS+PHP/CGI se sap que no funciona. Vg. <a href="http://bugs.splitbrain.org/?do=details&amp;task_id=852">Bug 852</a> per a més informació.';
-$lang['xsendfile']             = 'Utilitza la capçalera X-Sendfile perquè el servidor web distribueixi fitxers estàtics. No funciona amb tots els servidors web.';
-$lang['renderer_xhtml']        = 'Renderitzador que cal utilitzar per a la sortida principal (xhtml) del wiki';
-$lang['renderer__core']        = '%s (ànima del dokuwiki)';
-$lang['renderer__plugin']      = '%s (connector)';
-$lang['proxy____host']         = 'Nom del servidor intermediari';
-$lang['proxy____port']         = 'Port del servidor intermediari';
-$lang['proxy____user']         = 'Nom d\'usuari del servidor intermediari';
-$lang['proxy____pass']         = 'Contrasenya del servidor intermediari';
-$lang['proxy____ssl']          = 'Utilitza SSL per connectar amb el servidor intermediari';
-$lang['safemodehack']          = 'Utilitza el hack per a safemode';
-$lang['ftp____host']           = 'Servidor FTP per al hack de safemode';
-$lang['ftp____port']           = 'Port FTP per al hack de safemode';
-$lang['ftp____user']           = 'Nom d\'usuari FTP per al hack de safemode';
-$lang['ftp____pass']           = 'Contrasenya FTP per al hack de safemode';
-$lang['ftp____root']           = 'Directori arrel FTP per al hack de safemode';
-$lang['license_o_']            = 'Cap selecció';
-$lang['typography_o_0']        = 'cap';
-$lang['typography_o_1']        = 'només cometes dobles';
-$lang['typography_o_2']        = 'totes les cometes (podria no funcionar sempre)';
-$lang['userewrite_o_0']        = 'cap';
-$lang['userewrite_o_1']        = '.htaccess';
-$lang['userewrite_o_2']        = 'intern del DokuWiki';
-$lang['deaccent_o_0']          = 'desactivat';
-$lang['deaccent_o_1']          = 'treure accents';
-$lang['deaccent_o_2']          = 'romanització';
-$lang['gdlib_o_0']             = 'GD Lib no està disponible';
-$lang['gdlib_o_1']             = 'Versió 1.x';
-$lang['gdlib_o_2']             = 'Detecció automàtica';
-$lang['rss_type_o_rss']        = 'RSS 0.91';
-$lang['rss_type_o_rss1']       = 'RSS 1.0';
-$lang['rss_type_o_rss2']       = 'RSS 2.0';
-$lang['rss_type_o_atom']       = 'Atom 0.3';
-$lang['rss_type_o_atom1']      = 'Atom 1.0';
-$lang['rss_content_o_abstract'] = 'Resum';
-$lang['rss_content_o_diff']    = 'Diff unificat';
-$lang['rss_content_o_htmldiff'] = 'Taula de diferències en format HTML';
-$lang['rss_content_o_html']    = 'Contingut complet de la pàgina en format HTML';
-$lang['rss_linkto_o_diff']     = 'Visualització de diferències';
-$lang['rss_linkto_o_page']     = 'pàgina modificada';
-$lang['rss_linkto_o_rev']      = 'llista de revisions';
-$lang['rss_linkto_o_current']  = 'revisió actual';
-$lang['compression_o_0']       = 'cap';
-$lang['compression_o_gz']      = 'gzip';
-$lang['compression_o_bz2']     = 'bz2';
-$lang['xsendfile_o_0']         = 'no utilitzis';
-$lang['xsendfile_o_1']         = 'Capçalera pròpia de lighttpd (anterior a la versió 1.5)';
-$lang['xsendfile_o_2']         = 'Capçalera X-Sendfile estàndard';
-$lang['xsendfile_o_3']         = 'Capçalera X-Accel-Redirect de propietat de Nginx ';
-$lang['showuseras_o_loginname'] = 'Nom d\'usuari';
-$lang['showuseras_o_username'] = 'Nom complet de l\'usuari';
-$lang['showuseras_o_email']    = 'Adreça de correu electrònic de l\'usuari (ofuscada segons el paràmetre de configuració corresponent)';
-$lang['showuseras_o_email_link'] = 'Adreça de correu electrònic amb enllaç mailto:';
-$lang['useheading_o_0']        = 'Mai';
-$lang['useheading_o_navigation'] = 'Només navegació';
-$lang['useheading_o_content']  = 'Només contingut wiki';
-$lang['useheading_o_1']        = 'Sempre';
diff --git a/wiki/lib/plugins/config/lang/cs/intro.txt b/wiki/lib/plugins/config/lang/cs/intro.txt
deleted file mode 100644
index f98a62a..0000000
--- a/wiki/lib/plugins/config/lang/cs/intro.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-====== Správa nastavení ======
-
-Tuto stránku můžete používat ke správě nastavení vaší instalace DokuWiki. Nápovědu pro konkrétní položky nastavení naleznete na [[doku>config]]. Pro další detaily o tomto pluginu viz [[doku>plugin:config]].
-
-Položky se svÄ›tle Äerveným pozadím jsou chránÄ›né a nelze je upravovat tímto pluginem.  Položky s modrým pozadím jsou výchozí hodnoty a položky s bílým pozadím byly nastaveny lokálnÄ› v této konkrétní instalaci. Modré i bílé položky je možné upravovat.
-
-Než opustíte tuto stránku, nezapomeňte stisknout tlaÄítko **Uložit**, jinak budou zmÄ›ny ztraceny.
diff --git a/wiki/lib/plugins/config/lang/cs/lang.php b/wiki/lib/plugins/config/lang/cs/lang.php
deleted file mode 100644
index 80a9d29..0000000
--- a/wiki/lib/plugins/config/lang/cs/lang.php
+++ /dev/null
@@ -1,226 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Jonáš Dyba <jonas.dyba@gmail.com>
- * @author Bohumir Zamecnik <bohumir@zamecnik.org>
- * @author Zbynek Krivka <zbynek.krivka@seznam.cz>
- * @author tomas <tomas@valenta.cz>
- * @author Marek Sacha <sachamar@fel.cvut.cz>
- * @author Lefty <lefty@multihost.cz>
- * @author Vojta Beran <xmamut@email.cz>
- * @author Jakub A. Těšínský (j@kub.cz)
- * @author mkucera66 <mkucera66@seznam.cz>
- * @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,
-zkontrolujte prosím své úpravy a odešlete je znovu.<br />
-Neplatné hodnoty se zobrazí v Äerveném rámeÄku.';
-$lang['updated']               = 'Nastavení byla úspěšně upravena.';
-$lang['nochoice']              = '(nejsou k dispozici žádné další volby)';
-$lang['locked']                = 'Nelze upravovat soubor s nastavením. Pokud to není záměrné,
-ujistěte se, <br /> že název a přístupová práva souboru s lokálním
-nastavením jsou v pořádku.';
-$lang['danger']                = 'Pozor: ZmÄ›na tohoto nastavení může způsobit nedostupnost wiki a konfiguraÄních menu.';
-$lang['warning']               = 'Varování: Změna nastavení může mít za následek chybné chování.';
-$lang['security']              = 'BezpeÄnostní varování: ZmÄ›na tohoto nastavení může způsobit bezpeÄnostní riziko.';
-$lang['_configuration_manager'] = 'Správa nastavení';
-$lang['_header_dokuwiki']      = 'Nastavení DokuWiki';
-$lang['_header_plugin']        = 'Nastavení pluginů';
-$lang['_header_template']      = 'Nastavení šablon';
-$lang['_header_undefined']     = 'Další nastavení';
-$lang['_basic']                = 'Základní nastavení';
-$lang['_display']              = 'Nastavení zobrazení';
-$lang['_authentication']       = 'Nastavení autentizace';
-$lang['_anti_spam']            = 'Protispamová nastavení';
-$lang['_editing']              = 'Nastavení editace';
-$lang['_links']                = 'Nastavení odkazů';
-$lang['_media']                = 'Nastavení médií';
-$lang['_notifications']        = 'Nastavení upozornění';
-$lang['_syndication']          = 'Nastavení syndikace';
-$lang['_advanced']             = 'PokroÄilá nastavení';
-$lang['_network']              = 'Nastavení sítě';
-$lang['_msg_setting_undefined'] = 'Chybí metadata položky.';
-$lang['_msg_setting_no_class'] = 'Chybí třída položky.';
-$lang['_msg_setting_no_default'] = 'Chybí výchozí hodnota položky.';
-$lang['title']                 = 'Název celé wiki';
-$lang['start']                 = 'Název úvodní stránky';
-$lang['lang']                  = 'Jazyk';
-$lang['template']              = 'Å ablona';
-$lang['tagline']               = 'Slogan (pokud ho šablona podporuje)';
-$lang['sidebar']               = 'Jméno stránky s obsahem postranní lišty (pokud ho šablona podporuje). Prázdné pole postranní lištu deaktivuje.';
-$lang['license']               = 'Pod jakou licencí má být tento obsah publikován?';
-$lang['savedir']               = 'Adresář pro ukládání dat';
-$lang['basedir']               = 'Kořenový adresář (např. <code>/dokuwiki/</code>). Pro autodetekci nechte prázdné.';
-$lang['baseurl']               = 'Kořenové URL (např. <code>http://www.yourserver.com</code>). Pro autodetekci nechte prázdné.';
-$lang['cookiedir']             = 'Cesta pro cookie. Není-li vyplněno, použije se kořenové URL.';
-$lang['dmode']                 = 'Přístupová práva pro vytváření adresářů';
-$lang['fmode']                 = 'Přístupová práva pro vytváření souborů';
-$lang['allowdebug']            = 'Povolit debugování. <b>Vypněte, pokud to nepotřebujete!</b>';
-$lang['recent']                = 'PoÄet položek v nedávných zmÄ›nách';
-$lang['recent_days']           = 'Jak staré nedávné změny zobrazovat (ve dnech)';
-$lang['breadcrumbs']           = 'PoÄet odkazů na navÅ¡tívené stránky';
-$lang['youarehere']            = 'Hierarchická "drobeÄková" navigace';
-$lang['fullpath']              = 'Ukazovat plnou cestu ke stránkám v patiÄce';
-$lang['typography']            = 'Provádět typografické nahrazování';
-$lang['dformat']               = 'Formát data (viz PHP funkci <a href="http://php.net/strftime">strftime</a>)';
-$lang['signature']             = 'Podpis';
-$lang['showuseras']            = 'Co se má přesně zobrazit, když se ukazuje uživatel, který naposledy editoval stránku';
-$lang['toptoclevel']           = 'Nejvyšší úroveň, kterou zaÄít automaticky generovaný obsah';
-$lang['tocminheads']           = 'Nejnižší poÄet hlavních nadpisů, aby se vygeneroval obsah';
-$lang['maxtoclevel']           = 'Maximální poÄet úrovní v automaticky generovaném obsahu';
-$lang['maxseclevel']           = 'Nejnižší úroveň pro editaci i po sekcích';
-$lang['camelcase']             = 'Používat CamelCase v odkazech';
-$lang['deaccent']              = 'Čistit názvy stránek';
-$lang['useheading']            = 'Používat první nadpis jako název stránky';
-$lang['sneaky_index']          = 'Ve výchozím nastavení DokuWiki zobrazuje v indexu všechny
-jmenné prostory. Zapnutím této volby se skryjí ty jmenné prostory,
-k nimž uživatel nemá právo pro Ätení, což může ale způsobit, že
-vnořené jmenné prostory, k nimž právo má, budou přesto skryty.
-To může mít za následek, že index bude při některých
-nastaveních ACL nepoužitelný.';
-$lang['hidepages']             = 'Skrýt stránky odpovídající vzoru (regulární výrazy)';
-$lang['useacl']                = 'Používat přístupová práva (ACL)';
-$lang['autopasswd']            = 'Generovat hesla automaticky';
-$lang['authtype']              = 'Metoda autentizace';
-$lang['passcrypt']             = 'Metoda šifrování hesel';
-$lang['defaultgroup']          = 'Výchozí skupina';
-$lang['superuser']             = 'Superuživatel - skupina nebo uživatel s plnými právy pro přístup ke všem stránkách bez ohledu na nastavení ACL';
-$lang['manager']               = 'Manažer - skupina nebo uživatel s přístupem k některým správcovským funkcím';
-$lang['profileconfirm']        = 'Potvrdit změny v profilu zadáním hesla';
-$lang['rememberme']            = 'Povolit trvaté přihlašovací cookies (zapamatuj si mě)';
-$lang['disableactions']        = 'Vypnout DokuWiki akce';
-$lang['disableactions_check']  = 'Zkontrolovat';
-$lang['disableactions_subscription'] = 'Přihlásit se/Odhlásit se ze seznamu pro odběr změn';
-$lang['disableactions_wikicode'] = 'Prohlížet zdrojové kódy/Export wiki textu';
-$lang['disableactions_profile_delete'] = 'Smazat vlasní úÄet';
-$lang['disableactions_other']  = 'Další akce (oddÄ›lené Äárkou)';
-$lang['disableactions_rss']    = 'XMS syndikace (RSS)';
-$lang['auth_security_timeout'] = 'Časový limit pro autentikaci (v sekundách)';
-$lang['securecookie']          = 'Má prohlížeÄ posílat cookies nastavené pÅ™es HTTPS opÄ›t jen pÅ™es HTTPS? VypnÄ›te tuto volbu, pokud chcete, aby bylo pomocí SSL zabezpeÄeno pouze pÅ™ihlaÅ¡ování do wiki, ale obsah budete prohlížet nezabezpeÄenÄ›.';
-$lang['remote']                = 'Zapne API systému, umožňující jiným aplikacím vzdálený přístup k wiki pomoci XML-RPC nebo jiných mechanizmů.';
-$lang['remoteuser']            = 'Omezit přístup k API na tyto uživatelské skupiny Äi uživatele (seznam oddÄ›lený Äárkami). Prázdné pole povolí přístup vÅ¡em.';
-$lang['usewordblock']          = 'Blokovat spam za použití seznamu známých spamových slov';
-$lang['relnofollow']           = 'Používat rel="nofollow" na externí odkazy';
-$lang['indexdelay']            = 'Časová prodleva před indexací (v sekundách)';
-$lang['mailguard']             = 'Metoda "zamaskování" emailových adres';
-$lang['iexssprotect']          = 'Zkontrolovat nahrané soubory vůÄi možnému Å¡kodlivému JavaScriptu Äi HTML';
-$lang['usedraft']              = 'Během editace ukládat koncept automaticky';
-$lang['htmlok']                = 'Povolit vložené HTML';
-$lang['phpok']                 = 'Povolit vložené PHP';
-$lang['locktime']              = 'Maximální životnost zámkových souborů (v sekundách)';
-$lang['cachetime']             = 'Maximální životnost cache (v sekundách)';
-$lang['target____wiki']        = 'Cílové okno pro interní odkazy';
-$lang['target____interwiki']   = 'Cílové okno pro interwiki odkazy';
-$lang['target____extern']      = 'Cílové okno pro externí odkazy';
-$lang['target____media']       = 'Cílové okno pro odkazy na média';
-$lang['target____windows']     = 'Cílové okno pro odkazy na windows sdílení';
-$lang['mediarevisions']        = 'Aktivovat revize souborů';
-$lang['refcheck']              = 'Kontrolovat odkazy na média (před vymazáním)';
-$lang['gdlib']                 = 'Verze GD knihovny';
-$lang['im_convert']            = 'Cesta k nástroji convert z balíku ImageMagick';
-$lang['jpg_quality']           = 'Kvalita komprese JPEG (0-100)';
-$lang['fetchsize']             = 'Maximální velikost souboru (v bajtech), co ještě fetch.php bude stahovat z externích zdrojů';
-$lang['subscribers']           = 'Možnost přihlásit se k odběru novinek stránky';
-$lang['subscribe_time']        = 'ÄŒasový interval v sekundách, ve kterém jsou posílány zmÄ›ny a souhrny zmÄ›n. Interval by nemÄ›l být kratší než Äas uvedený v recent_days.';
-$lang['notify']                = 'Posílat oznámení o změnách na následující emailovou adresu';
-$lang['registernotify']        = 'Posílat informace o nově registrovaných uživatelích na tuto mailovou adresu';
-$lang['mailfrom']              = 'E-mailová adresa, která se bude používat pro automatické maily';
-$lang['mailprefix']            = 'Předpona předmětu e-mailu, která se bude používat pro automatické maily';
-$lang['htmlmail']              = 'Posílat emaily v HTML (hezÄí ale vÄ›tší). PÅ™i vypnutí budou posílány jen textové emaily.';
-$lang['sitemap']               = 'Generovat Google sitemap (interval ve dnech)';
-$lang['rss_type']              = 'Typ XML kanálu';
-$lang['rss_linkto']            = 'XML kanál odkazuje na';
-$lang['rss_content']           = 'Co zobrazovat v položkách XML kanálu?';
-$lang['rss_update']            = 'Interval aktualizace XML kanálu (v sekundách)';
-$lang['rss_show_summary']      = 'XML kanál ukazuje souhrn v titulku';
-$lang['rss_media']             = 'Jaký typ změn má být uveden v kanálu XML';
-$lang['rss_media_o_pages']     = 'stránky';
-$lang['rss_media_o_media']     = 'média';
-$lang['updatecheck']           = 'Kontrolovat aktualizace a bezpeÄnostní varování? DokuWiki potÅ™ebuje pro tuto funkci přístup k update.dokuwiki.org';
-$lang['userewrite']            = 'Používat "pěkná" URL';
-$lang['useslash']              = 'Používat lomítko jako oddÄ›lovaÄ jmenných prostorů v URL';
-$lang['sepchar']               = 'Znak pro oddělování slov v názvech stránek';
-$lang['canonical']             = 'Používat plně kanonická URL';
-$lang['fnencode']              = 'Metoda pro kódování ne-ASCII názvů souborů';
-$lang['autoplural']            = 'Kontrolovat plurálové tvary v odkazech';
-$lang['compression']           = 'Metoda komprese pro staré verze';
-$lang['gzip_output']           = 'Používat pro xhtml Content-Encoding gzip';
-$lang['compress']              = 'Zahustit CSS a JavaScript výstup';
-$lang['cssdatauri']            = 'Velikost [v bajtech] obrázků odkazovaných v CSS souborech, které budou pro uÅ¡etÅ™ení HTTP požadavku vestavÄ›ny do stylu. DoporuÄená hodnota je mezi <code>400</code> a <code>600</code> bajty. Pro vypnutí nastavte na <code>0</code>.';
-$lang['send404']               = 'Posílat "HTTP 404/Page Not Found" pro neexistují stránky';
-$lang['broken_iua']            = 'Je na vaÅ¡em systému funkce ignore_user_abort porouchaná? To může způsobovat nefunkÄnost vyhledávacího indexu. O kombinaci IIS+PHP/CGI je známo, že nefunguje správnÄ›. Viz <a href="http://bugs.splitbrain.org/?do=details&amp;task_id=852">Bug 852</a> pro více informací.';
-$lang['xsendfile']             = 'Používat X-Sendfile hlavniÄky pro download statických souborů z webserveru? Je vÅ¡ak požadována podpora této funkce na stranÄ› VaÅ¡eho webserveru.';
-$lang['renderer_xhtml']        = 'Vykreslovací jádro pro hlavní (xhtml) výstup wiki';
-$lang['renderer__core']        = '%s (jádro DokuWiki)';
-$lang['renderer__plugin']      = '%s (plugin)';
-$lang['search_fragment_o_starts_with'] = 'zaÄíná s';
-$lang['search_fragment_o_ends_with'] = 'konÄí s';
-$lang['search_fragment_o_contains'] = 'obsahuje';
-$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';
-$lang['proxy____pass']         = 'Proxy heslo';
-$lang['proxy____ssl']          = 'Použít SSL při připojení k proxy';
-$lang['proxy____except']       = 'Regulární výrazy pro URL, pro které bude pÅ™eskoÄena proxy.';
-$lang['safemodehack']          = 'Zapnout safemode hack';
-$lang['ftp____host']           = 'FTP server pro safemode hack';
-$lang['ftp____port']           = 'FTP port pro safemode hack';
-$lang['ftp____user']           = 'FTP uživatelské jméno pro safemode hack';
-$lang['ftp____pass']           = 'FTP heslo pro safemode hack';
-$lang['ftp____root']           = 'FTP kořenový adresář pro safemode hack';
-$lang['license_o_']            = 'Nic nevybráno';
-$lang['typography_o_0']        = 'vypnuto';
-$lang['typography_o_1']        = 'Pouze uvozovky';
-$lang['typography_o_2']        = 'Všechny typy uvozovek a apostrofů (nemusí vždy fungovat)';
-$lang['userewrite_o_0']        = 'vypnuto';
-$lang['userewrite_o_1']        = '.htaccess';
-$lang['userewrite_o_2']        = 'interní metoda DokuWiki';
-$lang['deaccent_o_0']          = 'vypnuto';
-$lang['deaccent_o_1']          = 'odstranit diakritiku';
-$lang['deaccent_o_2']          = 'převést na latinku';
-$lang['gdlib_o_0']             = 'GD knihovna není k dispozici';
-$lang['gdlib_o_1']             = 'Verze 1.x';
-$lang['gdlib_o_2']             = 'Autodetekce';
-$lang['rss_type_o_rss']        = 'RSS 0.91';
-$lang['rss_type_o_rss1']       = 'RSS 1.0';
-$lang['rss_type_o_rss2']       = 'RSS 2.0';
-$lang['rss_type_o_atom']       = 'Atom 0.3';
-$lang['rss_type_o_atom1']      = 'Atom 1.0';
-$lang['rss_content_o_abstract'] = 'Abstraktní';
-$lang['rss_content_o_diff']    = 'Sjednocený Diff';
-$lang['rss_content_o_htmldiff'] = 'diff tabulka v HTML formátu';
-$lang['rss_content_o_html']    = 'Úplný HTML obsah stránky';
-$lang['rss_linkto_o_diff']     = 'přehled změn';
-$lang['rss_linkto_o_page']     = 'stránku samotnou';
-$lang['rss_linkto_o_rev']      = 'seznam revizí';
-$lang['rss_linkto_o_current']  = 'nejnovější revize';
-$lang['compression_o_0']       = 'vypnuto';
-$lang['compression_o_gz']      = 'gzip';
-$lang['compression_o_bz2']     = 'bz2';
-$lang['xsendfile_o_0']         = 'nepoužívat';
-$lang['xsendfile_o_1']         = 'Proprietární hlaviÄka lighttpd (pÅ™ed releasem 1.5)';
-$lang['xsendfile_o_2']         = 'Standardní hlaviÄka X-Sendfile';
-$lang['xsendfile_o_3']         = 'Proprietární hlaviÄka Nginx X-Accel-Redirect';
-$lang['showuseras_o_loginname'] = 'Přihlašovací jméno';
-$lang['showuseras_o_username'] = 'Celé jméno uživatele';
-$lang['showuseras_o_username_link'] = 'Celé uživatelské jméno jako odkaz mezi wiki';
-$lang['showuseras_o_email']    = 'E-mailová adresa uživatele ("zamaskována" aktuálně nastavenou metodou)';
-$lang['showuseras_o_email_link'] = 'E-mailová adresa uživatele jako mailto: odkaz';
-$lang['useheading_o_0']        = 'Nikdy';
-$lang['useheading_o_navigation'] = 'Pouze pro navigaci';
-$lang['useheading_o_content']  = 'Pouze pro wiki obsah';
-$lang['useheading_o_1']        = 'Vždy';
-$lang['readdircache']          = 'Maximální stáří readdir cache (sec)';
diff --git a/wiki/lib/plugins/config/lang/cy/intro.txt b/wiki/lib/plugins/config/lang/cy/intro.txt
deleted file mode 100644
index 02ccec5..0000000
--- a/wiki/lib/plugins/config/lang/cy/intro.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-====== Rheolwr Ffurfwedd ======
-
-Defnyddiwch y dudalen hon i reoli gosodiadau eich arsefydliad DokuWiki.  Am gymorth ar osodiadau unigol ewch i [[doku>config]]. Am wybodaeth bellach ar yr ategyn hwn ewch i [[doku>plugin:config]].
-
-Mae gosodiadau gyda chefndir coch golau wedi\'u hamddiffyn a \'sdim modd eu newid gyda\'r ategyn hwn. Mae gosodiaadau gyda chefndir glas yn dynodi gwerthoedd diofyn ac mae gosodiadau gyda chefndir gwyn wedi\'u gosod yn lleol ar gyfer yr arsefydliad penodol hwn.  Mae modd newid gosodiadau gwyn a glas.
-
-Cofiwch bwyso y botwm **Cadw** cyn gadael y dudalen neu caiff eich newidiadau eu colli.
diff --git a/wiki/lib/plugins/config/lang/cy/lang.php b/wiki/lib/plugins/config/lang/cy/lang.php
deleted file mode 100644
index 4fa8ab8..0000000
--- a/wiki/lib/plugins/config/lang/cy/lang.php
+++ /dev/null
@@ -1,262 +0,0 @@
-<?php
-/**
- * welsh language file
- *
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * @author     Christopher Smith <chris@jalakai.co.uk>
- * @author     Matthias Schulte <dokuwiki@lupo49.de>
- * @author     Alan Davies <ben.brynsadler@gmail.com>
- */
-
-// for admin plugins, the menu prompt to be displayed in the admin menu
-// if set here, the plugin doesn't need to override the getMenuText() method
-$lang['menu']       = 'Gosodiadau Ffurwedd';
-
-$lang['error']      = 'Gosodiadau heb eu diweddaru oherwydd gwerth annilys, gwiriwch eich newidiadau ac ailgyflwyno.
-                       <br />Caiff y gwerth(oedd) anghywir ei/eu dangos gydag ymyl coch.';
-$lang['updated']    = 'Diweddarwyd gosodiadau\'n llwyddiannus.';
-$lang['nochoice']   = '(dim dewisiadau eraill ar gael)';
-$lang['locked']     = '\'Sdim modd diweddaru\'r ffeil osodiadau, os ydy hyn yn anfwriadol, <br />
-                       sicrhewch fod enw\'r ffeil osodiadau a\'r hawliau lleol yn gywir.';
-
-$lang['danger']     = 'Perygl: Gall newid yr opsiwn hwn wneud eich wici a\'r ddewislen ffurfwedd yn anghyraeddadwy.';
-$lang['warning']    = 'Rhybudd: Gall newid yr opsiwn hwn achosi ymddygiad anfwriadol.';
-$lang['security']   = 'Rhybudd Diogelwch: Gall newid yr opsiwn hwn achosi risg diogelwch.';
-
-/* --- Config Setting Headers --- */
-$lang['_configuration_manager'] = 'Rheolwr Ffurfwedd'; //same as heading in intro.txt
-$lang['_header_dokuwiki'] = 'DokuWiki';
-$lang['_header_plugin'] = 'Ategyn';
-$lang['_header_template'] = 'Templed';
-$lang['_header_undefined'] = 'Gosodiadau Amhenodol';
-
-/* --- Config Setting Groups --- */
-$lang['_basic'] = 'Sylfaenol';
-$lang['_display'] = 'Dangos';
-$lang['_authentication'] = 'Dilysiad';
-$lang['_anti_spam'] = 'Gwrth-Sbam';
-$lang['_editing'] = 'Yn Golygu';
-$lang['_links'] = 'Dolenni';
-$lang['_media'] = 'Cyfrwng';
-$lang['_notifications'] = 'Hysbysiad';
-$lang['_syndication']   = 'Syndication (RSS)'; //angen newid
-$lang['_advanced'] = 'Uwch';
-$lang['_network'] = 'Rhwydwaith';
-
-/* --- Undefined Setting Messages --- */
-$lang['_msg_setting_undefined'] = 'Dim gosodiad metadata.';
-$lang['_msg_setting_no_class'] = 'Dim gosodiad dosbarth.';
-$lang['_msg_setting_no_default'] = 'Dim gwerth diofyn.';
-
-/* -------------------- Config Options --------------------------- */
-
-/* Basic Settings */
-$lang['title']       = 'Teitl y wici h.y. enw\'ch wici';
-$lang['start']       = 'Enw\'r dudalen i\'w defnyddio fel man cychwyn ar gyfer pob namespace'; //namespace
-$lang['lang']        = 'Iaith y rhyngwyneb';
-$lang['template']    = 'Templed h.y. dyluniad y wici.';
-$lang['tagline']     = 'Taglinell (os yw\'r templed yn ei gynnal)';
-$lang['sidebar']     = 'Enw tudalen y bar ochr (os yw\'r templed yn ei gynnal), Mae maes gwag yn analluogi\'r bar ochr';
-$lang['license']     = 'O dan ba drwydded dylai\'ch cynnwys gael ei ryddhau?';
-$lang['savedir']     = 'Ffolder ar gyfer cadw data';
-$lang['basedir']     = 'Llwybr y gweinydd (ee. <code>/dokuwiki/</code>). Gadewch yn wag ar gyfer awtoddatgeliad.';
-$lang['baseurl']     = 'URL y gweinydd (ee. <code>http://www.yourserver.com</code>). Gadewch yn wag ar gyfer awtoddatgeliad.';
-$lang['cookiedir']   = 'Llwybr cwcis. Gadewch yn wag i ddefnyddio \'baseurl\'.';
-$lang['dmode']       = 'Modd creu ffolderi';
-$lang['fmode']       = 'Modd creu ffeiliau';
-$lang['allowdebug']  = 'Caniatáu dadfygio. <b>Analluogwch os nac oes angen hwn!</b>';
-
-/* Display Settings */
-$lang['recent']      = 'Nifer y cofnodion y dudalen yn y newidiadau diweddar';
-$lang['recent_days'] = 'Sawl newid diweddar i\'w cadw (diwrnodau)';
-$lang['breadcrumbs'] = 'Nifer y briwsion "trywydd". Gosodwch i 0 i analluogi.';
-$lang['youarehere']  = 'Defnyddiwch briwsion hierarchaidd (byddwch chi yn debygol o angen analluogi\'r opsiwn uchod wedyn)';
-$lang['fullpath']    = 'Datgelu llwybr llawn y tudalennau yn y troedyn';
-$lang['typography']  = 'Gwnewch amnewidiadau argraffyddol';
-$lang['dformat']     = 'Fformat dyddiad (gweler swyddogaeth <a href="http://php.net/strftime">strftime</a> PHP)';
-$lang['signature']   = 'Yr hyn i\'w mewnosod gyda\'r botwm llofnod yn y golygydd';
-$lang['showuseras']  = 'Yr hyn i\'w harddangos wrth ddangos y defnyddiwr a wnaeth olygu\'r dudalen yn olaf';
-$lang['toptoclevel'] = 'Lefel uchaf ar gyfer tabl cynnwys';
-$lang['tocminheads'] = 'Isafswm y penawdau sy\'n penderfynu os ydy\'r tabl cynnwys yn cael ei adeiladu';
-$lang['maxtoclevel'] = 'Lefel uchaf ar gyfer y tabl cynnwys';
-$lang['maxseclevel'] = 'Lefel uchaf adran olygu';
-$lang['camelcase']   = 'Defnyddio CamelCase ar gyfer dolenni';
-$lang['deaccent']    = 'Sut i lanhau enwau tudalennau';
-$lang['useheading']  = 'Defnyddio\'r pennawd cyntaf ar gyfer enwau tudalennau';
-$lang['sneaky_index'] = 'Yn ddiofyn, bydd DokuWiki yn dangos pob namespace yn y map safle. Bydd galluogi yr opsiwn hwn yn cuddio\'r rheiny lle \'sdim hawliau darllen gan y defnyddiwr. Gall hwn achosi cuddio subnamespaces cyraeddadwy a fydd yn gallu peri\'r indecs i beidio â gweithio gyda gosodiadau ACL penodol.'; //namespace
-$lang['hidepages']   = 'Cuddio tudalennau sy\'n cydweddu gyda\'r mynegiad rheolaidd o\'r chwiliad, y map safle ac indecsau awtomatig eraill';
-
-/* Authentication Settings */
-$lang['useacl']      = 'Defnyddio rhestrau rheoli mynediad';
-$lang['autopasswd']  = 'Awtogeneradu cyfrineiriau';
-$lang['authtype']    = 'Ôl-brosesydd dilysu';
-$lang['passcrypt']   = 'Dull amgryptio cyfrineiriau';
-$lang['defaultgroup']= 'Grŵp diofyn, caiff pob defnyddiwr newydd ei osod yn y grŵp hwn';
-$lang['superuser']   = 'Uwchddefnyddiwr - grŵp, defnyddiwr neu restr gwahanwyd gan goma defnyddiwr1,@group1,defnyddiwr2 gyda mynediad llawn i bob tudalen beth bynnag y gosodiadau ACL';
-$lang['manager']     = 'Rheolwr - grŵp, defnyddiwr neu restr gwahanwyd gan goma defnyddiwr1,@group1,defnyddiwr2 gyda mynediad i swyddogaethau rheoli penodol';
-$lang['profileconfirm'] = 'Cadrnhau newidiadau proffil gyda chyfrinair';
-$lang['rememberme'] = 'Caniatáu cwcis mewngofnodi parhaol (cofio fi)';
-$lang['disableactions'] = 'Analluogi gweithredoedd DokuWiki';
-$lang['disableactions_check'] = 'Gwirio';
-$lang['disableactions_subscription'] = 'Tanysgrifio/Dad-tanysgrifio';
-$lang['disableactions_wikicode'] = 'Dangos ffynhonnell/Allforio Crai';
-$lang['disableactions_profile_delete'] = 'Dileu Cyfrif Eu Hunain';
-$lang['disableactions_other'] = 'Gweithredoedd eraill (gwahanu gan goma)';
-$lang['disableactions_rss'] = 'XML Syndication (RSS)'; //angen newid hwn
-$lang['auth_security_timeout'] = 'Terfyn Amser Diogelwch Dilysiad (eiliadau)';
-$lang['securecookie'] = 'A ddylai cwcis sydd wedi cael eu gosod gan HTTPS gael eu hanfon trwy HTTPS yn unig gan y porwr? Analluogwch yr opsiwn hwn dim ond pan fydd yr unig mewngofnodiad i\'ch wici wedi\'i ddiogelu gydag SSL ond mae pori\'r wici yn cael ei wneud heb ddiogelu.';
-$lang['remote']      = 'Galluogi\'r system API pell. Mae hwn yn galluogi apps eraill i gael mynediad i\'r wici trwy XML-RPC neu fecanweithiau eraill.';
-$lang['remoteuser']  = 'Cyfyngu mynediad API pell i grwpiau neu ddefnydwyr wedi\'u gwahanu gan goma yma. Gadewch yn wag i roi mynediad i bawb.';
-
-/* Anti-Spam Settings */
-$lang['usewordblock']= 'Blocio sbam wedi selio ar restr eiriau';
-$lang['relnofollow'] = 'Defnyddio rel="nofollow" ar ddolenni allanol';
-$lang['indexdelay']  = 'Oediad cyn indecsio (eil)';
-$lang['mailguard']   = 'Tywyllu cyfeiriadau ebost';
-$lang['iexssprotect']= 'Gwirio ffeiliau a lanlwythwyd am JavaScript neu god HTML sydd efallai\'n faleisis';
-
-/* Editing Settings */
-$lang['usedraft']    = 'Cadw drafft yn awtomatig wrth olygu';
-$lang['htmlok']      = 'Caniatáu HTML wedi\'i fewnosod';
-$lang['phpok']       = 'Caniatáu PHP wedi\'i fewnosod';
-$lang['locktime']    = 'Oed mwyaf ar gyfer cloi ffeiliau (eil)';
-$lang['cachetime']   = 'Oed mwyaf ar gyfer y storfa (eil)';
-
-/* Link settings */
-$lang['target____wiki']      = 'Ffenestr darged ar gyfer dolenni mewnol';
-$lang['target____interwiki'] = 'Ffenestr darged ar gyfer dolenni interwiki';
-$lang['target____extern']    = 'Ffenestr darged ar gyfer dolenni allanol';
-$lang['target____media']     = 'Ffenestr darged ar gyfer dolenni cyfrwng';
-$lang['target____windows']   = 'Ffenestr darged ar gyfer dolenni ffenestri';
-
-/* Media Settings */
-$lang['mediarevisions'] = 'Galluogi Mediarevisions?';
-$lang['refcheck']    = 'Gwirio os ydy ffeil gyfrwng yn dal yn cael ei defnydio cyn ei dileu hi';
-$lang['gdlib']       = 'Fersiwn GD Lib';
-$lang['im_convert']  = 'Llwybr i declyn trosi ImageMagick';
-$lang['jpg_quality'] = 'Ansawdd cywasgu JPG (0-100)';
-$lang['fetchsize']   = 'Uchafswm maint (beit) gall fetch.php lawlwytho o URL allanol, ee. i storio ac ailfeintio delweddau allanol.';
-
-/* Notification Settings */
-$lang['subscribers'] = 'Caniatáu defnyddwyr i danysgrifio i newidiadau tudalen gan ebost';
-$lang['subscribe_time'] = 'Yr amser cyn caiff rhestrau tanysgrifio a chrynoadau eu hanfon (eil); Dylai hwn fod yn llai na\'r amser wedi\'i gosod mewn recent_days.';
-$lang['notify']      = 'Wastad anfon hysbysiadau newidiadau i\'r cyfeiriad ebost hwn';
-$lang['registernotify'] = 'Wastad anfon gwybodaeth ar ddefnyddwyr newydd gofrestru i\'r cyfeiriad ebost hwn';
-$lang['mailfrom']    = 'Cyfeiriad anfon ebyst i\'w ddefnyddio ar gyfer pyst awtomatig';
-$lang['mailprefix']  = 'Rhagddodiad testun ebyst i\'w ddefnyddio ar gyfer pyst awtomatig. Gadewch yn wag i ddefnyddio teitl y wici';
-$lang['htmlmail']    = 'Anfonwch ebyst aml-ddarn HTML sydd yn edrych yn well, ond sy\'n fwy mewn maint. Analluogwch ar gyfer pyst testun plaen yn unig.';
-
-/* Syndication Settings */
-$lang['sitemap']     = 'Generadu map safle Google mor aml â hyn (mewn diwrnodau). 0 i anallogi';
-$lang['rss_type']    = 'Math y ffrwd XML';
-$lang['rss_linkto']  = 'Ffrwd XML yn cysylltu â';
-$lang['rss_content'] = 'Beth i\'w ddangos mewn eitemau\'r ffrwd XML?';
-$lang['rss_update']  = 'Cyfnod diwedaru ffrwd XML (eil)';
-$lang['rss_show_summary'] = 'Dangos crynodeb mewn teitl y ffrwd XML';
-$lang['rss_media']   = 'Pa fath newidiadau a ddylai cael eu rhestru yn y ffrwd XML??';
-
-/* Advanced Options */
-$lang['updatecheck'] = 'Gwirio am ddiweddariadau a rhybuddion diogelwch? Mae\'n rhaid i DokuWiki gysylltu ag update.dokuwiki.org ar gyfer y nodwedd hon.';
-$lang['userewrite']  = 'Defnyddio URLs pert';
-$lang['useslash']    = 'Defnyddio slaes fel gwahanydd namespace mewn URL';
-$lang['sepchar']     = 'Gwanahydd geiriau mewn enw tudalennau';
-$lang['canonical']   = 'Defnyddio URLs canonaidd llawn';
-$lang['fnencode']    = 'Dull amgodio enw ffeiliau \'non-ASCII\'.';
-$lang['autoplural']  = 'Gwirio am ffurfiau lluosog mewn dolenni';
-$lang['compression'] = 'Dull cywasgu ar gyfer ffeiliau llofft (hen adolygiadau)';
-$lang['gzip_output'] = 'Defnyddio gzip Content-Encoding ar gyfer xhtml'; //pwy a wyr
-$lang['compress']    = 'Cywasgu allbwn CSS a javascript';
-$lang['cssdatauri']  = 'Uchafswm maint mewn beitiau ar gyfer delweddau i\'w cyfeirio atynt mewn ffeiliau CSS a ddylai cael eu mewnosod i\'r ddalen arddull i leihau gorbenion pennyn cais HTTP. Mae <code>400</code> i <code>600</code> beit yn werth da. Gosodwch i <code>0</code> i\'w analluogi.';
-$lang['send404']     = 'Anfon "HTTP 404/Page Not Found" ar gyfer tudalennau sy ddim yn bodoli';
-$lang['broken_iua']  = 'Ydy\'r swyddogaeth ignore_user_abort wedi torri ar eich system? Gall hwn achosi\'r indecs chwilio i beidio â gweithio. Rydym yn gwybod bod IIS+PHP/CGI wedi torri. Gweler <a href="http://bugs.dokuwiki.org/?do=details&amp;task_id=852">Bug 852</a> am wybodaeth bellach.';
-$lang['xsendfile']   = 'Defnyddio\'r pennyn X-Sendfile i ganiatáu\'r gweinydd gwe i ddanfon ffeiliau statig? Mae\'n rhaid bod eich gweinydd gwe yn caniatáu hyn.';
-$lang['renderer_xhtml']   = 'Cyflwynydd i ddefnyddio ar gyfer prif allbwn (xhtml) y wici';
-$lang['renderer__core']   = '%s (craidd dokuwiki)';
-$lang['renderer__plugin'] = '%s (ategyn)';
-
-/* Network Options */
-$lang['dnslookups'] = 'Bydd DokuWiki yn edrych i fyny enwau gwesteiwyr ar gyfer cyfeiriadau IP pell y defnyddwyr hynny sy\'n golygu tudalennau. Os oes gweinydd DNS sy\'n araf neu sy ddim yn gweithio \'da chi neu \'dych chi ddim am ddefnyddio\'r nodwedd hon, analluogwch yr opsiwn hwn.';
-
-/* Proxy Options */
-$lang['proxy____host']    = 'Enw\'r gweinydd procsi';
-$lang['proxy____port']    = 'Porth procsi';
-$lang['proxy____user']    = 'Defnyddair procsi';
-$lang['proxy____pass']    = 'Cyfrinair procsi';
-$lang['proxy____ssl']     = 'Defnyddio SSL i gysylltu â\'r procsi';
-$lang['proxy____except']  = 'Mynegiad rheolaidd i gydweddu URL ar gyfer y procsi a ddylai cael eu hanwybyddu.';
-
-/* Safemode Hack */
-$lang['safemodehack'] = 'Galluogi safemode hack';
-$lang['ftp____host'] = 'Gweinydd FTP safemode hack';
-$lang['ftp____port'] = 'Porth FTP safemode hack';
-$lang['ftp____user'] = 'Defnyddair FTP safemode hack';
-$lang['ftp____pass'] = 'Cyfrinair FTP safemode hack';
-$lang['ftp____root'] = 'Gwraiddffolder FTP safemode hack';
-
-/* License Options */
-$lang['license_o_'] = 'Dim wedi\'i ddewis';
-
-/* typography options */
-$lang['typography_o_0'] = 'dim';
-$lang['typography_o_1'] = 'eithrio dyfynodau sengl';
-$lang['typography_o_2'] = 'cynnwys dyfynodau sengl (efallai ddim yn gweithio pob tro)';
-
-/* userewrite options */
-$lang['userewrite_o_0'] = 'dim';
-$lang['userewrite_o_1'] = '.htaccess';
-$lang['userewrite_o_2'] = 'DokuWiki mewnol';
-
-/* deaccent options */
-$lang['deaccent_o_0'] = 'bant';
-$lang['deaccent_o_1'] = 'tynnu acenion';
-$lang['deaccent_o_2'] = 'rhufeinio';
-
-/* gdlib options */
-$lang['gdlib_o_0'] = 'GD Lib ddim ar gael';
-$lang['gdlib_o_1'] = 'Fersiwn 1.x';
-$lang['gdlib_o_2'] = 'Awtoddatgeliad';
-
-/* rss_type options */
-$lang['rss_type_o_rss']   = 'RSS 0.91';
-$lang['rss_type_o_rss1']  = 'RSS 1.0';
-$lang['rss_type_o_rss2']  = 'RSS 2.0';
-$lang['rss_type_o_atom']  = 'Atom 0.3';
-$lang['rss_type_o_atom1'] = 'Atom 1.0';
-
-/* rss_content options */
-$lang['rss_content_o_abstract'] = 'Crynodeb';
-$lang['rss_content_o_diff']     = 'Gwahan. Unedig';
-$lang['rss_content_o_htmldiff'] = 'Gwahaniaethau ar ffurf tabl HTML';
-$lang['rss_content_o_html']     = 'Cynnwys tudalen HTML llawn';
-
-/* rss_linkto options */
-$lang['rss_linkto_o_diff']    = 'golwg gwahaniaethau';
-$lang['rss_linkto_o_page']    = 'y dudalen a adolygwyd';
-$lang['rss_linkto_o_rev']     = 'rhestr adolygiadau';
-$lang['rss_linkto_o_current'] = 'y dudalen gyfredol';
-
-/* compression options */
-$lang['compression_o_0']   = 'dim';
-$lang['compression_o_gz']  = 'gzip';
-$lang['compression_o_bz2'] = 'bz2';
-
-/* xsendfile header */
-$lang['xsendfile_o_0'] = "peidio â defnyddio";
-$lang['xsendfile_o_1'] = 'Pennyn perchnogol lighttpd (cyn rhyddhad 1.5)';
-$lang['xsendfile_o_2'] = 'Pennyn safonol X-Sendfile';
-$lang['xsendfile_o_3'] = 'Pennyn perchnogol Nginx X-Accel-Redirect';
-
-/* Display user info */
-$lang['showuseras_o_loginname']     = 'Enw mewngofnodi';
-$lang['showuseras_o_username']      = "Enw llawn y defnyddiwr";
-$lang['showuseras_o_username_link'] = "Enw llawn y defnyddiwr fel dolen defnyddiwr interwiki";
-$lang['showuseras_o_email']         = "Cyfeiriad e-bost y defnyddiwr (tywyllu yn ôl gosodiad mailguard)";
-$lang['showuseras_o_email_link']    = "Cyfeiriad e-bost y defnyddiwr fel dolen mailto:";
-
-/* useheading options */
-$lang['useheading_o_0'] = 'Byth';
-$lang['useheading_o_navigation'] = 'Llywio yn Unig';
-$lang['useheading_o_content'] = 'Cynnwys Wici yn Unig';
-$lang['useheading_o_1'] = 'Wastad';
-
-$lang['readdircache'] = 'Uchafswm amser ar gyfer storfa readdir (eil)';
diff --git a/wiki/lib/plugins/config/lang/da/intro.txt b/wiki/lib/plugins/config/lang/da/intro.txt
deleted file mode 100644
index 14cd3d6..0000000
--- a/wiki/lib/plugins/config/lang/da/intro.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-====== Opsætningsstyring ======
-
-Brug denne side til at kontrollere indstillingerne for din Dokuwiki-opsætning.  For at få hjælp med specifikke indstillinger, se [[doku>config]]. For flere detaljer om denne udvidelse, se [[doku>plugin:config]].
-
-Indstillinger vist med lys rød baggrund er beskyttede og kan ikke ændres med denne udvidelse. Indstillinger vist med blå baggrund er standardindstillinger og indstillinger vist med hvid baggrund er blevet sat lokalt denne konkrete opsætning.  Både blå og hvide indstillinger kan ændres.
-
-Husk at trykke på **Gem**-knappen før du forlader siden, for at du ikke mister dine ændringer.
diff --git a/wiki/lib/plugins/config/lang/da/lang.php b/wiki/lib/plugins/config/lang/da/lang.php
deleted file mode 100644
index 7546264..0000000
--- a/wiki/lib/plugins/config/lang/da/lang.php
+++ /dev/null
@@ -1,200 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Kenneth Schack Banner <kescba@gmail.com>
- * @author Jon Theil Nielsen <jontheil@gmail.com>
- * @author Lars Næsbye Christensen <larsnaesbye@stud.ku.dk>
- * @author Kalle Sommer Nielsen <kalle@php.net>
- * @author Esben Laursen <hyber@hyber.dk>
- * @author Harith <haj@berlingske.dk>
- * @author Daniel Ejsing-Duun <dokuwiki@zilvador.dk>
- * @author Erik Bjørn Pedersen <erik.pedersen@shaw.ca>
- * @author rasmus <rasmus@kinnerup.com>
- * @author Mikael Lyngvig <mikael@lyngvig.org>
- * @author Jacob Palm <mail@jacobpalm.dk>
- */
-$lang['menu']                  = 'Opsætningsindstillinger';
-$lang['error']                 = 'Indstillingerne blev ikke opdateret på grund af en ugyldig værdi, Gennemse venligst dine ændringer og gem dem igen.
-                       <br />Ugyldige værdier vil blive rammet ind med rødt.';
-$lang['updated']               = 'Indstillingerne blev opdateret korrekt.';
-$lang['nochoice']              = '(ingen andre valgmuligheder)';
-$lang['locked']                = 'Indstillingsfilen kunne ikke opdateres, Hvis dette er en fejl, <br />
-sørg da for at navnet på den lokale indstillingsfil samt dens rettigheder er korrekte.';
-$lang['danger']                = 'Fare: Ændring af denne mulighed kan gøre din wiki og opsætningsoversigt utilgængelige.';
-$lang['warning']               = 'Advarsel: Ændring af denne mulighed kan forårsage utilsigtet opførsel.';
-$lang['security']              = 'Sikkerhedsadvarsel: Ændring af denne mulighed kan forårsage en sikkerhedsrisiko.';
-$lang['_configuration_manager'] = 'Opsætningsstyring';
-$lang['_header_dokuwiki']      = 'DokuWiki indstillinger';
-$lang['_header_plugin']        = 'Udvidelsesindstillinger';
-$lang['_header_template']      = 'Skabelonindstillinger';
-$lang['_header_undefined']     = 'Ikke satte indstillinger';
-$lang['_basic']                = 'Grundindstillinger';
-$lang['_display']              = 'Synlighedsindstillinger';
-$lang['_authentication']       = 'Bekræftelsesindstillinger';
-$lang['_anti_spam']            = 'Trafikkontrolsindstillinger';
-$lang['_editing']              = 'Redigeringsindstillinger';
-$lang['_links']                = 'Henvisningsindstillinger';
-$lang['_media']                = 'Medieindstillinger';
-$lang['_notifications']        = 'Notificeringsindstillinger';
-$lang['_advanced']             = 'Avancerede indstillinger';
-$lang['_network']              = 'Netværksindstillinger';
-$lang['_msg_setting_undefined'] = 'Ingen indstillingsmetadata.';
-$lang['_msg_setting_no_class'] = 'Ingen indstillingsklasse.';
-$lang['_msg_setting_no_default'] = 'Ingen standardværdi.';
-$lang['title']                 = 'Wiki titel';
-$lang['start']                 = 'Startsidens navn';
-$lang['lang']                  = 'Sprog';
-$lang['template']              = 'Skabelon';
-$lang['tagline']               = 'Tagline (hvis templaten understøtter det)';
-$lang['sidebar']               = 'Sidebar side navne (hvis templaten understøtter det).';
-$lang['license']               = 'Under hvilken licens skal dit indhold frigives?';
-$lang['savedir']               = 'Katalog til opbevaring af data';
-$lang['basedir']               = 'Grundkatalog';
-$lang['baseurl']               = 'Grundadresse';
-$lang['cookiedir']             = 'Cookie sti.  Hvis tom, bruges baseurl.';
-$lang['dmode']                 = 'Katalogoprettelsestilstand';
-$lang['fmode']                 = 'Filoprettelsestilstand';
-$lang['allowdebug']            = 'Tillad fejlretning <b>slå fra hvis unødvendig!</b>';
-$lang['recent']                = 'Nylige ændringer';
-$lang['recent_days']           = 'Hvor mange nye ændringer der skal beholdes (dage)';
-$lang['breadcrumbs']           = 'Stilængde';
-$lang['youarehere']            = 'Hierarkisk sti';
-$lang['fullpath']              = 'Vis den fulde sti til siderne i bundlinjen';
-$lang['typography']            = 'Typografiske erstatninger';
-$lang['dformat']               = 'Datoformat (se PHP\'s <a href="http://php.net/strftime">strftime</a>-funktion)';
-$lang['signature']             = 'Underskrift';
-$lang['showuseras']            = 'Hvad skal vises når den sidste bruger, der har ændret siden, fremstilles';
-$lang['toptoclevel']           = 'Øverste niveau for indholdsfortegnelse';
-$lang['tocminheads']           = 'Mindste antal overskrifter for at danne Indholdsfortegnelsen';
-$lang['maxtoclevel']           = 'Højeste niveau for indholdsfortegnelse';
-$lang['maxseclevel']           = 'Højeste niveau for redigering af sektioner';
-$lang['camelcase']             = 'Brug KamelKasse til henvisninger';
-$lang['deaccent']              = 'Pæne sidenavne';
-$lang['useheading']            = 'Brug første overskrift til sidenavne';
-$lang['sneaky_index']          = 'DokuWiki vil som standard vise alle navnerum i indholdsfortegnelsen. Ved at slå denne valgmulighed til vil skjule de navnerum, hvor brugeren ikke har læsetilladelse. Dette kan føre til, at tilgængelige undernavnerum bliver skjult. Ligeledes kan det også gøre indholdsfortegnelsen ubrugelig med visse ACL-opsætninger.';
-$lang['hidepages']             = 'Skjul lignende sider (almindelige udtryk)';
-$lang['useacl']                = 'Benyt adgangskontrollister';
-$lang['autopasswd']            = 'Generer adgangskoder automatisk';
-$lang['authtype']              = 'Bekræftelsesgrundlag';
-$lang['passcrypt']             = 'Krypteringsmetode for adgangskoder';
-$lang['defaultgroup']          = 'Standardgruppe';
-$lang['superuser']             = 'Superbruger';
-$lang['manager']               = 'Bestyrer - en gruppe eller bruger med adgang til bestemte styrende funktioner';
-$lang['profileconfirm']        = 'Bekræft profilændringer med kodeord';
-$lang['rememberme']            = 'Tillad varige datafiler for brugernavne (husk mig)';
-$lang['disableactions']        = 'Slå DokuWiki-muligheder fra';
-$lang['disableactions_check']  = 'Tjek';
-$lang['disableactions_subscription'] = 'Tliføj/Fjern opskrivning';
-$lang['disableactions_wikicode'] = 'Vis kilde/Eksporter grundkode';
-$lang['disableactions_other']  = 'Andre muligheder (kommasepareret)';
-$lang['auth_security_timeout'] = 'Tidsudløb for bekræftelse (sekunder)';
-$lang['securecookie']          = 'Skal datafiler skabt af HTTPS kun sendes af HTTPS gennem browseren? Slå denne valgmulighed fra hvis kun brugen af din wiki er SSL-beskyttet, mens den almindelige tilgang udefra ikke er sikret.';
-$lang['remote']                = 'Aktivér fjern APIet.  Dette tillader andre programmer at tilgå wikien via XML-RPC eller andre mekanismer.';
-$lang['remoteuser']            = 'Begræns fjern API adgang til den kommaseparerede liste af grupper eller brugere angivet her.  Efterlad tom for at give adgang til alle.';
-$lang['usewordblock']          = 'Hindr uønsket brug med en ordliste';
-$lang['relnofollow']           = 'Brug rel="nofollow" til udadgående henvisninger';
-$lang['indexdelay']            = 'Tidsforsinkelse før katalogisering (sek.)';
-$lang['mailguard']             = 'Slør elektroniske adresser';
-$lang['iexssprotect']          = 'Gennemse oplagte filer for mulig skadelig JavaScript- eller HTML-kode.';
-$lang['usedraft']              = 'Gem automatisk en kladde under redigering';
-$lang['htmlok']                = 'Tillad indlejret HTML';
-$lang['phpok']                 = 'Tillad indlejret PHP';
-$lang['locktime']              = 'Længste levetid for låsefiler (sek)';
-$lang['cachetime']             = 'Længste levetid for "cache" (sek)';
-$lang['target____wiki']        = 'MÃ¥lvindue for indre henvisninger';
-$lang['target____interwiki']   = 'MÃ¥lvindue for egne wikihenvisninger ';
-$lang['target____extern']      = 'Målvindue for udadgående henvisninger';
-$lang['target____media']       = 'MÃ¥lvindue for mediehenvisninger';
-$lang['target____windows']     = 'MÃ¥lvindue til Windows-henvisninger';
-$lang['mediarevisions']        = 'Akvtivér media udgaver?';
-$lang['refcheck']              = 'Mediehenvisningerkontrol';
-$lang['gdlib']                 = 'Udgave af GD Lib';
-$lang['im_convert']            = 'Sti til ImageMagick\'s omdannerværktøj';
-$lang['jpg_quality']           = 'JPG komprimeringskvalitet (0-100)';
-$lang['fetchsize']             = 'Største antal (bytes) fetch.php må hente udefra';
-$lang['subscribers']           = 'Slå understøttelse af abonnement på sider til';
-$lang['subscribe_time']        = 'Tid der går før abonnementlister og nyhedsbreve er sendt (i sekunder). Denne værdi skal være mindre end den tid specificeret under recent_days.';
-$lang['notify']                = 'Send ændringsmeddelelser til denne e-adresse';
-$lang['registernotify']        = 'Send info om nyoprettede brugere til denne e-adresse';
-$lang['mailfrom']              = 'E-adresse til brug for automatiske meddelelser';
-$lang['mailprefix']            = 'Præfiks på email subject for automastiske mails.  Efterlad blank for at bruge wiki titlen.';
-$lang['htmlmail']              = 'Send pænere, men større HTML multipart mails.  Deaktivér for at sende rene tekst mails.';
-$lang['sitemap']               = 'Generer Google-"sitemap" (dage)';
-$lang['rss_type']              = 'Type af XML-liste';
-$lang['rss_linkto']            = 'XML-liste henviser til';
-$lang['rss_content']           = 'Hvad skal der vises i XML-listepunkteren?';
-$lang['rss_update']            = 'XML-listens opdateringsinterval (sek)';
-$lang['rss_show_summary']      = 'XML-liste vis referat i overskriften';
-$lang['rss_media']             = 'Hvilke ændringer skal vises i XML listen?';
-$lang['updatecheck']           = 'Kig efter opdateringer og sikkerhedsadvarsler? DokuWiki er nødt til at kontakte update.dokuwiki.org for at tilgå denne funktion.';
-$lang['userewrite']            = 'Brug pæne netadresser';
-$lang['useslash']              = 'Brug skråstreg som navnerumsdeler i netadresser';
-$lang['sepchar']               = 'Orddelingstegn til sidenavne';
-$lang['canonical']             = 'Benyt fuldt kanoniske netadresser';
-$lang['fnencode']              = 'Metode for indkodning af ikke ASCII filnavne';
-$lang['autoplural']            = 'Tjek for flertalsendelser i henvisninger';
-$lang['compression']           = 'Pakningsmetode for attic-filer';
-$lang['gzip_output']           = 'Benyt gzip-Content-Encoding (indholdskryptering) til XHTML';
-$lang['compress']              = 'Komprimer CSS- og JavaScript-filer';
-$lang['send404']               = 'Send "HTTP 404/Page Not Found" for ikke-eksisterende sider';
-$lang['broken_iua']            = 'Er funktionen "ignore_user_abort" uvirksom på dit system? Dette kunne forårsage en ikke virkende søgeoversigt. IIS+PHP/CGI er kendt for ikke at virke. Se <a href="http://bugs.splitbrain.org/?do=details&amp;task_id=852">Fejl 852</a> for flere oplysninger.';
-$lang['xsendfile']             = 'Brug hovedfilen til X-Sendfile for at få netserveren til at sende statiske filer? Din netserver skal understøtte dette for at bruge det.';
-$lang['renderer_xhtml']        = 'Udskriver der skal bruges til størstedelen af wiki-udskriften (XHTML)';
-$lang['renderer__core']        = '%s (dokuwiki-kerne)';
-$lang['renderer__plugin']      = '%s (udvidelse)';
-$lang['proxy____host']         = 'Proxy-servernavn';
-$lang['proxy____port']         = 'Proxy-port';
-$lang['proxy____user']         = 'Proxy-brugernavn';
-$lang['proxy____pass']         = 'Proxy-kodeord';
-$lang['proxy____ssl']          = 'Brug SSL til at forbinde til proxy';
-$lang['proxy____except']       = 'Regular expression til at matche URL\'er for hvilke proxier der skal ignores';
-$lang['safemodehack']          = 'Slå "safemode hack" til ';
-$lang['ftp____host']           = 'FTP-server til "safemode hack"';
-$lang['ftp____port']           = 'FTP-port til "safemode hack"';
-$lang['ftp____user']           = 'FTP-brugernavn til "safemode hack"';
-$lang['ftp____pass']           = 'FTP-adgangskode til "safemode hack"';
-$lang['ftp____root']           = 'FTP-rodmappe til "safemode hack"';
-$lang['license_o_']            = 'Ingen valgt';
-$lang['typography_o_0']        = 'ingen';
-$lang['typography_o_1']        = 'Kun gåseøjne';
-$lang['typography_o_2']        = 'Tillader enkelttegnscitering (vil måske ikke altid virke)';
-$lang['userewrite_o_0']        = 'ingen';
-$lang['userewrite_o_1']        = '.htaccess';
-$lang['userewrite_o_2']        = 'Dokuwiki indre';
-$lang['deaccent_o_0']          = 'fra';
-$lang['deaccent_o_1']          = 'fjern accenttegn';
-$lang['deaccent_o_2']          = 'romaniser';
-$lang['gdlib_o_0']             = 'GD Lib ikke tilstede';
-$lang['gdlib_o_1']             = 'Udgave 1.x';
-$lang['gdlib_o_2']             = 'automatisk sondering';
-$lang['rss_type_o_rss']        = 'RSS 0.91';
-$lang['rss_type_o_rss1']       = 'RSS 1.0';
-$lang['rss_type_o_rss2']       = 'RSS 2.0';
-$lang['rss_type_o_atom']       = 'Atom 0.3';
-$lang['rss_type_o_atom1']      = 'Atom 1.0';
-$lang['rss_content_o_abstract'] = 'Abstrakt';
-$lang['rss_content_o_diff']    = '"Unified Diff" (Sammensat)';
-$lang['rss_content_o_htmldiff'] = 'HTML-formateret diff-tabel';
-$lang['rss_content_o_html']    = 'Fuldt HTML-sideindhold';
-$lang['rss_linkto_o_diff']     = 'liste over forskelle';
-$lang['rss_linkto_o_page']     = 'den redigerede side';
-$lang['rss_linkto_o_rev']      = 'liste over ændringer';
-$lang['rss_linkto_o_current']  = 'den nuværende side';
-$lang['compression_o_0']       = 'ingen';
-$lang['compression_o_gz']      = 'gzip';
-$lang['compression_o_bz2']     = 'bz2';
-$lang['xsendfile_o_0']         = 'brug ikke';
-$lang['xsendfile_o_1']         = 'Proprietær lighttpd-hovedfil (før udgave 1.5)';
-$lang['xsendfile_o_2']         = 'Standard X-Sendfile-hovedfil';
-$lang['xsendfile_o_3']         = 'Proprietær Nginx X-Accel-Redirect hovedfil';
-$lang['showuseras_o_loginname'] = 'Brugernavn';
-$lang['showuseras_o_username'] = 'Brugerens fulde navn';
-$lang['showuseras_o_email']    = 'Brugerens e-adresse (ændret i forhold til mailguard-indstillingerne)';
-$lang['showuseras_o_email_link'] = 'Brugers e-adresse som en mailto:-henvisning';
-$lang['useheading_o_0']        = 'Aldrig';
-$lang['useheading_o_navigation'] = 'Kun navigering';
-$lang['useheading_o_content']  = 'Kun wiki-indhold';
-$lang['useheading_o_1']        = 'Altid';
-$lang['readdircache']          = 'Maksimum alder for readdir hukommelse (sek)';
diff --git a/wiki/lib/plugins/config/lang/de-informal/intro.txt b/wiki/lib/plugins/config/lang/de-informal/intro.txt
deleted file mode 100644
index ce4625c..0000000
--- a/wiki/lib/plugins/config/lang/de-informal/intro.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-===== Konfigurations-Manager =====
-
-Benutze diese Seite zur Kontrolle der Einstellungen deiner DokuWiki-Installation. Für Hilfe zu individuellen Einstellungen gehe zu [[doku>config]]. Für mehr Details über diese Erweiterungen siehe [[doku>plugin:config]].
-
-Einstellungen die mit einem hellroten Hintergrund angezeigt werden, können mit dieser Erweiterung nicht verändert werden. Einstellungen mit einem blauen Hintergrund sind Standardwerte und Einstellungen mit einem weißen Hintergrund wurden lokal gesetzt für diese Installation. Sowohl blaue als auch weiße Einstellungen können angepasst werden.
-
-Denke dran **Speichern** zu drücken bevor du die Seite verlässt, andernfalls werden deine Änderungen nicht übernommen.
diff --git a/wiki/lib/plugins/config/lang/de-informal/lang.php b/wiki/lib/plugins/config/lang/de-informal/lang.php
deleted file mode 100644
index 6c31e85..0000000
--- a/wiki/lib/plugins/config/lang/de-informal/lang.php
+++ /dev/null
@@ -1,208 +0,0 @@
-<?php
-
-/**
- * @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>
- * @author Matthias Schulte <dokuwiki@lupo49.de>
- * @author Christian Wichmann <nospam@zone0.de>
- * @author Pierre Corell <info@joomla-praxis.de>
- * @author Frank Loizzi <contact@software.bacal.de>
- * @author Mateng Schimmerlos <mateng@firemail.de>
- * @author Volker Bödker <volker@boedker.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.';
-$lang['updated']               = 'Konfiguration erfolgreich aktualisiert.';
-$lang['nochoice']              = '(keine andere Option möglich)';
-$lang['locked']                = 'Die Konfigurationsdatei kann nicht aktualisiert werden. Wenn dies unbeabsichtigt ist stelle sicher, dass der Name und die Zugriffsrechte der Konfigurationsdatei richtig sind.';
-$lang['danger']                = '**Achtung**: Eine Änderung dieser Einstellung kann dein Wiki und das Einstellungsmenü unerreichbar machen.';
-$lang['warning']               = 'Achtung: Eine Änderungen dieser Option kann zu unbeabsichtigtem Verhalten führen.';
-$lang['security']              = 'Sicherheitswarnung: Eine Änderungen dieser Option können ein Sicherheitsrisiko bedeuten.';
-$lang['_configuration_manager'] = 'Konfigurations-Manager';
-$lang['_header_dokuwiki']      = 'DokuWiki';
-$lang['_header_plugin']        = 'Plugin';
-$lang['_header_template']      = 'Template';
-$lang['_header_undefined']     = 'Unbekannte Werte';
-$lang['_basic']                = 'Basis';
-$lang['_display']              = 'Darstellung';
-$lang['_authentication']       = 'Authentifizierung';
-$lang['_anti_spam']            = 'Anti-Spam';
-$lang['_editing']              = 'Bearbeitung';
-$lang['_links']                = 'Links';
-$lang['_media']                = 'Medien';
-$lang['_notifications']        = 'Benachrichtigung';
-$lang['_syndication']          = 'Syndication (RSS)';
-$lang['_advanced']             = 'Erweitert';
-$lang['_network']              = 'Netzwerk';
-$lang['_msg_setting_undefined'] = 'Keine Konfigurationsmetadaten.';
-$lang['_msg_setting_no_class'] = 'Keine Konfigurationsklasse.';
-$lang['_msg_setting_no_default'] = 'Kein Standardwert.';
-$lang['title']                 = 'Wiki Titel';
-$lang['start']                 = 'Name der Startseite';
-$lang['lang']                  = 'Sprache';
-$lang['template']              = 'Vorlage';
-$lang['tagline']               = 'Tag-Linie (nur, wenn vom Template unterstützt)';
-$lang['sidebar']               = 'Name der Sidebar-Seite (nur, wenn vom Template unterstützt), ein leeres Feld deaktiviert die Sidebar';
-$lang['license']               = 'Unter welcher Lizenz sollte Ihr Inhalt veröffentlicht werden?';
-$lang['savedir']               = 'Ordner zum Speichern von Daten';
-$lang['basedir']               = 'Installationsverzeichnis';
-$lang['baseurl']               = 'Installationspfad (URL)';
-$lang['cookiedir']             = 'Cookie Pfad. Leer lassen, um die Standard-Url zu belassen.';
-$lang['dmode']                 = 'Zugriffsrechte bei Verzeichniserstellung';
-$lang['fmode']                 = 'Zugriffsrechte bei Dateierstellung';
-$lang['allowdebug']            = 'Debug-Ausgaben erlauben <b>Abschalten wenn nicht benötigt!</b>';
-$lang['recent']                = 'letzte Änderungen';
-$lang['recent_days']           = 'Wie viele Änderungen sollen vorgehalten werden? (Tage)';
-$lang['breadcrumbs']           = 'Anzahl der Einträge im "Krümelpfad"';
-$lang['youarehere']            = 'Hierarchische Pfadnavigation verwenden';
-$lang['fullpath']              = 'Zeige vollen Pfad der Datei in Fußzeile an';
-$lang['typography']            = 'Mach drucktechnische Ersetzungen';
-$lang['dformat']               = 'Datumsformat (siehe PHPs <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['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';
-$lang['maxseclevel']           = 'Abschnitte bis zu dieser Stufe einzeln editierbar machen';
-$lang['camelcase']             = 'CamelCase-Verlinkungen verwenden';
-$lang['deaccent']              = 'Seitennamen bereinigen';
-$lang['useheading']            = 'Erste Überschrift als Seitennamen verwenden';
-$lang['sneaky_index']          = 'Standardmäßig zeigt DokuWiki alle Namensräume in der Indexansicht an. Bei Aktivierung dieser Einstellung werden alle Namensräume versteckt, in welchen der Benutzer keine Leserechte hat. Dies könnte dazu führen, dass lesbare Unternamensräume versteckt werden. Dies kann die Indexansicht bei bestimmten Zugangskontrolleinstellungen unbenutzbar machen.';
-$lang['hidepages']             = 'Seiten verstecken (Regulärer Ausdruck)';
-$lang['useacl']                = 'Benutze Zugangskontrollliste';
-$lang['autopasswd']            = 'Automatisch erzeugte Passwörter';
-$lang['authtype']              = 'Authentifizierungsmethode';
-$lang['passcrypt']             = 'Passwortverschlüsselungsmethode';
-$lang['defaultgroup']          = 'Standardgruppe';
-$lang['superuser']             = 'Administrator - Eine Gruppe oder Benutzer mit vollem Zugriff auf alle Seiten und Administrationswerkzeuge.';
-$lang['manager']               = 'Manager - Eine Gruppe oder Benutzer mit Zugriff auf einige Administrationswerkzeuge.';
-$lang['profileconfirm']        = 'Änderungen am Benutzerprofil mit Passwort bestätigen';
-$lang['rememberme']            = 'Permanente Login-Cookies erlauben (Auf diesem Computer eingeloggt bleiben)';
-$lang['disableactions']        = 'Deaktiviere DokuWiki\'s Zugriffe';
-$lang['disableactions_check']  = 'Check';
-$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.';
-$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']          = 'Blockiere Spam basierend auf der Wortliste';
-$lang['relnofollow']           = 'rel="nofollow" verwenden';
-$lang['indexdelay']            = 'Zeit bevor Suchmaschinenindexierung erlaubt ist';
-$lang['mailguard']             = 'E-Mail-Adressen schützen';
-$lang['iexssprotect']          = 'Hochgeladene Dateien auf bösartigen JavaScript- und HTML-Code untersuchen';
-$lang['usedraft']              = 'Speichere automatisch Entwürfe während der Bearbeitung';
-$lang['htmlok']                = 'Erlaube eingebettetes HTML';
-$lang['phpok']                 = 'Erlaube eingebettetes PHP';
-$lang['locktime']              = 'Maximales Alter für Seitensperren (Sekunden)';
-$lang['cachetime']             = 'Maximale Cachespeicherung (Sekunden)';
-$lang['target____wiki']        = 'Zielfenstername für interne Links';
-$lang['target____interwiki']   = 'Zielfenstername für InterWiki-Links';
-$lang['target____extern']      = 'Zielfenstername für externe Links';
-$lang['target____media']       = 'Zielfenstername für Medienlinks';
-$lang['target____windows']     = 'Zielfenstername für Windows-Freigaben-Links';
-$lang['mediarevisions']        = 'Media-Revisionen (ältere Versionen) aktivieren?';
-$lang['refcheck']              = 'Auf Verwendung beim Löschen von Media-Dateien testen';
-$lang['gdlib']                 = 'GD Lib Version';
-$lang['im_convert']            = 'Pfad zu 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['notify']                = 'Sende Änderungsbenachrichtigungen an diese E-Mail-Adresse.';
-$lang['registernotify']        = 'Sende Information bei neu registrierten Benutzern an diese E-Mail-Adresse.';
-$lang['mailfrom']              = 'Absenderadresse für automatisch erzeugte E-Mails';
-$lang['mailreturnpath']        = 'Empfänger-E-Mail-Adresse für Unzustellbarkeitsnachricht';
-$lang['mailprefix']            = 'Präfix für E-Mail-Betreff beim automatischen Versand von Benachrichtigungen';
-$lang['htmlmail']              = 'Versendet optisch angenehmere, aber größere E-Mails im HTML-Format (multipart). Deaktivieren, um Text-Mails zu versenden.';
-$lang['sitemap']               = 'Erzeuge Google Sitemaps (Tage)';
-$lang['rss_type']              = 'XML-Feed-Format';
-$lang['rss_linkto']            = 'XML-Feed verlinken auf';
-$lang['rss_content']           = 'Was soll in XML-Feedinhalten angezeigt werden?';
-$lang['rss_update']            = 'Aktualisierungsintervall für XML-Feeds (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']            = 'Benutze schöne URLs';
-$lang['useslash']              = 'Benutze Schrägstrich als Namensraumtrenner in URLs';
-$lang['sepchar']               = 'Worttrenner für Seitennamen in URLs';
-$lang['canonical']             = 'Immer Links mit vollständigen URLs erzeugen';
-$lang['fnencode']              = 'Methode um nicht-ASCII Dateinamen zu kodieren.';
-$lang['autoplural']            = 'Bei Links automatisch nach vorhandenen Pluralformen suchen';
-$lang['compression']           = 'Komprimierungsmethode für alte Seitenrevisionen';
-$lang['gzip_output']           = 'Seiten mit gzip komprimiert ausliefern';
-$lang['compress']              = 'JavaScript und Stylesheets komprimieren';
-$lang['cssdatauri']            = 'Größe in Bytes, bis zu der Bilder in css-Dateien referenziert werden können, um HTTP-Anfragen zu minimieren. <code>400</code> bis <code>600</code> Bytes sind gute Werte. Setze <code>0</code> für inaktive Funktion.';
-$lang['send404']               = 'Sende "HTTP 404/Seite nicht gefunden" für nicht existierende Seiten';
-$lang['broken_iua']            = 'Falls die Funktion ignore_user_abort auf deinem System nicht funktioniert, könnte der Such-Index nicht funktionieren. IIS+PHP/CGI ist bekannt dafür. Siehe auch <a href="http://bugs.splitbrain.org/?do=details&amp;task_id=852">Bug 852</a>.';
-$lang['xsendfile']             = 'Den X-Sendfile-Header nutzen, um Dateien direkt vom Webserver ausliefern zu lassen? Dein Webserver muss dies unterstützen!';
-$lang['renderer_xhtml']        = 'Standard-Renderer für die normale (XHTML) Wiki-Ausgabe.';
-$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';
-$lang['proxy____pass']         = 'Passwort von dem Proxybenutzer';
-$lang['proxy____ssl']          = 'SSL verwenden um auf den Proxy zu zugreifen';
-$lang['proxy____except']       = 'Regulärer Ausdruck um Adressen zu beschreiben, für die kein Proxy verwendet werden soll';
-$lang['safemodehack']          = 'Aktiviere safemode Hack';
-$lang['ftp____host']           = 'FTP Server für safemode Hack';
-$lang['ftp____port']           = 'FTP Port für safemode Hack';
-$lang['ftp____user']           = 'FTP Benutzername für safemode Hack';
-$lang['ftp____pass']           = 'FTP Passwort für safemode Hack';
-$lang['ftp____root']           = 'FTP Wurzelverzeichnis für Safemodehack';
-$lang['license_o_']            = 'Nichts ausgewählt';
-$lang['typography_o_0']        = 'nichts';
-$lang['typography_o_1']        = 'ohne einfache Anführungszeichen';
-$lang['typography_o_2']        = 'mit einfachen Anführungszeichen (funktioniert nicht immer)';
-$lang['userewrite_o_0']        = 'nichts';
-$lang['userewrite_o_1']        = '.htaccess';
-$lang['userewrite_o_2']        = 'DokuWiki intern';
-$lang['deaccent_o_0']          = 'aus';
-$lang['deaccent_o_1']          = 'Entferne Akzente';
-$lang['deaccent_o_2']          = 'romanisieren';
-$lang['gdlib_o_0']             = 'GD lib ist nicht verfügbar';
-$lang['gdlib_o_1']             = 'Version 1.x';
-$lang['gdlib_o_2']             = 'Autoerkennung';
-$lang['rss_type_o_rss']        = 'RSS 0.91';
-$lang['rss_type_o_rss1']       = 'RSS 1.0';
-$lang['rss_type_o_rss2']       = 'RSS 2.0';
-$lang['rss_type_o_atom']       = 'Atom 0.3';
-$lang['rss_type_o_atom1']      = 'Atom 1.0';
-$lang['rss_content_o_abstract'] = 'Zusammenfassung';
-$lang['rss_content_o_diff']    = 'Vereinigtes Diff';
-$lang['rss_content_o_htmldiff'] = 'HTML formatierte Diff-Tabelle';
-$lang['rss_content_o_html']    = 'Vollständiger HTML-Inhalt';
-$lang['rss_linkto_o_diff']     = 'Ansicht der Unterschiede';
-$lang['rss_linkto_o_page']     = 'geänderte Seite';
-$lang['rss_linkto_o_rev']      = 'Liste der Revisionen';
-$lang['rss_linkto_o_current']  = 'Die aktuelle Seite';
-$lang['compression_o_0']       = 'nichts';
-$lang['compression_o_gz']      = 'gzip';
-$lang['compression_o_bz2']     = 'bz2';
-$lang['xsendfile_o_0']         = 'Nicht benutzen';
-$lang['xsendfile_o_1']         = 'Proprietärer lighttpd-Header (vor Release 1.5)';
-$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';
-$lang['useheading_o_navigation'] = 'Nur Navigation';
-$lang['useheading_o_content']  = 'Nur Wiki-Inhalt';
-$lang['useheading_o_1']        = 'Immer';
-$lang['readdircache']          = 'Maximales Alter des readdir-Caches (Sekunden)';
diff --git a/wiki/lib/plugins/config/lang/de/intro.txt b/wiki/lib/plugins/config/lang/de/intro.txt
deleted file mode 100644
index e743379..0000000
--- a/wiki/lib/plugins/config/lang/de/intro.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-====== Konfigurations-Manager ======
-
-Dieses Plugin hilft Ihnen bei der Konfiguration von DokuWiki. Hilfe zu den einzelnen Einstellungen finden Sie unter [[doku>config]]. Mehr Information zu diesem Plugin ist unter [[doku>plugin:config]] erhältlich.
-
-Einstellungen mit einem hellroten Hintergrund sind gesichert und können nicht mit diesem Plugin verändert werden, Einstellungen mit hellblauem Hintergrund sind Voreinstellungen, weiß hinterlegte Felder zeigen lokal veränderte Werte an. Sowohl die blauen als auch die weißen Felder können verändert werden.
-
-Bitte vergessen Sie nicht **Speichern** zu drücken bevor Sie die Seite verlassen, andernfalls gehen Ihre Änderungen verloren.
diff --git a/wiki/lib/plugins/config/lang/de/lang.php b/wiki/lib/plugins/config/lang/de/lang.php
deleted file mode 100644
index 65c319b..0000000
--- a/wiki/lib/plugins/config/lang/de/lang.php
+++ /dev/null
@@ -1,225 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Michael Bohn <mjbohn@gmail.com>
- * @author Joel Strasser <strasser999@gmail.com>
- * @author Andreas Gohr <andi@splitbrain.org>
- * @author Michael Klier <chi@chimeric.de>
- * @author Leo Moll <leo@yeasoft.com>
- * @author Florian Anderiasch <fa@art-core.org>
- * @author Robin Kluth <commi1993@gmail.com>
- * @author Arne Pelka <mail@arnepelka.de>
- * @author Dirk Einecke <dirk@dirkeinecke.de>
- * @author Blitzi94 <Blitzi94@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 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.';
-$lang['updated']               = 'Einstellungen erfolgreich gespeichert.';
-$lang['nochoice']              = '(keine Auswahlmöglichkeiten vorhanden)';
-$lang['locked']                = 'Die Konfigurationsdatei kann nicht geändert werden. Wenn dies unbeabsichtigt ist, <br />überprüfen Sie, ob die Dateiberechtigungen korrekt gesetzt sind.';
-$lang['danger']                = 'Vorsicht: Die Änderung dieser Option könnte Ihr Wiki und das Konfigurationsmenü unzugänglich machen.';
-$lang['warning']               = 'Hinweis: Die Änderung dieser Option könnte unbeabsichtigtes Verhalten hervorrufen.';
-$lang['security']              = 'Sicherheitswarnung: Die Änderung dieser Option könnte ein Sicherheitsrisiko darstellen.';
-$lang['_configuration_manager'] = 'Konfigurations-Manager';
-$lang['_header_dokuwiki']      = 'DokuWiki';
-$lang['_header_plugin']        = 'Plugin';
-$lang['_header_template']      = 'Template';
-$lang['_header_undefined']     = 'Nicht gesetzte Einstellungen';
-$lang['_basic']                = 'Basis';
-$lang['_display']              = 'Darstellung';
-$lang['_authentication']       = 'Authentifizierung';
-$lang['_anti_spam']            = 'Anti-Spam';
-$lang['_editing']              = 'Bearbeitung';
-$lang['_links']                = 'Links';
-$lang['_media']                = 'Medien';
-$lang['_notifications']        = 'Benachrichtigung';
-$lang['_syndication']          = 'Syndication (RSS)';
-$lang['_advanced']             = 'Erweitert';
-$lang['_network']              = 'Netzwerk';
-$lang['_msg_setting_undefined'] = 'Keine Konfigurationsmetadaten.';
-$lang['_msg_setting_no_class'] = 'Keine Konfigurationsklasse.';
-$lang['_msg_setting_no_default'] = 'Kein Standardwert.';
-$lang['title']                 = 'Titel des Wikis';
-$lang['start']                 = 'Startseitenname';
-$lang['lang']                  = 'Sprache';
-$lang['template']              = 'Designvorlage (Template)';
-$lang['tagline']               = 'Tag-Linie (nur, wenn vom Template unterstützt)';
-$lang['sidebar']               = 'Name der Sidebar-Seite (nur, wenn vom Template unterstützt), ein leeres Feld deaktiviert die Sidebar';
-$lang['license']               = 'Unter welcher Lizenz sollen Ihre Inhalte veröffentlicht werden?';
-$lang['savedir']               = 'Speicherverzeichnis';
-$lang['basedir']               = 'Installationsverzeichnis';
-$lang['baseurl']               = 'Installationspfad (URL)';
-$lang['cookiedir']             = 'Cookiepfad. Frei lassen, um den gleichen Pfad wie "baseurl" zu benutzen.';
-$lang['dmode']                 = 'Berechtigungen für neue Verzeichnisse';
-$lang['fmode']                 = 'Berechtigungen für neue Dateien';
-$lang['allowdebug']            = 'Debug-Ausgaben erlauben <b>Abschalten wenn nicht benötigt!</b>';
-$lang['recent']                = 'Anzahl der Einträge in der Änderungsliste';
-$lang['recent_days']           = 'Wie viele letzte Änderungen sollen einsehbar bleiben? (Tage)';
-$lang['breadcrumbs']           = 'Anzahl der Einträge im "Krümelpfad"';
-$lang['youarehere']            = 'Hierarchische Pfadnavigation verwenden';
-$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']            = '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';
-$lang['maxseclevel']           = 'Abschnitte bis zu dieser Stufe einzeln editierbar machen';
-$lang['camelcase']             = 'CamelCase-Verlinkungen verwenden';
-$lang['deaccent']              = 'Seitennamen bereinigen';
-$lang['useheading']            = 'Erste Überschrift als Seitennamen verwenden';
-$lang['sneaky_index']          = 'Standardmäßig zeigt DokuWiki alle Namensräume in der Übersicht. Wenn diese Option aktiviert wird, werden alle Namensräume, für die der Benutzer keine Lese-Rechte hat, nicht angezeigt. Dies kann unter Umständen dazu führen, das lesbare Unter-Namensräume nicht angezeigt werden und macht die Übersicht evtl. unbrauchbar in Kombination mit bestimmten ACL Einstellungen.';
-$lang['hidepages']             = 'Seiten verstecken (Regulärer Ausdruck)';
-$lang['useacl']                = 'Zugangskontrolle verwenden';
-$lang['autopasswd']            = 'Passwort automatisch generieren';
-$lang['authtype']              = 'Authentifizierungsmechanismus';
-$lang['passcrypt']             = 'Verschlüsselungsmechanismus';
-$lang['defaultgroup']          = 'Standardgruppe';
-$lang['superuser']             = 'Administrator - Eine Gruppe oder Benutzer mit vollem Zugriff auf alle Seiten und Administrationswerkzeuge.';
-$lang['manager']               = 'Manager - Eine Gruppe oder Benutzer mit Zugriff auf einige Administrationswerkzeuge.';
-$lang['profileconfirm']        = 'Profiländerung nur nach Passwortbestätigung';
-$lang['rememberme']            = 'Permanente Login-Cookies erlauben (Auf diesem Computer eingeloggt bleiben)';
-$lang['disableactions']        = 'DokuWiki-Aktionen deaktivieren';
-$lang['disableactions_check']  = 'Check';
-$lang['disableactions_subscription'] = 'Seiten-Abonnements';
-$lang['disableactions_wikicode'] = 'Quelltext betrachten/exportieren';
-$lang['disableactions_profile_delete'] = 'Eigenes Benutzerprofil löschen';
-$lang['disableactions_other']  = 'Andere Aktionen (durch Komma getrennt)';
-$lang['disableactions_rss']    = 'XML-Syndikation (RSS)';
-$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 (nach Wörterliste) benutzen';
-$lang['relnofollow']           = 'rel="nofollow" verwenden';
-$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';
-$lang['htmlok']                = 'HTML erlauben';
-$lang['phpok']                 = 'PHP erlauben';
-$lang['locktime']              = 'Maximales Alter für Seitensperren (Sekunden)';
-$lang['cachetime']             = 'Maximale Cachespeicherung (Sekunden)';
-$lang['target____wiki']        = 'Zielfenster für interne Links (target Attribut)';
-$lang['target____interwiki']   = 'Zielfenster für InterWiki-Links (target Attribut)';
-$lang['target____extern']      = 'Zielfenster für Externe Links (target Attribut)';
-$lang['target____media']       = 'Zielfenster für (Bild-)Dateien (target Attribut)';
-$lang['target____windows']     = 'Zielfenster für Windows Freigaben (target Attribut)';
-$lang['mediarevisions']        = 'Media-Revisionen (ältere Versionen) aktivieren?';
-$lang['refcheck']              = 'Auf Verwendung beim Löschen von Media-Dateien testen';
-$lang['gdlib']                 = 'GD Lib Version';
-$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 (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['mailreturnpath']        = 'Empfänger-E-Mail-Adresse für Unzustellbarkeitsnachricht';
-$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). 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?';
-$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['rss_media_o_both']      = 'beide';
-$lang['rss_media_o_pages']     = 'Seiten';
-$lang['rss_media_o_media']     = 'Medien';
-$lang['updatecheck']           = 'Automatisch auf Updates und Sicherheitswarnungen prüfen? DokuWiki muss sich dafür mit update.dokuwiki.org verbinden.';
-$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';
-$lang['fnencode']              = 'Methode um nicht-ASCII Dateinamen zu kodieren.';
-$lang['autoplural']            = 'Bei Links automatisch nach vorhandenen Pluralformen suchen';
-$lang['compression']           = 'Komprimierungsmethode für alte Seitenrevisionen';
-$lang['gzip_output']           = 'Seiten mit gzip komprimiert ausliefern';
-$lang['compress']              = 'JavaScript und Stylesheets komprimieren';
-$lang['cssdatauri']            = 'Größe in Bytes, bis zu der Bilder in CSS-Dateien referenziert werden können, um HTTP-Anfragen zu minimieren. Empfohlene Einstellung: <code>400</code> to <code>600</code> Bytes. Setzen Sie die Einstellung auf <code>0</code> um die Funktion zu deaktivieren.';
-$lang['send404']               = 'Bei nicht vorhandenen Seiten mit 404 Fehlercode antworten';
-$lang['broken_iua']            = 'Falls die Funktion ignore_user_abort auf Ihrem System nicht funktioniert, könnte der Such-Index nicht funktionieren. IIS+PHP/CGI ist bekannt dafür. Siehe auch <a href="http://bugs.splitbrain.org/?do=details&amp;task_id=852">Bug 852</a>.';
-$lang['xsendfile']             = 'Den X-Sendfile-Header nutzen, um Dateien direkt vom Webserver ausliefern zu lassen? Ihr Webserver muss dies unterstützen!';
-$lang['renderer_xhtml']        = 'Standard-Renderer für die normale (XHTML) Wiki-Ausgabe.';
-$lang['renderer__core']        = '%s (DokuWiki Kern)';
-$lang['renderer__plugin']      = '%s (Plugin)';
-$lang['search_fragment_o_exact'] = 'genaue Treffer';
-$lang['search_fragment_o_starts_with'] = 'beginnt mit';
-$lang['search_fragment_o_ends_with'] = 'endet mit';
-$lang['search_fragment_o_contains'] = 'enthält';
-$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 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';
-$lang['ftp____user']           = 'FTP Benutzername für Safemodehack';
-$lang['ftp____pass']           = 'FTP Passwort für Safemodehack';
-$lang['ftp____root']           = 'FTP Wurzelverzeichnis für Safemodehack';
-$lang['license_o_']            = 'Keine gewählt';
-$lang['typography_o_0']        = 'keine';
-$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 intern';
-$lang['deaccent_o_0']          = 'aus';
-$lang['deaccent_o_1']          = 'Akzente und Umlaute umwandeln';
-$lang['deaccent_o_2']          = 'Umschrift';
-$lang['gdlib_o_0']             = 'GD Lib nicht verfügbar';
-$lang['gdlib_o_1']             = 'Version 1.x';
-$lang['gdlib_o_2']             = 'Automatisch finden';
-$lang['rss_type_o_rss']        = 'RSS 0.91';
-$lang['rss_type_o_rss1']       = 'RSS 1.0';
-$lang['rss_type_o_rss2']       = 'RSS 2.0';
-$lang['rss_type_o_atom']       = 'Atom 0.3';
-$lang['rss_type_o_atom1']      = 'Atom 1.0';
-$lang['rss_content_o_abstract'] = 'Abstrakt';
-$lang['rss_content_o_diff']    = 'Unified Diff';
-$lang['rss_content_o_htmldiff'] = 'HTML formatierte Diff-Tabelle';
-$lang['rss_content_o_html']    = 'Vollständiger HTML-Inhalt';
-$lang['rss_linkto_o_diff']     = 'Änderungen zeigen';
-$lang['rss_linkto_o_page']     = 'geänderte Seite';
-$lang['rss_linkto_o_rev']      = 'Liste aller Änderungen';
-$lang['rss_linkto_o_current']  = 'Aktuelle Seite';
-$lang['compression_o_0']       = 'keine';
-$lang['compression_o_gz']      = 'gzip';
-$lang['compression_o_bz2']     = 'bz2';
-$lang['xsendfile_o_0']         = 'nicht benutzen';
-$lang['xsendfile_o_1']         = 'Proprietärer lighttpd-Header (vor Release 1.5)';
-$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'] = 'Vollständiger 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']        = 'Nie';
-$lang['useheading_o_navigation'] = 'Nur Navigation';
-$lang['useheading_o_content']  = 'Nur Wikiinhalt';
-$lang['useheading_o_1']        = 'Immer';
-$lang['readdircache']          = 'Maximales Alter des readdir-Caches (Sekunden)';
diff --git a/wiki/lib/plugins/config/lang/el/intro.txt b/wiki/lib/plugins/config/lang/el/intro.txt
deleted file mode 100644
index f106367..0000000
--- a/wiki/lib/plugins/config/lang/el/intro.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-====== Ρυθμίσεις ======
-
-ΧÏησιμοποιήστε αυτή την σελίδα για να Ïυθμίσετε την λειτουÏγία του Dokuwiki σας. Για βοήθεια σχετικά με τις Ïυθμίσεις δείτε την σελίδα [[doku>config]]. Για πεÏισσότεÏες λεπτομέÏειες σχετικά με αυτή την επέκταση δείτε την σελίδα [[doku>plugin:config]].
-
-Οι Ïυθμίσεις που εμφανίζονται σε απαλό κόκκινο φόντο είναι κλειδωμένες και δεν μποÏοÏν να Ï„ÏοποποιηθοÏν μέσω αυτής της επέκτασης. Οι Ïυθμίσεις που εμφανίζονται σε μπλε φόντο είναι οι Ï€Ïοεπιλεγμένες ενώ οι Ïυθμίσεις που εμφανίζονται σε λευκό φόντο είναι αυτές που διαφέÏουν από τις Ï€Ïοεπιλεγμένες. Και οι Ïυθμίσεις που εμφανίζονται σε μπλε φόντο και οι Ïυθμίσεις που εμφανίζονται σε λευκό φόντο μποÏοÏν να Ï„ÏοποποιηθοÏν.
-
-Θυμηθείτε να επιλέξετε **Αποθήκευση** Î±Ï†Î¿Ï ÎºÎ¬Î½ÎµÏ„Îµ τις αλλαγές που θέλετε.
diff --git a/wiki/lib/plugins/config/lang/el/lang.php b/wiki/lib/plugins/config/lang/el/lang.php
deleted file mode 100644
index 7904c63..0000000
--- a/wiki/lib/plugins/config/lang/el/lang.php
+++ /dev/null
@@ -1,199 +0,0 @@
-<?php
-
-/**
- * @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>
- * @author Konstantinos Koryllos <koryllos@gmail.com>
- * @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']                 = 'Οι Ïυθμίσεις σας δεν έγιναν δεκτές λόγω λανθασμένης τιμής κάποιας ÏÏθμισης. ΔιοÏθώστε την λάθος τιμή και Ï€Ïοσπαθήστε ξανά.
-                                      <br />Η λανθασμένη τιμή υποδεικνÏεται με κόκκινο πλαίσιο.';
-$lang['updated']               = 'Επιτυχής Ï„Ïοποποίηση Ïυθμίσεων.';
-$lang['nochoice']              = '(δεν υπάÏχουν άλλες διαθέσιμες επιλογές)';
-$lang['locked']                = 'Το αÏχείο Ïυθμίσεων δεν μποÏεί να Ï„Ïοποποιηθεί. <br />Εάν αυτό δεν είναι επιθυμητό, διοÏθώστε τα δικαιώματα Ï€Ïόσβασης του αÏχείου Ïυθμίσεων';
-$lang['danger']                = 'Κίνδυνος: Η αλλαγή αυτής της επιλογής θα μποÏοÏσε να αποτÏέψει την Ï€Ïόσβαση στο wiki και στις Ïυθμίσεις του.';
-$lang['warning']               = 'ΠÏοσοχή: Η αλλαγή αυτής της επιλογής θα μποÏοÏσε να Ï€Ïοκαλέσει ανεπιθÏμητη συμπεÏιφοÏά.';
-$lang['security']              = 'ΠÏοσοχή: Η αλλαγή αυτής της επιλογής θα μποÏοÏσε να Ï€Ïοκαλέσει Ï€Ïοβλήματα ασφαλείας.';
-$lang['_configuration_manager'] = 'Ρυθμίσεις';
-$lang['_header_dokuwiki']      = 'Ρυθμίσεις DokuWiki';
-$lang['_header_plugin']        = 'Ρυθμίσεις Επεκτάσεων';
-$lang['_header_template']      = 'Ρυθμίσεις ΠÏοτÏπων παÏουσίασης';
-$lang['_header_undefined']     = 'ΔιάφοÏες Ρυθμίσεις';
-$lang['_basic']                = 'Βασικές Ρυθμίσεις';
-$lang['_display']              = 'Ρυθμίσεις Εμφάνισης';
-$lang['_authentication']       = 'Ρυθμίσεις Ασφαλείας';
-$lang['_anti_spam']            = 'Ρυθμίσεις Anti-Spam';
-$lang['_editing']              = 'Ρυθμίσεις ΣÏνταξης σελίδων';
-$lang['_links']                = 'Ρυθμίσεις Συνδέσμων';
-$lang['_media']                = 'Ρυθμίσεις ΑÏχείων';
-$lang['_notifications']        = 'Ρυθμίσεις ενημεÏώσεων';
-$lang['_syndication']          = 'Ρυθμίσεις σÏνδεσης';
-$lang['_advanced']             = 'Ρυθμίσεις για ΠÏοχωÏημένους';
-$lang['_network']              = 'Ρυθμίσεις ΔικτÏου';
-$lang['_msg_setting_undefined'] = 'Δεν έχουν οÏιστεί metadata.';
-$lang['_msg_setting_no_class'] = 'Δεν έχει οÏιστεί κλάση.';
-$lang['_msg_setting_no_default'] = 'Δεν υπάÏχει τιμή εξ οÏισμοÏ.';
-$lang['title']                 = 'Τίτλος Wiki';
-$lang['start']                 = 'Ονομασία αÏχικής σελίδας';
-$lang['lang']                  = 'Γλώσσα';
-$lang['template']              = 'ΠÏότυπο Ï€Ïοβολής';
-$lang['tagline']               = 'Tagline';
-$lang['sidebar']               = 'Sidebar page name';
-$lang['license']               = 'Κάτω από ποια άδεια θέλετε να δημοσιευτεί το υλικό σας?';
-$lang['savedir']               = 'Φάκελος για την αποθήκευση δεδομένων';
-$lang['basedir']               = 'ΑÏχικός Φάκελος';
-$lang['baseurl']               = 'ΑÏχικό URL';
-$lang['cookiedir']             = 'ΔιαδÏομή cookie. Αφήστε την κενή για την χÏησιμοποίηση της αÏχικής URL.';
-$lang['dmode']                 = 'Δικαιώματα Ï€Ïόσβασης δημιουÏγοÏμενων φακέλων';
-$lang['fmode']                 = 'Δικαιώματα Ï€Ïόσβασης δημιουÏγοÏμενων αÏχείων';
-$lang['allowdebug']            = 'Δεδομένα εκσφαλμάτωσης (debug) <b>απενεÏγοποιήστε τα εάν δεν τα έχετε ανάγκη!</b>';
-$lang['recent']                = 'ΑÏιθμός Ï€Ïόσφατων αλλαγών ανά σελίδα';
-$lang['recent_days']           = 'Πόσο παλιές αλλαγές να εμφανίζονται (ημέÏες)';
-$lang['breadcrumbs']           = 'ΑÏιθμός συνδέσμων ιστοÏικοÏ';
-$lang['youarehere']            = 'Εμφάνιση ιεÏαÏχικής Ï€Ïοβολής Ï„Ïέχουσας σελίδας';
-$lang['fullpath']              = 'Εμφάνιση πλήÏους διαδÏομής σελίδας στην υποκεφαλίδα';
-$lang['typography']            = 'ΜετατÏοπή ειδικών χαÏακτήÏων στο τυπογÏαφικό ισοδÏναμό τους';
-$lang['dformat']               = 'ΜοÏφή ημεÏομηνίας (βλέπε την <a href="http://php.net/strftime">strftime</a> function της PHP)';
-$lang['signature']             = 'ΥπογÏαφή';
-$lang['showuseras']            = 'Τι να εμφανίζεται όταν φαίνεται ο χÏήστης που Ï„Ïοποποίησε τελευταίος μία σελίδα';
-$lang['toptoclevel']           = 'Ανώτατο επίπεδο πίνακα πεÏιεχομένων σελίδας';
-$lang['tocminheads']           = 'Ελάχιστος αÏιθμός κεφαλίδων για την δημιουÏγία πίνακα πεÏιεχομένων - TOC';
-$lang['maxtoclevel']           = 'Μέγιστο επίπεδο για πίνακα πεÏιεχομένων σελίδας';
-$lang['maxseclevel']           = 'Μέγιστο επίπεδο για εμφάνιση της επιλογής Ï„Ïοποποίησης επιπέδου';
-$lang['camelcase']             = 'ΧÏήση CamelCase στους συνδέσμους';
-$lang['deaccent']              = 'ΑφαίÏεση σημείων στίξης από ονόματα σελίδων';
-$lang['useheading']            = 'ΧÏήση κεφαλίδας Ï€Ïώτου επιπέδου σαν τίτλο συνδέσμων';
-$lang['sneaky_index']          = 'Εξ οÏισμοÏ, η εφαÏμογή DokuWiki δείχνει όλους τους φακέλους στην Ï€Ïοβολή Καταλόγου. ΕνεÏγοποιώντας αυτή την επιλογή, δεν θα εμφανίζονται οι φάκελοι για τους οποίους ο χÏήστης δεν έχει δικαιώματα ανάγνωσης αλλά και οι υπο-φάκελοί τους ανεξαÏτήτως δικαιωμάτων Ï€Ïόσβασης.';
-$lang['hidepages']             = 'ΦίλτÏο απόκÏυψης σελίδων (regular expressions)';
-$lang['useacl']                = 'ΧÏήση Λίστας Δικαιωμάτων ΠÏόσβασης (ACL)';
-$lang['autopasswd']            = 'Αυτόματη δημιουÏγία ÎºÏ‰Î´Î¹ÎºÎ¿Ï Ï‡Ïήστη';
-$lang['authtype']              = 'ΤÏπος πιστοποίησης στοιχείων χÏήστη';
-$lang['passcrypt']             = 'Μέθοδος κÏυπτογÏάφησης ÎºÏ‰Î´Î¹ÎºÎ¿Ï Ï‡Ïήστη';
-$lang['defaultgroup']          = 'ΠÏοεπιλεγμένη ομάδα χÏηστών';
-$lang['superuser']             = 'ΥπεÏ-χÏήστης - μία ομάδα ή ένας χÏήστης με πλήÏη δικαιώματα Ï€Ïόσβασης σε όλες τις σελίδες και όλες τις λειτουÏγίες ανεξάÏτητα από τις Ïυθμίσεις των Λιστών Δικαιωμάτων ΠÏόσβασης (ACL)';
-$lang['manager']               = 'ΔιαχειÏιστής - μία ομάδα ή ένας χÏήστης με δικαιώματα Ï€Ïόσβασης σε οÏισμένες από τις λειτουÏγίες της εφαÏμογής';
-$lang['profileconfirm']        = 'Îα απαιτείται ο κωδικός χÏήστη για την επιβεβαίωση αλλαγών στο Ï€Ïοφίλ χÏήστη';
-$lang['rememberme']            = 'Îα επιτÏέπονται τα cookies λογαÏÎ¹ÏƒÎ¼Î¿Ï Ï‡Ïήστη αοÏίστου χÏόνου (Απομνημόνευση στοιχείων λογαÏιασμοÏ)';
-$lang['disableactions']        = 'ΑπενεÏγοποίηση λειτουÏγιών DokuWiki';
-$lang['disableactions_check']  = 'Έλεγχος';
-$lang['disableactions_subscription'] = 'ΕγγÏαφή/ΔιαγÏαφή χÏήστη';
-$lang['disableactions_wikicode'] = 'ΠÏοβολή κώδικα σελίδας';
-$lang['disableactions_other']  = 'Άλλες λειτουÏγίες (διαχωÏίστε τις με κόμμα)';
-$lang['auth_security_timeout'] = 'ΔιάÏκεια χÏόνου για ασφάλεια πιστοποίησης (δευτεÏόλεπτα)';
-$lang['securecookie']          = 'Τα cookies που έχουν οÏιστεί μέσω HTTPS Ï€Ïέπει επίσης να αποστέλλονται μόνο μέσω HTTPS από τον φυλλομετÏητή? ΑπενεÏγοποιήστε αυτή την επιλογή όταν μόνο η είσοδος στο wiki σας διασφαλίζεται μέσω SSL αλλά η πεÏιήγηση γίνεται και χωÏίς αυτό.';
-$lang['remote']                = 'ΕνεÏγοποίησης απομακÏυσμένης Ï€ÏογÏαμματιστικής διεπαφής εφαÏμογών (API). Με αυτό τον Ï„Ïόπο επιτÏέπεται η Ï€Ïόσβαση στο wiki με το XML-RPC ή με άλλα Ï€Ïωτόκολλα επικοινωνίας.';
-$lang['remoteuser']            = 'ΑπενεÏγοποίησης απομακÏυσμένης Ï€ÏογÏαμματιστικής διεπαφής εφαÏμογών (API). Αφήστε το κενό για να είναι δυνατή η Ï€Ïόσβαση στον οποιοδήποτε.';
-$lang['usewordblock']          = 'ΧÏήστη λίστα απαγοÏευμένων λέξεων για καταπολέμηση του spam';
-$lang['relnofollow']           = 'ΧÏήση rel="nofollow"';
-$lang['indexdelay']            = 'ΧÏόνος αναμονής Ï€ÏÎ¿Ï„Î¿Ï ÎµÏ€Î¹Ï„Ïαπεί σε μηχανές αναζήτησης να ευÏετηÏιάσουν μια Ï„Ïοποποιημένη σελίδα (sec)';
-$lang['mailguard']             = 'Κωδικοποίηση e-mail διευθÏνσεων';
-$lang['iexssprotect']          = 'Έλεγχος μεταφοÏτώσεων για πιθανώς επικίνδυνο κώδικα JavaScript ή HTML';
-$lang['usedraft']              = 'Αυτόματη αποθήκευση αντιγÏάφων κατά την Ï„Ïοποποίηση σελίδων';
-$lang['htmlok']                = 'Îα επιτÏέπεται η ενσωμάτωση HTML';
-$lang['phpok']                 = 'Îα επιτÏέπεται η ενσωμάτωση PHP';
-$lang['locktime']              = 'Μέγιστος χÏόνος κλειδώματος αÏχείου υπό Ï„Ïοποποίηση (sec)';
-$lang['cachetime']             = 'Μέγιστη ηλικία cache (sec)';
-$lang['target____wiki']        = 'ΠαÏάθυÏο-στόχος για εσωτεÏικοÏÏ‚ συνδέσμους';
-$lang['target____interwiki']   = 'ΠαÏάθυÏο-στόχος για συνδέσμους interwiki';
-$lang['target____extern']      = 'ΠαÏάθυÏο-στόχος για εξωτεÏικοÏÏ‚ σθνδέσμους';
-$lang['target____media']       = 'ΠαÏάθυÏο-στόχος για συνδέσμους αÏχείων';
-$lang['target____windows']     = 'ΠαÏάθυÏο-στόχος για συνδέσμους σε Windows shares';
-$lang['mediarevisions']        = 'ΕνεÏγοποίηση Mediarevisions;';
-$lang['refcheck']              = 'ΠÏιν τη διαγÏαφή ενός αÏχείου να ελέγχεται η ÏπαÏξη σελίδων που το χÏησιμοποιοÏν';
-$lang['gdlib']                 = 'Έκδοση βιβλιοθήκης GD';
-$lang['im_convert']            = 'ΔιαδÏομή Ï€Ïος το εÏγαλείο μετατÏοπής εικόνων του ImageMagick';
-$lang['jpg_quality']           = 'Ποιότητα συμπίεσης JPG (0-100)';
-$lang['fetchsize']             = 'Μέγιστο μέγεθος (σε bytes) εξωτεÏÎ¹ÎºÎ¿Ï Î±Ïχείου που επιτÏέπεται να μεταφέÏει η fetch.php';
-$lang['subscribers']           = 'Îα επιτÏέπεται η εγγÏαφή στην ενημέÏωση αλλαγών σελίδας';
-$lang['subscribe_time']        = 'ΧÏόνος μετά τον οποίο οι λίστες ειδοποιήσεων και τα συνοπτικά θα αποστέλλονται (δευτεÏόλεπτα). Αυτό θα Ï€Ïέπει να είναι μικÏότεÏο από τον χÏόνο που έχει η ÏÏθμιση recent_days.';
-$lang['notify']                = 'Αποστολή ενημέÏωσης για αλλαγές σε αυτή την e-mail διεÏθυνση';
-$lang['registernotify']        = 'Αποστολή ενημεÏωτικών μηνυμάτων σε αυτή την e-mail διεÏθυνση κατά την εγγÏαφή νέων χÏηστών';
-$lang['mailfrom']              = 'e-mail διεÏθυνση αποστολέα για μηνÏματα από την εφαÏμογή';
-$lang['mailprefix']            = 'ΠÏόθεμα θέματος που να χÏησιμοποιείται για τα αυτόματα μηνÏματα ηλεκτÏÎ¿Î½Î¹ÎºÎ¿Ï Ï„Î±Ï‡Ï…Î´Ïομείου.';
-$lang['htmlmail']              = 'Αποστολή οπτικά καλÏτεÏου, αλλά μεγαλÏτεÏου σε μέγεθος email με χÏήση HTML. ΑπενεÏγοποιήστε το για αποστέλλονται μόνο email Î±Ï€Î»Î¿Ï ÎºÎµÎ¹Î¼Î­Î½Î¿Ï….';
-$lang['sitemap']               = 'ΔημιουÏγία Google sitemap (ημέÏες)';
-$lang['rss_type']              = 'ΤÏπος XML feed';
-$lang['rss_linkto']            = 'ΤÏπος συνδέσμων στο XML feed';
-$lang['rss_content']           = 'Τι να εμφανίζεται στα XML feed items?';
-$lang['rss_update']            = 'ΧÏόνος ανανέωσης XML feed (sec)';
-$lang['rss_show_summary']      = 'Îα εμφανίζεται σÏνοψη του XML feed στον τίτλο';
-$lang['rss_media']             = 'Τι είδους αλλαγές Ï€Ïέπει να εμφανίζονται στο XLM feed;';
-$lang['updatecheck']           = 'Έλεγχος για ÏπαÏξη νέων εκδόσεων και ενημεÏώσεων ασφαλείας της εφαÏμογής? Απαιτείται η σÏνδεση με το update.dokuwiki.org για να λειτουÏγήσει σωστά αυτή η επιλογή.';
-$lang['userewrite']            = 'ΧÏήση ωÏαίων URLs';
-$lang['useslash']              = 'ΧÏήση slash σαν διαχωÏιστικό φακέλων στα URLs';
-$lang['sepchar']               = 'ΔιαχωÏιστικός χαÏακτήÏας για κανονικοποίηση ονόματος σελίδας';
-$lang['canonical']             = 'ΠλήÏη και κανονικοποιημένα URLs';
-$lang['fnencode']              = 'Μέθοδος κωδικοποίησης για ονόματα αÏχείων μη-ASCII';
-$lang['autoplural']            = 'ΤαίÏιασμα Ï€Î»Î·Î¸Ï…Î½Ï„Î¹ÎºÎ¿Ï ÏƒÏ„Î¿Ï…Ï‚ συνδέσμους';
-$lang['compression']           = 'Μέθοδος συμπίεσης για αÏχεία attic';
-$lang['gzip_output']           = 'ΧÏήση gzip Content-Encoding για την xhtml';
-$lang['compress']              = 'Συμπίεση αÏχείων CSS και javascript';
-$lang['cssdatauri']            = 'Το μέγεθος σε bytes στο οποίο οι εικόνες που αναφέÏονται σε CSS αÏχεία θα Ï€Ïέπει να είναι ενσωματωμένες για τη μείωση των απαιτήσεων μιας κεφαλίδας αίτησης HTTP . Αυτή η τεχνική δεν θα λειτουÏγήσει σε IE <8! <code> 400 </code> με <code> 600 </code> bytes είναι μια καλή τιμή. ΟÏίστε την τιμή <code> 0 </code> για να το απενεÏγοποιήσετε.';
-$lang['send404']               = 'Αποστολή "HTTP 404/Page Not Found" για σελίδες που δεν υπάÏχουν';
-$lang['broken_iua']            = 'Η συνάÏτηση ignore_user_abort δεν λειτουÏγεί σωστά στο σÏστημά σας? Σε αυτή την πεÏίπτωση μποÏεί να μην δουλεÏει σωστά η λειτουÏγία Καταλόγου. Ο συνδυασμός IIS+PHP/CGI είναι γνωστό ότι έχει τέτοιο Ï€Ïόβλημα. Δείτε και <a href="http://bugs.splitbrain.org/?do=details&amp;task_id=852">Bug 852</a> για λεπτομέÏειες.';
-$lang['xsendfile']             = 'ΧÏήση της κεφαλίδας X-Sendfile από τον εξυπηÏετητή κατά την φόÏτωση στατικών αÏχείων? Ο εξυπηÏετητής σας Ï€Ïέπει να υποστηÏίζει αυτή την δυνατότητα.';
-$lang['renderer_xhtml']        = 'ΠÏόγÏαμμα δημιουÏγίας βασικής (xhtml) εξόδου wiki.';
-$lang['renderer__core']        = '%s (βασικός κώδικας dokuwiki)';
-$lang['renderer__plugin']      = '%s (επέκταση)';
-$lang['dnslookups']            = 'Το DokuWiki θα ψάξει τα ονόματα υπολογιστών που αντιστοιχοÏν σε διευθÏνσεις IP των χÏηστών που γÏάφουν στις σελίδες. Αν ο DNS είναι αÏγός, δεν δουλεÏει ή δεν χÏειάζεστε αυτή την λειτουÏγία, απενεÏγοποιήστε την.';
-$lang['proxy____host']         = 'Διακομιστής Proxy';
-$lang['proxy____port']         = 'ΘÏÏα Proxy';
-$lang['proxy____user']         = 'Όνομα χÏήστη Proxy';
-$lang['proxy____pass']         = 'Κωδικός χÏήστη Proxy';
-$lang['proxy____ssl']          = 'ΧÏήση ssl για σÏνδεση με διακομιστή Proxy';
-$lang['proxy____except']       = 'Regular expression για να πιάνει τα URLs για τα οποία θα παÏακάμπτεται το proxy.';
-$lang['safemodehack']          = 'ΕνεÏγοποίηση safemode hack';
-$lang['ftp____host']           = 'Διακομιστής FTP για safemode hack';
-$lang['ftp____port']           = 'ΘÏÏα FTP για safemode hack';
-$lang['ftp____user']           = 'Όνομα χÏήστη FTP για safemode hack';
-$lang['ftp____pass']           = 'Κωδικός χÏήστη FTP για safemode hack';
-$lang['ftp____root']           = 'ΑÏχικός φάκελος FTP για safemode hack';
-$lang['license_o_']            = 'Δεν επελέγει άδεια';
-$lang['typography_o_0']        = 'κανένα';
-$lang['typography_o_1']        = 'μόνο διπλά εισαγωγικά';
-$lang['typography_o_2']        = 'όλα τα εισαγωγικά (μποÏεί να μην λειτουÏγεί πάντα)';
-$lang['userewrite_o_0']        = 'κανένα';
-$lang['userewrite_o_1']        = '.htaccess';
-$lang['userewrite_o_2']        = 'από DokuWiki';
-$lang['deaccent_o_0']          = 'όχι';
-$lang['deaccent_o_1']          = 'αφαίÏεση σημείων στίξης';
-$lang['deaccent_o_2']          = 'λατινοποίηση';
-$lang['gdlib_o_0']             = 'Δεν υπάÏχει βιβλιοθήκη GD στο σÏστημα';
-$lang['gdlib_o_1']             = 'Έκδοση 1.x';
-$lang['gdlib_o_2']             = 'Αυτόματος εντοπισμός';
-$lang['rss_type_o_rss']        = 'RSS 0.91';
-$lang['rss_type_o_rss1']       = 'RSS 1.0';
-$lang['rss_type_o_rss2']       = 'RSS 2.0';
-$lang['rss_type_o_atom']       = 'Atom 0.3';
-$lang['rss_type_o_atom1']      = 'Atom 1.0';
-$lang['rss_content_o_abstract'] = 'ΠεÏίληψη';
-$lang['rss_content_o_diff']    = 'Ενοποιημένο Diff';
-$lang['rss_content_o_htmldiff'] = 'HTML διαμοÏφωμένος πίνακας diff';
-$lang['rss_content_o_html']    = 'ΠεÏιεχόμενο Σελίδας μόνο με HTML';
-$lang['rss_linkto_o_diff']     = 'Ï€Ïοβολή αλλαγών';
-$lang['rss_linkto_o_page']     = 'Ï„Ïοποποιημένη σελίδα';
-$lang['rss_linkto_o_rev']      = 'εκδόσεις σελίδας';
-$lang['rss_linkto_o_current']  = 'Ï„Ïέχουσα σελίδα';
-$lang['compression_o_0']       = 'none';
-$lang['compression_o_gz']      = 'gzip';
-$lang['compression_o_bz2']     = 'bz2';
-$lang['xsendfile_o_0']         = 'να μην χÏησιμοποιείται';
-$lang['xsendfile_o_1']         = 'Ιδιοταγής κεφαλίδα lighttpd (Ï€Ïιν από την έκδοση 1.5)';
-$lang['xsendfile_o_2']         = 'Τυπική κεφαλίδα X-Sendfile';
-$lang['xsendfile_o_3']         = 'Ιδιοταγής κεφαλίδα Nginx X-Accel-Redirect ';
-$lang['showuseras_o_loginname'] = 'Όνομα χÏήστη';
-$lang['showuseras_o_username'] = 'Ονοματεπώνυμο χÏήστη';
-$lang['showuseras_o_email']    = 'e-mail διεÏθυνση χÏήστη (εμφανίζεται σÏμφωνα με την ÏÏθμιση για την κωδικοποίηση e-mail διευθÏνσεων)';
-$lang['showuseras_o_email_link'] = 'Εμφάνιση e-mail διεÏθυνσης χÏήστη σαν σÏνδεσμος mailto:';
-$lang['useheading_o_0']        = 'Ποτέ';
-$lang['useheading_o_navigation'] = 'Μόνο κατά την πλοήγηση';
-$lang['useheading_o_content']  = 'Μόνο για τα πεÏιεχόμενα του wiki';
-$lang['useheading_o_1']        = 'Πάντα';
-$lang['readdircache']          = 'Μέγιστος χÏόνος διατήÏησης για το cache του readdir (δευτεÏόλεπτα)';
diff --git a/wiki/lib/plugins/config/lang/en/intro.txt b/wiki/lib/plugins/config/lang/en/intro.txt
deleted file mode 100644
index 0108987..0000000
--- a/wiki/lib/plugins/config/lang/en/intro.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-====== Configuration Manager ======
-
-Use this page to control the settings of your DokuWiki installation.  For help on individual settings refer to [[doku>config]]. For more details about this plugin see [[doku>plugin:config]].
-
-Settings shown with a light red background are protected and can not be altered with this plugin. Settings shown with a blue background are the default values and settings shown with a white background have been set locally for this particular installation.  Both blue and white settings can be altered.
-
-Remember to press the **Save** button before leaving this page otherwise your changes will be lost.
diff --git a/wiki/lib/plugins/config/lang/en/lang.php b/wiki/lib/plugins/config/lang/en/lang.php
deleted file mode 100644
index 356db4e..0000000
--- a/wiki/lib/plugins/config/lang/en/lang.php
+++ /dev/null
@@ -1,279 +0,0 @@
-<?php
-/**
- * english language file
- *
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * @author     Christopher Smith <chris@jalakai.co.uk>
- * @author     Matthias Schulte <dokuwiki@lupo49.de>
- * @author     Schplurtz le Déboulonné <Schplurtz@laposte.net>
- */
-
-// for admin plugins, the menu prompt to be displayed in the admin menu
-// if set here, the plugin doesn't need to override the getMenuText() method
-$lang['menu']       = 'Configuration Settings';
-
-$lang['error']      = 'Settings not updated due to an invalid value, please review your changes and resubmit.
-                       <br />The incorrect value(s) will be shown surrounded by a red border.';
-$lang['updated']    = 'Settings updated successfully.';
-$lang['nochoice']   = '(no other choices available)';
-$lang['locked']     = 'The settings file can not be updated, if this is unintentional, <br />
-                       ensure the local settings file name and permissions are correct.';
-
-$lang['danger']     = 'Danger: Changing this option could make your wiki and the configuration menu inaccessible.';
-$lang['warning']    = 'Warning: Changing this option could cause unintended behaviour.';
-$lang['security']   = 'Security Warning: Changing this option could present a security risk.';
-
-/* --- Config Setting Headers --- */
-$lang['_configuration_manager'] = 'Configuration Manager'; //same as heading in intro.txt
-$lang['_header_dokuwiki'] = 'DokuWiki';
-$lang['_header_plugin'] = 'Plugin';
-$lang['_header_template'] = 'Template';
-$lang['_header_undefined'] = 'Undefined Settings';
-
-/* --- Config Setting Groups --- */
-$lang['_basic'] = 'Basic';
-$lang['_display'] = 'Display';
-$lang['_authentication'] = 'Authentication';
-$lang['_anti_spam'] = 'Anti-Spam';
-$lang['_editing'] = 'Editing';
-$lang['_links'] = 'Links';
-$lang['_media'] = 'Media';
-$lang['_notifications'] = 'Notification';
-$lang['_syndication']   = 'Syndication (RSS)';
-$lang['_advanced'] = 'Advanced';
-$lang['_network'] = 'Network';
-
-/* --- Undefined Setting Messages --- */
-$lang['_msg_setting_undefined'] = 'No setting metadata.';
-$lang['_msg_setting_no_class'] = 'No setting class.';
-$lang['_msg_setting_no_default'] = 'No default value.';
-
-/* -------------------- Config Options --------------------------- */
-
-/* Basic Settings */
-$lang['title']       = 'Wiki title aka. your wiki\'s name';
-$lang['start']       = 'Page name to use as the starting point for each namespace';
-$lang['lang']        = 'Interface language';
-$lang['template']    = 'Template aka. the design of the wiki.';
-$lang['tagline']     = 'Tagline (if template supports it)';
-$lang['sidebar']     = 'Sidebar page name (if template supports it), empty field disables the sidebar';
-$lang['license']     = 'Under which license should your content be released?';
-$lang['savedir']     = 'Directory for saving data';
-$lang['basedir']     = 'Server path (eg. <code>/dokuwiki/</code>). Leave blank for autodetection.';
-$lang['baseurl']     = 'Server URL (eg. <code>http://www.yourserver.com</code>). Leave blank for autodetection.';
-$lang['cookiedir']   = 'Cookie path. Leave blank for using baseurl.';
-$lang['dmode']       = 'Directory creation mode';
-$lang['fmode']       = 'File creation mode';
-$lang['allowdebug']  = 'Allow debug. <b>Disable if not needed!</b>';
-
-/* Display Settings */
-$lang['recent']      = 'Number of entries per page in the recent changes';
-$lang['recent_days'] = 'How many recent changes to keep (days)';
-$lang['breadcrumbs'] = 'Number of "trace" breadcrumbs. Set to 0 to disable.';
-$lang['youarehere']  = 'Use hierarchical breadcrumbs (you probably want to disable the above option then)';
-$lang['fullpath']    = 'Reveal full path of pages in the footer';
-$lang['typography']  = 'Do typographical replacements';
-$lang['dformat']     = 'Date format (see PHP\'s <a href="http://php.net/strftime">strftime</a> function)';
-$lang['signature']   = 'What to insert with the signature button in the editor';
-$lang['showuseras']  = 'What to display when showing the user that last edited a page';
-$lang['toptoclevel'] = 'Top level for table of contents';
-$lang['tocminheads'] = 'Minimum amount of headlines that determines whether the TOC is built';
-$lang['maxtoclevel'] = 'Maximum level for table of contents';
-$lang['maxseclevel'] = 'Maximum section edit level';
-$lang['camelcase']   = 'Use CamelCase for links';
-$lang['deaccent']    = 'How to clean pagenames';
-$lang['useheading']  = 'Use first heading for pagenames';
-$lang['sneaky_index'] = 'By default, DokuWiki will show all namespaces in the sitemap. Enabling this option will hide those where the user doesn\'t have read permissions. This might result in hiding of accessable subnamespaces which may make the index unusable with certain ACL setups.';
-$lang['hidepages']   = 'Hide pages matching this regular expression from search, the sitemap and other automatic indexes';
-
-/* Authentication Settings */
-$lang['useacl']      = 'Use access control lists';
-$lang['autopasswd']  = 'Autogenerate passwords';
-$lang['authtype']    = 'Authentication backend';
-$lang['passcrypt']   = 'Password encryption method';
-$lang['defaultgroup']= 'Default group, all new users will be placed in this group';
-$lang['superuser']   = 'Superuser - group, user or comma separated list user1,@group1,user2 with full access to all pages and functions regardless of the ACL settings';
-$lang['manager']     = 'Manager - group, user or comma separated list user1,@group1,user2 with access to certain management functions';
-$lang['profileconfirm'] = 'Confirm profile changes with password';
-$lang['rememberme'] = 'Allow permanent login cookies (remember me)';
-$lang['disableactions'] = 'Disable DokuWiki actions';
-$lang['disableactions_check'] = 'Check';
-$lang['disableactions_subscription'] = 'Subscribe/Unsubscribe';
-$lang['disableactions_wikicode'] = 'View source/Export Raw';
-$lang['disableactions_profile_delete'] = 'Delete Own Account';
-$lang['disableactions_other'] = 'Other actions (comma separated)';
-$lang['disableactions_rss'] = 'XML Syndication (RSS)';
-$lang['auth_security_timeout'] = 'Authentication Security Timeout (seconds)';
-$lang['securecookie'] = 'Should cookies set via HTTPS only be sent via HTTPS by the browser? Disable this option when only the login of your wiki is secured with SSL but browsing the wiki is done unsecured.';
-$lang['remote']      = 'Enable the remote API system. This allows other applications to access the wiki via XML-RPC or other mechanisms.';
-$lang['remoteuser']  = 'Restrict remote API access to the comma separated groups or users given here. Leave empty to give access to everyone.';
-
-/* Anti-Spam Settings */
-$lang['usewordblock']= 'Block spam based on wordlist';
-$lang['relnofollow'] = 'Use rel="nofollow" on external links';
-$lang['indexdelay']  = 'Time delay before indexing (sec)';
-$lang['mailguard']   = 'Obfuscate email addresses';
-$lang['iexssprotect']= 'Check uploaded files for possibly malicious JavaScript or HTML code';
-
-/* Editing Settings */
-$lang['usedraft']    = 'Automatically save a draft while editing';
-$lang['htmlok']      = 'Allow embedded HTML';
-$lang['phpok']       = 'Allow embedded PHP';
-$lang['locktime']    = 'Maximum age for lock files (sec)';
-$lang['cachetime']   = 'Maximum age for cache (sec)';
-
-/* Link settings */
-$lang['target____wiki']      = 'Target window for internal links';
-$lang['target____interwiki'] = 'Target window for interwiki links';
-$lang['target____extern']    = 'Target window for external links';
-$lang['target____media']     = 'Target window for media links';
-$lang['target____windows']   = 'Target window for windows links';
-
-/* Media Settings */
-$lang['mediarevisions'] = 'Enable Mediarevisions?';
-$lang['refcheck']    = 'Check if a media file is still in use before deleting it';
-$lang['gdlib']       = 'GD Lib version';
-$lang['im_convert']  = 'Path to ImageMagick\'s convert tool';
-$lang['jpg_quality'] = 'JPG compression quality (0-100)';
-$lang['fetchsize']   = 'Maximum size (bytes) fetch.php may download from external URLs, eg. to cache and resize external images.';
-
-/* Notification Settings */
-$lang['subscribers'] = 'Allow users to subscribe to page changes by email';
-$lang['subscribe_time'] = 'Time after which subscription lists and digests are sent (sec); This should be smaller than the time specified in recent_days.';
-$lang['notify']      = 'Always send change notifications to this email address';
-$lang['registernotify'] = 'Always send info on newly registered users to this email address';
-$lang['mailfrom']    = 'Sender email address to use for automatic mails';
-$lang['mailreturnpath']    = 'Recipient email address for non delivery notifications';
-$lang['mailprefix']  = 'Email subject prefix to use for automatic mails. Leave blank to use the wiki title';
-$lang['htmlmail']    = 'Send better looking, but larger in size HTML multipart emails. Disable for plain text only mails.';
-
-/* Syndication Settings */
-$lang['sitemap']           = 'Generate Google sitemap this often (in days). 0 to disable';
-$lang['rss_type']          = 'XML feed type';
-$lang['rss_linkto']        = 'XML feed links to';
-$lang['rss_content']       = 'What to display in the XML feed items?';
-$lang['rss_update']        = 'XML feed update interval (sec)';
-$lang['rss_show_summary']  = 'XML feed show summary in title';
-$lang['rss_media']         = 'What kind of changes should be listed in the XML feed?';
-$lang['rss_media_o_both']  = 'both';
-$lang['rss_media_o_pages'] = 'pages';
-$lang['rss_media_o_media'] = 'media';
-
-
-/* Advanced Options */
-$lang['updatecheck'] = 'Check for updates and security warnings? DokuWiki needs to contact update.dokuwiki.org for this feature.';
-$lang['userewrite']  = 'Use nice URLs';
-$lang['useslash']    = 'Use slash as namespace separator in URLs';
-$lang['sepchar']     = 'Page name word separator';
-$lang['canonical']   = 'Use fully canonical URLs';
-$lang['fnencode']    = 'Method for encoding non-ASCII filenames.';
-$lang['autoplural']  = 'Check for plural forms in links';
-$lang['compression'] = 'Compression method for attic files';
-$lang['gzip_output'] = 'Use gzip Content-Encoding for xhtml';
-$lang['compress']    = 'Compact CSS and javascript output';
-$lang['cssdatauri']  = 'Size in bytes up to which images referenced in CSS files should be embedded right into the stylesheet to reduce HTTP request header overhead. <code>400</code> to <code>600</code> bytes is a good value. Set <code>0</code> to disable.';
-$lang['send404']     = 'Send "HTTP 404/Page Not Found" for non existing pages';
-$lang['broken_iua']  = 'Is the ignore_user_abort function broken on your system? This could cause a non working search index. IIS+PHP/CGI is known to be broken. See <a href="http://bugs.dokuwiki.org/?do=details&amp;task_id=852">Bug 852</a> for more info.';
-$lang['xsendfile']   = 'Use the X-Sendfile header to let the webserver deliver static files? Your webserver needs to support this.';
-$lang['renderer_xhtml']   = 'Renderer to use for main (xhtml) wiki output';
-$lang['renderer__core']   = '%s (dokuwiki core)';
-$lang['renderer__plugin'] = '%s (plugin)';
-$lang['search_nslimit'] = 'Limit the search to the current X namespaces. When a search is executed from a page within a deeper namespace, the first X namespaces will be added as filter';
-$lang['search_fragment'] = 'Specify the default fragment search behavior';
-$lang['search_fragment_o_exact'] = 'exact';
-$lang['search_fragment_o_starts_with'] = 'starts with';
-$lang['search_fragment_o_ends_with'] = 'ends with';
-$lang['search_fragment_o_contains'] = 'contains';
-
-/* Network Options */
-$lang['dnslookups'] = 'DokuWiki will lookup hostnames for remote IP addresses of users editing pages. If you have a slow or non working DNS server or don\'t want this feature, disable this option';
-$lang['jquerycdn'] = 'Should the jQuery and jQuery UI script files be loaded from a CDN? This adds additional HTTP requests, but files may load faster and users may have them cached already.';
-
-/* jQuery CDN options */
-$lang['jquerycdn_o_0'] = 'No CDN, local delivery only';
-$lang['jquerycdn_o_jquery'] = 'CDN at code.jquery.com';
-$lang['jquerycdn_o_cdnjs'] = 'CDN at cdnjs.com';
-
-/* Proxy Options */
-$lang['proxy____host']    = 'Proxy servername';
-$lang['proxy____port']    = 'Proxy port';
-$lang['proxy____user']    = 'Proxy user name';
-$lang['proxy____pass']    = 'Proxy password';
-$lang['proxy____ssl']     = 'Use SSL to connect to proxy';
-$lang['proxy____except']  = 'Regular expression to match URLs for which the proxy should be skipped.';
-
-/* Safemode Hack */
-$lang['safemodehack'] = 'Enable safemode hack';
-$lang['ftp____host'] = 'FTP server for safemode hack';
-$lang['ftp____port'] = 'FTP port for safemode hack';
-$lang['ftp____user'] = 'FTP user name for safemode hack';
-$lang['ftp____pass'] = 'FTP password for safemode hack';
-$lang['ftp____root'] = 'FTP root directory for safemode hack';
-
-/* License Options */
-$lang['license_o_'] = 'None chosen';
-
-/* typography options */
-$lang['typography_o_0'] = 'none';
-$lang['typography_o_1'] = 'excluding single quotes';
-$lang['typography_o_2'] = 'including single quotes (might not always work)';
-
-/* userewrite options */
-$lang['userewrite_o_0'] = 'none';
-$lang['userewrite_o_1'] = '.htaccess';
-$lang['userewrite_o_2'] = 'DokuWiki internal';
-
-/* deaccent options */
-$lang['deaccent_o_0'] = 'off';
-$lang['deaccent_o_1'] = 'remove accents';
-$lang['deaccent_o_2'] = 'romanize';
-
-/* gdlib options */
-$lang['gdlib_o_0'] = 'GD Lib not available';
-$lang['gdlib_o_1'] = 'Version 1.x';
-$lang['gdlib_o_2'] = 'Autodetection';
-
-/* rss_type options */
-$lang['rss_type_o_rss']   = 'RSS 0.91';
-$lang['rss_type_o_rss1']  = 'RSS 1.0';
-$lang['rss_type_o_rss2']  = 'RSS 2.0';
-$lang['rss_type_o_atom']  = 'Atom 0.3';
-$lang['rss_type_o_atom1'] = 'Atom 1.0';
-
-/* rss_content options */
-$lang['rss_content_o_abstract'] = 'Abstract';
-$lang['rss_content_o_diff']     = 'Unified Diff';
-$lang['rss_content_o_htmldiff'] = 'HTML formatted diff table';
-$lang['rss_content_o_html']     = 'Full HTML page content';
-
-/* rss_linkto options */
-$lang['rss_linkto_o_diff']    = 'difference view';
-$lang['rss_linkto_o_page']    = 'the revised page';
-$lang['rss_linkto_o_rev']     = 'list of revisions';
-$lang['rss_linkto_o_current'] = 'the current page';
-
-/* compression options */
-$lang['compression_o_0']   = 'none';
-$lang['compression_o_gz']  = 'gzip';
-$lang['compression_o_bz2'] = 'bz2';
-
-/* xsendfile header */
-$lang['xsendfile_o_0'] = "don't use";
-$lang['xsendfile_o_1'] = 'Proprietary lighttpd header (before release 1.5)';
-$lang['xsendfile_o_2'] = 'Standard X-Sendfile header';
-$lang['xsendfile_o_3'] = 'Proprietary Nginx X-Accel-Redirect header';
-
-/* Display user info */
-$lang['showuseras_o_loginname']     = 'Login name';
-$lang['showuseras_o_username']      = "User's full name";
-$lang['showuseras_o_username_link'] = "User's full name as interwiki user link";
-$lang['showuseras_o_email']         = "User's e-mail addresss (obfuscated according to mailguard setting)";
-$lang['showuseras_o_email_link']    = "User's e-mail addresss as a mailto: link";
-
-/* useheading options */
-$lang['useheading_o_0'] = 'Never';
-$lang['useheading_o_navigation'] = 'Navigation Only';
-$lang['useheading_o_content'] = 'Wiki Content Only';
-$lang['useheading_o_1'] = 'Always';
-
-$lang['readdircache'] = 'Maximum age for readdir cache (sec)';
diff --git a/wiki/lib/plugins/config/lang/eo/intro.txt b/wiki/lib/plugins/config/lang/eo/intro.txt
deleted file mode 100644
index 5ed2f0e..0000000
--- a/wiki/lib/plugins/config/lang/eo/intro.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-====== Administrilo de Agordoj ======
-
-Uzu tiun ĉi paÄon por kontroli la difinojn de via DokuWiki-instalo. Por helpo pri specifaj difinoj aliru al [[doku>config]]. Por pli detaloj pri tiu ĉi kromaĵo, vidu [[doku>plugin:config]].
-
-Difinoj montrataj kun helruÄa fono estas protektitaj kaj ne povas esti modifataj per tiu ĉi kromaĵo. Difinoj kun blua fono estas aprioraj valoroj kaj difinoj montrataj kun blanka fono iam difiniÄis por tiu ĉi specifa instalo. AmbaÅ­ blua kaj blanka difinoj povas esti modifataj.
-
-Memoru premi la butonon **Registri** antaÅ­ ol eliri tiun ĉi paÄon, male viaj modifoj perdiÄus.
diff --git a/wiki/lib/plugins/config/lang/eo/lang.php b/wiki/lib/plugins/config/lang/eo/lang.php
deleted file mode 100644
index 7201b32..0000000
--- a/wiki/lib/plugins/config/lang/eo/lang.php
+++ /dev/null
@@ -1,202 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * Esperantolanguage file
- *
- * @author Kristjan SCHMIDT <kristjan.schmidt@googlemail.com>
- * @author Felipe Castro <fefcas@uol.com.br>
- * @author Felipo Kastro <fefcas@gmail.com>
- * @author Robert Bogenschneider <robog@gmx.de>
- * @author Erik Pedersen <erik pedersen@shaw.ca>
- */
-$lang['menu']                  = 'Agordaj Difinoj';
-$lang['error']                 = 'La difinoj ne estas Äisdatigitaj pro malvalida valoro: bonvolu revizii viajn ÅanÄojn kaj resubmeti ilin.
-<br />La malkorekta(j) valoro(j) estas ĉirkaÅ­ita(j) de ruÄa kadro.';
-$lang['updated']               = 'La difinoj sukcese ÄisdatiÄis.';
-$lang['nochoice']              = '(neniu alia elekto disponeblas)';
-$lang['locked']                = 'La difin-dosiero ne povas esti Äisdatigita; se tio ne estas intenca, <br /> certiÄu, ke la dosieroj de lokaj difinoj havas korektajn nomojn kaj permesojn.';
-$lang['danger']                = 'DanÄero: ÅanÄi tiun opcion povus igi vian vikion kaj la agordan menuon neatingebla.';
-$lang['warning']               = 'Averto: ÅanÄi tiun opcion povus rezulti en neatendita konduto.';
-$lang['security']              = 'Sekureca averto: ÅanÄi tiun opcion povus krei sekurecan riskon.';
-$lang['_configuration_manager'] = 'Administrilo de agordoj';
-$lang['_header_dokuwiki']      = 'Difinoj por DokuWiki';
-$lang['_header_plugin']        = 'Difinoj por kromaĵoj';
-$lang['_header_template']      = 'Difinoj por Åablonoj';
-$lang['_header_undefined']     = 'Ceteraj difinoj';
-$lang['_basic']                = 'Bazaj difinoj';
-$lang['_display']              = 'Difinoj por montrado';
-$lang['_authentication']       = 'Difinoj por identiÄo';
-$lang['_anti_spam']            = 'KontraÅ­-spamaj difinoj';
-$lang['_editing']              = 'Difinoj por redakto';
-$lang['_links']                = 'Difinoj por ligiloj';
-$lang['_media']                = 'Difinoj por aŭdvidaĵoj';
-$lang['_notifications']        = 'Sciigaj agordoj';
-$lang['_syndication']          = 'Kunhavigaj agordoj';
-$lang['_advanced']             = 'Fakaj difinoj';
-$lang['_network']              = 'Difinoj por reto';
-$lang['_msg_setting_undefined'] = 'Neniu difinanta metadatumaro.';
-$lang['_msg_setting_no_class'] = 'Neniu difinanta klaso.';
-$lang['_msg_setting_no_default'] = 'Neniu apriora valoro.';
-$lang['title']                 = 'Titolo de la vikio';
-$lang['start']                 = 'Nomo de la hejmpaÄo';
-$lang['lang']                  = 'Lingvo';
-$lang['template']              = 'Åœablono';
-$lang['tagline']               = 'Moto (se la Åablono antaûvidas tion)';
-$lang['sidebar']               = 'Nomo de la flanka paÄo  (se la Åablono antaûvidas tion), malplena kampo malebligas la flankan paÄon';
-$lang['license']               = 'LaÅ­ kiu permesilo via enhavo devus esti publikigita?';
-$lang['savedir']               = 'Dosierujo por konservi datumaron';
-$lang['basedir']               = 'Baza dosierujo';
-$lang['baseurl']               = 'Baza URL';
-$lang['cookiedir']             = 'Kuketopado. Lasu malplena por uzi baseurl.';
-$lang['dmode']                 = 'ReÄimo de dosierujo-kreado';
-$lang['fmode']                 = 'ReÄimo de dosiero-kreado';
-$lang['allowdebug']            = 'Ebligi kodumpurigadon <b>malebligu se ne necese!<;/b>';
-$lang['recent']                = 'FreÅaj ÅanÄoj';
-$lang['recent_days']           = 'Kiom da freÅaj ÅanÄoj por teni (tagoj)';
-$lang['breadcrumbs']           = 'Nombro da paderoj';
-$lang['youarehere']            = 'Hierarkiaj paderoj';
-$lang['fullpath']              = 'Montri la kompletan padon de la paÄoj en la piedlinio';
-$lang['typography']            = 'Fari tipografiajn anstataÅ­igojn';
-$lang['dformat']               = 'Formato de datoj (vidu la PHP-an funkcion <a href="http://php.net/strftime">strftime</a>)';
-$lang['signature']             = 'Subskribo';
-$lang['showuseras']            = 'Kiel indiki la lastan redaktinton';
-$lang['toptoclevel']           = 'Supera nivelo por la enhavtabelo';
-$lang['tocminheads']           = 'Minimuma kvanto da ĉeftitoloj, kiu difinas ĉu la TOC estas kreata.';
-$lang['maxtoclevel']           = 'Maksimuma nivelo por la enhavtabelo';
-$lang['maxseclevel']           = 'Maksimuma nivelo por redakti sekciojn';
-$lang['camelcase']             = 'Uzi KamelUsklecon por ligiloj';
-$lang['deaccent']              = 'Netaj paÄnomoj';
-$lang['useheading']            = 'Uzi unuan titolon por paÄnomoj';
-$lang['sneaky_index']          = 'Apriore, DokuWiki montras ĉiujn nomspacojn en la indeksa modo. Ebligi tiun ĉi elekteblon kaÅus tion, kion la uzanto ne rajtas legi laÅ­ ACL. Tio povus rezulti ankaÅ­an kaÅon de alireblaj subnomspacoj. Tiel la indekso estus neuzebla por kelkaj agordoj de ACL.';
-$lang['hidepages']             = 'KaÅi kongruantajn paÄojn (laÅ­ regulaj esprimoj)';
-$lang['useacl']                = 'Uzi alirkontrolajn listojn';
-$lang['autopasswd']            = 'AÅ­tomate krei pasvortojn';
-$lang['authtype']              = 'Tipo de identiÄo';
-$lang['passcrypt']             = 'Metodo por ĉifri pasvortojn';
-$lang['defaultgroup']          = 'AntaÅ­difinita grupo';
-$lang['superuser']             = 'Superanto - grupo, uzanto aÅ­ listo (disigita per komoj), kiu plene alireblas al ĉiuj paÄoj kaj funkcioj, sendepende de la reguloj ACL';
-$lang['manager']               = 'Administranto - grupo, uzanto aÅ­ listo (apartite per komoj), kiu havas alirpermeson al kelkaj administraj funkcioj';
-$lang['profileconfirm']        = 'Konfirmi ÅanÄojn en la trajtaro per pasvorto';
-$lang['rememberme']            = 'Permesi longdaÅ­ran ensalutajn kuketojn (rememoru min)';
-$lang['disableactions']        = 'Malebligi DokuWiki-ajn agojn';
-$lang['disableactions_check']  = 'Kontroli';
-$lang['disableactions_subscription'] = 'AliÄi/MalaliÄi';
-$lang['disableactions_wikicode'] = 'Rigardi vikitekston/Eksporti fontotekston';
-$lang['disableactions_profile_delete'] = 'Forigi la propran konton';
-$lang['disableactions_other']  = 'Aliaj agoj (disigita per komoj)';
-$lang['auth_security_timeout'] = 'Sekureca tempolimo por aÅ­tentigo (sekundoj)';
-$lang['securecookie']          = 'Ĉu kuketoj difinitaj per HTTPS sendiÄu de la foliumilo nur per HTTPS? Malebligu tiun ĉi opcion kiam nur la ensaluto al via vikio estas sekurigita per SSL, sed foliumado de la vikio estas farita malsekure.';
-$lang['remote']                = 'Ebligu la traretan API-sistemon. Tio ebligas al aliaj aplikaĵoj aliri la vikion pere de XML-RPC aũ aliaj mekanismoj.';
-$lang['remoteuser']            = 'Limigi traretan API-aliron al la komodisigitaj grupoj aũ uzantoj indikitaj jene. Lasu malplena por ebligi aliron al ĉiu ajn.';
-$lang['usewordblock']          = 'Bloki spamon surbaze de vortlisto';
-$lang['relnofollow']           = 'Uzi rel="nofollow" kun eksteraj ligiloj';
-$lang['indexdelay']            = 'Prokrasto antaÅ­ ol indeksi (en sekundoj)';
-$lang['mailguard']             = 'Nebuligi retadresojn';
-$lang['iexssprotect']          = 'Ekzameni elÅutaĵojn kontraÅ­ eblaj malicaj Ä´avaSkripto aÅ­ HTML-a kodumaĵo';
-$lang['usedraft']              = 'AÅ­tomate konservi skizon dum redaktado';
-$lang['htmlok']                = 'Ebligi enmeton de HTML-aĵoj';
-$lang['phpok']                 = 'Ebligi enmeton de PHP-aĵoj';
-$lang['locktime']              = 'Maksimuma aÄo por serurdosieroj (sek.)';
-$lang['cachetime']             = 'Maksimuma aÄo por provizmemoro (sek.)';
-$lang['target____wiki']        = 'Parametro "target" (celo) por internaj ligiloj';
-$lang['target____interwiki']   = 'Parametro "target" (celo) por intervikiaj ligiloj';
-$lang['target____extern']      = 'Parametro "target" (celo) por eksteraj ligiloj';
-$lang['target____media']       = 'Parametro "target" (celo) por aŭdvidaĵaj ligiloj';
-$lang['target____windows']     = 'Parametro "target" (celo) por Vindozaj ligiloj';
-$lang['mediarevisions']        = 'Ĉu ebligi reviziadon de aŭdvidaĵoj?';
-$lang['refcheck']              = 'Kontrolo por referencoj al aŭdvidaĵoj';
-$lang['gdlib']                 = 'Versio de GD-Lib';
-$lang['im_convert']            = 'Pado al la konvertilo de ImageMagick';
-$lang['jpg_quality']           = 'Kompaktiga kvalito de JPG (0-100)';
-$lang['fetchsize']             = 'Maksimuma grandeco (bitokoj), kiun fetch.php rajtas elÅuti el ekstere';
-$lang['subscribers']           = 'Ebligi subtenon de avizoj pri ÅanÄoj sur paÄoj';
-$lang['subscribe_time']        = 'Tempo, post kiu abonlistoj kaj kolektaĵoj sendiÄas (sek); Tio estu pli malgranda ol la tempo indikita en recent_days.';
-$lang['notify']                = 'Sendi avizojn pri ÅanÄoj al tiu ĉi retadreso';
-$lang['registernotify']        = 'Sendi informon pri ĵusaj aliÄintoj al tiu ĉi retadreso';
-$lang['mailfrom']              = 'Retadreso uzota por aÅ­tomataj retmesaÄoj ';
-$lang['mailprefix']            = 'RetpoÅta temo-prefikso por uzi en aÅ­tomataj mesaÄoj';
-$lang['htmlmail']              = 'Sendi pli bele aspektajn, sed pli grandajn plurpartajn HTML-retpoÅtaĵojn. Malebligu por ricevi pure tekstajn mesaÄojn.';
-$lang['sitemap']               = 'Krei Guglan paÄarmapon "sitemap" (po kiom tagoj)';
-$lang['rss_type']              = 'XML-a tipo de novaĵ-fluo';
-$lang['rss_linkto']            = 'La novaĵ-fluo de XML ligiÄas al';
-$lang['rss_content']           = 'Kion montri en la XML-aj novaĵ-flueroj?';
-$lang['rss_update']            = 'Intertempo por Äisdatigi XML-an novaĵ-fluon (sek.)';
-$lang['rss_show_summary']      = 'XML-a novaĵ-fluo montras resumon en la titolo';
-$lang['rss_media']             = 'Kiaj Åangoj estu montrataj en la XML-fluo?';
-$lang['rss_media_o_both']      = 'ambaÅ­';
-$lang['rss_media_o_pages']     = 'paÄoj';
-$lang['updatecheck']           = 'Ĉu kontroli aktualigojn kaj sekurecajn avizojn? DokuWiki bezonas kontakti update.dokuwiki.org por tiu ĉi trajto.';
-$lang['userewrite']            = 'Uzi netajn URL-ojn';
-$lang['useslash']              = 'Uzi frakcistrekon kiel disigsignaĵon por nomspacoj en URL-oj';
-$lang['sepchar']               = 'Disigsignaĵo de vortoj en paÄnomoj';
-$lang['canonical']             = 'Uzi tute evidentajn URL-ojn';
-$lang['fnencode']              = 'Kodiga metodo por ne-ASCII-aj dosiernomoj.';
-$lang['autoplural']            = 'Kontroli pluralajn formojn en ligiloj';
-$lang['compression']           = 'Kompaktigmetodo por arkivaj dosieroj';
-$lang['gzip_output']           = 'Uzi gzip-an enhav-enkodigon por XHTML';
-$lang['compress']              = 'Kompaktigi CSS-ajn kaj ĵavaskriptajn elmetojn';
-$lang['cssdatauri']            = 'Grandeco en bitokoj, Äis kiom en CSS-dosieroj referencitaj bildoj enmetiÄu rekte en la stilfolion por malgrandigi vanan HTTP-kapan trafikon.
-<code>400</code> Äis <code>600</code> bitokoj estas bona grandeco. Indiku <code>0</code> por malebligi enmeton.';
-$lang['send404']               = 'Sendi la mesaÄon "HTTP 404/PaÄo ne trovita" por ne ekzistantaj paÄoj';
-$lang['broken_iua']            = 'Ĉu la funkcio "ignore_user_abort" difektas en via sistemo? Tio povus misfunkciigi la serĉindekson. IIS+PHP/CGI estas konata kiel fuÅaĵo. Vidu <a href="http://bugs.splitbrain.org/?do=details&amp;task_id=852">Cimon 852</a> por pli da informoj.';
-$lang['xsendfile']             = 'Ĉu uzi la kaplinion X-Sendfile por ebligi al la retservilo liveri fiksajn dosierojn? Via retservilo subtenu tion.';
-$lang['renderer_xhtml']        = 'Prezentilo por la ĉefa vikia rezulto (xhtml)';
-$lang['renderer__core']        = '%s (DokuWiki-a kerno)';
-$lang['renderer__plugin']      = '%s (kromaĵo)';
-$lang['dnslookups']            = 'DokuWiki rigardos servilajn nomojn por paÄmodifoj tra fremdaj IP-adresoj. Se vi havas malrapidan aÅ© nefunkciantan DNS-servilon aÅ© malÅatas tiun trajton, malebligu tiun opcion';
-$lang['proxy____host']         = 'Retservilnomo de la "Proxy"';
-$lang['proxy____port']         = 'Pordo ĉe la "Proxy"';
-$lang['proxy____user']         = 'Uzantonomo ĉe la "Proxy"';
-$lang['proxy____pass']         = 'Pasvorto ĉe la "Proxy"';
-$lang['proxy____ssl']          = 'Uzi SSL por konekti al la "Proxy"';
-$lang['proxy____except']       = 'Regula esprimo por URL-oj, kiujn la servilo preterrigardu.';
-$lang['safemodehack']          = 'Ebligi sekuran modon';
-$lang['ftp____host']           = 'FTP-a servilo por sekura modo';
-$lang['ftp____port']           = 'FTP-a pordo por sekura modo';
-$lang['ftp____user']           = 'FTP-a uzantonomo por sekura modo';
-$lang['ftp____pass']           = 'FTP-a pasvorto por sekura modo';
-$lang['ftp____root']           = 'FTP-a superuzanta (root) subdosierujo por sekura modo';
-$lang['license_o_']            = 'Nenio elektita';
-$lang['typography_o_0']        = 'nenio';
-$lang['typography_o_1']        = 'Nur duoblaj citiloj';
-$lang['typography_o_2']        = 'Ĉiaj citiloj (eble ne ĉiam funkcios)';
-$lang['userewrite_o_0']        = 'nenio';
-$lang['userewrite_o_1']        = '.htaccess';
-$lang['userewrite_o_2']        = 'Interne de DokuWiki';
-$lang['deaccent_o_0']          = 'ne';
-$lang['deaccent_o_1']          = 'forigi supersignojn';
-$lang['deaccent_o_2']          = 'latinigi';
-$lang['gdlib_o_0']             = 'GD-Lib ne disponeblas';
-$lang['gdlib_o_1']             = 'Versio 1.x';
-$lang['gdlib_o_2']             = 'AÅ­tomata detekto';
-$lang['rss_type_o_rss']        = 'RSS 0.91';
-$lang['rss_type_o_rss1']       = 'RSS 1.0';
-$lang['rss_type_o_rss2']       = 'RSS 2.0';
-$lang['rss_type_o_atom']       = 'Atom 0.3';
-$lang['rss_type_o_atom1']      = 'Atom 1.0';
-$lang['rss_content_o_abstract'] = 'Resumo';
-$lang['rss_content_o_diff']    = 'Unuigita "Diff"';
-$lang['rss_content_o_htmldiff'] = '"Diff"-tabelo formatita laÅ­ HTML';
-$lang['rss_content_o_html']    = 'Enhavo laÅ­ kompleta HTML-paÄo';
-$lang['rss_linkto_o_diff']     = 'diferenca rigardo';
-$lang['rss_linkto_o_page']     = 'la reviziita paÄo';
-$lang['rss_linkto_o_rev']      = 'listo de revizioj';
-$lang['rss_linkto_o_current']  = 'la aktuala paÄo';
-$lang['compression_o_0']       = 'nenio';
-$lang['compression_o_gz']      = 'gzip';
-$lang['compression_o_bz2']     = 'bz2';
-$lang['xsendfile_o_0']         = 'ne uzi';
-$lang['xsendfile_o_1']         = 'Propra kaplinio "lighttpd" (antaÅ­ versio 1.5)';
-$lang['xsendfile_o_2']         = 'Ordinara kaplinio X-Sendfile';
-$lang['xsendfile_o_3']         = 'Propra kaplinio Nginx X-Accel-Redirect';
-$lang['showuseras_o_loginname'] = 'Ensalut-nomo';
-$lang['showuseras_o_username'] = 'Kompleta nomo de uzanto';
-$lang['showuseras_o_email']    = 'Retadreso de uzanto (sekur-montrita laÅ­ agordo de nebuligo)';
-$lang['showuseras_o_email_link'] = 'Retadreso de uzanto kiel mailto:-ligilo';
-$lang['useheading_o_0']        = 'Neniam';
-$lang['useheading_o_navigation'] = 'Nur foliumado';
-$lang['useheading_o_content']  = 'Nur vikia enhavo';
-$lang['useheading_o_1']        = 'Ĉiam';
-$lang['readdircache']          = 'Maksimuma daÅ­ro de la dosieruja kaÅmemoro (sekundoj)';
diff --git a/wiki/lib/plugins/config/lang/es/intro.txt b/wiki/lib/plugins/config/lang/es/intro.txt
deleted file mode 100644
index 0b42c6b..0000000
--- a/wiki/lib/plugins/config/lang/es/intro.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-====== Administrador de configuración ======
-
-Usa esta página para controlar los parámetros de tu instalación de Dokuwiki. Ayuda sobre [[doku>config|parámetros individuales]]. Más detalles sobre este [[doku>plugin:config|plugin]].
-
-Los parámetros que se muestran sobre un fondo rosado están protegidos y no pueden ser modificados usando este plugin. Los parámetros que se muestran sobre un fondo azul tienen los valores por defecto, y los parámetros mostrados sobre un fondo blanco han sido establecidos para esta instalación en particular. Tanto los parámetros sobre fondo azul y los que están sobre fondo blanco pueden ser modificados.
-
-Recuerda cliquear el boton **Guardar** antes de abandonar la página, sino se perderán los cambios que hayas hecho.
diff --git a/wiki/lib/plugins/config/lang/es/lang.php b/wiki/lib/plugins/config/lang/es/lang.php
deleted file mode 100644
index 4d6647e..0000000
--- a/wiki/lib/plugins/config/lang/es/lang.php
+++ /dev/null
@@ -1,228 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Domingo Redal <docxml@gmail.com>
- * @author Miguel Pagano <miguel.pagano@gmail.com>
- * @author Oscar M. Lage <r0sk10@gmail.com>
- * @author Gabriel Castillo <gch@pumas.ii.unam.mx>
- * @author oliver <oliver@samera.com.py>
- * @author Enrico Nicoletto <liverig@gmail.com>
- * @author Manuel Meco <manuel.meco@gmail.com>
- * @author VictorCastelan <victorcastelan@gmail.com>
- * @author Jordan Mero <hack.jord@gmail.com>
- * @author Felipe Martinez <metalmartinez@gmail.com>
- * @author Javier Aranda <internet@javierav.com>
- * @author Zerial <fernando@zerial.org>
- * @author Marvin Ortega <maty1206@maryanlinux.com>
- * @author Daniel Castro Alvarado <dancas2@gmail.com>
- * @author Fernando J. Gómez <fjgomez@gmail.com>
- * @author Mauro Javier Giamberardino <mgiamberardino@gmail.com>
- * @author emezeta <emezeta@infoprimo.com>
- * @author Oscar Ciudad <oscar@jacho.net>
- * @author Ruben Figols <ruben.figols@gmail.com>
- * @author Gerardo Zamudio <gerardo@gerardozamudio.net>
- * @author Mercè López <mercelz@gmail.com>
- */
-$lang['menu']                  = 'Parámetros de configuración';
-$lang['error']                 = 'Los parámetros no han sido actualizados a causa de un valor inválido, por favor revise los cambios y re-envíe el formulario. <br /> Los valores incorrectos se mostrarán con un marco rojo alrededor.';
-$lang['updated']               = 'Los parámetros se actualizaron con éxito.';
-$lang['nochoice']              = '(no hay otras alternativas disponibles)';
-$lang['locked']                = 'El archivo de configuración no ha podido ser actualizado, si esto no es lo deseado, <br /> asegúrese que el nombre del archivo local de configuraciones y los permisos sean los correctos.';
-$lang['danger']                = 'Atención: Cambiar esta opción podría hacer inaccesible el wiki y su menú de configuración.';
-$lang['warning']               = 'Advertencia:  Cambiar esta opción podría causar comportamientos no deseados.';
-$lang['security']              = 'Advertencia de Seguridad: Cambiar esta opción podría representar un riesgo de seguridad.';
-$lang['_configuration_manager'] = 'Administrador de configuración';
-$lang['_header_dokuwiki']      = 'Parámetros de DokuWiki';
-$lang['_header_plugin']        = 'Parámetros de Plugin';
-$lang['_header_template']      = 'Parámetros de Plantillas';
-$lang['_header_undefined']     = 'Parámetros sin categoría';
-$lang['_basic']                = 'Parámetros Básicos';
-$lang['_display']              = 'Parámetros de Presentación';
-$lang['_authentication']       = 'Parámetros de Autenticación';
-$lang['_anti_spam']            = 'Parámetros Anti-Spam';
-$lang['_editing']              = 'Parámetros de Edición';
-$lang['_links']                = 'Parámetros de Enlaces';
-$lang['_media']                = 'Parámetros de Medios';
-$lang['_notifications']        = 'Configuración de notificaciones';
-$lang['_syndication']          = 'Configuración de sindicación';
-$lang['_advanced']             = 'Parámetros Avanzados';
-$lang['_network']              = 'Parámetros de Red';
-$lang['_msg_setting_undefined'] = 'Sin parámetros de metadata.';
-$lang['_msg_setting_no_class'] = 'Sin clase establecida.';
-$lang['_msg_setting_no_default'] = 'Sin valor por defecto.';
-$lang['title']                 = 'Título del wiki';
-$lang['start']                 = 'Nombre de la página inicial';
-$lang['lang']                  = 'Idioma';
-$lang['template']              = 'Plantilla';
-$lang['tagline']               = 'Lema (si la plantilla lo soporta)';
-$lang['sidebar']               = 'Nombre de la barra lateral (si la plantilla lo soporta), un campo vacío la desactiva';
-$lang['license']               = '¿Bajo qué licencia será liberado tu contenido?';
-$lang['savedir']               = 'Directorio para guardar los datos';
-$lang['basedir']               = 'Directorio de base';
-$lang['baseurl']               = 'URL de base';
-$lang['cookiedir']             = 'Ruta para las Cookie. Dejar en blanco para usar la ruta básica.';
-$lang['dmode']                 = 'Modo de creación de directorios';
-$lang['fmode']                 = 'Modo de creación de ficheros';
-$lang['allowdebug']            = 'Permitir debug <b>deshabilítelo si no lo necesita!</b>';
-$lang['recent']                = 'Cambios recientes';
-$lang['recent_days']           = 'Cuántos cambios recientes mantener (días)';
-$lang['breadcrumbs']           = 'Número de pasos de traza';
-$lang['youarehere']            = 'Traza jerárquica';
-$lang['fullpath']              = 'Mostrar ruta completa en el pie de página';
-$lang['typography']            = 'Realizar reemplazos tipográficos';
-$lang['dformat']               = 'Formato de fecha (ver la función de PHP <a href="http://php.net/strftime">strftime</a>)';
-$lang['signature']             = 'Firma';
-$lang['showuseras']            = 'Qué ver al mostrar el último usuario que editó una página';
-$lang['toptoclevel']           = 'Nivel superior para la tabla de contenidos';
-$lang['tocminheads']           = 'La cantidad mínima de titulares que determina si el TOC es construido';
-$lang['maxtoclevel']           = 'Máximo nivel para la tabla de contenidos';
-$lang['maxseclevel']           = 'Máximo nivel para edición de sección';
-$lang['camelcase']             = 'Usar CamelCase para enlaces';
-$lang['deaccent']              = 'Nombres de páginas "limpios"';
-$lang['useheading']            = 'Usar el primer encabezado para nombres de páginas';
-$lang['sneaky_index']          = 'Por defecto, DokuWiki mostrará todos los namespaces en el index. Habilitando esta opción los ocultará si el usuario no tiene permisos de lectura. Los sub-namespaces pueden resultar inaccesibles. El index puede hacerse poco usable dependiendo de las configuraciones ACL.';
-$lang['hidepages']             = 'Ocultar páginas con coincidencias (expresiones regulares)';
-$lang['useacl']                = 'Usar listas de control de acceso (ACL)';
-$lang['autopasswd']            = 'Autogenerar contraseñas';
-$lang['authtype']              = 'Método de Autenticación';
-$lang['passcrypt']             = 'Método de cifrado de contraseñas';
-$lang['defaultgroup']          = 'Grupo por defecto';
-$lang['superuser']             = 'Super-usuario - grupo ó usuario con acceso total a todas las páginas y funciones, configuraciones ACL';
-$lang['manager']               = 'Manager - grupo o usuario con acceso a ciertas tareas de mantenimiento';
-$lang['profileconfirm']        = 'Confirmar cambios en perfil con contraseña';
-$lang['rememberme']            = 'Permitir cookies para acceso permanente (recordarme)';
-$lang['disableactions']        = 'Deshabilitar acciones DokuWiki';
-$lang['disableactions_check']  = 'Controlar';
-$lang['disableactions_subscription'] = 'Suscribirse/Cancelar suscripción';
-$lang['disableactions_wikicode'] = 'Ver la fuente/Exportar en formato raw';
-$lang['disableactions_profile_delete'] = 'Borrar tu propia cuenta';
-$lang['disableactions_other']  = 'Otras acciones (separadas por coma)';
-$lang['disableactions_rss']    = 'Sindicación XML (RSS)';
-$lang['auth_security_timeout'] = 'Tiempo de Autenticación (en segundos), por motivos de seguridad';
-$lang['securecookie']          = 'Las cookies establecidas por HTTPS, ¿el naveagdor solo puede enviarlas por HTTPS? Inhabilite esta opción cuando solo se asegure con SSL la entrada, pero no la navegación de su wiki.';
-$lang['remote']                = 'Activar el sistema API remoto. Esto permite a otras aplicaciones acceder al wiki a traves de XML-RPC u otros mecanismos.';
-$lang['remoteuser']            = 'Restringir el acceso remoto por API a los grupos o usuarios separados por comas que se dan aquí. Dejar en blanco para dar acceso a todo el mundo.';
-$lang['usewordblock']          = 'Bloquear spam usando una lista de palabras';
-$lang['relnofollow']           = 'Usar rel="nofollow" en enlaces externos';
-$lang['indexdelay']            = 'Intervalo de tiempo antes de indexar (segundos)';
-$lang['mailguard']             = 'Ofuscar direcciones de correo electrónico';
-$lang['iexssprotect']          = 'Comprobar posible código malicioso (JavaScript ó HTML) en archivos subidos';
-$lang['usedraft']              = 'Guardar automáticamente un borrador mientras se edita';
-$lang['htmlok']                = 'Permitir HTML embebido';
-$lang['phpok']                 = 'Permitir PHP embebido';
-$lang['locktime']              = 'Edad máxima para archivos de bloqueo (segundos)';
-$lang['cachetime']             = 'Edad máxima para caché (segundos)';
-$lang['target____wiki']        = 'Ventana para enlaces internos';
-$lang['target____interwiki']   = 'Ventana para enlaces interwikis';
-$lang['target____extern']      = 'Ventana para enlaces externos';
-$lang['target____media']       = 'Ventana para enlaces a medios';
-$lang['target____windows']     = 'Ventana para enlaces a ventanas';
-$lang['mediarevisions']        = '¿Habilitar Mediarevisions?';
-$lang['refcheck']              = 'Control de referencia a medios';
-$lang['gdlib']                 = 'Versión de GD Lib';
-$lang['im_convert']            = 'Ruta a la herramienta de conversión de ImageMagick';
-$lang['jpg_quality']           = 'Calidad de compresión de JPG (0-100)';
-$lang['fetchsize']             = 'Tamaño máximo (bytes) que fetch.php puede descargar de sitios externos';
-$lang['subscribers']           = 'Habilitar soporte para suscripción a páginas';
-$lang['subscribe_time']        = 'Tiempo después que alguna lista de suscripción fue enviada (seg); Debe ser menor que el tiempo especificado en días recientes.';
-$lang['notify']                = 'Enviar notificación de cambios a esta dirección de correo electrónico';
-$lang['registernotify']        = 'Enviar información cuando se registran nuevos usuarios a esta dirección de correo electrónico';
-$lang['mailfrom']              = 'Dirección de correo electrónico para emails automáticos';
-$lang['mailreturnpath']        = 'Dirección de correo electrónico del destinatario para las notificaciones de no entrega';
-$lang['mailprefix']            = 'Asunto por defecto que se utilizará en mails automáticos.';
-$lang['htmlmail']              = 'Enviar correos electronicos en HTML con mejor aspecto pero mayor peso. Desactivar para enviar correos electronicos en texto plano.';
-$lang['sitemap']               = 'Generar sitemap de Google (días)';
-$lang['rss_type']              = 'Tipo de resumen (feed) XML';
-$lang['rss_linkto']            = 'Feed XML enlaza a';
-$lang['rss_content']           = '¿Qué mostrar en los items del archivo XML?';
-$lang['rss_update']            = 'Intervalo de actualización de feed XML (segundos)';
-$lang['rss_show_summary']      = 'Feed XML muestra el resumen en el título';
-$lang['rss_media']             = '¿Qué tipo de cambios deberían aparecer en el feed XML?';
-$lang['rss_media_o_both']      = 'ambos';
-$lang['rss_media_o_pages']     = 'páginas';
-$lang['rss_media_o_media']     = 'multimedia';
-$lang['updatecheck']           = '¿Comprobar actualizaciones y advertencias de seguridad? Esta característica requiere que DokuWiki se conecte a update.dokuwiki.org.';
-$lang['userewrite']            = 'Usar URLs bonitas';
-$lang['useslash']              = 'Usar barra (/) como separador de espacios de nombres en las URLs';
-$lang['sepchar']               = 'Separador de palabras en nombres de páginas';
-$lang['canonical']             = 'Usar URLs totalmente canónicas';
-$lang['fnencode']              = 'Método para codificar nombres de archivo no-ASCII.';
-$lang['autoplural']            = 'Controlar plurales en enlaces';
-$lang['compression']           = 'Método de compresión para archivos en el ático';
-$lang['gzip_output']           = 'Usar gzip Content-Encoding para xhtml';
-$lang['compress']              = 'Compactar la salida de CSS y javascript';
-$lang['cssdatauri']            = 'Tamaño en bytes hasta el cual las imágenes referenciadas en archivos CSS deberían ir incrustadas en la hoja de estilos para reducir el número de cabeceras de petición HTTP. ¡Esta técnica no funcionará en IE < 8! De <code>400</code> a <code>600</code> bytes es un valor adecuado. Establezca <code>0</code> para deshabilitarlo.';
-$lang['send404']               = 'Enviar "HTTP 404/Page Not Found" para páginas no existentes';
-$lang['broken_iua']            = '¿Se ha roto (broken) la función ignore_user_abort en su sistema? Esto puede causar que no funcione el index de búsqueda. Se sabe que IIS+PHP/CGI está roto. Vea <a href="http://bugs.splitbrain.org/?do=details&amp;task_id=852">Bug 852</a>para más información.';
-$lang['xsendfile']             = '¿Utilizar la cabecera X-Sendfile para permitirle al servidor web enviar archivos estáticos? Su servidor web necesita tener la capacidad para hacerlo.';
-$lang['renderer_xhtml']        = 'Visualizador a usar para salida (xhtml) principal del wiki';
-$lang['renderer__core']        = '%s (núcleo dokuwiki)';
-$lang['renderer__plugin']      = '%s (plugin)';
-$lang['search_nslimit']        = 'Limite la búsqueda a los actuales X espacios de nombres. Cuando se ejecuta una búsqueda desde una página dentro de un espacio de nombres más profundo, los primeros X espacios de nombres se agregarán como filtro';
-$lang['search_fragment']       = 'Especifique el comportamiento predeterminado de la búsqueda de fragmentos';
-$lang['search_fragment_o_exact'] = 'exacto';
-$lang['search_fragment_o_starts_with'] = 'comienza con';
-$lang['search_fragment_o_ends_with'] = 'termina con';
-$lang['search_fragment_o_contains'] = 'contiene';
-$lang['dnslookups']            = 'DokuWiki buscara los hostnames para usuarios editando las páginas con IP remota. Si usted tiene un servidor DNS bastante lento o que no funcione, favor de desactivar esta opción.';
-$lang['jquerycdn']             = '¿Deberían cargarse los ficheros de script jQuery y jQuery UI desde un CDN? Esto añade peticiones HTTP adicionales, pero los ficheros se pueden cargar más rápido y los usuarios pueden tenerlas ya almacenadas en caché.';
-$lang['jquerycdn_o_0']         = 'No CDN, sólo entrega local';
-$lang['jquerycdn_o_jquery']    = 'CDN en code.jquery.com';
-$lang['jquerycdn_o_cdnjs']     = 'CDN en cdnjs.com';
-$lang['proxy____host']         = 'Nombre del servidor Proxy';
-$lang['proxy____port']         = 'Puerto del servidor Proxy';
-$lang['proxy____user']         = 'Nombre de usuario para el servidor Proxy';
-$lang['proxy____pass']         = 'Contraseña para el servidor Proxy';
-$lang['proxy____ssl']          = 'Usar ssl para conectarse al servidor Proxy';
-$lang['proxy____except']       = 'Expresiones regulares para encontrar URLs que el proxy debería omitir.';
-$lang['safemodehack']          = 'Habilitar edición (hack) de modo seguro';
-$lang['ftp____host']           = 'Nombre del servidor FTP  para modo seguro';
-$lang['ftp____port']           = 'Puerto del servidor FTP  para modo seguro';
-$lang['ftp____user']           = 'Nombre de usuario para el servidor FTP para modo seguro';
-$lang['ftp____pass']           = 'Contraseña para el servidor FTP para modo seguro';
-$lang['ftp____root']           = 'Directorio raiz para el servidor FTP para modo seguro';
-$lang['license_o_']            = 'No se eligió ninguna';
-$lang['typography_o_0']        = 'ninguno';
-$lang['typography_o_1']        = 'Dobles comillas solamente';
-$lang['typography_o_2']        = 'Todas las comillas (puede ser que no siempre funcione)';
-$lang['userewrite_o_0']        = 'ninguno';
-$lang['userewrite_o_1']        = '.htaccess';
-$lang['userewrite_o_2']        = 'Interno de DokuWiki';
-$lang['deaccent_o_0']          = 'apagado';
-$lang['deaccent_o_1']          = 'eliminar tildes';
-$lang['deaccent_o_2']          = 'romanizar';
-$lang['gdlib_o_0']             = 'GD Lib no está disponible';
-$lang['gdlib_o_1']             = 'Versión 1.x';
-$lang['gdlib_o_2']             = 'Autodetección';
-$lang['rss_type_o_rss']        = 'RSS 0.91';
-$lang['rss_type_o_rss1']       = 'RSS 1.0';
-$lang['rss_type_o_rss2']       = 'RSS 2.0';
-$lang['rss_type_o_atom']       = 'Atom 0.3';
-$lang['rss_type_o_atom1']      = 'Atom 1.0';
-$lang['rss_content_o_abstract'] = 'Resumen';
-$lang['rss_content_o_diff']    = 'Diferencias unificadas';
-$lang['rss_content_o_htmldiff'] = 'Tabla de diferencias en formato HTML';
-$lang['rss_content_o_html']    = 'Página que solo contiene código HTML';
-$lang['rss_linkto_o_diff']     = 'ver las diferencias';
-$lang['rss_linkto_o_page']     = 'la página revisada';
-$lang['rss_linkto_o_rev']      = 'lista de revisiones';
-$lang['rss_linkto_o_current']  = 'la página actual';
-$lang['compression_o_0']       = 'ninguna';
-$lang['compression_o_gz']      = 'gzip';
-$lang['compression_o_bz2']     = 'bz2';
-$lang['xsendfile_o_0']         = 'no utilizar';
-$lang['xsendfile_o_1']         = 'Encabezado propietario de lighttpd (antes de la versión 1.5)';
-$lang['xsendfile_o_2']         = 'Encabezado X-Sendfile estándar';
-$lang['xsendfile_o_3']         = 'Encabezado propietario Nginx X-Accel-Redirect';
-$lang['showuseras_o_loginname'] = 'Nombre de entrada';
-$lang['showuseras_o_username'] = 'Nombre completo del usuario';
-$lang['showuseras_o_username_link'] = 'Nombre completo del usuario como enlace de usuario interwiki';
-$lang['showuseras_o_email']    = 'Dirección de correo electrónico del usuario (ofuscada según la configuración de "mailguard")';
-$lang['showuseras_o_email_link'] = 'Dirección de correo de usuario como enlace de envío de correo';
-$lang['useheading_o_0']        = 'Nunca';
-$lang['useheading_o_navigation'] = 'Solamente Navegación';
-$lang['useheading_o_content']  = 'Contenido wiki solamente';
-$lang['useheading_o_1']        = 'Siempre';
-$lang['readdircache']          = 'Tiempo máximo para la cache readdir (en segundos)';
diff --git a/wiki/lib/plugins/config/lang/et/lang.php b/wiki/lib/plugins/config/lang/et/lang.php
deleted file mode 100644
index cce679f..0000000
--- a/wiki/lib/plugins/config/lang/et/lang.php
+++ /dev/null
@@ -1,30 +0,0 @@
-<?php
-/**
- * Estonian language file
- *
- * @author kristian.kankainen@kuu.la
- * @author Rivo Zängov <eraser@eraser.ee>
- */
-$lang['menu']                  = 'Seadete haldamine';
-$lang['_configuration_manager'] = 'Seadete haldamine';
-$lang['_basic']                = 'Peamised seaded';
-$lang['_display']              = 'Näitamise seaded';
-$lang['_authentication']       = 'Audentimise seaded';
-$lang['_anti_spam']            = 'Spämmitõrje seaded';
-$lang['_editing']              = 'Muutmise seaded';
-$lang['_links']                = 'Lingi seaded';
-$lang['_media']                = 'Meedia seaded';
-$lang['_advanced']             = 'Laiendatud seaded';
-$lang['_network']              = 'Võrgu seaded';
-$lang['title']                 = 'Wiki pealkiri';
-$lang['template']              = 'Kujundus';
-$lang['recent']                = 'Viimased muudatused';
-$lang['signature']             = 'Allkiri';
-$lang['defaultgroup']          = 'Vaikimisi grupp';
-$lang['disableactions_check']  = 'Kontrolli';
-$lang['compression_o_0']       = 'pole';
-$lang['compression_o_gz']      = 'gzip';
-$lang['compression_o_bz2']     = 'bz2';
-$lang['xsendfile_o_0']         = 'ära kasuta';
-$lang['useheading_o_0']        = 'Mitte kunagi';
-$lang['useheading_o_1']        = 'Alati';
diff --git a/wiki/lib/plugins/config/lang/eu/intro.txt b/wiki/lib/plugins/config/lang/eu/intro.txt
deleted file mode 100644
index 17edb3e..0000000
--- a/wiki/lib/plugins/config/lang/eu/intro.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-====== Konfigurazio Kudeatzailea ======
-
-Erabili orri hau zure DokiWiki instalazioaren aukerak kontrolatzeko. Aukera zehatzei buruz laguntza eskuratzeko ikusi [[doku>config]]. Plugin honi buruzko xehetasun gehiago eskuratzeko ikusi [[doku>plugin:config]].
-
-Atzealde gorri argi batez erakusten diren aukerak babestuak daude eta ezin dira plugin honekin aldatu. Atzealde urdin batez erakusten diren aukerak balio lehenetsiak dira eta atzealde zuriz erakutsiak modu lokalean ezarriak izan dira instalazio honentzat. Aukera urdin eta zuriak aldatuak izan daitezke.
-
-Gogoratu **GORDE** botoia sakatzeaz orri hau utzi baino lehen, bestela zure aldaketak galdu egingo baitira.
diff --git a/wiki/lib/plugins/config/lang/eu/lang.php b/wiki/lib/plugins/config/lang/eu/lang.php
deleted file mode 100644
index b48df55..0000000
--- a/wiki/lib/plugins/config/lang/eu/lang.php
+++ /dev/null
@@ -1,185 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Inko Illarramendi <inko.i.a@gmail.com>
- * @author Zigor Astarbe <astarbe@gmail.com>
- * @author Osoitz <oelkoro@gmail.com>
- */
-$lang['menu']                  = 'Konfigurazio Ezarpenak';
-$lang['error']                 = 'Ezarpenak ez dira eguneratu balio oker bat dela eta, mesedez errepasatu aldaketak eta berriz bidali. <br />Balio okerra(k) ertz gorriz inguratuak erakutsiko dira. ';
-$lang['updated']               = 'Ezarpenak arrakastaz eguneratuak.';
-$lang['nochoice']              = '(ez dago beste aukerarik)';
-$lang['locked']                = 'Ezarpenen fitxategia ezin da eguneratu, eta intentzioa hau ez bada, <br />
-ziurtatu ezarpen lokalen izena eta baimenak zuzenak direla.';
-$lang['danger']                = 'Kontuz: Aukera hau aldatzeak zure wikia eta konfigurazio menua eskuraezin utzi dezake.';
-$lang['warning']               = 'Oharra: Aukera hau aldatzeak ustekabeko portaera bat sortu dezake.';
-$lang['security']              = 'Segurtasun Oharra: Aukera hau aldatzeak segurtasun arrisku bat sortu dezake.';
-$lang['_configuration_manager'] = 'Konfigurazio Kudeatzailea';
-$lang['_header_dokuwiki']      = 'DokuWiki Ezarpenak';
-$lang['_header_plugin']        = 'Plugin Ezarpenak';
-$lang['_header_template']      = 'Txantiloi Ezarpenak';
-$lang['_header_undefined']     = 'Zehaztu gabeko Ezarpenak';
-$lang['_basic']                = 'Oinarrizko Ezarpenak';
-$lang['_display']              = 'Aurkezpen Ezarpenak';
-$lang['_authentication']       = 'Kautotze Ezarpenak';
-$lang['_anti_spam']            = 'Anti-Spam Ezarpenak';
-$lang['_editing']              = 'Edizio Ezarpenak';
-$lang['_links']                = 'Esteken Ezarpenak';
-$lang['_media']                = 'Multimedia Ezarpenak';
-$lang['_notifications']        = 'Abisuen ezarpenak';
-$lang['_syndication']          = 'Sindikazio ezarpenak';
-$lang['_advanced']             = 'Ezarpen Aurreratuak';
-$lang['_network']              = 'Sare Ezarpenak';
-$lang['_msg_setting_undefined'] = 'Ezarpen metadaturik ez.';
-$lang['_msg_setting_no_class'] = 'Ezarpen klaserik ez.';
-$lang['_msg_setting_no_default'] = 'Balio lehenetsirik ez.';
-$lang['title']                 = 'Wiki-aren izenburua';
-$lang['start']                 = 'Hasiera orriaren izena';
-$lang['lang']                  = 'Hizkuntza';
-$lang['template']              = 'Txantiloia';
-$lang['license']               = 'Zein lizentziapean argitaratu beharko lirateke edukiak?';
-$lang['savedir']               = 'Datuak gordetzeko direktorioa';
-$lang['basedir']               = 'Oinarri direktorioa';
-$lang['baseurl']               = 'Oinarri URLa';
-$lang['dmode']                 = 'Direktorio sortze modua';
-$lang['fmode']                 = 'Fitxategi sortze modua';
-$lang['allowdebug']            = 'Baimendu debug-a <b>ezgaitu behar ez bada!</b>';
-$lang['recent']                = 'Azken aldaketak';
-$lang['recent_days']           = 'Zenbat azken aldaketa gordeko dira (egunak)';
-$lang['breadcrumbs']           = 'Arrasto pauso kopurua';
-$lang['youarehere']            = 'Arrasto pauso hierarkikoak';
-$lang['fullpath']              = 'Orri oinean orrien bide osoa erakutsi';
-$lang['typography']            = 'Ordezkapen tipografikoak egin';
-$lang['dformat']               = 'Data formatua (ikusi PHPren <a href="http://php.net/strftime">strftime</a> funtzioa)';
-$lang['signature']             = 'Sinadura';
-$lang['showuseras']            = 'Zer azaldu orri bat editatu duen azken erabiltzailea erakusterakoan';
-$lang['toptoclevel']           = 'Eduki taularen goiko maila';
-$lang['tocminheads']           = 'Gutxiengo izenburu kopuru minimoa Edukien Taula-ren sortu dadin.';
-$lang['maxtoclevel']           = 'Eduki taularen maila maximoa';
-$lang['maxseclevel']           = 'Sekzio edizio mailaren maximoa';
-$lang['camelcase']             = 'Estekentzat CamelCase erabili';
-$lang['deaccent']              = 'Orri izen garbiak';
-$lang['useheading']            = 'Erabili lehen izenburua orri izen moduan';
-$lang['sneaky_index']          = 'Lehenespenez, DokuWiki-k izen-espazio guztiak indize bistan erakutsiko ditu. Aukera hau gaituta, erabiltzaieak irakurtzeko baimenik ez dituen izen-espazioak ezkutatuko dira. Honek atzigarriak diren azpi izen-espazioak ezkutatzen ditu. Agian honek indizea erabili ezin ahal izatea eragingo du AKL ezarpen batzuetan.';
-$lang['hidepages']             = 'Ezkutatu kointzidentziak dituzten orriak (espresio erregularrak)';
-$lang['useacl']                = 'Erabili atzipen kontrol listak';
-$lang['autopasswd']            = 'Pasahitzak automatikoki sortu';
-$lang['authtype']              = 'Kautotze backend-a';
-$lang['passcrypt']             = 'Pasahitz enkriptatze metodoa';
-$lang['defaultgroup']          = 'Talde lehenetsia';
-$lang['superuser']             = 'Supererabiltzailea - taldea, erabiltzailea edo komaz bereiztutako zerrenda user1,@group1,user2 orri eta funtzio guztietara atzipen osoarekin, AKL-ren ezarpenetan zehaztutakoa kontutan hartu gabe';
-$lang['manager']               = 'Kudeatzailea - talde, erabiltzaile edo komaz bereiztutako zerrenda user1,@group1,user2 kudeatze funtzio zehatz batzuetara atzipenarekin';
-$lang['profileconfirm']        = 'Profil aldaketak pasahitzaz berretsi';
-$lang['rememberme']            = 'Baimendu saio hasiera cookie iraunkorrak (gogoratu iezaidazu)';
-$lang['disableactions']        = 'DokuWiki ekintzak ezgaitu';
-$lang['disableactions_check']  = 'Egiaztatu';
-$lang['disableactions_subscription'] = 'Harpidetu/Harpidetza utzi';
-$lang['disableactions_wikicode'] = 'Ikusi iturburua/Esportatu Raw';
-$lang['disableactions_other']  = 'Beste ekintzak (komaz bereiztuak)';
-$lang['auth_security_timeout'] = 'Kautotze Segurtasun Denbora-Muga (segunduak)';
-$lang['securecookie']          = 'HTTPS bidez ezarritako cookie-ak HTTPS bidez bakarrik bidali beharko lituzke nabigatzaileak? Ezgaitu aukera hau bakarrik saio hasierak SSL bidezko segurtasuna badu baina wiki-areb nabigazioa modu ez seguruan egiten bada. ';
-$lang['usewordblock']          = 'Blokeatu spam-a hitz zerrenda batean oinarrituta';
-$lang['relnofollow']           = 'Erabili rel="nofollow" kanpo esteketan';
-$lang['indexdelay']            = 'Denbora atzerapena indexatu baino lehen (seg)';
-$lang['mailguard']             = 'Ezkutatu posta-e helbidea';
-$lang['iexssprotect']          = 'Egiaztatu igotako fitxategiak JavaScript edo HTML kode maltzurra detektatzeko';
-$lang['usedraft']              = 'Automatikoki zirriborroa gorde editatze garaian';
-$lang['htmlok']                = 'Enbotatutako HTMLa baimendu';
-$lang['phpok']                 = 'Enbotatutako PHPa baimendu';
-$lang['locktime']              = 'Adin maximoa lock fitxategientzat (seg)';
-$lang['cachetime']             = 'Adin maximoa cachearentzat (seg)';
-$lang['target____wiki']        = 'Barne estekentzat helburu leihoa';
-$lang['target____interwiki']   = 'Interwiki estekentzat helburu leihoa';
-$lang['target____extern']      = 'Kanpo estekentzat helburu leihoa';
-$lang['target____media']       = 'Multimedia estekentzat helburu leihoa';
-$lang['target____windows']     = 'Leihoen estekentzat helburu leihoa';
-$lang['mediarevisions']        = 'Media rebisioak gaitu?';
-$lang['refcheck']              = 'Multimedia erreferentzia kontrolatu';
-$lang['gdlib']                 = 'GD Lib bertsioa';
-$lang['im_convert']            = 'ImageMagick-en aldaketa tresnara bidea';
-$lang['jpg_quality']           = 'JPG konprimitze kalitatea (0-100)';
-$lang['fetchsize']             = 'Kanpo esteketatik fetch.php-k deskargatu dezakeen tamaina maximoa (byteak)';
-$lang['subscribers']           = 'Gaitu orri harpidetza euskarria';
-$lang['subscribe_time']        = 'Harpidetza zerrendak eta laburpenak bidali aurretik pasa beharreko denbora (seg); Denbora honek, recent_days-en ezarritakoa baino txikiagoa behar luke.';
-$lang['notify']                = 'Aldaketen jakinarazpenak posta-e helbide honetara bidali';
-$lang['registernotify']        = 'Erregistratu berri diren erabiltzaileei buruzko informazioa post-e helbide honetara bidali';
-$lang['mailfrom']              = 'Posta automatikoentzat erabiliko den posta-e helbidea';
-$lang['mailprefix']            = 'Posta automatikoen gaientzat erabili beharreko aurrizkia';
-$lang['sitemap']               = 'Sortu Google gune-mapa (egunak)';
-$lang['rss_type']              = 'XML jario mota';
-$lang['rss_linkto']            = 'XML jarioak hona estekatzen du';
-$lang['rss_content']           = 'Zer erakutsi XML jarioetan?';
-$lang['rss_update']            = 'XML jarioaren eguneratze tartea (seg)';
-$lang['rss_show_summary']      = 'XML jarioak laburpena erakusten du izenburuan';
-$lang['updatecheck']           = 'Konprobatu eguneratze eta segurtasun oharrak? DokuWiki-k honetarako update.dokuwiki.org kontaktatu behar du.';
-$lang['userewrite']            = 'Erabili URL politak';
-$lang['useslash']              = 'Erabili barra (/) izen-espazio banatzaile moduan URLetan';
-$lang['sepchar']               = 'Orri izenaren hitz banatzailea';
-$lang['canonical']             = 'Erabili URL erabat kanonikoak';
-$lang['fnencode']              = 'Non-ASCII fitxategi izenak kodetzeko metodoa.';
-$lang['autoplural']            = 'Kontrolatu forma pluralak esteketan';
-$lang['compression']           = 'Trinkotze metodoa attic fitxategientzat';
-$lang['gzip_output']           = 'Gzip Eduki-Kodeketa erabili xhtml-rentzat';
-$lang['compress']              = 'Trinkotu CSS eta javascript irteera';
-$lang['send404']               = 'Bidali "HTTP 404/Ez Da Orria Aurkitu" existitzen ez diren orrientzat';
-$lang['broken_iua']            = 'Zure sisteman ignore_user_abort (erabiltzailearen bertan behera uztea kontuan ez hartu) funtzioa hautsia al dago? Honek funtzionatzen ez duen bilaketa indize bat eragin dezake. ISS+PHP/CGI hautsiak daude. Ikusi <a href="http://bugs.splitbrain.org/?do=details&amp;task_id=852">Bug 852</a> informazio gehiago jasotzeko.';
-$lang['xsendfile']             = 'X-Sendfile goiburua erabili web zerbitzariari fitxategi estatikoak bidaltzen uzteko? Zure web zerbitzariak hau ahalbidetuta eduki beharko du.';
-$lang['renderer_xhtml']        = 'Erabiliko den errenderizatzailea wiki irteera (xhtml) nagusiarentzat';
-$lang['renderer__core']        = '%s (dokuwiki-ren nukleoa)';
-$lang['renderer__plugin']      = '%s (plugina)';
-$lang['proxy____host']         = 'Proxy zerbitzari izena';
-$lang['proxy____port']         = 'Proxy portua';
-$lang['proxy____user']         = 'Proxyaren erabiltzaile izena';
-$lang['proxy____pass']         = 'Proxyaren pasahitza ';
-$lang['proxy____ssl']          = 'Erabili SSL Proxyra konektatzeko';
-$lang['proxy____except']       = 'URLak detektatzeko espresio erregularra, zeinentzat Proxy-a sahiestu beharko litzatekeen.';
-$lang['safemodehack']          = 'Gaitu modu segurua hack-a';
-$lang['ftp____host']           = 'FTP zerbitzaria modu seguruarentzat';
-$lang['ftp____port']           = 'FTP portua modu seguruarentzat';
-$lang['ftp____user']           = 'FTP erabiltzailea modu seguruarentzat';
-$lang['ftp____pass']           = 'FTP pasahitza modu seguruarentzat';
-$lang['ftp____root']           = 'FTP erro direktorioa modu seguruarentzat';
-$lang['license_o_']            = 'Bat ere ez hautaturik';
-$lang['typography_o_0']        = 'ezer';
-$lang['typography_o_1']        = 'Komatxo bikoitzak bakarrik';
-$lang['typography_o_2']        = 'Komatxo guztiak (gerta daiteke beti ez funtzionatzea)';
-$lang['userewrite_o_0']        = 'ezer';
-$lang['userewrite_o_1']        = '.htaccess';
-$lang['userewrite_o_2']        = 'DokuWikiren barnekoa';
-$lang['deaccent_o_0']          = 'Izalita';
-$lang['deaccent_o_1']          = 'azentu-markak kendu';
-$lang['deaccent_o_2']          = 'erromanizatu ';
-$lang['gdlib_o_0']             = 'GD Lib ez dago eskuragarri';
-$lang['gdlib_o_1']             = '1.x bertsioa';
-$lang['gdlib_o_2']             = 'Automatikoki detektatu';
-$lang['rss_type_o_rss']        = 'RSS 0.91';
-$lang['rss_type_o_rss1']       = 'RSS 1.0';
-$lang['rss_type_o_rss2']       = 'RSS 2.0';
-$lang['rss_type_o_atom']       = 'Atom 0.3';
-$lang['rss_type_o_atom1']      = 'Atom 1.0';
-$lang['rss_content_o_abstract'] = 'Laburpena';
-$lang['rss_content_o_diff']    = 'Bateratutako Diferentziak';
-$lang['rss_content_o_htmldiff'] = 'HTML formatuko diferentzia taula';
-$lang['rss_content_o_html']    = 'Orri edukia guztiz HTML';
-$lang['rss_linkto_o_diff']     = 'Desberdintasunak ikusi';
-$lang['rss_linkto_o_page']     = 'Berrikusitako orria';
-$lang['rss_linkto_o_rev']      = 'Berrikuspen zerrenda';
-$lang['rss_linkto_o_current']  = 'Uneko orria';
-$lang['compression_o_0']       = 'ezer';
-$lang['compression_o_gz']      = 'gzip';
-$lang['compression_o_bz2']     = 'bz2';
-$lang['xsendfile_o_0']         = 'ez erabili';
-$lang['xsendfile_o_1']         = 'Jabegodun lighttpd goiburua (1.5 bertsioa baino lehen)';
-$lang['xsendfile_o_2']         = 'X-Sendfile goiburu estandarra';
-$lang['xsendfile_o_3']         = 'Jabegodun Nginx X-Accel-Redirect goiburua';
-$lang['showuseras_o_loginname'] = 'Saio izena';
-$lang['showuseras_o_username'] = 'Erabiltzailearen izen osoa';
-$lang['showuseras_o_email']    = 'Erabiltzailearen posta-e helbidea (ezkutatua posta babeslearen aukeren arabera)';
-$lang['showuseras_o_email_link'] = 'Erabiltzailearen posta-e helbidea mailto: esteka moduan';
-$lang['useheading_o_0']        = 'Inoiz';
-$lang['useheading_o_navigation'] = 'Nabigazioa Bakarrik';
-$lang['useheading_o_content']  = 'Wiki Edukia Bakarrik';
-$lang['useheading_o_1']        = 'Beti';
-$lang['readdircache']          = 'Aintzintasun maximoa readdir cache-rentzat (seg)';
diff --git a/wiki/lib/plugins/config/lang/fa/intro.txt b/wiki/lib/plugins/config/lang/fa/intro.txt
deleted file mode 100644
index 31bbaea..0000000
--- a/wiki/lib/plugins/config/lang/fa/intro.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-====== تنظیمات پیکربندی ======
-
-از این ØµÙØ­Ù‡ برای مدیریت تنظیمات DokuWiki Ø§Ø³ØªÙØ§Ø¯Ù‡ کنید. برای راهنمایی بیش‌تر به [[doku>config]] مراجعه نماید.
-برای جزییات در مورد این Ø§ÙØ²ÙˆÙ†Ù‡ نیز می‌توانید به [[doku>plugin:config]] مراجعه کنید.
-
-تنظیماتی Ú©Ù‡ با پیش‌زمینه‌ی قرمز مشخص شده‌اند، غیرقابل تغییر می‌باشند. تنظیماتی Ú©Ù‡ به پیش‌زمینه‌ی آبی مشخص شده‌اند نیز حامل مقادیر Ù¾ÛŒØ´â€ŒÙØ±Ø¶ می‌باشند Ùˆ تنظیماتی Ú©Ù‡ پیش‌زمینه‌ی سÙید دارند به طور محلی برای این سیستم تنظیم شده‌اند. تمامی مقادیر آبی Ùˆ سÙید قابلیت تغییر دارند.
-
-به یاد داشته باشید Ú©Ù‡ قبل از ترک ØµÙØ­Ù‡ØŒ دکمه‌ی **ذخیره** را Ø¨ÙØ´Ø§Ø±ÛŒØ¯ØŒ در غیر این صورت تنظیمات شما از بین خواهد Ø±ÙØª.
diff --git a/wiki/lib/plugins/config/lang/fa/lang.php b/wiki/lib/plugins/config/lang/fa/lang.php
deleted file mode 100644
index 72bbbe1..0000000
--- a/wiki/lib/plugins/config/lang/fa/lang.php
+++ /dev/null
@@ -1,204 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author behrad eslamifar <behrad_es@yahoo.com)
- * @author Mohsen Firoozmandan <info@mambolearn.com>
- * @author omidmr@gmail.com
- * @author Omid Mottaghi <omidmr@gmail.com>
- * @author Mohammad Reza Shoaei <shoaei@gmail.com>
- * @author Milad DZand <M.DastanZand@gmail.com>
- * @author AmirH Hassaneini <mytechmix@gmail.com>
- * @author Mohmmad Razavi <sepent@gmail.com>
- * @author Masoud Sadrnezhaad <masoud@sadrnezhaad.ir>
- * @author sam01 <m.sajad079@gmail.com>
- */
-$lang['menu']                  = 'تنظیمات پیکر‌بندی';
-$lang['error']                 = 'به دلیل ایراد در مقادیر وارد شده، تنظیمات اعمال نشد، خواهشمندیم تغییرات را مجددن کنترل نمایید و دوباره ارسال کنید.<br/> مقادیر مشکل‌دار با کادر قرمز مشخص شده‌اند.';
-$lang['updated']               = 'تنظیمات با موÙقیت به روز رسانی شد.';
-$lang['nochoice']              = '(گزینه‌های دیگری موجود نیست)';
-$lang['locked']                = 'تنظیمات قابلیت به روز رسانی ندارند، اگر نباید چنین باشد، <br/> نام ÙØ§ÛŒÙ„ تنظیمات Ùˆ دسترسی‌های آن را بررسی کنید.';
-$lang['danger']                = 'خطر: ممکن است با تغییر این گزینه دسترسی به منوی تنظیمات قطع شود.';
-$lang['warning']               = 'هشدار: ممکن است با تغییر این گزینه Ø±ÙØªØ§Ø±Ù‡Ø§ÛŒ غیرمترقبه‌ای مشاهده کنید.';
-$lang['security']              = 'هشدار امنیتی: تغییر این گزینه ممکن است با خطرات امنیتی همراه باشد.';
-$lang['_configuration_manager'] = 'مدیریت تنظیمات';
-$lang['_header_dokuwiki']      = 'تنظیمات DokuWiki';
-$lang['_header_plugin']        = 'تنظیمات Ø§ÙØ²ÙˆÙ†Ù‡';
-$lang['_header_template']      = 'تنظیمات قالب';
-$lang['_header_undefined']     = 'تنظیمات تعری٠نشده';
-$lang['_basic']                = 'تنظیمات مقدماتی';
-$lang['_display']              = 'تنظیمات نمایش';
-$lang['_authentication']       = 'تنظیمات معتبرسازی';
-$lang['_anti_spam']            = 'تنظیمات ضد-اسپم';
-$lang['_editing']              = 'تنظیمات ویرایش';
-$lang['_links']                = 'تنظیمات پیوند';
-$lang['_media']                = 'تنظیمات رسانه‌ها (ÙØ§ÛŒÙ„‌ها)';
-$lang['_notifications']        = 'تنظیمات آگاه سازی';
-$lang['_syndication']          = 'تنظیمات پیوند';
-$lang['_advanced']             = 'تنظیمات Ù¾ÛŒØ´Ø±ÙØªÙ‡';
-$lang['_network']              = 'تنظیمات شبکه';
-$lang['_msg_setting_undefined'] = 'داده‌نمایی برای تنظیمات وجود ندارد';
-$lang['_msg_setting_no_class'] = 'هیچ دسته‌ای برای تنظیمات وجود ندارد.';
-$lang['_msg_setting_no_default'] = 'بدون مقدار Ù¾ÛŒØ´â€ŒÙØ±Ø¶';
-$lang['title']                 = 'عنوان ویکی';
-$lang['start']                 = 'نام ØµÙØ­Ù‡â€ŒÛŒ آغازین';
-$lang['lang']                  = 'زبان';
-$lang['template']              = 'قالب';
-$lang['tagline']               = 'خط تگ (اگر قالب از آن پشتیبانی می کند)';
-$lang['sidebar']               = 'نام نوار ØµÙØ­Ù‡ کناری (اگر قالب از آن پشتیبانی Ù…ÛŒ کند) ØŒ Ùیلد خالی نوار کناری غیر ÙØ¹Ø§Ù„ خواهد کرد.';
-$lang['license']               = 'لایسنس مطالب ویکی';
-$lang['savedir']               = 'شاخه‌ی ذخیره‌سازی داده‌ها';
-$lang['basedir']               = 'شاخه‌ی اصلی';
-$lang['baseurl']               = 'آدرس اصلی';
-$lang['cookiedir']             = 'مسیر Ú©ÙˆÚ©ÛŒ ها. برای Ø§Ø³ØªÙØ§Ø¯Ù‡ از آدرس پایه ØŒ آن را خالی بگذارید.';
-$lang['dmode']                 = 'زبان';
-$lang['fmode']                 = 'دسترسی Ù¾ÛŒØ´â€ŒÙØ±Ø¶ ÙØ§ÛŒÙ„‌ها در زمان ایجاد';
-$lang['allowdebug']            = 'امکان کرم‌زدایی (debug) <b>اگر نیازی ندارید، ØºÛŒØ±ÙØ¹Ø§Ù„ کنید</b>';
-$lang['recent']                = 'تغییرات اخیر';
-$lang['recent_days']           = 'چند تغییر در خوراک نمایش داده شود به روز';
-$lang['breadcrumbs']           = 'تعداد ردپاها';
-$lang['youarehere']            = 'ردپای درختی';
-$lang['fullpath']              = 'نمایش دادن مسیر کامل ØµÙØ­Ø§Øª در پایین ØµÙØ­Ù‡';
-$lang['typography']            = 'جای‌گزاری متن‌ها انجام شود';
-$lang['dformat']               = 'ÙØ±Ù…ت تاریخ (راهنمای تابع <a href="http://php.net/strftime">strftime</a> را مشاهده کنید)';
-$lang['signature']             = 'امضا';
-$lang['showuseras']            = 'چگونه آخرین کاربر ویرایش کننده، یک ØµÙØ­Ù‡ نمایش داده شود';
-$lang['toptoclevel']           = 'بیشترین عمق برای «Ùهرست مطالب»';
-$lang['tocminheads']           = 'حداقل مقدار عنوان‌های یک ØµÙØ­Ù‡ØŒ برای تشخیص این‌که «Ùهرست مطالب» (TOC) ایجاد شود';
-$lang['maxtoclevel']           = 'حداکثر عمق «Ùهرست مطالب»';
-$lang['maxseclevel']           = 'بیش‌ترین سطح ویرایش بخش‌ها';
-$lang['camelcase']             = 'از «حالت شتری» (CamelCase) برای پیوندها Ø§Ø³ØªÙØ§Ø¯Ù‡ شود';
-$lang['deaccent']              = 'تمیز کردن نام ØµÙØ­Ø§Øª';
-$lang['useheading']            = 'Ø§Ø³ØªÙØ§Ø¯Ù‡ از اولین عنوان برای نام ØµÙØ­Ù‡';
-$lang['sneaky_index']          = 'به طور Ù¾ÛŒØ´â€ŒÙØ±Ø¶ØŒ دوکوویکی در Ùهرست تمامی ÙØ¶Ø§ÛŒâ€ŒÙ†Ø§Ù…‌ها را نمایش می‌دهد. ÙØ¹Ø§Ù„ کردن این گزینه، مواردی را Ú©Ù‡ کاربر حق خواندنشان را ندارد مخÙÛŒ می‌کند. این گزینه ممکن است باعث دیده نشدن Ø²ÛŒØ±ÙØ¶Ø§ÛŒâ€ŒÙ†Ø§Ù…‌هایی شود Ú©Ù‡ دسترسی خواندن به آن‌ها وجود دارد. Ùˆ ممکن است باعث شود Ú©Ù‡ Ùهرست در حالاتی از دسترسی‌ها، غیرقابل Ø§Ø³ØªÙØ§Ø¯Ù‡ شود.';
-$lang['hidepages']             = 'مخÙÛŒ کردن ØµÙØ­Ø§Øª با ÙØ±Ù…ت زیر (از عبارات منظم Ø§Ø³ØªÙØ§Ø¯Ù‡ شود)';
-$lang['useacl']                = 'Ø§Ø³ØªÙØ§Ø¯Ù‡ از مدیریت دسترسی‌ها';
-$lang['autopasswd']            = 'ایجاد خودکار گذرواژه‌ها';
-$lang['authtype']              = 'روش معتبرسازی';
-$lang['passcrypt']             = 'روش کد کردن گذرواژه';
-$lang['defaultgroup']          = 'گروه Ù¾ÛŒØ´â€ŒÙØ±Ø¶';
-$lang['superuser']             = 'کاربر اصلی - گروه، کاربر یا لیستی Ú©Ù‡ توسط ویرگول جدا شده از کاربرها Ùˆ گروه‌ها (مثل user1,@group1,user2) با دسترسی کامل به همه‌ی ØµÙØ­Ø§Øª Ùˆ امکانات سیستم، ÙØ§Ø±Øº از دسترسی‌های آن کاربر.';
-$lang['manager']               = 'مدیر - گروه، کاربر یا لیستی Ú©Ù‡ توسط ویرگول جدا شده از کاربرها Ùˆ گروه‌ها (مثل user1,@group1,user2) با دسترسی‌های خاص به بخش‌های Ù…ØªÙØ§ÙˆØª';
-$lang['profileconfirm']        = 'تغییرات Ù¾Ø±ÙˆÙØ§ÛŒÙ„ با وارد کردن گذرواژه تایید شود';
-$lang['rememberme']            = 'امکان ورود دایم، توسط کوکی، وجود داشته باشد (مرا به خاطر بسپار)';
-$lang['disableactions']        = 'ØºÛŒØ±ÙØ¹Ø§Ù„ کردن ÙØ¹Ø§Ù„یت‌های دوکوویکی';
-$lang['disableactions_check']  = 'بررسی';
-$lang['disableactions_subscription'] = 'عضویت/عدم عضویت';
-$lang['disableactions_wikicode'] = 'نمایش سورس/برون‌بری خام';
-$lang['disableactions_profile_delete'] = 'حذ٠حساب کاربری خود.';
-$lang['disableactions_other']  = 'ÙØ¹Ø§Ù„یت‌های دیگر (با ویرگول انگلیسی «,» از هم جدا کنید)';
-$lang['disableactions_rss']    = 'خبرخوان (RSS)';
-$lang['auth_security_timeout'] = 'زمان انقضای معتبرسازی به ثانیه';
-$lang['securecookie']          = 'آیا کوکی‌ها باید با قرارداد HTTPS ارسال شوند؟ این گزینه را زمانی Ú©Ù‡ Ùقط ØµÙØ­Ù‡â€ŒÛŒ ورود ویکی‌تان با SSL امن شده است، اما ویکی را ناامن مرور می‌کنید، ØºÛŒØ±ÙØ¹Ø§Ù„ نمایید.';
-$lang['remote']                = 'سیستم API راه دور را ÙØ¹Ø§Ù„ کنید . این به سایر کاربردها اجازه Ù…ÛŒ دهد Ú©Ù‡ به ویکی از طریق XML-RPC یا سایر مکانیزم ها دسترسی داشته باشند.';
-$lang['remoteuser']            = 'محدود کردن دسترسی API راه دور به گروه های جدا شده با ویرگول یا کاربران داده شده در این جا. برای دادن دسترسی به همه این Ùیلد را خالی بگذارید.';
-$lang['usewordblock']          = 'اسپم‌ها را براساس لیست کلمات مسدود کن';
-$lang['relnofollow']           = 'از «rel=nofollow» در پیوندهای خروجی Ø§Ø³ØªÙØ§Ø¯Ù‡ شود';
-$lang['indexdelay']            = 'مقدار تاخیر پیش از Ùهرست‌بندی (ثانیه)';
-$lang['mailguard']             = 'مبهم کردن آدرس‌های ایمیل';
-$lang['iexssprotect']          = 'بررسی کردن ÙØ§ÛŒÙ„‌های ارسال شده را برای کدهای HTML یا JavaScript مخرب';
-$lang['usedraft']              = 'ایجاد خودکار چرک‌نویس در زمان نگارش';
-$lang['htmlok']                = 'امکان Ø§ÙØ²ÙˆØ¯Ù† HTML باشد';
-$lang['phpok']                 = 'امکان Ø§ÙØ²ÙˆØ¯Ù† PHP باشد';
-$lang['locktime']              = 'بیشینه‌ی زمان Ù‚ÙÙ„ شدن ÙØ§ÛŒÙ„‌ها به ثانیه';
-$lang['cachetime']             = 'بیشینه‌ی زمان Ø­Ø§ÙØ¸Ù‡â€ŒÛŒ موقت (cache) به ثانیه';
-$lang['target____wiki']        = 'پنجره‌ی هد٠در پیوند‌های داخلی';
-$lang['target____interwiki']   = 'پنجره‌ی هد٠در پیوند‌های داخل ویکی';
-$lang['target____extern']      = 'پنجره‌ی هد٠در پیوند‌های خارجی';
-$lang['target____media']       = 'پنجره‌ی هد٠در پیوند‌های رسانه‌ها';
-$lang['target____windows']     = 'پنجره‌ی هد٠در پیوند‌های پنجره‌ای';
-$lang['mediarevisions']        = 'تجدید نظر رسانه ØŒ ÙØ¹Ø§Ù„ØŸ';
-$lang['refcheck']              = 'بررسی کردن مرجع رسانه‌ها';
-$lang['gdlib']                 = 'نگارش کتاب‌خانه‌ی GD';
-$lang['im_convert']            = 'مسیر ابزار convert از برنامه‌ی ImageMagick';
-$lang['jpg_quality']           = 'Ú©ÛŒÙیت ÙØ´Ø±Ø¯Ù‡ سازی JPEG (از 0 تا 100)';
-$lang['fetchsize']             = 'بیشینه‌ی حجمی Ú©Ù‡ ÙØ§ÛŒÙ„ fetch.php می‌تواند Ø¯Ø±ÛŒØ§ÙØª کند (به بایت)';
-$lang['subscribers']           = 'توانایی عضویت در ØµÙØ­Ø§Øª باشد';
-$lang['subscribe_time']        = 'زمان مورد نیاز برای ارسال خبر نامه ها (ثانیه); این مقدار می بایست کمتر زمانی باشد که در recent_days تعری٠شده است.';
-$lang['notify']                = 'تغییرات به این ایمیل ارسال شود';
-$lang['registernotify']        = 'اطلاعات کاربران تازه وارد به این ایمیل ارسال شود';
-$lang['mailfrom']              = 'آدرس ایمیلی Ú©Ù‡ برای ایمیل‌های خودکار Ø§Ø³ØªÙØ§Ø¯Ù‡ می‌شود';
-$lang['mailprefix']            = 'پیشوند تیتر ایمیل (جهت ایمیل های خودکار)';
-$lang['htmlmail']              = 'ÙØ±Ø³ØªØ§Ø¯Ù† با ظاهر بهتر ØŒ امّا با اندازه بیشتر در ایمیل های چند قسمتی HTML.
-برای Ø§Ø³ØªÙØ§Ø¯Ù‡ از ایمیل متنی ØŒ غیر ÙØ¹Ø§Ù„ کنید.';
-$lang['sitemap']               = 'تولید کردن نقشه‌ی سایت توسط گوگل (روز)';
-$lang['rss_type']              = 'نوع خوراک';
-$lang['rss_linkto']            = 'خوراک به کجا لینک شود';
-$lang['rss_content']           = 'چه چیزی در تکه‌های خوراک نمایش داده شود؟';
-$lang['rss_update']            = 'زمان به روز رسانی خوراک به ثانیه';
-$lang['rss_show_summary']      = 'خوراک مختصری از مطلب را در عنوان نمایش دهد';
-$lang['rss_media']             = 'چه نوع تغییراتی باید در خوراک XML لیست شود؟';
-$lang['updatecheck']           = 'هشدارهای به روز رسانی Ùˆ امنیتی بررسی شود؟ برای این‌کار دوکوویکی با سرور update.dokuwiki.org تماس خواهد Ú¯Ø±ÙØª.';
-$lang['userewrite']            = 'از زیباکننده‌ی آدرس‌ها Ø§Ø³ØªÙØ§Ø¯Ù‡ شود';
-$lang['useslash']              = 'از اسلش «/» برای جداکننده‌ی آدرس ÙØ¶Ø§ÛŒâ€ŒÙ†Ø§Ù…‌ها Ø§Ø³ØªÙØ§Ø¯Ù‡ شود';
-$lang['sepchar']               = 'کلمه‌ی جداکننده‌ی نام ØµÙØ­Ø§Øª';
-$lang['canonical']             = 'Ø§Ø³ØªÙØ§Ø¯Ù‡ از آدرس‌های استاندارد';
-$lang['fnencode']              = 'روش تغییر نام ÙØ§ÛŒÙ„‌هایی با ÙØ±Ù…تی غیر از اسکی';
-$lang['autoplural']            = 'بررسی جمع بودن در پیوندها';
-$lang['compression']           = 'روش ÙØ´Ø±Ø¯Ù‡â€ŒØ³Ø§Ø²ÛŒ برای ÙØ§ÛŒÙ„‌های Ø®ÙØ±Ø¯';
-$lang['gzip_output']           = 'Ø§Ø³ØªÙØ§Ø¯Ù‡ از gzip برای xhtmlها';
-$lang['compress']              = 'ÙØ´Ø±Ø¯Ù‡â€ŒØ³Ø§Ø²ÛŒ کد‌های CSS Ùˆ JavaScript';
-$lang['cssdatauri']            = 'اندازه بایت هایی Ú©Ù‡ تصاویر ارجاع شده به ÙØ§ÛŒÙ„ های CSS باید به درستی درون stylesheet جایگذاری شود تا سربار سرایند درخواست HTTP را کاهش دهد. مقادیر <code>400</code> تا <code>600</code> بایت مقدار خوبی است. برای غیر ÙØ¹Ø§Ù„ کردن <code>0</code> قرار دهید.';
-$lang['send404']               = 'ارسال «HTTP 404/Page Not Found» برای ØµÙØ­Ø§ØªÛŒ Ú©Ù‡ وجود ندارند';
-$lang['broken_iua']            = 'آیا تابع ignore_user_about در ویکی شما کار نمی‌کند؟ ممکن است Ùهرست جستجوی شما کار نکند. IIS به همراه PHP/CGI باعث خراب شدن این گزینه می‌شود. برای اطلاعات بیشتر <a href="http://bugs.splitbrain.org/?do=details&amp;task_id=852">باگ Û¸ÛµÛ²</a> را مشاهده کنید.';
-$lang['xsendfile']             = 'Ø§Ø³ØªÙØ§Ø¯Ù‡ از هدر X-SendfileØŒ تا به وب‌سرور  توانایی ارسال ÙØ§ÛŒÙ„‌های ثابت را بدهد. وب‌سرور شما باید این مورد را پشتیبانی کند.';
-$lang['renderer_xhtml']        = 'Ù…ÙØ³Ø±ÛŒ Ú©Ù‡ برای خروجی اصلی ویکی Ø§Ø³ØªÙØ§Ø¯Ù‡ شود';
-$lang['renderer__core']        = '%s (هسته‌ی dokuwiki)';
-$lang['renderer__plugin']      = '%s (Ø§ÙØ²ÙˆÙ†Ù‡)';
-$lang['dnslookups']            = 'دوکوویکی نام هاست ها را برای آدرسهای آی‌پی‌های ØµÙØ­Ø§Øª ویرایشی کاربران ØŒ جستجو Ù…ÛŒ کند. اگر یک سرور DNS کند یا نا کارامد دارید یا این ویژگی را نمی خواهید ØŒ این گزینه را غیر ÙØ¹Ø§Ù„ کنید.';
-$lang['proxy____host']         = 'آدرس سرور پروکسی';
-$lang['proxy____port']         = 'پورت پروکسی';
-$lang['proxy____user']         = 'نام کاربری پروکسی';
-$lang['proxy____pass']         = 'گذرواژهي پروکسی';
-$lang['proxy____ssl']          = 'Ø§Ø³ØªÙØ§Ø¯Ù‡ از SSL برای اتصال به پروکسی';
-$lang['proxy____except']       = 'عبارت منظم برای تطبیق با URLها برای این‌که دریابیم که از روی  چه پروکسی‌ای باید بپریم!';
-$lang['safemodehack']          = 'ÙØ¹Ø§Ù„ کردن safemode hack';
-$lang['ftp____host']           = 'آدرس FTP برای safemode hack';
-$lang['ftp____port']           = 'پورت FTP برای safemode hack';
-$lang['ftp____user']           = 'نام کاربری FTP برای safemode hack';
-$lang['ftp____pass']           = 'گذرواژه‌ی FTP برای safemode hack';
-$lang['ftp____root']           = 'شاخه‌ی FTP برای safemode hack';
-$lang['license_o_']            = 'هیچ کدام';
-$lang['typography_o_0']        = 'هیچ';
-$lang['typography_o_1']        = 'حذ٠کردن single-quote';
-$lang['typography_o_2']        = 'به همراه داشتن single-quote (ممکن است همیشه کار نکند)';
-$lang['userewrite_o_0']        = 'هیچ';
-$lang['userewrite_o_1']        = '.htaccess';
-$lang['userewrite_o_2']        = 'از طریق DokuWiki';
-$lang['deaccent_o_0']          = 'خاموش';
-$lang['deaccent_o_1']          = 'برداشتن ØªÙ„ÙØ¸â€ŒÙ‡Ø§';
-$lang['deaccent_o_2']          = 'لاتین کردن (romanize)';
-$lang['gdlib_o_0']             = 'کتاب‌خانه‌ی GD موجود نیست';
-$lang['gdlib_o_1']             = 'نسخه‌ی 1.X';
-$lang['gdlib_o_2']             = 'انتخاب خودکار';
-$lang['rss_type_o_rss']        = 'RSS 0.91';
-$lang['rss_type_o_rss1']       = 'RSS 1.0';
-$lang['rss_type_o_rss2']       = 'RSS 2.0';
-$lang['rss_type_o_atom']       = 'Atom 0.3';
-$lang['rss_type_o_atom1']      = 'Atom 1.0';
-$lang['rss_content_o_abstract'] = 'انتزاعی';
-$lang['rss_content_o_diff']    = 'یکی کردن ØªÙØ§ÙˆØªâ€ŒÙ‡Ø§';
-$lang['rss_content_o_htmldiff'] = 'جدول ØªÙØ§ÙˆØªâ€ŒÙ‡Ø§ با ساختار HTML';
-$lang['rss_content_o_html']    = 'تمامی محتویات ØµÙØ­Ù‡ØŒ با ساختار HTML';
-$lang['rss_linkto_o_diff']     = 'نمایه‌های Ù…ØªÙØ§ÙˆØª';
-$lang['rss_linkto_o_page']     = 'ØµÙØ­Ù‡â€ŒÛŒ تجدید نظر شده';
-$lang['rss_linkto_o_rev']      = 'لیست نگارش‌ها';
-$lang['rss_linkto_o_current']  = 'ØµÙØ­Ù‡â€ŒÛŒ کنونی';
-$lang['compression_o_0']       = 'هیچ';
-$lang['compression_o_gz']      = 'gzip';
-$lang['compression_o_bz2']     = 'bz2';
-$lang['xsendfile_o_0']         = 'Ø§Ø³ØªÙØ§Ø¯Ù‡ نکنید';
-$lang['xsendfile_o_1']         = 'هدر اختصاصی lighttpd (پیش از نگارش ۱.۵)';
-$lang['xsendfile_o_2']         = 'هدر استاندارد X-Sendfile';
-$lang['xsendfile_o_3']         = 'هدر اختصاصی X-Accel-Redirect در وب سرور Nginx';
-$lang['showuseras_o_loginname'] = 'نام کاربری';
-$lang['showuseras_o_username'] = 'نام کامل کاربران';
-$lang['showuseras_o_username_link'] = 'نام کامل کاربر به عنوان لینک داخلی ویکی';
-$lang['showuseras_o_email']    = 'آدرس ایمیل کاربران (با تنظیمات «نگهبان ایمیل» مبهم می‌شود)';
-$lang['showuseras_o_email_link'] = 'نمایش ایمیل کاربران با Ø§ÙØ²ÙˆØ¯Ù† mailto';
-$lang['useheading_o_0']        = 'هرگز';
-$lang['useheading_o_navigation'] = 'Ùقط ناوبری (navigation)';
-$lang['useheading_o_content']  = 'Ùقط محتویات ویکی';
-$lang['useheading_o_1']        = 'همیشه';
-$lang['readdircache']          = 'بیش‌ترین عمر برای Ø­Ø§ÙØ¸Ù‡â€ŒÛŒ موقت readdir (ثانیه)';
diff --git a/wiki/lib/plugins/config/lang/fi/intro.txt b/wiki/lib/plugins/config/lang/fi/intro.txt
deleted file mode 100644
index 2765a18..0000000
--- a/wiki/lib/plugins/config/lang/fi/intro.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-====== Asetusten hallinta ======
-
-Käytä tätä sivua hallitaksesi DokuWikisi asetuksia. Apua yksittäisiin asetuksiin löytyy sivulta [[doku>config]]. Lisätietoa tästä liitännäisestä löytyy sivulta [[doku>plugin:config]].
-
-Asetukset, jotka näkyvät vaaleanpunaisella taustalla ovat suojattuja, eikä niitä voi muutta tämän liitännäisen avulla. Asetukset, jotka näkyvät sinisellä taustalla ovat oletusasetuksia. Asetukset valkoisella taustalla ovat asetettu paikallisesti tätä asennusta varten. Sekä sinisiä että valkoisia asetuksia voi muokata.
-
-Muista painaa **TALLENNA**-nappia ennen kuin poistut sivulta. Muuten muutoksesi häviävät.
diff --git a/wiki/lib/plugins/config/lang/fi/lang.php b/wiki/lib/plugins/config/lang/fi/lang.php
deleted file mode 100644
index 3389754..0000000
--- a/wiki/lib/plugins/config/lang/fi/lang.php
+++ /dev/null
@@ -1,198 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author otto@valjakko.net
- * @author Otto Vainio <otto@valjakko.net>
- * @author Teemu Mattila <ghcsystems@gmail.com>
- * @author Sami Olmari <sami@olmari.fi>
- * @author Wiki Doku <SugarKidder@mailinator.com>
- */
-$lang['menu']                  = 'Asetukset';
-$lang['error']                 = 'Asetuksia ei päivitetty väärän arvon vuoksi. Tarkista muutokset ja lähetä sivu uudestaan.
-<br />Väärät arvot on merkitty punaisella reunuksella.';
-$lang['updated']               = 'Asetukset päivitetty onnistuneesti.';
-$lang['nochoice']              = '(ei muita valintoja saatavilla)';
-$lang['locked']                = 'Asetustiedosta ei voi päivittää. Jos tämä ei ole tarkoitus <br />
-niin varmista, että paikallisten asetusten tiedoston nimi ja oikeudet ovat kunnossa.';
-$lang['danger']                = 'Vaara: tämän asetuksen muuttaminen saattaa estää wikisi ja asetusvalikon toimimisen.';
-$lang['warning']               = 'Varoitus: tämän asetuksen muuttaminen saattaa aiheuttaa olettamattomia toimintoja.';
-$lang['security']              = 'Turvallisuusvaroitus: tämän asetuksen muuttaminen saattaa aiheuttaa tietoturva-aukon.';
-$lang['_configuration_manager'] = 'Asetusten hallinta';
-$lang['_header_dokuwiki']      = 'DokuWikin asetukset';
-$lang['_header_plugin']        = 'Liitännäisten asetukset';
-$lang['_header_template']      = 'Sivumallin asetukset';
-$lang['_header_undefined']     = 'Määritetelettömät asetukset';
-$lang['_basic']                = 'Perusasetukset';
-$lang['_display']              = 'Näyttöasetukset';
-$lang['_authentication']       = 'Sisäänkirjoittautumisen asetukset';
-$lang['_anti_spam']            = 'Anti-Spam asetukset';
-$lang['_editing']              = 'Sivumuokkauksen asetukset';
-$lang['_links']                = 'Linkkien asetukset';
-$lang['_media']                = 'Media-asetukset';
-$lang['_notifications']        = 'Ilmoitus-asetukset';
-$lang['_syndication']          = 'Syöteasetukset';
-$lang['_advanced']             = 'Lisäasetukset';
-$lang['_network']              = 'Verkkoasetukset';
-$lang['_msg_setting_undefined'] = 'Ei asetusten metadataa.';
-$lang['_msg_setting_no_class'] = 'Ei asetusluokkaa.';
-$lang['_msg_setting_no_default'] = 'Ei oletusarvoa';
-$lang['title']                 = 'Wikin nimi';
-$lang['start']                 = 'Alkusivun nimi';
-$lang['lang']                  = 'Kieli';
-$lang['template']              = 'Sivumalli';
-$lang['tagline']               = 'Apuotsikko - slogan sivustonimen yhteysteen (jos template käyttää)';
-$lang['sidebar']               = 'Sivupalkin sivunimi (jos template tukee sitä), tyhjä arvo poistaa sivupalkin';
-$lang['license']               = 'Millä lisenssillä sisältö pitäisi julkaista?';
-$lang['savedir']               = 'Hakemisto tietojen tallennukseen.';
-$lang['basedir']               = 'Perushakemisto';
-$lang['baseurl']               = 'Perus URL';
-$lang['cookiedir']             = 'Cookien path. Jätä tyhjäksi käyttääksesi baseurl arvoa';
-$lang['dmode']                 = 'Hakemiston luontioikeudet';
-$lang['fmode']                 = 'Tiedoston luontioikeudet';
-$lang['allowdebug']            = 'Salli debuggaus <b>pois, jos ei tarvita!</b>';
-$lang['recent']                = 'Viime muutokset';
-$lang['recent_days']           = 'Montako edellistä muutosta säilytetään (päiviä)';
-$lang['breadcrumbs']           = 'Leivänmurujen määrä';
-$lang['youarehere']            = 'Hierarkkiset leivänmurut';
-$lang['fullpath']              = 'Näytä sivun koko polku sivun alareunassa';
-$lang['typography']            = 'Tee typografiset korvaukset';
-$lang['dformat']               = 'Päivämäärän muoto (katso PHPn <a href="http://php.net/strftime">strftime</a> funktiota)';
-$lang['signature']             = 'Allekirjoitus';
-$lang['showuseras']            = 'Mitä näytetään, kun kerrotaan viimeisen editoijan tiedot';
-$lang['toptoclevel']           = 'Ylätason sisällysluettelo';
-$lang['tocminheads']           = 'Pienin otsikkorivien määrä, jotta sisällysluettelo tehdään';
-$lang['maxtoclevel']           = 'Sisällysluettelon suurin syvyys';
-$lang['maxseclevel']           = 'Kappale-editoinnin suurin syvyys.';
-$lang['camelcase']             = 'Käytä CamelCase linkkejä';
-$lang['deaccent']              = 'Siivoa sivun nimet';
-$lang['useheading']            = 'Käytä ensimmäistä otsikkoriviä sivun nimenä.';
-$lang['sneaky_index']          = 'Oletuksena DokuWiki näyttää kaikki nimiavaruudet index-näkymäsä. Tämä asetus piilottaa ne, joihin käyttäjällä ei ole lukuoikeuksia. Tämä voi piilottaa joitakin sallittuja alinimiavaruuksia. Tästä johtuen index-näkymä voi olla käyttökelvoton joillakin ACL-asetuksilla';
-$lang['hidepages']             = 'Piilota seuraavat sivut (säännönmukainen lauseke)';
-$lang['useacl']                = 'Käytä käyttöoikeuksien hallintaa';
-$lang['autopasswd']            = 'Luo salasana automaattisesti';
-$lang['authtype']              = 'Autentikointijärjestelmä';
-$lang['passcrypt']             = 'Salasanan suojausmenetelmä';
-$lang['defaultgroup']          = 'Oletusryhmä';
-$lang['superuser']             = 'Pääkäyttäjä. Ryhmä tai käyttäjä, jolla on täysi oikeus kaikkiin sivuihin ja toimintoihin käyttöoikeuksista huolimatta';
-$lang['manager']               = 'Ylläpitäjä. Ryhmä tai käyttäjä, jolla on pääsy joihinkin ylläpitotoimintoihin';
-$lang['profileconfirm']        = 'Vahvista profiilin päivitys salasanan avulla';
-$lang['rememberme']            = 'Salli pysyvät kirjautumis-cookiet (muista minut)';
-$lang['disableactions']        = 'Estä DokuWiki-toimintojen käyttö';
-$lang['disableactions_check']  = 'Tarkista';
-$lang['disableactions_subscription'] = 'Tilaa/Peruuta tilaus';
-$lang['disableactions_wikicode'] = 'Näytä lähdekoodi/Vie raakana';
-$lang['disableactions_other']  = 'Muut toiminnot (pilkulla erotettuna)';
-$lang['auth_security_timeout'] = 'Autentikoinnin aikakatkaisu (sekunteja)';
-$lang['securecookie']          = 'Lähetetäänkö HTTPS:n kautta asetetut evästetiedot HTTPS-yhteydellä? Kytke pois, jos vain wikisi kirjautuminen on suojattu SSL:n avulla, mutta muuten wikiä käytetään ilman suojausta.';
-$lang['remote']                = 'Kytke "remote API" käyttöön. Tämä sallii muiden sovellusten päästä wikiin XML-RPC:n avulla';
-$lang['remoteuser']            = 'Salli "remote API" pääsy vain pilkulla erotetuille ryhmille tai käyttäjille tässä. Jätä tyhjäksi, jos haluat sallia käytön kaikille.';
-$lang['usewordblock']          = 'Estä spam sanalistan avulla';
-$lang['relnofollow']           = 'Käytä rel="nofollow" ulkoisille linkeille';
-$lang['indexdelay']            = 'Aikaraja indeksoinnille (sek)';
-$lang['mailguard']             = 'Häivytä email osoite';
-$lang['iexssprotect']          = 'Tarkista lähetetyt tiedostot pahojen javascript- ja html-koodien varalta';
-$lang['usedraft']              = 'Tallenna vedos muokkaustilassa automaattisesti ';
-$lang['htmlok']                = 'Salli upotettu HTML';
-$lang['phpok']                 = 'Salli upotettu PHP';
-$lang['locktime']              = 'Lukitustiedostojen maksimi-ikä (sek)';
-$lang['cachetime']             = 'Välimuisti-tiedostojen maksimi-ikä (sek)';
-$lang['target____wiki']        = 'Kohdeikkuna sisäisissä linkeissä';
-$lang['target____interwiki']   = 'Kohdeikkuna interwiki-linkeissä';
-$lang['target____extern']      = 'Kohdeikkuna ulkoisissa linkeissä';
-$lang['target____media']       = 'Kohdeikkuna media-linkeissä';
-$lang['target____windows']     = 'Kohdeikkuna Windows-linkeissä';
-$lang['mediarevisions']        = 'Otetaan käyttään Media-versiointi';
-$lang['refcheck']              = 'Mediaviitteen tarkistus';
-$lang['gdlib']                 = 'GD Lib versio';
-$lang['im_convert']            = 'ImageMagick-muunnostyökalun polku';
-$lang['jpg_quality']           = 'JPG pakkauslaatu (0-100)';
-$lang['fetchsize']             = 'Suurin koko (bytejä), jonka fetch.php voi ladata ulkopuolisesta lähteestä';
-$lang['subscribers']           = 'Salli tuki sivujen tilaamiselle';
-$lang['subscribe_time']        = 'Aika jonka jälkeen tilauslinkit ja yhteenveto lähetetään (sek). Tämän pitäisi olla pienempi, kuin recent_days aika.';
-$lang['notify']                = 'Lähetä muutosilmoitukset tähän osoitteeseen';
-$lang['registernotify']        = 'Lähetä ilmoitus uusista rekisteröitymisistä tähän osoitteeseen';
-$lang['mailfrom']              = 'Sähköpostiosoite automaattisia postituksia varten';
-$lang['mailprefix']            = 'Etuliite automaattisesti lähetettyihin dähköposteihin';
-$lang['htmlmail']              = 'Lähetä paremman näköisiä, mutta isompia HTML multipart sähköposteja. Ota pois päältä, jos haluat vain tekstimuotoisia posteja.';
-$lang['sitemap']               = 'Luo Google sitemap (päiviä)';
-$lang['rss_type']              = 'XML-syötteen tyyppi';
-$lang['rss_linkto']            = 'XML-syöte kytkeytyy';
-$lang['rss_content']           = 'Mitä XML-syöte näyttää?';
-$lang['rss_update']            = 'XML-syötteen päivitystahti (sek)';
-$lang['rss_show_summary']      = 'XML-syöte näyttää yhteenvedon otsikossa';
-$lang['rss_media']             = 'Millaiset muutokset pitäisi olla mukana XML-syötteessä.';
-$lang['updatecheck']           = 'Tarkista päivityksiä ja turvavaroituksia? Tätä varten DokuWikin pitää ottaa yhteys update.dokuwiki.orgiin.';
-$lang['userewrite']            = 'Käytä siivottuja URLeja';
-$lang['useslash']              = 'Käytä kauttaviivaa nimiavaruuksien erottimena URL-osoitteissa';
-$lang['sepchar']               = 'Sivunimen sanaerotin';
-$lang['canonical']             = 'Käytä kanonisoituja URLeja';
-$lang['fnencode']              = 'Muita kuin ASCII merkkejä sisältävien tiedostonimien koodaustapa.';
-$lang['autoplural']            = 'Etsi monikkomuotoja linkeistä';
-$lang['compression']           = 'Attic-tiedostojen pakkausmenetelmä';
-$lang['gzip_output']           = 'Käytä gzip "Content-Encoding"-otsaketta xhtml-tiedostojen lähettämiseen';
-$lang['compress']              = 'Pakkaa CSS ja javascript';
-$lang['cssdatauri']            = 'Maksimikoko tavuina jossa kuvat joihin viitataan CSS-tiedostoista olisi sisällytettynä suoraan tyylitiedostoon jotta HTTP-kyselyjen kaistaa saataisiin kutistettua. Tämä tekniikka ei toimi IE versiossa aikasempi kuin 8! <code>400:sta</code> <code>600:aan</code> tavua on hyvä arvo. Aseta <code>0</code> kytkeäksesi ominaisuuden pois.';
-$lang['send404']               = 'Lähetä "HTTP 404/Page Not Found" puuttuvista sivuista';
-$lang['broken_iua']            = 'Onko "ignore_user_abort" toiminto rikki järjestelmässäsi? Tämä voi aiheuttaa toimimattoman index-näkymän.
-IIS+PHP/CGI on tunnetusti rikki. Katso <a href="http://bugs.splitbrain.org/?do=details&amp;task_id=852">Bug 852</a> lisätietoja varten.';
-$lang['xsendfile']             = 'Käytä X-Sendfile otsikkoa, kun web-palvelin lähettää staattisia tiedostoja? Palvelimesi pitää tukea tätä.';
-$lang['renderer_xhtml']        = 'Renderöinti, jota käytetään wikin pääasialliseen (xhtml) tulostukseen';
-$lang['renderer__core']        = '%s (dokuwiki core)';
-$lang['renderer__plugin']      = '%s (liitännäinen)';
-$lang['dnslookups']            = 'DokuWiki tarkistaa sivun päivittäjän koneen IP-osoitteen isäntänimen. Kytke pois, jos käytät hidasta tai toimimatonta DNS-palvelinta, tai et halua tätä ominaisuutta.';
-$lang['proxy____host']         = 'Proxy-palvelimen nimi';
-$lang['proxy____port']         = 'Proxy portti';
-$lang['proxy____user']         = 'Proxy käyttäjän nimi';
-$lang['proxy____pass']         = 'Proxy salasana';
-$lang['proxy____ssl']          = 'Käytä ssl-yhteyttä kytkeytyäksesi proxy-palvelimeen';
-$lang['proxy____except']       = 'Säännönmukainen lause, URLiin, jolle proxy ohitetaan.';
-$lang['safemodehack']          = 'Käytä safemode kiertoa';
-$lang['ftp____host']           = 'FTP-palvelin safemode kiertoa varten';
-$lang['ftp____port']           = 'FTP-portti safemode kiertoa varten';
-$lang['ftp____user']           = 'FTP-käyttäjä safemode kiertoa varten';
-$lang['ftp____pass']           = 'FTP-salasana safemode kiertoa varten';
-$lang['ftp____root']           = 'FTP-juurihakemisto safemode kiertoa varten';
-$lang['license_o_']            = 'ei mitään valittuna';
-$lang['typography_o_0']        = 'ei mitään';
-$lang['typography_o_1']        = 'ilman yksinkertaisia lainausmerkkejä';
-$lang['typography_o_2']        = 'myös yksinkertaiset lainausmerkit (ei aina toimi)';
-$lang['userewrite_o_0']        = 'ei mitään';
-$lang['userewrite_o_1']        = '.htaccess';
-$lang['userewrite_o_2']        = 'DokuWikin sisäinen';
-$lang['deaccent_o_0']          = 'pois';
-$lang['deaccent_o_1']          = 'Poista aksenttimerkit';
-$lang['deaccent_o_2']          = 'translitteroi';
-$lang['gdlib_o_0']             = 'GD Lib ei ole saatavilla';
-$lang['gdlib_o_1']             = 'Versio 1.x';
-$lang['gdlib_o_2']             = 'Automaattitunnistus';
-$lang['rss_type_o_rss']        = 'RSS 0.91';
-$lang['rss_type_o_rss1']       = 'RSS 1.0';
-$lang['rss_type_o_rss2']       = 'RSS 2.0';
-$lang['rss_type_o_atom']       = 'Atom 0.3';
-$lang['rss_type_o_atom1']      = 'Atom 1.0';
-$lang['rss_content_o_abstract'] = 'Yhteenveto';
-$lang['rss_content_o_diff']    = 'Yhdistetty erot';
-$lang['rss_content_o_htmldiff'] = 'HTML-muotoiltu eroavuuslista';
-$lang['rss_content_o_html']    = 'Täysi HTML-sivu';
-$lang['rss_linkto_o_diff']     = 'erot-näkymä';
-$lang['rss_linkto_o_page']     = 'muutettu sivu';
-$lang['rss_linkto_o_rev']      = 'versiolista';
-$lang['rss_linkto_o_current']  = 'nykyinen sivu';
-$lang['compression_o_0']       = 'ei mitään';
-$lang['compression_o_gz']      = 'gzip';
-$lang['compression_o_bz2']     = 'bz2';
-$lang['xsendfile_o_0']         = 'älä käytä';
-$lang['xsendfile_o_1']         = 'Oma lighttpd otsikko (ennen 1.5 julkaisua)';
-$lang['xsendfile_o_2']         = 'Standardi X-sendfile header';
-$lang['xsendfile_o_3']         = 'Oma Nginx X-Accel-Redirect header';
-$lang['showuseras_o_loginname'] = 'Kirjautumisnimi';
-$lang['showuseras_o_username'] = 'Käyttäjän koko nimi';
-$lang['showuseras_o_email']    = 'Käyttäjän sähköpostiosoite (sumennettu mailguard-asetusten mukaisesti)';
-$lang['showuseras_o_email_link'] = 'Käyttäjän sähköpostiosoite mailto: linkkinä';
-$lang['useheading_o_0']        = 'Ei koskaan';
-$lang['useheading_o_navigation'] = 'Vain Navigointi';
-$lang['useheading_o_content']  = 'Vain Wiki-sisältö';
-$lang['useheading_o_1']        = 'Aina';
-$lang['readdircache']          = 'Maksimiaika readdir cachelle (sek)';
diff --git a/wiki/lib/plugins/config/lang/fr/intro.txt b/wiki/lib/plugins/config/lang/fr/intro.txt
deleted file mode 100644
index afc5805..0000000
--- a/wiki/lib/plugins/config/lang/fr/intro.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-====== Gestionnaire de configuration ======
-
-Utilisez cette page pour contrôler les paramètres de votre installation de DokuWiki. Pour de l'aide sur chaque paramètre, reportez vous à [[doku>fr:config]]. Pour plus de détails concernant cette extension, reportez vous à [[doku>fr:plugin:config]].
-
-Les paramètres affichés sur un fond rouge sont protégés et ne peuvent être modifiés avec cette extension. Les paramètres affichés sur un fond bleu sont les valeurs par défaut et les valeurs spécifiquement définies pour votre installation sont affichées sur un fond blanc. Seuls les paramètres sur fond bleu ou blanc peuvent être modifiés.
-
-N'oubliez pas d'utiliser le bouton **ENREGISTRER** avant de quitter cette page, sinon vos modifications ne seront pas prises en compte !
diff --git a/wiki/lib/plugins/config/lang/fr/lang.php b/wiki/lib/plugins/config/lang/fr/lang.php
deleted file mode 100644
index 520a8bd..0000000
--- a/wiki/lib/plugins/config/lang/fr/lang.php
+++ /dev/null
@@ -1,233 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Damien Regad <dregad@mantisbt.org>
- * @author Schplurtz le Déboulonné <Schplurtz@laposte.net>
- * @author Michael Bohn <mjbohn@gmail.com>
- * @author Guy Brand <gb@unistra.fr>
- * @author Delassaux Julien <julien@delassaux.fr>
- * @author Maurice A. LeBlanc <leblancma@cooptel.qc.ca>
- * @author stephane.gully <stephane.gully@gmail.com>
- * @author Guillaume Turri <guillaume.turri@gmail.com>
- * @author Erik Pedersen <erik.pedersen@shaw.ca>
- * @author olivier duperray <duperray.olivier@laposte.net>
- * @author Vincent Feltz <psycho@feltzv.fr>
- * @author Philippe Bajoit <philippe.bajoit@gmail.com>
- * @author Florian Gaub <floriang@floriang.net>
- * @author Samuel Dorsaz <samuel.dorsaz@novelion.net>
- * @author Johan Guilbaud <guilbaud.johan@gmail.com>
- * @author Yannick Aure <yannick.aure@gmail.com>
- * @author Olivier DUVAL <zorky00@gmail.com>
- * @author Anael Mobilia <contrib@anael.eu>
- * @author Bruno Veilleux <bruno.vey@gmail.com>
- * @author Carbain Frédéric <fcarbain@yahoo.fr>
- * @author Nicolas Friedli <nicolas@theologique.ch>
- * @author Floriang <antispam@floriang.eu>
- * @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.';
-$lang['updated']               = 'Paramètres mis à jour avec succès.';
-$lang['nochoice']              = '(aucun autre choix possible)';
-$lang['locked']                = 'Le fichier des paramètres ne peut être modifié, si ceci n\'est pas intentionnel, <br /> vérifiez que le nom et les autorisations du fichier sont correctes.';
-$lang['danger']                = 'Danger : modifier cette option pourrait rendre inaccessibles votre wiki et son menu de configuration.';
-$lang['warning']               = 'Attention : modifier cette option pourrait engendrer un comportement indésirable.';
-$lang['security']              = 'Avertissement de sécurité : modifier cette option pourrait induire un risque de sécurité.';
-$lang['_configuration_manager'] = 'Gestionnaire de configuration';
-$lang['_header_dokuwiki']      = 'Paramètres de DokuWiki';
-$lang['_header_plugin']        = 'Paramètres des extensions';
-$lang['_header_template']      = 'Paramètres du thème';
-$lang['_header_undefined']     = 'Paramètres indéfinis';
-$lang['_basic']                = 'Paramètres de base';
-$lang['_display']              = 'Paramètres d\'affichage';
-$lang['_authentication']       = 'Paramètres d\'authentification';
-$lang['_anti_spam']            = 'Paramètres anti-spam';
-$lang['_editing']              = 'Paramètres d\'édition';
-$lang['_links']                = 'Paramètres des liens';
-$lang['_media']                = 'Paramètres des médias';
-$lang['_notifications']        = 'Paramètres de notification';
-$lang['_syndication']          = 'Paramètres de syndication';
-$lang['_advanced']             = 'Paramètres avancés';
-$lang['_network']              = 'Paramètres réseaux';
-$lang['_msg_setting_undefined'] = 'Pas de définition de métadonnées';
-$lang['_msg_setting_no_class'] = 'Pas de définition de paramètres.';
-$lang['_msg_setting_no_default'] = 'Pas de valeur par défaut.';
-$lang['title']                 = 'Titre du wiki (nom du wiki)';
-$lang['start']                 = 'Nom de la page d\'accueil à utiliser pour toutes les catégories';
-$lang['lang']                  = 'Langue de l\'interface';
-$lang['template']              = 'Thème (rendu visuel du wiki)';
-$lang['tagline']               = 'Descriptif du site (si le thème utilise cette fonctionnalité)';
-$lang['sidebar']               = 'Nom du panneau latéral (si le thème utilise cette fonctionnalité). Laisser le champ vide désactive le panneau latéral.';
-$lang['license']               = 'Sous quelle licence doit-être placé le contenu ?';
-$lang['savedir']               = 'Répertoire d\'enregistrement des données';
-$lang['basedir']               = 'Répertoire de base du serveur (par exemple : <code>/dokuwiki/</code>). Laisser vide pour une détection automatique.';
-$lang['baseurl']               = 'URL de base du site (par exemple <code>http://www.example.com</code>). Laisser vide pour une détection automatique.';
-$lang['cookiedir']             = 'Chemin des cookies. Laissez vide pour utiliser l\'URL de base.';
-$lang['dmode']                 = 'Mode de création des répertoires';
-$lang['fmode']                 = 'Mode de création des fichiers';
-$lang['allowdebug']            = 'Debug (<strong>Ne l\'activez que si vous en avez besoin !</strong>)';
-$lang['recent']                = 'Nombre de lignes à afficher - par page - pour les derniers changements';
-$lang['recent_days']           = 'Signaler les pages modifiées depuis (en jours)';
-$lang['breadcrumbs']           = 'Nombre de traces à afficher. 0 désactive cette fonctionnalité.';
-$lang['youarehere']            = 'Utiliser des traces hiérarchiques (vous voulez probablement désactiver l\'option ci-dessus)';
-$lang['fullpath']              = 'Afficher le chemin complet des pages dans le pied de page';
-$lang['typography']            = 'Effectuer des améliorations typographiques';
-$lang['dformat']               = 'Format de date (cf. fonction <a href="http://php.net/strftime">strftime</a> de PHP)';
-$lang['signature']             = 'Données à insérer lors de l\'utilisation du bouton « signature » dans l\'éditeur';
-$lang['showuseras']            = 'Données à afficher concernant le dernier utilisateur ayant modifié une page';
-$lang['toptoclevel']           = 'Niveau le plus haut à afficher dans la table des matières';
-$lang['tocminheads']           = 'Nombre minimum de titres pour qu\'une table des matières soit affichée';
-$lang['maxtoclevel']           = 'Niveau maximum pour figurer dans la table des matières';
-$lang['maxseclevel']           = 'Niveau maximum pour modifier des sections';
-$lang['camelcase']             = 'Utiliser l\'affichage «CamelCase » pour les liens';
-$lang['deaccent']              = 'Retirer les accents dans les noms de pages';
-$lang['useheading']            = 'Utiliser le titre de premier niveau pour le nom de la page';
-$lang['sneaky_index']          = 'Par défaut, DokuWiki affichera toutes les catégories dans la vue par index. Activer cette option permet de cacher les catégories pour lesquelles l\'utilisateur n\'a pas l\'autorisation de lecture. Il peut en résulter le masquage de sous-catégories accessibles. Ceci peut rendre l\'index inutilisable avec certains contrôles d\'accès.';
-$lang['hidepages']             = 'Cacher les pages correspondant à (expression régulière)';
-$lang['useacl']                = 'Utiliser les listes de contrôle d\'accès (ACL)';
-$lang['autopasswd']            = 'Auto-générer les mots de passe';
-$lang['authtype']              = 'Mécanisme d\'authentification';
-$lang['passcrypt']             = 'Méthode de chiffrement des mots de passe';
-$lang['defaultgroup']          = 'Groupe par défaut : tous les nouveaux utilisateurs y seront affectés';
-$lang['superuser']             = 'Super-utilisateur : groupe, utilisateur ou liste séparée par des virgules utilisateur1,@groupe1,utilisateur2 ayant un accès complet à toutes les pages quelque soit le paramétrage des contrôle d\'accès';
-$lang['manager']               = 'Manager:- groupe, utilisateur ou liste séparée par des virgules utilisateur1,@groupe1,utilisateur2 ayant accès à certaines fonctionnalités de gestion';
-$lang['profileconfirm']        = 'Confirmer les modifications de profil par la saisie du mot de passe ';
-$lang['rememberme']            = 'Permettre de conserver de manière permanente les cookies de connexion (mémoriser)';
-$lang['disableactions']        = 'Actions à désactiver dans DokuWiki';
-$lang['disableactions_check']  = 'Vérifier';
-$lang['disableactions_subscription'] = 'Abonnement aux pages';
-$lang['disableactions_wikicode'] = 'Afficher le texte source';
-$lang['disableactions_profile_delete'] = 'Supprimer votre propre compte';
-$lang['disableactions_other']  = 'Autres actions (séparées par des virgules)';
-$lang['disableactions_rss']    = 'Syndication XML (RSS)';
-$lang['auth_security_timeout'] = 'Délai d\'expiration de sécurité (secondes)';
-$lang['securecookie']          = 'Les cookies définis via HTTPS doivent-ils n\'être envoyé par le navigateur que via HTTPS ? Désactivez cette option lorsque seule la connexion à votre wiki est sécurisée avec SSL et que la navigation sur le wiki est effectuée de manière non sécurisée.';
-$lang['remote']                = 'Active l\'API système distante. Ceci permet à d\'autres applications d\'accéder au wiki via XML-RPC ou d\'autres mécanismes.';
-$lang['remoteuser']            = 'Restreindre l\'accès à l\'API à une liste de groupes ou d\'utilisateurs (séparés par une virgule). Laisser vide pour donner l\'accès tout le monde.';
-$lang['usewordblock']          = 'Bloquer le spam selon les mots utilisés';
-$lang['relnofollow']           = 'Utiliser l\'attribut « rel="nofollow" » sur les liens extérieurs';
-$lang['indexdelay']            = 'Délai avant l\'indexation (secondes)';
-$lang['mailguard']             = 'Cacher les adresses de courriel';
-$lang['iexssprotect']          = 'Vérifier, dans les fichiers envoyés, la présence de code JavaScript ou HTML malveillant';
-$lang['usedraft']              = 'Enregistrer automatiquement un brouillon pendant l\'édition';
-$lang['htmlok']                = 'Permettre l\'utilisation de code HTML dans les pages';
-$lang['phpok']                 = 'Permettre l\'utilisation de code PHP dans les pages';
-$lang['locktime']              = 'Âge maximum des fichiers de blocage (secondes)';
-$lang['cachetime']             = 'Âge maximum d\'un fichier en cache (secondes)';
-$lang['target____wiki']        = 'Cible pour liens internes';
-$lang['target____interwiki']   = 'Cible pour liens interwiki';
-$lang['target____extern']      = 'Cible pour liens externes';
-$lang['target____media']       = 'Cible pour liens média';
-$lang['target____windows']     = 'Cible pour liens vers partages Windows';
-$lang['mediarevisions']        = 'Activer les révisions (gestion de versions) des médias';
-$lang['refcheck']              = 'Vérifier si un média est toujours utilisé avant de le supprimer';
-$lang['gdlib']                 = 'Version de la bibliothèque GD';
-$lang['im_convert']            = 'Chemin vers l\'outil de conversion ImageMagick';
-$lang['jpg_quality']           = 'Qualité de la compression JPEG (0-100)';
-$lang['fetchsize']             = 'Taille maximale (en octets) que fetch.php peut télécharger depuis une URL tierce (par exemple pour conserver en cache et redimensionner une image tierce)';
-$lang['subscribers']           = 'Activer l\'abonnement aux pages';
-$lang['subscribe_time']        = 'Délai après lequel les listes d\'abonnement et résumés sont expédiés (en secondes). Devrait être plus petit que le délai précisé dans recent_days.';
-$lang['notify']                = 'Notifier systématiquement les modifications à cette adresse de courriel';
-$lang['registernotify']        = 'Notifier systématiquement les nouveaux utilisateurs enregistrés à cette adresse de courriel';
-$lang['mailfrom']              = 'Adresse de courriel de l\'expéditeur des notifications par courriel du wiki';
-$lang['mailreturnpath']        = 'Adresse de courriel du destinataire pour les notifications de non-remise';
-$lang['mailprefix']            = 'Préfixe à utiliser dans les objets des courriels automatiques. Laisser vide pour utiliser le titre du wiki';
-$lang['htmlmail']              = 'Envoyer des courriel HTML multipart (visuellement plus agréable, mais plus lourd). Désactiver pour utiliser uniquement des courriel plain text';
-$lang['sitemap']               = 'Fréquence de génération du sitemap Google (jours). 0 pour désactiver';
-$lang['rss_type']              = 'Type de flux XML (RSS)';
-$lang['rss_linkto']            = 'Lien du flux XML vers';
-$lang['rss_content']           = 'Quel contenu afficher dans le flux XML?';
-$lang['rss_update']            = 'Fréquence de mise à jour du flux XML (secondes)';
-$lang['rss_show_summary']      = 'Le flux XML affiche le résumé dans le titre';
-$lang['rss_media']             = 'Quels types de changements doivent être listés dans le flux XML?';
-$lang['rss_media_o_both']      = 'les deux';
-$lang['rss_media_o_pages']     = 'pages';
-$lang['rss_media_o_media']     = 'media';
-$lang['updatecheck']           = 'Vérifier les mises à jour et alertes de sécurité? DokuWiki doit pouvoir contacter update.dokuwiki.org';
-$lang['userewrite']            = 'Utiliser des URL esthétiques';
-$lang['useslash']              = 'Utiliser « / » comme séparateur de catégories dans les URL';
-$lang['sepchar']               = 'Séparateur de mots dans les noms de page';
-$lang['canonical']             = 'Utiliser des URL canoniques';
-$lang['fnencode']              = 'Méthode pour l\'encodage des fichiers non-ASCII';
-$lang['autoplural']            = 'Rechercher les formes plurielles dans les liens';
-$lang['compression']           = 'Méthode de compression pour les fichiers attic';
-$lang['gzip_output']           = 'Utiliser gzip pour le Content-Encoding du XHTML';
-$lang['compress']              = 'Compresser les fichiers CSS et JavaScript';
-$lang['cssdatauri']            = 'Taille maximale en octets pour inclure dans les feuilles de styles CSS les images qui y sont référencées. Cette technique réduit le nombre de requêtes HTTP. Cette fonctionnalité ne fonctionne qu\'à partir de la version 8 d\'Internet Explorer! Nous recommandons une valeur entre <code>400</code> et <code>600</code>. <code>0</code> pour désactiver.';
-$lang['send404']               = 'Renvoyer « HTTP 404/Page Not Found » pour les pages inexistantes';
-$lang['broken_iua']            = 'La fonction ignore_user_abort est-elle opérationnelle sur votre système ? Ceci peut empêcher le fonctionnement de l\'index de recherche. IIS+PHP/
-CGI dysfonctionne. Voir le <a href="http://bugs.splitbrain.org/?do=details&amp;task_id=852">bug 852</a> pour plus d\'informations.';
-$lang['xsendfile']             = 'Utiliser l\'en-tête X-Sendfile pour permettre au serveur web de délivrer les fichiers statiques ? Votre serveur web doit prendre en charge cette technologie.';
-$lang['renderer_xhtml']        = 'Moteur de rendu du format de sortie principal (XHTML)';
-$lang['renderer__core']        = '%s (cœur de DokuWiki)';
-$lang['renderer__plugin']      = '%s (extension)';
-$lang['search_nslimit']        = 'Limiter la recherche aux X catégories courantes. Quand une recherche est effectuée à partir d\'une page dans une catégorie profondément imbriquée, les premières X catégories sont ajoutées comme filtre.';
-$lang['search_fragment']       = 'Spécifier le comportement de recherche fragmentaire par défaut';
-$lang['search_fragment_o_exact'] = 'exact';
-$lang['search_fragment_o_starts_with'] = 'commence par';
-$lang['search_fragment_o_ends_with'] = 'se termine par';
-$lang['search_fragment_o_contains'] = 'contient';
-$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';
-$lang['proxy____pass']         = 'Mandataire - Mot de passe';
-$lang['proxy____ssl']          = 'Mandataire - Utilisation de SSL';
-$lang['proxy____except']       = 'Mandataire - Expression régulière de test des URLs pour lesquelles le mandataire (proxy) ne doit pas être utilisé.';
-$lang['safemodehack']          = 'Activer l\'option Mode sans échec';
-$lang['ftp____host']           = 'FTP / Mode sans échec - Serveur hôte';
-$lang['ftp____port']           = 'FTP / Mode sans échec - Port';
-$lang['ftp____user']           = 'FTP / Mode sans échec - Identifiant';
-$lang['ftp____pass']           = 'FTP / Mode sans échec - Mot de passe';
-$lang['ftp____root']           = 'FTP / Mode sans échec - Répertoire racine';
-$lang['license_o_']            = 'Aucune choisie';
-$lang['typography_o_0']        = 'aucun';
-$lang['typography_o_1']        = 'guillemets uniquement';
-$lang['typography_o_2']        = 'tout signe typographique (peut ne pas fonctionner)';
-$lang['userewrite_o_0']        = 'aucun';
-$lang['userewrite_o_1']        = 'Fichier .htaccess';
-$lang['userewrite_o_2']        = 'Interne à DokuWiki';
-$lang['deaccent_o_0']          = 'off';
-$lang['deaccent_o_1']          = 'supprimer les accents';
-$lang['deaccent_o_2']          = 'convertir en caractères latins';
-$lang['gdlib_o_0']             = 'Bibliothèque GD non disponible';
-$lang['gdlib_o_1']             = 'version 1.x';
-$lang['gdlib_o_2']             = 'auto-détectée';
-$lang['rss_type_o_rss']        = 'RSS 0.91';
-$lang['rss_type_o_rss1']       = 'RSS 1.0';
-$lang['rss_type_o_rss2']       = 'RSS 2.0';
-$lang['rss_type_o_atom']       = 'Atom 0.3';
-$lang['rss_type_o_atom1']      = 'Atom 1.0';
-$lang['rss_content_o_abstract'] = 'Résumé';
-$lang['rss_content_o_diff']    = 'Diff. unifié';
-$lang['rss_content_o_htmldiff'] = 'Diff. formaté en table HTML';
-$lang['rss_content_o_html']    = 'page complète au format HTML';
-$lang['rss_linkto_o_diff']     = 'liste des différences';
-$lang['rss_linkto_o_page']     = 'page révisée';
-$lang['rss_linkto_o_rev']      = 'liste des révisions';
-$lang['rss_linkto_o_current']  = 'page actuelle';
-$lang['compression_o_0']       = 'aucune';
-$lang['compression_o_gz']      = 'gzip';
-$lang['compression_o_bz2']     = 'bz2';
-$lang['xsendfile_o_0']         = 'ne pas utiliser';
-$lang['xsendfile_o_1']         = 'Entête propriétaire lighttpd (avant la version 1.5)';
-$lang['xsendfile_o_2']         = 'Entête standard X-Sendfile';
-$lang['xsendfile_o_3']         = 'En-tête propriétaire Nginx X-Accel-Redirect';
-$lang['showuseras_o_loginname'] = 'Identifiant de l\'utilisateur';
-$lang['showuseras_o_username'] = 'Nom de l\'utilisateur';
-$lang['showuseras_o_username_link'] = 'Nom complet de l\'utilisateur en tant que lien interwiki';
-$lang['showuseras_o_email']    = 'Courriel de l\'utilisateur (brouillé suivant les paramètres de brouillage sélectionnés)';
-$lang['showuseras_o_email_link'] = 'Courriel de l\'utilisateur en tant que lien mailto:';
-$lang['useheading_o_0']        = 'Jamais';
-$lang['useheading_o_navigation'] = 'Navigation seulement';
-$lang['useheading_o_content']  = 'Contenu du wiki seulement';
-$lang['useheading_o_1']        = 'Toujours';
-$lang['readdircache']          = 'Durée de vie maximale du cache pour readdir (sec)';
diff --git a/wiki/lib/plugins/config/lang/gl/intro.txt b/wiki/lib/plugins/config/lang/gl/intro.txt
deleted file mode 100644
index cafe28e..0000000
--- a/wiki/lib/plugins/config/lang/gl/intro.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-====== Xestor de Configuración ======
-
-Usa esta páxina para controlares a configuración da túa instalación do Dokuwiki.  Para atopares axuda verbo de cada opción da configuración vai a [[doku>config]]. Para obteres pormenores desta extensión bota un ollo a [[doku>plugin:config]].
-
-As opcións que amosan un fondo de cor vermella clara están protexidas e non poden ser alteradas con esta extensión. As opcións que amosan un fondo de cor azul son valores predeterminados e as opcións que teñen fondo branco foron configuradas de xeito local para esta instalación en concreto. Ãmbalas dúas, as opcións azuis e brancas, poden ser alteradas.
-
-Lembra premer no boton **GARDAR** denantes de saíres desta páxina ou, en caso contrario, os teus trocos perderanse.
diff --git a/wiki/lib/plugins/config/lang/gl/lang.php b/wiki/lib/plugins/config/lang/gl/lang.php
deleted file mode 100644
index 5513964..0000000
--- a/wiki/lib/plugins/config/lang/gl/lang.php
+++ /dev/null
@@ -1,194 +0,0 @@
-<?php
-/**
- * Galicianlanguage file
- *
- * @author Medúlio <medulio@ciberirmandade.org>
- * @author Oscar M. Lage <r0sk10@gmail.com>
- * @author Rodrigo Rega <rodrigorega@gmail.com>
- */
-$lang['menu']                  = 'Opcións de Configuración';
-$lang['error']                 = 'Configuración non actualizada debido a un valor inválido, por favor revisa os teus trocos e volta envialos de novo.
-<br />O(s) valor(es) incorrecto(s) amosanse cinguidos por un borde vermello.';
-$lang['updated']               = 'Configuración actualizada correctamente.';
-$lang['nochoice']              = '(non hai outras escollas dispoñibles)';
-$lang['locked']                = 'Non se puido actualizar o arquivo de configuración, se non ocorre como debería ser, <br />
-asegúrate de que o nome do arquivo de configuración local e os permisos son correctos.';
-$lang['danger']                = 'Perigo: mudando esta opción podes facer inaccesíbeis o teu wiki e máis o menú de configuración.';
-$lang['warning']               = 'Ollo: mudando esta opción poden aparecer comportamentos do aplicativo non agardados.';
-$lang['security']              = 'Aviso de seguranza: mudando esta opción poden aparecer riscos de seguranza.';
-$lang['_configuration_manager'] = 'Xestor de Configuración';
-$lang['_header_dokuwiki']      = 'Configuración do DokuWiki';
-$lang['_header_plugin']        = 'Configuración de Extensións';
-$lang['_header_template']      = 'Configuración de Sobreplanta';
-$lang['_header_undefined']     = 'Configuración Indefinida';
-$lang['_basic']                = 'Configuración Básica';
-$lang['_display']              = 'Configuración de Visualización';
-$lang['_authentication']       = 'Configuración de Autenticación';
-$lang['_anti_spam']            = 'Configuración de Anti-Correo-lixo';
-$lang['_editing']              = 'Configuración de Edición';
-$lang['_links']                = 'Configuración de Ligazóns';
-$lang['_media']                = 'Configuración de Media';
-$lang['_notifications']        = 'Opcións de Notificación';
-$lang['_syndication']          = 'Opcións de Sindicación';
-$lang['_advanced']             = 'Configuración Avanzada';
-$lang['_network']              = 'Configuración de Rede';
-$lang['_msg_setting_undefined'] = 'Non hai configuración de metadatos.';
-$lang['_msg_setting_no_class'] = 'Non hai configuración de clase.';
-$lang['_msg_setting_no_default'] = 'Non hai valor predeterminado.';
-$lang['title']                 = 'Título do Wiki';
-$lang['start']                 = 'Nome da páxina inicial';
-$lang['lang']                  = 'Idioma';
-$lang['template']              = 'Sobreplanta';
-$lang['tagline']               = 'Tagline (si a plantilla o soporta)';
-$lang['sidebar']               = 'Nome de páxina da barra lateral (si a platilla o soporta), o campo en baleiro deshabilita a barra lateral';
-$lang['license']               = 'Baixo de que licenza será ceibado o teu contido?';
-$lang['savedir']               = 'Directorio no que se gardarán os datos';
-$lang['basedir']               = 'Directorio base';
-$lang['baseurl']               = 'URL base';
-$lang['cookiedir']             = 'Ruta das cookies. Deixar en blanco para usar a url de base.';
-$lang['dmode']                 = 'Modo de creación de directorios';
-$lang['fmode']                 = 'Modo de creación de arquivos';
-$lang['allowdebug']            = 'Permitir o depurado <b>desactívao se non o precisas!</b>';
-$lang['recent']                = 'Trocos recentes';
-$lang['recent_days']           = 'Número de trocos recentes a manter (días)';
-$lang['breadcrumbs']           = 'Número de niveis da estrutura de navegación';
-$lang['youarehere']            = 'Niveis xerárquicos da estrutura de navegación';
-$lang['fullpath']              = 'Amosar a ruta completa das páxinas no pé das mesmas';
-$lang['typography']            = 'Facer substitucións tipográficas';
-$lang['dformat']               = 'Formato de Data (bótalle un ollo á función <a href="http://php.net/strftime">strftime</a> do PHP)';
-$lang['signature']             = 'Sinatura';
-$lang['showuseras']            = 'Que amosar cando se informe do usuario que fixo a última modificación dunha páxina';
-$lang['toptoclevel']           = 'Nivel superior para a táboa de contidos';
-$lang['tocminheads']           = 'Cantidade mínima de liñas de cabeceira que determinará se a TDC vai ser xerada';
-$lang['maxtoclevel']           = 'Nivel máximo para a táboa de contidos';
-$lang['maxseclevel']           = 'Nivel máximo de edición da sección';
-$lang['camelcase']             = 'Utilizar CamelCase para as ligazóns';
-$lang['deaccent']              = 'Limpar nomes de páxina';
-$lang['useheading']            = 'Utilizar a primeira cabeceira para os nomes de páxina';
-$lang['sneaky_index']          = 'O DokuWiki amosará por defecto todos os nomes de espazo na vista de índice. Se activas isto agocharanse aqueles onde o usuario non teña permisos de lectura.';
-$lang['hidepages']             = 'Agochar páxinas que coincidan (expresións regulares)';
-$lang['useacl']                = 'Utilizar lista de control de acceso';
-$lang['autopasswd']            = 'Xerar contrasinais automaticamente';
-$lang['authtype']              = 'Backend de autenticación';
-$lang['passcrypt']             = 'Método de encriptado do contrasinal';
-$lang['defaultgroup']          = 'Grupo por defecto';
-$lang['superuser']             = 'Super-usuario - un grupo ou usuario con acceso completo a todas as páxinas e funcións independentemente da configuración da ACL';
-$lang['manager']               = 'Xestor - un grupo ou usuario con acceso a certas funcións de xestión';
-$lang['profileconfirm']        = 'Confirmar trocos de perfil mediante contrasinal';
-$lang['rememberme']            = 'Permitir cookies permanentes de inicio de sesión (lembrarme)';
-$lang['disableactions']        = 'Desactivar accións do DokuWiki';
-$lang['disableactions_check']  = 'Comprobar';
-$lang['disableactions_subscription'] = 'Subscribir/Desubscribir';
-$lang['disableactions_wikicode'] = 'Ver fonte/Exportar Datos Raw';
-$lang['disableactions_other']  = 'Outras accións (separadas por comas)';
-$lang['auth_security_timeout'] = 'Tempo Límite de Seguridade de Autenticación (segundos)';
-$lang['securecookie']          = 'Deben enviarse só vía HTTPS polo navegador as cookies configuradas vía HTTPS? Desactiva esta opción cando só o inicio de sesión do teu wiki estea asegurado con SSL pero a navegación do mesmo se faga de xeito inseguro.';
-$lang['remote']                = 'Permite o uso do sistema API remoto. Isto permite a outras aplicacións acceder ao wiki mediante XML-RPC ou outros mecanismos.';
-$lang['remoteuser']            = 'Restrinxe o uso remoto da API aos grupos ou usuarios indicados, separados por comas. Deixar baleiro para dar acceso a todo o mundo.';
-$lang['usewordblock']          = 'Bloquear correo-lixo segundo unha lista de verbas';
-$lang['relnofollow']           = 'Utilizar rel="nofollow" nas ligazóns externas';
-$lang['indexdelay']            = 'Retardo denantes de indexar (seg)';
-$lang['mailguard']             = 'Ofuscar enderezos de correo-e';
-$lang['iexssprotect']          = 'Comprobar arquivos subidos na procura de posíbel código JavaScript ou HTML malicioso';
-$lang['usedraft']              = 'Gardar un borrador automaticamente no tempo da edición';
-$lang['htmlok']                = 'Permitir a inserción de HTML';
-$lang['phpok']                 = 'Permitir a inserción de PHP';
-$lang['locktime']              = 'Tempo máximo para o bloqueo de arquivos (seg.)';
-$lang['cachetime']             = 'Tempo máximo para a caché (seg.)';
-$lang['target____wiki']        = 'Fiestra de destino para as ligazóns internas';
-$lang['target____interwiki']   = 'Fiestra de destino para as ligazóns interwiki';
-$lang['target____extern']      = 'Fiestra de destino para as ligazóns externas';
-$lang['target____media']       = 'Fiestra de destino para as ligazóns de media';
-$lang['target____windows']     = 'Fiestra de destino para as ligazóns de fiestras';
-$lang['mediarevisions']        = 'Habilitar revisións dos arquivos-media?';
-$lang['refcheck']              = 'Comprobar a referencia media';
-$lang['gdlib']                 = 'Versión da Libraría GD';
-$lang['im_convert']            = 'Ruta deica a ferramenta de conversión ImageMagick';
-$lang['jpg_quality']           = 'Calidade de compresión dos JPG (0-100)';
-$lang['fetchsize']             = 'Tamaño máximo (en bytes) que pode descargar fetch.php dende fontes externas';
-$lang['subscribers']           = 'Activar posibilidade de subscrición á páxina';
-$lang['subscribe_time']        = 'Tempo despois do cal se enviarán os resumos e listas de subscrición (seg.): isto debe ser inferior ao tempo especificado en recent_days.';
-$lang['notify']                = 'Enviar notificacións de trocos a este enderezo de correo-e';
-$lang['registernotify']        = 'Enviar información de novos usuarios rexistrados a este enderezo de correo-e';
-$lang['mailfrom']              = 'Enderezo de correo-e a usar para as mensaxes automáticas';
-$lang['mailprefix']            = 'Prefixo de asunto de correo-e para as mensaxes automáticas';
-$lang['htmlmail']              = 'Enviar correos electrónicos HTML multiparte máis estéticos, pero máis grande en tamaño. Deshabilitar para mandar correos electrónicos en texto claro.';
-$lang['sitemap']               = 'Xerar mapa do sitio co Google (días)';
-$lang['rss_type']              = 'Tipo de corrente RSS XML';
-$lang['rss_linkto']            = 'A corrente XML liga para';
-$lang['rss_content']           = 'Que queres amosar nos elementos da corrente XML?';
-$lang['rss_update']            = 'Intervalo de actualización da corrente XML (seg.)';
-$lang['rss_show_summary']      = 'Amosar sumario no título da corrente XML';
-$lang['rss_media']             = 'Qué tipo de cambios deben ser listados no feed XML?';
-$lang['updatecheck']           = 'Comprobar se hai actualizacións e avisos de seguridade? O DokuWiki precisa contactar con update.dokuwiki.org para executar esta característica.';
-$lang['userewrite']            = 'Utilizar URLs amigábeis';
-$lang['useslash']              = 'Utilizar a barra inclinada (/) como separador de nome de espazo nos URLs';
-$lang['sepchar']               = 'Verba separadora do nome de páxina';
-$lang['canonical']             = 'Utilizar URLs completamente canónicos';
-$lang['fnencode']              = 'Método para codificar os nomes de arquivo non-ASCII.';
-$lang['autoplural']            = 'Comprobar formas plurais nas ligazóns';
-$lang['compression']           = 'Método de compresión para arquivos attic';
-$lang['gzip_output']           = 'Utilizar Contido-Codificación gzip para o xhtml';
-$lang['compress']              = 'Saída compacta de CSS e Javascript';
-$lang['cssdatauri']            = 'Tamaño en bytes ata o cal as imaxes referenciadas nos CSS serán incrustadas na folla de estilos para disminuir o tamaño das cabeceiras das solicitudes HTTP. Entre <code>400</code> e <code>600</code> bytes é un valor axeitado. Establecer a <code>0</code> para deshabilitar.';
-$lang['send404']               = 'Enviar "HTTP 404/Páxina non atopada" para as páxinas inexistentes';
-$lang['broken_iua']            = 'Rachou a función ignore_user_abort no teu sistema? Isto podería causar que o índice de procura non funcione. Coñécese que o IIS+PHP/CGI ráchaa. Bótalle un ollo ao <a href="http://bugs.splitbrain.org/?do=details&amp;task_id=852">Bug 852</a> para obter máis información.';
-$lang['xsendfile']             = 'Empregar a cabeceira X-Sendfile para que o servidor web envie arquivos estáticos? O teu servidor web precisa soportar isto.';
-$lang['renderer_xhtml']        = 'Intérprete a empregar para a saída principal (XHTML) do Wiki';
-$lang['renderer__core']        = '%s (núcleo do Dokuwiki)';
-$lang['renderer__plugin']      = '%s (extensión)';
-$lang['dnslookups']            = 'DokuWiki resolverá os nomes de host das direccións IP dos usuarios que editan as páxinas. Si contas un servidor DNS lento, que non funciona ou non che interesa esta característica, deshabilita esta opción';
-$lang['proxy____host']         = 'Nome do servidor Proxy';
-$lang['proxy____port']         = 'Porto do Proxy';
-$lang['proxy____user']         = 'Nome de usuario do Proxy';
-$lang['proxy____pass']         = 'Contrasinal do Proxy';
-$lang['proxy____ssl']          = 'Utilizar ssl para conectar ao Proxy';
-$lang['proxy____except']       = 'Expresión regular para atopar URLs que deban ser omitidas polo Proxy.';
-$lang['safemodehack']          = 'Activar hack de modo seguro (safemode)';
-$lang['ftp____host']           = 'Servidor FTP para o hack de modo seguro (safemode)';
-$lang['ftp____port']           = 'Porto FTP para o hack de modo seguro(safemode)';
-$lang['ftp____user']           = 'Nome de usuario FTP para o hack de modo seguro(safemode)';
-$lang['ftp____pass']           = 'Contrasinal FTP para o hack de modo seguro(safemode)';
-$lang['ftp____root']           = 'Directorio raigaña do FTP para o hack de modo seguro(safemode)';
-$lang['license_o_']            = 'Non se escolleu nada';
-$lang['typography_o_0']        = 'ningunha';
-$lang['typography_o_1']        = 'Só dobres aspas';
-$lang['typography_o_2']        = 'Todas as aspas (pode que non funcione sempre)';
-$lang['userewrite_o_0']        = 'ningún';
-$lang['userewrite_o_1']        = '.htaccess';
-$lang['userewrite_o_2']        = 'Interno do DokuWiki';
-$lang['deaccent_o_0']          = 'desconectado';
-$lang['deaccent_o_1']          = 'Eliminar acentos';
-$lang['deaccent_o_2']          = 'romanizar';
-$lang['gdlib_o_0']             = 'Libraría GD non dispoñíbel';
-$lang['gdlib_o_1']             = 'Versión 1.x';
-$lang['gdlib_o_2']             = 'Detección automática';
-$lang['rss_type_o_rss']        = 'RSS 0.91';
-$lang['rss_type_o_rss1']       = 'RSS 1.0';
-$lang['rss_type_o_rss2']       = 'RSS 2.0';
-$lang['rss_type_o_atom']       = 'Atom 0.3';
-$lang['rss_type_o_atom1']      = 'Atom 1.0';
-$lang['rss_content_o_abstract'] = 'Sumario';
-$lang['rss_content_o_diff']    = 'Formato Unified Diff';
-$lang['rss_content_o_htmldiff'] = 'Táboa diff formatada en HTML';
-$lang['rss_content_o_html']    = 'Contido HTML completo da páxina';
-$lang['rss_linkto_o_diff']     = 'vista de diferenzas';
-$lang['rss_linkto_o_page']     = 'a páxina revisada';
-$lang['rss_linkto_o_rev']      = 'listaxe de revisións';
-$lang['rss_linkto_o_current']  = 'a páxina actual';
-$lang['compression_o_0']       = 'ningunha';
-$lang['compression_o_gz']      = 'gzip';
-$lang['compression_o_bz2']     = 'bz2';
-$lang['xsendfile_o_0']         = 'non o empregues';
-$lang['xsendfile_o_1']         = 'Cabeceira lighttpd propietaria (denantes da versión 1.5)';
-$lang['xsendfile_o_2']         = 'Cabeceira X-Sendfile estándar';
-$lang['xsendfile_o_3']         = 'Cabeceira X-Accel-Redirect propia de Nginx';
-$lang['showuseras_o_loginname'] = 'Nome de inicio de sesión';
-$lang['showuseras_o_username'] = 'Nome completo do usuario';
-$lang['showuseras_o_email']    = 'Enderezo de correo-e do usuario (ofuscado segundo a configuración mailguard)';
-$lang['showuseras_o_email_link'] = 'Enderezo de correo-e do usuario como ligazón mailto:';
-$lang['useheading_o_0']        = 'Endexamais';
-$lang['useheading_o_navigation'] = 'Só Navegación';
-$lang['useheading_o_content']  = 'Só Contido do Wiki';
-$lang['useheading_o_1']        = 'Sempre';
-$lang['readdircache']          = 'Edad máxima para o directorio de caché (seg)';
diff --git a/wiki/lib/plugins/config/lang/he/intro.txt b/wiki/lib/plugins/config/lang/he/intro.txt
deleted file mode 100644
index d61a938..0000000
--- a/wiki/lib/plugins/config/lang/he/intro.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-====== מנהל תצורה ======
-
-ניתן להשתמש בדף ×–×” לשליטה על הגדרות התקנת ×”-Dokuwiki שלך.  לעזרה בנוגע להגדרות ספציפיות ניתן לפנות ×ל [[doku>config]]. למידע נוסף ×ודות תוסף ×–×” ניתן לפנות ×ל [[doku>plugin:config]].
-
-הגדרות ×¢× ×¨×§×¢ ×דו×-בהיר מוגנות ו×ין ×פשרות לשנותן ×¢× ×ª×•×¡×£ ×–×”. הגדרות ×¢× ×¨×§×¢ כחול הן בעלות ערך ברירת המחדל והגדרות ×¢× ×¨×§×¢ לבן הוגדרו ב×ופן מקומי עבור התקנה זו. ההגדרות בעלות ×”×¨×§×¢×™× ×”×›×—×•×œ והלבן הן ברות שינוי.
-
-יש לזכור ללחוץ על כפתור ×”**שמירה** ×˜×¨× ×¢×–×™×‘×ª דף ×–×” פן ×™×בדו השינויי×.
diff --git a/wiki/lib/plugins/config/lang/he/lang.php b/wiki/lib/plugins/config/lang/he/lang.php
deleted file mode 100644
index 8c986ae..0000000
--- a/wiki/lib/plugins/config/lang/he/lang.php
+++ /dev/null
@@ -1,166 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Guy Yakobovitch <guy.yakobovitch@gmail.com>
- * @author DoK <kamberd@yahoo.com>
- * @author Moshe Kaplan <mokplan@gmail.com>
- * @author Yaron Yogev <yaronyogev@gmail.com>
- * @author Yaron Shahrabani <sh.yaron@gmail.com>
- * @author sagi <sagiyosef@gmail.com>
- */
-$lang['menu']                  = 'הגדרות תצורה';
-$lang['error']                 = 'ההגדרות ×œ× ×¢×•×“×›× ×• בגלל ערך ×œ× ×ª×§×£, × × ×œ×¢×™×™×Ÿ ×‘×©×™× ×•×™×™× ×•×œ×©×œ×•×— שנית.
-                       <br />×”×¢×¨×›×™× ×©××™× × × ×›×•× ×™× ×™×¡×•×ž× ×• בגבול ×דו×.';
-$lang['updated']               = 'ההגדרות עודכנו בהצלחה.';
-$lang['nochoice']              = '(×ין ×פשרויות זמינות נוספות)';
-$lang['locked']                = 'קובץ ההגדרות ×ינו בר עידכון, ×× ×”×“×‘×¨ ×ינו מכוון, <br />
-                       יש ×œ×•×“× ×›×™ קובץ ההגדרות המקומי וההרש×ות נכוני×.';
-$lang['_configuration_manager'] = 'מנהל תצורה';
-$lang['_header_dokuwiki']      = 'הגדרות DokuWiki';
-$lang['_header_plugin']        = 'הגדרות תוסף';
-$lang['_header_template']      = 'הגדרות תבנית';
-$lang['_header_undefined']     = 'הגדרות שונות';
-$lang['_basic']                = 'הגדרות בסיסיות';
-$lang['_display']              = 'הגדרות תצוגה';
-$lang['_authentication']       = 'הגדרות הזדהות';
-$lang['_anti_spam']            = 'הגדרות נגד דו×ר זבל';
-$lang['_editing']              = 'הגדרות עריכה';
-$lang['_links']                = 'הגדרות קישורי×';
-$lang['_media']                = 'הגדרות מדיה';
-$lang['_advanced']             = 'הגדרות מתקדמות';
-$lang['_network']              = 'הגדרות רשת';
-$lang['_msg_setting_undefined'] = '×ין מידע-על להגדרה.';
-$lang['_msg_setting_no_class'] = '×ין קבוצה להגדרה.';
-$lang['_msg_setting_no_default'] = '×ין ערך ברירת מחדל.';
-$lang['title']                 = 'כותרת הויקי';
-$lang['start']                 = '×©× ×“×£ הפתיחה';
-$lang['lang']                  = 'שפה';
-$lang['template']              = 'תבנית';
-$lang['savedir']               = 'ספריה לשמירת מידע';
-$lang['basedir']               = 'ספרית בסיס';
-$lang['baseurl']               = 'כתובת URL בסיסית';
-$lang['dmode']                 = 'מצב יצירת ספריה';
-$lang['fmode']                 = 'מצב יצירת קובץ';
-$lang['allowdebug']            = '×פשר דיבוג <b>יש לבטל ×× ×ין צורך!</b>';
-$lang['recent']                = '×©×™× ×•×™×™× ×חרוני×';
-$lang['recent_days']           = 'כמה ×©×™× ×•×™×™× ××—×¨×•× ×™× ×œ×©×ž×•×¨ (ימי×)';
-$lang['breadcrumbs']           = 'מספר עקבות להיסטוריה';
-$lang['youarehere']            = 'עקבות היררכיות להיסטוריה';
-$lang['fullpath']              = 'הצגת נתיב ×ž×œ× ×œ×“×¤×™× ×‘×ª×—×ª×™×ª';
-$lang['typography']            = 'שימוש בחלופות טיפוגרפיות';
-$lang['dformat']               = 'תסדיר ת×ריך (× × ×œ×¤× ×•×ª לפונקציה <a href="http://php.net/strftime">strftime</a> של PHP)';
-$lang['signature']             = 'חתימה';
-$lang['toptoclevel']           = 'רמה עליונה בתוכן ×”×¢× ×™× ×™×';
-$lang['maxtoclevel']           = 'רמה מירבית בתוכן ×”×¢× ×™× ×™×';
-$lang['maxseclevel']           = 'רמה מירבית בעריכת קטעי×';
-$lang['camelcase']             = 'השתמש בר×שיות גדולות לקישורי×';
-$lang['deaccent']              = '× ×§×” שמות דפי×';
-$lang['useheading']            = 'השתמש בכותרת הר×שונה ×œ×©× ×”×“×£';
-$lang['sneaky_index']          = 'כברירת מחדל, דוקוויקי יציג ×ת כל מרחבי השמות בתצוגת תוכן ×”×¢× ×™× ×™×. בחירה ב×פשרות ×–×ת תסתיר ×ת ×לו ×©×‘×”× ×œ×ž×©×ª×ž×© ×ין הרש×ות קרי××”. התוצ××” עלולה להיות הסתרת תת מרחבי שמות ××œ×™×”× ×™×© למשתמש גישה. ב×ופן ×–×” תוכן ×”×¢× ×™× ×™× ×¢×œ×•×œ להפוך לחסר תועלת ×¢× ×”×’×“×¨×•×ª ACL מסוימות';
-$lang['hidepages']             = 'הסתר ×“×¤×™× ×ª×•××ž×™× (×‘×™×˜×•×™×™× ×¨×’×•×œ×¨×™×™×)';
-$lang['useacl']                = 'השתמש ברשימות בקרת גישה';
-$lang['autopasswd']            = 'צור סיסמ×ות ב×ופן ×וטומטי';
-$lang['authtype']              = 'מנוע הזדהות';
-$lang['passcrypt']             = 'שיטת הצפנת סיסמ×ות';
-$lang['defaultgroup']          = 'קבוצת ברירת המחדל';
-$lang['superuser']             = 'משתמש-על';
-$lang['manager']               = 'מנהל - קבוצה, משתמש ×ו רשימה מופרדת ×‘×¤×¡×™×§×™× ×ž×©×ª×ž×©1, @קבוצה1, משתמש2 ×¢× ×’×™×©×” לפעולות ניהול מסוימות.';
-$lang['profileconfirm']        = '×שר שינוי ×¤×¨×•×¤×™×œ×™× ×¢× ×¡×™×¡×ž×”';
-$lang['disableactions']        = 'בטל פעולות DokuWiki';
-$lang['disableactions_check']  = 'בדיקה';
-$lang['disableactions_subscription'] = 'הרשמה/הסרה מרשימה';
-$lang['disableactions_wikicode'] = 'הצגת המקור/×™×¦×•× ×’×•×œ×ž×™';
-$lang['disableactions_other']  = 'פעולות ×חרות (מופרדות בפסיק)';
-$lang['auth_security_timeout'] = 'מגבלת ×בטח פסק הזמן להזדהות (שניות)';
-$lang['usewordblock']          = 'חסימת דו×ר זבל לפי רשימת מילי×';
-$lang['relnofollow']           = 'השתמש ב- rel="nofollow" ×œ×§×™×©×•×¨×™× ×—×™×¦×•× ×™×™×';
-$lang['indexdelay']            = 'השהיה ×‘×˜×¨× ×”×›× ×¡×” ל×ינדקס (שניות)';
-$lang['mailguard']             = 'הגן על כתובות דו×"ל';
-$lang['iexssprotect']          = 'בדוק ×ת ×”×“×¤×™× ×”×ž×•×¢×œ×™× ×œ×—×©×“ ל-JavaScript ×ו קוד HTML זדוני';
-$lang['usedraft']              = 'שמור טיוטות ב×ופן ×וטומטי בעת עריכה';
-$lang['htmlok']                = '×ישור שיבוץ HTML';
-$lang['phpok']                 = '×ישור שיבוץ PHP';
-$lang['locktime']              = 'גיל מירבי לקבצי נעילה (שניות)';
-$lang['cachetime']             = 'גיל מירבי לזכרון מטמון (שניות)';
-$lang['target____wiki']        = 'חלון יעד ×œ×§×™×©×•×¨×™× ×¤× ×™×ž×™×™×';
-$lang['target____interwiki']   = 'חלון יעד ×œ×§×™×©×•×¨×™× ×‘×™×Ÿ מערכות ויקי';
-$lang['target____extern']      = 'חלון יעד ×œ×§×™×©×•×¨×™× ×—×™×¦×•× ×™×™×';
-$lang['target____media']       = 'חלון יעד לקישור למדיה';
-$lang['target____windows']     = 'חלון יעד לתיקיות משותפות';
-$lang['refcheck']              = 'בדוק שיוך מדיה';
-$lang['gdlib']                 = 'גרסת ספרית ה-GD';
-$lang['im_convert']            = 'נתיב לכלי ה-convert של ImageMagick';
-$lang['jpg_quality']           = '×יכות הדחיסה של JPG (0-100)';
-$lang['fetchsize']             = 'גודל הקובץ המירבי (bytes) ש-fetch.php יכול להוריד מבחוץ';
-$lang['subscribers']           = 'התר תמיכה ×‘×¨×™×©×•× ×œ×“×¤×™×';
-$lang['notify']                = 'שלח התר×ות על ×©×™× ×•×™×™× ×œ×›×ª×•×‘×ª דו×"ל זו';
-$lang['registernotify']        = 'שלח מידע על ×ž×©×ª×ž×©×™× ×¨×©×•×ž×™× ×—×“×©×™× ×œ×›×ª×•×‘×ª דו×"ל זו';
-$lang['mailfrom']              = 'כתובת הדו×"ל לשימוש בדברי דו×"ל ×וטומטיי×';
-$lang['sitemap']               = 'צור מפת ×תר של Google (ימי×)';
-$lang['rss_type']              = 'סוג פלט XML';
-$lang['rss_linkto']            = 'פלט ×”-XML מקשר ×ל';
-$lang['rss_content']           = 'מה להציג בפרטי פלט ה-XML';
-$lang['rss_update']            = 'פלט ה-XML מתעדכן כל (שניות)';
-$lang['rss_show_summary']      = 'פלט ה-XML מציג תקציר בכותרת';
-$lang['updatecheck']           = 'בדיקת עידכוני ×בטחה והתר×ות? על DokuWiki להתקשר ×ל update.dokuwiki.org לצורך כך.';
-$lang['userewrite']            = 'השתמש בכתובות URL יפות';
-$lang['useslash']              = 'השתמש בלוכסן להגדרת מרחבי שמות בכתובות';
-$lang['sepchar']               = 'מפריד בין מילות ש×-דף';
-$lang['canonical']             = 'השתמש בכתובות URL מל×ות';
-$lang['autoplural']            = 'בדוק לצורת ×¨×‘×™× ×‘×§×™×©×•×¨×™×';
-$lang['compression']           = '×ופן דחיסת ×§×‘×¦×™× ×‘-attic';
-$lang['gzip_output']           = 'השתמש בקידוד תוכן של gzip עבור xhtml';
-$lang['compress']              = 'פלט קומפקטי של CSS ו-javascript';
-$lang['send404']               = 'שלח "HTTP 404/Page Not Found" עבור ×“×¤×™× ×©××™× × ×§×™×™×ž×™×';
-$lang['broken_iua']            = '×”×× ×”×¤×¢×•×œ×” ignore_user_abort תקולה במערכת שלך? הדבר עלול ×œ×”×‘×™× ×œ×ª×•×›×Ÿ חיפוש ש×ינו תקין. IIS+PHP/CGI ידוע כתקול. ר××” ×ת <a href="http://bugs.splitbrain.org/?do=details&amp;task_id=852">ב××’ 852</a> למידע נוסף';
-$lang['xsendfile']             = 'להשתמש בכותר X-Sendfile כדי ל×פשר לשרת לספק ×§×‘×¦×™× ×¡×˜×˜×™×™×? על השרת שלך לתמוך ב×פשרות ×–×ת.';
-$lang['renderer_xhtml']        = 'מחולל לשימוש עבור פלט הויקי העיקרי (xhtml)';
-$lang['renderer__core']        = '%s (ליבת דוקוויקי)';
-$lang['renderer__plugin']      = '%s (הרחבות)';
-$lang['proxy____host']         = '×©× ×”×©×¨×ª המתווך';
-$lang['proxy____port']         = 'שער השרת המתווך';
-$lang['proxy____user']         = '×©× ×”×ž×©×ª×ž×© בשרת המתווך';
-$lang['proxy____pass']         = 'סיסמת ההשרת המתווך';
-$lang['proxy____ssl']          = 'השתמש ב-ssl כדי להתחבר לשרת המתווך';
-$lang['safemodehack']          = '×פשר שימוש בפתרון ל-safemode';
-$lang['ftp____host']           = 'שרת FTP עבור פתרון ה-safemode';
-$lang['ftp____port']           = 'שער ה-FTP עבור פתרון ה-safemode';
-$lang['ftp____user']           = '×©× ×”×ž×©×ª×ž×© ב-FTPעבור פתרון ×”-safemode';
-$lang['ftp____pass']           = 'סיסמת ה-FTP לפתרון ה-safemode';
-$lang['ftp____root']           = 'ספרית השורש ב-FTP עבור פתרון ה-safemode';
-$lang['typography_o_0']        = 'לל×';
-$lang['typography_o_1']        = 'רק ×’×¨×©×™×™× ×›×¤×•×œ×™×';
-$lang['typography_o_2']        = 'כל ×”×’×¨×©×™× (עלול ×©×œ× ×œ×¢×‘×•×“ לעיתי×)';
-$lang['userewrite_o_0']        = 'לל×';
-$lang['userewrite_o_1']        = '.htaccess';
-$lang['userewrite_o_2']        = 'פנימי של DokuWiki';
-$lang['deaccent_o_0']          = 'כבוי';
-$lang['deaccent_o_1']          = 'הסר ניבי×';
-$lang['deaccent_o_2']          = 'הסב ללטינית';
-$lang['gdlib_o_0']             = 'ספרית ×”-GD ××™× ×” זמינה';
-$lang['gdlib_o_1']             = 'גרסה 1.x';
-$lang['gdlib_o_2']             = 'זיהוי ×וטומטי';
-$lang['rss_type_o_rss']        = 'RSS 0.91';
-$lang['rss_type_o_rss1']       = 'RSS 1.0';
-$lang['rss_type_o_rss2']       = 'RSS 2.0';
-$lang['rss_type_o_atom']       = 'Atom 0.3';
-$lang['rss_type_o_atom1']      = 'Atom 1.0';
-$lang['rss_content_o_abstract'] = 'תקציר';
-$lang['rss_content_o_diff']    = '×”×‘×“×œ×™× ×ž×וחדי×';
-$lang['rss_content_o_htmldiff'] = 'טבלת HTML של ההבדלי×';
-$lang['rss_content_o_html']    = '×ž×œ×•× ×ª×•×›×Ÿ דף HTML';
-$lang['rss_linkto_o_diff']     = 'תצוגת הבדלי×';
-$lang['rss_linkto_o_page']     = 'הדף שהשתנה';
-$lang['rss_linkto_o_rev']      = 'גרס×ות קודמות';
-$lang['rss_linkto_o_current']  = 'הדף הנוכחי';
-$lang['compression_o_0']       = 'לל×';
-$lang['compression_o_gz']      = 'gzip';
-$lang['compression_o_bz2']     = 'bz2';
-$lang['xsendfile_o_0']         = '×ל תשתמש';
-$lang['xsendfile_o_1']         = 'כותר lighttpd קנייני (לפני גרסה 1.5)';
-$lang['xsendfile_o_2']         = 'כותר X-Sendfile רגיל';
-$lang['xsendfile_o_3']         = 'כותר Nginx X-Accel-Redirect קנייני';
-$lang['useheading_o_navigation'] = 'ניווט בלבד';
-$lang['useheading_o_1']        = 'תמיד';
diff --git a/wiki/lib/plugins/config/lang/hi/lang.php b/wiki/lib/plugins/config/lang/hi/lang.php
deleted file mode 100644
index a224fdf..0000000
--- a/wiki/lib/plugins/config/lang/hi/lang.php
+++ /dev/null
@@ -1,14 +0,0 @@
-<?php
-/**
- * Hindi language file
- *
- * @author Abhinav Tyagi <abhinavtyagi11@gmail.com>
- * @author yndesai@gmail.com
- */
-$lang['sepchar']               = 'पृषà¥à¤  का नाम शबà¥à¤¦ पà¥à¤°à¤¥à¤•à¥à¤•र';
-$lang['sitemap']               = 'गूगल का सूचना पटल नकà¥à¤¶à¤¾ बनायें (दिन)';
-$lang['license_o_']            = 'कà¥à¤› नहीं चà¥à¤¨à¤¾';
-$lang['typography_o_0']        = 'कà¥à¤› नहीं';
-$lang['showuseras_o_username'] = 'उपयोगकरà¥à¤¤à¤¾ का पूरà¥à¤£ नाम';
-$lang['useheading_o_0']        = 'कभी नहीं';
-$lang['useheading_o_1']        = 'हमेशा';
diff --git a/wiki/lib/plugins/config/lang/hr/intro.txt b/wiki/lib/plugins/config/lang/hr/intro.txt
deleted file mode 100644
index 66ebdc0..0000000
--- a/wiki/lib/plugins/config/lang/hr/intro.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-====== Upravljanje postavkama ======
-
-Koristite ovu stranicu za upravljanje postavkama Vaše DokuWiki instalacije. Za pomoć o pojedinim postavkama pogledajte [[doku>config|konfiguraciju]]. Za više detalja o ovom dodatku pogledajte [[doku>plugin:config]].
-
-Postavke prikazane u svjetlo crvenoj pozadini su zaÅ¡tićene i ne mogu biti mijenjane pomoću ovog dodatka. Postavke s plavom pozadinom sadrže inicijalno podrazumijevane vrijednosti, dok postavke s bijelom pozadinom sadrže korisniÄki postavljene vrijednosti. I plave i bijele postavke se mogu mijenjati.
-
-Zapamtite da pritisnete **Pohrani** gumb prije nego napustite ovu stranicu ili će izmjene biti izgubljene.
diff --git a/wiki/lib/plugins/config/lang/hr/lang.php b/wiki/lib/plugins/config/lang/hr/lang.php
deleted file mode 100644
index d6f93b3..0000000
--- a/wiki/lib/plugins/config/lang/hr/lang.php
+++ /dev/null
@@ -1,210 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Davor Turkalj <turki.bsc@gmail.com>
- */
-$lang['menu']                  = 'Konfiguracijske postavke';
-$lang['error']                 = 'Postavke nisu ažurirane zbog neispravnih vrijednosti, molim provjerite vaše promjene i ponovo ih pohranite.
-                  <br />Neispravne vrijednosti biti će oznaÄene crvenim rubom.';
-$lang['updated']               = 'Postavke uspješno izmijenjene.';
-$lang['nochoice']              = '(ne postoje druge mogućnosti odabira)';
-$lang['locked']                = 'Postavke ne mogu biti izmijenjene, ako je to nenamjerno, <br />
-                       osigurajte da su ime datoteke lokalnih postavki i dozvole ispravni.';
-$lang['danger']                = 'Opasnost: Promjena ove opcije može uÄiniti nedostupnim VaÅ¡ wiki i izbornik upravljanja postavkama.';
-$lang['warning']               = 'Upozorenje: Izmjena ove opcije može izazvati neželjeno ponašanje.';
-$lang['security']              = 'Sigurnosno upozorenje: Izmjena ove opcije može izazvati sigurnosni rizik.';
-$lang['_configuration_manager'] = 'Upravljanje postavkama';
-$lang['_header_dokuwiki']      = 'DokuWiki';
-$lang['_header_plugin']        = 'Dodatak';
-$lang['_header_template']      = 'Predložak';
-$lang['_header_undefined']     = 'Nedefinirana postavka';
-$lang['_basic']                = 'Osnovno';
-$lang['_display']              = 'Prikaz';
-$lang['_authentication']       = 'Prijava';
-$lang['_anti_spam']            = 'Protu-Spam';
-$lang['_editing']              = 'Izmjena';
-$lang['_links']                = 'PreÄaci';
-$lang['_media']                = 'Mediji';
-$lang['_notifications']        = 'Obavijesti';
-$lang['_syndication']          = 'RSS izvori';
-$lang['_advanced']             = 'Napredno';
-$lang['_network']              = 'Mreža';
-$lang['_msg_setting_undefined'] = 'Nema postavke meta_podatka.';
-$lang['_msg_setting_no_class'] = 'Nema postavke klase.';
-$lang['_msg_setting_no_default'] = 'Nema podrazumijevane vrijednosti.';
-$lang['title']                 = 'Wiki naslov, odnosno naziv Vašeg wikija';
-$lang['start']                 = 'Naziv poÄetne stranice u svakom imenskom prostoru';
-$lang['lang']                  = 'Jezik suÄelja';
-$lang['template']              = 'Predložak, odnosno izgled wikija.';
-$lang['tagline']               = 'Opisni redak Wiki naslova (ako ga predložak podržava)';
-$lang['sidebar']               = 'Naziv boÄne stranice (ako ga predložak podržava), prazno polje onemogućuje boÄnu stranicu';
-$lang['license']               = 'Pod kojom licencom će sadržaj biti objavljen?';
-$lang['savedir']               = 'Pod-direktoriji gdje se pohranjuju podatci';
-$lang['basedir']               = 'Staza poslužitelja (npr. <code>/dokuwiki/</code>). Ostavite prazno za auto-detekciju.';
-$lang['baseurl']               = 'URL poslužitelja (npr. <code>http://www.yourserver.com</code>). Ostavite prazno za auto-detekciju.';
-$lang['cookiedir']             = 'Staza za kolaÄiće. Ostavite prazno za bazni URL.';
-$lang['dmode']                 = 'Mod kreiranja diretorija';
-$lang['fmode']                 = 'Mod kreiranja datoteka';
-$lang['allowdebug']            = 'Omogući uklanjanje pogrešaka. <b>Onemogiućiti ako nije potrebno!</b>';
-$lang['recent']                = 'Broj unosa po stranici na nedavnim promjenama';
-$lang['recent_days']           = 'Koliko nedavnih promjena da se Äuva (dani)';
-$lang['breadcrumbs']           = 'Broj nedavnih stranica koji se prikazuje. Postavite na 0 da biste onemogućili.';
-$lang['youarehere']            = 'Prikaži hijerarhijsku stazu stranice (tada vjerojatno želite onemogućiti gornju opciju)';
-$lang['fullpath']              = 'Prikaži punu putanju u podnožju stranice';
-$lang['typography']            = 'Napravi tipografske zamjene';
-$lang['dformat']               = 'Format datuma (pogledajte PHP <a href="http://php.net/strftime">strftime</a> funkciju)';
-$lang['signature']             = 'Å to  ubacuje gumb potpisa u ureÄ‘ivaÄu';
-$lang['showuseras']            = 'Što da prikažem za korisnika koji je napravio zadnju izmjenu';
-$lang['toptoclevel']           = 'Najviši nivo za sadržaj stranice';
-$lang['tocminheads']           = 'Minimalni broj naslova koji određuje da li će biti prikazan sadržaj stranice';
-$lang['maxtoclevel']           = 'Maksimalni broj nivoa u sadržaju stranice';
-$lang['maxseclevel']           = 'Maksimalni nivo do kojeg se omogućuje izmjena dijela stranice';
-$lang['camelcase']             = 'Koristi CamelCase za poveznice (veliko poÄetno slovo svake rijeÄi)';
-$lang['deaccent']              = 'Kako se proÄišćuje naziv stranice';
-$lang['useheading']            = 'Koristi prvi naslov za naziv stranice';
-$lang['sneaky_index']          = 'Inicijalno DokuWiki će prikazati sve imenske prostore u site mapi. Omogućavanjem ove opcije biti će sakriveni oni za koje korisnik nema barem pravo Äitanja. Ovo može rezultirati skrivanjem podimenskih prostora koji su inaÄe pristupaÄni, Å¡to može indeks uÄiniti nekorisnim pod odreÄ‘enim postavkama ACL-a.';
-$lang['hidepages']             = 'Kod potrage mape stranica i drugih automatskih indeksa ne prikazuj stranice koje zadovoljavaju ovaj regularni izraz';
-$lang['useacl']                = 'Koristi kontrolnu listu pristupa';
-$lang['autopasswd']            = 'Auto-generiranje lozinki';
-$lang['authtype']              = 'Mehanizam za identificiranje korisnika';
-$lang['passcrypt']             = 'Metoda šifriranja lozinki';
-$lang['defaultgroup']          = 'Osnovna grupa';
-$lang['superuser']             = 'Superuser - grupa, korisnik ili zarezom odvojena lista  (npr. korisnik1,@grupa1,korisnik2) s punim pravom pristupa svim stranicama i funkcionalnostima neovisno o ACL postavkama';
-$lang['manager']               = 'Manager - grupa, korisnik ili zarezom odvojena lista  (npr. korisnik1,@grupa1,korisnik2) s pristupom odreÄ‘enim upravljaÄkim funkcijama';
-$lang['profileconfirm']        = 'Potvrdi promjene profila sa lozinkom';
-$lang['rememberme']            = 'Omogući trajne kolaÄiće za prijavu (zapamti me)';
-$lang['disableactions']        = 'Onemogući određene DokuWiki aktivnosti';
-$lang['disableactions_check']  = 'Provjeri';
-$lang['disableactions_subscription'] = 'Pretplati/Odjavi';
-$lang['disableactions_wikicode'] = 'Vidi izvorni kod/Izvezi sirovi oblik';
-$lang['disableactions_profile_delete'] = 'Obriši svog korisnika';
-$lang['disableactions_other']  = 'Ostale aktivnosti (odvojene zarezom)';
-$lang['disableactions_rss']    = 'XML Syndication (RSS)';
-$lang['auth_security_timeout'] = 'Vremenski limit za prijavu (sekunde)';
-$lang['securecookie']          = 'Da li će kolaÄići poslani HTTPS-om biti poslani HTTPS-om od strane preglednika? Onemogući ovu opciju kada je samo prijava osigurana SSL-om a ne i pristup stranicama.';
-$lang['remote']                = 'Omogući udaljeni API. Ovo omogućava drugim aplikacijama pristup wikiju korištenjem XML-RPC i drugih mehanizama.';
-$lang['remoteuser']            = 'OgraniÄi pristup udaljenom API-u samo korisnicima i grupama navedenim ovdje u listi odvojenoj zarezom. Ostavi prazno za pristup omogućen svima.';
-$lang['usewordblock']          = 'Zaustavi spam baziran na listi rijeÄi';
-$lang['relnofollow']           = 'Koristi rel="nofollow" na vanjskim poveznicama';
-$lang['indexdelay']            = 'ÄŒekanje prije indeksiranja (sek.)';
-$lang['mailguard']             = 'Prikrivanje e-mail adresa';
-$lang['iexssprotect']          = 'Provjeri uÄitane datoteke za potencijalno maliciozni JavaScript ili HTML kod';
-$lang['usedraft']              = 'Automatski pohrani nacrte promjena tijekom uređivanja';
-$lang['htmlok']                = 'Omogući ugrađeni HTML';
-$lang['phpok']                 = 'Omogući ugrađeni PHP';
-$lang['locktime']              = 'Maksimalna trajanje zakljuÄavanja (sek.)';
-$lang['cachetime']             = 'Maksimalno trajanje priruÄne pohrane (sek.)';
-$lang['target____wiki']        = 'Odredišni prozor za interne poveznice';
-$lang['target____interwiki']   = 'Odredišni prozor za interwiki poveznice';
-$lang['target____extern']      = 'Odredišni prozor za vanjske poveznice';
-$lang['target____media']       = 'Odredišni prozor za medijske poveznice';
-$lang['target____windows']     = 'Odredišni prozor za windows poveznice';
-$lang['mediarevisions']        = 'Omogućiti revizije medijskih datoteka?';
-$lang['refcheck']              = 'Provjeri prije brisanja da li se medijska datoteka još uvijek koristi';
-$lang['gdlib']                 = 'InaÄica GD Lib';
-$lang['im_convert']            = 'Staza do ImageMagick\'s konverzijskog alata';
-$lang['jpg_quality']           = 'Kvaliteta kompresije JPG-a (0-100)';
-$lang['fetchsize']             = 'Maksimalna veliÄina (bajtovi) koju fetch.php može uÄitati iz vanjskih URL-ova. npr. za pohranu i promjenu veliÄine vanjskih slika.';
-$lang['subscribers']           = 'Omogući korisnicima preplatu na promjene preko e-pošte';
-$lang['subscribe_time']        = 'Vrijeme (sek.) nakon kojeg se šalju pretplatne liste. Trebalo bi biti manje od od vremena navedenog u recent_days parametru.';
-$lang['notify']                = 'Uvijek šalji obavijesti o promjenama na ovu adresu epošte';
-$lang['registernotify']        = 'Uvijek šalji obavijesti o novo-kreiranim korisnicima na ovu adresu epošte';
-$lang['mailfrom']              = 'Adresa pošiljatelja epošte koja se koristi pri slanju automatskih poruka';
-$lang['mailreturnpath']        = 'Adresa e-pošte primatelja za obavijesti o ne-isporuci';
-$lang['mailprefix']            = 'Prefiks predmeta poruke kod automatskih poruka. Ostaviti prazno za korištenje naslova wikija';
-$lang['htmlmail']              = 'Å alji ljepÅ¡e, ali i veće poruke u HTML obliku. Onemogući za slanje poruka kao obiÄan tekst.';
-$lang['sitemap']               = 'Generiraj Google mapu stranica svakih (dana). 0 za onemogućivanje';
-$lang['rss_type']              = 'tip XML feed-a';
-$lang['rss_linkto']            = 'XML feed povezuje na';
-$lang['rss_content']           = 'Å to da se prikazuje u stavkama XML feed-a?';
-$lang['rss_update']            = 'Interval obnavljanja XML feed-a (sek.)';
-$lang['rss_show_summary']      = 'Prikaz sažetka u naslovu XML feed-a';
-$lang['rss_media']             = 'Koje vrste promjena trebaju biti prikazane u XML feed-u?';
-$lang['rss_media_o_both']      = 'oboje';
-$lang['rss_media_o_pages']     = 'stranice';
-$lang['rss_media_o_media']     = 'medij';
-$lang['updatecheck']           = 'Provjera za nadogradnje i sigurnosna upozorenja? DokuWiki treba imati pristup do dokuwiki.org za ovo.';
-$lang['userewrite']            = 'Koristi jednostavne URL-ove';
-$lang['useslash']              = 'Koristi kosu crtu kao separator imenskih prostora u URL-ovima';
-$lang['sepchar']               = 'Separator rijeÄi u nazivu stranice';
-$lang['canonical']             = 'Uvije koristi puni kanonski oblik URL-ova (puna apsolutna staza)';
-$lang['fnencode']              = 'Metoda kodiranja ne-ASCII imena datoteka.';
-$lang['autoplural']            = 'Provjera izraza u množini u poveznicama';
-$lang['compression']           = 'Vrsta kompresije za pohranu attic datoteka';
-$lang['gzip_output']           = 'Koristi gzip Content-Encoding za xhtml';
-$lang['compress']              = 'Sažmi CSS i javascript izlaz';
-$lang['cssdatauri']            = 'VeliÄina u bajtovima do koje slike navedene u CSS datotekama će biti ugraÄ‘ene u stylesheet kako bi se smanjilo prekoraÄenje zaglavlja HTTP zathjeva . <code>400</code> do <code>600</code> bajtova je dobra vrijednost. Postavi <code>0</code> za onemogućavanje.';
-$lang['send404']               = 'Pošalji "HTTP 404/Page Not Found" za nepostojeće stranice';
-$lang['broken_iua']            = 'Da li je ignore_user_abort funkcija neispravna na vašem sustavu? Ovo može izazvati neispravan indeks pretrage. IIS+PHP/CGI je poznat po neispravnosti. Pogledaj <a href="http://bugs.dokuwiki.org/?do=details&amp;task_id=852">Bug 852</a> za više informacija.';
-$lang['xsendfile']             = 'Koristi X-Sendfile zaglavlje da se dopusti web poslužitelj dostavu statiÄkih datoteka? VaÅ¡ web poslužitelj ovo mora podržavati.';
-$lang['renderer_xhtml']        = 'Mehanizam koji se koristi za slaganje osnovnog (xhtml) wiki izlaza';
-$lang['renderer__core']        = '%s (dokuwiki jezgra)';
-$lang['renderer__plugin']      = '%s (dodatak)';
-$lang['search_nslimit']        = 'OgraniÄi potragu na trenutnih X imenskih prostora. Kada se potraga izvrÅ¡i s strane unutar dubljeg imenskog prostora, prvih X imenskih prostora će biti dodano u filtar';
-$lang['search_fragment']       = 'Odredi podrazumijevani naÄin djelomiÄne pretrage';
-$lang['search_fragment_o_exact'] = 'identiÄno';
-$lang['search_fragment_o_starts_with'] = 'poÄinje s';
-$lang['search_fragment_o_ends_with'] = 'završava s';
-$lang['search_fragment_o_contains'] = 'sadrži';
-$lang['dnslookups']            = 'Da li da DokuWiki potraži ime raÄunala za udaljenu IP adresu korisnik koji je izmijenio stranicu. Ako imate spor ili neispravan DNS server, nemojte koristiti ovu funkcionalnost, onemogućite ovu opciju';
-$lang['jquerycdn']             = 'Da li da se jQuery i jQuery UI script datoteke uÄitavaju sa CDN? To proizvodi dodatne HTTP zahtjeve, ali datoteke se mogu brže uÄitati i korisnici ih već mogu imati uÄitane u od ranije.';
-$lang['jquerycdn_o_0']         = 'Bez CDN, samo lokalna dostava';
-$lang['jquerycdn_o_jquery']    = 'CDN na code.jquery.com';
-$lang['jquerycdn_o_cdnjs']     = 'CDN na cdnjs.com';
-$lang['proxy____host']         = 'Proxy poslužitelj - adresa';
-$lang['proxy____port']         = 'Proxy poslužitelj - port';
-$lang['proxy____user']         = 'Proxy poslužitelj - korisniÄko ime';
-$lang['proxy____pass']         = 'Proxy poslužitelj - lozinka';
-$lang['proxy____ssl']          = 'Koristi SSL za vezu prema proxy poslužitelju';
-$lang['proxy____except']       = 'PreskoÄi proxy za URL-ove koji odgovaraju ovom regularnom izrazu.';
-$lang['safemodehack']          = 'Omogući safemode hack';
-$lang['ftp____host']           = 'FTP poslužitelj za safemode hack';
-$lang['ftp____port']           = 'FTP port za safemode hack';
-$lang['ftp____user']           = 'FTP korisniÄko ime za safemode hack';
-$lang['ftp____pass']           = 'FTP lozinka za safemode hack';
-$lang['ftp____root']           = 'FTP root direktorij za safemode hack';
-$lang['license_o_']            = 'Ništa odabrano';
-$lang['typography_o_0']        = 'ništa';
-$lang['typography_o_1']        = 'iskljuÄivÅ¡i jednostruke navodnike';
-$lang['typography_o_2']        = 'ukljuÄivÅ¡i jednostruke navodnike (ne mora uvijek raditi)';
-$lang['userewrite_o_0']        = 'ništa';
-$lang['userewrite_o_1']        = '.htaccess';
-$lang['userewrite_o_2']        = 'DokuWiki interno';
-$lang['deaccent_o_0']          = 'iskljuÄeno';
-$lang['deaccent_o_1']          = 'ukloni akcente';
-$lang['deaccent_o_2']          = 'romanizacija';
-$lang['gdlib_o_0']             = 'GD Lib nije dostupna';
-$lang['gdlib_o_1']             = 'InaÄica 1.x';
-$lang['gdlib_o_2']             = 'Autodetekcija';
-$lang['rss_type_o_rss']        = 'RSS 0.91';
-$lang['rss_type_o_rss1']       = 'RSS 1.0';
-$lang['rss_type_o_rss2']       = 'RSS 2.0';
-$lang['rss_type_o_atom']       = 'Atom 0.3';
-$lang['rss_type_o_atom1']      = 'Atom 1.0';
-$lang['rss_content_o_abstract'] = 'Sažetak';
-$lang['rss_content_o_diff']    = 'Unificirani Diff';
-$lang['rss_content_o_htmldiff'] = 'HTML formatirana diff tabela';
-$lang['rss_content_o_html']    = 'Puni HTML sadržaj stranice';
-$lang['rss_linkto_o_diff']     = 'pregled razlika';
-$lang['rss_linkto_o_page']     = 'izmijenjena stranica';
-$lang['rss_linkto_o_rev']      = 'lista izmjena';
-$lang['rss_linkto_o_current']  = 'tekuća stranica';
-$lang['compression_o_0']       = 'ništa';
-$lang['compression_o_gz']      = 'gzip';
-$lang['compression_o_bz2']     = 'bz2';
-$lang['xsendfile_o_0']         = 'ne koristi';
-$lang['xsendfile_o_1']         = 'Posebno lighttpd zaglavlje (prije inaÄice 1.5)';
-$lang['xsendfile_o_2']         = 'Standardno X-Sendfile zaglavlje';
-$lang['xsendfile_o_3']         = 'Posebno Nginx X-Accel-Redirect zaglavlje';
-$lang['showuseras_o_loginname'] = 'KorisniÄko ime';
-$lang['showuseras_o_username'] = 'Puno ime korisnika';
-$lang['showuseras_o_username_link'] = 'Puno ime korisnika kao interwiki poveznica';
-$lang['showuseras_o_email']    = 'Korisnikova adresa epošte (prikrivanje prema mailguard postavci)';
-$lang['showuseras_o_email_link'] = 'Korisnikova adresa epošte kao mailto: poveznica';
-$lang['useheading_o_0']        = 'Nikad';
-$lang['useheading_o_navigation'] = 'Samo navigacija';
-$lang['useheading_o_content']  = 'Samo wiki sadržaj';
-$lang['useheading_o_1']        = 'Uvijek';
-$lang['readdircache']          = 'Maksimalna starost za readdir međuspremnik (sek.)';
diff --git a/wiki/lib/plugins/config/lang/hu/intro.txt b/wiki/lib/plugins/config/lang/hu/intro.txt
deleted file mode 100644
index b6b9149..0000000
--- a/wiki/lib/plugins/config/lang/hu/intro.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-====== Beállító központ ======
-
-Ezzel az oldallal finomhangolhatod a DokuWiki rendszeredet. Az egyes beállításokhoz [[doku>config|itt]] kaphatsz segítséget. A bővítmények (pluginek) beállításaihoz [[doku>plugin:config|ezt]] az oldalt látogasd meg.
-
-A világospiros hátterű beállítások védettek, ezzel a bővítménnyel nem módosíthatóak.
-
-A kék hátterű beállítások az alapértelmezett értékek, a fehér hátterűek módosítva lettek ebben a rendszerben. Mindkét hátterű beállítások módosíthatóak.
-
-Ne felejtsd a **Mentés** gombot megnyomni, mielőtt elhagyod az oldalt, különben a módosításaid elvesznek!
diff --git a/wiki/lib/plugins/config/lang/hu/lang.php b/wiki/lib/plugins/config/lang/hu/lang.php
deleted file mode 100644
index 972a731..0000000
--- a/wiki/lib/plugins/config/lang/hu/lang.php
+++ /dev/null
@@ -1,202 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Sandor TIHANYI <stihanyi+dw@gmail.com>
- * @author Siaynoq Mage <siaynoqmage@gmail.com>
- * @author schilling.janos@gmail.com
- * @author Szabó Dávid <szabo.david@gyumolcstarhely.hu>
- * @author Sándor TIHANYI <stihanyi+dw@gmail.com>
- * @author David Szabo <szabo.david@gyumolcstarhely.hu>
- * @author Marton Sebok <sebokmarton@gmail.com>
- */
-$lang['menu']                  = 'Beállítóközpont';
-$lang['error']                 = 'Helytelen érték miatt a módosítások nem mentődtek. Nézd át a módosításokat, és ments újra.
-<br />A helytelen érték(ek)et piros kerettel jelöljük.';
-$lang['updated']               = 'A módosítások sikeresen beállítva.';
-$lang['nochoice']              = '(nincs egyéb lehetőség)';
-$lang['locked']                = 'A beállításokat tartalmazó fájlt nem tudtam frissíteni.<br />
-Nézd meg, hogy a fájl neve és jogosultságai helyesen vannak-e beállítva!';
-$lang['danger']                = 'Figyelem: ezt a beállítást megváltoztatva a konfigurációs menü hozzáférhetetlenné válhat.';
-$lang['warning']               = 'Figyelmeztetés: a beállítás megváltoztatása nem kívánt viselkedést okozhat.';
-$lang['security']              = 'Biztonsági figyelmeztetés: a beállítás megváltoztatása biztonsági veszélyforrást okozhat.';
-$lang['_configuration_manager'] = 'Beállítóközpont';
-$lang['_header_dokuwiki']      = 'DokuWiki beállítások';
-$lang['_header_plugin']        = 'Bővítmények beállításai';
-$lang['_header_template']      = 'Sablon beállítások';
-$lang['_header_undefined']     = 'Nem definiált értékek';
-$lang['_basic']                = 'Alap beállítások';
-$lang['_display']              = 'Megjelenítés beállításai';
-$lang['_authentication']       = 'Azonosítás beállításai';
-$lang['_anti_spam']            = 'Anti-Spam beállítások';
-$lang['_editing']              = 'Szerkesztési beállítások';
-$lang['_links']                = 'Link beállítások';
-$lang['_media']                = 'Média beállítások';
-$lang['_notifications']        = 'Értesítési beállítások';
-$lang['_syndication']          = 'Hírfolyam beállítások';
-$lang['_advanced']             = 'Haladó beállítások';
-$lang['_network']              = 'Hálózati beállítások';
-$lang['_msg_setting_undefined'] = 'Nincs beállított metaadat.';
-$lang['_msg_setting_no_class'] = 'Nincs beállított osztály.';
-$lang['_msg_setting_no_default'] = 'Nincs alapértelmezett érték.';
-$lang['title']                 = 'Wiki neve';
-$lang['start']                 = 'Kezdőoldal neve';
-$lang['lang']                  = 'Nyelv';
-$lang['template']              = 'Sablon';
-$lang['tagline']               = 'Lábléc (ha a sablon támogatja)';
-$lang['sidebar']               = 'Oldalsáv oldal neve (ha a sablon támogatja), az üres mező letiltja az oldalsáv megjelenítését';
-$lang['license']               = 'Milyen licenc alatt érhető el a tartalom?';
-$lang['savedir']               = 'Könyvtár az adatok mentésére';
-$lang['basedir']               = 'Báziskönyvtár (pl. <code>/dokuwiki/</code>). Hagyd üresen az automatikus beállításhoz!';
-$lang['baseurl']               = 'Báziscím (pl. <code>http://www.yourserver.com</code>). Hagyd üresen az automatikus beállításhoz!';
-$lang['cookiedir']             = 'Sütik címe. Hagy üresen a báziscím használatához!';
-$lang['dmode']                 = 'Könyvtár létrehozási maszk';
-$lang['fmode']                 = 'Fájl létrehozási maszk';
-$lang['allowdebug']            = 'Debug üzemmód <b>Kapcsold ki, hacsak biztos nem szükséges!</b>';
-$lang['recent']                = 'Utolsó változatok száma';
-$lang['recent_days']           = 'Hány napig tartsuk meg a korábbi változatokat?';
-$lang['breadcrumbs']           = 'Nyomvonal elemszám';
-$lang['youarehere']            = 'Hierarchikus nyomvonal';
-$lang['fullpath']              = 'Az oldalak teljes útvonalának mutatása a láblécben';
-$lang['typography']            = 'Legyen-e tipográfiai csere';
-$lang['dformat']               = 'Dátum formázás (lásd a PHP <a href="http://php.net/strftime">strftime</a> függvényt)';
-$lang['signature']             = 'Aláírás';
-$lang['showuseras']            = 'A felhasználó melyik adatát mutassunk az utolsó változtatás adatainál?';
-$lang['toptoclevel']           = 'A tartalomjegyzék felső szintje';
-$lang['tocminheads']           = 'Legalább ennyi címsor hatására generálódjon tartalomjegyzék';
-$lang['maxtoclevel']           = 'A tartalomjegyzék mélysége';
-$lang['maxseclevel']           = 'A szakasz-szerkesztés maximális szintje';
-$lang['camelcase']             = 'CamelCase használata hivatkozásként';
-$lang['deaccent']              = 'Oldalnevek ékezettelenítése';
-$lang['useheading']            = 'Az első fejléc legyen az oldalnév';
-$lang['sneaky_index']          = 'Alapértelmezetten minden névtér látszik a DokuWiki áttekintő (index) oldalán. Ezen opció bekapcsolása után azok nem jelennek meg, melyekhez a felhasználónak nincs olvasás joga. De ezzel eltakarhatunk egyébként elérhető al-névtereket is, így bizonyos ACL beállításoknál használhatatlan indexet eredményez ez a beállítás.';
-$lang['hidepages']             = 'Az itt megadott oldalak elrejtése (reguláris kifejezés)';
-$lang['useacl']                = 'Hozzáférési listák (ACL) használata';
-$lang['autopasswd']            = 'Jelszavak automatikus generálása';
-$lang['authtype']              = 'Authentikációs háttérrendszer';
-$lang['passcrypt']             = 'Jelszó titkosítási módszer';
-$lang['defaultgroup']          = 'Alapértelmezett csoport';
-$lang['superuser']             = 'Adminisztrátor - csoport vagy felhasználó, aki teljes hozzáférési joggal rendelkezik az oldalakhoz és funkciókhoz, a hozzáférési jogosultságoktól függetlenül';
-$lang['manager']               = 'Menedzser - csoport vagy felhasználó, aki bizonyos menedzsment funkciókhoz hozzáfér';
-$lang['profileconfirm']        = 'Beállítások változtatásának megerősítése jelszóval';
-$lang['rememberme']            = 'Ãllandó sütik engedélyezése (az "emlékezz rám" funkcióhoz)';
-$lang['disableactions']        = 'Bizonyos DokuWiki tevékenységek (action) tiltása';
-$lang['disableactions_check']  = 'Ellenőrzés';
-$lang['disableactions_subscription'] = 'Feliratkozás/Leiratkozás';
-$lang['disableactions_wikicode'] = 'Forrás megtekintése/Nyers adat exportja';
-$lang['disableactions_profile_delete'] = 'Saját felhasználó törlése';
-$lang['disableactions_other']  = 'Egyéb tevékenységek (vesszővel elválasztva)';
-$lang['disableactions_rss']    = 'XML hírfolyam (RSS)';
-$lang['auth_security_timeout'] = 'Authentikációs biztonsági időablak (másodperc)';
-$lang['securecookie']          = 'A böngészők a HTTPS felett beállított sütijüket csak HTTPS felett küldhetik? Kapcsoljuk ki ezt az opciót, ha csak a bejelentkezést védjük SSL-lel, a wiki tartalmának böngészése nyílt forgalommal történik.';
-$lang['remote']                = 'Távoli API engedélyezése. Ezzel más alkalmazások XML-RPC-n keresztül hozzáférhetnek a wikihez.';
-$lang['remoteuser']            = 'A távoli API hozzáférés korlátozása a következő felhasználókra vagy csoportokra. Hagyd üresen, ha mindenki számára elérhető!';
-$lang['usewordblock']          = 'Szólista alapú spam-szűrés';
-$lang['relnofollow']           = 'rel="nofollow" beállítás használata külső hivatkozásokra';
-$lang['indexdelay']            = 'Várakozás indexelés előtt (másodperc)';
-$lang['mailguard']             = 'Email címek olvashatatlanná tétele címgyűjtők számára';
-$lang['iexssprotect']          = 'Feltöltött fájlok ellenőrzése kártékony JavaScript vagy HTML kód elkerülésére';
-$lang['usedraft']              = 'Piszkozat automatikus mentése szerkesztés alatt';
-$lang['htmlok']                = 'Beágyazott HTML engedélyezése';
-$lang['phpok']                 = 'Beágyazott PHP engedélyezése';
-$lang['locktime']              = 'Oldal-zárolás maximális időtartama (másodperc)';
-$lang['cachetime']             = 'A gyorsítótár maximális élettartama (másodperc)';
-$lang['target____wiki']        = 'Cél-ablak belső hivatkozásokhoz';
-$lang['target____interwiki']   = 'Cél-ablak interwiki hivatkozásokhoz';
-$lang['target____extern']      = 'Cél-ablak külső hivatkozásokhoz';
-$lang['target____media']       = 'Cél-ablak média-fájl hivatkozásokhoz';
-$lang['target____windows']     = 'Cél-ablak Windows hivatkozásokhoz';
-$lang['mediarevisions']        = 'Médiafájlok verziókövetésének engedélyezése';
-$lang['refcheck']              = 'Médiafájlok hivatkozásainak ellenőrzése';
-$lang['gdlib']                 = 'GD Lib verzió';
-$lang['im_convert']            = 'Útvonal az ImageMagick csomag convert parancsához';
-$lang['jpg_quality']           = 'JPG tömörítés minősége (0-100)';
-$lang['fetchsize']             = 'Maximális méret (bájtban), amit a fetch.php letölthet kívülről';
-$lang['subscribers']           = 'Oldalváltozás-listára feliratkozás engedélyezése';
-$lang['subscribe_time']        = 'Az értesítések kiküldésének késleltetése (másodperc); Érdemes kisebbet választani, mint a változások megőrzésének maximális ideje.';
-$lang['notify']                = 'Az oldal-változásokat erre az e-mail címre küldje';
-$lang['registernotify']        = 'Értesítés egy újonnan regisztrált felhasználóról erre az e-mail címre';
-$lang['mailfrom']              = 'Az automatikusan küldött levelekben használt e-mail cím';
-$lang['mailprefix']            = 'Előtag az automatikus e-mailek tárgyában';
-$lang['htmlmail']              = 'Szebb, de nagyobb méretű HTML multipart e-mailek küldése. Tiltsd le a nyers szöveges üzenetekhez!';
-$lang['sitemap']               = 'Hány naponként generáljunk Google sitemap-ot?';
-$lang['rss_type']              = 'XML hírfolyam típus';
-$lang['rss_linkto']            = 'XML hírfolyam hivatkozás';
-$lang['rss_content']           = 'Mit mutassunk az XML hírfolyam elemekben?';
-$lang['rss_update']            = 'Hány másodpercenként frissítsük az XML hírfolyamot?';
-$lang['rss_show_summary']      = 'A hírfolyam címébe összefoglaló helyezése';
-$lang['rss_media']             = 'Milyen változások legyenek felsorolva az XML hírfolyamban?';
-$lang['updatecheck']           = 'Frissítések és biztonsági figyelmeztetések figyelése. Ehhez a DokuWikinek kapcsolatba kell lépnie a update.dokuwiki.org-gal.';
-$lang['userewrite']            = 'Szép URL-ek használata';
-$lang['useslash']              = 'Per-jel használata névtér-elválasztóként az URL-ekben';
-$lang['sepchar']               = 'Szó elválasztó az oldalnevekben';
-$lang['canonical']             = 'Teljesen kanonikus URL-ek használata';
-$lang['fnencode']              = 'A nem ASCII fájlnevek dekódolási módja';
-$lang['autoplural']            = 'Többes szám ellenőrzés a hivatkozásokban (angol)';
-$lang['compression']           = 'Tömörítés használata a törölt lapokhoz';
-$lang['gzip_output']           = 'gzip tömörítés használata xhtml-hez (Content-Encoding)';
-$lang['compress']              = 'CSS és JavaScript fájlok tömörítése';
-$lang['cssdatauri']            = 'Mérethatár bájtokban, ami alatti CSS-ben hivatkozott fájlok közvetlenül beágyazódjanak a stíluslapba. <code>400</code>-<code>600</code> bájt ideális érték. Ãllítsd <code>0</code>-ra a beágyazás kikapcsolásához!';
-$lang['send404']               = '"HTTP 404/Page Not Found" küldése nemlétező oldalak esetén';
-$lang['broken_iua']            = 'Az ignore_user_abort függvény hibát dob a rendszereden? Ez nem működő keresési indexet eredményezhet. Az IIS+PHP/CGI összeállításról tudjuk, hogy hibát dob. Lásd a <a href="http://bugs.splitbrain.org/?do=details&amp;task_id=852">Bug 852</a> oldalt a további infóért.';
-$lang['xsendfile']             = 'Használjuk az X-Sendfile fejlécet, hogy a webszerver statikus állományokat tudjon küldeni? A webszervernek is támogatnia kell ezt a funkciót.';
-$lang['renderer_xhtml']        = 'Az elsődleges (xhtml) wiki kimenet generálója';
-$lang['renderer__core']        = '%s (dokuwiki mag)';
-$lang['renderer__plugin']      = '%s (bővítmény)';
-$lang['dnslookups']            = 'A DokuWiki megpróbál hosztneveket keresni a távoli IP-címekhez. Amennyiben lassú, vagy nem működő DNS-szervered van vagy csak nem szeretnéd ezt a funkciót, tiltsd le ezt az opciót!';
-$lang['proxy____host']         = 'Proxy-szerver neve';
-$lang['proxy____port']         = 'Proxy port';
-$lang['proxy____user']         = 'Proxy felhasználó név';
-$lang['proxy____pass']         = 'Proxy jelszó';
-$lang['proxy____ssl']          = 'SSL használata a proxyhoz csatlakozáskor';
-$lang['proxy____except']       = 'URL szabály azokra a webcímekre, amit szeretnél, hogy ne kezeljen a proxy.';
-$lang['safemodehack']          = 'A PHP safemode beállítás megkerülésének engedélyezése';
-$lang['ftp____host']           = 'FTP szerver a safemode megkerüléshez';
-$lang['ftp____port']           = 'FTP port a safemode megkerüléshez';
-$lang['ftp____user']           = 'FTP felhasználó név a safemode megkerüléshez';
-$lang['ftp____pass']           = 'FTP jelszó a safemode megkerüléshez';
-$lang['ftp____root']           = 'FTP gyökérkönyvtár a safemode megkerüléshez';
-$lang['license_o_']            = 'Nincs kiválasztva';
-$lang['typography_o_0']        = 'nem';
-$lang['typography_o_1']        = 'Csak a dupla idézőjelet';
-$lang['typography_o_2']        = 'Minden idézőjelet (előfordulhat, hogy nem mindig működik)';
-$lang['userewrite_o_0']        = 'nem';
-$lang['userewrite_o_1']        = '.htaccess-szel';
-$lang['userewrite_o_2']        = 'DokuWiki saját módszerével';
-$lang['deaccent_o_0']          = 'kikapcsolva';
-$lang['deaccent_o_1']          = 'ékezetek eltávolítása';
-$lang['deaccent_o_2']          = 'távirati stílus';
-$lang['gdlib_o_0']             = 'GD Lib nem elérhető';
-$lang['gdlib_o_1']             = 'Version 1.x';
-$lang['gdlib_o_2']             = 'Auto felismerés';
-$lang['rss_type_o_rss']        = 'RSS 0.91';
-$lang['rss_type_o_rss1']       = 'RSS 1.0';
-$lang['rss_type_o_rss2']       = 'RSS 2.0';
-$lang['rss_type_o_atom']       = 'Atom 0.3';
-$lang['rss_type_o_atom1']      = 'Atom 1.0';
-$lang['rss_content_o_abstract'] = 'Kivonat';
-$lang['rss_content_o_diff']    = 'Unified diff formátum';
-$lang['rss_content_o_htmldiff'] = 'HTML formázott változás tábla';
-$lang['rss_content_o_html']    = 'Teljes HTML oldal tartalom';
-$lang['rss_linkto_o_diff']     = 'a változás nézetre';
-$lang['rss_linkto_o_page']     = 'az átdolgozott oldalra';
-$lang['rss_linkto_o_rev']      = 'a változatok listájára';
-$lang['rss_linkto_o_current']  = 'a jelenlegi oldalra';
-$lang['compression_o_0']       = 'nincs tömörítés';
-$lang['compression_o_gz']      = 'gzip';
-$lang['compression_o_bz2']     = 'bz2';
-$lang['xsendfile_o_0']         = 'nincs használatban';
-$lang['xsendfile_o_1']         = 'Lighttpd saját fejléc (1.5-ös verzió előtti)';
-$lang['xsendfile_o_2']         = 'Standard X-Sendfile fejléc';
-$lang['xsendfile_o_3']         = 'Nginx saját X-Accel-Redirect fejléce';
-$lang['showuseras_o_loginname'] = 'Azonosító';
-$lang['showuseras_o_username'] = 'Teljes név';
-$lang['showuseras_o_username_link'] = 'A felhasználó teljes neve belső wiki-hivatkozásként';
-$lang['showuseras_o_email']    = 'E-mail cím (olvashatatlanná téve az e-mailcím védelem beállítása szerint)';
-$lang['showuseras_o_email_link'] = 'E-mail cím mailto: linkként';
-$lang['useheading_o_0']        = 'Soha';
-$lang['useheading_o_navigation'] = 'Csak navigációhoz';
-$lang['useheading_o_content']  = 'Csak Wiki tartalomhoz';
-$lang['useheading_o_1']        = 'Mindig';
-$lang['readdircache']          = 'A könyvtár olvasás gyorsítótárának maximális tárolási ideje (másodperc)';
diff --git a/wiki/lib/plugins/config/lang/ia/intro.txt b/wiki/lib/plugins/config/lang/ia/intro.txt
deleted file mode 100644
index eb2e105..0000000
--- a/wiki/lib/plugins/config/lang/ia/intro.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-====== Gestion de configurationes ======
-
-Usa iste pagina pro controlar le configurationes de tu installation de DokuWiki. Pro adjuta re configurationes individual, refere te a [[doku>config]].
-
-Le configurationes monstrate super un fundo rubie clar es protegite e non pote esser alterate con iste plug-in. Le configurationes monstrate super un fundo blau es le valores predefinite e le configurationes monstrate super un fundo blanc ha essite definite localmente pro iste particular installation. Le configurationes blau e blanc pote esser alterate.
-
-Rememora de premer le button **SALVEGUARDAR** ante de quitar iste pagina, alteremente tu modificationes essera perdite.
diff --git a/wiki/lib/plugins/config/lang/ia/lang.php b/wiki/lib/plugins/config/lang/ia/lang.php
deleted file mode 100644
index 511d081..0000000
--- a/wiki/lib/plugins/config/lang/ia/lang.php
+++ /dev/null
@@ -1,175 +0,0 @@
-<?php
-/**
- * Interlingua language file
- *
- * @author robocap <robocap1@gmail.com>
- * @author Martijn Dekker <martijn@inlv.org>
- */
-$lang['menu']                  = 'Configurationes';
-$lang['error']                 = 'Le configurationes non poteva esser actualisate a causa de un valor invalide; per favor revide tu cambiamentos e resubmitte los.<br />Le valor(es) incorrecte essera monstrate circumferite per un bordo rubie.';
-$lang['updated']               = 'Actualisation del configurationes succedite.';
-$lang['nochoice']              = '(nulle altere option disponibile)';
-$lang['locked']                = 'Le file de configuration non pote esser actualisate; si isto non es intentional, <br /> assecura te que le nomine e permissiones del file local de configuration es correcte.';
-$lang['danger']                = 'Periculo: Cambiar iste option pote render tu wiki e le menu de configuration inaccessibile!';
-$lang['warning']               = 'Attention: Cambiar iste option pote causar functionamento indesirate.';
-$lang['security']              = 'Advertimento de securitate: Cambiar iste option pote causar un risco de securitate.';
-$lang['_configuration_manager'] = 'Gestion de configurationes';
-$lang['_header_dokuwiki']      = 'Configurationes de DokuWiki';
-$lang['_header_plugin']        = 'Configurationes de plug-ins';
-$lang['_header_template']      = 'Configurationes de patronos';
-$lang['_header_undefined']     = 'Configurationes non definite';
-$lang['_basic']                = 'Configurationes de base';
-$lang['_display']              = 'Configurationes de visualisation';
-$lang['_authentication']       = 'Configurationes de authentication';
-$lang['_anti_spam']            = 'Configurationes anti-spam';
-$lang['_editing']              = 'Configurationes de modification';
-$lang['_links']                = 'Configurationes de ligamines';
-$lang['_media']                = 'Configurationes de multimedia';
-$lang['_advanced']             = 'Configurationes avantiate';
-$lang['_network']              = 'Configurationes de rete';
-$lang['_msg_setting_undefined'] = 'Nulle metadatos de configuration.';
-$lang['_msg_setting_no_class'] = 'Nulle classe de configuration.';
-$lang['_msg_setting_no_default'] = 'Nulle valor predefinite.';
-$lang['fmode']                 = 'Permissiones al creation de files';
-$lang['dmode']                 = 'Permissiones al creation de directorios';
-$lang['lang']                  = 'Lingua del interfacie';
-$lang['basedir']               = 'Cammino al servitor (p.ex.. <code>/dokuwiki/</code>). Lassa vacue pro autodetection.';
-$lang['baseurl']               = 'URL del servitor (p.ex. <code>http://www.yourserver.com</code>). Lassa vacue pro autodetection.';
-$lang['savedir']               = 'Directorio pro salveguardar datos';
-$lang['start']                 = 'Nomine del pagina initial';
-$lang['title']                 = 'Titulo del wiki';
-$lang['template']              = 'Patrono';
-$lang['license']               = 'Sub qual licentia debe tu contento esser publicate?';
-$lang['fullpath']              = 'Revelar le cammino complete del paginas in le pede';
-$lang['recent']                = 'Modificationes recente';
-$lang['breadcrumbs']           = 'Numero de micas de pan';
-$lang['youarehere']            = 'Micas de pan hierarchic';
-$lang['typography']            = 'Face substitutiones typographic';
-$lang['htmlok']                = 'Permitter incorporation de HTML';
-$lang['phpok']                 = 'Permitter incorporation de PHP';
-$lang['dformat']               = 'Formato del datas (vide le function <a href="http://php.net/strftime">strftime</a> de PHP)';
-$lang['signature']             = 'Signatura';
-$lang['toptoclevel']           = 'Nivello principal pro tabula de contento';
-$lang['tocminheads']           = 'Numero minimal de titulos requirite pro inserer tabula de contento';
-$lang['maxtoclevel']           = 'Nivello maximal pro tabula de contento';
-$lang['maxseclevel']           = 'Nivello maximal pro modification de sectiones';
-$lang['camelcase']             = 'Usar CamelCase pro ligamines';
-$lang['deaccent']              = 'Nomines nette de paginas';
-$lang['useheading']            = 'Usar le prime titulo como nomine de pagina';
-$lang['refcheck']              = 'Verification de referentias multimedia';
-$lang['allowdebug']            = 'Permitter debugging <b>disactiva si non necessari!</b>';
-$lang['usewordblock']          = 'Blocar spam a base de lista de parolas';
-$lang['indexdelay']            = 'Retardo ante generation de indice (secundas)';
-$lang['relnofollow']           = 'Usar rel="nofollow" pro ligamines externe';
-$lang['mailguard']             = 'Offuscar adresses de e-mail';
-$lang['iexssprotect']          = 'Verificar files incargate pro codice HTML o JavaScript possibilemente malitiose';
-$lang['showuseras']            = 'Como monstrar le usator que faceva le ultime modification de un pagina';
-$lang['useacl']                = 'Usar listas de controlo de accesso';
-$lang['autopasswd']            = 'Automaticamente generar contrasignos';
-$lang['authtype']              = 'Servicio de authentication';
-$lang['passcrypt']             = 'Methodo de cryptographia de contrasignos';
-$lang['defaultgroup']          = 'Gruppo predefinite';
-$lang['superuser']             = 'Superusator: le gruppo, usator o lista separate per commas ("usator1,@gruppo1,usator2") con accesso integral a tote le paginas e functiones sin reguardo del ACL';
-$lang['manager']               = 'Administrator: le gruppo, usator o lista separate per commas ("usator1,@gruppo1,usator2") con accesso a certe functiones administrative';
-$lang['profileconfirm']        = 'Confirmar modificationes del profilo con contrasigno';
-$lang['disableactions']        = 'Disactivar actiones DokuWiki';
-$lang['disableactions_check']  = 'Verificar';
-$lang['disableactions_subscription'] = 'Subscriber/Cancellar subscription';
-$lang['disableactions_wikicode'] = 'Vider codice-fonte/Exportar texto crude';
-$lang['disableactions_other']  = 'Altere actiones (separate per commas)';
-$lang['sneaky_index']          = 'Normalmente, DokuWiki monstra tote le spatios de nomines in le vista del indice. Si iste option es active, illos ubi le usator non ha le permission de lectura essera celate. Isto pote resultar in le celamento de subspatios de nomines accessibile. Isto pote render le indice inusabile con certe configurationes de ACL.';
-$lang['auth_security_timeout'] = 'Expiration pro securitate de authentication (secundas)';
-$lang['securecookie']          = 'Debe le cookies definite via HTTPS solmente esser inviate via HTTPS per le navigator? Disactiva iste option si solmente le apertura de sessiones a tu wiki es protegite con SSL ma le navigation del wiki es facite sin securitate.';
-$lang['updatecheck']           = 'Verificar si existe actualisationes e advertimentos de securitate? DokuWiki debe contactar update.dokuwiki.org pro exequer iste function.';
-$lang['userewrite']            = 'Usar URLs nette';
-$lang['useslash']              = 'Usar le barra oblique ("/") como separator de spatios de nomines in URLs';
-$lang['usedraft']              = 'Automaticamente salveguardar un version provisori durante le modification';
-$lang['sepchar']               = 'Separator de parolas in nomines de paginas';
-$lang['canonical']             = 'Usar URLs completemente canonic';
-$lang['autoplural']            = 'Verificar si il ha formas plural in ligamines';
-$lang['compression']           = 'Methodo de compression pro files a mansarda';
-$lang['cachetime']             = 'Etate maximal pro le cache (secundas)';
-$lang['locktime']              = 'Etate maximal pro le files de serratura (secundas)';
-$lang['fetchsize']             = 'Numero maximal de bytes per file que fetch.php pote discargar de sitos externe';
-$lang['notify']                = 'Inviar notificationes de cambios a iste adresse de e-mail';
-$lang['registernotify']        = 'Inviar informationes super usatores novemente registrate a iste adresse de e-mail';
-$lang['mailfrom']              = 'Adresse de e-mail a usar pro messages automatic';
-$lang['gzip_output']           = 'Usar Content-Encoding gzip pro xhtml';
-$lang['gdlib']                 = 'Version de GD Lib';
-$lang['im_convert']            = 'Cammino al programma "convert" de ImageMagick';
-$lang['jpg_quality']           = 'Qualitate del compression JPEG (0-100)';
-$lang['subscribers']           = 'Activar le possibilitate de subscriber se al paginas';
-$lang['subscribe_time']        = 'Tempore post le qual le listas de subscription e le digestos es inviate (in secundas); isto debe esser minor que le tempore specificate in recent_days.';
-$lang['compress']              = 'Compactar le output CSS e JavaScript';
-$lang['hidepages']             = 'Celar paginas correspondente (expressiones regular)';
-$lang['send404']               = 'Inviar "HTTP 404/Pagina non trovate" pro paginas non existente';
-$lang['sitemap']               = 'Generar mappa de sito Google (dies)';
-$lang['broken_iua']            = 'Es le function ignore_user_abort defectuose in tu systema? Isto pote resultar in un indice de recerca que non functiona. Vide <a href="http://bugs.splitbrain.org/?do=details&amp;task_id=852">Bug 852</a> pro plus info.';
-$lang['xsendfile']             = 'Usar le capite X-Sendfile pro lassar le servitor web livrar files static? Tu navigator del web debe supportar isto.';
-$lang['renderer_xhtml']        = 'Renditor a usar pro le output wiki principal (xhtml)';
-$lang['renderer__core']        = '%s (nucleo dokuwiki)';
-$lang['renderer__plugin']      = '%s (plug-in)';
-$lang['rememberme']            = 'Permitter cookies de session permanente (memorar me)';
-$lang['rss_type']              = 'Typo de syndication XML';
-$lang['rss_linkto']            = 'Syndication XML liga verso';
-$lang['rss_content']           = 'Que monstrar in le entratas de syndication XML?';
-$lang['rss_update']            = 'Intervallo de actualisation pro syndicationes XML (secundas)';
-$lang['recent_days']           = 'Retener quante modificationes recente? (dies)';
-$lang['rss_show_summary']      = 'Monstrar summario in titulo de syndication XML';
-$lang['target____wiki']        = 'Fenestra de destination pro ligamines interne';
-$lang['target____interwiki']   = 'Fenestra de destination pro ligamines interwiki';
-$lang['target____extern']      = 'Fenestra de destination pro ligamines externe';
-$lang['target____media']       = 'Fenestra de destination pro ligamines multimedia';
-$lang['target____windows']     = 'Fenestra de destination pro ligamines a fenestras';
-$lang['proxy____host']         = 'Nomine de servitor proxy';
-$lang['proxy____port']         = 'Porto del proxy';
-$lang['proxy____user']         = 'Nomine de usator pro le proxy';
-$lang['proxy____pass']         = 'Contrasigno pro le proxy';
-$lang['proxy____ssl']          = 'Usar SSL pro connecter al proxy';
-$lang['safemodehack']          = 'Permitter truco de modo secur';
-$lang['ftp____host']           = 'Servitor FTP pro truco de modo secur';
-$lang['ftp____port']           = 'Porto FTP pro truco de modo secur';
-$lang['ftp____user']           = 'Nomine de usator FTP pro truco de modo secur';
-$lang['ftp____pass']           = 'Contrasigno FTP pro truco de modo secur';
-$lang['ftp____root']           = 'Directorio radice FTP pro truco de modo securr';
-$lang['license_o_']            = 'Nihil seligite';
-$lang['typography_o_0']        = 'nulle';
-$lang['typography_o_1']        = 'excludente ';
-$lang['typography_o_2']        = 'includente virgulettas singule (pote non sempre functionar)';
-$lang['userewrite_o_0']        = 'nulle';
-$lang['userewrite_o_1']        = '.htaccess';
-$lang['userewrite_o_2']        = 'interne a DokuWIki';
-$lang['deaccent_o_0']          = 'disactivate';
-$lang['deaccent_o_1']          = 'remover accentos';
-$lang['deaccent_o_2']          = 'romanisar';
-$lang['gdlib_o_0']             = 'GD Lib non disponibile';
-$lang['gdlib_o_1']             = 'Version 1.x';
-$lang['gdlib_o_2']             = 'Autodetection';
-$lang['rss_type_o_rss']        = 'RSS 0.91';
-$lang['rss_type_o_rss1']       = 'RSS 1.0';
-$lang['rss_type_o_rss2']       = 'RSS 2.0';
-$lang['rss_type_o_atom']       = 'Atom 0.3';
-$lang['rss_type_o_atom1']      = 'Atom 1.0';
-$lang['rss_content_o_abstract'] = 'Abstracte';
-$lang['rss_content_o_diff']    = 'In formato Unified Diff';
-$lang['rss_content_o_htmldiff'] = 'Tabella de diff in formato HTML';
-$lang['rss_content_o_html']    = 'Contento complete del pagina in HTML';
-$lang['rss_linkto_o_diff']     = 'vista de differentias';
-$lang['rss_linkto_o_page']     = 'le pagina revidite';
-$lang['rss_linkto_o_rev']      = 'lista de versiones';
-$lang['rss_linkto_o_current']  = 'le pagina actual';
-$lang['compression_o_0']       = 'nulle';
-$lang['compression_o_gz']      = 'gzip';
-$lang['compression_o_bz2']     = 'bz2';
-$lang['xsendfile_o_0']         = 'non usar';
-$lang['xsendfile_o_1']         = 'Capite proprietari "lighttpd" (ante version 1.5)';
-$lang['xsendfile_o_2']         = 'Capite standard "X-Sendfile"';
-$lang['xsendfile_o_3']         = 'Capite proprietari "X-Accel-Redirect" de Nginx';
-$lang['showuseras_o_loginname'] = 'Nomine de usator';
-$lang['showuseras_o_username'] = 'Nomine real del usator';
-$lang['showuseras_o_email']    = 'Adresse de e-mail del usator (offuscate secundo le configuration de Mailguard)';
-$lang['showuseras_o_email_link'] = 'Adresse de e-mail del usator como ligamine "mailto:"';
-$lang['useheading_o_0']        = 'Nunquam';
-$lang['useheading_o_navigation'] = 'Navigation solmente';
-$lang['useheading_o_content']  = 'Contento wiki solmente';
-$lang['useheading_o_1']        = 'Sempre';
diff --git a/wiki/lib/plugins/config/lang/id-ni/intro.txt b/wiki/lib/plugins/config/lang/id-ni/intro.txt
deleted file mode 100644
index cd77caa..0000000
--- a/wiki/lib/plugins/config/lang/id-ni/intro.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-====== Fakake famöfö'ö ======
-
-Plugin da'e itolo ba wangehaogö fakake moroi ba DokuWiki. Fanolo bawamöfö'ö tesöndra tou [[doku>config]]. Lala wangiila Plugin tanöbö'ö tesöndra tou ba [[doku>plugin:config]].
-
-Famöfö'ö zura furi la'a soyo no laproteksi, lötesöndra bakha ba Plugin andre. Famöfö'ö zura furi la'a sobalau ya'ia wamöfö'ö sito'ölö...
-
-Böi olifu ndra'ugö ba wofetugö **Irö'ö** fatua lö öröi fakake wamöfö'ö soguna bawangirö'ö wamöfö'ö safuria.
diff --git a/wiki/lib/plugins/config/lang/id-ni/lang.php b/wiki/lib/plugins/config/lang/id-ni/lang.php
deleted file mode 100644
index 7b7e14c..0000000
--- a/wiki/lib/plugins/config/lang/id-ni/lang.php
+++ /dev/null
@@ -1,68 +0,0 @@
-<?php
-/**
- * idni language file
- *
- * @author Harefa <fidelis@harefa.com>
- * @author Yustinus Waruwu <juswaruwu@gmail.com>
- */
-$lang['renderer_xhtml']        = 'Fake Renderer ba zito\'ölö (XHTML) Wiki-output.';
-$lang['renderer__core']        = '%s (dokuwiki core)';
-$lang['renderer__plugin']      = '%s (plugin)';
-$lang['rss_type']              = 'Tipe XML feed';
-$lang['rss_linkto']            = 'XML feed links khö';
-$lang['rss_content']           = 'Hadia wangoromaö nifake ba XML-Feed?';
-$lang['rss_update']            = 'XML feed (sec) inötö wamohouni';
-$lang['recent_days']           = 'Hawa\'oya laforoma\'ö moroi bazibohou? (Hari)';
-$lang['rss_show_summary']      = 'XML feed foromaö summary ba title';
-$lang['target____wiki']        = 'Lala window ba internal links';
-$lang['target____interwiki']   = 'Lala window ba interwiki links';
-$lang['target____extern']      = 'Lala window ba external links';
-$lang['target____media']       = 'Lala window ba media links';
-$lang['target____windows']     = 'Lala window ba windows links';
-$lang['proxy____host']         = 'Töi server proxy';
-$lang['proxy____port']         = 'Port proxy';
-$lang['proxy____user']         = 'Töi proxy';
-$lang['proxy____pass']         = 'Kode proxy';
-$lang['proxy____ssl']          = 'Fake ssl ba connect awö Proxy';
-$lang['safemodehack']          = 'Orifi safemode hack';
-$lang['ftp____host']           = 'FTP server khö safemode hack';
-$lang['ftp____port']           = 'FTP port khö safemode hack';
-$lang['ftp____user']           = 'Töi FTP khö safemode hack';
-$lang['ftp____pass']           = 'FTP kode khö safemode hack';
-$lang['ftp____root']           = 'FTP root directory for safemode hack';
-$lang['typography_o_0']        = 'lö\'ö';
-$lang['typography_o_1']        = 'Ha sitombua kutip';
-$lang['typography_o_2']        = 'Fefu nikutip (itataria lömohalöwö)';
-$lang['userewrite_o_0']        = 'lö\'ö';
-$lang['userewrite_o_1']        = '.htaccess';
-$lang['userewrite_o_2']        = 'DokuWiki bakha';
-$lang['deaccent_o_0']          = 'ofolai';
-$lang['deaccent_o_1']          = 'heta aksen';
-$lang['deaccent_o_2']          = 'romanize';
-$lang['gdlib_o_0']             = 'GD Lib lötesöndra';
-$lang['gdlib_o_1']             = 'Versi 1.x';
-$lang['gdlib_o_2']             = 'Otomatis';
-$lang['rss_type_o_rss']        = 'RSS 0.91';
-$lang['rss_type_o_rss1']       = 'RSS 1.0';
-$lang['rss_type_o_rss2']       = 'RSS 2.0';
-$lang['rss_type_o_atom']       = 'Atom 0.3';
-$lang['rss_type_o_atom1']      = 'Atom 1.0';
-$lang['rss_content_o_abstract'] = 'Abstrak';
-$lang['rss_content_o_diff']    = 'Unified Diff';
-$lang['rss_content_o_htmldiff'] = 'HTML formatted diff table';
-$lang['rss_content_o_html']    = 'Fefu HTML format diff table';
-$lang['rss_linkto_o_diff']     = 'foromaö difference';
-$lang['rss_linkto_o_page']     = 'Refisi nga\'örö';
-$lang['rss_linkto_o_rev']      = 'Daftar nihaogö';
-$lang['rss_linkto_o_current']  = 'Nga\'örö safuria';
-$lang['compression_o_0']       = 'Lö\'ö';
-$lang['compression_o_gz']      = 'gzip';
-$lang['compression_o_bz2']     = 'bz2';
-$lang['xsendfile_o_0']         = 'böi fake';
-$lang['xsendfile_o_1']         = 'Proprieteri lighttpd Header (furi Release 1.5)';
-$lang['xsendfile_o_2']         = 'Standar X-Sendfile header';
-$lang['xsendfile_o_3']         = 'Proprieteri Nginx X-Accel-Redirect header';
-$lang['showuseras_o_loginname'] = 'Töi';
-$lang['showuseras_o_username'] = 'Töi safönu';
-$lang['showuseras_o_email']    = 'Fake döi imele (obfuscated according to mailguard setting)';
-$lang['showuseras_o_email_link'] = 'Fake döi imele sifao mailto: link';
diff --git a/wiki/lib/plugins/config/lang/id/intro.txt b/wiki/lib/plugins/config/lang/id/intro.txt
deleted file mode 100644
index 296206d..0000000
--- a/wiki/lib/plugins/config/lang/id/intro.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== Manajemen Konfigurasi ======
-
-Gunakan halaman ini untuk mengatur konfigurasi instalasi DokuWiki Anda. Untuk bantuan dalam konfigurasi, silahkan lihat di [[doku>config]]. Unuk mengetahui lebih lanjut tentang plugin in silahkan lihat [[doku>plugin:config]].
-
-Konfigurasi dengan warna merah dilindungi dan tidak bisa diubah dengan plugin ini. Konfigurasi dengan warna biru adalah nilai default, dan konfigurasi dengan latar putih telah diset khusus untuk instalasi ini. Konfigurasi berwarna putih atau b
diff --git a/wiki/lib/plugins/config/lang/is/lang.php b/wiki/lib/plugins/config/lang/is/lang.php
deleted file mode 100644
index 4f49446..0000000
--- a/wiki/lib/plugins/config/lang/is/lang.php
+++ /dev/null
@@ -1,57 +0,0 @@
-<?php
-/**
- * Icelandic language file
- *
- * @author Hrannar Baldursson <hrannar.baldursson@gmail.com>
- * @author Ólafur Gunnlaugsson <oli@audiotools.com>
- * @author Erik Bjørn Pedersen <erik.pedersen@shaw.ca>
- */
-$lang['menu']                  = 'Stillingar';
-$lang['error']                 = 'Stillingum ekki breitt þar sem rangar upplýsingar voru settar inn, vinsamlegast yfirfarið stillingar merktar með rauðu';
-$lang['updated']               = 'Stillingum breitt';
-$lang['nochoice']              = '(engir aðrir valmöguleikar fyrir hendi)';
-$lang['_display']              = 'Skjástillingar';
-$lang['_anti_spam']            = 'Stillingar gegn ruslpósti';
-$lang['_editing']              = 'Útgáfastillingar';
-$lang['lang']                  = 'Tungumál';
-$lang['title']                 = 'Heiti wikis';
-$lang['template']              = 'Mát';
-$lang['recent']                = 'Nýlegar breytingar';
-$lang['breadcrumbs']           = 'Fjöldi brauðmolar';
-$lang['youarehere']            = 'Stigveldisá brauðmolar';
-$lang['typography']            = 'Gera stað fyrir leturgerðir';
-$lang['htmlok']                = 'Fella HTML inn';
-$lang['phpok']                 = 'Fella PHP inn';
-$lang['dformat']               = 'Dagsetningarsnið (sjá PHP-aðgerð <a href="http://php.net/strftime">strftime</a>)';
-$lang['signature']             = 'Undirskrift';
-$lang['passcrypt']             = 'Dulritunaraðferð aðgangsorðs';
-$lang['defaultgroup']          = 'Sjálfgefinn hópur';
-$lang['superuser']             = 'Hópur kerfisstjóra ';
-$lang['profileconfirm']        = 'Staðfestu breytingar með aðgangsorði';
-$lang['mailfrom']              = 'Rafpóstfang fyrir sjálfvirkar póstsendingar';
-$lang['gdlib']                 = 'Útgáfa af GD Lib';
-$lang['jpg_quality']           = 'JPG gæðastilling (0-100)';
-$lang['proxy____host']         = 'Heiti staðgengilsþjóns';
-$lang['proxy____port']         = 'Staðgengilstengi';
-$lang['proxy____user']         = 'Staðgengill notendanafn';
-$lang['proxy____pass']         = 'Staðgengilsaðgangsorð';
-$lang['proxy____ssl']          = 'Nýta SSL til að tengjast staðgengill';
-$lang['license_o_']            = 'Ekkert valið';
-$lang['typography_o_0']        = 'engin';
-$lang['userewrite_o_0']        = 'engin';
-$lang['deaccent_o_0']          = 'slökkt';
-$lang['deaccent_o_1']          = 'fjarlægja broddi';
-$lang['deaccent_o_2']          = 'gera rómverskt';
-$lang['gdlib_o_0']             = 'GD Lib ekki til staðar';
-$lang['gdlib_o_1']             = 'Útgáfa 1,x';
-$lang['gdlib_o_2']             = 'Sjálfvirk leit';
-$lang['rss_type_o_rss']        = 'RSS 0,91';
-$lang['rss_type_o_rss1']       = 'RSS 1,0';
-$lang['rss_type_o_rss2']       = 'RSS 2,0';
-$lang['rss_type_o_atom']       = 'Atom 0,3';
-$lang['rss_type_o_atom1']      = 'Atom 1,0';
-$lang['compression_o_0']       = 'engin';
-$lang['showuseras_o_loginname'] = 'Innskránafn';
-$lang['showuseras_o_username'] = 'Fullt notendanafn';
-$lang['useheading_o_0']        = 'Aldrei';
-$lang['useheading_o_1']        = 'Alltaf';
diff --git a/wiki/lib/plugins/config/lang/it/intro.txt b/wiki/lib/plugins/config/lang/it/intro.txt
deleted file mode 100644
index 02984ba..0000000
--- a/wiki/lib/plugins/config/lang/it/intro.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-====== Configurazione Wiki ======
-
-Usa questa pagina per gestire la configurazione della tua installazione DokuWiki. Per la guida sulle singole impostazioni fai riferimento alla pagina [[doku>config|Configurazione]]. Per ulteriori dettagli su questo plugin vedi [[doku>plugin:config|Plugin di configurazione]].
-
-Le impostazioni con lo sfondo rosso chiaro sono protette e non possono essere modificate con questo plugin. Le impostazioni con lo sfondo blu contengono i valori predefiniti, e le impostazioni con lo sfondo bianco sono relative solo a questa particolare installazione. Sia le impostazioni su sfondo blu che quelle su sfondo bianco possono essere modificate.
-
-Ricordati di premere il pulsante **SALVA** prima di lasciare questa pagina altrimenti le modifiche andranno perse.
diff --git a/wiki/lib/plugins/config/lang/it/lang.php b/wiki/lib/plugins/config/lang/it/lang.php
deleted file mode 100644
index 9e9ece4..0000000
--- a/wiki/lib/plugins/config/lang/it/lang.php
+++ /dev/null
@@ -1,214 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author damiano <damiano@spagnuolo.eu>
- * @author Torpedo <dgtorpedo@gmail.com>
- * @author Christopher Smith <chris@jalakai.co.uk>
- * @author Silvia Sargentoni <polinnia@tin.it>
- * @author Pietro Battiston <toobaz@email.it>
- * @author Lorenzo Breda <lbreda@gmail.com>
- * @author robocap <robocap1@gmail.com>
- * @author Jacopo Corbetta <jacopo.corbetta@gmail.com>
- * @author Matteo Pasotti <matteo@xquiet.eu>
- * @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.
-<br />I valori non corretti sono evidenziati da un riquadro rosso.';
-$lang['updated']               = 'Aggiornamento impostazioni riuscito.';
-$lang['nochoice']              = '(nessun\'altra scelta disponibile)';
-$lang['locked']                = 'Il file di configurazione non può essere aggiornato, se questo non è intenzionale, <br />
-assicurati che il nome e i permessi del file contenente la configurazione locale siano corretti.';
-$lang['danger']                = 'Attenzione: cambiare questa opzione può rendere inaccessibile il wiki e il menu di configurazione.';
-$lang['warning']               = 'Avviso: cambiare questa opzione può causare comportamenti indesiderati.';
-$lang['security']              = 'Avviso di sicurezza: vambiare questa opzione può esporre a rischi di sicurezza.';
-$lang['_configuration_manager'] = 'Configurazione Wiki';
-$lang['_header_dokuwiki']      = 'Impostazioni DokuWiki';
-$lang['_header_plugin']        = 'Impostazioni Plugin';
-$lang['_header_template']      = 'Impostazioni Modello';
-$lang['_header_undefined']     = 'Impostazioni non definite';
-$lang['_basic']                = 'Impostazioni Base';
-$lang['_display']              = 'Impostazioni Visualizzazione';
-$lang['_authentication']       = 'Impostazioni Autenticazione';
-$lang['_anti_spam']            = 'Impostazioni Anti-Spam';
-$lang['_editing']              = 'Impostazioni Modifica';
-$lang['_links']                = 'Impostazioni Collegamenti';
-$lang['_media']                = 'Impostazioni File';
-$lang['_notifications']        = 'Impostazioni di notifica';
-$lang['_syndication']          = 'Impostazioni di collaborazione';
-$lang['_advanced']             = 'Impostazioni Avanzate';
-$lang['_network']              = 'Impostazioni Rete';
-$lang['_msg_setting_undefined'] = 'Nessun metadato definito.';
-$lang['_msg_setting_no_class'] = 'Nessuna classe definita.';
-$lang['_msg_setting_no_default'] = 'Nessun valore predefinito.';
-$lang['title']                 = 'Titolo del wiki';
-$lang['start']                 = 'Nome della pagina iniziale';
-$lang['lang']                  = 'Lingua';
-$lang['template']              = 'Modello';
-$lang['tagline']               = 'Tagline (se il template lo supporta)';
-$lang['sidebar']               = 'Nome pagina in barra laterale (se il template lo supporta), il campo vuoto disabilita la barra laterale';
-$lang['license']               = 'Sotto quale licenza vorresti rilasciare il tuo contenuto?';
-$lang['savedir']               = 'Directory per il salvataggio dei dati';
-$lang['basedir']               = 'Directory di base';
-$lang['baseurl']               = 'URL di base';
-$lang['cookiedir']             = 'Percorso cookie. Lascia in bianco per usare baseurl.';
-$lang['dmode']                 = 'Permessi per le nuove directory';
-$lang['fmode']                 = 'Permessi per i nuovi file';
-$lang['allowdebug']            = 'Abilita il debug <b>(disabilitare se non serve!)</b>';
-$lang['recent']                = 'Ultime modifiche';
-$lang['recent_days']           = 'Quante modifiche recenti tenere (giorni)';
-$lang['breadcrumbs']           = 'Numero di breadcrumb';
-$lang['youarehere']            = 'Breadcrumb gerarchici';
-$lang['fullpath']              = 'Mostra il percorso completo delle pagine';
-$lang['typography']            = 'Abilita la sostituzione tipografica';
-$lang['dformat']               = 'Formato delle date (vedi la funzione <a href="http://php.net/strftime">strftime</a> di PHP)';
-$lang['signature']             = 'Firma';
-$lang['showuseras']            = 'Cosa visualizzare quando si mostra l\'ultimo utente che ha modificato una pagina';
-$lang['toptoclevel']           = 'Livello superiore per l\'indice';
-$lang['tocminheads']           = 'Ammontare minimo di intestazioni che determinano la creazione del TOC';
-$lang['maxtoclevel']           = 'Numero massimo di livelli per l\'indice';
-$lang['maxseclevel']           = 'Livello massimo per le sezioni modificabili';
-$lang['camelcase']             = 'Usa CamelCase per i collegamenti';
-$lang['deaccent']              = 'Pulizia dei nomi di pagina';
-$lang['useheading']            = 'Usa la prima intestazione come nome di pagina';
-$lang['sneaky_index']          = 'Normalmente, DokuWiki mostra tutte le categorie nella vista indice. Abilitando questa opzione, saranno nascoste quelle per cui l\'utente non ha il permesso in lettura. Questo potrebbe far sì che alcune sottocategorie accessibili siano nascoste. La pagina indice potrebbe quindi diventare inutilizzabile con alcune configurazioni dell\'ACL.';
-$lang['hidepages']             = 'Nascondi le pagine che soddisfano la condizione (inserire un\'espressione regolare)';
-$lang['useacl']                = 'Usa lista di controllo accessi (ACL)';
-$lang['autopasswd']            = 'Genera password in automatico';
-$lang['authtype']              = 'Sistema di autenticazione';
-$lang['passcrypt']             = 'Metodo di cifratura password';
-$lang['defaultgroup']          = 'Gruppo predefinito';
-$lang['superuser']             = 'Amministratore - gruppo, utente o elenco di utenti separati da virgole (user1,@group1,user2) con accesso completo a tutte le pagine e le funzioni che riguardano le  impostazioni ACL';
-$lang['manager']               = 'Gestore - gruppo, utente o elenco di utenti separati da virgole (user1,@group1,user2) con accesso a determinate funzioni di gestione';
-$lang['profileconfirm']        = 'Richiedi la password per modifiche al profilo';
-$lang['rememberme']            = 'Permetti i cookies di accesso permanenti (ricordami)';
-$lang['disableactions']        = 'Disabilita azioni DokuWiki';
-$lang['disableactions_check']  = 'Controlla';
-$lang['disableactions_subscription'] = 'Sottoscrivi/Rimuovi sottoscrizione';
-$lang['disableactions_wikicode'] = 'Mostra sorgente/Esporta Raw';
-$lang['disableactions_profile_delete'] = 'Elimina il proprio account';
-$lang['disableactions_other']  = 'Altre azioni (separate da virgola)';
-$lang['disableactions_rss']    = 'XML Syndication (RSS)';
-$lang['auth_security_timeout'] = 'Tempo di sicurezza per l\'autenticazione (secondi)';
-$lang['securecookie']          = 'Devono i cookies impostati tramite HTTPS essere inviati al browser solo tramite HTTPS? Disattiva questa opzione solo quando l\'accesso al tuo wiki viene effettuato con il protocollo SSL ma la navigazione del wiki non risulta sicura.';
-$lang['remote']                = 'Abilita il sistema di API remoto. Questo permette ad altre applicazioni di accedere al wiki tramite XML-RPC o altri meccanismi.';
-$lang['remoteuser']            = 'Restringi l\'accesso dell\'aPI remota ai gruppi o utenti qui specificati separati da virgola. Lascia vuoto per dare accesso a chiunque.';
-$lang['usewordblock']          = 'Blocca lo spam in base alla blacklist';
-$lang['relnofollow']           = 'Usa rel="nofollow" nei collegamenti esterni';
-$lang['indexdelay']            = 'Intervallo di tempo prima dell\'indicizzazione';
-$lang['mailguard']             = 'Oscuramento indirizzi email';
-$lang['iexssprotect']          = 'Controlla i file caricati in cerca di possibile codice JavaScript o HTML maligno.';
-$lang['usedraft']              = 'Salva una bozza in automatico in fase di modifica';
-$lang['htmlok']                = 'Consenti HTML incorporato';
-$lang['phpok']                 = 'Consenti PHP incorporato';
-$lang['locktime']              = 'Durata dei file di lock (sec)';
-$lang['cachetime']             = 'Durata della cache (sec)';
-$lang['target____wiki']        = 'Finestra di destinazione per i collegamenti interni';
-$lang['target____interwiki']   = 'Finestra di destinazione per i collegamenti interwiki';
-$lang['target____extern']      = 'Finestra di destinazione per i collegamenti esterni';
-$lang['target____media']       = 'Finestra di destinazione per i collegamenti ai file';
-$lang['target____windows']     = 'Finestra di destinazione per i collegamenti alle risorse condivise';
-$lang['mediarevisions']        = 'Abilita Mediarevisions?';
-$lang['refcheck']              = 'Controlla i riferimenti ai file';
-$lang['gdlib']                 = 'Versione GD Lib ';
-$lang['im_convert']            = 'Percorso per il convertitore di ImageMagick';
-$lang['jpg_quality']           = 'Qualità di compressione JPG (0-100)';
-$lang['fetchsize']             = 'Dimensione massima (bytes) scaricabile da fetch.php da extern';
-$lang['subscribers']           = 'Permetti agli utenti la sottoscrizione alle modifiche delle pagine via e-mail';
-$lang['subscribe_time']        = 'Tempo dopo il quale le liste di sottoscrizione e i riassunti vengono inviati (sec); Dovrebbe essere inferiore al tempo specificato in recent_days.';
-$lang['notify']                = 'Invia notifiche sulle modifiche a questo indirizzo';
-$lang['registernotify']        = 'Invia informazioni sui nuovi utenti registrati a questo indirizzo email';
-$lang['mailfrom']              = 'Mittente per le mail automatiche';
-$lang['mailreturnpath']        = 'Indirizzo email destinatario per notifica di mancati recapiti';
-$lang['mailprefix']            = 'Prefisso da inserire nell\'oggetto delle mail automatiche';
-$lang['htmlmail']              = 'Invia email HTML multipart più gradevoli ma più ingombranti in dimensione. Disabilita per mail in puro testo.';
-$lang['sitemap']               = 'Genera una sitemap Google (giorni)';
-$lang['rss_type']              = 'Tipo di feed XML';
-$lang['rss_linkto']            = 'Collega i feed XML a';
-$lang['rss_content']           = 'Cosa mostrare negli elementi dei feed XML?';
-$lang['rss_update']            = 'Intervallo di aggiornamento dei feed XML (sec)';
-$lang['rss_show_summary']      = 'I feed XML riportano un sommario nel titolo';
-$lang['rss_media']             = 'Quale tipo di cambiamento dovrebbe essere elencato nel feed XML?';
-$lang['rss_media_o_both']      = 'entrambi';
-$lang['rss_media_o_pages']     = 'pagine';
-$lang['rss_media_o_media']     = 'media';
-$lang['updatecheck']           = 'Controllare aggiornamenti e avvisi di sicurezza? DokuWiki deve contattare update.dokuwiki.org per questa funzione.';
-$lang['userewrite']            = 'Usa il rewrite delle URL';
-$lang['useslash']              = 'Usa la barra rovescia (slash) come separatore nelle URL';
-$lang['sepchar']               = 'Separatore di parole nei nomi di pagina';
-$lang['canonical']             = 'Usa URL canoniche';
-$lang['fnencode']              = 'Metodo per codificare i filenames non-ASCII.';
-$lang['autoplural']            = 'Controlla il plurale nei collegamenti';
-$lang['compression']           = 'Usa la compressione per i file dell\'archivio';
-$lang['gzip_output']           = 'Usa il Content-Encoding gzip per xhtml';
-$lang['compress']              = 'Comprimi i file CSS e javascript';
-$lang['cssdatauri']            = 'Dimensione massima in byte di un\'immagine che può essere integrata nel CSS per ridurre l\'overhead delle richieste HTTP. Da <code>400</code> a <code>600</code> bytes è un buon valore. Impostare a <code>0</code> per disabilitare.';
-$lang['send404']               = 'Invia "HTTP 404/Pagina non trovata" per le pagine inesistenti';
-$lang['broken_iua']            = 'La funzione ignore_user_abort non funziona sul tuo sistema? Questo potrebbe far sì che l\'indice di ricerca sia inutilizzabile. È noto che nella configurazione IIS+PHP/CGI non funziona. Vedi il<a href="http://bugs.splitbrain.org/?do=details&amp;task_id=852">Bug 852</a> per maggiori informazioni.';
-$lang['xsendfile']             = 'Usare l\'header X-Sendfile per permettere al webserver di fornire file statici? Questa funzione deve essere supportata dal tuo webserver.';
-$lang['renderer_xhtml']        = 'Renderer da usare per la visualizzazione del wiki (xhtml)';
-$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';
-$lang['proxy____pass']         = 'Password proxy';
-$lang['proxy____ssl']          = 'Usa SSL per connetterti al proxy';
-$lang['proxy____except']       = 'Espressioni regolari per far corrispondere le URLs per i quali i proxy dovrebbero essere ommessi.';
-$lang['safemodehack']          = 'Abilita safemode hack';
-$lang['ftp____host']           = 'Server FTP per safemode hack';
-$lang['ftp____port']           = 'Porta FTP per safemode hack';
-$lang['ftp____user']           = 'Nome utente FTP per safemode hack';
-$lang['ftp____pass']           = 'Password FTP per safemode hack';
-$lang['ftp____root']           = 'Directory principale FTP per safemode hack';
-$lang['license_o_']            = 'Nessuna scelta';
-$lang['typography_o_0']        = 'nessuno';
-$lang['typography_o_1']        = 'Solo virgolette';
-$lang['typography_o_2']        = 'Tutti (potrebbe non funzionare sempre)';
-$lang['userewrite_o_0']        = 'nessuno';
-$lang['userewrite_o_1']        = '.htaccess';
-$lang['userewrite_o_2']        = 'DokuWiki';
-$lang['deaccent_o_0']          = 'disabilitata';
-$lang['deaccent_o_1']          = 'rimuovi gli accenti';
-$lang['deaccent_o_2']          = 'romanizza';
-$lang['gdlib_o_0']             = 'GD Lib non disponibile';
-$lang['gdlib_o_1']             = 'Versione 1.x';
-$lang['gdlib_o_2']             = 'Rileva automaticamente';
-$lang['rss_type_o_rss']        = 'RSS 0.91';
-$lang['rss_type_o_rss1']       = 'RSS 1.0';
-$lang['rss_type_o_rss2']       = 'RSS 2.0';
-$lang['rss_type_o_atom']       = 'Atom 0.3';
-$lang['rss_type_o_atom1']      = 'Atom 1.0';
-$lang['rss_content_o_abstract'] = 'Sunto';
-$lang['rss_content_o_diff']    = 'Diff unificata';
-$lang['rss_content_o_htmldiff'] = 'Tabella delle diff formattata HTML';
-$lang['rss_content_o_html']    = 'Tutto il contenuto della pagina in HTML';
-$lang['rss_linkto_o_diff']     = 'vista differenze';
-$lang['rss_linkto_o_page']     = 'pagina revisionata';
-$lang['rss_linkto_o_rev']      = 'elenco revisioni';
-$lang['rss_linkto_o_current']  = 'pagina attuale';
-$lang['compression_o_0']       = 'nessuna';
-$lang['compression_o_gz']      = 'gzip';
-$lang['compression_o_bz2']     = 'bz2';
-$lang['xsendfile_o_0']         = 'non usare';
-$lang['xsendfile_o_1']         = 'Header proprietario lighttpd (prima della versione 1.5)';
-$lang['xsendfile_o_2']         = 'Header standard X-Sendfile';
-$lang['xsendfile_o_3']         = 'Header proprietario Nginx X-Accel-Redirect';
-$lang['showuseras_o_loginname'] = 'Nome utente';
-$lang['showuseras_o_username'] = 'Nome completo dell\'utente';
-$lang['showuseras_o_username_link'] = 'Nome completo dell\'utente come link interwiki';
-$lang['showuseras_o_email']    = 'Indirizzo email dell\'utente (offuscato in base alle impostazioni di sicurezza posta)';
-$lang['showuseras_o_email_link'] = 'Indirizzo email dell\'utente come collegamento mailto:';
-$lang['useheading_o_0']        = 'Mai';
-$lang['useheading_o_navigation'] = 'Solo navigazione';
-$lang['useheading_o_content']  = 'Solo contenuto wiki';
-$lang['useheading_o_1']        = 'Sempre';
-$lang['readdircache']          = 'Tempo massimo per le readdir cache (sec)';
diff --git a/wiki/lib/plugins/config/lang/ja/intro.txt b/wiki/lib/plugins/config/lang/ja/intro.txt
deleted file mode 100644
index 4d98dd3..0000000
--- a/wiki/lib/plugins/config/lang/ja/intro.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-====== è¨­å®šç®¡ç† ======
-
-ã“ã®ç”»é¢ã§ã€Dokuwikiã®è¨­å®šã‚’管ç†ã™ã‚‹ã“ã¨ãŒå‡ºæ¥ã¾ã™ã€‚
-個々ã®è¨­å®šã«é–¢ã—ã¦ã¯[[doku>ja:config|DokuWiki ã®è¨­å®š]]ã‚’å‚ç…§ã—ã¦ãã ã•ã„。
-ã“ã®ãƒ—ラグインã«é–¢ã™ã‚‹è©³ç´°ãªæƒ…å ±ã¯[[doku>ja:plugin:config|設定管ç†ãƒ—ラグイン]]ã‚’å‚ç…§ã—ã¦ãã ã•ã„。
-
-背景ãŒè–„ã„赤ã®å ´åˆã€ãã®è¨­å®šã¯å¤‰æ›´ã™ã‚‹ã“ã¨ãŒå‡ºæ¥ã¾ã›ã‚“。
-背景ãŒé’ã®å ´åˆã¯ãƒ‡ãƒ•ォルト設定ã€èƒŒæ™¯ãŒç™½ã®å ´åˆã¯ã‚µã‚¤ãƒˆå›ºæœ‰ã®è¨­å®šã«ãªã£ã¦ãŠã‚Šã€ã©ã¡ã‚‰è¨­å®šã‚‚変更ãŒå¯èƒ½ã§ã™ã€‚
-
-設定ã®å¤‰æ›´å¾Œã¯å¿…ãš **ä¿å­˜** ボタンを押ã—ã¦å¤‰æ›´ã‚’確定ã—ã¦ãã ã•ã„。
-ボタンを押ã•ãªã‹ã£ãŸå ´åˆã€å¤‰æ›´ã¯ç ´æ£„ã•れã¾ã™ã€‚
diff --git a/wiki/lib/plugins/config/lang/ja/lang.php b/wiki/lib/plugins/config/lang/ja/lang.php
deleted file mode 100644
index 9475f90..0000000
--- a/wiki/lib/plugins/config/lang/ja/lang.php
+++ /dev/null
@@ -1,207 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Yuji Takenaka <webmaster@davilin.com>
- * @author Christopher Smith <chris@jalakai.co.uk>
- * @author Ikuo Obataya <i.obataya@gmail.com>
- * @author Daniel Dupriest <kououken@gmail.com>
- * @author Kazutaka Miyasaka <kazmiya@gmail.com>
- * @author Taisuke Shimamoto <dentostar@gmail.com>
- * @author Satoshi Sahara <sahara.satoshi@gmail.com>
- * @author Hideaki SAWADA <chuno@live.jp>
- */
-$lang['menu']                  = 'サイト設定';
-$lang['error']                 = '䏿­£ãªå€¤ãŒå­˜åœ¨ã™ã‚‹ãŸã‚ã€è¨­å®šã¯æ›´æ–°ã•れã¾ã›ã‚“ã§ã—ãŸã€‚入力値を確èªã—ã¦ã‹ã‚‰ã€å†åº¦æ›´æ–°ã—ã¦ãã ã•ã„。
-                       <br />䏿­£ãªå€¤ãŒå…¥åŠ›ã•れã¦ã„ã‚‹é …ç›®ã¯èµ¤ã„ç·šã§å›²ã¾ã‚Œã¦ã„ã¾ã™ã€‚';
-$lang['updated']               = 'è¨­å®šã¯æ­£ã—ãæ›´æ–°ã•れã¾ã—ãŸã€‚';
-$lang['nochoice']              = '(他ã®é¸æŠžè‚¢ã¯ã‚りã¾ã›ã‚“)';
-$lang['locked']                = '設定用ファイルを更新ã§ãã¾ã›ã‚“ã€‚ã‚‚ã—æ„図ã—ã¦å¤‰æ›´ä¸å¯ã«ã—ã¦ã„ã‚‹ã®ã§ãªã‘れã°ã€<br />
-                       ローカル設定ファイルã®åå‰ã¨æ¨©é™ã‚’確èªã—ã¦ä¸‹ã•ã„。';
-$lang['danger']                = 'å±é™ºï¼šã“ã®è¨­å®šã‚’変更ã™ã‚‹ã¨ã‚¦ã‚£ã‚­ã‚„設定管ç†ç”»é¢ã«ã‚¢ã‚¯ã‚»ã‚¹ã§ããªããªã‚‹æã‚ŒãŒã‚りã¾ã™ã€‚';
-$lang['warning']               = '注æ„:ã“ã®è¨­å®šã‚’変更ã™ã‚‹ã¨æ„図ã—ãªã„作動ã«ã¤ãªãŒã‚‹å¯èƒ½æ€§ãŒã‚りã¾ã™ã€‚';
-$lang['security']              = '警告:ã“ã®è¨­å®šã‚’変更ã™ã‚‹ã¨ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ã«æ‚ªå½±éŸ¿ã™ã‚‹æã‚ŒãŒã‚りã¾ã™ã€‚';
-$lang['_configuration_manager'] = '設定管ç†';
-$lang['_header_dokuwiki']      = 'DokuWiki';
-$lang['_header_plugin']        = 'プラグイン';
-$lang['_header_template']      = 'テンプレート';
-$lang['_header_undefined']     = 'ãã®ä»–';
-$lang['_basic']                = '基本';
-$lang['_display']              = '表示';
-$lang['_authentication']       = 'èªè¨¼';
-$lang['_anti_spam']            = 'スパム対策';
-$lang['_editing']              = '編集';
-$lang['_links']                = 'リンク';
-$lang['_media']                = 'メディア';
-$lang['_notifications']        = '通知設定';
-$lang['_syndication']          = 'RSSé…信設定';
-$lang['_advanced']             = '高度ãªè¨­å®š';
-$lang['_network']              = 'ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯';
-$lang['_msg_setting_undefined'] = '設定ã®ãŸã‚ã®ãƒ¡ã‚¿ãƒ‡ãƒ¼ã‚¿ãŒã‚りã¾ã›ã‚“。';
-$lang['_msg_setting_no_class'] = '設定クラスãŒã‚りã¾ã›ã‚“。';
-$lang['_msg_setting_no_default'] = 'åˆæœŸå€¤ãŒè¨­å®šã•れã¦ã„ã¾ã›ã‚“。';
-$lang['title']                 = 'WIKIタイトル';
-$lang['start']                 = 'スタートページå';
-$lang['lang']                  = '使用言語';
-$lang['template']              = 'テンプレート';
-$lang['tagline']               = 'キャッãƒãƒ•レーズ (テンプレートãŒå¯¾å¿œã—ã¦ã„れã°)';
-$lang['sidebar']               = 'サイドãƒãƒ¼ç”¨ãƒšãƒ¼ã‚¸å (テンプレートãŒå¯¾å¿œã—ã¦ã„れã°)。空欄ã§ã‚µã‚¤ãƒ‰ãƒãƒ¼ç„¡åŠ¹ã€‚';
-$lang['license']               = '作æˆã—ãŸå†…容をã©ã®ãƒ©ã‚¤ã‚»ãƒ³ã‚¹ã§ãƒªãƒªãƒ¼ã‚¹ã—ã¾ã™ã‹ï¼Ÿ';
-$lang['savedir']               = 'ä¿å­˜ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒª';
-$lang['basedir']               = 'サーãƒã®ãƒ‘ス (例: <code>/dokuwiki/</code>)。空欄ã«ã™ã‚‹ã¨è‡ªå‹•çš„ã«æ¤œå‡ºã—ã¾ã™ã€‚';
-$lang['baseurl']               = 'サーãƒã® URL (例: <code>http://www.yourserver.com</code>)。空欄ã«ã™ã‚‹ã¨è‡ªå‹•çš„ã«æ¤œå‡ºã—ã¾ã™ã€‚';
-$lang['cookiedir']             = 'Cookie ã®ãƒ‘ス。空欄ã«ã™ã‚‹ã¨ baseurl を使用ã—ã¾ã™ã€‚';
-$lang['dmode']                 = 'フォルダ作æˆãƒžã‚¹ã‚¯';
-$lang['fmode']                 = 'ファイル作æˆãƒžã‚¹ã‚¯';
-$lang['allowdebug']            = 'デãƒãƒƒã‚°ãƒ¢ãƒ¼ãƒ‰ï¼ˆ<b>å¿…è¦ã§ç„¡ã„ã¨ãã¯ç„¡åйã«ã—ã¦ãã ã•ã„</b>)';
-$lang['recent']                = '最近ã®å¤‰æ›´è¡¨ç¤ºæ•°';
-$lang['recent_days']           = '最近ã®å¤‰æ›´ã¨ã™ã‚‹æœŸé–“(日数)';
-$lang['breadcrumbs']           = 'トレース(パンããšï¼‰è¡¨ç¤ºæ•°';
-$lang['youarehere']            = 'ç¾åœ¨ä½ç½®ã‚’表示';
-$lang['fullpath']              = 'ページã®ãƒ•ッターã«çµ¶å¯¾ãƒ‘スを表示';
-$lang['typography']            = 'タイãƒã‚°ãƒ©ãƒ•ィー変æ›';
-$lang['dformat']               = '日付フォーマット(PHPã®<a href="http://php.net/strftime">strftime</a>関数をå‚照)';
-$lang['signature']             = 'ç½²å';
-$lang['showuseras']            = 'æœ€çµ‚ç·¨é›†è€…ã®æƒ…å ±ã¨ã—ã¦è¡¨ç¤ºã™ã‚‹å†…容';
-$lang['toptoclevel']           = '目次 トップレベル見出ã—';
-$lang['tocminheads']           = '目次を生æˆã™ã‚‹ãŸã‚ã®æœ€å°è¦‹å‡ºã—æ•°';
-$lang['maxtoclevel']           = '目次 表示é™åº¦è¦‹å‡ºã—';
-$lang['maxseclevel']           = '編集å¯èƒ½è¦‹å‡ºã—';
-$lang['camelcase']             = 'キャメルケースリンク';
-$lang['deaccent']              = 'ページåã®å¤‰æ›æ–¹æ³•';
-$lang['useheading']            = '最åˆã®è¦‹å‡ºã—をページåã¨ã™ã‚‹';
-$lang['sneaky_index']          = 'デフォルトã§ã¯ç´¢å¼•ã«ã™ã¹ã¦ã®åå‰ç©ºé–“を表示ã—ã¾ã™ãŒã€ã“ã®æ©Ÿèƒ½ã¯ãƒ¦ãƒ¼ã‚¶ãƒ¼ã«é–²è¦§æ¨©é™ã®ãªã„åå‰ç©ºé–“ã‚’éžè¡¨ç¤ºã«ã—ã¾ã™ã€‚ãŸã ã—ã€é–²è¦§ãŒå¯èƒ½ãªå‰¯åå‰ç©ºé–“ã¾ã§è¡¨ç¤ºã•れãªããªã‚‹ãŸã‚ã€ACLã®è¨­å®šãŒé©æ­£ã§ãªã„å ´åˆã¯ç´¢å¼•機能ãŒä½¿ãˆãªããªã‚‹å ´åˆãŒã‚りã¾ã™ã€‚';
-$lang['hidepages']             = '検索ã€ã‚µã‚¤ãƒˆãƒžãƒƒãƒ—ã€ãã®ä»–ã®è‡ªå‹•インデックスã®çµæžœã«è¡¨ç¤ºã—ãªã„ページ(Regex)';
-$lang['useacl']                = 'アクセス管ç†ã‚’行ã†ï¼ˆACL)';
-$lang['autopasswd']            = 'パスワードã®è‡ªå‹•生æˆï¼ˆACL)';
-$lang['authtype']              = 'èªè¨¼æ–¹æ³•(ACL)';
-$lang['passcrypt']             = 'æš—å·åŒ–方法(ACL)';
-$lang['defaultgroup']          = 'デフォルトグループ(ACL)';
-$lang['superuser']             = 'スーパーユーザー(ACL)';
-$lang['manager']               = 'マãƒãƒ¼ã‚¸ãƒ£ãƒ¼ï¼ˆç‰¹å®šã®ç®¡ç†æ©Ÿèƒ½ã‚’使用å¯èƒ½ãªãƒ¦ãƒ¼ã‚¶ãƒ¼ã‚‚ã—ãã¯ã‚°ãƒ«ãƒ¼ãƒ—)';
-$lang['profileconfirm']        = 'プロフィール変更時ã«ç¾åœ¨ã®ãƒ‘ã‚¹ãƒ¯ãƒ¼ãƒ‰ã‚’è¦æ±‚(ACL)';
-$lang['rememberme']            = 'ログイン用クッキーを永久ã«ä¿æŒã™ã‚‹ã“ã¨ã‚’許å¯ï¼ˆãƒ­ã‚°ã‚¤ãƒ³ã‚’ä¿æŒï¼‰';
-$lang['disableactions']        = 'DokuWiki ã®å‹•作を無効ã«ã™ã‚‹';
-$lang['disableactions_check']  = 'ãƒã‚§ãƒƒã‚¯';
-$lang['disableactions_subscription'] = '変更履歴é…ä¿¡ã®ç™»éŒ²ãƒ»è§£é™¤';
-$lang['disableactions_wikicode'] = 'ソース閲覧 / 生データ出力';
-$lang['disableactions_profile_delete'] = '自分ã®ã‚¢ã‚«ã‚¦ãƒ³ãƒˆã®æŠ¹æ¶ˆ';
-$lang['disableactions_other']  = 'ãã®ä»–ã®å‹•作(カンマ区切り)';
-$lang['disableactions_rss']    = 'XML é…信(RSS)';
-$lang['auth_security_timeout'] = 'èªè¨¼ã‚¿ã‚¤ãƒ ã‚¢ã‚¦ãƒˆè¨­å®šï¼ˆç§’)';
-$lang['securecookie']          = 'クッキーをHTTPSã«ã¦ã‚»ãƒƒãƒˆã™ã‚‹å ´åˆã¯ã€ãƒ–ラウザよりHTTPS経由ã§é€ä¿¡ã•れãŸå ´åˆã«ã¿ã«åˆ¶é™ã—ã¾ã™ã‹ï¼Ÿãƒ­ã‚°ã‚¤ãƒ³ã®ã¿ã‚’SSLã§è¡Œã†å ´åˆã¯ã€ã“ã®æ©Ÿèƒ½ã‚’無効ã«ã—ã¦ãã ã•ã„。';
-$lang['remote']                = 'リモートAPIを有効化ã—ã¾ã™ã€‚有効化ã™ã‚‹ã¨XML-RPCã¾ãŸã¯ä»–ã®æ‰‹æ®µã§wikiã«ã‚¢ãƒ—リケーションãŒã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹ã“ã¨ã‚’許å¯ã—ã¾ã™ã€‚';
-$lang['remoteuser']            = 'ã‚«ãƒ³ãƒžåŒºåˆ‡ã‚Šã§æ›¸ã‹ã‚ŒãŸã‚°ãƒ«ãƒ¼ãƒ—åã€ã¾ãŸã¯ãƒ¦ãƒ¼ã‚¶åã ã‘ã«ãƒªãƒ¢ãƒ¼ãƒˆAPIã¸ã®ã‚¢ã‚¯ã‚»ã‚¹ã‚’許å¯ã—ã¾ã™ã€‚空白ã®å ´åˆã¯ã€ã™ã¹ã¦ã®ãƒ¦ãƒ¼ã‚¶ã«ã‚¢ã‚¯ã‚»ã‚¹ã‚’許å¯ã—ã¾ã™ã€‚';
-$lang['usewordblock']          = 'å˜èªžãƒªã‚¹ãƒˆã«åŸºã¥ãスパムブロック';
-$lang['relnofollow']           = 'rel="nofollow"を付加';
-$lang['indexdelay']            = 'インデックスを許å¯ï¼ˆä½•秒後)';
-$lang['mailguard']             = 'メールアドレスä¿è­·';
-$lang['iexssprotect']          = 'ã‚¢ãƒƒãƒ—ãƒ­ãƒ¼ãƒ‰ãƒ•ã‚¡ã‚¤ãƒ«ã«æ‚ªæ„ã®ã‚ã‚‹JavaScriptã‚„HTMLãŒå«ã¾ã‚Œã¦ã„ãªã„ã‹ãƒã‚§ãƒƒã‚¯ã™ã‚‹';
-$lang['usedraft']              = '編集中ã®è‡ªå‹•ä¿å­˜ï¼ˆãƒ‰ãƒ©ãƒ•ト)機能を使用';
-$lang['htmlok']                = 'HTML埋ã‚è¾¼ã¿';
-$lang['phpok']                 = 'PHP埋ã‚è¾¼ã¿';
-$lang['locktime']              = 'ファイルロック期é™ï¼ˆç§’)';
-$lang['cachetime']             = 'ã‚­ãƒ£ãƒƒã‚·ãƒ¥ä¿æŒæ™‚間(秒)';
-$lang['target____wiki']        = '内部リンクã®è¡¨ç¤ºå…ˆ';
-$lang['target____interwiki']   = 'InterWikiリンクã®è¡¨ç¤ºå…ˆ';
-$lang['target____extern']      = '外部リンクã®è¡¨ç¤ºå…ˆ';
-$lang['target____media']       = 'メディアリンクã®è¡¨ç¤ºå…ˆ';
-$lang['target____windows']     = 'Windowsリンクã®è¡¨ç¤ºå…ˆ';
-$lang['mediarevisions']        = 'メディアファイルã®å±¥æ­´ã‚’有効ã«ã—ã¾ã™ã‹?';
-$lang['refcheck']              = 'メディアå‚ç…§å…ƒãƒã‚§ãƒƒã‚¯';
-$lang['gdlib']                 = 'GDlibãƒãƒ¼ã‚¸ãƒ§ãƒ³';
-$lang['im_convert']            = 'ImageMagick変æ›ãƒ„ールã¸ã®ãƒ‘ス';
-$lang['jpg_quality']           = 'JPG圧縮å“質(0-100)';
-$lang['fetchsize']             = '外部ã‹ã‚‰ã®ãƒ€ã‚¦ãƒ³ãƒ­ãƒ¼ãƒ‰æœ€å¤§ã‚µã‚¤ã‚º';
-$lang['subscribers']           = '更新通知機能';
-$lang['subscribe_time']        = 'è³¼èª­ãƒªã‚¹ãƒˆã¨æ¦‚è¦ã‚’é€ä¿¡ã™ã‚‹æœŸé–“(秒)。「最近ã®å¤‰æ›´ã¨ã™ã‚‹æœŸé–“ã€ã§æŒ‡å®šã—ãŸæœŸé–“よりå°ã•ãã—ã¦ãã ã•ã„。';
-$lang['notify']                = '変更を通知ã™ã‚‹ãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹';
-$lang['registernotify']        = 'æ–°è¦ãƒ¦ãƒ¼ã‚¶ãƒ¼ç™»éŒ²ã‚’通知ã™ã‚‹ãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹';
-$lang['mailfrom']              = 'メールé€ä¿¡æ™‚ã®é€ä¿¡å…ƒã‚¢ãƒ‰ãƒ¬ã‚¹';
-$lang['mailprefix']            = '自動メールã®é¡Œåã«ä½¿ç”¨ã™ã‚‹æŽ¥é ­èªž';
-$lang['htmlmail']              = 'メールをテキスト形å¼ã§ã¯ãªãã€HTMLå½¢å¼ã§é€ä¿¡ã™ã‚‹ã€‚';
-$lang['sitemap']               = 'Googleサイトマップ作æˆé »åº¦ï¼ˆæ—¥æ•°ï¼‰';
-$lang['rss_type']              = 'RSSフィード形å¼';
-$lang['rss_linkto']            = 'RSS内リンク先';
-$lang['rss_content']           = 'XMLフィードã«ä½•を表示ã•ã›ã¾ã™ã‹ï¼Ÿ';
-$lang['rss_update']            = 'RSSãƒ•ã‚£ãƒ¼ãƒ‰ã®æ›´æ–°é–“隔(秒)';
-$lang['rss_show_summary']      = 'フィードã®ã‚¿ã‚¤ãƒˆãƒ«ã«ã‚µãƒžãƒªãƒ¼ã‚’表示';
-$lang['rss_media']             = 'XMLフィードã§ã€ã©ã‚“ãªç¨®é¡žã®å¤‰æ›´ã‚’記載ã™ã‚‹ã‹';
-$lang['updatecheck']           = 'DokuWikiã®æ›´æ–°ã¨ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ã«é–¢ã™ã‚‹æƒ…報をãƒã‚§ãƒƒã‚¯ã—ã¾ã™ã‹ï¼Ÿ ã“ã®æ©Ÿèƒ½ã¯ update.dokuwiki.org ã¸ã®æŽ¥ç¶šãŒå¿…è¦ã§ã™ã€‚';
-$lang['userewrite']            = 'URLã®æ›¸ãæ›ãˆ';
-$lang['useslash']              = 'URL上ã®åå‰ç©ºé–“ã®åŒºåˆ‡ã‚Šã«ã‚¹ãƒ©ãƒƒã‚·ãƒ¥ã‚’使用';
-$lang['sepchar']               = 'ページåã®å˜èªžåŒºåˆ‡ã‚Šæ–‡å­—';
-$lang['canonical']             = 'canonical URL(正準URL)を使用';
-$lang['fnencode']              = 'éžã‚¢ã‚¹ã‚­ãƒ¼ãƒ•ァイルåã®ã‚¨ãƒ³ã‚³ãƒ¼ãƒ‡ã‚£ãƒ³ã‚°æ–¹æ³•';
-$lang['autoplural']            = '自動複数形処ç†';
-$lang['compression']           = 'アーカイブファイルã®åœ§ç¸®æ–¹æ³•';
-$lang['gzip_output']           = 'xhtmlã«å¯¾ã™ã‚‹ã‚³ãƒ³ãƒ†ãƒ³ãƒ„圧縮(gzip)を使用';
-$lang['compress']              = 'CSSã¨JavaScriptを圧縮';
-$lang['cssdatauri']            = 'HTTP リクエスト数ã«ã‚ˆã‚‹ã‚ªãƒ¼ãƒãƒ¼ãƒ˜ãƒƒãƒ‰ã‚’減らã™ãŸã‚ã€CSS ファイルã‹ã‚‰å‚ç…§ã•れる画åƒãƒ•ァイルã®ã‚µã‚¤ã‚ºãŒã“ã“ã§æŒ‡å®šã™ã‚‹ãƒã‚¤ãƒˆæ•°ä»¥å†…ã®å ´åˆã¯ CSS ファイル内㫠Data URI ã¨ã—ã¦åŸ‹ã‚è¾¼ã¿ã¾ã™ã€‚ <code>400</code> ã‹ã‚‰ <code>600</code> ãƒã‚¤ãƒˆãŒã¡ã‚‡ã†ã©ã‚ˆã„値ã§ã™ã€‚<code>0</code> を指定ã™ã‚‹ã¨åŸ‹ã‚è¾¼ã¿å‡¦ç†ã¯è¡Œã‚れã¾ã›ã‚“。';
-$lang['send404']               = '文書ãŒå­˜åœ¨ã—ãªã„ページã«"HTTP404/Page Not Found"を使用';
-$lang['broken_iua']            = 'ignore_user_abort関数ãŒç ´æã—ã¦ã„ã‚‹æã‚ŒãŒã‚りã¾ã™ã€‚ãã®ãŸã‚ã€æ¤œç´¢ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ãŒå‹•作ã—ãªã„å¯èƒ½æ€§ãŒã‚りã¾ã™ã€‚IIS+PHP/CGIã®çµ„ã¿åˆã‚ã›ã§ç ´æã™ã‚‹ã“ã¨ãŒåˆ¤æ˜Žã—ã¦ã„ã¾ã™ã€‚詳ã—ãã¯<a href="http://bugs.splitbrain.org/?do=details&amp;task_id=852">Bug 852</a>ã‚’å‚ç…§ã—ã¦ãã ã•ã„。';
-$lang['xsendfile']             = 'ウェブサーãƒãƒ¼ãŒé™çš„ファイルを生æˆã™ã‚‹ãŸã‚ã« X-Sendfile ヘッダーを使用ã—ã¾ã™ã‹ï¼ŸãªãŠã€ã“ã®æ©Ÿèƒ½ã‚’ウェブサーãƒãƒ¼ãŒã‚µãƒãƒ¼ãƒˆã—ã¦ã„ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚';
-$lang['renderer_xhtml']        = 'Wikiã®å‡ºåŠ›ï¼ˆxhtml)ã«ãƒ¬ãƒ³ãƒ€ãƒ©ãƒ¼ã‚’使用ã™ã‚‹';
-$lang['renderer__core']        = '%s (Dokuwikiコア)';
-$lang['renderer__plugin']      = '%s (プラグイン)';
-$lang['dnslookups']            = 'ページを編集ã—ã¦ã„るユーザーã®IPアドレスã‹ã‚‰ãƒ›ã‚¹ãƒˆåを逆引ãã™ã‚‹ã€‚利用ã§ãã‚‹DNSサーãƒãƒ¼ãŒãªã„ã€ã‚ã‚‹ã„ã¯ã“ã®æ©Ÿèƒ½ãŒä¸è¦ãªå ´åˆã«ã¯ã‚ªãƒ•ã«ã—ã¾ã™ã€‚';
-$lang['jquerycdn']             = 'コンテンツ・デリãƒãƒªãƒ¼ãƒ»ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ (CDN) ã®é¸æŠžï¼šjQuery 㨠jQuery UI スクリプトを CDN ã‹ã‚‰ãƒ­ãƒ¼ãƒ‰ã•ã›ã‚‹å ´åˆã«ã¯ã€è¿½åŠ çš„ãª HTTP リクエストãŒç™ºç”Ÿã—ã¾ã™ãŒã€ãƒ–ラウザキャッシュãŒä½¿ç”¨ã•れるãŸã‚ã€è¡¨ç¤ºé€Ÿåº¦ã®å‘ä¸ŠãŒæœŸå¾…ã§ãã¾ã™ã€‚';
-$lang['jquerycdn_o_0']         = 'CDN を使用ã—ãªã„(ã¾ãŸã¯åˆ©ç”¨ã§ããªã„)';
-$lang['jquerycdn_o_jquery']    = 'CDN: code.jquery.com を使用';
-$lang['jquerycdn_o_cdnjs']     = 'CDN: cdnjs.com を使用';
-$lang['proxy____host']         = 'プロキシ - サーãƒãƒ¼å';
-$lang['proxy____port']         = 'プロキシ - ãƒãƒ¼ãƒˆ';
-$lang['proxy____user']         = 'プロキシ - ユーザーå';
-$lang['proxy____pass']         = 'プロキシ - パスワード';
-$lang['proxy____ssl']          = 'プロキシã¸ã®æŽ¥ç¶šã«sslを使用';
-$lang['proxy____except']       = 'スキップã™ã‚‹ãƒ—ロキシã®URLæ­£è¦è¡¨ç¾';
-$lang['safemodehack']          = 'セーフモード対策を行ã†';
-$lang['ftp____host']           = 'FTP サーãƒãƒ¼å(セーフモード対策)';
-$lang['ftp____port']           = 'FTP ãƒãƒ¼ãƒˆï¼ˆã‚»ãƒ¼ãƒ•モード対策)';
-$lang['ftp____user']           = 'FTP ユーザーå(セーフモード対策)';
-$lang['ftp____pass']           = 'FTP パスワード(セーフモード対策)';
-$lang['ftp____root']           = 'FTP ルートディレクトリ(セーフモード対策)';
-$lang['license_o_']            = 'é¸æŠžã•れã¦ã„ã¾ã›ã‚“';
-$lang['typography_o_0']        = '変æ›ã—ãªã„';
-$lang['typography_o_1']        = '二é‡å¼•用符(ダブルクオート)ã®ã¿';
-$lang['typography_o_2']        = 'ã™ã¹ã¦ã®å¼•用符(動作ã—ãªã„å ´åˆãŒã‚りã¾ã™ï¼‰';
-$lang['userewrite_o_0']        = '使用ã—ãªã„';
-$lang['userewrite_o_1']        = '.htaccess';
-$lang['userewrite_o_2']        = 'DokuWikiã«ã‚ˆã‚‹è¨­å®š';
-$lang['deaccent_o_0']          = '変æ›ã—ãªã„';
-$lang['deaccent_o_1']          = 'アクセント付ãã®æ–‡å­—を変æ›ã™ã‚‹';
-$lang['deaccent_o_2']          = 'ローマ字化';
-$lang['gdlib_o_0']             = 'GDを利用ã§ãã¾ã›ã‚“';
-$lang['gdlib_o_1']             = 'ãƒãƒ¼ã‚¸ãƒ§ãƒ³ 1.x';
-$lang['gdlib_o_2']             = '自動検出';
-$lang['rss_type_o_rss']        = 'RSS 0.91';
-$lang['rss_type_o_rss1']       = 'RSS 1.0';
-$lang['rss_type_o_rss2']       = 'RSS 2.0';
-$lang['rss_type_o_atom']       = 'Atom 0.3';
-$lang['rss_type_o_atom1']      = 'Atom 1.0';
-$lang['rss_content_o_abstract'] = '概è¦';
-$lang['rss_content_o_diff']    = '差分(Unified Diff)';
-$lang['rss_content_o_htmldiff'] = '差分(HTMLå½¢å¼ï¼‰';
-$lang['rss_content_o_html']    = '完全ãªHTMLページ';
-$lang['rss_linkto_o_diff']     = '変更点ã®ãƒªã‚¹ãƒˆ';
-$lang['rss_linkto_o_page']     = '変更ã•れãŸãƒšãƒ¼ã‚¸';
-$lang['rss_linkto_o_rev']      = 'リビジョンã®ãƒªã‚¹ãƒˆ';
-$lang['rss_linkto_o_current']  = 'ç¾åœ¨ã®ãƒšãƒ¼ã‚¸';
-$lang['compression_o_0']       = '圧縮ã—ãªã„';
-$lang['compression_o_gz']      = 'gzip';
-$lang['compression_o_bz2']     = 'bz2';
-$lang['xsendfile_o_0']         = '使用ã—ãªã„';
-$lang['xsendfile_o_1']         = 'lighttpd ヘッダー(リリース1.5以å‰ï¼‰';
-$lang['xsendfile_o_2']         = '標準 X-Sendfile ヘッダー';
-$lang['xsendfile_o_3']         = 'Nginx X-Accel-Redirect ヘッダー';
-$lang['showuseras_o_loginname'] = 'ログインå';
-$lang['showuseras_o_username'] = 'ユーザーã®ãƒ•ルãƒãƒ¼ãƒ ';
-$lang['showuseras_o_username_link'] = 'user ã¨ã„ㆠInterWiki リンクã«ãªã£ãŸãƒ¦ãƒ¼ã‚¶ãƒ¼ã®ãƒ•ルãƒãƒ¼ãƒ ';
-$lang['showuseras_o_email']    = 'ユーザーã®ãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹ï¼ˆãƒ¡ãƒ¼ãƒ«ã‚¬ãƒ¼ãƒ‰è¨­å®šã«ã‚ˆã‚‹é›£èª­åŒ–)';
-$lang['showuseras_o_email_link'] = 'ユーザーã®ãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’リンクã«ã™ã‚‹';
-$lang['useheading_o_0']        = '使用ã—ãªã„';
-$lang['useheading_o_navigation'] = 'ナビゲーションã®ã¿';
-$lang['useheading_o_content']  = 'Wikiã®å†…容ã®ã¿';
-$lang['useheading_o_1']        = '常ã«ä½¿ç”¨ã™ã‚‹';
-$lang['readdircache']          = 'readdir ã‚­ãƒ£ãƒƒã‚·ãƒ¥ã®æœ€å¤§ä¿æŒæœŸé–“(秒)';
diff --git a/wiki/lib/plugins/config/lang/ko/intro.txt b/wiki/lib/plugins/config/lang/ko/intro.txt
deleted file mode 100644
index b05264a..0000000
--- a/wiki/lib/plugins/config/lang/ko/intro.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-====== 환경 설정 ê´€ë¦¬ìž ======
-
-ì„¤ì¹˜ëœ ë„ì¿ ìœ„í‚¤ì˜ ì„¤ì •ì„ ì œì–´í•˜ë ¤ë©´ ì´ íŽ˜ì´ì§€ë¥¼ 사용하세요. 개별 ì„¤ì •ì— ëŒ€í•œ ë„움ë§ì€ [[doku>ko:config]]를 참조하세요. ì´ í”ŒëŸ¬ê·¸ì¸ì— 대한 ìžì„¸í•œ ë‚´ìš©ì€ [[doku>ko:plugin:config]]를 참조하세요.
-
-ë°ì€ 빨간색 배경으로 ë³´ì´ëŠ” ì„¤ì •ì€ ì´ í”ŒëŸ¬ê·¸ì¸ìœ¼ë¡œ 바꿀 수 ì—†ë„ë¡ ë³´í˜¸ë˜ì–´ 있습니다. 파란색 배경으로 ë³´ì´ëŠ” ì„¤ì •ì€ ê¸°ë³¸ê°’ì´ë©° 하얀색 배경으로 ë³´ì´ëŠ” ì„¤ì •ì€ íŠ¹ì • ì„¤ì¹˜ì— ëŒ€í•´ 로컬로 설정ë˜ì–´ 있습니다. 파란색과 하얀색 배경으로 ëœ ì„¤ì •ì€ ë°”ê¿€ 수 있습니다.
-
-ì´ íŽ˜ì´ì§€ë¥¼ 떠나기 ì „ì— **저장** ë²„íŠ¼ì„ ëˆ„ë¥´ì§€ 않으면 ë°”ë€œì´ ì‚¬ë¼ì§€ëŠ” ê²ƒì— ì£¼ì˜í•˜ì„¸ìš”.
\ No newline at end of file
diff --git a/wiki/lib/plugins/config/lang/ko/lang.php b/wiki/lib/plugins/config/lang/ko/lang.php
deleted file mode 100644
index cfca442..0000000
--- a/wiki/lib/plugins/config/lang/ko/lang.php
+++ /dev/null
@@ -1,211 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Seungheon Song <esketch@gmail.com>
- * @author jk Lee
- * @author dongnak <dongnak@gmail.com>
- * @author Song Younghwan <purluno@gmail.com>
- * @author Seung-Chul Yoo <dryoo@live.com>
- * @author erial2 <erial2@gmail.com>
- * @author Myeongjin <aranet100@gmail.com>
- * @author S.H. Lee <tuders@naver.com>
- */
-$lang['menu']                  = '환경 설정';
-$lang['error']                 = 'ìž˜ëª»ëœ ê°’ ë•Œë¬¸ì— ì„¤ì •ì„ ë°”ê¿€ 수 없습니다, ë°”ë€œì„ ê²€í† í•˜ê³  다시 제출하세요.
-                       <br />ìž˜ëª»ëœ ê°’ì€ ë¹¨ê°„ 선으로 둘러싸여 보여집니다.';
-$lang['updated']               = 'ì„¤ì •ì´ ì„±ê³µì ìœ¼ë¡œ 바뀌었습니다.';
-$lang['nochoice']              = '(다른 ì„ íƒì€ í•  수 없습니다)';
-$lang['locked']                = '설정 파ì¼ì„ 바꿀 수 없습니다, ì˜ë„하지 않았다면, <br />
-                       로컬 설정 íŒŒì¼ ì´ë¦„ê³¼ ê¶Œí•œì´ ë§žëŠ”ì§€ 확ì¸í•˜ì„¸ìš”.';
-$lang['danger']                = '위험: ì´ ì˜µì…˜ì„ ë°”ê¾¸ë©´ 위키와 환경 설정 ë©”ë‰´ì— ì ‘ê·¼í•  수 ì—†ì„ ìˆ˜ë„ ìžˆìŠµë‹ˆë‹¤.';
-$lang['warning']               = '경고: ì´ ì˜µì…˜ì„ ë°”ê¾¸ë©´ ì˜ë„하지 않는 ë™ìž‘ì„ ì¼ìœ¼í‚¬ 수 있습니다.';
-$lang['security']              = '보안 경고: ì´ ì˜µì…˜ì„ ë°”ê¾¸ë©´ 보안 ìœ„í—˜ì´ ìžˆì„ ìˆ˜ 있습니다.';
-$lang['_configuration_manager'] = '환경 설정 관리ìž';
-$lang['_header_dokuwiki']      = 'ë„쿠위키';
-$lang['_header_plugin']        = '플러그ì¸';
-$lang['_header_template']      = '템플릿';
-$lang['_header_undefined']     = 'ì •ì˜ë˜ì§€ ì•Šì€ ì„¤ì •';
-$lang['_basic']                = '기본';
-$lang['_display']              = 'ë³´ì´ê¸°';
-$lang['_authentication']       = 'ì¸ì¦';
-$lang['_anti_spam']            = '스팸 방지';
-$lang['_editing']              = '편집';
-$lang['_links']                = 'ë§í¬';
-$lang['_media']                = '미디어';
-$lang['_notifications']        = '알림';
-$lang['_syndication']          = '신디케ì´ì…˜ (RSS)';
-$lang['_advanced']             = '고급';
-$lang['_network']              = '네트워í¬';
-$lang['_msg_setting_undefined'] = 'ì„¤ì •ì— ë©”íƒ€ë°ì´í„°ê°€ 없습니다.';
-$lang['_msg_setting_no_class'] = 'ì„¤ì •ì— í´ëž˜ìŠ¤ê°€ 없습니다.';
-$lang['_msg_setting_no_default'] = 'ê¸°ë³¸ê°’ì´ ì—†ìŠµë‹ˆë‹¤.';
-$lang['title']                 = '위키 제목 (위키 ì´ë¦„)';
-$lang['start']                 = 'ê° ì´ë¦„ê³µê°„ì— ì‹œìž‘ì ìœ¼ë¡œ 사용할 문서 ì´ë¦„';
-$lang['lang']                  = 'ì¸í„°íŽ˜ì´ìФ 언어';
-$lang['template']              = '템플릿 (위키 ë””ìžì¸)';
-$lang['tagline']               = '태그ë¼ì¸ (í…œí”Œë¦¿ì´ ì§€ì›í•  경우)';
-$lang['sidebar']               = '사ì´ë“œë°” 문서 ì´ë¦„ (í…œí”Œë¦¿ì´ ì§€ì›í•  경우), 필드를 비우면 사ì´ë“œë°”를 비활성화';
-$lang['license']               = 'ë‚´ìš©ì„ ë°°í¬í•  때 ì–´ë–¤ ë¼ì´ì„ ìŠ¤ì— ë”°ë¼ì•¼ 합니까?';
-$lang['savedir']               = 'ë°ì´í„°ë¥¼ 저장할 디렉터리';
-$lang['basedir']               = '서버 경로 (예 <code>/dokuwiki/</code>). ìžë™ ê°ì§€ë¥¼ 하려면 비워 ë‘세요.';
-$lang['baseurl']               = '서버 URL (예 <code>http://www.yourserver.com</code>). ìžë™ ê°ì§€ë¥¼ 하려면 비워 ë‘세요.';
-$lang['cookiedir']             = '쿠키 경로. 기본 URL 위치로 지정하려면 비워 ë‘세요.';
-$lang['dmode']                 = '디렉터리 만들기 모드';
-$lang['fmode']                 = 'íŒŒì¼ ë§Œë“¤ê¸° 모드';
-$lang['allowdebug']            = '디버그 허용. <b>필요하지 않으면 비활성화하세요!</b>';
-$lang['recent']                = '최근 바뀜ì—서 문서당 항목 수';
-$lang['recent_days']           = '최근 ë°”ë€œì„ ìœ ì§€í•  기한 (ì¼)';
-$lang['breadcrumbs']           = 'ì´ë™ 경로 "ì¶”ì " 수. 비활성화하려면 0으로 설정하세요.';
-$lang['youarehere']            = 'ê³„ì¸µì  ì´ë™ 경로 사용 (다ìŒì— 위 ì˜µì…˜ì„ ë¹„í™œì„±í™”í•˜ê¸°ë¥¼ ì›í•  ê²ë‹ˆë‹¤)';
-$lang['fullpath']              = 'ë°”ë‹¥ê¸€ì— ë¬¸ì„œì˜ ì „ì²´ 경로 ë°ížˆê¸°';
-$lang['typography']            = '타ì´í¬ê·¸ëž˜í”¼ 대체';
-$lang['dformat']               = 'ë‚ ì§œ í˜•ì‹ (PHPì˜ <a href="http://php.net/strftime">strftime</a> 함수 참고)';
-$lang['signature']             = '편집기ì—서 서명 ë²„íŠ¼ì„ ëˆ„ë¥¼ 때 ë„£ì„ ë‚´ìš©';
-$lang['showuseras']            = '문서를 마지막으로 편집한 사용ìžë¥¼ 보여줄지 여부';
-$lang['toptoclevel']           = 'ëª©ì°¨ì˜ ìµœìƒìœ„ 단계';
-$lang['tocminheads']           = '목차를 ë„£ì„ ì—¬ë¶€ë¥¼ ê²°ì •í•  최소 문단 수';
-$lang['maxtoclevel']           = 'ëª©ì°¨ì˜ ìµœëŒ€ 단계';
-$lang['maxseclevel']           = 'ë¬¸ë‹¨ì˜ ìµœëŒ€ 편집 단계';
-$lang['camelcase']             = 'ë§í¬ì— CamelCase 사용';
-$lang['deaccent']              = '문서 ì´ë¦„ì„ ì§€ìš°ëŠ” 방법';
-$lang['useheading']            = '문서 ì´ë¦„ì„ ì²« 문단 제목으로 사용';
-$lang['sneaky_index']          = '기본ì ìœ¼ë¡œ, ë„쿠위키는 사ì´íŠ¸ë§µì— ëª¨ë“  ì´ë¦„ê³µê°„ì„ ë³´ì—¬ì¤ë‹ˆë‹¤. ì´ ì˜µì…˜ì„ í™œì„±í™”í•˜ë©´ 사용ìžê°€ ì½ê¸° ê¶Œí•œì´ ì—†ëŠ” ì´ë¦„ê³µê°„ì„ ìˆ¨ê¸°ê²Œ ë©ë‹ˆë‹¤. 특정 ACL 설정으로 색ì¸ì„ 사용할 수 없게 í•  수 있는 접근할 수 있는 하위 ì´ë¦„ê³µê°„ì„ ìˆ¨ê¸°ë©´ 설정ë©ë‹ˆë‹¤.';
-$lang['hidepages']             = '검색, 사ì´íŠ¸ë§µ ë° ë‹¤ë¥¸ ìžë™ 색ì¸ì—서 ì´ ì •ê·œ 표현ì‹ê³¼ ì¼ì¹˜í•˜ëŠ” 문서 숨기기';
-$lang['useacl']                = 'ì ‘ê·¼ 제어 ëª©ë¡ (ACL) 사용';
-$lang['autopasswd']            = 'ìžë™ ìƒì„± 비밀번호';
-$lang['authtype']              = 'ì¸ì¦ 백엔드';
-$lang['passcrypt']             = '비밀번호 암호화 방법';
-$lang['defaultgroup']          = '기본 그룹, 모든 새 사용ìžëŠ” ì´ ê·¸ë£¹ì— ì†í•˜ê²Œ ë©ë‹ˆë‹¤';
-$lang['superuser']             = '슈í¼ìœ ì € - ACL 설정과 ìƒê´€ì—†ì´ 모든 문서와 ê¸°ëŠ¥ì— ì™„ì „ížˆ 접근할 수 있는 그룹, ì‚¬ìš©ìž ë˜ëŠ” 쉼표로 êµ¬ë¶„ëœ ëª©ë¡ ì‚¬ìš©ìž1,@그룹1,사용ìž2';
-$lang['manager']               = 'ê´€ë¦¬ìž - 특정 관리 ê¸°ëŠ¥ì— ì ‘ê·¼í•  수 있는 그룹, ì‚¬ìš©ìž ë˜ëŠ” 쉼표로 êµ¬ë¶„ëœ ëª©ë¡ ì‚¬ìš©ìž1,@그룹1,사용ìž2';
-$lang['profileconfirm']        = 'í”„ë¡œí•„ì„ ë°”ê¿€ 때 비밀번호로 확ì¸';
-$lang['rememberme']            = 'ì˜êµ¬ì ìœ¼ë¡œ ë¡œê·¸ì¸ ì¿ í‚¤ 허용 (기억하기)';
-$lang['disableactions']        = 'ë„쿠위키 ë™ìž‘ 비활성화';
-$lang['disableactions_check']  = '검사';
-$lang['disableactions_subscription'] = '구ë…/êµ¬ë… ì·¨ì†Œ';
-$lang['disableactions_wikicode'] = 'ì›ë³¸ 보기/ì›ë³¸ 내보내기';
-$lang['disableactions_profile_delete'] = 'ìžì‹ ì˜ 계정 ì‚­ì œ';
-$lang['disableactions_other']  = '다른 ë™ìž‘ (쉼표로 구분)';
-$lang['disableactions_rss']    = 'XML 신디케ì´ì…˜ (RSS)';
-$lang['auth_security_timeout'] = 'ì¸ì¦ 보안 시간 초과 (ì´ˆ)';
-$lang['securecookie']          = 'HTTPS를 통해 ì„¤ì •ëœ ì¿ í‚¤ëŠ” HTTPS를 통해서만 보내져야 합니까? 위키 로그ì¸ì—ë§Œ SSL로 보호하고 위키를 둘러보는 것ì—는 보호하지 않게 하려면 ì´ ì˜µì…˜ì„ ë¹„í™œì„±í™”í•˜ì„¸ìš”.';
-$lang['remote']                = 'ì›ê²© API 시스템 활성화. 다른 어플리케ì´ì…˜ì´ XML-RPC ë˜ëŠ” 다른 ë©”ì»¤ë‹ˆì¦˜ì„ í†µí•´ ìœ„í‚¤ì— ì ‘ê·¼í•  수 있습니다.';
-$lang['remoteuser']            = 'ì—¬ê¸°ì— ìž…ë ¥í•œ 쉼표로 êµ¬ë¶„ëœ ê·¸ë£¹ ë˜ëŠ” 사용ìžì—게 ì›ê²© API ì ‘ê·¼ì„ ì œí•œí•©ë‹ˆë‹¤. 모ë‘ì—게 ì ‘ê·¼ ê¶Œí•œì„ ì£¼ë ¤ë©´ 비워 ë‘세요.';
-$lang['usewordblock']          = 'ë‚±ë§ ëª©ë¡ì„ 바탕으로 스팸 막기';
-$lang['relnofollow']           = '바깥 ë§í¬ì— rel="nofollow" 사용';
-$lang['indexdelay']            = 'ìƒ‰ì¸ ì „ 지연 시간 (ì´ˆ)';
-$lang['mailguard']             = 'ì´ë©”ì¼ ì£¼ì†Œë¥¼ 알아볼 수 없게 하기';
-$lang['iexssprotect']          = '올린 파ì¼ì˜ 악성 ìžë°”스í¬ë¦½íЏ, HTML 코드 가능성 여부를 검사';
-$lang['usedraft']              = '편집하는 ë™ì•ˆ ìžë™ìœ¼ë¡œ 초안 저장';
-$lang['htmlok']                = 'HTML í¬í•¨ 허용';
-$lang['phpok']                 = 'PHP í¬í•¨ 허용';
-$lang['locktime']              = 'íŒŒì¼ ìž ê·¸ê¸°ì— ëŒ€í•œ 최대 시간 (ì´ˆ)';
-$lang['cachetime']             = 'ìºì‹œì— 대한 최대 시간 (ì´ˆ)';
-$lang['target____wiki']        = '안쪽 ë§í¬ì— 대한 타겟 ì°½';
-$lang['target____interwiki']   = 'ì¸í„°ìœ„키 ë§í¬ì— 대한 타겟 ì°½';
-$lang['target____extern']      = '바깥 ë§í¬ì— 대한 타겟 ì°½';
-$lang['target____media']       = '미디어 ë§í¬ì— 대한 타겟 ì°½';
-$lang['target____windows']     = 'Windows ë§í¬ì— 대한 타겟 ì°½';
-$lang['mediarevisions']        = '미디어 íŒì„ 활성화하겠습니까?';
-$lang['refcheck']              = '미디어 파ì¼ì„ 삭제하기 ì „ì— ì•„ì§ ì‚¬ìš©í•˜ê³  있는지 검사';
-$lang['gdlib']                 = 'GD ë¼ì´ë¸ŒëŸ¬ë¦¬ 버전';
-$lang['im_convert']            = 'ImageMagickì˜ ë³€í™˜ ë„êµ¬ì˜ ê²½ë¡œ';
-$lang['jpg_quality']           = 'JPG 압축 품질 (0-100)';
-$lang['fetchsize']             = 'fetch.phpê°€ 바깥 URLì—서 다운로드할 수 있는 최대 í¬ê¸° (ë°”ì´íЏ), 예를 들어 바깥 ê·¸ë¦¼ì„ ìºì‹œí•˜ê³  í¬ê¸° 조절할 때.';
-$lang['subscribers']           = '사용ìžê°€ ì´ë©”ì¼ë¡œ 문서 ë°”ë€œì„ êµ¬ë…í•  수 있ë„ë¡ í•˜ê¸°';
-$lang['subscribe_time']        = 'êµ¬ë… ëª©ë¡ê³¼ ìš”ì•½ì´ ë³´ë‚´ì§ˆ 경과 시간 (ì´ˆ); recent_daysì— ì§€ì •ëœ ì‹œê°„ë³´ë‹¤ 작아야 합니다.';
-$lang['notify']                = 'í•­ìƒ ì´ ì´ë©”ì¼ ì£¼ì†Œë¡œ 바뀜 ì•Œë¦¼ì„ ë³´ëƒ„';
-$lang['registernotify']        = 'í•­ìƒ ì´ ì´ë©”ì¼ ì£¼ì†Œë¡œ 새로 등ë¡í•œ 사용ìžì˜ 정보를 보냄';
-$lang['mailfrom']              = 'ìžë™ìœ¼ë¡œ 보내는 ë©”ì¼ì— 사용할 보내는 사람 ì´ë©”ì¼ ì£¼ì†Œ';
-$lang['mailreturnpath']        = '배달 불가 안내를 위한 ìˆ˜ì‹ ìž ë©”ì¼ ì£¼ì†Œ';
-$lang['mailprefix']            = 'ìžë™ìœ¼ë¡œ 보내는 ë©”ì¼ì— 사용할 ì´ë©”ì¼ ì œëª© ì ‘ë‘ì–´. 위키 ì œëª©ì„ ì‚¬ìš©í•˜ë ¤ë©´ 비워 ë‘세요';
-$lang['htmlmail']              = '보기ì—는 ë” ì¢‹ì§€ë§Œ í¬í‚¤ê°€ 조금 ë” í° HTML 태그가 í¬í•¨ëœ ì´ë©”ì¼ì„ 보내기. ì¼ë°˜ í…스트만으로 ëœ ë©”ì¼ì„ 보내려면 비활성화하세요.';
-$lang['sitemap']               = 'Google 사ì´íŠ¸ë§µ ìƒì„± ë‚ ì§œ ë¹ˆë„ (ì¼). 비활성화하려면 0';
-$lang['rss_type']              = 'XML 피드 형ì‹';
-$lang['rss_linkto']            = 'XML 피드 ë§í¬ ì •ë³´';
-$lang['rss_content']           = 'XML 피드 í•­ëª©ì— ë³´ì—¬ì£¼ëŠ” ë‚´ìš©ì€ ë¬´ì—‡ìž…ë‹ˆê¹Œ?';
-$lang['rss_update']            = 'XML 피드 ì—…ë°ì´íЏ 간격 (ì´ˆ)';
-$lang['rss_show_summary']      = 'XML í”¼ë“œì˜ ì œëª©ì—서 요악 보여주기';
-$lang['rss_media']             = 'ì–´ë–¤ 규격으로 XML í”¼ë“œì— ë°”ë€œì„ ë‚˜ì—´í•´ì•¼ 합니까?';
-$lang['rss_media_o_both']      = 'ì–‘ë°©í–¥';
-$lang['rss_media_o_pages']     = '쪽';
-$lang['rss_media_o_media']     = '미디어';
-$lang['updatecheck']           = 'ì—…ë°ì´íŠ¸ì™€ 보안 경고를 검사할까요? ë„쿠위키는 ì´ ê¸°ëŠ¥ì„ ìœ„í•´ update.dokuwiki.orgì— ì—°ê²°ì´ í•„ìš”í•©ë‹ˆë‹¤.';
-$lang['userewrite']            = '멋진 URL 사용';
-$lang['useslash']              = 'URLì—서 ì´ë¦„공간 구분ìžë¡œ 슬래시 사용';
-$lang['sepchar']               = '문서 ì´ë¦„ ë‚±ë§ êµ¬ë¶„ìž';
-$lang['canonical']             = '완전한 canonical URL 사용';
-$lang['fnencode']              = 'ASCIIê°€ 아닌 íŒŒì¼ ì´ë¦„ì„ ì¸ì½”딩하는 방법.';
-$lang['autoplural']            = 'ë§í¬ì—서 복수형 검사';
-$lang['compression']           = '첨부 파ì¼ì˜ ì••ì¶• 방법';
-$lang['gzip_output']           = 'xhtmlì— ëŒ€í•´ gzip ë‚´ìš© ì¸ì½”딩 사용';
-$lang['compress']              = 'CSS ë° ìžë°”스í¬ë¦½íŠ¸ë¥¼ 압축하여 출력';
-$lang['cssdatauri']            = 'CSS 파ì¼ì—서 ê·¸ë¦¼ì´ ì°¸ì¡°ë˜ëŠ” 최대 ë°”ì´íЏ í¬ê¸°ë¥¼ 스타ì¼ì‹œíŠ¸ì— ê·œì •í•´ì•¼ HTTP 요청 í—¤ë” ì˜¤ë²„í—¤ë“œ í¬ê¸°ë¥¼ ì¤„ì¼ ìˆ˜ 있습니다. <code>400</code>ì—서 <code>600</code> ë°”ì´íЏ ì •ë„ë©´ ì¢‹ì€ íš¨ìœ¨ì„ ê°€ì ¸ì˜µë‹ˆë‹¤. 비활성화하려면 <code>0</code>으로 설정하세요.';
-$lang['send404']               = '존재하지 않는 ë¬¸ì„œì— "HTTP 404/페ì´ì§€ë¥¼ ì°¾ì„ ìˆ˜ 없습니다" 보내기';
-$lang['broken_iua']            = '시스템ì—서 ignore_user_abort í•¨ìˆ˜ì— ë¬¸ì œê°€ 있습니까? 문제가 있다면 검색 색ì¸ì´ ë™ìž‘하지 않는 ì›ì¸ì´ ë©ë‹ˆë‹¤. ì´ í•¨ìˆ˜ê°€ IIS+PHP/CGIì—서 문제가 있는 것으로 알려져 있습니다. ìžì„¸í•œ 정보는 <a href="http://bugs.dokuwiki.org/?do=details&amp;task_id=852">버그 852</a>를 참조하시기 ë°”ëžë‹ˆë‹¤.';
-$lang['xsendfile']             = '웹 서버가 ì •ì  íŒŒì¼ì„ 제공할 수 있ë„ë¡ X-Sendfile í—¤ë”를 사용하겠습니까? 웹 서버가 ì´ ê¸°ëŠ¥ì„ ì§€ì›í•´ì•¼ 합니다.';
-$lang['renderer_xhtml']        = '주요 (xhtml) 위키 ì¶œë ¥ì— ì‚¬ìš©í•  ë Œë”러';
-$lang['renderer__core']        = '%s (ë„쿠위키 코어)';
-$lang['renderer__plugin']      = '%s (플러그ì¸)';
-$lang['dnslookups']            = 'ë„쿠위키가 문서를 편집하는 사용ìžì˜ ì›ê²© IP ì£¼ì†Œì— ëŒ€í•œ 호스트 ì´ë¦„ì„ ì¡°íšŒí•©ë‹ˆë‹¤. 서버가 ëŠë¦¬ê±°ë‚˜ DNS 서버를 ìž‘ë™í•˜ì§€ 않거나 ì´ ê¸°ëŠ¥ì„ ì›í•˜ì§€ 않으면, ì´ ì˜µì…˜ì„ ë¹„í™œì„±í™”í•˜ì„¸ìš”';
-$lang['jquerycdn']             = 'ì œì´ì¿¼ë¦¬(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']         = '프ë¡ì‹œ 서버 ì´ë¦„';
-$lang['proxy____port']         = '프ë¡ì‹œ í¬íЏ';
-$lang['proxy____user']         = '프ë¡ì‹œ ì‚¬ìš©ìž ì´ë¦„';
-$lang['proxy____pass']         = '프ë¡ì‹œ 비밀번호';
-$lang['proxy____ssl']          = '프ë¡ì‹œë¡œ 연결하는 ë° SSL 사용';
-$lang['proxy____except']       = '프ë¡ì‹œê°€ 건너뛰어야 í•  ì¼ì¹˜í•˜ëŠ” URLì˜ ì •ê·œ 표현ì‹.';
-$lang['safemodehack']          = 'safemode hack 활성화';
-$lang['ftp____host']           = 'safemode hackì˜ FTP 서버';
-$lang['ftp____port']           = 'safemode hackì˜ FTP í¬íЏ';
-$lang['ftp____user']           = 'safemode hackì˜ FTP ì‚¬ìš©ìž ì´ë¦„';
-$lang['ftp____pass']           = 'safemode hackì˜ FTP 비밀번호';
-$lang['ftp____root']           = 'safemode hackì˜ FTP 루트 디렉터리';
-$lang['license_o_']            = 'ì„ íƒí•˜ì§€ 않ìŒ';
-$lang['typography_o_0']        = 'ì—†ìŒ';
-$lang['typography_o_1']        = 'ìž‘ì€ë”°ì˜´í‘œë¥¼ 제외';
-$lang['typography_o_2']        = 'ìž‘ì€ë”°ì˜´í‘œë¥¼ í¬í•¨ (í•­ìƒ ë™ìž‘하지 ì•Šì„ ìˆ˜ë„ ìžˆìŒ)';
-$lang['userewrite_o_0']        = 'ì—†ìŒ';
-$lang['userewrite_o_1']        = '.htaccess';
-$lang['userewrite_o_2']        = 'ë„쿠위키 ë‚´ë¶€';
-$lang['deaccent_o_0']          = 'ë„기';
-$lang['deaccent_o_1']          = '악센트 제거';
-$lang['deaccent_o_2']          = '로마ìží™”';
-$lang['gdlib_o_0']             = 'GD ë¼ì´ë¸ŒëŸ¬ë¦¬ë¥¼ 사용할 수 ì—†ìŒ';
-$lang['gdlib_o_1']             = '버전 1.x';
-$lang['gdlib_o_2']             = 'ìžë™ ê°ì§€';
-$lang['rss_type_o_rss']        = 'RSS 0.91';
-$lang['rss_type_o_rss1']       = 'RSS 1.0';
-$lang['rss_type_o_rss2']       = 'RSS 2.0';
-$lang['rss_type_o_atom']       = 'Atom 0.3';
-$lang['rss_type_o_atom1']      = 'Atom 1.0';
-$lang['rss_content_o_abstract'] = '개요';
-$lang['rss_content_o_diff']    = '통합 ì°¨ì´';
-$lang['rss_content_o_htmldiff'] = 'HTML 형ì‹ì˜ ì°¨ì´ í‘œ';
-$lang['rss_content_o_html']    = 'ì „ì²´ HTML 페ì´ì§€ ë‚´ìš©';
-$lang['rss_linkto_o_diff']     = 'ì°¨ì´ ë³´ê¸°';
-$lang['rss_linkto_o_page']     = 'ê°œì •ëœ ë¬¸ì„œ';
-$lang['rss_linkto_o_rev']      = 'íŒì˜ 목ë¡';
-$lang['rss_linkto_o_current']  = '현재 문서';
-$lang['compression_o_0']       = 'ì—†ìŒ';
-$lang['compression_o_gz']      = 'gzip';
-$lang['compression_o_bz2']     = 'bz2';
-$lang['xsendfile_o_0']         = '사용하지 않ìŒ';
-$lang['xsendfile_o_1']         = '사유 lighttpd í—¤ë” (릴리스 1.5 ì´ì „)';
-$lang['xsendfile_o_2']         = '표준 X-Sendfile í—¤ë”';
-$lang['xsendfile_o_3']         = '사유 Nginx X-Accel-Redirect í—¤ë”';
-$lang['showuseras_o_loginname'] = 'ë¡œê·¸ì¸ ì´ë¦„';
-$lang['showuseras_o_username'] = '사용ìžì˜ 실명';
-$lang['showuseras_o_username_link'] = 'ì¸í„°ìœ„키 ì‚¬ìš©ìž ë§í¬ë¡œ ëœ ì‚¬ìš©ìžì˜ 실명';
-$lang['showuseras_o_email']    = '사용ìžì˜ ì´ë©”ì¼ ì£¼ì†Œ (ë©”ì¼ ì£¼ì†Œ ì„¤ì •ì— ë”°ë¼ ì•ˆë³´ì¼ ìˆ˜ 있ìŒ)';
-$lang['showuseras_o_email_link'] = 'mailto: ë§í¬ë¡œ ëœ ì‚¬ìš©ìžì˜ ì´ë©”ì¼ ì£¼ì†Œ';
-$lang['useheading_o_0']        = '전혀 ì—†ìŒ';
-$lang['useheading_o_navigation'] = '둘러보기ì—ë§Œ';
-$lang['useheading_o_content']  = '위키 ë‚´ìš©ì—ë§Œ';
-$lang['useheading_o_1']        = 'í•­ìƒ';
-$lang['readdircache']          = 'readdir ìºì‹œì˜ 최대 시간 (ì´ˆ)';
diff --git a/wiki/lib/plugins/config/lang/la/intro.txt b/wiki/lib/plugins/config/lang/la/intro.txt
deleted file mode 100644
index 51d8c3d..0000000
--- a/wiki/lib/plugins/config/lang/la/intro.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-====== Optionum Administratio ======
-
-In hac pagina administratoris optiones mutare et inspicere potes. Auxilia in pagina [[doku>config|conformationis]] sunt, si singulas res uidere uis, i ad paginam [[doku>plugin:config|conformationis]].
-
-Optiones ostensae rubro colore tutae et non nunc mutabiles sunt. Optiones ostensae caeruleo colore praecipuae sunt et optiones ostensae in area alba singulares huic uici sunt. Et caerulae et albae optiones mutabiles sunt.
-
-Memento premere **SERVA** ante quam nouam paginam eas: si hoc non facias, mutata amissa sunt.
diff --git a/wiki/lib/plugins/config/lang/la/lang.php b/wiki/lib/plugins/config/lang/la/lang.php
deleted file mode 100644
index 515aa95..0000000
--- a/wiki/lib/plugins/config/lang/la/lang.php
+++ /dev/null
@@ -1,176 +0,0 @@
-<?php
-/**
- * Latin language file
- *
- * @author Massimiliano Vassalli <vassalli.max@gmail.com>
- */
-$lang['menu']                  = 'Optiones Administrationis';
-$lang['error']                 = 'Optiones non nouatae ob errores: rursum temptat. Errores rubro colore signati sunt.';
-$lang['updated']               = 'Optiones feliciter nouatae.';
-$lang['nochoice']              = '(nulla optio est)';
-$lang['locked']                = 'Optio documenti non nouata est, <br/> optiones et facultates documenti inspicis.';
-$lang['danger']                = 'CAVE: si has optiones mutabis, in administrationis indicem non inire potes.';
-$lang['warning']               = 'CAVE: si hae optiones mutabis, graues errores erunt.';
-$lang['security']              = 'CAVE: si hae optiones mutabis, graues errores erunt.';
-$lang['_configuration_manager'] = 'Optionum administratio';
-$lang['_header_dokuwiki']      = 'Vicis Optiones';
-$lang['_header_plugin']        = 'Addendorum Optiones';
-$lang['_header_template']      = 'Vicis Formae Optiones';
-$lang['_header_undefined']     = 'Variae Optiones';
-$lang['_basic']                = 'Praecipuae Optiones';
-$lang['_display']              = 'Speciei Optiones';
-$lang['_authentication']       = 'Confirmationis Optiones';
-$lang['_anti_spam']            = 'In Mala Optiones';
-$lang['_editing']              = 'Recensendi Optiones';
-$lang['_links']                = 'Nexi Optiones';
-$lang['_media']                = 'Visiuorum Optiones';
-$lang['_advanced']             = 'Maiores Optiones';
-$lang['_network']              = 'Interretis Optiones';
-$lang['_msg_setting_undefined'] = 'Res codicum sine optionibus.';
-$lang['_msg_setting_no_class'] = 'Classes sine optionibus';
-$lang['_msg_setting_no_default'] = 'Nihil';
-$lang['fmode']                 = 'Documentum creandum ratio';
-$lang['dmode']                 = 'Scrinia creandam ratio';
-$lang['lang']                  = 'Linguae optiones';
-$lang['basedir']               = 'Computatoris seruitoris domicilium (ex. <code>/dokuwiki/</code>). Nihil scribere si id machinatione agnoscere uis.';
-$lang['baseurl']               = 'Computatoris seruitoris VRL (ex. <code>http://www.yourserver.com</code>). Nihil scribere si id machinatione agnoscere uis.';
-$lang['savedir']               = 'Documentorum seruatorum domicilium';
-$lang['start']                 = 'Nomen paginae dominicae';
-$lang['title']                 = 'Vicis titulus';
-$lang['template']              = 'Vicis forma';
-$lang['license']               = 'Sub quibus legibus uicem creare uin?';
-$lang['fullpath']              = 'Totum domicilium paginae in pedibus scribis.';
-$lang['recent']                = 'Extremae mutationes';
-$lang['breadcrumbs']           = 'Numerus uestigiorum';
-$lang['youarehere']            = 'Ordo uestigiorum';
-$lang['typography']            = 'Signa supponentes';
-$lang['htmlok']                = 'HTML aptum facere';
-$lang['phpok']                 = 'PHP aptum facere';
-$lang['dformat']               = 'Forma diei (uide paginam <a href="http://php.net/strftime">de diebus</a>)';
-$lang['signature']             = 'Subscriptio';
-$lang['toptoclevel']           = 'Gradus maior tabularum argumentorum';
-$lang['tocminheads']           = 'Minimus numerus capitum';
-$lang['maxtoclevel']           = 'Maximus numerus tabularum argumentorum';
-$lang['maxseclevel']           = 'Maxima pars gradus recensendi';
-$lang['camelcase']             = 'SignaContinua nexis apta facere';
-$lang['deaccent']              = 'Titulus paginarum abrogare';
-$lang['useheading']            = 'Capite primo ut titulo paginae uti';
-$lang['refcheck']              = 'Documenta uisiua inspicere';
-$lang['allowdebug']            = '<b>ineptum facias si non necessarium!</b> aptum facere';
-$lang['usewordblock']          = 'Malum interretiale ob uerba delere';
-$lang['indexdelay']            = 'Tempus transitum in ordinando (sec)';
-$lang['relnofollow']           = 'rel="nofollow" externis nexis uti';
-$lang['mailguard']             = 'Cursus interretiales abscondere';
-$lang['iexssprotect']          = 'Documenta nouata ob mala JavaScript uel HTML inspicere';
-$lang['showuseras']            = 'Quid, cum Sodalem, qui extremus paginam recensuit, ostendat, scribere';
-$lang['useacl']                = 'Aditus inspectionis indicibus uti';
-$lang['autopasswd']            = 'Tessera machinatione generata';
-$lang['authtype']              = 'Confirmationis finis';
-$lang['passcrypt']             = 'Ratio tesserae tuendae';
-$lang['defaultgroup']          = 'Grex communis';
-$lang['superuser']             = 'Magister\stra - grex, Sodalis uel index diuisus a uigulis sodalis1,@grex,sodalis2 cum plenis facultatibus sine ICA optionum termino';
-$lang['manager']               = 'Administrator - grex, Sodalis uel index diuisus a uigulis sodalis1,@grex,sodalis2 cum certis facultatibus';
-$lang['profileconfirm']        = 'Mutationes tessera confirmanda sunt';
-$lang['disableactions']        = 'Vicis actiones ineptas facere';
-$lang['disableactions_check']  = 'Inspicere';
-$lang['disableactions_subscription'] = 'Inscribe/Delere';
-$lang['disableactions_wikicode'] = 'Fontem uidere/Rudem transcribere';
-$lang['disableactions_other']  = 'Aliae actiones (uirgulis diuisae)';
-$lang['sneaky_index']          = 'Hic uicis omnia genera in indice inserit. Si ineptam hanc optionem facias, solum ea, quae Sodales uidere possunt, in indice erunt. Hoc suggreges et suggenera abscondere potest.';
-$lang['auth_security_timeout'] = 'Confirmationis Tempus (secundis)';
-$lang['securecookie']          = 'Formulae HTTPS mittine solum per HTTPS possunt? Ineptam hanc optio facias, si accessus uicis tutus est, sed interretis non.';
-$lang['updatecheck']           = 'Nouationes et fiducias inspicerene? Hic uicis connectere update.dokuwiki.org debes.';
-$lang['userewrite']            = 'VRL formosis uti';
-$lang['useslash']              = 'Repagula in URL, ut genera diuidas, uti';
-$lang['usedraft']              = 'Propositum in recensione machinatione seruatur';
-$lang['sepchar']               = 'Signum, quod paginas diuidit';
-$lang['canonical']             = 'VRL perfecto uti';
-$lang['fnencode']              = 'Ratio quae nomen documentorum non-ASCII codificit';
-$lang['autoplural']            = 'Pluralia in nexis inspicere';
-$lang['compression']           = 'Ratio compressionis documentis "attic"';
-$lang['cachetime']             = 'Maximum tempus formulis (sec)';
-$lang['locktime']              = 'Maximum tempus documentis inclusis (sec)';
-$lang['fetchsize']             = 'Maximum pondus (bytes), quod fetch.php ab externis onerare potest';
-$lang['notify']                = 'Adnotationis mutationes ad hunc cursum mittere';
-$lang['registernotify']        = 'De nouis Sodalibus ad hunc cursum notas mittere';
-$lang['mailfrom']              = 'Cursus interretialis, quo in cursibus uti';
-$lang['gzip_output']           = 'gzip Argumentum-Codificans xhtml uti';
-$lang['gdlib']                 = 'GD Lib forma';
-$lang['im_convert']            = 'Domicilium machinae ImageMagick\'s';
-$lang['jpg_quality']           = 'JPG compressio colorum (0-100)';
-$lang['subscribers']           = 'Inscriptionis paginarum auxilium aptus facere';
-$lang['subscribe_time']        = 'Tempus post quod inscriptionum index et summa missa sunt (sec); Hic minor quam tempus declaratum fortasse est.';
-$lang['compress']              = 'CSS et javascript dimissio';
-$lang['hidepages']             = 'Paginas congruentes abscondere (uerba regularia)';
-$lang['send404']               = 'Mitte "HTTP 404/ Pagina non reperta" si paginae non sunt.';
-$lang['sitemap']               = 'Google formam situs gignere (dies)';
-$lang['broken_iua']            = 'ignore_user_abort functio inepta estne? Hoc indicem quaestionum, quae non aptae sunt, creare non potest. IIS+PHP/CGI ineptum est. Vide <a href="http://bugs.splitbrain.org/?do=details&amp;task_id=852">Bug 852</a>';
-$lang['xsendfile']             = 'X-Sendfile utine ut seruitor interretialis documenta firma creet? Tuus seruitor interretialis hunc pati debes.';
-$lang['renderer_xhtml']        = 'Quid dimittere ut hoc in principio uicis (xhtml) utaris';
-$lang['renderer__core']        = '%s (uicis nucleus)';
-$lang['renderer__plugin']      = '%s (addenda)';
-$lang['rememberme']            = 'Formulas aditus aptas facere (memento me)';
-$lang['rss_type']              = 'XML summae genus';
-$lang['rss_linkto']            = 'XML summae connectio';
-$lang['rss_content']           = 'Quid in XML summis uidere?';
-$lang['rss_update']            = 'XML summae renouationis interuallum temporis';
-$lang['recent_days']           = 'Numerus mutationum recentium tenendorum (dies)';
-$lang['rss_show_summary']      = 'XML summa titulos ostendit';
-$lang['target____wiki']        = 'Fenestra nexis internis';
-$lang['target____interwiki']   = 'Fenestra nexis inter uicem';
-$lang['target____extern']      = 'Fenestra nexis externis';
-$lang['target____media']       = 'Fenestra nexis uisiuis';
-$lang['target____windows']     = 'Fenestra nexis fenestrarum';
-$lang['proxy____host']         = 'Proxis seruitoris nomen';
-$lang['proxy____port']         = 'Proxis portus';
-$lang['proxy____user']         = 'Proxis nomen sodalis';
-$lang['proxy____pass']         = 'Proxis tessera';
-$lang['proxy____ssl']          = 'SSL ut connectas uti';
-$lang['proxy____except']       = 'Verba, ut VRL inspicias, quibus Proxis non agnoscitur.';
-$lang['safemodehack']          = 'Ad tempus conseruatio apta facere';
-$lang['ftp____host']           = 'FTP computator seruitor ad tempus seruatis';
-$lang['ftp____port']           = 'FTP ianua ad tempus seruatis';
-$lang['ftp____user']           = 'FTP Sodalis ad tempus seruatis';
-$lang['ftp____pass']           = 'FTP tessera ad tempus seruatis';
-$lang['ftp____root']           = 'FTP domicilium ad tempus seruatis';
-$lang['license_o_']            = 'Nihil electum';
-$lang['typography_o_0']        = 'neuter';
-$lang['typography_o_1']        = 'sine singulis uirgulis';
-$lang['typography_o_2']        = 'cum singulis uirgulis';
-$lang['userewrite_o_0']        = 'neuter';
-$lang['userewrite_o_1']        = '.htaccess';
-$lang['userewrite_o_2']        = 'DokuWiki domesticus';
-$lang['deaccent_o_0']          = 'ex';
-$lang['deaccent_o_1']          = 'accentum tollere';
-$lang['deaccent_o_2']          = 'Latinis litteris';
-$lang['gdlib_o_0']             = 'GD Lib inepta';
-$lang['gdlib_o_1']             = 'Forma 1.x';
-$lang['gdlib_o_2']             = 'Machinatione inspicere';
-$lang['rss_type_o_rss']        = 'RSS 0.91';
-$lang['rss_type_o_rss1']       = 'RSS 1.0';
-$lang['rss_type_o_rss2']       = 'RSS 2.0';
-$lang['rss_type_o_atom']       = 'Atom 0.3';
-$lang['rss_type_o_atom1']      = 'Atom 1.0';
-$lang['rss_content_o_abstract'] = 'Summa';
-$lang['rss_content_o_diff']    = 'Comparatio una';
-$lang['rss_content_o_htmldiff'] = 'Tabulae HTML formatae comparatae';
-$lang['rss_content_o_html']    = 'Pagina cum HTML';
-$lang['rss_linkto_o_diff']     = 'discrimina uidere';
-$lang['rss_linkto_o_page']     = 'pagina recensita';
-$lang['rss_linkto_o_rev']      = 'recensionum index';
-$lang['rss_linkto_o_current']  = 'hic pagina';
-$lang['compression_o_0']       = 'neuter';
-$lang['compression_o_gz']      = 'gzip';
-$lang['compression_o_bz2']     = 'bz2';
-$lang['xsendfile_o_0']         = 'Noli uti';
-$lang['xsendfile_o_2']         = 'Praecipuus X-Sendfile';
-$lang['xsendfile_o_3']         = 'Proprietarius Nginx X-Accel-Redirect';
-$lang['showuseras_o_loginname'] = 'Sodalis nomen';
-$lang['showuseras_o_username'] = 'Sodalis nomen uerum';
-$lang['showuseras_o_email']    = 'Sodalis cursus interretialis (absconditus ut is tueratur)';
-$lang['showuseras_o_email_link'] = 'Sodalis cursus interretialis ut mailto: nexum';
-$lang['useheading_o_0']        = 'Numquam';
-$lang['useheading_o_navigation'] = 'Solum adspicere';
-$lang['useheading_o_content']  = 'Solum uicis argumentum';
-$lang['useheading_o_1']        = 'Semper';
-$lang['readdircache']          = 'Maximum tempus readdir (sec)';
diff --git a/wiki/lib/plugins/config/lang/lb/intro.txt b/wiki/lib/plugins/config/lang/lb/intro.txt
deleted file mode 100644
index 964ee85..0000000
--- a/wiki/lib/plugins/config/lang/lb/intro.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-====== Konfiguratioun ======
-
-Dëses Plugin hëlleft der bei der Konfiguratioun vun DokuWiki. Hëllef zu deenen eenzelnen Astellungen fënns de ënner [[doku>config]]. Méi Informatiounen zu dësem Plugin kriss de ënner [[doku>plugin:config]].
-
-Astellungen mat engem hellrouden Hannergrond si geséchert a kënnen net mat dësem Plugin verännert ginn. Astellungen mat hellbloem Hannergrond si Virastellungen, wäiss hannerluechte Felder weisen lokal verännert Werter un. Souwuel dié blo wéi och déi wäiss Felder kënne verännert ginn.
-
-Vergiess w.e.g. net **Späicheren** ze drécken iers de d'Säit verléiss, anescht ginn all deng Ännerungen verluer.
diff --git a/wiki/lib/plugins/config/lang/lt/intro.txt b/wiki/lib/plugins/config/lang/lt/intro.txt
deleted file mode 100644
index ac3c2f6..0000000
--- a/wiki/lib/plugins/config/lang/lt/intro.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-====== Konfiguracijos Administravimas ======
-
-Naudokite šį puslapį Dokuwiki instaliacijos tvarkymui. Pagalba individualiems nustatymams [[doku>config]]. Daugiau informacijos apie šį priedą [[doku>plugin:config]].
-
-Nustatymai raudoname fone yra apsaugoti nuo pakeitimų ir negali bÅ«ti pakeisti Å¡io įrankio pagalba. Nustatymai mÄ—lyname fone nustatyti pagal nutylÄ—jimÄ…, o baltame fone nustatyti lokaliai bÅ«tent Å¡iai instaliacijai. Nustatymai mÄ—lyname ir baltame fone gali bÅ«ti keiÄiami.
-
-Prieš paliekant ši puslapį, nepamirškite išsaugoti pakeitimus, tai galite padaryti nuspaudę **SAVE** mygtuką, kitu atveju pakeitimai nebus išsaugoti.
diff --git a/wiki/lib/plugins/config/lang/lt/lang.php b/wiki/lib/plugins/config/lang/lt/lang.php
deleted file mode 100644
index eff7f0e..0000000
--- a/wiki/lib/plugins/config/lang/lt/lang.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-/**
- * Lithuanian language file
- *
- * @author audrius.klevas@gmail.com
- * @author Arunas Vaitekunas <aras@fan.lt>
- */
-$lang['lang']                  = 'Kalba';
-$lang['template']              = 'Paruoštukas';
-$lang['recent']                = 'Paskutiniai taisymai';
-$lang['disableactions_check']  = 'Patikrinti';
-$lang['xsendfile_o_1']         = 'Firminė lighthttpd antraštė (prieš 1.5 išleidimą)';
-$lang['xsendfile_o_2']         = 'Standartinė X-Sendfile antraštė';
-$lang['xsendfile_o_3']         = 'Firminė Nginx X-Accel-Redirect antraštė';
-$lang['showuseras_o_loginname'] = 'Prisijungimo vardas';
-$lang['showuseras_o_username'] = 'Vartotojo pilnas vardas';
-$lang['showuseras_o_email']    = 'Vartotojo el. pašto adresas (pasak pašto apsaugos yra netinkamas)';
-$lang['showuseras_o_email_link'] = 'Vartotojo el. pašto adresas kaip mailto: nuoroda';
-$lang['useheading_o_0']        = 'Niekada';
-$lang['useheading_o_navigation'] = 'Tik Navigacija';
-$lang['useheading_o_content']  = 'Tik Wiki Turinys';
-$lang['useheading_o_1']        = 'Visada';
diff --git a/wiki/lib/plugins/config/lang/lv/intro.txt b/wiki/lib/plugins/config/lang/lv/intro.txt
deleted file mode 100644
index e4d8d45..0000000
--- a/wiki/lib/plugins/config/lang/lv/intro.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-====== KonfigurÄcijas vednis ======
-
-LapÄ var uzdot DokuWiki instalÄcijas iestatÄ«jumus. PalÄ«dzÄ«bu par atsevišķiem iestatÄ«jumiem meklÄ“t [[doku>config]]. SÄ«kÄkas ziņas par Å¡o moduli skatÄ«t  [[doku>plugin:config]].
-
-Ar sarkanu fonu parÄdÄ«tie iestatÄ«jumi ir aizsargÄti un ar Å¡o moduli nav labojami. Ar zilu fonu parÄdÄ«tie iestatÄ«jumi ir noklusÄ“tÄs vÄ“rtÄ«bas, bet uz balta fona parÄdÄ«ti programmas lokÄlie iestatÄ«jumi . Gan zilos, gan baltos var labot.
-
-Pirms aizej no šīs lapas, atceries nopsiest pogu **SAGLABÄ€T**, lai nezustu veiktÄs izmaiņas.
diff --git a/wiki/lib/plugins/config/lang/lv/lang.php b/wiki/lib/plugins/config/lang/lv/lang.php
deleted file mode 100644
index 8caba8e..0000000
--- a/wiki/lib/plugins/config/lang/lv/lang.php
+++ /dev/null
@@ -1,185 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * Latvian, Lettish language file
- *
- * @author Oskars Pakers <oskars.pakers@gmail.com>
- * @author Aivars Miška <allefm@gmail.com>
- */
-$lang['menu']                  = 'KonfigurÄcijas iestatÄ«jumi.';
-$lang['error']                 = 'IestatÄ«jumi nav saglabÄti, jo uzdotas aplamas vÄ“rtÄ«bas. LÅ«dzu pÄrskatÄ«t izmaiņas un saglabÄt atkÄrtoti.
-<br /> AplamÄs vÄ“rtÄ«bas izceltas sarkanÄ rÄmÄ«.';
-$lang['updated']               = 'IestatÄ«jumi veiksmÄ«gi saglabÄti.';
-$lang['nochoice']              = '(citu iespēju nav)';
-$lang['locked']                = 'IestatÄ«jumu fails nav grozÄms, ja tÄ nevajag bÅ«t, <br />
-pÄrliecinies, ka ir pareizs lokÄlo iestatÄ«juma faila vÄrds un tiesÄ«bas.';
-$lang['danger']                = 'BÄ«stami: Å Ä« parametra maiņa var padarÄ«t wiki sistÄ“mu un konfigurÄcijas izvÄ“lni nepieejamu.';
-$lang['warning']               = 'BrÄ«dinÄjums: Å Ä« parametra maiņa var izraisÄ«t negaidÄ«tu programmas uzvedÄ«bu.';
-$lang['security']              = 'Drošības brÄ«dinÄjums: Å Ä« parametra maiņa var bÅ«t riskanta drošībai.';
-$lang['_configuration_manager'] = 'KonfigurÄcijas pÄrvaldnieks';
-$lang['_header_dokuwiki']      = 'Dokuwiki iestatījumi';
-$lang['_header_plugin']        = 'Moduļu iestatījumi';
-$lang['_header_template']      = 'Šablonu iestatījumi';
-$lang['_header_undefined']     = 'Citi iestatījumi';
-$lang['_basic']                = 'Pamatiestatījumi';
-$lang['_display']              = 'Izskata iestatījumi';
-$lang['_authentication']       = 'AutentifikÄcija';
-$lang['_anti_spam']            = 'Pretspama iestatījumi';
-$lang['_editing']              = 'Labošanas iestatījumi';
-$lang['_links']                = 'Saišu iestatījumi';
-$lang['_media']                = 'Mēdiju iestatījumi';
-$lang['_notifications']        = 'BrÄ«dinÄjumu iestatÄ«jumi';
-$lang['_advanced']             = 'SmalkÄka iestatīšana';
-$lang['_network']              = 'Tīkla iestatījumi';
-$lang['_msg_setting_undefined'] = 'Nav atrodami iestatījumu metadati';
-$lang['_msg_setting_no_class'] = 'Nav iestatījumu klases';
-$lang['_msg_setting_no_default'] = 'Nav noklusÄ“tÄs vÄ“rtÄ«bas';
-$lang['title']                 = 'Wiki virsraksts';
-$lang['start']                 = 'SÄkumlapas vÄrds';
-$lang['lang']                  = 'Valoda';
-$lang['template']              = 'Å ablons';
-$lang['license']               = 'Ar kÄdu licenci saturs tiks publicÄ“ts?';
-$lang['savedir']               = 'Direktorija datu glabÄÅ¡anai';
-$lang['basedir']               = 'Saknes direktorija';
-$lang['baseurl']               = 'Saknes adrese (URL)';
-$lang['dmode']                 = 'TiesÄ«bas izveidotajÄm direktorijÄm';
-$lang['fmode']                 = 'Tiesības izveidotajiem failiem';
-$lang['allowdebug']            = 'Ieslēgt atkļūdošanu. <b>Izslēdz!</b>';
-$lang['recent']                = 'JaunÄkie grozÄ«jumi';
-$lang['recent_days']           = 'Cik dienas glabÄt jaunÄkÄs izmaiņas';
-$lang['breadcrumbs']           = 'Apmeklējumu vēstures garums';
-$lang['youarehere']            = 'RÄdÄ«t "tu atrodies Å¡eit"';
-$lang['fullpath']              = 'NorÄdÄ«t kÄjenÄ“ pilnu lapas ceļu';
-$lang['typography']            = 'Veikt tipogrÄfijas aizvietoÅ¡anu';
-$lang['dformat']               = 'Datuma formÄts (sk. PHP <a href="http://php.net/strftime">strftime</a> funkciju)';
-$lang['signature']             = 'Paraksts';
-$lang['showuseras']            = 'KÄ rÄdÄ«t pÄ“dÄ“jo lietotÄju, ka labojis lapu';
-$lang['toptoclevel']           = 'Satura rÄdÄ«tÄja pirmais lÄ«menis';
-$lang['tocminheads']           = 'MazÄkais virsrakstu skaits, no kuriem jÄveido satura rÄdÄ«tÄjs.';
-$lang['maxtoclevel']           = 'Satura rÄdÄ«tÄja dziļÄkais lÄ«menis';
-$lang['maxseclevel']           = 'DziļÄkais sekciju laboÅ¡anas lÄ«menis';
-$lang['camelcase']             = 'Lietot saitēm CamelCase';
-$lang['deaccent']              = 'Lapu nosaukumu transliterÄcija';
-$lang['useheading']            = 'Izmantot pirmo virsrakstu lapu nosaukumiem';
-$lang['sneaky_index']          = 'PÄ“c noklusÄ“tÄ DokuWiki lapu sarakstÄ parÄda visu nodaļu lapas. IeslÄ“dzot Å¡o parametru, noslÄ“ps tÄs nodaļas, kuras apmeklÄ“tÄjam nav tiesÄ«bas lasÄ«t. Bet tad  tiks arÄ« paslÄ“ptas dziļÄkas, bet atļautas nodaļas. Atsevišķos pieejas tiesÄ«bu konfigurÄcijas gadÄ«jumos lapu saraksts var nedarboties.';
-$lang['hidepages']             = 'SlÄ“pt lapas (regulÄras izteiksmes)';
-$lang['useacl']                = 'Izmantot piekļuves tiesības';
-$lang['autopasswd']            = 'AutomÄtiski Ä£enerÄ“t paroles';
-$lang['authtype']              = 'AutentifikÄcijas mehÄnisms';
-$lang['passcrypt']             = 'Paroļu šifrēšanas metode';
-$lang['defaultgroup']          = 'NoklusÄ“tÄ grupa';
-$lang['superuser']             = 'Administrators - grupa, lietotÄjs vai to saraksts ( piem.: user1,@group1,user2), kam ir pilnas tiesÄ«bas.';
-$lang['manager']               = 'PÄrziņi - grupa, lietotÄjs vai to saraksts ( piem.: user1,@group1,user2), kam ir pieeja pie dažÄm administrēšanas funkcijÄm.';
-$lang['profileconfirm']        = 'Profila labošanai vajag paroli';
-$lang['rememberme']            = 'Atļaut pastÄvÄ«gas ielogoÅ¡anÄs sÄ«kdatnes ("atceries mani")';
-$lang['disableactions']        = 'Bloķēt Dokuwiki darbības';
-$lang['disableactions_check']  = 'atzīmēt';
-$lang['disableactions_subscription'] = 'abonēt/atteikties';
-$lang['disableactions_wikicode'] = 'skatīt/eksportēt izejtekstu';
-$lang['disableactions_other']  = 'citas darbības (atdalīt ar komatiem)';
-$lang['auth_security_timeout'] = 'AutorizÄcijas drošības intervÄls (sekundÄ“s)';
-$lang['securecookie']          = 'Vai pa HTTPS sÅ«tÄmÄs sÄ«kdatnes sÅ«tÄ«t tikai pa HTTPS? AtslÄ“dz Å¡o iespÄ“ju, kad tikai pieteikÅ¡anÄs wiki sistÄ“mÄ notiek pa SSL Å¡ifrÄ“tu savienojumu, bet skatīšana  - pa neÅ¡ifrÄ“tu.';
-$lang['usewordblock']          = 'BloÄ·Ä“t spamu pÄ“c slikto vÄrdu saraksta.';
-$lang['relnofollow']           = 'rel="nofollow" ÄrÄ“jÄm saitÄ“m';
-$lang['indexdelay']            = 'Laika aizture pirms indeksÄcijas (sekundÄ“s)';
-$lang['mailguard']             = 'Slēpt epasta adreses';
-$lang['iexssprotect']          = 'PÄrbaudÄ«t, vai augÅ¡upielÄdÄ“tajÄ failÄ nav nav potenciÄli bÄ«stamÄ JavaScript vai HTML koda.';
-$lang['usedraft']              = 'Labojot automÄtiski saglabÄt melnrakstu';
-$lang['htmlok']                = 'Atļaut iekļautu HTTP';
-$lang['phpok']                 = 'Atļaut iekļautu PHP';
-$lang['locktime']              = 'Bloķēšanas failu maksimÄlais vecums';
-$lang['cachetime']             = 'Bufera maksimÄlais vecums (sek)';
-$lang['target____wiki']        = 'Kur atvÄ“rt iekšējÄs saites';
-$lang['target____interwiki']   = 'Kur atvērt saites strap wiki';
-$lang['target____extern']      = 'Kur atvÄ“rt ÄrÄ“jÄs saites';
-$lang['target____media']       = 'Kur atvērt mēdiju saites';
-$lang['target____windows']     = 'Kur atvērt saites uz tīkla mapēm';
-$lang['refcheck']              = 'PÄrbaudÄ«t saites uz mÄ“diju failiem';
-$lang['gdlib']                 = 'GD Lib versija';
-$lang['im_convert']            = 'Ceļš uz ImageMagick convert rīku';
-$lang['jpg_quality']           = 'JPG saspieÅ¡anas kvalitÄte';
-$lang['fetchsize']             = 'MaksimÄlais faila apjoms baitos, ko fetch.php var ielÄdÄ“t no interneta.';
-$lang['subscribers']           = 'Atļaut abonēt izmaiņas';
-$lang['subscribe_time']        = 'PÄ“c cik ilga laika izsÅ«tÄ«t abonÄ“tos sarakstus un kopsavilkumus (sekundes); jÄbÅ«t mazÄkam par laiku, kas norÄdÄ«ts "recent_days".';
-$lang['notify']                = 'Nosūtīt izmaiņu paziņojumu uz epasta adresi';
-$lang['registernotify']        = 'NosÅ«tÄ«t paziņojumu par jauniem lietotÄjiem uz epasta adresi';
-$lang['mailfrom']              = 'Epasta adrese automÄtiskajiem paziņojumiem';
-$lang['mailprefix']            = 'E-pasta temata prefikss automÄtiskajiem paziņojumiem';
-$lang['sitemap']               = 'Lapas karte priekš Google (dienas)';
-$lang['rss_type']              = 'XML barotnes veids';
-$lang['rss_linkto']            = 'XML barotnes uz ';
-$lang['rss_content']           = 'Ko attēlot XML barotnē?';
-$lang['rss_update']            = 'XML barotnes atjaunoÅ¡anas intervÄls (sec)';
-$lang['rss_show_summary']      = 'RÄdÄ«t visrakstos XML barotnes kopsavilkumu ';
-$lang['updatecheck']           = 'PÄrbaudÄ«t, vai pieejami atjauninÄjumi un drošības brÄ«dinÄjumi? Dokuwiki sazinÄsies ar update.dokuwiki.org';
-$lang['userewrite']            = 'Ä’rti lasÄmas adreses (URL)';
-$lang['useslash']              = 'Lietot slÄ«piņu  par URL atdalÄ«tÄju';
-$lang['sepchar']               = 'Lapas nosaukuma vÄrdu atdalÄ«tÄjs';
-$lang['canonical']             = 'Lietot kanoniskus URL';
-$lang['fnencode']              = 'Ne ASCII failvÄrdu kodēšanas metode:';
-$lang['autoplural']            = 'AutomÄtisks daudzskaitlis';
-$lang['compression']           = 'Saspiešanas metode vecajiem failiem';
-$lang['gzip_output']           = 'Lietot gzip Content-Encoding priekš xhtml';
-$lang['compress']              = 'Saspiest CSS un javascript failus';
-$lang['send404']               = 'Par neesoÅ¡Äm lapÄm atbildÄ“t "HTTP 404/Page Not Found" ';
-$lang['broken_iua']            = 'VarbÅ«t tavÄ serverÄ« nedarbojas funkcija ignore_user_abort? TÄ dēļ var nestÄdÄt meklēšanas indeksÄcija. Å Ä« problÄ“ma sastopama, piemÄ“ram, IIS ar PHP/CGI. Papildus informÄciju skatÄ«t <a href="http://bugs.splitbrain.org/?do=details&amp;task_id=852">KļūdÄ Nr.852</a>.';
-$lang['xsendfile']             = 'Lietot X-Sendfile virsrakstu, augÅ¡upielÄdÄ“jot failu serverÄ«? ';
-$lang['renderer_xhtml']        = 'Galveno (xhtml) wiki saturu renderēt ar ';
-$lang['renderer__core']        = '%s (dokuwiki kodols)';
-$lang['renderer__plugin']      = '%s (modulis)';
-$lang['proxy____host']         = 'Proxy servera vÄrds';
-$lang['proxy____port']         = 'Proxy ports';
-$lang['proxy____user']         = 'Proxy lietotÄja vÄrds';
-$lang['proxy____pass']         = 'Proxy parole';
-$lang['proxy____ssl']          = 'Lietot SSL savienojumu ar proxy';
-$lang['proxy____except']       = 'RegulÄrÄ izteiksme tiem URL, kam nevar lietot proxy.';
-$lang['safemodehack']          = 'Lietot safemode apeju';
-$lang['ftp____host']           = 'FTP serveris safemode apejai';
-$lang['ftp____port']           = 'FTP ports safemode apejai';
-$lang['ftp____user']           = 'FTP lietotÄjvÄrds safemode apejai';
-$lang['ftp____pass']           = 'FTP parole safemode apejai';
-$lang['ftp____root']           = 'FTP saknes diektorija safemode apejai';
-$lang['license_o_']            = 'Ar nekÄdu';
-$lang['typography_o_0']        = 'neko';
-$lang['typography_o_1']        = 'tikai dubultpēdiņas';
-$lang['typography_o_2']        = 'visas pÄ“diņas (ne vienmÄ“r strÄdÄ)';
-$lang['userewrite_o_0']        = 'nē';
-$lang['userewrite_o_1']        = '.htaccess';
-$lang['userewrite_o_2']        = 'DokuWiki līdzekļi';
-$lang['deaccent_o_0']          = 'nē';
-$lang['deaccent_o_1']          = 'atmest diakritiku';
-$lang['deaccent_o_2']          = 'pÄrrakstÄ«t latīņu burtiem';
-$lang['gdlib_o_0']             = 'GD Lib nav pieejama';
-$lang['gdlib_o_1']             = 'versija 1.x';
-$lang['gdlib_o_2']             = 'noteikt automÄtiksi';
-$lang['rss_type_o_rss']        = 'RSS 0.91';
-$lang['rss_type_o_rss1']       = 'RSS 1.0';
-$lang['rss_type_o_rss2']       = 'RSS 2.0';
-$lang['rss_type_o_atom']       = 'Atom 0.3';
-$lang['rss_type_o_atom1']      = 'Atom 1.0';
-$lang['rss_content_o_abstract'] = 'Abstract';
-$lang['rss_content_o_diff']    = 'apvienotu diff';
-$lang['rss_content_o_htmldiff'] = 'HTML formatētu diff tabulu';
-$lang['rss_content_o_html']    = 'pilnu HTML lapas saturu';
-$lang['rss_linkto_o_diff']     = 'atšķirības';
-$lang['rss_linkto_o_page']     = 'grozÄ«tÄs lapas';
-$lang['rss_linkto_o_rev']      = 'grozījumu sarakstu';
-$lang['rss_linkto_o_current']  = 'patreizējo lapu';
-$lang['compression_o_0']       = 'nav';
-$lang['compression_o_gz']      = 'gzip';
-$lang['compression_o_bz2']     = 'bz2';
-$lang['xsendfile_o_0']         = 'nelietot';
-$lang['xsendfile_o_1']         = 'lighttpd  (pirms laidiena 1.5) veida galvene';
-$lang['xsendfile_o_2']         = 'Standarta X-Sendfile galvene';
-$lang['xsendfile_o_3']         = 'Nginx X-Accel-Redirect veida galvene';
-$lang['showuseras_o_loginname'] = 'Login vÄrds';
-$lang['showuseras_o_username'] = 'Pilns lietotÄja vÄrds';
-$lang['showuseras_o_email']    = 'LietotÄja epasta adrese (slÄ“pta ar norÄdÄ«to paņēmienu)';
-$lang['showuseras_o_email_link'] = 'Lietot epasta adreses kÄ mailto: saites';
-$lang['useheading_o_0']        = 'Nekad';
-$lang['useheading_o_navigation'] = 'Tikai navigÄcija';
-$lang['useheading_o_content']  = 'Tikai Wiki saturs';
-$lang['useheading_o_1']        = 'Vienmēr';
-$lang['readdircache']          = 'MaksimÄlais readdir kesÅ¡ dzÄ«ves laiks (sek.)';
diff --git a/wiki/lib/plugins/config/lang/mr/intro.txt b/wiki/lib/plugins/config/lang/mr/intro.txt
deleted file mode 100644
index e068295..0000000
--- a/wiki/lib/plugins/config/lang/mr/intro.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-====== कॉनà¥à¤«à¤¿à¤—रेशन वà¥à¤¯à¤µà¤¸à¥à¤¥à¤¾à¤ªà¤• ====== 
-
-तà¥à¤®à¤šà¥à¤¯à¤¾ डॉकà¥à¤¯à¥à¤µà¤¿à¤•ीची सेटिंग बदलानà¥à¤¯à¤¾à¤¸à¤¾à¤¥à¥€ हे पान वापरा.
-विशिषà¥à¤  सेटिंग विषयी माहिती पाहिजे असलà¥à¤¯à¤¾à¤¸ [[doku>config]] पहा.
-पà¥à¤²à¤—िन विषयी अधिक माहितीसाठी [[doku>plugin:config]] पहा.
-हलकà¥à¤¯à¤¾ लाल पारà¥à¤¶à¥à¤µà¤­à¥‚मिमधे दाखवलेले सेटिंग सà¥à¤°à¤•à¥à¤·à¤¿à¤¤ आहेत व या पà¥à¤²à¤—िन दà¥à¤µà¤¾à¤°à¤¾ बदलता येणार नाहीत.
-निळà¥à¤¯à¤¾ पारà¥à¤¶à¥à¤µà¤­à¥‚मीमधे दाखवलेले सेटिंग आपोआप सेट होणारà¥à¤¯à¤¾ किमती आहेत आणि पांढरà¥à¤¯à¤¾ पारà¥à¤¶à¥à¤µà¤­à¥‚मीमधे 
-दाखवलेले सेटिंग या इनà¥à¤¸à¥à¤Ÿà¥‰à¤²à¥‡à¤¶à¤¨à¤¸à¤¾à¤ à¥€ ख़ास सेट केलेले आहेत. निळे आणि पांढरे दोनà¥à¤¹à¥€ सेटिंग बदलता येतील.
-
-हà¥à¤¯à¤¾ पानावरून बाहर जाणà¥à¤¯à¤¾à¤†à¤§à¥€ "Save" चे बटन कà¥à¤²à¤¿à¤• करायला विसरू नका नाहीतर सरà¥à¤µ बदल नाहीसे होतील.
diff --git a/wiki/lib/plugins/config/lang/mr/lang.php b/wiki/lib/plugins/config/lang/mr/lang.php
deleted file mode 100644
index 5dbb8ec..0000000
--- a/wiki/lib/plugins/config/lang/mr/lang.php
+++ /dev/null
@@ -1,177 +0,0 @@
-<?php
-/**
- * Marathi language file
- *
- * @author ghatothkach@hotmail.com
- * @author Padmanabh Kulkarni <kulkarnipadmanabh@gmail.com>
- * @author Padmanabh Kulkarni<kulkarnipadmanabh@gmail.com>
- * @author shantanoo@gmail.com
- */
-$lang['menu']                  = 'कॉनà¥à¤«à¤¿à¤—रेशन सेटिंग';
-$lang['error']                 = 'चà¥à¤•ीचा शबà¥à¤¦ टाकलà¥à¤¯à¤¾à¤®à¥à¤³à¥‡ सेटिंग अदà¥à¤¯à¤¯à¤¾à¤µà¤¤ केलेली नाहीत. कृपया तà¥à¤®à¤šà¥‡ बदल परत तपासा आणि परत सबमिट करा. <br /> चà¥à¤•ीचà¥à¤¯à¤¾ शबà¥à¤¦à¤¾à¤‚भोवती लाल बॉरà¥à¤¡à¤° दाखवली जाईल.';
-$lang['updated']               = 'सेटिंग अदà¥à¤¯à¤¯à¤¾à¤µà¤¤ केली आहेत.';
-$lang['nochoice']              = '( इतर काही परà¥à¤¯à¤¾à¤¯ नाहीत )';
-$lang['locked']                = 'सेटिंगची फाइल अदà¥à¤¯à¤¯à¤¾à¤µà¤¤ करू शकलो नाही. जर हे सहेतà¥à¤• नसेल तर, <br />
-सेटिंग चà¥à¤¯à¤¾ फाइल चे नाव व तà¥à¤¯à¤¾à¤µà¤°à¥€à¤² परवानगà¥à¤¯à¤¾ बरोबर असलà¥à¤¯à¤¾à¤šà¥€ खातà¥à¤°à¥€ करा.';
-$lang['danger']                = 'सावधान : हा परà¥à¤¯à¤¾à¤¯ बदललà¥à¤¯à¤¾à¤¸ तà¥à¤®à¤šà¥€ विकी आणि तिचे कॉनफिगरेशन निकामी होऊ शकते.';
-$lang['warning']               = 'सावघान: येथील परà¥à¤¯à¤¾à¤¯ बदलà¥à¤¯à¤¾à¤¸, अनपेकà¥à¤·à¥€à¤¤ गोषà¥à¤Ÿà¥€ होऊ शकतात.';
-$lang['security']              = 'सà¥à¤°à¤•à¥à¤·à¤¾ संबंधी सूचना : हा परà¥à¤¯à¤¾à¤¯ बदललà¥à¤¯à¤¾à¤¸ तà¥à¤®à¤šà¥€ साईट असà¥à¤°à¤•à¥à¤·à¤¿à¤¤ होऊ शकते.';
-$lang['_configuration_manager'] = 'कॉनà¥à¤«à¤¿à¤—रेशन वà¥à¤¯à¤µà¤¸à¥à¤¥à¤¾à¤ªà¤•';
-$lang['_header_dokuwiki']      = 'डॉकà¥à¤¯à¥à¤µà¤¿à¤•ि सेटिंग';
-$lang['_header_plugin']        = 'पà¥à¤²à¤—िन सेटिंग';
-$lang['_header_template']      = 'टेमà¥à¤ªà¤²à¥‡à¤Ÿ (नमà¥à¤¨à¤¾) सेटिंग';
-$lang['_header_undefined']     = 'अनिशà¥à¤šà¤¿à¤¤ सेटिंग';
-$lang['_basic']                = 'पायाभूत सेटिंग';
-$lang['_display']              = 'डिसपà¥à¤²à¥‡ सेटिंग';
-$lang['_authentication']       = 'अधिकृत करणà¥à¤¯à¤¾à¤µà¤¿à¤·à¤¯à¥€ सेटिंग';
-$lang['_anti_spam']            = 'भंकस-विरोधी सेटिंग';
-$lang['_editing']              = 'संपादन सेटिंग';
-$lang['_links']                = 'लिंक सेटिंग';
-$lang['_media']                = 'दृकà¥à¤¶à¥à¤°à¤¾à¤µà¥à¤¯ माधà¥à¤¯à¤® सेटिंग';
-$lang['_advanced']             = 'सविसà¥à¤¤à¤° सेटिंग';
-$lang['_network']              = 'नेटवरà¥à¤• सेटिंग';
-$lang['_msg_setting_undefined'] = 'सेटिंगविषयी उप-डेटा उपलबà¥à¤§ नाही.';
-$lang['_msg_setting_no_class'] = 'सेटिंगचा कà¥à¤²à¤¾à¤¸ उपलबà¥à¤§ नाही';
-$lang['_msg_setting_no_default'] = 'आपोआप किमà¥à¤®à¤¤ नाही';
-$lang['fmode']                 = 'फाइल निरà¥à¤®à¤¿à¤¤à¥€ मोड';
-$lang['dmode']                 = 'डिरेकà¥à¤Ÿà¤°à¥€ निरà¥à¤®à¤¿à¤¤à¥€ मोड';
-$lang['lang']                  = 'भाषा';
-$lang['basedir']               = 'पायाभूत डिरेकà¥à¤Ÿà¤°à¥€';
-$lang['baseurl']               = 'पायाभूत URL';
-$lang['savedir']               = 'डेटा साठवणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€à¤šà¥€ डिरेकà¥à¤Ÿà¤°à¥€';
-$lang['start']                 = 'सà¥à¤°à¥à¤µà¤¾à¤¤à¥€à¤šà¥à¤¯à¤¾ पानाचे नाव';
-$lang['title']                 = 'विकीचे शीरà¥à¤·à¤•';
-$lang['template']              = 'नमà¥à¤¨à¤¾';
-$lang['license']               = 'कà¥à¤ à¤²à¥à¤¯à¤¾ लायसंसचà¥à¤¯à¤¾ अंतरà¥à¤—त तà¥à¤®à¤šà¤¾ मजकूर रिलीज़ केला गेला पाहिजे ?';
-$lang['fullpath']              = 'पानांचा पूरà¥à¤£ पतà¥à¤¤à¤¾ फूटर मधे दाखव';
-$lang['recent']                = 'अलीकडील बदल';
-$lang['breadcrumbs']           = 'बà¥à¤°à¥‡à¤¡à¤•à¥à¤°à¤®à¥à¤¬à¤šà¥€ संखà¥à¤¯à¤¾';
-$lang['youarehere']            = 'पà¥à¤°à¤¤à¤µà¤¾à¤° बà¥à¤°à¥‡à¤¡à¤•à¥à¤°à¤®à¥à¤¬';
-$lang['typography']            = 'अनवधानाने à¤à¤¾à¤²à¥‡à¤²à¥à¤¯à¤¾ चà¥à¤•ा बदला';
-$lang['htmlok']                = 'अंतरà¥à¤—त HTML टाकायची परवानगी असू दे';
-$lang['phpok']                 = 'अंतरà¥à¤—त PHP टाकायची परवानगी असू दे';
-$lang['dformat']               = 'दिनांकाची पदà¥à¤§à¤¤ ( PHP चं <a href="http://php.net/strftime">strftime</a> हे फंकà¥à¤¶à¤¨ पाहा )';
-$lang['signature']             = 'हसà¥à¤¤à¤¾à¤•à¥à¤·à¤°';
-$lang['toptoclevel']           = 'अनà¥à¤•à¥à¤°à¤®à¤£à¤¿à¤•ेची सरà¥à¤µà¥‹à¤šà¥à¤š पातळी';
-$lang['tocminheads']           = 'कमीत कमी किती शीरà¥à¤·à¤•े असलà¥à¤¯à¤¾à¤¸ अनà¥à¤•à¥à¤°à¤®à¤£à¤¿à¤•ा बनवावी';
-$lang['maxtoclevel']           = 'अनà¥à¤•à¥à¤°à¤®à¤£à¤¿à¤•ेची जासà¥à¤¤à¥€à¤¤ जासà¥à¤¤ पातळी  ';
-$lang['maxseclevel']           = 'विभागीय संपादनाची जासà¥à¤¤à¥€à¤¤à¤œà¤¾à¤¸à¥à¤¤ पातळी';
-$lang['camelcase']             = 'लिंकसाठी कॅमलकेस वापरा.';
-$lang['deaccent']              = 'सरळà¥à¤¸à¥‹à¤Ÿ पृषà¥à¤  नाम';
-$lang['useheading']            = 'पहिलं शीरà¥à¤·à¤• पृषà¥à¤  नाम मà¥à¤¹à¤£à¥à¤¨ वापरा';
-$lang['refcheck']              = 'दृकà¥à¤¶à¥à¤°à¤¾à¤µà¥à¤¯ माधà¥à¤¯à¤®à¤¾à¤šà¤¾ संदरà¥à¤­ तपासा';
-$lang['allowdebug']            = 'डिबगची परवानगी <b> गरज नसलà¥à¤¯à¤¾à¤¸ बंद ठेवा !</b>';
-$lang['usewordblock']          = 'भंकस मजकूर थोपवणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ शबà¥à¤¦à¤¸à¤®à¥à¤¹ वापरा';
-$lang['indexdelay']            = 'सूचीकरणापूरà¥à¤µà¥€à¤šà¤¾ अवकाश ( सेकंदात )';
-$lang['relnofollow']           = 'बाहà¥à¤¯ लिनà¥à¤•साठी rel=nofollow  वापरा';
-$lang['mailguard']             = 'ईमेल दà¥à¤°à¥à¤¬à¥‹à¤§ करा';
-$lang['iexssprotect']          = 'अपलोड केलेलà¥à¤¯à¤¾ फाइल हानिकारक जावासà¥à¤•à¥à¤°à¤¿à¤ªà¥à¤Ÿ किंवा HTML साठी तपासा';
-$lang['showuseras']            = 'पानाचं शेवटचं संपादन करणारà¥à¤¯à¤¾ सदसà¥à¤¯à¤¾à¤²à¤¾ काय दाखवायचं';
-$lang['useacl']                = 'ACL  वापरा';
-$lang['autopasswd']            = 'पासवरà¥à¤¡ आपोआप बनवा';
-$lang['authtype']              = 'अधिकृत करणà¥à¤¯à¤¾à¤šà¥à¤¯à¤¾ वà¥à¤¯à¤µà¤¸à¥à¤¥à¥‡à¤šà¥‡ बॅक-à¤à¤‚ड';
-$lang['passcrypt']             = 'पासवरà¥à¤¡ गà¥à¤ªà¥à¤¤ ठेवणà¥à¤¯à¤¾à¤šà¥€ पदà¥à¤§à¤¤';
-$lang['defaultgroup']          = 'डिफॉलà¥à¤Ÿ गट';
-$lang['superuser']             = 'सà¥à¤ªà¤° सदसà¥à¤¯ - गट, सदसà¥à¤¯ किंवा सà¥à¤µà¤²à¥à¤ªà¤µà¤¿à¤°à¤¾à¤®à¤¾à¤¨à¥‡ अलग केलेली यादी ( उदा. सदसà¥à¤¯à¥§, गट१, सदसà¥à¤¯à¥¨ ) जà¥à¤¯à¤¾à¤‚ना ACL चà¥à¤¯à¤¾ सेटिंग वà¥à¤¯à¤¤à¤¿à¤°à¤¿à¤•à¥à¤¤ सरà¥à¤µ पानांवर पूरà¥à¤£ हकà¥à¤• असतो.';
-$lang['manager']               = 'वà¥à¤¯à¤µà¤¸à¥à¤¥à¤¾à¤ªà¤• - गट, सदसà¥à¤¯ किंवा सà¥à¤µà¤²à¥à¤ªà¤µà¤¿à¤°à¤¾à¤®à¤¾à¤¨à¥‡ अलग केलेली यादी ( उदा. सदसà¥à¤¯à¥§, गट१, सदसà¥à¤¯à¥¨ ) जà¥à¤¯à¤¾à¤‚ना वà¥à¤¯à¤µà¤¸à¥à¤¥à¤¾à¤ªà¤¨à¤¾à¤šà¥à¤¯à¤¾ निवडक सà¥à¤µà¤¿à¤§à¤¾ उपलबà¥à¤§ असतात.';
-$lang['profileconfirm']        = 'पà¥à¤°à¥‹à¤«à¤¾à¤‡à¤² मधील बदल पासवरà¥à¤¡ वापरून नकà¥à¤•ी करा';
-$lang['disableactions']        = 'डॉकà¥à¤¯à¥à¤µà¤¿à¤•ीचà¥à¤¯à¤¾ कà¥à¤°à¤¿à¤¯à¤¾ बंद ठेवा';
-$lang['disableactions_check']  = 'तपासा';
-$lang['disableactions_subscription'] = 'सबà¥à¤¸à¤•à¥à¤°à¤¾à¤ˆà¤¬ / अनà¥-सबà¥à¤¸à¤•à¥à¤°à¤¾à¤ˆà¤¬';
-$lang['disableactions_wikicode'] = 'सà¥à¤¤à¥à¤°à¥‹à¤¤ पहा / कचà¥à¤šà¥à¤¯à¤¾ सà¥à¤µà¤°à¥‚पात à¤à¤•à¥à¤¸à¤ªà¥‹à¤°à¥à¤Ÿ करा';
-$lang['disableactions_other']  = 'इतर कà¥à¤°à¤¿à¤¯à¤¾ ( सà¥à¤µà¤²à¥à¤ªà¤µà¤¿à¤°à¤¾à¤®à¤¾à¤¨à¥‡ अलग केलेलà¥à¤¯à¤¾ )';
-$lang['sneaky_index']          = 'सूची दृशà¥à¤¯à¤¾à¤®à¤§à¥‡ डिफॉलà¥à¤Ÿ सà¥à¤µà¤°à¥‚पात डॉकà¥à¤¯à¥à¤µà¤¿à¤•ी सगळे नेमसà¥à¤ªà¥‡à¤¸ दाखवते. हा परà¥à¤¯à¤¾à¤¯ चालू केलà¥à¤¯à¤¾à¤¸ सदसà¥à¤¯à¤¾à¤²à¤¾ वाचणà¥à¤¯à¤¾à¤šà¥€ परवानगी नसलेले नेमसà¥à¤ªà¥‡à¤¸ दिसणार नाहीत. यामà¥à¤³à¥‡ परवानगी असलेले उप - नेमसà¥à¤ªà¥‡à¤¸ न दिसणà¥à¤¯à¤¾à¤šà¥€ शकà¥à¤¯à¤¤à¤¾ आहे. यामà¥à¤³à¥‡ काही विशिषà¥à¤  ACL सेटिंगसाठी सूची वापरता येणà¥à¤¯à¤¾à¤¸à¤¾à¤°à¤–ी राहणार नाही.';
-$lang['auth_security_timeout'] = 'अधिकृत करणà¥à¤¯à¤¾à¤šà¥à¤¯à¤¾ पà¥à¤°à¤•à¥à¤°à¤¿à¤¯à¥‡à¤šà¥€ कालमरà¥à¤¯à¤¾à¤¦à¤¾';
-$lang['securecookie']          = 'HTTPS वापरून सेट केलेले कूकीज बà¥à¤°à¤¾à¤‰à¤œà¤°à¤¨à¥‡ HTTPS दà¥à¤µà¤¾à¤°à¤¾à¤š पाठवले पाहिजेत का? जर तà¥à¤®à¤šà¥à¤¯à¤¾ विकीचं फ़कà¥à¤¤ लॉगिन पानच SSL वापरून सà¥à¤°à¤•à¥à¤·à¤¿à¤¤ केलं असेल व पानांचं बà¥à¤°à¤¾à¤‰à¤œà¤¿à¤‚ग असà¥à¤°à¤•à¥à¤·à¤¿à¤¤ असेल तर हा परà¥à¤¯à¤¾à¤¯ चालू करू नका.';
-$lang['updatecheck']           = 'अपडेट आणि सà¥à¤°à¤•à¥à¤·à¤¿à¤¤à¤¤à¥‡à¤µà¤¿à¤¶à¤¯à¥€ सूचनानà¥à¤µà¤° पाळत ठेऊ का? या सà¥à¤µà¤¿à¤§à¥‡à¤¸à¤¾à¤ à¥€ डॉकà¥à¤¯à¥à¤µà¤¿à¤•ीला update.dokuwiki.org शी संपरà¥à¤• साधावा लागेल.';
-$lang['userewrite']            = 'छान छान URL वापर';
-$lang['useslash']              = 'URL  मधे नेमसà¥à¤ªà¥‡à¤¸ अलग करणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ \'/\' चिहà¥à¤¨ वापरा';
-$lang['usedraft']              = 'संपादन करताना मसà¥à¤¦à¤¾ आपोआप सà¥à¤°à¤•à¥à¤·à¤¿à¤¤ करा';
-$lang['sepchar']               = 'पानाचà¥à¤¯à¤¾ नावातील शबà¥à¤¦ अलग करणà¥à¤¯à¤¾à¤šà¥‡ चिहà¥à¤¨';
-$lang['canonical']             = 'पूरà¥à¤£à¤ªà¤£à¥‡ सà¥à¤Ÿà¤¸à¥à¤Ÿà¥€à¤¤ URL वापरा';
-$lang['autoplural']            = 'लिंकमधिल अनेकवचने तपासा';
-$lang['compression']           = 'अडगळीतलà¥à¤¯à¤¾ फाइल संकà¥à¤šà¤¿à¤¤ करणà¥à¤¯à¤¾à¤šà¥€ पदà¥à¤§à¤¤';
-$lang['cachetime']             = 'कॅशचे जासà¥à¤¤à¥€à¤¤à¤œà¤¾à¤¸à¥à¤¤ वयोमान ( सेकंदात )';
-$lang['locktime']              = 'लॉक फाइलचे जासà¥à¤¤à¥€à¤¤à¤œà¤¾à¤¸à¥à¤¤ वयोमान ( सेकंदात )';
-$lang['fetchsize']             = 'बाहà¥à¤¯ सà¥à¤¤à¥à¤°à¥‹à¤¤à¤¾à¤•डून जासà¥à¤¤à¥€à¤¤à¤œà¤¾à¤¸à¥à¤¤ किती डाउनलोड fecth.php  करू शकतो ( बाइटà¥à¤¸ मधे )';
-$lang['notify']                = 'बदलाचà¥à¤¯à¤¾ सूचना हà¥à¤¯à¤¾ ईमेल वर पाठवा';
-$lang['registernotify']        = 'नवीन नोंदणी केलेलà¥à¤¯à¤¾ सदसà¥à¤¯à¤¾à¤‚ची माहिती हà¥à¤¯à¤¾ ईमेल वर पाठवा';
-$lang['mailfrom']              = 'आपोआप ईमेल पाठवणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ वापरायचा ईमेल';
-$lang['gzip_output']           = 'xhtml साठी gzip Content-encoding  वापरा';
-$lang['gdlib']                 = 'gzip लायबà¥à¤°à¤°à¥€à¤šà¥€ आवृतà¥à¤¤à¥€';
-$lang['im_convert']            = 'ImageMagik चà¥à¤¯à¤¾ परिवरà¥à¤¤à¤¨ करणारà¥à¤¯à¤¾ टूलचा पाथ';
-$lang['jpg_quality']           = 'JPG संकà¥à¤šà¤¿à¤¤ करणà¥à¤¯à¤¾à¤šà¤¾ दरà¥à¤œà¤¾ ( १ - १०० )';
-$lang['subscribers']           = 'पानाची पà¥à¤°à¤µà¤£à¥€ देणà¥à¤¯à¤¾à¤šà¥€ सà¥à¤µà¤¿à¤§à¤¾ चालू करा';
-$lang['compress']              = 'CSS आणि जावासà¥à¤•à¥à¤°à¤¿à¤ªà¥à¤Ÿà¤šà¥‡ आउटà¥à¤ªà¥à¤Ÿ संकà¥à¤šà¤¿à¤¤ करा';
-$lang['hidepages']             = 'समान पाने लपवा';
-$lang['send404']               = 'असà¥à¤¤à¤¿à¤¤à¥à¤µà¤¾à¤¤ नसलेलà¥à¤¯à¤¾ पानांसाठी "HTTP 404/Page not found" संदेश पाठवा';
-$lang['sitemap']               = 'गूगल साईट-मॅप बनवा';
-$lang['broken_iua']            = 'ignore_user_abort फंकà¥à¤¶à¤¨ तà¥à¤®à¤šà¥à¤¯à¤¾ सिसà¥à¤Ÿà¤® वर चालत नाही का? यामà¥à¤³à¥‡ शोध सूची निकामी होऊ शकते. IIS + PHP/CGI वर हे काम करत नाही हे नकà¥à¤•ी à¤à¤¾à¤²à¥‡ आहे. अधिक माहितीसाठी <a href="http://bugs.splitbrain.org/?do=details&amp;task_id=852">बग ८५२</a> पहा.';
-$lang['xsendfile']             = 'सरà¥à¤µà¤° कडून सà¥à¤¥à¤¿à¤° फाइल पाठवली जाणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ X-Sendfile शीरà¥à¤·à¤• ( header ) वापरू का ? तà¥à¤®à¤šà¥à¤¯à¤¾ वेब सरà¥à¤µà¤° मधे ही सà¥à¤µà¤¿à¤§à¤¾ असली पाहिजे.';
-$lang['renderer_xhtml']        = 'मà¥à¤–à¥à¤¯ ( xhtml ) विकी आउटà¥à¤ªà¥à¤Ÿ साथी वापरायचा चितà¥à¤°à¤• ( renderer )';
-$lang['renderer__core']        = '%s (डॉकà¥à¤¯à¥à¤µà¤¿à¤•ीचा मूलभूत)';
-$lang['renderer__plugin']      = '%s (पà¥à¤²à¤—िन)';
-$lang['rememberme']            = 'कायमचà¥à¤¯à¤¾ लॉगिन कà¥à¤•ीजला परवानगी दया ( लकà¥à¤·à¤¾à¤¤ ठेवा )';
-$lang['rss_type']              = 'XML पà¥à¤°à¤µà¤£à¥€à¤šà¤¾ पà¥à¤°à¤•ार';
-$lang['rss_linkto']            = 'XML पà¥à¤°à¤µà¤£à¥€à¤šà¥€ लिंक येथे जाते';
-$lang['rss_content']           = 'XML पà¥à¤°à¤µà¤£à¥€à¤¤à¤²à¥à¤¯à¤¾ मà¥à¤¦à¥à¤¦à¥à¤¯à¤¾à¤®à¤§à¥‡ काय काय दाखवायचं?';
-$lang['rss_update']            = 'XML पà¥à¤°à¤µà¤£à¥€ अदà¥à¤¯à¤¯à¤¾à¤µà¤¤ करणà¥à¤¯à¤¾à¤šà¤¾ कालखंड ( सेकंदात )';
-$lang['recent_days']           = 'किती अलीकडील बदल ठेवायचे? ( दिवसात )';
-$lang['rss_show_summary']      = 'XML पà¥à¤°à¤¾à¤µà¤¾à¤¨à¥€à¤šà¥à¤¯à¤¾ शीरà¥à¤·à¤•ात सारांश दाखवा';
-$lang['target____wiki']        = 'अंतरà¥à¤—त लिंकसाठीची विंडो';
-$lang['target____interwiki']   = 'आंतरविकि लिंकसाठीची विंडो';
-$lang['target____extern']      = 'बाहà¥à¤¯ लिंकसाठीची विंडो';
-$lang['target____media']       = 'दृकà¥à¤¶à¥à¤°à¤¾à¤µà¥à¤¯ लिंकसाठीची विंडो';
-$lang['target____windows']     = 'विंडो लिंकसाठीची विंडो';
-$lang['proxy____host']         = 'छदà¥à¤® ( proxy ) सरà¥à¤µà¤°à¤šà¥‡ नाव';
-$lang['proxy____port']         = 'छदà¥à¤® ( proxy ) सरà¥à¤µà¤°à¤šà¥‡ पोरà¥à¤Ÿ';
-$lang['proxy____user']         = 'छदà¥à¤® ( proxy ) सरà¥à¤µà¤°à¤šà¥‡ सदसà¥à¤¯à¤¨à¤¾à¤®';
-$lang['proxy____pass']         = 'छदà¥à¤® ( proxy ) सरà¥à¤µà¤°à¤šà¤¾ पासवरà¥à¤¡';
-$lang['proxy____ssl']          = 'छदà¥à¤® सरà¥à¤µà¤°à¤²à¤¾ संपरà¥à¤• साधणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ SSL वापरा';
-$lang['safemodehack']          = 'सेफमोड़ हॅक चालू करा';
-$lang['ftp____host']           = 'सेफमोड़ हॅक साठी FTP सरà¥à¤µà¤°';
-$lang['ftp____port']           = 'सेफमोड़ हॅक साठी FTP पोरà¥à¤Ÿ';
-$lang['ftp____user']           = 'सेफमोड़ हॅक साठी FTP सदसà¥à¤¯à¤¨à¤¾à¤®';
-$lang['ftp____pass']           = 'सेफमोड़ हॅक साठी FTP पासवरà¥à¤¡';
-$lang['ftp____root']           = 'सेफमोड़ हॅक साठी FTP मूळ डिरेकà¥à¤Ÿà¤°à¥€';
-$lang['license_o_']            = 'काही निवडले नाही';
-$lang['typography_o_0']        = 'काही नाही';
-$lang['typography_o_1']        = 'फकà¥à¤¤ दà¥à¤¹à¥‡à¤°à¥€ अवतरण चिहà¥à¤¨';
-$lang['typography_o_2']        = 'सरà¥à¤µ पà¥à¤°à¤•ारची अवतरण चिनà¥à¤¹à¥‡ ( नेहेमी चालेलच असं नाही )';
-$lang['userewrite_o_0']        = 'कà¥à¤ à¥‡à¤¹à¥€ नाही';
-$lang['userewrite_o_1']        = '.htaccess';
-$lang['userewrite_o_2']        = 'डॉकà¥à¤¯à¥à¤µà¤¿à¤•ी अंतरà¥à¤—त';
-$lang['deaccent_o_0']          = 'बंद';
-$lang['deaccent_o_1']          = 'à¤à¤•à¥à¤¸à¥‡à¤‚ट काढून टाका';
-$lang['deaccent_o_2']          = 'रोमन लिपित बदला';
-$lang['gdlib_o_0']             = 'GD Lib  उपलबà¥à¤§ नाही';
-$lang['gdlib_o_1']             = 'आवृतà¥à¤¤à¥€ १.x';
-$lang['gdlib_o_2']             = 'आपोआप ओळखा';
-$lang['rss_type_o_rss']        = 'RSS 0.91';
-$lang['rss_type_o_rss1']       = 'RSS 1.0';
-$lang['rss_type_o_rss2']       = 'RSS 2.0';
-$lang['rss_type_o_atom']       = 'Atom 0.3';
-$lang['rss_type_o_atom1']      = 'Atom 1.0';
-$lang['rss_content_o_abstract'] = 'सारांश';
-$lang['rss_content_o_diff']    = 'à¤à¤•तà¥à¤°à¤¿à¤¤ फरक';
-$lang['rss_content_o_htmldiff'] = 'HTML पदà¥à¤§à¤¤à¥€à¤šà¤¾ फरकांचा तकà¥à¤¤à¤¾';
-$lang['rss_content_o_html']    = 'पानाचा पूरà¥à¤£ HTML मजकूर';
-$lang['rss_linkto_o_diff']     = 'फरक दृशà¥à¤¯';
-$lang['rss_linkto_o_page']     = 'उजळणी केलेले पान';
-$lang['rss_linkto_o_rev']      = 'आवृतà¥à¤¤à¥à¤¯à¤¾à¤‚ची यादी';
-$lang['rss_linkto_o_current']  = 'सदà¥à¤¯ पान';
-$lang['compression_o_0']       = 'काही नाही';
-$lang['compression_o_gz']      = 'gzip';
-$lang['compression_o_bz2']     = 'bz2';
-$lang['xsendfile_o_0']         = 'वापरू नका';
-$lang['xsendfile_o_1']         = 'lighttpd चा पà¥à¤°à¥‹à¤ªà¥à¤°à¤¾à¤¯à¤Ÿà¤°à¥€ शीरà¥à¤·à¤• (हेडर)';
-$lang['xsendfile_o_2']         = 'सà¥à¤Ÿà¥…णà¥à¤¡à¤°à¥à¤¡ X-sendfile शीरà¥à¤·à¤•';
-$lang['xsendfile_o_3']         = ' Nginx चा पà¥à¤°à¥‹à¤ªà¥à¤°à¤¾à¤¯à¤Ÿà¤°à¥€ Accel-Redirect शीरà¥à¤·à¤•';
-$lang['showuseras_o_loginname'] = 'लॉगिन  नाम';
-$lang['showuseras_o_username'] = 'सदसà¥à¤¯à¤¾à¤šà¥‡ पूरà¥à¤£ नाव';
-$lang['showuseras_o_email']    = 'सदसà¥à¤¯à¤¾à¤šà¤¾ ईमेल ( मेल सà¥à¤°à¤•à¥à¤·à¤¿à¤¤à¤¤à¥‡à¤šà¥à¤¯à¤¾ सेटिंग अनà¥à¤¸à¤¾à¤° दà¥à¤°à¥à¤¬à¥‹à¤§ केलेला ) ';
-$lang['showuseras_o_email_link'] = 'सदसà¥à¤¯à¤¾à¤šà¤¾ ईमेल maito: लिंक   सà¥à¤µà¤°à¥‚पात';
-$lang['useheading_o_0']        = 'कधीच नाही';
-$lang['useheading_o_navigation'] = 'फ़कà¥à¤¤ मारà¥à¤—दरà¥à¤¶à¤¨';
-$lang['useheading_o_content']  = 'फ़कà¥à¤¤ विकी मजकूर';
-$lang['useheading_o_1']        = 'नेहमी';
diff --git a/wiki/lib/plugins/config/lang/ne/lang.php b/wiki/lib/plugins/config/lang/ne/lang.php
deleted file mode 100644
index ffa7713..0000000
--- a/wiki/lib/plugins/config/lang/ne/lang.php
+++ /dev/null
@@ -1,68 +0,0 @@
-<?php
-/**
- * Nepali language file
- *
- * @author Saroj Kumar Dhakal <lotusnagarkot@gmail.com>
- * @author SarojKumar Dhakal <lotusnagarkot@yahoo.com>
- * @author Saroj Dhakal<lotusnagarkot@yahoo.com>
- */
-$lang['nochoice']              = '(अरॠविकलà¥à¤ªà¤¹à¤°à¥ अनà¥à¤ªà¤²à¤µà¥à¤§)';
-$lang['_configuration_manager'] = 'नियनà¥à¤¤à¥à¤°à¤£ वà¥à¤¯à¤µà¤¸à¥à¤¥à¤¾à¤ªà¤•';
-$lang['_header_dokuwiki']      = 'DokuWiki सेटिंङà¥à¤—';
-$lang['_header_plugin']        = 'पà¥à¤²à¤—इन सेटिंङà¥à¤—';
-$lang['_header_template']      = 'टेमà¥à¤ªà¥à¤²à¥‡à¤Ÿ सेटिंङà¥à¤—';
-$lang['_header_undefined']     = 'नखà¥à¤²à¥‡à¤•ो सेटिंङà¥à¤—';
-$lang['_basic']                = 'आधारभूत सेटिंङà¥à¤—';
-$lang['_display']              = 'पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨ सेटिंङà¥à¤—';
-$lang['_authentication']       = 'आधिकारिकता 	सेटिंङà¥à¤—';
-$lang['_anti_spam']            = 'सà¥à¤ªà¥à¤¯à¤¾à¤® विरà¥à¤¦à¥à¤§à¤•ो सेटिंङà¥à¤—';
-$lang['_editing']              = 'समà¥à¤ªà¤¾à¤¦à¤¨ सेटिंङà¥à¤—';
-$lang['_links']                = 'लिङà¥à¤• सेटिंङà¥à¤—';
-$lang['_media']                = 'मिडिया सेटिंङà¥à¤—';
-$lang['_advanced']             = 'विशिषà¥à¤  सेटिंङà¥à¤—';
-$lang['_network']              = 'सञà¥à¤œà¤¾à¤² सेटिंङà¥à¤—';
-$lang['_msg_setting_undefined'] = 'सेटिंङà¥à¤— मेटाडाटा नभà¤à¤•ो';
-$lang['_msg_setting_no_class'] = 'सेटिंङà¥à¤— वरà¥à¤— नभà¤à¤•ो';
-$lang['_msg_setting_no_default'] = 'कà¥à¤¨à¥ˆ पूरà¥à¤µ निरà¥à¤§à¤¾à¤°à¤¿à¤¤ मान छैन ।';
-$lang['fmode']                 = 'फाइल निरà¥à¤®à¤¾à¤£ सà¥à¤¥à¤¿à¤¤à¤¿';
-$lang['dmode']                 = 'डाइरेकà¥à¤Ÿà¤°à¥€ निरà¥à¤®à¤¾à¤£ सà¥à¤¥à¤¿à¤¤à¤¿';
-$lang['lang']                  = 'भाषा';
-$lang['basedir']               = 'आधार डाइरेकà¥à¤Ÿà¤°à¥€';
-$lang['baseurl']               = 'आधार URL';
-$lang['savedir']               = 'सामगà¥à¤°à¥€ वचत गरà¥à¤¨à¥‡ डाइरेकà¥à¤Ÿà¤°à¥€';
-$lang['start']                 = 'पृषà¥à¤Ÿ नाम सà¥à¤°à¥à¤—रà¥à¤¨à¥à¤¹à¥‹à¤¸à¥';
-$lang['title']                 = 'विकि शिरà¥à¤·à¤•';
-$lang['template']              = 'ढाà¤à¤šà¤¾';
-$lang['license']               = 'कà¥à¤¨ पà¥à¤°à¤®à¤¾à¤£ पतà¥à¤°à¤•ो आधारमा सामगà¥à¤°à¥€ पà¥à¤°à¤•ाशन गरिनॠपरà¥à¤› ?';
-$lang['fullpath']              = 'पषà¥à¤ à¤•ो पूरा बाटो निमà¥à¤¨à¤¶à¤¿à¤°à¥à¤·à¤•मा देखाउने';
-$lang['recent']                = 'हालैको परिवरà¥à¤¤à¤¨';
-$lang['htmlok']                = 'इमà¥à¤¬à¥‡à¤¡à¤—रिà¤à¤•ो HTML खà¥à¤²à¤¾ गरà¥à¤¨à¥à¤¹à¥‹à¤¸ ।';
-$lang['phpok']                 = 'इमà¥à¤¬à¥‡à¤¡à¤—रिà¤à¤•ो PHP खà¥à¤²à¤¾ गरà¥à¤¨à¥à¤¹à¥‹à¤¸ ।';
-$lang['signature']             = 'दसà¥à¤¤à¤–त';
-$lang['renderer__core']        = '	%s (dokuwiki core)';
-$lang['renderer__plugin']      = '	%s (plugin)';
-$lang['rss_type']              = 'XML फिड पà¥à¤°à¤•ार';
-$lang['rss_linkto']            = 'को XML फिड';
-$lang['gdlib_o_1']             = 'संसà¥à¤•रण १.x';
-$lang['gdlib_o_2']             = 'आफै पतà¥à¤¤à¤¾à¤²à¤—ाउनॠहोसॠ';
-$lang['rss_type_o_rss']        = 'आरसस ०॒.९१';
-$lang['rss_type_o_rss1']       = 'आरसस १.०';
-$lang['rss_type_o_rss2']       = 'आरसस २.०';
-$lang['rss_type_o_atom']       = 'à¤à¤Ÿà¤® ०.३';
-$lang['rss_type_o_atom1']      = 'à¤à¤Ÿà¤® १.०';
-$lang['rss_content_o_abstract'] = 'सारांस';
-$lang['rss_content_o_diff']    = 'à¤à¤•िकृत फरक';
-$lang['rss_content_o_htmldiff'] = 'HTML ढाà¤à¤šà¤¾à¤•ो फरक सà¥à¤šà¥€';
-$lang['rss_content_o_html']    = 'पूरा HTML पृषà¥à¤Ÿà¤®à¤¾ रहेको वसà¥à¤¤à¥';
-$lang['rss_linkto_o_diff']     = 'फरक अवलोकन';
-$lang['rss_linkto_o_rev']      = 'पà¥à¤¨:संसà¥à¤•रण सà¥à¤šà¥€';
-$lang['rss_linkto_o_current']  = 'चालॠपृषà¥à¤ ';
-$lang['compression_o_0']       = 'कà¥à¤¨à¥ˆ पनि होइन ';
-$lang['compression_o_gz']      = 'gzip';
-$lang['compression_o_bz2']     = 'bz2';
-$lang['xsendfile_o_0']         = 'पà¥à¤°à¤¯à¥‹à¤— नगरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥';
-$lang['showuseras_o_loginname'] = 'पà¥à¤°à¤µà¥‡à¤¶ नाम';
-$lang['showuseras_o_username'] = 'पà¥à¤°à¤¯à¥‹à¤—करà¥à¤¤à¤¾à¤•ो पूरा नाम';
-$lang['useheading_o_0']        = 'कहिले पनि ';
-$lang['useheading_o_content']  = 'विकी विषयवसà¥à¤¤à¥ मातà¥à¤°';
-$lang['useheading_o_1']        = 'सधैà¤';
diff --git a/wiki/lib/plugins/config/lang/nl/intro.txt b/wiki/lib/plugins/config/lang/nl/intro.txt
deleted file mode 100644
index 4d72b69..0000000
--- a/wiki/lib/plugins/config/lang/nl/intro.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-====== Configuratie Manager ======
-
-Gebruik deze pagina om de instellingen van je DokuWiki te bekijken en/of te wijzigen. Voor hulp over specifieke instellingen kun je kijken op  [[doku>config]]. Voor meer informatie over deze plugin zie [[doku>plugin:config]].
-
-Instellingen met een rode achtergond kunnen niet worden gewijzigd met deze plugin. Instellingen met een blauwe achtergrond hebben de default waarde, en instellingen met een witte achtergrond zijn lokaal gewijzigd voor deze specifieke installatie. Zowel blauwe als witte instellingen kunnen worden gewijzigd.
-
-Vergeet niet op **Opslaan** te drukken alvorens de pagina te verlaten, anders gaan je wijzigingen verloren.
diff --git a/wiki/lib/plugins/config/lang/nl/lang.php b/wiki/lib/plugins/config/lang/nl/lang.php
deleted file mode 100644
index 8fdd76c..0000000
--- a/wiki/lib/plugins/config/lang/nl/lang.php
+++ /dev/null
@@ -1,219 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Harriet Neitz <harrietneitz@gmail.com>
- * @author mark prins <mprins@users.sf.net>
- * @author Pieter van der Meulen <pieter@vdmeulen.net>
- * @author Wouter Schoot <wouter@schoot.org>
- * @author John de Graaff <john@de-graaff.net>
- * @author Niels Schoot <niels.schoot@quintiq.com>
- * @author Dion Nicolaas <dion@nicolaas.net>
- * @author Danny Rotsaert <danny.rotsaert@edpnet.be>
- * @author Marijn Hofstra <hofstra.m@gmail.com>
- * @author Timon Van Overveldt <timonvo@gmail.com>
- * @author Ricardo Guijt <ricardoguijt@gmail.com>
- * @author Gerrit <klapinklapin@gmail.com>
- * @author Hugo Smet <hugo.smet@scarlet.be>
- */
-$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.';
-$lang['updated']               = 'Instellingen met succes opgeslagen.';
-$lang['nochoice']              = '(geen andere keuzemogelijkheden)';
-$lang['locked']                = 'Het bestand met instellingen kan niet worden gewijzigd. Als dit niet de bedoeling <br /> is, controleer dan de naam en de permissies voor het lokale installingenbestand.';
-$lang['danger']                = 'Gevaar: Het wijzigen van deze optie kan er voor zorgen dat uw wiki en het configuratiemenu niet langer toegankelijk zijn.';
-$lang['warning']               = 'Waarschuwing: Het wijzigen van deze optie kan onverwachte gedragingen veroorzaken.';
-$lang['security']              = 'Beveiligingswaarschuwing: Het wijzigen van deze optie kan een beveiligingsrisico inhouden.';
-$lang['_configuration_manager'] = 'Configuratiemanager';
-$lang['_header_dokuwiki']      = 'DokuWiki-instellingen';
-$lang['_header_plugin']        = 'Plugin-instellingen';
-$lang['_header_template']      = 'Template-instellingen';
-$lang['_header_undefined']     = 'Ongedefinieerde instellingen';
-$lang['_basic']                = 'Basisinstellingen';
-$lang['_display']              = 'Beeldinstellingen';
-$lang['_authentication']       = 'Authenticatie-instellingen';
-$lang['_anti_spam']            = 'Anti-spaminstellingen';
-$lang['_editing']              = 'Pagina-wijzigingsinstellingen';
-$lang['_links']                = 'Link-instellingen';
-$lang['_media']                = 'Media-instellingen';
-$lang['_notifications']        = 'Meldingsinstellingen';
-$lang['_syndication']          = 'Syndication-instellingen';
-$lang['_advanced']             = 'Geavanceerde instellingen';
-$lang['_network']              = 'Netwerkinstellingen';
-$lang['_msg_setting_undefined'] = 'Geen metadata voor deze instelling.';
-$lang['_msg_setting_no_class'] = 'Geen class voor deze instelling.';
-$lang['_msg_setting_no_default'] = 'Geen standaard waarde.';
-$lang['title']                 = 'Titel van de wiki';
-$lang['start']                 = 'Naam startpagina';
-$lang['lang']                  = 'Taal';
-$lang['template']              = 'Template ofwel het design van de wiki.';
-$lang['tagline']               = 'Ondertitel (als het template dat ondersteunt)';
-$lang['sidebar']               = 'Zijbalk-paginanaam (als het template dat ondersteunt), leeg veld betekent geen zijbalk';
-$lang['license']               = 'Onder welke licentie zou je tekst moeten worden gepubliceerd?';
-$lang['savedir']               = 'Directory om data op te slaan';
-$lang['basedir']               = 'Basisdirectory';
-$lang['baseurl']               = 'Basis-URL';
-$lang['cookiedir']             = 'Cookie pad. Laat leeg om de basis URL te gebruiken.';
-$lang['dmode']                 = 'Directory-aanmaak-modus (directory creation mode)';
-$lang['fmode']                 = 'Bestandaanmaak-modus (file creation mode)';
-$lang['allowdebug']            = 'Debug toestaan <b>uitzetten indien niet noodzakelijk!</b>';
-$lang['recent']                = 'Het aantal regels in Recente wijzigingen';
-$lang['recent_days']           = 'Hoeveel recente wijzigingen bewaren (dagen)';
-$lang['breadcrumbs']           = 'Aantal broodkruimels. Zet dit op 0 om uit te schakelen.';
-$lang['youarehere']            = 'Gebruik hiërarchische broodkruimels (waarschijnlijk wil je dan de optie hierboven uitschakelen)';
-$lang['fullpath']              = 'Volledig pad van pagina\'s in de footer weergeven';
-$lang['typography']            = 'Breng typografische wijzigingen aan';
-$lang['dformat']               = 'Datum formaat (zie de PHP <a href="http://php.net/strftime">strftime</a> functie)';
-$lang['signature']             = 'Tekst die ingevoegd wordt met de Handtekening-knop in het bewerkvenster.';
-$lang['showuseras']            = 'Hoe de gebruiker die de pagina het laatst wijzigde weergeven';
-$lang['toptoclevel']           = 'Bovenste niveau voor inhoudsopgave';
-$lang['tocminheads']           = 'Minimum aantal koppen dat bepaald of een index gemaakt wordt';
-$lang['maxtoclevel']           = 'Laagste niveau voor inhoudsopgave';
-$lang['maxseclevel']           = 'Laagste sectiewijzigingsniveau';
-$lang['camelcase']             = 'CamelCase gebruiken voor links';
-$lang['deaccent']              = 'Paginanamen ontdoen van vreemde tekens';
-$lang['useheading']            = 'Eerste kopje voor paginanaam gebruiken';
-$lang['sneaky_index']          = 'Met de standaardinstellingen zal DokuWiki alle namespaces laten zien in de index. Het inschakelen van deze optie zorgt ervoor dat de namespaces waar de gebruiker geen leestoegang tot heeft, verborgen worden. Dit kan resulteren in het verbergen van subnamespaces waar de gebruiker wel toegang to heeft. Dit kan de index onbruikbaar maken met bepaalde ACL-instellingen.';
-$lang['hidepages']             = 'Verberg deze pagina\'s in zoekresultaten, de index en andere automatische indexen (regular expressions)';
-$lang['useacl']                = 'Gebruik access control lists';
-$lang['autopasswd']            = 'Zelf wachtwoorden genereren';
-$lang['authtype']              = 'Authenticatiemechanisme';
-$lang['passcrypt']             = 'Encryptie-methode voor wachtwoord ';
-$lang['defaultgroup']          = 'Standaardgroep, alle nieuwe gebruikers worden hierin geplaatst';
-$lang['superuser']             = 'Superuser - een groep of gebruiker of kommalijst (gebruiker1,@groep1,gebruiker2) met volledige toegang tot alle pagina\'s en functies, ongeacht de ACL instellingen';
-$lang['manager']               = 'Beheerder - een groep of gebruiker of kommalijst (gebruiker1,@groep1,gebruiker2) met toegang tot bepaalde beheersfunctionaliteit';
-$lang['profileconfirm']        = 'Bevestig profielwijzigingen met wachtwoord';
-$lang['rememberme']            = 'Permanente login cookie toestaan (onthoud mij)';
-$lang['disableactions']        = 'Aangevinkte DokuWiki-akties uitschakelen';
-$lang['disableactions_check']  = 'Controleer';
-$lang['disableactions_subscription'] = 'Inschrijven/opzeggen';
-$lang['disableactions_wikicode'] = 'Bron bekijken/exporteer rauw';
-$lang['disableactions_profile_delete'] = 'Schrap eigen account';
-$lang['disableactions_other']  = 'Andere akties (gescheiden door komma\'s)';
-$lang['disableactions_rss']    = 'XML Syndication (RSS)';
-$lang['auth_security_timeout'] = 'Authenticatiebeveiligings-timeout (seconden)';
-$lang['securecookie']          = 'Moeten cookies die via HTTPS gezet zijn alleen via HTTPS verzonden worden door de browser? Zet deze optie uit als alleen het inloggen op de wiki beveiligd is, maar het gebruik verder niet.';
-$lang['remote']                = 'Activeer het remote API-systeem. Hiermee kunnen andere applicaties de wiki benaderen via XML-RPC of andere mechanismen.';
-$lang['remoteuser']            = 'Beperk toegang tot de remote API tot deze komma-lijst van groepen of gebruikers. Leeg betekent toegang voor iedereen.';
-$lang['usewordblock']          = 'Blokkeer spam op basis van woordenlijst';
-$lang['relnofollow']           = 'Gebruik rel="nofollow" voor externe links';
-$lang['indexdelay']            = 'Uitstel voor indexeren (sec)';
-$lang['mailguard']             = 'E-mailadressen onherkenbaar maken';
-$lang['iexssprotect']          = 'Controleer geüploade bestanden op mogelijk schadelijke JavaScript of HTML code';
-$lang['usedraft']              = 'Sla automatisch een concept op tijdens het wijzigen';
-$lang['htmlok']                = 'Embedded HTML toestaan';
-$lang['phpok']                 = 'Embedded PHP toestaan';
-$lang['locktime']              = 'Maximum leeftijd voor lockbestanden (sec)';
-$lang['cachetime']             = 'Maximum leeftijd voor cache (sec)';
-$lang['target____wiki']        = 'Doelvenster voor interne links';
-$lang['target____interwiki']   = 'Doelvenster voor interwiki-links';
-$lang['target____extern']      = 'Doelvenster voor externe links';
-$lang['target____media']       = 'Doelvenster voor medialinks';
-$lang['target____windows']     = 'Doelvenster voor windows links';
-$lang['mediarevisions']        = 'Mediarevisies activeren?';
-$lang['refcheck']              = 'Controleer of er verwijzingen bestaan naar een mediabestand voor het wijderen';
-$lang['gdlib']                 = 'Versie GD Lib ';
-$lang['im_convert']            = 'Path naar ImageMagick\'s convert tool';
-$lang['jpg_quality']           = 'JPG compressiekwaliteit (0-100)';
-$lang['fetchsize']             = 'Maximum grootte (bytes) die fetch.php mag downloaden van externe URLs, bijv. voor cachen of herschalen van externe afbeeldingen.';
-$lang['subscribers']           = 'Ondersteuning pagina-inschrijving aanzetten';
-$lang['subscribe_time']        = 'Inschrijvingsmeldingen en samenvattingen worden na deze tijdsduur (in seconden) verzonden. Deze waarde dient kleiner te zijn dan de tijd ingevuld bij "Hoeveel recente wijzigingen bewaren (dagen)"';
-$lang['notify']                = 'Stuur altijd e-mailnotificaties naar dit adres';
-$lang['registernotify']        = 'Stuur altijd informatie over nieuw geregistreerde gebruikers naar dit e-mailadres';
-$lang['mailfrom']              = 'E-mailadres van afzender voor automatische e-mail';
-$lang['mailreturnpath']        = 'Email adres voor de ontvanger van meldingen van niet-afleverbare berichten';
-$lang['mailprefix']            = 'Te gebruiken voorvoegsel voor onderwerp automatische email. Leeglaten gebruik de wikititel.';
-$lang['htmlmail']              = 'Zend multipart HTML e-mail. Dit ziet er beter uit, maar is groter. Uitschakelen betekent e-mail in platte tekst.';
-$lang['sitemap']               = 'Genereer Google sitemap (dagen). 0 betekent uitschakelen.';
-$lang['rss_type']              = 'XML feed type';
-$lang['rss_linkto']            = 'XML feed linkt naar';
-$lang['rss_content']           = 'Wat moet er in de XML feed items weergegeven worden?';
-$lang['rss_update']            = 'XML feed verversingsinterval (sec)';
-$lang['rss_show_summary']      = 'XML feed samenvatting in titel weergeven';
-$lang['rss_media']             = 'Welk type verandering moet in de XML feed worden weergegeven?';
-$lang['rss_media_o_both']      = 'beide';
-$lang['rss_media_o_pages']     = 'pagina\'s';
-$lang['rss_media_o_media']     = 'media';
-$lang['updatecheck']           = 'Controleer op nieuwe versies en beveiligingswaarschuwingen? DokuWiki moet hiervoor contact opnemen met update.dokuwiki.org.';
-$lang['userewrite']            = 'Gebruik nette URL\'s';
-$lang['useslash']              = 'Gebruik slash (/) als scheiding tussen namepaces in URL\'s';
-$lang['sepchar']               = 'Woordscheider in paginanamen';
-$lang['canonical']             = 'Herleid URL\'s tot hun basisvorm';
-$lang['fnencode']              = 'Methode om niet-ASCII bestandsnamen te coderen.';
-$lang['autoplural']            = 'Controleer op meervoudsvormen in links';
-$lang['compression']           = 'Compressiemethode voor attic-bestanden';
-$lang['gzip_output']           = 'Gebruik gzip Content-Encoding voor xhtml';
-$lang['compress']              = 'Compacte CSS en javascript output';
-$lang['cssdatauri']            = 'Maximale omvang in bytes van in CSS gelinkte afbeeldingen die bij de stylesheet moeten worden ingesloten ter reductie van de HTTP request header overhead. <code>400</code> tot <code>600</code> is een geschikte omvang. Stel de omvang in op <code>0</code> om deze functionaliteit uit te schakelen.';
-$lang['send404']               = 'Stuur "HTTP 404/Page Not Found" voor niet-bestaande pagina\'s';
-$lang['broken_iua']            = 'Is de ignore_user_abort functie onbruikbaar op uw systeem? Dit kan een onbruikbare zoekindex tot gevolg hebben. IIS+PHP/CGI staat hier bekend om. Zie <a href="http://bugs.dokuwiki.org/?do=details&amp;task_id=852">Bug 852</a> voor meer informatie.';
-$lang['xsendfile']             = 'Gebruik de X-Sendfile header om de webserver statische content te laten versturen? De webserver moet dit wel ondersteunen.';
-$lang['renderer_xhtml']        = 'Weergavesysteem voor de standaard (xhtml) wiki-uitvoer';
-$lang['renderer__core']        = '%s (dokuwiki core)';
-$lang['renderer__plugin']      = '%s (plugin)';
-$lang['search_nslimit']        = 'Beperk het zoeken tot de huidige X namespaces. Wanneer het zoeken wordt uitgevoerd vanaf een pagina binnen een diepere namespace, worden de eerste X aantal namespaces toegevoegd als filter';
-$lang['search_fragment_o_exact'] = 'exact';
-$lang['search_fragment_o_starts_with'] = 'begint met';
-$lang['search_fragment_o_ends_with'] = 'eindigt op';
-$lang['search_fragment_o_contains'] = 'bevat';
-$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';
-$lang['proxy____pass']         = 'Proxy wachtwoord';
-$lang['proxy____ssl']          = 'Gebruik SSL om een verbinding te maken met de proxy';
-$lang['proxy____except']       = 'Reguliere expressie om URL\'s te bepalen waarvoor de proxy overgeslagen moet worden.';
-$lang['safemodehack']          = 'Safemode hack aanzetten';
-$lang['ftp____host']           = 'FTP server voor safemode hack';
-$lang['ftp____port']           = 'FTP port voor safemode hack';
-$lang['ftp____user']           = 'FTP gebruikersnaam voor safemode hack';
-$lang['ftp____pass']           = 'FTP wachtwoord voor safemode hack';
-$lang['ftp____root']           = 'FTP root directory voor safemode hack';
-$lang['license_o_']            = 'Geen gekozen';
-$lang['typography_o_0']        = 'geen';
-$lang['typography_o_1']        = 'Alleen dubbele aanhalingstekens';
-$lang['typography_o_2']        = 'Alle aanhalingstekens (functioneert mogelijk niet altijd)';
-$lang['userewrite_o_0']        = 'geen';
-$lang['userewrite_o_1']        = '.htaccess';
-$lang['userewrite_o_2']        = 'DokuWiki intern';
-$lang['deaccent_o_0']          = 'uit';
-$lang['deaccent_o_1']          = 'accenten verwijderen';
-$lang['deaccent_o_2']          = 'romaniseer';
-$lang['gdlib_o_0']             = 'GD Lib niet beschikbaar';
-$lang['gdlib_o_1']             = 'Version 1.x';
-$lang['gdlib_o_2']             = 'Autodetectie';
-$lang['rss_type_o_rss']        = 'RSS 0.91';
-$lang['rss_type_o_rss1']       = 'RSS 1.0';
-$lang['rss_type_o_rss2']       = 'RSS 2.0';
-$lang['rss_type_o_atom']       = 'Atom 0.3';
-$lang['rss_type_o_atom1']      = 'Atom 1.0';
-$lang['rss_content_o_abstract'] = 'Abstract';
-$lang['rss_content_o_diff']    = 'Unified Diff';
-$lang['rss_content_o_htmldiff'] = 'Diff-tabel in HTML';
-$lang['rss_content_o_html']    = 'Volledige pagina-inhoud in HTML';
-$lang['rss_linkto_o_diff']     = 'verschillen';
-$lang['rss_linkto_o_page']     = 'de gewijzigde pagina';
-$lang['rss_linkto_o_rev']      = 'lijst van revisies';
-$lang['rss_linkto_o_current']  = 'de huidige pagina';
-$lang['compression_o_0']       = 'geen';
-$lang['compression_o_gz']      = 'gzip';
-$lang['compression_o_bz2']     = 'bz2';
-$lang['xsendfile_o_0']         = 'niet gebruiken';
-$lang['xsendfile_o_1']         = 'Merkgebonden lighttpd header (voor release 1.5)';
-$lang['xsendfile_o_2']         = 'Standaard X-Sendfile header';
-$lang['xsendfile_o_3']         = 'Merkgebonden Nginx X-Accel-Redirect header';
-$lang['showuseras_o_loginname'] = 'Loginnaam';
-$lang['showuseras_o_username'] = 'Volledige naam';
-$lang['showuseras_o_username_link'] = 'Gebruikers volledige naam als interwiki gebruikers link';
-$lang['showuseras_o_email']    = 'E-mailadres (onherkenbaar gemaakt volgens mailguard-instelling)';
-$lang['showuseras_o_email_link'] = 'E-mailadres als mailto: link';
-$lang['useheading_o_0']        = 'Nooit';
-$lang['useheading_o_navigation'] = 'Alleen navigatie';
-$lang['useheading_o_content']  = 'Alleen wiki inhoud';
-$lang['useheading_o_1']        = 'Altijd';
-$lang['readdircache']          = 'Maximale leeftijd voor readdir cache (in seconden)';
diff --git a/wiki/lib/plugins/config/lang/no/intro.txt b/wiki/lib/plugins/config/lang/no/intro.txt
deleted file mode 100644
index 5684a90..0000000
--- a/wiki/lib/plugins/config/lang/no/intro.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-====== Konfigurasjonsinnstillinger ======
-
-Bruk denne siden for å kontrollere innstillingene for din DokuWiki. For hjelp om hver enkelt innstilling, se [[doku>config]]. For mer detaljer om denne innstillingssiden, se [[doku>plugin:config]].
-
-Innstillinger vist med lys rød bakgrunn er beskyttet og kan ikke endres på denne siden. Innstillinger vist med blå bakgrunn er standardverdier og innstillinger med hvit bakgrunn har blitt satt lokalt for denne installasjonen. Både blå og hvite innstillinger kan endres.
-
-Husk å trykke på **Lagre**-knappen før du forlater siden. Hvis ikke går dine endringer tapt.
diff --git a/wiki/lib/plugins/config/lang/no/lang.php b/wiki/lib/plugins/config/lang/no/lang.php
deleted file mode 100644
index ae61280..0000000
--- a/wiki/lib/plugins/config/lang/no/lang.php
+++ /dev/null
@@ -1,214 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Thomas Nygreen <nygreen@gmail.com>
- * @author Arild Burud <arildb@met.no>
- * @author Torkill Bruland <torkar-b@online.no>
- * @author Rune M. Andersen <rune.andersen@gmail.com>
- * @author Jakob Vad Nielsen (me@jakobnielsen.net)
- * @author Kjell Tore Næsgaard <kjell.t.nasgaard@ntnu.no>
- * @author Knut Staring <knutst@gmail.com>
- * @author Lisa Ditlefsen <lisa@vervesearch.com>
- * @author Erik Pedersen <erik.pedersen@shaw.ca>
- * @author Erik Bjørn Pedersen <erik.pedersen@shaw.ca>
- * @author Rune Rasmussen syntaxerror.no@gmail.com
- * @author Jon Bøe <jonmagneboe@hotmail.com>
- * @author Egil Hansen <egil@rosetta.no>
- * @author Arne Hanssen <arne.hanssen@getmail.no>
- * @author Arne Hanssen <arnehans@getmail.no>
- * @author Patrick Sletvold <patricksletvold@hotmail.com>
- */
-$lang['menu']                  = 'Konfigurasjonsinnstillinger';
-$lang['error']                 = 'Innstillingene ble ikke oppdatert på grunn av en eller flere ugyldig verdier. Vennligst se gjennom endringene og prøv på nytt.
-<br />Ugyldige verdi(er) vil vises i rød ramme.';
-$lang['updated']               = 'Innstillingene ble oppdatert.';
-$lang['nochoice']              = '(ingen andre mulige valg)';
-$lang['locked']                = 'Innstillingene kan ikke oppdateres. Hvis dette ikke er meningen,<br />
-forsikre deg om at fila med de lokale innstillingene har korrekt filnavn<br/>
-og tillatelser.';
-$lang['danger']                = 'Advarsel: Endring av dette valget kan føre til at wiki og konfigurasjonsmenyen ikke blir tilgjengelig.';
-$lang['warning']               = 'Advarsel: Endring av dette valget kan føre til utilsiktet atferd.
-
-';
-$lang['security']              = 'Sikkerhetsadvarsel: Endring av dette valget kan innebære en sikkerhetsrisiko.';
-$lang['_configuration_manager'] = 'Konfigurasjonsinnstillinger';
-$lang['_header_dokuwiki']      = 'Innstillinger for DokuWiki';
-$lang['_header_plugin']        = 'Innstillinger for programtillegg';
-$lang['_header_template']      = 'Innstillinger for maler';
-$lang['_header_undefined']     = 'Udefinerte innstillinger';
-$lang['_basic']                = 'Grunnleggende innstillinger';
-$lang['_display']              = 'Innstillinger for visning av sider';
-$lang['_authentication']       = 'Innstillinger for autentisering';
-$lang['_anti_spam']            = 'Anti-Spam innstillinger';
-$lang['_editing']              = 'Innstillinger for redigering';
-$lang['_links']                = 'Innstillinger for lenker';
-$lang['_media']                = 'Innstillinger for mediafiler';
-$lang['_notifications']        = 'Melding';
-$lang['_syndication']          = 'Informasjonsstrøm (RSS)';
-$lang['_advanced']             = 'Avanserte innstillinger';
-$lang['_network']              = 'Nettverksinnstillinger';
-$lang['_msg_setting_undefined'] = 'Ingen innstillingsmetadata';
-$lang['_msg_setting_no_class'] = 'Ingen innstillingsklasse';
-$lang['_msg_setting_no_default'] = 'Ingen standard verdi';
-$lang['title']                 = 'Navn på Wikien';
-$lang['start']                 = 'Sidenavn på forsiden';
-$lang['lang']                  = 'Språk';
-$lang['template']              = 'Mal';
-$lang['tagline']               = 'Slagord (dersom malen støtter dette)';
-$lang['sidebar']               = 'Sidestolpens navn (dersom malen støtter dette), la stå tomt for å slå av sidestolpen';
-$lang['license']               = 'Under hvilken lisens skal ditt innhold utgis?';
-$lang['savedir']               = 'Mappe for lagring av data';
-$lang['basedir']               = 'Sti til hovekatalog (eks. <code>/dokuwiki/</code>). La stå blank for automatisk deteksjon.';
-$lang['baseurl']               = 'Nettadresse til server (eks. <code>http://www.yourserver.com</code>).  La stå blank for automatisk deteksjon.';
-$lang['cookiedir']             = 'Sti for informasjonskapsler. La stå blankt for å bruke nettadresse til server.';
-$lang['dmode']                 = 'Rettigheter for nye mapper';
-$lang['fmode']                 = 'Rettigheter for nye filer';
-$lang['allowdebug']            = 'Tillat feilsøking <b>skru av om det ikke behøves!</b>';
-$lang['recent']                = 'Siste endringer';
-$lang['recent_days']           = 'Hvor lenge skal nylige endringer beholdes (dager)';
-$lang['breadcrumbs']           = 'Antall nylig besøkte sider som vises';
-$lang['youarehere']            = 'Vis hvor i hvilke(t) navnerom siden er';
-$lang['fullpath']              = 'Vis full sti til sider i bunnteksten';
-$lang['typography']            = 'Gjør typografiske erstatninger';
-$lang['dformat']               = 'Datoformat (se <a href="http://php.net/strftime">PHPs datofunksjon</a>)';
-$lang['signature']             = 'Signatur';
-$lang['showuseras']            = 'Hva som skal med når man viser brukeren som sist redigerte en side.';
-$lang['toptoclevel']           = 'Toppnivå for innholdsfortegnelse';
-$lang['tocminheads']           = 'Minimum antall overskrifter som bestemmer om innholdsbetegnelse skal bygges.';
-$lang['maxtoclevel']           = 'Maksimalt antall nivåer i innholdsfortegnelse';
-$lang['maxseclevel']           = 'Maksimalt nivå for redigering av seksjon';
-$lang['camelcase']             = 'Gjør KamelKasse til lenke automatisk';
-$lang['deaccent']              = 'Rensk sidenavn';
-$lang['useheading']            = 'Bruk første overskrift som tittel';
-$lang['sneaky_index']          = 'DokuWiki vil som standard vise alle navnerom i innholdsfortegnelsen. Hvis du skrur på dette alternativet vil brukere bare se de navnerommene der de har lesetilgang. Dette kan føre til at tilgjengelige undernavnerom skjules. Det kan gjøre innholdsfortegnelsen ubrukelig med enkelte ACL-oppsett.';
-$lang['hidepages']             = 'Skjul sider fra automatiske lister (regulære uttrykk)';
-$lang['useacl']                = 'Bruk lister for adgangskontroll (ACL)';
-$lang['autopasswd']            = 'Generer passord automatisk';
-$lang['authtype']              = 'Autentiseringsmetode';
-$lang['passcrypt']             = 'Metode for kryptering av passord';
-$lang['defaultgroup']          = 'Standardgruppe';
-$lang['superuser']             = 'Superbruker - en gruppe, bruker eller liste (kommaseparert) med full tilgang til alle sider og funksjoner uavhengig av ACL-innstillingene';
-$lang['manager']               = 'Administrator - en gruppe, bruker eller liste (kommaseparert) med tilgang til visse administratorfunksjoner';
-$lang['profileconfirm']        = 'Bekreft profilendringer med passord';
-$lang['rememberme']            = 'Tillat permanente informasjonskapsler for innlogging (husk meg)';
-$lang['disableactions']        = 'Skru av følgende DokuWiki-kommandoer';
-$lang['disableactions_check']  = 'Sjekk';
-$lang['disableactions_subscription'] = 'Meld på/av';
-$lang['disableactions_wikicode'] = 'Vis kildekode/eksporter rådata';
-$lang['disableactions_profile_delete'] = 'Slett egen konto';
-$lang['disableactions_other']  = 'Andre kommandoer (kommaseparert)';
-$lang['disableactions_rss']    = 'XML-informasjonsstrøm (RSS)';
-$lang['auth_security_timeout'] = 'Autentisering utløper etter (sekunder)';
-$lang['securecookie']          = 'Skal informasjonskapsler satt via HTTPS kun sendes via HTTPS av nettleseren? Skal ikke velges dersom bare innloggingen til din wiki er sikret med SSL, og annen navigering  på wikien er usikret.';
-$lang['remote']                = 'Slå på det eksterne API-grensesnittet. Dette gir andre program tilgang til denne wikien via XML-RPC, eller via andre mekanismer.';
-$lang['remoteuser']            = 'Begrens ekstern API-tilgang til bare å gjelde denne kommaseparerte listen med grupper eller brukere. La stå tomt for å gi tilgang for alle.';
-$lang['usewordblock']          = 'Blokker søppel basert på ordliste';
-$lang['relnofollow']           = 'Bruk rel="nofollow" på eksterne lenker';
-$lang['indexdelay']            = 'Forsinkelse før indeksering (sekunder)';
-$lang['mailguard']             = 'Beskytt e-postadresser';
-$lang['iexssprotect']          = 'Sjekk om opplastede filer inneholder skadelig JavaScrips- eller HTML-kode';
-$lang['usedraft']              = 'Lagre kladd automatisk ved redigering';
-$lang['htmlok']                = 'Tillat HTML';
-$lang['phpok']                 = 'Tillat PHP';
-$lang['locktime']              = 'Maksimal alder på låsefiler (sekunder)';
-$lang['cachetime']             = 'Maksimal alder på hurtiglager (sekunder)';
-$lang['target____wiki']        = 'MÃ¥l for interne lenker';
-$lang['target____interwiki']   = 'MÃ¥l for interwiki-lenker';
-$lang['target____extern']      = 'MÃ¥l for eksterne lenker';
-$lang['target____media']       = 'MÃ¥l for lenker til mediafiler';
-$lang['target____windows']     = 'MÃ¥l for lenker til nettverksstasjoner i Windows';
-$lang['mediarevisions']        = 'Slå på mediaversjonering?';
-$lang['refcheck']              = 'Sjekk referanser før mediafiler slettes';
-$lang['gdlib']                 = 'Versjon av libGD';
-$lang['im_convert']            = 'Sti til ImageMagicks konverteringsverktøy';
-$lang['jpg_quality']           = 'JPEG-kvalitet (0-100)';
-$lang['fetchsize']             = 'Maksimal størrelse (i byte) fetch.php kan laste eksternt';
-$lang['subscribers']           = 'Åpne for abonnement på endringer av en side';
-$lang['subscribe_time']        = 'Hvor lenge det skal gå mellom utsending av e-poster med endringer (i sekunder). Denne verdien bør være mindre enn verdien i recent_days.';
-$lang['notify']                = 'Send meldinger om endringer til denne e-postadressen';
-$lang['registernotify']        = 'Send info om nylig registrerte brukere til denne e-postadressen';
-$lang['mailfrom']              = 'Avsenderadresse for automatiske e-poster';
-$lang['mailprefix']            = 'Tekst å henge på i starten av emne-feltet i automatiske e-poster. La stå blank for å bruke wikiens tittel. ';
-$lang['htmlmail']              = 'Send e-poster som HTMLmultipart-form, e-postene vil da se bedre ut. Skru av for å sende e-poster i ren-tekstform.';
-$lang['sitemap']               = 'Lag Google-sidekart (dager)';
-$lang['rss_type']              = 'Type XML-feed';
-$lang['rss_linkto']            = 'XML-feed lenker til';
-$lang['rss_content']           = 'Hva skal vises i XML-feed elementer?';
-$lang['rss_update']            = 'Intervall for oppdatering av XML-feed (sekunder)';
-$lang['rss_show_summary']      = 'Vis redigeringskommentar i tittelen på elementer i XML-feed ';
-$lang['rss_media']             = 'Hvilke typer endringer skal listes i XML-strømmen?';
-$lang['updatecheck']           = 'Se etter oppdateringer og sikkerhetsadvarsler? Denne funksjonen er avhengig av å kontakte update.dokuwiki.org.';
-$lang['userewrite']            = 'Bruk pene URLer';
-$lang['useslash']              = 'Bruk / som skilletegn mellom navnerom i URLer';
-$lang['sepchar']               = 'Skilletegn mellom ord i sidenavn';
-$lang['canonical']             = 'Bruk fulle URLer (i stedet for relative)';
-$lang['fnencode']              = 'Metode for å kode ikke-ASCII-filnavn';
-$lang['autoplural']            = 'Se etter flertallsformer i lenker';
-$lang['compression']           = 'Metode for komprimering av gamle filer';
-$lang['gzip_output']           = 'Bruk gzip Content-Encoding for XHTML';
-$lang['compress']              = 'Kompakt CSS og JavaScript';
-$lang['cssdatauri']            = 'Opp til denne størrelsen (i byte) skal bilder som er vist til i CSS-filer kodes direkte inn i fila for å redusere antall HTTP-forespørsler. Denne teknikken fungerer ikke i IE < 8! Mellom <code>400</code> og <code>600</code> bytes er fornuftige verdier. Bruk <code>0</code> for å skru av funksjonen.';
-$lang['send404']               = 'Send "HTTP 404/Page Not Found" for ikke-eksisterende sider';
-$lang['broken_iua']            = 'Er funksjonen ignore_user_abort på ditt system ødelagt? Dette kan gjøre at indeksering av søk ikke fungerer. Dette er et kjent problem med IIS+PHP/CGI. Se <a href="http://bugs.splitbrain.org/?do=details&amp;task_id=852">Bug 852</a> for mer informasjon.';
-$lang['xsendfile']             = 'Bruk X-Sendfile header for å la webserver levere statiske filer? Din webserver må støtte dette.';
-$lang['renderer_xhtml']        = 'Renderer til bruk for wiki-output (XHTML)';
-$lang['renderer__core']        = '%s (dokuwikikjerne)';
-$lang['renderer__plugin']      = '%s (programutvidelse)';
-$lang['dnslookups']            = 'Dokuwiki vil, for sider som blir redigert, slå opp vertsnavn for brukere med eksterne IP-adresse Hvis du har en treg, eller en ikke fungerende DNS-server  bør du deaktivere dette alternativet';
-$lang['proxy____host']         = 'Navn på proxyserver';
-$lang['proxy____port']         = 'Port på på proxyserver';
-$lang['proxy____user']         = 'Brukernavn på proxyserver';
-$lang['proxy____pass']         = 'Passord på proxyserver';
-$lang['proxy____ssl']          = 'Bruk SSL for å koble til proxyserver';
-$lang['proxy____except']       = 'Regulært uttrykk for URLer som ikke trenger bruk av proxy';
-$lang['safemodehack']          = 'Bruk safemode-hack';
-$lang['ftp____host']           = 'FTP-server for safemode-hack';
-$lang['ftp____port']           = 'FTP-port for safemode-hack';
-$lang['ftp____user']           = 'FTP-brukernavn for safemode-hack';
-$lang['ftp____pass']           = 'FTP-passord for safemode-hack';
-$lang['ftp____root']           = 'FTP-rotmappe for safemode-hack';
-$lang['license_o_']            = 'Ingen valgt';
-$lang['typography_o_0']        = 'ingen';
-$lang['typography_o_1']        = 'Kun doble anførselstegn';
-$lang['typography_o_2']        = 'Alle anførselstegn (virker ikke alltid)';
-$lang['userewrite_o_0']        = 'ingen';
-$lang['userewrite_o_1']        = 'Apache (.htaccess)';
-$lang['userewrite_o_2']        = 'DokuWiki internt';
-$lang['deaccent_o_0']          = 'av';
-$lang['deaccent_o_1']          = 'fjern aksenter';
-$lang['deaccent_o_2']          = 'bytt til kun latinske bokstaver';
-$lang['gdlib_o_0']             = 'GD lib ikke tilgjengelig';
-$lang['gdlib_o_1']             = 'Versjon 1.x';
-$lang['gdlib_o_2']             = 'Oppdag automatisk';
-$lang['rss_type_o_rss']        = 'RSS 0.91';
-$lang['rss_type_o_rss1']       = 'RSS 1.0';
-$lang['rss_type_o_rss2']       = 'RSS 2.0';
-$lang['rss_type_o_atom']       = 'Atom 0.3';
-$lang['rss_type_o_atom1']      = 'Atom 1.0';
-$lang['rss_content_o_abstract'] = 'Ingress';
-$lang['rss_content_o_diff']    = 'Ulikh. sammenslått';
-$lang['rss_content_o_htmldiff'] = 'HTML-formatert endr. tabell';
-$lang['rss_content_o_html']    = 'Full HTML sideinnhold';
-$lang['rss_linkto_o_diff']     = 'endringsvisning';
-$lang['rss_linkto_o_page']     = 'den endrede siden';
-$lang['rss_linkto_o_rev']      = 'liste over endringer';
-$lang['rss_linkto_o_current']  = 'den nåværende siden';
-$lang['compression_o_0']       = 'ingen';
-$lang['compression_o_gz']      = 'gzip';
-$lang['compression_o_bz2']     = 'bz2';
-$lang['xsendfile_o_0']         = 'ikke bruk';
-$lang['xsendfile_o_1']         = 'Proprietær lighttpd header (før release 1.5)';
-$lang['xsendfile_o_2']         = 'Standard X-Sendfile header';
-$lang['xsendfile_o_3']         = 'Proprietær Nginx X-Accel-Redirect header';
-$lang['showuseras_o_loginname'] = 'Brukernavn';
-$lang['showuseras_o_username'] = 'Brukerens fulle navn';
-$lang['showuseras_o_username_link'] = 'Brukers fulle navn som interwiki-brukerlenke';
-$lang['showuseras_o_email']    = 'Brukerens e-postadresse (tilpasset i henhold til mailguar-instilling)';
-$lang['showuseras_o_email_link'] = 'Brukerens e-postaddresse som "mailto:"-lenke';
-$lang['useheading_o_0']        = 'Aldri';
-$lang['useheading_o_navigation'] = 'Kun navigering';
-$lang['useheading_o_content']  = 'Kun wiki-innhold';
-$lang['useheading_o_1']        = 'Alltid';
-$lang['readdircache']          = 'Maksimal alder for mellomlagring av mappen med søkeindekser (sekunder)';
diff --git a/wiki/lib/plugins/config/lang/pl/intro.txt b/wiki/lib/plugins/config/lang/pl/intro.txt
deleted file mode 100644
index 9d85c7a..0000000
--- a/wiki/lib/plugins/config/lang/pl/intro.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-====== Menadżer konfiguracji ======
-
-Na tej stronie można zmienić ustawienia tej instalacji DokuWiki. W celu uzyskania pomocy na temat ustawień zajrzyj na stronę o [[doku>config|konfiguracji]]. W celu uzyskania informacji o tej wtyczce zajrzyj na stronę o [[doku>plugin:config|wtyczce]].
-
-Ustawienia w kolorze jasnoczerwonym są chronione i nie mogą być zmienioną z użyciem tej wtyczki. Ustawienia w kolorze niebieskim mają domyślne wartości. Ustawienia w kolorze białym są specyficzne dla tej instalacji. Ustawienia w kolorach niebieskim i białym mogą być zmienione.
-
-W celu zapisania nowej konfiguracji naciśnij **zapisz** przed opuszczeniem tej strony.
diff --git a/wiki/lib/plugins/config/lang/pl/lang.php b/wiki/lib/plugins/config/lang/pl/lang.php
deleted file mode 100644
index 0a3df55..0000000
--- a/wiki/lib/plugins/config/lang/pl/lang.php
+++ /dev/null
@@ -1,215 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Wojciech Lichota <wojciech@lichota.pl>
- * @author Max <maxrb146@gmail.com>
- * @author Grzegorz Żur <grzegorz.zur@gmail.com>
- * @author Mariusz Kujawski <marinespl@gmail.com>
- * @author Maciej Kurczewski <pipijajko@gmail.com>
- * @author Sławomir Boczek <slawkens@gmail.com>
- * @author Piotr JANKOWSKI <jankowski.piotr@gmail.com>
- * @author sleshek <sleshek@wp.pl>
- * @author Leszek Stachowski <shazarre@gmail.com>
- * @author maros <dobrimaros@yahoo.pl>
- * @author Grzegorz Widła <dzesdzes@gmail.com>
- * @author Åukasz Chmaj <teachmeter@gmail.com>
- * @author Begina Felicysym <begina.felicysym@wp.eu>
- * @author Aoi Karasu <aoikarasu@gmail.com>
- */
-$lang['menu']                  = 'Ustawienia';
-$lang['error']                 = 'Ustawienia nie zostały zapisane z powodu błędnych wartości, przejrzyj je i ponów próbę zapisu. <br/> Niepoprawne wartości są wyróżnione kolorem czerwonym.';
-$lang['updated']               = 'Ustawienia zostały zmienione.';
-$lang['nochoice']              = '(brak innych możliwości)';
-$lang['locked']                = 'Plik ustawień nie mógł zostać zmieniony, upewnij się, czy uprawnienia do pliku są odpowiednie.';
-$lang['danger']                = 'Uwaga: Zmiana tej opcji może uniemożliwić dostęp do twojej wiki oraz konfiguracji.';
-$lang['warning']               = 'Ostrzeżenie: Zmiana tej opcji może spowodować nieporządane skutki.';
-$lang['security']              = 'Alert bezpieczeństwa: Zmiana tej opcji może obniżyć bezpieczeństwo.';
-$lang['_configuration_manager'] = 'Menadżer konfiguracji';
-$lang['_header_dokuwiki']      = 'Ustawienia DokuWiki';
-$lang['_header_plugin']        = 'Ustawienia wtyczek';
-$lang['_header_template']      = 'Ustawienia motywu';
-$lang['_header_undefined']     = 'Inne ustawienia';
-$lang['_basic']                = 'Podstawowe';
-$lang['_display']              = 'WyglÄ…d';
-$lang['_authentication']       = 'Autoryzacja';
-$lang['_anti_spam']            = 'Spam';
-$lang['_editing']              = 'Edycja';
-$lang['_links']                = 'Odnośniki';
-$lang['_media']                = 'Media';
-$lang['_notifications']        = 'Ustawienia powiadomień';
-$lang['_syndication']          = 'Ustawienia RSS';
-$lang['_advanced']             = 'Zaawansowane';
-$lang['_network']              = 'Sieć';
-$lang['_msg_setting_undefined'] = 'Brak danych o ustawieniu.';
-$lang['_msg_setting_no_class'] = 'Brak kategorii ustawień.';
-$lang['_msg_setting_no_default'] = 'Brak wartości domyślnej.';
-$lang['title']                 = 'Tytuł wiki';
-$lang['start']                 = 'Tytuł strony początkowej';
-$lang['lang']                  = 'Język';
-$lang['template']              = 'Motyw';
-$lang['tagline']               = 'Motto (jeśli szablon daje taką możliwość)';
-$lang['sidebar']               = 'Nazwa strony paska bocznego (jeśli szablon je obsługuje), puste pole wyłącza pasek boczny';
-$lang['license']               = 'Pod jaką licencją publikować treści wiki?';
-$lang['savedir']               = 'Katalog z danymi';
-$lang['basedir']               = 'Katalog główny';
-$lang['baseurl']               = 'Główny URL';
-$lang['cookiedir']             = 'Ścieżka plików ciasteczek. Zostaw puste by użyć baseurl.';
-$lang['dmode']                 = 'Tryb tworzenia katalogu';
-$lang['fmode']                 = 'Tryb tworzenia pliku';
-$lang['allowdebug']            = 'Debugowanie (niebezpieczne!)';
-$lang['recent']                = 'Ilość ostatnich zmian';
-$lang['recent_days']           = 'Ilość ostatnich zmian (w dniach)';
-$lang['breadcrumbs']           = 'Długość śladu';
-$lang['youarehere']            = 'Ślad według struktury';
-$lang['fullpath']              = 'Wyświetlanie pełnych ścieżek';
-$lang['typography']            = 'Konwersja cudzysłowu, myślników itp.';
-$lang['dformat']               = 'Format daty';
-$lang['signature']             = 'Podpis';
-$lang['showuseras']            = 'Sposób wyświetlania nazwy użytkownika, który ostatnio edytował stronę';
-$lang['toptoclevel']           = 'Minimalny poziom spisu treści';
-$lang['tocminheads']           = 'Minimalna liczba nagłówków niezbędna do wytworzenia spisu treści.';
-$lang['maxtoclevel']           = 'Maksymalny poziom spisu treści';
-$lang['maxseclevel']           = 'Maksymalny poziom podziału na sekcje edycyjne';
-$lang['camelcase']             = 'Bikapitalizacja odnośników (CamelCase)';
-$lang['deaccent']              = 'Podmieniaj znaki spoza ASCII w nazwach';
-$lang['useheading']            = 'Pierwszy nagłówek jako tytuł';
-$lang['sneaky_index']          = 'Domyślnie, Dokuwiki pokazuje wszystkie katalogi w indeksie. Włączenie tej opcji ukryje katalogi, do których użytkownik nie ma praw. Może to spowodować ukrycie podkatalogów, do których użytkownik ma prawa. Ta opcja może spowodować błędne działanie indeksu w połączeniu z pewnymi konfiguracjami praw dostępu.';
-$lang['hidepages']             = 'Ukrywanie stron pasujących do wzorca (wyrażenie regularne)';
-$lang['useacl']                = 'Kontrola uprawnień ACL';
-$lang['autopasswd']            = 'Automatyczne generowanie haseł';
-$lang['authtype']              = 'Typ autoryzacji';
-$lang['passcrypt']             = 'Kodowanie hasła';
-$lang['defaultgroup']          = 'Domyślna grupa';
-$lang['superuser']             = 'Administrator - grupa lub użytkownik z pełnymi uprawnieniami';
-$lang['manager']               = 'Menadżer - grupa lub użytkownik z uprawnieniami do zarządzania wiki';
-$lang['profileconfirm']        = 'Potwierdzanie zmiany profilu hasłem';
-$lang['rememberme']            = 'Pozwól na ciasteczka automatycznie logujące (pamiętaj mnie)';
-$lang['disableactions']        = 'Wyłącz akcje DokuWiki';
-$lang['disableactions_check']  = 'Sprawdzanie';
-$lang['disableactions_subscription'] = 'Subskrypcje';
-$lang['disableactions_wikicode'] = 'Pokazywanie źródeł';
-$lang['disableactions_profile_delete'] = 'Usuń własne konto ';
-$lang['disableactions_other']  = 'Inne akcje (oddzielone przecinkiem)';
-$lang['disableactions_rss']    = 'XML Syndication (RSS)';
-$lang['auth_security_timeout'] = 'Czas wygaśnięcia uwierzytelnienia (w sekundach)';
-$lang['securecookie']          = 'Czy ciasteczka wysłane do przeglądarki przez HTTPS powinny być przez nią odsyłane też tylko przez HTTPS? Odznacz tę opcję tylko wtedy, gdy logowanie użytkowników jest zabezpieczone SSL, ale przeglądanie stron odbywa się bez zabezpieczenia.';
-$lang['remote']                = 'Włącz API zdalnego dostępu. Pozwoli to innym aplikacjom na dostęp do wiki poprzez XML-RPC lub inne mechanizmy.';
-$lang['remoteuser']            = 'Ogranicz dostęp poprzez API zdalnego dostępu do podanych grup lub użytkowników, oddzielonych przecinkami. Pozostaw to pole puste by pozwolić na dostęp be ograniczeń.';
-$lang['usewordblock']          = 'Blokowanie spamu na podstawie słów';
-$lang['relnofollow']           = 'Nagłówek rel="nofollow" dla odnośników zewnętrznych';
-$lang['indexdelay']            = 'Okres indeksowania w sekundach';
-$lang['mailguard']             = 'Utrudnianie odczytu adresów e-mail';
-$lang['iexssprotect']          = 'Wykrywanie złośliwego kodu JavaScript i HTML w plikach';
-$lang['usedraft']              = 'Automatyczne zapisywanie szkicu podczas edycji';
-$lang['htmlok']                = 'Wstawki HTML';
-$lang['phpok']                 = 'Wstawki PHP';
-$lang['locktime']              = 'Maksymalny wiek blokad w sekundach';
-$lang['cachetime']             = 'Maksymalny wiek cache w sekundach';
-$lang['target____wiki']        = 'Okno docelowe odnośników wewnętrznych';
-$lang['target____interwiki']   = 'Okno docelowe odnośników do innych wiki';
-$lang['target____extern']      = 'Okno docelowe odnośników zewnętrznych';
-$lang['target____media']       = 'Okno docelowe odnośników do plików';
-$lang['target____windows']     = 'Okno docelowe odnośników zasobów Windows';
-$lang['mediarevisions']        = 'Włączyć wersjonowanie multimediów?';
-$lang['refcheck']              = 'Sprawdzanie odwołań przed usunięciem pliku';
-$lang['gdlib']                 = 'Wersja biblioteki GDLib';
-$lang['im_convert']            = 'Ścieżka do programu imagemagick';
-$lang['jpg_quality']           = 'Jakość kompresji JPG (0-100)';
-$lang['fetchsize']             = 'Maksymalny rozmiar pliku (w bajtach) jaki można pobrać z zewnątrz';
-$lang['subscribers']           = 'Subskrypcja';
-$lang['subscribe_time']        = 'Czas po którym są wysyłane listy subskrypcji i streszczenia (sek.); Powinna być to wartość większa niż podana w zmiennej recent_days.';
-$lang['notify']                = 'Wysyłanie powiadomień na adres e-mail';
-$lang['registernotify']        = 'Prześlij informacje o nowych użytkownikach na adres e-mail';
-$lang['mailfrom']              = 'Adres e-mail tego wiki';
-$lang['mailreturnpath']        = 'Adres e-mail odbiorcy dla powiadomień o niedostarczeniu';
-$lang['mailprefix']            = 'Prefiks tematu e-mail do automatycznych wiadomości';
-$lang['htmlmail']              = 'Wysyłaj wiadomości e-mail w formacie HTML, które wyglądają lepiej, lecz ich rozmiar jest większy. Wyłącz wysyłanie wiadomości zawierających tekst niesformatowany.';
-$lang['sitemap']               = 'Okres generowania Google Sitemap (w dniach)';
-$lang['rss_type']              = 'Typ RSS';
-$lang['rss_linkto']            = 'Odnośniki w RSS';
-$lang['rss_content']           = 'Rodzaj informacji wyświetlanych w RSS ';
-$lang['rss_update']            = 'Okres aktualizacji RSS (w sekundach)';
-$lang['rss_show_summary']      = 'Podsumowanie w tytule';
-$lang['rss_media']             = 'Rodzaj zmian wyświetlanych w RSS';
-$lang['rss_media_o_both']      = 'oba';
-$lang['rss_media_o_pages']     = 'strony';
-$lang['rss_media_o_media']     = 'media';
-$lang['updatecheck']           = 'Sprawdzanie aktualizacji i bezpieczeństwa. DokuWiki będzie kontaktować się z serwerem update.dokuwiki.org.';
-$lang['userewrite']            = 'Proste adresy URL';
-$lang['useslash']              = 'Używanie ukośnika jako separatora w adresie URL';
-$lang['sepchar']               = 'Znak rozdzielajÄ…cy wyrazy nazw';
-$lang['canonical']             = 'Kanoniczne adresy URL';
-$lang['fnencode']              = 'Metoda kodowana nazw pików bez użycia ASCII.';
-$lang['autoplural']            = 'Automatyczne tworzenie liczby mnogiej';
-$lang['compression']           = 'Metoda kompresji dla usuniętych plików';
-$lang['gzip_output']           = 'Używaj kodowania GZIP dla zawartości XHTML';
-$lang['compress']              = 'Kompresja arkuszy CSS i plików JavaScript';
-$lang['cssdatauri']            = 'Rozmiar w bajtach, poniżej którego odwołania do obrazów w plikach CSS powinny być osadzone bezpośrednio w arkuszu stylów by zmniejszyć ogólne żądania nagłówków HTTP. <code>400</code> do <code>600</code> bajtów jest dobrą wartością. Ustaw <code>0</code> aby wyłączyć.';
-$lang['send404']               = 'Nagłówek "HTTP 404/Page Not Found" dla nieistniejących stron';
-$lang['broken_iua']            = 'Czy funkcja "ignore_user_abort" działa? Jeśli nie, może to powodować problemy z indeksem przeszukiwania. Funkcja nie działa przy konfiguracji oprogramowania IIS+PHP/CGI. Szczegółowe informacje: <a href="http://bugs.splitbrain.org/?do=details&amp;task_id=852">Bug 852</a>.';
-$lang['xsendfile']             = 'Użyj nagłówka HTTP X-Sendfile w celu przesyłania statycznych plików. Serwer HTTP musi obsługiwać ten nagłówek.';
-$lang['renderer_xhtml']        = 'Mechanizm renderowania głównej treści strony (xhtml)';
-$lang['renderer__core']        = '%s (dokuwiki)';
-$lang['renderer__plugin']      = '%s (wtyczka)';
-$lang['dnslookups']            = 'DokiWiki wyszuka nazwy hostów dla zdalnych adresów IP użytkowników edytujących strony. Jeśli twój serwer DNS działa zbyt wolno, uległ awarii lub nie chcesz używać wyszukiwania, wyłącz tę opcję.';
-$lang['jquerycdn']             = 'Czy pliki skryptów jQuery i jQuery UI powinny być ładowane z CDN? Powoduje to dodanie dodatkowych żądań HTTP, ale pliki mogą być ładowane szybciej, a użytkownicy mogą już je mieć zbuforowane.';
-$lang['jquerycdn_o_0']         = 'Bez CDN, tylko lokalne zasoby';
-$lang['jquerycdn_o_jquery']    = 'CDN z code.jquery.com';
-$lang['jquerycdn_o_cdnjs']     = 'CDN z cdnjs.com';
-$lang['proxy____host']         = 'Proxy - serwer';
-$lang['proxy____port']         = 'Proxy - port';
-$lang['proxy____user']         = 'Proxy - nazwa użytkownika';
-$lang['proxy____pass']         = 'Proxy - hasło';
-$lang['proxy____ssl']          = 'Proxy - SSL';
-$lang['proxy____except']       = 'Wyrażenie regularne określające adresy URL, do których nie należy używać proxy.';
-$lang['safemodehack']          = 'Bezpieczny tryb (przez FTP)';
-$lang['ftp____host']           = 'FTP - serwer';
-$lang['ftp____port']           = 'FTP - port';
-$lang['ftp____user']           = 'FTP - nazwa użytkownika';
-$lang['ftp____pass']           = 'FTP - hasło';
-$lang['ftp____root']           = 'FTP - katalog główny';
-$lang['license_o_']            = 'Nie wybrano żadnej';
-$lang['typography_o_0']        = 'brak';
-$lang['typography_o_1']        = 'tylko podwójne cudzysłowy';
-$lang['typography_o_2']        = 'wszystkie cudzysłowy (nie działa we wszystkich przypadkach)';
-$lang['userewrite_o_0']        = 'brak';
-$lang['userewrite_o_1']        = '.htaccess';
-$lang['userewrite_o_2']        = 'dokuwiki';
-$lang['deaccent_o_0']          = 'zostaw oryginalnÄ… pisowniÄ™';
-$lang['deaccent_o_1']          = 'usuń litery';
-$lang['deaccent_o_2']          = 'zamień na ASCII';
-$lang['gdlib_o_0']             = 'biblioteka GDLib niedostępna';
-$lang['gdlib_o_1']             = 'wersja 1.x';
-$lang['gdlib_o_2']             = 'automatyczne wykrywanie';
-$lang['rss_type_o_rss']        = 'RSS 0.91';
-$lang['rss_type_o_rss1']       = 'RSS 1.0';
-$lang['rss_type_o_rss2']       = 'RSS 2.0';
-$lang['rss_type_o_atom']       = 'Atom 0.3';
-$lang['rss_type_o_atom1']      = 'Atom 1.0';
-$lang['rss_content_o_abstract'] = 'Streszczenie';
-$lang['rss_content_o_diff']    = 'Różnice';
-$lang['rss_content_o_htmldiff'] = 'Różnice w postaci HTML';
-$lang['rss_content_o_html']    = 'Pełna strona w postaci HTML';
-$lang['rss_linkto_o_diff']     = 'różnice';
-$lang['rss_linkto_o_page']     = 'zmodyfikowana strona';
-$lang['rss_linkto_o_rev']      = 'lista zmian';
-$lang['rss_linkto_o_current']  = 'aktualna strona';
-$lang['compression_o_0']       = 'brak';
-$lang['compression_o_gz']      = 'gzip';
-$lang['compression_o_bz2']     = 'bz2';
-$lang['xsendfile_o_0']         = 'nie używaj';
-$lang['xsendfile_o_1']         = 'Specyficzny nagłówek lightttpd (poniżej wersji 1.5)';
-$lang['xsendfile_o_2']         = 'Standardowy nagłówek HTTP X-Sendfile';
-$lang['xsendfile_o_3']         = 'Specyficzny nagłówek Nginx X-Accel-Redirect';
-$lang['showuseras_o_loginname'] = 'Login użytkownika';
-$lang['showuseras_o_username'] = 'Pełne nazwisko użytkownika';
-$lang['showuseras_o_username_link'] = 'Imię i nazwisko użytkownika jako połączenie między wiki';
-$lang['showuseras_o_email']    = 'E-mail użytkownika (ukrywanie według ustawień mailguard)';
-$lang['showuseras_o_email_link'] = 'Adresy e-mail użytkowników w formie linku mailto:';
-$lang['useheading_o_0']        = 'Nigdy';
-$lang['useheading_o_navigation'] = 'W nawigacji';
-$lang['useheading_o_content']  = 'W treści';
-$lang['useheading_o_1']        = 'Zawsze';
-$lang['readdircache']          = 'Maksymalny czas dla bufora readdir (w sek).';
diff --git a/wiki/lib/plugins/config/lang/pt-br/intro.txt b/wiki/lib/plugins/config/lang/pt-br/intro.txt
deleted file mode 100644
index db31de4..0000000
--- a/wiki/lib/plugins/config/lang/pt-br/intro.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-====== Gerenciador de Configurações ======
-
-Use essa página para controlar as configurações da instalação do seu DokuWiki. Para ajuda acerca dos itens, consulte [[doku>config]]. Para mais detalhes sobre esse plug-in, veja [[doku>plugin:config]].
-
-Definições que apresentem um fundo vermelho claro são protegidas e não podem ser alteradas com esse plug-in. As definições com um fundo azul são o padrão e as com um fundo branco foram configuradas localmente para essa instalação em particular. Tanto as definições em azul quanto as em branco podem ser alteradas.
-
-Lembre-se de pressionar o botão **Salvar** antes de sair dessa página, caso contrário, suas configurações serão perdidas.
diff --git a/wiki/lib/plugins/config/lang/pt-br/lang.php b/wiki/lib/plugins/config/lang/pt-br/lang.php
deleted file mode 100644
index fe532fb..0000000
--- a/wiki/lib/plugins/config/lang/pt-br/lang.php
+++ /dev/null
@@ -1,217 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Frederico Gonçalves Guimarães <frederico@teia.bio.br>
- * @author Felipe Castro <fefcas@gmail.com>
- * @author Lucien Raven <lucienraven@yahoo.com.br>
- * @author Enrico Nicoletto <liverig@gmail.com>
- * @author Flávio Veras <flaviove@gmail.com>
- * @author Jeferson Propheta <jeferson.propheta@gmail.com>
- * @author jair.henrique <jair.henrique@gmail.com>
- * @author Luis Dantas <luis@dantas.com>
- * @author Sergio Motta <sergio@cisne.com.br>
- * @author Isaias Masiero Filho <masiero@masiero.org>
- * @author Balaco Baco <balacobaco@imap.cc>
- * @author Victor Westmann <victor.westmann@gmail.com>
- * @author Guilherme Cardoso <guicardoso@gmail.com>
- * @author Viliam Dias <viliamjr@gmail.com>
- */
-$lang['menu']                  = 'Configurações do DokuWiki';
-$lang['error']                 = 'As configurações não foram atualizadas devido a um valor inválido. Por favor, reveja suas alterações e reenvie-as.<br />O(s) valor(es) incorreto(s) serão exibidos contornados por uma borda vermelha.';
-$lang['updated']               = 'As configurações foram atualizadas com sucesso.';
-$lang['nochoice']              = '(nenhuma outra opção disponível)';
-$lang['locked']                = 'Não foi possível atualizar o arquivo de configurações. Se isso <br />
-não for intencional, certifique-se de que o nome do arquivo e as <br />
-e as suas permissões estejam corretos.';
-$lang['danger']                = 'Perigo: Alterar esta opção poderá tornar o seu wiki e menu de configuração inacessíveis.';
-$lang['warning']               = 'Aviso: A alteração desta opção pode causar um comportamento indesejável.';
-$lang['security']              = 'Aviso de segurança: A alteração desta opção pode representar um risco de segurança.';
-$lang['_configuration_manager'] = 'Gerenciador de configurações';
-$lang['_header_dokuwiki']      = 'Configurações do DokuWiki';
-$lang['_header_plugin']        = 'Configurações de plug-ins';
-$lang['_header_template']      = 'Configurações de modelos';
-$lang['_header_undefined']     = 'Configurações indefinidas';
-$lang['_basic']                = 'Configurações básicas';
-$lang['_display']              = 'Configurações de exibição';
-$lang['_authentication']       = 'Configurações de autenticação';
-$lang['_anti_spam']            = 'Configurações do anti-spam';
-$lang['_editing']              = 'Configurações de edição';
-$lang['_links']                = 'Configurações de link';
-$lang['_media']                = 'Configurações de mídia';
-$lang['_notifications']        = 'Configurações de notificação';
-$lang['_syndication']          = 'Configurações de sindicância';
-$lang['_advanced']             = 'Configurações avançadas';
-$lang['_network']              = 'Configurações de rede';
-$lang['_msg_setting_undefined'] = 'Nenhum metadado configurado.';
-$lang['_msg_setting_no_class'] = 'Nenhuma classe definida.';
-$lang['_msg_setting_no_default'] = 'Nenhum valor padrão.';
-$lang['title']                 = 'Título do wiki';
-$lang['start']                 = 'Nome da página inicial';
-$lang['lang']                  = 'Idioma';
-$lang['template']              = 'Modelo, ou a aparência do wiki.';
-$lang['tagline']               = 'Slogan (caso o modelo suporte isso)';
-$lang['sidebar']               = 'Nome da página da barra lateral (caso o modelo suporte isso). Deixe em branco para desabilitar a barra lateral.';
-$lang['license']               = 'Sob qual licença o seu conteúdo deve ser disponibilizado?';
-$lang['savedir']               = 'Diretório para salvar os dados';
-$lang['basedir']               = 'Diretório base';
-$lang['baseurl']               = 'URL base';
-$lang['cookiedir']             = 'Caminhos dos cookies. Deixe em branco para usar a url base.';
-$lang['dmode']                 = 'Modo de criação do diretório';
-$lang['fmode']                 = 'Modo de criação do arquivo';
-$lang['allowdebug']            = 'Habilitar a depuração <b>(desabilite se não for necessário!)</b>';
-$lang['recent']                = 'Modificações recentes';
-$lang['recent_days']           = 'Quantas mudanças recentes devem ser mantidas (dias)?';
-$lang['breadcrumbs']           = 'Número de elementos na trilha de páginas visitadas';
-$lang['youarehere']            = 'Trilha hierárquica';
-$lang['fullpath']              = 'Indica o caminho completo das páginas no rodapé';
-$lang['typography']            = 'Efetuar modificações tipográficas';
-$lang['dformat']               = 'Formato da data (veja a função <a href="http://php.net/strftime">strftime</a> do PHP)';
-$lang['signature']             = 'Assinatura';
-$lang['showuseras']            = 'O que exibir quando mostrar o usuário que editou a página pela última vez';
-$lang['toptoclevel']           = 'Nível mais alto para a tabela de conteúdos';
-$lang['tocminheads']           = 'Quantidade mínima de cabeçalhos para a construção da tabela de conteúdos.';
-$lang['maxtoclevel']           = 'Nível máximo para entrar na tabela de conteúdos';
-$lang['maxseclevel']           = 'Nível máximo para gerar uma seção de edição';
-$lang['camelcase']             = 'Usar CamelCase para links';
-$lang['deaccent']              = '"Limpar" os nomes das páginas';
-$lang['useheading']            = 'Usar o primeiro cabeçalho como nome da página';
-$lang['sneaky_index']          = 'Por padrão, o DokuWiki irá exibir todos os espaços de nomes na visualização do índice. Ao habilitar essa opção, serão escondidos aqueles que o usuário não tiver permissão de leitura. Isso pode resultar na omissão de subespaços de nomes, tornando o índice inútil para certas configurações de ACL.';
-$lang['hidepages']             = 'Esconder páginas correspondentes (expressão regular)';
-$lang['useacl']                = 'Usar listas de controle de acesso';
-$lang['autopasswd']            = 'Gerar senhas automaticamente';
-$lang['authtype']              = 'Método de autenticação';
-$lang['passcrypt']             = 'Método de criptografia da senha';
-$lang['defaultgroup']          = 'Grupo padrão';
-$lang['superuser']             = 'Superusuário - um grupo, usuário ou uma lista separada por vírgulas (usuário1,@grupo1,usuário2) que tenha acesso completo a todas as páginas e funções, independente das definições da ACL';
-$lang['manager']               = 'Gerente - um grupo, usuário ou uma lista separada por vírgulas (usuário1,@grupo1,usuário2) que tenha acesso a certas funções de gerenciamento';
-$lang['profileconfirm']        = 'Confirmar mudanças no perfil com a senha';
-$lang['rememberme']            = 'Permitir cookies de autenticação permanentes ("Lembre-se de mim")';
-$lang['disableactions']        = 'Desabilitar as ações do DokuWiki';
-$lang['disableactions_check']  = 'Verificação';
-$lang['disableactions_subscription'] = 'Monitoramento';
-$lang['disableactions_wikicode'] = 'Ver a fonte/Exportar sem processamento';
-$lang['disableactions_profile_delete'] = 'Excluir a própria conta';
-$lang['disableactions_other']  = 'Outras ações (separadas por vírgula)';
-$lang['disableactions_rss']    = 'Sindicância XML (RSS)';
-$lang['auth_security_timeout'] = 'Tempo limite de segurança para autenticações (seg)';
-$lang['securecookie']          = 'Os cookies definidos via HTTPS devem ser enviados para o navegador somente via HTTPS? Desabilite essa opção quando somente a autenticação do seu wiki for realizada de maneira segura via SSL e a navegação, de maneira insegura.';
-$lang['remote']                = 'Habilitar o sistema de API remota. Isso permite que outras aplicações acessem o wiki via XML-RPC ou outros mecanismos.';
-$lang['remoteuser']            = 'Restringir o acesso à API remota aos grupos ou usuários definidos aqui (separados por vírgulas). Deixe em branco para permitir o acesso a qualquer um.';
-$lang['usewordblock']          = 'Bloquear spam baseado em lista de palavras';
-$lang['relnofollow']           = 'Usar rel="nofollow" em links externos';
-$lang['indexdelay']            = 'Tempo de espera antes da indexação (seg)';
-$lang['mailguard']             = 'Obscurecer endereços de e-mail';
-$lang['iexssprotect']          = 'Verificar a existência de possíveis códigos maliciosos em HTML ou JavaScript nos arquivos enviados';
-$lang['usedraft']              = 'Salvar o rascunho automaticamente durante a edição';
-$lang['htmlok']                = 'Permitir incorporação de HTML';
-$lang['phpok']                 = 'Permitir incorporação de PHP';
-$lang['locktime']              = 'Tempo máximo para o bloqueio de arquivos (seg)';
-$lang['cachetime']             = 'Tempo máximo para o cache (seg)';
-$lang['target____wiki']        = 'Parâmetro "target" para links internos';
-$lang['target____interwiki']   = 'Parâmetro "target" para links interwiki';
-$lang['target____extern']      = 'Parâmetro "target" para links externos';
-$lang['target____media']       = 'Parâmetro "target" para links de mídia';
-$lang['target____windows']     = 'Parâmetro "target" para links do Windows';
-$lang['mediarevisions']        = 'Habilitar revisões de mídias?';
-$lang['refcheck']              = 'Verificação de referência da mídia';
-$lang['gdlib']                 = 'Versão da biblioteca "GD Lib"';
-$lang['im_convert']            = 'Caminho para a ferramenta de conversão ImageMagick';
-$lang['jpg_quality']           = 'Qualidade de compressão do JPG (0-100)';
-$lang['fetchsize']             = 'Tamanho máximo (em bytes) que o "fetch.php" pode transferir do exterior';
-$lang['subscribers']           = 'Habilitar o suporte ao monitoramento de páginas';
-$lang['subscribe_time']        = 'Tempo de espera antes do envio das listas e mensagens de monitoramento (segundos); este tempo deve ser menor que o especificado no parâmetro recent_days';
-$lang['notify']                = 'Enviar notificações de mudança para esse endereço de e-mail';
-$lang['registernotify']        = 'Enviar informações de usuários registrados para esse endereço de e-mail';
-$lang['mailfrom']              = 'Endereço de e-mail a ser utilizado para mensagens automáticas';
-$lang['mailreturnpath']        = 'Endereço de e-mail do destinatário para notificações de falha de entrega';
-$lang['mailprefix']            = 'Prefixo do assunto dos e-mails de envio automático';
-$lang['htmlmail']              = 'Enviar e-mail HTML multipartes, que têm uma aparência melhor, mas um tamanho maior. Desabilite para enviar e-mails em texto puro.';
-$lang['sitemap']               = 'Gerar Google Sitemap (dias)';
-$lang['rss_type']              = 'Tipo de fonte XML';
-$lang['rss_linkto']            = 'Os links da fonte XML apontam para';
-$lang['rss_content']           = 'O que deve ser exibido nos itens da fonte XML?';
-$lang['rss_update']            = 'Intervalo de atualização da fonte XML (seg)';
-$lang['rss_show_summary']      = 'Resumo de exibição da fonte XML no título';
-$lang['rss_media']             = 'Que tipo de alterações devem ser listadas na fonte XML?';
-$lang['rss_media_o_both']      = 'ambos';
-$lang['rss_media_o_pages']     = 'páginas';
-$lang['rss_media_o_media']     = 'mídia';
-$lang['updatecheck']           = 'Verificar atualizações e avisos de segurança? O DokuWiki precisa contactar o "splitbrain.org" para efetuar esse recurso.';
-$lang['userewrite']            = 'Usar URLs "limpas"';
-$lang['useslash']              = 'Usar a barra como separador de espaços de nomes nas URLs';
-$lang['sepchar']               = 'Separador de palavras no nome da página';
-$lang['canonical']             = 'Usar URLs absolutas (http://servidor/caminho)';
-$lang['fnencode']              = 'Método de codificação não-ASCII de nome de arquivos.';
-$lang['autoplural']            = 'Verificar formas plurais nos links';
-$lang['compression']           = 'Método de compressão para arquivos antigos';
-$lang['gzip_output']           = 'Usar "Content-Encoding" do gzip para o código xhtml';
-$lang['compress']              = 'Compactar as saídas de CSS e JavaScript';
-$lang['cssdatauri']            = 'Tamanho máximo em bytes para o qual as imagens referenciadas em arquivos CSS devam ser incorporadas na folha de estilos (o arquivo CSS) para reduzir o custo dos pedidos HTTP. Essa técnica não funcionará na versões do IE < 8!  Valores de <code>400</code> a <code>600</code> são bons. Defina o valor <code>0</code> para desativar.';
-$lang['send404']               = 'Enviar "HTTP 404/Página não encontrada" para páginas não existentes';
-$lang['broken_iua']            = 'A função "ignore_user_abort" está com defeito no seu sistema? Isso pode causar um índice de busca defeituoso. IIS+PHP/CGI reconhecidamente possui esse erro. Veja o <a href="http://bugs.splitbrain.org/?do=details&amp;task_id=852">bug 852</a> para mais informações.';
-$lang['xsendfile']             = 'Usar o cabeçalho "X-Sendfile" para permitir que o servidor web encaminhe arquivos estáticos? Seu servidor web precisa ter suporte a isso.';
-$lang['renderer_xhtml']        = 'Renderizador a ser utilizado para a saída principal (xhtml) do wiki';
-$lang['renderer__core']        = '%s (núcleo do DokuWiki)';
-$lang['renderer__plugin']      = '%s ("plug-in")';
-$lang['dnslookups']            = 'O DokuWiki procurará pelo nome de host dos endereços IP remotos dos usuários que estão editando as páginas. Caso você tenha um DNS lento, ele não esteja funcionando ou, ainda, você não queira esse recurso, desabilite essa opção.';
-$lang['jquerycdn']             = 'Os scripts jQuery e jQuery UI devem ser carregados a partir de uma CND? Isso adiciona requisições HTTP adicionais, mas os arquivos podem carregar mais rapidamente e os usuários podem já tê-los no cache.';
-$lang['jquerycdn_o_0']         = 'Sem CDN, somente entrega local';
-$lang['jquerycdn_o_jquery']    = 'CDN em code.jquery.com';
-$lang['jquerycdn_o_cdnjs']     = 'CDN em cdnjs.com';
-$lang['proxy____host']         = 'Nome do servidor proxy';
-$lang['proxy____port']         = 'Porta do proxy';
-$lang['proxy____user']         = 'Nome de usuário do proxy';
-$lang['proxy____pass']         = 'Senha do proxy';
-$lang['proxy____ssl']          = 'Usar SSL para conectar ao proxy';
-$lang['proxy____except']       = 'Expressões regulares de URL para excessão de proxy.';
-$lang['safemodehack']          = 'Habilitar o contorno de segurança';
-$lang['ftp____host']           = 'Servidor FTP para o contorno de segurança';
-$lang['ftp____port']           = 'Porta do FTP para o contorno de segurança';
-$lang['ftp____user']           = 'Nome do usuário FTP para o contorno de segurança';
-$lang['ftp____pass']           = 'Senha do usuário FTP para o contorno de segurança';
-$lang['ftp____root']           = 'Diretório raiz do FTP para o contorno de segurança';
-$lang['license_o_']            = 'Nenhuma escolha';
-$lang['typography_o_0']        = 'nenhuma';
-$lang['typography_o_1']        = 'excluir aspas simples';
-$lang['typography_o_2']        = 'incluir aspas simples (nem sempre funciona)';
-$lang['userewrite_o_0']        = 'não';
-$lang['userewrite_o_1']        = '.htaccess';
-$lang['userewrite_o_2']        = 'interno do DokuWiki';
-$lang['deaccent_o_0']          = 'não';
-$lang['deaccent_o_1']          = 'remover acentos';
-$lang['deaccent_o_2']          = 'romanizar';
-$lang['gdlib_o_0']             = 'a "GD Lib" não está disponível';
-$lang['gdlib_o_1']             = 'versão 1.x';
-$lang['gdlib_o_2']             = 'detecção automática';
-$lang['rss_type_o_rss']        = 'RSS 0.91';
-$lang['rss_type_o_rss1']       = 'RSS 1.0';
-$lang['rss_type_o_rss2']       = 'RSS 2.0';
-$lang['rss_type_o_atom']       = 'Atom 0.3';
-$lang['rss_type_o_atom1']      = 'Atom 1.0';
-$lang['rss_content_o_abstract'] = 'resumo';
-$lang['rss_content_o_diff']    = 'diff unificado';
-$lang['rss_content_o_htmldiff'] = 'tabela de diff formatada em HTML';
-$lang['rss_content_o_html']    = 'conteúdo completo da página em HTML';
-$lang['rss_linkto_o_diff']     = 'visualização das diferenças';
-$lang['rss_linkto_o_page']     = 'página revisada';
-$lang['rss_linkto_o_rev']      = 'lista de revisões';
-$lang['rss_linkto_o_current']  = 'página atual';
-$lang['compression_o_0']       = 'nenhum';
-$lang['compression_o_gz']      = 'gzip';
-$lang['compression_o_bz2']     = 'bz2';
-$lang['xsendfile_o_0']         = 'não usar';
-$lang['xsendfile_o_1']         = 'cabeçalho proprietário lighttpd (anterior à versão 1.5)';
-$lang['xsendfile_o_2']         = 'cabeçalho "X-Sendfile" padrão';
-$lang['xsendfile_o_3']         = 'cabeçalho proprietário "Nginx X-Accel-Redirect"';
-$lang['showuseras_o_loginname'] = 'nome de usuário';
-$lang['showuseras_o_username'] = 'nome completo do usuário';
-$lang['showuseras_o_username_link'] = 'Nome completo do usuário como um link de usuário interwiki';
-$lang['showuseras_o_email']    = 'endereço de e-mail do usuário (obscurecido segundo a definição anterior)';
-$lang['showuseras_o_email_link'] = 'endereço de e-mail de usuário como um link "mailto:"';
-$lang['useheading_o_0']        = 'nunca';
-$lang['useheading_o_navigation'] = 'somente a navegação';
-$lang['useheading_o_content']  = 'somente o conteúdo do wiki';
-$lang['useheading_o_1']        = 'sempre';
-$lang['readdircache']          = 'Tempo máximo para cache readdir (segundos)';
diff --git a/wiki/lib/plugins/config/lang/pt/intro.txt b/wiki/lib/plugins/config/lang/pt/intro.txt
deleted file mode 100644
index 06a68c4..0000000
--- a/wiki/lib/plugins/config/lang/pt/intro.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-====== Gerenciador de Configurações ======
-
-Use esta página para controlar as definições da instalação do seu DokuWiki. Para ajuda acerca dos itens, consulte [[doku>config]]. Para mais detalhes sobre este plugin, veja [[doku>plugin:config]].
-
-Definições que apresentem um fundo vermelho claro são protegidas e não podem ser alteradas com este plugin. Definições com um fundo azul são padrão e definições com um fundo branco foram configuradas localmente para essa instalação em particular. Tanto as definições em azul como em branco podem ser alteradas.
-
-Lembre-se de pressionar o botão **Guardar** antes de sair desta página, caso contrário, as suas definições serão perdidas.
diff --git a/wiki/lib/plugins/config/lang/pt/lang.php b/wiki/lib/plugins/config/lang/pt/lang.php
deleted file mode 100644
index ba0ab0b..0000000
--- a/wiki/lib/plugins/config/lang/pt/lang.php
+++ /dev/null
@@ -1,193 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author José Monteiro <Jose.Monteiro@DoWeDo-IT.com>
- * @author Enrico Nicoletto <liverig@gmail.com>
- * @author Fil <fil@meteopt.com>
- * @author André Neves <drakferion@gmail.com>
- * @author José Campos zecarlosdecampos@gmail.com
- * @author Paulo Carmino <contato@paulocarmino.com>
- * @author Alfredo Silva <alfredo.silva@sky.com>
- * @author Guilherme Sá <guilherme.sa@hotmail.com>
- */
-$lang['menu']                  = 'Configuração';
-$lang['error']                 = 'Parâmetros de Configuração não actualizados devido a valores inválidos. Por favor, reveja as modificações que pretende efectuar antes de re-submetê-las.<br /> Os valores incorrectos serão mostrados dentro de uma "moldura" vermelha.';
-$lang['updated']               = 'Parâmetros de Configuração actualizados com sucesso.';
-$lang['nochoice']              = '(não existem outras escolhas disponíveis)';
-$lang['locked']                = 'O ficheiro de configuração não pôde ser actualizado, se isso foi não intencional, <br />certifique-se que o nome e as permissões do ficheiro de configuração estejam correctas.
-';
-$lang['danger']                = 'Perigo: Alterar esta opção poderá tornar o seu wiki e o menu de configuração inacessíveis.';
-$lang['warning']               = 'Aviso: A alteração desta opção poderá causar comportamento involuntário.';
-$lang['security']              = 'Aviso de segurança: Alterar esta opção pode apresentar um risco de segurança.';
-$lang['_configuration_manager'] = 'Gestor de Parâmetros de Configuração';
-$lang['_header_dokuwiki']      = 'Parâmetros DokuWiki';
-$lang['_header_plugin']        = 'Parâmetros dos Plugins';
-$lang['_header_template']      = 'Parâmetros das Templates';
-$lang['_header_undefined']     = 'Parâmetros não definidos';
-$lang['_basic']                = 'Configurações Básicas';
-$lang['_display']              = 'Configuração de Apresentação';
-$lang['_authentication']       = 'Configuração de Autenticação';
-$lang['_anti_spam']            = 'Configuração Anti-Spam';
-$lang['_editing']              = 'Configuração de Edição';
-$lang['_links']                = 'Configuração de Ligações';
-$lang['_media']                = 'Configuração de Media';
-$lang['_notifications']        = 'Notificação';
-$lang['_syndication']          = 'Sindicação (RSS)';
-$lang['_advanced']             = 'Configurações Avançadas';
-$lang['_network']              = 'Configuração de Rede';
-$lang['_msg_setting_undefined'] = 'Nenhum metadado configurado.';
-$lang['_msg_setting_no_class'] = 'Nenhuma classe definida.';
-$lang['_msg_setting_no_default'] = 'Sem valor por omissão.';
-$lang['title']                 = 'Título deste Wiki';
-$lang['start']                 = 'Nome da Página Inicial';
-$lang['lang']                  = 'Idioma';
-$lang['template']              = 'Template';
-$lang['license']               = 'Sob que licença o seu conteúdo deverá ser disponibilizado?';
-$lang['savedir']               = 'Pasta para guardar dados';
-$lang['basedir']               = 'Pasta Base';
-$lang['baseurl']               = 'URL Base';
-$lang['dmode']                 = 'Modo de criação de pastas.';
-$lang['fmode']                 = 'Modo de criação de ficheiros.';
-$lang['allowdebug']            = 'Permitir depuração <b>desabilite se não for necessário!</b>';
-$lang['recent']                = 'Alterações recentes';
-$lang['recent_days']           = 'Quantas mudanças recentes devem ser mantidas? (dias)';
-$lang['breadcrumbs']           = 'Número máximo de breadcrumbs';
-$lang['youarehere']            = 'Breadcrumbs hierárquicas';
-$lang['fullpath']              = 'Revelar caminho completo no rodapé';
-$lang['typography']            = 'Executar substituições tipográficas';
-$lang['dformat']               = 'Formato de Data (ver função PHP\'s <a href="http://php.net/strftime">strftime</a>)';
-$lang['signature']             = 'Assinatura';
-$lang['showuseras']            = 'O que exibir quando mostrar o utilizador que editou a página pela última vez';
-$lang['toptoclevel']           = 'Nível de topo para a tabela de conteúdo';
-$lang['tocminheads']           = 'Quantidade mínima de cabeçalhos para a construção da tabela de conteúdos.';
-$lang['maxtoclevel']           = 'Máximo nível para a tabela de conteúdo';
-$lang['maxseclevel']           = 'Máximo nível para editar secção';
-$lang['camelcase']             = 'Usar CamelCase';
-$lang['deaccent']              = 'Nomes das páginas sem acentos';
-$lang['useheading']            = 'Usar o primeiro cabeçalho para o nome da página';
-$lang['sneaky_index']          = 'Por norma, o DokuWiki irá exibir todos os espaços de nomes na visualização do índice. Ao habilitar essa opção, serão escondidos aqueles em que o utilizador não tenha permissão de leitura. Isto pode resultar na omissão de sub-ramos acessíveis, que poderá tornar o índice inútil para certas configurações de ACL.';
-$lang['hidepages']             = 'Esconder páginas correspondentes (expressões regulares)';
-$lang['useacl']                = 'Usar ACL - Listas de Controlo de Acessos';
-$lang['autopasswd']            = 'Auto-gerar senhas';
-$lang['authtype']              = 'Método de autenticação';
-$lang['passcrypt']             = 'Método de cifragem da senha';
-$lang['defaultgroup']          = 'Grupo por omissão';
-$lang['superuser']             = 'Superutilizador - um grupo, utilizador ou uma lista separada por vírgulas usuário1,@grupo1,usuário2 que tem acesso completo a todas as páginas e funções, independente das definições da ACL';
-$lang['manager']               = 'Gestor - um grupo, utilizador ou uma lista separada por vírgulas usuário1,@grupo1,usuário2 que tem acesso a certas funções de gestão';
-$lang['profileconfirm']        = 'Confirmar mudanças no perfil com a senha';
-$lang['rememberme']            = 'Permitir cookies de autenticação permanentes (Memorizar?)';
-$lang['disableactions']        = 'Desactivar acções DokuWiki';
-$lang['disableactions_check']  = 'Checar';
-$lang['disableactions_subscription'] = 'Subscrever/Não Subscrver';
-$lang['disableactions_wikicode'] = 'Ver fonte/Exportar em bruto';
-$lang['disableactions_profile_delete'] = 'Deletar Sua Conta.';
-$lang['disableactions_other']  = 'Outras acções (separadas por vírgula)';
-$lang['disableactions_rss']    = 'Sindicação XML (RSS)';
-$lang['auth_security_timeout'] = 'Tempo limite de segurança para autenticações (seg)';
-$lang['securecookie']          = 'Os cookies definidos via HTTPS deverão ser enviados para o navegador somente via HTTPS? Desabilite essa opção quando somente a autenticação do seu wiki for realizada de maneira segura via SSL e a navegação de maneira insegura.';
-$lang['usewordblock']          = 'Bloquear spam baseado em lista de palavras (wordlist)';
-$lang['relnofollow']           = 'Usar rel="nofollow" em links externos';
-$lang['indexdelay']            = 'Tempo de espera antes da indexação (seg)';
-$lang['mailguard']             = 'Obscurecer endereços de email';
-$lang['iexssprotect']          = 'Verificar os arquivos enviados contra possíveis códigos maliciosos em HTML ou JavaScript';
-$lang['usedraft']              = 'Guardar o rascunho automaticamente durante a edição';
-$lang['htmlok']                = 'Permitir embeber HTML';
-$lang['phpok']                 = 'Permitir embeber PHP';
-$lang['locktime']              = 'Idade máxima para locks (seg.)';
-$lang['cachetime']             = 'Idade máxima para cache (seg.)';
-$lang['target____wiki']        = 'Parâmetro "target" para links internos';
-$lang['target____interwiki']   = 'Parâmetro "target" para links entre wikis';
-$lang['target____extern']      = 'Parâmetro "target" para links externos';
-$lang['target____media']       = 'Parâmetro "target" para links de media';
-$lang['target____windows']     = 'Parâmetro "target" para links do Windows';
-$lang['mediarevisions']        = 'Ativar Mediarevisions?';
-$lang['refcheck']              = 'Verificação de referência da media';
-$lang['gdlib']                 = 'Versão GD Lib';
-$lang['im_convert']            = 'Caminho para a ferramenta "convert" do ImageMagick';
-$lang['jpg_quality']           = 'Compressão/Qualidade JPG (0-100)';
-$lang['fetchsize']             = 'Tamanho máximo (bytes) que o fetch.php pode transferir do exterior';
-$lang['subscribers']           = 'Habilitar o suporte a subscrição de páginas ';
-$lang['subscribe_time']        = 'Tempo após o qual as listas de subscrição e "digests" são enviados (seg.); Isto deve ser inferior ao tempo especificado em recent_days.';
-$lang['notify']                = 'Enviar notificações de mudanças para este endereço de email';
-$lang['registernotify']        = 'Enviar informações de utilizadores registados para este endereço de email';
-$lang['mailfrom']              = 'Endereço de email a ser utilizado para mensagens automáticas';
-$lang['mailprefix']            = 'Prefixo de email a ser utilizado para mensagens automáticas';
-$lang['sitemap']               = 'Gerar Sitemap Google (dias)';
-$lang['rss_type']              = 'Tipo de feed XML';
-$lang['rss_linkto']            = 'Links de feed XML ara';
-$lang['rss_content']           = 'O que deve ser exibido nos itens do alimentador XML?';
-$lang['rss_update']            = 'Intervalo de actualização do alimentador XML (seg)';
-$lang['rss_show_summary']      = 'Resumo de exibição do alimentador XML no título';
-$lang['updatecheck']           = 'Verificar por actualizações e avisos de segurança? O DokuWiki precisa contactar o "splitbrain.org" para efectuar esta verificação.';
-$lang['userewrite']            = 'Usar URLs SEO';
-$lang['useslash']              = 'Usar a barra como separador de espaços de nomes nas URLs';
-$lang['sepchar']               = 'Separador de palavras no nome da página';
-$lang['canonical']             = 'Usar URLs absolutas (http://servidor/caminho)';
-$lang['fnencode']              = 'Método de codificar nomes de ficheiro não-ASCII.';
-$lang['autoplural']            = 'Verificar formas plurais nos links';
-$lang['compression']           = 'Método de compressão para histórico';
-$lang['gzip_output']           = 'Usar "Content-Encoding" do gzip para o código xhtml';
-$lang['compress']              = 'Compactar as saídas de CSS e JavaScript';
-$lang['cssdatauri']            = 'Tamanho em bytes até ao qual as imagens referenciadas em ficheiros CSS devem ser embutidas diretamente no CSS para reduzir a carga de pedidos HTTP extra. <code>400</code> a <code>600</code> bytes é um bom valor. Escolher <code>0</code> para desativar.';
-$lang['send404']               = 'Enviar "HTTP 404/Página não encontrada" para páginas não existentes';
-$lang['broken_iua']            = 'A função "ignore_user_abort" não está a funcionar no seu sistema? Isso pode causar um índice de busca defeituoso. Sistemas com IIS+PHP/CGI são conhecidos por possuírem este problema. Veja o <a href="http://bugs.splitbrain.org/?do=details&amp;task_id=852">bug 852</a> para mais informações.';
-$lang['xsendfile']             = 'Usar o cabeçalho "X-Sendfile" para permitir o servidor de internet encaminhar ficheiros estáticos? O seu servidor de internet precisa ter suporte a isso.';
-$lang['renderer_xhtml']        = 'Renderizador a ser utilizado para a saída principal do wiki (xhtml)';
-$lang['renderer__core']        = '%s (núcleo dokuwiki)';
-$lang['renderer__plugin']      = '%s (plugin)';
-$lang['proxy____host']         = 'Nome do servidor proxy';
-$lang['proxy____port']         = 'Porta de Proxy';
-$lang['proxy____user']         = 'Nome de utilizador Proxy';
-$lang['proxy____pass']         = 'Password de Proxy ';
-$lang['proxy____ssl']          = 'Usar SSL para conectar ao proxy';
-$lang['proxy____except']       = 'Expressão regular para condizer URLs para os quais o proxy deve ser saltado.';
-$lang['safemodehack']          = 'Habilitar modo de segurança';
-$lang['ftp____host']           = 'Servidor FTP para o modo de segurança';
-$lang['ftp____port']           = 'Porta de FTP para o modo de segurança';
-$lang['ftp____user']           = 'Nome do utilizador FTP para o modo de segurança';
-$lang['ftp____pass']           = 'Senha do utilizador FTP para o modo de segurança';
-$lang['ftp____root']           = 'Directoria raiz do FTP para o modo de segurança';
-$lang['license_o_']            = 'Nenhuma escolha';
-$lang['typography_o_0']        = 'nenhum';
-$lang['typography_o_1']        = 'Apenas entre aspas';
-$lang['typography_o_2']        = 'Entre aspas e apóstrofes';
-$lang['userewrite_o_0']        = 'nenhum';
-$lang['userewrite_o_1']        = '.htaccess';
-$lang['userewrite_o_2']        = 'interno (DokuWiki)';
-$lang['deaccent_o_0']          = 'desligado';
-$lang['deaccent_o_1']          = 'remover acentos';
-$lang['deaccent_o_2']          = 'romanizar';
-$lang['gdlib_o_0']             = 'A GD Lib não está disponível';
-$lang['gdlib_o_1']             = 'Versão 1.x';
-$lang['gdlib_o_2']             = 'Auto-detecção';
-$lang['rss_type_o_rss']        = 'RSS 0.91';
-$lang['rss_type_o_rss1']       = 'RSS 1.0';
-$lang['rss_type_o_rss2']       = 'RSS 2.0';
-$lang['rss_type_o_atom']       = 'Atom 0.3';
-$lang['rss_type_o_atom1']      = 'Atom 1.0';
-$lang['rss_content_o_abstract'] = 'Abstracto';
-$lang['rss_content_o_diff']    = 'Diferenças Unificadas';
-$lang['rss_content_o_htmldiff'] = 'Tabela de diff formatada em HTML';
-$lang['rss_content_o_html']    = 'Conteúdo completo da página em HTML';
-$lang['rss_linkto_o_diff']     = 'vista de diferenças';
-$lang['rss_linkto_o_page']     = 'página revista';
-$lang['rss_linkto_o_rev']      = 'lista de revisões';
-$lang['rss_linkto_o_current']  = 'página actual';
-$lang['compression_o_0']       = 'Sem Compressão';
-$lang['compression_o_gz']      = 'gzip';
-$lang['compression_o_bz2']     = 'bz2';
-$lang['xsendfile_o_0']         = 'não usar';
-$lang['xsendfile_o_1']         = 'Cabeçalho proprietário lighttpd (anterior à versão 1.5)';
-$lang['xsendfile_o_2']         = 'Cabeçalho "X-Sendfile" padrão';
-$lang['xsendfile_o_3']         = 'Cabeçalho proprietário "Nginx X-Accel-Redirect"';
-$lang['showuseras_o_loginname'] = 'Nome de utilizador';
-$lang['showuseras_o_username'] = 'Nome completo do utilizador';
-$lang['showuseras_o_email']    = 'Endereço email do utilizador (ofuscado de acordo com a configuração mailguard)';
-$lang['showuseras_o_email_link'] = 'Endereço de e-mail de usuário como um link "mailto:"';
-$lang['useheading_o_0']        = 'Nunca';
-$lang['useheading_o_navigation'] = 'Apenas Navegação';
-$lang['useheading_o_content']  = 'Apenas Conteúdo Wiki';
-$lang['useheading_o_1']        = 'Sempre';
-$lang['readdircache']          = 'Idade máxima para a cache de "readdir" (seg)';
diff --git a/wiki/lib/plugins/config/lang/ro/intro.txt b/wiki/lib/plugins/config/lang/ro/intro.txt
deleted file mode 100644
index f5cbbe8..0000000
--- a/wiki/lib/plugins/config/lang/ro/intro.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-====== Manager Configurare ======
-
-Folosiţi această pagină pentru a controla setările instalării DokuWiki. Pentru ajutor la probleme punctuale, consultaţi [[doku>config]]. Pentru mai multe detalii privind acest plugin, consultaţi [[doku>plugin:config]].
-
-Setările pe un fond roşu-deschis sunt protejate şi nu pot fi modificate cu acest plugin. Setările pe un fond albastru sunt valori implicite iar cele pe fond alb au fost setate local pentru această instalare individualizată. Setările pe fond albastru şi alb pot fi modificate.
-
-Nu uitaţi să apăsaţi butonul **SALVEAZĂ** înainte de a părăsi această pagină; altfel, modificările aduse se vor pierde.
diff --git a/wiki/lib/plugins/config/lang/ro/lang.php b/wiki/lib/plugins/config/lang/ro/lang.php
deleted file mode 100644
index 649954d..0000000
--- a/wiki/lib/plugins/config/lang/ro/lang.php
+++ /dev/null
@@ -1,195 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Sergiu Baltariu <s_baltariu@yahoo.com>
- * @author s_baltariu@yahoo.com
- * @author Emanuel-Emeric Andrasi <n30@mandrivausers.ro>
- * @author Emanuel-Emeric Andrași <n30@mandrivausers.ro>
- * @author Emanuel-Emeric AndraÅŸi <em.andrasi@mandrivausers.ro>
- * @author Emanuel-Emeric Andrasi <em.andrasi@mandrivausers.ro>
- * @author Marius OLAR <olarmariusalex@gmail.com>
- * @author Marius Olar <olarmariusalex@yahoo.com>
- * @author Emanuel-Emeric Andrași <em.andrasi@mandrivausers.ro>
- */
-$lang['menu']                  = 'Setări de Configurare';
-$lang['error']                 = 'Setări nu au fost actualizate datorită unei valori incorecte; verificaţi modificările şi încercaţi din nou. <br /> Valorile incorecte vor apărea într-un chenar roşu.';
-$lang['updated']               = 'Setările au fost actualizate cu succes.';
-$lang['nochoice']              = '(nici o altă opţiune nu este disponibilă)';
-$lang['locked']                = 'Fişierul de setări nu poate fi actualizat. Dacă nu s-a dorit aceasta, asiguraţi-vă că numele şi drepturile de acces ale fişierului de setări localizate sunt corecte.';
-$lang['danger']                = 'Pericol: Modificarea aceastei opțiuni poate conduce la imposibilitatea accesării wiki-ului și a meniului de configurare!';
-$lang['warning']               = 'Atenție: Modificarea aceastei opțiuni poate duce la evenimente nedorite!';
-$lang['security']              = 'Alertă de securitate: Modificarea acestei opțiuni poate prezenta un risc de securitate!';
-$lang['_configuration_manager'] = 'Manager Configurare';
-$lang['_header_dokuwiki']      = 'Setări DokuWiki';
-$lang['_header_plugin']        = 'Setări Plugin-uri';
-$lang['_header_template']      = 'Setări Şabloane';
-$lang['_header_undefined']     = 'Setări Nedefinite';
-$lang['_basic']                = 'Setări de Bază';
-$lang['_display']              = 'Setări Afişare';
-$lang['_authentication']       = 'Setări Autentificare';
-$lang['_anti_spam']            = 'Setări Anti-Spam';
-$lang['_editing']              = 'Setări Editare';
-$lang['_links']                = 'Setări Legături';
-$lang['_media']                = 'Setări Media';
-$lang['_advanced']             = 'Setări Avansate';
-$lang['_network']              = 'Setări Reţea';
-$lang['_msg_setting_undefined'] = 'Nesetat metadata';
-$lang['_msg_setting_no_class'] = 'Nesetat class';
-$lang['_msg_setting_no_default'] = 'Nici o valoare implicită';
-$lang['title']                 = 'Titlul wiki';
-$lang['start']                 = 'Numele paginii de start';
-$lang['lang']                  = 'Limbă';
-$lang['template']              = 'Åžablon';
-$lang['tagline']               = 'Slogan (dacă templateul suportă opțiunea)';
-$lang['sidebar']               = 'Numele paginii barei laterale (dacă templateul suportă opțiunea), câmpul lăsat gol dezactivează bara laterală';
-$lang['license']               = 'Sub ce licenţă va fi publicat conţinutul?';
-$lang['savedir']               = 'Director pentru salvarea datelor';
-$lang['basedir']               = 'Director bază';
-$lang['baseurl']               = 'URL bază ';
-$lang['cookiedir']             = 'Cale Cookie. Lăsați gol pentru a utiliza baseurl.';
-$lang['dmode']                 = 'Mod creare director';
-$lang['fmode']                 = 'Mod creare fiÅŸier';
-$lang['allowdebug']            = 'Permite depanarea <b>dezactivaţi dacă cu e necesar!</b>';
-$lang['recent']                = 'Modificări recente';
-$lang['recent_days']           = 'Câte modificări recente să se păstreze?';
-$lang['breadcrumbs']           = 'Numărul de "urme" lăsate';
-$lang['youarehere']            = 'Structura ierarhică a "urmelor" lăsate';
-$lang['fullpath']              = 'Arată calea completă a paginii în subsol';
-$lang['typography']            = 'Fă înlocuiri topografice';
-$lang['dformat']               = 'Format dată (vezi funcţia PHP <a href="http://php.net/strftime">strftime</a>)';
-$lang['signature']             = 'Semnătura';
-$lang['showuseras']            = 'Ce se afişează la indicarea utilizatorului care a editat ultimul o pagină';
-$lang['toptoclevel']           = 'Primul nivel pentru cuprins';
-$lang['tocminheads']           = 'Numărul minim de titluri ce determină dacă se alcătuieşte Tabelul de Cuprins (TOC)';
-$lang['maxtoclevel']           = 'Nivelul maxim pentru cuprins';
-$lang['maxseclevel']           = 'Nivelul maxim de editare al secţiunii';
-$lang['camelcase']             = 'Foloseşte CamelCase pentru legături';
-$lang['deaccent']              = 'numedepagină curate';
-$lang['useheading']            = 'FoloseÅŸte primul titlu pentru numele paginii';
-$lang['sneaky_index']          = 'Implicit, DokuWiki va arăta toate numele de spaţii la vizualizarea indexului. Activând această opţiune vor fi ascunse acelea la care utilizatorul nu are drepturi de citire. Aceasta poate determina ascunderea sub-numelor de spaţii accesibile. Aceasta poate face index-ul  inutilizabil cu anumite setări ale ACL';
-$lang['hidepages']             = 'Ascunde paginile pereche (expresii regulate)';
-$lang['useacl']                = 'Utilizează liste de control al accesului';
-$lang['autopasswd']            = 'Parole autogenerate';
-$lang['authtype']              = 'Autentificare backend';
-$lang['passcrypt']             = 'Metoda de criptare a parolei';
-$lang['defaultgroup']          = 'Grup implicit';
-$lang['superuser']             = 'Superuser - un grup sau un utilizator cu acces complet la toate paginile şi funcţiile indiferent de setările ACL';
-$lang['manager']               = 'Manager - un grup sau un utilizator cu acces la anumite funcţii de management';
-$lang['profileconfirm']        = 'Confirmă schimbarea profilului cu parola';
-$lang['rememberme']            = 'Permiteţi cookies permanente la login (ţine-mă minte)';
-$lang['disableactions']        = 'Dezactivează acţiunile DokuWiki';
-$lang['disableactions_check']  = 'Verifică';
-$lang['disableactions_subscription'] = 'Subscrie/Anulează subscrierea';
-$lang['disableactions_wikicode'] = 'Vizualizează sursa/Export Raw';
-$lang['disableactions_other']  = 'Alte acţiuni (separate prin virgulă)';
-$lang['auth_security_timeout'] = 'Timpul de expirare al Autentificării Securizate (secunde)';
-$lang['securecookie']          = 'Cookies-urile setate via HTTPS să fie trimise doar via HTTPS de către browser? Dezactivaţi această opţiune numai când login-ul wiki-ului este securizat cu SSL dar navigarea wiki-ului se realizează nesecurizat.';
-$lang['remote']                = 'Activează sistemul remote API. Acesta permite altor aplicații să acceseze wiki-ul via XML-RPC sau alte mecanisme.';
-$lang['remoteuser']            = 'Restricționează accesul sistemului remote API la grupurile sau utilizatorii următori (separați prin virgulă). Lăsați câmpul gol pentru a da acces către toți.';
-$lang['usewordblock']          = 'Blochează spam-ul pe baza listei de cuvinte';
-$lang['relnofollow']           = 'Folosiţi rel="nofollow" pentru legăturile externe';
-$lang['indexdelay']            = 'Timpul de întârziere înainte de indexare (sec)';
-$lang['mailguard']             = 'Adrese de email acoperite';
-$lang['iexssprotect']          = 'Verifică fişierele încărcate pentru posibil cod periculos JavaScript sau HTML';
-$lang['usedraft']              = 'Salvează automat o schiţă în timpul editării';
-$lang['htmlok']                = 'Permite intercalare cod HTML';
-$lang['phpok']                 = 'Permite intercalare cod PHP';
-$lang['locktime']              = 'Durata maximă pentru blocarea fişierelor (secunde)';
-$lang['cachetime']             = 'Durata maximă pentru cache (secunde)';
-$lang['target____wiki']        = 'Fereastra ţintă pentru legăturile interne';
-$lang['target____interwiki']   = 'Fereastra ţintă pentru legăturile interwiki';
-$lang['target____extern']      = 'Fereastra ţintă pentru legăturile externe';
-$lang['target____media']       = 'Fereastra ţintă pentru legăturile media';
-$lang['target____windows']     = 'Fereastra ţintă pentru legăturile windows';
-$lang['mediarevisions']        = 'Activare Revizii Media?';
-$lang['refcheck']              = 'Verificare referinţă media';
-$lang['gdlib']                 = 'Versiunea GD Lib';
-$lang['im_convert']            = 'Calea către instrumentul de conversie ImageMagick';
-$lang['jpg_quality']           = 'Calitatea compresiei JPG (0-100)';
-$lang['fetchsize']             = 'Dimensiunea maximă (byte) pe care fetch.php poate să descarce din exterior';
-$lang['subscribers']           = 'Activează suportul pentru subscrierea paginii';
-$lang['subscribe_time']        = 'Timpul după care lista de abonare şi digestie sunt trimise (sec); Aceasta ar trebui să fie mai mic decât timpul specificat în recent_days.';
-$lang['notify']                = 'Trimite notificări privind modificările pe această adresă de email';
-$lang['registernotify']        = 'Trimite informare noilor utilizatori înregistraţi pe această adresă de email';
-$lang['mailfrom']              = 'Adresa de email utilizată pentru mailuri automate';
-$lang['mailprefix']            = 'Prefix subiect e-mail de folosit pentru mail-uri automate';
-$lang['sitemap']               = 'Generează Google sitemap (zile)';
-$lang['rss_type']              = 'Tip flux XML';
-$lang['rss_linkto']            = 'Fluxul XML se leagă la';
-$lang['rss_content']           = 'Ce să afişez în obiectele fluxurilor XML';
-$lang['rss_update']            = 'Intervalul de actualizare a fluxului XML (sec)';
-$lang['rss_show_summary']      = 'Fluxul XML arată rezumat în titlu';
-$lang['rss_media']             = 'Ce fel de modificări ar trebui afișate în fluxul XML?';
-$lang['updatecheck']           = 'Verificare actualizări şi avertismente privind securitatea? DokuWiki trebuie să contacteze update.dokuwiki.org pentru această facilitate.';
-$lang['userewrite']            = 'Folosire URL-uri "nice"';
-$lang['useslash']              = 'Foloseşte slash-ul ca separator de spaţii de nume în URL-uri';
-$lang['sepchar']               = 'Separator cuvinte în numele paginii';
-$lang['canonical']             = 'FoloseÅŸte URL-uri canonice';
-$lang['fnencode']              = 'Metoda de encodare a numelor fiÅŸierelor non-ASCII.';
-$lang['autoplural']            = 'Verifică formele de plural în legături';
-$lang['compression']           = 'Metoda de criptare a fiÅŸierelor pod';
-$lang['gzip_output']           = 'Foloseşte gzip pentru codarea conţinutului xhtml';
-$lang['compress']              = 'Compactează codul CSS şi javascript produs';
-$lang['cssdatauri']            = 'Dimensiunea în octeți până la care imaginile regasite în fișierele CSS ar trebui să fie incluse direct în stylesheet pentru a reduce supraîncărcarea antetului cererii HTTP. Această tehnică nu va funcționa în IE < 8! <code>400</code> până la <code>600</code> octeți sunt suficienți. Introduceți <code>0</code> pentru a dezactiva această opțiune.';
-$lang['send404']               = 'Trimite mesajul "HTTP 404/Page Not Found" pentru paginile inexistente';
-$lang['broken_iua']            = 'Funcţia ignore_user_abort nu funcţionează pe sistemul dumneavoastră? Aceasta poate determina nefuncţionarea indexului de căutare. IIS+PHP/CGI sunt cunoscute ca fiind nefuncţionale. Mai multe detalii găsiţi la <a href="http://bugs.splitbrain.org/?do=details&amp;task_id=852">Bug 852</a>';
-$lang['xsendfile']             = 'Folosiţi header-ul X-Send pentru a-i permite serverului web să trimită fişiere statice? Serverul web trebuie să permită aceasta.';
-$lang['renderer_xhtml']        = 'Motorul de randare principal folosit pentru afişarea wiki în format xhtml';
-$lang['renderer__core']        = '%s (nucleu dokuwiki)';
-$lang['renderer__plugin']      = '%s (plugin)';
-$lang['proxy____host']         = 'Nume server Proxy';
-$lang['proxy____port']         = 'Port Proxy';
-$lang['proxy____user']         = 'Nume utilizator Proxy';
-$lang['proxy____pass']         = 'Parolă Proxy';
-$lang['proxy____ssl']          = 'FoloseÅŸte SSL pentru conectare la Proxy';
-$lang['proxy____except']       = 'Expresie regulară de potrivit cu URL-uri pentru care proxy-ul trebuie păsuit.';
-$lang['safemodehack']          = 'Activează safemode hack';
-$lang['ftp____host']           = 'Server FTP pentru safemode hack';
-$lang['ftp____port']           = 'Port FTP pentru safemode hack';
-$lang['ftp____user']           = 'Nume utilizator pentru safemode hack';
-$lang['ftp____pass']           = 'Parolă FTP pentru safemode hack';
-$lang['ftp____root']           = 'Director rădăcină FTP pentru safemode hack';
-$lang['license_o_']            = 'Nici una aleasă';
-$lang['typography_o_0']        = 'nimic';
-$lang['typography_o_1']        = 'Numai ghilimele duble';
-$lang['typography_o_2']        = 'Toate ghilimelele (s-ar putea să nu fucţioneze întotdeauna)';
-$lang['userewrite_o_0']        = 'nimic';
-$lang['userewrite_o_1']        = '.htaccess';
-$lang['userewrite_o_2']        = 'DokuWiki intern';
-$lang['deaccent_o_0']          = 'închis';
-$lang['deaccent_o_1']          = 'înlătură accentele';
-$lang['deaccent_o_2']          = 'romanizează';
-$lang['gdlib_o_0']             = 'biblioteca GD Lib nu este disponibilă';
-$lang['gdlib_o_1']             = 'Versiunea 1.x';
-$lang['gdlib_o_2']             = 'Detectare automată';
-$lang['rss_type_o_rss']        = 'RSS 0.91';
-$lang['rss_type_o_rss1']       = 'RSS 1.0';
-$lang['rss_type_o_rss2']       = 'RSS 2.0';
-$lang['rss_type_o_atom']       = 'Atom 0.3';
-$lang['rss_type_o_atom1']      = 'Atom 1.0';
-$lang['rss_content_o_abstract'] = 'Abstract';
-$lang['rss_content_o_diff']    = 'Diferenţe unificate';
-$lang['rss_content_o_htmldiff'] = 'Tabel diferenţe în format HTML';
-$lang['rss_content_o_html']    = 'Conţinut pagină complet HTML';
-$lang['rss_linkto_o_diff']     = 'vizualizare diferenţe';
-$lang['rss_linkto_o_page']     = 'pagina revizuită';
-$lang['rss_linkto_o_rev']      = 'lista revizuirilor';
-$lang['rss_linkto_o_current']  = 'pagina curentă';
-$lang['compression_o_0']       = 'nici una';
-$lang['compression_o_gz']      = 'gzip';
-$lang['compression_o_bz2']     = 'bz2';
-$lang['xsendfile_o_0']         = 'nu se foloseÅŸte';
-$lang['xsendfile_o_1']         = 'Header proprietar lighttpd (înaintea versiunii 1.5)';
-$lang['xsendfile_o_2']         = 'Header standard X-Sendfile';
-$lang['xsendfile_o_3']         = 'Header proprietar Nginx X-Accel-Redirect';
-$lang['showuseras_o_loginname'] = 'Numele de login';
-$lang['showuseras_o_username'] = 'Numele complet al utilizatorului';
-$lang['showuseras_o_email']    = 'Adresa de e-mail a utilizatorului (mascată conform setărilor de protecţie)';
-$lang['showuseras_o_email_link'] = 'Adresa de e-mail a utilizatorului ca mailto: link';
-$lang['useheading_o_0']        = 'Niciodată';
-$lang['useheading_o_navigation'] = 'Doar navigare';
-$lang['useheading_o_content']  = 'Doar conţinutul Wiki';
-$lang['useheading_o_1']        = 'ÃŽntotdeauna';
-$lang['readdircache']          = 'Vârsta maximă depozitare readdir (sec)';
diff --git a/wiki/lib/plugins/config/lang/ru/intro.txt b/wiki/lib/plugins/config/lang/ru/intro.txt
deleted file mode 100644
index 2b4fe3d..0000000
--- a/wiki/lib/plugins/config/lang/ru/intro.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-====== ÐаÑтройки вики ======
-
-ЗдеÑÑŒ вы можете изменить наÑтройки Ñвоей «Докувики». Ð”Ð»Ñ Ñправки по конкретным опциÑм Ñмотрите [[doku>config|Конфигурирование «Докувики»]]. Дополнительные детали об Ñтом плагине доÑтупны здеÑÑŒ: [[doku>plugin:config]].
-
-ÐаÑтройки, отображаемые на Ñветло-краÑном фоне, защищены от изменений и не могут быть отредактированы Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ Ñтого плагина.  Голубым фоном отмечены наÑтройки Ñо значениÑми по умолчанию, а белым фоном — наÑтройки, которые были локально изменены Ð´Ð»Ñ Ñтой конкретной «Докувики». Как голубые, так и белые наÑтройки доÑтупны Ð´Ð»Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ.
-
-Ðе забудьте нажать кнопку «**Сохранить**» перед тем, как покинуть Ñту Ñтраницу, иначе вÑе ваши Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð±ÑƒÐ´ÑƒÑ‚ потерÑны.
diff --git a/wiki/lib/plugins/config/lang/ru/lang.php b/wiki/lib/plugins/config/lang/ru/lang.php
deleted file mode 100644
index 3d6914d..0000000
--- a/wiki/lib/plugins/config/lang/ru/lang.php
+++ /dev/null
@@ -1,222 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Yuriy Skalko <yuriy.skalko@gmail.com>
- * @author Zhassulan <zyesmukanov@gmail.com>
- * @author Denis Simakov <akinoame1@gmail.com>
- * @author Andrew Pleshakov <beotiger@mail.ru>
- * @author Змей ЭтерийÑкий <evil_snake@eternion.ru>
- * @author Hikaru Nakajima <jisatsu@mail.ru>
- * @author Alexei Tereschenko <alexeitlex@yahoo.com>
- * @author Alexander Sorkin <kibizoid@gmail.com>
- * @author Kirill Krasnov <krasnovforum@gmail.com>
- * @author Vlad Tsybenko <vlad.development@gmail.com>
- * @author Aleksey Osadchiy <rfc@nm.ru>
- * @author Aleksandr Selivanov <alexgearbox@gmail.com>
- * @author Ladyko Andrey <fylh@succexy.spb.ru>
- * @author Eugene <windy.wanderer@gmail.com>
- * @author Johnny Utah <pcpa@cyberpunk.su>
- * @author RainbowSpike <1@2.ru>
- * @author alexey <xeenych@gmail.com>
- */
-$lang['menu']                  = 'ÐаÑтройки вики';
-$lang['error']                 = 'ÐаÑтройки не были Ñохранены из-за ошибки в одном из значений. ПожалуйÑта, проверьте Ñвои Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¸ попробуйте ещё раз.<br />Ðеправильные Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð±ÑƒÐ´ÑƒÑ‚ обведены краÑной рамкой.';
-$lang['updated']               = 'ÐаÑтройки уÑпешно Ñохранены.';
-$lang['nochoice']              = '(нет других вариантов)';
-$lang['locked']                = 'Файл наÑтройки недоÑтупен Ð´Ð»Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ. ЕÑли Ñто не Ñпециально, <br />убедитеÑÑŒ, что файл локальной наÑтройки имеет правильное Ð¸Ð¼Ñ Ð¸ права доÑтупа.';
-$lang['danger']                = 'Внимание: изменение Ñтой опции может Ñделать вашу вики и меню конфигурации недоÑтупными.';
-$lang['warning']               = 'ПредоÑтережение: изменение Ñтой опции может вызвать непредÑказуемое поведение.';
-$lang['security']              = 'ПредоÑтережение по безопаÑноÑти: изменение Ñтой опции может вызвать риÑк, ÑвÑзанный Ñ Ð±ÐµÐ·Ð¾Ð¿Ð°ÑноÑтью.';
-$lang['_configuration_manager'] = 'ÐаÑтройки вики';
-$lang['_header_dokuwiki']      = 'Параметры «Докувики»';
-$lang['_header_plugin']        = 'Параметры плагинов';
-$lang['_header_template']      = 'Параметры шаблонов';
-$lang['_header_undefined']     = 'Прочие параметры';
-$lang['_basic']                = 'ОÑновные параметры';
-$lang['_display']              = 'Параметры отображениÑ';
-$lang['_authentication']       = 'Параметры аутентификации';
-$lang['_anti_spam']            = 'Параметры блокировки Ñпама';
-$lang['_editing']              = 'Параметры правки';
-$lang['_links']                = 'Параметры ÑÑылок';
-$lang['_media']                = 'Параметры медиафайлов';
-$lang['_notifications']        = 'Параметры уведомлений';
-$lang['_syndication']          = 'Параметры Ñиндикаций (RSS)';
-$lang['_advanced']             = 'Ð¢Ð¾Ð½ÐºÐ°Ñ Ð½Ð°Ñтройка';
-$lang['_network']              = 'Параметры Ñети';
-$lang['_msg_setting_undefined'] = 'Ðе найдены метаданные наÑтроек.';
-$lang['_msg_setting_no_class'] = 'Ðе найден клаÑÑ Ð½Ð°Ñтроек.';
-$lang['_msg_setting_no_default'] = 'Ðе задано значение по умолчанию.';
-$lang['title']                 = 'Ðазвание вики';
-$lang['start']                 = 'Ð˜Ð¼Ñ Ñтартовой Ñтраницы';
-$lang['lang']                  = 'Язык';
-$lang['template']              = 'Шаблон';
-$lang['tagline']               = 'Слоган (еÑли поддерживаетÑÑ ÑˆÐ°Ð±Ð»Ð¾Ð½Ð¾Ð¼)';
-$lang['sidebar']               = 'Ð‘Ð¾ÐºÐ¾Ð²Ð°Ñ Ð¿Ð°Ð½ÐµÐ»ÑŒ; пуÑтое поле отключает боковую панель.';
-$lang['license']               = 'Ðа уÑловиÑÑ… какой лицензии будет предоÑтавлÑтьÑÑ Ñодержимое вики?';
-$lang['savedir']               = 'Ð”Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð´Ð»Ñ Ð´Ð°Ð½Ð½Ñ‹Ñ…';
-$lang['basedir']               = 'ÐšÐ¾Ñ€Ð½ÐµÐ²Ð°Ñ Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ (например, <code>/dokuwiki/</code>). ОÑтавьте пуÑтым Ð´Ð»Ñ Ð°Ð²Ñ‚Ð¾Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ.';
-$lang['baseurl']               = 'Корневой Ð°Ð´Ñ€ÐµÑ (URL) (например, <code>http://www.yourserver.ru</code>). ОÑтавьте пуÑтым Ð´Ð»Ñ Ð°Ð²Ñ‚Ð¾Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ.';
-$lang['cookiedir']             = 'Ð”Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð´Ð»Ñ cookie. ОÑтавьте пуÑтым Ð´Ð»Ñ Ð°Ð²Ñ‚Ð¾Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ.';
-$lang['dmode']                 = 'Права Ð´Ð»Ñ Ñоздаваемых директорий';
-$lang['fmode']                 = 'Права Ð´Ð»Ñ Ñоздаваемых файлов';
-$lang['allowdebug']            = 'Включить отладку. <b>Отключите, еÑли она вам не нужна!</b>';
-$lang['recent']                = 'Ðедавние Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ (кол-во)';
-$lang['recent_days']           = 'Ðа Ñколько дней назад ÑохранÑть недавние изменениÑ';
-$lang['breadcrumbs']           = 'Ð’Ñ‹ поÑетили (кол-во). ПоÑтавьте 0 (ноль) Ð´Ð»Ñ Ð¾Ñ‚ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ.';
-$lang['youarehere']            = 'Показывать «Вы находитеÑÑŒ здеÑь»';
-$lang['fullpath']              = 'Полный путь к документу';
-$lang['typography']            = 'ВыполнÑть замену на типографÑкие Ñимволы';
-$lang['dformat']               = 'Формат даты и времени (Ñм. функцию PHP <a href="http://php.net/strftime">strftime</a>)';
-$lang['signature']             = 'Шаблон подпиÑи';
-$lang['showuseras']            = 'Что отображать при показе пользователÑ, редактировавшего Ñтраницу поÑледним';
-$lang['toptoclevel']           = 'Мин. уровень в Ñодержании';
-$lang['tocminheads']           = 'Мин. количеÑтво заголовков, при котором будет ÑоÑтавлено Ñодержание';
-$lang['maxtoclevel']           = 'МакÑ. уровень в Ñодержании';
-$lang['maxseclevel']           = 'МакÑ. уровень Ð´Ð»Ñ Ð¿Ñ€Ð°Ð²ÐºÐ¸';
-$lang['camelcase']             = 'ИÑпользовать ВикиРегиÑтр Ð´Ð»Ñ ÑÑылок';
-$lang['deaccent']              = 'ТранÑÐ»Ð¸Ñ‚ÐµÑ€Ð°Ñ†Ð¸Ñ Ð² именах Ñтраниц';
-$lang['useheading']            = 'Первый заголовок вмеÑто имени Ñтраницы';
-$lang['sneaky_index']          = 'По умолчанию, «Докувики» показывает в индекÑе Ñтраниц вÑе проÑтранÑтва имён. Включение Ñтой опции Ñкроет проÑтранÑтва имён, Ð´Ð»Ñ ÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ñ… пользователь не имеет прав чтениÑ. Это может привеÑти к Ñкрытию доÑтупных вложенных проÑтранÑтв имён и потере функциональноÑти индекÑа Ñтраниц при некоторых конфигурациÑÑ… прав доÑтупа.';
-$lang['hidepages']             = 'Скрыть Ñтраницы (регулÑрное выражение)';
-$lang['useacl']                = 'ИÑпользовать ÑпиÑки прав доÑтупа';
-$lang['autopasswd']            = 'ÐÐ²Ñ‚Ð¾Ð³ÐµÐ½ÐµÑ€Ð°Ñ†Ð¸Ñ Ð¿Ð°Ñ€Ð¾Ð»ÐµÐ¹';
-$lang['authtype']              = 'Механизм аутентификации';
-$lang['passcrypt']             = 'Метод ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¿Ð°Ñ€Ð¾Ð»Ñ';
-$lang['defaultgroup']          = 'Группа по умолчанию. Ð’Ñе новые пользователю будут добавлÑтьÑÑ Ð²Â Ñту группу.';
-$lang['superuser']             = 'Суперпользователь — группа или пользователь Ñ Ð¿Ð¾Ð»Ð½Ñ‹Ð¼ доÑтупом ко вÑем Ñтраницам и функциÑм админиÑтрированиÑ, незавиÑимо от уÑтановок ÑпиÑков прав доÑтупа. Перечень разделÑйте запÑтыми: user1,@group1,user2';
-$lang['manager']               = 'Менеджер — группа или пользователь Ñ Ð´Ð¾Ñтупом к определённым функциÑм управлениÑ. Перечень разделÑйте запÑтыми: user1,@group1,user2';
-$lang['profileconfirm']        = 'Пароль Ð´Ð»Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¾Ñ„Ð¸Ð»Ñ';
-$lang['rememberme']            = 'Разрешить перманентные куки (cookies) Ð´Ð»Ñ Ð²Ñ…Ð¾Ð´Ð° («запомнить менÑ»)';
-$lang['disableactions']        = 'Заблокировать операции «Докувики»';
-$lang['disableactions_check']  = 'Проверка';
-$lang['disableactions_subscription'] = 'ПодпиÑка/Отмена подпиÑки';
-$lang['disableactions_wikicode'] = 'Показ/ÑкÑпорт иÑходного текÑта';
-$lang['disableactions_profile_delete'] = 'Удалить Ñвой аккаунт';
-$lang['disableactions_other']  = 'Другие операции (через запÑтую)';
-$lang['disableactions_rss']    = 'XML-ÑÐ¸Ð½Ð´Ð¸ÐºÐ°Ñ†Ð¸Ñ (RSS)';
-$lang['auth_security_timeout'] = 'Интервал Ð´Ð»Ñ Ð±ÐµÐ·Ð¾Ð¿Ð°ÑноÑти авторизации (Ñек.)';
-$lang['securecookie']          = 'Должны ли куки (cookies), выÑтавленные через HTTPS, отправлÑтьÑÑ Ð±Ñ€Ð°ÑƒÐ·ÐµÑ€Ð¾Ð¼ только через HTTPS. Отключите Ñту опцию в Ñлучае, когда только логин вашей вики передаётÑÑ Ñ‡ÐµÑ€ÐµÐ· SSL, а обычный проÑмотр оÑущеÑтвлÑетÑÑ Ð² небезопаÑном режиме.';
-$lang['remote']                = 'Включить ÑиÑтему API Ð´Ð»Ñ Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ð¹. Это позволит другим приложениÑм получить доÑтуп к вики через XML-RPC или другие механизмы.';
-$lang['remoteuser']            = 'Дать права Ð´Ð»Ñ ÑƒÐ´Ð°Ð»Ñ‘Ð½Ð½Ð¾Ð³Ð¾ API-доÑтупа пользователÑм, указанным здеÑÑŒ (разделÑйте запÑтыми). ОÑтавьте поле пуÑтым Ð´Ð»Ñ Ð¿Ñ€ÐµÐ´Ð¾ÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð´Ð¾Ñтупа вÑем.';
-$lang['usewordblock']          = 'Блокировать Ñпам по ключевым Ñловам';
-$lang['relnofollow']           = 'ИÑпользовать rel="nofollow" Ð´Ð»Ñ Ð²Ð½ÐµÑˆÐ½Ð¸Ñ… ÑÑылок';
-$lang['indexdelay']            = 'Задержка перед индекÑированием (Ñек.)';
-$lang['mailguard']             = 'Кодировать адреÑа Ñлектронной почты';
-$lang['iexssprotect']          = 'ПроверÑть закачанные файлы на наличие потенциально опаÑного кода JavaScript или HTML';
-$lang['usedraft']              = 'ÐвтоматичеÑки ÑохранÑть черновик во Ð²Ñ€ÐµÐ¼Ñ Ð¿Ñ€Ð°Ð²ÐºÐ¸';
-$lang['htmlok']                = 'Разрешить HTML';
-$lang['phpok']                 = 'Разрешить PHP';
-$lang['locktime']              = 'Ð’Ñ€ÐµÐ¼Ñ Ð±Ð»Ð¾ÐºÐ¸Ñ€Ð¾Ð²ÐºÐ¸ Ñтраницы (Ñек.)';
-$lang['cachetime']             = 'Ð’Ñ€ÐµÐ¼Ñ Ð¶Ð¸Ð·Ð½Ð¸ кÑш-файла (Ñек.)';
-$lang['target____wiki']        = 'target Ð´Ð»Ñ Ð²Ð½ÑƒÑ‚Ñ€ÐµÐ½Ð½Ð¸Ñ… ÑÑылок';
-$lang['target____interwiki']   = 'target Ð´Ð»Ñ ÑÑылок между вики';
-$lang['target____extern']      = 'target Ð´Ð»Ñ Ð²Ð½ÐµÑˆÐ½Ð¸Ñ… ÑÑылок';
-$lang['target____media']       = 'target Ð´Ð»Ñ ÑÑылок на медиафайлы';
-$lang['target____windows']     = 'target Ð´Ð»Ñ ÑÑылок на Ñетевые каталоги';
-$lang['mediarevisions']        = 'Включение верÑий медиафайлов';
-$lang['refcheck']              = 'ПроверÑть ÑÑылки на медиафайлы';
-$lang['gdlib']                 = 'ВерÑÐ¸Ñ LibGD';
-$lang['im_convert']            = 'Путь к ImageMagick';
-$lang['jpg_quality']           = 'КачеÑтво ÑÐ¶Ð°Ñ‚Ð¸Ñ JPG (0–100). Значение по умолчанию — 70.';
-$lang['fetchsize']             = 'МакÑимальный размер файла (в байтах), который fetch.php может Ñкачивать Ñ Ð²Ð½ÐµÑˆÐ½ÐµÐ³Ð¾ иÑточника';
-$lang['subscribers']           = 'Разрешить подпиÑку на изменениÑ';
-$lang['subscribe_time']        = 'Интервал раÑÑылки подпиÑок и Ñводок (Ñек.). Должен быть меньше, чем значение, указанное в recent_days.';
-$lang['notify']                = 'Ð’Ñегда отправлÑть ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð¾Ð±Â Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸ÑÑ… на Ñтот Ñлектронный адреÑ';
-$lang['registernotify']        = 'Ð’Ñегода отправлÑть информацию о новых зарегиÑтрированных пользователÑÑ… на Ñтот Ñлектронный адреÑ';
-$lang['mailfrom']              = 'Электронный Ð°Ð´Ñ€ÐµÑ Ð²Ð¸ÐºÐ¸ (От:)';
-$lang['mailreturnpath']        = 'ÐÐ´Ñ€ÐµÑ Ñлектронной почты Ð´Ð»Ñ Ð´Ð¾Ñтавки отчета о недоÑтавленных Ñообщений';
-$lang['mailprefix']            = 'ПрефикÑ, иÑпользуемый Ð´Ð»Ñ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡ÐµÑкого пиÑьма, Ñтанет темой ÑообщениÑ. ОÑтавьте поле пуÑтым Ð´Ð»Ñ Ð¸ÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ñ Ð²Ð¸ÐºÐ¸.';
-$lang['htmlmail']              = 'ОтправлÑть краÑивые, но более крупные HTML-пиÑьма. Отключите Ð´Ð»Ñ Ð¾Ñ‚Ð¿Ñ€Ð°Ð²ÐºÐ¸ проÑтых текÑтовых пиÑем.';
-$lang['sitemap']               = 'ЧиÑло дней, через которое нужно Ñоздавать (обновлÑть) карту Ñайта Ð´Ð»Ñ Ð¿Ð¾Ð¸Ñковиков (Гугл, Ð¯Ð½Ð´ÐµÐºÑ Ð¸ др.). Укажите 0 (ноль) Ð´Ð»Ñ Ð¾Ñ‚ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ.';
-$lang['rss_type']              = 'Тип XML-ленты';
-$lang['rss_linkto']            = 'СÑылки в XML-ленте указывают на';
-$lang['rss_content']           = 'Что показывать в XML-ленте?';
-$lang['rss_update']            = 'Интервал Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ XML-ленты (Ñек.)';
-$lang['rss_show_summary']      = 'Показывать краткую выдержку в заголовках XML-ленты';
-$lang['rss_media']             = 'Какие Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð´Ð¾Ð»Ð¶Ð½Ñ‹ быть отображены в XML-ленте?';
-$lang['rss_media_o_both']      = 'оба';
-$lang['rss_media_o_pages']     = 'Ñтраницы';
-$lang['rss_media_o_media']     = 'медиа';
-$lang['updatecheck']           = 'ПроверÑть наличие обновлений и предупреждений о безопаÑноÑти? Ð”Ð»Ñ Ñтого «Докувики» потребуетÑÑ ÑвÑзыватьÑÑ Ñ update.dokuwiki.org.';
-$lang['userewrite']            = 'Удобочитаемые адреÑа (URL)';
-$lang['useslash']              = 'ИÑпользовать ÑлÑш разделителем проÑтранÑтв имён в URL';
-$lang['sepchar']               = 'Разделитель Ñлов в имени Ñтраницы';
-$lang['canonical']             = 'Полные каноничеÑкие адреÑа (URL)';
-$lang['fnencode']              = 'Метод ÐºÐ¾Ð´Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸Ð¼Ñ‘Ð½ файлов, запиÑанных не ASCII-Ñимволами.';
-$lang['autoplural']            = 'ПроверÑть можеÑтвенную форму имени Ñтраницы в ÑÑылках';
-$lang['compression']           = 'Метод ÑÐ¶Ð°Ñ‚Ð¸Ñ Ð´Ð»Ñ Ð°Ñ€Ñ…Ð¸Ð²Ð½Ñ‹Ñ… файлов';
-$lang['gzip_output']           = 'ИÑпользовать gzip-Ñжатие Ð´Ð»Ñ xhtml (Content-Encoding)';
-$lang['compress']              = 'Сжимать файлы CSS и javascript';
-$lang['cssdatauri']            = 'Размер в байтах, до которого изображениÑ, указанные в CSS-файлах, должны быть вÑтроены прÑмо в таблицу Ñтилей, Ð´Ð»Ñ ÑƒÐ¼ÐµÐ½ÑŒÑˆÐµÐ½Ð¸Ñ Ð¸Ð·Ð±Ñ‹Ñ‚Ð¾Ñ‡Ð½Ñ‹Ñ… HTTP-запроÑов. Этот метод не будет работать в IE верÑии 7 и ниже! УÑтановка от <code>400</code> до <code>600</code> байт ÑвлÑетÑÑ Ñ…Ð¾Ñ€Ð¾ÑˆÐ¸Ð¼ показателем. УÑтановите <code>0</code>, чтобы отключить.';
-$lang['send404']               = 'ПоÑылать «HTTP 404/Страница не найдена» Ð´Ð»Ñ Ð½ÐµÑущеÑтвующих Ñтраниц';
-$lang['broken_iua']            = 'Возможно, Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ ignore_user_abort не работает в вашей ÑиÑтеме? Это может привеÑти к потере функциональноÑти индекÑÐ¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¿Ð¾Ð¸Ñка. Эта проблема приÑутÑтвует, например, в IIS+PHP/CGI. Ð”Ð»Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð¾Ð¹ информации Ñмотрите <a href="http://bugs.splitbrain.org/?do=details&amp;task_id=852">баг 852</a>.';
-$lang['xsendfile']             = 'ИÑпользуете заголовок X-Sendfile Ð´Ð»Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ¸ файлов на веб-Ñервер? Ваш веб-Ñервер должен поддерживать Ñто.';
-$lang['renderer_xhtml']        = 'Обработчик оÑновного (xhtml) вывода вики';
-$lang['renderer__core']        = '%s (Ñдро «Докувики»)';
-$lang['renderer__plugin']      = '%s (плагин)';
-$lang['search_fragment_o_exact'] = 'точно';
-$lang['search_fragment_o_starts_with'] = 'начинаетÑÑ Ð½Ð°';
-$lang['search_fragment_o_ends_with'] = 'заканчиваетÑÑ';
-$lang['search_fragment_o_contains'] = 'Ñодержит';
-$lang['dnslookups']            = '«Докувики» ищет DNS-имена пользователей, редактирующих Ñтраницы. ЕÑли у Ð²Ð°Ñ Ð½ÐµÑ‚ DNS-Ñервера или он работает медленно, рекомендуем отключить Ñту опцию.';
-$lang['jquerycdn']             = 'ТребуетÑÑ Ð»Ð¸ загрузка jQuery-Ñкриптов (Ð²ÐºÐ»ÑŽÑ‡Ð°Ñ jQuery UI-Ñкрипты) из CDN Ñети? Ð”Ð°Ð½Ð½Ð°Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ ÑƒÐ²ÐµÐ»Ð¸Ñ‡Ð¸Ð²Ð°ÐµÑ‚ количеÑтво HTTP запроÑов, но загрузка файлов будет проходить быÑтрее и пользователи Ñмогут кÑшировать запроÑÑ‹.';
-$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-Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ';
-$lang['proxy____pass']         = 'proxy-пароль';
-$lang['proxy____ssl']          = 'ИÑпользовать SSL Ð´Ð»Ñ ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ñ Ð¿Ñ€Ð¾ÐºÑи';
-$lang['proxy____except']       = 'РегулÑрное выражение Ð´Ð»Ñ Ð°Ð´Ñ€ÐµÑов (URL), Ð´Ð»Ñ ÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ñ… прокÑи должен быть пропущен.';
-$lang['safemodehack']          = 'Включить обход safemode (хак)';
-$lang['ftp____host']           = 'ftp-адреÑ';
-$lang['ftp____port']           = 'ftp-порт';
-$lang['ftp____user']           = 'ftp-Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ';
-$lang['ftp____pass']           = 'ftp-пароль';
-$lang['ftp____root']           = 'ftp-ÐºÐ¾Ñ€Ð½ÐµÐ²Ð°Ñ Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ';
-$lang['license_o_']            = 'Ðе выбрано';
-$lang['typography_o_0']        = 'нет';
-$lang['typography_o_1']        = 'только двойные кавычки';
-$lang['typography_o_2']        = 'вÑе кавычки (может не вÑегда работать)';
-$lang['userewrite_o_0']        = '(нет)';
-$lang['userewrite_o_1']        = '.htaccess';
-$lang['userewrite_o_2']        = 'ÑредÑтвами «Докувики»';
-$lang['deaccent_o_0']          = 'отключить';
-$lang['deaccent_o_1']          = 'убирать только диакр. знаки';
-$lang['deaccent_o_2']          = 'Ð¿Ð¾Ð»Ð½Ð°Ñ Ñ‚Ñ€Ð°Ð½ÑлитерациÑ';
-$lang['gdlib_o_0']             = 'GD Lib недоÑтупна';
-$lang['gdlib_o_1']             = 'верÑÐ¸Ñ 1.x';
-$lang['gdlib_o_2']             = 'автоопределение';
-$lang['rss_type_o_rss']        = 'RSS 0.91';
-$lang['rss_type_o_rss1']       = 'RSS 1.0';
-$lang['rss_type_o_rss2']       = 'RSS 2.0';
-$lang['rss_type_o_atom']       = 'Atom 0.3';
-$lang['rss_type_o_atom1']      = 'Atom 1.0';
-$lang['rss_content_o_abstract'] = 'абÑтрактный';
-$lang['rss_content_o_diff']    = 'объединённый diff';
-$lang['rss_content_o_htmldiff'] = 'HTML-Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð½Ð°Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ð° diff';
-$lang['rss_content_o_html']    = 'полное Ñодержимое HTML-Ñтраницы';
-$lang['rss_linkto_o_diff']     = 'Ð¾Ñ‚Ð»Ð¸Ñ‡Ð¸Ñ Ð¾Ñ‚ текущей';
-$lang['rss_linkto_o_page']     = 'текÑÑ‚ Ñтраницы';
-$lang['rss_linkto_o_rev']      = 'иÑÑ‚Ð¾Ñ€Ð¸Ñ Ð¿Ñ€Ð°Ð²Ð¾Ðº';
-$lang['rss_linkto_o_current']  = 'Ñ‚ÐµÐºÑƒÑ‰Ð°Ñ Ð²ÐµÑ€ÑиÑ';
-$lang['compression_o_0']       = 'без ÑжатиÑ';
-$lang['compression_o_gz']      = 'gzip';
-$lang['compression_o_bz2']     = 'bz2';
-$lang['xsendfile_o_0']         = 'не иÑпользуетÑÑ';
-$lang['xsendfile_o_1']         = 'Проприетарный lighttpd-заголовок (до релиза 1.5)';
-$lang['xsendfile_o_2']         = 'Стандартный заголовок X-Sendfile';
-$lang['xsendfile_o_3']         = 'Проприетарный заголовок Nginx X-Accel-Redirect';
-$lang['showuseras_o_loginname'] = 'логин';
-$lang['showuseras_o_username'] = 'полное Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ';
-$lang['showuseras_o_username_link'] = 'полное Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ ÐºÐ°Ðº интервики-ÑÑылка';
-$lang['showuseras_o_email']    = 'Ð°Ð´Ñ€ÐµÑ Ñл. почты в шифрованном виде (Ñм. mailguard)';
-$lang['showuseras_o_email_link'] = 'Ð°Ð´Ñ€ÐµÑ Ñл. почты в виде ÑÑылки mailto:';
-$lang['useheading_o_0']        = 'никогда';
-$lang['useheading_o_navigation'] = 'только в навигации';
-$lang['useheading_o_content']  = 'только в Ñодержимом вики';
-$lang['useheading_o_1']        = 'вÑегда';
-$lang['readdircache']          = 'МакÑимальное Ð²Ñ€ÐµÐ¼Ñ Ð¶Ð¸Ð·Ð½Ð¸ кÑша readdir (Ñек.)';
diff --git a/wiki/lib/plugins/config/lang/sk/intro.txt b/wiki/lib/plugins/config/lang/sk/intro.txt
deleted file mode 100644
index a3d15bf..0000000
--- a/wiki/lib/plugins/config/lang/sk/intro.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-====== Správa konfigurácie ======
-
-Túto stránku môžete používať na zmenu nastavení Vašej DokuWiki inštalácie. Popis jednotlivých nastavení je uvedený v [[doku>config]]. Viac detailov o tomto plugine nájdete v [[doku>plugin:config]].
-
-Nastavenia zobrazené na Äervenom pozadí sú neprístupné a nemôžu byÅ¥ týmto pluginom zmenené. Nastavenia s modrým pozadím obsahujú prednastavené hodnoty a nastavenia s bielym pozadím boli nastavené lokálne pre túto konkrétnu inÅ¡taláciu. Nastavenia s modrým a bielym pozadím môžu byÅ¥ zmenené.
-
-Nezabudnite stlaÄiÅ¥ tlaÄidlo **UložiÅ¥** pred opustením stránky, inak budú vaÅ¡e zmeny stratené.
diff --git a/wiki/lib/plugins/config/lang/sk/lang.php b/wiki/lib/plugins/config/lang/sk/lang.php
deleted file mode 100644
index 79054aa..0000000
--- a/wiki/lib/plugins/config/lang/sk/lang.php
+++ /dev/null
@@ -1,198 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Martin Michalek <michalek.dev@gmail.com>
- * @author Michal Mesko <michal.mesko@gmail.com>
- * @author exusik <exusik@gmail.com>
- */
-$lang['menu']                  = 'Nastavenia konfigurácie';
-$lang['error']                 = 'Nastavenia neboli aktualizované kvôli neplatnej hodnote, prosím skontrolujte vaÅ¡e zmeny a znovu ich poÅ¡lite. <br />Nesprávna hodnota(y) bude ohraniÄená Äerveným okrajom.';
-$lang['updated']               = 'Nastavenia úspešne aktualizované.';
-$lang['nochoice']              = '(žiadne ÄalÅ¡ie dostupné voľby)';
-$lang['locked']                = 'Súbor s nastaveniami nemôže byť aktualizovaný, ak toto nie je zámerom, <br />
-uistite sa, že názov a práva lokálneho súboru sú správne.';
-$lang['danger']                = 'NebezpeÄie: Zmeny tohto nastavenia môžu spôsobiÅ¥ nedostupnosÅ¥ wiki a nastavovacieho menu.';
-$lang['warning']               = 'Varovanie: Zmena tohto nastavenia môže viesť neželanému správaniu.';
-$lang['security']              = 'BezpeÄnostné riziko: Zmenou tohto nastavenie môže vzniknúť bezpeÄnostné riziko.';
-$lang['_configuration_manager'] = 'Správa konfigurácie';
-$lang['_header_dokuwiki']      = 'Nastavenia DokuWiki';
-$lang['_header_plugin']        = 'Nastavenia plug-inov';
-$lang['_header_template']      = 'Nastavenia šablóny';
-$lang['_header_undefined']     = 'Nešpecifikované nastavenia';
-$lang['_basic']                = 'Základné nastavenia';
-$lang['_display']              = 'Nastavenia zobrazovania';
-$lang['_authentication']       = 'Nastavenia zabezpeÄenia';
-$lang['_anti_spam']            = 'Nastavenia anti-spamu';
-$lang['_editing']              = 'Nastavenia úprav';
-$lang['_links']                = 'Nastavenia odkazov';
-$lang['_media']                = 'Nastavenia médií';
-$lang['_notifications']        = 'Nastavenie upozornení';
-$lang['_syndication']          = 'Nastavenie poskytovania obsahu';
-$lang['_advanced']             = 'Rozšírené nastavenia';
-$lang['_network']              = 'Nastavenia siete';
-$lang['_msg_setting_undefined'] = 'Nenastavené metadata.';
-$lang['_msg_setting_no_class'] = 'Nenastavená trieda.';
-$lang['_msg_setting_no_default'] = 'Žiadna predvolená hodnota.';
-$lang['title']                 = 'Názov wiki';
-$lang['start']                 = 'Názov štartovacej stránky';
-$lang['lang']                  = 'Jazyk';
-$lang['template']              = 'Šablóna';
-$lang['tagline']               = 'Slogan (ak ho šablóna podporuje)';
-$lang['sidebar']               = 'Meno boÄného panela (ak ho Å¡ablóna podporuje), prázdne pole deaktivuje boÄný panel';
-$lang['license']               = 'Pod ktorou licenciou bude publikovaný obsah stránky?';
-$lang['savedir']               = 'Adresár pre ukladanie dát';
-$lang['basedir']               = 'Hlavný adresár (napr. <code>/dokuwiki/</code>). Prázdna hodnota znamená použitie autodetekcie.';
-$lang['baseurl']               = 'Adresa servera (napr. <code>http://www.yourserver.com</code>). Prázdna hodnota znamená použitie autodetekcie.';
-$lang['cookiedir']             = 'Cesta k cookies. Prázdna hodnota znamená použitie adresy servera.';
-$lang['dmode']                 = 'Spôsob vytvárania adresárov';
-$lang['fmode']                 = 'Spôsob vytvárania súborov';
-$lang['allowdebug']            = 'Povoliť ladenie chýb <b>deaktivujte, ak nie je potrebné!</b>';
-$lang['recent']                = 'Posledné zmeny';
-$lang['recent_days']           = 'Koľko posledných zmien uchovávať (dni)';
-$lang['breadcrumbs']           = 'PoÄet záznamov histórie';
-$lang['youarehere']            = 'Nachádzate sa';
-$lang['fullpath']              = 'ZobrazovaÅ¥ plnú cestu k stránkam v pätiÄke';
-$lang['typography']            = 'Vykonať typografické zmeny';
-$lang['dformat']               = 'Formát dátumu (pozri funkciu PHP <a href="http://php.net/strftime">strftime</a>)';
-$lang['signature']             = 'Podpis';
-$lang['showuseras']            = 'Čo použiť pri zobrazení používateľa, ktorý posledný upravoval stránku';
-$lang['toptoclevel']           = 'Najvyššia úroveň pre generovanie obsahu.';
-$lang['tocminheads']           = 'Minimálny poÄet nadpisov pre generovanie obsahu';
-$lang['maxtoclevel']           = 'Maximálna úroveň pre generovanie obsahu.';
-$lang['maxseclevel']           = 'Maximálna úroveň sekcie pre editáciu';
-$lang['camelcase']             = 'Použiť CamelCase pre odkazy';
-$lang['deaccent']              = 'Upraviť názvy stránok';
-$lang['useheading']            = 'Použiť nadpis pre názov stránky';
-$lang['sneaky_index']          = 'DokuWiki implicitne ukazuje v indexe vÅ¡etky menné priestory. Povolením tejto voľby sa nezobrazia menné priestory, ku ktorým nemá používateľ právo na Äítanie. Dôsledkom môže byÅ¥ nezobrazenie vnorených prístupných menných priestorov. Táto voľba môže maÅ¥ za následok nepoužiteľnosÅ¥ indexu s urÄitými ACL nastaveniami.';
-$lang['hidepages']             = 'Skryť zodpovedajúce stránky (regulárne výrazy)';
-$lang['useacl']                = 'Použiť kontrolu prístupu (ACL)';
-$lang['autopasswd']            = 'Autogenerovanie hesla';
-$lang['authtype']              = 'Systém autentifikácie (back-end)';
-$lang['passcrypt']             = 'Spôsob šifrovania hesiel';
-$lang['defaultgroup']          = 'Predvolená skupina';
-$lang['superuser']             = 'Správca - skupina, používateľ alebo Äiarkou oddelený zoznam "pouzivatel1,@skupina1,pouzivatel2" s plným prístupom ku vÅ¡etkým stránkam a funkciám nezávisle od ACL nastavení';
-$lang['manager']               = 'Manažér - skupina, používateľ alebo Äiarkou oddelený zoznam "pouzivatel1,@skupina1,pouzivatel2" s prístupom k vybraným správcovským funkciám';
-$lang['profileconfirm']        = 'Potvrdzovať zmeny profilu heslom';
-$lang['rememberme']            = 'Povoliť trvalé prihlasovacie cookies (zapamätaj si ma)';
-$lang['disableactions']        = 'Zakázať DokuWiki akcie';
-$lang['disableactions_check']  = 'Skontrolovať';
-$lang['disableactions_subscription'] = 'Povoliť/Zrušiť informovanie o zmenách stránky';
-$lang['disableactions_wikicode'] = 'Pozrieť zdroj/Exportovať zdroj';
-$lang['disableactions_other']  = 'Iné akcie (oddelené Äiarkou)';
-$lang['auth_security_timeout'] = 'Časový limit pri prihlasovaní (v sekundách)';
-$lang['securecookie']          = 'Mal by prehliadaÄ posielaÅ¥ cookies nastavené cez HTTPS posielaÅ¥ iba cez HTTPS (bezpeÄné) pripojenie? Vypnite túto voľbu iba v prípade, ak je prihlasovanie do VaÅ¡ej wiki zabezpeÄené SSL, ale prezeranie wiki je nezabezpeÄené.';
-$lang['remote']                = 'Povolenie vzdialeného API. Umožnuje iným aplikáciám pristupovať k wiki cez XML-RPC alebo iným spôsobom.';
-$lang['remoteuser']            = 'Obmedzenie použitia vzdialeného API skupinám alebo používateľom oddelených Äiarkami. Prázdne pole poskytuje prístup pre každého používateľa.';
-$lang['usewordblock']          = 'Blokovať spam na základe zoznamu známych slov';
-$lang['relnofollow']           = 'Používať rel="nofollow" pre externé odkazy';
-$lang['indexdelay']            = 'Časové oneskorenie pred indexovaním (sek)';
-$lang['mailguard']             = 'Zamaskovať e-mailovú adresu';
-$lang['iexssprotect']          = 'KontrolovaÅ¥ nahraté súbory na prítomnosÅ¥ nebezpeÄného JavaScript alebo HTML kódu';
-$lang['usedraft']              = 'Automaticky ukladaÅ¥ koncept poÄas úpravy stránky';
-$lang['htmlok']                = 'Umožniť vkladanie HTML';
-$lang['phpok']                 = 'Umožniť vkladanie PHP';
-$lang['locktime']              = 'Maximálne trvanie blokovacích súborov (sek)';
-$lang['cachetime']             = 'Maximálne trvanie cache (sek)';
-$lang['target____wiki']        = 'Cieľové okno (target) pre interné odkazy';
-$lang['target____interwiki']   = 'Cieľové okno (target) pre interwiki odkazy';
-$lang['target____extern']      = 'Cieľové okno (target) pre externé odkazy';
-$lang['target____media']       = 'Cieľové okno (target) pre media odkazy';
-$lang['target____windows']     = 'Cieľové okno (target) pre windows odkazy';
-$lang['mediarevisions']        = 'Povoliť verzie súborov?';
-$lang['refcheck']              = 'Kontrolovať odkazy na médiá (pred vymazaním)';
-$lang['gdlib']                 = 'Verzia GD Lib';
-$lang['im_convert']            = 'Cesta k ImageMagick convert tool';
-$lang['jpg_quality']           = 'Kvalita JPG kompresie (0-100)';
-$lang['fetchsize']             = 'Maximálna veľkosť (v bajtoch) pri sťahovaní z externých zdrojov';
-$lang['subscribers']           = 'Povoliť podporu informovania o zmenách stránky';
-$lang['subscribe_time']        = 'ÄŒasový inteval, po uplynutí ktorého sú zasielané informácie o zmenách stránky alebo menného priestoru (sek); hodnota by mala byÅ¥ menÅ¡ia ako Äas zadaný pri položke recent_days.';
-$lang['notify']                = 'Posielať upozornenia na zmeny na túto e-mailovú adresu';
-$lang['registernotify']        = 'Posielať informáciu o nových užívateľoch na túto e-mailovú adresu';
-$lang['mailfrom']              = 'E-mailová adresa na automatické e-maily';
-$lang['mailprefix']            = 'Prefix predmetu emailovej spravy zasielanej automaticky';
-$lang['htmlmail']              = 'Posielanie lepšie vyzerajúceho ale objemnejšieho HTML mailu. Deaktivovaním sa budú posielať iba textové maily.';
-$lang['sitemap']               = 'Generovať Google sitemap (dni)';
-$lang['rss_type']              = 'Typ XML feedu';
-$lang['rss_linkto']            = 'XML zdroj odkazuje na';
-$lang['rss_content']           = 'Čo zobrazovať v XML feede?';
-$lang['rss_update']            = 'Časový interval obnovy XML feedu (sek.)';
-$lang['rss_show_summary']      = 'XML zdroj ukáže prehľad v názve';
-$lang['rss_media']             = 'Aký typ zmien by mal byť zobrazený v XML feede?';
-$lang['updatecheck']           = 'KontrolovaÅ¥ aktualizácie a bezpeÄnostné upozornenia? DokuWiki potrebuje pre túto funkciu prístup k update.dokuwiki.org.';
-$lang['userewrite']            = 'Používať nice URLs';
-$lang['useslash']              = 'PoužívaÅ¥ lomku (/) ako oddeľovaÄ v URL';
-$lang['sepchar']               = 'OddeľovaÄ slov v názvoch stránok';
-$lang['canonical']             = 'Používať plne kanonické URL názvy';
-$lang['fnencode']              = 'Spôsob kódovania non-ASCII mien súborov.';
-$lang['autoplural']            = 'KontrolovaÅ¥ množné Äíslo v odkazoch';
-$lang['compression']           = 'Metóda kompresie pre staré verzie stránok';
-$lang['gzip_output']           = 'Používať gzip Content-Encoding pre xhtml';
-$lang['compress']              = 'Komprimovať CSS a javascript výstup';
-$lang['cssdatauri']            = 'Veľkosť v bytoch, do ktorej by mali byť obrázky s odkazom v CSS vložené priamo do štýlu z dôvodu obmedzenia HTTP požiadaviek. Vhodná hodnota je od <code>400</code> do <code>600</code> bytov. Hodnota <code>0</code> deaktivuje túto metódu.';
-$lang['send404']               = 'Poslať "HTTP 404/Page Not Found" pre neexistujúce stránky';
-$lang['broken_iua']            = 'Je vo VaÅ¡om systéme funkcia ignore_user_abort poÅ¡kodená? Môže to maÅ¥ za následok nefunkÄnosÅ¥ vyhľadávania v indexe. IIS+PHP/CGI je známy tým, že nefunguje správne. Pozrite <a href="http://bugs.splitbrain.org/?do=details&amp;task_id=852">Bug 852</a> pre dalÅ¡ie informácie.';
-$lang['xsendfile']             = 'PoužívaÅ¥ X-Sendfile hlaviÄku pre doruÄenie statických súborov webserverom? Webserver musí túto funkcionalitu podporovaÅ¥.';
-$lang['renderer_xhtml']        = 'Používané vykresľovacie jadro pre hlavný (xhtml) wiki výstup';
-$lang['renderer__core']        = '%s (dokuwiki jadro)';
-$lang['renderer__plugin']      = '%s (plugin)';
-$lang['dnslookups']            = 'DokuWiki hľadá mená vzdialených IP adries používateľov editujúcich stránky. Ak máte pomalý alebo nefunkÄný DNS server alebo nechcete túto možnosÅ¥, deaktivujte túto voľbu';
-$lang['jquerycdn']             = 'Mali by byÅ¥ jQuery a jQuery UI skripty naÄítané z CDN? Voľba zvýši poÄet dodatoÄných HTTP požiadaviek, ale súbory sa môžu naÄítaÅ¥ rýchlejÅ¡ie a používatelia ich už môžu maÅ¥ vo vyrovnávacej pamäti.';
-$lang['jquerycdn_o_0']         = 'Nepoužívať CDN, iba lokálne súbory';
-$lang['jquerycdn_o_jquery']    = 'CDN code.jquery.com';
-$lang['jquerycdn_o_cdnjs']     = 'CDN cdnjs.com';
-$lang['proxy____host']         = 'Proxy server - názov';
-$lang['proxy____port']         = 'Proxy server - port';
-$lang['proxy____user']         = 'Proxy server - používateľské meno';
-$lang['proxy____pass']         = 'Proxy server - heslo';
-$lang['proxy____ssl']          = 'Proxy server - použiť SSL';
-$lang['proxy____except']       = 'Regulárny výraz popisujúci URL odkazy, pre ktoré by proxy nemala byť použitá.';
-$lang['safemodehack']          = 'Povoliť "safemode hack"';
-$lang['ftp____host']           = 'FTP server pre "safemode hack"';
-$lang['ftp____port']           = 'FTP port pre "safemode hack"';
-$lang['ftp____user']           = 'FTP používateľ pre "safemode hack"';
-$lang['ftp____pass']           = 'FTP heslo pre "safemode hack"';
-$lang['ftp____root']           = 'FTP hlavný adresár pre "safemode hack"';
-$lang['license_o_']            = 'žiadna';
-$lang['typography_o_0']        = 'žiadne';
-$lang['typography_o_1']        = 'okrem jednoduchých úvodzoviek';
-$lang['typography_o_2']        = 'vrátane jednoduchých úvodzoviek (nemusí to vždy fungovať)';
-$lang['userewrite_o_0']        = 'žiadne';
-$lang['userewrite_o_1']        = '.htaccess';
-$lang['userewrite_o_2']        = 'DokuWiki interné';
-$lang['deaccent_o_0']          = 'vypnuté';
-$lang['deaccent_o_1']          = 'odstrániť diakritiku';
-$lang['deaccent_o_2']          = 'romanizovať (do latinky)';
-$lang['gdlib_o_0']             = 'GD Lib nie je dostupná';
-$lang['gdlib_o_1']             = 'Verzia 1.x';
-$lang['gdlib_o_2']             = 'Autodetekcia';
-$lang['rss_type_o_rss']        = 'RSS 0.91';
-$lang['rss_type_o_rss1']       = 'RSS 1.0';
-$lang['rss_type_o_rss2']       = 'RSS 2.0';
-$lang['rss_type_o_atom']       = 'Atom 0.3';
-$lang['rss_type_o_atom1']      = 'Atom 1.0';
-$lang['rss_content_o_abstract'] = 'Abstrakt';
-$lang['rss_content_o_diff']    = 'Normalizovaný Diff';
-$lang['rss_content_o_htmldiff'] = 'Tabuľka zmien v HTML formáte';
-$lang['rss_content_o_html']    = 'Obsah stránky v HTML formáte';
-$lang['rss_linkto_o_diff']     = 'prehľad zmien';
-$lang['rss_linkto_o_page']     = 'upravená stránka';
-$lang['rss_linkto_o_rev']      = 'zoznam zmien';
-$lang['rss_linkto_o_current']  = 'aktuálna stránka';
-$lang['compression_o_0']       = 'žiadna';
-$lang['compression_o_gz']      = 'gzip';
-$lang['compression_o_bz2']     = 'bz2';
-$lang['xsendfile_o_0']         = 'nepoužívať';
-$lang['xsendfile_o_1']         = 'Proprietárna lighttpd hlaviÄka (pre vydaním 1.5)';
-$lang['xsendfile_o_2']         = 'Å tandardná X-Sendfile hlaviÄka';
-$lang['xsendfile_o_3']         = 'Proprietárna Nginx X-Accel-Redirect hlaviÄka';
-$lang['showuseras_o_loginname'] = 'Prihlasovacie meno';
-$lang['showuseras_o_username'] = 'Celé meno používateľa';
-$lang['showuseras_o_email']    = 'E-mailová adresa používateľa (zamaskovaná podľa nastavenia)';
-$lang['showuseras_o_email_link'] = 'E-mailová adresa používateľa vo forme odkazu mailto:';
-$lang['useheading_o_0']        = 'Nikdy';
-$lang['useheading_o_navigation'] = 'Iba navigácia';
-$lang['useheading_o_content']  = 'Iba Wiki obsah';
-$lang['useheading_o_1']        = 'Vždy';
-$lang['readdircache']          = 'Maximálne trvanie readdir cache (sek)';
diff --git a/wiki/lib/plugins/config/lang/sl/intro.txt b/wiki/lib/plugins/config/lang/sl/intro.txt
deleted file mode 100644
index 506cd34..0000000
--- a/wiki/lib/plugins/config/lang/sl/intro.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-====== Splošne nastavitve ======
-
-Na tej strani je mogoÄe spreminjati nastavitve sistema DokuWiki. PomoÄ o posameznih nastavitvah je na voljo med [[doku>config|nastavitvami]]. VeÄ podrobnosti o vstavku je na voljo na [[doku>plugin:config|nastavitvami vstavka]].
-
-Nastavitve oznaÄene s svetlo rdeÄim ozadjem so zaÅ¡Äitene in jih s tem vstavkom ni mogoÄe spreminjati. Nastavitve oznaÄene s svetlo modrim ozadjem so privzete vrednosti in nastavitve z belim ozadjem so tiste, ki so bile doloÄene krajevno posebej za to nastavitev. Spreminjati je mogoÄe vrednosti oznaÄene z modrimi in belim ozadjem.
-
-Spremembe je treba **shraniti**, da se uveljavijo, sicer se spremembe prezrejo.
diff --git a/wiki/lib/plugins/config/lang/sl/lang.php b/wiki/lib/plugins/config/lang/sl/lang.php
deleted file mode 100644
index 7db4b4b..0000000
--- a/wiki/lib/plugins/config/lang/sl/lang.php
+++ /dev/null
@@ -1,189 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * Slovenian language file
- *
- * @author Dejan Levec <webphp@gmail.com>
- * @author BoÅ¡tjan SeniÄar <senicar@gmail.com>
- * @author Gregor Skumavc (grega.skumavc@gmail.com)
- * @author Matej UrbanÄiÄ (mateju@svn.gnome.org)
- */
-$lang['menu']                  = 'Splošne nastavitve';
-$lang['error']                 = 'Nastavitve niso shranjene zaradi neveljavne vrednosti.<br />Neveljavna vrednost je oznaÄena z rdeÄim robom vnosnega polja.';
-$lang['updated']               = 'Nastavitve so uspešno posodobljene.';
-$lang['nochoice']              = '(ni drugih možnosti na voljo)';
-$lang['locked']                = 'Nastavitvene datoteke ni mogoÄe posodobiti.<br />Preverite dovoljenja za spreminjanje in ime nastavitvene datoteke.';
-$lang['danger']                = 'Opozorilo: spreminjanje te možnosti lahko povzroÄi težave v delovanju sistema wiki.';
-$lang['warning']               = 'Opozorilo: spreminjanje te možnosti lahko vpliva na pravilno delovanje sistema wiki.';
-$lang['security']              = 'Varnostno opozorilo: spreminjanje te možnosti lahko vpliva na varnost sistema.';
-$lang['_configuration_manager'] = 'Upravljalnik nastavitev';
-$lang['_header_dokuwiki']      = 'Nastavitve DokuWiki';
-$lang['_header_plugin']        = 'Nastavitve vstavkov';
-$lang['_header_template']      = 'Nastavitve predlog';
-$lang['_header_undefined']     = 'Neopredeljene nastavitve';
-$lang['_basic']                = 'Osnovne nastavitve';
-$lang['_display']              = 'Nastavitve prikazovanja';
-$lang['_authentication']       = 'Nastavitve overjanja';
-$lang['_anti_spam']            = 'Nastavitve neželenih sporoÄil (Anti-Spam)';
-$lang['_editing']              = 'Nastavitve urejanja';
-$lang['_links']                = 'Nastavitve povezav';
-$lang['_media']                = 'Predstavne nastavitve';
-$lang['_advanced']             = 'Napredne nastavitve';
-$lang['_network']              = 'Omrežne nastavitve';
-$lang['_msg_setting_undefined'] = 'Ni nastavitvenih metapodatkov.';
-$lang['_msg_setting_no_class'] = 'Ni nastavitvenega razreda.';
-$lang['_msg_setting_no_default'] = 'Ni privzete vrednosti.';
-$lang['title']                 = 'Naslov Wiki spletiÅ¡Äa';
-$lang['start']                 = 'Ime zaÄetne strani wiki';
-$lang['lang']                  = 'Jezik vmesnika';
-$lang['template']              = 'Predloga';
-$lang['tagline']               = 'OznaÄna vrstica (ob podpori predloge)';
-$lang['sidebar']               = 'Ime strani stranske vrstice (ob podpori predloge); prazno polje onemogoÄi stransko vrstico.';
-$lang['license']               = 'Pod pogoji katerega dovoljenja je objavljena vsebina?';
-$lang['savedir']               = 'Mapa za shranjevanje podatkov';
-$lang['basedir']               = 'Pot do strežnika (npr. /dokuwiki/). Prazno polje doloÄa samodejno zaznavanje';
-$lang['baseurl']               = 'Naslov URL strežnika (npr. http://www.streznik.si). Prazno polje doloÄa samodejno zaznavanje';
-$lang['cookiedir']             = 'Pot do piÅ¡kotka. Prazno polje doloÄa uporabo osnovnega naslova (baseurl)';
-$lang['dmode']                 = 'NaÄin ustvarjanja map';
-$lang['fmode']                 = 'NaÄin ustvarjanja datotek';
-$lang['allowdebug']            = 'Dovoli razhroÅ¡Äevanje (po potrebi!)';
-$lang['recent']                = 'Nedavne spremembe';
-$lang['recent_days']           = 'Koliko nedavnih sprememb naj se ohrani (v dnevih)';
-$lang['breadcrumbs']           = 'Å tevilo drobtinic poti';
-$lang['youarehere']            = 'HierarhiÄne drobtinice poti';
-$lang['fullpath']              = 'Pokaži polno pot strani v nogi strani';
-$lang['typography']            = 'OmogoÄi tipografske zamenjave';
-$lang['dformat']               = 'Oblika zapisa Äasa (funkcija PHP <a href="http://php.net/strftime">strftime</a>)';
-$lang['signature']             = 'Podpis';
-$lang['showuseras']            = 'Kaj prikazati za prikaz uporabnika, ki je zadnji urejal stran';
-$lang['toptoclevel']           = 'Vrhnja raven kazala';
-$lang['tocminheads']           = 'Najmanjše število naslovov za izgradnjo kazala';
-$lang['maxtoclevel']           = 'Najvišja raven kazala';
-$lang['maxseclevel']           = 'NajveÄja raven urejanja odseka';
-$lang['camelcase']             = 'Uporabi EnoBesedni zapisa za povezave';
-$lang['deaccent']              = 'PoÄisti imena strani';
-$lang['useheading']            = 'Uporabi prvi naslov za ime strani';
-$lang['sneaky_index']          = 'Privzeto pokaže sistem DokuWiki vse imenske prostore v pogledu kazala. Z omogoÄanjem te možnosti bodo skriti vsi imenski prostori, v katere prijavljen uporabnik nima dovoljenj dostopa. S tem je mogoÄe prepreÄiti dostop do podrejenih strani. Možnost lahko vpliva na uporabnost nastavitev nadzora dostopa ACL.';
-$lang['hidepages']             = 'Skrij skladne strani (logiÄni izraz)';
-$lang['useacl']                = 'Uporabi seznam nadzora dostopa (ACL)';
-$lang['autopasswd']            = 'Samodejno ustvari gesla';
-$lang['authtype']              = 'Ozadnji naÄin overitve';
-$lang['passcrypt']             = 'NaÄin Å¡ifriranja gesel';
-$lang['defaultgroup']          = 'Privzeta skupina';
-$lang['superuser']             = 'Skrbnik - skupina, uporabnik ali z vejico loÄen seznam uporabnik1,@skupina1,uporabnik2 s polnim dostopom do vseh strani in možnosti, neodvisno od nastavitev nadzora dostopa ACL';
-$lang['manager']               = 'Upravljavec - skupina, uporabnik ali z vejico loÄen seznam uporabnik1,@skupina1,uporabnik2 z dovoljenji za dostop do nekaterih možnosti upravljanja';
-$lang['profileconfirm']        = 'Potrdi spremembe profila z geslom';
-$lang['rememberme']            = 'Dovoli trajne prijavne piškotke (trajno pomnenje prijave)';
-$lang['disableactions']        = 'OnemogoÄi dejanja DokuWiki';
-$lang['disableactions_check']  = 'Preveri';
-$lang['disableactions_subscription'] = 'NaroÄanje/Preklic naroÄnine';
-$lang['disableactions_wikicode'] = 'Pogled izvorne kode/Surovi izvoz';
-$lang['disableactions_other']  = 'Druga dejanja (z vejico loÄen seznam)';
-$lang['auth_security_timeout'] = 'Varnostna Äasovna omejitev overitve (v sekundah)';
-$lang['securecookie']          = 'Ali naj se piÅ¡kotki poslani preko varne povezave HTTPS v brskalniku poÅ¡iljajo le preko HTTPS? OnemogoÄanje možnosti je priporoÄljivo le takrat, ko je prijava varovana s protokolom  SSL, brskanje po strani pa ni posebej zavarovano.';
-$lang['usewordblock']          = 'Zaustavi neželeno besedilo glede na seznam besed';
-$lang['relnofollow']           = 'Uporabni možnost rel="nofollow" pri zunanjih povezavah';
-$lang['indexdelay']            = 'ÄŒasovni zamik pred ustvarjanjem kazala (v sekundah)';
-$lang['mailguard']             = 'Å ifriraj elektronske naslove';
-$lang['iexssprotect']          = 'Preveri poslane datoteke za zlonamerno kodo JavaScript ali HTML';
-$lang['usedraft']              = 'Samodejno shrani osnutek med urejanjem strani';
-$lang['htmlok']                = 'Dovoli vstavljeno kodo HTML';
-$lang['phpok']                 = 'Dovoli vstavljeno kodo PHP';
-$lang['locktime']              = 'NajveÄja dovoljena starost datotek zaklepa (v sekundah)';
-$lang['cachetime']             = 'NajveÄja dovoljena starost predpomnilnika (v sekundah)';
-$lang['target____wiki']        = 'Ciljno okno za notranje povezave';
-$lang['target____interwiki']   = 'Ciljno okno za notranje wiki povezave';
-$lang['target____extern']      = 'Ciljno okno za zunanje povezave';
-$lang['target____media']       = 'Ciljno okno za predstavne povezave';
-$lang['target____windows']     = 'Ciljno okno za povezave oken';
-$lang['mediarevisions']        = 'Ali naj se omogoÄijo objave predstavnih vsebin?';
-$lang['refcheck']              = 'Preverjanje sklica predstavnih datotek';
-$lang['gdlib']                 = 'RazliÄica GD Lib';
-$lang['im_convert']            = 'Pot do orodja za pretvarjanje slik ImageMagick';
-$lang['jpg_quality']           = 'Kakovost stiskanja datotek JPG (0-100)';
-$lang['fetchsize']             = 'najveÄja dovoljena velikost zunanjega prejemanja z datoteko fetch.php (v bajtih)';
-$lang['subscribers']           = 'OmogoÄi podporo naroÄanju na strani';
-$lang['subscribe_time']        = 'ÄŒas po katerem so poslani povzetki sprememb (v sekundah); Vrednost mora biti krajÅ¡a od Äasa, ki je doloÄen z nedavno_dni.';
-$lang['notify']                = 'PoÅ¡lji obvestila o spremembah na doloÄen elektronski naslov';
-$lang['registernotify']        = 'PoÅ¡lji obvestila o novih vpisanih uporabnikih na doloÄen elektronski naslov';
-$lang['mailfrom']              = 'Elektronski naslov za samodejno poslana sporoÄila';
-$lang['mailprefix']            = 'Predpona zadeve elektronskega sporoÄila za samodejna sporoÄila.';
-$lang['sitemap']               = 'Ustvari Google kazalo strani (v dnevih)';
-$lang['rss_type']              = 'Vrsta virov XML';
-$lang['rss_linkto']            = 'XML viri so povezani z';
-$lang['rss_content']           = 'Kaj prikazati med predmeti virov XML?';
-$lang['rss_update']            = 'ÄŒasovni razmik posodobitve virov XML (v sekundah)';
-$lang['rss_show_summary']      = 'Viri XML so povzeti v naslovu';
-$lang['updatecheck']           = 'Ali naj sistem preveri za posodobitve in varnostna opozorila.';
-$lang['userewrite']            = 'Uporabi olepšan zapis naslovov URL';
-$lang['useslash']              = 'Uporabi poÅ¡evnico kot loÄilnik imenskih prostorov v naslovih URL';
-$lang['sepchar']               = 'LoÄilnik besed imen strani';
-$lang['canonical']             = 'Uporabi polni kanoniÄni zapis naslova URL';
-$lang['fnencode']              = 'NaÄin kodiranja ne-ASCII imen datotek.';
-$lang['autoplural']            = 'Preveri množinske oblike povezav';
-$lang['compression']           = 'NaÄin stiskanja za arhivirane datoteke';
-$lang['gzip_output']           = 'Uporabi stiskanje gzip vsebine za xhtml';
-$lang['compress']              = 'Združi odvod CSS in JavaScript v brskalniku';
-$lang['cssdatauri']            = 'Velikost sklicanih slik v bajtih, ki so navedene v datotekah CSS za zmanjÅ¡anje zahtev osveževanja strežnika HTTP. Ustrezne vrednosti so <code>400</code> do <code>600</code> bajtov. Vrednost <code>0</code> onemogoÄi možnost.';
-$lang['send404']               = 'PoÅ¡lji "HTTP 404/Strani ni mogoÄe najti" pri dostopu do neobstojeÄih strani';
-$lang['broken_iua']            = 'Ali je možnost ignore_user_abort okvarjena na sistemu? Napaka lahko vpliva na delovanje iskalnika. Napake so pogoste ob uporabi IIS+PHP/CGI. VeÄ o tem si je mogoÄe prebrati v <a href="http://bugs.splitbrain.org/?do=details&amp;task_id=852">poroÄilu o hroÅ¡Äu 852</a>.';
-$lang['xsendfile']             = 'Uporabi glavo X-Sendfile za prejemanje statiÄnih datotek. Spletni strežnik mora možnost podpirati.';
-$lang['renderer_xhtml']        = 'Izrisovalnik za odvod Wiki strani (xhtml)';
-$lang['renderer__core']        = '%s (jedro dokuwiki)';
-$lang['renderer__plugin']      = '%s (vstavek)';
-$lang['proxy____host']         = 'Ime posredniškega strežnika';
-$lang['proxy____port']         = 'Vrata posredniškega strežnika';
-$lang['proxy____user']         = 'Uporabniško ime posredniškega strežnika';
-$lang['proxy____pass']         = 'Geslo posredniškega strežnika';
-$lang['proxy____ssl']          = 'Uporabi varno povezavo SSL za povezavo z posredniškim strežnikom';
-$lang['proxy____except']       = 'LogiÄni izrazi morajo biti skladni z naslovi URL, ki gredo mimo posredniÅ¡kega strežnika.';
-$lang['safemodehack']          = 'OmogoÄi obhod naÄina SafeMode PHP';
-$lang['ftp____host']           = 'Strežnik FTP za obhod naÄina SafeMode';
-$lang['ftp____port']           = 'Vrata strežnika FTP za obhod naÄina SafeMode';
-$lang['ftp____user']           = 'UporabniÅ¡ko ime za FTP za obhod naÄina SafeMode';
-$lang['ftp____pass']           = 'Geslo za strežnik FTP za obhod naÄina SafeMode';
-$lang['ftp____root']           = 'Korenska mapa FTP za obhod naÄina SafeMode';
-$lang['license_o_']            = 'Ni izbranega dovoljenja';
-$lang['typography_o_0']        = 'brez';
-$lang['typography_o_1']        = 'izloÄi enojne narekovaje';
-$lang['typography_o_2']        = 'z enojnimi narekovaji (lahko vÄasih ne deluje)';
-$lang['userewrite_o_0']        = 'brez';
-$lang['userewrite_o_1']        = '.htaccess';
-$lang['userewrite_o_2']        = 'notranji DokuWiki';
-$lang['deaccent_o_0']          = 'onemogoÄeno';
-$lang['deaccent_o_1']          = 'odstrani naglasne oznake';
-$lang['deaccent_o_2']          = 'pretvori v romanski zapis';
-$lang['gdlib_o_0']             = 'Knjižnica GD Lib ni na voljo';
-$lang['gdlib_o_1']             = 'RazliÄica 1.x';
-$lang['gdlib_o_2']             = 'Samodejno zaznavanje';
-$lang['rss_type_o_rss']        = 'RSS 0.91';
-$lang['rss_type_o_rss1']       = 'RSS 1.0';
-$lang['rss_type_o_rss2']       = 'RSS 2.0';
-$lang['rss_type_o_atom']       = 'Atom 0.3';
-$lang['rss_type_o_atom1']      = 'Atom 1.0';
-$lang['rss_content_o_abstract'] = 'Povzetek';
-$lang['rss_content_o_diff']    = 'Poenotena primerjava';
-$lang['rss_content_o_htmldiff'] = 'HTML oblikovana preglednica primerjave';
-$lang['rss_content_o_html']    = 'Polna HTML vsebina strani';
-$lang['rss_linkto_o_diff']     = 'primerjalni pogled';
-$lang['rss_linkto_o_page']     = 'pregledana stran';
-$lang['rss_linkto_o_rev']      = 'seznam pregledovanj';
-$lang['rss_linkto_o_current']  = 'trenutna stran';
-$lang['compression_o_0']       = 'brez';
-$lang['compression_o_gz']      = 'gzip';
-$lang['compression_o_bz2']     = 'bz2';
-$lang['xsendfile_o_0']         = 'ne uporabi';
-$lang['xsendfile_o_1']         = 'lastniÅ¡ka glava lighttpd (pred razliÄico 1.5)';
-$lang['xsendfile_o_2']         = 'obiÄajna glava X-Sendfile';
-$lang['xsendfile_o_3']         = 'lastniška glava Nginx X-Accel-Redirect';
-$lang['showuseras_o_loginname'] = 'Prijavno ime';
-$lang['showuseras_o_username'] = 'Polno ime uporabnika';
-$lang['showuseras_o_email']    = 'Elektronski naslov uporabnika (Å¡ifriran po doloÄilih varovanja)';
-$lang['showuseras_o_email_link'] = 'Elektronski naslov uporabnika kot povezava mailto:';
-$lang['useheading_o_0']        = 'nikoli';
-$lang['useheading_o_navigation'] = 'le za krmarjenje';
-$lang['useheading_o_content']  = 'le za vsebino Wiki';
-$lang['useheading_o_1']        = 'vedno';
-$lang['readdircache']          = 'NajveÄja dovoljena starost predpomnilnika prebranih map (v sekundah)';
diff --git a/wiki/lib/plugins/config/lang/sq/intro.txt b/wiki/lib/plugins/config/lang/sq/intro.txt
deleted file mode 100644
index d2bab0f..0000000
--- a/wiki/lib/plugins/config/lang/sq/intro.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-====== Menaxheri Konfigurimit ======
-
-Përdoreni këtë faqe për të kontrolluar kuadrot e instalimit të DokuWiki-t tuaj. Për ndihmë mbi kuadro individuale referojuni  [[doku>config]]. Për më tepër detaje rreth këtij plugin-i shih [[doku>plugin:config]].
-
-Kuadrot e treguara me një backgroudn me një ngjyrë të kuqe të lehtë janë të mbrojtura dhe nuk mund të ndryshohen me këtë plugin. Kuadrot e treguara me një background blu janë vlerat default dhe kuadrot e treguara me një background të bardhë janë vendosur lokalisht për këtë instalim të caktuar. Si kuadrot blu, ashtu edhe ato të bardhë mund të ndryshohen.
-
-Kujtohuni të shtypni butonin **Ruaj** para se të dilni nga kjo faqe ose ndryshimet tuaja do të humbasin.
diff --git a/wiki/lib/plugins/config/lang/sq/lang.php b/wiki/lib/plugins/config/lang/sq/lang.php
deleted file mode 100644
index 72c500a..0000000
--- a/wiki/lib/plugins/config/lang/sq/lang.php
+++ /dev/null
@@ -1,175 +0,0 @@
-<?php
-/**
- * Albanian language file
- *
- * @author Leonard Elezi leonard.elezi@depinfo.info
- */
-$lang['menu']                  = 'Konfigurimi i Kuadrove';
-$lang['error']                 = 'Kuadrot nuk u përditësuan për shkak të një vlere të palejuar, ju lutem rishikoni ndryshimet tuaja dhe ridorëzojeni.
-<br />Vlerat e pasakta tregohen të rrethuara nga një kornizë e kuqe.';
-$lang['updated']               = 'Kuadrot u përditësuan me sukses.';
-$lang['nochoice']              = '(asnjë zgjedhje tjetër e disponueshme)';
-$lang['locked']                = 'Skedari i kuadrove nuk mund të përditësohet, nëse kjo është e paqëllimshme, <br /> sigurohuni që emri i skedarit të kuadrove lokale dhe të drejtat të jenë të sakta.';
-$lang['danger']                = 'Rrezik: Ndrishimi i kësaj alternative mund ta bëjë wiki-n dhe menunë tuaj të konfigurimit të pa aksesueshme.';
-$lang['warning']               = 'Paralajmërim: Ndryshimi i kësaj alternative mund të shkaktojë sjellje të padëshiruara.';
-$lang['security']              = 'Paralajmërim Sigurie: Ndryshimi i kësaj alternative mund të paraqesë një rrezik në siguri.';
-$lang['_configuration_manager'] = 'Menaxhuesi i Kuadrove';
-$lang['_header_dokuwiki']      = 'Kuadrot e DokuWiki-t';
-$lang['_header_plugin']        = 'Kuadrot e Plugin-eve';
-$lang['_header_template']      = 'Kuadrot e Template-eve';
-$lang['_header_undefined']     = 'Kuadro të Papërcaktuara';
-$lang['_basic']                = 'Kuadro Elementare';
-$lang['_display']              = 'Kuadrot e Shfaqjes';
-$lang['_authentication']       = 'Kuadrot e Autentikimit';
-$lang['_anti_spam']            = 'Kuadrot Anti-Spam';
-$lang['_editing']              = 'Kuadrot e Redaktimit';
-$lang['_links']                = 'Kuadrot e Link-eve';
-$lang['_media']                = 'Kuadrot e Medias';
-$lang['_advanced']             = 'Kuadro të Avancuara';
-$lang['_network']              = 'Kuadrot e Rrjetit';
-$lang['_msg_setting_undefined'] = 'Metadata pa kuadro.';
-$lang['_msg_setting_no_class'] = 'Klasë pa kuadro.';
-$lang['_msg_setting_no_default'] = 'Asnjë vlerë default.';
-$lang['fmode']                 = 'Mënyra krijim skedari';
-$lang['dmode']                 = 'Mënyra krijim dosjeje.';
-$lang['lang']                  = 'Gjuha e ndërfaqes';
-$lang['basedir']               = 'Path-i i Serverit (psh <code>/dokuwiki/</code>). Lëre bosh për ta gjetur automatikisht.';
-$lang['baseurl']               = 'URL-ja serverit (psh <code>http://www.serveriyt.com</code>). Lëre bosh për ta gjetur automatikisht.';
-$lang['savedir']               = 'Direktoria për të ruajtur të dhënat';
-$lang['start']                 = 'Emri i faqes së fillimit';
-$lang['title']                 = 'Titulli i Wiki-t';
-$lang['template']              = 'Template';
-$lang['license']               = 'Nën cilën liçensë duhet të vihet përmbajtja juar?';
-$lang['fullpath']              = 'Trego adresën e plotë të faqeve në footer.';
-$lang['recent']                = 'Ndryshimet më të fundit';
-$lang['breadcrumbs']           = 'Numri i gjurmëve';
-$lang['youarehere']            = 'Gjurmë hierarkike';
-$lang['typography']            = 'Bëj zëvendësime tipografike';
-$lang['htmlok']                = 'Lejo HTML të ngulitura';
-$lang['phpok']                 = 'Lejo PHP të ngulitura';
-$lang['dformat']               = 'Formati i Datës (shiko funksionin <a href="http://php.net/strftime">strftime</a> e PHP-së)';
-$lang['signature']             = 'Firma';
-$lang['toptoclevel']           = 'Niveli i Kreut për tabelën e përmbajtjes';
-$lang['tocminheads']           = 'Sasia minimum e titrave që përcaktojnë nëse TOC ndërtohet ose jo';
-$lang['maxtoclevel']           = 'Niveli maksimum për tabelën e përmbajtjes';
-$lang['maxseclevel']           = 'Niveli maksimum për redaktim të seksionit';
-$lang['camelcase']             = 'Përdor CamelCase (shkronja e parë e çdo fjale është kapitale) për linke-t';
-$lang['deaccent']              = 'Emra faqesh të pastër';
-$lang['useheading']            = 'Përdor titra të nivelit të parë për faqet e emrave';
-$lang['refcheck']              = 'Kontroll për referim mediash';
-$lang['allowdebug']            = 'Lejo debug <b>çaktivizoje nëse nuk nevojitet!</b>';
-$lang['usewordblock']          = 'Blloko spam-in duke u bazuar mbi listë fjalësh';
-$lang['indexdelay']            = 'Vonesa në kohë para index-imit (sekonda)';
-$lang['relnofollow']           = 'Përdor rel="nofollow" në linke të jashtëm';
-$lang['mailguard']             = 'Errëso adresat e email-it';
-$lang['iexssprotect']          = 'Kontrollo skedarët e ngarkuar për kod të mundshëm dashakeqës JavaScript ose HTML';
-$lang['showuseras']            = 'Cfarë të shfaqësh kur t\'i tregosh përdoruesit faqen e fundit të redaktuar';
-$lang['useacl']                = 'Përdor lista kontrolli të aksesit';
-$lang['autopasswd']            = 'Autogjenero fjalëkalime';
-$lang['authtype']              = 'Backend autentikimi';
-$lang['passcrypt']             = 'Metoda e enkriptimit të fjalëkalimit';
-$lang['defaultgroup']          = 'Grupi default';
-$lang['superuser']             = 'Superpërdorues - grup, përdorues ose listë e ndarë me presje user1, @group1,user2 me akses të plotë në të gjitha faqet dhe funksionet pavarësisht kuadrove të ACL';
-$lang['manager']               = 'Menaxher - grup, përdorues ose listë e ndarë me presje user1,@group1,user2 me akses në disa funksione të caktuara menaxhimi';
-$lang['profileconfirm']        = 'Konfirmo ndryshimet ne profil me fjalëkalim';
-$lang['disableactions']        = 'Caktivizo veprimet e DokuWiki-it';
-$lang['disableactions_check']  = 'Kontrollo';
-$lang['disableactions_subscription'] = 'Abonohu/Fshi Abonim';
-$lang['disableactions_wikicode'] = 'Shiku kodin burim/ Eksportoje të Papërpunuar';
-$lang['disableactions_other']  = 'Veprime të tjera (të ndarë me presje)';
-$lang['sneaky_index']          = 'Vetiu DokuWiki tregon të gjithë hapësirat e emrit në shikimin e index-it. Aktivizimi i kësaj alternative do të fshehë ato ku përdoruesi nuk ka të drejta leximi. Kjo mund të përfundojë në fshehje të nënhapësirave të emrit të aksesueshme. Kjo mund ta bëjë index-in të papërdorshëm me disa konfigurime të caktuara të ACL-së.';
-$lang['auth_security_timeout'] = 'Koha e Përfundimit për Autentikim (sekonda)';
-$lang['securecookie']          = 'A duhet që cookies të vendosura nëpërmjet HTTPS të dërgohen vetëm nëpërmjet HTTPS nga shfletuesit? Caktivizojeni këtë alternativë kur vetëm hyrja në wiki-n tuaj sigurohet me SSL por shfletimi i wiki-t bëhet në mënyrë të pasigurtë.';
-$lang['updatecheck']           = 'Kontrollo për përditësime dhe paralajmërime sigurie? DokuWiki duhet të kontaktojë me update.dokuwiki.org për këtë veti.';
-$lang['userewrite']            = 'Përdor URL të këndshme.';
-$lang['useslash']              = 'Përdor / si ndarës të hapësirave të emrit në URL';
-$lang['usedraft']              = 'Ruaj automatikisht një skicë gjatë redaktimit';
-$lang['sepchar']               = 'Fjala ndarëse për emrin e faqes';
-$lang['canonical']             = 'Përdor URL kanonike të plota';
-$lang['autoplural']            = 'Kontrollo për forma shumës në link-e';
-$lang['compression']           = 'Metoda kompresimit për skedarët atikë';
-$lang['cachetime']             = 'Mosha maksimale për cache (sekonda)';
-$lang['locktime']              = 'Mosha maksimale për kyçjen e skedarëve (sekonda)';
-$lang['fetchsize']             = 'Madhësia maksimale (bytes) që fetch.php mund të shkarkojë nga jashtë';
-$lang['notify']                = 'Dërgo lajmërim për ndryshime te kjo adresë email-i';
-$lang['registernotify']        = 'Dërgo info për përdoruesit e sapo regjistruar te kjo adresë email-i';
-$lang['mailfrom']              = 'Adresa e email-it që do të përdoret për dërgimin e email-eve automatikë';
-$lang['gzip_output']           = 'Përdor gzip Content-Encoding për xhtml';
-$lang['gdlib']                 = 'Versioni i GD Lib';
-$lang['im_convert']            = 'Path-i për tek mjeti i konvertimit ImageMagick';
-$lang['jpg_quality']           = 'Cilësia e kompresimit JPG (0-100)';
-$lang['subscribers']           = 'Aktivizo suportin për abonim faqesh';
-$lang['subscribe_time']        = 'Koha pas së cilës listat e abonimeve dhe konsumimet dërgohen (sekonda); Kjo duhet të jetë më e vogël se koha e specifikuar në ditët më të fundit';
-$lang['compress']              = 'Kompaktëso daljet CSS dhe JavaScript ';
-$lang['hidepages']             = 'Fshi faqet që përkojnë (shprehjet e rregullta)';
-$lang['send404']               = 'Dërgo "HTTP 404/Page Not Found" për faqe që nuk ekzistojnë';
-$lang['sitemap']               = 'Gjenero Google sitemap (ditë)';
-$lang['broken_iua']            = 'Funksioni ignore_user_abort është i prishur në sistemin tuaj? Kjo mund të shkaktojë një indeks kërkimi jo funksional. IIS+PHP/CGI njihen si të prishura. Shiko <a href="http://bugs.splitbrain.org/?do=details&amp;task_id=852">Bug 852</a> për më shumë info.';
-$lang['xsendfile']             = 'Përdor kokën X-Sendfile për të lejuar webserver-in të dërgojë skedarë statikë? Kjo duhet të suportohet nga webserver-i juaj.';
-$lang['renderer_xhtml']        = 'Riprodhuesi i përdorur për daljen wiki kryesore (xhtml)';
-$lang['renderer__core']        = '%s (dokuwiki core)';
-$lang['renderer__plugin']      = '%s (plugin)';
-$lang['rememberme']            = 'Lejo cookies hyrjeje të përhershme (më kujto mua)';
-$lang['rss_type']              = 'Tipi feed XML';
-$lang['rss_linkto']            = 'XML feed lidhet me';
-$lang['rss_content']           = 'Cfarë të shfaqësh në objektet XML feed?';
-$lang['rss_update']            = 'Intervali i përditësimit XML feed (sekonda)';
-$lang['recent_days']           = 'Sa ndryshime të fundit duhen mbajtur (ditë)';
-$lang['rss_show_summary']      = 'XML feed trego përmbledhjen në titull';
-$lang['target____wiki']        = 'Dritarja target për link-e të brendshëm';
-$lang['target____interwiki']   = 'Dritarja target për link-e interwiki';
-$lang['target____extern']      = 'Dritarja target për link-e të jashtme';
-$lang['target____media']       = 'Dritarja target për link-e mediash';
-$lang['target____windows']     = 'Dritarja target për link-e windows-i';
-$lang['proxy____host']         = 'Emri i serverit të proxy-t';
-$lang['proxy____port']         = 'Porta e proxy-t';
-$lang['proxy____user']         = 'Emri i përdoruesit për proxy-n';
-$lang['proxy____pass']         = 'Fjalëkalimi proxy-t';
-$lang['proxy____ssl']          = 'Përdor SSL për tu lidhur me proxy-n';
-$lang['safemodehack']          = 'Aktivizo hack në safemode';
-$lang['ftp____host']           = 'Server FTP për safemode hack';
-$lang['ftp____port']           = 'Porta FTP për safemode hack';
-$lang['ftp____user']           = 'Emri përdoruesit për safemode hack';
-$lang['ftp____pass']           = 'Fjalëkalimi FTP për safemode hack';
-$lang['ftp____root']           = 'Direktoria rrënjë për safemode hack';
-$lang['license_o_']            = 'Nuk u zgjodh asgjë';
-$lang['typography_o_0']        = 'Asgjë';
-$lang['typography_o_1']        = 'përjashtim i thonjëzave teke';
-$lang['typography_o_2']        = 'përfshirje e thonjëzave teke (nuk punon gjithmonë) ';
-$lang['userewrite_o_0']        = 'asgjë';
-$lang['userewrite_o_1']        = '.htaccess';
-$lang['userewrite_o_2']        = 'Brendësia DokuWiki';
-$lang['deaccent_o_0']          = 'fikur';
-$lang['deaccent_o_1']          = 'hiq theksin';
-$lang['deaccent_o_2']          = 'romanizo';
-$lang['gdlib_o_0']             = 'GD Lib nuk është e disponueshme';
-$lang['gdlib_o_1']             = 'Versioni 1.x';
-$lang['gdlib_o_2']             = 'Dallim automatik';
-$lang['rss_type_o_rss']        = 'RSS 0.91';
-$lang['rss_type_o_rss1']       = 'RSS 1.0';
-$lang['rss_type_o_rss2']       = 'RSS 2.0';
-$lang['rss_type_o_atom']       = 'Atom 0.3';
-$lang['rss_type_o_atom1']      = 'Atom 1.0';
-$lang['rss_content_o_abstract'] = 'Abstrakte';
-$lang['rss_content_o_diff']    = 'Ndryshime të njësuara';
-$lang['rss_content_o_htmldiff'] = 'Tabelë ndryshimesh e formatuar në HTML';
-$lang['rss_content_o_html']    = 'Përmbajtje e plotë faqeje HTML';
-$lang['rss_linkto_o_diff']     = 'shikimi ndryshimit';
-$lang['rss_linkto_o_page']     = 'faqja e rishikuar';
-$lang['rss_linkto_o_rev']      = 'lista e rishikimeve';
-$lang['rss_linkto_o_current']  = 'faqja aktuale';
-$lang['compression_o_0']       = 'asgjë';
-$lang['compression_o_gz']      = 'gzip';
-$lang['compression_o_bz2']     = 'bz2';
-$lang['xsendfile_o_0']         = 'mos e përdor';
-$lang['xsendfile_o_1']         = 'Proprietary lighttpd header (para lëshimit 1.5)';
-$lang['xsendfile_o_2']         = 'X-Sendfile header standard';
-$lang['xsendfile_o_3']         = 'Proprietary Nginx X-Accel-Redirect header';
-$lang['showuseras_o_loginname'] = 'Emri hyrjes';
-$lang['showuseras_o_username'] = 'Emri i plotë i përdoruesit';
-$lang['showuseras_o_email']    = 'Adresa e email-it e përdoruesit (errësuar sipas kuadros mailguard)';
-$lang['showuseras_o_email_link'] = 'Adresa email e përdoruesit si një mailto: link';
-$lang['useheading_o_0']        = 'Kurrë';
-$lang['useheading_o_navigation'] = 'Vetëm për Navigim';
-$lang['useheading_o_content']  = 'Vetëm për Përmbajtje Wiki';
-$lang['useheading_o_1']        = 'Gjithmonë';
diff --git a/wiki/lib/plugins/config/lang/sr/intro.txt b/wiki/lib/plugins/config/lang/sr/intro.txt
deleted file mode 100644
index 0ee76ed..0000000
--- a/wiki/lib/plugins/config/lang/sr/intro.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-====== Управљач подешавањима ======
-
-Ову Ñтрану кориÑтите за контролу подешавања вашег DokuWiki-ја. За помоћ о индивидуалним поÑтавкама погледајте [[doku>config]]. За више информација о додацима погледајте [[doku>plugin:config]].
-
-Подешавања која имају Ñветло црвену позадину Ñу заштићена и не могу Ñе мењати овим додатком. Подешавања која имају Ñветло плаву позадину Ñу подразумеване вредноÑти и подешавања Ñа белом позадином Ñу локална за ову вики инÑталацију. И плава и бела подешавања Ñе могу мењати.
-
-Ðе заборавите да притиÑнете дугме **Сачувај** када завршите Ñа изменама, у Ñупротном ће ваше измене бити изгубљене.
diff --git a/wiki/lib/plugins/config/lang/sr/lang.php b/wiki/lib/plugins/config/lang/sr/lang.php
deleted file mode 100644
index e8f3b83..0000000
--- a/wiki/lib/plugins/config/lang/sr/lang.php
+++ /dev/null
@@ -1,185 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Иван Петровић petrovicivan@ubuntusrbija.org
- * @author Ivan Petrovic <petrovicivan@ubuntusrbija.org>
- * @author Miroslav Å olti <solti.miroslav@gmail.com>
- * @author Марко М. КоÑтић <marko.m.kostic@gmail.com>
- */
-$lang['menu']                  = 'Подешавања';
-$lang['error']                 = 'Подешавања ниÑу прихваћена јер поÑтоји вредноÑÑ‚ Ñа грешком, проверите измене које Ñте извршили и поновите Ñлање.<br />ВредноÑÑ‚(и) Ñа грешком Ñу приказане Ñа црвеним оквиром.';
-$lang['updated']               = 'Измене Ñу Ñачуване.';
-$lang['nochoice']              = '(не поÑтоји други избор)';
-$lang['locked']                = 'Датотека Ñа подешавањима не може да Ñе ажурира, ако вам то није намера проверите да ли Ñу дозволе иÑправно поÑтављене.';
-$lang['danger']                = 'ОпаÑно: Променом ове опције може Ñе деÑити да ваш вики и мени за подешавања буде недоÑтупан.';
-$lang['warning']               = 'Упозорење: Промена ове опције може проузроковати нежељене ефекте.';
-$lang['security']              = 'СигурноÑно упозорење: Промена ове опције може да проузрокује ÑигурноÑни ризик.';
-$lang['_configuration_manager'] = 'Управљач подешавањима';
-$lang['_header_dokuwiki']      = 'Подешавања Dokuwiki-ја';
-$lang['_header_plugin']        = 'Подешавања за додатке';
-$lang['_header_template']      = 'Подешавања за шаблоне';
-$lang['_header_undefined']     = 'ÐеразврÑтана подешавања';
-$lang['_basic']                = 'ОÑновна подешавања';
-$lang['_display']              = 'Подешавања приказа';
-$lang['_authentication']       = 'Подешавања провере';
-$lang['_anti_spam']            = 'Подешавања за борбу против Ñпама';
-$lang['_editing']              = 'Подешавања измена';
-$lang['_links']                = 'Подешавања линковања';
-$lang['_media']                = 'Подешавања медија';
-$lang['_advanced']             = 'Ðапредна подешавања';
-$lang['_network']              = 'Подешавања мреже';
-$lang['_msg_setting_undefined'] = 'Ðема метаподатака подешавања';
-$lang['_msg_setting_no_class'] = 'Ðема клаÑе подешавања';
-$lang['_msg_setting_no_default'] = 'Ðема подразумеване вредноÑти';
-$lang['title']                 = 'Ðазив викија';
-$lang['start']                 = 'Ðазив почетне Ñтранице';
-$lang['lang']                  = 'Језик';
-$lang['template']              = 'Шаблон';
-$lang['license']               = 'Под којом лиценцом желите да ваш материјал буде објављен?';
-$lang['savedir']               = 'ФаÑцикла у којој ће Ñе чувати подаци';
-$lang['basedir']               = 'ОÑновна фаÑцикла';
-$lang['baseurl']               = 'ОÑновни УРЛ';
-$lang['dmode']                 = 'Ðачин прављења фаÑцикла';
-$lang['fmode']                 = 'Ðачин прављења датотека';
-$lang['allowdebug']            = 'Укључи дебаговање <b>иÑкључи ако није потребно!</b>';
-$lang['recent']                = 'ПоÑледње промене';
-$lang['recent_days']           = 'Колико поÑледњих промена чувати (дани)';
-$lang['breadcrumbs']           = 'Број пређених корака (Ñтраница)';
-$lang['youarehere']            = 'ХиерархијÑке кораке (Ñтранице)';
-$lang['fullpath']              = 'Објави целу путању Ñтранице у заглављу на дну Ñтране';
-$lang['typography']            = 'Уради типографÑке замене';
-$lang['dformat']               = 'Облик датума (погледајте ПХПову <a href="http://php.net/strftime">strftime</a> функцију)';
-$lang['signature']             = 'ПотпиÑ';
-$lang['showuseras']            = 'Шта приказати за иÑпиÑивање кориÑника који је поÑледњи вршио измене';
-$lang['toptoclevel']           = 'Ðајвиши ниво за Ñадржај';
-$lang['tocminheads']           = 'Минималан број наÑлова који одређују да ли ће Садржај бити направљен';
-$lang['maxtoclevel']           = 'МакÑимални ниво за Ñадржај';
-$lang['maxseclevel']           = 'МакÑималан број Ñекција које Ñе мењају';
-$lang['camelcase']             = 'КориÑти CamelCase за линкове';
-$lang['deaccent']              = 'ЧиÑти имена Ñтраница';
-$lang['useheading']            = 'Преузми наÑлов првог нивоа за назив Ñтранице';
-$lang['sneaky_index']          = 'По инÑталацији DokuWiki ће у индекÑу приказати Ñве именÑке проÑторе. Укључивањем ове опције именÑки проÑтори у којима кориÑник нема право читања ће бити Ñакривени. КонÑеквенца је да ће и доÑтупни подпроÑтори бити Ñакривени. Ово доводи до неупотребљивоÑти Права приÑтупа у неким поÑтавкама.';
-$lang['hidepages']             = 'Сакриј подударне Ñтранице (на оÑнову регуларних израза)';
-$lang['useacl']                = 'КориÑти лиÑту права приÑтупа';
-$lang['autopasswd']            = 'ÐутогенериÑане лозинки';
-$lang['authtype']              = 'ПозадинÑки ÑиÑтем аутентификације';
-$lang['passcrypt']             = 'Метода шифровања лозинки';
-$lang['defaultgroup']          = 'Подразумевана група';
-$lang['superuser']             = 'СуперкориÑник - група, кориÑник или зарезом одвојена лиÑта кориÑника кориÑник1,@група1,кориÑник2 Ñа отвореним проÑтупом Ñвим Ñтраницама и функцијама без обзира на поÑтавке Контроле приÑтупа';
-$lang['manager']               = 'Управник - група, кориÑник или зарезом одвојена лиÑта кориÑника кориÑник1,@група1,кориÑник2 Ñа отвореним проÑтупом неким функцијама за управљање';
-$lang['profileconfirm']        = 'Потврди промене у профилу куцањем лозинке';
-$lang['rememberme']            = 'Дозволи Ñтални колачић за пријављивање (запамти ме)';
-$lang['disableactions']        = 'ИÑкључи DokuWiki наредбе';
-$lang['disableactions_check']  = 'Провера';
-$lang['disableactions_subscription'] = 'Претплата';
-$lang['disableactions_wikicode'] = 'Прикажи извор/Извези Ñирово';
-$lang['disableactions_other']  = 'ОÑтале наредбе (раздвојене зарезом)';
-$lang['auth_security_timeout'] = 'ВременÑка пауза у аутентификацији (Ñекунде)';
-$lang['securecookie']          = 'Да ли колачићи који Ñу поÑтављени преко ХТТПС треба Ñлати веб читачу Ñамо преко ХТТПС? ИÑкључите ову опцију Ñамо ако је пријављивање на вики заштићено ССЛом а оÑтали део викија незаштићен.';
-$lang['usewordblock']          = 'Блокирај Ñпам на оÑнову лиÑте речи';
-$lang['relnofollow']           = 'КориÑти rel="nofollow" за Ñпољне линкове';
-$lang['indexdelay']            = 'Одлагање индекÑирања (Ñекунде)';
-$lang['mailguard']             = 'Замутити Е-адреÑе';
-$lang['iexssprotect']          = 'Провера потенцијално малициозног кода у ЈаваÑкрипт или ХТМЛ коду';
-$lang['usedraft']              = 'ÐутоматÑки Ñачувај Ñкицу у току пиÑања измена';
-$lang['htmlok']                = 'Дозволи угњежђени ХТМЛ';
-$lang['phpok']                 = 'Дозволи угњежђени ПХП';
-$lang['locktime']              = 'МÐкÑимално трајање закључавања датотека (Ñек)';
-$lang['cachetime']             = 'МакÑимално трајање оÑтаве (Ñек)';
-$lang['target____wiki']        = 'Циљни прозор за интерне линкове';
-$lang['target____interwiki']   = 'Циљни прозор за међувики линкове';
-$lang['target____extern']      = 'Циљни прозор за Ñпољне линкове';
-$lang['target____media']       = 'Циљни прозор за медијÑке линкове';
-$lang['target____windows']     = 'Циљни прозор за Виндоуз линкове';
-$lang['refcheck']              = 'Провери референце медијÑких датотека';
-$lang['gdlib']                 = 'ГД Либ верзија';
-$lang['im_convert']            = 'Путања до алатке за коверзију ИмиџМеџик ';
-$lang['jpg_quality']           = 'ЈПГ квалитет компреÑије (0-100)';
-$lang['fetchsize']             = 'МакÑимална величина (у бајтима) коју може да преузме fetch.php од Ñпоља';
-$lang['subscribers']           = 'Укључи могућноÑÑ‚ претплате за Ñтранице';
-$lang['subscribe_time']        = 'Време након ког Ñе ÑпиÑкови претплатника и Ñижеи шаљу (у Ñекундама); Ова цифра би требало да буде мања од цифре наведене под recent_days';
-$lang['notify']                = 'Пошаљи обавештења о променама на ову е-адреÑу';
-$lang['registernotify']        = 'Пошаљи обавештење о новорегиÑтрованим кориÑницима на ову е-адреÑу';
-$lang['mailfrom']              = 'Е-адреÑа која Ñе кориÑти као пошиљаоц за аутоматÑке е-поруке';
-$lang['sitemap']               = 'Генериши Гугл мапу Ñајта (дан)';
-$lang['rss_type']              = 'Ð’Ñ€Ñта ИкÑМЛ довода';
-$lang['rss_linkto']            = 'ИкÑМЛ довод линкује на';
-$lang['rss_content']           = 'Шта треба приказати у ИкÑМЛ доводу?';
-$lang['rss_update']            = 'ИкÑМЛ';
-$lang['rss_show_summary']      = 'ИкÑМЛ довод приказује збир у наÑлову';
-$lang['updatecheck']           = 'Провера надоградњи и ÑигурноÑних упозорења? Dokuwiki мора да контактира update.dokuwiki.org ради добијања информација.';
-$lang['userewrite']            = 'Ðаправи леп УРЛ';
-$lang['useslash']              = 'КориÑти коÑу црту у УРЛу за раздвајање именÑких проÑтора ';
-$lang['sepchar']               = 'Раздвајање речи у називу Ñтранице';
-$lang['canonical']             = 'КориÑти правилне УРЛове';
-$lang['fnencode']              = 'Метод кодирања не-ASCII имена фајлова:';
-$lang['autoplural']            = 'Провери облик множине у линковима';
-$lang['compression']           = 'Метод компреÑије за attic датотеке';
-$lang['gzip_output']           = 'КориÑти гзип шифрирање за икÑХТМЛ';
-$lang['compress']              = 'Сажимај ЦСС и јаваÑкрипт';
-$lang['send404']               = 'Пошаљи поруку "ХТТП 404/Страница не поÑтоји" за непоÑтојеће Ñтранице';
-$lang['broken_iua']            = 'Да ли је функција ignore_user_abort function не ради на вашем ÑиÑтему? Ово може проузроковати неиндекÑирање података за претрагу. ИИС+ПХП/ЦГИ је чеÑто ван функције. Погледајте <a href="http://bugs.splitbrain.org/?do=details&amp;task_id=852">баг 852</a> за више информација.';
-$lang['xsendfile']             = 'КориÑти заглавље X-Sendfile да би веб Ñервер могао да иÑпоручује Ñтатичке датотеке? Веб Ñервер треба да подржава ову функцију.';
-$lang['renderer_xhtml']        = 'ИÑцртавање кориÑти главни (xhtml) вики иÑпиÑ';
-$lang['renderer__core']        = '%s (dokuwiki језгро)';
-$lang['renderer__plugin']      = '%s (додатак)';
-$lang['jquerycdn_o_0']         = 'Без CDN-a, Ñамо локална доÑтава';
-$lang['jquerycdn_o_jquery']    = 'CDN на адреÑи code.jquery.com';
-$lang['jquerycdn_o_cdnjs']     = 'CDN на cdnjs.com';
-$lang['proxy____host']         = 'Ðазив поÑредника (прокÑија)';
-$lang['proxy____port']         = 'Порт поÑредника (прокÑија)';
-$lang['proxy____user']         = 'КориÑничко име на поÑреднику (прокÑију)';
-$lang['proxy____pass']         = 'Лозинка на поÑреднику (прокÑију)';
-$lang['proxy____ssl']          = 'КориÑти ССЛ за повезивање Ñа поÑредником (прокÑијем)';
-$lang['proxy____except']       = 'Редован израз који би требало да Ñе подудара Ñа веб адреÑом Ñтранице за коју треба преÑкочити поÑредника (прокÑи).';
-$lang['safemodehack']          = 'Укључи преправку за безбедни режим';
-$lang['ftp____host']           = 'ФТП Ñервер за безбедни режим';
-$lang['ftp____port']           = 'ФТП порт за безбедни режим';
-$lang['ftp____user']           = 'ФТП кориÑничко име за безбедни режим';
-$lang['ftp____pass']           = 'ФТП лозинка за безбедни режим';
-$lang['ftp____root']           = 'ФТП оÑновна фаÑцикла за безбедни режим';
-$lang['license_o_']            = 'Ðије одабрано';
-$lang['typography_o_0']        = 'не';
-$lang['typography_o_1']        = 'Само дупли наводници';
-$lang['typography_o_2']        = 'Сви наводници (неће увек радити)';
-$lang['userewrite_o_0']        = 'не';
-$lang['userewrite_o_1']        = '.htaccess';
-$lang['userewrite_o_2']        = 'DokuWiki интерно';
-$lang['deaccent_o_0']          = 'иÑкључено';
-$lang['deaccent_o_1']          = 'уклони акценте';
-$lang['deaccent_o_2']          = 'романизуј';
-$lang['gdlib_o_0']             = 'ГД Либ није доÑтупан';
-$lang['gdlib_o_1']             = 'Верзија 1.*';
-$lang['gdlib_o_2']             = 'Ðутопроналажење';
-$lang['rss_type_o_rss']        = 'РСС 0.91';
-$lang['rss_type_o_rss1']       = 'РСС 1.0';
-$lang['rss_type_o_rss2']       = 'РСС 2.0';
-$lang['rss_type_o_atom']       = 'Ðтом 0.3';
-$lang['rss_type_o_atom1']      = 'Ðтом 1.0';
-$lang['rss_content_o_abstract'] = 'Издвојити';
-$lang['rss_content_o_diff']    = 'ЈедноÑтране разлике';
-$lang['rss_content_o_htmldiff'] = 'ХТМЛ форматирана табела разлика';
-$lang['rss_content_o_html']    = 'ХТМЛ Ñадржај Ñтранице';
-$lang['rss_linkto_o_diff']     = 'приказ разлика';
-$lang['rss_linkto_o_page']     = 'иÑправљена Ñтраница';
-$lang['rss_linkto_o_rev']      = 'лиÑта иÑправки';
-$lang['rss_linkto_o_current']  = 'тренутна Ñтраница';
-$lang['compression_o_0']       = 'не';
-$lang['compression_o_gz']      = 'gzip';
-$lang['compression_o_bz2']     = 'bz2';
-$lang['xsendfile_o_0']         = 'не';
-$lang['xsendfile_o_1']         = 'ВлаÑничко lighttpd заглавље (пре верзије 1.5)';
-$lang['xsendfile_o_2']         = 'Стандардно заглавље X-Sendfile';
-$lang['xsendfile_o_3']         = 'ВлаÑничко заглавље Nginx X-Accel-Redirect';
-$lang['showuseras_o_loginname'] = 'КориÑничко име';
-$lang['showuseras_o_username'] = 'Име и презиме кориÑника';
-$lang['showuseras_o_username_link'] = 'Пуно име кориÑника као кориÑничка веза међувикија';
-$lang['showuseras_o_email']    = 'Е-адреÑа (замућено по подешавањима mailguard-а)';
-$lang['showuseras_o_email_link'] = 'КориÑничка Е-адреÑа као mailto: веза';
-$lang['useheading_o_0']        = 'Ðикада';
-$lang['useheading_o_navigation'] = 'Сами навигација';
-$lang['useheading_o_content']  = 'Само за Ñадржај викија';
-$lang['useheading_o_1']        = 'Увек';
-$lang['readdircache']          = 'МакÑимално време трајања за readdir cache (у Ñекундама)';
diff --git a/wiki/lib/plugins/config/lang/sv/intro.txt b/wiki/lib/plugins/config/lang/sv/intro.txt
deleted file mode 100644
index fd77634..0000000
--- a/wiki/lib/plugins/config/lang/sv/intro.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-====== Hantera inställningar ======
-
-Använd den här sidan för att göra inställningar i din Dokuwiki. För hjälp angående specifika inställningar, se [[doku>config]]. För mer detaljer om den här insticksmodulen, se [[doku>plugin:config]].
-
-Inställningar med en rosa bakgrund är skyddade och kan inte ändras med den här insticksmodulen. Inställningar med en blå bakgrund är standardvärden, och inställningar som visas med en vit bakgrund har ändrats i den här installationen. Både blåa och vita inställningar kan ändras.
-
-Kom i håg att trycka på knappen **Spara** innan du lämnar den här sidan, annars kommer ändringarna att gå förlorade.
diff --git a/wiki/lib/plugins/config/lang/sv/lang.php b/wiki/lib/plugins/config/lang/sv/lang.php
deleted file mode 100644
index 268cc36..0000000
--- a/wiki/lib/plugins/config/lang/sv/lang.php
+++ /dev/null
@@ -1,197 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Tor Härnqvist <tor@harnqvist.se>
- * @author Per Foreby <per@foreby.se>
- * @author Nicklas Henriksson <nicklas[at]nihe.se>
- * @author HÃ¥kan Sandell <hakan.sandell[at]mydata.se>
- * @author Dennis Karlsson
- * @author Tormod Otter Johansson <tormod@latast.se>
- * @author Pontus Bergendahl <pontus.bergendahl@gmail.com>
- * @author Emil Lind <emil@sys.nu>
- * @author Bogge Bogge <bogge@bogge.com>
- * @author Peter Åström <eaustreum@gmail.com>
- */
-$lang['menu']                  = 'Hantera inställningar';
-$lang['error']                 = 'Inställningarna uppdaterades inte på grund av ett felaktigt värde. Titta igenom dina ändringar och försök sedan spara igen.
-                       <br />Felaktiga värden är omgivna av en röd ram.';
-$lang['updated']               = 'Inställningarna uppdaterade.';
-$lang['nochoice']              = '(inga andra val tillgängliga)';
-$lang['locked']                = 'Filen med inställningar kan inte uppdateras. Om det inte är meningen att det ska vara så, <br />
-                       kontrollera att filen med lokala inställningar har rätt namn och filskydd.';
-$lang['danger']                = 'Risk: Denna förändring kan göra wikin och inställningarna otillgängliga.';
-$lang['warning']               = 'Varning: Denna förändring kan orsaka icke åsyftade resultat.';
-$lang['security']              = 'Säkerhetsvarning: Denna förändring kan innebära en säkerhetsrisk.';
-$lang['_configuration_manager'] = 'Hantera inställningar';
-$lang['_header_dokuwiki']      = 'Inställningar för DokuWiki';
-$lang['_header_plugin']        = 'Inställningar för insticksmoduler';
-$lang['_header_template']      = 'Inställningar för mallar';
-$lang['_header_undefined']     = 'Odefinierade inställningar';
-$lang['_basic']                = 'Grundläggande inställningar';
-$lang['_display']              = 'Inställningar för presentation';
-$lang['_authentication']       = 'Inställningar för autentisering';
-$lang['_anti_spam']            = 'Inställningar för anti-spam';
-$lang['_editing']              = 'Inställningar för redigering';
-$lang['_links']                = 'Inställningar för länkar';
-$lang['_media']                = 'Inställningar för medier';
-$lang['_notifications']        = 'Noterings inställningar';
-$lang['_syndication']          = 'Syndikats inställningar';
-$lang['_advanced']             = 'Avancerade inställningar';
-$lang['_network']              = 'Nätverksinställningar';
-$lang['_msg_setting_undefined'] = 'Ingen inställningsmetadata.';
-$lang['_msg_setting_no_class'] = 'Ingen inställningsklass.';
-$lang['_msg_setting_no_default'] = 'Inget standardvärde.';
-$lang['title']                 = 'Wikins namn';
-$lang['start']                 = 'Startsidans namn';
-$lang['lang']                  = 'Språk';
-$lang['template']              = 'Mall';
-$lang['license']               = 'Under vilken licens skall ditt innehåll publiceras?';
-$lang['savedir']               = 'Katalog för att spara data';
-$lang['basedir']               = 'Grundkatalog';
-$lang['baseurl']               = 'Grund-webbadress';
-$lang['cookiedir']             = 'Cookie sökväg. Lämna blankt för att använda basurl.';
-$lang['dmode']                 = 'Filskydd för nya kataloger';
-$lang['fmode']                 = 'Filskydd för nya filer';
-$lang['allowdebug']            = 'Tillåt felsökning <b>stäng av om det inte behövs!</b>';
-$lang['recent']                = 'Antal poster under "Nyligen ändrat"';
-$lang['recent_days']           = 'Hur många ändringar som ska sparas (dagar)';
-$lang['breadcrumbs']           = 'Antal spår';
-$lang['youarehere']            = 'Hierarkiska spår';
-$lang['fullpath']              = 'Visa fullständig sökväg i sidfoten';
-$lang['typography']            = 'Aktivera typografiska ersättningar';
-$lang['dformat']               = 'Datumformat (se PHP:s <a href="http://php.net/strftime">strftime</a>-funktion)';
-$lang['signature']             = 'Signatur';
-$lang['showuseras']            = 'Vad som skall visas när man visar den användare som senast redigerade en sida';
-$lang['toptoclevel']           = 'Toppnivå för innehållsförteckning';
-$lang['tocminheads']           = 'Minimalt antal rubriker för att avgöra om innehållsförteckning byggs';
-$lang['maxtoclevel']           = 'Maximal nivå för innehållsförteckning';
-$lang['maxseclevel']           = 'Maximal nivå för redigering av rubriker';
-$lang['camelcase']             = 'Använd CamelCase för länkar';
-$lang['deaccent']              = 'Rena sidnamn';
-$lang['useheading']            = 'Använda första rubriken som sidnamn';
-$lang['sneaky_index']          = 'Som standard visar DokuWiki alla namnrymder på indexsidan. Genom att aktivera det här valet döljer man namnrymder som användaren inte har behörighet att läsa. Det kan leda till att man döljer åtkomliga undernamnrymder, och gör indexet oanvändbart med vissa ACL-inställningar.';
-$lang['hidepages']             = 'Dölj matchande sidor (reguljära uttryck)';
-$lang['useacl']                = 'Använd behörighetslista (ACL)';
-$lang['autopasswd']            = 'Autogenerera lösenord';
-$lang['authtype']              = 'System för autentisering';
-$lang['passcrypt']             = 'Metod för kryptering av lösenord';
-$lang['defaultgroup']          = 'Förvald grupp';
-$lang['superuser']             = 'Huvudadministratör - en grupp eller en användare med full tillgång till alla sidor och funktioner, oavsett behörighetsinställningars';
-$lang['manager']               = 'Administratör -- en grupp eller användare med tillgång till vissa administrativa funktioner.';
-$lang['profileconfirm']        = 'Bekräfta ändringarna i profilen med lösenordet';
-$lang['rememberme']            = 'Tillåt permanenta inloggningscookies (kom ihåg mig)';
-$lang['disableactions']        = 'Stäng av funktioner i DokuWiki';
-$lang['disableactions_check']  = 'Kontroll';
-$lang['disableactions_subscription'] = 'Prenumerera/Säg upp prenumeration';
-$lang['disableactions_wikicode'] = 'Visa källkod/Exportera råtext';
-$lang['disableactions_profile_delete'] = 'Ta bort eget konto';
-$lang['disableactions_other']  = 'Andra funktioner (kommaseparerade)';
-$lang['auth_security_timeout'] = 'Autentisieringssäkerhets timeout (sekunder)';
-$lang['securecookie']          = 'Skall cookies som sätts via HTTPS endast skickas via HTTPS från webbläsaren? Avaktivera detta alternativ endast om inloggningen till din wiki är säkrad med SSL men läsning av wikin är osäkrad.';
-$lang['usewordblock']          = 'Blockera spam baserat på ordlista';
-$lang['relnofollow']           = 'Använd rel="nofollow" för externa länkar';
-$lang['indexdelay']            = 'Tidsfördröjning före indexering (sek)';
-$lang['mailguard']             = 'Koda e-postadresser';
-$lang['iexssprotect']          = 'Kontrollera om uppladdade filer innehåller eventuellt skadlig JavaScript eller HTML-kod';
-$lang['usedraft']              = 'Spara utkast automatiskt under redigering';
-$lang['htmlok']                = 'Tillåt inbäddad HTML';
-$lang['phpok']                 = 'Tillåt inbäddad PHP';
-$lang['locktime']              = 'Maximal livslängd för fillåsning (sek)';
-$lang['cachetime']             = 'Maximal livslängd för cache (sek)';
-$lang['target____wiki']        = 'Målfönster för interna länkar';
-$lang['target____interwiki']   = 'Målfönster för interwiki-länkar';
-$lang['target____extern']      = 'Målfönster för externa länkar';
-$lang['target____media']       = 'Målfönster för medialänkar';
-$lang['target____windows']     = 'Målfönster för windowslänkar';
-$lang['refcheck']              = 'Kontrollera referenser till mediafiler';
-$lang['gdlib']                 = 'Version av GD-biblioteket';
-$lang['im_convert']            = 'Sökväg till ImageMagicks konverteringsverktyg';
-$lang['jpg_quality']           = 'Kvalitet för JPG-komprimering (0-100)';
-$lang['fetchsize']             = 'Maximal storlek (bytes) som fetch.php får ladda ned  externt';
-$lang['subscribers']           = 'Aktivera stöd för prenumeration på ändringar';
-$lang['notify']                = 'Skicka meddelande om ändrade sidor till den här e-postadressen';
-$lang['registernotify']        = 'Skicka meddelande om nyregistrerade användare till en här e-postadressen';
-$lang['mailfrom']              = 'Avsändaradress i automatiska e-postmeddelanden';
-$lang['mailprefix']            = 'Prefix i början på ämnesraden vid automatiska e-postmeddelanden';
-$lang['sitemap']               = 'Skapa Google sitemap (dagar)';
-$lang['rss_type']              = 'Typ av XML-flöde';
-$lang['rss_linkto']            = 'XML-flöde pekar på';
-$lang['rss_content']           = 'Vad ska visas för saker i XML-flödet?';
-$lang['rss_update']            = 'Uppdateringsintervall för XML-flöde (sek)';
-$lang['rss_show_summary']      = 'XML-flöde visar sammanfattning i rubriken';
-$lang['rss_media']             = 'Vilka ändringar ska listas i XML flödet?';
-$lang['updatecheck']           = 'Kontrollera uppdateringar och säkerhetsvarningar? DokuWiki behöver kontakta update.dokuwiki.org för den här funktionen.';
-$lang['userewrite']            = 'Använd rena webbadresser';
-$lang['useslash']              = 'Använd snedstreck för att separera namnrymder i webbadresser';
-$lang['sepchar']               = 'Ersätt blanktecken i webbadresser med';
-$lang['canonical']             = 'Använd fullständiga webbadresser';
-$lang['fnencode']              = 'Metod för kodning av icke-ASCII filnamn.';
-$lang['autoplural']            = 'Leta efter pluralformer av länkar';
-$lang['compression']           = 'Metod för komprimering av gamla versioner';
-$lang['gzip_output']           = 'Använd gzip Content-Encoding för xhtml';
-$lang['compress']              = 'Komprimera CSS och javascript';
-$lang['send404']               = 'Skicka "HTTP 404/Page Not Found" för sidor som inte finns';
-$lang['broken_iua']            = 'Är funktionen ignore_user_abort trasig på ditt system? Det kan i så fall leda till att indexering av sökningar inte fungerar. Detta är ett känt problem med IIS+PHP/CGI. Se <a href="http://bugs.splitbrain.org/?do=details&amp;task_id=852">Bug 852</a> för mer info.';
-$lang['xsendfile']             = 'Använd X-Sendfile huvudet för att låta webservern leverera statiska filer? Din webserver behöver stöd för detta.';
-$lang['renderer_xhtml']        = 'Generera för användning i huvudwikipresentation (xhtml)';
-$lang['renderer__core']        = '%s (dokuwiki core)';
-$lang['renderer__plugin']      = '%s (plugin)';
-$lang['jquerycdn_o_jquery']    = 'CDN på code.jquery.com';
-$lang['jquerycdn_o_cdnjs']     = 'CDN på cdnjs.com';
-$lang['proxy____host']         = 'Proxyserver';
-$lang['proxy____port']         = 'Proxyport';
-$lang['proxy____user']         = 'Användarnamn för proxy';
-$lang['proxy____pass']         = 'Lösenord för proxy';
-$lang['proxy____ssl']          = 'Använd ssl för anslutning till proxy';
-$lang['proxy____except']       = 'Regular expression för matchning av URL som proxy ska hoppa över.';
-$lang['safemodehack']          = 'Aktivera safemode hack';
-$lang['ftp____host']           = 'FTP-server för safemode hack';
-$lang['ftp____port']           = 'FTP-port för safemode hack';
-$lang['ftp____user']           = 'FTP-användarnamn för safemode hack';
-$lang['ftp____pass']           = 'FTP-lösenord för safemode hack';
-$lang['ftp____root']           = 'FTP-rotkatalog för safemode hack';
-$lang['license_o_']            = 'Ingen vald';
-$lang['typography_o_0']        = 'Inga';
-$lang['typography_o_1']        = 'enbart dubbla citattecken';
-$lang['typography_o_2']        = 'både dubbla och enkla citattecken (fungerar inte alltid)';
-$lang['userewrite_o_0']        = 'av';
-$lang['userewrite_o_1']        = '.htaccess';
-$lang['userewrite_o_2']        = 'DokuWiki internt';
-$lang['deaccent_o_0']          = 'av';
-$lang['deaccent_o_1']          = 'ta bort accenter';
-$lang['deaccent_o_2']          = 'romanisera';
-$lang['gdlib_o_0']             = 'GD-bibliotek inte tillgängligt';
-$lang['gdlib_o_1']             = 'Version 1.x';
-$lang['gdlib_o_2']             = 'Automatisk detektering';
-$lang['rss_type_o_rss']        = 'RSS 0.91';
-$lang['rss_type_o_rss1']       = 'RSS 1.0';
-$lang['rss_type_o_rss2']       = 'RSS 2.0';
-$lang['rss_type_o_atom']       = 'Atom 0.3';
-$lang['rss_type_o_atom1']      = 'Atom 1.0';
-$lang['rss_content_o_abstract'] = 'Abstrakt';
-$lang['rss_content_o_diff']    = 'Unified Diff';
-$lang['rss_content_o_htmldiff'] = 'HTML formaterad diff tabell';
-$lang['rss_content_o_html']    = 'Sidans innehåll i full HTML';
-$lang['rss_linkto_o_diff']     = 'lista på skillnader';
-$lang['rss_linkto_o_page']     = 'den reviderade sidan';
-$lang['rss_linkto_o_rev']      = 'lista över ändringar';
-$lang['rss_linkto_o_current']  = 'den aktuella sidan';
-$lang['compression_o_0']       = 'ingen';
-$lang['compression_o_gz']      = 'gzip';
-$lang['compression_o_bz2']     = 'bz2';
-$lang['xsendfile_o_0']         = 'använd ej';
-$lang['xsendfile_o_1']         = 'Proprietär lighttpd-header (före version 1.5)';
-$lang['xsendfile_o_2']         = 'Standard X-Sendfile-huvud';
-$lang['xsendfile_o_3']         = 'Proprietär Nginx X-Accel-Redirect header';
-$lang['showuseras_o_loginname'] = 'Användarnamn';
-$lang['showuseras_o_username'] = 'Namn';
-$lang['showuseras_o_username_link'] = 'Användarens fullständiga namn som interwiki-användarlänk';
-$lang['showuseras_o_email']    = 'Användarens e-postadress (obfuskerad enligt inställningarna i mailguard)';
-$lang['showuseras_o_email_link'] = 'Användarens e-postadress som mailto: länk';
-$lang['useheading_o_0']        = 'Aldrig';
-$lang['useheading_o_navigation'] = 'Endst navigering';
-$lang['useheading_o_content']  = 'Endast innehåll i wiki';
-$lang['useheading_o_1']        = 'Alltid';
-$lang['readdircache']          = 'Max ålder för readdir cache (sek)';
diff --git a/wiki/lib/plugins/config/lang/th/lang.php b/wiki/lib/plugins/config/lang/th/lang.php
deleted file mode 100644
index ce1d30d..0000000
--- a/wiki/lib/plugins/config/lang/th/lang.php
+++ /dev/null
@@ -1,105 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author Komgrit Niyomrath <n.komgrit@gmail.com>
- * @author Kittithat Arnontavilas mrtomyum@gmail.com
- * @author Arthit Suriyawongkul <arthit@gmail.com>
- * @author Kittithat Arnontavilas <mrtomyum@gmail.com>
- * @author Thanasak Sompaisansin <jombthep@gmail.com>
- */
-$lang['menu']                  = 'ตั้งค่าà¸à¸²à¸£à¸›à¸£à¸±à¸šà¹à¸•่ง';
-$lang['updated']               = 'à¸à¸²à¸£à¸›à¸£à¸±à¸šà¹à¸•่งค่าถูà¸à¸šà¸±à¸™à¸—ึà¸à¹€à¸£à¸µà¸¢à¸šà¸£à¹‰à¸­à¸¢';
-$lang['_configuration_manager'] = 'จัดà¸à¸²à¸£à¸à¸²à¸£à¸›à¸£à¸±à¸šà¸•ั้งค่า';
-$lang['_header_dokuwiki']      = 'à¸à¸²à¸£à¸•ั้งค่า DokuWiki';
-$lang['_header_plugin']        = 'à¸à¸²à¸£à¸•ั้งค่า Plugin';
-$lang['_header_template']      = 'à¸à¸²à¸£à¸•ั้งค่าเทมเพลต';
-$lang['_basic']                = 'à¸à¸²à¸£à¸•ั้งค่าพื้นà¸à¸²à¸™';
-$lang['_display']              = 'à¸à¸²à¸£à¸•ั้งค่าà¸à¸²à¸£à¹à¸ªà¸”งผล';
-$lang['_authentication']       = 'à¸à¸²à¸£à¸•ั้งค่าสิทธิ์à¸à¸²à¸£à¹€à¸‚้าถึง';
-$lang['_anti_spam']            = 'à¸à¸²à¸£à¸•ั้งค่าป้องà¸à¸±à¸™à¸ªà¹à¸›à¸¡';
-$lang['_editing']              = 'à¸à¸²à¸£à¸•ั้งค่าà¸à¸²à¸£à¹à¸à¹‰à¹„ขปรับปรุง';
-$lang['_links']                = 'à¸à¸²à¸£à¸•ั้งค่าลิงà¸à¹Œ';
-$lang['_media']                = 'à¸à¸²à¸£à¸•ั้งค่าภาพ-เสียง';
-$lang['_advanced']             = 'à¸à¸²à¸£à¸•ั้งค่าขั้นสูง';
-$lang['_network']              = 'à¸à¸²à¸£à¸•ั้งค่าเครือข่าย';
-$lang['start']                 = 'ชื่อหน้าเริ่มต้น';
-$lang['lang']                  = 'ภาษา';
-$lang['savedir']               = 'ไดเรคทอรีที่บันทึà¸à¸‚้อมูล';
-$lang['basedir']               = 'ไดเรคทอรีพื้นà¸à¸²à¸™';
-$lang['baseurl']               = 'URL พื้นà¸à¸²à¸™';
-$lang['recent']                = 'à¸à¸²à¸£à¹€à¸›à¸¥à¸µà¹ˆà¸¢à¸™à¹à¸›à¸¥à¸‡à¸¥à¹ˆà¸²à¸ªà¸¸à¸”';
-$lang['recent_days']           = 'จำนวนวันที่เà¸à¹‡à¸šà¸£à¸²à¸¢à¸à¸²à¸£à¸—ี่ถูà¸à¹à¸à¹‰à¹„ขล่าสุด';
-$lang['signature']             = 'ลายเซนต์';
-$lang['hidepages']             = 'ซ่อนหน้าที่เข้าà¸à¸±à¸™à¹„ด้ (regular expressions)';
-$lang['autopasswd']            = 'สร้างรหัสผ่านให้อัตโนมัติ';
-$lang['passcrypt']             = 'à¸à¸£à¸°à¸šà¸§à¸™à¸à¸²à¸£à¹€à¸‚้ารหัส สำหรับเà¸à¹‡à¸šà¸šà¸±à¸™à¸—ึà¸à¸£à¸«à¸±à¸ªà¸œà¹ˆà¸²à¸™';
-$lang['defaultgroup']          = 'à¸à¸¥à¸¸à¹ˆà¸¡à¸¡à¸²à¸•รà¸à¸²à¸™';
-$lang['profileconfirm']        = 'ใส่รหัสผ่านเพื่อยืนยันà¸à¸²à¸£à¹€à¸›à¸¥à¸µà¹ˆà¸¢à¸™à¹à¸›à¸¥à¸‡à¸‚้อมูล';
-$lang['rememberme']            = 'อนุà¸à¸²à¸•ให้จดจำà¸à¸²à¸£ login à¹à¸šà¸šà¸–าวร';
-$lang['disableactions_check']  = 'ตรวจสอบ';
-$lang['auth_security_timeout'] = 'ระยะเวลาที่จะตัดà¸à¸²à¸£à¹€à¸Šà¸·à¹ˆà¸­à¸¡à¸•่อà¹à¸šà¸šà¸à¸²à¸£à¹ƒà¸Šà¹‰à¸‡à¸²à¸™à¸”้วยสิทธิ์ผู้ใช้ (วินาที)';
-$lang['usewordblock']          = 'คำที่จะถือว่าเป็นสà¹à¸›à¸¡';
-$lang['relnofollow']           = 'ใช้ rel="nofollow" สำหรับลิงà¸à¹Œà¸ à¸²à¸¢à¸™à¸­à¸';
-$lang['htmlok']                = 'อนุà¸à¸²à¸•ให้ใช้ HTML';
-$lang['phpok']                 = 'อนุà¸à¸²à¸•ให้ใช้ PHP';
-$lang['locktime']              = 'ระยะเวลานานสุด ที่จะล็อคไม่ให้à¹à¸à¹‰à¹„ขไฟล์ (วินาที)';
-$lang['cachetime']             = 'ระยะเวลาสำหรับà¸à¸²à¸£à¹€à¸à¹‡à¸šà¹à¸„ช (วินาที)';
-$lang['target____wiki']        = 'เปิดà¹à¸ªà¸”งลิงà¸à¹Œà¸ à¸²à¸¢à¹ƒà¸™ ในหน้าเว็บà¹à¸šà¸šà¹ƒà¸”';
-$lang['target____interwiki']   = 'เปิดà¹à¸ªà¸”งลิงà¸à¹Œ interwiki ในหน้าเว็บà¹à¸šà¸šà¹ƒà¸”';
-$lang['target____extern']      = 'เปิดà¹à¸ªà¸”งลิงà¸à¹Œà¸ à¸²à¸¢à¸™à¸­à¸ ในหน้าเว็บà¹à¸šà¸šà¹ƒà¸”';
-$lang['target____media']       = 'เปิดà¹à¸ªà¸”งลิงà¸à¹Œà¸‚องมีเดีย ในหน้าเว็บà¹à¸šà¸šà¹ƒà¸”';
-$lang['target____windows']     = 'เปิดà¹à¸ªà¸”งลิงà¸à¹Œà¸‚องวินโดวส์ ในหน้าเว็บà¹à¸šà¸šà¹ƒà¸”';
-$lang['gdlib']                 = 'เลขรุ่นของ GD Library';
-$lang['fetchsize']             = 'ขนาดไฟล์ใหà¸à¹ˆà¸ªà¸¸à¸” (bytes) fetch.php ที่จะดาวน์โหลดจาà¸à¸ à¸²à¸¢à¸™à¸­à¸';
-$lang['notify']                = 'ส่งà¸à¸²à¸£à¹à¸ˆà¹‰à¸‡à¹€à¸•ือนไปยังที่อยู่อีเมลนี้';
-$lang['sitemap']               = 'สร้าง à¸à¸¹à¹€à¸à¸´à¹‰à¸¥ ไซต์à¹à¸¡à¸ž (จำนวนวัน)';
-$lang['rss_type']              = 'ชนิดของ XML feed';
-$lang['rss_linkto']            = 'ลิงà¸à¹Œà¹€à¸Šà¸·à¹ˆà¸­à¸¡à¹‚ยงไปยัง XML feed';
-$lang['rss_content']           = 'ต้องà¸à¸²à¸£à¹ƒà¸«à¹‰à¸¡à¸µà¸­à¸°à¹„รà¹à¸ªà¸”งอยู่ใน XML feed บ้าง?';
-$lang['rss_update']            = 'ความถี่ในà¸à¸²à¸£à¸­à¸±à¸žà¹€à¸”ท XML feed (เป็นวินาที)';
-$lang['rss_show_summary']      = 'ไตเติ้ลของบทสรุปย่อของ XML feed';
-$lang['userewrite']            = 'à¹à¸ªà¸”งที่อยู่เว็บ (URL) à¹à¸šà¸šà¸­à¹ˆà¸²à¸™à¹€à¸‚้าใจง่าย';
-$lang['gzip_output']           = 'ใช้ gzip Content-Encoding สำหรับ xhtml';
-$lang['compress']              = 'บีบย่อ CSS à¹à¸¥à¸° javascript (เพื่อให้à¹à¸ªà¸”งหน้าเว็บเร็วขึ้น)';
-$lang['send404']               = 'ให้à¹à¸ªà¸”ง "HTTP 404/Page Not Found" เมื่อไม่พบข้อมูลหน้านั้น';
-$lang['renderer__core']        = '%s (à¹à¸à¸™à¸«à¸¥à¸±à¸à¸‚อง dokuwiki)';
-$lang['renderer__plugin']      = '%s (โปรà¹à¸à¸£à¸¡à¹€à¸ªà¸£à¸´à¸¡ - plugin)';
-$lang['proxy____host']         = 'ชื่อ server ของ proxy';
-$lang['proxy____port']         = 'port ของ proxy';
-$lang['proxy____user']         = 'user name ของ proxy';
-$lang['proxy____pass']         = 'รหัสผ่านของ proxy';
-$lang['proxy____ssl']          = 'ใช้ ssl ในà¸à¸²à¸£à¹€à¸Šà¸·à¹ˆà¸­à¸¡à¸•่อà¸à¸±à¸š proxy';
-$lang['license_o_']            = 'ไม่ถูà¸à¹€à¸¥à¸·à¸­à¸';
-$lang['typography_o_0']        = 'ไม่มี';
-$lang['typography_o_1']        = 'ไม่รวมเครื่องหมายอัà¸à¸›à¸£à¸°à¸à¸²à¸¨à¹€à¸”ี่ยว';
-$lang['typography_o_2']        = 'รวมเครื่องหมายอัà¸à¸›à¸£à¸°à¸à¸²à¸¨à¹€à¸”ี่ยว (อาจใช้ไม่ได้ในบางครั้ง)';
-$lang['userewrite_o_0']        = 'ไม่มี';
-$lang['userewrite_o_1']        = '.htaccess';
-$lang['deaccent_o_0']          = 'ปิด';
-$lang['gdlib_o_1']             = 'Version 1.x';
-$lang['gdlib_o_2']             = 'ตรวจสอบอัตโนมัติ';
-$lang['rss_type_o_rss']        = 'RSS 0.91';
-$lang['rss_type_o_rss1']       = 'RSS 1.0';
-$lang['rss_type_o_rss2']       = 'RSS 2.0';
-$lang['rss_type_o_atom']       = 'Atom 0.3';
-$lang['rss_type_o_atom1']      = 'Atom 1.0';
-$lang['rss_content_o_abstract'] = 'บทคัดย่อ';
-$lang['rss_content_o_html']    = 'หน้าเนื้อหาà¹à¸šà¸šà¹à¸ªà¸”ง HTML เต็มรูปà¹à¸šà¸š';
-$lang['rss_linkto_o_diff']     = 'มุมมองที่à¹à¸•à¸à¸•่าง';
-$lang['rss_linkto_o_rev']      = 'รายà¸à¸²à¸£à¸‚องà¸à¸²à¸£à¸›à¸£à¸±à¸šà¹à¸à¹‰à¹„ข';
-$lang['rss_linkto_o_current']  = 'หน้าปัจจุบัน';
-$lang['compression_o_0']       = 'ไม่มีà¸à¸²à¸£à¸šà¸µà¸šà¸­à¸±à¸”';
-$lang['compression_o_gz']      = 'gzip';
-$lang['compression_o_bz2']     = 'bz2';
-$lang['xsendfile_o_0']         = 'ไม่ใช้';
-$lang['xsendfile_o_2']         = 'หัวเอà¸à¸ªà¸²à¸£à¹à¸šà¸š Standard X-Sendfile';
-$lang['xsendfile_o_3']         = 'หัวเอà¸à¸ªà¸²à¸£à¹à¸šà¸š Proprietary Nginx X-Accel-Redirect';
-$lang['showuseras_o_loginname'] = 'ชื่อผู้ใช้';
-$lang['showuseras_o_username'] = 'ชื่อ-นามสà¸à¸¸à¸¥';
-$lang['showuseras_o_email_link'] = 'อีเมลของผู้ใช้ ที่จะปราà¸à¸ ณ mailto: link';
-$lang['useheading_o_0']        = 'ไม่เลย';
-$lang['useheading_o_navigation'] = 'เฉพาะตัวนำทาง';
-$lang['useheading_o_content']  = 'เฉพาะเนื้อหาวิà¸à¸´';
-$lang['useheading_o_1']        = 'เสมอ';
diff --git a/wiki/lib/plugins/config/lang/tr/intro.txt b/wiki/lib/plugins/config/lang/tr/intro.txt
deleted file mode 100644
index 2602fb3..0000000
--- a/wiki/lib/plugins/config/lang/tr/intro.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-====== Site Ayarları Yönetimi ======
-
-Bu sayfayı DokuWiki kurulumunun ayarlarını değiştirmek için kullanabilirsiniz. Ayarların ayrıntıları için [[doku>config]] sayfasını kullanınız. Bu eklenti ile ilgili daha ayrıntılı bilgi için [[doku>plugin:config]] sayfasına bakınız.
-
-Açık kırmızı renkle gösterilenler bu eklenti ile değiştirilemez. Mavi ile gösterilenler varsayılan değerlerdir. Beyaz altyazı ile gösterilenler is bu kuruluma özel değiştirilmiş ayarlardır. Mavi ve beyaz ayarlar değiştirilebilir.
-
-Değişiklik yapmanız durumunda **Kaydet** tuşuna basmayı unutmayınız. Aksi takdirde sayfayı kapattığınızda tüm ayarlar silinecektir.
diff --git a/wiki/lib/plugins/config/lang/tr/lang.php b/wiki/lib/plugins/config/lang/tr/lang.php
deleted file mode 100644
index 3e83d45..0000000
--- a/wiki/lib/plugins/config/lang/tr/lang.php
+++ /dev/null
@@ -1,135 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author Aydın Coşkuner <aydinweb@gmail.com>
- * @author Cihan Kahveci <kahvecicihan@gmail.com>
- * @author Yavuz Selim <yavuzselim@gmail.com>
- * @author Caleb Maclennan <caleb@alerque.com>
- * @author farukerdemoncel@gmail.com
- * @author Mete Cuma <mcumax@gmail.com>
- */
-$lang['menu']                  = 'Site Ayarları';
-$lang['error']                 = 'Ayarlar yanlış bir değer girildiği için güncellenemedi. Lütfen değişikliklerinizi gözden geçirin ve tekrar gönderin.
-<br />Yanlış değer(ler) kırmızı çerçeve içinde gösterilecektir.';
-$lang['updated']               = 'Ayarlar başarıyla güncellendi.';
-$lang['nochoice']              = '(başka seçim bulunmamaktadır)';
-$lang['locked']                = 'Ayar dosyası güncellenemedi. <br />
-dosya adı ve yetkilerininin doğru olduğuna emin olun.';
-$lang['danger']                = 'Tehlike: Bu özelliği değiştirirseniz, wiki\'nize ve konfigürasyon menunüze ulaşamayabilirsiniz.';
-$lang['warning']               = 'Uyarı: Bu özelliği değiştirmek istenmeyen davranışa sebep olabilir.';
-$lang['security']              = 'Güvenlik Uyarısı: Bu özelliği değiştirmek güvenlik riski çıkartabilir.';
-$lang['_configuration_manager'] = 'Site Ayarları Yönetimi';
-$lang['_header_dokuwiki']      = 'DokuWiki Ayarları';
-$lang['_header_plugin']        = 'Eklenti Ayarları';
-$lang['_header_template']      = 'Şablon (Template) Ayarları';
-$lang['_header_undefined']     = 'Tanımsız Ayarlar';
-$lang['_basic']                = 'Ana Ayarlar';
-$lang['_display']              = 'Gösterim Ayarları';
-$lang['_authentication']       = 'Onaylama Ayarları';
-$lang['_anti_spam']            = 'Spam Engelleme Ayarları';
-$lang['_editing']              = 'Sayfa Yazımı Ayarları';
-$lang['_links']                = 'Bağlantı Ayarları';
-$lang['_media']                = 'Medya Ayarları';
-$lang['_advanced']             = 'GeliÅŸmiÅŸ Ayarlar';
-$lang['_network']              = 'Ağ Ayarları';
-$lang['_msg_setting_undefined'] = 'Ayar üstverisi yok.';
-$lang['_msg_setting_no_class'] = 'Ayar sınıfı yok.';
-$lang['_msg_setting_no_default'] = 'Varsayılan değer yok.';
-$lang['title']                 = 'Wiki başlığı';
-$lang['start']                 = 'Ana sayfa adı';
-$lang['lang']                  = 'Dil';
-$lang['template']              = 'Åžablon (Template)';
-$lang['license']               = 'İçeriğinizi hangi lisans altında yayınlansın?';
-$lang['savedir']               = 'Verileri kaydetmek için kullanılacak klasör';
-$lang['basedir']               = 'Kök dizin';
-$lang['baseurl']               = 'Kök URL';
-$lang['dmode']                 = 'Klasör oluşturma yetkisi';
-$lang['fmode']                 = 'Dosya oluÅŸturma yetkisi';
-$lang['allowdebug']            = 'Yanlış ayıklamasına izin ver <b>lazım değilse etkisiz kıl!</b>';
-$lang['recent']                = 'En son deÄŸiÅŸtirilenler';
-$lang['breadcrumbs']           = 'Ekmek kırıntıların sayısı';
-$lang['youarehere']            = 'hiyerarşik ekmek kırıntıları';
-$lang['fullpath']              = 'sayfaların tüm patikasını (full path) göster';
-$lang['typography']            = 'Tipografik deÄŸiÅŸtirmeleri yap';
-$lang['dformat']               = 'Tarih biçimi (PHP\'nin <a href="http://php.net/strftime">strftime</a> fonksiyonuna bakın)';
-$lang['signature']             = 'İmza';
-$lang['showuseras']            = 'Bir sayfayı en son düzenleyen kullanıcıya ne gösterilsin';
-$lang['toptoclevel']           = 'İçindekiler için en üst seviye';
-$lang['tocminheads']           = 'İçindekilerin oluşturulması için gereken (en az) başlık sayısı';
-$lang['maxtoclevel']           = 'İçindekiler için en fazla seviye';
-$lang['maxseclevel']           = 'Bölümün azami düzenleme düzeyi';
-$lang['camelcase']             = 'Linkler için CamelCase kullan';
-$lang['deaccent']              = 'Sayfa adlarınız temizle';
-$lang['useheading']            = 'Sayfa isimleri için ilk başlığı kullan';
-$lang['useacl']                = 'EriÅŸim kontrol listesini kullan';
-$lang['autopasswd']            = 'Parolaları otamatikmen üret';
-$lang['authtype']              = 'Kimlik denetleme arka uç';
-$lang['passcrypt']             = 'Parola ÅŸifreleme metodu';
-$lang['defaultgroup']          = 'Varsayılan grup';
-$lang['disableactions']        = 'DokuWiki eylemlerini etkisiz kıl';
-$lang['disableactions_check']  = 'Kontrol et';
-$lang['disableactions_subscription'] = 'Abone ol/Abonelikten vazgeç';
-$lang['usewordblock']          = 'Wordlistesine göre spam engelle';
-$lang['relnofollow']           = 'Dışsal linkler rel="nofollow" kullan';
-$lang['indexdelay']            = 'Indekslemeden evvel zaman gecikmesi (saniye)';
-$lang['mailguard']             = 'Email adreslerini karart';
-$lang['iexssprotect']          = 'Yüklenmiş dosyaları muhtemel kötu niyetli JavaScript veya HTML koduna kontrol et';
-$lang['htmlok']                = 'Gömülü HTML koduna izin ver';
-$lang['phpok']                 = 'Gömülü PHP koduna izin ver';
-$lang['refcheck']              = 'Araç kaynak denetimi';
-$lang['gdlib']                 = 'GD Lib sürümü';
-$lang['jpg_quality']           = 'JPG sıkıştırma kalitesi [0-100]';
-$lang['mailfrom']              = 'Otomatik e-postalar için kullanılacak e-posta adresi';
-$lang['sitemap']               = 'Google site haritası oluştur (gün)';
-$lang['rss_content']           = 'XML beslemesinde ne gösterilsin?';
-$lang['rss_update']            = 'XML beslemesini güncelleme aralığı';
-$lang['rss_show_summary']      = 'XML beslemesinde özeti başlıkta göster';
-$lang['canonical']             = 'Tamolarak kurallara uygun URL\'leri kullan';
-$lang['renderer__core']        = '%s (dokuwiki çekirdeği)';
-$lang['renderer__plugin']      = '%s (eklenti)';
-$lang['proxy____host']         = 'Proxy sunucu adı';
-$lang['proxy____user']         = 'Proxy kullanıcı adı';
-$lang['proxy____pass']         = 'Proxy ÅŸifresi';
-$lang['proxy____ssl']          = 'Proxy ile bağlanırken ssl kullan';
-$lang['safemodehack']          = 'Safemod hackını etkili kıl';
-$lang['ftp____host']           = 'Safemod hackı için kullanılacak FTP suncusu';
-$lang['ftp____user']           = 'Safemod hackı için kullanılacak FTP kullanıcı adı';
-$lang['ftp____pass']           = 'Safemod hackı için kullanılacak FTP parolası';
-$lang['license_o_']            = 'Seçilmedi';
-$lang['typography_o_0']        = 'Yok';
-$lang['userewrite_o_0']        = 'hiçbiri';
-$lang['userewrite_o_1']        = '.htaccess';
-$lang['userewrite_o_2']        = 'DokuWiki dahili';
-$lang['deaccent_o_0']          = 'Kapalı';
-$lang['deaccent_o_1']          = 'aksan işaretlerini kaldır';
-$lang['deaccent_o_2']          = 'roman harfleri kullan';
-$lang['gdlib_o_0']             = 'GD Lib mevcut deÄŸil';
-$lang['gdlib_o_1']             = 'Versiyon 1.x';
-$lang['gdlib_o_2']             = 'Otomatik tesbit';
-$lang['rss_type_o_rss']        = 'RSS 0.91';
-$lang['rss_type_o_rss1']       = 'RSS 1.0';
-$lang['rss_type_o_rss2']       = 'RSS 2.0';
-$lang['rss_type_o_atom']       = 'Atom 0.3';
-$lang['rss_type_o_atom1']      = 'Atom 1.0';
-$lang['rss_content_o_abstract'] = 'Soyut';
-$lang['rss_content_o_diff']    = 'BirleÅŸtirilmiÅŸ Diff';
-$lang['rss_content_o_htmldiff'] = 'HTML biçimlendirilmiş diff tablosu';
-$lang['rss_content_o_html']    = 'Tüm HTML sayfa içeriği';
-$lang['rss_linkto_o_diff']     = 'görünümü değiştir';
-$lang['rss_linkto_o_page']     = 'gözden geçirilmiş sayfa';
-$lang['rss_linkto_o_rev']      = 'sürümlerin listesi';
-$lang['rss_linkto_o_current']  = 'Șu anki sayfa';
-$lang['compression_o_0']       = 'hiçbiri';
-$lang['compression_o_gz']      = 'gzip';
-$lang['compression_o_bz2']     = 'bz2';
-$lang['xsendfile_o_0']         = 'kullanma';
-$lang['showuseras_o_loginname'] = 'Kullanıcı adı';
-$lang['showuseras_o_username'] = 'Kullanıcının tam adı';
-$lang['showuseras_o_email']    = 'Kullanıcının mail adresi (mailguard ayarlarına göre karartılıyor)';
-$lang['showuseras_o_email_link'] = 'Kullanıcının mail adresi mailto: linki şeklinde';
-$lang['useheading_o_0']        = 'Hiçbir zaman';
-$lang['useheading_o_navigation'] = 'Sadece Navigasyon';
-$lang['useheading_o_content']  = 'Sadece Wiki içeriği';
-$lang['useheading_o_1']        = 'Her zaman';
diff --git a/wiki/lib/plugins/config/lang/uk/intro.txt b/wiki/lib/plugins/config/lang/uk/intro.txt
deleted file mode 100644
index 87abe1b..0000000
--- a/wiki/lib/plugins/config/lang/uk/intro.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-====== ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð’Ñ–ÐºÑ– ======
-
-ВикориÑтовуйте цю Ñторінку Ð´Ð»Ñ Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð”Ð¾ÐºÑƒÐ’Ñ–ÐºÑ–. Ð”Ð»Ñ Ð´Ð¾Ð²Ñ–Ð´Ð¾Ðº щодо конкретних параметрів дивітьÑÑ [[doku>config]]. Ð”Ð»Ñ Ð±Ñ–Ð»ÑŒÑˆ детальної інформації про цей доданок дивітьÑÑ [[doku>plugin:config]].
-
-Параметри, що виділені червоним кольором тла захищені та не можуть бути змінені за допомогою цього доданка. Параметри, з Ñинім кольором тла мають Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ð¾ замовчуванню, а параметри з білим тлом були вÑтановлені Ð´Ð»Ñ Ñ†Ñ–Ñ”Ñ— локальної інÑталÑції. Сині та білі параметри можуть бути змінені.
-
-Ðе забувайте натиÑкати кнопку **ЗБЕРЕГТИ** до того, Ñк покинути цю Ñторінку, інакше вÑÑ– зміни буде втрачено.
diff --git a/wiki/lib/plugins/config/lang/uk/lang.php b/wiki/lib/plugins/config/lang/uk/lang.php
deleted file mode 100644
index d8b1d5b..0000000
--- a/wiki/lib/plugins/config/lang/uk/lang.php
+++ /dev/null
@@ -1,189 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Oleksii <alexey.furashev@gmail.com>
- * @author Vitaly <vitaly.balashov@smuzzy.com.ua>
- * @author Oleksiy Voronin <ovoronin@gmail.com>
- * @author serg_stetsuk <serg_stetsuk@ukr.net>
- * @author Oleksandr Kunytsia <okunia@gmail.com>
- * @author Maksim <nikropol@yandex.ru>
- * @author Nina Zolotova <nina-z@i.ua>
- * @author Roman <vsmemorial@gmail.com>
- */
-$lang['menu']                  = 'ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð’Ñ–ÐºÑ–';
-$lang['error']                 = 'Параметри не збережено через помилкові значеннÑ. Будь лаÑка, переглÑньте ваші зміни та Ñпробуйте ще раз
-<br />Помилкові Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð±ÑƒÐ´ÑƒÑ‚ÑŒ виділені червоною рамкою.';
-$lang['updated']               = 'Параметри уÑпішно збережено.';
-$lang['nochoice']              = '(інших варіантів не Ñ–Ñнує)';
-$lang['locked']                = 'Ðеможливо запиÑати файл налаштувань. ПереконайтеÑÑ, <br />
-що ім\'Ñ Ñ‚Ð° права доÑтупу Ð´Ð»Ñ Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ð¾Ð³Ð¾ файлу вказано правильно.';
-$lang['danger']                = 'УВÐГÐ! Зміна цього параметру може призвеÑти до недоÑтупноÑті вашої Вікі та меню конфігурації.';
-$lang['warning']               = 'УВÐГÐ! Зміна цього параметру може призвеÑти до непередбачуваних наÑлідків.';
-$lang['security']              = 'УВÐГÐ! Зміна цього параметру може призвеÑти до поÑÐ»Ð°Ð±Ð»ÐµÐ½Ð½Ñ Ð±ÐµÐ·Ð¿ÐµÐºÐ¸ вашої Вікі.';
-$lang['_configuration_manager'] = 'Ð£Ð¿Ñ€Ð°Ð²Ð»Ñ–Ð½Ð½Ñ ÐºÐ¾Ð½Ñ„Ñ–Ð³ÑƒÑ€Ð°Ñ†Ñ–Ñ”ÑŽ';
-$lang['_header_dokuwiki']      = 'ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð”Ð¾ÐºÑƒÐ’Ñ–ÐºÑ–';
-$lang['_header_plugin']        = 'ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð”Ð¾Ð´Ð°Ð½ÐºÑ–Ð²';
-$lang['_header_template']      = 'ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ ÑˆÐ°Ð±Ð»Ð¾Ð½Ñ–Ð²';
-$lang['_header_undefined']     = 'Ðевизначені налаштуваннÑ';
-$lang['_basic']                = 'Базові налаштуваннÑ';
-$lang['_display']              = 'ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ';
-$lang['_authentication']       = 'ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð°Ð²Ñ‚ÐµÐ½Ñ‚Ð¸Ñ„Ñ–ÐºÐ°Ñ†Ñ–Ñ—';
-$lang['_anti_spam']            = 'ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ðнти-Ñпаму';
-$lang['_editing']              = 'ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ€ÐµÐ´Ð°Ð³ÑƒÐ²Ð°Ð½Ð½Ñ';
-$lang['_links']                = 'ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð¾Ñилань';
-$lang['_media']                = 'ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¼ÐµÐ´Ñ–Ð°';
-$lang['_notifications']        = 'ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñповіщень';
-$lang['_advanced']             = 'Розширені налаштуваннÑ';
-$lang['_network']              = 'ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¼ÐµÑ€ÐµÐ¶Ñ–';
-$lang['_msg_setting_undefined'] = 'Ðемає метаданих параметру.';
-$lang['_msg_setting_no_class'] = 'Ðемає клаÑу параметру.';
-$lang['_msg_setting_no_default'] = 'Ðемає Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð·Ð° замовчуваннÑм.';
-$lang['title']                 = 'Ðазва Вікі';
-$lang['start']                 = 'Ðазва Ñтартової Ñторінки';
-$lang['lang']                  = 'Мова';
-$lang['template']              = 'Шаблон';
-$lang['license']               = 'Під Ñкою ліцензією Ñлід публікувати вміÑÑ‚?';
-$lang['savedir']               = 'Папка Ð´Ð»Ñ Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ…';
-$lang['basedir']               = 'Коренева папка';
-$lang['baseurl']               = 'Кореневий URL';
-$lang['dmode']                 = 'Права Ð´Ð»Ñ Ñтворених папок';
-$lang['fmode']                 = 'Права Ð´Ð»Ñ Ñтворених файлів';
-$lang['allowdebug']            = 'Дозволити Ð²Ñ–Ð´Ð»Ð°Ð³Ð¾Ð´Ð¶ÐµÐ½Ð½Ñ <b>вимкніть, Ñкщо не потрібно!</b>';
-$lang['recent']                = 'ОÑтанні зміни';
-$lang['recent_days']           = 'Скільки оÑтанніх змін пам\'Ñтати (дні)';
-$lang['breadcrumbs']           = 'Ви відвідали (кількіÑть Ñторінок, що показуєтьÑÑ)';
-$lang['youarehere']            = 'Показувати "Ви тут"';
-$lang['fullpath']              = 'Повний шлÑÑ… до документу';
-$lang['typography']            = 'Замінювати типографÑькі Ñимволи';
-$lang['dformat']               = 'Формат дати (дивітьÑÑ Ñ„ÑƒÐ½ÐºÑ†Ñ–ÑŽ <a href="http://php.net/strftime">strftime</a> PHP)';
-$lang['signature']             = 'ПідпиÑ';
-$lang['showuseras']            = 'Що вказувати при відображенні кориÑтувача, Ñкий воÑтаннє редагував Ñторінку';
-$lang['toptoclevel']           = 'Мінімальний рівень Ð´Ð»Ñ Ð·Ð¼Ñ–Ñту';
-$lang['tocminheads']           = 'Мінімальна кількіÑть заголовків, необхідна Ð´Ð»Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ– зміÑту';
-$lang['maxtoclevel']           = 'МакÑимальний рівень Ð´Ð»Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ– зміÑту';
-$lang['maxseclevel']           = 'МакÑимальний рівень Ñекції Ð´Ð»Ñ Ñ€ÐµÐ´Ð°Ð³ÑƒÐ²Ð°Ð½Ð½Ñ';
-$lang['camelcase']             = 'ВикориÑтовувати CamelCase';
-$lang['deaccent']              = 'ТранÑÐ»Ñ–Ñ‚ÐµÑ€Ð°Ñ†Ñ–Ñ Ð² іменах Ñторінок';
-$lang['useheading']            = 'Першій заголовок заміÑть імені';
-$lang['sneaky_index']          = 'За замовчуваннÑм, ДокуВікі показує вÑÑ– проÑтори імен в зміÑті. ÐÐºÑ‚Ð¸Ð²Ð°Ñ†Ñ–Ñ Ñ†Ñ–Ñ”Ñ— опції Ñховає ті проÑтори, де кориÑтувач не має прав на читаннÑ. Результатом може бути неможливіÑть доÑтупу до певних відкритих проÑторів імен. Це зробить неможливим викориÑÑ‚Ð°Ð½Ð½Ñ Ð·Ð¼Ñ–Ñту при певних конфігураціÑÑ….';
-$lang['hidepages']             = 'Ховати Ñторінки (regular expressions)';
-$lang['useacl']                = 'ВикориÑтовувати ACL';
-$lang['autopasswd']            = 'Ðвтоматичне ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¿Ð°Ñ€Ð¾Ð»Ñ–Ð²';
-$lang['authtype']              = 'ÐутентифікаціÑ';
-$lang['passcrypt']             = 'Метод ÑˆÐ¸Ñ„Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð°Ñ€Ð¾Ð»Ñ–Ð²';
-$lang['defaultgroup']          = 'Група за замовчуваннÑм';
-$lang['superuser']             = 'СуперкориÑтувач';
-$lang['manager']               = 'Менеджер - група, кориÑтувач чи розділений комами ÑпиÑок user1,@group1,user2 з правами до певних функцій керуваннÑ';
-$lang['profileconfirm']        = 'Підтверджувати зміни профілю паролем';
-$lang['rememberme']            = 'Дозволити поÑтійні файли cookies Ð´Ð»Ñ Ð²Ñ…Ð¾Ð´Ñƒ (Запам\'Ñтати мене)';
-$lang['disableactions']        = 'Заборонити дії ДокуВікі';
-$lang['disableactions_check']  = 'Перевірити';
-$lang['disableactions_subscription'] = 'ПідпиÑатиÑÑŒ/ВідпиÑатиÑÑŒ';
-$lang['disableactions_wikicode'] = 'ПереглÑнути код/ЕкÑпорт';
-$lang['disableactions_other']  = 'Інші дії (розділені комами)';
-$lang['auth_security_timeout'] = 'Таймаут аутентифікації (в Ñекундах)';
-$lang['securecookie']          = 'Чи повинен браузер надÑилати файли cookies тільки через HTTPS? Вимкніть цей параметр, лише тоді, Ñкщо вхід до Вікі захищено SSL, але переглÑд Ñторінок відбуваєтьÑÑ Ñƒ незахищеному режимі.';
-$lang['usewordblock']          = 'Блокувати Ñпам по ÑпиÑку Ñлів';
-$lang['relnofollow']           = 'ВикориÑтовувати rel="nofollow"';
-$lang['indexdelay']            = 'Затримка перед індекÑацією';
-$lang['mailguard']             = 'Кодувати адреÑи e-mail';
-$lang['iexssprotect']          = 'Перевірте оновлені файли на можливі заборонені Javascript чи HTML коди';
-$lang['usedraft']              = 'Ðвтоматично зберігати чернетку при редагуванні';
-$lang['htmlok']                = 'Дозволити HTML';
-$lang['phpok']                 = 'Дозволити PHP';
-$lang['locktime']              = 'Ð§Ð°Ñ Ð±Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ (Ñек)';
-$lang['cachetime']             = 'МакÑимальний вік кешу (Ñек)';
-$lang['target____wiki']        = 'Target Ð´Ð»Ñ Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ–Ñ… поÑилань';
-$lang['target____interwiki']   = 'Target Ð´Ð»Ñ Ñ–Ð½Ñ‚ÐµÑ€Ð’Ñ–ÐºÑ–-поÑилань';
-$lang['target____extern']      = 'Target Ð´Ð»Ñ Ð·Ð¾Ð²Ð½Ñ–ÑˆÐ½Ñ–Ñ… поÑилань';
-$lang['target____media']       = 'Target Ð´Ð»Ñ Ð¼ÐµÐ´Ñ–Ð°-поÑилань';
-$lang['target____windows']     = 'Target Ð´Ð»Ñ Ð¿Ð¾Ñилань на мережеві папки';
-$lang['refcheck']              = 'ПеревірÑти поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° медіа-файлі';
-$lang['gdlib']                 = 'ВерÑÑ–Ñ GD Lib';
-$lang['im_convert']            = 'ШлÑÑ… до ImageMagick';
-$lang['jpg_quality']           = 'ЯкіÑть компреÑÑ–Ñ— JPG (0-100)';
-$lang['fetchsize']             = 'МакÑимальний розмір (в байтах), що fetch.php може завантажувати з зовні';
-$lang['subscribers']           = 'ПідпиÑка на зміни';
-$lang['subscribe_time']        = 'ЧаÑ, піÑÐ»Ñ Ñкого ÑпиÑок підпиÑки та дайджеÑти будуть надіÑлані (Ñек.); Має бути меншим за чаÑ, вказаний у перемінній recent_days';
-$lang['notify']                = 'E-mail Ð´Ð»Ñ Ñповіщень';
-$lang['registernotify']        = 'ÐадÑилати інформацію про нових кориÑтувачів на цю адреÑу';
-$lang['mailfrom']              = 'E-mail Ð´Ð»Ñ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡Ð½Ð¸Ñ… повідомлень';
-$lang['mailprefix']            = 'ÐŸÑ€ÐµÑ„Ñ–ÐºÑ Ñ‚ÐµÐ¼Ð¸ повідомленнÑ, що викориÑтовуєтьÑÑ Ð² автоматичній розÑилці електронних лиÑтів';
-$lang['sitemap']               = 'Створювати мапу Ñайту Ð´Ð»Ñ Google (дні)';
-$lang['rss_type']              = 'тип RSS';
-$lang['rss_linkto']            = 'поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð² RSS';
-$lang['rss_content']           = 'Що відображати в пунктах XML-feed';
-$lang['rss_update']            = 'Інтервал Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ RSS (Ñек)';
-$lang['rss_show_summary']      = 'Показувати підÑумки змін в заголовку XML-feed';
-$lang['updatecheck']           = 'Перевірити наÑвніÑть оновлень чи попереджень безпеки? Ð”Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ ДокуВікі необхідно зв\'ÑзатиÑÑ Ð·Ñ– update.dokuwiki.org.';
-$lang['userewrite']            = 'КраÑиві URL';
-$lang['useslash']              = 'Слеш, Ñк розділювач проÑторів імен в URL';
-$lang['sepchar']               = 'Розділювач Ñлів у імені Ñторінки';
-$lang['canonical']             = 'Канонічні URL';
-$lang['fnencode']              = 'Метод Ð´Ð»Ñ ÐºÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ Ñ–Ð¼ÐµÐ½ файлів, що міÑÑ‚Ñть не ASCII Ñимволи.';
-$lang['autoplural']            = 'ПеревірÑти множину у поÑиланнÑÑ…';
-$lang['compression']           = 'Метод ÑтиÑÐ½ÐµÐ½Ð½Ñ attic файлів';
-$lang['gzip_output']           = 'ВикориÑтовувати gzip, Ñк Content-Encoding Ð´Ð»Ñ xhtml';
-$lang['compress']              = 'СтиÑкати файли CSS та javascript';
-$lang['send404']               = 'ÐадÑилати "HTTP 404/Сторінка не знайдена " Ð´Ð»Ñ Ð½ÐµÑ–Ñнуючих Ñторінок';
-$lang['broken_iua']            = 'У вашій ÑиÑтемі зіпÑована Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ ignore_user_abort? Це може зіпÑувати пошукову ÑиÑтему. IIS+PHP/CGI не працює. ДивітьÑÑ <a href="http://bugs.splitbrain.org/?do=details&amp;task_id=852">Bug 852</a> Ð´Ð»Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð´Ð¾Ð´Ð°Ñ‚ÐºÐ¾Ð²Ð¾Ñ— інформації';
-$lang['xsendfile']             = 'ВикориÑтовувати заголовок X-Sendfile Ð´Ð»Ñ Ð´Ð¾Ñтавки Ñтатичних файлів веб Ñервером? Ваш веб Ñервер повинен підтримувати цю функцію.';
-$lang['renderer_xhtml']        = 'ТранÑлÑтор (Renderer) Ð´Ð»Ñ Ð¾Ñновного виводу wiki (xhtml)';
-$lang['renderer__core']        = '%s (Ñдро докуВікі)';
-$lang['renderer__plugin']      = '%s (доданок)';
-$lang['proxy____host']         = 'ÐдреÑа Proxy';
-$lang['proxy____port']         = 'Порт Proxy';
-$lang['proxy____user']         = 'КориÑтувач Proxy';
-$lang['proxy____pass']         = 'Пароль Proxy';
-$lang['proxy____ssl']          = 'ВикориÑтовувати ssl Ð´Ð»Ñ Ð·\'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð· Proxy';
-$lang['proxy____except']       = 'РегулÑрний вираз Ð´Ð»Ñ Ð²ÐµÐ±-адреÑи, Ñку прокÑÑ–-Ñервер пропуÑтить.';
-$lang['safemodehack']          = 'Увімкнути хак safemode';
-$lang['ftp____host']           = 'FTP-Ñервер Ð´Ð»Ñ Ñ…Ð°ÐºÑƒ safemode';
-$lang['ftp____port']           = 'FTP-порт Ð´Ð»Ñ Ñ…Ð°ÐºÑƒ safemode';
-$lang['ftp____user']           = 'КориÑтувач FTP Ð´Ð»Ñ Ñ…Ð°ÐºÑƒ safemode';
-$lang['ftp____pass']           = 'Пароль FTP Ð´Ð»Ñ Ñ…Ð°ÐºÑƒ safemode';
-$lang['ftp____root']           = 'Коренева папка FTP Ð´Ð»Ñ Ñ…Ð°ÐºÑƒ safemode';
-$lang['license_o_']            = 'не вибрано';
-$lang['typography_o_0']        = 'жодного';
-$lang['typography_o_1']        = 'Лише подвійні лапки';
-$lang['typography_o_2']        = 'Ð’ÑÑ– лапки (може не завжди працювати)';
-$lang['userewrite_o_0']        = 'немає';
-$lang['userewrite_o_1']        = '.htaccess';
-$lang['userewrite_o_2']        = 'ЗаÑобами ДокуВікі';
-$lang['deaccent_o_0']          = 'вимкнено';
-$lang['deaccent_o_1']          = 'вилучати діакритичні знаки';
-$lang['deaccent_o_2']          = 'транÑлітераціÑ';
-$lang['gdlib_o_0']             = 'GD Lib не доÑтупна';
-$lang['gdlib_o_1']             = 'ВерÑÑ–Ñ 1.x';
-$lang['gdlib_o_2']             = 'ÐвтовизначеннÑ';
-$lang['rss_type_o_rss']        = 'RSS 0.91';
-$lang['rss_type_o_rss1']       = 'RSS 1.0';
-$lang['rss_type_o_rss2']       = 'RSS 2.0';
-$lang['rss_type_o_atom']       = 'Atom 0.3';
-$lang['rss_type_o_atom1']      = 'Atom 1.0';
-$lang['rss_content_o_abstract'] = 'Короткий зміÑÑ‚';
-$lang['rss_content_o_diff']    = 'Уніфіковані зміни (diff)';
-$lang['rss_content_o_htmldiff'] = 'Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ Ð·Ð¼Ñ–Ð½ у форматі HTML';
-$lang['rss_content_o_html']    = 'Повний зміÑÑ‚ Ñторінки HTML';
-$lang['rss_linkto_o_diff']     = 'переглÑд відмінноÑтей';
-$lang['rss_linkto_o_page']     = 'текÑÑ‚ Ñторінки';
-$lang['rss_linkto_o_rev']      = 'перелік ревізій';
-$lang['rss_linkto_o_current']  = 'поточна Ñторінка';
-$lang['compression_o_0']       = 'немає';
-$lang['compression_o_gz']      = 'gzip';
-$lang['compression_o_bz2']     = 'bz2';
-$lang['xsendfile_o_0']         = 'не викориÑтовувати';
-$lang['xsendfile_o_1']         = 'Фірмовий заголовок lighthttpd (до верÑÑ–Ñ— 1.5)';
-$lang['xsendfile_o_2']         = 'Стандартний X-Sendfile заголовок';
-$lang['xsendfile_o_3']         = 'Фірмовий заголовок Nginx X-Accel-Redirect';
-$lang['showuseras_o_loginname'] = 'Логін';
-$lang['showuseras_o_username'] = 'Повне Ñ–Ð¼â€™Ñ ÐºÐ¾Ñ€Ð¸Ñтувача';
-$lang['showuseras_o_email']    = 'E-mail кориÑтувача (прихована відповідно до налаштувань)';
-$lang['showuseras_o_email_link'] = 'E-mail кориÑтувача Ñк поÑÐ¸Ð»Ð°Ð½Ð½Ñ mailto:';
-$lang['useheading_o_0']        = 'Ðіколи';
-$lang['useheading_o_navigation'] = 'Лише Ð´Ð»Ñ Ð½Ð°Ð²Ñ–Ð³Ð°Ñ†Ñ–Ñ—';
-$lang['useheading_o_content']  = 'Лише у зміÑті';
-$lang['useheading_o_1']        = 'Завжди';
-$lang['readdircache']          = 'МакÑимальний вік Ð´Ð»Ñ Ñ„Ð°Ð¹Ð»Ñ–Ð² кешу (Ñек.)';
diff --git a/wiki/lib/plugins/config/lang/zh-tw/intro.txt b/wiki/lib/plugins/config/lang/zh-tw/intro.txt
deleted file mode 100644
index e131ec3..0000000
--- a/wiki/lib/plugins/config/lang/zh-tw/intro.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-====== 設定管ç†å™¨ ======
-
-ä½¿ç”¨æœ¬é æŽ§åˆ¶æ‚¨çš„ Dokuwiki 設定。您å¯ä»¥åƒé–± [[doku>config]],查看æ¯å€‹ç¨ç«‹è¨­å®šçš„相關訊æ¯ã€‚è¦çŸ¥é“更多設定管ç†å™¨çš„資訊,請ç€è¦½ [[doku>plugin:config]]。
-
-淡紅色背景的項目是å—到ä¿è­·çš„,ä¸èƒ½é€šéŽé€™ç®¡ç†å™¨æ›´æ”¹ã€‚è—色背景的項目是系統的é è¨­å€¼ï¼Œç™½è‰²èƒŒæ™¯çš„項目是您更改éŽçš„。è—色和白色的設定項目都å¯ä»¥æ›´æ”¹ã€‚
-
-離開本é ä¹‹å‰ï¼Œä¸è¦å¿˜è¨˜é»žæ“Šæœ€ä¸‹é¢çš„ **儲存** 按鈕,å¦å‰‡æ‚¨çš„ä¿®æ”¹ä¸æœƒç”Ÿæ•ˆã€‚
diff --git a/wiki/lib/plugins/config/lang/zh-tw/lang.php b/wiki/lib/plugins/config/lang/zh-tw/lang.php
deleted file mode 100644
index 6723fe4..0000000
--- a/wiki/lib/plugins/config/lang/zh-tw/lang.php
+++ /dev/null
@@ -1,201 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Li-Jiun Huang <ljhuang.tw@gmail.com>
- * @author http://www.chinese-tools.com/tools/converter-simptrad.html
- * @author Wayne San <waynesan@zerozone.tw>
- * @author Li-Jiun Huang <ljhuang.tw@gmai.com>
- * @author Cheng-Wei Chien <e.cwchien@gmail.com>
- * @author Danny Lin
- * @author Shuo-Ting Jian <shoting@gmail.com>
- * @author syaoranhinata@gmail.com
- * @author Ichirou Uchiki <syaoranhinata@gmail.com>
- * @author Liou, Jhe-Yu <lioujheyu@gmail.com>
- */
-$lang['menu']                  = '系統設定';
-$lang['error']                 = 'å› ç‚ºå«æœ‰ä¸åˆè¦æ ¼çš„è¨­å®šå€¼ï¼Œæ•…æœªèƒ½æ›´æ–°è¨­å®šã€‚è«‹æª¢æŸ¥æ‚¨çš„æ›´æ”¹ä¸¦é‡æ–°é€å‡ºã€‚
-<br />䏿­£ç¢ºçš„設定值,會以紅色方框包ä½ã€‚';
-$lang['updated']               = '設定已更新。';
-$lang['nochoice']              = '(ç„¡å…¶ä»–å¯ç”¨é¸é …)';
-$lang['locked']                = 'è¨­å®šæª”ç„¡æ³•æ›´æ–°ï¼Œè‹¥éžæ•…æ„ï¼Œè«‹ç¢ºèªæœ¬åœ°æª”ååŠæ¬Šé™æ­£ç¢ºã€‚';
-$lang['danger']                = 'å±éšªï¼šæ”¹è®Šæ­¤é¸é …,å¯èƒ½ä½¿æ‚¨ç„¡æ³•å­˜å–æœ¬ wiki åŠè¨­å®šé¸å–®ã€‚';
-$lang['warning']               = '警告:改變此é¸é …å¯èƒ½å°Žè‡´ä¸å¯é æœŸçš„行為。';
-$lang['security']              = '安全性警告:改變此é¸é …å¯èƒ½é€ æˆå®‰å…¨é¢¨éšªã€‚';
-$lang['_configuration_manager'] = '設定管ç†å™¨';
-$lang['_header_dokuwiki']      = 'DokuWiki 設定';
-$lang['_header_plugin']        = '附加元件設定';
-$lang['_header_template']      = '樣æ¿è¨­å®š';
-$lang['_header_undefined']     = '未定義設定';
-$lang['_basic']                = '基本設定';
-$lang['_display']              = '顯示設定';
-$lang['_authentication']       = 'èªè­‰è¨­å®š';
-$lang['_anti_spam']            = 'å垃圾設定';
-$lang['_editing']              = '編輯設定';
-$lang['_links']                = '連çµè¨­å®š';
-$lang['_media']                = '媒體設定';
-$lang['_notifications']        = 'æé†’設定';
-$lang['_syndication']          = 'èšåˆè¨­å®š';
-$lang['_advanced']             = '進階設定';
-$lang['_network']              = '網路設定';
-$lang['_msg_setting_undefined'] = '設定的後設數據ä¸å­˜åœ¨ã€‚';
-$lang['_msg_setting_no_class'] = '設定的分類ä¸å­˜åœ¨ã€‚';
-$lang['_msg_setting_no_default'] = 'ç„¡é è¨­å€¼';
-$lang['title']                 = '本 wiki 的標題';
-$lang['start']                 = 'é–‹å§‹é é¢çš„å稱';
-$lang['lang']                  = '語系';
-$lang['template']              = '樣æ¿';
-$lang['tagline']               = '副標題 (è‹¥æ¨£æ¿æ”¯æ´æ­¤åŠŸèƒ½)';
-$lang['sidebar']               = 'å´æ¬„çš„é é¢å稱 (è‹¥æ¨£æ¿æ”¯æ´æ­¤åŠŸèƒ½) 。若把它留空,則會åœç”¨å´æ¬„';
-$lang['license']               = '您希望您的內容採用哪種授權方å¼ï¼Ÿ';
-$lang['savedir']               = '儲存資料的目錄';
-$lang['basedir']               = '根目錄';
-$lang['baseurl']               = '根路徑 (URL)';
-$lang['cookiedir']             = 'Cookie 路徑。設定空白則使用 baseurl。';
-$lang['dmode']                 = '目錄建立模å¼';
-$lang['fmode']                 = '檔案建立模å¼';
-$lang['allowdebug']            = 'å…許除錯 <b>(ä¸éœ€è¦è«‹åœç”¨ï¼)</b>';
-$lang['recent']                = '最近更新';
-$lang['recent_days']           = '儲存多少天內的變更';
-$lang['breadcrumbs']           = '導覽路徑數é‡ã€‚輸入0表示åœç”¨ã€‚';
-$lang['youarehere']            = '顯示階層å¼å°Žè¦½è·¯å¾‘ (è‹¥è¦ç”¨æ­¤åŠŸèƒ½ï¼Œå»ºè­°åœç”¨ä¸Šæ–¹çš„é¸é …)';
-$lang['fullpath']              = '顯示完整的路徑於é é¢åº•部';
-$lang['typography']            = '進行字元替æ›';
-$lang['dformat']               = 'æ—¥æœŸæ ¼å¼ (åƒè¦‹ PHP çš„ <a href="http://php.net/strftime">strftime</a> 函數)';
-$lang['signature']             = 'ç°½å';
-$lang['showuseras']            = '將最後編輯é é¢çš„使用者顯示為:';
-$lang['toptoclevel']           = '目錄表的最上層級';
-$lang['tocminheads']           = '決定是å¦å»ºç«‹ç›®éŒ„表的最少標題數é‡';
-$lang['maxtoclevel']           = '目錄表顯示的最大層級';
-$lang['maxseclevel']           = 'å¯ç·¨è¼¯æ®µè½çš„æœ€å¤§å±¤ç´š';
-$lang['camelcase']             = 'å°é€£çµä½¿ç”¨ CamelCase';
-$lang['deaccent']              = '清ç†é é¢å稱';
-$lang['useheading']            = '使用第一個標題作é é¢å稱';
-$lang['sneaky_index']          = 'é è¨­æƒ…æ³ä¸‹ï¼ŒDokuWiki æœƒåœ¨ç´¢å¼•é æœƒé¡¯ç¤ºæ‰€æœ‰åˆ†é¡žå稱。啟用此é¸é …,會隱è—使用者沒有閱讀權é™çš„é é¢ï¼Œä½†ä¹Ÿå¯èƒ½å°‡ä»–å¯ä»¥é–±è®€çš„å­é é¢ä¸€ä½µéš±è—。在特定 ACL 設定下,這å¯èƒ½å°Žè‡´ç´¢å¼•無法使用。';
-$lang['hidepages']             = 'éš±è—匹é…çš„ç•Œé¢ (æ­£è¦å¼)';
-$lang['useacl']                = 'ä½¿ç”¨å­˜å–æŽ§åˆ¶åå–®';
-$lang['autopasswd']            = '自動產生密碼';
-$lang['authtype']              = 'èªè­‰å¾Œå°ç®¡ç†æ–¹å¼';
-$lang['passcrypt']             = '密碼加密方å¼';
-$lang['defaultgroup']          = 'é è¨­ç¾¤çµ„';
-$lang['superuser']             = '超級使用者 —— ä¸è«– ACL å¦‚ä½•è¨­å®šï¼Œéƒ½èƒ½è¨ªå•æ‰€æœ‰é é¢èˆ‡åŠŸèƒ½çš„ç¾¤çµ„æˆ–ä½¿ç”¨è€…';
-$lang['manager']               = '管ç†å“¡ —— 能訪å•相應管ç†åŠŸèƒ½çš„ç¾¤çµ„æˆ–ä½¿ç”¨è€…';
-$lang['profileconfirm']        = '修改個人資料時需è¦ç¢ºèªå¯†ç¢¼';
-$lang['rememberme']            = 'å…許自動登入 (è¨˜ä½æˆ‘)';
-$lang['disableactions']        = 'åœç”¨çš„ DokuWiki 動作';
-$lang['disableactions_check']  = '檢查';
-$lang['disableactions_subscription'] = '訂閱/å–æ¶ˆè¨‚é–±';
-$lang['disableactions_wikicode'] = '檢視原始碼/匯出原始檔';
-$lang['disableactions_other']  = '其他功能 (逗號分隔)';
-$lang['auth_security_timeout'] = '安全èªè­‰çš„計時 (ç§’)';
-$lang['securecookie']          = 'HTTPS é é¢è¨­å®šçš„ cookie 是å¦åªèƒ½ç”±ç€è¦½å™¨ç¶“ HTTPS 傳é€ï¼Ÿå–消此é¸é …å¾Œï¼Œåªæœ‰ç™»å…¥æœ¬ wiki æ‰æœƒå— SSL ä¿è­·ï¼Œç€è¦½æ™‚則ä¸å—ä¿è­·ã€‚';
-$lang['remote']                = '啟用é ç¨‹ API 系统。這å…許其他程å¼ç¶“ XML-RPC æˆ–å…¶ä»–æ©Ÿåˆ¶ä¾†è¨ªå•æœ¬ wiki 。';
-$lang['remoteuser']            = 'å°‡é ç¨‹ API çš„è¨ªå•æ¬Šé™ï¼Œé™åˆ¶åœ¨æŒ‡å®šçš„群組或使用者中。以逗號分隔群組或使用者。留空表示å…許任何人訪å•。';
-$lang['usewordblock']          = '根據字詞表阻擋垃圾訊æ¯';
-$lang['relnofollow']           = '外部連çµä½¿ç”¨ rel="nofollow"';
-$lang['indexdelay']            = '建立索引å‰çš„延鲿™‚é–“ (ç§’)';
-$lang['mailguard']             = '自動弄亂使用者的電郵地å€ï¼Œä»¥ä½œä¿è­·';
-$lang['iexssprotect']          = '檢查上傳的檔案中是å¦éš±å«æƒ¡æ„çš„ JavaScript 或 HTML 碼';
-$lang['usedraft']              = '編輯時自動儲存è‰ç¨¿';
-$lang['htmlok']                = 'å…è¨±åµŒå…¥å¼ HTML';
-$lang['phpok']                 = 'å…è¨±åµŒå…¥å¼ PHP';
-$lang['locktime']              = '檔案的最大鎖定時間 (秒)';
-$lang['cachetime']             = '緩存的最大存在時間 (秒)';
-$lang['target____wiki']        = '內部連çµçš„目標視窗';
-$lang['target____interwiki']   = 'Wiki間互連的目標視窗';
-$lang['target____extern']      = '外部連çµçš„目標視窗';
-$lang['target____media']       = '媒體連çµçš„目標視窗';
-$lang['target____windows']     = 'Windows 連çµçš„目標視窗';
-$lang['mediarevisions']        = '啟用媒體修訂歷å²å—Žï¼Ÿ';
-$lang['refcheck']              = 'åª’é«”é€£çµæª¢æŸ¥';
-$lang['gdlib']                 = 'GD Lib 版本';
-$lang['im_convert']            = 'ImageMagick 的轉æ›å·¥å…·è·¯å¾‘';
-$lang['jpg_quality']           = 'JPG 壓縮å“質(0-100)';
-$lang['fetchsize']             = 'fetch.php å¯ä»¥å¾žå¤–部下載的最大檔案尺寸 (bytes)';
-$lang['subscribers']           = '啟用é é¢è¨‚é–±';
-$lang['subscribe_time']        = '訂閱列表和摘è¦ç™¼é€çš„æ™‚é–“é–“éš” (ç§’)ï¼›é€™å€‹å€¼æ‡‰è©²å°æ–¼æŒ‡å®šçš„æœ€è¿‘更改ä¿ç•™æ™‚é–“ (recent_days)。';
-$lang['notify']                = '寄é€è®Šæ›´é€šçŸ¥ä¿¡åˆ°é€™å€‹é›»éƒµåœ°å€';
-$lang['registernotify']        = '坄逿–°ä½¿ç”¨è€…註冊資訊到這個電郵地å€';
-$lang['mailfrom']              = '自動發é€éƒµä»¶æ™‚使用的郵件地å€';
-$lang['mailprefix']            = '自動發é€éƒµä»¶æ™‚使用的標題å‰ç¶´';
-$lang['htmlmail']              = 'ç™¼é€æ›´åŠ ç¾Žè§€ï¼Œä½†é«”ç©æœƒæ›´å¤§çš„ HTML 多部份電郵。若åœç”¨å®ƒï¼Œè¡¨ç¤ºåªç™¼é€ç´”文字電郵。';
-$lang['sitemap']               = '產生 Google 網站地圖 (以多少天計算) 。輸入0表示åœç”¨';
-$lang['rss_type']              = 'XML feed 類型';
-$lang['rss_linkto']            = 'XML feed 連çµåˆ°';
-$lang['rss_content']           = 'XML feed 項目中顯示什麼呢?';
-$lang['rss_update']            = 'XML feed 更新間隔時間 (秒)';
-$lang['rss_show_summary']      = '於標題中顯示簡è¦çš„ XML feed';
-$lang['rss_media']             = '在 XML feed 中應列出哪些變更?';
-$lang['updatecheck']           = '檢查更新與安全性警告?DokuWiki 需è¦è¯ç¹« update.dokuwiki.org æ‰èƒ½ä½¿ç”¨æ­¤åŠŸèƒ½ã€‚';
-$lang['userewrite']            = '使用好看的 URL';
-$lang['useslash']              = '在 URL 中使用斜線作分類å稱的分隔字元';
-$lang['sepchar']               = 'é é¢å稱中單字的分隔字元';
-$lang['canonical']             = '使用最典型的 URL';
-$lang['fnencode']              = 'éž ASCII 文件å稱的編輯方法。';
-$lang['autoplural']            = '檢查複數形å¼çš„é€£çµ (英文)';
-$lang['compression']           = 'attic 文件的壓縮方å¼';
-$lang['gzip_output']           = 'å° xhtml 使用 gzip 內容編碼';
-$lang['compress']              = '壓縮 CSS 與 JavaScript 的輸出';
-$lang['cssdatauri']            = 'å‡å¦‚ CSS ä¸­æ‰€å¼•ç”¨çš„åœ–ç‰‡å°æ–¼è©²æ•¸å­—大å°(bytes),圖片將被直接嵌入 CSS 中,以減少 HTTP Request 的發é€ã€‚ æŽ¨è–¦æŠŠæ­¤æ•¸å€¼è¨­å®šæˆ <code>400</code> 至 <code>600</code> bytes 之間。若輸入 <code>0</code> 則åœç”¨æ­¤åŠŸèƒ½ã€‚';
-$lang['send404']               = 'å­˜å–ä¸å­˜åœ¨çš„é é¢æ™‚é€å‡º "HTTP 404/Page Not Found"';
-$lang['broken_iua']            = 'ignore_user_abort 功能失效了?這有å¯èƒ½å°Žè‡´æœç´¢ç´¢å¼•ä¸å¯ç”¨ã€‚IIS+PHP/CGI å·²æå£žã€‚è«‹åƒé–± <a href=\"http://bugs.splitbrain.org/?do=details&amp;task_id=852">Bug 852</a> ç²å–更多訊æ¯ã€‚';
-$lang['xsendfile']             = '使用 X-Sendfile 頭讓網é ä¼ºæœå™¨ç™¼é€ç‹€æ…‹æ–‡ä»¶ï¼Ÿæ‚¨çš„ç¶²é ä¼ºæœå™¨éœ€è¦æ”¯æŒè©²åŠŸèƒ½ã€‚';
-$lang['renderer_xhtml']        = 'ä¸»è¦ wiki 輸出 (xhtml) 的渲染器';
-$lang['renderer__core']        = '%s (dokuwiki 核心)';
-$lang['renderer__plugin']      = '%s (附加元件)';
-$lang['dnslookups']            = 'Dokuwiki 將查詢使用者編輯é é¢çš„é ç¨‹ IP ä½å€ä¸»æ©Ÿå稱。若您的 DNS 伺æœå™¨é€Ÿåº¦è¼ƒæ…¢ã€å¤±æ•ˆï¼Œæˆ–è€…æ‚¨ä¸æƒ³è¦æ­¤åŠŸèƒ½ï¼Œè¯·åœç”¨æ­¤é¸é …';
-$lang['proxy____host']         = 'Proxy 伺æœå™¨å稱';
-$lang['proxy____port']         = 'Proxy 連接埠';
-$lang['proxy____user']         = 'Proxy 使用者å稱';
-$lang['proxy____pass']         = 'Proxy 密碼';
-$lang['proxy____ssl']          = '使用 SSL 連接到 Proxy';
-$lang['proxy____except']       = 'æ¯”å° proxy ä»£ç†æ™‚應跳éŽçš„地å€çš„æ­£è¦å¼ã€‚';
-$lang['safemodehack']          = '啟用 Safemode Hack';
-$lang['ftp____host']           = 'Safemode Hack çš„ FTP 伺æœå™¨';
-$lang['ftp____port']           = 'Safemode Hack çš„ FTP 端å£';
-$lang['ftp____user']           = 'Safemode Hack 的 FTP 帳戶';
-$lang['ftp____pass']           = 'Safemode Hack 的 FTP 密碼';
-$lang['ftp____root']           = 'Safemode Hack 的 FTP 根路徑';
-$lang['license_o_']            = 'æœªé¸æ“‡';
-$lang['typography_o_0']        = 'ç„¡';
-$lang['typography_o_1']        = 'åªé™é›™å¼•號';
-$lang['typography_o_2']        = '包括單引號 (未必能é‹ä½œ)';
-$lang['userewrite_o_0']        = 'ç„¡';
-$lang['userewrite_o_1']        = '.htaccess';
-$lang['userewrite_o_2']        = 'DokuWiki 內部控制';
-$lang['deaccent_o_0']          = '關閉';
-$lang['deaccent_o_1']          = '移除é‡éŸ³ç¬¦è™Ÿ';
-$lang['deaccent_o_2']          = '羅馬字æ¯è½‰å¯«';
-$lang['gdlib_o_0']             = 'GD Lib 無法使用';
-$lang['gdlib_o_1']             = '版本 1.x';
-$lang['gdlib_o_2']             = 'è‡ªå‹•åµæ¸¬';
-$lang['rss_type_o_rss']        = 'RSS 0.91';
-$lang['rss_type_o_rss1']       = 'RSS 1.0';
-$lang['rss_type_o_rss2']       = 'RSS 2.0';
-$lang['rss_type_o_atom']       = 'Atom 0.3';
-$lang['rss_type_o_atom1']      = 'Atom 1.0';
-$lang['rss_content_o_abstract'] = '摘è¦';
-$lang['rss_content_o_diff']    = '統一的差異';
-$lang['rss_content_o_htmldiff'] = 'HTML æ ¼å¼çš„差異å°ç…§è¡¨';
-$lang['rss_content_o_html']    = '完整的 HTML é é¢å…§å®¹';
-$lang['rss_linkto_o_diff']     = '差異檢視';
-$lang['rss_linkto_o_page']     = '已修訂的é é¢';
-$lang['rss_linkto_o_rev']      = '版本清單';
-$lang['rss_linkto_o_current']  = 'ç›®å‰é é¢';
-$lang['compression_o_0']       = 'ç„¡';
-$lang['compression_o_gz']      = 'gzip';
-$lang['compression_o_bz2']     = 'bz2';
-$lang['xsendfile_o_0']         = 'ä¸ä½¿ç”¨';
-$lang['xsendfile_o_1']         = '專有 lighttpd 標頭 (1.5 發佈å‰)';
-$lang['xsendfile_o_2']         = '標準 X-Sendfile 標頭';
-$lang['xsendfile_o_3']         = '專有 Nginx X-Accel-Redirect 標頭';
-$lang['showuseras_o_loginname'] = '登入å稱';
-$lang['showuseras_o_username'] = '完整姓å';
-$lang['showuseras_o_email']    = 'ä½¿ç”¨è€…çš„é›»éƒµåœ°å€ (根據郵件監控設定混淆化)';
-$lang['showuseras_o_email_link'] = 'ä½¿ç”¨è€…çš„é›»éƒµåœ°å€æ¨™ç¤ºæˆ mailto: 連çµ';
-$lang['useheading_o_0']        = 'æ°¸ä¸';
-$lang['useheading_o_navigation'] = '僅導覽';
-$lang['useheading_o_content']  = '僅本 wiki 內容';
-$lang['useheading_o_1']        = '總是';
-$lang['readdircache']          = 'readdir 緩存的最大存在時間 (秒)';
diff --git a/wiki/lib/plugins/config/lang/zh/intro.txt b/wiki/lib/plugins/config/lang/zh/intro.txt
deleted file mode 100644
index 43aa0a9..0000000
--- a/wiki/lib/plugins/config/lang/zh/intro.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-====== é…置管ç†å™¨ ======
-
-ä½¿ç”¨æœ¬é¡µä¸­çš„å†…å®¹æ¥æŽ§åˆ¶æ‚¨çš„ DokuWiki 设置。  æ¯ä¸ªå•独设置的相关信æ¯è¯·å‚阅 [[doku>config]]。 é…置管ç†å™¨çš„æ›´å¤šä¿¡æ¯è¯·å‚阅 [[doku>plugin:config]]。
-
-æ·¡çº¢è‰²èƒŒæ™¯çš„é¡¹ç›®è¢«ä¿æŠ¤ï¼Œä¸èƒ½é€šè¿‡è¿™ä¸ªç®¡ç†å™¨æ›´æ”¹ã€‚ è“色背景的项目是系统的默认值,白色背景的项目是您作出更改的项目。è“色和白色的设置项目都å¯ä»¥æ›´æ”¹ã€‚
-
-离开本页之å‰ä¸è¦å¿˜è®°ç‚¹å‡»æœ€åŽçš„ **ä¿å­˜** 按钮,å¦åˆ™æ‚¨åšçš„修改ä¸ä¼šç”Ÿæ•ˆã€‚
diff --git a/wiki/lib/plugins/config/lang/zh/lang.php b/wiki/lib/plugins/config/lang/zh/lang.php
deleted file mode 100644
index 6da00ee..0000000
--- a/wiki/lib/plugins/config/lang/zh/lang.php
+++ /dev/null
@@ -1,221 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author lempel <riverlempel@hotmail.com>
- * @author ZDYX <zhangduyixiong@gmail.com>
- * @author http://www.chinese-tools.com/tools/converter-tradsimp.html
- * @author Simon zhan <simonzhan@21cn.com>
- * @author ben <ben@livetom.com>
- * @author lainme <lainme993@gmail.com>
- * @author caii <zhoucaiqi@gmail.com>
- * @author Hiphen Lee <jacob.b.leung@gmail.com>
- * @author Shuo-Ting Jian <shoting@gmail.com>
- * @author Garfield <garfield_550@outlook.com>
- * @author JellyChen <451453325@qq.com>
- * @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']                 = 'ç”±äºŽéžæ³•傿•°ï¼Œè®¾ç½®æ²¡æœ‰æ›´æ–°ã€‚请检查您åšçš„æ”¹åЍ并釿–°æäº¤ã€‚
-                       <br />éžæ³•傿•°ä¼šç”¨çº¢æ¡†åŒ…围显示。';
-$lang['updated']               = '设置更新æˆåŠŸã€‚';
-$lang['nochoice']              = '(没有其他å¯ç”¨é€‰é¡¹ï¼‰';
-$lang['locked']                = 'è®¾ç½®æ–‡ä»¶æ— æ³•æ›´æ–°ã€‚å¦‚æžœè¿™æ˜¯æ‚¨æ²¡æœ‰æ„æ–™åˆ°çš„,<br />
-                       è¯·ç¡®ä¿æœ¬åœ°è®¾ç½®æ–‡ä»¶çš„åç§°å’Œæƒé™è®¾ç½®æ­£ç¡®ã€‚';
-$lang['danger']                = 'å±é™©ï¼šæ›´æ”¹è¿™ä¸ªé€‰é¡¹å¯èƒ½ä¼šä½¿ç”¨ä½ çš„Wiki页é¢å’Œé…ç½®èœå•无法进入。';
-$lang['warning']               = '注æ„:更改这个选项å¯èƒ½ä¼šé€ æˆæœªçŸ¥ç»“果。';
-$lang['security']              = '安全æç¤ºï¼šæ›´æ”¹è¿™ä¸ªé€‰é¡¹å¯èƒ½ä¼šæœ‰å®‰å…¨éšæ‚£ã€‚';
-$lang['_configuration_manager'] = 'é…置管ç†å™¨';
-$lang['_header_dokuwiki']      = 'DokuWiki 设置';
-$lang['_header_plugin']        = 'æ’件设置';
-$lang['_header_template']      = '模æ¿è®¾ç½®';
-$lang['_header_undefined']     = '其他设置';
-$lang['_basic']                = '基本设置';
-$lang['_display']              = '显示设置';
-$lang['_authentication']       = '认è¯è®¾ç½®';
-$lang['_anti_spam']            = 'å垃圾邮件/评论设置';
-$lang['_editing']              = '编辑设置';
-$lang['_links']                = '链接设置';
-$lang['_media']                = '媒体设置';
-$lang['_notifications']        = '通知设置';
-$lang['_syndication']          = 'èšåˆè®¾ç½®';
-$lang['_advanced']             = '高级设置';
-$lang['_network']              = '网络设置';
-$lang['_msg_setting_undefined'] = '设置的元数æ®ä¸å­˜åœ¨ã€‚';
-$lang['_msg_setting_no_class'] = '设置的分类ä¸å­˜åœ¨ã€‚';
-$lang['_msg_setting_no_default'] = '设置的默认值ä¸å­˜åœ¨ã€‚';
-$lang['title']                 = '维基站点的标题';
-$lang['start']                 = '开始页é¢çš„åç§°';
-$lang['lang']                  = '语言';
-$lang['template']              = '模版';
-$lang['tagline']               = '副标题 ï¼ˆå¦‚æžœæ¨¡æ¿æ”¯æŒæ­¤åŠŸèƒ½ï¼‰';
-$lang['sidebar']               = 'ä¾§è¾¹æ çš„页é¢åç§° ï¼ˆå¦‚æžœæ¨¡æ¿æ”¯æŒæ­¤åŠŸèƒ½ï¼‰ï¼Œç•™ç©ºä»¥ç¦ç”¨ä¾§è¾¹æ ';
-$lang['license']               = '您愿æ„让你贡献的内容在何ç§è®¸å¯æ–¹å¼ä¸‹å‘布?';
-$lang['savedir']               = 'ä¿å­˜æ•°æ®çš„目录';
-$lang['basedir']               = '根目录';
-$lang['baseurl']               = '根路径(URL)';
-$lang['cookiedir']             = 'Cookie 路径。留空以使用 baseurl。';
-$lang['dmode']                 = '文件夹的创建模å¼';
-$lang['fmode']                 = '文件的创建模å¼';
-$lang['allowdebug']            = 'å…许调试 <b>如果您ä¸éœ€è¦è°ƒè¯•,请勿勾选ï¼</b>';
-$lang['recent']                = '最近更新';
-$lang['recent_days']           = 'ä¿ç•™å¤šå°‘天的最近更改(天)';
-$lang['breadcrumbs']           = '显示“足迹â€çš„æ•°é‡';
-$lang['youarehere']            = '显示“您在这里â€';
-$lang['fullpath']              = '在页é¢åº•部显示完整路径';
-$lang['typography']            = '进行字符替æ¢';
-$lang['dformat']               = '日期格å¼ï¼ˆå‚è§ PHP çš„ <a href="http://php.net/strftime">strftime</a> 功能)';
-$lang['signature']             = 'ç­¾åæ ·å¼';
-$lang['showuseras']            = '显示用户为';
-$lang['toptoclevel']           = '目录的最顶层';
-$lang['tocminheads']           = 'å¤´æ¡æ•°ç›®çš„æœ€å°æ•°ç›®ï¼Œè¿™å°†ç”¨äºŽå†³å®šæ˜¯å¦åˆ›å»ºç›®å½•列表(TOC)';
-$lang['maxtoclevel']           = '目录的最多层次';
-$lang['maxseclevel']           = '段è½ç¼–辑的最多层次';
-$lang['camelcase']             = '对链接使用 CamelCase';
-$lang['deaccent']              = '清ç†é¡µé¢åç§°';
-$lang['useheading']            = '使用“标题 H1â€ä½œä¸ºé¡µé¢åç§°';
-$lang['sneaky_index']          = '默认情况下,DokuWiki 在索引页会显示所有 namespace。å¯ç”¨è¯¥é€‰é¡¹èƒ½éšè—那些用户没有æƒé™é˜…读的页é¢ã€‚但也å¯èƒ½å°†ç”¨æˆ·èƒ½å¤Ÿé˜…读的å­é¡µé¢ä¸€å¹¶éšè—。这有å¯èƒ½å¯¼è‡´åœ¨ç‰¹å®š ACL 设置下,索引功能ä¸å¯ç”¨ã€‚';
-$lang['hidepages']             = 'éšè—匹é…的界é¢ï¼ˆæ­£åˆ™è¡¨è¾¾å¼ï¼‰';
-$lang['useacl']                = '使用访问控制列表(ACL)';
-$lang['autopasswd']            = '自动生æˆå¯†ç ';
-$lang['authtype']              = '认è¯åŽå°ç®¡ç†æ–¹å¼';
-$lang['passcrypt']             = '密ç åŠ å¯†æ–¹æ³•';
-$lang['defaultgroup']          = '默认组';
-$lang['superuser']             = '超级用户 - ä¸è®º ACL 如何设置,都能访问所有页é¢ä¸ŽåŠŸèƒ½çš„ç”¨æˆ·ç»„/用户';
-$lang['manager']               = '管ç†å‘˜ - 能访问相应管ç†åŠŸèƒ½çš„ç”¨æˆ·ç»„/用户';
-$lang['profileconfirm']        = 'æ›´æ–°ä¸ªäººä¿¡æ¯æ—¶éœ€è¦è¾“入当å‰å¯†ç ';
-$lang['rememberme']            = 'å…许在本地机长期ä¿ç•™ç™»å½•cookiesä¿¡æ¯ï¼ˆè®°ä½æˆ‘)';
-$lang['disableactions']        = 'åœç”¨ DokuWiki 功能';
-$lang['disableactions_check']  = '检查';
-$lang['disableactions_subscription'] = '订阅/退订';
-$lang['disableactions_wikicode'] = 'æŸ¥çœ‹æºæ–‡ä»¶/å¯¼å‡ºæºæ–‡ä»¶';
-$lang['disableactions_profile_delete'] = '删除自己的账户';
-$lang['disableactions_other']  = '其他功能(用英文逗å·åˆ†éš”)';
-$lang['disableactions_rss']    = 'XML åŒæ­¥ (RSS)';
-$lang['auth_security_timeout'] = '认è¯å®‰å…¨è¶…时(秒)';
-$lang['securecookie']          = 'è¦è®©æµè§ˆå™¨é¡»ä»¥HTTPSæ–¹å¼ä¼ é€åœ¨HTTPS会è¯ä¸­è®¾ç½®çš„cookieså—?请åªåœ¨ç™»å½•过程为SSL加密而æµè§ˆç»´åŸºä¸ºæ˜Žæ–‡çš„æƒ…况下打开此选项。';
-$lang['remote']                = '激活远程 API 系统。这å…许其他程åºé€šè¿‡ XML-RPC 或其他机制æ¥è®¿é—®ç»´åŸºã€‚';
-$lang['remoteuser']            = '将远程 API 的访问æƒé™é™åˆ¶åœ¨æŒ‡å®šçš„组或用户中,以逗å·åˆ†éš”。留空则å…许任何人访问。';
-$lang['usewordblock']          = 'æ ¹æ® wordlist 阻止垃圾评论';
-$lang['relnofollow']           = '对外部链接使用 rel="nofollow" 标签';
-$lang['indexdelay']            = '构建索引å‰çš„æ—¶é—´å»¶æ»žï¼ˆç§’)';
-$lang['mailguard']             = '弄乱邮件地å€ï¼ˆä¿æŠ¤ç”¨æˆ·çš„邮件地å€ï¼‰';
-$lang['iexssprotect']          = '检验上传的文件以é¿å…å¯èƒ½å­˜åœ¨çš„æ¶æ„ JavaScript 或 HTML 代ç ';
-$lang['usedraft']              = '编辑时自动ä¿å­˜ä¸€ä»½è‰ç¨¿';
-$lang['htmlok']                = 'å…è®¸åµŒå…¥å¼ HTML';
-$lang['phpok']                 = 'å…è®¸åµŒå…¥å¼ PHP';
-$lang['locktime']              = '独有编辑æƒ/文件é”定的最长时间(秒)';
-$lang['cachetime']             = '缓存的最长时间(秒)';
-$lang['target____wiki']        = '内部链接的目标窗å£';
-$lang['target____interwiki']   = 'Interwiki 链接的目标窗å£';
-$lang['target____extern']      = '外部链接的目标窗å£';
-$lang['target____media']       = '媒体文件链接的目标窗å£';
-$lang['target____windows']     = 'Windows 链接的目标窗å£';
-$lang['mediarevisions']        = '激活媒体修订历å²ï¼Ÿ';
-$lang['refcheck']              = '检查媒体与页é¢çš„æŒ‚钩情况';
-$lang['gdlib']                 = 'GD 库版本';
-$lang['im_convert']            = 'ImageMagick 转æ¢å·¥å…·çš„路径';
-$lang['jpg_quality']           = 'JPG 压缩质é‡ï¼ˆ0-100)';
-$lang['fetchsize']             = 'fetch.php 能从外部下载的最大文件大å°ï¼ˆå­—节)';
-$lang['subscribers']           = 'å¯ç”¨é¡µé¢è®¢é˜…支æŒ';
-$lang['subscribe_time']        = '订阅列表和摘è¦å‘é€çš„æ—¶é—´é—´éš”(秒);这应当å°äºŽæŒ‡å®šçš„æœ€è¿‘更改ä¿ç•™æ—¶é—´ï¼ˆrecent_days)。
-';
-$lang['notify']                = 'å‘逿›´æ”¹é€šçŸ¥ç»™è¿™ä¸ªé‚®ä»¶åœ°å€';
-$lang['registernotify']        = 'å‘逿–°æ³¨å†Œç”¨æˆ·çš„ä¿¡æ¯ç»™è¿™ä¸ªé‚®ä»¶åœ°å€';
-$lang['mailfrom']              = '自动å‘é€é‚®ä»¶æ—¶ä½¿ç”¨çš„邮件地å€';
-$lang['mailreturnpath']        = 'éžæŠ•é€’é€šçŸ¥çš„æ”¶ä»¶äººé‚®ç®±åœ°å€';
-$lang['mailprefix']            = '自动å‘é€é‚®ä»¶æ—¶ä½¿ç”¨çš„邮件地å€å‰ç¼€';
-$lang['htmlmail']              = 'å‘逿›´åŠ ç¾Žè§‚ï¼Œä½†ä½“ç§¯æ›´å¤§çš„ HTML 多部分邮件。ç¦ç”¨åˆ™å‘é€çº¯æ–‡æœ¬é‚®ä»¶ã€‚';
-$lang['sitemap']               = 'ç”Ÿæˆ Google sitemap(天)';
-$lang['rss_type']              = 'XML feed 类型';
-$lang['rss_linkto']            = 'XML feed 链接到';
-$lang['rss_content']           = 'XML feed 项目中显示什么呢?';
-$lang['rss_update']            = 'XML feed å‡çº§é—´éš”(秒)';
-$lang['rss_show_summary']      = 'XML feed 在标题中显示摘è¦';
-$lang['rss_media']             = '在 XML æºä¸­åº”该列出何ç§ç±»åž‹çš„æ›´æ”¹ï¼Ÿ';
-$lang['rss_media_o_both']      = '两者å‡å¯';
-$lang['rss_media_o_pages']     = '页é¢';
-$lang['rss_media_o_media']     = '媒体';
-$lang['updatecheck']           = '自动检查更新并接收安全警告å—?开å¯è¯¥åŠŸèƒ½åŽ DokuWiki 将自动访问 splitbrain.org。';
-$lang['userewrite']            = '使用更整æ´çš„ URL';
-$lang['useslash']              = '在 URL 中使用斜æ ä½œä¸ºå‘½å空间的分隔符';
-$lang['sepchar']               = '页é¢å称中的å•è¯åˆ†éš”符';
-$lang['canonical']             = '使用完全标准的 URL';
-$lang['fnencode']              = 'éž ASCII 文件åçš„ç¼–ç æ–¹æ³•。';
-$lang['autoplural']            = 'åœ¨é“¾æŽ¥ä¸­æ£€æŸ¥å¤šç§æ ¼å¼';
-$lang['compression']           = 'attic 文件的压缩方å¼';
-$lang['gzip_output']           = '对 xhtml 使用 gzip 内容编ç ';
-$lang['compress']              = '使 CSS 和 javascript 的输出更紧密';
-$lang['cssdatauri']            = '字节数。CSS 文件引用的图片若å°äºŽè¯¥å­—节,则被直接嵌入样å¼è¡¨ä¸­æ¥å‡å°‘ HTTP 请求头的开销。这个技术在 IE 中ä¸èµ·ä½œç”¨ã€‚<code>400</code> 到 <code>600</code> 字节是ä¸é”™çš„值。设置为 <code>0</code> 则ç¦ç”¨ã€‚';
-$lang['send404']               = 'å‘é€ "HTTP 404/页颿²¡æœ‰æ‰¾åˆ°" 错误信æ¯ç»™ä¸å­˜åœ¨çš„页é¢';
-$lang['broken_iua']            = 'ignore_user_abort 功能失效了?这有å¯èƒ½å¯¼è‡´æœç´¢ç´¢å¼•ä¸å¯ç”¨ã€‚IIS+PHP/CGI å·²æŸå。请å‚阅 <a href="http://bugs.splitbrain.org/?do=details&amp;task_id=852">Bug 852</a> èŽ·å–æ›´å¤šä¿¡æ¯ã€‚';
-$lang['xsendfile']             = '使用 X-Sendfile 头让æœåС噍å‘é€çŠ¶æ€æ–‡ä»¶ï¼Ÿæ‚¨çš„æœåŠ¡å™¨éœ€è¦æ”¯æŒè¯¥åŠŸèƒ½ã€‚';
-$lang['renderer_xhtml']        = 'ä¸»ç»´åŸºé¡µé¢ (xhtml) 输出使用的渲染';
-$lang['renderer__core']        = '%s(DokuWiki 内核)';
-$lang['renderer__plugin']      = '%s(æ’件)';
-$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']         = 'ä»£ç†æœåŠ¡å™¨çš„åç§°';
-$lang['proxy____port']         = 'ä»£ç†æœåŠ¡å™¨çš„ç«¯å£';
-$lang['proxy____user']         = 'ä»£ç†æœåŠ¡å™¨çš„ç”¨æˆ·å';
-$lang['proxy____pass']         = 'ä»£ç†æœåŠ¡å™¨çš„å¯†ç ';
-$lang['proxy____ssl']          = '使用 SSL è¿žæŽ¥åˆ°ä»£ç†æœåС噍';
-$lang['proxy____except']       = '用æ¥åŒ¹é…代ç†åº”跳过的地å€çš„æ­£åˆ™è¡¨è¾¾å¼ã€‚';
-$lang['safemodehack']          = 'å¯ç”¨ Safemode Hack';
-$lang['ftp____host']           = 'Safemode Hack çš„ FTP æœåС噍';
-$lang['ftp____port']           = 'Safemode Hack çš„ FTP 端å£';
-$lang['ftp____user']           = 'Safemode Hack çš„ FTP 用户å';
-$lang['ftp____pass']           = 'Safemode Hack çš„ FTP 密ç ';
-$lang['ftp____root']           = 'Safemode Hack 的 FTP 根路径';
-$lang['license_o_']            = '什么都没有选';
-$lang['typography_o_0']        = 'æ— ';
-$lang['typography_o_1']        = 'ä»…é™åŒå¼•å·';
-$lang['typography_o_2']        = '所有引å·ï¼ˆä¸ä¸€å®šèƒ½æ­£å¸¸è¿è¡Œï¼‰';
-$lang['userewrite_o_0']        = 'æ— ';
-$lang['userewrite_o_1']        = '.htaccess';
-$lang['userewrite_o_2']        = 'DokuWiki 内部控制';
-$lang['deaccent_o_0']          = '关闭';
-$lang['deaccent_o_1']          = '移除é‡éŸ³ç¬¦å·';
-$lang['deaccent_o_2']          = '用罗马字拼写';
-$lang['gdlib_o_0']             = 'GD 库ä¸å¯ç”¨';
-$lang['gdlib_o_1']             = '1.x 版';
-$lang['gdlib_o_2']             = '自动检测';
-$lang['rss_type_o_rss']        = 'RSS 0.91';
-$lang['rss_type_o_rss1']       = 'RSS 1.0';
-$lang['rss_type_o_rss2']       = 'RSS 2.0';
-$lang['rss_type_o_atom']       = 'Atom 0.3';
-$lang['rss_type_o_atom1']      = 'Atom 1.0';
-$lang['rss_content_o_abstract'] = '摘è¦';
-$lang['rss_content_o_diff']    = '统一差异';
-$lang['rss_content_o_htmldiff'] = 'HTML æ ¼å¼åŒ–的差异表';
-$lang['rss_content_o_html']    = '完整的 hTML 页é¢å†…容';
-$lang['rss_linkto_o_diff']     = '差别查看';
-$lang['rss_linkto_o_page']     = '已修订的页é¢';
-$lang['rss_linkto_o_rev']      = '修订列表';
-$lang['rss_linkto_o_current']  = '当å‰é¡µé¢';
-$lang['compression_o_0']       = 'æ— ';
-$lang['compression_o_gz']      = 'gzip';
-$lang['compression_o_bz2']     = 'bz2';
-$lang['xsendfile_o_0']         = 'ä¸è¦ä½¿ç”¨';
-$lang['xsendfile_o_1']         = '专有 lighttpd 头(1.5 å‘布å‰ï¼‰';
-$lang['xsendfile_o_2']         = '标准 X-Sendfile 头';
-$lang['xsendfile_o_3']         = '专有 Nginx X-Accel-Redirect 头';
-$lang['showuseras_o_loginname'] = '登录å';
-$lang['showuseras_o_username'] = '用户全å';
-$lang['showuseras_o_username_link'] = '使用用户全å作为维基内的用户链接';
-$lang['showuseras_o_email']    = '用户的电å­é‚®ç®±ï¼ˆæŒ‰é‚®ç®±ä¿æŠ¤è®¾ç½®åŠ æ‰°ï¼‰';
-$lang['showuseras_o_email_link'] = '以mailtoï¼šå½¢å¼æ˜¾ç¤ºç”¨æˆ·çš„电å­é‚®ç®±';
-$lang['useheading_o_0']        = '从ä¸';
-$lang['useheading_o_navigation'] = 'ä»…é™å¯¼èˆª';
-$lang['useheading_o_content']  = 'ä»…é™ç»´åŸºå†…容内';
-$lang['useheading_o_1']        = '一直';
-$lang['readdircache']          = 'readdir缓存的最长寿命(秒)';
diff --git a/wiki/lib/plugins/config/plugin.info.txt b/wiki/lib/plugins/config/plugin.info.txt
deleted file mode 100644
index ddd7265..0000000
--- a/wiki/lib/plugins/config/plugin.info.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-base   config
-author Christopher Smith
-email  chris@jalakai.co.uk
-date   2015-07-18
-name   Configuration Manager
-desc   Manage Dokuwiki's Configuration Settings
-url    http://dokuwiki.org/plugin:config
diff --git a/wiki/lib/plugins/config/settings/config.class.php b/wiki/lib/plugins/config/settings/config.class.php
deleted file mode 100644
index 3196d75..0000000
--- a/wiki/lib/plugins/config/settings/config.class.php
+++ /dev/null
@@ -1,1430 +0,0 @@
-<?php
-/**
- * Configuration Class and generic setting classes
- *
- * @author  Chris Smith <chris@jalakai.co.uk>
- * @author  Ben Coburn <btcoburn@silicodon.net>
- */
-
-
-if(!defined('CM_KEYMARKER')) define('CM_KEYMARKER','____');
-
-if (!class_exists('configuration')) {
-    /**
-     * Class configuration
-     */
-    class configuration {
-
-        var $_name = 'conf';           // name of the config variable found in the files (overridden by $config['varname'])
-        var $_format = 'php';          // format of the config file, supported formats - php (overridden by $config['format'])
-        var $_heading = '';            // heading string written at top of config file - don't include comment indicators
-        var $_loaded = false;          // set to true after configuration files are loaded
-        var $_metadata = array();      // holds metadata describing the settings
-        /** @var setting[]  */
-        var $setting = array();        // array of setting objects
-        var $locked = false;           // configuration is considered locked if it can't be updated
-        var $show_disabled_plugins = false;
-
-        // configuration filenames
-        var $_default_files  = array();
-        var $_local_files = array();      // updated configuration is written to the first file
-        var $_protected_files = array();
-
-        var $_plugin_list = null;
-
-        /**
-         * constructor
-         *
-         * @param string $datafile path to config metadata file
-         */
-        public function __construct($datafile) {
-            global $conf, $config_cascade;
-
-            if (!file_exists($datafile)) {
-                msg('No configuration metadata found at - '.htmlspecialchars($datafile),-1);
-                return;
-            }
-            $meta = array();
-            include($datafile);
-
-            if (isset($config['varname'])) $this->_name = $config['varname'];
-            if (isset($config['format'])) $this->_format = $config['format'];
-            if (isset($config['heading'])) $this->_heading = $config['heading'];
-
-            $this->_default_files = $config_cascade['main']['default'];
-            $this->_local_files = $config_cascade['main']['local'];
-            $this->_protected_files = $config_cascade['main']['protected'];
-
-            $this->locked = $this->_is_locked();
-            $this->_metadata = array_merge($meta, $this->get_plugintpl_metadata($conf['template']));
-            $this->retrieve_settings();
-        }
-
-        /**
-         * Retrieve and stores settings in setting[] attribute
-         */
-        public function retrieve_settings() {
-            global $conf;
-            $no_default_check = array('setting_fieldset', 'setting_undefined', 'setting_no_class');
-
-            if (!$this->_loaded) {
-                $default = array_merge($this->get_plugintpl_default($conf['template']), $this->_read_config_group($this->_default_files));
-                $local = $this->_read_config_group($this->_local_files);
-                $protected = $this->_read_config_group($this->_protected_files);
-
-                $keys = array_merge(array_keys($this->_metadata),array_keys($default), array_keys($local), array_keys($protected));
-                $keys = array_unique($keys);
-
-                $param = null;
-                foreach ($keys as $key) {
-                    if (isset($this->_metadata[$key])) {
-                        $class = $this->_metadata[$key][0];
-
-                        if($class && class_exists('setting_'.$class)){
-                            $class = 'setting_'.$class;
-                        } else {
-                            if($class != '') {
-                                $this->setting[] = new setting_no_class($key,$param);
-                            }
-                            $class = 'setting';
-                        }
-
-                        $param = $this->_metadata[$key];
-                        array_shift($param);
-                    } else {
-                        $class = 'setting_undefined';
-                        $param = null;
-                    }
-
-                    if (!in_array($class, $no_default_check) && !isset($default[$key])) {
-                        $this->setting[] = new setting_no_default($key,$param);
-                    }
-
-                    $this->setting[$key] = new $class($key,$param);
-
-                    $d = array_key_exists($key, $default) ? $default[$key] : null;
-                    $l = array_key_exists($key, $local) ? $local[$key] : null;
-                    $p = array_key_exists($key, $protected) ? $protected[$key] : null;
-
-                    $this->setting[$key]->initialize($d,$l,$p);
-                }
-
-                $this->_loaded = true;
-            }
-        }
-
-        /**
-         * Stores setting[] array to file
-         *
-         * @param string $id     Name of plugin, which saves the settings
-         * @param string $header Text at the top of the rewritten settings file
-         * @param bool $backup   backup current file? (remove any existing backup)
-         * @return bool succesful?
-         */
-        public function save_settings($id, $header='', $backup=true) {
-            global $conf;
-
-            if ($this->locked) return false;
-
-            // write back to the last file in the local config cascade
-            $file = end($this->_local_files);
-
-            // backup current file (remove any existing backup)
-            if (file_exists($file) && $backup) {
-                if (file_exists($file.'.bak')) @unlink($file.'.bak');
-                if (!io_rename($file, $file.'.bak')) return false;
-            }
-
-            if (!$fh = @fopen($file, 'wb')) {
-                io_rename($file.'.bak', $file);     // problem opening, restore the backup
-                return false;
-            }
-
-            if (empty($header)) $header = $this->_heading;
-
-            $out = $this->_out_header($id,$header);
-
-            foreach ($this->setting as $setting) {
-                $out .= $setting->out($this->_name, $this->_format);
-            }
-
-            $out .= $this->_out_footer();
-
-            @fwrite($fh, $out);
-            fclose($fh);
-            if($conf['fperm']) chmod($file, $conf['fperm']);
-            return true;
-        }
-
-        /**
-         * Update last modified time stamp of the config file
-         *
-         * @return bool
-         */
-        public function touch_settings(){
-            if ($this->locked) return false;
-            $file = end($this->_local_files);
-            return @touch($file);
-        }
-
-        /**
-         * Read and merge given config files
-         *
-         * @param array $files file paths
-         * @return array config settings
-         */
-        protected function _read_config_group($files) {
-            $config = array();
-            foreach ($files as $file) {
-                $config = array_merge($config, $this->_read_config($file));
-            }
-
-            return $config;
-        }
-
-        /**
-         * Return an array of config settings
-         *
-         * @param string $file file path
-         * @return array config settings
-         */
-        function _read_config($file) {
-
-            if (!$file) return array();
-
-            $config = array();
-
-            if ($this->_format == 'php') {
-
-                if(file_exists($file)){
-                    $contents = @php_strip_whitespace($file);
-                }else{
-                    $contents = '';
-                }
-                $pattern = '/\$'.$this->_name.'\[[\'"]([^=]+)[\'"]\] ?= ?(.*?);(?=[^;]*(?:\$'.$this->_name.'|$))/s';
-                $matches=array();
-                preg_match_all($pattern,$contents,$matches,PREG_SET_ORDER);
-
-                for ($i=0; $i<count($matches); $i++) {
-                    $value = $matches[$i][2];
-
-                    // correct issues with the incoming data
-                    // FIXME ... for now merge multi-dimensional array indices using ____
-                    $key = preg_replace('/.\]\[./',CM_KEYMARKER,$matches[$i][1]);
-
-                    // handle arrays
-                    if(preg_match('/^array ?\((.*)\)/', $value, $match)){
-                        $arr = explode(',', $match[1]);
-
-                        // remove quotes from quoted strings & unescape escaped data
-                        $len = count($arr);
-                        for($j=0; $j<$len; $j++){
-                            $arr[$j] = trim($arr[$j]);
-                            $arr[$j] = $this->_readValue($arr[$j]);
-                        }
-
-                        $value = $arr;
-                    }else{
-                        $value = $this->_readValue($value);
-                    }
-
-                    $config[$key] = $value;
-                }
-            }
-
-            return $config;
-        }
-
-        /**
-         * Convert php string into value
-         *
-         * @param string $value
-         * @return bool|string
-         */
-        protected function _readValue($value) {
-            $removequotes_pattern = '/^(\'|")(.*)(?<!\\\\)\1$/s';
-            $unescape_pairs = array(
-                '\\\\' => '\\',
-                '\\\'' => '\'',
-                '\\"' => '"'
-            );
-
-            if($value == 'true') {
-                $value = true;
-            } elseif($value == 'false') {
-                $value = false;
-            } else {
-                // remove quotes from quoted strings & unescape escaped data
-                $value = preg_replace($removequotes_pattern,'$2',$value);
-                $value = strtr($value, $unescape_pairs);
-            }
-            return $value;
-        }
-
-        /**
-         * Returns header of rewritten settings file
-         *
-         * @param string $id plugin name of which generated this output
-         * @param string $header additional text for at top of the file
-         * @return string text of header
-         */
-        protected function _out_header($id, $header) {
-            $out = '';
-            if ($this->_format == 'php') {
-                $out .= '<'.'?php'."\n".
-                      "/*\n".
-                      " * ".$header."\n".
-                      " * Auto-generated by ".$id." plugin\n".
-                      " * Run for user: ".$_SERVER['REMOTE_USER']."\n".
-                      " * Date: ".date('r')."\n".
-                      " */\n\n";
-            }
-
-            return $out;
-        }
-
-        /**
-         * Returns footer of rewritten settings file
-         *
-         * @return string text of footer
-         */
-        protected function _out_footer() {
-            $out = '';
-            if ($this->_format == 'php') {
-                $out .= "\n// end auto-generated content\n";
-            }
-
-            return $out;
-        }
-
-        /**
-         * Configuration is considered locked if there is no local settings filename
-         * or the directory its in is not writable or the file exists and is not writable
-         *
-         * @return bool true: locked, false: writable
-         */
-        protected function _is_locked() {
-            if (!$this->_local_files) return true;
-
-            $local = $this->_local_files[0];
-
-            if (!is_writable(dirname($local))) return true;
-            if (file_exists($local) && !is_writable($local)) return true;
-
-            return false;
-        }
-
-        /**
-         * not used ... conf's contents are an array!
-         * reduce any multidimensional settings to one dimension using CM_KEYMARKER
-         *
-         * @param $conf
-         * @param string $prefix
-         * @return array
-         */
-        protected function _flatten($conf,$prefix='') {
-
-            $out = array();
-
-            foreach($conf as $key => $value) {
-                if (!is_array($value)) {
-                    $out[$prefix.$key] = $value;
-                    continue;
-                }
-
-                $tmp = $this->_flatten($value,$prefix.$key.CM_KEYMARKER);
-                $out = array_merge($out,$tmp);
-            }
-
-            return $out;
-        }
-
-        /**
-         * Returns array of plugin names
-         *
-         * @return array plugin names
-         * @triggers PLUGIN_CONFIG_PLUGINLIST event
-         */
-        function get_plugin_list() {
-            if (is_null($this->_plugin_list)) {
-                $list = plugin_list('',$this->show_disabled_plugins);
-
-                // remove this plugin from the list
-                $idx = array_search('config',$list);
-                unset($list[$idx]);
-
-                trigger_event('PLUGIN_CONFIG_PLUGINLIST',$list);
-                $this->_plugin_list = $list;
-            }
-
-            return $this->_plugin_list;
-        }
-
-        /**
-         * load metadata for plugin and template settings
-         *
-         * @param string $tpl name of active template
-         * @return array metadata of settings
-         */
-        function get_plugintpl_metadata($tpl){
-            $file     = '/conf/metadata.php';
-            $class    = '/conf/settings.class.php';
-            $metadata = array();
-
-            foreach ($this->get_plugin_list() as $plugin) {
-                $plugin_dir = plugin_directory($plugin);
-                if (file_exists(DOKU_PLUGIN.$plugin_dir.$file)){
-                    $meta = array();
-                    @include(DOKU_PLUGIN.$plugin_dir.$file);
-                    @include(DOKU_PLUGIN.$plugin_dir.$class);
-                    if (!empty($meta)) {
-                        $metadata['plugin'.CM_KEYMARKER.$plugin.CM_KEYMARKER.'plugin_settings_name'] = array('fieldset');
-                    }
-                    foreach ($meta as $key => $value){
-                        if ($value[0]=='fieldset') { continue; } //plugins only get one fieldset
-                        $metadata['plugin'.CM_KEYMARKER.$plugin.CM_KEYMARKER.$key] = $value;
-                    }
-                }
-            }
-
-            // the same for the active template
-            if (file_exists(tpl_incdir().$file)){
-                $meta = array();
-                @include(tpl_incdir().$file);
-                @include(tpl_incdir().$class);
-                if (!empty($meta)) {
-                    $metadata['tpl'.CM_KEYMARKER.$tpl.CM_KEYMARKER.'template_settings_name'] = array('fieldset');
-                }
-                foreach ($meta as $key => $value){
-                    if ($value[0]=='fieldset') { continue; } //template only gets one fieldset
-                    $metadata['tpl'.CM_KEYMARKER.$tpl.CM_KEYMARKER.$key] = $value;
-                }
-            }
-
-            return $metadata;
-        }
-
-        /**
-         * Load default settings for plugins and templates
-         *
-         * @param string $tpl name of active template
-         * @return array default settings
-         */
-        function get_plugintpl_default($tpl){
-            $file    = '/conf/default.php';
-            $default = array();
-
-            foreach ($this->get_plugin_list() as $plugin) {
-                $plugin_dir = plugin_directory($plugin);
-                if (file_exists(DOKU_PLUGIN.$plugin_dir.$file)){
-                    $conf = $this->_read_config(DOKU_PLUGIN.$plugin_dir.$file);
-                    foreach ($conf as $key => $value){
-                        $default['plugin'.CM_KEYMARKER.$plugin.CM_KEYMARKER.$key] = $value;
-                    }
-                }
-            }
-
-            // the same for the active template
-            if (file_exists(tpl_incdir().$file)){
-                $conf = $this->_read_config(tpl_incdir().$file);
-                foreach ($conf as $key => $value){
-                    $default['tpl'.CM_KEYMARKER.$tpl.CM_KEYMARKER.$key] = $value;
-                }
-            }
-
-            return $default;
-        }
-
-    }
-}
-
-if (!class_exists('setting')) {
-    /**
-     * Class setting
-     */
-    class setting {
-
-        var $_key = '';
-        var $_default = null;
-        var $_local = null;
-        var $_protected = null;
-
-        var $_pattern = '';
-        var $_error = false;            // only used by those classes which error check
-        var $_input = null;             // only used by those classes which error check
-        var $_caution = null;           // used by any setting to provide an alert along with the setting
-                                        // valid alerts, 'warning', 'danger', 'security'
-                                        // images matching the alerts are in the plugin's images directory
-
-        static protected $_validCautions = array('warning','danger','security');
-
-        /**
-         * @param string $key
-         * @param array|null $params array with metadata of setting
-         */
-        public function __construct($key, $params=null) {
-            $this->_key = $key;
-
-            if (is_array($params)) {
-                foreach($params as $property => $value) {
-                    $this->$property = $value;
-                }
-            }
-        }
-
-        /**
-         * Receives current values for the setting $key
-         *
-         * @param mixed $default   default setting value
-         * @param mixed $local     local setting value
-         * @param mixed $protected protected setting value
-         */
-        public function initialize($default, $local, $protected) {
-            if (isset($default)) $this->_default = $default;
-            if (isset($local)) $this->_local = $local;
-            if (isset($protected)) $this->_protected = $protected;
-        }
-
-        /**
-         * update changed setting with user provided value $input
-         * - if changed value fails error check, save it to $this->_input (to allow echoing later)
-         * - if changed value passes error check, set $this->_local to the new value
-         *
-         * @param  mixed   $input   the new value
-         * @return boolean          true if changed, false otherwise (also on error)
-         */
-        public function update($input) {
-            if (is_null($input)) return false;
-            if ($this->is_protected()) return false;
-
-            $value = is_null($this->_local) ? $this->_default : $this->_local;
-            if ($value == $input) return false;
-
-            if ($this->_pattern && !preg_match($this->_pattern,$input)) {
-                $this->_error = true;
-                $this->_input = $input;
-                return false;
-            }
-
-            $this->_local = $input;
-            return true;
-        }
-
-        /**
-         * Build html for label and input of 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(admin_plugin_config $plugin, $echo=false) {
-            $disable = '';
-
-            if ($this->is_protected()) {
-                $value = $this->_protected;
-                $disable = 'disabled="disabled"';
-            } else {
-                if ($echo && $this->_error) {
-                    $value = $this->_input;
-                } else {
-                    $value = is_null($this->_local) ? $this->_default : $this->_local;
-                }
-            }
-
-            $key = htmlspecialchars($this->_key);
-            $value = formText($value);
-
-            $label = '<label for="config___'.$key.'">'.$this->prompt($plugin).'</label>';
-            $input = '<textarea rows="3" cols="40" id="config___'.$key.'" name="config['.$key.']" class="edit" '.$disable.'>'.$value.'</textarea>';
-            return array($label,$input);
-        }
-
-        /**
-         * Generate string to save setting value to file according to $fmt
-         *
-         * @param string $var name of variable
-         * @param string $fmt save format
-         * @return string
-         */
-        public function out($var, $fmt='php') {
-
-            if ($this->is_protected()) return '';
-            if (is_null($this->_local) || ($this->_default == $this->_local)) return '';
-
-            $out = '';
-
-            if ($fmt=='php') {
-                $tr = array("\\" => '\\\\', "'" => '\\\'');
-
-                $out =  '$'.$var."['".$this->_out_key()."'] = '".strtr( cleanText($this->_local), $tr)."';\n";
-            }
-
-            return $out;
-        }
-
-        /**
-         * Returns the localized prompt
-         *
-         * @param admin_plugin_config $plugin object of config plugin
-         * @return string text
-         */
-        public function prompt(admin_plugin_config $plugin) {
-            $prompt = $plugin->getLang($this->_key);
-            if (!$prompt) $prompt = htmlspecialchars(str_replace(array('____','_'),' ',$this->_key));
-            return $prompt;
-        }
-
-        /**
-         * Is setting protected
-         *
-         * @return bool
-         */
-        public function is_protected() { return !is_null($this->_protected); }
-
-        /**
-         * Is setting the default?
-         *
-         * @return bool
-         */
-        public function is_default() { return !$this->is_protected() && is_null($this->_local); }
-
-        /**
-         * Has an error?
-         *
-         * @return bool
-         */
-        public function error() { return $this->_error; }
-
-        /**
-         * Returns caution
-         *
-         * @return false|string caution string, otherwise false for invalid caution
-         */
-        public function caution() {
-            if (!empty($this->_caution)) {
-                if (!in_array($this->_caution, setting::$_validCautions)) {
-                    trigger_error('Invalid caution string ('.$this->_caution.') in metadata for setting "'.$this->_key.'"', E_USER_WARNING);
-                    return false;
-                }
-                return $this->_caution;
-            }
-            // compatibility with previous cautionList
-            // TODO: check if any plugins use; remove
-            if (!empty($this->_cautionList[$this->_key])) {
-                $this->_caution = $this->_cautionList[$this->_key];
-                unset($this->_cautionList);
-
-                return $this->caution();
-            }
-            return false;
-        }
-
-        /**
-         * Returns setting key, eventually with referer to config: namespace at dokuwiki.org
-         *
-         * @param bool $pretty create nice key
-         * @param bool $url    provide url to config: namespace
-         * @return string key
-         */
-        public function _out_key($pretty=false,$url=false) {
-            if($pretty){
-                $out = str_replace(CM_KEYMARKER,"»",$this->_key);
-                if ($url && !strstr($out,'»')) {//provide no urls for plugins, etc.
-                    if ($out == 'start') //one exception
-                        return '<a href="http://www.dokuwiki.org/config:startpage">'.$out.'</a>';
-                    else
-                        return '<a href="http://www.dokuwiki.org/config:'.$out.'">'.$out.'</a>';
-                }
-                return $out;
-            }else{
-                return str_replace(CM_KEYMARKER,"']['",$this->_key);
-            }
-        }
-    }
-}
-
-
-if (!class_exists('setting_array')) {
-    /**
-     * Class setting_array
-     */
-    class setting_array extends setting {
-
-        /**
-         * Create an array from a string
-         *
-         * @param string $string
-         * @return array
-         */
-        protected function _from_string($string){
-            $array = explode(',', $string);
-            $array = array_map('trim', $array);
-            $array = array_filter($array);
-            $array = array_unique($array);
-            return $array;
-        }
-
-        /**
-         * Create a string from an array
-         *
-         * @param array $array
-         * @return string
-         */
-        protected function _from_array($array){
-            return join(', ', (array) $array);
-        }
-
-        /**
-         * update setting with user provided value $input
-         * if value fails error check, save it
-         *
-         * @param string $input
-         * @return bool true if changed, false otherwise (incl. on error)
-         */
-        function update($input) {
-            if (is_null($input)) return false;
-            if ($this->is_protected()) return false;
-
-            $input = $this->_from_string($input);
-
-            $value = is_null($this->_local) ? $this->_default : $this->_local;
-            if ($value == $input) return false;
-
-            foreach($input as $item){
-                if ($this->_pattern && !preg_match($this->_pattern,$item)) {
-                    $this->_error = true;
-                    $this->_input = $input;
-                    return false;
-                }
-            }
-
-            $this->_local = $input;
-            return true;
-        }
-
-        /**
-         * Escaping
-         *
-         * @param string $string
-         * @return string
-         */
-        protected function _escape($string) {
-            $tr = array("\\" => '\\\\', "'" => '\\\'');
-            return "'".strtr( cleanText($string), $tr)."'";
-        }
-
-        /**
-         * Generate string to save setting value to file according to $fmt
-         *
-         * @param string $var name of variable
-         * @param string $fmt save format
-         * @return string
-         */
-        function out($var, $fmt='php') {
-
-            if ($this->is_protected()) return '';
-            if (is_null($this->_local) || ($this->_default == $this->_local)) return '';
-
-            $out = '';
-
-            if ($fmt=='php') {
-                $vals = array_map(array($this, '_escape'), $this->_local);
-                $out =  '$'.$var."['".$this->_out_key()."'] = array(".join(', ',$vals).");\n";
-            }
-
-            return $out;
-        }
-
-        /**
-         * Build html for label and input of 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)
-         */
-        function html(admin_plugin_config $plugin, $echo=false) {
-            $disable = '';
-
-            if ($this->is_protected()) {
-                $value = $this->_protected;
-                $disable = 'disabled="disabled"';
-            } else {
-                if ($echo && $this->_error) {
-                    $value = $this->_input;
-                } else {
-                    $value = is_null($this->_local) ? $this->_default : $this->_local;
-                }
-            }
-
-            $key = htmlspecialchars($this->_key);
-            $value = htmlspecialchars($this->_from_array($value));
-
-            $label = '<label for="config___'.$key.'">'.$this->prompt($plugin).'</label>';
-            $input = '<input id="config___'.$key.'" name="config['.$key.']" type="text" class="edit" value="'.$value.'" '.$disable.'/>';
-            return array($label,$input);
-        }
-    }
-}
-
-if (!class_exists('setting_string')) {
-    /**
-     * Class setting_string
-     */
-    class setting_string extends setting {
-        /**
-         * Build html for label and input of 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)
-         */
-        function html(admin_plugin_config $plugin, $echo=false) {
-            $disable = '';
-
-            if ($this->is_protected()) {
-                $value = $this->_protected;
-                $disable = 'disabled="disabled"';
-            } else {
-                if ($echo && $this->_error) {
-                    $value = $this->_input;
-                } else {
-                    $value = is_null($this->_local) ? $this->_default : $this->_local;
-                }
-            }
-
-            $key = htmlspecialchars($this->_key);
-            $value = htmlspecialchars($value);
-
-            $label = '<label for="config___'.$key.'">'.$this->prompt($plugin).'</label>';
-            $input = '<input id="config___'.$key.'" name="config['.$key.']" type="text" class="edit" value="'.$value.'" '.$disable.'/>';
-            return array($label,$input);
-        }
-    }
-}
-
-if (!class_exists('setting_password')) {
-    /**
-     * Class setting_password
-     */
-    class setting_password extends setting_string {
-
-        var $_code = 'plain';  // mechanism to be used to obscure passwords
-
-        /**
-         * update changed setting with user provided value $input
-         * - if changed value fails error check, save it to $this->_input (to allow echoing later)
-         * - if changed value passes error check, set $this->_local to the new value
-         *
-         * @param  mixed   $input   the new value
-         * @return boolean          true if changed, false otherwise (also on error)
-         */
-        function update($input) {
-            if ($this->is_protected()) return false;
-            if (!$input) return false;
-
-            if ($this->_pattern && !preg_match($this->_pattern,$input)) {
-                $this->_error = true;
-                $this->_input = $input;
-                return false;
-            }
-
-            $this->_local = conf_encodeString($input,$this->_code);
-            return true;
-        }
-
-        /**
-         * Build html for label and input of 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)
-         */
-        function html(admin_plugin_config $plugin, $echo=false) {
-
-            $disable = $this->is_protected() ? 'disabled="disabled"' : '';
-
-            $key = htmlspecialchars($this->_key);
-
-            $label = '<label for="config___'.$key.'">'.$this->prompt($plugin).'</label>';
-            $input = '<input id="config___'.$key.'" name="config['.$key.']" autocomplete="off" type="password" class="edit" value="" '.$disable.' />';
-            return array($label,$input);
-        }
-    }
-}
-
-if (!class_exists('setting_email')) {
-    /**
-     * Class setting_email
-     */
-    class setting_email extends setting_string {
-        var $_multiple = false;
-        var $_placeholders = false;
-
-        /**
-         * update setting with user provided value $input
-         * if value fails error check, save it
-         *
-         * @param mixed $input
-         * @return boolean true if changed, false otherwise (incl. on error)
-         */
-        function update($input) {
-            if (is_null($input)) return false;
-            if ($this->is_protected()) return false;
-
-            $value = is_null($this->_local) ? $this->_default : $this->_local;
-            if ($value == $input) return false;
-            if($input === ''){
-                $this->_local = $input;
-                return true;
-            }
-            $mail = $input;
-
-            if($this->_placeholders){
-                // replace variables with pseudo values
-                $mail = str_replace('@USER@','joe',$mail);
-                $mail = str_replace('@NAME@','Joe Schmoe',$mail);
-                $mail = str_replace('@MAIL@','joe@example.com',$mail);
-            }
-
-            // multiple mail addresses?
-            if ($this->_multiple) {
-                $mails = array_filter(array_map('trim', explode(',', $mail)));
-            } else {
-                $mails = array($mail);
-            }
-
-            // check them all
-            foreach ($mails as $mail) {
-                // only check the address part
-                if(preg_match('#(.*?)<(.*?)>#', $mail, $matches)){
-                    $addr = $matches[2];
-                }else{
-                    $addr = $mail;
-                }
-
-                if (!mail_isvalid($addr)) {
-                    $this->_error = true;
-                    $this->_input = $input;
-                    return false;
-                }
-            }
-
-            $this->_local = $input;
-            return true;
-        }
-    }
-}
-
-if (!class_exists('setting_numeric')) {
-    /**
-     * Class setting_numeric
-     */
-    class setting_numeric extends setting_string {
-        // This allows for many PHP syntax errors...
-        // var $_pattern = '/^[-+\/*0-9 ]*$/';
-        // much more restrictive, but should eliminate syntax errors.
-        var $_pattern = '/^[-+]? *[0-9]+ *(?:[-+*] *[0-9]+ *)*$/';
-        var $_min = null;
-        var $_max = null;
-
-        /**
-         * update changed setting with user provided value $input
-         * - if changed value fails error check, save it to $this->_input (to allow echoing later)
-         * - if changed value passes error check, set $this->_local to the new value
-         *
-         * @param  mixed   $input   the new value
-         * @return boolean          true if changed, false otherwise (also on error)
-         */
-        function update($input) {
-            $local = $this->_local;
-            $valid = parent::update($input);
-            if ($valid && !(is_null($this->_min) && is_null($this->_max))) {
-                $numeric_local = (int) eval('return '.$this->_local.';');
-                if ((!is_null($this->_min) && $numeric_local < $this->_min) ||
-                    (!is_null($this->_max) && $numeric_local > $this->_max)) {
-                    $this->_error = true;
-                    $this->_input = $input;
-                    $this->_local = $local;
-                    $valid = false;
-                }
-            }
-            return $valid;
-        }
-
-        /**
-         * Generate string to save setting value to file according to $fmt
-         *
-         * @param string $var name of variable
-         * @param string $fmt save format
-         * @return string
-         */
-        function out($var, $fmt='php') {
-
-            if ($this->is_protected()) return '';
-            if (is_null($this->_local) || ($this->_default == $this->_local)) return '';
-
-            $out = '';
-
-            if ($fmt=='php') {
-                $local = $this->_local === '' ? "''" : $this->_local;
-                $out .=  '$'.$var."['".$this->_out_key()."'] = ".$local.";\n";
-            }
-
-            return $out;
-        }
-    }
-}
-
-if (!class_exists('setting_numericopt')) {
-    /**
-     * Class setting_numericopt
-     */
-    class setting_numericopt extends setting_numeric {
-        // just allow an empty config
-        var $_pattern = '/^(|[-]?[0-9]+(?:[-+*][0-9]+)*)$/';
-
-
-        /**
-         * Empty string is valid for numericopt
-         *
-         * @param mixed $input
-         *
-         * @return bool
-         */
-        function update($input) {
-            if ($input === '') {
-                return true;
-            }
-
-            return parent::update($input);
-        }
-    }
-}
-
-if (!class_exists('setting_onoff')) {
-    /**
-     * Class setting_onoff
-     */
-    class setting_onoff extends setting_numeric {
-        /**
-         * Build html for label and input of 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)
-         */
-        function html(admin_plugin_config $plugin, $echo = false) {
-            $disable = '';
-
-            if ($this->is_protected()) {
-                $value = $this->_protected;
-                $disable = ' disabled="disabled"';
-            } else {
-                $value = is_null($this->_local) ? $this->_default : $this->_local;
-            }
-
-            $key = htmlspecialchars($this->_key);
-            $checked = ($value) ? ' checked="checked"' : '';
-
-            $label = '<label for="config___'.$key.'">'.$this->prompt($plugin).'</label>';
-            $input = '<div class="input"><input id="config___'.$key.'" name="config['.$key.']" type="checkbox" class="checkbox" value="1"'.$checked.$disable.'/></div>';
-            return array($label,$input);
-        }
-
-        /**
-         * update changed setting with user provided value $input
-         * - if changed value fails error check, save it to $this->_input (to allow echoing later)
-         * - if changed value passes error check, set $this->_local to the new value
-         *
-         * @param  mixed   $input   the new value
-         * @return boolean          true if changed, false otherwise (also on error)
-         */
-        function update($input) {
-            if ($this->is_protected()) return false;
-
-            $input = ($input) ? 1 : 0;
-            $value = is_null($this->_local) ? $this->_default : $this->_local;
-            if ($value == $input) return false;
-
-            $this->_local = $input;
-            return true;
-        }
-    }
-}
-
-if (!class_exists('setting_multichoice')) {
-    /**
-     * Class setting_multichoice
-     */
-    class setting_multichoice extends setting_string {
-        var $_choices = array();
-        var $lang; //some custom language strings are stored in setting
-
-        /**
-         * Build html for label and input of 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)
-         */
-        function html(admin_plugin_config $plugin, $echo = false) {
-            $disable = '';
-            $nochoice = '';
-
-            if ($this->is_protected()) {
-                $value = $this->_protected;
-                $disable = ' disabled="disabled"';
-            } else {
-                $value = is_null($this->_local) ? $this->_default : $this->_local;
-            }
-
-            // ensure current value is included
-            if (!in_array($value, $this->_choices)) {
-                $this->_choices[] = $value;
-            }
-            // disable if no other choices
-            if (!$this->is_protected() && count($this->_choices) <= 1) {
-                $disable = ' disabled="disabled"';
-                $nochoice = $plugin->getLang('nochoice');
-            }
-
-            $key = htmlspecialchars($this->_key);
-
-            $label = '<label for="config___'.$key.'">'.$this->prompt($plugin).'</label>';
-
-            $input = "<div class=\"input\">\n";
-            $input .= '<select class="edit" id="config___'.$key.'" name="config['.$key.']"'.$disable.'>'."\n";
-            foreach ($this->_choices as $choice) {
-                $selected = ($value == $choice) ? ' selected="selected"' : '';
-                $option = $plugin->getLang($this->_key.'_o_'.$choice);
-                if (!$option && isset($this->lang[$this->_key.'_o_'.$choice])) $option = $this->lang[$this->_key.'_o_'.$choice];
-                if (!$option) $option = $choice;
-
-                $choice = htmlspecialchars($choice);
-                $option = htmlspecialchars($option);
-                $input .= '  <option value="'.$choice.'"'.$selected.' >'.$option.'</option>'."\n";
-            }
-            $input .= "</select> $nochoice \n";
-            $input .= "</div>\n";
-
-            return array($label,$input);
-        }
-
-        /**
-         * update changed setting with user provided value $input
-         * - if changed value fails error check, save it to $this->_input (to allow echoing later)
-         * - if changed value passes error check, set $this->_local to the new value
-         *
-         * @param  mixed   $input   the new value
-         * @return boolean          true if changed, false otherwise (also on error)
-         */
-        function update($input) {
-            if (is_null($input)) return false;
-            if ($this->is_protected()) return false;
-
-            $value = is_null($this->_local) ? $this->_default : $this->_local;
-            if ($value == $input) return false;
-
-            if (!in_array($input, $this->_choices)) return false;
-
-            $this->_local = $input;
-            return true;
-        }
-    }
-}
-
-
-if (!class_exists('setting_dirchoice')) {
-    /**
-     * Class setting_dirchoice
-     */
-    class setting_dirchoice extends setting_multichoice {
-
-        var $_dir = '';
-
-        /**
-         * Receives current values for the setting $key
-         *
-         * @param mixed $default   default setting value
-         * @param mixed $local     local setting value
-         * @param mixed $protected protected setting value
-         */
-        function initialize($default,$local,$protected) {
-
-            // populate $this->_choices with a list of directories
-            $list = array();
-
-            if ($dh = @opendir($this->_dir)) {
-                while (false !== ($entry = readdir($dh))) {
-                    if ($entry == '.' || $entry == '..') continue;
-                    if ($this->_pattern && !preg_match($this->_pattern,$entry)) continue;
-
-                    $file = (is_link($this->_dir.$entry)) ? readlink($this->_dir.$entry) : $this->_dir.$entry;
-                    if (is_dir($file)) $list[] = $entry;
-                }
-                closedir($dh);
-            }
-            sort($list);
-            $this->_choices = $list;
-
-            parent::initialize($default,$local,$protected);
-        }
-    }
-}
-
-
-if (!class_exists('setting_hidden')) {
-    /**
-     * Class setting_hidden
-     */
-    class setting_hidden extends setting {
-        // Used to explicitly ignore a setting in the configuration manager.
-    }
-}
-
-if (!class_exists('setting_fieldset')) {
-    /**
-     * Class setting_fieldset
-     */
-    class setting_fieldset extends setting {
-        // A do-nothing class used to detect the 'fieldset' type.
-        // Used to start a new settings "display-group".
-    }
-}
-
-if (!class_exists('setting_undefined')) {
-    /**
-     * Class setting_undefined
-     */
-    class setting_undefined extends setting_hidden {
-        // A do-nothing class used to detect settings with no metadata entry.
-        // Used internaly to hide undefined settings, and generate the undefined settings list.
-    }
-}
-
-if (!class_exists('setting_no_class')) {
-    /**
-     * Class setting_no_class
-     */
-    class setting_no_class extends setting_undefined {
-        // A do-nothing class used to detect settings with a missing setting class.
-        // Used internaly to hide undefined settings, and generate the undefined settings list.
-    }
-}
-
-if (!class_exists('setting_no_default')) {
-    /**
-     * Class setting_no_default
-     */
-    class setting_no_default extends setting_undefined {
-        // A do-nothing class used to detect settings with no default value.
-        // Used internaly to hide undefined settings, and generate the undefined settings list.
-    }
-}
-
-if (!class_exists('setting_multicheckbox')) {
-    /**
-     * Class setting_multicheckbox
-     */
-    class setting_multicheckbox extends setting_string {
-
-        var $_choices = array();
-        var $_combine = array();
-        var $_other = 'always';
-
-        /**
-         * update changed setting with user provided value $input
-         * - if changed value fails error check, save it to $this->_input (to allow echoing later)
-         * - if changed value passes error check, set $this->_local to the new value
-         *
-         * @param  mixed   $input   the new value
-         * @return boolean          true if changed, false otherwise (also on error)
-         */
-        function update($input) {
-            if ($this->is_protected()) return false;
-
-            // split any combined values + convert from array to comma separated string
-            $input = ($input) ? $input : array();
-            $input = $this->_array2str($input);
-
-            $value = is_null($this->_local) ? $this->_default : $this->_local;
-            if ($value == $input) return false;
-
-            if ($this->_pattern && !preg_match($this->_pattern,$input)) {
-                $this->_error = true;
-                $this->_input = $input;
-                return false;
-            }
-
-            $this->_local = $input;
-            return true;
-        }
-
-        /**
-         * Build html for label and input of setting
-         *
-         * @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(admin_plugin_config $plugin, $echo=false) {
-
-            $disable = '';
-
-            if ($this->is_protected()) {
-                $value = $this->_protected;
-                $disable = 'disabled="disabled"';
-            } else {
-                if ($echo && $this->_error) {
-                    $value = $this->_input;
-                } else {
-                    $value = is_null($this->_local) ? $this->_default : $this->_local;
-                }
-            }
-
-            $key = htmlspecialchars($this->_key);
-
-            // convert from comma separated list into array + combine complimentary actions
-            $value = $this->_str2array($value);
-            $default = $this->_str2array($this->_default);
-
-            $input = '';
-            foreach ($this->_choices as $choice) {
-                $idx = array_search($choice, $value);
-                $idx_default = array_search($choice,$default);
-
-                $checked = ($idx !== false) ? 'checked="checked"' : '';
-
-                // @todo ideally this would be handled using a second class of "default"
-                $class = (($idx !== false) == (false !== $idx_default)) ? " selectiondefault" : "";
-
-                $prompt = ($plugin->getLang($this->_key.'_'.$choice) ?
-                                $plugin->getLang($this->_key.'_'.$choice) : htmlspecialchars($choice));
-
-                $input .= '<div class="selection'.$class.'">'."\n";
-                $input .= '<label for="config___'.$key.'_'.$choice.'">'.$prompt."</label>\n";
-                $input .= '<input id="config___'.$key.'_'.$choice.'" name="config['.$key.'][]" type="checkbox" class="checkbox" value="'.$choice.'" '.$disable.' '.$checked."/>\n";
-                $input .= "</div>\n";
-
-                // remove this action from the disabledactions array
-                if ($idx !== false) unset($value[$idx]);
-                if ($idx_default !== false) unset($default[$idx_default]);
-            }
-
-            // handle any remaining values
-            if ($this->_other != 'never'){
-                $other = join(',',$value);
-                // test equivalent to ($this->_other == 'always' || ($other && $this->_other == 'exists')
-                // use != 'exists' rather than == 'always' to ensure invalid values default to 'always'
-                if ($this->_other != 'exists' || $other) {
-
-                    $class = ((count($default) == count($value)) && (count($value) == count(array_intersect($value,$default)))) ?
-                                    " selectiondefault" : "";
-
-                    $input .= '<div class="other'.$class.'">'."\n";
-                    $input .= '<label for="config___'.$key.'_other">'.$plugin->getLang($key.'_other')."</label>\n";
-                    $input .= '<input id="config___'.$key.'_other" name="config['.$key.'][other]" type="text" class="edit" value="'.htmlspecialchars($other).'" '.$disable." />\n";
-                    $input .= "</div>\n";
-                }
-            }
-            $label = '<label>'.$this->prompt($plugin).'</label>';
-            return array($label,$input);
-        }
-
-        /**
-         * convert comma separated list to an array and combine any complimentary values
-         *
-         * @param string $str
-         * @return array
-         */
-        function _str2array($str) {
-            $array = explode(',',$str);
-
-            if (!empty($this->_combine)) {
-                foreach ($this->_combine as $key => $combinators) {
-                    $idx = array();
-                    foreach ($combinators as $val) {
-                        if  (($idx[] = array_search($val, $array)) === false) break;
-                    }
-
-                    if (count($idx) && $idx[count($idx)-1] !== false) {
-                        foreach ($idx as $i) unset($array[$i]);
-                        $array[] = $key;
-                    }
-                }
-            }
-
-            return $array;
-        }
-
-        /**
-         * convert array of values + other back to a comma separated list, incl. splitting any combined values
-         *
-         * @param array $input
-         * @return string
-         */
-        function _array2str($input) {
-
-            // handle other
-            $other = trim($input['other']);
-            $other = !empty($other) ? explode(',',str_replace(' ','',$input['other'])) : array();
-            unset($input['other']);
-
-            $array = array_unique(array_merge($input, $other));
-
-            // deconstruct any combinations
-            if (!empty($this->_combine)) {
-                foreach ($this->_combine as $key => $combinators) {
-
-                    $idx = array_search($key,$array);
-                    if ($idx !== false) {
-                        unset($array[$idx]);
-                        $array = array_merge($array, $combinators);
-                    }
-                }
-            }
-
-            return join(',',array_unique($array));
-        }
-    }
-}
-
-if (!class_exists('setting_regex')){
-    /**
-     * Class setting_regex
-     */
-    class setting_regex extends setting_string {
-
-        var $_delimiter = '/';    // regex delimiter to be used in testing input
-        var $_pregflags = 'ui';   // regex pattern modifiers to be used in testing input
-
-        /**
-         * update changed setting with user provided value $input
-         * - if changed value fails error check, save it to $this->_input (to allow echoing later)
-         * - if changed value passes error check, set $this->_local to the new value
-         *
-         * @param  mixed   $input   the new value
-         * @return boolean          true if changed, false otherwise (incl. on error)
-         */
-        function update($input) {
-
-            // let parent do basic checks, value, not changed, etc.
-            $local = $this->_local;
-            if (!parent::update($input)) return false;
-            $this->_local = $local;
-
-            // see if the regex compiles and runs (we don't check for effectiveness)
-            $regex = $this->_delimiter . $input . $this->_delimiter . $this->_pregflags;
-            $lastError = error_get_last();
-            @preg_match($regex,'testdata');
-            if (preg_last_error() != PREG_NO_ERROR || error_get_last() != $lastError) {
-                $this->_input = $input;
-                $this->_error = true;
-                return false;
-            }
-
-            $this->_local = $input;
-            return true;
-        }
-    }
-}
diff --git a/wiki/lib/plugins/config/settings/config.metadata.php b/wiki/lib/plugins/config/settings/config.metadata.php
deleted file mode 100644
index acdf93b..0000000
--- a/wiki/lib/plugins/config/settings/config.metadata.php
+++ /dev/null
@@ -1,240 +0,0 @@
-<?php
-/**
- * Metadata for configuration manager plugin
- *
- * Note:  This file should be included within a function to ensure it
- *        doesn't clash with the settings it is describing.
- *
- * Format:
- *   $meta[<setting name>] = array(<handler class id>,<param name> => <param value>);
- *
- *   <handler class id>  is the handler class name without the "setting_" prefix
- *
- * Defined classes:
- *   Generic (source: settings/config.class.php)
- *   -------------------------------------------
- *   ''             - default class ('setting'), textarea, minimal input validation, setting output in quotes
- *   'string'       - single line text input, minimal input validation, setting output in quotes
- *   'numeric'      - text input, accepts numbers and arithmetic operators, setting output without quotes
- *                    if given the '_min' and '_max' parameters are used for validation
- *   'numericopt'   - like above, but accepts empty values
- *   'onoff'        - checkbox input, setting output  0|1
- *   'multichoice'  - select input (single choice), setting output with quotes, required _choices parameter
- *   'email'        - text input, input must conform to email address format, supports optional '_multiple'
- *                    parameter for multiple comma separated email addresses
- *   'password'     - password input, minimal input validation, setting output text in quotes, maybe encoded
- *                    according to the _code parameter
- *   'dirchoice'    - as multichoice, selection choices based on folders found at location specified in _dir
- *                    parameter (required). A pattern can be used to restrict the folders to only those which
- *                    match the pattern.
- *   'multicheckbox'- a checkbox for each choice plus an "other" string input, config file setting is a comma
- *                    separated list of checked choices
- *   'fieldset'     - used to group configuration settings, but is not itself a setting. To make this clear in
- *                    the language files the keys for this type should start with '_'.
- *   'array'        - a simple (one dimensional) array of string values, shown as comma separated list in the
- *                    config manager but saved as PHP array(). Values may not contain commas themselves.
- *                    _pattern matching on the array values supported.
- *   'regex'        - regular expression string, normally without delimiters; as for string, in addition tested
- *                    to see if will compile & run as a regex.  in addition to _pattern, also accepts _delimiter
- *                    (default '/') and _pregflags (default 'ui')
- *
- *  Single Setting (source: settings/extra.class.php)
- *  -------------------------------------------------
- *   'savedir'     - as 'setting', input tested against initpath() (inc/init.php)
- *   'sepchar'     - as multichoice, selection constructed from string of valid values
- *   'authtype'    - as 'setting', input validated against a valid php file at expected location for auth files
- *   'im_convert'  - as 'setting', input must exist and be an im_convert module
- *   'disableactions' - as 'setting'
- *   'compression' - no additional parameters. checks php installation supports possible compression alternatives
- *   'licence'     - as multichoice, selection constructed from licence strings in language files
- *   'renderer'    - as multichoice, selection constructed from enabled renderer plugins which canRender()
- *   'authtype'    - as multichoice, selection constructed from the enabled auth plugins
- *
- *  Any setting commented or missing will use 'setting' class - text input, minimal validation, quoted output
- *
- * Defined parameters:
- *   '_caution'    - no value (default) or 'warning', 'danger', 'security'. display an alert along with the setting
- *   '_pattern'    - string, a preg pattern. input is tested against this pattern before being accepted
- *                   optional all classes, except onoff & multichoice which ignore it
- *   '_choices'    - array of choices. used to populate a selection box. choice will be replaced by a localised
- *                   language string, indexed by  <setting name>_o_<choice>, if one exists
- *                   required by 'multichoice' & 'multicheckbox' classes, ignored by others
- *   '_dir'        - location of directory to be used to populate choice list
- *                   required by 'dirchoice' class, ignored by other classes
- *   '_combine'    - complimentary output setting values which can be combined into a single display checkbox
- *                   optional for 'multicheckbox', ignored by other classes
- *   '_code'       - encoding method to use, accepted values: 'base64','uuencode','plain'.  defaults to plain.
- *   '_min'        - minimum numeric value, optional for 'numeric' and 'numericopt', ignored by others
- *   '_max'        - maximum numeric value, optional for 'numeric' and 'numericopt', ignored by others
- *   '_delimiter'  - string, default '/', a single character used as a delimiter for testing regex input values
- *   '_pregflags'  - string, default 'ui', valid preg pattern modifiers used when testing regex input values, for more
- *                   information see http://php.net/manual/en/reference.pcre.pattern.modifiers.php
- *   '_multiple'   - bool, allow multiple comma separated email values; optional for 'email', ignored by others
- *   '_other'      - how to handle other values (not listed in _choices). accepted values: 'always','exists','never'
- *                   default value 'always'. 'exists' only shows 'other' input field when the setting contains value(s)
- *                   not listed in choices (e.g. due to manual editing or update changing _choices).  This is safer than
- *                   'never' as it will not discard unknown/other values.
- *                   optional for 'multicheckbox', ignored by others
- *
- *
- * @author    Chris Smith <chris@jalakai.co.uk>
- */
-// ---------------[ settings for settings ]------------------------------
-$config['format']  = 'php';      // format of setting files, supported formats: php
-$config['varname'] = 'conf';     // name of the config variable, sans $
-
-// this string is written at the top of the rewritten settings file,
-// !! do not include any comment indicators !!
-// this value can be overriden when calling save_settings() method
-$config['heading'] = 'Dokuwiki\'s Main Configuration File - Local Settings';
-
-// test value (FIXME, remove before publishing)
-//$meta['test']     = array('multichoice','_choices' => array(''));
-
-// --------------[ setting metadata ]------------------------------------
-// - for description of format and fields see top of file
-// - order the settings in the order you wish them to appear
-// - any settings not mentioned will come after the last setting listed and
-//   will use the default class with no parameters
-
-$meta['_basic']   = array('fieldset');
-$meta['title']    = array('string');
-$meta['start']    = array('string','_caution' => 'warning','_pattern' => '!^[^:;/]+$!'); // don't accept namespaces
-$meta['lang']     = array('dirchoice','_dir' => DOKU_INC.'inc/lang/');
-$meta['template'] = array('dirchoice','_dir' => DOKU_INC.'lib/tpl/','_pattern' => '/^[\w-]+$/');
-$meta['tagline']  = array('string');
-$meta['sidebar']  = array('string');
-$meta['license']  = array('license');
-$meta['savedir']  = array('savedir','_caution' => 'danger');
-$meta['basedir']  = array('string','_caution' => 'danger');
-$meta['baseurl']  = array('string','_caution' => 'danger');
-$meta['cookiedir'] = array('string','_caution' => 'danger');
-$meta['dmode']    = array('numeric','_pattern' => '/0[0-7]{3,4}/'); // only accept octal representation
-$meta['fmode']    = array('numeric','_pattern' => '/0[0-7]{3,4}/'); // only accept octal representation
-$meta['allowdebug']  = array('onoff','_caution' => 'security');
-
-$meta['_display']    = array('fieldset');
-$meta['recent']      = array('numeric');
-$meta['recent_days'] = array('numeric');
-$meta['breadcrumbs'] = array('numeric','_min' => 0);
-$meta['youarehere']  = array('onoff');
-$meta['fullpath']    = array('onoff','_caution' => 'security');
-$meta['typography']  = array('multichoice','_choices' => array(0,1,2));
-$meta['dformat']     = array('string');
-$meta['signature']   = array('string');
-$meta['showuseras']  = array('multichoice','_choices' => array('loginname','username','username_link','email','email_link'));
-$meta['toptoclevel'] = array('multichoice','_choices' => array(1,2,3,4,5));   // 5 toc levels
-$meta['tocminheads'] = array('multichoice','_choices' => array(0,1,2,3,4,5,10,15,20));
-$meta['maxtoclevel'] = array('multichoice','_choices' => array(0,1,2,3,4,5));
-$meta['maxseclevel'] = array('multichoice','_choices' => array(0,1,2,3,4,5)); // 0 for no sec edit buttons
-$meta['camelcase']   = array('onoff','_caution' => 'warning');
-$meta['deaccent']    = array('multichoice','_choices' => array(0,1,2),'_caution' => 'warning');
-$meta['useheading']  = array('multichoice','_choices' => array(0,'navigation','content',1));
-$meta['sneaky_index'] = array('onoff');
-$meta['hidepages']   = array('regex');
-
-$meta['_authentication'] = array('fieldset');
-$meta['useacl']      = array('onoff','_caution' => 'danger');
-$meta['autopasswd']  = array('onoff');
-$meta['authtype']    = array('authtype','_caution' => 'danger');
-$meta['passcrypt']   = array('multichoice','_choices' => array(
-    'smd5','md5','apr1','sha1','ssha','lsmd5','crypt','mysql','my411','kmd5','pmd5','hmd5',
-    'mediawiki','bcrypt','djangomd5','djangosha1','djangopbkdf2_sha1','djangopbkdf2_sha256','sha512'
-));
-$meta['defaultgroup']= array('string');
-$meta['superuser']   = array('string','_caution' => 'danger');
-$meta['manager']     = array('string');
-$meta['profileconfirm'] = array('onoff');
-$meta['rememberme'] = array('onoff');
-$meta['disableactions'] = array('disableactions',
-                                '_choices' => array('backlink','index','recent','revisions','search','subscription','register','resendpwd','profile','profile_delete','edit','wikicode','check', 'rss'),
-                                '_combine' => array('subscription' => array('subscribe','unsubscribe'), 'wikicode' => array('source','export_raw')));
-$meta['auth_security_timeout'] = array('numeric');
-$meta['securecookie'] = array('onoff');
-$meta['remote']       = array('onoff','_caution' => 'security');
-$meta['remoteuser']   = array('string');
-
-$meta['_anti_spam']  = array('fieldset');
-$meta['usewordblock']= array('onoff');
-$meta['relnofollow'] = array('onoff');
-$meta['indexdelay']  = array('numeric');
-$meta['mailguard']   = array('multichoice','_choices' => array('visible','hex','none'));
-$meta['iexssprotect']= array('onoff','_caution' => 'security');
-
-$meta['_editing']    = array('fieldset');
-$meta['usedraft']    = array('onoff');
-$meta['htmlok']      = array('onoff','_caution' => 'security');
-$meta['phpok']       = array('onoff','_caution' => 'security');
-$meta['locktime']    = array('numeric');
-$meta['cachetime']   = array('numeric');
-
-$meta['_links']    = array('fieldset');
-$meta['target____wiki']      = array('string');
-$meta['target____interwiki'] = array('string');
-$meta['target____extern']    = array('string');
-$meta['target____media']     = array('string');
-$meta['target____windows']   = array('string');
-
-$meta['_media']      = array('fieldset');
-$meta['mediarevisions']  = array('onoff');
-$meta['gdlib']       = array('multichoice','_choices' => array(0,1,2));
-$meta['im_convert']  = array('im_convert');
-$meta['jpg_quality'] = array('numeric','_pattern' => '/^100$|^[1-9]?[0-9]$/');  //(0-100)
-$meta['fetchsize']   = array('numeric');
-$meta['refcheck']    = array('onoff');
-
-$meta['_notifications'] = array('fieldset');
-$meta['subscribers']    = array('onoff');
-$meta['subscribe_time'] = array('numeric');
-$meta['notify']         = array('email', '_multiple' => true);
-$meta['registernotify'] = array('email', '_multiple' => true);
-$meta['mailfrom']       = array('email', '_placeholders' => true);
-$meta['mailreturnpath']       = array('email', '_placeholders' => true);
-$meta['mailprefix']     = array('string');
-$meta['htmlmail']       = array('onoff');
-
-$meta['_syndication'] = array('fieldset');
-$meta['sitemap']     = array('numeric');
-$meta['rss_type']    = array('multichoice','_choices' => array('rss','rss1','rss2','atom','atom1'));
-$meta['rss_linkto']  = array('multichoice','_choices' => array('diff','page','rev','current'));
-$meta['rss_content'] = array('multichoice','_choices' => array('abstract','diff','htmldiff','html'));
-$meta['rss_media']   = array('multichoice','_choices' => array('both','pages','media'));
-$meta['rss_update']  = array('numeric');
-$meta['rss_show_summary'] = array('onoff');
-
-$meta['_advanced']   = array('fieldset');
-$meta['updatecheck'] = array('onoff');
-$meta['userewrite']  = array('multichoice','_choices' => array(0,1,2),'_caution' => 'danger');
-$meta['useslash']    = array('onoff');
-$meta['sepchar']     = array('sepchar','_caution' => 'warning');
-$meta['canonical']   = array('onoff');
-$meta['fnencode']    = array('multichoice','_choices' => array('url','safe','utf-8'),'_caution' => 'warning');
-$meta['autoplural']  = array('onoff');
-$meta['compress']    = array('onoff');
-$meta['cssdatauri']  = array('numeric','_pattern' => '/^\d+$/');
-$meta['gzip_output'] = array('onoff');
-$meta['send404']     = array('onoff');
-$meta['compression'] = array('compression','_caution' => 'warning');
-$meta['broken_iua']  = array('onoff');
-$meta['xsendfile']   = array('multichoice','_choices' => array(0,1,2,3),'_caution' => 'warning');
-$meta['renderer_xhtml'] = array('renderer','_format' => 'xhtml','_choices' => array('xhtml'),'_caution' => 'warning');
-$meta['readdircache'] = array('numeric');
-$meta['search_nslimit'] = array('numeric', '_min' => 0);
-$meta['search_fragment'] = array('multichoice','_choices' => array('exact', 'starts_with', 'ends_with', 'contains'),);
-
-$meta['_network']    = array('fieldset');
-$meta['dnslookups']  = array('onoff');
-$meta['jquerycdn']   = array('multichoice', '_choices' => array(0,'jquery', 'cdnjs'));
-$meta['proxy____host'] = array('string','_pattern' => '#^(|[a-z0-9\-\.+]+)$#i');
-$meta['proxy____port'] = array('numericopt');
-$meta['proxy____user'] = array('string');
-$meta['proxy____pass'] = array('password','_code' => 'base64');
-$meta['proxy____ssl']  = array('onoff');
-$meta['proxy____except'] = array('string');
-$meta['safemodehack'] = array('onoff');
-$meta['ftp____host']  = array('string','_pattern' => '#^(|[a-z0-9\-\.+]+)$#i');
-$meta['ftp____port']  = array('numericopt');
-$meta['ftp____user']  = array('string');
-$meta['ftp____pass']  = array('password','_code' => 'base64');
-$meta['ftp____root']  = array('string');
-
diff --git a/wiki/lib/plugins/config/settings/extra.class.php b/wiki/lib/plugins/config/settings/extra.class.php
deleted file mode 100644
index 41af422..0000000
--- a/wiki/lib/plugins/config/settings/extra.class.php
+++ /dev/null
@@ -1,309 +0,0 @@
-<?php
-/**
- * additional setting classes specific to these settings
- *
- * @author    Chris Smith <chris@jalakai.co.uk>
- */
-
-if (!class_exists('setting_sepchar')) {
-    /**
-     * Class setting_sepchar
-     */
-    class setting_sepchar extends setting_multichoice {
-
-        /**
-         * @param string $key
-         * @param array|null $param array with metadata of setting
-         */
-        function __construct($key,$param=null) {
-            $str = '_-.';
-            for ($i=0;$i<strlen($str);$i++) $this->_choices[] = $str{$i};
-
-            // call foundation class constructor
-            parent::__construct($key,$param);
-        }
-    }
-}
-
-if (!class_exists('setting_savedir')) {
-    /**
-     * Class setting_savedir
-     */
-    class setting_savedir extends setting_string {
-
-        /**
-         * update changed setting with user provided value $input
-         * - if changed value fails error check, save it to $this->_input (to allow echoing later)
-         * - if changed value passes error check, set $this->_local to the new value
-         *
-         * @param  mixed   $input   the new value
-         * @return boolean          true if changed, false otherwise (also on error)
-         */
-        function update($input) {
-            if ($this->is_protected()) return false;
-
-            $value = is_null($this->_local) ? $this->_default : $this->_local;
-            if ($value == $input) return false;
-
-            if (!init_path($input)) {
-                $this->_error = true;
-                $this->_input = $input;
-                return false;
-            }
-
-            $this->_local = $input;
-            return true;
-        }
-    }
-}
-
-if (!class_exists('setting_authtype')) {
-    /**
-     * Class setting_authtype
-     */
-    class setting_authtype extends setting_multichoice {
-
-        /**
-         * Receives current values for the setting $key
-         *
-         * @param mixed $default   default setting value
-         * @param mixed $local     local setting value
-         * @param mixed $protected protected setting value
-         */
-        function initialize($default,$local,$protected) {
-            /** @var $plugin_controller Doku_Plugin_Controller */
-            global $plugin_controller;
-
-            // retrieve auth types provided by plugins
-            foreach ($plugin_controller->getList('auth') as $plugin) {
-                $this->_choices[] = $plugin;
-            }
-
-            parent::initialize($default,$local,$protected);
-        }
-
-        /**
-         * update changed setting with user provided value $input
-         * - if changed value fails error check, save it to $this->_input (to allow echoing later)
-         * - if changed value passes error check, set $this->_local to the new value
-         *
-         * @param  mixed   $input   the new value
-         * @return boolean          true if changed, false otherwise (also on error)
-         */
-        function update($input) {
-            /** @var $plugin_controller Doku_Plugin_Controller */
-            global $plugin_controller;
-
-            // is an update possible/requested?
-            $local = $this->_local;                       // save this, parent::update() may change it
-            if (!parent::update($input)) return false;    // nothing changed or an error caught by parent
-            $this->_local = $local;                       // restore original, more error checking to come
-
-            // attempt to load the plugin
-            $auth_plugin = $plugin_controller->load('auth', $input);
-
-            // @TODO: throw an error in plugin controller instead of returning null
-            if (is_null($auth_plugin)) {
-                $this->_error = true;
-                msg('Cannot load Auth Plugin "' . $input . '"', -1);
-                return false;
-            }
-
-            // verify proper instantiation (is this really a plugin?) @TODO use instanceof? implement interface?
-            if (is_object($auth_plugin) && !method_exists($auth_plugin, 'getPluginName')) {
-                $this->_error = true;
-                msg('Cannot create Auth Plugin "' . $input . '"', -1);
-                return false;
-            }
-
-            // did we change the auth type? logout
-            global $conf;
-            if($conf['authtype'] != $input) {
-                msg('Authentication system changed. Please re-login.');
-                auth_logoff();
-            }
-
-            $this->_local = $input;
-            return true;
-        }
-    }
-}
-
-if (!class_exists('setting_im_convert')) {
-    /**
-     * Class setting_im_convert
-     */
-    class setting_im_convert extends setting_string {
-
-        /**
-         * update changed setting with user provided value $input
-         * - if changed value fails error check, save it to $this->_input (to allow echoing later)
-         * - if changed value passes error check, set $this->_local to the new value
-         *
-         * @param  mixed   $input   the new value
-         * @return boolean          true if changed, false otherwise (also on error)
-         */
-        function update($input) {
-            if ($this->is_protected()) return false;
-
-            $input = trim($input);
-
-            $value = is_null($this->_local) ? $this->_default : $this->_local;
-            if ($value == $input) return false;
-
-            if ($input && !file_exists($input)) {
-                $this->_error = true;
-                $this->_input = $input;
-                return false;
-            }
-
-            $this->_local = $input;
-            return true;
-        }
-    }
-}
-
-if (!class_exists('setting_disableactions')) {
-    /**
-     * Class setting_disableactions
-     */
-    class setting_disableactions extends setting_multicheckbox {
-
-        /**
-         * Build html for label and input of 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 array with content array(string $label_html, string $input_html)
-         */
-        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
-            $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);
-        }
-    }
-}
-
-if (!class_exists('setting_compression')) {
-    /**
-     * Class setting_compression
-     */
-    class setting_compression extends setting_multichoice {
-
-        var $_choices = array('0');      // 0 = no compression, always supported
-
-        /**
-         * Receives current values for the setting $key
-         *
-         * @param mixed $default   default setting value
-         * @param mixed $local     local setting value
-         * @param mixed $protected protected setting value
-         */
-        function initialize($default,$local,$protected) {
-
-            // populate _choices with the compression methods supported by this php installation
-            if (function_exists('gzopen')) $this->_choices[] = 'gz';
-            if (function_exists('bzopen')) $this->_choices[] = 'bz2';
-
-            parent::initialize($default,$local,$protected);
-        }
-    }
-}
-
-if (!class_exists('setting_license')) {
-    /**
-     * Class setting_license
-     */
-    class setting_license extends setting_multichoice {
-
-        var $_choices = array('');      // none choosen
-
-        /**
-         * Receives current values for the setting $key
-         *
-         * @param mixed $default   default setting value
-         * @param mixed $local     local setting value
-         * @param mixed $protected protected setting value
-         */
-        function initialize($default,$local,$protected) {
-            global $license;
-
-            foreach($license as $key => $data){
-                $this->_choices[] = $key;
-                $this->lang[$this->_key.'_o_'.$key] = $data['name']; // stored in setting
-            }
-
-            parent::initialize($default,$local,$protected);
-        }
-    }
-}
-
-
-if (!class_exists('setting_renderer')) {
-    /**
-     * Class setting_renderer
-     */
-    class setting_renderer extends setting_multichoice {
-        var $_prompts = array();
-        var $_format = null;
-
-        /**
-         * Receives current values for the setting $key
-         *
-         * @param mixed $default   default setting value
-         * @param mixed $local     local setting value
-         * @param mixed $protected protected setting value
-         */
-        function initialize($default,$local,$protected) {
-            $format = $this->_format;
-
-            foreach (plugin_list('renderer') as $plugin) {
-                $renderer = plugin_load('renderer',$plugin);
-                if (method_exists($renderer,'canRender') && $renderer->canRender($format)) {
-                    $this->_choices[] = $plugin;
-
-                    $info = $renderer->getInfo();
-                    $this->_prompts[$plugin] = $info['name'];
-                }
-            }
-
-            parent::initialize($default,$local,$protected);
-        }
-
-        /**
-         * Build html for label and input of 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 array with content array(string $label_html, string $input_html)
-         */
-        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
-            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->addLang(
-                            $this->_key . '_o_' . $choice,
-                            sprintf($plugin->getLang('renderer__plugin'), $this->_prompts[$choice])
-                        );
-                    }
-                }
-            }
-            return parent::html($plugin, $echo);
-        }
-    }
-}
diff --git a/wiki/lib/plugins/config/style.css b/wiki/lib/plugins/config/style.css
deleted file mode 100644
index 054021e..0000000
--- a/wiki/lib/plugins/config/style.css
+++ /dev/null
@@ -1,167 +0,0 @@
-/* plugin:configmanager */
-#config__manager div.success,
-#config__manager div.error,
-#config__manager div.info {
-  background-position: 0.5em;
-  padding: 0.5em;
-  text-align: center;
-}
-
-#config__manager fieldset {
-  margin: 1em;
-  width: auto;
-  margin-bottom: 2em;
-  background-color: __background_alt__;
-  color: __text__;
-  padding: 0 1em;
-}
-[dir=rtl] #config__manager fieldset {
-    clear: both;
-}
-#config__manager legend {
-    font-size: 1.25em;
-}
-
-#config__manager form { }
-#config__manager table {
-    margin: 1em 0;
-    width: 100%;
-}
-
-#config__manager fieldset td {
-    text-align: left;
-}
-[dir=rtl] #config__manager fieldset td {
-    text-align: right;
-}
-#config__manager fieldset td.value {
-    /* fixed data column width */
-    width: 31em;
-}
-
-[dir=rtl] #config__manager label {
-    text-align: right;
-}
-[dir=rtl] #config__manager td.value input.checkbox {
-    float: right;
-    padding-left: 0;
-    padding-right: 0.7em;
-}
-[dir=rtl] #config__manager td.value label {
-    float: left;
-}
-
-#config__manager td.label {
-    padding: 0.8em 0 0.6em 1em;
-    vertical-align: top;
-}
-[dir=rtl] #config__manager td.label {
-    padding: 0.8em 1em 0.6em 0;
-}
-
-#config__manager td.label label {
-    clear: left;
-    display: block;
-}
-[dir=rtl] #config__manager td.label label {
-    clear: right;
-}
-#config__manager td.label img {
-    padding: 0 10px;
-    vertical-align: middle;
-    float: right;
-}
-[dir=rtl] #config__manager td.label img {
-    float: left;
-}
-
-#config__manager td.label span.outkey {
-    font-size: 70%;
-    margin-top: -1.7em;
-    margin-left: -1em;
-    display: block;
-    background-color: __background__;
-    color: __text_neu__;
-    float: left;
-    padding: 0 0.1em;
-    position: relative;
-    z-index: 1;
-}
-[dir=rtl] #config__manager td.label span.outkey {
-    float: right;
-    margin-right: 1em;
-}
-
-#config__manager td input.edit {
-    width: 30em;
-}
-#config__manager td .input {
-    width: 30.8em;
-}
-#config__manager td select.edit { }
-#config__manager td textarea.edit {
-    width: 27.5em;
-    height: 4em;
-}
-
-#config__manager td textarea.edit:focus {
-    height: 10em;
-}
-
-#config__manager tr .input,
-#config__manager tr input,
-#config__manager tr textarea,
-#config__manager tr select {
-  background-color: #fff;
-  color: #000;
-}
-
-#config__manager tr.default .input,
-#config__manager tr.default input,
-#config__manager tr.default textarea,
-#config__manager tr.default select,
-#config__manager .selectiondefault {
-  background-color: #ccddff;
-  color: #000;
-}
-
-#config__manager tr.protected .input,
-#config__manager tr.protected input,
-#config__manager tr.protected textarea,
-#config__manager tr.protected select,
-#config__manager tr.protected .selection {
-  background-color: #ffcccc!important;
-  color: #000 !important;
-}
-
-#config__manager td.error  { background-color: red; color: #000; }
-
-#config__manager .selection {
-  width: 14.8em;
-  float: left;
-  margin: 0 0.3em 2px 0;
-}
-[dir=rtl] #config__manager .selection {
-  width: 14.8em;
-  float: right;
-  margin: 0 0 2px 0.3em;
-}
-
-#config__manager .selection label {
-  float: right;
-  width: 14em;
-  font-size: 90%;
-}
-
-
-#config__manager .other {
-  clear: both;
-  padding-top: 0.5em;
-}
-
-#config__manager .other label {
-  padding-left: 2px;
-  font-size: 90%;
-}
-
-/* end plugin:configmanager */
diff --git a/wiki/lib/plugins/extension/action.php b/wiki/lib/plugins/extension/action.php
deleted file mode 100644
index 9e48f13..0000000
--- a/wiki/lib/plugins/extension/action.php
+++ /dev/null
@@ -1,85 +0,0 @@
-<?php
-/** DokuWiki Plugin extension (Action Component)
- *
- * @license GPL 2 http://www.gnu.org/licenses/gpl-2.0.html
- * @author  Andreas Gohr <andi@splitbrain.org>
- */
-
-// must be run within Dokuwiki
-if(!defined('DOKU_INC')) die();
-
-class action_plugin_extension extends DokuWiki_Action_Plugin {
-
-    /**
-     * Registers a callback function for a given event
-     *
-     * @param Doku_Event_Handler $controller DokuWiki's event controller object
-     * @return void
-     */
-    public function register(Doku_Event_Handler $controller) {
-
-        $controller->register_hook('AJAX_CALL_UNKNOWN', 'BEFORE', $this, 'info');
-
-    }
-
-    /**
-     * Create the detail info for a single plugin
-     *
-     * @param Doku_Event $event
-     * @param            $param
-     */
-    public function info(Doku_Event &$event, $param) {
-        global $USERINFO;
-        global $INPUT;
-
-        if($event->data != 'plugin_extension') return;
-        $event->preventDefault();
-        $event->stopPropagation();
-
-        if(empty($_SERVER['REMOTE_USER']) || !auth_isadmin($_SERVER['REMOTE_USER'], $USERINFO['grps'])) {
-            http_status(403);
-            echo 'Forbidden';
-            exit;
-        }
-
-        $ext = $INPUT->str('ext');
-        if(!$ext) {
-            http_status(400);
-            echo 'no extension given';
-            return;
-        }
-
-        /** @var helper_plugin_extension_extension $extension */
-        $extension = plugin_load('helper', 'extension_extension');
-        $extension->setExtension($ext);
-
-        $act = $INPUT->str('act');
-        switch($act) {
-            case 'enable':
-            case 'disable':
-                $json = new JSON();
-                $extension->$act(); //enables/disables
-
-                $reverse = ($act == 'disable') ? 'enable' : 'disable';
-
-                $return = array(
-                    'state'   => $act.'d', // isn't English wonderful? :-)
-                    'reverse' => $reverse,
-                    'label'   => $extension->getLang('btn_'.$reverse)
-                );
-
-                header('Content-Type: application/json');
-                echo $json->encode($return);
-                break;
-
-            case 'info':
-            default:
-                /** @var helper_plugin_extension_list $list */
-                $list = plugin_load('helper', 'extension_list');
-                header('Content-Type: text/html; charset=utf-8');
-                echo $list->make_info($extension);
-        }
-    }
-
-}
-
diff --git a/wiki/lib/plugins/extension/admin.php b/wiki/lib/plugins/extension/admin.php
deleted file mode 100644
index 71257cf..0000000
--- a/wiki/lib/plugins/extension/admin.php
+++ /dev/null
@@ -1,159 +0,0 @@
-<?php
-/**
- * DokuWiki Plugin extension (Admin Component)
- *
- * @license GPL 2 http://www.gnu.org/licenses/gpl-2.0.html
- * @author  Michael Hamann <michael@content-space.de>
- */
-
-// must be run within Dokuwiki
-if(!defined('DOKU_INC')) die();
-
-/**
- * Admin part of the extension manager
- */
-class admin_plugin_extension extends DokuWiki_Admin_Plugin {
-    protected $infoFor = null;
-    /** @var  helper_plugin_extension_gui */
-    protected $gui;
-
-    /**
-     * Constructor
-     *
-     * loads additional helpers
-     */
-    public function __construct() {
-        $this->gui = plugin_load('helper', 'extension_gui');
-    }
-
-    /**
-     * @return int sort number in admin menu
-     */
-    public function getMenuSort() {
-        return 0;
-    }
-
-    /**
-     * @return bool true if only access for superuser, false is for superusers and moderators
-     */
-    public function forAdminOnly() {
-        return true;
-    }
-
-    /**
-     * Execute the requested action(s) and initialize the plugin repository
-     */
-    public function handle() {
-        global $INPUT;
-        // initialize the remote repository
-        /* @var helper_plugin_extension_repository $repository */
-        $repository = $this->loadHelper('extension_repository');
-
-        if(!$repository->hasAccess()) {
-            $url = $this->gui->tabURL('', array('purge' => 1));
-            msg($this->getLang('repo_error').' [<a href="'.$url.'">'.$this->getLang('repo_retry').'</a>]', -1);
-        }
-
-        if(!in_array('ssl', stream_get_transports())) {
-            msg($this->getLang('nossl'), -1);
-        }
-
-        /* @var helper_plugin_extension_extension $extension */
-        $extension = $this->loadHelper('extension_extension');
-
-        try {
-            if($INPUT->post->has('fn') && checkSecurityToken()) {
-                $actions = $INPUT->post->arr('fn');
-                foreach($actions as $action => $extensions) {
-                    foreach($extensions as $extname => $label) {
-                        switch($action) {
-                            case 'install':
-                            case 'reinstall':
-                            case 'update':
-                                $extension->setExtension($extname);
-                                $installed = $extension->installOrUpdate();
-                                foreach($installed as $ext => $info) {
-                                    msg(sprintf($this->getLang('msg_'.$info['type'].'_'.$info['action'].'_success'), $info['base']), 1);
-                                }
-                                break;
-                            case 'uninstall':
-                                $extension->setExtension($extname);
-                                $status = $extension->uninstall();
-                                if($status) {
-                                    msg(sprintf($this->getLang('msg_delete_success'), hsc($extension->getDisplayName())), 1);
-                                } else {
-                                    msg(sprintf($this->getLang('msg_delete_failed'), hsc($extension->getDisplayName())), -1);
-                                }
-                                break;
-                            case 'enable';
-                                $extension->setExtension($extname);
-                                $status = $extension->enable();
-                                if($status !== true) {
-                                    msg($status, -1);
-                                } else {
-                                    msg(sprintf($this->getLang('msg_enabled'), hsc($extension->getDisplayName())), 1);
-                                }
-                                break;
-                            case 'disable';
-                                $extension->setExtension($extname);
-                                $status = $extension->disable();
-                                if($status !== true) {
-                                    msg($status, -1);
-                                } else {
-                                    msg(sprintf($this->getLang('msg_disabled'), hsc($extension->getDisplayName())), 1);
-                                }
-                                break;
-                        }
-                    }
-                }
-                send_redirect($this->gui->tabURL('', array(), '&', true));
-            } elseif($INPUT->post->str('installurl') && checkSecurityToken()) {
-                $installed = $extension->installFromURL($INPUT->post->str('installurl'));
-                foreach($installed as $ext => $info) {
-                    msg(sprintf($this->getLang('msg_'.$info['type'].'_'.$info['action'].'_success'), $info['base']), 1);
-                }
-                send_redirect($this->gui->tabURL('', array(), '&', true));
-            } elseif(isset($_FILES['installfile']) && checkSecurityToken()) {
-                $installed = $extension->installFromUpload('installfile');
-                foreach($installed as $ext => $info) {
-                    msg(sprintf($this->getLang('msg_'.$info['type'].'_'.$info['action'].'_success'), $info['base']), 1);
-                }
-                send_redirect($this->gui->tabURL('', array(), '&', true));
-            }
-
-        } catch(Exception $e) {
-            msg($e->getMessage(), -1);
-            send_redirect($this->gui->tabURL('', array(), '&', true));
-        }
-
-    }
-
-    /**
-     * Render HTML output
-     */
-    public function html() {
-        ptln('<h1>'.$this->getLang('menu').'</h1>');
-        ptln('<div id="extension__manager">');
-
-        $this->gui->tabNavigation();
-
-        switch($this->gui->currentTab()) {
-            case 'search':
-                $this->gui->tabSearch();
-                break;
-            case 'templates':
-                $this->gui->tabTemplates();
-                break;
-            case 'install':
-                $this->gui->tabInstall();
-                break;
-            case 'plugins':
-            default:
-                $this->gui->tabPlugins();
-        }
-
-        ptln('</div>');
-    }
-}
-
-// vim:ts=4:sw=4:et:
\ No newline at end of file
diff --git a/wiki/lib/plugins/extension/admin.svg b/wiki/lib/plugins/extension/admin.svg
deleted file mode 100644
index 6bd7c0d..0000000
--- a/wiki/lib/plugins/extension/admin.svg
+++ /dev/null
@@ -1 +0,0 @@
-<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/wiki/lib/plugins/extension/all.less b/wiki/lib/plugins/extension/all.less
deleted file mode 100644
index 3d9688e..0000000
--- a/wiki/lib/plugins/extension/all.less
+++ /dev/null
@@ -1,37 +0,0 @@
-
-@media only screen and (max-width: 600px) {
-
-#extension__list .legend {
-    > div {
-        padding-left: 0;
-    }
-
-    div.screenshot {
-        margin: 0 .5em .5em 0;
-    }
-
-    h2 {
-        width: auto;
-        float: none;
-    }
-
-    div.linkbar {
-        clear: left;
-    }
-}
-
-[dir=rtl] #extension__list .legend {
-    > div {
-        padding-right: 0;
-    }
-
-    div.screenshot {
-        margin: 0 0 .5em .5em;
-    }
-
-    div.linkbar {
-        clear: right;
-    }
-}
-
-} /* /@media */
diff --git a/wiki/lib/plugins/extension/helper/extension.php b/wiki/lib/plugins/extension/helper/extension.php
deleted file mode 100644
index e77528b..0000000
--- a/wiki/lib/plugins/extension/helper/extension.php
+++ /dev/null
@@ -1,1162 +0,0 @@
-<?php
-/**
- * DokuWiki Plugin extension (Helper Component)
- *
- * @license GPL 2 http://www.gnu.org/licenses/gpl-2.0.html
- * @author  Michael Hamann <michael@content-space.de>
- */
-
-// must be run within Dokuwiki
-if(!defined('DOKU_INC')) die();
-if(!defined('DOKU_TPLLIB')) define('DOKU_TPLLIB', DOKU_INC.'lib/tpl/');
-
-/**
- * Class helper_plugin_extension_extension represents a single extension (plugin or template)
- */
-class helper_plugin_extension_extension extends DokuWiki_Plugin {
-    private $id;
-    private $base;
-    private $is_template = false;
-    private $localInfo;
-    private $remoteInfo;
-    private $managerData;
-    /** @var helper_plugin_extension_repository $repository */
-    private $repository = null;
-
-    /** @var array list of temporary directories */
-    private $temporary = array();
-
-    /**
-     * Destructor
-     *
-     * deletes any dangling temporary directories
-     */
-    public function __destruct() {
-        foreach($this->temporary as $dir){
-            io_rmdir($dir, true);
-        }
-    }
-
-    /**
-     * @return bool false, this component is not a singleton
-     */
-    public function isSingleton() {
-        return false;
-    }
-
-    /**
-     * Set the name of the extension this instance shall represents, triggers loading the local and remote data
-     *
-     * @param string $id  The id of the extension (prefixed with template: for templates)
-     * @return bool If some (local or remote) data was found
-     */
-    public function setExtension($id) {
-        $id = cleanID($id);
-        $this->id   = $id;
-        $this->base = $id;
-
-        if(substr($id, 0 , 9) == 'template:'){
-            $this->base = substr($id, 9);
-            $this->is_template = true;
-        } else {
-            $this->is_template = false;
-        }
-
-        $this->localInfo = array();
-        $this->managerData = array();
-        $this->remoteInfo = array();
-
-        if ($this->isInstalled()) {
-            $this->readLocalData();
-            $this->readManagerData();
-        }
-
-        if ($this->repository == null) {
-            $this->repository = $this->loadHelper('extension_repository');
-        }
-
-        $this->remoteInfo = $this->repository->getData($this->getID());
-
-        return ($this->localInfo || $this->remoteInfo);
-    }
-
-    /**
-     * If the extension is installed locally
-     *
-     * @return bool If the extension is installed locally
-     */
-    public function isInstalled() {
-        return is_dir($this->getInstallDir());
-    }
-
-    /**
-     * If the extension is under git control
-     *
-     * @return bool
-     */
-    public function isGitControlled() {
-        if(!$this->isInstalled()) return false;
-        return is_dir($this->getInstallDir().'/.git');
-    }
-
-    /**
-     * If the extension is bundled
-     *
-     * @return bool If the extension is bundled
-     */
-    public function isBundled() {
-        if (!empty($this->remoteInfo['bundled'])) return $this->remoteInfo['bundled'];
-        return in_array($this->id,
-                        array(
-                            'authad', 'authldap', 'authmysql', 'authpdo', 'authpgsql', 'authplain', 'acl', 'info', 'extension',
-                            'revert', 'popularity', 'config', 'safefnrecode', 'styling', 'testing', 'template:dokuwiki'
-                        )
-        );
-    }
-
-    /**
-     * If the extension is protected against any modification (disable/uninstall)
-     *
-     * @return bool if the extension is protected
-     */
-    public function isProtected() {
-        // never allow deinstalling the current auth plugin:
-        global $conf;
-        if ($this->id == $conf['authtype']) return true;
-
-        /** @var Doku_Plugin_Controller $plugin_controller */
-        global $plugin_controller;
-        $cascade = $plugin_controller->getCascade();
-        return (isset($cascade['protected'][$this->id]) && $cascade['protected'][$this->id]);
-    }
-
-    /**
-     * If the extension is installed in the correct directory
-     *
-     * @return bool If the extension is installed in the correct directory
-     */
-    public function isInWrongFolder() {
-        return $this->base != $this->getBase();
-    }
-
-    /**
-     * If the extension is enabled
-     *
-     * @return bool If the extension is enabled
-     */
-    public function isEnabled() {
-        global $conf;
-        if($this->isTemplate()){
-            return ($conf['template'] == $this->getBase());
-        }
-
-        /* @var Doku_Plugin_Controller $plugin_controller */
-        global $plugin_controller;
-        return !$plugin_controller->isdisabled($this->base);
-    }
-
-    /**
-     * If the extension should be updated, i.e. if an updated version is available
-     *
-     * @return bool If an update is available
-     */
-    public function updateAvailable() {
-        if(!$this->isInstalled()) return false;
-        if($this->isBundled()) return false;
-        $lastupdate = $this->getLastUpdate();
-        if ($lastupdate === false) return false;
-        $installed  = $this->getInstalledVersion();
-        if ($installed === false || $installed === $this->getLang('unknownversion')) return true;
-        return $this->getInstalledVersion() < $this->getLastUpdate();
-    }
-
-    /**
-     * If the extension is a template
-     *
-     * @return bool If this extension is a template
-     */
-    public function isTemplate() {
-        return $this->is_template;
-    }
-
-    /**
-     * Get the ID of the extension
-     *
-     * This is the same as getName() for plugins, for templates it's getName() prefixed with 'template:'
-     *
-     * @return string
-     */
-    public function getID() {
-        return $this->id;
-    }
-
-    /**
-     * Get the name of the installation directory
-     *
-     * @return string The name of the installation directory
-     */
-    public function getInstallName() {
-        return $this->base;
-    }
-
-    // Data from plugin.info.txt/template.info.txt or the repo when not available locally
-    /**
-     * Get the basename of the extension
-     *
-     * @return string The basename
-     */
-    public function getBase() {
-        if (!empty($this->localInfo['base'])) return $this->localInfo['base'];
-        return $this->base;
-    }
-
-    /**
-     * Get the display name of the extension
-     *
-     * @return string The display name
-     */
-    public function getDisplayName() {
-        if (!empty($this->localInfo['name'])) return $this->localInfo['name'];
-        if (!empty($this->remoteInfo['name'])) return $this->remoteInfo['name'];
-        return $this->base;
-    }
-
-    /**
-     * Get the author name of the extension
-     *
-     * @return string|bool The name of the author or false if there is none
-     */
-    public function getAuthor() {
-        if (!empty($this->localInfo['author'])) return $this->localInfo['author'];
-        if (!empty($this->remoteInfo['author'])) return $this->remoteInfo['author'];
-        return false;
-    }
-
-    /**
-     * Get the email of the author of the extension if there is any
-     *
-     * @return string|bool The email address or false if there is none
-     */
-    public function getEmail() {
-        // email is only in the local data
-        if (!empty($this->localInfo['email'])) return $this->localInfo['email'];
-        return false;
-    }
-
-    /**
-     * Get the email id, i.e. the md5sum of the email
-     *
-     * @return string|bool The md5sum of the email if there is any, false otherwise
-     */
-    public function getEmailID() {
-        if (!empty($this->remoteInfo['emailid'])) return $this->remoteInfo['emailid'];
-        if (!empty($this->localInfo['email'])) return md5($this->localInfo['email']);
-        return false;
-    }
-
-    /**
-     * Get the description of the extension
-     *
-     * @return string The description
-     */
-    public function getDescription() {
-        if (!empty($this->localInfo['desc'])) return $this->localInfo['desc'];
-        if (!empty($this->remoteInfo['description'])) return $this->remoteInfo['description'];
-        return '';
-    }
-
-    /**
-     * Get the URL of the extension, usually a page on dokuwiki.org
-     *
-     * @return string The URL
-     */
-    public function getURL() {
-        if (!empty($this->localInfo['url'])) return $this->localInfo['url'];
-        return 'https://www.dokuwiki.org/'.($this->isTemplate() ? 'template' : 'plugin').':'.$this->getBase();
-    }
-
-    /**
-     * Get the installed version of the extension
-     *
-     * @return string|bool The version, usually in the form yyyy-mm-dd if there is any
-     */
-    public function getInstalledVersion() {
-        if (!empty($this->localInfo['date'])) return $this->localInfo['date'];
-        if ($this->isInstalled()) return $this->getLang('unknownversion');
-        return false;
-    }
-
-    /**
-     * Get the install date of the current version
-     *
-     * @return string|bool The date of the last update or false if not available
-     */
-    public function getUpdateDate() {
-        if (!empty($this->managerData['updated'])) return $this->managerData['updated'];
-        return $this->getInstallDate();
-    }
-
-    /**
-     * Get the date of the installation of the plugin
-     *
-     * @return string|bool The date of the installation or false if not available
-     */
-    public function getInstallDate() {
-        if (!empty($this->managerData['installed'])) return $this->managerData['installed'];
-        return false;
-    }
-
-    /**
-     * Get the names of the dependencies of this extension
-     *
-     * @return array The base names of the dependencies
-     */
-    public function getDependencies() {
-        if (!empty($this->remoteInfo['dependencies'])) return $this->remoteInfo['dependencies'];
-        return array();
-    }
-
-    /**
-     * Get the names of the missing dependencies
-     *
-     * @return array The base names of the missing dependencies
-     */
-    public function getMissingDependencies() {
-        /* @var Doku_Plugin_Controller $plugin_controller */
-        global $plugin_controller;
-        $dependencies = $this->getDependencies();
-        $missing_dependencies = array();
-        foreach ($dependencies as $dependency) {
-            if ($plugin_controller->isdisabled($dependency)) {
-                $missing_dependencies[] = $dependency;
-            }
-        }
-        return $missing_dependencies;
-    }
-
-    /**
-     * Get the names of all conflicting extensions
-     *
-     * @return array The names of the conflicting extensions
-     */
-    public function getConflicts() {
-        if (!empty($this->remoteInfo['conflicts'])) return $this->remoteInfo['conflicts'];
-        return array();
-    }
-
-    /**
-     * Get the names of similar extensions
-     *
-     * @return array The names of similar extensions
-     */
-    public function getSimilarExtensions() {
-        if (!empty($this->remoteInfo['similar'])) return $this->remoteInfo['similar'];
-        return array();
-    }
-
-    /**
-     * Get the names of the tags of the extension
-     *
-     * @return array The names of the tags of the extension
-     */
-    public function getTags() {
-        if (!empty($this->remoteInfo['tags'])) return $this->remoteInfo['tags'];
-        return array();
-    }
-
-    /**
-     * Get the popularity information as floating point number [0,1]
-     *
-     * @return float|bool The popularity information or false if it isn't available
-     */
-    public function getPopularity() {
-        if (!empty($this->remoteInfo['popularity'])) return $this->remoteInfo['popularity'];
-        return false;
-    }
-
-
-    /**
-     * Get the text of the security warning if there is any
-     *
-     * @return string|bool The security warning if there is any, false otherwise
-     */
-    public function getSecurityWarning() {
-        if (!empty($this->remoteInfo['securitywarning'])) return $this->remoteInfo['securitywarning'];
-        return false;
-    }
-
-    /**
-     * Get the text of the security issue if there is any
-     *
-     * @return string|bool The security issue if there is any, false otherwise
-     */
-    public function getSecurityIssue() {
-        if (!empty($this->remoteInfo['securityissue'])) return $this->remoteInfo['securityissue'];
-        return false;
-    }
-
-    /**
-     * Get the URL of the screenshot of the extension if there is any
-     *
-     * @return string|bool The screenshot URL if there is any, false otherwise
-     */
-    public function getScreenshotURL() {
-        if (!empty($this->remoteInfo['screenshoturl'])) return $this->remoteInfo['screenshoturl'];
-        return false;
-    }
-
-    /**
-     * Get the URL of the thumbnail of the extension if there is any
-     *
-     * @return string|bool The thumbnail URL if there is any, false otherwise
-     */
-    public function getThumbnailURL() {
-        if (!empty($this->remoteInfo['thumbnailurl'])) return $this->remoteInfo['thumbnailurl'];
-        return false;
-    }
-    /**
-     * Get the last used download URL of the extension if there is any
-     *
-     * @return string|bool The previously used download URL, false if the extension has been installed manually
-     */
-    public function getLastDownloadURL() {
-        if (!empty($this->managerData['downloadurl'])) return $this->managerData['downloadurl'];
-        return false;
-    }
-
-    /**
-     * Get the download URL of the extension if there is any
-     *
-     * @return string|bool The download URL if there is any, false otherwise
-     */
-    public function getDownloadURL() {
-        if (!empty($this->remoteInfo['downloadurl'])) return $this->remoteInfo['downloadurl'];
-        return false;
-    }
-
-    /**
-     * If the download URL has changed since the last download
-     *
-     * @return bool If the download URL has changed
-     */
-    public function hasDownloadURLChanged() {
-        $lasturl = $this->getLastDownloadURL();
-        $currenturl = $this->getDownloadURL();
-        return ($lasturl && $currenturl && $lasturl != $currenturl);
-    }
-
-    /**
-     * Get the bug tracker URL of the extension if there is any
-     *
-     * @return string|bool The bug tracker URL if there is any, false otherwise
-     */
-    public function getBugtrackerURL() {
-        if (!empty($this->remoteInfo['bugtracker'])) return $this->remoteInfo['bugtracker'];
-        return false;
-    }
-
-    /**
-     * Get the URL of the source repository if there is any
-     *
-     * @return string|bool The URL of the source repository if there is any, false otherwise
-     */
-    public function getSourcerepoURL() {
-        if (!empty($this->remoteInfo['sourcerepo'])) return $this->remoteInfo['sourcerepo'];
-        return false;
-    }
-
-    /**
-     * Get the donation URL of the extension if there is any
-     *
-     * @return string|bool The donation URL if there is any, false otherwise
-     */
-    public function getDonationURL() {
-        if (!empty($this->remoteInfo['donationurl'])) return $this->remoteInfo['donationurl'];
-        return false;
-    }
-
-    /**
-     * Get the extension type(s)
-     *
-     * @return array The type(s) as array of strings
-     */
-    public function getTypes() {
-        if (!empty($this->remoteInfo['types'])) return $this->remoteInfo['types'];
-        if ($this->isTemplate()) return array(32 => 'template');
-        return array();
-    }
-
-    /**
-     * Get a list of all DokuWiki versions this extension is compatible with
-     *
-     * @return array The versions in the form yyyy-mm-dd => ('label' => label, 'implicit' => implicit)
-     */
-    public function getCompatibleVersions() {
-        if (!empty($this->remoteInfo['compatible'])) return $this->remoteInfo['compatible'];
-        return array();
-    }
-
-    /**
-     * Get the date of the last available update
-     *
-     * @return string|bool The last available update in the form yyyy-mm-dd if there is any, false otherwise
-     */
-    public function getLastUpdate() {
-        if (!empty($this->remoteInfo['lastupdate'])) return $this->remoteInfo['lastupdate'];
-        return false;
-    }
-
-    /**
-     * Get the base path of the extension
-     *
-     * @return string The base path of the extension
-     */
-    public function getInstallDir() {
-        if ($this->isTemplate()) {
-            return DOKU_TPLLIB.$this->base;
-        } else {
-            return DOKU_PLUGIN.$this->base;
-        }
-    }
-
-    /**
-     * The type of extension installation
-     *
-     * @return string One of "none", "manual", "git" or "automatic"
-     */
-    public function getInstallType() {
-        if (!$this->isInstalled()) return 'none';
-        if (!empty($this->managerData)) return 'automatic';
-        if (is_dir($this->getInstallDir().'/.git')) return 'git';
-        return 'manual';
-    }
-
-    /**
-     * If the extension can probably be installed/updated or uninstalled
-     *
-     * @return bool|string True or error string
-     */
-    public function canModify() {
-        if($this->isInstalled()) {
-            if(!is_writable($this->getInstallDir())) {
-                return 'noperms';
-            }
-        }
-
-        if($this->isTemplate() && !is_writable(DOKU_TPLLIB)) {
-            return 'notplperms';
-
-        } elseif(!is_writable(DOKU_PLUGIN)) {
-            return 'nopluginperms';
-        }
-        return true;
-    }
-
-    /**
-     * Install an extension from a user upload
-     *
-     * @param string $field name of the upload file
-     * @throws Exception when something goes wrong
-     * @return array The list of installed extensions
-     */
-    public function installFromUpload($field){
-        if($_FILES[$field]['error']){
-            throw new Exception($this->getLang('msg_upload_failed').' ('.$_FILES[$field]['error'].')');
-        }
-
-        $tmp = $this->mkTmpDir();
-        if(!$tmp) throw new Exception($this->getLang('error_dircreate'));
-
-        // filename may contain the plugin name for old style plugins...
-        $basename = basename($_FILES[$field]['name']);
-        $basename = preg_replace('/\.(tar\.gz|tar\.bz|tar\.bz2|tar|tgz|tbz|zip)$/', '', $basename);
-        $basename = preg_replace('/[\W]+/', '', $basename);
-
-        if(!move_uploaded_file($_FILES[$field]['tmp_name'], "$tmp/upload.archive")){
-            throw new Exception($this->getLang('msg_upload_failed'));
-        }
-
-        try {
-            $installed = $this->installArchive("$tmp/upload.archive", true, $basename);
-            $this->updateManagerData('', $installed);
-            $this->removeDeletedfiles($installed);
-            // purge cache
-            $this->purgeCache();
-        }catch (Exception $e){
-            throw $e;
-        }
-        return $installed;
-    }
-
-    /**
-     * Install an extension from a remote URL
-     *
-     * @param string $url
-     * @throws Exception when something goes wrong
-     * @return array The list of installed extensions
-     */
-    public function installFromURL($url){
-        try {
-            $path      = $this->download($url);
-            $installed = $this->installArchive($path, true);
-            $this->updateManagerData($url, $installed);
-            $this->removeDeletedfiles($installed);
-
-            // purge cache
-            $this->purgeCache();
-        }catch (Exception $e){
-            throw $e;
-        }
-        return $installed;
-    }
-
-    /**
-     * Install or update the extension
-     *
-     * @throws \Exception when something goes wrong
-     * @return array The list of installed extensions
-     */
-    public function installOrUpdate() {
-        $url       = $this->getDownloadURL();
-        $path      = $this->download($url);
-        $installed = $this->installArchive($path, $this->isInstalled(), $this->getBase());
-        $this->updateManagerData($url, $installed);
-
-        // refresh extension information
-        if (!isset($installed[$this->getID()])) {
-            throw new Exception('Error, the requested extension hasn\'t been installed or updated');
-        }
-        $this->removeDeletedfiles($installed);
-        $this->setExtension($this->getID());
-        $this->purgeCache();
-        return $installed;
-    }
-
-    /**
-     * Uninstall the extension
-     *
-     * @return bool If the plugin was sucessfully uninstalled
-     */
-    public function uninstall() {
-        $this->purgeCache();
-        return io_rmdir($this->getInstallDir(), true);
-    }
-
-    /**
-     * Enable the extension
-     *
-     * @return bool|string True or an error message
-     */
-    public function enable() {
-        if ($this->isTemplate()) return $this->getLang('notimplemented');
-        if (!$this->isInstalled()) return $this->getLang('notinstalled');
-        if ($this->isEnabled()) return $this->getLang('alreadyenabled');
-
-        /* @var Doku_Plugin_Controller $plugin_controller */
-        global $plugin_controller;
-        if ($plugin_controller->enable($this->base)) {
-            $this->purgeCache();
-            return true;
-        } else {
-            return $this->getLang('pluginlistsaveerror');
-        }
-    }
-
-    /**
-     * Disable the extension
-     *
-     * @return bool|string True or an error message
-     */
-    public function disable() {
-        if ($this->isTemplate()) return $this->getLang('notimplemented');
-
-        /* @var Doku_Plugin_Controller $plugin_controller */
-        global $plugin_controller;
-        if (!$this->isInstalled()) return $this->getLang('notinstalled');
-        if (!$this->isEnabled()) return $this->getLang('alreadydisabled');
-        if ($plugin_controller->disable($this->base)) {
-            $this->purgeCache();
-            return true;
-        } else {
-            return $this->getLang('pluginlistsaveerror');
-        }
-    }
-
-    /**
-     * Purge the cache by touching the main configuration file
-     */
-    protected function purgeCache() {
-        global $config_cascade;
-
-        // expire dokuwiki caches
-        // touching local.php expires wiki page, JS and CSS caches
-        @touch(reset($config_cascade['main']['local']));
-    }
-
-    /**
-     * Read local extension data either from info.txt or getInfo()
-     */
-    protected function readLocalData() {
-        if ($this->isTemplate()) {
-            $infopath = $this->getInstallDir().'/template.info.txt';
-        } else {
-            $infopath = $this->getInstallDir().'/plugin.info.txt';
-        }
-
-        if (is_readable($infopath)) {
-            $this->localInfo = confToHash($infopath);
-        } elseif (!$this->isTemplate() && $this->isEnabled()) {
-            global $plugin_types;
-            $path       = $this->getInstallDir().'/';
-            $plugin     = null;
-
-            foreach($plugin_types as $type) {
-                if(file_exists($path.$type.'.php')) {
-                    $plugin = plugin_load($type, $this->base);
-                    if ($plugin) break;
-                }
-
-                if($dh = @opendir($path.$type.'/')) {
-                    while(false !== ($cp = readdir($dh))) {
-                        if($cp == '.' || $cp == '..' || strtolower(substr($cp, -4)) != '.php') continue;
-
-                        $plugin = plugin_load($type, $this->base.'_'.substr($cp, 0, -4));
-                        if ($plugin) break;
-                    }
-                    if ($plugin) break;
-                    closedir($dh);
-                }
-            }
-
-            if ($plugin) {
-                /* @var DokuWiki_Plugin $plugin */
-                $this->localInfo = $plugin->getInfo();
-            }
-        }
-    }
-
-    /**
-     * Save the given URL and current datetime in the manager.dat file of all installed extensions
-     *
-     * @param string $url       Where the extension was downloaded from. (empty for manual installs via upload)
-     * @param array  $installed Optional list of installed plugins
-     */
-    protected function updateManagerData($url = '', $installed = null) {
-        $origID = $this->getID();
-
-        if(is_null($installed)) {
-            $installed = array($origID);
-        }
-
-        foreach($installed as $ext => $info) {
-            if($this->getID() != $ext) $this->setExtension($ext);
-            if($url) {
-                $this->managerData['downloadurl'] = $url;
-            } elseif(isset($this->managerData['downloadurl'])) {
-                unset($this->managerData['downloadurl']);
-            }
-            if(isset($this->managerData['installed'])) {
-                $this->managerData['updated'] = date('r');
-            } else {
-                $this->managerData['installed'] = date('r');
-            }
-            $this->writeManagerData();
-        }
-
-        if($this->getID() != $origID) $this->setExtension($origID);
-    }
-
-    /**
-     * Read the manager.dat file
-     */
-    protected function readManagerData() {
-        $managerpath = $this->getInstallDir().'/manager.dat';
-        if (is_readable($managerpath)) {
-            $file = @file($managerpath);
-            if(!empty($file)) {
-                foreach($file as $line) {
-                    list($key, $value) = explode('=', trim($line, DOKU_LF), 2);
-                    $key = trim($key);
-                    $value = trim($value);
-                    // backwards compatible with old plugin manager
-                    if($key == 'url') $key = 'downloadurl';
-                    $this->managerData[$key] = $value;
-                }
-            }
-        }
-    }
-
-    /**
-     * Write the manager.data file
-     */
-    protected function writeManagerData() {
-        $managerpath = $this->getInstallDir().'/manager.dat';
-        $data = '';
-        foreach ($this->managerData as $k => $v) {
-            $data .= $k.'='.$v.DOKU_LF;
-        }
-        io_saveFile($managerpath, $data);
-    }
-
-    /**
-     * Returns a temporary directory
-     *
-     * The directory is registered for cleanup when the class is destroyed
-     *
-     * @return false|string
-     */
-    protected function mkTmpDir(){
-        $dir = io_mktmpdir();
-        if(!$dir) return false;
-        $this->temporary[] = $dir;
-        return $dir;
-    }
-
-    /**
-     * Download an archive to a protected path
-     *
-     * @param string $url  The url to get the archive from
-     * @throws Exception   when something goes wrong
-     * @return string The path where the archive was saved
-     */
-    public function download($url) {
-        // check the url
-        if(!preg_match('/https?:\/\//i', $url)){
-            throw new Exception($this->getLang('error_badurl'));
-        }
-
-        // try to get the file from the path (used as plugin name fallback)
-        $file = parse_url($url, PHP_URL_PATH);
-        if(is_null($file)){
-            $file = md5($url);
-        }else{
-            $file = utf8_basename($file);
-        }
-
-        // create tmp directory for download
-        if(!($tmp = $this->mkTmpDir())) {
-            throw new Exception($this->getLang('error_dircreate'));
-        }
-
-        // download
-        if(!$file = io_download($url, $tmp.'/', true, $file, 0)) {
-            io_rmdir($tmp, true);
-            throw new Exception(sprintf($this->getLang('error_download'), '<bdi>'.hsc($url).'</bdi>'));
-        }
-
-        return $tmp.'/'.$file;
-    }
-
-    /**
-     * @param string $file      The path to the archive that shall be installed
-     * @param bool   $overwrite If an already installed plugin should be overwritten
-     * @param string $base      The basename of the plugin if it's known
-     * @throws Exception        when something went wrong
-     * @return array            list of installed extensions
-     */
-    public function installArchive($file, $overwrite=false, $base = '') {
-        $installed_extensions = array();
-
-        // create tmp directory for decompression
-        if(!($tmp = $this->mkTmpDir())) {
-            throw new Exception($this->getLang('error_dircreate'));
-        }
-
-        // add default base folder if specified to handle case where zip doesn't contain this
-        if($base && !@mkdir($tmp.'/'.$base)) {
-            throw new Exception($this->getLang('error_dircreate'));
-        }
-
-        // decompress
-        $this->decompress($file, "$tmp/".$base);
-
-        // search $tmp/$base for the folder(s) that has been created
-        // move the folder(s) to lib/..
-        $result = array('old'=>array(), 'new'=>array());
-        $default = ($this->isTemplate() ? 'template' : 'plugin');
-        if(!$this->find_folders($result, $tmp.'/'.$base, $default)) {
-            throw new Exception($this->getLang('error_findfolder'));
-        }
-
-        // choose correct result array
-        if(count($result['new'])) {
-            $install = $result['new'];
-        }else{
-            $install = $result['old'];
-        }
-
-        if(!count($install)){
-            throw new Exception($this->getLang('error_findfolder'));
-        }
-
-        // now install all found items
-        foreach($install as $item) {
-            // where to install?
-            if($item['type'] == 'template') {
-                $target_base_dir = DOKU_TPLLIB;
-            }else{
-                $target_base_dir = DOKU_PLUGIN;
-            }
-
-            if(!empty($item['base'])) {
-                // use base set in info.txt
-            } elseif($base && count($install) == 1) {
-                $item['base'] = $base;
-            } else {
-                // default - use directory as found in zip
-                // plugins from github/master without *.info.txt will install in wrong folder
-                // but using $info->id will make 'code3' fail (which should install in lib/code/..)
-                $item['base'] = basename($item['tmp']);
-            }
-
-            // check to make sure we aren't overwriting anything
-            $target = $target_base_dir.$item['base'];
-            if(!$overwrite && file_exists($target)) {
-                // TODO remember our settings, ask the user to confirm overwrite
-                continue;
-            }
-
-            $action = file_exists($target) ? 'update' : 'install';
-
-            // copy action
-            if($this->dircopy($item['tmp'], $target)) {
-                // return info
-                $id = $item['base'];
-                if($item['type'] == 'template') {
-                    $id = 'template:'.$id;
-                }
-                $installed_extensions[$id] = array(
-                    'base' => $item['base'],
-                    'type' => $item['type'],
-                    'action' => $action
-                );
-            } else {
-                throw new Exception(sprintf($this->getLang('error_copy').DOKU_LF, '<bdi>'.$item['base'].'</bdi>'));
-            }
-        }
-
-        // cleanup
-        if($tmp) io_rmdir($tmp, true);
-
-        return $installed_extensions;
-    }
-
-    /**
-     * Find out what was in the extracted directory
-     *
-     * Correct folders are searched recursively using the "*.info.txt" configs
-     * as indicator for a root folder. When such a file is found, it's base
-     * setting is used (when set). All folders found by this method are stored
-     * in the 'new' key of the $result array.
-     *
-     * For backwards compatibility all found top level folders are stored as
-     * in the 'old' key of the $result array.
-     *
-     * When no items are found in 'new' the copy mechanism should fall back
-     * the 'old' list.
-     *
-     * @author Andreas Gohr <andi@splitbrain.org>
-     * @param array $result - results are stored here
-     * @param string $directory - the temp directory where the package was unpacked to
-     * @param string $default_type - type used if no info.txt available
-     * @param string $subdir - a subdirectory. do not set. used by recursion
-     * @return bool - false on error
-     */
-    protected function find_folders(&$result, $directory, $default_type='plugin', $subdir='') {
-        $this_dir = "$directory$subdir";
-        $dh       = @opendir($this_dir);
-        if(!$dh) return false;
-
-        $found_dirs           = array();
-        $found_files          = 0;
-        $found_template_parts = 0;
-        while (false !== ($f = readdir($dh))) {
-            if($f == '.' || $f == '..') continue;
-
-            if(is_dir("$this_dir/$f")) {
-                $found_dirs[] = "$subdir/$f";
-
-            } else {
-                // it's a file -> check for config
-                $found_files++;
-                switch ($f) {
-                    case 'plugin.info.txt':
-                    case 'template.info.txt':
-                        // we have  found a clear marker, save and return
-                        $info = array();
-                        $type = explode('.', $f, 2);
-                        $info['type'] = $type[0];
-                        $info['tmp']  = $this_dir;
-                        $conf = confToHash("$this_dir/$f");
-                        $info['base'] = basename($conf['base']);
-                        $result['new'][] = $info;
-                        return true;
-
-                    case 'main.php':
-                    case 'details.php':
-                    case 'mediamanager.php':
-                    case 'style.ini':
-                        $found_template_parts++;
-                        break;
-                }
-            }
-        }
-        closedir($dh);
-
-        // files where found but no info.txt - use old method
-        if($found_files){
-            $info            = array();
-            $info['tmp']     = $this_dir;
-            // does this look like a template or should we use the default type?
-            if($found_template_parts >= 2) {
-                $info['type']    = 'template';
-            } else {
-                $info['type']    = $default_type;
-            }
-
-            $result['old'][] = $info;
-            return true;
-        }
-
-        // we have no files yet -> recurse
-        foreach ($found_dirs as $found_dir) {
-            $this->find_folders($result, $directory, $default_type, "$found_dir");
-        }
-        return true;
-    }
-
-    /**
-     * Decompress a given file to the given target directory
-     *
-     * Determines the compression type from the file extension
-     *
-     * @param string $file   archive to extract
-     * @param string $target directory to extract to
-     * @throws Exception
-     * @return bool
-     */
-    private function decompress($file, $target) {
-        // decompression library doesn't like target folders ending in "/"
-        if(substr($target, -1) == "/") $target = substr($target, 0, -1);
-
-        $ext = $this->guess_archive($file);
-        if(in_array($ext, array('tar', 'bz', 'gz'))) {
-
-            try {
-                $tar = new \splitbrain\PHPArchive\Tar();
-                $tar->open($file);
-                $tar->extract($target);
-            } catch (\splitbrain\PHPArchive\ArchiveIOException $e) {
-                throw new Exception($this->getLang('error_decompress').' '.$e->getMessage());
-            }
-
-            return true;
-        } elseif($ext == 'zip') {
-
-            try {
-                $zip = new \splitbrain\PHPArchive\Zip();
-                $zip->open($file);
-                $zip->extract($target);
-            } catch (\splitbrain\PHPArchive\ArchiveIOException $e) {
-                throw new Exception($this->getLang('error_decompress').' '.$e->getMessage());
-            }
-
-            return true;
-        }
-
-        // the only case when we don't get one of the recognized archive types is when the archive file can't be read
-        throw new Exception($this->getLang('error_decompress').' Couldn\'t read archive file');
-    }
-
-    /**
-     * Determine the archive type of the given file
-     *
-     * Reads the first magic bytes of the given file for content type guessing,
-     * if neither bz, gz or zip are recognized, tar is assumed.
-     *
-     * @author Andreas Gohr <andi@splitbrain.org>
-     * @param string $file The file to analyze
-     * @return string|false false if the file can't be read, otherwise an "extension"
-     */
-    private function guess_archive($file) {
-        $fh = fopen($file, 'rb');
-        if(!$fh) return false;
-        $magic = fread($fh, 5);
-        fclose($fh);
-
-        if(strpos($magic, "\x42\x5a") === 0) return 'bz';
-        if(strpos($magic, "\x1f\x8b") === 0) return 'gz';
-        if(strpos($magic, "\x50\x4b\x03\x04") === 0) return 'zip';
-        return 'tar';
-    }
-
-    /**
-     * Copy with recursive sub-directory support
-     *
-     * @param string $src filename path to file
-     * @param string $dst filename path to file
-     * @return bool|int|string
-     */
-    private function dircopy($src, $dst) {
-        global $conf;
-
-        if(is_dir($src)) {
-            if(!$dh = @opendir($src)) return false;
-
-            if($ok = io_mkdir_p($dst)) {
-                while ($ok && (false !== ($f = readdir($dh)))) {
-                    if($f == '..' || $f == '.') continue;
-                    $ok = $this->dircopy("$src/$f", "$dst/$f");
-                }
-            }
-
-            closedir($dh);
-            return $ok;
-
-        } else {
-            $exists = file_exists($dst);
-
-            if(!@copy($src, $dst)) return false;
-            if(!$exists && !empty($conf['fperm'])) chmod($dst, $conf['fperm']);
-            @touch($dst, filemtime($src));
-        }
-
-        return true;
-    }
-
-    /**
-     * Delete outdated files from updated plugins
-     *
-     * @param array $installed
-     */
-    private function removeDeletedfiles($installed) {
-        foreach($installed as $id => $extension) {
-            // only on update
-            if($extension['action'] == 'install') continue;
-
-            // get definition file
-            if($extension['type'] == 'template') {
-                $extensiondir = DOKU_TPLLIB;
-            }else{
-                $extensiondir = DOKU_PLUGIN;
-            }
-            $extensiondir = $extensiondir . $extension['base'] .'/';
-            $definitionfile = $extensiondir . 'deleted.files';
-            if(!file_exists($definitionfile)) continue;
-
-            // delete the old files
-            $list = file($definitionfile);
-
-            foreach($list as $line) {
-                $line = trim(preg_replace('/#.*$/', '', $line));
-                if(!$line) continue;
-                $file = $extensiondir . $line;
-                if(!file_exists($file)) continue;
-
-                io_rmdir($file, true);
-            }
-        }
-    }
-}
-
-// vim:ts=4:sw=4:et:
diff --git a/wiki/lib/plugins/extension/helper/gui.php b/wiki/lib/plugins/extension/helper/gui.php
deleted file mode 100644
index 4ec6fec..0000000
--- a/wiki/lib/plugins/extension/helper/gui.php
+++ /dev/null
@@ -1,193 +0,0 @@
-<?php
-/**
- * DokuWiki Plugin extension (Helper Component)
- *
- * @license GPL 2 http://www.gnu.org/licenses/gpl-2.0.html
- * @author  Andreas Gohr <andi@splitbrain.org>
- */
-
-// must be run within Dokuwiki
-if(!defined('DOKU_INC')) die();
-
-/**
- * Class helper_plugin_extension_list takes care of the overall GUI
- */
-class helper_plugin_extension_gui extends DokuWiki_Plugin {
-
-    protected $tabs = array('plugins', 'templates', 'search', 'install');
-
-    /** @var string the extension that should have an open info window FIXME currently broken */
-    protected $infoFor = '';
-
-    /**
-     * Constructor
-     *
-     * initializes requested info window
-     */
-    public function __construct() {
-        global $INPUT;
-        $this->infoFor = $INPUT->str('info');
-    }
-
-    /**
-     * display the plugin tab
-     */
-    public function tabPlugins() {
-        /* @var Doku_Plugin_Controller $plugin_controller */
-        global $plugin_controller;
-
-        echo '<div class="panelHeader">';
-        echo $this->locale_xhtml('intro_plugins');
-        echo '</div>';
-
-        $pluginlist = $plugin_controller->getList('', true);
-        sort($pluginlist);
-        /* @var helper_plugin_extension_extension $extension */
-        $extension = $this->loadHelper('extension_extension');
-        /* @var helper_plugin_extension_list $list */
-        $list = $this->loadHelper('extension_list');
-        $list->start_form();
-        foreach($pluginlist as $name) {
-            $extension->setExtension($name);
-            $list->add_row($extension, $extension->getID() == $this->infoFor);
-        }
-        $list->end_form();
-        $list->render();
-    }
-
-    /**
-     * Display the template tab
-     */
-    public function tabTemplates() {
-        echo '<div class="panelHeader">';
-        echo $this->locale_xhtml('intro_templates');
-        echo '</div>';
-
-        // FIXME do we have a real way?
-        $tpllist = glob(DOKU_INC.'lib/tpl/*', GLOB_ONLYDIR);
-        $tpllist = array_map('basename', $tpllist);
-        sort($tpllist);
-
-        /* @var helper_plugin_extension_extension $extension */
-        $extension = $this->loadHelper('extension_extension');
-        /* @var helper_plugin_extension_list $list */
-        $list = $this->loadHelper('extension_list');
-        $list->start_form();
-        foreach($tpllist as $name) {
-            $extension->setExtension("template:$name");
-            $list->add_row($extension, $extension->getID() == $this->infoFor);
-        }
-        $list->end_form();
-        $list->render();
-    }
-
-    /**
-     * Display the search tab
-     */
-    public function tabSearch() {
-        global $INPUT;
-        echo '<div class="panelHeader">';
-        echo $this->locale_xhtml('intro_search');
-        echo '</div>';
-
-        $form = new Doku_Form(array('action' => $this->tabURL('', array(), '&'), 'class' => 'search'));
-        $form->addElement(form_makeTextField('q', $INPUT->str('q'), $this->getLang('search_for')));
-        $form->addElement(form_makeButton('submit', '', $this->getLang('search')));
-        $form->printForm();
-
-        if(!$INPUT->bool('q')) return;
-
-        /* @var helper_plugin_extension_repository $repository FIXME should we use some gloabl instance? */
-        $repository = $this->loadHelper('extension_repository');
-        $result     = $repository->search($INPUT->str('q'));
-
-        /* @var helper_plugin_extension_extension $extension */
-        $extension = $this->loadHelper('extension_extension');
-        /* @var helper_plugin_extension_list $list */
-        $list = $this->loadHelper('extension_list');
-        $list->start_form();
-        if($result){
-            foreach($result as $name) {
-                $extension->setExtension($name);
-                $list->add_row($extension, $extension->getID() == $this->infoFor);
-            }
-        } else {
-            $list->nothing_found();
-        }
-        $list->end_form();
-        $list->render();
-
-    }
-
-    /**
-     * Display the template tab
-     */
-    public function tabInstall() {
-        echo '<div class="panelHeader">';
-        echo $this->locale_xhtml('intro_install');
-        echo '</div>';
-
-        $form = new Doku_Form(array('action' => $this->tabURL('', array(), '&'), 'enctype' => 'multipart/form-data', 'class' => 'install'));
-        $form->addElement(form_makeTextField('installurl', '', $this->getLang('install_url'), '', 'block'));
-        $form->addElement(form_makeFileField('installfile', $this->getLang('install_upload'), '', 'block'));
-        $form->addElement(form_makeButton('submit', '', $this->getLang('btn_install')));
-        $form->printForm();
-    }
-
-    /**
-     * Print the tab navigation
-     *
-     * @fixme style active one
-     */
-    public function tabNavigation() {
-        echo '<ul class="tabs">';
-        foreach($this->tabs as $tab) {
-            $url = $this->tabURL($tab);
-            if($this->currentTab() == $tab) {
-                $class = ' active';
-            } else {
-                $class = '';
-            }
-            echo '<li class="'.$tab.$class.'"><a href="'.$url.'">'.$this->getLang('tab_'.$tab).'</a></li>';
-        }
-        echo '</ul>';
-    }
-
-    /**
-     * Return the currently selected tab
-     *
-     * @return string
-     */
-    public function currentTab() {
-        global $INPUT;
-
-        $tab = $INPUT->str('tab', 'plugins', true);
-        if(!in_array($tab, $this->tabs)) $tab = 'plugins';
-        return $tab;
-    }
-
-    /**
-     * Create an URL inside the extension manager
-     *
-     * @param string $tab      tab to load, empty for current tab
-     * @param array  $params   associative array of parameter to set
-     * @param string $sep      seperator to build the URL
-     * @param bool   $absolute create absolute URLs?
-     * @return string
-     */
-    public function tabURL($tab = '', $params = array(), $sep = '&amp;', $absolute = false) {
-        global $ID;
-        global $INPUT;
-
-        if(!$tab) $tab = $this->currentTab();
-        $defaults = array(
-            'do'   => 'admin',
-            'page' => 'extension',
-            'tab'  => $tab,
-        );
-        if($tab == 'search') $defaults['q'] = $INPUT->str('q');
-
-        return wl($ID, array_merge($defaults, $params), $absolute, $sep);
-    }
-
-}
diff --git a/wiki/lib/plugins/extension/helper/list.php b/wiki/lib/plugins/extension/helper/list.php
deleted file mode 100644
index 656b4ea..0000000
--- a/wiki/lib/plugins/extension/helper/list.php
+++ /dev/null
@@ -1,567 +0,0 @@
-<?php
-/**
- * DokuWiki Plugin extension (Helper Component)
- *
- * @license GPL 2 http://www.gnu.org/licenses/gpl-2.0.html
- * @author  Michael Hamann <michael@content-space.de>
- */
-
-// must be run within Dokuwiki
-if(!defined('DOKU_INC')) die();
-
-/**
- * Class helper_plugin_extension_list takes care of creating a HTML list of extensions
- */
-class helper_plugin_extension_list extends DokuWiki_Plugin {
-    protected $form = '';
-    /** @var  helper_plugin_extension_gui */
-    protected $gui;
-
-    /**
-     * Constructor
-     *
-     * loads additional helpers
-     */
-    public function __construct(){
-        $this->gui = plugin_load('helper', 'extension_gui');
-    }
-
-    function start_form() {
-        $this->form .= '<form id="extension__list" accept-charset="utf-8" method="post" action="">';
-        $hidden = array(
-            'do'=>'admin',
-            'page'=>'extension',
-            'sectok'=>getSecurityToken()
-        );
-        $this->add_hidden($hidden);
-        $this->form .= '<ul class="extensionList">';
-    }
-    /**
-     * Build single row of extension table
-     * @param helper_plugin_extension_extension  $extension The extension that shall be added
-     * @param bool                               $showinfo  Show the info area
-     */
-    function add_row(helper_plugin_extension_extension $extension, $showinfo = false) {
-        $this->start_row($extension);
-        $this->populate_column('legend', $this->make_legend($extension, $showinfo));
-        $this->populate_column('actions', $this->make_actions($extension));
-        $this->end_row();
-    }
-
-    /**
-     * Adds a header to the form
-     *
-     * @param string $id     The id of the header
-     * @param string $header The content of the header
-     * @param int    $level  The level of the header
-     */
-    function add_header($id, $header, $level = 2) {
-        $this->form .='<h'.$level.' id="'.$id.'">'.hsc($header).'</h'.$level.'>'.DOKU_LF;
-    }
-
-    /**
-     * Adds a paragraph to the form
-     *
-     * @param string $data The content
-     */
-    function add_p($data) {
-        $this->form .= '<p>'.hsc($data).'</p>'.DOKU_LF;
-    }
-
-    /**
-     * Add hidden fields to the form with the given data
-     * @param array $array
-     */
-    function add_hidden(array $array) {
-        $this->form .= '<div class="no">';
-        foreach ($array as $key => $value) {
-            $this->form .= '<input type="hidden" name="'.hsc($key).'" value="'.hsc($value).'" />';
-        }
-        $this->form .= '</div>'.DOKU_LF;
-    }
-
-    /**
-     * Add closing tags
-     */
-    function end_form() {
-        $this->form .= '</ul>';
-        $this->form .= '</form>'.DOKU_LF;
-    }
-
-    /**
-     * Show message when no results are found
-     */
-    function nothing_found() {
-        global $lang;
-        $this->form .= '<li class="notfound">'.$lang['nothingfound'].'</li>';
-    }
-
-    /**
-     * Print the form
-     */
-    function render() {
-        echo $this->form;
-    }
-
-    /**
-     * Start the HTML for the row for the extension
-     *
-     * @param helper_plugin_extension_extension $extension The extension
-     */
-    private function start_row(helper_plugin_extension_extension $extension) {
-        $this->form .= '<li id="extensionplugin__'.hsc($extension->getID()).'" class="'.$this->make_class($extension).'">';
-    }
-
-    /**
-     * Add a column with the given class and content
-     * @param string $class The class name
-     * @param string $html  The content
-     */
-    private function populate_column($class, $html) {
-        $this->form .= '<div class="'.$class.' col">'.$html.'</div>'.DOKU_LF;
-    }
-
-    /**
-     * End the row
-     */
-    private function end_row() {
-        $this->form .= '</li>'.DOKU_LF;
-    }
-
-    /**
-     * Generate the link to the plugin homepage
-     *
-     * @param helper_plugin_extension_extension $extension The extension
-     * @return string The HTML code
-     */
-    function make_homepagelink(helper_plugin_extension_extension $extension) {
-        $text = $this->getLang('homepage_link');
-        $url = hsc($extension->getURL());
-        return '<a href="'.$url.'" title="'.$url.'" class ="urlextern">'.$text.'</a> ';
-    }
-
-    /**
-     * Generate the class name for the row of the extensio
-     *
-     * @param helper_plugin_extension_extension $extension The extension object
-     * @return string The class name
-     */
-    function make_class(helper_plugin_extension_extension $extension) {
-        $class = ($extension->isTemplate()) ? 'template' : 'plugin';
-        if($extension->isInstalled()) {
-            $class.=' installed';
-            $class.= ($extension->isEnabled()) ? ' enabled':' disabled';
-            if($extension->updateAvailable()) $class .= ' updatable';
-        }
-        if(!$extension->canModify()) $class.= ' notselect';
-        if($extension->isProtected()) $class.=  ' protected';
-        //if($this->showinfo) $class.= ' showinfo';
-        return $class;
-    }
-
-    /**
-     * Generate a link to the author of the extension
-     *
-     * @param helper_plugin_extension_extension $extension The extension object
-     * @return string The HTML code of the link
-     */
-    function make_author(helper_plugin_extension_extension $extension) {
-        global $ID;
-
-        if($extension->getAuthor()) {
-
-            $mailid = $extension->getEmailID();
-            if($mailid){
-                $url = $this->gui->tabURL('search', array('q' => 'authorid:'.$mailid));
-                return '<bdi><a href="'.$url.'" class="author" title="'.$this->getLang('author_hint').'" ><img src="//www.gravatar.com/avatar/'.$mailid.'?s=20&amp;d=mm" width="20" height="20" alt="" /> '.hsc($extension->getAuthor()).'</a></bdi>';
-
-            }else{
-                return '<bdi><span class="author">'.hsc($extension->getAuthor()).'</span></bdi>';
-            }
-        }
-        return "<em class=\"author\">".$this->getLang('unknown_author')."</em>".DOKU_LF;
-    }
-
-    /**
-     * Get the link and image tag for the screenshot/thumbnail
-     *
-     * @param helper_plugin_extension_extension $extension The extension object
-     * @return string The HTML code
-     */
-    function make_screenshot(helper_plugin_extension_extension $extension) {
-        $screen = $extension->getScreenshotURL();
-        $thumb = $extension->getThumbnailURL();
-
-        if($screen) {
-            // use protocol independent URLs for images coming from us #595
-            $screen = str_replace('http://www.dokuwiki.org', '//www.dokuwiki.org', $screen);
-            $thumb = str_replace('http://www.dokuwiki.org', '//www.dokuwiki.org', $thumb);
-
-            $title = sprintf($this->getLang('screenshot'), hsc($extension->getDisplayName()));
-            $img = '<a href="'.hsc($screen).'" target="_blank" class="extension_screenshot">'.
-                '<img alt="'.$title.'" width="120" height="70" src="'.hsc($thumb).'" />'.
-                '</a>';
-        } elseif($extension->isTemplate()) {
-            $img = '<img alt="" width="120" height="70" src="'.DOKU_BASE.'lib/plugins/extension/images/template.png" />';
-
-        } else {
-            $img = '<img alt="" width="120" height="70" src="'.DOKU_BASE.'lib/plugins/extension/images/plugin.png" />';
-        }
-        return '<div class="screenshot" >'.$img.'<span></span></div>'.DOKU_LF;
-    }
-
-    /**
-     * Extension main description
-     *
-     * @param helper_plugin_extension_extension $extension The extension object
-     * @param bool                              $showinfo  Show the info section
-     * @return string The HTML code
-     */
-    function make_legend(helper_plugin_extension_extension $extension, $showinfo = false) {
-        $return  = '<div>';
-        $return .= '<h2>';
-        $return .= sprintf($this->getLang('extensionby'), '<bdi>'.hsc($extension->getDisplayName()).'</bdi>', $this->make_author($extension));
-        $return .= '</h2>'.DOKU_LF;
-
-        $return .= $this->make_screenshot($extension);
-
-        $popularity = $extension->getPopularity();
-        if ($popularity !== false && !$extension->isBundled()) {
-            $popularityText = sprintf($this->getLang('popularity'), round($popularity*100, 2));
-            $return .= '<div class="popularity" title="'.$popularityText.'"><div style="width: '.($popularity * 100).'%;"><span class="a11y">'.$popularityText.'</span></div></div>'.DOKU_LF;
-        }
-
-        if($extension->getDescription()) {
-            $return .= '<p><bdi>';
-            $return .=  hsc($extension->getDescription()).' ';
-            $return .= '</bdi></p>'.DOKU_LF;
-        }
-
-        $return .= $this->make_linkbar($extension);
-
-        if($showinfo){
-            $url = $this->gui->tabURL('');
-            $class = 'close';
-        }else{
-            $url = $this->gui->tabURL('', array('info' => $extension->getID()));
-            $class = '';
-        }
-        $return .= ' <a href="'.$url.'#extensionplugin__'.$extension->getID().'" class="info '.$class.'" title="'.$this->getLang('btn_info').'" data-extid="'.$extension->getID().'">'.$this->getLang('btn_info').'</a>';
-
-        if ($showinfo) {
-            $return .= $this->make_info($extension);
-        }
-        $return .= $this->make_noticearea($extension);
-        $return .= '</div>'.DOKU_LF;
-        return $return;
-    }
-
-    /**
-     * Generate the link bar HTML code
-     *
-     * @param helper_plugin_extension_extension $extension The extension instance
-     * @return string The HTML code
-     */
-    function make_linkbar(helper_plugin_extension_extension $extension) {
-        $return  = '<div class="linkbar">';
-        $return .= $this->make_homepagelink($extension);
-        if ($extension->getBugtrackerURL()) {
-            $return .= ' <a href="'.hsc($extension->getBugtrackerURL()).'" title="'.hsc($extension->getBugtrackerURL()).'" class ="bugs">'.$this->getLang('bugs_features').'</a> ';
-        }
-        if ($extension->getTags()){
-            $first = true;
-            $return .= '<span class="tags">'.$this->getLang('tags').' ';
-            foreach ($extension->getTags() as $tag) {
-                if (!$first){
-                    $return .= ', ';
-                } else {
-                    $first = false;
-                }
-                $url = $this->gui->tabURL('search', array('q' => 'tag:'.$tag));
-                $return .= '<bdi><a href="'.$url.'">'.hsc($tag).'</a></bdi>';
-            }
-            $return .= '</span>';
-        }
-        $return .= '</div>'.DOKU_LF;
-        return $return;
-    }
-
-    /**
-     * Notice area
-     *
-     * @param helper_plugin_extension_extension $extension The extension
-     * @return string The HTML code
-     */
-    function make_noticearea(helper_plugin_extension_extension $extension) {
-        $return = '';
-        $missing_dependencies = $extension->getMissingDependencies();
-        if(!empty($missing_dependencies)) {
-            $return .= '<div class="msg error">'.
-                sprintf($this->getLang('missing_dependency'), '<bdi>'.implode(', ', /*array_map(array($this->helper, 'make_extensionsearchlink'),*/ $missing_dependencies).'</bdi>').
-                '</div>';
-        }
-        if($extension->isInWrongFolder()) {
-            $return .= '<div class="msg error">'.
-                sprintf($this->getLang('wrong_folder'), '<bdi>'.hsc($extension->getInstallName()).'</bdi>', '<bdi>'.hsc($extension->getBase()).'</bdi>').
-                '</div>';
-        }
-        if(($securityissue = $extension->getSecurityIssue()) !== false) {
-            $return .= '<div class="msg error">'.
-                sprintf($this->getLang('security_issue'), '<bdi>'.hsc($securityissue).'</bdi>').
-                '</div>';
-        }
-        if(($securitywarning = $extension->getSecurityWarning()) !== false) {
-            $return .= '<div class="msg notify">'.
-                sprintf($this->getLang('security_warning'), '<bdi>'.hsc($securitywarning).'</bdi>').
-                '</div>';
-        }
-        if($extension->updateAvailable()) {
-            $return .=  '<div class="msg notify">'.
-                sprintf($this->getLang('update_available'), hsc($extension->getLastUpdate())).
-                '</div>';
-        }
-        if($extension->hasDownloadURLChanged()) {
-            $return .=  '<div class="msg notify">'.
-                sprintf($this->getLang('url_change'), '<bdi>'.hsc($extension->getDownloadURL()).'</bdi>', '<bdi>'.hsc($extension->getLastDownloadURL()).'</bdi>').
-                '</div>';
-        }
-        return $return.DOKU_LF;
-    }
-
-    /**
-     * Create a link from the given URL
-     *
-     * Shortens the URL for display
-     *
-     * @param string $url
-     * @return string  HTML link
-     */
-    function shortlink($url){
-        $link = parse_url($url);
-
-        $base = $link['host'];
-        if(!empty($link['port'])) $base .= $base.':'.$link['port'];
-        $long = $link['path'];
-        if(!empty($link['query'])) $long .= $link['query'];
-
-        $name = shorten($base, $long, 55);
-
-        return '<a href="'.hsc($url).'" class="urlextern">'.hsc($name).'</a>';
-    }
-
-    /**
-     * Plugin/template details
-     *
-     * @param helper_plugin_extension_extension $extension The extension
-     * @return string The HTML code
-     */
-    function make_info(helper_plugin_extension_extension $extension) {
-        $default = $this->getLang('unknown');
-        $return = '<dl class="details">';
-
-        $return .= '<dt>'.$this->getLang('status').'</dt>';
-        $return .= '<dd>'.$this->make_status($extension).'</dd>';
-
-        if ($extension->getDonationURL()) {
-            $return .= '<dt>'.$this->getLang('donate').'</dt>';
-            $return .= '<dd>';
-            $return .= '<a href="'.$extension->getDonationURL().'" class="donate">'.$this->getLang('donate_action').'</a>';
-            $return .= '</dd>';
-        }
-
-        if (!$extension->isBundled()) {
-            $return .= '<dt>'.$this->getLang('downloadurl').'</dt>';
-            $return .= '<dd><bdi>';
-            $return .= ($extension->getDownloadURL() ? $this->shortlink($extension->getDownloadURL()) : $default);
-            $return .= '</bdi></dd>';
-
-            $return .= '<dt>'.$this->getLang('repository').'</dt>';
-            $return .= '<dd><bdi>';
-            $return .= ($extension->getSourcerepoURL() ? $this->shortlink($extension->getSourcerepoURL()) : $default);
-            $return .= '</bdi></dd>';
-        }
-
-        if ($extension->isInstalled()) {
-            if ($extension->getInstalledVersion()) {
-                $return .= '<dt>'.$this->getLang('installed_version').'</dt>';
-                $return .= '<dd>';
-                $return .= hsc($extension->getInstalledVersion());
-                $return .= '</dd>';
-            }
-            if (!$extension->isBundled()) {
-                $return .= '<dt>'.$this->getLang('install_date').'</dt>';
-                $return .= '<dd>';
-                $return .= ($extension->getUpdateDate() ? hsc($extension->getUpdateDate()) : $this->getLang('unknown'));
-                $return .= '</dd>';
-            }
-        }
-        if (!$extension->isInstalled() || $extension->updateAvailable()) {
-            $return .= '<dt>'.$this->getLang('available_version').'</dt>';
-            $return .= '<dd>';
-            $return .= ($extension->getLastUpdate() ? hsc($extension->getLastUpdate()) : $this->getLang('unknown'));
-            $return .= '</dd>';
-        }
-
-        $return .= '<dt>'.$this->getLang('provides').'</dt>';
-        $return .= '<dd><bdi>';
-        $return .= ($extension->getTypes() ? hsc(implode(', ', $extension->getTypes())) : $default);
-        $return .= '</bdi></dd>';
-
-        if(!$extension->isBundled() && $extension->getCompatibleVersions()) {
-            $return .= '<dt>'.$this->getLang('compatible').'</dt>';
-            $return .= '<dd>';
-            foreach ($extension->getCompatibleVersions() as $date => $version) {
-                $return .= '<bdi>'.$version['label'].' ('.$date.')</bdi>, ';
-            }
-            $return = rtrim($return, ', ');
-            $return .= '</dd>';
-        }
-        if($extension->getDependencies()) {
-            $return .= '<dt>'.$this->getLang('depends').'</dt>';
-            $return .= '<dd>';
-            $return .= $this->make_linklist($extension->getDependencies());
-            $return .= '</dd>';
-        }
-
-        if($extension->getSimilarExtensions()) {
-            $return .= '<dt>'.$this->getLang('similar').'</dt>';
-            $return .= '<dd>';
-            $return .= $this->make_linklist($extension->getSimilarExtensions());
-            $return .= '</dd>';
-        }
-
-        if($extension->getConflicts()) {
-            $return .= '<dt>'.$this->getLang('conflicts').'</dt>';
-            $return .= '<dd>';
-            $return .= $this->make_linklist($extension->getConflicts());
-            $return .= '</dd>';
-        }
-        $return .= '</dl>'.DOKU_LF;
-        return $return;
-    }
-
-    /**
-     * Generate a list of links for extensions
-     *
-     * @param array $ext The extensions
-     * @return string The HTML code
-     */
-    function make_linklist($ext) {
-        $return = '';
-        foreach ($ext as $link) {
-            $return .= '<bdi><a href="'.$this->gui->tabURL('search', array('q'=>'ext:'.$link)).'">'.hsc($link).'</a></bdi>, ';
-        }
-        return rtrim($return, ', ');
-    }
-
-    /**
-     * Display the action buttons if they are possible
-     *
-     * @param helper_plugin_extension_extension $extension The extension
-     * @return string The HTML code
-     */
-    function make_actions(helper_plugin_extension_extension $extension) {
-        global $conf;
-        $return = '';
-        $errors = '';
-
-        if ($extension->isInstalled()) {
-            if (($canmod = $extension->canModify()) === true) {
-                if (!$extension->isProtected()) {
-                    $return .= $this->make_action('uninstall', $extension);
-                }
-                if ($extension->getDownloadURL()) {
-                    if ($extension->updateAvailable()) {
-                        $return .= $this->make_action('update', $extension);
-                    } else {
-                        $return .= $this->make_action('reinstall', $extension);
-                    }
-                }
-            }else{
-                $errors .= '<p class="permerror">'.$this->getLang($canmod).'</p>';
-            }
-
-            if (!$extension->isProtected() && !$extension->isTemplate()) { // no enable/disable for templates
-                if ($extension->isEnabled()) {
-                    $return .= $this->make_action('disable', $extension);
-                } else {
-                    $return .= $this->make_action('enable', $extension);
-                }
-            }
-
-            if ($extension->isGitControlled()){
-                $errors .= '<p class="permerror">'.$this->getLang('git').'</p>';
-            }
-
-            if ($extension->isEnabled() && in_array('Auth', $extension->getTypes()) && $conf['authtype'] != $extension->getID()) {
-                $errors .= '<p class="permerror">'.$this->getLang('auth').'</p>';
-            }
-
-        }else{
-            if (($canmod = $extension->canModify()) === true) {
-                if ($extension->getDownloadURL()) {
-                    $return .= $this->make_action('install', $extension);
-                }
-            }else{
-                $errors .= '<div class="permerror">'.$this->getLang($canmod).'</div>';
-            }
-        }
-
-        if (!$extension->isInstalled() && $extension->getDownloadURL()) {
-            $return .= ' <span class="version">'.$this->getLang('available_version').' ';
-            $return .= ($extension->getLastUpdate() ? hsc($extension->getLastUpdate()) : $this->getLang('unknown')).'</span>';
-        }
-
-        return $return.' '.$errors.DOKU_LF;
-    }
-
-    /**
-     * Display an action button for an extension
-     *
-     * @param string                            $action    The action
-     * @param helper_plugin_extension_extension $extension The extension
-     * @return string The HTML code
-     */
-    function make_action($action, $extension) {
-        $title = '';
-
-        switch ($action) {
-            case 'install':
-            case 'reinstall':
-                $title = 'title="'.hsc($extension->getDownloadURL()).'"';
-                break;
-        }
-
-        $classes = 'button '.$action;
-        $name    = 'fn['.$action.']['.hsc($extension->getID()).']';
-
-        return '<button class="'.$classes.'" name="'.$name.'" type="submit" '.$title.'>'.$this->getLang('btn_'.$action).'</button> ';
-    }
-
-    /**
-     * Plugin/template status
-     *
-     * @param helper_plugin_extension_extension $extension The extension
-     * @return string The description of all relevant statusses
-     */
-    function make_status(helper_plugin_extension_extension $extension) {
-        $status = array();
-
-
-        if ($extension->isInstalled()) {
-            $status[] = $this->getLang('status_installed');
-            if ($extension->isProtected()) {
-                $status[] = $this->getLang('status_protected');
-            } else {
-                $status[] = $extension->isEnabled() ? $this->getLang('status_enabled') : $this->getLang('status_disabled');
-            }
-        } else {
-            $status[] = $this->getLang('status_not_installed');
-        }
-        if(!$extension->canModify()) $status[] = $this->getLang('status_unmodifiable');
-        if($extension->isBundled()) $status[] = $this->getLang('status_bundled');
-        $status[] = $extension->isTemplate() ? $this->getLang('status_template') : $this->getLang('status_plugin');
-        return join(', ', $status);
-    }
-
-}
diff --git a/wiki/lib/plugins/extension/helper/repository.php b/wiki/lib/plugins/extension/helper/repository.php
deleted file mode 100644
index 5dc2707..0000000
--- a/wiki/lib/plugins/extension/helper/repository.php
+++ /dev/null
@@ -1,191 +0,0 @@
-<?php
-/**
- * DokuWiki Plugin extension (Helper Component)
- *
- * @license GPL 2 http://www.gnu.org/licenses/gpl-2.0.html
- * @author  Michael Hamann <michael@content-space.de>
- */
-
-#define('EXTENSION_REPOSITORY_API', 'http://localhost/dokuwiki/lib/plugins/pluginrepo/api.php');
-
-if (!defined('EXTENSION_REPOSITORY_API_ENDPOINT'))
-    define('EXTENSION_REPOSITORY_API', 'http://www.dokuwiki.org/lib/plugins/pluginrepo/api.php');
-
-// must be run within Dokuwiki
-if(!defined('DOKU_INC')) die();
-
-/**
- * Class helper_plugin_extension_repository provides access to the extension repository on dokuwiki.org
- */
-class helper_plugin_extension_repository extends DokuWiki_Plugin {
-    private $loaded_extensions = array();
-    private $has_access = null;
-    /**
-     * Initialize the repository (cache), fetches data for all installed plugins
-     */
-    public function init() {
-        /* @var Doku_Plugin_Controller $plugin_controller */
-        global $plugin_controller;
-        if ($this->hasAccess()) {
-            $list = $plugin_controller->getList('', true);
-            $request_data = array('fmt' => 'php');
-            $request_needed = false;
-            foreach ($list as $name) {
-                $cache = new cache('##extension_manager##'.$name, '.repo');
-
-                if (!isset($this->loaded_extensions[$name]) && $this->hasAccess() && !$cache->useCache(array('age' => 3600 * 24))) {
-                    $this->loaded_extensions[$name] = true;
-                    $request_data['ext'][] = $name;
-                    $request_needed = true;
-                }
-            }
-
-            if ($request_needed) {
-                $httpclient = new DokuHTTPClient();
-                $data = $httpclient->post(EXTENSION_REPOSITORY_API, $request_data);
-                if ($data !== false) {
-                    $extensions = unserialize($data);
-                    foreach ($extensions as $extension) {
-                        $cache = new cache('##extension_manager##'.$extension['plugin'], '.repo');
-                        $cache->storeCache(serialize($extension));
-                    }
-                } else {
-                    $this->has_access = false;
-                }
-            }
-        }
-    }
-
-    /**
-     * If repository access is available
-     *
-     * @return bool If repository access is available
-     */
-    public function hasAccess() {
-        if ($this->has_access === null) {
-            $cache = new cache('##extension_manager###hasAccess', '.repo');
-
-            if (!$cache->useCache(array('age' => 3600 * 24, 'purge'=>1))) {
-                $httpclient = new DokuHTTPClient();
-                $httpclient->timeout = 5;
-                $data = $httpclient->get(EXTENSION_REPOSITORY_API.'?cmd=ping');
-                if ($data !== false) {
-                    $this->has_access = true;
-                    $cache->storeCache(1);
-                } else {
-                    $this->has_access = false;
-                    $cache->storeCache(0);
-                }
-            } else {
-                $this->has_access = ($cache->retrieveCache(false) == 1);
-            }
-        }
-        return $this->has_access;
-    }
-
-    /**
-     * Get the remote data of an individual plugin or template
-     *
-     * @param string $name  The plugin name to get the data for, template names need to be prefix by 'template:'
-     * @return array The data or null if nothing was found (possibly no repository access)
-     */
-    public function getData($name) {
-        $cache = new cache('##extension_manager##'.$name, '.repo');
-
-        if (!isset($this->loaded_extensions[$name]) && $this->hasAccess() && !$cache->useCache(array('age' => 3600 * 24))) {
-            $this->loaded_extensions[$name] = true;
-            $httpclient = new DokuHTTPClient();
-            $data = $httpclient->get(EXTENSION_REPOSITORY_API.'?fmt=php&ext[]='.urlencode($name));
-            if ($data !== false) {
-                $result = unserialize($data);
-                $cache->storeCache(serialize($result[0]));
-                return $result[0];
-            } else {
-                $this->has_access = false;
-            }
-        }
-        if (file_exists($cache->cache)) {
-            return unserialize($cache->retrieveCache(false));
-        }
-        return array();
-    }
-
-    /**
-     * Search for plugins or templates using the given query string
-     *
-     * @param string $q the query string
-     * @return array a list of matching extensions
-     */
-    public function search($q){
-        $query = $this->parse_query($q);
-        $query['fmt'] = 'php';
-
-        $httpclient = new DokuHTTPClient();
-        $data = $httpclient->post(EXTENSION_REPOSITORY_API, $query);
-        if ($data === false) return array();
-        $result = unserialize($data);
-
-        $ids = array();
-
-        // store cache info for each extension
-        foreach($result as $ext){
-            $name = $ext['plugin'];
-            $cache = new cache('##extension_manager##'.$name, '.repo');
-            $cache->storeCache(serialize($ext));
-            $ids[] = $name;
-        }
-
-        return $ids;
-    }
-
-    /**
-     * Parses special queries from the query string
-     *
-     * @param string $q
-     * @return array
-     */
-    protected function parse_query($q){
-        $parameters = array(
-            'tag'  => array(),
-            'mail' => array(),
-            'type' => array(),
-            'ext'  => array()
-        );
-
-        // extract tags
-        if(preg_match_all('/(^|\s)(tag:([\S]+))/', $q, $matches, PREG_SET_ORDER)){
-            foreach($matches as $m){
-                $q = str_replace($m[2], '', $q);
-                $parameters['tag'][] = $m[3];
-            }
-        }
-        // extract author ids
-        if(preg_match_all('/(^|\s)(authorid:([\S]+))/', $q, $matches, PREG_SET_ORDER)){
-            foreach($matches as $m){
-                $q = str_replace($m[2], '', $q);
-                $parameters['mail'][] = $m[3];
-            }
-        }
-        // extract extensions
-        if(preg_match_all('/(^|\s)(ext:([\S]+))/', $q, $matches, PREG_SET_ORDER)){
-            foreach($matches as $m){
-                $q = str_replace($m[2], '', $q);
-                $parameters['ext'][] = $m[3];
-            }
-        }
-        // extract types
-        if(preg_match_all('/(^|\s)(type:([\S]+))/', $q, $matches, PREG_SET_ORDER)){
-            foreach($matches as $m){
-                $q = str_replace($m[2], '', $q);
-                $parameters['type'][] = $m[3];
-            }
-        }
-
-        // FIXME make integer from type value
-
-        $parameters['q'] = trim($q);
-        return $parameters;
-    }
-}
-
-// vim:ts=4:sw=4:et:
diff --git a/wiki/lib/plugins/extension/images/bug.gif b/wiki/lib/plugins/extension/images/bug.gif
deleted file mode 100644
index 08c1ca1..0000000
--- a/wiki/lib/plugins/extension/images/bug.gif
+++ /dev/null
Binary files differdiff --git a/wiki/lib/plugins/extension/images/disabled.png b/wiki/lib/plugins/extension/images/disabled.png
deleted file mode 100644
index 9c18b04..0000000
--- a/wiki/lib/plugins/extension/images/disabled.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/plugins/extension/images/donate.png b/wiki/lib/plugins/extension/images/donate.png
deleted file mode 100644
index a76dfaa..0000000
--- a/wiki/lib/plugins/extension/images/donate.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/plugins/extension/images/down.png b/wiki/lib/plugins/extension/images/down.png
deleted file mode 100644
index 8e399a9..0000000
--- a/wiki/lib/plugins/extension/images/down.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/plugins/extension/images/enabled.png b/wiki/lib/plugins/extension/images/enabled.png
deleted file mode 100644
index edbbb5b..0000000
--- a/wiki/lib/plugins/extension/images/enabled.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/plugins/extension/images/icons.xcf b/wiki/lib/plugins/extension/images/icons.xcf
deleted file mode 100644
index ab69b30..0000000
--- a/wiki/lib/plugins/extension/images/icons.xcf
+++ /dev/null
Binary files differdiff --git a/wiki/lib/plugins/extension/images/license.txt b/wiki/lib/plugins/extension/images/license.txt
deleted file mode 100644
index 44e176a..0000000
--- a/wiki/lib/plugins/extension/images/license.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-enabled.png - CC0, (c) Tanguy Ortolo
-disabled.png - public domain, (c) Tango Desktop Project http://commons.wikimedia.org/wiki/File:Dialog-information.svg
-plugin.png - public domain, (c) nicubunu, http://openclipart.org/detail/15093/blue-jigsaw-piece-07-by-nicubunu
-template.png - public domain, (c) mathec, http://openclipart.org/detail/166596/palette-by-mathec
diff --git a/wiki/lib/plugins/extension/images/overlay.png b/wiki/lib/plugins/extension/images/overlay.png
deleted file mode 100644
index 5414206..0000000
--- a/wiki/lib/plugins/extension/images/overlay.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/plugins/extension/images/plugin.png b/wiki/lib/plugins/extension/images/plugin.png
deleted file mode 100644
index 62424b2..0000000
--- a/wiki/lib/plugins/extension/images/plugin.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/plugins/extension/images/tag.png b/wiki/lib/plugins/extension/images/tag.png
deleted file mode 100644
index 1b1dd75..0000000
--- a/wiki/lib/plugins/extension/images/tag.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/plugins/extension/images/template.png b/wiki/lib/plugins/extension/images/template.png
deleted file mode 100644
index 67240d1..0000000
--- a/wiki/lib/plugins/extension/images/template.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/plugins/extension/images/up.png b/wiki/lib/plugins/extension/images/up.png
deleted file mode 100644
index 531b2dd..0000000
--- a/wiki/lib/plugins/extension/images/up.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/plugins/extension/images/warning.png b/wiki/lib/plugins/extension/images/warning.png
deleted file mode 100644
index c1af79f..0000000
--- a/wiki/lib/plugins/extension/images/warning.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/plugins/extension/lang/bg/intro_install.txt b/wiki/lib/plugins/extension/lang/bg/intro_install.txt
deleted file mode 100644
index 34b9248..0000000
--- a/wiki/lib/plugins/extension/lang/bg/intro_install.txt
+++ /dev/null
@@ -1 +0,0 @@
-От тук можете да инÑталирате ръчно приÑтавки и шаблони като качите архив или поÑочите URL за ÑвалÑне на архива.
\ No newline at end of file
diff --git a/wiki/lib/plugins/extension/lang/bg/intro_plugins.txt b/wiki/lib/plugins/extension/lang/bg/intro_plugins.txt
deleted file mode 100644
index 927f617..0000000
--- a/wiki/lib/plugins/extension/lang/bg/intro_plugins.txt
+++ /dev/null
@@ -1 +0,0 @@
-Това Ñа инÑталираните приÑтавки. От тук можете да ги включвате и изключвате както и да ги деинÑталирате. Тук ще виждате и наличните актуализации, като преди вÑÑка такава прочетете документациÑта на Ñъответната приÑтавка.
\ No newline at end of file
diff --git a/wiki/lib/plugins/extension/lang/bg/intro_search.txt b/wiki/lib/plugins/extension/lang/bg/intro_search.txt
deleted file mode 100644
index cec4cd2..0000000
--- a/wiki/lib/plugins/extension/lang/bg/intro_search.txt
+++ /dev/null
@@ -1 +0,0 @@
-От тук имате доÑтъп до вÑички налични приÑтавки и шаблони за DokuWiki, които Ñа дело на трети лица. Имайте предвид, че кодът им е потенциален **риÑк за ÑигурноÑтта на Ñървъра**! Повече по  темата можете да прочетете в [[doku>security#plugin_security|plugin security]] first.
\ No newline at end of file
diff --git a/wiki/lib/plugins/extension/lang/bg/intro_templates.txt b/wiki/lib/plugins/extension/lang/bg/intro_templates.txt
deleted file mode 100644
index 8824b4d..0000000
--- a/wiki/lib/plugins/extension/lang/bg/intro_templates.txt
+++ /dev/null
@@ -1 +0,0 @@
-Това Ñа инÑталираните шаблони. Можете да определите кой шаблон да Ñе ползва от [[?do=admin&page=config|ÐаÑтройки]].
\ No newline at end of file
diff --git a/wiki/lib/plugins/extension/lang/bg/lang.php b/wiki/lib/plugins/extension/lang/bg/lang.php
deleted file mode 100644
index dda69a4..0000000
--- a/wiki/lib/plugins/extension/lang/bg/lang.php
+++ /dev/null
@@ -1,84 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author Kiril <neohidra@gmail.com>
- */
-$lang['menu']                  = 'ДиÑпечер на приÑтавки';
-$lang['tab_plugins']           = 'ИнÑталирани приÑтавки';
-$lang['tab_templates']         = 'ИнÑталирани шаблони';
-$lang['tab_search']            = 'ТърÑене и инÑталиране';
-$lang['tab_install']           = 'Ръчно инÑталиране';
-$lang['notimplemented']        = 'ФункционалноÑтта вÑе още не реализирана';
-$lang['notinstalled']          = 'ПриÑтавката не е инÑталирана';
-$lang['alreadyenabled']        = 'ПриÑтавката е включена';
-$lang['alreadydisabled']       = 'ПриÑтавката е изключена';
-$lang['pluginlistsaveerror']   = 'Възникна грешка при запиÑването на ÑпиÑъка Ñ Ð¿Ñ€Ð¸Ñтавки';
-$lang['unknownauthor']         = 'ÐеизвеÑтен автор';
-$lang['unknownversion']        = 'ÐеизвеÑтна верÑиÑ';
-$lang['btn_info']              = 'Повече информациÑ';
-$lang['btn_update']            = 'Ðктуализиране';
-$lang['btn_uninstall']         = 'ДеинÑталиране';
-$lang['btn_enable']            = 'Включване';
-$lang['btn_disable']           = 'Изключване';
-$lang['btn_install']           = 'ИнÑталиране';
-$lang['btn_reinstall']         = 'ПреинÑталиране';
-$lang['js']['reallydel']       = 'ÐаиÑтина ли желаете приÑтавката да бъде деинÑталирана?';
-$lang['js']['display_viewoptions'] = 'Филтриране:';
-$lang['js']['display_enabled'] = 'включени';
-$lang['js']['display_disabled'] = 'изключени';
-$lang['js']['display_updatable'] = 'Ñ Ð½Ð°Ð»Ð¸Ñ‡Ð½Ð¸ актуализации';
-$lang['search_for']            = 'ТърÑене за приÑтавки:';
-$lang['search']                = 'ТърÑене';
-$lang['extensionby']           = '<strong>%s</strong> от %s';
-$lang['popularity']            = 'ПопулÑрноÑÑ‚: %s%%';
-$lang['homepage_link']         = 'Документи';
-$lang['tags']                  = 'Етикети:';
-$lang['author_hint']           = 'ТърÑене за други приÑтавки от този автор';
-$lang['installed']             = 'ИнÑталирано:';
-$lang['downloadurl']           = 'СвалÑне от URL:';
-$lang['repository']            = 'Хранилище:';
-$lang['unknown']               = '<em>неизвеÑтно</em>';
-$lang['installed_version']     = 'ИнÑталирана верÑиÑ:';
-$lang['install_date']          = 'ПоÑл. актуализиране:';
-$lang['available_version']     = 'Ðалична верÑиÑ:';
-$lang['compatible']            = 'СъвмеÑтимоÑÑ‚ Ñ:';
-$lang['depends']               = 'ИзиÑква:';
-$lang['similar']               = 'ÐаподобÑва:';
-$lang['conflicts']             = 'Ð’ кофликт Ñ:';
-$lang['donate']                = 'ХареÑва ли ви?';
-$lang['donate_action']         = 'Купете на автора кафе!';
-$lang['repo_retry']            = 'Повторен опит';
-$lang['provides']              = 'ОÑигурÑва:';
-$lang['status']                = 'СъÑтоÑние:';
-$lang['status_installed']      = 'инÑталирана';
-$lang['status_not_installed']  = 'неинÑталирана';
-$lang['status_protected']      = 'защитена';
-$lang['status_enabled']        = 'включена';
-$lang['status_disabled']       = 'изключена';
-$lang['status_plugin']         = 'приÑтавка';
-$lang['status_template']       = 'шаблон';
-$lang['msg_enabled']           = 'ПриÑтавката "%s" е включена';
-$lang['msg_disabled']          = 'ПриÑтавката "%s" е изключена';
-$lang['msg_delete_success']    = 'ПриÑтавката "%s" е деинÑталирана';
-$lang['msg_delete_failed']     = 'ДеинÑталирането на приÑтавката "%s" Ñе провали ';
-$lang['msg_template_install_success'] = 'Шаблонът "%s" е инÑталиран уÑпешно';
-$lang['msg_template_update_success'] = 'Шаблонът "%s" е актуализиран уÑпешно';
-$lang['msg_plugin_install_success'] = 'ПриÑтавката "%s" е инÑталирана уÑпешно';
-$lang['msg_plugin_update_success'] = 'ПриÑтавката "%s" е актуализирана уÑпешно';
-$lang['msg_upload_failed']     = 'Качването на файлът Ñе провали';
-$lang['missing_dependency']    = '<strong>ИзиÑкван компонент липÑва или е изключен:</strong> %s';
-$lang['security_issue']        = '<strong>Проблем ÑÑŠÑ ÑигурноÑтта:</strong> %s';
-$lang['security_warning']      = '<strong>Предупреждние за ÑигурноÑтта:</strong> %s';
-$lang['update_available']      = '<strong>ÐктуализациÑ:</strong> Ðалична е нова верÑÐ¸Ñ - %s';
-$lang['wrong_folder']          = '<strong>Ðекоректно инÑталирана приÑтавка:</strong> Преименувайте директориÑта "%s" на "%s".';
-$lang['error_badurl']          = 'URL адреÑите трÑбва да започват Ñ http или https';
-$lang['error_dircreate']       = 'Създаването на временна поапка за получаване на файла не е възможно';
-$lang['error_download']        = 'ÐевъзможноÑÑ‚ за ÑвалÑне на файл: %s';
-$lang['noperms']               = 'Ð”Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð½Ð° разширението не е доÑтъпна за пиÑане';
-$lang['notplperms']            = 'Ð”Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð½Ð° шаблона не е доÑтъпна за пиÑане';
-$lang['nopluginperms']         = 'Ð”Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð½Ð° приÑтавката не е доÑтъпна за пиÑане';
-$lang['install_url']           = 'ИнÑталиране от URL:';
-$lang['install_upload']        = 'Качване:';
-$lang['repo_error']            = 'ÐÑма връзка Ñ Ñ…Ñ€Ð°Ð½Ð¸Ð»Ð¸Ñ‰ÐµÑ‚Ð¾ на добавката. Проверете възможна ли е комуникациÑта www.dokuwiki.org и прокÑи наÑтройките.';
diff --git a/wiki/lib/plugins/extension/lang/cs/intro_install.txt b/wiki/lib/plugins/extension/lang/cs/intro_install.txt
deleted file mode 100644
index b274959..0000000
--- a/wiki/lib/plugins/extension/lang/cs/intro_install.txt
+++ /dev/null
@@ -1 +0,0 @@
-Zde můžete ruÄnÄ› instalovat zásuvné moduly a Å¡ablony vzhledu, buÄ nahráním, nebo zadáním přímé URL pro stažení.
\ No newline at end of file
diff --git a/wiki/lib/plugins/extension/lang/cs/intro_plugins.txt b/wiki/lib/plugins/extension/lang/cs/intro_plugins.txt
deleted file mode 100644
index a6f6274..0000000
--- a/wiki/lib/plugins/extension/lang/cs/intro_plugins.txt
+++ /dev/null
@@ -1 +0,0 @@
-Toto je seznam momentálnÄ› nainstalovaných zásuvných modulů vaší DokuWiki. V tomto seznamu je lze zapínat, vypínat nebo kompletnÄ› odinstalovat. Jsou zde také vidÄ›t dostupné aktualizace pro moduly, ale pÅ™ed jejich případným aktualizováním si vždy pÅ™eÄtÄ›te jejich dokumentaci.
\ No newline at end of file
diff --git a/wiki/lib/plugins/extension/lang/cs/intro_search.txt b/wiki/lib/plugins/extension/lang/cs/intro_search.txt
deleted file mode 100644
index 4258ac4..0000000
--- a/wiki/lib/plugins/extension/lang/cs/intro_search.txt
+++ /dev/null
@@ -1 +0,0 @@
-Tato záložka poskytuje náhled na vÅ¡echny dostupné moduly a Å¡ablony tÅ™etích stran pro DokuWiki. Jejich instalací se múžete vystavit **bezpeÄnostním rizikům** o kterých se můžete více doÄíst v oddíle [[doku>security#plugin_security|plugin security]].
\ No newline at end of file
diff --git a/wiki/lib/plugins/extension/lang/cs/intro_templates.txt b/wiki/lib/plugins/extension/lang/cs/intro_templates.txt
deleted file mode 100644
index 45abe95..0000000
--- a/wiki/lib/plugins/extension/lang/cs/intro_templates.txt
+++ /dev/null
@@ -1 +0,0 @@
-Toto jsou šablony, které jsou momentálně nainstalovány v této DokuWiki. Aktuálně používanu šablonu lze vybrat ve [[?do=admin&page=config|Správci rozšíření]].
\ No newline at end of file
diff --git a/wiki/lib/plugins/extension/lang/cs/lang.php b/wiki/lib/plugins/extension/lang/cs/lang.php
deleted file mode 100644
index 4438376..0000000
--- a/wiki/lib/plugins/extension/lang/cs/lang.php
+++ /dev/null
@@ -1,98 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @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áva rozšíření';
-$lang['tab_plugins']           = 'Instalované moduly';
-$lang['tab_templates']         = 'Instalované šablony';
-$lang['tab_search']            = 'Vyhledej a instaluj';
-$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';
-$lang['alreadydisabled']       = 'Toto rozšíření je již vypnuto';
-$lang['pluginlistsaveerror']   = 'Došlo k chybě při ukládání seznamu zásuvných modulů';
-$lang['unknownauthor']         = 'Neznámý autor';
-$lang['unknownversion']        = 'Neznámá verze';
-$lang['btn_info']              = 'Zobrazit více informací';
-$lang['btn_update']            = 'Aktualizovat';
-$lang['btn_uninstall']         = 'Odinstalovat';
-$lang['btn_enable']            = 'Povolit';
-$lang['btn_disable']           = 'Zakázat';
-$lang['btn_install']           = 'Instalovat';
-$lang['btn_reinstall']         = 'Přeinstalovat';
-$lang['js']['reallydel']       = 'Opravdu odinstalovat toto rozšíření?';
-$lang['js']['display_viewoptions'] = 'Zobrazit možnosti:';
-$lang['js']['display_enabled'] = 'povolit';
-$lang['js']['display_disabled'] = 'zakázat';
-$lang['js']['display_updatable'] = 'aktualizovatelné';
-$lang['search_for']            = 'Hledat rozšíření:';
-$lang['search']                = 'Hledat';
-$lang['extensionby']           = '<strong>%s</strong> od %s';
-$lang['screenshot']            = 'Screenshot %s';
-$lang['popularity']            = 'Popularita: %s%%';
-$lang['homepage_link']         = 'Dokumenty';
-$lang['bugs_features']         = 'Chyby';
-$lang['tags']                  = 'Štítky:';
-$lang['author_hint']           = 'Vyhledat rozšíření podle tohoto autora';
-$lang['installed']             = 'Nainstalováno:';
-$lang['downloadurl']           = 'URL stahování:';
-$lang['repository']            = 'Repozitář:';
-$lang['unknown']               = '<em>neznámý</em>';
-$lang['installed_version']     = 'Nainstalovaná verze:';
-$lang['install_date']          = 'Poslední aktualizace';
-$lang['available_version']     = 'Dostupná verze:';
-$lang['compatible']            = 'Kompatibilní s:';
-$lang['depends']               = 'Závisí na:';
-$lang['similar']               = 'Podobný jako:';
-$lang['conflicts']             = 'Koliduje s:';
-$lang['donate']                = 'Líbí se ti to?';
-$lang['donate_action']         = 'Kup autorovi kávu!';
-$lang['repo_retry']            = 'Opakovat';
-$lang['provides']              = 'Poskytuje:';
-$lang['status']                = 'Stav:';
-$lang['status_installed']      = 'instalovaný';
-$lang['status_not_installed']  = 'nenainstalovaný';
-$lang['status_protected']      = 'chráněný';
-$lang['status_enabled']        = 'povolený';
-$lang['status_disabled']       = 'zakázaný';
-$lang['status_unmodifiable']   = 'neměnný';
-$lang['status_plugin']         = 'zásuvný modul';
-$lang['status_template']       = 'šablona';
-$lang['status_bundled']        = 'svázaný';
-$lang['msg_enabled']           = 'Zásuvný modul %s povolen';
-$lang['msg_disabled']          = 'Zásuvný modul %s zakázán';
-$lang['msg_delete_success']    = 'Rozšíření %s odinstalováno';
-$lang['msg_delete_failed']     = 'Odinstalování rozšíření %s selhalo';
-$lang['msg_template_install_success'] = 'Šablona %s úspěšně nainstalována';
-$lang['msg_template_update_success'] = 'Šablona %s úspěšně aktualizována';
-$lang['msg_plugin_install_success'] = 'Zásuvný modul %s úspěšně nainstalován.';
-$lang['msg_plugin_update_success'] = 'Zásuvný modul %s úspěšně aktualizován.';
-$lang['msg_upload_failed']     = 'Nahrávání souboru selhalo';
-$lang['missing_dependency']    = '<strong>Chybějící nebo zakázaná závislost:</strong> %s';
-$lang['security_issue']        = '<strong>BezpeÄnostní problém:</strong> %s';
-$lang['security_warning']      = '<strong>BezpeÄnostní varování:</strong> %s';
-$lang['update_available']      = '<strong>Aktualizace:</strong> Je dostupná nová verze %s.';
-$lang['wrong_folder']          = '<strong>Zásuvný modul nesprávně nainstalován:</strong> Přejmenujte adresář modulu "%s" na "%s".';
-$lang['url_change']            = '<strong>URL se změnila:</strong> URL pro stahování se změnila od poslední aktualizace. Před další aktualizací tohoto rozšíření ověřte správnost nové URL.<br />Nová: %s<br />Stará: %s';
-$lang['error_badurl']          = 'Adresy URL by mÄ›ly zaÄínat s http nebo https';
-$lang['error_dircreate']       = 'Nelze vytvoÅ™it doÄasný adresář pro pÅ™ijetí stahování';
-$lang['error_download']        = 'Nelze stáhnout soubor: %s';
-$lang['error_decompress']      = 'Selhalo rozbalení staženého souboru. Toto je nejspíš důsledek poÅ¡kození souboru pÅ™i pÅ™enosu, zkuste soubor stáhnout znovu; případnÄ› nemusel být rozpoznán formát sbaleného souboru a bude tÅ™eba pÅ™istoupit k ruÄní instalaci. ';
-$lang['error_findfolder']      = 'Nelze rozpoznat adresář pro rozšíření, je tÅ™eba stáhnout a instalovat ruÄnÄ›';
-$lang['error_copy']            = 'DoÅ¡lo k chybÄ› kopírování souborů pÅ™i pokusu nainstalovat soubory do adresáře <em>%s</em>: může být plný disk nebo Å¡patnÄ› nastavena přístupová práva. Tato chyba mohla zapříÄinit pouze ÄásteÄnou instalaci zásuvného modulu a uvést wiki do nestabilního stavu.';
-$lang['noperms']               = 'Nelze zapisovat do adresáře pro rozšíření';
-$lang['notplperms']            = 'Nelze zapisovat do odkládacího adresáře';
-$lang['nopluginperms']         = 'Nelze zapisovat do adresáře se zásuvnými moduly';
-$lang['git']                   = 'Toto rozšíření bylo nainstalováno přes git. Touto cestou ho nejspíš tady aktualizovat nechcete.';
-$lang['auth']                  = 'Tento ověřovací zásuvný modul není povolen v nastavení, zvažte jeho deaktivaci.';
-$lang['install_url']           = 'Nainstalovat z URL:';
-$lang['install_upload']        = 'Nahrát rozšíření:';
-$lang['repo_error']            = 'Nelze kontaktovat repozitář se zásuvnými moduly. Ujistěte se, že váš server může kontaktovat www.dokuwiki.org a zkontrolujte nastavení proxy.';
-$lang['nossl']                 = 'Použité PHP pravděpodobně nepodporuje SSL. Stažení mnoha DokuWiki rozšíření nebude fungovat.';
diff --git a/wiki/lib/plugins/extension/lang/cy/intro_install.txt b/wiki/lib/plugins/extension/lang/cy/intro_install.txt
deleted file mode 100644
index 2bc933e..0000000
--- a/wiki/lib/plugins/extension/lang/cy/intro_install.txt
+++ /dev/null
@@ -1 +0,0 @@
-Gallwch chi arsefydlu ategion a thempledau gan law yma, naill ai gan eu lanlwytho neu gan gyflwyno URL lawrlwytho uniongyrchol.
diff --git a/wiki/lib/plugins/extension/lang/cy/intro_plugins.txt b/wiki/lib/plugins/extension/lang/cy/intro_plugins.txt
deleted file mode 100644
index dd49a7a..0000000
--- a/wiki/lib/plugins/extension/lang/cy/intro_plugins.txt
+++ /dev/null
@@ -1 +0,0 @@
-Dyma'r ategion sydd wedi\'u harsefydlu yn eich DokuWiki yn bresennol. Gallwch chi eu galluogi neu eu hanalluogi nhw neu hyd yn oed eu dad-arsefydlu yn llwyr yma. Caiff diweddariadau'r ategion eu dangos yma hefyd, sicrhewch eich bod chi'n darllen dogfennaeth yr ategyn cyn diweddaru.
diff --git a/wiki/lib/plugins/extension/lang/cy/intro_search.txt b/wiki/lib/plugins/extension/lang/cy/intro_search.txt
deleted file mode 100644
index 8aef960..0000000
--- a/wiki/lib/plugins/extension/lang/cy/intro_search.txt
+++ /dev/null
@@ -1 +0,0 @@
-Mae'r tab hwn yn rhoi mynediad i bob ategyn a thempled 3ydd parti ar gael ar gyfer DokuWiki. Sylwch fod arsefydlu cod 3ydd parti yn achosi **risg diogelwch**. Efallai hoffech chi ddarllen mwy ar [[doku>security#plugin_security|ddiogelwch ategion]] yn gyntaf.
\ No newline at end of file
diff --git a/wiki/lib/plugins/extension/lang/cy/intro_templates.txt b/wiki/lib/plugins/extension/lang/cy/intro_templates.txt
deleted file mode 100644
index 4947145..0000000
--- a/wiki/lib/plugins/extension/lang/cy/intro_templates.txt
+++ /dev/null
@@ -1 +0,0 @@
-Dyma'r templedau sydd wedi'u harsefydlu yn eich DokuWiki yn bresennol. Gallwch chi ddewis y templed i'w ddefnyddio yn y [[?do=admin&page=config|Rheolwr Ffurfwedd]].
diff --git a/wiki/lib/plugins/extension/lang/cy/lang.php b/wiki/lib/plugins/extension/lang/cy/lang.php
deleted file mode 100644
index 2a2a8c8..0000000
--- a/wiki/lib/plugins/extension/lang/cy/lang.php
+++ /dev/null
@@ -1,111 +0,0 @@
-<?php
-/**
- * Welsh language file for extension plugin
- *
- * @author Michael Hamann <michael@content-space.de>
- * @author Christopher Smith <chris@jalakai.co.uk>
- * @author Alan Davies <ben.brynsadler@gmail.com>
- */
-
-$lang['menu']                         = 'Rheolwr Estyniadau';
-
-$lang['tab_plugins']                  = 'Ategion a Arsefydlwyd';
-$lang['tab_templates']                = 'Templedau a Arsefydlwyd';
-$lang['tab_search']                   = 'Chwilio ac Arsefydlu';
-$lang['tab_install']                  = 'Arsefydlu gan Law';
-
-$lang['notimplemented']               = '\'Dyw\'r nodwedd hon heb ei rhoi ar waith eto';
-$lang['notinstalled']                 = '\'Dyw\'r estyniad hwn heb ei arsefydlu';
-$lang['alreadyenabled']               = 'Cafodd yr estyniad hwn ei alluogi';
-$lang['alreadydisabled']              = 'Cafodd yr estyniad hwn ei analluogi';
-$lang['pluginlistsaveerror']          = 'Roedd gwall wrth gadw\'r rhestr ategion';
-$lang['unknownauthor']                = 'Awdur anhysbys';
-$lang['unknownversion']               = 'Fersiwn anhysbys';
-
-$lang['btn_info']                     = 'Dangos wybodaeth bellach';
-$lang['btn_update']                   = 'Diweddaru';
-$lang['btn_uninstall']                = 'Dad-arsefydlu';
-$lang['btn_enable']                   = 'Galluogi';
-$lang['btn_disable']                  = 'Analluogi';
-$lang['btn_install']                  = 'Arsyfydlu';
-$lang['btn_reinstall']                = 'Ail-arsefydlu';
-
-$lang['js']['reallydel']              = 'Ydych chi wir am ddad-arsefydlu\'r estyniad hwn?';
-
-$lang['search_for']                   = 'Chwilio Estyniadau:';
-$lang['search']                       = 'Chwilio';
-
-$lang['extensionby']                  = '<strong>%s</strong> gan %s';
-$lang['screenshot']                   = 'Sgrinlun %s';
-$lang['popularity']                   = 'Poblogrwydd: %s%%';
-$lang['homepage_link']                = 'Dogfennau';
-$lang['bugs_features']                = 'Bygiau';
-$lang['tags']                         = 'Tagiau:';
-$lang['author_hint']                  = 'Chwilio estyniadau gan awdur';
-$lang['installed']                    = 'Arsefydlwyd:';
-$lang['downloadurl']                  = 'URL Lawlwytho:';
-$lang['repository']                   = 'Ystorfa:';
-$lang['unknown']                      = '<em>anhysbys</em>';
-$lang['installed_version']            = 'Fersiwn a arsefydlwyd:';
-$lang['install_date']                 = 'Eich diweddariad diwethaf:';
-$lang['available_version']            = 'Fersiwn ar gael:';
-$lang['compatible']                   = 'Yn gydnaws â:';
-$lang['depends']                      = 'Yn dibynnu ar:';
-$lang['similar']                      = 'Yn debyg i:';
-$lang['conflicts']                    = 'Y gwrthdaro â:';
-$lang['donate']                       = 'Fel hwn?';
-$lang['donate_action']                = 'Prynwch goffi i\'r awdur!';
-$lang['repo_retry']                   = 'Ailgeisio';
-$lang['provides']                     = 'Darparu:';
-$lang['status']                       = 'Statws:';
-$lang['status_installed']             = 'arsefydlwyd';
-$lang['status_not_installed']         = 'heb ei arsefydlu';
-$lang['status_protected']             = 'amddiffynwyd';
-$lang['status_enabled']               = 'galluogwyd';
-$lang['status_disabled']              = 'analluogwyd';
-$lang['status_unmodifiable']          = 'methu addasu';
-$lang['status_plugin']                = 'ategyn';
-$lang['status_template']              = 'templed';
-$lang['status_bundled']               = 'bwndlwyd';
-
-$lang['msg_enabled']                  = 'Galluogwyd ategyn %s';
-$lang['msg_disabled']                 = 'Analluogwyd ategyn %s';
-$lang['msg_delete_success']           = 'Dad-arsefydlwyd estyniad %s';
-$lang['msg_delete_failed']            = 'Methodd dad-arsefydlu estyniad %s';
-$lang['msg_template_install_success'] = 'Arsefydlwyd templed %s yn llwyddiannus';
-$lang['msg_template_update_success']  = 'Diweddarwyd templed %s yn llwyddiannus';
-$lang['msg_plugin_install_success']   = 'Arsefydlwyd ategyn %s yn llwyddiannus';
-$lang['msg_plugin_update_success']    = 'Diweddarwyd ategyn %s yn llwyddiannus';
-$lang['msg_upload_failed']            = 'Methodd lanlwytho\'r ffeil';
-
-$lang['missing_dependency']           = '<strong>Missing or disabled dependency:</strong> %s';
-$lang['security_issue']               = '<strong>Mater Diogelwch:</strong> %s';
-$lang['security_warning']             = '<strong>Rhybudd Diogelwch:</strong> %s';
-$lang['update_available']             = '<strong>Diweddariad:</strong> Mae fersiwn newydd %s ar gael.';
-$lang['wrong_folder']                 = '<strong>Ategyn wedi\'i arsefydlu\'n anghywir:</strong> Ailenwch ffolder yr ategyn o "%s" i "%s".';
-$lang['url_change']                   = '<strong>Newid i\'r URL:</strong> Newidiodd yr URL lawlwytho ers y diweddariad diwethaf. Gwiriwch i weld os yw\'r URL newydd yn ddilys cyn diweddaru\'r estyniad.<br />Newydd: %s<br />Hen: %s';
-
-$lang['error_badurl']                 = 'Dylai URL ddechrau gyda http neu https';
-$lang['error_dircreate']              = 'Methu â chreu ffolder dros dro er mwyn derbyn y lawrlwythiad';
-$lang['error_download']               = 'Methu lawrlwytho\'r ffeil: %s';
-$lang['error_decompress']             = 'Methu datgywasgu\'r ffeil a lawrlwythwyd. Gall hwn fod o ganlyniad i lawrlwythiad gwael, felly ceisiwch eto; neu gall fod fformat y cywasgiad fod yn anhysbys, felly bydd yn rhaid i chi lawlwytho ac arsefydlu gan law.';
-$lang['error_findfolder']             = 'Methu ag adnabod ffolder yr estyniad, bydd angen lawrlwytho ac arsefydlu gan law';
-$lang['error_copy']                   = 'Roedd gwall copïo ffeil wrth geisio arsefydlu ffeiliau i\'r ffolder <em>%s</em>: gall fod y ddisgen yn llawn neu gall hawliau mynediad i ffeiliau fod yn anghywir. Gall hwn fod wedi achosi ategyn sydd wedi arsefydlu\'n rhannol ac sydd wedi ansefydlogi\'ch arsefydliad wici';
-
-$lang['noperms']                      = '\'Sdim modd ysgrifennu i\'r ffolder estyniadau';
-$lang['notplperms']                   = '\'Sdim modd ysgrifennu i\'r ffolder templedau';
-
-$lang['nopluginperms']                = '\'Sdim modd ysgrifennu i\'r ffolder ategion';
-$lang['git']                          = 'Cafodd yr estyniad hwn ei arsefydlu gan git, mae\'n bosib na fyddwch chi am ei ddiweddaru yma.';
-$lang['auth']                         = '\'Dyw\'r ategyn dilysu hwn heb ei alluogi yn y ffurfwedd, ystyriwch ei analluogi.';
-
-$lang['install_url']                  = 'Arsefydlu o URL:';
-$lang['install_upload']               = 'Lanlwytho Estyniad:';
-
-$lang['repo_error']                   = 'Doedd dim modd cysylltu â\'r ystorfa ategion. Sicrhewch fod hawl gan eich gweinydd i gysylltu â www.dokuwiki.org a gwiriwch eich gosodiadau procsi.';
-$lang['nossl']                        = 'Mae\'n debyg \'dyw eich PHP ddim yn cynnal SSL. Na fydd lawrlwytho yn gweithio ar gyfer nifer o estyniadau DokuWiki.';
-
-$lang['js']['display_viewoptions']    = 'Opsiynau Golwg:';
-$lang['js']['display_enabled']        = 'galluogwyd';
-$lang['js']['display_disabled']       = 'analluogwyd';
-$lang['js']['display_updatable']      = 'gallu diweddaru';
diff --git a/wiki/lib/plugins/extension/lang/da/intro_install.txt b/wiki/lib/plugins/extension/lang/da/intro_install.txt
deleted file mode 100644
index e5657f2..0000000
--- a/wiki/lib/plugins/extension/lang/da/intro_install.txt
+++ /dev/null
@@ -1 +0,0 @@
-Her kan du installerer plugins eller templates manuelt, ved enten at uploade dem eller angive en direkte URL til download.
\ No newline at end of file
diff --git a/wiki/lib/plugins/extension/lang/da/intro_plugins.txt b/wiki/lib/plugins/extension/lang/da/intro_plugins.txt
deleted file mode 100644
index 5d9deaf..0000000
--- a/wiki/lib/plugins/extension/lang/da/intro_plugins.txt
+++ /dev/null
@@ -1 +0,0 @@
-Dette er de plugins du aktuelt har installeret i din DokuWiki. Du kan aktivere, deaktiver eller fjerne plugins fra denne side. Opdateringer til plugins vises også her - husk at læse dokumentationen til et plugin inden du opdaterer det.
\ No newline at end of file
diff --git a/wiki/lib/plugins/extension/lang/da/intro_templates.txt b/wiki/lib/plugins/extension/lang/da/intro_templates.txt
deleted file mode 100644
index 1914500..0000000
--- a/wiki/lib/plugins/extension/lang/da/intro_templates.txt
+++ /dev/null
@@ -1 +0,0 @@
-Dette er de templates du aktuelt har installeret i din DokuWiki. Du kan vælge det template du vil benytte under [[?do=admin&page=config|Opsætningsstyring]].
\ No newline at end of file
diff --git a/wiki/lib/plugins/extension/lang/da/lang.php b/wiki/lib/plugins/extension/lang/da/lang.php
deleted file mode 100644
index 5d31357..0000000
--- a/wiki/lib/plugins/extension/lang/da/lang.php
+++ /dev/null
@@ -1,80 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Søren Birk <soer9648@eucl.dk>
- * @author Jacob Palm <mail@jacobpalm.dk>
- */
-$lang['tab_plugins']           = 'Installerede plugins';
-$lang['tab_templates']         = 'Installerede templates';
-$lang['tab_search']            = 'Søg og installer';
-$lang['tab_install']           = 'Manuel installation';
-$lang['notimplemented']        = 'Denne funktion er ikke implementeret endnu';
-$lang['unknownauthor']         = 'Ukendt udgiver';
-$lang['unknownversion']        = 'Ukendt version';
-$lang['btn_info']              = 'Vis mere information';
-$lang['btn_update']            = 'Opdater';
-$lang['btn_uninstall']         = 'Afinstaller';
-$lang['btn_enable']            = 'Aktiver';
-$lang['btn_disable']           = 'Deaktiver';
-$lang['btn_install']           = 'Installer';
-$lang['btn_reinstall']         = 'Geninstaller';
-$lang['js']['reallydel']       = 'Er du sikker på at du vil afinstallere denne udvidelse?';
-$lang['search_for']            = 'Søg efter udvidelse:';
-$lang['search']                = 'Søg';
-$lang['extensionby']           = '<strong>%s</strong> af %s';
-$lang['screenshot']            = 'Skærmbillede af %s';
-$lang['popularity']            = 'Popularitet: %s%%';
-$lang['homepage_link']         = 'Dokumenter';
-$lang['bugs_features']         = 'Fejl';
-$lang['tags']                  = 'Tags:';
-$lang['author_hint']           = 'Søg efter udvidelse af denne udgiver';
-$lang['installed']             = 'Installeret:';
-$lang['downloadurl']           = 'Download URL:';
-$lang['unknown']               = '<em>ukendt</em>';
-$lang['installed_version']     = 'Installeret version:';
-$lang['install_date']          = 'Din sidste opdatering:';
-$lang['available_version']     = 'Tilgængelig version:';
-$lang['compatible']            = 'Kompatibel med:';
-$lang['depends']               = 'Afhængig af:';
-$lang['similar']               = 'Ligner:';
-$lang['donate']                = 'Synes du om denne?';
-$lang['donate_action']         = 'Køb en kop kaffe til udvikleren!';
-$lang['repo_retry']            = 'Førsøg igen';
-$lang['status']                = 'Status:';
-$lang['status_installed']      = 'installeret';
-$lang['status_not_installed']  = 'ikke installeret';
-$lang['status_protected']      = 'beskyttet';
-$lang['status_enabled']        = 'aktiveret';
-$lang['status_disabled']       = 'deaktiveret';
-$lang['status_unmodifiable']   = 'låst for ændringer';
-$lang['status_plugin']         = 'plugin';
-$lang['status_template']       = 'template';
-$lang['msg_enabled']           = 'Plugin %s aktiveret';
-$lang['msg_disabled']          = 'Plugin %s deaktiveret';
-$lang['msg_delete_success']    = 'Udvidelse %s afinstalleret';
-$lang['msg_delete_failed']     = 'Kunne ikke afinstallere udvidelsen %s';
-$lang['msg_template_install_success'] = 'Template %s blev installeret';
-$lang['msg_template_update_success'] = 'Template %s blev opdateret';
-$lang['msg_plugin_install_success'] = 'Plugin %s blev installeret';
-$lang['msg_plugin_update_success'] = 'Plugin %s blev opdateret';
-$lang['msg_upload_failed']     = 'Kunne ikke uploade filen';
-$lang['update_available']      = '<strong>Opdatering:</strong> Ny version %s er tilgængelig.';
-$lang['wrong_folder']          = '<strong>Plugin ikke installeret korrekt:</strong> Omdøb plugin-mappe "%s" til "%s".';
-$lang['url_change']            = '<strong>URL ændret:</strong> Download-URL er blevet ændret siden sidste download. Kontrollér om den nye URL er valid, inden udvidelsen opdateres.<br />Ny: %s<br />Gammel: %s';
-$lang['error_badurl']          = 'URL\'er skal starte med http eller https';
-$lang['error_dircreate']       = 'Ikke i stand til at oprette midlertidig mappe til modtagelse af download';
-$lang['error_download']        = 'Ikke i stand til at downloade filen: %s';
-$lang['error_decompress']      = 'Ikke i stand til at dekomprimere den downloadede fil. Dette kan være et resultat af en dårlig download, hvor du i så fald bør du prøve igen; eller komprimeringsformatet kan være ukendt, hvor du i så fald bliver nød til at downloade og installere manuelt.';
-$lang['error_findfolder']      = 'Ikke i stand til at identificere udvidelsesmappe - du bliver nød til at downloade og installere manuelt.';
-$lang['error_copy']            = 'Der opstod en kopieringsfejl under installation af filer til mappen <em>%s</em>: disken kan være fuld, eller mangel på fil-tilladelser. Dette kan have resulteret i et delvist installeret plugin, og efterladt din wiki-installation ustabil.';
-$lang['noperms']               = 'Udvidelsesmappe er ikke skrivbar';
-$lang['notplperms']            = 'Skabelonmappe er ikke skrivbar';
-$lang['nopluginperms']         = 'Pluginmappe er ikke skrivbar';
-$lang['git']                   = 'Udvidelsen blev installeret via git - du vil muligvis ikke opdatere herfra.';
-$lang['auth']                  = 'Auth-plugin er ikke aktiveret i konfigurationen - overvej at deaktivere den.';
-$lang['install_url']           = 'Installér fra URL:';
-$lang['install_upload']        = 'Upload Udvidelse:';
-$lang['repo_error']            = 'Plugin-arkivet kunne ikke kontaktes. Kontrollér at din server kan kontakte www.dokuwiki.org kontrollér dine proxy-indstillinger.';
-$lang['nossl']                 = 'Din PHP lader til at mangle understøttelse for SSL. Mange DokuWiki udvidelser vil ikke kunne downloades.';
diff --git a/wiki/lib/plugins/extension/lang/de-informal/intro_install.txt b/wiki/lib/plugins/extension/lang/de-informal/intro_install.txt
deleted file mode 100644
index 2aa2e06..0000000
--- a/wiki/lib/plugins/extension/lang/de-informal/intro_install.txt
+++ /dev/null
@@ -1 +0,0 @@
-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/wiki/lib/plugins/extension/lang/de-informal/intro_plugins.txt b/wiki/lib/plugins/extension/lang/de-informal/intro_plugins.txt
deleted file mode 100644
index 13ba705..0000000
--- a/wiki/lib/plugins/extension/lang/de-informal/intro_plugins.txt
+++ /dev/null
@@ -1 +0,0 @@
-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/wiki/lib/plugins/extension/lang/de-informal/intro_search.txt b/wiki/lib/plugins/extension/lang/de-informal/intro_search.txt
deleted file mode 100644
index 9300f9e..0000000
--- a/wiki/lib/plugins/extension/lang/de-informal/intro_search.txt
+++ /dev/null
@@ -1 +0,0 @@
-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/wiki/lib/plugins/extension/lang/de-informal/intro_templates.txt b/wiki/lib/plugins/extension/lang/de-informal/intro_templates.txt
deleted file mode 100644
index aac2643..0000000
--- a/wiki/lib/plugins/extension/lang/de-informal/intro_templates.txt
+++ /dev/null
@@ -1 +0,0 @@
-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/wiki/lib/plugins/extension/lang/de-informal/lang.php b/wiki/lib/plugins/extension/lang/de-informal/lang.php
deleted file mode 100644
index 4daec7f..0000000
--- a/wiki/lib/plugins/extension/lang/de-informal/lang.php
+++ /dev/null
@@ -1,95 +0,0 @@
-<?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:';
-$lang['search']                = 'Suche';
-$lang['extensionby']           = '<strong>%s</strong> von %s';
-$lang['screenshot']            = 'Screenshot von %s';
-$lang['popularity']            = 'Popularität: %s%%';
-$lang['homepage_link']         = 'Doku';
-$lang['bugs_features']         = 'Bugs';
-$lang['tags']                  = 'Schlagworte:';
-$lang['author_hint']           = 'Suche Erweiterungen dieses Autors';
-$lang['installed']             = 'Installiert:';
-$lang['downloadurl']           = 'URL zum Herunterladen:';
-$lang['repository']            = 'Quelle:';
-$lang['unknown']               = '<em>unbekannt</em>';
-$lang['installed_version']     = 'Installierte Version:';
-$lang['install_date']          = 'Dein letztes Update:';
-$lang['available_version']     = 'Verfügbare Version:';
-$lang['compatible']            = 'Kompatibel mit:';
-$lang['depends']               = 'Abhängig von:';
-$lang['similar']               = 'Ähnlich wie:';
-$lang['conflicts']             = 'Nicht kompatibel mit:';
-$lang['donate']                = 'Nützlich?';
-$lang['donate_action']         = 'Spendiere dem Autor einen Kaffee!';
-$lang['repo_retry']            = 'Wiederholen';
-$lang['provides']              = 'Enthält:';
-$lang['status']                = 'Status';
-$lang['status_installed']      = 'installiert';
-$lang['status_not_installed']  = 'nicht installiert';
-$lang['status_protected']      = 'geschützt';
-$lang['status_enabled']        = 'aktiviert';
-$lang['status_disabled']       = 'deaktiviert';
-$lang['status_unmodifiable']   = 'unveränderlich';
-$lang['status_plugin']         = 'Plugin';
-$lang['status_template']       = 'Template';
-$lang['status_bundled']        = 'gebündelt';
-$lang['msg_enabled']           = 'Plugin %s ist aktiviert';
-$lang['msg_disabled']          = 'Erweiterung %s ist deaktiviert';
-$lang['msg_delete_success']    = 'Erweiterung %s wurde entfernt';
-$lang['msg_delete_failed']     = 'Deinstallation der Erweiterung %s fehlgeschlagen';
-$lang['msg_template_install_success'] = 'Das Template %s wurde erfolgreich installiert';
-$lang['msg_template_update_success'] = 'Das Update des Templates %s war erfolgreich ';
-$lang['msg_plugin_install_success'] = 'Das Plugin %s wurde erfolgreich installiert';
-$lang['msg_plugin_update_success'] = 'Das Update des Plugins %s war erfolgreich';
-$lang['msg_upload_failed']     = 'Fehler beim Hochladen der Datei';
-$lang['missing_dependency']    = '<strong>Fehlende oder deaktivierte Abhängigkeit:<strong>%s';
-$lang['security_issue']        = '<strong>Sicherheitsproblem:</strong> %s';
-$lang['security_warning']      = '<strong>Sicherheitswarnung:</strong> %s';
-$lang['update_available']      = '<strong>Update:</strong> Version %s steht zum Download bereit.';
-$lang['wrong_folder']          = '<strong>Plugin wurde nicht korrekt installiert:</strong> Benenne 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ä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 solltest du versuchen den Vorgang zu wiederholen. Es kann auch die Folge eines unbekannten Kompressionsformates sein, in diesem ​​Fall musst du die Datei selber herunterladen und manuell installieren.';
-$lang['error_findfolder']      = 'Das Erweiterungs-Verzeichnis konnte nicht identifiziert werden, lade die Datei herunter und installiere sie 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 deiner Wiki-Installation.';
-$lang['noperms']               = 'Das Erweiterungs-Verzeichnis ist schreibgeschützt';
-$lang['notplperms']            = 'Das Template-Verzeichnis ist schreibgeschützt';
-$lang['nopluginperms']         = 'Das Plugin-Verzeichnis ist schreibgeschützt';
-$lang['git']                   = 'Diese Erweiterung wurde über git installiert und sollte daher nicht hier aktualisiert werden.';
-$lang['auth']                  = 'Dieses Auth Plugin ist in der Konfiguration nicht aktiviert, Du solltest es deaktivieren.';
-$lang['install_url']           = 'Von URL installieren:';
-$lang['install_upload']        = 'Erweiterung hochladen:';
-$lang['repo_error']            = 'Es konnte keine Verbindung zum Plugin-Verzeichnis hergestellt werden. Stelle sicher dass der Server Verbindung mit www.dokuwiki.org aufnehmen darf und überprüfe deine Proxy-Einstellungen.';
-$lang['nossl']                 = 'Deine PHP-Installation scheint SSL nicht zu unterstützen. Das Herunterladen vieler DokuWiki Erweiterungen wird scheitern.';
diff --git a/wiki/lib/plugins/extension/lang/de/intro_install.txt b/wiki/lib/plugins/extension/lang/de/intro_install.txt
deleted file mode 100644
index 4ecebe9..0000000
--- a/wiki/lib/plugins/extension/lang/de/intro_install.txt
+++ /dev/null
@@ -1 +0,0 @@
-Hier können Sie Plugins und Templates von Hand installieren indem Sie sie hochladen oder eine Download-URL angeben.
\ No newline at end of file
diff --git a/wiki/lib/plugins/extension/lang/de/intro_plugins.txt b/wiki/lib/plugins/extension/lang/de/intro_plugins.txt
deleted file mode 100644
index 1a15210..0000000
--- a/wiki/lib/plugins/extension/lang/de/intro_plugins.txt
+++ /dev/null
@@ -1 +0,0 @@
-Dies sind die Plugins, die bereits installiert sind. Sie können sie hier an- oder abschalten oder sie komplett deinstallieren. Außerdem werden hier Updates zu den installiereten Plugins angezeigt. Bitte lesen Sie vor einem Update die zugehörige Dokumentation.
\ No newline at end of file
diff --git a/wiki/lib/plugins/extension/lang/de/intro_search.txt b/wiki/lib/plugins/extension/lang/de/intro_search.txt
deleted file mode 100644
index 366925b..0000000
--- a/wiki/lib/plugins/extension/lang/de/intro_search.txt
+++ /dev/null
@@ -1 +0,0 @@
-Dieser Tab gibt Ihnen Zugriff auf alle vorhandenen Plugins und Templates für DokuWiki. Bitte bedenken Sie, dass jede installierte Erweiterung ein Sicherheitsrisiko darstellen kann. Sie sollten vor einer Installation die [[doku>security#plugin_security|Plugin Security]] Informationen lesen.
\ No newline at end of file
diff --git a/wiki/lib/plugins/extension/lang/de/intro_templates.txt b/wiki/lib/plugins/extension/lang/de/intro_templates.txt
deleted file mode 100644
index d71ce62..0000000
--- a/wiki/lib/plugins/extension/lang/de/intro_templates.txt
+++ /dev/null
@@ -1 +0,0 @@
-Dies sind die in Ihrem Dokuwiki installierten Templates. Sie können das gewünschte Template im [[?do=admin&page=config|Konfigurations Manager]] aktivieren.
\ No newline at end of file
diff --git a/wiki/lib/plugins/extension/lang/de/lang.php b/wiki/lib/plugins/extension/lang/de/lang.php
deleted file mode 100644
index 68ce0ad..0000000
--- a/wiki/lib/plugins/extension/lang/de/lang.php
+++ /dev/null
@@ -1,102 +0,0 @@
-<?php
-
-/**
- * @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>
- * @author Hoisl <hoisl@gmx.at>
- * @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']           = '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';
-$lang['alreadydisabled']       = 'Diese Erweiterung ist bereits deaktiviert';
-$lang['pluginlistsaveerror']   = 'Es gab einen Fehler beim Speichern der Plugin-Liste';
-$lang['unknownauthor']         = 'Unbekannter Autor';
-$lang['unknownversion']        = 'Unbekannte Version';
-$lang['btn_info']              = 'Zeige weitere Info';
-$lang['btn_update']            = 'Update';
-$lang['btn_uninstall']         = 'Deinstallation';
-$lang['btn_enable']            = 'Aktivieren';
-$lang['btn_disable']           = 'Deaktivieren';
-$lang['btn_install']           = 'Installieren';
-$lang['btn_reinstall']         = 'Neu installieren';
-$lang['js']['reallydel']       = 'Wollen Sie diese Erweiterung wirklich löschen?';
-$lang['js']['display_viewoptions'] = 'Optionen anzeigen';
-$lang['js']['display_enabled'] = 'aktiviert';
-$lang['js']['display_disabled'] = 'deaktiviert';
-$lang['js']['display_updatable'] = 'aktualisierbar';
-$lang['search_for']            = 'Erweiterung suchen:';
-$lang['search']                = 'Suchen';
-$lang['extensionby']           = '<strong>%s</strong> von %s';
-$lang['screenshot']            = 'Bildschirmfoto von %s';
-$lang['popularity']            = 'Popularität: %s%%';
-$lang['homepage_link']         = 'Doku';
-$lang['bugs_features']         = 'Bugs';
-$lang['tags']                  = 'Schlagworte';
-$lang['author_hint']           = 'Suche weitere Erweiterungen dieses Autors';
-$lang['installed']             = 'Installiert:';
-$lang['downloadurl']           = 'URL zum Herunterladen:';
-$lang['repository']            = 'Quelle:';
-$lang['unknown']               = '<em>unbekannt</em>';
-$lang['installed_version']     = 'Installierte Version:';
-$lang['install_date']          = 'Ihr letztes Update:';
-$lang['available_version']     = 'Verfügbare Version: ';
-$lang['compatible']            = 'Kompatibel mit:';
-$lang['depends']               = 'Benötigt:';
-$lang['similar']               = 'Ist ähnlich zu:';
-$lang['conflicts']             = 'Nicht kompatibel mit:';
-$lang['donate']                = 'Nützlich?';
-$lang['donate_action']         = 'Spendieren Sie dem Autor einen Kaffee!';
-$lang['repo_retry']            = 'Neu versuchen';
-$lang['provides']              = 'Enthält';
-$lang['status']                = 'Status';
-$lang['status_installed']      = 'installiert';
-$lang['status_not_installed']  = 'nicht installiert';
-$lang['status_protected']      = 'geschützt';
-$lang['status_enabled']        = 'aktiviert';
-$lang['status_disabled']       = 'deaktiviert';
-$lang['status_unmodifiable']   = 'unveränderlich';
-$lang['status_plugin']         = 'Plugin';
-$lang['status_template']       = 'Template';
-$lang['status_bundled']        = 'gebündelt';
-$lang['msg_enabled']           = 'Plugin %s ist aktiviert';
-$lang['msg_disabled']          = 'Erweiterung %s ist deaktiviert';
-$lang['msg_delete_success']    = 'Erweiterung %s wurde entfernt';
-$lang['msg_delete_failed']     = 'Deinstallation der Erweiterung %s fehlgeschlagen';
-$lang['msg_template_install_success'] = 'Das Template %s wurde erfolgreich installiert';
-$lang['msg_template_update_success'] = 'Das Update des Templates %s war erfolgreich ';
-$lang['msg_plugin_install_success'] = 'Das Plugin %s wurde erfolgreich installiert';
-$lang['msg_plugin_update_success'] = 'Das Update des Plugins %s war erfolgreich';
-$lang['msg_upload_failed']     = 'Fehler beim Hochladen der Datei';
-$lang['missing_dependency']    = '<strong>fehlende oder deaktivierte Abhängigkeit:<strong>%s';
-$lang['security_issue']        = '<strong>Sicherheitsproblem:</strong> %s';
-$lang['security_warning']      = '<strong>Sicherheitswarnung:</strong> %s';
-$lang['update_available']      = '<strong>Update:</strong> Version %s steht zum Download bereit.';
-$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ä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_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';
-$lang['nopluginperms']         = 'Das Plugin-Verzeichnis ist schreibgeschützt';
-$lang['git']                   = 'Diese Erweiterung wurde über git installiert und sollte daher nicht hier aktualisiert werden.';
-$lang['auth']                  = 'Dieses Auth Plugin ist in der Konfiguration nicht aktiviert, Sie sollten es deaktivieren.';
-$lang['install_url']           = 'Von Webadresse (URL) installieren';
-$lang['install_upload']        = 'Erweiterung hochladen:';
-$lang['repo_error']            = 'Es konnte keine Verbindung zum Plugin-Verzeichnis hergestellt werden. Stellen sie sicher das der Server Verbindung mit www.dokuwiki.org aufnehmen darf und überprüfen sie ihre Proxy Einstellungen.';
-$lang['nossl']                 = 'Ihr PHP scheint SSL nicht zu unterstützen. Das Herunterladen vieler DokuWiki Erweiterungen wird scheitern.';
diff --git a/wiki/lib/plugins/extension/lang/en/intro_install.txt b/wiki/lib/plugins/extension/lang/en/intro_install.txt
deleted file mode 100644
index a5d5ab0..0000000
--- a/wiki/lib/plugins/extension/lang/en/intro_install.txt
+++ /dev/null
@@ -1 +0,0 @@
-Here you can manually install plugins and templates by either uploading them or providing a direct download URL.
diff --git a/wiki/lib/plugins/extension/lang/en/intro_plugins.txt b/wiki/lib/plugins/extension/lang/en/intro_plugins.txt
deleted file mode 100644
index 4e42efe..0000000
--- a/wiki/lib/plugins/extension/lang/en/intro_plugins.txt
+++ /dev/null
@@ -1 +0,0 @@
-These are the plugins currently installed in your DokuWiki. You can enable or disable or even completely uninstall them here. Plugin updates are shown here as well, be sure to read the plugin's documentation before updating.
\ No newline at end of file
diff --git a/wiki/lib/plugins/extension/lang/en/intro_search.txt b/wiki/lib/plugins/extension/lang/en/intro_search.txt
deleted file mode 100644
index 244cd68..0000000
--- a/wiki/lib/plugins/extension/lang/en/intro_search.txt
+++ /dev/null
@@ -1 +0,0 @@
-This tab gives you access to all available 3rd party plugins and templates for DokuWiki. Please be aware that installing 3rd party code may pose a **security risk**, you may want to read about [[doku>security#plugin_security|plugin security]] first.
\ No newline at end of file
diff --git a/wiki/lib/plugins/extension/lang/en/intro_templates.txt b/wiki/lib/plugins/extension/lang/en/intro_templates.txt
deleted file mode 100644
index 012a749..0000000
--- a/wiki/lib/plugins/extension/lang/en/intro_templates.txt
+++ /dev/null
@@ -1 +0,0 @@
-These are the templates currently installed in your DokuWiki. You can select the template to be used in the [[?do=admin&page=config|Configuration Manager]].
diff --git a/wiki/lib/plugins/extension/lang/en/lang.php b/wiki/lib/plugins/extension/lang/en/lang.php
deleted file mode 100644
index 79f6436..0000000
--- a/wiki/lib/plugins/extension/lang/en/lang.php
+++ /dev/null
@@ -1,109 +0,0 @@
-<?php
-/**
- * English language file for extension plugin
- *
- * @author Michael Hamann <michael@content-space.de>
- * @author Christopher Smith <chris@jalakai.co.uk>
- */
-
-$lang['menu']                         = 'Extension Manager';
-
-$lang['tab_plugins']                  = 'Installed Plugins';
-$lang['tab_templates']                = 'Installed Templates';
-$lang['tab_search']                   = 'Search and Install';
-$lang['tab_install']                  = 'Manual Install';
-
-$lang['notimplemented']               = 'This feature hasn\'t been implemented yet';
-$lang['notinstalled']                 = 'This extension is not installed';
-$lang['alreadyenabled']               = 'This extension has already been enabled';
-$lang['alreadydisabled']              = 'This extension has already been disabled';
-$lang['pluginlistsaveerror']          = 'There was an error saving the plugin list';
-$lang['unknownauthor']                = 'Unknown author';
-$lang['unknownversion']               = 'Unknown version';
-
-$lang['btn_info']                     = 'Show more info';
-$lang['btn_update']                   = 'Update';
-$lang['btn_uninstall']                = 'Uninstall';
-$lang['btn_enable']                   = 'Enable';
-$lang['btn_disable']                  = 'Disable';
-$lang['btn_install']                  = 'Install';
-$lang['btn_reinstall']                = 'Re-install';
-
-$lang['js']['reallydel']              = 'Really uninstall this extension?';
-
-$lang['search_for']                   = 'Search Extension:';
-$lang['search']                       = 'Search';
-
-$lang['extensionby']                  = '<strong>%s</strong> by %s';
-$lang['screenshot']                   = 'Screenshot of %s';
-$lang['popularity']                   = 'Popularity: %s%%';
-$lang['homepage_link']                = 'Docs';
-$lang['bugs_features']                = 'Bugs';
-$lang['tags']                         = 'Tags:';
-$lang['author_hint']                  = 'Search extensions by this author';
-$lang['installed']                    = 'Installed:';
-$lang['downloadurl']                  = 'Download URL:';
-$lang['repository']                   = 'Repository:';
-$lang['unknown']                      = '<em>unknown</em>';
-$lang['installed_version']            = 'Installed version:';
-$lang['install_date']                 = 'Your last update:';
-$lang['available_version']            = 'Available version:';
-$lang['compatible']                   = 'Compatible with:';
-$lang['depends']                      = 'Depends on:';
-$lang['similar']                      = 'Similar to:';
-$lang['conflicts']                    = 'Conflicts with:';
-$lang['donate']                       = 'Like this?';
-$lang['donate_action']                = 'Buy the author a coffee!';
-$lang['repo_retry']                   = 'Retry';
-$lang['provides']                     = 'Provides:';
-$lang['status']                       = 'Status:';
-$lang['status_installed']             = 'installed';
-$lang['status_not_installed']         = 'not installed';
-$lang['status_protected']             = 'protected';
-$lang['status_enabled']               = 'enabled';
-$lang['status_disabled']              = 'disabled';
-$lang['status_unmodifiable']          = 'unmodifiable';
-$lang['status_plugin']                = 'plugin';
-$lang['status_template']              = 'template';
-$lang['status_bundled']               = 'bundled';
-
-$lang['msg_enabled']                  = 'Plugin %s enabled';
-$lang['msg_disabled']                 = 'Plugin %s disabled';
-$lang['msg_delete_success']           = 'Extension %s uninstalled';
-$lang['msg_delete_failed']            = 'Uninstalling Extension %s failed';
-$lang['msg_template_install_success'] = 'Template %s installed successfully';
-$lang['msg_template_update_success']  = 'Template %s updated successfully';
-$lang['msg_plugin_install_success']   = 'Plugin %s installed successfully';
-$lang['msg_plugin_update_success']    = 'Plugin %s updated successfully';
-$lang['msg_upload_failed']            = 'Uploading the file failed';
-
-$lang['missing_dependency']           = '<strong>Missing or disabled dependency:</strong> %s';
-$lang['security_issue']               = '<strong>Security Issue:</strong> %s';
-$lang['security_warning']             = '<strong>Security Warning:</strong> %s';
-$lang['update_available']             = '<strong>Update:</strong> New version %s is available.';
-$lang['wrong_folder']                 = '<strong>Plugin installed incorrectly:</strong> Rename plugin directory "%s" to "%s".';
-$lang['url_change']                   = '<strong>URL changed:</strong> Download URL has changed since last download. Check if the new URL is valid before updating the extension.<br />New: %s<br />Old: %s';
-
-$lang['error_badurl']                 = 'URLs should start with http or https';
-$lang['error_dircreate']              = 'Unable to create temporary folder to receive download';
-$lang['error_download']               = 'Unable to download the file: %s';
-$lang['error_decompress']             = 'Unable to decompress the downloaded file. This maybe as a result of a bad download, in which case you should try again; or the compression format may be unknown, in which case you will need to download and install manually.';
-$lang['error_findfolder']             = 'Unable to identify extension directory, you need to download and install manually';
-$lang['error_copy']                   = 'There was a file copy error while attempting to install files for directory <em>%s</em>: the disk could be full or file access permissions may be incorrect. This may have resulted in a partially installed plugin and leave your wiki installation unstable';
-
-$lang['noperms']                      = 'Extension directory is not writable';
-$lang['notplperms']                   = 'Template directory is not writable';
-$lang['nopluginperms']                = 'Plugin directory is not writable';
-$lang['git']                          = 'This extension was installed via git, you may not want to update it here.';
-$lang['auth']                         = 'This auth plugin is not enabled in configuration, consider disabling it.';
-
-$lang['install_url']                  = 'Install from URL:';
-$lang['install_upload']               = 'Upload Extension:';
-
-$lang['repo_error']                   = 'The plugin repository could not be contacted. Make sure your server is allowed to contact www.dokuwiki.org and check your proxy settings.';
-$lang['nossl']                        = 'Your PHP seems to miss SSL support. Downloading will not work for many DokuWiki extensions.';
-
-$lang['js']['display_viewoptions']    = 'View Options:';
-$lang['js']['display_enabled']        = 'enabled';
-$lang['js']['display_disabled']       = 'disabled';
-$lang['js']['display_updatable']      = 'updatable';
diff --git a/wiki/lib/plugins/extension/lang/eo/intro_install.txt b/wiki/lib/plugins/extension/lang/eo/intro_install.txt
deleted file mode 100644
index d9c63da..0000000
--- a/wiki/lib/plugins/extension/lang/eo/intro_install.txt
+++ /dev/null
@@ -1 +0,0 @@
-Tie vi povas permane instali kromaĵojn kaj Åablonojn tra alÅuto aÅ­ indiko de URL por rekta elÅuto.
\ No newline at end of file
diff --git a/wiki/lib/plugins/extension/lang/eo/intro_plugins.txt b/wiki/lib/plugins/extension/lang/eo/intro_plugins.txt
deleted file mode 100644
index cc7ae66..0000000
--- a/wiki/lib/plugins/extension/lang/eo/intro_plugins.txt
+++ /dev/null
@@ -1 +0,0 @@
-Jenaj kromaĵoj momente estas instalitaj en via DokuWiki. Vi povas ebligi, malebligi aÅ­ eĉ tute malinstali ilin tie. AnkaÅ­ montriÄos aktualigoj de kromaĵoj -- certiÄu, ke vi legis la dokumentadon de la kromaĵo antaÅ­ aktualigo.
\ No newline at end of file
diff --git a/wiki/lib/plugins/extension/lang/eo/intro_search.txt b/wiki/lib/plugins/extension/lang/eo/intro_search.txt
deleted file mode 100644
index 5d19494..0000000
--- a/wiki/lib/plugins/extension/lang/eo/intro_search.txt
+++ /dev/null
@@ -1 +0,0 @@
-Tiu tabelo donas aliron al ĉiuj haveblaj eksteraj kromaĵoj kaj Åablonoj por DokuWiki. Bonvolu konscii, ke instali eksteran kodaĵon povas enkonduki **sekurecriskon**, prefere legu antaÅ­e pri [[doku>security#plugin_security|sekureco de kromaĵo]].
\ No newline at end of file
diff --git a/wiki/lib/plugins/extension/lang/eo/intro_templates.txt b/wiki/lib/plugins/extension/lang/eo/intro_templates.txt
deleted file mode 100644
index 6dc0ef6..0000000
--- a/wiki/lib/plugins/extension/lang/eo/intro_templates.txt
+++ /dev/null
@@ -1 +0,0 @@
-Jenaj Åablonoj momente instaliÄis en via DokuWiki. Elektu la Åablonon por uzi en la [[?do=admin&page=config|Opcia administrilo]].
\ No newline at end of file
diff --git a/wiki/lib/plugins/extension/lang/eo/lang.php b/wiki/lib/plugins/extension/lang/eo/lang.php
deleted file mode 100644
index bcac85d..0000000
--- a/wiki/lib/plugins/extension/lang/eo/lang.php
+++ /dev/null
@@ -1,89 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Kristjan SCHMIDT <kristjan.schmidt@googlemail.com>
- * @author Robert Bogenschneider <bogi@uea.org>
- */
-$lang['menu']                  = 'Aldonaĵa administrado';
-$lang['tab_plugins']           = 'Instalitaj kromaĵoj';
-$lang['tab_templates']         = 'Instalitaj Åablonoj';
-$lang['tab_search']            = 'Serĉi kaj instali';
-$lang['tab_install']           = 'Permana instalado';
-$lang['notimplemented']        = 'Tiu funkcio ankoraÅ­ ne realiÄis';
-$lang['notinstalled']          = 'Tiu aldonaĵo ne estas instalita';
-$lang['alreadyenabled']        = 'Tiu aldonaĵo jam ebliÄis';
-$lang['alreadydisabled']       = 'Tiu aldonaĵo jam malebliÄis';
-$lang['pluginlistsaveerror']   = 'Okazis eraro dum la kromaĵlisto konserviÄis';
-$lang['unknownauthor']         = 'Nekonata aÅ­toro';
-$lang['unknownversion']        = 'Nekonata versio';
-$lang['btn_info']              = 'Montri pliajn informojn';
-$lang['btn_update']            = 'Aktualigi';
-$lang['btn_uninstall']         = 'Malinstali';
-$lang['btn_enable']            = 'Ebligi';
-$lang['btn_disable']           = 'Malebligi';
-$lang['btn_install']           = 'Instali';
-$lang['btn_reinstall']         = 'Re-instali';
-$lang['js']['reallydel']       = 'Ĉu vere malinstali la aldonaĵon?';
-$lang['js']['display_updatable'] = 'Äisdatigebla';
-$lang['search_for']            = 'Serĉi la aldonaĵon:';
-$lang['search']                = 'Serĉi';
-$lang['extensionby']           = '<strong>%s</strong> fare de %s';
-$lang['screenshot']            = 'Ekrankopio de %s';
-$lang['popularity']            = 'Populareco: %s%%';
-$lang['homepage_link']         = 'Dokumentoj';
-$lang['bugs_features']         = 'Cimoj';
-$lang['tags']                  = 'Etikedoj:';
-$lang['author_hint']           = 'Serĉi aldonaĵojn laŭ tiu aŭtoro:';
-$lang['installed']             = 'Instalitaj:';
-$lang['downloadurl']           = 'URL por elÅuti:';
-$lang['repository']            = 'Kodbranĉo:';
-$lang['unknown']               = '<em>nekonata</em>';
-$lang['installed_version']     = 'Instalita versio:';
-$lang['install_date']          = 'Via lasta aktualigo:';
-$lang['available_version']     = 'Havebla versio:';
-$lang['compatible']            = 'Kompatibla kun:';
-$lang['depends']               = 'Dependas de:';
-$lang['similar']               = 'Simila al:';
-$lang['conflicts']             = 'Konfliktas kun:';
-$lang['donate']                = 'Ĉu vi Åatas tion?';
-$lang['donate_action']         = 'Aĉetu kafon al la aŭtoro!';
-$lang['repo_retry']            = 'Reprovi';
-$lang['provides']              = 'Provizas per:';
-$lang['status']                = 'Statuso:';
-$lang['status_installed']      = 'instalita';
-$lang['status_not_installed']  = 'ne instalita';
-$lang['status_protected']      = 'protektita';
-$lang['status_enabled']        = 'ebligita';
-$lang['status_disabled']       = 'malebligita';
-$lang['status_unmodifiable']   = 'neÅanÄebla';
-$lang['status_plugin']         = 'kromaĵo';
-$lang['status_template']       = 'Åablono';
-$lang['status_bundled']        = 'kunliverita';
-$lang['msg_enabled']           = 'Kromaĵo %s ebligita';
-$lang['msg_disabled']          = 'Kromaĵo %s malebligita';
-$lang['msg_delete_success']    = 'Aldonaĵo %s malinstaliÄis';
-$lang['msg_template_install_success'] = 'Åœablono %s sukcese instaliÄis';
-$lang['msg_template_update_success'] = 'Åœablono %s sukcese aktualiÄis';
-$lang['msg_plugin_install_success'] = 'Kromaĵo %s sukcese instaliÄis';
-$lang['msg_plugin_update_success'] = 'Kromaĵo %s sukcese aktualiÄis';
-$lang['msg_upload_failed']     = 'Ne eblis alÅuti la dosieron';
-$lang['missing_dependency']    = '<strong>Mankanta aÅ­ malebligita dependeco:</strong> %s';
-$lang['security_issue']        = '<strong>Sekureca problemo:</strong> %s';
-$lang['security_warning']      = '<strong>Sekureca averto:</strong> %s';
-$lang['update_available']      = '<strong>Aktualigo:</strong> Nova versio %s haveblas.';
-$lang['wrong_folder']          = '<strong>Kromaĵo instalita malÄuste:</strong> Renomu la kromaĵdosierujon "%s" al "%s".';
-$lang['url_change']            = '<strong>URL ÅanÄita:</strong> La elÅuta URL ÅanÄiÄis ekde la lasta elÅuto. Kontrolu, ĉu la nova URL validas antaÅ­ aktualigi aldonaĵon.<br />Nova: %s<br />Malnova: %s';
-$lang['error_badurl']          = 'URLoj komenciÄu per http aÅ­ https';
-$lang['error_dircreate']       = 'Ne eblis krei portempan dosierujon por akcepti la elÅuton';
-$lang['error_download']        = 'Ne eblis elÅuti la dosieron: %s';
-$lang['error_decompress']      = 'Ne eblis malpaki la elÅutitan dosieron. Kialo povus esti fuÅa elÅuto, kaj vi reprovu; aÅ­ la pakiga formato estas nekonata, kaj vi devas elÅuti kaj instali permane.';
-$lang['error_findfolder']      = 'Ne eblis rekoni la aldonaĵ-dosierujon, vi devas elÅuti kaj instali permane';
-$lang['error_copy']            = 'Okazis kopiad-eraro dum la provo instali dosierojn por la dosierujo <em>%s</em>: la disko povus esti plena aÅ­ la alirpermesoj por dosieroj malÄustaj. Rezulto eble estas nur parte instalita kromaĵo, kiu malstabiligas vian vikion';
-$lang['noperms']               = 'La aldonaĵ-dosierujo ne estas skribebla';
-$lang['notplperms']            = 'La Åablon-dosierujo ne estas skribebla';
-$lang['nopluginperms']         = 'La kromaĵ-dosierujo ne estas skribebla';
-$lang['git']                   = 'Tiu aldonaĵo estis instalita pere de git, eble vi ne aktualigu Äin ĉi tie.';
-$lang['install_url']           = 'Instali de URL:';
-$lang['install_upload']        = 'AlÅuti aldonaĵon:';
diff --git a/wiki/lib/plugins/extension/lang/es/intro_install.txt b/wiki/lib/plugins/extension/lang/es/intro_install.txt
deleted file mode 100644
index 533396b..0000000
--- a/wiki/lib/plugins/extension/lang/es/intro_install.txt
+++ /dev/null
@@ -1 +0,0 @@
-Aquí se puede instalar manualmente los plugins y las plantillas, ya sea cargándolos o dando una URL de descarga directa.
\ No newline at end of file
diff --git a/wiki/lib/plugins/extension/lang/es/intro_plugins.txt b/wiki/lib/plugins/extension/lang/es/intro_plugins.txt
deleted file mode 100644
index 4805021..0000000
--- a/wiki/lib/plugins/extension/lang/es/intro_plugins.txt
+++ /dev/null
@@ -1 +0,0 @@
-Estos son los plugins actualmente instalados en su DokuWiki. Puede activar, desactivar o incluso desinstalar completamente desde aquí. Actualizaciones de los Plugin se muestran también aquí, asegúrese de leer la documentación del plugin antes de actualizar.
\ No newline at end of file
diff --git a/wiki/lib/plugins/extension/lang/es/intro_search.txt b/wiki/lib/plugins/extension/lang/es/intro_search.txt
deleted file mode 100644
index f59bb33..0000000
--- a/wiki/lib/plugins/extension/lang/es/intro_search.txt
+++ /dev/null
@@ -1 +0,0 @@
-Esta pestaña te da acceso a todos los plugins de 3as partes disponibles y plantillas para DokuWiki. Tenga en cuenta que la instalación de código de terceras partes puede plantear un **riesgo de seguridad**, es posible que desee leer primero sobre [[doku>security#plugin_security|plugin security]].
\ No newline at end of file
diff --git a/wiki/lib/plugins/extension/lang/es/intro_templates.txt b/wiki/lib/plugins/extension/lang/es/intro_templates.txt
deleted file mode 100644
index 4ede9a1..0000000
--- a/wiki/lib/plugins/extension/lang/es/intro_templates.txt
+++ /dev/null
@@ -1 +0,0 @@
-Estas son las plantillas actualmente instalados en su DokuWiki. Puede seleccionar la plantilla que se utilizará en [[?do=admin&page=config|Configuration Manager]]
\ No newline at end of file
diff --git a/wiki/lib/plugins/extension/lang/es/lang.php b/wiki/lib/plugins/extension/lang/es/lang.php
deleted file mode 100644
index b7adf8f..0000000
--- a/wiki/lib/plugins/extension/lang/es/lang.php
+++ /dev/null
@@ -1,100 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Antonio Bueno <atnbueno@gmail.com>
- * @author Antonio Castilla <antoniocastilla@trazoide.com>
- * @author Jonathan Hernández <me@jhalicea.com>
- * @author Ãlvaro Iradier <airadier@gmail.com>
- * @author Mauricio Segura <maose38@yahoo.es>
- * @author Domingo Redal <docxml@gmail.com>
- */
-$lang['menu']                  = 'Administrador de Extensiones ';
-$lang['tab_plugins']           = 'Plugins instalados';
-$lang['tab_templates']         = 'Plantillas instaladas';
-$lang['tab_search']            = 'Buscar e instalar';
-$lang['tab_install']           = 'Instalación manual';
-$lang['notimplemented']        = 'Esta característica no se ha implementado aún';
-$lang['notinstalled']          = 'Esta expensión no está instalada';
-$lang['alreadyenabled']        = 'Esta extensión ya había sido activada';
-$lang['alreadydisabled']       = 'Esta extensión ya había sido desactivada';
-$lang['pluginlistsaveerror']   = 'Se ha producido un error al guardar la lista de plugins';
-$lang['unknownauthor']         = 'autor desconocido';
-$lang['unknownversion']        = 'versión desconocida';
-$lang['btn_info']              = 'Mostrar más información';
-$lang['btn_update']            = 'Actualizar';
-$lang['btn_uninstall']         = 'Desinstalar';
-$lang['btn_enable']            = 'Activar';
-$lang['btn_disable']           = 'Desactivar';
-$lang['btn_install']           = 'Instalar';
-$lang['btn_reinstall']         = 'Reinstalar';
-$lang['js']['reallydel']       = '¿Realmente quiere desinstalar esta extensión?';
-$lang['js']['display_viewoptions'] = 'Ver opciones:';
-$lang['js']['display_enabled'] = 'habilitado';
-$lang['js']['display_disabled'] = 'deshabilitado';
-$lang['js']['display_updatable'] = 'actualizable';
-$lang['search_for']            = 'Extensión de búsqueda :';
-$lang['search']                = 'Buscar';
-$lang['extensionby']           = '<strong>%s</strong> por %s';
-$lang['screenshot']            = 'Captura de %s';
-$lang['popularity']            = 'Popularidad:%s%%';
-$lang['homepage_link']         = 'Documentos';
-$lang['bugs_features']         = 'Bugs';
-$lang['tags']                  = 'Etiquetas:';
-$lang['author_hint']           = 'Buscar extensiones de este autor';
-$lang['installed']             = 'Instalado:';
-$lang['downloadurl']           = 'URL de descarga:';
-$lang['repository']            = 'Repositorio:';
-$lang['unknown']               = '<em>desconocido</em>';
-$lang['installed_version']     = 'Versión instalada:';
-$lang['install_date']          = 'Tú última actualización:';
-$lang['available_version']     = 'Versión disponible:';
-$lang['compatible']            = 'Compatible con:';
-$lang['depends']               = 'Dependencias:';
-$lang['similar']               = 'Similar a:';
-$lang['conflicts']             = 'Conflictos con:';
-$lang['donate']                = '¿Cómo está?';
-$lang['donate_action']         = '¡Págale un café al autor!';
-$lang['repo_retry']            = 'Trate otra vez';
-$lang['provides']              = 'Provee: ';
-$lang['status']                = 'Estado:';
-$lang['status_installed']      = 'instalado';
-$lang['status_not_installed']  = 'no instalado';
-$lang['status_protected']      = 'protegido';
-$lang['status_enabled']        = 'activado';
-$lang['status_disabled']       = 'desactivado';
-$lang['status_unmodifiable']   = 'no modificable';
-$lang['status_plugin']         = 'plugin';
-$lang['status_template']       = 'plantilla';
-$lang['status_bundled']        = 'agrupado';
-$lang['msg_enabled']           = 'Plugin %s activado';
-$lang['msg_disabled']          = 'Plugin %s desactivado';
-$lang['msg_delete_success']    = 'Extensión %s desinstalada';
-$lang['msg_delete_failed']     = 'La desinstalación de la extensión %s ha fallado';
-$lang['msg_template_install_success'] = 'Plantilla %s instalada con éxito';
-$lang['msg_template_update_success'] = 'Plantilla %s actualizada con éxito';
-$lang['msg_plugin_install_success'] = 'Plugin %s instalado con éxito';
-$lang['msg_plugin_update_success'] = 'Plugin %s actualizado con éxito';
-$lang['msg_upload_failed']     = 'Falló la carga del archivo';
-$lang['missing_dependency']    = '<strong>Dependencia deshabilitada o perdida:</strong> %s';
-$lang['security_issue']        = '<strong>Problema de seguridad:</strong> %s';
-$lang['security_warning']      = '<strong>Aviso de seguridad:</strong> %s';
-$lang['update_available']      = '<strong>Actualizar:</strong> Nueva versión %s disponible.';
-$lang['wrong_folder']          = '<strong>"Plugin" instalado incorrectamente:</strong> Cambie el nombre del directorio del plugin "%s" a "%s".';
-$lang['url_change']            = '<strong>URL actualizada:</strong> El Download URL ha cambiado desde el último download. Verifica si el nuevo URL es valido antes de actualizar la extensión .<br />Nuevo: %s<br />Viejo: %s';
-$lang['error_badurl']          = 'URLs deberían empezar con http o https';
-$lang['error_dircreate']       = 'No es posible de crear un directorio temporero para poder recibir el download';
-$lang['error_download']        = 'No es posible descargar el documento: %s';
-$lang['error_decompress']      = 'No se pudo descomprimir el fichero descargado. Puede ser a causa de una descarga incorrecta, en cuyo caso puedes intentarlo de nuevo; o puede que el formato de compresión sea desconocido, en cuyo caso necesitarás descargar e instalar manualmente.';
-$lang['error_findfolder']      = 'No se ha podido identificar el directorio de la extensión, es necesario descargar e instalar manualmente';
-$lang['error_copy']            = 'Hubo un error durante la copia de archivos al intentar instalar los archivos del directorio <em>%s</em>: el disco puede estar lleno o los permisos de acceso a los archivos pueden ser incorrectos. Esto puede haber dado lugar a un plugin instalado parcialmente y dejar su instalación wiki inestable';
-$lang['noperms']               = 'El directorio de extensiones no tiene permiso de escritura.';
-$lang['notplperms']            = 'El directorio de plantillas no tiene permiso de escritura.';
-$lang['nopluginperms']         = 'No se puede escribir en el directorio de plugins';
-$lang['git']                   = 'Esta extensión fue instalada a través de git, quizás usted no quiera actualizarla aquí mismo.';
-$lang['auth']                  = 'Este plugin de autenticación no está habilitada en la configuración, considere la posibilidad de desactivarlo.';
-$lang['install_url']           = 'Instalar desde URL:';
-$lang['install_upload']        = 'Subir Extensión:';
-$lang['repo_error']            = 'El repositorio de plugins no puede ser contactado. Asegúrese que su servidor pueda contactar www.dokuwiki.org y verificar la configuración de su proxy.';
-$lang['nossl']                 = 'Tu PHP parece no tener soporte SSL. Las descargas no funcionaran para muchas extensiones de DokuWiki.';
diff --git a/wiki/lib/plugins/extension/lang/fa/intro_install.txt b/wiki/lib/plugins/extension/lang/fa/intro_install.txt
deleted file mode 100644
index 93c2b97..0000000
--- a/wiki/lib/plugins/extension/lang/fa/intro_install.txt
+++ /dev/null
@@ -1 +0,0 @@
-در اینجا می‌توانید Ø§ÙØ²ÙˆÙ†Ù‡â€ŒÙ‡Ø§ Ùˆ قالب‌ها را به صورت دستی از طریق آپلودشان یا با ارائهٔ لینک مستقیم دانلود نصب کنید.
\ No newline at end of file
diff --git a/wiki/lib/plugins/extension/lang/fa/intro_plugins.txt b/wiki/lib/plugins/extension/lang/fa/intro_plugins.txt
deleted file mode 100644
index 7d7d331..0000000
--- a/wiki/lib/plugins/extension/lang/fa/intro_plugins.txt
+++ /dev/null
@@ -1 +0,0 @@
-این‌ها Ø§ÙØ²ÙˆÙ†Ù‡â€ŒÙ‡Ø§ÛŒÛŒ است Ú©Ù‡ اکنون روی داکو ویکی شما نصب می‌باشند. از اینجا می‌توانید آن‌ها را ØºÛŒØ±ÙØ¹Ø§Ù„ØŒ ÙØ¹Ø§Ù„ یا به طور کامل حذ٠نمایید. به‌روزرسانی Ø§ÙØ²ÙˆÙ†Ù‡â€ŒÙ‡Ø§ نیز در اینجا نمایش داده می‌شود. پیش از به‌روزرسانی مطمئن شوید Ú©Ù‡ مستندات Ø§ÙØ²ÙˆÙ†Ù‡ را مطالعه نموده‌اید.
\ No newline at end of file
diff --git a/wiki/lib/plugins/extension/lang/fa/intro_search.txt b/wiki/lib/plugins/extension/lang/fa/intro_search.txt
deleted file mode 100644
index 07fde76..0000000
--- a/wiki/lib/plugins/extension/lang/fa/intro_search.txt
+++ /dev/null
@@ -1 +0,0 @@
-این شاخه به تمام Ø§ÙØ²ÙˆÙ†Ù‡â€ŒÙ‡Ø§ Ùˆ قالب‌های نسل سوم داکو ویکی دسترسی می‌دهد. Ù„Ø·ÙØ§ دقت کنید Ú©Ù‡ نصب کد نسل سوم یک **ریسک امنیتی** است برای همین بهتر است Ú©Ù‡ ابتدا [[doku>security#plugin_security|امنیت Ø§ÙØ²ÙˆÙ†Ù‡]] را مطالعه نمایید.
\ No newline at end of file
diff --git a/wiki/lib/plugins/extension/lang/fa/intro_templates.txt b/wiki/lib/plugins/extension/lang/fa/intro_templates.txt
deleted file mode 100644
index 1a127c0..0000000
--- a/wiki/lib/plugins/extension/lang/fa/intro_templates.txt
+++ /dev/null
@@ -1 +0,0 @@
-این‌ها قالب‌هاییست Ú©Ù‡ اکنون در داکو ویکی شما نصب می‌باشد. شما می‌توانید قالبی Ú©Ù‡ می‌خواهید Ø§Ø³ØªÙØ§Ø¯Ù‡ شود را در [[?do=admin&page=config|تنظیمات پیکربندی]] انتخاب نمایید.
\ No newline at end of file
diff --git a/wiki/lib/plugins/extension/lang/fa/lang.php b/wiki/lib/plugins/extension/lang/fa/lang.php
deleted file mode 100644
index 63345fd..0000000
--- a/wiki/lib/plugins/extension/lang/fa/lang.php
+++ /dev/null
@@ -1,97 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Mohamad Mehdi Habibi <habibi.esf@gmail.com>
- * @author Masoud Sadrnezhaad <masoud@sadrnezhaad.ir>
- * @author Sam01 <m.sajad079@gmail.com>
- */
-$lang['menu']                  = 'مدیریت Ø§ÙØ²ÙˆÙ†Ù‡ ها';
-$lang['tab_plugins']           = 'پلاگین های نصب شده';
-$lang['tab_templates']         = 'قالب های نصب شده';
-$lang['tab_search']            = 'جستجو و نصب';
-$lang['tab_install']           = 'نصب دستی';
-$lang['notimplemented']        = 'این قابلیت هنوز پیاده‌سازی نشده';
-$lang['notinstalled']          = 'این Ø§ÙØ²ÙˆÙ†Ù‡ نصب نشده است';
-$lang['alreadyenabled']        = 'این Ø§ÙØ²ÙˆÙ†Ù‡ ÙØ¹Ø§Ù„ شده است';
-$lang['alreadydisabled']       = 'این Ø§ÙØ²ÙˆÙ†Ù‡ ØºÛŒØ±ÙØ¹Ø§Ù„ شده است';
-$lang['pluginlistsaveerror']   = 'یک خطا هنگام ذخیره‌سازی این Ø§ÙØ²ÙˆÙ†Ù‡ رخ داده';
-$lang['unknownauthor']         = 'نویسنده نامشخص';
-$lang['unknownversion']        = 'نسخه ناشناخته';
-$lang['btn_info']              = 'نمایش اطلاعات بیشتر';
-$lang['btn_update']            = 'به روز رسانی';
-$lang['btn_uninstall']         = 'حذÙ';
-$lang['btn_enable']            = 'ÙØ¹Ø§Ù„';
-$lang['btn_disable']           = 'ØºÛŒØ±ÙØ¹Ø§Ù„';
-$lang['btn_install']           = 'نصب';
-$lang['btn_reinstall']         = 'نصب مجدد';
-$lang['js']['reallydel']       = 'واقعا می‌خواهید این Ø§ÙØ²ÙˆÙ†Ù‡ را حذ٠کنید؟';
-$lang['js']['display_viewoptions'] = 'نمایش گزینه‌ها:';
-$lang['js']['display_enabled'] = 'ÙØ¹Ø§Ù„';
-$lang['js']['display_disabled'] = 'ØºÛŒØ±ÙØ¹Ø§Ù„';
-$lang['js']['display_updatable'] = 'قابل به‌روزرسانی';
-$lang['search_for']            = 'جستجوی Ø§ÙØ²ÙˆÙ†Ù‡:';
-$lang['search']                = 'جستجو';
-$lang['extensionby']           = '<strong>%s</strong> به وسیلهٔ %s';
-$lang['screenshot']            = 'اسکرین شات %s';
-$lang['popularity']            = 'محبوبیت: %s%%';
-$lang['homepage_link']         = 'مستندات';
-$lang['bugs_features']         = 'اشکالات';
-$lang['tags']                  = 'برچسب ها:';
-$lang['author_hint']           = 'جستجوی Ø§ÙØ²ÙˆÙ†Ù‡â€ŒÙ‡Ø§ÛŒ این نویسنده';
-$lang['installed']             = 'نصب شده:';
-$lang['downloadurl']           = 'لینک دانلود:';
-$lang['repository']            = 'مخزن:';
-$lang['unknown']               = '<em>ناشناخته</em>';
-$lang['installed_version']     = 'نسخه نصب شده:';
-$lang['install_date']          = 'آخرین به‌روزرسانی شما:';
-$lang['available_version']     = 'نسخه در دسترس:';
-$lang['compatible']            = 'سازگار با:';
-$lang['depends']               = 'وابسته به:';
-$lang['similar']               = 'شبیه به:';
-$lang['conflicts']             = 'تداخل دارد با:';
-$lang['donate']                = 'به این علاقه‌مندید؟';
-$lang['donate_action']         = 'برای نویسنده یک Ùنجان قهوه بخرید!';
-$lang['repo_retry']            = 'دوباره';
-$lang['provides']              = 'شامل می‌شود:';
-$lang['status']                = 'وضعیت';
-$lang['status_installed']      = 'نصب شده';
-$lang['status_not_installed']  = 'نصب نشده';
-$lang['status_protected']      = 'Ù…Ø­Ø§ÙØ¸Øª شده';
-$lang['status_enabled']        = 'ÙØ¹Ø§Ù„';
-$lang['status_disabled']       = 'ØºÛŒØ±ÙØ¹Ø§Ù„';
-$lang['status_unmodifiable']   = 'غیرقابل تغییر';
-$lang['status_plugin']         = 'پلاگین';
-$lang['status_template']       = 'قالب';
-$lang['status_bundled']        = 'باندل شده';
-$lang['msg_enabled']           = 'Ø§ÙØ²ÙˆÙ†Ù‡ %s ÙØ¹Ø§Ù„ شده';
-$lang['msg_disabled']          = 'Ø§ÙØ²ÙˆÙ†Ù‡ %s ØºÛŒØ±ÙØ¹Ø§Ù„ شده';
-$lang['msg_delete_success']    = 'Ø§ÙØ²ÙˆÙ†Ù‡ %s حذ٠شده';
-$lang['msg_delete_failed']     = 'Ø­Ø°Ù Ø§ÙØ²ÙˆÙ†Ù‡ %s ناموÙÙ‚ بود';
-$lang['msg_template_install_success'] = 'قالب %s با موÙقیت نصب شد';
-$lang['msg_template_update_success'] = 'قالب %s با موÙقیت به‌روزرسانی شد';
-$lang['msg_plugin_install_success'] = 'Ø§ÙØ²ÙˆÙ†Ù‡Ù” %s با موÙقیت نصب شد';
-$lang['msg_plugin_update_success'] = 'Ø§ÙØ²ÙˆÙ†Ù‡Ù” %s با موÙقیت نصب شد';
-$lang['msg_upload_failed']     = 'بارگذاری ÙØ§ÛŒÙ„ ناموÙÙ‚ بود';
-$lang['missing_dependency']    = '<strong>نیازمندی وجود ندارد یا ØºÛŒØ±ÙØ¹Ø§Ù„ است:</strong> %s';
-$lang['security_issue']        = '<strong>اشکال امنیتی:</strong> %s';
-$lang['security_warning']      = '<strong>اخطار امنیتی:</strong> %s';
-$lang['update_available']      = '<strong>به‌روزرسانی</strong> نسخهٔ جدید %s موجود است.';
-$lang['wrong_folder']          = '<strong>Ø§ÙØ²ÙˆÙ†Ù‡ اشتباه نصب شده:</strong> نام پوشهٔ Ø§ÙØ²ÙˆÙ†Ù‡ را از "%s" به "%s" تغییر دهید.';
-$lang['url_change']            = '<strong>لینک تغییر کرد:</strong> لینک دانلود از آخرین دانلود تغییر کرد. پیش از به‌روزرسانی Ø§ÙØ²ÙˆÙ†Ù‡ØŒ Ú†Ú© کنید Ú©Ù‡ لینک جدید درست باشد.<br />جدید: %s<br />قدیمی: %s';
-$lang['error_badurl']          = 'لینک‌ها باید با http یا https شروع شوند';
-$lang['error_dircreate']       = 'امکان ایجاد پوشهٔ موقت برای Ø¯Ø±ÛŒØ§ÙØª دانلود وجود ندارد';
-$lang['error_download']        = 'امکان دانلود ÙØ§ÛŒÙ„ وجود ندارد: %s';
-$lang['error_decompress']      = 'امکان خارج کردن ÙØ§ÛŒÙ„ دانلود شده از حالت ÙØ´Ø±Ø¯Ù‡ وجود ندارد. این می‌توانید در اثر دانلود ناقص باشد Ú©Ù‡ در اینصورت باید دوباره تلاش کنید؛ یا اینکه ÙØ±Ù…ت ÙØ´Ø±Ø¯Ù‡â€ŒØ³Ø§Ø²ÛŒ نامعلوم است Ú©Ù‡ در اینصورت باید به صورت دستی دانلود Ùˆ نصب نمایید.';
-$lang['error_findfolder']      = 'امکان تشخیص پوشهٔ Ø§ÙØ²ÙˆÙ†Ù‡ وجود ندارد. باید به صورت دستی دانلود Ùˆ نصب کنید.';
-$lang['error_copy']            = 'هنگام تلاش برای نصب ÙØ§ÛŒÙ„‌ها برای پوشهٔ <em>%s</em> خطای Ú©Ù¾ÛŒ ÙØ§ÛŒÙ„ وجود دارد: رسانه ذخیره‌سازی می‌تواند پر باشد یا پرمیشن‌های ÙØ§ÛŒÙ„ نادرست است. این می‌تواند باعث نصب بخشی از Ø§ÙØ²ÙˆÙ†Ù‡ شده باشد Ùˆ ویکی را ناپایدار نماید.';
-$lang['noperms']               = 'پوشه Ø§ÙØ²ÙˆÙ†Ù‡ ها قابل نوشتن نیست';
-$lang['notplperms']            = 'پوشه قالب ها قابل نوشتن نیست';
-$lang['nopluginperms']         = 'پوشه پلاگین ها قابل نوشتن نیست';
-$lang['git']                   = 'این Ø§ÙØ²ÙˆÙ†Ù‡ از طریق گیت نصب شده، شما نباید آن را از اینجا به‌روزرسانی کنید.';
-$lang['auth']                  = 'این Ø§ÙØ²ÙˆÙ†Ù‡Ù” auth در بخش تنظیمات ÙØ¹Ø§Ù„ نشده، ØºÛŒØ±ÙØ¹Ø§Ù„Ø´ کنید.';
-$lang['install_url']           = 'نصب از آدرس:';
-$lang['install_upload']        = 'بارگذاری Ø§ÙØ²ÙˆÙ†Ù‡:';
-$lang['repo_error']            = 'امکان ارتباط با مخزن Ø§ÙØ²ÙˆÙ†Ù‡â€ŒÙ‡Ø§ وجود ندارد. مطمئن شوید Ú©Ù‡ سرور شما اجازهٔ ارتباط با www.dokuwiki.org را دارد Ùˆ تنظیمات پراکسی را Ú†Ú© کنید.';
-$lang['nossl']                 = 'به نظر می‌آید Ú©Ù‡ PHP شما از SSL پشتیبانی نمی‌کند. دانلود کردن برای بسیاری از Ø§ÙØ²ÙˆÙ†Ù‡â€ŒÙ‡Ø§ÛŒ داکو ویکی کار نمی‌کند.';
diff --git a/wiki/lib/plugins/extension/lang/fi/lang.php b/wiki/lib/plugins/extension/lang/fi/lang.php
deleted file mode 100644
index a154f25..0000000
--- a/wiki/lib/plugins/extension/lang/fi/lang.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author Jussi Takala <jussi.takala@live.fi>
- */
-$lang['tab_plugins']           = 'Asennetut liitännäiset';
-$lang['tab_search']            = 'Etsi ja asenna';
-$lang['tab_install']           = 'Manuaalinen asennus';
-$lang['notimplemented']        = 'Tätä ominaisuutta ei ole vielä toteutettu';
-$lang['notinstalled']          = 'Tätä laajennusta ei ole asennettu';
-$lang['alreadyenabled']        = 'Tämä laajennus on jo käytössä';
-$lang['alreadydisabled']       = 'Tämä laajennus on jo otettu pois käytöstä';
-$lang['pluginlistsaveerror']   = 'Tapahtui virhe tallentaessa liitännäislistaa';
-$lang['unknownauthor']         = 'Tuntematon tekijä';
-$lang['unknownversion']        = 'Tuntematon versio';
-$lang['btn_info']              = 'Näytä lisää tietoa';
-$lang['btn_update']            = 'Päivitä';
-$lang['btn_enable']            = 'Ota käyttöön';
-$lang['btn_disable']           = 'Poista käytöstä';
-$lang['btn_install']           = 'Asenna';
-$lang['btn_reinstall']         = 'Uudelleenasenna';
-$lang['js']['reallydel']       = 'Haluatko varmasti poistaa tämän laajennuksen?';
-$lang['search_for']            = 'Etsi laajennusta:';
-$lang['search']                = 'Etsi';
-$lang['downloadurl']           = 'Lataa URL-osoite';
-$lang['installed_version']     = 'Asennettu versio';
-$lang['install_date']          = 'Sinun viimeinen päivitys:';
-$lang['available_version']     = 'Saatavissa oleva versio:';
-$lang['status_installed']      = 'asennettu';
-$lang['status_protected']      = 'suojattu';
-$lang['status_enabled']        = 'otettu käyttöön';
-$lang['status_disabled']       = 'otettu pois käytöstä';
-$lang['status_plugin']         = 'liitännäinen';
-$lang['install_url']           = 'Asenna URL-osoitteesta:';
-$lang['install_upload']        = 'Ladattu laajennus:';
diff --git a/wiki/lib/plugins/extension/lang/fr/intro_install.txt b/wiki/lib/plugins/extension/lang/fr/intro_install.txt
deleted file mode 100644
index 5d287b8..0000000
--- a/wiki/lib/plugins/extension/lang/fr/intro_install.txt
+++ /dev/null
@@ -1 +0,0 @@
-Ici, vous pouvez installer des extensions, greffons et thèmes. Soit en les téléversant, soit en indiquant un URL de téléchargement.
\ No newline at end of file
diff --git a/wiki/lib/plugins/extension/lang/fr/intro_plugins.txt b/wiki/lib/plugins/extension/lang/fr/intro_plugins.txt
deleted file mode 100644
index a40b863..0000000
--- a/wiki/lib/plugins/extension/lang/fr/intro_plugins.txt
+++ /dev/null
@@ -1 +0,0 @@
-Voilà la liste des extensions actuellement installées. À partir d'ici, vous pouvez les activer, les désactiver ou même les désinstaller complètement. Cette page affiche également les mises à jour. Assurez vous de lire la documentation avant de faire la mise à jour.
\ No newline at end of file
diff --git a/wiki/lib/plugins/extension/lang/fr/intro_search.txt b/wiki/lib/plugins/extension/lang/fr/intro_search.txt
deleted file mode 100644
index 418e359..0000000
--- a/wiki/lib/plugins/extension/lang/fr/intro_search.txt
+++ /dev/null
@@ -1 +0,0 @@
-Cet onglet vous donne accès à toutes les extensions de tierces parties. Restez conscients qu'installer du code de tierce partie peut poser un problème de **sécurité**.  Vous voudrez peut-être au préalable lire l'article sur la [[doku>fr:security##securite_des_plugins|sécurité des plugins]].
\ No newline at end of file
diff --git a/wiki/lib/plugins/extension/lang/fr/intro_templates.txt b/wiki/lib/plugins/extension/lang/fr/intro_templates.txt
deleted file mode 100644
index a0a1336..0000000
--- a/wiki/lib/plugins/extension/lang/fr/intro_templates.txt
+++ /dev/null
@@ -1 +0,0 @@
-Voici la liste des thèmes actuellement installés. Le [[?do=admin&page=config|gestionnaire de configuration]] vous permet de choisir le thème à utiliser.
\ No newline at end of file
diff --git a/wiki/lib/plugins/extension/lang/fr/lang.php b/wiki/lib/plugins/extension/lang/fr/lang.php
deleted file mode 100644
index 9a57851..0000000
--- a/wiki/lib/plugins/extension/lang/fr/lang.php
+++ /dev/null
@@ -1,99 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Damien Regad <dregad@mantisbt.org>
- * @author Schplurtz le Déboulonné <schplurtz@laposte.net>
- * @author Yves Grandvalet <Yves.Grandvalet@laposte.net>
- * @author Carbain Frédéric <fcarbain@yahoo.fr>
- * @author Nicolas Friedli <nicolas@theologique.ch>
- */
-$lang['menu']                  = 'Gestionnaire d\'extensions';
-$lang['tab_plugins']           = 'Greffons installés';
-$lang['tab_templates']         = 'Thèmes installés';
-$lang['tab_search']            = 'Rechercher et installer';
-$lang['tab_install']           = 'Installation manuelle';
-$lang['notimplemented']        = 'Cette fonctionnalité n\'est pas encore installée';
-$lang['notinstalled']          = 'Cette extension n\'est pas installée';
-$lang['alreadyenabled']        = 'Cette extension a déjà été installée';
-$lang['alreadydisabled']       = 'Cette extension a déjà été désactivée';
-$lang['pluginlistsaveerror']   = 'Une erreur s\'est produite lors de l\'enregistrement de la liste des greffons.';
-$lang['unknownauthor']         = 'Auteur inconnu';
-$lang['unknownversion']        = 'Version inconnue';
-$lang['btn_info']              = 'Montrer plus d\'informations';
-$lang['btn_update']            = 'Mettre à jour';
-$lang['btn_uninstall']         = 'Désinstaller';
-$lang['btn_enable']            = 'Activer';
-$lang['btn_disable']           = 'Désactiver';
-$lang['btn_install']           = 'Installer';
-$lang['btn_reinstall']         = 'Réinstaller';
-$lang['js']['reallydel']       = 'Vraiment désinstaller cette extension';
-$lang['js']['display_viewoptions'] = 'Voir les options:';
-$lang['js']['display_enabled'] = 'activé';
-$lang['js']['display_disabled'] = 'désactivé';
-$lang['js']['display_updatable'] = 'Mise à jour possible';
-$lang['search_for']            = 'Rechercher l\'extension :';
-$lang['search']                = 'Chercher';
-$lang['extensionby']           = '<strong>%s</strong> de %s';
-$lang['screenshot']            = 'Aperçu de %s';
-$lang['popularity']            = 'Popularité : %s%%';
-$lang['homepage_link']         = 'Documentation';
-$lang['bugs_features']         = 'Bogues';
-$lang['tags']                  = 'Étiquettes :';
-$lang['author_hint']           = 'Chercher les extensions de cet auteur';
-$lang['installed']             = 'Installés :';
-$lang['downloadurl']           = 'URL de téléchargement :';
-$lang['repository']            = 'Dépôt : ';
-$lang['unknown']               = '<em>inconnu</em>';
-$lang['installed_version']     = 'Version installée :';
-$lang['install_date']          = 'Votre dernière mise à jour :';
-$lang['available_version']     = 'Version disponible :';
-$lang['compatible']            = 'Compatible avec :';
-$lang['depends']               = 'Dépend de :';
-$lang['similar']               = 'Similaire à :';
-$lang['conflicts']             = 'En conflit avec :';
-$lang['donate']                = 'Vous aimez ?';
-$lang['donate_action']         = 'Payer un café à l\'auteur !';
-$lang['repo_retry']            = 'Réessayer';
-$lang['provides']              = 'Fournit :';
-$lang['status']                = 'État :';
-$lang['status_installed']      = 'installé';
-$lang['status_not_installed']  = 'non installé';
-$lang['status_protected']      = 'protégé';
-$lang['status_enabled']        = 'activé';
-$lang['status_disabled']       = 'désactivé';
-$lang['status_unmodifiable']   = 'non modifiable';
-$lang['status_plugin']         = 'greffon';
-$lang['status_template']       = 'thème';
-$lang['status_bundled']        = 'fourni';
-$lang['msg_enabled']           = 'Greffon %s activé';
-$lang['msg_disabled']          = 'Greffon %s désactivé';
-$lang['msg_delete_success']    = 'Extension %s désinstallée.';
-$lang['msg_delete_failed']     = 'Échec de la désinstallation de l\'extension %s';
-$lang['msg_template_install_success'] = 'Thème %s installé avec succès';
-$lang['msg_template_update_success'] = 'Thème %s mis à jour avec succès';
-$lang['msg_plugin_install_success'] = 'Greffon %s installé avec succès';
-$lang['msg_plugin_update_success'] = 'Greffon %s mis à jour avec succès';
-$lang['msg_upload_failed']     = 'Téléversement échoué';
-$lang['missing_dependency']    = '<strong>Dépendance absente ou désactivée :</strong> %s';
-$lang['security_issue']        = '<strong>Problème de sécurité :</strong> %s';
-$lang['security_warning']      = '<strong>Avertissement de sécurité :</strong> %s';
-$lang['update_available']      = '<strong>Mise à jour :</strong> la version %s est disponible.';
-$lang['wrong_folder']          = '<strong>Greffon installé incorrectement :</strong> renommer le dossier du greffon "%s" en "%s".';
-$lang['url_change']            = '<strong>URL modifié :</strong> L\'URL de téléchargement a changé depuis le dernier téléchargement. Vérifiez si l\'URL est valide avant de mettre à jour l\'extension.<br />Nouvel URL : %s<br />Ancien : %s';
-$lang['error_badurl']          = 'Les URL doivent commencer par http ou https';
-$lang['error_dircreate']       = 'Impossible de créer le dossier temporaire pour le téléchargement.';
-$lang['error_download']        = 'Impossible de télécharger le fichier : %s';
-$lang['error_decompress']      = 'Impossible de décompresser le fichier téléchargé. C\'est peut être le résultat d\'une erreur de téléchargement, auquel cas vous devriez réessayer. Le format de compression est peut-être inconnu. Dans ce cas il vous faudra procéder à une installation manuelle.';
-$lang['error_findfolder']      = 'Impossible d\'identifier le dossier de l\'extension. Vous devez procéder à une installation manuelle.';
-$lang['error_copy']            = 'Une erreur de copie de fichier s\'est produite lors de l\'installation des fichiers dans le dossier <em>%s</em>. Il se peut que le disque soit plein, ou que les permissions d\'accès aux fichiers soient incorrectes. Il est possible que le greffon soit partiellement installé et que cela laisse votre installation de DokuWiki instable.';
-$lang['noperms']               = 'Impossible d\'écrire dans le dossier des extensions.';
-$lang['notplperms']            = 'Impossible d\'écrire dans le dossier des thèmes.';
-$lang['nopluginperms']         = 'Impossible d\'écrire dans le dossier des greffons.';
-$lang['git']                   = 'Cette extension a été installé via git, vous voudrez peut-être ne pas la mettre à jour ici.';
-$lang['auth']                  = 'Votre configuration n\'utilise pas ce greffon d\'authentification. Vous devriez songer à le désactiver.';
-$lang['install_url']           = 'Installez depuis l\'URL :';
-$lang['install_upload']        = 'Téléversez l\'extension :';
-$lang['repo_error']            = 'Le dépôt d\'extensions est injoignable. Veuillez vous assurer que le server web est autorisé à contacter www.dokuwiki.org et vérifier les réglages de proxy.';
-$lang['nossl']                 = 'Votre version de PHP semble ne pas prendre en charge SSL. Le téléchargement de nombreuses extensions va échouer.';
diff --git a/wiki/lib/plugins/extension/lang/he/lang.php b/wiki/lib/plugins/extension/lang/he/lang.php
deleted file mode 100644
index ecdc19c..0000000
--- a/wiki/lib/plugins/extension/lang/he/lang.php
+++ /dev/null
@@ -1,26 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Guy Yakobovitch <guy.yakobovitch@gmail.com>
- */
-$lang['menu']                  = 'מנהל הרחבות';
-$lang['tab_plugins']           = '×ª×•×¡×¤×™× ×ž×•×ª×§× ×™×';
-$lang['tab_templates']         = 'תבניות מותקנות';
-$lang['tab_install']           = 'התקנה ידנית';
-$lang['notinstalled']          = 'הרחבה זו ×œ× ×ž×•×ª×§× ×ª';
-$lang['status_not_installed']  = '×œ× ×ž×•×ª×§×Ÿ';
-$lang['status_protected']      = 'מוגן';
-$lang['status_enabled']        = 'מופעל';
-$lang['status_disabled']       = 'מושבת';
-$lang['status_unmodifiable']   = '×œ× × ×™×ª×Ÿ לשינוי';
-$lang['status_plugin']         = 'תוסף';
-$lang['status_template']       = 'תבנית';
-$lang['msg_enabled']           = 'תוסף %s מופעל';
-$lang['msg_disabled']          = 'תוסף %s מושבת';
-$lang['msg_delete_success']    = 'הרחבה %s הוסרה';
-$lang['msg_delete_failed']     = 'הסרת ההרחבה %s נכשלה';
-$lang['msg_template_install_success'] = 'תבנית %s הותקנה בהצלחה';
-$lang['msg_template_update_success'] = 'תבנית %s עודכנה בהצלחה';
-$lang['error_download']        = '×œ× × ×™×ª×Ÿ להוריד ×ת הקובץ: %s';
diff --git a/wiki/lib/plugins/extension/lang/hr/intro_install.txt b/wiki/lib/plugins/extension/lang/hr/intro_install.txt
deleted file mode 100644
index f3274b0..0000000
--- a/wiki/lib/plugins/extension/lang/hr/intro_install.txt
+++ /dev/null
@@ -1 +0,0 @@
-Ovdje možete ruÄno postaviti dodatak (plugin) i predložak (template) bilo uÄitavanjem ili navoÄ‘enjem URL adrese za direktno uÄitavanje.
\ No newline at end of file
diff --git a/wiki/lib/plugins/extension/lang/hr/intro_plugins.txt b/wiki/lib/plugins/extension/lang/hr/intro_plugins.txt
deleted file mode 100644
index 0c458ee..0000000
--- a/wiki/lib/plugins/extension/lang/hr/intro_plugins.txt
+++ /dev/null
@@ -1 +0,0 @@
-Ovo su dodaci (plugin) trenutno postavljeni na VaÅ¡em DokuWiku-u. Možete ih omogućiti, onemogućiti ili u potpunosti ukloniti. Nadogradnje dodataka su takoÄ‘er prikazane, obavezno proÄitajte dokumentaciju  dodatka prije nadogradnje.
\ No newline at end of file
diff --git a/wiki/lib/plugins/extension/lang/hr/intro_search.txt b/wiki/lib/plugins/extension/lang/hr/intro_search.txt
deleted file mode 100644
index 4056905..0000000
--- a/wiki/lib/plugins/extension/lang/hr/intro_search.txt
+++ /dev/null
@@ -1 +0,0 @@
-Ovdje možete potražiti i druge dostupne dodatke i predloÅ¡ke za DokuWiki. Molimo budite svjesni da postavljanje koda razvijenog od treće strane može biti **sigurnosni rizik**, možda želite prvo proÄitati o [[doku>security#plugin_security|sigurnosti dodataka]].
\ No newline at end of file
diff --git a/wiki/lib/plugins/extension/lang/hr/intro_templates.txt b/wiki/lib/plugins/extension/lang/hr/intro_templates.txt
deleted file mode 100644
index 76dafe6..0000000
--- a/wiki/lib/plugins/extension/lang/hr/intro_templates.txt
+++ /dev/null
@@ -1 +0,0 @@
-Ovo su predlošci trenutno postavljeni na Vašem DokuWiki-u. Koji se predložak koristi možete odabrati na [[?do=admin&page=config|Upravitelju postavki]].
\ No newline at end of file
diff --git a/wiki/lib/plugins/extension/lang/hr/lang.php b/wiki/lib/plugins/extension/lang/hr/lang.php
deleted file mode 100644
index 697806d..0000000
--- a/wiki/lib/plugins/extension/lang/hr/lang.php
+++ /dev/null
@@ -1,95 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Davor Turkalj <turki.bsc@gmail.com>
- */
-$lang['menu']                  = 'Upravitelj proširenja';
-$lang['tab_plugins']           = 'Ugrađeni dodatci';
-$lang['tab_templates']         = 'Ugrađeni predlošci';
-$lang['tab_search']            = 'Potraži i ugradi';
-$lang['tab_install']           = 'RuÄna ugradnja';
-$lang['notimplemented']        = 'Ova mogućnost još nije napravljena';
-$lang['notinstalled']          = 'Proširenje nije ugrađeno';
-$lang['alreadyenabled']        = 'Ovo proširenje je već omogućeno';
-$lang['alreadydisabled']       = 'Ovo proširenje je već onemogućeno';
-$lang['pluginlistsaveerror']   = 'Dogodila se greška pri snimanju liste dodataka';
-$lang['unknownauthor']         = 'Nepoznat autor';
-$lang['unknownversion']        = 'Nepoznata inaÄica';
-$lang['btn_info']              = 'Prikaži više informacija';
-$lang['btn_update']            = 'Ažuriraj';
-$lang['btn_uninstall']         = 'Ukloni';
-$lang['btn_enable']            = 'Omogući';
-$lang['btn_disable']           = 'Onemogući';
-$lang['btn_install']           = 'Ugradi';
-$lang['btn_reinstall']         = 'Ponovno ugradi';
-$lang['js']['reallydel']       = 'Zaista ukloniti ovo proširenje?';
-$lang['js']['display_viewoptions'] = 'Opcije pregleda:';
-$lang['js']['display_enabled'] = 'omogućen';
-$lang['js']['display_disabled'] = 'onemogućen';
-$lang['js']['display_updatable'] = 'izmjenjiv';
-$lang['search_for']            = 'Pretraži proširenja';
-$lang['search']                = 'Pretraži';
-$lang['extensionby']           = '<strong>%s</strong> po %s';
-$lang['screenshot']            = 'Slika zaslona od %s';
-$lang['popularity']            = 'Popularnost: %s%%';
-$lang['homepage_link']         = 'Upute';
-$lang['bugs_features']         = 'Greške';
-$lang['tags']                  = 'Oznake:';
-$lang['author_hint']           = 'Potraži proširenja od ovog autora';
-$lang['installed']             = 'Ugrađeno:';
-$lang['downloadurl']           = 'URL adresa preuzimanja:';
-$lang['repository']            = 'Repozitorij:';
-$lang['unknown']               = '<em>nepoznat</em>';
-$lang['installed_version']     = 'UgraÄ‘ena inaÄica:';
-$lang['install_date']          = 'Vaše zadnje osvježavanje:';
-$lang['available_version']     = 'Dostupna inaÄica';
-$lang['compatible']            = 'Kompatibilan s:';
-$lang['depends']               = 'Zavisi o:';
-$lang['similar']               = 'SliÄan s:';
-$lang['conflicts']             = 'U sukobu s:';
-$lang['donate']                = 'Poput ovog?';
-$lang['donate_action']         = 'Kupite autoru kavu!';
-$lang['repo_retry']            = 'Ponovi';
-$lang['provides']              = 'Osigurava:';
-$lang['status']                = 'Status:';
-$lang['status_installed']      = 'ugrađen';
-$lang['status_not_installed']  = 'nije ugrađen';
-$lang['status_protected']      = 'zaštićen';
-$lang['status_enabled']        = 'omogućen';
-$lang['status_disabled']       = 'onemogućen';
-$lang['status_unmodifiable']   = 'neizmjenjiv';
-$lang['status_plugin']         = 'dodatak';
-$lang['status_template']       = 'predložak';
-$lang['status_bundled']        = 'ugrađen';
-$lang['msg_enabled']           = 'Dodatak %s omogućen';
-$lang['msg_disabled']          = 'Dodatak %s onemogućen';
-$lang['msg_delete_success']    = 'Proširenje %s uklonjeno';
-$lang['msg_delete_failed']     = 'Uklanjanje proširenja %s nije uspjelo';
-$lang['msg_template_install_success'] = 'Predložak %s uspješno ugrađen';
-$lang['msg_template_update_success'] = 'Predložak %s uspješno nadograđen';
-$lang['msg_plugin_install_success'] = 'Dodatak %s uspješno ugrađen';
-$lang['msg_plugin_update_success'] = 'Dodatak %s uspješno nadograđen';
-$lang['msg_upload_failed']     = 'UÄitavanje datoteke nije uspjelo';
-$lang['missing_dependency']    = '<strong>Nedostaje ili onemogućena zavisnost:</strong> %s';
-$lang['security_issue']        = '<strong>Sigurnosno pitanje:</strong> %s';
-$lang['security_warning']      = '<strong>Sigurnosno upozorenje:</strong> %s';
-$lang['update_available']      = '<strong>Nadogranja:</strong> Nova inaÄica %s je dostupna.';
-$lang['wrong_folder']          = '<strong>Dodatak neispravno ugrađen:</strong> Preimenujte mapu dodatka iz "%s" u "%s".';
-$lang['url_change']            = '<strong>URL izmijenjen:</strong> Adresa za preuzimanje je promijenjena od zadnjeg preuzimanja. Provjerite da li je novu URL valjan prije nadogradnje proširenja.<br />Novi: %s<br />Stari: %s';
-$lang['error_badurl']          = 'URL adrese trebaju zapoÄinjati sa http ili https';
-$lang['error_dircreate']       = 'Ne mogu napraviti privremenu mapu za prihvat preuzimanja';
-$lang['error_download']        = 'Ne mogu preuzeti datoteku: %s';
-$lang['error_decompress']      = 'Ne mogu raspakirati preuzetu datoteku. To može biti rezultati loÅ¡eg preuzimanja i tada treba pokuÅ¡ati ponovo; ili format sažimanja je nepoznat i u tom sluÄaju treba datoteku ruÄno preuzeti i ugraditi.';
-$lang['error_findfolder']      = 'Ne mogu odrediti mapu proÅ¡irenja, trebate ga ruÄno preuzeti i ugraditi';
-$lang['error_copy']            = 'Dogodila se greÅ¡ka pri kopiranju dok je pokuÅ¡avanja ugradnja datoteka u mapu <em>%s</em>: disk može biti pun ili dozvole pristupa nisu dobre. Ovo može rezultirati djelomiÄno ugraÄ‘enim dodatkom i može uÄiniti VaÅ¡ wiki nestabilnim';
-$lang['noperms']               = 'Nije moguće pisati u mapu proširanja';
-$lang['notplperms']            = 'Nije moguće pisati u mapu predloška';
-$lang['nopluginperms']         = 'Nije moguće pisati u mapu dodatka';
-$lang['git']                   = 'Proširenje je ugrađeno preko Git-a, možda ga ne želite nadograđivati ovdje.';
-$lang['auth']                  = 'Autorizacijski dodatak nije podešen, razmotrite njegovo onemogućavanje kao dodatka.';
-$lang['install_url']           = 'Ugradi s URL-a:';
-$lang['install_upload']        = 'UÄitaj proÅ¡irenje:';
-$lang['repo_error']            = 'Repozitorij dodataka nije dostupan. Budite sigurni da server može pristupiti www.dokuwiki.org i provjerite proxy postavke.';
-$lang['nossl']                 = 'Izgleda da koriÅ¡teni PHP ne podržava SSL. UÄitavanje neće raditi na mnogim DokuWiki dodatcima.';
diff --git a/wiki/lib/plugins/extension/lang/hu/intro_install.txt b/wiki/lib/plugins/extension/lang/hu/intro_install.txt
deleted file mode 100644
index 8427e7d..0000000
--- a/wiki/lib/plugins/extension/lang/hu/intro_install.txt
+++ /dev/null
@@ -1 +0,0 @@
-Itt új modulokat és sablonokat telepíthetsz feltöltéssel vagy a csomagra hivatkozó URL megadásával.
\ No newline at end of file
diff --git a/wiki/lib/plugins/extension/lang/hu/intro_plugins.txt b/wiki/lib/plugins/extension/lang/hu/intro_plugins.txt
deleted file mode 100644
index 8a3e92d..0000000
--- a/wiki/lib/plugins/extension/lang/hu/intro_plugins.txt
+++ /dev/null
@@ -1 +0,0 @@
-A DokuWiki rendszerben telepített modulok az alábbiak. Engedélyezheted, letilthatod vagy teljesen le is törölheted ezeket. A modulokhoz tartozó frissítések is itt láthatók, viszont frissítés előtt mindenképp olvasd el az utasításokat a modul dokumentációjában is!
\ No newline at end of file
diff --git a/wiki/lib/plugins/extension/lang/hu/intro_search.txt b/wiki/lib/plugins/extension/lang/hu/intro_search.txt
deleted file mode 100644
index 87a2a5d..0000000
--- a/wiki/lib/plugins/extension/lang/hu/intro_search.txt
+++ /dev/null
@@ -1 +0,0 @@
-Ezen a fülön harmadik fél által készített modulokat és sablonokat találsz a DokuWiki-hez. Ne feledd, hogy a harmadik féltől származó kódok **biztonsági kockázatot** jelenthetnek, ennek a [[doku>security#plugin_security|modulok biztonsága]] oldalon olvashatsz utána a telepítés előtt.
\ No newline at end of file
diff --git a/wiki/lib/plugins/extension/lang/hu/intro_templates.txt b/wiki/lib/plugins/extension/lang/hu/intro_templates.txt
deleted file mode 100644
index c0ad92b..0000000
--- a/wiki/lib/plugins/extension/lang/hu/intro_templates.txt
+++ /dev/null
@@ -1 +0,0 @@
-A DokuWiki rendszerben telepített sablonok az alábbiak. A használt sablont a [[?do=admin&page=config|Beállítóközpontban]] választhatod ki.
\ No newline at end of file
diff --git a/wiki/lib/plugins/extension/lang/hu/lang.php b/wiki/lib/plugins/extension/lang/hu/lang.php
deleted file mode 100644
index 7d531e1..0000000
--- a/wiki/lib/plugins/extension/lang/hu/lang.php
+++ /dev/null
@@ -1,95 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author Marton Sebok <sebokmarton@gmail.com>
- */
-$lang['menu']                  = 'Bővítménykezelő';
-$lang['tab_plugins']           = 'Telepített modulok';
-$lang['tab_templates']         = 'Telepített sablonok';
-$lang['tab_search']            = 'Keresés és telepítés';
-$lang['tab_install']           = 'Kézi telepítés';
-$lang['notimplemented']        = 'Ez a funkció még nincs implementálva';
-$lang['notinstalled']          = 'Ez a bővítmény nincs telepítve';
-$lang['alreadyenabled']        = 'Ez a bővítmény már engedélyezve van';
-$lang['alreadydisabled']       = 'Ez a bővítmény már le van tiltva';
-$lang['pluginlistsaveerror']   = 'Hiba történt a modulok listájának mentésekor';
-$lang['unknownauthor']         = 'Ismeretlen szerző';
-$lang['unknownversion']        = 'Ismeretlen verzió';
-$lang['btn_info']              = 'További információk megjelenítése';
-$lang['btn_update']            = 'Frissítés';
-$lang['btn_uninstall']         = 'Törlés';
-$lang['btn_enable']            = 'Engedélyezés';
-$lang['btn_disable']           = 'Letiltás';
-$lang['btn_install']           = 'Telepítés';
-$lang['btn_reinstall']         = 'Újratelepítés';
-$lang['js']['reallydel']       = 'Biztosan törlöd ezt a bővítményt?';
-$lang['js']['display_viewoptions'] = 'Nézet beállításai:';
-$lang['js']['display_enabled'] = 'engedélyezve';
-$lang['js']['display_disabled'] = 'letiltva';
-$lang['js']['display_updatable'] = 'frissíthető';
-$lang['search_for']            = 'Bővítmények keresése:';
-$lang['search']                = 'Keresés';
-$lang['extensionby']           = '<strong>%s</strong>, %s szerzőtől';
-$lang['screenshot']            = '%s képernyőképe';
-$lang['popularity']            = 'Népszerűség: %s%%';
-$lang['homepage_link']         = 'Dokumentáció';
-$lang['bugs_features']         = 'Hibák';
-$lang['tags']                  = 'Címkék:';
-$lang['author_hint']           = 'Bővítmények keresése ettől a szerzőtől';
-$lang['installed']             = 'Telepítve:';
-$lang['downloadurl']           = 'Csomag URL:';
-$lang['repository']            = 'Repository:';
-$lang['unknown']               = '<em>ismeretlen</em>';
-$lang['installed_version']     = 'Telepített verzió:';
-$lang['install_date']          = 'Utoljára frissítve:';
-$lang['available_version']     = 'Elérhető verzió:';
-$lang['compatible']            = 'Kompatibilis rendszerek:';
-$lang['depends']               = 'Függőségek:';
-$lang['similar']               = 'Hasonló bővítmények:';
-$lang['conflicts']             = 'Ütközést okozó bővítmények:';
-$lang['donate']                = 'Tetszik?';
-$lang['donate_action']         = 'Hívd meg a szerzőjét egy kávéra!';
-$lang['repo_retry']            = 'Újra';
-$lang['provides']              = 'Szolgáltatások:';
-$lang['status']                = 'Ãllapot:';
-$lang['status_installed']      = 'telepítve';
-$lang['status_not_installed']  = 'nincs telepítve';
-$lang['status_protected']      = 'védett';
-$lang['status_enabled']        = 'engedélyezve';
-$lang['status_disabled']       = 'letiltva';
-$lang['status_unmodifiable']   = 'nem lehet módosítani';
-$lang['status_plugin']         = 'modul';
-$lang['status_template']       = 'sablon';
-$lang['status_bundled']        = 'beépített';
-$lang['msg_enabled']           = 'A(z) %s modul engedélyezve';
-$lang['msg_disabled']          = 'A(z) %s modul letiltva';
-$lang['msg_delete_success']    = 'A bővítmény %s törölve';
-$lang['msg_delete_failed']     = 'A(z) %s bővítmény eltávolítása sikertelen';
-$lang['msg_template_install_success'] = 'A(z) %s sablon sikeresen telepítve';
-$lang['msg_template_update_success'] = 'A(z) %s sablon sikeresen frissítve';
-$lang['msg_plugin_install_success'] = 'A(z) %s modul sikeresen telepítve';
-$lang['msg_plugin_update_success'] = 'A(z) %s modul sikeresen frissítve';
-$lang['msg_upload_failed']     = 'A fájl feltöltése sikertelen';
-$lang['missing_dependency']    = '<strong>Hiányzó vagy letiltott függőség:</strong> %s';
-$lang['security_issue']        = '<strong>Biztonsági probléma:</strong> %s';
-$lang['security_warning']      = '<strong>Biztonsági figyelmeztetés:</strong> %s';
-$lang['update_available']      = '<strong>Frissítés:</strong> Elérhető %s új verziója.';
-$lang['wrong_folder']          = '<strong>A modul telepítése sikertelen:</strong> Nevezd át a modul könyvtárát "%s" névről "%s" névre!';
-$lang['url_change']            = '<strong>Az URL megváltozott:</strong> A csomag URL-je megváltozott az utolsó letöltés óta. A bővítmény frissítése előtt ellenőrizd az új URL helyességét!<br />Új: %s<br />Régi: %s';
-$lang['error_badurl']          = 'Az URL-nek "http"-vel vagy "https"-sel kell kezdődnie';
-$lang['error_dircreate']       = 'A letöltéshez az ideiglenes könyvtár létrehozása sikertelen';
-$lang['error_download']        = 'A(z) %s fájl letöltése sikertelen';
-$lang['error_decompress']      = 'A letöltött fájlt nem lehet kicsomagolni. Ezt okozhatja a fájl sérülése (ebben az esetben próbáld újra letölteni) vagy egy ismeretlen tömörítési formátum használata (ilyenkor kézzel kell telepítened).';
-$lang['error_findfolder']      = 'A bővítményhez tartozó könyvtárat nem sikerült megállapítani, kézzel kell letöltened és telepítened';
-$lang['error_copy']            = 'Egy fájl másolása közben hiba történt a <em>%s</em> könyvtárban: lehet, hogy a lemez megtelt vagy nincsenek megfelelő írási jogaid. A telepítés megszakadása a modul hibás működését eredményezheti és instabil állapotba hozhatja a wikit';
-$lang['noperms']               = 'A bővítmény könyvtára nem írható';
-$lang['notplperms']            = 'A sablon könyvtára nem írható';
-$lang['nopluginperms']         = 'A modul könyvtára nem írható';
-$lang['git']                   = 'Ezt a bővítményt git-tel telepítették, lehet, hogy nem itt célszerű frissíteni';
-$lang['auth']                  = 'Ez az autentikációs modul nincs engedélyezve a beállításokban, érdemes lehet letiltani.';
-$lang['install_url']           = 'Telepítés erről az URL-ről:';
-$lang['install_upload']        = 'Bővítmény feltöltése:';
-$lang['repo_error']            = 'A modul repository-ja nem érhető el. Bizonyosodj meg róla, hogy a szervereden engedélyezett a www.dokuwiki.org cím elérése és ellenőrizd a proxy beállításaidat!';
-$lang['nossl']                 = 'Úgy tűnik, a PHP konfigurációd nem támogatja az SSL-t. Néhány DokuWiki bővítmény letöltése sikertelen lehet.';
diff --git a/wiki/lib/plugins/extension/lang/it/intro_install.txt b/wiki/lib/plugins/extension/lang/it/intro_install.txt
deleted file mode 100644
index 5106500..0000000
--- a/wiki/lib/plugins/extension/lang/it/intro_install.txt
+++ /dev/null
@@ -1 +0,0 @@
-Qui potete installare manualmente plugin e template, sia caricandoli in upload sia fornendo una URL per scaricarli direttamente.
\ No newline at end of file
diff --git a/wiki/lib/plugins/extension/lang/it/intro_plugins.txt b/wiki/lib/plugins/extension/lang/it/intro_plugins.txt
deleted file mode 100644
index cd7825f..0000000
--- a/wiki/lib/plugins/extension/lang/it/intro_plugins.txt
+++ /dev/null
@@ -1 +0,0 @@
-Questi sono i plugin attualmente installati nel vostro DokuWiki. Qui potete abilitarli o disabilitarli o addirittura disinstallarli completamente. Qui sono mostrati anche gli aggiornamenti dei plugin, assicurativi di leggere la relativa documentazione prima di aggiornarli.
\ No newline at end of file
diff --git a/wiki/lib/plugins/extension/lang/it/intro_search.txt b/wiki/lib/plugins/extension/lang/it/intro_search.txt
deleted file mode 100644
index fb77d36..0000000
--- a/wiki/lib/plugins/extension/lang/it/intro_search.txt
+++ /dev/null
@@ -1 +0,0 @@
-Questa sezione ti da accesso a tutti i plugin e temi di terze parti disponibili per DokuWiki. Sappi che l'installazione di codice di terze parti potrebbe rappresentare un **rischio di sicurezza**, quindi, forse, prima vorresti informarti a proposito della [[doku>security#plugin_security|sicurezza dei plugin]].
\ No newline at end of file
diff --git a/wiki/lib/plugins/extension/lang/it/intro_templates.txt b/wiki/lib/plugins/extension/lang/it/intro_templates.txt
deleted file mode 100644
index a38d868..0000000
--- a/wiki/lib/plugins/extension/lang/it/intro_templates.txt
+++ /dev/null
@@ -1 +0,0 @@
-Questi sono i temi attualmente installati nel tuo DokuWiki. Puoi selezionare il tema da usare in [[?do=admin&page=config|Configurazione Wiki]].
\ No newline at end of file
diff --git a/wiki/lib/plugins/extension/lang/it/lang.php b/wiki/lib/plugins/extension/lang/it/lang.php
deleted file mode 100644
index 3d414a4..0000000
--- a/wiki/lib/plugins/extension/lang/it/lang.php
+++ /dev/null
@@ -1,98 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Francesco <francesco.cavalli@hotmail.com>
- * @author Fabio <fabioslurp@yahoo.it>
- * @author Torpedo <dgtorpedo@gmail.com>
- * @author Maurizio <mcannavo@katamail.com>
- */
-$lang['menu']                  = 'Manager delle Extension';
-$lang['tab_plugins']           = 'Plugin Installati';
-$lang['tab_templates']         = 'Template Installati';
-$lang['tab_search']            = 'Ricerca e Installazione';
-$lang['tab_install']           = 'Installazione Manuale';
-$lang['notimplemented']        = 'Questa funzionalità non è ancora stata implementata';
-$lang['notinstalled']          = 'Questa extension non è installata';
-$lang['alreadyenabled']        = 'Questa extension è già stata abilitata';
-$lang['alreadydisabled']       = 'Questa extension à già stata disabilitata';
-$lang['pluginlistsaveerror']   = 'Si è verificato un errore durante il salvataggio dell\'elenco dei plugin';
-$lang['unknownauthor']         = 'Autore sconosciuto';
-$lang['unknownversion']        = 'Revisione sconosciuta';
-$lang['btn_info']              = 'Mostra maggiori informazioni';
-$lang['btn_update']            = 'Aggiorna';
-$lang['btn_uninstall']         = 'Disinstalla';
-$lang['btn_enable']            = 'Abilita';
-$lang['btn_disable']           = 'Disabilita';
-$lang['btn_install']           = 'Installa';
-$lang['btn_reinstall']         = 'Reinstalla';
-$lang['js']['reallydel']       = 'Sicuro di disinstallare questa estensione?';
-$lang['js']['display_viewoptions'] = 'Opzioni di Visualizzazione:';
-$lang['js']['display_enabled'] = 'abilitato';
-$lang['js']['display_disabled'] = 'disabilitato';
-$lang['js']['display_updatable'] = 'aggiornabile';
-$lang['search_for']            = 'Extension di Ricerca:';
-$lang['search']                = 'Cerca';
-$lang['extensionby']           = '<strong>%s</strong> da %s';
-$lang['screenshot']            = 'Screenshot di %s';
-$lang['popularity']            = 'Popolarità: %s%%';
-$lang['homepage_link']         = 'Documenti';
-$lang['bugs_features']         = 'Bug';
-$lang['tags']                  = 'Tag:';
-$lang['author_hint']           = 'Cerca estensioni per questo autore';
-$lang['installed']             = 'Installato:';
-$lang['downloadurl']           = 'URL download:';
-$lang['repository']            = 'Repository';
-$lang['unknown']               = '<em>sconosciuto</em>';
-$lang['installed_version']     = 'Versione installata';
-$lang['install_date']          = 'Il tuo ultimo aggiornamento:';
-$lang['available_version']     = 'Versione disponibile:';
-$lang['compatible']            = 'Compatibile con:';
-$lang['depends']               = 'Dipende da:';
-$lang['similar']               = 'Simile a:';
-$lang['conflicts']             = 'Conflitto con:';
-$lang['donate']                = 'Simile a questo?';
-$lang['donate_action']         = 'Paga un caffè all\'autore!';
-$lang['repo_retry']            = 'Riprova';
-$lang['provides']              = 'Fornisce:';
-$lang['status']                = 'Status:';
-$lang['status_installed']      = 'installato';
-$lang['status_not_installed']  = 'non installato';
-$lang['status_protected']      = 'protetto';
-$lang['status_enabled']        = 'abilitato';
-$lang['status_disabled']       = 'disabilitato';
-$lang['status_unmodifiable']   = 'inmodificabile';
-$lang['status_plugin']         = 'plugin';
-$lang['status_template']       = 'modello';
-$lang['status_bundled']        = 'accoppiato';
-$lang['msg_enabled']           = 'Plugin %s abilitato';
-$lang['msg_disabled']          = 'Plugin %s disabilitato';
-$lang['msg_delete_success']    = 'Estensione %s disinstallata';
-$lang['msg_delete_failed']     = 'Disinstallazione dell\'Extension %s fallita';
-$lang['msg_template_install_success'] = 'Il template %s è stato installato correttamente';
-$lang['msg_template_update_success'] = 'Il Template %s è stato aggiornato correttamente';
-$lang['msg_plugin_install_success'] = 'Plugin %s installato con successo';
-$lang['msg_plugin_update_success'] = 'Plugin %s aggiornato con successo';
-$lang['msg_upload_failed']     = 'Caricamento del file fallito';
-$lang['missing_dependency']    = '<strong>Dipendenza mancante o disabilitata: </strong> %s';
-$lang['security_issue']        = '<strong>Problema di sicurezza:</strong> %s';
-$lang['security_warning']      = '<strong>Avvertimento di sicurezza:</strong> %s';
-$lang['update_available']      = '<strong>Aggiornamento:</strong> Nuova versione %s disponibile.';
-$lang['wrong_folder']          = '<strong>Plugin non installato correttamente:</strong> rinomina la directory del plugin "%s" in "%s".';
-$lang['url_change']            = '<strong>URL cambiato:</strong> l\'URL per il download è cambiato dall\'ultima volta che è stato utilizzato. Controlla se il nuovo URL è valido prima di aggiornare l\'estensione.<br />Nuovo: %s<br />Vecchio: %s';
-$lang['error_badurl']          = 'URLs deve iniziare con http o https';
-$lang['error_dircreate']       = 'Impossibile creare una cartella temporanea per ricevere il download';
-$lang['error_download']        = 'Impossibile scaricare il file: %s';
-$lang['error_decompress']      = 'Impossibile decomprimere il file scaricato. Ciò può dipendere da errori in fase di download, nel qual caso dovreste ripetere l\'operazione; oppure il formato di compressione è sconosciuto, e in questo caso dovrete scaricare e installare manualmente.';
-$lang['error_findfolder']      = 'Impossibile identificare la directory dell\'extension, dovrete scaricare e installare manualmente';
-$lang['error_copy']            = 'C\'è stato un errore di copia dei file mentre si tentava di copiare i file per la directory <em>%s</em>: il disco potrebbe essere pieno o i pemessi di accesso ai file potrebbero essere sbagliati. Questo potrebbe aver causato una parziale installazione dei plugin lasciando il tuo wiki instabile';
-$lang['noperms']               = 'La directory Extension non è scrivibile';
-$lang['notplperms']            = 'Il modello di cartella non è scrivibile';
-$lang['nopluginperms']         = 'La cartella plugin non è scrivibile';
-$lang['git']                   = 'Questa extension è stata installata da git, potreste non volerla aggiornare qui.';
-$lang['auth']                  = 'Questo plugin di autenticazione non è abilitato nella configurazione, considera di disabilitarlo.';
-$lang['install_url']           = 'Installa da URL:';
-$lang['install_upload']        = 'Caricamento Extension:';
-$lang['repo_error']            = 'Il repository dei plugin non può essere raggiunto. Assicuratevi che il vostro server sia abilitato a contattare l\'indirizzo www.dokuwiki.org e controllate le impostazioni del vostro proxy.';
-$lang['nossl']                 = 'La tua installazione PHP sembra mancare del supporto SSL. I download per molte estensioni di DokuWiki non funzioneranno.';
diff --git a/wiki/lib/plugins/extension/lang/ja/intro_install.txt b/wiki/lib/plugins/extension/lang/ja/intro_install.txt
deleted file mode 100644
index 9f99b82..0000000
--- a/wiki/lib/plugins/extension/lang/ja/intro_install.txt
+++ /dev/null
@@ -1 +0,0 @@
-アップロードã™ã‚‹ã‹ãƒ€ã‚¦ãƒ³ãƒ­ãƒ¼ãƒ‰URLを指定ã—ã¦ã€æ‰‹å‹•ã§ãƒ—ラグインやテンプレートをインストールã§ãã¾ã™ã€‚
diff --git a/wiki/lib/plugins/extension/lang/ja/intro_plugins.txt b/wiki/lib/plugins/extension/lang/ja/intro_plugins.txt
deleted file mode 100644
index b8251c7..0000000
--- a/wiki/lib/plugins/extension/lang/ja/intro_plugins.txt
+++ /dev/null
@@ -1 +0,0 @@
-ã“ã®DokuWikiã«ç¾åœ¨ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã•れã¦ã„るプラグインã§ã™ã€‚ã“れらプラグインを有効化ã€ç„¡åŠ¹åŒ–ã€ã‚¢ãƒ³ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã§ãã¾ã™ã€‚æ›´æ–°ã¯ã§ãã‚‹å ´åˆã®ã¿è¡¨ç¤ºã•れã¾ã™ã€‚æ›´æ–°å‰ã«ã€ãƒ—ラグインã®è§£èª¬ã‚’ãŠèª­ã¿ãã ã•ã„。
\ No newline at end of file
diff --git a/wiki/lib/plugins/extension/lang/ja/intro_search.txt b/wiki/lib/plugins/extension/lang/ja/intro_search.txt
deleted file mode 100644
index 66d977b..0000000
--- a/wiki/lib/plugins/extension/lang/ja/intro_search.txt
+++ /dev/null
@@ -1 +0,0 @@
-ã“ã®ã‚¿ãƒ–ã§ã¯ã€DokuWiki用ã®åˆ©ç”¨å¯èƒ½ãªã™ã¹ã¦ã®ã‚µãƒ¼ãƒ‰ãƒ‘ーティã®ãƒ—ラグインã¨ãƒ†ãƒ³ãƒ—レートã«ã‚¢ã‚¯ã‚»ã‚¹ã§ãã¾ã™ã€‚サードパーティ製ã®ã‚³ãƒ¼ãƒ‰ã«ã¯ã€**セキュリティ上ã®ãƒªã‚¹ã‚¯**ã®å¯èƒ½æ€§ãŒã‚ã‚‹ã“ã¨ã«æ³¨æ„ã—ã¦ãã ã•ã„ã€æœ€åˆã«[[doku>ja:security#プラグインã®ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£|プラグインã®ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£]]を読むã“ã¨ã‚’ãŠå‹§ã‚ã—ã¾ã™ã€‚
\ No newline at end of file
diff --git a/wiki/lib/plugins/extension/lang/ja/intro_templates.txt b/wiki/lib/plugins/extension/lang/ja/intro_templates.txt
deleted file mode 100644
index 5de6d2f..0000000
--- a/wiki/lib/plugins/extension/lang/ja/intro_templates.txt
+++ /dev/null
@@ -1 +0,0 @@
-ã“ã®DokuWikiã«ç¾åœ¨ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã•れã¦ã„るテンプレートã§ã™ã€‚使用ã™ã‚‹ãƒ†ãƒ³ãƒ—レートã¯[[?do=admin&page=config|設定管ç†]]ã§é¸æŠžã§ãã¾ã™ã€‚
\ No newline at end of file
diff --git a/wiki/lib/plugins/extension/lang/ja/lang.php b/wiki/lib/plugins/extension/lang/ja/lang.php
deleted file mode 100644
index 6b3ef67..0000000
--- a/wiki/lib/plugins/extension/lang/ja/lang.php
+++ /dev/null
@@ -1,98 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Hideaki SAWADA <chuno@live.jp>
- * @author PzF_X <jp_minecraft@yahoo.co.jp>
- * @author Satoshi Sahara <sahara.satoshi@gmail.com>
- * @author Ikuo Obataya <i.obataya@gmail.com>
- */
-$lang['menu']                  = '拡張機能管ç†';
-$lang['tab_plugins']           = 'インストール済プラグイン';
-$lang['tab_templates']         = 'インストール済テンプレート';
-$lang['tab_search']            = '検索ã¨ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«';
-$lang['tab_install']           = '手動インストール';
-$lang['notimplemented']        = 'ã“ã®æ©Ÿèƒ½ã¯æœªå®Ÿè£…ã§ã™ã€‚';
-$lang['notinstalled']          = 'ã“ã®æ‹¡å¼µæ©Ÿèƒ½ã¯ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã•れã¦ã„ã¾ã›ã‚“。';
-$lang['alreadyenabled']        = 'ã“ã®æ‹¡å¼µæ©Ÿèƒ½ã¯æœ‰åйã§ã™ã€‚';
-$lang['alreadydisabled']       = 'ã“ã®æ‹¡å¼µæ©Ÿèƒ½ã¯ç„¡åйã§ã™ã€‚';
-$lang['pluginlistsaveerror']   = 'プラグイン一覧ã®ä¿å­˜ä¸­ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚';
-$lang['unknownauthor']         = 'ä½œè€…ä¸æ˜Ž';
-$lang['unknownversion']        = 'ãƒãƒ¼ã‚¸ãƒ§ãƒ³ä¸æ˜Ž';
-$lang['btn_info']              = '詳細情報を表示ã™ã‚‹ã€‚';
-$lang['btn_update']            = 'æ›´æ–°';
-$lang['btn_uninstall']         = 'アンインストール';
-$lang['btn_enable']            = '有効化';
-$lang['btn_disable']           = '無効化';
-$lang['btn_install']           = 'インストール';
-$lang['btn_reinstall']         = 'å†ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«';
-$lang['js']['reallydel']       = 'ã“ã®æ‹¡å¼µæ©Ÿèƒ½ã‚’本当ã«ã‚¢ãƒ³ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã—ã¾ã™ã‹ï¼Ÿ';
-$lang['js']['display_viewoptions'] = '表示オプション: ';
-$lang['js']['display_enabled'] = '有効';
-$lang['js']['display_disabled'] = '無効';
-$lang['js']['display_updatable'] = 'æ›´æ–°å¯èƒ½';
-$lang['search_for']            = 'æ‹¡å¼µæ©Ÿèƒ½ã®æ¤œç´¢ï¼š';
-$lang['search']                = '検索';
-$lang['extensionby']           = '<strong>%s</strong> 作者: %s';
-$lang['screenshot']            = '%s ã®ã‚¹ã‚¯ãƒªãƒ¼ãƒ³ã‚·ãƒ§ãƒƒãƒˆ';
-$lang['popularity']            = '利用状æ³ï¼š%s%%';
-$lang['homepage_link']         = '解説';
-$lang['bugs_features']         = 'ãƒã‚°';
-$lang['tags']                  = 'タグ:';
-$lang['author_hint']           = 'ã“ã®ä½œè€…ã§æ‹¡å¼µæ©Ÿèƒ½ã‚’検索';
-$lang['installed']             = 'インストール済:';
-$lang['downloadurl']           = 'ダウンロード URL:';
-$lang['repository']            = 'リãƒã‚¸ãƒˆãƒªï¼š';
-$lang['unknown']               = '<em>䏿˜Ž</em>';
-$lang['installed_version']     = 'インストール済ãƒãƒ¼ã‚¸ãƒ§ãƒ³ï¼š';
-$lang['install_date']          = '最終更新日:';
-$lang['available_version']     = '利用å¯èƒ½ãƒãƒ¼ã‚¸ãƒ§ãƒ³ï¼š';
-$lang['compatible']            = '互æ›ï¼š';
-$lang['depends']               = 'ä¾å­˜ï¼š';
-$lang['similar']               = '類似:';
-$lang['conflicts']             = 'ç«¶åˆï¼š';
-$lang['donate']                = 'ãŠæ°—ã«å…¥ã‚Šï¼Ÿ';
-$lang['donate_action']         = '寄付先';
-$lang['repo_retry']            = 'å†å®Ÿè¡Œ';
-$lang['provides']              = 'æä¾›ï¼š';
-$lang['status']                = '状態:';
-$lang['status_installed']      = 'インストール済';
-$lang['status_not_installed']  = '未インストール';
-$lang['status_protected']      = 'ä¿è­·ã•れã¦ã„ã¾ã™';
-$lang['status_enabled']        = '有効';
-$lang['status_disabled']       = '無効';
-$lang['status_unmodifiable']   = '編集ä¸å¯';
-$lang['status_plugin']         = 'プラグイン';
-$lang['status_template']       = 'テンプレート';
-$lang['status_bundled']        = 'åŒæ¢±';
-$lang['msg_enabled']           = '%s プラグインを有効化ã—ã¾ã—ãŸã€‚';
-$lang['msg_disabled']          = '%s プラグインを無効化ã—ã¾ã—ãŸã€‚';
-$lang['msg_delete_success']    = '拡張機能 %s をアンインストールã—ã¾ã—ãŸã€‚';
-$lang['msg_delete_failed']     = '拡張機能 %s ã®ã‚¢ãƒ³ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã«å¤±æ•—ã—ã¾ã—ãŸã€‚';
-$lang['msg_template_install_success'] = '%s テンプレートをインストールã§ãã¾ã—ãŸã€‚';
-$lang['msg_template_update_success'] = '%s テンプレートを更新ã§ãã¾ã—ãŸã€‚';
-$lang['msg_plugin_install_success'] = '%s プラグインをインストールã§ãã¾ã—ãŸã€‚';
-$lang['msg_plugin_update_success'] = '%s プラグインを更新ã§ãã¾ã—ãŸã€‚';
-$lang['msg_upload_failed']     = 'ファイルã®ã‚¢ãƒƒãƒ—ロードã«å¤±æ•—ã—ã¾ã—ãŸã€‚';
-$lang['missing_dependency']    = '<strong>ä¾å­˜é–¢ä¿‚ãŒæ¬ è½ã¾ãŸã¯ç„¡åŠ¹ï¼š</strong> %s';
-$lang['security_issue']        = '<strong>セキュリティå•題:</strong> %s';
-$lang['security_warning']      = '<strong>セキュリティ警告:</strong> %s';
-$lang['update_available']      = '<strong>更新:</strong> %sã®æ–°ãƒãƒ¼ã‚¸ãƒ§ãƒ³ãŒåˆ©ç”¨å¯èƒ½ã§ã™ã€‚';
-$lang['wrong_folder']          = '<strong>ãƒ—ãƒ©ã‚°ã‚¤ãƒ³ã¯æ­£ã—ãインストールã•れã¾ã›ã‚“ã§ã—ãŸï¼š</strong> プラグインã®ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã‚’ "%s" ã‹ã‚‰ "%s" ã¸å¤‰æ›´ã—ã¦ä¸‹ã•ã„。';
-$lang['url_change']            = '<strong>URL ãŒå¤‰æ›´ã•れã¾ã—ãŸï¼š</strong> 最後ã«ãƒ€ã‚¦ãƒ³ãƒ­ãƒ¼ãƒ‰ã—ãŸå¾Œã€ãƒ€ã‚¦ãƒ³ãƒ­ãƒ¼ãƒ‰ URL ãŒå¤‰æ›´ã•れã¾ã—ãŸã€‚拡張機能ã®ã‚¢ãƒƒãƒ—デートå‰ã«æ–° URL ãŒæ­£ã—ã„ã‹ã‚’確èªã—ã¦ä¸‹ã•ã„。<br />新:%s<br />旧:%s';
-$lang['error_badurl']          = 'URLã¯httpã‹httpsã§å§‹ã¾ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚';
-$lang['error_dircreate']       = 'ダウンロード用ã®ä¸€æ™‚フォルダãŒä½œæˆã§ãã¾ã›ã‚“。';
-$lang['error_download']        = 'ファイルをダウンロードã§ãã¾ã›ã‚“:%s';
-$lang['error_decompress']      = 'ダウンロードã—ãŸãƒ•ァイルを解å‡ã§ãã¾ã›ã‚“。ダウンロードã®å¤±æ•—ã®çµæžœã§ã‚れã°ã€å†åº¦è©¦ã—ã¦ä¸‹ã•ã„。圧縮形å¼ãŒä¸æ˜Žã®å ´åˆã¯ã€æ‰‹å‹•ã§ãƒ€ã‚¦ãƒ³ãƒ­ãƒ¼ãƒ‰ãƒ»ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã—ã¦ãã ã•ã„。';
-$lang['error_findfolder']      = '拡張機能ディレクトリをèªè­˜ã§ãã¾ã›ã‚“。手動ã§ãƒ€ã‚¦ãƒ³ãƒ­ãƒ¼ãƒ‰ãƒ»ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã—ã¦ãã ã•ã„。';
-$lang['error_copy']            = '<em>%s</em> ディレクトリã®ãƒ•ァイルをインストールã—よã†ã¨ã—ãŸæ™‚ã€ãƒ•ァイルコピーエラーãŒç™ºç”Ÿã—ã¾ã—ãŸï¼šãƒ‡ã‚£ã‚¹ã‚¯ãŒã„ã£ã±ã„ã‹ã‚‚ã—れã¾ã›ã‚“ã—ã€ãƒ•ァイルã®ã‚¢ã‚¯ã‚»ã‚¹æ¨©ãŒæ­£ã—ããªã„ã‹ã‚‚ã—れã¾ã›ã‚“。プラグインãŒä¸€éƒ¨åˆ†ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã•れã€wiki ãŒä¸å®‰å®šã«ãªã‚‹ã‹ã‚‚ã—れã¾ã›ã‚“。';
-$lang['noperms']               = 'æ‹¡å¼µæ©Ÿèƒ½ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªãŒæ›¸ãè¾¼ã¿ä¸å¯ã§ã™ã€‚';
-$lang['notplperms']            = 'ãƒ†ãƒ³ãƒ—ãƒ¬ãƒ¼ãƒˆãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªãŒæ›¸ãè¾¼ã¿ä¸å¯ã§ã™ã€‚';
-$lang['nopluginperms']         = 'ãƒ—ãƒ©ã‚°ã‚¤ãƒ³ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªãŒæ›¸ãè¾¼ã¿ä¸å¯ã§ã™ã€‚';
-$lang['git']                   = 'ã“ã®æ‹¡å¼µæ©Ÿèƒ½ã¯ Git 経由ã§ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã•れã¦ãŠã‚Šã€ã“ã“ã§æ›´æ–°ã™ã¹ãã§ãªã„ã‹ã‚‚ã—れã¾ã›ã‚“。';
-$lang['auth']                  = 'ã“ã®èªè¨¼ãƒ—ラグインã¯è¨­å®šç®¡ç†ç”»é¢ã§ç„¡åŠ¹åŒ–ã•れã¦ã„ã¾ã™ã€‚';
-$lang['install_url']           = 'URL ã‹ã‚‰ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ï¼š';
-$lang['install_upload']        = '拡張機能をアップロード:';
-$lang['repo_error']            = 'プラグインã®ãƒªãƒã‚¸ãƒˆãƒªã«æŽ¥ç¶šã§ãã¾ã›ã‚“。サーãƒãƒ¼ãŒ www.dokuwiki.org ã«æŽ¥ç¶šã§ãã‚‹ã“ã¨ã‚„プロキシã®è¨­å®šã‚’確èªã—ã¦ä¸‹ã•ã„。';
-$lang['nossl']                 = 'PHP機能ãŒSSLをサãƒãƒ¼ãƒˆã—ã¦ã„ãªã„ãŸã‚ã€æ‹¡å¼µæ©Ÿèƒ½ã®ãƒ€ã‚¦ãƒ³ãƒ­ãƒ¼ãƒ‰ãŒæ­£å¸¸ã«å‹•作ã—ã¾ã›ã‚“。';
diff --git a/wiki/lib/plugins/extension/lang/ko/intro_install.txt b/wiki/lib/plugins/extension/lang/ko/intro_install.txt
deleted file mode 100644
index 269df29..0000000
--- a/wiki/lib/plugins/extension/lang/ko/intro_install.txt
+++ /dev/null
@@ -1 +0,0 @@
-ì—¬ê¸°ì— í”ŒëŸ¬ê·¸ì¸ê³¼ í…œí”Œë¦¿ì„ ìˆ˜ë™ìœ¼ë¡œ 올리거나 ì§ì ‘ 다운로드 URLì„ ì œê³µí•˜ì—¬ 수ë™ìœ¼ë¡œ 설치할 수 있습니다.
\ No newline at end of file
diff --git a/wiki/lib/plugins/extension/lang/ko/intro_plugins.txt b/wiki/lib/plugins/extension/lang/ko/intro_plugins.txt
deleted file mode 100644
index 9ac7a3d..0000000
--- a/wiki/lib/plugins/extension/lang/ko/intro_plugins.txt
+++ /dev/null
@@ -1 +0,0 @@
-ë„ì¿ ìœ„í‚¤ì— í˜„ìž¬ ì„¤ì¹˜ëœ í”ŒëŸ¬ê·¸ì¸ìž…니다. 여기ì—서 플러그ì¸ì„ 활성화 ë˜ëŠ” 비활성화하거나 심지어 완전히 제거할 수 있습니다. ë˜í•œ í”ŒëŸ¬ê·¸ì¸ ì—…ë°ì´íŠ¸ëŠ” ì—¬ê¸°ì— ë³´ì—¬ì§‘ë‹ˆë‹¤. ì—…ë°ì´íŠ¸í•˜ê¸° ì „ì— í”ŒëŸ¬ê·¸ì¸ì˜ 설명문서를 ì½ìœ¼ì‹­ì‹œì˜¤.
\ No newline at end of file
diff --git a/wiki/lib/plugins/extension/lang/ko/intro_search.txt b/wiki/lib/plugins/extension/lang/ko/intro_search.txt
deleted file mode 100644
index b676026..0000000
--- a/wiki/lib/plugins/extension/lang/ko/intro_search.txt
+++ /dev/null
@@ -1 +0,0 @@
-ì´ íƒ­ì€ ë„쿠위키를 위한 사용할 수 있는 모든 타사 플러그ì¸ê³¼ í…œí”Œë¦¿ì— ì ‘ê·¼í•˜ë„ë¡ ì œê³µí•©ë‹ˆë‹¤. 타사 코드를 설치하면 **보안 ìœ„í—˜ì— ë…¸ì¶œ**ë  ìˆ˜ 있ìŒì„ 유ì˜í•˜ì‹­ì‹œì˜¤, 먼저 [[doku>security#plugin_security|í”ŒëŸ¬ê·¸ì¸ ë³´ì•ˆ]]ì— ëŒ€í•´ ì½ì„ 수 있습니다.
\ No newline at end of file
diff --git a/wiki/lib/plugins/extension/lang/ko/intro_templates.txt b/wiki/lib/plugins/extension/lang/ko/intro_templates.txt
deleted file mode 100644
index d4320b8..0000000
--- a/wiki/lib/plugins/extension/lang/ko/intro_templates.txt
+++ /dev/null
@@ -1 +0,0 @@
-ë„ì¿ ìœ„í‚¤ì— í˜„ìž¬ ì„¤ì¹˜ëœ í…œí”Œë¦¿ìž…ë‹ˆë‹¤. [[?do=admin&page=config|환경 설정 관리ìž]]ì—서 사용하는 í…œí”Œë¦¿ì„ ì„ íƒí•  수 있습니다.
\ No newline at end of file
diff --git a/wiki/lib/plugins/extension/lang/ko/lang.php b/wiki/lib/plugins/extension/lang/ko/lang.php
deleted file mode 100644
index 50ec739..0000000
--- a/wiki/lib/plugins/extension/lang/ko/lang.php
+++ /dev/null
@@ -1,97 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Young gon Cha <garmede@gmail.com>
- * @author Myeongjin <aranet100@gmail.com>
- * @author hyeonsoft <hyeonsoft@live.co.kr>
- */
-$lang['menu']                  = '확장 기능 관리ìž';
-$lang['tab_plugins']           = 'ì„¤ì¹˜ëœ í”ŒëŸ¬ê·¸ì¸';
-$lang['tab_templates']         = 'ì„¤ì¹˜ëœ í…œí”Œë¦¿';
-$lang['tab_search']            = '검색하고 설치';
-$lang['tab_install']           = 'ìˆ˜ë™ ì„¤ì¹˜';
-$lang['notimplemented']        = 'ì´ ê¸°ëŠ¥ì€ ì•„ì§ êµ¬í˜„ë˜ì§€ 않았습니다';
-$lang['notinstalled']          = 'ì´ í™•ìž¥ ê¸°ëŠ¥ì€ ì„¤ì¹˜ë˜ì–´ 있지 않습니다';
-$lang['alreadyenabled']        = 'ì´ í™•ìž¥ ê¸°ëŠ¥ì´ ì´ë¯¸ 활성화ë˜ì–´ 있습니다';
-$lang['alreadydisabled']       = 'ì´ í™•ìž¥ ê¸°ëŠ¥ì´ ì´ë¯¸ 비활성화ë˜ì–´ 있습니다';
-$lang['pluginlistsaveerror']   = 'í”ŒëŸ¬ê·¸ì¸ ëª©ë¡ì„ 저장하는 중 오류가 있었습니다';
-$lang['unknownauthor']         = '알 수 없는 ì €ìž';
-$lang['unknownversion']        = '알 수 없는 버전';
-$lang['btn_info']              = 'ì •ë³´ ë” ë³´ê¸°';
-$lang['btn_update']            = 'ì—…ë°ì´íЏ';
-$lang['btn_uninstall']         = '제거';
-$lang['btn_enable']            = '활성화';
-$lang['btn_disable']           = '비활성화';
-$lang['btn_install']           = '설치';
-$lang['btn_reinstall']         = '다시 설치';
-$lang['js']['reallydel']       = 'ì •ë§ ì´ í™•ìž¥ ê¸°ëŠ¥ì„ ì œê±°í•˜ê² ìŠµë‹ˆê¹Œ?';
-$lang['js']['display_viewoptions'] = '보기 옵션:';
-$lang['js']['display_enabled'] = '활성화ë¨';
-$lang['js']['display_disabled'] = '비활성화ë¨';
-$lang['js']['display_updatable'] = 'ì—…ë°ì´íŠ¸í•  수 있ìŒ';
-$lang['search_for']            = '확장 기능 검색:';
-$lang['search']                = '검색';
-$lang['extensionby']           = '<strong>%s</strong> (ì €ìž %s)';
-$lang['screenshot']            = '%sì˜ ìŠ¤í¬ë¦°ìƒ·';
-$lang['popularity']            = 'ì¸ê¸°: %s%%';
-$lang['homepage_link']         = '문서';
-$lang['bugs_features']         = '버그';
-$lang['tags']                  = '태그:';
-$lang['author_hint']           = 'ì´ ì €ìžë¡œ 확장 기능 검색';
-$lang['installed']             = '설치ë¨:';
-$lang['downloadurl']           = '다운로드 URL:';
-$lang['repository']            = '저장소:';
-$lang['unknown']               = '<em>알 수 ì—†ìŒ</em>';
-$lang['installed_version']     = 'ì„¤ì¹˜ëœ ë²„ì „:';
-$lang['install_date']          = '마지막 ì—…ë°ì´íЏ:';
-$lang['available_version']     = '가능한 버전:';
-$lang['compatible']            = '다ìŒê³¼ì˜ 호환성:';
-$lang['depends']               = '다ìŒì— ì˜ì¡´:';
-$lang['similar']               = '다ìŒê³¼ 비슷:';
-$lang['conflicts']             = '다ìŒê³¼ ì¶©ëŒ:';
-$lang['donate']                = 'ì´ê²ƒì´ 좋나요?';
-$lang['donate_action']         = 'ì €ìžì—게 커피를 사주세요!';
-$lang['repo_retry']            = '다시 시ë„';
-$lang['provides']              = '제공:';
-$lang['status']                = 'ìƒíƒœ:';
-$lang['status_installed']      = '설치ë¨';
-$lang['status_not_installed']  = '설치ë˜ì§€ 않ìŒ';
-$lang['status_protected']      = '보호ë¨';
-$lang['status_enabled']        = '활성화ë¨';
-$lang['status_disabled']       = '비활성화ë¨';
-$lang['status_unmodifiable']   = '수정할 수 ì—†ìŒ';
-$lang['status_plugin']         = '플러그ì¸';
-$lang['status_template']       = '템플릿';
-$lang['status_bundled']        = 'í¬í•¨';
-$lang['msg_enabled']           = '%s 플러그ì¸ì´ 활성화ë˜ì—ˆìŠµë‹ˆë‹¤';
-$lang['msg_disabled']          = '%s 플러그ì¸ì´ 비활성화ë˜ì—ˆìŠµë‹ˆë‹¤';
-$lang['msg_delete_success']    = '%s 확장 ê¸°ëŠ¥ì´ ì œê±°ë˜ì—ˆìŠµë‹ˆë‹¤';
-$lang['msg_delete_failed']     = '%s 확장 기능 ì œê±°ì— ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤';
-$lang['msg_template_install_success'] = '%s í…œí”Œë¦¿ì„ ì„±ê³µì ìœ¼ë¡œ 설치했습니다';
-$lang['msg_template_update_success'] = '%s í…œí”Œë¦¿ì„ ì„±ê³µì ìœ¼ë¡œ ì—…ë°ì´íŠ¸í–ˆìŠµë‹ˆë‹¤';
-$lang['msg_plugin_install_success'] = '%s 플러그ì¸ì„ 성공ì ìœ¼ë¡œ 설치했습니다';
-$lang['msg_plugin_update_success'] = '%s 플러그ì¸ì„ 성공ì ìœ¼ë¡œ ì—…ë°ì´íŠ¸í–ˆìŠµë‹ˆë‹¤';
-$lang['msg_upload_failed']     = 'íŒŒì¼ ì˜¬ë¦¬ê¸°ì— ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤';
-$lang['missing_dependency']    = '<strong>ì˜ì¡´ì„±ì„ 잃었거나 비활성화ë˜ì–´ 있습니다:</strong> %s';
-$lang['security_issue']        = '<strong>보안 문제:</strong> %s';
-$lang['security_warning']      = '<strong>보안 경고:</strong> %s';
-$lang['update_available']      = '<strong>ì—…ë°ì´íЏ:</strong> 새 버전 %s(ì„)를 사용할 수 있습니다.';
-$lang['wrong_folder']          = '<strong>플러그ì¸ì´ 올바르지 않게 설치ë¨:</strong> í”ŒëŸ¬ê·¸ì¸ ë””ë ‰í„°ë¦¬ë¥¼ "%s"ì—서 "%s"로 ì´ë¦„ì„ ë°”ê¾¸ì„¸ìš”.';
-$lang['url_change']            = '<strong>URLì´ ë°”ë€œ:</strong> 다운로드 URLì´ ìµœì‹  다운로드 ì´ëž˜ë¡œ 바뀌었습니다. 확장 ê¸°ëŠ¥ì„ ì—…ë°ì´íŠ¸í•˜ê¸° ì „ì— ìƒˆ URLì´ ì˜¬ë°”ë¥¸ì§€ 확ì¸í•˜ì„¸ìš”.<br />새 URL: %s<br />ì˜¤ëž˜ëœ URL: %s';
-$lang['error_badurl']          = 'URLì€ http나 https로 시작해야 합니다';
-$lang['error_dircreate']       = '다운로드를 ë°›ì„ ìž„ì‹œ í´ë”를 만들 수 없습니다';
-$lang['error_download']        = '파ì¼ì„ 다운로드할 수 없습니다: %s';
-$lang['error_decompress']      = '다운로드한 파ì¼ì˜ ì••ì¶•ì„ í’€ 수 없습니다. ì´ëŠ” ì•„ë§ˆë„ ìž˜ëª»ëœ ë‹¤ìš´ë¡œë“œì˜ ê²°ê³¼ë¡œ, ì´ëŸ´ 경우 다시 시ë„해야 합니다; ë˜ëŠ” ì••ì¶• 형ì‹ì„ 알 수 없으며, ì´ëŸ´ 경우 수ë™ìœ¼ë¡œ 다운로드하고 설치해야 합니다.';
-$lang['error_findfolder']      = '확장 기능 디렉터리를 ì‹ë³„í•  수 없습니다, 수ë™ìœ¼ë¡œ 다운로드하고 설치해야 합니다';
-$lang['error_copy']            = '<em>%s</em> ë””ë ‰í„°ë¦¬ì— íŒŒì¼ì„ 설치하는 ë™ì•ˆ íŒŒì¼ ë³µì‚¬ 오류가 ë°œìƒí–ˆìŠµë‹ˆë‹¤: 디스í¬ê°€ 꽉 찼거나 íŒŒì¼ ì ‘ê·¼ ê¶Œí•œì´ ìž˜ëª»ë˜ì—ˆì„ ìˆ˜ë„ ìžˆìŠµë‹ˆë‹¤. 플러그ì¸ì´ 부분ì ìœ¼ë¡œ 설치ë˜ì–´ 위키가 ë¶ˆì•ˆì •í• ì§€ë„ ëª¨ë¦…ë‹ˆë‹¤';
-$lang['noperms']               = '확장 기능 ë””ë ‰í„°ë¦¬ì— ì“¸ 수 없습니다';
-$lang['notplperms']            = '임시 ë””ë ‰í„°ë¦¬ì— ì“¸ 수 없습니다';
-$lang['nopluginperms']         = 'í”ŒëŸ¬ê·¸ì¸ ë””ë ‰í„°ë¦¬ì— ì“¸ 수 없습니다';
-$lang['git']                   = 'ì´ í™•ìž¥ ê¸°ëŠ¥ì€ git를 통해 설치ë˜ì—ˆìœ¼ë©°, 여기ì—서 ì—…ë°ì´íŠ¸í•  수 ì—†ì„ ìˆ˜ 있습니다.';
-$lang['auth']                  = 'ì´ ì¸ì¦ 플러그ì¸ì€ 환경 설정ì—서 활성화할 수 없습니다, ê·¸ê²ƒì„ ë¹„í™œì„±í™”í•˜ëŠ” ê²ƒì„ ê³ ë ¤í•˜ì„¸ìš”.';
-$lang['install_url']           = 'URLì—서 설치:';
-$lang['install_upload']        = '확장 기능 올리기:';
-$lang['repo_error']            = 'í”ŒëŸ¬ê·¸ì¸ ì €ìž¥ì†Œì— ì—°ê²°í•  수 없습니다. 서버가 www.dokuwiki.orgì— ì—°ê²°í•  수 있는지 확ì¸í•˜ê³  프ë¡ì‹œ ì„¤ì •ì„ í™•ì¸í•˜ì„¸ìš”.';
-$lang['nossl']                 = 'PHPê°€ SSL ì§€ì›ì„ 하지 않는 것으로 보입니다. ë§Žì€ ë„쿠위키 확장 ê¸°ëŠ¥ì˜ ë‹¤ìš´ë¡œë“œê°€ ìž‘ë™í•˜ì§€ ì•Šì„ ê²ƒìž…ë‹ˆë‹¤.';
diff --git a/wiki/lib/plugins/extension/lang/lv/intro_templates.txt b/wiki/lib/plugins/extension/lang/lv/intro_templates.txt
deleted file mode 100644
index 1014c7c..0000000
--- a/wiki/lib/plugins/extension/lang/lv/intro_templates.txt
+++ /dev/null
@@ -1 +0,0 @@
-DokuWiki ir instalÄ“ti Å¡Ädi Å¡abloni. Lietojamo Å¡ablonu var norÄdÄ«t  [[?do=admin&page=config|KonfigurÄcijas lapÄ]].
\ No newline at end of file
diff --git a/wiki/lib/plugins/extension/lang/lv/lang.php b/wiki/lib/plugins/extension/lang/lv/lang.php
deleted file mode 100644
index b3e5ce0..0000000
--- a/wiki/lib/plugins/extension/lang/lv/lang.php
+++ /dev/null
@@ -1,8 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Aivars Miška <allefm@gmail.com>
- */
-$lang['msg_delete_success']    = 'PapildinÄjums %s atinstalÄ“ts';
diff --git a/wiki/lib/plugins/extension/lang/nl/intro_install.txt b/wiki/lib/plugins/extension/lang/nl/intro_install.txt
deleted file mode 100644
index 6a0b410..0000000
--- a/wiki/lib/plugins/extension/lang/nl/intro_install.txt
+++ /dev/null
@@ -1 +0,0 @@
-Hier kunt u handmatig plugins en templates installeren door deze te uploaden of door een directe download URL op te geven.
\ No newline at end of file
diff --git a/wiki/lib/plugins/extension/lang/nl/intro_plugins.txt b/wiki/lib/plugins/extension/lang/nl/intro_plugins.txt
deleted file mode 100644
index e12bdf0..0000000
--- a/wiki/lib/plugins/extension/lang/nl/intro_plugins.txt
+++ /dev/null
@@ -1 +0,0 @@
-Dit zijn de momenteel in uw Dokuwiki geïnstalleerde plugins. U kunt deze hier aan of uitschakelen danwel geheel deïnstalleren. Plugin updates zijn hier ook opgenomen, lees de plugin documentatie voordat u update.
\ No newline at end of file
diff --git a/wiki/lib/plugins/extension/lang/nl/intro_search.txt b/wiki/lib/plugins/extension/lang/nl/intro_search.txt
deleted file mode 100644
index f0c8d74..0000000
--- a/wiki/lib/plugins/extension/lang/nl/intro_search.txt
+++ /dev/null
@@ -1 +0,0 @@
-Deze tab verschaft u toegang tot alle plugins en templates vervaardigd door derden en bestemd voor Dokuwiki. Houdt er rekening mee dat indien u Plugins van derden installeert deze een **veiligheids risico ** kunnen bevatten, geadviseerd wordt om eerst te lezen [[doku>security#plugin_security|plugin security]].
\ No newline at end of file
diff --git a/wiki/lib/plugins/extension/lang/nl/intro_templates.txt b/wiki/lib/plugins/extension/lang/nl/intro_templates.txt
deleted file mode 100644
index 52c96ce..0000000
--- a/wiki/lib/plugins/extension/lang/nl/intro_templates.txt
+++ /dev/null
@@ -1 +0,0 @@
-Deze templates zijn thans in DokuWiki geïnstalleerd. U kunt een template selecteren middels [[?do=admin&page=config|Configuration Manager]] .
\ No newline at end of file
diff --git a/wiki/lib/plugins/extension/lang/nl/lang.php b/wiki/lib/plugins/extension/lang/nl/lang.php
deleted file mode 100644
index 4fe8359..0000000
--- a/wiki/lib/plugins/extension/lang/nl/lang.php
+++ /dev/null
@@ -1,101 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Rene <wllywlnt@yahoo.com>
- * @author Gerrit Uitslag <klapinklapin@gmail.com>
- * @author Johan Vervloet <johan.vervloet@gmail.com>
- * @author Mijndert <mijndert@mijndertstuij.nl>
- * @author Johan Wijnker <johan@wijnker.eu>
- * @author Mark C. Prins <mprins@users.sf.net>
- * @author hugo smet <hugo.smet@scarlet.be>
- */
-$lang['menu']                  = 'Uitbreidingen';
-$lang['tab_plugins']           = 'Geïnstalleerde Plugins';
-$lang['tab_templates']         = 'Geïnstalleerde Templates';
-$lang['tab_search']            = 'Zoek en installeer';
-$lang['tab_install']           = 'Handmatige installatie';
-$lang['notimplemented']        = 'Deze toepassing is nog niet geïnstalleerd';
-$lang['notinstalled']          = 'Deze uitbreiding is nog niet geïnstalleerd';
-$lang['alreadyenabled']        = 'Deze uitbreiding is reeds ingeschakeld';
-$lang['alreadydisabled']       = 'Deze uitbreiding is reeds uitgeschakeld';
-$lang['pluginlistsaveerror']   = 'Fout bij het opslaan van de plugin lijst';
-$lang['unknownauthor']         = 'Onbekende auteur';
-$lang['unknownversion']        = 'Onbekende versie';
-$lang['btn_info']              = 'Toon meer informatie';
-$lang['btn_update']            = 'Update';
-$lang['btn_uninstall']         = 'Deinstalleer';
-$lang['btn_enable']            = 'Schakel aan';
-$lang['btn_disable']           = 'Schakel uit';
-$lang['btn_install']           = 'Installeer';
-$lang['btn_reinstall']         = 'Her-installeer';
-$lang['js']['reallydel']       = 'Wilt u deze uitbreiding deinstalleren?';
-$lang['js']['display_viewoptions'] = 'Weergave opties:';
-$lang['js']['display_enabled'] = 'ingeschakeld';
-$lang['js']['display_disabled'] = 'uitgeschakeld';
-$lang['js']['display_updatable'] = 'update beschikbaar';
-$lang['search_for']            = 'Zoek Uitbreiding:';
-$lang['search']                = 'Zoek';
-$lang['extensionby']           = '<strong>%s</strong> by %s';
-$lang['screenshot']            = 'Schermafdruk bij %s';
-$lang['popularity']            = 'Populariteit: %s%%';
-$lang['homepage_link']         = 'Documentatie';
-$lang['bugs_features']         = 'Bugs';
-$lang['tags']                  = 'Tags:';
-$lang['author_hint']           = 'Zoek uitbreidingen van deze auteur:';
-$lang['installed']             = 'Geinstalleerd:';
-$lang['downloadurl']           = 'Download URL:';
-$lang['repository']            = 'Centrale opslag:';
-$lang['unknown']               = '<em>onbekend</em>';
-$lang['installed_version']     = 'Geïnstalleerde versie:';
-$lang['install_date']          = 'Uw laatste update:';
-$lang['available_version']     = 'Beschikbare versie:';
-$lang['compatible']            = 'Compatible met:';
-$lang['depends']               = 'Afhankelijk van:';
-$lang['similar']               = 'Soortgelijk:';
-$lang['conflicts']             = 'Conflicteerd met:';
-$lang['donate']                = 'Vindt u dit leuk?';
-$lang['donate_action']         = 'Koop een kop koffie voor de auteur!';
-$lang['repo_retry']            = 'Herhaal';
-$lang['provides']              = 'Zorgt voor:';
-$lang['status']                = 'Status:';
-$lang['status_installed']      = 'Geïnstalleerd';
-$lang['status_not_installed']  = 'niet geïnstalleerd ';
-$lang['status_protected']      = 'beschermd';
-$lang['status_enabled']        = 'ingeschakeld';
-$lang['status_disabled']       = 'uitgeschakeld';
-$lang['status_unmodifiable']   = 'Niet wijzigbaar';
-$lang['status_plugin']         = 'plugin';
-$lang['status_template']       = 'template';
-$lang['status_bundled']        = 'Gebundeld';
-$lang['msg_enabled']           = 'Plugin %s ingeschakeld';
-$lang['msg_disabled']          = 'Plugin %s uitgeschakeld';
-$lang['msg_delete_success']    = 'Uitbreiding %s gedeinstalleerd';
-$lang['msg_delete_failed']     = 'Het deïnstalleren van de extensie %s is mislukt.';
-$lang['msg_template_install_success'] = 'Template %s werd succesvol geïnstalleerd';
-$lang['msg_template_update_success'] = 'Template %s werd succesvol geüpdatet';
-$lang['msg_plugin_install_success'] = 'Plugin %s werd succesvol geïnstalleerd';
-$lang['msg_plugin_update_success'] = 'Plugin %s werd succesvol geüpdatet';
-$lang['msg_upload_failed']     = 'Uploaden van het bestand is mislukt';
-$lang['missing_dependency']    = '<strong>niet aanwezige of uitgeschakelde afhankelijkheid</strong> %s';
-$lang['security_issue']        = '<strong>Veiligheids kwestie:</strong> %s';
-$lang['security_warning']      = '<strong>Veiligheids Waarschuwing</strong> %s';
-$lang['update_available']      = '<strong>Update:</strong> Nieuwe versie %s is beschikbaar.';
-$lang['wrong_folder']          = '<strong>Plugin onjuist geïnstalleerd:</strong> Hernoem de plugin directory van "%s" naar "%s"';
-$lang['url_change']            = '<strong>URL gewijzigd:</strong> Download URL is gewijzigd sinds de laatste download. Controleer of de nieuwe URL juist is voordat u de uitbreiding updatet. <br />Nieuw:%s<Br /> Vorig: %s';
-$lang['error_badurl']          = 'URLs moeten beginnen met http of https';
-$lang['error_dircreate']       = 'De tijdelijke map kon niet worden gemaakt om de download te ontvangen';
-$lang['error_download']        = 'Het is niet mogelijk het bestand te downloaden: %s';
-$lang['error_decompress']      = 'Onmogelijk om het gedownloade bestand uit te pakken. Dit is wellicht het gevolg van een onvolledige/onjuiste download, in welk geval u het nog eens moet proberen; of het compressie formaat is onbekend in welk geval u het bestand handmatig moet downloaden en installeren.';
-$lang['error_findfolder']      = 'Onmogelijk om de uitbreidings directory te vinden, u moet het zelf downloaden en installeren';
-$lang['error_copy']            = 'Er was een bestand kopieer fout tijdens het installeren van bestanden in directory <em>%s</em>: de schijf kan vol zijn of de bestand toegangs rechten kunnen onjuist zijn. Dit kan tot gevolg hebben dat de plugin slechts gedeeltelijk werd geïnstalleerd waardoor uw wiki installatie onstabiel is ';
-$lang['noperms']               = 'Uitbreidings directory is niet schrijfbaar';
-$lang['notplperms']            = 'Template directory is niet schrijfbaar';
-$lang['nopluginperms']         = 'Plugin directory is niet schrijfbaar';
-$lang['git']                   = 'De uitbreiding werd geïnstalleerd via git, u wilt deze hier wellicht niet aanpassen.';
-$lang['auth']                  = 'Deze auth plugin is niet geactiveerd in de configuratie, overweeg het om uit te schakelen.';
-$lang['install_url']           = 'Installeer vanaf URL:';
-$lang['install_upload']        = 'Upload Uitbreiding:';
-$lang['repo_error']            = 'Er kon geen verbinding worden gemaakt met de centrale plugin opslag. Controleer of de server verbinding mag maken met www.dokuwiki.org en controleer de proxy instellingen.';
-$lang['nossl']                 = 'Je PHP mist SSL ondersteuning. Downloaden werkt niet met veel DokuWiki extensies.';
diff --git a/wiki/lib/plugins/extension/lang/no/intro_install.txt b/wiki/lib/plugins/extension/lang/no/intro_install.txt
deleted file mode 100644
index 6453cae..0000000
--- a/wiki/lib/plugins/extension/lang/no/intro_install.txt
+++ /dev/null
@@ -1 +0,0 @@
-Her kan du manuellt installere programtillegg eller maler, enten ved å laste de opp, eller ved å skrive inn nettadressen til utvidelsen
\ No newline at end of file
diff --git a/wiki/lib/plugins/extension/lang/no/intro_plugins.txt b/wiki/lib/plugins/extension/lang/no/intro_plugins.txt
deleted file mode 100644
index e9e34d1..0000000
--- a/wiki/lib/plugins/extension/lang/no/intro_plugins.txt
+++ /dev/null
@@ -1 +0,0 @@
-Her finner du de programtillegg som er installert i din DokuWiki. Du kan slå av/på, eller avistallere dine programtillegg her. Oppdatering av programtillegg vil også vises her, men du bør lese dokumentasjonen for disse før du oppdaterere.
\ No newline at end of file
diff --git a/wiki/lib/plugins/extension/lang/no/intro_search.txt b/wiki/lib/plugins/extension/lang/no/intro_search.txt
deleted file mode 100644
index d139fe9..0000000
--- a/wiki/lib/plugins/extension/lang/no/intro_search.txt
+++ /dev/null
@@ -1 +0,0 @@
-Denne fanen gir deg tillgang til alle tilgjengelige tredjeparts programtillegg og maler for DokuWiki. Merk at det å installere tillegg fra tredjepart kan innebære en **sikerhetsrisiko**. Les mer om [[doku>security#plugin_security|sikkerhet og tillegg ]] før installasjon av disse.
\ No newline at end of file
diff --git a/wiki/lib/plugins/extension/lang/no/intro_templates.txt b/wiki/lib/plugins/extension/lang/no/intro_templates.txt
deleted file mode 100644
index 0649620..0000000
--- a/wiki/lib/plugins/extension/lang/no/intro_templates.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-Her finner du malene som nå er installert i denne DokuWikien. Her velger du malen som brukes i siden for [[?do=admin&page=config|konfigurasjonsinnstillinger]].
-
diff --git a/wiki/lib/plugins/extension/lang/no/lang.php b/wiki/lib/plugins/extension/lang/no/lang.php
deleted file mode 100644
index 0ceec58..0000000
--- a/wiki/lib/plugins/extension/lang/no/lang.php
+++ /dev/null
@@ -1,95 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Arne Hanssen <arnehans@getmail.no>
- */
-$lang['menu']                  = 'Utvidelsesbehandling';
-$lang['tab_plugins']           = 'Installerte programtillegg';
-$lang['tab_templates']         = 'Installerte maler';
-$lang['tab_search']            = 'Søk og installer';
-$lang['tab_install']           = 'Manuell installasjon';
-$lang['notimplemented']        = 'Denne funksjon er ikke laget ennå';
-$lang['notinstalled']          = 'Denne utvidelsen er ikke installert ';
-$lang['alreadyenabled']        = 'Denne utvidelsen er allerede slått på';
-$lang['alreadydisabled']       = 'Denne utvidelsen er allerede slått av';
-$lang['pluginlistsaveerror']   = 'Det oppsto en feil ved lagring av programlisten';
-$lang['unknownauthor']         = 'Ukjent utvikler';
-$lang['unknownversion']        = 'Ukjent versjon';
-$lang['btn_info']              = 'Vis mer info';
-$lang['btn_update']            = 'Oppdater';
-$lang['btn_uninstall']         = 'Avinstaller';
-$lang['btn_enable']            = 'Slå på';
-$lang['btn_disable']           = 'Slå av';
-$lang['btn_install']           = 'Installer';
-$lang['btn_reinstall']         = 'Installer på nytt';
-$lang['js']['reallydel']       = 'Vil du virkelig avinstallere denne utvidelsen?';
-$lang['js']['display_viewoptions'] = 'Filtrer etter:';
-$lang['js']['display_enabled'] = 'slått på';
-$lang['js']['display_disabled'] = 'slått av';
-$lang['js']['display_updatable'] = 'Oppdaterbar';
-$lang['search_for']            = 'Finn programtillegg:';
-$lang['search']                = 'Søk';
-$lang['extensionby']           = '<strong>%s</strong> av %s';
-$lang['screenshot']            = 'Skjermbilde av %s';
-$lang['popularity']            = 'Popularitet: %s%%';
-$lang['homepage_link']         = 'Dok.';
-$lang['bugs_features']         = 'Feilm.';
-$lang['tags']                  = 'Stikkord:';
-$lang['author_hint']           = 'Let etter programmtilleg fra denne utvikler';
-$lang['installed']             = 'Installert:';
-$lang['downloadurl']           = 'URL for nedlasting:';
-$lang['repository']            = 'Lager:';
-$lang['unknown']               = '<em>ukjent</em>';
-$lang['installed_version']     = 'Installert versjon';
-$lang['install_date']          = 'Sist oppdatert:';
-$lang['available_version']     = 'Tilgengelig versjon:';
-$lang['compatible']            = 'Kompatibel med:';
-$lang['depends']               = 'Avhenger av:';
-$lang['similar']               = 'Ligner på:';
-$lang['conflicts']             = 'I konflikt med:';
-$lang['donate']                = 'Liker du denne?';
-$lang['donate_action']         = 'Kjøp en kaffe til utvikleren!';
-$lang['repo_retry']            = 'Forsøk igjen';
-$lang['provides']              = 'Tilbyr:';
-$lang['status']                = 'Status:';
-$lang['status_installed']      = 'installert';
-$lang['status_not_installed']  = 'ikke installert';
-$lang['status_protected']      = 'beskyttet';
-$lang['status_enabled']        = 'slått på ';
-$lang['status_disabled']       = 'slått av';
-$lang['status_unmodifiable']   = 'ikke-modifiserbar';
-$lang['status_plugin']         = 'programtillegg';
-$lang['status_template']       = 'mal';
-$lang['status_bundled']        = 'pakke';
-$lang['msg_enabled']           = 'Programtillegg %s er slått på ';
-$lang['msg_disabled']          = 'Programtillegg %s er slått av ';
-$lang['msg_delete_success']    = 'Utvidelse %s ble avinstallert';
-$lang['msg_delete_failed']     = 'Avinstallering av utvidelse %s feilet';
-$lang['msg_template_install_success'] = 'Mal %s ble installert';
-$lang['msg_template_update_success'] = 'Mal %s ble oppdatert';
-$lang['msg_plugin_install_success'] = 'Programtillegg %s ble installert';
-$lang['msg_plugin_update_success'] = 'Programtillegg %s ble oppdatert';
-$lang['msg_upload_failed']     = 'Opplasting av fil feilet';
-$lang['missing_dependency']    = '<strong>Manglende eller avslått avhengighet:</strong> %s';
-$lang['security_issue']        = '<strong>Sikerhetsproblem:</strong> %s';
-$lang['security_warning']      = '<strong>Sikerhetsvarsel:</strong> %s';
-$lang['update_available']      = '<strong>Oppdater:</strong> Ny versjon %s er tilgjengelig.';
-$lang['wrong_folder']          = '<strong>Programtillegg  feil installert:</strong> Døp om mappen for programtillegg "%s" til "%s".';
-$lang['url_change']            = '<strong>URL er endret:</strong> URL for nedlasning er blitt endret sidene siste nedlastning. Sjekk at den nye URLen er gyldig før du oppdatere utvidelsen.<br />Ny: %s<br />Gammel: %s';
-$lang['error_badurl']          = 'URLer bør starte med http eller https';
-$lang['error_dircreate']       = 'Klarte ikke opprette midlertidig mappe nedlasting';
-$lang['error_download']        = 'Klarte ikke laste ned filen: %s';
-$lang['error_decompress']      = 'Klarte ikke pakke ut nedlastet fil. Muligens fordi nedlastingen feilet, da bør du prøve igjen; eller så kan komprimeringsformatet være ukjent, i så fall må du laste ned og installere utvidelsen manuelt.';
-$lang['error_findfolder']      = 'Klarte ikke finne utvidelsesmappen, du må laste ned og installere manuelt';
-$lang['error_copy']            = 'Det oppsto en kopieringsfeil ved installasjon av filer i katalogen <em>%s </ em>: disken kan være full eller filens tilgangsrettigheter kan være feil. Denne feilen kan ha resultert i en delvis installert programtillegg, og kan føre til at din wiki vil være ustabil.';
-$lang['noperms']               = 'Mappen for utvidelser er ikke skrivbar';
-$lang['notplperms']            = 'Mappen for maler er ikke skrivbar';
-$lang['nopluginperms']         = 'Mappen for programtillegg er ikke skrivbar';
-$lang['git']                   = 'Denne utvidelsen ble installert via git, du vl kanskje ikke oppdatere den herfra.';
-$lang['auth']                  = 'Denne autentiseringsutvidelser er i konfigurasjonsinstillingene ikke slått på. vurder å slå den av.';
-$lang['install_url']           = 'Installer fra URL:';
-$lang['install_upload']        = 'Last opp utvidelse:';
-$lang['repo_error']            = 'Lagret for programtillegg kunne ikke kontaktes. Kontroller at din server har rettigheter til å kontakte www.dokuwiki.org, sjekk også instillinger for hurtiglager (proxy).';
-$lang['nossl']                 = 'DIn PHP-installasjon mangler støtte for SSL. Nedlastning vil derfor ikke virke for mange DokuWIki-utvidelser.';
diff --git a/wiki/lib/plugins/extension/lang/pl/intro_install.txt b/wiki/lib/plugins/extension/lang/pl/intro_install.txt
deleted file mode 100644
index 338d939..0000000
--- a/wiki/lib/plugins/extension/lang/pl/intro_install.txt
+++ /dev/null
@@ -1 +0,0 @@
-Tutaj możesz ręcznie zainstalować wtyczki i szablony, przesyłając je lub podając bezpośredni adres URL do pobrania.
\ No newline at end of file
diff --git a/wiki/lib/plugins/extension/lang/pl/intro_plugins.txt b/wiki/lib/plugins/extension/lang/pl/intro_plugins.txt
deleted file mode 100644
index d228485..0000000
--- a/wiki/lib/plugins/extension/lang/pl/intro_plugins.txt
+++ /dev/null
@@ -1 +0,0 @@
-Są to wtyczki aktualnie zainstalowane w twoim DokuWiki. Możesz je tutaj włączyć lub wyłączyć, a nawet całkowicie odinstalować. Znajdziesz tu również informację o nowych wersjach. Przed aktualizacją koniecznie przeczytaj dokumentację wtyczki.
\ No newline at end of file
diff --git a/wiki/lib/plugins/extension/lang/pl/intro_search.txt b/wiki/lib/plugins/extension/lang/pl/intro_search.txt
deleted file mode 100644
index d1773fa..0000000
--- a/wiki/lib/plugins/extension/lang/pl/intro_search.txt
+++ /dev/null
@@ -1 +0,0 @@
-W tej zakładka znajdziesz wszystkie wtyczki i szablony przygotowane dla DokuWiki przez osoby trzecie. Należy pamiętać, że instalacja kodu zewnętrznego może stwarzać ** zagrożenie bezpieczeństwa **. Koniecznie przeczytaj o [[doku>security#plugin_security|bezpieczeństwie wtyczek]].
\ No newline at end of file
diff --git a/wiki/lib/plugins/extension/lang/pl/intro_templates.txt b/wiki/lib/plugins/extension/lang/pl/intro_templates.txt
deleted file mode 100644
index ef90cbf..0000000
--- a/wiki/lib/plugins/extension/lang/pl/intro_templates.txt
+++ /dev/null
@@ -1 +0,0 @@
-Są to szablony aktualnie zainstalowane w twoim DokuWiki. [[?do=admin&page=config|Menadżer konfiguracji]] pozwala wybrać używany szablon.
\ No newline at end of file
diff --git a/wiki/lib/plugins/extension/lang/pl/lang.php b/wiki/lib/plugins/extension/lang/pl/lang.php
deleted file mode 100644
index 7191dcb..0000000
--- a/wiki/lib/plugins/extension/lang/pl/lang.php
+++ /dev/null
@@ -1,97 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Wojciech Lichota <wojciech@lichota.pl>
- * @author Max <maxrb146@gmail.com>
- * @author Mati <mackosa@wp.pl>
- */
-$lang['menu']                  = 'Menedżer rozszerzeń';
-$lang['tab_plugins']           = 'Zainstalowane dodatki';
-$lang['tab_templates']         = 'Zainstalowane Szablony';
-$lang['tab_search']            = 'Znajdź i zainstaluj';
-$lang['tab_install']           = 'Instalacja ręczna';
-$lang['notimplemented']        = 'Ta funkcja nie została jeszcze zaimplementowana';
-$lang['notinstalled']          = 'Te rozszerzenie nie zostało zainstalowane';
-$lang['alreadyenabled']        = 'Te rozszerzenie jest już uruchomione';
-$lang['alreadydisabled']       = 'Rozszerzenie zostało wyłączone';
-$lang['pluginlistsaveerror']   = 'Wystąpił błąd podczas zapisywania listy wtyczek';
-$lang['unknownauthor']         = 'Nieznany autor';
-$lang['unknownversion']        = 'Nieznana wersja';
-$lang['btn_info']              = 'Pokaż więcej informacji';
-$lang['btn_update']            = 'Aktualizuj';
-$lang['btn_uninstall']         = 'Odinstaluj';
-$lang['btn_enable']            = 'Uruchom';
-$lang['btn_disable']           = 'Wyłącz';
-$lang['btn_install']           = 'Instaluj';
-$lang['btn_reinstall']         = 'Ponowna instalacja';
-$lang['js']['reallydel']       = 'Naprawdę odinstalować te rozszerzenie?';
-$lang['js']['display_viewoptions'] = 'Zobacz Opcje';
-$lang['js']['display_enabled'] = 'włącz';
-$lang['js']['display_disabled'] = 'wyłącz';
-$lang['js']['display_updatable'] = 'do aktualizacji';
-$lang['search_for']            = 'Szukaj rozszerzenia:';
-$lang['search']                = 'Szukaj';
-$lang['extensionby']           = '<strong>%s</strong> przez %s';
-$lang['screenshot']            = 'Zrzut ekranu z %s';
-$lang['popularity']            = 'Popularność: %s%%';
-$lang['homepage_link']         = 'Dokumenty';
-$lang['bugs_features']         = 'Błędy';
-$lang['tags']                  = 'Tagi:';
-$lang['author_hint']           = 'Szukaj rozszerzenia po autorze';
-$lang['installed']             = 'Zainstalowano:';
-$lang['downloadurl']           = 'Pobierz URL';
-$lang['repository']            = 'Repozytorium';
-$lang['unknown']               = '<em>nie znany</em>';
-$lang['installed_version']     = 'Zainstalowana wersja:';
-$lang['install_date']          = 'Twoja ostatnia aktualizacja:';
-$lang['available_version']     = 'Dostępna wersja:';
-$lang['compatible']            = 'Zgodny z:';
-$lang['depends']               = 'Zależy od:';
-$lang['similar']               = 'Podobny do:';
-$lang['conflicts']             = 'Konflikt z:';
-$lang['donate']                = 'Lubisz to?';
-$lang['donate_action']         = 'Kup autorowi kawÄ™!';
-$lang['repo_retry']            = 'Ponów';
-$lang['provides']              = 'Dostawcy:';
-$lang['status']                = 'Status:';
-$lang['status_installed']      = 'zainstalowano';
-$lang['status_not_installed']  = 'nie zainstalowano';
-$lang['status_protected']      = 'chroniony';
-$lang['status_enabled']        = 'uruchomione';
-$lang['status_disabled']       = 'wyłączone';
-$lang['status_unmodifiable']   = 'niemodyfikowalny';
-$lang['status_plugin']         = 'dodatek';
-$lang['status_template']       = 'szablon';
-$lang['status_bundled']        = 'paczka';
-$lang['msg_enabled']           = 'Dodatek %s włączony';
-$lang['msg_disabled']          = 'Dodatek %s wyłączony';
-$lang['msg_delete_success']    = 'Rozszerzenie %s odinstalowane';
-$lang['msg_delete_failed']     = 'Odinstalowywanie rozszerzenia %s nie powiodło się';
-$lang['msg_template_install_success'] = 'Szablon %s został zainstalowany';
-$lang['msg_template_update_success'] = 'Szablon %s został zaktualizowany';
-$lang['msg_plugin_install_success'] = 'Dodatek %s został zainstalowany';
-$lang['msg_plugin_update_success'] = 'Dodatek %s został zaktualizowany';
-$lang['msg_upload_failed']     = 'Åadowanie pliku nie powiodÅ‚o siÄ™';
-$lang['missing_dependency']    = '<strong>Brakująca lub wyłączona zależność:</strong> %s';
-$lang['security_issue']        = '<strong>Problemy bezpieczeństwa:</strong> %s';
-$lang['security_warning']      = '<strong>Alert Bezpieczeństwa:</strong>%s';
-$lang['update_available']      = '<strong>Uaktualnij</strong> Nowa wersja %s jest dostępna.';
-$lang['wrong_folder']          = '<strong>Nieprawidłowo zainstalowana wtyczka:</strong> Zmień nazwę katalogu wtyczek z "%s" na "%s".';
-$lang['url_change']            = '<strong>URL został zmieniony:</strong>URL zmienił się od czasu ostatniego pobrania. Przed aktualizacją rozszerzenia, sprawdź czy nowy adres URL jest prawidłowy.<br />Nowy: %s<br />Stary: %s';
-$lang['error_badurl']          = 'URL powinien zaczynać się od http lub https';
-$lang['error_dircreate']       = 'Nie można utworzyć tymczasowego folderu pobierania ';
-$lang['error_download']        = 'Nie można pobrać pliku %s';
-$lang['error_decompress']      = 'Nie można rozpakować pobranego pliku. Może to być spowodowane złym pobieraniem, w takim przypadku powinieneś spróbować ponownie; lub format kompresji może być nieznany, w takim przypadku należy ręcznie pobrać i zainstalować.';
-$lang['error_findfolder']      = 'Nie można zidentyfikować katalogu z rozszerzeniami, musisz pobrać i zainstalować ręcznie';
-$lang['error_copy']            = 'Wystąpił błąd kopiowania pliku podczas próby zainstalowania plików dla katalogu <em>%s</em>: dysk może być pełny lub uprawnienia dostępu do pliku mogą być niepoprawne. Mogło to spowodować częściowo zainstalowaną wtyczkę i pozostawić twoją instalację wiki niestabilną';
-$lang['noperms']               = 'Katalog z rozszerzeniami nie posiada uprawnień zapisu';
-$lang['notplperms']            = 'Katalog z szablonami nie posiada uprawnień zapisu';
-$lang['nopluginperms']         = 'Katalog z wtyczkami nie posiada uprawnień zapisu';
-$lang['git']                   = 'To rozszerzenie zostało zainstalowane przez git, możesz nie chcieć go aktualizować tutaj.';
-$lang['auth']                  = 'Ta wtyczka autoryzacji nie jest włączona w konfiguracji, rozważ jej wyłączenie.';
-$lang['install_url']           = 'Instaluj z URL:';
-$lang['install_upload']        = 'Załaduj Rozszerzenie ';
-$lang['repo_error']            = 'Nie można skontaktować się z repozytorium wtyczek. Upewnij się, że twój serwer może skontaktować się z www.dokuwiki.org i sprawdzić ustawienia serwera proxy.';
-$lang['nossl']                 = 'Twój PHP wydaje się nie obsługiwać protokołu SSL. Pobieranie nie zadziała dla wielu rozszerzeń DokuWiki.';
diff --git a/wiki/lib/plugins/extension/lang/pt-br/intro_install.txt b/wiki/lib/plugins/extension/lang/pt-br/intro_install.txt
deleted file mode 100644
index 08527b0..0000000
--- a/wiki/lib/plugins/extension/lang/pt-br/intro_install.txt
+++ /dev/null
@@ -1 +0,0 @@
-Aqui você pode instalar extensões e modelos manualmente, ou subindo eles ou submetendo uma URL de baixar diretamente.
\ No newline at end of file
diff --git a/wiki/lib/plugins/extension/lang/pt-br/intro_plugins.txt b/wiki/lib/plugins/extension/lang/pt-br/intro_plugins.txt
deleted file mode 100644
index e0a8c7f..0000000
--- a/wiki/lib/plugins/extension/lang/pt-br/intro_plugins.txt
+++ /dev/null
@@ -1 +0,0 @@
-Estas são as extensões instaladas atualmente no seu DokuWiki. Você pode habilitar ou desabilitar ou desinstalar completamente elas aqui. Atualizações das extensões também são mostradas, certifique-se de ler a documentação da extensão antes de atualizá-la.
\ No newline at end of file
diff --git a/wiki/lib/plugins/extension/lang/pt-br/intro_search.txt b/wiki/lib/plugins/extension/lang/pt-br/intro_search.txt
deleted file mode 100644
index f2101d7..0000000
--- a/wiki/lib/plugins/extension/lang/pt-br/intro_search.txt
+++ /dev/null
@@ -1 +0,0 @@
-Esta aba lhe dá acesso a extensões e modelos disponibilizados por terceiros para o DokuWiki. Favor ter cuidado pois instalar código de terceiros pode acarretar um **risco de segurança**, você poderia ler sobre [[doku>security#plugin_security|segurança de extensões]] primeiramente.
\ No newline at end of file
diff --git a/wiki/lib/plugins/extension/lang/pt-br/intro_templates.txt b/wiki/lib/plugins/extension/lang/pt-br/intro_templates.txt
deleted file mode 100644
index aa3e07f..0000000
--- a/wiki/lib/plugins/extension/lang/pt-br/intro_templates.txt
+++ /dev/null
@@ -1 +0,0 @@
-Estes são os modelos instalados atualmente no seu DokuWiki. Você pode selecionar o modelo a ser usado no [[?do=admin&page=config|Configuration Manager]].
\ No newline at end of file
diff --git a/wiki/lib/plugins/extension/lang/pt-br/lang.php b/wiki/lib/plugins/extension/lang/pt-br/lang.php
deleted file mode 100644
index ce4c3b8..0000000
--- a/wiki/lib/plugins/extension/lang/pt-br/lang.php
+++ /dev/null
@@ -1,97 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Felipe Castro <fefcas@gmail.com>
- * @author Hudson FAS <hudsonfas@gmail.com>
- * @author Frederico Gonçalves Guimarães <frederico@teia.bio.br>
- */
-$lang['menu']                  = 'Gerenciador de extensões';
-$lang['tab_plugins']           = 'Extensões instaladas';
-$lang['tab_templates']         = 'Modelos instalados';
-$lang['tab_search']            = 'Procurar e instalar';
-$lang['tab_install']           = 'Instalar manualmente';
-$lang['notimplemented']        = 'Esta função ainda não foi implementada';
-$lang['notinstalled']          = 'Esta extensão não está instalada';
-$lang['alreadyenabled']        = 'Esta extensão já foi habilitada';
-$lang['alreadydisabled']       = 'Esta extensão já foi desabilitada';
-$lang['pluginlistsaveerror']   = 'Houve um erro ao salvar a lista de extensões';
-$lang['unknownauthor']         = 'Autor desconhecido';
-$lang['unknownversion']        = 'Versão desconhecida';
-$lang['btn_info']              = 'Mostrar mais informações';
-$lang['btn_update']            = 'Atualizar';
-$lang['btn_uninstall']         = 'Desinstalar';
-$lang['btn_enable']            = 'Habilitar';
-$lang['btn_disable']           = 'Desabilitar';
-$lang['btn_install']           = 'Instalar';
-$lang['btn_reinstall']         = 'Re-instalar';
-$lang['js']['reallydel']       = 'Quer mesmo desinstalar esta extensão?';
-$lang['js']['display_viewoptions'] = 'Opções de visualização:';
-$lang['js']['display_enabled'] = 'habilitado';
-$lang['js']['display_disabled'] = 'desabilitado';
-$lang['js']['display_updatable'] = 'atualizável';
-$lang['search_for']            = 'Procurar extensão:';
-$lang['search']                = 'Procurar';
-$lang['extensionby']           = '<strong>%s</strong> de %s';
-$lang['screenshot']            = 'Tela congelada de %s';
-$lang['popularity']            = 'Popularidade: %s%%';
-$lang['homepage_link']         = 'Docs';
-$lang['bugs_features']         = 'Erros';
-$lang['tags']                  = 'Etiquetas:';
-$lang['author_hint']           = 'Procurar extensões deste autor';
-$lang['installed']             = 'Instalado:';
-$lang['downloadurl']           = 'URL para baixar:';
-$lang['repository']            = 'Repositório:';
-$lang['unknown']               = '<em>desconhecido</em>';
-$lang['installed_version']     = 'Versão instalada:';
-$lang['install_date']          = 'Sua última atualização:';
-$lang['available_version']     = 'Versão disponível:';
-$lang['compatible']            = 'Compatível com:';
-$lang['depends']               = 'Depende de:';
-$lang['similar']               = 'Similar a:';
-$lang['conflicts']             = 'Colide com:';
-$lang['donate']                = 'Gostou deste?';
-$lang['donate_action']         = 'Pague um café ao autor!';
-$lang['repo_retry']            = 'Tentar de novo';
-$lang['provides']              = 'Disponibiliza:';
-$lang['status']                = 'Estado:';
-$lang['status_installed']      = 'instalado';
-$lang['status_not_installed']  = 'não instalado';
-$lang['status_protected']      = 'protegido';
-$lang['status_enabled']        = 'habilitado';
-$lang['status_disabled']       = 'desabilitado';
-$lang['status_unmodifiable']   = 'não modificável';
-$lang['status_plugin']         = 'extensão';
-$lang['status_template']       = 'modelo';
-$lang['status_bundled']        = 'agrupado';
-$lang['msg_enabled']           = 'Extensão %s habilitada';
-$lang['msg_disabled']          = 'Extensão %s desabilitada';
-$lang['msg_delete_success']    = 'Extensão %s desinstalada';
-$lang['msg_delete_failed']     = 'Falha na desinstalação da extensão %s';
-$lang['msg_template_install_success'] = 'Modelo %s instalado com sucesso';
-$lang['msg_template_update_success'] = 'Modelo %s atualizado com sucesso';
-$lang['msg_plugin_install_success'] = 'Extensão %s instalada com sucesso';
-$lang['msg_plugin_update_success'] = 'Extensão %s atualizada com sucesso';
-$lang['msg_upload_failed']     = 'Subida do arquivo falhou';
-$lang['missing_dependency']    = '<strong>Dependência faltante ou desabilitada:</strong> %s';
-$lang['security_issue']        = '<strong>Problema com segurança:</strong> %s';
-$lang['security_warning']      = '<strong>Aviso sobre segurança:</strong> %s';
-$lang['update_available']      = '<strong>Atualização:</strong> Nova versão %s está disponível.';
-$lang['wrong_folder']          = '<strong>Extensão instalada incorretamente:</strong> Renomeie o diretório de extensões "%s" para "%s".';
-$lang['url_change']            = '<strong>URL mudou:</strong> A URL para baixar mudou desde a última baixada. Verifique se a nova URL é válida antes de atualizar a extensão.<br />Novo: %s<br />Velho: %s';
-$lang['error_badurl']          = 'O URL deve começar com http ou https';
-$lang['error_dircreate']       = 'Impossível criar pasta temporária para receber o download';
-$lang['error_download']        = 'Impossável baixar o arquivo: %s';
-$lang['error_decompress']      = 'Impossável descompimir o arquivo baixado. Isso pode ser resultado de um download ruim que neste caso pode ser tentado novamente; ou o formato da compressão pode ser desconhecido, neste caso baixe e instale manualmente.';
-$lang['error_findfolder']      = 'Impossíl identificar a extensão do diretório, você deve baixar e instalar manualmente.';
-$lang['error_copy']            = 'Houve um erro de cópia de arquivo durante a tentativa de instalar os arquivos para o diretório <em>%s</em> : o disco pode estar cheio ou as permissões de acesso ao arquivo podem estar incorreta. Isso pode ter resultado em um plugin parcialmente instalado e deixar a sua instalação wiki instável';
-$lang['noperms']               = 'Diretório de extensão não é gravável';
-$lang['notplperms']            = 'Diretório de modelo (Template) não é gravável';
-$lang['nopluginperms']         = 'Diretório de plugin não é gravável';
-$lang['git']                   = 'A extensão foi instalada via git, você talvez não queira atualizá-lo aqui.';
-$lang['auth']                  = 'O plugin auth não está ativado na configuração, considere desativá-lo.';
-$lang['install_url']           = 'Instale a partir do URL:';
-$lang['install_upload']        = 'Publicar Extensão:';
-$lang['repo_error']            = 'O repositório de plugin não pode ser contactado. Certifique-se de que o servidor pode acessar www.dokuwiki.org e confira suas configurações de proxy.';
-$lang['nossl']                 = 'Sua instalação PHP parece que não suporta SSL. Algumas extensões DokuWiki não serão baixadas.';
diff --git a/wiki/lib/plugins/extension/lang/pt/intro_install.txt b/wiki/lib/plugins/extension/lang/pt/intro_install.txt
deleted file mode 100644
index 5e58713..0000000
--- a/wiki/lib/plugins/extension/lang/pt/intro_install.txt
+++ /dev/null
@@ -1 +0,0 @@
-Aqui você pode instalar manualmente plugins e modelos ou enviando-os (upload) ou fornecendo uma URL de download direto.
\ No newline at end of file
diff --git a/wiki/lib/plugins/extension/lang/pt/intro_plugins.txt b/wiki/lib/plugins/extension/lang/pt/intro_plugins.txt
deleted file mode 100644
index fcfaa5c..0000000
--- a/wiki/lib/plugins/extension/lang/pt/intro_plugins.txt
+++ /dev/null
@@ -1 +0,0 @@
-Estes são os plugins instalados atualmente em seu DokuWiki. Você pode ativar ou desativar ou desinstala-los completamente aqui. Atualizações de plugins também são mostradas aqui, não se esqueça de ler a documentação do plug-in antes de atualizar.
\ No newline at end of file
diff --git a/wiki/lib/plugins/extension/lang/pt/intro_search.txt b/wiki/lib/plugins/extension/lang/pt/intro_search.txt
deleted file mode 100644
index be39a98..0000000
--- a/wiki/lib/plugins/extension/lang/pt/intro_search.txt
+++ /dev/null
@@ -1 +0,0 @@
-Esta guia lhe dá acesso a todos os plugins e modelos de terceiros disponíveis DokuWiki. Por favor, esteja ciente de que a instalação de componentes de terceiros pode representar um risco de segurança ** **, você pode querer ler sobre [[doku> segurança # plugin_security | segurança plug-in]] antes de realizar a instalação de módulos de terceiros.
\ No newline at end of file
diff --git a/wiki/lib/plugins/extension/lang/pt/intro_templates.txt b/wiki/lib/plugins/extension/lang/pt/intro_templates.txt
deleted file mode 100644
index 02bc336..0000000
--- a/wiki/lib/plugins/extension/lang/pt/intro_templates.txt
+++ /dev/null
@@ -1 +0,0 @@
-Estes são os modelos atualmente instalados em seu DokuWiki. Você pode selecionar o modelo a ser usado no [[?do=admin&page=config|Configuration Manager]].
diff --git a/wiki/lib/plugins/extension/lang/pt/lang.php b/wiki/lib/plugins/extension/lang/pt/lang.php
deleted file mode 100644
index e31907c..0000000
--- a/wiki/lib/plugins/extension/lang/pt/lang.php
+++ /dev/null
@@ -1,140 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Guido Salatino <guidorafael23@gmail.com>
- * @author Romulo Pereira <romuloccomp@gmail.com>
- * @author Paulo Carmino <contato@paulocarmino.com>
- * @author Alfredo Silva <alfredo.silva@sky.com>
- * @author Guilherme Sá <guilherme.sa@hotmail.com>
- */
-$lang['menu']                  = 'Gerenciador de Extensões';
-$lang['tab_plugins']           = 'Plugins Instalados';
-$lang['tab_templates']         = 'Modelos Instalados';
-$lang['tab_search']            = 'Pesquisar e Instalar';
-$lang['tab_install']           = 'Instalação Manual';
-$lang['notimplemented']        = 'Este recurso não foi implementado ainda';
-$lang['notinstalled']          = 'Esta extensão não está instalada';
-$lang['alreadyenabled']        = 'Esta extensão já foi ativada';
-$lang['alreadydisabled']       = 'Esta extensão já foi desativada';
-$lang['pluginlistsaveerror']   = 'Houve um erro ao salvar a lista de plugins';
-$lang['unknownauthor']         = 'Autor desconhecido';
-$lang['unknownversion']        = 'Versão desconhecida';
-$lang['btn_info']              = 'Mostrar mais informações';
-$lang['btn_update']            = 'Atualizar';
-$lang['btn_uninstall']         = 'Desinstalar';
-$lang['btn_enable']            = 'Habilitar';
-$lang['btn_disable']           = 'Desabilitar';
-$lang['btn_install']           = 'Instalar';
-$lang['btn_reinstall']         = 'Reinstalar';
-$lang['js']['reallydel']       = 'Confirma a desinstalação desta extensão?';
-$lang['js']['display_viewoptions'] = 'Ver Opções:';
-$lang['js']['display_enabled'] = 'ativado';
-$lang['js']['display_disabled'] = 'desativado';
-$lang['js']['display_updatable'] = 'atualizável';
-$lang['search_for']            = 'Pesquisar Extensão:';
-$lang['search']                = 'Pesquisar';
-$lang['extensionby']           = '<strong>%s</strong> by %s';
-$lang['screenshot']            = 'Screenshot of %s';
-$lang['popularity']            = 'Popularidade: %s%%';
-$lang['homepage_link']         = 'Documentos';
-$lang['bugs_features']         = 'Erros';
-$lang['tags']                  = 'Tags:';
-$lang['author_hint']           = 'Pesquisar extensões deste autor';
-$lang['installed']             = 'Instalado:
-';
-$lang['downloadurl']           = 'Baixar URL:
-';
-$lang['repository']            = 'Repositório:
-';
-$lang['unknown']               = '<em> desconhecido </em>
-';
-$lang['installed_version']     = 'Versão instalada:';
-$lang['install_date']          = 'Sua última atualização:';
-$lang['available_version']     = 'Versão disponível:
-';
-$lang['compatible']            = 'Compatível com:';
-$lang['depends']               = 'Depende de:
-';
-$lang['similar']               = 'Semelhante a:
-';
-$lang['conflicts']             = 'Conflitos com:
-';
-$lang['donate']                = 'Assim?
-';
-$lang['donate_action']         = 'Pague um café para o autor!';
-$lang['repo_retry']            = 'Tentar novamente
-';
-$lang['provides']              = 'Fornece:
-';
-$lang['status']                = 'Status:
-';
-$lang['status_installed']      = 'instalado
-';
-$lang['status_not_installed']  = 'não instalado
-';
-$lang['status_protected']      = 'protegido
-';
-$lang['status_enabled']        = 'habilitado';
-$lang['status_disabled']       = 'desabilitado';
-$lang['status_unmodifiable']   = 'imodificável
-';
-$lang['status_plugin']         = 'plugin
-';
-$lang['status_template']       = 'modelo
-';
-$lang['status_bundled']        = 'empacotado
-';
-$lang['msg_enabled']           = 'Plugin %s habilitado
-';
-$lang['msg_disabled']          = 'Plugin %s desabilitado';
-$lang['msg_delete_success']    = 'Extensão %s desinstalada';
-$lang['msg_delete_failed']     = 'Desinstalar Extensão %s falhou
-';
-$lang['msg_template_install_success'] = 'Modelo %s instalado com sucesso';
-$lang['msg_template_update_success'] = 'Modelo %s atualizado com sucesso
-';
-$lang['msg_plugin_install_success'] = 'Plugin %s instalado com sucesso
-';
-$lang['msg_plugin_update_success'] = 'Plugin %s atualizado com sucesso
-';
-$lang['msg_upload_failed']     = 'Enviando o arquivo falhou
-';
-$lang['missing_dependency']    = '<strong>dependência ausente ou desabilitada:</strong> %s
-';
-$lang['security_issue']        = '<strong> Questão de segurança:</strong> %s
-';
-$lang['security_warning']      = '<strong> Aviso de segurança:</strong> %s';
-$lang['update_available']      = '<strong>Atualização:</strong> Nova versão %s está disponível.
-';
-$lang['wrong_folder']          = '<strong>Plugin instalado incorretamente: </strong> Renomear pasta de plugins de "%s" para "%s".
-';
-$lang['url_change']            = '<strong>URL mudou: </strong> URL para download mudou desde o último download. Verifique se a nova URL é válida antes de atualizar a extensão <br/> Nova:%s<br/>Antiga:%s
-';
-$lang['error_badurl']          = 'URLs deve começar com http ou https
-';
-$lang['error_dircreate']       = 'Não é possível criar pasta temporária para receber o download
-';
-$lang['error_download']        = 'Não é possível baixar o arquivo:%s
-';
-$lang['error_decompress']      = 'Não é possível descompactar o arquivo baixado. Talvez seja resultado de um download ruim, nesse caso, você deve tentar novamente; ou o formato de compressão pode ser desconhecido, nesse caso, você precisará baixar e instalar manualmente.';
-$lang['error_findfolder']      = 'Não foi possível identificar diretório de extensão, você precisa baixar e instalar manualmente
-';
-$lang['error_copy']            = 'Houve um erro na cópia do arquivo durante a tentativa de instalar os arquivos para o diretório <em>%s </em>: o disco pode estar cheio ou as permissões de acesso ao arquivo podem estar incorretas. Isso pode ter resultado em um plugin parcialmente instalado e tornar instável a sua instalação wiki
-';
-$lang['noperms']               = 'Diretório da extensão não é gravável
-';
-$lang['notplperms']            = 'Diretório do modelo não é gravável
-';
-$lang['nopluginperms']         = 'Diretório do plugin não é gravável
-';
-$lang['git']                   = 'Esta extensão foi instalada via git, você não pode querer atualizá-la aqui.
-';
-$lang['auth']                  = 'Este plugin não está habilitado na configuração, considere desabilita-lo.';
-$lang['install_url']           = 'Instalar a partir da URL:';
-$lang['install_upload']        = 'Publique a Extensão:';
-$lang['repo_error']            = 'O repositório do plugin não pôde ser conectado. Verifique se o seu servidor está autorizado a conectar com www.dokuwiki.org e verifique as configurações de proxy do servidor.
-';
-$lang['nossl']                 = 'Seu PHP parece que perdeu o suporte a SSL. O download não vai funcionar para muitas extensões DokuWiki.
-';
diff --git a/wiki/lib/plugins/extension/lang/ru/intro_install.txt b/wiki/lib/plugins/extension/lang/ru/intro_install.txt
deleted file mode 100644
index 0c555ae..0000000
--- a/wiki/lib/plugins/extension/lang/ru/intro_install.txt
+++ /dev/null
@@ -1 +0,0 @@
-ЗдеÑÑŒ вы можете ÑамоÑтоÑтельно уÑтановить плагины и шаблоны, загрузив их или предоÑтавив прÑмой URL Ð´Ð»Ñ ÑкачиваниÑ.
\ No newline at end of file
diff --git a/wiki/lib/plugins/extension/lang/ru/intro_plugins.txt b/wiki/lib/plugins/extension/lang/ru/intro_plugins.txt
deleted file mode 100644
index 96d1742..0000000
--- a/wiki/lib/plugins/extension/lang/ru/intro_plugins.txt
+++ /dev/null
@@ -1 +0,0 @@
-Плагины, уÑтановленные в вашей «Докувики». ЗдеÑÑŒ вы можете их включить/отключить или даже полноÑтью удалить. Также здеÑÑŒ показываютÑÑ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ð»Ð°Ð³Ð¸Ð½Ð¾Ð²; обÑзательно прочтите документацию плагина перед обновлением.
\ No newline at end of file
diff --git a/wiki/lib/plugins/extension/lang/ru/intro_search.txt b/wiki/lib/plugins/extension/lang/ru/intro_search.txt
deleted file mode 100644
index 609985b..0000000
--- a/wiki/lib/plugins/extension/lang/ru/intro_search.txt
+++ /dev/null
@@ -1 +0,0 @@
-Вкладка даёт вам доÑтуп ко вÑем имеющимÑÑ Ñторонним плагинам и шаблонам Ð´Ð»Ñ Â«Ð”Ð¾ÐºÑƒÐ²Ð¸ÐºÐ¸Â». Имейте в виду, что уÑтановка Ñтороннего кода может предÑтавлÑть **угрозу безопаÑноÑти,** возможно вам нужно Ñперва прочитать о [[doku>security#plugin_security|безопаÑноÑти плагинов]].
\ No newline at end of file
diff --git a/wiki/lib/plugins/extension/lang/ru/intro_templates.txt b/wiki/lib/plugins/extension/lang/ru/intro_templates.txt
deleted file mode 100644
index a71ad67..0000000
--- a/wiki/lib/plugins/extension/lang/ru/intro_templates.txt
+++ /dev/null
@@ -1 +0,0 @@
-Шаблоны (темы оформлениÑ), уÑтановленные в вашей «Докувики». Шаблон, который нужно иÑпользовать, выбираетÑÑ в [[?do=admin&page=config|наÑтройках вики]]
\ No newline at end of file
diff --git a/wiki/lib/plugins/extension/lang/ru/lang.php b/wiki/lib/plugins/extension/lang/ru/lang.php
deleted file mode 100644
index 97ad123..0000000
--- a/wiki/lib/plugins/extension/lang/ru/lang.php
+++ /dev/null
@@ -1,100 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Aleksandr Selivanov <alexgearbox@yandex.ru>
- * @author Igor Degraf <igordegraf@gmail.com>
- * @author Type-kun <workwork-1@yandex.ru>
- * @author Vitaly Filatenko <kot@hacktest.net>
- * @author Alex P <alexander@lanos.co.uk>
- * @author Takumo <9206984@mail.ru>
- */
-$lang['menu']                  = 'Управление дополнениÑми';
-$lang['tab_plugins']           = 'УÑтановленные плагины';
-$lang['tab_templates']         = 'УÑтановленные шаблоны';
-$lang['tab_search']            = 'ПоиÑк и уÑтановка';
-$lang['tab_install']           = 'Ð ÑƒÑ‡Ð½Ð°Ñ ÑƒÑтановка';
-$lang['notimplemented']        = 'Эта возможноÑть ещё не реализована';
-$lang['notinstalled']          = 'Это дополнение не уÑтановлено';
-$lang['alreadyenabled']        = 'Это дополнение уже включено';
-$lang['alreadydisabled']       = 'Это дополнение уже отключено';
-$lang['pluginlistsaveerror']   = 'Ошибка при Ñохранении ÑпиÑка плагинов';
-$lang['unknownauthor']         = 'Ðвтор неизвеÑтен';
-$lang['unknownversion']        = 'ВерÑÐ¸Ñ Ð½ÐµÐ¸Ð·Ð²ÐµÑтна';
-$lang['btn_info']              = 'Подробнее';
-$lang['btn_update']            = 'Обновить';
-$lang['btn_uninstall']         = 'Удалить';
-$lang['btn_enable']            = 'Включить';
-$lang['btn_disable']           = 'Отключить';
-$lang['btn_install']           = 'УÑтановить';
-$lang['btn_reinstall']         = 'ПереуÑтановить';
-$lang['js']['reallydel']       = 'ДейÑтвительно удалить Ñто дополнение?';
-$lang['js']['display_viewoptions'] = 'Показать как:';
-$lang['js']['display_enabled'] = 'включён';
-$lang['js']['display_disabled'] = 'отключён';
-$lang['js']['display_updatable'] = 'обновление';
-$lang['search_for']            = 'ПоиÑк дополнениÑ';
-$lang['search']                = 'Ðайти';
-$lang['extensionby']           = '<strong>%s</strong> %s';
-$lang['screenshot']            = 'Скриншот: %s';
-$lang['popularity']            = 'ПопулÑрноÑть: %s%%';
-$lang['homepage_link']         = 'ОпиÑание';
-$lang['bugs_features']         = 'Баг-трекер';
-$lang['tags']                  = 'Метки:';
-$lang['author_hint']           = 'Ðайти Ð´Ð¾Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ñтого автора';
-$lang['installed']             = 'УÑтановлен';
-$lang['downloadurl']           = 'URL ÑкачиваниÑ';
-$lang['repository']            = 'Репозиторий';
-$lang['unknown']               = '<em>неизвеÑтно</em>';
-$lang['installed_version']     = 'ВерÑиÑ';
-$lang['install_date']          = 'Обновлено';
-$lang['available_version']     = 'ДоÑÑ‚ÑƒÐ¿Ð½Ð°Ñ Ð²ÐµÑ€ÑиÑ';
-$lang['compatible']            = 'СовмеÑтимоÑть';
-$lang['depends']               = 'ЗавиÑит от';
-$lang['similar']               = 'Похож на';
-$lang['conflicts']             = 'Конфликтует Ñ';
-$lang['donate']                = 'ÐравитÑÑ?';
-$lang['donate_action']         = 'Купить автору кофе!';
-$lang['repo_retry']            = 'Повторить';
-$lang['provides']              = 'ПредоÑтавлÑет';
-$lang['status']                = 'СтатуÑ';
-$lang['status_installed']      = 'уÑтановлен';
-$lang['status_not_installed']  = 'не уÑтановлен';
-$lang['status_protected']      = 'защищён';
-$lang['status_enabled']        = 'включён';
-$lang['status_disabled']       = 'отключён';
-$lang['status_unmodifiable']   = 'неизменÑем';
-$lang['status_plugin']         = 'плагин';
-$lang['status_template']       = 'шаблон';
-$lang['status_bundled']        = 'в комплекте';
-$lang['msg_enabled']           = 'Плагин %s включён';
-$lang['msg_disabled']          = 'Плагин %s отключён';
-$lang['msg_delete_success']    = 'Дополнение %s удалено';
-$lang['msg_delete_failed']     = 'Ðе удалоÑÑŒ удалить дополнение %s';
-$lang['msg_template_install_success'] = 'Шаблон %s уÑпешно уÑтановлен';
-$lang['msg_template_update_success'] = 'Шаблон %s уÑпешно обновлён';
-$lang['msg_plugin_install_success'] = 'Плагин %s уÑпешно уÑтановлен';
-$lang['msg_plugin_update_success'] = 'Плагин %s уÑпешно обновлён';
-$lang['msg_upload_failed']     = 'Ðе удалоÑÑŒ загрузить файл';
-$lang['missing_dependency']    = '<strong>ОтÑутÑтвует или отключена завиÑимоÑть:</strong> %s';
-$lang['security_issue']        = '<strong>Проблема безопаÑноÑти:</strong> %s';
-$lang['security_warning']      = '<strong>Предупреждение безопаÑноÑти:</strong> %s';
-$lang['update_available']      = '<strong>Обновление:</strong> доÑтупна Ð½Ð¾Ð²Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ %s';
-$lang['wrong_folder']          = '<strong>Плагин уÑтановлен неправильно:</strong> переименуйте директорию плагина из %s в %s';
-$lang['url_change']            = '<strong>СÑылка изменилаÑÑŒ:</strong> ÑÑылка Ð´Ð»Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ¸ изменилаÑÑŒ Ñ&nbsp;прошлого раза. Проверьте новую ÑÑылку прежде, чем обновлÑть дополнение.<br />ÐоваÑ: %s<br />СтараÑ: %s';
-$lang['error_badurl']          = 'СÑылка должна начинатьÑÑ Ñ&nbsp;http или https';
-$lang['error_dircreate']       = 'Ðе удалоÑÑŒ Ñоздать временную директорию Ð´Ð»Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ¸';
-$lang['error_download']        = 'Ðе удалоÑÑŒ загрузить файл: %s';
-$lang['error_decompress']      = 'Ðе удалоÑÑŒ раÑпаковать загруженный файл. Возможно, файл был повреждён при загрузке — тогда нужно попробовать ещё раз. Либо неизвеÑтен формат архива — тогда загрузку и уÑтановку надо произвеÑти вручную';
-$lang['error_findfolder']      = 'Ðе удалоÑÑŒ определить директорию Ð´Ð»Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ, загрузку и уÑтановку надо произвеÑти вручную.';
-$lang['error_copy']            = 'Возникла ошибка ÐºÐ¾Ð¿Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð² в директорию <em>%s</em>: возможно, диÑк переполнен, или неверно выÑтавлены права доÑтупа. Это могло привеÑти к неполной уÑтановке плагина и нарушить работу вашей вики.';
-$lang['noperms']               = 'Ð”Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð´Ð»Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ð¹ недоÑтупна Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи';
-$lang['notplperms']            = 'Ð”Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð´Ð»Ñ ÑˆÐ°Ð±Ð»Ð¾Ð½Ð¾Ð² недоÑтупна Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи';
-$lang['nopluginperms']         = 'Ð”Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð´Ð»Ñ Ð¿Ð»Ð°Ð³Ð¸Ð½Ð¾Ð² недоÑтупна Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи';
-$lang['git']                   = 'Это дополнение было уÑтановлено через git. Ð’Ñ‹ не можете обновить его тут.';
-$lang['auth']                  = 'Этот auth-плагин не включён в конфигурации, подумайте об его отключении';
-$lang['install_url']           = 'УÑтановить Ñ Ð°Ð´Ñ€ÐµÑа';
-$lang['install_upload']        = 'Загрузить дополнение';
-$lang['repo_error']            = 'Сайт Ñ плагинами недоÑтупен. УбедитеÑÑŒ, что у Ñайта еÑть доÑтуп на www.dokuwiki.org, а также проверьте наÑтройки ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¾ÐºÑи.';
-$lang['nossl']                 = 'Ваша PHP-ÐºÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñ Ð½Ðµ имеет SSL-поддержки. Это нарушит Ñкачивание Ð´Ð»Ñ Ð¼Ð½Ð¾Ð³Ð¸Ñ… дополнений.';
diff --git a/wiki/lib/plugins/extension/lang/sk/lang.php b/wiki/lib/plugins/extension/lang/sk/lang.php
deleted file mode 100644
index 775e89a..0000000
--- a/wiki/lib/plugins/extension/lang/sk/lang.php
+++ /dev/null
@@ -1,61 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Martin Michalek <michalek.dev@gmail.com>
- */
-$lang['tab_plugins']           = 'Inštalované pluginy';
-$lang['tab_templates']         = 'Inštalované šablóny';
-$lang['tab_search']            = 'Hľadanie e inštalácia';
-$lang['tab_install']           = 'Manuálna inštalácia';
-$lang['notimplemented']        = 'Táto vlastnosť ešte nebola implementovaná';
-$lang['unknownauthor']         = 'Neznámy autor';
-$lang['unknownversion']        = 'Neznáma verzia';
-$lang['btn_info']              = 'Viac informácií';
-$lang['btn_update']            = 'Aktualizácia';
-$lang['btn_uninstall']         = 'Odinštalovanie';
-$lang['btn_enable']            = 'Povolenie';
-$lang['btn_disable']           = 'Zablokovanie';
-$lang['btn_install']           = 'Inštalácia';
-$lang['btn_reinstall']         = 'Re-Inštalácia';
-$lang['search']                = 'Vyhľadávanie';
-$lang['extensionby']           = '<strong>%s</strong> od %s';
-$lang['screenshot']            = 'Obrázok od %s';
-$lang['popularity']            = 'Popularita: %s%%';
-$lang['homepage_link']         = 'Dokumentácia';
-$lang['bugs_features']         = 'Chyby:';
-$lang['tags']                  = 'KľúÄové slová:';
-$lang['unknown']               = '<em>neznámy</em>';
-$lang['installed_version']     = 'Inštalovaná verzia:';
-$lang['install_date']          = 'Posledná aktualizácia:';
-$lang['available_version']     = 'Dostupné verzie:';
-$lang['compatible']            = 'Kompaktibilita:';
-$lang['similar']               = 'Podobné:';
-$lang['conflicts']             = 'V konflikte:';
-$lang['status_installed']      = 'inštalovaný';
-$lang['status_not_installed']  = 'neinštalovaný';
-$lang['status_protected']      = 'chránený';
-$lang['status_enabled']        = 'povolený';
-$lang['status_disabled']       = 'nepovolený';
-$lang['status_plugin']         = 'plugin';
-$lang['status_template']       = 'šablóna';
-$lang['msg_enabled']           = 'Plugin %s povolený';
-$lang['msg_disabled']          = 'Plugin %s nepovolený';
-$lang['msg_template_install_success'] = 'Šablóna %s úspešne nainštalovaná';
-$lang['msg_template_update_success'] = 'Šablóna %s úspešne aktualizovaná';
-$lang['msg_plugin_install_success'] = 'Plugin %s úspešne nainštalovaný';
-$lang['msg_plugin_update_success'] = 'Plugin %s úspešne aktualizovaný';
-$lang['msg_upload_failed']     = 'Nahrávanie súboru zlyhalo';
-$lang['missing_dependency']    = '<strong>Chýbajúca alebo nepovolená závislosť:</strong> %s';
-$lang['security_issue']        = '<strong>BezpeÄnostný problém:</strong> %s';
-$lang['security_warning']      = '<strong>BezpeÄnostné upozornenie:</strong> %s';
-$lang['update_available']      = '<strong>Aktualizácia:</strong> Nová verzia %s.';
-$lang['wrong_folder']          = '<strong>Plugin nesprávne nainštalovaný:</strong> Premenujte adresár s pluginom "%s" na "%s".';
-$lang['error_badurl']          = 'URL by mali maÅ¥ na zaÄiatku http alebo https';
-$lang['error_dircreate']       = 'Nie je možné vytvoriÅ¥ doÄasný adresár pre uloženie sÅ¥ahovaného súboru';
-$lang['error_download']        = 'Nie je možné stiahnuť súbor: %s';
-$lang['error_decompress']      = 'Nie je možné dekomprimovať stiahnutý súbor. Môže to byť dôvodom chyby sťahovania (v tom prípade to skúste znova) alebo neznámym kompresným formátom (v tom prípade musíte stiahnuť a inštalovať manuálne).';
-$lang['error_copy']            = 'Chyba kopírovania pri inÅ¡talácii do adresára <em>%s</em>: disk môže byÅ¥ plný alebo nemáte potrebné prístupové oprávnenie. Dôsledkom može byÅ¥ ÄiastoÄne inÅ¡talovaný plugin a nestabilná wiki inÅ¡talácia.';
-$lang['nopluginperms']         = 'Adresár s pluginom nie je zapisovateľný.';
-$lang['install_url']           = 'Inštalácia z URL:';
diff --git a/wiki/lib/plugins/extension/lang/sr/intro_install.txt b/wiki/lib/plugins/extension/lang/sr/intro_install.txt
deleted file mode 100644
index b05dc2c..0000000
--- a/wiki/lib/plugins/extension/lang/sr/intro_install.txt
+++ /dev/null
@@ -1 +0,0 @@
-Овде можете ручно инÑталирати прикључке и шаблоне тако што ћете их отпремити или унети адреÑу за директно преузимање.
\ No newline at end of file
diff --git a/wiki/lib/plugins/extension/lang/sr/lang.php b/wiki/lib/plugins/extension/lang/sr/lang.php
deleted file mode 100644
index a4fc884..0000000
--- a/wiki/lib/plugins/extension/lang/sr/lang.php
+++ /dev/null
@@ -1,66 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Марко М. КоÑтић <marko.m.kostic@gmail.com>
- */
-$lang['menu']                  = 'Управник проширења';
-$lang['tab_plugins']           = 'ИнÑталирани прикључци';
-$lang['tab_templates']         = 'ИнÑталирани шаблони';
-$lang['tab_search']            = 'Тражи и инÑталирај';
-$lang['tab_install']           = 'Ручно инÑталирање';
-$lang['notimplemented']        = 'Ова могућноÑÑ‚ још није израђена';
-$lang['notinstalled']          = 'Ово проширење још није инÑталирано';
-$lang['alreadyenabled']        = 'Ово проширење је већ омогућено';
-$lang['alreadydisabled']       = 'Ово проширење је већ онемогућено';
-$lang['pluginlistsaveerror']   = 'Догодила Ñе грешка приликом чувања ÑпиÑка прикључака';
-$lang['unknownauthor']         = 'Ðепознат творац';
-$lang['unknownversion']        = 'Ðепознато издање';
-$lang['btn_info']              = 'Прикажи још података';
-$lang['btn_update']            = 'Ðжурирај';
-$lang['btn_uninstall']         = 'ДеинÑталирај';
-$lang['btn_enable']            = 'Омогући';
-$lang['btn_disable']           = 'Онемогући';
-$lang['btn_install']           = 'ИнÑталирај';
-$lang['btn_reinstall']         = 'Поново инÑталирај';
-$lang['js']['reallydel']       = 'ЗаиÑта деинÑталирати ово проширење?';
-$lang['js']['display_viewoptions'] = 'Опције приказа:';
-$lang['js']['display_enabled'] = 'омогућено';
-$lang['js']['display_disabled'] = 'онемогућено';
-$lang['js']['display_updatable'] = 'могуће ажурирати';
-$lang['search_for']            = 'Претражи проширење:';
-$lang['search']                = 'Претрага';
-$lang['screenshot']            = 'Снимак екрана од %s';
-$lang['popularity']            = 'ПопуларноÑÑ‚: %s%%';
-$lang['homepage_link']         = 'Документа';
-$lang['bugs_features']         = 'Грешке';
-$lang['tags']                  = 'Ознаке:';
-$lang['author_hint']           = 'Претражи проширења овог творца';
-$lang['installed']             = 'ИнÑталирано:';
-$lang['downloadurl']           = 'ÐдреÑа за преузимање:';
-$lang['repository']            = 'Ризница:';
-$lang['unknown']               = '<em>непознато</em>';
-$lang['installed_version']     = 'ИнÑталирано издање:';
-$lang['install_date']          = 'Ваше поÑледње ажурирање:';
-$lang['available_version']     = 'ДоÑтупно издање:';
-$lang['compatible']            = 'Подударно Ñа:';
-$lang['depends']               = 'ЗавиÑи од:';
-$lang['similar']               = 'Слично као:';
-$lang['conflicts']             = 'У Ñукобу Ñа:';
-$lang['donate']                = 'Свиђа вам Ñе?';
-$lang['donate_action']         = 'Купите творцу шољицу кафе!';
-$lang['repo_retry']            = 'Поново покушај';
-$lang['provides']              = 'Пружа:';
-$lang['status']                = 'Стање:';
-$lang['status_installed']      = 'инÑталирано';
-$lang['status_not_installed']  = 'није инÑталирано';
-$lang['status_protected']      = 'заштићено';
-$lang['status_enabled']        = 'омогућено';
-$lang['status_disabled']       = 'онемогућено';
-$lang['status_unmodifiable']   = 'неизмењиво';
-$lang['status_plugin']         = 'прикључак';
-$lang['status_template']       = 'шаблон';
-$lang['status_bundled']        = 'упаковано';
-$lang['msg_enabled']           = 'Прикључак %s је омогућен';
-$lang['msg_disabled']          = 'Прикључак %s је онемогућен';
diff --git a/wiki/lib/plugins/extension/lang/sv/lang.php b/wiki/lib/plugins/extension/lang/sv/lang.php
deleted file mode 100644
index 92d21f2..0000000
--- a/wiki/lib/plugins/extension/lang/sv/lang.php
+++ /dev/null
@@ -1,67 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Tor Härnqvist <tor@harnqvist.se>
- */
-$lang['tab_templates']         = 'Installerade templat';
-$lang['tab_search']            = 'Sök och installera';
-$lang['tab_install']           = 'Manuell installation';
-$lang['notimplemented']        = 'Denna funktion har ännu inte implementerats';
-$lang['unknownauthor']         = 'Okänd skapare';
-$lang['unknownversion']        = 'Okänd version';
-$lang['btn_info']              = 'Visa mer info';
-$lang['btn_update']            = 'Uppdatera';
-$lang['btn_uninstall']         = 'Avinstallera';
-$lang['btn_enable']            = 'Aktivera';
-$lang['btn_disable']           = 'Avaktivera';
-$lang['btn_install']           = 'Installera';
-$lang['btn_reinstall']         = 'Ominstallera';
-$lang['js']['reallydel']       = 'Vill du verkligen avinstallera detta tillägg?';
-$lang['js']['display_viewoptions'] = 'Visa alternativ:';
-$lang['js']['display_enabled'] = 'aktivera';
-$lang['js']['display_disabled'] = 'avaktivera';
-$lang['js']['display_updatable'] = 'möjlig att uppdatera';
-$lang['search']                = 'Sök';
-$lang['screenshot']            = 'Skärmdump av %s';
-$lang['popularity']            = 'Populatitet: %s%%';
-$lang['homepage_link']         = 'Dokumentation';
-$lang['bugs_features']         = 'Buggar';
-$lang['tags']                  = 'Taggar:';
-$lang['installed']             = 'Installerat:';
-$lang['downloadurl']           = 'Nedladdningslänk:';
-$lang['unknown']               = '<em>okänd</em>';
-$lang['installed_version']     = 'Installerad version:';
-$lang['install_date']          = 'Din senaste uppdatering:';
-$lang['available_version']     = 'Tillgänglig version:';
-$lang['compatible']            = 'Kompatibel med:';
-$lang['depends']               = 'Beroende av:';
-$lang['similar']               = 'Liknande som:';
-$lang['conflicts']             = 'Konflikt med:';
-$lang['donate']                = 'Som denna?';
-$lang['donate_action']         = 'Köp en kaffe till skaparen';
-$lang['repo_retry']            = 'Försök igen';
-$lang['status']                = 'Status:';
-$lang['status_installed']      = 'installerad';
-$lang['status_not_installed']  = 'inte installerad';
-$lang['status_protected']      = 'skyddad';
-$lang['status_enabled']        = 'aktiverad';
-$lang['status_disabled']       = 'avaktiverad';
-$lang['status_unmodifiable']   = 'ej modifierbar';
-$lang['msg_enabled']           = 'Tillägg %s aktiverat';
-$lang['msg_disabled']          = 'Tillägg %s avaktiverat';
-$lang['msg_template_install_success'] = 'Templat %s installerades framgångsrikt';
-$lang['msg_template_update_success'] = 'Templat %s uppdaterades framgångsrikt';
-$lang['msg_upload_failed']     = 'Uppladdning av filen misslyckades';
-$lang['security_warning']      = '<strong>Säkerhetsvarning:</strong> %s';
-$lang['update_available']      = '<strong>Uppdatering:</strong> Ny version av %s är tillgänglig.';
-$lang['url_change']            = '<strong>URL ändrad:</strong> Nedladdningslänken har ändrats sedan senaste nedladdning. Kontrollera om den nya sökvägen är giltig innan du uppdaterar tillägget.<br />Ny sökväg: %s<br />Gammal sökväg: %s';
-$lang['error_badurl']          = 'URL:er borde inledas med http eller https';
-$lang['error_dircreate']       = 'Kunde inte skapa temporär katalog för nedladdning';
-$lang['error_download']        = 'Kunde inte ladda ner filen: %s';
-$lang['notplperms']            = 'Templatkatalogen är inte skrivbar';
-$lang['nopluginperms']         = 'Tilläggskatalogen är inte skrivbar';
-$lang['install_url']           = 'Installera från URL:';
-$lang['install_upload']        = 'Ladda upp tillägg:';
-$lang['nossl']                 = 'Din PHP tycks sakna SSL-stöd. Nedladdning kommer inte att fungera för många DokuWiki-tillägg.';
diff --git a/wiki/lib/plugins/extension/lang/tr/lang.php b/wiki/lib/plugins/extension/lang/tr/lang.php
deleted file mode 100644
index c90b7b1..0000000
--- a/wiki/lib/plugins/extension/lang/tr/lang.php
+++ /dev/null
@@ -1,61 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author İlker R. Kapaç <irifat@gmail.com>
- * @author Mete Cuma <mcumax@gmail.com>
- */
-$lang['menu']                  = 'Genişletme Yöneticisi';
-$lang['tab_plugins']           = 'KurulmuÅŸ Eklentiler';
-$lang['tab_templates']         = 'KurulmuÅŸ Åžablonlar';
-$lang['tab_search']            = 'Ara ve Kur';
-$lang['tab_install']           = 'Elle Kurulum';
-$lang['notimplemented']        = 'Bu özellik henüz uygulamaya geçmemiştir';
-$lang['notinstalled']          = 'Bu genişletme yüklü değildir';
-$lang['alreadyenabled']        = 'Bu geniÅŸletme zaten etkinleÅŸtirilmiÅŸtir.';
-$lang['alreadydisabled']       = 'Bu geniÅŸletme zaten pasifleÅŸtirilmiÅŸtir';
-$lang['pluginlistsaveerror']   = 'Eklenti listesini kaydederken bir hata oluÅŸtu.';
-$lang['unknownauthor']         = 'Bilinmeyen yazar';
-$lang['unknownversion']        = 'Bilinmeyen sürüm';
-$lang['btn_info']              = 'Daha fazla bilgi göster';
-$lang['btn_update']            = 'Güncelle';
-$lang['btn_uninstall']         = 'Kaldır';
-$lang['btn_enable']            = 'EtkinleÅŸtir';
-$lang['btn_disable']           = 'PasifleÅŸtir';
-$lang['btn_install']           = 'Kur';
-$lang['btn_reinstall']         = 'Yeniden kur';
-$lang['js']['reallydel']       = 'Genişletme gerçekten kaldırılsın mı?';
-$lang['search_for']            = 'GeniÅŸletme Ara:';
-$lang['search']                = 'Ara';
-$lang['extensionby']           = '<strong>%s</strong> tarafından %s';
-$lang['screenshot']            = '%s ekran görüntüsü';
-$lang['popularity']            = 'RaÄŸbet: %s%%';
-$lang['homepage_link']         = 'Belgeler';
-$lang['bugs_features']         = 'Hatalar';
-$lang['tags']                  = 'Etiketler:';
-$lang['author_hint']           = 'Bu yazarın genişletmelerini ara.';
-$lang['installed']             = 'Kurulu:';
-$lang['downloadurl']           = 'İndirme bağlantısı:';
-$lang['repository']            = 'Veri havuzu:';
-$lang['unknown']               = '<em>bilinmeyen</em>';
-$lang['installed_version']     = 'Kurulu sürüm:';
-$lang['install_date']          = 'Son güncellemeniz:';
-$lang['available_version']     = 'Müsait sürüm:';
-$lang['compatible']            = 'Åžununla uyumlu:';
-$lang['depends']               = 'Şuna bağımlı';
-$lang['similar']               = 'Åžununla benzer';
-$lang['conflicts']             = 'Şununla çelişir:';
-$lang['donate']                = 'BeÄŸendiniz mi?';
-$lang['donate_action']         = 'Yazara bir kahve ısmarlayın!';
-$lang['repo_retry']            = 'Yeniden dene';
-$lang['provides']              = 'SaÄŸlar:';
-$lang['status']                = 'Durum:';
-$lang['status_installed']      = 'kurulu';
-$lang['status_not_installed']  = 'kurulu deÄŸil';
-$lang['status_protected']      = 'korunmuÅŸ';
-$lang['status_enabled']        = 'etkin';
-$lang['status_disabled']       = 'hizmet dışı';
-$lang['status_unmodifiable']   = 'deÄŸiÅŸtirilemez';
-$lang['status_plugin']         = 'eklenti';
-$lang['status_template']       = 'ÅŸablon';
diff --git a/wiki/lib/plugins/extension/lang/zh-tw/intro_install.txt b/wiki/lib/plugins/extension/lang/zh-tw/intro_install.txt
deleted file mode 100644
index 3ba93f5..0000000
--- a/wiki/lib/plugins/extension/lang/zh-tw/intro_install.txt
+++ /dev/null
@@ -1 +0,0 @@
-在此你å¯ä»¥é€éŽæª”案上傳或æä¾›ä¸‹è¼‰ç¶²å€çš„æ–¹å¼ï¼Œé€²è¡Œæ‰‹å‹•安è£å¤–掛與版型風格。
\ No newline at end of file
diff --git a/wiki/lib/plugins/extension/lang/zh-tw/intro_plugins.txt b/wiki/lib/plugins/extension/lang/zh-tw/intro_plugins.txt
deleted file mode 100644
index b5b77a2..0000000
--- a/wiki/lib/plugins/extension/lang/zh-tw/intro_plugins.txt
+++ /dev/null
@@ -1 +0,0 @@
-已經有一些外掛套件被安è£åœ¨ä½ çš„DokuWiki之中。你å¯ä»¥åœ¨é€™è£¡å•Ÿç”¨ã€ç¦ç”¨ï¼Œç”šè‡³æ˜¯å®Œå…¨ç§»é™¤å®ƒå€‘ã€‚å¦‚å¤–æŽ›å¯æ›´æ–°ä¹ŸåŒæ™‚會顯示在這裡,請確ä¿åœ¨æ›´æ–°å‰å…ˆé–±è®€éŽè©²å¥—件之文件。
\ No newline at end of file
diff --git a/wiki/lib/plugins/extension/lang/zh-tw/lang.php b/wiki/lib/plugins/extension/lang/zh-tw/lang.php
deleted file mode 100644
index 8087778..0000000
--- a/wiki/lib/plugins/extension/lang/zh-tw/lang.php
+++ /dev/null
@@ -1,85 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Stan <talktostan@gmail.com>
- * @author June-Hao Hou <junehao@gmail.com>
- * @author lioujheyu <lioujheyu@gmail.com>
- * @author Liou, Jhe-Yu <lioujheyu@gmail.com>
- */
-$lang['menu']                  = '延伸功能管ç†';
-$lang['tab_plugins']           = '已安è£å¤–掛';
-$lang['tab_templates']         = '已安è£è£æ¨¡ç‰ˆ
-';
-$lang['tab_search']            = 'æœå°‹èˆ‡å®‰è£';
-$lang['tab_install']           = '手動安è£';
-$lang['notimplemented']        = '此功能尚未完æˆ';
-$lang['notinstalled']          = '此延伸功能尚未安è£';
-$lang['alreadyenabled']        = '此延伸功能已經安è£';
-$lang['alreadydisabled']       = '此延伸功能åœç”¨';
-$lang['unknownauthor']         = '作者未知';
-$lang['unknownversion']        = '版本未知';
-$lang['btn_info']              = '顯示更多訊æ¯';
-$lang['btn_update']            = 'æ›´æ–°';
-$lang['btn_uninstall']         = '移除安è£';
-$lang['btn_enable']            = '啟用';
-$lang['btn_disable']           = 'åœç”¨';
-$lang['btn_install']           = '安è£';
-$lang['btn_reinstall']         = '釿–°å®‰è£';
-$lang['js']['reallydel']       = '確定è¦ç§»é™¤æ­¤å»¶ä¼¸åŠŸèƒ½ï¼Ÿ';
-$lang['js']['display_enabled'] = '啟用';
-$lang['js']['display_disabled'] = 'ç¦ç”¨';
-$lang['js']['display_updatable'] = '坿›´æ–°';
-$lang['search_for']            = 'æœå°‹å»¶ä¼¸åŠŸèƒ½ï¼š';
-$lang['search']                = 'æœå°‹';
-$lang['homepage_link']         = '文件';
-$lang['tags']                  = '標籤:';
-$lang['author_hint']           = 'æœå°‹ç›¸åŒä½œè€…的延伸功能';
-$lang['installed']             = '已安è£ï¼š';
-$lang['downloadurl']           = '下載網å€ï¼š';
-$lang['unknown']               = '<em>未知</em>';
-$lang['installed_version']     = '已安è£ç‰ˆæœ¬ï¼š';
-$lang['install_date']          = '你最後一次更新: ';
-$lang['available_version']     = 'å¯ç”¨ç‰ˆæœ¬ï¼š';
-$lang['compatible']            = '相容於:';
-$lang['depends']               = 'ä¾è³´æ–¼: ';
-$lang['similar']               = '類似於: ';
-$lang['conflicts']             = '相è¡çªæ–¼: ';
-$lang['donate']                = 'åƒé€™æ¨£ï¼Ÿ';
-$lang['donate_action']         = '請作者一æ¯å’–å•¡ï¼';
-$lang['repo_retry']            = 'å†è©¦ä¸€æ¬¡';
-$lang['status']                = '狀態:';
-$lang['status_installed']      = '已安è£';
-$lang['status_not_installed']  = '未安è£';
-$lang['status_protected']      = 'å·²ä¿è­·';
-$lang['status_enabled']        = '作用中';
-$lang['status_disabled']       = 'åœç”¨ä¸­';
-$lang['status_unmodifiable']   = 'ä¸å¯æ›´å‹•';
-$lang['status_plugin']         = '外掛';
-$lang['status_template']       = '模æ¿';
-$lang['status_bundled']        = '已綑ç¶å…§é™„';
-$lang['msg_enabled']           = '外掛 %s 已啟用';
-$lang['msg_disabled']          = '外掛 %s å·²ç¦ç”¨';
-$lang['msg_delete_failed']     = 'è§£é™¤å®‰è£ %s 失敗';
-$lang['msg_template_install_success'] = 'æ¨¡æ¿ %s 以æˆåŠŸå®‰è£';
-$lang['msg_template_update_success'] = 'æ¨¡æ¿ %s 以æˆåŠŸæ›´æ–°';
-$lang['msg_plugin_install_success'] = '外掛 %s 以æˆåŠŸå®‰è£';
-$lang['msg_plugin_update_success'] = '外掛 %s 以æˆåŠŸæ›´æ–°';
-$lang['msg_upload_failed']     = '上傳檔案失敗';
-$lang['missing_dependency']    = '<strong>éºå¤±æˆ–ç¦ç”¨ç›¸ä¾æ€§å¥—ä»¶:</strong> %s';
-$lang['security_issue']        = '<strong>安全性å•題:</strong> %s';
-$lang['security_warning']      = '<strong>安全å•題警告:</strong> %s';
-$lang['update_available']      = '<strong>æ›´æ–°:</strong> å·²å¯å–å¾— %s 的新版本';
-$lang['wrong_folder']          = '<strong>外掛安è£ä¸æ­£ç¢º:</strong> 將外掛資料夾從 "%s" æ›´å至 "%s"。';
-$lang['url_change']            = '<strong>ç¶²å€å·²è®Šæ›´:</strong> 自從上次下載後下載網å€å·²è®Šæ›´ã€‚在更新延伸功能å‰è«‹å…ˆæª¢æŸ¥æ–°ç¶²å€æ˜¯å¦å¯ç”¨ã€‚<br />æ–°: %s<br />舊: %s';
-$lang['error_dircreate']       = '無法建立暫存目錄以接收下載檔案';
-$lang['error_download']        = '無法下載檔案:%s';
-$lang['error_decompress']      = '無法解壓縮檔案。這å¯èƒ½æ˜¯ä¸‹è¼‰å“質ä¸ä½³æ‰€è‡´ï¼Œåœ¨é€™å€‹æƒ…æ³ä¸‹ä½ æ‡‰è©²å†è©¦ä¸€æ¬¡ï¼›ä¹Ÿæœ‰å¯èƒ½æ˜¯å› ç‚ºç„¡æ³•辨識的壓縮格å¼ï¼Œåœ¨é€™å€‹æƒ…æ³ä¸‹ä½ æ‡‰è©²è‡ªè¡Œä¸‹è¼‰ä¸¦æ‰‹å‹•安è£';
-$lang['error_findfolder']      = '無法辨èªå»¶ä¼¸åŠŸèƒ½è³‡æ–™å¤¾ï¼Œä½ å¿…é ˆè‡ªè¡Œä¸‹è¼‰ä¸¦æ‰‹å‹•å®‰è£';
-$lang['noperms']               = '延伸功能資料夾無法寫入';
-$lang['notplperms']            = '版型資料夾無法寫入';
-$lang['nopluginperms']         = '外掛資料夾無法寫入';
-$lang['git']                   = '此延伸功能是é€éŽgit安è£çš„,最好ä¸è¦ç”¨ä¸Šå‚³æ–¹å¼ã€‚';
-$lang['install_url']           = 'é€éŽç¶²å€å®‰è£ï¼š';
-$lang['install_upload']        = '上傳延伸功能:';
diff --git a/wiki/lib/plugins/extension/lang/zh/intro_install.txt b/wiki/lib/plugins/extension/lang/zh/intro_install.txt
deleted file mode 100644
index 6408393..0000000
--- a/wiki/lib/plugins/extension/lang/zh/intro_install.txt
+++ /dev/null
@@ -1 +0,0 @@
-ä½ å¯ä»¥é€šè¿‡ä¸Šä¼ æˆ–直接æä¾›ä¸‹è½½é“¾æŽ¥æ¥å®‰è£…æ’件和模æ¿ã€‚
\ No newline at end of file
diff --git a/wiki/lib/plugins/extension/lang/zh/intro_plugins.txt b/wiki/lib/plugins/extension/lang/zh/intro_plugins.txt
deleted file mode 100644
index 69cb343..0000000
--- a/wiki/lib/plugins/extension/lang/zh/intro_plugins.txt
+++ /dev/null
@@ -1 +0,0 @@
-这些是你当å‰å·²ç»å®‰è£…çš„æ’件。你å¯ä»¥åœ¨è¿™é‡Œå¯ç”¨å’Œç¦ç”¨ç”šè‡³å¸è½½å®ƒä»¬ã€‚æ’件的更新信æ¯ä¹Ÿæ˜¾ç¤ºåœ¨è¿™ï¼Œè¯·ä¸€å®šåœ¨æ›´æ–°ä¹‹å‰é˜…读æ’件的文档。
\ No newline at end of file
diff --git a/wiki/lib/plugins/extension/lang/zh/intro_search.txt b/wiki/lib/plugins/extension/lang/zh/intro_search.txt
deleted file mode 100644
index ebc7e99..0000000
--- a/wiki/lib/plugins/extension/lang/zh/intro_search.txt
+++ /dev/null
@@ -1 +0,0 @@
-这个标签会为你展示所有 DokuWiki 的第三方æ’件和模æ¿ã€‚但你需è¦çŸ¥é“这些由第三方æä¾›çš„代ç å¯èƒ½ä¼šç»™ä½ å¸¦æ¥**安全方é¢çš„风险**,你最好先读一下[[doku>security#plugin_security|æ’件安全性]]。
\ No newline at end of file
diff --git a/wiki/lib/plugins/extension/lang/zh/intro_templates.txt b/wiki/lib/plugins/extension/lang/zh/intro_templates.txt
deleted file mode 100644
index 10c1bed..0000000
--- a/wiki/lib/plugins/extension/lang/zh/intro_templates.txt
+++ /dev/null
@@ -1 +0,0 @@
-DokuWiki 当剿‰€ä½¿ç”¨çš„æ¨¡æ¿å·²ç»å®‰è£…了,你å¯ä»¥åœ¨[[?do=admin&page=config|é…置管ç†å™¨]]里选择你è¦çš„æ¨¡æ¿ã€‚
\ No newline at end of file
diff --git a/wiki/lib/plugins/extension/lang/zh/lang.php b/wiki/lib/plugins/extension/lang/zh/lang.php
deleted file mode 100644
index 622a007..0000000
--- a/wiki/lib/plugins/extension/lang/zh/lang.php
+++ /dev/null
@@ -1,101 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author lempel <riverlempel@hotmail.com>
- * @author Cupen <Cupenoruler@foxmail.com>
- * @author xiqingongzi <Xiqingongzi@Gmail.com>
- * @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']           = '安装æ’ä»¶';
-$lang['tab_templates']         = '安装模æ¿';
-$lang['tab_search']            = 'æœç´¢å’Œå®‰è£…';
-$lang['tab_install']           = '手动安装';
-$lang['notimplemented']        = '未实现的特性';
-$lang['notinstalled']          = '该扩展未安装';
-$lang['alreadyenabled']        = '该扩展已激活';
-$lang['alreadydisabled']       = '该扩展已关闭';
-$lang['pluginlistsaveerror']   = 'ä¿å­˜æ’件列表时碰到个错误';
-$lang['unknownauthor']         = '未知作者';
-$lang['unknownversion']        = '未知版本';
-$lang['btn_info']              = '查看更多信æ¯';
-$lang['btn_update']            = 'æ›´æ–°';
-$lang['btn_uninstall']         = 'å¸è½½';
-$lang['btn_enable']            = '激活';
-$lang['btn_disable']           = '关闭';
-$lang['btn_install']           = '安装';
-$lang['btn_reinstall']         = '釿–°å®‰è£…';
-$lang['js']['reallydel']       = '确定å¸è½½è¿™ä¸ªæ‰©å±•么?';
-$lang['js']['display_viewoptions'] = '查看选项:';
-$lang['js']['display_enabled'] = 'å¯ç”¨';
-$lang['js']['display_disabled'] = 'ç¦ç”¨';
-$lang['js']['display_updatable'] = '坿›´æ–°';
-$lang['search_for']            = 'æœç´¢æ‰©å±•';
-$lang['search']                = 'æœç´¢';
-$lang['extensionby']           = '<strong>%s</strong> by %s';
-$lang['screenshot']            = '%s 的截图';
-$lang['popularity']            = '人气: %s%%';
-$lang['homepage_link']         = '文档';
-$lang['bugs_features']         = '错误';
-$lang['tags']                  = '标签:';
-$lang['author_hint']           = 'æœç´¢è¿™ä¸ªä½œè€…çš„æ’ä»¶';
-$lang['installed']             = '已安装的:';
-$lang['downloadurl']           = '下载地å€ï¼š';
-$lang['repository']            = '版本库:';
-$lang['unknown']               = '<em>未知的</em>';
-$lang['installed_version']     = '已安装版本:';
-$lang['install_date']          = '您的最åŽä¸€æ¬¡å‡çº§ï¼š';
-$lang['available_version']     = 'å¯ç”¨ç‰ˆæœ¬ï¼š';
-$lang['compatible']            = '兼容于:';
-$lang['depends']               = 'ä¾èµ–于:';
-$lang['similar']               = '相似于:';
-$lang['conflicts']             = '冲çªäºŽï¼š';
-$lang['donate']                = '喜欢?';
-$lang['donate_action']         = 'æç»™ä½œè€…一æ¯å’–å•¡é’±ï¼';
-$lang['repo_retry']            = 'é‡è¯•';
-$lang['provides']              = 'æä¾›ï¼š';
-$lang['status']                = '现状:';
-$lang['status_installed']      = '已安装的';
-$lang['status_not_installed']  = '未安装';
-$lang['status_protected']      = 'å—ä¿æŠ¤';
-$lang['status_enabled']        = 'å¯ç”¨';
-$lang['status_disabled']       = 'ç¦ç”¨';
-$lang['status_unmodifiable']   = 'ä¸å¯ä¿®æ”¹';
-$lang['status_plugin']         = 'æ’ä»¶';
-$lang['status_template']       = '模æ¿';
-$lang['status_bundled']        = '内建';
-$lang['msg_enabled']           = 'æ’ä»¶ %s å·²å¯ç”¨';
-$lang['msg_disabled']          = 'æ’ä»¶ %s å·²ç¦ç”¨';
-$lang['msg_delete_success']    = '%s 扩展没有安装';
-$lang['msg_delete_failed']     = 'å¸è½½æ‰©å±• %s 失败';
-$lang['msg_template_install_success'] = 'æ¨¡æ¿ %s 安装æˆåŠŸ';
-$lang['msg_template_update_success'] = 'æ¨¡æ¿ %s æ›´æ–°æˆåŠŸ';
-$lang['msg_plugin_install_success'] = 'æ’ä»¶ %s 安装æˆåŠŸ';
-$lang['msg_plugin_update_success'] = 'æ’ä»¶ %s æ›´æ–°æˆåŠŸ';
-$lang['msg_upload_failed']     = '上传文件失败';
-$lang['missing_dependency']    = '<strong>缺少或者被ç¦ç”¨ä¾èµ–:</strong> %s';
-$lang['security_issue']        = '<strong>安全问题:</strong> %s';
-$lang['security_warning']      = '<strong>安全警告:</strong> %s';
-$lang['update_available']      = '<strong>更新:</strong>新版本 %s å·²ç»å¯ç”¨ã€‚';
-$lang['wrong_folder']          = '<strong>æ’ä»¶å®‰è£…ä¸æ­£ç¡®ï¼š</strong>é‡å‘½åæ’件目录 "%s" 为 "%s"。';
-$lang['url_change']            = '<strong>URL已改å˜ï¼š</strong>自上次下载以æ¥çš„下载 URL å·²ç»æ”¹å˜ã€‚è¯·åœ¨æ›´æ–°æ‰©å±•å‰æ£€æŸ¥æ–° URL æ˜¯å¦æœ‰æ•ˆã€‚<br />新的:%s<br />旧的:%s';
-$lang['error_badurl']          = 'URL 应当以 http 或者 https 作为开头';
-$lang['error_dircreate']       = '无法创建用于ä¿å­˜ä¸‹è½½çš„临时文件夹';
-$lang['error_download']        = '无法下载文件:%s';
-$lang['error_decompress']      = '无法解压下载的文件。这å¯èƒ½æ˜¯ç”±äºŽæ–‡ä»¶æŸåï¼Œåœ¨è¿™ç§æƒ…况下您å¯ä»¥é‡è¯•。这也å¯èƒ½æ˜¯ç”±äºŽåŽ‹ç¼©æ ¼å¼æ˜¯æœªçŸ¥çš„ï¼Œåœ¨è¿™ç§æƒ…å†µä¸‹æ‚¨éœ€è¦æ‰‹åŠ¨ä¸‹è½½å¹¶ä¸”å®‰è£…ã€‚';
-$lang['error_findfolder']      = 'æ— æ³•è¯†åˆ«æ‰©å±•ç›®å½•ï¼Œæ‚¨éœ€è¦æ‰‹åŠ¨ä¸‹è½½å’Œå®‰è£…';
-$lang['error_copy']            = '在å°è¯•安装文件到目录 <em>%s</em> 时出现文件å¤åˆ¶é”™è¯¯ï¼šç£ç›˜å¯èƒ½å·²æ»¡æˆ–者文件访问æƒé™ä¸æ­£ç¡®ã€‚è¿™å¯èƒ½å¯¼è‡´æ’件被部分安装并使您的维基处在ä¸ç¨³å®šçжæ€';
-$lang['noperms']               = '扩展目录ä¸å¯å†™';
-$lang['notplperms']            = '模æ¿ç›®å½•ä¸å¯å†™';
-$lang['nopluginperms']         = 'æ’件目录ä¸å¯å†™';
-$lang['git']                   = '这个扩展是通过 Git 安装的,您å¯èƒ½ä¸æƒ³åœ¨è¿™é‡Œå‡çº§å®ƒ';
-$lang['auth']                  = 'è¿™ä¸ªè®¤è¯æ’件没有在é…置中å¯ç”¨ï¼Œè¯·è€ƒè™‘ç¦ç”¨å®ƒã€‚';
-$lang['install_url']           = '从 URL 安装:';
-$lang['install_upload']        = '上传扩展:';
-$lang['repo_error']            = '无法连接到æ’件仓库。请确定您的æœåС噍å¯ä»¥è¿žæŽ¥ www.dokuwiki.org 并检查您的代ç†è®¾ç½®ã€‚';
-$lang['nossl']                 = '您的 PHP ä¼¼ä¹Žä¸æ”¯æŒ SSL。很多 DokuWiki 扩展将无法下载。';
diff --git a/wiki/lib/plugins/extension/plugin.info.txt b/wiki/lib/plugins/extension/plugin.info.txt
deleted file mode 100644
index 7ee84dc..0000000
--- a/wiki/lib/plugins/extension/plugin.info.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-base   extension
-author Michael Hamann
-email  michael@content-space.de
-date   2015-07-26
-name   Extension Manager
-desc   Allows managing and installing plugins and templates
-url    https://www.dokuwiki.org/plugin:extension
diff --git a/wiki/lib/plugins/extension/script.js b/wiki/lib/plugins/extension/script.js
deleted file mode 100644
index 8627db4..0000000
--- a/wiki/lib/plugins/extension/script.js
+++ /dev/null
@@ -1,145 +0,0 @@
-jQuery(function(){
-
-    var $extmgr = jQuery('#extension__manager');
-
-    /**
-     * Confirm uninstalling
-     */
-    $extmgr.find('button.uninstall').click(function(e){
-        if(!window.confirm(LANG.plugins.extension.reallydel)){
-            e.preventDefault();
-            return false;
-        }
-        return true;
-    });
-
-    /**
-     * very simple lightbox
-     * @link http://webdesign.tutsplus.com/tutorials/htmlcss-tutorials/super-simple-lightbox-with-css-and-jquery/
-     */
-    $extmgr.find('a.extension_screenshot').click(function(e) {
-        e.preventDefault();
-
-        //Get clicked link href
-        var image_href = jQuery(this).attr("href");
-
-        // create lightbox if needed
-        var $lightbox = jQuery('#plugin__extensionlightbox');
-        if(!$lightbox.length){
-            $lightbox = jQuery('<div id="plugin__extensionlightbox"><p>Click to close</p><div></div></div>')
-                .appendTo(jQuery('body'))
-                .hide()
-                .click(function(){
-                    $lightbox.hide();
-                });
-        }
-
-        // fill and show it
-        $lightbox
-            .show()
-            .find('div').html('<img src="' + image_href + '" />');
-
-
-        return false;
-    });
-
-    /**
-     * Enable/Disable extension via AJAX
-     */
-    $extmgr.find('button.disable, button.enable').click(function (e) {
-        e.preventDefault();
-        var $btn = jQuery(this);
-
-        // get current state
-        var extension = $btn.attr('name').split('[')[2];
-        extension = extension.substr(0, extension.length - 1);
-        var act = ($btn.hasClass('disable')) ? 'disable' : 'enable';
-
-        // disable while we wait
-        $btn.attr('disabled', 'disabled');
-        $btn.css('cursor', 'wait');
-
-        // execute
-        jQuery.get(
-            DOKU_BASE + 'lib/exe/ajax.php',
-            {
-                call: 'plugin_extension',
-                ext:  extension,
-                act:  act
-            },
-            function (data) {
-                $btn.css('cursor', '')
-                    .removeAttr('disabled')
-                    .removeClass('disable')
-                    .removeClass('enable')
-                    .text(data.label)
-                    .addClass(data.reverse)
-                .parents('li')
-                    .removeClass('disabled')
-                    .removeClass('enabled')
-                    .addClass(data.state);
-            }
-        );
-    });
-
-    /**
-     * AJAX detail infos
-     */
-    $extmgr.find('a.info').click(function(e){
-        e.preventDefault();
-
-        var $link = jQuery(this);
-        var $details = $link.parent().find('dl.details');
-        if($details.length){
-            $link.toggleClass('close');
-            $details.toggle();
-            return;
-        }
-
-        $link.addClass('close');
-        jQuery.get(
-            DOKU_BASE + 'lib/exe/ajax.php',
-            {
-                call: 'plugin_extension',
-                ext: $link.data('extid'),
-                act: 'info'
-            },
-            function(data){
-                $link.parent().append(data);
-            }
-        );
-    });
-
-    /**
-        Create section for enabling/disabling viewing options
-     */
-    if ( $extmgr.find('.plugins, .templates').hasClass('active') ) {
-        var $extlist = jQuery('#extension__list');
-        $extlist.addClass('hasDisplayOptions');
-
-        var $displayOpts = jQuery('<p>', { id: 'extension__viewoptions'} ).appendTo($extmgr.find( '.panelHeader' ));
-        $displayOpts.append(LANG.plugins.extension.display_viewoptions);
-
-        var displayOptionsHandler = function(){
-            $extlist.toggleClass( this.name );
-            DokuCookie.setValue('ext_'+this.name, $extlist.hasClass(this.name) ? '1' : '0');
-        };
-
-        jQuery(['enabled', 'disabled', 'updatable']).each(function(index, chkName){
-            var $label = jQuery( '<label></label>' )
-                .appendTo($displayOpts);
-            var $input = jQuery( '<input />', { type: 'checkbox', name: chkName })
-                .change(displayOptionsHandler)
-                .appendTo($label);
-
-            var previous = DokuCookie.getValue('ext_'+chkName);
-            if(typeof previous === "undefined" || previous == '1') {
-                $input.click();
-            }
-
-            jQuery( '<span/>' )
-                .append(' '+LANG.plugins.extension['display_'+chkName])
-                .appendTo($label);
-        });
-    }
-});
diff --git a/wiki/lib/plugins/extension/style.less b/wiki/lib/plugins/extension/style.less
deleted file mode 100644
index 261fa1c..0000000
--- a/wiki/lib/plugins/extension/style.less
+++ /dev/null
@@ -1,386 +0,0 @@
-/*
- * Extension plugin styles
- *
- * @author  Christopher Smith <chris@jalakai.co.uk>
- * @author  Piyush Mishra <me@piyushmishra.com>
- * @author  HÃ¥kan Sandell <sandell.hakan@gmail.com>
- * @author  Anika Henke <anika@selfthinker.org>
- */
-
-/**
- * very simple lightbox
- * @link http://webdesign.tutsplus.com/tutorials/htmlcss-tutorials/super-simple-lightbox-with-css-and-jquery/
- */
-#plugin__extensionlightbox {
-    position: fixed;
-    top: 0;
-    left: 0;
-    width: 100%;
-    height: 100%;
-    background: url(images/overlay.png) repeat;
-    text-align: center;
-    cursor: pointer;
-    z-index: 9999;
-
-    p {
-        text-align: right;
-        color: #fff;
-        margin-right: 20px;
-        font-size: 12px;
-    }
-
-    img {
-        box-shadow: 0 0 25px #111;
-        max-width: 90%;
-        max-height: 90%;
-    }
-}
-
-/**
- * general styles
- */
-#extension__manager {
-    // tab layout - most of it is in the main template
-    ul.tabs li.active a {
-        background-color: @ini_background_alt;
-        border-bottom: solid 1px @ini_background_alt;
-        z-index: 2;
-    }
-    .panelHeader {
-        background-color: @ini_background_alt;
-        margin: 0 0 10px 0;
-        padding: 10px 10px 8px;
-        overflow: hidden;
-    }
-
-    // message spacing
-    div.msg {
-        margin: 0.4em 0 0 0;
-    }
-}
-
-/*
- * extensions table
- */
-#extension__list {
-    ul.extensionList {
-        margin-left: 0;
-        margin-right: 0;
-        padding: 0;
-        list-style: none;
-    }
-
-    ul.extensionList li {
-        margin: 0 0 .5em;
-        padding: 0 0 .5em;
-        color: @ini_text;
-        border-bottom: 1px solid @ini_border;
-        overflow: hidden;
-    }
-
-    button {
-        margin-bottom: .3em;
-    }
-}
-
-/**
- * extension table left column
- */
-#extension__list .legend {
-    position: relative;
-    width: 75%;
-    float: left;
-
-    // padding
-    > div {
-        padding: 0 .5em 0 132px;
-        border-right: 1px solid @ini_background_alt;
-        overflow: hidden;
-    }
-
-    // screenshot
-    div.screenshot {
-        margin-top: 4px;
-        margin-left: -132px;
-        max-width: 120px;
-        float: left;
-        position: relative;
-
-        img {
-            width: 120px;
-            height: 70px;
-            border-radius: 5px;
-            box-shadow: 2px 2px 2px #666;
-        }
-
-        span {
-            min-height: 24px;
-            min-width: 24px;
-            position: absolute;
-            left: 0;
-            top: 0;
-        }
-    }
-
-    // plugin headline
-    h2 {
-        width: 100%;
-        float: right;
-        margin: 0.2em 0 0.5em;
-        font-size: 100%;
-        font-weight: normal;
-        border: none;
-
-        strong {
-            font-size: 120%;
-            font-weight: bold;
-            vertical-align: baseline;
-        }
-    }
-
-    // description
-    p {
-        margin: 0 0 0.6em 0;
-    }
-
-    // popularity bar
-    div.popularity {
-        background-color: @ini_background;
-        border: 1px solid silver;
-        height: .4em;
-        margin: 0 auto;
-        padding: 1px;
-        width: 5.5em;
-        position: absolute;
-        right: .5em;
-        top: 0.2em;
-
-        div {
-            background-color: @ini_border;
-            height: 100%;
-        }
-    }
-
-    // Docs, Bugs, Tags
-    div.linkbar {
-        font-size: 85%;
-
-        span.tags {
-            padding-left: 18px;
-            background: transparent url(images/tag.png) no-repeat 0 0;
-        }
-
-        a.bugs {
-            padding-left: 18px;
-            background: transparent url(images/bug.gif) no-repeat 0 0;
-        }
-    }
-
-    // more info button
-    a.info {
-        background: transparent url(images/down.png) no-repeat 0 0;
-        border-width: 0;
-        height: 13px;
-        width: 13px;
-        text-indent: -9999px;
-        float: right;
-        margin: .5em 0 0;
-        overflow: hidden;
-
-        &.close {
-            background: transparent url(images/up.png) no-repeat 0 0;
-        }
-    }
-
-    // detailed info box
-    dl.details {
-        margin: 0.4em 0 0 0;
-        font-size: 85%;
-        border-top: 1px solid @ini_background_alt;
-        clear: both;
-
-        dt {
-            clear: left;
-            float: left;
-            width: 25%;
-            margin: 0;
-            text-align: right;
-            font-weight: normal;
-            padding: 0.2em 5px 0 0;
-            font-weight: bold;
-        }
-
-        dd {
-            margin-left: 25%;
-            padding: 0.2em 0 0 5px;
-
-            a.donate {
-                padding-left: 18px;
-                background: transparent url(images/donate.png) left center no-repeat;
-            }
-        }
-    }
-}
-
-[dir=rtl] #extension__list .legend {
-    float: right;
-
-    > div {
-        padding: 0 132px 0 .5em;
-        border-left: 1px solid @ini_background_alt;
-        border-right-width: 0;
-    }
-
-    div.screenshot {
-        margin-left: 0;
-        margin-right: -132px;
-        float: right;
-
-        span {
-            left: auto;
-            right: 0;
-        }
-    }
-
-    h2 {
-        float: left;
-    }
-
-    div.popularity {
-        right: auto;
-        left: .5em;
-    }
-
-    div.linkbar span.tags,
-    dl.details dd a.donate {
-        padding-left: 0;
-        padding-right: 18px;
-        background-position: top right;
-    }
-
-    a.info {
-        float: left;
-    }
-
-    dl.details {
-        dt {
-            clear: right;
-            float: right;
-            text-align: left;
-            padding-left: 5px;
-            padding-right: 0;
-        }
-
-        dd {
-            margin-left: 0;
-            margin-right: 25%;
-            padding-left: 0;
-            padding-right: 5px;
-        }
-    }
-}
-
-/*
- * Enabled/Disabled overrides
- */
-#extension__list {
-
-    &.hasDisplayOptions {
-        .enabled,
-        .disabled,
-        .updatable {
-            display: none;
-        }
-
-        &.enabled .enabled,
-        &.disabled .disabled,
-        &.updatable .updatable {
-            display: block;
-        }
-    }
-
-    .enabled div.screenshot span {
-        background: transparent url(images/enabled.png) no-repeat 2px 2px;
-    }
-
-    .disabled div.screenshot span {
-        background: transparent url(images/disabled.png) no-repeat 2px 2px;
-    }
-
-    .disabled .legend {
-        opacity: 0.7;
-    }
-}
-
-/**
- * extension table right column
- */
-#extension__manager .actions {
-    padding: 0;
-    font-size: 95%;
-    width: 25%;
-    float: right;
-    text-align: right;
-
-    .version {
-        display: block;
-    }
-
-    p {
-        margin: 0.2em 0;
-        text-align: center;
-    }
-
-    p.permerror {
-        margin-left: 0.4em;
-        text-align: left;
-        padding-left: 19px;
-        background: transparent url(images/warning.png) center left no-repeat;
-        line-height: 18px;
-        font-size: 12px;
-    }
-}
-
-[dir=rtl] #extension__manager .actions {
-    float: left;
-    text-align: left;
-
-    p.permerror {
-        margin-left: 0;
-        margin-right: 0.4em;
-        text-align: right;
-        padding-left: 0;
-        padding-right: 19px;
-        background-position: center right;
-    }
-}
-
-/**
- * Search form
- */
-#extension__manager form.search {
-    display: block;
-    margin-bottom: 2em;
-
-    span {
-        font-weight: bold;
-    }
-
-    input.edit {
-        width: 25em;
-    }
-}
-
-/**
- * Install form
- */
-#extension__manager form.install {
-    text-align: center;
-    display: block;
-    width: 60%;
-}
-
-#extension__viewoptions label {
-    margin-left: 1em;
-    vertical-align: baseline;
-}
diff --git a/wiki/lib/plugins/index.html b/wiki/lib/plugins/index.html
deleted file mode 100644
index 977f90e..0000000
--- a/wiki/lib/plugins/index.html
+++ /dev/null
@@ -1,11 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<meta http-equiv="refresh" content="0; URL=../../" />
-<meta name="robots" content="noindex" />
-<title>nothing here...</title>
-</head>
-<body>
-<!-- this is just here to prevent directory browsing -->
-</body>
-</html>
diff --git a/wiki/lib/plugins/info/plugin.info.txt b/wiki/lib/plugins/info/plugin.info.txt
deleted file mode 100644
index 3f05391..0000000
--- a/wiki/lib/plugins/info/plugin.info.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-base info
-author Andreas Gohr
-email andi@splitbrain.org
-date 2014-10-01
-name Info Plugin
-desc Displays information about various DokuWiki internals
-url http://dokuwiki.org/plugin:info
diff --git a/wiki/lib/plugins/info/syntax.php b/wiki/lib/plugins/info/syntax.php
deleted file mode 100644
index 773256f..0000000
--- a/wiki/lib/plugins/info/syntax.php
+++ /dev/null
@@ -1,294 +0,0 @@
-<?php
-/**
- * Info Plugin: Displays information about various DokuWiki internals
- *
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * @author     Andreas Gohr <andi@splitbrain.org>
- * @author     Esther Brunner <wikidesign@gmail.com>
- */
-// must be run within Dokuwiki
-if(!defined('DOKU_INC')) die();
-
-/**
- * All DokuWiki plugins to extend the parser/rendering mechanism
- * need to inherit from this class
- */
-class syntax_plugin_info extends DokuWiki_Syntax_Plugin {
-
-    /**
-     * What kind of syntax are we?
-     */
-    function getType(){
-        return 'substition';
-    }
-
-    /**
-     * What about paragraphs?
-     */
-    function getPType(){
-        return 'block';
-    }
-
-    /**
-     * Where to sort in?
-     */
-    function getSort(){
-        return 155;
-    }
-
-
-    /**
-     * Connect pattern to lexer
-     */
-    function connectTo($mode) {
-        $this->Lexer->addSpecialPattern('~~INFO:\w+~~',$mode,'plugin_info');
-    }
-
-    /**
-     * Handle the match
-     *
-     * @param   string       $match   The text matched by the patterns
-     * @param   int          $state   The lexer state for the match
-     * @param   int          $pos     The character position of the matched text
-     * @param   Doku_Handler $handler The Doku_Handler object
-     * @return  array Return an array with all data you want to use in render
-     */
-    function handle($match, $state, $pos, Doku_Handler $handler){
-        $match = substr($match,7,-2); //strip ~~INFO: from start and ~~ from end
-        return array(strtolower($match));
-    }
-
-    /**
-     * Create output
-     *
-     * @param string $format   string     output format being rendered
-     * @param Doku_Renderer    $renderer  the current renderer object
-     * @param array            $data      data created by handler()
-     * @return  boolean                 rendered correctly?
-     */
-    function render($format, Doku_Renderer $renderer, $data) {
-        if($format == 'xhtml'){
-            /** @var Doku_Renderer_xhtml $renderer */
-            //handle various info stuff
-            switch ($data[0]){
-                case 'syntaxmodes':
-                    $renderer->doc .= $this->_syntaxmodes_xhtml();
-                    break;
-                case 'syntaxtypes':
-                    $renderer->doc .= $this->_syntaxtypes_xhtml();
-                    break;
-                case 'syntaxplugins':
-                    $this->_plugins_xhtml('syntax', $renderer);
-                    break;
-                case 'adminplugins':
-                    $this->_plugins_xhtml('admin', $renderer);
-                    break;
-                case 'actionplugins':
-                    $this->_plugins_xhtml('action', $renderer);
-                    break;
-                case 'rendererplugins':
-                    $this->_plugins_xhtml('renderer', $renderer);
-                    break;
-                case 'helperplugins':
-                    $this->_plugins_xhtml('helper', $renderer);
-                    break;
-                case 'authplugins':
-                    $this->_plugins_xhtml('auth', $renderer);
-                    break;
-                case 'remoteplugins':
-                    $this->_plugins_xhtml('remote', $renderer);
-                    break;
-                case 'helpermethods':
-                    $this->_helpermethods_xhtml($renderer);
-                    break;
-                default:
-                    $renderer->doc .= "no info about ".htmlspecialchars($data[0]);
-            }
-            return true;
-        }
-        return false;
-    }
-
-    /**
-     * list all installed plugins
-     *
-     * uses some of the original renderer methods
-     *
-     * @param string $type
-     * @param Doku_Renderer_xhtml $renderer
-     */
-    function _plugins_xhtml($type, Doku_Renderer_xhtml $renderer){
-        global $lang;
-        $renderer->doc .= '<ul>';
-
-        $plugins = plugin_list($type);
-        $plginfo = array();
-
-        // remove subparts
-        foreach($plugins as $p){
-            if (!$po = plugin_load($type,$p)) continue;
-            list($name,/* $part */) = explode('_',$p,2);
-            $plginfo[$name] = $po->getInfo();
-        }
-
-        // list them
-        foreach($plginfo as $info){
-            $renderer->doc .= '<li><div class="li">';
-            $renderer->externallink($info['url'],$info['name']);
-            $renderer->doc .= ' ';
-            $renderer->doc .= '<em>'.$info['date'].'</em>';
-            $renderer->doc .= ' ';
-            $renderer->doc .= $lang['by'];
-            $renderer->doc .= ' ';
-            $renderer->emaillink($info['email'],$info['author']);
-            $renderer->doc .= '<br />';
-            $renderer->doc .= strtr(hsc($info['desc']),array("\n"=>"<br />"));
-            $renderer->doc .= '</div></li>';
-            unset($po);
-        }
-
-        $renderer->doc .= '</ul>';
-    }
-
-    /**
-     * list all installed plugins
-     *
-     * uses some of the original renderer methods
-     *
-     * @param Doku_Renderer_xhtml $renderer
-     */
-    function _helpermethods_xhtml(Doku_Renderer_xhtml $renderer){
-        $plugins = plugin_list('helper');
-        foreach($plugins as $p){
-            if (!$po = plugin_load('helper',$p)) continue;
-
-            if (!method_exists($po, 'getMethods')) continue;
-            $methods = $po->getMethods();
-            $info = $po->getInfo();
-
-            $hid = $this->_addToTOC($info['name'], 2, $renderer);
-            $doc = '<h2><a name="'.$hid.'" id="'.$hid.'">'.hsc($info['name']).'</a></h2>';
-            $doc .= '<div class="level2">';
-            $doc .= '<p>'.strtr(hsc($info['desc']), array("\n"=>"<br />")).'</p>';
-            $doc .= '<pre class="code">$'.$p." = plugin_load('helper', '".$p."');</pre>";
-            $doc .= '</div>';
-            foreach ($methods as $method){
-                $title = '$'.$p.'->'.$method['name'].'()';
-                $hid = $this->_addToTOC($title, 3, $renderer);
-                $doc .= '<h3><a name="'.$hid.'" id="'.$hid.'">'.hsc($title).'</a></h3>';
-                $doc .= '<div class="level3">';
-                $doc .= '<div class="table"><table class="inline"><tbody>';
-                $doc .= '<tr><th>Description</th><td colspan="2">'.$method['desc'].
-                    '</td></tr>';
-                if ($method['params']){
-                    $c = count($method['params']);
-                    $doc .= '<tr><th rowspan="'.$c.'">Parameters</th><td>';
-                    $params = array();
-                    foreach ($method['params'] as $desc => $type){
-                        $params[] = hsc($desc).'</td><td>'.hsc($type);
-                    }
-                    $doc .= join($params, '</td></tr><tr><td>').'</td></tr>';
-                }
-                if ($method['return']){
-                    $doc .= '<tr><th>Return value</th><td>'.hsc(key($method['return'])).
-                        '</td><td>'.hsc(current($method['return'])).'</td></tr>';
-                }
-                $doc .= '</tbody></table></div>';
-                $doc .= '</div>';
-            }
-            unset($po);
-
-            $renderer->doc .= $doc;
-        }
-    }
-
-    /**
-     * lists all known syntax types and their registered modes
-     *
-     * @return string
-     */
-    function _syntaxtypes_xhtml(){
-        global $PARSER_MODES;
-        $doc  = '';
-
-        $doc .= '<div class="table"><table class="inline"><tbody>';
-        foreach($PARSER_MODES as $mode => $modes){
-            $doc .= '<tr>';
-            $doc .= '<td class="leftalign">';
-            $doc .= $mode;
-            $doc .= '</td>';
-            $doc .= '<td class="leftalign">';
-            $doc .= join(', ',$modes);
-            $doc .= '</td>';
-            $doc .= '</tr>';
-        }
-        $doc .= '</tbody></table></div>';
-        return $doc;
-    }
-
-    /**
-     * lists all known syntax modes and their sorting value
-     *
-     * @return string
-     */
-    function _syntaxmodes_xhtml(){
-        $modes = p_get_parsermodes();
-
-        $compactmodes = array();
-        foreach($modes as $mode){
-            $compactmodes[$mode['sort']][] = $mode['mode'];
-        }
-        $doc  = '';
-        $doc .= '<div class="table"><table class="inline"><tbody>';
-
-        foreach($compactmodes as $sort => $modes){
-            $rowspan = '';
-            if(count($modes) > 1) {
-                $rowspan = ' rowspan="'.count($modes).'"';
-            }
-
-            foreach($modes as $index => $mode) {
-                $doc .= '<tr>';
-                $doc .= '<td class="leftalign">';
-                $doc .= $mode;
-                $doc .= '</td>';
-
-                if($index === 0) {
-                    $doc .= '<td class="rightalign" '.$rowspan.'>';
-                    $doc .= $sort;
-                    $doc .= '</td>';
-                }
-                $doc .= '</tr>';
-            }
-        }
-
-        $doc .= '</tbody></table></div>';
-        return $doc;
-    }
-
-    /**
-     * Adds a TOC item
-     *
-     * @param string $text
-     * @param int $level
-     * @param Doku_Renderer_xhtml $renderer
-     * @return string
-     */
-    protected function _addToTOC($text, $level, Doku_Renderer_xhtml $renderer){
-        global $conf;
-
-        $hid = '';
-        if (($level >= $conf['toptoclevel']) && ($level <= $conf['maxtoclevel'])){
-            $hid  = $renderer->_headerToLink($text, true);
-            $renderer->toc[] = array(
-                'hid'   => $hid,
-                'title' => $text,
-                'type'  => 'ul',
-                'level' => $level - $conf['toptoclevel'] + 1
-            );
-        }
-        return $hid;
-    }
-}
-
-//Setup VIM: ex: et ts=4 :
diff --git a/wiki/lib/plugins/popularity/action.php b/wiki/lib/plugins/popularity/action.php
deleted file mode 100644
index d5ec0f5..0000000
--- a/wiki/lib/plugins/popularity/action.php
+++ /dev/null
@@ -1,60 +0,0 @@
-<?php
-/**
- * Popularity Feedback Plugin
- *
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- */
-
-require_once(DOKU_PLUGIN.'action.php');
-require_once(DOKU_PLUGIN.'popularity/admin.php');
-
-class action_plugin_popularity extends Dokuwiki_Action_Plugin {
-
-    /**
-     * @var helper_plugin_popularity
-     */
-    var $helper;
-
-    function __construct(){
-        $this->helper = $this->loadHelper('popularity', false);
-    }
-
-    /**
-     * Register its handlers with the dokuwiki's event controller
-     */
-    function register(Doku_Event_Handler $controller) {
-        $controller->register_hook('INDEXER_TASKS_RUN', 'AFTER',  $this, '_autosubmit', array());
-    }
-
-    function _autosubmit(Doku_Event &$event, $param){
-        //Do we have to send the data now
-        if ( !$this->helper->isAutosubmitEnabled() || $this->_isTooEarlyToSubmit() ){
-            return;
-        }
-
-        //Actually send it
-        $status = $this->helper->sendData( $this->helper->gatherAsString() );
-
-        if ( $status !== '' ){
-            //If an error occured, log it
-            io_saveFile( $this->helper->autosubmitErrorFile, $status );
-        } else {
-            //If the data has been sent successfully, previous log of errors are useless
-            @unlink($this->helper->autosubmitErrorFile);
-            //Update the last time we sent data
-            touch ( $this->helper->autosubmitFile );
-        }
-
-        $event->stopPropagation();
-        $event->preventDefault();
-    }
-
-    /**
-     * Check if it's time to send autosubmit data
-     * (we should have check if autosubmit is enabled first)
-     */
-    function _isTooEarlyToSubmit(){
-        $lastSubmit = $this->helper->lastSentTime();
-        return $lastSubmit + 24*60*60*30 > time();
-    }
-}
diff --git a/wiki/lib/plugins/popularity/admin.php b/wiki/lib/plugins/popularity/admin.php
deleted file mode 100644
index 0cf174e..0000000
--- a/wiki/lib/plugins/popularity/admin.php
+++ /dev/null
@@ -1,152 +0,0 @@
-<?php
-/**
- * Popularity Feedback Plugin
- *
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * @author     Andreas Gohr <andi@splitbrain.org>
- */
-// must be run within Dokuwiki
-if(!defined('DOKU_INC')) die();
-
-/**
- * All DokuWiki plugins to extend the admin function
- * need to inherit from this class
- */
-class admin_plugin_popularity extends DokuWiki_Admin_Plugin {
-
-    /**
-     * @var helper_plugin_popularity
-     */
-    var $helper;
-    var $sentStatus = null;
-
-    function __construct(){
-        $this->helper = $this->loadHelper('popularity', false);
-    }
-
-    /**
-     * return prompt for admin menu
-     */
-    function getMenuText($language) {
-        return $this->getLang('name');
-    }
-
-    /**
-     * return sort order for position in admin menu
-     */
-    function getMenuSort() {
-        return 2000;
-    }
-
-    /**
-     * Accessible for managers
-     */
-    function forAdminOnly() {
-        return false;
-    }
-
-
-    /**
-     * handle user request
-     */
-    function handle() {
-        global $INPUT;
-
-        //Send the data
-        if ( $INPUT->has('data') ){
-            $this->sentStatus = $this->helper->sendData( $INPUT->str('data') );
-            if ( $this->sentStatus === '' ){
-                //Update the last time we sent the data
-                touch ( $this->helper->popularityLastSubmitFile );
-            }
-            //Deal with the autosubmit option
-            $this->_enableAutosubmit( $INPUT->has('autosubmit') );
-        }
-    }
-
-    /**
-     * Enable or disable autosubmit
-     * @param bool $enable If TRUE, it will enable autosubmit. Else, it will disable it.
-     */
-    function _enableAutosubmit( $enable ){
-        if ( $enable ){
-            io_saveFile( $this->helper->autosubmitFile, ' ');
-        } else {
-            @unlink($this->helper->autosubmitFile);
-        }
-    }
-
-    /**
-     * Output HTML form
-     */
-    function html() {
-        global $INPUT;
-
-        if ( ! $INPUT->has('data') ){
-            echo $this->locale_xhtml('intro');
-
-            //If there was an error the last time we tried to autosubmit, warn the user
-            if ( $this->helper->isAutoSubmitEnabled() ){
-                if ( file_exists($this->helper->autosubmitErrorFile) ){
-                    echo $this->getLang('autosubmitError');
-                    echo io_readFile( $this->helper->autosubmitErrorFile );
-                }
-            }
-
-            flush();
-            echo $this->buildForm('server');
-
-            //Print the last time the data was sent
-            $lastSent = $this->helper->lastSentTime();
-            if ( $lastSent !== 0 ){
-                echo $this->getLang('lastSent') . ' ' . datetime_h($lastSent);
-            }
-        } else {
-            //If we just submitted the form
-            if ( $this->sentStatus === '' ){
-                //If we successfully sent the data
-                echo $this->locale_xhtml('submitted');
-            } else {
-                //If we failed to submit the data, try directly with the browser
-                echo $this->getLang('submissionFailed') . $this->sentStatus . '<br />';
-                echo $this->getLang('submitDirectly');
-                echo $this->buildForm('browser', $INPUT->str('data'));
-            }
-        }
-    }
-
-
-    /**
-     * Build the form which presents the data to be sent
-     * @param string $submissionMode How is the data supposed to be sent? (may be: 'browser' or 'server')
-     * @param string $data   The popularity data, if it has already been computed. NULL otherwise.
-     * @return string The form, as an html string
-     */
-    function buildForm($submissionMode, $data = null){
-        $url = ($submissionMode === 'browser' ? $this->helper->submitUrl : script());
-        if ( is_null($data) ){
-            $data = $this->helper->gatherAsString();
-        }
-
-        $form = '<form method="post" action="'. $url  .'" accept-charset="utf-8">'
-            .'<fieldset style="width: 60%;">'
-            .'<textarea class="edit" rows="10" cols="80" readonly="readonly" name="data">'
-            .$data
-            .'</textarea><br />';
-
-        //If we submit via the server, we give the opportunity to suscribe to the autosubmission option
-        if ( $submissionMode !== 'browser' ){
-            $form .= '<label for="autosubmit">'
-                .'<input type="checkbox" name="autosubmit" id="autosubmit" '
-                .($this->helper->isAutosubmitEnabled() ? 'checked' : '' )
-                .'/> ' . $this->getLang('autosubmit') .'<br />'
-                .'</label>'
-                .'<input type="hidden" name="do" value="admin" />'
-                .'<input type="hidden" name="page" value="popularity" />';
-        }
-        $form .= '<button type="submit">'.$this->getLang('submit').'</button>'
-            .'</fieldset>'
-            .'</form>';
-        return $form;
-    }
-}
diff --git a/wiki/lib/plugins/popularity/admin.svg b/wiki/lib/plugins/popularity/admin.svg
deleted file mode 100644
index 820fc8c..0000000
--- a/wiki/lib/plugins/popularity/admin.svg
+++ /dev/null
@@ -1 +0,0 @@
-<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/wiki/lib/plugins/popularity/helper.php b/wiki/lib/plugins/popularity/helper.php
deleted file mode 100644
index b81ab70..0000000
--- a/wiki/lib/plugins/popularity/helper.php
+++ /dev/null
@@ -1,340 +0,0 @@
-<?php
-/**
- * Popularity Feedback Plugin
- *
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- */
-
-class helper_plugin_popularity extends Dokuwiki_Plugin {
-    /**
-     * The url where the data should be sent
-     */
-    var $submitUrl = 'http://update.dokuwiki.org/popularity.php';
-
-    /**
-     * Name of the file which determine if the the autosubmit is enabled,
-     * and when it was submited for the last time
-     */
-    var $autosubmitFile;
-
-    /**
-     * File where the last error which happened when we tried to autosubmit, will be log
-     */
-    var $autosubmitErrorFile;
-
-    /**
-     * Name of the file which determine when the popularity data was manually
-     * submitted for the last time
-     * (If this file doesn't exist, the data has never been sent)
-     */
-    var $popularityLastSubmitFile;
-
-
-    function __construct(){
-        global $conf;
-        $this->autosubmitFile = $conf['cachedir'].'/autosubmit.txt';
-        $this->autosubmitErrorFile = $conf['cachedir'].'/autosubmitError.txt';
-        $this->popularityLastSubmitFile = $conf['cachedir'].'/lastSubmitTime.txt';
-    }
-
-    /**
-     * Return methods of this helper
-     *
-     * @return array with methods description
-     */
-    function getMethods(){
-        $result = array();
-        $result[] = array(
-                'name'   => 'isAutoSubmitEnabled',
-                'desc'   => 'Check if autosubmit is enabled',
-                'params' => array(),
-                'return' => array('result' => 'bool')
-                );
-        $result[] = array(
-                'name'   => 'sendData',
-                'desc'   => 'Send the popularity data',
-                'params' => array('data' => 'string'),
-                'return' => array()
-                );
-        $result[] = array(
-                'name' => 'gatherAsString',
-                'desc' => 'Gather the popularity data',
-                'params' => array(),
-                'return' => array('data' => 'string')
-                );
-        $result[] = array(
-                'name'   => 'lastSentTime',
-                'desc'   => 'Compute the last time popularity data was sent',
-                'params' => array(),
-                'return' => array('data' => 'int')
-                );
-        return $result;
-
-    }
-
-    /**
-     * Check if autosubmit is enabled
-     *
-     * @return boolean TRUE if we should send data once a month, FALSE otherwise
-     */
-    function isAutoSubmitEnabled(){
-        return file_exists($this->autosubmitFile);
-    }
-
-    /**
-     * Send the data, to the submit url
-     *
-     * @param string $data The popularity data
-     * @return string An empty string if everything worked fine, a string describing the error otherwise
-     */
-    function sendData($data){
-        $error = '';
-        $httpClient = new DokuHTTPClient();
-        $status = $httpClient->sendRequest($this->submitUrl, array('data' => $data), 'POST');
-        if ( ! $status ){
-            $error = $httpClient->error;
-        }
-        return $error;
-    }
-
-    /**
-     * Compute the last time the data was sent. If it has never been sent, we return 0.
-     *
-     * @return int
-     */
-    function lastSentTime(){
-        $manualSubmission = @filemtime($this->popularityLastSubmitFile);
-        $autoSubmission   = @filemtime($this->autosubmitFile);
-
-        return max((int) $manualSubmission, (int) $autoSubmission);
-    }
-
-    /**
-     * Gather all information
-     *
-     * @return string The popularity data as a string
-     */
-    function gatherAsString(){
-        $data = $this->_gather();
-        $string = '';
-        foreach($data as $key => $val){
-            if(is_array($val)) foreach($val as $v){
-                $string .=  hsc($key)."\t".hsc($v)."\n";
-            }else{
-                $string .= hsc($key)."\t".hsc($val)."\n";
-            }
-        }
-        return $string;
-    }
-
-    /**
-     * Gather all information
-     *
-     * @return array The popularity data as an array
-     */
-    function _gather(){
-        global $conf;
-        /** @var $auth DokuWiki_Auth_Plugin */
-        global $auth;
-        $data = array();
-        $phptime = ini_get('max_execution_time');
-        @set_time_limit(0);
-        $pluginInfo = $this->getInfo();
-
-        // version
-        $data['anon_id'] = md5(auth_cookiesalt());
-        $data['version'] = getVersion();
-        $data['popversion'] = $pluginInfo['date'];
-        $data['language'] = $conf['lang'];
-        $data['now']      = time();
-        $data['popauto']  = (int) $this->isAutoSubmitEnabled();
-
-        // some config values
-        $data['conf_useacl']   = $conf['useacl'];
-        $data['conf_authtype'] = $conf['authtype'];
-        $data['conf_template'] = $conf['template'];
-
-        // number and size of pages
-        $list = array();
-        search($list,$conf['datadir'],array($this,'_search_count'),array('all'=>false),'');
-        $data['page_count']    = $list['file_count'];
-        $data['page_size']     = $list['file_size'];
-        $data['page_biggest']  = $list['file_max'];
-        $data['page_smallest'] = $list['file_min'];
-        $data['page_nscount']  = $list['dir_count'];
-        $data['page_nsnest']   = $list['dir_nest'];
-        if($list['file_count']) $data['page_avg'] = $list['file_size'] / $list['file_count'];
-        $data['page_oldest']   = $list['file_oldest'];
-        unset($list);
-
-        // number and size of media
-        $list = array();
-        search($list,$conf['mediadir'],array($this,'_search_count'),array('all'=>true));
-        $data['media_count']    = $list['file_count'];
-        $data['media_size']     = $list['file_size'];
-        $data['media_biggest']  = $list['file_max'];
-        $data['media_smallest'] = $list['file_min'];
-        $data['media_nscount']  = $list['dir_count'];
-        $data['media_nsnest']   = $list['dir_nest'];
-        if($list['file_count']) $data['media_avg'] = $list['file_size'] / $list['file_count'];
-        unset($list);
-
-        // number and size of cache
-        $list = array();
-        search($list,$conf['cachedir'],array($this,'_search_count'),array('all'=>true));
-        $data['cache_count']    = $list['file_count'];
-        $data['cache_size']     = $list['file_size'];
-        $data['cache_biggest']  = $list['file_max'];
-        $data['cache_smallest'] = $list['file_min'];
-        if($list['file_count']) $data['cache_avg'] = $list['file_size'] / $list['file_count'];
-        unset($list);
-
-        // number and size of index
-        $list = array();
-        search($list,$conf['indexdir'],array($this,'_search_count'),array('all'=>true));
-        $data['index_count']    = $list['file_count'];
-        $data['index_size']     = $list['file_size'];
-        $data['index_biggest']  = $list['file_max'];
-        $data['index_smallest'] = $list['file_min'];
-        if($list['file_count']) $data['index_avg'] = $list['file_size'] / $list['file_count'];
-        unset($list);
-
-        // number and size of meta
-        $list = array();
-        search($list,$conf['metadir'],array($this,'_search_count'),array('all'=>true));
-        $data['meta_count']    = $list['file_count'];
-        $data['meta_size']     = $list['file_size'];
-        $data['meta_biggest']  = $list['file_max'];
-        $data['meta_smallest'] = $list['file_min'];
-        if($list['file_count']) $data['meta_avg'] = $list['file_size'] / $list['file_count'];
-        unset($list);
-
-        // number and size of attic
-        $list = array();
-        search($list,$conf['olddir'],array($this,'_search_count'),array('all'=>true));
-        $data['attic_count']    = $list['file_count'];
-        $data['attic_size']     = $list['file_size'];
-        $data['attic_biggest']  = $list['file_max'];
-        $data['attic_smallest'] = $list['file_min'];
-        if($list['file_count']) $data['attic_avg'] = $list['file_size'] / $list['file_count'];
-        $data['attic_oldest']   = $list['file_oldest'];
-        unset($list);
-
-        // user count
-        if($auth && $auth->canDo('getUserCount')){
-            $data['user_count'] = $auth->getUserCount();
-        }
-
-        // calculate edits per day
-        $list = @file($conf['metadir'].'/_dokuwiki.changes');
-        $count = count($list);
-        if($count > 2){
-            $first = (int) substr(array_shift($list),0,10);
-            $last  = (int) substr(array_pop($list),0,10);
-            $dur = ($last - $first)/(60*60*24); // number of days in the changelog
-            $data['edits_per_day'] = $count/$dur;
-        }
-        unset($list);
-
-        // plugins
-        $data['plugin'] = plugin_list();
-
-        // pcre info
-        if(defined('PCRE_VERSION')) $data['pcre_version'] = PCRE_VERSION;
-        $data['pcre_backtrack'] = ini_get('pcre.backtrack_limit');
-        $data['pcre_recursion'] = ini_get('pcre.recursion_limit');
-
-        // php info
-        $data['os'] = PHP_OS;
-        $data['webserver'] = $_SERVER['SERVER_SOFTWARE'];
-        $data['php_version'] = phpversion();
-        $data['php_sapi'] = php_sapi_name();
-        $data['php_memory'] = $this->_to_byte(ini_get('memory_limit'));
-        $data['php_exectime'] = $phptime;
-        $data['php_extension'] = get_loaded_extensions();
-
-        // plugin usage data
-        $this->_add_plugin_usage_data($data);
-
-        return $data;
-    }
-
-    protected function _add_plugin_usage_data(&$data){
-        $pluginsData = array();
-        trigger_event('PLUGIN_POPULARITY_DATA_SETUP', $pluginsData);
-        foreach($pluginsData as $plugin => $d){
-           if ( is_array($d) ) {
-               foreach($d as $key => $value){
-                   $data['plugin_' . $plugin . '_' . $key] = $value;
-               }
-           } else {
-               $data['plugin_' . $plugin] = $d;
-           }
-        }
-    }
-
-    /**
-     * Callback to search and count the content of directories in DokuWiki
-     *
-     * @param array &$data  Reference to the result data structure
-     * @param string $base  Base usually $conf['datadir']
-     * @param string $file  current file or directory relative to $base
-     * @param string $type  Type either 'd' for directory or 'f' for file
-     * @param int    $lvl   Current recursion depht
-     * @param array  $opts  option array as given to search()
-     * @return bool
-     */
-    function _search_count(&$data,$base,$file,$type,$lvl,$opts){
-        // traverse
-        if($type == 'd'){
-            if($data['dir_nest'] < $lvl) $data['dir_nest'] = $lvl;
-            $data['dir_count']++;
-            return true;
-        }
-
-        //only search txt files if 'all' option not set
-        if($opts['all'] || substr($file,-4) == '.txt'){
-            $size = filesize($base.'/'.$file);
-            $date = filemtime($base.'/'.$file);
-            $data['file_count']++;
-            $data['file_size'] += $size;
-            if(!isset($data['file_min']) || $data['file_min'] > $size) $data['file_min'] = $size;
-            if($data['file_max'] < $size) $data['file_max'] = $size;
-            if(!isset($data['file_oldest']) || $data['file_oldest'] > $date) $data['file_oldest'] = $date;
-        }
-
-        return false;
-    }
-
-    /**
-     * Convert php.ini shorthands to byte
-     *
-     * @author <gilthans dot NO dot SPAM at gmail dot com>
-     * @link   http://php.net/manual/en/ini.core.php#79564
-     *
-     * @param string $v
-     * @return int|string
-     */
-    function _to_byte($v){
-        $l = substr($v, -1);
-        $ret = substr($v, 0, -1);
-        switch(strtoupper($l)){
-            /** @noinspection PhpMissingBreakStatementInspection */
-            case 'P':
-                $ret *= 1024;
-            /** @noinspection PhpMissingBreakStatementInspection */
-            case 'T':
-                $ret *= 1024;
-            /** @noinspection PhpMissingBreakStatementInspection */
-            case 'G':
-                $ret *= 1024;
-            /** @noinspection PhpMissingBreakStatementInspection */
-            case 'M':
-                $ret *= 1024;
-            case 'K':
-                $ret *= 1024;
-            break;
-        }
-        return $ret;
-    }
-}
diff --git a/wiki/lib/plugins/popularity/lang/af/lang.php b/wiki/lib/plugins/popularity/lang/af/lang.php
deleted file mode 100644
index ab5e4f6..0000000
--- a/wiki/lib/plugins/popularity/lang/af/lang.php
+++ /dev/null
@@ -1,6 +0,0 @@
-<?php
-/**
- * Afrikaans language file
- *
- */
-$lang['submit']                = 'Stuir Data';
diff --git a/wiki/lib/plugins/popularity/lang/ar/intro.txt b/wiki/lib/plugins/popularity/lang/ar/intro.txt
deleted file mode 100644
index a81fede..0000000
--- a/wiki/lib/plugins/popularity/lang/ar/intro.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-====== Popularity Feedback ======
-
-تجمع هذه الأداة بيانات مجهولة الاسم وتسمح لك بردها لمطوري دوكو ويكي. يساعدهم ذلك على Ù…Ø¹Ø±ÙØ© كيÙية استخدام دوكو ويكي من المستخدمين والتأكد من أن التطويرات المستقبلية مدعومة بتقارير استخدام حقيقية.
-
-نشجعك على تكرار هذه الخطوة من وقت لآخر لابقاء المطورين على علم بنمو الويكي خاصتك. بياناتك المرسلة مكررا Ø³ØªØ­ØªÙØ¸ ب ID بلا اسماء يميزها.
-
-البيانات المرسلة تحتوي معلومات مثل اصدار دوكو ويكي، عدد وحجم ØµÙØ­Ø§ØªÙƒ ÙˆÙ…Ù„ÙØ§ØªÙƒØŒ Ø§Ù„Ø§Ø¶Ø§ÙØ§Øª المركبة Ùˆ معلومات عن PHP عندك.
-
-البيانات التي سترسل معروضة ØµØ±ÙØ§ أسÙله. رجاء استخدم زر "أرسل البيانات" لنقل المعلومات.
\ No newline at end of file
diff --git a/wiki/lib/plugins/popularity/lang/ar/lang.php b/wiki/lib/plugins/popularity/lang/ar/lang.php
deleted file mode 100644
index c3e2186..0000000
--- a/wiki/lib/plugins/popularity/lang/ar/lang.php
+++ /dev/null
@@ -1,16 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author Yaman Hokan <always.smile.yh@hotmail.com>
- * @author Usama Akkad <uahello@gmail.com>
- * @author uahello@gmail.com
- */
-$lang['name']                  = 'رد الشعبية (قد يأخذ بعض الوقت ليحمل)';
-$lang['submit']                = 'أرسل البيانات';
-$lang['autosubmit']            = 'ارسل البيانات آليا كل شهر';
-$lang['submissionFailed']      = 'تعذر إرسال البيانات بسبب الخطأ التالي:';
-$lang['submitDirectly']        = 'يمكنك إرسال البيانات يدويا بارسال النموذج التالي.';
-$lang['autosubmitError']       = 'ÙØ´Ù„ت آخر محاولة للإرسال، بسبب الخطأ التالي:';
-$lang['lastSent']              = 'أرسلت البيانات';
diff --git a/wiki/lib/plugins/popularity/lang/ar/submitted.txt b/wiki/lib/plugins/popularity/lang/ar/submitted.txt
deleted file mode 100644
index 085e3bd..0000000
--- a/wiki/lib/plugins/popularity/lang/ar/submitted.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== رد الشعبية ======
-
-أرسلت البيانات بنجاح.
\ No newline at end of file
diff --git a/wiki/lib/plugins/popularity/lang/bg/intro.txt b/wiki/lib/plugins/popularity/lang/bg/intro.txt
deleted file mode 100644
index 35023b8..0000000
--- a/wiki/lib/plugins/popularity/lang/bg/intro.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-====== Обратна връзка ======
-
-ИнÑтрументът Ñъбира данни за вашето Wiki и ви позволÑва да ги изпратите да разработчиците на DokuWiki. ИнформациÑта ще им помогне да разберат как DokuWiki Ñе ползва от потребителите и че ÑтатиÑтиката е в подкрепа на поетата наÑока за развитие.
-
-МолÑ, ползвайте функциÑта, от време на време, когато уебÑтраницата ви Ñе разраÑтва, за да информирате разработчиците. Изпратените данни ще бъдат идентифицирани Ñ Ð°Ð½Ð¾Ð½Ð¸Ð¼ÐµÐ½ идентификатор.
-
-Събираните данни Ñъдържат Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ ÐºÐ°Ñ‚Ð¾ верÑиÑта на DokuWiki, Ð±Ñ€Ð¾Ñ Ð¸ размера на вашите Ñтраници и файлове, инÑталирани приÑтавки и Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° локалната инÑÑ‚Ð°Ð»Ð°Ñ†Ð¸Ñ Ð½Ð° PHP.
-
-Данните, които ще бъдат изпратени Ñа изобразени отдолу. МолÑ, натиÑнете бутона "Изпращане на данните", за да бъдат изпратени.
\ No newline at end of file
diff --git a/wiki/lib/plugins/popularity/lang/bg/lang.php b/wiki/lib/plugins/popularity/lang/bg/lang.php
deleted file mode 100644
index 963b50e..0000000
--- a/wiki/lib/plugins/popularity/lang/bg/lang.php
+++ /dev/null
@@ -1,15 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author Viktor Usunov <usun0v@mail.bg>
- * @author Kiril <neohidra@gmail.com>
- */
-$lang['name']                  = 'Обратна връзка (зареждането изиÑква време)';
-$lang['submit']                = 'Изпращане на данните';
-$lang['autosubmit']            = 'Ðвтоматично изпращане на данните веднъж в меÑеца';
-$lang['submissionFailed']      = 'Данните не могат да бъдат изпратени поради Ñледната грешка:';
-$lang['submitDirectly']        = 'Можете да изпратите данните ръчно чрез ÑÐ»ÐµÐ´Ð½Ð¸Ñ Ñ„Ð¾Ñ€Ð¼ÑƒÐ»ÑÑ€.';
-$lang['autosubmitError']       = 'ПоÑледното автоматично изпращане Ñе провали, поради Ñледната грешка:';
-$lang['lastSent']              = 'Данните Ñа изпратени';
diff --git a/wiki/lib/plugins/popularity/lang/bg/submitted.txt b/wiki/lib/plugins/popularity/lang/bg/submitted.txt
deleted file mode 100644
index 3ecd24f..0000000
--- a/wiki/lib/plugins/popularity/lang/bg/submitted.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Обратна връзка ======
-
-Данните Ñа изпратени уÑпешно.
\ No newline at end of file
diff --git a/wiki/lib/plugins/popularity/lang/ca-valencia/intro.txt b/wiki/lib/plugins/popularity/lang/ca-valencia/intro.txt
deleted file mode 100644
index cf14e08..0000000
--- a/wiki/lib/plugins/popularity/lang/ca-valencia/intro.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-====== Retroalimentació de popularitat ======
-
-Esta ferramenta arreplega senyes anònimes sobre el wiki i permet enviar-les als desenrolladors de DokuWiki. Açò els ajuda a comprendre cóm utilisen DokuWiki els usuaris i assegura que les decisions futures de desenroll estaran recolzades per estadístiques d'us real.
-
-L'animem a que repetixca este procés de tant en tant per a mantindre informats als desenrolladors quan el wiki creixca. Els seus conjunts reiteratius de senyes s'identificaran en un ID anònim.
-
-Les senyes arreplegades contenen informació com la versió del DokuWiki, el número i tamany de les pàgines i els archius, plúgins instalats i informació sobre l'instalació de PHP.
-
-Les senyes reals que s'enviaran es mostren ací avall. Per favor, utilise el botó "Enviar senyes" per a transferir l'informació.
diff --git a/wiki/lib/plugins/popularity/lang/ca-valencia/lang.php b/wiki/lib/plugins/popularity/lang/ca-valencia/lang.php
deleted file mode 100644
index 1bbe5e5..0000000
--- a/wiki/lib/plugins/popularity/lang/ca-valencia/lang.php
+++ /dev/null
@@ -1,9 +0,0 @@
-<?php
-/**
- * Valencian language file
- *
- * @author Bernat Arlandis <berarma@ya.com>
- * @author Bernat Arlandis <berarma@llenguaitecnologia.com>
- */
-$lang['name']                  = 'Retro-alimentació de popularitat (pot tardar un poc en carregar)';
-$lang['submit']                = 'Enviar senyes';
diff --git a/wiki/lib/plugins/popularity/lang/ca/intro.txt b/wiki/lib/plugins/popularity/lang/ca/intro.txt
deleted file mode 100644
index f5ded3f..0000000
--- a/wiki/lib/plugins/popularity/lang/ca/intro.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-====== Retroacció sobre popularitat ======
-
-Aquesta eina recull dades anònimes sobre el vostre wiki i us permet enviar-les als desenvolupadors de DokuWiki. Això els ajudarà a entendre com utilitzen DokuWiki els usuaris i farà que futures decisions de desenvolupament es prenguin sobre la base d'estadístiques d'ús reals.
-
-Els desenvolupadors de DokuWiki us preguen que repetiu aquest pas de tant en tant per tal de mantenir-los ben informats a mesura que creix el vostre wiki. Els conjunts de dades que envieu al llarg del temps quedaran identificats per un ID anònim.
-
-Les dades que es recullen contenen informació com ara la vostra versió de DokuWiki, el nombre i la mida de pàgines i fitxers, els connectors instal·lats i informació sobre la vostra instal·lació de PHP.
-
-Més avall es mostren les dades crues que s'enviaran. Feu servir el botó "Envia dades" per transferir aquesta informació.
\ No newline at end of file
diff --git a/wiki/lib/plugins/popularity/lang/ca/lang.php b/wiki/lib/plugins/popularity/lang/ca/lang.php
deleted file mode 100644
index 9c17597..0000000
--- a/wiki/lib/plugins/popularity/lang/ca/lang.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Carles Bellver <carles.bellver@cent.uji.es>
- * @author Carles Bellver <carles.bellver@gmail.com>
- * @author carles.bellver@cent.uji.es
- * @author daniel@6temes.cat
- */
-$lang['name']                  = 'Retroacció sobre popularitat (pot trigar una mica a carregar)';
-$lang['submit']                = 'Envia dades';
diff --git a/wiki/lib/plugins/popularity/lang/cs/intro.txt b/wiki/lib/plugins/popularity/lang/cs/intro.txt
deleted file mode 100644
index 4b38656..0000000
--- a/wiki/lib/plugins/popularity/lang/cs/intro.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-===== Průzkum používání =====
-
-Tento nástroj jednorázově shromáždí anonymní data o vaší wiki a umožní vám odeslat je vývojářům DokuWiki. To jim pomůže lépe porozumět, jak uživatelé DokuWiki používají, a jejich rozhodnutí při dalším vývoji budou založena na statistikách z reálného používání DokuWiki.
-
-Chcete-li pomoci vývojářům, Äas od Äasu, jak vaÅ¡e wiki poroste, použijte tento nástroj. VaÅ¡e data budou pokaždé oznaÄena stejným anonymním identifikátorem.
-
-ShromáždÄ›ná data budou obsahovat informace, jako je instalovaná verze DokuWiki, poÄet a velikosti stránek a souborů, instalované pluginy a informace o nainstalovaném PHP.
-
-ÄŒistá data, která se odeÅ¡lou, budou vidÄ›t níže. K odeslání informací použijte prosím tlaÄítko "Odeslat data".
\ No newline at end of file
diff --git a/wiki/lib/plugins/popularity/lang/cs/lang.php b/wiki/lib/plugins/popularity/lang/cs/lang.php
deleted file mode 100644
index 4c6b10b..0000000
--- a/wiki/lib/plugins/popularity/lang/cs/lang.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Bohumir Zamecnik <bohumir@zamecnik.org>
- * @author tomas <tomas@valenta.cz>
- * @author Marek Sacha <sachamar@fel.cvut.cz>
- * @author Lefty <lefty@multihost.cz>
- * @author Vojta Beran <xmamut@email.cz>
- * @author zbynek.krivka <zbynek.krivka@seznam.cz>
- * @author Jakub A. Těšínský (j@kub.cz)
- * @author mkucera66 <mkucera66@seznam.cz>
- */
-$lang['name']                  = 'Průzkum používání (může chviliÄku trvat, než se natáhne)';
-$lang['submit']                = 'Odeslat data';
-$lang['autosubmit']            = 'Automaticky odesílat data jednou mÄ›síÄnÄ›';
-$lang['submissionFailed']      = 'Data nemohla být odeslána kvůli následující chybě:';
-$lang['submitDirectly']        = 'Data můžete odeslat ruÄnÄ› zasláním následujícího formuláře.';
-$lang['autosubmitError']       = 'Poslední automatické odeslání selhalo kvůli následující chybě:';
-$lang['lastSent']              = 'Data byla odeslána.';
diff --git a/wiki/lib/plugins/popularity/lang/cs/submitted.txt b/wiki/lib/plugins/popularity/lang/cs/submitted.txt
deleted file mode 100644
index ff1f41c..0000000
--- a/wiki/lib/plugins/popularity/lang/cs/submitted.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-===== Průzkum používání =====
-
-Data byla úspěšně odeslána.
\ No newline at end of file
diff --git a/wiki/lib/plugins/popularity/lang/cy/intro.txt b/wiki/lib/plugins/popularity/lang/cy/intro.txt
deleted file mode 100644
index 187dfe0..0000000
--- a/wiki/lib/plugins/popularity/lang/cy/intro.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-====== Adborth Poblogrwydd ======
-
-Mae'r [[doku>popularity|teclyn]] hwn yn casglu data anhysbys am eich wici ac yn eich galluogi chi i'w anfon yn ôl i ddatblygwyr DokuWiki. Mae hwn yn eu helpu nhw i ddeall sut mae DokuWiki yn cael ei ddefnyddio gan ei ddefnyddwyr ac mae\'n sicrhau bod penderfyniadau datblygu yn y dyfodol yn cael eu cefnogi gan ystadegau defnydd go iawn.
-
-Cewch eich annog i ailadrodd y cam hwn o dro i dro er mwyn hysbysu datblygwyr wrth i'ch wici dyfu. Caiff eich setiau data eilfydd eu hadnabod gan ID anhysbys.
-
-Mae'r data sy'n cael ei gasglu yn cynnwys pethau fel fersiwn eich DokuWiki, nifer a maint eich tudalennau a'ch ffeiliau chi, ategion sydd wedi'u harsefydlu a gwybodaeth parthed eich arsefydliad PHP.
-
-Caiff y data crai i'w anfon ei ddangos isod. Pwyswch fotwm "Anfon Data" i drosglwyddo'r wybodaeth.
-
-
diff --git a/wiki/lib/plugins/popularity/lang/cy/lang.php b/wiki/lib/plugins/popularity/lang/cy/lang.php
deleted file mode 100644
index 7bee7bd..0000000
--- a/wiki/lib/plugins/popularity/lang/cy/lang.php
+++ /dev/null
@@ -1,9 +0,0 @@
-<?php
-
-$lang['name']             = 'Adborth Poblogrwydd (gall gymryd ychydig o amser i lwytho)';
-$lang['submit']           = 'Anfon Data';
-$lang['autosubmit']       = 'Anfon data yn awtomatig unwaith y mis';
-$lang['submissionFailed'] = 'Doedd dim modd anfon y data oherwydd y gwall canlynol:';
-$lang['submitDirectly']   = 'Gallwch chi anfon y data gan law gan gyflwyno\'r ffurflen ganlynol.';
-$lang['autosubmitError']  = 'Methodd yr awtogyflwyniad diwethaf oherwydd y gwall canlynol: ';
-$lang['lastSent']         = 'Anfonwyd y data';
diff --git a/wiki/lib/plugins/popularity/lang/cy/submitted.txt b/wiki/lib/plugins/popularity/lang/cy/submitted.txt
deleted file mode 100644
index eb6fd81..0000000
--- a/wiki/lib/plugins/popularity/lang/cy/submitted.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Adborth Poblogrwydd ======
-
-Cafodd y data ei anfon yn llwyddiannus.
diff --git a/wiki/lib/plugins/popularity/lang/da/intro.txt b/wiki/lib/plugins/popularity/lang/da/intro.txt
deleted file mode 100644
index e2122c9..0000000
--- a/wiki/lib/plugins/popularity/lang/da/intro.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-====== Tilbagemelding om popularitet ======
-
-Dette værktøj samler anonyme oplysninge rom din wiki og giver dig mulighed for at sende det tilbage til DokuWiki-udviklerne. Dette hjælper dem til at sætte sig ind i, hvordan DokuWiki bruges af dets brugere og sikrer, at fremtidige beslutninger inden for udviklingen har grund i faktiske brugsstatistikker.
-
-Vi anbefaler dig til at gentage dette trin fra tid til anden for at holde udviklerne underrettede eftersom din wiki vokser. Dine anonyme datasamlinger vil blive tilkendegivet ved et anonymt navn.
-
-Opsamlede data indeholder oplysninger som eksempelvis din udgave af DokuWiki, antallet og størrelsen af dens sider, tilføjede udvidelse og oplysninger om din PHP-opsætning.
-
-De egentlige data, som vil blive sendt, er vist herunder. Brug venligst knappen 'Send Data' for at videresende oplysningerne.
\ No newline at end of file
diff --git a/wiki/lib/plugins/popularity/lang/da/lang.php b/wiki/lib/plugins/popularity/lang/da/lang.php
deleted file mode 100644
index 715d6ac..0000000
--- a/wiki/lib/plugins/popularity/lang/da/lang.php
+++ /dev/null
@@ -1,20 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Kalle Sommer Nielsen <kalle@php.net>
- * @author Esben Laursen <hyber@hyber.dk>
- * @author Harith <haj@berlingske.dk>
- * @author Daniel Ejsing-Duun <dokuwiki@zilvador.dk>
- * @author Erik Bjørn Pedersen <erik.pedersen@shaw.ca>
- * @author rasmus <rasmus@kinnerup.com>
- * @author Mikael Lyngvig <mikael@lyngvig.org>
- */
-$lang['name']                  = 'Tilbagemelding om popularitet (vil måske tage en del tid at indlæse)';
-$lang['submit']                = 'Send data';
-$lang['autosubmit']            = 'Automatisk sende data en gang om måneden';
-$lang['submissionFailed']      = 'Dataene kunne ikke sendes pga. følgende fejl:';
-$lang['submitDirectly']        = 'Du kan sende dataene manuelt ved at sende følgende formular.';
-$lang['autosubmitError']       = 'Den sidste automatiske fremsendelse fejlede pga. følgende fejl:';
-$lang['lastSent']              = 'Dataene er blevet sendt.';
diff --git a/wiki/lib/plugins/popularity/lang/da/submitted.txt b/wiki/lib/plugins/popularity/lang/da/submitted.txt
deleted file mode 100644
index 88e9ba0..0000000
--- a/wiki/lib/plugins/popularity/lang/da/submitted.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Popularitetsfeedback ======
-
-Dataene er blevet sendt.
\ No newline at end of file
diff --git a/wiki/lib/plugins/popularity/lang/de-informal/intro.txt b/wiki/lib/plugins/popularity/lang/de-informal/intro.txt
deleted file mode 100644
index a414b66..0000000
--- a/wiki/lib/plugins/popularity/lang/de-informal/intro.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-===== Rückmeldung zur Zufriedenheit =====
-
-Dieses Werkzeug sammelt anonym Daten über dein Wiki und erlaubt es dir diese an die Entwickler von DokuWiki zu senden. Dies hilft ihnen zu verstehen, wie DokuWiki von den Benutzern verwendet wird und stellt somit sicher, dass Entscheidungen für zukünftige Entwicklungen mit reellen Nutzungsstatistiken belegbar sind.
-
-Bitte wiederhole diesen Schritt von Zeit zu Zeit, um die Entwickler zu informieren wenn dein Wiki wächst. Deine aktuelleren Datensätze werden anhand einer anonymen Identifikationsnummer zugeordnet.
-
-Die gesammelten Daten enthalten Informationen über deine Version von DokuWiki, die Anzahl und Größe der Seiten und Dateien, installierte Erweiterungen und Informationen über deine PHP-Version.
-
-Die Rohdaten die gesendet werden, werden unten gezeigt. Bitte nutze den "Sende Daten" Knopf um die Informationen zu übermitteln.
\ No newline at end of file
diff --git a/wiki/lib/plugins/popularity/lang/de-informal/lang.php b/wiki/lib/plugins/popularity/lang/de-informal/lang.php
deleted file mode 100644
index ad533ab..0000000
--- a/wiki/lib/plugins/popularity/lang/de-informal/lang.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-
-/**
- * @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>
- * @author Matthias Schulte <post@lupo49.de>
- * @author Christian Wichmann <nospam@zone0.de>
- * @author Pierre Corell <info@joomla-praxis.de>
- * @author Frank Loizzi <contact@software.bacal.de>
- * @author Volker Bödker <volker@boedker.de>
- */
-$lang['name']                  = 'Popularitätsrückmeldung (kann eine Weile dauern, bis es fertig geladen wurde)';
-$lang['submit']                = 'Sende Daten';
-$lang['autosubmit']            = 'Daten einmal im Monat automatisch senden';
-$lang['submissionFailed']      = 'Die Daten konnten aufgrund des folgenden Fehlers nicht gesendet werden: ';
-$lang['submitDirectly']        = 'Du kannst die Daten durch Betätigung des Buttons manuell versenden.';
-$lang['autosubmitError']       = 'Beim letzten automatischen Versuch die Daten zu senden, ist folgender Fehler aufgetreten: ';
-$lang['lastSent']              = 'Die Daten wurden gesendet';
diff --git a/wiki/lib/plugins/popularity/lang/de-informal/submitted.txt b/wiki/lib/plugins/popularity/lang/de-informal/submitted.txt
deleted file mode 100644
index e7b45b5..0000000
--- a/wiki/lib/plugins/popularity/lang/de-informal/submitted.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Popularitäts-Feedback ======
-
-Die Daten wurden erfolgreich versandt.
\ No newline at end of file
diff --git a/wiki/lib/plugins/popularity/lang/de/intro.txt b/wiki/lib/plugins/popularity/lang/de/intro.txt
deleted file mode 100644
index ba88ce2..0000000
--- a/wiki/lib/plugins/popularity/lang/de/intro.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-====== Popularitäts-Feedback ======
-
-Dieses [[doku>popularity|Werkzeug]] sammelt verschiedene anonyme Daten über Ihr Wiki und erlaubt es Ihnen, diese an die DokuWiki-Entwickler zurückzusenden. Diese Daten helfen den Entwicklern besser zu verstehen, wie DokuWiki eingesetzt wird und stellt sicher, dass zukünftige, die Weiterentwicklung von DokuWiki betreffende, Entscheidungen auf Basis echter Benutzerdaten getroffen werden.
-
-Bitte wiederholen Sie das Versenden der Daten von Zeit zu Zeit, um die Entwickler über das Wachstum Ihres Wikis auf dem Laufenden zu halten. Ihre wiederholten Dateneinsendungen werden über eine anonyme ID identifiziert.
-
-Die gesammelten Daten enthalten Informationen wie Ihre DokuWiki-Version, die Anzahl und Größe Ihrer Seiten und Dateien, installierte Plugins und die eingesetzte PHP-Installation.
-
-Die zu übertragenen Roh-Daten werden in der untenstehenden Box angezeigt. Bitte drücken Sie die "Daten senden" Schaltfläche um die Information zu übertragen.
-
-
diff --git a/wiki/lib/plugins/popularity/lang/de/lang.php b/wiki/lib/plugins/popularity/lang/de/lang.php
deleted file mode 100644
index 2394581..0000000
--- a/wiki/lib/plugins/popularity/lang/de/lang.php
+++ /dev/null
@@ -1,26 +0,0 @@
-<?php
-
-/**
- * @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>
- * @author Arne Pelka <mail@arnepelka.de>
- * @author Andreas Gohr <andi@splitbrain.org>
- * @author Dirk Einecke <dirk@dirkeinecke.de>
- * @author Blitzi94 <Blitzi94@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 (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: ';
-$lang['submitDirectly']        = 'Sie können die Daten durch Betätigung des Buttons manuell versenden.';
-$lang['autosubmitError']       = 'Beim letzten automatischen Versuch die Daten zu senden, ist folgender Fehler aufgetreten: ';
-$lang['lastSent']              = 'Die Daten wurden gesendet';
diff --git a/wiki/lib/plugins/popularity/lang/de/submitted.txt b/wiki/lib/plugins/popularity/lang/de/submitted.txt
deleted file mode 100644
index e7b45b5..0000000
--- a/wiki/lib/plugins/popularity/lang/de/submitted.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Popularitäts-Feedback ======
-
-Die Daten wurden erfolgreich versandt.
\ No newline at end of file
diff --git a/wiki/lib/plugins/popularity/lang/el/intro.txt b/wiki/lib/plugins/popularity/lang/el/intro.txt
deleted file mode 100644
index 22d5429..0000000
--- a/wiki/lib/plugins/popularity/lang/el/intro.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-====== ΑναφοÏά Δημοτικότητας ======
-
-Το εÏγαλείο αυτό συλλέγει ανώνυμα δεδομένα για το wiki σας και σας επιτÏέπει να τα στείλετε στους δημιουÏγοÏÏ‚ της εφαÏμογής DokuWiki. Αυτό τους βοηθά να καταλάβουν με ποιοÏÏ‚ Ï„Ïόπους χÏησιμοποιείται η εφαÏμογή DokuWiki από τους χÏήστες της και εξασφαλίζει ότι οι μελλοντικές αποφάσεις σχεδίασης θα στηÏίζονται σε Ï€Ïαγματικά δεδομένα χÏήσης.
-
-Σας Ï€ÏοτÏέπουμε να επαναλαμβάνετε αυτή τη διαδικασία κατά διαστήματα ώστε οι δημιουÏγοί της εφαÏμογής DokuWiki να μένουν ενήμεÏοι όταν το wiki σας μεγαλώνει. Τα διαδοχικά σÏνολα δεδομένων που αποστέλλετε αναγνωÏίζονται από έναν ανώνυμο κωδικό.
-
-Τα δεδομένα πεÏιέχουν πληÏοφοÏίες όπως η έκδοση του DokuWiki σας, ο αÏιθμός και το μέγεθος των σελίδων και αÏχείων σας, οι εγκατεστημένες επεκτάσεις και στοιχεία για την PHP που χÏησιμοποιείτε.
-
-Τα ακÏιβή δεδομένα τα οποία θα αποσταλοÏν εμφανίζονται παÏακάτω. ΠαÏακαλοÏμε πατήστε στο κουμπί "Αποστολή Δεδομένων" για να τα αποστείλετε.
\ No newline at end of file
diff --git a/wiki/lib/plugins/popularity/lang/el/lang.php b/wiki/lib/plugins/popularity/lang/el/lang.php
deleted file mode 100644
index fe38a98..0000000
--- a/wiki/lib/plugins/popularity/lang/el/lang.php
+++ /dev/null
@@ -1,17 +0,0 @@
-<?php
-
-/**
- * @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>
- * @author Vasileios Karavasilis vasileioskaravasilis@gmail.com
- */
-$lang['name']                  = 'ΑναφοÏά Δημοτικότητας (ίσως αÏγήσει λίγο να εμφανιστεί)';
-$lang['submit']                = 'Αποστολή Δεδομένων';
-$lang['autosubmit']            = 'Îα αποστέλονται τα δεδομένα αυτόματα μια φοÏά το μήνα.';
-$lang['submissionFailed']      = 'Τα δεδομένα δεν ήταν δυνατό να αποσταλλοÏν λόγω του παÏακάτω σφάλματος:';
-$lang['submitDirectly']        = 'ΜποÏείτε να αποστείλλετε τα δεδομένα χειÏοκίνητα με την υποβολή της παÏακάτω φόÏμας.';
-$lang['autosubmitError']       = 'Η τελευταία αυτόματη υποβολή των δεδομένων απέτυχε με το παÏακάτω μήνυμα σφάλματος:';
-$lang['lastSent']              = 'Τα δεδομένα έχουν σταλεί.';
diff --git a/wiki/lib/plugins/popularity/lang/el/submitted.txt b/wiki/lib/plugins/popularity/lang/el/submitted.txt
deleted file mode 100644
index 8004f99..0000000
--- a/wiki/lib/plugins/popularity/lang/el/submitted.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Αποτέλεσμα Υποβολής Δημοσιότητας ======
-
-Τα δεδομένα στάλθηκαν επιτυχώς.
\ No newline at end of file
diff --git a/wiki/lib/plugins/popularity/lang/en/intro.txt b/wiki/lib/plugins/popularity/lang/en/intro.txt
deleted file mode 100644
index e1d6d94..0000000
--- a/wiki/lib/plugins/popularity/lang/en/intro.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-====== Popularity Feedback ======
-
-This [[doku>popularity|tool]] gathers anonymous data about your wiki and allows you to send it back to the DokuWiki developers. This helps them to understand them how DokuWiki is used by its users and makes sure future development decisions are backed up by real world usage statistics.
-
-You are encouraged to repeat this step from time to time to keep developers informed when your wiki grows. Your repeated data sets will be identified by an anonymous ID.
-
-Data collected contains information like your DokuWiki version, the number and size of your pages and files, installed plugins and information about your PHP install.
-
-The raw data that will be send is shown below. Please use the "Send Data" button to transfer the information.
-
-
diff --git a/wiki/lib/plugins/popularity/lang/en/lang.php b/wiki/lib/plugins/popularity/lang/en/lang.php
deleted file mode 100644
index af6797c..0000000
--- a/wiki/lib/plugins/popularity/lang/en/lang.php
+++ /dev/null
@@ -1,9 +0,0 @@
-<?php
-
-$lang['name']             = 'Popularity Feedback (may take some time to load)';
-$lang['submit']           = 'Send Data';
-$lang['autosubmit']       = 'Automatically send data once a month';
-$lang['submissionFailed'] = 'The data couldn\'t be sent due to the following error:';
-$lang['submitDirectly']   = 'You can send the data manually by submitting the following form.';
-$lang['autosubmitError']  = 'The last autosubmit failed, because of the following error: ';
-$lang['lastSent']         = 'The data has been sent';
diff --git a/wiki/lib/plugins/popularity/lang/en/submitted.txt b/wiki/lib/plugins/popularity/lang/en/submitted.txt
deleted file mode 100644
index 30f2784..0000000
--- a/wiki/lib/plugins/popularity/lang/en/submitted.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Popularity Feedback ======
-
-The data has been sent succesfully.
diff --git a/wiki/lib/plugins/popularity/lang/eo/intro.txt b/wiki/lib/plugins/popularity/lang/eo/intro.txt
deleted file mode 100644
index fd37efc..0000000
--- a/wiki/lib/plugins/popularity/lang/eo/intro.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-====== Populareca enketo ======
-
-Tiu ĉi ilo prenas anoniman datenaron pri via vikio kaj ebligas al vi sendi Äin reen al la kodumantoj de DokuWiki. Tio helpas al ili kompreni kiel DokuWiki estas uzata kaj certigas ke estontaj disvolviÄaj decidoj estos subtenataj de statistikoj pri reala aplikado.
-
-Ni instigas vin ripeti tiun agon iam kaj tiam por teni la disvolvigantojn informitaj, dum via vikio kreskas. Viaj resendotaj datenaroj estos identigitaj per anonima ID.
-
-La kolektita datumaro enhavas informon pri versio de la instalita DokuWiki, nombro kaj grandeco de la paÄoj kaj dosieroj, instalitaj kromaĵoj kaj informoj pri via PHP-sistemo.
-
-La kruda datumaro sendota estas montrita sube. Bonvolu uzi la butonon "Sendi datumaron" por transÅuti tiun informaron.
diff --git a/wiki/lib/plugins/popularity/lang/eo/lang.php b/wiki/lib/plugins/popularity/lang/eo/lang.php
deleted file mode 100644
index a0492c6..0000000
--- a/wiki/lib/plugins/popularity/lang/eo/lang.php
+++ /dev/null
@@ -1,16 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Felipo Kastro <fefcas@gmail.com>
- * @author Robert Bogenschneider <robog@gmx.de>
- * @author Erik Pedersen <erik pedersen@shaw.ca>
- */
-$lang['name']                  = 'Populareca enketo (eble la Åargo prokrastos iomete)';
-$lang['submit']                = 'Sendi datumaron';
-$lang['autosubmit']            = 'AÅ­tomate sendi datumaron monate';
-$lang['submissionFailed']      = 'La datumaro ne povis esti sendata tial:';
-$lang['submitDirectly']        = 'Vi povas sendi vi mem la datumaron per la sekva informilo.';
-$lang['autosubmitError']       = 'La lasta aÅ­tomata sendo malsukcesis, tial:';
-$lang['lastSent']              = 'La datumaro sendiÄis';
diff --git a/wiki/lib/plugins/popularity/lang/eo/submitted.txt b/wiki/lib/plugins/popularity/lang/eo/submitted.txt
deleted file mode 100644
index 095439b..0000000
--- a/wiki/lib/plugins/popularity/lang/eo/submitted.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Enketo pri Populareco ======
-
-La datumoj sendiÄis sukcese.
diff --git a/wiki/lib/plugins/popularity/lang/es/intro.txt b/wiki/lib/plugins/popularity/lang/es/intro.txt
deleted file mode 100644
index cc776a3..0000000
--- a/wiki/lib/plugins/popularity/lang/es/intro.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-====== Retroalimentación (feedback) del plugin Popularity ======
-
-Esta herramienta recopila datos anónimos sobre tu wiki y te permite enviarlos a los desarrolladores de DokuWiki. Esto les ayuda a comprender cómo usan DokuWiki sus usuarios y asegura que las decisiones del desarrollo futuro del programa estén basadas en las estadísticas de uso del mundo real.
-
-Te animamos a repetir este paso de vez en cuando para mantener informados a los desarrolladores a medida que tu wiki crece. Tus paquetes repetidos de datos se identifican por un ID anónimo.
-
-Los datos recopilados contienen información como tu versión de DokuWiki, el número y tamaño de tus páginas y ficheros, plugins instalados e información sobre tu instalación de PHP.
-
-Los datos que se enviarán se muestran más abajo. Por favor, usa el botón "Enviar Datos" para transferir la información.
-
diff --git a/wiki/lib/plugins/popularity/lang/es/lang.php b/wiki/lib/plugins/popularity/lang/es/lang.php
deleted file mode 100644
index 2498bcc..0000000
--- a/wiki/lib/plugins/popularity/lang/es/lang.php
+++ /dev/null
@@ -1,31 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author oliver <oliver@samera.com.py>
- * @author Enrico Nicoletto <liverig@gmail.com>
- * @author Manuel Meco <manuel.meco@gmail.com>
- * @author VictorCastelan <victorcastelan@gmail.com>
- * @author Jordan Mero <hack.jord@gmail.com>
- * @author Felipe Martinez <metalmartinez@gmail.com>
- * @author Javier Aranda <internet@javierav.com>
- * @author Zerial <fernando@zerial.org>
- * @author Marvin Ortega <maty1206@maryanlinux.com>
- * @author Daniel Castro Alvarado <dancas2@gmail.com>
- * @author Fernando J. Gómez <fjgomez@gmail.com>
- * @author Mauro Javier Giamberardino <mgiamberardino@gmail.com>
- * @author Oscar M. Lage <r0sk10@gmail.com>
- * @author emezeta <emezeta@infoprimo.com>
- * @author Oscar Ciudad <oscar@jacho.net>
- * @author Ruben Figols <ruben.figols@gmail.com>
- * @author Gerardo Zamudio <gerardo@gerardozamudio.net>
- * @author Mercè López <mercelz@gmail.com>
- */
-$lang['name']                  = 'Retroinformación (Feedback) plugin Popularity';
-$lang['submit']                = 'Enviar datos';
-$lang['autosubmit']            = 'Enviar automáticamente datos una vez al mes';
-$lang['submissionFailed']      = 'Los datos no se pudo enviar debido al error siguiente:';
-$lang['submitDirectly']        = 'Puede enviar los datos de forma manual mediante la presentación de la siguiente forma.';
-$lang['autosubmitError']       = 'El último auto no pudo presentar, debido al error siguiente:';
-$lang['lastSent']              = 'Los datos se han enviado';
diff --git a/wiki/lib/plugins/popularity/lang/es/submitted.txt b/wiki/lib/plugins/popularity/lang/es/submitted.txt
deleted file mode 100644
index bb1754c..0000000
--- a/wiki/lib/plugins/popularity/lang/es/submitted.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Retroinformación Popularity ======
-
-Los datos se han enviado con éxito.
\ No newline at end of file
diff --git a/wiki/lib/plugins/popularity/lang/eu/intro.txt b/wiki/lib/plugins/popularity/lang/eu/intro.txt
deleted file mode 100644
index 2d2846f..0000000
--- a/wiki/lib/plugins/popularity/lang/eu/intro.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-====== Popularitate Feedback-a ======
-
-Tresna honek datu anonimoak hartzen ditu zure wiki-ari buruz eta hauek DokuWiki garatzaileei bidaltzea ahalbidetzen dizu. Honek, DokuWiki erabiltzaileek nola erabiltzen duten ulertzen laguntzen die, etorkizuneko garapen erabakiak mundu errealeko erabilpen estatistikekin indartuz.
-
-Pauso hau denboran zehar errepikatzera animatzen zaitugu, modu horretan garatzaileak informatuz zure wiki-a handitzen den ahala. Zure datu bidalketak identifikatzaile anonimo batez identifikatuak izango dira.
-
-Jasotako datuek daramaten informazioa DokuWiki bertsioa, zure orri eta fitxategien kopuru eta tamaina, instalatutako plugin-ak, zure PHP instalazioari buruzko informazioa eta antzerako informazioa da.
-
-Bidaliko diren prozesatu gabeko datuak behean erakusten dira. Mesedez, erabili "Datuak Bidali" botoia informazioa bidaltzeko.
diff --git a/wiki/lib/plugins/popularity/lang/eu/lang.php b/wiki/lib/plugins/popularity/lang/eu/lang.php
deleted file mode 100644
index 4f0b667..0000000
--- a/wiki/lib/plugins/popularity/lang/eu/lang.php
+++ /dev/null
@@ -1,15 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Inko Illarramendi <inko.i.a@gmail.com>
- * @author Zigor Astarbe <astarbe@gmail.com>
- */
-$lang['name']                  = 'Popularitate Feedback-a (denbora dezente iraun dezake kargatzen)';
-$lang['submit']                = 'Datuak Bidali';
-$lang['autosubmit']            = 'Automatikoki bidali informazioa hilabetean behin';
-$lang['submissionFailed']      = 'Informazioa ezin izan da bidali ondorengo errorea dela eta:';
-$lang['submitDirectly']        = 'Informazioa eskuz bidali dezakezu ondorengo formularioa bidaliz.';
-$lang['autosubmitError']       = 'Azken bidalketa automatikoak huts egin zuen ondorengo errorea dela eta:';
-$lang['lastSent']              = 'Informazioa bidalia izan da';
diff --git a/wiki/lib/plugins/popularity/lang/eu/submitted.txt b/wiki/lib/plugins/popularity/lang/eu/submitted.txt
deleted file mode 100644
index 94c81a5..0000000
--- a/wiki/lib/plugins/popularity/lang/eu/submitted.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Popularitate Feedback-a ======
-
-Informazioa arrakastaz bidalia izan da.
\ No newline at end of file
diff --git a/wiki/lib/plugins/popularity/lang/fa/intro.txt b/wiki/lib/plugins/popularity/lang/fa/intro.txt
deleted file mode 100644
index e8521af..0000000
--- a/wiki/lib/plugins/popularity/lang/fa/intro.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-====== بازخورد محبوبیت ======
-
-این ابزار اطلاعات ناشناسی از ویکی شما را برای توسعه‌دهندگان DokuWiki ارسال می‌کند. این اطلاعات به توسعه‌دهندگان Ú©Ù…Ú© می‌کند تا بÙهمند کاربران DokuWiki از آن چگونه Ø§Ø³ØªÙØ§Ø¯Ù‡ می‌کنند تا بتوانند در نسخه‌های آتی، تصمیمات بهتری اتخاذ کنند.
-
-ما امیدواریم شما این حرکت را در زمان‌های مختل٠که ویکی‌تان بزرگ‌تر شد، انجام دهید و این اطلاعات ناشناس ارسال خواهد شد.
-
-اطلاعات جمع‌آوری شده حامل اطلاعاتی مثل نسخه‌ی DokuWikiØŒ تعداد Ùˆ حجم ØµÙØ­Ø§Øª Ùˆ ÙØ§ÛŒÙ„‌ها، Ø§ÙØ²ÙˆÙ†Ù‡â€ŒÙ‡Ø§ÛŒ نصب شده Ùˆ اطلاعات PHP سرور می‌باشد.
-
-اطلاعات خامی Ú©Ù‡ ارسال می‌شود در زیر آمده است. خواهشمندیم از دکمه‌ی «ارسال اطلاعات» برای ÙØ±Ø³ØªØ§Ø¯Ù‡ شدن Ø§Ø³ØªÙØ§Ø¯Ù‡ کنید.
\ No newline at end of file
diff --git a/wiki/lib/plugins/popularity/lang/fa/lang.php b/wiki/lib/plugins/popularity/lang/fa/lang.php
deleted file mode 100644
index e6c642d..0000000
--- a/wiki/lib/plugins/popularity/lang/fa/lang.php
+++ /dev/null
@@ -1,20 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author behrad eslamifar <behrad_es@yahoo.com)
- * @author Mohsen Firoozmandan <info@mambolearn.com>
- * @author omidmr@gmail.com
- * @author Omid Mottaghi <omidmr@gmail.com>
- * @author Mohammad Reza Shoaei <shoaei@gmail.com>
- * @author Milad DZand <M.DastanZand@gmail.com>
- * @author AmirH Hassaneini <mytechmix@gmail.com>
- */
-$lang['name']                  = 'بازخورد محبوبیت (ممکن است اندکی زمان ببرد)';
-$lang['submit']                = 'ارسال اطلاعات';
-$lang['autosubmit']            = 'ارسال خودکار اطلاعات به صورت ماهیانه';
-$lang['submissionFailed']      = 'اطلاعات به علت بروز خطای زیر قابل ارسال نیستند:';
-$lang['submitDirectly']        = 'شما میتوانید اطلاعات را با تکمیل این ÙØ±Ù… به صورت دستی ارسال کنید.';
-$lang['autosubmitError']       = 'آخرین ارسال خودکار با خطای مواجه شد, به علت زیر:';
-$lang['lastSent']              = 'اطلاعات ارسال شد.';
diff --git a/wiki/lib/plugins/popularity/lang/fa/submitted.txt b/wiki/lib/plugins/popularity/lang/fa/submitted.txt
deleted file mode 100644
index 63eec47..0000000
--- a/wiki/lib/plugins/popularity/lang/fa/submitted.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-====== بازخورد محبوبیت ======
-اطلاعات ارسال شد.
\ No newline at end of file
diff --git a/wiki/lib/plugins/popularity/lang/fi/intro.txt b/wiki/lib/plugins/popularity/lang/fi/intro.txt
deleted file mode 100644
index f68c2b8..0000000
--- a/wiki/lib/plugins/popularity/lang/fi/intro.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-====== Suosion palaute ======
-
-Tämä työkalu kerää tietoja wikistäsi ilman tunnistetietoja, jotka voit lähettää DokuWikin kehittäjille. Tämä auttaa heitä ymmärtämään, kuinka DokuWikiä käytetään ja varmistaa, että tulevaisuuden kehityspäätökset tehdään tosielämän käyttökokemusten perusteella.
-
-Toivomme sinun toistavan tämän aiheen silloin tällöin, jotta kehittäjät pysyvät tietoisina, miten wikisi kehittyy. Uudelleenlähettämäsi tiedot identifioidaan tunnisteella, jota ei voida jäljittää takaisin sinuun.
-
-Kerätty tieto pitää sisällään tietoa esimerkiksi DokuWikisi versiosta, sivujen koosta ja lukumäärästä, asennetuista liitännäisistä, sekä PHP asennuksestasi.
-
-Raaka tieto, joka lähetetään näkyy alla. Lähetä tieto painamalla "Lähetä tiedot" nappia.
\ No newline at end of file
diff --git a/wiki/lib/plugins/popularity/lang/fi/lang.php b/wiki/lib/plugins/popularity/lang/fi/lang.php
deleted file mode 100644
index ec0fc40..0000000
--- a/wiki/lib/plugins/popularity/lang/fi/lang.php
+++ /dev/null
@@ -1,16 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author Otto Vainio <otto@valjakko.net>
- * @author Teemu Mattila <ghcsystems@gmail.com>
- * @author Sami Olmari <sami@olmari.fi>
- */
-$lang['name']                  = 'Suosion palaute (voi kestää jonkun aikaa latautua)';
-$lang['submit']                = 'Lähetä tiedot';
-$lang['autosubmit']            = 'Lähetä tiedot automaattisesti kerran kuussa';
-$lang['submissionFailed']      = 'Tietoja ei voitu lähettää seuraavan virheen vuoksi:';
-$lang['submitDirectly']        = 'Voit lähettää tiedot käsin seuraavan kaavakkeen avulla';
-$lang['autosubmitError']       = 'Edellinen automaattilähetys epäonnistui seuraavan virheen vuoksi:';
-$lang['lastSent']              = 'Tiedot on lähetetty';
diff --git a/wiki/lib/plugins/popularity/lang/fi/submitted.txt b/wiki/lib/plugins/popularity/lang/fi/submitted.txt
deleted file mode 100644
index 31059c8..0000000
--- a/wiki/lib/plugins/popularity/lang/fi/submitted.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Suosion palaute ======
-
-Tiedot lähetettiin onnistuneesti.
\ No newline at end of file
diff --git a/wiki/lib/plugins/popularity/lang/fr/intro.txt b/wiki/lib/plugins/popularity/lang/fr/intro.txt
deleted file mode 100644
index 5985234..0000000
--- a/wiki/lib/plugins/popularity/lang/fr/intro.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-====== Enquête de popularité ======
-
-Cet [[doku>popularity|outil]] collecte des données anonymes concernant votre wiki et vous permet de les expédier aux développeurs de DokuWiki. Ceci leur permet de mieux comprendre comment DokuWiki est utilisé par ses utilisateurs et d'orienter les décisions sur les développements futurs en tenant compte des statistiques d'usage réel.
-
-Vous êtes encouragé à répéter cette opération de temps à autres afin de tenir informés les développeurs de l'évolution de votre wiki. L'ensemble de vos contributions seront recensées via un identifiant anonyme.
-
-Les données collectées contiennent des informations telles votre version de DokuWiki, le nombre et la taille de vos pages et fichiers, les extensions installées ainsi que des informations sur la version de PHP installée.
-
-Les données brutes qui sont envoyées sont affichées ci dessous. Merci d'utiliser le bouton « Envoyer les données » pour expédier l'information.
-
diff --git a/wiki/lib/plugins/popularity/lang/fr/lang.php b/wiki/lib/plugins/popularity/lang/fr/lang.php
deleted file mode 100644
index 1e94df4..0000000
--- a/wiki/lib/plugins/popularity/lang/fr/lang.php
+++ /dev/null
@@ -1,26 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Guy Brand <gb@unistra.fr>
- * @author stephane.gully <stephane.gully@gmail.com>
- * @author Guillaume Turri <guillaume.turri@gmail.com>
- * @author Erik Pedersen <erik.pedersen@shaw.ca>
- * @author olivier duperray <duperray.olivier@laposte.net>
- * @author Vincent Feltz <psycho@feltzv.fr>
- * @author Philippe Bajoit <philippe.bajoit@gmail.com>
- * @author Florian Gaub <floriang@floriang.net>
- * @author Johan Guilbaud <guilbaud.johan@gmail.com>
- * @author Yannick Aure <yannick.aure@gmail.com>
- * @author Olivier DUVAL <zorky00@gmail.com>
- * @author Anael Mobilia <contrib@anael.eu>
- * @author Bruno Veilleux <bruno.vey@gmail.com>
- */
-$lang['name']                  = 'Enquête de popularité (peut nécessiter un certain temps pour être chargée)';
-$lang['submit']                = 'Envoyer les données';
-$lang['autosubmit']            = 'Envoyer les données automatiquement une fois par mois';
-$lang['submissionFailed']      = 'Les données ne peuvent pas être expédiées à cause des erreurs suivantes :';
-$lang['submitDirectly']        = 'Vous pouvez envoyer les données manuellement en soumettant ce formulaire.';
-$lang['autosubmitError']       = 'La dernière soumission automatique a échoué pour les raisons suivantes :';
-$lang['lastSent']              = 'Les données ont été expédiées';
diff --git a/wiki/lib/plugins/popularity/lang/fr/submitted.txt b/wiki/lib/plugins/popularity/lang/fr/submitted.txt
deleted file mode 100644
index edb5e21..0000000
--- a/wiki/lib/plugins/popularity/lang/fr/submitted.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Enquête de popularité ======
-
-Les données ont été expédiées avec succès.
\ No newline at end of file
diff --git a/wiki/lib/plugins/popularity/lang/gl/intro.txt b/wiki/lib/plugins/popularity/lang/gl/intro.txt
deleted file mode 100644
index 72f03e0..0000000
--- a/wiki/lib/plugins/popularity/lang/gl/intro.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-====== Resposta de Popularidade ======
-
-Esta ferramenta recolle datos anónimos verbo do teu wiki e permíteche enviarllos aos desenvolvedores do DokuWiki. Isto axudaralles a ter unha idea do xeito en que se emprega o DokuWiki por parte dos seus usuarios, e asegura que as decisións de desenvolvemento futuro coincidan coas estatísticas de uso no mundo real.
-
-Animámoste a levar a cabo este proceso de cando en vez para manteres informados aos desenvolvedores a medida que o teu wiki vaia medrando. Os teus xogos de datos repetidos seran identificados por un ID anónimo.
-
-Os datos recompilados conteñen información como a versión do teu Dokuwiki, o número e tamaño das túas páxinas e arquivos, as extensións instaladas e información verbo da túa instalación do PHP.
-
-Os datos en bruto que serán enviados amósanse embaixo. Por favor, emprega o botón "Enviar Datos" para transferires a información.
-
diff --git a/wiki/lib/plugins/popularity/lang/gl/lang.php b/wiki/lib/plugins/popularity/lang/gl/lang.php
deleted file mode 100644
index 86cd34d..0000000
--- a/wiki/lib/plugins/popularity/lang/gl/lang.php
+++ /dev/null
@@ -1,15 +0,0 @@
-<?php
-/**
- * Galician language file
- *
- * @author Medúlio <medulio@ciberirmandade.org>
- * @author Oscar M. Lage <r0sk10@gmail.com>
- * @author Rodrigo Rega <rodrigorega@gmail.com>
- */
-$lang['name']                  = 'Resposta de Popularidade (pode demorar un tempo a cargar)';
-$lang['submit']                = 'Enviar Datos';
-$lang['autosubmit']            = 'Enviar datos automáticamente unha vez por mes';
-$lang['submissionFailed']      = 'Os datos non se poden enviar debido ao seguinte erro:';
-$lang['submitDirectly']        = 'Podes enviar os datos de forma manual co seguinte formulario.';
-$lang['autosubmitError']       = 'O último envío automático fallou debido ao seguinte erro:';
-$lang['lastSent']              = 'Os datos foron enviados';
diff --git a/wiki/lib/plugins/popularity/lang/gl/submitted.txt b/wiki/lib/plugins/popularity/lang/gl/submitted.txt
deleted file mode 100644
index 0dec55e..0000000
--- a/wiki/lib/plugins/popularity/lang/gl/submitted.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Resposta de Popularidade ======
-
-Os datos foron enviados satisfactoriamente.
\ No newline at end of file
diff --git a/wiki/lib/plugins/popularity/lang/he/intro.txt b/wiki/lib/plugins/popularity/lang/he/intro.txt
deleted file mode 100644
index 1f2e318..0000000
--- a/wiki/lib/plugins/popularity/lang/he/intro.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-====== משוב פופלריות ======
-
-כלי ×–×” ×וסף מידע ×נונימי ×ודות הויקי שלך ומ×פשר לך לשלוח ×ותו חזרה למפתחי דוקוויקי. מידע ×–×” יסיע ×œ×”× ×œ×”×‘×™×Ÿ ×ת השימוש ×©×¢×•×©×™× ×ž×©×ª×ž×©×™ דוקוויקי במערכת ויבטיח שהחלטות עתידיות לגבי הפיתוח יתבססו על סטטיסטיקות שימוש ×מיתי.
-
-נודה ×× ×ª×—×–×•×¨ על הפעולה מהעת לעת כדי ×œ×•×“× ×”×ž×¤×ª×—×™× ×ž×™×•×“×¢×™× ×›×©×”×•×™×§×™ שלך גדל. המידע שישלח יזוהה על ידי תג ×נונימי.
-
-המידע שנ×סף כולל ×¤×¨×˜×™× ×›×ž×• גרסת הדוקוויקי, מספר וגודל ×”×“×¤×™× ×•×”×§×‘×¦×™× ×©×œ×š, הרחבות מותקנות ומידע ×ודות התקנת ×”-PHP שלך.
-
-המידע הגולמי שישלח מופיע מטה. × × ×”×©×ª×ž×© בכפתור "שלח מידע" כדי להעבירו.
\ No newline at end of file
diff --git a/wiki/lib/plugins/popularity/lang/he/lang.php b/wiki/lib/plugins/popularity/lang/he/lang.php
deleted file mode 100644
index e9f75b7..0000000
--- a/wiki/lib/plugins/popularity/lang/he/lang.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Dotan Kamber <kamberd@yahoo.com>
- * @author Moshe Kaplan <mokplan@gmail.com>
- * @author Yaron Yogev <yaronyogev@gmail.com>
- * @author Yaron Shahrabani <sh.yaron@gmail.com>
- */
-$lang['name']                  = 'משוב פופולריות (יתכן זמן טעינה ×רוך)';
-$lang['submit']                = 'שלח מידע';
diff --git a/wiki/lib/plugins/popularity/lang/hi/lang.php b/wiki/lib/plugins/popularity/lang/hi/lang.php
deleted file mode 100644
index c818c7a..0000000
--- a/wiki/lib/plugins/popularity/lang/hi/lang.php
+++ /dev/null
@@ -1,9 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author Abhinav Tyagi <abhinavtyagi11@gmail.com>
- * @author yndesai@gmail.com
- */
-$lang['submit']                = 'डेटा भेजे';
diff --git a/wiki/lib/plugins/popularity/lang/hr/intro.txt b/wiki/lib/plugins/popularity/lang/hr/intro.txt
deleted file mode 100644
index c7c3eba..0000000
--- a/wiki/lib/plugins/popularity/lang/hr/intro.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-====== Povratna informacija o popularnosti ======
-
-Ovaj [[doku>popularity|alat]] prikupla anonimne podatke o Vašem wiki i omogućava Vam da ih pošaljete DokuWiki razvojnom timu. To im pomaže da bolje razumiju kako korisnici koriste DokuWiki i osigurava kvalitetnije odluke o budućem razvoju u skladu s stvarnim korištenjem.
-
-Pozivamo Vas da ponavljate ovaj korak s vremena na vrijeme kako bi razvojni tim bio obaviješten o razvoju Vašeg wiki-a. Vaši novi podaci biti će identificirani putem anonimne oznake.
-
-Prikupljeni podatci sadrže informacije kako Å¡to je DokuWiki inaÄica, broj i veliÄina vaÅ¡ih stranica i datoteka, ugraÄ‘eni dodatci i PHP-u koji se koristi. Sirovi podatci koji će biti poslani su prikazani niže. Molim koristite gumb "PoÅ¡alji podatke" da bi ste poslali ove informacije.
diff --git a/wiki/lib/plugins/popularity/lang/hr/lang.php b/wiki/lib/plugins/popularity/lang/hr/lang.php
deleted file mode 100644
index 3dd9f11..0000000
--- a/wiki/lib/plugins/popularity/lang/hr/lang.php
+++ /dev/null
@@ -1,14 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Davor Turkalj <turki.bsc@gmail.com>
- */
-$lang['name']                  = 'Povratna informacija o popularnosti (može proteći neko vrijeme dok se uÄita)';
-$lang['submit']                = 'Pošalji podatke';
-$lang['autosubmit']            = 'Å alji podatke automatski jednom mjeseÄno';
-$lang['submissionFailed']      = 'Podatci ne mogu biti poslani zbog slijedeće greške:';
-$lang['submitDirectly']        = 'Podatke možete poslati ruÄno potvrÄ‘ivanjem forme u nastavku.';
-$lang['autosubmitError']       = 'Zadnje automatsko slanje nije uspješno zbog slijedeće greške:';
-$lang['lastSent']              = 'Podatci su poslani';
diff --git a/wiki/lib/plugins/popularity/lang/hr/submitted.txt b/wiki/lib/plugins/popularity/lang/hr/submitted.txt
deleted file mode 100644
index 8c841b3..0000000
--- a/wiki/lib/plugins/popularity/lang/hr/submitted.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Povratna informacija o popularnosti ======
-
-Podatci su uspješno poslani.
\ No newline at end of file
diff --git a/wiki/lib/plugins/popularity/lang/hu/intro.txt b/wiki/lib/plugins/popularity/lang/hu/intro.txt
deleted file mode 100644
index 17bb6fc..0000000
--- a/wiki/lib/plugins/popularity/lang/hu/intro.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-====== Visszajelzés a DokuWiki használatáról ======
-
-Ez az eszköz anonimizált adatokat gyűjt a wikidről, és lehetővé teszi, hogy elküldd a DokuWiki fejlesztőinek. Ez segít meglátni, hogy a felhasználók hogyan használják a DokuWikijüket, ezáltal biztosítja, hogy a későbbi fejlesztési döntések hátterében valós használati statisztikák álljanak.
-
-Szeretnénk megkérni, hogy időről időre ismételd meg ezt a műveletet, hogy a fejlesztők értesülhessenek, hogyan nő a wikid mérete. Az ismételt adatküldéseid egy anoním ID-vel lesznek azonosítva.
-
-Ilyen és hasonló információkat gyűjtünk: DokuWiki verziószáma, a lapok, fájlok mérete és darabszáma, feltelepített bővítmények, PHP installáció adatai.
-
-Az elküldendő nyers adat lent látható. Kérjük, az "Adatok elküldése" gombbal juttasd el hozzánk!
diff --git a/wiki/lib/plugins/popularity/lang/hu/lang.php b/wiki/lib/plugins/popularity/lang/hu/lang.php
deleted file mode 100644
index 213d226..0000000
--- a/wiki/lib/plugins/popularity/lang/hu/lang.php
+++ /dev/null
@@ -1,20 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author Sandor TIHANYI <stihanyi+dw@gmail.com>
- * @author Siaynoq Mage <siaynoqmage@gmail.com>
- * @author schilling.janos@gmail.com
- * @author Szabó Dávid <szabo.david@gyumolcstarhely.hu>
- * @author Sándor TIHANYI <stihanyi+dw@gmail.com>
- * @author David Szabo <szabo.david@gyumolcstarhely.hu>
- * @author Marton Sebok <sebokmarton@gmail.com>
- */
-$lang['name']                  = 'Visszajelzés a DokuWiki használatáról (sok időt vehet igénybe a betöltése)';
-$lang['submit']                = 'Adatok elküldése';
-$lang['autosubmit']            = 'Adatok havonkénti automatikus elküldése.';
-$lang['submissionFailed']      = 'Az adatok a következő hiba miatt nem kerültek elküldésre:';
-$lang['submitDirectly']        = 'Az adatokat a következő űrlap segítségével lehet elküldeni.';
-$lang['autosubmitError']       = 'Az adatok a következő hiba miatt nem kerültek automatikusan elküldésre:';
-$lang['lastSent']              = 'Az adatokat elküldtük.';
diff --git a/wiki/lib/plugins/popularity/lang/hu/submitted.txt b/wiki/lib/plugins/popularity/lang/hu/submitted.txt
deleted file mode 100644
index 30ab8bd..0000000
--- a/wiki/lib/plugins/popularity/lang/hu/submitted.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Visszajelzés a DokuWiki használatáról ======
-
-Az adatokat sikeresen elküldtük.
\ No newline at end of file
diff --git a/wiki/lib/plugins/popularity/lang/ia/intro.txt b/wiki/lib/plugins/popularity/lang/ia/intro.txt
deleted file mode 100644
index d31c365..0000000
--- a/wiki/lib/plugins/popularity/lang/ia/intro.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-====== Datos de popularitate ======
-
-Iste instrumento collige datos anonyme super tu wiki e te permitte inviar los retro al disveloppatores de DokuWiki. Isto les adjuta de comprender como DokuWiki es usate per su usatores e assecura que le decisiones super le disveloppamento futur si basate super statisticas de uso ex le mundo real.
-
-Tu es incoragiate a repeter iste procedura de tempore a tempore pro continuar a informar le disveloppatores quando tu wiki cresce. Tu collectiones repetite de datos essera identificate per un ID anonyme.
-
-Le datos colligite contine informationes como tu version de DokuWiki, le numero e dimension de tu paginas e files, plug-ins installate e information super tu installation de PHP.
-
-Le datos crude que essera inviate es monstrate hic infra. Per favor usa le button "Inviar datos" pro transferer le informationes.
\ No newline at end of file
diff --git a/wiki/lib/plugins/popularity/lang/ia/lang.php b/wiki/lib/plugins/popularity/lang/ia/lang.php
deleted file mode 100644
index 4a45f04..0000000
--- a/wiki/lib/plugins/popularity/lang/ia/lang.php
+++ /dev/null
@@ -1,9 +0,0 @@
-<?php
-/**
- * Interlingua language file
- *
- * @author robocap <robocap1@gmail.com>
- * @author Martijn Dekker <martijn@inlv.org>
- */
-$lang['name']                  = 'Datos de popularitate (pote prender alcun tempore pro cargar)';
-$lang['submit']                = 'Inviar datos';
diff --git a/wiki/lib/plugins/popularity/lang/id-ni/intro.txt b/wiki/lib/plugins/popularity/lang/id-ni/intro.txt
deleted file mode 100644
index fb23709..0000000
--- a/wiki/lib/plugins/popularity/lang/id-ni/intro.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-====== Popularitas-Fangombakha ======
-
-Fakake anonyme da'e i'owuloi ngawalö data moroi ba Wiki khöu awö wanehegöu wama'ohe'ö DokuWiki ba zangahaogö. Data da'e aoha wangehaogö ba wombohouni mangawuli ba DokuWiki ba biziso miföna abölö aoha wangirö'ö ya'ia bakha ba nahia wamake statistik.
-
-Tola öfa'ohe'ö mangawuli data ero-ero soginötö ba wangehaogö ba bawamohouni Wiki khöndra samazökhi.  Data nifa'ohe'öu ifareso dania anonyme ID.
-
-...
diff --git a/wiki/lib/plugins/popularity/lang/id-ni/lang.php b/wiki/lib/plugins/popularity/lang/id-ni/lang.php
deleted file mode 100644
index d9a36f2..0000000
--- a/wiki/lib/plugins/popularity/lang/id-ni/lang.php
+++ /dev/null
@@ -1,9 +0,0 @@
-<?php
-/**
- * idni language file
- *
- * @author Harefa <fidelis@harefa.com>
- * @author Yustinus Waruwu <juswaruwu@gmail.com>
- */
-$lang['name']                  = 'Sabölö teturia (sito\'ölönia ara ginötö wamokai)';
-$lang['submit']                = 'Fa\'ohe\'ö data';
diff --git a/wiki/lib/plugins/popularity/lang/is/lang.php b/wiki/lib/plugins/popularity/lang/is/lang.php
deleted file mode 100644
index 9add4ca..0000000
--- a/wiki/lib/plugins/popularity/lang/is/lang.php
+++ /dev/null
@@ -1,9 +0,0 @@
-<?php
-/**
- * Icelandic language file
- *
- * @author Hrannar Baldursson <hrannar.baldursson@gmail.com>
- * @author Ólafur Gunnlaugsson <oli@audiotools.com>
- * @author Erik Bjørn Pedersen <erik.pedersen@shaw.ca>
- */
-$lang['submit']                = 'Senda gögn';
diff --git a/wiki/lib/plugins/popularity/lang/it/intro.txt b/wiki/lib/plugins/popularity/lang/it/intro.txt
deleted file mode 100644
index f65310a..0000000
--- a/wiki/lib/plugins/popularity/lang/it/intro.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-====== Raccolta dati sul wiki ======
-
-Questo strumento raccoglie dati anonimi sul tuo wiki e ti permette di inviarli agli sviluppatori di Dokuwiki. Questo aiuta loro a capire come Dokuwiki viene utilizzato dagli utenti e prendere decisioni future sullo sviluppo in base a quelle che sono le reali statistiche di utilizzo da parte degli utenti.
-
-Ti incoraggiamo a ripetere ogni tanto questa operazione per mantenere informati gli sviluppatori sulla crescita del tuo wiki. L'insieme dei dati raccolti saranno identificati tramite un ID anonimo.
-
-I dati raccolti contengono informazioni come la versione di DokuWiki, il numero e le dimensioni delle pagine e dei file, i plugin installati e informazioni sulla versione di PHP presente nel sistema.
-
-A continuazione puoi vedere un'anteprima dei dati che saranno inviati. Utilizza il pulsante "Invia dati" per trasferire le informazioni.
\ No newline at end of file
diff --git a/wiki/lib/plugins/popularity/lang/it/lang.php b/wiki/lib/plugins/popularity/lang/it/lang.php
deleted file mode 100644
index ec00d66..0000000
--- a/wiki/lib/plugins/popularity/lang/it/lang.php
+++ /dev/null
@@ -1,18 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Diego Pierotto <ita.translations@tiscali.it>
- * @author Lorenzo Breda <lbreda@gmail.com>
- * @author robocap <robocap1@gmail.com>
- * @author Jacopo Corbetta <jacopo.corbetta@gmail.com>
- * @author Matteo Pasotti <matteo@xquiet.eu>
- */
-$lang['name']                  = 'Raccolta dati sul wiki (può impiegare del tempo per caricarsi)';
-$lang['submit']                = 'Invia dati';
-$lang['autosubmit']            = 'Invia automaticamente i dati una volta al mese';
-$lang['submissionFailed']      = 'È stato impossibile inviare i dati a causa del seguente errore:';
-$lang['submitDirectly']        = 'È possibile inviare i dati manualmente utilizzando il pulsante sottostante.';
-$lang['autosubmitError']       = 'L\'ultimo invio automatico non è andato a buon fine a causa del seguente errore:';
-$lang['lastSent']              = 'I dati sono stati inviati';
diff --git a/wiki/lib/plugins/popularity/lang/it/submitted.txt b/wiki/lib/plugins/popularity/lang/it/submitted.txt
deleted file mode 100644
index 7824715..0000000
--- a/wiki/lib/plugins/popularity/lang/it/submitted.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Raccolta dati sul wiki ======
-
-I dati sono stati inviati correttamente.
\ No newline at end of file
diff --git a/wiki/lib/plugins/popularity/lang/ja/intro.txt b/wiki/lib/plugins/popularity/lang/ja/intro.txt
deleted file mode 100644
index db9a342..0000000
--- a/wiki/lib/plugins/popularity/lang/ja/intro.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-====== 利用状æ³èª¿æŸ» ======
-
-ã“ã®[[doku>ja:popularity|ツール]]ã¯ã€ã”利用中ã®wikiã®æƒ…報をåŽé›†ã—ã€ãれをDokuWikiã®é–‹ç™ºè€…ã¸åŒ¿åã§é€ä¿¡ã™ã‚‹ã‚‚ã®ã§ã™ã€‚開発者ã¯ã“ã®ãƒ„ールã«ã‚ˆã‚Šã€DokuWikiãŒå®Ÿéš›ã«ã©ã®æ§˜ã«åˆ©ç”¨ã•れã¦ã„ã‚‹ã‹ã‚’ç†è§£ã—ã€ãã—ã¦å®Ÿéš›ã®åˆ©ç”¨çжæ³ã«åŸºã¥ã„ã¦ä»Šå¾Œã®é–‹ç™ºæ–¹é‡ã®æ±ºå®šã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚
-
-ãŠä½¿ã„ã®wikiã®è¦æ¨¡ãŒå¤§ãããªã£ã¦ããŸã¨ãã¯ã€ã“ã®ã‚¹ãƒ†ãƒƒãƒ—を定期的ã«ç¹°ã‚Šè¿”ã™ã“ã¨ã‚’推奨ã—ã¦ã„ã¾ã™ã€‚ã¾ãŸã€é€ä¿¡ã•れãŸãƒ‡ãƒ¼ã‚¿ã¯åŒ¿åã®IDã§è­˜åˆ¥ã•れã¾ã™ã€‚
-
-DokuWikiã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã€ãƒšãƒ¼ã‚¸ã¨ãƒ•ã‚¡ã‚¤ãƒ«ã®æ•°ã¨ã‚µã‚¤ã‚ºã€ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«æ¸ˆã¿ãƒ—ラグインã€ãã—ã¦ãŠä½¿ã„ã®PHPã«é–¢ã™ã‚‹æƒ…å ±ãŒã€é€ä¿¡ã•れるデータã«å«ã¾ã‚Œã¾ã™ã€‚
-
-以下ã«è¡¨ç¤ºã•れã¦ã„るデータãŒå®Ÿéš›ã«é€ä¿¡ã•れるデータã¨ãªã‚Šã¾ã™ã€‚"データé€ä¿¡"ボタンを押ã—ã¦æƒ…報をé€ä¿¡ã—ã¦ãã ã•ã„。
\ No newline at end of file
diff --git a/wiki/lib/plugins/popularity/lang/ja/lang.php b/wiki/lib/plugins/popularity/lang/ja/lang.php
deleted file mode 100644
index 81dc94c..0000000
--- a/wiki/lib/plugins/popularity/lang/ja/lang.php
+++ /dev/null
@@ -1,19 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Ikuo Obataya <i.obataya@gmail.com>
- * @author Daniel Dupriest <kououken@gmail.com>
- * @author Kazutaka Miyasaka <kazmiya@gmail.com>
- * @author Yuji Takenaka <webmaster@davilin.com>
- * @author Taisuke Shimamoto <dentostar@gmail.com>
- * @author Satoshi Sahara <sahara.satoshi@gmail.com>
- */
-$lang['name']                  = '利用状æ³èª¿æŸ»ï¼ˆãƒ­ãƒ¼ãƒ‰ã«å°‘ã—æ™‚é–“ãŒæŽ›ã‹ã‚Šã¾ã™ï¼‰';
-$lang['submit']                = 'データé€ä¿¡';
-$lang['autosubmit']            = '月ã«ä¸€åº¦ã¯è‡ªå‹•çš„ã«ãƒ‡ãƒ¼ã‚¿ã‚’é€ä»˜';
-$lang['submissionFailed']      = '次ã®ã‚¨ãƒ©ãƒ¼ã«ã‚ˆã‚Šãƒ‡ãƒ¼ã‚¿ãŒé€ä¿¡ã§ãã¾ã›ã‚“ã§ã—ãŸï¼š';
-$lang['submitDirectly']        = '次ã®ãƒ•ォームを使ã£ã¦ãƒ‡ãƒ¼ã‚¿ã‚’手動ã§é€ä¿¡ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚';
-$lang['autosubmitError']       = '以下ã®ã‚¨ãƒ©ãƒ¼ã«ã‚ˆã‚Šæœ€å¾Œã®è‡ªå‹•é€ä¿¡ã«å¤±æ•—ã—ã¾ã—ãŸï¼š';
-$lang['lastSent']              = 'データをé€ä¿¡ã—ã¾ã—ãŸã€‚';
diff --git a/wiki/lib/plugins/popularity/lang/ja/submitted.txt b/wiki/lib/plugins/popularity/lang/ja/submitted.txt
deleted file mode 100644
index 604f8e5..0000000
--- a/wiki/lib/plugins/popularity/lang/ja/submitted.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== 利用状æ³èª¿æŸ» ======
-
-データã®é€ä¿¡ã«æˆåŠŸã—ã¾ã—ãŸã€‚
\ No newline at end of file
diff --git a/wiki/lib/plugins/popularity/lang/ko/intro.txt b/wiki/lib/plugins/popularity/lang/ko/intro.txt
deleted file mode 100644
index edc0f87..0000000
--- a/wiki/lib/plugins/popularity/lang/ko/intro.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-====== ì¸ê¸°ë„ 조사 ======
-
-ì„¤ì¹˜ëœ ìœ„í‚¤ì˜ ìµëª… 정보를 ë„쿠위키 개발ìžì—게 보냅니다. ì´ [[doku>ko:popularity|ë„구]]는 ë„쿠위키가 실제 사용ìžì—게 어떻게 사용ë˜ëŠ”ì§€ ë„쿠위키 개발ìžì—게 ì•Œë ¤ì¤Œìœ¼ë¡œì¨ ì´ í›„ 개발 시 참조가 ë©ë‹ˆë‹¤.
-
-ì„¤ì¹˜ëœ ìœ„í‚¤ê°€ 커ì§ì— ë”°ë¼ì„œ ì´ ê³¼ì •ì„ ë°˜ë³µí•  필요가 있습니다. ë°˜ë³µëœ ë°ì´í„°ëŠ” ìµëª… ID로 구별ë˜ì–´ì§‘니다.
-
-보내려는 ë°ì´í„°ëŠ” 설치 ë„쿠위키 버전, 문서와 íŒŒì¼ ìˆ˜, í¬ê¸°, 설치 플러그ì¸, 설치 PHP ì •ë³´ë“±ì„ í¬í•¨í•˜ê³  있습니다.
-
-실제 보내질 ìžë£ŒëŠ” 아래와 같습니다. 정보를 보내려면 "ìžë£Œ 보내기" ë²„íŠ¼ì„ í´ë¦­í•˜ì„¸ìš”.
\ No newline at end of file
diff --git a/wiki/lib/plugins/popularity/lang/ko/lang.php b/wiki/lib/plugins/popularity/lang/ko/lang.php
deleted file mode 100644
index fff8cac..0000000
--- a/wiki/lib/plugins/popularity/lang/ko/lang.php
+++ /dev/null
@@ -1,20 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author jk Lee
- * @author dongnak <dongnak@gmail.com>
- * @author Song Younghwan <purluno@gmail.com>
- * @author Seung-Chul Yoo <dryoo@live.com>
- * @author erial2 <erial2@gmail.com>
- * @author Myeongjin <aranet100@gmail.com>
- * @author Garam <rowain8@gmail.com>
- */
-$lang['name']                  = 'ì¸ê¸°ë„ 조사 (불러오는 ë° ì‹œê°„ì´ ê±¸ë¦´ 수 있습니다)';
-$lang['submit']                = 'ìžë£Œ 보내기';
-$lang['autosubmit']            = 'ìžë£Œë¥¼ ìžë™ìœ¼ë¡œ 한 ë‹¬ì— í•œ 번씩 보내기';
-$lang['submissionFailed']      = '다ìŒê³¼ ê°™ì€ ì´ìœ ë¡œ ìžë£Œ ë³´ë‚´ê¸°ì— ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤:';
-$lang['submitDirectly']        = 'ì•„ëž˜ì˜ ì–‘ì‹ì— ë§žì¶° 수ë™ìœ¼ë¡œ ìž‘ì„±ëœ ìžë£Œë¥¼ 보낼 수 있습니다.';
-$lang['autosubmitError']       = '다ìŒê³¼ ê°™ì€ ì´ìœ ë¡œ ìžë™ ìžë£Œ ë³´ë‚´ê¸°ì— ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤:';
-$lang['lastSent']              = 'ìžë£Œë¥¼ 보냈습니다';
diff --git a/wiki/lib/plugins/popularity/lang/ko/submitted.txt b/wiki/lib/plugins/popularity/lang/ko/submitted.txt
deleted file mode 100644
index 37cfbd8..0000000
--- a/wiki/lib/plugins/popularity/lang/ko/submitted.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== ì¸ê¸°ë„ 조사 ======
-
-ìžë£Œë¥¼ 성공ì ìœ¼ë¡œ 보냈습니다.
\ No newline at end of file
diff --git a/wiki/lib/plugins/popularity/lang/la/intro.txt b/wiki/lib/plugins/popularity/lang/la/intro.txt
deleted file mode 100644
index c3029ca..0000000
--- a/wiki/lib/plugins/popularity/lang/la/intro.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-====== Index Fauoris Popularis ======
-
-Haoc instrumentum fauorem popularem mittis sic ut creatores uicis meliorem illum facere possint.
-
-Rursum te fauorem mittere experamus sic ut si mutationes meliores uel peiores esse uidere possimus.
-
-Res mittendae tua forma in usu, numerus et pondus paginarum et aliarum rerum, addenda in usu et de PHP.
-
-Res rudes mittendae subter ostenduntur. "Res mittere" premas ut eas transferas.
-
diff --git a/wiki/lib/plugins/popularity/lang/la/lang.php b/wiki/lib/plugins/popularity/lang/la/lang.php
deleted file mode 100644
index c7f307c..0000000
--- a/wiki/lib/plugins/popularity/lang/la/lang.php
+++ /dev/null
@@ -1,13 +0,0 @@
-<?php
-/**
- * Latin language file
- *
- * @author Massimiliano Vassalli <vassalli.max@gmail.com>
- */
-$lang['name']                  = 'Index fauoris popularis (multum tempus quaerere potest)';
-$lang['submit']                = 'Missum die';
-$lang['autosubmit']            = 'Constanter res omni mense mittuntur';
-$lang['submissionFailed']      = 'Res non mittuntur ea causa:';
-$lang['submitDirectly']        = 'Res tu mittere potes cum hoc exemplar compleas.';
-$lang['autosubmitError']       = 'Extrema missio lapsa est ea causa:';
-$lang['lastSent']              = 'Res missae sunt';
diff --git a/wiki/lib/plugins/popularity/lang/la/submitted.txt b/wiki/lib/plugins/popularity/lang/la/submitted.txt
deleted file mode 100644
index 2b2faf4..0000000
--- a/wiki/lib/plugins/popularity/lang/la/submitted.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Index fauoris popularis ======
-
-Res feliciter missae sunt.
\ No newline at end of file
diff --git a/wiki/lib/plugins/popularity/lang/lt/lang.php b/wiki/lib/plugins/popularity/lang/lt/lang.php
deleted file mode 100644
index dca3504..0000000
--- a/wiki/lib/plugins/popularity/lang/lt/lang.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author audrius.klevas@gmail.com
- * @author Arunas Vaitekunas <aras@fan.lt>
- */
-$lang['name']                  = 'Populiarumo apklausa (gali užtrukti pakrovimas)';
-$lang['submit']                = 'Pateikti';
diff --git a/wiki/lib/plugins/popularity/lang/lv/intro.txt b/wiki/lib/plugins/popularity/lang/lv/intro.txt
deleted file mode 100644
index dd43f96..0000000
--- a/wiki/lib/plugins/popularity/lang/lv/intro.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-====== PopularitÄtes atsauksme ======
-
-Å is rÄ«ks savÄc anonÄ«mus datus par tavu wiki sistÄ“mu un piedÄvÄ tos nodot DokuWiki izstrÄdÄtÄjiem. Tas ļauj zinÄt kÄ izmanto DokuWiki un palÄ«dz tÄlÄko attÄ«stÄ«bu balstÄ«t patiesas izmantoÅ¡anas statistikÄ .
-
-IerosinÄm laiku pa laikam atkÄrtoti nosÅ«tÄ«t datus, lai izstrÄdÄtÄji zinÄtu, ka tavs wiki aug. AtkÄrtotos sÅ«tÄ«jumus identificÄ“s pÄ“c anonÄ«mÄ ID.
-
-SavÄktie dati satur ziņas par DokuWiki versiju, lapu skaitu un apjomu, instalÄ“tajiem spraudņiem un par PHP instalÄciju.
-
-NosÅ«tÄmie dati redzami zemÄk. Nospied pogu "NosÅ«tÄ«t datus", lai nodotu ziņas.
\ No newline at end of file
diff --git a/wiki/lib/plugins/popularity/lang/lv/lang.php b/wiki/lib/plugins/popularity/lang/lv/lang.php
deleted file mode 100644
index 2c9bc63..0000000
--- a/wiki/lib/plugins/popularity/lang/lv/lang.php
+++ /dev/null
@@ -1,14 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Aivars Miška <allefm@gmail.com>
- */
-$lang['name']                  = 'PopularitÄtes atsauksmes (ielÄde var aizņemt kÄdu laiku)';
-$lang['submit']                = 'Nosūtīt datus';
-$lang['autosubmit']            = 'AutomÄtiski reizi mÄ“nesÄ« nosÅ«tÄ«t datus';
-$lang['submissionFailed']      = 'Datus nevar nosūtīt kļūdas dēļ:';
-$lang['submitDirectly']        = 'Jūs pats varat pats nosūtīt datus no šīs veidlapas.';
-$lang['autosubmitError']       = 'PÄ“dÄ“jÄ automÄtiskÄ nosÅ«tīšana kļūdas dēļ:';
-$lang['lastSent']              = 'Dati nosūtīti';
diff --git a/wiki/lib/plugins/popularity/lang/lv/submitted.txt b/wiki/lib/plugins/popularity/lang/lv/submitted.txt
deleted file mode 100644
index c31338a..0000000
--- a/wiki/lib/plugins/popularity/lang/lv/submitted.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== PopularitÄtes atsauksmes ======
-
-Dati veiksmīgi nosūtīti
\ No newline at end of file
diff --git a/wiki/lib/plugins/popularity/lang/mr/intro.txt b/wiki/lib/plugins/popularity/lang/mr/intro.txt
deleted file mode 100644
index df912e4..0000000
--- a/wiki/lib/plugins/popularity/lang/mr/intro.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-====== लोकपà¥à¤°à¤¿à¤¯à¤¤à¤¾ फीडबॅक ======
-हे टूल तà¥à¤®à¤šà¥à¤¯à¤¾ विकी संबंधी माहिती गà¥à¤ªà¥à¤¤à¤ªà¤£à¥‡ गोळा करते आणि डॉकà¥à¤¯à¥à¤µà¤¿à¤•ीचà¥à¤¯à¤¾ निरà¥à¤®à¤¾à¤¤à¥à¤¯à¤¾à¤¨à¤¾ पाठवते. यादà¥à¤µà¤¾à¤°à¥‡ तà¥à¤¯à¤¾à¤‚ना डॉकà¥à¤¯à¥à¤µà¤¿à¤•ी पà¥à¤°à¤¤à¥à¤¯à¤•à¥à¤· कशी वापरली जाते व तà¥à¤¯à¤¾à¤¨à¥à¤¸à¤¾à¤° पà¥à¤°à¤¤à¥à¤¯à¤•à¥à¤· माहितीवर आधारित पà¥à¤¢à¥€à¤² सà¥à¤§à¤¾à¤°à¤£à¤¾ करणà¥à¤¯à¤¾à¤¸ मदत होते.
-
-तà¥à¤®à¥à¤¹à¥€ हे टूल ठराविक अंतराने परत वापरत राहिलà¥à¤¯à¤¾à¤¸ अधिक चांगले ,कारण तà¥à¤®à¤šà¥€ विकी जसजशी वाढेल तसे डेवलपर लोकाना तà¥à¤¯à¤¾à¤¬à¤¦à¥à¤¦à¤² माहिती कळणà¥à¤¯à¤¾à¤¸ मदत होइल. तà¥à¤®à¤šà¤¾ डेटा गà¥à¤ªà¥à¤¤ निरà¥à¤¦à¥‡à¤¶à¤•ादà¥à¤µà¤¾à¤°à¥‡ ओळखला जाइल.
-
-या डेटा मधे पà¥à¤¢à¥€à¤² पà¥à¤°à¤•ारची माहिती असेल : तà¥à¤®à¤šà¥à¤¯à¤¾ डॉकà¥à¤¯à¥à¤µà¤¿à¤•ीची आवृतà¥à¤¤à¤¿, तà¥à¤¯à¤¾à¤¤à¥€à¤² पानांची संखà¥à¤¯à¤¾ व साइज़, इनà¥à¤¸à¥à¤Ÿà¥‰à¤² केलेले    पà¥à¤²à¤—इन आणि तà¥à¤®à¤šà¥à¤¯à¤¾ PHP ची आवृतà¥à¤¤à¤¿.
-
-जो डेटा पà¥à¤°à¤¤à¥à¤¯à¤•à¥à¤· पाठवला जाइल तो खाली दाखवला आहे. "Send Data" बटन वर कà¥à¤²à¤¿à¤• करून हा डेटा पाठवा. 
\ No newline at end of file
diff --git a/wiki/lib/plugins/popularity/lang/mr/lang.php b/wiki/lib/plugins/popularity/lang/mr/lang.php
deleted file mode 100644
index abf7dd5..0000000
--- a/wiki/lib/plugins/popularity/lang/mr/lang.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-/**
- * Marathi language file
- *
- * @author ghatothkach@hotmail.com
- * @author Padmanabh Kulkarni <kulkarnipadmanabh@gmail.com>
- * @author Padmanabh Kulkarni<kulkarnipadmanabh@gmail.com>
- * @author shantanoo@gmail.com
- */
-$lang['name']                  = 'लोकपà¥à¤°à¤¿à¤¯à¤¤à¤¾ फीडबॅक ( लोड होणà¥à¤¯à¤¾à¤¸ थोडा वेळ लागेल )';
-$lang['submit']                = 'माहीती पाठवा';
diff --git a/wiki/lib/plugins/popularity/lang/ne/lang.php b/wiki/lib/plugins/popularity/lang/ne/lang.php
deleted file mode 100644
index c0d925a..0000000
--- a/wiki/lib/plugins/popularity/lang/ne/lang.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author Saroj Kumar Dhakal <lotusnagarkot@gmail.com>
- * @author SarojKumar Dhakal <lotusnagarkot@yahoo.com>
- * @author Saroj Dhakal<lotusnagarkot@yahoo.com>
- */
-$lang['submit']                = 'सामगà¥à¤°à¥€ पठाउनà¥à¤¹à¥‹à¤¸à¥ ';
diff --git a/wiki/lib/plugins/popularity/lang/nl/intro.txt b/wiki/lib/plugins/popularity/lang/nl/intro.txt
deleted file mode 100644
index 3c045c4..0000000
--- a/wiki/lib/plugins/popularity/lang/nl/intro.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-====== Populariteitsfeedback ======
-
-Dit onderdeel verzamelt anonieme gegevens over uw wiki en stelt u in staat deze te versturen naar de ontwikkelaars van DokuWiki.  Dit helpt hen te begrijpen hoe DokuWiki wordt gebruikt door de gebruikers en zorgt er ook voor dat toekomstige ontwikkelkeuzes kunnen worden gestaafd door echte gebruikersstatistieken.
-
-U wordt verzocht deze stap van tijd tot tijd te herhalen om ontwikkelaars op de hoogte te houden terwijl uw wiki groeit. De herhaalde data zal worden geïdentificeerd door een uniek, anoniem ID.
-
-De verzamelde gegevens bevat onder andere gegevens over uw versie van DokuWiki, het aantal- en de grootte van de pagina's en bestanden, geïnstalleerde plugins en informatie over PHP.
-
-De ruwe data die verzonden worden staan hieronder. Gebruik de knop "Verstuur" om de informatie te verzenden.
diff --git a/wiki/lib/plugins/popularity/lang/nl/lang.php b/wiki/lib/plugins/popularity/lang/nl/lang.php
deleted file mode 100644
index 121e71c..0000000
--- a/wiki/lib/plugins/popularity/lang/nl/lang.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Wouter Schoot <wouter@schoot.org>
- * @author Niels Schoot <niels.schoot@quintiq.com>
- * @author Dion Nicolaas <dion@nicolaas.net>
- * @author Danny Rotsaert <danny.rotsaert@edpnet.be>
- * @author Marijn Hofstra <hofstra.m@gmail.com>
- * @author Timon Van Overveldt <timonvo@gmail.com>
- * @author Ricardo Guijt <ricardoguijt@gmail.com>
- * @author Gerrit <klapinklapin@gmail.com>
- * @author Remon <no@email.local>
- */
-$lang['name']                  = 'Populariteitsfeedback (kan even duren om in te laden)';
-$lang['submit']                = 'Verstuur gegevens';
-$lang['autosubmit']            = 'Gegevens automatisch maandelijks verzenden';
-$lang['submissionFailed']      = 'De gegevens konden niet verstuurd worden vanwege de volgende fout:';
-$lang['submitDirectly']        = 'Je kan de gegevens handmatig sturen door het onderstaande formulier te verzenden.';
-$lang['autosubmitError']       = 'De laatste automatische verzending is mislukt vanwege de volgende fout:';
-$lang['lastSent']              = 'De gegevens zijn verstuurd.';
diff --git a/wiki/lib/plugins/popularity/lang/nl/submitted.txt b/wiki/lib/plugins/popularity/lang/nl/submitted.txt
deleted file mode 100644
index 219d80f..0000000
--- a/wiki/lib/plugins/popularity/lang/nl/submitted.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-===== Populariteitsfeedback =====
-
-Het versturen van de gegevens is gelukt.
\ No newline at end of file
diff --git a/wiki/lib/plugins/popularity/lang/no/intro.txt b/wiki/lib/plugins/popularity/lang/no/intro.txt
deleted file mode 100644
index be3f8f0..0000000
--- a/wiki/lib/plugins/popularity/lang/no/intro.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-======  Tilbakemelding om popularitet ======
-
-Dette verktøyet samler anonyme data om din wiki og sender disse tilbake til DokuWikis utviklere. Dette hjelper utviklerne til å forstå hvordan DokuWiki blir brukt, og gjør at fremtidig beslutninger om videre utvikling kan baseres på statistikk fra virkelig bruk.
-
-Du oppfordres herved til å gjenta innsendingen fra tid til annen for å holde utviklerne informert når din wiki vokser. Dine datasett vil bli  identifisert ved hjelp av en anonym identifikator.
-
-De data som samles inn inneholder informasjon om din DokuWiki-versjon, antallet og størrelsen på sider og filer, installerte utvidelser og informasjon om hvilken versjon av PHP som er installert.
-
-Rådata som blir sendt vises nedenfor. Bruk knappen "Send data" for å overføre denne informasjonen.
\ No newline at end of file
diff --git a/wiki/lib/plugins/popularity/lang/no/lang.php b/wiki/lib/plugins/popularity/lang/no/lang.php
deleted file mode 100644
index 688cc4f..0000000
--- a/wiki/lib/plugins/popularity/lang/no/lang.php
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Rune M. Andersen <rune.andersen@gmail.com>
- * @author Jakob Vad Nielsen (me@jakobnielsen.net)
- * @author Kjell Tore Næsgaard <kjell.t.nasgaard@ntnu.no>
- * @author Knut Staring <knutst@gmail.com>
- * @author Lisa Ditlefsen <lisa@vervesearch.com>
- * @author Erik Pedersen <erik.pedersen@shaw.ca>
- * @author Erik Bjørn Pedersen <erik.pedersen@shaw.ca>
- * @author Rune Rasmussen syntaxerror.no@gmail.com
- * @author Thomas Nygreen <nygreen@gmail.com>
- * @author Jon Bøe <jonmagneboe@hotmail.com>
- * @author Egil Hansen <egil@rosetta.no>
- * @author Arne Hanssen <arne.hanssen@getmail.no>
- */
-$lang['name']                  = ' Tilbakemelding om popularitet (kan ta litt tid å laste)';
-$lang['submit']                = 'Send data';
-$lang['autosubmit']            = 'Send data automatisk en gang i måneden';
-$lang['submissionFailed']      = 'Kunne ikke sende dataene på grunn av følgende feil:';
-$lang['submitDirectly']        = 'Du kan sende dataene manuelt ved å sende inn dette skjemaet.';
-$lang['autosubmitError']       = 'Den siste automatiske innsendingen feilet på grunn av følgende feil:';
-$lang['lastSent']              = 'Dataene er sendt for ';
diff --git a/wiki/lib/plugins/popularity/lang/no/submitted.txt b/wiki/lib/plugins/popularity/lang/no/submitted.txt
deleted file mode 100644
index ccec767..0000000
--- a/wiki/lib/plugins/popularity/lang/no/submitted.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Tilbakemelding om popularitet ======
-
-Innsending av dataene var vellykket.
\ No newline at end of file
diff --git a/wiki/lib/plugins/popularity/lang/pl/intro.txt b/wiki/lib/plugins/popularity/lang/pl/intro.txt
deleted file mode 100644
index d95e7f7..0000000
--- a/wiki/lib/plugins/popularity/lang/pl/intro.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-====== Informacja o popularności ======
-
-To narzędzie zbiera anonimowe dane o Twoim wiki i wysyła je do twórców DokuWiki. Zbieranie tych informacji pozwala na lepsze zrozumienie sposobów korzystania z DokuWiki i ułatwia podejmowanie przyszłych decyzji projektowych w oparciu o rzeczywiste dane statystyczne.
-
-Zachęcamy do uruchamiania tej funkcji co pewien czas, by poinformować programistów DokuWiki o rozwoju Twojego wiki. Informacje przesyłane przez Ciebie będą oznaczone anonimowym identyfikatorem.
-
-Zbierane dane zawierają informacje o wersji DokuWiki, ilości i rozmiarze stron i plików, zainstalowanych wtyczkach oraz informację o oprogramowaniu PHP.
-
-Wysyłane dane przedstawione są poniżej. Naciśnij przycisk "Wyślij dane" w celu przesłania informacji.
\ No newline at end of file
diff --git a/wiki/lib/plugins/popularity/lang/pl/lang.php b/wiki/lib/plugins/popularity/lang/pl/lang.php
deleted file mode 100644
index 2f198d2..0000000
--- a/wiki/lib/plugins/popularity/lang/pl/lang.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-
-/**
- * @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>
- * @author Sławomir Boczek <slawkens@gmail.com>
- * @author sleshek <sleshek@wp.pl>
- * @author Leszek Stachowski <shazarre@gmail.com>
- * @author maros <dobrimaros@yahoo.pl>
- * @author Grzegorz Widła <dzesdzes@gmail.com>
- * @author Åukasz Chmaj <teachmeter@gmail.com>
- * @author Begina Felicysym <begina.felicysym@wp.eu>
- * @author Aoi Karasu <aoikarasu@gmail.com>
- */
-$lang['name']                  = 'Informacja o popularności (ładowanie może zająć dłuższą chwilę)';
-$lang['submit']                = 'Wyślij dane';
-$lang['autosubmit']            = 'Automatycznie wysyłaj dane raz na miesiąc';
-$lang['submissionFailed']      = 'Dane nie mogły być przesłane ze względu na następujące błędy:';
-$lang['submitDirectly']        = 'Możesz wysłać dane ręcznie poprzez następujący formularz:';
-$lang['autosubmitError']       = 'Ostatnie wysyłanie automatyczne nie powiodło się ze względu na następujące błędy:';
-$lang['lastSent']              = 'Dane zostały wysłane:';
diff --git a/wiki/lib/plugins/popularity/lang/pl/submitted.txt b/wiki/lib/plugins/popularity/lang/pl/submitted.txt
deleted file mode 100644
index 195e813..0000000
--- a/wiki/lib/plugins/popularity/lang/pl/submitted.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Informacje o popularności ======
-
-Wysyłanie danych powiodło się.
\ No newline at end of file
diff --git a/wiki/lib/plugins/popularity/lang/pt-br/intro.txt b/wiki/lib/plugins/popularity/lang/pt-br/intro.txt
deleted file mode 100644
index e07aa0a..0000000
--- a/wiki/lib/plugins/popularity/lang/pt-br/intro.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-====== Retorno de Popularidade ======
-
-Essa [[doku>popularity|ferramenta]] coleta dados anônimos sobre o seu wiki e permite que você os envie para os desenvolvedores do DokuWiki. Isso ajuda-os a compreender como o DokuWiki é utilizado pelos seus usuários e garante que decisões para futuros desenvolvimentos sejam respaldadas por estatísticas de uso real.
-
-Você é encorajado a repetir esse procedimento de tempos em tempos, para manter os desenvolvedores informados quando o seu wiki for alterado. Seus pacotes de dados repetidos serão categorizados por uma identificação anônima.
-
-Os dados coletados contém informações do tipo: a versão do seu DokuWiki, o número e tamanho das suas páginas e arquivos, plug-ins instalados e informações sobre a sua instalação do PHP.
-
-Os dados brutos que serão enviados serão exibidos abaixo. Por favor, utilize o botão "Enviar dados" para transferir a informação.
diff --git a/wiki/lib/plugins/popularity/lang/pt-br/lang.php b/wiki/lib/plugins/popularity/lang/pt-br/lang.php
deleted file mode 100644
index 58df300..0000000
--- a/wiki/lib/plugins/popularity/lang/pt-br/lang.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Frederico Gonçalves Guimarães <frederico@teia.bio.br>
- * @author Lucien Raven <lucienraven@yahoo.com.br>
- * @author Enrico Nicoletto <liverig@gmail.com>
- * @author Flávio Veras <flaviove@gmail.com>
- * @author Jeferson Propheta <jeferson.propheta@gmail.com>
- * @author jair.henrique <jair.henrique@gmail.com>
- * @author Luis Dantas <luis@dantas.com>
- * @author Sergio Motta <sergio@cisne.com.br>
- * @author Isaias Masiero Filho <masiero@masiero.org>
- * @author Balaco Baco <balacobaco@imap.cc>
- * @author Victor Westmann <victor.westmann@gmail.com>
- */
-$lang['name']                  = 'Retorno de popularidade (pode demorar um pouco para carregar)';
-$lang['submit']                = 'Enviar dados';
-$lang['autosubmit']            = 'Enviar os dados automaticamente uma vez por mês';
-$lang['submissionFailed']      = 'Os dados não puderam ser enviados devido ao seguinte erro:';
-$lang['submitDirectly']        = 'Você pode enviar os dados manualmente, submetendo o formulário baixo.';
-$lang['autosubmitError']       = 'Ocorreu uma falha na última submissão automática, devido ao seguinte erro:';
-$lang['lastSent']              = 'Os dados foram enviados';
diff --git a/wiki/lib/plugins/popularity/lang/pt-br/submitted.txt b/wiki/lib/plugins/popularity/lang/pt-br/submitted.txt
deleted file mode 100644
index 7c0cea8..0000000
--- a/wiki/lib/plugins/popularity/lang/pt-br/submitted.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Retorno de popularidade ======
-
-Os dados foram enviados com sucesso.
\ No newline at end of file
diff --git a/wiki/lib/plugins/popularity/lang/pt/intro.txt b/wiki/lib/plugins/popularity/lang/pt/intro.txt
deleted file mode 100644
index 9ec37e2..0000000
--- a/wiki/lib/plugins/popularity/lang/pt/intro.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-====== Retorno de Popularidade ======
-
-Esta ferramenta junta dados anónimos sobre o seu wiki e permite estes sejam enviados para a equipa de desenvolvimento do DokuWiki. Isto ajuda-os a compreender como o DokuWiki é usado pelos seus utilizadores de forma a permitir que desenvolvimentos futuros sejam baseadas em estatísticas de uso real.
-
-Você é encorajado a repetir este passo regularmente para manter a equipa informada quando o seu wiki crescer. Os seus dados permanecerão sempre anónimos.
-
-Os dados colectados contêm informação como a versão do DokuWiki que você utiliza, o número e tamanho das suas páginas e ficheiros, os plugins instalados e informação sobre a sua instalação do PHP.
-
-Os dados que serão enviados são mostrados abaixo. Use o botão "Enviar Dados" para transferir a informação.
\ No newline at end of file
diff --git a/wiki/lib/plugins/popularity/lang/pt/lang.php b/wiki/lib/plugins/popularity/lang/pt/lang.php
deleted file mode 100644
index a14d176..0000000
--- a/wiki/lib/plugins/popularity/lang/pt/lang.php
+++ /dev/null
@@ -1,17 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Enrico Nicoletto <liverig@gmail.com>
- * @author Fil <fil@meteopt.com>
- * @author André Neves <drakferion@gmail.com>
- * @author José Campos zecarlosdecampos@gmail.com
- */
-$lang['name']                  = 'Retorno (feedback) de Popularidade (pode levar algum tempo a carregar)';
-$lang['submit']                = 'Enviar Dados';
-$lang['autosubmit']            = 'Enviar dados automáticamente uma vez por mês';
-$lang['submissionFailed']      = 'Os dados não foram enviados devido ao seguinte erro:';
-$lang['submitDirectly']        = 'Pode enviar os dados manualmente, submetendo o seguinte formulário.';
-$lang['autosubmitError']       = 'A última auto-submissão falhou, por causa do seguinte erro:';
-$lang['lastSent']              = 'Os dados foram enviados';
diff --git a/wiki/lib/plugins/popularity/lang/pt/submitted.txt b/wiki/lib/plugins/popularity/lang/pt/submitted.txt
deleted file mode 100644
index d2bb2b7..0000000
--- a/wiki/lib/plugins/popularity/lang/pt/submitted.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Retorno de Popularidade ======
-
-Os dados foram enviados com sucesso.
\ No newline at end of file
diff --git a/wiki/lib/plugins/popularity/lang/ro/intro.txt b/wiki/lib/plugins/popularity/lang/ro/intro.txt
deleted file mode 100644
index b2dfcba..0000000
--- a/wiki/lib/plugins/popularity/lang/ro/intro.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-====== Feedback de popularitate ======
-
-Această unealtă colectează date anonime despre wiki-ul dvs. şi vă permite să le trimiteţi înapoi către dezvoltatorii DokuWiki. Aceasta îi ajută să înţeleagă cum este folosit DokuWiki de către utilizatori şi asigură faptul că viitoarele decizii privind dezvoltarea sunt bazate pe statistici ale utilizării în condiţii reale.
-
-Sunteţi încurajat să repetaţi acest pas din când în când pentru a ţine dezvoltatorii la curent cu dezvoltarea wiki-ului dvs. Seturile de date trimise in mod repetat vor fi identificate printr-un ID anonim.
-
-Datele colectate conţin informaţii precum versiunea DokuWiki, numărul şi mărimea paginilor şi a fişierelor dvs., plugin-urile instalate şi informaţii despre versiunea PHP instalată.
-
-Datele brute ce vor fi trimise sunt afişate mai jos. Vă rugăm utilizaţi butonul "Trimite datele" pentru a transfera informaţiile.
\ No newline at end of file
diff --git a/wiki/lib/plugins/popularity/lang/ro/lang.php b/wiki/lib/plugins/popularity/lang/ro/lang.php
deleted file mode 100644
index 4a3130a..0000000
--- a/wiki/lib/plugins/popularity/lang/ro/lang.php
+++ /dev/null
@@ -1,20 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Emanuel-Emeric Andrasi <n30@mandrivausers.ro>
- * @author Emanuel-Emeric Andrași <n30@mandrivausers.ro>
- * @author Emanuel-Emeric AndraÅŸi <em.andrasi@mandrivausers.ro>
- * @author Emanuel-Emeric Andrasi <em.andrasi@mandrivausers.ro>
- * @author Marius OLAR <olarmariusalex@gmail.com>
- * @author Marius Olar <olarmariusalex@yahoo.com>
- * @author Emanuel-Emeric Andrași <em.andrasi@mandrivausers.ro>
- */
-$lang['name']                  = 'Feedback de popularitate (încărcarea poate dura mai mult)';
-$lang['submit']                = 'Trimite datele';
-$lang['autosubmit']            = 'Trimite datele automat o dată pe lună';
-$lang['submissionFailed']      = 'Datele nu au fost trimise din cauza următoarei erori:';
-$lang['submitDirectly']        = 'Puteți trimite datele manual prin completarea următorului formular.';
-$lang['autosubmitError']       = 'Ultima trimitere automată a eșuat din cauza următoarei erori:';
-$lang['lastSent']              = 'Datele au fost trimise';
diff --git a/wiki/lib/plugins/popularity/lang/ro/submitted.txt b/wiki/lib/plugins/popularity/lang/ro/submitted.txt
deleted file mode 100644
index 214ffb7..0000000
--- a/wiki/lib/plugins/popularity/lang/ro/submitted.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Feedback de popularitate ======
-
-Datele au fost trimise cu succes.
\ No newline at end of file
diff --git a/wiki/lib/plugins/popularity/lang/ru/intro.txt b/wiki/lib/plugins/popularity/lang/ru/intro.txt
deleted file mode 100644
index dbf0cc6..0000000
--- a/wiki/lib/plugins/popularity/lang/ru/intro.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-====== Сбор информации о популÑрноÑти ======
-
-Этот [[doku>popularity|инÑтрумент]] Ñобирает анонимные данные о вашей вики и позволÑет вам отправить их разработчикам «Докувики». Эти данные помогут им понÑть, как именно иÑпользуетÑÑ Â«Ð”Ð¾ÐºÑƒÐ²Ð¸ÐºÐ¸Â», и удоÑтоверитьÑÑ, что принимаемые проектные Ñ€ÐµÑˆÐµÐ½Ð¸Ñ ÑоответÑтвуют жизненным реалиÑм.
-
-ОтправлÑйте данные Ð²Ñ€ÐµÐ¼Ñ Ð¾Ñ‚ времени Ð´Ð»Ñ Ñ‚Ð¾Ð³Ð¾, чтобы Ñообщать разработчикам о том, что ваша вики «подроÑла». Отправленные вами данные будут идентифицированы по анонимному ID.
-
-Собранные данные Ñодержат такую информацию, как: верÑÐ¸Ñ Â«Ð”Ð¾ÐºÑƒÐ²Ð¸ÐºÐ¸Â», количеÑтво и размер ваших Ñтраниц и файлов, уÑтановленные плагины, информацию об уÑтановленном PHP.
-
-Данные, которые будут отоÑланы, предÑтавлены ниже. ПожалуйÑта, иÑпользуйте кнопку «Отправить данные», чтобы передать информацию.
-
diff --git a/wiki/lib/plugins/popularity/lang/ru/lang.php b/wiki/lib/plugins/popularity/lang/ru/lang.php
deleted file mode 100644
index 2e84e06..0000000
--- a/wiki/lib/plugins/popularity/lang/ru/lang.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Змей ЭтерийÑкий <evil_snake@eternion.ru>
- * @author Hikaru Nakajima <jisatsu@mail.ru>
- * @author Alexei Tereschenko <alexeitlex@yahoo.com>
- * @author Alexander Sorkin <kibizoid@gmail.com>
- * @author Kirill Krasnov <krasnovforum@gmail.com>
- * @author Vlad Tsybenko <vlad.development@gmail.com>
- * @author Aleksey Osadchiy <rfc@nm.ru>
- * @author Aleksandr Selivanov <alexgearbox@gmail.com>
- * @author Ladyko Andrey <fylh@succexy.spb.ru>
- * @author Eugene <windy.wanderer@gmail.com>
- * @author Johnny Utah <pcpa@cyberpunk.su>
- */
-$lang['name']                  = 'Сбор информации о популÑрноÑти (Ð´Ð»Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ¸ может потребоватьÑÑ Ð½ÐµÐºÐ¾Ñ‚Ð¾Ñ€Ð¾Ðµ времÑ)';
-$lang['submit']                = 'Отправить данные';
-$lang['autosubmit']            = 'ÐвтоматичеÑки отправлÑть данные один раз в меÑÑц';
-$lang['submissionFailed']      = 'Данные не могут быть отправлены из-за ошибки:';
-$lang['submitDirectly']        = 'Ð’Ñ‹ можете отправлÑть данные вручную, заполнив форму:';
-$lang['autosubmitError']       = 'ПоÑледнее автоотправление данных не удалоÑÑŒ из-за ошибки:';
-$lang['lastSent']              = 'Данные отправлены';
diff --git a/wiki/lib/plugins/popularity/lang/ru/submitted.txt b/wiki/lib/plugins/popularity/lang/ru/submitted.txt
deleted file mode 100644
index 8454101..0000000
--- a/wiki/lib/plugins/popularity/lang/ru/submitted.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Сбор информации о популÑрноÑти ======
-
-Данные были уÑпешно отправлены.
\ No newline at end of file
diff --git a/wiki/lib/plugins/popularity/lang/sk/intro.txt b/wiki/lib/plugins/popularity/lang/sk/intro.txt
deleted file mode 100644
index 7f580d9..0000000
--- a/wiki/lib/plugins/popularity/lang/sk/intro.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-====== Prieskum používania ======
-
-Tento nástroj získa anonymné dáta o VaÅ¡ej wiki a ponúkne Vám možnosÅ¥ odoslaÅ¥ ich späť k vývojárom DokuWiki. Týmto spôsobom im umožníte lepÅ¡ie porozumieÅ¥, ako je používaná DokuWiki, a podporiÅ¥ ich budúce rozhodnutia o ÄalÅ¡om vývoji informáciami z reálneho používania DokuWiki.
-
-DoporuÄujeme Vám opakovaÅ¥ tento krok z Äasu na Äas pri napredovaní VaÅ¡ej wiki a tak pomôcÅ¥ vývojárom DokuWiki. VaÅ¡e dáta budú oznaÄené anonymným ID.
-
-Zozbierané dáta obsahujú informácie ako verziu DokuWiki, poÄet a veľkosÅ¥ VaÅ¡ich stránok a súborov, inÅ¡talované pluginy a informácie o inÅ¡talovanom PHP.
-
-Dáta, ktoré budú poslané sú zobrazené nižšie. Prosím použite tlaÄidlo "PoslaÅ¥ dáta" na odoslanie týchto informácií.
\ No newline at end of file
diff --git a/wiki/lib/plugins/popularity/lang/sk/lang.php b/wiki/lib/plugins/popularity/lang/sk/lang.php
deleted file mode 100644
index eb23a9a..0000000
--- a/wiki/lib/plugins/popularity/lang/sk/lang.php
+++ /dev/null
@@ -1,16 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Michal Mesko <michal.mesko@gmail.com>
- * @author exusik <exusik@gmail.com>
- * @author Martin Michalek <michalek.dev@gmail.com>
- */
-$lang['name']                  = 'Prieskum používania (môže chvíľu trvať)';
-$lang['submit']                = 'Poslať dáta';
-$lang['autosubmit']            = 'Automaticky zaslaÅ¥ dáta raz mesaÄne';
-$lang['submissionFailed']      = 'Dáta nemohli byť odoslané z nasledujúceho dôdovu:';
-$lang['submitDirectly']        = 'Dáta môžu byť zaslané manuálne nasledujúcim formulárom:';
-$lang['autosubmitError']       = 'Posledné automatické odoslanie dát zlyhalo z nasledujúceho dôvodu:';
-$lang['lastSent']              = 'Dáta boli odoslané.';
diff --git a/wiki/lib/plugins/popularity/lang/sk/submitted.txt b/wiki/lib/plugins/popularity/lang/sk/submitted.txt
deleted file mode 100644
index f99fb9f..0000000
--- a/wiki/lib/plugins/popularity/lang/sk/submitted.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Prieskum používania ======
-
-Dáta boli úspešne odoslané.
\ No newline at end of file
diff --git a/wiki/lib/plugins/popularity/lang/sl/intro.txt b/wiki/lib/plugins/popularity/lang/sl/intro.txt
deleted file mode 100644
index 2c029db..0000000
--- a/wiki/lib/plugins/popularity/lang/sl/intro.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-====== PoroÄilo o uporabi ======
-
-To orodje je namenjeno zbiranju brezimnih podatkov o postavljeni DokuWiki strani in omogoÄa poÅ¡iljanje nekaterih podatkov neposredno razvijalcem sistema. S temi podatki lahko razvijalci razumejo naÄine uporabe sistema, zahteve uporabnikov in pogostost uporabe, kar s statistiÄnimi podatki vpliva tudi na nadaljnji razvoj sistema.
-
-PriporoÄeno je, da poroÄilo o uporabi poÅ¡ljete vsake toliko Äasa, saj lahko le tako razvijalci dobijo podatke o hitrosti rasti spletiÅ¡Äa in pogostosti uporabe. Vsi podatki so poslani oznaÄeni s posebno vpisno Å¡tevilko, ki omogoÄa brezimno sledenje.
-
-Zbrani podatki vsebujejo podrobnosti o razliÄici uporabljenega sistema DokuWiki, Å¡tevilo in velikost wiki strani, datotekah, ki so naložene na sistem in podatke o vstavkih ter PHP namestitvi in razliÄici.
-
-Surovi podatki, ki bodo poslani so prikazani spodaj. S pritiskom na gumb "Pošlji podatke", bodo ti poslani na strežnik razvijalcev.
diff --git a/wiki/lib/plugins/popularity/lang/sl/lang.php b/wiki/lib/plugins/popularity/lang/sl/lang.php
deleted file mode 100644
index 3910eba..0000000
--- a/wiki/lib/plugins/popularity/lang/sl/lang.php
+++ /dev/null
@@ -1,14 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Matej UrbanÄiÄ (mateju@svn.gnome.org)
- */
-$lang['name']                  = 'PoroÄilo o uporabi (nalaganje strani je lahko dolgotrajno)';
-$lang['submit']                = 'Pošlji podatke';
-$lang['autosubmit']            = 'Samodejno poÅ¡lji podatke enkrat meseÄno';
-$lang['submissionFailed']      = 'Podatkov zaradi napake ni mogoÄe poslati:';
-$lang['submitDirectly']        = 'Podatke je mogoÄe poslati roÄno s poÅ¡iljanjem preko obrazca.';
-$lang['autosubmitError']       = 'Zadnji poskus samodejnega pošiljanja je spodletel zaradi napake:';
-$lang['lastSent']              = 'Podatki so bili uspešno poslani.';
diff --git a/wiki/lib/plugins/popularity/lang/sl/submitted.txt b/wiki/lib/plugins/popularity/lang/sl/submitted.txt
deleted file mode 100644
index 11ae052..0000000
--- a/wiki/lib/plugins/popularity/lang/sl/submitted.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== PoroÄilo o uporabi ======
-
-Podatki so bili uspešno poslani.
diff --git a/wiki/lib/plugins/popularity/lang/sq/intro.txt b/wiki/lib/plugins/popularity/lang/sq/intro.txt
deleted file mode 100644
index eb37e5f..0000000
--- a/wiki/lib/plugins/popularity/lang/sq/intro.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-====== Informacioni mbi Popullaritetin ======
-
-Ky mjet mbledh të dhëna anonime rreth wiki-t tuaj dhe ju lejon t'ia dërgoni ato zhvilluesve të DokuWiki-t. Kjo i ndihmon ata të kuptojnë sesi DokuWiki përdoret nga përdoruesit e tij dhe siguron që vendimet për zhvillime të ardhshme të jenë të mbështetura mbi statistika të nxjera nga bota e vërtetë.
-
-Ju jeni të inkurajuar ta përsërisni këtë hap shpesh herë për t'i mbajtur zhvilluesit të informuar kur wiki juaj rritet. Bashkësia e të dhënave tuaja të përsëritura do të identifikohen nga një ID anonime.
-
-Të dhënat e mbledhura përmbajnë informacione si versioni i DokuWiki-t tuaj, numri dhe madhësia e faqeve dhe skedarëve, plugin-et e instaluar dhe informacione rreth instalimit të PHP-së.
-
-Të dhënat e papërpunuara që do të dërgohen janë treguar më poshtë. Ju lutem përdorni buttonin "Dërgo Të Dhëna" për të transferuar informacionin.
\ No newline at end of file
diff --git a/wiki/lib/plugins/popularity/lang/sq/lang.php b/wiki/lib/plugins/popularity/lang/sq/lang.php
deleted file mode 100644
index 1954ce0..0000000
--- a/wiki/lib/plugins/popularity/lang/sq/lang.php
+++ /dev/null
@@ -1,8 +0,0 @@
-<?php
-/**
- * Albanian language file
- *
- * @author Leonard Elezi leonard.elezi@depinfo.info
- */
-$lang['name']                  = 'Informacioni mbi Popullaritetin (mund të marë ca kohë derisa të ngarkohet)';
-$lang['submit']                = 'Dërgo Të Dhënat';
diff --git a/wiki/lib/plugins/popularity/lang/sr/intro.txt b/wiki/lib/plugins/popularity/lang/sr/intro.txt
deleted file mode 100644
index cbbb46a..0000000
--- a/wiki/lib/plugins/popularity/lang/sr/intro.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-====== Мерење популарноÑти ======
-
-Ова алатка анонимно Ñкупља податке о вашем викију и шаље их програмерима DokuWiki-ја. Овим помажете да разумеју како кориÑници кориÑте DokuWiki и обезбеђујете да Ñе одлуке имају потпору у ÑтатиÑтици о коришћењу у реалним уÑловима.
-
-Охрабрујемо Ð²Ð°Ñ Ð´Ð° поновите овај корак Ñ Ð²Ñ€ÐµÐ¼ÐµÐ½Ð° на време да би програмери имали информацију о развоју вашег викија. Ваши поновљени подаци ће бити идентификовани Ñа анонимним ЛИБом.
-
-Сакупљени подаци Ñадрже информације: верзија вашег DokuWiki-ја, број и величина Ñтраница и датотека, инÑталирани додаци и информације о ПХПу.
-
-Сирова верзија података који Ñе шаљу Ñе налази иÑпод. КориÑтите дугме Пошаљи податке за Ð¿Ñ€ÐµÐ½Ð¾Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ˜Ð°.
\ No newline at end of file
diff --git a/wiki/lib/plugins/popularity/lang/sr/lang.php b/wiki/lib/plugins/popularity/lang/sr/lang.php
deleted file mode 100644
index b67aaa8..0000000
--- a/wiki/lib/plugins/popularity/lang/sr/lang.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Иван Петровић petrovicivan@ubuntusrbija.org
- * @author Ivan Petrovic <petrovicivan@ubuntusrbija.org>
- * @author Miroslav Å olti <solti.miroslav@gmail.com>
- */
-$lang['name']                  = 'Мерење популарноÑти (може потрајати док Ñе не учита)';
-$lang['submit']                = 'Пошаљи податке';
diff --git a/wiki/lib/plugins/popularity/lang/sv/intro.txt b/wiki/lib/plugins/popularity/lang/sv/intro.txt
deleted file mode 100644
index 2f00c01..0000000
--- a/wiki/lib/plugins/popularity/lang/sv/intro.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-====== Popularitetsfeedback ======
-
-Detta verktyg samlar anonyma data om din wiki och låter dig skicka dessa till DokuWikis utvecklare. Det hjälper utvecklarna att förstå hur DokuWiki används och gör att framtida beslut om DokuWikis utveckling kan grundas på statistik från verkligt bruk.
-
-Upprepa gärna detta steg då och då allteftersom din Wiki växer. Dina rapporter kommer att bli identifierade med hjälp av ett anonymt id.
-
-Data som samlas in innehåller information om bland annat din DokuWiki-version, antalet och storleken på sidorna, installerade plugins samt information om din PHP-installation.
-
-Rådata som kommer att sändas visas här nedanför. Vänligen använd knappen "Sänd data" för att överföra informationen.
-
-
diff --git a/wiki/lib/plugins/popularity/lang/sv/lang.php b/wiki/lib/plugins/popularity/lang/sv/lang.php
deleted file mode 100644
index ffbb903..0000000
--- a/wiki/lib/plugins/popularity/lang/sv/lang.php
+++ /dev/null
@@ -1,20 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author HÃ¥kan Sandell <hakan.sandell@home.se>
- * @author Dennis Karlsson
- * @author Tormod Otter Johansson <tormod@latast.se>
- * @author Pontus Bergendahl <pontus.bergendahl@gmail.com>
- * @author Emil Lind <emil@sys.nu>
- * @author Bogge Bogge <bogge@bogge.com>
- * @author Peter Åström <eaustreum@gmail.com>
- */
-$lang['name']                  = 'Popularitets-feedback (det kan ta en stund att ladda sidan)';
-$lang['submit']                = 'Sänd data';
-$lang['autosubmit']            = 'Skicka data automatiskt varje månad';
-$lang['submissionFailed']      = 'Datan kunde inte skickas för att:';
-$lang['submitDirectly']        = 'Du kan skicka datan manuellt genom att fylla i följande formulär.';
-$lang['autosubmitError']       = 'Senaste automatiska sändning av datan misslyckades för att:';
-$lang['lastSent']              = 'Datan har skickats';
diff --git a/wiki/lib/plugins/popularity/lang/sv/submitted.txt b/wiki/lib/plugins/popularity/lang/sv/submitted.txt
deleted file mode 100644
index fb8eab7..0000000
--- a/wiki/lib/plugins/popularity/lang/sv/submitted.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Popularitetsfeedback ======
-
-Datan har skickats utan problem.
\ No newline at end of file
diff --git a/wiki/lib/plugins/popularity/lang/th/lang.php b/wiki/lib/plugins/popularity/lang/th/lang.php
deleted file mode 100644
index f6a736a..0000000
--- a/wiki/lib/plugins/popularity/lang/th/lang.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author Komgrit Niyomrath <n.komgrit@gmail.com>
- * @author Kittithat Arnontavilas mrtomyum@gmail.com
- * @author Kittithat Arnontavilas <mrtomyum@gmail.com>
- * @author Thanasak Sompaisansin <jombthep@gmail.com>
- */
-$lang['name']                  = 'ส่งข้อมูลความนิยมà¸à¸¥à¸±à¸š (อาจใช้เวลาในà¸à¸²à¸£à¹‚หลด)';
-$lang['submit']                = 'ส่งข้อมูล';
diff --git a/wiki/lib/plugins/popularity/lang/tr/intro.txt b/wiki/lib/plugins/popularity/lang/tr/intro.txt
deleted file mode 100644
index a855ff3..0000000
--- a/wiki/lib/plugins/popularity/lang/tr/intro.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-====== Popülerlik Geribeslemesi ======
-
-Bu araç wiki'niz hakkında genel bilgileri toplayarak bunları DokuWiki geliştiricilerine geri göndermenizi sağlar. Böylece geliştiriciler DokuWiki'nin kullanıcılar tarafından nasıl kullanıldığını anlamalarını sağlar ve ileride gerçek kullanım istatistiklerine göre geliştirme kararları verebilirler.
-
-Wiki'nizin büyümesiyle beraber bu bölümü zaman zaman çalıştırmanız geliştiricileri bilgilendirecektir. Tekrar gönderilen veriler anonim olarak gönderilecektir.
-
-Bu veriler DokuWiki sürümünü, sayısını, sayfaların ve dosyalarım büyüklüklerini, yüklü eklentileri ve PHP sürümünü içermektedir.
-
-Gönderilecek işlenmemiş veriler aşağıda gösterilmektedir. Lütfen "Verileri Gönder" butonuna tıklayarak bilgileri gönderin.
\ No newline at end of file
diff --git a/wiki/lib/plugins/popularity/lang/tr/lang.php b/wiki/lib/plugins/popularity/lang/tr/lang.php
deleted file mode 100644
index 696ee38..0000000
--- a/wiki/lib/plugins/popularity/lang/tr/lang.php
+++ /dev/null
@@ -1,14 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author Aydın Coşkuner <aydinweb@gmail.com>
- * @author Cihan Kahveci <kahvecicihan@gmail.com>
- * @author Yavuz Selim <yavuzselim@gmail.com>
- * @author Caleb Maclennan <caleb@alerque.com>
- * @author farukerdemoncel@gmail.com
- */
-$lang['name']                  = 'Popülerlik Geribeslemesi (yüklemesi uzun sürebilir)';
-$lang['submit']                = 'Verileri Gönder';
-$lang['lastSent']              = 'Bilgiler gönderildi';
diff --git a/wiki/lib/plugins/popularity/lang/uk/intro.txt b/wiki/lib/plugins/popularity/lang/uk/intro.txt
deleted file mode 100644
index 3ceb882..0000000
--- a/wiki/lib/plugins/popularity/lang/uk/intro.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-====== Відгук популÑрноÑті ======
-
-Цей інÑтрумент збирає анонімні дані про вашу вікі Ñ– відÑилає Ñ—Ñ— розробникам ÑиÑтеми. Це допоможе їм зрозуміти, Ñк Ñаме кориÑтувачі викориÑтовують ДокуВікі Ñ– дозволÑÑ” врахувати потреби кориÑтувачів при подальшому удоÑконаленні ÑиÑтеми.
-
-Ви можете повторно відÑилати відгуки Ñ‡Ð°Ñ Ð²Ñ–Ð´ чаÑу, щоб повідомлÑти розробників про розвиток вашої ДокуВікі. Повторні відгуки будуть ідентифіковані по анонімному ID.
-
-У зібраних даних Ñ” Ñ–Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ Ð¿Ñ€Ð¾ верÑÑ–ÑŽ ДокуВікі, кількіÑть Ñ– розмір Ñторінок в ній, вÑтановлені додатки Ñ– Ñ–Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ Ð¿Ñ€Ð¾ Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ð°ÑˆÐ¾Ð³Ð¾ PHP.
-
-Дані, Ñкі буде надіÑлано показано нижче. Ð”Ð»Ñ Ð¿ÐµÑ€ÐµÐ´Ð°Ñ‡Ñ– інформації натиÑніть будь-лаÑка кнопку "Передати дані"
\ No newline at end of file
diff --git a/wiki/lib/plugins/popularity/lang/uk/lang.php b/wiki/lib/plugins/popularity/lang/uk/lang.php
deleted file mode 100644
index d47a0cf..0000000
--- a/wiki/lib/plugins/popularity/lang/uk/lang.php
+++ /dev/null
@@ -1,15 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author serg_stetsuk <serg_stetsuk@ukr.net>
- * @author Oleksandr Kunytsia <okunia@gmail.com>
- */
-$lang['name']                  = 'Відгук популÑрноÑті (може зайнÑти деÑкий чаÑ)';
-$lang['submit']                = 'Передати дані';
-$lang['autosubmit']            = 'Ðвтоматично надÑилати дані один раз на міÑÑць';
-$lang['submissionFailed']      = 'Дані не можуть бути відправлені через таку помилку:';
-$lang['submitDirectly']        = 'Ви можете надіÑлати дані вручну, відправивши наÑтупну форму.';
-$lang['autosubmitError']       = 'ОÑтаннє автоматичне Ð²Ñ–Ð´Ð¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð½Ñ Ð½Ðµ вдалоÑÑ Ñ‡ÐµÑ€ÐµÐ· таку помилку:';
-$lang['lastSent']              = 'Дані були відправлені';
diff --git a/wiki/lib/plugins/popularity/lang/uk/submitted.txt b/wiki/lib/plugins/popularity/lang/uk/submitted.txt
deleted file mode 100644
index 9021385..0000000
--- a/wiki/lib/plugins/popularity/lang/uk/submitted.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-====== Відгук популÑрноÑті ======
-Дані були уÑпішно відправлені.
\ No newline at end of file
diff --git a/wiki/lib/plugins/popularity/lang/zh-tw/intro.txt b/wiki/lib/plugins/popularity/lang/zh-tw/intro.txt
deleted file mode 100644
index 5ba42c5..0000000
--- a/wiki/lib/plugins/popularity/lang/zh-tw/intro.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-====== 人氣回饋 ======
-
-本工具會從您的 wiki 網站收集訊æ¯ï¼Œä¸¦ä»¥åŒ¿å的方å¼ç™¼é€çµ¦ DokuWiki 的開發者。這有助於他們了解使用者們如何使用 DokuWiki ï¼Œä¸¦èƒ½åŸºæ–¼å¯¦éš›çµ±è¨ˆè³‡æ–™å°æœªä¾†é–‹ç™¼åšå‡ºæ›´æº–確的決策。
-
-我們鼓勵您經常é‡è¤‡é€™å€‹æ­¥é©Ÿï¼Œè®“開發者了解您的 wiki 網站的æˆé•·æƒ…形。您的資料集將會被標識為一個匿å的識別碼 (ID) 。
-
-收集的資料包括 DokuWiki 版本ã€é é¢æ•¸é‡ã€æª”案大å°ã€å®‰è£çš„附加元件,以åŠä¼ºæœå™¨çš„ PHP 資訊。
-
-å°‡é€å‡ºçš„原始資料顯示如下。請點擊「發é€è³‡æ–™ã€æŒ‰éˆ•進行傳輸。
\ No newline at end of file
diff --git a/wiki/lib/plugins/popularity/lang/zh-tw/lang.php b/wiki/lib/plugins/popularity/lang/zh-tw/lang.php
deleted file mode 100644
index 252c606..0000000
--- a/wiki/lib/plugins/popularity/lang/zh-tw/lang.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author Li-Jiun Huang <ljhuang.tw@gmail.com>
- * @author http://www.chinese-tools.com/tools/converter-simptrad.html
- * @author Wayne San <waynesan@zerozone.tw>
- * @author Li-Jiun Huang <ljhuang.tw@gmai.com>
- * @author Cheng-Wei Chien <e.cwchien@gmail.com>
- * @author Danny Lin
- * @author Shuo-Ting Jian <shoting@gmail.com>
- * @author syaoranhinata@gmail.com
- * @author Ichirou Uchiki <syaoranhinata@gmail.com>
- */
-$lang['name']                  = '人氣回饋 (å¯èƒ½éœ€è¦ä¸€äº›æ™‚間載入) ';
-$lang['submit']                = '發é€è³‡æ–™';
-$lang['autosubmit']            = 'æ¯æœˆè‡ªå‹•發é€';
-$lang['submissionFailed']      = '由於以下原因,資料無法發é€ï¼š';
-$lang['submitDirectly']        = 'ä½ å¯ä»¥åˆ©ç”¨ä»¥ä¸‹çš„表單來發手動發é€è³‡æ–™ã€‚';
-$lang['autosubmitError']       = '由於以下原因,上次自動發é€ç„¡æ³•進行:';
-$lang['lastSent']              = '資料已發é€';
diff --git a/wiki/lib/plugins/popularity/lang/zh-tw/submitted.txt b/wiki/lib/plugins/popularity/lang/zh-tw/submitted.txt
deleted file mode 100644
index 430a8a4..0000000
--- a/wiki/lib/plugins/popularity/lang/zh-tw/submitted.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== 人氣回饋 ======
-
-資料已發é€ã€‚
\ No newline at end of file
diff --git a/wiki/lib/plugins/popularity/lang/zh/intro.txt b/wiki/lib/plugins/popularity/lang/zh/intro.txt
deleted file mode 100644
index 40e93dc..0000000
--- a/wiki/lib/plugins/popularity/lang/zh/intro.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-====== 人气å馈 ======
-
-本工具收集关于您维基站点的匿åä¿¡æ¯ï¼Œå¹¶å…许您将其å‘é€ç»™ DokuWiki 的开å‘è€…ã€‚è¿™æ ·åšæœ‰åŠ©äºŽæˆ‘ä»¬äº†è§£ç”¨æˆ·æ˜¯å¦‚ä½•ä½¿ç”¨ DokuWiki 的,并能使我们未æ¥çš„å¼€å‘决策建立在现实使用数æ®ä¸Šã€‚
-
-æˆ‘ä»¬é¼“åŠ±æ‚¨ä¸æ—¶é‡å¤è¯¥æ­¥éª¤ï¼Œä»¥ä¾¿æˆ‘们能了解您的维基站点å‘展进度。您的数æ®é›†å°†è¢«åŒ¿å ID 标识。
-
-收集的数æ®åŒ…括 DokuWiki ç‰ˆæœ¬ã€æ‚¨çš„页颿•°é‡ä»¥åŠæ–‡ä»¶å¤§å°ã€å·²å®‰è£…çš„æ’ä»¶ã€æœåŠ¡å™¨ä¸Šçš„ PHP 相关信æ¯ã€‚
-
-将被å‘é€çš„原始数æ®å¦‚下所示。请点击“å‘逿•°æ®â€æŒ‰æ‰­è¿›è¡Œä¼ è¾“。
\ No newline at end of file
diff --git a/wiki/lib/plugins/popularity/lang/zh/lang.php b/wiki/lib/plugins/popularity/lang/zh/lang.php
deleted file mode 100644
index 695b5c4..0000000
--- a/wiki/lib/plugins/popularity/lang/zh/lang.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author ZDYX <zhangduyixiong@gmail.com>
- * @author http://www.chinese-tools.com/tools/converter-tradsimp.html
- * @author Simon zhan <simonzhan@21cn.com>
- * @author ben <ben@livetom.com>
- * @author lainme <lainme993@gmail.com>
- * @author caii <zhoucaiqi@gmail.com>
- * @author Hiphen Lee <jacob.b.leung@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['lastSent']              = 'æ•°æ®å·²å‘é€';
diff --git a/wiki/lib/plugins/popularity/lang/zh/submitted.txt b/wiki/lib/plugins/popularity/lang/zh/submitted.txt
deleted file mode 100644
index 6039b70..0000000
--- a/wiki/lib/plugins/popularity/lang/zh/submitted.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== 人气å馈 ======
-
-æ•°æ®å‘逿ˆåŠŸã€‚
\ No newline at end of file
diff --git a/wiki/lib/plugins/popularity/plugin.info.txt b/wiki/lib/plugins/popularity/plugin.info.txt
deleted file mode 100644
index 8ffc136..0000000
--- a/wiki/lib/plugins/popularity/plugin.info.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-base    popularity
-author  Andreas Gohr
-email   andi@splitbrain.org
-date    2015-07-15
-name    Popularity Feedback Plugin
-desc    Send anonymous data about your wiki to the DokuWiki developers
-url     http://www.dokuwiki.org/plugin:popularity
diff --git a/wiki/lib/plugins/remote.php b/wiki/lib/plugins/remote.php
deleted file mode 100644
index c2253db..0000000
--- a/wiki/lib/plugins/remote.php
+++ /dev/null
@@ -1,104 +0,0 @@
-<?php
-
-/**
- * Class DokuWiki_Remote_Plugin
- */
-abstract class DokuWiki_Remote_Plugin extends DokuWiki_Plugin {
-
-    private  $api;
-
-    /**
-     * Constructor
-     */
-    public function __construct() {
-        $this->api = new RemoteAPI();
-    }
-
-    /**
-     * Get all available methods with remote access.
-     *
-     * By default it exports all public methods of a remote plugin. Methods beginning
-     * with an underscore are skipped.
-     *
-     * @return array Information about all provided methods. {@see RemoteAPI}.
-     */
-    public function _getMethods() {
-        $result = array();
-
-        $reflection = new \ReflectionClass($this);
-        foreach($reflection->getMethods(ReflectionMethod::IS_PUBLIC) as $method) {
-            // skip parent methods, only methods further down are exported
-            $declaredin = $method->getDeclaringClass()->name;
-            if($declaredin == 'DokuWiki_Plugin' || $declaredin == 'DokuWiki_Remote_Plugin') continue;
-            $method_name = $method->name;
-            if(substr($method_name, 0, 1) == '_') continue;
-
-            // strip asterisks
-            $doc = $method->getDocComment();
-            $doc = preg_replace(
-                array('/^[ \t]*\/\*+[ \t]*/m', '/[ \t]*\*+[ \t]*/m', '/\*+\/\s*$/m','/\s*\/\s*$/m'),
-                array('', '', '', ''),
-                $doc
-            );
-
-            // prepare data
-            $data = array();
-            $data['name'] = $method_name;
-            $data['public'] = 0;
-            $data['doc'] = $doc;
-            $data['args'] = array();
-
-            // get parameter type from doc block type hint
-            foreach($method->getParameters() as $parameter) {
-                $name = $parameter->name;
-                $type = 'string'; // we default to string
-                if(preg_match('/^@param[ \t]+([\w|\[\]]+)[ \t]\$'.$name.'/m', $doc, $m)){
-                    $type = $this->cleanTypeHint($m[1]);
-                }
-                $data['args'][] = $type;
-            }
-
-            // get return type from doc block type hint
-            if(preg_match('/^@return[ \t]+([\w|\[\]]+)/m', $doc, $m)){
-                $data['return'] = $this->cleanTypeHint($m[1]);
-            } else {
-                $data['return'] = 'string';
-            }
-
-            // add to result
-            $result[$method_name] = $data;
-        }
-
-        return $result;
-    }
-
-    /**
-     * Matches the given type hint against the valid options for the remote API
-     *
-     * @param string $hint
-     * @return string
-     */
-    protected function cleanTypeHint($hint) {
-        $types = explode('|', $hint);
-        foreach($types as $t) {
-            if(substr($t, -2) == '[]') {
-                return 'array';
-            }
-            if($t == 'boolean') {
-                return 'bool';
-            }
-            if(in_array($t, array('array', 'string', 'int', 'double', 'bool', 'null', 'date', 'file'))) {
-                return $t;
-            }
-        }
-        return 'string';
-    }
-
-    /**
-     * @return RemoteAPI
-     */
-    protected function getApi() {
-        return $this->api;
-    }
-
-}
diff --git a/wiki/lib/plugins/revert/admin.php b/wiki/lib/plugins/revert/admin.php
deleted file mode 100644
index 1a03005..0000000
--- a/wiki/lib/plugins/revert/admin.php
+++ /dev/null
@@ -1,184 +0,0 @@
-<?php
-// must be run within Dokuwiki
-if(!defined('DOKU_INC')) die();
-
-/**
- * All DokuWiki plugins to extend the admin function
- * need to inherit from this class
- */
-class admin_plugin_revert extends DokuWiki_Admin_Plugin {
-    var $cmd;
-    // some vars which might need tuning later
-    var $max_lines = 800; // lines to read from changelog
-    var $max_revs  = 20;  // numer of old revisions to check
-
-
-    /**
-     * Constructor
-     */
-    function __construct(){
-        $this->setupLocale();
-    }
-
-    /**
-     * access for managers
-     */
-    function forAdminOnly(){
-        return false;
-    }
-
-    /**
-     * return sort order for position in admin menu
-     */
-    function getMenuSort() {
-        return 40;
-    }
-
-    /**
-     * handle user request
-     */
-    function handle() {
-    }
-
-    /**
-     * output appropriate html
-     */
-    function html() {
-        global $INPUT;
-
-        echo $this->locale_xhtml('intro');
-
-        $this->_searchform();
-
-        if(is_array($INPUT->param('revert')) && checkSecurityToken()){
-            $this->_revert($INPUT->arr('revert'),$INPUT->str('filter'));
-        }elseif($INPUT->has('filter')){
-            $this->_list($INPUT->str('filter'));
-        }
-    }
-
-    /**
-     * Display the form for searching spam pages
-     */
-    function _searchform(){
-        global $lang, $INPUT;
-        echo '<form action="" method="post"><div class="no">';
-        echo '<label>'.$this->getLang('filter').': </label>';
-        echo '<input type="text" name="filter" class="edit" value="'.hsc($INPUT->str('filter')).'" /> ';
-        echo '<button type="submit">'.$lang['btn_search'].'</button> ';
-        echo '<span>'.$this->getLang('note1').'</span>';
-        echo '</div></form><br /><br />';
-    }
-
-    /**
-     * Start the reversion process
-     */
-    function _revert($revert,$filter){
-        echo '<hr /><br />';
-        echo '<p>'.$this->getLang('revstart').'</p>';
-
-        echo '<ul>';
-        foreach($revert as $id){
-            global $REV;
-
-            // find the last non-spammy revision
-            $data = '';
-            $pagelog = new PageChangeLog($id);
-            $old  = $pagelog->getRevisions(0, $this->max_revs);
-            if(count($old)){
-                foreach($old as $REV){
-                    $data = rawWiki($id,$REV);
-                    if(strpos($data,$filter) === false) break;
-                }
-            }
-
-            if($data){
-                saveWikiText($id,$data,'old revision restored',false);
-                printf('<li><div class="li">'.$this->getLang('reverted').'</div></li>',$id,$REV);
-            }else{
-                saveWikiText($id,'','',false);
-                printf('<li><div class="li">'.$this->getLang('removed').'</div></li>',$id);
-            }
-            @set_time_limit(10);
-            flush();
-        }
-        echo '</ul>';
-
-        echo '<p>'.$this->getLang('revstop').'</p>';
-    }
-
-    /**
-     * List recent edits matching the given filter
-     */
-    function _list($filter){
-        global $conf;
-        global $lang;
-        echo '<hr /><br />';
-        echo '<form action="" method="post"><div class="no">';
-        echo '<input type="hidden" name="filter" value="'.hsc($filter).'" />';
-        formSecurityToken();
-
-        $recents = getRecents(0,$this->max_lines);
-        echo '<ul>';
-
-        $cnt = 0;
-        foreach($recents as $recent){
-            if($filter){
-                if(strpos(rawWiki($recent['id']),$filter) === false) continue;
-            }
-
-            $cnt++;
-            $date = dformat($recent['date']);
-
-            echo ($recent['type']===DOKU_CHANGE_TYPE_MINOR_EDIT) ? '<li class="minor">' : '<li>';
-            echo '<div class="li">';
-            echo '<input type="checkbox" name="revert[]" value="'.hsc($recent['id']).'" checked="checked" id="revert__'.$cnt.'" />';
-            echo ' <label for="revert__'.$cnt.'">'.$date.'</label> ';
-
-            echo '<a href="'.wl($recent['id'],"do=diff").'">';
-            $p = array();
-            $p['src']    = DOKU_BASE.'lib/images/diff.png';
-            $p['width']  = 15;
-            $p['height'] = 11;
-            $p['title']  = $lang['diff'];
-            $p['alt']    = $lang['diff'];
-            $att = buildAttributes($p);
-            echo "<img $att />";
-            echo '</a> ';
-
-            echo '<a href="'.wl($recent['id'],"do=revisions").'">';
-            $p = array();
-            $p['src']    = DOKU_BASE.'lib/images/history.png';
-            $p['width']  = 12;
-            $p['height'] = 14;
-            $p['title']  = $lang['btn_revs'];
-            $p['alt']    = $lang['btn_revs'];
-            $att = buildAttributes($p);
-            echo "<img $att />";
-            echo '</a> ';
-
-            echo html_wikilink(':'.$recent['id'],(useHeading('navigation'))?null:$recent['id']);
-            echo ' – '.htmlspecialchars($recent['sum']);
-
-            echo ' <span class="user">';
-                echo $recent['user'].' '.$recent['ip'];
-            echo '</span>';
-
-            echo '</div>';
-            echo '</li>';
-
-            @set_time_limit(10);
-            flush();
-        }
-        echo '</ul>';
-
-        echo '<p>';
-        echo '<button type="submit">'.$this->getLang('revert').'</button> ';
-        printf($this->getLang('note2'),hsc($filter));
-        echo '</p>';
-
-        echo '</div></form>';
-    }
-
-}
-//Setup VIM: ex: et ts=4 :
diff --git a/wiki/lib/plugins/revert/admin.svg b/wiki/lib/plugins/revert/admin.svg
deleted file mode 100644
index 2129d2d..0000000
--- a/wiki/lib/plugins/revert/admin.svg
+++ /dev/null
@@ -1 +0,0 @@
-<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/wiki/lib/plugins/revert/lang/ar/intro.txt b/wiki/lib/plugins/revert/lang/ar/intro.txt
deleted file mode 100644
index 5839ee0..0000000
--- a/wiki/lib/plugins/revert/lang/ar/intro.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== مدير الاسترجاع ======
-
-تساعدك هذه Ø§Ù„ØµÙØ­Ø© ÙÙŠ الاستعادة الآلية لهجوم غثاء. للحصول على قائمة Ø¨Ø§Ù„ØµÙØ­Ø§Øª المغثاة أولا أدخل نص البحث (مثل. عنوان غثاء), ثم أكد أن Ø§Ù„ØµÙØ­Ø§Øª الموجودة هي غثاء ÙØ¹Ù„ا Ùˆ استرجع التعديلات.
\ No newline at end of file
diff --git a/wiki/lib/plugins/revert/lang/ar/lang.php b/wiki/lib/plugins/revert/lang/ar/lang.php
deleted file mode 100644
index 6262cc6..0000000
--- a/wiki/lib/plugins/revert/lang/ar/lang.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author Yaman Hokan <always.smile.yh@hotmail.com>
- * @author Usama Akkad <uahello@gmail.com>
- * @author uahello@gmail.com
- * @author Ahmad Abd-Elghany <tolpa1@gmail.com>
- * @author alhajr <alhajr300@gmail.com>
- * @author Mohamed Belhsine <b.mohamed897@gmail.com>
- */
-$lang['menu']                  = 'مدير الاسترجاع';
-$lang['filter']                = 'ابحث ÙÙŠ Ø§Ù„ØµÙØ­Ø§Øª المتأذاة';
-$lang['revert']                = 'استرجع Ø§Ù„ØµÙØ­Ø§Øª المحددة';
-$lang['reverted']              = '%s استرجعت للاصدار %s';
-$lang['removed']               = 'Ø­ÙØ°Ùت %s ';
-$lang['revstart']              = 'بدأت عملية الاستعادة. قد يستغرق ذلك وقتا طويلا. إذا كان وقت النص البرمجي ÙŠÙ†ÙØ° قبل النهاية، عليك استرجاع أجزاء أصغر.
-';
-$lang['revstop']               = 'عملية الاستعادة انتهت بنجاح.';
-$lang['note1']                 = 'لاحظ: البحث حساس لحالة الأحرÙ';
-$lang['note2']                 = 'لاحظ: ستسترجع Ø§Ù„ØµÙØ­Ø© إلى آخر اصدار لا يحوي شروط الغثاء <i>%s</i>.';
diff --git a/wiki/lib/plugins/revert/lang/bg/intro.txt b/wiki/lib/plugins/revert/lang/bg/intro.txt
deleted file mode 100644
index 44d5a09..0000000
--- a/wiki/lib/plugins/revert/lang/bg/intro.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== ВъзÑтановÑване ======
-
-Страницата помага за автоматично възÑтановÑване Ñлед SPAM атака. За да намерите Ñпамнатите Ñтраници, въведете текÑÑ‚ за търÑене (напр. линк от SPAM Ñъобщението), Ñлед това потвърдете, че намерените Ñтраници Ñа наиÑтина SPAM и възÑтановете Ñтарите им верÑии.
-
diff --git a/wiki/lib/plugins/revert/lang/bg/lang.php b/wiki/lib/plugins/revert/lang/bg/lang.php
deleted file mode 100644
index 5062a12..0000000
--- a/wiki/lib/plugins/revert/lang/bg/lang.php
+++ /dev/null
@@ -1,18 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author Nikolay Vladimirov <nikolay@vladimiroff.com>
- * @author Viktor Usunov <usun0v@mail.bg>
- * @author Kiril <neohidra@gmail.com>
- */
-$lang['menu']                  = 'ВъзÑтановÑване';
-$lang['filter']                = 'ТърÑене на Ñпамнати Ñтраници';
-$lang['revert']                = 'ВъзÑтанови избраните Ñтраници';
-$lang['reverted']              = '%s върната до верÑÐ¸Ñ %s';
-$lang['removed']               = '%s премахната';
-$lang['revstart']              = 'ПроцеÑÑŠÑ‚ на възÑтановÑване започна. Това може да отнеме много време. Ðко Ñкриптът Ñе проÑрочи преди да завърши, трÑбва да възÑтановÑвате на по-малки парчета.';
-$lang['revstop']               = 'ПроцеÑÑŠÑ‚ на възÑтановÑване завърши уÑпешно.';
-$lang['note1']                 = 'Бележка: при търÑенето Ñе различават малки от големи букви';
-$lang['note2']                 = 'Бележка: Ñтраницата ще бъде върната към Ñтара верÑÐ¸Ñ Ð±ÐµÐ· SPAM терминa <i>%s</i>.';
diff --git a/wiki/lib/plugins/revert/lang/ca-valencia/intro.txt b/wiki/lib/plugins/revert/lang/ca-valencia/intro.txt
deleted file mode 100644
index fed2cb9..0000000
--- a/wiki/lib/plugins/revert/lang/ca-valencia/intro.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-====== Gestor de reversions ======
-
-Esta pàgina ajuda en la reversió automàtica d'atacs de spam. Per a
-trobar una llista de pàgines que tinguen spam introduïxca una cadena de busca (p. e. una URL de spam), confirme que les pàgines trobades tenen realment spam i revertixca les edicions.
diff --git a/wiki/lib/plugins/revert/lang/ca-valencia/lang.php b/wiki/lib/plugins/revert/lang/ca-valencia/lang.php
deleted file mode 100644
index 77dd580..0000000
--- a/wiki/lib/plugins/revert/lang/ca-valencia/lang.php
+++ /dev/null
@@ -1,15 +0,0 @@
-<?php
-/**
- * valencian language file
- * @author Bernat Arlandis <berarma@ya.com>
- * @author Bernat Arlandis <berarma@llenguaitecnologia.com>
- */
-$lang['menu']                  = 'Gestor de reversions';
-$lang['filter']                = 'Buscar pàgines en spam';
-$lang['revert']                = 'Revertir pàgines seleccionades';
-$lang['reverted']              = '%s revertides a la versió %s';
-$lang['removed']               = '%s llevades';
-$lang['revstart']              = 'El procés de reversió ha començat. Açò pot dur prou de temps. Si es talla abans d\'acabar, haurà de revertir per parts.';
-$lang['revstop']               = 'El procés de reversió ha finalisat correctament.';
-$lang['note1']                 = 'Nota: esta busca és sensible a mayúscules';
-$lang['note2']                 = 'Nota: esta pàgina es revertirà a l\'última versió que no continga el spam definit pel terme <i>%s</i>.';
diff --git a/wiki/lib/plugins/revert/lang/ca/intro.txt b/wiki/lib/plugins/revert/lang/ca/intro.txt
deleted file mode 100644
index 0af2e8e..0000000
--- a/wiki/lib/plugins/revert/lang/ca/intro.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Gestió de reversions ======
-
-Aquesta pàgina us ajuda a revertir automàticament els canvis que siguin producte d'un atac amb brossa. Per trobar la llista de pàgines atacades, cerqueu una cadena adequada (p. ex. un URL de propaganda), confirmeu que les pàgines trobades contenen realment brossa i llavors revertiu-les a revisions anteriors.
\ No newline at end of file
diff --git a/wiki/lib/plugins/revert/lang/ca/lang.php b/wiki/lib/plugins/revert/lang/ca/lang.php
deleted file mode 100644
index a2a7915..0000000
--- a/wiki/lib/plugins/revert/lang/ca/lang.php
+++ /dev/null
@@ -1,20 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Carles Bellver <carles.bellver@gmail.com>
- * @author carles.bellver@gmail.com
- * @author carles.bellver@cent.uji.es
- * @author Carles Bellver <carles.bellver@cent.uji.es>
- * @author daniel@6temes.cat
- */
-$lang['menu']                  = 'Gestió de reversions';
-$lang['filter']                = 'Cerca pàgines brossa';
-$lang['revert']                = 'Reverteix les pàgines seleccionades';
-$lang['reverted']              = 'S\'ha revertit %s a la revisió %s';
-$lang['removed']               = 'S\'ha suprimit %s';
-$lang['revstart']              = 'S\'ha iniciat el procés de reversió. Això pot trigar una bona estona. Si s\'excedeix el temps d\'espera màxim del servidor, haureu de tornar a intentar-ho per parts.';
-$lang['revstop']               = 'El procés de reversió ha acabat amb èxit.';
-$lang['note1']                 = 'Nota: aquesta cerca distingeix entre majúscules i minúscules.';
-$lang['note2']                 = 'Nota: la pàgina es revertirà a la darrera versió que no contingui el terme brossa especificat <em>%s</em>.';
diff --git a/wiki/lib/plugins/revert/lang/cs/intro.txt b/wiki/lib/plugins/revert/lang/cs/intro.txt
deleted file mode 100644
index 1e1cd0f..0000000
--- a/wiki/lib/plugins/revert/lang/cs/intro.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Obnova zaspamovaných stránek ======
-
-Tato stránka pomůže pÅ™i automatické obnovÄ› po spamovém útoku.  Pro nalezení seznamu zaspamovaných stránek nejdříve zadejte hledaný výraz (napÅ™. spamové URL) a pak potvrÄte, že nalezené stránky opravdu obsahují spam a mohou být obnoveny.
diff --git a/wiki/lib/plugins/revert/lang/cs/lang.php b/wiki/lib/plugins/revert/lang/cs/lang.php
deleted file mode 100644
index fd9e332..0000000
--- a/wiki/lib/plugins/revert/lang/cs/lang.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Jonáš Dyba <jonas.dyba@gmail.com>
- * @author Bohumir Zamecnik <bohumir@zamecnik.org>
- * @author Zbynek Krivka <zbynek.krivka@seznam.cz>
- * @author tomas <tomas@valenta.cz>
- * @author Marek Sacha <sachamar@fel.cvut.cz>
- * @author Lefty <lefty@multihost.cz>
- * @author Vojta Beran <xmamut@email.cz>
- * @author Jakub A. Těšínský (j@kub.cz)
- * @author mkucera66 <mkucera66@seznam.cz>
- * @author Zbyněk Křivka <krivka@fit.vutbr.cz>
- * @author Gerrit Uitslag <klapinklapin@gmail.com>
- * @author Petr Klíma <qaxi@seznam.cz>
- * @author Radovan Buroň <radovan@buron.cz>
- * @author Viktor Zavadil <vzavadil@newps.cz>
- * @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';
-$lang['revert']                = 'Obnovit vybrané stránky';
-$lang['reverted']              = '%s vrácena do verze %s';
-$lang['removed']               = '%s odstraněna';
-$lang['revstart']              = 'Obnova stránek zaÄala. Tento proces může trvat dlouho. Pokud
-skriptu vyprší Äas, budete muset obnovovat po menších blocích
-stránek.';
-$lang['revstop']               = 'Proces obnovy stránek byl úspěšnÄ› dokonÄen.';
-$lang['note1']                 = 'Poznámka: toto vyhledávání je citlivé na velikost písmen';
-$lang['note2']                 = 'Poznámka: tato stránka bude obnovena na poslední verzi, která
-neobsahovala dané spamové slovo <i>%s</i>.';
diff --git a/wiki/lib/plugins/revert/lang/cy/intro.txt b/wiki/lib/plugins/revert/lang/cy/intro.txt
deleted file mode 100644
index 0e09bab..0000000
--- a/wiki/lib/plugins/revert/lang/cy/intro.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Rheolwr Troi'n Ôl ======
-
-Mae'r dudalen hon yn eich helpu chi i droi'n ôl yn awtomatig yn dilyn ymosodiad sbam. Er mwyn darganfod rhestr o dudalennau sbamllyd, rhowch linyn chwilio (ee. URL sbamllyd), yna cadarnhewch fod y tudalennau a ddarganfuwyd wir yn sbamllyd a throwch y golygiadau'n ôl.
diff --git a/wiki/lib/plugins/revert/lang/cy/lang.php b/wiki/lib/plugins/revert/lang/cy/lang.php
deleted file mode 100644
index ce4f005..0000000
--- a/wiki/lib/plugins/revert/lang/cy/lang.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-/**
- * welsh language file
- */
-
-// for admin plugins, the menu prompt to be displayed in the admin menu
-// if set here, the plugin doesn't need to override the getMenuText() method
-$lang['menu'] = 'Rheolwr Troi\'n Ôl';
-
-// custom language strings for the plugin
-
-$lang['filter']   = 'Chwilio tudalennau sbamllyd';
-$lang['revert']   = 'Troi tudalennau a ddewiswyd yn ôl';
-$lang['reverted'] = 'Trowyd %s yn ôl i adolygiad %s';
-$lang['removed']  = '%s wedi\'i dynnu';
-$lang['revstart'] = 'Mae\'r broses troi\'n ôl wedi dechrau. Gall hwn gymryd amser hir. Os yw\'r
-                     sgript yn bwrw\'r terfyn amser cyn gorffen, bydd angen troi\n ôl mewn dognau llai.';
-$lang['revstop']  = 'Gwnaeth y broses troi\'n ôl gwblhau\'n llwyddiannus.';
-$lang['note1']    = 'Sylw: mae\'r chwiliad yn sensitif i nodau uwch/is';
-$lang['note2']    = 'Sylw: caiff y dudalen ei throi\'n ôl i\'r fersiwn diwethaf sy ddim yn cynnwys y term sbamllyd <i>%s</i>.';
-
-//Setup VIM: ex: et ts=4 :
diff --git a/wiki/lib/plugins/revert/lang/da/intro.txt b/wiki/lib/plugins/revert/lang/da/intro.txt
deleted file mode 100644
index fdb0c5f..0000000
--- a/wiki/lib/plugins/revert/lang/da/intro.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-===== Gendannelsesstyring =====
-
-Denne side hjælper dig med at gendanne sider efter et angreb af uønskede indlæg. For at finde en liste af sider, der muligvis er blevet ændret, så skriv en søgestreng (for eksempel. en uønsket netadresse) og bekræft, at de fundne sider virkeligt er uønskede og gendan ændringerne.
\ No newline at end of file
diff --git a/wiki/lib/plugins/revert/lang/da/lang.php b/wiki/lib/plugins/revert/lang/da/lang.php
deleted file mode 100644
index 11114bd..0000000
--- a/wiki/lib/plugins/revert/lang/da/lang.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Kalle Sommer Nielsen <kalle@php.net>
- * @author Esben Laursen <hyber@hyber.dk>
- * @author Harith <haj@berlingske.dk>
- * @author Daniel Ejsing-Duun <dokuwiki@zilvador.dk>
- * @author Erik Bjørn Pedersen <erik.pedersen@shaw.ca>
- * @author rasmus <rasmus@kinnerup.com>
- * @author Mikael Lyngvig <mikael@lyngvig.org>
- */
-$lang['menu']                  = 'Gendannelsesstyring';
-$lang['filter']                = 'Søg efter uønskede sider';
-$lang['revert']                = 'Gendan valgte sider';
-$lang['reverted']              = '%s gendannet til ændring %s';
-$lang['removed']               = '%s fjernet';
-$lang['revstart']              = 'Gendannelsesforløbet er startet. Dette kan tage et stykke tid. Hvis kodefilen giver "time out" før processen færdiggøres, skal du gendanne i mindre dele.';
-$lang['revstop']               = 'Gendannelsesforløbet fuldført uden fejl';
-$lang['note1']                 = 'Bemærk: Der er forskel på store og små bogstaver i søgningen';
-$lang['note2']                 = 'Bemærk: Denne side vil blive gendannet til den seneste udgave, der ikke indeholder det givne uønskede udtryk <i>%s</i>.';
diff --git a/wiki/lib/plugins/revert/lang/de-informal/intro.txt b/wiki/lib/plugins/revert/lang/de-informal/intro.txt
deleted file mode 100644
index a1733af..0000000
--- a/wiki/lib/plugins/revert/lang/de-informal/intro.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Seiten wiederherstellen ======
-
-Dieses Plugin dient der automatischen Wiederherstellung von Seiten nach einem Spam-Angriff. Gib zunächst einen Suchbegriff (z. B. eine Spam-URL) ein um eine Liste betroffener Seiten zu erhalten. Nachdem du dich vergewissert hast, dass die gefundenen Seiten wirklich Spam enthalten, kannst du die Seiten wiederherstellen.
diff --git a/wiki/lib/plugins/revert/lang/de-informal/lang.php b/wiki/lib/plugins/revert/lang/de-informal/lang.php
deleted file mode 100644
index 808fe6e..0000000
--- a/wiki/lib/plugins/revert/lang/de-informal/lang.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-
-/**
- * @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>
- * @author Matthias Schulte <post@lupo49.de>
- * @author Christian Wichmann <nospam@zone0.de>
- * @author Pierre Corell <info@joomla-praxis.de>
- * @author Frank Loizzi <contact@software.bacal.de>
- * @author Volker Bödker <volker@boedker.de>
- */
-$lang['menu']                  = 'Seiten wiederherstellen';
-$lang['filter']                = 'Durchsuche als Spam markierte Seiten';
-$lang['revert']                = 'Setze ausgewählte Seiten zurück.';
-$lang['reverted']              = '%s zu Revision %s wiederhergestellt';
-$lang['removed']               = '%s entfernt';
-$lang['revstart']              = 'Wiederherstellung gestartet. Dies kann eine längere Zeit dauern. Wenn das Skript vor Fertigstellung stoppt, solltest du es in kleineren Stücken versuchen.';
-$lang['revstop']               = 'Wiederherstellung erfolgreich beendet.';
-$lang['note1']                 = 'Beachte: Diese Suche berücksichtigt Groß- und Kleinschreibung';
-$lang['note2']                 = 'Beachte: Diese Seite wird wiederhergestellt auf die letzte Version, die nicht den Spam-Begriff <i>%s</i> enthält.';
diff --git a/wiki/lib/plugins/revert/lang/de/intro.txt b/wiki/lib/plugins/revert/lang/de/intro.txt
deleted file mode 100644
index fe74461..0000000
--- a/wiki/lib/plugins/revert/lang/de/intro.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Seiten wiederherstellen ======
-
-Dieses Plugin dient der automatischen Wiederherstellung von Seiten nach einem Spam-Angriff. Geben Sie zunächst einen Suchbegriff (z. B. eine Spam-URL) ein um eine Liste betroffener Seiten zu erhalten. Nachdem Sie sich vergewissert haben, dass die gefundenen Seiten wirklich Spam enthalten, können Sie die Seiten wiederherstellen.
diff --git a/wiki/lib/plugins/revert/lang/de/lang.php b/wiki/lib/plugins/revert/lang/de/lang.php
deleted file mode 100644
index 9417264..0000000
--- a/wiki/lib/plugins/revert/lang/de/lang.php
+++ /dev/null
@@ -1,29 +0,0 @@
-<?php
-
-/**
- * @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>
- * @author Robin Kluth <commi1993@gmail.com>
- * @author Arne Pelka <mail@arnepelka.de>
- * @author Andreas Gohr <andi@splitbrain.org>
- * @author Dirk Einecke <dirk@dirkeinecke.de>
- * @author Blitzi94 <Blitzi94@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 Matthias Schulte <dokuwiki@lupo49.de>
- */
-$lang['menu']                  = 'Seiten wiederherstellen';
-$lang['filter']                = 'Nach betroffenen Seiten suchen';
-$lang['revert']                = 'Ausgewählte Seiten wiederherstellen';
-$lang['reverted']              = '%s wieder hergestellt zu Version %s';
-$lang['removed']               = '%s entfernt';
-$lang['revstart']              = 'Wiederherstellung gestartet. Dies kann einige Zeit dauern. Wenn das Script abbricht, bevor alle Seiten wieder hergestellt wurden, reduzieren Sie die Anzahl der Seiten und wiederholen Sie den Vorgang.';
-$lang['revstop']               = 'Wiederherstellung erfolgreich abgeschlossen.';
-$lang['note1']                 = 'Anmerkung: diese Suche unterscheidet Groß- und Kleinschreibung';
-$lang['note2']                 = 'Anmerkung: die Seite wird wiederhergestellt auf die letzte Version, die nicht den angegebenen Spam Begriff <i>%s</i> enthält.';
diff --git a/wiki/lib/plugins/revert/lang/el/intro.txt b/wiki/lib/plugins/revert/lang/el/intro.txt
deleted file mode 100644
index 9b583bc..0000000
--- a/wiki/lib/plugins/revert/lang/el/intro.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Αποκατάσταση κακόβουλων αλλαγών σελίδων ======
-
-Αυτή η σελίδα σας βοηθά να αποκαταστήσετε αυτόματα τις κακόβουλες αλλαγές σελίδων που Ï€ÏοκαλοÏν οι επιθέσεις spam. Για να βÏείτε τις σελίδες που Ï€Ïέπει να Ï„ÏοποποιηθοÏν, Ï€Ïώτα δώστε έναν ÏŒÏο αναζήτησης (Ï€.χ. έναν σÏνδεσμο spam) και έπειτα επιβεβαιώστε ότι οι σελίδες που θα βÏεθοÏν όντως πεÏιέχουν spam και Ï€ÏοχωÏήστε στην αποκατάστασή τους.
diff --git a/wiki/lib/plugins/revert/lang/el/lang.php b/wiki/lib/plugins/revert/lang/el/lang.php
deleted file mode 100644
index 48bbb22..0000000
--- a/wiki/lib/plugins/revert/lang/el/lang.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-
-/**
- * @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>
- * @author George Petsagourakis <petsagouris@gmail.com>
- * @author Petros Vidalis <pvidalis@gmail.com>
- * @author Vasileios Karavasilis vasileioskaravasilis@gmail.com
- */
-$lang['menu']                  = 'Αποκατάσταση κακόβουλων αλλαγών σελίδων';
-$lang['filter']                = 'Αναζήτηση σελίδων που πεÏιέχουν spam';
-$lang['revert']                = 'ΕπαναφοÏά παλαιότεÏων εκδόσεων των επιλεγμένων σελίδων';
-$lang['reverted']              = 'Η σελίδα %s επεναφέÏθηκε στην έκδοση %s';
-$lang['removed']               = 'Η σελίδα %s διαγÏάφηκε';
-$lang['revstart']              = 'Η διαδικασία αποκατάστασης άÏχισε. Αυτό ίσως πάÏει αÏκετό χÏόνο. Εάν η εφαÏμογή υπεÏβεί το διαθέσιμο χÏονικό ÏŒÏιο και τεÏματιστεί Ï€Ïιν τελειώσει, θα χÏειαστεί να επαναλάβετε αυτή τη διαδικασία για μικÏότεÏα τμήματα.';
-$lang['revstop']               = 'Η διαδικασία αποκατάστασης ολοκληÏώθηκε με επιτυχία.';
-$lang['note1']                 = '<br />Σημείωση: η αναζήτηση επηÏεάζεται από το εάν οι χαÏακτήÏες είναι πεζοί ή κεφαλαίοι';
-$lang['note2']                 = '<br />Σημείωση: η σελίδα θα επαναφεÏθεί στην πλέον Ï€Ïόσφατη έκδοση που δεν πεÏιέχει τον ÏŒÏο <i>%s</i>.';
diff --git a/wiki/lib/plugins/revert/lang/en/intro.txt b/wiki/lib/plugins/revert/lang/en/intro.txt
deleted file mode 100644
index b8f3558..0000000
--- a/wiki/lib/plugins/revert/lang/en/intro.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Revert Manager ======
-
-This page helps you with the automatic reversion of a spam attack. To find a list of spammy pages first enter a search string (eg. a spam URL), then confirm that the found pages are really spam and revert the edits.
diff --git a/wiki/lib/plugins/revert/lang/en/lang.php b/wiki/lib/plugins/revert/lang/en/lang.php
deleted file mode 100644
index 6bf867d..0000000
--- a/wiki/lib/plugins/revert/lang/en/lang.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-/**
- * english language file
- */
-
-// for admin plugins, the menu prompt to be displayed in the admin menu
-// if set here, the plugin doesn't need to override the getMenuText() method
-$lang['menu'] = 'Revert Manager';
-
-// custom language strings for the plugin
-
-$lang['filter']   = 'Search spammy pages';
-$lang['revert']   = 'Revert selected pages';
-$lang['reverted'] = '%s reverted to revision %s';
-$lang['removed']  = '%s removed';
-$lang['revstart'] = 'Reversion process started. This can take a long time. If the
-                     script times out before finishing, you need to revert in smaller
-                     chunks.';
-$lang['revstop']  = 'Reversion process finished successfully.';
-$lang['note1']    = 'Note: this search is case sensitive';
-$lang['note2']    = 'Note: the page will be reverted to the last version not containing the given spam term <i>%s</i>.';
-
-//Setup VIM: ex: et ts=4 :
diff --git a/wiki/lib/plugins/revert/lang/eo/intro.txt b/wiki/lib/plugins/revert/lang/eo/intro.txt
deleted file mode 100644
index 14e8314..0000000
--- a/wiki/lib/plugins/revert/lang/eo/intro.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Administro de Restarigo ======
-
-Tiu ĉi paÄo helpas vin pri aÅ­tomata restarigo el spama atako. Por trovi liston de spamecaj paÄoj, unue mendu serĉan liter-ĉenon (ekz. spama URL), do konfirmu, ke la trovitaj paÄoj fakte estas spamaj kaj restarigu la antaÅ­ajn versiojn bonajn.
diff --git a/wiki/lib/plugins/revert/lang/eo/lang.php b/wiki/lib/plugins/revert/lang/eo/lang.php
deleted file mode 100644
index 5e9c171..0000000
--- a/wiki/lib/plugins/revert/lang/eo/lang.php
+++ /dev/null
@@ -1,19 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Felipe Castro <fefcas@uol.com.br>
- * @author Felipo Kastro <fefcas@gmail.com>
- * @author Robert Bogenschneider <robog@gmx.de>
- * @author Erik Pedersen <erik pedersen@shaw.ca>
- */
-$lang['menu']                  = 'Administrado de restarigo';
-$lang['filter']                = 'Serĉi spamecajn paÄojn';
-$lang['revert']                = 'Restarigi la elektitajn paÄojn';
-$lang['reverted']              = '%s estas restarigita al revizio %s';
-$lang['removed']               = '%s estas forigita';
-$lang['revstart']              = 'Restariga procezo ekis. Tio povas daÅ­ri longan tempon. Se la skripto tro prokrastos antaÅ­ plenumo, vi restarigu po pli etaj blokoj.';
-$lang['revstop']               = 'Restariga procezo plenumiÄis sukcese.';
-$lang['note1']                 = 'Rimarko: tiu ĉi serĉo distingas usklecon';
-$lang['note2']                 = 'Rimarko: la paÄo restariÄos al la lasta versio ne enhavanta la menditan spaman terminon <i>%s</i>.';
diff --git a/wiki/lib/plugins/revert/lang/es/intro.txt b/wiki/lib/plugins/revert/lang/es/intro.txt
deleted file mode 100644
index 39c5b04..0000000
--- a/wiki/lib/plugins/revert/lang/es/intro.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Restaurador ======
-
-Esta página te ayuda con la restauración de ataques spam. Para encontrar una lista de páginas con spam introduce una cadena , luego confirma que las páginas encontradas son realmente un spam y restaura la edición.
\ No newline at end of file
diff --git a/wiki/lib/plugins/revert/lang/es/lang.php b/wiki/lib/plugins/revert/lang/es/lang.php
deleted file mode 100644
index 35e6519..0000000
--- a/wiki/lib/plugins/revert/lang/es/lang.php
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Oscar M. Lage <r0sk10@gmail.com>
- * @author Gabriel Castillo <gch@pumas.ii.unam.mx>
- * @author oliver <oliver@samera.com.py>
- * @author Enrico Nicoletto <liverig@gmail.com>
- * @author Manuel Meco <manuel.meco@gmail.com>
- * @author VictorCastelan <victorcastelan@gmail.com>
- * @author Jordan Mero <hack.jord@gmail.com>
- * @author Felipe Martinez <metalmartinez@gmail.com>
- * @author Javier Aranda <internet@javierav.com>
- * @author Zerial <fernando@zerial.org>
- * @author Marvin Ortega <maty1206@maryanlinux.com>
- * @author Daniel Castro Alvarado <dancas2@gmail.com>
- * @author Fernando J. Gómez <fjgomez@gmail.com>
- * @author Mauro Javier Giamberardino <mgiamberardino@gmail.com>
- * @author emezeta <emezeta@infoprimo.com>
- * @author Oscar Ciudad <oscar@jacho.net>
- * @author Ruben Figols <ruben.figols@gmail.com>
- * @author Gerardo Zamudio <gerardo@gerardozamudio.net>
- * @author Mercè López <mercelz@gmail.com>
- */
-$lang['menu']                  = 'Restaurador';
-$lang['filter']                = 'Buscar páginas con spam';
-$lang['revert']                = 'Restaurar las páginas seleccionadas';
-$lang['reverted']              = '%s ha restaurado la revisión %s';
-$lang['removed']               = '%s borrado';
-$lang['revstart']              = 'El proceso de restaurado ha comenzado. Puede llevar bastante tiempo. Si el script se para antes de acabar, deberías restaurar cadenas más pequeñas.';
-$lang['revstop']               = 'El proceso de restaurado ha finalizado satisfactoriamente.';
-$lang['note1']                 = 'Nota: la búsqueda diferencia entre mayúsculas y minúsculas.';
-$lang['note2']                 = 'Nota: la página será restaurada a la última versión que no tenga el término de spam dado <em>%s</em>.';
diff --git a/wiki/lib/plugins/revert/lang/et/lang.php b/wiki/lib/plugins/revert/lang/et/lang.php
deleted file mode 100644
index be8fb26..0000000
--- a/wiki/lib/plugins/revert/lang/et/lang.php
+++ /dev/null
@@ -1,9 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author Janar Leas <janar.leas@eesti.ee>
- */
-$lang['note1']                 = 'Teadmiseks: See otsing arvestab suurtähti';
-$lang['note2']                 = 'Teadmiseks: Lehekülg ennistatakse viimasele järgule, milles ei sisaldu antud rämpsu sõne <i>%s</i>.';
diff --git a/wiki/lib/plugins/revert/lang/eu/intro.txt b/wiki/lib/plugins/revert/lang/eu/intro.txt
deleted file mode 100644
index c5a5a5a..0000000
--- a/wiki/lib/plugins/revert/lang/eu/intro.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Berrezartze Kudeatzailea ======
-
-Orri honek spam eraso baten berrezartze automatikoarekin laguntzen dizu. Spam-a duten orriak bilatzeko, lehenik sartu bilaketa katea (adb. spam URL bat), eta ondoren baieztatu bilatutako orriak benetan spam-a dutela, gero aldaketak berrezartzeko.
diff --git a/wiki/lib/plugins/revert/lang/eu/lang.php b/wiki/lib/plugins/revert/lang/eu/lang.php
deleted file mode 100644
index c7495d8..0000000
--- a/wiki/lib/plugins/revert/lang/eu/lang.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Inko Illarramendi <inko.i.a@gmail.com>
- * @author Zigor Astarbe <astarbe@gmail.com>
- * @author Yadav Gowda <yadav.gowda@gmail.com>
- * @author Osoitz <oelkoro@gmail.com>
- */
-$lang['menu']                  = 'Berrezartze Kudeatzailea';
-$lang['filter']                = 'Bilatu spam duten orriak';
-$lang['revert']                = 'Berrezarri aukeratutako orriak';
-$lang['reverted']              = '%s berrezarria %s berrikuspenera';
-$lang['removed']               = '%s ezabatua';
-$lang['revstart']              = 'Berrezartze prozesua hasi da. Honek denbora luzea eraman dezake.
-Script-a denbora mugara iristen bada, zati txikiagotan berrezarri
-beharko duzu. ';
-$lang['revstop']               = 'Berrezartze prozesua arrakastaz bukatu da.';
-$lang['note1']                 = 'Oharra: bilaketa honek maiuskulak eta minuskulak bereizten ditu';
-$lang['note2']                 = 'Oharra: orria azken bertsiora berrezarriko da, emandako <i>%s</i> spam terminorik ez duelarik.';
diff --git a/wiki/lib/plugins/revert/lang/fa/intro.txt b/wiki/lib/plugins/revert/lang/fa/intro.txt
deleted file mode 100644
index 0ccdb08..0000000
--- a/wiki/lib/plugins/revert/lang/fa/intro.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== مدیریت برگشت‌ها ======
-
-این ØµÙØ­Ù‡ØŒ در بازیابی ØµÙØ­Ø§ØªÛŒ Ú©Ù‡ به آن‌ها اسپم ارسال شده است Ú©Ù…Ú© می‌رساند. برای مشاهده‌ی ØµÙØ­Ø§Øª اسپم شده، ابتدا جستجو کنید، سپس از اسپم شدن ØµÙØ­Ù‡â€ŒÛŒ مورد نظر اطمینان حاصل کنید Ùˆ تغییرات اعمال شده را برگردانید.
\ No newline at end of file
diff --git a/wiki/lib/plugins/revert/lang/fa/lang.php b/wiki/lib/plugins/revert/lang/fa/lang.php
deleted file mode 100644
index c6e41ea..0000000
--- a/wiki/lib/plugins/revert/lang/fa/lang.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author behrad eslamifar <behrad_es@yahoo.com)
- * @author Mohsen Firoozmandan <info@mambolearn.com>
- * @author omidmr@gmail.com
- * @author Omid Mottaghi <omidmr@gmail.com>
- * @author Mohammad Reza Shoaei <shoaei@gmail.com>
- * @author Milad DZand <M.DastanZand@gmail.com>
- * @author AmirH Hassaneini <mytechmix@gmail.com>
- */
-$lang['menu']                  = 'مدیریت برگشت‌ها';
-$lang['filter']                = 'جستجوی ØµÙØ­Ø§Øª اسپم شده';
-$lang['revert']                = 'بازگردانی ØµÙØ­Ø§Øª انتخاب شده';
-$lang['reverted']              = '%s به نگارش %s بازگردانده شد';
-$lang['removed']               = '%s حذ٠شد';
-$lang['revstart']              = 'در حال بازگرداندن. ممکن است مدتی زمان ببرد. اگر اجرای برنامه، پیش از اتمام به پایان رسید، باید در بخش‌های کوچک‌تری بازگردانی را انجام دهید.';
-$lang['revstop']               = 'بازگرداندن با موÙقیت به پایان رسید.';
-$lang['note1']                 = 'توجه: جستجو حساس به حرو٠کوچک و بزرگ است';
-$lang['note2']                 = 'توجه: ØµÙØ­Ù‡ به آخرین نسخه‌ای Ú©Ù‡ حاوی اسپم <i>%s</i> نیست بازگردانده خواهد شد.';
diff --git a/wiki/lib/plugins/revert/lang/fi/intro.txt b/wiki/lib/plugins/revert/lang/fi/intro.txt
deleted file mode 100644
index 3b3ce5d..0000000
--- a/wiki/lib/plugins/revert/lang/fi/intro.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Palautuksenhallinta ======
-
-Tämä sivu auttaa sinua automaattisen palautuksenhallinnan kanssa spam hyökkäyksen jälkeen. Löytääksesi listan spammatyistä sivuista anna ensin hakusana (esim. spm URL), sen jälkeen varmista, että löytyneet sivut todella ovat spammia ja palauta sitten sivut.
diff --git a/wiki/lib/plugins/revert/lang/fi/lang.php b/wiki/lib/plugins/revert/lang/fi/lang.php
deleted file mode 100644
index d14f527..0000000
--- a/wiki/lib/plugins/revert/lang/fi/lang.php
+++ /dev/null
@@ -1,19 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author otto@valjakko.net
- * @author Otto Vainio <otto@valjakko.net>
- * @author Teemu Mattila <ghcsystems@gmail.com>
- * @author Sami Olmari <sami@olmari.fi>
- */
-$lang['menu']                  = 'Palautuksenhallinta';
-$lang['filter']                = 'Etsi spammattyjä sivuja';
-$lang['revert']                = 'Palauta valitut sivut';
-$lang['reverted']              = '%s palautettu versioon %s';
-$lang['removed']               = '%s poistettu';
-$lang['revstart']              = 'Palautusprosessi käynnistetty. Tämä voi viedä pidemmän aikaa. Jos ajo katkeaa aikakatkaisuun ennen loppua, niin sinun pitää palauttaa pienemmissä osissa.';
-$lang['revstop']               = 'Palautusprosessi lopetti onnistuneesti.';
-$lang['note1']                 = 'Huomioi: tämä haku on kirjainkoosta riippuva';
-$lang['note2']                 = 'Huomioi: tämä sivu palautetaan viimeiseen versioon, jossa ei ole annettua spamtermiä <i>%s</i>';
diff --git a/wiki/lib/plugins/revert/lang/fr/intro.txt b/wiki/lib/plugins/revert/lang/fr/intro.txt
deleted file mode 100644
index 30e6d8a..0000000
--- a/wiki/lib/plugins/revert/lang/fr/intro.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Gestionnaire des réversions ======
-
-Cette page vous aide à restaurer des pages après une attaque de spam. Pour trouver la liste des pages vandalisées, entrez un motif de recherche (par exemple : une URL de spam), puis confirmez que les pages trouvées contiennent du spam et annulez leur modifications.
diff --git a/wiki/lib/plugins/revert/lang/fr/lang.php b/wiki/lib/plugins/revert/lang/fr/lang.php
deleted file mode 100644
index 635c9a7..0000000
--- a/wiki/lib/plugins/revert/lang/fr/lang.php
+++ /dev/null
@@ -1,30 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Delassaux Julien <julien@delassaux.fr>
- * @author Maurice A. LeBlanc <leblancma@cooptel.qc.ca>
- * @author Guy Brand <gb@unistra.fr>
- * @author stephane.gully <stephane.gully@gmail.com>
- * @author Guillaume Turri <guillaume.turri@gmail.com>
- * @author Erik Pedersen <erik.pedersen@shaw.ca>
- * @author olivier duperray <duperray.olivier@laposte.net>
- * @author Vincent Feltz <psycho@feltzv.fr>
- * @author Philippe Bajoit <philippe.bajoit@gmail.com>
- * @author Florian Gaub <floriang@floriang.net>
- * @author Johan Guilbaud <guilbaud.johan@gmail.com>
- * @author Yannick Aure <yannick.aure@gmail.com>
- * @author Olivier DUVAL <zorky00@gmail.com>
- * @author Anael Mobilia <contrib@anael.eu>
- * @author Bruno Veilleux <bruno.vey@gmail.com>
- */
-$lang['menu']                  = 'Gestionnaire des réversions';
-$lang['filter']                = 'Trouver les pages spammées ';
-$lang['revert']                = 'Annuler les modifications sélectionnées';
-$lang['reverted']              = '%s restauré à la révision %s';
-$lang['removed']               = '%s supprimé';
-$lang['revstart']              = 'Processus de réversion démarré. Ceci peut durer longtemps. Si le script dépasse le délai d\'exécution avant de finir, vous devrez restaurer de plus petits groupes de pages.';
-$lang['revstop']               = 'Processus de réversion terminé avec succès.';
-$lang['note1']                 = 'Note : cette recherche est sensible à la casse';
-$lang['note2']                 = 'Note : cette page sera restaurée à la dernière version ne contenant pas le terme « spam » <em>%s</em>.';
diff --git a/wiki/lib/plugins/revert/lang/gl/intro.txt b/wiki/lib/plugins/revert/lang/gl/intro.txt
deleted file mode 100644
index 6327249..0000000
--- a/wiki/lib/plugins/revert/lang/gl/intro.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Xestor de Reversión ======
-
-Esta páxina axudarache a revertir automaticamente un ataque de correo-lixo. Para atopares unha listaxe de páxinas que conteñan correo-lixo, primeiro debes inserir unha cadea de procura (p.e. un URL do correo-lixo), e logo confirmares que as páxinas atopadas conteñen realmente o tal correo-lixo e reverter as edicións.
\ No newline at end of file
diff --git a/wiki/lib/plugins/revert/lang/gl/lang.php b/wiki/lib/plugins/revert/lang/gl/lang.php
deleted file mode 100644
index 0e376d9..0000000
--- a/wiki/lib/plugins/revert/lang/gl/lang.php
+++ /dev/null
@@ -1,17 +0,0 @@
-<?php
-/**
- * Galicianlanguage file
- *
- * @author Medúlio <medulio@ciberirmandade.org>
- * @author Oscar M. Lage <r0sk10@gmail.com>
- * @author Rodrigo Rega <rodrigorega@gmail.com>
- */
-$lang['menu']                  = 'Xestor de Reversión';
-$lang['filter']                = 'Procurar páxinas con correo-lixo';
-$lang['revert']                = 'Revertir as páxinas seleccionadas';
-$lang['reverted']              = '%s revertido á revisión %s';
-$lang['removed']               = '%s eliminado';
-$lang['revstart']              = 'Proceso de reversión iniciado. Isto podería demorar un anaco longo. Se o script fallar por superar o seu límite de tempo denantes de rematar, terás que facer a reversión en anacos máis pequenos.';
-$lang['revstop']               = 'O proceso de reversión rematou correctamente.';
-$lang['note1']                 = 'Nota: esta procura distingue entre maiúsculas e minúsculas';
-$lang['note2']                 = 'Nota: a páxina revertirase á última versión que non conteña o termo de correo-lixo <i>%s</i> indicado.';
diff --git a/wiki/lib/plugins/revert/lang/he/intro.txt b/wiki/lib/plugins/revert/lang/he/intro.txt
deleted file mode 100644
index 44b78df..0000000
--- a/wiki/lib/plugins/revert/lang/he/intro.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== מנהל השחזור ======
-
-דף ×–×” יסיע בידך לשחזר ב×ופן ×וטומטי ×חרי התקפת ספ××. כדי לקבל ×ת רשימת ×”×“×¤×™× ×¢× ×”×¡×¤×× ×¢×œ×™×š ר×שית מחרוזת לחיפוש (לדוגמה כתובת ספ××) ×חר כך עליך ל×שר ×©×”×“×¤×™× ×©× ×ž×¦×ו ב×מת ×ž×›×™×œ×™× ×¡×¤×× ×•×œ×©×—×–×¨ ×ת העריכות.
diff --git a/wiki/lib/plugins/revert/lang/he/lang.php b/wiki/lib/plugins/revert/lang/he/lang.php
deleted file mode 100644
index 562bbb3..0000000
--- a/wiki/lib/plugins/revert/lang/he/lang.php
+++ /dev/null
@@ -1,19 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Dotan Kamber <kamberd@yahoo.com>
- * @author Moshe Kaplan <mokplan@gmail.com>
- * @author Yaron Yogev <yaronyogev@gmail.com>
- * @author Yaron Shahrabani <sh.yaron@gmail.com>
- */
-$lang['menu']                  = 'מנהל שחזור';
-$lang['filter']                = 'חפש ×“×¤×™× ×¢× ×¡×¤××';
-$lang['revert']                = 'שחזר ×ת ×”×“×¤×™× ×”× ×‘×—×¨×™×';
-$lang['reverted']              = '%s שוחזרו לגרסה %s';
-$lang['removed']               = '%s הוסרו';
-$lang['revstart']              = 'תהליך השחזור החל. התהליך עלול להיות ממושך. ×× ×ª×¡×¨×™×˜ מגיע למגבלת פסק הזמן לפני ×©×”×¡×ª×™×™× ×”×ª×”×œ×™×š ×™×”×™×” צורך לבצע ×ת השחזור ×‘×ž×§×˜×¢×™× ×§×˜× ×™× ×™×•×ª×¨.';
-$lang['revstop']               = 'תהליך השחזור ×”×•×©×œ× ×‘×”×¦×œ×—×”.';
-$lang['note1']                 = 'לתשומת לבך: החיפוש ער לגודל ×”×ותיות הלועזיות.';
-$lang['note2']                 = 'לתשות לבך: הדף ישוחזר לגרסה ×”×חרונה ש××™× ×” מכילה ×ת מונח הספ×× <i>%s</i>';
diff --git a/wiki/lib/plugins/revert/lang/hr/intro.txt b/wiki/lib/plugins/revert/lang/hr/intro.txt
deleted file mode 100644
index 5d7a52d..0000000
--- a/wiki/lib/plugins/revert/lang/hr/intro.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Pomoćnik za povrat ======
-
-Pomaže vam pri povratku u sluÄaju spam napada. Da bi ste naÅ¡li listu stranica koje su oneÄišćene spam-om unesite tekst za potragu (npr. spam URL), te potvrdite da su naÄ‘ene stranice zaista spam i vratite na prethodno stanje.
\ No newline at end of file
diff --git a/wiki/lib/plugins/revert/lang/hr/lang.php b/wiki/lib/plugins/revert/lang/hr/lang.php
deleted file mode 100644
index 988d2be..0000000
--- a/wiki/lib/plugins/revert/lang/hr/lang.php
+++ /dev/null
@@ -1,16 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Davor Turkalj <turki.bsc@gmail.com>
- */
-$lang['menu']                  = 'Pomoćnik za povrat stanja';
-$lang['filter']                = 'Potraži spam stranice';
-$lang['revert']                = 'Povrati odabrane stranice';
-$lang['reverted']              = '%s vraćena na izdanje %s';
-$lang['removed']               = '%s uklonjen';
-$lang['revstart']              = 'Proces povratka zapoÄeo. To može potrajati. Ako se dogodi istek vremena prije zavrÅ¡etka, trebate povrat stranica vrÅ¡iti u manjim grupama.';
-$lang['revstop']               = 'Proces povratka uspješno završio.';
-$lang['note1']                 = 'Obavijest: ova pretraga razlikuje velika/mala slova';
-$lang['note2']                 = 'Obavijest: stranica će biti vraćena na zadnje stanje koje ne sadrži traženi spam termin <i>%s</i>.';
diff --git a/wiki/lib/plugins/revert/lang/hu/intro.txt b/wiki/lib/plugins/revert/lang/hu/intro.txt
deleted file mode 100644
index e2c2dad..0000000
--- a/wiki/lib/plugins/revert/lang/hu/intro.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Visszaállítás kezelő ======
-
-Segítséget nyújtunk SPAM támadások utáni automatikus visszaállításhoz. A fertőzött oldalak kereséséhez meg kell adni egy karaktersorozatot (pl. egy SPAM URL-t). A találatok közül kiválasztva a valóban SPAM-et tartalmazó oldakat, visszaállítjuk őket a lehetséges utolsó SPAM mentes állapotra.
\ No newline at end of file
diff --git a/wiki/lib/plugins/revert/lang/hu/lang.php b/wiki/lib/plugins/revert/lang/hu/lang.php
deleted file mode 100644
index 278af18..0000000
--- a/wiki/lib/plugins/revert/lang/hu/lang.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author Sandor TIHANYI <stihanyi+dw@gmail.com>
- * @author Siaynoq Mage <siaynoqmage@gmail.com>
- * @author schilling.janos@gmail.com
- * @author Szabó Dávid <szabo.david@gyumolcstarhely.hu>
- * @author Sándor TIHANYI <stihanyi+dw@gmail.com>
- * @author David Szabo <szabo.david@gyumolcstarhely.hu>
- * @author Marton Sebok <sebokmarton@gmail.com>
- * @author Marina Vladi <deldadam@gmail.com>
- */
-$lang['menu']                  = 'Visszaállítás-kezelő (anti-SPAM)';
-$lang['filter']                = 'SPAM-tartalmú oldalak keresése';
-$lang['revert']                = 'Kiválasztott oldalak visszaállítása';
-$lang['reverted']              = '%s a következő változatra lett visszaállítva: %s';
-$lang['removed']               = '%s törölve';
-$lang['revstart']              = 'A visszaállítási folyamat elindult. Ez hosszú ideig eltarthat. Ha időtúllépés miatt nem tud lefutni, kisebb darabbal kell próbálkozni.';
-$lang['revstop']               = 'A visszaállítási folyamat sikeresen befejeződött.';
-$lang['note1']                 = 'Megjegyzés: a keresés kisbetű-nagybetű érzékeny';
-$lang['note2']                 = 'Megjegyzés: Az oldalt az utolsó olyan változatra állítjuk vissza, ami nem tartalmazza a megadott spam kifejezést: <i>%s</i>.';
diff --git a/wiki/lib/plugins/revert/lang/ia/intro.txt b/wiki/lib/plugins/revert/lang/ia/intro.txt
deleted file mode 100644
index ae548e9..0000000
--- a/wiki/lib/plugins/revert/lang/ia/intro.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Gestion de reversiones ======
-
-Iste pagina te adjuta con le reversion automatic de un attacco de spam. Pro cercar un lista de paginas spammose, primo entra un texto a cercar (p.ex. un URL de spam), postea confirma que le paginas trovate es realmente spam e reverte le modificationes.
\ No newline at end of file
diff --git a/wiki/lib/plugins/revert/lang/ia/lang.php b/wiki/lib/plugins/revert/lang/ia/lang.php
deleted file mode 100644
index bec2eca..0000000
--- a/wiki/lib/plugins/revert/lang/ia/lang.php
+++ /dev/null
@@ -1,16 +0,0 @@
-<?php
-/**
- * Interlingua language file
- *
- * @author robocap <robocap1@gmail.com>
- * @author Martijn Dekker <martijn@inlv.org>
- */
-$lang['menu']                  = 'Gestion de reversiones';
-$lang['filter']                = 'Cercar paginas spammose';
-$lang['revert']                = 'Reverter le paginas seligite';
-$lang['reverted']              = '%s revertite al version %s';
-$lang['removed']               = '%s removite';
-$lang['revstart']              = 'Le processo de reversion ha comenciate. Isto pote durar multo. Si le script expira ante de finir, tu debe divider le reversiones in blocos minor.';
-$lang['revstop']               = 'Le processo de reversion ha succedite.';
-$lang['note1']                 = 'Nota: iste recerca distingue inter majusculas e minusculas.';
-$lang['note2']                 = 'Nota: le pagina essera revertite al ultime version que non contine le termino de spam specificate, <i>%s</i>.';
diff --git a/wiki/lib/plugins/revert/lang/is/lang.php b/wiki/lib/plugins/revert/lang/is/lang.php
deleted file mode 100644
index 9de4049..0000000
--- a/wiki/lib/plugins/revert/lang/is/lang.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-/**
- * Icelandic language file
- *
- * @author Hrannar Baldursson <hrannar.baldursson@gmail.com>
- * @author Ólafur Gunnlaugsson <oli@audiotools.com>
- * @author Erik Bjørn Pedersen <erik.pedersen@shaw.ca>
- */
-$lang['removed']               = '%s eytt';
-$lang['note1']                 = 'Athugaðu að þegar leitað er þá skiftir stafsetur máli, það að segja leitarvélin gerir mun á hástöfum og lágstöfum';
diff --git a/wiki/lib/plugins/revert/lang/it/intro.txt b/wiki/lib/plugins/revert/lang/it/intro.txt
deleted file mode 100644
index a5ef146..0000000
--- a/wiki/lib/plugins/revert/lang/it/intro.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Gestore di ripristini ======
-
-Questa pagina aiuta il controllo automatico degli attacchi spam. Per cercare una lista delle pagine con spam, inserisci innanzitutto una stringa di ricerca (ad esempio l'URL di un sito di spam), quindi Verifica che le pagine trovate contengano realmente spam e ripristinale ad una versione precedente.
diff --git a/wiki/lib/plugins/revert/lang/it/lang.php b/wiki/lib/plugins/revert/lang/it/lang.php
deleted file mode 100644
index 52b11b9..0000000
--- a/wiki/lib/plugins/revert/lang/it/lang.php
+++ /dev/null
@@ -1,20 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Pietro Battiston <toobaz@email.it>
- * @author Lorenzo Breda <lbreda@gmail.com>
- * @author robocap <robocap1@gmail.com>
- * @author Jacopo Corbetta <jacopo.corbetta@gmail.com>
- * @author Matteo Pasotti <matteo@xquiet.eu>
- */
-$lang['menu']                  = 'Gestore di ripristini';
-$lang['filter']                = 'Cerca pagine con spam';
-$lang['revert']                = 'Ripristina le pagine selezionate';
-$lang['reverted']              = '%s ripristinata alla versione %s';
-$lang['removed']               = '%s rimossa';
-$lang['revstart']              = 'Processo di ripristino avviato. Può essere necessario molto tempo. Se lo script non fa in tempo a finire, sarà necessario ripristinare in blocchi più piccoli.';
-$lang['revstop']               = 'Processo di ripristino finito con successo.';
-$lang['note1']                 = 'Nota: questa ricerca distingue le maiuscole';
-$lang['note2']                 = 'Nota: la pagina verrà ripristinata all\'ultima versione non contenente la parola di spam data <i>%s</i>.';
diff --git a/wiki/lib/plugins/revert/lang/ja/intro.txt b/wiki/lib/plugins/revert/lang/ja/intro.txt
deleted file mode 100644
index 995a57f..0000000
--- a/wiki/lib/plugins/revert/lang/ja/intro.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== å¾©å…ƒç®¡ç† ======
-
-ã“ã®ãƒšãƒ¼ã‚¸ã¯ã€ã‚¹ãƒ‘ムã«ã‚ˆã‚Šç·¨é›†ã•れãŸãƒšãƒ¼ã‚¸ã‚’自動的ã«å¾©å…ƒã™ã‚‹ãŸã‚ã®æ©Ÿèƒ½ã‚’管ç†ã—ã¾ã™ã€‚ スパムをå—ã‘ãŸãƒšãƒ¼ã‚¸ã‚’検索ã™ã‚‹ãŸã‚ã€ã‚¹ãƒ‘ムURLãªã©ã®ã‚­ãƒ¼ãƒ¯ãƒ¼ãƒ‰ã‚’入力ã—ã¦ãã ã•ã„。 ãã®å¾Œã€æ¤œç´¢çµæžœã«å«ã¾ã‚Œã¦ã„るページãŒã‚¹ãƒ‘ムã•れã¦ã„ã‚‹ã“ã¨ã‚’確èªã—ã¦ã‹ã‚‰å¾©å…ƒã‚’行ã„ã¾ã™ã€‚
diff --git a/wiki/lib/plugins/revert/lang/ja/lang.php b/wiki/lib/plugins/revert/lang/ja/lang.php
deleted file mode 100644
index 1bca8a7..0000000
--- a/wiki/lib/plugins/revert/lang/ja/lang.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Yuji Takenaka <webmaster@davilin.com>
- * @author Ikuo Obataya <i.obataya@gmail.com>
- * @author Daniel Dupriest <kououken@gmail.com>
- * @author Kazutaka Miyasaka <kazmiya@gmail.com>
- * @author Taisuke Shimamoto <dentostar@gmail.com>
- * @author Satoshi Sahara <sahara.satoshi@gmail.com>
- */
-$lang['menu']                  = '復元管ç†';
-$lang['filter']                = 'スパムをå—ã‘ãŸãƒšãƒ¼ã‚¸ã‚’検索';
-$lang['revert']                = 'é¸æŠžã—ãŸãƒšãƒ¼ã‚¸ã‚’検索';
-$lang['reverted']              = '%s ã¯ãƒªãƒ“ジョン %s ã¸å¾©å…ƒã•れã¾ã—ãŸ';
-$lang['removed']               = '%s ã¯å‰Šé™¤ã•れã¾ã—ãŸ';
-$lang['revstart']              = '復元処ç†ä¸­ã§ã™ã€‚æ™‚é–“ãŒæŽ›ã‹ã‚‹å¯èƒ½æ€§ãŒã‚りã¾ã™ãŒã€ã‚‚ã—タイムアウトã—ãŸå ´åˆã¯ã€å¾©å…ƒã‚’複数回ã«åˆ†ã‘ã¦è¡Œã£ã¦ãã ã•ã„。';
-$lang['revstop']               = '復元処ç†ãŒæ­£ã—ã完了ã—ã¾ã—ãŸã€‚';
-$lang['note1']                 = '注æ„:検索語å¥ã¯å¤§æ–‡å­—ãƒ»å°æ–‡å­—を区別ã—ã¾ã™';
-$lang['note2']                 = '注æ„:最新ã®å†…å®¹ã«æ¤œç´¢ã—ãŸã‚¹ãƒ‘ムキーワード <i>%s</i> ãŒå«ã¾ã‚Œã¦ã„ãªã„ページãŒå¾©å…ƒã•れã¾ã™ã€‚';
diff --git a/wiki/lib/plugins/revert/lang/ko/intro.txt b/wiki/lib/plugins/revert/lang/ko/intro.txt
deleted file mode 100644
index 565aa4b..0000000
--- a/wiki/lib/plugins/revert/lang/ko/intro.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== ë˜ëŒë¦¬ê¸° ê´€ë¦¬ìž ======
-
-스팸 공격으로부터 ìžë™ìœ¼ë¡œ ë˜ëŒë¦¬ëŠ”ë° ì´ íŽ˜ì´ì§€ê°€ ë„ì›€ì´ ë  ìˆ˜ 있습니다. ìŠ¤íŒ¸ì— ê³µê²© ë°›ì€ ë¬¸ì„œ 목ë¡ì„ 찾으려면 검색어를 입력하고(예를 들어 스팸 URL) 나서 ì°¾ì€ ë¬¸ì„œê°€ 스팸 ê³µê²©ì„ ë°›ì•˜ëŠ”ì§€ 확ì¸í•˜ê³  ë˜ëŒë¦¬ì„¸ìš”.
\ No newline at end of file
diff --git a/wiki/lib/plugins/revert/lang/ko/lang.php b/wiki/lib/plugins/revert/lang/ko/lang.php
deleted file mode 100644
index f9e16cc..0000000
--- a/wiki/lib/plugins/revert/lang/ko/lang.php
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Seungheon Song <esketch@gmail.com>
- * @author jk Lee
- * @author dongnak <dongnak@gmail.com>
- * @author Song Younghwan <purluno@gmail.com>
- * @author Seung-Chul Yoo <dryoo@live.com>
- * @author erial2 <erial2@gmail.com>
- * @author Myeongjin <aranet100@gmail.com>
- * @author S.H. Lee <tuders@naver.com>
- */
-$lang['menu']                  = 'ë˜ëŒë¦¬ê¸° 관리ìž';
-$lang['filter']                = '스팸 문서 검색';
-$lang['revert']                = 'ì„ íƒí•œ 문서 ë˜ëŒë¦¬ê¸°';
-$lang['reverted']              = '%s íŒì„ %s íŒìœ¼ë¡œ ë˜ëŒë¦¼';
-$lang['removed']               = '%s 제거ë¨';
-$lang['revstart']              = 'ë˜ëŒë¦¬ê¸° ìž‘ì—…ì„ ì‹œìž‘í•©ë‹ˆë‹¤. 오랜 ì‹œê°„ì´ ê±¸ë¦´ 수 있습니다. 완료ë˜ê¸° ì „ì—
-                     스í¬ë¦½íЏ 시간 초과가 ë°œìƒí•œë‹¤ë©´ ë” ìž‘ì€ ìž‘ì—…ìœ¼ë¡œ 나누어서
-                     ë˜ëŒë¦¬ì‹œê¸° ë°”ëžë‹ˆë‹¤.';
-$lang['revstop']               = 'ë˜ëŒë¦¬ê¸° ìž‘ì—…ì´ ì„±ê³µì ìœ¼ë¡œ ë났습니다.';
-$lang['note1']                 = '참고: 대소문ìžë¥¼ 구별해 찾습니다';
-$lang['note2']                 = '참고: 문서는 <i>%s</i> 스팸 단어를 í¬í•¨í•˜ì§€ ì•Šì€ ìµœì‹  íŒìœ¼ë¡œ ë˜ëŒë¦½ë‹ˆë‹¤.';
diff --git a/wiki/lib/plugins/revert/lang/la/intro.txt b/wiki/lib/plugins/revert/lang/la/intro.txt
deleted file mode 100644
index 99a206f..0000000
--- a/wiki/lib/plugins/revert/lang/la/intro.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Restituendi Administrator ======
-
-Haec pagina contra mala interretialia paginas restituta. Vt paginas aegras quaeras, malum VRL scribe, deinde paginas malas eligas.
\ No newline at end of file
diff --git a/wiki/lib/plugins/revert/lang/la/lang.php b/wiki/lib/plugins/revert/lang/la/lang.php
deleted file mode 100644
index af42034..0000000
--- a/wiki/lib/plugins/revert/lang/la/lang.php
+++ /dev/null
@@ -1,15 +0,0 @@
-<?php
-/**
- * Latin language file
- *
- * @author Massimiliano Vassalli <vassalli.max@gmail.com>
- */
-$lang['menu']                  = 'Restituendi administrator';
-$lang['filter']                = 'Malas paginas quaerere';
-$lang['revert']                = 'Electas paginas restituere';
-$lang['reverted']              = '%s restitutur ut %s recenseas';
-$lang['removed']               = '%s deletur';
-$lang['revstart']              = 'Restitutio agens. Hic multo tempore agere potest. Si nimium tempus transit, manu restituis.';
-$lang['revstop']               = 'Restitutio feliciter perfecta.';
-$lang['note1']                 = 'Caue: litteras maiores et minores discernit';
-$lang['note2']                 = 'Caue: pagina in recentiori forma sine malis uerbis "<i>%s</i>" restituetur';
diff --git a/wiki/lib/plugins/revert/lang/lb/intro.txt b/wiki/lib/plugins/revert/lang/lb/intro.txt
deleted file mode 100644
index 59c5dfc..0000000
--- a/wiki/lib/plugins/revert/lang/lb/intro.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Revert Manager ======
-
-Dës Säit hëlleft bei der automatescher zerécksetzung no enger Spamattack. Fir eng Lëscht vun zougespamte Säiten ze fannen, gëff fir d'éischt e Sichbegrëff an (z.B. eng Spamadress). Konfirméier dann dass déi Säite wierklech zougespamt goufen a setz se dann zréck.
\ No newline at end of file
diff --git a/wiki/lib/plugins/revert/lang/lv/intro.txt b/wiki/lib/plugins/revert/lang/lv/intro.txt
deleted file mode 100644
index edcdab2..0000000
--- a/wiki/lib/plugins/revert/lang/lv/intro.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== PiemÄ“sloto lapu atjaunotÄjs ======
-
-Å Ä« lapa palÄ«dzÄ“s automÄtiski atjaunot saturu pÄ“c huligÄnisma . Lai atrastu piedrazotÄs lapas ieraksti meklÄ“jamo izteiksmi (piem. smaperu URL), tad apstiprini, ka atrastÄs ir "mÄ“slapas" un atcel izdarÄ«tÄs izmaiņas .
diff --git a/wiki/lib/plugins/revert/lang/lv/lang.php b/wiki/lib/plugins/revert/lang/lv/lang.php
deleted file mode 100644
index 3651715..0000000
--- a/wiki/lib/plugins/revert/lang/lv/lang.php
+++ /dev/null
@@ -1,16 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Aivars Miška <allefm@gmail.com>
- */
-$lang['menu']                  = 'PiemÄ“sloto lapu atjaunotÄjs';
-$lang['filter']                = 'MeklÄ“t piemÄ“slotÄs lapas';
-$lang['revert']                = 'Atjaunot norÄdÄ«tÄs lapas ';
-$lang['reverted']              = '%s atjaunots uz %s stÄvokli';
-$lang['removed']               = '%s dzēsts';
-$lang['revstart']              = 'AtjaunoÅ¡ana uzsÄkta. Tas var aizņemt ilgÄku laiku. Ja darbÄ«ba pÄrtrÅ«kst noilguma dēļ, atjaunoÅ¡ana jÄveic pa mazÄkÄm porcijÄm.';
-$lang['revstop']               = 'Atjaunošana veiksmīgi  pabeigta. ';
-$lang['note1']                 = 'Ievēro: Meklēšana atšķir lielos un mazos burtus.';
-$lang['note2']                 = 'IevÄ“ro: Lapu atjaunos ar pÄ“dÄ“jo versiju, kas nesatur uzdoto spama vÄrdu <i>%s</i>.';
diff --git a/wiki/lib/plugins/revert/lang/mr/intro.txt b/wiki/lib/plugins/revert/lang/mr/intro.txt
deleted file mode 100644
index efca243..0000000
--- a/wiki/lib/plugins/revert/lang/mr/intro.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-====== फेरबदल वà¥à¤¯à¤µà¤¸à¥à¤¥à¤¾à¤ªà¤• ======
-
-हà¥à¤¯à¤¾ पानादà¥à¤µà¤¾à¤°à¥‡ तà¥à¤®à¥à¤¹à¥€ भंकस हलà¥à¤²à¥à¤¯à¤¾à¤¦à¥à¤µà¤¾à¤°à¥‡ à¤à¤¾à¤²à¥‡à¤²à¥‡ बदल आपोआप फेरबदल करू शकता.
-भंकस पानांची यादी बनवणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ पà¥à¤°à¤¥à¤® à¤à¤–ादा शबà¥à¤¦à¤¸à¤®à¥‚ह टाका ( उदा. à¤à¤–ादं भंकस URL ),
-मग जी पाने सापडतील टी भंकस असलà¥à¤¯à¤¾à¤šà¥‡ नकà¥à¤•ी करा आणि तà¥à¤¯à¤¾à¤¤à¥€à¤² बदल रदà¥à¤¦ करा.
\ No newline at end of file
diff --git a/wiki/lib/plugins/revert/lang/mr/lang.php b/wiki/lib/plugins/revert/lang/mr/lang.php
deleted file mode 100644
index 3912bb9..0000000
--- a/wiki/lib/plugins/revert/lang/mr/lang.php
+++ /dev/null
@@ -1,18 +0,0 @@
-<?php
-/**
- * Marathi language file
- *
- * @author ghatothkach@hotmail.com
- * @author Padmanabh Kulkarni <kulkarnipadmanabh@gmail.com>
- * @author Padmanabh Kulkarni<kulkarnipadmanabh@gmail.com>
- * @author shantanoo@gmail.com
- */
-$lang['menu']                  = 'फेर बदल वà¥à¤¯à¤µà¤¸à¥à¤¥à¤¾à¤ªà¤•';
-$lang['filter']                = 'भंकस पाने शोधा';
-$lang['revert']                = 'निवडलेली पानातील बदल रदà¥à¤¦ करा';
-$lang['reverted']              = '%s फेरबदलून %s आवृतà¥à¤¤à¤¿à¤®à¤§à¥‡ आणला आहे';
-$lang['removed']               = '%s काढला आहे.';
-$lang['revstart']              = 'फेरबदलाची पà¥à¤°à¤•à¥à¤°à¤¿à¤¯à¤¾ चालॠà¤à¤¾à¤²à¥€ आहे.याला बराच वेळ लागू शकतो. जर सà¥à¤•à¥à¤°à¤¿à¤ªà¥à¤Ÿ समà¥à¤ªà¤£à¥à¤¯à¤¾à¤†à¤§à¤¿ तà¥à¤¯à¤¾à¤šà¥€ कालमरà¥à¤¯à¤¾à¤¦à¤¾ उलटून गेली तर छोटà¥à¤¯à¤¾-छोटà¥à¤¯à¤¾ तà¥à¤•डà¥à¤¯à¤¾à¤‚मधे फेरबदल करा.';
-$lang['revstop']               = 'फेरबदलाची पà¥à¤°à¤•à¥à¤°à¤¿à¤¯à¤¾ यशसà¥à¤µà¥€à¤°à¥€à¤¤à¥à¤¯à¤¾ पूरà¥à¤£ à¤à¤¾à¤²à¥€.';
-$lang['note1']                 = 'टीप : हा शोध केस-सेंसिटिव आहे ( फ़कà¥à¤¤ इंगà¥à¤°à¤œà¥€à¤¸à¤¾à¤ à¥€ लागू )';
-$lang['note2']                 = 'टीप : हे पान फेरबदल करून जà¥à¤¯à¤¾ शेवटचà¥à¤¯à¤¾ आवृतà¥à¤¤à¤¿à¤®à¤§à¥‡ <i>%s</i> हा दिलेला भंकस शबà¥à¤¦ नाही तà¥à¤¯à¤¾à¤¤ बदलले जाईल.';
diff --git a/wiki/lib/plugins/revert/lang/ne/lang.php b/wiki/lib/plugins/revert/lang/ne/lang.php
deleted file mode 100644
index 8bd7c33..0000000
--- a/wiki/lib/plugins/revert/lang/ne/lang.php
+++ /dev/null
@@ -1,17 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author Saroj Kumar Dhakal <lotusnagarkot@gmail.com>
- * @author SarojKumar Dhakal <lotusnagarkot@yahoo.com>
- * @author Saroj Dhakal<lotusnagarkot@yahoo.com>
- */
-$lang['menu']                  = 'पूरà¥à¤µà¤¸à¥à¤¥à¤¿à¤¤à¥€ वà¥à¤¯à¤µà¤¸à¥à¤¥à¤¾à¤ªà¤•';
-$lang['filter']                = 'सà¥à¤ªà¥à¤¯à¤¾à¤®à¤¯à¥à¤•à¥à¤¤ पृषà¥à¤ à¤¹à¤°à¥ खोजà¥à¤¨à¥à¤¹à¥‹à¤¸à¥ ';
-$lang['revert']                = 'छानिà¤à¤• पृषà¥à¤ à¤¹à¤°à¥à¤²à¤¾à¤ˆ पूरà¥à¤µà¤¸à¥à¤¥à¤¿à¤¤à¤¿à¤®à¤¾ फरà¥à¤•ाउनà¥à¤¹à¥‹à¤¸à¥ ।';
-$lang['reverted']              = '%s लाई  %s संसà¥à¤•रणमा फरà¥à¤•ाइयो ।';
-$lang['removed']               = '%s लाई हटाइयो ।';
-$lang['revstart']              = 'पूरà¥à¤µà¤¸à¥à¤¥à¤¿à¤¤à¤¿à¤®à¤¾ फरà¥à¤•ाउने कारà¥à¤¯ सà¥à¤°à¥ भयो । यसले लामो समय लिन सकà¥à¤›à¥¤ यदि सà¥à¤•à¥à¤°à¤¿à¤ªà¥à¤Ÿà¤•ो समय काà¥à¤°à¥à¤¯ सकिनॠपूरà¥à¤µ सकियो भने । तपाईले सानो सानो टà¥à¤•à¥à¤°à¤¾ लिà¤à¤° पà¥à¤°à¥à¤µà¤°à¥à¤ªà¤®à¤¾ फरà¥à¤•ाउनॠपरà¥à¤¨à¥‡ हà¥à¤¨à¥à¤› ।';
-$lang['revstop']               = 'पूरà¥à¤µà¤¸à¥à¤¥à¤¿à¤¤à¤¿à¤®à¤¾ फरà¥à¤•ाउने कारà¥à¤¯ सफलतापूरà¥à¤µà¤• सकियो ।';
-$lang['note1']                 = 'नोट: यो खोज वरà¥à¤£ समà¥à¤µà¥‡à¤¦à¤¨à¤¶à¥€à¤² छ';
diff --git a/wiki/lib/plugins/revert/lang/nl/intro.txt b/wiki/lib/plugins/revert/lang/nl/intro.txt
deleted file mode 100644
index efa3258..0000000
--- a/wiki/lib/plugins/revert/lang/nl/intro.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-===== Herstel =====
-
-Deze pagina helpt u bij het herstellen van pagina's na een spam-aanval. Vul een zoekterm in (bijvoorbeeld een spam url) om een lijst te krijgen van bekladde pagina's, bevestig dat de pagina's inderdaad spam bevatten en herstel de wijzigingen.
diff --git a/wiki/lib/plugins/revert/lang/nl/lang.php b/wiki/lib/plugins/revert/lang/nl/lang.php
deleted file mode 100644
index d26c87d..0000000
--- a/wiki/lib/plugins/revert/lang/nl/lang.php
+++ /dev/null
@@ -1,26 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Wouter Schoot <wouter@schoot.org>
- * @author John de Graaff <john@de-graaff.net>
- * @author Niels Schoot <niels.schoot@quintiq.com>
- * @author Dion Nicolaas <dion@nicolaas.net>
- * @author Danny Rotsaert <danny.rotsaert@edpnet.be>
- * @author Marijn Hofstra <hofstra.m@gmail.com>
- * @author Timon Van Overveldt <timonvo@gmail.com>
- * @author Ricardo Guijt <ricardoguijt@gmail.com>
- * @author Gerrit <klapinklapin@gmail.com>
- * @author Remon <no@email.local>
- * @author Rene <wllywlnt@yahoo.com>
- */
-$lang['menu']                  = 'Herstel';
-$lang['filter']                = 'Zoek naar bekladde pagina\'s';
-$lang['revert']                = 'Herstel geselecteerde pagina\'s';
-$lang['reverted']              = '%s hersteld naar revisie %s';
-$lang['removed']               = '%s verwijderd';
-$lang['revstart']              = 'Herstelproces is begonnen. Dit kan een lange tijd duren. Als het script een timeout genereert voor het klaar is, moet je in kleinere delen herstellen.';
-$lang['revstop']               = 'Herstelproces succesvol afgerond.';
-$lang['note1']                 = 'NB: deze zoekopdracht is hoofdlettergevoelig';
-$lang['note2']                 = 'NB: de pagina zal hersteld worden naar de laatste versie waar de opgegeven spam-term <i>%s</i> niet op voorkomt.';
diff --git a/wiki/lib/plugins/revert/lang/no/intro.txt b/wiki/lib/plugins/revert/lang/no/intro.txt
deleted file mode 100644
index d8288b2..0000000
--- a/wiki/lib/plugins/revert/lang/no/intro.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Tilbakestillingsbehandler ======
-
-Denne siden hjelper deg å automatisk reversere sider som er blitt forsøplet. For å vise en liste over forsøplede sider, skriv inn en søkestreng (f.eks. en søppel-URL). Velg deretter hvilke av sidene i søkeresultatet som skal tilbakestilles.
\ No newline at end of file
diff --git a/wiki/lib/plugins/revert/lang/no/lang.php b/wiki/lib/plugins/revert/lang/no/lang.php
deleted file mode 100644
index 88c25af..0000000
--- a/wiki/lib/plugins/revert/lang/no/lang.php
+++ /dev/null
@@ -1,38 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Thomas Nygreen <nygreen@gmail.com>
- * @author Arild Burud <arildb@met.no>
- * @author Torkill Bruland <torkar-b@online.no>
- * @author Rune M. Andersen <rune.andersen@gmail.com>
- * @author Jakob Vad Nielsen (me@jakobnielsen.net)
- * @author Kjell Tore Næsgaard <kjell.t.nasgaard@ntnu.no>
- * @author Knut Staring <knutst@gmail.com>
- * @author Lisa Ditlefsen <lisa@vervesearch.com>
- * @author Erik Pedersen <erik.pedersen@shaw.ca>
- * @author Erik Bjørn Pedersen <erik.pedersen@shaw.ca>
- * @author Rune Rasmussen syntaxerror.no@gmail.com
- * @author Jon Bøe <jonmagneboe@hotmail.com>
- * @author Egil Hansen <egil@rosetta.no>
- * @author Thomas Juberg <Thomas.Juberg@Gmail.com>
- * @author Boris <boris@newton-media.no>
- * @author Christopher Schive <chschive@frisurf.no>
- * @author Patrick <spill.p@hotmail.com>
- * @author Danny Buckhof <daniel.raknes@hotmail.no>
- * @author Arne Hanssen <arne.hanssen@getmail.no>
- * @author Arne Hanssen <arnehans@getmail.no>
- * @author Patrick Sletvold <patricksletvold@hotmail.com>
- */
-$lang['menu']                  = 'Tilbakestillingsbehandler';
-$lang['filter']                = 'Søk etter søppelmeldinger';
-$lang['revert']                = 'Tilbakestill valgte sider';
-$lang['reverted']              = '%s tilbakestilt til revisjon %s';
-$lang['removed']               = '%s fjernet';
-$lang['revstart']              = 'Prosessen med tilbakestilling er startet. Hvis det skjer et
-tidsavbrudd før prosessen er ferdig, må du tilbakestille
-færre sider om gangen.';
-$lang['revstop']               = 'Tilbakestillingen er fullført.';
-$lang['note1']                 = 'Merk: søket skiller mellom store og små bokstaver';
-$lang['note2']                 = 'Merk: sidene vil bli tilbakestilt til den siste versjonen som ikke inneholder søppelteksten: <i>%s</i>.';
diff --git a/wiki/lib/plugins/revert/lang/pl/intro.txt b/wiki/lib/plugins/revert/lang/pl/intro.txt
deleted file mode 100644
index 410948a..0000000
--- a/wiki/lib/plugins/revert/lang/pl/intro.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Menadżer przywracania ======
-
-Menadżer przywracania przeznaczony jest do automatycznego naprawiania stron, które uległy wandalizmom. W celu naprawienia uszkodzonych stron, wyszukaj je a następnie oznacz i przywróć poprzednie wersje.
diff --git a/wiki/lib/plugins/revert/lang/pl/lang.php b/wiki/lib/plugins/revert/lang/pl/lang.php
deleted file mode 100644
index 2793796..0000000
--- a/wiki/lib/plugins/revert/lang/pl/lang.php
+++ /dev/null
@@ -1,26 +0,0 @@
-<?php
-
-/**
- * @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>
- * @author Sławomir Boczek <slawkens@gmail.com>
- * @author sleshek <sleshek@wp.pl>
- * @author Leszek Stachowski <shazarre@gmail.com>
- * @author maros <dobrimaros@yahoo.pl>
- * @author Grzegorz Widła <dzesdzes@gmail.com>
- * @author Åukasz Chmaj <teachmeter@gmail.com>
- * @author Begina Felicysym <begina.felicysym@wp.eu>
- * @author Aoi Karasu <aoikarasu@gmail.com>
- */
-$lang['menu']                  = 'Menadżer przywracania';
-$lang['filter']                = 'Wyszukaj uszkodzone strony';
-$lang['revert']                = 'Napraw zaznaczone strony';
-$lang['reverted']              = 'StronÄ™ %s zastÄ…piono wersjÄ… %s';
-$lang['removed']               = 'Stronę %s usunięto';
-$lang['revstart']              = 'Naprawa rozpoczęta. To może zająć kilka minut. Jeśli strona przestanie się ładować, spróbuj ponownie zaznaczając mniejszą liczbę stron.';
-$lang['revstop']               = 'Naprawa zakończona pomyślnie!';
-$lang['note1']                 = 'Uwaga: duże i małe litery są rozróżniane';
-$lang['note2']                 = 'Uwaga: zostanie przywrócona ostatnia wersja strony niezawierająca wyrażenia <i>%s</i>.';
diff --git a/wiki/lib/plugins/revert/lang/pt-br/intro.txt b/wiki/lib/plugins/revert/lang/pt-br/intro.txt
deleted file mode 100644
index 5ce9890..0000000
--- a/wiki/lib/plugins/revert/lang/pt-br/intro.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Gerenciador de Reversões ======
-
-Essa página ajuda a reverter automaticamente um ataque de spam. Para encontrar as páginas que sofreram ataque, primeiro entre com um termo na busca (ex.: a URL do spam), então confirme que as páginas encontradas são realmente spam e reverta as edições.
diff --git a/wiki/lib/plugins/revert/lang/pt-br/lang.php b/wiki/lib/plugins/revert/lang/pt-br/lang.php
deleted file mode 100644
index 93337b6..0000000
--- a/wiki/lib/plugins/revert/lang/pt-br/lang.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Frederico Gonçalves Guimarães <frederico@teia.bio.br>
- * @author Felipe Castro <fefcas@gmail.com>
- * @author Lucien Raven <lucienraven@yahoo.com.br>
- * @author Enrico Nicoletto <liverig@gmail.com>
- * @author Flávio Veras <flaviove@gmail.com>
- * @author Jeferson Propheta <jeferson.propheta@gmail.com>
- * @author jair.henrique <jair.henrique@gmail.com>
- * @author Luis Dantas <luis@dantas.com>
- * @author Sergio Motta <sergio@cisne.com.br>
- * @author Isaias Masiero Filho <masiero@masiero.org>
- * @author Balaco Baco <balacobaco@imap.cc>
- * @author Victor Westmann <victor.westmann@gmail.com>
- */
-$lang['menu']                  = 'Gerenciador de reversões';
-$lang['filter']                = 'Procura por páginas com spam';
-$lang['revert']                = 'Reverte as páginas selecionadas';
-$lang['reverted']              = '%s revertida para a revisão %s';
-$lang['removed']               = '%s removida';
-$lang['revstart']              = 'O processo de reversão foi iniciado. Isso pode levar muito tempo. Se o tempo de execução do script expirar antes dele encerrar, você deverá tentar novamente usando blocos menores.';
-$lang['revstop']               = 'O processo de reversão terminou com sucesso.';
-$lang['note1']                 = 'Nota: esta busca diferencia maiúsculas/minúsculas';
-$lang['note2']                 = 'Nota: a página será revertida para a última versão que não contém o termo de spam <i>%s</i>.';
diff --git a/wiki/lib/plugins/revert/lang/pt/intro.txt b/wiki/lib/plugins/revert/lang/pt/intro.txt
deleted file mode 100644
index 7adfe5f..0000000
--- a/wiki/lib/plugins/revert/lang/pt/intro.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Gerir Reversões ======
-
-Esta página ajuda a reverter automaticamente de um ataque spam. Para encontrar as páginas afectadas insira primeiro um texto de pesquisa (i.e spam URL), confirme as páginas encontradas como sendo resultantes de um ataque spam e reverta essas edições.
\ No newline at end of file
diff --git a/wiki/lib/plugins/revert/lang/pt/lang.php b/wiki/lib/plugins/revert/lang/pt/lang.php
deleted file mode 100644
index 665b846..0000000
--- a/wiki/lib/plugins/revert/lang/pt/lang.php
+++ /dev/null
@@ -1,20 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author José Monteiro <Jose.Monteiro@DoWeDo-IT.com>
- * @author Enrico Nicoletto <liverig@gmail.com>
- * @author Fil <fil@meteopt.com>
- * @author André Neves <drakferion@gmail.com>
- * @author José Campos zecarlosdecampos@gmail.com
- */
-$lang['menu']                  = 'Gestor de Reversões';
-$lang['filter']                = 'Pesquisar por páginas "spammy"';
-$lang['revert']                = 'Reverter páginas seleccionadas';
-$lang['reverted']              = '%s revertida para revisão %s';
-$lang['removed']               = '%s removidas.';
-$lang['revstart']              = 'Processo de reversão iniciado. A sua execução pode demorar. Se der timeout antes de terminar então é preciso escolher quantidades menores de páginas a reverter.';
-$lang['revstop']               = 'Processo de reversão bem sucedido.';
-$lang['note1']                 = 'Nota: a pesquisa é case-sensitive';
-$lang['note2']                 = 'Nota: a página será revertida para a versão anterior que não contém os termos spam pesquisados: <i>%s</i>.';
diff --git a/wiki/lib/plugins/revert/lang/ro/intro.txt b/wiki/lib/plugins/revert/lang/ro/intro.txt
deleted file mode 100644
index 3a03035..0000000
--- a/wiki/lib/plugins/revert/lang/ro/intro.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Manager Reveniri ======
-
-Această pagină ajută revenirea automată în cazul unui atac spam. Pentru a găsi o listă a paginilor cu spam, întroduceţi mai întâi un şir de căutat (de ex. Un URL spam), apoi confirmaţi dacă paginile găsite conţin într-adevăr spam şi anulaţi editările.
diff --git a/wiki/lib/plugins/revert/lang/ro/lang.php b/wiki/lib/plugins/revert/lang/ro/lang.php
deleted file mode 100644
index 663447e..0000000
--- a/wiki/lib/plugins/revert/lang/ro/lang.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Sergiu Baltariu <s_baltariu@yahoo.com>
- * @author s_baltariu@yahoo.com
- * @author Emanuel-Emeric Andrasi <n30@mandrivausers.ro>
- * @author Emanuel-Emeric Andrași <n30@mandrivausers.ro>
- * @author Emanuel-Emeric AndraÅŸi <em.andrasi@mandrivausers.ro>
- * @author Emanuel-Emeric Andrasi <em.andrasi@mandrivausers.ro>
- * @author Marius OLAR <olarmariusalex@gmail.com>
- * @author Marius Olar <olarmariusalex@yahoo.com>
- * @author Emanuel-Emeric Andrași <em.andrasi@mandrivausers.ro>
- */
-$lang['menu']                  = 'Manager Reveniri';
-$lang['filter']                = 'Caută pagini cu posibil spam';
-$lang['revert']                = 'Revenire pentru paginile selectate';
-$lang['reverted']              = '%s revenită la versiunea %s';
-$lang['removed']               = '%s eliminată';
-$lang['revstart']              = 'Procesul de revenire a început. Acesta poate dura mult timp.Dacă scriptul expiră înainte de finalizare, trebuie să reveniţi în paşi mai mici.';
-$lang['revstop']               = 'Procesul de revenire s-a finalizat cu succes.';
-$lang['note1']                 = 'Notă: această căutare este sensibilă la majuscule.';
-$lang['note2']                 = 'Notă: pagina va reveni la ultima versiune ce nu conţine termenul de spam <i>%s</i>.';
diff --git a/wiki/lib/plugins/revert/lang/ru/intro.txt b/wiki/lib/plugins/revert/lang/ru/intro.txt
deleted file mode 100644
index 52d1f8d..0000000
--- a/wiki/lib/plugins/revert/lang/ru/intro.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Менеджер откаток ======
-
-Эта Ñтраница поможет вам в автоматичеÑкой откатке изменений поÑле Ñпам-атаки. Ð”Ð»Ñ Ñ‚Ð¾Ð³Ð¾, чтобы найти Ñпам-Ñтраницы, введите ключевые Ñлова и произведите поиÑк (например, по URL Ñпамера). Затем убедитеÑÑŒ, что найденные Ñтраницы дейÑтвительно Ñодержат Ñпам и Ñделайте откатку изменений.
diff --git a/wiki/lib/plugins/revert/lang/ru/lang.php b/wiki/lib/plugins/revert/lang/ru/lang.php
deleted file mode 100644
index 5de67b4..0000000
--- a/wiki/lib/plugins/revert/lang/ru/lang.php
+++ /dev/null
@@ -1,28 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Denis Simakov <akinoame1@gmail.com>
- * @author Andrew Pleshakov <beotiger@mail.ru>
- * @author Змей ЭтерийÑкий <evil_snake@eternion.ru>
- * @author Hikaru Nakajima <jisatsu@mail.ru>
- * @author Alexei Tereschenko <alexeitlex@yahoo.com>
- * @author Alexander Sorkin <kibizoid@gmail.com>
- * @author Kirill Krasnov <krasnovforum@gmail.com>
- * @author Vlad Tsybenko <vlad.development@gmail.com>
- * @author Aleksey Osadchiy <rfc@nm.ru>
- * @author Aleksandr Selivanov <alexgearbox@gmail.com>
- * @author Ladyko Andrey <fylh@succexy.spb.ru>
- * @author Eugene <windy.wanderer@gmail.com>
- * @author Johnny Utah <pcpa@cyberpunk.su>
- */
-$lang['menu']                  = 'Менеджер откаток';
-$lang['filter']                = 'ПоиÑк Ñпам-Ñтраниц';
-$lang['revert']                = 'Откатить Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ð²Ñ‹Ð±Ñ€Ð°Ð½Ð½Ñ‹Ñ… Ñтраниц';
-$lang['reverted']              = '%s возвращена к верÑии %s';
-$lang['removed']               = '%s удалена';
-$lang['revstart']              = 'Ðачат процеÑÑ Ð¾Ñ‚ÐºÐ°Ñ‚ÐºÐ¸. Он может занÑть много времени. ЕÑли Ñкрипт не уÑпевает завершить работу и выдаёт ошибку, необходимо произвеÑти откатку более маленькими чаÑÑ‚Ñми.';
-$lang['revstop']               = 'ПроцеÑÑ Ð¾Ñ‚ÐºÐ°Ñ‚ÐºÐ¸ уÑпешно завершён.';
-$lang['note1']                 = 'Замечание: поиÑк Ñ ÑƒÑ‡Ñ‘Ñ‚Ð¾Ð¼ региÑтра';
-$lang['note2']                 = 'Замечание: Ñтраница будет воÑÑтановлена до поÑледней верÑии, не Ñодержащей Ñпам-термин <i>%s</i>.';
diff --git a/wiki/lib/plugins/revert/lang/sk/intro.txt b/wiki/lib/plugins/revert/lang/sk/intro.txt
deleted file mode 100644
index aa75a2c..0000000
--- a/wiki/lib/plugins/revert/lang/sk/intro.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Obnova dát ======
-
-Táto stránka slúži na automatické obnovenie obsahu stránok po útoku spamom. Pre identifikáciu napadnutých stránok zadajte vyhľadávací reÅ¥azec (napr. spam URL), potom potvrÄte, že nájdené stránky sú skutoÄne napadnuté, a zruÅ¡te posledné zmeny.
\ No newline at end of file
diff --git a/wiki/lib/plugins/revert/lang/sk/lang.php b/wiki/lib/plugins/revert/lang/sk/lang.php
deleted file mode 100644
index f251aac..0000000
--- a/wiki/lib/plugins/revert/lang/sk/lang.php
+++ /dev/null
@@ -1,18 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Michal Mesko <michal.mesko@gmail.com>
- * @author exusik <exusik@gmail.com>
- * @author Martin Michalek <michalek.dev@gmail.com>
- */
-$lang['menu']                  = 'Obnova dát';
-$lang['filter']                = 'Hľadať spamerské stránky';
-$lang['revert']                = 'Vrátiť vybrané stránky';
-$lang['reverted']              = '%s vrátená na revíziu %s';
-$lang['removed']               = '%s odstránená';
-$lang['revstart']              = 'Proces reverzie bol spustený. Toto môže trvaÅ¥ dlhý Äas. Ak skript prekroÄí daný maximálny Äasový interval pred tým, ako skonÄí, musíte urobiÅ¥ reverziu v menších dávkach.';
-$lang['revstop']               = 'Proces reverzie sa úspeÅ¡ne skonÄil.';
-$lang['note1']                 = 'Poznámka: vyhľadávanie rozlišuje medzi veľkými a malými písmenami';
-$lang['note2']                 = 'Poznámka: táto stránka bude vrátená do poslednej verzie, ktorá neobsahuje spamový výraz <i>%s</i>.';
diff --git a/wiki/lib/plugins/revert/lang/sl/intro.txt b/wiki/lib/plugins/revert/lang/sl/intro.txt
deleted file mode 100644
index 4e2cabf..0000000
--- a/wiki/lib/plugins/revert/lang/sl/intro.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Povrnitev okvarjene vsebine ======
-
-Na tej strani je mogoÄe povrniti vsebino wiki strani na izvorne vrednosti po napadu na stran in vpisu neželenih vsebin. Za iskanje strani z neželeno vsebino, uporabite iskalnik z ustreznim nizom (npr. naslov URL), potem pa potrdite, da so najdene strani res z neželeno vsebino in nato povrnite stanje na zadnjo pravo razliÄico.
diff --git a/wiki/lib/plugins/revert/lang/sl/lang.php b/wiki/lib/plugins/revert/lang/sl/lang.php
deleted file mode 100644
index 9ca8f8f..0000000
--- a/wiki/lib/plugins/revert/lang/sl/lang.php
+++ /dev/null
@@ -1,16 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Matej UrbanÄiÄ (mateju@svn.gnome.org)
- */
-$lang['menu']                  = 'Povrnitev okvarjene vsebine';
-$lang['filter']                = 'Iskanje strani z neželeno vsebino';
-$lang['revert']                = 'Povrni izbrane strani';
-$lang['reverted']              = 'stran %s je povrnjena na razliÄico %s';
-$lang['removed']               = 'stran %s je odstranjena';
-$lang['revstart']              = 'Postopek povrnitve vsebine je zaÄet. Opravilo je lahko dolgotrajno. V kolikor opravilo Äasovno poteÄe prek konÄanjem povrnitve, bo treba postopek ponoviti na manjÅ¡ih odsekih.';
-$lang['revstop']               = 'Postopek povrnitve vsebine je uspeÅ¡no konÄan.';
-$lang['note1']                 = 'Opomba: iskanje upoÅ¡teva velikost Ärk';
-$lang['note2']                 = 'Opomba: stran bo povrnjena na zadnjo razliÄico brez neželenega pojma <i>%s</i>.';
diff --git a/wiki/lib/plugins/revert/lang/sq/intro.txt b/wiki/lib/plugins/revert/lang/sq/intro.txt
deleted file mode 100644
index 25e16b6..0000000
--- a/wiki/lib/plugins/revert/lang/sq/intro.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Menaxhuesi Rikthimit ======
-
-Kjo faqe ndihmon për rikthimin automatik në rast të një sulmi spam. Për të gjetur një listë me faqe spam në fillim fut një varg kërkimi (psh një URL spam), dhe pastaj konfirmo që faqet e gjetura janë me të vërtetë spam dhe rikthe redaktimet.
\ No newline at end of file
diff --git a/wiki/lib/plugins/revert/lang/sq/lang.php b/wiki/lib/plugins/revert/lang/sq/lang.php
deleted file mode 100644
index 45ae499..0000000
--- a/wiki/lib/plugins/revert/lang/sq/lang.php
+++ /dev/null
@@ -1,15 +0,0 @@
-<?php
-/**
- * Albanian language file
- *
- * @author Leonard Elezi leonard.elezi@depinfo.info
- */
-$lang['menu']                  = 'Menaxhuesi Rikthimit';
-$lang['filter']                = 'Kërko faqe me spam';
-$lang['revert']                = 'Rikthe faqet e përzgjedhura';
-$lang['reverted']              = '%s u rikthye në rishikimin %s';
-$lang['removed']               = '%s u hoq';
-$lang['revstart']              = 'Proçesi i rikthimit filloi. Kjo mund të zgjasë për një kohë të gjatë. Nëse koha e skriptit mbaron para përfundimit, atëherë rikthimi duhet të bëhet me copa të vogla.';
-$lang['revstop']               = 'Proçesi i rikthimit mbaroi me sukses.';
-$lang['note1']                 = 'Shënim: në këtë kërkim bëhet dallim midis gërmave kapitale dhe gërmave të vogla.';
-$lang['note2']                 = 'Shënim: faqja do të rikthehet në versionin e fundit që nuk përmban term-in spam të dhënë <i>%s</i>.';
diff --git a/wiki/lib/plugins/revert/lang/sr/intro.txt b/wiki/lib/plugins/revert/lang/sr/intro.txt
deleted file mode 100644
index 8c288e7..0000000
--- a/wiki/lib/plugins/revert/lang/sr/intro.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Управљач за враћање ======
-
-Ова Ñтрана вам помаже од напада Ñпама аутоматÑким враћањем на Ñтаре верзије Ñтраница.  Да биÑте пронашли Ñпамоване Ñтранице откуцајте реч за претрагу (тј. реч која Ñе појављује у Ñпаму), затим потврдите да Ñе на пронађеним Ñтраницама Ñтварно налази Ñпам и онда вратите на Ñтање пре промена.
\ No newline at end of file
diff --git a/wiki/lib/plugins/revert/lang/sr/lang.php b/wiki/lib/plugins/revert/lang/sr/lang.php
deleted file mode 100644
index e0ac439..0000000
--- a/wiki/lib/plugins/revert/lang/sr/lang.php
+++ /dev/null
@@ -1,18 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Иван Петровић petrovicivan@ubuntusrbija.org
- * @author Ivan Petrovic <petrovicivan@ubuntusrbija.org>
- * @author Miroslav Å olti <solti.miroslav@gmail.com>
- */
-$lang['menu']                  = 'Управљач за враћање';
-$lang['filter']                = 'Претрага Ñпам Ñтраница';
-$lang['revert']                = 'Врати одабране Ñтранице';
-$lang['reverted']              = '%s враћена на ревизију %s';
-$lang['removed']               = '%s је уклоњена';
-$lang['revstart']              = 'ÐŸÑ€Ð¾Ñ†ÐµÑ Ð²Ñ€Ð°Ñ›Ð°ÑšÐ° је покренут. Може потрајати дуже време. Ðко иÑтекне време пре завршетка потребно је да покренете у мањим деловима.';
-$lang['revstop']               = 'ÐŸÑ€Ð¾Ñ†ÐµÑ Ð²Ñ€Ð°Ñ›Ð°ÑšÐ° је уÑпешно завршен.';
-$lang['note1']                 = 'Ðапомена: ова претрага разликује велика и мала Ñлова';
-$lang['note2']                 = 'Ðапомена: Ñтраница ће бити враћена на поÑледњу верзију која не Ñадржи Ñпам израз <i>%s</i>.';
diff --git a/wiki/lib/plugins/revert/lang/sv/intro.txt b/wiki/lib/plugins/revert/lang/sv/intro.txt
deleted file mode 100644
index cd7f322..0000000
--- a/wiki/lib/plugins/revert/lang/sv/intro.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Hantera återställningar ======
-
-Den här sidan hjälper till med automatiskt återställning efter en spamattack. För att hitta spammade sidor, ange först en söksträng (till exempel en webbadress). Kontrollera sedan att sidorna som hittades verkligen är spam, och återställ sedan redigeringarna.
diff --git a/wiki/lib/plugins/revert/lang/sv/lang.php b/wiki/lib/plugins/revert/lang/sv/lang.php
deleted file mode 100644
index 7cff7ff..0000000
--- a/wiki/lib/plugins/revert/lang/sv/lang.php
+++ /dev/null
@@ -1,30 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Tor Härnqvist <tor@harnqvist.se>
- * @author Per Foreby <per@foreby.se>
- * @author Nicklas Henriksson <nicklas[at]nihe.se>
- * @author HÃ¥kan Sandell <hakan.sandell@home.se>
- * @author Dennis Karlsson
- * @author Tormod Otter Johansson <tormod@latast.se>
- * @author Pontus Bergendahl <pontus.bergendahl@gmail.com>
- * @author Emil Lind <emil@sys.nu>
- * @author Bogge Bogge <bogge@bogge.com>
- * @author Peter Åström <eaustreum@gmail.com>
- * @author Henrik <henrik@idealis.se>
- * @author Hans Iwan Bratt <hibratt@gmail.com>
- * @author Mikael Bergström <krank23@gmail.com>
- */
-$lang['menu']                  = 'Hantera återställningar';
-$lang['filter']                = 'Sök efter spamsidor';
-$lang['revert']                = 'Återställ markerade redigeringar';
-$lang['reverted']              = '%s återställd till version %s';
-$lang['removed']               = '%s borttagen';
-$lang['revstart']              = 'Återställningen startad. Detta kan ta lång tid. Om
-                     skriptet får en timeout innan det är färdigt måste du köra återställningen
-                     med färre sidor åt gången.';
-$lang['revstop']               = 'Återställningen avslutades utan problem.';
-$lang['note1']                 = 'OBS: sökningen skiljer på stora och små bokstäver';
-$lang['note2']                 = 'OBS: sidan kommer att återställas till den senaste versionen som inte innehåller den angivna söksträngen <i>%s</i>.';
diff --git a/wiki/lib/plugins/revert/lang/th/intro.txt b/wiki/lib/plugins/revert/lang/th/intro.txt
deleted file mode 100644
index 2bfd27e..0000000
--- a/wiki/lib/plugins/revert/lang/th/intro.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== ตัวจัดà¸à¸²à¸£à¸à¸¹à¹‰à¸„ืนสภาพเอà¸à¸ªà¸²à¸£ ======
-
-หน้านี้จะช่วยคุณด้วยà¸à¸²à¸£à¸à¸¹à¹‰à¸„ืนหน้าที่ถูà¸à¹à¸ªà¸›à¸¡à¹‚ดยอัตโนมัติ เพื่อที่จะค้นหารายà¸à¸²à¸£à¸«à¸™à¹‰à¸²à¸—ี่ถูà¸à¸ªà¹à¸›à¸¡ อันดับà¹à¸£à¸à¹ƒà¸«à¹‰à¸à¸£à¸­à¸à¸‚้อความสืบค้น (เช่น URL เว็บโฆษณาที่มาสà¹à¸›à¸¡à¹„ว้), จาà¸à¸™à¸±à¹‰à¸™à¹ƒà¸«à¹‰à¸¢à¸·à¸™à¸¢à¸±à¸™à¸§à¹ˆà¸²à¹€à¸žà¸ˆà¸—ี่พบนั้นถูà¸à¸ªà¹à¸›à¸¡à¸ˆà¸£à¸´à¸‡à¹† à¹à¸¥à¹‰à¸§à¸ˆà¸¶à¸‡à¸ªà¸±à¹ˆà¸‡à¸„ืนสภาพต้นฉบับ
\ No newline at end of file
diff --git a/wiki/lib/plugins/revert/lang/th/lang.php b/wiki/lib/plugins/revert/lang/th/lang.php
deleted file mode 100644
index 7b6217b..0000000
--- a/wiki/lib/plugins/revert/lang/th/lang.php
+++ /dev/null
@@ -1,20 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author Komgrit Niyomrath <n.komgrit@gmail.com>
- * @author Kittithat Arnontavilas mrtomyum@gmail.com
- * @author Arthit Suriyawongkul <arthit@gmail.com>
- * @author Kittithat Arnontavilas <mrtomyum@gmail.com>
- * @author Thanasak Sompaisansin <jombthep@gmail.com>
- */
-$lang['menu']                  = 'ตัวจัดà¸à¸²à¸£à¸„ืนสภาพเอà¸à¸ªà¸²à¸£à¸‰à¸šà¸±à¸šà¹€à¸”ิม';
-$lang['filter']                = 'ค้นหาเพจที่ถูà¸à¹à¸ªà¸›à¸¡';
-$lang['revert']                = 'คืนสภาพเพจที่เลือà¸à¹„ว้';
-$lang['reverted']              = 'คืนสภาพ %s à¸à¸¥à¸±à¸šà¹„ปเป็นฉบับ %s';
-$lang['removed']               = 'ถอดทิ้ง %s';
-$lang['revstart']              = 'à¸à¸£à¸°à¸šà¸§à¸™à¸à¸²à¸£à¸„ืนสภาพได้เริ่มต้นà¹à¸¥à¹‰à¸§ นี่อาจต้องใช้เวลานาน ถ้าหมดเวลาที่à¸à¸³à¸«à¸™à¸”สำหรับสคริปต์à¸à¹ˆà¸­à¸™à¸—ี่จะสำเร็จ คุณต้องไปทำà¸à¸²à¸£à¹à¸šà¹ˆà¸‡à¸‚้อมูลให้เล็à¸à¸¥à¸‡à¹€à¸žà¸·à¹ˆà¸­à¸à¸²à¸£à¸„ืนสภาพทีละส่วน';
-$lang['revstop']               = 'à¸à¸£à¸°à¸šà¸§à¸™à¸à¸²à¸£à¸„ืนสภาพสำเร็จเรียบร้อย';
-$lang['note1']                 = 'คำเตือน: à¸à¸²à¸£à¸„้นนี้นับตัวพิมพ์ใหà¸à¹ˆà¹€à¸¥à¹‡à¸ (case sensitive)';
-$lang['note2']                 = 'คำเตือน: เพจจะถูà¸à¸„ืนสภาพไปยังรุ่นล่าสุดที่ไม่มีประโยคสà¹à¸›à¸¡à¸™à¸µà¹‰ <i>%s</i>.';
diff --git a/wiki/lib/plugins/revert/lang/tr/intro.txt b/wiki/lib/plugins/revert/lang/tr/intro.txt
deleted file mode 100644
index ff12399..0000000
--- a/wiki/lib/plugins/revert/lang/tr/intro.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Eskiye Döndürme Yöneticisi ======
-
-Bu sayfa spam saldırılarına karşı otomatik eski haline çevirim yapmanızı sağlar. Spam içerikli sayfayı bulmak için bir anahtar kelime girin (mesela spam URLsi), daha sonra spame maruz kalan sayfalar olduğundan emin olup eski haline çevirin.
\ No newline at end of file
diff --git a/wiki/lib/plugins/revert/lang/tr/lang.php b/wiki/lib/plugins/revert/lang/tr/lang.php
deleted file mode 100644
index 52d28c6..0000000
--- a/wiki/lib/plugins/revert/lang/tr/lang.php
+++ /dev/null
@@ -1,20 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author Aydın Coşkuner <aydinweb@gmail.com>
- * @author Cihan Kahveci <kahvecicihan@gmail.com>
- * @author Yavuz Selim <yavuzselim@gmail.com>
- * @author Caleb Maclennan <caleb@alerque.com>
- * @author farukerdemoncel@gmail.com
- */
-$lang['menu']                  = 'Eskiye Döndürme';
-$lang['filter']                = 'Spam bulunan sayfaları ara';
-$lang['revert']                = 'Seçili sayfaları eskiye döndür';
-$lang['reverted']              = '%s  %s sürümüne geri çevrildi.  ';
-$lang['removed']               = '%s kaldırıldı';
-$lang['revstart']              = 'Eskiye döndürme işlemi başlatıldı. Bu işlem uzun sürebilir. Eğer script işlemi tamamlayamadan zaman aşımına uğrarsa küçük parçalar halinde işlemi uygulayın.';
-$lang['revstop']               = 'Eskiye döndürme işlemi başarıyla tamamlandı.';
-$lang['note1']                 = 'Not: bu aramada küçük harf büyük harf ayrımı vardır.';
-$lang['note2']                 = 'Not: bu sayfa <i>%s</i> spam kelimelerini içermeyen son haline geri çevirilecektir.';
diff --git a/wiki/lib/plugins/revert/lang/uk/intro.txt b/wiki/lib/plugins/revert/lang/uk/intro.txt
deleted file mode 100644
index 7bf5dfc..0000000
--- a/wiki/lib/plugins/revert/lang/uk/intro.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== Менеджер Ð²Ñ–Ð´Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ ======
-
-Ð¦Ñ Ñторінка дозволÑÑ” вам автоматично відновлюватиÑÑ Ð¿Ñ–ÑÐ»Ñ ÑпамерÑьких атак. Ð”Ð»Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ ÑпиÑку зіпÑутих Ñторінок Ñпочатку введіть Ñ€Ñдок (напр. ÑпамерÑьке поÑиланнÑ), а потім підтвердіть, що знайдена Ñторінка дійÑно Ñ” Ñпамом Ñ– відновіть редагуваннÑ.
\ No newline at end of file
diff --git a/wiki/lib/plugins/revert/lang/uk/lang.php b/wiki/lib/plugins/revert/lang/uk/lang.php
deleted file mode 100644
index f56c0eb..0000000
--- a/wiki/lib/plugins/revert/lang/uk/lang.php
+++ /dev/null
@@ -1,17 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author serg_stetsuk <serg_stetsuk@ukr.net>
- * @author Oleksandr Kunytsia <okunia@gmail.com>
- */
-$lang['menu']                  = 'Менеджер відновленнÑ';
-$lang['filter']                = 'Пошук Ñпамних Ñторінок';
-$lang['revert']                = 'Відновити обрані Ñторінки';
-$lang['reverted']              = '%s відновлено до верÑÑ–Ñ— %s';
-$lang['removed']               = '%s вилучено';
-$lang['revstart']              = 'Розпочато Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð²Ñ–Ð´Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ. Це може зайнÑти багато чаÑу. Якщо Ñкрипт не закінчує роботу до таймауту, необхідно відновлювати меншими чаÑтинами.';
-$lang['revstop']               = 'ÐŸÑ€Ð¾Ñ†ÐµÑ Ð²Ñ–Ð´Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ ÑƒÑпішно закінчено.';
-$lang['note1']                 = 'Увага: пошук залежить від регіÑтру Ñимволів';
-$lang['note2']                 = 'Увага: Ñторінку буде відновлено до оÑтанньої верÑÑ–Ñ—, Ñка не міÑтить ÑпамерÑького терміну <i>%s</i>.';
diff --git a/wiki/lib/plugins/revert/lang/zh-tw/intro.txt b/wiki/lib/plugins/revert/lang/zh-tw/intro.txt
deleted file mode 100644
index b6da47e..0000000
--- a/wiki/lib/plugins/revert/lang/zh-tw/intro.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== 還原管ç†å™¨ ======
-
-本é é¢èƒ½å¹«åŠ©æ‚¨è‡ªå‹•é‚„åŽŸé­åžƒåœ¾è¨Šæ¯æ”»æ“Šçš„é é¢ã€‚先輸入關éµå­—詞,æœå°‹åŒ…å«åžƒåœ¾è¨Šæ¯çš„é é¢ï¼ˆä¾‹å¦‚垃圾訊æ¯çš„ URLï¼‰ï¼Œç¢ºèªæ‰¾åˆ°çš„é é¢ç¢ºå¯¦åŒ…å«åžƒåœ¾è¨Šæ¯ï¼Œå†å°‡å®ƒå€‘還原。
\ No newline at end of file
diff --git a/wiki/lib/plugins/revert/lang/zh-tw/lang.php b/wiki/lib/plugins/revert/lang/zh-tw/lang.php
deleted file mode 100644
index 4ff1d10..0000000
--- a/wiki/lib/plugins/revert/lang/zh-tw/lang.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author Li-Jiun Huang <ljhuang.tw@gmail.com>
- * @author http://www.chinese-tools.com/tools/converter-simptrad.html
- * @author Wayne San <waynesan@zerozone.tw>
- * @author Li-Jiun Huang <ljhuang.tw@gmai.com>
- * @author Cheng-Wei Chien <e.cwchien@gmail.com>
- * @author Danny Lin <danny0838@pchome.com.tw>
- * @author Shuo-Ting Jian <shoting@gmail.com>
- * @author syaoranhinata@gmail.com
- * @author Ichirou Uchiki <syaoranhinata@gmail.com>
- */
-$lang['menu']                  = '還原管ç†';
-$lang['filter']                = 'æœç´¢åŒ…å«åžƒåœ¾è¨Šæ¯çš„é é¢';
-$lang['revert']                = '還原é¸å–çš„é é¢';
-$lang['reverted']              = '%s 已還原æˆç‰ˆæœ¬ %s';
-$lang['removed']               = '%s 已移除';
-$lang['revstart']              = '已開始還原æ“作。有å¯èƒ½éœ€è¦å¾ˆé•·æ™‚間。如果程å¼åŸ·è¡Œé€¾æ™‚,請嘗試分次還原少é‡å…§å®¹ã€‚';
-$lang['revstop']               = '還原程åºå·²å®Œæˆã€‚';
-$lang['note1']                 = '注æ„:æœå°‹å€åˆ†å¤§å°å¯«';
-$lang['note2']                 = '注æ„:我們將把此é é¢é‚„原作最後一個ä¸å«åžƒåœ¾è¨Šæ¯ <i>%s</i> 的版本。';
diff --git a/wiki/lib/plugins/revert/lang/zh/intro.txt b/wiki/lib/plugins/revert/lang/zh/intro.txt
deleted file mode 100644
index c697f8a..0000000
--- a/wiki/lib/plugins/revert/lang/zh/intro.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-====== 还原管ç†å™¨ ======
-
-该页é¢èƒ½å¸®åŠ©æ‚¨çš„é¡µé¢ä»Žåžƒåœ¾ä¿¡æ¯çš„æ”»å‡»ä¸­è‡ªåŠ¨è¿˜åŽŸè¿‡æ¥ã€‚ è¯·å…ˆè¾“å…¥å…³é”®è¯æœç´¢åŒ…å«åžƒåœ¾ä¿¡æ¯çš„页é¢ï¼ˆå¦‚æŸä¸ªåžƒåœ¾ä¿¡æ¯çš„ URL),然åŽè¯·ç¡®å®šæœç´¢ç»“果的确包å«åžƒåœ¾ä¿¡æ¯ï¼Œå¹¶å°†å…¶è¿˜åŽŸè‡³å…ˆå‰çš„修订版。
diff --git a/wiki/lib/plugins/revert/lang/zh/lang.php b/wiki/lib/plugins/revert/lang/zh/lang.php
deleted file mode 100644
index 60a7ba4..0000000
--- a/wiki/lib/plugins/revert/lang/zh/lang.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author ZDYX <zhangduyixiong@gmail.com>
- * @author http://www.chinese-tools.com/tools/converter-tradsimp.html
- * @author Simon zhan <simonzhan@21cn.com>
- * @author ben <ben@livetom.com>
- * @author lainme <lainme993@gmail.com>
- * @author caii <zhoucaiqi@gmail.com>
- * @author Hiphen Lee <jacob.b.leung@gmail.com>
- * @author Shuo-Ting Jian <shoting@gmail.com>
- */
-$lang['menu']                  = '还原管ç†å™¨';
-$lang['filter']                = 'æœç´¢åŒ…å«åžƒåœ¾ä¿¡æ¯çš„页é¢';
-$lang['revert']                = '还原选中的页é¢';
-$lang['reverted']              = '%s 还原至修订版 %s';
-$lang['removed']               = '%s 已移除';
-$lang['revstart']              = '已开始还原æ“作。有å¯èƒ½éœ€è¦å¾ˆé•¿æ—¶é—´ã€‚如果计时器在还原æ“作完æˆå‰åœæ­¢äº†ï¼Œè¯·å°è¯•还原较少的内容。';
-$lang['revstop']               = '还原æ“作æˆåŠŸå®Œæˆã€‚';
-$lang['note1']                 = '请注æ„:本次æœç´¢åŒºåˆ†å¤§å°å†™';
-$lang['note2']                 = '请注æ„:本页é¢å°†è¢«è¿˜åŽŸè‡³ä¸åŒ…å«ç»™å®šåžƒåœ¾ä¿¡æ¯ <i>%s</i> 的最近的修订版。';
diff --git a/wiki/lib/plugins/revert/plugin.info.txt b/wiki/lib/plugins/revert/plugin.info.txt
deleted file mode 100644
index bba939d..0000000
--- a/wiki/lib/plugins/revert/plugin.info.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-base   revert
-author Andreas Gohr
-email  andi@splitbrain.org
-date   2015-07-15
-name   Revert Manager
-desc   Allows you to mass revert recent edits to remove Spam or vandalism
-url    http://dokuwiki.org/plugin:revert
diff --git a/wiki/lib/plugins/safefnrecode/action.php b/wiki/lib/plugins/safefnrecode/action.php
deleted file mode 100644
index 9127f8d..0000000
--- a/wiki/lib/plugins/safefnrecode/action.php
+++ /dev/null
@@ -1,68 +0,0 @@
-<?php
-/**
- * DokuWiki Plugin safefnrecode (Action Component)
- *
- * @license GPL 2 http://www.gnu.org/licenses/gpl-2.0.html
- * @author  Andreas Gohr <andi@splitbrain.org>
- */
-
-// must be run within Dokuwiki
-if (!defined('DOKU_INC')) die();
-
-require_once DOKU_PLUGIN.'action.php';
-
-class action_plugin_safefnrecode extends DokuWiki_Action_Plugin {
-
-    public function register(Doku_Event_Handler $controller) {
-
-        $controller->register_hook('INDEXER_TASKS_RUN', 'BEFORE', $this, 'handle_indexer_tasks_run');
-
-    }
-
-    public function handle_indexer_tasks_run(Doku_Event &$event, $param) {
-        global $conf;
-        if($conf['fnencode'] != 'safe') return;
-
-        if(!file_exists($conf['datadir'].'_safefn.recoded')){
-            $this->recode($conf['datadir']);
-            touch($conf['datadir'].'_safefn.recoded');
-        }
-
-        if(!file_exists($conf['olddir'].'_safefn.recoded')){
-            $this->recode($conf['olddir']);
-            touch($conf['olddir'].'_safefn.recoded');
-        }
-
-        if(!file_exists($conf['metadir'].'_safefn.recoded')){
-            $this->recode($conf['metadir']);
-            touch($conf['metadir'].'_safefn.recoded');
-        }
-
-        if(!file_exists($conf['mediadir'].'_safefn.recoded')){
-            $this->recode($conf['mediadir']);
-            touch($conf['mediadir'].'_safefn.recoded');
-        }
-
-    }
-
-    /**
-     * Recursive function to rename all safe encoded files to use the new
-     * square bracket post indicator
-     */
-    private function recode($dir){
-        $dh = opendir($dir);
-        if(!$dh) return;
-        while (($file = readdir($dh)) !== false) {
-            if($file == '.' || $file == '..') continue;           # cur and upper dir
-            if(is_dir("$dir/$file")) $this->recode("$dir/$file"); #recurse
-            if(strpos($file,'%') === false) continue;             # no encoding used
-            $new = preg_replace('/(%[^\]]*?)\./','\1]',$file);    # new post indicator
-            if(preg_match('/%[^\]]+$/',$new)) $new .= ']';        # fix end FS#2122
-            rename("$dir/$file","$dir/$new");                     # rename it
-        }
-        closedir($dh);
-    }
-
-}
-
-// vim:ts=4:sw=4:et:
diff --git a/wiki/lib/plugins/safefnrecode/plugin.info.txt b/wiki/lib/plugins/safefnrecode/plugin.info.txt
deleted file mode 100644
index 3c6249d..0000000
--- a/wiki/lib/plugins/safefnrecode/plugin.info.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-base   safefnrecode
-author Andreas Gohr
-email  andi@splitbrain.org
-date   2012-07-28
-name   safefnrecode plugin
-desc   Changes existing page and foldernames for the change in the safe filename encoding
-url    http://www.dokuwiki.org/plugin:safefnrecode
diff --git a/wiki/lib/plugins/styling/README b/wiki/lib/plugins/styling/README
deleted file mode 100644
index a1a5e89..0000000
--- a/wiki/lib/plugins/styling/README
+++ /dev/null
@@ -1,27 +0,0 @@
-styling Plugin for DokuWiki
-
-Allows to edit style.ini replacements
-
-All documentation for this plugin can be found at
-https://www.dokuwiki.org/plugin:styling
-
-If you install this plugin manually, make sure it is installed in
-lib/plugins/styling/ - if the folder is called different it
-will not work!
-
-Please refer to http://www.dokuwiki.org/plugins for additional info
-on how to install plugins in DokuWiki.
-
-----
-Copyright (C) Andreas Gohr <andi@splitbrain.org>
-
-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; version 2 of the License
-
-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.
-
-See the COPYING file in your DokuWiki folder for details
diff --git a/wiki/lib/plugins/styling/action.php b/wiki/lib/plugins/styling/action.php
deleted file mode 100644
index 896e14b..0000000
--- a/wiki/lib/plugins/styling/action.php
+++ /dev/null
@@ -1,60 +0,0 @@
-<?php
-/**
- * DokuWiki Plugin styling (Action Component)
- *
- * @license GPL 2 http://www.gnu.org/licenses/gpl-2.0.html
- * @author  Andreas Gohr <andi@splitbrain.org>
- */
-
-// must be run within Dokuwiki
-if(!defined('DOKU_INC')) die();
-
-/**
- * Class action_plugin_styling
- *
- * This handles all the save actions and loading the interface
- *
- * All this usually would be done within an admin plugin, but we want to have this available outside
- * the admin interface using our floating dialog.
- */
-class action_plugin_styling extends DokuWiki_Action_Plugin {
-
-    /**
-     * Registers a callback functions
-     *
-     * @param Doku_Event_Handler $controller DokuWiki's event controller object
-     * @return void
-     */
-    public function register(Doku_Event_Handler $controller) {
-        $controller->register_hook('TPL_METAHEADER_OUTPUT', 'BEFORE', $this, 'handle_header');
-    }
-
-    /**
-     * Adds the preview parameter to the stylesheet loading in non-js mode
-     *
-     * @param Doku_Event $event  event object by reference
-     * @param mixed      $param  [the parameters passed as fifth argument to register_hook() when this
-     *                           handler was registered]
-     * @return void
-     */
-    public function handle_header(Doku_Event &$event, $param) {
-        global $ACT;
-        global $INPUT;
-        if($ACT != 'admin' || $INPUT->str('page') != 'styling') return;
-        if(!auth_isadmin()) return;
-
-        // set preview
-        $len = count($event->data['link']);
-        for($i = 0; $i < $len; $i++) {
-            if(
-                $event->data['link'][$i]['rel'] == 'stylesheet' &&
-                strpos($event->data['link'][$i]['href'], 'lib/exe/css.php') !== false
-            ) {
-                $event->data['link'][$i]['href'] .= '&preview=1&tseed='.time();
-            }
-        }
-    }
-
-}
-
-// vim:ts=4:sw=4:et:
diff --git a/wiki/lib/plugins/styling/admin.php b/wiki/lib/plugins/styling/admin.php
deleted file mode 100644
index 055ac22..0000000
--- a/wiki/lib/plugins/styling/admin.php
+++ /dev/null
@@ -1,211 +0,0 @@
-<?php
-/**
- * DokuWiki Plugin styling (Admin Component)
- *
- * @license GPL 2 http://www.gnu.org/licenses/gpl-2.0.html
- * @author  Andreas Gohr <andi@splitbrain.org>
- */
-
-// must be run within Dokuwiki
-if(!defined('DOKU_INC')) die();
-
-class admin_plugin_styling extends DokuWiki_Admin_Plugin {
-
-    public $ispopup = false;
-
-    /**
-     * @return int sort number in admin menu
-     */
-    public function getMenuSort() {
-        return 1000;
-    }
-
-    /**
-     * @return bool true if only access for superuser, false is for superusers and moderators
-     */
-    public function forAdminOnly() {
-        return true;
-    }
-
-    /**
-     * handle the different actions (also called from ajax)
-     */
-    public function handle() {
-        global $INPUT;
-        $run = $INPUT->extract('run')->str('run');
-        if(!$run) return;
-        $run = "run_$run";
-        $this->$run();
-    }
-
-    /**
-     * Render HTML output, e.g. helpful text and a form
-     */
-    public function html() {
-        $class = 'nopopup';
-        if($this->ispopup) $class = 'ispopup page';
-
-        echo '<div id="plugin__styling" class="'.$class.'">';
-        ptln('<h1>'.$this->getLang('menu').'</h1>');
-        $this->form();
-        echo '</div>';
-    }
-
-    /**
-     * Create the actual editing form
-     */
-    public function form() {
-        global $conf;
-        global $ID;
-
-        $styleUtil = new \dokuwiki\StyleUtils();
-        $styleini     = $styleUtil->cssStyleini($conf['template'], true);
-        $replacements = $styleini['replacements'];
-
-        if($this->ispopup) {
-            $target = DOKU_BASE.'lib/plugins/styling/popup.php';
-        } else {
-            $target = wl($ID, array('do' => 'admin', 'page' => 'styling'));
-        }
-
-        if(empty($replacements)) {
-            echo '<p class="error">'.$this->getLang('error').'</p>';
-        } else {
-            echo $this->locale_xhtml('intro');
-
-            echo '<form class="styling" method="post" action="'.$target.'">';
-
-            echo '<table><tbody>';
-            foreach($replacements as $key => $value) {
-                $name = tpl_getLang($key);
-                if(empty($name)) $name = $this->getLang($key);
-                if(empty($name)) $name = $key;
-
-                echo '<tr>';
-                echo '<td><label for="tpl__'.hsc($key).'">'.$name.'</label></td>';
-                echo '<td><input type="text" name="tpl['.hsc($key).']" id="tpl__'.hsc($key).'" value="'.hsc($value).'" '.$this->colorClass($key).' dir="ltr" /></td>';
-                echo '</tr>';
-            }
-            echo '</tbody></table>';
-
-            echo '<p>';
-            echo '<button type="submit" name="run[preview]" class="btn_preview primary">'.$this->getLang('btn_preview').'</button> ';
-            echo '<button type="submit" name="run[reset]">'.$this->getLang('btn_reset').'</button>'; #FIXME only if preview.ini exists
-            echo '</p>';
-
-            echo '<p>';
-            echo '<button type="submit" name="run[save]" class="primary">'.$this->getLang('btn_save').'</button>';
-            echo '</p>';
-
-            echo '<p>';
-            echo '<button type="submit" name="run[revert]">'.$this->getLang('btn_revert').'</button>'; #FIXME only if local.ini exists
-            echo '</p>';
-
-            echo '</form>';
-
-            echo tpl_locale_xhtml('style');
-
-        }
-    }
-
-    /**
-     * set the color class attribute
-     */
-    protected function colorClass($key) {
-        static $colors = array(
-            'text',
-            'background',
-            'text_alt',
-            'background_alt',
-            'text_neu',
-            'background_neu',
-            'border',
-            'highlight',
-            'background_site',
-            'link',
-            'existing',
-            'missing',
-        );
-
-        if(preg_match('/colou?r/', $key) || in_array(trim($key,'_'), $colors)) {
-            return 'class="color"';
-        } else {
-            return '';
-        }
-    }
-
-    /**
-     * saves the preview.ini (alos called from ajax directly)
-     */
-    public function run_preview() {
-        global $conf;
-        $ini = $conf['cachedir'].'/preview.ini';
-        io_saveFile($ini, $this->makeini());
-    }
-
-    /**
-     * deletes the preview.ini
-     */
-    protected function run_reset() {
-        global $conf;
-        $ini = $conf['cachedir'].'/preview.ini';
-        io_saveFile($ini, '');
-    }
-
-    /**
-     * deletes the local style.ini replacements
-     */
-    protected function run_revert() {
-        $this->replaceini('');
-        $this->run_reset();
-    }
-
-    /**
-     * save the local style.ini replacements
-     */
-    protected function run_save() {
-        $this->replaceini($this->makeini());
-        $this->run_reset();
-    }
-
-    /**
-     * create the replacement part of a style.ini from submitted data
-     *
-     * @return string
-     */
-    protected function makeini() {
-        global $INPUT;
-
-        $ini = "[replacements]\n";
-        $ini .= ";These overwrites have been generated from the Template styling Admin interface\n";
-        $ini .= ";Any values in this section will be overwritten by that tool again\n";
-        foreach($INPUT->arr('tpl') as $key => $val) {
-            $ini .= $key.' = "'.addslashes($val).'"'."\n";
-        }
-
-        return $ini;
-    }
-
-    /**
-     * replaces the replacement parts in the local ini
-     *
-     * @param string $new the new ini contents
-     */
-    protected function replaceini($new) {
-        global $conf;
-        $ini = DOKU_CONF."tpl/".$conf['template']."/style.ini";
-        if(file_exists($ini)) {
-            $old = io_readFile($ini);
-            $old = preg_replace('/\[replacements\]\n.*?(\n\[.*]|$)/s', '\\1', $old);
-            $old = trim($old);
-        } else {
-            $old = '';
-        }
-
-        io_makeFileDir($ini);
-        io_saveFile($ini, "$old\n\n$new");
-    }
-
-}
-
-// vim:ts=4:sw=4:et:
diff --git a/wiki/lib/plugins/styling/admin.svg b/wiki/lib/plugins/styling/admin.svg
deleted file mode 100644
index 5d73870..0000000
--- a/wiki/lib/plugins/styling/admin.svg
+++ /dev/null
@@ -1 +0,0 @@
-<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/wiki/lib/plugins/styling/iris.js b/wiki/lib/plugins/styling/iris.js
deleted file mode 100644
index 4eda502..0000000
--- a/wiki/lib/plugins/styling/iris.js
+++ /dev/null
@@ -1,1488 +0,0 @@
-/*! Iris Color Picker - v1.0.7 - 2014-11-28
-* https://github.com/Automattic/Iris
-* Copyright (c) 2014 Matt Wiebe; Licensed GPLv2 */
-(function( $, undef ){
-	var _html, nonGradientIE, gradientType, vendorPrefixes, _css, Iris, UA, isIE, IEVersion;
-
-	_html = '<div class="iris-picker"><div class="iris-picker-inner"><div class="iris-square"><a class="iris-square-value" href="#"><span class="iris-square-handle ui-slider-handle"></span></a><div class="iris-square-inner iris-square-horiz"></div><div class="iris-square-inner iris-square-vert"></div></div><div class="iris-slider iris-strip"><div class="iris-slider-offset"></div></div></div></div>';
-	_css = '.iris-picker{display:block;position:relative}.iris-picker,.iris-picker *{-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input+.iris-picker{margin-top:4px}.iris-error{background-color:#ffafaf}.iris-border{border-radius:3px;border:1px solid #aaa;width:200px;background-color:#fff}.iris-picker-inner{position:absolute;top:0;right:0;left:0;bottom:0}.iris-border .iris-picker-inner{top:10px;right:10px;left:10px;bottom:10px}.iris-picker .iris-square-inner{position:absolute;left:0;right:0;top:0;bottom:0}.iris-picker .iris-square,.iris-picker .iris-slider,.iris-picker .iris-square-inner,.iris-picker .iris-palette{border-radius:3px;box-shadow:inset 0 0 5px rgba(0,0,0,.4);height:100%;width:12.5%;float:left;margin-right:5%}.iris-picker .iris-square{width:76%;margin-right:10%;position:relative}.iris-picker .iris-square-inner{width:auto;margin:0}.iris-ie-9 .iris-square,.iris-ie-9 .iris-slider,.iris-ie-9 .iris-square-inner,.iris-ie-9 .iris-palette{box-shadow:none;border-radius:0}.iris-ie-9 .iris-square,.iris-ie-9 .iris-slider,.iris-ie-9 .iris-palette{outline:1px solid rgba(0,0,0,.1)}.iris-ie-lt9 .iris-square,.iris-ie-lt9 .iris-slider,.iris-ie-lt9 .iris-square-inner,.iris-ie-lt9 .iris-palette{outline:1px solid #aaa}.iris-ie-lt9 .iris-square .ui-slider-handle{outline:1px solid #aaa;background-color:#fff;-ms-filter:"alpha(Opacity=30)"}.iris-ie-lt9 .iris-square .iris-square-handle{background:0;border:3px solid #fff;-ms-filter:"alpha(Opacity=50)"}.iris-picker .iris-strip{margin-right:0;position:relative}.iris-picker .iris-strip .ui-slider-handle{position:absolute;background:0;margin:0;right:-3px;left:-3px;border:4px solid #aaa;border-width:4px 3px;width:auto;height:6px;border-radius:4px;box-shadow:0 1px 2px rgba(0,0,0,.2);opacity:.9;z-index:5;cursor:ns-resize}.iris-strip .ui-slider-handle:before{content:" ";position:absolute;left:-2px;right:-2px;top:-3px;bottom:-3px;border:2px solid #fff;border-radius:3px}.iris-picker .iris-slider-offset{position:absolute;top:11px;left:0;right:0;bottom:-3px;width:auto;height:auto;background:transparent;border:0;border-radius:0}.iris-picker .iris-square-handle{background:transparent;border:5px solid #aaa;border-radius:50%;border-color:rgba(128,128,128,.5);box-shadow:none;width:12px;height:12px;position:absolute;left:-10px;top:-10px;cursor:move;opacity:1;z-index:10}.iris-picker .ui-state-focus .iris-square-handle{opacity:.8}.iris-picker .iris-square-handle:hover{border-color:#999}.iris-picker .iris-square-value:focus .iris-square-handle{box-shadow:0 0 2px rgba(0,0,0,.75);opacity:.8}.iris-picker .iris-square-handle:hover::after{border-color:#fff}.iris-picker .iris-square-handle::after{position:absolute;bottom:-4px;right:-4px;left:-4px;top:-4px;border:3px solid #f9f9f9;border-color:rgba(255,255,255,.8);border-radius:50%;content:" "}.iris-picker .iris-square-value{width:8px;height:8px;position:absolute}.iris-ie-lt9 .iris-square-value,.iris-mozilla .iris-square-value{width:1px;height:1px}.iris-palette-container{position:absolute;bottom:0;left:0;margin:0;padding:0}.iris-border .iris-palette-container{left:10px;bottom:10px}.iris-picker .iris-palette{margin:0;cursor:pointer}.iris-square-handle,.ui-slider-handle{border:0;outline:0}';
-
-	// Even IE9 dosen't support gradients. Elaborate sigh.
-	UA = navigator.userAgent.toLowerCase();
-	isIE = navigator.appName === 'Microsoft Internet Explorer';
-	IEVersion = isIE ? parseFloat( UA.match( /msie ([0-9]{1,}[\.0-9]{0,})/ )[1] ) : 0;
-	nonGradientIE = ( isIE && IEVersion < 10 );
-	gradientType = false;
-
-	// we don't bother with an unprefixed version, as it has a different syntax
-	vendorPrefixes = [ '-moz-', '-webkit-', '-o-', '-ms-' ];
-
-	// Bail for IE <= 7
-	if ( nonGradientIE && IEVersion <= 7 ) {
-		$.fn.iris = $.noop;
-		$.support.iris = false;
-		return;
-	}
-
-	$.support.iris = true;
-
-	function testGradientType() {
-		var el, base,
-			bgImageString = 'backgroundImage';
-
-		if ( nonGradientIE ) {
-			gradientType = 'filter';
-		}
-		else {
-			el = $( '<div id="iris-gradtest" />' );
-			base = 'linear-gradient(top,#fff,#000)';
-			$.each( vendorPrefixes, function( i, val ){
-				el.css( bgImageString, val + base );
-				if ( el.css( bgImageString ).match( 'gradient' ) ) {
-					gradientType = i;
-					return false;
-				}
-			});
-			// check for legacy webkit gradient syntax
-			if ( gradientType === false ) {
-				el.css( 'background', '-webkit-gradient(linear,0% 0%,0% 100%,from(#fff),to(#000))' );
-				if ( el.css( bgImageString ).match( 'gradient' ) ) {
-					gradientType = 'webkit';
-				}
-			}
-			el.remove();
-		}
-
-	}
-
-	/**
-	* Only for CSS3 gradients. oldIE will use a separate function.
-	*
-	* Accepts as many color stops as necessary from 2nd arg on, or 2nd
-	* arg can be an array of color stops
-	*
-	* @param  {string} origin Gradient origin - top or left, defaults to left.
-	* @return {string}        Appropriate CSS3 gradient string for use in
-	*/
-	function createGradient( origin, stops ) {
-		origin = ( origin === 'top' ) ? 'top' : 'left';
-		stops = $.isArray( stops ) ? stops : Array.prototype.slice.call( arguments, 1 );
-		if ( gradientType === 'webkit' ) {
-			return legacyWebkitGradient( origin, stops );
-		} else {
-			return vendorPrefixes[ gradientType ] + 'linear-gradient(' + origin + ', ' + stops.join(', ') + ')';
-		}
-	}
-
-	/**
-	* Stupid gradients for a stupid browser.
-	*/
-	function stupidIEGradient( origin, stops ) {
-		var type, self, lastIndex, filter, startPosProp, endPosProp, dimensionProp, template, html;
-
-		origin = ( origin === 'top' ) ? 'top' : 'left';
-		stops = $.isArray( stops ) ? stops : Array.prototype.slice.call( arguments, 1 );
-		// 8 hex: AARRGGBB
-		// GradientType: 0 vertical, 1 horizontal
-		type = ( origin === 'top' ) ? 0 : 1;
-		self = $( this );
-		lastIndex = stops.length - 1;
-		filter = 'filter';
-		startPosProp = ( type === 1 ) ? 'left' : 'top';
-		endPosProp = ( type === 1 ) ? 'right' : 'bottom';
-		dimensionProp = ( type === 1 ) ? 'height' : 'width';
-		template = '<div class="iris-ie-gradient-shim" style="position:absolute;' + dimensionProp + ':100%;' + startPosProp + ':%start%;' + endPosProp + ':%end%;' + filter + ':%filter%;" data-color:"%color%"></div>';
-		html = '';
-		// need a positioning context
-		if ( self.css('position') === 'static' ) {
-			self.css( {position: 'relative' } );
-		}
-
-		stops = fillColorStops( stops );
-		$.each(stops, function( i, startColor ) {
-			var endColor, endStop, filterVal;
-
-			// we want two at a time. if we're on the last pair, bail.
-			if ( i === lastIndex ) {
-				return false;
-			}
-
-			endColor = stops[ i + 1 ];
-			//if our pairs are at the same color stop, moving along.
-			if ( startColor.stop === endColor.stop ) {
-				return;
-			}
-
-			endStop = 100 - parseFloat( endColor.stop ) + '%';
-			startColor.octoHex = new Color( startColor.color ).toIEOctoHex();
-			endColor.octoHex = new Color( endColor.color ).toIEOctoHex();
-
-			filterVal = 'progid:DXImageTransform.Microsoft.Gradient(GradientType=' + type + ', StartColorStr=\'' + startColor.octoHex + '\', EndColorStr=\'' + endColor.octoHex + '\')';
-			html += template.replace( '%start%', startColor.stop ).replace( '%end%', endStop ).replace( '%filter%', filterVal );
-		});
-		self.find( '.iris-ie-gradient-shim' ).remove();
-		$( html ).prependTo( self );
-	}
-
-	function legacyWebkitGradient( origin, colorList ) {
-		var stops = [];
-		origin = ( origin === 'top' ) ? '0% 0%,0% 100%,' : '0% 100%,100% 100%,';
-		colorList = fillColorStops( colorList );
-		$.each( colorList, function( i, val ){
-			stops.push( 'color-stop(' + ( parseFloat( val.stop ) / 100 ) + ', ' + val.color + ')' );
-		});
-		return '-webkit-gradient(linear,' + origin + stops.join(',') + ')';
-	}
-
-	function fillColorStops( colorList ) {
-		var colors = [],
-			percs = [],
-			newColorList = [],
-			lastIndex = colorList.length - 1;
-
-		$.each( colorList, function( index, val ) {
-			var color = val,
-				perc = false,
-				match = val.match( /1?[0-9]{1,2}%$/ );
-
-			if ( match ) {
-				color = val.replace( /\s?1?[0-9]{1,2}%$/, '' );
-				perc = match.shift();
-			}
-			colors.push( color );
-			percs.push( perc );
-		});
-
-		// back fill first and last
-		if ( percs[0] === false ) {
-			percs[0] = '0%';
-		}
-
-		if ( percs[lastIndex] === false ) {
-			percs[lastIndex] = '100%';
-		}
-
-		percs = backFillColorStops( percs );
-
-		$.each( percs, function( i ){
-			newColorList[i] = { color: colors[i], stop: percs[i] };
-		});
-		return newColorList;
-	}
-
-	function backFillColorStops( stops ) {
-		var first = 0,
-			last = stops.length - 1,
-			i = 0,
-			foundFirst = false,
-			incr,
-			steps,
-			step,
-			firstVal;
-
-		if ( stops.length <= 2 || $.inArray( false, stops ) < 0 ) {
-			return stops;
-		}
-		while ( i < stops.length - 1 ) {
-			if ( ! foundFirst && stops[i] === false ) {
-				first = i - 1;
-				foundFirst = true;
-			} else if ( foundFirst && stops[i] !== false ) {
-				last = i;
-				i = stops.length;
-			}
-			i++;
-		}
-		steps = last - first;
-		firstVal = parseInt( stops[first].replace('%'), 10 );
-		incr = ( parseFloat( stops[last].replace('%') ) - firstVal ) / steps;
-		i = first + 1;
-		step = 1;
-		while ( i < last ) {
-			stops[i] = ( firstVal + ( step * incr ) ) + '%';
-			step++;
-			i++;
-		}
-		return backFillColorStops( stops );
-	}
-
-	$.fn.gradient = function() {
-		var args = arguments;
-		return this.each( function() {
-			// this'll be oldishIE
-			if ( nonGradientIE ) {
-				stupidIEGradient.apply( this, args );
-			} else {
-				// new hotness
-				$( this ).css( 'backgroundImage', createGradient.apply( this, args ) );
-			}
-		});
-	};
-
-	$.fn.raninbowGradient = function( origin, args ) {
-		var opts, template, i, steps;
-
-		origin = origin || 'top';
-		opts = $.extend( {}, { s: 100, l: 50 }, args );
-		template = 'hsl(%h%,' + opts.s + '%,' + opts.l + '%)';
-		i = 0;
-		steps = [];
-		while ( i <= 360 ) {
-			steps.push( template.replace('%h%', i) );
-			i += 30;
-		}
-		return this.each(function() {
-			$(this).gradient( origin, steps );
-		});
-	};
-
-	// the colorpicker widget def.
-	Iris = {
-		options: {
-			color: false,
-			mode: 'hsl',
-			controls: {
-				horiz: 's', // horizontal defaults to saturation
-				vert: 'l', // vertical defaults to lightness
-				strip: 'h' // right strip defaults to hue
-			},
-			hide: true, // hide the color picker by default
-			border: true, // draw a border around the collection of UI elements
-			target: false, // a DOM element / jQuery selector that the element will be appended within. Only used when called on an input.
-			width: 200, // the width of the collection of UI elements
-			palettes: false // show a palette of basic colors beneath the square.
-		},
-		_color: '',
-		_palettes: [ '#000', '#fff', '#d33', '#d93', '#ee2', '#81d742', '#1e73be', '#8224e3' ],
-		_inited: false,
-		_defaultHSLControls: {
-			horiz: 's',
-			vert: 'l',
-			strip: 'h'
-		},
-		_defaultHSVControls: {
-			horiz: 'h',
-			vert: 'v',
-			strip: 's'
-		},
-		_scale: {
-			h: 360,
-			s: 100,
-			l: 100,
-			v: 100
-		},
-		_create: function() {
-			var self = this,
-				el = self.element,
-				color = self.options.color || el.val();
-
-			if ( gradientType === false ) {
-				testGradientType();
-			}
-
-			if ( el.is( 'input' ) ) {
-				if ( self.options.target ) {
-					self.picker = $( _html ).appendTo( self.options.target );
-				} else {
-					self.picker = $( _html ).insertAfter( el );
-				}
-
-				self._addInputListeners( el );
-			} else {
-				el.append( _html );
-				self.picker = el.find( '.iris-picker' );
-			}
-
-			// Browsers / Versions
-			// Feature detection doesn't work for these, and $.browser is deprecated
-			if ( isIE ) {
-				if ( IEVersion === 9 ) {
-					self.picker.addClass( 'iris-ie-9' );
-				} else if ( IEVersion <= 8 ) {
-					self.picker.addClass( 'iris-ie-lt9' );
-				}
-			} else if ( UA.indexOf('compatible') < 0 && UA.indexOf('khtml') < 0 && UA.match( /mozilla/ ) ) {
-				self.picker.addClass( 'iris-mozilla' );
-			}
-
-			if ( self.options.palettes ) {
-				self._addPalettes();
-			}
-
-			self._color = new Color( color ).setHSpace( self.options.mode );
-			self.options.color = self._color.toString();
-
-			// prep 'em for re-use
-			self.controls = {
-				square:      self.picker.find( '.iris-square' ),
-				squareDrag:  self.picker.find( '.iris-square-value' ),
-				horiz:       self.picker.find( '.iris-square-horiz' ),
-				vert:        self.picker.find( '.iris-square-vert' ),
-				strip:       self.picker.find( '.iris-strip' ),
-				stripSlider: self.picker.find( '.iris-strip .iris-slider-offset' )
-			};
-
-			// small sanity check - if we chose hsv, change default controls away from hsl
-			if ( self.options.mode === 'hsv' && self._has('l', self.options.controls) ) {
-				self.options.controls = self._defaultHSVControls;
-			} else if ( self.options.mode === 'hsl' && self._has('v', self.options.controls) ) {
-				self.options.controls = self._defaultHSLControls;
-			}
-
-			// store it. HSL gets squirrely
-			self.hue = self._color.h();
-
-			if ( self.options.hide ) {
-				self.picker.hide();
-			}
-
-			if ( self.options.border ) {
-				self.picker.addClass( 'iris-border' );
-			}
-
-			self._initControls();
-			self.active = 'external';
-			self._dimensions();
-			self._change();
-		},
-		_has: function(needle, haystack) {
-			var ret = false;
-			$.each(haystack, function(i,v){
-				if ( needle === v ) {
-					ret = true;
-					// exit the loop
-					return false;
-				}
-			});
-			return ret;
-		},
-		_addPalettes: function () {
-			var container = $( '<div class="iris-palette-container" />' ),
-				palette = $( '<a class="iris-palette" tabindex="0" />' ),
-				colors = $.isArray( this.options.palettes ) ? this.options.palettes : this._palettes;
-
-			// do we have an existing container? Empty and reuse it.
-			if ( this.picker.find( '.iris-palette-container' ).length ) {
-				container = this.picker.find( '.iris-palette-container' ).detach().html( '' );
-			}
-
-			$.each(colors, function(index, val) {
-				palette.clone().data( 'color', val )
-					.css( 'backgroundColor', val ).appendTo( container )
-					.height( 10 ).width( 10 );
-			});
-
-			this.picker.append(container);
-		},
-		_paint: function() {
-			var self = this;
-			self._paintDimension( 'top', 'strip' );
-			self._paintDimension( 'top', 'vert' );
-			self._paintDimension( 'left', 'horiz' );
-		},
-		_paintDimension: function( origin, control ) {
-			var self = this,
-				c = self._color,
-				mode = self.options.mode,
-				color = self._getHSpaceColor(),
-				target = self.controls[ control ],
-				controlOpts = self.options.controls,
-				stops;
-
-			// don't paint the active control
-			if ( control === self.active || ( self.active === 'square' && control !== 'strip' ) ) {
-				return;
-			}
-
-			switch ( controlOpts[ control ] ) {
-				case 'h':
-					if ( mode === 'hsv' ) {
-						color = c.clone();
-						switch ( control ) {
-							case 'horiz':
-								color[controlOpts.vert](100);
-								break;
-							case 'vert':
-								color[controlOpts.horiz](100);
-								break;
-							case 'strip':
-								color.setHSpace('hsl');
-								break;
-						}
-						stops = color.toHsl();
-					} else {
-						if ( control === 'strip' ) {
-							stops = { s: color.s, l: color.l };
-						} else {
-							stops = { s: 100, l: color.l };
-						}
-					}
-
-					target.raninbowGradient( origin, stops );
-					break;
-				case 's':
-					if ( mode === 'hsv' ) {
-						if ( control === 'vert' ) {
-							stops = [ c.clone().a(0).s(0).toCSS('rgba'), c.clone().a(1).s(0).toCSS('rgba') ];
-						} else if ( control === 'strip' ) {
-							stops = [ c.clone().s(100).toCSS('hsl'), c.clone().s(0).toCSS('hsl') ];
-						} else if ( control === 'horiz' ) {
-							stops = [ '#fff', 'hsl(' + color.h + ',100%,50%)' ];
-						}
-					} else { // implicit mode === 'hsl'
-						if ( control === 'vert' && self.options.controls.horiz === 'h' ) {
-							stops = ['hsla(0, 0%, ' + color.l + '%, 0)', 'hsla(0, 0%, ' + color.l + '%, 1)'];
-						} else {
-							stops = ['hsl('+ color.h +',0%,50%)', 'hsl(' + color.h + ',100%,50%)'];
-						}
-					}
-
-
-					target.gradient( origin, stops );
-					break;
-				case 'l':
-					if ( control === 'strip' ) {
-						stops = ['hsl(' + color.h + ',100%,100%)', 'hsl(' + color.h + ', ' + color.s + '%,50%)', 'hsl('+ color.h +',100%,0%)'];
-					} else {
-						stops = ['#fff', 'rgba(255,255,255,0) 50%', 'rgba(0,0,0,0) 50%', 'rgba(0,0,0,1)'];
-					}
-					target.gradient( origin, stops );
-					break;
-				case 'v':
-						if ( control === 'strip' ) {
-							stops = [ c.clone().v(100).toCSS(), c.clone().v(0).toCSS() ];
-						} else {
-							stops = ['rgba(0,0,0,0)', '#000'];
-						}
-						target.gradient( origin, stops );
-					break;
-				default:
-					break;
-			}
-		},
-
-		_getHSpaceColor: function() {
-			return ( this.options.mode === 'hsv' ) ? this._color.toHsv() : this._color.toHsl();
-		},
-
-		_dimensions: function( reset ) {
-			// whatever size
-			var self = this,
-				opts = self.options,
-				controls = self.controls,
-				square = controls.square,
-				strip = self.picker.find( '.iris-strip' ),
-				squareWidth = '77.5%',
-				stripWidth = '12%',
-				totalPadding = 20,
-				innerWidth = opts.border ? opts.width - totalPadding : opts.width,
-				controlsHeight,
-				paletteCount = $.isArray( opts.palettes ) ? opts.palettes.length : self._palettes.length,
-				paletteMargin, paletteWidth, paletteContainerWidth;
-
-			if ( reset ) {
-				square.css( 'width', '' );
-				strip.css( 'width', '' );
-				self.picker.css( {width: '', height: ''} );
-			}
-
-			squareWidth = innerWidth * ( parseFloat( squareWidth ) / 100 );
-			stripWidth = innerWidth * ( parseFloat( stripWidth ) / 100 );
-			controlsHeight = opts.border ? squareWidth + totalPadding : squareWidth;
-
-			square.width( squareWidth ).height( squareWidth );
-			strip.height( squareWidth ).width( stripWidth );
-			self.picker.css( { width: opts.width, height: controlsHeight } );
-
-			if ( ! opts.palettes ) {
-				return self.picker.css( 'paddingBottom', '' );
-			}
-
-			// single margin at 2%
-			paletteMargin = squareWidth * 2 / 100;
-			paletteContainerWidth = squareWidth - ( ( paletteCount - 1 ) * paletteMargin );
-			paletteWidth = paletteContainerWidth / paletteCount;
-			self.picker.find('.iris-palette').each( function( i ) {
-				var margin = i === 0 ? 0 : paletteMargin;
-				$( this ).css({
-					width: paletteWidth,
-					height: paletteWidth,
-					marginLeft: margin
-				});
-			});
-			self.picker.css( 'paddingBottom', paletteWidth + paletteMargin );
-			strip.height( paletteWidth + paletteMargin + squareWidth );
-		},
-
-		_addInputListeners: function( input ) {
-			var self = this,
-				debounceTimeout = 100,
-				callback = function( event ){
-					var color = new Color( input.val() ),
-						val = input.val().replace( /^#/, '' );
-
-					input.removeClass( 'iris-error' );
-					// we gave a bad color
-					if ( color.error ) {
-						// don't error on an empty input - we want those allowed
-						if ( val !== '' ) {
-							input.addClass( 'iris-error' );
-						}
-					} else {
-						if ( color.toString() !== self._color.toString() ) {
-							// let's not do this on keyup for hex shortcodes
-							if ( ! ( event.type === 'keyup' && val.match( /^[0-9a-fA-F]{3}$/ ) ) ) {
-								self._setOption( 'color', color.toString() );
-							}
-						}
-					}
-				};
-
-			input.on( 'change', callback ).on( 'keyup', self._debounce( callback, debounceTimeout ) );
-
-			// If we initialized hidden, show on first focus. The rest is up to you.
-			if ( self.options.hide ) {
-				input.one( 'focus', function() {
-					self.show();
-				});
-			}
-		},
-
-		_initControls: function() {
-			var self = this,
-				controls = self.controls,
-				square = controls.square,
-				controlOpts = self.options.controls,
-				stripScale = self._scale[controlOpts.strip];
-
-			controls.stripSlider.slider({
-				orientation: 'vertical',
-				max: stripScale,
-				slide: function( event, ui ) {
-					self.active = 'strip';
-					// "reverse" for hue.
-					if ( controlOpts.strip === 'h' ) {
-						ui.value = stripScale - ui.value;
-					}
-
-					self._color[controlOpts.strip]( ui.value );
-					self._change.apply( self, arguments );
-				}
-			});
-
-			controls.squareDrag.draggable({
-				containment: controls.square.find( '.iris-square-inner' ),
-				zIndex: 1000,
-				cursor: 'move',
-				drag: function( event, ui ) {
-					self._squareDrag( event, ui );
-				},
-				start: function() {
-					square.addClass( 'iris-dragging' );
-					$(this).addClass( 'ui-state-focus' );
-				},
-				stop: function() {
-					square.removeClass( 'iris-dragging' );
-					$(this).removeClass( 'ui-state-focus' );
-				}
-			}).on( 'mousedown mouseup', function( event ) {
-				var focusClass = 'ui-state-focus';
-				event.preventDefault();
-				if (event.type === 'mousedown' ) {
-					self.picker.find( '.' + focusClass ).removeClass( focusClass ).blur();
-					$(this).addClass( focusClass ).focus();
-				} else {
-					$(this).removeClass( focusClass );
-				}
-			}).on( 'keydown', function( event ) {
-				var container = controls.square,
-					draggable = controls.squareDrag,
-					position = draggable.position(),
-					distance = self.options.width / 100; // Distance in pixels the draggable should be moved: 1 "stop"
-
-				// make alt key go "10"
-				if ( event.altKey ) {
-					distance *= 10;
-				}
-
-				// Reposition if one of the directional keys is pressed
-				switch ( event.keyCode ) {
-					case 37: position.left -= distance; break; // Left
-					case 38: position.top  -= distance; break; // Up
-					case 39: position.left += distance; break; // Right
-					case 40: position.top  += distance; break; // Down
-					default: return true; // Exit and bubble
-				}
-
-				// Keep draggable within container
-				position.left = Math.max( 0, Math.min( position.left, container.width() ) );
-				position.top =  Math.max( 0, Math.min( position.top, container.height() ) );
-
-				draggable.css(position);
-				self._squareDrag( event, { position: position });
-				event.preventDefault();
-			});
-
-			// allow clicking on the square to move there and keep dragging
-			square.mousedown( function( event ) {
-				var squareOffset, pos;
-				// only left click
-				if ( event.which !== 1 ) {
-					return;
-				}
-
-				// prevent bubbling from the handle: no infinite loops
-				if ( ! $( event.target ).is( 'div' ) ) {
-					return;
-				}
-
-				squareOffset = self.controls.square.offset();
-				pos = {
-						top: event.pageY - squareOffset.top,
-						left: event.pageX - squareOffset.left
-				};
-				event.preventDefault();
-				self._squareDrag( event, { position: pos } );
-				event.target = self.controls.squareDrag.get(0);
-				self.controls.squareDrag.css( pos ).trigger( event );
-			});
-
-			// palettes
-			if ( self.options.palettes ) {
-				self._paletteListeners();
-			}
-		},
-
-		_paletteListeners: function() {
-			var self = this;
-			self.picker.find('.iris-palette-container').on('click.palette', '.iris-palette', function() {
-				self._color.fromCSS( $(this).data('color') );
-				self.active = 'external';
-				self._change();
-			}).on( 'keydown.palette', '.iris-palette', function( event ) {
-				if ( ! ( event.keyCode === 13 || event.keyCode === 32 ) ) {
-					return true;
-				}
-				event.stopPropagation();
-				$( this ).click();
-			});
-		},
-
-		_squareDrag: function( event, ui ) {
-			var self = this,
-				controlOpts = self.options.controls,
-				dimensions = self._squareDimensions(),
-				vertVal = Math.round( ( dimensions.h - ui.position.top ) / dimensions.h * self._scale[controlOpts.vert] ),
-				horizVal = self._scale[controlOpts.horiz] - Math.round( ( dimensions.w - ui.position.left ) / dimensions.w * self._scale[controlOpts.horiz] );
-
-			self._color[controlOpts.horiz]( horizVal )[controlOpts.vert]( vertVal );
-
-			self.active = 'square';
-			self._change.apply( self, arguments );
-		},
-
-		_setOption: function( key, value ) {
-			var self = this,
-				oldValue = self.options[key],
-				doDimensions = false,
-				hexLessColor,
-				newColor,
-				method;
-
-			// ensure the new value is set. We can reset to oldValue if some check wasn't met.
-			self.options[key] = value;
-
-			switch(key) {
-				case 'color':
-					// cast to string in case we have a number
-					value = '' + value;
-					hexLessColor = value.replace( /^#/, '' );
-					newColor = new Color( value ).setHSpace( self.options.mode );
-					if ( newColor.error ) {
-						self.options[key] = oldValue;
-					} else {
-						self._color = newColor;
-						self.options.color = self.options[key] = self._color.toString();
-						self.active = 'external';
-						self._change();
-					}
-					break;
-				case 'palettes':
-					doDimensions = true;
-
-					if ( value ) {
-						self._addPalettes();
-					} else {
-						self.picker.find('.iris-palette-container').remove();
-					}
-
-					// do we need to add events?
-					if ( ! oldValue ) {
-						self._paletteListeners();
-					}
-					break;
-				case 'width':
-					doDimensions = true;
-					break;
-				case 'border':
-					doDimensions = true;
-					method = value ? 'addClass' : 'removeClass';
-					self.picker[method]('iris-border');
-					break;
-				case 'mode':
-				case 'controls':
-					// if nothing's changed, let's bail, since this causes re-rendering the whole widget
-					if ( oldValue === value ) {
-						return;
-					}
-
-					// we're using these poorly named variables because they're already scoped.
-					// method is the element that Iris was called on. oldValue will be the options
-					method = self.element;
-					oldValue = self.options;
-					oldValue.hide = ! self.picker.is( ':visible' );
-					self.destroy();
-					self.picker.remove();
-					return $(self.element).iris(oldValue);
-			}
-
-			// Do we need to recalc dimensions?
-			if ( doDimensions ) {
-				self._dimensions(true);
-			}
-		},
-
-		_squareDimensions: function( forceRefresh ) {
-			var square = this.controls.square,
-				dimensions,
-				control;
-
-			if ( forceRefresh !== undef && square.data('dimensions') ) {
-				return square.data('dimensions');
-			}
-
-			control = this.controls.squareDrag;
-			dimensions = {
-				w: square.width(),
-				h: square.height()
-			};
-			square.data( 'dimensions', dimensions );
-			return dimensions;
-		},
-
-		_isNonHueControl: function( active, type ) {
-			if ( active === 'square' && this.options.controls.strip === 'h' ) {
-				return true;
-			} else if ( type === 'external' || ( type === 'h' && active === 'strip' ) ) {
-				return false;
-			}
-
-			return true;
-		},
-
-		_change: function() {
-			var self = this,
-				controls = self.controls,
-				color = self._getHSpaceColor(),
-				actions = [ 'square', 'strip' ],
-				controlOpts = self.options.controls,
-				type = controlOpts[self.active] || 'external',
-				oldHue = self.hue;
-
-			if ( self.active === 'strip' ) {
-				// take no action on any of the square sliders if we adjusted the strip
-				actions = [];
-			} else if ( self.active !== 'external' ) {
-				// for non-strip, non-external, strip should never change
-				actions.pop(); // conveniently the last item
-			}
-
-			$.each( actions, function(index, item) {
-				var value, dimensions, cssObj;
-				if ( item !== self.active ) {
-					switch ( item ) {
-						case 'strip':
-							// reverse for hue
-							value = ( controlOpts.strip === 'h' ) ? self._scale[controlOpts.strip] - color[controlOpts.strip] : color[controlOpts.strip];
-							controls.stripSlider.slider( 'value', value );
-							break;
-						case 'square':
-							dimensions = self._squareDimensions();
-							cssObj = {
-								left: color[controlOpts.horiz] / self._scale[controlOpts.horiz] * dimensions.w,
-								top: dimensions.h - ( color[controlOpts.vert] / self._scale[controlOpts.vert] * dimensions.h )
-							};
-
-							self.controls.squareDrag.css( cssObj );
-							break;
-					}
-				}
-			});
-
-			// Ensure that we don't change hue if we triggered a hue reset
-			if ( color.h !== oldHue && self._isNonHueControl( self.active, type ) ) {
-				self._color.h(oldHue);
-			}
-
-			// store hue for repeating above check next time
-			self.hue = self._color.h();
-
-			self.options.color = self._color.toString();
-
-			// only run after the first time
-			if ( self._inited ) {
-				self._trigger( 'change', { type: self.active }, { color: self._color } );
-			}
-
-			if ( self.element.is( ':input' ) && ! self._color.error ) {
-				self.element.removeClass( 'iris-error' );
-				if ( self.element.val() !== self._color.toString() ) {
-					self.element.val( self._color.toString() );
-				}
-			}
-
-			self._paint();
-			self._inited = true;
-			self.active = false;
-		},
-		// taken from underscore.js _.debounce method
-		_debounce: function( func, wait, immediate ) {
-			var timeout, result;
-			return function() {
-				var context = this,
-					args = arguments,
-					later,
-					callNow;
-
-				later = function() {
-					timeout = null;
-					if ( ! immediate) {
-						result = func.apply( context, args );
-					}
-				};
-
-				callNow = immediate && !timeout;
-				clearTimeout( timeout );
-				timeout = setTimeout( later, wait );
-				if ( callNow ) {
-					result = func.apply( context, args );
-				}
-				return result;
-			};
-		},
-		show: function() {
-			this.picker.show();
-		},
-		hide: function() {
-			this.picker.hide();
-		},
-		toggle: function() {
-			this.picker.toggle();
-		},
-		color: function(newColor) {
-			if ( newColor === true ) {
-				return this._color.clone();
-			} else if ( newColor === undef ) {
-				return this._color.toString();
-			}
-			this.option('color', newColor);
-		}
-	};
-	// initialize the widget
-	$.widget( 'a8c.iris', Iris );
-	// add CSS
-	$( '<style id="iris-css">' + _css + '</style>' ).appendTo( 'head' );
-
-}( jQuery ));
-/*! Color.js - v0.9.11 - 2013-08-09
-* https://github.com/Automattic/Color.js
-* Copyright (c) 2013 Matt Wiebe; Licensed GPLv2 */
-(function(global, undef) {
-
-	var Color = function( color, type ) {
-		if ( ! ( this instanceof Color ) )
-			return new Color( color, type );
-
-		return this._init( color, type );
-	};
-
-	Color.fn = Color.prototype = {
-		_color: 0,
-		_alpha: 1,
-		error: false,
-		// for preserving hue/sat in fromHsl().toHsl() flows
-		_hsl: { h: 0, s: 0, l: 0 },
-		// for preserving hue/sat in fromHsv().toHsv() flows
-		_hsv: { h: 0, s: 0, v: 0 },
-		// for setting hsl or hsv space - needed for .h() & .s() functions to function properly
-		_hSpace: 'hsl',
-		_init: function( color ) {
-			var func = 'noop';
-			switch ( typeof color ) {
-					case 'object':
-						// alpha?
-						if ( color.a !== undef )
-							this.a( color.a );
-						func = ( color.r !== undef ) ? 'fromRgb' :
-							( color.l !== undef ) ? 'fromHsl' :
-							( color.v !== undef ) ? 'fromHsv' : func;
-						return this[func]( color );
-					case 'string':
-						return this.fromCSS( color );
-					case 'number':
-						return this.fromInt( parseInt( color, 10 ) );
-			}
-			return this;
-		},
-
-		_error: function() {
-			this.error = true;
-			return this;
-		},
-
-		clone: function() {
-			var newColor = new Color( this.toInt() ),
-				copy = ['_alpha', '_hSpace', '_hsl', '_hsv', 'error'];
-			for ( var i = copy.length - 1; i >= 0; i-- ) {
-				newColor[ copy[i] ] = this[ copy[i] ];
-			}
-			return newColor;
-		},
-
-		setHSpace: function( space ) {
-			this._hSpace = ( space === 'hsv' ) ? space : 'hsl';
-			return this;
-		},
-
-		noop: function() {
-			return this;
-		},
-
-		fromCSS: function( color ) {
-			var list,
-				leadingRE = /^(rgb|hs(l|v))a?\(/;
-			this.error = false;
-
-			// whitespace and semicolon trim
-			color = color.replace(/^\s+/, '').replace(/\s+$/, '').replace(/;$/, '');
-
-			if ( color.match(leadingRE) && color.match(/\)$/) ) {
-				list = color.replace(/(\s|%)/g, '').replace(leadingRE, '').replace(/,?\);?$/, '').split(',');
-
-				if ( list.length < 3 )
-					return this._error();
-
-				if ( list.length === 4 ) {
-					this.a( parseFloat( list.pop() ) );
-					// error state has been set to true in .a() if we passed NaN
-					if ( this.error )
-						return this;
-				}
-
-				for (var i = list.length - 1; i >= 0; i--) {
-					list[i] = parseInt(list[i], 10);
-					if ( isNaN( list[i] ) )
-						return this._error();
-				}
-
-				if ( color.match(/^rgb/) ) {
-					return this.fromRgb( {
-						r: list[0],
-						g: list[1],
-						b: list[2]
-					} );
-				} else if ( color.match(/^hsv/) ) {
-					return this.fromHsv( {
-						h: list[0],
-						s: list[1],
-						v: list[2]
-					} );
-				} else {
-					return this.fromHsl( {
-						h: list[0],
-						s: list[1],
-						l: list[2]
-					} );
-				}
-			} else {
-				// must be hex amirite?
-				return this.fromHex( color );
-			}
-		},
-
-		fromRgb: function( rgb, preserve ) {
-			if ( typeof rgb !== 'object' || rgb.r === undef || rgb.g === undef || rgb.b === undef )
-				return this._error();
-
-			this.error = false;
-			return this.fromInt( parseInt( ( rgb.r << 16 ) + ( rgb.g << 8 ) + rgb.b, 10 ), preserve );
-		},
-
-		fromHex: function( color ) {
-			color = color.replace(/^#/, '').replace(/^0x/, '');
-			if ( color.length === 3 ) {
-				color = color[0] + color[0] + color[1] + color[1] + color[2] + color[2];
-			}
-
-			// rough error checking - this is where things go squirrely the most
-			this.error = ! /^[0-9A-F]{6}$/i.test( color );
-			return this.fromInt( parseInt( color, 16 ) );
-		},
-
-		fromHsl: function( hsl ) {
-			var r, g, b, q, p, h, s, l;
-
-			if ( typeof hsl !== 'object' || hsl.h === undef || hsl.s === undef || hsl.l === undef )
-				return this._error();
-
-			this._hsl = hsl; // store it
-			this._hSpace = 'hsl'; // implicit
-			h = hsl.h / 360; s = hsl.s / 100; l = hsl.l / 100;
-			if ( s === 0 ) {
-				r = g = b = l; // achromatic
-			}
-			else {
-				q = l < 0.5 ? l * ( 1 + s ) : l + s - l * s;
-				p = 2 * l - q;
-				r = this.hue2rgb( p, q, h + 1/3 );
-				g = this.hue2rgb( p, q, h );
-				b = this.hue2rgb( p, q, h - 1/3 );
-			}
-			return this.fromRgb( {
-				r: r * 255,
-				g: g * 255,
-				b: b * 255
-			}, true ); // true preserves hue/sat
-		},
-
-		fromHsv: function( hsv ) {
-			var h, s, v, r, g, b, i, f, p, q, t;
-			if ( typeof hsv !== 'object' || hsv.h === undef || hsv.s === undef || hsv.v === undef )
-				return this._error();
-
-			this._hsv = hsv; // store it
-			this._hSpace = 'hsv'; // implicit
-
-			h = hsv.h / 360; s = hsv.s / 100; v = hsv.v / 100;
-			i = Math.floor( h * 6 );
-			f = h * 6 - i;
-			p = v * ( 1 - s );
-			q = v * ( 1 - f * s );
-			t = v * ( 1 - ( 1 - f ) * s );
-
-			switch( i % 6 ) {
-				case 0:
-					r = v; g = t; b = p;
-					break;
-				case 1:
-					r = q; g = v; b = p;
-					break;
-				case 2:
-					r = p; g = v; b = t;
-					break;
-				case 3:
-					r = p; g = q; b = v;
-					break;
-				case 4:
-					r = t; g = p; b = v;
-					break;
-				case 5:
-					r = v; g = p; b = q;
-					break;
-			}
-
-			return this.fromRgb( {
-				r: r * 255,
-				g: g * 255,
-				b: b * 255
-			}, true ); // true preserves hue/sat
-
-		},
-		// everything comes down to fromInt
-		fromInt: function( color, preserve ) {
-			this._color = parseInt( color, 10 );
-
-			if ( isNaN( this._color ) )
-				this._color = 0;
-
-			// let's coerce things
-			if ( this._color > 16777215 )
-				this._color = 16777215;
-			else if ( this._color < 0 )
-				this._color = 0;
-
-			// let's not do weird things
-			if ( preserve === undef ) {
-				this._hsv.h = this._hsv.s = this._hsl.h = this._hsl.s = 0;
-			}
-			// EVENT GOES HERE
-			return this;
-		},
-
-		hue2rgb: function( p, q, t ) {
-			if ( t < 0 ) {
-				t += 1;
-			}
-			if ( t > 1 ) {
-				t -= 1;
-			}
-			if ( t < 1/6 ) {
-				return p + ( q - p ) * 6 * t;
-			}
-			if ( t < 1/2 ) {
-				return q;
-			}
-			if ( t < 2/3 ) {
-				return p + ( q - p ) * ( 2/3 - t ) * 6;
-			}
-			return p;
-		},
-
-		toString: function() {
-			var hex = parseInt( this._color, 10 ).toString( 16 );
-			if ( this.error )
-				return '';
-			// maybe left pad it
-			if ( hex.length < 6 ) {
-				for (var i = 6 - hex.length - 1; i >= 0; i--) {
-					hex = '0' + hex;
-				}
-			}
-			return '#' + hex;
-		},
-
-		toCSS: function( type, alpha ) {
-			type = type || 'hex';
-			alpha = parseFloat( alpha || this._alpha );
-			switch ( type ) {
-				case 'rgb':
-				case 'rgba':
-					var rgb = this.toRgb();
-					if ( alpha < 1 ) {
-						return "rgba( " + rgb.r + ", " + rgb.g + ", " + rgb.b + ", " + alpha + " )";
-					}
-					else {
-						return "rgb( " + rgb.r + ", " + rgb.g + ", " + rgb.b + " )";
-					}
-					break;
-				case 'hsl':
-				case 'hsla':
-					var hsl = this.toHsl();
-					if ( alpha < 1 ) {
-						return "hsla( " + hsl.h + ", " + hsl.s + "%, " + hsl.l + "%, " + alpha + " )";
-					}
-					else {
-						return "hsl( " + hsl.h + ", " + hsl.s + "%, " + hsl.l + "% )";
-					}
-					break;
-				default:
-					return this.toString();
-			}
-		},
-
-		toRgb: function() {
-			return {
-				r: 255 & ( this._color >> 16 ),
-				g: 255 & ( this._color >> 8 ),
-				b: 255 & ( this._color )
-			};
-		},
-
-		toHsl: function() {
-			var rgb = this.toRgb();
-			var r = rgb.r / 255, g = rgb.g / 255, b = rgb.b / 255;
-			var max = Math.max( r, g, b ), min = Math.min( r, g, b );
-			var h, s, l = ( max + min ) / 2;
-
-			if ( max === min ) {
-				h = s = 0; // achromatic
-			} else {
-				var d = max - min;
-				s = l > 0.5 ? d / ( 2 - max - min ) : d / ( max + min );
-				switch ( max ) {
-					case r: h = ( g - b ) / d + ( g < b ? 6 : 0 );
-						break;
-					case g: h = ( b - r ) / d + 2;
-						break;
-					case b: h = ( r - g ) / d + 4;
-						break;
-				}
-				h /= 6;
-			}
-
-			// maintain hue & sat if we've been manipulating things in the HSL space.
-			h = Math.round( h * 360 );
-			if ( h === 0 && this._hsl.h !== h ) {
-				h = this._hsl.h;
-			}
-			s = Math.round( s * 100 );
-			if ( s === 0 && this._hsl.s ) {
-				s = this._hsl.s;
-			}
-
-			return {
-				h: h,
-				s: s,
-				l: Math.round( l * 100 )
-			};
-
-		},
-
-		toHsv: function() {
-			var rgb = this.toRgb();
-			var r = rgb.r / 255, g = rgb.g / 255, b = rgb.b / 255;
-			var max = Math.max( r, g, b ), min = Math.min( r, g, b );
-			var h, s, v = max;
-			var d = max - min;
-			s = max === 0 ? 0 : d / max;
-
-			if ( max === min ) {
-				h = s = 0; // achromatic
-			} else {
-				switch( max ){
-					case r:
-						h = ( g - b ) / d + ( g < b ? 6 : 0 );
-						break;
-					case g:
-						h = ( b - r ) / d + 2;
-						break;
-					case b:
-						h = ( r - g ) / d + 4;
-						break;
-				}
-				h /= 6;
-			}
-
-			// maintain hue & sat if we've been manipulating things in the HSV space.
-			h = Math.round( h * 360 );
-			if ( h === 0 && this._hsv.h !== h ) {
-				h = this._hsv.h;
-			}
-			s = Math.round( s * 100 );
-			if ( s === 0 && this._hsv.s ) {
-				s = this._hsv.s;
-			}
-
-			return {
-				h: h,
-				s: s,
-				v: Math.round( v * 100 )
-			};
-		},
-
-		toInt: function() {
-			return this._color;
-		},
-
-		toIEOctoHex: function() {
-			// AARRBBGG
-			var hex = this.toString();
-			var AA = parseInt( 255 * this._alpha, 10 ).toString(16);
-			if ( AA.length === 1 ) {
-				AA = '0' + AA;
-			}
-			return '#' + AA + hex.replace(/^#/, '' );
-		},
-
-		toLuminosity: function() {
-			var rgb = this.toRgb();
-			return 0.2126 * Math.pow( rgb.r / 255, 2.2 ) + 0.7152 * Math.pow( rgb.g / 255, 2.2 ) + 0.0722 * Math.pow( rgb.b / 255, 2.2);
-		},
-
-		getDistanceLuminosityFrom: function( color ) {
-			if ( ! ( color instanceof Color ) ) {
-				throw 'getDistanceLuminosityFrom requires a Color object';
-			}
-			var lum1 = this.toLuminosity();
-			var lum2 = color.toLuminosity();
-			if ( lum1 > lum2 ) {
-				return ( lum1 + 0.05 ) / ( lum2 + 0.05 );
-			}
-			else {
-				return ( lum2 + 0.05 ) / ( lum1 + 0.05 );
-			}
-		},
-
-		getMaxContrastColor: function() {
-			var lum = this.toLuminosity();
-			var hex = ( lum >= 0.5 ) ? '000000' : 'ffffff';
-			return new Color( hex );
-		},
-
-		getReadableContrastingColor: function( bgColor, minContrast ) {
-			if ( ! bgColor instanceof Color ) {
-				return this;
-			}
-
-			// you shouldn't use less than 5, but you might want to.
-			var targetContrast = ( minContrast === undef ) ? 5 : minContrast;
-			// working things
-			var contrast = bgColor.getDistanceLuminosityFrom( this );
-			var maxContrastColor = bgColor.getMaxContrastColor();
-			var maxContrast = maxContrastColor.getDistanceLuminosityFrom( bgColor );
-
-			// if current max contrast is less than the target contrast, we had wishful thinking.
-			// still, go max
-			if ( maxContrast <= targetContrast ) {
-				return maxContrastColor;
-			}
-			// or, we might already have sufficient contrast
-			else if ( contrast >= targetContrast ) {
-				return this;
-			}
-
-			var incr = ( 0 === maxContrastColor.toInt() ) ? -1 : 1;
-			while ( contrast < targetContrast ) {
-				this.l( incr, true ); // 2nd arg turns this into an incrementer
-				contrast = this.getDistanceLuminosityFrom( bgColor );
-				// infininite loop prevention: you never know.
-				if ( this._color === 0 || this._color === 16777215 ) {
-					break;
-				}
-			}
-
-			return this;
-
-		},
-
-		a: function( val ) {
-			if ( val === undef )
-				return this._alpha;
-
-			var a = parseFloat( val );
-
-			if ( isNaN( a ) )
-				return this._error();
-
-			this._alpha = a;
-			return this;
-		},
-
-		// TRANSFORMS
-
-		darken: function( amount ) {
-			amount = amount || 5;
-			return this.l( - amount, true );
-		},
-
-		lighten: function( amount ) {
-			amount = amount || 5;
-			return this.l( amount, true );
-		},
-
-		saturate: function( amount ) {
-			amount = amount || 15;
-			return this.s( amount, true );
-		},
-
-		desaturate: function( amount ) {
-			amount = amount || 15;
-			return this.s( - amount, true );
-		},
-
-		toGrayscale: function() {
-			return this.setHSpace('hsl').s( 0 );
-		},
-
-		getComplement: function() {
-			return this.h( 180, true );
-		},
-
-		getSplitComplement: function( step ) {
-			step = step || 1;
-			var incr = 180 + ( step * 30 );
-			return this.h( incr, true );
-		},
-
-		getAnalog: function( step ) {
-			step = step || 1;
-			var incr = step * 30;
-			return this.h( incr, true );
-		},
-
-		getTetrad: function( step ) {
-			step = step || 1;
-			var incr = step * 60;
-			return this.h( incr, true );
-		},
-
-		getTriad: function( step ) {
-			step = step || 1;
-			var incr = step * 120;
-			return this.h( incr, true );
-		},
-
-		_partial: function( key ) {
-			var prop = shortProps[key];
-			return function( val, incr ) {
-				var color = this._spaceFunc('to', prop.space);
-
-				// GETTER
-				if ( val === undef )
-					return color[key];
-
-				// INCREMENT
-				if ( incr === true )
-					val = color[key] + val;
-
-				// MOD & RANGE
-				if ( prop.mod )
-					val = val % prop.mod;
-				if ( prop.range )
-					val = ( val < prop.range[0] ) ? prop.range[0] : ( val > prop.range[1] ) ? prop.range[1] : val;
-
-				// NEW VALUE
-				color[key] = val;
-
-				return this._spaceFunc('from', prop.space, color);
-			};
-		},
-
-		_spaceFunc: function( dir, s, val ) {
-			var space = s || this._hSpace,
-				funcName = dir + space.charAt(0).toUpperCase() + space.substr(1);
-			return this[funcName](val);
-		}
-	};
-
-	var shortProps = {
-		h: {
-			mod: 360
-		},
-		s: {
-			range: [0,100]
-		},
-		l: {
-			space: 'hsl',
-			range: [0,100]
-		},
-		v: {
-			space: 'hsv',
-			range: [0,100]
-		},
-		r: {
-			space: 'rgb',
-			range: [0,255]
-		},
-		g: {
-			space: 'rgb',
-			range: [0,255]
-		},
-		b: {
-			space: 'rgb',
-			range: [0,255]
-		}
-	};
-
-	for ( var key in shortProps ) {
-		if ( shortProps.hasOwnProperty( key ) )
-			Color.fn[key] = Color.fn._partial(key);
-	}
-
-	// play nicely with Node + browser
-	if ( typeof exports === 'object' )
-		module.exports = Color;
-	else
-		global.Color = Color;
-
-}(this));
diff --git a/wiki/lib/plugins/styling/lang/bg/lang.php b/wiki/lib/plugins/styling/lang/bg/lang.php
deleted file mode 100644
index 7d17caf..0000000
--- a/wiki/lib/plugins/styling/lang/bg/lang.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author Kiril <neohidra@gmail.com>
- */
-$lang['menu']                  = 'ÐаÑтройки на Ñтила на шаблона';
-$lang['error']                 = 'За Ñъжаление шаблона не поддържа тази функционалноÑÑ‚.';
-$lang['btn_preview']           = 'Преглед на промените';
-$lang['btn_save']              = 'Ð—Ð°Ð¿Ð¸Ñ Ð½Ð° промените';
-$lang['btn_reset']             = 'Ðнулиране на промените';
-$lang['btn_revert']            = 'Връщане на Ñтила към Ñтандартните ÑтойноÑти';
-$lang['__text__']              = 'ЦвÑÑ‚ на оÑÐ½Ð¾Ð²Ð½Ð¸Ñ Ñ‚ÐµÐºÑÑ‚';
-$lang['__background__']        = 'ЦвÑÑ‚ на оÑÐ½Ð¾Ð²Ð½Ð¸Ñ Ñ„Ð¾Ð½';
-$lang['__text_alt__']          = 'Ðлтернативен цвÑÑ‚ за текÑта';
-$lang['__background_alt__']    = 'Ðлтернативен цвÑÑ‚ за фона';
-$lang['__text_neu__']          = 'Ðеутрален цвÑÑ‚ за текÑта';
-$lang['__background_neu__']    = 'Ðеутрален цвÑÑ‚ за фона';
-$lang['__border__']            = 'ЦвÑÑ‚ на рамката';
-$lang['__highlight__']         = 'ЦвÑÑ‚ за отличаване (оÑновно на резултата от търÑениÑ)';
diff --git a/wiki/lib/plugins/styling/lang/cs/intro.txt b/wiki/lib/plugins/styling/lang/cs/intro.txt
deleted file mode 100644
index 00365a0..0000000
--- a/wiki/lib/plugins/styling/lang/cs/intro.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-Tento nástroj umožňuje zmÄ›nu urÄitých nastavení stylu právÄ› používané Å¡ablony vzhledu.
-VÅ¡echny zmÄ›ny jsou uloženy v lokálním konfiguraÄním souboru a tím chránÄ›ny pÅ™ed smazáním pÅ™i aktualizaci.
\ No newline at end of file
diff --git a/wiki/lib/plugins/styling/lang/cs/lang.php b/wiki/lib/plugins/styling/lang/cs/lang.php
deleted file mode 100644
index bbb2789..0000000
--- a/wiki/lib/plugins/styling/lang/cs/lang.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-
-/**
- * @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ří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';
-$lang['btn_reset']             = 'Zrušit aktuální změny';
-$lang['btn_revert']            = 'Vrátit styly zpět na výchozí hodnoty vzhledu';
-$lang['__text__']              = 'Barva hlavního textu';
-$lang['__background__']        = 'Barva hlavního pozadí';
-$lang['__text_alt__']          = 'Barva alternativního textu';
-$lang['__background_alt__']    = 'Barva alternativního pozadí';
-$lang['__text_neu__']          = 'Barva neutrálního textu';
-$lang['__background_neu__']    = 'Barva neutrálního pozadí';
-$lang['__border__']            = 'Barva rámování';
-$lang['__highlight__']         = 'Zvýrazněná barva (hlavně pro výsledky vyhledávání)';
diff --git a/wiki/lib/plugins/styling/lang/cy/intro.txt b/wiki/lib/plugins/styling/lang/cy/intro.txt
deleted file mode 100644
index 7c82596..0000000
--- a/wiki/lib/plugins/styling/lang/cy/intro.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-Mae'r teclyn hwn yn eich galluogi chi newid gosodiadau arddull penodol y templed rydych chi'n defnyddio'n bresennol.
-Caiff pob newid ei storio mewn ffeil ffurfwedd leol sy'n uwchradd-ddiogel.
\ No newline at end of file
diff --git a/wiki/lib/plugins/styling/lang/cy/lang.php b/wiki/lib/plugins/styling/lang/cy/lang.php
deleted file mode 100644
index 4d22a59..0000000
--- a/wiki/lib/plugins/styling/lang/cy/lang.php
+++ /dev/null
@@ -1,36 +0,0 @@
-<?php
-/**
- * Welsh language file for styling plugin
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- * @author Alan Davies <ben.brynsadler@gmail.com>
- */
-
-// menu entry for admin plugins
-$lang['menu'] = 'Gosodiadau Arddull Templed';
-
-$lang['js']['loader'] = 'Rhagolwg yn llwytho...<br />os \'dyw hwn ddim yn diflannu, efallai bod eich gwerthoedd yn annilys';
-$lang['js']['popup'] = 'Agor fel ffurflen naid';
-
-// custom language strings for the plugin
-$lang['error'] = 'Sori, \'dyw\'r templed hwn ddim yn cynnal y swyddogaethedd hwn.';
-
-$lang['btn_preview'] = 'Rhagolwg newidiadau';
-$lang['btn_save']    = 'Cadw newidiadau';
-$lang['btn_reset']   = 'Ailosod newidiadau cyfredol';
-$lang['btn_revert']  = 'Troi arddulliau\'n ôl i ddiofyn y templed';
-
-// default guaranteed placeholders
-$lang['__text__']           = 'Lliw\'r prif destun';
-$lang['__background__']     = 'Lliw\'r prif gefndir';
-$lang['__text_alt__']       = 'Lliw testun amgen';
-$lang['__background_alt__'] = 'Lliw cefndir amgen';
-$lang['__text_neu__']       = 'lliw testun niwtral';
-$lang['__background_neu__'] = 'Lliw cefndir niwtral';
-$lang['__border__']         = 'Lliw border';
-$lang['__highlight__']      = 'Lliw uwcholeuad (am ganlyniadau chwiliad yn bennaf)';
-
-
-
-
-//Setup VIM: ex: et ts=4 :
diff --git a/wiki/lib/plugins/styling/lang/de-informal/intro.txt b/wiki/lib/plugins/styling/lang/de-informal/intro.txt
deleted file mode 100644
index aa95773..0000000
--- a/wiki/lib/plugins/styling/lang/de-informal/intro.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-Dieses Plugin ermöglicht es, bestimmte Designeinstellungen des ausgewählten Templates zu ändern.
-Alle Änderungen werden in einer lokalen Konfigurationsdatei gespeichert und sind upgrade-sicher.
\ No newline at end of file
diff --git a/wiki/lib/plugins/styling/lang/de-informal/lang.php b/wiki/lib/plugins/styling/lang/de-informal/lang.php
deleted file mode 100644
index 60ae96b..0000000
--- a/wiki/lib/plugins/styling/lang/de-informal/lang.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Felix Müller-Donath <j.felix@mueller-donath.de>
- */
-$lang['menu']                  = 'Einstellungen fürs Template-Design';
-$lang['js']['loader']          = 'Vorschau lädt...<br />Falls diese Nachricht nicht verschwindet, könnten deine Werte fehlerhaft sein';
-$lang['js']['popup']           = 'Öffne als Popup';
-$lang['error']                 = 'Dieses Template unterstützt diese Funktion nicht.';
-$lang['btn_preview']           = 'Vorschau der Änderungen anzeigen';
-$lang['btn_save']              = 'Änderungen speichern';
-$lang['btn_reset']             = 'Aktuelle Änderungen rückgängig machen';
-$lang['btn_revert']            = 'Design auf die Voreinstellung des Templates zurücksetzen';
-$lang['__text__']              = 'Main text color';
-$lang['__background__']        = 'Haupthintergrundfarbe';
-$lang['__text_alt__']          = 'Alternative Textfarbe';
-$lang['__background_alt__']    = 'Alternative Hintergrundfarbe';
-$lang['__text_neu__']          = 'Neutrale Textfarbe';
-$lang['__background_neu__']    = 'Neutrale Hintergrundfarbe';
-$lang['__border__']            = 'Rahmenfarbe';
-$lang['__highlight__']         = 'Hervorhebungsfarbe (v.a. für Suchergebnisse)';
diff --git a/wiki/lib/plugins/styling/lang/de/intro.txt b/wiki/lib/plugins/styling/lang/de/intro.txt
deleted file mode 100644
index aa95773..0000000
--- a/wiki/lib/plugins/styling/lang/de/intro.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-Dieses Plugin ermöglicht es, bestimmte Designeinstellungen des ausgewählten Templates zu ändern.
-Alle Änderungen werden in einer lokalen Konfigurationsdatei gespeichert und sind upgrade-sicher.
\ No newline at end of file
diff --git a/wiki/lib/plugins/styling/lang/de/lang.php b/wiki/lib/plugins/styling/lang/de/lang.php
deleted file mode 100644
index 54adc56..0000000
--- a/wiki/lib/plugins/styling/lang/de/lang.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-
-/**
- * @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';
-$lang['js']['popup']           = 'Öffne als Popup';
-$lang['error']                 = 'Dieses Template unterstützt diese Funktion nicht.';
-$lang['btn_preview']           = 'Vorschau der Änderungen anzeigen';
-$lang['btn_save']              = 'Änderungen speichern';
-$lang['btn_reset']             = 'Jetzige Änderungen rückgängig machen';
-$lang['btn_revert']            = 'Design auf die Voreinstellung des Templates zurücksetzen';
-$lang['__text__']              = 'Haupttextfarbe';
-$lang['__background__']        = 'Haupthintergrundfarbe';
-$lang['__text_alt__']          = 'Alternative Textfarbe';
-$lang['__background_alt__']    = 'Alternative Hintergrundfarbe';
-$lang['__text_neu__']          = 'Neutrale Textfarbe';
-$lang['__background_neu__']    = 'Neutrale Hintergrundfarbe';
-$lang['__border__']            = 'Rahmenfarbe';
-$lang['__highlight__']         = 'Hervorhebungsfarbe (hauptsächlich für Suchergebnisse)';
diff --git a/wiki/lib/plugins/styling/lang/en/intro.txt b/wiki/lib/plugins/styling/lang/en/intro.txt
deleted file mode 100644
index 4ea5517..0000000
--- a/wiki/lib/plugins/styling/lang/en/intro.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-This tool allows you to change certain style settings of your currently selected template.
-All changes are stored in a local configuration file and are upgrade safe.
\ No newline at end of file
diff --git a/wiki/lib/plugins/styling/lang/en/lang.php b/wiki/lib/plugins/styling/lang/en/lang.php
deleted file mode 100644
index e0011eb..0000000
--- a/wiki/lib/plugins/styling/lang/en/lang.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-/**
- * English language file for styling plugin
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- */
-
-// menu entry for admin plugins
-$lang['menu'] = 'Template Style Settings';
-
-$lang['js']['loader'] = 'Preview is loading...<br />if this does not goes away, your values may be faulty';
-$lang['js']['popup'] = 'Open as a popup';
-
-// custom language strings for the plugin
-$lang['error'] = 'Sorry, this template does not support this functionality.';
-
-$lang['btn_preview'] = 'Preview changes';
-$lang['btn_save']    = 'Save changes';
-$lang['btn_reset']   = 'Reset current changes';
-$lang['btn_revert']  = 'Revert styles back to template\'s default';
-
-// default guaranteed placeholders
-$lang['__text__']           = 'Main text color';
-$lang['__background__']     = 'Main background color';
-$lang['__text_alt__']       = 'Alternative text color';
-$lang['__background_alt__'] = 'Alternative background color';
-$lang['__text_neu__']       = 'Neutral text color';
-$lang['__background_neu__'] = 'Neutral background color';
-$lang['__border__']         = 'Border color';
-$lang['__highlight__']      = 'Highlight color (for search results mainly)';
-
-
-
-
-//Setup VIM: ex: et ts=4 :
diff --git a/wiki/lib/plugins/styling/lang/eo/lang.php b/wiki/lib/plugins/styling/lang/eo/lang.php
deleted file mode 100644
index d8127e7..0000000
--- a/wiki/lib/plugins/styling/lang/eo/lang.php
+++ /dev/null
@@ -1,9 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Kristjan SCHMIDT <kristjan.schmidt@googlemail.com>
- */
-$lang['btn_preview']           = 'AntaÅ­aj ÅanÄoj';
-$lang['btn_save']              = 'Konservi ÅanÄojn';
diff --git a/wiki/lib/plugins/styling/lang/es/intro.txt b/wiki/lib/plugins/styling/lang/es/intro.txt
deleted file mode 100644
index 8a55600..0000000
--- a/wiki/lib/plugins/styling/lang/es/intro.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-Esta herramienta le permite cambiar algunos ajustes de estilo de la plantilla seleccionada.
-Todos los cambios se guardan en un archivo de configuración local y son una actualización segura.
\ No newline at end of file
diff --git a/wiki/lib/plugins/styling/lang/es/lang.php b/wiki/lib/plugins/styling/lang/es/lang.php
deleted file mode 100644
index 5c87c92..0000000
--- a/wiki/lib/plugins/styling/lang/es/lang.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Domingo Redal <docxml@gmail.com>
- */
-$lang['menu']                  = 'Ajustes de plantilla';
-$lang['js']['loader']          = 'La vista previa se está cargando ... <br /> si esto no se ve, sus valores pueden ser defectuosos';
-$lang['js']['popup']           = 'Abrir como una ventana emergente';
-$lang['error']                 = 'Lo sentimos, esta plantilla no admite esta funcionalidad.';
-$lang['btn_preview']           = 'Vista previa de los cambios';
-$lang['btn_save']              = 'Guardar cambios';
-$lang['btn_reset']             = 'Reiniciar los cambios actuales';
-$lang['btn_revert']            = 'Revertir estilos volviendo a los valores por defecto de la plantilla';
-$lang['__text__']              = 'Color del texto principal';
-$lang['__background__']        = 'Color de fondo del texto principal';
-$lang['__text_alt__']          = 'Color del texto alternativo';
-$lang['__background_alt__']    = 'Color de fondo del texto alternativo';
-$lang['__text_neu__']          = 'Color del texto neutro';
-$lang['__background_neu__']    = 'Color de fondo del texto neutro';
-$lang['__border__']            = 'Color del borde';
-$lang['__highlight__']         = 'Color resaltado (para los resultados de búsqueda, principalmente)';
diff --git a/wiki/lib/plugins/styling/lang/fa/intro.txt b/wiki/lib/plugins/styling/lang/fa/intro.txt
deleted file mode 100644
index 428a251..0000000
--- a/wiki/lib/plugins/styling/lang/fa/intro.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-این ابزار این امکان را ÙØ±Ø§Ù‡Ù… می‌سازد Ú©Ù‡ برخی تنظیمات مشخص از قالبی Ú©Ù‡ انتخاب کردید را تغییر دهید.
-تمام تغییرات در ÙØ§ÛŒÙ„ داخلی تنظیمات ذخیره می‌شود Ùˆ به‌روزرسانی هم ایمن است.
\ No newline at end of file
diff --git a/wiki/lib/plugins/styling/lang/fa/lang.php b/wiki/lib/plugins/styling/lang/fa/lang.php
deleted file mode 100644
index 95a65f4..0000000
--- a/wiki/lib/plugins/styling/lang/fa/lang.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Masoud Sadrnezhaad <masoud@sadrnezhaad.ir>
- * @author Sam01 <m.sajad079@gmail.com>
- */
-$lang['menu']                  = 'تنظیمات ظاهری تمپلیت';
-$lang['js']['loader']          = 'پیش‌نمایش در حال باز شدن است... <br />اگر این پیش Ù†Ø±ÙØª یعنی مقادیرتان اشکال دارد';
-$lang['js']['popup']           = 'باز کردن به صورت پاپ‌آپ';
-$lang['error']                 = 'ببخشید، این قالب از این قابلیت پشتیبانی نمی‌کند';
-$lang['btn_preview']           = 'نمایش تغییرات';
-$lang['btn_save']              = 'ذخیره تغییرات';
-$lang['btn_reset']             = 'بازگردانی تغییر ÙØ¹Ù„ÛŒ';
-$lang['btn_revert']            = 'بازگردانی ظاهر به Ù¾ÛŒØ´ÙØ±Ø¶ قالب';
-$lang['__text__']              = 'رنگ اصلی متن';
-$lang['__background__']        = 'رنگ اصلی زمینه';
-$lang['__text_alt__']          = 'رنگ ثانویه متن';
-$lang['__background_alt__']    = 'رنگ ثانویه زمینه';
-$lang['__text_neu__']          = 'رنگ خنثی متن';
-$lang['__background_neu__']    = 'رنگ خنثی زمینه';
-$lang['__border__']            = 'رنگ حاشیه';
-$lang['__highlight__']         = 'رنگ برجسته‌سازی (برای نتیجه جستجو)';
diff --git a/wiki/lib/plugins/styling/lang/fr/intro.txt b/wiki/lib/plugins/styling/lang/fr/intro.txt
deleted file mode 100644
index 14a615c..0000000
--- a/wiki/lib/plugins/styling/lang/fr/intro.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-Cet outil vous permet de changer les paramètres de certains style de votre thème actuel.
-Tous les changement sont enregistrés dans un fichier de configuration local qui sera inchangé en cas de mise à jour.
\ No newline at end of file
diff --git a/wiki/lib/plugins/styling/lang/fr/lang.php b/wiki/lib/plugins/styling/lang/fr/lang.php
deleted file mode 100644
index 05725bc..0000000
--- a/wiki/lib/plugins/styling/lang/fr/lang.php
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Carbain Frédéric <fcarbain@yahoo.fr>
- * @author Nicolas Friedli <nicolas@theologique.ch>
- * @author Schplurtz le Déboulonné <Schplurtz@laposte.net>
- */
-$lang['menu']                  = 'Paramètres de style du thème (template)';
-$lang['js']['loader']          = 'La prévisualisation est en chargement... <br />Si rien ne se passe, les données sont peut-être erronées';
-$lang['js']['popup']           = 'Ouvrir dans une nouvelle fenêtre';
-$lang['error']                 = 'Désolé, ce thème n\'utilise pas cette fonctionnalité.';
-$lang['btn_preview']           = 'Aperçu des changements';
-$lang['btn_save']              = 'sauvegarder les changements.';
-$lang['btn_reset']             = 'Remettre les changements courants à zéro';
-$lang['btn_revert']            = 'Remettre les styles du thème aux valeurs par défaut';
-$lang['__text__']              = 'Couleur de texte principale';
-$lang['__background__']        = 'Couleur de fond principale';
-$lang['__text_alt__']          = 'Couleur de texte alternative';
-$lang['__background_alt__']    = 'Couleur de fond alternative';
-$lang['__text_neu__']          = 'Couleur de texte neutre';
-$lang['__background_neu__']    = 'Couleur de fond neutre';
-$lang['__border__']            = 'Couleur des contours';
-$lang['__highlight__']         = 'Couleur de surbrillance (utilisée pincipalement pour les résultats de recherche)';
diff --git a/wiki/lib/plugins/styling/lang/hr/intro.txt b/wiki/lib/plugins/styling/lang/hr/intro.txt
deleted file mode 100644
index 5c947dd..0000000
--- a/wiki/lib/plugins/styling/lang/hr/intro.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-Ovaj alat omogućava izmjenu nekih postavki stila vašeg tekućeg wiki predloška.
-Sve postavke su snimljene u lokalnu konfiguracijsku datoteku i neće biti prebrisane kod nadogradnje.
\ No newline at end of file
diff --git a/wiki/lib/plugins/styling/lang/hr/lang.php b/wiki/lib/plugins/styling/lang/hr/lang.php
deleted file mode 100644
index 4d7038a..0000000
--- a/wiki/lib/plugins/styling/lang/hr/lang.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Davor Turkalj <turki.bsc@gmail.com>
- */
-$lang['menu']                  = 'Postavke stila predloška';
-$lang['js']['loader']          = 'Pregled se uÄitava...<br />ako ovo ne nestane, vaÅ¡e vrijednosti su možda neispravne';
-$lang['js']['popup']           = 'Otvori kao zasebni prozor';
-$lang['error']                 = 'Oprostite ali ovaj predložak ne podržava ovu funkcionalnost';
-$lang['btn_preview']           = 'Pregled izmjena';
-$lang['btn_save']              = 'Pohrani promjene';
-$lang['btn_reset']             = 'Resetiraj trenutne promjene';
-$lang['btn_revert']            = 'Vrati postavke nazad na inicijalne vrijednosti predloška';
-$lang['__text__']              = 'Primarna boja teksta';
-$lang['__background__']        = 'Primarna boja pozadine';
-$lang['__text_alt__']          = 'Alternativna boja teksta';
-$lang['__background_alt__']    = 'Alternativna boja pozadine';
-$lang['__text_neu__']          = 'Boja neutralnog teksta';
-$lang['__background_neu__']    = 'Boja neutralne pozadine';
-$lang['__border__']            = 'Boja ruba';
-$lang['__highlight__']         = 'Boja isticanja (uglavnom za rezultat pretrage)';
diff --git a/wiki/lib/plugins/styling/lang/hu/intro.txt b/wiki/lib/plugins/styling/lang/hu/intro.txt
deleted file mode 100644
index 42f451d..0000000
--- a/wiki/lib/plugins/styling/lang/hu/intro.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-Ezzel az eszközzel módosíthatod az aktuális sablon kinézetének néhány elemét.
-A változtatások egy helyi konfigurációs fájlban kerülnek tárolásra, így a frissítések során megmaradnak.
\ No newline at end of file
diff --git a/wiki/lib/plugins/styling/lang/hu/lang.php b/wiki/lib/plugins/styling/lang/hu/lang.php
deleted file mode 100644
index c6ef5de..0000000
--- a/wiki/lib/plugins/styling/lang/hu/lang.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author Marton Sebok <sebokmarton@gmail.com>
- */
-$lang['menu']                  = 'Sablon kinézetének beállításai';
-$lang['js']['loader']          = 'Az előnézet töltődik...<br />ha ez az üzenet nem tűnik el, a beállított értékek hibásak lehetnek';
-$lang['js']['popup']           = 'Megnyitás felugró ablakban';
-$lang['error']                 = 'Ez a sablon sajnos nem támogatja ezt a funkciót';
-$lang['btn_preview']           = 'Változtatások előnézete';
-$lang['btn_save']              = 'Változtatások mentése';
-$lang['btn_reset']             = 'Jelenlegi változtatások visszaállítása';
-$lang['btn_revert']            = 'A sablon alapértelmezett kinézetének visszaállítása';
-$lang['__text__']              = 'Fő szövegszín';
-$lang['__background__']        = 'Fő háttérszín';
-$lang['__text_alt__']          = 'Alternatív szövegszín';
-$lang['__background_alt__']    = 'Alternatív háttérszín';
-$lang['__text_neu__']          = 'Semleges szövegszín';
-$lang['__background_neu__']    = 'Semleges háttérszín';
-$lang['__border__']            = 'Keret színe';
-$lang['__highlight__']         = 'Kijelölés színe (leginkább a keresési eredményeknél)';
diff --git a/wiki/lib/plugins/styling/lang/it/intro.txt b/wiki/lib/plugins/styling/lang/it/intro.txt
deleted file mode 100644
index 6c798e4..0000000
--- a/wiki/lib/plugins/styling/lang/it/intro.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-Questo strumento ti permette di cambiare certe configurazioni di stile del tema attualmente in uso.
-Tutte le modifiche sono salvate in un file di configurazione locale e sono aggiornate in modo sicuro.
\ No newline at end of file
diff --git a/wiki/lib/plugins/styling/lang/it/lang.php b/wiki/lib/plugins/styling/lang/it/lang.php
deleted file mode 100644
index 03b7aa7..0000000
--- a/wiki/lib/plugins/styling/lang/it/lang.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Torpedo <dgtorpedo@gmail.com>
- */
-$lang['menu']                  = 'Configurazioni di stile del tema';
-$lang['js']['loader']          = 'Anteprima in corso...<br />se questo non sparisce, potresti aver fornito dei valori sbagliati';
-$lang['js']['popup']           = 'Apri in un finestra a parte';
-$lang['error']                 = 'Spiacente, questo template non supporta questa funzionalità.';
-$lang['btn_preview']           = 'Cambiamenti precedenti';
-$lang['btn_save']              = 'Salva i cambiamenti';
-$lang['btn_reset']             = 'Azzera le modifiche correnti';
-$lang['btn_revert']            = 'Ripristina gli stili ai valori originari del tema';
-$lang['__text__']              = 'Colore principale del testo';
-$lang['__background__']        = 'Colore principale dello sfondo';
-$lang['__text_alt__']          = 'Colore alternativo per il testo';
-$lang['__background_alt__']    = 'Colore alternativo dello sfondo';
-$lang['__text_neu__']          = 'Colore testo neutrale';
-$lang['__background_neu__']    = 'Colore sfondo neutrale';
-$lang['__border__']            = 'Colore del bordo';
-$lang['__highlight__']         = 'Colore di evidenziazione (principalmente per i risultati di ricerca)';
diff --git a/wiki/lib/plugins/styling/lang/ja/intro.txt b/wiki/lib/plugins/styling/lang/ja/intro.txt
deleted file mode 100644
index 1feb4e0..0000000
--- a/wiki/lib/plugins/styling/lang/ja/intro.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-ã“ã®ç”»é¢ä¸Šã§ã€é¸æŠžä¸­ã®ãƒ†ãƒ³ãƒ—レート固有ã®ã‚¹ã‚¿ã‚¤ãƒ«è¨­å®šã‚’変更ã§ãã¾ã™ã€‚
-変更内容ã¯ã™ã¹ã¦ãƒ­ãƒ¼ã‚«ãƒ«ã®è¨­å®šãƒ•ァイル内ã«ä¿å­˜ã•れã€ãƒ†ãƒ³ãƒ—レートを更新ã—ã¦ã‚‚åˆæœŸåŒ–ã•れã¾ã›ã‚“。
\ No newline at end of file
diff --git a/wiki/lib/plugins/styling/lang/ja/lang.php b/wiki/lib/plugins/styling/lang/ja/lang.php
deleted file mode 100644
index 5c546a7..0000000
--- a/wiki/lib/plugins/styling/lang/ja/lang.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Hideaki SAWADA <chuno@live.jp>
- */
-$lang['menu']                  = 'テンプレートã®ã‚¹ã‚¿ã‚¤ãƒ«è¨­å®š';
-$lang['js']['loader']          = 'プレビューを読込ã¿ä¸­ã§ã™ãƒ»ãƒ»ãƒ»<br/>ã“ã®è¡¨ç¤ºãŒæ¶ˆãˆãªã„å ´åˆã€å¤‰æ›´ã—ãŸè¨­å®šå€¤ã«å•題ãŒã‚ã‚‹ã‹ã‚‚ã—れã¾ã›ã‚“。';
-$lang['js']['popup']           = 'ãƒãƒƒãƒ—アップã¨ã—ã¦è¡¨ç¤º';
-$lang['error']                 = 'ã“ã®ãƒ†ãƒ³ãƒ—レートã¯ã€ã“ã®æ©Ÿèƒ½ã«å¯¾å¿œã—ã¦ã„ã¾ã›ã‚“。';
-$lang['btn_preview']           = '変更内容ã®ãƒ—レビュー';
-$lang['btn_save']              = '変更内容ã®ä¿å­˜';
-$lang['btn_reset']             = '変更内容ã®åˆæœŸåŒ–';
-$lang['btn_revert']            = 'テンプレートã®ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆå€¤ã«æˆ»ã™';
-$lang['__text__']              = 'メイン文字色';
-$lang['__background__']        = 'メイン背景色';
-$lang['__text_alt__']          = '代替文字色';
-$lang['__background_alt__']    = '代替背景色';
-$lang['__text_neu__']          = 'ç„¡å½©è‰²ã®æ–‡å­—色';
-$lang['__background_neu__']    = '無彩色ã®èƒŒæ™¯è‰²';
-$lang['__border__']            = 'æž ç·šã®è‰²';
-$lang['__highlight__']         = 'å¼·èª¿è‰²ï¼ˆä¸»ã«æ¤œç´¢çµæžœç”¨ï¼‰';
diff --git a/wiki/lib/plugins/styling/lang/ko/intro.txt b/wiki/lib/plugins/styling/lang/ko/intro.txt
deleted file mode 100644
index c460801..0000000
--- a/wiki/lib/plugins/styling/lang/ko/intro.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-ì´ ë„구는 현재 ì„ íƒí•œ í…œí”Œë¦¿ì˜ íŠ¹ì • ìŠ¤íƒ€ì¼ ì„¤ì •ì„ ë°”ê¿€ 수 있습니다.
-모든 ë°”ë€œì€ ë¡œì»¬ 환경 설정 파ì¼ì— 저장ë˜ë©° 안전하게 업그레ì´ë“œë©ë‹ˆë‹¤.
\ No newline at end of file
diff --git a/wiki/lib/plugins/styling/lang/ko/lang.php b/wiki/lib/plugins/styling/lang/ko/lang.php
deleted file mode 100644
index bcdf9dc..0000000
--- a/wiki/lib/plugins/styling/lang/ko/lang.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Myeongjin <aranet100@gmail.com>
- */
-$lang['menu']                  = '템플릿 ìŠ¤íƒ€ì¼ ì„¤ì •';
-$lang['js']['loader']          = '미리 보기를 불러오는 중...<br />만약 ì´ê²ƒì´ 사ë¼ì§€ì§€ 않는다면, ë‹¹ì‹ ì€ ì‹¤ë§í•˜ê² ì£ ';
-$lang['js']['popup']           = 'íŒì—…으로 열기';
-$lang['error']                 = '죄송하지만 ì´ í…œí”Œë¦¿ì€ ì´ ê¸°ëŠ¥ìœ¼ë¡œ ì§€ì›í•˜ì§€ 않습니다.';
-$lang['btn_preview']           = '바뀜 미리 보기';
-$lang['btn_save']              = '바뀜 저장';
-$lang['btn_reset']             = '현재 바뀜 재설정';
-$lang['btn_revert']            = 'í‹€ì˜ ê¸°ë³¸ê°’ìœ¼ë¡œ 스타ì¼ì„ ë˜ëŒë¦¬ê¸°';
-$lang['__text__']              = '주요 í…스트 색';
-$lang['__background__']        = '주요 배경 색';
-$lang['__text_alt__']          = '대체 í…스트 색';
-$lang['__background_alt__']    = '대체 배경 색';
-$lang['__text_neu__']          = '중립 í…스트 색';
-$lang['__background_neu__']    = '중립 배경 색';
-$lang['__border__']            = '윤곽선 색';
-$lang['__highlight__']         = '(주로 검색 결과를 위한) 강조 색';
diff --git a/wiki/lib/plugins/styling/lang/nl/intro.txt b/wiki/lib/plugins/styling/lang/nl/intro.txt
deleted file mode 100644
index 7275938..0000000
--- a/wiki/lib/plugins/styling/lang/nl/intro.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-Deze tool laat u een aantal stijlinstellingen van uw huidig geselecteerde template aanpassen.
-Alle aanpassingen worden in een lokaal configuratiebestand bewaard en zijn upgrade veilig.
diff --git a/wiki/lib/plugins/styling/lang/nl/lang.php b/wiki/lib/plugins/styling/lang/nl/lang.php
deleted file mode 100644
index 4775fa8..0000000
--- a/wiki/lib/plugins/styling/lang/nl/lang.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Mark C. Prins <mprins@users.sf.net>
- * @author hugo smet <hugo.smet@scarlet.be>
- */
-$lang['menu']                  = 'Template stijl-instellingen';
-$lang['js']['loader']          = 'Voorbeeldweergave is aan het laden...<br />als dit niet verdwijnt zijn uw instellingen mogelijk foutief.';
-$lang['js']['popup']           = 'Open als popup';
-$lang['error']                 = 'Sorry, deze template ondersteunt deze functionaliteit niet.';
-$lang['btn_preview']           = 'Bekijk aanpassingen';
-$lang['btn_save']              = 'Sla aanpassingen op';
-$lang['btn_reset']             = 'Huidige aanpassingen verwerpen';
-$lang['btn_revert']            = 'Stijlen terugzetten naar de standaard waardes van de template';
-$lang['__text__']              = 'Hoofd tekstkleur';
-$lang['__background__']        = 'Hoofd achtergrondkleur';
-$lang['__text_alt__']          = 'Alternatieve tekstkleur';
-$lang['__background_alt__']    = 'Alternatieve achtergrondkleur';
-$lang['__text_neu__']          = 'Neutrale tekstkleur';
-$lang['__background_neu__']    = 'Neutrale achtergrondkleur';
-$lang['__border__']            = 'Kader kleur';
-$lang['__highlight__']         = 'Markeringskleur (hoofdzakelijk voor zoekresultaten)';
diff --git a/wiki/lib/plugins/styling/lang/no/intro.txt b/wiki/lib/plugins/styling/lang/no/intro.txt
deleted file mode 100644
index 8222549..0000000
--- a/wiki/lib/plugins/styling/lang/no/intro.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-Dette verktøyet lar deg endre visse instillinger for malen som nå er i bruk.
-Alle endringer lagres i en lokal konfigurasjonsfil og vil ikke bli overskrevet ved en oppgradering.
\ No newline at end of file
diff --git a/wiki/lib/plugins/styling/lang/no/lang.php b/wiki/lib/plugins/styling/lang/no/lang.php
deleted file mode 100644
index f9a478b..0000000
--- a/wiki/lib/plugins/styling/lang/no/lang.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Arne Hanssen <arne.hanssen@getmail.no>
- * @author Arne Hanssen <arnehans@getmail.no>
- */
-$lang['menu']                  = 'Innstillinger for malstil';
-$lang['js']['loader']          = 'Forhåndsvisning laster...<br />Dersom denne ikke forsvinner, kan det hende at dine verdier er feil';
-$lang['js']['popup']           = 'Ã…pne som nytt vindu';
-$lang['error']                 = 'Beklager men denne malen støtter ikke denne funksjonaliteten.';
-$lang['btn_preview']           = 'Forhåndsvis endringer';
-$lang['btn_save']              = 'Lagre endringer';
-$lang['btn_reset']             = 'Sett tilbake til nåværende endringer';
-$lang['btn_revert']            = 'Rull tilbake stilen til standard for malen';
-$lang['__text__']              = 'Hovedfarge for tekst';
-$lang['__background__']        = 'Hovedfarge for bagrunn';
-$lang['__text_alt__']          = 'Alternativ tekstfarge';
-$lang['__background_alt__']    = 'Alternativ bakgrunnsfarge';
-$lang['__text_neu__']          = 'Nøytral tekstfarge';
-$lang['__background_neu__']    = 'Nøytral bakgrunnsfarge';
-$lang['__border__']            = 'Kantfarge';
-$lang['__highlight__']         = 'Farge for uthevet tekst (i hovedsak for søk)';
diff --git a/wiki/lib/plugins/styling/lang/pl/intro.txt b/wiki/lib/plugins/styling/lang/pl/intro.txt
deleted file mode 100644
index 29206a8..0000000
--- a/wiki/lib/plugins/styling/lang/pl/intro.txt
+++ /dev/null
@@ -1 +0,0 @@
-To narzędzie umożliwia zmianę niektórych ustawień stylów aktualnie wybranego szablonu. Wszystkie zmiany są przechowywane w lokalnym pliku konfiguracyjnym i są bezpieczne dla aktualizacji.
\ No newline at end of file
diff --git a/wiki/lib/plugins/styling/lang/pl/lang.php b/wiki/lib/plugins/styling/lang/pl/lang.php
deleted file mode 100644
index e4c84ba..0000000
--- a/wiki/lib/plugins/styling/lang/pl/lang.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Wojciech Lichota <wojciech@lichota.pl>
- * @author Max <maxrb146@gmail.com>
- */
-$lang['menu']                  = 'Ustawienia Szablonu';
-$lang['js']['loader']          = 'Podgląd ładuje się ...<br />jeśli ten komunikat nie zniknie, twoje wartości mogą być błędne';
-$lang['js']['popup']           = 'Otwórz w nowym oknie';
-$lang['error']                 = 'Przepraszamy, ten szablon nie wspiera tej funkcjonalności';
-$lang['btn_preview']           = 'Pokaż zmiany ';
-$lang['btn_save']              = 'Zapisz zmiany';
-$lang['btn_reset']             = 'Cofnij zmiany ';
-$lang['btn_revert']            = 'Przywróć style do wartości domyślnych szablonu';
-$lang['__text__']              = 'Kolor tekstu ';
-$lang['__background__']        = 'Kolor tła ';
-$lang['__text_alt__']          = 'Inny kolor tekstu';
-$lang['__background_alt__']    = 'Inny kolor tła';
-$lang['__text_neu__']          = 'Kolor neutralnego tekstu';
-$lang['__background_neu__']    = 'Kolor neutralnego tła';
-$lang['__border__']            = 'kolor obramowania ';
-$lang['__highlight__']         = 'Kolor podświetlenia (głównie dla wyników wyszukiwania)';
diff --git a/wiki/lib/plugins/styling/lang/pt-br/intro.txt b/wiki/lib/plugins/styling/lang/pt-br/intro.txt
deleted file mode 100644
index 3d0f47f..0000000
--- a/wiki/lib/plugins/styling/lang/pt-br/intro.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-Essa ferramente permite a alteração de certas configurações do estilo do seu modelo atual.
-Todas as modificações são armazenadas em um arquivo de configuração local e estão protegidas contra atualizações.
\ No newline at end of file
diff --git a/wiki/lib/plugins/styling/lang/pt-br/lang.php b/wiki/lib/plugins/styling/lang/pt-br/lang.php
deleted file mode 100644
index 4ebcbe5..0000000
--- a/wiki/lib/plugins/styling/lang/pt-br/lang.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Frederico Gonçalves Guimarães <frederico@teia.bio.br>
- */
-$lang['menu']                  = 'Configurações de estilo do modelo';
-$lang['js']['loader']          = 'A visualização está carregando...<br />Caso essa mensagem não desapareça, pode ter algum problema com os seus valores.';
-$lang['js']['popup']           = 'Abrir como um popup';
-$lang['error']                 = 'Desculpe, mas esse modelo não suporta essa funcionalidade.';
-$lang['btn_preview']           = 'Ver alterações';
-$lang['btn_save']              = 'Salvar alterações';
-$lang['btn_reset']             = 'Eliminar as alterações atuais';
-$lang['btn_revert']            = 'Reverter o estilo para os padrões do modelo';
-$lang['__text__']              = 'Cor principal do texto';
-$lang['__background__']        = 'Cor principal do fundo';
-$lang['__text_alt__']          = 'Cor alternativa do texto';
-$lang['__background_alt__']    = 'Cor alternativa do fundo';
-$lang['__text_neu__']          = 'Cor neutra do texto';
-$lang['__background_neu__']    = 'Cor neutra do fundo';
-$lang['__border__']            = 'Cor da borda';
-$lang['__highlight__']         = 'Cor do destaque (primariamente em resultados da pesquisa)';
diff --git a/wiki/lib/plugins/styling/lang/pt/lang.php b/wiki/lib/plugins/styling/lang/pt/lang.php
deleted file mode 100644
index 1c64c04..0000000
--- a/wiki/lib/plugins/styling/lang/pt/lang.php
+++ /dev/null
@@ -1,19 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Alfredo Silva <alfredo.silva@sky.com>
- * @author Guilherme Sá <guilherme.sa@hotmail.com>
- */
-$lang['menu']                  = 'Configurações de Estilo do Modelo';
-$lang['js']['popup']           = 'Abrir como uma janela extra';
-$lang['error']                 = 'Desculpe, este modelo não suporta esta funcionalidade.';
-$lang['btn_preview']           = 'Pré-visualizar alterações';
-$lang['btn_save']              = 'Guardar alterações';
-$lang['btn_reset']             = 'Reiniciar alterações atuais';
-$lang['__text__']              = 'Cor do texto principal';
-$lang['__background__']        = 'Cor principal do fundo';
-$lang['__text_alt__']          = 'Cor alternativa de texto';
-$lang['__background_alt__']    = 'Cor alternativa de fundo';
-$lang['__text_neu__']          = 'Cor neutra de texto';
diff --git a/wiki/lib/plugins/styling/lang/ru/intro.txt b/wiki/lib/plugins/styling/lang/ru/intro.txt
deleted file mode 100644
index 3a01411..0000000
--- a/wiki/lib/plugins/styling/lang/ru/intro.txt
+++ /dev/null
@@ -1 +0,0 @@
-Этот инÑтрумент позволÑет изменÑть Ñтилевые наÑтройки выбранного шаблона. Ð’Ñе Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ñ…Ñ€Ð°Ð½ÑÑ‚ÑÑ Ð²Â Ñ„Ð°Ð¹Ð»Ðµ конфигурации и защищены от ÑброÑа при обновлении.
diff --git a/wiki/lib/plugins/styling/lang/ru/lang.php b/wiki/lib/plugins/styling/lang/ru/lang.php
deleted file mode 100644
index 3c8e60b..0000000
--- a/wiki/lib/plugins/styling/lang/ru/lang.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author RainbowSpike <1@2.ru>
- */
-$lang['menu']                  = 'ÐаÑтройки Ñтилей шаблона';
-$lang['js']['loader']          = 'ЗагружаетÑÑ Ð¿Ñ€ÐµÐ´Ð¿Ñ€Ð¾Ñмотр...<br />ЕÑли здеÑÑŒ ÑлучилÑÑ Ñбой, ваши наÑтройки могут быть Ñброшены';
-$lang['js']['popup']           = 'Открыть во вÑплывающем окне';
-$lang['error']                 = 'Этот шаблон не поддерживает такой функционал.';
-$lang['btn_preview']           = 'ПроÑмотреть изменениÑ';
-$lang['btn_save']              = 'Сохранить изменениÑ';
-$lang['btn_reset']             = 'СброÑить Ñделанные изменениÑ';
-$lang['btn_revert']            = 'Откатить Ñтили к иÑходным Ð´Ð»Ñ ÑˆÐ°Ð±Ð»Ð¾Ð½Ð°';
-$lang['__text__']              = 'Цвет текÑта';
-$lang['__background__']        = 'Цвет фона';
-$lang['__text_alt__']          = 'Второй цвет текÑта';
-$lang['__background_alt__']    = 'Второй цвет фона';
-$lang['__text_neu__']          = 'Ðейтральный цвет текÑта';
-$lang['__background_neu__']    = 'Ðейтральный цвет фона';
-$lang['__border__']            = 'Цвет границ';
-$lang['__highlight__']         = 'Цвет подÑветки (в оÑновном Ð´Ð»Ñ Ñ€ÐµÐ·ÑƒÐ»ÑŒÑ‚Ð°Ñ‚Ð¾Ð² поиÑка)';
diff --git a/wiki/lib/plugins/styling/lang/sk/lang.php b/wiki/lib/plugins/styling/lang/sk/lang.php
deleted file mode 100644
index 0058358..0000000
--- a/wiki/lib/plugins/styling/lang/sk/lang.php
+++ /dev/null
@@ -1,18 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Martin Michalek <michalek.dev@gmail.com>
- */
-$lang['btn_preview']           = 'Náhľad zmien';
-$lang['btn_save']              = 'Uloženie zmien';
-$lang['btn_reset']             = 'Zruš prevedené zmeny';
-$lang['__text__']              = 'Primárna farba textu';
-$lang['__background__']        = 'Primárna farba pozadia';
-$lang['__text_alt__']          = 'Alternatívna farba textu';
-$lang['__background_alt__']    = 'Alternatívna farba pozadia';
-$lang['__text_neu__']          = 'Neutrálna farba textu';
-$lang['__background_neu__']    = 'Neutrálna farba pozadia';
-$lang['__border__']            = 'Farba okraja';
-$lang['__highlight__']         = 'Farba zvýraznenia (zvyÄajne výsledkov vyhľadávania)';
diff --git a/wiki/lib/plugins/styling/lang/sv/lang.php b/wiki/lib/plugins/styling/lang/sv/lang.php
deleted file mode 100644
index 00a8518..0000000
--- a/wiki/lib/plugins/styling/lang/sv/lang.php
+++ /dev/null
@@ -1,17 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Tor Härnqvist <tor@harnqvist.se>
- */
-$lang['btn_preview']           = 'Förhandsvisa ändringar';
-$lang['btn_save']              = 'Spara ändringar';
-$lang['btn_reset']             = 'Nollställ aktuella ändringar';
-$lang['__text__']              = 'Huvudsaklig textfärg';
-$lang['__background__']        = 'Huvudsaklig bakgrundsfärg';
-$lang['__text_alt__']          = 'Alternativ textfärg';
-$lang['__background_alt__']    = 'Alternativ bakgrundsfärg';
-$lang['__text_neu__']          = 'Neutral textfärg';
-$lang['__background_neu__']    = 'Neutral bakgrundsfärg';
-$lang['__border__']            = 'Ramfärg';
diff --git a/wiki/lib/plugins/styling/lang/zh-tw/lang.php b/wiki/lib/plugins/styling/lang/zh-tw/lang.php
deleted file mode 100644
index ce4a9a9..0000000
--- a/wiki/lib/plugins/styling/lang/zh-tw/lang.php
+++ /dev/null
@@ -1,15 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author Liou, Jhe-Yu <lioujheyu@gmail.com>
- */
-$lang['menu']                  = '模æ¿é¢¨æ ¼è¨­å®š';
-$lang['error']                 = '抱歉,該模æ¿ä¸æ”¯æŒé€™å€‹åŠŸèƒ½';
-$lang['btn_preview']           = 'é è¦½';
-$lang['btn_save']              = '儲存';
-$lang['btn_reset']             = 'é‡è¨­';
-$lang['btn_revert']            = '將風格復原至模æ¿é è¨­å€¼';
-$lang['__text__']              = 'ä¸»è¦æ–‡å­—é¡è‰²';
-$lang['__background__']        = '主è¦èƒŒæ™¯é¡è‰²';
diff --git a/wiki/lib/plugins/styling/lang/zh/intro.txt b/wiki/lib/plugins/styling/lang/zh/intro.txt
deleted file mode 100644
index 7091712..0000000
--- a/wiki/lib/plugins/styling/lang/zh/intro.txt
+++ /dev/null
@@ -1 +0,0 @@
-这个工具å¯ä»¥è®©æ‚¨å¯¹å½“å‰é€‰ä¸­çš„æ¨¡æ¿çš„æŸäº›æ ·å¼è®¾ç½®è¿›è¡Œæ”¹å˜ã€‚所有改动会ä¿å­˜åœ¨ä¸€ä¸ªæœ¬åœ°é…置文件中,ä¸ä¼šè¢«å‡çº§æ‰€å½±å“。
\ No newline at end of file
diff --git a/wiki/lib/plugins/styling/lang/zh/lang.php b/wiki/lib/plugins/styling/lang/zh/lang.php
deleted file mode 100644
index 386312a..0000000
--- a/wiki/lib/plugins/styling/lang/zh/lang.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author lainme <lainme993@gmail.com>
- */
-$lang['menu']                  = 'æ¨¡æ¿æ ·å¼è®¾ç½®';
-$lang['js']['loader']          = '正在载入预览...<br />如果本å¥ä¸€ç›´æ²¡æœ‰æ¶ˆå¤±ï¼Œæ‚¨çš„设置å¯èƒ½æœ‰é”™';
-$lang['js']['popup']           = 'ä½œä¸ºå¼¹å‡ºçª—å£æ‰“å¼€';
-$lang['error']                 = '抱歉,这个模æ¿ä¸æ”¯æŒè¿™é¡¹åŠŸèƒ½ã€‚';
-$lang['btn_preview']           = '预览改动';
-$lang['btn_save']              = 'ä¿å­˜æ”¹åЍ';
-$lang['btn_reset']             = 'é‡ç½®å½“剿”¹åЍ';
-$lang['btn_revert']            = '回退样å¼åˆ°æ¨¡æ¿çš„默认值';
-$lang['__text__']              = '主è¦çš„字体颜色';
-$lang['__background__']        = '主è¦çš„背景颜色';
-$lang['__text_alt__']          = '备选字体的颜色';
-$lang['__background_alt__']    = '备选背景的颜色';
-$lang['__text_neu__']          = '中性字体的颜色';
-$lang['__background_neu__']    = '中性背景的颜色';
-$lang['__border__']            = '边框颜色';
-$lang['__highlight__']         = '高亮颜色 (主è¦ç”¨äºŽæœç´¢ç»“æžœ)';
diff --git a/wiki/lib/plugins/styling/plugin.info.txt b/wiki/lib/plugins/styling/plugin.info.txt
deleted file mode 100644
index 9f002e2..0000000
--- a/wiki/lib/plugins/styling/plugin.info.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-base   styling
-author Andreas Gohr
-email  andi@splitbrain.org
-date   2015-07-26
-name   styling plugin
-desc   Allows to edit style.ini replacements
-url    https://www.dokuwiki.org/plugin:styling
diff --git a/wiki/lib/plugins/styling/popup.php b/wiki/lib/plugins/styling/popup.php
deleted file mode 100644
index 964b19e..0000000
--- a/wiki/lib/plugins/styling/popup.php
+++ /dev/null
@@ -1,30 +0,0 @@
-<?php
-if(!defined('DOKU_INC')) define('DOKU_INC', dirname(__FILE__) . '/../../../');
-require_once(DOKU_INC . 'inc/init.php');
-//close session
-session_write_close();
-header('Content-Type: text/html; charset=utf-8');
-header('X-UA-Compatible: IE=edge,chrome=1');
-
-/** @var admin_plugin_styling $plugin */
-$plugin = plugin_load('admin', 'styling');
-if(!auth_isadmin()) die('only admins allowed');
-$plugin->ispopup = true;
-
-// handle posts
-$plugin->handle();
-
-// output plugin in a very minimal template:
-?><!DOCTYPE html>
-<html lang="<?php echo $conf['lang'] ?>" dir="<?php echo $lang['direction'] ?>">
-<head>
-    <meta charset="utf-8" />
-    <title><?php echo $plugin->getLang('menu') ?></title>
-    <?php tpl_metaheaders(false) ?>
-    <meta name="viewport" content="width=device-width,initial-scale=1" />
-    <?php echo tpl_favicon(array('favicon')) ?>
-</head>
-<body class="dokuwiki">
-    <?php $plugin->html() ?>
-</body>
-</html>
diff --git a/wiki/lib/plugins/styling/script.js b/wiki/lib/plugins/styling/script.js
deleted file mode 100644
index 074c8dc..0000000
--- a/wiki/lib/plugins/styling/script.js
+++ /dev/null
@@ -1,97 +0,0 @@
-/* DOKUWIKI:include_once iris.js */
-
-jQuery(function () {
-
-    /**
-     * Function to reload the preview styles in the main window
-     *
-     * @param {Window} target the main window
-     */
-    function applyPreview(target) {
-        // remove style
-        var $style = target.jQuery('link[rel=stylesheet][href*="lib/exe/css.php"]');
-        $style.attr('href', '');
-
-        // append the loader screen
-        var $loader = target.jQuery('#plugin__styling_loader');
-        if (!$loader.length) {
-            $loader = target.jQuery('<div id="plugin__styling_loader">' + LANG.plugins.styling.loader + '</div>');
-            $loader.css({
-                'position':         'absolute',
-                'width':            '100%',
-                'height':           '100%',
-                'top':              0,
-                'left':             0,
-                'z-index':          5000,
-                'background-color': '#fff',
-                'opacity':          '0.7',
-                'color':            '#000',
-                'font-size':        '2.5em',
-                'text-align':       'center',
-                'line-height':      1.5,
-                'padding-top':      '2em'
-            });
-            target.jQuery('body').append($loader);
-        }
-
-        // load preview in main window (timeout works around chrome updating CSS weirdness)
-        setTimeout(function () {
-            var now = new Date().getTime();
-            $style.attr('href', DOKU_BASE + 'lib/exe/css.php?preview=1&tseed=' + now);
-        }, 500);
-    }
-
-    var doreload = 1;
-    var $styling_plugin = jQuery('#plugin__styling');
-
-    // if we are not on the plugin page (either main or popup)
-    if (!$styling_plugin.length) {
-        // handle the preview cookie
-        if(DokuCookie.getValue('styling_plugin') == 1) {
-            applyPreview(window);
-        }
-        return; // nothing more to do here
-    }
-
-    /* ---- from here on we're in the popup or admin page ---- */
-
-    // add the color picker
-    $styling_plugin.find('.color').iris({});
-
-    // add button on main page
-    if (!$styling_plugin.hasClass('ispopup')) {
-        var $form = $styling_plugin.find('form.styling').first();
-        var $btn = jQuery('<button>' + LANG.plugins.styling.popup + '</button>');
-        $form.prepend($btn);
-
-        $btn.click(function (e) {
-            var windowFeatures = "menubar=no,location=no,resizable=yes,scrollbars=yes,status=false,width=500,height=500";
-            window.open(DOKU_BASE + 'lib/plugins/styling/popup.php', 'styling_popup', windowFeatures);
-            e.preventDefault();
-            e.stopPropagation();
-        }).wrap('<p></p>');
-        return; // we exit here if this is not the popup
-    }
-
-    /* ---- from here on we're in the popup only ---- */
-
-    // reload the main page on close
-    window.onunload = function(e) {
-        if(doreload) {
-            window.opener.DokuCookie.setValue('styling_plugin', 0);
-            window.opener.document.location.reload();
-        }
-        return null;
-    };
-
-    // don't reload on our own buttons
-    jQuery(':button').click(function(e){
-        doreload = false;
-    });
-
-    // on first load apply preview
-    applyPreview(window.opener);
-
-    // enable the preview cookie
-    window.opener.DokuCookie.setValue('styling_plugin', 1);
-});
diff --git a/wiki/lib/plugins/styling/style.less b/wiki/lib/plugins/styling/style.less
deleted file mode 100644
index be0e16a..0000000
--- a/wiki/lib/plugins/styling/style.less
+++ /dev/null
@@ -1,13 +0,0 @@
-#plugin__styling {
-    button.primary {
-        font-weight: bold;
-    }
-
-    [dir=rtl] & table input {
-        text-align: right;
-    }
-}
-
-#plugin__styling_loader {
-    display: none;
-}
diff --git a/wiki/lib/plugins/syntax.php b/wiki/lib/plugins/syntax.php
deleted file mode 100644
index 9e2913d..0000000
--- a/wiki/lib/plugins/syntax.php
+++ /dev/null
@@ -1,134 +0,0 @@
-<?php
-/**
- * Syntax Plugin Prototype
- *
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * @author     Andreas Gohr <andi@splitbrain.org>
- */
-// must be run within Dokuwiki
-if(!defined('DOKU_INC')) die();
-
-/**
- * All DokuWiki plugins to extend the parser/rendering mechanism
- * need to inherit from this class
- */
-class DokuWiki_Syntax_Plugin extends Doku_Parser_Mode_Plugin {
-
-    var $allowedModesSetup = false;
-
-    /**
-     * Syntax Type
-     *
-     * Needs to return one of the mode types defined in $PARSER_MODES in parser.php
-     *
-     * @return string
-     */
-    function getType(){
-        trigger_error('getType() not implemented in '.get_class($this), E_USER_WARNING);
-        return '';
-    }
-
-    /**
-     * Allowed Mode Types
-     *
-     * Defines the mode types for other dokuwiki markup that maybe nested within the
-     * plugin's own markup. Needs to return an array of one or more of the mode types
-     * defined in $PARSER_MODES in parser.php
-     *
-     * @return array
-     */
-    function getAllowedTypes() {
-        return array();
-    }
-
-    /**
-     * Paragraph Type
-     *
-     * Defines how this syntax is handled regarding paragraphs. This is important
-     * for correct XHTML nesting. Should return one of the following:
-     *
-     * 'normal' - The plugin can be used inside paragraphs
-     * 'block'  - Open paragraphs need to be closed before plugin output
-     * 'stack'  - Special case. Plugin wraps other paragraphs.
-     *
-     * @see Doku_Handler_Block
-     *
-     * @return string
-     */
-    function getPType(){
-        return 'normal';
-    }
-
-    /**
-     * Handler to prepare matched data for the rendering process
-     *
-     * This function can only pass data to render() via its return value - render()
-     * may be not be run during the object's current life.
-     *
-     * Usually you should only need the $match param.
-     *
-     * @param   string       $match   The text matched by the patterns
-     * @param   int          $state   The lexer state for the match
-     * @param   int          $pos     The character position of the matched text
-     * @param   Doku_Handler $handler The Doku_Handler object
-     * @return  bool|array Return an array with all data you want to use in render, false don't add an instruction
-     */
-    function handle($match, $state, $pos, Doku_Handler $handler){
-        trigger_error('handle() not implemented in '.get_class($this), E_USER_WARNING);
-    }
-
-    /**
-     * Handles the actual output creation.
-     *
-     * The function must not assume any other of the classes methods have been run
-     * during the object's current life. The only reliable data it receives are its
-     * parameters.
-     *
-     * The function should always check for the given output format and return false
-     * when a format isn't supported.
-     *
-     * $renderer contains a reference to the renderer object which is
-     * currently handling the rendering. You need to use it for writing
-     * the output. How this is done depends on the renderer used (specified
-     * by $format
-     *
-     * The contents of the $data array depends on what the handler() function above
-     * created
-     *
-     * @param string          $format   output format being rendered
-     * @param Doku_Renderer   $renderer the current renderer object
-     * @param array           $data     data created by handler()
-     * @return  boolean                 rendered correctly? (however, returned value is not used at the moment)
-     */
-    function render($format, Doku_Renderer $renderer, $data) {
-        trigger_error('render() not implemented in '.get_class($this), E_USER_WARNING);
-
-    }
-
-    /**
-     *  There should be no need to override this function
-     *
-     * @param string $mode
-     * @return bool
-     */
-    function accepts($mode) {
-
-        if (!$this->allowedModesSetup) {
-            global $PARSER_MODES;
-
-            $allowedModeTypes = $this->getAllowedTypes();
-            foreach($allowedModeTypes as $mt) {
-                $this->allowedModes = array_merge($this->allowedModes, $PARSER_MODES[$mt]);
-            }
-
-            $idx = array_search(substr(get_class($this), 7), (array) $this->allowedModes);
-            if ($idx !== false) {
-                unset($this->allowedModes[$idx]);
-            }
-            $this->allowedModesSetup = true;
-        }
-
-        return parent::accepts($mode);
-    }
-}
-//Setup VIM: ex: et ts=4 :
diff --git a/wiki/lib/plugins/usermanager/admin.php b/wiki/lib/plugins/usermanager/admin.php
deleted file mode 100644
index 6d9bf3b..0000000
--- a/wiki/lib/plugins/usermanager/admin.php
+++ /dev/null
@@ -1,1083 +0,0 @@
-<?php
-/*
- *  User Manager
- *
- *  Dokuwiki Admin Plugin
- *
- *  This version of the user manager has been modified to only work with
- *  objectified version of auth system
- *
- *  @author  neolao <neolao@neolao.com>
- *  @author  Chris Smith <chris@jalakai.co.uk>
- */
-// must be run within Dokuwiki
-if(!defined('DOKU_INC')) die();
-
-if(!defined('DOKU_PLUGIN_IMAGES')) define('DOKU_PLUGIN_IMAGES',DOKU_BASE.'lib/plugins/usermanager/images/');
-
-/**
- * All DokuWiki plugins to extend the admin function
- * need to inherit from this class
- */
-class admin_plugin_usermanager extends DokuWiki_Admin_Plugin {
-
-    protected $_auth = null;        // auth object
-    protected $_user_total = 0;     // number of registered users
-    protected $_filter = array();   // user selection filter(s)
-    protected $_start = 0;          // index of first user to be displayed
-    protected $_last = 0;           // index of the last user to be displayed
-    protected $_pagesize = 20;      // number of users to list on one page
-    protected $_edit_user = '';     // set to user selected for editing
-    protected $_edit_userdata = array();
-    protected $_disabled = '';      // if disabled set to explanatory string
-    protected $_import_failures = array();
-    protected $_lastdisabled = false; // set to true if last user is unknown and last button is hence buggy
-
-    /**
-     * Constructor
-     */
-    public function __construct(){
-        /** @var DokuWiki_Auth_Plugin $auth */
-        global $auth;
-
-        $this->setupLocale();
-
-        if (!isset($auth)) {
-            $this->_disabled = $this->lang['noauth'];
-        } else if (!$auth->canDo('getUsers')) {
-            $this->_disabled = $this->lang['nosupport'];
-        } else {
-
-            // we're good to go
-            $this->_auth = & $auth;
-
-        }
-
-        // attempt to retrieve any import failures from the session
-        if (!empty($_SESSION['import_failures'])){
-            $this->_import_failures = $_SESSION['import_failures'];
-        }
-    }
-
-    /**
-     * Return prompt for admin menu
-     *
-     * @param string $language
-     * @return string
-     */
-    public function getMenuText($language) {
-
-        if (!is_null($this->_auth))
-          return parent::getMenuText($language);
-
-        return $this->getLang('menu').' '.$this->_disabled;
-    }
-
-    /**
-     * return sort order for position in admin menu
-     *
-     * @return int
-     */
-    public function getMenuSort() {
-        return 2;
-    }
-
-    /**
-     * @return int current start value for pageination
-     */
-    public function getStart() {
-        return $this->_start;
-    }
-
-    /**
-     * @return int number of users per page
-     */
-    public function getPagesize() {
-        return $this->_pagesize;
-    }
-
-    /**
-     * @param boolean $lastdisabled
-     */
-    public function setLastdisabled($lastdisabled) {
-        $this->_lastdisabled = $lastdisabled;
-    }
-
-    /**
-     * Handle user request
-     *
-     * @return bool
-     */
-    public function handle() {
-        global $INPUT;
-        if (is_null($this->_auth)) return false;
-
-        // extract the command and any specific parameters
-        // submit button name is of the form - fn[cmd][param(s)]
-        $fn   = $INPUT->param('fn');
-
-        if (is_array($fn)) {
-            $cmd = key($fn);
-            $param = is_array($fn[$cmd]) ? key($fn[$cmd]) : null;
-        } else {
-            $cmd = $fn;
-            $param = null;
-        }
-
-        if ($cmd != "search") {
-            $this->_start = $INPUT->int('start', 0);
-            $this->_filter = $this->_retrieveFilter();
-        }
-
-        switch($cmd){
-            case "add"    : $this->_addUser(); break;
-            case "delete" : $this->_deleteUser(); break;
-            case "modify" : $this->_modifyUser(); break;
-            case "edit"   : $this->_editUser($param); break;
-            case "search" : $this->_setFilter($param);
-                            $this->_start = 0;
-                            break;
-            case "export" : $this->_export(); break;
-            case "import" : $this->_import(); break;
-            case "importfails" : $this->_downloadImportFailures(); break;
-        }
-
-        $this->_user_total = $this->_auth->canDo('getUserCount') ? $this->_auth->getUserCount($this->_filter) : -1;
-
-        // page handling
-        switch($cmd){
-            case 'start' : $this->_start = 0; break;
-            case 'prev'  : $this->_start -= $this->_pagesize; break;
-            case 'next'  : $this->_start += $this->_pagesize; break;
-            case 'last'  : $this->_start = $this->_user_total; break;
-        }
-        $this->_validatePagination();
-        return true;
-    }
-
-    /**
-     * Output appropriate html
-     *
-     * @return bool
-     */
-    public function html() {
-        global $ID;
-
-        if(is_null($this->_auth)) {
-            print $this->lang['badauth'];
-            return false;
-        }
-
-        $user_list = $this->_auth->retrieveUsers($this->_start, $this->_pagesize, $this->_filter);
-
-        $page_buttons = $this->_pagination();
-        $delete_disable = $this->_auth->canDo('delUser') ? '' : 'disabled="disabled"';
-
-        $editable = $this->_auth->canDo('UserMod');
-        $export_label = empty($this->_filter) ? $this->lang['export_all'] : $this->lang['export_filtered'];
-
-        print $this->locale_xhtml('intro');
-        print $this->locale_xhtml('list');
-
-        ptln("<div id=\"user__manager\">");
-        ptln("<div class=\"level2\">");
-
-        if ($this->_user_total > 0) {
-            ptln("<p>".sprintf($this->lang['summary'],$this->_start+1,$this->_last,$this->_user_total,$this->_auth->getUserCount())."</p>");
-        } else {
-            if($this->_user_total < 0) {
-                $allUserTotal = 0;
-            } else {
-                $allUserTotal = $this->_auth->getUserCount();
-            }
-            ptln("<p>".sprintf($this->lang['nonefound'], $allUserTotal)."</p>");
-        }
-        ptln("<form action=\"".wl($ID)."\" method=\"post\">");
-        formSecurityToken();
-        ptln("  <div class=\"table\">");
-        ptln("  <table class=\"inline\">");
-        ptln("    <thead>");
-        ptln("      <tr>");
-        ptln("        <th>&#160;</th><th>".$this->lang["user_id"]."</th><th>".$this->lang["user_name"]."</th><th>".$this->lang["user_mail"]."</th><th>".$this->lang["user_groups"]."</th>");
-        ptln("      </tr>");
-
-        ptln("      <tr>");
-        ptln("        <td class=\"rightalign\"><input type=\"image\" src=\"".DOKU_PLUGIN_IMAGES."search.png\" name=\"fn[search][new]\" title=\"".$this->lang['search_prompt']."\" alt=\"".$this->lang['search']."\" class=\"button\" /></td>");
-        ptln("        <td><input type=\"text\" name=\"userid\" class=\"edit\" value=\"".$this->_htmlFilter('user')."\" /></td>");
-        ptln("        <td><input type=\"text\" name=\"username\" class=\"edit\" value=\"".$this->_htmlFilter('name')."\" /></td>");
-        ptln("        <td><input type=\"text\" name=\"usermail\" class=\"edit\" value=\"".$this->_htmlFilter('mail')."\" /></td>");
-        ptln("        <td><input type=\"text\" name=\"usergroups\" class=\"edit\" value=\"".$this->_htmlFilter('grps')."\" /></td>");
-        ptln("      </tr>");
-        ptln("    </thead>");
-
-        if ($this->_user_total) {
-            ptln("    <tbody>");
-            foreach ($user_list as $user => $userinfo) {
-                extract($userinfo);
-                /**
-                 * @var string $name
-                 * @var string $pass
-                 * @var string $mail
-                 * @var array  $grps
-                 */
-                $groups = join(', ',$grps);
-                ptln("    <tr class=\"user_info\">");
-                ptln("      <td class=\"centeralign\"><input type=\"checkbox\" name=\"delete[".hsc($user)."]\" ".$delete_disable." /></td>");
-                if ($editable) {
-                    ptln("    <td><a href=\"".wl($ID,array('fn[edit]['.$user.']' => 1,
-                                                           'do' => 'admin',
-                                                           'page' => 'usermanager',
-                                                           'sectok' => getSecurityToken())).
-                         "\" title=\"".$this->lang['edit_prompt']."\">".hsc($user)."</a></td>");
-                } else {
-                    ptln("    <td>".hsc($user)."</td>");
-                }
-                ptln("      <td>".hsc($name)."</td><td>".hsc($mail)."</td><td>".hsc($groups)."</td>");
-                ptln("    </tr>");
-            }
-            ptln("    </tbody>");
-        }
-
-        ptln("    <tbody>");
-        ptln("      <tr><td colspan=\"5\" class=\"centeralign\">");
-        ptln("        <span class=\"medialeft\">");
-        ptln("          <button type=\"submit\" name=\"fn[delete]\" id=\"usrmgr__del\" ".$delete_disable.">".$this->lang['delete_selected']."</button>");
-        ptln("        </span>");
-        ptln("        <span class=\"mediaright\">");
-        ptln("          <button type=\"submit\" name=\"fn[start]\" ".$page_buttons['start'].">".$this->lang['start']."</button>");
-        ptln("          <button type=\"submit\" name=\"fn[prev]\" ".$page_buttons['prev'].">".$this->lang['prev']."</button>");
-        ptln("          <button type=\"submit\" name=\"fn[next]\" ".$page_buttons['next'].">".$this->lang['next']."</button>");
-        ptln("          <button type=\"submit\" name=\"fn[last]\" ".$page_buttons['last'].">".$this->lang['last']."</button>");
-        ptln("        </span>");
-        if (!empty($this->_filter)) {
-            ptln("    <button type=\"submit\" name=\"fn[search][clear]\">".$this->lang['clear']."</button>");
-        }
-        ptln("        <button type=\"submit\" name=\"fn[export]\">".$export_label."</button>");
-        ptln("        <input type=\"hidden\" name=\"do\"    value=\"admin\" />");
-        ptln("        <input type=\"hidden\" name=\"page\"  value=\"usermanager\" />");
-
-        $this->_htmlFilterSettings(2);
-
-        ptln("      </td></tr>");
-        ptln("    </tbody>");
-        ptln("  </table>");
-        ptln("  </div>");
-
-        ptln("</form>");
-        ptln("</div>");
-
-        $style = $this->_edit_user ? " class=\"edit_user\"" : "";
-
-        if ($this->_auth->canDo('addUser')) {
-            ptln("<div".$style.">");
-            print $this->locale_xhtml('add');
-            ptln("  <div class=\"level2\">");
-
-            $this->_htmlUserForm('add',null,array(),4);
-
-            ptln("  </div>");
-            ptln("</div>");
-        }
-
-        if($this->_edit_user  && $this->_auth->canDo('UserMod')){
-            ptln("<div".$style." id=\"scroll__here\">");
-            print $this->locale_xhtml('edit');
-            ptln("  <div class=\"level2\">");
-
-            $this->_htmlUserForm('modify',$this->_edit_user,$this->_edit_userdata,4);
-
-            ptln("  </div>");
-            ptln("</div>");
-        }
-
-        if ($this->_auth->canDo('addUser')) {
-            $this->_htmlImportForm();
-        }
-        ptln("</div>");
-        return true;
-    }
-
-    /**
-     * Display form to add or modify a user
-     *
-     * @param string $cmd 'add' or 'modify'
-     * @param string $user id of user
-     * @param array  $userdata array with name, mail, pass and grps
-     * @param int    $indent
-     */
-    protected function _htmlUserForm($cmd,$user='',$userdata=array(),$indent=0) {
-        global $conf;
-        global $ID;
-        global $lang;
-
-        $name = $mail = $groups = '';
-        $notes = array();
-
-        if ($user) {
-            extract($userdata);
-            if (!empty($grps)) $groups = join(',',$grps);
-        } else {
-            $notes[] = sprintf($this->lang['note_group'],$conf['defaultgroup']);
-        }
-
-        ptln("<form action=\"".wl($ID)."\" method=\"post\">",$indent);
-        formSecurityToken();
-        ptln("  <div class=\"table\">",$indent);
-        ptln("  <table class=\"inline\">",$indent);
-        ptln("    <thead>",$indent);
-        ptln("      <tr><th>".$this->lang["field"]."</th><th>".$this->lang["value"]."</th></tr>",$indent);
-        ptln("    </thead>",$indent);
-        ptln("    <tbody>",$indent);
-
-        $this->_htmlInputField($cmd."_userid",    "userid",    $this->lang["user_id"],    $user,  $this->_auth->canDo("modLogin"),   true, $indent+6);
-        $this->_htmlInputField($cmd."_userpass",  "userpass",  $this->lang["user_pass"],  "",     $this->_auth->canDo("modPass"),   false, $indent+6);
-        $this->_htmlInputField($cmd."_userpass2", "userpass2", $lang["passchk"],          "",     $this->_auth->canDo("modPass"),   false, $indent+6);
-        $this->_htmlInputField($cmd."_username",  "username",  $this->lang["user_name"],  $name,  $this->_auth->canDo("modName"),    true, $indent+6);
-        $this->_htmlInputField($cmd."_usermail",  "usermail",  $this->lang["user_mail"],  $mail,  $this->_auth->canDo("modMail"),    true, $indent+6);
-        $this->_htmlInputField($cmd."_usergroups","usergroups",$this->lang["user_groups"],$groups,$this->_auth->canDo("modGroups"), false, $indent+6);
-
-        if ($this->_auth->canDo("modPass")) {
-            if ($cmd == 'add') {
-                $notes[] = $this->lang['note_pass'];
-            }
-            if ($user) {
-                $notes[] = $this->lang['note_notify'];
-            }
-
-            ptln("<tr><td><label for=\"".$cmd."_usernotify\" >".$this->lang["user_notify"].": </label></td><td><input type=\"checkbox\" id=\"".$cmd."_usernotify\" name=\"usernotify\" value=\"1\" /></td></tr>", $indent);
-        }
-
-        ptln("    </tbody>",$indent);
-        ptln("    <tbody>",$indent);
-        ptln("      <tr>",$indent);
-        ptln("        <td colspan=\"2\">",$indent);
-        ptln("          <input type=\"hidden\" name=\"do\"    value=\"admin\" />",$indent);
-        ptln("          <input type=\"hidden\" name=\"page\"  value=\"usermanager\" />",$indent);
-
-        // save current $user, we need this to access details if the name is changed
-        if ($user)
-          ptln("          <input type=\"hidden\" name=\"userid_old\"  value=\"".hsc($user)."\" />",$indent);
-
-        $this->_htmlFilterSettings($indent+10);
-
-        ptln("          <button type=\"submit\" name=\"fn[".$cmd."]\">".$this->lang[$cmd]."</button>",$indent);
-        ptln("        </td>",$indent);
-        ptln("      </tr>",$indent);
-        ptln("    </tbody>",$indent);
-        ptln("  </table>",$indent);
-
-        if ($notes) {
-            ptln("    <ul class=\"notes\">");
-            foreach ($notes as $note) {
-                ptln("      <li><span class=\"li\">".$note."</li>",$indent);
-            }
-            ptln("    </ul>");
-        }
-        ptln("  </div>",$indent);
-        ptln("</form>",$indent);
-    }
-
-    /**
-     * Prints a inputfield
-     *
-     * @param string $id
-     * @param string $name
-     * @param string $label
-     * @param string $value
-     * @param bool   $cando whether auth backend is capable to do this action
-     * @param bool   $required is this field required?
-     * @param int $indent
-     */
-    protected function _htmlInputField($id, $name, $label, $value, $cando, $required, $indent=0) {
-        $class = $cando ? '' : ' class="disabled"';
-        echo str_pad('',$indent);
-
-        if($name == 'userpass' || $name == 'userpass2'){
-            $fieldtype = 'password';
-            $autocomp  = 'autocomplete="off"';
-        }elseif($name == 'usermail'){
-            $fieldtype = 'email';
-            $autocomp  = '';
-        }else{
-            $fieldtype = 'text';
-            $autocomp  = '';
-        }
-        $value = hsc($value);
-
-        echo "<tr $class>";
-        echo "<td><label for=\"$id\" >$label: </label></td>";
-        echo "<td>";
-        if($cando){
-            $req = '';
-            if($required) $req = 'required="required"';
-            echo "<input type=\"$fieldtype\" id=\"$id\" name=\"$name\" value=\"$value\" class=\"edit\" $autocomp $req />";
-        }else{
-            echo "<input type=\"hidden\" name=\"$name\" value=\"$value\" />";
-            echo "<input type=\"$fieldtype\" id=\"$id\" name=\"$name\" value=\"$value\" class=\"edit disabled\" disabled=\"disabled\" />";
-        }
-        echo "</td>";
-        echo "</tr>";
-    }
-
-    /**
-     * Returns htmlescaped filter value
-     *
-     * @param string $key name of search field
-     * @return string html escaped value
-     */
-    protected function _htmlFilter($key) {
-        if (empty($this->_filter)) return '';
-        return (isset($this->_filter[$key]) ? hsc($this->_filter[$key]) : '');
-    }
-
-    /**
-     * Print hidden inputs with the current filter values
-     *
-     * @param int $indent
-     */
-    protected function _htmlFilterSettings($indent=0) {
-
-        ptln("<input type=\"hidden\" name=\"start\" value=\"".$this->_start."\" />",$indent);
-
-        foreach ($this->_filter as $key => $filter) {
-            ptln("<input type=\"hidden\" name=\"filter[".$key."]\" value=\"".hsc($filter)."\" />",$indent);
-        }
-    }
-
-    /**
-     * Print import form and summary of previous import
-     *
-     * @param int $indent
-     */
-    protected function _htmlImportForm($indent=0) {
-        global $ID;
-
-        $failure_download_link = wl($ID,array('do'=>'admin','page'=>'usermanager','fn[importfails]'=>1));
-
-        ptln('<div class="level2 import_users">',$indent);
-        print $this->locale_xhtml('import');
-        ptln('  <form action="'.wl($ID).'" method="post" enctype="multipart/form-data">',$indent);
-        formSecurityToken();
-        ptln('    <label>'.$this->lang['import_userlistcsv'].'<input type="file" name="import" /></label>',$indent);
-        ptln('    <button type="submit" name="fn[import]">'.$this->lang['import'].'</button>',$indent);
-        ptln('    <input type="hidden" name="do"    value="admin" />',$indent);
-        ptln('    <input type="hidden" name="page"  value="usermanager" />',$indent);
-
-        $this->_htmlFilterSettings($indent+4);
-        ptln('  </form>',$indent);
-        ptln('</div>');
-
-        // list failures from the previous import
-        if ($this->_import_failures) {
-            $digits = strlen(count($this->_import_failures));
-            ptln('<div class="level3 import_failures">',$indent);
-            ptln('  <h3>'.$this->lang['import_header'].'</h3>');
-            ptln('  <table class="import_failures">',$indent);
-            ptln('    <thead>',$indent);
-            ptln('      <tr>',$indent);
-            ptln('        <th class="line">'.$this->lang['line'].'</th>',$indent);
-            ptln('        <th class="error">'.$this->lang['error'].'</th>',$indent);
-            ptln('        <th class="userid">'.$this->lang['user_id'].'</th>',$indent);
-            ptln('        <th class="username">'.$this->lang['user_name'].'</th>',$indent);
-            ptln('        <th class="usermail">'.$this->lang['user_mail'].'</th>',$indent);
-            ptln('        <th class="usergroups">'.$this->lang['user_groups'].'</th>',$indent);
-            ptln('      </tr>',$indent);
-            ptln('    </thead>',$indent);
-            ptln('    <tbody>',$indent);
-            foreach ($this->_import_failures as $line => $failure) {
-                ptln('      <tr>',$indent);
-                ptln('        <td class="lineno"> '.sprintf('%0'.$digits.'d',$line).' </td>',$indent);
-                ptln('        <td class="error">' .$failure['error'].' </td>', $indent);
-                ptln('        <td class="field userid"> '.hsc($failure['user'][0]).' </td>',$indent);
-                ptln('        <td class="field username"> '.hsc($failure['user'][2]).' </td>',$indent);
-                ptln('        <td class="field usermail"> '.hsc($failure['user'][3]).' </td>',$indent);
-                ptln('        <td class="field usergroups"> '.hsc($failure['user'][4]).' </td>',$indent);
-                ptln('      </tr>',$indent);
-            }
-            ptln('    </tbody>',$indent);
-            ptln('  </table>',$indent);
-            ptln('  <p><a href="'.$failure_download_link.'">'.$this->lang['import_downloadfailures'].'</a></p>');
-            ptln('</div>');
-        }
-
-    }
-
-    /**
-     * Add an user to auth backend
-     *
-     * @return bool whether succesful
-     */
-    protected function _addUser(){
-        global $INPUT;
-        if (!checkSecurityToken()) return false;
-        if (!$this->_auth->canDo('addUser')) return false;
-
-        list($user,$pass,$name,$mail,$grps,$passconfirm) = $this->_retrieveUser();
-        if (empty($user)) return false;
-
-        if ($this->_auth->canDo('modPass')){
-            if (empty($pass)){
-                if($INPUT->has('usernotify')){
-                    $pass = auth_pwgen($user);
-                } else {
-                    msg($this->lang['add_fail'], -1);
-                    msg($this->lang['addUser_error_missing_pass'], -1);
-                    return false;
-                }
-            } else {
-                if (!$this->_verifyPassword($pass,$passconfirm)) {
-                    msg($this->lang['add_fail'], -1);
-                    msg($this->lang['addUser_error_pass_not_identical'], -1);
-                    return false;
-                }
-            }
-        } else {
-            if (!empty($pass)){
-                msg($this->lang['add_fail'], -1);
-                msg($this->lang['addUser_error_modPass_disabled'], -1);
-                return false;
-            }
-        }
-
-        if ($this->_auth->canDo('modName')){
-            if (empty($name)){
-                msg($this->lang['add_fail'], -1);
-                msg($this->lang['addUser_error_name_missing'], -1);
-                return false;
-            }
-        } else {
-            if (!empty($name)){
-                msg($this->lang['add_fail'], -1);
-                msg($this->lang['addUser_error_modName_disabled'], -1);
-                return false;
-            }
-        }
-
-        if ($this->_auth->canDo('modMail')){
-            if (empty($mail)){
-                msg($this->lang['add_fail'], -1);
-                msg($this->lang['addUser_error_mail_missing'], -1);
-                return false;
-            }
-        } else {
-            if (!empty($mail)){
-                msg($this->lang['add_fail'], -1);
-                msg($this->lang['addUser_error_modMail_disabled'], -1);
-                return false;
-            }
-        }
-
-        if ($ok = $this->_auth->triggerUserMod('create', array($user,$pass,$name,$mail,$grps))) {
-
-            msg($this->lang['add_ok'], 1);
-
-            if ($INPUT->has('usernotify') && $pass) {
-                $this->_notifyUser($user,$pass);
-            }
-        } else {
-            msg($this->lang['add_fail'], -1);
-            msg($this->lang['addUser_error_create_event_failed'], -1);
-        }
-
-        return $ok;
-    }
-
-    /**
-     * Delete user from auth backend
-     *
-     * @return bool whether succesful
-     */
-    protected function _deleteUser(){
-        global $conf, $INPUT;
-
-        if (!checkSecurityToken()) return false;
-        if (!$this->_auth->canDo('delUser')) return false;
-
-        $selected = $INPUT->arr('delete');
-        if (empty($selected)) return false;
-        $selected = array_keys($selected);
-
-        if(in_array($_SERVER['REMOTE_USER'], $selected)) {
-            msg("You can't delete yourself!", -1);
-            return false;
-        }
-
-        $count = $this->_auth->triggerUserMod('delete', array($selected));
-        if ($count == count($selected)) {
-            $text = str_replace('%d', $count, $this->lang['delete_ok']);
-            msg("$text.", 1);
-        } else {
-            $part1 = str_replace('%d', $count, $this->lang['delete_ok']);
-            $part2 = str_replace('%d', (count($selected)-$count), $this->lang['delete_fail']);
-            msg("$part1, $part2",-1);
-        }
-
-        // invalidate all sessions
-        io_saveFile($conf['cachedir'].'/sessionpurge',time());
-
-        return true;
-    }
-
-    /**
-     * Edit user (a user has been selected for editing)
-     *
-     * @param string $param id of the user
-     * @return bool whether succesful
-     */
-    protected function _editUser($param) {
-        if (!checkSecurityToken()) return false;
-        if (!$this->_auth->canDo('UserMod')) return false;
-        $user = $this->_auth->cleanUser(preg_replace('/.*[:\/]/','',$param));
-        $userdata = $this->_auth->getUserData($user);
-
-        // no user found?
-        if (!$userdata) {
-            msg($this->lang['edit_usermissing'],-1);
-            return false;
-        }
-
-        $this->_edit_user = $user;
-        $this->_edit_userdata = $userdata;
-
-        return true;
-    }
-
-    /**
-     * Modify user in the auth backend (modified user data has been recieved)
-     *
-     * @return bool whether succesful
-     */
-    protected function _modifyUser(){
-        global $conf, $INPUT;
-
-        if (!checkSecurityToken()) return false;
-        if (!$this->_auth->canDo('UserMod')) return false;
-
-        // get currently valid  user data
-        $olduser = $this->_auth->cleanUser(preg_replace('/.*[:\/]/','',$INPUT->str('userid_old')));
-        $oldinfo = $this->_auth->getUserData($olduser);
-
-        // get new user data subject to change
-        list($newuser,$newpass,$newname,$newmail,$newgrps,$passconfirm) = $this->_retrieveUser();
-        if (empty($newuser)) return false;
-
-        $changes = array();
-        if ($newuser != $olduser) {
-
-            if (!$this->_auth->canDo('modLogin')) {        // sanity check, shouldn't be possible
-                msg($this->lang['update_fail'],-1);
-                return false;
-            }
-
-            // check if $newuser already exists
-            if ($this->_auth->getUserData($newuser)) {
-                msg(sprintf($this->lang['update_exists'],$newuser),-1);
-                $re_edit = true;
-            } else {
-                $changes['user'] = $newuser;
-            }
-        }
-        if ($this->_auth->canDo('modPass')) {
-            if ($newpass || $passconfirm) {
-                if ($this->_verifyPassword($newpass,$passconfirm)) {
-                    $changes['pass'] = $newpass;
-                } else {
-                    return false;
-                }
-            } else {
-                // no new password supplied, check if we need to generate one (or it stays unchanged)
-                if ($INPUT->has('usernotify')) {
-                    $changes['pass'] = auth_pwgen($olduser);
-                }
-            }
-        }
-
-        if (!empty($newname) && $this->_auth->canDo('modName') && $newname != $oldinfo['name']) {
-            $changes['name'] = $newname;
-        }
-        if (!empty($newmail) && $this->_auth->canDo('modMail') && $newmail != $oldinfo['mail']) {
-            $changes['mail'] = $newmail;
-        }
-        if (!empty($newgrps) && $this->_auth->canDo('modGroups') && $newgrps != $oldinfo['grps']) {
-            $changes['grps'] = $newgrps;
-        }
-
-        if ($ok = $this->_auth->triggerUserMod('modify', array($olduser, $changes))) {
-            msg($this->lang['update_ok'],1);
-
-            if ($INPUT->has('usernotify') && !empty($changes['pass'])) {
-                $notify = empty($changes['user']) ? $olduser : $newuser;
-                $this->_notifyUser($notify,$changes['pass']);
-            }
-
-            // invalidate all sessions
-            io_saveFile($conf['cachedir'].'/sessionpurge',time());
-
-        } else {
-            msg($this->lang['update_fail'],-1);
-        }
-
-        if (!empty($re_edit)) {
-            $this->_editUser($olduser);
-        }
-
-        return $ok;
-    }
-
-    /**
-     * Send password change notification email
-     *
-     * @param string $user         id of user
-     * @param string $password     plain text
-     * @param bool   $status_alert whether status alert should be shown
-     * @return bool whether succesful
-     */
-    protected function _notifyUser($user, $password, $status_alert=true) {
-
-        if ($sent = auth_sendPassword($user,$password)) {
-            if ($status_alert) {
-                msg($this->lang['notify_ok'], 1);
-            }
-        } else {
-            if ($status_alert) {
-                msg($this->lang['notify_fail'], -1);
-            }
-        }
-
-        return $sent;
-    }
-
-    /**
-     * Verify password meets minimum requirements
-     * :TODO: extend to support password strength
-     *
-     * @param string  $password   candidate string for new password
-     * @param string  $confirm    repeated password for confirmation
-     * @return bool   true if meets requirements, false otherwise
-     */
-    protected function _verifyPassword($password, $confirm) {
-        global $lang;
-
-        if (empty($password) && empty($confirm)) {
-            return false;
-        }
-
-        if ($password !== $confirm) {
-            msg($lang['regbadpass'], -1);
-            return false;
-        }
-
-        // :TODO: test password for required strength
-
-        // if we make it this far the password is good
-        return true;
-    }
-
-    /**
-     * Retrieve & clean user data from the form
-     *
-     * @param bool $clean whether the cleanUser method of the authentication backend is applied
-     * @return array (user, password, full name, email, array(groups))
-     */
-    protected function _retrieveUser($clean=true) {
-        /** @var DokuWiki_Auth_Plugin $auth */
-        global $auth;
-        global $INPUT;
-
-        $user = array();
-        $user[0] = ($clean) ? $auth->cleanUser($INPUT->str('userid')) : $INPUT->str('userid');
-        $user[1] = $INPUT->str('userpass');
-        $user[2] = $INPUT->str('username');
-        $user[3] = $INPUT->str('usermail');
-        $user[4] = explode(',',$INPUT->str('usergroups'));
-        $user[5] = $INPUT->str('userpass2');                // repeated password for confirmation
-
-        $user[4] = array_map('trim',$user[4]);
-        if($clean) $user[4] = array_map(array($auth,'cleanGroup'),$user[4]);
-        $user[4] = array_filter($user[4]);
-        $user[4] = array_unique($user[4]);
-        if(!count($user[4])) $user[4] = null;
-
-        return $user;
-    }
-
-    /**
-     * Set the filter with the current search terms or clear the filter
-     *
-     * @param string $op 'new' or 'clear'
-     */
-    protected function _setFilter($op) {
-
-        $this->_filter = array();
-
-        if ($op == 'new') {
-            list($user,/* $pass */,$name,$mail,$grps) = $this->_retrieveUser(false);
-
-            if (!empty($user)) $this->_filter['user'] = $user;
-            if (!empty($name)) $this->_filter['name'] = $name;
-            if (!empty($mail)) $this->_filter['mail'] = $mail;
-            if (!empty($grps)) $this->_filter['grps'] = join('|',$grps);
-        }
-    }
-
-    /**
-     * Get the current search terms
-     *
-     * @return array
-     */
-    protected function _retrieveFilter() {
-        global $INPUT;
-
-        $t_filter = $INPUT->arr('filter');
-
-        // messy, but this way we ensure we aren't getting any additional crap from malicious users
-        $filter = array();
-
-        if (isset($t_filter['user'])) $filter['user'] = $t_filter['user'];
-        if (isset($t_filter['name'])) $filter['name'] = $t_filter['name'];
-        if (isset($t_filter['mail'])) $filter['mail'] = $t_filter['mail'];
-        if (isset($t_filter['grps'])) $filter['grps'] = $t_filter['grps'];
-
-        return $filter;
-    }
-
-    /**
-     * Validate and improve the pagination values
-     */
-    protected function _validatePagination() {
-
-        if ($this->_start >= $this->_user_total) {
-            $this->_start = $this->_user_total - $this->_pagesize;
-        }
-        if ($this->_start < 0) $this->_start = 0;
-
-        $this->_last = min($this->_user_total, $this->_start + $this->_pagesize);
-    }
-
-    /**
-     * Return an array of strings to enable/disable pagination buttons
-     *
-     * @return array with enable/disable attributes
-     */
-    protected function _pagination() {
-
-        $disabled = 'disabled="disabled"';
-
-        $buttons = array();
-        $buttons['start'] = $buttons['prev'] = ($this->_start == 0) ? $disabled : '';
-
-        if ($this->_user_total == -1) {
-            $buttons['last'] = $disabled;
-            $buttons['next'] = '';
-        } else {
-            $buttons['last'] = $buttons['next'] = (($this->_start + $this->_pagesize) >= $this->_user_total) ? $disabled : '';
-        }
-
-        if ($this->_lastdisabled) {
-            $buttons['last'] = $disabled;
-        }
-
-        return $buttons;
-    }
-
-    /**
-     * Export a list of users in csv format using the current filter criteria
-     */
-    protected function _export() {
-        // list of users for export - based on current filter criteria
-        $user_list = $this->_auth->retrieveUsers(0, 0, $this->_filter);
-        $column_headings = array(
-            $this->lang["user_id"],
-            $this->lang["user_name"],
-            $this->lang["user_mail"],
-            $this->lang["user_groups"]
-        );
-
-        // ==============================================================================================
-        // GENERATE OUTPUT
-        // normal headers for downloading...
-        header('Content-type: text/csv;charset=utf-8');
-        header('Content-Disposition: attachment; filename="wikiusers.csv"');
-#       // for debugging assistance, send as text plain to the browser
-#       header('Content-type: text/plain;charset=utf-8');
-
-        // output the csv
-        $fd = fopen('php://output','w');
-        fputcsv($fd, $column_headings);
-        foreach ($user_list as $user => $info) {
-            $line = array($user, $info['name'], $info['mail'], join(',',$info['grps']));
-            fputcsv($fd, $line);
-        }
-        fclose($fd);
-        if (defined('DOKU_UNITTEST')){ return; }
-
-        die;
-    }
-
-    /**
-     * Import a file of users in csv format
-     *
-     * csv file should have 4 columns, user_id, full name, email, groups (comma separated)
-     *
-     * @return bool whether successful
-     */
-    protected function _import() {
-        // check we are allowed to add users
-        if (!checkSecurityToken()) return false;
-        if (!$this->_auth->canDo('addUser')) return false;
-
-        // check file uploaded ok.
-        if (empty($_FILES['import']['size']) || !empty($_FILES['import']['error']) && $this->_isUploadedFile($_FILES['import']['tmp_name'])) {
-            msg($this->lang['import_error_upload'],-1);
-            return false;
-        }
-        // retrieve users from the file
-        $this->_import_failures = array();
-        $import_success_count = 0;
-        $import_fail_count = 0;
-        $line = 0;
-        $fd = fopen($_FILES['import']['tmp_name'],'r');
-        if ($fd) {
-            while($csv = fgets($fd)){
-                if (!utf8_check($csv)) {
-                    $csv = utf8_encode($csv);
-                }
-                $raw = str_getcsv($csv);
-                $error = '';                        // clean out any errors from the previous line
-                // data checks...
-                if (1 == ++$line) {
-                    if ($raw[0] == 'user_id' || $raw[0] == $this->lang['user_id']) continue;    // skip headers
-                }
-                if (count($raw) < 4) {                                        // need at least four fields
-                    $import_fail_count++;
-                    $error = sprintf($this->lang['import_error_fields'], count($raw));
-                    $this->_import_failures[$line] = array('error' => $error, 'user' => $raw, 'orig' => $csv);
-                    continue;
-                }
-                array_splice($raw,1,0,auth_pwgen());                          // splice in a generated password
-                $clean = $this->_cleanImportUser($raw, $error);
-                if ($clean && $this->_addImportUser($clean, $error)) {
-                    $sent = $this->_notifyUser($clean[0],$clean[1],false);
-                    if (!$sent){
-                        msg(sprintf($this->lang['import_notify_fail'],$clean[0],$clean[3]),-1);
-                    }
-                    $import_success_count++;
-                } else {
-                    $import_fail_count++;
-                    array_splice($raw, 1, 1);                                  // remove the spliced in password
-                    $this->_import_failures[$line] = array('error' => $error, 'user' => $raw, 'orig' => $csv);
-                }
-            }
-            msg(sprintf($this->lang['import_success_count'], ($import_success_count+$import_fail_count), $import_success_count),($import_success_count ? 1 : -1));
-            if ($import_fail_count) {
-                msg(sprintf($this->lang['import_failure_count'], $import_fail_count),-1);
-            }
-        } else {
-            msg($this->lang['import_error_readfail'],-1);
-        }
-
-        // save import failures into the session
-        if (!headers_sent()) {
-            session_start();
-            $_SESSION['import_failures'] = $this->_import_failures;
-            session_write_close();
-        }
-        return true;
-    }
-
-    /**
-     * Returns cleaned user data
-     *
-     * @param array $candidate raw values of line from input file
-     * @param string $error
-     * @return array|false cleaned data or false
-     */
-    protected function _cleanImportUser($candidate, & $error){
-        global $INPUT;
-
-        // kludgy ....
-        $INPUT->set('userid', $candidate[0]);
-        $INPUT->set('userpass', $candidate[1]);
-        $INPUT->set('username', $candidate[2]);
-        $INPUT->set('usermail', $candidate[3]);
-        $INPUT->set('usergroups', $candidate[4]);
-
-        $cleaned = $this->_retrieveUser();
-        list($user,/* $pass */,$name,$mail,/* $grps */) = $cleaned;
-        if (empty($user)) {
-            $error = $this->lang['import_error_baduserid'];
-            return false;
-        }
-
-        // no need to check password, handled elsewhere
-
-        if (!($this->_auth->canDo('modName') xor empty($name))){
-            $error = $this->lang['import_error_badname'];
-            return false;
-        }
-
-        if ($this->_auth->canDo('modMail')) {
-            if (empty($mail) || !mail_isvalid($mail)) {
-                $error = $this->lang['import_error_badmail'];
-                return false;
-            }
-        } else {
-            if (!empty($mail)) {
-                $error = $this->lang['import_error_badmail'];
-                return false;
-            }
-        }
-
-        return $cleaned;
-    }
-
-    /**
-     * Adds imported user to auth backend
-     *
-     * Required a check of canDo('addUser') before
-     *
-     * @param array  $user   data of user
-     * @param string &$error reference catched error message
-     * @return bool whether successful
-     */
-    protected function _addImportUser($user, & $error){
-        if (!$this->_auth->triggerUserMod('create', $user)) {
-            $error = $this->lang['import_error_create'];
-            return false;
-        }
-
-        return true;
-    }
-
-    /**
-     * Downloads failures as csv file
-     */
-    protected function _downloadImportFailures(){
-
-        // ==============================================================================================
-        // GENERATE OUTPUT
-        // normal headers for downloading...
-        header('Content-type: text/csv;charset=utf-8');
-        header('Content-Disposition: attachment; filename="importfails.csv"');
-#       // for debugging assistance, send as text plain to the browser
-#       header('Content-type: text/plain;charset=utf-8');
-
-        // output the csv
-        $fd = fopen('php://output','w');
-        foreach ($this->_import_failures as $fail) {
-            fputs($fd, $fail['orig']);
-        }
-        fclose($fd);
-        die;
-    }
-
-    /**
-     * wrapper for is_uploaded_file to facilitate overriding by test suite
-     *
-     * @param string $file filename
-     * @return bool
-     */
-    protected function _isUploadedFile($file) {
-        return is_uploaded_file($file);
-    }
-}
diff --git a/wiki/lib/plugins/usermanager/admin.svg b/wiki/lib/plugins/usermanager/admin.svg
deleted file mode 100644
index 74a72c0..0000000
--- a/wiki/lib/plugins/usermanager/admin.svg
+++ /dev/null
@@ -1 +0,0 @@
-<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/wiki/lib/plugins/usermanager/images/search.png b/wiki/lib/plugins/usermanager/images/search.png
deleted file mode 100644
index 3f2a0b5..0000000
--- a/wiki/lib/plugins/usermanager/images/search.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/plugins/usermanager/lang/af/lang.php b/wiki/lib/plugins/usermanager/lang/af/lang.php
deleted file mode 100644
index 9a6c566..0000000
--- a/wiki/lib/plugins/usermanager/lang/af/lang.php
+++ /dev/null
@@ -1,14 +0,0 @@
-<?php
-/**
- * Afrikaans language file
- *
- */
-$lang['user_pass']             = 'Wagwoord';
-$lang['user_name']             = 'Regte Naam';
-$lang['user_mail']             = 'E-pos';
-$lang['edit']                  = 'Verander';
-$lang['search']                = 'Soek';
-$lang['start']                 = 'begin';
-$lang['prev']                  = 'voorigste';
-$lang['next']                  = 'volgende';
-$lang['last']                  = 'einde';
diff --git a/wiki/lib/plugins/usermanager/lang/ar/add.txt b/wiki/lib/plugins/usermanager/lang/ar/add.txt
deleted file mode 100644
index 14a10a2..0000000
--- a/wiki/lib/plugins/usermanager/lang/ar/add.txt
+++ /dev/null
@@ -1 +0,0 @@
-==== Ø¥Ø¶Ø§ÙØ© حساب ====
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/ar/delete.txt b/wiki/lib/plugins/usermanager/lang/ar/delete.txt
deleted file mode 100644
index d44bb9f..0000000
--- a/wiki/lib/plugins/usermanager/lang/ar/delete.txt
+++ /dev/null
@@ -1 +0,0 @@
-==== حذ٠الحساب ====
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/ar/edit.txt b/wiki/lib/plugins/usermanager/lang/ar/edit.txt
deleted file mode 100644
index bd9876d..0000000
--- a/wiki/lib/plugins/usermanager/lang/ar/edit.txt
+++ /dev/null
@@ -1 +0,0 @@
-==== تعديل المستخدم ====
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/ar/intro.txt b/wiki/lib/plugins/usermanager/lang/ar/intro.txt
deleted file mode 100644
index 1cfb841..0000000
--- a/wiki/lib/plugins/usermanager/lang/ar/intro.txt
+++ /dev/null
@@ -1 +0,0 @@
-====== مدير المستخدمين ======
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/ar/lang.php b/wiki/lib/plugins/usermanager/lang/ar/lang.php
deleted file mode 100644
index 0a751e7..0000000
--- a/wiki/lib/plugins/usermanager/lang/ar/lang.php
+++ /dev/null
@@ -1,50 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author Yaman Hokan <always.smile.yh@hotmail.com>
- * @author Usama Akkad <uahello@gmail.com>
- * @author uahello@gmail.com
- */
-$lang['menu']                  = 'مدير المستخدمين';
-$lang['noauth']                = '(مصادقة المستخدمين غير Ù…ØªÙˆÙØ±Ø©)';
-$lang['nosupport']             = '(إدارة المستخدمين غير Ù…ØªÙˆÙØ±Ø©)';
-$lang['badauth']               = 'آلية مصادقة غير صالحة';
-$lang['user_id']               = 'اسم المستخدم';
-$lang['user_pass']             = 'كلمة السر';
-$lang['user_name']             = 'الاسم الحقيقي';
-$lang['user_mail']             = 'البريد الالكتروني';
-$lang['user_groups']           = 'المجموعات';
-$lang['field']                 = 'حقل';
-$lang['value']                 = 'القيمة';
-$lang['add']                   = 'Ø¥Ø¶Ø§ÙØ©';
-$lang['delete']                = 'حذÙ';
-$lang['delete_selected']       = 'حذ٠المختار';
-$lang['edit']                  = 'تحرير';
-$lang['edit_prompt']           = 'حرر هذا المستخدم';
-$lang['modify']                = 'Ø­ÙØ¸ التعديلات';
-$lang['search']                = 'بحث';
-$lang['search_prompt']         = 'ابدأ البحث';
-$lang['clear']                 = 'صÙّر مرشح البحث';
-$lang['filter']                = 'المرشّح';
-$lang['summary']               = 'عرض المستخدمين %1$d-%2$d of %3$d وجد. %4$d مستخدم كلي.';
-$lang['nonefound']             = 'لم يوجد مستخدمين. %d مستخدم كليا.';
-$lang['delete_ok']             = '%d مستخدم حذÙوا';
-$lang['delete_fail']           = '%d ÙØ´Ù„ حذÙهم.';
-$lang['update_ok']             = 'Ø­ÙØ¯Ø« المستخدم بنجاح';
-$lang['update_fail']           = 'ÙØ´Ù„ تحديث المستخدم';
-$lang['update_exists']         = 'لقد ÙØ´Ù„ تغيير اسم المستخدم , اسم المستخدم المحدد (%s) غير متاح . ( سيتم تطبيق أي تغييرات أخرى )';
-$lang['start']                 = 'ابدأ';
-$lang['prev']                  = 'السابق';
-$lang['next']                  = 'التالي';
-$lang['last']                  = 'الأخير';
-$lang['edit_usermissing']      = 'لم يعثر على المستخدم المحدد، يحتمل أن اسم المستخدم قد حذ٠أو غÙير ÙÙŠ مكان آخر.';
-$lang['user_notify']           = 'أشعر المستخدم';
-$lang['note_notify']           = 'بريد الاشعار يرسل Ùقط إن اعطي المستخدم كلمة سر جديدة.';
-$lang['note_group']            = 'المستخدمون الجدد سيضاÙون للمجموعة Ø§Ù„Ø§ÙØªØ±Ø§Ø¶ÙŠØ© (%s)  إن لم ØªÙØ­Ø¯Ø¯ لهم مجموعة.';
-$lang['note_pass']             = 'ستولد كلمة المرور تلقائيا إن ØªÙØ±Ùƒ الحقل ÙØ§Ø±ØºØ§ مع تمكين إشعار المستخدم.';
-$lang['add_ok']                = 'اضي٠المستخدم بنجاح';
-$lang['add_fail']              = 'ÙØ´Ù„ت Ø¥Ø¶Ø§ÙØ© المستخدم';
-$lang['notify_ok']             = 'ارسلت رسالة الاشعار';
-$lang['notify_fail']           = 'تعذر ارسال بريد الاشعار';
diff --git a/wiki/lib/plugins/usermanager/lang/ar/list.txt b/wiki/lib/plugins/usermanager/lang/ar/list.txt
deleted file mode 100644
index 02e9a03..0000000
--- a/wiki/lib/plugins/usermanager/lang/ar/list.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== قائمة المستخدمين =====
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/bg/add.txt b/wiki/lib/plugins/usermanager/lang/bg/add.txt
deleted file mode 100644
index e067819..0000000
--- a/wiki/lib/plugins/usermanager/lang/bg/add.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== ДобавÑне на потребител =====
diff --git a/wiki/lib/plugins/usermanager/lang/bg/delete.txt b/wiki/lib/plugins/usermanager/lang/bg/delete.txt
deleted file mode 100644
index aa60fc3..0000000
--- a/wiki/lib/plugins/usermanager/lang/bg/delete.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Изтриване на потребител =====
diff --git a/wiki/lib/plugins/usermanager/lang/bg/edit.txt b/wiki/lib/plugins/usermanager/lang/bg/edit.txt
deleted file mode 100644
index 652d036..0000000
--- a/wiki/lib/plugins/usermanager/lang/bg/edit.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Редактиране на потребител  =====
diff --git a/wiki/lib/plugins/usermanager/lang/bg/intro.txt b/wiki/lib/plugins/usermanager/lang/bg/intro.txt
deleted file mode 100644
index 0a9afd5..0000000
--- a/wiki/lib/plugins/usermanager/lang/bg/intro.txt
+++ /dev/null
@@ -1 +0,0 @@
-====== Управление на потребителите ======
diff --git a/wiki/lib/plugins/usermanager/lang/bg/lang.php b/wiki/lib/plugins/usermanager/lang/bg/lang.php
deleted file mode 100644
index f98cc8c..0000000
--- a/wiki/lib/plugins/usermanager/lang/bg/lang.php
+++ /dev/null
@@ -1,59 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author Nikolay Vladimirov <nikolay@vladimiroff.com>
- * @author Viktor Usunov <usun0v@mail.bg>
- * @author Kiril <neohidra@gmail.com>
- */
-$lang['menu']                  = 'ДиÑпечер на потребителите';
-$lang['noauth']                = '(удоÑтоверÑването на потребители не е налично)';
-$lang['nosupport']             = '(управлението на потребители не Ñе поддържа)';
-$lang['badauth']               = 'невалиден механизъм за удоÑтоверÑване';
-$lang['user_id']               = 'Потребител';
-$lang['user_pass']             = 'Парола';
-$lang['user_name']             = 'ИÑтинÑко име';
-$lang['user_mail']             = 'Електронна поща';
-$lang['user_groups']           = 'Групи';
-$lang['field']                 = 'Поле';
-$lang['value']                 = 'СтойноÑÑ‚';
-$lang['add']                   = 'Добави';
-$lang['delete']                = 'Изтрий';
-$lang['delete_selected']       = 'Изтрий избраните';
-$lang['edit']                  = 'Редактирай';
-$lang['edit_prompt']           = 'Редактиране на потребителÑ';
-$lang['modify']                = 'Запиши промените';
-$lang['search']                = 'ТърÑене';
-$lang['search_prompt']         = 'ТърÑи';
-$lang['clear']                 = 'ОбновÑване на търÑенето';
-$lang['filter']                = 'Филтър';
-$lang['export_all']            = 'Ð˜Ð·Ð½Ð¾Ñ Ð½Ð° вÑички потребители (CSV)';
-$lang['import']                = 'Импорт на нови потребители';
-$lang['line']                  = 'Ред №';
-$lang['error']                 = 'Съобщение за грешка';
-$lang['summary']               = 'Показване на потребители %1$d-%2$d от %3$d намерени. Общо %4$d потребителÑ.';
-$lang['nonefound']             = 'Ðе Ñа намерени потребители. Общо %d потребителÑ.';
-$lang['delete_ok']             = '%d изтрити потребителÑ';
-$lang['delete_fail']           = 'изтриването на %d Ñе провали.';
-$lang['update_ok']             = 'ОбновÑването на Ð¿Ð¾Ñ‚Ñ€ÐµÐ±Ð¸Ñ‚ÐµÐ»Ñ Ðµ уÑпешно';
-$lang['update_fail']           = 'ОбновÑването на Ð¿Ð¾Ñ‚Ñ€ÐµÐ±Ð¸Ñ‚ÐµÐ»Ñ Ñе провали';
-$lang['update_exists']         = 'СмÑната на потребителÑкото име Ñе провали, въведеното потребителÑко име (%s) вече ÑъщеÑтвува (вÑички други промени ще бъдат приложени).';
-$lang['start']                 = 'начало';
-$lang['prev']                  = 'назад';
-$lang['next']                  = 'напред';
-$lang['last']                  = 'край';
-$lang['edit_usermissing']      = 'ИзбраниÑÑ‚ потребител не е намерен, въведеното потребителÑко име може да е изтрито или променено другаде.';
-$lang['user_notify']           = 'УведомÑване на потребителÑ';
-$lang['note_notify']           = 'Имейл Ñе изпраща Ñамо ако бъде променена паролата на потребителÑ.';
-$lang['note_group']            = 'Ðовите потребители биват добавÑни към Ñтандартната групата (%s) ако не е поÑочена друга.';
-$lang['note_pass']             = 'Паролата ще бъде генерирана автоматично, ако оÑтавите полето празно и функциÑта за уведомÑване на Ð¿Ð¾Ñ‚Ñ€ÐµÐ±Ð¸Ñ‚ÐµÐ»Ñ Ðµ включена.';
-$lang['add_ok']                = 'ДобавÑнето на Ð¿Ð¾Ñ‚Ñ€ÐµÐ±Ð¸Ñ‚ÐµÐ»Ñ Ðµ уÑпешно';
-$lang['add_fail']              = 'ДобавÑнето на Ð¿Ð¾Ñ‚Ñ€ÐµÐ±Ð¸Ñ‚ÐµÐ»Ñ Ñе провали';
-$lang['notify_ok']             = 'Изпратено е оÑведомителен имейл';
-$lang['notify_fail']           = 'Изпращането на оÑведомителен имейл не е възможно';
-$lang['import_error_badname']  = 'Грешно потребителÑко име';
-$lang['import_error_badmail']  = 'Грешен имейл адреÑ';
-$lang['import_error_upload']   = 'ВнаÑÑнето Ñе провали. CSV файлът не може да бъде качен или е празен.';
-$lang['import_error_readfail'] = 'ВнаÑÑнето Ñе провали. КачениÑÑ‚ файл не може да бъде прочетен.';
-$lang['import_error_create']   = 'ПотребителÑÑ‚ не може да бъде Ñъдаден';
diff --git a/wiki/lib/plugins/usermanager/lang/bg/list.txt b/wiki/lib/plugins/usermanager/lang/bg/list.txt
deleted file mode 100644
index 106856c..0000000
--- a/wiki/lib/plugins/usermanager/lang/bg/list.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== СпиÑък на потребителите  =====
diff --git a/wiki/lib/plugins/usermanager/lang/ca-valencia/add.txt b/wiki/lib/plugins/usermanager/lang/ca-valencia/add.txt
deleted file mode 100644
index df5ba92..0000000
--- a/wiki/lib/plugins/usermanager/lang/ca-valencia/add.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Afegir usuari =====
diff --git a/wiki/lib/plugins/usermanager/lang/ca-valencia/delete.txt b/wiki/lib/plugins/usermanager/lang/ca-valencia/delete.txt
deleted file mode 100644
index f386b58..0000000
--- a/wiki/lib/plugins/usermanager/lang/ca-valencia/delete.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Borrar usuari =====
diff --git a/wiki/lib/plugins/usermanager/lang/ca-valencia/edit.txt b/wiki/lib/plugins/usermanager/lang/ca-valencia/edit.txt
deleted file mode 100644
index 6b78c12..0000000
--- a/wiki/lib/plugins/usermanager/lang/ca-valencia/edit.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Editar usuari =====
diff --git a/wiki/lib/plugins/usermanager/lang/ca-valencia/intro.txt b/wiki/lib/plugins/usermanager/lang/ca-valencia/intro.txt
deleted file mode 100644
index 540a070..0000000
--- a/wiki/lib/plugins/usermanager/lang/ca-valencia/intro.txt
+++ /dev/null
@@ -1 +0,0 @@
-====== Gestor d'usuaris ======
diff --git a/wiki/lib/plugins/usermanager/lang/ca-valencia/lang.php b/wiki/lib/plugins/usermanager/lang/ca-valencia/lang.php
deleted file mode 100644
index c39c2f9..0000000
--- a/wiki/lib/plugins/usermanager/lang/ca-valencia/lang.php
+++ /dev/null
@@ -1,49 +0,0 @@
-<?php
-/**
- * Valencian language file
- *
- * @author Bernat Arlandis i Mañó <berarma@ya.com>
- * @author Bernat Arlandis <berarma@ya.com>
- * @author Bernat Arlandis <berarma@llenguaitecnologia.com>
- */
-$lang['menu']                  = 'Gestor d\'usuaris';
-$lang['noauth']                = '(autenticació d\'usuaris no disponible)';
-$lang['nosupport']             = '(gestió d\'usuaris no admesa)';
-$lang['badauth']               = 'mecanisme d\'autenticació no vàlit';
-$lang['user_id']               = 'Usuari';
-$lang['user_pass']             = 'Contrasenya';
-$lang['user_name']             = 'Nom real';
-$lang['user_mail']             = 'Correu electrònic';
-$lang['user_groups']           = 'Grups';
-$lang['field']                 = 'Camp';
-$lang['value']                 = 'Valor';
-$lang['add']                   = 'Afegir';
-$lang['delete']                = 'Borrar';
-$lang['delete_selected']       = 'Borrar seleccionats';
-$lang['edit']                  = 'Editar';
-$lang['edit_prompt']           = 'Editar est usuari';
-$lang['modify']                = 'Guardar canvis';
-$lang['search']                = 'Buscar';
-$lang['search_prompt']         = 'Començar busca';
-$lang['clear']                 = 'Reiniciar filtre de busques';
-$lang['filter']                = 'Filtre';
-$lang['summary']               = 'Mostrant usuaris %1$d-%2$d de %3$d trobats. %4$d usuaris totals.';
-$lang['nonefound']             = 'No s\'han trobat usuaris. %d usuaris totals.';
-$lang['delete_ok']             = '%d usuaris borrats';
-$lang['delete_fail']           = 'Erro borrant %d.';
-$lang['update_ok']             = 'Usuari actualisat correctament';
-$lang['update_fail']           = 'Erro actualisant usuari';
-$lang['update_exists']         = 'Erro canviant el nom de l\'usuari (%s), el nom d\'usuari que ha donat ya existix (els demés canvis s\'aplicaran).';
-$lang['start']                 = 'primera';
-$lang['prev']                  = 'anterior';
-$lang['next']                  = 'següent';
-$lang['last']                  = 'última';
-$lang['edit_usermissing']      = 'L\'usuari seleccionat no existix, pot haver segut borrat o modificat des d\'un atre lloc.';
-$lang['user_notify']           = 'Notificar a l\'usuari';
-$lang['note_notify']           = 'Els correus de notificació només s\'envien si a l\'usuari se li assigna una contrasenya nova.';
-$lang['note_group']            = 'Els usuaris nous s\'afegiran al grup predeterminat (%s) si no se n\'especifica atre.';
-$lang['note_pass']             = 'Si es deixa el camp buit i la notificació a l\'usuari està desactivada s\'autogenerarà la contrasenya.';
-$lang['add_ok']                = 'Usuari afegit correctament';
-$lang['add_fail']              = 'Erro afegint usuari';
-$lang['notify_ok']             = 'Correu de notificació enviat';
-$lang['notify_fail']           = 'Erro enviant el correu de notificació';
diff --git a/wiki/lib/plugins/usermanager/lang/ca-valencia/list.txt b/wiki/lib/plugins/usermanager/lang/ca-valencia/list.txt
deleted file mode 100644
index 15af2d5..0000000
--- a/wiki/lib/plugins/usermanager/lang/ca-valencia/list.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Llista d'usuaris =====
diff --git a/wiki/lib/plugins/usermanager/lang/ca/add.txt b/wiki/lib/plugins/usermanager/lang/ca/add.txt
deleted file mode 100644
index 07c5994..0000000
--- a/wiki/lib/plugins/usermanager/lang/ca/add.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Nou usuari =====
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/ca/delete.txt b/wiki/lib/plugins/usermanager/lang/ca/delete.txt
deleted file mode 100644
index 90878e5..0000000
--- a/wiki/lib/plugins/usermanager/lang/ca/delete.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Supressió d'usuari =====
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/ca/edit.txt b/wiki/lib/plugins/usermanager/lang/ca/edit.txt
deleted file mode 100644
index f7dc8cb..0000000
--- a/wiki/lib/plugins/usermanager/lang/ca/edit.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Edició d'usuari =====
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/ca/intro.txt b/wiki/lib/plugins/usermanager/lang/ca/intro.txt
deleted file mode 100644
index 864aa10..0000000
--- a/wiki/lib/plugins/usermanager/lang/ca/intro.txt
+++ /dev/null
@@ -1 +0,0 @@
-======= Gestió d'usuaris ======
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/ca/lang.php b/wiki/lib/plugins/usermanager/lang/ca/lang.php
deleted file mode 100644
index 36b7774..0000000
--- a/wiki/lib/plugins/usermanager/lang/ca/lang.php
+++ /dev/null
@@ -1,52 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Carles Bellver <carles.bellver@gmail.com>
- * @author carles.bellver@gmail.com
- * @author carles.bellver@cent.uji.es
- * @author Carles Bellver <carles.bellver@cent.uji.es>
- * @author daniel@6temes.cat
- */
-$lang['menu']                  = 'Gestió d\'usuaris';
-$lang['noauth']                = '(l\'autenticació d\'usuaris no està disponible)';
-$lang['nosupport']             = '(la gestió d\'usuaris no funciona)';
-$lang['badauth']               = 'el mecanisme d\'autenticació no és vàlid';
-$lang['user_id']               = 'Usuari';
-$lang['user_pass']             = 'Contrasenya';
-$lang['user_name']             = 'Nom real';
-$lang['user_mail']             = 'Correu electrònic';
-$lang['user_groups']           = 'Grups';
-$lang['field']                 = 'Camp';
-$lang['value']                 = 'Valor';
-$lang['add']                   = 'Afegeix';
-$lang['delete']                = 'Suprimeix';
-$lang['delete_selected']       = 'Suprimeix els seleccionats';
-$lang['edit']                  = 'Edita';
-$lang['edit_prompt']           = 'Edita aquest usuari';
-$lang['modify']                = 'Desa els canvis';
-$lang['search']                = 'Cerca';
-$lang['search_prompt']         = 'Fes la cerca';
-$lang['clear']                 = 'Reinicia el filtre de cerca';
-$lang['filter']                = 'Filtre';
-$lang['summary']               = 'Visualització d\'usuaris %1$d-%2$d de %3$d trobats. %4$d usuaris en total.';
-$lang['nonefound']             = 'No s\'han trobat usuaris. %d usuaris en total.';
-$lang['delete_ok']             = 'S\'han suprimit %d usuaris';
-$lang['delete_fail']           = 'No s\'han pogut suprimir %d.';
-$lang['update_ok']             = 'L\'usuari ha estat actualitzat amb èxit';
-$lang['update_fail']           = 'Ha fallat l\'actualització de l\'usuari';
-$lang['update_exists']         = 'No s\'ha pogut canviar el nom de l\'usuari. El nom d\'usuari especificat (%s) ja existeix (qualsevol altre canvi sí que serà efectiu).';
-$lang['start']                 = 'inici';
-$lang['prev']                  = 'anterior';
-$lang['next']                  = 'següent';
-$lang['last']                  = 'final';
-$lang['edit_usermissing']      = 'L\'usuari seleccionat no s\'ha pogut trobar. Potser el nom d\'usuari especificat s\'ha suprimit o modificat des d\'un altre lloc.';
-$lang['user_notify']           = 'Notificació a l\'usuari';
-$lang['note_notify']           = 'Els correus de notificació només s\'envien si es canvia la contrasenya de l\'usuari.';
-$lang['note_group']            = 'Els nous usuaris s\'afegeixen al grup per defecte (%s) si no s\'especifica un altre grup.';
-$lang['note_pass']             = 'La contrasenya es generarà automàticament si el camp es deixa en blanc i les notificacions estan habilitades per a aquest usuari.';
-$lang['add_ok']                = 'L\'usuari s\'ha afegit amb èxit';
-$lang['add_fail']              = 'No s\'ha pogut afegir l\'usuari';
-$lang['notify_ok']             = 'S\'ha enviat el correu de notificació';
-$lang['notify_fail']           = 'No s\'ha pogut enviar el correu de notificació';
diff --git a/wiki/lib/plugins/usermanager/lang/ca/list.txt b/wiki/lib/plugins/usermanager/lang/ca/list.txt
deleted file mode 100644
index 22e1587..0000000
--- a/wiki/lib/plugins/usermanager/lang/ca/list.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Llista d'usuaris =====
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/cs/add.txt b/wiki/lib/plugins/usermanager/lang/cs/add.txt
deleted file mode 100644
index 39b14d5..0000000
--- a/wiki/lib/plugins/usermanager/lang/cs/add.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Přidat uživatele =====
diff --git a/wiki/lib/plugins/usermanager/lang/cs/delete.txt b/wiki/lib/plugins/usermanager/lang/cs/delete.txt
deleted file mode 100644
index a8790d8..0000000
--- a/wiki/lib/plugins/usermanager/lang/cs/delete.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Smazat uživatele =====
diff --git a/wiki/lib/plugins/usermanager/lang/cs/edit.txt b/wiki/lib/plugins/usermanager/lang/cs/edit.txt
deleted file mode 100644
index d8ba386..0000000
--- a/wiki/lib/plugins/usermanager/lang/cs/edit.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Upravit uživatele =====
diff --git a/wiki/lib/plugins/usermanager/lang/cs/import.txt b/wiki/lib/plugins/usermanager/lang/cs/import.txt
deleted file mode 100644
index d665838..0000000
--- a/wiki/lib/plugins/usermanager/lang/cs/import.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-===== Hromadný import uživatelů =====
-
-Vyžaduje CSV soubor s uživateli obsahující alespoň 4 sloupce.
-Sloupce obsahují (v daném pořadí): user-id, celé jméno, emailovou adresu, seznam skupin.
-Položky CSV musí být oddÄ›leny Äárkou (,) a Å™etÄ›zce umístÄ›ny v uvozovkách (%%""%%). ZpÄ›tné lomítko (\) lze použít pro escapování.
-Pro získání příkladu takového souboru využijte funkci "Exportovat uživatele" výše.
-Záznamy s duplicitním user-id budou ignorovány.
-
-Hesla budou vygenerována a zaslána e-mailem všem úspěšně importovaným uživatelům.
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/cs/intro.txt b/wiki/lib/plugins/usermanager/lang/cs/intro.txt
deleted file mode 100644
index 5b8f6e9..0000000
--- a/wiki/lib/plugins/usermanager/lang/cs/intro.txt
+++ /dev/null
@@ -1 +0,0 @@
-====== Správa uživatelů ======
diff --git a/wiki/lib/plugins/usermanager/lang/cs/lang.php b/wiki/lib/plugins/usermanager/lang/cs/lang.php
deleted file mode 100644
index 3ed1800..0000000
--- a/wiki/lib/plugins/usermanager/lang/cs/lang.php
+++ /dev/null
@@ -1,86 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Tomas Valenta <t.valenta@sh.cvut.cz>
- * @author Zbynek Krivka <zbynek.krivka@seznam.cz>
- * @author Bohumir Zamecnik <bohumir@zamecnik.org>
- * @author tomas <tomas@valenta.cz>
- * @author Marek Sacha <sachamar@fel.cvut.cz>
- * @author Lefty <lefty@multihost.cz>
- * @author Vojta Beran <xmamut@email.cz>
- * @author Jakub A. Těšínský (j@kub.cz)
- * @author mkucera66 <mkucera66@seznam.cz>
- * @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)';
-$lang['nosupport']             = '(správa uživatelů není podporována)';
-$lang['badauth']               = 'chybná metoda autentizace';
-$lang['user_id']               = 'Uživatel';
-$lang['user_pass']             = 'Heslo';
-$lang['user_name']             = 'Celé jméno';
-$lang['user_mail']             = 'E-mail';
-$lang['user_groups']           = 'Skupiny';
-$lang['field']                 = 'Položka';
-$lang['value']                 = 'Hodnota';
-$lang['add']                   = 'Přidat';
-$lang['delete']                = 'Smazat';
-$lang['delete_selected']       = 'Smazat vybrané';
-$lang['edit']                  = 'Upravit';
-$lang['edit_prompt']           = 'Upravit uživatele';
-$lang['modify']                = 'Uložit změny';
-$lang['search']                = 'Hledání';
-$lang['search_prompt']         = 'Prohledat';
-$lang['clear']                 = 'Zrušit vyhledávací filtr';
-$lang['filter']                = 'Filtr';
-$lang['export_all']            = 'Exportovat všechny uživatele (CSV)';
-$lang['export_filtered']       = 'Exportovat filtrovaný seznam uživatelů (CSV)';
-$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']             = 'Žá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';
-$lang['update_fail']           = 'Úprava uživatele selhala';
-$lang['update_exists']         = 'Jméno nelze změnit, jelikož zadané uživatelské jméno (%s) již existuje (ostatní změny ale budou provedeny).';
-$lang['start']                 = 'první';
-$lang['prev']                  = 'předchozí';
-$lang['next']                  = 'další';
-$lang['last']                  = 'poslední';
-$lang['edit_usermissing']      = 'Vybraný uživatel nebyl nalezen, zadané uživatelského mohlo být smazáno nebo změněno.';
-$lang['user_notify']           = 'Upozornit uživatele';
-$lang['note_notify']           = 'E-maily s upozorněním se budou posílat pouze, když uživatel dostává nové heslo.';
-$lang['note_group']            = 'Noví uživatelé budou přidáváni do této výchozí skupiny (%s), pokud pro ně není uvedena žádná skupina.';
-$lang['note_pass']             = 'Heslo bude automaticky vygenerováno, pokud je pole ponecháno prázdné a je zapnuto upozornění uživatele.';
-$lang['add_ok']                = 'Uživatel úspěšně vytvořen';
-$lang['add_fail']              = 'Vytvoření uživatele selhalo';
-$lang['notify_ok']             = 'Odeslán e-mail s upozorněním';
-$lang['notify_fail']           = 'E-mail s upozorněním nebylo možno odeslat';
-$lang['import_userlistcsv']    = 'Seznam uživatelů (CSV):';
-$lang['import_header']         = 'Poslední selhání importu';
-$lang['import_success_count']  = 'Import uživatelů: nalezeno %d uživatelů, %d úspěšně importováno.';
-$lang['import_failure_count']  = 'Import uživatelů: %d selhalo. Seznam chybných je níže.';
-$lang['import_error_fields']   = 'Nedostatek položek, nalezena/y %d, požadovány 4.';
-$lang['import_error_baduserid'] = 'Chybí User-id';
-$lang['import_error_badname']  = 'Špatné jméno';
-$lang['import_error_badmail']  = 'Špatná e-mailová adresa';
-$lang['import_error_upload']   = 'Import selhal. CSV soubor nemohl být nahrán nebo je prázdný.';
-$lang['import_error_readfail'] = 'Import selhal. Nelze Äíst nahraný soubor.';
-$lang['import_error_create']   = 'Nelze vytvořit uživatele';
-$lang['import_notify_fail']    = 'Importovanému uživateli %s s e-mailem %s nemohlo být zasláno upozornění.';
-$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ě 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 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/wiki/lib/plugins/usermanager/lang/cs/list.txt b/wiki/lib/plugins/usermanager/lang/cs/list.txt
deleted file mode 100644
index 36b87fe..0000000
--- a/wiki/lib/plugins/usermanager/lang/cs/list.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Seznam uživatelů =====
diff --git a/wiki/lib/plugins/usermanager/lang/cy/add.txt b/wiki/lib/plugins/usermanager/lang/cy/add.txt
deleted file mode 100644
index c804e53..0000000
--- a/wiki/lib/plugins/usermanager/lang/cy/add.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Ychwanegu defnyddiwr =====
diff --git a/wiki/lib/plugins/usermanager/lang/cy/delete.txt b/wiki/lib/plugins/usermanager/lang/cy/delete.txt
deleted file mode 100644
index a81f3a9..0000000
--- a/wiki/lib/plugins/usermanager/lang/cy/delete.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Dileu defnyddiwr =====
diff --git a/wiki/lib/plugins/usermanager/lang/cy/edit.txt b/wiki/lib/plugins/usermanager/lang/cy/edit.txt
deleted file mode 100644
index 3fcb6d1..0000000
--- a/wiki/lib/plugins/usermanager/lang/cy/edit.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Golygu defnyddiwr =====
diff --git a/wiki/lib/plugins/usermanager/lang/cy/import.txt b/wiki/lib/plugins/usermanager/lang/cy/import.txt
deleted file mode 100644
index 211e8cf..0000000
--- a/wiki/lib/plugins/usermanager/lang/cy/import.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-===== Swmp Mewnforio Defnyddwyr =====
-
-Mae hwn angen ffeil CSV o ddefnyddwyr gydag o leiaf pedair colofn.
-Mae'n rhaid i'r colofnau gynnwys, mewn trefn: id-defnyddiwr, enw llawn, cyfeiriad ebost a grwpiau.
-Dylai'r meysydd CSV gael eu gwahanu gan goma (,) a llinynnau eu hamffinio gan ddyfynodau (%%""%%). Gall ôl-slaes (\) ei ddefnyddio ar gyfer glanhau (escaping).
-Am enghraifft o ffeil addas, ceisiwch y swyddogaeth "Allforio Defnyddwyr" uchod.
-Caiff id-defnyddiwr dyblygiedig eu hanwybyddu.
-
-Generadwyd cyfrinair a'i ebostio i bob defnyddiwr sydd wedi'i fewnforio'n llwyddiannus.
diff --git a/wiki/lib/plugins/usermanager/lang/cy/intro.txt b/wiki/lib/plugins/usermanager/lang/cy/intro.txt
deleted file mode 100644
index a381a30..0000000
--- a/wiki/lib/plugins/usermanager/lang/cy/intro.txt
+++ /dev/null
@@ -1 +0,0 @@
-====== Rheolwr Defnyddwyr ======
diff --git a/wiki/lib/plugins/usermanager/lang/cy/lang.php b/wiki/lib/plugins/usermanager/lang/cy/lang.php
deleted file mode 100644
index 5120d39..0000000
--- a/wiki/lib/plugins/usermanager/lang/cy/lang.php
+++ /dev/null
@@ -1,87 +0,0 @@
-<?php
-/**
- * Welsh language file
- *
- * @author Chris Smith <chris@jalakai.co.uk>
- * @author Alan Davies <ben.brynsadler@gmail.com>
- */
-
-$lang['menu'] = 'Rheolwr Defnyddwyr';
-
-// custom language strings for the plugin
-$lang['noauth']      = '(dilysiad defnddwyr ddim ar gael)';
-$lang['nosupport']   = '(rheolaeth defnyddwyr heb ei chynnal)';
-
-$lang['badauth']     = 'mecanwaith dilysu annilys';     // should never be displayed!
-
-$lang['user_id']     = 'Defnyddiwr';
-$lang['user_pass']   = 'Cyfrinair';
-$lang['user_name']   = 'Enw Cywir';
-$lang['user_mail']   = 'Ebost';
-$lang['user_groups'] = 'Grwpiau';
-
-$lang['field']       = 'Maes';
-$lang['value']       = 'Gwerth';
-$lang['add']         = 'Ychwanegu';
-$lang['delete']      = 'Dileu';
-$lang['delete_selected'] = 'Dileu\'r Dewisiadau';
-$lang['edit']        = 'Golygu';
-$lang['edit_prompt'] = 'Golygu\'r defnyddiwr hwn';
-$lang['modify']      = 'Cadw Newidiadau';
-$lang['search']      = 'Chwilio';
-$lang['search_prompt'] = 'Perfformio chwiliad';
-$lang['clear']       = 'Ailosod Hidlydd Chwilio';
-$lang['filter']      = 'Hidlo';
-$lang['export_all']  = 'Allforio Pob Defnyddiwr (CSV)';
-$lang['export_filtered'] = 'Allforio Rhestr Defnyddwyr wedi\'u Hidlo (CSV)';
-$lang['import']      = 'Mewnforio Defnyddwyr Newydd';
-$lang['line']        = 'Llinell rhif';
-$lang['error']       = 'Gwallneges';
-
-$lang['summary']     = 'Yn dangos %1$d-%2$d defnyddiwr allan o %3$d wedi\'u darganfod. %4$d defnyddiwr yn gyfan gwbl.';
-$lang['nonefound']   = 'Dim defnyddwyr wedi\'u darganfod. %d defnyddiwr yn gyfan gwbl.';
-$lang['delete_ok']   = 'Dilëwyd %d defnyddiwr';
-$lang['delete_fail'] = 'Dileu %d wedi methu.';
-$lang['update_ok']   = 'Diweddarwyd y defnyddiwr yn llwyddiannus';
-$lang['update_fail'] = 'Methodd diweddariad y defnyddiwr';
-$lang['update_exists'] = 'Methodd newid y defnyddair, mae\'r defnyddair hwnnw (%s) yn bodoli eisoes (caiff pob newid arall ei gyflwyno).';
-
-$lang['start']  = 'dechrau';
-$lang['prev']   = 'blaenorol';
-$lang['next']   = 'nesaf';
-$lang['last']   = 'diwethaf';
-
-// added after 2006-03-09 release
-$lang['edit_usermissing'] = 'Methu darganfod y defnyddiwr hwn. Efallai bod y defnyddair hwn wedi\'i ddileu neu wedi\'i newid mewn man arall.';
-$lang['user_notify'] = 'Hysbysu defnyddiwr';
-$lang['note_notify'] = 'Bydd ebyst hysbysu eu hanfon dim ond os ydy defnyddiwr yn derbyn cyfrinair newydd.';
-$lang['note_group'] = 'Bydd defnyddwyr newydd yn cael eu hychwanegu i\'r grŵp diofyn (%s) os na chaiff grŵp ei enwi.';
-$lang['note_pass'] = 'Caiff y cyfrinair ei generadu\'n awtomatig os caiff y maes ei adael yn wag a bod hysbysu\'r defnyddiwr wedi\'i alluogi.';
-$lang['add_ok'] = 'Ychwanegwyd y defnyddiwr yn llwyddiannus';
-$lang['add_fail'] = 'Methodd ychwanegu defnyddiwr';
-$lang['notify_ok'] = 'Anfonwyd yr ebost hysbysu';
-$lang['notify_fail'] = 'Doedd dim modd anfon yr ebost hysbysu';
-
-// import & errors
-$lang['import_userlistcsv'] = 'Ffeil rhestr defnyddwyr (CSV):  ';
-$lang['import_header'] = 'Mewnforiad Diweddaraf - Methiannau';
-$lang['import_success_count'] = 'Mewnforio Defnyddwyr: darganfuwyd %d defnyddiwr, mewnforiwyd %d yn llwyddiannus.';
-$lang['import_failure_count'] = 'Mewnforio Defnyddwyr: methodd %d. Rhestrwyd y methiannau isod.';
-$lang['import_error_fields']  = "Meysydd annigonol, darganfuwyd %d, angen 4.";
-$lang['import_error_baduserid'] = "Id-defnyddiwr ar goll";
-$lang['import_error_badname'] = 'Enw gwael';
-$lang['import_error_badmail'] = 'Cyfeiriad ebost gwael';
-$lang['import_error_upload']  = 'Methodd y Mewnforiad. Doedd dim modd lanlwytho\'r ffeil neu roedd yn wag.';
-$lang['import_error_readfail'] = 'Methodd y Mewnforiad. Methu â darllen y ffeil a lanlwythwyd.';
-$lang['import_error_create']  = 'Methu â chreu\'r defnyddiwr';
-$lang['import_notify_fail']   = 'Doedd dim modd anfon neges hysbysu i\'r defyddiwr a fewnforiwyd, %s gydag ebost %s.';
-$lang['import_downloadfailures'] = 'Lawlwytho Methiannau fel CSV er mwyn cywiro';
-
-$lang['addUser_error_missing_pass'] = 'Gosodwch gyfrinair neu trowch hysbysu defnyddwyr ymlaen i alluogi generadu cyfrineiriau.';
-$lang['addUser_error_pass_not_identical'] = '\'Dyw\'r cyfrineiriau hyn ddim yn cydweddu.';
-$lang['addUser_error_modPass_disabled'] = 'Mae newid cyfrineiriau wedi\'i analluogi\'n bresennol.';
-$lang['addUser_error_name_missing'] = 'Rhowch enw ar gyfer y defnyddiwr newydd.';
-$lang['addUser_error_modName_disabled'] = 'Mae newid enwau wedi\'i analluogi\'n bresennol.';
-$lang['addUser_error_mail_missing'] = 'Rhowch gyfeiriad ebost ar gyfer y defnyddiwr newydd.';
-$lang['addUser_error_modMail_disabled'] = 'Mae newid cyfeiriadau ebost wedi\'i analluogi\'n bresennol.';
-$lang['addUser_error_create_event_failed'] = 'Mae ategyn wedi atal ychwanegu\'r defnyddiwr newydd. Adolygwch negeseuon ychwanegol bosib am wybodaeth bellach.';
diff --git a/wiki/lib/plugins/usermanager/lang/cy/list.txt b/wiki/lib/plugins/usermanager/lang/cy/list.txt
deleted file mode 100644
index 6531774..0000000
--- a/wiki/lib/plugins/usermanager/lang/cy/list.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Rhestr Defnyddwyr =====
diff --git a/wiki/lib/plugins/usermanager/lang/da/add.txt b/wiki/lib/plugins/usermanager/lang/da/add.txt
deleted file mode 100644
index d97de42..0000000
--- a/wiki/lib/plugins/usermanager/lang/da/add.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Tilføj bruger =====
diff --git a/wiki/lib/plugins/usermanager/lang/da/delete.txt b/wiki/lib/plugins/usermanager/lang/da/delete.txt
deleted file mode 100644
index dff0545..0000000
--- a/wiki/lib/plugins/usermanager/lang/da/delete.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Slet bruger =====
diff --git a/wiki/lib/plugins/usermanager/lang/da/edit.txt b/wiki/lib/plugins/usermanager/lang/da/edit.txt
deleted file mode 100644
index 05d63b7..0000000
--- a/wiki/lib/plugins/usermanager/lang/da/edit.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Rediger bruger =====
diff --git a/wiki/lib/plugins/usermanager/lang/da/import.txt b/wiki/lib/plugins/usermanager/lang/da/import.txt
deleted file mode 100644
index 8ff1946..0000000
--- a/wiki/lib/plugins/usermanager/lang/da/import.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-===== Samling af Brugere Import =====
-
-Kræver en CSV-fil med brugere på mindst fire kolonner.
-Kolonnerne skal indeholde, i denne orden: bruger-id, fulde navn, email-adresse og grupper.
-CSV-felterne skal separeres af kommaer (,) og strengafgrænser med anførelsestegn (%%""%%). Backslash (\) kan benyttes som "escape character".
-For et eksempel på en brugbar fil, kan du prøve "Eksportér Brugere"-funktionen her over.  
-Overlappende bruger-id'er bliver ignoreret.
-
-En adgangskode vil blive genereret og sendt til hver succesfuldt importeret bruger.
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/da/intro.txt b/wiki/lib/plugins/usermanager/lang/da/intro.txt
deleted file mode 100644
index 3f597a2..0000000
--- a/wiki/lib/plugins/usermanager/lang/da/intro.txt
+++ /dev/null
@@ -1 +0,0 @@
-====== Brugerstyring ======
diff --git a/wiki/lib/plugins/usermanager/lang/da/lang.php b/wiki/lib/plugins/usermanager/lang/da/lang.php
deleted file mode 100644
index b4e3c6c..0000000
--- a/wiki/lib/plugins/usermanager/lang/da/lang.php
+++ /dev/null
@@ -1,74 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Lars Næsbye Christensen <larsnaesbye@stud.ku.dk>
- * @author Kalle Sommer Nielsen <kalle@php.net>
- * @author Esben Laursen <hyber@hyber.dk>
- * @author Harith <haj@berlingske.dk>
- * @author Daniel Ejsing-Duun <dokuwiki@zilvador.dk>
- * @author Erik Bjørn Pedersen <erik.pedersen@shaw.ca>
- * @author rasmus <rasmus@kinnerup.com>
- * @author Mikael Lyngvig <mikael@lyngvig.org>
- * @author soer9648 <soer9648@eucl.dk>
- */
-$lang['menu']                  = 'Brugerstyring';
-$lang['noauth']                = '(Brugervalidering er ikke tilgængelig)';
-$lang['nosupport']             = '(Brugerstyring er ikke understøttet)';
-$lang['badauth']               = 'Ugyldig brugerbekræftelsesfunktion';
-$lang['user_id']               = 'Bruger';
-$lang['user_pass']             = 'Adgangskode';
-$lang['user_name']             = 'Navn';
-$lang['user_mail']             = 'E-mail';
-$lang['user_groups']           = 'Grupper';
-$lang['field']                 = 'Felt';
-$lang['value']                 = 'Værdi';
-$lang['add']                   = 'Tilføj';
-$lang['delete']                = 'Slet';
-$lang['delete_selected']       = 'Slet valgte';
-$lang['edit']                  = 'Rediger';
-$lang['edit_prompt']           = 'Rediger denne bruger';
-$lang['modify']                = 'Gem ændringer';
-$lang['search']                = 'Søg';
-$lang['search_prompt']         = 'Udfør søgning';
-$lang['clear']                 = 'Nulstil søgefilter';
-$lang['filter']                = 'Filter';
-$lang['export_all']            = 'Eksportér Alle Brugere (CSV)';
-$lang['export_filtered']       = 'Eksportér Filtrerede Brugerliste (CSV)';
-$lang['import']                = 'Importér Nye Brugere';
-$lang['line']                  = 'Linje nr.';
-$lang['error']                 = 'Fejlmeddelelse';
-$lang['summary']               = 'Viser brugerne %1$d-%2$d ud af %3$d fundne. %4$d brugere totalt.';
-$lang['nonefound']             = 'Ingen brugere fundet. %d brugere totalt.';
-$lang['delete_ok']             = '%d brugere slettet';
-$lang['delete_fail']           = '%d kunne ikke slettes.';
-$lang['update_ok']             = 'Bruger opdateret korrekt';
-$lang['update_fail']           = 'Brugeropdatering mislykkedes';
-$lang['update_exists']         = 'Ændring af brugernavn mislykkedes, det valgte brugernavn (%s) er allerede optaget (andre ændringer vil blive udført).';
-$lang['start']                 = 'begynde';
-$lang['prev']                  = 'forrige';
-$lang['next']                  = 'næste';
-$lang['last']                  = 'sidste';
-$lang['edit_usermissing']      = 'Den valgte bruger blev ikke fundet. Brugernavnet kan være slettet eller ændret andetsteds.';
-$lang['user_notify']           = 'Meddel bruger';
-$lang['note_notify']           = 'Meddelelser bliver kun sendt, hvis brugeren får givet et nyt adgangskode.';
-$lang['note_group']            = 'Nye brugere vil blive tilføjet til standardgruppen (%s), hvis ingen gruppe er opgivet.';
-$lang['note_pass']             = 'Adgangskoden vil blive dannet automatisk, hvis feltet er tomt og underretning af brugeren er aktiveret.';
-$lang['add_ok']                = 'Bruger tilføjet uden fejl.';
-$lang['add_fail']              = 'Tilføjelse af bruger mislykkedes';
-$lang['notify_ok']             = 'Meddelelse sendt';
-$lang['notify_fail']           = 'Meddelelse kunne ikke sendes';
-$lang['import_userlistcsv']    = 'Brugerlistefil (CSV):';
-$lang['import_header']         = 'Nyeste Import - Fejl';
-$lang['import_success_count']  = 'Bruger-Import: %d brugere fundet, %d importeret med succes.';
-$lang['import_failure_count']  = 'Bruger-Import: %d fejlet. Fejl er listet nedenfor.';
-$lang['import_error_fields']   = 'Utilstrækkelige felter, fandt %d, påkrævet 4.';
-$lang['import_error_baduserid'] = 'Bruger-id mangler';
-$lang['import_error_badname']  = 'Ugyldigt navn';
-$lang['import_error_badmail']  = 'Ugyldig email-adresse';
-$lang['import_error_upload']   = 'Import Fejlet. CSV-filen kunne ikke uploades eller er tom.';
-$lang['import_error_readfail'] = 'Import Fejlet. Ikke muligt at læse uploadede fil.';
-$lang['import_error_create']   = 'Ikke muligt at oprette brugeren';
-$lang['import_notify_fail']    = 'Notifikationsmeddelelse kunne ikke sendes for importerede bruger %s, med emailen %s.';
-$lang['import_downloadfailures'] = 'Download Fejl som CSV til rettelser';
diff --git a/wiki/lib/plugins/usermanager/lang/da/list.txt b/wiki/lib/plugins/usermanager/lang/da/list.txt
deleted file mode 100644
index 11d1710..0000000
--- a/wiki/lib/plugins/usermanager/lang/da/list.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Brugerliste =====
diff --git a/wiki/lib/plugins/usermanager/lang/de-informal/add.txt b/wiki/lib/plugins/usermanager/lang/de-informal/add.txt
deleted file mode 100644
index 1fc34c9..0000000
--- a/wiki/lib/plugins/usermanager/lang/de-informal/add.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Benutzer hinzufügen =====
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/de-informal/delete.txt b/wiki/lib/plugins/usermanager/lang/de-informal/delete.txt
deleted file mode 100644
index 778396a..0000000
--- a/wiki/lib/plugins/usermanager/lang/de-informal/delete.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Benutzer gelöscht =====
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/de-informal/edit.txt b/wiki/lib/plugins/usermanager/lang/de-informal/edit.txt
deleted file mode 100644
index 291b0f1..0000000
--- a/wiki/lib/plugins/usermanager/lang/de-informal/edit.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Benutzer bearbeiten =====
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/de-informal/import.txt b/wiki/lib/plugins/usermanager/lang/de-informal/import.txt
deleted file mode 100644
index bc88871..0000000
--- a/wiki/lib/plugins/usermanager/lang/de-informal/import.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-===== Massenimport von Benutzern =====
-
-Dieser Import benötigt eine CSV-Datei mit mindestens vier Spalten. Diese Spalten müssen die folgenden Daten (in dieser Reihenfolge) enthalten: Benutzername, Name, E-Mailadresse und Gruppenzugehörigkeit.
-Die CSV-Felder müssen durch ein Komma (,) getrennt sein. Die Zeichenfolgen müssen von Anführungszeichen (%%""%%) umgeben sein. Ein Backslash (\) kann zum Maskieren benutzt werden.
-Für eine Beispieldatei kannst Du die "Benutzer exportieren"-Funktion oben benutzen. Doppelte Benutzername werden ignoriert.
-
-Ein Passwort wird generiert und den einzelnen, erfolgreich importierten Benutzern zugemailt.
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/de-informal/intro.txt b/wiki/lib/plugins/usermanager/lang/de-informal/intro.txt
deleted file mode 100644
index a5927a8..0000000
--- a/wiki/lib/plugins/usermanager/lang/de-informal/intro.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Benutzerverwaltung =====
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/de-informal/lang.php b/wiki/lib/plugins/usermanager/lang/de-informal/lang.php
deleted file mode 100644
index bea3bb9..0000000
--- a/wiki/lib/plugins/usermanager/lang/de-informal/lang.php
+++ /dev/null
@@ -1,83 +0,0 @@
-<?php
-
-/**
- * @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>
- * @author Matthias Schulte <dokuwiki@lupo49.de>
- * @author Christian Wichmann <nospam@zone0.de>
- * @author Pierre Corell <info@joomla-praxis.de>
- * @author Frank Loizzi <contact@software.bacal.de>
- * @author Volker Bödker <volker@boedker.de>
- * @author Dennis Plöger <develop@dieploegers.de>
- * @author F. Mueller-Donath <j.felix@mueller-donath.de>
- */
-$lang['menu']                  = 'Benutzerverwaltung';
-$lang['noauth']                = '(Benutzeranmeldung ist nicht verfügbar)';
-$lang['nosupport']             = '(Benutzerverwaltung wird nicht unterstützt)';
-$lang['badauth']               = 'Ungültige Authentifizierung';
-$lang['user_id']               = 'Benutzer';
-$lang['user_pass']             = 'Passwort';
-$lang['user_name']             = 'Echter Name';
-$lang['user_mail']             = 'E-Mail';
-$lang['user_groups']           = 'Gruppen';
-$lang['field']                 = 'Feld';
-$lang['value']                 = 'Wert';
-$lang['add']                   = 'Zufügen';
-$lang['delete']                = 'Löschen';
-$lang['delete_selected']       = 'Lösche Ausgewähltes';
-$lang['edit']                  = 'Bearbeiten';
-$lang['edit_prompt']           = 'Bearbeite diesen Benutzer';
-$lang['modify']                = 'Änderungen speichern';
-$lang['search']                = 'Suchen';
-$lang['search_prompt']         = 'Suche ausführen';
-$lang['clear']                 = 'Suchfilter zurücksetzen';
-$lang['filter']                = 'Filter';
-$lang['export_all']            = 'Alle Benutzer exportieren (CSV)';
-$lang['export_filtered']       = 'Gefilterte Benutzerliste exportieren (CSV)';
-$lang['import']                = 'Neue Benutzer importieren';
-$lang['line']                  = 'Zeile Nr.';
-$lang['error']                 = 'Fehlermeldung';
-$lang['summary']               = 'Zeige Benutzer %1$d-%2$d von %3$d gefundenen. %4$d Benutzer insgesamt.';
-$lang['nonefound']             = 'Keinen Benutzer gefunden. Insgesamt %d Benutzer.';
-$lang['delete_ok']             = '%d Benutzer wurden gelöscht';
-$lang['delete_fail']           = '%d konnte nicht gelöscht werden';
-$lang['update_ok']             = 'Benutzer wurde erfolgreich aktualisiert';
-$lang['update_fail']           = 'Aktualisierung des Benutzers ist fehlgeschlagen';
-$lang['update_exists']         = 'Benutzername konnte nicht geändert werden, der angegebene Benutzername (%s) existiert bereits (alle anderen Änderungen werden angewandt).';
-$lang['start']                 = 'Start';
-$lang['prev']                  = 'vorige';
-$lang['next']                  = 'nächste';
-$lang['last']                  = 'letzte';
-$lang['edit_usermissing']      = 'Der gewählte Benutzer wurde nicht gefunden. Der angegebene Benutzername könnte gelöscht oder an anderer Stelle geändert worden sein.';
-$lang['user_notify']           = 'Benutzer benachrichtigen';
-$lang['note_notify']           = 'Benachrichtigungsmails werden nur versandt, wenn der Benutzer ein neues Kennwort erhält.';
-$lang['note_group']            = 'Neue Benutzer werden zur Standardgruppe (%s) hinzugefügt, wenn keine Gruppe angegeben wird.';
-$lang['note_pass']             = 'Das Passwort wird automatisch erzeugt, wenn das Feld freigelassen wird und der Benutzer Benachrichtigungen aktiviert hat.';
-$lang['add_ok']                = 'Benutzer erfolgreich hinzugefügt';
-$lang['add_fail']              = 'Hinzufügen des Benutzers fehlgeschlagen';
-$lang['notify_ok']             = 'Benachrichtigungsmail wurde versendet';
-$lang['notify_fail']           = 'Benachrichtigungsemail konnte nicht gesendet werden';
-$lang['import_userlistcsv']    = 'Benutzerliste (CSV-Datei):';
-$lang['import_header']         = 'Letzte Fehler bei Import';
-$lang['import_success_count']  = 'Benutzerimport: %d Benutzer gefunden, %d erfolgreich importiert.';
-$lang['import_failure_count']  = 'Benutzerimport: %d Benutzerimporte fehlgeschalten. Alle Fehler werden unten angezeigt.';
-$lang['import_error_fields']   = 'Falsche Anzahl Felder. Gefunden: %d. Benötigt: 4.';
-$lang['import_error_baduserid'] = 'Benutzername fehlt';
-$lang['import_error_badname']  = 'Ungültiger Name';
-$lang['import_error_badmail']  = 'Ungültige E-Mailadresse';
-$lang['import_error_upload']   = 'Import fehlgeschlagen. Die CSV-Datei konnte nicht hochgeladen werden oder ist leer.';
-$lang['import_error_readfail'] = 'Import fehlgeschlagen. Konnte die hochgeladene Datei nicht lesen.';
-$lang['import_error_create']   = 'Konnte den Benutzer nicht erzeugen';
-$lang['import_notify_fail']    = 'Benachrichtigung konnte an Benutzer %s (%s) nicht geschickt werden.';
-$lang['import_downloadfailures'] = 'Fehler als CSV-Datei zur Korrektur herunterladen';
-$lang['addUser_error_missing_pass'] = 'Bitte setze entweder ein Passwort oder aktiviere die Benutzerbenachrichtigung, um die Passwortgenerierung zu ermöglichen.';
-$lang['addUser_error_pass_not_identical'] = 'Die eingegebenen Passwörter stimmen nicht überein.';
-$lang['addUser_error_modPass_disabled'] = 'Das Bearbeiten von Passwörtern ist momentan deaktiviert';
-$lang['addUser_error_name_missing'] = 'Bitte gib den Namen des neuen Benutzer ein.';
-$lang['addUser_error_modName_disabled'] = 'Das Bearbeiten von Namen ist momentan deaktiviert.';
-$lang['addUser_error_mail_missing'] = 'Bitte gib die E-Mail-Adresse des neuen Benutzer ein.';
-$lang['addUser_error_modMail_disabled'] = 'Das Bearbeiten von E-Mailadressen ist momentan deaktiviert.';
-$lang['addUser_error_create_event_failed'] = 'Ein Plug-in hat das Hinzufügen des neuen Benutzers verhindert. Für weitere Informationen sieh dir mögliche andere Meldungen an.';
diff --git a/wiki/lib/plugins/usermanager/lang/de-informal/list.txt b/wiki/lib/plugins/usermanager/lang/de-informal/list.txt
deleted file mode 100644
index 0a62012..0000000
--- a/wiki/lib/plugins/usermanager/lang/de-informal/list.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Benutzerliste =====
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/de/add.txt b/wiki/lib/plugins/usermanager/lang/de/add.txt
deleted file mode 100644
index 925fa50..0000000
--- a/wiki/lib/plugins/usermanager/lang/de/add.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Benutzer hinzufügen =====
diff --git a/wiki/lib/plugins/usermanager/lang/de/delete.txt b/wiki/lib/plugins/usermanager/lang/de/delete.txt
deleted file mode 100644
index 4f3bbbd..0000000
--- a/wiki/lib/plugins/usermanager/lang/de/delete.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Benutzer löschen =====
diff --git a/wiki/lib/plugins/usermanager/lang/de/edit.txt b/wiki/lib/plugins/usermanager/lang/de/edit.txt
deleted file mode 100644
index 9419200..0000000
--- a/wiki/lib/plugins/usermanager/lang/de/edit.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Benutzer ändern =====
diff --git a/wiki/lib/plugins/usermanager/lang/de/import.txt b/wiki/lib/plugins/usermanager/lang/de/import.txt
deleted file mode 100644
index 7faca3b..0000000
--- a/wiki/lib/plugins/usermanager/lang/de/import.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-===== Benutzer-Massenimport =====
-
-Um mehrere Benutzer gleichzeitig zu importieren, wird eine CSV-Datei mit den folgenden vier Spalten benötigt (In dieser Reihenfolge): Benutzer-ID, Voller Name, E-Mail-Adresse und Gruppen.
-Die CSV-Felder sind Kommata-separiert (,) und mit Anführungszeichen eingefasst (%%"%%). Mit Backslashes (\) können Sonderzeichen maskiert werden.
-Ein Beispiel für eine gültige Datei kann mit der Benutzer-Export-Funktion oben generiert werden.
-Doppelte Benutzer-IDs werden ignoriert.
-
-Für jeden importierten Benutzer wird ein Passwort generiert und dem Benutzer per Mail zugestellt.
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/de/intro.txt b/wiki/lib/plugins/usermanager/lang/de/intro.txt
deleted file mode 100644
index a5837b8..0000000
--- a/wiki/lib/plugins/usermanager/lang/de/intro.txt
+++ /dev/null
@@ -1 +0,0 @@
-====== Benutzer-Manager ======
diff --git a/wiki/lib/plugins/usermanager/lang/de/lang.php b/wiki/lib/plugins/usermanager/lang/de/lang.php
deleted file mode 100644
index df1d1ff..0000000
--- a/wiki/lib/plugins/usermanager/lang/de/lang.php
+++ /dev/null
@@ -1,95 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Matthias Grimm <matthiasgrimm@users.sourceforge.net>
- * @author Andreas Gohr <andi@splitbrain.org>
- * @author Michael Klier <chi@chimeric.de>
- * @author Leo Moll <leo@yeasoft.com>
- * @author Florian Anderiasch <fa@art-core.org>
- * @author Robin Kluth <commi1993@gmail.com>
- * @author Arne Pelka <mail@arnepelka.de>
- * @author Dirk Einecke <dirk@dirkeinecke.de>
- * @author Blitzi94 <Blitzi94@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 Matthias Schulte <dokuwiki@lupo49.de>
- * @author Sven <Svenluecke48@gmx.d>
- * @author christian studer <cstuder@existenz.ch>
- * @author Ben Fey <benedikt.fey@beck-heun.de>
- * @author Jonas Gröger <jonas.groeger@gmail.com>
- * @author Uwe Benzelrath <uwebenzelrath@gmail.com>
- * @author ms <msocial@posteo.de>
- * @author Carsten Perthel <carsten@cpesoft.com>
- */
-$lang['menu']                  = 'Benutzerverwaltung';
-$lang['noauth']                = '(Authentifizierungssystem nicht verfügbar)';
-$lang['nosupport']             = '(Benutzerverwaltung nicht unterstützt)';
-$lang['badauth']               = 'Ungültige Methode zur Authentifizierung';
-$lang['user_id']               = 'Benutzername';
-$lang['user_pass']             = 'Passwort';
-$lang['user_name']             = 'Voller Name';
-$lang['user_mail']             = 'E-Mail';
-$lang['user_groups']           = 'Gruppen';
-$lang['field']                 = 'Feld';
-$lang['value']                 = 'Wert';
-$lang['add']                   = 'Hinzufügen';
-$lang['delete']                = 'Löschen';
-$lang['delete_selected']       = 'Ausgewählte löschen';
-$lang['edit']                  = 'Ändern';
-$lang['edit_prompt']           = 'Benutzerdaten ändern';
-$lang['modify']                = 'Speichern';
-$lang['search']                = 'Suchen';
-$lang['search_prompt']         = 'Benutzerdaten filtern';
-$lang['clear']                 = 'Filter zurücksetzen';
-$lang['filter']                = 'Filter';
-$lang['export_all']            = 'Alle User exportieren (CSV)';
-$lang['export_filtered']       = 'Exportiere gefilterte Userliste (CSV)';
-$lang['import']                = 'Importiere neue User';
-$lang['line']                  = 'Zeilennr.';
-$lang['error']                 = 'Fehlermeldung';
-$lang['summary']               = 'Zeige Benutzer %1$d-%2$d von %3$d gefundenen. %4$d Benutzer insgesamt.';
-$lang['nonefound']             = 'Keine Benutzer gefunden. %d Benutzer insgesamt.';
-$lang['delete_ok']             = '%d Benutzer gelöscht';
-$lang['delete_fail']           = '%d konnten nicht gelöscht werden.';
-$lang['update_ok']             = 'Benutzerdaten erfolgreich geändert.';
-$lang['update_fail']           = 'Änderung der Benutzerdaten fehlgeschlagen.';
-$lang['update_exists']         = 'Benutzername konnte nicht geändert werden, weil der angegebene Benutzer (%s) bereits existiert (alle anderen Änderungen wurden durchgeführt).';
-$lang['start']                 = 'Anfang';
-$lang['prev']                  = 'Vorherige';
-$lang['next']                  = 'Nächste';
-$lang['last']                  = 'Ende';
-$lang['edit_usermissing']      = 'Der ausgewählte Benutzer wurde nicht gefunden. Möglicherweise wurde er gelöscht oder der Benutzer wurde anderswo geändert.';
-$lang['user_notify']           = 'Nutzer benachrichtigen';
-$lang['note_notify']           = 'Benachrichtigungs-E-Mails werden nur versandt, wenn ein neues Passwort vergeben wurde.';
-$lang['note_group']            = 'Neue Benutzer werden der Standard-Gruppe (%s) hinzugefügt, wenn keine Gruppe angegeben wurde.';
-$lang['note_pass']             = 'Das Passwort wird automatisch generiert, wenn das entsprechende Feld leergelassen wird und die Benachrichtigung des Benutzers aktiviert ist.';
-$lang['add_ok']                = 'Nutzer erfolgreich angelegt';
-$lang['add_fail']              = 'Nutzer konnte nicht angelegt werden';
-$lang['notify_ok']             = 'Benachrichtigungsmail wurde versandt';
-$lang['notify_fail']           = 'Benachrichtigungsmail konnte nicht versandt werden';
-$lang['import_userlistcsv']    = 'Benutzerliste (CSV-Datei):';
-$lang['import_header']         = 'Letzte Fehler bei Import';
-$lang['import_success_count']  = 'User-Import: %d User gefunden, %d erfolgreich importiert.';
-$lang['import_failure_count']  = 'User-Import: %d fehlgeschlagen. Fehlgeschlagene User sind nachfolgend aufgelistet.';
-$lang['import_error_fields']   = 'Unzureichende Anzahl an Feldern: %d gefunden, benötigt sind 4.';
-$lang['import_error_baduserid'] = 'User-Id fehlt';
-$lang['import_error_badname']  = 'Ungültiger Name';
-$lang['import_error_badmail']  = 'Ungültige E-Mail';
-$lang['import_error_upload']   = 'Import fehlgeschlagen. Die CSV-Datei konnte nicht hochgeladen werden, oder ist leer.';
-$lang['import_error_readfail'] = 'Import fehlgeschlagen. Die hochgeladene Datei konnte nicht gelesen werden.';
-$lang['import_error_create']   = 'User konnte nicht angelegt werden';
-$lang['import_notify_fail']    = 'Benachrichtigung konnte nicht an den importierten Benutzer %s (E-Mail: %s) gesendet werden.';
-$lang['import_downloadfailures'] = 'Fehler als CSV-Datei zur Korrektur herunterladen';
-$lang['addUser_error_missing_pass'] = 'Bitte vergeben Sie entweder ein Passwort oder Sie aktivieren die Benutzerbenachrichtigung, um die Passwortgenerierung zu ermöglichen.';
-$lang['addUser_error_pass_not_identical'] = 'Die eingegebenen Passwörter stimmen nicht überein.';
-$lang['addUser_error_modPass_disabled'] = 'Das Bearbeiten von Passwörtern ist momentan deaktiviert';
-$lang['addUser_error_name_missing'] = 'Bitte geben Sie den Namen des neuen Benutzer ein.';
-$lang['addUser_error_modName_disabled'] = 'Das Bearbeiten von Namen ist momentan deaktiviert.';
-$lang['addUser_error_mail_missing'] = 'Bitte geben Sie die E-Mail-Adresse des neuen Benutzer ein.';
-$lang['addUser_error_modMail_disabled'] = 'Das Bearbeiten von E-Mailadressen ist momentan deaktiviert.';
-$lang['addUser_error_create_event_failed'] = 'Ein Plug-in hat das Hinzufügen des neuen Benutzers verhindert. Für weitere Informationen sehen Sie sich mögliche andere Meldungen an.';
diff --git a/wiki/lib/plugins/usermanager/lang/de/list.txt b/wiki/lib/plugins/usermanager/lang/de/list.txt
deleted file mode 100644
index 8d6d5fb..0000000
--- a/wiki/lib/plugins/usermanager/lang/de/list.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Benutzerliste =====
diff --git a/wiki/lib/plugins/usermanager/lang/el/add.txt b/wiki/lib/plugins/usermanager/lang/el/add.txt
deleted file mode 100644
index 0616f8c..0000000
--- a/wiki/lib/plugins/usermanager/lang/el/add.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== ΠÏοσθήκη ΧÏήστη =====
diff --git a/wiki/lib/plugins/usermanager/lang/el/delete.txt b/wiki/lib/plugins/usermanager/lang/el/delete.txt
deleted file mode 100644
index baf9bc0..0000000
--- a/wiki/lib/plugins/usermanager/lang/el/delete.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== ΔιαγÏαφή ΧÏήστη =====
diff --git a/wiki/lib/plugins/usermanager/lang/el/edit.txt b/wiki/lib/plugins/usermanager/lang/el/edit.txt
deleted file mode 100644
index dec59ef..0000000
--- a/wiki/lib/plugins/usermanager/lang/el/edit.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== ΤÏοποποίηση ΧÏήστη =====
diff --git a/wiki/lib/plugins/usermanager/lang/el/intro.txt b/wiki/lib/plugins/usermanager/lang/el/intro.txt
deleted file mode 100644
index 874c13b..0000000
--- a/wiki/lib/plugins/usermanager/lang/el/intro.txt
+++ /dev/null
@@ -1 +0,0 @@
-====== ΔιαχείÏιση ΧÏηστών ======
diff --git a/wiki/lib/plugins/usermanager/lang/el/lang.php b/wiki/lib/plugins/usermanager/lang/el/lang.php
deleted file mode 100644
index a838f73..0000000
--- a/wiki/lib/plugins/usermanager/lang/el/lang.php
+++ /dev/null
@@ -1,54 +0,0 @@
-<?php
-
-/**
- * @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>
- * @author Konstantinos Koryllos <koryllos@gmail.com>
- * @author George Petsagourakis <petsagouris@gmail.com>
- * @author Petros Vidalis <pvidalis@gmail.com>
- * @author Vasileios Karavasilis vasileioskaravasilis@gmail.com
- */
-$lang['menu']                  = 'ΔιαχείÏιση ΧÏηστών';
-$lang['noauth']                = '(η είσοδος χÏηστών δεν είναι δυνατή)';
-$lang['nosupport']             = '(δεν υποστηÏίζεται η διαχείÏιση χÏηστών)';
-$lang['badauth']               = 'μη επιτÏεπτός μηχανισμός πιστοποίησης';
-$lang['user_id']               = 'ΧÏήστης';
-$lang['user_pass']             = 'Κωδικός';
-$lang['user_name']             = 'ΠλήÏες όνομα';
-$lang['user_mail']             = 'e-mail';
-$lang['user_groups']           = 'Ομάδες';
-$lang['field']                 = 'Πεδίο';
-$lang['value']                 = 'Τιμή';
-$lang['add']                   = 'ΠÏοσθήκη';
-$lang['delete']                = 'ΔιαγÏαφή';
-$lang['delete_selected']       = 'ΔιαγÏαφή επιλεγμένων χÏηστών';
-$lang['edit']                  = 'ΤÏοποποίηση';
-$lang['edit_prompt']           = 'ΤÏοποποίηση χÏήστη';
-$lang['modify']                = 'Αποθήκευση αλλαγών';
-$lang['search']                = 'Αναζήτηση';
-$lang['search_prompt']         = 'Εκκίνηση αναζήτησης';
-$lang['clear']                 = 'ΚαθαÏισμός φίλτÏων';
-$lang['filter']                = 'ΦίλτÏο';
-$lang['summary']               = 'Εμφάνιση χÏηστών %1$d-%2$d από %3$d σχετικοÏÏ‚. %4$d χÏήστες συνολικά.';
-$lang['nonefound']             = 'Δεν βÏέθηκαν σχετικοί χÏήστες. %d χÏήστες συνολικά.';
-$lang['delete_ok']             = '%d χÏήστες διεγÏάφησαν';
-$lang['delete_fail']           = '%d χÏήστες δεν διεγÏάφησαν.';
-$lang['update_ok']             = 'Επιτυχημένη Ï„Ïοποποίηση Ï€Ïοφίλ χÏήστη';
-$lang['update_fail']           = 'Αποτυχημένη Ï„Ïοποποίηση Ï€Ïοφίλ χÏήστη';
-$lang['update_exists']         = 'Η αλλαγή ονόματος χÏήστη απέτυχε -- το νέο όνομα χÏήστη (%s) ήδη υπάÏχει (τυχόν άλλες αλλαγές θα εφαÏμοστοÏν).';
-$lang['start']                 = 'αÏχή';
-$lang['prev']                  = 'Ï€ÏοηγοÏμενα';
-$lang['next']                  = 'επόμενα';
-$lang['last']                  = 'τέλος';
-$lang['edit_usermissing']      = 'Ο επιλεγμένος χÏήστης δεν βÏέθηκε. Πιθανόν να διαγÏάφηκε στο μεταξÏ.';
-$lang['user_notify']           = 'Ειδοποίηση χÏήστη';
-$lang['note_notify']           = 'Τα ενημεÏωτικά e-mails στέλνονται μόνο όταν δίνεται νέος κωδικός στον χÏήστη.';
-$lang['note_group']            = 'Οι νέοι χÏήστες θα ανήκουν στην ομάδα (%s) αν δεν οÏιστεί άλλη ομάδα.';
-$lang['note_pass']             = 'Ο κωδικός θα δημιουÏγηθεί αυτόματα εάν το πεδίο μείνει κενό και έχει επιλεγεί η αποστολή ειδοποίησης χÏήστη.';
-$lang['add_ok']                = 'Επιτυχημένη εγγÏαφή  χÏήστη';
-$lang['add_fail']              = 'Η εγγÏαφή του χÏήστη απέτυχε';
-$lang['notify_ok']             = 'Εστάλη ενημεÏωτικό e-mail';
-$lang['notify_fail']           = 'Δεν ήταν δυνατή η αποστολή του ενημεÏÏ‰Ï„Î¹ÎºÎ¿Ï e-mail';
diff --git a/wiki/lib/plugins/usermanager/lang/el/list.txt b/wiki/lib/plugins/usermanager/lang/el/list.txt
deleted file mode 100644
index adb5c21..0000000
--- a/wiki/lib/plugins/usermanager/lang/el/list.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Κατάλογος ΧÏηστών =====
diff --git a/wiki/lib/plugins/usermanager/lang/en/add.txt b/wiki/lib/plugins/usermanager/lang/en/add.txt
deleted file mode 100644
index 9afecb5..0000000
--- a/wiki/lib/plugins/usermanager/lang/en/add.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Add user =====
diff --git a/wiki/lib/plugins/usermanager/lang/en/delete.txt b/wiki/lib/plugins/usermanager/lang/en/delete.txt
deleted file mode 100644
index c3ca90d..0000000
--- a/wiki/lib/plugins/usermanager/lang/en/delete.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Delete user =====
diff --git a/wiki/lib/plugins/usermanager/lang/en/edit.txt b/wiki/lib/plugins/usermanager/lang/en/edit.txt
deleted file mode 100644
index 4d02dfd..0000000
--- a/wiki/lib/plugins/usermanager/lang/en/edit.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Edit user =====
diff --git a/wiki/lib/plugins/usermanager/lang/en/import.txt b/wiki/lib/plugins/usermanager/lang/en/import.txt
deleted file mode 100644
index 3a1cf99..0000000
--- a/wiki/lib/plugins/usermanager/lang/en/import.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-===== Bulk User Import =====
-
-Requires a CSV file of users with at least four columns.
-The columns must contain, in order: user-id, full name, email address and groups.
-The CSV fields should be separated by commas (,) and strings delimited by quotation marks (%%""%%). Backslash (\) can be used for escaping.
-For an example of a suitable file, try the "Export Users" function above.
-Duplicate user-ids will be ignored.
-
-A password will be generated and emailed to each successfully imported user.
diff --git a/wiki/lib/plugins/usermanager/lang/en/intro.txt b/wiki/lib/plugins/usermanager/lang/en/intro.txt
deleted file mode 100644
index 73bf556..0000000
--- a/wiki/lib/plugins/usermanager/lang/en/intro.txt
+++ /dev/null
@@ -1 +0,0 @@
-====== User Manager ======
diff --git a/wiki/lib/plugins/usermanager/lang/en/lang.php b/wiki/lib/plugins/usermanager/lang/en/lang.php
deleted file mode 100644
index 5f47673..0000000
--- a/wiki/lib/plugins/usermanager/lang/en/lang.php
+++ /dev/null
@@ -1,86 +0,0 @@
-<?php
-/**
- * English language file
- *
- * @author Chris Smith <chris@jalakai.co.uk>
- */
-
-$lang['menu'] = 'User Manager';
-
-// custom language strings for the plugin
-$lang['noauth']      = '(user authentication not available)';
-$lang['nosupport']   = '(user management not supported)';
-
-$lang['badauth']     = 'invalid auth mechanism';     // should never be displayed!
-
-$lang['user_id']     = 'User';
-$lang['user_pass']   = 'Password';
-$lang['user_name']   = 'Real Name';
-$lang['user_mail']   = 'Email';
-$lang['user_groups'] = 'Groups';
-
-$lang['field']       = 'Field';
-$lang['value']       = 'Value';
-$lang['add']         = 'Add';
-$lang['delete']      = 'Delete';
-$lang['delete_selected'] = 'Delete Selected';
-$lang['edit']        = 'Edit';
-$lang['edit_prompt'] = 'Edit this user';
-$lang['modify']      = 'Save Changes';
-$lang['search']      = 'Search';
-$lang['search_prompt'] = 'Perform search';
-$lang['clear']       = 'Reset Search Filter';
-$lang['filter']      = 'Filter';
-$lang['export_all']  = 'Export All Users (CSV)';
-$lang['export_filtered'] = 'Export Filtered User list (CSV)';
-$lang['import']      = 'Import New Users';
-$lang['line']        = 'Line no.';
-$lang['error']       = 'Error message';
-
-$lang['summary']     = 'Displaying users %1$d-%2$d of %3$d found. %4$d users total.';
-$lang['nonefound']   = 'No users found. %d users total.';
-$lang['delete_ok']   = '%d users deleted';
-$lang['delete_fail'] = '%d failed deleting.';
-$lang['update_ok']   = 'User updated successfully';
-$lang['update_fail'] = 'User update failed';
-$lang['update_exists'] = 'User name change failed, the specified user name (%s) already exists (any other changes will be applied).';
-
-$lang['start']  = 'start';
-$lang['prev']   = 'previous';
-$lang['next']   = 'next';
-$lang['last']   = 'last';
-
-// added after 2006-03-09 release
-$lang['edit_usermissing'] = 'Selected user not found, the specified user name may have been deleted or changed elsewhere.';
-$lang['user_notify'] = 'Notify user';
-$lang['note_notify'] = 'Notification emails are only sent if the user is given a new password.';
-$lang['note_group'] = 'New users will be added to the default group (%s) if no group is specified.';
-$lang['note_pass'] = 'The password will be autogenerated if the field is left empty and notification of the user is enabled.';
-$lang['add_ok'] = 'User added successfully';
-$lang['add_fail'] = 'User addition failed';
-$lang['notify_ok'] = 'Notification email sent';
-$lang['notify_fail'] = 'Notification email could not be sent';
-
-// import & errors
-$lang['import_userlistcsv'] = 'User list file (CSV):  ';
-$lang['import_header'] = 'Most Recent Import - Failures';
-$lang['import_success_count'] = 'User Import: %d users found, %d imported successfully.';
-$lang['import_failure_count'] = 'User Import: %d failed. Failures are listed below.';
-$lang['import_error_fields']  = "Insufficient fields, found %d, require 4.";
-$lang['import_error_baduserid'] = "User-id missing";
-$lang['import_error_badname'] = 'Bad name';
-$lang['import_error_badmail'] = 'Bad email address';
-$lang['import_error_upload']  = 'Import Failed. The csv file could not be uploaded or is empty.';
-$lang['import_error_readfail'] = 'Import Failed. Unable to read uploaded file.';
-$lang['import_error_create']  = 'Unable to create the user';
-$lang['import_notify_fail']   = 'Notification message could not be sent for imported user, %s with email %s.';
-$lang['import_downloadfailures'] = 'Download Failures as CSV for correction';
-
-$lang['addUser_error_missing_pass'] = 'Please either set a password or activate user notification to enable password generation.';
-$lang['addUser_error_pass_not_identical'] = 'The entered passwords were not identical.';
-$lang['addUser_error_modPass_disabled'] = 'Modifing passwords is currently disabled';
-$lang['addUser_error_name_missing'] = 'Please enter a name for the new user.';
-$lang['addUser_error_modName_disabled'] = 'Modifing names is currently disabled.';
-$lang['addUser_error_mail_missing'] = 'Please enter an Email-Adress for the new user.';
-$lang['addUser_error_modMail_disabled'] = 'Modifing Email-Adresses is currently disabled.';
-$lang['addUser_error_create_event_failed'] = 'A plugin prevented the new user being added. Review possible other messages for more information.';
diff --git a/wiki/lib/plugins/usermanager/lang/en/list.txt b/wiki/lib/plugins/usermanager/lang/en/list.txt
deleted file mode 100644
index 54c45ca..0000000
--- a/wiki/lib/plugins/usermanager/lang/en/list.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== User List =====
diff --git a/wiki/lib/plugins/usermanager/lang/eo/add.txt b/wiki/lib/plugins/usermanager/lang/eo/add.txt
deleted file mode 100644
index 8775ff8..0000000
--- a/wiki/lib/plugins/usermanager/lang/eo/add.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Aldoni uzanton =====
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/eo/delete.txt b/wiki/lib/plugins/usermanager/lang/eo/delete.txt
deleted file mode 100644
index 0d94f81..0000000
--- a/wiki/lib/plugins/usermanager/lang/eo/delete.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Forigi uzanton =====
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/eo/edit.txt b/wiki/lib/plugins/usermanager/lang/eo/edit.txt
deleted file mode 100644
index 2ced16e..0000000
--- a/wiki/lib/plugins/usermanager/lang/eo/edit.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Modifi uzanton =====
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/eo/import.txt b/wiki/lib/plugins/usermanager/lang/eo/import.txt
deleted file mode 100644
index 09fbe69..0000000
--- a/wiki/lib/plugins/usermanager/lang/eo/import.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-===== Amasa importo de uzantoj =====
-
-Tio ĉi postulas CSV-dosiero de uzantoj kun minimume kvar kolumnoj.
-La kolumnoj devas enhavi, laÅ­orde: uzant-id, kompleta nomo, retadreso kaj grupoj.
-La CSV-kampoj devos esti apartitaj per komoj (,) kaj ĉenoj devas esti limigitaj per citiloj (%%""%%). Retroklino (\) povas esti uzata por eskapo.
-Por ekzemplo de taÅ­ga dosiero, provu la funkcion "Eksporti uzantojn" supre.
-Duobligitaj uzant-id estos preteratentataj.
-
-Pasvorto estos generata kaj retsendata al ĉiu sukecse importita uzanto.
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/eo/intro.txt b/wiki/lib/plugins/usermanager/lang/eo/intro.txt
deleted file mode 100644
index 5b5a940..0000000
--- a/wiki/lib/plugins/usermanager/lang/eo/intro.txt
+++ /dev/null
@@ -1 +0,0 @@
-====== Administrado de uzantoj ======
diff --git a/wiki/lib/plugins/usermanager/lang/eo/lang.php b/wiki/lib/plugins/usermanager/lang/eo/lang.php
deleted file mode 100644
index 5a11e73..0000000
--- a/wiki/lib/plugins/usermanager/lang/eo/lang.php
+++ /dev/null
@@ -1,69 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Felipe Castro <fefcas@uol.com.br>
- * @author Felipo Kastro <fefcas@gmail.com>
- * @author Robert Bogenschneider <robog@gmx.de>
- * @author Erik Pedersen <erik pedersen@shaw.ca>
- */
-$lang['menu']                  = 'Administrado de uzantoj';
-$lang['noauth']                = '(identiÄo de uzantoj ne disponeblas)';
-$lang['nosupport']             = '(administro de uzantoj ne estas subtenata)';
-$lang['badauth']               = 'tiu identiÄa procezo ne validas';
-$lang['user_id']               = 'Uzanto';
-$lang['user_pass']             = 'Pasvorto';
-$lang['user_name']             = 'Vera nomo';
-$lang['user_mail']             = 'RetpoÅtadreso';
-$lang['user_groups']           = 'Grupoj';
-$lang['field']                 = 'Kampo';
-$lang['value']                 = 'Valoro';
-$lang['add']                   = 'Aldoni';
-$lang['delete']                = 'Forigi';
-$lang['delete_selected']       = 'Forigi elektitan';
-$lang['edit']                  = 'Modifi';
-$lang['edit_prompt']           = 'Modifi tiun ĉi uzanton';
-$lang['modify']                = 'Registri modifojn';
-$lang['search']                = 'Serĉi';
-$lang['search_prompt']         = 'Fari serĉon';
-$lang['clear']                 = 'Refari serĉan filtron';
-$lang['filter']                = 'Filtro';
-$lang['export_all']            = 'Eksporti ĉiujn uzantojn (CSV)';
-$lang['export_filtered']       = 'Eksporti filtritan uzant-liston (CSV)';
-$lang['import']                = 'Importi novajn uzantojn';
-$lang['line']                  = 'Lini-num.';
-$lang['error']                 = 'Erar-mesaÄo';
-$lang['summary']               = 'MontriÄas uzantoj %1$d-%2$d el %3$d trovitaj. %4$d uzantoj entute.';
-$lang['nonefound']             = 'Neniuj uzantoj troviÄas. %d uzantoj entute.';
-$lang['delete_ok']             = '%d uzantoj forigiÄis';
-$lang['delete_fail']           = '%d malsukcesis esti forigitaj.';
-$lang['update_ok']             = 'Tiu uzanto sukcese ÄisdatiÄis';
-$lang['update_fail']           = 'Malsukceso okazis por Äisdatigi tiun uzanton';
-$lang['update_exists']         = 'Malsukceso okazis por ÅanÄi la nomon de tiu uzanto: la enmetita nomo (%s) jam ekzistas (ĉiuj aliaj ÅanÄoj estos aplikitaj)';
-$lang['start']                 = 'Ekigi';
-$lang['prev']                  = 'antaÅ­e';
-$lang['next']                  = 'sekve';
-$lang['last']                  = 'laste';
-$lang['edit_usermissing']      = 'La elektita uzanto ne troviÄis: tiu nomo povis esti forigita aÅ­ ÅanÄita aliloke.';
-$lang['user_notify']           = 'Avizi uzanton';
-$lang['note_notify']           = 'Avizantaj mesaÄoj estos sendataj nur se la uzanto ekhavos novan pasvorton.';
-$lang['note_group']            = 'Novaj uzantoj estos aldonitaj al la komuna grupo (%s) se neniu alia estos specifita.';
-$lang['note_pass']             = 'La pasvorto estos aÅ­tomate kreita se la kampo estos lasita malplena kaj \'avizo al uzantoj\' estos ebligita.';
-$lang['add_ok']                = 'La uzanto sukcese aldoniÄis';
-$lang['add_fail']              = 'Ne eblis aldoni uzanton';
-$lang['notify_ok']             = 'Avizanta mesaÄo sendiÄis';
-$lang['notify_fail']           = 'La avizanta mesaÄo ne povis esti sendita';
-$lang['import_userlistcsv']    = 'Dosiero kun listo de uzantoj (CSV):';
-$lang['import_header']         = 'Plej lastaj Import-eraroj';
-$lang['import_success_count']  = 'Uzant-importo: %d uzantoj trovataj, %d sukcese importitaj.';
-$lang['import_failure_count']  = 'Uzant-importo: %d fiaskis. Fiaskoj estas sube listitaj.';
-$lang['import_error_fields']   = 'Nesufiĉe da kampoj, ni trovis %d, necesas 4.';
-$lang['import_error_baduserid'] = 'Mankas uzant-id';
-$lang['import_error_badname']  = 'MalÄusta nomo';
-$lang['import_error_badmail']  = 'MalÄusta retadreso';
-$lang['import_error_upload']   = 'Importo fiaskis. La csv-dosiero ne povis esti alÅutata aÅ­ Äi estas malplena.';
-$lang['import_error_readfail'] = 'Importo fiaskis. Ne eblas legi alÅutitan dosieron.';
-$lang['import_error_create']   = 'Ne eblas krei la uzanton';
-$lang['import_notify_fail']    = 'Averta mesaÄo ne povis esti sendata al la importita uzanto %s, kun retdreso %s.';
-$lang['import_downloadfailures'] = 'ElÅut-eraroj por korektado (CSV)';
diff --git a/wiki/lib/plugins/usermanager/lang/eo/list.txt b/wiki/lib/plugins/usermanager/lang/eo/list.txt
deleted file mode 100644
index 5be7222..0000000
--- a/wiki/lib/plugins/usermanager/lang/eo/list.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Listo de uzantoj =====
diff --git a/wiki/lib/plugins/usermanager/lang/es/add.txt b/wiki/lib/plugins/usermanager/lang/es/add.txt
deleted file mode 100644
index 90c56e3..0000000
--- a/wiki/lib/plugins/usermanager/lang/es/add.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Agregar un usuario =====
diff --git a/wiki/lib/plugins/usermanager/lang/es/delete.txt b/wiki/lib/plugins/usermanager/lang/es/delete.txt
deleted file mode 100644
index 4c552a9..0000000
--- a/wiki/lib/plugins/usermanager/lang/es/delete.txt
+++ /dev/null
@@ -1 +0,0 @@
-=====  Eliminar un usuario  =====
diff --git a/wiki/lib/plugins/usermanager/lang/es/edit.txt b/wiki/lib/plugins/usermanager/lang/es/edit.txt
deleted file mode 100644
index ccdd26f..0000000
--- a/wiki/lib/plugins/usermanager/lang/es/edit.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Editar datos del usuario =====
diff --git a/wiki/lib/plugins/usermanager/lang/es/import.txt b/wiki/lib/plugins/usermanager/lang/es/import.txt
deleted file mode 100644
index 2482096..0000000
--- a/wiki/lib/plugins/usermanager/lang/es/import.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-===== Importación y carga de usuarios  =====
-
-Se requiere un archivo CSV de usuarios con al menos cuatro columnas.
-Las columnas deben contener, en este orden: Identificador de usuario, nombre completo, dirección de correo electrónico y grupos.
-Los campos CSV deben estar separados por comas (,) y las cadenas delimitadas por comillas dobles (%%""%%). Barra inversa (\\) se puede utilizar para escapar caracteres.
-Para un ejemplo de un archivo adecuado, probar la función "Exportar usuarios" de arriba.
-Valores de identificador de usuario duplicados serán ignorados.
-
-Una contraseña será generada y enviada por correo electrónico a cada usuario importado correctamente.
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/es/intro.txt b/wiki/lib/plugins/usermanager/lang/es/intro.txt
deleted file mode 100644
index e558d3a..0000000
--- a/wiki/lib/plugins/usermanager/lang/es/intro.txt
+++ /dev/null
@@ -1 +0,0 @@
-====== Administración de usuarios  ======
diff --git a/wiki/lib/plugins/usermanager/lang/es/lang.php b/wiki/lib/plugins/usermanager/lang/es/lang.php
deleted file mode 100644
index 3722dff..0000000
--- a/wiki/lib/plugins/usermanager/lang/es/lang.php
+++ /dev/null
@@ -1,100 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Miguel Pagano <miguel.pagano>
- * @author Oscar M. Lage <r0sk10@gmail.com>
- * @author Gabriel Castillo <gch@pumas.ii.unam.mx>
- * @author oliver <oliver@samera.com.py>
- * @author Enrico Nicoletto <liverig@gmail.com>
- * @author Manuel Meco <manuel.meco@gmail.com>
- * @author VictorCastelan <victorcastelan@gmail.com>
- * @author Jordan Mero <hack.jord@gmail.com>
- * @author Felipe Martinez <metalmartinez@gmail.com>
- * @author Javier Aranda <internet@javierav.com>
- * @author Zerial <fernando@zerial.org>
- * @author Marvin Ortega <maty1206@maryanlinux.com>
- * @author Daniel Castro Alvarado <dancas2@gmail.com>
- * @author Fernando J. Gómez <fjgomez@gmail.com>
- * @author Mauro Javier Giamberardino <mgiamberardino@gmail.com>
- * @author emezeta <emezeta@infoprimo.com>
- * @author Oscar Ciudad <oscar@jacho.net>
- * @author Ruben Figols <ruben.figols@gmail.com>
- * @author Gerardo Zamudio <gerardo@gerardozamudio.net>
- * @author Mercè López <mercelz@gmail.com>
- * @author Antonio Bueno <atnbueno@gmail.com>
- * @author Antonio Castilla <antoniocastilla@trazoide.com>
- * @author Jonathan Hernández <me@jhalicea.com>
- * @author Domingo Redal <docxml@gmail.com>
- * @author solohazlo <solohhazlo@gmail.com>
- * @author David Roy <davidroyapp@gmail.com>
- * @author Enny Rodriguez <aquilez.4@gmail.com>
- */
-$lang['menu']                  = 'Administración de usuarios';
-$lang['noauth']                = '(la autenticación de usuarios no está disponible)';
-$lang['nosupport']             = '(la administración de usuarios no está habilitada)';
-$lang['badauth']               = 'Mecanismo de autenticación inválido';
-$lang['user_id']               = 'Usuario';
-$lang['user_pass']             = 'Contraseña';
-$lang['user_name']             = 'Nombre';
-$lang['user_mail']             = 'Correo electrónico';
-$lang['user_groups']           = 'Grupos';
-$lang['field']                 = 'Campo';
-$lang['value']                 = 'Valor';
-$lang['add']                   = 'Agregar';
-$lang['delete']                = 'Eliminar';
-$lang['delete_selected']       = 'Eliminar seleccionados';
-$lang['edit']                  = 'Editar';
-$lang['edit_prompt']           = 'Editar datos de este usuario';
-$lang['modify']                = 'Guardar los cambios';
-$lang['search']                = 'Buscar';
-$lang['search_prompt']         = 'Realizar la búsqueda';
-$lang['clear']                 = 'Limpiar los filtros de la búsqueda';
-$lang['filter']                = 'Filtrar';
-$lang['export_all']            = 'Exportar Todos los Usuarios (CSV)';
-$lang['export_filtered']       = 'Exportar Lista de Usuarios Filtrada (CSV)';
-$lang['import']                = 'Importar Nuevos Usuarios';
-$lang['line']                  = 'Línea nº';
-$lang['error']                 = 'Mensaje de error';
-$lang['summary']               = 'Mostrando los usuarios %1$d-%2$d de %3$d encontrados. Cantidad total de usuarios %4$d.';
-$lang['nonefound']             = 'No se encontraron usuarios que coincidan con los párametros de la búsqueda. Cantidad total de usuarios %d.';
-$lang['delete_ok']             = '%d usuarios eliminados';
-$lang['delete_fail']           = '%d no se pudieron eliminar.';
-$lang['update_ok']             = 'Los datos del usuario se actualizaron exitosamente ';
-$lang['update_fail']           = 'Los datos del usuario no se actualizaron';
-$lang['update_exists']         = 'El cambio de nombre de usuario falló, el nombre especificado (%s) ya está en uso (los otros cambios se aplicaron).';
-$lang['start']                 = 'primera';
-$lang['prev']                  = 'anterior';
-$lang['next']                  = 'siguiente';
-$lang['last']                  = 'última';
-$lang['edit_usermissing']      = 'El usuario seleccionado no ha sido encontrado; el usuario especificado puede haber sido eliminado o cambiado en algún otro lugar.';
-$lang['user_notify']           = 'Notificar al usuario';
-$lang['note_notify']           = 'El correo electrónico de notificación sólo será enviado si se actualizo la contraseña del usuario.';
-$lang['note_group']            = 'Si no se especifica ningún grupo, los nuevos usuarios serán agregados al grupo por defecto (%s).';
-$lang['note_pass']             = 'Se generará una clave automáticamente si el campo izquierdo es vacío y se esta activo la notificación de usuario. ';
-$lang['add_ok']                = 'El usuario fue creado exitosamente';
-$lang['add_fail']              = 'Falló la creación del usuario';
-$lang['notify_ok']             = 'Se envió la notificación por correo electrónico';
-$lang['notify_fail']           = 'No se pudo enviar la notificación por correo electrónico';
-$lang['import_userlistcsv']    = 'Lista de usuarios (CSV): ';
-$lang['import_header']         = 'Importaciones Más Recientes - Fallos';
-$lang['import_success_count']  = 'Importación de usuarios: %d usuarios encontrados, %d importados correctamente.';
-$lang['import_failure_count']  = 'Importación de usuarios: %d fallaron. Los fallos se enumeran a continuación.';
-$lang['import_error_fields']   = 'Campos insuficientes, encontrados %d, se requieren 4.';
-$lang['import_error_baduserid'] = 'Identificador de usuario no encontrado';
-$lang['import_error_badname']  = 'Nombre erróneo';
-$lang['import_error_badmail']  = 'Dirección de correo electrónico incorrecta';
-$lang['import_error_upload']   = 'Error al importar. El archivo csv no se pudo cargar o está vacío.';
-$lang['import_error_readfail'] = 'Error al importar. No se puede leer el archivo subido.';
-$lang['import_error_create']   = 'No se puede crear el usuario';
-$lang['import_notify_fail']    = 'Mensaje de notificación no se ha podido enviar por el usuario importado,%s con el email %s.';
-$lang['import_downloadfailures'] = 'Descarga errores en archivo CSV para la corrección';
-$lang['addUser_error_missing_pass'] = 'Por favor, establezca una contraseña o active las notificaciónes de usuario para permitir la generación de contraseñas.';
-$lang['addUser_error_pass_not_identical'] = 'Las contraseñas no coinciden';
-$lang['addUser_error_modPass_disabled'] = 'Está desactivado por ahora modificar contraseñas.';
-$lang['addUser_error_name_missing'] = 'Por favor teclea el nombre del nuevo usuario.';
-$lang['addUser_error_modName_disabled'] = 'La modificación de nombres está desactivada.';
-$lang['addUser_error_mail_missing'] = 'Por favor indica el email del nuevo usuario.';
-$lang['addUser_error_modMail_disabled'] = 'La modificación de email está desactivada.';
-$lang['addUser_error_create_event_failed'] = 'Un plugin impidió que se añadiera el nuevo usuario. Revisa los otros mensajes para obtener más detalles.';
diff --git a/wiki/lib/plugins/usermanager/lang/es/list.txt b/wiki/lib/plugins/usermanager/lang/es/list.txt
deleted file mode 100644
index d0d32b9..0000000
--- a/wiki/lib/plugins/usermanager/lang/es/list.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Lista de usuarios =====
diff --git a/wiki/lib/plugins/usermanager/lang/et/lang.php b/wiki/lib/plugins/usermanager/lang/et/lang.php
deleted file mode 100644
index deb1e0b..0000000
--- a/wiki/lib/plugins/usermanager/lang/et/lang.php
+++ /dev/null
@@ -1,33 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author kristian.kankainen@kuu.la
- * @author Rivo Zängov <eraser@eraser.ee>
- * @author Janar Leas <janar.leas@eesti.ee>
- */
-$lang['menu']                  = 'Kasutajate haldamine';
-$lang['user_id']               = 'Kasutaja';
-$lang['user_pass']             = 'Parool';
-$lang['user_name']             = 'Tegelik nimi';
-$lang['user_mail']             = 'E-post';
-$lang['user_groups']           = 'Rühmad';
-$lang['field']                 = 'Väli';
-$lang['value']                 = 'Väärtus';
-$lang['add']                   = 'Lisa';
-$lang['delete']                = 'Kustuta';
-$lang['delete_selected']       = 'Kustuta valitud';
-$lang['edit']                  = 'Muuda';
-$lang['edit_prompt']           = 'Muuda seda kasutajat';
-$lang['modify']                = 'Salvesta muudatused';
-$lang['search']                = 'Otsi';
-$lang['search_prompt']         = 'Soorita otsing';
-$lang['filter']                = 'Filtreeri';
-$lang['update_fail']           = 'Kasutaja uuendamine ebaõnnestus';
-$lang['start']                 = 'esimesed';
-$lang['prev']                  = 'eelmine';
-$lang['next']                  = 'järgmine';
-$lang['last']                  = 'viimased';
-$lang['user_notify']           = 'Teavita kasutajat';
-$lang['note_group']            = 'Kui rühma pole määratletud, siis lisatakse uued kasutajad vaikimisi rühma (%s).';
diff --git a/wiki/lib/plugins/usermanager/lang/eu/add.txt b/wiki/lib/plugins/usermanager/lang/eu/add.txt
deleted file mode 100644
index 4208e51..0000000
--- a/wiki/lib/plugins/usermanager/lang/eu/add.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Gehitu erabiltzailea =====
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/eu/delete.txt b/wiki/lib/plugins/usermanager/lang/eu/delete.txt
deleted file mode 100644
index 245c881..0000000
--- a/wiki/lib/plugins/usermanager/lang/eu/delete.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Ezabatu erabiltzailea =====
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/eu/edit.txt b/wiki/lib/plugins/usermanager/lang/eu/edit.txt
deleted file mode 100644
index 82b92af..0000000
--- a/wiki/lib/plugins/usermanager/lang/eu/edit.txt
+++ /dev/null
@@ -1 +0,0 @@
-====== Editatu erabiltzailea ======
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/eu/intro.txt b/wiki/lib/plugins/usermanager/lang/eu/intro.txt
deleted file mode 100644
index 91770fd..0000000
--- a/wiki/lib/plugins/usermanager/lang/eu/intro.txt
+++ /dev/null
@@ -1 +0,0 @@
-====== Erabiltzaile-kudeatzailea ======
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/eu/lang.php b/wiki/lib/plugins/usermanager/lang/eu/lang.php
deleted file mode 100644
index e2f2cb8..0000000
--- a/wiki/lib/plugins/usermanager/lang/eu/lang.php
+++ /dev/null
@@ -1,50 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Inko Illarramendi <inko.i.a@gmail.com>
- * @author Zigor Astarbe <astarbe@gmail.com>
- * @author Osoitz <oelkoro@gmail.com>
- */
-$lang['menu']                  = 'Erabiltzaile-kudeatzailea';
-$lang['noauth']                = '(erabiltzaile kautotzea ez dago erabilgarri)';
-$lang['nosupport']             = '(erabiltzaile kudeaketa ez dago erabilgarri)';
-$lang['badauth']               = 'kautotze mekanismo baliogabea';
-$lang['user_id']               = 'Erabiltzailea';
-$lang['user_pass']             = 'Pasahitza';
-$lang['user_name']             = 'Benetako Izena';
-$lang['user_mail']             = 'Posta-e';
-$lang['user_groups']           = 'Taldeak';
-$lang['field']                 = 'Eremu';
-$lang['value']                 = 'Balioa';
-$lang['add']                   = 'Gehitu';
-$lang['delete']                = 'Ezabatu';
-$lang['delete_selected']       = 'Ezabatu Hautatutakoak';
-$lang['edit']                  = 'Editatu';
-$lang['edit_prompt']           = 'Editatu erabiltzaile hau';
-$lang['modify']                = 'Gorde Aldaketak';
-$lang['search']                = 'Bilatu';
-$lang['search_prompt']         = 'Egin bilaketa';
-$lang['clear']                 = 'Berrasieratu Bilaketa Iragazkia';
-$lang['filter']                = 'Iragazi';
-$lang['summary']               = 'Erakusten diren erabiltzaileak %1$d-%2$d bilatutako %3$d erabiltzailetatik. %4$d erabiltzaile guztira.';
-$lang['nonefound']             = 'Ez da erabiltzailerik aurkitu. %d erabiltzaile guztira.';
-$lang['delete_ok']             = '%d erabiltzaile ezabatuak';
-$lang['delete_fail']           = '%d huts ezabatzean.';
-$lang['update_ok']             = 'Erabiltzailea arrakastaz eguneratuak';
-$lang['update_fail']           = 'Erabiltzaile eguneratzeak huts egin du ';
-$lang['update_exists']         = 'Erabiltzaile izen aldaketak huts egin du, zehaztutako erabiltzaile izena (%s) lehendik existitzen zen (beste edozein aldaketa ezarri egingo da).';
-$lang['start']                 = 'hasi';
-$lang['prev']                  = 'aurrekoa';
-$lang['next']                  = 'hurrengoa';
-$lang['last']                  = 'azkena';
-$lang['edit_usermissing']      = 'Aukeratutako erabiltzailea ez da aurkitu, zehaztutako erabiltzaile izena beste nonbait ezabatua edo aldatua izana gerta zitekeen.';
-$lang['user_notify']           = 'Erabiltzailea jakinarazi';
-$lang['note_notify']           = 'Jakinarazpen postak erabiltzaileari pasahitz berria ematen bazaio bakarrik bidaltzen dira.';
-$lang['note_group']            = 'Erabiltzaile berriak (%s) talde lehenetsira gehituko dira ez bada talderik zehazten.';
-$lang['note_pass']             = 'Pasahitza automatikoki sortuko da eremua hutsik uzten bada eta erabiltzailearen jakinarazpena gaitua badago.';
-$lang['add_ok']                = 'Erabiltzailea arrakastaz gehitua';
-$lang['add_fail']              = 'Erabiltzaile gehitzeak huts egin du';
-$lang['notify_ok']             = 'Jakinarazpen posta-e bidalia';
-$lang['notify_fail']           = 'Jakinarazpen posta-e ezin izan da bidali';
diff --git a/wiki/lib/plugins/usermanager/lang/eu/list.txt b/wiki/lib/plugins/usermanager/lang/eu/list.txt
deleted file mode 100644
index fb80b14..0000000
--- a/wiki/lib/plugins/usermanager/lang/eu/list.txt
+++ /dev/null
@@ -1 +0,0 @@
-====== Erabiltzaile zerrenda ======
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/fa/add.txt b/wiki/lib/plugins/usermanager/lang/fa/add.txt
deleted file mode 100644
index 32d604e..0000000
--- a/wiki/lib/plugins/usermanager/lang/fa/add.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Ø§ÙØ²ÙˆØ¯Ù† کاربر =====
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/fa/delete.txt b/wiki/lib/plugins/usermanager/lang/fa/delete.txt
deleted file mode 100644
index f8a59ff..0000000
--- a/wiki/lib/plugins/usermanager/lang/fa/delete.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== حذ٠کاربر =====
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/fa/edit.txt b/wiki/lib/plugins/usermanager/lang/fa/edit.txt
deleted file mode 100644
index 33fe5b5..0000000
--- a/wiki/lib/plugins/usermanager/lang/fa/edit.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== ویرایش کاربر =====
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/fa/import.txt b/wiki/lib/plugins/usermanager/lang/fa/import.txt
deleted file mode 100644
index 562a28a..0000000
--- a/wiki/lib/plugins/usermanager/lang/fa/import.txt
+++ /dev/null
@@ -1,6 +0,0 @@
- =====  اضاÙÙ‡ کردن کاربر =====
-
-برای اینکار یک ÙØ§ÛŒÙ„ CSV با حداقل چهار ستون لازم است. ستون‌ها به ترتیب باید شامل id کاربر، نام کامل کاربر، آدرس ایمیل Ùˆ گروه‌های کاربری او باشند.
-خانه‌های جدول CSV باید به وسیلهٔ کاما (,) Ùˆ رشته‌ها با علامت نقل قول (%%""%%) از هم جدا شوند. علامت واکج‌خط (\) می‌تواند برای ØºÛŒØ±ÙØ¹Ø§Ù„ کردن معنای کاراکترها Ø§Ø³ØªÙØ§Ø¯Ù‡ شود. برای دیدن یک نمونه از ÙØ§ÛŒÙ„ مناسب، از گزینهٔ "خروجی کاربران" در بالا Ø§Ø³ØªÙØ§Ø¯Ù‡ کنید. id های تکراری در جدول در نظر Ú¯Ø±ÙØªÙ‡ نمی‌شوند.
-
-به ازای هر کاربری Ú©Ù‡ با موÙقیت اضاÙÙ‡ شود یک رمز تولید Ùˆ ایمیل می‌شود.
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/fa/intro.txt b/wiki/lib/plugins/usermanager/lang/fa/intro.txt
deleted file mode 100644
index ffb8501..0000000
--- a/wiki/lib/plugins/usermanager/lang/fa/intro.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== مدیریت کاربران =====
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/fa/lang.php b/wiki/lib/plugins/usermanager/lang/fa/lang.php
deleted file mode 100644
index 02734fe..0000000
--- a/wiki/lib/plugins/usermanager/lang/fa/lang.php
+++ /dev/null
@@ -1,83 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author behrad eslamifar <behrad_es@yahoo.com)
- * @author Mohsen Firoozmandan <info@mambolearn.com>
- * @author omidmr@gmail.com
- * @author Omid Mottaghi <omidmr@gmail.com>
- * @author Mohammad Reza Shoaei <shoaei@gmail.com>
- * @author Milad DZand <M.DastanZand@gmail.com>
- * @author AmirH Hassaneini <mytechmix@gmail.com>
- * @author Hamid <zarrabi@sharif.edu>
- * @author Mohamad Mehdi Habibi <habibi.esf@gmail.com>
- * @author Masoud Sadrnezhaad <masoud@sadrnezhaad.ir>
- */
-$lang['menu']                  = 'مدیریت کاربر';
-$lang['noauth']                = '(معتبرسازی کاربر ممکن نیست)';
-$lang['nosupport']             = '(مدیریت کاربر پشتیبانی نمی‌شود)';
-$lang['badauth']               = 'روش معتبرسازی اشتباه است';
-$lang['user_id']               = 'کاربر';
-$lang['user_pass']             = 'گذرواژه';
-$lang['user_name']             = 'نام حقیقی';
-$lang['user_mail']             = 'ایمیل';
-$lang['user_groups']           = 'گروه‌ها';
-$lang['field']                 = 'Ùیلد';
-$lang['value']                 = 'ارزش';
-$lang['add']                   = 'اضاÙÙ‡ کردن';
-$lang['delete']                = 'حذÙ';
-$lang['delete_selected']       = 'حذ٠انتخاب شده‌ها';
-$lang['edit']                  = 'ویرایش';
-$lang['edit_prompt']           = 'ویرایش این کاربر';
-$lang['modify']                = 'ذخیره تغییرات';
-$lang['search']                = 'جستجو';
-$lang['search_prompt']         = 'انجام جستجو';
-$lang['clear']                 = 'بازنویسی Ùیلترهای جستجو';
-$lang['filter']                = 'Ùیلتر';
-$lang['export_all']            = 'خروجی Ú¯Ø±ÙØªÙ† از تمام کاربران (CSV):';
-$lang['export_filtered']       = 'خروجی لیست Ùیلتر شده کاربران (CSV):';
-$lang['import']                = 'ورود کاربران جدید';
-$lang['line']                  = 'شماره خط.';
-$lang['error']                 = 'متن خطا';
-$lang['summary']               = 'نمایش کاربر %1$d-%2$d از %3$d. در کل %4$d کاربر.';
-$lang['nonefound']             = 'هیچ کاربری ÛŒØ§ÙØª نشد. در Ú©Ù„ %d کاربر.';
-$lang['delete_ok']             = '%d کاربر حذ٠شد';
-$lang['delete_fail']           = 'حذ٠%d کاربر با مشکل مواجه شد.';
-$lang['update_ok']             = 'کاربر با موÙقیت به‌روز شد.';
-$lang['update_fail']           = 'به‌روزرسانی کاربر با مشکل مواجه شد';
-$lang['update_exists']         = 'تغییر نام کاربری ممکن نیست، نام کاربری مورد نظر (%s) از قبل وجود داشته است (مابقی تغییرات اعمال خواهد شد).';
-$lang['start']                 = 'شروع';
-$lang['prev']                  = 'قبلی';
-$lang['next']                  = 'بعدی';
-$lang['last']                  = 'آخرین';
-$lang['edit_usermissing']      = 'کاربر انتخاب شده ÛŒØ§ÙØª نشد، نام کاربری موردنظر در جایی دیگر حذ٠شده یا تغییر کرده است.';
-$lang['user_notify']           = 'آگاه کردن کاربر';
-$lang['note_notify']           = 'ایمیلی برای آگاهی، Ùقط در زمان تغییر گذرواژه‌ ارسال می‌شود.';
-$lang['note_group']            = 'اگر گروهی انتخاب نشود، کاربران جدید به گروه Ù¾ÛŒØ´â€ŒÙØ±Ø¶ (%s) Ø§ÙØ²ÙˆØ¯Ù‡ خواهند شد.';
-$lang['note_pass']             = 'اگر Ùیلد گذرواژه خالی گذاشته شود، گذرواژه به طور خودکار تولید Ùˆ ایمیلی برای کاربر ارسال خواهد شد.';
-$lang['add_ok']                = 'کاربر با موÙقیت Ø§ÙØ²ÙˆØ¯Ù‡ شد';
-$lang['add_fail']              = 'Ø§ÙØ²ÙˆØ¯Ù† کاربر با مشکل مواجه شد';
-$lang['notify_ok']             = 'ایمیل آگاهی‌دهنده ارسال شد';
-$lang['notify_fail']           = 'ارسال ایمیل آگاهی‌دهنده با مشکل مواجه شد';
-$lang['import_userlistcsv']    = 'ÙØ§ÛŒÙ„ لیست کاربران (CSV):';
-$lang['import_header']         = 'آخرین ایمپورت - خطا';
-$lang['import_success_count']  = 'ایمپورت کاربران: %d کاربر پیدا شد، %d با موÙقیت وارد شد.';
-$lang['import_failure_count']  = 'ایمپورت کاربران: %d ناموÙÙ‚. موارد ناموÙÙ‚ در پایین Ùهرست شده.';
-$lang['import_error_fields']   = 'Ùیلدهای ناکاÙÛŒ. %d تا پیدا شد ولی Û´ تا لازم است.';
-$lang['import_error_baduserid'] = 'id کاربر وارد نشده';
-$lang['import_error_badname']  = 'نام نامناسب';
-$lang['import_error_badmail']  = 'ایمیل نامناسب';
-$lang['import_error_upload']   = 'ایمپورت ناموÙÙ‚. امکان ایمپورت ÙØ§ÛŒÙ„ csv وجود ندارد یا خالی است.';
-$lang['import_error_readfail'] = 'ایمپورت ناموÙÙ‚. امکان خواندن ÙØ§ÛŒÙ„ آپلود شده وجود ندارد.';
-$lang['import_error_create']   = 'امکان ساخت کاربر وجود ندارد.';
-$lang['import_notify_fail']    = 'امکان ارسال پیغام آگاهی‌رسان برای کاربر ایمپورت شده وجود ندارد، %s با ایمیل %s.';
-$lang['import_downloadfailures'] = 'دانلود خطاها به صورت CSV برای اصلاح';
-$lang['addUser_error_missing_pass'] = 'Ù„Ø·ÙØ§ یک پسورد وارد کنید یا آگاهی‌رسان کاربر را ÙØ¹Ø§Ù„ کنید تا امکان تولید پسورد ایجاد شود';
-$lang['addUser_error_pass_not_identical'] = 'پسورد وارد شده معتبر نیست.';
-$lang['addUser_error_modPass_disabled'] = 'پسوردهای ØªØºÛŒÛŒØ±ÛŒØ§ÙØªÙ†ÛŒ ØºÛŒØ±ÙØ¹Ø§Ù„ است.';
-$lang['addUser_error_name_missing'] = 'Ù„Ø·ÙØ§ یک نام برای کاربر جدید وارد کنید.';
-$lang['addUser_error_modName_disabled'] = 'نام‌های ØªØºÛŒÛŒØ±ÛŒØ§ÙØªÙ†ÛŒ غیر ÙØ¹Ø§Ù„ است.';
-$lang['addUser_error_mail_missing'] = 'Ù„Ø·ÙØ§ یک نشانی ایمیل برای کاربر جدید وارد نمایید.';
-$lang['addUser_error_modMail_disabled'] = 'ایمیل‌های ØªØºÛŒÛŒØ±ÛŒØ§ÙØªÙ†ÛŒ غیر ÙØ¹Ø§Ù„ است.';
-$lang['addUser_error_create_event_failed'] = 'Ø§ÙØ²ÙˆÙ†Ù‡ از اضاÙÙ‡ شدن کاربر جدید جلوگیری کرد. برای اطلاعات بیشتر پیغام‌های احتمالی دیگر را مطالعه کنید.';
diff --git a/wiki/lib/plugins/usermanager/lang/fa/list.txt b/wiki/lib/plugins/usermanager/lang/fa/list.txt
deleted file mode 100644
index b539bf1..0000000
--- a/wiki/lib/plugins/usermanager/lang/fa/list.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== لیست کاربران =====
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/fi/add.txt b/wiki/lib/plugins/usermanager/lang/fi/add.txt
deleted file mode 100644
index 5c4ee0a..0000000
--- a/wiki/lib/plugins/usermanager/lang/fi/add.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Lisää käyttäjä =====
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/fi/delete.txt b/wiki/lib/plugins/usermanager/lang/fi/delete.txt
deleted file mode 100644
index 2203a20..0000000
--- a/wiki/lib/plugins/usermanager/lang/fi/delete.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Poista käyttäjä =====
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/fi/edit.txt b/wiki/lib/plugins/usermanager/lang/fi/edit.txt
deleted file mode 100644
index 53e0b41..0000000
--- a/wiki/lib/plugins/usermanager/lang/fi/edit.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Muokkaa käyttäjää =====
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/fi/intro.txt b/wiki/lib/plugins/usermanager/lang/fi/intro.txt
deleted file mode 100644
index 2ef0bb5..0000000
--- a/wiki/lib/plugins/usermanager/lang/fi/intro.txt
+++ /dev/null
@@ -1 +0,0 @@
-====== Käyttäjähallinta ======
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/fi/lang.php b/wiki/lib/plugins/usermanager/lang/fi/lang.php
deleted file mode 100644
index dba67fb..0000000
--- a/wiki/lib/plugins/usermanager/lang/fi/lang.php
+++ /dev/null
@@ -1,61 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author otto@valjakko.net
- * @author Otto Vainio <otto@valjakko.net>
- * @author Teemu Mattila <ghcsystems@gmail.com>
- * @author Sami Olmari <sami@olmari.fi>
- * @author Jussi Takala <jussi.takala@live.fi>
- */
-$lang['menu']                  = 'Käyttäjähallinta';
-$lang['noauth']                = '(autentikointi ei ole käytössä)';
-$lang['nosupport']             = '(käyttäjähallinta ei ole tuettu)';
-$lang['badauth']               = 'Viallinen autentikointimenetelmä';
-$lang['user_id']               = 'Käyttäjä';
-$lang['user_pass']             = 'Salasana';
-$lang['user_name']             = 'Oikea nimi';
-$lang['user_mail']             = 'Sähköposti';
-$lang['user_groups']           = 'Ryhmät';
-$lang['field']                 = 'Kenttä';
-$lang['value']                 = 'Arvo';
-$lang['add']                   = 'Lisää';
-$lang['delete']                = 'Poista';
-$lang['delete_selected']       = 'Poista valittu';
-$lang['edit']                  = 'Muokkaa';
-$lang['edit_prompt']           = 'Muokkaa ryhmää';
-$lang['modify']                = 'Tallenna muutokset';
-$lang['search']                = 'Hae';
-$lang['search_prompt']         = 'Tee haku';
-$lang['clear']                 = 'Tyhjennä hakusuodatin';
-$lang['filter']                = 'Suodatin';
-$lang['import']                = 'Tuo uusia käyttäjiä';
-$lang['line']                  = 'Rivi nro.';
-$lang['error']                 = 'Vikailmoitus';
-$lang['summary']               = 'Näytetään käyttäjät %1$d-%2$d / %3$d löytynyttä. %4$d käyttäjää yhteensä.';
-$lang['nonefound']             = 'Ei löytynyt käyttäjiä. %d käyttäjää yhteensä.';
-$lang['delete_ok']             = '%d käyttäjää poistettu';
-$lang['delete_fail']           = '%d poistoa epäonnistui';
-$lang['update_ok']             = 'Käyttäjän päivitys onnistui';
-$lang['update_fail']           = 'Käyttäjän päivitys epäonnistui';
-$lang['update_exists']         = 'Käyttäjän nimen vaihto epäonnistui. Nimi (%s) on jo olemassa (muut muutokset onnistuivat)';
-$lang['start']                 = 'alku';
-$lang['prev']                  = 'edellinen';
-$lang['next']                  = 'seuraava';
-$lang['last']                  = 'viimeinen';
-$lang['edit_usermissing']      = 'Valittua käyttäjää ei löytynyt. Käyttäjä on voitu päivittää tai poistaa muualta.';
-$lang['user_notify']           = 'Tiedota käyttäjälle';
-$lang['note_notify']           = 'Tiedotus lähetetään vain, jos käyttäjälle on määritelty uusi salasana.';
-$lang['note_group']            = 'Uudelle käyttäjälle määritellään oletusryhmä (%s), jos ryhmää ei erikseen määritellä.';
-$lang['note_pass']             = 'Salasana luodaan automaattisesti, mikäli kenttä jätetään tyhjäksi ja jos käyttäjän tiedotus on päällä.';
-$lang['add_ok']                = 'Käyttäjä lisätty onnistuneesti';
-$lang['add_fail']              = 'Käyttäjän lisäys epäonnistui';
-$lang['notify_ok']             = 'Ilmoitus sähköpostilla lähetetty';
-$lang['notify_fail']           = 'Ilmoitusta sähköpostilla ei voitu lähettää';
-$lang['import_error_baduserid'] = 'Käyttäjätunnus puuttuu';
-$lang['import_error_badname']  = 'Epäkelpo nimi';
-$lang['import_error_badmail']  = 'Epäkelpo sähköpostiosoite';
-$lang['import_error_upload']   = 'Tuonti epäonnistui. CSV-tiedostoa ei voitu ladata tai se on tyhjä.';
-$lang['import_error_readfail'] = 'Tuonti epäonnistui. Ladattua tiedostoa ei voida lukea.';
-$lang['import_error_create']   = 'Käyttäjää ei voida luoda.';
diff --git a/wiki/lib/plugins/usermanager/lang/fi/list.txt b/wiki/lib/plugins/usermanager/lang/fi/list.txt
deleted file mode 100644
index 5ecf2ff..0000000
--- a/wiki/lib/plugins/usermanager/lang/fi/list.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Käyttäjälista =====
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/fr/add.txt b/wiki/lib/plugins/usermanager/lang/fr/add.txt
deleted file mode 100644
index e60b8b8..0000000
--- a/wiki/lib/plugins/usermanager/lang/fr/add.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Ajouter un utilisateur =====
diff --git a/wiki/lib/plugins/usermanager/lang/fr/delete.txt b/wiki/lib/plugins/usermanager/lang/fr/delete.txt
deleted file mode 100644
index 778f441..0000000
--- a/wiki/lib/plugins/usermanager/lang/fr/delete.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Supprimer un utilisateur =====
diff --git a/wiki/lib/plugins/usermanager/lang/fr/edit.txt b/wiki/lib/plugins/usermanager/lang/fr/edit.txt
deleted file mode 100644
index e667989..0000000
--- a/wiki/lib/plugins/usermanager/lang/fr/edit.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Modifier l'utilisateur =====
diff --git a/wiki/lib/plugins/usermanager/lang/fr/import.txt b/wiki/lib/plugins/usermanager/lang/fr/import.txt
deleted file mode 100644
index a1eb8f8..0000000
--- a/wiki/lib/plugins/usermanager/lang/fr/import.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-===== Importation d'utilisateurs par lot =====
-
-Requière un fichier [[wpfr>CSV]] d'utilisateurs avec un minimum de quatre colonnes.
-Les colonnes doivent comporter, dans l'ordre : identifiant, nom complet, adresse de courriel et groupes.
-
-Les champs doivent être séparés par une virgule (,), les chaînes sont délimitées par des guillemets (%%""%%). On peut utiliser la balance inverse (\) comme caractère d'échappement.
-Pour obtenir un exemple de fichier acceptable, essayer la fonction "Exporter les utilisateurs" ci dessus.
-
-Les identifiants dupliqués seront ignorés.
-
-L'importation générera un mot de passe et l'enverra à chaque utilisateur correctement importé.
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/fr/intro.txt b/wiki/lib/plugins/usermanager/lang/fr/intro.txt
deleted file mode 100644
index 84987b0..0000000
--- a/wiki/lib/plugins/usermanager/lang/fr/intro.txt
+++ /dev/null
@@ -1 +0,0 @@
-====== Gestion des utilisateurs ======
diff --git a/wiki/lib/plugins/usermanager/lang/fr/lang.php b/wiki/lib/plugins/usermanager/lang/fr/lang.php
deleted file mode 100644
index 51ddce1..0000000
--- a/wiki/lib/plugins/usermanager/lang/fr/lang.php
+++ /dev/null
@@ -1,93 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Guy Brand <gb@unistra.fr>
- * @author Delassaux Julien <julien@delassaux.fr>
- * @author Maurice A. LeBlanc <leblancma@cooptel.qc.ca>
- * @author stephane.gully <stephane.gully@gmail.com>
- * @author Guillaume Turri <guillaume.turri@gmail.com>
- * @author Erik Pedersen <erik.pedersen@shaw.ca>
- * @author olivier duperray <duperray.olivier@laposte.net>
- * @author Vincent Feltz <psycho@feltzv.fr>
- * @author Philippe Bajoit <philippe.bajoit@gmail.com>
- * @author Florian Gaub <floriang@floriang.net>
- * @author Johan Guilbaud <guilbaud.johan@gmail.com>
- * @author Yannick Aure <yannick.aure@gmail.com>
- * @author Olivier DUVAL <zorky00@gmail.com>
- * @author Anael Mobilia <contrib@anael.eu>
- * @author Bruno Veilleux <bruno.vey@gmail.com>
- * @author Antoine Turmel <geekshadow@gmail.com>
- * @author Jérôme Brandt <jeromebrandt@gmail.com>
- * @author Schplurtz le Déboulonné <Schplurtz@laposte.net>
- * @author Olivier Humbert <trebmuh@tuxfamily.org>
- * @author Eric <ericstevenart@netc.fr>
- */
-$lang['menu']                  = 'Gestion des utilisateurs';
-$lang['noauth']                = '(authentification de l\'utilisateur non disponible)';
-$lang['nosupport']             = '(gestion de l\'utilisateur non pris en charge)';
-$lang['badauth']               = 'mécanisme d\'authentification invalide';
-$lang['user_id']               = 'Identifiant ';
-$lang['user_pass']             = 'Mot de passe ';
-$lang['user_name']             = 'Nom ';
-$lang['user_mail']             = 'Courriel ';
-$lang['user_groups']           = 'Groupes ';
-$lang['field']                 = 'Champ';
-$lang['value']                 = 'Valeur';
-$lang['add']                   = 'Ajouter';
-$lang['delete']                = 'Supprimer';
-$lang['delete_selected']       = 'Supprimer la sélection';
-$lang['edit']                  = 'Modifier';
-$lang['edit_prompt']           = 'Modifier cet utilisateur';
-$lang['modify']                = 'Enregistrer les modifications';
-$lang['search']                = 'Rechercher';
-$lang['search_prompt']         = 'Effectuer la recherche';
-$lang['clear']                 = 'Réinitialiser la recherche';
-$lang['filter']                = 'Filtre';
-$lang['export_all']            = 'Exporter tous les utilisateurs (CSV)';
-$lang['export_filtered']       = 'Exporter la liste d\'utilisateurs filtrés (CSV)';
-$lang['import']                = 'Importer de nouveaux utilisateurs';
-$lang['line']                  = 'Ligne n°';
-$lang['error']                 = 'Message d\'erreur';
-$lang['summary']               = 'Affichage des utilisateurs %1$d-%2$d parmi %3$d trouvés. %4$d utilisateurs au total.';
-$lang['nonefound']             = 'Aucun utilisateur trouvé. %d utilisateurs au total.';
-$lang['delete_ok']             = '%d utilisateurs effacés';
-$lang['delete_fail']           = '%d effacements échoués.';
-$lang['update_ok']             = 'Utilisateur mis à jour avec succès';
-$lang['update_fail']           = 'Échec lors de la mise à jour de l\'utilisateur';
-$lang['update_exists']         = 'Échec lors du changement du nom d\'utilisateur : le nom spécifié (%s) existe déjà (toutes les autres modifications seront effectuées).';
-$lang['start']                 = 'Début';
-$lang['prev']                  = 'Précédent';
-$lang['next']                  = 'Suivant';
-$lang['last']                  = 'Fin';
-$lang['edit_usermissing']      = 'Utilisateur sélectionné non trouvé, cet utilisateur a peut-être été supprimé ou modifié ailleurs.';
-$lang['user_notify']           = 'Notifier l\'utilisateur ';
-$lang['note_notify']           = 'Expédition de notification par courriel uniquement lorsque l\'utilisateur fourni un nouveau mot de passe.';
-$lang['note_group']            = 'Les nouveaux utilisateurs seront ajoutés au groupe par défaut (%s) si aucun groupe n\'est spécifié.';
-$lang['note_pass']             = 'Le mot de passe sera généré automatiquement si le champ est laissé vide et si la notification de l\'utilisateur est activée.';
-$lang['add_ok']                = 'Utilisateur ajouté avec succès';
-$lang['add_fail']              = 'Échec de l\'ajout de l\'utilisateur';
-$lang['notify_ok']             = 'Courriel de notification expédié';
-$lang['notify_fail']           = 'Échec de l\'expédition du courriel de notification';
-$lang['import_userlistcsv']    = 'Liste utilisateur (fichier CSV)';
-$lang['import_header']         = 'Erreurs d\'import les plus récentes';
-$lang['import_success_count']  = 'Import d’utilisateurs : %d utilisateurs trouvés, %d utilisateurs importés avec succès.';
-$lang['import_failure_count']  = 'Import d\'utilisateurs : %d ont échoué. Les erreurs sont listées ci-dessous.';
-$lang['import_error_fields']   = 'Nombre de champs insuffisant, %d trouvé, 4 requis.';
-$lang['import_error_baduserid'] = 'Identifiant de l\'utilisateur manquant';
-$lang['import_error_badname']  = 'Mauvais nom';
-$lang['import_error_badmail']  = 'Mauvaise adresse e-mail';
-$lang['import_error_upload']   = 'L\'import a échoué. Le fichier csv n\'a pas pu être téléchargé ou bien il est vide.';
-$lang['import_error_readfail'] = 'L\'import a échoué. Impossible de lire le fichier téléchargé.';
-$lang['import_error_create']   = 'Impossible de créer l\'utilisateur';
-$lang['import_notify_fail']    = 'Impossible d\'expédier une notification à l\'utilisateur importé %s, adresse %s.';
-$lang['import_downloadfailures'] = 'Télécharger les erreurs au format CSV pour correction';
-$lang['addUser_error_missing_pass'] = 'Veuillez saisir un mot de passe ou activer la notification à l\'utilisateur pour permettre la génération d\'un mot de passe.';
-$lang['addUser_error_pass_not_identical'] = 'Les mots de passe saisis diffèrent.';
-$lang['addUser_error_modPass_disabled'] = 'La modification des mots de passe est actuellement désactivée.';
-$lang['addUser_error_name_missing'] = 'Veuillez saisir un nom pour le nouvel utilisateur.';
-$lang['addUser_error_modName_disabled'] = 'La modification des noms est actuellement désactivée.';
-$lang['addUser_error_mail_missing'] = 'Veuillez saisir une adresse de courriel pour le nouvel utilisateur.';
-$lang['addUser_error_modMail_disabled'] = 'La modification des adresses de courriel est actuellement désactivée.';
-$lang['addUser_error_create_event_failed'] = 'Un greffon a empêché l\'ajout du nouvel utilisateur. Examinez les autres messages potentiels pour obtenir de plus amples informations.';
diff --git a/wiki/lib/plugins/usermanager/lang/fr/list.txt b/wiki/lib/plugins/usermanager/lang/fr/list.txt
deleted file mode 100644
index 2d708fe..0000000
--- a/wiki/lib/plugins/usermanager/lang/fr/list.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Liste des utilisateurs =====
diff --git a/wiki/lib/plugins/usermanager/lang/gl/add.txt b/wiki/lib/plugins/usermanager/lang/gl/add.txt
deleted file mode 100644
index 7602c36..0000000
--- a/wiki/lib/plugins/usermanager/lang/gl/add.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Engadir usuario =====
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/gl/delete.txt b/wiki/lib/plugins/usermanager/lang/gl/delete.txt
deleted file mode 100644
index 4262a0c..0000000
--- a/wiki/lib/plugins/usermanager/lang/gl/delete.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Eliminar usuario =====
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/gl/edit.txt b/wiki/lib/plugins/usermanager/lang/gl/edit.txt
deleted file mode 100644
index 11ef62c..0000000
--- a/wiki/lib/plugins/usermanager/lang/gl/edit.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Editar usuario =====
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/gl/intro.txt b/wiki/lib/plugins/usermanager/lang/gl/intro.txt
deleted file mode 100644
index 77675e9..0000000
--- a/wiki/lib/plugins/usermanager/lang/gl/intro.txt
+++ /dev/null
@@ -1 +0,0 @@
-====== Xestor de Usuarios ======
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/gl/lang.php b/wiki/lib/plugins/usermanager/lang/gl/lang.php
deleted file mode 100644
index f3a7ef2..0000000
--- a/wiki/lib/plugins/usermanager/lang/gl/lang.php
+++ /dev/null
@@ -1,49 +0,0 @@
-<?php
-/**
- * Galicianlanguage file
- *
- * @author Medúlio <medulio@ciberirmandade.org>
- * @author Oscar M. Lage <r0sk10@gmail.com>
- * @author Rodrigo Rega <rodrigorega@gmail.com>
- */
-$lang['menu']                  = 'Xestor de Usuarios';
-$lang['noauth']                = '(autenticación de usuarios non dispoñible)';
-$lang['nosupport']             = '(xestión de usuarios non soportada)';
-$lang['badauth']               = 'mecanismo de autenticación non válido';
-$lang['user_id']               = 'Usuario';
-$lang['user_pass']             = 'Contrasinal';
-$lang['user_name']             = 'Nome Real';
-$lang['user_mail']             = 'Correo-e';
-$lang['user_groups']           = 'Grupos';
-$lang['field']                 = 'Campo';
-$lang['value']                 = 'Valor';
-$lang['add']                   = 'Engadir';
-$lang['delete']                = 'Eliminar';
-$lang['delete_selected']       = 'Eliminar Seleccionados';
-$lang['edit']                  = 'Editar';
-$lang['edit_prompt']           = 'Editar este usuario';
-$lang['modify']                = 'Gardar Trocos';
-$lang['search']                = 'Procurar';
-$lang['search_prompt']         = 'Facer procura';
-$lang['clear']                 = 'Reiniciar Filtro de Procura';
-$lang['filter']                = 'Filtro';
-$lang['summary']               = 'Amosando usuarios %1$d-%2$d de %3$d atopados. %4$d usuarios en total.';
-$lang['nonefound']             = 'Non se atoparon usuarios. %d usuarios en total.';
-$lang['delete_ok']             = '%d usuarios eliminados';
-$lang['delete_fail']           = '%d non puideron ser eliminados.';
-$lang['update_ok']             = 'Usuario actualizado correctamente';
-$lang['update_fail']           = 'Non se puido actualizar o usuario';
-$lang['update_exists']         = 'Non se puido mudar o nome do usuario, xa que o nome especificado (%s) xa existe (o resto de trocos aplicaranse sen problemas).';
-$lang['start']                 = 'comezo';
-$lang['prev']                  = 'anterior';
-$lang['next']                  = 'seguinte';
-$lang['last']                  = 'derradeiro';
-$lang['edit_usermissing']      = 'Non se atopou o usuario seleccionado, pode que o nome de usuario fose eliminado ou mudado nalgún intre.';
-$lang['user_notify']           = 'Notificar ao usuario';
-$lang['note_notify']           = 'Os correos-e de notificación envíanse só se o usuario obtén un novo contrasinal.';
-$lang['note_group']            = 'Os novos usuarios serán engadidos ao grupo por defecto (%s) se non se especifica outro.';
-$lang['note_pass']             = 'Se deixas o campo baleiro e a notificación ao usuario está activada xerarase automaticamente o contrasinal.';
-$lang['add_ok']                = 'Usuario engadido correctamente';
-$lang['add_fail']              = 'Non se puido engadir o usuario';
-$lang['notify_ok']             = 'Correo-e de notificación enviado';
-$lang['notify_fail']           = 'Non se puido enviar o correo-e de notificación';
diff --git a/wiki/lib/plugins/usermanager/lang/gl/list.txt b/wiki/lib/plugins/usermanager/lang/gl/list.txt
deleted file mode 100644
index 013b2d7..0000000
--- a/wiki/lib/plugins/usermanager/lang/gl/list.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Lista de Usuarios =====
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/he/add.txt b/wiki/lib/plugins/usermanager/lang/he/add.txt
deleted file mode 100644
index e2d1cb7..0000000
--- a/wiki/lib/plugins/usermanager/lang/he/add.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== הוספת משתמש =====
diff --git a/wiki/lib/plugins/usermanager/lang/he/delete.txt b/wiki/lib/plugins/usermanager/lang/he/delete.txt
deleted file mode 100644
index 42d738b..0000000
--- a/wiki/lib/plugins/usermanager/lang/he/delete.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== מחיקת משתמש =====
diff --git a/wiki/lib/plugins/usermanager/lang/he/edit.txt b/wiki/lib/plugins/usermanager/lang/he/edit.txt
deleted file mode 100644
index af90af3..0000000
--- a/wiki/lib/plugins/usermanager/lang/he/edit.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== עריכת משתמש =====
diff --git a/wiki/lib/plugins/usermanager/lang/he/intro.txt b/wiki/lib/plugins/usermanager/lang/he/intro.txt
deleted file mode 100644
index 232c515..0000000
--- a/wiki/lib/plugins/usermanager/lang/he/intro.txt
+++ /dev/null
@@ -1 +0,0 @@
-====== מנהל ×ž×©×ª×ž×©×™× ======
diff --git a/wiki/lib/plugins/usermanager/lang/he/lang.php b/wiki/lib/plugins/usermanager/lang/he/lang.php
deleted file mode 100644
index 719fd90..0000000
--- a/wiki/lib/plugins/usermanager/lang/he/lang.php
+++ /dev/null
@@ -1,50 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author DoK <kamberd@yahoo.com>
- * @author Moshe Kaplan <mokplan@gmail.com>
- * @author Yaron Yogev <yaronyogev@gmail.com>
- * @author Yaron Shahrabani <sh.yaron@gmail.com>
- */
-$lang['menu']                  = 'מנהל משתמשי×';
-$lang['noauth']                = '(×ימות ×ž×©×ª×ž×©×™× ×ינו זמין)';
-$lang['nosupport']             = '(ניהול ×ž×©×ª×ž×©×™× ×ינו נתמך)';
-$lang['badauth']               = 'מנגנון ×ימות ×œ× ×ª×§×£';
-$lang['user_id']               = '×©× ×ž×©×ª×ž×©';
-$lang['user_pass']             = 'סיסמה';
-$lang['user_name']             = '×©× ×מיתי';
-$lang['user_mail']             = 'דו×"ל';
-$lang['user_groups']           = 'קבוצות';
-$lang['field']                 = 'שדה';
-$lang['value']                 = 'ערך';
-$lang['add']                   = 'הוספה';
-$lang['delete']                = 'מחיקה';
-$lang['delete_selected']       = 'מחיקת הבחירה';
-$lang['edit']                  = 'עריכה';
-$lang['edit_prompt']           = 'עריכת משתמש זה';
-$lang['modify']                = 'שמירת שינוי×';
-$lang['search']                = 'חיפוש';
-$lang['search_prompt']         = 'בצע חיפוש';
-$lang['clear']                 = '×תחל סינון חיפוש';
-$lang['filter']                = 'סינון';
-$lang['summary']               = 'מציג ×ž×©×ª×ž×©×™× %1$d-%2$d מתוך %3$d שנמצ×ו. %4$d בסך הכל.';
-$lang['nonefound']             = '×œ× × ×ž×¦×ו משתמשי×. סך כל ×”×ž×©×ª×ž×©×™× %d.';
-$lang['delete_ok']             = '%d ×ž×©×ª×ž×©×™× × ×ž×—×§×•';
-$lang['delete_fail']           = '%d כשל במחיקה.';
-$lang['update_ok']             = 'משתמש עודכן בהצלחה';
-$lang['update_fail']           = 'עידכון המשתמש כשל';
-$lang['update_exists']         = 'שינוי ×©× ×”×ž×©×ª×ž×© כשל, ×©× ×”×©×ž×ª×ž×© שצויין (%s) כבר × ×ž×¦× (כל ×”×©×™× ×•×™×™× ×”××—×¨×™× ×™×•×—×œ×•).';
-$lang['start']                 = 'התחלה';
-$lang['prev']                  = 'קוד×';
-$lang['next']                  = 'הב×';
-$lang['last']                  = 'סוף';
-$lang['edit_usermissing']      = 'המשתמש שנבחר ×œ× × ×ž×¦×, ייתכן ×›×™ ×©× ×”×ž×©×ª×ž×© שצויין נמחק ×ו השתנה ×‘×ž×§×•× ×חר.';
-$lang['user_notify']           = 'הודע למשתמש';
-$lang['note_notify']           = 'הודעות בדו×"ל נשלחות רק במקרה שהמשתמש מקבל סיסמה חדשה.';
-$lang['note_group']            = '×ž×©×ª×ž×©×™× ×—×“×©×™× ×™×•×¡×¤×• לקבוצת ברירת המחדל (%s) ×× ×œ× ×¦×•×™× ×” קבוצה ×חרת.';
-$lang['add_ok']                = 'משתמש הוסף בהצלחה';
-$lang['add_fail']              = 'הוספת המשתמש כשלה';
-$lang['notify_ok']             = 'הודעה נשלחה';
-$lang['notify_fail']           = '×œ× × ×™×ª×Ÿ ×”×™×” לשלוח הודעה';
diff --git a/wiki/lib/plugins/usermanager/lang/he/list.txt b/wiki/lib/plugins/usermanager/lang/he/list.txt
deleted file mode 100644
index 9308fbe..0000000
--- a/wiki/lib/plugins/usermanager/lang/he/list.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== רשימת ×ž×©×ª×ž×©×™× =====
diff --git a/wiki/lib/plugins/usermanager/lang/hr/add.txt b/wiki/lib/plugins/usermanager/lang/hr/add.txt
deleted file mode 100644
index f7c8664..0000000
--- a/wiki/lib/plugins/usermanager/lang/hr/add.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Dodaj korisnika =====
diff --git a/wiki/lib/plugins/usermanager/lang/hr/delete.txt b/wiki/lib/plugins/usermanager/lang/hr/delete.txt
deleted file mode 100644
index 072185f..0000000
--- a/wiki/lib/plugins/usermanager/lang/hr/delete.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Ukloni korisnika =====
diff --git a/wiki/lib/plugins/usermanager/lang/hr/edit.txt b/wiki/lib/plugins/usermanager/lang/hr/edit.txt
deleted file mode 100644
index 752fd81..0000000
--- a/wiki/lib/plugins/usermanager/lang/hr/edit.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Uredi korisnika =====
diff --git a/wiki/lib/plugins/usermanager/lang/hr/import.txt b/wiki/lib/plugins/usermanager/lang/hr/import.txt
deleted file mode 100644
index 85ea927..0000000
--- a/wiki/lib/plugins/usermanager/lang/hr/import.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-===== Masovni unos korisnika =====
-
-Zahtjeva CSV datoteku popisa korisnika s minimalno Äetiri kolone.
-Kolone moraju sadržavati redom: korisniÄko ime, puno ime, adresu e-poÅ¡te i grupe.
-Polja trebaju biti odvojena zarezom (,) a znakovni nizovi s dvostrukim navodnicima (%%""%%). Obrnuta kosa crta (\) koristi se za specijalne kodove (escaping).
-Koristite "Izvoz korisnika" funkciju da bi ste dobili primjer odgovarajuće datoteke. 
-Duplikati korisniÄkih imena biti će ignorirani.
-
-Uspješno kreiranim korisnicima lozinka će biti generirana i poslana e-poštom.
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/hr/intro.txt b/wiki/lib/plugins/usermanager/lang/hr/intro.txt
deleted file mode 100644
index 0f15657..0000000
--- a/wiki/lib/plugins/usermanager/lang/hr/intro.txt
+++ /dev/null
@@ -1 +0,0 @@
-====== Upravitelj korisnicima ======
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/hr/lang.php b/wiki/lib/plugins/usermanager/lang/hr/lang.php
deleted file mode 100644
index 39620ed..0000000
--- a/wiki/lib/plugins/usermanager/lang/hr/lang.php
+++ /dev/null
@@ -1,74 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Davor Turkalj <turki.bsc@gmail.com>
- */
-$lang['menu']                  = 'Upravitelj korisnicima';
-$lang['noauth']                = '(korisniÄka prijava nije dostupna)';
-$lang['nosupport']             = '(upravljanje korisnikom nije podržano)';
-$lang['badauth']               = 'pogrešan mehanizam prijave';
-$lang['user_id']               = 'Korisnik';
-$lang['user_pass']             = 'Lozinka';
-$lang['user_name']             = 'Stvarno ime';
-$lang['user_mail']             = 'E-pošta';
-$lang['user_groups']           = 'Grupe';
-$lang['field']                 = 'Polje';
-$lang['value']                 = 'Vrijednost';
-$lang['add']                   = 'Dodaj';
-$lang['delete']                = 'Obriši';
-$lang['delete_selected']       = 'Obriši odabrano';
-$lang['edit']                  = 'Uredi';
-$lang['edit_prompt']           = 'Uredi ovog korisnika';
-$lang['modify']                = 'Pohrani promjene';
-$lang['search']                = 'Potraži';
-$lang['search_prompt']         = 'Izvedi potragu';
-$lang['clear']                 = 'Obriši filtar potrage';
-$lang['filter']                = 'Filtar';
-$lang['export_all']            = 'Izvezi sve korisnike (CSV)';
-$lang['export_filtered']       = 'Izvezi filtriranu listu korisnika (CSV)';
-$lang['import']                = 'Unos novih korisnika';
-$lang['line']                  = 'Linija br.';
-$lang['error']                 = 'Poruka o grešci';
-$lang['summary']               = 'Prikaz korisnika %1$d-%2$d od %3$d nađenih. Ukupno %4$d korisnika.';
-$lang['nonefound']             = 'Nema korisnika koji odgovaraju filtru.Ukupno %d korisnika.';
-$lang['delete_ok']             = '%d korisnika obrisano';
-$lang['delete_fail']           = '%d neuspjelih brisanja.';
-$lang['update_ok']             = 'Korisnik uspješno izmijenjen';
-$lang['update_fail']           = 'Neuspjela izmjena korisnika';
-$lang['update_exists']         = 'Promjena korisniÄkog imena neuspjeÅ¡na, traženo ime (%s) već postoji (ostale izmjene biti će primijenjene).';
-$lang['start']                 = 'poÄetni';
-$lang['prev']                  = 'prethodni';
-$lang['next']                  = 'slijedeći';
-$lang['last']                  = 'zadnji';
-$lang['edit_usermissing']      = 'Odabrani korisnik nije naÄ‘en, traženo korisniÄko ime vjerojatno je obrisano i promijenjeno negdje drugdje.';
-$lang['user_notify']           = 'Obavijesti korisnika';
-$lang['note_notify']           = 'Obavijest korisniku biti će poslana samo ako je upisana nova lozinka.';
-$lang['note_group']            = 'Novi korisnik biti će dodijeljen u podrazumijevanu grupu (%s) ako grupa nije specificirana.';
-$lang['note_pass']             = 'Lozinka će biti generirana ako se polje ostavi prazno i obavješćivanje korisnika je omogućeno.';
-$lang['add_ok']                = 'Korisnik uspješno dodan';
-$lang['add_fail']              = 'Neuspješno dodavanje korisnika';
-$lang['notify_ok']             = 'Poslana obavijest korisniku';
-$lang['notify_fail']           = 'Obavijest korisniku ne može biti poslana';
-$lang['import_userlistcsv']    = 'Datoteka s popisom korisnika (CSV):';
-$lang['import_header']         = 'Zadnje greške pri uvozu';
-$lang['import_success_count']  = 'Uvoz korisnika: %d korisnika nađeno, %d uspješno uvezeno';
-$lang['import_failure_count']  = 'Uvoz korisnika: %d neuspješno. Greške su navedene niže.';
-$lang['import_error_fields']   = 'Nedovoljan broj polja, nađeno %d, potrebno 4.';
-$lang['import_error_baduserid'] = 'Nedostaje korisniÄko ime';
-$lang['import_error_badname']  = 'Krivo ime';
-$lang['import_error_badmail']  = 'Kriva adresa e-pošte';
-$lang['import_error_upload']   = 'Uvoz neuspjeÅ¡an. CSV datoteka ne može biti uÄitana ili je prazna.';
-$lang['import_error_readfail'] = 'Uvoz neuspjeÅ¡an. Ne mogu proÄitati uÄitanu datoteku.';
-$lang['import_error_create']   = 'Ne mogu kreirati korisnika';
-$lang['import_notify_fail']    = 'Obavijest uvezenom korisniku %s nije moguće poslati na adresu e-pošte %s.';
-$lang['import_downloadfailures'] = 'Preuzmi  greške kao CSV za ispravak';
-$lang['addUser_error_missing_pass'] = 'Molim ili postavite lozinku ili aktivirajte obavijest korisniku za omogućavanje generiranje lozinke.';
-$lang['addUser_error_pass_not_identical'] = 'Unesene lozinke nisu identiÄne.';
-$lang['addUser_error_modPass_disabled'] = 'Izmjena lozinke je trenutno onemogućena.';
-$lang['addUser_error_name_missing'] = 'Molim unesite ime novog korisnika.';
-$lang['addUser_error_modName_disabled'] = 'Izmjena imena je trenutno onemogućena.';
-$lang['addUser_error_mail_missing'] = 'Molim unesite adresu epošte za novog korisnika.';
-$lang['addUser_error_modMail_disabled'] = 'Izmjena adrese epošte je trenutno onemogućena.';
-$lang['addUser_error_create_event_failed'] = 'Dodatak je sprijeÄio dodavanje novog korisnika. Pogledajte eventualne ostale poruke za viÅ¡e informacija.';
diff --git a/wiki/lib/plugins/usermanager/lang/hr/list.txt b/wiki/lib/plugins/usermanager/lang/hr/list.txt
deleted file mode 100644
index 50b1d25..0000000
--- a/wiki/lib/plugins/usermanager/lang/hr/list.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Lista korisnika =====
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/hu/add.txt b/wiki/lib/plugins/usermanager/lang/hu/add.txt
deleted file mode 100644
index 70a44c4..0000000
--- a/wiki/lib/plugins/usermanager/lang/hu/add.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-===== Felhasználó hozzáadása =====
-
diff --git a/wiki/lib/plugins/usermanager/lang/hu/delete.txt b/wiki/lib/plugins/usermanager/lang/hu/delete.txt
deleted file mode 100644
index 963d2e7..0000000
--- a/wiki/lib/plugins/usermanager/lang/hu/delete.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-===== Felhasználó törlése =====
-
diff --git a/wiki/lib/plugins/usermanager/lang/hu/edit.txt b/wiki/lib/plugins/usermanager/lang/hu/edit.txt
deleted file mode 100644
index f827460..0000000
--- a/wiki/lib/plugins/usermanager/lang/hu/edit.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-===== Felhasználó szerkesztése =====
-
diff --git a/wiki/lib/plugins/usermanager/lang/hu/import.txt b/wiki/lib/plugins/usermanager/lang/hu/import.txt
deleted file mode 100644
index a2db033..0000000
--- a/wiki/lib/plugins/usermanager/lang/hu/import.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-==== Felhasználók tömeges importálása ====
-
-Szükséges egy legalább 4 oszlopot tartalmazó, felhasználókat tartalmazó fájl.
-Az oszlopok kötelező tartalma, sorrendben: felhasználói azonosító, teljes név, e-mailcím és csoport.
-A CSV-mezőket vesszővel (,) kell elválasztani, a szövegeket idézőjelek (%%""%%) közé kell tenni. A fordított törtvonal (\) használható feloldójelnek.
-Megfelelő mintafájl megtekintéséhez próbáld ki a "Felhasználók exportálása" funkciót fentebb. 
-A duplán szereplő felhasználói azonosítók kihagyásra kerülnek.
-
-Minden sikeresen importált felhasználó számára jelszó készül, amelyet e-mailben kézhez kap.
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/hu/intro.txt b/wiki/lib/plugins/usermanager/lang/hu/intro.txt
deleted file mode 100644
index 150aff8..0000000
--- a/wiki/lib/plugins/usermanager/lang/hu/intro.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-====== Felhasználók kezelése ======
-
diff --git a/wiki/lib/plugins/usermanager/lang/hu/lang.php b/wiki/lib/plugins/usermanager/lang/hu/lang.php
deleted file mode 100644
index 963fcd1..0000000
--- a/wiki/lib/plugins/usermanager/lang/hu/lang.php
+++ /dev/null
@@ -1,74 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author Sandor TIHANYI <stihanyi+dw@gmail.com>
- * @author Siaynoq Mage <siaynoqmage@gmail.com>
- * @author schilling.janos@gmail.com
- * @author Szabó Dávid <szabo.david@gyumolcstarhely.hu>
- * @author Sándor TIHANYI <stihanyi+dw@gmail.com>
- * @author David Szabo <szabo.david@gyumolcstarhely.hu>
- * @author Marton Sebok <sebokmarton@gmail.com>
- * @author Serenity87HUN <anikototh87@gmail.com>
- * @author Marina Vladi <deldadam@gmail.com>
- */
-$lang['menu']                  = 'Felhasználók kezelése';
-$lang['noauth']                = '(A felhasználói azonosítás nem működik.)';
-$lang['nosupport']             = '(A felhasználók kezelése nem támogatott.)';
-$lang['badauth']               = 'nem érvényes autentikációs technika';
-$lang['user_id']               = 'Felhasználói azonosító';
-$lang['user_pass']             = 'Jelszó';
-$lang['user_name']             = 'Név';
-$lang['user_mail']             = 'E-mail';
-$lang['user_groups']           = 'Csoportok';
-$lang['field']                 = 'Mező';
-$lang['value']                 = 'Érték';
-$lang['add']                   = 'Hozzáadás';
-$lang['delete']                = 'Törlés';
-$lang['delete_selected']       = 'Kiválasztottak törlése';
-$lang['edit']                  = 'Szerkesztés';
-$lang['edit_prompt']           = 'A felhasználó szerkesztése';
-$lang['modify']                = 'Változások mentése';
-$lang['search']                = 'Keresés';
-$lang['search_prompt']         = 'Keresés';
-$lang['clear']                 = 'Keresési szűrés törlése';
-$lang['filter']                = 'Szűrés';
-$lang['export_all']            = 'Összes felhasználó exportálása (CSV)';
-$lang['export_filtered']       = 'Kiválasztott felhasználók exportálása (CSV)';
-$lang['import']                = 'Új felhasználók importálása';
-$lang['line']                  = 'Sor száma';
-$lang['error']                 = 'Hibaüzenet';
-$lang['summary']               = '%1$d-%2$d. felhasználók megjelenítése a(z) %3$d megtalált felhasználóból. %4$d felhasználó van összesen.';
-$lang['nonefound']             = 'Nincs ilyen felhasználó. %d felhasználó van összesen.';
-$lang['delete_ok']             = '%d felhasználó törölve.';
-$lang['delete_fail']           = '%d felhasználót nem sikerült törölni.';
-$lang['update_ok']             = 'A felhasználó adatait sikeresen elmentettem.';
-$lang['update_fail']           = 'A felhasználó adatainak mentése nem sikerült.';
-$lang['update_exists']         = 'A felhasználói azonosító változtatása nem sikerült, a megadott azonosító (%s) már létezik. (A többi változtatás mentve.)';
-$lang['start']                 = 'első';
-$lang['prev']                  = 'előző';
-$lang['next']                  = 'következő';
-$lang['last']                  = 'utolsó';
-$lang['edit_usermissing']      = 'A kiválasztott felhasználót nem találom, a felhasználói nevét törölték vagy megváltoztatták.';
-$lang['user_notify']           = 'Felhasználó értesítése';
-$lang['note_notify']           = 'Csak akkor küld értesítő e-mailt, ha a felhasználó új jelszót kapott.';
-$lang['note_group']            = 'Ha nincs csoport meghatározva, az új felhasználó az alapértelmezett csoportba (%s) kerül.';
-$lang['note_pass']             = 'Ha a baloldali mező üres és a felhasználó értesítés aktív, akkor a jelszót a rendszer generálja.';
-$lang['add_ok']                = 'A felhasználó sikeresen hozzáadva.';
-$lang['add_fail']              = 'A felhasználó hozzáadása nem sikerült.';
-$lang['notify_ok']             = 'Értesítő levél elküldve.';
-$lang['notify_fail']           = 'Nem sikerült az értesítő levelet elküldeni.';
-$lang['import_userlistcsv']    = 'Felhasználók listájának fájlja (CSV)';
-$lang['import_header']         = 'Legutóbbi importálás - Hibák';
-$lang['import_success_count']  = 'Felhasználók importálása: %d felhasználót találtunk, ebből %d sikeresen importálva.';
-$lang['import_failure_count']  = 'Felhasználók importálása: %d sikertelen. A sikertelenség okait lejjebb találod.';
-$lang['import_error_fields']   = 'Túl kevés mezőt adtál meg, %d darabot találtunk, legalább 4-re van szükség.';
-$lang['import_error_baduserid'] = 'Felhasználói azonosító hiányzik';
-$lang['import_error_badname']  = 'Helytelen név';
-$lang['import_error_badmail']  = 'Helytelen e-mailcím';
-$lang['import_error_upload']   = 'Sikertelen importálás. A csv fájl nem feltölthető vagy üres.';
-$lang['import_error_readfail'] = 'Sikertelen importálás. A feltöltött fájl nem olvasható.';
-$lang['import_error_create']   = 'Ez a felhasználó nem hozható létre';
-$lang['import_notify_fail']    = 'Az értesítő e-mail nem küldhető el az alábbi importált felhasználónak: %s e-mailcíme: %s.';
-$lang['import_downloadfailures'] = 'Töltsd le a hibákat tartalmazó fájlt CSV formátumban, hogy ki tudd javítani a hibákat';
diff --git a/wiki/lib/plugins/usermanager/lang/hu/list.txt b/wiki/lib/plugins/usermanager/lang/hu/list.txt
deleted file mode 100644
index 9da7320..0000000
--- a/wiki/lib/plugins/usermanager/lang/hu/list.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-===== Felhasználók listája =====
-
diff --git a/wiki/lib/plugins/usermanager/lang/ia/add.txt b/wiki/lib/plugins/usermanager/lang/ia/add.txt
deleted file mode 100644
index 4695834..0000000
--- a/wiki/lib/plugins/usermanager/lang/ia/add.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Adder usator =====
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/ia/delete.txt b/wiki/lib/plugins/usermanager/lang/ia/delete.txt
deleted file mode 100644
index db1b4c0..0000000
--- a/wiki/lib/plugins/usermanager/lang/ia/delete.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Deler usator =====
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/ia/edit.txt b/wiki/lib/plugins/usermanager/lang/ia/edit.txt
deleted file mode 100644
index 2fcf023..0000000
--- a/wiki/lib/plugins/usermanager/lang/ia/edit.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Modificar usator =====
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/ia/intro.txt b/wiki/lib/plugins/usermanager/lang/ia/intro.txt
deleted file mode 100644
index f4fafcb..0000000
--- a/wiki/lib/plugins/usermanager/lang/ia/intro.txt
+++ /dev/null
@@ -1 +0,0 @@
-====== Gestion de usatores ======
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/ia/lang.php b/wiki/lib/plugins/usermanager/lang/ia/lang.php
deleted file mode 100644
index a8b8f45..0000000
--- a/wiki/lib/plugins/usermanager/lang/ia/lang.php
+++ /dev/null
@@ -1,49 +0,0 @@
-<?php
-/**
- * Interlingua language file
- *
- * @author robocap <robocap1@gmail.com>
- * @author Martijn Dekker <martijn@inlv.org>
- */
-$lang['menu']                  = 'Gestion de usatores';
-$lang['noauth']                = '(authentication de usatores non disponibile)';
-$lang['nosupport']             = '(gestion de usatores non supportate)';
-$lang['badauth']               = 'mechanismo de authentication invalide';
-$lang['user_id']               = 'Usator';
-$lang['user_pass']             = 'Contrasigno';
-$lang['user_name']             = 'Nomine real';
-$lang['user_mail']             = 'E-mail';
-$lang['user_groups']           = 'Gruppos';
-$lang['field']                 = 'Campo';
-$lang['value']                 = 'Valor';
-$lang['add']                   = 'Adder';
-$lang['delete']                = 'Deler';
-$lang['delete_selected']       = 'Deler seligite';
-$lang['edit']                  = 'Modificar';
-$lang['edit_prompt']           = 'Modificar iste usator';
-$lang['modify']                = 'Salveguardar cambios';
-$lang['search']                = 'Cercar';
-$lang['search_prompt']         = 'Executar recerca';
-$lang['clear']                 = 'Reinitialisar filtro de recerca';
-$lang['filter']                = 'Filtro';
-$lang['summary']               = 'Presentation del usatores %1$d-%2$d de %3$d trovate. %4$d usatores in total.';
-$lang['nonefound']             = 'Nulle usator trovate. %d usatores in total.';
-$lang['delete_ok']             = '%d usatores delite';
-$lang['delete_fail']           = 'Deletion de %d usatores fallite.';
-$lang['update_ok']             = 'Actualisation del usator succedite';
-$lang['update_fail']           = 'Actualisation del usator fallite';
-$lang['update_exists']         = 'Le modification del nomine del usator ha fallite; le usator specificate (%s) ja existe. (Omne altere modificationes essera applicate.)
-';
-$lang['start']                 = 'initio';
-$lang['prev']                  = 'precedente';
-$lang['next']                  = 'sequente';
-$lang['last']                  = 'fin';
-$lang['edit_usermissing']      = 'Le usator seligite non ha essite trovate. Es possibile que le nomine de usator specificate ha essite delite o cambiate alterubi.';
-$lang['user_notify']           = 'Notificar usator';
-$lang['note_notify']           = 'Le messages de notification es solmente inviate un nove contrasigno es date al usator.';
-$lang['note_group']            = 'Nove usatores essera addite al gruppo predefinite (%s) si nulle gruppo es specificate.';
-$lang['note_pass']             = 'Le contrasigno essera automaticamente generate si le campo es lassate vacue e le notification del usator es activate.';
-$lang['add_ok']                = 'Addition del usator succedite';
-$lang['add_fail']              = 'Addition del usator fallite';
-$lang['notify_ok']             = 'Message de notification inviate';
-$lang['notify_fail']           = 'Le message de notification non poteva esser inviate';
diff --git a/wiki/lib/plugins/usermanager/lang/ia/list.txt b/wiki/lib/plugins/usermanager/lang/ia/list.txt
deleted file mode 100644
index f545f06..0000000
--- a/wiki/lib/plugins/usermanager/lang/ia/list.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Lista de usatores =====
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/id/add.txt b/wiki/lib/plugins/usermanager/lang/id/add.txt
deleted file mode 100644
index eae407c..0000000
--- a/wiki/lib/plugins/usermanager/lang/id/add.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Tambah User =====
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/id/delete.txt b/wiki/lib/plugins/usermanager/lang/id/delete.txt
deleted file mode 100644
index 99e53c9..0000000
--- a/wiki/lib/plugins/usermanager/lang/id/delete.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Hapus User =====
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/id/edit.txt b/wiki/lib/plugins/usermanager/lang/id/edit.txt
deleted file mode 100644
index 6d14f4f..0000000
--- a/wiki/lib/plugins/usermanager/lang/id/edit.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Edit User =====
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/id/intro.txt b/wiki/lib/plugins/usermanager/lang/id/intro.txt
deleted file mode 100644
index de053f2..0000000
--- a/wiki/lib/plugins/usermanager/lang/id/intro.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Manajemen User =====
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/id/lang.php b/wiki/lib/plugins/usermanager/lang/id/lang.php
deleted file mode 100644
index 425b2ff..0000000
--- a/wiki/lib/plugins/usermanager/lang/id/lang.php
+++ /dev/null
@@ -1,48 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author Irwan Butar Butar <irwansah.putra@gmail.com>
- * @author Yustinus Waruwu <juswaruwu@gmail.com>
- */
-$lang['menu']                  = 'Manajemen User';
-$lang['noauth']                = '(autentikasi tidak tersedia)';
-$lang['nosupport']             = '(manajemen user tidak didukung)';
-$lang['badauth']               = 'mekanisme autentikasi invali';
-$lang['user_id']               = 'User';
-$lang['user_pass']             = 'Password';
-$lang['user_name']             = 'Nama Lengkap';
-$lang['user_mail']             = 'Email';
-$lang['user_groups']           = 'Grup';
-$lang['field']                 = 'Field';
-$lang['value']                 = 'Nilai';
-$lang['add']                   = 'Tambah';
-$lang['delete']                = 'Hapus';
-$lang['delete_selected']       = 'Hapus pilihan';
-$lang['edit']                  = 'Edit';
-$lang['edit_prompt']           = 'Edit user ini';
-$lang['modify']                = 'Simpan Perubahan';
-$lang['search']                = 'Pencarian';
-$lang['search_prompt']         = 'Lakukan pencarian';
-$lang['clear']                 = 'Reset Filter Pencarian';
-$lang['filter']                = 'Filter';
-$lang['summary']               = 'Menampilkan user %1$d-%2$d dari %3$d user yang ditemukan. Total semua user %4$d.';
-$lang['nonefound']             = 'User tidak ditemukan. Total semua user %d. ';
-$lang['delete_ok']             = 'User %d dihapus';
-$lang['delete_fail']           = 'User %d tidak berhasil dihapus';
-$lang['update_ok']             = 'User berhasil diubah';
-$lang['update_fail']           = 'Perubahan user tidak berhasil';
-$lang['update_exists']         = 'Perubahan username tidak berhasil, Username (%s) sudah ada (perubahan lain tetap dilakukan)';
-$lang['start']                 = 'awal';
-$lang['prev']                  = 'sebelumnya';
-$lang['next']                  = 'berikutnya';
-$lang['last']                  = 'terakhir';
-$lang['edit_usermissing']      = 'User yang dipilih tida ditemukan, username tersebut mungkin sudah dihapus atau diubah ditempat lain.';
-$lang['user_notify']           = 'Beritahu user';
-$lang['note_notify']           = 'Email notifikasi hanya dikirim jika user diberikan password baru';
-$lang['note_group']            = 'User baru akan ditambahkan ke grup default (%s) jika tidak ada grup yang diisi.';
-$lang['add_ok']                = 'User telah berhasil ditambahkan';
-$lang['add_fail']              = 'Penambahan user tidak berhasil.';
-$lang['notify_ok']             = 'Email notifikasi berhasil terkirim.';
-$lang['notify_fail']           = 'Email notifikasi tidak berhasil terkirim.';
diff --git a/wiki/lib/plugins/usermanager/lang/id/list.txt b/wiki/lib/plugins/usermanager/lang/id/list.txt
deleted file mode 100644
index 9b70bc1..0000000
--- a/wiki/lib/plugins/usermanager/lang/id/list.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Daftar User =====
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/is/delete.txt b/wiki/lib/plugins/usermanager/lang/is/delete.txt
deleted file mode 100644
index 5640065..0000000
--- a/wiki/lib/plugins/usermanager/lang/is/delete.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Eyða notanda =====
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/is/lang.php b/wiki/lib/plugins/usermanager/lang/is/lang.php
deleted file mode 100644
index cabf83d..0000000
--- a/wiki/lib/plugins/usermanager/lang/is/lang.php
+++ /dev/null
@@ -1,18 +0,0 @@
-<?php
-/**
- * Icelandic language file
- *
- * @author Hrannar Baldursson <hrannar.baldursson@gmail.com>
- * @author Ólafur Gunnlaugsson <oli@audiotools.com>
- * @author Erik Bjørn Pedersen <erik.pedersen@shaw.ca>
- */
-$lang['user_id']               = 'Notandi';
-$lang['user_pass']             = 'Aðgangsorð';
-$lang['user_name']             = 'Raunnafn';
-$lang['user_groups']           = 'Hópar';
-$lang['field']                 = 'Svæði';
-$lang['delete']                = 'Eyða';
-$lang['add_ok']                = 'Notandinn var bætt við';
-$lang['add_fail']              = 'Bæta við nýjum notanda mistókst';
-$lang['notify_ok']             = 'Tilkynning var sendast með tölvupósti';
-$lang['notify_fail']           = 'Ekki hægt að senda tilkynning með tölvupósti';
diff --git a/wiki/lib/plugins/usermanager/lang/it/add.txt b/wiki/lib/plugins/usermanager/lang/it/add.txt
deleted file mode 100644
index 9ce4c6e..0000000
--- a/wiki/lib/plugins/usermanager/lang/it/add.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Aggiungi utente =====
diff --git a/wiki/lib/plugins/usermanager/lang/it/delete.txt b/wiki/lib/plugins/usermanager/lang/it/delete.txt
deleted file mode 100644
index 270061f..0000000
--- a/wiki/lib/plugins/usermanager/lang/it/delete.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Elimina utente =====
diff --git a/wiki/lib/plugins/usermanager/lang/it/edit.txt b/wiki/lib/plugins/usermanager/lang/it/edit.txt
deleted file mode 100644
index 39767bf..0000000
--- a/wiki/lib/plugins/usermanager/lang/it/edit.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Modifica utente =====
diff --git a/wiki/lib/plugins/usermanager/lang/it/import.txt b/wiki/lib/plugins/usermanager/lang/it/import.txt
deleted file mode 100644
index ed7b000..0000000
--- a/wiki/lib/plugins/usermanager/lang/it/import.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-===== Importazione Bulk di utente =====
-
-Richiesto un file CSV di utenti con almeno quattro colonne.
-Le colonne devono contenere, in ordine: ID utente, nome completo, indirizzo e-mail e gruppi.
-I campi CSV devono essere separati da una virgola (,) e le stringhe delimitate con apici (%%""%%). Il backslash (\) può essere usato come carattere di escape, cioè per indicare che il carattere successivo deve essere trattato in maniera speciale.
-Per un esempio di file tipo, prova la funzione "Esporta Utenti" che trovi qui sopra.
-Verranno ignorati gli ID utenti duplicati.
-
-Verrà generata una password ed inviata via e-mail ad ogni utente correttamente importato. 
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/it/intro.txt b/wiki/lib/plugins/usermanager/lang/it/intro.txt
deleted file mode 100644
index 3421709..0000000
--- a/wiki/lib/plugins/usermanager/lang/it/intro.txt
+++ /dev/null
@@ -1 +0,0 @@
-====== Gestione Utenti ======
diff --git a/wiki/lib/plugins/usermanager/lang/it/lang.php b/wiki/lib/plugins/usermanager/lang/it/lang.php
deleted file mode 100644
index cf3b9fd..0000000
--- a/wiki/lib/plugins/usermanager/lang/it/lang.php
+++ /dev/null
@@ -1,84 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Chris Smith <chris@jalakai.co.uk>
- * @author Silvia Sargentoni <polinnia@tin.it>
- * @author Pietro Battiston <toobaz@email.it>
- * @author Lorenzo Breda <lbreda@gmail.com>
- * @author robocap <robocap1@gmail.com>
- * @author Jacopo Corbetta <jacopo.corbetta@gmail.com>
- * @author Matteo Pasotti <matteo@xquiet.eu>
- * @author Claudio Lanconelli <lancos@libero.it>
- * @author Francesco <francesco.cavalli@hotmail.com>
- * @author Fabio <fabioslurp@yahoo.it>
- * @author Torpedo <dgtorpedo@gmail.com>
- */
-$lang['menu']                  = 'Gestione Utenti';
-$lang['noauth']                = '(autenticazione non disponibile)';
-$lang['nosupport']             = '(gestione utenti non supportata)';
-$lang['badauth']               = 'sistema di autenticazione non valido';
-$lang['user_id']               = 'ID utente';
-$lang['user_pass']             = 'Password';
-$lang['user_name']             = 'Nome completo';
-$lang['user_mail']             = 'Email';
-$lang['user_groups']           = 'Gruppi';
-$lang['field']                 = 'Campo';
-$lang['value']                 = 'Valore';
-$lang['add']                   = 'Aggiungi';
-$lang['delete']                = 'Elimina';
-$lang['delete_selected']       = 'Elimina selezionati';
-$lang['edit']                  = 'Modifica';
-$lang['edit_prompt']           = 'Modifica questo utente';
-$lang['modify']                = 'Salva modifiche';
-$lang['search']                = 'Cerca';
-$lang['search_prompt']         = 'Esegui ricerca';
-$lang['clear']                 = 'Azzera filtro di ricerca';
-$lang['filter']                = 'Filtro';
-$lang['export_all']            = 'Esporta tutti gli utenti (CSV)';
-$lang['export_filtered']       = 'Esporta elenco utenti filtrati (CSV)';
-$lang['import']                = 'Importa nuovi utenti';
-$lang['line']                  = 'Linea numero';
-$lang['error']                 = 'Messaggio di errore';
-$lang['summary']               = 'Visualizzazione utenti %1$d-%2$d di %3$d trovati. %4$d utenti totali.';
-$lang['nonefound']             = 'Nessun utente trovato. %d utenti totali.';
-$lang['delete_ok']             = '%d utenti eliminati';
-$lang['delete_fail']           = 'Eliminazione %d fallita.';
-$lang['update_ok']             = 'Aggiornamento utente riuscito';
-$lang['update_fail']           = 'Aggiornamento utente fallito';
-$lang['update_exists']         = 'Modifica nome utente fallita, il nome utente specificato (%s) esiste già (qualunque altra modifica sarà  applicata).';
-$lang['start']                 = 'primo';
-$lang['prev']                  = 'precedente';
-$lang['next']                  = 'successivo';
-$lang['last']                  = 'ultimo';
-$lang['edit_usermissing']      = 'Utente selezionato non trovato, il nome utente specificato potrebbe essere stato eliminato o modificato altrove.';
-$lang['user_notify']           = 'Notifica utente';
-$lang['note_notify']           = 'Le email di notifica sono inviate soltanto se all\'utente è stata assegnata una nuova password.';
-$lang['note_group']            = 'Se non si specifica alcun gruppo, i nuovi utenti saranno aggiunti al gruppo predefinito (%s).';
-$lang['note_pass']             = 'La password verrà generata automaticamente qualora il campo di inserimento relativo venisse lasciato vuoto e le notifiche all\'utente fossero abilitate.';
-$lang['add_ok']                = 'Utente aggiunto correttamente';
-$lang['add_fail']              = 'Aggiunta utente fallita';
-$lang['notify_ok']             = 'Email di notifica inviata';
-$lang['notify_fail']           = 'L\'email di notifica non può essere inviata';
-$lang['import_userlistcsv']    = 'File lista utente (CSV):';
-$lang['import_header']         = 'Importazioni più recenti - Non riuscite';
-$lang['import_success_count']  = 'Importazione utenti: %d utenti trovati, %d utenti importati con successo.';
-$lang['import_failure_count']  = 'Importazione utenti: %d falliti. Errori riportati qui sotto.';
-$lang['import_error_fields']   = 'Campi insufficienti, trovati %d, richiesti 4.';
-$lang['import_error_baduserid'] = 'User-id non trovato';
-$lang['import_error_badname']  = 'Nome errato';
-$lang['import_error_badmail']  = 'Indirizzo email errato';
-$lang['import_error_upload']   = 'Importazione fallita. Il file CSV non può essere caricato, o è vuoto.';
-$lang['import_error_readfail'] = 'Importazione in errore. Impossibile leggere i file caricati.';
-$lang['import_error_create']   = 'Impossibile creare l\'utente';
-$lang['import_notify_fail']    = 'Non è stato possibile inviare un messaggio di notifica per l\'utente importato %s con e-mail %s.';
-$lang['import_downloadfailures'] = 'Scarica operazioni non riuscite come CSV per correzione';
-$lang['addUser_error_missing_pass'] = 'Imposta una password oppure attiva la notifica utente per abilitare la generazione password.';
-$lang['addUser_error_pass_not_identical'] = 'Le password inserite non sono identiche.';
-$lang['addUser_error_modPass_disabled'] = 'La modifica delle password è al momento disabilitata.';
-$lang['addUser_error_name_missing'] = 'Inserire un nome per il nuovo utente.';
-$lang['addUser_error_modName_disabled'] = 'La modifica dei nomi è al momento disabilitata.';
-$lang['addUser_error_mail_missing'] = 'Inserire un indirizzo e-mail per il nuovo utente.';
-$lang['addUser_error_modMail_disabled'] = 'La modifica degli indirizzi e-mail è al momento disabilitata.';
-$lang['addUser_error_create_event_failed'] = 'Un plugin ha impedito che il nuovo utente venisse aggiunto. Rivedere gli altri messaggi per maggiori informazioni.';
diff --git a/wiki/lib/plugins/usermanager/lang/it/list.txt b/wiki/lib/plugins/usermanager/lang/it/list.txt
deleted file mode 100644
index 91e27a9..0000000
--- a/wiki/lib/plugins/usermanager/lang/it/list.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Elenco Utenti =====
diff --git a/wiki/lib/plugins/usermanager/lang/ja/add.txt b/wiki/lib/plugins/usermanager/lang/ja/add.txt
deleted file mode 100644
index 87b30e0..0000000
--- a/wiki/lib/plugins/usermanager/lang/ja/add.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== ãƒ¦ãƒ¼ã‚¶ãƒ¼ä½œæˆ =====
diff --git a/wiki/lib/plugins/usermanager/lang/ja/delete.txt b/wiki/lib/plugins/usermanager/lang/ja/delete.txt
deleted file mode 100644
index 67ef23e..0000000
--- a/wiki/lib/plugins/usermanager/lang/ja/delete.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== ユーザー削除 =====
diff --git a/wiki/lib/plugins/usermanager/lang/ja/edit.txt b/wiki/lib/plugins/usermanager/lang/ja/edit.txt
deleted file mode 100644
index e7695e3..0000000
--- a/wiki/lib/plugins/usermanager/lang/ja/edit.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== ユーザー編集 =====
diff --git a/wiki/lib/plugins/usermanager/lang/ja/import.txt b/wiki/lib/plugins/usermanager/lang/ja/import.txt
deleted file mode 100644
index 4987df0..0000000
--- a/wiki/lib/plugins/usermanager/lang/ja/import.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-===== 一括ユーザーインãƒãƒ¼ãƒˆ =====
-
-å°‘ãªãã¨ã‚‚4列ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼CSVファイルãŒå¿…è¦ã§ã™ã€‚
-列ã®é †åºï¼š ユーザーIDã€ãƒ•ルãƒãƒ¼ãƒ ã€é›»å­ãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹ã€ã‚°ãƒ«ãƒ¼ãƒ—。
-CSVフィールドã¯ã‚«ãƒ³ãƒžï¼ˆ,ï¼‰åŒºåˆ‡ã‚Šã€æ–‡å­—列ã¯å¼•用符(%%""%%)区切りã§ã™ã€‚
-エスケープã«ãƒãƒƒã‚¯ã‚¹ãƒ©ãƒƒã‚·ãƒ¥ï¼ˆ\)を使用ã§ãã¾ã™ã€‚
-é©åˆ‡ãªãƒ•ァイル例ã¯ã€ä¸Šè¨˜ã®"エクスãƒãƒ¼ãƒˆãƒ¦ãƒ¼ã‚¶ãƒ¼"機能ã§è©¦ã—ã¦ä¸‹ã•ã„。 
-é‡è¤‡ã™ã‚‹ãƒ¦ãƒ¼ã‚¶ãƒ¼IDã¯ç„¡è¦–ã•れã¾ã™ã€‚
-
-正常ã«ã‚¤ãƒ³ãƒãƒ¼ãƒˆã•れãŸãƒ¦ãƒ¼ã‚¶ãƒ¼æ¯Žã«ã€ãƒ‘スワードを作æˆã—ã€é›»å­ãƒ¡ãƒ¼ãƒ«ã§é€ä»˜ã—ã¾ã™ã€‚
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/ja/intro.txt b/wiki/lib/plugins/usermanager/lang/ja/intro.txt
deleted file mode 100644
index 5dbe51c..0000000
--- a/wiki/lib/plugins/usermanager/lang/ja/intro.txt
+++ /dev/null
@@ -1 +0,0 @@
-====== ãƒ¦ãƒ¼ã‚¶ãƒ¼ç®¡ç† ======
diff --git a/wiki/lib/plugins/usermanager/lang/ja/lang.php b/wiki/lib/plugins/usermanager/lang/ja/lang.php
deleted file mode 100644
index 5c252bb..0000000
--- a/wiki/lib/plugins/usermanager/lang/ja/lang.php
+++ /dev/null
@@ -1,82 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Yuji Takenaka <webmaster@davilin.com>
- * @author Chris Smith <chris@jalakai.co.uk>
- * @author Ikuo Obataya <i.obataya@gmail.com>
- * @author Daniel Dupriest <kououken@gmail.com>
- * @author Kazutaka Miyasaka <kazmiya@gmail.com>
- * @author Taisuke Shimamoto <dentostar@gmail.com>
- * @author Satoshi Sahara <sahara.satoshi@gmail.com>
- * @author Hideaki SAWADA <sawadakun@live.jp>
- * @author Hideaki SAWADA <chuno@live.jp>
- */
-$lang['menu']                  = 'ユーザー管ç†';
-$lang['noauth']                = '(ユーザーèªè¨¼ãŒç„¡åйã§ã™ï¼‰';
-$lang['nosupport']             = '(ユーザー管ç†ã¯ã‚µãƒãƒ¼ãƒˆã•れã¦ã„ã¾ã›ã‚“)';
-$lang['badauth']               = 'èªè¨¼ã®ãƒ¡ã‚«ãƒ‹ã‚ºãƒ ãŒç„¡åйã§ã™';
-$lang['user_id']               = 'ユーザー';
-$lang['user_pass']             = 'パスワード';
-$lang['user_name']             = 'フルãƒãƒ¼ãƒ ';
-$lang['user_mail']             = 'メールアドレス';
-$lang['user_groups']           = 'グループ';
-$lang['field']                 = 'é …ç›®';
-$lang['value']                 = '値';
-$lang['add']                   = '追加';
-$lang['delete']                = '削除';
-$lang['delete_selected']       = 'é¸æŠžã—ãŸãƒ¦ãƒ¼ã‚¶ãƒ¼ã‚’削除';
-$lang['edit']                  = '編集';
-$lang['edit_prompt']           = 'ã“ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã‚’編集';
-$lang['modify']                = '変更をä¿å­˜';
-$lang['search']                = '検索';
-$lang['search_prompt']         = '検索を実行';
-$lang['clear']                 = '検索フィルターをリセット';
-$lang['filter']                = 'フィルター';
-$lang['export_all']            = '全ユーザーã®ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆï¼ˆCSV)';
-$lang['export_filtered']       = '抽出ã—ãŸãƒ¦ãƒ¼ã‚¶ãƒ¼ä¸€è¦§ã®ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆï¼ˆCSV)';
-$lang['import']                = 'æ–°è¦ãƒ¦ãƒ¼ã‚¶ãƒ¼ã®ã‚¤ãƒ³ãƒãƒ¼ãƒˆ';
-$lang['line']                  = '行番å·';
-$lang['error']                 = 'エラーメッセージ';
-$lang['summary']               = 'ユーザー %1$d-%2$d / %3$d, ç·ãƒ¦ãƒ¼ã‚¶ãƒ¼æ•° %4$d';
-$lang['nonefound']             = 'ユーザーãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“, ç·ãƒ¦ãƒ¼ã‚¶ãƒ¼æ•° %d';
-$lang['delete_ok']             = '%d ユーザーãŒå‰Šé™¤ã•れã¾ã—ãŸ';
-$lang['delete_fail']           = '%d ユーザーã®å‰Šé™¤ã«å¤±æ•—ã—ã¾ã—ãŸ';
-$lang['update_ok']             = 'ãƒ¦ãƒ¼ã‚¶ãƒ¼ã¯æ›´æ–°ã•れã¾ã—ãŸ';
-$lang['update_fail']           = 'ãƒ¦ãƒ¼ã‚¶ãƒ¼ã®æ›´æ–°ã«å¤±æ•—ã—ã¾ã—ãŸ';
-$lang['update_exists']         = 'ユーザーå(%sï¼‰ã¯æ—¢ã«å­˜åœ¨ã™ã‚‹ãŸã‚ã€ãƒ¦ãƒ¼ã‚¶ãƒ¼åã®å¤‰æ›´ã«å¤±æ•—ã—ã¾ã—ãŸï¼ˆãã®ä»–ã®é …ç›®ã¯å¤‰æ›´ã•れã¾ã—ãŸï¼‰ã€‚';
-$lang['start']                 = '最åˆ';
-$lang['prev']                  = 'å‰ã¸';
-$lang['next']                  = '次ã¸';
-$lang['last']                  = '最後';
-$lang['edit_usermissing']      = 'é¸æŠžã—ãŸãƒ¦ãƒ¼ã‚¶ãƒ¼ã¯è¦‹ã¤ã‹ã‚Šã¾ã›ã‚“。削除もã—ãã¯å¤‰æ›´ã•れãŸå¯èƒ½æ€§ãŒã‚りã¾ã™ã€‚';
-$lang['user_notify']           = 'ユーザーã«é€šçŸ¥ã™ã‚‹';
-$lang['note_notify']           = '通知メールã¯ã€ãƒ¦ãƒ¼ã‚¶ãƒ¼ã«æ–°ãŸãªãƒ‘スワードãŒè¨­å®šã•れãŸå ´åˆã®ã¿é€ä¿¡ã•れã¾ã™ã€‚';
-$lang['note_group']            = 'グループを指定ã—ãªã„å ´åˆã¯ã€æ—¢å®šã®ã‚°ãƒ«ãƒ¼ãƒ—(%s)ã«é…属ã•れã¾ã™ã€‚';
-$lang['note_pass']             = 'â€ãƒ¦ãƒ¼ã‚¶ãƒ¼ã«é€šçŸ¥ã™ã‚‹â€ã‚’ãƒã‚§ãƒƒã‚¯ã—ã¦ãƒ‘スワードを空欄ã«ã™ã‚‹ã¨ã€ãƒ‘スワードã¯è‡ªå‹•生æˆã•れã¾ã™ã€‚';
-$lang['add_ok']                = 'ユーザーを登録ã—ã¾ã—ãŸ';
-$lang['add_fail']              = 'ユーザーã®ç™»éŒ²ã«å¤±æ•—ã—ã¾ã—ãŸ';
-$lang['notify_ok']             = '通知メールをé€ä¿¡ã—ã¾ã—ãŸ';
-$lang['notify_fail']           = '通知メールをé€ä¿¡ã§ãã¾ã›ã‚“ã§ã—ãŸ';
-$lang['import_userlistcsv']    = 'ユーザー一覧ファイル(CSV):';
-$lang['import_header']         = '最新インãƒãƒ¼ãƒˆ - 失敗';
-$lang['import_success_count']  = 'ユーザーインãƒãƒ¼ãƒˆï¼šãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒ%dä»¶ã‚りã€%d件正常ã«ã‚¤ãƒ³ãƒãƒ¼ãƒˆã•れã¾ã—ãŸã€‚';
-$lang['import_failure_count']  = 'ユーザーインãƒãƒ¼ãƒˆï¼š%dä»¶ãŒå¤±æ•—ã—ã¾ã—ãŸã€‚å¤±æ•—ã¯æ¬¡ã®ã¨ãŠã‚Šã§ã™ã€‚';
-$lang['import_error_fields']   = '列ã®ä¸è¶³ï¼ˆï¼”列必è¦ï¼‰ãŒ%dä»¶ã‚りã¾ã—ãŸã€‚';
-$lang['import_error_baduserid'] = '欠è½ã—ãŸãƒ¦ãƒ¼ã‚¶ãƒ¼ID';
-$lang['import_error_badname']  = '䏿­£ãªãƒ•ルãƒãƒ¼ãƒ ';
-$lang['import_error_badmail']  = '䏿­£ãªé›»å­ãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹';
-$lang['import_error_upload']   = 'インãƒãƒ¼ãƒˆãŒå¤±æ•—ã—ã¾ã—ãŸã€‚CSVファイルをアップロードã§ããªã‹ã£ãŸã‹ã€ãƒ•ァイルãŒç©ºã§ã™ã€‚';
-$lang['import_error_readfail'] = 'インãƒãƒ¼ãƒˆãŒå¤±æ•—ã—ã¾ã—ãŸã€‚アップロードã•れãŸãƒ•ァイルãŒèª­è¾¼ã§ãã¾ã›ã‚“。';
-$lang['import_error_create']   = 'ユーザーãŒä½œæˆã§ãã¾ã›ã‚“。';
-$lang['import_notify_fail']    = '通知メッセージãŒã‚¤ãƒ³ãƒãƒ¼ãƒˆã•れãŸãƒ¦ãƒ¼ã‚¶ãƒ¼ï¼ˆ%s)・電å­ãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹ï¼ˆ%s)ã«é€ä¿¡ã§ãã¾ã›ã‚“ã§ã—ãŸã€‚';
-$lang['import_downloadfailures'] = '修正用ã«å¤±æ•—ã‚’ CSVファイルã¨ã—ã¦ãƒ€ã‚¦ãƒ³ãƒ­ãƒ¼ãƒ‰ã™ã‚‹ã€‚';
-$lang['addUser_error_missing_pass'] = 'パスワードを設定ã™ã‚‹ã‹ãƒ‘スワードã®è‡ªå‹•生æˆã§ãるよã†ã«ãƒ¦ãƒ¼ã‚¶ãƒ¼ã¸ã®é€šçŸ¥ã‚’有効ã«ã—ã¦ä¸‹ã•ã„。';
-$lang['addUser_error_pass_not_identical'] = '入力ã•れãŸãƒ‘スワードã¯åŒä¸€ã§ã¯ã‚りã¾ã›ã‚“。';
-$lang['addUser_error_modPass_disabled'] = 'パスワードã®å¤‰æ›´ã¯ç¾åœ¨ç„¡åйã«ãªã£ã¦ã„ã¾ã™ã€‚';
-$lang['addUser_error_name_missing'] = 'æ–°è¦ãƒ¦ãƒ¼ã‚¶ãƒ¼ã®ãƒ•ルãƒãƒ¼ãƒ ã‚’入力ã—ã¦ãã ã•ã„。';
-$lang['addUser_error_modName_disabled'] = 'フルãƒãƒ¼ãƒ ã®å¤‰æ›´ã¯ç¾åœ¨ç„¡åйã«ãªã£ã¦ã„ã¾ã™ã€‚';
-$lang['addUser_error_mail_missing'] = 'æ–°è¦ãƒ¦ãƒ¼ã‚¶ãƒ¼ã®ãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’入力ã—ã¦ãã ã•ã„。';
-$lang['addUser_error_modMail_disabled'] = 'メールアドレスã®å¤‰æ›´ã¯ç¾åœ¨ç„¡åйã«ãªã£ã¦ã„ã¾ã™ã€‚';
-$lang['addUser_error_create_event_failed'] = 'ãƒ—ãƒ©ã‚°ã‚¤ãƒ³ãŒæ–°è¦ãƒ¦ãƒ¼ã‚¶ãƒ¼ã®è¿½åŠ ã‚’æŠ‘æ­¢ã—ã¾ã—ãŸã€‚詳細ã«ã¤ã„ã¦ã¯ã€ä»–ã®ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã§ç¢ºèªã§ãã¾ã™ã€‚';
diff --git a/wiki/lib/plugins/usermanager/lang/ja/list.txt b/wiki/lib/plugins/usermanager/lang/ja/list.txt
deleted file mode 100644
index 182cc19..0000000
--- a/wiki/lib/plugins/usermanager/lang/ja/list.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== ユーザーリスト =====
diff --git a/wiki/lib/plugins/usermanager/lang/kk/lang.php b/wiki/lib/plugins/usermanager/lang/kk/lang.php
deleted file mode 100644
index b1bbd39..0000000
--- a/wiki/lib/plugins/usermanager/lang/kk/lang.php
+++ /dev/null
@@ -1,9 +0,0 @@
-<?php
-/**
- * kazakh language file
- *
- * @author Nurgozha Kaliaskarov astana08@gmail.com
- */
-$lang['user_id']               = 'Пайдаланушы';
-$lang['user_pass']             = 'Шартты белгi';
-$lang['user_mail']             = 'E-mail';
diff --git a/wiki/lib/plugins/usermanager/lang/ko/add.txt b/wiki/lib/plugins/usermanager/lang/ko/add.txt
deleted file mode 100644
index 845d809..0000000
--- a/wiki/lib/plugins/usermanager/lang/ko/add.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== ì‚¬ìš©ìž ì¶”ê°€ =====
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/ko/delete.txt b/wiki/lib/plugins/usermanager/lang/ko/delete.txt
deleted file mode 100644
index 52b8209..0000000
--- a/wiki/lib/plugins/usermanager/lang/ko/delete.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== ì‚¬ìš©ìž ì‚­ì œ =====
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/ko/edit.txt b/wiki/lib/plugins/usermanager/lang/ko/edit.txt
deleted file mode 100644
index 0b35cd7..0000000
--- a/wiki/lib/plugins/usermanager/lang/ko/edit.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== ì‚¬ìš©ìž íŽ¸ì§‘ =====
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/ko/import.txt b/wiki/lib/plugins/usermanager/lang/ko/import.txt
deleted file mode 100644
index b5801e6..0000000
--- a/wiki/lib/plugins/usermanager/lang/ko/import.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-===== 대량 ì‚¬ìš©ìž ê°€ì ¸ì˜¤ê¸° =====
-
-ì ì–´ë„ ì—´ 네 개가 있는 사용ìžì˜ CSV 파ì¼ì´ 필요합니다.
-ì—´ì€ ë‹¤ìŒê³¼ ê°™ì´ í¬í•¨í•´ì•¼ 합니다: ì‚¬ìš©ìž ID, 실명, ì´ë©”ì¼ ì£¼ì†Œì™€ 그룹.
-CSV 필드는 ì¸ìš© 부호(%%""%%)로 쉼표(,)와 êµ¬ë¶„ëœ ë¬¸ìžì—´ë¡œ 구분해야 합니다. 백슬래시(\)는 íƒˆì¶œì— ì‚¬ìš©í•  수 있습니다.
-ì ì ˆí•œ 파ì¼ì˜ 예를 들어, ìœ„ì˜ "ì‚¬ìš©ìž ëª©ë¡ ë‚´ë³´ë‚´ê¸°"를 시ë„하세요.
-ì¤‘ë³µëœ ì‚¬ìš©ìž ID는 무시ë©ë‹ˆë‹¤.
-
-비밀번호는 ìƒì„±ë˜ê³  ê° ì„±ê³µì ìœ¼ë¡œ 가져온 사용ìžì—게 ì´ë©”ì¼ë¡œ 보내집니다.
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/ko/intro.txt b/wiki/lib/plugins/usermanager/lang/ko/intro.txt
deleted file mode 100644
index 2ce85f1..0000000
--- a/wiki/lib/plugins/usermanager/lang/ko/intro.txt
+++ /dev/null
@@ -1 +0,0 @@
-====== ì‚¬ìš©ìž ê´€ë¦¬ìž ======
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/ko/lang.php b/wiki/lib/plugins/usermanager/lang/ko/lang.php
deleted file mode 100644
index 27d07de..0000000
--- a/wiki/lib/plugins/usermanager/lang/ko/lang.php
+++ /dev/null
@@ -1,81 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author jk Lee
- * @author dongnak <dongnak@gmail.com>
- * @author Song Younghwan <purluno@gmail.com>
- * @author Seung-Chul Yoo <dryoo@live.com>
- * @author erial2 <erial2@gmail.com>
- * @author Myeongjin <aranet100@gmail.com>
- * @author Gerrit Uitslag <klapinklapin@gmail.com>
- * @author Garam <rowain8@gmail.com>
- */
-$lang['menu']                  = 'ì‚¬ìš©ìž ê´€ë¦¬ìž';
-$lang['noauth']                = '(ì‚¬ìš©ìž ì¸ì¦ì„ 사용할 수 없습니다)';
-$lang['nosupport']             = '(ì‚¬ìš©ìž ê´€ë¦¬ê°€ ì§€ì›ë˜ì§€ 않습니다)';
-$lang['badauth']               = 'ì¸ì¦ ë©”ì»¤ë‹ˆì¦˜ì´ ìž˜ëª»ë˜ì—ˆìŠµë‹ˆë‹¤';
-$lang['user_id']               = '사용ìž';
-$lang['user_pass']             = '비밀번호';
-$lang['user_name']             = '실명';
-$lang['user_mail']             = 'ì´ë©”ì¼ ';
-$lang['user_groups']           = '그룹';
-$lang['field']                 = '항목';
-$lang['value']                 = 'ê°’';
-$lang['add']                   = '추가';
-$lang['delete']                = '삭제';
-$lang['delete_selected']       = 'ì„ íƒ ì‚­ì œ';
-$lang['edit']                  = '편집';
-$lang['edit_prompt']           = 'ì´ ì‚¬ìš©ìž íŽ¸ì§‘';
-$lang['modify']                = '바뀜 저장';
-$lang['search']                = '검색';
-$lang['search_prompt']         = '검색 수행';
-$lang['clear']                 = '검색 필터 재설정';
-$lang['filter']                = 'í•„í„°';
-$lang['export_all']            = '모든 ì‚¬ìš©ìž ëª©ë¡ ë‚´ë³´ë‚´ê¸° (CSV)';
-$lang['export_filtered']       = 'í•„í„°ëœ ì‚¬ìš©ìž ëª©ë¡ ë‚´ë³´ë‚´ê¸° (CSV)';
-$lang['import']                = '새 ì‚¬ìš©ìž ê°€ì ¸ì˜¤ê¸°';
-$lang['line']                  = '줄 번호';
-$lang['error']                 = '오류 메시지';
-$lang['summary']               = 'ì°¾ì€ ì‚¬ìš©ìž %3$d명 중 %1$d-%2$dì„(를) 봅니다. ì „ì²´ 사용ìžëŠ” %4$d명입니다.';
-$lang['nonefound']             = 'ì°¾ì€ ì‚¬ìš©ìžê°€ 없습니다. ì „ì²´ 사용ìžëŠ” %d명입니다.';
-$lang['delete_ok']             = 'ì‚¬ìš©ìž %dëª…ì´ ì‚­ì œë˜ì—ˆìŠµë‹ˆë‹¤';
-$lang['delete_fail']           = 'ì‚¬ìš©ìž %dëª…ì„ ì‚­ì œí•˜ëŠ” ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤.';
-$lang['update_ok']             = 'ì‚¬ìš©ìž ì •ë³´ë¥¼ 성공ì ìœ¼ë¡œ 바꾸었습니다';
-$lang['update_fail']           = 'ì‚¬ìš©ìž ì •ë³´ë¥¼ ì—…ë°ì´íŠ¸í•˜ëŠ” ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤';
-$lang['update_exists']         = 'ì‚¬ìš©ìž ì´ë¦„ì„ ë°”ê¾¸ëŠ” ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤. ì‚¬ìš©ìž ì´ë¦„(%s)ì´ ì´ë¯¸ 존재합니다. (다른 í•­ëª©ì˜ ë°”ë€œì€ ì ìš©ë©ë‹ˆë‹¤)';
-$lang['start']                 = '시작';
-$lang['prev']                  = 'ì´ì „';
-$lang['next']                  = '다ìŒ';
-$lang['last']                  = '마지막';
-$lang['edit_usermissing']      = 'ì„ íƒëœ 사용ìžë¥¼ ì°¾ì„ ìˆ˜ 없습니다, ì‚¬ìš©ìž ì´ë¦„ì´ ì‚­ì œë˜ê±°ë‚˜ ë°”ë€Œì—ˆì„ ìˆ˜ë„ ìžˆìŠµë‹ˆë‹¤.';
-$lang['user_notify']           = '사용ìžì—게 알림';
-$lang['note_notify']           = '사용ìžì—게 새로운 비밀번호를 준 경우ì—ë§Œ 알림 ì´ë©”ì¼ì´ 보내집니다.';
-$lang['note_group']            = '새로운 사용ìžëŠ” ì–´ë–¤ ê·¸ë£¹ë„ ì„¤ì •í•˜ì§€ ì•Šì€ ê²½ìš°ì— ê¸°ë³¸ 그룹(%s)ì— ì¶”ê°€ë©ë‹ˆë‹¤.';
-$lang['note_pass']             = 'ì‚¬ìš©ìž ì•Œë¦¼ì´ ì§€ì •ë˜ì–´ ìžˆì„ ë•Œ í•„ë“œì— ì•„ë¬´ ê°’ë„ ìž…ë ¥í•˜ì§€ 않으면 비밀번호가 ìžë™ìœ¼ë¡œ ìƒì„±ë©ë‹ˆë‹¤.';
-$lang['add_ok']                = '사용ìžë¥¼ 성공ì ìœ¼ë¡œ 추가했습니다';
-$lang['add_fail']              = 'ì‚¬ìš©ìž ì¶”ê°€ë¥¼ 실패했습니다';
-$lang['notify_ok']             = '알림 ì´ë©”ì¼ì„ 성공ì ìœ¼ë¡œ 보냈습니다';
-$lang['notify_fail']           = '알림 ì´ë©”ì¼ì„ 보낼 수 없습니다';
-$lang['import_userlistcsv']    = 'ì‚¬ìš©ìž ëª©ë¡ íŒŒì¼ (CSV):';
-$lang['import_header']         = '가장 최근 가져오기 - 실패';
-$lang['import_success_count']  = 'ì‚¬ìš©ìž ê°€ì ¸ì˜¤ê¸°: ì‚¬ìš©ìž %dëª…ì„ ì°¾ì•˜ê³ , %dëª…ì„ ì„±ê³µì ìœ¼ë¡œ 가져왔습니다.';
-$lang['import_failure_count']  = 'ì‚¬ìš©ìž ê°€ì ¸ì˜¤ê¸°: %dëª…ì„ ê°€ì ¸ì˜¤ì§€ 못했습니다. 실패는 ì•„ëž˜ì— ë‚˜íƒ€ë‚˜ 있습니다.';
-$lang['import_error_fields']   = '충분하지 ì•Šì€ í•„ë“œë¡œ, %d개를 찾았고, 4개가 필요합니다.';
-$lang['import_error_baduserid'] = 'ì‚¬ìš©ìž ID ì—†ìŒ';
-$lang['import_error_badname']  = 'ìž˜ëª»ëœ ì´ë¦„';
-$lang['import_error_badmail']  = 'ìž˜ëª»ëœ ì´ë©”ì¼ ì£¼ì†Œ';
-$lang['import_error_upload']   = '가져오기를 실패했습니다. CSV 파ì¼ì„ 올릴 수 없거나 비어 있습니다.';
-$lang['import_error_readfail'] = '가져오기를 실패했습니다. 올린 파ì¼ì„ ì½ì„ 수 없습니다.';
-$lang['import_error_create']   = '사용ìžë¥¼ 만들 수 없습니다';
-$lang['import_notify_fail']    = '알림 메시지를 가져온 %s (ì´ë©”ì¼: %s) 사용ìžì—게 보낼 수 없습니다.';
-$lang['import_downloadfailures'] = 'êµì •ì„ ìœ„í•œ CSV로 다운로드 실패';
-$lang['addUser_error_missing_pass'] = '비밀번호를 설정하거나 비밀번호 ìƒì„±ì„ 활성화하려면 ì‚¬ìš©ìž ì•Œë¦¼ì„ í™œì„±í™”í•´ì£¼ì‹œê¸° ë°”ëžë‹ˆë‹¤.';
-$lang['addUser_error_pass_not_identical'] = 'ìž…ë ¥ëœ ë¹„ë°€ë²ˆí˜¸ê°€ ì¼ì¹˜í•˜ì§€ 않습니다.';
-$lang['addUser_error_modPass_disabled'] = '비밀번호를 수정하는 ê²ƒì€ í˜„ìž¬ 비활성화ë˜ì–´ 있습니다.';
-$lang['addUser_error_name_missing'] = '새 사용ìžì˜ ì´ë¦„ì„ ìž…ë ¥í•˜ì„¸ìš”.';
-$lang['addUser_error_modName_disabled'] = 'ì´ë¦„ì„ ìˆ˜ì •í•˜ëŠ” ê²ƒì€ í˜„ìž¬ 비활성화ë˜ì–´ 있습니다.';
-$lang['addUser_error_mail_missing'] = '새 사용ìžì˜ ì´ë©”ì¼ ì£¼ì†Œë¥¼ 입력하세요.';
-$lang['addUser_error_modMail_disabled'] = 'ì´ë©”ì¼ ì£¼ì†Œë¥¼ 수정하는 ê²ƒì€ í˜„ìž¬ 비활성화ë˜ì–´ 있습니다.';
-$lang['addUser_error_create_event_failed'] = '플러그ì¸ì´ 새 사용ìžê°€ 추가ë˜ëŠ” ê²ƒì„ ë§‰ì•˜ìŠµë‹ˆë‹¤. ìžì„¸í•œ ì •ë³´ì— ëŒ€í•´ì„œëŠ” 가능한 다른 메시지를 검토하세요.';
diff --git a/wiki/lib/plugins/usermanager/lang/ko/list.txt b/wiki/lib/plugins/usermanager/lang/ko/list.txt
deleted file mode 100644
index 2a1b45b..0000000
--- a/wiki/lib/plugins/usermanager/lang/ko/list.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== ì‚¬ìš©ìž ëª©ë¡ =====
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/la/add.txt b/wiki/lib/plugins/usermanager/lang/la/add.txt
deleted file mode 100644
index beb797c..0000000
--- a/wiki/lib/plugins/usermanager/lang/la/add.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Sodalem addere =====
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/la/delete.txt b/wiki/lib/plugins/usermanager/lang/la/delete.txt
deleted file mode 100644
index 1eb5e1f..0000000
--- a/wiki/lib/plugins/usermanager/lang/la/delete.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Sodalem delere =====
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/la/edit.txt b/wiki/lib/plugins/usermanager/lang/la/edit.txt
deleted file mode 100644
index 4e3d3b2..0000000
--- a/wiki/lib/plugins/usermanager/lang/la/edit.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Sodalem recensere =====
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/la/intro.txt b/wiki/lib/plugins/usermanager/lang/la/intro.txt
deleted file mode 100644
index 7f5c011..0000000
--- a/wiki/lib/plugins/usermanager/lang/la/intro.txt
+++ /dev/null
@@ -1 +0,0 @@
-====== Sodalis Tabella ======
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/la/lang.php b/wiki/lib/plugins/usermanager/lang/la/lang.php
deleted file mode 100644
index 52c8487..0000000
--- a/wiki/lib/plugins/usermanager/lang/la/lang.php
+++ /dev/null
@@ -1,47 +0,0 @@
-<?php
-/**
- * Latin language file
- *
- * @author Massimiliano Vassalli <vassalli.max@gmail.com>
- */
-$lang['menu']                  = 'Sodalis Tabella';
-$lang['noauth']                = '(Sodalis confirmatio deest)';
-$lang['nosupport']             = '(Sodalis administratio deest)';
-$lang['badauth']               = 'Confirmatio fieri non potest.';
-$lang['user_id']               = 'Sodalis';
-$lang['user_pass']             = 'Tessera';
-$lang['user_name']             = 'Nomen uerum';
-$lang['user_mail']             = 'Cursus Interretialis';
-$lang['user_groups']           = 'Grex';
-$lang['field']                 = 'Campus';
-$lang['value']                 = 'Vis';
-$lang['add']                   = 'Addere';
-$lang['delete']                = 'Delere';
-$lang['delete_selected']       = 'Electa delere';
-$lang['edit']                  = 'Recensere';
-$lang['edit_prompt']           = 'Sodalem recensere';
-$lang['modify']                = 'Mutata seruare';
-$lang['search']                = 'Quaerere';
-$lang['search_prompt']         = 'Agentem quaerere';
-$lang['clear']                 = 'Colum quaerendi abrogare';
-$lang['filter']                = 'Colum';
-$lang['summary']               = 'Sodales %1$d-%2$d inter %3$d ostenduntur. Numerus Sodalium. %4$d.';
-$lang['nonefound']             = 'Sodalis non repertus. Numerus sodalium: %d';
-$lang['delete_ok']             = '%d Sodales delentur.';
-$lang['delete_fail']           = '%d non deleri possunt.';
-$lang['update_ok']             = 'Sodalis feliciter nouatus\a';
-$lang['update_fail']           = 'Sodalis infeliciter nouatus\a';
-$lang['update_exists']         = 'Nomen Sodalis non mutatur, eo quod hoc nomen (%s) iam electum est.';
-$lang['start']                 = 'in primis';
-$lang['prev']                  = 'antea';
-$lang['next']                  = 'postea';
-$lang['last']                  = 'in extremis';
-$lang['edit_usermissing']      = 'Hic Sodalis non inuenitur, eo quod nomen iam deletum uel mutatum est.';
-$lang['user_notify']           = 'Sodalem adnotare';
-$lang['note_notify']           = 'Adnotationes cursu interretiali missae solum si noua tessera petitur.';
-$lang['note_group']            = 'Noui\ae Sodales communi Gregi adduntur (%s) si Grex non elegitur.';
-$lang['note_pass']             = 'Tessera non generata nisi campus uacuos est et Sodalis adnotationes aptae faciuntur.';
-$lang['add_ok']                = 'Sodalis feliciter additur.';
-$lang['add_fail']              = 'Sodalis infeliciter additur.';
-$lang['notify_ok']             = 'Adnotationes cursu interretiali missae';
-$lang['notify_fail']           = 'Adnotationes cursu interretiali non missae';
diff --git a/wiki/lib/plugins/usermanager/lang/la/list.txt b/wiki/lib/plugins/usermanager/lang/la/list.txt
deleted file mode 100644
index b470d2e..0000000
--- a/wiki/lib/plugins/usermanager/lang/la/list.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Sodalis index =====
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/lb/list.txt b/wiki/lib/plugins/usermanager/lang/lb/list.txt
deleted file mode 100644
index 022afe8..0000000
--- a/wiki/lib/plugins/usermanager/lang/lb/list.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Benotzerlëscht =====
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/lt/add.txt b/wiki/lib/plugins/usermanager/lang/lt/add.txt
deleted file mode 100644
index 32681ad..0000000
--- a/wiki/lib/plugins/usermanager/lang/lt/add.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-===== PridÄ—ti vartotojÄ… =====
-
diff --git a/wiki/lib/plugins/usermanager/lang/lt/delete.txt b/wiki/lib/plugins/usermanager/lang/lt/delete.txt
deleted file mode 100644
index 262713c..0000000
--- a/wiki/lib/plugins/usermanager/lang/lt/delete.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-===== Ištrinti vartotoją =====
-
diff --git a/wiki/lib/plugins/usermanager/lang/lt/edit.txt b/wiki/lib/plugins/usermanager/lang/lt/edit.txt
deleted file mode 100644
index da57ea3..0000000
--- a/wiki/lib/plugins/usermanager/lang/lt/edit.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-===== Redaguoti vartotojÄ… =====
-
diff --git a/wiki/lib/plugins/usermanager/lang/lt/intro.txt b/wiki/lib/plugins/usermanager/lang/lt/intro.txt
deleted file mode 100644
index 61f80d5..0000000
--- a/wiki/lib/plugins/usermanager/lang/lt/intro.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-====== Vartotojų administravimas ======
-
diff --git a/wiki/lib/plugins/usermanager/lang/lt/lang.php b/wiki/lib/plugins/usermanager/lang/lt/lang.php
deleted file mode 100644
index 3c00293..0000000
--- a/wiki/lib/plugins/usermanager/lang/lt/lang.php
+++ /dev/null
@@ -1,49 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author grawity <grawity@gmail.com>
- * @author audrius.klevas@gmail.com
- * @author Arunas Vaitekunas <aras@fan.lt>
- */
-$lang['menu']                  = 'Vartotojų administravimas';
-$lang['noauth']                = '(vartotojų autentifikacija neprieinama)';
-$lang['nosupport']             = '(vartotojų administravimas nepalaikomas)';
-$lang['badauth']               = 'neteisingas autentifikacijos būdas';
-$lang['user_id']               = 'Vartotojas';
-$lang['user_pass']             = 'Slaptažodis';
-$lang['user_name']             = 'Vardas';
-$lang['user_mail']             = 'El.paštas';
-$lang['user_groups']           = 'GrupÄ—s';
-$lang['field']                 = 'Laukas';
-$lang['value']                 = 'Turinys';
-$lang['add']                   = 'PridÄ—ti';
-$lang['delete']                = 'Pašalinti';
-$lang['delete_selected']       = 'Pašalinti pažymėtus';
-$lang['edit']                  = 'Redaguoti';
-$lang['edit_prompt']           = 'Redaguoti šį vartotoją';
-$lang['modify']                = 'Išsaugoti';
-$lang['search']                = 'Paieška';
-$lang['search_prompt']         = 'Ieškoti';
-$lang['clear']                 = 'Panaikinti filtrÄ…';
-$lang['filter']                = 'Filtras';
-$lang['summary']               = 'Rodomi vartotojai %1$d-%2$d iš %3$d rastų. Iš viso %4$d vartotojų.';
-$lang['nonefound']             = 'Vartotojų nerasta. Iš viso %d vartotojų.';
-$lang['delete_ok']             = 'Pašalinta %d vartotojų';
-$lang['delete_fail']           = '%d nepavyko pašalinti.';
-$lang['update_ok']             = 'Vartotojas sÄ—kmingai pakeistas';
-$lang['update_fail']           = 'Vartotojo pakeitimas nepavyko';
-$lang['update_exists']         = 'Vartotojo vardo pakeitimas nepavyko, nes nurodytas vartotojo vardas (%s) jau yra (kiti pakeitimai įvykdyti).';
-$lang['start']                 = 'pradžia';
-$lang['prev']                  = 'atgal';
-$lang['next']                  = 'pirmyn';
-$lang['last']                  = 'pabaiga';
-$lang['edit_usermissing']      = 'Pasirinktas vartotojas nerastas, nurodytas vartotojo vardas galėjo būti pašalintas ar pakeistas kitur.';
-$lang['user_notify']           = 'Įspėti vartotoją';
-$lang['note_notify']           = 'Ä®spÄ—jimas siunÄiamas tik tada, kai vartotojui priskiriamas naujas slaptažodis.';
-$lang['note_group']            = 'Jei grupė nenurodyta, nauji vartotojai pridedami į pagrindinę grupę (%s).';
-$lang['add_ok']                = 'Vartotojas sÄ—kmingai pridÄ—tas';
-$lang['add_fail']              = 'Vartotojo pridÄ—jimas nepavyko';
-$lang['notify_ok']             = 'Įspėjimo el.laiškas išsiųstas';
-$lang['notify_fail']           = 'Įspėjimo el.laiško išsiųsti nepavyko';
diff --git a/wiki/lib/plugins/usermanager/lang/lt/list.txt b/wiki/lib/plugins/usermanager/lang/lt/list.txt
deleted file mode 100644
index 87be628..0000000
--- a/wiki/lib/plugins/usermanager/lang/lt/list.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-===== Vartotojų sąrašas =====
-
diff --git a/wiki/lib/plugins/usermanager/lang/lv/add.txt b/wiki/lib/plugins/usermanager/lang/lv/add.txt
deleted file mode 100644
index 06fd700..0000000
--- a/wiki/lib/plugins/usermanager/lang/lv/add.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Pievienot lietotÄju =====
diff --git a/wiki/lib/plugins/usermanager/lang/lv/delete.txt b/wiki/lib/plugins/usermanager/lang/lv/delete.txt
deleted file mode 100644
index 5f59af7..0000000
--- a/wiki/lib/plugins/usermanager/lang/lv/delete.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== DzÄ“st lietotÄju =====
diff --git a/wiki/lib/plugins/usermanager/lang/lv/edit.txt b/wiki/lib/plugins/usermanager/lang/lv/edit.txt
deleted file mode 100644
index efb0b04..0000000
--- a/wiki/lib/plugins/usermanager/lang/lv/edit.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Labot lietotÄju =====
diff --git a/wiki/lib/plugins/usermanager/lang/lv/import.txt b/wiki/lib/plugins/usermanager/lang/lv/import.txt
deleted file mode 100644
index 0006ae8..0000000
--- a/wiki/lib/plugins/usermanager/lang/lv/import.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-===== Masveida lietotÄju imports =====
-
-Vajag CSV failu ar vismaz ÄetrÄm lietotÄju datu kolonÄm Å¡ÄdÄ secÄ«bÄ: identifikators, pilns vÄrds, e-pasta adrese un grupas. 
-
-CSV lauki jÄatdala ar komatiem (,) un virknes — ar pÄ“diņÄm (%%""%%). Backslash (\) can be used for escaping. 
-DerÄ«ga faila paraugam izmantojiem augtÄk redzamo "LietotÄju eksportu".  
-Dublētus identifikatorus ignorēs. 
-
-Paroli katram veiksmÄ«gi importÄ“tajam lietotÄjam izveidos un nosÅ«tÄ«s pa e-pastu.
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/lv/intro.txt b/wiki/lib/plugins/usermanager/lang/lv/intro.txt
deleted file mode 100644
index b248ddc..0000000
--- a/wiki/lib/plugins/usermanager/lang/lv/intro.txt
+++ /dev/null
@@ -1 +0,0 @@
-====== LietotÄju pÄrvaldnieks ======
diff --git a/wiki/lib/plugins/usermanager/lang/lv/lang.php b/wiki/lib/plugins/usermanager/lang/lv/lang.php
deleted file mode 100644
index bb11056..0000000
--- a/wiki/lib/plugins/usermanager/lang/lv/lang.php
+++ /dev/null
@@ -1,48 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Aivars Miška <allefm@gmail.lv>
- */
-$lang['menu']                  = 'LietotÄju pÄrvaldnieks';
-$lang['noauth']                = '(lietotÄju autentifikÄcijas nav)';
-$lang['nosupport']             = '(lietotÄju pÄrvaldÄ«ba netiek uzturÄ“ta)';
-$lang['badauth']               = 'nederÄ«gs autentifikÄcijas mehÄnisms';
-$lang['user_id']               = 'LietotÄjs';
-$lang['user_pass']             = 'Parole';
-$lang['user_name']             = 'VÄrds/uzvÄrds';
-$lang['user_mail']             = 'Epasts';
-$lang['user_groups']           = 'Grupas';
-$lang['field']                 = 'Lauks';
-$lang['value']                 = 'Vērtība';
-$lang['add']                   = 'Pielikt';
-$lang['delete']                = 'Dzēst';
-$lang['delete_selected']       = 'Dzēst izvēlēto';
-$lang['edit']                  = 'Labot';
-$lang['edit_prompt']           = 'Labot Å¡o lietotÄju';
-$lang['modify']                = 'SaglabÄt izmaiņas';
-$lang['search']                = 'Meklēšana';
-$lang['search_prompt']         = 'Meklēt';
-$lang['clear']                 = 'Noņemt meklēšanas filtru';
-$lang['filter']                = 'Filtrs';
-$lang['summary']               = 'LietotÄji %1$d.- %2$d. no %3$d atrastajiem. Pavisam %4$d lietotÄji.';
-$lang['nonefound']             = 'Neviens nav atrasts. Pavisam %d lietotÄju.';
-$lang['delete_ok']             = 'DzÄ“sti %d lietotÄji';
-$lang['delete_fail']           = '%d neizdevÄs izdzÄ“st.';
-$lang['update_ok']             = 'LietotÄja dati saglabÄti';
-$lang['update_fail']           = 'LietotÄja dati nav saglabÄti';
-$lang['update_exists']         = 'LietotÄja vÄrds nav nomainÄ«ts, norÄdÄ«to vÄrdu (%s) kÄds jau izmanto (pÄrÄ“jÄs izmaiņas tiks saglabÄtas).';
-$lang['start']                 = 'sÄkums';
-$lang['prev']                  = 'iepriekšējais';
-$lang['next']                  = 'nÄkamais';
-$lang['last']                  = 'pēdējais';
-$lang['edit_usermissing']      = 'NorÄdÄ«tais lietotÄjs nav atrasts, varbÅ«t tas ir dzÄ“st vai mainÄ«ts citur.';
-$lang['user_notify']           = 'Paziņot lietotÄjam';
-$lang['note_notify']           = 'Paziņojumus izsÅ«ta tikai tad, ja lietotÄjam dod jaunu paroli.';
-$lang['note_group']            = 'Ja nenorÄda grupu, lietotÄju pievieno noklusÄ“tajai grupai (%s).';
-$lang['note_pass']             = 'Ja paroles lauku atstÄj tukÅ¡u un atzÄ«mÄ“ paziņoÅ¡anu lietotÄjam, parole tiks Ä£enerÄ“ta automÄtiski.';
-$lang['add_ok']                = 'LietotÄjs veiksmÄ«gi pievienots';
-$lang['add_fail']              = 'LietotÄjs nav pievienots.';
-$lang['notify_ok']             = 'Paziņojums izsūtīts.';
-$lang['notify_fail']           = 'Nevar izsūtīt paziņojumu.';
diff --git a/wiki/lib/plugins/usermanager/lang/lv/list.txt b/wiki/lib/plugins/usermanager/lang/lv/list.txt
deleted file mode 100644
index 44a10d9..0000000
--- a/wiki/lib/plugins/usermanager/lang/lv/list.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== LietotÄju saraksts =====
diff --git a/wiki/lib/plugins/usermanager/lang/mk/add.txt b/wiki/lib/plugins/usermanager/lang/mk/add.txt
deleted file mode 100644
index c90121d..0000000
--- a/wiki/lib/plugins/usermanager/lang/mk/add.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Додај кориÑник =====
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/mk/delete.txt b/wiki/lib/plugins/usermanager/lang/mk/delete.txt
deleted file mode 100644
index 8a6b5e9..0000000
--- a/wiki/lib/plugins/usermanager/lang/mk/delete.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Избриши кориÑник =====
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/mk/edit.txt b/wiki/lib/plugins/usermanager/lang/mk/edit.txt
deleted file mode 100644
index da63061..0000000
--- a/wiki/lib/plugins/usermanager/lang/mk/edit.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Уреди кориÑник =====
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/mk/intro.txt b/wiki/lib/plugins/usermanager/lang/mk/intro.txt
deleted file mode 100644
index 747d009..0000000
--- a/wiki/lib/plugins/usermanager/lang/mk/intro.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Менаџер за кориÑник =====
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/mk/lang.php b/wiki/lib/plugins/usermanager/lang/mk/lang.php
deleted file mode 100644
index 97ef513..0000000
--- a/wiki/lib/plugins/usermanager/lang/mk/lang.php
+++ /dev/null
@@ -1,38 +0,0 @@
-<?php
-/**
- * Macedonian language file
- *
- * @author Dimitar Talevski <dimi3.14@gmail.com>
- */
-$lang['menu']                  = 'Менаџер за кориÑник';
-$lang['noauth']                = '(автентикација на кориÑник не е доÑтапна)';
-$lang['nosupport']             = '(менаџирање на кориÑник не е поддржано)';
-$lang['badauth']               = 'невалиден механизам за автентикација';
-$lang['user_id']               = 'КориÑник';
-$lang['user_pass']             = 'Лозинка';
-$lang['user_name']             = 'ВиÑтинÑко име';
-$lang['user_mail']             = 'Е-пошта';
-$lang['user_groups']           = 'Групи';
-$lang['field']                 = 'Поле';
-$lang['value']                 = 'ВредноÑÑ‚';
-$lang['add']                   = 'Додај';
-$lang['delete']                = 'Избриши';
-$lang['delete_selected']       = 'Избриши ги избраните';
-$lang['edit']                  = 'Уреди';
-$lang['edit_prompt']           = 'Уреди го овој кориÑник';
-$lang['modify']                = 'Зачувај промени';
-$lang['search']                = 'Барај';
-$lang['search_prompt']         = 'Изврши пребарување';
-$lang['clear']                 = 'РеÑетирај го филтерот за пребарување';
-$lang['filter']                = 'Филтер';
-$lang['delete_ok']             = '%d кориÑници Ñе избришани';
-$lang['delete_fail']           = '%d не уÑпееја да Ñе избришат.';
-$lang['update_ok']             = 'КориÑникот е уÑпешно ажуриран';
-$lang['update_fail']           = 'КориÑникот не е уÑпешно ажуриран';
-$lang['start']                 = 'почеток';
-$lang['prev']                  = 'претходна';
-$lang['next']                  = 'Ñледна';
-$lang['last']                  = 'поÑледна';
-$lang['user_notify']           = 'ИзвеÑти го кориÑникот';
-$lang['add_ok']                = 'КориÑникот е уÑпешно додаден';
-$lang['add_fail']              = 'Додавањето на кориÑникот не е уÑпешно';
diff --git a/wiki/lib/plugins/usermanager/lang/mk/list.txt b/wiki/lib/plugins/usermanager/lang/mk/list.txt
deleted file mode 100644
index 651462e..0000000
--- a/wiki/lib/plugins/usermanager/lang/mk/list.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== ЛиÑта Ñо кориÑници =====
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/mr/add.txt b/wiki/lib/plugins/usermanager/lang/mr/add.txt
deleted file mode 100644
index fc3a877..0000000
--- a/wiki/lib/plugins/usermanager/lang/mr/add.txt
+++ /dev/null
@@ -1 +0,0 @@
-====== सदसà¥à¤¯ नोंद करा ======
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/mr/delete.txt b/wiki/lib/plugins/usermanager/lang/mr/delete.txt
deleted file mode 100644
index cf0e485..0000000
--- a/wiki/lib/plugins/usermanager/lang/mr/delete.txt
+++ /dev/null
@@ -1 +0,0 @@
-====== सदसà¥à¤¯ डिलीट करा ======
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/mr/edit.txt b/wiki/lib/plugins/usermanager/lang/mr/edit.txt
deleted file mode 100644
index 2d3d649..0000000
--- a/wiki/lib/plugins/usermanager/lang/mr/edit.txt
+++ /dev/null
@@ -1 +0,0 @@
-====== सदसà¥à¤¯ बदला ======
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/mr/intro.txt b/wiki/lib/plugins/usermanager/lang/mr/intro.txt
deleted file mode 100644
index 9253b32..0000000
--- a/wiki/lib/plugins/usermanager/lang/mr/intro.txt
+++ /dev/null
@@ -1 +0,0 @@
-====== सदसà¥à¤¯ वà¥à¤¯à¤µà¤¸à¥à¤¥à¤¾à¤ªà¤• ======
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/mr/lang.php b/wiki/lib/plugins/usermanager/lang/mr/lang.php
deleted file mode 100644
index 8915678..0000000
--- a/wiki/lib/plugins/usermanager/lang/mr/lang.php
+++ /dev/null
@@ -1,50 +0,0 @@
-<?php
-/**
- * Marathi language file
- *
- * @author ghatothkach@hotmail.com
- * @author Padmanabh Kulkarni <kulkarnipadmanabh@gmail.com>
- * @author Padmanabh Kulkarni<kulkarnipadmanabh@gmail.com>
- * @author shantanoo@gmail.com
- */
-$lang['menu']                  = 'सदसà¥à¤¯ वà¥à¤¯à¤µà¤¸à¥à¤¥à¤¾à¤ªà¤•';
-$lang['noauth']                = '( सदसà¥à¤¯ अधिकृत करणà¥à¤¯à¤¾à¤šà¥€ सà¥à¤µà¤¿à¤§à¤¾ नाही )';
-$lang['nosupport']             = '( सदसà¥à¤¯ वà¥à¤¯à¤µà¤¸à¥à¤¥à¤¾à¤ªà¤¨ उपलबà¥à¤§ नाही )';
-$lang['badauth']               = 'अधिकृत करणà¥à¤¯à¤¾à¤šà¥€ वà¥à¤¯à¤µà¤¸à¥à¤¥à¤¾ अवैध';
-$lang['user_id']               = 'सदसà¥à¤¯';
-$lang['user_pass']             = 'पासवरà¥à¤¡';
-$lang['user_name']             = 'खरे नाव';
-$lang['user_mail']             = 'ईमेल';
-$lang['user_groups']           = 'गट';
-$lang['field']                 = 'रकाना';
-$lang['value']                 = 'किमà¥à¤®à¤¤';
-$lang['add']                   = 'जोड़ा';
-$lang['delete']                = 'डिलीट';
-$lang['delete_selected']       = 'निवडलेले डिलीट करा';
-$lang['edit']                  = 'संपादन';
-$lang['edit_prompt']           = 'या सदसà¥à¤¯à¤¾à¤šà¥€ माहिती बदला';
-$lang['modify']                = 'बदल सà¥à¤°à¤•à¥à¤·à¤¿à¤¤ करा';
-$lang['search']                = 'शोध';
-$lang['search_prompt']         = 'शोध करा';
-$lang['clear']                 = 'शोधाचे निकष बदला';
-$lang['filter']                = 'निकष';
-$lang['summary']               = 'सापडलेलà¥à¤¯à¤¾ %3$d सदसà¥à¤¯à¤¾à¤ªà¥ˆà¤•ी %1$d ते %2$d दाखवले आहेत. à¤à¤•ूण सदसà¥à¤¯à¤¾ %4$d.';
-$lang['nonefound']             = 'à¤à¤•ही सदसà¥à¤¯ मिळाला नाही. à¤à¤•ूण सदसà¥à¤¯ %d.';
-$lang['delete_ok']             = '%d सदसà¥à¤¯ डिलीट केले.';
-$lang['delete_fail']           = '%d डिलीट करू शकलो नाही.';
-$lang['update_ok']             = 'सदसà¥à¤¯à¤¾à¤šà¥€ माहिती यशसà¥à¤µà¥€à¤°à¥€à¤¤à¥à¤¯à¤¾ बदलली आहे';
-$lang['update_fail']           = 'सदसà¥à¤¯à¤¾à¤šà¥€ माहिती बदलता आली नाही';
-$lang['update_exists']         = 'सदसà¥à¤¯à¤¾à¤šà¥‡ नाव बदलू शकलो नाही. %s हे नाव आधीच असà¥à¤¤à¤¿à¤¤à¥à¤µà¤¾à¤¤ आहे. ( इतर सरà¥à¤µ बदल केले जातील )';
-$lang['start']                 = 'सà¥à¤°à¥à¤µà¤¾à¤¤';
-$lang['prev']                  = 'आधीचं';
-$lang['next']                  = 'पà¥à¤¢à¤šà¤‚';
-$lang['last']                  = 'शेवटचं';
-$lang['edit_usermissing']      = 'दिलेला सदसà¥à¤¯ सापडला नाही. तो कदाचित डिलीट à¤à¤¾à¤²à¤¾ असेल किंवा बदलला गेला असेल.';
-$lang['user_notify']           = 'सदसà¥à¤¯à¤¾à¤²à¤¾ सूचित करा.';
-$lang['note_notify']           = 'सदसà¥à¤¯à¤¾à¤²à¤¾ नवीन पासवरà¥à¤¡ दिला तरच सूचनेचे ईमेल पाठवले जातात.';
-$lang['note_group']            = 'नवीन सदसà¥à¤¯ जर गट निवडला नसेल तर %s या गटात टाकले जातील.';
-$lang['note_pass']             = 'पासवरà¥à¤¡à¤šà¤¾ रकाना रिकामा ठेवलà¥à¤¯à¤¾à¤¸ व सदसà¥à¤¯ सूचना वà¥à¤¯à¤µà¤¸à¥à¤¥à¤¾ चालू असलà¥à¤¯à¤¾à¤¸ पासवरà¥à¤¡ आपोआप तयार केला जाईल.';
-$lang['add_ok']                = 'सदसà¥à¤¯ यशसà¥à¤µà¥€à¤°à¥€à¤¤à¥à¤¯à¤¾ नोंद à¤à¤¾à¤²à¤¾';
-$lang['add_fail']              = 'सदसà¥à¤¯à¤¾à¤šà¥€ नोंद à¤à¤¾à¤²à¥€ नाही';
-$lang['notify_ok']             = 'सूचनेचा ईमेल पाठवला';
-$lang['notify_fail']           = 'सूचनेचा ईमेल पाठवला गेला नाही';
diff --git a/wiki/lib/plugins/usermanager/lang/mr/list.txt b/wiki/lib/plugins/usermanager/lang/mr/list.txt
deleted file mode 100644
index ab69067..0000000
--- a/wiki/lib/plugins/usermanager/lang/mr/list.txt
+++ /dev/null
@@ -1 +0,0 @@
-====== सदसà¥à¤¯ यादी ======
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/ne/add.txt b/wiki/lib/plugins/usermanager/lang/ne/add.txt
deleted file mode 100644
index 868b12a..0000000
--- a/wiki/lib/plugins/usermanager/lang/ne/add.txt
+++ /dev/null
@@ -1 +0,0 @@
-=====पà¥à¤°à¤¯à¥‹à¤—करà¥à¤¤à¤¾ थपà¥à¤¨à¥à¤¹à¥‹à¤¸à¥ =====
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/ne/delete.txt b/wiki/lib/plugins/usermanager/lang/ne/delete.txt
deleted file mode 100644
index 4441c83..0000000
--- a/wiki/lib/plugins/usermanager/lang/ne/delete.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== पà¥à¤°à¤¯à¥‹à¤—करà¥à¤¤à¤¾ मेटà¥à¤¨à¥à¤¹à¥‹à¤¸ =====
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/ne/edit.txt b/wiki/lib/plugins/usermanager/lang/ne/edit.txt
deleted file mode 100644
index 040d269..0000000
--- a/wiki/lib/plugins/usermanager/lang/ne/edit.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== पà¥à¤°à¤¯à¥‹à¤—करà¥à¤¤à¤¾ समà¥à¤ªà¤¾à¤¦à¤¨ गरà¥à¤¨à¥à¤¹à¥‹à¤¸=====
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/ne/intro.txt b/wiki/lib/plugins/usermanager/lang/ne/intro.txt
deleted file mode 100644
index de08e48..0000000
--- a/wiki/lib/plugins/usermanager/lang/ne/intro.txt
+++ /dev/null
@@ -1 +0,0 @@
-====== पà¥à¤°à¤¯à¥‹à¤—करà¥à¤¤à¤¾ वà¥à¤¯à¤µà¤¸à¥à¤¥à¤¾à¤ªà¤• ======
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/ne/lang.php b/wiki/lib/plugins/usermanager/lang/ne/lang.php
deleted file mode 100644
index 9a44d19..0000000
--- a/wiki/lib/plugins/usermanager/lang/ne/lang.php
+++ /dev/null
@@ -1,50 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author Saroj Kumar Dhakal <lotusnagarkot@gmail.com>
- * @author SarojKumar Dhakal <lotusnagarkot@yahoo.com>
- * @author Saroj Dhakal<lotusnagarkot@yahoo.com>
- */
-$lang['menu']                  = 'पà¥à¤°à¤¯à¥‹à¤—करà¥à¤¤à¤¾ वà¥à¤¯à¤µà¤¸à¥à¤¥à¤¾à¤ªà¤•';
-$lang['noauth']                = '(पà¥à¤°à¤¯à¥‹à¤—करà¥à¤¤à¤¾  पà¥à¤°à¤®à¤¾à¤£à¤¿à¤•रण  उपलबà¥à¤§ छैन)';
-$lang['nosupport']             = '(पà¥à¤°à¤¯à¥‹à¤—करà¥à¤¤à¤¾ वà¥à¤¯à¤µà¤¸à¥à¤¥à¤¾à¤ªà¤¨ समरà¥à¤¥à¤¿à¤¤ छैन)';
-$lang['badauth']               = 'अमानà¥à¤¯ पà¥à¤°à¤®à¤¾à¤£à¤¿à¤•रण विधि';
-$lang['user_id']               = 'पà¥à¤°à¤¯à¥‹à¤—करà¥à¤¤à¤¾';
-$lang['user_pass']             = 'पà¥à¤°à¤µà¥‡à¤¶à¤¶à¤¬à¥à¤¦';
-$lang['user_name']             = 'वासà¥à¤¤à¤µà¤¿à¤• नाम';
-$lang['user_mail']             = 'इमेल';
-$lang['user_groups']           = 'समूह ';
-$lang['field']                 = 'कà¥à¤·à¥‡à¤¤à¥à¤°';
-$lang['value']                 = 'मान ';
-$lang['add']                   = 'थपà¥à¤¨à¥à¤¹à¥‹à¤¸à¥';
-$lang['delete']                = 'मेटà¥à¤¨à¥à¤¹à¥‹à¤¸à¥';
-$lang['delete_selected']       = 'सेलेकà¥à¤Ÿ गरिà¤à¤•ो मेटà¥à¤¨à¥à¤¹à¥‹à¤¸à¥';
-$lang['edit']                  = 'समà¥à¤ªà¤¾à¤¦à¤¨ गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥';
-$lang['edit_prompt']           = 'यो पà¥à¤°à¤¯à¥‹à¤—करà¥à¤¤à¤¾ समà¥à¤ªà¤¾à¤¦à¤¨ गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥ ';
-$lang['modify']                = 'परिवरà¥à¤¤à¤¨ वचत गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥';
-$lang['search']                = 'खोज';
-$lang['search_prompt']         = 'खोजà¥à¤¨à¥à¤¹à¥‹à¤¸à¥';
-$lang['clear']                 = 'खोज फिलà¥à¤Ÿà¤° पूरà¥à¤µà¤°à¥à¤ªà¤®à¤¾ फरà¥à¤•ाउनà¥à¤¹à¥‹à¤¸à¥';
-$lang['filter']                = 'फिलà¥à¤Ÿà¤° ';
-$lang['summary']               = 'देखाउदै  %1$d-%2$d of %3$d भेटिà¤à¤•ा   %4$d कà¥à¤² पà¥à¤°à¤¯à¥‹à¤—करà¥à¤¤à¤¾ मधà¥à¤¯à¥‡à¤¬à¤¾à¤Ÿ ।';
-$lang['nonefound']             = '%d कà¥à¤² पà¥à¤°à¤¯à¥‹à¤—करà¥à¤¤à¤¾à¥¤ कà¥à¤¨à¥ˆ पनि पà¥à¤°à¤¯à¥‹à¤—करà¥à¤¤à¤¾ भेटिà¤à¤¨ ।';
-$lang['delete_ok']             = '%d पà¥à¤°à¤¯à¥‹à¤—करà¥à¤¤à¤¾ मेटिà¤';
-$lang['delete_fail']           = '%d पà¥à¤°à¤¯à¥‹à¤—करà¥à¤¤à¤¾ हटाउन सकिà¤à¤¨ ';
-$lang['update_ok']             = 'पà¥à¤°à¤¯à¥‹à¤—करà¥à¤¤à¤¾ सफलतापूरà¥à¤µà¤• अधà¥à¤¯à¤¾à¤µà¤§à¤¿à¤• गरियो ';
-$lang['update_fail']           = 'पà¥à¤°à¤¯à¥‹à¤—करà¥à¤¤à¤¾ अधà¥à¤¯à¤¾à¤µà¤§à¤¿à¤• कारà¥à¤¯ असफल';
-$lang['update_exists']         = 'परà¥à¤¯à¤¯à¥‹à¤—करà¥à¤¤à¤¾à¤•ो नाम परिवरà¥à¤¤à¤¨ असफल, दिइà¤à¤•ो पà¥à¤°à¤¯à¥‹à¤—करà¥à¤¤à¤¾ नाम( %s) पहिले देखि रहेको छ। ( यसबाहेकका परिवरà¥à¤°à¤¨à¤¹à¤°à¥‚ गरिà¤à¤•ा छनà¥)';
-$lang['start']                 = 'सà¥à¤°à¥ गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥';
-$lang['prev']                  = 'पहिलेको ';
-$lang['next']                  = 'पछिको';
-$lang['last']                  = 'अनà¥à¤¤à¤¿à¤®';
-$lang['edit_usermissing']      = 'छानिà¤à¤•ो पà¥à¤°à¤¯à¥‹à¤—करà¥à¤¤à¤¾ भेटिà¤à¤¨,  खà¥à¤²à¤¾à¤‡à¤à¤•ो पà¥à¤°à¤¯à¥‹à¤—करà¥à¤¤à¤¾ मेटिà¤à¤•ो या कतै परिवरà¥à¤¤à¤¨ गरिà¤à¤•ो हà¥à¤¨à¤¸à¤•à¥à¤›à¥¤';
-$lang['user_notify']           = 'पà¥à¤°à¤¯à¥‹à¤—करà¥à¤¤à¤¾à¤²à¤¾à¤ˆ जानकारी दिनà¥à¤¹à¥‹à¤¸à¥ ';
-$lang['note_notify']           = 'जानकारी इमेल तब मातà¥à¤° पठाइनà¥à¤› जब पà¥à¤°à¤¯à¥‹à¤—करà¥à¤¤à¤¾à¤²à¤¾à¤ˆ नयाठपà¥à¤°à¤µà¥‡à¤¶ शबà¥à¤¦ दिइनà¥à¤›à¥¤';
-$lang['note_group']            = 'नयाठपà¥à¤°à¤¯à¥‹à¤—करà¥à¤¤à¤¾à¤²à¤¾à¤ˆ पूरà¥à¤µà¤¨à¤¿à¤°à¥à¤§à¤¾à¤°à¤¿à¤¤ समूह नखà¥à¤²à¤¾à¤à¤®à¤¾ (%s) मा समावेश गराइनेछ ।';
-$lang['note_pass']             = 'पà¥à¤°à¤µà¥‡à¤¶ शवà¥à¤¦ कà¥à¤·à¥‡à¤¤à¥à¤° खाली राखेमा पà¥à¤°à¤µà¥‡à¤¶ शवà¥à¤¦ सà¥à¤µà¤¤: निरà¥à¤®à¤¾à¤£ हà¥à¤¨à¥‡à¤› र पà¥à¤°à¤¯à¥‹à¤—करà¥à¤¤à¤¾à¤²à¤¾à¤ˆ जानकारी पठइने छ ।';
-$lang['add_ok']                = 'पà¥à¤°à¥‹à¤—करà¥à¤¤à¤¾ सफलतापूरà¥à¤µà¤• थपियो';
-$lang['add_fail']              = 'पà¥à¤°à¤¯à¥‹à¤—करà¥à¤¤à¤¾ थपà¥à¤¨à¥‡ कारà¥à¤¯ असफल';
-$lang['notify_ok']             = 'जानकारी पतà¥à¤° पठाइयो';
-$lang['notify_fail']           = 'जानकारी पतà¥à¤° पठाउन सकिà¤à¤¨ ';
diff --git a/wiki/lib/plugins/usermanager/lang/ne/list.txt b/wiki/lib/plugins/usermanager/lang/ne/list.txt
deleted file mode 100644
index ece94b3..0000000
--- a/wiki/lib/plugins/usermanager/lang/ne/list.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== पà¥à¤°à¤¯à¥‹à¤—करà¥à¤¤à¤¾ सà¥à¤šà¥€ =====
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/nl/add.txt b/wiki/lib/plugins/usermanager/lang/nl/add.txt
deleted file mode 100644
index 992d9f3..0000000
--- a/wiki/lib/plugins/usermanager/lang/nl/add.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Nieuwe gebruiker =====
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/nl/delete.txt b/wiki/lib/plugins/usermanager/lang/nl/delete.txt
deleted file mode 100644
index ad26e05..0000000
--- a/wiki/lib/plugins/usermanager/lang/nl/delete.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Verwijder gebruiker =====
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/nl/edit.txt b/wiki/lib/plugins/usermanager/lang/nl/edit.txt
deleted file mode 100644
index 0d58e48..0000000
--- a/wiki/lib/plugins/usermanager/lang/nl/edit.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Gebruiker wijzigen =====
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/nl/import.txt b/wiki/lib/plugins/usermanager/lang/nl/import.txt
deleted file mode 100644
index 3a9320e..0000000
--- a/wiki/lib/plugins/usermanager/lang/nl/import.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-===== Massa-import van gebruikers =====
-
-Hiervoor is een CSV-bestand nodig van de gebruikers met minstens vier kolommen. De kolommen moeten bevatten, in deze volgorde: gebruikers-id, complete naam, e-mailadres en groepen.
-Het CSV-velden moeten worden gescheiden met komma's (,) en de teksten moeten worden omringd met dubbele aanhalingstekens (%%""%%). Backslash (\) kan worden gebruikt om te escapen.
-Voor een voorbeeld van een werkend bestand, probeer de "Exporteer Gebruikers" functie hierboven.
-Dubbele gebruikers-id's zullen worden genegeerd.
-
-Een wachtwoord zal worden gegenereerd en gemaild naar elke gebruiker die succesvol is geïmporteerd.
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/nl/intro.txt b/wiki/lib/plugins/usermanager/lang/nl/intro.txt
deleted file mode 100644
index 819e64d..0000000
--- a/wiki/lib/plugins/usermanager/lang/nl/intro.txt
+++ /dev/null
@@ -1 +0,0 @@
-====== Gebruikersbeheer ======
diff --git a/wiki/lib/plugins/usermanager/lang/nl/lang.php b/wiki/lib/plugins/usermanager/lang/nl/lang.php
deleted file mode 100644
index 32c802e..0000000
--- a/wiki/lib/plugins/usermanager/lang/nl/lang.php
+++ /dev/null
@@ -1,84 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Wouter Schoot <wouter@schoot.org>
- * @author John de Graaff <john@de-graaff.net>
- * @author Niels Schoot <niels.schoot@quintiq.com>
- * @author Dion Nicolaas <dion@nicolaas.net>
- * @author Danny Rotsaert <danny.rotsaert@edpnet.be>
- * @author Marijn Hofstra <hofstra.m@gmail.com>
- * @author Timon Van Overveldt <timonvo@gmail.com>
- * @author Ricardo Guijt <ricardoguijt@gmail.com>
- * @author Gerrit Uitslag <klapinklapin@gmail.com>
- * @author Rene <wllywlnt@yahoo.com>
- * @author Wesley de Weerd <wesleytiel@gmail.com>
- */
-$lang['menu']                  = 'Gebruikersbeheer';
-$lang['noauth']                = '(gebruikersauthenticatie niet beschikbaar)';
-$lang['nosupport']             = '(gebruikersbeheer niet ondersteund)';
-$lang['badauth']               = 'ongeldige authenticatiemethode';
-$lang['user_id']               = 'Gebruiker';
-$lang['user_pass']             = 'Wachtwoord';
-$lang['user_name']             = 'Volledige naam';
-$lang['user_mail']             = 'E-mail';
-$lang['user_groups']           = 'Groepen';
-$lang['field']                 = 'Veld';
-$lang['value']                 = 'Waarde';
-$lang['add']                   = 'Toevoegen';
-$lang['delete']                = 'Verwijder';
-$lang['delete_selected']       = 'Verwijder geselecteerden';
-$lang['edit']                  = 'Wijzigen';
-$lang['edit_prompt']           = 'Wijzig deze gebruiker';
-$lang['modify']                = 'Wijzigingen opslaan';
-$lang['search']                = 'Zoek';
-$lang['search_prompt']         = 'Voer zoekopdracht uit';
-$lang['clear']                 = 'Verwijder zoekfilter';
-$lang['filter']                = 'Filter';
-$lang['export_all']            = 'Exporteer Alle Gebruikers (CSV)';
-$lang['export_filtered']       = 'Exporteer Gefilterde Gebruikers (CSV)';
-$lang['import']                = 'Importeer Nieuwe Gebruikers';
-$lang['line']                  = 'Regelnummer';
-$lang['error']                 = 'Foutmelding';
-$lang['summary']               = 'Weergegeven gebruikers %1$d-%2$d van %3$d gevonden. %4$d gebruikers in totaal.';
-$lang['nonefound']             = 'Geen gebruikers gevonden. %d gebruikers in totaal.';
-$lang['delete_ok']             = '%d gebruikers verwijderd';
-$lang['delete_fail']           = '%d kon niet worden verwijderd.';
-$lang['update_ok']             = 'Gebruiker succesvol gewijzigd';
-$lang['update_fail']           = 'Gebruiker wijzigen mislukt';
-$lang['update_exists']         = 'Gebruikersnaam veranderen mislukt, de opgegeven gebruikersnaam (%s) bestaat reeds (overige aanpassingen worden wel doorgevoerd).';
-$lang['start']                 = 'start';
-$lang['prev']                  = 'vorige';
-$lang['next']                  = 'volgende';
-$lang['last']                  = 'laatste';
-$lang['edit_usermissing']      = 'Geselecteerde gebruiker niet gevonden, de opgegeven gebruikersnaam kan verwijderd zijn of elders aangepast.';
-$lang['user_notify']           = 'Gebruiker notificeren';
-$lang['note_notify']           = 'Notificatie-e-mails worden alleen verstuurd wanneer de gebruiker een nieuw wachtwoord wordt toegekend.';
-$lang['note_group']            = 'Nieuwe gebruikers zullen aan de standaard groep (%s) worden toegevoegd als er geen groep opgegeven is.';
-$lang['note_pass']             = 'Het wachtwoord wordt automatisch gegenereerd als het veld wordt leeggelaten en gebruikersnotificaties aanstaan.';
-$lang['add_ok']                = 'Gebruiker succesvol toegevoegd';
-$lang['add_fail']              = 'Gebruiker kon niet worden toegevoegd';
-$lang['notify_ok']             = 'Notificatie-e-mail verzonden';
-$lang['notify_fail']           = 'Notificatie-e-mail kon niet worden verzonden';
-$lang['import_userlistcsv']    = 'Gebruikerslijst (CSV-bestand):';
-$lang['import_header']         = 'Meest recente import - Gevonden fouten';
-$lang['import_success_count']  = 'Gebruikers importeren: %d gebruikers gevonden, %d geïmporteerd';
-$lang['import_failure_count']  = 'Gebruikers importeren: %d mislukt. Fouten zijn hieronder weergegeven.';
-$lang['import_error_fields']   = 'Onvoldoende velden, gevonden %d, nodig 4.';
-$lang['import_error_baduserid'] = 'Gebruikers-id mist';
-$lang['import_error_badname']  = 'Verkeerde naam';
-$lang['import_error_badmail']  = 'Verkeerd e-mailadres';
-$lang['import_error_upload']   = 'Importeren mislukt. Het CSV bestand kon niet worden geüpload of is leeg.';
-$lang['import_error_readfail'] = 'Importeren mislukt. Lezen van het geüploade bestand is mislukt.';
-$lang['import_error_create']   = 'Aanmaken van de gebruiker was niet mogelijk.';
-$lang['import_notify_fail']    = 'Notificatiebericht kon niet naar de geïmporteerde gebruiker worden verstuurd, %s met e-mail %s.';
-$lang['import_downloadfailures'] = 'Download de gevonden fouten als CSV voor correctie';
-$lang['addUser_error_missing_pass'] = 'Vul een wachtwoord in of activeer de gebruikers notificatie om een wachtwoord te genereren.';
-$lang['addUser_error_pass_not_identical'] = 'De ingevulde wachtwoorden komen niet overeen';
-$lang['addUser_error_modPass_disabled'] = 'Het aanpassen van wachtwoorden is momenteel uitgeschakeld';
-$lang['addUser_error_name_missing'] = 'Vul een naam in voor de nieuwe gebruiker';
-$lang['addUser_error_modName_disabled'] = 'Het aanpassen van namen is momenteel uitgeschakeld';
-$lang['addUser_error_mail_missing'] = 'Vul een email adres in voor de nieuwe gebruiker';
-$lang['addUser_error_modMail_disabled'] = 'Het aanpassen van uw email adres is momenteel uitgeschakeld';
-$lang['addUser_error_create_event_failed'] = 'Een plugin heeft voorkomen dat de nieuwe gebruiker wordt toegevoegd . Bekijk mogelijke andere berichten voor meer informatie.';
diff --git a/wiki/lib/plugins/usermanager/lang/nl/list.txt b/wiki/lib/plugins/usermanager/lang/nl/list.txt
deleted file mode 100644
index a9aac84..0000000
--- a/wiki/lib/plugins/usermanager/lang/nl/list.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Gebruikerslijst =====
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/no/add.txt b/wiki/lib/plugins/usermanager/lang/no/add.txt
deleted file mode 100644
index 4fb9cf2..0000000
--- a/wiki/lib/plugins/usermanager/lang/no/add.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Legg til bruker =====
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/no/delete.txt b/wiki/lib/plugins/usermanager/lang/no/delete.txt
deleted file mode 100644
index 5501018..0000000
--- a/wiki/lib/plugins/usermanager/lang/no/delete.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Slett bruker =====
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/no/edit.txt b/wiki/lib/plugins/usermanager/lang/no/edit.txt
deleted file mode 100644
index 3dff0c9..0000000
--- a/wiki/lib/plugins/usermanager/lang/no/edit.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Rediger bruker =====
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/no/import.txt b/wiki/lib/plugins/usermanager/lang/no/import.txt
deleted file mode 100644
index 5d96282..0000000
--- a/wiki/lib/plugins/usermanager/lang/no/import.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-===== Masseimport av brukerer =====
-
-Er avhengig av en CSV-fil med brukere med minst fire felt. Feltene må inneholde i rekkefølge: brukernavn, fult navn, e-postadresse, og grupper.
-CSV-feltene separeres med komma (,) og tekst må avgrensen ved hjelp av anførselstegn (%%""%%). Omvendt skråtegn (\) brukes for å beskytte spesialtegn.
-Et eksempel på en CSV-fil kan lages ved å bruke «Eksportere brukere»-funksjonene over her. Dupliserte brukernavn vil bli ignorert.
-
-Et passord vil bli laget, og sendt via e-post til alle bruker som ble importert.
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/no/intro.txt b/wiki/lib/plugins/usermanager/lang/no/intro.txt
deleted file mode 100644
index c9e1e5b..0000000
--- a/wiki/lib/plugins/usermanager/lang/no/intro.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Behandle brukere =====
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/no/lang.php b/wiki/lib/plugins/usermanager/lang/no/lang.php
deleted file mode 100644
index 8bd8894..0000000
--- a/wiki/lib/plugins/usermanager/lang/no/lang.php
+++ /dev/null
@@ -1,87 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Thomas Nygreen <nygreen@gmail.com>
- * @author Arild Burud <arildb@met.no>
- * @author Torkill Bruland <torkar-b@online.no>
- * @author Rune M. Andersen <rune.andersen@gmail.com>
- * @author Jakob Vad Nielsen (me@jakobnielsen.net)
- * @author Kjell Tore Næsgaard <kjell.t.nasgaard@ntnu.no>
- * @author Knut Staring <knutst@gmail.com>
- * @author Lisa Ditlefsen <lisa@vervesearch.com>
- * @author Erik Pedersen <erik.pedersen@shaw.ca>
- * @author Erik Bjørn Pedersen <erik.pedersen@shaw.ca>
- * @author Rune Rasmussen syntaxerror.no@gmail.com
- * @author Jon Bøe <jonmagneboe@hotmail.com>
- * @author Egil Hansen <egil@rosetta.no>
- * @author Arne Hanssen <arne.hanssen@getmail.no>
- */
-$lang['menu']                  = 'Behandle brukere';
-$lang['noauth']                = '(autentisering av brukere ikke tilgjengelig)';
-$lang['nosupport']             = '(behandling av brukere støttes ikke)';
-$lang['badauth']               = 'ugyldig autentiseringsmekanisme';
-$lang['user_id']               = 'Bruker';
-$lang['user_pass']             = 'Passord';
-$lang['user_name']             = 'Fullt navn';
-$lang['user_mail']             = 'E-post';
-$lang['user_groups']           = 'Grupper';
-$lang['field']                 = 'Felt';
-$lang['value']                 = 'Verdi';
-$lang['add']                   = 'Legg til';
-$lang['delete']                = 'Slett';
-$lang['delete_selected']       = 'Slett valgte';
-$lang['edit']                  = 'Rediger';
-$lang['edit_prompt']           = 'Rediger denne brukeren';
-$lang['modify']                = 'Lagre endringer';
-$lang['search']                = 'Søk';
-$lang['search_prompt']         = 'Start søk';
-$lang['clear']                 = 'Tilbakestill søkefilter';
-$lang['filter']                = 'Filter';
-$lang['export_all']            = 'Eksporter alle brukere (CSV)';
-$lang['export_filtered']       = 'Eksporter den filtrerte listen (CSV)';
-$lang['import']                = 'Importer nye brukere';
-$lang['line']                  = 'Linje nr.';
-$lang['error']                 = 'Feilmelding';
-$lang['summary']               = 'Viser brukere %1$d-%2$d av %3$d. %4$d users total.';
-$lang['nonefound']             = 'Ingen brukere funnet. %d brukere totalt.';
-$lang['delete_ok']             = '%d brukere slettet.';
-$lang['delete_fail']           = '%d kunne ikke slettes.';
-$lang['update_ok']             = 'Brukeren ble oppdatert';
-$lang['update_fail']           = 'Oppdatering av brukeren feilet';
-$lang['update_exists']         = 'Endring av brukernavn feilet. Det oppgitte brukernavnet (%s) eksisterer allerede (alle andre endringer vil bli gjort).';
-$lang['start']                 = 'første';
-$lang['prev']                  = 'forrige';
-$lang['next']                  = 'neste';
-$lang['last']                  = 'siste';
-$lang['edit_usermissing']      = 'Fant ikke valgte brukere. Det oppgitte brukernavnet kan ha blitt slettet eller endret et annet sted.';
-$lang['user_notify']           = 'Varsle bruker';
-$lang['note_notify']           = 'E-post med varsling blir bare sendt hvis brukeren blir gitt nytt passord.';
-$lang['note_group']            = 'Nye brukere vil bli lagt til standardgruppen (%s) hvis ingen gruppe oppgis.';
-$lang['note_pass']             = 'Et nytt passordet vil bli laget dersom passordfeltet er tomt og«Varsle bruker» er huket av.';
-$lang['add_ok']                = 'Brukeren ble lagt til';
-$lang['add_fail']              = 'Brukeren kunne ikke legges til';
-$lang['notify_ok']             = 'Varsling sendt';
-$lang['notify_fail']           = 'Varsling kunne ikke sendes';
-$lang['import_userlistcsv']    = 'Brukerliste (CSV):';
-$lang['import_header']         = 'Siste brukerimport - Liste med feil';
-$lang['import_success_count']  = 'Brukerimport: %d brukere ble funnet, %d av disse ble importert.';
-$lang['import_failure_count']  = 'Brukerimport: %d brukere ble ikke importert. Feilene blir listet under her.';
-$lang['import_error_fields']   = 'For få felt, fant %d, men trenger 4.';
-$lang['import_error_baduserid'] = 'Mangler brukernavn';
-$lang['import_error_badname']  = 'Noe feil med navn';
-$lang['import_error_badmail']  = 'Noe feil med e-postadressen';
-$lang['import_error_upload']   = 'Feil med import. Klarte ikke laste opp CSV-filen, eller så er denne tom.';
-$lang['import_error_readfail'] = 'Feil med import. Klarte ikke lese filen som er lastet opp.';
-$lang['import_error_create']   = 'Klarte ikke opprette brukeren';
-$lang['import_notify_fail']    = 'Melding til bruker kunne ikke bli sent for importerte bruker, %s med e-postadresse %s.';
-$lang['import_downloadfailures'] = 'Last ned feilende verdier som CSV for retting';
-$lang['addUser_error_missing_pass'] = 'Du må enten skrive inn et passord, eller slå på «Varsle bruker» slik at systemet selv lager et nytt passord';
-$lang['addUser_error_pass_not_identical'] = 'Passordene er ikk identisk';
-$lang['addUser_error_modPass_disabled'] = 'Endre passord er slått av.';
-$lang['addUser_error_name_missing'] = 'Skriv inn navnet til den nye brukeren';
-$lang['addUser_error_modName_disabled'] = 'Endre navn er slått av.';
-$lang['addUser_error_mail_missing'] = 'Skriv inn e-postadressen til den nye brukeren.';
-$lang['addUser_error_modMail_disabled'] = 'Endre e-postadresse er slått av.';
-$lang['addUser_error_create_event_failed'] = 'En utvidelse hindrer at den nye brukeren kan legges inn. Sjekk ev. andre tilbakemeldinger for mer informasjon.';
diff --git a/wiki/lib/plugins/usermanager/lang/no/list.txt b/wiki/lib/plugins/usermanager/lang/no/list.txt
deleted file mode 100644
index 40de64b..0000000
--- a/wiki/lib/plugins/usermanager/lang/no/list.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Brukerliste =====
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/pl/add.txt b/wiki/lib/plugins/usermanager/lang/pl/add.txt
deleted file mode 100644
index a33f3ba..0000000
--- a/wiki/lib/plugins/usermanager/lang/pl/add.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Dodawanie użytkownika =====
diff --git a/wiki/lib/plugins/usermanager/lang/pl/delete.txt b/wiki/lib/plugins/usermanager/lang/pl/delete.txt
deleted file mode 100644
index 72dd338..0000000
--- a/wiki/lib/plugins/usermanager/lang/pl/delete.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Usuwanie użytkownika =====
diff --git a/wiki/lib/plugins/usermanager/lang/pl/edit.txt b/wiki/lib/plugins/usermanager/lang/pl/edit.txt
deleted file mode 100644
index 3c9d898..0000000
--- a/wiki/lib/plugins/usermanager/lang/pl/edit.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Edycja użytkownika =====
diff --git a/wiki/lib/plugins/usermanager/lang/pl/import.txt b/wiki/lib/plugins/usermanager/lang/pl/import.txt
deleted file mode 100644
index 87a50e7..0000000
--- a/wiki/lib/plugins/usermanager/lang/pl/import.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-===== Hurtowy import użytkowników =====
-
-Wymaga pliku CSV z co najmniej czterema kolumnami. Kolumny muszą zawierać, w kolejności: identyfikator użytkownika, imię i nazwisko, adres e-mail i grupy.
-Pola CSV powinny być oddzielone przecinkami (,) a łańcuchy znaków objęte znakami cudzysłowu (%%""%%). Aby ominąć znak z interpretacji należy użyć odwrotnego ukośnika (\). Za przykład pliku wypróbuj powyższą funkcję "Eksportuj użytkowników". Duplikaty identyfikatorów użytkowników będą ignorowane.
-
-Hasło zostanie wygenerowane i przesłane e-mailem do każdego pomyślnie zaimportowanego użytkownika.
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/pl/intro.txt b/wiki/lib/plugins/usermanager/lang/pl/intro.txt
deleted file mode 100644
index da1cfea..0000000
--- a/wiki/lib/plugins/usermanager/lang/pl/intro.txt
+++ /dev/null
@@ -1 +0,0 @@
-====== Menadżer użytkowników ======
diff --git a/wiki/lib/plugins/usermanager/lang/pl/lang.php b/wiki/lib/plugins/usermanager/lang/pl/lang.php
deleted file mode 100644
index 605057c..0000000
--- a/wiki/lib/plugins/usermanager/lang/pl/lang.php
+++ /dev/null
@@ -1,86 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Wojciech Lichota <wojciech@lichota.pl>
- * @author Max <maxrb146@gmail.com>
- * @author Grzegorz Żur <grzegorz.zur@gmail.com>
- * @author Mariusz Kujawski <marinespl@gmail.com>
- * @author Maciej Kurczewski <pipijajko@gmail.com>
- * @author Sławomir Boczek <slawkens@gmail.com>
- * @author sleshek <sleshek@wp.pl>
- * @author Leszek Stachowski <shazarre@gmail.com>
- * @author maros <dobrimaros@yahoo.pl>
- * @author Grzegorz Widła <dzesdzes@gmail.com>
- * @author Åukasz Chmaj <teachmeter@gmail.com>
- * @author Begina Felicysym <begina.felicysym@wp.eu>
- * @author Aoi Karasu <aoikarasu@gmail.com>
- */
-$lang['menu']                  = 'Menadżer użytkowników';
-$lang['noauth']                = '(uwierzytelnienie użytkownika niemożliwe)';
-$lang['nosupport']             = '(zarządzanie użytkownikami niemożliwe)';
-$lang['badauth']               = 'błędny mechanizm uwierzytelniania';
-$lang['user_id']               = 'Nazwa użytkownika';
-$lang['user_pass']             = 'Hasło';
-$lang['user_name']             = 'Użytkownik';
-$lang['user_mail']             = 'E-mail';
-$lang['user_groups']           = 'Grupy';
-$lang['field']                 = 'Pole';
-$lang['value']                 = 'Wartość';
-$lang['add']                   = 'Dodaj';
-$lang['delete']                = 'Usuń';
-$lang['delete_selected']       = 'Usuń zaznaczone';
-$lang['edit']                  = 'Edytuj';
-$lang['edit_prompt']           = 'Edytuj użytkownika';
-$lang['modify']                = 'Zapisz zmiany';
-$lang['search']                = 'Szukaj';
-$lang['search_prompt']         = 'Rozpocznij przeszukiwanie';
-$lang['clear']                 = 'Resetuj filtr przeszukiwania';
-$lang['filter']                = 'Filtr';
-$lang['export_all']            = 'Eksportuj wszystkich użytkowników (CSV)';
-$lang['export_filtered']       = 'Eksportuj wyfiltrowaną listę użytkowników (CSV) ';
-$lang['import']                = 'Importuj nowych użytkowników';
-$lang['line']                  = 'Numer linii';
-$lang['error']                 = 'Błędna wiadomość';
-$lang['summary']               = 'Użytkownicy %1$d-%2$d z %3$d znalezionych. Całkowita ilość użytkowników %4$d.';
-$lang['nonefound']             = 'Nie znaleziono użytkowników. Całkowita ilość użytkowników %d.';
-$lang['delete_ok']             = 'Usunięto %d użytkowników.';
-$lang['delete_fail']           = 'Błąd przy usuwaniu %d użytkowników.';
-$lang['update_ok']             = 'Dane użytkownika zostały zmienione!';
-$lang['update_fail']           = 'Błąd przy zmianie danych użytkownika!';
-$lang['update_exists']         = 'Błąd przy zmianie nazwy użytkownika, użytkownik o tej nazwie (%s) już istnieje (inne zmiany zostały wprowadzone).';
-$lang['start']                 = 'poczÄ…tek';
-$lang['prev']                  = 'poprzedni';
-$lang['next']                  = 'następny';
-$lang['last']                  = 'ostatni';
-$lang['edit_usermissing']      = 'Nie znaleziono wybranego użytkownika, nazwa użytkownika mogła zostać zmieniona lub usunięta.';
-$lang['user_notify']           = 'Powiadamianie użytkownika';
-$lang['note_notify']           = 'Powiadomienia wysyłane są tylko jeżeli zmieniono hasło użytkownika.';
-$lang['note_group']            = 'Nowy użytkownik zostanie dodany do grupy domyślnej (%s) jeśli nie podano innej grupy.';
-$lang['note_pass']             = 'Jeśli pole będzie puste i powiadamianie użytkownika jest włączone, hasło zostanie automatyczne wygenerowane.';
-$lang['add_ok']                = 'Dodano użytkownika';
-$lang['add_fail']              = 'Dodawanie użytkownika nie powiodło się';
-$lang['notify_ok']             = 'Powiadomienie zostało wysłane';
-$lang['notify_fail']           = 'Wysyłanie powiadomienia nie powiodło się';
-$lang['import_userlistcsv']    = 'Plik z listą użytkowników (CSV):';
-$lang['import_header']         = 'Najnowszy import - błędy';
-$lang['import_success_count']  = 'Import użytkowników: znaleziono %d użytkowników z czego pomyślnie zaimportowano %d.';
-$lang['import_failure_count']  = 'Import użytkowników: %d błędów. Błędy wymieniono poniżej.';
-$lang['import_error_fields']   = 'Niewystarczająca ilość pól, znalezione %d, wymagane 4.';
-$lang['import_error_baduserid'] = 'Brak id użytkownika';
-$lang['import_error_badname']  = 'Błędna nazwa';
-$lang['import_error_badmail']  = 'Błędny email';
-$lang['import_error_upload']   = 'Importowanie nie powiodło się. Nie można załadować pliku CSV lub jest on pusty.';
-$lang['import_error_readfail'] = 'Åadownie przerwane. Nie można odczytać pliku. ';
-$lang['import_error_create']   = 'Nie można utworzyć użytkownika';
-$lang['import_notify_fail']    = 'Powiadomienie nie mogło być wysłane do zaimportowanego użytkownika %s o e-mailu %s.';
-$lang['import_downloadfailures'] = 'W celu korekty pobierz niepowodzenia jako plik CSV';
-$lang['addUser_error_missing_pass'] = 'Ustaw hasło albo aktywuj powiadomienia użytkowników aby móc włączyć generowanie haseł.';
-$lang['addUser_error_pass_not_identical'] = 'Wprowadzone różne hasła ';
-$lang['addUser_error_modPass_disabled'] = 'Modyfikacja haseł została wyłączona';
-$lang['addUser_error_name_missing'] = 'Wprowadź nazwę dla nowego użytkownika';
-$lang['addUser_error_modName_disabled'] = 'Modyfikacja nazw została wyłączona ';
-$lang['addUser_error_mail_missing'] = 'Wprowadź adres email dla nowego użytkownika';
-$lang['addUser_error_modMail_disabled'] = 'Modyfikacja adresów email została wyłączona ';
-$lang['addUser_error_create_event_failed'] = 'Wtyczka uniemożliwiła dodanie nowego użytkownika. Przejrzyj możliwe inne komunikaty, aby uzyskać więcej informacji.';
diff --git a/wiki/lib/plugins/usermanager/lang/pl/list.txt b/wiki/lib/plugins/usermanager/lang/pl/list.txt
deleted file mode 100644
index 57da2e6..0000000
--- a/wiki/lib/plugins/usermanager/lang/pl/list.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Lista użytkowników =====
diff --git a/wiki/lib/plugins/usermanager/lang/pt-br/add.txt b/wiki/lib/plugins/usermanager/lang/pt-br/add.txt
deleted file mode 100644
index 759ed68..0000000
--- a/wiki/lib/plugins/usermanager/lang/pt-br/add.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Adicionar usuário =====
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/pt-br/delete.txt b/wiki/lib/plugins/usermanager/lang/pt-br/delete.txt
deleted file mode 100644
index 9d18d58..0000000
--- a/wiki/lib/plugins/usermanager/lang/pt-br/delete.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Excluir usuário =====
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/pt-br/edit.txt b/wiki/lib/plugins/usermanager/lang/pt-br/edit.txt
deleted file mode 100644
index a1be1c8..0000000
--- a/wiki/lib/plugins/usermanager/lang/pt-br/edit.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Editar usuário =====
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/pt-br/import.txt b/wiki/lib/plugins/usermanager/lang/pt-br/import.txt
deleted file mode 100644
index d692bb3..0000000
--- a/wiki/lib/plugins/usermanager/lang/pt-br/import.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-===== Importação de Usuários em Massa =====
-
-Requer um arquivo CSV de usuários com pelo menos quatro colunas.
-As colunas devem conter, nesta ordem: id-usuário, nome completo, endereço de e-mail e grupos.
-Os campos CSV devem ser separados por vírgulas ( , ) e nomes delimitados por aspas (). Barra invertida (\ ) pode ser usado para escapar nomes.
-Para um exemplo de um arquivo adequado , tente a função Exportar usuários acima.
-Usuário ids duplicados serão ignorados.
-
-A senha será gerada e enviada para cada usuário importado com sucesso.
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/pt-br/intro.txt b/wiki/lib/plugins/usermanager/lang/pt-br/intro.txt
deleted file mode 100644
index 5f33996..0000000
--- a/wiki/lib/plugins/usermanager/lang/pt-br/intro.txt
+++ /dev/null
@@ -1 +0,0 @@
-====== Gerenciamento de Usuários ======
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/pt-br/lang.php b/wiki/lib/plugins/usermanager/lang/pt-br/lang.php
deleted file mode 100644
index 1305c59..0000000
--- a/wiki/lib/plugins/usermanager/lang/pt-br/lang.php
+++ /dev/null
@@ -1,90 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Frederico Gonçalves Guimarães <frederico@teia.bio.br>
- * @author Felipe Castro <fefcas@gmail.com>
- * @author Lucien Raven <lucienraven@yahoo.com.br>
- * @author Enrico Nicoletto <liverig@gmail.com>
- * @author Flávio Veras <flaviove@gmail.com>
- * @author Jeferson Propheta <jeferson.propheta@gmail.com>
- * @author jair.henrique <jair.henrique@gmail.com>
- * @author Luis Dantas <luis@dantas.com>
- * @author Sergio Motta <sergio@cisne.com.br>
- * @author Isaias Masiero Filho <masiero@masiero.org>
- * @author Balaco Baco <balacobaco@imap.cc>
- * @author Victor Westmann <victor.westmann@gmail.com>
- * @author Leone Lisboa Magevski <leone1983@gmail.com>
- * @author Dário Estevão <darioems@gmail.com>
- * @author Juliano Marconi Lanigra <juliano.marconi@gmail.com>
- * @author Guilherme Cardoso <guicardoso@gmail.com>
- * @author Viliam Dias <viliamjr@gmail.com>
- */
-$lang['menu']                  = 'Gerenciamento de Usuários';
-$lang['noauth']                = '(o gerenciamento de usuários não está disponível)';
-$lang['nosupport']             = '(o gerenciamento de usuários não é suportado)';
-$lang['badauth']               = 'mecanismo de autenticação inválido';
-$lang['user_id']               = 'Usuário';
-$lang['user_pass']             = 'Senha';
-$lang['user_name']             = 'Nome real';
-$lang['user_mail']             = 'E-mail';
-$lang['user_groups']           = 'Grupos';
-$lang['field']                 = 'Campo';
-$lang['value']                 = 'Valor';
-$lang['add']                   = 'Adicionar';
-$lang['delete']                = 'Excluir';
-$lang['delete_selected']       = 'Excluir a seleção';
-$lang['edit']                  = 'Editar';
-$lang['edit_prompt']           = 'Editar esse usuário';
-$lang['modify']                = 'Salvar as alterações';
-$lang['search']                = 'Pesquisar';
-$lang['search_prompt']         = 'Executar a pesquisa';
-$lang['clear']                 = 'Limpar o filtro de pesquisa';
-$lang['filter']                = 'Filtro';
-$lang['export_all']            = 'Exportar Todos Usuários (CSV)';
-$lang['export_filtered']       = 'Exportar lista de Usuários Filtrados (CSV)';
-$lang['import']                = 'Importar Novos Usuários';
-$lang['line']                  = 'Linha Nº.';
-$lang['error']                 = 'Mensagem de Erro';
-$lang['summary']               = 'Exibindo usuários %1$d-%2$d de %3$d encontrados. %4$d usuários no total.';
-$lang['nonefound']             = 'Nenhum usuário encontrado. %d usuários no total.';
-$lang['delete_ok']             = '%d usuários excluídos';
-$lang['delete_fail']           = 'Erro na exclusão de %d usuários.';
-$lang['update_ok']             = 'Usuário atualizado com sucesso';
-$lang['update_fail']           = 'Não foi possível atualizar o usuário';
-$lang['update_exists']         = 'Não foi possível mudar o nome do usuário. O nome especificado (%s) já existe (as outras mudanças serão aplicadas).';
-$lang['start']                 = 'primeira';
-$lang['prev']                  = 'anterior';
-$lang['next']                  = 'próxima';
-$lang['last']                  = 'última';
-$lang['edit_usermissing']      = 'O usuário selecionado não foi encontrado, ele foi excluído ou teve o seu nome modificado.';
-$lang['user_notify']           = 'Notificar o usuário';
-$lang['note_notify']           = 'E-mails de notificação são enviados apenas se o usuário digitar uma nova senha.';
-$lang['note_group']            = 'Novos usuários serão adicionados ao grupo padrão (%s), caso nenhum grupo seja especificado.';
-$lang['note_pass']             = 'A senha será gerada automaticamente se o campo for deixado em branco e a notificação de usuário estiver habilitada.';
-$lang['add_ok']                = 'O usuário foi adicionado com sucesso';
-$lang['add_fail']              = 'O usuário não foi adicionado';
-$lang['notify_ok']             = 'O e-mail de notificação foi enviado';
-$lang['notify_fail']           = 'Não foi possível enviar o e-mail de notificação';
-$lang['import_userlistcsv']    = 'Arquivo de lista de usuários (CSV):';
-$lang['import_header']         = 'Importações Mais Recentes - Falhas';
-$lang['import_success_count']  = 'Importação de Usuário: %d usuário (s) encontrado (s), %d importado (s) com sucesso.';
-$lang['import_failure_count']  = 'Importação de Usuário: %d falhou. As falhas estão listadas abaixo.';
-$lang['import_error_fields']   = 'Campos insuficientes, encontrado (s) %d, necessário 4.';
-$lang['import_error_baduserid'] = 'Id do usuário não encontrado.';
-$lang['import_error_badname']  = 'Nome errado';
-$lang['import_error_badmail']  = 'Endereço de email errado';
-$lang['import_error_upload']   = 'Falha na Importação: O arquivo csv não pode ser carregado ou está vazio.';
-$lang['import_error_readfail'] = 'Falha na Importação: Habilitar para ler o arquivo a ser carregado.';
-$lang['import_error_create']   = 'Habilitar para criar o usuário.';
-$lang['import_notify_fail']    = 'Mensagem de notificação não pode ser enviada para o usuário importado, %s com email %s.';
-$lang['import_downloadfailures'] = 'Falhas no Download como CSV para correção';
-$lang['addUser_error_missing_pass'] = 'Por favor coloque uma senha ou ative as notificações do usuário para habilitar a geração de senhas.';
-$lang['addUser_error_pass_not_identical'] = 'As senhas fornecidas não são idênticas.';
-$lang['addUser_error_modPass_disabled'] = 'A alteração de senhas está atualmente desabilitada.';
-$lang['addUser_error_name_missing'] = 'Por favor entre com um nome para o novo usuário.';
-$lang['addUser_error_modName_disabled'] = 'Alteração de nomes está desabilitada no momento.';
-$lang['addUser_error_mail_missing'] = 'Por favor entre com um endereço de e-mail para o novo usuário.';
-$lang['addUser_error_modMail_disabled'] = 'Alteração de endereço de e-mail está desabilitada no momento.';
-$lang['addUser_error_create_event_failed'] = 'Uma extensão impediu que um novo usuário seja adicionado. Reveja outras mensagens para mais informações.';
diff --git a/wiki/lib/plugins/usermanager/lang/pt-br/list.txt b/wiki/lib/plugins/usermanager/lang/pt-br/list.txt
deleted file mode 100644
index e5f79fb..0000000
--- a/wiki/lib/plugins/usermanager/lang/pt-br/list.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Lista de usuários =====
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/pt/add.txt b/wiki/lib/plugins/usermanager/lang/pt/add.txt
deleted file mode 100644
index a4c2672..0000000
--- a/wiki/lib/plugins/usermanager/lang/pt/add.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Adicionar Utilizador =====
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/pt/delete.txt b/wiki/lib/plugins/usermanager/lang/pt/delete.txt
deleted file mode 100644
index 95bffc1..0000000
--- a/wiki/lib/plugins/usermanager/lang/pt/delete.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Remover Utilizador =====
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/pt/edit.txt b/wiki/lib/plugins/usermanager/lang/pt/edit.txt
deleted file mode 100644
index 1767984..0000000
--- a/wiki/lib/plugins/usermanager/lang/pt/edit.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Editar Utilizador =====
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/pt/import.txt b/wiki/lib/plugins/usermanager/lang/pt/import.txt
deleted file mode 100644
index 3a60403..0000000
--- a/wiki/lib/plugins/usermanager/lang/pt/import.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-===== Importação de Utilizadores em Massa =====
-
-Requer um ficheiro CSV de utilizadores com pelo menos quatro colunas.
-As colunas têm de conter, em ordem: id de utilizador, nome completo, endereço de email e grupos.
-Os campos CSV devem ser separados por vírgulas (,) e as strings delimitadas por aspas (""). A contra-barra (\) pode ser usada para escapar.
-Para um exemplo de um ficheiro adequado, tente a função "Exportar Utilizadores" acima.
-Ids de utilizador duplicados serão ignorados.
-
-Uma senha será gerada e enviada por email a cada utilizador importado com sucesso.
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/pt/intro.txt b/wiki/lib/plugins/usermanager/lang/pt/intro.txt
deleted file mode 100644
index 27985de..0000000
--- a/wiki/lib/plugins/usermanager/lang/pt/intro.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Gerir Utilizadores =====
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/pt/lang.php b/wiki/lib/plugins/usermanager/lang/pt/lang.php
deleted file mode 100644
index b12e5dc..0000000
--- a/wiki/lib/plugins/usermanager/lang/pt/lang.php
+++ /dev/null
@@ -1,77 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author José Monteiro <Jose.Monteiro@DoWeDo-IT.com>
- * @author Enrico Nicoletto <liverig@gmail.com>
- * @author Fil <fil@meteopt.com>
- * @author André Neves <drakferion@gmail.com>
- * @author José Campos zecarlosdecampos@gmail.com
- * @author Guido Salatino <guidorafael23@gmail.com>
- * @author Romulo Pereira <romuloccomp@gmail.com>
- * @author Paulo Carmino <contato@paulocarmino.com>
- * @author Alfredo Silva <alfredo.silva@sky.com>
- * @author Guilherme Sá <guilherme.sa@hotmail.com>
- */
-$lang['menu']                  = 'Gestor de Perfis';
-$lang['noauth']                = '(autenticação indisponível)';
-$lang['nosupport']             = '(gestão de utilizadores não suportada)';
-$lang['badauth']               = 'Mecanismo de autenticação inválido';
-$lang['user_id']               = 'Utilizador';
-$lang['user_pass']             = 'Senha';
-$lang['user_name']             = 'Nome Real';
-$lang['user_mail']             = 'E-mail';
-$lang['user_groups']           = 'Grupos';
-$lang['field']                 = 'Campo';
-$lang['value']                 = 'Valor';
-$lang['add']                   = 'Adicionar';
-$lang['delete']                = 'Remover';
-$lang['delete_selected']       = 'Remover Seleccionado(s)';
-$lang['edit']                  = 'Editar';
-$lang['edit_prompt']           = 'Editar utilizador';
-$lang['modify']                = 'Gravar Alterações';
-$lang['search']                = 'Pesquisar';
-$lang['search_prompt']         = 'Pesquisar';
-$lang['clear']                 = 'Limpar Filtro de Pesquisa';
-$lang['filter']                = 'Filtro';
-$lang['export_all']            = 'Exportar Todos os Utilizadores (CSV)';
-$lang['export_filtered']       = 'Exportar a lista de utilizadores filtrada (CSV)';
-$lang['import']                = 'Importar Novos Utilizadores';
-$lang['line']                  = 'Linha nº
-';
-$lang['error']                 = 'Mensagem de erro';
-$lang['summary']               = 'Apresentar utilizadores %1$d-%2$d de %3$d encontrados. %4$d inscritos.';
-$lang['nonefound']             = 'Nenhum utilizador encontrado. %d inscritos.';
-$lang['delete_ok']             = '%d utilizadores removidos';
-$lang['delete_fail']           = '%d remoções falhadas.';
-$lang['update_ok']             = 'Utilizador actualizado';
-$lang['update_fail']           = 'Utilizador não actualizado';
-$lang['update_exists']         = 'Falhou a alteração do nome, porque o utilizador (%s) já existe (as restantes alterações serão aplicadas).';
-$lang['start']                 = 'primeiro';
-$lang['prev']                  = 'anterior';
-$lang['next']                  = 'seguinte';
-$lang['last']                  = 'último';
-$lang['edit_usermissing']      = 'Utilizador seleccionado não encontrado. Terá já sido removido ou alterado entretanto?';
-$lang['user_notify']           = 'Notificar utilizador';
-$lang['note_notify']           = 'Notificações só são enviadas se for atribuída uma nova senha ao utilizador.';
-$lang['note_group']            = 'Os novos utilizadores são adicionados ao grupo por omissão (%s) se não for especificado nenhum grupo.';
-$lang['note_pass']             = 'A password será automáticamente gerada se o campo esquerdo estiver vazio e a notificação de utilizador estiver activada.';
-$lang['add_ok']                = 'Utilizador adicionado.';
-$lang['add_fail']              = 'Utilizador não adicionado.';
-$lang['notify_ok']             = 'Mensagem de notificação enviada.';
-$lang['notify_fail']           = 'Não foi possível enviar mensagem de notificação';
-$lang['import_userlistcsv']    = 'Arquivo de lista do usuário (CSV):
-';
-$lang['import_header']         = 'Mais Recentes Importações - Falhas';
-$lang['import_success_count']  = 'Importar Utilizadores: %d utiliyadores encontrados, %d importados com sucesso.';
-$lang['import_failure_count']  = 'Importar Utilizadores: %d falharam. As falhas estão listadas abaixo.';
-$lang['import_error_fields']   = 'Campos insuficientes, encontrados %d mas requeridos 4.';
-$lang['import_error_baduserid'] = 'Falta id de utilizador';
-$lang['import_error_badname']  = 'Nome inválido';
-$lang['import_error_badmail']  = 'E-Mail inválido';
-$lang['import_error_upload']   = 'Falhou a importação. O ficheiro csv não pôde ser importado ou está vazio.';
-$lang['import_error_readfail'] = 'Falhou a importação. Não foi possível ler o ficheiro submetido.';
-$lang['import_error_create']   = 'Não foi possível criar o utilizador.';
-$lang['import_notify_fail']    = 'A mensagem de notificação não pôde ser enviada para o utilizador importado, %s com email %s.';
-$lang['import_downloadfailures'] = 'Baixe Falhas como CSV para a correção';
diff --git a/wiki/lib/plugins/usermanager/lang/pt/list.txt b/wiki/lib/plugins/usermanager/lang/pt/list.txt
deleted file mode 100644
index 01a0460..0000000
--- a/wiki/lib/plugins/usermanager/lang/pt/list.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Lista de Utilizadores =====
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/ro/add.txt b/wiki/lib/plugins/usermanager/lang/ro/add.txt
deleted file mode 100644
index 9a5c45e..0000000
--- a/wiki/lib/plugins/usermanager/lang/ro/add.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Adaugă utilizator =====
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/ro/delete.txt b/wiki/lib/plugins/usermanager/lang/ro/delete.txt
deleted file mode 100644
index ea65fa9..0000000
--- a/wiki/lib/plugins/usermanager/lang/ro/delete.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Åžterge utilizator =====
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/ro/edit.txt b/wiki/lib/plugins/usermanager/lang/ro/edit.txt
deleted file mode 100644
index b7f8a42..0000000
--- a/wiki/lib/plugins/usermanager/lang/ro/edit.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Editează utilizator =====
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/ro/intro.txt b/wiki/lib/plugins/usermanager/lang/ro/intro.txt
deleted file mode 100644
index f3c6626..0000000
--- a/wiki/lib/plugins/usermanager/lang/ro/intro.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Manager Utilizatori =====
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/ro/lang.php b/wiki/lib/plugins/usermanager/lang/ro/lang.php
deleted file mode 100644
index d65fac9..0000000
--- a/wiki/lib/plugins/usermanager/lang/ro/lang.php
+++ /dev/null
@@ -1,56 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Sergiu Baltariu <s_baltariu@yahoo.com>
- * @author s_baltariu@yahoo.com
- * @author Emanuel-Emeric Andrasi <n30@mandrivausers.ro>
- * @author Emanuel-Emeric Andrași <n30@mandrivausers.ro>
- * @author Emanuel-Emeric AndraÅŸi <em.andrasi@mandrivausers.ro>
- * @author Emanuel-Emeric Andrasi <em.andrasi@mandrivausers.ro>
- * @author Marius OLAR <olarmariusalex@gmail.com>
- * @author Marius Olar <olarmariusalex@yahoo.com>
- * @author Emanuel-Emeric Andrași <em.andrasi@mandrivausers.ro>
- */
-$lang['menu']                  = 'Manager Utilizatori';
-$lang['noauth']                = '(autentificarea utilizatorilor nu este disponibilă)';
-$lang['nosupport']             = '(menegementul utilizatorilor nu e suportat)';
-$lang['badauth']               = 'mecanism de autentificare invalid';
-$lang['user_id']               = 'Utilizator';
-$lang['user_pass']             = 'Parolă';
-$lang['user_name']             = 'Nume Real';
-$lang['user_mail']             = 'Email';
-$lang['user_groups']           = 'Grupuri';
-$lang['field']                 = 'Câmp';
-$lang['value']                 = 'Valoare';
-$lang['add']                   = 'Adaugă';
-$lang['delete']                = 'Åžterge';
-$lang['delete_selected']       = 'Şterge selecţia';
-$lang['edit']                  = 'Editează';
-$lang['edit_prompt']           = 'Editează acest utilizator';
-$lang['modify']                = 'Salvează Modificările';
-$lang['search']                = 'Caută';
-$lang['search_prompt']         = 'Se caută';
-$lang['clear']                 = 'Resetează Filtrul de Căutare';
-$lang['filter']                = 'Filtru';
-$lang['summary']               = 'Afişarea utilizatorilor %1$d-%2$d din %3$d găsită. %4$d utilizatori în total.';
-$lang['nonefound']             = 'Nici un utilizator nu a fost găsit. %d utilizatori în total.';
-$lang['delete_ok']             = '%d utilizatori ÅŸterÅŸi';
-$lang['delete_fail']           = '%d eÅŸuat la ÅŸtergere.';
-$lang['update_ok']             = 'Utilizatorul a fost actualizat cu succes';
-$lang['update_fail']           = 'Actualizarea utilizatorului a eÅŸuat';
-$lang['update_exists']         = 'Modificarea numelui de utilizator a eşuat. Numele de utilizator specificat (%s) există deja (orice altă modificare se va aplica)';
-$lang['start']                 = 'început';
-$lang['prev']                  = 'anterior';
-$lang['next']                  = 'urmator';
-$lang['last']                  = 'sfârşit';
-$lang['edit_usermissing']      = 'Utilizatorul selectat nu a fost găsit. E posibil ca numele de utilizator specificat să fi fost şters sau modificat în altă parte.';
-$lang['user_notify']           = 'Notificare utilizator';
-$lang['note_notify']           = 'Emailurile de notificare sunt trimise numai dacă utilizatorului îi este dată o nouă parolă.';
-$lang['note_group']            = 'Noii utilizatori vor fi adăugaţi la grupul implicit (%s) dacă nu se specifică grupul.';
-$lang['note_pass']             = 'Parola va fi regenerată automat dacă câmpul este lăsat gol şi notificarea utilizatorului este activată.';
-$lang['add_ok']                = 'Utilizator adăugat cu succes';
-$lang['add_fail']              = 'Adăugarea utilizatorului a eşuat';
-$lang['notify_ok']             = 'Emailul de notificare a fost trimis';
-$lang['notify_fail']           = 'Emailul de notificare nu a putut fi trimis';
diff --git a/wiki/lib/plugins/usermanager/lang/ro/list.txt b/wiki/lib/plugins/usermanager/lang/ro/list.txt
deleted file mode 100644
index 6c05634..0000000
--- a/wiki/lib/plugins/usermanager/lang/ro/list.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Listă utilizatori =====
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/ru/add.txt b/wiki/lib/plugins/usermanager/lang/ru/add.txt
deleted file mode 100644
index 3cb4264..0000000
--- a/wiki/lib/plugins/usermanager/lang/ru/add.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Добавить Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ =====
diff --git a/wiki/lib/plugins/usermanager/lang/ru/delete.txt b/wiki/lib/plugins/usermanager/lang/ru/delete.txt
deleted file mode 100644
index 80f874e..0000000
--- a/wiki/lib/plugins/usermanager/lang/ru/delete.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Удалить Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ =====
diff --git a/wiki/lib/plugins/usermanager/lang/ru/edit.txt b/wiki/lib/plugins/usermanager/lang/ru/edit.txt
deleted file mode 100644
index d447c40..0000000
--- a/wiki/lib/plugins/usermanager/lang/ru/edit.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Редактировать Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ =====
diff --git a/wiki/lib/plugins/usermanager/lang/ru/import.txt b/wiki/lib/plugins/usermanager/lang/ru/import.txt
deleted file mode 100644
index 0f303f3..0000000
--- a/wiki/lib/plugins/usermanager/lang/ru/import.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-===== Импорт неÑкольких пользователей =====
-
-ПотребуетÑÑ ÑпиÑок пользователей в файле формата CSV, ÑоÑтоÑщем из 4 Ñтолбцов. 
-Столбцы должны быть заполнены Ñледующим образом: user-id, полное имÑ, Ñл. почта, группы. 
-ÐŸÐ¾Ð»Ñ CSV должны быть отделены запÑтой (,), а Ñтроки должны быть заключены в кавычки (%%""%%). Обратный ÑлÑш (\) иÑпользуетÑÑ Ð´Ð»Ñ ÑкранированиÑ.  
-Ð’ качеÑтве примера можете взÑть ÑпиÑок пользователей, ÑкÑпортированный через «ЭкÑпорт пользователей».  
-ПовторÑющиеÑÑ Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ‚Ð¾Ñ€Ñ‹ user-id будут игнорироватьÑÑ.
-
-Пароль доÑтупа будет Ñгенерирован и отправлен по почте удачно импортированному пользователю.
diff --git a/wiki/lib/plugins/usermanager/lang/ru/intro.txt b/wiki/lib/plugins/usermanager/lang/ru/intro.txt
deleted file mode 100644
index 3a3e260..0000000
--- a/wiki/lib/plugins/usermanager/lang/ru/intro.txt
+++ /dev/null
@@ -1 +0,0 @@
-====== Управление пользователÑми ======
diff --git a/wiki/lib/plugins/usermanager/lang/ru/lang.php b/wiki/lib/plugins/usermanager/lang/ru/lang.php
deleted file mode 100644
index d0f9818..0000000
--- a/wiki/lib/plugins/usermanager/lang/ru/lang.php
+++ /dev/null
@@ -1,92 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Yuriy Skalko <yuriy.skalko@gmail.com>
- * @author Denis Simakov <akinoame1@gmail.com>
- * @author Andrew Pleshakov <beotiger@mail.ru>
- * @author Змей ЭтерийÑкий <evil_snake@eternion.ru>
- * @author Hikaru Nakajima <jisatsu@mail.ru>
- * @author Alexei Tereschenko <alexeitlex@yahoo.com>
- * @author Alexander Sorkin <kibizoid@gmail.com>
- * @author Kirill Krasnov <krasnovforum@gmail.com>
- * @author Vlad Tsybenko <vlad.development@gmail.com>
- * @author Aleksey Osadchiy <rfc@nm.ru>
- * @author Aleksandr Selivanov <alexgearbox@gmail.com>
- * @author Ladyko Andrey <fylh@succexy.spb.ru>
- * @author Eugene <windy.wanderer@gmail.com>
- * @author Johnny Utah <pcpa@cyberpunk.su>
- * @author Pavel <ivanovtsk@mail.ru>
- * @author Igor Degraf <igordegraf@gmail.com>
- * @author Vitaly Filatenko <kot@hacktest.net>
- * @author dimsharav <dimsharav@gmail.com>
- * @author Radimir <radimir.shevchenko@gmail.com>
- */
-$lang['menu']                  = 'Управление пользователÑми';
-$lang['noauth']                = '(Ð°Ð²Ñ‚Ð¾Ñ€Ð¸Ð·Ð°Ñ†Ð¸Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»ÐµÐ¹ недоÑтупна)';
-$lang['nosupport']             = '(управление пользователÑми не поддерживаетÑÑ)';
-$lang['badauth']               = 'некорректный механизм аутентификации';
-$lang['user_id']               = 'Логин';
-$lang['user_pass']             = 'Пароль';
-$lang['user_name']             = 'Полное имÑ';
-$lang['user_mail']             = 'Эл. адреÑ';
-$lang['user_groups']           = 'Группы';
-$lang['field']                 = 'Поле';
-$lang['value']                 = 'Значение';
-$lang['add']                   = 'Добавить';
-$lang['delete']                = 'Удалить';
-$lang['delete_selected']       = 'Удалить выбранные';
-$lang['edit']                  = 'Редактировать';
-$lang['edit_prompt']           = 'Редактировать Ñтого пользователÑ';
-$lang['modify']                = 'Сохранить изменениÑ';
-$lang['search']                = 'ПоиÑк';
-$lang['search_prompt']         = 'ИÑкать';
-$lang['clear']                 = 'Ð¡Ð±Ñ€Ð¾Ñ Ñ„Ð¸Ð»ÑŒÑ‚Ñ€Ð° поиÑка';
-$lang['filter']                = 'Фильтр';
-$lang['export_all']            = 'ЭкÑпорт вÑех пользователей (CSV)';
-$lang['export_filtered']       = 'ЭкÑпорт отфильтрованного ÑпиÑка пользователей (CSV)';
-$lang['import']                = 'импортировать новых пользователей';
-$lang['line']                  = 'Строка №';
-$lang['error']                 = 'Ошибка';
-$lang['summary']               = 'Показаны пользователи %1$d–%2$d из %3$d найденных. Ð’Ñего пользователей: %4$d.';
-$lang['nonefound']             = 'Ðе найдено ни одного пользователÑ. Ð’Ñего пользователей: %d.';
-$lang['delete_ok']             = 'Удалено пользователей: %d';
-$lang['delete_fail']           = 'Ðе удалоÑÑŒ удалить %d.';
-$lang['update_ok']             = 'Пользователь уÑпешно обновлён';
-$lang['update_fail']           = 'Ðе удалоÑÑŒ обновить пользователÑ';
-$lang['update_exists']         = 'Ðе удалоÑÑŒ изменить Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ, такой пользователь (%s) уже ÑущеÑтвует (вÑе оÑтальные Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð±ÑƒÐ´ÑƒÑ‚ применены).';
-$lang['start']                 = 'в начало';
-$lang['prev']                  = 'назад';
-$lang['next']                  = 'вперёд';
-$lang['last']                  = 'в конец';
-$lang['edit_usermissing']      = 'Выбранный пользователь не найден. Возможно, указанный логин был удалён или изменён извне.';
-$lang['user_notify']           = 'ОповеÑтить пользователÑ';
-$lang['note_notify']           = 'ПиÑьма Ñ уведомлением выÑылаютÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ в Ñлучае Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ паролÑ.';
-$lang['note_group']            = 'ЕÑли группа не указана, новые пользователи будут добавлены в группу по умолчанию (%s).';
-$lang['note_pass']             = 'Пароль будет Ñгенерирован автоматичеÑки, еÑли поле оÑтавлено пуÑтым и включено уведомление пользователÑ.';
-$lang['add_ok']                = 'Пользователь уÑпешно добавлен';
-$lang['add_fail']              = 'Ðе удалоÑÑŒ добавить пользователÑ';
-$lang['notify_ok']             = 'ПиÑьмо Ñ ÑƒÐ²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸ÐµÐ¼ отправлено';
-$lang['notify_fail']           = 'Ðе удалоÑÑŒ отправить пиÑьмо Ñ ÑƒÐ²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸ÐµÐ¼';
-$lang['import_userlistcsv']    = 'Файл Ñо ÑпиÑком пользователей (CSV):';
-$lang['import_header']         = 'ПоÑледний импорт — ÑпиÑок ошибок';
-$lang['import_success_count']  = 'Импорт пользователей: %d пользователей найдено, %d импортировано уÑпешно.';
-$lang['import_failure_count']  = 'Импорт пользователей: %d не удалоÑÑŒ. Ошибки перечиÑлены ниже.';
-$lang['import_error_fields']   = 'Ðе вÑе Ð¿Ð¾Ð»Ñ Ð·Ð°Ð¿Ð¾Ð»Ð½ÐµÐ½Ñ‹. Ðайдено %d, а требуетÑÑ 4.';
-$lang['import_error_baduserid'] = 'ОтÑутÑтвует идентификатор пользователÑ';
-$lang['import_error_badname']  = 'Ðеверное имÑ';
-$lang['import_error_badmail']  = 'Ðеверный Ð°Ð´Ñ€ÐµÑ Ñл. почты';
-$lang['import_error_upload']   = 'Импорт не удалÑÑ. CSV-файл не загружен или пуÑÑ‚.';
-$lang['import_error_readfail'] = 'Импорт не удалÑÑ. Ðевозможно прочеÑть загруженный файл.';
-$lang['import_error_create']   = 'Ðевозможно Ñоздать пользователÑ';
-$lang['import_notify_fail']    = 'Оповещение не может быть отправлено импортированному пользователю %s по Ñлектронной почте %s.';
-$lang['import_downloadfailures'] = 'Скачать ошибки в формате CSV Ð´Ð»Ñ Ð¸ÑправлениÑ';
-$lang['addUser_error_missing_pass'] = 'Ð”Ð»Ñ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾Ñти генерации паролÑ, пожалуйÑта, уÑтановите пароль или активируйте оповещениÑ.';
-$lang['addUser_error_pass_not_identical'] = 'Введённые пароли не Ñовпадают.';
-$lang['addUser_error_modPass_disabled'] = 'Изменение Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð² наÑтоÑщее Ð²Ñ€ÐµÐ¼Ñ Ð½ÐµÐ²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾.';
-$lang['addUser_error_name_missing'] = 'Укажите Ð¸Ð¼Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ пользователÑ.';
-$lang['addUser_error_modName_disabled'] = 'Изменение имени в наÑтоÑщее Ð²Ñ€ÐµÐ¼Ñ Ð½ÐµÐ²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾.';
-$lang['addUser_error_mail_missing'] = 'Укажите Ð°Ð´Ñ€ÐµÑ Ñл. почты нового пользователÑ.';
-$lang['addUser_error_modMail_disabled'] = 'Изменение e-mail в наÑтоÑщее Ð²Ñ€ÐµÐ¼Ñ Ð½ÐµÐ²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾.';
-$lang['addUser_error_create_event_failed'] = 'Плагин заблокировал добавление нового пользователÑ. Смотрите также другие ÑообщениÑ.';
diff --git a/wiki/lib/plugins/usermanager/lang/ru/list.txt b/wiki/lib/plugins/usermanager/lang/ru/list.txt
deleted file mode 100644
index 26c0cbe..0000000
--- a/wiki/lib/plugins/usermanager/lang/ru/list.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== СпиÑок пользователей =====
diff --git a/wiki/lib/plugins/usermanager/lang/sk/add.txt b/wiki/lib/plugins/usermanager/lang/sk/add.txt
deleted file mode 100644
index e2e1060..0000000
--- a/wiki/lib/plugins/usermanager/lang/sk/add.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-===== Pridanie užívateľa =====
-
diff --git a/wiki/lib/plugins/usermanager/lang/sk/delete.txt b/wiki/lib/plugins/usermanager/lang/sk/delete.txt
deleted file mode 100644
index c7d6a3c..0000000
--- a/wiki/lib/plugins/usermanager/lang/sk/delete.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-===== Zmazanie užívateľa =====
-
diff --git a/wiki/lib/plugins/usermanager/lang/sk/edit.txt b/wiki/lib/plugins/usermanager/lang/sk/edit.txt
deleted file mode 100644
index 28af5b5..0000000
--- a/wiki/lib/plugins/usermanager/lang/sk/edit.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-===== Zmena užívateľa =====
-
diff --git a/wiki/lib/plugins/usermanager/lang/sk/import.txt b/wiki/lib/plugins/usermanager/lang/sk/import.txt
deleted file mode 100644
index 2207f61..0000000
--- a/wiki/lib/plugins/usermanager/lang/sk/import.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-===== Hromadný import používateľov =====
-
-Vyžaduje CSV súbor používateľov s minimálne 4 stĺpcami.
-Stĺpce musia obsahovať postupne: ID používateľa, meno a priezvisko, emailová adresa a skupiny.
-CVS záznamy by mali byÅ¥ oddelené Äiarkou (,) a reÅ¥azce uzavreté úvodzovkami (%%""%%). Znak (\) sa používa v spojení so Å¡peciálnymi znakmi.
-Príklad vhodného súboru je možné získať funkciou "Export používateľov".
-Duplicitné ID používateľov budú ignorované.
-
-Každému úspešne importovanému používateľovi bude vygenerované heslo a zaslaný email.
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/sk/intro.txt b/wiki/lib/plugins/usermanager/lang/sk/intro.txt
deleted file mode 100644
index 0a626de..0000000
--- a/wiki/lib/plugins/usermanager/lang/sk/intro.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-====== Správa používateľov ======
-
diff --git a/wiki/lib/plugins/usermanager/lang/sk/lang.php b/wiki/lib/plugins/usermanager/lang/sk/lang.php
deleted file mode 100644
index 96f8fb6..0000000
--- a/wiki/lib/plugins/usermanager/lang/sk/lang.php
+++ /dev/null
@@ -1,74 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Martin Michalek <michalek.dev@gmail.com>
- * @author Ondrej Végh <ov@vsieti.sk>
- * @author Michal Mesko <michal.mesko@gmail.com>
- * @author exusik <exusik@gmail.com>
- */
-$lang['menu']                  = 'Správa používateľov';
-$lang['noauth']                = '(autentifikácia užívateľov nie je dostupná)';
-$lang['nosupport']             = '(správa užívateľov nie je podporovaná)';
-$lang['badauth']               = 'neplatný autorizaÄný mechanizmus';
-$lang['user_id']               = 'Užívateľ';
-$lang['user_pass']             = 'Heslo';
-$lang['user_name']             = 'SkutoÄné meno';
-$lang['user_mail']             = 'Email';
-$lang['user_groups']           = 'Skupiny';
-$lang['field']                 = 'Pole';
-$lang['value']                 = 'Hodnota';
-$lang['add']                   = 'Pridať';
-$lang['delete']                = 'Zmazať';
-$lang['delete_selected']       = 'Zmazať vybrané';
-$lang['edit']                  = 'Zmeniť';
-$lang['edit_prompt']           = 'Zmeniť tohoto užívateľa';
-$lang['modify']                = 'Uložiť zmeny';
-$lang['search']                = 'Hľadať';
-$lang['search_prompt']         = 'Vykonať vyhľadávanie';
-$lang['clear']                 = 'Vynulovať vyhľadávací filter';
-$lang['filter']                = 'Filter';
-$lang['export_all']            = 'Export všetkých používateľov (CSV)';
-$lang['export_filtered']       = 'Export zoznamu používateľov na základe filtra (CSV)';
-$lang['import']                = 'Import nových používateľov';
-$lang['line']                  = 'Riadok Ä.';
-$lang['error']                 = 'Chybová správa';
-$lang['summary']               = 'Zobrazenie užívateľov %1$d-%2$d z %3$d nájdených. %4$d užívateľov celkom.';
-$lang['nonefound']             = 'Žiadni užívatelia nenájdení. %d užívateľov celkom.';
-$lang['delete_ok']             = '%d užívateľov zmazaných';
-$lang['delete_fail']           = '%d chýb vymazania.';
-$lang['update_ok']             = 'Užívateľ úspešne zmenený';
-$lang['update_fail']           = 'Chyba zmeny užívateľa';
-$lang['update_exists']         = 'Chyba zmeny mena používateľa, používateľské meno (%s) už existuje (iné zmeny budú zaznamenané).';
-$lang['start']                 = 'prvé';
-$lang['prev']                  = 'predošlé';
-$lang['next']                  = 'ÄalÅ¡ie';
-$lang['last']                  = 'posledné';
-$lang['edit_usermissing']      = 'Vybraný užívateľ nebol nájdený, mohol byť zmazaný alebo zmenený iným spôsobom.';
-$lang['user_notify']           = 'Upozorniť užívateľa';
-$lang['note_notify']           = 'NotifikaÄné e-maily iba vtedy, ak dostane užívateľ nové heslo';
-$lang['note_group']            = 'Noví užívatelia budú pridaní do východzej skupiny (%s), ak nie je pre nich špecifikovaná iná skupina.';
-$lang['note_pass']             = 'Heslo bude vygenerované automaticky, ak bude pole prázdne a je zapnutá notifikácia používateľa.';
-$lang['add_ok']                = 'Používateľ úspešne pridaný';
-$lang['add_fail']              = 'Pridanie používateľa bolo neúspešné';
-$lang['notify_ok']             = 'NotifikaÄný e-mail bol poslaný';
-$lang['notify_fail']           = 'NotifikaÄný e-mail nemohol byÅ¥ poslaný';
-$lang['import_userlistcsv']    = 'Súbor so zoznamov používateľov (CSV):';
-$lang['import_header']         = 'Chyby pri poslednom importe';
-$lang['import_success_count']  = 'Import používateľov: %d nájdených, %d úspešne importovaných.';
-$lang['import_failure_count']  = 'Import používateľov: %d neúspešných. Problámy  vypísané nižšie.';
-$lang['import_error_fields']   = 'Neúplné záznamy, %d nájdené, 4 požadované.';
-$lang['import_error_baduserid'] = 'Chýba ID používateľa';
-$lang['import_error_badname']  = 'Nesprávne meno';
-$lang['import_error_badmail']  = 'Nesprávna emailová adresa';
-$lang['import_error_upload']   = 'Import neúspešný. CSV súbor nemohol byť nahraný alebo je prázdny.';
-$lang['import_error_readfail'] = 'Import neúspeÅ¡ný. Nie je možné preÄítaÅ¥ nahraný súbor.';
-$lang['import_error_create']   = 'Nie je možné vytvoriť pouzívateľa';
-$lang['import_notify_fail']    = 'Správa nemohla byť zaslaná importovanému používatelovi, %s s emailom %s.';
-$lang['import_downloadfailures'] = 'StiahnuÅ¥ chyby vo formáte CSV za úÄelom opravy';
-$lang['addUser_error_modPass_disabled'] = 'Zmena hesla nie je momentálne povolená';
-$lang['addUser_error_name_missing'] = 'Prosím zadajte meno nového používateľa.';
-$lang['addUser_error_modName_disabled'] = 'Zmena mena nie je momentálne povolená.';
-$lang['addUser_error_mail_missing'] = 'Prosím zadajte emailovú adresu nového používateľa.';
-$lang['addUser_error_modMail_disabled'] = 'Zmena emailovej adresy nie je momentálne povolená.';
diff --git a/wiki/lib/plugins/usermanager/lang/sk/list.txt b/wiki/lib/plugins/usermanager/lang/sk/list.txt
deleted file mode 100644
index 6f15331..0000000
--- a/wiki/lib/plugins/usermanager/lang/sk/list.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-===== Zoznam užívateľov =====
-
diff --git a/wiki/lib/plugins/usermanager/lang/sl/add.txt b/wiki/lib/plugins/usermanager/lang/sl/add.txt
deleted file mode 100644
index c1d8913..0000000
--- a/wiki/lib/plugins/usermanager/lang/sl/add.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Dodajanje uporabnika =====
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/sl/delete.txt b/wiki/lib/plugins/usermanager/lang/sl/delete.txt
deleted file mode 100644
index 1fd4fff..0000000
--- a/wiki/lib/plugins/usermanager/lang/sl/delete.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Izbris uporabnika =====
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/sl/edit.txt b/wiki/lib/plugins/usermanager/lang/sl/edit.txt
deleted file mode 100644
index e80bc85..0000000
--- a/wiki/lib/plugins/usermanager/lang/sl/edit.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Urejanje uporabnikov =====
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/sl/intro.txt b/wiki/lib/plugins/usermanager/lang/sl/intro.txt
deleted file mode 100644
index a4729a8..0000000
--- a/wiki/lib/plugins/usermanager/lang/sl/intro.txt
+++ /dev/null
@@ -1 +0,0 @@
-====== Upravljanje uporabnikov ======
diff --git a/wiki/lib/plugins/usermanager/lang/sl/lang.php b/wiki/lib/plugins/usermanager/lang/sl/lang.php
deleted file mode 100644
index 4a58218..0000000
--- a/wiki/lib/plugins/usermanager/lang/sl/lang.php
+++ /dev/null
@@ -1,70 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Dejan Levec <webphp@gmail.com>
- * @author BoÅ¡tjan SeniÄar <senicar@gmail.com>
- * @author Gregor Skumavc (grega.skumavc@gmail.com)
- * @author Matej UrbanÄiÄ (mateju@svn.gnome.org)
- * @author Matej UrbanÄiÄ <mateju@svn.gnome.org>
- */
-$lang['menu']                  = 'Upravljanje uporabnikov';
-$lang['noauth']                = '(overjanje istovetnosti uporabnikov ni na voljo)';
-$lang['nosupport']             = '(upravljanje raÄunov uporabnikov ni podprto)';
-$lang['badauth']               = 'neveljaven naÄin overjanja';
-$lang['user_id']               = 'Uporabnik';
-$lang['user_pass']             = 'Geslo';
-$lang['user_name']             = 'Pravo ime';
-$lang['user_mail']             = 'Elektronski naslov';
-$lang['user_groups']           = 'Skupine';
-$lang['field']                 = 'Polje';
-$lang['value']                 = 'Vrednost';
-$lang['add']                   = 'Dodaj';
-$lang['delete']                = 'Izbriši';
-$lang['delete_selected']       = 'Izbriši izbrano';
-$lang['edit']                  = 'Uredi';
-$lang['edit_prompt']           = 'Uredi tega uporabnika';
-$lang['modify']                = 'Shrani spremembe';
-$lang['search']                = 'Iskanje';
-$lang['search_prompt']         = 'PoiÅ¡Äi';
-$lang['clear']                 = 'PoÄisti filter iskanja';
-$lang['filter']                = 'Filter';
-$lang['export_all']            = 'Izvozi seznam vseh uporabnikov (CSV)';
-$lang['export_filtered']       = 'Izvozi filtriran seznam uporabnikov (CSV)';
-$lang['import']                = 'Uvozi nove uporabnike';
-$lang['line']                  = 'Å tevilka vrstice';
-$lang['error']                 = 'SporoÄilo napake';
-$lang['summary']               = 'Izpisani so uporabniki %1$d-%2$d od skupno %3$d. Vseh uporabnikov je %4$d.';
-$lang['nonefound']             = 'Ni najdenih uporabnikov. Vseh uporabnikov je %d.';
-$lang['delete_ok']             = '%d uporabnikov je izbrisanih';
-$lang['delete_fail']           = '%d ni bilo mogoÄe izbrisati';
-$lang['update_ok']             = 'UporabniÅ¡ki raÄun je uspeÅ¡no posodobljen';
-$lang['update_fail']           = 'Posodobitev uporabniÅ¡kega raÄuna je spodletela';
-$lang['update_exists']         = 'Spreminjanje imena uporabnika je spodletelo. Navedeno uporabniško ime (%s) že obstaja (vse ostale spremembe bodo uveljavljene).';
-$lang['start']                 = 'ZaÄetni';
-$lang['prev']                  = 'Predhodni';
-$lang['next']                  = 'Naslednji';
-$lang['last']                  = 'KonÄni';
-$lang['edit_usermissing']      = 'Izbranega uporabnika ni mogoÄe najti. Navedeno uporabniÅ¡ko ime je morda izbrisano ali spremenjeno.';
-$lang['user_notify']           = 'Obvesti uporabnika';
-$lang['note_notify']           = 'Obvestilna sporoÄila so poslana le, Äe uporabnik prejme novo geslo za dostop do strani.';
-$lang['note_group']            = 'Nov uporabnik bo dodan k privzeti skupini (%s), v kolikor ni navedene druge skupine.';
-$lang['note_pass']             = 'Geslo bo ustvarjeno samodejno, v kolikor je polje izpuÅ¡Äeno in je omogoÄeno obveÅ¡Äanje uporabnika.';
-$lang['add_ok']                = 'Uporabnik je uspešno dodan';
-$lang['add_fail']              = 'Dodajanje uporabnika je spodletelo';
-$lang['notify_ok']             = 'Obvestilno sporoÄilo je poslano.';
-$lang['notify_fail']           = 'Obvestilnega sporoÄila ni mogoÄe poslati.';
-$lang['import_userlistcsv']    = 'Datoteka seznama uporabnikov (CSV)';
-$lang['import_header']         = 'Zadnji uvoz podatkov – napake';
-$lang['import_success_count']  = 'Uvoz uporabnikov: %d najdenih, %d uspešno uvoženih.';
-$lang['import_failure_count']  = 'Uvoz uporabnikov: %d spodletelih. Napake so izpisane spodaj.';
-$lang['import_error_fields']   = 'Neustrezno število polj; najdenih je %d, zahtevana pa so 4.';
-$lang['import_error_baduserid'] = 'Manjka ID uporabnika';
-$lang['import_error_badname']  = 'NapaÄno navedeno ime';
-$lang['import_error_badmail']  = 'NapaÄno naveden elektronski naslov';
-$lang['import_error_upload']   = 'Uvoz je spodletel. Datoteke CSV ni mogoÄe naložiti ali pa je prazna.';
-$lang['import_error_readfail'] = 'Uvoz je spodletel. Ni mogoÄe prebrati vsebine datoteke.';
-$lang['import_error_create']   = 'Ni mogoÄe ustvariti raÄuna uporabnika';
-$lang['import_notify_fail']    = 'Obvestilnega sporoÄila za uvoženega uporabnika %s z elektronskim naslovom %s ni mogoÄe poslati.';
-$lang['import_downloadfailures'] = 'Prejmi podatke o napakah v datoteki CSV';
diff --git a/wiki/lib/plugins/usermanager/lang/sl/list.txt b/wiki/lib/plugins/usermanager/lang/sl/list.txt
deleted file mode 100644
index 1aa8b7a..0000000
--- a/wiki/lib/plugins/usermanager/lang/sl/list.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Seznam uporabnikov =====
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/sq/add.txt b/wiki/lib/plugins/usermanager/lang/sq/add.txt
deleted file mode 100644
index 4c66aaf..0000000
--- a/wiki/lib/plugins/usermanager/lang/sq/add.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Shto Përdorues =====
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/sq/delete.txt b/wiki/lib/plugins/usermanager/lang/sq/delete.txt
deleted file mode 100644
index 34cb491..0000000
--- a/wiki/lib/plugins/usermanager/lang/sq/delete.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Fshi përdorues =====
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/sq/edit.txt b/wiki/lib/plugins/usermanager/lang/sq/edit.txt
deleted file mode 100644
index 6313103..0000000
--- a/wiki/lib/plugins/usermanager/lang/sq/edit.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Redakto Përdorues =====
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/sq/intro.txt b/wiki/lib/plugins/usermanager/lang/sq/intro.txt
deleted file mode 100644
index e1ebea6..0000000
--- a/wiki/lib/plugins/usermanager/lang/sq/intro.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Menaxhuesi i Përdoruesit =====
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/sq/lang.php b/wiki/lib/plugins/usermanager/lang/sq/lang.php
deleted file mode 100644
index bddf54d..0000000
--- a/wiki/lib/plugins/usermanager/lang/sq/lang.php
+++ /dev/null
@@ -1,48 +0,0 @@
-<?php
-/**
- * Albanian language file
- *
- * @author Leonard Elezi leonard.elezi@depinfo.info
- */
-$lang['menu']                  = 'Menaxhuesi Përdoruesve';
-$lang['noauth']                = '(autentikimi i përdoruesve nuk është i disponueshëm)';
-$lang['nosupport']             = '(menaxhimi i përdoruesve nuk suportohet)';
-$lang['badauth']               = '(mekanizëm i pavlefshëm autentikimi)';
-$lang['user_id']               = 'Përdoruesi';
-$lang['user_pass']             = 'Fjalëkalimi
-';
-$lang['user_name']             = 'Emri i Vërtetë';
-$lang['user_mail']             = 'Email';
-$lang['user_groups']           = 'Grupe';
-$lang['field']                 = 'Fusha';
-$lang['value']                 = 'Vlera';
-$lang['add']                   = 'Shto';
-$lang['delete']                = 'Fshi';
-$lang['delete_selected']       = 'Fshi të Përzgjedhurën';
-$lang['edit']                  = 'Redakto';
-$lang['edit_prompt']           = 'Redakto këtë përdorues';
-$lang['modify']                = 'Ruaj Ndryshimet';
-$lang['search']                = 'Kërko';
-$lang['search_prompt']         = 'Kryej kërkim';
-$lang['clear']                 = 'Rivendos Filter Kërkimi';
-$lang['filter']                = 'Filter';
-$lang['summary']               = 'Duke treguar përdoruesit %1$d-%2$d nga %3$d të gjetur. %4$d përdorues në total.';
-$lang['nonefound']             = 'Asnjë përdorues nuk u gjet. %d përdorues në total.';
-$lang['delete_ok']             = '%d përdorues u fshinë.';
-$lang['delete_fail']           = '%d dështuan të fshihen.';
-$lang['update_ok']             = 'Përdoruesi u përditësia me sukses.';
-$lang['update_fail']           = 'Përditësimi i përdoruesit dështoi.';
-$lang['update_exists']         = 'Ndryshimi i emrit të përdoruesit dështoi, emri i përdoruesit i specifikuar (%s) ekziston tashmë (çdo ndryshim tjetër do të zbatohet).';
-$lang['start']                 = 'Fillim';
-$lang['prev']                  = 'Mëpara';
-$lang['next']                  = 'Tjetra';
-$lang['last']                  = 'Fundi';
-$lang['edit_usermissing']      = 'Përdoruesi i përzgjedhur nuk u gjet, emri i specifikuar i përdoruesit mund të jetë fshirë ose ndryshuar diku tjetër.';
-$lang['user_notify']           = 'Lajmëro përdoruesin';
-$lang['note_notify']           = 'Email-et e lajmërimit dërgohen vetëm nëse përdoruesit i jepet një fjalëkalim i ri.';
-$lang['note_group']            = 'Përdorues të rinj do të shtohen në grupin default (%s) nëse asnjë grup nuk specifikohet.';
-$lang['note_pass']             = 'Fjalëkalimi do të autogjenerohet nëse fusha lihet bosh dhe lajmërimi i përdoruesit është i aktivizuar.';
-$lang['add_ok']                = 'Përdoruesi u shtua me sukses.';
-$lang['add_fail']              = 'Shtimi i përdoruesit dështoi.';
-$lang['notify_ok']             = 'Email-i lajmërimit u dërgua.';
-$lang['notify_fail']           = 'Email-i lajmërimit nuk mundi të dërgohej.';
diff --git a/wiki/lib/plugins/usermanager/lang/sq/list.txt b/wiki/lib/plugins/usermanager/lang/sq/list.txt
deleted file mode 100644
index 68fc2e7..0000000
--- a/wiki/lib/plugins/usermanager/lang/sq/list.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Lista Përdoruesve =====
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/sr/add.txt b/wiki/lib/plugins/usermanager/lang/sr/add.txt
deleted file mode 100644
index 1de9a50..0000000
--- a/wiki/lib/plugins/usermanager/lang/sr/add.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Додај кориÑника =====
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/sr/delete.txt b/wiki/lib/plugins/usermanager/lang/sr/delete.txt
deleted file mode 100644
index 9b50365..0000000
--- a/wiki/lib/plugins/usermanager/lang/sr/delete.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Обриши кориÑника =====
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/sr/edit.txt b/wiki/lib/plugins/usermanager/lang/sr/edit.txt
deleted file mode 100644
index 11e22e2..0000000
--- a/wiki/lib/plugins/usermanager/lang/sr/edit.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Измени кориÑника =====
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/sr/intro.txt b/wiki/lib/plugins/usermanager/lang/sr/intro.txt
deleted file mode 100644
index 6c6ac9a..0000000
--- a/wiki/lib/plugins/usermanager/lang/sr/intro.txt
+++ /dev/null
@@ -1 +0,0 @@
-====== Управљач кориÑницима ======
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/sr/lang.php b/wiki/lib/plugins/usermanager/lang/sr/lang.php
deleted file mode 100644
index 858a213..0000000
--- a/wiki/lib/plugins/usermanager/lang/sr/lang.php
+++ /dev/null
@@ -1,50 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Иван Петровић petrovicivan@ubuntusrbija.org
- * @author Ivan Petrovic <petrovicivan@ubuntusrbija.org>
- * @author Miroslav Å olti <solti.miroslav@gmail.com>
- */
-$lang['menu']                  = 'Управљач кориÑницима';
-$lang['noauth']                = '(кориÑничка провера није доÑтупна)';
-$lang['nosupport']             = '(уптављање кориÑницима није подржано)';
-$lang['badauth']               = 'неиÑправан механизам провере';
-$lang['user_id']               = 'КориÑник';
-$lang['user_pass']             = 'Лозинка';
-$lang['user_name']             = 'Име и презиме';
-$lang['user_mail']             = 'Е-адреÑа';
-$lang['user_groups']           = 'Групе';
-$lang['field']                 = 'Поље';
-$lang['value']                 = 'ВредноÑÑ‚';
-$lang['add']                   = 'Додај';
-$lang['delete']                = 'Обриши';
-$lang['delete_selected']       = 'Обриши одабране';
-$lang['edit']                  = 'Измени';
-$lang['edit_prompt']           = 'Измени кориÑника';
-$lang['modify']                = 'Сачувај измене';
-$lang['search']                = 'Претрага';
-$lang['search_prompt']         = 'Изведи претрагу';
-$lang['clear']                 = 'Поништи филтер претраге';
-$lang['filter']                = 'Филтер';
-$lang['summary']               = 'Приказ %1$d-%2$d од %3$d пронађена кориÑника. Укупно има %4$d кориÑника.';
-$lang['nonefound']             = 'Ðије пронађен кориÑник. Укупно има %d кориÑника.';
-$lang['delete_ok']             = '%d кориÑника је обриÑано';
-$lang['delete_fail']           = '%d бриÑања није уÑпело.';
-$lang['update_ok']             = 'КориÑнички налог је ажуриран';
-$lang['update_fail']           = 'КориÑнички налог није ажуриран';
-$lang['update_exists']         = 'Измена кориÑничког имена није уÑпела, наведени кориÑник (%s) већ поÑтоји (оÑтале измене ће бити примењене).';
-$lang['start']                 = 'почетак';
-$lang['prev']                  = 'претходна';
-$lang['next']                  = 'Ñледећа';
-$lang['last']                  = 'крај';
-$lang['edit_usermissing']      = 'Одабрани кориÑник не поÑтоји, наведено кориÑничко име је можда обриÑано или је измењено негде другде.';
-$lang['user_notify']           = 'ОбавеÑти кориÑника';
-$lang['note_notify']           = 'Потврдна порука ће бити поÑлата једино ако је кориÑнику додељена нова лозинка.';
-$lang['note_group']            = 'Ðови кориÑници ће бити додељени подразумеваној групи (%s) ако није другачије назначено.';
-$lang['note_pass']             = 'Ðко Ñте оÑтавили поље празно и укључили обавештавање кориÑника лозинка ће бити аутоматÑки генериÑана.';
-$lang['add_ok']                = 'КориÑник је уÑпешно додат';
-$lang['add_fail']              = 'Додавање кориÑника није уÑпело';
-$lang['notify_ok']             = 'Порука Ñа обавештењен је поÑлата';
-$lang['notify_fail']           = 'Порука Ñа обавештењен није поÑлата';
diff --git a/wiki/lib/plugins/usermanager/lang/sr/list.txt b/wiki/lib/plugins/usermanager/lang/sr/list.txt
deleted file mode 100644
index 9484442..0000000
--- a/wiki/lib/plugins/usermanager/lang/sr/list.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== СпиÑак кориÑника =====
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/sv/add.txt b/wiki/lib/plugins/usermanager/lang/sv/add.txt
deleted file mode 100644
index 2ff1ee6..0000000
--- a/wiki/lib/plugins/usermanager/lang/sv/add.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Lägg till användare =====
diff --git a/wiki/lib/plugins/usermanager/lang/sv/delete.txt b/wiki/lib/plugins/usermanager/lang/sv/delete.txt
deleted file mode 100644
index 5664a59..0000000
--- a/wiki/lib/plugins/usermanager/lang/sv/delete.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Radera användare =====
diff --git a/wiki/lib/plugins/usermanager/lang/sv/edit.txt b/wiki/lib/plugins/usermanager/lang/sv/edit.txt
deleted file mode 100644
index f1a7f4a..0000000
--- a/wiki/lib/plugins/usermanager/lang/sv/edit.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Redigera användare =====
diff --git a/wiki/lib/plugins/usermanager/lang/sv/intro.txt b/wiki/lib/plugins/usermanager/lang/sv/intro.txt
deleted file mode 100644
index bd13b81..0000000
--- a/wiki/lib/plugins/usermanager/lang/sv/intro.txt
+++ /dev/null
@@ -1 +0,0 @@
-====== Hantera användare ======
diff --git a/wiki/lib/plugins/usermanager/lang/sv/lang.php b/wiki/lib/plugins/usermanager/lang/sv/lang.php
deleted file mode 100644
index f8ff910..0000000
--- a/wiki/lib/plugins/usermanager/lang/sv/lang.php
+++ /dev/null
@@ -1,73 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Tor Härnqvist <tor@harnqvist.se>
- * @author Per Foreby <per@foreby.se>
- * @author Nicklas Henriksson <nicklas[at]nihe.se>
- * @author HÃ¥kan Sandell <hakan.sandell@home.se>
- * @author Dennis Karlsson
- * @author Tormod Otter Johansson <tormod@latast.se>
- * @author Pontus Bergendahl <pontus.bergendahl@gmail.com>
- * @author Emil Lind <emil@sys.nu>
- * @author Bogge Bogge <bogge@bogge.com>
- * @author Peter Åström <eaustreum@gmail.com>
- */
-$lang['menu']                  = 'Hantera användare';
-$lang['noauth']                = '(användarautentisering ej tillgänlig)';
-$lang['nosupport']             = '(användarhantering stödjs ej)';
-$lang['badauth']               = 'ogiltig autentiseringsmekanism';
-$lang['user_id']               = 'Användare';
-$lang['user_pass']             = 'Lösenord';
-$lang['user_name']             = 'Namn';
-$lang['user_mail']             = 'E-post';
-$lang['user_groups']           = 'Grupper';
-$lang['field']                 = 'Fält';
-$lang['value']                 = 'Värde';
-$lang['add']                   = 'Lägg till';
-$lang['delete']                = 'Radera';
-$lang['delete_selected']       = 'Radera markerade';
-$lang['edit']                  = 'Redigera';
-$lang['edit_prompt']           = 'Redigera användaren';
-$lang['modify']                = 'Spara ändringar';
-$lang['search']                = 'Sök';
-$lang['search_prompt']         = 'Utför sökning';
-$lang['clear']                 = 'Återställ sökfilter';
-$lang['filter']                = 'Filter';
-$lang['export_all']            = 'Exportera alla användare (CSV)';
-$lang['export_filtered']       = 'Exportera filtrerade användarlistningen (CSV)';
-$lang['import']                = 'Importera nya användare';
-$lang['error']                 = 'Error-meddelande';
-$lang['summary']               = 'Visar användare %1$d-%2$d av %3$d funna. %4$d användare totalt.';
-$lang['nonefound']             = 'Inga användare hittades. %d användare totalt.';
-$lang['delete_ok']             = '%d användare raderade';
-$lang['delete_fail']           = '%d kunde inte raderas.';
-$lang['update_ok']             = 'Användaren uppdaterad';
-$lang['update_fail']           = 'Användaruppdatering misslyckades';
-$lang['update_exists']         = 'Kunde inte ändra användarnamn,, det angivna användarnamnet (%s) finns redan (andra ändringar kommer att utföras).';
-$lang['start']                 = 'start';
-$lang['prev']                  = 'föregående';
-$lang['next']                  = 'nästa';
-$lang['last']                  = 'sista';
-$lang['edit_usermissing']      = 'Vald användare hittades inte. Den angivna användaren kan ha blivit raderad, eller ändrats någon annanstans.';
-$lang['user_notify']           = 'Meddela användaren';
-$lang['note_notify']           = 'E-postmeddelanden skickas bara om användaren har fått ett nytt lösenord.';
-$lang['note_group']            = 'Nya användare läggs till i standardgruppen (%s) om inga grupper anges.';
-$lang['note_pass']             = 'Lösenordet kommer att autogenereras om fältet är tomt och e-postmeddelanden till användaren är påslaget.';
-$lang['add_ok']                = 'Användaren tillagd';
-$lang['add_fail']              = 'Användare kunde inte läggas till';
-$lang['notify_ok']             = 'E-postmeddelande skickat';
-$lang['notify_fail']           = 'E-postmeddelande kunde inte skickas';
-$lang['import_userlistcsv']    = 'Fillista över användare (CSV):';
-$lang['import_success_count']  = 'Användar-import: %d användare funna, %d importerade framgångsrikt.';
-$lang['import_failure_count']  = 'Användar-import: %d misslyckades. Misslyckandena listas nedan.';
-$lang['import_error_baduserid'] = 'Användar-id saknas';
-$lang['import_error_badname']  = 'Felaktigt namn';
-$lang['import_error_badmail']  = 'Felaktig e-postadress';
-$lang['import_error_upload']   = 'Import misslyckades. Csv-filen kunde inte laddas upp eller är tom.';
-$lang['import_error_readfail'] = 'Import misslyckades. Den uppladdade filen gick inte att läsa.';
-$lang['import_error_create']   = 'Misslyckades att skapa användaren.';
-$lang['addUser_error_pass_not_identical'] = 'De angivna lösenorden var inte identiska.';
-$lang['addUser_error_name_missing'] = 'Var god fyll i namn på den nya användaren.';
-$lang['addUser_error_mail_missing'] = 'Var god fyll i e-postadress för den nya användaren.';
diff --git a/wiki/lib/plugins/usermanager/lang/sv/list.txt b/wiki/lib/plugins/usermanager/lang/sv/list.txt
deleted file mode 100644
index e07c452..0000000
--- a/wiki/lib/plugins/usermanager/lang/sv/list.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Användarlista =====
diff --git a/wiki/lib/plugins/usermanager/lang/th/add.txt b/wiki/lib/plugins/usermanager/lang/th/add.txt
deleted file mode 100644
index 6a5f098..0000000
--- a/wiki/lib/plugins/usermanager/lang/th/add.txt
+++ /dev/null
@@ -1 +0,0 @@
-====== เพิ่มผู้ใช้ ======
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/th/delete.txt b/wiki/lib/plugins/usermanager/lang/th/delete.txt
deleted file mode 100644
index 4dbc82b..0000000
--- a/wiki/lib/plugins/usermanager/lang/th/delete.txt
+++ /dev/null
@@ -1 +0,0 @@
-====== ลบผู้ใช้ ======
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/th/edit.txt b/wiki/lib/plugins/usermanager/lang/th/edit.txt
deleted file mode 100644
index c36e8dd..0000000
--- a/wiki/lib/plugins/usermanager/lang/th/edit.txt
+++ /dev/null
@@ -1 +0,0 @@
-====== à¹à¸à¹‰à¹„ขผู้ใช้ ======
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/th/intro.txt b/wiki/lib/plugins/usermanager/lang/th/intro.txt
deleted file mode 100644
index 0f6a0c3..0000000
--- a/wiki/lib/plugins/usermanager/lang/th/intro.txt
+++ /dev/null
@@ -1 +0,0 @@
-====== ตัวจัดà¸à¸²à¸£à¸œà¸¹à¹‰à¹ƒà¸Šà¹‰ ======
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/th/lang.php b/wiki/lib/plugins/usermanager/lang/th/lang.php
deleted file mode 100644
index d6e14f6..0000000
--- a/wiki/lib/plugins/usermanager/lang/th/lang.php
+++ /dev/null
@@ -1,48 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author Komgrit Niyomrath <n.komgrit@gmail.com>
- * @author Kittithat Arnontavilas mrtomyum@gmail.com
- * @author Kittithat Arnontavilas <mrtomyum@gmail.com>
- * @author Thanasak Sompaisansin <jombthep@gmail.com>
- */
-$lang['menu']                  = 'ตัวจัดà¸à¸²à¸£à¸šà¸±à¸à¸Šà¸µà¸œà¸¹à¹‰à¹ƒà¸Šà¹‰';
-$lang['user_id']               = 'ผู้ใช้';
-$lang['user_pass']             = 'รหัสผ่าน';
-$lang['user_name']             = 'ชื่อจริง';
-$lang['user_mail']             = 'อีเมล';
-$lang['user_groups']           = 'à¸à¸¥à¸¸à¹ˆà¸¡';
-$lang['field']                 = 'ฟิลด์';
-$lang['value']                 = 'ค่า';
-$lang['add']                   = 'เพิ่ม';
-$lang['delete']                = 'ลบ';
-$lang['delete_selected']       = 'ลบที่เลือà¸';
-$lang['edit']                  = 'à¹à¸à¹‰à¹„ข';
-$lang['edit_prompt']           = 'à¹à¸à¹‰à¹„ขผู้ใช้คนนี้';
-$lang['modify']                = 'บันทึà¸à¸à¸²à¸£à¹à¸à¹‰à¹„ข';
-$lang['search']                = 'สืบค้น';
-$lang['search_prompt']         = 'ทำà¸à¸²à¸£à¸ªà¸·à¸šà¸„้น';
-$lang['clear']                 = 'รีเซ็ทตัวà¸à¸£à¸­à¸‡à¸„ำค้น';
-$lang['filter']                = 'ตัวà¸à¸£à¸­à¸‡';
-$lang['summary']               = 'à¹à¸ªà¸”งผู้ใช้ %1$d-%2$d จาà¸à¸—ี่พบ %3$d คน, จาà¸à¸—ั้งหมด %4$d คน';
-$lang['nonefound']             = 'ไม่พบผู้ใช้ จาà¸à¸—ั้งหมด %d คน';
-$lang['delete_ok']             = 'ลบชื่อผู้ใช้ %d คน';
-$lang['delete_fail']           = 'ไม่สามารถลบได้ %d คน';
-$lang['update_ok']             = 'ปรับปรุงข้อมูลผู้ใช้ สำเร็จ';
-$lang['update_fail']           = 'ปรับปรุงข้อมูลผู้ใช้ **ไม่สำเร็จ**';
-$lang['update_exists']         = 'ไม่สามารถเปลี่นชื่อผู้ใช้ได้ ชื่อผู้ใช้ที่ระบุ (%s) มีอยู่à¹à¸¥à¹‰à¸§ (à¸à¸²à¸£à¹€à¸›à¸¥à¸µà¹ˆà¸™à¸™à¹à¸›à¸¥à¸‡à¸­à¸·à¹ˆà¸™à¹† ยังคงทำได้)';
-$lang['start']                 = 'เริ่ม';
-$lang['prev']                  = 'à¸à¹ˆà¸­à¸™à¸«à¸™à¹‰à¸²';
-$lang['next']                  = 'ถัดไป';
-$lang['last']                  = 'สุดท้าย';
-$lang['edit_usermissing']      = 'หาผู้ใช้ที่เลือà¸à¹„ม่พบ, ชื่อผุ้ใช้ที่ระบุอาจจะถูà¸à¸¥à¸š หรือเปลี่ยนเป็นอย่างอื่น';
-$lang['user_notify']           = 'à¹à¸ˆà¹‰à¸‡à¹€à¸•ือนผู้ใช้';
-$lang['note_notify']           = 'จดหมายà¹à¸ˆà¹‰à¸‡à¹€à¸•ือนถูà¸à¸ªà¹ˆà¸‡à¸à¹‡à¸•่อเมื่อผู้ใช้ได้รับมอบรหัสผ่านใหม่';
-$lang['note_group']            = 'ผู้ใช้ใหม่จะถูà¸à¹€à¸žà¸´à¹ˆà¸¡à¹€à¸‚้าไปยังà¸à¸¥à¸¸à¹ˆà¸¡à¸›à¸£à¸´à¸¢à¸²à¸¢ (%s) หาà¸à¸¡à¸´à¹„ด้ระบุà¸à¸¥à¸¸à¹ˆà¸¡à¹€à¸­à¸²à¹„ว้';
-$lang['note_pass']             = 'รหัสผ่านจะถูà¸à¸ªà¸£à¹‰à¸²à¸‡à¹‚ดยอัตโนมัติ ถ้าเว้นว่างช่องà¸à¸£à¸­à¸ à¹à¸¥à¸°à¹€à¸›à¸´à¸”à¸à¸²à¸£à¹à¸ˆà¹‰à¸‡à¹€à¸•ือนผู้ใช้เอาไว้';
-$lang['add_ok']                = 'à¸à¸²à¸£à¹€à¸žà¸´à¹ˆà¸¡à¸œà¸¹à¹‰à¹ƒà¸Šà¹‰à¸ªà¸³à¹€à¸£à¹‡à¸ˆ';
-$lang['add_fail']              = 'à¸à¸²à¸£à¹€à¸žà¸´à¹ˆà¸¡à¸œà¸¹à¹‰à¹ƒà¸Šà¹‰à¸¥à¹‰à¸¡à¹€à¸«à¸¥à¸§';
-$lang['notify_ok']             = 'ส่งจดหมายà¹à¸ˆà¹‰à¸‡à¹€à¸•ือนไปà¹à¸¥à¹‰à¸§';
-$lang['notify_fail']           = 'ไม่สามารถส่งจดหมายà¹à¸ˆà¹‰à¸‡à¹€à¸•ือน';
diff --git a/wiki/lib/plugins/usermanager/lang/th/list.txt b/wiki/lib/plugins/usermanager/lang/th/list.txt
deleted file mode 100644
index fdf65b5..0000000
--- a/wiki/lib/plugins/usermanager/lang/th/list.txt
+++ /dev/null
@@ -1 +0,0 @@
-====== รายชื่อผู้ใช้ ======
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/tr/add.txt b/wiki/lib/plugins/usermanager/lang/tr/add.txt
deleted file mode 100644
index beedc0b..0000000
--- a/wiki/lib/plugins/usermanager/lang/tr/add.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Kullanıcı ekleme ======
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/tr/delete.txt b/wiki/lib/plugins/usermanager/lang/tr/delete.txt
deleted file mode 100644
index adb8e91..0000000
--- a/wiki/lib/plugins/usermanager/lang/tr/delete.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Kullanıcı silme =====
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/tr/edit.txt b/wiki/lib/plugins/usermanager/lang/tr/edit.txt
deleted file mode 100644
index d9f3b71..0000000
--- a/wiki/lib/plugins/usermanager/lang/tr/edit.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Kullanıcı Düzenleme =====
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/tr/intro.txt b/wiki/lib/plugins/usermanager/lang/tr/intro.txt
deleted file mode 100644
index 1edcb2c..0000000
--- a/wiki/lib/plugins/usermanager/lang/tr/intro.txt
+++ /dev/null
@@ -1 +0,0 @@
-====== Kullanıcı Yöneticisi ======
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/tr/lang.php b/wiki/lib/plugins/usermanager/lang/tr/lang.php
deleted file mode 100644
index 6329803..0000000
--- a/wiki/lib/plugins/usermanager/lang/tr/lang.php
+++ /dev/null
@@ -1,52 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author Aydın Coşkuner <aydinweb@gmail.com>
- * @author Cihan Kahveci <kahvecicihan@gmail.com>
- * @author Yavuz Selim <yavuzselim@gmail.com>
- * @author Caleb Maclennan <caleb@alerque.com>
- * @author farukerdemoncel@gmail.com
- */
-$lang['menu']                  = 'Kullanıcı Yönetimi';
-$lang['noauth']                = '(kullanıcı onaylaması yoktur)';
-$lang['nosupport']             = '(kullanıcı yönetimi desteklenmemektedir)';
-$lang['badauth']               = 'yanlış onaylama metodu';
-$lang['user_id']               = 'Kullanıcı';
-$lang['user_pass']             = 'Åžifre';
-$lang['user_name']             = 'Gerçek İsim';
-$lang['user_mail']             = 'Email';
-$lang['user_groups']           = 'Gruplar';
-$lang['field']                 = 'Alan';
-$lang['value']                 = 'DeÄŸer';
-$lang['add']                   = 'Ekle';
-$lang['delete']                = 'Sil';
-$lang['delete_selected']       = 'Seçilenleri Sil';
-$lang['edit']                  = 'Düzenle';
-$lang['edit_prompt']           = 'Bu kullanıcıyı düzenle';
-$lang['modify']                = 'DeÄŸiÅŸiklikleri kaydet';
-$lang['search']                = 'Arama';
-$lang['search_prompt']         = 'Aramayı Gerçekleştir';
-$lang['clear']                 = 'Arama ayarlarını sıfırla';
-$lang['filter']                = 'Filtre';
-$lang['summary']               = 'Bulunan %3$d kullanıcının %1$d-%2$d gösterilmektedir. Toplam %4$d kullanıcı bulunmaktadır.';
-$lang['nonefound']             = 'Hiç kullanıcı bulunamadı. Toplam %d kullanıcı bulunmaktadır.';
-$lang['delete_ok']             = '%d kullanıcılar silindi';
-$lang['delete_fail']           = '%d silinemedi.';
-$lang['update_ok']             = 'Kullanıcı başarı ile güncelleştirildi';
-$lang['update_fail']           = 'Kullanıcı güncelleştirilemedi';
-$lang['update_exists']         = 'Kullanıcı adı değiştirilemedi. Belirtilen kullanıcı adı (%s) zaten bulunmaktadır (yapılan diğer değişiklikler uygulanacaktır).';
-$lang['start']                 = 'baÅŸla';
-$lang['prev']                  = 'önceki';
-$lang['next']                  = 'sonraki';
-$lang['last']                  = 'sonuncu';
-$lang['edit_usermissing']      = 'Seçili kullanıcılar bulunamadı, belirtilen kullanıcı silinmiş ya da değiştirilmiş olabilir.';
-$lang['user_notify']           = 'Kullanıcıyı bilgilendir';
-$lang['note_notify']           = 'Bilgilendirme e-postaları sadece kullanıcıya yeni bir parola verildiğinde gönderilmektedir.';
-$lang['note_group']            = 'Yeni kullanıcılar bir grup belirtilmezse varsayılan (%s) gruba eklenecektir.';
-$lang['note_pass']             = 'Eğer alan boş bırakılırsa parola otomatik oluşturulacaktır ve kullanıcı bilgilendirme etkinleştirilecektir. ';
-$lang['add_ok']                = 'Kullanıcı başarı ile eklendi';
-$lang['add_fail']              = 'Kullanıcı ekleme başarısız';
-$lang['notify_ok']             = 'Bildirim emaili gönderildi';
-$lang['notify_fail']           = 'Bildirim emaili gönderilemedi';
diff --git a/wiki/lib/plugins/usermanager/lang/tr/list.txt b/wiki/lib/plugins/usermanager/lang/tr/list.txt
deleted file mode 100644
index 2314eb2..0000000
--- a/wiki/lib/plugins/usermanager/lang/tr/list.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Kullanıcı Listesi =====
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/uk/add.txt b/wiki/lib/plugins/usermanager/lang/uk/add.txt
deleted file mode 100644
index bc34697..0000000
--- a/wiki/lib/plugins/usermanager/lang/uk/add.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Додати кориÑтувача =====
diff --git a/wiki/lib/plugins/usermanager/lang/uk/delete.txt b/wiki/lib/plugins/usermanager/lang/uk/delete.txt
deleted file mode 100644
index 739340b..0000000
--- a/wiki/lib/plugins/usermanager/lang/uk/delete.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Ð’Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ ÐºÐ¾Ñ€Ð¸Ñтувача =====
diff --git a/wiki/lib/plugins/usermanager/lang/uk/edit.txt b/wiki/lib/plugins/usermanager/lang/uk/edit.txt
deleted file mode 100644
index efc84be..0000000
--- a/wiki/lib/plugins/usermanager/lang/uk/edit.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== Редагувати кориÑтувача =====
diff --git a/wiki/lib/plugins/usermanager/lang/uk/intro.txt b/wiki/lib/plugins/usermanager/lang/uk/intro.txt
deleted file mode 100644
index b658aff..0000000
--- a/wiki/lib/plugins/usermanager/lang/uk/intro.txt
+++ /dev/null
@@ -1 +0,0 @@
-====== ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ ÐºÐ¾Ñ€Ð¸Ñтувачами ======
diff --git a/wiki/lib/plugins/usermanager/lang/uk/lang.php b/wiki/lib/plugins/usermanager/lang/uk/lang.php
deleted file mode 100644
index 36b6f74..0000000
--- a/wiki/lib/plugins/usermanager/lang/uk/lang.php
+++ /dev/null
@@ -1,50 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Oleksiy Voronin <ovoronin@gmail.com>
- * @author serg_stetsuk <serg_stetsuk@ukr.net>
- * @author Oleksandr Kunytsia <okunia@gmail.com>
- */
-$lang['menu']                  = 'ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ ÐºÐ¾Ñ€Ð¸Ñтувачами';
-$lang['noauth']                = '(Ð°Ð²Ñ‚ÐµÐ½Ñ‚Ð¸Ñ„Ñ–ÐºÐ°Ñ†Ñ–Ñ ÐºÐ¾Ñ€Ð¸Ñтувачів не	доÑтупна)';
-$lang['nosupport']             = '(ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ ÐºÐ¾Ñ€Ð¸Ñтувачами не підтримуєтьÑÑ)';
-$lang['badauth']               = 'невірний механізм автентифікації';
-$lang['user_id']               = 'Ð†Ð¼â€™Ñ ÐºÐ¾Ñ€Ð¸Ñтувача';
-$lang['user_pass']             = 'Пароль';
-$lang['user_name']             = 'Повне ім’Ñ';
-$lang['user_mail']             = 'E-mail';
-$lang['user_groups']           = 'Групи';
-$lang['field']                 = 'Поле';
-$lang['value']                 = 'ЗначеннÑ';
-$lang['add']                   = 'Додати';
-$lang['delete']                = 'Видалити';
-$lang['delete_selected']       = 'Видалити вибраних';
-$lang['edit']                  = 'Змінити';
-$lang['edit_prompt']           = 'Змінити цього кориÑтувача';
-$lang['modify']                = 'Зберегти зміни';
-$lang['search']                = 'Пошук';
-$lang['search_prompt']         = 'Шукати';
-$lang['clear']                 = 'ОчиÑтити фільтр пошуку';
-$lang['filter']                = 'Фільтр';
-$lang['summary']               = 'Показано кориÑтувачі %1$d-%2$d з %3$d знайдених. Ð’Ñього кориÑтувачів: %4$d.';
-$lang['nonefound']             = 'Ðе знайдено жодного кориÑтувача. Ð’Ñього кориÑтувачів: %d.';
-$lang['delete_ok']             = 'Видалено кориÑтувачів: %d';
-$lang['delete_fail']           = 'Ðе вдалоÑÑ Ð²Ð¸Ð´Ð°Ð»Ð¸Ñ‚Ð¸ %d.';
-$lang['update_ok']             = 'Дані кориÑтувача оновлено';
-$lang['update_fail']           = 'Ðе вдалоÑÑ Ð¾Ð½Ð¾Ð²Ð¸Ñ‚Ð¸ дані кориÑтувача';
-$lang['update_exists']         = 'Ðе вдалоÑÑ Ð·Ð¼Ñ–Ð½Ð¸Ñ‚Ð¸ Ñ–Ð¼â€™Ñ ÐºÐ¾Ñ€Ð¸Ñтувача, такий кориÑтувач (%s) вже Ñ–Ñнує (вÑÑ– інші зміни будуть заÑтоÑовані).';
-$lang['start']                 = 'на початок';
-$lang['prev']                  = 'назад';
-$lang['next']                  = 'вперед';
-$lang['last']                  = 'в кінець';
-$lang['edit_usermissing']      = 'Обраного кориÑтувача не знайдено, можливо його було вилучено або змінено ще деÑÑŒ.';
-$lang['user_notify']           = 'Повідомити кориÑтувача';
-$lang['note_notify']           = 'ЛиÑти з повідомленнÑми відÑилаютьÑÑ Ð»Ð¸ÑˆÐµ у випадку видачі нового Ð¿Ð°Ñ€Ð¾Ð»Ñ ÐºÐ¾Ñ€Ð¸Ñтувачу.';
-$lang['note_group']            = 'Якщо не визначено групи, то нові кориÑтувачі будуть автоматично додані до групи за замовчуваннÑм (%s).';
-$lang['note_pass']             = 'Пароль буде згенеровано автоматично, Ñкщо поле Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð½Ðµ заповнено Ñ– увімкнено прапорець "повідомити кориÑтувача".';
-$lang['add_ok']                = 'КориÑтувача додано';
-$lang['add_fail']              = 'Ðеможливо додати кориÑтувача';
-$lang['notify_ok']             = 'ЛиÑта з повідомленнÑм надіÑлано';
-$lang['notify_fail']           = 'Ðеможливо виÑлати лиÑта з повідомленнÑм';
diff --git a/wiki/lib/plugins/usermanager/lang/uk/list.txt b/wiki/lib/plugins/usermanager/lang/uk/list.txt
deleted file mode 100644
index 76013a9..0000000
--- a/wiki/lib/plugins/usermanager/lang/uk/list.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== СпиÑок кориÑтувачів =====
diff --git a/wiki/lib/plugins/usermanager/lang/zh-tw/add.txt b/wiki/lib/plugins/usermanager/lang/zh-tw/add.txt
deleted file mode 100644
index 6e25f17..0000000
--- a/wiki/lib/plugins/usermanager/lang/zh-tw/add.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== 增加帳號 =====
diff --git a/wiki/lib/plugins/usermanager/lang/zh-tw/delete.txt b/wiki/lib/plugins/usermanager/lang/zh-tw/delete.txt
deleted file mode 100644
index 1a29ba3..0000000
--- a/wiki/lib/plugins/usermanager/lang/zh-tw/delete.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== 刪除帳號 =====
diff --git a/wiki/lib/plugins/usermanager/lang/zh-tw/edit.txt b/wiki/lib/plugins/usermanager/lang/zh-tw/edit.txt
deleted file mode 100644
index ec1c5d5..0000000
--- a/wiki/lib/plugins/usermanager/lang/zh-tw/edit.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== 修改帳號 =====
diff --git a/wiki/lib/plugins/usermanager/lang/zh-tw/import.txt b/wiki/lib/plugins/usermanager/lang/zh-tw/import.txt
deleted file mode 100644
index 925cdc9..0000000
--- a/wiki/lib/plugins/usermanager/lang/zh-tw/import.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-===== 批次匯入使用者 =====
-
-需æä¾› CSV æ ¼å¼çš„使用者列表檔案(UTF-8 編碼)。
-æ¯åˆ—至少 4 欄,ä¾åºç‚ºï¼šå¸³è™Ÿã€å§“åã€é›»éƒµã€ç¾¤çµ„。
-儿¬„以åŠå½¢é€—號 (,) 分隔,有åŠå½¢é€—號的字串å¯ç”¨åŠå½¢é›™å¼•號 (%%""%%) 分開,引號å¯ç”¨å斜線 (\) 跳脫。
-é‡è¤‡çš„使用者帳號會自動忽略。
-如需è¦ç¯„例檔案,å¯ç”¨ä¸Šé¢çš„「匯出使用者ã€å–得。
-
-系統會為æˆåŠŸåŒ¯å…¥çš„ä½¿ç”¨è€…ç”¢ç”Ÿå¯†ç¢¼ä¸¦å¯„ä¿¡é€šçŸ¥ã€‚
diff --git a/wiki/lib/plugins/usermanager/lang/zh-tw/intro.txt b/wiki/lib/plugins/usermanager/lang/zh-tw/intro.txt
deleted file mode 100644
index 32ccf6f..0000000
--- a/wiki/lib/plugins/usermanager/lang/zh-tw/intro.txt
+++ /dev/null
@@ -1 +0,0 @@
-====== 帳號管ç†å™¨ ======
diff --git a/wiki/lib/plugins/usermanager/lang/zh-tw/lang.php b/wiki/lib/plugins/usermanager/lang/zh-tw/lang.php
deleted file mode 100644
index 6155525..0000000
--- a/wiki/lib/plugins/usermanager/lang/zh-tw/lang.php
+++ /dev/null
@@ -1,76 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author chinsan <chinsan.tw@gmail.com>
- * @author Li-Jiun Huang <ljhuang.tw@gmail.com>
- * @author http://www.chinese-tools.com/tools/converter-simptrad.html
- * @author Wayne San <waynesan@zerozone.tw>
- * @author Li-Jiun Huang <ljhuang.tw@gmai.com>
- * @author Cheng-Wei Chien <e.cwchien@gmail.com>
- * @author Shuo-Ting Jian <shoting@gmail.com>
- * @author syaoranhinata@gmail.com
- * @author Ichirou Uchiki <syaoranhinata@gmail.com>
- * @author tsangho <ou4222@gmail.com>
- * @author Danny Lin <danny0838@gmail.com>
- */
-$lang['menu']                  = '帳號管ç†å™¨';
-$lang['noauth']                = '(帳號èªè­‰å°šæœªé–‹æ”¾)';
-$lang['nosupport']             = '(å°šä¸æ”¯æ´å¸³è™Ÿç®¡ç†)';
-$lang['badauth']               = '錯誤的èªè­‰æ©Ÿåˆ¶';
-$lang['user_id']               = '帳號';
-$lang['user_pass']             = '密碼';
-$lang['user_name']             = 'å稱';
-$lang['user_mail']             = '電郵';
-$lang['user_groups']           = '群組';
-$lang['field']                 = '欄ä½';
-$lang['value']                 = '設定值';
-$lang['add']                   = '增加';
-$lang['delete']                = '刪除';
-$lang['delete_selected']       = '刪除所é¸çš„';
-$lang['edit']                  = '修改';
-$lang['edit_prompt']           = '修改該帳號';
-$lang['modify']                = '儲存變更';
-$lang['search']                = 'æœå°‹';
-$lang['search_prompt']         = 'é–‹å§‹æœå°‹';
-$lang['clear']                 = 'é‡è¨­ç¯©é¸æ¢ä»¶';
-$lang['filter']                = 'ç¯©é¸æ¢ä»¶ (Filter)';
-$lang['export_all']            = '匯出所有使用者 (CSV)';
-$lang['export_filtered']       = '匯出篩é¸å¾Œçš„使用者列表 (CSV)';
-$lang['import']                = '匯入新使用者';
-$lang['line']                  = '列號';
-$lang['error']                 = '錯誤訊æ¯';
-$lang['summary']               = '顯示帳號 %1$d-%2$d,共 %3$d 筆符åˆã€‚共有 %4$d 個帳號。';
-$lang['nonefound']             = '找ä¸åˆ°å¸³è™Ÿã€‚共有 %d 個帳號。';
-$lang['delete_ok']             = '已刪除 %d 個帳號';
-$lang['delete_fail']           = '%d 個帳號無法刪除。';
-$lang['update_ok']             = '已更新該帳號';
-$lang['update_fail']           = '無法更新該帳號';
-$lang['update_exists']         = '無法變更帳號å稱 (%s) ,因為有åŒå帳號存在。其他修改則已套用。';
-$lang['start']                 = 'é–‹å§‹';
-$lang['prev']                  = '上一é ';
-$lang['next']                  = '下一é ';
-$lang['last']                  = '最後一é ';
-$lang['edit_usermissing']      = '找ä¸åˆ°é¸å–的帳號,å¯èƒ½å·²è¢«åˆªé™¤æˆ–改為其他å稱。';
-$lang['user_notify']           = '通知使用者';
-$lang['note_notify']           = 'é€šçŸ¥ä¿¡åªæœƒåœ¨æŒ‡å®šä½¿ç”¨è€…新密碼時寄é€ã€‚';
-$lang['note_group']            = '如果沒有指定群組,新使用者將會列入至é è¨­ç¾¤çµ„(%s)當中。';
-$lang['note_pass']             = '如果勾é¸äº†é€šçŸ¥ä½¿ç”¨è€…,而沒有輸入這個欄ä½ï¼Œå‰‡æœƒè‡ªå‹•產生一組密碼。';
-$lang['add_ok']                = '已新增使用者';
-$lang['add_fail']              = '無法新增使用者';
-$lang['notify_ok']             = '通知信已寄出';
-$lang['notify_fail']           = '通知信無法寄出';
-$lang['import_userlistcsv']    = '使用者列表檔案 (CSV):  ';
-$lang['import_header']         = '最近一次匯入 - 失敗';
-$lang['import_success_count']  = '使用者匯入:找到 %d 個使用者,已æˆåŠŸåŒ¯å…¥ %d 個。';
-$lang['import_failure_count']  = '使用者匯入:%d 個匯入失敗,列出於下。';
-$lang['import_error_fields']   = '欄ä½ä¸è¶³ï¼Œéœ€è¦ 4 個,找到 %d 個。';
-$lang['import_error_baduserid'] = '使用者帳號éºå¤±';
-$lang['import_error_badname']  = 'åç¨±ä¸æ­£ç¢º';
-$lang['import_error_badmail']  = '電郵ä½å€ä¸æ­£ç¢º';
-$lang['import_error_upload']   = '匯入失敗,CSV 檔案內容空白或無法匯入。';
-$lang['import_error_readfail'] = '匯入錯誤,無法讀å–上傳的檔案';
-$lang['import_error_create']   = '無法建立使用者';
-$lang['import_notify_fail']    = '通知訊æ¯ç„¡æ³•寄給已匯入的使用者 %s(電郵 %s)';
-$lang['import_downloadfailures'] = '下載失敗項的 CSV 檔案以供修正';
diff --git a/wiki/lib/plugins/usermanager/lang/zh-tw/list.txt b/wiki/lib/plugins/usermanager/lang/zh-tw/list.txt
deleted file mode 100644
index 1e539bd..0000000
--- a/wiki/lib/plugins/usermanager/lang/zh-tw/list.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== 帳號清單 =====
diff --git a/wiki/lib/plugins/usermanager/lang/zh/add.txt b/wiki/lib/plugins/usermanager/lang/zh/add.txt
deleted file mode 100644
index fd3b1e5..0000000
--- a/wiki/lib/plugins/usermanager/lang/zh/add.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== 添加用户 =====
diff --git a/wiki/lib/plugins/usermanager/lang/zh/delete.txt b/wiki/lib/plugins/usermanager/lang/zh/delete.txt
deleted file mode 100644
index dc6b7fc..0000000
--- a/wiki/lib/plugins/usermanager/lang/zh/delete.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== 删除用户 =====
diff --git a/wiki/lib/plugins/usermanager/lang/zh/edit.txt b/wiki/lib/plugins/usermanager/lang/zh/edit.txt
deleted file mode 100644
index 83b72df..0000000
--- a/wiki/lib/plugins/usermanager/lang/zh/edit.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== 编辑用户 =====
diff --git a/wiki/lib/plugins/usermanager/lang/zh/import.txt b/wiki/lib/plugins/usermanager/lang/zh/import.txt
deleted file mode 100644
index 243a53e..0000000
--- a/wiki/lib/plugins/usermanager/lang/zh/import.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-===== 批é‡å¯¼å…¥ç”¨æˆ· =====
-
-需è¦è‡³å°‘有 4 列的 CSV æ ¼å¼ç”¨æˆ·åˆ—表文件。列必须按顺åºåŒ…括:用户IDã€å…¨åã€ç”µå­é‚®ä»¶åœ°å€å’Œç»„。
-CSV 域需è¦ç”¨é€—å· (,) 分隔,字符串用英文åŒå¼•å· (%%""%%) åˆ†å¼€ã€‚åæ–œæ å¯ä»¥ç”¨æ¥è½¬ä¹‰ã€‚
-å¯ä»¥å°è¯•上é¢çš„“导入用户â€åŠŸèƒ½æ¥æŸ¥çœ‹ç¤ºä¾‹æ–‡ä»¶ã€‚é‡å¤çš„用户ID将被忽略。
-
-密ç ç”ŸæˆåŽä¼šé€šè¿‡ç”µå­é‚®ä»¶å‘é€ç»™æ¯ä¸ªæˆåŠŸå¯¼å…¥çš„ç”¨æˆ·ã€‚
\ No newline at end of file
diff --git a/wiki/lib/plugins/usermanager/lang/zh/intro.txt b/wiki/lib/plugins/usermanager/lang/zh/intro.txt
deleted file mode 100644
index 5f254be..0000000
--- a/wiki/lib/plugins/usermanager/lang/zh/intro.txt
+++ /dev/null
@@ -1 +0,0 @@
-====== 用户管ç†å™¨ ======
diff --git a/wiki/lib/plugins/usermanager/lang/zh/lang.php b/wiki/lib/plugins/usermanager/lang/zh/lang.php
deleted file mode 100644
index 5e9aa77..0000000
--- a/wiki/lib/plugins/usermanager/lang/zh/lang.php
+++ /dev/null
@@ -1,85 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author ZDYX <zhangduyixiong@gmail.com>
- * @author http://www.chinese-tools.com/tools/converter-tradsimp.html
- * @author Simon zhan <simonzhan@21cn.com>
- * @author ben <ben@livetom.com>
- * @author lainme <lainme993@gmail.com>
- * @author caii <zhoucaiqi@gmail.com>
- * @author Hiphen Lee <jacob.b.leung@gmail.com>
- * @author Shuo-Ting Jian <shoting@gmail.com>
- * @author Rachel <rzhang0802@gmail.com>
- * @author Yangyu Huang <yangyu.huang@gmail.com>
- * @author oott123 <ip.192.168.1.1@qq.com>
- * @author Garfield <garfield_550@outlook.com>
- */
-$lang['menu']                  = '用户管ç†å™¨';
-$lang['noauth']                = '(用户认è¯ä¸å¯ç”¨ï¼‰';
-$lang['nosupport']             = '(用户管ç†ä¸æ”¯æŒï¼‰';
-$lang['badauth']               = 'éžæ³•的认è¯ç»“æž„';
-$lang['user_id']               = '用户å';
-$lang['user_pass']             = '密ç ';
-$lang['user_name']             = '真实姓å';
-$lang['user_mail']             = 'Email';
-$lang['user_groups']           = '组 *';
-$lang['field']                 = 'æ ç›®';
-$lang['value']                 = '值';
-$lang['add']                   = '添加';
-$lang['delete']                = '删除';
-$lang['delete_selected']       = '删除选中的';
-$lang['edit']                  = '编辑';
-$lang['edit_prompt']           = '编辑该用户';
-$lang['modify']                = 'ä¿å­˜æ›´æ”¹';
-$lang['search']                = 'æœç´¢';
-$lang['search_prompt']         = '进行æœç´¢';
-$lang['clear']                 = 'é‡ç½®æœç´¢è¿‡æ»¤å™¨';
-$lang['filter']                = '过滤器';
-$lang['export_all']            = '导出所有用户(CSV)';
-$lang['export_filtered']       = '导出已筛选的用户列表(CSV)';
-$lang['import']                = '请输入新用户å';
-$lang['line']                  = '行å·';
-$lang['error']                 = 'ä¿¡æ¯é”™è¯¯';
-$lang['summary']               = '找到 %3$d å用户,显示其中第 %1$d 至 %2$d ä½ç”¨æˆ·ã€‚æ•°æ®åº“中共有 %4$d å用户。';
-$lang['nonefound']             = '没有找到用户。数æ®åº“中共有 %d å用户。';
-$lang['delete_ok']             = '用户 %d 已删除';
-$lang['delete_fail']           = '用户 %d 删除失败。';
-$lang['update_ok']             = '用户更新æˆåŠŸ';
-$lang['update_fail']           = '用户更新失败';
-$lang['update_exists']         = 'ç”¨æˆ·åæ›´æ”¹å¤±è´¥ï¼Œæ‚¨æŒ‡å®šçš„用户å(%s)已存在(其他更改将立å³ç”Ÿæ•ˆï¼‰ã€‚';
-$lang['start']                 = '第一页';
-$lang['prev']                  = 'å‰ä¸€é¡µ';
-$lang['next']                  = 'åŽä¸€é¡µ';
-$lang['last']                  = '最åŽä¸€é¡µ';
-$lang['edit_usermissing']      = '您指定的用户没有找到,å¯èƒ½ç”¨æˆ·å·²è¢«åˆ é™¤æˆ–用户å已更改。';
-$lang['user_notify']           = '通知用户';
-$lang['note_notify']           = 'é€šçŸ¥é‚®ä»¶åªæœ‰åœ¨ç”¨æˆ·èŽ·å¾—æ–°å¯†ç æ—¶æ‰ä¼šå‘é€ã€‚';
-$lang['note_group']            = '* 如果没有指定组,新用户将被添加到默认的组(%s)中。';
-$lang['note_pass']             = '如果输入框留空则自动生æˆå£ä»¤ï¼Œå¹¶ä¼šé€šçŸ¥ç”¨æˆ·ã€‚';
-$lang['add_ok']                = '用户添加æˆåŠŸ';
-$lang['add_fail']              = '用户添加失败';
-$lang['notify_ok']             = '通知邮件已å‘é€';
-$lang['notify_fail']           = '通知邮件无法å‘é€';
-$lang['import_userlistcsv']    = '用户列表文件(CSV)';
-$lang['import_header']         = '最近一次导入 - 失败';
-$lang['import_success_count']  = '用户导入:找到了 %d 个用户,%d 个用户被æˆåŠŸå¯¼å…¥ã€‚';
-$lang['import_failure_count']  = '用户导入:%d 个用户导入失败。下é¢åˆ—出了失败的用户。';
-$lang['import_error_fields']   = '域的数目ä¸è¶³ï¼Œå‘现 %d ä¸ªï¼Œéœ€è¦ 4 个。';
-$lang['import_error_baduserid'] = '用户ID丢失';
-$lang['import_error_badname']  = 'å称错误';
-$lang['import_error_badmail']  = '邮件地å€é”™è¯¯';
-$lang['import_error_upload']   = '导入失败。CSV 文件无法上传或是空的。';
-$lang['import_error_readfail'] = '导入失败。无法读å–上传的文件。';
-$lang['import_error_create']   = 'ä¸èƒ½åˆ›å»ºæ–°ç”¨æˆ·';
-$lang['import_notify_fail']    = 'é€šçŸ¥æ¶ˆæ¯æ— æ³•å‘é€åˆ°å¯¼å…¥çš„用户 %s,电å­é‚®ä»¶åœ°å€æ˜¯ %s。';
-$lang['import_downloadfailures'] = '下载CSV的错误信æ¯ä»¥ä¿®æ­£ã€‚';
-$lang['addUser_error_missing_pass'] = 'è¯·è®¾ç½®ä¸€ä¸ªå¯†ç æˆ–者激活用户通知æ¥å¯ç”¨å¯†ç ç”Ÿæˆã€‚';
-$lang['addUser_error_pass_not_identical'] = '输入的密ç ä¸ç›¸åŒã€‚';
-$lang['addUser_error_modPass_disabled'] = '修改密ç å·²ç¦ç”¨';
-$lang['addUser_error_name_missing'] = '请为新用户输入一个å字。';
-$lang['addUser_error_modName_disabled'] = '修改åå­—å·²ç¦ç”¨';
-$lang['addUser_error_mail_missing'] = '请为新用户输入一个电å­é‚®ä»¶åœ°å€ã€‚';
-$lang['addUser_error_modMail_disabled'] = '修改邮件地å€å·²ç¦ç”¨';
-$lang['addUser_error_create_event_failed'] = '一个æ’件阻止了添加新用户。请查看其它å¯èƒ½çš„æ¶ˆæ¯æ¥èŽ·å–æ›´å¤šä¿¡æ¯ã€‚';
diff --git a/wiki/lib/plugins/usermanager/lang/zh/list.txt b/wiki/lib/plugins/usermanager/lang/zh/list.txt
deleted file mode 100644
index e62a85b..0000000
--- a/wiki/lib/plugins/usermanager/lang/zh/list.txt
+++ /dev/null
@@ -1 +0,0 @@
-===== 用户列表 =====
diff --git a/wiki/lib/plugins/usermanager/plugin.info.txt b/wiki/lib/plugins/usermanager/plugin.info.txt
deleted file mode 100644
index 607eca7..0000000
--- a/wiki/lib/plugins/usermanager/plugin.info.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-base   usermanager
-author Chris Smith
-email  chris@jalakai.co.uk
-date   2015-07-15
-name   User Manager
-desc   Manage DokuWiki user accounts
-url    http://dokuwiki.org/plugin:usermanager
diff --git a/wiki/lib/plugins/usermanager/script.js b/wiki/lib/plugins/usermanager/script.js
deleted file mode 100644
index de01324..0000000
--- a/wiki/lib/plugins/usermanager/script.js
+++ /dev/null
@@ -1,8 +0,0 @@
-/**
- * Add JavaScript confirmation to the User Delete button
- */
-jQuery(function(){
-    jQuery('#usrmgr__del').click(function(){
-        return confirm(LANG.del_confirm);
-    });
-});
diff --git a/wiki/lib/plugins/usermanager/style.css b/wiki/lib/plugins/usermanager/style.css
deleted file mode 100644
index 9028fed..0000000
--- a/wiki/lib/plugins/usermanager/style.css
+++ /dev/null
@@ -1,33 +0,0 @@
-/* User Manager specific styles */
-#user__manager tr.disabled {
-  color: #6f6f6f;
-  background: #e4e4e4;
-}
-#user__manager tr.user_info {
-  vertical-align: top;
-}
-#user__manager div.edit_user {
-  width: 46%;
-  float: left;
-}
-#user__manager table {
-  margin-bottom: 1em;
-}
-#user__manager ul.notes {
-  padding-left: 0;
-  padding-right: 1.4em;
-}
-#user__manager button[disabled] {
-  color: #ccc!important;
-  border-color: #ccc!important;
-}
-#user__manager .import_users {
-  margin-top: 1.4em;
-}
-#user__manager .import_failures {
-  margin-top: 1.4em;
-}
-#user__manager .import_failures td.lineno {
-  text-align: center;
-}
-/* IE won't understand but doesn't require it */
diff --git a/wiki/lib/scripts/behaviour.js b/wiki/lib/scripts/behaviour.js
deleted file mode 100644
index 18308d6..0000000
--- a/wiki/lib/scripts/behaviour.js
+++ /dev/null
@@ -1,195 +0,0 @@
-/**
- * Hides elements with a slide animation
- *
- * @param {function} fn optional callback to run after hiding
- * @param {bool} noaria supress aria-expanded state setting
- * @author Adrian Lang <mail@adrianlang.de>
- */
-jQuery.fn.dw_hide = function(fn, noaria) {
-    if(!noaria) this.attr('aria-expanded', 'false');
-    return this.slideUp('fast', fn);
-};
-
-/**
- * Unhides elements with a slide animation
- *
- * @param {function} fn optional callback to run after hiding
- * @param {bool} noaria supress aria-expanded state setting
- * @author Adrian Lang <mail@adrianlang.de>
- */
-jQuery.fn.dw_show = function(fn, noaria) {
-    if(!noaria) this.attr('aria-expanded', 'true');
-    return this.slideDown('fast', fn);
-};
-
-/**
- * Toggles visibility of an element using a slide element
- *
- * @param {bool} state the current state of the element (optional)
- * @param {function} fn callback after the state has been toggled
- * @param {bool} noaria supress aria-expanded state setting
- */
-jQuery.fn.dw_toggle = function(state, fn, noaria) {
-    return this.each(function() {
-        var $this = jQuery(this);
-        if (typeof state === 'undefined') {
-            state = $this.is(':hidden');
-        }
-        $this[state ? "dw_show" : "dw_hide" ](fn, noaria);
-    });
-};
-
-/**
- * Automatic behaviours
- *
- * This class wraps various JavaScript functionalities that are triggered
- * automatically whenever a certain object is in the DOM or a certain CSS
- * class was found
- */
-var dw_behaviour = {
-
-    init: function(){
-        dw_behaviour.focusMarker();
-        dw_behaviour.scrollToMarker();
-        dw_behaviour.removeHighlightOnClick();
-        dw_behaviour.quickSelect();
-        dw_behaviour.checkWindowsShares();
-        dw_behaviour.subscription();
-
-        dw_behaviour.revisionBoxHandler();
-        jQuery(document).on('click','#page__revisions input[type=checkbox]',
-            dw_behaviour.revisionBoxHandler
-        );
-
-        jQuery('.bounce').effect('bounce', {times:10}, 2000 );
-    },
-
-    /**
-     * Looks for an element with the ID scroll__here at scrolls to it
-     */
-    scrollToMarker: function(){
-        var $obj = jQuery('#scroll__here');
-        if($obj.length) {
-            if($obj.offset().top != 0) {
-                jQuery('html, body').animate({
-                    scrollTop: $obj.offset().top - 100
-                }, 500);
-            } else {
-                // hidden object have no offset but can still be scrolled into view
-                $obj[0].scrollIntoView();
-            }
-        }
-    },
-
-    /**
-     * Looks for an element with the ID focus__this at sets focus to it
-     */
-    focusMarker: function(){
-        jQuery('#focus__this').focus();
-    },
-
-    /**
-     * Remove all search highlighting when clicking on a highlighted term
-     */
-    removeHighlightOnClick: function(){
-        jQuery('span.search_hit').click(
-            function(e){
-                jQuery(e.target).removeClass('search_hit', 1000);
-            }
-        );
-    },
-
-    /**
-     * Autosubmit quick select forms
-     *
-     * When a <select> tag has the class "quickselect", this script will
-     * automatically submit its parent form when the select value changes.
-     * It also hides the submit button of the form.
-     *
-     * @author Andreas Gohr <andi@splitbrain.org>
-     */
-    quickSelect: function(){
-        jQuery('select.quickselect')
-            .change(function(e){ e.target.form.submit(); })
-            .closest('form').find(':button').not('.show').hide();
-    },
-
-    /**
-     * Display error for Windows Shares on browsers other than IE
-     *
-     * @author Michael Klier <chi@chimeric.de>
-     */
-    checkWindowsShares: function() {
-        if(!LANG.nosmblinks || navigator.userAgent.match(/(Trident|MSIE)/)) {
-            // No warning requested or none necessary
-            return;
-        }
-
-        jQuery('a.windows').on('click', function(){
-            alert(LANG.nosmblinks.replace(/\\n/,"\n"));
-        });
-    },
-
-    /**
-     * Hide list subscription style if target is a page
-     *
-     * @author Adrian Lang <lang@cosmocode.de>
-     * @author Pierre Spring <pierre.spring@caillou.ch>
-     */
-    subscription: function(){
-        var $form, $list, $digest;
-
-        $form = jQuery('#subscribe__form');
-        if (0 === $form.length) return;
-
-        $list = $form.find("input[name='sub_style'][value='list']");
-        $digest = $form.find("input[name='sub_style'][value='digest']");
-
-        $form.find("input[name='sub_target']")
-            .click(
-                function () {
-                    var $this = jQuery(this), show_list;
-                    if (!$this.prop('checked')) {
-                        return;
-                    }
-
-                    show_list = $this.val().match(/:$/);
-                    $list.parent().dw_toggle(show_list);
-                    if (!show_list && $list.prop('checked')) {
-                        $digest.prop('checked', 'checked');
-                    }
-                }
-            )
-            .filter(':checked')
-            .click();
-    },
-
-    /**
-     * disable multiple revisions checkboxes if two are checked
-     *
-     * @author Andreas Gohr <andi@splitbrain.org>
-     * @author Anika Henke <anika@selfthinker.org>
-     */
-    revisionBoxHandler: function() {
-        var $revisions = jQuery('#page__revisions');
-        var $all       = jQuery('input[type=checkbox]', $revisions);
-        var $checked   = $all.filter(':checked');
-        var $button    = jQuery('button', $revisions);
-
-        if($checked.length < 2) {
-            $all.removeAttr('disabled');
-            $button.attr('disabled', true);
-        } else {
-            $all.attr('disabled', true);
-            $button.removeAttr('disabled');
-            $checked.each(function(i) {
-                jQuery(this).removeAttr('disabled');
-                if(i>1) {
-                    jQuery(this).attr('checked', false);
-                }
-            });
-        }
-    }
-};
-
-jQuery(dw_behaviour.init);
diff --git a/wiki/lib/scripts/compatibility.js b/wiki/lib/scripts/compatibility.js
deleted file mode 100644
index 154aead..0000000
--- a/wiki/lib/scripts/compatibility.js
+++ /dev/null
@@ -1,42 +0,0 @@
-/**
- * Mark a JavaScript function as deprecated
- *
- * This will print a warning to the JavaScript console (if available) in
- * Firebug and Chrome and a stack trace (if available) to easily locate the
- * problematic function call.
- *
- * @param msg optional message to print
- */
-function DEPRECATED(msg){
-    if(!window.console) return;
-    if(!msg) msg = '';
-
-    var func;
-    if(arguments.callee) func = arguments.callee.caller.name;
-    if(func) func = ' '+func+'()';
-    var line = 'DEPRECATED function call'+func+'. '+msg;
-
-    if(console.warn){
-        console.warn(line);
-    }else{
-        console.log(line);
-    }
-
-    if(console.trace) console.trace();
-}
-
-/**
- * Construct a wrapper function for deprecated function names
- *
- * This function returns a wrapper function which just calls DEPRECATED
- * and the new function.
- *
- * @param func    The new function
- * @param context Optional; The context (`this`) of the call
- */
-function DEPRECATED_WRAP(func, context) {
-    return function () {
-        DEPRECATED();
-        return func.apply(context || this, arguments);
-    };
-}
diff --git a/wiki/lib/scripts/cookie.js b/wiki/lib/scripts/cookie.js
deleted file mode 100644
index 8417d20..0000000
--- a/wiki/lib/scripts/cookie.js
+++ /dev/null
@@ -1,64 +0,0 @@
-/**
-* Handles the cookie used by several JavaScript functions
-*
-* Only a single cookie is written and read. You may only save
-* simple name-value pairs - no complex types!
-*
-* You should only use the getValue and setValue methods
-*
-* @author Andreas Gohr <andi@splitbrain.org>
-* @author Michal Rezler <m.rezler@centrum.cz>
-*/
-var DokuCookie = {
-    data: {},
-    name: 'DOKU_PREFS',
-
-    /**
-     * Save a value to the cookie
-     *
-     * @author Andreas Gohr <andi@splitbrain.org>
-     */
-    setValue: function(key,val){
-        var text = [],
-            _this = this;
-        this.init();
-        this.data[key] = val;
-
-        //save the whole data array
-        jQuery.each(_this.data, function (key, val) {
-            if (_this.data.hasOwnProperty(key)) {
-                text.push(encodeURIComponent(key)+'#'+encodeURIComponent(val));
-            }
-        });
-        jQuery.cookie(this.name, text.join('#'), {expires: 365, path: DOKU_COOKIE_PARAM.path, secure: DOKU_COOKIE_PARAM.secure});
-    },
-
-    /**
-     * Get a Value from the Cookie
-     *
-     * @author Andreas Gohr <andi@splitbrain.org>
-     */
-    getValue: function(key){
-        this.init();
-        return this.data[key];
-    },
-
-    /**
-     * Loads the current set cookie
-     *
-     * @author Andreas Gohr <andi@splitbrain.org>
-     */
-    init: function(){
-        var text, parts, i;
-        if(!jQuery.isEmptyObject(this.data)) {
-            return;
-        }
-        text = jQuery.cookie(this.name);
-        if(text){
-            parts = text.split('#');
-            for(i = 0; i < parts.length; i += 2){
-                this.data[decodeURIComponent(parts[i])] = decodeURIComponent(parts[i+1]);
-            }
-        }
-    }
-};
diff --git a/wiki/lib/scripts/delay.js b/wiki/lib/scripts/delay.js
deleted file mode 100644
index edd53de..0000000
--- a/wiki/lib/scripts/delay.js
+++ /dev/null
@@ -1,70 +0,0 @@
-/**
- * Manage delayed and timed actions
- *
- * @license GPL2 (http://www.gnu.org/licenses/gpl.html)
- * @author  Adrian Lang <lang@cosmocode.de>
- */
-
-/**
- * Provide a global callback for window.setTimeout
- *
- * To get a timeout for non-global functions, just call
- * delay.add(func, timeout).
- */
-var timer = {
-    _cur_id: 0,
-    _handlers: {},
-
-    execDispatch: function (id) {
-        timer._handlers[id]();
-    },
-
-    add: function (func, timeout) {
-        var id = ++timer._cur_id;
-        timer._handlers[id] = func;
-        return window.setTimeout('timer.execDispatch(' + id + ')', timeout);
-    }
-};
-
-/**
- * Provide a delayed start
- *
- * To call a function with a delay, just create a new Delay(func, timeout) and
- * call that object’s method “startâ€.
- */
-function Delay (func, timeout) {
-    this.func = func;
-    if (timeout) {
-        this.timeout = timeout;
-    }
-}
-
-Delay.prototype = {
-    func: null,
-    timeout: 500,
-
-    delTimer: function () {
-        if (this.timer !== null) {
-            window.clearTimeout(this.timer);
-            this.timer = null;
-        }
-    },
-
-    start: function () {
-        DEPRECATED('don\'t use the Delay object, use window.timeout with a callback instead');
-        this.delTimer();
-        var _this = this;
-        this.timer = timer.add(function () { _this.exec.call(_this); },
-                               this.timeout);
-
-        this._data = {
-            _this: arguments[0],
-            _params: Array.prototype.slice.call(arguments, 2)
-        };
-    },
-
-    exec: function () {
-        this.delTimer();
-        this.func.call(this._data._this, this._data._params);
-    }
-};
diff --git a/wiki/lib/scripts/edit.js b/wiki/lib/scripts/edit.js
deleted file mode 100644
index b3e97b6..0000000
--- a/wiki/lib/scripts/edit.js
+++ /dev/null
@@ -1,308 +0,0 @@
-/**
- * Functions for text editing (toolbar stuff)
- *
- * @todo most of the stuff in here should be revamped and then moved to toolbar.js
- * @author Andreas Gohr <andi@splitbrain.org>
- */
-
-/**
- * Creates a toolbar button through the DOM
- * Called for each entry of toolbar definition array (built by inc/toolbar.php and extended via js)
- *
- * Style the buttons through the toolbutton class
- *
- * @param {string} icon      image filename, relative to folder lib/images/toolbar/
- * @param {string} label     title of button, show on mouseover
- * @param {string} key       hint in title of button for access key
- * @param {string} id        id of button, and '<id>_ico' of icon
- * @param {string} classname for styling buttons
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- * @author Michal Rezler <m.rezler@centrum.cz>
- */
-function createToolButton(icon,label,key,id,classname){
-    var $btn = jQuery(document.createElement('button')),
-        $ico = jQuery(document.createElement('img'));
-
-    // prepare the basic button stuff
-    $btn.addClass('toolbutton');
-    if(classname){
-        $btn.addClass(classname);
-    }
-
-    $btn.attr('title', label).attr('aria-controls', 'wiki__text');
-    if(key){
-        $btn.attr('title', label + ' ['+key.toUpperCase()+']')
-            .attr('accessKey', key);
-    }
-
-    // set IDs if given
-    if(id){
-        $btn.attr('id', id);
-        $ico.attr('id', id+'_ico');
-    }
-
-    // create the icon and add it to the button
-    if(icon.substr(0,1) !== '/'){
-        icon = DOKU_BASE + 'lib/images/toolbar/' + icon;
-    }
-    $ico.attr('src', icon);
-    $ico.attr('alt', '');
-    $ico.attr('width', 16);
-    $ico.attr('height', 16);
-    $btn.append($ico);
-
-    // we have to return a DOM object (for compatibility reasons)
-    return $btn[0];
-}
-
-/**
- * Creates a picker window for inserting text
- *
- * The given list can be an associative array with text,icon pairs
- * or a simple list of text. Style the picker window through the picker
- * class or the picker buttons with the pickerbutton class. Picker
- * windows are appended to the body and created invisible.
- *
- * @param  {string} id    the ID to assign to the picker
- * @param  {Array}  props the properties for the picker
- * @param  {string} edid  the ID of the textarea
- * @return DOMobject    the created picker
- * @author Andreas Gohr <andi@splitbrain.org>
- */
-function createPicker(id,props,edid){
-    // create the wrapping div
-    var $picker = jQuery(document.createElement('div'));
-
-    $picker.addClass('picker a11y');
-    if(props['class']){
-        $picker.addClass(props['class']);
-    }
-
-    $picker.attr('id', id).css('position', 'absolute');
-
-    function $makebutton(title) {
-        var $btn = jQuery(document.createElement('button'))
-            .addClass('pickerbutton').attr('title', title)
-            .attr('aria-controls', edid)
-            .on('click', bind(pickerInsert, title, edid))
-            .appendTo($picker);
-        return $btn;
-    }
-
-    jQuery.each(props.list, function (key, item) {
-        if (!props.list.hasOwnProperty(key)) {
-            return;
-        }
-
-        if(isNaN(key)){
-            // associative array -> treat as text => image pairs
-            if (item.substr(0,1) !== '/') {
-                item = DOKU_BASE+'lib/images/'+props.icobase+'/'+item;
-            }
-            jQuery(document.createElement('img'))
-                .attr('src', item)
-                .attr('alt', '')
-                .appendTo($makebutton(key));
-        }else if (typeof item == 'string'){
-            // a list of text -> treat as text picker
-            $makebutton(item).text(item);
-        }else{
-            // a list of lists -> treat it as subtoolbar
-            initToolbar($picker,edid,props.list);
-            return false; // all buttons handled already
-        }
-
-    });
-    jQuery('body').append($picker);
-
-    // we have to return a DOM object (for compatibility reasons)
-    return $picker[0];
-}
-
-/**
- * Called by picker buttons to insert Text and close the picker again
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- */
-function pickerInsert(text,edid){
-    insertAtCarret(edid,text);
-    pickerClose();
-}
-
-/**
- * Add button action for signature button
- *
- * @param  {jQuery} $btn   Button element to add the action to
- * @param  {Array}  props  Associative array of button properties
- * @param  {string} edid   ID of the editor textarea
- * @return {string} picker id for aria-controls attribute
- * @author Gabriel Birke <birke@d-scribe.de>
- */
-function addBtnActionSignature($btn, props, edid) {
-    if(typeof SIG != 'undefined' && SIG != ''){
-        $btn.on('click', function (e) {
-            insertAtCarret(edid,SIG);
-            e.preventDefault();
-        });
-        return edid;
-    }
-    return '';
-}
-
-/**
- * Determine the current section level while editing
- *
- * @param {string} textboxId   ID of the text field
- *
- * @author Andreas Gohr <gohr@cosmocode.de>
- */
-function currentHeadlineLevel(textboxId){
-    var field = jQuery('#' + textboxId)[0],
-        s = false,
-        opts = [field.value.substr(0,DWgetSelection(field).start)];
-    if (field.form.prefix) {
-        // we need to look in prefix context
-        opts.push(field.form.prefix.value);
-    }
-
-    jQuery.each(opts, function (_, opt) {
-        // Check whether there is a headline in the given string
-        var str = "\n" + opt,
-            lasthl = str.lastIndexOf("\n==");
-        if (lasthl !== -1) {
-            s = str.substr(lasthl+1,6);
-            return false;
-        }
-    });
-    if (s === false) {
-        return 0;
-    }
-    return 7 - s.match(/^={2,6}/)[0].length;
-}
-
-
-/**
- * global var used for not saved yet warning
- */
-window.textChanged = false;
-
-/**
- * global var which stores original editor content
- */
-window.doku_edit_text_content = '';
-/**
- * Delete the draft before leaving the page
- */
-function deleteDraft() {
-    if (is_opera || window.keepDraft) {
-        return;
-    }
-
-    var $dwform = jQuery('#dw__editform');
-
-    if($dwform.length === 0) {
-        return;
-    }
-
-    // remove a possibly saved draft using ajax
-    jQuery.post(DOKU_BASE + 'lib/exe/ajax.php',
-        {
-            call: 'draftdel',
-            id: $dwform.find('input[name=id]').val()
-        }
-    );
-}
-
-/**
- * Activate "not saved" dialog, add draft deletion to page unload,
- * add handlers to monitor changes
- * Note: textChanged could be set by e.g. html_edit() as well
- *
- * Sets focus to the editbox as well
- */
-jQuery(function () {
-    var $editform = jQuery('#dw__editform');
-    if ($editform.length == 0) {
-        return;
-    }
-
-    var $edit_text = jQuery('#wiki__text');
-    if ($edit_text.length > 0) {
-        if($edit_text.attr('readOnly')) {
-            return;
-        }
-
-        // set focus and place cursor at the start
-        var sel = DWgetSelection($edit_text[0]);
-        sel.start = 0;
-        sel.end   = 0;
-        DWsetSelection(sel);
-        $edit_text.focus();
-
-        doku_edit_text_content = $edit_text.val();
-    }
-
-    var changeHandler = function() {
-        doku_hasTextBeenModified();
-
-        doku_summaryCheck();
-    };
-
-    $editform.change(changeHandler);
-    $editform.keydown(changeHandler);
-
-    window.onbeforeunload = function(){
-        if(window.textChanged) {
-            return LANG.notsavedyet;
-        }
-    };
-    window.onunload = deleteDraft;
-
-    // reset change memory var on submit
-    jQuery('#edbtn__save').click(
-        function() {
-            window.onbeforeunload = '';
-            textChanged = false;
-        }
-    );
-    jQuery('#edbtn__preview').click(
-        function() {
-            window.onbeforeunload = '';
-            textChanged = false;
-            window.keepDraft = true; // needed to keep draft on page unload
-        }
-    );
-
-    var $summary = jQuery('#edit__summary');
-    $summary.change(doku_summaryCheck);
-    $summary.keyup(doku_summaryCheck);
-
-    if (textChanged) doku_summaryCheck();
-});
-
-/**
- * Updates textChanged variable if content of the editor has been modified
- */
-function doku_hasTextBeenModified() {
-    if (!textChanged) {
-        var $edit_text = jQuery('#wiki__text');
-
-        if ($edit_text.length > 0) {
-            textChanged = doku_edit_text_content != $edit_text.val();
-        } else {
-            textChanged = true;
-        }
-    }
-}
-
-/**
- * Checks if a summary was entered - if not the style is changed
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- */
-function doku_summaryCheck(){
-    var $sum = jQuery('#edit__summary'),
-        missing = $sum.val() === '';
-    $sum.toggleClass('missing', missing).toggleClass('edit', !missing);
-}
diff --git a/wiki/lib/scripts/editor.js b/wiki/lib/scripts/editor.js
deleted file mode 100644
index c9cb312..0000000
--- a/wiki/lib/scripts/editor.js
+++ /dev/null
@@ -1,205 +0,0 @@
-/**
- * The DokuWiki editor features
- *
- * These are the advanced features of the editor. It does NOT contain any
- * code for the toolbar buttons and it functions. See toolbar.js for that.
- */
-
-var dw_editor = {
-
-    /**
-     * initialize the default editor functionality
-     *
-     * All other functions can also be called separately for non-default
-     * textareas
-     */
-    init: function(){
-        var $editor = jQuery('#wiki__text');
-        if($editor.length === 0) {
-            return;
-        }
-
-        dw_editor.initSizeCtl('#size__ctl',$editor);
-
-        if($editor.attr('readOnly')) {
-            return;
-        }
-
-        $editor.keydown(dw_editor.keyHandler);
-
-    },
-
-    /**
-     * Add the edit window size and wrap controls
-     *
-     * Initial values are read from cookie if it exists
-     *
-     * @param selector ctlarea the div to place the controls
-     * @param selector editor  the textarea to control
-     */
-    initSizeCtl: function(ctlarea,editor){
-        var $ctl      = jQuery(ctlarea),
-            $textarea = jQuery(editor);
-
-        if($ctl.length === 0 || $textarea.length === 0) {
-            return;
-        }
-
-        $textarea.css('height', DokuCookie.getValue('sizeCtl') || '300px');
-
-        var wrp = DokuCookie.getValue('wrapCtl');
-        if(wrp){
-            dw_editor.setWrap($textarea[0], wrp);
-        } // else use default value
-
-        jQuery.each([
-            ['larger', function(){dw_editor.sizeCtl(editor,100);}],
-            ['smaller', function(){dw_editor.sizeCtl(editor,-100);}],
-            ['wrap', function(){dw_editor.toggleWrap(editor);}]
-        ], function (_, img) {
-            jQuery(document.createElement('img'))
-                .attr('src', DOKU_BASE+'lib/images/' + img[0] + '.gif')
-                .attr('alt', '')
-                .click(img[1])
-                .appendTo($ctl);
-        });
-    },
-
-    /**
-     * This sets the vertical size of the editbox and adjusts the cookie
-     *
-     * @param selector editor  the textarea to control
-     * @param int val          the relative value to resize in pixel
-     */
-    sizeCtl: function(editor,val){
-        var $textarea = jQuery(editor),
-            height = parseInt($textarea.css('height')) + val;
-        $textarea.css('height', height+'px');
-        DokuCookie.setValue('sizeCtl',$textarea.css('height'));
-    },
-
-    /**
-     * Toggle the wrapping mode of the editor textarea and adjusts the
-     * cookie
-     *
-     * @param selector editor  the textarea to control
-     */
-    toggleWrap: function(editor){
-        var $textarea = jQuery(editor),
-            wrap = $textarea.attr('wrap');
-        dw_editor.setWrap($textarea[0],
-                          (wrap && wrap.toLowerCase() == 'off') ? 'soft' : 'off');
-        DokuCookie.setValue('wrapCtl',$textarea.attr('wrap'));
-    },
-
-    /**
-     * Set the wrapping mode of a textarea
-     *
-     * @author Fluffy Convict <fluffyconvict@hotmail.com>
-     * @author <shutdown@flashmail.com>
-     * @link   http://news.hping.org/comp.lang.javascript.archive/12265.html
-     * @link   https://bugzilla.mozilla.org/show_bug.cgi?id=41464
-     * @param  DomObject textarea
-     * @param  string wrapAttrValue
-     */
-    setWrap: function(textarea, wrapAttrValue){
-        textarea.setAttribute('wrap', wrapAttrValue);
-
-        // Fix display for mozilla
-        var parNod = textarea.parentNode;
-        var nxtSib = textarea.nextSibling;
-        parNod.removeChild(textarea);
-        parNod.insertBefore(textarea, nxtSib);
-    },
-
-    /**
-     * Make intended formattings easier to handle
-     *
-     * Listens to all key inputs and handle indentions
-     * of lists and code blocks
-     *
-     * Currently handles space, backspace, enter and
-     * ctrl-enter presses
-     *
-     * @author Andreas Gohr <andi@splitbrain.org>
-     * @fixme handle tabs
-     * @param event e - the key press event object
-     */
-    keyHandler: function(e){
-        if(jQuery.inArray(e.keyCode,[8, 10, 13, 32]) === -1) {
-            return;
-        }
-        var selection = DWgetSelection(this);
-        if(selection.getLength() > 0) {
-            return; //there was text selected, keep standard behavior
-        }
-        var search    = "\n"+this.value.substr(0,selection.start);
-        var linestart = Math.max(search.lastIndexOf("\n"),
-                                 search.lastIndexOf("\r")); //IE workaround
-        search = search.substr(linestart);
-
-        if((e.keyCode == 13 || e.keyCode == 10) && e.ctrlKey) { // Ctrl-Enter (With Chrome workaround)
-            // Submit current edit
-            jQuery('#edbtn__save').click();
-            e.preventDefault(); // prevent enter key
-            return false;
-        }else if(e.keyCode == 13){ // Enter
-            // keep current indention for lists and code
-            var match = search.match(/(\n  +([\*-] ?)?)/);
-            if(match){
-                var scroll = this.scrollHeight;
-                var match2 = search.match(/^\n  +[\*-]\s*$/);
-                // Cancel list if the last item is empty (i. e. two times enter)
-                if (match2 && this.value.substr(selection.start).match(/^($|\r?\n)/)) {
-                    this.value = this.value.substr(0, linestart) + "\n" +
-                                 this.value.substr(selection.start);
-                    selection.start = linestart + 1;
-                    selection.end = linestart + 1;
-                    DWsetSelection(selection);
-                } else {
-                    insertAtCarret(this.id,match[1]);
-                }
-                this.scrollTop += (this.scrollHeight - scroll);
-                e.preventDefault(); // prevent enter key
-                return false;
-            }
-        }else if(e.keyCode == 8){ // Backspace
-            // unindent lists
-            var match = search.match(/(\n  +)([*-] ?)$/);
-            if(match){
-                var spaces = match[1].length-1;
-
-                if(spaces > 3){ // unindent one level
-                    this.value = this.value.substr(0,linestart)+
-                                 this.value.substr(linestart+2);
-                    selection.start = selection.start - 2;
-                    selection.end   = selection.start;
-                }else{ // delete list point
-                    this.value = this.value.substr(0,linestart)+
-                                 this.value.substr(selection.start);
-                    selection.start = linestart;
-                    selection.end   = linestart;
-                }
-                DWsetSelection(selection);
-                e.preventDefault(); // prevent backspace
-                return false;
-            }
-        }else if(e.keyCode == 32){ // Space
-            // intend list item
-            var match = search.match(/(\n  +)([*-] )$/);
-            if(match){
-                this.value = this.value.substr(0,linestart)+'  '+
-                             this.value.substr(linestart);
-                selection.start = selection.start + 2;
-                selection.end   = selection.start;
-                DWsetSelection(selection);
-                e.preventDefault(); // prevent space
-                return false;
-            }
-        }
-    }
-
-
-};
-
-jQuery(dw_editor.init);
diff --git a/wiki/lib/scripts/fileuploader.js b/wiki/lib/scripts/fileuploader.js
deleted file mode 100644
index d627895..0000000
--- a/wiki/lib/scripts/fileuploader.js
+++ /dev/null
@@ -1,1249 +0,0 @@
-/**
- * http://github.com/valums/file-uploader
- *
- * Multiple file upload component with progress-bar, drag-and-drop.
- * © 2010 Andrew Valums ( andrew(at)valums.com )
- *
- * Licensed under GNU GPL 2 or later and GNU LGPL 2 or later, see license.txt.
- */
-
-//
-// Helper functions
-//
-
-var qq = qq || {};
-
-/**
- * Adds all missing properties from second obj to first obj
- */
-qq.extend = function(first, second){
-    for (var prop in second){
-        first[prop] = second[prop];
-    }
-};
-
-/**
- * Searches for a given element in the array, returns -1 if it is not present.
- * @param {Number} [from] The index at which to begin the search
- */
-qq.indexOf = function(arr, elt, from){
-    if (arr.indexOf) return arr.indexOf(elt, from);
-
-    from = from || 0;
-    var len = arr.length;
-
-    if (from < 0) from += len;
-
-    for (; from < len; from++){
-        if (from in arr && arr[from] === elt){
-            return from;
-        }
-    }
-    return -1;
-};
-
-qq.getUniqueId = (function(){
-    var id = 0;
-    return function(){ return id++; };
-})();
-
-//
-// Events
-
-qq.attach = function(element, type, fn){
-    if (element.addEventListener){
-        element.addEventListener(type, fn, false);
-    } else if (element.attachEvent){
-        element.attachEvent('on' + type, fn);
-    }
-};
-qq.detach = function(element, type, fn){
-    if (element.removeEventListener){
-        element.removeEventListener(type, fn, false);
-    } else if (element.attachEvent){
-        element.detachEvent('on' + type, fn);
-    }
-};
-
-qq.preventDefault = function(e){
-    if (e.preventDefault){
-        e.preventDefault();
-    } else{
-        e.returnValue = false;
-    }
-};
-
-//
-// Node manipulations
-
-/**
- * Insert node a before node b.
- */
-qq.insertBefore = function(a, b){
-    b.parentNode.insertBefore(a, b);
-};
-qq.remove = function(element){
-    element.parentNode.removeChild(element);
-};
-
-qq.contains = function(parent, descendant){
-    // compareposition returns false in this case
-    if (parent == descendant) return true;
-
-    if (parent.contains){
-        return parent.contains(descendant);
-    } else {
-        return !!(descendant.compareDocumentPosition(parent) & 8);
-    }
-};
-
-/**
- * Creates and returns element from html string
- * Uses innerHTML to create an element
- */
-qq.toElement = (function(){
-    var div = document.createElement('div');
-    return function(html){
-        div.innerHTML = html;
-        var element = div.firstChild;
-        div.removeChild(element);
-        return element;
-    };
-})();
-
-//
-// Node properties and attributes
-
-/**
- * Sets styles for an element.
- * Fixes opacity in IE6-8.
- */
-qq.css = function(element, styles){
-    if (styles.opacity != null){
-        if (typeof element.style.opacity != 'string' && typeof(element.filters) != 'undefined'){
-            styles.filter = 'alpha(opacity=' + Math.round(100 * styles.opacity) + ')';
-        }
-    }
-    qq.extend(element.style, styles);
-};
-qq.hasClass = function(element, name){
-    var re = new RegExp('(^| )' + name + '( |$)');
-    return re.test(element.className);
-};
-qq.addClass = function(element, name){
-    if (!qq.hasClass(element, name)){
-        element.className += ' ' + name;
-    }
-};
-qq.removeClass = function(element, name){
-    var re = new RegExp('(^| )' + name + '( |$)');
-    element.className = element.className.replace(re, ' ').replace(/^\s+|\s+$/g, "");
-};
-qq.setText = function(element, text){
-    element.innerText = text;
-    element.textContent = text;
-};
-
-//
-// Selecting elements
-
-qq.children = function(element){
-    var children = [],
-    child = element.firstChild;
-
-    while (child){
-        if (child.nodeType == 1){
-            children.push(child);
-        }
-        child = child.nextSibling;
-    }
-
-    return children;
-};
-
-qq.getByClass = function(element, className){
-    if (element.querySelectorAll){
-        return element.querySelectorAll('.' + className);
-    }
-
-    var result = [];
-    var candidates = element.getElementsByTagName("*");
-    var len = candidates.length;
-
-    for (var i = 0; i < len; i++){
-        if (qq.hasClass(candidates[i], className)){
-            result.push(candidates[i]);
-        }
-    }
-    return result;
-};
-
-/**
- * obj2url() takes a json-object as argument and generates
- * a querystring. pretty much like jQuery.param()
- *
- * how to use:
- *
- *    `qq.obj2url({a:'b',c:'d'},'http://any.url/upload?otherParam=value');`
- *
- * will result in:
- *
- *    `http://any.url/upload?otherParam=value&a=b&c=d`
- *
- * @param  Object JSON-Object
- * @param  String current querystring-part
- * @return String encoded querystring
- */
-qq.obj2url = function(obj, temp, prefixDone){
-    var uristrings = [],
-        prefix = '&',
-        add = function(nextObj, i){
-            var nextTemp = temp
-                ? (/\[\]$/.test(temp)) // prevent double-encoding
-                   ? temp
-                   : temp+'['+i+']'
-                : i;
-            if ((nextTemp != 'undefined') && (i != 'undefined')) {
-                uristrings.push(
-                    (typeof nextObj === 'object')
-                        ? qq.obj2url(nextObj, nextTemp, true)
-                        : (Object.prototype.toString.call(nextObj) === '[object Function]')
-                            ? encodeURIComponent(nextTemp) + '=' + encodeURIComponent(nextObj())
-                            : encodeURIComponent(nextTemp) + '=' + encodeURIComponent(nextObj)
-                );
-            }
-        };
-
-    if (!prefixDone && temp) {
-      prefix = (/\?/.test(temp)) ? (/\?$/.test(temp)) ? '' : '&' : '?';
-      uristrings.push(temp);
-      uristrings.push(qq.obj2url(obj));
-    } else if ((Object.prototype.toString.call(obj) === '[object Array]') && (typeof obj != 'undefined') ) {
-        // we wont use a for-in-loop on an array (performance)
-        for (var i = 0, len = obj.length; i < len; ++i){
-            add(obj[i], i);
-        }
-    } else if ((typeof obj != 'undefined') && (obj !== null) && (typeof obj === "object")){
-        // for anything else but a scalar, we will use for-in-loop
-        for (var i in obj){
-            if(obj.hasOwnProperty(i) && typeof obj[i] != 'function') {
-                add(obj[i], i);
-            }
-        }
-    } else {
-        uristrings.push(encodeURIComponent(temp) + '=' + encodeURIComponent(obj));
-    }
-
-    return uristrings.join(prefix)
-                     .replace(/^&/, '')
-                     .replace(/%20/g, '+');
-};
-
-//
-//
-// Uploader Classes
-//
-//
-
-var qq = qq || {};
-
-/**
- * Creates upload button, validates upload, but doesn't create file list or dd.
- */
-qq.FileUploaderBasic = function(o){
-    this._options = {
-        // set to true to see the server response
-        debug: false,
-        action: '/server/upload',
-        params: {},
-        button: null,
-        multiple: true,
-        maxConnections: 3,
-        // validation
-        allowedExtensions: [],
-        sizeLimit: 0,
-        minSizeLimit: 0,
-        // events
-        // return false to cancel submit
-        onSubmit: function(id, fileName){},
-        onProgress: function(id, fileName, loaded, total){},
-        onComplete: function(id, fileName, responseJSON){},
-        onCancel: function(id, fileName){},
-        // messages
-        messages: {
-            typeError: "{file} has invalid extension. Only {extensions} are allowed.",
-            sizeError: "{file} is too large, maximum file size is {sizeLimit}.",
-            minSizeError: "{file} is too small, minimum file size is {minSizeLimit}.",
-            emptyError: "{file} is empty, please select files again without it.",
-            onLeave: "The files are being uploaded, if you leave now the upload will be cancelled."
-        },
-        showMessage: function(message){
-            alert(message);
-        }
-    };
-    qq.extend(this._options, o);
-
-    // number of files being uploaded
-    this._filesInProgress = 0;
-    this._handler = this._createUploadHandler();
-
-    if (this._options.button){
-        this._button = this._createUploadButton(this._options.button);
-    }
-
-    this._preventLeaveInProgress();
-};
-
-qq.FileUploaderBasic.prototype = {
-    setParams: function(params){
-        this._options.params = params;
-    },
-    getInProgress: function(){
-        return this._filesInProgress;
-    },
-    _createUploadButton: function(element){
-        var self = this;
-
-        return new qq.UploadButton({
-            element: element,
-            multiple: this._options.multiple && qq.UploadHandlerXhr.isSupported(),
-            onChange: function(input){
-                self._onInputChange(input);
-            }
-        });
-    },
-    _createUploadHandler: function(){
-        var self = this,
-            handlerClass;
-
-        if(qq.UploadHandlerXhr.isSupported()){
-            handlerClass = 'UploadHandlerXhr';
-        } else {
-            handlerClass = 'UploadHandlerForm';
-        }
-
-        var handler = new qq[handlerClass]({
-            debug: this._options.debug,
-            action: this._options.action,
-            maxConnections: this._options.maxConnections,
-            onProgress: function(id, fileName, loaded, total){
-                self._onProgress(id, fileName, loaded, total);
-                self._options.onProgress(id, fileName, loaded, total);
-            },
-            onComplete: function(id, fileName, result){
-                self._onComplete(id, fileName, result);
-                self._options.onComplete(id, fileName, result);
-            },
-            onCancel: function(id, fileName){
-                self._onCancel(id, fileName);
-                self._options.onCancel(id, fileName);
-            }
-        });
-
-        return handler;
-    },
-    _preventLeaveInProgress: function(){
-        var self = this;
-
-        qq.attach(window, 'beforeunload', function(e){
-            if (!self._filesInProgress){return;}
-
-            var e = e || window.event;
-            // for ie, ff
-            e.returnValue = self._options.messages.onLeave;
-            // for webkit
-            return self._options.messages.onLeave;
-        });
-    },
-    _onSubmit: function(id, fileName){
-        this._filesInProgress++;
-    },
-    _onProgress: function(id, fileName, loaded, total){
-    },
-    _onComplete: function(id, fileName, result){
-        this._filesInProgress--;
-        if (result.error){
-            this._options.showMessage(result.error);
-        }
-    },
-    _onCancel: function(id, fileName){
-        this._filesInProgress--;
-    },
-    _onInputChange: function(input){
-        if (this._handler instanceof qq.UploadHandlerXhr){
-            this._uploadFileList(input.files);
-        } else {
-            if (this._validateFile(input)){
-                this._uploadFile(input);
-            }
-        }
-        this._button.reset();
-    },
-    _uploadFileList: function(files){
-        for (var i=0; i<files.length; i++){
-            if ( !this._validateFile(files[i])){
-                return;
-            }
-        }
-
-        for (var i=0; i<files.length; i++){
-            this._uploadFile(files[i]);
-        }
-    },
-    _uploadFile: function(fileContainer){
-        var id = this._handler.add(fileContainer);
-        var fileName = this._handler.getName(id);
-
-        if (this._options.onSubmit(id, fileName) !== false){
-            this._onSubmit(id, fileName);
-            this._handler.upload(id, this._options.params);
-        }
-    },
-    _validateFile: function(file){
-        var name, size;
-
-        if (file.value){
-            // it is a file input
-            // get input value and remove path to normalize
-            name = file.value.replace(/.*(\/|\\)/, "");
-        } else {
-            // fix missing properties in Safari
-            name = file.fileName != null ? file.fileName : file.name;
-            size = file.fileSize != null ? file.fileSize : file.size;
-        }
-
-        if (! this._isAllowedExtension(name)){
-            this._error('typeError', name);
-            return false;
-
-        } else if (size === 0){
-            this._error('emptyError', name);
-            return false;
-
-        } else if (size && this._options.sizeLimit && size > this._options.sizeLimit){
-            this._error('sizeError', name);
-            return false;
-
-        } else if (size && size < this._options.minSizeLimit){
-            this._error('minSizeError', name);
-            return false;
-        }
-
-        return true;
-    },
-    _error: function(code, fileName){
-        var message = this._options.messages[code];
-        function r(name, replacement){ message = message.replace(name, replacement); }
-
-        r('{file}', this._formatFileName(fileName));
-        r('{extensions}', this._options.allowedExtensions.join(', '));
-        r('{sizeLimit}', this._formatSize(this._options.sizeLimit));
-        r('{minSizeLimit}', this._formatSize(this._options.minSizeLimit));
-
-        this._options.showMessage(message);
-    },
-    _formatFileName: function(name){
-        if (name.length > 33){
-            name = name.slice(0, 19) + '...' + name.slice(-13);
-        }
-        return name;
-    },
-    _isAllowedExtension: function(fileName){
-        var ext = (-1 !== fileName.indexOf('.')) ? fileName.replace(/.*[.]/, '').toLowerCase() : '';
-        var allowed = this._options.allowedExtensions;
-
-        if (!allowed.length){return true;}
-
-        for (var i=0; i<allowed.length; i++){
-            if (allowed[i].toLowerCase() == ext){ return true;}
-        }
-
-        return false;
-    },
-    _formatSize: function(bytes){
-        var i = -1;
-        do {
-            bytes = bytes / 1024;
-            i++;
-        } while (bytes > 99);
-
-        return Math.max(bytes, 0.1).toFixed(1) + ['kB', 'MB', 'GB', 'TB', 'PB', 'EB'][i];
-    }
-};
-
-
-/**
- * Class that creates upload widget with drag-and-drop and file list
- * @inherits qq.FileUploaderBasic
- */
-qq.FileUploader = function(o){
-    // call parent constructor
-    qq.FileUploaderBasic.apply(this, arguments);
-
-    // additional options
-    qq.extend(this._options, {
-        element: null,
-        // if set, will be used instead of qq-upload-list in template
-        listElement: null,
-
-        template: '<div class="qq-uploader">' +
-                '<div class="qq-upload-drop-area"><span>Drop files here to upload</span></div>' +
-                '<div class="qq-upload-button">Upload a file</div>' +
-                '<ul class="qq-upload-list"></ul>' +
-             '</div>',
-
-        // template for one item in file list
-        fileTemplate: '<li>' +
-                '<span class="qq-upload-file"></span>' +
-                '<span class="qq-upload-spinner"></span>' +
-                '<span class="qq-upload-size"></span>' +
-                '<a class="qq-upload-cancel" href="#">Cancel</a>' +
-                '<span class="qq-upload-failed-text">Failed</span>' +
-            '</li>',
-
-        classes: {
-            // used to get elements from templates
-            button: 'qq-upload-button',
-            drop: 'qq-upload-drop-area',
-            dropActive: 'qq-upload-drop-area-active',
-            list: 'qq-upload-list',
-
-            file: 'qq-upload-file',
-            spinner: 'qq-upload-spinner',
-            size: 'qq-upload-size',
-            cancel: 'qq-upload-cancel',
-
-            // added to list item when upload completes
-            // used in css to hide progress spinner
-            success: 'qq-upload-success',
-            fail: 'qq-upload-fail'
-        }
-    });
-    // overwrite options with user supplied
-    qq.extend(this._options, o);
-
-    this._element = this._options.element;
-    this._element.innerHTML = this._options.template;
-    this._listElement = this._options.listElement || this._find(this._element, 'list');
-
-    this._classes = this._options.classes;
-
-    this._button = this._createUploadButton(this._find(this._element, 'button'));
-
-    this._bindCancelEvent();
-    this._setupDragDrop();
-};
-
-// inherit from Basic Uploader
-qq.extend(qq.FileUploader.prototype, qq.FileUploaderBasic.prototype);
-
-qq.extend(qq.FileUploader.prototype, {
-    /**
-     * Gets one of the elements listed in this._options.classes
-     **/
-    _find: function(parent, type){
-        var element = qq.getByClass(parent, this._options.classes[type])[0];
-        if (!element){
-            throw new Error('element not found ' + type);
-        }
-
-        return element;
-    },
-    _setupDragDrop: function(){
-        var self = this,
-            dropArea = this._find(this._element, 'drop');
-
-        var dz = new qq.UploadDropZone({
-            element: dropArea,
-            onEnter: function(e){
-                qq.addClass(dropArea, self._classes.dropActive);
-                e.stopPropagation();
-            },
-            onLeave: function(e){
-                e.stopPropagation();
-            },
-            onLeaveNotDescendants: function(e){
-                qq.removeClass(dropArea, self._classes.dropActive);
-            },
-            onDrop: function(e){
-                dropArea.style.display = 'none';
-                qq.removeClass(dropArea, self._classes.dropActive);
-                self._uploadFileList(e.dataTransfer.files);
-            }
-        });
-
-        dropArea.style.display = 'none';
-
-        qq.attach(document, 'dragenter', function(e){
-            if (!dz._isValidFileDrag(e)) return;
-
-            dropArea.style.display = 'block';
-        });
-        qq.attach(document, 'dragleave', function(e){
-            if (!dz._isValidFileDrag(e)) return;
-
-            var relatedTarget = document.elementFromPoint(e.clientX, e.clientY);
-            // only fire when leaving document out
-            if ( ! relatedTarget || relatedTarget.nodeName == "HTML"){
-                dropArea.style.display = 'none';
-            }
-        });
-    },
-    _onSubmit: function(id, fileName){
-        qq.FileUploaderBasic.prototype._onSubmit.apply(this, arguments);
-        this._addToList(id, fileName);
-    },
-    _onProgress: function(id, fileName, loaded, total){
-        qq.FileUploaderBasic.prototype._onProgress.apply(this, arguments);
-
-        var item = this._getItemByFileId(id);
-        var size = this._find(item, 'size');
-        size.style.display = 'inline';
-
-        var text;
-        if (loaded != total){
-            text = Math.round(loaded / total * 100) + '% from ' + this._formatSize(total);
-        } else {
-            text = this._formatSize(total);
-        }
-
-        qq.setText(size, text);
-    },
-    _onComplete: function(id, fileName, result){
-        qq.FileUploaderBasic.prototype._onComplete.apply(this, arguments);
-
-        // mark completed
-        var item = this._getItemByFileId(id);
-        qq.remove(this._find(item, 'cancel'));
-        qq.remove(this._find(item, 'spinner'));
-
-        if (result.success){
-            qq.addClass(item, this._classes.success);
-        } else {
-            qq.addClass(item, this._classes.fail);
-        }
-    },
-    _addToList: function(id, fileName){
-        var item = qq.toElement(this._options.fileTemplate);
-        item.qqFileId = id;
-
-        var fileElement = this._find(item, 'file');
-        qq.setText(fileElement, this._formatFileName(fileName));
-        this._find(item, 'size').style.display = 'none';
-
-        this._listElement.appendChild(item);
-    },
-    _getItemByFileId: function(id){
-        var item = this._listElement.firstChild;
-
-        // there can't be txt nodes in dynamically created list
-        // and we can  use nextSibling
-        while (item){
-            if (item.qqFileId == id) return item;
-            item = item.nextSibling;
-        }
-    },
-    /**
-     * delegate click event for cancel link
-     **/
-    _bindCancelEvent: function(){
-        var self = this,
-            list = this._listElement;
-
-        qq.attach(list, 'click', function(e){
-            e = e || window.event;
-            var target = e.target || e.srcElement;
-
-            if (qq.hasClass(target, self._classes.cancel)){
-                qq.preventDefault(e);
-
-                var item = target.parentNode;
-                self._handler.cancel(item.qqFileId);
-                qq.remove(item);
-            }
-        });
-    }
-});
-
-qq.UploadDropZone = function(o){
-    this._options = {
-        element: null,
-        onEnter: function(e){},
-        onLeave: function(e){},
-        // is not fired when leaving element by hovering descendants
-        onLeaveNotDescendants: function(e){},
-        onDrop: function(e){}
-    };
-    qq.extend(this._options, o);
-
-    this._element = this._options.element;
-
-    this._disableDropOutside();
-    this._attachEvents();
-};
-
-qq.UploadDropZone.prototype = {
-    _disableDropOutside: function(e){
-        // run only once for all instances
-        if (!qq.UploadDropZone.dropOutsideDisabled ){
-
-            qq.attach(document, 'dragover', function(e){
-                if (e.dataTransfer){
-                    e.dataTransfer.dropEffect = 'none';
-                    e.preventDefault();
-                }
-            });
-
-            qq.UploadDropZone.dropOutsideDisabled = true;
-        }
-    },
-    _attachEvents: function(){
-        var self = this;
-
-        qq.attach(self._element, 'dragover', function(e){
-            if (!self._isValidFileDrag(e)) return;
-
-            var effect = e.dataTransfer.effectAllowed;
-            if (effect == 'move' || effect == 'linkMove'){
-                e.dataTransfer.dropEffect = 'move'; // for FF (only move allowed)
-            } else {
-                e.dataTransfer.dropEffect = 'copy'; // for Chrome
-            }
-
-            e.stopPropagation();
-            e.preventDefault();
-        });
-
-        qq.attach(self._element, 'dragenter', function(e){
-            if (!self._isValidFileDrag(e)) return;
-
-            self._options.onEnter(e);
-        });
-
-        qq.attach(self._element, 'dragleave', function(e){
-            if (!self._isValidFileDrag(e)) return;
-
-            self._options.onLeave(e);
-
-            var relatedTarget = document.elementFromPoint(e.clientX, e.clientY);
-            // do not fire when moving a mouse over a descendant
-            if (qq.contains(this, relatedTarget)) return;
-
-            self._options.onLeaveNotDescendants(e);
-        });
-
-        qq.attach(self._element, 'drop', function(e){
-            if (!self._isValidFileDrag(e)) return;
-
-            e.preventDefault();
-            self._options.onDrop(e);
-        });
-    },
-    _isValidFileDrag: function(e){
-        var dt = e.dataTransfer,
-            // do not check dt.types.contains in webkit, because it crashes safari 4
-            isWebkit = navigator.userAgent.indexOf("AppleWebKit") > -1;
-
-        // dt.effectAllowed is none in Safari 5
-        // dt.types.contains check is for firefox
-        return dt && dt.effectAllowed != 'none' &&
-            (dt.files || (!isWebkit && dt.types.contains && dt.types.contains('Files')));
-
-    }
-};
-
-qq.UploadButton = function(o){
-    this._options = {
-        element: null,
-        // if set to true adds multiple attribute to file input
-        multiple: false,
-        // name attribute of file input
-        name: 'file',
-        onChange: function(input){},
-        hoverClass: 'qq-upload-button-hover',
-        focusClass: 'qq-upload-button-focus'
-    };
-
-    qq.extend(this._options, o);
-
-    this._element = this._options.element;
-
-    // make button suitable container for input
-    qq.css(this._element, {
-        position: 'relative',
-        overflow: 'hidden',
-        // Make sure browse button is in the right side
-        // in Internet Explorer
-        direction: 'ltr'
-    });
-
-    this._input = this._createInput();
-};
-
-qq.UploadButton.prototype = {
-    /* returns file input element */
-    getInput: function(){
-        return this._input;
-    },
-    /* cleans/recreates the file input */
-    reset: function(){
-        if (this._input.parentNode){
-            qq.remove(this._input);
-        }
-
-        qq.removeClass(this._element, this._options.focusClass);
-        this._input = this._createInput();
-    },
-    _createInput: function(){
-        var input = document.createElement("input");
-
-        if (this._options.multiple){
-            input.setAttribute("multiple", "multiple");
-        }
-
-        input.setAttribute("type", "file");
-        input.setAttribute("name", this._options.name);
-
-        qq.css(input, {
-            position: 'absolute',
-            // in Opera only 'browse' button
-            // is clickable and it is located at
-            // the right side of the input
-            right: 0,
-            top: 0,
-            fontFamily: 'Arial',
-            // 4 persons reported this, the max values that worked for them were 243, 236, 236, 118
-            fontSize: '118px',
-            margin: 0,
-            padding: 0,
-            cursor: 'pointer',
-            opacity: 0
-        });
-
-        this._element.appendChild(input);
-
-        var self = this;
-        qq.attach(input, 'change', function(){
-            self._options.onChange(input);
-        });
-
-        qq.attach(input, 'mouseover', function(){
-            qq.addClass(self._element, self._options.hoverClass);
-        });
-        qq.attach(input, 'mouseout', function(){
-            qq.removeClass(self._element, self._options.hoverClass);
-        });
-        qq.attach(input, 'focus', function(){
-            qq.addClass(self._element, self._options.focusClass);
-        });
-        qq.attach(input, 'blur', function(){
-            qq.removeClass(self._element, self._options.focusClass);
-        });
-
-        // IE and Opera, unfortunately have 2 tab stops on file input
-        // which is unacceptable in our case, disable keyboard access
-        if (window.attachEvent){
-            // it is IE or Opera
-            input.setAttribute('tabIndex', "-1");
-        }
-
-        return input;
-    }
-};
-
-/**
- * Class for uploading files, uploading itself is handled by child classes
- */
-qq.UploadHandlerAbstract = function(o){
-    this._options = {
-        debug: false,
-        action: '/upload.php',
-        // maximum number of concurrent uploads
-        maxConnections: 999,
-        onProgress: function(id, fileName, loaded, total){},
-        onComplete: function(id, fileName, response){},
-        onCancel: function(id, fileName){}
-    };
-    qq.extend(this._options, o);
-
-    this._queue = [];
-    // params for files in queue
-    this._params = [];
-};
-qq.UploadHandlerAbstract.prototype = {
-    log: function(str){
-        if (this._options.debug && window.console) console.log('[uploader] ' + str);
-    },
-    /**
-     * Adds file or file input to the queue
-     * @returns id
-     **/
-    add: function(file){},
-    /**
-     * Sends the file identified by id and additional query params to the server
-     */
-    upload: function(id, params){
-        var len = this._queue.push(id);
-
-        var copy = {};
-        qq.extend(copy, params);
-        this._params[id] = copy;
-
-        // if too many active uploads, wait...
-        if (len <= this._options.maxConnections){
-            this._upload(id, this._params[id]);
-        }
-    },
-    /**
-     * Cancels file upload by id
-     */
-    cancel: function(id){
-        this._cancel(id);
-        this._dequeue(id);
-    },
-    /**
-     * Cancells all uploads
-     */
-    cancelAll: function(){
-        for (var i=0; i<this._queue.length; i++){
-            this._cancel(this._queue[i]);
-        }
-        this._queue = [];
-    },
-    /**
-     * Returns name of the file identified by id
-     */
-    getName: function(id){},
-    /**
-     * Returns size of the file identified by id
-     */
-    getSize: function(id){},
-    /**
-     * Returns id of files being uploaded or
-     * waiting for their turn
-     */
-    getQueue: function(){
-        return this._queue;
-    },
-    /**
-     * Actual upload method
-     */
-    _upload: function(id){},
-    /**
-     * Actual cancel method
-     */
-    _cancel: function(id){},
-    /**
-     * Removes element from queue, starts upload of next
-     */
-    _dequeue: function(id){
-        var i = qq.indexOf(this._queue, id);
-        this._queue.splice(i, 1);
-
-        var max = this._options.maxConnections;
-
-        if (this._queue.length >= max && i < max){
-            var nextId = this._queue[max-1];
-            this._upload(nextId, this._params[nextId]);
-        }
-    }
-};
-
-/**
- * Class for uploading files using form and iframe
- * @inherits qq.UploadHandlerAbstract
- */
-qq.UploadHandlerForm = function(o){
-    qq.UploadHandlerAbstract.apply(this, arguments);
-
-    this._inputs = {};
-};
-// @inherits qq.UploadHandlerAbstract
-qq.extend(qq.UploadHandlerForm.prototype, qq.UploadHandlerAbstract.prototype);
-
-qq.extend(qq.UploadHandlerForm.prototype, {
-    add: function(fileInput){
-        fileInput.setAttribute('name', 'qqfile');
-        var id = 'qq-upload-handler-iframe' + qq.getUniqueId();
-
-        this._inputs[id] = fileInput;
-
-        // remove file input from DOM
-        if (fileInput.parentNode){
-            qq.remove(fileInput);
-        }
-
-        return id;
-    },
-    getName: function(id){
-        // get input value and remove path to normalize
-        return this._inputs[id].value.replace(/.*(\/|\\)/, "");
-    },
-    _cancel: function(id){
-        this._options.onCancel(id, this.getName(id));
-
-        delete this._inputs[id];
-
-        var iframe = document.getElementById(id);
-        if (iframe){
-            // to cancel request set src to something else
-            // we use src="javascript:false;" because it doesn't
-            // trigger ie6 prompt on https
-            iframe.setAttribute('src', 'javascript:false;');
-
-            qq.remove(iframe);
-        }
-    },
-    _upload: function(id, params){
-        var input = this._inputs[id];
-
-        if (!input){
-            throw new Error('file with passed id was not added, or already uploaded or cancelled');
-        }
-
-        var fileName = this.getName(id);
-
-        var iframe = this._createIframe(id);
-        var form = this._createForm(iframe, params);
-        form.appendChild(input);
-
-        var self = this;
-        this._attachLoadEvent(iframe, function(){
-            self.log('iframe loaded');
-
-            var response = self._getIframeContentJSON(iframe);
-
-            self._options.onComplete(id, fileName, response);
-            self._dequeue(id);
-
-            delete self._inputs[id];
-            // timeout added to fix busy state in FF3.6
-            setTimeout(function(){
-                qq.remove(iframe);
-            }, 1);
-        });
-
-        form.submit();
-        qq.remove(form);
-
-        return id;
-    },
-    _attachLoadEvent: function(iframe, callback){
-        qq.attach(iframe, 'load', function(){
-            // when we remove iframe from dom
-            // the request stops, but in IE load
-            // event fires
-            if (!iframe.parentNode){
-                return;
-            }
-
-            // fixing Opera 10.53
-            if (iframe.contentDocument &&
-                iframe.contentDocument.body &&
-                iframe.contentDocument.body.innerHTML == "false"){
-                // In Opera event is fired second time
-                // when body.innerHTML changed from false
-                // to server response approx. after 1 sec
-                // when we upload file with iframe
-                return;
-            }
-
-            callback();
-        });
-    },
-    /**
-     * Returns json object received by iframe from server.
-     */
-    _getIframeContentJSON: function(iframe){
-        // iframe.contentWindow.document - for IE<7
-        var doc = iframe.contentDocument ? iframe.contentDocument: iframe.contentWindow.document,
-            response;
-
-        this.log("converting iframe's innerHTML to JSON");
-        this.log("innerHTML = " + doc.body.innerHTML);
-
-        try {
-            response = eval("(" + doc.body.innerHTML + ")");
-        } catch(err){
-            response = {};
-        }
-
-        return response;
-    },
-    /**
-     * Creates iframe with unique name
-     */
-    _createIframe: function(id){
-        // We can't use following code as the name attribute
-        // won't be properly registered in IE6, and new window
-        // on form submit will open
-        // var iframe = document.createElement('iframe');
-        // iframe.setAttribute('name', id);
-
-        var iframe = qq.toElement('<iframe src="javascript:false;" name="' + id + '" />');
-        // src="javascript:false;" removes ie6 prompt on https
-
-        iframe.setAttribute('id', id);
-
-        iframe.style.display = 'none';
-        document.body.appendChild(iframe);
-
-        return iframe;
-    },
-    /**
-     * Creates form, that will be submitted to iframe
-     */
-    _createForm: function(iframe, params){
-        // We can't use the following code in IE6
-        // var form = document.createElement('form');
-        // form.setAttribute('method', 'post');
-        // form.setAttribute('enctype', 'multipart/form-data');
-        // Because in this case file won't be attached to request
-        var form = qq.toElement('<form method="post" enctype="multipart/form-data"></form>');
-
-        var queryString = qq.obj2url(params, this._options.action);
-
-        form.setAttribute('action', queryString);
-        form.setAttribute('target', iframe.name);
-        form.style.display = 'none';
-        document.body.appendChild(form);
-
-        return form;
-    }
-});
-
-/**
- * Class for uploading files using xhr
- * @inherits qq.UploadHandlerAbstract
- */
-qq.UploadHandlerXhr = function(o){
-    qq.UploadHandlerAbstract.apply(this, arguments);
-
-    this._files = [];
-    this._xhrs = [];
-
-    // current loaded size in bytes for each file
-    this._loaded = [];
-};
-
-// static method
-qq.UploadHandlerXhr.isSupported = function(){
-    var input = document.createElement('input');
-    input.type = 'file';
-
-    return (
-        'multiple' in input &&
-        typeof File != "undefined" &&
-        typeof (new XMLHttpRequest()).upload != "undefined" );
-};
-
-// @inherits qq.UploadHandlerAbstract
-qq.extend(qq.UploadHandlerXhr.prototype, qq.UploadHandlerAbstract.prototype);
-
-qq.extend(qq.UploadHandlerXhr.prototype, {
-    /**
-     * Adds file to the queue
-     * Returns id to use with upload, cancel
-     **/
-    add: function(file){
-        if (!(file instanceof File)){
-            throw new Error('Passed obj in not a File (in qq.UploadHandlerXhr)');
-        }
-
-        return this._files.push(file) - 1;
-    },
-    getName: function(id){
-        var file = this._files[id];
-        // fix missing name in Safari 4
-        return file.fileName != null ? file.fileName : file.name;
-    },
-    getSize: function(id){
-        var file = this._files[id];
-        return file.fileSize != null ? file.fileSize : file.size;
-    },
-    /**
-     * Returns uploaded bytes for file identified by id
-     */
-    getLoaded: function(id){
-        return this._loaded[id] || 0;
-    },
-    /**
-     * Sends the file identified by id and additional query params to the server
-     * @param {Object} params name-value string pairs
-     */
-    _upload: function(id, params){
-        var file = this._files[id],
-            name = this.getName(id),
-            size = this.getSize(id);
-
-        this._loaded[id] = 0;
-
-        var xhr = this._xhrs[id] = new XMLHttpRequest();
-        var self = this;
-
-        xhr.upload.onprogress = function(e){
-            if (e.lengthComputable){
-                self._loaded[id] = e.loaded;
-                self._options.onProgress(id, name, e.loaded, e.total);
-            }
-        };
-
-        xhr.onreadystatechange = function(){
-            if (xhr.readyState == 4){
-                self._onComplete(id, xhr);
-            }
-        };
-
-        // build query string
-        params = params || {};
-        params['qqfile'] = name;
-        var queryString = qq.obj2url(params, this._options.action);
-
-        xhr.open("POST", queryString, true);
-        xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");
-        xhr.setRequestHeader("X-File-Name", encodeURIComponent(name));
-        xhr.setRequestHeader("Content-Type", "application/octet-stream");
-        xhr.send(file);
-    },
-    _onComplete: function(id, xhr){
-        // the request was aborted/cancelled
-        if (!this._files[id]) return;
-
-        var name = this.getName(id);
-        var size = this.getSize(id);
-
-        this._options.onProgress(id, name, size, size);
-
-        if (xhr.status == 200){
-            this.log("xhr - server response received");
-            this.log("responseText = " + xhr.responseText);
-
-            var response;
-
-            try {
-                response = eval("(" + xhr.responseText + ")");
-            } catch(err){
-                response = {};
-            }
-
-            this._options.onComplete(id, name, response);
-
-        } else {
-            this._options.onComplete(id, name, {});
-        }
-
-        this._files[id] = null;
-        this._xhrs[id] = null;
-        this._dequeue(id);
-    },
-    _cancel: function(id){
-        this._options.onCancel(id, this.getName(id));
-
-        this._files[id] = null;
-
-        if (this._xhrs[id]){
-            this._xhrs[id].abort();
-            this._xhrs[id] = null;
-        }
-    }
-});
\ No newline at end of file
diff --git a/wiki/lib/scripts/fileuploaderextended.js b/wiki/lib/scripts/fileuploaderextended.js
deleted file mode 100644
index ba2aa3e..0000000
--- a/wiki/lib/scripts/fileuploaderextended.js
+++ /dev/null
@@ -1,345 +0,0 @@
-qq.extend(qq.FileUploader.prototype, {
-    _createUploadHandler: function(){
-        var self = this,
-            handlerClass;
-
-        if(qq.UploadHandlerXhr.isSupported()){
-            handlerClass = 'UploadHandlerXhr';
-            //handlerClass = 'UploadHandlerForm';
-        } else {
-            handlerClass = 'UploadHandlerForm';
-        }
-
-        var handler = new qq[handlerClass]({
-            debug: this._options.debug,
-            action: this._options.action,
-            maxConnections: this._options.maxConnections,
-            onProgress: function(id, fileName, loaded, total){
-                self._onProgress(id, fileName, loaded, total);
-                self._options.onProgress(id, fileName, loaded, total);
-            },
-            onComplete: function(id, fileName, result){
-                self._onComplete(id, fileName, result);
-                self._options.onComplete(id, fileName, result);
-            },
-            onCancel: function(id, fileName){
-                self._onCancel(id, fileName);
-                self._options.onCancel(id, fileName);
-            },
-            onUpload: function(){
-                self._onUpload();
-            }
-        });
-
-        return handler;
-    },
-
-    _onUpload: function(){
-        this._handler.uploadAll(this._options.params);
-    },
-
-    _uploadFile: function(fileContainer){
-        var id = this._handler.add(fileContainer);
-        var fileName = this._handler.getName(id);
-
-        if (this._options.onSubmit(id, fileName) !== false){
-            this._onSubmit(id, fileName);
-        }
-    },
-
-    _addToList: function(id, fileName){
-        var item = qq.toElement(this._options.fileTemplate);
-        item.qqFileId = id;
-
-        var fileElement = this._find(item, 'file');
-        qq.setText(fileElement, fileName);
-        this._find(item, 'size').style.display = 'none';
-
-        // name suggestion (simplified cleanID)
-        var nameElement = this._find(item, 'nameInput');
-        fileName = fileName.toLowerCase();
-        fileName = fileName.replace(/([ !"#$%&\'()+,\/;<=>?@[\]^`{|}~:]+)/g, '_');
-        fileName = fileName.replace(/^_+/,'');
-        nameElement.value = fileName;
-        nameElement.id = 'mediamanager__upload_item'+id;
-
-        this._listElement.appendChild(item);
-    }
-
-});
-
-qq.FileUploaderExtended = function(o){
-    // call parent constructor
-    qq.FileUploaderBasic.apply(this, arguments);
-
-    qq.extend(this._options, {
-        element: null,
-        // if set, will be used instead of qq-upload-list in template
-        listElement: null,
-
-        template: '<div class="qq-uploader">' +
-            '<div class="qq-upload-drop-area"><span>' + LANG.media_drop + '</span></div>' +
-            '<div class="qq-upload-button">' + LANG.media_select + '</div>' +
-            '<ul class="qq-upload-list"></ul>' +
-            '<div class="qq-action-container">' +
-            '  <button class="qq-upload-action" type="submit" id="mediamanager__upload_button">' + LANG.media_upload_btn + '</button>' +
-            '  <label class="qq-overwrite-check"><input type="checkbox" value="1" name="ow" class="dw__ow"> <span>' + LANG.media_overwrt + '</span></label>' +
-            '</div>' +
-            '</div>',
-
-        // template for one item in file list
-        fileTemplate: '<li>' +
-              '<span class="qq-upload-file hidden"></span>' +
-            '  <input class="qq-upload-name-input edit" type="text" value="" />' +
-            '  <span class="qq-upload-spinner hidden"></span>' +
-            '  <span class="qq-upload-size"></span>' +
-            '  <a class="qq-upload-cancel" href="#">' + LANG.media_cancel + '</a>' +
-            '  <span class="qq-upload-failed-text error">Failed</span>' +
-            '</li>',
-
-        classes: {
-            // used to get elements from templates
-            button: 'qq-upload-button',
-            drop: 'qq-upload-drop-area',
-            dropActive: 'qq-upload-drop-area-active',
-            list: 'qq-upload-list',
-            nameInput: 'qq-upload-name-input',
-            overwriteInput: 'qq-overwrite-check',
-            uploadButton: 'qq-upload-action',
-            file: 'qq-upload-file',
-
-            spinner: 'qq-upload-spinner',
-            size: 'qq-upload-size',
-            cancel: 'qq-upload-cancel',
-
-            // added to list item when upload completes
-            // used in css to hide progress spinner
-            success: 'qq-upload-success',
-            fail: 'qq-upload-fail',
-            failedText: 'qq-upload-failed-text'
-        }
-    });
-
-    qq.extend(this._options, o);
-
-    this._element = this._options.element;
-    this._element.innerHTML = this._options.template;
-    this._listElement = this._options.listElement || this._find(this._element, 'list');
-
-    this._classes = this._options.classes;
-
-    this._button = this._createUploadButton(this._find(this._element, 'button'));
-
-    this._bindCancelEvent();
-    this._bindUploadEvent();
-    this._setupDragDrop();
-};
-
-qq.extend(qq.FileUploaderExtended.prototype, qq.FileUploader.prototype);
-
-qq.extend(qq.FileUploaderExtended.prototype, {
-    _bindUploadEvent: function(){
-        var self = this,
-            list = this._listElement;
-
-        qq.attach(document.getElementById('mediamanager__upload_button'), 'click', function(e){
-            e = e || window.event;
-            var target = e.target || e.srcElement;
-            qq.preventDefault(e);
-            self._handler._options.onUpload();
-
-            jQuery(".qq-upload-name-input").each(function (i) {
-                jQuery(this).attr('disabled', 'disabled');
-            });
-        });
-    },
-
-    _onComplete: function(id, fileName, result){
-        this._filesInProgress--;
-
-        // mark completed
-        var item = this._getItemByFileId(id);
-        qq.remove(this._find(item, 'cancel'));
-        qq.remove(this._find(item, 'spinner'));
-
-        var nameInput = this._find(item, 'nameInput');
-        var fileElement = this._find(item, 'file');
-        qq.setText(fileElement, nameInput.value);
-        qq.removeClass(fileElement, 'hidden');
-        qq.remove(nameInput);
-        jQuery('.qq-upload-button, #mediamanager__upload_button').remove();
-        jQuery('.dw__ow').parent().hide();
-        jQuery('.qq-upload-drop-area').remove();
-
-        if (result.success){
-            qq.addClass(item, this._classes.success);
-            $link = '<a href="' + result.link + '" id="h_:' + result.id + '" class="select">' + nameInput.value + '</a>';
-            jQuery(fileElement).html($link);
-
-        } else {
-            qq.addClass(item, this._classes.fail);
-            var fail = this._find(item, 'failedText');
-            if (result.error) qq.setText(fail, result.error);
-        }
-
-        if (document.getElementById('media__content') && !document.getElementById('mediamanager__done_form')) {
-            var action = document.location.href;
-            var i = action.indexOf('?');
-            if (i) action = action.substr(0, i);
-            var button = '<form method="post" action="' + action + '" id="mediamanager__done_form"><div>';
-            button += '<input type="hidden" value="' + result.ns + '" name="ns">';
-            button += '<input type="hidden" value="1" name="recent">';
-            button += '<button type="submit">' + LANG.media_done_btn + '</button></div></form>';
-            jQuery('#mediamanager__uploader').append(button);
-        }
-    }
-
-});
-
-qq.extend(qq.UploadHandlerForm.prototype, {
-    uploadAll: function(params){
-        this._uploadAll(params);
-    },
-
-    getName: function(id){
-        var file = this._inputs[id];
-        var name = document.getElementById('mediamanager__upload_item'+id);
-        if (name != null) {
-            return name.value;
-        } else {
-            if (file != null) {
-                // get input value and remove path to normalize
-                return file.value.replace(/.*(\/|\\)/, "");
-            } else {
-                return null;
-            }
-        }
-    },
-
-    _uploadAll: function(params){
-         jQuery(".qq-upload-spinner").each(function (i) {
-            jQuery(this).removeClass('hidden');
-        });
-        for (key in this._inputs) {
-            this.upload(key, params);
-        }
-
-    },
-
-    _upload: function(id, params){
-        var input = this._inputs[id];
-
-        if (!input){
-            throw new Error('file with passed id was not added, or already uploaded or cancelled');
-        }
-
-        var fileName = this.getName(id);
-
-        var iframe = this._createIframe(id);
-        var form = this._createForm(iframe, params);
-        form.appendChild(input);
-
-        var nameInput = qq.toElement('<input name="mediaid" value="' + fileName + '" type="text">');
-        form.appendChild(nameInput);
-
-        var checked = jQuery('.dw__ow').is(':checked');
-        var owCheckbox = jQuery('.dw__ow').clone();
-        owCheckbox.attr('checked', checked);
-        jQuery(form).append(owCheckbox);
-
-        var self = this;
-        this._attachLoadEvent(iframe, function(){
-            self.log('iframe loaded');
-
-            var response = self._getIframeContentJSON(iframe);
-
-            self._options.onComplete(id, fileName, response);
-            self._dequeue(id);
-
-            delete self._inputs[id];
-            // timeout added to fix busy state in FF3.6
-            setTimeout(function(){
-                qq.remove(iframe);
-            }, 1);
-        });
-
-        form.submit();
-        qq.remove(form);
-
-        return id;
-    }
-});
-
-qq.extend(qq.UploadHandlerXhr.prototype, {
-    uploadAll: function(params){
-        this._uploadAll(params);
-    },
-
-    getName: function(id){
-        var file = this._files[id];
-        var name = document.getElementById('mediamanager__upload_item'+id);
-        if (name != null) {
-            return name.value;
-        } else {
-            if (file != null) {
-                // fix missing name in Safari 4
-                return file.fileName != null ? file.fileName : file.name;
-            } else {
-                return null;
-            }
-        }
-    },
-
-    getSize: function(id){
-        var file = this._files[id];
-        if (file == null) return null;
-        return file.fileSize != null ? file.fileSize : file.size;
-    },
-
-    _upload: function(id, params){
-        var file = this._files[id],
-            name = this.getName(id),
-            size = this.getSize(id);
-        if (name == null || size == null) return;
-
-        this._loaded[id] = 0;
-
-        var xhr = this._xhrs[id] = new XMLHttpRequest();
-        var self = this;
-
-        xhr.upload.onprogress = function(e){
-            if (e.lengthComputable){
-                self._loaded[id] = e.loaded;
-                self._options.onProgress(id, name, e.loaded, e.total);
-            }
-        };
-
-        xhr.onreadystatechange = function(){
-            if (xhr.readyState == 4){
-                self._onComplete(id, xhr);
-            }
-        };
-
-        // build query string
-        params = params || {};
-        params['qqfile'] = name;
-        params['ow'] = jQuery('.dw__ow').is(':checked');
-        var queryString = qq.obj2url(params, this._options.action);
-
-        xhr.open("POST", queryString, true);
-        xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");
-        xhr.setRequestHeader("X-File-Name", encodeURIComponent(name));
-        xhr.setRequestHeader("Content-Type", "application/octet-stream");
-        xhr.send(file);
-    },
-
-    _uploadAll: function(params){
-        jQuery(".qq-upload-spinner").each(function (i) {
-            jQuery(this).removeClass('hidden');
-        });
-        for (key in this._files) {
-            this.upload(key, params);
-        }
-
-    }
-});
diff --git a/wiki/lib/scripts/helpers.js b/wiki/lib/scripts/helpers.js
deleted file mode 100644
index 99137c5..0000000
--- a/wiki/lib/scripts/helpers.js
+++ /dev/null
@@ -1,69 +0,0 @@
-/**
- * Various helper functions
- */
-
-/**
- * A PHP-style substr_replace
- *
- * Supports negative start and length and omitting length, but not
- * str and replace arrays.
- * See http://php.net/substr-replace for further documentation.
- */
-function substr_replace(str, replace, start, length) {
-    var a2, b1;
-    a2 = (start < 0 ? str.length : 0) + start;
-    if (typeof length === 'undefined') {
-        length = str.length - a2;
-    } else if (length < 0 && start < 0 && length <= start) {
-        length = 0;
-    }
-    b1 = (length < 0 ? str.length : a2) + length;
-    return str.substring(0, a2) + replace + str.substring(b1);
-}
-
-/**
- * Bind variables to a function call creating a closure
- *
- * Use this to circumvent variable scope problems when creating closures
- * inside a loop
- *
- * @author  Adrian Lang <lang@cosmocode.de>
- * @link    http://www.cosmocode.de/en/blog/gohr/2009-10/15-javascript-fixing-the-closure-scope-in-loops
- * @param   functionref fnc - the function to be called
- * @param   mixed - any arguments to be passed to the function
- * @returns functionref
- */
-function bind(fnc/*, ... */) {
-    var Aps = Array.prototype.slice,
-    // Store passed arguments in this scope.
-    // Since arguments is no Array nor has an own slice method,
-    // we have to apply the slice method from the Array.prototype
-        static_args = Aps.call(arguments, 1);
-
-    // Return a function evaluating the passed function with the
-    // given args and optional arguments passed on invocation.
-    return function (/* ... */) {
-        // Same here, but we use Array.prototype.slice solely for
-        // converting arguments to an Array.
-        return fnc.apply(this,
-                         static_args.concat(Aps.call(arguments, 0)));
-    };
-}
-
-/**
- * Report an error from a JS file to the console
- *
- * @param e    The error object
- * @param file The file in which the error occurred
- */
-function logError(e, file) {
-    if (window.console && console.error) {
-        console.error('The error "%s: %s" occurred in file "%s". ' +
-            '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/wiki/lib/scripts/hotkeys.js b/wiki/lib/scripts/hotkeys.js
deleted file mode 100644
index 76a277a..0000000
--- a/wiki/lib/scripts/hotkeys.js
+++ /dev/null
@@ -1,302 +0,0 @@
-/**
- * Some of these scripts were taken from TinyMCE (http://tinymce.moxiecode.com/) and were modified for DokuWiki
- *
- * Class handles accesskeys using javascript and also provides ability
- * to register and use other hotkeys as well.
- *
- * @author Marek Sacha <sachamar@fel.cvut.cz>
- */
-function Hotkeys() {
-
-    this.shortcuts = new Array();
-
-    /**
-     * Set modifier keys, for instance:
-     *  this.modifier = 'ctrl';
-     *  this.modifier = 'ctrl+shift';
-     *  this.modifier = 'ctrl+alt+shift';
-     *  this.modifier = 'alt';
-     *  this.modifier = 'alt+shift';
-     *
-     *  overwritten in intitialize (see below)
-     */
-    this.modifier = 'ctrl+alt';
-
-    /**
-     * Initialization
-     *
-     * This function looks up all the accesskeys used in the current page
-     * (at anchor elements and button elements [type="submit"]) and registers
-     * appropriate shortcuts.
-     *
-     * Secondly, initialization registers listeners on document to catch all
-     * keyboard events.
-     *
-     * @author Marek Sacha <sachamar@fel.cvut.cz>
-     */
-    this.initialize = function() {
-        var t = this;
-
-        //switch modifier key based on OS FS#1958
-        if(is_macos){
-            t.modifier = 'ctrl+alt';
-        }else{
-            t.modifier = 'alt';
-        }
-
-        /**
-         * Lookup all anchors with accesskey and register event - go to anchor
-         * target.
-         */
-        var anchors = document.getElementsByTagName("a");
-        t.each(anchors, function(a) {
-            if (a.accessKey != "") {
-                t.addShortcut(t.modifier + '+' + a.accessKey, function() {
-                    location.href = a.href;
-                });
-                a.accessKey = '';
-            }
-        });
-
-        /**
-         * Lookup all button [type="submit"] with accesskey and register event -
-         * perform "click" on a button.
-         */
-        var inputs = document.getElementsByTagName("button");
-        t.each(inputs, function(i) {
-            if (i.type == "submit" && i.accessKey != "") {
-                t.addShortcut(t.modifier + '+' + i.accessKey, function() {
-                    i.click();
-                });
-                i.accessKey = '';
-            }
-        });
-
-        /**
-         * Lookup all buttons with accesskey and register event -
-         * perform "click" on a button.
-         */
-        var buttons = document.getElementsByTagName("button");
-        t.each(buttons, function(b) {
-            if (b.accessKey != "") {
-                t.addShortcut(t.modifier + '+' + b.accessKey, function() {
-                    b.click();
-                });
-                b.accessKey = '';
-            }
-        });
-
-        /**
-         * Register listeners on document to catch keyboard events.
-         */
-
-        addEvent(document,'keyup',function (e) {
-            return t.onkeyup.call(t,e);
-        });
-
-        addEvent(document,'keypress',function (e) {
-            return t.onkeypress.call(t,e);
-        });
-
-        addEvent(document,'keydown',function (e) {
-            return t.onkeydown.call(t,e);
-        });
-    };
-
-    /**
-     * Keyup processing function
-     * Function returns true if keyboard event has registered handler, and
-     * executes the handler function.
-     *
-     * @param e KeyboardEvent
-     * @author Marek Sacha <sachamar@fel.cvut.cz>
-     * @return b boolean
-     */
-    this.onkeyup = function(e) {
-        var t = this;
-        var v = t.findShortcut(e);
-        if (v != null && v != false) {
-            v.func.call(t);
-            return false;
-        }
-        return true;
-    };
-
-    /**
-     * Keydown processing function
-     * Function returns true if keyboard event has registered handler
-     *
-     * @param e KeyboardEvent
-     * @author Marek Sacha <sachamar@fel.cvut.cz>
-     * @return b boolean
-     */
-    this.onkeydown = function(e) {
-        var t = this;
-        var v = t.findShortcut(e);
-        if (v != null && v != false) {
-            return false;
-        }
-        return true;
-    };
-
-    /**
-     * Keypress processing function
-     * Function returns true if keyboard event has registered handler
-     *
-     * @param e KeyboardEvent
-     * @author Marek Sacha <sachamar@fel.cvut.cz>
-     * @return b
-     */
-    this.onkeypress = function(e) {
-        var t = this;
-        var v = t.findShortcut(e);
-        if (v != null && v != false) {
-            return false;
-        }
-        return true;
-    };
-
-    /**
-     * Register new shortcut
-     *
-     * This function registers new shortcuts, each shortcut is defined by its
-     * modifier keys and a key (with + as delimiter). If shortcut is pressed
-     * cmd_function is performed.
-     *
-     * For example:
-     *  pa = "ctrl+alt+p";
-     *  pa = "shift+alt+s";
-     *
-     * Full example of method usage:
-     *  hotkeys.addShortcut('ctrl+s',function() {
-     *      document.getElementByID('form_1').submit();
-     *  });
-     *
-     * @param pa String description of the shortcut (ctrl+a, ctrl+shift+p, .. )
-     * @param cmd_func Function to be called if shortcut is pressed
-     * @author Marek Sacha <sachamar@fel.cvut.cz>
-     */
-    this.addShortcut = function(pa, cmd_func) {
-        var t = this;
-
-        var o = {
-            func : cmd_func,
-            alt : false,
-            ctrl : false,
-            shift : false
-        };
-
-        t.each(t.explode(pa, '+'), function(v) {
-            switch (v) {
-                case 'alt':
-                case 'ctrl':
-                case 'shift':
-                    o[v] = true;
-                    break;
-
-                default:
-                    o.charCode = v.charCodeAt(0);
-                    o.keyCode = v.toUpperCase().charCodeAt(0);
-            }
-        });
-
-        t.shortcuts.push((o.ctrl ? 'ctrl' : '') + ',' + (o.alt ? 'alt' : '') + ',' + (o.shift ? 'shift' : '') + ',' + o.keyCode,  o);
-
-        return true;
-    };
-
-    /**
-     * @property isMac
-     */
-    this.isMac = is_macos;
-
-    /**
-     * Apply function cb on each element of o in the namespace of s
-     * @param o Array of objects
-     * @param cb Function to be called on each object
-     * @param s Namespace to be used during call of cb (default namespace is o)
-     * @author Marek Sacha <sachamar@fel.cvut.cz>
-     */
-    this.each = function(o, cb, s) {
-        var n, l;
-
-        if (!o)
-            return 0;
-
-        s = s || o;
-
-        if (o.length !== undefined) {
-            // Indexed arrays, needed for Safari
-            for (n=0, l = o.length; n < l; n++) {
-                if (cb.call(s, o[n], n, o) === false)
-                    return 0;
-            }
-        } else {
-            // Hashtables
-            for (n in o) {
-                if (o.hasOwnProperty(n)) {
-                    if (cb.call(s, o[n], n, o) === false)
-                        return 0;
-                }
-            }
-        }
-
-        return 1;
-    };
-
-    /**
-     * Explode string according to delimiter
-     * @param s String
-     * @param d Delimiter (default ',')
-     * @author Marek Sacha <sachamar@fel.cvut.cz>
-     * @return a Array of tokens
-     */
-    this.explode = function(s, d) {
-        return  s.split(d || ',');
-    };
-
-    /**
-     * Find if the shortcut was registered
-     *
-     * @param e KeyboardEvent
-     * @author Marek Sacha <sachamar@fel.cvut.cz>
-     * @return v Shortcut structure or null if not found
-     */
-    this.findShortcut = function (e) {
-        var t = this;
-        var v = null;
-
-        /* No modifier key used - shortcut does not exist */
-        if (!e.altKey && !e.ctrlKey && !e.metaKey) {
-            return v;
-        }
-
-        t.each(t.shortcuts, function(o) {
-            if (o.ctrl != e.ctrlKey)
-                return;
-
-            if (o.alt != e.altKey)
-                return;
-
-            if (o.shift != e.shiftKey)
-                return;
-
-            if (e.keyCode == o.keyCode || (e.charCode && e.charCode == o.charCode)) {
-                v = o;
-                return;
-            }
-        });
-        return v;
-    };
-}
-
-/**
- * Init function for hotkeys. Called from js.php, to ensure hotkyes are initialized after toolbar.
- * Call of addInitEvent(initializeHotkeys) is unnecessary now.
- *
- * @author Marek Sacha <sachamar@fel.cvut.cz>
- */
-function initializeHotkeys() {
-    var hotkeys = new Hotkeys();
-    hotkeys.initialize();
-}
diff --git a/wiki/lib/scripts/index.html b/wiki/lib/scripts/index.html
deleted file mode 100644
index 977f90e..0000000
--- a/wiki/lib/scripts/index.html
+++ /dev/null
@@ -1,11 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<meta http-equiv="refresh" content="0; URL=../../" />
-<meta name="robots" content="noindex" />
-<title>nothing here...</title>
-</head>
-<body>
-<!-- this is just here to prevent directory browsing -->
-</body>
-</html>
diff --git a/wiki/lib/scripts/index.js b/wiki/lib/scripts/index.js
deleted file mode 100644
index 4b67a0b..0000000
--- a/wiki/lib/scripts/index.js
+++ /dev/null
@@ -1,16 +0,0 @@
-var dw_index = jQuery('#index__tree').dw_tree({deferInit: true,
-    load_data: function  (show_sublist, $clicky) {
-        jQuery.post(
-            DOKU_BASE + 'lib/exe/ajax.php',
-            $clicky[0].search.substr(1) + '&call=index',
-            show_sublist, 'html'
-        );
-    }
-});
-jQuery(function () {
-    var $tree = jQuery('#index__tree');
-
-    dw_index.$obj = $tree;
-
-    dw_index.init();
-});
diff --git a/wiki/lib/scripts/jquery/jquery-migrate.min.js b/wiki/lib/scripts/jquery/jquery-migrate.min.js
deleted file mode 100644
index a2813c5..0000000
--- a/wiki/lib/scripts/jquery/jquery-migrate.min.js
+++ /dev/null
@@ -1,2 +0,0 @@
-/*! jQuery Migrate v3.0.0 | (c) jQuery Foundation and other contributors | jquery.org/license */
-"undefined"==typeof jQuery.migrateMute&&(jQuery.migrateMute=!0),function(a,b){"use strict";function c(c){var d=b.console;e[c]||(e[c]=!0,a.migrateWarnings.push(c),d&&d.warn&&!a.migrateMute&&(d.warn("JQMIGRATE: "+c),a.migrateTrace&&d.trace&&d.trace()))}function d(a,b,d,e){Object.defineProperty(a,b,{configurable:!0,enumerable:!0,get:function(){return c(e),d}})}a.migrateVersion="3.0.0",function(){var c=b.console&&b.console.log&&function(){b.console.log.apply(b.console,arguments)},d=/^[12]\./;c&&(a&&!d.test(a.fn.jquery)||c("JQMIGRATE: jQuery 3.0.0+ REQUIRED"),a.migrateWarnings&&c("JQMIGRATE: Migrate plugin loaded multiple times"),c("JQMIGRATE: Migrate is installed"+(a.migrateMute?"":" with logging active")+", version "+a.migrateVersion))}();var e={};a.migrateWarnings=[],void 0===a.migrateTrace&&(a.migrateTrace=!0),a.migrateReset=function(){e={},a.migrateWarnings.length=0},"BackCompat"===document.compatMode&&c("jQuery is not compatible with Quirks Mode");var f=a.fn.init,g=a.isNumeric,h=a.find,i=/\[(\s*[-\w]+\s*)([~|^$*]?=)\s*([-\w#]*?#[-\w#]*)\s*\]/,j=/\[(\s*[-\w]+\s*)([~|^$*]?=)\s*([-\w#]*?#[-\w#]*)\s*\]/g;a.fn.init=function(a){var b=Array.prototype.slice.call(arguments);return"string"==typeof a&&"#"===a&&(c("jQuery( '#' ) is not a valid selector"),b[0]=[]),f.apply(this,b)},a.fn.init.prototype=a.fn,a.find=function(a){var b=Array.prototype.slice.call(arguments);if("string"==typeof a&&i.test(a))try{document.querySelector(a)}catch(d){a=a.replace(j,function(a,b,c,d){return"["+b+c+'"'+d+'"]'});try{document.querySelector(a),c("Attribute selector with '#' must be quoted: "+b[0]),b[0]=a}catch(e){c("Attribute selector with '#' was not fixed: "+b[0])}}return h.apply(this,b)};var k;for(k in h)Object.prototype.hasOwnProperty.call(h,k)&&(a.find[k]=h[k]);a.fn.size=function(){return c("jQuery.fn.size() is deprecated; use the .length property"),this.length},a.parseJSON=function(){return c("jQuery.parseJSON is deprecated; use JSON.parse"),JSON.parse.apply(null,arguments)},a.isNumeric=function(b){function d(b){var c=b&&b.toString();return!a.isArray(b)&&c-parseFloat(c)+1>=0}var e=g(b),f=d(b);return e!==f&&c("jQuery.isNumeric() should not be called on constructed objects"),f},d(a,"unique",a.uniqueSort,"jQuery.unique is deprecated, use jQuery.uniqueSort"),d(a.expr,"filters",a.expr.pseudos,"jQuery.expr.filters is now jQuery.expr.pseudos"),d(a.expr,":",a.expr.pseudos,'jQuery.expr[":"] is now jQuery.expr.pseudos');var l=a.ajax;a.ajax=function(){var a=l.apply(this,arguments);return a.promise&&(d(a,"success",a.done,"jQXHR.success is deprecated and removed"),d(a,"error",a.fail,"jQXHR.error is deprecated and removed"),d(a,"complete",a.always,"jQXHR.complete is deprecated and removed")),a};var m=a.fn.removeAttr,n=a.fn.toggleClass,o=/\S+/g;a.fn.removeAttr=function(b){var d=this;return a.each(b.match(o),function(b,e){a.expr.match.bool.test(e)&&(c("jQuery.fn.removeAttr no longer sets boolean properties: "+e),d.prop(e,!1))}),m.apply(this,arguments)},a.fn.toggleClass=function(b){return void 0!==b&&"boolean"!=typeof b?n.apply(this,arguments):(c("jQuery.fn.toggleClass( boolean ) is deprecated"),this.each(function(){var c=this.getAttribute&&this.getAttribute("class")||"";c&&a.data(this,"__className__",c),this.setAttribute&&this.setAttribute("class",c||b===!1?"":a.data(this,"__className__")||"")}))};var p=!1;a.swap&&a.each(["height","width","reliableMarginRight"],function(b,c){var d=a.cssHooks[c]&&a.cssHooks[c].get;d&&(a.cssHooks[c].get=function(){var a;return p=!0,a=d.apply(this,arguments),p=!1,a})}),a.swap=function(a,b,d,e){var f,g,h={};p||c("jQuery.swap() is undocumented and deprecated");for(g in b)h[g]=a.style[g],a.style[g]=b[g];f=d.apply(a,e||[]);for(g in b)a.style[g]=h[g];return f};var q=a.data;a.data=function(b,d,e){var f;return d&&d!==a.camelCase(d)&&(f=a.hasData(b)&&q.call(this,b),f&&d in f)?(c("jQuery.data() always sets/gets camelCased names: "+d),arguments.length>2&&(f[d]=e),f[d]):q.apply(this,arguments)};var r=a.Tween.prototype.run;a.Tween.prototype.run=function(b){a.easing[this.easing].length>1&&(c('easing function "jQuery.easing.'+this.easing.toString()+'" should use only first argument'),a.easing[this.easing]=a.easing[this.easing].bind(a.easing,b,this.options.duration*b,0,1,this.options.duration)),r.apply(this,arguments)};var s=a.fn.load,t=a.event.fix;a.event.props=[],a.event.fixHooks={},a.event.fix=function(b){var d,e=b.type,f=this.fixHooks[e],g=a.event.props;if(g.length)for(c("jQuery.event.props are deprecated and removed: "+g.join());g.length;)a.event.addProp(g.pop());if(f&&!f._migrated_&&(f._migrated_=!0,c("jQuery.event.fixHooks are deprecated and removed: "+e),(g=f.props)&&g.length))for(;g.length;)a.event.addProp(g.pop());return d=t.call(this,b),f&&f.filter?f.filter(d,b):d},a.each(["load","unload","error"],function(b,d){a.fn[d]=function(){var a=Array.prototype.slice.call(arguments,0);return"load"===d&&"string"==typeof a[0]?s.apply(this,a):(c("jQuery.fn."+d+"() is deprecated"),a.splice(0,0,d),arguments.length?this.on.apply(this,a):(this.triggerHandler.apply(this,a),this))}}),a(function(){a(document).triggerHandler("ready")}),a.event.special.ready={setup:function(){this===document&&c("'ready' event is deprecated")}},a.fn.extend({bind:function(a,b,d){return c("jQuery.fn.bind() is deprecated"),this.on(a,null,b,d)},unbind:function(a,b){return c("jQuery.fn.unbind() is deprecated"),this.off(a,null,b)},delegate:function(a,b,d,e){return c("jQuery.fn.delegate() is deprecated"),this.on(b,a,d,e)},undelegate:function(a,b,d){return c("jQuery.fn.undelegate() is deprecated"),1===arguments.length?this.off(a,"**"):this.off(b,a||"**",d)}});var u=a.fn.offset;a.fn.offset=function(){var b,d=this[0],e={top:0,left:0};return d&&d.nodeType?(b=(d.ownerDocument||document).documentElement,a.contains(b,d)?u.apply(this,arguments):(c("jQuery.fn.offset() requires an element connected to a document"),e)):(c("jQuery.fn.offset() requires a valid DOM element"),e)};var v=a.param;a.param=function(b,d){var e=a.ajaxSettings&&a.ajaxSettings.traditional;return void 0===d&&e&&(c("jQuery.param() no longer uses jQuery.ajaxSettings.traditional"),d=e),v.call(this,b,d)};var w=a.fn.andSelf||a.fn.addBack;a.fn.andSelf=function(){return c("jQuery.fn.andSelf() replaced by jQuery.fn.addBack()"),w.apply(this,arguments)};var x=a.Deferred,y=[["resolve","done",a.Callbacks("once memory"),a.Callbacks("once memory"),"resolved"],["reject","fail",a.Callbacks("once memory"),a.Callbacks("once memory"),"rejected"],["notify","progress",a.Callbacks("memory"),a.Callbacks("memory")]];a.Deferred=function(b){var d=x(),e=d.promise();return d.pipe=e.pipe=function(){var b=arguments;return c("deferred.pipe() is deprecated"),a.Deferred(function(c){a.each(y,function(f,g){var h=a.isFunction(b[f])&&b[f];d[g[1]](function(){var b=h&&h.apply(this,arguments);b&&a.isFunction(b.promise)?b.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[g[0]+"With"](this===e?c.promise():this,h?[b]:arguments)})}),b=null}).promise()},b&&b.call(d,d),d}}(jQuery,window);
\ No newline at end of file
diff --git a/wiki/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_glass_55_fbf9ee_1x400.png b/wiki/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_glass_55_fbf9ee_1x400.png
deleted file mode 100644
index 6b1f24d..0000000
--- a/wiki/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_glass_55_fbf9ee_1x400.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_glass_65_ffffff_1x400.png b/wiki/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_glass_65_ffffff_1x400.png
deleted file mode 100644
index 5f6fc57..0000000
--- a/wiki/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_glass_65_ffffff_1x400.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_glass_75_dadada_1x400.png b/wiki/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_glass_75_dadada_1x400.png
deleted file mode 100644
index 8bc2c8b..0000000
--- a/wiki/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_glass_75_dadada_1x400.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_glass_75_e6e6e6_1x400.png b/wiki/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_glass_75_e6e6e6_1x400.png
deleted file mode 100644
index be993d5..0000000
--- a/wiki/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_glass_75_e6e6e6_1x400.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_glass_95_fef1ec_1x400.png b/wiki/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_glass_95_fef1ec_1x400.png
deleted file mode 100644
index e69de29..0000000
--- a/wiki/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_glass_95_fef1ec_1x400.png
+++ /dev/null
diff --git a/wiki/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_highlight-soft_75_cccccc_1x100.png b/wiki/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_highlight-soft_75_cccccc_1x100.png
deleted file mode 100644
index 9e3afb5..0000000
--- a/wiki/lib/scripts/jquery/jquery-ui-theme/images/ui-bg_highlight-soft_75_cccccc_1x100.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/scripts/jquery/jquery-ui-theme/images/ui-icons_222222_256x240.png b/wiki/lib/scripts/jquery/jquery-ui-theme/images/ui-icons_222222_256x240.png
deleted file mode 100644
index 6ba300b..0000000
--- a/wiki/lib/scripts/jquery/jquery-ui-theme/images/ui-icons_222222_256x240.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/scripts/jquery/jquery-ui-theme/images/ui-icons_2e83ff_256x240.png b/wiki/lib/scripts/jquery/jquery-ui-theme/images/ui-icons_2e83ff_256x240.png
deleted file mode 100644
index 1c7b633..0000000
--- a/wiki/lib/scripts/jquery/jquery-ui-theme/images/ui-icons_2e83ff_256x240.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/scripts/jquery/jquery-ui-theme/images/ui-icons_454545_256x240.png b/wiki/lib/scripts/jquery/jquery-ui-theme/images/ui-icons_454545_256x240.png
deleted file mode 100644
index bd90b26..0000000
--- a/wiki/lib/scripts/jquery/jquery-ui-theme/images/ui-icons_454545_256x240.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/scripts/jquery/jquery-ui-theme/images/ui-icons_888888_256x240.png b/wiki/lib/scripts/jquery/jquery-ui-theme/images/ui-icons_888888_256x240.png
deleted file mode 100644
index 813f18d..0000000
--- a/wiki/lib/scripts/jquery/jquery-ui-theme/images/ui-icons_888888_256x240.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/scripts/jquery/jquery-ui-theme/images/ui-icons_cd0a0a_256x240.png b/wiki/lib/scripts/jquery/jquery-ui-theme/images/ui-icons_cd0a0a_256x240.png
deleted file mode 100644
index cfb3d44..0000000
--- a/wiki/lib/scripts/jquery/jquery-ui-theme/images/ui-icons_cd0a0a_256x240.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/scripts/jquery/jquery-ui-theme/smoothness.css b/wiki/lib/scripts/jquery/jquery-ui-theme/smoothness.css
deleted file mode 100644
index eab564a..0000000
--- a/wiki/lib/scripts/jquery/jquery-ui-theme/smoothness.css
+++ /dev/null
@@ -1,1311 +0,0 @@
-/*! jQuery UI - v1.12.1 - 2016-09-14
-* http://jqueryui.com
-* Includes: core.css, accordion.css, autocomplete.css, menu.css, button.css, controlgroup.css, checkboxradio.css, datepicker.css, dialog.css, draggable.css, resizable.css, progressbar.css, selectable.css, selectmenu.css, slider.css, sortable.css, spinner.css, tabs.css, tooltip.css, theme.css
-* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana%2CArial%2Csans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=cccccc&bgTextureHeader=highlight_soft&bgImgOpacityHeader=75&borderColorHeader=aaaaaa&fcHeader=222222&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=flat&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=glass&bgImgOpacityDefault=75&borderColorDefault=d3d3d3&fcDefault=555555&iconColorDefault=888888&bgColorHover=dadada&bgTextureHover=glass&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=ffffff&bgTextureActive=glass&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=fbf9ee&bgTextureHighlight=glass&bgImgOpacityHighlight=55&borderColorHighlight=fcefa1&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=glass&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=flat&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=flat&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px
-* Copyright jQuery Foundation and other contributors; Licensed MIT */
-
-/* Layout helpers
-----------------------------------*/
-.ui-helper-hidden {
-	display: none;
-}
-.ui-helper-hidden-accessible {
-	border: 0;
-	clip: rect(0 0 0 0);
-	height: 1px;
-	margin: -1px;
-	overflow: hidden;
-	padding: 0;
-	position: absolute;
-	width: 1px;
-}
-.ui-helper-reset {
-	margin: 0;
-	padding: 0;
-	border: 0;
-	outline: 0;
-	line-height: 1.3;
-	text-decoration: none;
-	font-size: 100%;
-	list-style: none;
-}
-.ui-helper-clearfix:before,
-.ui-helper-clearfix:after {
-	content: "";
-	display: table;
-	border-collapse: collapse;
-}
-.ui-helper-clearfix:after {
-	clear: both;
-}
-.ui-helper-zfix {
-	width: 100%;
-	height: 100%;
-	top: 0;
-	left: 0;
-	position: absolute;
-	opacity: 0;
-	filter:Alpha(Opacity=0); /* support: IE8 */
-}
-
-.ui-front {
-	z-index: 100;
-}
-
-
-/* Interaction Cues
-----------------------------------*/
-.ui-state-disabled {
-	cursor: default !important;
-	pointer-events: none;
-}
-
-
-/* Icons
-----------------------------------*/
-.ui-icon {
-	display: inline-block;
-	vertical-align: middle;
-	margin-top: -.25em;
-	position: relative;
-	text-indent: -99999px;
-	overflow: hidden;
-	background-repeat: no-repeat;
-}
-
-.ui-widget-icon-block {
-	left: 50%;
-	margin-left: -8px;
-	display: block;
-}
-
-/* Misc visuals
-----------------------------------*/
-
-/* Overlays */
-.ui-widget-overlay {
-	position: fixed;
-	top: 0;
-	left: 0;
-	width: 100%;
-	height: 100%;
-}
-.ui-accordion .ui-accordion-header {
-	display: block;
-	cursor: pointer;
-	position: relative;
-	margin: 2px 0 0 0;
-	padding: .5em .5em .5em .7em;
-	font-size: 100%;
-}
-.ui-accordion .ui-accordion-content {
-	padding: 1em 2.2em;
-	border-top: 0;
-	overflow: auto;
-}
-.ui-autocomplete {
-	position: absolute;
-	top: 0;
-	left: 0;
-	cursor: default;
-}
-.ui-menu {
-	list-style: none;
-	padding: 0;
-	margin: 0;
-	display: block;
-	outline: 0;
-}
-.ui-menu .ui-menu {
-	position: absolute;
-}
-.ui-menu .ui-menu-item {
-	margin: 0;
-	cursor: pointer;
-	/* support: IE10, see #8844 */
-	list-style-image: url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7");
-}
-.ui-menu .ui-menu-item-wrapper {
-	position: relative;
-	padding: 3px 1em 3px .4em;
-}
-.ui-menu .ui-menu-divider {
-	margin: 5px 0;
-	height: 0;
-	font-size: 0;
-	line-height: 0;
-	border-width: 1px 0 0 0;
-}
-.ui-menu .ui-state-focus,
-.ui-menu .ui-state-active {
-	margin: -1px;
-}
-
-/* icon support */
-.ui-menu-icons {
-	position: relative;
-}
-.ui-menu-icons .ui-menu-item-wrapper {
-	padding-left: 2em;
-}
-
-/* left-aligned */
-.ui-menu .ui-icon {
-	position: absolute;
-	top: 0;
-	bottom: 0;
-	left: .2em;
-	margin: auto 0;
-}
-
-/* right-aligned */
-.ui-menu .ui-menu-icon {
-	left: auto;
-	right: 0;
-}
-.ui-button {
-	padding: .4em 1em;
-	display: inline-block;
-	position: relative;
-	line-height: normal;
-	margin-right: .1em;
-	cursor: pointer;
-	vertical-align: middle;
-	text-align: center;
-	-webkit-user-select: none;
-	-moz-user-select: none;
-	-ms-user-select: none;
-	user-select: none;
-
-	/* Support: IE <= 11 */
-	overflow: visible;
-}
-
-.ui-button,
-.ui-button:link,
-.ui-button:visited,
-.ui-button:hover,
-.ui-button:active {
-	text-decoration: none;
-}
-
-/* to make room for the icon, a width needs to be set here */
-.ui-button-icon-only {
-	width: 2em;
-	box-sizing: border-box;
-	text-indent: -9999px;
-	white-space: nowrap;
-}
-
-/* no icon support for input elements */
-input.ui-button.ui-button-icon-only {
-	text-indent: 0;
-}
-
-/* button icon element(s) */
-.ui-button-icon-only .ui-icon {
-	position: absolute;
-	top: 50%;
-	left: 50%;
-	margin-top: -8px;
-	margin-left: -8px;
-}
-
-.ui-button.ui-icon-notext .ui-icon {
-	padding: 0;
-	width: 2.1em;
-	height: 2.1em;
-	text-indent: -9999px;
-	white-space: nowrap;
-
-}
-
-input.ui-button.ui-icon-notext .ui-icon {
-	width: auto;
-	height: auto;
-	text-indent: 0;
-	white-space: normal;
-	padding: .4em 1em;
-}
-
-/* workarounds */
-/* Support: Firefox 5 - 40 */
-input.ui-button::-moz-focus-inner,
-button.ui-button::-moz-focus-inner {
-	border: 0;
-	padding: 0;
-}
-.ui-controlgroup {
-	vertical-align: middle;
-	display: inline-block;
-}
-.ui-controlgroup > .ui-controlgroup-item {
-	float: left;
-	margin-left: 0;
-	margin-right: 0;
-}
-.ui-controlgroup > .ui-controlgroup-item:focus,
-.ui-controlgroup > .ui-controlgroup-item.ui-visual-focus {
-	z-index: 9999;
-}
-.ui-controlgroup-vertical > .ui-controlgroup-item {
-	display: block;
-	float: none;
-	width: 100%;
-	margin-top: 0;
-	margin-bottom: 0;
-	text-align: left;
-}
-.ui-controlgroup-vertical .ui-controlgroup-item {
-	box-sizing: border-box;
-}
-.ui-controlgroup .ui-controlgroup-label {
-	padding: .4em 1em;
-}
-.ui-controlgroup .ui-controlgroup-label span {
-	font-size: 80%;
-}
-.ui-controlgroup-horizontal .ui-controlgroup-label + .ui-controlgroup-item {
-	border-left: none;
-}
-.ui-controlgroup-vertical .ui-controlgroup-label + .ui-controlgroup-item {
-	border-top: none;
-}
-.ui-controlgroup-horizontal .ui-controlgroup-label.ui-widget-content {
-	border-right: none;
-}
-.ui-controlgroup-vertical .ui-controlgroup-label.ui-widget-content {
-	border-bottom: none;
-}
-
-/* Spinner specific style fixes */
-.ui-controlgroup-vertical .ui-spinner-input {
-
-	/* Support: IE8 only, Android < 4.4 only */
-	width: 75%;
-	width: calc( 100% - 2.4em );
-}
-.ui-controlgroup-vertical .ui-spinner .ui-spinner-up {
-	border-top-style: solid;
-}
-
-.ui-checkboxradio-label .ui-icon-background {
-	box-shadow: inset 1px 1px 1px #ccc;
-	border-radius: .12em;
-	border: none;
-}
-.ui-checkboxradio-radio-label .ui-icon-background {
-	width: 16px;
-	height: 16px;
-	border-radius: 1em;
-	overflow: visible;
-	border: none;
-}
-.ui-checkboxradio-radio-label.ui-checkboxradio-checked .ui-icon,
-.ui-checkboxradio-radio-label.ui-checkboxradio-checked:hover .ui-icon {
-	background-image: none;
-	width: 8px;
-	height: 8px;
-	border-width: 4px;
-	border-style: solid;
-}
-.ui-checkboxradio-disabled {
-	pointer-events: none;
-}
-.ui-datepicker {
-	width: 17em;
-	padding: .2em .2em 0;
-	display: none;
-}
-.ui-datepicker .ui-datepicker-header {
-	position: relative;
-	padding: .2em 0;
-}
-.ui-datepicker .ui-datepicker-prev,
-.ui-datepicker .ui-datepicker-next {
-	position: absolute;
-	top: 2px;
-	width: 1.8em;
-	height: 1.8em;
-}
-.ui-datepicker .ui-datepicker-prev-hover,
-.ui-datepicker .ui-datepicker-next-hover {
-	top: 1px;
-}
-.ui-datepicker .ui-datepicker-prev {
-	left: 2px;
-}
-.ui-datepicker .ui-datepicker-next {
-	right: 2px;
-}
-.ui-datepicker .ui-datepicker-prev-hover {
-	left: 1px;
-}
-.ui-datepicker .ui-datepicker-next-hover {
-	right: 1px;
-}
-.ui-datepicker .ui-datepicker-prev span,
-.ui-datepicker .ui-datepicker-next span {
-	display: block;
-	position: absolute;
-	left: 50%;
-	margin-left: -8px;
-	top: 50%;
-	margin-top: -8px;
-}
-.ui-datepicker .ui-datepicker-title {
-	margin: 0 2.3em;
-	line-height: 1.8em;
-	text-align: center;
-}
-.ui-datepicker .ui-datepicker-title select {
-	font-size: 1em;
-	margin: 1px 0;
-}
-.ui-datepicker select.ui-datepicker-month,
-.ui-datepicker select.ui-datepicker-year {
-	width: 45%;
-}
-.ui-datepicker table {
-	width: 100%;
-	font-size: .9em;
-	border-collapse: collapse;
-	margin: 0 0 .4em;
-}
-.ui-datepicker th {
-	padding: .7em .3em;
-	text-align: center;
-	font-weight: bold;
-	border: 0;
-}
-.ui-datepicker td {
-	border: 0;
-	padding: 1px;
-}
-.ui-datepicker td span,
-.ui-datepicker td a {
-	display: block;
-	padding: .2em;
-	text-align: right;
-	text-decoration: none;
-}
-.ui-datepicker .ui-datepicker-buttonpane {
-	background-image: none;
-	margin: .7em 0 0 0;
-	padding: 0 .2em;
-	border-left: 0;
-	border-right: 0;
-	border-bottom: 0;
-}
-.ui-datepicker .ui-datepicker-buttonpane button {
-	float: right;
-	margin: .5em .2em .4em;
-	cursor: pointer;
-	padding: .2em .6em .3em .6em;
-	width: auto;
-	overflow: visible;
-}
-.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current {
-	float: left;
-}
-
-/* with multiple calendars */
-.ui-datepicker.ui-datepicker-multi {
-	width: auto;
-}
-.ui-datepicker-multi .ui-datepicker-group {
-	float: left;
-}
-.ui-datepicker-multi .ui-datepicker-group table {
-	width: 95%;
-	margin: 0 auto .4em;
-}
-.ui-datepicker-multi-2 .ui-datepicker-group {
-	width: 50%;
-}
-.ui-datepicker-multi-3 .ui-datepicker-group {
-	width: 33.3%;
-}
-.ui-datepicker-multi-4 .ui-datepicker-group {
-	width: 25%;
-}
-.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,
-.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header {
-	border-left-width: 0;
-}
-.ui-datepicker-multi .ui-datepicker-buttonpane {
-	clear: left;
-}
-.ui-datepicker-row-break {
-	clear: both;
-	width: 100%;
-	font-size: 0;
-}
-
-/* RTL support */
-.ui-datepicker-rtl {
-	direction: rtl;
-}
-.ui-datepicker-rtl .ui-datepicker-prev {
-	right: 2px;
-	left: auto;
-}
-.ui-datepicker-rtl .ui-datepicker-next {
-	left: 2px;
-	right: auto;
-}
-.ui-datepicker-rtl .ui-datepicker-prev:hover {
-	right: 1px;
-	left: auto;
-}
-.ui-datepicker-rtl .ui-datepicker-next:hover {
-	left: 1px;
-	right: auto;
-}
-.ui-datepicker-rtl .ui-datepicker-buttonpane {
-	clear: right;
-}
-.ui-datepicker-rtl .ui-datepicker-buttonpane button {
-	float: left;
-}
-.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,
-.ui-datepicker-rtl .ui-datepicker-group {
-	float: right;
-}
-.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,
-.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header {
-	border-right-width: 0;
-	border-left-width: 1px;
-}
-
-/* Icons */
-.ui-datepicker .ui-icon {
-	display: block;
-	text-indent: -99999px;
-	overflow: hidden;
-	background-repeat: no-repeat;
-	left: .5em;
-	top: .3em;
-}
-.ui-dialog {
-	position: absolute;
-	top: 0;
-	left: 0;
-	padding: .2em;
-	outline: 0;
-}
-.ui-dialog .ui-dialog-titlebar {
-	padding: .4em 1em;
-	position: relative;
-}
-.ui-dialog .ui-dialog-title {
-	float: left;
-	margin: .1em 0;
-	white-space: nowrap;
-	width: 90%;
-	overflow: hidden;
-	text-overflow: ellipsis;
-}
-.ui-dialog .ui-dialog-titlebar-close {
-	position: absolute;
-	right: .3em;
-	top: 50%;
-	width: 20px;
-	margin: -10px 0 0 0;
-	padding: 1px;
-	height: 20px;
-}
-.ui-dialog .ui-dialog-content {
-	position: relative;
-	border: 0;
-	padding: .5em 1em;
-	background: none;
-	overflow: auto;
-}
-.ui-dialog .ui-dialog-buttonpane {
-	text-align: left;
-	border-width: 1px 0 0 0;
-	background-image: none;
-	margin-top: .5em;
-	padding: .3em 1em .5em .4em;
-}
-.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset {
-	float: right;
-}
-.ui-dialog .ui-dialog-buttonpane button {
-	margin: .5em .4em .5em 0;
-	cursor: pointer;
-}
-.ui-dialog .ui-resizable-n {
-	height: 2px;
-	top: 0;
-}
-.ui-dialog .ui-resizable-e {
-	width: 2px;
-	right: 0;
-}
-.ui-dialog .ui-resizable-s {
-	height: 2px;
-	bottom: 0;
-}
-.ui-dialog .ui-resizable-w {
-	width: 2px;
-	left: 0;
-}
-.ui-dialog .ui-resizable-se,
-.ui-dialog .ui-resizable-sw,
-.ui-dialog .ui-resizable-ne,
-.ui-dialog .ui-resizable-nw {
-	width: 7px;
-	height: 7px;
-}
-.ui-dialog .ui-resizable-se {
-	right: 0;
-	bottom: 0;
-}
-.ui-dialog .ui-resizable-sw {
-	left: 0;
-	bottom: 0;
-}
-.ui-dialog .ui-resizable-ne {
-	right: 0;
-	top: 0;
-}
-.ui-dialog .ui-resizable-nw {
-	left: 0;
-	top: 0;
-}
-.ui-draggable .ui-dialog-titlebar {
-	cursor: move;
-}
-.ui-draggable-handle {
-	-ms-touch-action: none;
-	touch-action: none;
-}
-.ui-resizable {
-	position: relative;
-}
-.ui-resizable-handle {
-	position: absolute;
-	font-size: 0.1px;
-	display: block;
-	-ms-touch-action: none;
-	touch-action: none;
-}
-.ui-resizable-disabled .ui-resizable-handle,
-.ui-resizable-autohide .ui-resizable-handle {
-	display: none;
-}
-.ui-resizable-n {
-	cursor: n-resize;
-	height: 7px;
-	width: 100%;
-	top: -5px;
-	left: 0;
-}
-.ui-resizable-s {
-	cursor: s-resize;
-	height: 7px;
-	width: 100%;
-	bottom: -5px;
-	left: 0;
-}
-.ui-resizable-e {
-	cursor: e-resize;
-	width: 7px;
-	right: -5px;
-	top: 0;
-	height: 100%;
-}
-.ui-resizable-w {
-	cursor: w-resize;
-	width: 7px;
-	left: -5px;
-	top: 0;
-	height: 100%;
-}
-.ui-resizable-se {
-	cursor: se-resize;
-	width: 12px;
-	height: 12px;
-	right: 1px;
-	bottom: 1px;
-}
-.ui-resizable-sw {
-	cursor: sw-resize;
-	width: 9px;
-	height: 9px;
-	left: -5px;
-	bottom: -5px;
-}
-.ui-resizable-nw {
-	cursor: nw-resize;
-	width: 9px;
-	height: 9px;
-	left: -5px;
-	top: -5px;
-}
-.ui-resizable-ne {
-	cursor: ne-resize;
-	width: 9px;
-	height: 9px;
-	right: -5px;
-	top: -5px;
-}
-.ui-progressbar {
-	height: 2em;
-	text-align: left;
-	overflow: hidden;
-}
-.ui-progressbar .ui-progressbar-value {
-	margin: -1px;
-	height: 100%;
-}
-.ui-progressbar .ui-progressbar-overlay {
-	background: url("data:image/gif;base64,R0lGODlhKAAoAIABAAAAAP///yH/C05FVFNDQVBFMi4wAwEAAAAh+QQJAQABACwAAAAAKAAoAAACkYwNqXrdC52DS06a7MFZI+4FHBCKoDeWKXqymPqGqxvJrXZbMx7Ttc+w9XgU2FB3lOyQRWET2IFGiU9m1frDVpxZZc6bfHwv4c1YXP6k1Vdy292Fb6UkuvFtXpvWSzA+HycXJHUXiGYIiMg2R6W459gnWGfHNdjIqDWVqemH2ekpObkpOlppWUqZiqr6edqqWQAAIfkECQEAAQAsAAAAACgAKAAAApSMgZnGfaqcg1E2uuzDmmHUBR8Qil95hiPKqWn3aqtLsS18y7G1SzNeowWBENtQd+T1JktP05nzPTdJZlR6vUxNWWjV+vUWhWNkWFwxl9VpZRedYcflIOLafaa28XdsH/ynlcc1uPVDZxQIR0K25+cICCmoqCe5mGhZOfeYSUh5yJcJyrkZWWpaR8doJ2o4NYq62lAAACH5BAkBAAEALAAAAAAoACgAAAKVDI4Yy22ZnINRNqosw0Bv7i1gyHUkFj7oSaWlu3ovC8GxNso5fluz3qLVhBVeT/Lz7ZTHyxL5dDalQWPVOsQWtRnuwXaFTj9jVVh8pma9JjZ4zYSj5ZOyma7uuolffh+IR5aW97cHuBUXKGKXlKjn+DiHWMcYJah4N0lYCMlJOXipGRr5qdgoSTrqWSq6WFl2ypoaUAAAIfkECQEAAQAsAAAAACgAKAAAApaEb6HLgd/iO7FNWtcFWe+ufODGjRfoiJ2akShbueb0wtI50zm02pbvwfWEMWBQ1zKGlLIhskiEPm9R6vRXxV4ZzWT2yHOGpWMyorblKlNp8HmHEb/lCXjcW7bmtXP8Xt229OVWR1fod2eWqNfHuMjXCPkIGNileOiImVmCOEmoSfn3yXlJWmoHGhqp6ilYuWYpmTqKUgAAIfkECQEAAQAsAAAAACgAKAAAApiEH6kb58biQ3FNWtMFWW3eNVcojuFGfqnZqSebuS06w5V80/X02pKe8zFwP6EFWOT1lDFk8rGERh1TTNOocQ61Hm4Xm2VexUHpzjymViHrFbiELsefVrn6XKfnt2Q9G/+Xdie499XHd2g4h7ioOGhXGJboGAnXSBnoBwKYyfioubZJ2Hn0RuRZaflZOil56Zp6iioKSXpUAAAh+QQJAQABACwAAAAAKAAoAAACkoQRqRvnxuI7kU1a1UU5bd5tnSeOZXhmn5lWK3qNTWvRdQxP8qvaC+/yaYQzXO7BMvaUEmJRd3TsiMAgswmNYrSgZdYrTX6tSHGZO73ezuAw2uxuQ+BbeZfMxsexY35+/Qe4J1inV0g4x3WHuMhIl2jXOKT2Q+VU5fgoSUI52VfZyfkJGkha6jmY+aaYdirq+lQAACH5BAkBAAEALAAAAAAoACgAAAKWBIKpYe0L3YNKToqswUlvznigd4wiR4KhZrKt9Upqip61i9E3vMvxRdHlbEFiEXfk9YARYxOZZD6VQ2pUunBmtRXo1Lf8hMVVcNl8JafV38aM2/Fu5V16Bn63r6xt97j09+MXSFi4BniGFae3hzbH9+hYBzkpuUh5aZmHuanZOZgIuvbGiNeomCnaxxap2upaCZsq+1kAACH5BAkBAAEALAAAAAAoACgAAAKXjI8By5zf4kOxTVrXNVlv1X0d8IGZGKLnNpYtm8Lr9cqVeuOSvfOW79D9aDHizNhDJidFZhNydEahOaDH6nomtJjp1tutKoNWkvA6JqfRVLHU/QUfau9l2x7G54d1fl995xcIGAdXqMfBNadoYrhH+Mg2KBlpVpbluCiXmMnZ2Sh4GBqJ+ckIOqqJ6LmKSllZmsoq6wpQAAAh+QQJAQABACwAAAAAKAAoAAAClYx/oLvoxuJDkU1a1YUZbJ59nSd2ZXhWqbRa2/gF8Gu2DY3iqs7yrq+xBYEkYvFSM8aSSObE+ZgRl1BHFZNr7pRCavZ5BW2142hY3AN/zWtsmf12p9XxxFl2lpLn1rseztfXZjdIWIf2s5dItwjYKBgo9yg5pHgzJXTEeGlZuenpyPmpGQoKOWkYmSpaSnqKileI2FAAACH5BAkBAAEALAAAAAAoACgAAAKVjB+gu+jG4kORTVrVhRlsnn2dJ3ZleFaptFrb+CXmO9OozeL5VfP99HvAWhpiUdcwkpBH3825AwYdU8xTqlLGhtCosArKMpvfa1mMRae9VvWZfeB2XfPkeLmm18lUcBj+p5dnN8jXZ3YIGEhYuOUn45aoCDkp16hl5IjYJvjWKcnoGQpqyPlpOhr3aElaqrq56Bq7VAAAOw==");
-	height: 100%;
-	filter: alpha(opacity=25); /* support: IE8 */
-	opacity: 0.25;
-}
-.ui-progressbar-indeterminate .ui-progressbar-value {
-	background-image: none;
-}
-.ui-selectable {
-	-ms-touch-action: none;
-	touch-action: none;
-}
-.ui-selectable-helper {
-	position: absolute;
-	z-index: 100;
-	border: 1px dotted black;
-}
-.ui-selectmenu-menu {
-	padding: 0;
-	margin: 0;
-	position: absolute;
-	top: 0;
-	left: 0;
-	display: none;
-}
-.ui-selectmenu-menu .ui-menu {
-	overflow: auto;
-	overflow-x: hidden;
-	padding-bottom: 1px;
-}
-.ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup {
-	font-size: 1em;
-	font-weight: bold;
-	line-height: 1.5;
-	padding: 2px 0.4em;
-	margin: 0.5em 0 0 0;
-	height: auto;
-	border: 0;
-}
-.ui-selectmenu-open {
-	display: block;
-}
-.ui-selectmenu-text {
-	display: block;
-	margin-right: 20px;
-	overflow: hidden;
-	text-overflow: ellipsis;
-}
-.ui-selectmenu-button.ui-button {
-	text-align: left;
-	white-space: nowrap;
-	width: 14em;
-}
-.ui-selectmenu-icon.ui-icon {
-	float: right;
-	margin-top: 0;
-}
-.ui-slider {
-	position: relative;
-	text-align: left;
-}
-.ui-slider .ui-slider-handle {
-	position: absolute;
-	z-index: 2;
-	width: 1.2em;
-	height: 1.2em;
-	cursor: default;
-	-ms-touch-action: none;
-	touch-action: none;
-}
-.ui-slider .ui-slider-range {
-	position: absolute;
-	z-index: 1;
-	font-size: .7em;
-	display: block;
-	border: 0;
-	background-position: 0 0;
-}
-
-/* support: IE8 - See #6727 */
-.ui-slider.ui-state-disabled .ui-slider-handle,
-.ui-slider.ui-state-disabled .ui-slider-range {
-	filter: inherit;
-}
-
-.ui-slider-horizontal {
-	height: .8em;
-}
-.ui-slider-horizontal .ui-slider-handle {
-	top: -.3em;
-	margin-left: -.6em;
-}
-.ui-slider-horizontal .ui-slider-range {
-	top: 0;
-	height: 100%;
-}
-.ui-slider-horizontal .ui-slider-range-min {
-	left: 0;
-}
-.ui-slider-horizontal .ui-slider-range-max {
-	right: 0;
-}
-
-.ui-slider-vertical {
-	width: .8em;
-	height: 100px;
-}
-.ui-slider-vertical .ui-slider-handle {
-	left: -.3em;
-	margin-left: 0;
-	margin-bottom: -.6em;
-}
-.ui-slider-vertical .ui-slider-range {
-	left: 0;
-	width: 100%;
-}
-.ui-slider-vertical .ui-slider-range-min {
-	bottom: 0;
-}
-.ui-slider-vertical .ui-slider-range-max {
-	top: 0;
-}
-.ui-sortable-handle {
-	-ms-touch-action: none;
-	touch-action: none;
-}
-.ui-spinner {
-	position: relative;
-	display: inline-block;
-	overflow: hidden;
-	padding: 0;
-	vertical-align: middle;
-}
-.ui-spinner-input {
-	border: none;
-	background: none;
-	color: inherit;
-	padding: .222em 0;
-	margin: .2em 0;
-	vertical-align: middle;
-	margin-left: .4em;
-	margin-right: 2em;
-}
-.ui-spinner-button {
-	width: 1.6em;
-	height: 50%;
-	font-size: .5em;
-	padding: 0;
-	margin: 0;
-	text-align: center;
-	position: absolute;
-	cursor: default;
-	display: block;
-	overflow: hidden;
-	right: 0;
-}
-/* more specificity required here to override default borders */
-.ui-spinner a.ui-spinner-button {
-	border-top-style: none;
-	border-bottom-style: none;
-	border-right-style: none;
-}
-.ui-spinner-up {
-	top: 0;
-}
-.ui-spinner-down {
-	bottom: 0;
-}
-.ui-tabs {
-	position: relative;/* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
-	padding: .2em;
-}
-.ui-tabs .ui-tabs-nav {
-	margin: 0;
-	padding: .2em .2em 0;
-}
-.ui-tabs .ui-tabs-nav li {
-	list-style: none;
-	float: left;
-	position: relative;
-	top: 0;
-	margin: 1px .2em 0 0;
-	border-bottom-width: 0;
-	padding: 0;
-	white-space: nowrap;
-}
-.ui-tabs .ui-tabs-nav .ui-tabs-anchor {
-	float: left;
-	padding: .5em 1em;
-	text-decoration: none;
-}
-.ui-tabs .ui-tabs-nav li.ui-tabs-active {
-	margin-bottom: -1px;
-	padding-bottom: 1px;
-}
-.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor,
-.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor,
-.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor {
-	cursor: text;
-}
-.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor {
-	cursor: pointer;
-}
-.ui-tabs .ui-tabs-panel {
-	display: block;
-	border-width: 0;
-	padding: 1em 1.4em;
-	background: none;
-}
-.ui-tooltip {
-	padding: 8px;
-	position: absolute;
-	z-index: 9999;
-	max-width: 300px;
-}
-body .ui-tooltip {
-	border-width: 2px;
-}
-/* Component containers
-----------------------------------*/
-.ui-widget {
-	
-	font-size: 1.1em;
-}
-.ui-widget .ui-widget {
-	font-size: 1em;
-}
-.ui-widget input,
-.ui-widget select,
-.ui-widget textarea,
-.ui-widget button {
-	
-	font-size: 1em;
-}
-.ui-widget.ui-widget-content {
-	border: 1px solid #d3d3d3;
-}
-.ui-widget-content {
-	border: 1px solid #aaaaaa;
-	background: #ffffff;
-	color: #222222;
-}
-.ui-widget-content a {
-	color: #222222;
-}
-.ui-widget-header {
-	border: 1px solid #aaaaaa;
-	background: #cccccc url("images/ui-bg_highlight-soft_75_cccccc_1x100.png") 50% 50% repeat-x;
-	color: #222222;
-	font-weight: bold;
-}
-.ui-widget-header a {
-	color: #222222;
-}
-
-/* Interaction states
-----------------------------------*/
-.ui-state-default,
-.ui-widget-content .ui-state-default,
-.ui-widget-header .ui-state-default,
-.ui-button,
-
-/* We use html here because we need a greater specificity to make sure disabled
-works properly when clicked or hovered */
-html .ui-button.ui-state-disabled:hover,
-html .ui-button.ui-state-disabled:active {
-	border: 1px solid #d3d3d3;
-	background: #e6e6e6 url("images/ui-bg_glass_75_e6e6e6_1x400.png") 50% 50% repeat-x;
-	font-weight: normal;
-	color: #555555;
-}
-.ui-state-default a,
-.ui-state-default a:link,
-.ui-state-default a:visited,
-a.ui-button,
-a:link.ui-button,
-a:visited.ui-button,
-.ui-button {
-	color: #555555;
-	text-decoration: none;
-}
-.ui-state-hover,
-.ui-widget-content .ui-state-hover,
-.ui-widget-header .ui-state-hover,
-.ui-state-focus,
-.ui-widget-content .ui-state-focus,
-.ui-widget-header .ui-state-focus,
-.ui-button:hover,
-.ui-button:focus {
-	border: 1px solid #999999;
-	background: #dadada url("images/ui-bg_glass_75_dadada_1x400.png") 50% 50% repeat-x;
-	font-weight: normal;
-	color: #212121;
-}
-.ui-state-hover a,
-.ui-state-hover a:hover,
-.ui-state-hover a:link,
-.ui-state-hover a:visited,
-.ui-state-focus a,
-.ui-state-focus a:hover,
-.ui-state-focus a:link,
-.ui-state-focus a:visited,
-a.ui-button:hover,
-a.ui-button:focus {
-	color: #212121;
-	text-decoration: none;
-}
-
-.ui-visual-focus {
-	box-shadow: 0 0 3px 1px rgb(94, 158, 214);
-}
-.ui-state-active,
-.ui-widget-content .ui-state-active,
-.ui-widget-header .ui-state-active,
-a.ui-button:active,
-.ui-button:active,
-.ui-button.ui-state-active:hover {
-	border: 1px solid #aaaaaa;
-	background: #ffffff url("images/ui-bg_glass_65_ffffff_1x400.png") 50% 50% repeat-x;
-	font-weight: normal;
-	color: #212121;
-}
-.ui-icon-background,
-.ui-state-active .ui-icon-background {
-	border: #aaaaaa;
-	background-color: #212121;
-}
-.ui-state-active a,
-.ui-state-active a:link,
-.ui-state-active a:visited {
-	color: #212121;
-	text-decoration: none;
-}
-
-/* Interaction Cues
-----------------------------------*/
-.ui-state-highlight,
-.ui-widget-content .ui-state-highlight,
-.ui-widget-header .ui-state-highlight {
-	border: 1px solid #fcefa1;
-	background: #fbf9ee url("images/ui-bg_glass_55_fbf9ee_1x400.png") 50% 50% repeat-x;
-	color: #363636;
-}
-.ui-state-checked {
-	border: 1px solid #fcefa1;
-	background: #fbf9ee;
-}
-.ui-state-highlight a,
-.ui-widget-content .ui-state-highlight a,
-.ui-widget-header .ui-state-highlight a {
-	color: #363636;
-}
-.ui-state-error,
-.ui-widget-content .ui-state-error,
-.ui-widget-header .ui-state-error {
-	border: 1px solid #cd0a0a;
-	background: #fef1ec url("images/ui-bg_glass_95_fef1ec_1x400.png") 50% 50% repeat-x;
-	color: #cd0a0a;
-}
-.ui-state-error a,
-.ui-widget-content .ui-state-error a,
-.ui-widget-header .ui-state-error a {
-	color: #cd0a0a;
-}
-.ui-state-error-text,
-.ui-widget-content .ui-state-error-text,
-.ui-widget-header .ui-state-error-text {
-	color: #cd0a0a;
-}
-.ui-priority-primary,
-.ui-widget-content .ui-priority-primary,
-.ui-widget-header .ui-priority-primary {
-	font-weight: bold;
-}
-.ui-priority-secondary,
-.ui-widget-content .ui-priority-secondary,
-.ui-widget-header .ui-priority-secondary {
-	opacity: .7;
-	filter:Alpha(Opacity=70); /* support: IE8 */
-	font-weight: normal;
-}
-.ui-state-disabled,
-.ui-widget-content .ui-state-disabled,
-.ui-widget-header .ui-state-disabled {
-	opacity: .35;
-	filter:Alpha(Opacity=35); /* support: IE8 */
-	background-image: none;
-}
-.ui-state-disabled .ui-icon {
-	filter:Alpha(Opacity=35); /* support: IE8 - See #6059 */
-}
-
-/* Icons
-----------------------------------*/
-
-/* states and images */
-.ui-icon {
-	width: 16px;
-	height: 16px;
-}
-.ui-icon,
-.ui-widget-content .ui-icon {
-	background-image: url("images/ui-icons_222222_256x240.png");
-}
-.ui-widget-header .ui-icon {
-	background-image: url("images/ui-icons_222222_256x240.png");
-}
-.ui-state-hover .ui-icon,
-.ui-state-focus .ui-icon,
-.ui-button:hover .ui-icon,
-.ui-button:focus .ui-icon {
-	background-image: url("images/ui-icons_454545_256x240.png");
-}
-.ui-state-active .ui-icon,
-.ui-button:active .ui-icon {
-	background-image: url("images/ui-icons_454545_256x240.png");
-}
-.ui-state-highlight .ui-icon,
-.ui-button .ui-state-highlight.ui-icon {
-	background-image: url("images/ui-icons_2e83ff_256x240.png");
-}
-.ui-state-error .ui-icon,
-.ui-state-error-text .ui-icon {
-	background-image: url("images/ui-icons_cd0a0a_256x240.png");
-}
-.ui-button .ui-icon {
-	background-image: url("images/ui-icons_888888_256x240.png");
-}
-
-/* positioning */
-.ui-icon-blank { background-position: 16px 16px; }
-.ui-icon-caret-1-n { background-position: 0 0; }
-.ui-icon-caret-1-ne { background-position: -16px 0; }
-.ui-icon-caret-1-e { background-position: -32px 0; }
-.ui-icon-caret-1-se { background-position: -48px 0; }
-.ui-icon-caret-1-s { background-position: -65px 0; }
-.ui-icon-caret-1-sw { background-position: -80px 0; }
-.ui-icon-caret-1-w { background-position: -96px 0; }
-.ui-icon-caret-1-nw { background-position: -112px 0; }
-.ui-icon-caret-2-n-s { background-position: -128px 0; }
-.ui-icon-caret-2-e-w { background-position: -144px 0; }
-.ui-icon-triangle-1-n { background-position: 0 -16px; }
-.ui-icon-triangle-1-ne { background-position: -16px -16px; }
-.ui-icon-triangle-1-e { background-position: -32px -16px; }
-.ui-icon-triangle-1-se { background-position: -48px -16px; }
-.ui-icon-triangle-1-s { background-position: -65px -16px; }
-.ui-icon-triangle-1-sw { background-position: -80px -16px; }
-.ui-icon-triangle-1-w { background-position: -96px -16px; }
-.ui-icon-triangle-1-nw { background-position: -112px -16px; }
-.ui-icon-triangle-2-n-s { background-position: -128px -16px; }
-.ui-icon-triangle-2-e-w { background-position: -144px -16px; }
-.ui-icon-arrow-1-n { background-position: 0 -32px; }
-.ui-icon-arrow-1-ne { background-position: -16px -32px; }
-.ui-icon-arrow-1-e { background-position: -32px -32px; }
-.ui-icon-arrow-1-se { background-position: -48px -32px; }
-.ui-icon-arrow-1-s { background-position: -65px -32px; }
-.ui-icon-arrow-1-sw { background-position: -80px -32px; }
-.ui-icon-arrow-1-w { background-position: -96px -32px; }
-.ui-icon-arrow-1-nw { background-position: -112px -32px; }
-.ui-icon-arrow-2-n-s { background-position: -128px -32px; }
-.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
-.ui-icon-arrow-2-e-w { background-position: -160px -32px; }
-.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
-.ui-icon-arrowstop-1-n { background-position: -192px -32px; }
-.ui-icon-arrowstop-1-e { background-position: -208px -32px; }
-.ui-icon-arrowstop-1-s { background-position: -224px -32px; }
-.ui-icon-arrowstop-1-w { background-position: -240px -32px; }
-.ui-icon-arrowthick-1-n { background-position: 1px -48px; }
-.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
-.ui-icon-arrowthick-1-e { background-position: -32px -48px; }
-.ui-icon-arrowthick-1-se { background-position: -48px -48px; }
-.ui-icon-arrowthick-1-s { background-position: -64px -48px; }
-.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
-.ui-icon-arrowthick-1-w { background-position: -96px -48px; }
-.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
-.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
-.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
-.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
-.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
-.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
-.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
-.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
-.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
-.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
-.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
-.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
-.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
-.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
-.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
-.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
-.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
-.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
-.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
-.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
-.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
-.ui-icon-arrow-4 { background-position: 0 -80px; }
-.ui-icon-arrow-4-diag { background-position: -16px -80px; }
-.ui-icon-extlink { background-position: -32px -80px; }
-.ui-icon-newwin { background-position: -48px -80px; }
-.ui-icon-refresh { background-position: -64px -80px; }
-.ui-icon-shuffle { background-position: -80px -80px; }
-.ui-icon-transfer-e-w { background-position: -96px -80px; }
-.ui-icon-transferthick-e-w { background-position: -112px -80px; }
-.ui-icon-folder-collapsed { background-position: 0 -96px; }
-.ui-icon-folder-open { background-position: -16px -96px; }
-.ui-icon-document { background-position: -32px -96px; }
-.ui-icon-document-b { background-position: -48px -96px; }
-.ui-icon-note { background-position: -64px -96px; }
-.ui-icon-mail-closed { background-position: -80px -96px; }
-.ui-icon-mail-open { background-position: -96px -96px; }
-.ui-icon-suitcase { background-position: -112px -96px; }
-.ui-icon-comment { background-position: -128px -96px; }
-.ui-icon-person { background-position: -144px -96px; }
-.ui-icon-print { background-position: -160px -96px; }
-.ui-icon-trash { background-position: -176px -96px; }
-.ui-icon-locked { background-position: -192px -96px; }
-.ui-icon-unlocked { background-position: -208px -96px; }
-.ui-icon-bookmark { background-position: -224px -96px; }
-.ui-icon-tag { background-position: -240px -96px; }
-.ui-icon-home { background-position: 0 -112px; }
-.ui-icon-flag { background-position: -16px -112px; }
-.ui-icon-calendar { background-position: -32px -112px; }
-.ui-icon-cart { background-position: -48px -112px; }
-.ui-icon-pencil { background-position: -64px -112px; }
-.ui-icon-clock { background-position: -80px -112px; }
-.ui-icon-disk { background-position: -96px -112px; }
-.ui-icon-calculator { background-position: -112px -112px; }
-.ui-icon-zoomin { background-position: -128px -112px; }
-.ui-icon-zoomout { background-position: -144px -112px; }
-.ui-icon-search { background-position: -160px -112px; }
-.ui-icon-wrench { background-position: -176px -112px; }
-.ui-icon-gear { background-position: -192px -112px; }
-.ui-icon-heart { background-position: -208px -112px; }
-.ui-icon-star { background-position: -224px -112px; }
-.ui-icon-link { background-position: -240px -112px; }
-.ui-icon-cancel { background-position: 0 -128px; }
-.ui-icon-plus { background-position: -16px -128px; }
-.ui-icon-plusthick { background-position: -32px -128px; }
-.ui-icon-minus { background-position: -48px -128px; }
-.ui-icon-minusthick { background-position: -64px -128px; }
-.ui-icon-close { background-position: -80px -128px; }
-.ui-icon-closethick { background-position: -96px -128px; }
-.ui-icon-key { background-position: -112px -128px; }
-.ui-icon-lightbulb { background-position: -128px -128px; }
-.ui-icon-scissors { background-position: -144px -128px; }
-.ui-icon-clipboard { background-position: -160px -128px; }
-.ui-icon-copy { background-position: -176px -128px; }
-.ui-icon-contact { background-position: -192px -128px; }
-.ui-icon-image { background-position: -208px -128px; }
-.ui-icon-video { background-position: -224px -128px; }
-.ui-icon-script { background-position: -240px -128px; }
-.ui-icon-alert { background-position: 0 -144px; }
-.ui-icon-info { background-position: -16px -144px; }
-.ui-icon-notice { background-position: -32px -144px; }
-.ui-icon-help { background-position: -48px -144px; }
-.ui-icon-check { background-position: -64px -144px; }
-.ui-icon-bullet { background-position: -80px -144px; }
-.ui-icon-radio-on { background-position: -96px -144px; }
-.ui-icon-radio-off { background-position: -112px -144px; }
-.ui-icon-pin-w { background-position: -128px -144px; }
-.ui-icon-pin-s { background-position: -144px -144px; }
-.ui-icon-play { background-position: 0 -160px; }
-.ui-icon-pause { background-position: -16px -160px; }
-.ui-icon-seek-next { background-position: -32px -160px; }
-.ui-icon-seek-prev { background-position: -48px -160px; }
-.ui-icon-seek-end { background-position: -64px -160px; }
-.ui-icon-seek-start { background-position: -80px -160px; }
-/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
-.ui-icon-seek-first { background-position: -80px -160px; }
-.ui-icon-stop { background-position: -96px -160px; }
-.ui-icon-eject { background-position: -112px -160px; }
-.ui-icon-volume-off { background-position: -128px -160px; }
-.ui-icon-volume-on { background-position: -144px -160px; }
-.ui-icon-power { background-position: 0 -176px; }
-.ui-icon-signal-diag { background-position: -16px -176px; }
-.ui-icon-signal { background-position: -32px -176px; }
-.ui-icon-battery-0 { background-position: -48px -176px; }
-.ui-icon-battery-1 { background-position: -64px -176px; }
-.ui-icon-battery-2 { background-position: -80px -176px; }
-.ui-icon-battery-3 { background-position: -96px -176px; }
-.ui-icon-circle-plus { background-position: 0 -192px; }
-.ui-icon-circle-minus { background-position: -16px -192px; }
-.ui-icon-circle-close { background-position: -32px -192px; }
-.ui-icon-circle-triangle-e { background-position: -48px -192px; }
-.ui-icon-circle-triangle-s { background-position: -64px -192px; }
-.ui-icon-circle-triangle-w { background-position: -80px -192px; }
-.ui-icon-circle-triangle-n { background-position: -96px -192px; }
-.ui-icon-circle-arrow-e { background-position: -112px -192px; }
-.ui-icon-circle-arrow-s { background-position: -128px -192px; }
-.ui-icon-circle-arrow-w { background-position: -144px -192px; }
-.ui-icon-circle-arrow-n { background-position: -160px -192px; }
-.ui-icon-circle-zoomin { background-position: -176px -192px; }
-.ui-icon-circle-zoomout { background-position: -192px -192px; }
-.ui-icon-circle-check { background-position: -208px -192px; }
-.ui-icon-circlesmall-plus { background-position: 0 -208px; }
-.ui-icon-circlesmall-minus { background-position: -16px -208px; }
-.ui-icon-circlesmall-close { background-position: -32px -208px; }
-.ui-icon-squaresmall-plus { background-position: -48px -208px; }
-.ui-icon-squaresmall-minus { background-position: -64px -208px; }
-.ui-icon-squaresmall-close { background-position: -80px -208px; }
-.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
-.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
-.ui-icon-grip-solid-vertical { background-position: -32px -224px; }
-.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
-.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
-.ui-icon-grip-diagonal-se { background-position: -80px -224px; }
-
-
-/* Misc visuals
-----------------------------------*/
-
-/* Corner radius */
-.ui-corner-all,
-.ui-corner-top,
-.ui-corner-left,
-.ui-corner-tl {
-	border-top-left-radius: 4px;
-}
-.ui-corner-all,
-.ui-corner-top,
-.ui-corner-right,
-.ui-corner-tr {
-	border-top-right-radius: 4px;
-}
-.ui-corner-all,
-.ui-corner-bottom,
-.ui-corner-left,
-.ui-corner-bl {
-	border-bottom-left-radius: 4px;
-}
-.ui-corner-all,
-.ui-corner-bottom,
-.ui-corner-right,
-.ui-corner-br {
-	border-bottom-right-radius: 4px;
-}
-
-/* Overlays */
-.ui-widget-overlay {
-	background: #aaaaaa;
-	opacity: .3;
-	filter: Alpha(Opacity=30); /* support: IE8 */
-}
-.ui-widget-shadow {
-	-webkit-box-shadow: -8px -8px 8px #aaaaaa;
-	box-shadow: -8px -8px 8px #aaaaaa;
-}
diff --git a/wiki/lib/scripts/jquery/jquery-ui.min.js b/wiki/lib/scripts/jquery/jquery-ui.min.js
deleted file mode 100644
index 117cb35..0000000
--- a/wiki/lib/scripts/jquery/jquery-ui.min.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/*! jQuery UI - v1.12.1 - 2016-09-14
-* http://jqueryui.com
-* Includes: widget.js, position.js, data.js, disable-selection.js, effect.js, effects/effect-blind.js, effects/effect-bounce.js, effects/effect-clip.js, effects/effect-drop.js, effects/effect-explode.js, effects/effect-fade.js, effects/effect-fold.js, effects/effect-highlight.js, effects/effect-puff.js, effects/effect-pulsate.js, effects/effect-scale.js, effects/effect-shake.js, effects/effect-size.js, effects/effect-slide.js, effects/effect-transfer.js, focusable.js, form-reset-mixin.js, jquery-1-7.js, keycode.js, labels.js, scroll-parent.js, tabbable.js, unique-id.js, widgets/accordion.js, widgets/autocomplete.js, widgets/button.js, widgets/checkboxradio.js, widgets/controlgroup.js, widgets/datepicker.js, widgets/dialog.js, widgets/draggable.js, widgets/droppable.js, widgets/menu.js, widgets/mouse.js, widgets/progressbar.js, widgets/resizable.js, widgets/selectable.js, widgets/selectmenu.js, widgets/slider.js, widgets/sortable.js, widgets/spinner.js, widgets/tabs.js, widgets/tooltip.js
-* Copyright jQuery Foundation and other contributors; Licensed MIT */
-
-(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):t(jQuery)})(function(t){function e(t){for(var e=t.css("visibility");"inherit"===e;)t=t.parent(),e=t.css("visibility");return"hidden"!==e}function i(t){for(var e,i;t.length&&t[0]!==document;){if(e=t.css("position"),("absolute"===e||"relative"===e||"fixed"===e)&&(i=parseInt(t.css("zIndex"),10),!isNaN(i)&&0!==i))return i;t=t.parent()}return 0}function s(){this._curInst=null,this._keyEvent=!1,this._disabledInputs=[],this._datepickerShowing=!1,this._inDialog=!1,this._mainDivId="ui-datepicker-div",this._inlineClass="ui-datepicker-inline",this._appendClass="ui-datepicker-append",this._triggerClass="ui-datepicker-trigger",this._dialogClass="ui-datepicker-dialog",this._disableClass="ui-datepicker-disabled",this._unselectableClass="ui-datepicker-unselectable",this._currentClass="ui-datepicker-current-day",this._dayOverClass="ui-datepicker-days-cell-over",this.regional=[],this.regional[""]={closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],weekHeader:"Wk",dateFormat:"mm/dd/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},this._defaults={showOn:"focus",showAnim:"fadeIn",showOptions:{},defaultDate:null,appendText:"",buttonText:"...",buttonImage:"",buttonImageOnly:!1,hideIfNoPrevNext:!1,navigationAsDateFormat:!1,gotoCurrent:!1,changeMonth:!1,changeYear:!1,yearRange:"c-10:c+10",showOtherMonths:!1,selectOtherMonths:!1,showWeek:!1,calculateWeek:this.iso8601Week,shortYearCutoff:"+10",minDate:null,maxDate:null,duration:"fast",beforeShowDay:null,beforeShow:null,onSelect:null,onChangeMonthYear:null,onClose:null,numberOfMonths:1,showCurrentAtPos:0,stepMonths:1,stepBigMonths:12,altField:"",altFormat:"",constrainInput:!0,showButtonPanel:!1,autoSize:!1,disabled:!1},t.extend(this._defaults,this.regional[""]),this.regional.en=t.extend(!0,{},this.regional[""]),this.regional["en-US"]=t.extend(!0,{},this.regional.en),this.dpDiv=n(t("<div id='"+this._mainDivId+"' class='ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>"))}function n(e){var i="button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a";return e.on("mouseout",i,function(){t(this).removeClass("ui-state-hover"),-1!==this.className.indexOf("ui-datepicker-prev")&&t(this).removeClass("ui-datepicker-prev-hover"),-1!==this.className.indexOf("ui-datepicker-next")&&t(this).removeClass("ui-datepicker-next-hover")}).on("mouseover",i,o)}function o(){t.datepicker._isDisabledDatepicker(m.inline?m.dpDiv.parent()[0]:m.input[0])||(t(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover"),t(this).addClass("ui-state-hover"),-1!==this.className.indexOf("ui-datepicker-prev")&&t(this).addClass("ui-datepicker-prev-hover"),-1!==this.className.indexOf("ui-datepicker-next")&&t(this).addClass("ui-datepicker-next-hover"))}function a(e,i){t.extend(e,i);for(var s in i)null==i[s]&&(e[s]=i[s]);return e}function r(t){return function(){var e=this.element.val();t.apply(this,arguments),this._refresh(),e!==this.element.val()&&this._trigger("change")}}t.ui=t.ui||{},t.ui.version="1.12.1";var h=0,l=Array.prototype.slice;t.cleanData=function(e){return function(i){var s,n,o;for(o=0;null!=(n=i[o]);o++)try{s=t._data(n,"events"),s&&s.remove&&t(n).triggerHandler("remove")}catch(a){}e(i)}}(t.cleanData),t.widget=function(e,i,s){var n,o,a,r={},h=e.split(".")[0];e=e.split(".")[1];var l=h+"-"+e;return s||(s=i,i=t.Widget),t.isArray(s)&&(s=t.extend.apply(null,[{}].concat(s))),t.expr[":"][l.toLowerCase()]=function(e){return!!t.data(e,l)},t[h]=t[h]||{},n=t[h][e],o=t[h][e]=function(t,e){return this._createWidget?(arguments.length&&this._createWidget(t,e),void 0):new o(t,e)},t.extend(o,n,{version:s.version,_proto:t.extend({},s),_childConstructors:[]}),a=new i,a.options=t.widget.extend({},a.options),t.each(s,function(e,s){return t.isFunction(s)?(r[e]=function(){function t(){return i.prototype[e].apply(this,arguments)}function n(t){return i.prototype[e].apply(this,t)}return function(){var e,i=this._super,o=this._superApply;return this._super=t,this._superApply=n,e=s.apply(this,arguments),this._super=i,this._superApply=o,e}}(),void 0):(r[e]=s,void 0)}),o.prototype=t.widget.extend(a,{widgetEventPrefix:n?a.widgetEventPrefix||e:e},r,{constructor:o,namespace:h,widgetName:e,widgetFullName:l}),n?(t.each(n._childConstructors,function(e,i){var s=i.prototype;t.widget(s.namespace+"."+s.widgetName,o,i._proto)}),delete n._childConstructors):i._childConstructors.push(o),t.widget.bridge(e,o),o},t.widget.extend=function(e){for(var i,s,n=l.call(arguments,1),o=0,a=n.length;a>o;o++)for(i in n[o])s=n[o][i],n[o].hasOwnProperty(i)&&void 0!==s&&(e[i]=t.isPlainObject(s)?t.isPlainObject(e[i])?t.widget.extend({},e[i],s):t.widget.extend({},s):s);return e},t.widget.bridge=function(e,i){var s=i.prototype.widgetFullName||e;t.fn[e]=function(n){var o="string"==typeof n,a=l.call(arguments,1),r=this;return o?this.length||"instance"!==n?this.each(function(){var i,o=t.data(this,s);return"instance"===n?(r=o,!1):o?t.isFunction(o[n])&&"_"!==n.charAt(0)?(i=o[n].apply(o,a),i!==o&&void 0!==i?(r=i&&i.jquery?r.pushStack(i.get()):i,!1):void 0):t.error("no such method '"+n+"' for "+e+" widget instance"):t.error("cannot call methods on "+e+" prior to initialization; "+"attempted to call method '"+n+"'")}):r=void 0:(a.length&&(n=t.widget.extend.apply(null,[n].concat(a))),this.each(function(){var e=t.data(this,s);e?(e.option(n||{}),e._init&&e._init()):t.data(this,s,new i(n,this))})),r}},t.Widget=function(){},t.Widget._childConstructors=[],t.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"<div>",options:{classes:{},disabled:!1,create:null},_createWidget:function(e,i){i=t(i||this.defaultElement||this)[0],this.element=t(i),this.uuid=h++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=t(),this.hoverable=t(),this.focusable=t(),this.classesElementLookup={},i!==this&&(t.data(i,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===i&&this.destroy()}}),this.document=t(i.style?i.ownerDocument:i.document||i),this.window=t(this.document[0].defaultView||this.document[0].parentWindow)),this.options=t.widget.extend({},this.options,this._getCreateOptions(),e),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:t.noop,_create:t.noop,_init:t.noop,destroy:function(){var e=this;this._destroy(),t.each(this.classesElementLookup,function(t,i){e._removeClass(i,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:t.noop,widget:function(){return this.element},option:function(e,i){var s,n,o,a=e;if(0===arguments.length)return t.widget.extend({},this.options);if("string"==typeof e)if(a={},s=e.split("."),e=s.shift(),s.length){for(n=a[e]=t.widget.extend({},this.options[e]),o=0;s.length-1>o;o++)n[s[o]]=n[s[o]]||{},n=n[s[o]];if(e=s.pop(),1===arguments.length)return void 0===n[e]?null:n[e];n[e]=i}else{if(1===arguments.length)return void 0===this.options[e]?null:this.options[e];a[e]=i}return this._setOptions(a),this},_setOptions:function(t){var e;for(e in t)this._setOption(e,t[e]);return this},_setOption:function(t,e){return"classes"===t&&this._setOptionClasses(e),this.options[t]=e,"disabled"===t&&this._setOptionDisabled(e),this},_setOptionClasses:function(e){var i,s,n;for(i in e)n=this.classesElementLookup[i],e[i]!==this.options.classes[i]&&n&&n.length&&(s=t(n.get()),this._removeClass(n,i),s.addClass(this._classes({element:s,keys:i,classes:e,add:!0})))},_setOptionDisabled:function(t){this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,!!t),t&&(this._removeClass(this.hoverable,null,"ui-state-hover"),this._removeClass(this.focusable,null,"ui-state-focus"))},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_classes:function(e){function i(i,o){var a,r;for(r=0;i.length>r;r++)a=n.classesElementLookup[i[r]]||t(),a=e.add?t(t.unique(a.get().concat(e.element.get()))):t(a.not(e.element).get()),n.classesElementLookup[i[r]]=a,s.push(i[r]),o&&e.classes[i[r]]&&s.push(e.classes[i[r]])}var s=[],n=this;return e=t.extend({element:this.element,classes:this.options.classes||{}},e),this._on(e.element,{remove:"_untrackClassesElement"}),e.keys&&i(e.keys.match(/\S+/g)||[],!0),e.extra&&i(e.extra.match(/\S+/g)||[]),s.join(" ")},_untrackClassesElement:function(e){var i=this;t.each(i.classesElementLookup,function(s,n){-1!==t.inArray(e.target,n)&&(i.classesElementLookup[s]=t(n.not(e.target).get()))})},_removeClass:function(t,e,i){return this._toggleClass(t,e,i,!1)},_addClass:function(t,e,i){return this._toggleClass(t,e,i,!0)},_toggleClass:function(t,e,i,s){s="boolean"==typeof s?s:i;var n="string"==typeof t||null===t,o={extra:n?e:i,keys:n?t:e,element:n?this.element:t,add:s};return o.element.toggleClass(this._classes(o),s),this},_on:function(e,i,s){var n,o=this;"boolean"!=typeof e&&(s=i,i=e,e=!1),s?(i=n=t(i),this.bindings=this.bindings.add(i)):(s=i,i=this.element,n=this.widget()),t.each(s,function(s,a){function r(){return e||o.options.disabled!==!0&&!t(this).hasClass("ui-state-disabled")?("string"==typeof a?o[a]:a).apply(o,arguments):void 0}"string"!=typeof a&&(r.guid=a.guid=a.guid||r.guid||t.guid++);var h=s.match(/^([\w:-]*)\s*(.*)$/),l=h[1]+o.eventNamespace,c=h[2];c?n.on(l,c,r):i.on(l,r)})},_off:function(e,i){i=(i||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,e.off(i).off(i),this.bindings=t(this.bindings.not(e).get()),this.focusable=t(this.focusable.not(e).get()),this.hoverable=t(this.hoverable.not(e).get())},_delay:function(t,e){function i(){return("string"==typeof t?s[t]:t).apply(s,arguments)}var s=this;return setTimeout(i,e||0)},_hoverable:function(e){this.hoverable=this.hoverable.add(e),this._on(e,{mouseenter:function(e){this._addClass(t(e.currentTarget),null,"ui-state-hover")},mouseleave:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-hover")}})},_focusable:function(e){this.focusable=this.focusable.add(e),this._on(e,{focusin:function(e){this._addClass(t(e.currentTarget),null,"ui-state-focus")},focusout:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-focus")}})},_trigger:function(e,i,s){var n,o,a=this.options[e];if(s=s||{},i=t.Event(i),i.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase(),i.target=this.element[0],o=i.originalEvent)for(n in o)n in i||(i[n]=o[n]);return this.element.trigger(i,s),!(t.isFunction(a)&&a.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},t.each({show:"fadeIn",hide:"fadeOut"},function(e,i){t.Widget.prototype["_"+e]=function(s,n,o){"string"==typeof n&&(n={effect:n});var a,r=n?n===!0||"number"==typeof n?i:n.effect||i:e;n=n||{},"number"==typeof n&&(n={duration:n}),a=!t.isEmptyObject(n),n.complete=o,n.delay&&s.delay(n.delay),a&&t.effects&&t.effects.effect[r]?s[e](n):r!==e&&s[r]?s[r](n.duration,n.easing,o):s.queue(function(i){t(this)[e](),o&&o.call(s[0]),i()})}}),t.widget,function(){function e(t,e,i){return[parseFloat(t[0])*(u.test(t[0])?e/100:1),parseFloat(t[1])*(u.test(t[1])?i/100:1)]}function i(e,i){return parseInt(t.css(e,i),10)||0}function s(e){var i=e[0];return 9===i.nodeType?{width:e.width(),height:e.height(),offset:{top:0,left:0}}:t.isWindow(i)?{width:e.width(),height:e.height(),offset:{top:e.scrollTop(),left:e.scrollLeft()}}:i.preventDefault?{width:0,height:0,offset:{top:i.pageY,left:i.pageX}}:{width:e.outerWidth(),height:e.outerHeight(),offset:e.offset()}}var n,o=Math.max,a=Math.abs,r=/left|center|right/,h=/top|center|bottom/,l=/[\+\-]\d+(\.[\d]+)?%?/,c=/^\w+/,u=/%$/,d=t.fn.position;t.position={scrollbarWidth:function(){if(void 0!==n)return n;var e,i,s=t("<div style='display:block;position:absolute;width:50px;height:50px;overflow:hidden;'><div style='height:100px;width:auto;'></div></div>"),o=s.children()[0];return t("body").append(s),e=o.offsetWidth,s.css("overflow","scroll"),i=o.offsetWidth,e===i&&(i=s[0].clientWidth),s.remove(),n=e-i},getScrollInfo:function(e){var i=e.isWindow||e.isDocument?"":e.element.css("overflow-x"),s=e.isWindow||e.isDocument?"":e.element.css("overflow-y"),n="scroll"===i||"auto"===i&&e.width<e.element[0].scrollWidth,o="scroll"===s||"auto"===s&&e.height<e.element[0].scrollHeight;return{width:o?t.position.scrollbarWidth():0,height:n?t.position.scrollbarWidth():0}},getWithinInfo:function(e){var i=t(e||window),s=t.isWindow(i[0]),n=!!i[0]&&9===i[0].nodeType,o=!s&&!n;return{element:i,isWindow:s,isDocument:n,offset:o?t(e).offset():{left:0,top:0},scrollLeft:i.scrollLeft(),scrollTop:i.scrollTop(),width:i.outerWidth(),height:i.outerHeight()}}},t.fn.position=function(n){if(!n||!n.of)return d.apply(this,arguments);n=t.extend({},n);var u,p,f,g,m,_,v=t(n.of),b=t.position.getWithinInfo(n.within),y=t.position.getScrollInfo(b),w=(n.collision||"flip").split(" "),k={};return _=s(v),v[0].preventDefault&&(n.at="left top"),p=_.width,f=_.height,g=_.offset,m=t.extend({},g),t.each(["my","at"],function(){var t,e,i=(n[this]||"").split(" ");1===i.length&&(i=r.test(i[0])?i.concat(["center"]):h.test(i[0])?["center"].concat(i):["center","center"]),i[0]=r.test(i[0])?i[0]:"center",i[1]=h.test(i[1])?i[1]:"center",t=l.exec(i[0]),e=l.exec(i[1]),k[this]=[t?t[0]:0,e?e[0]:0],n[this]=[c.exec(i[0])[0],c.exec(i[1])[0]]}),1===w.length&&(w[1]=w[0]),"right"===n.at[0]?m.left+=p:"center"===n.at[0]&&(m.left+=p/2),"bottom"===n.at[1]?m.top+=f:"center"===n.at[1]&&(m.top+=f/2),u=e(k.at,p,f),m.left+=u[0],m.top+=u[1],this.each(function(){var s,r,h=t(this),l=h.outerWidth(),c=h.outerHeight(),d=i(this,"marginLeft"),_=i(this,"marginTop"),x=l+d+i(this,"marginRight")+y.width,C=c+_+i(this,"marginBottom")+y.height,D=t.extend({},m),I=e(k.my,h.outerWidth(),h.outerHeight());"right"===n.my[0]?D.left-=l:"center"===n.my[0]&&(D.left-=l/2),"bottom"===n.my[1]?D.top-=c:"center"===n.my[1]&&(D.top-=c/2),D.left+=I[0],D.top+=I[1],s={marginLeft:d,marginTop:_},t.each(["left","top"],function(e,i){t.ui.position[w[e]]&&t.ui.position[w[e]][i](D,{targetWidth:p,targetHeight:f,elemWidth:l,elemHeight:c,collisionPosition:s,collisionWidth:x,collisionHeight:C,offset:[u[0]+I[0],u[1]+I[1]],my:n.my,at:n.at,within:b,elem:h})}),n.using&&(r=function(t){var e=g.left-D.left,i=e+p-l,s=g.top-D.top,r=s+f-c,u={target:{element:v,left:g.left,top:g.top,width:p,height:f},element:{element:h,left:D.left,top:D.top,width:l,height:c},horizontal:0>i?"left":e>0?"right":"center",vertical:0>r?"top":s>0?"bottom":"middle"};l>p&&p>a(e+i)&&(u.horizontal="center"),c>f&&f>a(s+r)&&(u.vertical="middle"),u.important=o(a(e),a(i))>o(a(s),a(r))?"horizontal":"vertical",n.using.call(this,t,u)}),h.offset(t.extend(D,{using:r}))})},t.ui.position={fit:{left:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollLeft:s.offset.left,a=s.width,r=t.left-e.collisionPosition.marginLeft,h=n-r,l=r+e.collisionWidth-a-n;e.collisionWidth>a?h>0&&0>=l?(i=t.left+h+e.collisionWidth-a-n,t.left+=h-i):t.left=l>0&&0>=h?n:h>l?n+a-e.collisionWidth:n:h>0?t.left+=h:l>0?t.left-=l:t.left=o(t.left-r,t.left)},top:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollTop:s.offset.top,a=e.within.height,r=t.top-e.collisionPosition.marginTop,h=n-r,l=r+e.collisionHeight-a-n;e.collisionHeight>a?h>0&&0>=l?(i=t.top+h+e.collisionHeight-a-n,t.top+=h-i):t.top=l>0&&0>=h?n:h>l?n+a-e.collisionHeight:n:h>0?t.top+=h:l>0?t.top-=l:t.top=o(t.top-r,t.top)}},flip:{left:function(t,e){var i,s,n=e.within,o=n.offset.left+n.scrollLeft,r=n.width,h=n.isWindow?n.scrollLeft:n.offset.left,l=t.left-e.collisionPosition.marginLeft,c=l-h,u=l+e.collisionWidth-r-h,d="left"===e.my[0]?-e.elemWidth:"right"===e.my[0]?e.elemWidth:0,p="left"===e.at[0]?e.targetWidth:"right"===e.at[0]?-e.targetWidth:0,f=-2*e.offset[0];0>c?(i=t.left+d+p+f+e.collisionWidth-r-o,(0>i||a(c)>i)&&(t.left+=d+p+f)):u>0&&(s=t.left-e.collisionPosition.marginLeft+d+p+f-h,(s>0||u>a(s))&&(t.left+=d+p+f))},top:function(t,e){var i,s,n=e.within,o=n.offset.top+n.scrollTop,r=n.height,h=n.isWindow?n.scrollTop:n.offset.top,l=t.top-e.collisionPosition.marginTop,c=l-h,u=l+e.collisionHeight-r-h,d="top"===e.my[1],p=d?-e.elemHeight:"bottom"===e.my[1]?e.elemHeight:0,f="top"===e.at[1]?e.targetHeight:"bottom"===e.at[1]?-e.targetHeight:0,g=-2*e.offset[1];0>c?(s=t.top+p+f+g+e.collisionHeight-r-o,(0>s||a(c)>s)&&(t.top+=p+f+g)):u>0&&(i=t.top-e.collisionPosition.marginTop+p+f+g-h,(i>0||u>a(i))&&(t.top+=p+f+g))}},flipfit:{left:function(){t.ui.position.flip.left.apply(this,arguments),t.ui.position.fit.left.apply(this,arguments)},top:function(){t.ui.position.flip.top.apply(this,arguments),t.ui.position.fit.top.apply(this,arguments)}}}}(),t.ui.position,t.extend(t.expr[":"],{data:t.expr.createPseudo?t.expr.createPseudo(function(e){return function(i){return!!t.data(i,e)}}):function(e,i,s){return!!t.data(e,s[3])}}),t.fn.extend({disableSelection:function(){var t="onselectstart"in document.createElement("div")?"selectstart":"mousedown";return function(){return this.on(t+".ui-disableSelection",function(t){t.preventDefault()})}}(),enableSelection:function(){return this.off(".ui-disableSelection")}});var c="ui-effects-",u="ui-effects-style",d="ui-effects-animated",p=t;t.effects={effect:{}},function(t,e){function i(t,e,i){var s=u[e.type]||{};return null==t?i||!e.def?null:e.def:(t=s.floor?~~t:parseFloat(t),isNaN(t)?e.def:s.mod?(t+s.mod)%s.mod:0>t?0:t>s.max?s.max:t)}function s(i){var s=l(),n=s._rgba=[];return i=i.toLowerCase(),f(h,function(t,o){var a,r=o.re.exec(i),h=r&&o.parse(r),l=o.space||"rgba";return h?(a=s[l](h),s[c[l].cache]=a[c[l].cache],n=s._rgba=a._rgba,!1):e}),n.length?("0,0,0,0"===n.join()&&t.extend(n,o.transparent),s):o[i]}function n(t,e,i){return i=(i+1)%1,1>6*i?t+6*(e-t)*i:1>2*i?e:2>3*i?t+6*(e-t)*(2/3-i):t}var o,a="backgroundColor borderBottomColor borderLeftColor borderRightColor borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor",r=/^([\-+])=\s*(\d+\.?\d*)/,h=[{re:/rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,parse:function(t){return[t[1],t[2],t[3],t[4]]}},{re:/rgba?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,parse:function(t){return[2.55*t[1],2.55*t[2],2.55*t[3],t[4]]}},{re:/#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})/,parse:function(t){return[parseInt(t[1],16),parseInt(t[2],16),parseInt(t[3],16)]}},{re:/#([a-f0-9])([a-f0-9])([a-f0-9])/,parse:function(t){return[parseInt(t[1]+t[1],16),parseInt(t[2]+t[2],16),parseInt(t[3]+t[3],16)]}},{re:/hsla?\(\s*(\d+(?:\.\d+)?)\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,space:"hsla",parse:function(t){return[t[1],t[2]/100,t[3]/100,t[4]]}}],l=t.Color=function(e,i,s,n){return new t.Color.fn.parse(e,i,s,n)},c={rgba:{props:{red:{idx:0,type:"byte"},green:{idx:1,type:"byte"},blue:{idx:2,type:"byte"}}},hsla:{props:{hue:{idx:0,type:"degrees"},saturation:{idx:1,type:"percent"},lightness:{idx:2,type:"percent"}}}},u={"byte":{floor:!0,max:255},percent:{max:1},degrees:{mod:360,floor:!0}},d=l.support={},p=t("<p>")[0],f=t.each;p.style.cssText="background-color:rgba(1,1,1,.5)",d.rgba=p.style.backgroundColor.indexOf("rgba")>-1,f(c,function(t,e){e.cache="_"+t,e.props.alpha={idx:3,type:"percent",def:1}}),l.fn=t.extend(l.prototype,{parse:function(n,a,r,h){if(n===e)return this._rgba=[null,null,null,null],this;(n.jquery||n.nodeType)&&(n=t(n).css(a),a=e);var u=this,d=t.type(n),p=this._rgba=[];return a!==e&&(n=[n,a,r,h],d="array"),"string"===d?this.parse(s(n)||o._default):"array"===d?(f(c.rgba.props,function(t,e){p[e.idx]=i(n[e.idx],e)}),this):"object"===d?(n instanceof l?f(c,function(t,e){n[e.cache]&&(u[e.cache]=n[e.cache].slice())}):f(c,function(e,s){var o=s.cache;f(s.props,function(t,e){if(!u[o]&&s.to){if("alpha"===t||null==n[t])return;u[o]=s.to(u._rgba)}u[o][e.idx]=i(n[t],e,!0)}),u[o]&&0>t.inArray(null,u[o].slice(0,3))&&(u[o][3]=1,s.from&&(u._rgba=s.from(u[o])))}),this):e},is:function(t){var i=l(t),s=!0,n=this;return f(c,function(t,o){var a,r=i[o.cache];return r&&(a=n[o.cache]||o.to&&o.to(n._rgba)||[],f(o.props,function(t,i){return null!=r[i.idx]?s=r[i.idx]===a[i.idx]:e})),s}),s},_space:function(){var t=[],e=this;return f(c,function(i,s){e[s.cache]&&t.push(i)}),t.pop()},transition:function(t,e){var s=l(t),n=s._space(),o=c[n],a=0===this.alpha()?l("transparent"):this,r=a[o.cache]||o.to(a._rgba),h=r.slice();return s=s[o.cache],f(o.props,function(t,n){var o=n.idx,a=r[o],l=s[o],c=u[n.type]||{};null!==l&&(null===a?h[o]=l:(c.mod&&(l-a>c.mod/2?a+=c.mod:a-l>c.mod/2&&(a-=c.mod)),h[o]=i((l-a)*e+a,n)))}),this[n](h)},blend:function(e){if(1===this._rgba[3])return this;var i=this._rgba.slice(),s=i.pop(),n=l(e)._rgba;return l(t.map(i,function(t,e){return(1-s)*n[e]+s*t}))},toRgbaString:function(){var e="rgba(",i=t.map(this._rgba,function(t,e){return null==t?e>2?1:0:t});return 1===i[3]&&(i.pop(),e="rgb("),e+i.join()+")"},toHslaString:function(){var e="hsla(",i=t.map(this.hsla(),function(t,e){return null==t&&(t=e>2?1:0),e&&3>e&&(t=Math.round(100*t)+"%"),t});return 1===i[3]&&(i.pop(),e="hsl("),e+i.join()+")"},toHexString:function(e){var i=this._rgba.slice(),s=i.pop();return e&&i.push(~~(255*s)),"#"+t.map(i,function(t){return t=(t||0).toString(16),1===t.length?"0"+t:t}).join("")},toString:function(){return 0===this._rgba[3]?"transparent":this.toRgbaString()}}),l.fn.parse.prototype=l.fn,c.hsla.to=function(t){if(null==t[0]||null==t[1]||null==t[2])return[null,null,null,t[3]];var e,i,s=t[0]/255,n=t[1]/255,o=t[2]/255,a=t[3],r=Math.max(s,n,o),h=Math.min(s,n,o),l=r-h,c=r+h,u=.5*c;return e=h===r?0:s===r?60*(n-o)/l+360:n===r?60*(o-s)/l+120:60*(s-n)/l+240,i=0===l?0:.5>=u?l/c:l/(2-c),[Math.round(e)%360,i,u,null==a?1:a]},c.hsla.from=function(t){if(null==t[0]||null==t[1]||null==t[2])return[null,null,null,t[3]];var e=t[0]/360,i=t[1],s=t[2],o=t[3],a=.5>=s?s*(1+i):s+i-s*i,r=2*s-a;return[Math.round(255*n(r,a,e+1/3)),Math.round(255*n(r,a,e)),Math.round(255*n(r,a,e-1/3)),o]},f(c,function(s,n){var o=n.props,a=n.cache,h=n.to,c=n.from;l.fn[s]=function(s){if(h&&!this[a]&&(this[a]=h(this._rgba)),s===e)return this[a].slice();var n,r=t.type(s),u="array"===r||"object"===r?s:arguments,d=this[a].slice();return f(o,function(t,e){var s=u["object"===r?t:e.idx];null==s&&(s=d[e.idx]),d[e.idx]=i(s,e)}),c?(n=l(c(d)),n[a]=d,n):l(d)},f(o,function(e,i){l.fn[e]||(l.fn[e]=function(n){var o,a=t.type(n),h="alpha"===e?this._hsla?"hsla":"rgba":s,l=this[h](),c=l[i.idx];return"undefined"===a?c:("function"===a&&(n=n.call(this,c),a=t.type(n)),null==n&&i.empty?this:("string"===a&&(o=r.exec(n),o&&(n=c+parseFloat(o[2])*("+"===o[1]?1:-1))),l[i.idx]=n,this[h](l)))})})}),l.hook=function(e){var i=e.split(" ");f(i,function(e,i){t.cssHooks[i]={set:function(e,n){var o,a,r="";if("transparent"!==n&&("string"!==t.type(n)||(o=s(n)))){if(n=l(o||n),!d.rgba&&1!==n._rgba[3]){for(a="backgroundColor"===i?e.parentNode:e;(""===r||"transparent"===r)&&a&&a.style;)try{r=t.css(a,"backgroundColor"),a=a.parentNode}catch(h){}n=n.blend(r&&"transparent"!==r?r:"_default")}n=n.toRgbaString()}try{e.style[i]=n}catch(h){}}},t.fx.step[i]=function(e){e.colorInit||(e.start=l(e.elem,i),e.end=l(e.end),e.colorInit=!0),t.cssHooks[i].set(e.elem,e.start.transition(e.end,e.pos))}})},l.hook(a),t.cssHooks.borderColor={expand:function(t){var e={};return f(["Top","Right","Bottom","Left"],function(i,s){e["border"+s+"Color"]=t}),e}},o=t.Color.names={aqua:"#00ffff",black:"#000000",blue:"#0000ff",fuchsia:"#ff00ff",gray:"#808080",green:"#008000",lime:"#00ff00",maroon:"#800000",navy:"#000080",olive:"#808000",purple:"#800080",red:"#ff0000",silver:"#c0c0c0",teal:"#008080",white:"#ffffff",yellow:"#ffff00",transparent:[null,null,null,0],_default:"#ffffff"}}(p),function(){function e(e){var i,s,n=e.ownerDocument.defaultView?e.ownerDocument.defaultView.getComputedStyle(e,null):e.currentStyle,o={};if(n&&n.length&&n[0]&&n[n[0]])for(s=n.length;s--;)i=n[s],"string"==typeof n[i]&&(o[t.camelCase(i)]=n[i]);else for(i in n)"string"==typeof n[i]&&(o[i]=n[i]);return o}function i(e,i){var s,o,a={};for(s in i)o=i[s],e[s]!==o&&(n[s]||(t.fx.step[s]||!isNaN(parseFloat(o)))&&(a[s]=o));return a}var s=["add","remove","toggle"],n={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};t.each(["borderLeftStyle","borderRightStyle","borderBottomStyle","borderTopStyle"],function(e,i){t.fx.step[i]=function(t){("none"!==t.end&&!t.setAttr||1===t.pos&&!t.setAttr)&&(p.style(t.elem,i,t.end),t.setAttr=!0)}}),t.fn.addBack||(t.fn.addBack=function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}),t.effects.animateClass=function(n,o,a,r){var h=t.speed(o,a,r);return this.queue(function(){var o,a=t(this),r=a.attr("class")||"",l=h.children?a.find("*").addBack():a;l=l.map(function(){var i=t(this);return{el:i,start:e(this)}}),o=function(){t.each(s,function(t,e){n[e]&&a[e+"Class"](n[e])})},o(),l=l.map(function(){return this.end=e(this.el[0]),this.diff=i(this.start,this.end),this}),a.attr("class",r),l=l.map(function(){var e=this,i=t.Deferred(),s=t.extend({},h,{queue:!1,complete:function(){i.resolve(e)}});return this.el.animate(this.diff,s),i.promise()}),t.when.apply(t,l.get()).done(function(){o(),t.each(arguments,function(){var e=this.el;t.each(this.diff,function(t){e.css(t,"")})}),h.complete.call(a[0])})})},t.fn.extend({addClass:function(e){return function(i,s,n,o){return s?t.effects.animateClass.call(this,{add:i},s,n,o):e.apply(this,arguments)}}(t.fn.addClass),removeClass:function(e){return function(i,s,n,o){return arguments.length>1?t.effects.animateClass.call(this,{remove:i},s,n,o):e.apply(this,arguments)}}(t.fn.removeClass),toggleClass:function(e){return function(i,s,n,o,a){return"boolean"==typeof s||void 0===s?n?t.effects.animateClass.call(this,s?{add:i}:{remove:i},n,o,a):e.apply(this,arguments):t.effects.animateClass.call(this,{toggle:i},s,n,o)}}(t.fn.toggleClass),switchClass:function(e,i,s,n,o){return t.effects.animateClass.call(this,{add:i,remove:e},s,n,o)}})}(),function(){function e(e,i,s,n){return t.isPlainObject(e)&&(i=e,e=e.effect),e={effect:e},null==i&&(i={}),t.isFunction(i)&&(n=i,s=null,i={}),("number"==typeof i||t.fx.speeds[i])&&(n=s,s=i,i={}),t.isFunction(s)&&(n=s,s=null),i&&t.extend(e,i),s=s||i.duration,e.duration=t.fx.off?0:"number"==typeof s?s:s in t.fx.speeds?t.fx.speeds[s]:t.fx.speeds._default,e.complete=n||i.complete,e}function i(e){return!e||"number"==typeof e||t.fx.speeds[e]?!0:"string"!=typeof e||t.effects.effect[e]?t.isFunction(e)?!0:"object"!=typeof e||e.effect?!1:!0:!0}function s(t,e){var i=e.outerWidth(),s=e.outerHeight(),n=/^rect\((-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto)\)$/,o=n.exec(t)||["",0,i,s,0];return{top:parseFloat(o[1])||0,right:"auto"===o[2]?i:parseFloat(o[2]),bottom:"auto"===o[3]?s:parseFloat(o[3]),left:parseFloat(o[4])||0}}t.expr&&t.expr.filters&&t.expr.filters.animated&&(t.expr.filters.animated=function(e){return function(i){return!!t(i).data(d)||e(i)}}(t.expr.filters.animated)),t.uiBackCompat!==!1&&t.extend(t.effects,{save:function(t,e){for(var i=0,s=e.length;s>i;i++)null!==e[i]&&t.data(c+e[i],t[0].style[e[i]])},restore:function(t,e){for(var i,s=0,n=e.length;n>s;s++)null!==e[s]&&(i=t.data(c+e[s]),t.css(e[s],i))},setMode:function(t,e){return"toggle"===e&&(e=t.is(":hidden")?"show":"hide"),e},createWrapper:function(e){if(e.parent().is(".ui-effects-wrapper"))return e.parent();var i={width:e.outerWidth(!0),height:e.outerHeight(!0),"float":e.css("float")},s=t("<div></div>").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}),n={width:e.width(),height:e.height()},o=document.activeElement;try{o.id}catch(a){o=document.body}return e.wrap(s),(e[0]===o||t.contains(e[0],o))&&t(o).trigger("focus"),s=e.parent(),"static"===e.css("position")?(s.css({position:"relative"}),e.css({position:"relative"})):(t.extend(i,{position:e.css("position"),zIndex:e.css("z-index")}),t.each(["top","left","bottom","right"],function(t,s){i[s]=e.css(s),isNaN(parseInt(i[s],10))&&(i[s]="auto")}),e.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})),e.css(n),s.css(i).show()},removeWrapper:function(e){var i=document.activeElement;return e.parent().is(".ui-effects-wrapper")&&(e.parent().replaceWith(e),(e[0]===i||t.contains(e[0],i))&&t(i).trigger("focus")),e}}),t.extend(t.effects,{version:"1.12.1",define:function(e,i,s){return s||(s=i,i="effect"),t.effects.effect[e]=s,t.effects.effect[e].mode=i,s},scaledDimensions:function(t,e,i){if(0===e)return{height:0,width:0,outerHeight:0,outerWidth:0};var s="horizontal"!==i?(e||100)/100:1,n="vertical"!==i?(e||100)/100:1;return{height:t.height()*n,width:t.width()*s,outerHeight:t.outerHeight()*n,outerWidth:t.outerWidth()*s}},clipToBox:function(t){return{width:t.clip.right-t.clip.left,height:t.clip.bottom-t.clip.top,left:t.clip.left,top:t.clip.top}},unshift:function(t,e,i){var s=t.queue();e>1&&s.splice.apply(s,[1,0].concat(s.splice(e,i))),t.dequeue()},saveStyle:function(t){t.data(u,t[0].style.cssText)},restoreStyle:function(t){t[0].style.cssText=t.data(u)||"",t.removeData(u)},mode:function(t,e){var i=t.is(":hidden");return"toggle"===e&&(e=i?"show":"hide"),(i?"hide"===e:"show"===e)&&(e="none"),e},getBaseline:function(t,e){var i,s;switch(t[0]){case"top":i=0;break;case"middle":i=.5;break;case"bottom":i=1;break;default:i=t[0]/e.height}switch(t[1]){case"left":s=0;break;case"center":s=.5;break;case"right":s=1;break;default:s=t[1]/e.width}return{x:s,y:i}},createPlaceholder:function(e){var i,s=e.css("position"),n=e.position();return e.css({marginTop:e.css("marginTop"),marginBottom:e.css("marginBottom"),marginLeft:e.css("marginLeft"),marginRight:e.css("marginRight")}).outerWidth(e.outerWidth()).outerHeight(e.outerHeight()),/^(static|relative)/.test(s)&&(s="absolute",i=t("<"+e[0].nodeName+">").insertAfter(e).css({display:/^(inline|ruby)/.test(e.css("display"))?"inline-block":"block",visibility:"hidden",marginTop:e.css("marginTop"),marginBottom:e.css("marginBottom"),marginLeft:e.css("marginLeft"),marginRight:e.css("marginRight"),"float":e.css("float")}).outerWidth(e.outerWidth()).outerHeight(e.outerHeight()).addClass("ui-effects-placeholder"),e.data(c+"placeholder",i)),e.css({position:s,left:n.left,top:n.top}),i},removePlaceholder:function(t){var e=c+"placeholder",i=t.data(e);i&&(i.remove(),t.removeData(e))},cleanUp:function(e){t.effects.restoreStyle(e),t.effects.removePlaceholder(e)},setTransition:function(e,i,s,n){return n=n||{},t.each(i,function(t,i){var o=e.cssUnit(i);o[0]>0&&(n[i]=o[0]*s+o[1])}),n}}),t.fn.extend({effect:function(){function i(e){function i(){r.removeData(d),t.effects.cleanUp(r),"hide"===s.mode&&r.hide(),a()}function a(){t.isFunction(h)&&h.call(r[0]),t.isFunction(e)&&e()}var r=t(this);s.mode=c.shift(),t.uiBackCompat===!1||o?"none"===s.mode?(r[l](),a()):n.call(r[0],s,i):(r.is(":hidden")?"hide"===l:"show"===l)?(r[l](),a()):n.call(r[0],s,a)}var s=e.apply(this,arguments),n=t.effects.effect[s.effect],o=n.mode,a=s.queue,r=a||"fx",h=s.complete,l=s.mode,c=[],u=function(e){var i=t(this),s=t.effects.mode(i,l)||o;i.data(d,!0),c.push(s),o&&("show"===s||s===o&&"hide"===s)&&i.show(),o&&"none"===s||t.effects.saveStyle(i),t.isFunction(e)&&e()};return t.fx.off||!n?l?this[l](s.duration,h):this.each(function(){h&&h.call(this)}):a===!1?this.each(u).each(i):this.queue(r,u).queue(r,i)},show:function(t){return function(s){if(i(s))return t.apply(this,arguments);var n=e.apply(this,arguments);return n.mode="show",this.effect.call(this,n)
-}}(t.fn.show),hide:function(t){return function(s){if(i(s))return t.apply(this,arguments);var n=e.apply(this,arguments);return n.mode="hide",this.effect.call(this,n)}}(t.fn.hide),toggle:function(t){return function(s){if(i(s)||"boolean"==typeof s)return t.apply(this,arguments);var n=e.apply(this,arguments);return n.mode="toggle",this.effect.call(this,n)}}(t.fn.toggle),cssUnit:function(e){var i=this.css(e),s=[];return t.each(["em","px","%","pt"],function(t,e){i.indexOf(e)>0&&(s=[parseFloat(i),e])}),s},cssClip:function(t){return t?this.css("clip","rect("+t.top+"px "+t.right+"px "+t.bottom+"px "+t.left+"px)"):s(this.css("clip"),this)},transfer:function(e,i){var s=t(this),n=t(e.to),o="fixed"===n.css("position"),a=t("body"),r=o?a.scrollTop():0,h=o?a.scrollLeft():0,l=n.offset(),c={top:l.top-r,left:l.left-h,height:n.innerHeight(),width:n.innerWidth()},u=s.offset(),d=t("<div class='ui-effects-transfer'></div>").appendTo("body").addClass(e.className).css({top:u.top-r,left:u.left-h,height:s.innerHeight(),width:s.innerWidth(),position:o?"fixed":"absolute"}).animate(c,e.duration,e.easing,function(){d.remove(),t.isFunction(i)&&i()})}}),t.fx.step.clip=function(e){e.clipInit||(e.start=t(e.elem).cssClip(),"string"==typeof e.end&&(e.end=s(e.end,e.elem)),e.clipInit=!0),t(e.elem).cssClip({top:e.pos*(e.end.top-e.start.top)+e.start.top,right:e.pos*(e.end.right-e.start.right)+e.start.right,bottom:e.pos*(e.end.bottom-e.start.bottom)+e.start.bottom,left:e.pos*(e.end.left-e.start.left)+e.start.left})}}(),function(){var e={};t.each(["Quad","Cubic","Quart","Quint","Expo"],function(t,i){e[i]=function(e){return Math.pow(e,t+2)}}),t.extend(e,{Sine:function(t){return 1-Math.cos(t*Math.PI/2)},Circ:function(t){return 1-Math.sqrt(1-t*t)},Elastic:function(t){return 0===t||1===t?t:-Math.pow(2,8*(t-1))*Math.sin((80*(t-1)-7.5)*Math.PI/15)},Back:function(t){return t*t*(3*t-2)},Bounce:function(t){for(var e,i=4;((e=Math.pow(2,--i))-1)/11>t;);return 1/Math.pow(4,3-i)-7.5625*Math.pow((3*e-2)/22-t,2)}}),t.each(e,function(e,i){t.easing["easeIn"+e]=i,t.easing["easeOut"+e]=function(t){return 1-i(1-t)},t.easing["easeInOut"+e]=function(t){return.5>t?i(2*t)/2:1-i(-2*t+2)/2}})}();var f=t.effects;t.effects.define("blind","hide",function(e,i){var s={up:["bottom","top"],vertical:["bottom","top"],down:["top","bottom"],left:["right","left"],horizontal:["right","left"],right:["left","right"]},n=t(this),o=e.direction||"up",a=n.cssClip(),r={clip:t.extend({},a)},h=t.effects.createPlaceholder(n);r.clip[s[o][0]]=r.clip[s[o][1]],"show"===e.mode&&(n.cssClip(r.clip),h&&h.css(t.effects.clipToBox(r)),r.clip=a),h&&h.animate(t.effects.clipToBox(r),e.duration,e.easing),n.animate(r,{queue:!1,duration:e.duration,easing:e.easing,complete:i})}),t.effects.define("bounce",function(e,i){var s,n,o,a=t(this),r=e.mode,h="hide"===r,l="show"===r,c=e.direction||"up",u=e.distance,d=e.times||5,p=2*d+(l||h?1:0),f=e.duration/p,g=e.easing,m="up"===c||"down"===c?"top":"left",_="up"===c||"left"===c,v=0,b=a.queue().length;for(t.effects.createPlaceholder(a),o=a.css(m),u||(u=a["top"===m?"outerHeight":"outerWidth"]()/3),l&&(n={opacity:1},n[m]=o,a.css("opacity",0).css(m,_?2*-u:2*u).animate(n,f,g)),h&&(u/=Math.pow(2,d-1)),n={},n[m]=o;d>v;v++)s={},s[m]=(_?"-=":"+=")+u,a.animate(s,f,g).animate(n,f,g),u=h?2*u:u/2;h&&(s={opacity:0},s[m]=(_?"-=":"+=")+u,a.animate(s,f,g)),a.queue(i),t.effects.unshift(a,b,p+1)}),t.effects.define("clip","hide",function(e,i){var s,n={},o=t(this),a=e.direction||"vertical",r="both"===a,h=r||"horizontal"===a,l=r||"vertical"===a;s=o.cssClip(),n.clip={top:l?(s.bottom-s.top)/2:s.top,right:h?(s.right-s.left)/2:s.right,bottom:l?(s.bottom-s.top)/2:s.bottom,left:h?(s.right-s.left)/2:s.left},t.effects.createPlaceholder(o),"show"===e.mode&&(o.cssClip(n.clip),n.clip=s),o.animate(n,{queue:!1,duration:e.duration,easing:e.easing,complete:i})}),t.effects.define("drop","hide",function(e,i){var s,n=t(this),o=e.mode,a="show"===o,r=e.direction||"left",h="up"===r||"down"===r?"top":"left",l="up"===r||"left"===r?"-=":"+=",c="+="===l?"-=":"+=",u={opacity:0};t.effects.createPlaceholder(n),s=e.distance||n["top"===h?"outerHeight":"outerWidth"](!0)/2,u[h]=l+s,a&&(n.css(u),u[h]=c+s,u.opacity=1),n.animate(u,{queue:!1,duration:e.duration,easing:e.easing,complete:i})}),t.effects.define("explode","hide",function(e,i){function s(){b.push(this),b.length===u*d&&n()}function n(){p.css({visibility:"visible"}),t(b).remove(),i()}var o,a,r,h,l,c,u=e.pieces?Math.round(Math.sqrt(e.pieces)):3,d=u,p=t(this),f=e.mode,g="show"===f,m=p.show().css("visibility","hidden").offset(),_=Math.ceil(p.outerWidth()/d),v=Math.ceil(p.outerHeight()/u),b=[];for(o=0;u>o;o++)for(h=m.top+o*v,c=o-(u-1)/2,a=0;d>a;a++)r=m.left+a*_,l=a-(d-1)/2,p.clone().appendTo("body").wrap("<div></div>").css({position:"absolute",visibility:"visible",left:-a*_,top:-o*v}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:_,height:v,left:r+(g?l*_:0),top:h+(g?c*v:0),opacity:g?0:1}).animate({left:r+(g?0:l*_),top:h+(g?0:c*v),opacity:g?1:0},e.duration||500,e.easing,s)}),t.effects.define("fade","toggle",function(e,i){var s="show"===e.mode;t(this).css("opacity",s?0:1).animate({opacity:s?1:0},{queue:!1,duration:e.duration,easing:e.easing,complete:i})}),t.effects.define("fold","hide",function(e,i){var s=t(this),n=e.mode,o="show"===n,a="hide"===n,r=e.size||15,h=/([0-9]+)%/.exec(r),l=!!e.horizFirst,c=l?["right","bottom"]:["bottom","right"],u=e.duration/2,d=t.effects.createPlaceholder(s),p=s.cssClip(),f={clip:t.extend({},p)},g={clip:t.extend({},p)},m=[p[c[0]],p[c[1]]],_=s.queue().length;h&&(r=parseInt(h[1],10)/100*m[a?0:1]),f.clip[c[0]]=r,g.clip[c[0]]=r,g.clip[c[1]]=0,o&&(s.cssClip(g.clip),d&&d.css(t.effects.clipToBox(g)),g.clip=p),s.queue(function(i){d&&d.animate(t.effects.clipToBox(f),u,e.easing).animate(t.effects.clipToBox(g),u,e.easing),i()}).animate(f,u,e.easing).animate(g,u,e.easing).queue(i),t.effects.unshift(s,_,4)}),t.effects.define("highlight","show",function(e,i){var s=t(this),n={backgroundColor:s.css("backgroundColor")};"hide"===e.mode&&(n.opacity=0),t.effects.saveStyle(s),s.css({backgroundImage:"none",backgroundColor:e.color||"#ffff99"}).animate(n,{queue:!1,duration:e.duration,easing:e.easing,complete:i})}),t.effects.define("size",function(e,i){var s,n,o,a=t(this),r=["fontSize"],h=["borderTopWidth","borderBottomWidth","paddingTop","paddingBottom"],l=["borderLeftWidth","borderRightWidth","paddingLeft","paddingRight"],c=e.mode,u="effect"!==c,d=e.scale||"both",p=e.origin||["middle","center"],f=a.css("position"),g=a.position(),m=t.effects.scaledDimensions(a),_=e.from||m,v=e.to||t.effects.scaledDimensions(a,0);t.effects.createPlaceholder(a),"show"===c&&(o=_,_=v,v=o),n={from:{y:_.height/m.height,x:_.width/m.width},to:{y:v.height/m.height,x:v.width/m.width}},("box"===d||"both"===d)&&(n.from.y!==n.to.y&&(_=t.effects.setTransition(a,h,n.from.y,_),v=t.effects.setTransition(a,h,n.to.y,v)),n.from.x!==n.to.x&&(_=t.effects.setTransition(a,l,n.from.x,_),v=t.effects.setTransition(a,l,n.to.x,v))),("content"===d||"both"===d)&&n.from.y!==n.to.y&&(_=t.effects.setTransition(a,r,n.from.y,_),v=t.effects.setTransition(a,r,n.to.y,v)),p&&(s=t.effects.getBaseline(p,m),_.top=(m.outerHeight-_.outerHeight)*s.y+g.top,_.left=(m.outerWidth-_.outerWidth)*s.x+g.left,v.top=(m.outerHeight-v.outerHeight)*s.y+g.top,v.left=(m.outerWidth-v.outerWidth)*s.x+g.left),a.css(_),("content"===d||"both"===d)&&(h=h.concat(["marginTop","marginBottom"]).concat(r),l=l.concat(["marginLeft","marginRight"]),a.find("*[width]").each(function(){var i=t(this),s=t.effects.scaledDimensions(i),o={height:s.height*n.from.y,width:s.width*n.from.x,outerHeight:s.outerHeight*n.from.y,outerWidth:s.outerWidth*n.from.x},a={height:s.height*n.to.y,width:s.width*n.to.x,outerHeight:s.height*n.to.y,outerWidth:s.width*n.to.x};n.from.y!==n.to.y&&(o=t.effects.setTransition(i,h,n.from.y,o),a=t.effects.setTransition(i,h,n.to.y,a)),n.from.x!==n.to.x&&(o=t.effects.setTransition(i,l,n.from.x,o),a=t.effects.setTransition(i,l,n.to.x,a)),u&&t.effects.saveStyle(i),i.css(o),i.animate(a,e.duration,e.easing,function(){u&&t.effects.restoreStyle(i)})})),a.animate(v,{queue:!1,duration:e.duration,easing:e.easing,complete:function(){var e=a.offset();0===v.opacity&&a.css("opacity",_.opacity),u||(a.css("position","static"===f?"relative":f).offset(e),t.effects.saveStyle(a)),i()}})}),t.effects.define("scale",function(e,i){var s=t(this),n=e.mode,o=parseInt(e.percent,10)||(0===parseInt(e.percent,10)?0:"effect"!==n?0:100),a=t.extend(!0,{from:t.effects.scaledDimensions(s),to:t.effects.scaledDimensions(s,o,e.direction||"both"),origin:e.origin||["middle","center"]},e);e.fade&&(a.from.opacity=1,a.to.opacity=0),t.effects.effect.size.call(this,a,i)}),t.effects.define("puff","hide",function(e,i){var s=t.extend(!0,{},e,{fade:!0,percent:parseInt(e.percent,10)||150});t.effects.effect.scale.call(this,s,i)}),t.effects.define("pulsate","show",function(e,i){var s=t(this),n=e.mode,o="show"===n,a="hide"===n,r=o||a,h=2*(e.times||5)+(r?1:0),l=e.duration/h,c=0,u=1,d=s.queue().length;for((o||!s.is(":visible"))&&(s.css("opacity",0).show(),c=1);h>u;u++)s.animate({opacity:c},l,e.easing),c=1-c;s.animate({opacity:c},l,e.easing),s.queue(i),t.effects.unshift(s,d,h+1)}),t.effects.define("shake",function(e,i){var s=1,n=t(this),o=e.direction||"left",a=e.distance||20,r=e.times||3,h=2*r+1,l=Math.round(e.duration/h),c="up"===o||"down"===o?"top":"left",u="up"===o||"left"===o,d={},p={},f={},g=n.queue().length;for(t.effects.createPlaceholder(n),d[c]=(u?"-=":"+=")+a,p[c]=(u?"+=":"-=")+2*a,f[c]=(u?"-=":"+=")+2*a,n.animate(d,l,e.easing);r>s;s++)n.animate(p,l,e.easing).animate(f,l,e.easing);n.animate(p,l,e.easing).animate(d,l/2,e.easing).queue(i),t.effects.unshift(n,g,h+1)}),t.effects.define("slide","show",function(e,i){var s,n,o=t(this),a={up:["bottom","top"],down:["top","bottom"],left:["right","left"],right:["left","right"]},r=e.mode,h=e.direction||"left",l="up"===h||"down"===h?"top":"left",c="up"===h||"left"===h,u=e.distance||o["top"===l?"outerHeight":"outerWidth"](!0),d={};t.effects.createPlaceholder(o),s=o.cssClip(),n=o.position()[l],d[l]=(c?-1:1)*u+n,d.clip=o.cssClip(),d.clip[a[h][1]]=d.clip[a[h][0]],"show"===r&&(o.cssClip(d.clip),o.css(l,d[l]),d.clip=s,d[l]=n),o.animate(d,{queue:!1,duration:e.duration,easing:e.easing,complete:i})});var f;t.uiBackCompat!==!1&&(f=t.effects.define("transfer",function(e,i){t(this).transfer(e,i)})),t.ui.focusable=function(i,s){var n,o,a,r,h,l=i.nodeName.toLowerCase();return"area"===l?(n=i.parentNode,o=n.name,i.href&&o&&"map"===n.nodeName.toLowerCase()?(a=t("img[usemap='#"+o+"']"),a.length>0&&a.is(":visible")):!1):(/^(input|select|textarea|button|object)$/.test(l)?(r=!i.disabled,r&&(h=t(i).closest("fieldset")[0],h&&(r=!h.disabled))):r="a"===l?i.href||s:s,r&&t(i).is(":visible")&&e(t(i)))},t.extend(t.expr[":"],{focusable:function(e){return t.ui.focusable(e,null!=t.attr(e,"tabindex"))}}),t.ui.focusable,t.fn.form=function(){return"string"==typeof this[0].form?this.closest("form"):t(this[0].form)},t.ui.formResetMixin={_formResetHandler:function(){var e=t(this);setTimeout(function(){var i=e.data("ui-form-reset-instances");t.each(i,function(){this.refresh()})})},_bindFormResetHandler:function(){if(this.form=this.element.form(),this.form.length){var t=this.form.data("ui-form-reset-instances")||[];t.length||this.form.on("reset.ui-form-reset",this._formResetHandler),t.push(this),this.form.data("ui-form-reset-instances",t)}},_unbindFormResetHandler:function(){if(this.form.length){var e=this.form.data("ui-form-reset-instances");e.splice(t.inArray(this,e),1),e.length?this.form.data("ui-form-reset-instances",e):this.form.removeData("ui-form-reset-instances").off("reset.ui-form-reset")}}},"1.7"===t.fn.jquery.substring(0,3)&&(t.each(["Width","Height"],function(e,i){function s(e,i,s,o){return t.each(n,function(){i-=parseFloat(t.css(e,"padding"+this))||0,s&&(i-=parseFloat(t.css(e,"border"+this+"Width"))||0),o&&(i-=parseFloat(t.css(e,"margin"+this))||0)}),i}var n="Width"===i?["Left","Right"]:["Top","Bottom"],o=i.toLowerCase(),a={innerWidth:t.fn.innerWidth,innerHeight:t.fn.innerHeight,outerWidth:t.fn.outerWidth,outerHeight:t.fn.outerHeight};t.fn["inner"+i]=function(e){return void 0===e?a["inner"+i].call(this):this.each(function(){t(this).css(o,s(this,e)+"px")})},t.fn["outer"+i]=function(e,n){return"number"!=typeof e?a["outer"+i].call(this,e):this.each(function(){t(this).css(o,s(this,e,!0,n)+"px")})}}),t.fn.addBack=function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}),t.ui.keyCode={BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38},t.ui.escapeSelector=function(){var t=/([!"#$%&'()*+,./:;<=>?@[\]^`{|}~])/g;return function(e){return e.replace(t,"\\$1")}}(),t.fn.labels=function(){var e,i,s,n,o;return this[0].labels&&this[0].labels.length?this.pushStack(this[0].labels):(n=this.eq(0).parents("label"),s=this.attr("id"),s&&(e=this.eq(0).parents().last(),o=e.add(e.length?e.siblings():this.siblings()),i="label[for='"+t.ui.escapeSelector(s)+"']",n=n.add(o.find(i).addBack(i))),this.pushStack(n))},t.fn.scrollParent=function(e){var i=this.css("position"),s="absolute"===i,n=e?/(auto|scroll|hidden)/:/(auto|scroll)/,o=this.parents().filter(function(){var e=t(this);return s&&"static"===e.css("position")?!1:n.test(e.css("overflow")+e.css("overflow-y")+e.css("overflow-x"))}).eq(0);return"fixed"!==i&&o.length?o:t(this[0].ownerDocument||document)},t.extend(t.expr[":"],{tabbable:function(e){var i=t.attr(e,"tabindex"),s=null!=i;return(!s||i>=0)&&t.ui.focusable(e,s)}}),t.fn.extend({uniqueId:function(){var t=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++t)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&t(this).removeAttr("id")})}}),t.widget("ui.accordion",{version:"1.12.1",options:{active:0,animate:{},classes:{"ui-accordion-header":"ui-corner-top","ui-accordion-header-collapsed":"ui-corner-all","ui-accordion-content":"ui-corner-bottom"},collapsible:!1,event:"click",header:"> li > :first-child, > :not(li):even",heightStyle:"auto",icons:{activeHeader:"ui-icon-triangle-1-s",header:"ui-icon-triangle-1-e"},activate:null,beforeActivate:null},hideProps:{borderTopWidth:"hide",borderBottomWidth:"hide",paddingTop:"hide",paddingBottom:"hide",height:"hide"},showProps:{borderTopWidth:"show",borderBottomWidth:"show",paddingTop:"show",paddingBottom:"show",height:"show"},_create:function(){var e=this.options;this.prevShow=this.prevHide=t(),this._addClass("ui-accordion","ui-widget ui-helper-reset"),this.element.attr("role","tablist"),e.collapsible||e.active!==!1&&null!=e.active||(e.active=0),this._processPanels(),0>e.active&&(e.active+=this.headers.length),this._refresh()},_getCreateEventData:function(){return{header:this.active,panel:this.active.length?this.active.next():t()}},_createIcons:function(){var e,i,s=this.options.icons;s&&(e=t("<span>"),this._addClass(e,"ui-accordion-header-icon","ui-icon "+s.header),e.prependTo(this.headers),i=this.active.children(".ui-accordion-header-icon"),this._removeClass(i,s.header)._addClass(i,null,s.activeHeader)._addClass(this.headers,"ui-accordion-icons"))},_destroyIcons:function(){this._removeClass(this.headers,"ui-accordion-icons"),this.headers.children(".ui-accordion-header-icon").remove()},_destroy:function(){var t;this.element.removeAttr("role"),this.headers.removeAttr("role aria-expanded aria-selected aria-controls tabIndex").removeUniqueId(),this._destroyIcons(),t=this.headers.next().css("display","").removeAttr("role aria-hidden aria-labelledby").removeUniqueId(),"content"!==this.options.heightStyle&&t.css("height","")},_setOption:function(t,e){return"active"===t?(this._activate(e),void 0):("event"===t&&(this.options.event&&this._off(this.headers,this.options.event),this._setupEvents(e)),this._super(t,e),"collapsible"!==t||e||this.options.active!==!1||this._activate(0),"icons"===t&&(this._destroyIcons(),e&&this._createIcons()),void 0)},_setOptionDisabled:function(t){this._super(t),this.element.attr("aria-disabled",t),this._toggleClass(null,"ui-state-disabled",!!t),this._toggleClass(this.headers.add(this.headers.next()),null,"ui-state-disabled",!!t)},_keydown:function(e){if(!e.altKey&&!e.ctrlKey){var i=t.ui.keyCode,s=this.headers.length,n=this.headers.index(e.target),o=!1;switch(e.keyCode){case i.RIGHT:case i.DOWN:o=this.headers[(n+1)%s];break;case i.LEFT:case i.UP:o=this.headers[(n-1+s)%s];break;case i.SPACE:case i.ENTER:this._eventHandler(e);break;case i.HOME:o=this.headers[0];break;case i.END:o=this.headers[s-1]}o&&(t(e.target).attr("tabIndex",-1),t(o).attr("tabIndex",0),t(o).trigger("focus"),e.preventDefault())}},_panelKeyDown:function(e){e.keyCode===t.ui.keyCode.UP&&e.ctrlKey&&t(e.currentTarget).prev().trigger("focus")},refresh:function(){var e=this.options;this._processPanels(),e.active===!1&&e.collapsible===!0||!this.headers.length?(e.active=!1,this.active=t()):e.active===!1?this._activate(0):this.active.length&&!t.contains(this.element[0],this.active[0])?this.headers.length===this.headers.find(".ui-state-disabled").length?(e.active=!1,this.active=t()):this._activate(Math.max(0,e.active-1)):e.active=this.headers.index(this.active),this._destroyIcons(),this._refresh()},_processPanels:function(){var t=this.headers,e=this.panels;this.headers=this.element.find(this.options.header),this._addClass(this.headers,"ui-accordion-header ui-accordion-header-collapsed","ui-state-default"),this.panels=this.headers.next().filter(":not(.ui-accordion-content-active)").hide(),this._addClass(this.panels,"ui-accordion-content","ui-helper-reset ui-widget-content"),e&&(this._off(t.not(this.headers)),this._off(e.not(this.panels)))},_refresh:function(){var e,i=this.options,s=i.heightStyle,n=this.element.parent();this.active=this._findActive(i.active),this._addClass(this.active,"ui-accordion-header-active","ui-state-active")._removeClass(this.active,"ui-accordion-header-collapsed"),this._addClass(this.active.next(),"ui-accordion-content-active"),this.active.next().show(),this.headers.attr("role","tab").each(function(){var e=t(this),i=e.uniqueId().attr("id"),s=e.next(),n=s.uniqueId().attr("id");e.attr("aria-controls",n),s.attr("aria-labelledby",i)}).next().attr("role","tabpanel"),this.headers.not(this.active).attr({"aria-selected":"false","aria-expanded":"false",tabIndex:-1}).next().attr({"aria-hidden":"true"}).hide(),this.active.length?this.active.attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0}).next().attr({"aria-hidden":"false"}):this.headers.eq(0).attr("tabIndex",0),this._createIcons(),this._setupEvents(i.event),"fill"===s?(e=n.height(),this.element.siblings(":visible").each(function(){var i=t(this),s=i.css("position");"absolute"!==s&&"fixed"!==s&&(e-=i.outerHeight(!0))}),this.headers.each(function(){e-=t(this).outerHeight(!0)}),this.headers.next().each(function(){t(this).height(Math.max(0,e-t(this).innerHeight()+t(this).height()))}).css("overflow","auto")):"auto"===s&&(e=0,this.headers.next().each(function(){var i=t(this).is(":visible");i||t(this).show(),e=Math.max(e,t(this).css("height","").height()),i||t(this).hide()}).height(e))},_activate:function(e){var i=this._findActive(e)[0];i!==this.active[0]&&(i=i||this.active[0],this._eventHandler({target:i,currentTarget:i,preventDefault:t.noop}))},_findActive:function(e){return"number"==typeof e?this.headers.eq(e):t()},_setupEvents:function(e){var i={keydown:"_keydown"};e&&t.each(e.split(" "),function(t,e){i[e]="_eventHandler"}),this._off(this.headers.add(this.headers.next())),this._on(this.headers,i),this._on(this.headers.next(),{keydown:"_panelKeyDown"}),this._hoverable(this.headers),this._focusable(this.headers)},_eventHandler:function(e){var i,s,n=this.options,o=this.active,a=t(e.currentTarget),r=a[0]===o[0],h=r&&n.collapsible,l=h?t():a.next(),c=o.next(),u={oldHeader:o,oldPanel:c,newHeader:h?t():a,newPanel:l};e.preventDefault(),r&&!n.collapsible||this._trigger("beforeActivate",e,u)===!1||(n.active=h?!1:this.headers.index(a),this.active=r?t():a,this._toggle(u),this._removeClass(o,"ui-accordion-header-active","ui-state-active"),n.icons&&(i=o.children(".ui-accordion-header-icon"),this._removeClass(i,null,n.icons.activeHeader)._addClass(i,null,n.icons.header)),r||(this._removeClass(a,"ui-accordion-header-collapsed")._addClass(a,"ui-accordion-header-active","ui-state-active"),n.icons&&(s=a.children(".ui-accordion-header-icon"),this._removeClass(s,null,n.icons.header)._addClass(s,null,n.icons.activeHeader)),this._addClass(a.next(),"ui-accordion-content-active")))},_toggle:function(e){var i=e.newPanel,s=this.prevShow.length?this.prevShow:e.oldPanel;this.prevShow.add(this.prevHide).stop(!0,!0),this.prevShow=i,this.prevHide=s,this.options.animate?this._animate(i,s,e):(s.hide(),i.show(),this._toggleComplete(e)),s.attr({"aria-hidden":"true"}),s.prev().attr({"aria-selected":"false","aria-expanded":"false"}),i.length&&s.length?s.prev().attr({tabIndex:-1,"aria-expanded":"false"}):i.length&&this.headers.filter(function(){return 0===parseInt(t(this).attr("tabIndex"),10)}).attr("tabIndex",-1),i.attr("aria-hidden","false").prev().attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0})},_animate:function(t,e,i){var s,n,o,a=this,r=0,h=t.css("box-sizing"),l=t.length&&(!e.length||t.index()<e.index()),c=this.options.animate||{},u=l&&c.down||c,d=function(){a._toggleComplete(i)};return"number"==typeof u&&(o=u),"string"==typeof u&&(n=u),n=n||u.easing||c.easing,o=o||u.duration||c.duration,e.length?t.length?(s=t.show().outerHeight(),e.animate(this.hideProps,{duration:o,easing:n,step:function(t,e){e.now=Math.round(t)}}),t.hide().animate(this.showProps,{duration:o,easing:n,complete:d,step:function(t,i){i.now=Math.round(t),"height"!==i.prop?"content-box"===h&&(r+=i.now):"content"!==a.options.heightStyle&&(i.now=Math.round(s-e.outerHeight()-r),r=0)}}),void 0):e.animate(this.hideProps,o,n,d):t.animate(this.showProps,o,n,d)},_toggleComplete:function(t){var e=t.oldPanel,i=e.prev();this._removeClass(e,"ui-accordion-content-active"),this._removeClass(i,"ui-accordion-header-active")._addClass(i,"ui-accordion-header-collapsed"),e.length&&(e.parent()[0].className=e.parent()[0].className),this._trigger("activate",null,t)}}),t.ui.safeActiveElement=function(t){var e;try{e=t.activeElement}catch(i){e=t.body}return e||(e=t.body),e.nodeName||(e=t.body),e},t.widget("ui.menu",{version:"1.12.1",defaultElement:"<ul>",delay:300,options:{icons:{submenu:"ui-icon-caret-1-e"},items:"> *",menus:"ul",position:{my:"left top",at:"right top"},role:"menu",blur:null,focus:null,select:null},_create:function(){this.activeMenu=this.element,this.mouseHandled=!1,this.element.uniqueId().attr({role:this.options.role,tabIndex:0}),this._addClass("ui-menu","ui-widget ui-widget-content"),this._on({"mousedown .ui-menu-item":function(t){t.preventDefault()},"click .ui-menu-item":function(e){var i=t(e.target),s=t(t.ui.safeActiveElement(this.document[0]));!this.mouseHandled&&i.not(".ui-state-disabled").length&&(this.select(e),e.isPropagationStopped()||(this.mouseHandled=!0),i.has(".ui-menu").length?this.expand(e):!this.element.is(":focus")&&s.closest(".ui-menu").length&&(this.element.trigger("focus",[!0]),this.active&&1===this.active.parents(".ui-menu").length&&clearTimeout(this.timer)))},"mouseenter .ui-menu-item":function(e){if(!this.previousFilter){var i=t(e.target).closest(".ui-menu-item"),s=t(e.currentTarget);i[0]===s[0]&&(this._removeClass(s.siblings().children(".ui-state-active"),null,"ui-state-active"),this.focus(e,s))}},mouseleave:"collapseAll","mouseleave .ui-menu":"collapseAll",focus:function(t,e){var i=this.active||this.element.find(this.options.items).eq(0);e||this.focus(t,i)},blur:function(e){this._delay(function(){var i=!t.contains(this.element[0],t.ui.safeActiveElement(this.document[0]));i&&this.collapseAll(e)})},keydown:"_keydown"}),this.refresh(),this._on(this.document,{click:function(t){this._closeOnDocumentClick(t)&&this.collapseAll(t),this.mouseHandled=!1}})},_destroy:function(){var e=this.element.find(".ui-menu-item").removeAttr("role aria-disabled"),i=e.children(".ui-menu-item-wrapper").removeUniqueId().removeAttr("tabIndex role aria-haspopup");this.element.removeAttr("aria-activedescendant").find(".ui-menu").addBack().removeAttr("role aria-labelledby aria-expanded aria-hidden aria-disabled tabIndex").removeUniqueId().show(),i.children().each(function(){var e=t(this);e.data("ui-menu-submenu-caret")&&e.remove()})},_keydown:function(e){var i,s,n,o,a=!0;switch(e.keyCode){case t.ui.keyCode.PAGE_UP:this.previousPage(e);break;case t.ui.keyCode.PAGE_DOWN:this.nextPage(e);break;case t.ui.keyCode.HOME:this._move("first","first",e);break;case t.ui.keyCode.END:this._move("last","last",e);break;case t.ui.keyCode.UP:this.previous(e);break;case t.ui.keyCode.DOWN:this.next(e);break;case t.ui.keyCode.LEFT:this.collapse(e);break;case t.ui.keyCode.RIGHT:this.active&&!this.active.is(".ui-state-disabled")&&this.expand(e);break;case t.ui.keyCode.ENTER:case t.ui.keyCode.SPACE:this._activate(e);break;case t.ui.keyCode.ESCAPE:this.collapse(e);break;default:a=!1,s=this.previousFilter||"",o=!1,n=e.keyCode>=96&&105>=e.keyCode?""+(e.keyCode-96):String.fromCharCode(e.keyCode),clearTimeout(this.filterTimer),n===s?o=!0:n=s+n,i=this._filterMenuItems(n),i=o&&-1!==i.index(this.active.next())?this.active.nextAll(".ui-menu-item"):i,i.length||(n=String.fromCharCode(e.keyCode),i=this._filterMenuItems(n)),i.length?(this.focus(e,i),this.previousFilter=n,this.filterTimer=this._delay(function(){delete this.previousFilter},1e3)):delete this.previousFilter}a&&e.preventDefault()},_activate:function(t){this.active&&!this.active.is(".ui-state-disabled")&&(this.active.children("[aria-haspopup='true']").length?this.expand(t):this.select(t))},refresh:function(){var e,i,s,n,o,a=this,r=this.options.icons.submenu,h=this.element.find(this.options.menus);this._toggleClass("ui-menu-icons",null,!!this.element.find(".ui-icon").length),s=h.filter(":not(.ui-menu)").hide().attr({role:this.options.role,"aria-hidden":"true","aria-expanded":"false"}).each(function(){var e=t(this),i=e.prev(),s=t("<span>").data("ui-menu-submenu-caret",!0);a._addClass(s,"ui-menu-icon","ui-icon "+r),i.attr("aria-haspopup","true").prepend(s),e.attr("aria-labelledby",i.attr("id"))}),this._addClass(s,"ui-menu","ui-widget ui-widget-content ui-front"),e=h.add(this.element),i=e.find(this.options.items),i.not(".ui-menu-item").each(function(){var e=t(this);a._isDivider(e)&&a._addClass(e,"ui-menu-divider","ui-widget-content")}),n=i.not(".ui-menu-item, .ui-menu-divider"),o=n.children().not(".ui-menu").uniqueId().attr({tabIndex:-1,role:this._itemRole()}),this._addClass(n,"ui-menu-item")._addClass(o,"ui-menu-item-wrapper"),i.filter(".ui-state-disabled").attr("aria-disabled","true"),this.active&&!t.contains(this.element[0],this.active[0])&&this.blur()},_itemRole:function(){return{menu:"menuitem",listbox:"option"}[this.options.role]},_setOption:function(t,e){if("icons"===t){var i=this.element.find(".ui-menu-icon");this._removeClass(i,null,this.options.icons.submenu)._addClass(i,null,e.submenu)}this._super(t,e)},_setOptionDisabled:function(t){this._super(t),this.element.attr("aria-disabled",t+""),this._toggleClass(null,"ui-state-disabled",!!t)},focus:function(t,e){var i,s,n;this.blur(t,t&&"focus"===t.type),this._scrollIntoView(e),this.active=e.first(),s=this.active.children(".ui-menu-item-wrapper"),this._addClass(s,null,"ui-state-active"),this.options.role&&this.element.attr("aria-activedescendant",s.attr("id")),n=this.active.parent().closest(".ui-menu-item").children(".ui-menu-item-wrapper"),this._addClass(n,null,"ui-state-active"),t&&"keydown"===t.type?this._close():this.timer=this._delay(function(){this._close()},this.delay),i=e.children(".ui-menu"),i.length&&t&&/^mouse/.test(t.type)&&this._startOpening(i),this.activeMenu=e.parent(),this._trigger("focus",t,{item:e})},_scrollIntoView:function(e){var i,s,n,o,a,r;this._hasScroll()&&(i=parseFloat(t.css(this.activeMenu[0],"borderTopWidth"))||0,s=parseFloat(t.css(this.activeMenu[0],"paddingTop"))||0,n=e.offset().top-this.activeMenu.offset().top-i-s,o=this.activeMenu.scrollTop(),a=this.activeMenu.height(),r=e.outerHeight(),0>n?this.activeMenu.scrollTop(o+n):n+r>a&&this.activeMenu.scrollTop(o+n-a+r))},blur:function(t,e){e||clearTimeout(this.timer),this.active&&(this._removeClass(this.active.children(".ui-menu-item-wrapper"),null,"ui-state-active"),this._trigger("blur",t,{item:this.active}),this.active=null)},_startOpening:function(t){clearTimeout(this.timer),"true"===t.attr("aria-hidden")&&(this.timer=this._delay(function(){this._close(),this._open(t)},this.delay))},_open:function(e){var i=t.extend({of:this.active},this.options.position);clearTimeout(this.timer),this.element.find(".ui-menu").not(e.parents(".ui-menu")).hide().attr("aria-hidden","true"),e.show().removeAttr("aria-hidden").attr("aria-expanded","true").position(i)},collapseAll:function(e,i){clearTimeout(this.timer),this.timer=this._delay(function(){var s=i?this.element:t(e&&e.target).closest(this.element.find(".ui-menu"));s.length||(s=this.element),this._close(s),this.blur(e),this._removeClass(s.find(".ui-state-active"),null,"ui-state-active"),this.activeMenu=s},this.delay)},_close:function(t){t||(t=this.active?this.active.parent():this.element),t.find(".ui-menu").hide().attr("aria-hidden","true").attr("aria-expanded","false")},_closeOnDocumentClick:function(e){return!t(e.target).closest(".ui-menu").length},_isDivider:function(t){return!/[^\-\u2014\u2013\s]/.test(t.text())},collapse:function(t){var e=this.active&&this.active.parent().closest(".ui-menu-item",this.element);e&&e.length&&(this._close(),this.focus(t,e))},expand:function(t){var e=this.active&&this.active.children(".ui-menu ").find(this.options.items).first();e&&e.length&&(this._open(e.parent()),this._delay(function(){this.focus(t,e)}))},next:function(t){this._move("next","first",t)},previous:function(t){this._move("prev","last",t)},isFirstItem:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},isLastItem:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},_move:function(t,e,i){var s;this.active&&(s="first"===t||"last"===t?this.active["first"===t?"prevAll":"nextAll"](".ui-menu-item").eq(-1):this.active[t+"All"](".ui-menu-item").eq(0)),s&&s.length&&this.active||(s=this.activeMenu.find(this.options.items)[e]()),this.focus(i,s)},nextPage:function(e){var i,s,n;return this.active?(this.isLastItem()||(this._hasScroll()?(s=this.active.offset().top,n=this.element.height(),this.active.nextAll(".ui-menu-item").each(function(){return i=t(this),0>i.offset().top-s-n}),this.focus(e,i)):this.focus(e,this.activeMenu.find(this.options.items)[this.active?"last":"first"]())),void 0):(this.next(e),void 0)},previousPage:function(e){var i,s,n;return this.active?(this.isFirstItem()||(this._hasScroll()?(s=this.active.offset().top,n=this.element.height(),this.active.prevAll(".ui-menu-item").each(function(){return i=t(this),i.offset().top-s+n>0}),this.focus(e,i)):this.focus(e,this.activeMenu.find(this.options.items).first())),void 0):(this.next(e),void 0)},_hasScroll:function(){return this.element.outerHeight()<this.element.prop("scrollHeight")},select:function(e){this.active=this.active||t(e.target).closest(".ui-menu-item");var i={item:this.active};this.active.has(".ui-menu").length||this.collapseAll(e,!0),this._trigger("select",e,i)},_filterMenuItems:function(e){var i=e.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&"),s=RegExp("^"+i,"i");return this.activeMenu.find(this.options.items).filter(".ui-menu-item").filter(function(){return s.test(t.trim(t(this).children(".ui-menu-item-wrapper").text()))})}}),t.widget("ui.autocomplete",{version:"1.12.1",defaultElement:"<input>",options:{appendTo:null,autoFocus:!1,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null,change:null,close:null,focus:null,open:null,response:null,search:null,select:null},requestIndex:0,pending:0,_create:function(){var e,i,s,n=this.element[0].nodeName.toLowerCase(),o="textarea"===n,a="input"===n;
-this.isMultiLine=o||!a&&this._isContentEditable(this.element),this.valueMethod=this.element[o||a?"val":"text"],this.isNewMenu=!0,this._addClass("ui-autocomplete-input"),this.element.attr("autocomplete","off"),this._on(this.element,{keydown:function(n){if(this.element.prop("readOnly"))return e=!0,s=!0,i=!0,void 0;e=!1,s=!1,i=!1;var o=t.ui.keyCode;switch(n.keyCode){case o.PAGE_UP:e=!0,this._move("previousPage",n);break;case o.PAGE_DOWN:e=!0,this._move("nextPage",n);break;case o.UP:e=!0,this._keyEvent("previous",n);break;case o.DOWN:e=!0,this._keyEvent("next",n);break;case o.ENTER:this.menu.active&&(e=!0,n.preventDefault(),this.menu.select(n));break;case o.TAB:this.menu.active&&this.menu.select(n);break;case o.ESCAPE:this.menu.element.is(":visible")&&(this.isMultiLine||this._value(this.term),this.close(n),n.preventDefault());break;default:i=!0,this._searchTimeout(n)}},keypress:function(s){if(e)return e=!1,(!this.isMultiLine||this.menu.element.is(":visible"))&&s.preventDefault(),void 0;if(!i){var n=t.ui.keyCode;switch(s.keyCode){case n.PAGE_UP:this._move("previousPage",s);break;case n.PAGE_DOWN:this._move("nextPage",s);break;case n.UP:this._keyEvent("previous",s);break;case n.DOWN:this._keyEvent("next",s)}}},input:function(t){return s?(s=!1,t.preventDefault(),void 0):(this._searchTimeout(t),void 0)},focus:function(){this.selectedItem=null,this.previous=this._value()},blur:function(t){return this.cancelBlur?(delete this.cancelBlur,void 0):(clearTimeout(this.searching),this.close(t),this._change(t),void 0)}}),this._initSource(),this.menu=t("<ul>").appendTo(this._appendTo()).menu({role:null}).hide().menu("instance"),this._addClass(this.menu.element,"ui-autocomplete","ui-front"),this._on(this.menu.element,{mousedown:function(e){e.preventDefault(),this.cancelBlur=!0,this._delay(function(){delete this.cancelBlur,this.element[0]!==t.ui.safeActiveElement(this.document[0])&&this.element.trigger("focus")})},menufocus:function(e,i){var s,n;return this.isNewMenu&&(this.isNewMenu=!1,e.originalEvent&&/^mouse/.test(e.originalEvent.type))?(this.menu.blur(),this.document.one("mousemove",function(){t(e.target).trigger(e.originalEvent)}),void 0):(n=i.item.data("ui-autocomplete-item"),!1!==this._trigger("focus",e,{item:n})&&e.originalEvent&&/^key/.test(e.originalEvent.type)&&this._value(n.value),s=i.item.attr("aria-label")||n.value,s&&t.trim(s).length&&(this.liveRegion.children().hide(),t("<div>").text(s).appendTo(this.liveRegion)),void 0)},menuselect:function(e,i){var s=i.item.data("ui-autocomplete-item"),n=this.previous;this.element[0]!==t.ui.safeActiveElement(this.document[0])&&(this.element.trigger("focus"),this.previous=n,this._delay(function(){this.previous=n,this.selectedItem=s})),!1!==this._trigger("select",e,{item:s})&&this._value(s.value),this.term=this._value(),this.close(e),this.selectedItem=s}}),this.liveRegion=t("<div>",{role:"status","aria-live":"assertive","aria-relevant":"additions"}).appendTo(this.document[0].body),this._addClass(this.liveRegion,null,"ui-helper-hidden-accessible"),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_destroy:function(){clearTimeout(this.searching),this.element.removeAttr("autocomplete"),this.menu.element.remove(),this.liveRegion.remove()},_setOption:function(t,e){this._super(t,e),"source"===t&&this._initSource(),"appendTo"===t&&this.menu.element.appendTo(this._appendTo()),"disabled"===t&&e&&this.xhr&&this.xhr.abort()},_isEventTargetInWidget:function(e){var i=this.menu.element[0];return e.target===this.element[0]||e.target===i||t.contains(i,e.target)},_closeOnClickOutside:function(t){this._isEventTargetInWidget(t)||this.close()},_appendTo:function(){var e=this.options.appendTo;return e&&(e=e.jquery||e.nodeType?t(e):this.document.find(e).eq(0)),e&&e[0]||(e=this.element.closest(".ui-front, dialog")),e.length||(e=this.document[0].body),e},_initSource:function(){var e,i,s=this;t.isArray(this.options.source)?(e=this.options.source,this.source=function(i,s){s(t.ui.autocomplete.filter(e,i.term))}):"string"==typeof this.options.source?(i=this.options.source,this.source=function(e,n){s.xhr&&s.xhr.abort(),s.xhr=t.ajax({url:i,data:e,dataType:"json",success:function(t){n(t)},error:function(){n([])}})}):this.source=this.options.source},_searchTimeout:function(t){clearTimeout(this.searching),this.searching=this._delay(function(){var e=this.term===this._value(),i=this.menu.element.is(":visible"),s=t.altKey||t.ctrlKey||t.metaKey||t.shiftKey;(!e||e&&!i&&!s)&&(this.selectedItem=null,this.search(null,t))},this.options.delay)},search:function(t,e){return t=null!=t?t:this._value(),this.term=this._value(),t.length<this.options.minLength?this.close(e):this._trigger("search",e)!==!1?this._search(t):void 0},_search:function(t){this.pending++,this._addClass("ui-autocomplete-loading"),this.cancelSearch=!1,this.source({term:t},this._response())},_response:function(){var e=++this.requestIndex;return t.proxy(function(t){e===this.requestIndex&&this.__response(t),this.pending--,this.pending||this._removeClass("ui-autocomplete-loading")},this)},__response:function(t){t&&(t=this._normalize(t)),this._trigger("response",null,{content:t}),!this.options.disabled&&t&&t.length&&!this.cancelSearch?(this._suggest(t),this._trigger("open")):this._close()},close:function(t){this.cancelSearch=!0,this._close(t)},_close:function(t){this._off(this.document,"mousedown"),this.menu.element.is(":visible")&&(this.menu.element.hide(),this.menu.blur(),this.isNewMenu=!0,this._trigger("close",t))},_change:function(t){this.previous!==this._value()&&this._trigger("change",t,{item:this.selectedItem})},_normalize:function(e){return e.length&&e[0].label&&e[0].value?e:t.map(e,function(e){return"string"==typeof e?{label:e,value:e}:t.extend({},e,{label:e.label||e.value,value:e.value||e.label})})},_suggest:function(e){var i=this.menu.element.empty();this._renderMenu(i,e),this.isNewMenu=!0,this.menu.refresh(),i.show(),this._resizeMenu(),i.position(t.extend({of:this.element},this.options.position)),this.options.autoFocus&&this.menu.next(),this._on(this.document,{mousedown:"_closeOnClickOutside"})},_resizeMenu:function(){var t=this.menu.element;t.outerWidth(Math.max(t.width("").outerWidth()+1,this.element.outerWidth()))},_renderMenu:function(e,i){var s=this;t.each(i,function(t,i){s._renderItemData(e,i)})},_renderItemData:function(t,e){return this._renderItem(t,e).data("ui-autocomplete-item",e)},_renderItem:function(e,i){return t("<li>").append(t("<div>").text(i.label)).appendTo(e)},_move:function(t,e){return this.menu.element.is(":visible")?this.menu.isFirstItem()&&/^previous/.test(t)||this.menu.isLastItem()&&/^next/.test(t)?(this.isMultiLine||this._value(this.term),this.menu.blur(),void 0):(this.menu[t](e),void 0):(this.search(null,e),void 0)},widget:function(){return this.menu.element},_value:function(){return this.valueMethod.apply(this.element,arguments)},_keyEvent:function(t,e){(!this.isMultiLine||this.menu.element.is(":visible"))&&(this._move(t,e),e.preventDefault())},_isContentEditable:function(t){if(!t.length)return!1;var e=t.prop("contentEditable");return"inherit"===e?this._isContentEditable(t.parent()):"true"===e}}),t.extend(t.ui.autocomplete,{escapeRegex:function(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")},filter:function(e,i){var s=RegExp(t.ui.autocomplete.escapeRegex(i),"i");return t.grep(e,function(t){return s.test(t.label||t.value||t)})}}),t.widget("ui.autocomplete",t.ui.autocomplete,{options:{messages:{noResults:"No search results.",results:function(t){return t+(t>1?" results are":" result is")+" available, use up and down arrow keys to navigate."}}},__response:function(e){var i;this._superApply(arguments),this.options.disabled||this.cancelSearch||(i=e&&e.length?this.options.messages.results(e.length):this.options.messages.noResults,this.liveRegion.children().hide(),t("<div>").text(i).appendTo(this.liveRegion))}}),t.ui.autocomplete;var g=/ui-corner-([a-z]){2,6}/g;t.widget("ui.controlgroup",{version:"1.12.1",defaultElement:"<div>",options:{direction:"horizontal",disabled:null,onlyVisible:!0,items:{button:"input[type=button], input[type=submit], input[type=reset], button, a",controlgroupLabel:".ui-controlgroup-label",checkboxradio:"input[type='checkbox'], input[type='radio']",selectmenu:"select",spinner:".ui-spinner-input"}},_create:function(){this._enhance()},_enhance:function(){this.element.attr("role","toolbar"),this.refresh()},_destroy:function(){this._callChildMethod("destroy"),this.childWidgets.removeData("ui-controlgroup-data"),this.element.removeAttr("role"),this.options.items.controlgroupLabel&&this.element.find(this.options.items.controlgroupLabel).find(".ui-controlgroup-label-contents").contents().unwrap()},_initWidgets:function(){var e=this,i=[];t.each(this.options.items,function(s,n){var o,a={};return n?"controlgroupLabel"===s?(o=e.element.find(n),o.each(function(){var e=t(this);e.children(".ui-controlgroup-label-contents").length||e.contents().wrapAll("<span class='ui-controlgroup-label-contents'></span>")}),e._addClass(o,null,"ui-widget ui-widget-content ui-state-default"),i=i.concat(o.get()),void 0):(t.fn[s]&&(a=e["_"+s+"Options"]?e["_"+s+"Options"]("middle"):{classes:{}},e.element.find(n).each(function(){var n=t(this),o=n[s]("instance"),r=t.widget.extend({},a);if("button"!==s||!n.parent(".ui-spinner").length){o||(o=n[s]()[s]("instance")),o&&(r.classes=e._resolveClassesValues(r.classes,o)),n[s](r);var h=n[s]("widget");t.data(h[0],"ui-controlgroup-data",o?o:n[s]("instance")),i.push(h[0])}})),void 0):void 0}),this.childWidgets=t(t.unique(i)),this._addClass(this.childWidgets,"ui-controlgroup-item")},_callChildMethod:function(e){this.childWidgets.each(function(){var i=t(this),s=i.data("ui-controlgroup-data");s&&s[e]&&s[e]()})},_updateCornerClass:function(t,e){var i="ui-corner-top ui-corner-bottom ui-corner-left ui-corner-right ui-corner-all",s=this._buildSimpleOptions(e,"label").classes.label;this._removeClass(t,null,i),this._addClass(t,null,s)},_buildSimpleOptions:function(t,e){var i="vertical"===this.options.direction,s={classes:{}};return s.classes[e]={middle:"",first:"ui-corner-"+(i?"top":"left"),last:"ui-corner-"+(i?"bottom":"right"),only:"ui-corner-all"}[t],s},_spinnerOptions:function(t){var e=this._buildSimpleOptions(t,"ui-spinner");return e.classes["ui-spinner-up"]="",e.classes["ui-spinner-down"]="",e},_buttonOptions:function(t){return this._buildSimpleOptions(t,"ui-button")},_checkboxradioOptions:function(t){return this._buildSimpleOptions(t,"ui-checkboxradio-label")},_selectmenuOptions:function(t){var e="vertical"===this.options.direction;return{width:e?"auto":!1,classes:{middle:{"ui-selectmenu-button-open":"","ui-selectmenu-button-closed":""},first:{"ui-selectmenu-button-open":"ui-corner-"+(e?"top":"tl"),"ui-selectmenu-button-closed":"ui-corner-"+(e?"top":"left")},last:{"ui-selectmenu-button-open":e?"":"ui-corner-tr","ui-selectmenu-button-closed":"ui-corner-"+(e?"bottom":"right")},only:{"ui-selectmenu-button-open":"ui-corner-top","ui-selectmenu-button-closed":"ui-corner-all"}}[t]}},_resolveClassesValues:function(e,i){var s={};return t.each(e,function(n){var o=i.options.classes[n]||"";o=t.trim(o.replace(g,"")),s[n]=(o+" "+e[n]).replace(/\s+/g," ")}),s},_setOption:function(t,e){return"direction"===t&&this._removeClass("ui-controlgroup-"+this.options.direction),this._super(t,e),"disabled"===t?(this._callChildMethod(e?"disable":"enable"),void 0):(this.refresh(),void 0)},refresh:function(){var e,i=this;this._addClass("ui-controlgroup ui-controlgroup-"+this.options.direction),"horizontal"===this.options.direction&&this._addClass(null,"ui-helper-clearfix"),this._initWidgets(),e=this.childWidgets,this.options.onlyVisible&&(e=e.filter(":visible")),e.length&&(t.each(["first","last"],function(t,s){var n=e[s]().data("ui-controlgroup-data");if(n&&i["_"+n.widgetName+"Options"]){var o=i["_"+n.widgetName+"Options"](1===e.length?"only":s);o.classes=i._resolveClassesValues(o.classes,n),n.element[n.widgetName](o)}else i._updateCornerClass(e[s](),s)}),this._callChildMethod("refresh"))}}),t.widget("ui.checkboxradio",[t.ui.formResetMixin,{version:"1.12.1",options:{disabled:null,label:null,icon:!0,classes:{"ui-checkboxradio-label":"ui-corner-all","ui-checkboxradio-icon":"ui-corner-all"}},_getCreateOptions:function(){var e,i,s=this,n=this._super()||{};return this._readType(),i=this.element.labels(),this.label=t(i[i.length-1]),this.label.length||t.error("No label found for checkboxradio widget"),this.originalLabel="",this.label.contents().not(this.element[0]).each(function(){s.originalLabel+=3===this.nodeType?t(this).text():this.outerHTML}),this.originalLabel&&(n.label=this.originalLabel),e=this.element[0].disabled,null!=e&&(n.disabled=e),n},_create:function(){var t=this.element[0].checked;this._bindFormResetHandler(),null==this.options.disabled&&(this.options.disabled=this.element[0].disabled),this._setOption("disabled",this.options.disabled),this._addClass("ui-checkboxradio","ui-helper-hidden-accessible"),this._addClass(this.label,"ui-checkboxradio-label","ui-button ui-widget"),"radio"===this.type&&this._addClass(this.label,"ui-checkboxradio-radio-label"),this.options.label&&this.options.label!==this.originalLabel?this._updateLabel():this.originalLabel&&(this.options.label=this.originalLabel),this._enhance(),t&&(this._addClass(this.label,"ui-checkboxradio-checked","ui-state-active"),this.icon&&this._addClass(this.icon,null,"ui-state-hover")),this._on({change:"_toggleClasses",focus:function(){this._addClass(this.label,null,"ui-state-focus ui-visual-focus")},blur:function(){this._removeClass(this.label,null,"ui-state-focus ui-visual-focus")}})},_readType:function(){var e=this.element[0].nodeName.toLowerCase();this.type=this.element[0].type,"input"===e&&/radio|checkbox/.test(this.type)||t.error("Can't create checkboxradio on element.nodeName="+e+" and element.type="+this.type)},_enhance:function(){this._updateIcon(this.element[0].checked)},widget:function(){return this.label},_getRadioGroup:function(){var e,i=this.element[0].name,s="input[name='"+t.ui.escapeSelector(i)+"']";return i?(e=this.form.length?t(this.form[0].elements).filter(s):t(s).filter(function(){return 0===t(this).form().length}),e.not(this.element)):t([])},_toggleClasses:function(){var e=this.element[0].checked;this._toggleClass(this.label,"ui-checkboxradio-checked","ui-state-active",e),this.options.icon&&"checkbox"===this.type&&this._toggleClass(this.icon,null,"ui-icon-check ui-state-checked",e)._toggleClass(this.icon,null,"ui-icon-blank",!e),"radio"===this.type&&this._getRadioGroup().each(function(){var e=t(this).checkboxradio("instance");e&&e._removeClass(e.label,"ui-checkboxradio-checked","ui-state-active")})},_destroy:function(){this._unbindFormResetHandler(),this.icon&&(this.icon.remove(),this.iconSpace.remove())},_setOption:function(t,e){return"label"!==t||e?(this._super(t,e),"disabled"===t?(this._toggleClass(this.label,null,"ui-state-disabled",e),this.element[0].disabled=e,void 0):(this.refresh(),void 0)):void 0},_updateIcon:function(e){var i="ui-icon ui-icon-background ";this.options.icon?(this.icon||(this.icon=t("<span>"),this.iconSpace=t("<span> </span>"),this._addClass(this.iconSpace,"ui-checkboxradio-icon-space")),"checkbox"===this.type?(i+=e?"ui-icon-check ui-state-checked":"ui-icon-blank",this._removeClass(this.icon,null,e?"ui-icon-blank":"ui-icon-check")):i+="ui-icon-blank",this._addClass(this.icon,"ui-checkboxradio-icon",i),e||this._removeClass(this.icon,null,"ui-icon-check ui-state-checked"),this.icon.prependTo(this.label).after(this.iconSpace)):void 0!==this.icon&&(this.icon.remove(),this.iconSpace.remove(),delete this.icon)},_updateLabel:function(){var t=this.label.contents().not(this.element[0]);this.icon&&(t=t.not(this.icon[0])),this.iconSpace&&(t=t.not(this.iconSpace[0])),t.remove(),this.label.append(this.options.label)},refresh:function(){var t=this.element[0].checked,e=this.element[0].disabled;this._updateIcon(t),this._toggleClass(this.label,"ui-checkboxradio-checked","ui-state-active",t),null!==this.options.label&&this._updateLabel(),e!==this.options.disabled&&this._setOptions({disabled:e})}}]),t.ui.checkboxradio,t.widget("ui.button",{version:"1.12.1",defaultElement:"<button>",options:{classes:{"ui-button":"ui-corner-all"},disabled:null,icon:null,iconPosition:"beginning",label:null,showLabel:!0},_getCreateOptions:function(){var t,e=this._super()||{};return this.isInput=this.element.is("input"),t=this.element[0].disabled,null!=t&&(e.disabled=t),this.originalLabel=this.isInput?this.element.val():this.element.html(),this.originalLabel&&(e.label=this.originalLabel),e},_create:function(){!this.option.showLabel&!this.options.icon&&(this.options.showLabel=!0),null==this.options.disabled&&(this.options.disabled=this.element[0].disabled||!1),this.hasTitle=!!this.element.attr("title"),this.options.label&&this.options.label!==this.originalLabel&&(this.isInput?this.element.val(this.options.label):this.element.html(this.options.label)),this._addClass("ui-button","ui-widget"),this._setOption("disabled",this.options.disabled),this._enhance(),this.element.is("a")&&this._on({keyup:function(e){e.keyCode===t.ui.keyCode.SPACE&&(e.preventDefault(),this.element[0].click?this.element[0].click():this.element.trigger("click"))}})},_enhance:function(){this.element.is("button")||this.element.attr("role","button"),this.options.icon&&(this._updateIcon("icon",this.options.icon),this._updateTooltip())},_updateTooltip:function(){this.title=this.element.attr("title"),this.options.showLabel||this.title||this.element.attr("title",this.options.label)},_updateIcon:function(e,i){var s="iconPosition"!==e,n=s?this.options.iconPosition:i,o="top"===n||"bottom"===n;this.icon?s&&this._removeClass(this.icon,null,this.options.icon):(this.icon=t("<span>"),this._addClass(this.icon,"ui-button-icon","ui-icon"),this.options.showLabel||this._addClass("ui-button-icon-only")),s&&this._addClass(this.icon,null,i),this._attachIcon(n),o?(this._addClass(this.icon,null,"ui-widget-icon-block"),this.iconSpace&&this.iconSpace.remove()):(this.iconSpace||(this.iconSpace=t("<span> </span>"),this._addClass(this.iconSpace,"ui-button-icon-space")),this._removeClass(this.icon,null,"ui-wiget-icon-block"),this._attachIconSpace(n))},_destroy:function(){this.element.removeAttr("role"),this.icon&&this.icon.remove(),this.iconSpace&&this.iconSpace.remove(),this.hasTitle||this.element.removeAttr("title")},_attachIconSpace:function(t){this.icon[/^(?:end|bottom)/.test(t)?"before":"after"](this.iconSpace)},_attachIcon:function(t){this.element[/^(?:end|bottom)/.test(t)?"append":"prepend"](this.icon)},_setOptions:function(t){var e=void 0===t.showLabel?this.options.showLabel:t.showLabel,i=void 0===t.icon?this.options.icon:t.icon;e||i||(t.showLabel=!0),this._super(t)},_setOption:function(t,e){"icon"===t&&(e?this._updateIcon(t,e):this.icon&&(this.icon.remove(),this.iconSpace&&this.iconSpace.remove())),"iconPosition"===t&&this._updateIcon(t,e),"showLabel"===t&&(this._toggleClass("ui-button-icon-only",null,!e),this._updateTooltip()),"label"===t&&(this.isInput?this.element.val(e):(this.element.html(e),this.icon&&(this._attachIcon(this.options.iconPosition),this._attachIconSpace(this.options.iconPosition)))),this._super(t,e),"disabled"===t&&(this._toggleClass(null,"ui-state-disabled",e),this.element[0].disabled=e,e&&this.element.blur())},refresh:function(){var t=this.element.is("input, button")?this.element[0].disabled:this.element.hasClass("ui-button-disabled");t!==this.options.disabled&&this._setOptions({disabled:t}),this._updateTooltip()}}),t.uiBackCompat!==!1&&(t.widget("ui.button",t.ui.button,{options:{text:!0,icons:{primary:null,secondary:null}},_create:function(){this.options.showLabel&&!this.options.text&&(this.options.showLabel=this.options.text),!this.options.showLabel&&this.options.text&&(this.options.text=this.options.showLabel),this.options.icon||!this.options.icons.primary&&!this.options.icons.secondary?this.options.icon&&(this.options.icons.primary=this.options.icon):this.options.icons.primary?this.options.icon=this.options.icons.primary:(this.options.icon=this.options.icons.secondary,this.options.iconPosition="end"),this._super()},_setOption:function(t,e){return"text"===t?(this._super("showLabel",e),void 0):("showLabel"===t&&(this.options.text=e),"icon"===t&&(this.options.icons.primary=e),"icons"===t&&(e.primary?(this._super("icon",e.primary),this._super("iconPosition","beginning")):e.secondary&&(this._super("icon",e.secondary),this._super("iconPosition","end"))),this._superApply(arguments),void 0)}}),t.fn.button=function(e){return function(){return!this.length||this.length&&"INPUT"!==this[0].tagName||this.length&&"INPUT"===this[0].tagName&&"checkbox"!==this.attr("type")&&"radio"!==this.attr("type")?e.apply(this,arguments):(t.ui.checkboxradio||t.error("Checkboxradio widget missing"),0===arguments.length?this.checkboxradio({icon:!1}):this.checkboxradio.apply(this,arguments))}}(t.fn.button),t.fn.buttonset=function(){return t.ui.controlgroup||t.error("Controlgroup widget missing"),"option"===arguments[0]&&"items"===arguments[1]&&arguments[2]?this.controlgroup.apply(this,[arguments[0],"items.button",arguments[2]]):"option"===arguments[0]&&"items"===arguments[1]?this.controlgroup.apply(this,[arguments[0],"items.button"]):("object"==typeof arguments[0]&&arguments[0].items&&(arguments[0].items={button:arguments[0].items}),this.controlgroup.apply(this,arguments))}),t.ui.button,t.extend(t.ui,{datepicker:{version:"1.12.1"}});var m;t.extend(s.prototype,{markerClassName:"hasDatepicker",maxRows:4,_widgetDatepicker:function(){return this.dpDiv},setDefaults:function(t){return a(this._defaults,t||{}),this},_attachDatepicker:function(e,i){var s,n,o;s=e.nodeName.toLowerCase(),n="div"===s||"span"===s,e.id||(this.uuid+=1,e.id="dp"+this.uuid),o=this._newInst(t(e),n),o.settings=t.extend({},i||{}),"input"===s?this._connectDatepicker(e,o):n&&this._inlineDatepicker(e,o)},_newInst:function(e,i){var s=e[0].id.replace(/([^A-Za-z0-9_\-])/g,"\\\\$1");return{id:s,input:e,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:i,dpDiv:i?n(t("<div class='"+this._inlineClass+" ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>")):this.dpDiv}},_connectDatepicker:function(e,i){var s=t(e);i.append=t([]),i.trigger=t([]),s.hasClass(this.markerClassName)||(this._attachments(s,i),s.addClass(this.markerClassName).on("keydown",this._doKeyDown).on("keypress",this._doKeyPress).on("keyup",this._doKeyUp),this._autoSize(i),t.data(e,"datepicker",i),i.settings.disabled&&this._disableDatepicker(e))},_attachments:function(e,i){var s,n,o,a=this._get(i,"appendText"),r=this._get(i,"isRTL");i.append&&i.append.remove(),a&&(i.append=t("<span class='"+this._appendClass+"'>"+a+"</span>"),e[r?"before":"after"](i.append)),e.off("focus",this._showDatepicker),i.trigger&&i.trigger.remove(),s=this._get(i,"showOn"),("focus"===s||"both"===s)&&e.on("focus",this._showDatepicker),("button"===s||"both"===s)&&(n=this._get(i,"buttonText"),o=this._get(i,"buttonImage"),i.trigger=t(this._get(i,"buttonImageOnly")?t("<img/>").addClass(this._triggerClass).attr({src:o,alt:n,title:n}):t("<button type='button'></button>").addClass(this._triggerClass).html(o?t("<img/>").attr({src:o,alt:n,title:n}):n)),e[r?"before":"after"](i.trigger),i.trigger.on("click",function(){return t.datepicker._datepickerShowing&&t.datepicker._lastInput===e[0]?t.datepicker._hideDatepicker():t.datepicker._datepickerShowing&&t.datepicker._lastInput!==e[0]?(t.datepicker._hideDatepicker(),t.datepicker._showDatepicker(e[0])):t.datepicker._showDatepicker(e[0]),!1}))},_autoSize:function(t){if(this._get(t,"autoSize")&&!t.inline){var e,i,s,n,o=new Date(2009,11,20),a=this._get(t,"dateFormat");a.match(/[DM]/)&&(e=function(t){for(i=0,s=0,n=0;t.length>n;n++)t[n].length>i&&(i=t[n].length,s=n);return s},o.setMonth(e(this._get(t,a.match(/MM/)?"monthNames":"monthNamesShort"))),o.setDate(e(this._get(t,a.match(/DD/)?"dayNames":"dayNamesShort"))+20-o.getDay())),t.input.attr("size",this._formatDate(t,o).length)}},_inlineDatepicker:function(e,i){var s=t(e);s.hasClass(this.markerClassName)||(s.addClass(this.markerClassName).append(i.dpDiv),t.data(e,"datepicker",i),this._setDate(i,this._getDefaultDate(i),!0),this._updateDatepicker(i),this._updateAlternate(i),i.settings.disabled&&this._disableDatepicker(e),i.dpDiv.css("display","block"))},_dialogDatepicker:function(e,i,s,n,o){var r,h,l,c,u,d=this._dialogInst;return d||(this.uuid+=1,r="dp"+this.uuid,this._dialogInput=t("<input type='text' id='"+r+"' style='position: absolute; top: -100px; width: 0px;'/>"),this._dialogInput.on("keydown",this._doKeyDown),t("body").append(this._dialogInput),d=this._dialogInst=this._newInst(this._dialogInput,!1),d.settings={},t.data(this._dialogInput[0],"datepicker",d)),a(d.settings,n||{}),i=i&&i.constructor===Date?this._formatDate(d,i):i,this._dialogInput.val(i),this._pos=o?o.length?o:[o.pageX,o.pageY]:null,this._pos||(h=document.documentElement.clientWidth,l=document.documentElement.clientHeight,c=document.documentElement.scrollLeft||document.body.scrollLeft,u=document.documentElement.scrollTop||document.body.scrollTop,this._pos=[h/2-100+c,l/2-150+u]),this._dialogInput.css("left",this._pos[0]+20+"px").css("top",this._pos[1]+"px"),d.settings.onSelect=s,this._inDialog=!0,this.dpDiv.addClass(this._dialogClass),this._showDatepicker(this._dialogInput[0]),t.blockUI&&t.blockUI(this.dpDiv),t.data(this._dialogInput[0],"datepicker",d),this},_destroyDatepicker:function(e){var i,s=t(e),n=t.data(e,"datepicker");s.hasClass(this.markerClassName)&&(i=e.nodeName.toLowerCase(),t.removeData(e,"datepicker"),"input"===i?(n.append.remove(),n.trigger.remove(),s.removeClass(this.markerClassName).off("focus",this._showDatepicker).off("keydown",this._doKeyDown).off("keypress",this._doKeyPress).off("keyup",this._doKeyUp)):("div"===i||"span"===i)&&s.removeClass(this.markerClassName).empty(),m===n&&(m=null))},_enableDatepicker:function(e){var i,s,n=t(e),o=t.data(e,"datepicker");n.hasClass(this.markerClassName)&&(i=e.nodeName.toLowerCase(),"input"===i?(e.disabled=!1,o.trigger.filter("button").each(function(){this.disabled=!1}).end().filter("img").css({opacity:"1.0",cursor:""})):("div"===i||"span"===i)&&(s=n.children("."+this._inlineClass),s.children().removeClass("ui-state-disabled"),s.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled",!1)),this._disabledInputs=t.map(this._disabledInputs,function(t){return t===e?null:t}))},_disableDatepicker:function(e){var i,s,n=t(e),o=t.data(e,"datepicker");n.hasClass(this.markerClassName)&&(i=e.nodeName.toLowerCase(),"input"===i?(e.disabled=!0,o.trigger.filter("button").each(function(){this.disabled=!0}).end().filter("img").css({opacity:"0.5",cursor:"default"})):("div"===i||"span"===i)&&(s=n.children("."+this._inlineClass),s.children().addClass("ui-state-disabled"),s.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled",!0)),this._disabledInputs=t.map(this._disabledInputs,function(t){return t===e?null:t}),this._disabledInputs[this._disabledInputs.length]=e)},_isDisabledDatepicker:function(t){if(!t)return!1;for(var e=0;this._disabledInputs.length>e;e++)if(this._disabledInputs[e]===t)return!0;return!1},_getInst:function(e){try{return t.data(e,"datepicker")}catch(i){throw"Missing instance data for this datepicker"}},_optionDatepicker:function(e,i,s){var n,o,r,h,l=this._getInst(e);return 2===arguments.length&&"string"==typeof i?"defaults"===i?t.extend({},t.datepicker._defaults):l?"all"===i?t.extend({},l.settings):this._get(l,i):null:(n=i||{},"string"==typeof i&&(n={},n[i]=s),l&&(this._curInst===l&&this._hideDatepicker(),o=this._getDateDatepicker(e,!0),r=this._getMinMaxDate(l,"min"),h=this._getMinMaxDate(l,"max"),a(l.settings,n),null!==r&&void 0!==n.dateFormat&&void 0===n.minDate&&(l.settings.minDate=this._formatDate(l,r)),null!==h&&void 0!==n.dateFormat&&void 0===n.maxDate&&(l.settings.maxDate=this._formatDate(l,h)),"disabled"in n&&(n.disabled?this._disableDatepicker(e):this._enableDatepicker(e)),this._attachments(t(e),l),this._autoSize(l),this._setDate(l,o),this._updateAlternate(l),this._updateDatepicker(l)),void 0)},_changeDatepicker:function(t,e,i){this._optionDatepicker(t,e,i)},_refreshDatepicker:function(t){var e=this._getInst(t);e&&this._updateDatepicker(e)},_setDateDatepicker:function(t,e){var i=this._getInst(t);i&&(this._setDate(i,e),this._updateDatepicker(i),this._updateAlternate(i))},_getDateDatepicker:function(t,e){var i=this._getInst(t);return i&&!i.inline&&this._setDateFromField(i,e),i?this._getDate(i):null},_doKeyDown:function(e){var i,s,n,o=t.datepicker._getInst(e.target),a=!0,r=o.dpDiv.is(".ui-datepicker-rtl");if(o._keyEvent=!0,t.datepicker._datepickerShowing)switch(e.keyCode){case 9:t.datepicker._hideDatepicker(),a=!1;break;case 13:return n=t("td."+t.datepicker._dayOverClass+":not(."+t.datepicker._currentClass+")",o.dpDiv),n[0]&&t.datepicker._selectDay(e.target,o.selectedMonth,o.selectedYear,n[0]),i=t.datepicker._get(o,"onSelect"),i?(s=t.datepicker._formatDate(o),i.apply(o.input?o.input[0]:null,[s,o])):t.datepicker._hideDatepicker(),!1;case 27:t.datepicker._hideDatepicker();break;case 33:t.datepicker._adjustDate(e.target,e.ctrlKey?-t.datepicker._get(o,"stepBigMonths"):-t.datepicker._get(o,"stepMonths"),"M");break;case 34:t.datepicker._adjustDate(e.target,e.ctrlKey?+t.datepicker._get(o,"stepBigMonths"):+t.datepicker._get(o,"stepMonths"),"M");break;case 35:(e.ctrlKey||e.metaKey)&&t.datepicker._clearDate(e.target),a=e.ctrlKey||e.metaKey;break;case 36:(e.ctrlKey||e.metaKey)&&t.datepicker._gotoToday(e.target),a=e.ctrlKey||e.metaKey;break;case 37:(e.ctrlKey||e.metaKey)&&t.datepicker._adjustDate(e.target,r?1:-1,"D"),a=e.ctrlKey||e.metaKey,e.originalEvent.altKey&&t.datepicker._adjustDate(e.target,e.ctrlKey?-t.datepicker._get(o,"stepBigMonths"):-t.datepicker._get(o,"stepMonths"),"M");break;case 38:(e.ctrlKey||e.metaKey)&&t.datepicker._adjustDate(e.target,-7,"D"),a=e.ctrlKey||e.metaKey;break;case 39:(e.ctrlKey||e.metaKey)&&t.datepicker._adjustDate(e.target,r?-1:1,"D"),a=e.ctrlKey||e.metaKey,e.originalEvent.altKey&&t.datepicker._adjustDate(e.target,e.ctrlKey?+t.datepicker._get(o,"stepBigMonths"):+t.datepicker._get(o,"stepMonths"),"M");break;case 40:(e.ctrlKey||e.metaKey)&&t.datepicker._adjustDate(e.target,7,"D"),a=e.ctrlKey||e.metaKey;break;default:a=!1}else 36===e.keyCode&&e.ctrlKey?t.datepicker._showDatepicker(this):a=!1;a&&(e.preventDefault(),e.stopPropagation())},_doKeyPress:function(e){var i,s,n=t.datepicker._getInst(e.target);return t.datepicker._get(n,"constrainInput")?(i=t.datepicker._possibleChars(t.datepicker._get(n,"dateFormat")),s=String.fromCharCode(null==e.charCode?e.keyCode:e.charCode),e.ctrlKey||e.metaKey||" ">s||!i||i.indexOf(s)>-1):void 0},_doKeyUp:function(e){var i,s=t.datepicker._getInst(e.target);if(s.input.val()!==s.lastVal)try{i=t.datepicker.parseDate(t.datepicker._get(s,"dateFormat"),s.input?s.input.val():null,t.datepicker._getFormatConfig(s)),i&&(t.datepicker._setDateFromField(s),t.datepicker._updateAlternate(s),t.datepicker._updateDatepicker(s))}catch(n){}return!0},_showDatepicker:function(e){if(e=e.target||e,"input"!==e.nodeName.toLowerCase()&&(e=t("input",e.parentNode)[0]),!t.datepicker._isDisabledDatepicker(e)&&t.datepicker._lastInput!==e){var s,n,o,r,h,l,c;s=t.datepicker._getInst(e),t.datepicker._curInst&&t.datepicker._curInst!==s&&(t.datepicker._curInst.dpDiv.stop(!0,!0),s&&t.datepicker._datepickerShowing&&t.datepicker._hideDatepicker(t.datepicker._curInst.input[0])),n=t.datepicker._get(s,"beforeShow"),o=n?n.apply(e,[e,s]):{},o!==!1&&(a(s.settings,o),s.lastVal=null,t.datepicker._lastInput=e,t.datepicker._setDateFromField(s),t.datepicker._inDialog&&(e.value=""),t.datepicker._pos||(t.datepicker._pos=t.datepicker._findPos(e),t.datepicker._pos[1]+=e.offsetHeight),r=!1,t(e).parents().each(function(){return r|="fixed"===t(this).css("position"),!r}),h={left:t.datepicker._pos[0],top:t.datepicker._pos[1]},t.datepicker._pos=null,s.dpDiv.empty(),s.dpDiv.css({position:"absolute",display:"block",top:"-1000px"}),t.datepicker._updateDatepicker(s),h=t.datepicker._checkOffset(s,h,r),s.dpDiv.css({position:t.datepicker._inDialog&&t.blockUI?"static":r?"fixed":"absolute",display:"none",left:h.left+"px",top:h.top+"px"}),s.inline||(l=t.datepicker._get(s,"showAnim"),c=t.datepicker._get(s,"duration"),s.dpDiv.css("z-index",i(t(e))+1),t.datepicker._datepickerShowing=!0,t.effects&&t.effects.effect[l]?s.dpDiv.show(l,t.datepicker._get(s,"showOptions"),c):s.dpDiv[l||"show"](l?c:null),t.datepicker._shouldFocusInput(s)&&s.input.trigger("focus"),t.datepicker._curInst=s))
-}},_updateDatepicker:function(e){this.maxRows=4,m=e,e.dpDiv.empty().append(this._generateHTML(e)),this._attachHandlers(e);var i,s=this._getNumberOfMonths(e),n=s[1],a=17,r=e.dpDiv.find("."+this._dayOverClass+" a");r.length>0&&o.apply(r.get(0)),e.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width(""),n>1&&e.dpDiv.addClass("ui-datepicker-multi-"+n).css("width",a*n+"em"),e.dpDiv[(1!==s[0]||1!==s[1]?"add":"remove")+"Class"]("ui-datepicker-multi"),e.dpDiv[(this._get(e,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl"),e===t.datepicker._curInst&&t.datepicker._datepickerShowing&&t.datepicker._shouldFocusInput(e)&&e.input.trigger("focus"),e.yearshtml&&(i=e.yearshtml,setTimeout(function(){i===e.yearshtml&&e.yearshtml&&e.dpDiv.find("select.ui-datepicker-year:first").replaceWith(e.yearshtml),i=e.yearshtml=null},0))},_shouldFocusInput:function(t){return t.input&&t.input.is(":visible")&&!t.input.is(":disabled")&&!t.input.is(":focus")},_checkOffset:function(e,i,s){var n=e.dpDiv.outerWidth(),o=e.dpDiv.outerHeight(),a=e.input?e.input.outerWidth():0,r=e.input?e.input.outerHeight():0,h=document.documentElement.clientWidth+(s?0:t(document).scrollLeft()),l=document.documentElement.clientHeight+(s?0:t(document).scrollTop());return i.left-=this._get(e,"isRTL")?n-a:0,i.left-=s&&i.left===e.input.offset().left?t(document).scrollLeft():0,i.top-=s&&i.top===e.input.offset().top+r?t(document).scrollTop():0,i.left-=Math.min(i.left,i.left+n>h&&h>n?Math.abs(i.left+n-h):0),i.top-=Math.min(i.top,i.top+o>l&&l>o?Math.abs(o+r):0),i},_findPos:function(e){for(var i,s=this._getInst(e),n=this._get(s,"isRTL");e&&("hidden"===e.type||1!==e.nodeType||t.expr.filters.hidden(e));)e=e[n?"previousSibling":"nextSibling"];return i=t(e).offset(),[i.left,i.top]},_hideDatepicker:function(e){var i,s,n,o,a=this._curInst;!a||e&&a!==t.data(e,"datepicker")||this._datepickerShowing&&(i=this._get(a,"showAnim"),s=this._get(a,"duration"),n=function(){t.datepicker._tidyDialog(a)},t.effects&&(t.effects.effect[i]||t.effects[i])?a.dpDiv.hide(i,t.datepicker._get(a,"showOptions"),s,n):a.dpDiv["slideDown"===i?"slideUp":"fadeIn"===i?"fadeOut":"hide"](i?s:null,n),i||n(),this._datepickerShowing=!1,o=this._get(a,"onClose"),o&&o.apply(a.input?a.input[0]:null,[a.input?a.input.val():"",a]),this._lastInput=null,this._inDialog&&(this._dialogInput.css({position:"absolute",left:"0",top:"-100px"}),t.blockUI&&(t.unblockUI(),t("body").append(this.dpDiv))),this._inDialog=!1)},_tidyDialog:function(t){t.dpDiv.removeClass(this._dialogClass).off(".ui-datepicker-calendar")},_checkExternalClick:function(e){if(t.datepicker._curInst){var i=t(e.target),s=t.datepicker._getInst(i[0]);(i[0].id!==t.datepicker._mainDivId&&0===i.parents("#"+t.datepicker._mainDivId).length&&!i.hasClass(t.datepicker.markerClassName)&&!i.closest("."+t.datepicker._triggerClass).length&&t.datepicker._datepickerShowing&&(!t.datepicker._inDialog||!t.blockUI)||i.hasClass(t.datepicker.markerClassName)&&t.datepicker._curInst!==s)&&t.datepicker._hideDatepicker()}},_adjustDate:function(e,i,s){var n=t(e),o=this._getInst(n[0]);this._isDisabledDatepicker(n[0])||(this._adjustInstDate(o,i+("M"===s?this._get(o,"showCurrentAtPos"):0),s),this._updateDatepicker(o))},_gotoToday:function(e){var i,s=t(e),n=this._getInst(s[0]);this._get(n,"gotoCurrent")&&n.currentDay?(n.selectedDay=n.currentDay,n.drawMonth=n.selectedMonth=n.currentMonth,n.drawYear=n.selectedYear=n.currentYear):(i=new Date,n.selectedDay=i.getDate(),n.drawMonth=n.selectedMonth=i.getMonth(),n.drawYear=n.selectedYear=i.getFullYear()),this._notifyChange(n),this._adjustDate(s)},_selectMonthYear:function(e,i,s){var n=t(e),o=this._getInst(n[0]);o["selected"+("M"===s?"Month":"Year")]=o["draw"+("M"===s?"Month":"Year")]=parseInt(i.options[i.selectedIndex].value,10),this._notifyChange(o),this._adjustDate(n)},_selectDay:function(e,i,s,n){var o,a=t(e);t(n).hasClass(this._unselectableClass)||this._isDisabledDatepicker(a[0])||(o=this._getInst(a[0]),o.selectedDay=o.currentDay=t("a",n).html(),o.selectedMonth=o.currentMonth=i,o.selectedYear=o.currentYear=s,this._selectDate(e,this._formatDate(o,o.currentDay,o.currentMonth,o.currentYear)))},_clearDate:function(e){var i=t(e);this._selectDate(i,"")},_selectDate:function(e,i){var s,n=t(e),o=this._getInst(n[0]);i=null!=i?i:this._formatDate(o),o.input&&o.input.val(i),this._updateAlternate(o),s=this._get(o,"onSelect"),s?s.apply(o.input?o.input[0]:null,[i,o]):o.input&&o.input.trigger("change"),o.inline?this._updateDatepicker(o):(this._hideDatepicker(),this._lastInput=o.input[0],"object"!=typeof o.input[0]&&o.input.trigger("focus"),this._lastInput=null)},_updateAlternate:function(e){var i,s,n,o=this._get(e,"altField");o&&(i=this._get(e,"altFormat")||this._get(e,"dateFormat"),s=this._getDate(e),n=this.formatDate(i,s,this._getFormatConfig(e)),t(o).val(n))},noWeekends:function(t){var e=t.getDay();return[e>0&&6>e,""]},iso8601Week:function(t){var e,i=new Date(t.getTime());return i.setDate(i.getDate()+4-(i.getDay()||7)),e=i.getTime(),i.setMonth(0),i.setDate(1),Math.floor(Math.round((e-i)/864e5)/7)+1},parseDate:function(e,i,s){if(null==e||null==i)throw"Invalid arguments";if(i="object"==typeof i?""+i:i+"",""===i)return null;var n,o,a,r,h=0,l=(s?s.shortYearCutoff:null)||this._defaults.shortYearCutoff,c="string"!=typeof l?l:(new Date).getFullYear()%100+parseInt(l,10),u=(s?s.dayNamesShort:null)||this._defaults.dayNamesShort,d=(s?s.dayNames:null)||this._defaults.dayNames,p=(s?s.monthNamesShort:null)||this._defaults.monthNamesShort,f=(s?s.monthNames:null)||this._defaults.monthNames,g=-1,m=-1,_=-1,v=-1,b=!1,y=function(t){var i=e.length>n+1&&e.charAt(n+1)===t;return i&&n++,i},w=function(t){var e=y(t),s="@"===t?14:"!"===t?20:"y"===t&&e?4:"o"===t?3:2,n="y"===t?s:1,o=RegExp("^\\d{"+n+","+s+"}"),a=i.substring(h).match(o);if(!a)throw"Missing number at position "+h;return h+=a[0].length,parseInt(a[0],10)},k=function(e,s,n){var o=-1,a=t.map(y(e)?n:s,function(t,e){return[[e,t]]}).sort(function(t,e){return-(t[1].length-e[1].length)});if(t.each(a,function(t,e){var s=e[1];return i.substr(h,s.length).toLowerCase()===s.toLowerCase()?(o=e[0],h+=s.length,!1):void 0}),-1!==o)return o+1;throw"Unknown name at position "+h},x=function(){if(i.charAt(h)!==e.charAt(n))throw"Unexpected literal at position "+h;h++};for(n=0;e.length>n;n++)if(b)"'"!==e.charAt(n)||y("'")?x():b=!1;else switch(e.charAt(n)){case"d":_=w("d");break;case"D":k("D",u,d);break;case"o":v=w("o");break;case"m":m=w("m");break;case"M":m=k("M",p,f);break;case"y":g=w("y");break;case"@":r=new Date(w("@")),g=r.getFullYear(),m=r.getMonth()+1,_=r.getDate();break;case"!":r=new Date((w("!")-this._ticksTo1970)/1e4),g=r.getFullYear(),m=r.getMonth()+1,_=r.getDate();break;case"'":y("'")?x():b=!0;break;default:x()}if(i.length>h&&(a=i.substr(h),!/^\s+/.test(a)))throw"Extra/unparsed characters found in date: "+a;if(-1===g?g=(new Date).getFullYear():100>g&&(g+=(new Date).getFullYear()-(new Date).getFullYear()%100+(c>=g?0:-100)),v>-1)for(m=1,_=v;;){if(o=this._getDaysInMonth(g,m-1),o>=_)break;m++,_-=o}if(r=this._daylightSavingAdjust(new Date(g,m-1,_)),r.getFullYear()!==g||r.getMonth()+1!==m||r.getDate()!==_)throw"Invalid date";return r},ATOM:"yy-mm-dd",COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y",RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y",TICKS:"!",TIMESTAMP:"@",W3C:"yy-mm-dd",_ticksTo1970:1e7*60*60*24*(718685+Math.floor(492.5)-Math.floor(19.7)+Math.floor(4.925)),formatDate:function(t,e,i){if(!e)return"";var s,n=(i?i.dayNamesShort:null)||this._defaults.dayNamesShort,o=(i?i.dayNames:null)||this._defaults.dayNames,a=(i?i.monthNamesShort:null)||this._defaults.monthNamesShort,r=(i?i.monthNames:null)||this._defaults.monthNames,h=function(e){var i=t.length>s+1&&t.charAt(s+1)===e;return i&&s++,i},l=function(t,e,i){var s=""+e;if(h(t))for(;i>s.length;)s="0"+s;return s},c=function(t,e,i,s){return h(t)?s[e]:i[e]},u="",d=!1;if(e)for(s=0;t.length>s;s++)if(d)"'"!==t.charAt(s)||h("'")?u+=t.charAt(s):d=!1;else switch(t.charAt(s)){case"d":u+=l("d",e.getDate(),2);break;case"D":u+=c("D",e.getDay(),n,o);break;case"o":u+=l("o",Math.round((new Date(e.getFullYear(),e.getMonth(),e.getDate()).getTime()-new Date(e.getFullYear(),0,0).getTime())/864e5),3);break;case"m":u+=l("m",e.getMonth()+1,2);break;case"M":u+=c("M",e.getMonth(),a,r);break;case"y":u+=h("y")?e.getFullYear():(10>e.getFullYear()%100?"0":"")+e.getFullYear()%100;break;case"@":u+=e.getTime();break;case"!":u+=1e4*e.getTime()+this._ticksTo1970;break;case"'":h("'")?u+="'":d=!0;break;default:u+=t.charAt(s)}return u},_possibleChars:function(t){var e,i="",s=!1,n=function(i){var s=t.length>e+1&&t.charAt(e+1)===i;return s&&e++,s};for(e=0;t.length>e;e++)if(s)"'"!==t.charAt(e)||n("'")?i+=t.charAt(e):s=!1;else switch(t.charAt(e)){case"d":case"m":case"y":case"@":i+="0123456789";break;case"D":case"M":return null;case"'":n("'")?i+="'":s=!0;break;default:i+=t.charAt(e)}return i},_get:function(t,e){return void 0!==t.settings[e]?t.settings[e]:this._defaults[e]},_setDateFromField:function(t,e){if(t.input.val()!==t.lastVal){var i=this._get(t,"dateFormat"),s=t.lastVal=t.input?t.input.val():null,n=this._getDefaultDate(t),o=n,a=this._getFormatConfig(t);try{o=this.parseDate(i,s,a)||n}catch(r){s=e?"":s}t.selectedDay=o.getDate(),t.drawMonth=t.selectedMonth=o.getMonth(),t.drawYear=t.selectedYear=o.getFullYear(),t.currentDay=s?o.getDate():0,t.currentMonth=s?o.getMonth():0,t.currentYear=s?o.getFullYear():0,this._adjustInstDate(t)}},_getDefaultDate:function(t){return this._restrictMinMax(t,this._determineDate(t,this._get(t,"defaultDate"),new Date))},_determineDate:function(e,i,s){var n=function(t){var e=new Date;return e.setDate(e.getDate()+t),e},o=function(i){try{return t.datepicker.parseDate(t.datepicker._get(e,"dateFormat"),i,t.datepicker._getFormatConfig(e))}catch(s){}for(var n=(i.toLowerCase().match(/^c/)?t.datepicker._getDate(e):null)||new Date,o=n.getFullYear(),a=n.getMonth(),r=n.getDate(),h=/([+\-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g,l=h.exec(i);l;){switch(l[2]||"d"){case"d":case"D":r+=parseInt(l[1],10);break;case"w":case"W":r+=7*parseInt(l[1],10);break;case"m":case"M":a+=parseInt(l[1],10),r=Math.min(r,t.datepicker._getDaysInMonth(o,a));break;case"y":case"Y":o+=parseInt(l[1],10),r=Math.min(r,t.datepicker._getDaysInMonth(o,a))}l=h.exec(i)}return new Date(o,a,r)},a=null==i||""===i?s:"string"==typeof i?o(i):"number"==typeof i?isNaN(i)?s:n(i):new Date(i.getTime());return a=a&&"Invalid Date"==""+a?s:a,a&&(a.setHours(0),a.setMinutes(0),a.setSeconds(0),a.setMilliseconds(0)),this._daylightSavingAdjust(a)},_daylightSavingAdjust:function(t){return t?(t.setHours(t.getHours()>12?t.getHours()+2:0),t):null},_setDate:function(t,e,i){var s=!e,n=t.selectedMonth,o=t.selectedYear,a=this._restrictMinMax(t,this._determineDate(t,e,new Date));t.selectedDay=t.currentDay=a.getDate(),t.drawMonth=t.selectedMonth=t.currentMonth=a.getMonth(),t.drawYear=t.selectedYear=t.currentYear=a.getFullYear(),n===t.selectedMonth&&o===t.selectedYear||i||this._notifyChange(t),this._adjustInstDate(t),t.input&&t.input.val(s?"":this._formatDate(t))},_getDate:function(t){var e=!t.currentYear||t.input&&""===t.input.val()?null:this._daylightSavingAdjust(new Date(t.currentYear,t.currentMonth,t.currentDay));return e},_attachHandlers:function(e){var i=this._get(e,"stepMonths"),s="#"+e.id.replace(/\\\\/g,"\\");e.dpDiv.find("[data-handler]").map(function(){var e={prev:function(){t.datepicker._adjustDate(s,-i,"M")},next:function(){t.datepicker._adjustDate(s,+i,"M")},hide:function(){t.datepicker._hideDatepicker()},today:function(){t.datepicker._gotoToday(s)},selectDay:function(){return t.datepicker._selectDay(s,+this.getAttribute("data-month"),+this.getAttribute("data-year"),this),!1},selectMonth:function(){return t.datepicker._selectMonthYear(s,this,"M"),!1},selectYear:function(){return t.datepicker._selectMonthYear(s,this,"Y"),!1}};t(this).on(this.getAttribute("data-event"),e[this.getAttribute("data-handler")])})},_generateHTML:function(t){var e,i,s,n,o,a,r,h,l,c,u,d,p,f,g,m,_,v,b,y,w,k,x,C,D,I,T,P,M,S,H,z,O,A,N,W,E,F,L,R=new Date,B=this._daylightSavingAdjust(new Date(R.getFullYear(),R.getMonth(),R.getDate())),Y=this._get(t,"isRTL"),j=this._get(t,"showButtonPanel"),q=this._get(t,"hideIfNoPrevNext"),K=this._get(t,"navigationAsDateFormat"),U=this._getNumberOfMonths(t),V=this._get(t,"showCurrentAtPos"),$=this._get(t,"stepMonths"),X=1!==U[0]||1!==U[1],G=this._daylightSavingAdjust(t.currentDay?new Date(t.currentYear,t.currentMonth,t.currentDay):new Date(9999,9,9)),Q=this._getMinMaxDate(t,"min"),J=this._getMinMaxDate(t,"max"),Z=t.drawMonth-V,te=t.drawYear;if(0>Z&&(Z+=12,te--),J)for(e=this._daylightSavingAdjust(new Date(J.getFullYear(),J.getMonth()-U[0]*U[1]+1,J.getDate())),e=Q&&Q>e?Q:e;this._daylightSavingAdjust(new Date(te,Z,1))>e;)Z--,0>Z&&(Z=11,te--);for(t.drawMonth=Z,t.drawYear=te,i=this._get(t,"prevText"),i=K?this.formatDate(i,this._daylightSavingAdjust(new Date(te,Z-$,1)),this._getFormatConfig(t)):i,s=this._canAdjustMonth(t,-1,te,Z)?"<a class='ui-datepicker-prev ui-corner-all' data-handler='prev' data-event='click' title='"+i+"'><span class='ui-icon ui-icon-circle-triangle-"+(Y?"e":"w")+"'>"+i+"</span></a>":q?"":"<a class='ui-datepicker-prev ui-corner-all ui-state-disabled' title='"+i+"'><span class='ui-icon ui-icon-circle-triangle-"+(Y?"e":"w")+"'>"+i+"</span></a>",n=this._get(t,"nextText"),n=K?this.formatDate(n,this._daylightSavingAdjust(new Date(te,Z+$,1)),this._getFormatConfig(t)):n,o=this._canAdjustMonth(t,1,te,Z)?"<a class='ui-datepicker-next ui-corner-all' data-handler='next' data-event='click' title='"+n+"'><span class='ui-icon ui-icon-circle-triangle-"+(Y?"w":"e")+"'>"+n+"</span></a>":q?"":"<a class='ui-datepicker-next ui-corner-all ui-state-disabled' title='"+n+"'><span class='ui-icon ui-icon-circle-triangle-"+(Y?"w":"e")+"'>"+n+"</span></a>",a=this._get(t,"currentText"),r=this._get(t,"gotoCurrent")&&t.currentDay?G:B,a=K?this.formatDate(a,r,this._getFormatConfig(t)):a,h=t.inline?"":"<button type='button' class='ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all' data-handler='hide' data-event='click'>"+this._get(t,"closeText")+"</button>",l=j?"<div class='ui-datepicker-buttonpane ui-widget-content'>"+(Y?h:"")+(this._isInRange(t,r)?"<button type='button' class='ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all' data-handler='today' data-event='click'>"+a+"</button>":"")+(Y?"":h)+"</div>":"",c=parseInt(this._get(t,"firstDay"),10),c=isNaN(c)?0:c,u=this._get(t,"showWeek"),d=this._get(t,"dayNames"),p=this._get(t,"dayNamesMin"),f=this._get(t,"monthNames"),g=this._get(t,"monthNamesShort"),m=this._get(t,"beforeShowDay"),_=this._get(t,"showOtherMonths"),v=this._get(t,"selectOtherMonths"),b=this._getDefaultDate(t),y="",k=0;U[0]>k;k++){for(x="",this.maxRows=4,C=0;U[1]>C;C++){if(D=this._daylightSavingAdjust(new Date(te,Z,t.selectedDay)),I=" ui-corner-all",T="",X){if(T+="<div class='ui-datepicker-group",U[1]>1)switch(C){case 0:T+=" ui-datepicker-group-first",I=" ui-corner-"+(Y?"right":"left");break;case U[1]-1:T+=" ui-datepicker-group-last",I=" ui-corner-"+(Y?"left":"right");break;default:T+=" ui-datepicker-group-middle",I=""}T+="'>"}for(T+="<div class='ui-datepicker-header ui-widget-header ui-helper-clearfix"+I+"'>"+(/all|left/.test(I)&&0===k?Y?o:s:"")+(/all|right/.test(I)&&0===k?Y?s:o:"")+this._generateMonthYearHeader(t,Z,te,Q,J,k>0||C>0,f,g)+"</div><table class='ui-datepicker-calendar'><thead>"+"<tr>",P=u?"<th class='ui-datepicker-week-col'>"+this._get(t,"weekHeader")+"</th>":"",w=0;7>w;w++)M=(w+c)%7,P+="<th scope='col'"+((w+c+6)%7>=5?" class='ui-datepicker-week-end'":"")+">"+"<span title='"+d[M]+"'>"+p[M]+"</span></th>";for(T+=P+"</tr></thead><tbody>",S=this._getDaysInMonth(te,Z),te===t.selectedYear&&Z===t.selectedMonth&&(t.selectedDay=Math.min(t.selectedDay,S)),H=(this._getFirstDayOfMonth(te,Z)-c+7)%7,z=Math.ceil((H+S)/7),O=X?this.maxRows>z?this.maxRows:z:z,this.maxRows=O,A=this._daylightSavingAdjust(new Date(te,Z,1-H)),N=0;O>N;N++){for(T+="<tr>",W=u?"<td class='ui-datepicker-week-col'>"+this._get(t,"calculateWeek")(A)+"</td>":"",w=0;7>w;w++)E=m?m.apply(t.input?t.input[0]:null,[A]):[!0,""],F=A.getMonth()!==Z,L=F&&!v||!E[0]||Q&&Q>A||J&&A>J,W+="<td class='"+((w+c+6)%7>=5?" ui-datepicker-week-end":"")+(F?" ui-datepicker-other-month":"")+(A.getTime()===D.getTime()&&Z===t.selectedMonth&&t._keyEvent||b.getTime()===A.getTime()&&b.getTime()===D.getTime()?" "+this._dayOverClass:"")+(L?" "+this._unselectableClass+" ui-state-disabled":"")+(F&&!_?"":" "+E[1]+(A.getTime()===G.getTime()?" "+this._currentClass:"")+(A.getTime()===B.getTime()?" ui-datepicker-today":""))+"'"+(F&&!_||!E[2]?"":" title='"+E[2].replace(/'/g,"&#39;")+"'")+(L?"":" data-handler='selectDay' data-event='click' data-month='"+A.getMonth()+"' data-year='"+A.getFullYear()+"'")+">"+(F&&!_?"&#xa0;":L?"<span class='ui-state-default'>"+A.getDate()+"</span>":"<a class='ui-state-default"+(A.getTime()===B.getTime()?" ui-state-highlight":"")+(A.getTime()===G.getTime()?" ui-state-active":"")+(F?" ui-priority-secondary":"")+"' href='#'>"+A.getDate()+"</a>")+"</td>",A.setDate(A.getDate()+1),A=this._daylightSavingAdjust(A);T+=W+"</tr>"}Z++,Z>11&&(Z=0,te++),T+="</tbody></table>"+(X?"</div>"+(U[0]>0&&C===U[1]-1?"<div class='ui-datepicker-row-break'></div>":""):""),x+=T}y+=x}return y+=l,t._keyEvent=!1,y},_generateMonthYearHeader:function(t,e,i,s,n,o,a,r){var h,l,c,u,d,p,f,g,m=this._get(t,"changeMonth"),_=this._get(t,"changeYear"),v=this._get(t,"showMonthAfterYear"),b="<div class='ui-datepicker-title'>",y="";if(o||!m)y+="<span class='ui-datepicker-month'>"+a[e]+"</span>";else{for(h=s&&s.getFullYear()===i,l=n&&n.getFullYear()===i,y+="<select class='ui-datepicker-month' data-handler='selectMonth' data-event='change'>",c=0;12>c;c++)(!h||c>=s.getMonth())&&(!l||n.getMonth()>=c)&&(y+="<option value='"+c+"'"+(c===e?" selected='selected'":"")+">"+r[c]+"</option>");y+="</select>"}if(v||(b+=y+(!o&&m&&_?"":"&#xa0;")),!t.yearshtml)if(t.yearshtml="",o||!_)b+="<span class='ui-datepicker-year'>"+i+"</span>";else{for(u=this._get(t,"yearRange").split(":"),d=(new Date).getFullYear(),p=function(t){var e=t.match(/c[+\-].*/)?i+parseInt(t.substring(1),10):t.match(/[+\-].*/)?d+parseInt(t,10):parseInt(t,10);return isNaN(e)?d:e},f=p(u[0]),g=Math.max(f,p(u[1]||"")),f=s?Math.max(f,s.getFullYear()):f,g=n?Math.min(g,n.getFullYear()):g,t.yearshtml+="<select class='ui-datepicker-year' data-handler='selectYear' data-event='change'>";g>=f;f++)t.yearshtml+="<option value='"+f+"'"+(f===i?" selected='selected'":"")+">"+f+"</option>";t.yearshtml+="</select>",b+=t.yearshtml,t.yearshtml=null}return b+=this._get(t,"yearSuffix"),v&&(b+=(!o&&m&&_?"":"&#xa0;")+y),b+="</div>"},_adjustInstDate:function(t,e,i){var s=t.selectedYear+("Y"===i?e:0),n=t.selectedMonth+("M"===i?e:0),o=Math.min(t.selectedDay,this._getDaysInMonth(s,n))+("D"===i?e:0),a=this._restrictMinMax(t,this._daylightSavingAdjust(new Date(s,n,o)));t.selectedDay=a.getDate(),t.drawMonth=t.selectedMonth=a.getMonth(),t.drawYear=t.selectedYear=a.getFullYear(),("M"===i||"Y"===i)&&this._notifyChange(t)},_restrictMinMax:function(t,e){var i=this._getMinMaxDate(t,"min"),s=this._getMinMaxDate(t,"max"),n=i&&i>e?i:e;return s&&n>s?s:n},_notifyChange:function(t){var e=this._get(t,"onChangeMonthYear");e&&e.apply(t.input?t.input[0]:null,[t.selectedYear,t.selectedMonth+1,t])},_getNumberOfMonths:function(t){var e=this._get(t,"numberOfMonths");return null==e?[1,1]:"number"==typeof e?[1,e]:e},_getMinMaxDate:function(t,e){return this._determineDate(t,this._get(t,e+"Date"),null)},_getDaysInMonth:function(t,e){return 32-this._daylightSavingAdjust(new Date(t,e,32)).getDate()},_getFirstDayOfMonth:function(t,e){return new Date(t,e,1).getDay()},_canAdjustMonth:function(t,e,i,s){var n=this._getNumberOfMonths(t),o=this._daylightSavingAdjust(new Date(i,s+(0>e?e:n[0]*n[1]),1));return 0>e&&o.setDate(this._getDaysInMonth(o.getFullYear(),o.getMonth())),this._isInRange(t,o)},_isInRange:function(t,e){var i,s,n=this._getMinMaxDate(t,"min"),o=this._getMinMaxDate(t,"max"),a=null,r=null,h=this._get(t,"yearRange");return h&&(i=h.split(":"),s=(new Date).getFullYear(),a=parseInt(i[0],10),r=parseInt(i[1],10),i[0].match(/[+\-].*/)&&(a+=s),i[1].match(/[+\-].*/)&&(r+=s)),(!n||e.getTime()>=n.getTime())&&(!o||e.getTime()<=o.getTime())&&(!a||e.getFullYear()>=a)&&(!r||r>=e.getFullYear())},_getFormatConfig:function(t){var e=this._get(t,"shortYearCutoff");return e="string"!=typeof e?e:(new Date).getFullYear()%100+parseInt(e,10),{shortYearCutoff:e,dayNamesShort:this._get(t,"dayNamesShort"),dayNames:this._get(t,"dayNames"),monthNamesShort:this._get(t,"monthNamesShort"),monthNames:this._get(t,"monthNames")}},_formatDate:function(t,e,i,s){e||(t.currentDay=t.selectedDay,t.currentMonth=t.selectedMonth,t.currentYear=t.selectedYear);var n=e?"object"==typeof e?e:this._daylightSavingAdjust(new Date(s,i,e)):this._daylightSavingAdjust(new Date(t.currentYear,t.currentMonth,t.currentDay));return this.formatDate(this._get(t,"dateFormat"),n,this._getFormatConfig(t))}}),t.fn.datepicker=function(e){if(!this.length)return this;t.datepicker.initialized||(t(document).on("mousedown",t.datepicker._checkExternalClick),t.datepicker.initialized=!0),0===t("#"+t.datepicker._mainDivId).length&&t("body").append(t.datepicker.dpDiv);var i=Array.prototype.slice.call(arguments,1);return"string"!=typeof e||"isDisabled"!==e&&"getDate"!==e&&"widget"!==e?"option"===e&&2===arguments.length&&"string"==typeof arguments[1]?t.datepicker["_"+e+"Datepicker"].apply(t.datepicker,[this[0]].concat(i)):this.each(function(){"string"==typeof e?t.datepicker["_"+e+"Datepicker"].apply(t.datepicker,[this].concat(i)):t.datepicker._attachDatepicker(this,e)}):t.datepicker["_"+e+"Datepicker"].apply(t.datepicker,[this[0]].concat(i))},t.datepicker=new s,t.datepicker.initialized=!1,t.datepicker.uuid=(new Date).getTime(),t.datepicker.version="1.12.1",t.datepicker,t.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase());var _=!1;t(document).on("mouseup",function(){_=!1}),t.widget("ui.mouse",{version:"1.12.1",options:{cancel:"input, textarea, button, select, option",distance:1,delay:0},_mouseInit:function(){var e=this;this.element.on("mousedown."+this.widgetName,function(t){return e._mouseDown(t)}).on("click."+this.widgetName,function(i){return!0===t.data(i.target,e.widgetName+".preventClickEvent")?(t.removeData(i.target,e.widgetName+".preventClickEvent"),i.stopImmediatePropagation(),!1):void 0}),this.started=!1},_mouseDestroy:function(){this.element.off("."+this.widgetName),this._mouseMoveDelegate&&this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(e){if(!_){this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(e),this._mouseDownEvent=e;var i=this,s=1===e.which,n="string"==typeof this.options.cancel&&e.target.nodeName?t(e.target).closest(this.options.cancel).length:!1;return s&&!n&&this._mouseCapture(e)?(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){i.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(e)!==!1,!this._mouseStarted)?(e.preventDefault(),!0):(!0===t.data(e.target,this.widgetName+".preventClickEvent")&&t.removeData(e.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(t){return i._mouseMove(t)},this._mouseUpDelegate=function(t){return i._mouseUp(t)},this.document.on("mousemove."+this.widgetName,this._mouseMoveDelegate).on("mouseup."+this.widgetName,this._mouseUpDelegate),e.preventDefault(),_=!0,!0)):!0}},_mouseMove:function(e){if(this._mouseMoved){if(t.ui.ie&&(!document.documentMode||9>document.documentMode)&&!e.button)return this._mouseUp(e);if(!e.which)if(e.originalEvent.altKey||e.originalEvent.ctrlKey||e.originalEvent.metaKey||e.originalEvent.shiftKey)this.ignoreMissingWhich=!0;else if(!this.ignoreMissingWhich)return this._mouseUp(e)}return(e.which||e.button)&&(this._mouseMoved=!0),this._mouseStarted?(this._mouseDrag(e),e.preventDefault()):(this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,e)!==!1,this._mouseStarted?this._mouseDrag(e):this._mouseUp(e)),!this._mouseStarted)},_mouseUp:function(e){this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,e.target===this._mouseDownEvent.target&&t.data(e.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(e)),this._mouseDelayTimer&&(clearTimeout(this._mouseDelayTimer),delete this._mouseDelayTimer),this.ignoreMissingWhich=!1,_=!1,e.preventDefault()},_mouseDistanceMet:function(t){return Math.max(Math.abs(this._mouseDownEvent.pageX-t.pageX),Math.abs(this._mouseDownEvent.pageY-t.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),t.ui.plugin={add:function(e,i,s){var n,o=t.ui[e].prototype;for(n in s)o.plugins[n]=o.plugins[n]||[],o.plugins[n].push([i,s[n]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;o.length>n;n++)t.options[o[n][0]]&&o[n][1].apply(t.element,i)}},t.ui.safeBlur=function(e){e&&"body"!==e.nodeName.toLowerCase()&&t(e).trigger("blur")},t.widget("ui.draggable",t.ui.mouse,{version:"1.12.1",widgetEventPrefix:"drag",options:{addClasses:!0,appendTo:"parent",axis:!1,connectToSortable:!1,containment:!1,cursor:"auto",cursorAt:!1,grid:!1,handle:!1,helper:"original",iframeFix:!1,opacity:!1,refreshPositions:!1,revert:!1,revertDuration:500,scope:"default",scroll:!0,scrollSensitivity:20,scrollSpeed:20,snap:!1,snapMode:"both",snapTolerance:20,stack:!1,zIndex:!1,drag:null,start:null,stop:null},_create:function(){"original"===this.options.helper&&this._setPositionRelative(),this.options.addClasses&&this._addClass("ui-draggable"),this._setHandleClassName(),this._mouseInit()},_setOption:function(t,e){this._super(t,e),"handle"===t&&(this._removeHandleClassName(),this._setHandleClassName())},_destroy:function(){return(this.helper||this.element).is(".ui-draggable-dragging")?(this.destroyOnClear=!0,void 0):(this._removeHandleClassName(),this._mouseDestroy(),void 0)},_mouseCapture:function(e){var i=this.options;return this.helper||i.disabled||t(e.target).closest(".ui-resizable-handle").length>0?!1:(this.handle=this._getHandle(e),this.handle?(this._blurActiveElement(e),this._blockFrames(i.iframeFix===!0?"iframe":i.iframeFix),!0):!1)},_blockFrames:function(e){this.iframeBlocks=this.document.find(e).map(function(){var e=t(this);return t("<div>").css("position","absolute").appendTo(e.parent()).outerWidth(e.outerWidth()).outerHeight(e.outerHeight()).offset(e.offset())[0]})},_unblockFrames:function(){this.iframeBlocks&&(this.iframeBlocks.remove(),delete this.iframeBlocks)},_blurActiveElement:function(e){var i=t.ui.safeActiveElement(this.document[0]),s=t(e.target);s.closest(i).length||t.ui.safeBlur(i)},_mouseStart:function(e){var i=this.options;return this.helper=this._createHelper(e),this._addClass(this.helper,"ui-draggable-dragging"),this._cacheHelperProportions(),t.ui.ddmanager&&(t.ui.ddmanager.current=this),this._cacheMargins(),this.cssPosition=this.helper.css("position"),this.scrollParent=this.helper.scrollParent(!0),this.offsetParent=this.helper.offsetParent(),this.hasFixedAncestor=this.helper.parents().filter(function(){return"fixed"===t(this).css("position")}).length>0,this.positionAbs=this.element.offset(),this._refreshOffsets(e),this.originalPosition=this.position=this._generatePosition(e,!1),this.originalPageX=e.pageX,this.originalPageY=e.pageY,i.cursorAt&&this._adjustOffsetFromHelper(i.cursorAt),this._setContainment(),this._trigger("start",e)===!1?(this._clear(),!1):(this._cacheHelperProportions(),t.ui.ddmanager&&!i.dropBehaviour&&t.ui.ddmanager.prepareOffsets(this,e),this._mouseDrag(e,!0),t.ui.ddmanager&&t.ui.ddmanager.dragStart(this,e),!0)},_refreshOffsets:function(t){this.offset={top:this.positionAbs.top-this.margins.top,left:this.positionAbs.left-this.margins.left,scroll:!1,parent:this._getParentOffset(),relative:this._getRelativeOffset()},this.offset.click={left:t.pageX-this.offset.left,top:t.pageY-this.offset.top}},_mouseDrag:function(e,i){if(this.hasFixedAncestor&&(this.offset.parent=this._getParentOffset()),this.position=this._generatePosition(e,!0),this.positionAbs=this._convertPositionTo("absolute"),!i){var s=this._uiHash();if(this._trigger("drag",e,s)===!1)return this._mouseUp(new t.Event("mouseup",e)),!1;this.position=s.position}return this.helper[0].style.left=this.position.left+"px",this.helper[0].style.top=this.position.top+"px",t.ui.ddmanager&&t.ui.ddmanager.drag(this,e),!1},_mouseStop:function(e){var i=this,s=!1;return t.ui.ddmanager&&!this.options.dropBehaviour&&(s=t.ui.ddmanager.drop(this,e)),this.dropped&&(s=this.dropped,this.dropped=!1),"invalid"===this.options.revert&&!s||"valid"===this.options.revert&&s||this.options.revert===!0||t.isFunction(this.options.revert)&&this.options.revert.call(this.element,s)?t(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){i._trigger("stop",e)!==!1&&i._clear()}):this._trigger("stop",e)!==!1&&this._clear(),!1},_mouseUp:function(e){return this._unblockFrames(),t.ui.ddmanager&&t.ui.ddmanager.dragStop(this,e),this.handleElement.is(e.target)&&this.element.trigger("focus"),t.ui.mouse.prototype._mouseUp.call(this,e)},cancel:function(){return this.helper.is(".ui-draggable-dragging")?this._mouseUp(new t.Event("mouseup",{target:this.element[0]})):this._clear(),this},_getHandle:function(e){return this.options.handle?!!t(e.target).closest(this.element.find(this.options.handle)).length:!0},_setHandleClassName:function(){this.handleElement=this.options.handle?this.element.find(this.options.handle):this.element,this._addClass(this.handleElement,"ui-draggable-handle")},_removeHandleClassName:function(){this._removeClass(this.handleElement,"ui-draggable-handle")},_createHelper:function(e){var i=this.options,s=t.isFunction(i.helper),n=s?t(i.helper.apply(this.element[0],[e])):"clone"===i.helper?this.element.clone().removeAttr("id"):this.element;return n.parents("body").length||n.appendTo("parent"===i.appendTo?this.element[0].parentNode:i.appendTo),s&&n[0]===this.element[0]&&this._setPositionRelative(),n[0]===this.element[0]||/(fixed|absolute)/.test(n.css("position"))||n.css("position","absolute"),n},_setPositionRelative:function(){/^(?:r|a|f)/.test(this.element.css("position"))||(this.element[0].style.position="relative")},_adjustOffsetFromHelper:function(e){"string"==typeof e&&(e=e.split(" ")),t.isArray(e)&&(e={left:+e[0],top:+e[1]||0}),"left"in e&&(this.offset.click.left=e.left+this.margins.left),"right"in e&&(this.offset.click.left=this.helperProportions.width-e.right+this.margins.left),"top"in e&&(this.offset.click.top=e.top+this.margins.top),"bottom"in e&&(this.offset.click.top=this.helperProportions.height-e.bottom+this.margins.top)},_isRootNode:function(t){return/(html|body)/i.test(t.tagName)||t===this.document[0]},_getParentOffset:function(){var e=this.offsetParent.offset(),i=this.document[0];return"absolute"===this.cssPosition&&this.scrollParent[0]!==i&&t.contains(this.scrollParent[0],this.offsetParent[0])&&(e.left+=this.scrollParent.scrollLeft(),e.top+=this.scrollParent.scrollTop()),this._isRootNode(this.offsetParent[0])&&(e={top:0,left:0}),{top:e.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:e.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if("relative"!==this.cssPosition)return{top:0,left:0};var t=this.element.position(),e=this._isRootNode(this.scrollParent[0]);return{top:t.top-(parseInt(this.helper.css("top"),10)||0)+(e?0:this.scrollParent.scrollTop()),left:t.left-(parseInt(this.helper.css("left"),10)||0)+(e?0:this.scrollParent.scrollLeft())}
-},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0,right:parseInt(this.element.css("marginRight"),10)||0,bottom:parseInt(this.element.css("marginBottom"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var e,i,s,n=this.options,o=this.document[0];return this.relativeContainer=null,n.containment?"window"===n.containment?(this.containment=[t(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,t(window).scrollTop()-this.offset.relative.top-this.offset.parent.top,t(window).scrollLeft()+t(window).width()-this.helperProportions.width-this.margins.left,t(window).scrollTop()+(t(window).height()||o.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top],void 0):"document"===n.containment?(this.containment=[0,0,t(o).width()-this.helperProportions.width-this.margins.left,(t(o).height()||o.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top],void 0):n.containment.constructor===Array?(this.containment=n.containment,void 0):("parent"===n.containment&&(n.containment=this.helper[0].parentNode),i=t(n.containment),s=i[0],s&&(e=/(scroll|auto)/.test(i.css("overflow")),this.containment=[(parseInt(i.css("borderLeftWidth"),10)||0)+(parseInt(i.css("paddingLeft"),10)||0),(parseInt(i.css("borderTopWidth"),10)||0)+(parseInt(i.css("paddingTop"),10)||0),(e?Math.max(s.scrollWidth,s.offsetWidth):s.offsetWidth)-(parseInt(i.css("borderRightWidth"),10)||0)-(parseInt(i.css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,(e?Math.max(s.scrollHeight,s.offsetHeight):s.offsetHeight)-(parseInt(i.css("borderBottomWidth"),10)||0)-(parseInt(i.css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom],this.relativeContainer=i),void 0):(this.containment=null,void 0)},_convertPositionTo:function(t,e){e||(e=this.position);var i="absolute"===t?1:-1,s=this._isRootNode(this.scrollParent[0]);return{top:e.top+this.offset.relative.top*i+this.offset.parent.top*i-("fixed"===this.cssPosition?-this.offset.scroll.top:s?0:this.offset.scroll.top)*i,left:e.left+this.offset.relative.left*i+this.offset.parent.left*i-("fixed"===this.cssPosition?-this.offset.scroll.left:s?0:this.offset.scroll.left)*i}},_generatePosition:function(t,e){var i,s,n,o,a=this.options,r=this._isRootNode(this.scrollParent[0]),h=t.pageX,l=t.pageY;return r&&this.offset.scroll||(this.offset.scroll={top:this.scrollParent.scrollTop(),left:this.scrollParent.scrollLeft()}),e&&(this.containment&&(this.relativeContainer?(s=this.relativeContainer.offset(),i=[this.containment[0]+s.left,this.containment[1]+s.top,this.containment[2]+s.left,this.containment[3]+s.top]):i=this.containment,t.pageX-this.offset.click.left<i[0]&&(h=i[0]+this.offset.click.left),t.pageY-this.offset.click.top<i[1]&&(l=i[1]+this.offset.click.top),t.pageX-this.offset.click.left>i[2]&&(h=i[2]+this.offset.click.left),t.pageY-this.offset.click.top>i[3]&&(l=i[3]+this.offset.click.top)),a.grid&&(n=a.grid[1]?this.originalPageY+Math.round((l-this.originalPageY)/a.grid[1])*a.grid[1]:this.originalPageY,l=i?n-this.offset.click.top>=i[1]||n-this.offset.click.top>i[3]?n:n-this.offset.click.top>=i[1]?n-a.grid[1]:n+a.grid[1]:n,o=a.grid[0]?this.originalPageX+Math.round((h-this.originalPageX)/a.grid[0])*a.grid[0]:this.originalPageX,h=i?o-this.offset.click.left>=i[0]||o-this.offset.click.left>i[2]?o:o-this.offset.click.left>=i[0]?o-a.grid[0]:o+a.grid[0]:o),"y"===a.axis&&(h=this.originalPageX),"x"===a.axis&&(l=this.originalPageY)),{top:l-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.offset.scroll.top:r?0:this.offset.scroll.top),left:h-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.offset.scroll.left:r?0:this.offset.scroll.left)}},_clear:function(){this._removeClass(this.helper,"ui-draggable-dragging"),this.helper[0]===this.element[0]||this.cancelHelperRemoval||this.helper.remove(),this.helper=null,this.cancelHelperRemoval=!1,this.destroyOnClear&&this.destroy()},_trigger:function(e,i,s){return s=s||this._uiHash(),t.ui.plugin.call(this,e,[i,s,this],!0),/^(drag|start|stop)/.test(e)&&(this.positionAbs=this._convertPositionTo("absolute"),s.offset=this.positionAbs),t.Widget.prototype._trigger.call(this,e,i,s)},plugins:{},_uiHash:function(){return{helper:this.helper,position:this.position,originalPosition:this.originalPosition,offset:this.positionAbs}}}),t.ui.plugin.add("draggable","connectToSortable",{start:function(e,i,s){var n=t.extend({},i,{item:s.element});s.sortables=[],t(s.options.connectToSortable).each(function(){var i=t(this).sortable("instance");i&&!i.options.disabled&&(s.sortables.push(i),i.refreshPositions(),i._trigger("activate",e,n))})},stop:function(e,i,s){var n=t.extend({},i,{item:s.element});s.cancelHelperRemoval=!1,t.each(s.sortables,function(){var t=this;t.isOver?(t.isOver=0,s.cancelHelperRemoval=!0,t.cancelHelperRemoval=!1,t._storedCSS={position:t.placeholder.css("position"),top:t.placeholder.css("top"),left:t.placeholder.css("left")},t._mouseStop(e),t.options.helper=t.options._helper):(t.cancelHelperRemoval=!0,t._trigger("deactivate",e,n))})},drag:function(e,i,s){t.each(s.sortables,function(){var n=!1,o=this;o.positionAbs=s.positionAbs,o.helperProportions=s.helperProportions,o.offset.click=s.offset.click,o._intersectsWith(o.containerCache)&&(n=!0,t.each(s.sortables,function(){return this.positionAbs=s.positionAbs,this.helperProportions=s.helperProportions,this.offset.click=s.offset.click,this!==o&&this._intersectsWith(this.containerCache)&&t.contains(o.element[0],this.element[0])&&(n=!1),n})),n?(o.isOver||(o.isOver=1,s._parent=i.helper.parent(),o.currentItem=i.helper.appendTo(o.element).data("ui-sortable-item",!0),o.options._helper=o.options.helper,o.options.helper=function(){return i.helper[0]},e.target=o.currentItem[0],o._mouseCapture(e,!0),o._mouseStart(e,!0,!0),o.offset.click.top=s.offset.click.top,o.offset.click.left=s.offset.click.left,o.offset.parent.left-=s.offset.parent.left-o.offset.parent.left,o.offset.parent.top-=s.offset.parent.top-o.offset.parent.top,s._trigger("toSortable",e),s.dropped=o.element,t.each(s.sortables,function(){this.refreshPositions()}),s.currentItem=s.element,o.fromOutside=s),o.currentItem&&(o._mouseDrag(e),i.position=o.position)):o.isOver&&(o.isOver=0,o.cancelHelperRemoval=!0,o.options._revert=o.options.revert,o.options.revert=!1,o._trigger("out",e,o._uiHash(o)),o._mouseStop(e,!0),o.options.revert=o.options._revert,o.options.helper=o.options._helper,o.placeholder&&o.placeholder.remove(),i.helper.appendTo(s._parent),s._refreshOffsets(e),i.position=s._generatePosition(e,!0),s._trigger("fromSortable",e),s.dropped=!1,t.each(s.sortables,function(){this.refreshPositions()}))})}}),t.ui.plugin.add("draggable","cursor",{start:function(e,i,s){var n=t("body"),o=s.options;n.css("cursor")&&(o._cursor=n.css("cursor")),n.css("cursor",o.cursor)},stop:function(e,i,s){var n=s.options;n._cursor&&t("body").css("cursor",n._cursor)}}),t.ui.plugin.add("draggable","opacity",{start:function(e,i,s){var n=t(i.helper),o=s.options;n.css("opacity")&&(o._opacity=n.css("opacity")),n.css("opacity",o.opacity)},stop:function(e,i,s){var n=s.options;n._opacity&&t(i.helper).css("opacity",n._opacity)}}),t.ui.plugin.add("draggable","scroll",{start:function(t,e,i){i.scrollParentNotHidden||(i.scrollParentNotHidden=i.helper.scrollParent(!1)),i.scrollParentNotHidden[0]!==i.document[0]&&"HTML"!==i.scrollParentNotHidden[0].tagName&&(i.overflowOffset=i.scrollParentNotHidden.offset())},drag:function(e,i,s){var n=s.options,o=!1,a=s.scrollParentNotHidden[0],r=s.document[0];a!==r&&"HTML"!==a.tagName?(n.axis&&"x"===n.axis||(s.overflowOffset.top+a.offsetHeight-e.pageY<n.scrollSensitivity?a.scrollTop=o=a.scrollTop+n.scrollSpeed:e.pageY-s.overflowOffset.top<n.scrollSensitivity&&(a.scrollTop=o=a.scrollTop-n.scrollSpeed)),n.axis&&"y"===n.axis||(s.overflowOffset.left+a.offsetWidth-e.pageX<n.scrollSensitivity?a.scrollLeft=o=a.scrollLeft+n.scrollSpeed:e.pageX-s.overflowOffset.left<n.scrollSensitivity&&(a.scrollLeft=o=a.scrollLeft-n.scrollSpeed))):(n.axis&&"x"===n.axis||(e.pageY-t(r).scrollTop()<n.scrollSensitivity?o=t(r).scrollTop(t(r).scrollTop()-n.scrollSpeed):t(window).height()-(e.pageY-t(r).scrollTop())<n.scrollSensitivity&&(o=t(r).scrollTop(t(r).scrollTop()+n.scrollSpeed))),n.axis&&"y"===n.axis||(e.pageX-t(r).scrollLeft()<n.scrollSensitivity?o=t(r).scrollLeft(t(r).scrollLeft()-n.scrollSpeed):t(window).width()-(e.pageX-t(r).scrollLeft())<n.scrollSensitivity&&(o=t(r).scrollLeft(t(r).scrollLeft()+n.scrollSpeed)))),o!==!1&&t.ui.ddmanager&&!n.dropBehaviour&&t.ui.ddmanager.prepareOffsets(s,e)}}),t.ui.plugin.add("draggable","snap",{start:function(e,i,s){var n=s.options;s.snapElements=[],t(n.snap.constructor!==String?n.snap.items||":data(ui-draggable)":n.snap).each(function(){var e=t(this),i=e.offset();this!==s.element[0]&&s.snapElements.push({item:this,width:e.outerWidth(),height:e.outerHeight(),top:i.top,left:i.left})})},drag:function(e,i,s){var n,o,a,r,h,l,c,u,d,p,f=s.options,g=f.snapTolerance,m=i.offset.left,_=m+s.helperProportions.width,v=i.offset.top,b=v+s.helperProportions.height;for(d=s.snapElements.length-1;d>=0;d--)h=s.snapElements[d].left-s.margins.left,l=h+s.snapElements[d].width,c=s.snapElements[d].top-s.margins.top,u=c+s.snapElements[d].height,h-g>_||m>l+g||c-g>b||v>u+g||!t.contains(s.snapElements[d].item.ownerDocument,s.snapElements[d].item)?(s.snapElements[d].snapping&&s.options.snap.release&&s.options.snap.release.call(s.element,e,t.extend(s._uiHash(),{snapItem:s.snapElements[d].item})),s.snapElements[d].snapping=!1):("inner"!==f.snapMode&&(n=g>=Math.abs(c-b),o=g>=Math.abs(u-v),a=g>=Math.abs(h-_),r=g>=Math.abs(l-m),n&&(i.position.top=s._convertPositionTo("relative",{top:c-s.helperProportions.height,left:0}).top),o&&(i.position.top=s._convertPositionTo("relative",{top:u,left:0}).top),a&&(i.position.left=s._convertPositionTo("relative",{top:0,left:h-s.helperProportions.width}).left),r&&(i.position.left=s._convertPositionTo("relative",{top:0,left:l}).left)),p=n||o||a||r,"outer"!==f.snapMode&&(n=g>=Math.abs(c-v),o=g>=Math.abs(u-b),a=g>=Math.abs(h-m),r=g>=Math.abs(l-_),n&&(i.position.top=s._convertPositionTo("relative",{top:c,left:0}).top),o&&(i.position.top=s._convertPositionTo("relative",{top:u-s.helperProportions.height,left:0}).top),a&&(i.position.left=s._convertPositionTo("relative",{top:0,left:h}).left),r&&(i.position.left=s._convertPositionTo("relative",{top:0,left:l-s.helperProportions.width}).left)),!s.snapElements[d].snapping&&(n||o||a||r||p)&&s.options.snap.snap&&s.options.snap.snap.call(s.element,e,t.extend(s._uiHash(),{snapItem:s.snapElements[d].item})),s.snapElements[d].snapping=n||o||a||r||p)}}),t.ui.plugin.add("draggable","stack",{start:function(e,i,s){var n,o=s.options,a=t.makeArray(t(o.stack)).sort(function(e,i){return(parseInt(t(e).css("zIndex"),10)||0)-(parseInt(t(i).css("zIndex"),10)||0)});a.length&&(n=parseInt(t(a[0]).css("zIndex"),10)||0,t(a).each(function(e){t(this).css("zIndex",n+e)}),this.css("zIndex",n+a.length))}}),t.ui.plugin.add("draggable","zIndex",{start:function(e,i,s){var n=t(i.helper),o=s.options;n.css("zIndex")&&(o._zIndex=n.css("zIndex")),n.css("zIndex",o.zIndex)},stop:function(e,i,s){var n=s.options;n._zIndex&&t(i.helper).css("zIndex",n._zIndex)}}),t.ui.draggable,t.widget("ui.resizable",t.ui.mouse,{version:"1.12.1",widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,classes:{"ui-resizable-se":"ui-icon ui-icon-gripsmall-diagonal-se"},containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:90,resize:null,start:null,stop:null},_num:function(t){return parseFloat(t)||0},_isNumber:function(t){return!isNaN(parseFloat(t))},_hasScroll:function(e,i){if("hidden"===t(e).css("overflow"))return!1;var s=i&&"left"===i?"scrollLeft":"scrollTop",n=!1;return e[s]>0?!0:(e[s]=1,n=e[s]>0,e[s]=0,n)},_create:function(){var e,i=this.options,s=this;this._addClass("ui-resizable"),t.extend(this,{_aspectRatio:!!i.aspectRatio,aspectRatio:i.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:i.helper||i.ghost||i.animate?i.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i)&&(this.element.wrap(t("<div class='ui-wrapper' style='overflow: hidden;'></div>").css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,e={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(e),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(e),this._proportionallyResize()),this._setupHandles(),i.autoHide&&t(this.element).on("mouseenter",function(){i.disabled||(s._removeClass("ui-resizable-autohide"),s._handles.show())}).on("mouseleave",function(){i.disabled||s.resizing||(s._addClass("ui-resizable-autohide"),s._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy();var e,i=function(e){t(e).removeData("resizable").removeData("ui-resizable").off(".resizable").find(".ui-resizable-handle").remove()};return this.elementIsWrapper&&(i(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),i(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case"handles":this._removeHandles(),this._setupHandles();break;default:}},_setupHandles:function(){var e,i,s,n,o,a=this.options,r=this;if(this.handles=a.handles||(t(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=t(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),s=this.handles.split(","),this.handles={},i=0;s.length>i;i++)e=t.trim(s[i]),n="ui-resizable-"+e,o=t("<div>"),this._addClass(o,"ui-resizable-handle "+n),o.css({zIndex:a.zIndex}),this.handles[e]=".ui-resizable-"+e,this.element.append(o);this._renderAxis=function(e){var i,s,n,o;e=e||this.element;for(i in this.handles)this.handles[i].constructor===String?this.handles[i]=this.element.children(this.handles[i]).first().show():(this.handles[i].jquery||this.handles[i].nodeType)&&(this.handles[i]=t(this.handles[i]),this._on(this.handles[i],{mousedown:r._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(s=t(this.handles[i],this.element),o=/sw|ne|nw|se|n|s/.test(i)?s.outerHeight():s.outerWidth(),n=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join(""),e.css(n,o),this._proportionallyResize()),this._handles=this._handles.add(this.handles[i])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){r.resizing||(this.className&&(o=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),r.axis=o&&o[1]?o[1]:"se")}),a.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._handles.remove()},_mouseCapture:function(e){var i,s,n=!1;for(i in this.handles)s=t(this.handles[i])[0],(s===e.target||t.contains(s,e.target))&&(n=!0);return!this.options.disabled&&n},_mouseStart:function(e){var i,s,n,o=this.options,a=this.element;return this.resizing=!0,this._renderProxy(),i=this._num(this.helper.css("left")),s=this._num(this.helper.css("top")),o.containment&&(i+=t(o.containment).scrollLeft()||0,s+=t(o.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:i,top:s},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:a.width(),height:a.height()},this.originalSize=this._helper?{width:a.outerWidth(),height:a.outerHeight()}:{width:a.width(),height:a.height()},this.sizeDiff={width:a.outerWidth()-a.width(),height:a.outerHeight()-a.height()},this.originalPosition={left:i,top:s},this.originalMousePosition={left:e.pageX,top:e.pageY},this.aspectRatio="number"==typeof o.aspectRatio?o.aspectRatio:this.originalSize.width/this.originalSize.height||1,n=t(".ui-resizable-"+this.axis).css("cursor"),t("body").css("cursor","auto"===n?this.axis+"-resize":n),this._addClass("ui-resizable-resizing"),this._propagate("start",e),!0},_mouseDrag:function(e){var i,s,n=this.originalMousePosition,o=this.axis,a=e.pageX-n.left||0,r=e.pageY-n.top||0,h=this._change[o];return this._updatePrevProperties(),h?(i=h.apply(this,[e,a,r]),this._updateVirtualBoundaries(e.shiftKey),(this._aspectRatio||e.shiftKey)&&(i=this._updateRatio(i,e)),i=this._respectSize(i,e),this._updateCache(i),this._propagate("resize",e),s=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),t.isEmptyObject(s)||(this._updatePrevProperties(),this._trigger("resize",e,this.ui()),this._applyChanges()),!1):!1},_mouseStop:function(e){this.resizing=!1;var i,s,n,o,a,r,h,l=this.options,c=this;return this._helper&&(i=this._proportionallyResizeElements,s=i.length&&/textarea/i.test(i[0].nodeName),n=s&&this._hasScroll(i[0],"left")?0:c.sizeDiff.height,o=s?0:c.sizeDiff.width,a={width:c.helper.width()-o,height:c.helper.height()-n},r=parseFloat(c.element.css("left"))+(c.position.left-c.originalPosition.left)||null,h=parseFloat(c.element.css("top"))+(c.position.top-c.originalPosition.top)||null,l.animate||this.element.css(t.extend(a,{top:h,left:r})),c.helper.height(c.size.height),c.helper.width(c.size.width),this._helper&&!l.animate&&this._proportionallyResize()),t("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",e),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s,n,o,a=this.options;o={minWidth:this._isNumber(a.minWidth)?a.minWidth:0,maxWidth:this._isNumber(a.maxWidth)?a.maxWidth:1/0,minHeight:this._isNumber(a.minHeight)?a.minHeight:0,maxHeight:this._isNumber(a.maxHeight)?a.maxHeight:1/0},(this._aspectRatio||t)&&(e=o.minHeight*this.aspectRatio,s=o.minWidth/this.aspectRatio,i=o.maxHeight*this.aspectRatio,n=o.maxWidth/this.aspectRatio,e>o.minWidth&&(o.minWidth=e),s>o.minHeight&&(o.minHeight=s),o.maxWidth>i&&(o.maxWidth=i),o.maxHeight>n&&(o.maxHeight=n)),this._vBoundaries=o},_updateCache:function(t){this.offset=this.helper.offset(),this._isNumber(t.left)&&(this.position.left=t.left),this._isNumber(t.top)&&(this.position.top=t.top),this._isNumber(t.height)&&(this.size.height=t.height),this._isNumber(t.width)&&(this.size.width=t.width)},_updateRatio:function(t){var e=this.position,i=this.size,s=this.axis;return this._isNumber(t.height)?t.width=t.height*this.aspectRatio:this._isNumber(t.width)&&(t.height=t.width/this.aspectRatio),"sw"===s&&(t.left=e.left+(i.width-t.width),t.top=null),"nw"===s&&(t.top=e.top+(i.height-t.height),t.left=e.left+(i.width-t.width)),t},_respectSize:function(t){var e=this._vBoundaries,i=this.axis,s=this._isNumber(t.width)&&e.maxWidth&&e.maxWidth<t.width,n=this._isNumber(t.height)&&e.maxHeight&&e.maxHeight<t.height,o=this._isNumber(t.width)&&e.minWidth&&e.minWidth>t.width,a=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,r=this.originalPosition.left+this.originalSize.width,h=this.originalPosition.top+this.originalSize.height,l=/sw|nw|w/.test(i),c=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),a&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&l&&(t.left=r-e.minWidth),s&&l&&(t.left=r-e.maxWidth),a&&c&&(t.top=h-e.minHeight),n&&c&&(t.top=h-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];4>e;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;this._proportionallyResizeElements.length>e;e++)t=this._proportionallyResizeElements[e],this.outerDimensions||(this.outerDimensions=this._getPaddingPlusBorderDimensions(t)),t.css({height:i.height()-this.outerDimensions.height||0,width:i.width()-this.outerDimensions.width||0})},_renderProxy:function(){var e=this.element,i=this.options;this.elementOffset=e.offset(),this._helper?(this.helper=this.helper||t("<div style='overflow:hidden;'></div>"),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++i.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize,s=this.originalPosition;return{left:s.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize,n=this.originalPosition;return{top:n.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},sw:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[e,i,s]))},ne:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},nw:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[e,i,s]))}},_propagate:function(e,i){t.ui.plugin.call(this,e,[i,this.ui()]),"resize"!==e&&this._trigger(e,i,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),t.ui.plugin.add("resizable","animate",{stop:function(e){var i=t(this).resizable("instance"),s=i.options,n=i._proportionallyResizeElements,o=n.length&&/textarea/i.test(n[0].nodeName),a=o&&i._hasScroll(n[0],"left")?0:i.sizeDiff.height,r=o?0:i.sizeDiff.width,h={width:i.size.width-r,height:i.size.height-a},l=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left)||null,c=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(t.extend(h,c&&l?{top:c,left:l}:{}),{duration:s.animateDuration,easing:s.animateEasing,step:function(){var s={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};n&&n.length&&t(n[0]).css({width:s.width,height:s.height}),i._updateCache(s),i._propagate("resize",e)}})}}),t.ui.plugin.add("resizable","containment",{start:function(){var e,i,s,n,o,a,r,h=t(this).resizable("instance"),l=h.options,c=h.element,u=l.containment,d=u instanceof t?u.get(0):/parent/.test(u)?c.parent().get(0):u;d&&(h.containerElement=t(d),/document/.test(u)||u===document?(h.containerOffset={left:0,top:0},h.containerPosition={left:0,top:0},h.parentData={element:t(document),left:0,top:0,width:t(document).width(),height:t(document).height()||document.body.parentNode.scrollHeight}):(e=t(d),i=[],t(["Top","Right","Left","Bottom"]).each(function(t,s){i[t]=h._num(e.css("padding"+s))}),h.containerOffset=e.offset(),h.containerPosition=e.position(),h.containerSize={height:e.innerHeight()-i[3],width:e.innerWidth()-i[1]},s=h.containerOffset,n=h.containerSize.height,o=h.containerSize.width,a=h._hasScroll(d,"left")?d.scrollWidth:o,r=h._hasScroll(d)?d.scrollHeight:n,h.parentData={element:d,left:s.left,top:s.top,width:a,height:r}))},resize:function(e){var i,s,n,o,a=t(this).resizable("instance"),r=a.options,h=a.containerOffset,l=a.position,c=a._aspectRatio||e.shiftKey,u={top:0,left:0},d=a.containerElement,p=!0;d[0]!==document&&/static/.test(d.css("position"))&&(u=h),l.left<(a._helper?h.left:0)&&(a.size.width=a.size.width+(a._helper?a.position.left-h.left:a.position.left-u.left),c&&(a.size.height=a.size.width/a.aspectRatio,p=!1),a.position.left=r.helper?h.left:0),l.top<(a._helper?h.top:0)&&(a.size.height=a.size.height+(a._helper?a.position.top-h.top:a.position.top),c&&(a.size.width=a.size.height*a.aspectRatio,p=!1),a.position.top=a._helper?h.top:0),n=a.containerElement.get(0)===a.element.parent().get(0),o=/relative|absolute/.test(a.containerElement.css("position")),n&&o?(a.offset.left=a.parentData.left+a.position.left,a.offset.top=a.parentData.top+a.position.top):(a.offset.left=a.element.offset().left,a.offset.top=a.element.offset().top),i=Math.abs(a.sizeDiff.width+(a._helper?a.offset.left-u.left:a.offset.left-h.left)),s=Math.abs(a.sizeDiff.height+(a._helper?a.offset.top-u.top:a.offset.top-h.top)),i+a.size.width>=a.parentData.width&&(a.size.width=a.parentData.width-i,c&&(a.size.height=a.size.width/a.aspectRatio,p=!1)),s+a.size.height>=a.parentData.height&&(a.size.height=a.parentData.height-s,c&&(a.size.width=a.size.height*a.aspectRatio,p=!1)),p||(a.position.left=a.prevPosition.left,a.position.top=a.prevPosition.top,a.size.width=a.prevSize.width,a.size.height=a.prevSize.height)},stop:function(){var e=t(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.containerPosition,o=e.containerElement,a=t(e.helper),r=a.offset(),h=a.outerWidth()-e.sizeDiff.width,l=a.outerHeight()-e.sizeDiff.height;e._helper&&!i.animate&&/relative/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l}),e._helper&&!i.animate&&/static/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l})}}),t.ui.plugin.add("resizable","alsoResize",{start:function(){var e=t(this).resizable("instance"),i=e.options;t(i.alsoResize).each(function(){var e=t(this);e.data("ui-resizable-alsoresize",{width:parseFloat(e.width()),height:parseFloat(e.height()),left:parseFloat(e.css("left")),top:parseFloat(e.css("top"))})})},resize:function(e,i){var s=t(this).resizable("instance"),n=s.options,o=s.originalSize,a=s.originalPosition,r={height:s.size.height-o.height||0,width:s.size.width-o.width||0,top:s.position.top-a.top||0,left:s.position.left-a.left||0};t(n.alsoResize).each(function(){var e=t(this),s=t(this).data("ui-resizable-alsoresize"),n={},o=e.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];t.each(o,function(t,e){var i=(s[e]||0)+(r[e]||0);i&&i>=0&&(n[e]=i||null)}),e.css(n)})},stop:function(){t(this).removeData("ui-resizable-alsoresize")}}),t.ui.plugin.add("resizable","ghost",{start:function(){var e=t(this).resizable("instance"),i=e.size;e.ghost=e.originalElement.clone(),e.ghost.css({opacity:.25,display:"block",position:"relative",height:i.height,width:i.width,margin:0,left:0,top:0}),e._addClass(e.ghost,"ui-resizable-ghost"),t.uiBackCompat!==!1&&"string"==typeof e.options.ghost&&e.ghost.addClass(this.options.ghost),e.ghost.appendTo(e.helper)},resize:function(){var e=t(this).resizable("instance");e.ghost&&e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})},stop:function(){var e=t(this).resizable("instance");e.ghost&&e.helper&&e.helper.get(0).removeChild(e.ghost.get(0))}}),t.ui.plugin.add("resizable","grid",{resize:function(){var e,i=t(this).resizable("instance"),s=i.options,n=i.size,o=i.originalSize,a=i.originalPosition,r=i.axis,h="number"==typeof s.grid?[s.grid,s.grid]:s.grid,l=h[0]||1,c=h[1]||1,u=Math.round((n.width-o.width)/l)*l,d=Math.round((n.height-o.height)/c)*c,p=o.width+u,f=o.height+d,g=s.maxWidth&&p>s.maxWidth,m=s.maxHeight&&f>s.maxHeight,_=s.minWidth&&s.minWidth>p,v=s.minHeight&&s.minHeight>f;s.grid=h,_&&(p+=l),v&&(f+=c),g&&(p-=l),m&&(f-=c),/^(se|s|e)$/.test(r)?(i.size.width=p,i.size.height=f):/^(ne)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.top=a.top-d):/^(sw)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.left=a.left-u):((0>=f-c||0>=p-l)&&(e=i._getPaddingPlusBorderDimensions(this)),f-c>0?(i.size.height=f,i.position.top=a.top-d):(f=c-e.height,i.size.height=f,i.position.top=a.top+o.height-f),p-l>0?(i.size.width=p,i.position.left=a.left-u):(p=l-e.width,i.size.width=p,i.position.left=a.left+o.width-p))}}),t.ui.resizable,t.widget("ui.dialog",{version:"1.12.1",options:{appendTo:"body",autoOpen:!0,buttons:[],classes:{"ui-dialog":"ui-corner-all","ui-dialog-titlebar":"ui-corner-all"},closeOnEscape:!0,closeText:"Close",draggable:!0,hide:null,height:"auto",maxHeight:null,maxWidth:null,minHeight:150,minWidth:150,modal:!1,position:{my:"center",at:"center",of:window,collision:"fit",using:function(e){var i=t(this).css(e).offset().top;0>i&&t(this).css("top",e.top-i)}},resizable:!0,show:null,title:null,width:300,beforeClose:null,close:null,drag:null,dragStart:null,dragStop:null,focus:null,open:null,resize:null,resizeStart:null,resizeStop:null},sizeRelatedOptions:{buttons:!0,height:!0,maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0,width:!0},resizableRelatedOptions:{maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0},_create:function(){this.originalCss={display:this.element[0].style.display,width:this.element[0].style.width,minHeight:this.element[0].style.minHeight,maxHeight:this.element[0].style.maxHeight,height:this.element[0].style.height},this.originalPosition={parent:this.element.parent(),index:this.element.parent().children().index(this.element)},this.originalTitle=this.element.attr("title"),null==this.options.title&&null!=this.originalTitle&&(this.options.title=this.originalTitle),this.options.disabled&&(this.options.disabled=!1),this._createWrapper(),this.element.show().removeAttr("title").appendTo(this.uiDialog),this._addClass("ui-dialog-content","ui-widget-content"),this._createTitlebar(),this._createButtonPane(),this.options.draggable&&t.fn.draggable&&this._makeDraggable(),this.options.resizable&&t.fn.resizable&&this._makeResizable(),this._isOpen=!1,this._trackFocus()},_init:function(){this.options.autoOpen&&this.open()},_appendTo:function(){var e=this.options.appendTo;return e&&(e.jquery||e.nodeType)?t(e):this.document.find(e||"body").eq(0)},_destroy:function(){var t,e=this.originalPosition;this._untrackInstance(),this._destroyOverlay(),this.element.removeUniqueId().css(this.originalCss).detach(),this.uiDialog.remove(),this.originalTitle&&this.element.attr("title",this.originalTitle),t=e.parent.children().eq(e.index),t.length&&t[0]!==this.element[0]?t.before(this.element):e.parent.append(this.element)},widget:function(){return this.uiDialog
-},disable:t.noop,enable:t.noop,close:function(e){var i=this;this._isOpen&&this._trigger("beforeClose",e)!==!1&&(this._isOpen=!1,this._focusedElement=null,this._destroyOverlay(),this._untrackInstance(),this.opener.filter(":focusable").trigger("focus").length||t.ui.safeBlur(t.ui.safeActiveElement(this.document[0])),this._hide(this.uiDialog,this.options.hide,function(){i._trigger("close",e)}))},isOpen:function(){return this._isOpen},moveToTop:function(){this._moveToTop()},_moveToTop:function(e,i){var s=!1,n=this.uiDialog.siblings(".ui-front:visible").map(function(){return+t(this).css("z-index")}).get(),o=Math.max.apply(null,n);return o>=+this.uiDialog.css("z-index")&&(this.uiDialog.css("z-index",o+1),s=!0),s&&!i&&this._trigger("focus",e),s},open:function(){var e=this;return this._isOpen?(this._moveToTop()&&this._focusTabbable(),void 0):(this._isOpen=!0,this.opener=t(t.ui.safeActiveElement(this.document[0])),this._size(),this._position(),this._createOverlay(),this._moveToTop(null,!0),this.overlay&&this.overlay.css("z-index",this.uiDialog.css("z-index")-1),this._show(this.uiDialog,this.options.show,function(){e._focusTabbable(),e._trigger("focus")}),this._makeFocusTarget(),this._trigger("open"),void 0)},_focusTabbable:function(){var t=this._focusedElement;t||(t=this.element.find("[autofocus]")),t.length||(t=this.element.find(":tabbable")),t.length||(t=this.uiDialogButtonPane.find(":tabbable")),t.length||(t=this.uiDialogTitlebarClose.filter(":tabbable")),t.length||(t=this.uiDialog),t.eq(0).trigger("focus")},_keepFocus:function(e){function i(){var e=t.ui.safeActiveElement(this.document[0]),i=this.uiDialog[0]===e||t.contains(this.uiDialog[0],e);i||this._focusTabbable()}e.preventDefault(),i.call(this),this._delay(i)},_createWrapper:function(){this.uiDialog=t("<div>").hide().attr({tabIndex:-1,role:"dialog"}).appendTo(this._appendTo()),this._addClass(this.uiDialog,"ui-dialog","ui-widget ui-widget-content ui-front"),this._on(this.uiDialog,{keydown:function(e){if(this.options.closeOnEscape&&!e.isDefaultPrevented()&&e.keyCode&&e.keyCode===t.ui.keyCode.ESCAPE)return e.preventDefault(),this.close(e),void 0;if(e.keyCode===t.ui.keyCode.TAB&&!e.isDefaultPrevented()){var i=this.uiDialog.find(":tabbable"),s=i.filter(":first"),n=i.filter(":last");e.target!==n[0]&&e.target!==this.uiDialog[0]||e.shiftKey?e.target!==s[0]&&e.target!==this.uiDialog[0]||!e.shiftKey||(this._delay(function(){n.trigger("focus")}),e.preventDefault()):(this._delay(function(){s.trigger("focus")}),e.preventDefault())}},mousedown:function(t){this._moveToTop(t)&&this._focusTabbable()}}),this.element.find("[aria-describedby]").length||this.uiDialog.attr({"aria-describedby":this.element.uniqueId().attr("id")})},_createTitlebar:function(){var e;this.uiDialogTitlebar=t("<div>"),this._addClass(this.uiDialogTitlebar,"ui-dialog-titlebar","ui-widget-header ui-helper-clearfix"),this._on(this.uiDialogTitlebar,{mousedown:function(e){t(e.target).closest(".ui-dialog-titlebar-close")||this.uiDialog.trigger("focus")}}),this.uiDialogTitlebarClose=t("<button type='button'></button>").button({label:t("<a>").text(this.options.closeText).html(),icon:"ui-icon-closethick",showLabel:!1}).appendTo(this.uiDialogTitlebar),this._addClass(this.uiDialogTitlebarClose,"ui-dialog-titlebar-close"),this._on(this.uiDialogTitlebarClose,{click:function(t){t.preventDefault(),this.close(t)}}),e=t("<span>").uniqueId().prependTo(this.uiDialogTitlebar),this._addClass(e,"ui-dialog-title"),this._title(e),this.uiDialogTitlebar.prependTo(this.uiDialog),this.uiDialog.attr({"aria-labelledby":e.attr("id")})},_title:function(t){this.options.title?t.text(this.options.title):t.html("&#160;")},_createButtonPane:function(){this.uiDialogButtonPane=t("<div>"),this._addClass(this.uiDialogButtonPane,"ui-dialog-buttonpane","ui-widget-content ui-helper-clearfix"),this.uiButtonSet=t("<div>").appendTo(this.uiDialogButtonPane),this._addClass(this.uiButtonSet,"ui-dialog-buttonset"),this._createButtons()},_createButtons:function(){var e=this,i=this.options.buttons;return this.uiDialogButtonPane.remove(),this.uiButtonSet.empty(),t.isEmptyObject(i)||t.isArray(i)&&!i.length?(this._removeClass(this.uiDialog,"ui-dialog-buttons"),void 0):(t.each(i,function(i,s){var n,o;s=t.isFunction(s)?{click:s,text:i}:s,s=t.extend({type:"button"},s),n=s.click,o={icon:s.icon,iconPosition:s.iconPosition,showLabel:s.showLabel,icons:s.icons,text:s.text},delete s.click,delete s.icon,delete s.iconPosition,delete s.showLabel,delete s.icons,"boolean"==typeof s.text&&delete s.text,t("<button></button>",s).button(o).appendTo(e.uiButtonSet).on("click",function(){n.apply(e.element[0],arguments)})}),this._addClass(this.uiDialog,"ui-dialog-buttons"),this.uiDialogButtonPane.appendTo(this.uiDialog),void 0)},_makeDraggable:function(){function e(t){return{position:t.position,offset:t.offset}}var i=this,s=this.options;this.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close",handle:".ui-dialog-titlebar",containment:"document",start:function(s,n){i._addClass(t(this),"ui-dialog-dragging"),i._blockFrames(),i._trigger("dragStart",s,e(n))},drag:function(t,s){i._trigger("drag",t,e(s))},stop:function(n,o){var a=o.offset.left-i.document.scrollLeft(),r=o.offset.top-i.document.scrollTop();s.position={my:"left top",at:"left"+(a>=0?"+":"")+a+" "+"top"+(r>=0?"+":"")+r,of:i.window},i._removeClass(t(this),"ui-dialog-dragging"),i._unblockFrames(),i._trigger("dragStop",n,e(o))}})},_makeResizable:function(){function e(t){return{originalPosition:t.originalPosition,originalSize:t.originalSize,position:t.position,size:t.size}}var i=this,s=this.options,n=s.resizable,o=this.uiDialog.css("position"),a="string"==typeof n?n:"n,e,s,w,se,sw,ne,nw";this.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:this.element,maxWidth:s.maxWidth,maxHeight:s.maxHeight,minWidth:s.minWidth,minHeight:this._minHeight(),handles:a,start:function(s,n){i._addClass(t(this),"ui-dialog-resizing"),i._blockFrames(),i._trigger("resizeStart",s,e(n))},resize:function(t,s){i._trigger("resize",t,e(s))},stop:function(n,o){var a=i.uiDialog.offset(),r=a.left-i.document.scrollLeft(),h=a.top-i.document.scrollTop();s.height=i.uiDialog.height(),s.width=i.uiDialog.width(),s.position={my:"left top",at:"left"+(r>=0?"+":"")+r+" "+"top"+(h>=0?"+":"")+h,of:i.window},i._removeClass(t(this),"ui-dialog-resizing"),i._unblockFrames(),i._trigger("resizeStop",n,e(o))}}).css("position",o)},_trackFocus:function(){this._on(this.widget(),{focusin:function(e){this._makeFocusTarget(),this._focusedElement=t(e.target)}})},_makeFocusTarget:function(){this._untrackInstance(),this._trackingInstances().unshift(this)},_untrackInstance:function(){var e=this._trackingInstances(),i=t.inArray(this,e);-1!==i&&e.splice(i,1)},_trackingInstances:function(){var t=this.document.data("ui-dialog-instances");return t||(t=[],this.document.data("ui-dialog-instances",t)),t},_minHeight:function(){var t=this.options;return"auto"===t.height?t.minHeight:Math.min(t.minHeight,t.height)},_position:function(){var t=this.uiDialog.is(":visible");t||this.uiDialog.show(),this.uiDialog.position(this.options.position),t||this.uiDialog.hide()},_setOptions:function(e){var i=this,s=!1,n={};t.each(e,function(t,e){i._setOption(t,e),t in i.sizeRelatedOptions&&(s=!0),t in i.resizableRelatedOptions&&(n[t]=e)}),s&&(this._size(),this._position()),this.uiDialog.is(":data(ui-resizable)")&&this.uiDialog.resizable("option",n)},_setOption:function(e,i){var s,n,o=this.uiDialog;"disabled"!==e&&(this._super(e,i),"appendTo"===e&&this.uiDialog.appendTo(this._appendTo()),"buttons"===e&&this._createButtons(),"closeText"===e&&this.uiDialogTitlebarClose.button({label:t("<a>").text(""+this.options.closeText).html()}),"draggable"===e&&(s=o.is(":data(ui-draggable)"),s&&!i&&o.draggable("destroy"),!s&&i&&this._makeDraggable()),"position"===e&&this._position(),"resizable"===e&&(n=o.is(":data(ui-resizable)"),n&&!i&&o.resizable("destroy"),n&&"string"==typeof i&&o.resizable("option","handles",i),n||i===!1||this._makeResizable()),"title"===e&&this._title(this.uiDialogTitlebar.find(".ui-dialog-title")))},_size:function(){var t,e,i,s=this.options;this.element.show().css({width:"auto",minHeight:0,maxHeight:"none",height:0}),s.minWidth>s.width&&(s.width=s.minWidth),t=this.uiDialog.css({height:"auto",width:s.width}).outerHeight(),e=Math.max(0,s.minHeight-t),i="number"==typeof s.maxHeight?Math.max(0,s.maxHeight-t):"none","auto"===s.height?this.element.css({minHeight:e,maxHeight:i,height:"auto"}):this.element.height(Math.max(0,s.height-t)),this.uiDialog.is(":data(ui-resizable)")&&this.uiDialog.resizable("option","minHeight",this._minHeight())},_blockFrames:function(){this.iframeBlocks=this.document.find("iframe").map(function(){var e=t(this);return t("<div>").css({position:"absolute",width:e.outerWidth(),height:e.outerHeight()}).appendTo(e.parent()).offset(e.offset())[0]})},_unblockFrames:function(){this.iframeBlocks&&(this.iframeBlocks.remove(),delete this.iframeBlocks)},_allowInteraction:function(e){return t(e.target).closest(".ui-dialog").length?!0:!!t(e.target).closest(".ui-datepicker").length},_createOverlay:function(){if(this.options.modal){var e=!0;this._delay(function(){e=!1}),this.document.data("ui-dialog-overlays")||this._on(this.document,{focusin:function(t){e||this._allowInteraction(t)||(t.preventDefault(),this._trackingInstances()[0]._focusTabbable())}}),this.overlay=t("<div>").appendTo(this._appendTo()),this._addClass(this.overlay,null,"ui-widget-overlay ui-front"),this._on(this.overlay,{mousedown:"_keepFocus"}),this.document.data("ui-dialog-overlays",(this.document.data("ui-dialog-overlays")||0)+1)}},_destroyOverlay:function(){if(this.options.modal&&this.overlay){var t=this.document.data("ui-dialog-overlays")-1;t?this.document.data("ui-dialog-overlays",t):(this._off(this.document,"focusin"),this.document.removeData("ui-dialog-overlays")),this.overlay.remove(),this.overlay=null}}}),t.uiBackCompat!==!1&&t.widget("ui.dialog",t.ui.dialog,{options:{dialogClass:""},_createWrapper:function(){this._super(),this.uiDialog.addClass(this.options.dialogClass)},_setOption:function(t,e){"dialogClass"===t&&this.uiDialog.removeClass(this.options.dialogClass).addClass(e),this._superApply(arguments)}}),t.ui.dialog,t.widget("ui.droppable",{version:"1.12.1",widgetEventPrefix:"drop",options:{accept:"*",addClasses:!0,greedy:!1,scope:"default",tolerance:"intersect",activate:null,deactivate:null,drop:null,out:null,over:null},_create:function(){var e,i=this.options,s=i.accept;this.isover=!1,this.isout=!0,this.accept=t.isFunction(s)?s:function(t){return t.is(s)},this.proportions=function(){return arguments.length?(e=arguments[0],void 0):e?e:e={width:this.element[0].offsetWidth,height:this.element[0].offsetHeight}},this._addToManager(i.scope),i.addClasses&&this._addClass("ui-droppable")},_addToManager:function(e){t.ui.ddmanager.droppables[e]=t.ui.ddmanager.droppables[e]||[],t.ui.ddmanager.droppables[e].push(this)},_splice:function(t){for(var e=0;t.length>e;e++)t[e]===this&&t.splice(e,1)},_destroy:function(){var e=t.ui.ddmanager.droppables[this.options.scope];this._splice(e)},_setOption:function(e,i){if("accept"===e)this.accept=t.isFunction(i)?i:function(t){return t.is(i)};else if("scope"===e){var s=t.ui.ddmanager.droppables[this.options.scope];this._splice(s),this._addToManager(i)}this._super(e,i)},_activate:function(e){var i=t.ui.ddmanager.current;this._addActiveClass(),i&&this._trigger("activate",e,this.ui(i))},_deactivate:function(e){var i=t.ui.ddmanager.current;this._removeActiveClass(),i&&this._trigger("deactivate",e,this.ui(i))},_over:function(e){var i=t.ui.ddmanager.current;i&&(i.currentItem||i.element)[0]!==this.element[0]&&this.accept.call(this.element[0],i.currentItem||i.element)&&(this._addHoverClass(),this._trigger("over",e,this.ui(i)))},_out:function(e){var i=t.ui.ddmanager.current;i&&(i.currentItem||i.element)[0]!==this.element[0]&&this.accept.call(this.element[0],i.currentItem||i.element)&&(this._removeHoverClass(),this._trigger("out",e,this.ui(i)))},_drop:function(e,i){var s=i||t.ui.ddmanager.current,n=!1;return s&&(s.currentItem||s.element)[0]!==this.element[0]?(this.element.find(":data(ui-droppable)").not(".ui-draggable-dragging").each(function(){var i=t(this).droppable("instance");return i.options.greedy&&!i.options.disabled&&i.options.scope===s.options.scope&&i.accept.call(i.element[0],s.currentItem||s.element)&&v(s,t.extend(i,{offset:i.element.offset()}),i.options.tolerance,e)?(n=!0,!1):void 0}),n?!1:this.accept.call(this.element[0],s.currentItem||s.element)?(this._removeActiveClass(),this._removeHoverClass(),this._trigger("drop",e,this.ui(s)),this.element):!1):!1},ui:function(t){return{draggable:t.currentItem||t.element,helper:t.helper,position:t.position,offset:t.positionAbs}},_addHoverClass:function(){this._addClass("ui-droppable-hover")},_removeHoverClass:function(){this._removeClass("ui-droppable-hover")},_addActiveClass:function(){this._addClass("ui-droppable-active")},_removeActiveClass:function(){this._removeClass("ui-droppable-active")}});var v=t.ui.intersect=function(){function t(t,e,i){return t>=e&&e+i>t}return function(e,i,s,n){if(!i.offset)return!1;var o=(e.positionAbs||e.position.absolute).left+e.margins.left,a=(e.positionAbs||e.position.absolute).top+e.margins.top,r=o+e.helperProportions.width,h=a+e.helperProportions.height,l=i.offset.left,c=i.offset.top,u=l+i.proportions().width,d=c+i.proportions().height;switch(s){case"fit":return o>=l&&u>=r&&a>=c&&d>=h;case"intersect":return o+e.helperProportions.width/2>l&&u>r-e.helperProportions.width/2&&a+e.helperProportions.height/2>c&&d>h-e.helperProportions.height/2;case"pointer":return t(n.pageY,c,i.proportions().height)&&t(n.pageX,l,i.proportions().width);case"touch":return(a>=c&&d>=a||h>=c&&d>=h||c>a&&h>d)&&(o>=l&&u>=o||r>=l&&u>=r||l>o&&r>u);default:return!1}}}();t.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(e,i){var s,n,o=t.ui.ddmanager.droppables[e.options.scope]||[],a=i?i.type:null,r=(e.currentItem||e.element).find(":data(ui-droppable)").addBack();t:for(s=0;o.length>s;s++)if(!(o[s].options.disabled||e&&!o[s].accept.call(o[s].element[0],e.currentItem||e.element))){for(n=0;r.length>n;n++)if(r[n]===o[s].element[0]){o[s].proportions().height=0;continue t}o[s].visible="none"!==o[s].element.css("display"),o[s].visible&&("mousedown"===a&&o[s]._activate.call(o[s],i),o[s].offset=o[s].element.offset(),o[s].proportions({width:o[s].element[0].offsetWidth,height:o[s].element[0].offsetHeight}))}},drop:function(e,i){var s=!1;return t.each((t.ui.ddmanager.droppables[e.options.scope]||[]).slice(),function(){this.options&&(!this.options.disabled&&this.visible&&v(e,this,this.options.tolerance,i)&&(s=this._drop.call(this,i)||s),!this.options.disabled&&this.visible&&this.accept.call(this.element[0],e.currentItem||e.element)&&(this.isout=!0,this.isover=!1,this._deactivate.call(this,i)))}),s},dragStart:function(e,i){e.element.parentsUntil("body").on("scroll.droppable",function(){e.options.refreshPositions||t.ui.ddmanager.prepareOffsets(e,i)})},drag:function(e,i){e.options.refreshPositions&&t.ui.ddmanager.prepareOffsets(e,i),t.each(t.ui.ddmanager.droppables[e.options.scope]||[],function(){if(!this.options.disabled&&!this.greedyChild&&this.visible){var s,n,o,a=v(e,this,this.options.tolerance,i),r=!a&&this.isover?"isout":a&&!this.isover?"isover":null;r&&(this.options.greedy&&(n=this.options.scope,o=this.element.parents(":data(ui-droppable)").filter(function(){return t(this).droppable("instance").options.scope===n}),o.length&&(s=t(o[0]).droppable("instance"),s.greedyChild="isover"===r)),s&&"isover"===r&&(s.isover=!1,s.isout=!0,s._out.call(s,i)),this[r]=!0,this["isout"===r?"isover":"isout"]=!1,this["isover"===r?"_over":"_out"].call(this,i),s&&"isout"===r&&(s.isout=!1,s.isover=!0,s._over.call(s,i)))}})},dragStop:function(e,i){e.element.parentsUntil("body").off("scroll.droppable"),e.options.refreshPositions||t.ui.ddmanager.prepareOffsets(e,i)}},t.uiBackCompat!==!1&&t.widget("ui.droppable",t.ui.droppable,{options:{hoverClass:!1,activeClass:!1},_addActiveClass:function(){this._super(),this.options.activeClass&&this.element.addClass(this.options.activeClass)},_removeActiveClass:function(){this._super(),this.options.activeClass&&this.element.removeClass(this.options.activeClass)},_addHoverClass:function(){this._super(),this.options.hoverClass&&this.element.addClass(this.options.hoverClass)},_removeHoverClass:function(){this._super(),this.options.hoverClass&&this.element.removeClass(this.options.hoverClass)}}),t.ui.droppable,t.widget("ui.progressbar",{version:"1.12.1",options:{classes:{"ui-progressbar":"ui-corner-all","ui-progressbar-value":"ui-corner-left","ui-progressbar-complete":"ui-corner-right"},max:100,value:0,change:null,complete:null},min:0,_create:function(){this.oldValue=this.options.value=this._constrainedValue(),this.element.attr({role:"progressbar","aria-valuemin":this.min}),this._addClass("ui-progressbar","ui-widget ui-widget-content"),this.valueDiv=t("<div>").appendTo(this.element),this._addClass(this.valueDiv,"ui-progressbar-value","ui-widget-header"),this._refreshValue()},_destroy:function(){this.element.removeAttr("role aria-valuemin aria-valuemax aria-valuenow"),this.valueDiv.remove()},value:function(t){return void 0===t?this.options.value:(this.options.value=this._constrainedValue(t),this._refreshValue(),void 0)},_constrainedValue:function(t){return void 0===t&&(t=this.options.value),this.indeterminate=t===!1,"number"!=typeof t&&(t=0),this.indeterminate?!1:Math.min(this.options.max,Math.max(this.min,t))},_setOptions:function(t){var e=t.value;delete t.value,this._super(t),this.options.value=this._constrainedValue(e),this._refreshValue()},_setOption:function(t,e){"max"===t&&(e=Math.max(this.min,e)),this._super(t,e)},_setOptionDisabled:function(t){this._super(t),this.element.attr("aria-disabled",t),this._toggleClass(null,"ui-state-disabled",!!t)},_percentage:function(){return this.indeterminate?100:100*(this.options.value-this.min)/(this.options.max-this.min)},_refreshValue:function(){var e=this.options.value,i=this._percentage();this.valueDiv.toggle(this.indeterminate||e>this.min).width(i.toFixed(0)+"%"),this._toggleClass(this.valueDiv,"ui-progressbar-complete",null,e===this.options.max)._toggleClass("ui-progressbar-indeterminate",null,this.indeterminate),this.indeterminate?(this.element.removeAttr("aria-valuenow"),this.overlayDiv||(this.overlayDiv=t("<div>").appendTo(this.valueDiv),this._addClass(this.overlayDiv,"ui-progressbar-overlay"))):(this.element.attr({"aria-valuemax":this.options.max,"aria-valuenow":e}),this.overlayDiv&&(this.overlayDiv.remove(),this.overlayDiv=null)),this.oldValue!==e&&(this.oldValue=e,this._trigger("change")),e===this.options.max&&this._trigger("complete")}}),t.widget("ui.selectable",t.ui.mouse,{version:"1.12.1",options:{appendTo:"body",autoRefresh:!0,distance:0,filter:"*",tolerance:"touch",selected:null,selecting:null,start:null,stop:null,unselected:null,unselecting:null},_create:function(){var e=this;this._addClass("ui-selectable"),this.dragged=!1,this.refresh=function(){e.elementPos=t(e.element[0]).offset(),e.selectees=t(e.options.filter,e.element[0]),e._addClass(e.selectees,"ui-selectee"),e.selectees.each(function(){var i=t(this),s=i.offset(),n={left:s.left-e.elementPos.left,top:s.top-e.elementPos.top};t.data(this,"selectable-item",{element:this,$element:i,left:n.left,top:n.top,right:n.left+i.outerWidth(),bottom:n.top+i.outerHeight(),startselected:!1,selected:i.hasClass("ui-selected"),selecting:i.hasClass("ui-selecting"),unselecting:i.hasClass("ui-unselecting")})})},this.refresh(),this._mouseInit(),this.helper=t("<div>"),this._addClass(this.helper,"ui-selectable-helper")},_destroy:function(){this.selectees.removeData("selectable-item"),this._mouseDestroy()},_mouseStart:function(e){var i=this,s=this.options;this.opos=[e.pageX,e.pageY],this.elementPos=t(this.element[0]).offset(),this.options.disabled||(this.selectees=t(s.filter,this.element[0]),this._trigger("start",e),t(s.appendTo).append(this.helper),this.helper.css({left:e.pageX,top:e.pageY,width:0,height:0}),s.autoRefresh&&this.refresh(),this.selectees.filter(".ui-selected").each(function(){var s=t.data(this,"selectable-item");s.startselected=!0,e.metaKey||e.ctrlKey||(i._removeClass(s.$element,"ui-selected"),s.selected=!1,i._addClass(s.$element,"ui-unselecting"),s.unselecting=!0,i._trigger("unselecting",e,{unselecting:s.element}))}),t(e.target).parents().addBack().each(function(){var s,n=t.data(this,"selectable-item");return n?(s=!e.metaKey&&!e.ctrlKey||!n.$element.hasClass("ui-selected"),i._removeClass(n.$element,s?"ui-unselecting":"ui-selected")._addClass(n.$element,s?"ui-selecting":"ui-unselecting"),n.unselecting=!s,n.selecting=s,n.selected=s,s?i._trigger("selecting",e,{selecting:n.element}):i._trigger("unselecting",e,{unselecting:n.element}),!1):void 0}))},_mouseDrag:function(e){if(this.dragged=!0,!this.options.disabled){var i,s=this,n=this.options,o=this.opos[0],a=this.opos[1],r=e.pageX,h=e.pageY;return o>r&&(i=r,r=o,o=i),a>h&&(i=h,h=a,a=i),this.helper.css({left:o,top:a,width:r-o,height:h-a}),this.selectees.each(function(){var i=t.data(this,"selectable-item"),l=!1,c={};i&&i.element!==s.element[0]&&(c.left=i.left+s.elementPos.left,c.right=i.right+s.elementPos.left,c.top=i.top+s.elementPos.top,c.bottom=i.bottom+s.elementPos.top,"touch"===n.tolerance?l=!(c.left>r||o>c.right||c.top>h||a>c.bottom):"fit"===n.tolerance&&(l=c.left>o&&r>c.right&&c.top>a&&h>c.bottom),l?(i.selected&&(s._removeClass(i.$element,"ui-selected"),i.selected=!1),i.unselecting&&(s._removeClass(i.$element,"ui-unselecting"),i.unselecting=!1),i.selecting||(s._addClass(i.$element,"ui-selecting"),i.selecting=!0,s._trigger("selecting",e,{selecting:i.element}))):(i.selecting&&((e.metaKey||e.ctrlKey)&&i.startselected?(s._removeClass(i.$element,"ui-selecting"),i.selecting=!1,s._addClass(i.$element,"ui-selected"),i.selected=!0):(s._removeClass(i.$element,"ui-selecting"),i.selecting=!1,i.startselected&&(s._addClass(i.$element,"ui-unselecting"),i.unselecting=!0),s._trigger("unselecting",e,{unselecting:i.element}))),i.selected&&(e.metaKey||e.ctrlKey||i.startselected||(s._removeClass(i.$element,"ui-selected"),i.selected=!1,s._addClass(i.$element,"ui-unselecting"),i.unselecting=!0,s._trigger("unselecting",e,{unselecting:i.element})))))}),!1}},_mouseStop:function(e){var i=this;return this.dragged=!1,t(".ui-unselecting",this.element[0]).each(function(){var s=t.data(this,"selectable-item");i._removeClass(s.$element,"ui-unselecting"),s.unselecting=!1,s.startselected=!1,i._trigger("unselected",e,{unselected:s.element})}),t(".ui-selecting",this.element[0]).each(function(){var s=t.data(this,"selectable-item");i._removeClass(s.$element,"ui-selecting")._addClass(s.$element,"ui-selected"),s.selecting=!1,s.selected=!0,s.startselected=!0,i._trigger("selected",e,{selected:s.element})}),this._trigger("stop",e),this.helper.remove(),!1}}),t.widget("ui.selectmenu",[t.ui.formResetMixin,{version:"1.12.1",defaultElement:"<select>",options:{appendTo:null,classes:{"ui-selectmenu-button-open":"ui-corner-top","ui-selectmenu-button-closed":"ui-corner-all"},disabled:null,icons:{button:"ui-icon-triangle-1-s"},position:{my:"left top",at:"left bottom",collision:"none"},width:!1,change:null,close:null,focus:null,open:null,select:null},_create:function(){var e=this.element.uniqueId().attr("id");this.ids={element:e,button:e+"-button",menu:e+"-menu"},this._drawButton(),this._drawMenu(),this._bindFormResetHandler(),this._rendered=!1,this.menuItems=t()},_drawButton:function(){var e,i=this,s=this._parseOption(this.element.find("option:selected"),this.element[0].selectedIndex);this.labels=this.element.labels().attr("for",this.ids.button),this._on(this.labels,{click:function(t){this.button.focus(),t.preventDefault()}}),this.element.hide(),this.button=t("<span>",{tabindex:this.options.disabled?-1:0,id:this.ids.button,role:"combobox","aria-expanded":"false","aria-autocomplete":"list","aria-owns":this.ids.menu,"aria-haspopup":"true",title:this.element.attr("title")}).insertAfter(this.element),this._addClass(this.button,"ui-selectmenu-button ui-selectmenu-button-closed","ui-button ui-widget"),e=t("<span>").appendTo(this.button),this._addClass(e,"ui-selectmenu-icon","ui-icon "+this.options.icons.button),this.buttonItem=this._renderButtonItem(s).appendTo(this.button),this.options.width!==!1&&this._resizeButton(),this._on(this.button,this._buttonEvents),this.button.one("focusin",function(){i._rendered||i._refreshMenu()})},_drawMenu:function(){var e=this;this.menu=t("<ul>",{"aria-hidden":"true","aria-labelledby":this.ids.button,id:this.ids.menu}),this.menuWrap=t("<div>").append(this.menu),this._addClass(this.menuWrap,"ui-selectmenu-menu","ui-front"),this.menuWrap.appendTo(this._appendTo()),this.menuInstance=this.menu.menu({classes:{"ui-menu":"ui-corner-bottom"},role:"listbox",select:function(t,i){t.preventDefault(),e._setSelection(),e._select(i.item.data("ui-selectmenu-item"),t)},focus:function(t,i){var s=i.item.data("ui-selectmenu-item");null!=e.focusIndex&&s.index!==e.focusIndex&&(e._trigger("focus",t,{item:s}),e.isOpen||e._select(s,t)),e.focusIndex=s.index,e.button.attr("aria-activedescendant",e.menuItems.eq(s.index).attr("id"))}}).menu("instance"),this.menuInstance._off(this.menu,"mouseleave"),this.menuInstance._closeOnDocumentClick=function(){return!1},this.menuInstance._isDivider=function(){return!1}},refresh:function(){this._refreshMenu(),this.buttonItem.replaceWith(this.buttonItem=this._renderButtonItem(this._getSelectedItem().data("ui-selectmenu-item")||{})),null===this.options.width&&this._resizeButton()},_refreshMenu:function(){var t,e=this.element.find("option");this.menu.empty(),this._parseOptions(e),this._renderMenu(this.menu,this.items),this.menuInstance.refresh(),this.menuItems=this.menu.find("li").not(".ui-selectmenu-optgroup").find(".ui-menu-item-wrapper"),this._rendered=!0,e.length&&(t=this._getSelectedItem(),this.menuInstance.focus(null,t),this._setAria(t.data("ui-selectmenu-item")),this._setOption("disabled",this.element.prop("disabled")))},open:function(t){this.options.disabled||(this._rendered?(this._removeClass(this.menu.find(".ui-state-active"),null,"ui-state-active"),this.menuInstance.focus(null,this._getSelectedItem())):this._refreshMenu(),this.menuItems.length&&(this.isOpen=!0,this._toggleAttr(),this._resizeMenu(),this._position(),this._on(this.document,this._documentClick),this._trigger("open",t)))},_position:function(){this.menuWrap.position(t.extend({of:this.button},this.options.position))},close:function(t){this.isOpen&&(this.isOpen=!1,this._toggleAttr(),this.range=null,this._off(this.document),this._trigger("close",t))},widget:function(){return this.button},menuWidget:function(){return this.menu},_renderButtonItem:function(e){var i=t("<span>");return this._setText(i,e.label),this._addClass(i,"ui-selectmenu-text"),i},_renderMenu:function(e,i){var s=this,n="";t.each(i,function(i,o){var a;o.optgroup!==n&&(a=t("<li>",{text:o.optgroup}),s._addClass(a,"ui-selectmenu-optgroup","ui-menu-divider"+(o.element.parent("optgroup").prop("disabled")?" ui-state-disabled":"")),a.appendTo(e),n=o.optgroup),s._renderItemData(e,o)})},_renderItemData:function(t,e){return this._renderItem(t,e).data("ui-selectmenu-item",e)},_renderItem:function(e,i){var s=t("<li>"),n=t("<div>",{title:i.element.attr("title")});return i.disabled&&this._addClass(s,null,"ui-state-disabled"),this._setText(n,i.label),s.append(n).appendTo(e)},_setText:function(t,e){e?t.text(e):t.html("&#160;")},_move:function(t,e){var i,s,n=".ui-menu-item";this.isOpen?i=this.menuItems.eq(this.focusIndex).parent("li"):(i=this.menuItems.eq(this.element[0].selectedIndex).parent("li"),n+=":not(.ui-state-disabled)"),s="first"===t||"last"===t?i["first"===t?"prevAll":"nextAll"](n).eq(-1):i[t+"All"](n).eq(0),s.length&&this.menuInstance.focus(e,s)},_getSelectedItem:function(){return this.menuItems.eq(this.element[0].selectedIndex).parent("li")},_toggle:function(t){this[this.isOpen?"close":"open"](t)},_setSelection:function(){var t;this.range&&(window.getSelection?(t=window.getSelection(),t.removeAllRanges(),t.addRange(this.range)):this.range.select(),this.button.focus())},_documentClick:{mousedown:function(e){this.isOpen&&(t(e.target).closest(".ui-selectmenu-menu, #"+t.ui.escapeSelector(this.ids.button)).length||this.close(e))}},_buttonEvents:{mousedown:function(){var t;window.getSelection?(t=window.getSelection(),t.rangeCount&&(this.range=t.getRangeAt(0))):this.range=document.selection.createRange()},click:function(t){this._setSelection(),this._toggle(t)},keydown:function(e){var i=!0;switch(e.keyCode){case t.ui.keyCode.TAB:case t.ui.keyCode.ESCAPE:this.close(e),i=!1;break;case t.ui.keyCode.ENTER:this.isOpen&&this._selectFocusedItem(e);break;case t.ui.keyCode.UP:e.altKey?this._toggle(e):this._move("prev",e);break;case t.ui.keyCode.DOWN:e.altKey?this._toggle(e):this._move("next",e);break;case t.ui.keyCode.SPACE:this.isOpen?this._selectFocusedItem(e):this._toggle(e);break;case t.ui.keyCode.LEFT:this._move("prev",e);break;case t.ui.keyCode.RIGHT:this._move("next",e);break;case t.ui.keyCode.HOME:case t.ui.keyCode.PAGE_UP:this._move("first",e);break;case t.ui.keyCode.END:case t.ui.keyCode.PAGE_DOWN:this._move("last",e);break;default:this.menu.trigger(e),i=!1}i&&e.preventDefault()}},_selectFocusedItem:function(t){var e=this.menuItems.eq(this.focusIndex).parent("li");e.hasClass("ui-state-disabled")||this._select(e.data("ui-selectmenu-item"),t)},_select:function(t,e){var i=this.element[0].selectedIndex;this.element[0].selectedIndex=t.index,this.buttonItem.replaceWith(this.buttonItem=this._renderButtonItem(t)),this._setAria(t),this._trigger("select",e,{item:t}),t.index!==i&&this._trigger("change",e,{item:t}),this.close(e)},_setAria:function(t){var e=this.menuItems.eq(t.index).attr("id");this.button.attr({"aria-labelledby":e,"aria-activedescendant":e}),this.menu.attr("aria-activedescendant",e)},_setOption:function(t,e){if("icons"===t){var i=this.button.find("span.ui-icon");this._removeClass(i,null,this.options.icons.button)._addClass(i,null,e.button)}this._super(t,e),"appendTo"===t&&this.menuWrap.appendTo(this._appendTo()),"width"===t&&this._resizeButton()},_setOptionDisabled:function(t){this._super(t),this.menuInstance.option("disabled",t),this.button.attr("aria-disabled",t),this._toggleClass(this.button,null,"ui-state-disabled",t),this.element.prop("disabled",t),t?(this.button.attr("tabindex",-1),this.close()):this.button.attr("tabindex",0)},_appendTo:function(){var e=this.options.appendTo;return e&&(e=e.jquery||e.nodeType?t(e):this.document.find(e).eq(0)),e&&e[0]||(e=this.element.closest(".ui-front, dialog")),e.length||(e=this.document[0].body),e},_toggleAttr:function(){this.button.attr("aria-expanded",this.isOpen),this._removeClass(this.button,"ui-selectmenu-button-"+(this.isOpen?"closed":"open"))._addClass(this.button,"ui-selectmenu-button-"+(this.isOpen?"open":"closed"))._toggleClass(this.menuWrap,"ui-selectmenu-open",null,this.isOpen),this.menu.attr("aria-hidden",!this.isOpen)},_resizeButton:function(){var t=this.options.width;return t===!1?(this.button.css("width",""),void 0):(null===t&&(t=this.element.show().outerWidth(),this.element.hide()),this.button.outerWidth(t),void 0)},_resizeMenu:function(){this.menu.outerWidth(Math.max(this.button.outerWidth(),this.menu.width("").outerWidth()+1))},_getCreateOptions:function(){var t=this._super();return t.disabled=this.element.prop("disabled"),t},_parseOptions:function(e){var i=this,s=[];e.each(function(e,n){s.push(i._parseOption(t(n),e))}),this.items=s},_parseOption:function(t,e){var i=t.parent("optgroup");return{element:t,index:e,value:t.val(),label:t.text(),optgroup:i.attr("label")||"",disabled:i.prop("disabled")||t.prop("disabled")}},_destroy:function(){this._unbindFormResetHandler(),this.menuWrap.remove(),this.button.remove(),this.element.show(),this.element.removeUniqueId(),this.labels.attr("for",this.ids.element)}}]),t.widget("ui.slider",t.ui.mouse,{version:"1.12.1",widgetEventPrefix:"slide",options:{animate:!1,classes:{"ui-slider":"ui-corner-all","ui-slider-handle":"ui-corner-all","ui-slider-range":"ui-corner-all ui-widget-header"},distance:0,max:100,min:0,orientation:"horizontal",range:!1,step:1,value:0,values:null,change:null,slide:null,start:null,stop:null},numPages:5,_create:function(){this._keySliding=!1,this._mouseSliding=!1,this._animateOff=!0,this._handleIndex=null,this._detectOrientation(),this._mouseInit(),this._calculateNewMax(),this._addClass("ui-slider ui-slider-"+this.orientation,"ui-widget ui-widget-content"),this._refresh(),this._animateOff=!1
-},_refresh:function(){this._createRange(),this._createHandles(),this._setupEvents(),this._refreshValue()},_createHandles:function(){var e,i,s=this.options,n=this.element.find(".ui-slider-handle"),o="<span tabindex='0'></span>",a=[];for(i=s.values&&s.values.length||1,n.length>i&&(n.slice(i).remove(),n=n.slice(0,i)),e=n.length;i>e;e++)a.push(o);this.handles=n.add(t(a.join("")).appendTo(this.element)),this._addClass(this.handles,"ui-slider-handle","ui-state-default"),this.handle=this.handles.eq(0),this.handles.each(function(e){t(this).data("ui-slider-handle-index",e).attr("tabIndex",0)})},_createRange:function(){var e=this.options;e.range?(e.range===!0&&(e.values?e.values.length&&2!==e.values.length?e.values=[e.values[0],e.values[0]]:t.isArray(e.values)&&(e.values=e.values.slice(0)):e.values=[this._valueMin(),this._valueMin()]),this.range&&this.range.length?(this._removeClass(this.range,"ui-slider-range-min ui-slider-range-max"),this.range.css({left:"",bottom:""})):(this.range=t("<div>").appendTo(this.element),this._addClass(this.range,"ui-slider-range")),("min"===e.range||"max"===e.range)&&this._addClass(this.range,"ui-slider-range-"+e.range)):(this.range&&this.range.remove(),this.range=null)},_setupEvents:function(){this._off(this.handles),this._on(this.handles,this._handleEvents),this._hoverable(this.handles),this._focusable(this.handles)},_destroy:function(){this.handles.remove(),this.range&&this.range.remove(),this._mouseDestroy()},_mouseCapture:function(e){var i,s,n,o,a,r,h,l,c=this,u=this.options;return u.disabled?!1:(this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()},this.elementOffset=this.element.offset(),i={x:e.pageX,y:e.pageY},s=this._normValueFromMouse(i),n=this._valueMax()-this._valueMin()+1,this.handles.each(function(e){var i=Math.abs(s-c.values(e));(n>i||n===i&&(e===c._lastChangedValue||c.values(e)===u.min))&&(n=i,o=t(this),a=e)}),r=this._start(e,a),r===!1?!1:(this._mouseSliding=!0,this._handleIndex=a,this._addClass(o,null,"ui-state-active"),o.trigger("focus"),h=o.offset(),l=!t(e.target).parents().addBack().is(".ui-slider-handle"),this._clickOffset=l?{left:0,top:0}:{left:e.pageX-h.left-o.width()/2,top:e.pageY-h.top-o.height()/2-(parseInt(o.css("borderTopWidth"),10)||0)-(parseInt(o.css("borderBottomWidth"),10)||0)+(parseInt(o.css("marginTop"),10)||0)},this.handles.hasClass("ui-state-hover")||this._slide(e,a,s),this._animateOff=!0,!0))},_mouseStart:function(){return!0},_mouseDrag:function(t){var e={x:t.pageX,y:t.pageY},i=this._normValueFromMouse(e);return this._slide(t,this._handleIndex,i),!1},_mouseStop:function(t){return this._removeClass(this.handles,null,"ui-state-active"),this._mouseSliding=!1,this._stop(t,this._handleIndex),this._change(t,this._handleIndex),this._handleIndex=null,this._clickOffset=null,this._animateOff=!1,!1},_detectOrientation:function(){this.orientation="vertical"===this.options.orientation?"vertical":"horizontal"},_normValueFromMouse:function(t){var e,i,s,n,o;return"horizontal"===this.orientation?(e=this.elementSize.width,i=t.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)):(e=this.elementSize.height,i=t.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)),s=i/e,s>1&&(s=1),0>s&&(s=0),"vertical"===this.orientation&&(s=1-s),n=this._valueMax()-this._valueMin(),o=this._valueMin()+s*n,this._trimAlignValue(o)},_uiHash:function(t,e,i){var s={handle:this.handles[t],handleIndex:t,value:void 0!==e?e:this.value()};return this._hasMultipleValues()&&(s.value=void 0!==e?e:this.values(t),s.values=i||this.values()),s},_hasMultipleValues:function(){return this.options.values&&this.options.values.length},_start:function(t,e){return this._trigger("start",t,this._uiHash(e))},_slide:function(t,e,i){var s,n,o=this.value(),a=this.values();this._hasMultipleValues()&&(n=this.values(e?0:1),o=this.values(e),2===this.options.values.length&&this.options.range===!0&&(i=0===e?Math.min(n,i):Math.max(n,i)),a[e]=i),i!==o&&(s=this._trigger("slide",t,this._uiHash(e,i,a)),s!==!1&&(this._hasMultipleValues()?this.values(e,i):this.value(i)))},_stop:function(t,e){this._trigger("stop",t,this._uiHash(e))},_change:function(t,e){this._keySliding||this._mouseSliding||(this._lastChangedValue=e,this._trigger("change",t,this._uiHash(e)))},value:function(t){return arguments.length?(this.options.value=this._trimAlignValue(t),this._refreshValue(),this._change(null,0),void 0):this._value()},values:function(e,i){var s,n,o;if(arguments.length>1)return this.options.values[e]=this._trimAlignValue(i),this._refreshValue(),this._change(null,e),void 0;if(!arguments.length)return this._values();if(!t.isArray(arguments[0]))return this._hasMultipleValues()?this._values(e):this.value();for(s=this.options.values,n=arguments[0],o=0;s.length>o;o+=1)s[o]=this._trimAlignValue(n[o]),this._change(null,o);this._refreshValue()},_setOption:function(e,i){var s,n=0;switch("range"===e&&this.options.range===!0&&("min"===i?(this.options.value=this._values(0),this.options.values=null):"max"===i&&(this.options.value=this._values(this.options.values.length-1),this.options.values=null)),t.isArray(this.options.values)&&(n=this.options.values.length),this._super(e,i),e){case"orientation":this._detectOrientation(),this._removeClass("ui-slider-horizontal ui-slider-vertical")._addClass("ui-slider-"+this.orientation),this._refreshValue(),this.options.range&&this._refreshRange(i),this.handles.css("horizontal"===i?"bottom":"left","");break;case"value":this._animateOff=!0,this._refreshValue(),this._change(null,0),this._animateOff=!1;break;case"values":for(this._animateOff=!0,this._refreshValue(),s=n-1;s>=0;s--)this._change(null,s);this._animateOff=!1;break;case"step":case"min":case"max":this._animateOff=!0,this._calculateNewMax(),this._refreshValue(),this._animateOff=!1;break;case"range":this._animateOff=!0,this._refresh(),this._animateOff=!1}},_setOptionDisabled:function(t){this._super(t),this._toggleClass(null,"ui-state-disabled",!!t)},_value:function(){var t=this.options.value;return t=this._trimAlignValue(t)},_values:function(t){var e,i,s;if(arguments.length)return e=this.options.values[t],e=this._trimAlignValue(e);if(this._hasMultipleValues()){for(i=this.options.values.slice(),s=0;i.length>s;s+=1)i[s]=this._trimAlignValue(i[s]);return i}return[]},_trimAlignValue:function(t){if(this._valueMin()>=t)return this._valueMin();if(t>=this._valueMax())return this._valueMax();var e=this.options.step>0?this.options.step:1,i=(t-this._valueMin())%e,s=t-i;return 2*Math.abs(i)>=e&&(s+=i>0?e:-e),parseFloat(s.toFixed(5))},_calculateNewMax:function(){var t=this.options.max,e=this._valueMin(),i=this.options.step,s=Math.round((t-e)/i)*i;t=s+e,t>this.options.max&&(t-=i),this.max=parseFloat(t.toFixed(this._precision()))},_precision:function(){var t=this._precisionOf(this.options.step);return null!==this.options.min&&(t=Math.max(t,this._precisionOf(this.options.min))),t},_precisionOf:function(t){var e=""+t,i=e.indexOf(".");return-1===i?0:e.length-i-1},_valueMin:function(){return this.options.min},_valueMax:function(){return this.max},_refreshRange:function(t){"vertical"===t&&this.range.css({width:"",left:""}),"horizontal"===t&&this.range.css({height:"",bottom:""})},_refreshValue:function(){var e,i,s,n,o,a=this.options.range,r=this.options,h=this,l=this._animateOff?!1:r.animate,c={};this._hasMultipleValues()?this.handles.each(function(s){i=100*((h.values(s)-h._valueMin())/(h._valueMax()-h._valueMin())),c["horizontal"===h.orientation?"left":"bottom"]=i+"%",t(this).stop(1,1)[l?"animate":"css"](c,r.animate),h.options.range===!0&&("horizontal"===h.orientation?(0===s&&h.range.stop(1,1)[l?"animate":"css"]({left:i+"%"},r.animate),1===s&&h.range[l?"animate":"css"]({width:i-e+"%"},{queue:!1,duration:r.animate})):(0===s&&h.range.stop(1,1)[l?"animate":"css"]({bottom:i+"%"},r.animate),1===s&&h.range[l?"animate":"css"]({height:i-e+"%"},{queue:!1,duration:r.animate}))),e=i}):(s=this.value(),n=this._valueMin(),o=this._valueMax(),i=o!==n?100*((s-n)/(o-n)):0,c["horizontal"===this.orientation?"left":"bottom"]=i+"%",this.handle.stop(1,1)[l?"animate":"css"](c,r.animate),"min"===a&&"horizontal"===this.orientation&&this.range.stop(1,1)[l?"animate":"css"]({width:i+"%"},r.animate),"max"===a&&"horizontal"===this.orientation&&this.range.stop(1,1)[l?"animate":"css"]({width:100-i+"%"},r.animate),"min"===a&&"vertical"===this.orientation&&this.range.stop(1,1)[l?"animate":"css"]({height:i+"%"},r.animate),"max"===a&&"vertical"===this.orientation&&this.range.stop(1,1)[l?"animate":"css"]({height:100-i+"%"},r.animate))},_handleEvents:{keydown:function(e){var i,s,n,o,a=t(e.target).data("ui-slider-handle-index");switch(e.keyCode){case t.ui.keyCode.HOME:case t.ui.keyCode.END:case t.ui.keyCode.PAGE_UP:case t.ui.keyCode.PAGE_DOWN:case t.ui.keyCode.UP:case t.ui.keyCode.RIGHT:case t.ui.keyCode.DOWN:case t.ui.keyCode.LEFT:if(e.preventDefault(),!this._keySliding&&(this._keySliding=!0,this._addClass(t(e.target),null,"ui-state-active"),i=this._start(e,a),i===!1))return}switch(o=this.options.step,s=n=this._hasMultipleValues()?this.values(a):this.value(),e.keyCode){case t.ui.keyCode.HOME:n=this._valueMin();break;case t.ui.keyCode.END:n=this._valueMax();break;case t.ui.keyCode.PAGE_UP:n=this._trimAlignValue(s+(this._valueMax()-this._valueMin())/this.numPages);break;case t.ui.keyCode.PAGE_DOWN:n=this._trimAlignValue(s-(this._valueMax()-this._valueMin())/this.numPages);break;case t.ui.keyCode.UP:case t.ui.keyCode.RIGHT:if(s===this._valueMax())return;n=this._trimAlignValue(s+o);break;case t.ui.keyCode.DOWN:case t.ui.keyCode.LEFT:if(s===this._valueMin())return;n=this._trimAlignValue(s-o)}this._slide(e,a,n)},keyup:function(e){var i=t(e.target).data("ui-slider-handle-index");this._keySliding&&(this._keySliding=!1,this._stop(e,i),this._change(e,i),this._removeClass(t(e.target),null,"ui-state-active"))}}}),t.widget("ui.sortable",t.ui.mouse,{version:"1.12.1",widgetEventPrefix:"sort",ready:!1,options:{appendTo:"parent",axis:!1,connectWith:!1,containment:!1,cursor:"auto",cursorAt:!1,dropOnEmpty:!0,forcePlaceholderSize:!1,forceHelperSize:!1,grid:!1,handle:!1,helper:"original",items:"> *",opacity:!1,placeholder:!1,revert:!1,scroll:!0,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1e3,activate:null,beforeStop:null,change:null,deactivate:null,out:null,over:null,receive:null,remove:null,sort:null,start:null,stop:null,update:null},_isOverAxis:function(t,e,i){return t>=e&&e+i>t},_isFloating:function(t){return/left|right/.test(t.css("float"))||/inline|table-cell/.test(t.css("display"))},_create:function(){this.containerCache={},this._addClass("ui-sortable"),this.refresh(),this.offset=this.element.offset(),this._mouseInit(),this._setHandleClassName(),this.ready=!0},_setOption:function(t,e){this._super(t,e),"handle"===t&&this._setHandleClassName()},_setHandleClassName:function(){var e=this;this._removeClass(this.element.find(".ui-sortable-handle"),"ui-sortable-handle"),t.each(this.items,function(){e._addClass(this.instance.options.handle?this.item.find(this.instance.options.handle):this.item,"ui-sortable-handle")})},_destroy:function(){this._mouseDestroy();for(var t=this.items.length-1;t>=0;t--)this.items[t].item.removeData(this.widgetName+"-item");return this},_mouseCapture:function(e,i){var s=null,n=!1,o=this;return this.reverting?!1:this.options.disabled||"static"===this.options.type?!1:(this._refreshItems(e),t(e.target).parents().each(function(){return t.data(this,o.widgetName+"-item")===o?(s=t(this),!1):void 0}),t.data(e.target,o.widgetName+"-item")===o&&(s=t(e.target)),s?!this.options.handle||i||(t(this.options.handle,s).find("*").addBack().each(function(){this===e.target&&(n=!0)}),n)?(this.currentItem=s,this._removeCurrentsFromItems(),!0):!1:!1)},_mouseStart:function(e,i,s){var n,o,a=this.options;if(this.currentContainer=this,this.refreshPositions(),this.helper=this._createHelper(e),this._cacheHelperProportions(),this._cacheMargins(),this.scrollParent=this.helper.scrollParent(),this.offset=this.currentItem.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},t.extend(this.offset,{click:{left:e.pageX-this.offset.left,top:e.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.helper.css("position","absolute"),this.cssPosition=this.helper.css("position"),this.originalPosition=this._generatePosition(e),this.originalPageX=e.pageX,this.originalPageY=e.pageY,a.cursorAt&&this._adjustOffsetFromHelper(a.cursorAt),this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]},this.helper[0]!==this.currentItem[0]&&this.currentItem.hide(),this._createPlaceholder(),a.containment&&this._setContainment(),a.cursor&&"auto"!==a.cursor&&(o=this.document.find("body"),this.storedCursor=o.css("cursor"),o.css("cursor",a.cursor),this.storedStylesheet=t("<style>*{ cursor: "+a.cursor+" !important; }</style>").appendTo(o)),a.opacity&&(this.helper.css("opacity")&&(this._storedOpacity=this.helper.css("opacity")),this.helper.css("opacity",a.opacity)),a.zIndex&&(this.helper.css("zIndex")&&(this._storedZIndex=this.helper.css("zIndex")),this.helper.css("zIndex",a.zIndex)),this.scrollParent[0]!==this.document[0]&&"HTML"!==this.scrollParent[0].tagName&&(this.overflowOffset=this.scrollParent.offset()),this._trigger("start",e,this._uiHash()),this._preserveHelperProportions||this._cacheHelperProportions(),!s)for(n=this.containers.length-1;n>=0;n--)this.containers[n]._trigger("activate",e,this._uiHash(this));return t.ui.ddmanager&&(t.ui.ddmanager.current=this),t.ui.ddmanager&&!a.dropBehaviour&&t.ui.ddmanager.prepareOffsets(this,e),this.dragging=!0,this._addClass(this.helper,"ui-sortable-helper"),this._mouseDrag(e),!0},_mouseDrag:function(e){var i,s,n,o,a=this.options,r=!1;for(this.position=this._generatePosition(e),this.positionAbs=this._convertPositionTo("absolute"),this.lastPositionAbs||(this.lastPositionAbs=this.positionAbs),this.options.scroll&&(this.scrollParent[0]!==this.document[0]&&"HTML"!==this.scrollParent[0].tagName?(this.overflowOffset.top+this.scrollParent[0].offsetHeight-e.pageY<a.scrollSensitivity?this.scrollParent[0].scrollTop=r=this.scrollParent[0].scrollTop+a.scrollSpeed:e.pageY-this.overflowOffset.top<a.scrollSensitivity&&(this.scrollParent[0].scrollTop=r=this.scrollParent[0].scrollTop-a.scrollSpeed),this.overflowOffset.left+this.scrollParent[0].offsetWidth-e.pageX<a.scrollSensitivity?this.scrollParent[0].scrollLeft=r=this.scrollParent[0].scrollLeft+a.scrollSpeed:e.pageX-this.overflowOffset.left<a.scrollSensitivity&&(this.scrollParent[0].scrollLeft=r=this.scrollParent[0].scrollLeft-a.scrollSpeed)):(e.pageY-this.document.scrollTop()<a.scrollSensitivity?r=this.document.scrollTop(this.document.scrollTop()-a.scrollSpeed):this.window.height()-(e.pageY-this.document.scrollTop())<a.scrollSensitivity&&(r=this.document.scrollTop(this.document.scrollTop()+a.scrollSpeed)),e.pageX-this.document.scrollLeft()<a.scrollSensitivity?r=this.document.scrollLeft(this.document.scrollLeft()-a.scrollSpeed):this.window.width()-(e.pageX-this.document.scrollLeft())<a.scrollSensitivity&&(r=this.document.scrollLeft(this.document.scrollLeft()+a.scrollSpeed))),r!==!1&&t.ui.ddmanager&&!a.dropBehaviour&&t.ui.ddmanager.prepareOffsets(this,e)),this.positionAbs=this._convertPositionTo("absolute"),this.options.axis&&"y"===this.options.axis||(this.helper[0].style.left=this.position.left+"px"),this.options.axis&&"x"===this.options.axis||(this.helper[0].style.top=this.position.top+"px"),i=this.items.length-1;i>=0;i--)if(s=this.items[i],n=s.item[0],o=this._intersectsWithPointer(s),o&&s.instance===this.currentContainer&&n!==this.currentItem[0]&&this.placeholder[1===o?"next":"prev"]()[0]!==n&&!t.contains(this.placeholder[0],n)&&("semi-dynamic"===this.options.type?!t.contains(this.element[0],n):!0)){if(this.direction=1===o?"down":"up","pointer"!==this.options.tolerance&&!this._intersectsWithSides(s))break;this._rearrange(e,s),this._trigger("change",e,this._uiHash());break}return this._contactContainers(e),t.ui.ddmanager&&t.ui.ddmanager.drag(this,e),this._trigger("sort",e,this._uiHash()),this.lastPositionAbs=this.positionAbs,!1},_mouseStop:function(e,i){if(e){if(t.ui.ddmanager&&!this.options.dropBehaviour&&t.ui.ddmanager.drop(this,e),this.options.revert){var s=this,n=this.placeholder.offset(),o=this.options.axis,a={};o&&"x"!==o||(a.left=n.left-this.offset.parent.left-this.margins.left+(this.offsetParent[0]===this.document[0].body?0:this.offsetParent[0].scrollLeft)),o&&"y"!==o||(a.top=n.top-this.offset.parent.top-this.margins.top+(this.offsetParent[0]===this.document[0].body?0:this.offsetParent[0].scrollTop)),this.reverting=!0,t(this.helper).animate(a,parseInt(this.options.revert,10)||500,function(){s._clear(e)})}else this._clear(e,i);return!1}},cancel:function(){if(this.dragging){this._mouseUp(new t.Event("mouseup",{target:null})),"original"===this.options.helper?(this.currentItem.css(this._storedCSS),this._removeClass(this.currentItem,"ui-sortable-helper")):this.currentItem.show();for(var e=this.containers.length-1;e>=0;e--)this.containers[e]._trigger("deactivate",null,this._uiHash(this)),this.containers[e].containerCache.over&&(this.containers[e]._trigger("out",null,this._uiHash(this)),this.containers[e].containerCache.over=0)}return this.placeholder&&(this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]),"original"!==this.options.helper&&this.helper&&this.helper[0].parentNode&&this.helper.remove(),t.extend(this,{helper:null,dragging:!1,reverting:!1,_noFinalSort:null}),this.domPosition.prev?t(this.domPosition.prev).after(this.currentItem):t(this.domPosition.parent).prepend(this.currentItem)),this},serialize:function(e){var i=this._getItemsAsjQuery(e&&e.connected),s=[];return e=e||{},t(i).each(function(){var i=(t(e.item||this).attr(e.attribute||"id")||"").match(e.expression||/(.+)[\-=_](.+)/);i&&s.push((e.key||i[1]+"[]")+"="+(e.key&&e.expression?i[1]:i[2]))}),!s.length&&e.key&&s.push(e.key+"="),s.join("&")},toArray:function(e){var i=this._getItemsAsjQuery(e&&e.connected),s=[];return e=e||{},i.each(function(){s.push(t(e.item||this).attr(e.attribute||"id")||"")}),s},_intersectsWith:function(t){var e=this.positionAbs.left,i=e+this.helperProportions.width,s=this.positionAbs.top,n=s+this.helperProportions.height,o=t.left,a=o+t.width,r=t.top,h=r+t.height,l=this.offset.click.top,c=this.offset.click.left,u="x"===this.options.axis||s+l>r&&h>s+l,d="y"===this.options.axis||e+c>o&&a>e+c,p=u&&d;return"pointer"===this.options.tolerance||this.options.forcePointerForContainers||"pointer"!==this.options.tolerance&&this.helperProportions[this.floating?"width":"height"]>t[this.floating?"width":"height"]?p:e+this.helperProportions.width/2>o&&a>i-this.helperProportions.width/2&&s+this.helperProportions.height/2>r&&h>n-this.helperProportions.height/2},_intersectsWithPointer:function(t){var e,i,s="x"===this.options.axis||this._isOverAxis(this.positionAbs.top+this.offset.click.top,t.top,t.height),n="y"===this.options.axis||this._isOverAxis(this.positionAbs.left+this.offset.click.left,t.left,t.width),o=s&&n;return o?(e=this._getDragVerticalDirection(),i=this._getDragHorizontalDirection(),this.floating?"right"===i||"down"===e?2:1:e&&("down"===e?2:1)):!1},_intersectsWithSides:function(t){var e=this._isOverAxis(this.positionAbs.top+this.offset.click.top,t.top+t.height/2,t.height),i=this._isOverAxis(this.positionAbs.left+this.offset.click.left,t.left+t.width/2,t.width),s=this._getDragVerticalDirection(),n=this._getDragHorizontalDirection();return this.floating&&n?"right"===n&&i||"left"===n&&!i:s&&("down"===s&&e||"up"===s&&!e)},_getDragVerticalDirection:function(){var t=this.positionAbs.top-this.lastPositionAbs.top;return 0!==t&&(t>0?"down":"up")},_getDragHorizontalDirection:function(){var t=this.positionAbs.left-this.lastPositionAbs.left;return 0!==t&&(t>0?"right":"left")},refresh:function(t){return this._refreshItems(t),this._setHandleClassName(),this.refreshPositions(),this},_connectWith:function(){var t=this.options;return t.connectWith.constructor===String?[t.connectWith]:t.connectWith},_getItemsAsjQuery:function(e){function i(){r.push(this)}var s,n,o,a,r=[],h=[],l=this._connectWith();if(l&&e)for(s=l.length-1;s>=0;s--)for(o=t(l[s],this.document[0]),n=o.length-1;n>=0;n--)a=t.data(o[n],this.widgetFullName),a&&a!==this&&!a.options.disabled&&h.push([t.isFunction(a.options.items)?a.options.items.call(a.element):t(a.options.items,a.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),a]);for(h.push([t.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):t(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),this]),s=h.length-1;s>=0;s--)h[s][0].each(i);return t(r)},_removeCurrentsFromItems:function(){var e=this.currentItem.find(":data("+this.widgetName+"-item)");this.items=t.grep(this.items,function(t){for(var i=0;e.length>i;i++)if(e[i]===t.item[0])return!1;return!0})},_refreshItems:function(e){this.items=[],this.containers=[this];var i,s,n,o,a,r,h,l,c=this.items,u=[[t.isFunction(this.options.items)?this.options.items.call(this.element[0],e,{item:this.currentItem}):t(this.options.items,this.element),this]],d=this._connectWith();if(d&&this.ready)for(i=d.length-1;i>=0;i--)for(n=t(d[i],this.document[0]),s=n.length-1;s>=0;s--)o=t.data(n[s],this.widgetFullName),o&&o!==this&&!o.options.disabled&&(u.push([t.isFunction(o.options.items)?o.options.items.call(o.element[0],e,{item:this.currentItem}):t(o.options.items,o.element),o]),this.containers.push(o));for(i=u.length-1;i>=0;i--)for(a=u[i][1],r=u[i][0],s=0,l=r.length;l>s;s++)h=t(r[s]),h.data(this.widgetName+"-item",a),c.push({item:h,instance:a,width:0,height:0,left:0,top:0})},refreshPositions:function(e){this.floating=this.items.length?"x"===this.options.axis||this._isFloating(this.items[0].item):!1,this.offsetParent&&this.helper&&(this.offset.parent=this._getParentOffset());var i,s,n,o;for(i=this.items.length-1;i>=0;i--)s=this.items[i],s.instance!==this.currentContainer&&this.currentContainer&&s.item[0]!==this.currentItem[0]||(n=this.options.toleranceElement?t(this.options.toleranceElement,s.item):s.item,e||(s.width=n.outerWidth(),s.height=n.outerHeight()),o=n.offset(),s.left=o.left,s.top=o.top);if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(i=this.containers.length-1;i>=0;i--)o=this.containers[i].element.offset(),this.containers[i].containerCache.left=o.left,this.containers[i].containerCache.top=o.top,this.containers[i].containerCache.width=this.containers[i].element.outerWidth(),this.containers[i].containerCache.height=this.containers[i].element.outerHeight();return this},_createPlaceholder:function(e){e=e||this;var i,s=e.options;s.placeholder&&s.placeholder.constructor!==String||(i=s.placeholder,s.placeholder={element:function(){var s=e.currentItem[0].nodeName.toLowerCase(),n=t("<"+s+">",e.document[0]);return e._addClass(n,"ui-sortable-placeholder",i||e.currentItem[0].className)._removeClass(n,"ui-sortable-helper"),"tbody"===s?e._createTrPlaceholder(e.currentItem.find("tr").eq(0),t("<tr>",e.document[0]).appendTo(n)):"tr"===s?e._createTrPlaceholder(e.currentItem,n):"img"===s&&n.attr("src",e.currentItem.attr("src")),i||n.css("visibility","hidden"),n},update:function(t,n){(!i||s.forcePlaceholderSize)&&(n.height()||n.height(e.currentItem.innerHeight()-parseInt(e.currentItem.css("paddingTop")||0,10)-parseInt(e.currentItem.css("paddingBottom")||0,10)),n.width()||n.width(e.currentItem.innerWidth()-parseInt(e.currentItem.css("paddingLeft")||0,10)-parseInt(e.currentItem.css("paddingRight")||0,10)))}}),e.placeholder=t(s.placeholder.element.call(e.element,e.currentItem)),e.currentItem.after(e.placeholder),s.placeholder.update(e,e.placeholder)},_createTrPlaceholder:function(e,i){var s=this;e.children().each(function(){t("<td>&#160;</td>",s.document[0]).attr("colspan",t(this).attr("colspan")||1).appendTo(i)})},_contactContainers:function(e){var i,s,n,o,a,r,h,l,c,u,d=null,p=null;for(i=this.containers.length-1;i>=0;i--)if(!t.contains(this.currentItem[0],this.containers[i].element[0]))if(this._intersectsWith(this.containers[i].containerCache)){if(d&&t.contains(this.containers[i].element[0],d.element[0]))continue;d=this.containers[i],p=i}else this.containers[i].containerCache.over&&(this.containers[i]._trigger("out",e,this._uiHash(this)),this.containers[i].containerCache.over=0);if(d)if(1===this.containers.length)this.containers[p].containerCache.over||(this.containers[p]._trigger("over",e,this._uiHash(this)),this.containers[p].containerCache.over=1);else{for(n=1e4,o=null,c=d.floating||this._isFloating(this.currentItem),a=c?"left":"top",r=c?"width":"height",u=c?"pageX":"pageY",s=this.items.length-1;s>=0;s--)t.contains(this.containers[p].element[0],this.items[s].item[0])&&this.items[s].item[0]!==this.currentItem[0]&&(h=this.items[s].item.offset()[a],l=!1,e[u]-h>this.items[s][r]/2&&(l=!0),n>Math.abs(e[u]-h)&&(n=Math.abs(e[u]-h),o=this.items[s],this.direction=l?"up":"down"));if(!o&&!this.options.dropOnEmpty)return;if(this.currentContainer===this.containers[p])return this.currentContainer.containerCache.over||(this.containers[p]._trigger("over",e,this._uiHash()),this.currentContainer.containerCache.over=1),void 0;o?this._rearrange(e,o,null,!0):this._rearrange(e,null,this.containers[p].element,!0),this._trigger("change",e,this._uiHash()),this.containers[p]._trigger("change",e,this._uiHash(this)),this.currentContainer=this.containers[p],this.options.placeholder.update(this.currentContainer,this.placeholder),this.containers[p]._trigger("over",e,this._uiHash(this)),this.containers[p].containerCache.over=1}},_createHelper:function(e){var i=this.options,s=t.isFunction(i.helper)?t(i.helper.apply(this.element[0],[e,this.currentItem])):"clone"===i.helper?this.currentItem.clone():this.currentItem;return s.parents("body").length||t("parent"!==i.appendTo?i.appendTo:this.currentItem[0].parentNode)[0].appendChild(s[0]),s[0]===this.currentItem[0]&&(this._storedCSS={width:this.currentItem[0].style.width,height:this.currentItem[0].style.height,position:this.currentItem.css("position"),top:this.currentItem.css("top"),left:this.currentItem.css("left")}),(!s[0].style.width||i.forceHelperSize)&&s.width(this.currentItem.width()),(!s[0].style.height||i.forceHelperSize)&&s.height(this.currentItem.height()),s},_adjustOffsetFromHelper:function(e){"string"==typeof e&&(e=e.split(" ")),t.isArray(e)&&(e={left:+e[0],top:+e[1]||0}),"left"in e&&(this.offset.click.left=e.left+this.margins.left),"right"in e&&(this.offset.click.left=this.helperProportions.width-e.right+this.margins.left),"top"in e&&(this.offset.click.top=e.top+this.margins.top),"bottom"in e&&(this.offset.click.top=this.helperProportions.height-e.bottom+this.margins.top)},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var e=this.offsetParent.offset();return"absolute"===this.cssPosition&&this.scrollParent[0]!==this.document[0]&&t.contains(this.scrollParent[0],this.offsetParent[0])&&(e.left+=this.scrollParent.scrollLeft(),e.top+=this.scrollParent.scrollTop()),(this.offsetParent[0]===this.document[0].body||this.offsetParent[0].tagName&&"html"===this.offsetParent[0].tagName.toLowerCase()&&t.ui.ie)&&(e={top:0,left:0}),{top:e.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:e.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if("relative"===this.cssPosition){var t=this.currentItem.position();return{top:t.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:t.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.currentItem.css("marginLeft"),10)||0,top:parseInt(this.currentItem.css("marginTop"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var e,i,s,n=this.options;"parent"===n.containment&&(n.containment=this.helper[0].parentNode),("document"===n.containment||"window"===n.containment)&&(this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,"document"===n.containment?this.document.width():this.window.width()-this.helperProportions.width-this.margins.left,("document"===n.containment?this.document.height()||document.body.parentNode.scrollHeight:this.window.height()||this.document[0].body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]),/^(document|window|parent)$/.test(n.containment)||(e=t(n.containment)[0],i=t(n.containment).offset(),s="hidden"!==t(e).css("overflow"),this.containment=[i.left+(parseInt(t(e).css("borderLeftWidth"),10)||0)+(parseInt(t(e).css("paddingLeft"),10)||0)-this.margins.left,i.top+(parseInt(t(e).css("borderTopWidth"),10)||0)+(parseInt(t(e).css("paddingTop"),10)||0)-this.margins.top,i.left+(s?Math.max(e.scrollWidth,e.offsetWidth):e.offsetWidth)-(parseInt(t(e).css("borderLeftWidth"),10)||0)-(parseInt(t(e).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,i.top+(s?Math.max(e.scrollHeight,e.offsetHeight):e.offsetHeight)-(parseInt(t(e).css("borderTopWidth"),10)||0)-(parseInt(t(e).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top])},_convertPositionTo:function(e,i){i||(i=this.position);var s="absolute"===e?1:-1,n="absolute"!==this.cssPosition||this.scrollParent[0]!==this.document[0]&&t.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,o=/(html|body)/i.test(n[0].tagName);return{top:i.top+this.offset.relative.top*s+this.offset.parent.top*s-("fixed"===this.cssPosition?-this.scrollParent.scrollTop():o?0:n.scrollTop())*s,left:i.left+this.offset.relative.left*s+this.offset.parent.left*s-("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():o?0:n.scrollLeft())*s}},_generatePosition:function(e){var i,s,n=this.options,o=e.pageX,a=e.pageY,r="absolute"!==this.cssPosition||this.scrollParent[0]!==this.document[0]&&t.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,h=/(html|body)/i.test(r[0].tagName);return"relative"!==this.cssPosition||this.scrollParent[0]!==this.document[0]&&this.scrollParent[0]!==this.offsetParent[0]||(this.offset.relative=this._getRelativeOffset()),this.originalPosition&&(this.containment&&(e.pageX-this.offset.click.left<this.containment[0]&&(o=this.containment[0]+this.offset.click.left),e.pageY-this.offset.click.top<this.containment[1]&&(a=this.containment[1]+this.offset.click.top),e.pageX-this.offset.click.left>this.containment[2]&&(o=this.containment[2]+this.offset.click.left),e.pageY-this.offset.click.top>this.containment[3]&&(a=this.containment[3]+this.offset.click.top)),n.grid&&(i=this.originalPageY+Math.round((a-this.originalPageY)/n.grid[1])*n.grid[1],a=this.containment?i-this.offset.click.top>=this.containment[1]&&i-this.offset.click.top<=this.containment[3]?i:i-this.offset.click.top>=this.containment[1]?i-n.grid[1]:i+n.grid[1]:i,s=this.originalPageX+Math.round((o-this.originalPageX)/n.grid[0])*n.grid[0],o=this.containment?s-this.offset.click.left>=this.containment[0]&&s-this.offset.click.left<=this.containment[2]?s:s-this.offset.click.left>=this.containment[0]?s-n.grid[0]:s+n.grid[0]:s)),{top:a-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.scrollParent.scrollTop():h?0:r.scrollTop()),left:o-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():h?0:r.scrollLeft())}},_rearrange:function(t,e,i,s){i?i[0].appendChild(this.placeholder[0]):e.item[0].parentNode.insertBefore(this.placeholder[0],"down"===this.direction?e.item[0]:e.item[0].nextSibling),this.counter=this.counter?++this.counter:1;var n=this.counter;
-this._delay(function(){n===this.counter&&this.refreshPositions(!s)})},_clear:function(t,e){function i(t,e,i){return function(s){i._trigger(t,s,e._uiHash(e))}}this.reverting=!1;var s,n=[];if(!this._noFinalSort&&this.currentItem.parent().length&&this.placeholder.before(this.currentItem),this._noFinalSort=null,this.helper[0]===this.currentItem[0]){for(s in this._storedCSS)("auto"===this._storedCSS[s]||"static"===this._storedCSS[s])&&(this._storedCSS[s]="");this.currentItem.css(this._storedCSS),this._removeClass(this.currentItem,"ui-sortable-helper")}else this.currentItem.show();for(this.fromOutside&&!e&&n.push(function(t){this._trigger("receive",t,this._uiHash(this.fromOutside))}),!this.fromOutside&&this.domPosition.prev===this.currentItem.prev().not(".ui-sortable-helper")[0]&&this.domPosition.parent===this.currentItem.parent()[0]||e||n.push(function(t){this._trigger("update",t,this._uiHash())}),this!==this.currentContainer&&(e||(n.push(function(t){this._trigger("remove",t,this._uiHash())}),n.push(function(t){return function(e){t._trigger("receive",e,this._uiHash(this))}}.call(this,this.currentContainer)),n.push(function(t){return function(e){t._trigger("update",e,this._uiHash(this))}}.call(this,this.currentContainer)))),s=this.containers.length-1;s>=0;s--)e||n.push(i("deactivate",this,this.containers[s])),this.containers[s].containerCache.over&&(n.push(i("out",this,this.containers[s])),this.containers[s].containerCache.over=0);if(this.storedCursor&&(this.document.find("body").css("cursor",this.storedCursor),this.storedStylesheet.remove()),this._storedOpacity&&this.helper.css("opacity",this._storedOpacity),this._storedZIndex&&this.helper.css("zIndex","auto"===this._storedZIndex?"":this._storedZIndex),this.dragging=!1,e||this._trigger("beforeStop",t,this._uiHash()),this.placeholder[0].parentNode.removeChild(this.placeholder[0]),this.cancelHelperRemoval||(this.helper[0]!==this.currentItem[0]&&this.helper.remove(),this.helper=null),!e){for(s=0;n.length>s;s++)n[s].call(this,t);this._trigger("stop",t,this._uiHash())}return this.fromOutside=!1,!this.cancelHelperRemoval},_trigger:function(){t.Widget.prototype._trigger.apply(this,arguments)===!1&&this.cancel()},_uiHash:function(e){var i=e||this;return{helper:i.helper,placeholder:i.placeholder||t([]),position:i.position,originalPosition:i.originalPosition,offset:i.positionAbs,item:i.currentItem,sender:e?e.element:null}}}),t.widget("ui.spinner",{version:"1.12.1",defaultElement:"<input>",widgetEventPrefix:"spin",options:{classes:{"ui-spinner":"ui-corner-all","ui-spinner-down":"ui-corner-br","ui-spinner-up":"ui-corner-tr"},culture:null,icons:{down:"ui-icon-triangle-1-s",up:"ui-icon-triangle-1-n"},incremental:!0,max:null,min:null,numberFormat:null,page:10,step:1,change:null,spin:null,start:null,stop:null},_create:function(){this._setOption("max",this.options.max),this._setOption("min",this.options.min),this._setOption("step",this.options.step),""!==this.value()&&this._value(this.element.val(),!0),this._draw(),this._on(this._events),this._refresh(),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_getCreateOptions:function(){var e=this._super(),i=this.element;return t.each(["min","max","step"],function(t,s){var n=i.attr(s);null!=n&&n.length&&(e[s]=n)}),e},_events:{keydown:function(t){this._start(t)&&this._keydown(t)&&t.preventDefault()},keyup:"_stop",focus:function(){this.previous=this.element.val()},blur:function(t){return this.cancelBlur?(delete this.cancelBlur,void 0):(this._stop(),this._refresh(),this.previous!==this.element.val()&&this._trigger("change",t),void 0)},mousewheel:function(t,e){if(e){if(!this.spinning&&!this._start(t))return!1;this._spin((e>0?1:-1)*this.options.step,t),clearTimeout(this.mousewheelTimer),this.mousewheelTimer=this._delay(function(){this.spinning&&this._stop(t)},100),t.preventDefault()}},"mousedown .ui-spinner-button":function(e){function i(){var e=this.element[0]===t.ui.safeActiveElement(this.document[0]);e||(this.element.trigger("focus"),this.previous=s,this._delay(function(){this.previous=s}))}var s;s=this.element[0]===t.ui.safeActiveElement(this.document[0])?this.previous:this.element.val(),e.preventDefault(),i.call(this),this.cancelBlur=!0,this._delay(function(){delete this.cancelBlur,i.call(this)}),this._start(e)!==!1&&this._repeat(null,t(e.currentTarget).hasClass("ui-spinner-up")?1:-1,e)},"mouseup .ui-spinner-button":"_stop","mouseenter .ui-spinner-button":function(e){return t(e.currentTarget).hasClass("ui-state-active")?this._start(e)===!1?!1:(this._repeat(null,t(e.currentTarget).hasClass("ui-spinner-up")?1:-1,e),void 0):void 0},"mouseleave .ui-spinner-button":"_stop"},_enhance:function(){this.uiSpinner=this.element.attr("autocomplete","off").wrap("<span>").parent().append("<a></a><a></a>")},_draw:function(){this._enhance(),this._addClass(this.uiSpinner,"ui-spinner","ui-widget ui-widget-content"),this._addClass("ui-spinner-input"),this.element.attr("role","spinbutton"),this.buttons=this.uiSpinner.children("a").attr("tabIndex",-1).attr("aria-hidden",!0).button({classes:{"ui-button":""}}),this._removeClass(this.buttons,"ui-corner-all"),this._addClass(this.buttons.first(),"ui-spinner-button ui-spinner-up"),this._addClass(this.buttons.last(),"ui-spinner-button ui-spinner-down"),this.buttons.first().button({icon:this.options.icons.up,showLabel:!1}),this.buttons.last().button({icon:this.options.icons.down,showLabel:!1}),this.buttons.height()>Math.ceil(.5*this.uiSpinner.height())&&this.uiSpinner.height()>0&&this.uiSpinner.height(this.uiSpinner.height())},_keydown:function(e){var i=this.options,s=t.ui.keyCode;switch(e.keyCode){case s.UP:return this._repeat(null,1,e),!0;case s.DOWN:return this._repeat(null,-1,e),!0;case s.PAGE_UP:return this._repeat(null,i.page,e),!0;case s.PAGE_DOWN:return this._repeat(null,-i.page,e),!0}return!1},_start:function(t){return this.spinning||this._trigger("start",t)!==!1?(this.counter||(this.counter=1),this.spinning=!0,!0):!1},_repeat:function(t,e,i){t=t||500,clearTimeout(this.timer),this.timer=this._delay(function(){this._repeat(40,e,i)},t),this._spin(e*this.options.step,i)},_spin:function(t,e){var i=this.value()||0;this.counter||(this.counter=1),i=this._adjustValue(i+t*this._increment(this.counter)),this.spinning&&this._trigger("spin",e,{value:i})===!1||(this._value(i),this.counter++)},_increment:function(e){var i=this.options.incremental;return i?t.isFunction(i)?i(e):Math.floor(e*e*e/5e4-e*e/500+17*e/200+1):1},_precision:function(){var t=this._precisionOf(this.options.step);return null!==this.options.min&&(t=Math.max(t,this._precisionOf(this.options.min))),t},_precisionOf:function(t){var e=""+t,i=e.indexOf(".");return-1===i?0:e.length-i-1},_adjustValue:function(t){var e,i,s=this.options;return e=null!==s.min?s.min:0,i=t-e,i=Math.round(i/s.step)*s.step,t=e+i,t=parseFloat(t.toFixed(this._precision())),null!==s.max&&t>s.max?s.max:null!==s.min&&s.min>t?s.min:t},_stop:function(t){this.spinning&&(clearTimeout(this.timer),clearTimeout(this.mousewheelTimer),this.counter=0,this.spinning=!1,this._trigger("stop",t))},_setOption:function(t,e){var i,s,n;return"culture"===t||"numberFormat"===t?(i=this._parse(this.element.val()),this.options[t]=e,this.element.val(this._format(i)),void 0):(("max"===t||"min"===t||"step"===t)&&"string"==typeof e&&(e=this._parse(e)),"icons"===t&&(s=this.buttons.first().find(".ui-icon"),this._removeClass(s,null,this.options.icons.up),this._addClass(s,null,e.up),n=this.buttons.last().find(".ui-icon"),this._removeClass(n,null,this.options.icons.down),this._addClass(n,null,e.down)),this._super(t,e),void 0)},_setOptionDisabled:function(t){this._super(t),this._toggleClass(this.uiSpinner,null,"ui-state-disabled",!!t),this.element.prop("disabled",!!t),this.buttons.button(t?"disable":"enable")},_setOptions:r(function(t){this._super(t)}),_parse:function(t){return"string"==typeof t&&""!==t&&(t=window.Globalize&&this.options.numberFormat?Globalize.parseFloat(t,10,this.options.culture):+t),""===t||isNaN(t)?null:t},_format:function(t){return""===t?"":window.Globalize&&this.options.numberFormat?Globalize.format(t,this.options.numberFormat,this.options.culture):t},_refresh:function(){this.element.attr({"aria-valuemin":this.options.min,"aria-valuemax":this.options.max,"aria-valuenow":this._parse(this.element.val())})},isValid:function(){var t=this.value();return null===t?!1:t===this._adjustValue(t)},_value:function(t,e){var i;""!==t&&(i=this._parse(t),null!==i&&(e||(i=this._adjustValue(i)),t=this._format(i))),this.element.val(t),this._refresh()},_destroy:function(){this.element.prop("disabled",!1).removeAttr("autocomplete role aria-valuemin aria-valuemax aria-valuenow"),this.uiSpinner.replaceWith(this.element)},stepUp:r(function(t){this._stepUp(t)}),_stepUp:function(t){this._start()&&(this._spin((t||1)*this.options.step),this._stop())},stepDown:r(function(t){this._stepDown(t)}),_stepDown:function(t){this._start()&&(this._spin((t||1)*-this.options.step),this._stop())},pageUp:r(function(t){this._stepUp((t||1)*this.options.page)}),pageDown:r(function(t){this._stepDown((t||1)*this.options.page)}),value:function(t){return arguments.length?(r(this._value).call(this,t),void 0):this._parse(this.element.val())},widget:function(){return this.uiSpinner}}),t.uiBackCompat!==!1&&t.widget("ui.spinner",t.ui.spinner,{_enhance:function(){this.uiSpinner=this.element.attr("autocomplete","off").wrap(this._uiSpinnerHtml()).parent().append(this._buttonHtml())},_uiSpinnerHtml:function(){return"<span>"},_buttonHtml:function(){return"<a></a><a></a>"}}),t.ui.spinner,t.widget("ui.tabs",{version:"1.12.1",delay:300,options:{active:null,classes:{"ui-tabs":"ui-corner-all","ui-tabs-nav":"ui-corner-all","ui-tabs-panel":"ui-corner-bottom","ui-tabs-tab":"ui-corner-top"},collapsible:!1,event:"click",heightStyle:"content",hide:null,show:null,activate:null,beforeActivate:null,beforeLoad:null,load:null},_isLocal:function(){var t=/#.*$/;return function(e){var i,s;i=e.href.replace(t,""),s=location.href.replace(t,"");try{i=decodeURIComponent(i)}catch(n){}try{s=decodeURIComponent(s)}catch(n){}return e.hash.length>1&&i===s}}(),_create:function(){var e=this,i=this.options;this.running=!1,this._addClass("ui-tabs","ui-widget ui-widget-content"),this._toggleClass("ui-tabs-collapsible",null,i.collapsible),this._processTabs(),i.active=this._initialActive(),t.isArray(i.disabled)&&(i.disabled=t.unique(i.disabled.concat(t.map(this.tabs.filter(".ui-state-disabled"),function(t){return e.tabs.index(t)}))).sort()),this.active=this.options.active!==!1&&this.anchors.length?this._findActive(i.active):t(),this._refresh(),this.active.length&&this.load(i.active)},_initialActive:function(){var e=this.options.active,i=this.options.collapsible,s=location.hash.substring(1);return null===e&&(s&&this.tabs.each(function(i,n){return t(n).attr("aria-controls")===s?(e=i,!1):void 0}),null===e&&(e=this.tabs.index(this.tabs.filter(".ui-tabs-active"))),(null===e||-1===e)&&(e=this.tabs.length?0:!1)),e!==!1&&(e=this.tabs.index(this.tabs.eq(e)),-1===e&&(e=i?!1:0)),!i&&e===!1&&this.anchors.length&&(e=0),e},_getCreateEventData:function(){return{tab:this.active,panel:this.active.length?this._getPanelForTab(this.active):t()}},_tabKeydown:function(e){var i=t(t.ui.safeActiveElement(this.document[0])).closest("li"),s=this.tabs.index(i),n=!0;if(!this._handlePageNav(e)){switch(e.keyCode){case t.ui.keyCode.RIGHT:case t.ui.keyCode.DOWN:s++;break;case t.ui.keyCode.UP:case t.ui.keyCode.LEFT:n=!1,s--;break;case t.ui.keyCode.END:s=this.anchors.length-1;break;case t.ui.keyCode.HOME:s=0;break;case t.ui.keyCode.SPACE:return e.preventDefault(),clearTimeout(this.activating),this._activate(s),void 0;case t.ui.keyCode.ENTER:return e.preventDefault(),clearTimeout(this.activating),this._activate(s===this.options.active?!1:s),void 0;default:return}e.preventDefault(),clearTimeout(this.activating),s=this._focusNextTab(s,n),e.ctrlKey||e.metaKey||(i.attr("aria-selected","false"),this.tabs.eq(s).attr("aria-selected","true"),this.activating=this._delay(function(){this.option("active",s)},this.delay))}},_panelKeydown:function(e){this._handlePageNav(e)||e.ctrlKey&&e.keyCode===t.ui.keyCode.UP&&(e.preventDefault(),this.active.trigger("focus"))},_handlePageNav:function(e){return e.altKey&&e.keyCode===t.ui.keyCode.PAGE_UP?(this._activate(this._focusNextTab(this.options.active-1,!1)),!0):e.altKey&&e.keyCode===t.ui.keyCode.PAGE_DOWN?(this._activate(this._focusNextTab(this.options.active+1,!0)),!0):void 0},_findNextTab:function(e,i){function s(){return e>n&&(e=0),0>e&&(e=n),e}for(var n=this.tabs.length-1;-1!==t.inArray(s(),this.options.disabled);)e=i?e+1:e-1;return e},_focusNextTab:function(t,e){return t=this._findNextTab(t,e),this.tabs.eq(t).trigger("focus"),t},_setOption:function(t,e){return"active"===t?(this._activate(e),void 0):(this._super(t,e),"collapsible"===t&&(this._toggleClass("ui-tabs-collapsible",null,e),e||this.options.active!==!1||this._activate(0)),"event"===t&&this._setupEvents(e),"heightStyle"===t&&this._setupHeightStyle(e),void 0)},_sanitizeSelector:function(t){return t?t.replace(/[!"$%&'()*+,.\/:;<=>?@\[\]\^`{|}~]/g,"\\$&"):""},refresh:function(){var e=this.options,i=this.tablist.children(":has(a[href])");e.disabled=t.map(i.filter(".ui-state-disabled"),function(t){return i.index(t)}),this._processTabs(),e.active!==!1&&this.anchors.length?this.active.length&&!t.contains(this.tablist[0],this.active[0])?this.tabs.length===e.disabled.length?(e.active=!1,this.active=t()):this._activate(this._findNextTab(Math.max(0,e.active-1),!1)):e.active=this.tabs.index(this.active):(e.active=!1,this.active=t()),this._refresh()},_refresh:function(){this._setOptionDisabled(this.options.disabled),this._setupEvents(this.options.event),this._setupHeightStyle(this.options.heightStyle),this.tabs.not(this.active).attr({"aria-selected":"false","aria-expanded":"false",tabIndex:-1}),this.panels.not(this._getPanelForTab(this.active)).hide().attr({"aria-hidden":"true"}),this.active.length?(this.active.attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0}),this._addClass(this.active,"ui-tabs-active","ui-state-active"),this._getPanelForTab(this.active).show().attr({"aria-hidden":"false"})):this.tabs.eq(0).attr("tabIndex",0)},_processTabs:function(){var e=this,i=this.tabs,s=this.anchors,n=this.panels;this.tablist=this._getList().attr("role","tablist"),this._addClass(this.tablist,"ui-tabs-nav","ui-helper-reset ui-helper-clearfix ui-widget-header"),this.tablist.on("mousedown"+this.eventNamespace,"> li",function(e){t(this).is(".ui-state-disabled")&&e.preventDefault()}).on("focus"+this.eventNamespace,".ui-tabs-anchor",function(){t(this).closest("li").is(".ui-state-disabled")&&this.blur()}),this.tabs=this.tablist.find("> li:has(a[href])").attr({role:"tab",tabIndex:-1}),this._addClass(this.tabs,"ui-tabs-tab","ui-state-default"),this.anchors=this.tabs.map(function(){return t("a",this)[0]}).attr({role:"presentation",tabIndex:-1}),this._addClass(this.anchors,"ui-tabs-anchor"),this.panels=t(),this.anchors.each(function(i,s){var n,o,a,r=t(s).uniqueId().attr("id"),h=t(s).closest("li"),l=h.attr("aria-controls");e._isLocal(s)?(n=s.hash,a=n.substring(1),o=e.element.find(e._sanitizeSelector(n))):(a=h.attr("aria-controls")||t({}).uniqueId()[0].id,n="#"+a,o=e.element.find(n),o.length||(o=e._createPanel(a),o.insertAfter(e.panels[i-1]||e.tablist)),o.attr("aria-live","polite")),o.length&&(e.panels=e.panels.add(o)),l&&h.data("ui-tabs-aria-controls",l),h.attr({"aria-controls":a,"aria-labelledby":r}),o.attr("aria-labelledby",r)}),this.panels.attr("role","tabpanel"),this._addClass(this.panels,"ui-tabs-panel","ui-widget-content"),i&&(this._off(i.not(this.tabs)),this._off(s.not(this.anchors)),this._off(n.not(this.panels)))},_getList:function(){return this.tablist||this.element.find("ol, ul").eq(0)},_createPanel:function(e){return t("<div>").attr("id",e).data("ui-tabs-destroy",!0)},_setOptionDisabled:function(e){var i,s,n;for(t.isArray(e)&&(e.length?e.length===this.anchors.length&&(e=!0):e=!1),n=0;s=this.tabs[n];n++)i=t(s),e===!0||-1!==t.inArray(n,e)?(i.attr("aria-disabled","true"),this._addClass(i,null,"ui-state-disabled")):(i.removeAttr("aria-disabled"),this._removeClass(i,null,"ui-state-disabled"));this.options.disabled=e,this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,e===!0)},_setupEvents:function(e){var i={};e&&t.each(e.split(" "),function(t,e){i[e]="_eventHandler"}),this._off(this.anchors.add(this.tabs).add(this.panels)),this._on(!0,this.anchors,{click:function(t){t.preventDefault()}}),this._on(this.anchors,i),this._on(this.tabs,{keydown:"_tabKeydown"}),this._on(this.panels,{keydown:"_panelKeydown"}),this._focusable(this.tabs),this._hoverable(this.tabs)},_setupHeightStyle:function(e){var i,s=this.element.parent();"fill"===e?(i=s.height(),i-=this.element.outerHeight()-this.element.height(),this.element.siblings(":visible").each(function(){var e=t(this),s=e.css("position");"absolute"!==s&&"fixed"!==s&&(i-=e.outerHeight(!0))}),this.element.children().not(this.panels).each(function(){i-=t(this).outerHeight(!0)}),this.panels.each(function(){t(this).height(Math.max(0,i-t(this).innerHeight()+t(this).height()))}).css("overflow","auto")):"auto"===e&&(i=0,this.panels.each(function(){i=Math.max(i,t(this).height("").height())}).height(i))},_eventHandler:function(e){var i=this.options,s=this.active,n=t(e.currentTarget),o=n.closest("li"),a=o[0]===s[0],r=a&&i.collapsible,h=r?t():this._getPanelForTab(o),l=s.length?this._getPanelForTab(s):t(),c={oldTab:s,oldPanel:l,newTab:r?t():o,newPanel:h};e.preventDefault(),o.hasClass("ui-state-disabled")||o.hasClass("ui-tabs-loading")||this.running||a&&!i.collapsible||this._trigger("beforeActivate",e,c)===!1||(i.active=r?!1:this.tabs.index(o),this.active=a?t():o,this.xhr&&this.xhr.abort(),l.length||h.length||t.error("jQuery UI Tabs: Mismatching fragment identifier."),h.length&&this.load(this.tabs.index(o),e),this._toggle(e,c))},_toggle:function(e,i){function s(){o.running=!1,o._trigger("activate",e,i)}function n(){o._addClass(i.newTab.closest("li"),"ui-tabs-active","ui-state-active"),a.length&&o.options.show?o._show(a,o.options.show,s):(a.show(),s())}var o=this,a=i.newPanel,r=i.oldPanel;this.running=!0,r.length&&this.options.hide?this._hide(r,this.options.hide,function(){o._removeClass(i.oldTab.closest("li"),"ui-tabs-active","ui-state-active"),n()}):(this._removeClass(i.oldTab.closest("li"),"ui-tabs-active","ui-state-active"),r.hide(),n()),r.attr("aria-hidden","true"),i.oldTab.attr({"aria-selected":"false","aria-expanded":"false"}),a.length&&r.length?i.oldTab.attr("tabIndex",-1):a.length&&this.tabs.filter(function(){return 0===t(this).attr("tabIndex")}).attr("tabIndex",-1),a.attr("aria-hidden","false"),i.newTab.attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0})},_activate:function(e){var i,s=this._findActive(e);s[0]!==this.active[0]&&(s.length||(s=this.active),i=s.find(".ui-tabs-anchor")[0],this._eventHandler({target:i,currentTarget:i,preventDefault:t.noop}))},_findActive:function(e){return e===!1?t():this.tabs.eq(e)},_getIndex:function(e){return"string"==typeof e&&(e=this.anchors.index(this.anchors.filter("[href$='"+t.ui.escapeSelector(e)+"']"))),e},_destroy:function(){this.xhr&&this.xhr.abort(),this.tablist.removeAttr("role").off(this.eventNamespace),this.anchors.removeAttr("role tabIndex").removeUniqueId(),this.tabs.add(this.panels).each(function(){t.data(this,"ui-tabs-destroy")?t(this).remove():t(this).removeAttr("role tabIndex aria-live aria-busy aria-selected aria-labelledby aria-hidden aria-expanded")}),this.tabs.each(function(){var e=t(this),i=e.data("ui-tabs-aria-controls");i?e.attr("aria-controls",i).removeData("ui-tabs-aria-controls"):e.removeAttr("aria-controls")}),this.panels.show(),"content"!==this.options.heightStyle&&this.panels.css("height","")},enable:function(e){var i=this.options.disabled;i!==!1&&(void 0===e?i=!1:(e=this._getIndex(e),i=t.isArray(i)?t.map(i,function(t){return t!==e?t:null}):t.map(this.tabs,function(t,i){return i!==e?i:null})),this._setOptionDisabled(i))},disable:function(e){var i=this.options.disabled;if(i!==!0){if(void 0===e)i=!0;else{if(e=this._getIndex(e),-1!==t.inArray(e,i))return;i=t.isArray(i)?t.merge([e],i).sort():[e]}this._setOptionDisabled(i)}},load:function(e,i){e=this._getIndex(e);var s=this,n=this.tabs.eq(e),o=n.find(".ui-tabs-anchor"),a=this._getPanelForTab(n),r={tab:n,panel:a},h=function(t,e){"abort"===e&&s.panels.stop(!1,!0),s._removeClass(n,"ui-tabs-loading"),a.removeAttr("aria-busy"),t===s.xhr&&delete s.xhr};this._isLocal(o[0])||(this.xhr=t.ajax(this._ajaxSettings(o,i,r)),this.xhr&&"canceled"!==this.xhr.statusText&&(this._addClass(n,"ui-tabs-loading"),a.attr("aria-busy","true"),this.xhr.done(function(t,e,n){setTimeout(function(){a.html(t),s._trigger("load",i,r),h(n,e)},1)}).fail(function(t,e){setTimeout(function(){h(t,e)},1)})))},_ajaxSettings:function(e,i,s){var n=this;return{url:e.attr("href").replace(/#.*$/,""),beforeSend:function(e,o){return n._trigger("beforeLoad",i,t.extend({jqXHR:e,ajaxSettings:o},s))}}},_getPanelForTab:function(e){var i=t(e).attr("aria-controls");return this.element.find(this._sanitizeSelector("#"+i))}}),t.uiBackCompat!==!1&&t.widget("ui.tabs",t.ui.tabs,{_processTabs:function(){this._superApply(arguments),this._addClass(this.tabs,"ui-tab")}}),t.ui.tabs,t.widget("ui.tooltip",{version:"1.12.1",options:{classes:{"ui-tooltip":"ui-corner-all ui-widget-shadow"},content:function(){var e=t(this).attr("title")||"";return t("<a>").text(e).html()},hide:!0,items:"[title]:not([disabled])",position:{my:"left top+15",at:"left bottom",collision:"flipfit flip"},show:!0,track:!1,close:null,open:null},_addDescribedBy:function(e,i){var s=(e.attr("aria-describedby")||"").split(/\s+/);s.push(i),e.data("ui-tooltip-id",i).attr("aria-describedby",t.trim(s.join(" ")))},_removeDescribedBy:function(e){var i=e.data("ui-tooltip-id"),s=(e.attr("aria-describedby")||"").split(/\s+/),n=t.inArray(i,s);-1!==n&&s.splice(n,1),e.removeData("ui-tooltip-id"),s=t.trim(s.join(" ")),s?e.attr("aria-describedby",s):e.removeAttr("aria-describedby")},_create:function(){this._on({mouseover:"open",focusin:"open"}),this.tooltips={},this.parents={},this.liveRegion=t("<div>").attr({role:"log","aria-live":"assertive","aria-relevant":"additions"}).appendTo(this.document[0].body),this._addClass(this.liveRegion,null,"ui-helper-hidden-accessible"),this.disabledTitles=t([])},_setOption:function(e,i){var s=this;this._super(e,i),"content"===e&&t.each(this.tooltips,function(t,e){s._updateContent(e.element)})},_setOptionDisabled:function(t){this[t?"_disable":"_enable"]()},_disable:function(){var e=this;t.each(this.tooltips,function(i,s){var n=t.Event("blur");n.target=n.currentTarget=s.element[0],e.close(n,!0)}),this.disabledTitles=this.disabledTitles.add(this.element.find(this.options.items).addBack().filter(function(){var e=t(this);return e.is("[title]")?e.data("ui-tooltip-title",e.attr("title")).removeAttr("title"):void 0}))},_enable:function(){this.disabledTitles.each(function(){var e=t(this);e.data("ui-tooltip-title")&&e.attr("title",e.data("ui-tooltip-title"))}),this.disabledTitles=t([])},open:function(e){var i=this,s=t(e?e.target:this.element).closest(this.options.items);s.length&&!s.data("ui-tooltip-id")&&(s.attr("title")&&s.data("ui-tooltip-title",s.attr("title")),s.data("ui-tooltip-open",!0),e&&"mouseover"===e.type&&s.parents().each(function(){var e,s=t(this);s.data("ui-tooltip-open")&&(e=t.Event("blur"),e.target=e.currentTarget=this,i.close(e,!0)),s.attr("title")&&(s.uniqueId(),i.parents[this.id]={element:this,title:s.attr("title")},s.attr("title",""))}),this._registerCloseHandlers(e,s),this._updateContent(s,e))},_updateContent:function(t,e){var i,s=this.options.content,n=this,o=e?e.type:null;return"string"==typeof s||s.nodeType||s.jquery?this._open(e,t,s):(i=s.call(t[0],function(i){n._delay(function(){t.data("ui-tooltip-open")&&(e&&(e.type=o),this._open(e,t,i))})}),i&&this._open(e,t,i),void 0)},_open:function(e,i,s){function n(t){l.of=t,a.is(":hidden")||a.position(l)}var o,a,r,h,l=t.extend({},this.options.position);if(s){if(o=this._find(i))return o.tooltip.find(".ui-tooltip-content").html(s),void 0;i.is("[title]")&&(e&&"mouseover"===e.type?i.attr("title",""):i.removeAttr("title")),o=this._tooltip(i),a=o.tooltip,this._addDescribedBy(i,a.attr("id")),a.find(".ui-tooltip-content").html(s),this.liveRegion.children().hide(),h=t("<div>").html(a.find(".ui-tooltip-content").html()),h.removeAttr("name").find("[name]").removeAttr("name"),h.removeAttr("id").find("[id]").removeAttr("id"),h.appendTo(this.liveRegion),this.options.track&&e&&/^mouse/.test(e.type)?(this._on(this.document,{mousemove:n}),n(e)):a.position(t.extend({of:i},this.options.position)),a.hide(),this._show(a,this.options.show),this.options.track&&this.options.show&&this.options.show.delay&&(r=this.delayedShow=setInterval(function(){a.is(":visible")&&(n(l.of),clearInterval(r))},t.fx.interval)),this._trigger("open",e,{tooltip:a})}},_registerCloseHandlers:function(e,i){var s={keyup:function(e){if(e.keyCode===t.ui.keyCode.ESCAPE){var s=t.Event(e);s.currentTarget=i[0],this.close(s,!0)}}};i[0]!==this.element[0]&&(s.remove=function(){this._removeTooltip(this._find(i).tooltip)}),e&&"mouseover"!==e.type||(s.mouseleave="close"),e&&"focusin"!==e.type||(s.focusout="close"),this._on(!0,i,s)},close:function(e){var i,s=this,n=t(e?e.currentTarget:this.element),o=this._find(n);return o?(i=o.tooltip,o.closing||(clearInterval(this.delayedShow),n.data("ui-tooltip-title")&&!n.attr("title")&&n.attr("title",n.data("ui-tooltip-title")),this._removeDescribedBy(n),o.hiding=!0,i.stop(!0),this._hide(i,this.options.hide,function(){s._removeTooltip(t(this))}),n.removeData("ui-tooltip-open"),this._off(n,"mouseleave focusout keyup"),n[0]!==this.element[0]&&this._off(n,"remove"),this._off(this.document,"mousemove"),e&&"mouseleave"===e.type&&t.each(this.parents,function(e,i){t(i.element).attr("title",i.title),delete s.parents[e]}),o.closing=!0,this._trigger("close",e,{tooltip:i}),o.hiding||(o.closing=!1)),void 0):(n.removeData("ui-tooltip-open"),void 0)},_tooltip:function(e){var i=t("<div>").attr("role","tooltip"),s=t("<div>").appendTo(i),n=i.uniqueId().attr("id");return this._addClass(s,"ui-tooltip-content"),this._addClass(i,"ui-tooltip","ui-widget ui-widget-content"),i.appendTo(this._appendTo(e)),this.tooltips[n]={element:e,tooltip:i}},_find:function(t){var e=t.data("ui-tooltip-id");return e?this.tooltips[e]:null},_removeTooltip:function(t){t.remove(),delete this.tooltips[t.attr("id")]},_appendTo:function(t){var e=t.closest(".ui-front, dialog");return e.length||(e=this.document[0].body),e},_destroy:function(){var e=this;t.each(this.tooltips,function(i,s){var n=t.Event("blur"),o=s.element;n.target=n.currentTarget=o[0],e.close(n,!0),t("#"+i).remove(),o.data("ui-tooltip-title")&&(o.attr("title")||o.attr("title",o.data("ui-tooltip-title")),o.removeData("ui-tooltip-title"))}),this.liveRegion.remove()}}),t.uiBackCompat!==!1&&t.widget("ui.tooltip",t.ui.tooltip,{options:{tooltipClass:null},_tooltip:function(){var t=this._superApply(arguments);return this.options.tooltipClass&&t.tooltip.addClass(this.options.tooltipClass),t}}),t.ui.tooltip});
\ No newline at end of file
diff --git a/wiki/lib/scripts/jquery/jquery.cookie.js b/wiki/lib/scripts/jquery/jquery.cookie.js
deleted file mode 100644
index c4f99af..0000000
--- a/wiki/lib/scripts/jquery/jquery.cookie.js
+++ /dev/null
@@ -1,95 +0,0 @@
-/*!
- * jQuery Cookie Plugin v1.3.1
- * https://github.com/carhartl/jquery-cookie
- *
- * Copyright 2013 Klaus Hartl
- * Released under the MIT license
- */
-(function (factory) {
-	if (typeof define === 'function' && define.amd) {
-		// AMD. Register as anonymous module.
-		define(['jquery'], factory);
-	} else {
-		// Browser globals.
-		factory(jQuery);
-	}
-}(function ($) {
-
-	var pluses = /\+/g;
-
-	function raw(s) {
-		return s;
-	}
-
-	function decoded(s) {
-		return decodeURIComponent(s.replace(pluses, ' '));
-	}
-
-	function converted(s) {
-		if (s.indexOf('"') === 0) {
-			// This is a quoted cookie as according to RFC2068, unescape
-			s = s.slice(1, -1).replace(/\\"/g, '"').replace(/\\\\/g, '\\');
-		}
-		try {
-			return config.json ? JSON.parse(s) : s;
-		} catch(er) {}
-	}
-
-	var config = $.cookie = function (key, value, options) {
-
-		// write
-		if (value !== undefined) {
-			options = $.extend({}, config.defaults, options);
-
-			if (typeof options.expires === 'number') {
-				var days = options.expires, t = options.expires = new Date();
-				t.setDate(t.getDate() + days);
-			}
-
-			value = config.json ? JSON.stringify(value) : String(value);
-
-			return (document.cookie = [
-				config.raw ? key : encodeURIComponent(key),
-				'=',
-				config.raw ? value : encodeURIComponent(value),
-				options.expires ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE
-				options.path    ? '; path=' + options.path : '',
-				options.domain  ? '; domain=' + options.domain : '',
-				options.secure  ? '; secure' : ''
-			].join(''));
-		}
-
-		// read
-		var decode = config.raw ? raw : decoded;
-		var cookies = document.cookie.split('; ');
-		var result = key ? undefined : {};
-		for (var i = 0, l = cookies.length; i < l; i++) {
-			var parts = cookies[i].split('=');
-			var name = decode(parts.shift());
-			var cookie = decode(parts.join('='));
-
-			if (key && key === name) {
-				result = converted(cookie);
-				break;
-			}
-
-			if (!key) {
-				result[name] = converted(cookie);
-			}
-		}
-
-		return result;
-	};
-
-	config.defaults = {};
-
-	$.removeCookie = function (key, options) {
-		if ($.cookie(key) !== undefined) {
-			// Must not alter options, thus extending a fresh object...
-			$.cookie(key, '', $.extend({}, options, { expires: -1 }));
-			return true;
-		}
-		return false;
-	};
-
-}));
diff --git a/wiki/lib/scripts/jquery/jquery.min.js b/wiki/lib/scripts/jquery/jquery.min.js
deleted file mode 100644
index 4c5be4c..0000000
--- a/wiki/lib/scripts/jquery/jquery.min.js
+++ /dev/null
@@ -1,4 +0,0 @@
-/*! jQuery v3.1.1 | (c) jQuery Foundation | jquery.org/license */
-!function(a,b){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){"use strict";var c=[],d=a.document,e=Object.getPrototypeOf,f=c.slice,g=c.concat,h=c.push,i=c.indexOf,j={},k=j.toString,l=j.hasOwnProperty,m=l.toString,n=m.call(Object),o={};function p(a,b){b=b||d;var c=b.createElement("script");c.text=a,b.head.appendChild(c).parentNode.removeChild(c)}var q="3.1.1",r=function(a,b){return new r.fn.init(a,b)},s=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,t=/^-ms-/,u=/-([a-z])/g,v=function(a,b){return b.toUpperCase()};r.fn=r.prototype={jquery:q,constructor:r,length:0,toArray:function(){return f.call(this)},get:function(a){return null==a?f.call(this):a<0?this[a+this.length]:this[a]},pushStack:function(a){var b=r.merge(this.constructor(),a);return b.prevObject=this,b},each:function(a){return r.each(this,a)},map:function(a){return this.pushStack(r.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(f.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(a<0?b:0);return this.pushStack(c>=0&&c<b?[this[c]]:[])},end:function(){return this.prevObject||this.constructor()},push:h,sort:c.sort,splice:c.splice},r.extend=r.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||r.isFunction(g)||(g={}),h===i&&(g=this,h--);h<i;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(r.isPlainObject(d)||(e=r.isArray(d)))?(e?(e=!1,f=c&&r.isArray(c)?c:[]):f=c&&r.isPlainObject(c)?c:{},g[b]=r.extend(j,f,d)):void 0!==d&&(g[b]=d));return g},r.extend({expando:"jQuery"+(q+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===r.type(a)},isArray:Array.isArray,isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){var b=r.type(a);return("number"===b||"string"===b)&&!isNaN(a-parseFloat(a))},isPlainObject:function(a){var b,c;return!(!a||"[object Object]"!==k.call(a))&&(!(b=e(a))||(c=l.call(b,"constructor")&&b.constructor,"function"==typeof c&&m.call(c)===n))},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?j[k.call(a)]||"object":typeof a},globalEval:function(a){p(a)},camelCase:function(a){return a.replace(t,"ms-").replace(u,v)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b){var c,d=0;if(w(a)){for(c=a.length;d<c;d++)if(b.call(a[d],d,a[d])===!1)break}else for(d in a)if(b.call(a[d],d,a[d])===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(s,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(w(Object(a))?r.merge(c,"string"==typeof a?[a]:a):h.call(c,a)),c},inArray:function(a,b,c){return null==b?-1:i.call(b,a,c)},merge:function(a,b){for(var c=+b.length,d=0,e=a.length;d<c;d++)a[e++]=b[d];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;f<g;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,e,f=0,h=[];if(w(a))for(d=a.length;f<d;f++)e=b(a[f],f,c),null!=e&&h.push(e);else for(f in a)e=b(a[f],f,c),null!=e&&h.push(e);return g.apply([],h)},guid:1,proxy:function(a,b){var c,d,e;if("string"==typeof b&&(c=a[b],b=a,a=c),r.isFunction(a))return d=f.call(arguments,2),e=function(){return a.apply(b||this,d.concat(f.call(arguments)))},e.guid=a.guid=a.guid||r.guid++,e},now:Date.now,support:o}),"function"==typeof Symbol&&(r.fn[Symbol.iterator]=c[Symbol.iterator]),r.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(a,b){j["[object "+b+"]"]=b.toLowerCase()});function w(a){var b=!!a&&"length"in a&&a.length,c=r.type(a);return"function"!==c&&!r.isWindow(a)&&("array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a)}var x=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ha(),z=ha(),A=ha(),B=function(a,b){return a===b&&(l=!0),0},C={}.hasOwnProperty,D=[],E=D.pop,F=D.push,G=D.push,H=D.slice,I=function(a,b){for(var c=0,d=a.length;c<d;c++)if(a[c]===b)return c;return-1},J="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",K="[\\x20\\t\\r\\n\\f]",L="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",M="\\["+K+"*("+L+")(?:"+K+"*([*^$|!~]?=)"+K+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+L+"))|)"+K+"*\\]",N=":("+L+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+M+")*)|.*)\\)|)",O=new RegExp(K+"+","g"),P=new RegExp("^"+K+"+|((?:^|[^\\\\])(?:\\\\.)*)"+K+"+$","g"),Q=new RegExp("^"+K+"*,"+K+"*"),R=new RegExp("^"+K+"*([>+~]|"+K+")"+K+"*"),S=new RegExp("="+K+"*([^\\]'\"]*?)"+K+"*\\]","g"),T=new RegExp(N),U=new RegExp("^"+L+"$"),V={ID:new RegExp("^#("+L+")"),CLASS:new RegExp("^\\.("+L+")"),TAG:new RegExp("^("+L+"|[*])"),ATTR:new RegExp("^"+M),PSEUDO:new RegExp("^"+N),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+K+"*(even|odd|(([+-]|)(\\d*)n|)"+K+"*(?:([+-]|)"+K+"*(\\d+)|))"+K+"*\\)|)","i"),bool:new RegExp("^(?:"+J+")$","i"),needsContext:new RegExp("^"+K+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+K+"*((?:-\\d)?\\d*)"+K+"*\\)|)(?=[^-]|$)","i")},W=/^(?:input|select|textarea|button)$/i,X=/^h\d$/i,Y=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,$=/[+~]/,_=new RegExp("\\\\([\\da-f]{1,6}"+K+"?|("+K+")|.)","ig"),aa=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:d<0?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},ba=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ca=function(a,b){return b?"\0"===a?"\ufffd":a.slice(0,-1)+"\\"+a.charCodeAt(a.length-1).toString(16)+" ":"\\"+a},da=function(){m()},ea=ta(function(a){return a.disabled===!0&&("form"in a||"label"in a)},{dir:"parentNode",next:"legend"});try{G.apply(D=H.call(v.childNodes),v.childNodes),D[v.childNodes.length].nodeType}catch(fa){G={apply:D.length?function(a,b){F.apply(a,H.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function ga(a,b,d,e){var f,h,j,k,l,o,r,s=b&&b.ownerDocument,w=b?b.nodeType:9;if(d=d||[],"string"!=typeof a||!a||1!==w&&9!==w&&11!==w)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==w&&(l=Z.exec(a)))if(f=l[1]){if(9===w){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(s&&(j=s.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(l[2])return G.apply(d,b.getElementsByTagName(a)),d;if((f=l[3])&&c.getElementsByClassName&&b.getElementsByClassName)return G.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+" "]&&(!q||!q.test(a))){if(1!==w)s=b,r=a;else if("object"!==b.nodeName.toLowerCase()){(k=b.getAttribute("id"))?k=k.replace(ba,ca):b.setAttribute("id",k=u),o=g(a),h=o.length;while(h--)o[h]="#"+k+" "+sa(o[h]);r=o.join(","),s=$.test(a)&&qa(b.parentNode)||b}if(r)try{return G.apply(d,s.querySelectorAll(r)),d}catch(x){}finally{k===u&&b.removeAttribute("id")}}}return i(a.replace(P,"$1"),b,d,e)}function ha(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ia(a){return a[u]=!0,a}function ja(a){var b=n.createElement("fieldset");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ka(a,b){var c=a.split("|"),e=c.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&a.sourceIndex-b.sourceIndex;if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function na(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function oa(a){return function(b){return"form"in b?b.parentNode&&b.disabled===!1?"label"in b?"label"in b.parentNode?b.parentNode.disabled===a:b.disabled===a:b.isDisabled===a||b.isDisabled!==!a&&ea(b)===a:b.disabled===a:"label"in b&&b.disabled===a}}function pa(a){return ia(function(b){return b=+b,ia(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function qa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=ga.support={},f=ga.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return!!b&&"HTML"!==b.nodeName},m=ga.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=n.documentElement,p=!f(n),v!==n&&(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",da,!1):e.attachEvent&&e.attachEvent("onunload",da)),c.attributes=ja(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ja(function(a){return a.appendChild(n.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Y.test(n.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){return a.getAttribute("id")===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c?[c]:[]}}):(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c,d,e,f=b.getElementById(a);if(f){if(c=f.getAttributeNode("id"),c&&c.value===a)return[f];e=b.getElementsByName(a),d=0;while(f=e[d++])if(c=f.getAttributeNode("id"),c&&c.value===a)return[f]}return[]}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){if("undefined"!=typeof b.getElementsByClassName&&p)return b.getElementsByClassName(a)},r=[],q=[],(c.qsa=Y.test(n.querySelectorAll))&&(ja(function(a){o.appendChild(a).innerHTML="<a id='"+u+"'></a><select id='"+u+"-\r\\' msallowcapture=''><option selected=''></option></select>",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+K+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+K+"*(?:value|"+J+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ja(function(a){a.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var b=n.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+K+"*[*^$|!~]?="),2!==a.querySelectorAll(":enabled").length&&q.push(":enabled",":disabled"),o.appendChild(a).disabled=!0,2!==a.querySelectorAll(":disabled").length&&q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=Y.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ja(function(a){c.disconnectedMatch=s.call(a,"*"),s.call(a,"[s!='']:x"),r.push("!=",N)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=Y.test(o.compareDocumentPosition),t=b||Y.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===n||a.ownerDocument===v&&t(v,a)?-1:b===n||b.ownerDocument===v&&t(v,b)?1:k?I(k,a)-I(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,g=[a],h=[b];if(!e||!f)return a===n?-1:b===n?1:e?-1:f?1:k?I(k,a)-I(k,b):0;if(e===f)return la(a,b);c=a;while(c=c.parentNode)g.unshift(c);c=b;while(c=c.parentNode)h.unshift(c);while(g[d]===h[d])d++;return d?la(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):n},ga.matches=function(a,b){return ga(a,null,null,b)},ga.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(S,"='$1']"),c.matchesSelector&&p&&!A[b+" "]&&(!r||!r.test(b))&&(!q||!q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return ga(b,n,null,[a]).length>0},ga.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},ga.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&C.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},ga.escape=function(a){return(a+"").replace(ba,ca)},ga.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},ga.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=ga.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=ga.selectors={cacheLength:50,createPseudo:ia,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(_,aa),a[3]=(a[3]||a[4]||a[5]||"").replace(_,aa),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||ga.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&ga.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return V.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&T.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(_,aa).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+K+")"+a+"("+K+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=ga.attr(d,a);return null==e?"!="===b:!b||(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(O," ")+" ").indexOf(c)>-1:"|="===b&&(e===c||e.slice(0,c.length+1)===c+"-"))}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h,t=!1;if(q){if(f){while(p){m=b;while(m=m[p])if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n&&j[2],m=n&&q.childNodes[n];while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if(1===m.nodeType&&++t&&m===b){k[a]=[w,n,t];break}}else if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n),t===!1)while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if((h?m.nodeName.toLowerCase()===r:1===m.nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[w,t]),m===b))break;return t-=e,t===d||t%d===0&&t/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||ga.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ia(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=I(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ia(function(a){var b=[],c=[],d=h(a.replace(P,"$1"));return d[u]?ia(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ia(function(a){return function(b){return ga(a,b).length>0}}),contains:ia(function(a){return a=a.replace(_,aa),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return U.test(a||"")||ga.error("unsupported lang: "+a),a=a.replace(_,aa).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:oa(!1),disabled:oa(!0),checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return X.test(a.nodeName)},input:function(a){return W.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:pa(function(){return[0]}),last:pa(function(a,b){return[b-1]}),eq:pa(function(a,b,c){return[c<0?c+b:c]}),even:pa(function(a,b){for(var c=0;c<b;c+=2)a.push(c);return a}),odd:pa(function(a,b){for(var c=1;c<b;c+=2)a.push(c);return a}),lt:pa(function(a,b,c){for(var d=c<0?c+b:c;--d>=0;)a.push(d);return a}),gt:pa(function(a,b,c){for(var d=c<0?c+b:c;++d<b;)a.push(d);return a})}},d.pseudos.nth=d.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})d.pseudos[b]=ma(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=na(b);function ra(){}ra.prototype=d.filters=d.pseudos,d.setFilters=new ra,g=ga.tokenize=function(a,b){var c,e,f,g,h,i,j,k=z[a+" "];if(k)return b?0:k.slice(0);h=a,i=[],j=d.preFilter;while(h){c&&!(e=Q.exec(h))||(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=R.exec(h))&&(c=e.shift(),f.push({value:c,type:e[0].replace(P," ")}),h=h.slice(c.length));for(g in d.filter)!(e=V[g].exec(h))||j[g]&&!(e=j[g](e))||(c=e.shift(),f.push({value:c,type:g,matches:e}),h=h.slice(c.length));if(!c)break}return b?h.length:h?ga.error(a):z(a,i).slice(0)};function sa(a){for(var b=0,c=a.length,d="";b<c;b++)d+=a[b].value;return d}function ta(a,b,c){var d=b.dir,e=b.next,f=e||d,g=c&&"parentNode"===f,h=x++;return b.first?function(b,c,e){while(b=b[d])if(1===b.nodeType||g)return a(b,c,e);return!1}:function(b,c,i){var j,k,l,m=[w,h];if(i){while(b=b[d])if((1===b.nodeType||g)&&a(b,c,i))return!0}else while(b=b[d])if(1===b.nodeType||g)if(l=b[u]||(b[u]={}),k=l[b.uniqueID]||(l[b.uniqueID]={}),e&&e===b.nodeName.toLowerCase())b=b[d]||b;else{if((j=k[f])&&j[0]===w&&j[1]===h)return m[2]=j[2];if(k[f]=m,m[2]=a(b,c,i))return!0}return!1}}function ua(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function va(a,b,c){for(var d=0,e=b.length;d<e;d++)ga(a,b[d],c);return c}function wa(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;h<i;h++)(f=a[h])&&(c&&!c(f,d,e)||(g.push(f),j&&b.push(h)));return g}function xa(a,b,c,d,e,f){return d&&!d[u]&&(d=xa(d)),e&&!e[u]&&(e=xa(e,f)),ia(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||va(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:wa(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=wa(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?I(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=wa(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):G.apply(g,r)})}function ya(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=ta(function(a){return a===b},h,!0),l=ta(function(a){return I(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];i<f;i++)if(c=d.relative[a[i].type])m=[ta(ua(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;e<f;e++)if(d.relative[a[e].type])break;return xa(i>1&&ua(m),i>1&&sa(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(P,"$1"),c,i<e&&ya(a.slice(i,e)),e<f&&ya(a=a.slice(e)),e<f&&sa(a))}m.push(c)}return ua(m)}function za(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,o,q,r=0,s="0",t=f&&[],u=[],v=j,x=f||e&&d.find.TAG("*",k),y=w+=null==v?1:Math.random()||.1,z=x.length;for(k&&(j=g===n||g||k);s!==z&&null!=(l=x[s]);s++){if(e&&l){o=0,g||l.ownerDocument===n||(m(l),h=!p);while(q=a[o++])if(q(l,g||n,h)){i.push(l);break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t.push(l))}if(r+=s,c&&s!==r){o=0;while(q=b[o++])q(t,u,g,h);if(f){if(r>0)while(s--)t[s]||u[s]||(u[s]=E.call(i));u=wa(u)}G.apply(i,u),k&&!f&&u.length>0&&r+b.length>1&&ga.uniqueSort(i)}return k&&(w=y,j=v),t};return c?ia(f):f}return h=ga.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=ya(b[c]),f[u]?d.push(f):e.push(f);f=A(a,za(e,d)),f.selector=a}return f},i=ga.select=function(a,b,c,e){var f,i,j,k,l,m="function"==typeof a&&a,n=!e&&g(a=m.selector||a);if(c=c||[],1===n.length){if(i=n[0]=n[0].slice(0),i.length>2&&"ID"===(j=i[0]).type&&9===b.nodeType&&p&&d.relative[i[1].type]){if(b=(d.find.ID(j.matches[0].replace(_,aa),b)||[])[0],!b)return c;m&&(b=b.parentNode),a=a.slice(i.shift().value.length)}f=V.needsContext.test(a)?0:i.length;while(f--){if(j=i[f],d.relative[k=j.type])break;if((l=d.find[k])&&(e=l(j.matches[0].replace(_,aa),$.test(i[0].type)&&qa(b.parentNode)||b))){if(i.splice(f,1),a=e.length&&sa(i),!a)return G.apply(c,e),c;break}}}return(m||h(a,n))(e,b,!p,c,!b||$.test(a)&&qa(b.parentNode)||b),c},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&a.compareDocumentPosition(n.createElement("fieldset"))}),ja(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||ka("type|href|height|width",function(a,b,c){if(!c)return a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ja(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ka("value",function(a,b,c){if(!c&&"input"===a.nodeName.toLowerCase())return a.defaultValue}),ja(function(a){return null==a.getAttribute("disabled")})||ka(J,function(a,b,c){var d;if(!c)return a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),ga}(a);r.find=x,r.expr=x.selectors,r.expr[":"]=r.expr.pseudos,r.uniqueSort=r.unique=x.uniqueSort,r.text=x.getText,r.isXMLDoc=x.isXML,r.contains=x.contains,r.escapeSelector=x.escape;var y=function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&r(a).is(c))break;d.push(a)}return d},z=function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c},A=r.expr.match.needsContext,B=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i,C=/^.[^:#\[\.,]*$/;function D(a,b,c){return r.isFunction(b)?r.grep(a,function(a,d){return!!b.call(a,d,a)!==c}):b.nodeType?r.grep(a,function(a){return a===b!==c}):"string"!=typeof b?r.grep(a,function(a){return i.call(b,a)>-1!==c}):C.test(b)?r.filter(b,a,c):(b=r.filter(b,a),r.grep(a,function(a){return i.call(b,a)>-1!==c&&1===a.nodeType}))}r.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?r.find.matchesSelector(d,a)?[d]:[]:r.find.matches(a,r.grep(b,function(a){return 1===a.nodeType}))},r.fn.extend({find:function(a){var b,c,d=this.length,e=this;if("string"!=typeof a)return this.pushStack(r(a).filter(function(){for(b=0;b<d;b++)if(r.contains(e[b],this))return!0}));for(c=this.pushStack([]),b=0;b<d;b++)r.find(a,e[b],c);return d>1?r.uniqueSort(c):c},filter:function(a){return this.pushStack(D(this,a||[],!1))},not:function(a){return this.pushStack(D(this,a||[],!0))},is:function(a){return!!D(this,"string"==typeof a&&A.test(a)?r(a):a||[],!1).length}});var E,F=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,G=r.fn.init=function(a,b,c){var e,f;if(!a)return this;if(c=c||E,"string"==typeof a){if(e="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:F.exec(a),!e||!e[1]&&b)return!b||b.jquery?(b||c).find(a):this.constructor(b).find(a);if(e[1]){if(b=b instanceof r?b[0]:b,r.merge(this,r.parseHTML(e[1],b&&b.nodeType?b.ownerDocument||b:d,!0)),B.test(e[1])&&r.isPlainObject(b))for(e in b)r.isFunction(this[e])?this[e](b[e]):this.attr(e,b[e]);return this}return f=d.getElementById(e[2]),f&&(this[0]=f,this.length=1),this}return a.nodeType?(this[0]=a,this.length=1,this):r.isFunction(a)?void 0!==c.ready?c.ready(a):a(r):r.makeArray(a,this)};G.prototype=r.fn,E=r(d);var H=/^(?:parents|prev(?:Until|All))/,I={children:!0,contents:!0,next:!0,prev:!0};r.fn.extend({has:function(a){var b=r(a,this),c=b.length;return this.filter(function(){for(var a=0;a<c;a++)if(r.contains(this,b[a]))return!0})},closest:function(a,b){var c,d=0,e=this.length,f=[],g="string"!=typeof a&&r(a);if(!A.test(a))for(;d<e;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&r.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?r.uniqueSort(f):f)},index:function(a){return a?"string"==typeof a?i.call(r(a),this[0]):i.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(r.uniqueSort(r.merge(this.get(),r(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function J(a,b){while((a=a[b])&&1!==a.nodeType);return a}r.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return y(a,"parentNode")},parentsUntil:function(a,b,c){return y(a,"parentNode",c)},next:function(a){return J(a,"nextSibling")},prev:function(a){return J(a,"previousSibling")},nextAll:function(a){return y(a,"nextSibling")},prevAll:function(a){return y(a,"previousSibling")},nextUntil:function(a,b,c){return y(a,"nextSibling",c)},prevUntil:function(a,b,c){return y(a,"previousSibling",c)},siblings:function(a){return z((a.parentNode||{}).firstChild,a)},children:function(a){return z(a.firstChild)},contents:function(a){return a.contentDocument||r.merge([],a.childNodes)}},function(a,b){r.fn[a]=function(c,d){var e=r.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=r.filter(d,e)),this.length>1&&(I[a]||r.uniqueSort(e),H.test(a)&&e.reverse()),this.pushStack(e)}});var K=/[^\x20\t\r\n\f]+/g;function L(a){var b={};return r.each(a.match(K)||[],function(a,c){b[c]=!0}),b}r.Callbacks=function(a){a="string"==typeof a?L(a):r.extend({},a);var b,c,d,e,f=[],g=[],h=-1,i=function(){for(e=a.once,d=b=!0;g.length;h=-1){c=g.shift();while(++h<f.length)f[h].apply(c[0],c[1])===!1&&a.stopOnFalse&&(h=f.length,c=!1)}a.memory||(c=!1),b=!1,e&&(f=c?[]:"")},j={add:function(){return f&&(c&&!b&&(h=f.length-1,g.push(c)),function d(b){r.each(b,function(b,c){r.isFunction(c)?a.unique&&j.has(c)||f.push(c):c&&c.length&&"string"!==r.type(c)&&d(c)})}(arguments),c&&!b&&i()),this},remove:function(){return r.each(arguments,function(a,b){var c;while((c=r.inArray(b,f,c))>-1)f.splice(c,1),c<=h&&h--}),this},has:function(a){return a?r.inArray(a,f)>-1:f.length>0},empty:function(){return f&&(f=[]),this},disable:function(){return e=g=[],f=c="",this},disabled:function(){return!f},lock:function(){return e=g=[],c||b||(f=c=""),this},locked:function(){return!!e},fireWith:function(a,c){return e||(c=c||[],c=[a,c.slice?c.slice():c],g.push(c),b||i()),this},fire:function(){return j.fireWith(this,arguments),this},fired:function(){return!!d}};return j};function M(a){return a}function N(a){throw a}function O(a,b,c){var d;try{a&&r.isFunction(d=a.promise)?d.call(a).done(b).fail(c):a&&r.isFunction(d=a.then)?d.call(a,b,c):b.call(void 0,a)}catch(a){c.call(void 0,a)}}r.extend({Deferred:function(b){var c=[["notify","progress",r.Callbacks("memory"),r.Callbacks("memory"),2],["resolve","done",r.Callbacks("once memory"),r.Callbacks("once memory"),0,"resolved"],["reject","fail",r.Callbacks("once memory"),r.Callbacks("once memory"),1,"rejected"]],d="pending",e={state:function(){return d},always:function(){return f.done(arguments).fail(arguments),this},"catch":function(a){return e.then(null,a)},pipe:function(){var a=arguments;return r.Deferred(function(b){r.each(c,function(c,d){var e=r.isFunction(a[d[4]])&&a[d[4]];f[d[1]](function(){var a=e&&e.apply(this,arguments);a&&r.isFunction(a.promise)?a.promise().progress(b.notify).done(b.resolve).fail(b.reject):b[d[0]+"With"](this,e?[a]:arguments)})}),a=null}).promise()},then:function(b,d,e){var f=0;function g(b,c,d,e){return function(){var h=this,i=arguments,j=function(){var a,j;if(!(b<f)){if(a=d.apply(h,i),a===c.promise())throw new TypeError("Thenable self-resolution");j=a&&("object"==typeof a||"function"==typeof a)&&a.then,r.isFunction(j)?e?j.call(a,g(f,c,M,e),g(f,c,N,e)):(f++,j.call(a,g(f,c,M,e),g(f,c,N,e),g(f,c,M,c.notifyWith))):(d!==M&&(h=void 0,i=[a]),(e||c.resolveWith)(h,i))}},k=e?j:function(){try{j()}catch(a){r.Deferred.exceptionHook&&r.Deferred.exceptionHook(a,k.stackTrace),b+1>=f&&(d!==N&&(h=void 0,i=[a]),c.rejectWith(h,i))}};b?k():(r.Deferred.getStackHook&&(k.stackTrace=r.Deferred.getStackHook()),a.setTimeout(k))}}return r.Deferred(function(a){c[0][3].add(g(0,a,r.isFunction(e)?e:M,a.notifyWith)),c[1][3].add(g(0,a,r.isFunction(b)?b:M)),c[2][3].add(g(0,a,r.isFunction(d)?d:N))}).promise()},promise:function(a){return null!=a?r.extend(a,e):e}},f={};return r.each(c,function(a,b){var g=b[2],h=b[5];e[b[1]]=g.add,h&&g.add(function(){d=h},c[3-a][2].disable,c[0][2].lock),g.add(b[3].fire),f[b[0]]=function(){return f[b[0]+"With"](this===f?void 0:this,arguments),this},f[b[0]+"With"]=g.fireWith}),e.promise(f),b&&b.call(f,f),f},when:function(a){var b=arguments.length,c=b,d=Array(c),e=f.call(arguments),g=r.Deferred(),h=function(a){return function(c){d[a]=this,e[a]=arguments.length>1?f.call(arguments):c,--b||g.resolveWith(d,e)}};if(b<=1&&(O(a,g.done(h(c)).resolve,g.reject),"pending"===g.state()||r.isFunction(e[c]&&e[c].then)))return g.then();while(c--)O(e[c],h(c),g.reject);return g.promise()}});var P=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;r.Deferred.exceptionHook=function(b,c){a.console&&a.console.warn&&b&&P.test(b.name)&&a.console.warn("jQuery.Deferred exception: "+b.message,b.stack,c)},r.readyException=function(b){a.setTimeout(function(){throw b})};var Q=r.Deferred();r.fn.ready=function(a){return Q.then(a)["catch"](function(a){r.readyException(a)}),this},r.extend({isReady:!1,readyWait:1,holdReady:function(a){a?r.readyWait++:r.ready(!0)},ready:function(a){(a===!0?--r.readyWait:r.isReady)||(r.isReady=!0,a!==!0&&--r.readyWait>0||Q.resolveWith(d,[r]))}}),r.ready.then=Q.then;function R(){d.removeEventListener("DOMContentLoaded",R),
-a.removeEventListener("load",R),r.ready()}"complete"===d.readyState||"loading"!==d.readyState&&!d.documentElement.doScroll?a.setTimeout(r.ready):(d.addEventListener("DOMContentLoaded",R),a.addEventListener("load",R));var S=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===r.type(c)){e=!0;for(h in c)S(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,r.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(r(a),c)})),b))for(;h<i;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},T=function(a){return 1===a.nodeType||9===a.nodeType||!+a.nodeType};function U(){this.expando=r.expando+U.uid++}U.uid=1,U.prototype={cache:function(a){var b=a[this.expando];return b||(b={},T(a)&&(a.nodeType?a[this.expando]=b:Object.defineProperty(a,this.expando,{value:b,configurable:!0}))),b},set:function(a,b,c){var d,e=this.cache(a);if("string"==typeof b)e[r.camelCase(b)]=c;else for(d in b)e[r.camelCase(d)]=b[d];return e},get:function(a,b){return void 0===b?this.cache(a):a[this.expando]&&a[this.expando][r.camelCase(b)]},access:function(a,b,c){return void 0===b||b&&"string"==typeof b&&void 0===c?this.get(a,b):(this.set(a,b,c),void 0!==c?c:b)},remove:function(a,b){var c,d=a[this.expando];if(void 0!==d){if(void 0!==b){r.isArray(b)?b=b.map(r.camelCase):(b=r.camelCase(b),b=b in d?[b]:b.match(K)||[]),c=b.length;while(c--)delete d[b[c]]}(void 0===b||r.isEmptyObject(d))&&(a.nodeType?a[this.expando]=void 0:delete a[this.expando])}},hasData:function(a){var b=a[this.expando];return void 0!==b&&!r.isEmptyObject(b)}};var V=new U,W=new U,X=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Y=/[A-Z]/g;function Z(a){return"true"===a||"false"!==a&&("null"===a?null:a===+a+""?+a:X.test(a)?JSON.parse(a):a)}function $(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d="data-"+b.replace(Y,"-$&").toLowerCase(),c=a.getAttribute(d),"string"==typeof c){try{c=Z(c)}catch(e){}W.set(a,b,c)}else c=void 0;return c}r.extend({hasData:function(a){return W.hasData(a)||V.hasData(a)},data:function(a,b,c){return W.access(a,b,c)},removeData:function(a,b){W.remove(a,b)},_data:function(a,b,c){return V.access(a,b,c)},_removeData:function(a,b){V.remove(a,b)}}),r.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=W.get(f),1===f.nodeType&&!V.get(f,"hasDataAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=r.camelCase(d.slice(5)),$(f,d,e[d])));V.set(f,"hasDataAttrs",!0)}return e}return"object"==typeof a?this.each(function(){W.set(this,a)}):S(this,function(b){var c;if(f&&void 0===b){if(c=W.get(f,a),void 0!==c)return c;if(c=$(f,a),void 0!==c)return c}else this.each(function(){W.set(this,a,b)})},null,b,arguments.length>1,null,!0)},removeData:function(a){return this.each(function(){W.remove(this,a)})}}),r.extend({queue:function(a,b,c){var d;if(a)return b=(b||"fx")+"queue",d=V.get(a,b),c&&(!d||r.isArray(c)?d=V.access(a,b,r.makeArray(c)):d.push(c)),d||[]},dequeue:function(a,b){b=b||"fx";var c=r.queue(a,b),d=c.length,e=c.shift(),f=r._queueHooks(a,b),g=function(){r.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return V.get(a,c)||V.access(a,c,{empty:r.Callbacks("once memory").add(function(){V.remove(a,[b+"queue",c])})})}}),r.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?r.queue(this[0],a):void 0===b?this:this.each(function(){var c=r.queue(this,a,b);r._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&r.dequeue(this,a)})},dequeue:function(a){return this.each(function(){r.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=r.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};"string"!=typeof a&&(b=a,a=void 0),a=a||"fx";while(g--)c=V.get(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}});var _=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,aa=new RegExp("^(?:([+-])=|)("+_+")([a-z%]*)$","i"),ba=["Top","Right","Bottom","Left"],ca=function(a,b){return a=b||a,"none"===a.style.display||""===a.style.display&&r.contains(a.ownerDocument,a)&&"none"===r.css(a,"display")},da=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e};function ea(a,b,c,d){var e,f=1,g=20,h=d?function(){return d.cur()}:function(){return r.css(a,b,"")},i=h(),j=c&&c[3]||(r.cssNumber[b]?"":"px"),k=(r.cssNumber[b]||"px"!==j&&+i)&&aa.exec(r.css(a,b));if(k&&k[3]!==j){j=j||k[3],c=c||[],k=+i||1;do f=f||".5",k/=f,r.style(a,b,k+j);while(f!==(f=h()/i)&&1!==f&&--g)}return c&&(k=+k||+i||0,e=c[1]?k+(c[1]+1)*c[2]:+c[2],d&&(d.unit=j,d.start=k,d.end=e)),e}var fa={};function ga(a){var b,c=a.ownerDocument,d=a.nodeName,e=fa[d];return e?e:(b=c.body.appendChild(c.createElement(d)),e=r.css(b,"display"),b.parentNode.removeChild(b),"none"===e&&(e="block"),fa[d]=e,e)}function ha(a,b){for(var c,d,e=[],f=0,g=a.length;f<g;f++)d=a[f],d.style&&(c=d.style.display,b?("none"===c&&(e[f]=V.get(d,"display")||null,e[f]||(d.style.display="")),""===d.style.display&&ca(d)&&(e[f]=ga(d))):"none"!==c&&(e[f]="none",V.set(d,"display",c)));for(f=0;f<g;f++)null!=e[f]&&(a[f].style.display=e[f]);return a}r.fn.extend({show:function(){return ha(this,!0)},hide:function(){return ha(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){ca(this)?r(this).show():r(this).hide()})}});var ia=/^(?:checkbox|radio)$/i,ja=/<([a-z][^\/\0>\x20\t\r\n\f]+)/i,ka=/^$|\/(?:java|ecma)script/i,la={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};la.optgroup=la.option,la.tbody=la.tfoot=la.colgroup=la.caption=la.thead,la.th=la.td;function ma(a,b){var c;return c="undefined"!=typeof a.getElementsByTagName?a.getElementsByTagName(b||"*"):"undefined"!=typeof a.querySelectorAll?a.querySelectorAll(b||"*"):[],void 0===b||b&&r.nodeName(a,b)?r.merge([a],c):c}function na(a,b){for(var c=0,d=a.length;c<d;c++)V.set(a[c],"globalEval",!b||V.get(b[c],"globalEval"))}var oa=/<|&#?\w+;/;function pa(a,b,c,d,e){for(var f,g,h,i,j,k,l=b.createDocumentFragment(),m=[],n=0,o=a.length;n<o;n++)if(f=a[n],f||0===f)if("object"===r.type(f))r.merge(m,f.nodeType?[f]:f);else if(oa.test(f)){g=g||l.appendChild(b.createElement("div")),h=(ja.exec(f)||["",""])[1].toLowerCase(),i=la[h]||la._default,g.innerHTML=i[1]+r.htmlPrefilter(f)+i[2],k=i[0];while(k--)g=g.lastChild;r.merge(m,g.childNodes),g=l.firstChild,g.textContent=""}else m.push(b.createTextNode(f));l.textContent="",n=0;while(f=m[n++])if(d&&r.inArray(f,d)>-1)e&&e.push(f);else if(j=r.contains(f.ownerDocument,f),g=ma(l.appendChild(f),"script"),j&&na(g),c){k=0;while(f=g[k++])ka.test(f.type||"")&&c.push(f)}return l}!function(){var a=d.createDocumentFragment(),b=a.appendChild(d.createElement("div")),c=d.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),o.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="<textarea>x</textarea>",o.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var qa=d.documentElement,ra=/^key/,sa=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,ta=/^([^.]*)(?:\.(.+)|)/;function ua(){return!0}function va(){return!1}function wa(){try{return d.activeElement}catch(a){}}function xa(a,b,c,d,e,f){var g,h;if("object"==typeof b){"string"!=typeof c&&(d=d||c,c=void 0);for(h in b)xa(a,h,c,d,b[h],f);return a}if(null==d&&null==e?(e=c,d=c=void 0):null==e&&("string"==typeof c?(e=d,d=void 0):(e=d,d=c,c=void 0)),e===!1)e=va;else if(!e)return a;return 1===f&&(g=e,e=function(a){return r().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=r.guid++)),a.each(function(){r.event.add(this,b,e,d,c)})}r.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=V.get(a);if(q){c.handler&&(f=c,c=f.handler,e=f.selector),e&&r.find.matchesSelector(qa,e),c.guid||(c.guid=r.guid++),(i=q.events)||(i=q.events={}),(g=q.handle)||(g=q.handle=function(b){return"undefined"!=typeof r&&r.event.triggered!==b.type?r.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(K)||[""],j=b.length;while(j--)h=ta.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n&&(l=r.event.special[n]||{},n=(e?l.delegateType:l.bindType)||n,l=r.event.special[n]||{},k=r.extend({type:n,origType:p,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&r.expr.match.needsContext.test(e),namespace:o.join(".")},f),(m=i[n])||(m=i[n]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,o,g)!==!1||a.addEventListener&&a.addEventListener(n,g)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),r.event.global[n]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=V.hasData(a)&&V.get(a);if(q&&(i=q.events)){b=(b||"").match(K)||[""],j=b.length;while(j--)if(h=ta.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n){l=r.event.special[n]||{},n=(d?l.delegateType:l.bindType)||n,m=i[n]||[],h=h[2]&&new RegExp("(^|\\.)"+o.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&p!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,o,q.handle)!==!1||r.removeEvent(a,n,q.handle),delete i[n])}else for(n in i)r.event.remove(a,n+b[j],c,d,!0);r.isEmptyObject(i)&&V.remove(a,"handle events")}},dispatch:function(a){var b=r.event.fix(a),c,d,e,f,g,h,i=new Array(arguments.length),j=(V.get(this,"events")||{})[b.type]||[],k=r.event.special[b.type]||{};for(i[0]=b,c=1;c<arguments.length;c++)i[c]=arguments[c];if(b.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,b)!==!1){h=r.event.handlers.call(this,b,j),c=0;while((f=h[c++])&&!b.isPropagationStopped()){b.currentTarget=f.elem,d=0;while((g=f.handlers[d++])&&!b.isImmediatePropagationStopped())b.rnamespace&&!b.rnamespace.test(g.namespace)||(b.handleObj=g,b.data=g.data,e=((r.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==e&&(b.result=e)===!1&&(b.preventDefault(),b.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,b),b.result}},handlers:function(a,b){var c,d,e,f,g,h=[],i=b.delegateCount,j=a.target;if(i&&j.nodeType&&!("click"===a.type&&a.button>=1))for(;j!==this;j=j.parentNode||this)if(1===j.nodeType&&("click"!==a.type||j.disabled!==!0)){for(f=[],g={},c=0;c<i;c++)d=b[c],e=d.selector+" ",void 0===g[e]&&(g[e]=d.needsContext?r(e,this).index(j)>-1:r.find(e,this,null,[j]).length),g[e]&&f.push(d);f.length&&h.push({elem:j,handlers:f})}return j=this,i<b.length&&h.push({elem:j,handlers:b.slice(i)}),h},addProp:function(a,b){Object.defineProperty(r.Event.prototype,a,{enumerable:!0,configurable:!0,get:r.isFunction(b)?function(){if(this.originalEvent)return b(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[a]},set:function(b){Object.defineProperty(this,a,{enumerable:!0,configurable:!0,writable:!0,value:b})}})},fix:function(a){return a[r.expando]?a:new r.Event(a)},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==wa()&&this.focus)return this.focus(),!1},delegateType:"focusin"},blur:{trigger:function(){if(this===wa()&&this.blur)return this.blur(),!1},delegateType:"focusout"},click:{trigger:function(){if("checkbox"===this.type&&this.click&&r.nodeName(this,"input"))return this.click(),!1},_default:function(a){return r.nodeName(a.target,"a")}},beforeunload:{postDispatch:function(a){void 0!==a.result&&a.originalEvent&&(a.originalEvent.returnValue=a.result)}}}},r.removeEvent=function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c)},r.Event=function(a,b){return this instanceof r.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?ua:va,this.target=a.target&&3===a.target.nodeType?a.target.parentNode:a.target,this.currentTarget=a.currentTarget,this.relatedTarget=a.relatedTarget):this.type=a,b&&r.extend(this,b),this.timeStamp=a&&a.timeStamp||r.now(),void(this[r.expando]=!0)):new r.Event(a,b)},r.Event.prototype={constructor:r.Event,isDefaultPrevented:va,isPropagationStopped:va,isImmediatePropagationStopped:va,isSimulated:!1,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=ua,a&&!this.isSimulated&&a.preventDefault()},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=ua,a&&!this.isSimulated&&a.stopPropagation()},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=ua,a&&!this.isSimulated&&a.stopImmediatePropagation(),this.stopPropagation()}},r.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(a){var b=a.button;return null==a.which&&ra.test(a.type)?null!=a.charCode?a.charCode:a.keyCode:!a.which&&void 0!==b&&sa.test(a.type)?1&b?1:2&b?3:4&b?2:0:a.which}},r.event.addProp),r.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(a,b){r.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return e&&(e===d||r.contains(d,e))||(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),r.fn.extend({on:function(a,b,c,d){return xa(this,a,b,c,d)},one:function(a,b,c,d){return xa(this,a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,r(a.delegateTarget).off(d.namespace?d.origType+"."+d.namespace:d.origType,d.selector,d.handler),this;if("object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return b!==!1&&"function"!=typeof b||(c=b,b=void 0),c===!1&&(c=va),this.each(function(){r.event.remove(this,a,c,b)})}});var ya=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,za=/<script|<style|<link/i,Aa=/checked\s*(?:[^=]|=\s*.checked.)/i,Ba=/^true\/(.*)/,Ca=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function Da(a,b){return r.nodeName(a,"table")&&r.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a:a}function Ea(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function Fa(a){var b=Ba.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function Ga(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(V.hasData(a)&&(f=V.access(a),g=V.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;c<d;c++)r.event.add(b,e,j[e][c])}W.hasData(a)&&(h=W.access(a),i=r.extend({},h),W.set(b,i))}}function Ha(a,b){var c=b.nodeName.toLowerCase();"input"===c&&ia.test(a.type)?b.checked=a.checked:"input"!==c&&"textarea"!==c||(b.defaultValue=a.defaultValue)}function Ia(a,b,c,d){b=g.apply([],b);var e,f,h,i,j,k,l=0,m=a.length,n=m-1,q=b[0],s=r.isFunction(q);if(s||m>1&&"string"==typeof q&&!o.checkClone&&Aa.test(q))return a.each(function(e){var f=a.eq(e);s&&(b[0]=q.call(this,e,f.html())),Ia(f,b,c,d)});if(m&&(e=pa(b,a[0].ownerDocument,!1,a,d),f=e.firstChild,1===e.childNodes.length&&(e=f),f||d)){for(h=r.map(ma(e,"script"),Ea),i=h.length;l<m;l++)j=e,l!==n&&(j=r.clone(j,!0,!0),i&&r.merge(h,ma(j,"script"))),c.call(a[l],j,l);if(i)for(k=h[h.length-1].ownerDocument,r.map(h,Fa),l=0;l<i;l++)j=h[l],ka.test(j.type||"")&&!V.access(j,"globalEval")&&r.contains(k,j)&&(j.src?r._evalUrl&&r._evalUrl(j.src):p(j.textContent.replace(Ca,""),k))}return a}function Ja(a,b,c){for(var d,e=b?r.filter(b,a):a,f=0;null!=(d=e[f]);f++)c||1!==d.nodeType||r.cleanData(ma(d)),d.parentNode&&(c&&r.contains(d.ownerDocument,d)&&na(ma(d,"script")),d.parentNode.removeChild(d));return a}r.extend({htmlPrefilter:function(a){return a.replace(ya,"<$1></$2>")},clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=r.contains(a.ownerDocument,a);if(!(o.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||r.isXMLDoc(a)))for(g=ma(h),f=ma(a),d=0,e=f.length;d<e;d++)Ha(f[d],g[d]);if(b)if(c)for(f=f||ma(a),g=g||ma(h),d=0,e=f.length;d<e;d++)Ga(f[d],g[d]);else Ga(a,h);return g=ma(h,"script"),g.length>0&&na(g,!i&&ma(a,"script")),h},cleanData:function(a){for(var b,c,d,e=r.event.special,f=0;void 0!==(c=a[f]);f++)if(T(c)){if(b=c[V.expando]){if(b.events)for(d in b.events)e[d]?r.event.remove(c,d):r.removeEvent(c,d,b.handle);c[V.expando]=void 0}c[W.expando]&&(c[W.expando]=void 0)}}}),r.fn.extend({detach:function(a){return Ja(this,a,!0)},remove:function(a){return Ja(this,a)},text:function(a){return S(this,function(a){return void 0===a?r.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=a)})},null,a,arguments.length)},append:function(){return Ia(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Da(this,a);b.appendChild(a)}})},prepend:function(){return Ia(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Da(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return Ia(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return Ia(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(r.cleanData(ma(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null!=a&&a,b=null==b?a:b,this.map(function(){return r.clone(this,a,b)})},html:function(a){return S(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!za.test(a)&&!la[(ja.exec(a)||["",""])[1].toLowerCase()]){a=r.htmlPrefilter(a);try{for(;c<d;c++)b=this[c]||{},1===b.nodeType&&(r.cleanData(ma(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=[];return Ia(this,arguments,function(b){var c=this.parentNode;r.inArray(this,a)<0&&(r.cleanData(ma(this)),c&&c.replaceChild(b,this))},a)}}),r.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){r.fn[a]=function(a){for(var c,d=[],e=r(a),f=e.length-1,g=0;g<=f;g++)c=g===f?this:this.clone(!0),r(e[g])[b](c),h.apply(d,c.get());return this.pushStack(d)}});var Ka=/^margin/,La=new RegExp("^("+_+")(?!px)[a-z%]+$","i"),Ma=function(b){var c=b.ownerDocument.defaultView;return c&&c.opener||(c=a),c.getComputedStyle(b)};!function(){function b(){if(i){i.style.cssText="box-sizing:border-box;position:relative;display:block;margin:auto;border:1px;padding:1px;top:1%;width:50%",i.innerHTML="",qa.appendChild(h);var b=a.getComputedStyle(i);c="1%"!==b.top,g="2px"===b.marginLeft,e="4px"===b.width,i.style.marginRight="50%",f="4px"===b.marginRight,qa.removeChild(h),i=null}}var c,e,f,g,h=d.createElement("div"),i=d.createElement("div");i.style&&(i.style.backgroundClip="content-box",i.cloneNode(!0).style.backgroundClip="",o.clearCloneStyle="content-box"===i.style.backgroundClip,h.style.cssText="border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute",h.appendChild(i),r.extend(o,{pixelPosition:function(){return b(),c},boxSizingReliable:function(){return b(),e},pixelMarginRight:function(){return b(),f},reliableMarginLeft:function(){return b(),g}}))}();function Na(a,b,c){var d,e,f,g,h=a.style;return c=c||Ma(a),c&&(g=c.getPropertyValue(b)||c[b],""!==g||r.contains(a.ownerDocument,a)||(g=r.style(a,b)),!o.pixelMarginRight()&&La.test(g)&&Ka.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f)),void 0!==g?g+"":g}function Oa(a,b){return{get:function(){return a()?void delete this.get:(this.get=b).apply(this,arguments)}}}var Pa=/^(none|table(?!-c[ea]).+)/,Qa={position:"absolute",visibility:"hidden",display:"block"},Ra={letterSpacing:"0",fontWeight:"400"},Sa=["Webkit","Moz","ms"],Ta=d.createElement("div").style;function Ua(a){if(a in Ta)return a;var b=a[0].toUpperCase()+a.slice(1),c=Sa.length;while(c--)if(a=Sa[c]+b,a in Ta)return a}function Va(a,b,c){var d=aa.exec(b);return d?Math.max(0,d[2]-(c||0))+(d[3]||"px"):b}function Wa(a,b,c,d,e){var f,g=0;for(f=c===(d?"border":"content")?4:"width"===b?1:0;f<4;f+=2)"margin"===c&&(g+=r.css(a,c+ba[f],!0,e)),d?("content"===c&&(g-=r.css(a,"padding"+ba[f],!0,e)),"margin"!==c&&(g-=r.css(a,"border"+ba[f]+"Width",!0,e))):(g+=r.css(a,"padding"+ba[f],!0,e),"padding"!==c&&(g+=r.css(a,"border"+ba[f]+"Width",!0,e)));return g}function Xa(a,b,c){var d,e=!0,f=Ma(a),g="border-box"===r.css(a,"boxSizing",!1,f);if(a.getClientRects().length&&(d=a.getBoundingClientRect()[b]),d<=0||null==d){if(d=Na(a,b,f),(d<0||null==d)&&(d=a.style[b]),La.test(d))return d;e=g&&(o.boxSizingReliable()||d===a.style[b]),d=parseFloat(d)||0}return d+Wa(a,b,c||(g?"border":"content"),e,f)+"px"}r.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=Na(a,"opacity");return""===c?"1":c}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":"cssFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=r.camelCase(b),i=a.style;return b=r.cssProps[h]||(r.cssProps[h]=Ua(h)||h),g=r.cssHooks[b]||r.cssHooks[h],void 0===c?g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:i[b]:(f=typeof c,"string"===f&&(e=aa.exec(c))&&e[1]&&(c=ea(a,b,e),f="number"),null!=c&&c===c&&("number"===f&&(c+=e&&e[3]||(r.cssNumber[h]?"":"px")),o.clearCloneStyle||""!==c||0!==b.indexOf("background")||(i[b]="inherit"),g&&"set"in g&&void 0===(c=g.set(a,c,d))||(i[b]=c)),void 0)}},css:function(a,b,c,d){var e,f,g,h=r.camelCase(b);return b=r.cssProps[h]||(r.cssProps[h]=Ua(h)||h),g=r.cssHooks[b]||r.cssHooks[h],g&&"get"in g&&(e=g.get(a,!0,c)),void 0===e&&(e=Na(a,b,d)),"normal"===e&&b in Ra&&(e=Ra[b]),""===c||c?(f=parseFloat(e),c===!0||isFinite(f)?f||0:e):e}}),r.each(["height","width"],function(a,b){r.cssHooks[b]={get:function(a,c,d){if(c)return!Pa.test(r.css(a,"display"))||a.getClientRects().length&&a.getBoundingClientRect().width?Xa(a,b,d):da(a,Qa,function(){return Xa(a,b,d)})},set:function(a,c,d){var e,f=d&&Ma(a),g=d&&Wa(a,b,d,"border-box"===r.css(a,"boxSizing",!1,f),f);return g&&(e=aa.exec(c))&&"px"!==(e[3]||"px")&&(a.style[b]=c,c=r.css(a,b)),Va(a,c,g)}}}),r.cssHooks.marginLeft=Oa(o.reliableMarginLeft,function(a,b){if(b)return(parseFloat(Na(a,"marginLeft"))||a.getBoundingClientRect().left-da(a,{marginLeft:0},function(){return a.getBoundingClientRect().left}))+"px"}),r.each({margin:"",padding:"",border:"Width"},function(a,b){r.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];d<4;d++)e[a+ba[d]+b]=f[d]||f[d-2]||f[0];return e}},Ka.test(a)||(r.cssHooks[a+b].set=Va)}),r.fn.extend({css:function(a,b){return S(this,function(a,b,c){var d,e,f={},g=0;if(r.isArray(b)){for(d=Ma(a),e=b.length;g<e;g++)f[b[g]]=r.css(a,b[g],!1,d);return f}return void 0!==c?r.style(a,b,c):r.css(a,b)},a,b,arguments.length>1)}});function Ya(a,b,c,d,e){return new Ya.prototype.init(a,b,c,d,e)}r.Tween=Ya,Ya.prototype={constructor:Ya,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||r.easing._default,this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(r.cssNumber[c]?"":"px")},cur:function(){var a=Ya.propHooks[this.prop];return a&&a.get?a.get(this):Ya.propHooks._default.get(this)},run:function(a){var b,c=Ya.propHooks[this.prop];return this.options.duration?this.pos=b=r.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):this.pos=b=a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):Ya.propHooks._default.set(this),this}},Ya.prototype.init.prototype=Ya.prototype,Ya.propHooks={_default:{get:function(a){var b;return 1!==a.elem.nodeType||null!=a.elem[a.prop]&&null==a.elem.style[a.prop]?a.elem[a.prop]:(b=r.css(a.elem,a.prop,""),b&&"auto"!==b?b:0)},set:function(a){r.fx.step[a.prop]?r.fx.step[a.prop](a):1!==a.elem.nodeType||null==a.elem.style[r.cssProps[a.prop]]&&!r.cssHooks[a.prop]?a.elem[a.prop]=a.now:r.style(a.elem,a.prop,a.now+a.unit)}}},Ya.propHooks.scrollTop=Ya.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},r.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2},_default:"swing"},r.fx=Ya.prototype.init,r.fx.step={};var Za,$a,_a=/^(?:toggle|show|hide)$/,ab=/queueHooks$/;function bb(){$a&&(a.requestAnimationFrame(bb),r.fx.tick())}function cb(){return a.setTimeout(function(){Za=void 0}),Za=r.now()}function db(a,b){var c,d=0,e={height:a};for(b=b?1:0;d<4;d+=2-b)c=ba[d],e["margin"+c]=e["padding"+c]=a;return b&&(e.opacity=e.width=a),e}function eb(a,b,c){for(var d,e=(hb.tweeners[b]||[]).concat(hb.tweeners["*"]),f=0,g=e.length;f<g;f++)if(d=e[f].call(c,b,a))return d}function fb(a,b,c){var d,e,f,g,h,i,j,k,l="width"in b||"height"in b,m=this,n={},o=a.style,p=a.nodeType&&ca(a),q=V.get(a,"fxshow");c.queue||(g=r._queueHooks(a,"fx"),null==g.unqueued&&(g.unqueued=0,h=g.empty.fire,g.empty.fire=function(){g.unqueued||h()}),g.unqueued++,m.always(function(){m.always(function(){g.unqueued--,r.queue(a,"fx").length||g.empty.fire()})}));for(d in b)if(e=b[d],_a.test(e)){if(delete b[d],f=f||"toggle"===e,e===(p?"hide":"show")){if("show"!==e||!q||void 0===q[d])continue;p=!0}n[d]=q&&q[d]||r.style(a,d)}if(i=!r.isEmptyObject(b),i||!r.isEmptyObject(n)){l&&1===a.nodeType&&(c.overflow=[o.overflow,o.overflowX,o.overflowY],j=q&&q.display,null==j&&(j=V.get(a,"display")),k=r.css(a,"display"),"none"===k&&(j?k=j:(ha([a],!0),j=a.style.display||j,k=r.css(a,"display"),ha([a]))),("inline"===k||"inline-block"===k&&null!=j)&&"none"===r.css(a,"float")&&(i||(m.done(function(){o.display=j}),null==j&&(k=o.display,j="none"===k?"":k)),o.display="inline-block")),c.overflow&&(o.overflow="hidden",m.always(function(){o.overflow=c.overflow[0],o.overflowX=c.overflow[1],o.overflowY=c.overflow[2]})),i=!1;for(d in n)i||(q?"hidden"in q&&(p=q.hidden):q=V.access(a,"fxshow",{display:j}),f&&(q.hidden=!p),p&&ha([a],!0),m.done(function(){p||ha([a]),V.remove(a,"fxshow");for(d in n)r.style(a,d,n[d])})),i=eb(p?q[d]:0,d,m),d in q||(q[d]=i.start,p&&(i.end=i.start,i.start=0))}}function gb(a,b){var c,d,e,f,g;for(c in a)if(d=r.camelCase(c),e=b[d],f=a[c],r.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=r.cssHooks[d],g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function hb(a,b,c){var d,e,f=0,g=hb.prefilters.length,h=r.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=Za||cb(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;g<i;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),f<1&&i?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:r.extend({},b),opts:r.extend(!0,{specialEasing:{},easing:r.easing._default},c),originalProperties:b,originalOptions:c,startTime:Za||cb(),duration:c.duration,tweens:[],createTween:function(b,c){var d=r.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;c<d;c++)j.tweens[c].run(1);return b?(h.notifyWith(a,[j,1,0]),h.resolveWith(a,[j,b])):h.rejectWith(a,[j,b]),this}}),k=j.props;for(gb(k,j.opts.specialEasing);f<g;f++)if(d=hb.prefilters[f].call(j,a,k,j.opts))return r.isFunction(d.stop)&&(r._queueHooks(j.elem,j.opts.queue).stop=r.proxy(d.stop,d)),d;return r.map(k,eb,j),r.isFunction(j.opts.start)&&j.opts.start.call(a,j),r.fx.timer(r.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}r.Animation=r.extend(hb,{tweeners:{"*":[function(a,b){var c=this.createTween(a,b);return ea(c.elem,a,aa.exec(b),c),c}]},tweener:function(a,b){r.isFunction(a)?(b=a,a=["*"]):a=a.match(K);for(var c,d=0,e=a.length;d<e;d++)c=a[d],hb.tweeners[c]=hb.tweeners[c]||[],hb.tweeners[c].unshift(b)},prefilters:[fb],prefilter:function(a,b){b?hb.prefilters.unshift(a):hb.prefilters.push(a)}}),r.speed=function(a,b,c){var e=a&&"object"==typeof a?r.extend({},a):{complete:c||!c&&b||r.isFunction(a)&&a,duration:a,easing:c&&b||b&&!r.isFunction(b)&&b};return r.fx.off||d.hidden?e.duration=0:"number"!=typeof e.duration&&(e.duration in r.fx.speeds?e.duration=r.fx.speeds[e.duration]:e.duration=r.fx.speeds._default),null!=e.queue&&e.queue!==!0||(e.queue="fx"),e.old=e.complete,e.complete=function(){r.isFunction(e.old)&&e.old.call(this),e.queue&&r.dequeue(this,e.queue)},e},r.fn.extend({fadeTo:function(a,b,c,d){return this.filter(ca).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=r.isEmptyObject(a),f=r.speed(b,c,d),g=function(){var b=hb(this,r.extend({},a),f);(e||V.get(this,"finish"))&&b.stop(!0)};return g.finish=g,e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return"string"!=typeof a&&(c=b,b=a,a=void 0),b&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,e=null!=a&&a+"queueHooks",f=r.timers,g=V.get(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&ab.test(e)&&d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&&f[e].queue!==a||(f[e].anim.stop(c),b=!1,f.splice(e,1));!b&&c||r.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||"fx"),this.each(function(){var b,c=V.get(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=r.timers,g=d?d.length:0;for(c.finish=!0,r.queue(this,a,[]),e&&e.stop&&e.stop.call(this,!0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!0),f.splice(b,1));for(b=0;b<g;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),r.each(["toggle","show","hide"],function(a,b){var c=r.fn[b];r.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(db(b,!0),a,d,e)}}),r.each({slideDown:db("show"),slideUp:db("hide"),slideToggle:db("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){r.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),r.timers=[],r.fx.tick=function(){var a,b=0,c=r.timers;for(Za=r.now();b<c.length;b++)a=c[b],a()||c[b]!==a||c.splice(b--,1);c.length||r.fx.stop(),Za=void 0},r.fx.timer=function(a){r.timers.push(a),a()?r.fx.start():r.timers.pop()},r.fx.interval=13,r.fx.start=function(){$a||($a=a.requestAnimationFrame?a.requestAnimationFrame(bb):a.setInterval(r.fx.tick,r.fx.interval))},r.fx.stop=function(){a.cancelAnimationFrame?a.cancelAnimationFrame($a):a.clearInterval($a),$a=null},r.fx.speeds={slow:600,fast:200,_default:400},r.fn.delay=function(b,c){return b=r.fx?r.fx.speeds[b]||b:b,c=c||"fx",this.queue(c,function(c,d){var e=a.setTimeout(c,b);d.stop=function(){a.clearTimeout(e)}})},function(){var a=d.createElement("input"),b=d.createElement("select"),c=b.appendChild(d.createElement("option"));a.type="checkbox",o.checkOn=""!==a.value,o.optSelected=c.selected,a=d.createElement("input"),a.value="t",a.type="radio",o.radioValue="t"===a.value}();var ib,jb=r.expr.attrHandle;r.fn.extend({attr:function(a,b){return S(this,r.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){r.removeAttr(this,a)})}}),r.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return"undefined"==typeof a.getAttribute?r.prop(a,b,c):(1===f&&r.isXMLDoc(a)||(e=r.attrHooks[b.toLowerCase()]||(r.expr.match.bool.test(b)?ib:void 0)),
-void 0!==c?null===c?void r.removeAttr(a,b):e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:(a.setAttribute(b,c+""),c):e&&"get"in e&&null!==(d=e.get(a,b))?d:(d=r.find.attr(a,b),null==d?void 0:d))},attrHooks:{type:{set:function(a,b){if(!o.radioValue&&"radio"===b&&r.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}},removeAttr:function(a,b){var c,d=0,e=b&&b.match(K);if(e&&1===a.nodeType)while(c=e[d++])a.removeAttribute(c)}}),ib={set:function(a,b,c){return b===!1?r.removeAttr(a,c):a.setAttribute(c,c),c}},r.each(r.expr.match.bool.source.match(/\w+/g),function(a,b){var c=jb[b]||r.find.attr;jb[b]=function(a,b,d){var e,f,g=b.toLowerCase();return d||(f=jb[g],jb[g]=e,e=null!=c(a,b,d)?g:null,jb[g]=f),e}});var kb=/^(?:input|select|textarea|button)$/i,lb=/^(?:a|area)$/i;r.fn.extend({prop:function(a,b){return S(this,r.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[r.propFix[a]||a]})}}),r.extend({prop:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return 1===f&&r.isXMLDoc(a)||(b=r.propFix[b]||b,e=r.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=r.find.attr(a,"tabindex");return b?parseInt(b,10):kb.test(a.nodeName)||lb.test(a.nodeName)&&a.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),o.optSelected||(r.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null},set:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}}),r.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){r.propFix[this.toLowerCase()]=this});function mb(a){var b=a.match(K)||[];return b.join(" ")}function nb(a){return a.getAttribute&&a.getAttribute("class")||""}r.fn.extend({addClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).addClass(a.call(this,b,nb(this)))});if("string"==typeof a&&a){b=a.match(K)||[];while(c=this[i++])if(e=nb(c),d=1===c.nodeType&&" "+mb(e)+" "){g=0;while(f=b[g++])d.indexOf(" "+f+" ")<0&&(d+=f+" ");h=mb(d),e!==h&&c.setAttribute("class",h)}}return this},removeClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).removeClass(a.call(this,b,nb(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof a&&a){b=a.match(K)||[];while(c=this[i++])if(e=nb(c),d=1===c.nodeType&&" "+mb(e)+" "){g=0;while(f=b[g++])while(d.indexOf(" "+f+" ")>-1)d=d.replace(" "+f+" "," ");h=mb(d),e!==h&&c.setAttribute("class",h)}}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):r.isFunction(a)?this.each(function(c){r(this).toggleClass(a.call(this,c,nb(this),b),b)}):this.each(function(){var b,d,e,f;if("string"===c){d=0,e=r(this),f=a.match(K)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else void 0!==a&&"boolean"!==c||(b=nb(this),b&&V.set(this,"__className__",b),this.setAttribute&&this.setAttribute("class",b||a===!1?"":V.get(this,"__className__")||""))})},hasClass:function(a){var b,c,d=0;b=" "+a+" ";while(c=this[d++])if(1===c.nodeType&&(" "+mb(nb(c))+" ").indexOf(b)>-1)return!0;return!1}});var ob=/\r/g;r.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=r.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,r(this).val()):a,null==e?e="":"number"==typeof e?e+="":r.isArray(e)&&(e=r.map(e,function(a){return null==a?"":a+""})),b=r.valHooks[this.type]||r.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=r.valHooks[e.type]||r.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(ob,""):null==c?"":c)}}}),r.extend({valHooks:{option:{get:function(a){var b=r.find.attr(a,"value");return null!=b?b:mb(r.text(a))}},select:{get:function(a){var b,c,d,e=a.options,f=a.selectedIndex,g="select-one"===a.type,h=g?null:[],i=g?f+1:e.length;for(d=f<0?i:g?f:0;d<i;d++)if(c=e[d],(c.selected||d===f)&&!c.disabled&&(!c.parentNode.disabled||!r.nodeName(c.parentNode,"optgroup"))){if(b=r(c).val(),g)return b;h.push(b)}return h},set:function(a,b){var c,d,e=a.options,f=r.makeArray(b),g=e.length;while(g--)d=e[g],(d.selected=r.inArray(r.valHooks.option.get(d),f)>-1)&&(c=!0);return c||(a.selectedIndex=-1),f}}}}),r.each(["radio","checkbox"],function(){r.valHooks[this]={set:function(a,b){if(r.isArray(b))return a.checked=r.inArray(r(a).val(),b)>-1}},o.checkOn||(r.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var pb=/^(?:focusinfocus|focusoutblur)$/;r.extend(r.event,{trigger:function(b,c,e,f){var g,h,i,j,k,m,n,o=[e||d],p=l.call(b,"type")?b.type:b,q=l.call(b,"namespace")?b.namespace.split("."):[];if(h=i=e=e||d,3!==e.nodeType&&8!==e.nodeType&&!pb.test(p+r.event.triggered)&&(p.indexOf(".")>-1&&(q=p.split("."),p=q.shift(),q.sort()),k=p.indexOf(":")<0&&"on"+p,b=b[r.expando]?b:new r.Event(p,"object"==typeof b&&b),b.isTrigger=f?2:3,b.namespace=q.join("."),b.rnamespace=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=e),c=null==c?[b]:r.makeArray(c,[b]),n=r.event.special[p]||{},f||!n.trigger||n.trigger.apply(e,c)!==!1)){if(!f&&!n.noBubble&&!r.isWindow(e)){for(j=n.delegateType||p,pb.test(j+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),i=h;i===(e.ownerDocument||d)&&o.push(i.defaultView||i.parentWindow||a)}g=0;while((h=o[g++])&&!b.isPropagationStopped())b.type=g>1?j:n.bindType||p,m=(V.get(h,"events")||{})[b.type]&&V.get(h,"handle"),m&&m.apply(h,c),m=k&&h[k],m&&m.apply&&T(h)&&(b.result=m.apply(h,c),b.result===!1&&b.preventDefault());return b.type=p,f||b.isDefaultPrevented()||n._default&&n._default.apply(o.pop(),c)!==!1||!T(e)||k&&r.isFunction(e[p])&&!r.isWindow(e)&&(i=e[k],i&&(e[k]=null),r.event.triggered=p,e[p](),r.event.triggered=void 0,i&&(e[k]=i)),b.result}},simulate:function(a,b,c){var d=r.extend(new r.Event,c,{type:a,isSimulated:!0});r.event.trigger(d,null,b)}}),r.fn.extend({trigger:function(a,b){return this.each(function(){r.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];if(c)return r.event.trigger(a,b,c,!0)}}),r.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(a,b){r.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),r.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),o.focusin="onfocusin"in a,o.focusin||r.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){r.event.simulate(b,a.target,r.event.fix(a))};r.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=V.access(d,b);e||d.addEventListener(a,c,!0),V.access(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=V.access(d,b)-1;e?V.access(d,b,e):(d.removeEventListener(a,c,!0),V.remove(d,b))}}});var qb=a.location,rb=r.now(),sb=/\?/;r.parseXML=function(b){var c;if(!b||"string"!=typeof b)return null;try{c=(new a.DOMParser).parseFromString(b,"text/xml")}catch(d){c=void 0}return c&&!c.getElementsByTagName("parsererror").length||r.error("Invalid XML: "+b),c};var tb=/\[\]$/,ub=/\r?\n/g,vb=/^(?:submit|button|image|reset|file)$/i,wb=/^(?:input|select|textarea|keygen)/i;function xb(a,b,c,d){var e;if(r.isArray(b))r.each(b,function(b,e){c||tb.test(a)?d(a,e):xb(a+"["+("object"==typeof e&&null!=e?b:"")+"]",e,c,d)});else if(c||"object"!==r.type(b))d(a,b);else for(e in b)xb(a+"["+e+"]",b[e],c,d)}r.param=function(a,b){var c,d=[],e=function(a,b){var c=r.isFunction(b)?b():b;d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(null==c?"":c)};if(r.isArray(a)||a.jquery&&!r.isPlainObject(a))r.each(a,function(){e(this.name,this.value)});else for(c in a)xb(c,a[c],b,e);return d.join("&")},r.fn.extend({serialize:function(){return r.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=r.prop(this,"elements");return a?r.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!r(this).is(":disabled")&&wb.test(this.nodeName)&&!vb.test(a)&&(this.checked||!ia.test(a))}).map(function(a,b){var c=r(this).val();return null==c?null:r.isArray(c)?r.map(c,function(a){return{name:b.name,value:a.replace(ub,"\r\n")}}):{name:b.name,value:c.replace(ub,"\r\n")}}).get()}});var yb=/%20/g,zb=/#.*$/,Ab=/([?&])_=[^&]*/,Bb=/^(.*?):[ \t]*([^\r\n]*)$/gm,Cb=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Db=/^(?:GET|HEAD)$/,Eb=/^\/\//,Fb={},Gb={},Hb="*/".concat("*"),Ib=d.createElement("a");Ib.href=qb.href;function Jb(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(K)||[];if(r.isFunction(c))while(d=f[e++])"+"===d[0]?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function Kb(a,b,c,d){var e={},f=a===Gb;function g(h){var i;return e[h]=!0,r.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function Lb(a,b){var c,d,e=r.ajaxSettings.flatOptions||{};for(c in b)void 0!==b[c]&&((e[c]?a:d||(d={}))[c]=b[c]);return d&&r.extend(!0,a,d),a}function Mb(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===d&&(d=a.mimeType||b.getResponseHeader("Content-Type"));if(d)for(e in h)if(h[e]&&h[e].test(d)){i.unshift(e);break}if(i[0]in c)f=i[0];else{for(e in c){if(!i[0]||a.converters[e+" "+i[0]]){f=e;break}g||(g=e)}f=f||g}if(f)return f!==i[0]&&i.unshift(f),c[f]}function Nb(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}r.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:qb.href,type:"GET",isLocal:Cb.test(qb.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Hb,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":r.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?Lb(Lb(a,r.ajaxSettings),b):Lb(r.ajaxSettings,a)},ajaxPrefilter:Jb(Fb),ajaxTransport:Jb(Gb),ajax:function(b,c){"object"==typeof b&&(c=b,b=void 0),c=c||{};var e,f,g,h,i,j,k,l,m,n,o=r.ajaxSetup({},c),p=o.context||o,q=o.context&&(p.nodeType||p.jquery)?r(p):r.event,s=r.Deferred(),t=r.Callbacks("once memory"),u=o.statusCode||{},v={},w={},x="canceled",y={readyState:0,getResponseHeader:function(a){var b;if(k){if(!h){h={};while(b=Bb.exec(g))h[b[1].toLowerCase()]=b[2]}b=h[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return k?g:null},setRequestHeader:function(a,b){return null==k&&(a=w[a.toLowerCase()]=w[a.toLowerCase()]||a,v[a]=b),this},overrideMimeType:function(a){return null==k&&(o.mimeType=a),this},statusCode:function(a){var b;if(a)if(k)y.always(a[y.status]);else for(b in a)u[b]=[u[b],a[b]];return this},abort:function(a){var b=a||x;return e&&e.abort(b),A(0,b),this}};if(s.promise(y),o.url=((b||o.url||qb.href)+"").replace(Eb,qb.protocol+"//"),o.type=c.method||c.type||o.method||o.type,o.dataTypes=(o.dataType||"*").toLowerCase().match(K)||[""],null==o.crossDomain){j=d.createElement("a");try{j.href=o.url,j.href=j.href,o.crossDomain=Ib.protocol+"//"+Ib.host!=j.protocol+"//"+j.host}catch(z){o.crossDomain=!0}}if(o.data&&o.processData&&"string"!=typeof o.data&&(o.data=r.param(o.data,o.traditional)),Kb(Fb,o,c,y),k)return y;l=r.event&&o.global,l&&0===r.active++&&r.event.trigger("ajaxStart"),o.type=o.type.toUpperCase(),o.hasContent=!Db.test(o.type),f=o.url.replace(zb,""),o.hasContent?o.data&&o.processData&&0===(o.contentType||"").indexOf("application/x-www-form-urlencoded")&&(o.data=o.data.replace(yb,"+")):(n=o.url.slice(f.length),o.data&&(f+=(sb.test(f)?"&":"?")+o.data,delete o.data),o.cache===!1&&(f=f.replace(Ab,"$1"),n=(sb.test(f)?"&":"?")+"_="+rb++ +n),o.url=f+n),o.ifModified&&(r.lastModified[f]&&y.setRequestHeader("If-Modified-Since",r.lastModified[f]),r.etag[f]&&y.setRequestHeader("If-None-Match",r.etag[f])),(o.data&&o.hasContent&&o.contentType!==!1||c.contentType)&&y.setRequestHeader("Content-Type",o.contentType),y.setRequestHeader("Accept",o.dataTypes[0]&&o.accepts[o.dataTypes[0]]?o.accepts[o.dataTypes[0]]+("*"!==o.dataTypes[0]?", "+Hb+"; q=0.01":""):o.accepts["*"]);for(m in o.headers)y.setRequestHeader(m,o.headers[m]);if(o.beforeSend&&(o.beforeSend.call(p,y,o)===!1||k))return y.abort();if(x="abort",t.add(o.complete),y.done(o.success),y.fail(o.error),e=Kb(Gb,o,c,y)){if(y.readyState=1,l&&q.trigger("ajaxSend",[y,o]),k)return y;o.async&&o.timeout>0&&(i=a.setTimeout(function(){y.abort("timeout")},o.timeout));try{k=!1,e.send(v,A)}catch(z){if(k)throw z;A(-1,z)}}else A(-1,"No Transport");function A(b,c,d,h){var j,m,n,v,w,x=c;k||(k=!0,i&&a.clearTimeout(i),e=void 0,g=h||"",y.readyState=b>0?4:0,j=b>=200&&b<300||304===b,d&&(v=Mb(o,y,d)),v=Nb(o,v,y,j),j?(o.ifModified&&(w=y.getResponseHeader("Last-Modified"),w&&(r.lastModified[f]=w),w=y.getResponseHeader("etag"),w&&(r.etag[f]=w)),204===b||"HEAD"===o.type?x="nocontent":304===b?x="notmodified":(x=v.state,m=v.data,n=v.error,j=!n)):(n=x,!b&&x||(x="error",b<0&&(b=0))),y.status=b,y.statusText=(c||x)+"",j?s.resolveWith(p,[m,x,y]):s.rejectWith(p,[y,x,n]),y.statusCode(u),u=void 0,l&&q.trigger(j?"ajaxSuccess":"ajaxError",[y,o,j?m:n]),t.fireWith(p,[y,x]),l&&(q.trigger("ajaxComplete",[y,o]),--r.active||r.event.trigger("ajaxStop")))}return y},getJSON:function(a,b,c){return r.get(a,b,c,"json")},getScript:function(a,b){return r.get(a,void 0,b,"script")}}),r.each(["get","post"],function(a,b){r[b]=function(a,c,d,e){return r.isFunction(c)&&(e=e||d,d=c,c=void 0),r.ajax(r.extend({url:a,type:b,dataType:e,data:c,success:d},r.isPlainObject(a)&&a))}}),r._evalUrl=function(a){return r.ajax({url:a,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},r.fn.extend({wrapAll:function(a){var b;return this[0]&&(r.isFunction(a)&&(a=a.call(this[0])),b=r(a,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstElementChild)a=a.firstElementChild;return a}).append(this)),this},wrapInner:function(a){return r.isFunction(a)?this.each(function(b){r(this).wrapInner(a.call(this,b))}):this.each(function(){var b=r(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=r.isFunction(a);return this.each(function(c){r(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(a){return this.parent(a).not("body").each(function(){r(this).replaceWith(this.childNodes)}),this}}),r.expr.pseudos.hidden=function(a){return!r.expr.pseudos.visible(a)},r.expr.pseudos.visible=function(a){return!!(a.offsetWidth||a.offsetHeight||a.getClientRects().length)},r.ajaxSettings.xhr=function(){try{return new a.XMLHttpRequest}catch(b){}};var Ob={0:200,1223:204},Pb=r.ajaxSettings.xhr();o.cors=!!Pb&&"withCredentials"in Pb,o.ajax=Pb=!!Pb,r.ajaxTransport(function(b){var c,d;if(o.cors||Pb&&!b.crossDomain)return{send:function(e,f){var g,h=b.xhr();if(h.open(b.type,b.url,b.async,b.username,b.password),b.xhrFields)for(g in b.xhrFields)h[g]=b.xhrFields[g];b.mimeType&&h.overrideMimeType&&h.overrideMimeType(b.mimeType),b.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest");for(g in e)h.setRequestHeader(g,e[g]);c=function(a){return function(){c&&(c=d=h.onload=h.onerror=h.onabort=h.onreadystatechange=null,"abort"===a?h.abort():"error"===a?"number"!=typeof h.status?f(0,"error"):f(h.status,h.statusText):f(Ob[h.status]||h.status,h.statusText,"text"!==(h.responseType||"text")||"string"!=typeof h.responseText?{binary:h.response}:{text:h.responseText},h.getAllResponseHeaders()))}},h.onload=c(),d=h.onerror=c("error"),void 0!==h.onabort?h.onabort=d:h.onreadystatechange=function(){4===h.readyState&&a.setTimeout(function(){c&&d()})},c=c("abort");try{h.send(b.hasContent&&b.data||null)}catch(i){if(c)throw i}},abort:function(){c&&c()}}}),r.ajaxPrefilter(function(a){a.crossDomain&&(a.contents.script=!1)}),r.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(a){return r.globalEval(a),a}}}),r.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET")}),r.ajaxTransport("script",function(a){if(a.crossDomain){var b,c;return{send:function(e,f){b=r("<script>").prop({charset:a.scriptCharset,src:a.url}).on("load error",c=function(a){b.remove(),c=null,a&&f("error"===a.type?404:200,a.type)}),d.head.appendChild(b[0])},abort:function(){c&&c()}}}});var Qb=[],Rb=/(=)\?(?=&|$)|\?\?/;r.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=Qb.pop()||r.expando+"_"+rb++;return this[a]=!0,a}}),r.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(Rb.test(b.url)?"url":"string"==typeof b.data&&0===(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&Rb.test(b.data)&&"data");if(h||"jsonp"===b.dataTypes[0])return e=b.jsonpCallback=r.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(Rb,"$1"+e):b.jsonp!==!1&&(b.url+=(sb.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||r.error(e+" was not called"),g[0]},b.dataTypes[0]="json",f=a[e],a[e]=function(){g=arguments},d.always(function(){void 0===f?r(a).removeProp(e):a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,Qb.push(e)),g&&r.isFunction(f)&&f(g[0]),g=f=void 0}),"script"}),o.createHTMLDocument=function(){var a=d.implementation.createHTMLDocument("").body;return a.innerHTML="<form></form><form></form>",2===a.childNodes.length}(),r.parseHTML=function(a,b,c){if("string"!=typeof a)return[];"boolean"==typeof b&&(c=b,b=!1);var e,f,g;return b||(o.createHTMLDocument?(b=d.implementation.createHTMLDocument(""),e=b.createElement("base"),e.href=d.location.href,b.head.appendChild(e)):b=d),f=B.exec(a),g=!c&&[],f?[b.createElement(f[1])]:(f=pa([a],b,g),g&&g.length&&r(g).remove(),r.merge([],f.childNodes))},r.fn.load=function(a,b,c){var d,e,f,g=this,h=a.indexOf(" ");return h>-1&&(d=mb(a.slice(h)),a=a.slice(0,h)),r.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(e="POST"),g.length>0&&r.ajax({url:a,type:e||"GET",dataType:"html",data:b}).done(function(a){f=arguments,g.html(d?r("<div>").append(r.parseHTML(a)).find(d):a)}).always(c&&function(a,b){g.each(function(){c.apply(this,f||[a.responseText,b,a])})}),this},r.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){r.fn[b]=function(a){return this.on(b,a)}}),r.expr.pseudos.animated=function(a){return r.grep(r.timers,function(b){return a===b.elem}).length};function Sb(a){return r.isWindow(a)?a:9===a.nodeType&&a.defaultView}r.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=r.css(a,"position"),l=r(a),m={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=r.css(a,"top"),i=r.css(a,"left"),j=("absolute"===k||"fixed"===k)&&(f+i).indexOf("auto")>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),r.isFunction(b)&&(b=b.call(a,c,r.extend({},h))),null!=b.top&&(m.top=b.top-h.top+g),null!=b.left&&(m.left=b.left-h.left+e),"using"in b?b.using.call(a,m):l.css(m)}},r.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){r.offset.setOffset(this,a,b)});var b,c,d,e,f=this[0];if(f)return f.getClientRects().length?(d=f.getBoundingClientRect(),d.width||d.height?(e=f.ownerDocument,c=Sb(e),b=e.documentElement,{top:d.top+c.pageYOffset-b.clientTop,left:d.left+c.pageXOffset-b.clientLeft}):d):{top:0,left:0}},position:function(){if(this[0]){var a,b,c=this[0],d={top:0,left:0};return"fixed"===r.css(c,"position")?b=c.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),r.nodeName(a[0],"html")||(d=a.offset()),d={top:d.top+r.css(a[0],"borderTopWidth",!0),left:d.left+r.css(a[0],"borderLeftWidth",!0)}),{top:b.top-d.top-r.css(c,"marginTop",!0),left:b.left-d.left-r.css(c,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent;while(a&&"static"===r.css(a,"position"))a=a.offsetParent;return a||qa})}}),r.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,b){var c="pageYOffset"===b;r.fn[a]=function(d){return S(this,function(a,d,e){var f=Sb(a);return void 0===e?f?f[b]:a[d]:void(f?f.scrollTo(c?f.pageXOffset:e,c?e:f.pageYOffset):a[d]=e)},a,d,arguments.length)}}),r.each(["top","left"],function(a,b){r.cssHooks[b]=Oa(o.pixelPosition,function(a,c){if(c)return c=Na(a,b),La.test(c)?r(a).position()[b]+"px":c})}),r.each({Height:"height",Width:"width"},function(a,b){r.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){r.fn[d]=function(e,f){var g=arguments.length&&(c||"boolean"!=typeof e),h=c||(e===!0||f===!0?"margin":"border");return S(this,function(b,c,e){var f;return r.isWindow(b)?0===d.indexOf("outer")?b["inner"+a]:b.document.documentElement["client"+a]:9===b.nodeType?(f=b.documentElement,Math.max(b.body["scroll"+a],f["scroll"+a],b.body["offset"+a],f["offset"+a],f["client"+a])):void 0===e?r.css(b,c,h):r.style(b,c,e,h)},b,g?e:void 0,g)}})}),r.fn.extend({bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}}),r.parseJSON=JSON.parse,"function"==typeof define&&define.amd&&define("jquery",[],function(){return r});var Tb=a.jQuery,Ub=a.$;return r.noConflict=function(b){return a.$===r&&(a.$=Ub),b&&a.jQuery===r&&(a.jQuery=Tb),r},b||(a.jQuery=a.$=r),r});
diff --git a/wiki/lib/scripts/jquery/update.sh b/wiki/lib/scripts/jquery/update.sh
deleted file mode 100755
index 31b859e..0000000
--- a/wiki/lib/scripts/jquery/update.sh
+++ /dev/null
@@ -1,50 +0,0 @@
-#!/bin/sh
-#
-# This script loads the latest jQuery and jQuery-UI 1.* versions from jQuery's CDN
-#
-# It also loads the 'smoothness' jQuery-UI theme and all referenced images.
-#
-# @author Andreas Gohr <andi@splitbrain.org>
-# @author Stefan Grönke <stefan@gronke.net>
-# @link   http://code.jquery.com/
-
-# load version infor from external file
-source ./versions
-JQUI_HOST="https://code.jquery.com/ui/$JQUI_VERSION"
-JQUI_GIT="https://raw.githubusercontent.com/jquery/jquery-ui/$JQUI_VERSION/ui"
-
-# load jQuery
-wget -nv https://code.jquery.com/jquery-${JQ_VERSION}.min.js      -O jquery.min.js
-# load jQuery-UI
-wget -nv "$JQUI_HOST/jquery-ui.min.js" -O jquery-ui.min.js
-# load jQuery Migrate
-wget -nv https://code.jquery.com/jquery-migrate-${JQM_VERSION}.min.js      -O jquery-migrate.min.js
-
-# load the smoothness theme
-mkdir -p jquery-ui-theme/images
-wget -nv -qO- "$JQUI_HOST/themes/smoothness/jquery-ui.css" | sed "s/font-family:[^;]*;//" > jquery-ui-theme/smoothness.css
-images=`gawk 'match($0, /url\("?(images\/[^\)"]+)"?\)/, m) { print m[1] }' jquery-ui-theme/smoothness.css`
-for img in $images
-do
-    wget -nv "$JQUI_HOST/themes/smoothness/$img" -O jquery-ui-theme/$img
-done
-
-# load the localization data for jquery ui
-for LNG in ../../../inc/lang/*
-do
-    CODE=`basename $LNG`
-    wget -nv "$JQUI_GIT/i18n/datepicker-$CODE.js" -O $LNG/jquery.ui.datepicker.js
-    if [ ! -s "$LNG/jquery.ui.datepicker.js" ]; then
-        rm -f $LNG/jquery.ui.datepicker.js
-    fi
-done
-
-# some custom language codes
-wget -nv "$JQUI_GIT/i18n/datepicker-de.js" -O ../../../inc/lang/de-informal/jquery.ui.datepicker.js
-wget -nv "$JQUI_GIT/i18n/datepicker-pt-BR.js" -O ../../../inc/lang/pt-br/jquery.ui.datepicker.js
-wget -nv "$JQUI_GIT/i18n/datepicker-zh-CN.js" -O ../../../inc/lang/zh/jquery.ui.datepicker.js
-wget -nv "$JQUI_GIT/i18n/datepicker-zh-TW.js" -O ../../../inc/lang/zh-tw/jquery.ui.datepicker.js
-wget -nv "$JQUI_GIT/i18n/datepicker-cy-GB.js" -O ../../../inc/lang/cy/jquery.ui.datepicker.js
-
-# strip source maps
-sed -i '/sourceMappingURL/d' *.min.js
diff --git a/wiki/lib/scripts/jquery/versions b/wiki/lib/scripts/jquery/versions
deleted file mode 100644
index dfc3549..0000000
--- a/wiki/lib/scripts/jquery/versions
+++ /dev/null
@@ -1,4 +0,0 @@
-# this is loaded from the update.sh script and our PHP code
-JQ_VERSION=3.1.1
-JQUI_VERSION=1.12.1
-JQM_VERSION=3.0.0
diff --git a/wiki/lib/scripts/linkwiz.js b/wiki/lib/scripts/linkwiz.js
deleted file mode 100644
index da1e072..0000000
--- a/wiki/lib/scripts/linkwiz.js
+++ /dev/null
@@ -1,339 +0,0 @@
-/**
- * The Link Wizard
- *
- * @author Andreas Gohr <gohr@cosmocode.de>
- * @author Pierre Spring <pierre.spring@caillou.ch>
- */
-var dw_linkwiz = {
-    $wiz: null,
-    $entry: null,
-    result: null,
-    timer: null,
-    textArea: null,
-    selected: null,
-    selection: null,
-
-    /**
-     * Initialize the dw_linkwizard by creating the needed HTML
-     * and attaching the eventhandlers
-     */
-    init: function($editor){
-        // position relative to the text area
-        var pos = $editor.position();
-
-        // create HTML Structure
-        if(dw_linkwiz.$wiz)
-            return;
-        dw_linkwiz.$wiz = jQuery(document.createElement('div'))
-               .dialog({
-                   autoOpen: false,
-                   draggable: true,
-                   title: LANG.linkwiz,
-                   resizable: false
-               })
-               .html(
-                    '<div>'+LANG.linkto+' <input type="text" class="edit" id="link__wiz_entry" autocomplete="off" /></div>'+
-                    '<div id="link__wiz_result"></div>'
-                    )
-               .parent()
-               .attr('id','link__wiz')
-               .css({
-                    'position':    'absolute',
-                    'top':         (pos.top+20)+'px',
-                    'left':        (pos.left+80)+'px'
-                   })
-               .hide()
-               .appendTo('.dokuwiki:first');
-
-        dw_linkwiz.textArea = $editor[0];
-        dw_linkwiz.result = jQuery('#link__wiz_result')[0];
-
-        // scrollview correction on arrow up/down gets easier
-        jQuery(dw_linkwiz.result).css('position', 'relative');
-
-        dw_linkwiz.$entry = jQuery('#link__wiz_entry');
-        if(JSINFO.namespace){
-            dw_linkwiz.$entry.val(JSINFO.namespace+':');
-        }
-
-        // attach event handlers
-        jQuery('#link__wiz .ui-dialog-titlebar-close').click(dw_linkwiz.hide);
-        dw_linkwiz.$entry.keyup(dw_linkwiz.onEntry);
-        jQuery(dw_linkwiz.result).on('click', 'a', dw_linkwiz.onResultClick);
-    },
-
-    /**
-     * handle all keyup events in the entry field
-     */
-    onEntry: function(e){
-        if(e.keyCode == 37 || e.keyCode == 39){ //left/right
-            return true; //ignore
-        }
-        if(e.keyCode == 27){ //Escape
-            dw_linkwiz.hide();
-            e.preventDefault();
-            e.stopPropagation();
-            return false;
-        }
-        if(e.keyCode == 38){ //Up
-            dw_linkwiz.select(dw_linkwiz.selected -1);
-            e.preventDefault();
-            e.stopPropagation();
-            return false;
-        }
-        if(e.keyCode == 40){ //Down
-            dw_linkwiz.select(dw_linkwiz.selected +1);
-            e.preventDefault();
-            e.stopPropagation();
-            return false;
-        }
-        if(e.keyCode == 13){ //Enter
-            if(dw_linkwiz.selected > -1){
-                var $obj = dw_linkwiz.$getResult(dw_linkwiz.selected);
-                if($obj.length > 0){
-                    dw_linkwiz.resultClick($obj.find('a')[0]);
-                }
-            }else if(dw_linkwiz.$entry.val()){
-                dw_linkwiz.insertLink(dw_linkwiz.$entry.val());
-            }
-
-            e.preventDefault();
-            e.stopPropagation();
-            return false;
-        }
-        dw_linkwiz.autocomplete();
-    },
-
-    /**
-     * Get one of the results by index
-     *
-     * @param   num int result div to return
-     * @returns DOMObject or null
-     */
-    getResult: function(num){
-        DEPRECATED('use dw_linkwiz.$getResult()[0] instead');
-        return dw_linkwiz.$getResult()[0] || null;
-    },
-
-    /**
-     * Get one of the results by index
-     *
-     * @param   num int result div to return
-     * @returns jQuery object
-     */
-    $getResult: function(num) {
-        return jQuery(dw_linkwiz.result).find('div').eq(num);
-    },
-
-    /**
-     * Select the given result
-     */
-    select: function(num){
-        if(num < 0){
-            dw_linkwiz.deselect();
-            return;
-        }
-
-        var $obj = dw_linkwiz.$getResult(num);
-        if ($obj.length === 0) {
-            return;
-        }
-
-        dw_linkwiz.deselect();
-        $obj.addClass('selected');
-
-        // make sure the item is viewable in the scroll view
-
-        //getting child position within the parent
-        var childPos = $obj.position().top;
-        //getting difference between the childs top and parents viewable area
-        var yDiff = childPos + $obj.outerHeight() - jQuery(dw_linkwiz.result).innerHeight();
-
-        if (childPos < 0) {
-            //if childPos is above viewable area (that's why it goes negative)
-            jQuery(dw_linkwiz.result)[0].scrollTop += childPos;
-        } else if(yDiff > 0) {
-            // if difference between childs top and parents viewable area is
-            // greater than the height of a childDiv
-            jQuery(dw_linkwiz.result)[0].scrollTop += yDiff;
-        }
-
-        dw_linkwiz.selected = num;
-    },
-
-    /**
-     * deselect a result if any is selected
-     */
-    deselect: function(){
-        if(dw_linkwiz.selected > -1){
-            dw_linkwiz.$getResult(dw_linkwiz.selected).removeClass('selected');
-        }
-        dw_linkwiz.selected = -1;
-    },
-
-    /**
-     * Handle clicks in the result set an dispatch them to
-     * resultClick()
-     */
-    onResultClick: function(e){
-        if(!jQuery(this).is('a')) {
-            return;
-        }
-        e.stopPropagation();
-        e.preventDefault();
-        dw_linkwiz.resultClick(this);
-        return false;
-    },
-
-    /**
-     * Handles the "click" on a given result anchor
-     */
-    resultClick: function(a){
-        dw_linkwiz.$entry.val(a.title);
-        if(a.title == '' || a.title.substr(a.title.length-1) == ':'){
-            dw_linkwiz.autocomplete_exec();
-        }else{
-            if (jQuery(a.nextSibling).is('span')) {
-                dw_linkwiz.insertLink(a.nextSibling.innerHTML);
-            }else{
-                dw_linkwiz.insertLink('');
-            }
-        }
-    },
-
-    /**
-     * Insert the id currently in the entry box to the textarea,
-     * replacing the current selection or at the cursor position.
-     * When no selection is available the given title will be used
-     * as link title instead
-     */
-    insertLink: function(title){
-        var link = dw_linkwiz.$entry.val(),
-            sel, stxt;
-        if(!link) {
-            return;
-        }
-
-        sel = DWgetSelection(dw_linkwiz.textArea);
-        if(sel.start == 0 && sel.end == 0) {
-            sel = dw_linkwiz.selection;
-        }
-
-        stxt = sel.getText();
-
-        // don't include trailing space in selection
-        if(stxt.charAt(stxt.length - 1) == ' '){
-            sel.end--;
-            stxt = sel.getText();
-        }
-
-        if(!stxt && !DOKU_UHC) {
-            stxt=title;
-        }
-
-        // prepend colon inside namespaces for non namespace pages
-        if(dw_linkwiz.textArea.form.id.value.indexOf(':') != -1 &&
-           link.indexOf(':') == -1){
-           link = ':' + link;
-        }
-
-        var so = link.length;
-        var eo = 0;
-        if(dw_linkwiz.val){
-            if(dw_linkwiz.val.open) {
-                so += dw_linkwiz.val.open.length;
-                link = dw_linkwiz.val.open+link;
-            }
-            link += '|';
-            so += 1;
-            if(stxt) {
-                link += stxt;
-            }
-            if(dw_linkwiz.val.close) {
-                link += dw_linkwiz.val.close;
-                eo = dw_linkwiz.val.close.length;
-            }
-        }
-
-        pasteText(sel,link,{startofs: so, endofs: eo});
-        dw_linkwiz.hide();
-
-        // reset the entry to the parent namespace
-        var externallinkpattern = new RegExp('^((f|ht)tps?:)?//', 'i'),
-            entry_value;
-        if (externallinkpattern.test(dw_linkwiz.$entry.val())) {
-            if (JSINFO.namespace) {
-                entry_value = JSINFO.namespace + ':';
-            } else {
-                entry_value = ''; //reset whole external links
-            }
-        } else {
-            entry_value = dw_linkwiz.$entry.val().replace(/[^:]*$/, '')
-        }
-        dw_linkwiz.$entry.val(entry_value);
-    },
-
-    /**
-     * Start the page/namespace lookup timer
-     *
-     * Calls autocomplete_exec when the timer runs out
-     */
-    autocomplete: function(){
-        if(dw_linkwiz.timer !== null){
-            window.clearTimeout(dw_linkwiz.timer);
-            dw_linkwiz.timer = null;
-        }
-
-        dw_linkwiz.timer = window.setTimeout(dw_linkwiz.autocomplete_exec,350);
-    },
-
-    /**
-     * Executes the AJAX call for the page/namespace lookup
-     */
-    autocomplete_exec: function(){
-        var $res = jQuery(dw_linkwiz.result);
-        dw_linkwiz.deselect();
-        $res.html('<img src="'+DOKU_BASE+'lib/images/throbber.gif" alt="" width="16" height="16" />')
-            .load(
-            DOKU_BASE + 'lib/exe/ajax.php',
-            {
-                call: 'linkwiz',
-                q: dw_linkwiz.$entry.val()
-            }
-        );
-    },
-
-    /**
-     * Show the link wizard
-     */
-    show: function(){
-        dw_linkwiz.selection  = DWgetSelection(dw_linkwiz.textArea);
-        dw_linkwiz.$wiz.show();
-        dw_linkwiz.$entry.focus();
-        dw_linkwiz.autocomplete();
-
-        // Move the cursor to the end of the input
-        var temp = dw_linkwiz.$entry.val();
-        dw_linkwiz.$entry.val('');
-        dw_linkwiz.$entry.val(temp);
-    },
-
-    /**
-     * Hide the link wizard
-     */
-    hide: function(){
-        dw_linkwiz.$wiz.hide();
-        dw_linkwiz.textArea.focus();
-    },
-
-    /**
-     * Toggle the link wizard
-     */
-    toggle: function(){
-        if(dw_linkwiz.$wiz.css('display') == 'none'){
-            dw_linkwiz.show();
-        }else{
-            dw_linkwiz.hide();
-        }
-    }
-};
diff --git a/wiki/lib/scripts/locktimer.js b/wiki/lib/scripts/locktimer.js
deleted file mode 100644
index f83b633..0000000
--- a/wiki/lib/scripts/locktimer.js
+++ /dev/null
@@ -1,115 +0,0 @@
-/**
- * Class managing the timer to display a warning on a expiring lock
- */
-var dw_locktimer = {
-    timeout: 0,
-    draft: false,
-    timerID: null,
-    lasttime: null,
-    msg: LANG.willexpire,
-    pageid: '',
-
-    /**
-     * Initialize the lock timer
-     *
-     * @param {int}    timeout Length of timeout in seconds
-     * @param {bool}   draft   Whether to save drafts
-     * @param {string} edid    Optional; ID of an edit object which has to be present
-     */
-    init: function(timeout,draft,edid){
-        var $edit;
-
-        edid = edid || 'wiki__text';
-
-        $edit = jQuery('#' + edid);
-        if($edit.length === 0 || $edit.attr('readonly')) {
-            return;
-        }
-
-        // init values
-        dw_locktimer.timeout  = timeout*1000;
-        dw_locktimer.draft    = draft;
-        dw_locktimer.lasttime = new Date();
-
-        dw_locktimer.pageid   = jQuery('#dw__editform').find('input[name=id]').val();
-        if(!dw_locktimer.pageid) {
-            return;
-        }
-
-        // register refresh event
-        $edit.keypress(dw_locktimer.refresh);
-        // start timer
-        dw_locktimer.reset();
-    },
-
-    /**
-     * (Re)start the warning timer
-     */
-    reset: function(){
-        dw_locktimer.clear();
-        dw_locktimer.timerID = window.setTimeout(dw_locktimer.warning, dw_locktimer.timeout);
-    },
-
-    /**
-     * Display the warning about the expiring lock
-     */
-    warning: function(){
-        dw_locktimer.clear();
-        alert(fixtxt(dw_locktimer.msg));
-    },
-
-    /**
-     * Remove the current warning timer
-     */
-    clear: function(){
-        if(dw_locktimer.timerID !== null){
-            window.clearTimeout(dw_locktimer.timerID);
-            dw_locktimer.timerID = null;
-        }
-    },
-
-    /**
-     * Refresh the lock via AJAX
-     *
-     * Called on keypresses in the edit area
-     */
-    refresh: function(){
-        var now = new Date(),
-            params = 'call=lock&id=' + dw_locktimer.pageid + '&';
-
-        // refresh every minute only
-        if(now.getTime() - dw_locktimer.lasttime.getTime() <= 30*1000) {
-            return;
-        }
-
-        // POST everything necessary for draft saving
-        if(dw_locktimer.draft && jQuery('#dw__editform').find('textarea[name=wikitext]').length > 0){
-            params += jQuery('#dw__editform').find('input[name=prefix], ' +
-                                                   'textarea[name=wikitext], ' +
-                                                   'input[name=suffix], ' +
-                                                   'input[name=date]').serialize();
-        }
-
-        jQuery.post(
-            DOKU_BASE + 'lib/exe/ajax.php',
-            params,
-            dw_locktimer.refreshed,
-            'html'
-        );
-        dw_locktimer.lasttime = now;
-    },
-
-    /**
-     * Callback. Resets the warning timer
-     */
-    refreshed: function(data){
-        var error = data.charAt(0);
-        data = data.substring(1);
-
-        jQuery('#draft__status').html(data);
-        if(error != '1') {
-            return; // locking failed
-        }
-        dw_locktimer.reset();
-    }
-};
diff --git a/wiki/lib/scripts/media.js b/wiki/lib/scripts/media.js
deleted file mode 100644
index 1e9d032..0000000
--- a/wiki/lib/scripts/media.js
+++ /dev/null
@@ -1,966 +0,0 @@
-/**
- * JavaScript functionality for the media management popup
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- * @author Pierre Spring <pierre.spring@caillou.ch>
- */
-
-var dw_mediamanager = {
-    keepopen: false,
-    hide: false,
-    popup: false,
-    display: false,
-    ext: false,
-    $popup: null,
-
-    // Image insertion opts
-    align: false,
-    link: false,
-    size: false,
-    forbidden_opts: {},
-
-    // File list options
-    view_opts: {list: false, sort: false},
-
-    layout_width: 0,
-
-    // The minimum height of the full-screen mediamanager in px
-    minHeights: {thumbs: 200, rows: 100},
-
-    init: function () {
-        var $content, $tree;
-        $content = jQuery('#media__content');
-        $tree = jQuery('#media__tree');
-        if (!$tree.length) return;
-
-        dw_mediamanager.prepare_content($content);
-
-        dw_mediamanager.attachoptions();
-        dw_mediamanager.initpopup();
-
-        // add the action to autofill the "upload as" field
-        $content
-            .on('change', '#upload__file', dw_mediamanager.suggest)
-            // Attach the image selector action to all links
-            .on('click', 'a.select', dw_mediamanager.select)
-            // Attach deletion confirmation dialog to the delete buttons
-            .on('click', '#media__content a.btn_media_delete', dw_mediamanager.confirmattach)
-            .on('submit', '#mediamanager__done_form', dw_mediamanager.list);
-
-        $tree.dw_tree({
-            toggle_selector: 'img',
-            load_data: function (show_sublist, $clicky) {
-                // get the enclosed link (is always the first one)
-                var $link = $clicky.parent().find('div.li a.idx_dir');
-
-                jQuery.post(
-                    DOKU_BASE + 'lib/exe/ajax.php',
-                    $link[0].search.substr(1) + '&call=medians',
-                    show_sublist,
-                    'html'
-                );
-            },
-
-            toggle_display: function ($clicky, opening) {
-                $clicky.attr('src', DOKU_BASE + 'lib/images/' + (opening ? 'minus' : 'plus') + '.gif');
-            }
-        });
-        $tree.on('click', 'a', dw_mediamanager.list);
-
-        // Init view property
-        dw_mediamanager.set_fileview_list();
-
-        dw_mediamanager.init_options();
-
-        dw_mediamanager.image_diff();
-        dw_mediamanager.init_ajax_uploader();
-
-        // changing opened tab in the file list panel
-        var $page = jQuery('#mediamanager__page');
-        $page.find('div.filelist')
-            .on('click', 'ul.tabs a', dw_mediamanager.list)
-            // loading file details
-            .on('click', 'div.panelContent a', dw_mediamanager.details)
-            // search form
-            .on('submit', '#dw__mediasearch', dw_mediamanager.list)
-            // "upload as" field autofill
-            .on('change', '#upload__file', dw_mediamanager.suggest)
-            // uploaded images
-            .on('click', '.qq-upload-file a', dw_mediamanager.details);
-
-        // changing opened tab in the file details panel
-        $page.find('div.file')
-            .on('click', 'ul.tabs a', dw_mediamanager.details)
-            // "update new version" button
-            .on('submit', '#mediamanager__btn_update', dw_mediamanager.list)
-            // revisions form
-            .on('submit', '#page__revisions', dw_mediamanager.details)
-            .on('click', '#page__revisions a', dw_mediamanager.details)
-            // meta edit form
-            .on('submit', '#mediamanager__save_meta', dw_mediamanager.details)
-            // delete button
-            .on('submit', '#mediamanager__btn_delete', dw_mediamanager.details)
-            // "restore this version" button
-            .on('submit', '#mediamanager__btn_restore', dw_mediamanager.details)
-            // less/more recent buttons in media revisions form
-            .on('submit', '.btn_newer, .btn_older', dw_mediamanager.details);
-
-        dw_mediamanager.update_resizable();
-        dw_mediamanager.layout_width = $page.width();
-        jQuery(window).resize(dw_mediamanager.window_resize);
-    },
-
-    init_options: function () {
-        var $options = jQuery('div.filelist div.panelHeader form.options'),
-            $listType, $sortBy, $both;
-        if ($options.length === 0) {
-            return;
-        }
-
-        $listType = $options.find('li.listType');
-        $sortBy = $options.find('li.sortBy');
-        $both = $listType.add($sortBy);
-
-        // Remove the submit button
-        $options.find('button[type=submit]').parent().hide();
-
-        // Prepare HTML for jQuery UI buttonset
-        $both.find('label').each(function () {
-            var $this = jQuery(this);
-            $this.children('input').appendTo($this.parent());
-        });
-
-        // Init buttonset
-        $both.find("input[type='radio']").checkboxradio({icon: false});
-        $both.controlgroup();
-
-        // Change handlers
-        $listType.children('input').change(function () {
-            dw_mediamanager.set_fileview_list();
-        });
-        $sortBy.children('input').change(function (event) {
-            dw_mediamanager.set_fileview_sort();
-            dw_mediamanager.list.call(jQuery('#dw__mediasearch')[0] || this, event);
-        });
-    },
-
-    /**
-     * build the popup window
-     *
-     * @author Dominik Eckelmann <eckelmann@cosmocode.de>
-     */
-    initpopup: function () {
-        var opts, $insp, $insbtn;
-
-        dw_mediamanager.$popup = jQuery(document.createElement('div'))
-            .attr('id', 'media__popup_content')
-            .dialog({
-                autoOpen: false, width: 280, modal: true,
-                draggable: true, title: LANG.mediatitle,
-                resizable: false
-            });
-
-        opts = [
-            {
-                id: 'link', label: LANG.mediatarget,
-                btns: ['lnk', 'direct', 'nolnk', 'displaylnk']
-            },
-            {
-                id: 'align', label: LANG.mediaalign,
-                btns: ['noalign', 'left', 'center', 'right']
-            },
-            {
-                id: 'size', label: LANG.mediasize,
-                btns: ['small', 'medium', 'large', 'original']
-            }
-        ];
-
-        jQuery.each(opts, function (_, opt) {
-            var $p, $l;
-            $p = jQuery(document.createElement('p'))
-                .attr('id', 'media__' + opt.id);
-
-            if (dw_mediamanager.display === "2") {
-                $p.hide();
-            }
-
-            $l = jQuery(document.createElement('label'))
-                .text(opt.label);
-            $p.append($l);
-
-            jQuery.each(opt.btns, function (i, text) {
-                var $btn, $img;
-                $btn = jQuery(document.createElement('button'))
-                    .addClass('button')
-                    .attr('id', "media__" + opt.id + "btn" + (i + 1))
-                    .attr('title', LANG['media' + text])
-                    .click(bind(dw_mediamanager.setOpt, opt.id));
-
-                $img = jQuery(document.createElement('img'))
-                    .attr('src', DOKU_BASE + 'lib/images/media_' + opt.id + '_' + text + '.png');
-
-                $btn.append($img);
-                $p.append($btn);
-            });
-
-            dw_mediamanager.$popup.append($p);
-        });
-
-        // insert button
-        $insp = jQuery(document.createElement('p'));
-        dw_mediamanager.$popup.append($insp);
-
-        $insbtn = jQuery(document.createElement('input'))
-            .attr('id', 'media__sendbtn')
-            .attr('type', 'button')
-            .addClass('button')
-            .val(LANG.mediainsert);
-        $insp.append($insbtn);
-    },
-
-    /**
-     * Insert the clicked image into the opener's textarea
-     *
-     * @author Andreas Gohr <andi@splitbrain.org>
-     * @author Dominik Eckelmann <eckelmann@cosmocode.de>
-     * @author Pierre Spring <pierre.spring@caillou.ch>
-     */
-    insert: function (id) {
-        var opts, cb, edid, s;
-
-        // set syntax options
-        dw_mediamanager.$popup.dialog('close');
-
-        opts = '';
-
-        if ({img: 1, swf: 1}[dw_mediamanager.ext] === 1) {
-
-            if (dw_mediamanager.link === '4') {
-                opts = '?linkonly';
-            } else {
-
-                if (dw_mediamanager.link === "3" && dw_mediamanager.ext === 'img') {
-                    opts = '?nolink';
-                } else if (dw_mediamanager.link === "2" && dw_mediamanager.ext === 'img') {
-                    opts = '?direct';
-                }
-
-                s = parseInt(dw_mediamanager.size, 10);
-                var size = s * 200;
-
-                if (s && s >= 1 && s < 4) {
-                    opts += (opts.length) ? '&' : '?';
-                    opts += size;
-                    if (dw_mediamanager.ext === 'swf') {
-                        switch (s) {
-                            case 1:
-                                opts += 'x62';
-                                break;
-                            case 2:
-                                opts += 'x123';
-                                break;
-                            case 3:
-                                opts += 'x185';
-                                break;
-                        }
-                    }
-                }
-            }
-        }
-        edid = String.prototype.match.call(document.location, /&edid=([^&]+)/);
-        edid = edid ? edid[1] : 'wiki__text';
-        cb = String.prototype.match.call(document.location, /&onselect=([^&]+)/);
-        cb = cb ? cb[1].replace(/[^\w]+/, '') : 'dw_mediamanager_item_select';
-
-        // arguments here only match the dw_mediamanager_item_select function, these will need to change if you override cb with onselect GET param
-        opener[cb](edid, id, opts, dw_mediamanager.align, dw_mediamanager.keepopen);
-        if (!dw_mediamanager.keepopen) {
-            window.close();
-        }
-        opener.focus();
-        return false;
-    },
-
-
-    /**
-     * Prefills the wikiname.
-     *
-     * @author Andreas Gohr <andi@splitbrain.org>
-     */
-    suggest: function () {
-        var $file, $name, text;
-
-        $file = jQuery(this);
-        $name = jQuery('#upload__name');
-
-        if ($name.val() != '') return;
-
-        if (!$file.length || !$name.length) {
-            return;
-        }
-
-        text = $file.val();
-        text = text.substr(text.lastIndexOf('/') + 1);
-        text = text.substr(text.lastIndexOf('\\') + 1);
-        $name.val(text);
-    },
-
-    /**
-     * list the content of a namespace using AJAX
-     *
-     * @author Andreas Gohr <andi@splitbrain.org>
-     * @author Pierre Spring <pierre.spring@caillou.ch>
-     */
-    list: function (event) {
-        var $link, $content, params;
-
-        if (event) {
-            event.preventDefault();
-        }
-
-        jQuery('div.success, div.info, div.error, div.notify').remove();
-
-        $link = jQuery(this);
-
-        //popup
-        $content = jQuery('#media__content');
-
-        if ($content.length === 0) {
-            //fullscreen media manager
-            $content = jQuery('div.filelist');
-
-            if ($link.hasClass('idx_dir')) {
-                //changing namespace
-                jQuery('div.file').empty();
-                jQuery('div.namespaces .selected').removeClass('selected');
-                $link.addClass('selected');
-            }
-        }
-
-        params = 'call=medialist&';
-
-        if ($link[0].search) {
-            params += $link[0].search.substr(1);
-        } else if ($link.is('form')) {
-            params += dw_mediamanager.form_params($link);
-        } else if ($link.closest('form').length > 0) {
-            params += dw_mediamanager.form_params($link.closest('form'));
-        }
-
-        // fetch the subtree
-        dw_mediamanager.update_content($content, params);
-    },
-
-    /**
-     * Returns form parameters
-     *
-     * @author Kate Arzamastseva <pshns@ukr.net>
-     */
-    form_params: function ($form) {
-        if (!$form.length) return;
-
-        var action = '';
-        var i = $form[0].action.indexOf('?');
-        if (i >= 0) {
-            action = $form[0].action.substr(i + 1);
-        }
-        return action + '&' + $form.serialize();
-    },
-
-    set_fileview_list: function (new_type) {
-        dw_mediamanager.set_fileview_opt(['list', 'listType', function (new_type) {
-            jQuery('div.filelist div.panelContent ul')
-                .toggleClass('rows', new_type === 'rows')
-                .toggleClass('thumbs', new_type === 'thumbs');
-        }], new_type);
-
-        // FIXME: Move to onchange handler (opt[2])?
-        dw_mediamanager.resize();
-    },
-
-    set_fileview_sort: function (new_sort) {
-        dw_mediamanager.set_fileview_opt(['sort', 'sortBy', function (new_sort) {
-            // FIXME
-        }], new_sort);
-    },
-
-    set_fileview_opt: function (opt, new_val) {
-        if (typeof new_val === 'undefined') {
-            new_val = jQuery('form.options li.' + opt[1] + ' input')
-                .filter(':checked').val();
-            // if new_val is still undefined (because form.options is not in active tab), set to most spacious option
-            if (typeof new_val === 'undefined') {
-                new_val = 'thumbs';
-            }
-        }
-
-        if (new_val !== dw_mediamanager.view_opts[opt[0]]) {
-            opt[2](new_val);
-
-            DokuCookie.setValue(opt[0], new_val);
-
-            dw_mediamanager.view_opts[opt[0]] = new_val;
-        }
-    },
-
-    /**
-     * Lists the content of the right column (image details) using AJAX
-     *
-     * @author Kate Arzamastseva <pshns@ukr.net>
-     */
-    details: function (event) {
-        var $link, $content, params, update_list;
-        $link = jQuery(this);
-        event.preventDefault();
-
-        jQuery('div.success, div.info, div.error, div.notify').remove();
-
-        if ($link[0].id == 'mediamanager__btn_delete' && !confirm(LANG.del_confirm)) {
-            return false;
-        }
-        if ($link[0].id == 'mediamanager__btn_restore' && !confirm(LANG.restore_confirm)) {
-            return false;
-        }
-
-        $content = jQuery('div.file');
-        params = 'call=mediadetails&';
-
-        if ($link[0].search) {
-            params += $link[0].search.substr(1);
-        } else if ($link.is('form')) {
-            params += dw_mediamanager.form_params($link);
-        } else if ($link.closest('form').length > 0) {
-            params += dw_mediamanager.form_params($link.closest('form'));
-        }
-
-        update_list = ($link[0].id == 'mediamanager__btn_delete' ||
-        $link[0].id == 'mediamanager__btn_restore');
-
-        dw_mediamanager.update_content($content, params, update_list);
-    },
-
-    update_content: function ($content, params, update_list) {
-        var $container;
-
-        jQuery.post(
-            DOKU_BASE + 'lib/exe/ajax.php',
-            params,
-            function (data) {
-                dw_mediamanager.$resizables().resizable('destroy');
-
-                if (update_list) {
-                    dw_mediamanager.list.call(jQuery('#mediamanager__page').find('form.options button[type="submit"]')[0]);
-                }
-
-                $content.html(data);
-
-                dw_mediamanager.prepare_content($content);
-                dw_mediamanager.updatehide();
-
-                dw_mediamanager.update_resizable();
-                dw_behaviour.revisionBoxHandler();
-
-                // Make sure that the list view style stays the same
-                dw_mediamanager.set_fileview_list(dw_mediamanager.view_opts.list);
-
-                dw_mediamanager.image_diff();
-                dw_mediamanager.init_ajax_uploader();
-                dw_mediamanager.init_options();
-
-            },
-            'html'
-        );
-        $container = $content.find('div.panelContent');
-        if ($container.length === 0) {
-            $container = $content;
-        }
-        $container.html('<img src="' + DOKU_BASE + 'lib/images/loading.gif" alt="..." class="load" />');
-    },
-
-    window_resize: function () {
-        dw_mediamanager.resize();
-
-        dw_mediamanager.opacity_slider();
-        dw_mediamanager.portions_slider();
-    },
-
-    $resizables: function () {
-        return jQuery('#mediamanager__page').find('div.namespaces, div.filelist');
-    },
-
-    /**
-     * Updates mediamanager layout
-     *
-     * @author Kate Arzamastseva <pshns@ukr.net>
-     */
-    update_resizable: function () {
-        var $resizables = dw_mediamanager.$resizables();
-
-        $resizables.resizable({
-            handles: (jQuery('html[dir=rtl]').length ? 'w' : 'e'),
-            resize: function (event, ui) {
-                var $page = jQuery('#mediamanager__page');
-                var widthFull = $page.width();
-                var widthResizables = 0;
-                $resizables.each(function () {
-                    widthResizables += jQuery(this).width();
-                });
-                var $filePanel = $page.find('div.panel.file');
-
-                // set max width of resizable column
-                var widthOtherResizable = widthResizables - jQuery(this).width();
-                var minWidthNonResizable = parseFloat($filePanel.css("min-width"));
-                var maxWidth = widthFull - (widthOtherResizable + minWidthNonResizable) - 1;
-                $resizables.resizable("option", "maxWidth", maxWidth);
-
-                // width of file panel in % = 100% - width of resizables in %
-                // this calculates with 99.9 and not 100 to overcome rounding errors
-                var relWidthNonResizable = 99.9 - (100 * widthResizables / widthFull);
-                // set width of file panel
-                $filePanel.width(relWidthNonResizable + '%');
-
-                dw_mediamanager.resize();
-
-                dw_mediamanager.opacity_slider();
-                dw_mediamanager.portions_slider();
-            }
-        });
-
-        dw_mediamanager.resize();
-    },
-
-    resize: function () {
-        var $contents = jQuery('#mediamanager__page').find('div.panelContent'),
-            height = jQuery(window).height() - jQuery(document.body).height() +
-                Math.max.apply(null, jQuery.map($contents, function (v) {
-                    return jQuery(v).height();
-                }));
-
-        // If the screen is too small, don’t try to resize
-        if (height < dw_mediamanager.minHeights[dw_mediamanager.view_opts.list]) {
-            $contents.add(dw_mediamanager.$resizables()).height('auto');
-        } else {
-            $contents.height(height);
-            dw_mediamanager.$resizables().each(function () {
-                var $this = jQuery(this);
-                $this.height(height + $this.find('div.panelContent').offset().top - $this.offset().top);
-            });
-        }
-    },
-
-    /**
-     * Prints 'select' for image difference representation type
-     *
-     * @author Kate Arzamastseva <pshns@ukr.net>
-     */
-    image_diff: function () {
-        if (jQuery('#mediamanager__difftype').length) return;
-
-        var $form = jQuery('#mediamanager__form_diffview');
-        if (!$form.length) return;
-
-        var $label = jQuery(document.createElement('label'));
-        $label.append('<span>' + LANG.media_diff + '</span> ');
-        var $select = jQuery(document.createElement('select'))
-            .attr('id', 'mediamanager__difftype')
-            .attr('name', 'difftype')
-            .change(dw_mediamanager.change_diff_type);
-        $select.append(new Option(LANG.media_diff_both, "both"));
-        $select.append(new Option(LANG.media_diff_opacity, "opacity"));
-        $select.append(new Option(LANG.media_diff_portions, "portions"));
-        $label.append($select);
-        $form.append($label);
-
-        // for IE
-        var select = document.getElementById('mediamanager__difftype');
-        select.options[0].text = LANG.media_diff_both;
-        select.options[1].text = LANG.media_diff_opacity;
-        select.options[2].text = LANG.media_diff_portions;
-    },
-
-    /**
-     * Handles selection of image difference representation type
-     *
-     * @author Kate Arzamastseva <pshns@ukr.net>
-     */
-    change_diff_type: function () {
-        var $select = jQuery('#mediamanager__difftype');
-        var $content = jQuery('#mediamanager__diff');
-
-        var params = dw_mediamanager.form_params($select.closest('form')) + '&call=mediadiff';
-        jQuery.post(
-            DOKU_BASE + 'lib/exe/ajax.php',
-            params,
-            function (data) {
-                $content.html(data);
-                dw_mediamanager.portions_slider();
-                dw_mediamanager.opacity_slider();
-            },
-            'html'
-        );
-    },
-
-    /**
-     * Sets options for opacity diff slider
-     *
-     * @author Kate Arzamastseva <pshns@ukr.net>
-     */
-    opacity_slider: function () {
-        var $diff = jQuery("#mediamanager__diff");
-        var $slider = $diff.find("div.slider");
-        if (!$slider.length) return;
-
-        var $image = $diff.find('div.imageDiff.opacity div.image1 img');
-        if (!$image.length) return;
-        $slider.width($image.width() - 20);
-
-        $slider.slider();
-        $slider.slider("option", "min", 0);
-        $slider.slider("option", "max", 0.999);
-        $slider.slider("option", "step", 0.001);
-        $slider.slider("option", "value", 0.5);
-        $slider.on("slide", function (event, ui) {
-            jQuery('#mediamanager__diff').find('div.imageDiff.opacity div.image2 img').css({opacity: $slider.slider("option", "value")});
-        });
-    },
-
-    /**
-     * Sets options for red line diff slider
-     *
-     * @author Kate Arzamastseva <pshns@ukr.net>
-     */
-    portions_slider: function () {
-        var $diff = jQuery("#mediamanager__diff");
-        if (!$diff.length) return;
-
-        var $image1 = $diff.find('div.imageDiff.portions div.image1 img');
-        var $image2 = $diff.find('div.imageDiff.portions div.image2 img');
-        if (!$image1.length || !$image2.length) return;
-
-        $diff.width('100%');
-        $image2.parent().width('97%');
-        $image1.width('100%');
-        $image2.width('100%');
-
-        if ($image1.width() < $diff.width()) {
-            $diff.width($image1.width());
-        }
-
-        $image2.parent().width('50%');
-        $image2.width($image1.width());
-        $image1.width($image1.width());
-
-        var $slider = $diff.find("div.slider");
-        if (!$slider.length) return;
-        $slider.width($image1.width() - 20);
-
-        $slider.slider();
-        $slider.slider("option", "min", 0);
-        $slider.slider("option", "max", 97);
-        $slider.slider("option", "step", 1);
-        $slider.slider("option", "value", 50);
-        $slider.on("slide", function (event, ui) {
-            jQuery('#mediamanager__diff').find('div.imageDiff.portions div.image2').css({width: $slider.slider("option", "value") + '%'});
-        });
-    },
-
-    /**
-     * Parse a URI query string to an associative array
-     *
-     * @author Kate Arzamastseva <pshns@ukr.net>
-     */
-    params_toarray: function (str) {
-        var vars = [], hash;
-        var hashes = str.split('&');
-        for (var i = 0; i < hashes.length; i++) {
-            hash = hashes[i].split('=');
-            vars[decodeURIComponent(hash[0])] = decodeURIComponent(hash[1]);
-        }
-        return vars;
-    },
-
-    init_ajax_uploader: function () {
-        if (!jQuery('#mediamanager__uploader').length) return;
-        if (jQuery('.qq-upload-list').length) return;
-
-        var params = dw_mediamanager.form_params(jQuery('#dw__upload')) + '&call=mediaupload';
-        params = dw_mediamanager.params_toarray(params);
-
-        var uploader = new qq.FileUploaderExtended({
-            element: document.getElementById('mediamanager__uploader'),
-            action: DOKU_BASE + 'lib/exe/ajax.php',
-            params: params
-        });
-    },
-
-    prepare_content: function ($content) {
-        // hide syntax example
-        $content.find('div.example:visible').hide();
-    },
-
-    /**
-     * shows the popup for a image link
-     */
-    select: function (event) {
-        var $link, id, dot, ext;
-
-        event.preventDefault();
-
-        $link = jQuery(this);
-        id = $link.attr('id').substr(2);
-
-        if (!opener) {
-            // if we don't run in popup display example
-            // the id's are a bit wierd and jQuery('#ex_wiki_dokuwiki-128.png')
-            // will not be found by Sizzle (the CSS Selector Engine
-            // used by jQuery), hence the document.getElementById() call
-            jQuery(document.getElementById('ex_' + id.replace(/:/g, '_').replace(/^_/, ''))).dw_toggle();
-            return;
-        }
-
-        dw_mediamanager.ext = false;
-        dot = id.lastIndexOf(".");
-
-        if (-1 === dot) {
-            dw_mediamanager.insert(id);
-            return;
-        }
-
-        ext = id.substr(dot);
-
-        if ({'.jpg': 1, '.jpeg': 1, '.png': 1, '.gif': 1, '.swf': 1}[ext] !== 1) {
-            dw_mediamanager.insert(id);
-            return;
-        }
-
-        // remove old callback from the insert button and set the new one.
-        var $sendbtn = jQuery('#media__sendbtn');
-        $sendbtn.off().click(bind(dw_mediamanager.insert, id));
-
-        dw_mediamanager.unforbid('ext');
-        if (ext === '.swf') {
-            dw_mediamanager.ext = 'swf';
-            dw_mediamanager.forbid('ext', {
-                link: ['1', '2'],
-                size: ['4']
-            });
-        } else {
-            dw_mediamanager.ext = 'img';
-        }
-
-        // Set to defaults
-        dw_mediamanager.setOpt('link');
-        dw_mediamanager.setOpt('align');
-        dw_mediamanager.setOpt('size');
-
-        // toggle buttons for detail and linked image, original size
-        jQuery('#media__linkbtn1, #media__linkbtn2, #media__sizebtn4')
-            .toggle(dw_mediamanager.ext === 'img');
-
-        dw_mediamanager.$popup.dialog('open');
-
-        $sendbtn.focus();
-    },
-
-    /**
-     * Deletion confirmation dialog to the delete buttons.
-     *
-     * @author Michael Klier <chi@chimeric.de>
-     * @author Pierre Spring <pierre.spring@caillou.ch>
-     */
-    confirmattach: function (e) {
-        if (!confirm(LANG.del_confirm + "\n" + jQuery(this).attr('title'))) {
-            e.preventDefault();
-        }
-    },
-
-    /**
-     * Creates checkboxes for additional options
-     *
-     * @author Andreas Gohr <andi@splitbrain.org>
-     * @author Pierre Spring <pierre.spring@caillou.ch>
-     */
-    attachoptions: function () {
-        var $obj, opts;
-
-        $obj = jQuery('#media__opts');
-        if ($obj.length === 0) {
-            return;
-        }
-
-        opts = [];
-        // keep open
-        if (opener) {
-            opts.push(['keepopen', 'keepopen']);
-        }
-        opts.push(['hide', 'hidedetails']);
-
-        jQuery.each(opts,
-            function (_, opt) {
-                var $box, $lbl;
-                $box = jQuery(document.createElement('input'))
-                    .attr('type', 'checkbox')
-                    .attr('id', 'media__' + opt[0])
-                    .click(bind(dw_mediamanager.toggleOption, opt[0]));
-
-                if (DokuCookie.getValue(opt[0])) {
-                    $box.prop('checked', true);
-                    dw_mediamanager[opt[0]] = true;
-                }
-
-                $lbl = jQuery(document.createElement('label'))
-                    .attr('for', 'media__' + opt[0])
-                    .text(LANG[opt[1]]);
-
-                $obj.append($box, $lbl, document.createElement('br'));
-            });
-
-        dw_mediamanager.updatehide();
-    },
-
-    /**
-     * Generalized toggler
-     *
-     * @author Pierre Spring <pierre.spring@caillou.ch>
-     */
-    toggleOption: function (variable) {
-        if (jQuery(this).prop('checked')) {
-            DokuCookie.setValue(variable, 1);
-            dw_mediamanager[variable] = true;
-        } else {
-            DokuCookie.setValue(variable, '');
-            dw_mediamanager[variable] = false;
-        }
-        if (variable === 'hide') {
-            dw_mediamanager.updatehide();
-        }
-    },
-
-    /**
-     * Sets the visibility of the image details accordingly to the
-     * chosen hide state
-     *
-     * @author Andreas Gohr <andi@splitbrain.org>
-     */
-    updatehide: function () {
-        jQuery('#media__content').find('div.detail').dw_toggle(!dw_mediamanager.hide);
-    },
-
-    /**
-     * set media insertion option
-     *
-     * @author Dominik Eckelmann <eckelmann@cosmocode.de>
-     */
-    setOpt: function (opt, e) {
-        var val, i;
-        if (typeof e !== 'undefined') {
-            val = this.id.substring(this.id.length - 1);
-        } else {
-            val = dw_mediamanager.getOpt(opt);
-        }
-
-        if (val === false) {
-            DokuCookie.setValue(opt, '');
-            dw_mediamanager[opt] = false;
-            return;
-        }
-
-        if (opt === 'link') {
-            if (val !== '4' && dw_mediamanager.link === '4') {
-                dw_mediamanager.unforbid('linkonly');
-                dw_mediamanager.setOpt('align');
-                dw_mediamanager.setOpt('size');
-            } else if (val === '4') {
-                dw_mediamanager.forbid('linkonly', {align: false, size: false});
-            }
-
-            jQuery("#media__size, #media__align").dw_toggle(val !== '4');
-        }
-
-        DokuCookie.setValue(opt, val);
-        dw_mediamanager[opt] = val;
-
-        for (i = 1; i <= 4; i++) {
-            jQuery("#media__" + opt + "btn" + i).removeClass('selected');
-        }
-        jQuery('#media__' + opt + 'btn' + val).addClass('selected');
-    },
-
-    unforbid: function (group) {
-        delete dw_mediamanager.forbidden_opts[group];
-    },
-
-    forbid: function (group, forbids) {
-        dw_mediamanager.forbidden_opts[group] = forbids;
-    },
-
-    allowedOpt: function (opt, val) {
-        var ret = true;
-        jQuery.each(dw_mediamanager.forbidden_opts,
-            function (_, forbids) {
-                ret = forbids[opt] !== false &&
-                    jQuery.inArray(val, forbids[opt]) === -1;
-                return ret;
-            });
-        return ret;
-    },
-
-    getOpt: function (opt) {
-        var allowed = bind(dw_mediamanager.allowedOpt, opt);
-
-        // Current value
-        if (dw_mediamanager[opt] !== false && allowed(dw_mediamanager[opt])) {
-            return dw_mediamanager[opt];
-        }
-
-        // From cookie
-        if (DokuCookie.getValue(opt) && allowed(DokuCookie.getValue(opt))) {
-            return DokuCookie.getValue(opt);
-        }
-
-        // size default
-        if (opt === 'size' && allowed('2')) {
-            return '2';
-        }
-
-        // Whatever is allowed, and be it false
-        return jQuery.grep(['1', '2', '3', '4'], allowed)[0] || false;
-    }
-};
-
-/**
- * Default implementation for the media manager's select action
- *
- * Can be overriden with the onselect URL parameter. Is called on the opener context
- *
- * @param {string} edid
- * @param {string} mediaid
- * @param {string} opts
- * @param {string} align [none, left, center, right]
- */
-function dw_mediamanager_item_select(edid, mediaid, opts, align, keepopen) {
-    var alignleft = '';
-    var alignright = '';
-
-    // Get the 2 characters after the cursor to check if we're currently inside an image tag
-    var cursorInImageTag = false;
-    var textArea = jQuery('#' + edid)[0];
-    var selection = DWgetSelection(textArea);
-    selection.end = selection.end + 2;
-    var charsAfterCursor = selection.getText();
-    if (charsAfterCursor === '}}') {
-        cursorInImageTag = true;
-    }
-
-    if (align !== '1') {
-        alignleft = align === '2' ? '' : ' ';
-        alignright = align === '4' ? '' : ' ';
-    }
-    if (keepopen && cursorInImageTag) {
-        selection.start = selection.start + 2;
-        DWsetSelection(selection);
-    }
-    insertTags(edid, '{{' + alignleft + mediaid + opts + alignright + '|', '}}', '');
-}
-
-jQuery(dw_mediamanager.init);
diff --git a/wiki/lib/scripts/page.js b/wiki/lib/scripts/page.js
deleted file mode 100644
index aadff8e..0000000
--- a/wiki/lib/scripts/page.js
+++ /dev/null
@@ -1,190 +0,0 @@
-/**
- * Page behaviours
- *
- * This class adds various behaviours to the rendered page
- */
-dw_page = {
-    /**
-     * initialize page behaviours
-     */
-    init: function(){
-        dw_page.sectionHighlight();
-        jQuery('a.fn_top').mouseover(dw_page.footnoteDisplay);
-        dw_page.makeToggle('#dw__toc h3','#dw__toc > div');
-    },
-
-    /**
-     * Highlight the section when hovering over the appropriate section edit button
-     *
-     * @author Andreas Gohr <andi@splitbrain.org>
-     */
-    sectionHighlight: function() {
-        jQuery('form.btn_secedit')
-            .mouseover(function(){
-                var $tgt = jQuery(this).parent(),
-                    nr = $tgt.attr('class').match(/(\s+|^)editbutton_(\d+)(\s+|$)/)[2],
-                    $highlight = jQuery(),                                             // holder for elements in the section to be highlighted
-                    $highlightWrap = jQuery('<div class="section_highlight"></div>');  // section highlight wrapper
-
-                // Walk the dom tree in reverse to find the sibling which is or contains the section edit marker
-                while($tgt.length > 0 && !($tgt.hasClass('sectionedit' + nr) || $tgt.find('.sectionedit' + nr).length)) {
-                    $tgt = $tgt.prev();
-                    $highlight = $highlight.add($tgt);
-                }
-              // insert the section highlight wrapper before the last element added to $highlight
-              $highlight.filter(':last').before($highlightWrap);
-              // and move the elements to be highlighted inside the section highlight wrapper
-              $highlight.detach().appendTo($highlightWrap);
-            })
-            .mouseout(function(){
-                // find the section highlight wrapper...
-                var $highlightWrap = jQuery('.section_highlight');
-                // ...move its children in front of it (as siblings)...
-                $highlightWrap.before($highlightWrap.children().detach());
-                // ...and remove the section highlight wrapper
-                $highlightWrap.detach();
-            });
-    },
-
-    /**
-     * Create/get a insitu popup used by the footnotes
-     *
-     * @param target - the DOM element at which the popup should be aligned at
-     * @param popup_id - the ID of the (new) DOM popup
-     * @return the Popup jQuery object
-     */
-    insituPopup: function(target, popup_id) {
-        // get or create the popup div
-        var $fndiv = jQuery('#' + popup_id);
-
-        // popup doesn't exist, yet -> create it
-        if($fndiv.length === 0){
-            $fndiv = jQuery(document.createElement('div'))
-                .attr('id', popup_id)
-                .addClass('insitu-footnote JSpopup')
-                .attr('aria-hidden', 'true')
-                .mouseleave(function () {jQuery(this).hide().attr('aria-hidden', 'true');})
-                .attr('role', 'tooltip');
-            jQuery('.dokuwiki:first').append($fndiv);
-        }
-
-        // position() does not support hidden elements
-        $fndiv.show().position({
-            my: 'left top',
-            at: 'left center',
-            of: target
-        }).hide();
-
-        return $fndiv;
-    },
-
-    /**
-     * Display an insitu footnote popup
-     *
-     * @author Andreas Gohr <andi@splitbrain.org>
-     * @author Chris Smith <chris@jalakai.co.uk>
-     * @author Anika Henke <anika@selfthinker.org>
-     */
-    footnoteDisplay: function () {
-        var $content = jQuery(jQuery(this).attr('href')) // Footnote text anchor
-                      .parent().siblings('.content').clone();
-
-        if (!$content) {
-            return;
-        }
-
-        // prefix ids on any elements with "insitu__" to ensure they remain unique
-        jQuery('[id]', $content).each(function(){
-            var id = jQuery(this).attr('id');
-            jQuery(this).attr('id', 'insitu__' + id);
-        });
-
-        var content = $content.html().trim();
-        // now put the content into the wrapper
-        dw_page.insituPopup(this, 'insitu__fn').html(content)
-        .show().attr('aria-hidden', 'false');
-    },
-
-    /**
-     * Makes an element foldable by clicking its handle
-     *
-     * This is used for the TOC toggling, but can be used for other elements
-     * as well. A state indicator is inserted into the handle and can be styled
-     * by CSS.
-     *
-     * To properly reserve space for the expanded element, the sliding animation is
-     * done on the children of the content. To make that look good and to make sure aria
-     * attributes are assigned correctly, it's recommended to make sure that the content
-     * element contains a single child element only.
-     *
-     * @param {selector} handle What should be clicked to toggle
-     * @param {selector} content This element will be toggled
-     * @param {int} state initial state (-1 = open, 1 = closed)
-     */
-    makeToggle: function(handle, content, state){
-        var $handle, $content, $clicky, $child, setClicky;
-        $handle = jQuery(handle);
-        if(!$handle.length) return;
-        $content = jQuery(content);
-        if(!$content.length) return;
-
-        // we animate the children
-        $child = $content.children();
-
-        // class/display toggling
-        setClicky = function(hiding){
-            if(hiding){
-                $clicky.html('<span>+</span>');
-                $handle.addClass('closed');
-                $handle.removeClass('open');
-            }else{
-                $clicky.html('<span>−</span>');
-                $handle.addClass('open');
-                $handle.removeClass('closed');
-            }
-        };
-
-        $handle[0].setState = function(state){
-            var hidden;
-            if(!state) state = 1;
-
-            // Assert that content instantly takes the whole space
-            $content.css('min-height', $content.height()).show();
-
-            // stop any running animation
-            $child.stop(true, true);
-
-            // was a state given or do we toggle?
-            if(state === -1) {
-                hidden = false;
-            } else if(state === 1) {
-                hidden = true;
-            } else {
-                hidden = $child.is(':hidden');
-            }
-
-            // update the state
-            setClicky(!hidden);
-
-            // Start animation and assure that $toc is hidden/visible
-            $child.dw_toggle(hidden, function () {
-                $content.toggle(hidden);
-                $content.attr('aria-expanded', hidden);
-                $content.css('min-height',''); // remove min-height again
-            }, true);
-        };
-
-        // the state indicator
-        $clicky = jQuery(document.createElement('strong'));
-
-        // click function
-        $handle.css('cursor','pointer')
-               .click($handle[0].setState)
-               .prepend($clicky);
-
-        // initial state
-        $handle[0].setState(state);
-    }
-};
-
-jQuery(dw_page.init);
diff --git a/wiki/lib/scripts/qsearch.js b/wiki/lib/scripts/qsearch.js
deleted file mode 100644
index 18e5150..0000000
--- a/wiki/lib/scripts/qsearch.js
+++ /dev/null
@@ -1,191 +0,0 @@
-/**
- * AJAX functions for the pagename quicksearch
- *
- * @license  GPL2 (http://www.gnu.org/licenses/gpl.html)
- * @author   Andreas Gohr <andi@splitbrain.org>
- * @author   Adrian Lang <lang@cosmocode.de>
- * @author   Michal Rezler <m.rezler@centrum.cz>
- */
-jQuery.fn.dw_qsearch = function (overrides) {
-
-    var dw_qsearch = {
-
-        output: '#qsearch__out',
-
-        $inObj: this,
-        $outObj: null,
-        timer: null,
-        curRequest: null,
-
-        /**
-         * initialize the quick search
-         *
-         * Attaches the event handlers
-         *
-         */
-        init: function () {
-            var do_qsearch;
-
-            dw_qsearch.$outObj = jQuery(dw_qsearch.output);
-
-            // objects found?
-            if (dw_qsearch.$inObj.length === 0 ||
-                dw_qsearch.$outObj.length === 0) {
-                return;
-            }
-
-            // attach eventhandler to search field
-            do_qsearch = function () {
-                // abort any previous request
-                if (dw_qsearch.curRequest != null) {
-                    dw_qsearch.curRequest.abort();
-                }
-                var value = dw_qsearch.getSearchterm();
-                if (value === '') {
-                    dw_qsearch.clear_results();
-                    return;
-                }
-                dw_qsearch.$inObj.parents('form').addClass('searching');
-                dw_qsearch.curRequest = jQuery.post(
-                    DOKU_BASE + 'lib/exe/ajax.php',
-                    {
-                        call: 'qsearch',
-                        q: encodeURI(value)
-                    },
-                    dw_qsearch.onCompletion,
-                    'html'
-                );
-            };
-
-            dw_qsearch.$inObj.keyup(
-                function () {
-                    if (dw_qsearch.timer) {
-                        window.clearTimeout(dw_qsearch.timer);
-                        dw_qsearch.timer = null;
-                    }
-                    dw_qsearch.timer = window.setTimeout(do_qsearch, 500);
-                }
-            );
-
-            // attach eventhandler to output field
-            dw_qsearch.$outObj.click(dw_qsearch.clear_results);
-        },
-
-        /**
-         * Read search term from input
-         */
-        getSearchterm: function() {
-            return dw_qsearch.$inObj.val();
-        },
-
-        /**
-         * Empty and hide the output div
-         */
-        clear_results: function () {
-            dw_qsearch.$inObj.parents('form').removeClass('searching');
-            dw_qsearch.$outObj.hide();
-            dw_qsearch.$outObj.text('');
-        },
-
-        /**
-         * Callback. Reformat and display the results.
-         *
-         * Namespaces are shortened here to keep the results from overflowing
-         * or wrapping
-         *
-         * @param data The result HTML
-         */
-        onCompletion: function (data) {
-            var max, $links, too_big;
-            dw_qsearch.$inObj.parents('form').removeClass('searching');
-
-            dw_qsearch.curRequest = null;
-
-            if (data === '') {
-                dw_qsearch.clear_results();
-                return;
-            }
-
-            dw_qsearch.$outObj
-                .html(data)
-                .show()
-                .css('white-space', 'nowrap');
-
-            // disable overflow during shortening
-            dw_qsearch.$outObj.find('li').css('overflow', 'visible');
-
-            $links = dw_qsearch.$outObj.find('a');
-            max = dw_qsearch.$outObj[0].clientWidth; // maximum width allowed (but take away paddings below)
-            if (document.documentElement.dir === 'rtl') {
-                max -= parseInt(dw_qsearch.$outObj.css('padding-left'));
-                too_big = function (l) {
-                    return l.offsetLeft < 0;
-                };
-            } else {
-                max -= parseInt(dw_qsearch.$outObj.css('padding-right'));
-                too_big = function (l) {
-                    return l.offsetWidth + l.offsetLeft > max;
-                };
-            }
-
-            $links.each(function () {
-                var start, length, replace, nsL, nsR, eli, runaway;
-
-                if (!too_big(this)) {
-                    return;
-                }
-
-                nsL = this.textContent.indexOf('(');
-                nsR = this.textContent.indexOf(')');
-                eli = 0;
-                runaway = 0;
-
-                while ((nsR - nsL > 3) && too_big(this) && runaway++ < 500) {
-                    if (eli !== 0) {
-                        // elipsis already inserted
-                        if ((eli - nsL) > (nsR - eli)) {
-                            // cut left
-                            start = eli - 2;
-                            length = 2;
-                        } else {
-                            // cut right
-                            start = eli + 1;
-                            length = 1;
-                        }
-                        replace = '';
-                    } else {
-                        // replace middle with ellipsis
-                        start = Math.floor(nsL + ((nsR - nsL) / 2));
-                        length = 1;
-                        replace = '…';
-                    }
-                    this.textContent = substr_replace(this.textContent,
-                        replace, start, length);
-
-                    eli = this.textContent.indexOf('…');
-                    nsL = this.textContent.indexOf('(');
-                    nsR = this.textContent.indexOf(')');
-                }
-            });
-
-            // reenable overflow
-            dw_qsearch.$outObj.find('li').css('overflow', 'hidden').css('text-overflow', 'ellipsis');
-        }
-
-
-    };
-
-    jQuery.extend(dw_qsearch, overrides);
-
-    if (!overrides.deferInit) {
-        dw_qsearch.init();
-    }
-
-    return dw_qsearch;
-};
-
-jQuery(function () {
-    jQuery('#qsearch__in').dw_qsearch({
-        output: '#qsearch__out'
-    });
-});
diff --git a/wiki/lib/scripts/script.js b/wiki/lib/scripts/script.js
deleted file mode 100644
index 97edef0..0000000
--- a/wiki/lib/scripts/script.js
+++ /dev/null
@@ -1,30 +0,0 @@
-// if jQuery was loaded, let's make it noConflict here.
-if ('function' === typeof jQuery && 'function' === typeof jQuery.noConflict) {
-    jQuery.noConflict();
-}
-
-/**
- * Some browser detection
- */
-var clientPC  = navigator.userAgent.toLowerCase(); // Get client info
-var is_macos  = navigator.appVersion.indexOf('Mac') != -1;
-var is_gecko  = ((clientPC.indexOf('gecko')!=-1) && (clientPC.indexOf('spoofer')==-1) &&
-                (clientPC.indexOf('khtml') == -1) && (clientPC.indexOf('netscape/7.0')==-1));
-var is_safari = ((clientPC.indexOf('applewebkit')!=-1) && (clientPC.indexOf('spoofer')==-1));
-var is_khtml  = (navigator.vendor == 'KDE' || ( document.childNodes && !document.all && !navigator.taintEnabled ));
-if (clientPC.indexOf('opera')!=-1) {
-    var is_opera = true;
-    var is_opera_preseven = (window.opera && !document.childNodes);
-    var is_opera_seven = (window.opera && document.childNodes);
-}
-
-/**
- * Handler to close all open Popups
- */
-function closePopups(){
-    jQuery('div.JSpopup').hide();
-}
-
-jQuery(function () {
-    jQuery(document).click(closePopups);
-});
diff --git a/wiki/lib/scripts/search.js b/wiki/lib/scripts/search.js
deleted file mode 100644
index 3631708..0000000
--- a/wiki/lib/scripts/search.js
+++ /dev/null
@@ -1,48 +0,0 @@
-jQuery(function () {
-    'use strict';
-
-    const $searchForm = jQuery('.search-results-form');
-    if (!$searchForm.length) {
-        return;
-    }
-
-    const $toggleAssistanceButton = jQuery('<button>')
-        .addClass('toggleAssistant')
-        .attr('type', 'button')
-        .attr('aria-expanded', 'false')
-        .text(LANG.search_toggle_tools)
-        .prependTo($searchForm.find('fieldset'))
-    ;
-
-    $toggleAssistanceButton.on('click', function () {
-        jQuery('.advancedOptions').toggle(0, function () {
-            var $me = jQuery(this);
-            if ($me.attr('aria-hidden')) {
-                $me.removeAttr('aria-hidden');
-                $toggleAssistanceButton.attr('aria-expanded', 'true');
-                DokuCookie.setValue('sa', 'on');
-            } else {
-                $me.attr('aria-hidden', 'true');
-                $toggleAssistanceButton.attr('aria-expanded', 'false');
-                DokuCookie.setValue('sa', 'off');
-            }
-        });
-    });
-
-    if (DokuCookie.getValue('sa') === 'on') {
-        $toggleAssistanceButton.click();
-    }
-
-    $searchForm.find('.advancedOptions .toggle div.current').on('click', function () {
-        var $me = jQuery(this);
-        $me.parent().siblings().removeClass('open');
-        $me.parent().siblings().find('ul:first').attr('aria-expanded', 'false');
-        $me.parent().toggleClass('open');
-        if ($me.parent().hasClass('open')) {
-            $me.parent().find('ul:first').attr('aria-expanded', 'true');
-        } else {
-            $me.parent().find('ul:first').attr('aria-expanded', 'false');
-        }
-    });
-
-});
diff --git a/wiki/lib/scripts/textselection.js b/wiki/lib/scripts/textselection.js
deleted file mode 100644
index 16874ba..0000000
--- a/wiki/lib/scripts/textselection.js
+++ /dev/null
@@ -1,152 +0,0 @@
-/**
- * Text selection related functions.
- */
-
-/**
- * selection prototype
- *
- * Object that capsulates the selection in a textarea. Returned by DWgetSelection.
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- */
-function selection_class(){
-    this.start     = 0;
-    this.end       = 0;
-    this.obj       = null;
-    this.scroll    = 0;
-    this.fix       = 0;
-
-    this.getLength = function(){
-        return this.end - this.start;
-    };
-
-    this.getText = function(){
-        return (!this.obj) ? '' : this.obj.value.substring(this.start,this.end);
-    };
-}
-
-/**
- * Get current selection/cursor position in a given textArea
- *
- * @link   http://groups.drupal.org/node/1210
- * @author Andreas Gohr <andi@splitbrain.org>
- * @link   http://linebyline.blogspot.com/2006/11/textarea-cursor-position-in-internet.html
- * @returns object - a selection object
- */
-function DWgetSelection(textArea) {
-    var sel = new selection_class();
-
-    textArea.focus();
-    sel.obj   = textArea;
-    sel.start  = textArea.selectionStart;
-    sel.end    = textArea.selectionEnd;
-    sel.scroll = textArea.scrollTop;
-    return sel;
-}
-
-/**
- * Set the selection
- *
- * You need to get a selection object via DWgetSelection() first, then modify the
- * start and end properties and pass it back to this function.
- *
- * @link http://groups.drupal.org/node/1210
- * @author Andreas Gohr <andi@splitbrain.org>
- * @param {selection_class} selection  a selection object as returned by DWgetSelection()
- */
-function DWsetSelection(selection){
-    selection.obj.setSelectionRange(selection.start, selection.end);
-    if(selection.scroll) selection.obj.scrollTop = selection.scroll;
-}
-
-/**
- * Inserts the given text at the current cursor position or replaces the current
- * selection
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- * @param {string}  text           the new text to be pasted
- * @param {selection_class}  selection     selection object returned by DWgetSelection
- * @param {int}     opts.startofs  number of charcters at the start to skip from new selection
- * @param {int}     opts.endofs    number of characters at the end to skip from new selection
- * @param {boolean} opts.nosel     set true if new text should not be selected
- */
-function pasteText(selection,text,opts){
-    if(!opts) opts = {};
-    // replace the content
-
-    selection.obj.value =
-        selection.obj.value.substring(0, selection.start) + text +
-        selection.obj.value.substring(selection.end, selection.obj.value.length);
-
-    // set new selection
-    if (is_opera) {
-        // Opera replaces \n by \r\n when inserting text.
-        selection.end = selection.start + text.replace(/\r?\n/g, '\r\n').length;
-    } else {
-        selection.end = selection.start + text.length;
-    }
-
-
-    // modify the new selection if wanted
-    if(opts.startofs) selection.start += opts.startofs;
-    if(opts.endofs)   selection.end   -= opts.endofs;
-
-    // no selection wanted? set cursor to end position
-    if(opts.nosel) selection.start = selection.end;
-
-    DWsetSelection(selection);
-}
-
-
-/**
- * Format selection
- *
- * Apply tagOpen/tagClose to selection in textarea, use sampleText instead
- * of selection if there is none.
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- */
-function insertTags(textAreaID, tagOpen, tagClose, sampleText){
-    var txtarea = jQuery('#' + textAreaID)[0];
-
-    var selection = DWgetSelection(txtarea);
-    var text = selection.getText();
-    var opts;
-
-    // don't include trailing space in selection
-    if(text.charAt(text.length - 1) == ' '){
-        selection.end--;
-        text = selection.getText();
-    }
-
-    if(!text){
-        // nothing selected, use the sample text and select it
-        text = sampleText;
-        opts = {
-            startofs: tagOpen.length,
-            endofs: tagClose.length
-        };
-    }else{
-        // place cursor at the end
-        opts = {
-            nosel: true
-        };
-    }
-
-    // surround with tags
-    text = tagOpen + text + tagClose;
-
-    // do it
-    pasteText(selection,text,opts);
-}
-
-/**
- * Wraps around pasteText() for backward compatibility
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- */
-function insertAtCarret(textAreaID, text){
-    var txtarea = jQuery('#' + textAreaID)[0];
-    var selection = DWgetSelection(txtarea);
-    pasteText(selection,text,{nosel: true});
-}
diff --git a/wiki/lib/scripts/toolbar.js b/wiki/lib/scripts/toolbar.js
deleted file mode 100644
index b766f8b..0000000
--- a/wiki/lib/scripts/toolbar.js
+++ /dev/null
@@ -1,282 +0,0 @@
-// used to identify pickers
-var pickercounter=0;
-
-/**
- * Create a toolbar
- *
- * @param  string tbid       ID of the element where to insert the toolbar
- * @param  string edid       ID of the editor textarea
- * @param  array  tb         Associative array defining the buttons
- * @param  bool   allowblock Allow buttons creating multiline content
- * @author Andreas Gohr <andi@splitbrain.org>
- */
-function initToolbar(tbid,edid,tb, allowblock){
-    var $toolbar, $edit;
-    if (typeof tbid == 'string') {
-        $toolbar = jQuery('#' + tbid);
-    } else {
-        $toolbar = jQuery(tbid);
-    }
-
-    $edit = jQuery('#' + edid);
-
-    if ($toolbar.length == 0 || $edit.length == 0 || $edit.attr('readOnly')) {
-        return;
-    }
-
-    if (typeof allowblock === 'undefined') {
-        allowblock = true;
-    }
-
-    //empty the toolbar area:
-    $toolbar.html('');
-
-    jQuery.each(tb, function (k, val) {
-        if (!tb.hasOwnProperty(k) || (!allowblock && val.block === true)) {
-            return;
-        }
-        var actionFunc, $btn;
-
-        // create new button (jQuery object)
-        $btn = jQuery(createToolButton(val.icon, val.title, val.key, val.id,
-                                       val['class']));
-
-        // type is a tb function -> assign it as onclick
-        actionFunc = 'tb_'+val.type;
-        if( jQuery.isFunction(window[actionFunc]) ){
-            $btn.on('click', bind(window[actionFunc],$btn,val,edid) );
-            $toolbar.append($btn);
-            return;
-        }
-
-        // type is a init function -> execute it
-        actionFunc = 'addBtnAction'+val.type.charAt(0).toUpperCase()+val.type.substring(1);
-        if( jQuery.isFunction(window[actionFunc]) ){
-            var pickerid = window[actionFunc]($btn, val, edid);
-            if(pickerid !== ''){
-                $toolbar.append($btn);
-                $btn.attr('aria-controls', pickerid);
-                if (actionFunc === 'addBtnActionPicker') {
-                    $btn.attr('aria-haspopup', 'true');
-                }
-            }
-            return;
-        }
-
-        alert('unknown toolbar type: '+val.type+'  '+actionFunc);
-    });
-}
-
-/**
- * Button action for format buttons
- *
- * @param  DOMElement btn   Button element to add the action to
- * @param  array      props Associative array of button properties
- * @param  string     edid  ID of the editor textarea
- * @author Gabriel Birke <birke@d-scribe.de>
- * @author Andreas Gohr <andi@splitbrain.org>
- */
-function tb_format(btn, props, edid) {
-    var sample = props.sample || props.title;
-    insertTags(edid,
-               fixtxt(props.open),
-               fixtxt(props.close),
-               fixtxt(sample));
-    pickerClose();
-    return false;
-}
-
-/**
- * Button action for format buttons
- *
- * This works exactly as tb_format() except that, if multiple lines
- * are selected, each line will be formatted seperately
- *
- * @param  DOMElement btn   Button element to add the action to
- * @param  array      props Associative array of button properties
- * @param  string     edid  ID of the editor textarea
- * @author Gabriel Birke <birke@d-scribe.de>
- * @author Andreas Gohr <andi@splitbrain.org>
- */
-function tb_formatln(btn, props, edid) {
-    var sample = props.sample || props.title,
-        opts,
-        selection = DWgetSelection(jQuery('#'+edid)[0]);
-
-    sample = fixtxt(sample);
-    props.open  = fixtxt(props.open);
-    props.close = fixtxt(props.close);
-
-    // is something selected?
-    if(selection.getLength()){
-        sample = selection.getText();
-        opts = {nosel: true};
-    }else{
-        opts = {
-            startofs: props.open.length,
-            endofs: props.close.length
-        };
-    }
-
-    sample = sample.split("\n").join(props.close+"\n"+props.open);
-    sample = props.open+sample+props.close;
-
-    pasteText(selection,sample,opts);
-
-    pickerClose();
-    return false;
-}
-
-/**
- * Button action for insert buttons
- *
- * @param  DOMElement btn   Button element to add the action to
- * @param  array      props Associative array of button properties
- * @param  string     edid  ID of the editor textarea
- * @author Gabriel Birke <birke@d-scribe.de>
- * @author Andreas Gohr <andi@splitbrain.org>
- */
-function tb_insert(btn, props, edid) {
-    insertAtCarret(edid,fixtxt(props.insert));
-    pickerClose();
-    return false;
-}
-
-/**
- * Button action for the media popup
- *
- * @param  DOMElement btn   Button element to add the action to
- * @param  array      props Associative array of button properties
- * @param  string     edid  ID of the editor textarea
- * @author Andreas Gohr <andi@splitbrain.org>
- */
-function tb_mediapopup(btn, props, edid) {
-    window.open(
-        DOKU_BASE+props.url+encodeURIComponent(NS)+'&edid='+encodeURIComponent(edid),
-        props.name,
-        props.options);
-    return false;
-}
-
-/**
- * Button action for automatic headlines
- *
- * Insert a new headline based on the current section level
- *
- * @param  DOMElement btn   Button element to add the action to
- * @param  array      props Associative array of button properties
- * @param  string     edid  ID of the editor textarea
- * @author Andreas Gohr <andi@splitbrain.org>
- */
-function tb_autohead(btn, props, edid){
-    var lvl = currentHeadlineLevel(edid),
-        tags;
-
-    // determine new level
-    lvl += props.mod;
-    if(lvl < 1) lvl = 1;
-    if(lvl > 5) lvl = 5;
-
-    tags = (new Array(8 - lvl)).join('=');
-    insertTags(edid, tags+' ', ' '+tags+"\n", props.text);
-    pickerClose();
-    return false;
-}
-
-
-/**
- * Add button action for picker buttons and create picker element
- *
- * @param  jQuery      btn   Button element to add the action to
- * @param  array      props Associative array of button properties
- * @param  string     edid  ID of the editor textarea
- * @return boolean    If button should be appended
- * @author Gabriel Birke <birke@d-scribe.de>
- */
-function addBtnActionPicker($btn, props, edid) {
-    var pickerid = 'picker'+(pickercounter++);
-    var picker = createPicker(pickerid, props, edid);
-    jQuery(picker).attr('aria-hidden', 'true');
-
-    $btn.click(
-        function(e) {
-            pickerToggle(pickerid,$btn);
-            e.preventDefault();
-            return '';
-        }
-    );
-
-    return pickerid;
-}
-
-/**
- * Add button action for the link wizard button
- *
- * @param  DOMElement btn   Button element to add the action to
- * @param  array      props Associative array of button properties
- * @param  string     edid  ID of the editor textarea
- * @return boolean    If button should be appended
- * @author Andreas Gohr <gohr@cosmocode.de>
- */
-function addBtnActionLinkwiz($btn, props, edid) {
-    dw_linkwiz.init(jQuery('#'+edid));
-    jQuery($btn).click(function(e){
-        dw_linkwiz.val = props;
-        dw_linkwiz.toggle();
-        e.preventDefault();
-        return '';
-    });
-    return 'link__wiz';
-}
-
-
-/**
- * Show/Hide a previously created picker window
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- */
-function pickerToggle(pickerid,$btn){
-    var $picker = jQuery('#' + pickerid),
-        pos = $btn.offset();
-    if ($picker.hasClass('a11y')) {
-        $picker.removeClass('a11y').attr('aria-hidden', 'false');
-    } else {
-        $picker.addClass('a11y').attr('aria-hidden', 'true');
-    }
-    var picker_left = pos.left + 3,
-        picker_width = $picker.width(),
-        window_width = jQuery(window).width();
-    if (picker_width > 300) {
-        $picker.css("max-width", "300");
-        picker_width = 300;
-    }
-    if ((picker_left + picker_width + 40) > window_width) {
-        picker_left = window_width - picker_width - 40;
-    }
-    if (picker_left < 0) {
-        picker_left = 0;
-    }
-    $picker.offset({left: picker_left, top: pos.top+$btn[0].offsetHeight+3});
-}
-
-/**
- * Close all open pickers
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- */
-function pickerClose(){
-    jQuery('.picker').addClass('a11y');
-}
-
-
-/**
- * Replaces \n with linebreaks
- */
-function fixtxt(str){
-    return str.replace(/\\n/g,"\n");
-}
-
-jQuery(function () {
-    initToolbar('tool__bar','wiki__text',toolbar);
-    jQuery('#tool__bar').attr('role', 'toolbar');
-});
diff --git a/wiki/lib/scripts/tree.js b/wiki/lib/scripts/tree.js
deleted file mode 100644
index 9b2d245..0000000
--- a/wiki/lib/scripts/tree.js
+++ /dev/null
@@ -1,107 +0,0 @@
-jQuery.fn.dw_tree = function(overrides) {
-    var dw_tree = {
-
-        /**
-         * Delay in ms before showing the throbber.
-         * Used to skip the throbber for fast AJAX calls.
-         */
-        throbber_delay: 500,
-
-        $obj: this,
-
-        toggle_selector: 'a.idx_dir',
-
-        init: function () {
-            this.$obj.on('click', this.toggle_selector, this,
-                               this.toggle);
-            jQuery('ul:first', this.$obj).attr('role', 'tree');
-            jQuery('ul', this.$obj).not(':first').attr('role', 'group');
-            jQuery('li', this.$obj).attr('role', 'treeitem');
-            jQuery('li.open > ul', this.$obj).attr('aria-expanded', 'true');
-            jQuery('li.closed > ul', this.$obj).attr('aria-expanded', 'false');
-            jQuery('li.closed', this.$obj).attr('aria-live', 'assertive');
-        },
-
-        /**
-         * Open or close a subtree using AJAX
-         * The contents of subtrees are "cached" until the page is reloaded.
-         * A "loading" indicator is shown only when the AJAX call is slow.
-         *
-         * @author Andreas Gohr <andi@splitbrain.org>
-         * @author Ben Coburn <btcoburn@silicodon.net>
-         * @author Pierre Spring <pierre.spring@caillou.ch>
-         */
-        toggle: function (e) {
-            var $listitem, $sublist, timeout, $clicky, show_sublist, dw_tree, opening;
-
-            e.preventDefault();
-
-            dw_tree = e.data;
-            $clicky = jQuery(this);
-            $listitem = $clicky.closest('li');
-            $sublist = $listitem.find('ul').first();
-            opening = $listitem.hasClass('closed');
-            dw_tree.toggle_display($clicky, opening);
-            if ($sublist.is(':visible')) {
-                $listitem.removeClass('open').addClass('closed');
-                $sublist.attr('aria-expanded', 'false');
-            } else {
-                $listitem.removeClass('closed').addClass('open');
-                $sublist.attr('aria-expanded', 'true');
-            }
-
-            // if already open, close by hiding the sublist
-            if (!opening) {
-                $sublist.dw_hide();
-                return;
-            }
-
-            show_sublist = function (data) {
-                $sublist.hide();
-                if (typeof data !== 'undefined') {
-                    $sublist.html(data);
-                    $sublist.parent().attr('aria-busy', 'false').removeAttr('aria-live');
-                    jQuery('li.closed', $sublist).attr('aria-live', 'assertive');
-                }
-                if ($listitem.hasClass('open')) {
-                    // Only show if user didn’t close the list since starting
-                    // to load the content
-                    $sublist.dw_show();
-                }
-            };
-
-            // just show if already loaded
-            if ($sublist.length > 0) {
-                show_sublist();
-                return;
-            }
-
-            //prepare the new ul
-            $sublist = jQuery('<ul class="idx" role="group"/>');
-            $listitem.append($sublist);
-
-            timeout = window.setTimeout(
-                bind(show_sublist, '<li aria-busy="true"><img src="' + DOKU_BASE + 'lib/images/throbber.gif" alt="loading..." title="loading..." /></li>'), dw_tree.throbber_delay);
-
-            dw_tree.load_data(function (data) {
-                                  window.clearTimeout(timeout);
-                                  show_sublist(data);
-                              }, $clicky);
-        },
-
-        toggle_display: function ($clicky, opening) {
-        },
-
-        load_data: function (show_data, $clicky) {
-            show_data();
-        }
-    };
-
-    jQuery.extend(dw_tree, overrides);
-
-    if (!overrides.deferInit) {
-        dw_tree.init();
-    }
-
-    return dw_tree;
-};
diff --git a/wiki/lib/styles/all.css b/wiki/lib/styles/all.css
deleted file mode 100644
index 1ae9a02..0000000
--- a/wiki/lib/styles/all.css
+++ /dev/null
@@ -1,68 +0,0 @@
-/**
- * Basic screen and print styles. These styles are needed for basic DokuWiki functions
- * regardless of the used template. Templates can override them of course
- */
-
-div.clearer {
-    clear: both;
-    font-size: 0;
-    line-height: 0;
-    height: 0;
-    overflow: hidden;
-}
-
-/* one of the many clearfix versions */
-.group {
-    display: inline-block;
-}
-.group {
-    display: block;
-}
-.group:before,
-.group:after {
-    content: "";
-    display: table;
-}
-.group:after {
-    clear: both;
-}
-
-div.no {
-    display: inline;
-    margin: 0;
-    padding: 0;
-}
-
-.hidden {
-    display: none;
-}
-
-/* image alignment */
-.medialeft {
-    float: left;
-}
-.mediaright {
-    float: right;
-}
-.mediacenter {
-    display: block;
-    margin-left: auto;
-    margin-right: auto;
-}
-
-/* table cell alignment */
-.leftalign   { text-align: left;   }
-.centeralign { text-align: center; }
-.rightalign  { text-align: right;  }
-[dir=rtl] .leftalign   { text-align: left;   }
-[dir=rtl] .centeralign { text-align: center; }
-[dir=rtl] .rightalign  { text-align: right;  }
-
-/* underline */
-em.u {
-    font-style: normal;
-    text-decoration: underline;
-}
-em em.u {
-    font-style: italic;
-}
diff --git a/wiki/lib/styles/feed.css b/wiki/lib/styles/feed.css
deleted file mode 100644
index 44b72d7..0000000
--- a/wiki/lib/styles/feed.css
+++ /dev/null
@@ -1,63 +0,0 @@
-rss channel, feed, RDF {
-  font: 80% "Lucida Grande", Verdana, Lucida, Helvetica, Arial, sans-serif;
-  background-color: __background__;
-  color: __text__;
-  margin: 0;
-  padding: 0;
-}
-
-
-link, description, language, managingEditor, copyright, lastBuildDate, date,
-pubDate, generator, webMaster, ttl, docs, tagline, author, copyright,
-generator, content, created, issued, modified, subject, id, format, creator,
-category, image {
-  display: none;
-}
-
-item link, entry id {
-  display: block;
-  color: __extern__;
-  text-decoration: underline;
-}
-
-channel title, feed title {
-  display: block;
-  font-size: 200%;
-  font-weight: bolder;
-  color: __extern__;
-  text-decoration: none;
-  border-bottom: 20px solid __background_alt__;
-}
-
-:root:before {
-  content: "This data file is meant to be read in a XML feed reader. See document source."
-}
-
-item, entry {
-  display: block;
-  margin: 1em 180px 1em 1em;
-  border-bottom: 1px solid __border__;
-  padding-bottom: 1em;
-}
-
-item title, entry title {
-  display: block;
-  background: transparent none;
-  border: 0px solid __background_other__;
-  padding: 0;
-  color: __text_alt__;
-  font-size: 1.4em;
-  font-weight: bold;
-}
-
-item pubDate, entry modified, item date {
-  display: inline;
-  color: __text_neu__;
-  font: 1em trebuchet ms, arial, helvetica, sans-serif;
-}
-
-item description, entry summary {
-  display: block;
-  clear: both;
-  padding-top: 0.5em;
-}
diff --git a/wiki/lib/styles/geshi.less b/wiki/lib/styles/geshi.less
deleted file mode 100644
index 69749e8..0000000
--- a/wiki/lib/styles/geshi.less
+++ /dev/null
@@ -1,144 +0,0 @@
-/**
- * GeSHi syntax highlighting styles
- *
- * Generated with https://www.dokuwiki.org/tips:geshi_style_builder
- * Cleaned up with http://cleancss.com/
- * Manulally LESSified
- */
-.code {
-    .co0 {
-        color: #666666;
-        font-style: italic;
-    }
-
-    .co4 {
-        color: #cc0000;
-        font-style: italic;
-    }
-
-    .es5 {
-        color: #006699;
-        font-weight: bold;
-    }
-
-    .es6 {
-        color: #009933;
-        font-weight: bold;
-    }
-
-    .kw2 {
-        color: #000000;
-        font-weight: bold;
-    }
-
-    .kw5 {
-        color: #008000;
-    }
-
-    .kw6 {
-        color: #f08;
-        font-weight: bold;
-    }
-
-    .me0 {
-        color: #004000;
-    }
-
-    .nu0 {
-        color: #cc66cc;
-    }
-
-    .re0 {
-        color: #0000ff;
-    }
-
-    .re3 {
-        color: #ff3333;
-        font-weight: bold;
-    }
-
-    .re4 {
-        color: #009999;
-    }
-
-    .re5 {
-        color: #660033;
-    }
-
-    .re7 {
-        color: #991111;
-    }
-
-    .re8 {
-        color: #00b000;
-    }
-
-    .sc-2 {
-        color: #404040;
-    }
-
-    .sy3 {
-        color: #000040;
-    }
-
-    .br0, .sy0 {
-        color: #66cc66;
-    }
-
-    .co1, .coMULTI, .sc-1 {
-        color: #808080;
-        font-style: italic;
-    }
-
-    .co2, .sy1 {
-        color: #339933;
-    }
-
-    .co3, .sy4 {
-        color: #008080;
-    }
-
-    .es0, .es1, .esHARD {
-        color: #000099;
-        font-weight: bold;
-    }
-
-    .es2, .es3, .es4 {
-        color: #660099;
-        font-weight: bold;
-    }
-
-    .kw1, .kw8 {
-        color: #b1b100;
-    }
-
-    .kw10, .kw11, .kw12, .kw9 {
-        color: #003399;
-        font-weight: bold;
-    }
-
-    .kw13, .kw14, .kw15, .kw16, .me1, .me2 {
-        color: #006600;
-    }
-
-    .kw3, .kw7, .sy2 {
-        color: #000066;
-    }
-
-    .kw4, .re2 {
-        color: #993333;
-    }
-
-    .re1, .st0, .st_h {
-        color: #ff0000;
-    }
-
-    li, .li1 {
-        font-weight: normal;
-        vertical-align:top;
-    }
-
-    .ln-xtra {
-        background-color: #ffc;
-    }
-}
diff --git a/wiki/lib/styles/index.html b/wiki/lib/styles/index.html
deleted file mode 100644
index 977f90e..0000000
--- a/wiki/lib/styles/index.html
+++ /dev/null
@@ -1,11 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<meta http-equiv="refresh" content="0; URL=../../" />
-<meta name="robots" content="noindex" />
-<title>nothing here...</title>
-</head>
-<body>
-<!-- this is just here to prevent directory browsing -->
-</body>
-</html>
diff --git a/wiki/lib/styles/print.css b/wiki/lib/styles/print.css
deleted file mode 100644
index a5c39e8..0000000
--- a/wiki/lib/styles/print.css
+++ /dev/null
@@ -1,15 +0,0 @@
-/**
- * Basic print styles. These styles are needed for basic DokuWiki functions
- * regardless of the used template. Templates can override them of course
- */
-
-div.error, /* messages with msg() */
-div.info,
-div.success,
-div.notify,
-.secedit, /* section edit button */
-.a11y, /* accessibly hidden text */
-.JSpopup, /* modal windows */
-#link__wiz {
-    display: none;
-}
diff --git a/wiki/lib/styles/screen.css b/wiki/lib/styles/screen.css
deleted file mode 100644
index bbc1e86..0000000
--- a/wiki/lib/styles/screen.css
+++ /dev/null
@@ -1,96 +0,0 @@
-/**
- * Basic screen styles. These styles are needed for basic DokuWiki functions
- * regardless of the used template. Templates can override them of course
- */
-
-/* messages with msg() */
-div.error,
-div.info,
-div.success,
-div.notify {
-    color: #000;
-    background-repeat: no-repeat;
-    background-position: 8px 50%;
-    border: 1px solid;
-    font-size: 90%;
-    margin: 0 0 0.5em;
-    padding: 0.4em;
-    padding-left: 32px;
-    overflow: hidden;
-    border-radius: 5px;
-}
-
-[dir=rtl] div.error,
-[dir=rtl] div.info,
-[dir=rtl] div.success,
-[dir=rtl] div.notify {
-    background-position: 99% 50%;
-    padding-left: .4em;
-    padding-right: 32px;
-}
-
-div.error {
-    background-color: #fcc;
-    background-image: url(../images/error.png);
-    border-color: #ebb;
-}
-
-div.info {
-    background-color: #ccf;
-    background-image: url(../images/info.png);
-    border-color: #bbe;
-}
-
-div.success {
-    background-color: #cfc;
-    background-image: url(../images/success.png);
-    border-color: #beb;
-}
-
-div.notify {
-    background-color: #ffc;
-    background-image: url(../images/notify.png);
-    border-color: #eeb;
-}
-
-/* modal windows */
-.JSpopup,
-#link__wiz {
-    position: absolute;
-    background-color: #fff;
-    color: #000;
-    z-index: 20;
-    overflow: hidden;
-}
-
-#link__wiz .ui-dialog-content {
-    padding-left: 0;
-    padding-right: 0;
-}
-
-/* media manager popup toggle buttons */
-
-#media__popup_content button.button {
-    border: 1px outset;
-}
-
-#media__popup_content button.selected {
-    border-style: inset;
-}
-
-/* hide something accessibly
-   (e.g. for screen readers or to keep access keys working) */
-.a11y {
-    position: absolute !important;
-    left: -99999em !important;
-    top: auto !important;
-    width: 1px !important;
-    height: 1px !important;
-    overflow: hidden !important;
-}
-[dir=rtl] .a11y {
-    left: auto !important;
-    right: -99999em !important;
-}
-
-@import "geshi.less";
diff --git a/wiki/lib/tpl/dokuwiki/css/_admin.less b/wiki/lib/tpl/dokuwiki/css/_admin.less
deleted file mode 100644
index 263b34d..0000000
--- a/wiki/lib/tpl/dokuwiki/css/_admin.less
+++ /dev/null
@@ -1,61 +0,0 @@
-.dokuwiki div.ui-admin {
-
-    /* main task grouped in two columns */
-    ul.admin_tasks {
-        float: left;
-        width: 40%;
-        list-style-type: none;
-        font-size: 1.125em;
-    }
-    [dir=rtl] & ul.admin_tasks {
-        float: right;
-    }
-
-    /* general menu item styling */
-    ul {
-        padding: 0;
-        li {
-            margin: 0 0 1em 0;
-            font-weight: bold;
-            list-style-type: none;
-            white-space: nowrap;
-
-            a span {
-                display: inline-block;
-
-                &.icon {
-                    width: 1.5em;
-                    min-height: 1.5em;
-                    margin: 0 0.5em;
-                    vertical-align: top;
-
-                    svg {
-                        width: 1.5em;
-                        height: 1.5em;
-                        fill: @ini_link;
-                        display: inline-block;
-                        path {
-                            fill: @ini_link;
-                        }
-                    }
-                }
-
-                &.prompt {
-                    white-space: normal;
-                }
-            }
-        }
-    }
-
-    /* DokuWiki version */
-    #admin__version {
-        clear: left;
-        float: right;
-        color: @ini_text_neu;
-        background-color: inherit;
-    }
-    [dir=rtl] & #admin__version {
-        clear: right;
-        float: left;
-    }
-}
diff --git a/wiki/lib/tpl/dokuwiki/css/_diff.css b/wiki/lib/tpl/dokuwiki/css/_diff.css
deleted file mode 100644
index bc56a37..0000000
--- a/wiki/lib/tpl/dokuwiki/css/_diff.css
+++ /dev/null
@@ -1,137 +0,0 @@
-/**
- * This file provides styles for the diff view, which shows you
- * differences between two versions of a page (?do=diff).
- */
-
-.dokuwiki table.diff {
-    width: 100%;
-    border-width: 0;
-}
-.dokuwiki table.diff th,
-.dokuwiki table.diff td {
-    vertical-align: top;
-    padding: 0;
-    border-width: 0;
-    /* no style.ini colours because deleted and added lines have a fixed background colour */
-    background-color: #fff;
-    color: #333;
-}
-
-/* table header */
-.dokuwiki table.diff th {
-    border-bottom: 1px solid @ini_border;
-    font-size: 110%;
-    font-weight: normal;
-}
-.dokuwiki table.diff th a {
-    font-weight: bold;
-}
-.dokuwiki table.diff th span.user {
-    font-size: .9em;
-}
-.dokuwiki table.diff th span.sum {
-    font-size: .9em;
-    font-weight: bold;
-}
-.dokuwiki table.diff th.minor {
-    color: #999;
-}
-.dokuwiki table.diff_sidebyside th {
-    width: 50%;
-}
-
-/* table body */
-.dokuwiki table.diff .diff-lineheader {
-    width: .7em;
-    text-align: right;
-}
-[dir=rtl] .dokuwiki table.diff .diff-lineheader {
-    text-align: left;
-}
-.dokuwiki table.diff .diff-lineheader,
-.dokuwiki table.diff td {
-    font-family: Consolas, "Andale Mono WT", "Andale Mono", "Bitstream Vera Sans Mono", "Nimbus Mono L", Monaco, "Courier New", monospace;
-}
-.dokuwiki table.diff td.diff-blockheader {
-    font-weight: bold;
-}
-.dokuwiki table.diff .diff-addedline {
-    background-color: #cfc;
-    color: inherit;
-}
-.dokuwiki table.diff .diff-deletedline {
-    background-color: #fdd;
-    color: inherit;
-}
-.dokuwiki table.diff td.diff-context {
-    background-color: #eee;
-    color: inherit;
-}
-.dokuwiki table.diff td.diff-addedline strong,
-.dokuwiki table.diff td.diff-deletedline strong {
-    color: #f00;
-    background-color: inherit;
-    font-weight: bold;
-}
-
-/* diff options */
-
-.dokuwiki .diffoptions form {
-    float: left;
-}
-.dokuwiki .diffoptions p {
-    float: right;
-}
-
-/* diff nav */
-
-.dokuwiki table.diff_sidebyside td.diffnav {
-    padding-bottom: .7em;
-}
-.dokuwiki .diffnav a {
-    display: inline-block;
-    vertical-align: middle;
-}
-.dokuwiki .diffnav a span {
-    display: none;
-}
-
-.dokuwiki .diffnav a:hover,
-.dokuwiki .diffnav a:active,
-.dokuwiki .diffnav a:focus {
-    background-color: @ini_background_alt;
-    text-decoration: none;
-}
-
-.dokuwiki .diffnav a:before {
-    display: inline-block;
-    line-height: 1;
-    padding: .2em .4em;
-    border: 1px solid @ini_border;
-    border-radius: 2px;
-    color: @ini_text;
-}
-
-.dokuwiki .diffnav a.diffprevrev:before {
-    content: '\25C0'; /* left triangle */
-}
-.dokuwiki .diffnav a.diffnextrev:before,
-.dokuwiki .diffnav a.difflastrev:before {
-    content: '\25B6'; /* right triangle */
-}
-.dokuwiki .diffnav a.diffbothprevrev:before {
-    content: '\25C0\25C0';
-}
-.dokuwiki .diffnav a.diffbothnextrev:before {
-    content: '\25B6\25B6';
-}
-
-.dokuwiki .diffnav select {
-    width: 60%;
-    min-width: 9em;
-    height: 1.5em; /* height is necessary for longer options in Webkit */
-}
-
-.dokuwiki .diffnav select option[selected] {
-    font-weight: bold;
-}
diff --git a/wiki/lib/tpl/dokuwiki/css/_edit.css b/wiki/lib/tpl/dokuwiki/css/_edit.css
deleted file mode 100644
index 526d49b..0000000
--- a/wiki/lib/tpl/dokuwiki/css/_edit.css
+++ /dev/null
@@ -1,140 +0,0 @@
-/**
- * This file provides styles for the edit view (?do=edit), preview
- * and section edit buttons.
- */
-
-/* edit view
-********************************************************************/
-
-.dokuwiki div.editBox {
-}
-
-/*____________ toolbar ____________*/
-
-.dokuwiki div.toolbar {
-    margin-bottom: .5em;
-}
-#draft__status {
-    float: right;
-    color: @ini_text_alt;
-    background-color: inherit;
-}
-[dir=rtl] #draft__status {
-    float: left;
-}
-#tool__bar {
-    float: left;
-}
-[dir=rtl] #tool__bar {
-    float: right;
-}
-
-/* buttons inside of toolbar */
-.dokuwiki div.toolbar button.toolbutton {
-}
-/* picker popups (outside of .dokuwiki) */
-div.picker {
-    width: 300px;
-    border: 1px solid @ini_border;
-    background-color: @ini_background_alt;
-    color: inherit;
-}
-/* picker for headlines */
-div.picker.pk_hl {
-    width: auto;
-}
-
-/* buttons inside of picker */
-div.picker button.pickerbutton,
-div.picker button.toolbutton {
-    padding: .1em .35em;
-    border-width: 0;
-}
-
-/*____________ edit textarea ____________*/
-
-.dokuwiki textarea.edit {
-    width: 100%;
-    margin-bottom: .5em;
-}
-
-/*____________ below the textarea ____________*/
-
-.dokuwiki div.editBar {
-    overflow: hidden;
-    margin-bottom: .5em;
-}
-
-/* size and wrap controls */
-#size__ctl {
-    float: right;
-}
-[dir=rtl] #size__ctl {
-    float: left;
-}
-#size__ctl img {
-    cursor: pointer;
-}
-
-/* edit buttons */
-.dokuwiki .editBar .editButtons {
-    display: inline;
-    margin-right: 1em;
-}
-[dir=rtl] .dokuwiki .editBar .editButtons {
-    margin-right: 0;
-    margin-left: 1em;
-}
-.dokuwiki .editBar .editButtons button {
-}
-
-/* summary input and minor changes checkbox */
-.dokuwiki .editBar .summary {
-    display: inline;
-}
-.dokuwiki .editBar .summary label {
-    vertical-align: middle;
-    white-space: nowrap;
-}
-.dokuwiki .editBar .summary label span {
-    vertical-align: middle;
-}
-.dokuwiki .editBar .summary input {
-}
-/* change background colour if summary is missing */
-.dokuwiki .editBar .summary input.missing {
-    color: @ini_text;
-    background-color: #ffcccc;
-}
-
-/* preview
-********************************************************************/
-
-.dokuwiki div.preview {
-    border: dotted @ini_border;
-    border-width: .2em 0;
-    padding: 1.4em 0;
-    margin-bottom: 1.4em;
-}
-
-/* section edit buttons
-********************************************************************/
-
-.dokuwiki .secedit {
-    float: right;
-    margin-top: -1.4em;
-}
-[dir=rtl] .dokuwiki .secedit {
-    float: left;
-}
-.dokuwiki .secedit button {
-    font-size: 75%;
-}
-
-/* style for section highlighting */
-.dokuwiki div.section_highlight {
-    margin: 0 -1em; /* negative side margin = side padding + side border */
-    padding: 0 .5em;
-    border: solid @ini_background_alt;
-    border-width: 0 .5em;
-}
diff --git a/wiki/lib/tpl/dokuwiki/css/_fileuploader.css b/wiki/lib/tpl/dokuwiki/css/_fileuploader.css
deleted file mode 100644
index f300396..0000000
--- a/wiki/lib/tpl/dokuwiki/css/_fileuploader.css
+++ /dev/null
@@ -1,107 +0,0 @@
-/**
- * This file provides the styles for the file uploader
- * used in the media manager (both fullscreen and popup).
- */
-
-.qq-uploader {
-    position: relative;
-    width: 100%;
-}
-
-.qq-uploader .error {
-    color: #f00;
-    background-color: #fff;
-}
-
-/* select file button */
-
-.qq-upload-button {
-    display: inline-block;
-    text-decoration: none;
-    font-size: 100%;
-    cursor: pointer;
-    margin: 1px 1px 5px;
-}
-
-.qq-upload-button-focus {
-    outline: 1px dotted;
-}
-
-/* drop area */
-
-.qq-upload-drop-area {
-    position: absolute;
-    top: 0;
-    left: 0;
-    width: 100%;
-    height: 100%;
-    min-height: 70px;
-    z-index: 2;
-    background: @ini_background_neu;
-    color: @ini_text;
-    text-align: center;
-}
-
-.qq-upload-drop-area span {
-    display: block;
-    position: absolute;
-    top: 50%;
-    width: 100%;
-    margin-top: -8px;
-    font-size: 120%;
-}
-
-.qq-upload-drop-area-active {
-    background: @ini_background_alt;
-}
-
-/* list of files to upload */
-
-div.qq-uploader ul {
-    margin: 0;
-    padding: 0;
-    list-style: none;
-}
-
-.qq-uploader li {
-    margin: 0 0 5px;
-    color: @ini_text;
-}
-
-.qq-uploader li span,
-.qq-uploader li input,
-.qq-uploader li a {
-    margin-right: 5px;
-}
-
-.qq-upload-file {
-    display: block;
-    font-weight: bold;
-}
-
-.qq-upload-spinner {
-    display: inline-block;
-    background: url("../../images/throbber.gif");
-    width: 15px;
-    height: 15px;
-    vertical-align: text-bottom;
-}
-
-.qq-upload-size,
-.qq-upload-cancel {
-    font-size: 85%;
-}
-
-.qq-upload-failed-text {
-    display: none;
-}
-.qq-upload-fail .qq-upload-failed-text {
-    display: inline;
-}
-
-.qq-action-container * {
-    vertical-align: middle;
-}
-.qq-overwrite-check input {
-    margin-left: 10px;
-}
diff --git a/wiki/lib/tpl/dokuwiki/css/_footnotes.css b/wiki/lib/tpl/dokuwiki/css/_footnotes.css
deleted file mode 100644
index a57dfb9..0000000
--- a/wiki/lib/tpl/dokuwiki/css/_footnotes.css
+++ /dev/null
@@ -1,31 +0,0 @@
-/**
- * This file provides styles for footnotes.
- */
-
-/*____________ footnotes inside the text ____________*/
-
-/* link to footnote inside the text */
-.dokuwiki sup a.fn_top {
-}
-/* JSpopup */
-div.insitu-footnote {
-    max-width: 40%;
-    min-width: 5em;
-}
-
-/*____________ footnotes at the bottom of the page ____________*/
-
-.dokuwiki div.footnotes {
-    border-top: 1px solid @ini_border;
-    padding: .5em 0 0 0;
-    margin: 1em 0 0 0;
-    clear: both;
-}
-.dokuwiki div.footnotes div.fn {
-}
-.dokuwiki div.footnotes div.fn div.content {
-    display: inline;
-}
-.dokuwiki div.footnotes div.fn sup a.fn_bot {
-    font-weight: bold;
-}
diff --git a/wiki/lib/tpl/dokuwiki/css/_forms.css b/wiki/lib/tpl/dokuwiki/css/_forms.css
deleted file mode 100644
index bf70fa2..0000000
--- a/wiki/lib/tpl/dokuwiki/css/_forms.css
+++ /dev/null
@@ -1,106 +0,0 @@
-/* TODO: this file is not up to the best standards and will be fixed after an overhaul of the form code */
-
-/**
- * This file provides styles for forms in general and specifically
- * for ?do=
- *   - login
- *   - resendpwd
- *   - register
- *   - profile
- *   - subscribe
- */
-
-/* ---------------- forms ------------------------ */
-
-.dokuwiki form {
-  border: none;
-  display: inline;
-}
-
-.dokuwiki label.block {
-  display: block;
-  text-align: right;
-  font-weight: bold;
-}
-[dir=rtl] .dokuwiki label.block {
-    text-align: left;
-}
-
-.dokuwiki label.simple {
-  display: block;
-  text-align: left;
-  font-weight: normal;
-}
-[dir=rtl] .dokuwiki label.simple {
-    text-align: right;
-}
-
-.dokuwiki label.block select,
-.dokuwiki label.block input.edit {
-  width: 50%;
-}
-
-.dokuwiki label span {
-    vertical-align: middle;
-}
-
-.dokuwiki fieldset {
-  width: 400px;
-  text-align: center;
-  border: 1px solid @ini_border;
-  padding: 0.5em;
-  margin: auto;
-}
-
-
-.dokuwiki input.edit,
-.dokuwiki select.edit {
-  vertical-align: middle;
-}
-.dokuwiki select.edit {
-  padding: 0.1em 0;
-}
-
-
-.dokuwiki button {
-    vertical-align: middle;
-}
-/**
- * Styles for auth forms
- */
-#dw__login label[for="remember__me"] {
-    margin-left: 50%;
-    margin-bottom: 1.4em;
-}
-#dw__login fieldset,
-#dw__resendpwd fieldset,
-#dw__register fieldset {
-    padding-bottom: 0.7em;
-}
-#dw__profiledelete {
-    display: block;
-    margin-top: 2.8em;
-}
-
-/**
- * Styles for the subscription page
- */
-
-#subscribe__form {
-    display: block;
-    width: 400px;
-    text-align: center;
-}
-
-#subscribe__form fieldset {
-    text-align: left;
-    margin: 0.5em 0;
-}
-[dir=rtl] #subscribe__form fieldset {
-    text-align: right;
-}
-
-#subscribe__form label {
-    display: block;
-    margin: 0 0.5em 0.5em;
-}
diff --git a/wiki/lib/tpl/dokuwiki/css/_imgdetail.css b/wiki/lib/tpl/dokuwiki/css/_imgdetail.css
deleted file mode 100644
index a074000..0000000
--- a/wiki/lib/tpl/dokuwiki/css/_imgdetail.css
+++ /dev/null
@@ -1,38 +0,0 @@
-/**
- * This file provides styles for the image detail page (detail.php).
- */
-
-#dokuwiki__detail {
-    padding: 1em;
-}
-#dokuwiki__detail h1 {
-}
-
-#dokuwiki__detail img {
-    float: left;
-    margin: 0 1.5em .5em 0;
-}
-[dir=rtl] #dokuwiki__detail div.content img {
-    float: right;
-    margin-right: 0;
-    margin-left: 1.5em;
-}
-#dokuwiki__detail div.img_detail {
-    float: left;
-}
-[dir=rtl] #dokuwiki__detail div.content div.img_detail {
-    float: right
-}
-
-#dokuwiki__detail div.img_detail h2 {
-}
-#dokuwiki__detail div.img_detail dl {
-}
-#dokuwiki__detail div.img_detail dl dt {
-}
-#dokuwiki__detail div.img_detail dl dd {
-}
-
-#dokuwiki__detail p.back {
-    clear: both;
-}
diff --git a/wiki/lib/tpl/dokuwiki/css/_links.css b/wiki/lib/tpl/dokuwiki/css/_links.css
deleted file mode 100644
index 695f4b8..0000000
--- a/wiki/lib/tpl/dokuwiki/css/_links.css
+++ /dev/null
@@ -1,69 +0,0 @@
-/**
- * This file provides styles for all types of links.
- */
-
-/*____________ links to wiki pages ____________*/
-
-/* existing wikipage */
-.dokuwiki a.wikilink1 {
-}
-/* not existing wikipage */
-.dokuwiki a.wikilink2 {
-    text-decoration: none;
-}
-.dokuwiki a.wikilink2:link,
-.dokuwiki a.wikilink2:visited {
-    border-bottom: 1px dashed;
-}
-.dokuwiki a.wikilink2:hover,
-.dokuwiki a.wikilink2:active,
-.dokuwiki a.wikilink2:focus {
-    border-bottom-width: 0;
-}
-
-/* any link to current page */
-.dokuwiki span.curid a {
-    font-weight: bold;
-}
-
-/*____________ other link types ____________*/
-
-.dokuwiki a.urlextern,
-.dokuwiki a.windows,
-.dokuwiki a.mail,
-.dokuwiki a.mediafile,
-.dokuwiki a.interwiki {
-    background-repeat: no-repeat;
-    background-position: 0 center;
-    padding: 0 0 0 18px;
-}
-/* external link */
-.dokuwiki a.urlextern {
-    background-image: url(../../images/external-link.png);
-}
-/* windows share */
-.dokuwiki a.windows {
-    background-image: url(../../images/unc.png);
-}
-/* email link */
-.dokuwiki a.mail {
-    background-image: url(../../images/email.png);
-}
-
-/* icons of the following are set by dokuwiki in lib/exe/css.php */
-/* link to some embedded media */
-.dokuwiki a.mediafile {
-}
-/* interwiki link */
-.dokuwiki a.interwiki {
-}
-
-/* RTL corrections; if link icons don't work as expected, remove the following lines */
-[dir=rtl] .dokuwiki a.urlextern,
-[dir=rtl] .dokuwiki a.windows,
-[dir=rtl] .dokuwiki a.mail,
-[dir=rtl] .dokuwiki a.interwiki,
-[dir=rtl] .dokuwiki a.mediafile {
-    background-position: right center;
-    padding: 0 18px 0 0;
-}
diff --git a/wiki/lib/tpl/dokuwiki/css/_media_fullscreen.css b/wiki/lib/tpl/dokuwiki/css/_media_fullscreen.css
deleted file mode 100644
index 9a00d4d..0000000
--- a/wiki/lib/tpl/dokuwiki/css/_media_fullscreen.css
+++ /dev/null
@@ -1,541 +0,0 @@
-/**
- * This file provides the styles for the fullscreen media manager
- * (?do=media).
- *
- * What most templates would probably need to change (depending on
- * their site width) are the 4 min-width's (search for @change).
- */
-
-
-/*____________ structure ____________*/
-
-#mediamanager__page h1 {
-    margin-bottom: .5em;
-}
-
-#mediamanager__page {
-    /* min-width must be summary of all 3 panels' min-widths */
-    min-width: 50em; /* @change */
-    width: 100%;
-    text-align: left;
-}
-[dir=rtl] #mediamanager__page {
-    text-align: right;
-}
-#mediamanager__page .panel {
-    float: left;
-}
-[dir=rtl] #mediamanager__page .panel {
-    float: right;
-}
-
-#mediamanager__page .namespaces {
-    width: 20%;
-    min-width: 10em; /* @change */
-    left:0 !important; /* overrules jQuery UI resizable in rtl */
-}
-#mediamanager__page .filelist {
-    width: 50%;
-    min-width: 25em; /* @change */
-    left:0 !important; /* overrules jQuery UI resizable in rtl */
-}
-#mediamanager__page .file {
-    width: 30%;
-    min-width: 15em; /* @change */
-}
-
-#mediamanager__page .tabs li {
-    white-space: nowrap;
-}
-
-#mediamanager__page .panelHeader {
-    background-color: @ini_background_alt;
-    margin: 0 10px 10px 0;
-    padding: 10px 10px 8px;
-    text-align: left;
-    min-height: 20px;
-    overflow: hidden;
-}
-[dir=rtl] #mediamanager__page .panelHeader {
-    text-align: right;
-    margin: 0 0 10px 10px;
-}
-#mediamanager__page .panelContent {
-    overflow-y: auto;
-    overflow-x: hidden;
-    padding: 0;
-    margin: 0 10px 10px 0;
-    position: relative;
-}
-[dir=rtl] #mediamanager__page .panelContent {
-    text-align: right;
-    margin: 0 0 10px 10px;
-}
-
-#mediamanager__page .file .panelHeader,
-#mediamanager__page .file .panelContent {
-    margin-right: 0;
-}
-[dir=rtl] #mediamanager__page .file .panelHeader,
-[dir=rtl] #mediamanager__page .file .panelContent {
-    margin-left: 0;
-}
-
-#mediamanager__page .ui-resizable-e {
-    width: 6px;
-    right: 2px;
-    background: transparent url(../../images/resizecol.png) center center no-repeat;
-}
-#mediamanager__page .ui-resizable-e:hover {
-    background-color: @ini_background_alt;
-}
-[dir=rtl] #mediamanager__page .ui-resizable-w {
-    width: 6px;
-    left: 2px;
-    background: transparent url(../../images/resizecol.png) center center no-repeat;
-}
-[dir=rtl] #mediamanager__page .ui-resizable-w:hover {
-    background-color: @ini_background_alt;
-}
-
-
-#mediamanager__page dd {
-    margin: 0;
-}
-
-#mediamanager__page .panelHeader h3 {
-    float: left;
-    font-weight: normal;
-    font-size: 1em;
-    padding: 0;
-    margin: 0 0 3px;
-}
-[dir=rtl] #mediamanager__page .panelHeader h3 {
-    float : right
-}
-
-
-/*____________ namespaces panel ____________*/
-
-[dir=rtl] #mediamanager__page .namespaces {
-    text-align: right;
-}
-
-/* make it look like a tab (as in _tabs.css) */
-#mediamanager__page .namespaces h2 {
-    font-size: 1em;
-    display: inline-block;
-    padding: .3em .8em;
-    margin: 0 0 0 .3em;
-    border-radius: .5em .5em 0 0;
-    font-weight: normal;
-    background-color: @ini_background_alt;
-    color: @ini_text;
-    border: 1px solid @ini_border;
-    border-bottom-color: @ini_background_alt;
-    line-height: 1.4em;
-    position: relative;
-    bottom: -1px;
-    z-index: 2;
-}
-[dir=rtl] #mediamanager__page .namespaces h2 {
-    margin: 0 .3em 0 0;
-    position: relative;
-    right: 10px;
-}
-#mediamanager__page .namespaces .panelHeader {
-    border-top: 1px solid @ini_border;
-    z-index: 1;
-}
-
-#mediamanager__page .namespaces ul {
-    margin-left: .2em;
-    margin-bottom: 0;
-    padding: 0;
-    list-style: none;
-}
-[dir=rtl] #mediamanager__page .namespaces ul {
-    margin-left: 0;
-    margin-right: .2em;
-}
-#mediamanager__page .namespaces ul ul {
-    margin-left: 1em;
-}
-[dir=rtl] #mediamanager__page .namespaces ul ul {
-    margin-left: 0;
-    margin-right: 1em;
-}
-#mediamanager__page .namespaces ul ul li {
-    margin: 0;
-}
-
-#mediamanager__page .namespaces ul .selected {
-    background-color: __highlight__;
-    font-weight: bold;
-}
-
-
-/*____________ file list panel ____________*/
-
-/* file list header */
-
-#mediamanager__page .panelHeader form.options {
-    float: right;
-    margin-top: -3px;
-}
-[dir=rtl] #mediamanager__page .panelHeader form.options {
-    float : left
-}
-#mediamanager__page .panelHeader ul {
-    list-style: none;
-    margin: 0;
-    padding: 0;
-}
-#mediamanager__page .panelHeader ul li {
-    color: @ini_text;
-    float: left;
-    line-height: 1;
-    padding-left: 3px;
-}
-[dir=rtl] #mediamanager__page .panelHeader ul li {
-    padding-right: 3px;
-    padding-left: 0;
-    float: right;
-}
-
-#mediamanager__page .panelHeader ul li.ui-controlgroup-horizontal {
-    padding-left: 30px;
-    margin: 0 0 0 5px;
-}
-#mediamanager__page .panelHeader ul li.listType {
-    background: url('../../images/icon-list.png') 3px 1px no-repeat;
-}
-#mediamanager__page .panelHeader ul li.sortBy {
-    background: url('../../images/icon-sort.png') 3px 1px no-repeat;
-}
-[dir=rtl] #mediamanager__page .panelHeader ul li.ui-controlgroup-horizontal {
-    padding-left: 0;
-    padding-right: 30px;
-    margin: 0 5px 0 0;
-    background-position: right 1px;
-}
-
-#mediamanager__page .panelHeader form.options .ui-controlgroup-horizontal label{
-    font-size: 90%;
-    margin-right: -0.4em;
-    padding: .3em .5em;
-    line-height: 1;
-}
-
-/* file list content */
-
-#mediamanager__page .filelist ul {
-    padding: 0;
-    margin: 0 10px 0 0;
-}
-[dir=rtl] #mediamanager__page .filelist ul {
-    margin: 0 0 0 10px;
-}
-#mediamanager__page .filelist ul.rows {
-    margin: 0;
-}
-#mediamanager__page .filelist .panelContent ul li:hover {
-    background-color: @ini_background_alt;
-}
-
-#mediamanager__page .filelist li dt a {
-    vertical-align: middle;
-    display: table-cell;
-    overflow: hidden;
-}
-
-/* file list as thumbs */
-
-#mediamanager__page .filelist .thumbs li {
-    width: 100px;
-    min-height: 130px;
-    display: inline-block;
-    /* the right margin should visually be 10px, but because of its inline-block nature the whitespace inbetween is about 4px more */
-    margin: 0 6px 10px 0;
-    background-color: @ini_background_neu;
-    color: @ini_text;
-    padding: 5px;
-    vertical-align: top;
-    text-align: center;
-    position: relative;
-    line-height: 1.2;
-}
-[dir=rtl] #mediamanager__page .filelist .thumbs li {
-    margin-right: 0;
-    margin-left: 6px;
-}
-
-#mediamanager__page .filelist .thumbs li dt a {
-    width: 100px;
-    height: 90px;
-}
-
-#mediamanager__page .filelist .thumbs li dt a img {
-    max-width: 90px;
-    max-height: 90px;
-}
-
-#mediamanager__page .filelist .thumbs li .name,
-#mediamanager__page .filelist .thumbs li .size,
-#mediamanager__page .filelist .thumbs li .filesize,
-#mediamanager__page .filelist .thumbs li .date {
-    display: block;
-    overflow: hidden;
-    text-overflow: ellipsis;
-    width: 90px;
-    white-space: nowrap;
-}
-#mediamanager__page .filelist .thumbs li .name {
-    padding: 5px 0;
-    font-weight: bold;
-}
-#mediamanager__page .filelist .thumbs li .date {
-    font-style: italic;
-    white-space: normal;
-}
-
-/* file list as rows */
-
-#mediamanager__page .filelist .rows li {
-    list-style: none;
-    display: block;
-    position: relative;
-    max-height: 50px;
-    margin: 0 0 3px 0;
-    background-color: @ini_background;
-    color: @ini_text;
-    overflow: hidden;
-}
-
-#mediamanager__page .filelist .rows li:nth-child(2n+1) {
-    background-color: @ini_background_neu;
-}
-
-#mediamanager__page .filelist .rows li dt {
-    float: left;
-    width: 10%;
-    height: 40px;
-    text-align: center;
-}
-[dir=rtl] #mediamanager__page .filelist .rows li dt {
-    float: right;
-}
-#mediamanager__page .filelist .rows li dt a {
-    width: 100px;
-    height: 40px;
-}
-
-#mediamanager__page .filelist .rows li dt a img {
-    max-width: 40px;
-    max-height: 40px;
-}
-
-#mediamanager__page .filelist .rows li .name,
-#mediamanager__page .filelist .rows li .size,
-#mediamanager__page .filelist .rows li .filesize,
-#mediamanager__page .filelist .rows li .date {
-    overflow: hidden;
-    text-overflow: ellipsis;
-    float: left;
-    margin-left: 1%;
-    white-space: nowrap;
-}
-[dir=rtl] #mediamanager__page .filelist .rows li .name,
-[dir=rtl] #mediamanager__page .filelist .rows li .size,
-[dir=rtl] #mediamanager__page .filelist .rows li .filesize,
-[dir=rtl] #mediamanager__page .filelist .rows li .date {
-    float: right;
-    margin-left: 0;
-    margin-right: 1%;
-}
-
-#mediamanager__page .filelist .rows li .name {
-    width: 30%;
-    font-weight: bold;
-}
-#mediamanager__page .filelist .rows li .size,
-#mediamanager__page .filelist .rows li .filesize {
-    width: 15%;
-}
-#mediamanager__page .filelist .rows li .date {
-    width: 20%;
-    font-style: italic;
-    white-space: normal;
-}
-
-/* upload form */
-
-#mediamanager__page div.upload {
-    padding-bottom: 0.5em;
-}
-
-/*____________ file panel ____________*/
-
-#mediamanager__page .file ul.actions {
-    text-align: center;
-    margin: 0 0 5px;
-    padding: 0;
-    list-style: none;
-}
-#mediamanager__page .file ul.actions li {
-    display: inline;
-    margin: 0;
-}
-
-#mediamanager__page .file div.image {
-    margin-bottom: 5px;
-    text-align: center;
-}
-
-#mediamanager__page .file div.image img {
-    width: 100%;
-}
-
-#mediamanager__page .file dl {
-    margin-bottom: 0;
-}
-#mediamanager__page .file dl dt {
-    font-weight: bold;
-    display: block;
-    background-color: @ini_background_alt;
-}
-#mediamanager__page .file dl dd {
-    display: block;
-    background-color: @ini_background_neu;
-}
-
-
-/* file meta data edit form */
-
-#mediamanager__page form.meta div.row {
-    margin-bottom: 5px;
-}
-
-#mediamanager__page form.meta label span {
-    display: block;
-}
-
-#mediamanager__page form.meta input {
-    width: 50%;
-}
-
-#mediamanager__page form.meta button {
-    width: auto;
-}
-
-#mediamanager__page form.meta textarea.edit {
-    height: 6em;
-    width: 95%;
-    min-width: 95%;
-    max-width: 95%;
-}
-
-/* file revisions form */
-
-#mediamanager__page form.changes ul {
-    margin-left: 10px;
-    padding: 0;
-    list-style-type: none;
-}
-[dir=rtl] #mediamanager__page form.changes ul {
-    margin-left: 0;
-    margin-right: 10px;
-}
-
-#mediamanager__page form.changes ul li div.li div {
-    font-size: 90%;
-    color: @ini_text_neu;
-    padding-left: 18px;
-}
-[dir=rtl] #mediamanager__page form.changes ul li div.li div {
-    padding-left: 0;
-    padding-right: 18px;
-}
-#mediamanager__page form.changes ul li div.li input {
-    position: relative;
-    top: 1px;
-}
-
-/* file diff view */
-
-#mediamanager__diff table {
-    table-layout: fixed;
-    border-width: 0;
-}
-
-#mediamanager__diff td,
-#mediamanager__diff th {
-    width: 48%;
-    margin: 0 5px 10px 0;
-    padding: 0;
-    vertical-align: top;
-    text-align: left;
-    border-color: @ini_background;
-}
-[dir=rtl] #mediamanager__diff td,
-[dir=rtl] #mediamanager__diff th {
-    margin: 0 0 10px 5px;
-    text-align: right;
-}
-
-#mediamanager__diff th {
-    font-weight: normal;
-    background-color: @ini_background;
-    line-height: 1.2;
-}
-#mediamanager__diff th a {
-    font-weight: bold;
-}
-#mediamanager__diff th span {
-    font-size: 90%;
-}
-
-#mediamanager__diff dl dd strong{
-    background-color: __highlight__;
-    color: @ini_text;
-    font-weight: normal;
-}
-
-/* image diff views */
-
-#mediamanager__page .file form.diffView {
-    margin-bottom: 10px;
-    display: block;
-}
-
-#mediamanager__diff div.slider {
-    margin: 10px;
-    width: 95%;
-}
-
-#mediamanager__diff .imageDiff {
-    position: relative;
-}
-#mediamanager__diff .imageDiff .image2 {
-    position: absolute;
-    top: 0;
-    left: 0;
-}
-
-#mediamanager__diff .imageDiff.opacity .image2 {
-    opacity: 0.5;
-}
-
-#mediamanager__diff .imageDiff.portions .image2 {
-    border-right: 1px solid red;
-    overflow: hidden;
-}
-
-#mediamanager__diff .imageDiff.portions img {
-    float: left;
-}
-
-#mediamanager__diff .imageDiff img {
-    width: 100%;
-    max-width: none;
-}
diff --git a/wiki/lib/tpl/dokuwiki/css/_media_popup.css b/wiki/lib/tpl/dokuwiki/css/_media_popup.css
deleted file mode 100644
index 0be5c49..0000000
--- a/wiki/lib/tpl/dokuwiki/css/_media_popup.css
+++ /dev/null
@@ -1,208 +0,0 @@
-/**
- * This file provides styles for the media manager popup
- * (mediamanager.php).
- */
-
-/*____________ structure ____________*/
-
-html.popup {
-    overflow: auto;
-}
-
-#media__manager {
-    height: 100%;
-    overflow: hidden;
-}
-
-#mediamgr__aside {
-    width: 30%;
-    height: 100%;
-    overflow: auto;
-    position: absolute;
-    left: 0;
-    border-right: 1px solid @ini_border;
-}
-[dir=rtl] #mediamgr__aside {
-    left: auto;
-    right: 0;
-    border-right-width: 0;
-    border-left: 1px solid @ini_border;
-}
-#mediamgr__aside .pad {
-    padding: .5em;
-}
-
-#mediamgr__content {
-    width: 69.7%;
-    height: 100%;
-    overflow: auto;
-    position: absolute;
-    right: 0;
-}
-[dir=rtl] #mediamgr__content {
-    right: auto;
-    left: 0;
-}
-#mediamgr__content .pad {
-    padding: .5em;
-}
-
-#media__manager h1,
-#media__manager h2 {
-    font-size: 1.5em;
-    margin-bottom: .5em;
-    padding-bottom: .2em;
-    border-bottom: 1px solid @ini_border;
-}
-
-/* left side
-********************************************************************/
-
-/*____________ options ____________*/
-
-#media__opts {
-    margin-bottom: .5em;
-}
-
-#media__opts input {
-    margin-right: .3em;
-}
-[dir=rtl] #media__opts input {
-    margin-right: 0;
-    margin-left: .3em;
-}
-#media__opts label {
-}
-
-/*____________ tree ____________*/
-
-#media__tree ul {
-    padding-left: .2em;
-}
-[dir=rtl] #media__tree ul {
-    padding-left: 0;
-    padding-right: .2em;
-}
-#media__tree ul li {
-    clear: left;
-    list-style-type: none;
-    list-style-image: none;
-    margin-left: 0;
-}
-[dir=rtl] #media__tree ul li {
-    clear: right;
-    margin-right: 0;
-}
-#media__tree ul li img {
-    float: left;
-    padding: .5em .3em 0 0;
-}
-[dir=rtl] #media__tree ul li img {
-    float: right;
-    padding: .5em 0 0 .3em;
-}
-#media__tree ul li div.li {
-    display: inline;
-}
-#media__tree ul li li {
-    margin-left: 1.5em;
-}
-[dir=rtl] #media__tree ul li li {
-    margin-left: 0;
-    margin-right: 1.5em;
-}
-
-/* right side
-********************************************************************/
-
-/*____________ upload form ____________*/
-
-/* upload info */
-#media__content div.upload {
-    font-size: .9em;
-    margin-bottom: .5em;
-}
-
-#mediamanager__uploader {
-    margin-bottom: 1em;
-}
-#mediamanager__uploader p {
-    margin-bottom: .5em;
-}
-
-/*____________ file list ____________*/
-
-#media__content img.load {
-    margin: 1em auto;
-}
-
-#media__content .odd,
-#media__content .even {
-    padding: .5em;
-}
-#media__content .odd {
-    background-color: @ini_background_alt;
-}
-#media__content .even {
-}
-/* highlight newly uploaded or edited file */
-#media__content #scroll__here {
-    border: 1px dashed @ini_border;
-}
-
-/* link which inserts media file */
-#media__content a.mediafile {
-    margin-right: 1.5em;
-    font-weight: bold;
-    cursor: pointer;
-}
-[dir=rtl] #media__content a.mediafile {
-    margin-right: 0;
-    margin-left: 1.5em;
-}
-#media__content span.info {
-}
-#media__content img.btn {
-    vertical-align: text-bottom;
-}
-
-/* info how to insert media, if JS disabled */
-#media__content div.example {
-    color: @ini_text_neu;
-    margin-left: 1em;
-}
-
-#media__content div.detail {
-    padding: .2em 0;
-}
-#media__content div.detail div.thumb {
-    float: left;
-    margin: 0 .5em 0 18px;
-}
-[dir=rtl] #media__content div.detail div.thumb {
-    float: right;
-    margin: 0 18px 0 .5em;
-}
-#media__content div.detail div.thumb a {
-    display: block;
-    cursor: pointer;
-}
-#media__content div.detail p {
-    margin-bottom: 0;
-}
-
-
-/*____________ media search ____________*/
-
-#dw__mediasearch {
-}
-#dw__mediasearch p {
-}
-#dw__mediasearch label {
-}
-#dw__mediasearch label span {
-}
-#dw__mediasearch input.edit {
-}
-#dw__mediasearch button {
-}
diff --git a/wiki/lib/tpl/dokuwiki/css/_modal.css b/wiki/lib/tpl/dokuwiki/css/_modal.css
deleted file mode 100644
index 37f6483..0000000
--- a/wiki/lib/tpl/dokuwiki/css/_modal.css
+++ /dev/null
@@ -1,94 +0,0 @@
-/**
- * This file provides styles for modal dialogues.
- */
-
-.dokuwiki .ui-widget {
-    font-size: 100%;
-}
-
-
-/* link wizard (opens from the link button in the edit toolbar)
-********************************************************************/
-
-#link__wiz {
-}
-
-[dir=rtl] #link__wiz_close {
-    float: left;
-}
-
-#link__wiz_result {
-    background-color: @ini_background;
-    width:  293px;
-    height: 193px;
-    overflow: auto;
-    border: 1px solid @ini_border;
-    margin: 3px auto;
-    text-align: left;
-    line-height: 1;
-}
-[dir=rtl] #link__wiz_result {
-    text-align: right;
-}
-
-#link__wiz_result div {
-    padding: 3px 3px 3px 0;
-}
-
-#link__wiz_result div a {
-    display: block;
-    padding-left: 22px;
-    min-height: 16px;
-    background: transparent 3px center no-repeat;
-}
-[dir=rtl] #link__wiz_result div a {
-    padding: 3px 22px 3px 3px;
-    background-position: 257px 3px;
-}
-
-#link__wiz_result div.type_u a {
-    background-image: url(../../images/up.png);
-}
-#link__wiz_result div.type_f a {
-    background-image: url(../../images/page.png);
-}
-#link__wiz_result div.type_d a {
-    background-image: url(../../images/ns.png);
-}
-
-#link__wiz_result div.even {
-    background-color: @ini_background_neu;
-}
-
-#link__wiz_result div.selected {
-    background-color: @ini_background_alt;
-}
-
-#link__wiz_result span {
-    display: block;
-    color: @ini_text_neu;
-    margin-left: 22px;
-}
-
-
-/* media option wizard (opens when inserting media in the media popup)
-********************************************************************/
-
-#media__popup {
-    /* for backwards compatibility (not needed since Rincewind) */
-    display: none;
-}
-
-#media__popup_content p {
-    margin: 0 0 .5em;
-}
-
-#media__popup_content label {
-    margin-right: .5em;
-    cursor: default;
-}
-
-#media__popup_content button {
-    margin-right: 1px;
-    cursor: pointer;
-}
diff --git a/wiki/lib/tpl/dokuwiki/css/_recent.css b/wiki/lib/tpl/dokuwiki/css/_recent.css
deleted file mode 100644
index f1be15f..0000000
--- a/wiki/lib/tpl/dokuwiki/css/_recent.css
+++ /dev/null
@@ -1,75 +0,0 @@
-/**
- * This file provides styles for the recent changes (?do=recent) and
- * old revisions (?do=revisions).
- */
-
-/*____________ list of revisions / recent changes ____________*/
-
-/* select type of revisions (media/pages) */
-.dokuwiki .changeType {
-    margin-bottom: .5em;
-}
-
-.dokuwiki form.changes ul li {
-    list-style: none;
-    margin-left: 0;
-}
-[dir=rtl] .dokuwiki form.changes ul li {
-    margin-right: 0;
-}
-.dokuwiki form.changes ul li span,
-.dokuwiki form.changes ul li a {
-    vertical-align: middle;
-}
-.dokuwiki form.changes ul li span.user a {
-    vertical-align: bottom;
-}
-.dokuwiki form.changes ul li.minor {
-    opacity: .7;
-}
-
-.dokuwiki form.changes li span.date {
-}
-.dokuwiki form.changes li a.diff_link {
-    vertical-align: baseline;
-}
-.dokuwiki form.changes li a.revisions_link {
-    vertical-align: baseline;
-}
-.dokuwiki form.changes li a.wikilink1,
-.dokuwiki form.changes li a.wikilink2 {
-}
-.dokuwiki form.changes li span.sum {
-    font-weight: bold;
-}
-.dokuwiki form.changes li span.user {
-}
-
-/*____________ size differences ____________*/
-
-.dokuwiki form.changes li .sizechange {
-    font-size: 80%;
-    border-radius: .2em;
-    padding: .1em .2em;
-    /* cannot use non-guaranteed style.ini colour placeholders, dark templates need to overwrite */
-    background-color: #ddd;
-}
-
-.dokuwiki form.changes li .sizechange.positive {
-    background-color: #cfc;;
-}
-.dokuwiki form.changes li .sizechange.negative {
-    background-color: #fdd;
-}
-
-/*____________ page navigator ____________*/
-
-.dokuwiki div.pagenav {
-    text-align: center;
-    margin: 1.4em 0;
-}
-.dokuwiki div.pagenav-prev,
-.dokuwiki div.pagenav-next {
-    display: inline;
-    margin: 0 .5em;
-}
diff --git a/wiki/lib/tpl/dokuwiki/css/_search.less b/wiki/lib/tpl/dokuwiki/css/_search.less
deleted file mode 100644
index 59400f9..0000000
--- a/wiki/lib/tpl/dokuwiki/css/_search.less
+++ /dev/null
@@ -1,204 +0,0 @@
-/**
- * This file provides styles for the search results page (?do=search)
- * and the AJAX search popup.
- */
-
-/* general
-********************************************************************/
-
-/* search hit in normal text */
-.dokuwiki .search_hit {
-    color: @ini_text;
-    background-color: __highlight__;
-}
-
-/* "nothing found" at search + media */
-.dokuwiki div.nothing {
-    margin-bottom: 1.4em;
-}
-
-/* search results page
-********************************************************************/
-
-/*____________ advanced search form ____________*/
-.dokuwiki .search-results-form fieldset.search-form {
-    width: 100%;
-    margin: 1em 0;
-
-    input[name="q"] {
-        width: 50%;
-    }
-
-    button.toggleAssistant {
-        float: right;
-    }
-
-    .advancedOptions {
-        padding: 1em 0;
-
-        > div {
-            display: inline-block;
-            position: relative;
-            margin: 0 0.5em;
-        }
-
-        div.toggle {
-            // default closed toggle state
-            div.current {
-                cursor: pointer;
-                max-width: 10em;
-                white-space: nowrap;
-                overflow: hidden;
-                text-overflow: ellipsis;
-
-                &::after {
-                    content: 'â–¼';
-                    font-size: smaller;
-                    color: @ini_text_alt;
-                }
-            }
-            div.changed {
-                font-weight: bold;
-            }
-            ul {
-                display: none;
-                position: absolute;
-                border: 1px solid @ini_border;
-                background-color: @ini_background;
-                padding: 0.25em 0.5em;
-                text-align: left;
-                min-width: 10em;
-                max-width: 15em;
-                max-height: 50vh;
-                overflow: auto;
-                z-index: 100;
-                li {
-                    margin: 0.25em 0;
-                    list-style: none;
-
-                    a {
-                        display: block;
-                    }
-                }
-            }
-
-            // open toggle state
-            &.open {
-                div.current::after {
-                    content: 'â–²';
-                }
-
-                ul {
-                    display: block;
-                }
-            }
-        }
-    }
-}
-
-[dir=rtl] .search-results-form fieldset.search-form .advancedOptions {
-    div.toggle ul {
-        text-align: right;
-    }
-}
-
-
-/*____________ matching pagenames ____________*/
-
-.dokuwiki div.search_quickresult {
-    margin-bottom: 1.4em;
-
-    ul {
-        padding: 0;
-
-        li {
-            float: left;
-            width: 12em;
-            margin: 0 1.5em;
-        }
-    }
-}
-
-[dir=rtl] .dokuwiki div.search_quickresult ul li {
-    float: right;
-}
-
-/*____________ search results ____________*/
-
-.dokuwiki dl.search_results {
-    margin-bottom: 1.2em;
-
-    /* search heading */
-    dt {
-        font-weight: normal;
-        margin-bottom: .2em;
-    }
-
-    /* last modified line */
-    dd.meta {
-        margin: 0 0 .2em 0;
-    }
-
-    /* search snippet */
-    dd.snippet {
-        color: @ini_text_alt;
-        background-color: inherit;
-        margin: 0 0 1.2em 0;
-
-        /* search hit in search results */
-        strong.search_hit {
-            font-weight: normal;
-            /* color is set in general */
-        }
-
-        /* ellipsis separating snippets */
-        .search_sep {
-            color: @ini_text;
-            background-color: inherit;
-        }
-    }
-}
-
-/* AJAX quicksearch popup
-********************************************************************/
-
-.dokuwiki form.search {
-    div.no {
-        position: relative;
-    }
-
-    /* .JSpopup */
-    div.ajax_qsearch {
-        position: absolute;
-        top: 0;
-        left: -13.5em; /* -( width of #qsearch__in + padding of .ajax_qsearch + a bit more ) */
-        width: 12em;
-        padding: 0.5em;
-        font-size: .9em;
-        z-index: 20;
-        text-align: left;
-        display: none;
-
-        strong {
-            display: block;
-            margin-bottom: .3em;
-        }
-
-        ul {
-            margin: 0 !important;
-            padding: 0 !important;
-
-            li {
-                margin: 0;
-                padding: 0;
-                display: block !important;
-            }
-        }
-    }
-}
-
-[dir=rtl] .dokuwiki form.search div.ajax_qsearch {
-    left: auto;
-    right: -13.5em;
-    text-align: right;
-}
diff --git a/wiki/lib/tpl/dokuwiki/css/_tabs.css b/wiki/lib/tpl/dokuwiki/css/_tabs.css
deleted file mode 100644
index c4576c5..0000000
--- a/wiki/lib/tpl/dokuwiki/css/_tabs.css
+++ /dev/null
@@ -1,85 +0,0 @@
-/**
- * This file provides the styles for general tabs.
- */
-
-.dokuwiki .tabs > ul,
-.dokuwiki ul.tabs {
-    padding: 0;
-    margin: 0;
-    overflow: hidden;
-    position: relative;
-}
-/* border underneath */
-.dokuwiki .tabs > ul:after,
-.dokuwiki ul.tabs:after {
-    position: absolute;
-    content: "";
-    width: 100%;
-    bottom: 0;
-    left: 0;
-    border-bottom: 1px solid @ini_border;
-    z-index: 1;
-}
-
-.dokuwiki .tabs > ul li,
-.dokuwiki ul.tabs li {
-    float: left;
-    padding: 0;
-    margin: 0;
-    list-style: none;
-}
-[dir=rtl] .dokuwiki .tabs > ul li,
-[dir=rtl] .dokuwiki ul.tabs li {
-    float: right;
-}
-
-.dokuwiki .tabs > ul li a,
-.dokuwiki ul.tabs li strong,
-.dokuwiki ul.tabs li a {
-    display: inline-block;
-    padding: .3em .8em;
-    margin: 0 0 0 .3em;
-    background-color: @ini_background_neu;
-    color: @ini_text;
-    border: 1px solid @ini_border;
-    border-radius: .5em .5em 0 0;
-    position: relative;
-    z-index: 0;
-}
-[dir=rtl] .dokuwiki .tabs > ul li a,
-[dir=rtl] .dokuwiki ul.tabs li strong,
-[dir=rtl] .dokuwiki ul.tabs li a {
-    margin: 0 .3em 0 0;
-}
-
-.dokuwiki ul.tabs li strong {
-    font-weight: normal;
-}
-
-.dokuwiki ul.tabs li a:link,
-.dokuwiki ul.tabs li a:visited {
-}
-.dokuwiki .tabs > ul li a:hover,
-.dokuwiki .tabs > ul li a:active,
-.dokuwiki .tabs > ul li a:focus,
-.dokuwiki .tabs > ul li .curid a,
-.dokuwiki .tabs > ul .active a,
-.dokuwiki ul.tabs li a:hover,
-.dokuwiki ul.tabs li a:active,
-.dokuwiki ul.tabs li a:focus,
-.dokuwiki ul.tabs li.active a,
-.dokuwiki ul.tabs li strong {
-    background-color: @ini_background_alt;
-    color: @ini_text;
-    text-decoration: none;
-    font-weight: normal;
-}
-
-.dokuwiki .tabs > ul li .curid a,
-.dokuwiki .tabs > ul li .active a,
-.dokuwiki .tabs > ul li .active a,
-.dokuwiki ul.tabs li.active a,
-.dokuwiki ul.tabs li strong {
-    z-index: 2;
-    border-bottom-color: @ini_background_alt;
-}
diff --git a/wiki/lib/tpl/dokuwiki/css/_toc.css b/wiki/lib/tpl/dokuwiki/css/_toc.css
deleted file mode 100644
index 469e927..0000000
--- a/wiki/lib/tpl/dokuwiki/css/_toc.css
+++ /dev/null
@@ -1,93 +0,0 @@
-/**
- * This file provides styles for the TOC (table of contents), the
- * sitemap (?do=index) and backlinks (?do=backlink).
- */
-
-/* toc
-********************************************************************/
-
-/* toc container */
-#dw__toc {
-    float: right;
-    margin: 0 0 1.4em 1.4em;
-    width: 12em;
-    background-color: @ini_background_alt;
-    color: inherit;
-}
-[dir=rtl] #dw__toc {
-    float: left;
-    margin: 0 1.4em 1.4em 0;
-}
-
-/*____________ toc header ____________*/
-
-.dokuwiki h3.toggle {
-    padding: .2em .5em;
-    font-weight: bold;
-}
-
-.dokuwiki .toggle strong {
-    float: right;
-    margin: 0 .2em;
-}
-[dir=rtl] .dokuwiki .toggle strong {
-    float: left;
-}
-
-/*____________ toc list ____________*/
-
-#dw__toc > div {
-    padding: .2em .5em;
-}
-#dw__toc ul {
-    padding: 0;
-    margin: 0;
-}
-#dw__toc ul li {
-    list-style: none;
-    padding: 0;
-    margin: 0;
-    line-height: 1.1;
-}
-#dw__toc ul li div.li {
-    padding: .15em 0;
-}
-#dw__toc ul ul {
-    padding-left: 1em;
-}
-[dir=rtl] #dw__toc ul ul {
-    padding-left: 0;
-    padding-right: 1em;
-}
-#dw__toc ul ul li {
-}
-#dw__toc ul li a {
-}
-
-/* in case of toc list jumping one level
-  (e.g. if heading level 3 follows directly after heading level 1) */
-#dw__toc ul li.clear {
-}
-
-
-/* sitemap (and backlinks)
-********************************************************************/
-
-.dokuwiki ul.idx {
-    padding-left: 0;
-}
-[dir=rtl] .dokuwiki ul.idx {
-    padding-right: 0;
-}
-.dokuwiki ul.idx li {
-    list-style-image: url(../../images/bullet.png);
-}
-.dokuwiki ul.idx li.open {
-    list-style-image: url(../../images/open.png);
-}
-.dokuwiki ul.idx li.closed {
-    list-style-image: url(../../images/closed.png);
-}
-[dir=rtl] .dokuwiki ul.idx li.closed {
-    list-style-image: url(../../images/closed-rtl.png);
-}
diff --git a/wiki/lib/tpl/dokuwiki/css/basic.less b/wiki/lib/tpl/dokuwiki/css/basic.less
deleted file mode 100644
index ccec240..0000000
--- a/wiki/lib/tpl/dokuwiki/css/basic.less
+++ /dev/null
@@ -1,460 +0,0 @@
-/**
- * This file provides the most basic styles.
- *
- * If you integrate DokuWiki into another project, you might either
- * want to integrate this file into the other project as well, or use
- * the other project's basic CSS for DokuWiki instead of this one.
- *
- * @author Anika Henke <anika@selfthinker.org>
- */
-
-html {
-    overflow-x: auto;
-    overflow-y: scroll;
-}
-html,
-body {
-    color: @ini_text;
-    background: @ini_background_site url(images/page-gradient.png) top left repeat-x;
-    margin: 0;
-    padding: 0;
-}
-body {
-    font: normal 87.5%/1.4 Arial, sans-serif;
-    /* default font size: 100% => 16px; 93.75% => 15px; 87.5% => 14px; 81.25% => 13px; 75% => 12px */
-    -webkit-text-size-adjust: 100%;
-}
-
-
-/*____________ headers ____________*/
-
-caption,
-figcaption,
-summary,
-legend {
-    padding: 0;
-    margin: 0 0 .35em;
-    line-height: 1.2;
-}
-h1,
-h2,
-h3,
-h4,
-h5,
-h6 {
-    font-weight: bold;
-    padding: 0;
-    line-height: 1.2;
-    clear: left; /* ideally 'both', but problems with toc */
-}
-[dir=rtl] h1,
-[dir=rtl] h2,
-[dir=rtl] h3,
-[dir=rtl] h4,
-[dir=rtl] h5,
-[dir=rtl] h6 {
-    clear: right;
-}
-
-h1 {
-    font-size: 2em;
-    margin: 0 0 0.444em;
-}
-h2 {
-    font-size: 1.5em;
-    margin: 0 0 0.666em;
-}
-h3 {
-    font-size: 1.125em;
-    margin: 0 0 0.888em;
-}
-h4 {
-    font-size: 1em;
-    margin: 0 0 1.0em;
-}
-h5 {
-    font-size: .875em;
-    margin: 0 0 1.1428em;
-}
-h6 {
-    font-size: .75em;
-    margin: 0 0 1.333em;
-}
-/* bottom margin = 1 / font-size */
-
-
-/*____________ basic margins and paddings ____________*/
-
-p,
-ul,
-ol,
-dl,
-pre,
-table,
-hr,
-blockquote,
-figure,
-details,
-fieldset,
-address {
-    margin: 0 0 1.4em 0; /* bottom margin = line-height */
-    padding: 0;
-}
-
-div,
-video,
-audio {
-    margin: 0;
-    padding: 0;
-}
-
-
-/*____________ lists ____________*/
-
-ul,
-ol {
-    padding: 0 0 0 1.5em;
-}
-[dir=rtl] ul,
-[dir=rtl] ol {
-    padding: 0 1.5em 0 0;
-}
-
-li,
-dd {
-    padding: 0;
-    margin: 0 0 0 1.5em;
-}
-[dir=rtl] li,
-[dir=rtl] dd {
-    margin: 0 1.5em 0 0;
-}
-dt {
-    font-weight: bold;
-    margin: 0;
-    padding: 0;
-}
-
-li ul,
-li ol,
-li dl,
-dl ul,
-dl ol,
-dl dl {
-    margin-bottom: 0;
-    padding: 0;
-}
-li li {
-    font-size: 100%;
-}
-
-ul             { list-style: square outside; }
-ol             { list-style: decimal outside; }
-ol ol          { list-style-type: lower-alpha; }
-ol ol ol       { list-style-type: upper-roman; }
-ol ol ol ol    { list-style-type: upper-alpha; }
-ol ol ol ol ol { list-style-type: lower-roman; }
-
-
-/*____________ tables ____________*/
-
-table {
-    border-collapse: collapse;
-    empty-cells: show;
-    border-spacing: 0;
-    border: 1px solid @ini_border;
-}
-
-caption {
-    caption-side: top;
-    text-align: left;
-}
-[dir=rtl] caption {
-    text-align: right;
-}
-
-th,
-td {
-    padding: .3em .5em;
-    margin: 0;
-    vertical-align: top;
-    border: 1px solid @ini_border;
-}
-th {
-    font-weight: bold;
-    background-color: @ini_background_alt;
-    text-align: left;
-}
-[dir=rtl] th {
-    text-align: right;
-}
-
-
-/*____________ links ____________*/
-
-a {
-    outline: none;
-}
-a:link,
-a:visited {
-    text-decoration: none;
-    color: @ini_link;
-}
-a:link:hover,
-a:visited:hover,
-a:link:focus,
-a:visited:focus,
-a:link:active,
-a:visited:active {
-    text-decoration: underline;
-}
-
-
-/*____________ misc ____________*/
-
-img {
-    border-width: 0;
-    vertical-align: middle;
-    color: #666;
-    background-color: transparent;
-    font-style: italic;
-    height: auto;
-}
-video {
-    height: auto;
-}
-img,
-object,
-embed,
-iframe,
-video,
-audio {
-    max-width: 100%;
-}
-button img {
-    max-width: none;
-}
-
-hr {
-    border-top: solid @ini_border;
-    border-bottom: solid @ini_background;
-    border-width: 1px 0;
-    height: 0;
-    text-align: center;
-    clear: both;
-}
-
-acronym,
-abbr {
-    cursor: help;
-    border-bottom: 1px dotted;
-    font-style: normal;
-}
-em acronym,
-em abbr {
-    font-style: italic;
-}
-
-mark {
-    background-color: @ini_highlight;
-    color: inherit;
-}
-
-pre,
-code,
-samp,
-kbd {
-    font-family: Consolas, "Andale Mono WT", "Andale Mono", "Bitstream Vera Sans Mono", "Nimbus Mono L", Monaco, "Courier New", monospace;
-    /* same font stack should be used for ".dokuwiki table.diff td" in _diff.css */
-    font-size: 1em;
-    direction: ltr;
-    text-align: left;
-    background-color: @ini_background_site;
-    color: @ini_text;
-    box-shadow: inset 0 0 .3em @ini_border;
-    border-radius: 2px;
-}
-pre {
-    overflow: auto;
-    word-wrap: normal;
-    border: 1px solid @ini_border;
-    border-radius: 2px;
-    box-shadow: inset 0 0 .5em @ini_border;
-    padding: .7em 1em;
-}
-
-blockquote {
-    padding: 0 .5em;
-    border: solid @ini_border;
-    border-width: 0 0 0 .25em;
-}
-[dir=rtl] blockquote {
-    border-width: 0 .25em 0 0;
-}
-q:before,
-q:after {
-    content: '';
-}
-
-sub,
-sup {
-    font-size: .8em;
-    line-height: 1;
-}
-sub {
-    vertical-align: sub;
-}
-sup {
-    vertical-align: super;
-}
-
-small {
-    font-size: .8em;
-}
-
-/*____________ forms ____________*/
-
-/* for all of the form styles, style.ini colours are not used on purpose (except for fieldset border) */
-
-form {
-    display: inline;
-    margin: 0;
-    padding: 0;
-}
-fieldset {
-    padding: .7em 1em 0;
-    padding: .7rem 1rem; /* for those browsers understanding :last-child */
-    border: 1px solid @ini_text_alt;
-}
-fieldset > :last-child {
-    margin-bottom: 0;
-}
-legend {
-    margin: 0;
-    padding: 0 .1em;
-}
-label {
-    vertical-align: middle;
-    cursor: pointer;
-}
-
-input,
-textarea,
-button,
-select,
-optgroup,
-option,
-keygen,
-output,
-meter,
-progress {
-    font: inherit;
-    font-weight: normal;
-    color: #333;
-    background-color: #fff;
-    line-height: normal;
-    margin: 0;
-    vertical-align: middle;
-    box-sizing: border-box;
-}
-
-select {
-    max-width: 100%;
-}
-optgroup {
-    font-style: italic;
-    font-weight: bold;
-}
-option {
-    font-style: normal;
-    font-weight: normal;
-}
-
-input,
-textarea,
-select,
-keygen {
-    border: 1px solid #ccc;
-    box-shadow: inset 0 0 1px #eee;
-    border-radius: 2px;
-}
-input:active,
-input:focus,
-textarea:active,
-textarea:focus,
-select:active,
-select:focus,
-keygen:active,
-keygen:focus {
-    border-color: #999;
-}
-input[type=radio],
-input[type=checkbox],
-input[type=image] {
-    padding: 0;
-    border-style: none;
-    box-shadow: none;
-}
-
-/* all types of buttons */
-input[type=submit],
-input[type=button],
-input[type=reset],
-input.button,
-a.button,
-button,
-.qq-upload-button {
-    color: #333;
-    background-color: #eee;
-    background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIHZpZXdCb3g9IjAgMCAxIDEiIHByZXNlcnZlQXNwZWN0UmF0aW89Im5vbmUiPgo8bGluZWFyR3JhZGllbnQgaWQ9Imc4MjQiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iMCUiIHkxPSIwJSIgeDI9IjAlIiB5Mj0iMTAwJSI+CjxzdG9wIHN0b3AtY29sb3I9IiNGRkZGRkYiIG9mZnNldD0iMCIvPjxzdG9wIHN0b3AtY29sb3I9IiNGNEY0RjQiIG9mZnNldD0iMC4zIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0VFRUVFRSIgb2Zmc2V0PSIwLjk5Ii8+PHN0b3Agc3RvcC1jb2xvcj0iI0NDQ0NDQyIgb2Zmc2V0PSIuOTkiLz4KPC9saW5lYXJHcmFkaWVudD4KPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNnODI0KSIgLz4KPC9zdmc+);
-    background-image: linear-gradient(to bottom, #ffffff 0%, #f4f4f4 30%, #eeeeee 99%, #cccccc 99%);
-    border: 1px solid #ccc;
-    border-radius: 2px;
-    padding: .1em .5em;
-    cursor: pointer;
-}
-
-input[type=submit]:hover,
-input[type=submit]:active,
-input[type=submit]:focus,
-input[type=button]:hover,
-input[type=button]:active,
-input[type=button]:hover,
-input[type=reset]:hover,
-input[type=reset]:active,
-input[type=reset]:hover,
-input.button:hover,
-input.button:active,
-input.button:focus,
-a.button:hover,
-a.button:active,
-a.button:focus,
-button:hover,
-button:active,
-button:focus,
-.qq-upload-button:hover {
-    border-color: #999;
-    background-color: #ddd;
-    background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIHZpZXdCb3g9IjAgMCAxIDEiIHByZXNlcnZlQXNwZWN0UmF0aW89Im5vbmUiPgo8bGluZWFyR3JhZGllbnQgaWQ9Imc2NzAiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iMCUiIHkxPSIwJSIgeDI9IjAlIiB5Mj0iMTAwJSI+CjxzdG9wIHN0b3AtY29sb3I9IiNGRkZGRkYiIG9mZnNldD0iMCIvPjxzdG9wIHN0b3AtY29sb3I9IiNGNEY0RjQiIG9mZnNldD0iMC4zIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0RERERERCIgb2Zmc2V0PSIwLjk5Ii8+PHN0b3Agc3RvcC1jb2xvcj0iI0JCQkJCQiIgb2Zmc2V0PSIuOTkiLz4KPC9saW5lYXJHcmFkaWVudD4KPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNnNjcwKSIgLz4KPC9zdmc+);
-    background-image: linear-gradient(to bottom, #ffffff 0%, #f4f4f4 30%, #dddddd 99%, #bbbbbb 99%);
-}
-
-input::-moz-focus-inner,
-button::-moz-focus-inner {
-    border: 0;
-    padding: 0;
-}
-
-input[disabled],
-button[disabled],
-select[disabled],
-textarea[disabled],
-option[disabled],
-input[readonly],
-button[readonly],
-select[readonly],
-textarea[readonly] {
-    cursor: auto;
-    opacity: .5;
-    background-color: #eee;
-}
diff --git a/wiki/lib/tpl/dokuwiki/css/content.less b/wiki/lib/tpl/dokuwiki/css/content.less
deleted file mode 100644
index d300393..0000000
--- a/wiki/lib/tpl/dokuwiki/css/content.less
+++ /dev/null
@@ -1,393 +0,0 @@
-/**
- * This file provides the main design styles for the page content.
- *
- * @author Anika Henke <anika@selfthinker.org>
- * @author Andreas Gohr <andi@splitbrain.org>
- * @author Clarence Lee <clarencedglee@gmail.com>
- */
-
-/*____________ section indenting ____________
-
-.dokuwiki .page  h1 {margin-left: 0;}
-.dokuwiki .page  h2 {margin-left: .666em;}
-.dokuwiki .page  h3 {margin-left: 1.776em;}
-.dokuwiki .page  h4 {margin-left: 3em;}
-.dokuwiki .page  h5 {margin-left: 4.5712em;}
-.dokuwiki .page  div.level1 {margin-left: 0;}
-.dokuwiki .page  div.level2 {margin-left: 1em;}
-.dokuwiki .page  div.level3 {margin-left: 2em;}
-.dokuwiki .page  div.level4 {margin-left: 3em;}
-.dokuwiki .page  div.level5 {margin-left: 4em;}
-
-[dir=rtl] .dokuwiki .page h1 {margin-left: 0; margin-right: 0;}
-[dir=rtl] .dokuwiki .page h2 {margin-left: 0; margin-right: .666em;}
-[dir=rtl] .dokuwiki .page h3 {margin-left: 0; margin-right: 1.776em;}
-[dir=rtl] .dokuwiki .page h4 {margin-left: 0; margin-right: 3em;}
-[dir=rtl] .dokuwiki .page h5 {margin-left: 0; margin-right: 4.5712em;}
-[dir=rtl] .dokuwiki .page div.level1 {margin-left: 0; margin-right: 0;}
-[dir=rtl] .dokuwiki .page div.level2 {margin-left: 0; margin-right: 1em;}
-[dir=rtl] .dokuwiki .page div.level3 {margin-left: 0; margin-right: 2em;}
-[dir=rtl] .dokuwiki .page div.level4 {margin-left: 0; margin-right: 3em;}
-[dir=rtl] .dokuwiki .page div.level5 {margin-left: 0; margin-right: 4em;}
-*/
-/* hx margin-left = (1 / font-size) * .levelx-margin */
-
-/*____________ links to wiki pages (addition to _links) ____________*/
-
-/* existing wikipage */
-.dokuwiki a.wikilink1 {
-    color: @ini_existing;
-    background-color: inherit;
-}
-
-/* not existing wikipage */
-.dokuwiki a.wikilink2 {
-    color: @ini_missing;
-    background-color: inherit;
-}
-
-/*____________ images ____________*/
-
-/* embedded images (styles are already partly set in lib/styles/all.css) */
-.dokuwiki img.media {
-    margin: .2em 0;
-}
-
-.dokuwiki img.medialeft {
-    margin: .2em 1em .2em 0;
-}
-
-.dokuwiki img.mediaright {
-    margin: .2em 0 .2em 1em;
-}
-
-.dokuwiki img.mediacenter {
-    margin: .2em auto;
-}
-
-/*____________ lists ____________*/
-
-.dokuwiki .page,
-.dokuwiki .aside {
-    ul li {
-        color: @ini_text_alt;
-    }
-
-    ol li {
-        color: @ini_text_neu;
-    }
-
-    li .li {
-        color: @ini_text;
-    }
-}
-
-/*____________ tables ____________*/
-
-/* div around each table */
-.dokuwiki div.table {
-    overflow-x: auto;
-    margin-bottom: 1.4em;
-}
-
-.dokuwiki div.table table {
-    margin-bottom: 0;
-}
-
-.dokuwiki table.inline {
-    min-width: 50%;
-}
-
-.dokuwiki table.inline tr:hover td {
-    background-color: @ini_background_alt;
-}
-
-.dokuwiki table.inline tr:hover th {
-    background-color: @ini_border;
-}
-
-/*____________ code ____________*/
-
-/* fix if background-color hides underlining */
-.dokuwiki em.u code {
-    text-decoration: underline;
-}
-
-/* filenames for downloadable file and code blocks */
-.dokuwiki dl.code,
-.dokuwiki dl.file {
-    dt {
-        background-color: @ini_background_site;
-        background: linear-gradient(to bottom, @ini_background_alt 0%, @ini_background_site 100%);
-        color: inherit;
-        border: 1px solid @ini_border;
-        border-bottom-color: @ini_background_site;
-        border-top-left-radius: .3em;
-        border-top-right-radius: .3em;
-        padding: .3em .6em .1em;
-        margin-bottom: -1px;
-        float: left;
-
-        a {
-            background-color: transparent;
-            font-size: 0.875em;
-            font-weight: normal;
-            display: block;
-            min-height: 16px;
-        }
-    }
-
-    dd {
-        margin: 0;
-        clear: left;
-    }
-
-    pre {
-        box-shadow: inset -4px -4px .5em -.3em @ini_border;
-    }
-}
-
-[dir=rtl] .dokuwiki dl.code,
-[dir=rtl] .dokuwiki dl.file {
-    dt {
-        float: right;
-    }
-
-    dd {
-        clear: right;
-    }
-}
-
-/* for code in <file> */
-.dokuwiki dl.file {
-    pre,
-    dt {
-        border-style: dashed;
-    }
-    dt {
-        border-bottom-style: solid;
-    }
-}
-
-/*____________ JS popup ____________*/
-
-.JSpopup {
-    background-color: @ini_background;
-    color: @ini_text;
-    border: 1px solid @ini_border;
-    box-shadow: .1em .1em .1em @ini_border;
-    border-radius: 2px;
-    padding: .3em .5em;
-    font-size: .9em;
-}
-
-.dokuwiki form.search div.ajax_qsearch {
-    top: -.35em;
-    font-size: 1em;
-    text-overflow: ellipsis;
-}
-
-.JSpopup ul,
-.JSpopup ol {
-    padding-left: 0;
-}
-
-[dir=rtl] .JSpopup ul,
-[dir=rtl] .JSpopup ol {
-    padding-right: 0;
-}
-
-/* changes to underscored CSS files
-********************************************************************/
-
-#acl__tree li {
-    margin: 0;
-}
-
-#dokuwiki__content span.curid a {
-    font-weight: normal;
-}
-
-#dokuwiki__content strong span.curid a {
-    font-weight: bold;
-}
-
-/*____________ changes to _edit ____________*/
-
-.dokuwiki div.toolbar {
-    button.toolbutton {
-        border-radius: 0;
-        border-left-width: 0;
-        padding: .1em .35em;
-    }
-
-    button.toolbutton:first-child {
-        border-top-left-radius: 4px;
-        border-bottom-left-radius: 4px;
-        border-left-width: 1px;
-    }
-
-    button.toolbutton:last-child {
-        border-top-right-radius: 4px;
-        border-bottom-right-radius: 4px;
-    }
-}
-
-[dir=rtl] .dokuwiki div.toolbar {
-    button.toolbutton:last-child {
-        border-top-left-radius: 4px;
-        border-bottom-left-radius: 4px;
-        border-top-right-radius: 0;
-        border-bottom-right-radius: 0;
-        border-left-width: 1px;
-    }
-
-    button.toolbutton:first-child {
-        border-top-left-radius: 0;
-        border-bottom-left-radius: 0;
-        border-top-right-radius: 4px;
-        border-bottom-right-radius: 4px;
-        border-left-width: 0;
-        border-right-width: 1px;
-    }
-}
-
-.dokuwiki div.section_highlight {
-    margin: 0 -2em;
-    padding: 0 1em;
-    border-width: 0 1em;
-}
-
-.dokuwiki textarea.edit {
-    font-family: Consolas, "Andale Mono WT", "Andale Mono", "Bitstream Vera Sans Mono", "Nimbus Mono L", Monaco, "Courier New", monospace;
-}
-
-.dokuwiki div.preview {
-    margin: 0 -2em;
-    padding: 0 2em;
-}
-
-.dokuwiki.hasSidebar div.preview {
-    border-right: @ini_sidebar_width solid @ini_background_alt;
-}
-
-[dir=rtl] .dokuwiki.hasSidebar div.preview {
-    border-right-width: 0;
-    border-left: @ini_sidebar_width solid @ini_background_alt;
-}
-
-.dokuwiki div.preview div.pad {
-    padding: 1.556em 0 2em;
-}
-
-/*____________ changes to _toc ____________*/
-
-#dw__toc {
-    margin: -1.556em -2em .5em 1.4em;
-    width: @ini_sidebar_width;
-    border-left: 1px solid @ini_border;
-    background: @ini_background;
-    color: inherit;
-}
-
-[dir=rtl] #dw__toc {
-    margin: -1.556em 1.4em .5em -2em;
-    border-left-width: 0;
-    border-right: 1px solid @ini_border;
-}
-
-.dokuwiki h3.toggle {
-    padding: .5em 1em;
-    margin-bottom: 0;
-    font-size: .875em;
-    letter-spacing: .1em;
-}
-
-#dokuwiki__aside h3.toggle {
-    display: none;
-}
-
-.dokuwiki .toggle strong {
-    background: transparent url(images/toc-arrows.png) 0 0;
-    width: 8px;
-    height: 5px;
-    margin: .4em 0 0;
-}
-
-.dokuwiki .toggle.closed strong {
-    background-position: 0 -5px;
-}
-
-.dokuwiki .toggle strong span {
-    display: none;
-}
-
-#dw__toc {
-    > div {
-        font-size: 0.875em;
-        padding: .5em 1em 1em;
-    }
-
-    ul {
-        padding: 0 0 0 1.2em;
-
-        li {
-            list-style-image: url(images/toc-bullet.png);
-        }
-    }
-
-    ul li.clear {
-        list-style: none;
-    }
-
-    ul li div.li {
-        padding: .2em 0;
-    }
-}
-
-[dir=rtl] #dw__toc ul {
-    padding: 0 1.5em 0 0;
-}
-
-/*____________ changes to _imgdetail ____________*/
-
-#dokuwiki__detail {
-    padding: 0;
-
-    img {
-        float: none;
-        margin-bottom: 1.4em;
-    }
-
-    div.img_detail {
-        float: none;
-    }
-
-    div.img_detail dl {
-        overflow: hidden;
-    }
-
-    div.img_detail dl dt {
-        float: left;
-        width: 9em;
-        text-align: right;
-        clear: left;
-    }
-
-    div.img_detail dl dd {
-        margin-left: 9.5em;
-    }
-}
-
-[dir=rtl] #dokuwiki__detail div.img_detail {
-    dl dt {
-        float: right;
-        text-align: left;
-        clear: right;
-    }
-
-    dl dd {
-        margin-left: 0;
-        margin-right: 9.5em;
-    }
-}
diff --git a/wiki/lib/tpl/dokuwiki/css/design.less b/wiki/lib/tpl/dokuwiki/css/design.less
deleted file mode 100644
index 89f671b..0000000
--- a/wiki/lib/tpl/dokuwiki/css/design.less
+++ /dev/null
@@ -1,354 +0,0 @@
-/**
- * This file provides the main design styles for the
- * bits that surround the content.
- *
- * @author Anika Henke <anika@selfthinker.org>
- * @author Andreas Gohr <andi@splitbrain.org>
- * @author Clarence Lee <clarencedglee@gmail.com>
- */
-
-/* header
-********************************************************************/
-
-#dokuwiki__header {
-    padding: 2em 0 1.5em;
-
-    .headings,
-    .tools {
-        margin-bottom: 1.5em;
-        width: 49%;
-    }
-    .tools {
-        margin-top: .2em;
-    }
-
-    h1 {
-        margin: 0;
-        font-size: 1.5em;
-        font-weight: normal;
-
-        img {
-            float: left;
-            margin-right: .5em;
-        }
-
-        span {
-            display: block;
-            padding-top: 10px;
-        }
-
-        a {
-            text-decoration: none;
-            color: @ini_text;
-            background-color: inherit;
-        }
-    }
-
-    p.claim {
-        margin-bottom: 0;
-        font-size: 0.875em;
-    }
-
-    /* make all links in header (including breadcrumb and interwiki) same colour as the rest */
-    a {
-        color: @ini_link;
-        background-color: inherit;
-    }
-}
-
-[dir=rtl] #dokuwiki__header h1 img {
-    float: right;
-    margin-left: .5em;
-    margin-right: 0;
-}
-
-/* tools
-********************************************************************/
-
-/* highlight selected tool */
-.mode_admin a.action.admin,
-.mode_login a.action.login,
-.mode_register a.action.register,
-.mode_profile a.action.profile,
-.mode_recent a.action.recent,
-.mode_index a.action.index,
-.mode_media a.action.media,
-.mode_revisions a.action.revs,
-.mode_backlink a.action.backlink,
-.mode_subscribe a.action.subscribe {
-    font-weight: bold;
-}
-
-#dokuwiki__header .tools {
-    ul {
-        padding-left: 0;
-        margin-bottom: 0;
-    }
-
-    li {
-        font-size: 0.875em;
-        margin-left: 1em;
-        list-style: none;
-        display: inline;
-    }
-
-    form.search div.ajax_qsearch li {
-        font-size: 1em;
-        margin-left: 0;
-        display: block;
-        overflow: hidden;
-        text-overflow: ellipsis;
-    }
-}
-
-[dir=rtl] #dokuwiki__header .tools li {
-    margin-right: 1em;
-    margin-left: 0;
-}
-
-#dokuwiki__header .mobileTools {
-    display: none; /* hide mobile tools dropdown to only show in mobile view */
-}
-
-/*____________ site tools ____________*/
-
-#dokuwiki__sitetools {
-    text-align: right;
-
-    form.search {
-        font-size: 0.875em;
-    }
-}
-
-[dir=rtl] #dokuwiki__sitetools {
-    text-align: left;
-}
-
-form.search {
-    display: block;
-    position: relative;
-    margin-bottom: 0.5em;
-
-    input {
-        width: 18em;
-        padding: .35em 22px .35em .1em;
-    }
-
-    button {
-        background: transparent url(images/search.png) no-repeat 0 0;
-        border-width: 0;
-        width: 19px;
-        height: 14px;
-        text-indent: -99999px;
-        margin-left: -20px;
-        box-shadow: none;
-        padding: 0;
-    }
-}
-
-[dir=rtl] form.search {
-    input {
-        padding: .35em .1em .35em 22px;
-    }
-
-    button {
-        background-position: 5px 0;
-        margin-left: 0;
-        margin-right: -20px;
-        position: relative;
-    }
-}
-
-/*____________ breadcrumbs ____________*/
-
-.dokuwiki div.breadcrumbs {
-    border-top: 1px solid @ini_border;
-    border-bottom: 1px solid @ini_background;
-    margin-bottom: .5em;
-    font-size: 0.875em;
-    clear: both;
-
-    div {
-        padding: .1em .35em;
-    }
-
-    div:only-child {
-        border-top: 1px solid @ini_background;
-        border-bottom: 1px solid @ini_border;
-    }
-
-    div:first-child {
-        border-top: 1px solid @ini_background;
-    }
-
-    div:last-child {
-        border-bottom: 1px solid @ini_border;
-    }
-
-    .bcsep {
-        font-size: 0.75em;
-    }
-}
-
-/* sidebar
-********************************************************************/
-
-.dokuwiki .aside {
-    font-size: 0.875em;
-    overflow: hidden;
-    word-wrap: break-word;
-
-    /* make sidebar more condensed */
-
-    h1 {
-        font-size: 1.714em;
-        margin-bottom: .292em;
-    }
-
-    h2 {
-        margin-bottom: .333em;
-    }
-
-    h3 {
-        margin-bottom: .444em;
-    }
-
-    h4 {
-        margin-bottom: .5em;
-    }
-
-    h5 {
-        margin-bottom: .5714em;
-    }
-
-    p,
-    ul,
-    ol,
-    dl,
-    pre,
-    table,
-    fieldset,
-    hr,
-    blockquote,
-    address {
-        margin-bottom: .7em;
-    }
-
-    ul,
-    ol {
-        padding-left: .5em;
-    }
-
-    li ul,
-    li ol {
-        margin-bottom: 0;
-        padding: 0;
-    }
-
-    a:link,
-    a:visited {
-        color: @ini_link;
-        background-color: inherit;
-    }
-}
-
-[dir=rtl] .dokuwiki .aside ul,
-[dir=rtl] .dokuwiki .aside ol {
-    padding-right: .5em;
-}
-
-/* content
-********************************************************************/
-
-.dokuwiki .pageId {
-    float: right;
-    margin-right: -1em;
-    margin-bottom: -1px;
-    margin-top: -1.5em;
-    overflow: hidden;
-    padding: 0.5em 1em 0;
-
-    span {
-        font-size: 0.875em;
-        border: solid @ini_background_alt;
-        border-width: 1px 1px 0;
-        background-color: @ini_background;
-        color: @ini_text_alt;
-        padding: .1em .35em;
-        border-top-left-radius: 2px;
-        border-top-right-radius: 2px;
-        box-shadow: 0 0 .5em @ini_text_alt;
-        display: block;
-    }
-}
-
-.dokuwiki div.page {
-    clear: both;
-    background: @ini_background;
-    color: inherit;
-    border: 1px solid @ini_background_alt;
-    box-shadow: 0 0 .5em @ini_text_alt;
-    border-radius: 2px;
-    padding: 1.556em 2em 2em;
-    margin-bottom: .5em;
-    overflow: hidden;
-    word-wrap: break-word;
-}
-
-.dokuwiki .docInfo {
-    font-size: 0.875em;
-    text-align: right;
-}
-
-/* license note under edit window */
-.dokuwiki div.license {
-    font-size: 93.75%;
-}
-
-[dir=rtl] .dokuwiki .docInfo {
-    text-align: left;
-}
-
-[dir=rtl] .dokuwiki .pageId {
-    float: left;
-    margin-left: -1em;
-    margin-right: 0;
-}
-
-/* footer
-********************************************************************/
-
-.dokuwiki .wrapper {
-    margin-bottom: 1.4em;
-}
-
-#dokuwiki__footer {
-    margin-bottom: 1em;
-    text-align: center;
-
-    > .pad {
-        font-size: 0.875em;
-    }
-
-    div.license {
-        margin-bottom: 0.5em;
-        font-size: 100%;
-    }
-
-    div.buttons a {
-        img {
-            opacity: 0.5;
-        }
-
-        &:hover img,
-        &:active img,
-        &:focus img {
-            opacity: 1;
-        }
-    }
-
-}
-
-[dir=rtl] #dokuwiki__footer .license img {
-    margin: 0 0 0 .5em;
-}
diff --git a/wiki/lib/tpl/dokuwiki/css/mobile.less b/wiki/lib/tpl/dokuwiki/css/mobile.less
deleted file mode 100644
index a52c723..0000000
--- a/wiki/lib/tpl/dokuwiki/css/mobile.less
+++ /dev/null
@@ -1,332 +0,0 @@
-/**
- * This file provides styles for mobile devices
- * and smaller screens (up to 480px and 768px width).
- *
- * @author Anika Henke <anika@selfthinker.org>
- */
-
-/* for detecting media queries in JavaScript (see script.js): */
-#screen__mode {
-    position: relative;
-    z-index: 0;
-}
-
-/* for screen widths in the tablet range
-********************************************************************/
-@media only screen and (max-width: @ini_tablet_width) {
-
-#screen__mode {
-    z-index: 1; /* for detecting media queries in JavaScript (see script.js) */
-}
-
-/* structure */
-#dokuwiki__aside {
-    width: 100%;
-    float: none;
-    margin-bottom: 1.5em;
-}
-
-#dokuwiki__aside > .pad,
-[dir=rtl] #dokuwiki__aside > .pad {
-    margin: 0 0 .5em;
-    /* style like .page */
-    background: @ini_background;
-    color: inherit;
-    border: 1px solid #eee;
-    box-shadow: 0 0 .5em @ini_text_alt;
-    border-radius: 2px;
-    padding: 1em;
-    margin-bottom: .5em;
-}
-
-#dokuwiki__aside h3.toggle {
-    font-size: 1em;
-
-    &.closed {
-        margin-bottom: 0;
-        padding-bottom: 0;
-    }
-    &.open {
-        border-bottom: 1px solid @ini_border;
-    }
-}
-
-.showSidebar #dokuwiki__content {
-    float: none;
-    margin-left: 0;
-    width: 100%;
-
-    > .pad {
-        margin-left: 0;
-    }
-}
-
-[dir=rtl] .showSidebar #dokuwiki__content,
-[dir=rtl] .showSidebar #dokuwiki__content > .pad {
-    margin-right: 0;
-}
-
-/* preview */
-.dokuwiki.hasSidebar div.preview {
-    border-right: none;
-}
-
-[dir=rtl] .dokuwiki.hasSidebar div.preview {
-    border-left: none;
-}
-
-/* toc */
-#dw__toc {
-    float: none;
-    margin: 0 0 1em 0;
-    width: auto;
-    border-left-width: 0;
-    border-bottom: 1px solid @ini_border;
-}
-[dir=rtl] #dw__toc {
-    float: none;
-    margin: 0 0 1em 0;
-    border-right-width: 0;
-}
-
-.dokuwiki h3.toggle {
-    padding: 0 .5em .5em 0;
-}
-#dw__toc > div,
-#dokuwiki__aside div.content {
-    padding: .2em 0 .5em;
-}
-
-/* page */
-.dokuwiki div.page {
-    padding: 1em;
-}
-/* enable horizontal scrolling in media manager */
-.mode_media div.page {
-    overflow: auto;
-}
-
-/* push pagetools closer to content */
-#dokuwiki__pagetools {
-    top: 0;
-}
-.showSidebar #dokuwiki__pagetools {
-    top: 3.5em;
-}
-
-
-/* _edit */
-.dokuwiki div.section_highlight {
-    margin: 0 -1em;
-    padding: 0 .5em;
-    border-width: 0 .5em;
-}
-.dokuwiki div.preview {
-    margin: 0 -1em;
-    padding: 1em;
-}
-
-/* _recent */
-.dokuwiki form.changes ul {
-    padding-left: 0;
-}
-[dir=rtl] .dokuwiki form.changes ul {
-    padding-right: 0;
-}
-
-
-} /* /@media */
-
-
-/* for screen widths in the smartphone range
-********************************************************************/
-@media only screen and (max-width: @ini_phone_width) {
-
-#screen__mode {
-    z-index: 2; /* for detecting media queries in JavaScript (see script.js) */
-}
-
-body {
-    font-size: 100%;
-}
-
-/*____________ structure ____________*/
-
-#dokuwiki__site {
-    max-width: 100%;
-
-    > .site {
-        padding: 0 .5em;
-    }
-}
-
-#dokuwiki__aside {
-    margin-bottom: 0;
-}
-
-#dokuwiki__header {
-    padding: .5em 0;
-}
-
-
-/*____________ header ____________*/
-
-#dokuwiki__header ul.a11y.skip {
-    position: static !important;
-    left: 0 !important;
-    width: auto !important;
-    height: auto !important;
-    float: right;
-    font-size: 0.875em;
-    list-style: none;
-    padding-left: 0;
-    margin: 0;
-
-    li {
-        margin-left: .35em;
-        display: inline;
-    }
-}
-[dir=rtl] #dokuwiki__header ul.a11y.skip {
-    left: auto !important;
-    right: 0 !important;
-    float: left;
-    padding-right: 0;
-
-    li {
-        margin: 0 .35em 0 0;
-    }
-}
-
-#dokuwiki__header .headings,
-#dokuwiki__header .tools {
-    float: none;
-    text-align: left;
-    width: auto;
-    margin-bottom: .5em;
-}
-[dir=rtl] #dokuwiki__header .headings,
-[dir=rtl] #dokuwiki__header .tools {
-    float: none;
-    text-align: right;
-    width: auto;
-}
-#dokuwiki__sitetools {
-    text-align: left;
-}
-[dir=rtl] #dokuwiki__sitetools {
-    text-align: right;
-}
-#dokuwiki__usertools,
-#dokuwiki__sitetools ul,
-#dokuwiki__sitetools h3,
-#dokuwiki__pagetools,
-.dokuwiki div.breadcrumbs, /* @todo: maybe move breadcrumbs to the bottom? */
-.dokuwiki .pageId {
-    display: none;
-}
-
-/* search form */
-#dokuwiki__sitetools form.search {
-    float: left;
-    margin: 0 .2em .2em 0;
-    width: 49%;
-}
-[dir=rtl] #dokuwiki__sitetools form.search {
-    float: right;
-    margin: 0 0 .2em .2em;
-}
-
-#dokuwiki__sitetools form.search input {
-    width: 100% !important;
-}
-.dokuwiki form.search div.ajax_qsearch {
-    display: none !important;
-}
-
-/* action dropdown is alternative for all hidden tools */
-#dokuwiki__header .mobileTools {
-    display: block;
-    font-size: 0.875em;
-    margin: 0 0 .2em 0;
-    float: right;
-    width: 49%;
-}
-[dir=rtl] #dokuwiki__header .mobileTools {
-    float: left;
-}
-#dokuwiki__header .mobileTools select {
-    padding: .3em .1em;
-    width: 100% !important;
-}
-
-/* force same height on search input and tools select */
-#dokuwiki__sitetools form.search input,
-#dokuwiki__header .mobileTools select {
-    height: 2.1em;
-    line-height: 2.1em;
-    overflow: visible;
-}
-
-
-/*____________ content ____________*/
-
-#dokuwiki__aside > .pad,
-.dokuwiki div.page {
-    padding: .5em;
-}
-
-/* form elements */
-#config__manager fieldset td.value,
-#config__manager td .input,
-.dokuwiki fieldset,
-.dokuwiki input.edit,
-.dokuwiki textarea {
-    width: auto !important;
-    max-width: 100% !important;
-}
-.dokuwiki select {
-    max-width: 100% !important;
-}
-#config__manager fieldset {
-    margin-left: 0;
-    margin-right: 0;
-}
-
-.dokuwiki label.block {
-    text-align: left;
-
-    span {
-        display: block;
-    }
-}
-[dir=rtl] .dokuwiki label.block {
-    text-align: right;
-}
-
-/* _edit */
-.dokuwiki div.section_highlight {
-    margin: 0;
-    padding: 0;
-    border-width: 0;
-}
-.dokuwiki div.preview {
-    margin: 0 -.5em;
-    padding: .5em;
-}
-
-
-} /* /@media */
-
-
-/* for screen heights smaller than the pagetools permit
-********************************************************************/
-@media only screen and (max-height: 400px) {
-// 400px is only roughly the required value, this may be wrong under non-standard circumstances
-
-#dokuwiki__pagetools div.tools {
-    position: static;
-}
-
-
-} /* /@media */
diff --git a/wiki/lib/tpl/dokuwiki/css/pagetools.less b/wiki/lib/tpl/dokuwiki/css/pagetools.less
deleted file mode 100644
index 2aaf0b9..0000000
--- a/wiki/lib/tpl/dokuwiki/css/pagetools.less
+++ /dev/null
@@ -1,124 +0,0 @@
-/**
- * This file provides the styles for the page tools
- * (fly out navigation beside the page to edit, etc).
- *
- * @author Anika Henke <anika@selfthinker.org>
- * @author Andreas Gohr <andi@splitbrain.org>
- */
-
-#dokuwiki__site > .site {
-    /* give space to the right so the tools won't disappear on smaller screens */
-    /* it's 40px because the 30px wide icons will have 5px more spacing to the left and right */
-    padding-right: 40px;
-    /* give the same space to the left to balance it out */
-    padding-left: 40px;
-}
-
-.dokuwiki div.page {
-    height: 190px;
-    min-height: 190px; /* 30 (= height of icons) x 6 (= maximum number of possible tools) + 2x5 */
-    height: auto;
-}
-
-#dokuwiki__pagetools {
-    @ico-width: 28px;
-    @ico-margin: 8px;
-    @item-width: (@ico-width + @ico-margin + @ico-margin);
-    @item-height: (@ico-width + @ico-margin);
-
-    position: absolute;
-    right: (-1 * @item-width);
-    /* on same vertical level as first headline, because .page has 2em padding */
-    top: 2em;
-    width: @item-width;
-
-    div.tools {
-        position: fixed;
-        width: @item-width;
-
-        ul {
-            position: absolute;
-            right: 0;
-            text-align: right;
-            margin: 0;
-            padding: 0;
-            /* add transparent border to prevent jumping when proper border is added on hover */
-            border: 1px solid transparent;
-            z-index: 10;
-
-            li {
-                padding: 0;
-                margin: 0;
-                list-style: none;
-                font-size: 0.875em;
-
-                a {
-
-                    display: block;
-                    /* add transparent border to prevent jumping when proper border is added on focus */
-                    border: 1px solid transparent;
-                    white-space: nowrap;
-                    line-height: @item-height;
-                    vertical-align: middle;
-                    height: @item-height;
-
-                    span {
-                        display: none; // hide label until hover
-                        margin: 0 @ico-margin;
-                    }
-
-                    svg {
-                        width: @ico-width;
-                        height: @ico-width;
-                        margin: 0 @ico-margin;
-                        display: inline-block;
-                        vertical-align: middle;
-                        fill: @ini_border;
-                    }
-                }
-
-                // on interaction show the full item
-                a:active,
-                a:focus,
-                a:hover {
-                    background-color: @ini_background_alt;
-
-                    span {
-                        display: inline-block;
-                    }
-
-                    svg {
-                        fill: @ini_link;
-                    }
-                }
-            }
-        }
-    }
-
-    [dir=rtl] & {
-        right: auto;
-        left: (-1 * @item-width);
-
-        div.tools {
-            ul {
-                right: auto;
-                left: 0;
-                text-align: left;
-            }
-        }
-    }
-}
-
-// on hover show all items
-#dokuwiki__pagetools:hover {
-    div.tools ul {
-        background-color: @ini_background;
-        border-color: @ini_border;
-        border-radius: 2px;
-        box-shadow: 2px 2px 2px @ini_text_alt;
-
-        li a span {
-            display: inline-block;
-        }
-    }
-}
diff --git a/wiki/lib/tpl/dokuwiki/css/print.css b/wiki/lib/tpl/dokuwiki/css/print.css
deleted file mode 100644
index 7197ac1..0000000
--- a/wiki/lib/tpl/dokuwiki/css/print.css
+++ /dev/null
@@ -1,177 +0,0 @@
-/**
- * This file provides the styles for printing.
- *
- * @todo: improve and finish
- */
-
-body {
-    font: normal 87.5%/1.3 Garamond, Baskerville, "Hoefler Text", "Nimbus Roman No9 L", serif;
-    background-color: #fff;
-    color: #000;
-}
-
-/* hide certain sections */
-.a11y,
-audio,
-video,
-#dokuwiki__header .tools,
-#dokuwiki__aside,
-.dokuwiki .breadcrumbs,
-.dokuwiki .pageId,
-#dw__toc,
-h3.toggle,
-#dokuwiki__pagetools,
-#dokuwiki__footer {
-    display: none;
-}
-
-h1,
-h2,
-h3,
-h4,
-h5,
-caption,
-legend {
-    clear: both;
-}
-ul {
-    list-style: disc outside;
-}
-ol {
-    list-style: decimal outside;
-}
-ol ol {
-    list-style-type: lower-alpha;
-}
-ol ol ol {
-    list-style-type: upper-roman;
-}
-ol ol ol ol {
-    list-style-type: upper-alpha;
-}
-ol ol ol ol ol {
-    list-style-type: lower-roman;
-}
-
-a:link,
-a:visited {
-    text-decoration: none;
-    border-bottom: 1pt dotted;
-    color: #333;
-    background-color: inherit;
-}
-
-/* display href after link */
-a.urlextern:after,
-a.interwiki:after,
-a.mail:after {
-   content: " [" attr(href) "]";
-   font-size: 90%;
-}
-
-/* code blocks */
-pre {
-    font-family: monospace;
-}
-dl.code dt,
-dl.file dt {
-    font-weight: bold;
-}
-
-mark {
-    font-weight: bold;
-}
-
-/* images */
-img {
-    border-width: 0;
-    vertical-align: middle;
-}
-img.media {
-    margin: .2em 0;
-}
-img.medialeft {
-    margin: .2em 1em .2em 0;
-}
-img.mediaright {
-    margin: .2em 0 .2em 1em;
-}
-img.mediacenter {
-    margin: .2em auto;
-}
-
-blockquote {
-    padding: 0 10pt;
-    margin: 0;
-    border: solid #ccc;
-    border-width: 0 0 0 2pt;
-}
-[dir=rtl] blockquote {
-    border-width: 0 2pt 0 0;
-}
-
-/* tables */
-.dokuwiki div.table {
-    margin-bottom: 1.4em;
-}
-table {
-    border-collapse: collapse;
-    empty-cells: show;
-    border-spacing: 0;
-    border: 1pt solid #ccc;
-}
-th,
-td {
-    padding: 3pt 5pt;
-    margin: 0;
-    vertical-align: top;
-    border: 1pt solid #666;
-}
-th {
-    font-weight: bold;
-    text-align: left;
-}
-[dir=rtl] th {
-    text-align: right;
-}
-
-
-/*____________ a bit of layout ____________*/
-
-#dokuwiki__header {
-    border-bottom: 2pt solid #ccc;
-}
-#dokuwiki__header h1 {
-    font-size: 1.5em;
-}
-#dokuwiki__header h1 a {
-    text-decoration: none;
-    border-width: 0;
-}
-#dokuwiki__header h1 img {
-    float: left;
-    margin-right: .5em;
-}
-[dir=rtl] #dokuwiki__header h1 img {
-    float: right;
-    margin-right: 0;
-    margin-left: .5em;
-}
-
-.dokuwiki div.footnotes {
-    clear: both;
-    border-top: 1pt dotted #999;
-    margin-top: 10pt;
-}
-
-.dokuwiki div.docInfo {
-    font-size: 90%;
-    text-align: right;
-    clear: both;
-    padding-top: 2pt;
-    border-top: 1pt solid #999;
-    margin-top: 10pt;
-}
-[dir=rtl] .dokuwiki div.docInfo {
-    text-align: left;
-}
diff --git a/wiki/lib/tpl/dokuwiki/css/structure.less b/wiki/lib/tpl/dokuwiki/css/structure.less
deleted file mode 100644
index 3ea2f83..0000000
--- a/wiki/lib/tpl/dokuwiki/css/structure.less
+++ /dev/null
@@ -1,89 +0,0 @@
-/**
- * This file provides styles for the general layout structure.
- *
- * @author Anika Henke <anika@selfthinker.org>
- */
-body {
-    margin: 0 auto;
-}
-
-#dokuwiki__site {
-    margin: 0 auto;
-    max-width: @ini_site_width;
-}
-
-#dokuwiki__site > .site {
-    padding: 0 .5em;
-}
-
-#dokuwiki__header {
-    width: 100%;
-
-    .headings {
-        float: left;
-    }
-
-    .tools {
-        float: right;
-        text-align: right;
-    }
-}
-
-[dir=rtl] #dokuwiki__header {
-    .headings {
-        float: right;
-        text-align: right;
-    }
-
-    .tools {
-        float: left;
-        text-align: left;
-    }
-}
-
-#dokuwiki__site .wrapper {
-    position: relative;
-}
-
-#dokuwiki__aside {
-    width: @ini_sidebar_width;
-    float: left;
-    position: relative;
-    display: block;
-
-    > .pad {
-        margin: 0 1.5em 0 0;
-    }
-}
-
-[dir=rtl] #dokuwiki__aside {
-    float: right;
-    > .pad {
-        margin: 0 0 0 1.5em;
-    }
-}
-
-.showSidebar #dokuwiki__content {
-    float: right;
-    margin-left: (-1 * @ini_sidebar_width);
-    width: 100%;
-
-    > .pad {
-        margin-left: @ini_sidebar_width;
-    }
-}
-
-[dir=rtl] .showSidebar #dokuwiki__content {
-    float: left;
-    margin-left: 0;
-    margin-right: (-1 * @ini_sidebar_width);
-
-    > .pad {
-        margin-left: 0;
-        margin-right: @ini_sidebar_width;
-    }
-}
-
-#dokuwiki__footer {
-    clear: both;
-}
diff --git a/wiki/lib/tpl/dokuwiki/css/usertools.less b/wiki/lib/tpl/dokuwiki/css/usertools.less
deleted file mode 100644
index efdf16c..0000000
--- a/wiki/lib/tpl/dokuwiki/css/usertools.less
+++ /dev/null
@@ -1,50 +0,0 @@
-#dokuwiki__usertools {
-    position: absolute;
-    top: .5em;
-    right: 40px; // pagetool width
-    text-align: right;
-    width: 100%;
-
-    ul {
-        margin: 0 auto;
-        padding: 0;
-        max-width: @ini_site_width;
-    }
-
-    li.action a {
-        display: inline-flex;
-        flex-direction: row-reverse;
-        flex-wrap: nowrap;
-
-        svg {
-            height: 1.4em;
-            width: 1.4em;
-            vertical-align: middle;
-            fill: @ini_border;
-            margin-right: 0.2em;
-        }
-    }
-
-    li.action a:hover,
-    li.action a:active {
-        svg {
-            fill: @ini_link;
-        }
-    }
-
-}
-
-[dir=rtl] #dokuwiki__usertools {
-    text-align: left;
-    left: 40px; // pagetool width
-    right: auto;
-
-
-    li.action a {
-
-        svg {
-            margin-right: 0;
-            margin-left: 0.2em;
-        }
-    }
-}
diff --git a/wiki/lib/tpl/dokuwiki/detail.php b/wiki/lib/tpl/dokuwiki/detail.php
deleted file mode 100644
index 8e65410..0000000
--- a/wiki/lib/tpl/dokuwiki/detail.php
+++ /dev/null
@@ -1,105 +0,0 @@
-<?php
-/**
- * DokuWiki Image Detail Page
- *
- * @author   Andreas Gohr <andi@splitbrain.org>
- * @author   Anika Henke <anika@selfthinker.org>
- * @license  GPL 2 (http://www.gnu.org/licenses/gpl.html)
- */
-
-// must be run from within DokuWiki
-if (!defined('DOKU_INC')) die();
-header('X-UA-Compatible: IE=edge,chrome=1');
-
-?><!DOCTYPE html>
-<html lang="<?php echo $conf['lang']?>" dir="<?php echo $lang['direction'] ?>" class="no-js">
-<head>
-    <meta charset="utf-8" />
-    <title>
-        <?php echo hsc(tpl_img_getTag('IPTC.Headline',$IMG))?>
-        [<?php echo strip_tags($conf['title'])?>]
-    </title>
-    <script>(function(H){H.className=H.className.replace(/\bno-js\b/,'js')})(document.documentElement)</script>
-    <?php tpl_metaheaders()?>
-    <meta name="viewport" content="width=device-width,initial-scale=1" />
-    <?php echo tpl_favicon(array('favicon', 'mobile')) ?>
-    <?php tpl_includeFile('meta.html') ?>
-</head>
-
-<body>
-    <div id="dokuwiki__site"><div id="dokuwiki__top" class="site <?php echo tpl_classes(); ?>">
-
-        <?php include('tpl_header.php') ?>
-
-        <div class="wrapper group" id="dokuwiki__detail">
-
-            <!-- ********** CONTENT ********** -->
-            <div id="dokuwiki__content"><div class="pad group">
-                <?php html_msgarea() ?>
-
-                <?php if(!$ERROR): ?>
-                    <div class="pageId"><span><?php echo hsc(tpl_img_getTag('IPTC.Headline',$IMG)); ?></span></div>
-                <?php endif; ?>
-
-                <div class="page group">
-                    <?php tpl_flush() ?>
-                    <?php tpl_includeFile('pageheader.html') ?>
-                    <!-- detail start -->
-                    <?php
-                    if($ERROR):
-                        echo '<h1>'.$ERROR.'</h1>';
-                    else: ?>
-                        <?php if($REV) echo p_locale_xhtml('showrev');?>
-                        <h1><?php echo nl2br(hsc(tpl_img_getTag('simple.title'))); ?></h1>
-
-                        <?php tpl_img(900,700); /* parameters: maximum width, maximum height (and more) */ ?>
-
-                        <div class="img_detail">
-                            <?php tpl_img_meta(); ?>
-                            <dl>
-                            <?php
-                            echo '<dt>'.$lang['reference'].':</dt>';
-                            $media_usage = ft_mediause($IMG,true);
-                            if(count($media_usage) > 0){
-                                foreach($media_usage as $path){
-                                    echo '<dd>'.html_wikilink($path).'</dd>';
-                                }
-                            }else{
-                                echo '<dd>'.$lang['nothingfound'].'</dd>';
-                            }
-                            ?>
-                            </dl>
-                            <p><?php echo $lang['media_acl_warning']; ?></p>
-                        </div>
-                        <?php //Comment in for Debug// dbg(tpl_img_getTag('Simple.Raw'));?>
-                    <?php endif; ?>
-                </div>
-                <!-- detail stop -->
-                <?php tpl_includeFile('pagefooter.html') ?>
-                <?php tpl_flush() ?>
-
-                <?php /* doesn't make sense like this; @todo: maybe add tpl_imginfo()?
-                <div class="docInfo"><?php tpl_pageinfo(); ?></div>
-                */ ?>
-
-            </div></div><!-- /content -->
-
-            <hr class="a11y" />
-
-            <!-- PAGE ACTIONS -->
-            <?php if (!$ERROR): ?>
-                <div id="dokuwiki__pagetools">
-                    <h3 class="a11y"><?php echo $lang['page_tools']; ?></h3>
-                    <div class="tools">
-                        <ul>
-                            <?php echo (new \dokuwiki\Menu\DetailMenu())->getListItems(); ?>
-                        </ul>
-                    </div>
-                </div>
-            <?php endif; ?>
-        </div><!-- /wrapper -->
-
-        <?php include('tpl_footer.php') ?>
-    </div></div><!-- /site -->
-</body>
-</html>
diff --git a/wiki/lib/tpl/dokuwiki/images/apple-touch-icon.png b/wiki/lib/tpl/dokuwiki/images/apple-touch-icon.png
deleted file mode 100644
index 87c99a9..0000000
--- a/wiki/lib/tpl/dokuwiki/images/apple-touch-icon.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/tpl/dokuwiki/images/button-css.png b/wiki/lib/tpl/dokuwiki/images/button-css.png
deleted file mode 100644
index 5c0f5a9..0000000
--- a/wiki/lib/tpl/dokuwiki/images/button-css.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/tpl/dokuwiki/images/button-donate.gif b/wiki/lib/tpl/dokuwiki/images/button-donate.gif
deleted file mode 100644
index bba284e..0000000
--- a/wiki/lib/tpl/dokuwiki/images/button-donate.gif
+++ /dev/null
Binary files differdiff --git a/wiki/lib/tpl/dokuwiki/images/button-dw.png b/wiki/lib/tpl/dokuwiki/images/button-dw.png
deleted file mode 100644
index 8d6aea8..0000000
--- a/wiki/lib/tpl/dokuwiki/images/button-dw.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/tpl/dokuwiki/images/button-html5.png b/wiki/lib/tpl/dokuwiki/images/button-html5.png
deleted file mode 100644
index f7b0688..0000000
--- a/wiki/lib/tpl/dokuwiki/images/button-html5.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/tpl/dokuwiki/images/button-php.gif b/wiki/lib/tpl/dokuwiki/images/button-php.gif
deleted file mode 100644
index 19aefb0..0000000
--- a/wiki/lib/tpl/dokuwiki/images/button-php.gif
+++ /dev/null
Binary files differdiff --git a/wiki/lib/tpl/dokuwiki/images/button-rss.png b/wiki/lib/tpl/dokuwiki/images/button-rss.png
deleted file mode 100644
index aa6b7fc..0000000
--- a/wiki/lib/tpl/dokuwiki/images/button-rss.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/tpl/dokuwiki/images/favicon.ico b/wiki/lib/tpl/dokuwiki/images/favicon.ico
deleted file mode 100644
index 8b9616a..0000000
--- a/wiki/lib/tpl/dokuwiki/images/favicon.ico
+++ /dev/null
Binary files differdiff --git a/wiki/lib/tpl/dokuwiki/images/license.txt b/wiki/lib/tpl/dokuwiki/images/license.txt
deleted file mode 100644
index 7d12604..0000000
--- a/wiki/lib/tpl/dokuwiki/images/license.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-Icons for:  sitetools.png
-Icon set:   Dusseldorf
-Designer:   pc.de
-License:    Creative Commons Attribution License [http://creativecommons.org/licenses/by/3.0/]
-URL:        http://pc.de/icons/#Dusseldorf
diff --git a/wiki/lib/tpl/dokuwiki/images/logo.png b/wiki/lib/tpl/dokuwiki/images/logo.png
deleted file mode 100644
index a1f4995..0000000
--- a/wiki/lib/tpl/dokuwiki/images/logo.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/tpl/dokuwiki/images/page-background.svg b/wiki/lib/tpl/dokuwiki/images/page-background.svg
deleted file mode 100644
index 086341d..0000000
--- a/wiki/lib/tpl/dokuwiki/images/page-background.svg
+++ /dev/null
@@ -1,8 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%">
-    <linearGradient id="g" x1="0%" y1="0%" x2="0%" y2="100%">
-        <stop offset="0" stop-color="#dddddd" />
-        <stop offset="0.1" stop-color="#eeeeee" />
-        <stop offset="0.4" stop-color="#fbfaf9" />
-    </linearGradient>
-    <rect x="0" y="0" width="100%" height="100%" fill="url(#g)" />
-</svg>
\ No newline at end of file
diff --git a/wiki/lib/tpl/dokuwiki/images/page-gradient.png b/wiki/lib/tpl/dokuwiki/images/page-gradient.png
deleted file mode 100644
index 38c7419..0000000
--- a/wiki/lib/tpl/dokuwiki/images/page-gradient.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/tpl/dokuwiki/images/pagetools-build.php b/wiki/lib/tpl/dokuwiki/images/pagetools-build.php
deleted file mode 100644
index eaceeb2..0000000
--- a/wiki/lib/tpl/dokuwiki/images/pagetools-build.php
+++ /dev/null
@@ -1,123 +0,0 @@
-<?php
-/**
- * This script generates a sprite from the unprocessed pagetool icons by combining them
- * and overlaying a color layer for the active state.
- *
- * This script requires a current libGD to be available.
- *
- * The color for the active state is read from the style.ini's __link__ replacement
- *
- * The final sprite is optimized with optipng if available.
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- * @todo   Maybe add some more error checking
- */
-$GAMMA = 0.8;
-$OPTIPNG = '/usr/bin/optipng';
-
-if('cli' != php_sapi_name()) die('please run from commandline');
-
-// load input images
-$input = glob('pagetools/*.png');
-sort($input);
-$cnt   = count($input);
-if(!$cnt){
-    die("No input images found. This script needs to be called from within the image directory!\n");
-}
-
-// create destination image
-$DST = imagecreatetruecolor(30,$cnt*45*2);
-imagesavealpha($DST, true);
-$C_trans = imagecolorallocatealpha($DST, 0, 0, 0, 127);
-imagefill($DST, 0, 0, $C_trans);
-
-// load highlight color from style.ini
-$ini = parse_ini_file('../style.ini',true);
-$COLOR = hex2rgb($ini['replacements']['__link__']);
-$C_active = imagecolorallocate($DST, $COLOR['r'],$COLOR['g'],$COLOR['b']);
-
-// add all the icons to the sprite image
-for($i=0; $i<$cnt; $i++){
-    $base = $i*90;
-
-    $IN = imagecreatefrompng($input[$i]);
-    imagesavealpha($IN, true);
-    imagecolorscale($IN,$GAMMA);
-    imagecopy($DST,$IN, 0,$base, 0,0, 30,30);
-    imagedestroy($IN);
-
-    $IN = imagecreatefrompng($input[$i]);
-    imagesavealpha($IN, true);
-    imagecolorscale($IN,$GAMMA);
-    imagecopy($DST,$IN, 0,$base+45, 0,0, 30,30);
-    imagedestroy($IN);
-
-    imagelayereffect($DST, IMG_EFFECT_OVERLAY);
-    imagefilledrectangle($DST, 0,$base+45, 30,$base+45+30, $C_active);
-    imagelayereffect($DST, IMG_EFFECT_NORMAL);
-}
-
-// output sprite
-imagepng($DST,'pagetools-sprite.png');
-imagedestroy($DST);
-
-// optimize if possible
-if(is_executable($OPTIPNG)){
-    system("$OPTIPNG -o5 'pagetools-sprite.png'");
-}
-
-/**
- * Convert a hex color code to an rgb array
- */
-function hex2rgb($hex) {
-    // strip hash
-    $hex = str_replace('#', '', $hex);
-
-    // normalize short codes
-    if(strlen($hex) == 3){
-        $hex = substr($hex,0,1).
-               substr($hex,0,1).
-               substr($hex,1,1).
-               substr($hex,1,1).
-               substr($hex,2,1).
-               substr($hex,2,1);
-    }
-
-    // calc rgb
-    return array(
-       'r' => hexdec(substr($hex, 0, 2)),
-       'g' => hexdec(substr($hex, 2, 2)),
-       'b' => hexdec(substr($hex, 4, 2))
-    );
-}
-
-/**
- * Scale (darken/lighten) a given image
- *
- * @param resource $img    The truetype GD image to work on
- * @param float     $scale  Scale the colors by this value ( <1 darkens, >1 lightens)
- */
-function imagecolorscale(&$img, $scale){
-    $w = imagesx($img);
-    $h = imagesy($img);
-
-    imagealphablending($img, false);
-    for($x = 0; $x < $w; $x++){
-        for($y = 0; $y < $h; $y++){
-            $rgba   = imagecolorat($img, $x, $y);
-            $a = ($rgba >> 24) & 0xFF;
-            $r = ($rgba >> 16) & 0xFF;
-            $g = ($rgba >> 8) & 0xFF;
-            $b = $rgba & 0xFF;
-
-            $r = max(min(round($r*$scale),255),0);
-            $g = max(min(round($g*$scale),255),0);
-            $b = max(min(round($b*$scale),255),0);
-
-            $color = imagecolorallocatealpha($img, $r, $g, $b, $a);
-            imagesetpixel($img, $x, $y, $color);
-        }
-    }
-    imagealphablending($img, true);
-}
-
diff --git a/wiki/lib/tpl/dokuwiki/images/pagetools-sprite.png b/wiki/lib/tpl/dokuwiki/images/pagetools-sprite.png
deleted file mode 100644
index 8e7f7f8..0000000
--- a/wiki/lib/tpl/dokuwiki/images/pagetools-sprite.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/tpl/dokuwiki/images/pagetools/00_default.png b/wiki/lib/tpl/dokuwiki/images/pagetools/00_default.png
deleted file mode 100644
index bcb2de0..0000000
--- a/wiki/lib/tpl/dokuwiki/images/pagetools/00_default.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/tpl/dokuwiki/images/pagetools/01_edit.png b/wiki/lib/tpl/dokuwiki/images/pagetools/01_edit.png
deleted file mode 100644
index 99f3093..0000000
--- a/wiki/lib/tpl/dokuwiki/images/pagetools/01_edit.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/tpl/dokuwiki/images/pagetools/02_create.png b/wiki/lib/tpl/dokuwiki/images/pagetools/02_create.png
deleted file mode 100644
index 57fa68d..0000000
--- a/wiki/lib/tpl/dokuwiki/images/pagetools/02_create.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/tpl/dokuwiki/images/pagetools/03_draft.png b/wiki/lib/tpl/dokuwiki/images/pagetools/03_draft.png
deleted file mode 100644
index ce1c6cf..0000000
--- a/wiki/lib/tpl/dokuwiki/images/pagetools/03_draft.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/tpl/dokuwiki/images/pagetools/04_show.png b/wiki/lib/tpl/dokuwiki/images/pagetools/04_show.png
deleted file mode 100644
index 1ced340..0000000
--- a/wiki/lib/tpl/dokuwiki/images/pagetools/04_show.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/tpl/dokuwiki/images/pagetools/05_source.png b/wiki/lib/tpl/dokuwiki/images/pagetools/05_source.png
deleted file mode 100644
index dffe193..0000000
--- a/wiki/lib/tpl/dokuwiki/images/pagetools/05_source.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/tpl/dokuwiki/images/pagetools/06_revert.png b/wiki/lib/tpl/dokuwiki/images/pagetools/06_revert.png
deleted file mode 100644
index 18c6444..0000000
--- a/wiki/lib/tpl/dokuwiki/images/pagetools/06_revert.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/tpl/dokuwiki/images/pagetools/07_revisions.png b/wiki/lib/tpl/dokuwiki/images/pagetools/07_revisions.png
deleted file mode 100644
index e599d01..0000000
--- a/wiki/lib/tpl/dokuwiki/images/pagetools/07_revisions.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/tpl/dokuwiki/images/pagetools/08_backlink.png b/wiki/lib/tpl/dokuwiki/images/pagetools/08_backlink.png
deleted file mode 100644
index aa34e27..0000000
--- a/wiki/lib/tpl/dokuwiki/images/pagetools/08_backlink.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/tpl/dokuwiki/images/pagetools/09_subscribe.png b/wiki/lib/tpl/dokuwiki/images/pagetools/09_subscribe.png
deleted file mode 100644
index 36254ff..0000000
--- a/wiki/lib/tpl/dokuwiki/images/pagetools/09_subscribe.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/tpl/dokuwiki/images/pagetools/10_top.png b/wiki/lib/tpl/dokuwiki/images/pagetools/10_top.png
deleted file mode 100644
index b930fd2..0000000
--- a/wiki/lib/tpl/dokuwiki/images/pagetools/10_top.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/tpl/dokuwiki/images/pagetools/11_mediamanager.png b/wiki/lib/tpl/dokuwiki/images/pagetools/11_mediamanager.png
deleted file mode 100644
index 71b5a33..0000000
--- a/wiki/lib/tpl/dokuwiki/images/pagetools/11_mediamanager.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/tpl/dokuwiki/images/pagetools/12_back.png b/wiki/lib/tpl/dokuwiki/images/pagetools/12_back.png
deleted file mode 100644
index 6d6093e..0000000
--- a/wiki/lib/tpl/dokuwiki/images/pagetools/12_back.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/tpl/dokuwiki/images/pagetools/license.txt b/wiki/lib/tpl/dokuwiki/images/pagetools/license.txt
deleted file mode 100644
index 299624c..0000000
--- a/wiki/lib/tpl/dokuwiki/images/pagetools/license.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-Icon set:   iPhone toolbar icons
-Designer:   TheWorkingGroup.ca
-License:    Creative Commons Attribution-Share Alike License [http://creativecommons.org/licenses/by-sa/3.0/]
-URL:        http://blog.twg.ca/2009/09/free-iphone-toolbar-icons/
diff --git a/wiki/lib/tpl/dokuwiki/images/search.png b/wiki/lib/tpl/dokuwiki/images/search.png
deleted file mode 100644
index a07a721..0000000
--- a/wiki/lib/tpl/dokuwiki/images/search.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/tpl/dokuwiki/images/toc-arrows.png b/wiki/lib/tpl/dokuwiki/images/toc-arrows.png
deleted file mode 100644
index 4a353e4..0000000
--- a/wiki/lib/tpl/dokuwiki/images/toc-arrows.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/tpl/dokuwiki/images/toc-bullet.png b/wiki/lib/tpl/dokuwiki/images/toc-bullet.png
deleted file mode 100644
index a2dfa47..0000000
--- a/wiki/lib/tpl/dokuwiki/images/toc-bullet.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/tpl/dokuwiki/images/usertools.png b/wiki/lib/tpl/dokuwiki/images/usertools.png
deleted file mode 100644
index 6810227..0000000
--- a/wiki/lib/tpl/dokuwiki/images/usertools.png
+++ /dev/null
Binary files differdiff --git a/wiki/lib/tpl/dokuwiki/lang/bg/lang.php b/wiki/lib/tpl/dokuwiki/lang/bg/lang.php
deleted file mode 100644
index 7717607..0000000
--- a/wiki/lib/tpl/dokuwiki/lang/bg/lang.php
+++ /dev/null
@@ -1,13 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author Kiril <neohidra@gmail.com>
- */
-$lang['__background_site__']   = 'ЦвÑÑ‚ за фона, под Ñъдъжанието';
-$lang['__link__']              = 'Стандартен цвÑÑ‚ за препратка';
-$lang['__existing__']          = 'ЦвÑÑ‚ за препратка към ÑъщеÑтвуващи Ñтаници';
-$lang['__missing__']           = 'ЦвÑÑ‚ за препратка към неÑъщеÑтвуващи Ñтаници';
-$lang['__site_width__']        = 'Ширина на Ñ†ÐµÐ»Ð¸Ñ Ñайт (може да бъде вÑÑка мерна единица:%, px, em, ...)';
-$lang['__sidebar_width__']     = 'Ширина на Ñтраничната лента (може да бъде вÑÑка мерна единица:%, px, em, ...)';
diff --git a/wiki/lib/tpl/dokuwiki/lang/cs/lang.php b/wiki/lib/tpl/dokuwiki/lang/cs/lang.php
deleted file mode 100644
index 58af0d2..0000000
--- a/wiki/lib/tpl/dokuwiki/lang/cs/lang.php
+++ /dev/null
@@ -1,15 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Jaroslav Lichtblau <jlichtblau@seznam.cz>
- */
-$lang['__background_site__']   = 'Barva hlavního pozadí (pod kontextovým boxem)';
-$lang['__link__']              = 'Hlavní barva odkazů';
-$lang['__existing__']          = 'Barva odkazů na existující stránky';
-$lang['__missing__']           = 'Barva odkazů na neexistující stránky';
-$lang['__site_width__']        = 'Šířka plné stránky (jakákoliv jednotka délky: %, px, em, ...)';
-$lang['__sidebar_width__']     = 'Šířka postranního panelu, pokud je použit (jakákoliv jednotka délky: %, px, em, ...)';
-$lang['__tablet_width__']      = 'Přepnout stránku do módu pro tablet pro velikost obrazovky menší než';
-$lang['__phone_width__']       = 'Přepnout stránku do módu pro telefon pro velikost obrazovky menší než';
diff --git a/wiki/lib/tpl/dokuwiki/lang/cs/style.txt b/wiki/lib/tpl/dokuwiki/lang/cs/style.txt
deleted file mode 100644
index e2ebe22..0000000
--- a/wiki/lib/tpl/dokuwiki/lang/cs/style.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-Pokud chcete upravit logo, jednoduše použijte Media Manager pro nahrání obrázku "logo.png" do kořenového jmenného prostoru "wiki" a ten bude poté použit jako logo. Můžete nahrát také ikonu "favicon.ico".
-Pokud používáte neveÅ™ejnou wiki, doporuÄujeme udÄ›lit plná práva pro Ätení prostoru "wiki" (nebo root) v nastavení ACL, jinak nebude vlastní logo zobrazeno nepÅ™ihlášeným uživatelům.
\ No newline at end of file
diff --git a/wiki/lib/tpl/dokuwiki/lang/cy/lang.php b/wiki/lib/tpl/dokuwiki/lang/cy/lang.php
deleted file mode 100644
index 860ce8f..0000000
--- a/wiki/lib/tpl/dokuwiki/lang/cy/lang.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-
-// style.ini values
-
-$lang['__background_site__'] = 'Lliw am y cefndir (tu ôl y blwch cynnwys)';
-$lang['__link__']     = 'Lliw dolenni cyffredinol';
-$lang['__existing__'] = 'Lliw dolenni i dudalennau sy\'n bodoli';
-$lang['__missing__']  = 'Lliw dolenni i dudalennau sy ddim yn bodoli';
-$lang['__site_width__']    = 'Lled y safle cyfan (unrhyw uned: %, px, em, ...)';
-$lang['__sidebar_width__'] = 'Lled y bar ochr, os oes un (unrhyw uned: %, px, em, ...)';
-$lang['__tablet_width__']  = 'O dan y lled sgrin hwn, bydd y safle yn newid i fodd tabled';
-$lang['__phone_width__']   = 'O dan y lled sgrin hwn, bydd y safle yn newid i fodd ffôn';
diff --git a/wiki/lib/tpl/dokuwiki/lang/cy/style.txt b/wiki/lib/tpl/dokuwiki/lang/cy/style.txt
deleted file mode 100644
index ce87798..0000000
--- a/wiki/lib/tpl/dokuwiki/lang/cy/style.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-Os ydych chi am newid y logo, defnyddiwch y Rheolwr Cyfrwng i lanlwytho ''logo.png'' i ''wici'' neu wraidd y namespace
-a chaiff ei ddefnyddio'n awtomatig. Gallwch chi hefyd lanlwytho ''favicon.ico'' yna. Os ydych chi'n defnyddio
-wici caeedig, awgrymwyd eich bod chi'n gwneud y ''wici'' (new wraidd) y namespace yn ddarllenadwy i bawb yn y
-gosodiadau ACL neu na chaiff eich logo chi ei weld gan ddefnyddwyr sydd heb fewngofnodi.
diff --git a/wiki/lib/tpl/dokuwiki/lang/de-informal/lang.php b/wiki/lib/tpl/dokuwiki/lang/de-informal/lang.php
deleted file mode 100644
index d8c3583..0000000
--- a/wiki/lib/tpl/dokuwiki/lang/de-informal/lang.php
+++ /dev/null
@@ -1,15 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author F. Mueller-Donath <j.felix@mueller-donath.de>
- */
-$lang['__background_site__']   = 'Farbe für den Seitenhintergrund (hinter dem Inhaltsbereich)';
-$lang['__link__']              = 'Allgemeine Linkfarbe';
-$lang['__existing__']          = 'Farbe für Links zu existierenden Seiten';
-$lang['__missing__']           = 'Farbe für Links zu nicht-existierenden Seiten';
-$lang['__site_width__']        = 'Breite der ganzen Seite (kann eine beliebige Längeneinheit sein: %, px, em, ...)';
-$lang['__sidebar_width__']     = 'Breite der Seitenleiste, falls vorhanden (kann eine beliebige Längeneinheit sein: %, px, em, ...)';
-$lang['__tablet_width__']      = 'Unter dieser Fensterbreite wechselt die Seite in den Tabletmodus';
-$lang['__phone_width__']       = 'Unter dieser Fensterbreite wechselt die Seite in den Handymodus';
diff --git a/wiki/lib/tpl/dokuwiki/lang/de-informal/style.txt b/wiki/lib/tpl/dokuwiki/lang/de-informal/style.txt
deleted file mode 100644
index 7f75bca..0000000
--- a/wiki/lib/tpl/dokuwiki/lang/de-informal/style.txt
+++ /dev/null
@@ -1 +0,0 @@
-Benutze einfach den Medien-Manager, um ein ''logo.png'' in den ''wiki''- oder obersten Namensraum hochzuladen, wenn du das Logo anpassen willst. Es wird dann automatisch als Logo verwendet. Alternativ kannst du dort auch ein ''favicon.ico'' hochladen. Falls du ein geschlossenes Wiki betreibst, 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.
diff --git a/wiki/lib/tpl/dokuwiki/lang/de/lang.php b/wiki/lib/tpl/dokuwiki/lang/de/lang.php
deleted file mode 100644
index 1e3115f..0000000
--- a/wiki/lib/tpl/dokuwiki/lang/de/lang.php
+++ /dev/null
@@ -1,15 +0,0 @@
-<?php
-
-/**
- * @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)';
-$lang['__link__']              = 'Allgemeine Linkfarbe';
-$lang['__existing__']          = 'Farbe für Links zu existierenden Seiten';
-$lang['__missing__']           = 'Farbe für Links zu nicht-existierenden Seiten';
-$lang['__site_width__']        = 'Breite der ganzen Seite (kann eine beliebige Längeneinheit sein: %, px, em, ...)';
-$lang['__sidebar_width__']     = 'Breite der Seitenleiste, falls vorhanden (kann eine beliebige Längeneinheit sein: %, px, em, ...)';
-$lang['__tablet_width__']      = 'Unter dieser Fensterbreite wechselt die Seite in den Tabletmodus';
-$lang['__phone_width__']       = 'Unter dieser Fensterbreite wechselt die Seite in den Handymodus';
diff --git a/wiki/lib/tpl/dokuwiki/lang/de/style.txt b/wiki/lib/tpl/dokuwiki/lang/de/style.txt
deleted file mode 100644
index 6e1d551..0000000
--- a/wiki/lib/tpl/dokuwiki/lang/de/style.txt
+++ /dev/null
@@ -1 +0,0 @@
-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.
diff --git a/wiki/lib/tpl/dokuwiki/lang/en/lang.php b/wiki/lib/tpl/dokuwiki/lang/en/lang.php
deleted file mode 100644
index 7c890c6..0000000
--- a/wiki/lib/tpl/dokuwiki/lang/en/lang.php
+++ /dev/null
@@ -1,13 +0,0 @@
-<?php
-
-// style.ini values
-
-$lang['__background_site__'] = 'Color for the very background (behind the content box)';
-$lang['__link__']     = 'The general link color';
-$lang['__existing__'] = 'The color for links to existing pages';
-$lang['__missing__']  = 'The color for links to non-existing pages';
-$lang['__site_width__']    = 'The width of the full site (can be any length unit: %, px, em, ...)';
-$lang['__sidebar_width__'] = 'The width of the sidebar, if any (can be any length unit: %, px, em, ...)';
-$lang['__tablet_width__']  = 'Below screensizes of this width, the site switches to tablet mode';
-$lang['__phone_width__']   = 'Below screensizes of this width, the site switches to phone mode';
-$lang['__theme_color__']   = 'Theme color of the web app';
diff --git a/wiki/lib/tpl/dokuwiki/lang/en/style.txt b/wiki/lib/tpl/dokuwiki/lang/en/style.txt
deleted file mode 100644
index 7bf3e1a..0000000
--- a/wiki/lib/tpl/dokuwiki/lang/en/style.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-If you want to adjust the logo, simply use the Media Manager to upload a ''logo.png'' into the ''wiki'' or the root namespace and it
-will be automatically used. You can also upload a ''favicon.ico'' there. If you use a closed
-wiki it is recommended to make the ''wiki'' (or root) namespace world readable in the ACL settings or
-your logo is not shown to not logged in users.
diff --git a/wiki/lib/tpl/dokuwiki/lang/es/lang.php b/wiki/lib/tpl/dokuwiki/lang/es/lang.php
deleted file mode 100644
index 3425e33..0000000
--- a/wiki/lib/tpl/dokuwiki/lang/es/lang.php
+++ /dev/null
@@ -1,16 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Domingo Redal <docxml@gmail.com>
- */
-$lang['__background_site__']   = 'Color para el fondo (detrás de la caja de contenido)';
-$lang['__link__']              = 'El color de los enlaces en general';
-$lang['__existing__']          = 'El color de los enlaces a páginas existentes';
-$lang['__missing__']           = 'El color de los enlaces a páginas no existentes';
-$lang['__site_width__']        = 'El ancho de la página completa (puede ser cualquier unidad de longitud: %, px, em, ...)';
-$lang['__sidebar_width__']     = 'El ancho de la barra lateral (puede ser cualquier unidad de longitud: %, px, em, ...)';
-$lang['__tablet_width__']      = 'Para tamaños de pantalla por debajo de esta anchura, el sitio cambia al modo tableta';
-$lang['__phone_width__']       = 'Para tamaños de pantalla por debajo de esta anchura, el sitio cambia al modo teléfono';
-$lang['__theme_color__']       = 'Color del tema de la aplicación web';
diff --git a/wiki/lib/tpl/dokuwiki/lang/es/style.txt b/wiki/lib/tpl/dokuwiki/lang/es/style.txt
deleted file mode 100644
index 60ce308..0000000
--- a/wiki/lib/tpl/dokuwiki/lang/es/style.txt
+++ /dev/null
@@ -1 +0,0 @@
-Si desea ajustar el logotipo, sólo tiene que utilizar el Administrador de Medios para cargar un ''logo.png'' dentro de "wiki'' o en el espacio de nombres de la raíz y se utilizará automáticamente. También puede cargar un ''favicon.ico'' allí. Si utiliza un wiki cerrado se recomienda hacer el ''wiki'' (o raíz) espacio de nombres legible por todo el mundo en la configuración de ACL o su logotipo no se mostrará para que los usuarios no registrados.
\ No newline at end of file
diff --git a/wiki/lib/tpl/dokuwiki/lang/fa/lang.php b/wiki/lib/tpl/dokuwiki/lang/fa/lang.php
deleted file mode 100644
index e962760..0000000
--- a/wiki/lib/tpl/dokuwiki/lang/fa/lang.php
+++ /dev/null
@@ -1,15 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Masoud Sadrnezhaad <masoud@sadrnezhaad.ir>
- */
-$lang['__background_site__']   = 'رنگ پس‌زمینه (پشت جعبهٔ متن)';
-$lang['__link__']              = 'رنگ لینک معمول';
-$lang['__existing__']          = 'رنگ برای لینک به ØµÙØ­Ø§Øª موجود';
-$lang['__missing__']           = 'رنگ برای لینک به ØµÙØ­Ø§Øª ناموجود';
-$lang['__site_width__']        = 'عرض Ú©Ù„ سایت (از واحدهای طول شامل % یا px یا em Ùˆ ... می‌شود Ø§Ø³ØªÙØ§Ø¯Ù‡ کرد)';
-$lang['__sidebar_width__']     = 'عرض نوار کناری درصورت وجود (از واحدهای طول شامل % یا px یا em Ùˆ ... می‌شود Ø§Ø³ØªÙØ§Ø¯Ù‡ کرد)';
-$lang['__tablet_width__']      = 'در پایین اندازه‌های ØµÙØ­Ù‡ با این عرض وقتی Ú©Ù‡ در تبلت باز می‌شود';
-$lang['__phone_width__']       = 'در پایین اندازه‌های ØµÙØ­Ù‡ با این عرض وقتی Ú©Ù‡ در تلÙÙ† موبایل باز می‌شود';
diff --git a/wiki/lib/tpl/dokuwiki/lang/fa/style.txt b/wiki/lib/tpl/dokuwiki/lang/fa/style.txt
deleted file mode 100644
index f9009fd..0000000
--- a/wiki/lib/tpl/dokuwiki/lang/fa/style.txt
+++ /dev/null
@@ -1 +0,0 @@
-اگر می‌خواهید یک لوگو تنظیم کنید، به راحتی مدیریت رسانه‌ها را باز کنید Ùˆ یک تصویر با نام ''logo.png'' در ÙØ¶Ø§ÛŒ نام اصلی یا ''wiki'' آپلود کنید. سپس لوگو به صورت اتوماتیک مورد Ø§Ø³ØªÙØ§Ø¯Ù‡ قرار می‌گیرد. همچنین می‌توانید یک ''favicon.ico'' در آن‌جا آپلود کنید. اگر از ویکی بسته Ø§Ø³ØªÙØ§Ø¯Ù‡ می‌کنید پیشنهاد می‌شود Ú©Ù‡ ÙØ¶Ø§ÛŒ نام ویکی (یا اصلی) در تنظیمات خواندنی به همه باشد یا درغیر اینصورت لوگو به کاربرانی Ú©Ù‡ وارد نشده باشند نمایش داده نمی‌شود.
\ No newline at end of file
diff --git a/wiki/lib/tpl/dokuwiki/lang/fr/lang.php b/wiki/lib/tpl/dokuwiki/lang/fr/lang.php
deleted file mode 100644
index 9059901..0000000
--- a/wiki/lib/tpl/dokuwiki/lang/fr/lang.php
+++ /dev/null
@@ -1,17 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Schplurtz le Déboulonné <Schplurtz@laposte.net>
- * @author Nicolas Friedli <nicolas@theologique.ch>
- */
-$lang['__background_site__']   = 'Couleur du fond (derrière la boîte de contenu)';
-$lang['__link__']              = 'Couleur générale des liens';
-$lang['__existing__']          = 'Couleur des liens pour les pages existantes';
-$lang['__missing__']           = 'Couleur des liens pour les pages inexistantes';
-$lang['__site_width__']        = 'Largeur du site complet (dans une unité de longueur valide: %, px, em,...)';
-$lang['__sidebar_width__']     = 'Largeur de la barre latérale, si existante (dans une unité de longueur valide: %, px, em,...)';
-$lang['__tablet_width__']      = 'En dessous de cette largeur, le site passe en mode tablette.';
-$lang['__phone_width__']       = 'En dessous de cette largeur, le site passe en mode smartphone.';
-$lang['__theme_color__']       = 'Thème de couleur de l\'application web';
diff --git a/wiki/lib/tpl/dokuwiki/lang/fr/style.txt b/wiki/lib/tpl/dokuwiki/lang/fr/style.txt
deleted file mode 100644
index 9034cbc..0000000
--- a/wiki/lib/tpl/dokuwiki/lang/fr/style.txt
+++ /dev/null
@@ -1 +0,0 @@
-Si vous souhaitez modifier le logo, utilisez simplement le gestionnaire de médias et envoyez un fichier nommé "logo.png" dans la catégorie "wiki" ou à la racine. Il sera automatiquement utilisé. Il en est de même pour le "favicon.ico". Si vous utilisez un wiki fermé, il est recommandé de régler les ACL de la racine ou de la catégorie "wiki" pour rendre ces images visibles aux utilisateurs non connectés.
\ No newline at end of file
diff --git a/wiki/lib/tpl/dokuwiki/lang/hr/lang.php b/wiki/lib/tpl/dokuwiki/lang/hr/lang.php
deleted file mode 100644
index 3462fa5..0000000
--- a/wiki/lib/tpl/dokuwiki/lang/hr/lang.php
+++ /dev/null
@@ -1,16 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Davor Turkalj <turki.bsc@gmail.com>
- */
-$lang['__background_site__']   = 'Boja pozadine ispod okvira sa sadržajem';
-$lang['__link__']              = 'Boja opće poveznice';
-$lang['__existing__']          = 'Boja poveznice na postojeće stranice';
-$lang['__missing__']           = 'Boja poveznice na nepostojeće stranice';
-$lang['__site_width__']        = 'Širina pune stranice (može biti bilo koja jedinica: %, px, em, ...)';
-$lang['__sidebar_width__']     = 'Å irina boÄne stranice, ako postoji (može biti bilo koja jedinica: %, px, em, ...)';
-$lang['__tablet_width__']      = 'Ispod ove širine, prebaci mod prikaza za tablete';
-$lang['__phone_width__']       = 'Ispod ove širine, prebaci mod prikaza za mobilni telefon';
-$lang['__theme_color__']       = 'Boja teme web aplikacija';
diff --git a/wiki/lib/tpl/dokuwiki/lang/hr/style.txt b/wiki/lib/tpl/dokuwiki/lang/hr/style.txt
deleted file mode 100644
index a86d76a..0000000
--- a/wiki/lib/tpl/dokuwiki/lang/hr/style.txt
+++ /dev/null
@@ -1 +0,0 @@
-Ako želite podesiti logo, jednostavno putem upravitelja datoteka uÄitate "logo.png" u wiki ili root imenski prostor i biti će automatski koriÅ¡tena. Tu možete uÄitati i ''favicon.ico''. Ako koristite ACL-om zaÅ¡tićeni wiki s kontrolom pristupa, obavezno morate uÄiniti vidljivim svim korisnicima (i neprijavljenim!) wiki ili root imenski prostor gdje je logo pohranjen.
\ No newline at end of file
diff --git a/wiki/lib/tpl/dokuwiki/lang/hu/lang.php b/wiki/lib/tpl/dokuwiki/lang/hu/lang.php
deleted file mode 100644
index 0837366..0000000
--- a/wiki/lib/tpl/dokuwiki/lang/hu/lang.php
+++ /dev/null
@@ -1,15 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author Marton Sebok <sebokmarton@gmail.com>
- */
-$lang['__background_site__']   = 'Lap színe (a tartalom mögött)';
-$lang['__link__']              = 'Hivatkozás általános színe';
-$lang['__existing__']          = 'Hivatkozása színe létező lapoknál';
-$lang['__missing__']           = 'Hivatkozása színe nem létező lapoknál';
-$lang['__site_width__']        = 'Az oldal teljes szélessége (tetszőleges mértékegységgel: %, px, em, ...)';
-$lang['__sidebar_width__']     = 'Az oldalsáv szélessége (tetszőleges mértékegységgel: %, px, em, ...)';
-$lang['__tablet_width__']      = 'Váltás tablet-módra ezen szélesség alatt';
-$lang['__phone_width__']       = 'Váltás mobiltelefon-módra ezen szélesség alatt';
diff --git a/wiki/lib/tpl/dokuwiki/lang/hu/style.txt b/wiki/lib/tpl/dokuwiki/lang/hu/style.txt
deleted file mode 100644
index 1cdf517..0000000
--- a/wiki/lib/tpl/dokuwiki/lang/hu/style.txt
+++ /dev/null
@@ -1 +0,0 @@
-A logó megváltoztatásához tölts fel egy képet "logo.png" néven a "wiki" névtérbe vagy a kiindulási névtérbe. Ugyanígy feltöltheted ide az oldalhoz tartozó ikont is, "favicon.ico" néven. Ha zárt wikit használsz, javasoljuk, hogy állítsd be a "wiki" (vagy a kiindulási) névteret mindenki számára olvashatónak, különben a logót csak a bejelentkezett felhasználók fogják látni.
\ No newline at end of file
diff --git a/wiki/lib/tpl/dokuwiki/lang/it/lang.php b/wiki/lib/tpl/dokuwiki/lang/it/lang.php
deleted file mode 100644
index cec5ff6..0000000
--- a/wiki/lib/tpl/dokuwiki/lang/it/lang.php
+++ /dev/null
@@ -1,15 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Torpedo <dgtorpedo@gmail.com>
- */
-$lang['__background_site__']   = 'Colore per lo sfondo di livello più basso (dietro il riquadro del contenuto)';
-$lang['__link__']              = 'Colore generale per i link';
-$lang['__existing__']          = 'Colore per i collegamenti alle pagine esistenti';
-$lang['__missing__']           = 'Colore per i collegamenti alle pagine non esistenti';
-$lang['__site_width__']        = 'Larghezza dell\'intero sito (può essere una qualunque unità di lunghezza: %, px, em, ...)';
-$lang['__sidebar_width__']     = 'Larghezza della barra laterale, se presente (può essere una qualunque unità di lunghezza: %, px, em, ...)';
-$lang['__tablet_width__']      = 'Per dimensioni dello schermo al di sotto di questa larghezza, il sito passa in modalità tablet';
-$lang['__phone_width__']       = 'Per dimensioni dello schermo al di sotto di questa larghezza, il sito passa in modalità telefono';
diff --git a/wiki/lib/tpl/dokuwiki/lang/it/style.txt b/wiki/lib/tpl/dokuwiki/lang/it/style.txt
deleted file mode 100644
index 1179f08..0000000
--- a/wiki/lib/tpl/dokuwiki/lang/it/style.txt
+++ /dev/null
@@ -1 +0,0 @@
-Se vuoi modificare il logo, semplicemente usa Media Manager per caricare un ''logo.png'' in ''wiki'' o nella directory root e questo verrà automaticamente usato. Qui puoi anche caricare una ''favicon.ico''. Se utilizzi un wiki chiuso si raccomanda di rendere la directory ''wiki'' (o root) leggibile a tutti, nelle impostazioni ACL, altrimenti il tuo logo non sarà visibile agli utenti che non hanno effettuato l'accesso.
\ No newline at end of file
diff --git a/wiki/lib/tpl/dokuwiki/lang/ja/lang.php b/wiki/lib/tpl/dokuwiki/lang/ja/lang.php
deleted file mode 100644
index 353bf07..0000000
--- a/wiki/lib/tpl/dokuwiki/lang/ja/lang.php
+++ /dev/null
@@ -1,15 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Hideaki SAWADA <chuno@live.jp>
- */
-$lang['__background_site__']   = 'サイト全体ã®èƒŒæ™¯è‰²ï¼ˆcontent box ã®èƒŒå¾Œï¼‰';
-$lang['__link__']              = '通常ã®ãƒªãƒ³ã‚¯è‰²';
-$lang['__existing__']          = '既存ページã¸ã®ãƒªãƒ³ã‚¯è‰²';
-$lang['__missing__']           = '存在ã—ãªã„ページã¸ã®ãƒªãƒ³ã‚¯è‰²';
-$lang['__site_width__']        = 'サイトã®å…¨ä½“幅(任æ„ã®é•·ã•ã®å˜ä½ã‚’使用å¯èƒ½ï¼š % px em 他)';
-$lang['__sidebar_width__']     = 'サイドãƒãƒ¼ãŒã‚ã‚‹å ´åˆã€ã‚µã‚¤ãƒ‰ãƒãƒ¼ã®å¹…(任æ„ã®é•·ã•ã®å˜ä½ã‚’使用å¯èƒ½ï¼š % px em 他)';
-$lang['__tablet_width__']      = 'タブレットモードã«ã‚µã‚¤ãƒˆã‚’切替ãˆã‚‹ã€ç”»é¢å¹…';
-$lang['__phone_width__']       = 'æºå¸¯é›»è©±ãƒ¢ãƒ¼ãƒ‰ã«ã‚µã‚¤ãƒˆã‚’切替ãˆã‚‹ã€ç”»é¢å¹…';
diff --git a/wiki/lib/tpl/dokuwiki/lang/ja/style.txt b/wiki/lib/tpl/dokuwiki/lang/ja/style.txt
deleted file mode 100644
index ab032e7..0000000
--- a/wiki/lib/tpl/dokuwiki/lang/ja/style.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-ロゴを変更ã—ãŸã„å ´åˆã€ãƒ¡ãƒ‡ã‚£ã‚¢ç®¡ç†ã‚’利用ã—ã¦ã€Œwikiã€ã¾ãŸã¯ãƒ«ãƒ¼ãƒˆåå‰ç©ºé–“ã«ã€Œlogo.pngã€ã‚’アップロードã—ã¦ä¸‹ã•ã„。
-自動的ã«ãã®ç”»åƒã‚’使用ã—ã¾ã™ã€‚
-åŒã˜å ´æ‰€ã«ã€Œfavicon.icoã€ã‚’アップロードã—ã¦ä½¿ç”¨ã™ã‚‹ã“ã¨ã‚‚ã§ãã¾ã™ã€‚
-アクセス制é™ã®ã‚ã‚‹ wiki を使用ã—ã¦ã„ã‚‹å ´åˆã€ã‚¢ã‚¯ã‚»ã‚¹ã‚³ãƒ³ãƒˆãƒ­ãƒ¼ãƒ«ç®¡ç†ã§ã€Œwikiã€ã¾ãŸã¯ãƒ«ãƒ¼ãƒˆåå‰ç©ºé–“を全員読å–å¯ã«è¨­å®šã—ã¦ä¸‹ã•ã„。
-ãã†ã§ãªã„ã¨ãƒ­ã‚°ã‚¤ãƒ³ã—ã¦ã„ãªã„ユーザーã«ãƒ­ã‚´ãŒè¡¨ç¤ºã•れã¾ã›ã‚“。
\ No newline at end of file
diff --git a/wiki/lib/tpl/dokuwiki/lang/ko/lang.php b/wiki/lib/tpl/dokuwiki/lang/ko/lang.php
deleted file mode 100644
index fcc422c..0000000
--- a/wiki/lib/tpl/dokuwiki/lang/ko/lang.php
+++ /dev/null
@@ -1,15 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Myeongjin <aranet100@gmail.com>
- */
-$lang['__background_site__']   = '(ë‚´ìš© ìƒìž ë’¤ì˜) 매우 ë°°ê²½ 색';
-$lang['__link__']              = 'ì¼ë°˜ ë§í¬ 색';
-$lang['__existing__']          = '문서가 존재하는 ë§í¬ì˜ 색';
-$lang['__missing__']           = '문서가 존재하지 않는 ë§í¬ì˜ 색';
-$lang['__site_width__']        = 'ì „ì²´ 사ì´íŠ¸ì˜ ë„ˆë¹„ (아무 ê¸¸ì´ ë‹¨ìœ„ë‚˜ ë  ìˆ˜ 있ìŒ: %, px, em, ...)';
-$lang['__sidebar_width__']     = '사ì´ë“œë°”ê°€ 있다면, ê·¸ê²ƒì˜ ë„ˆë¹„ (아무 ê¸¸ì´ ë‹¨ìœ„ë‚˜ ë  ìˆ˜ 있ìŒ: %, px, em, ...)';
-$lang['__tablet_width__']      = '사ì´íŠ¸ë¥¼ 태블릿 모드로 전환할 화면 너비';
-$lang['__phone_width__']       = '사ì´íŠ¸ë¥¼ í° ëª¨ë“œë¡œ 전환할 화면 너비';
diff --git a/wiki/lib/tpl/dokuwiki/lang/ko/style.txt b/wiki/lib/tpl/dokuwiki/lang/ko/style.txt
deleted file mode 100644
index 306f40e..0000000
--- a/wiki/lib/tpl/dokuwiki/lang/ko/style.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-로고를 조정하려면, 간단히 미디어 관리ìžë¥¼ 사용하여 ''wiki''나 루트 ì´ë¦„공간 ì•ˆì— ''logo.png''를 올리면
-ìžë™ìœ¼ë¡œ 사용ë©ë‹ˆë‹¤. ë˜í•œ ì—¬ê¸°ì— ''favicon.ico''를 올릴 수 있습니다. 만약 닫힌 위키를 사용한다면
-ACL 설정ì—서 ''wiki'' (ë˜ëŠ” 루트) ì´ë¦„ê³µê°„ì„ ì „ì—­ìœ¼ë¡œ ì½ì„ 수 있ë„ë¡ ì„¤ì •í•˜ê±°ë‚˜ 로고를 사용ìžê°€
-로그ì¸í•˜ì§€ 않으면 보여주지 않ë„ë¡ ì„¤ì •í•˜ëŠ” ê²ƒì„ ê¶Œìž¥í•©ë‹ˆë‹¤.
\ No newline at end of file
diff --git a/wiki/lib/tpl/dokuwiki/lang/nl/lang.php b/wiki/lib/tpl/dokuwiki/lang/nl/lang.php
deleted file mode 100644
index 772fb94..0000000
--- a/wiki/lib/tpl/dokuwiki/lang/nl/lang.php
+++ /dev/null
@@ -1,17 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Harriet Neitz <harrietneitz@gmail.com>
- * @author hugo smet <hugo.smet@scarlet.be>
- */
-$lang['__background_site__']   = 'Kleur voor de onderste ondergrond (achter de inhoud kader)';
-$lang['__link__']              = 'Kleur voor algemene link';
-$lang['__existing__']          = 'Kleur voor link naar bestaande pagina\'s.';
-$lang['__missing__']           = 'Kleur voor link naar onbestaande pagina\'s';
-$lang['__site_width__']        = 'Breedte van de max site (in gelijk welke eenheid: %, px, em,...)';
-$lang['__sidebar_width__']     = 'Breedte van de zijbalk,  indien aanwezig  (in gelijk welke eenheid: %, px, em,...)';
-$lang['__tablet_width__']      = 'Beneden de breedte van deze schermafmetingen schakelt de site over naar tablet modus.';
-$lang['__phone_width__']       = 'Beneden de breedte van deze schermafmetingen schakelt de site over naar telefoon modus.';
-$lang['__theme_color__']       = 'Thema kleur van de web app';
diff --git a/wiki/lib/tpl/dokuwiki/lang/nl/style.txt b/wiki/lib/tpl/dokuwiki/lang/nl/style.txt
deleted file mode 100644
index 55de5c7..0000000
--- a/wiki/lib/tpl/dokuwiki/lang/nl/style.txt
+++ /dev/null
@@ -1 +0,0 @@
-Wil je het logo aanpassen, gebruik dan de Media Manager om een "logo.png" in "wiki" of root naamruimte te uploaden. Dit logo zal dan automatisch gebruikt worden. Je kunt zo ook een "favicon.ico" uploaden. Indien je een gesloten wiki gebruikt is het aan te raden om de "wiki" (of root) naamruimte leesbaar te maken voor iedereen via de ACL instellingen, want anders wordt je logo niet getoond aan niet-ingelogde gebruikers.
diff --git a/wiki/lib/tpl/dokuwiki/lang/no/lang.php b/wiki/lib/tpl/dokuwiki/lang/no/lang.php
deleted file mode 100644
index 4c331a7..0000000
--- a/wiki/lib/tpl/dokuwiki/lang/no/lang.php
+++ /dev/null
@@ -1,15 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Arne Hanssen <arne.hanssen@getmail.no>
- */
-$lang['__background_site__']   = 'Farge for bakerste bakgrunn (bak innholdsboksen)';
-$lang['__link__']              = 'Generell lenkefarge';
-$lang['__existing__']          = 'Farge for lenker til eksisterende sider';
-$lang['__missing__']           = 'Farge for lenker til ikke-eksisterende sider';
-$lang['__site_width__']        = 'Bredde for hele siden (kan angis i ulike enheter som: (%, px, em, ...)';
-$lang['__sidebar_width__']     = 'Sidestolpens bredde, dersom denne finnes (kan angis i ulike enheter som: (%, px, em, ...)';
-$lang['__tablet_width__']      = 'For skjermbredde lavere en denne verden, vil siden endres til å vises i brett-modus';
-$lang['__phone_width__']       = 'For skjermbredde lavere en denne verden, vil siden endres til å vises i mobil-modus';
diff --git a/wiki/lib/tpl/dokuwiki/lang/no/style.txt b/wiki/lib/tpl/dokuwiki/lang/no/style.txt
deleted file mode 100644
index 34a667f..0000000
--- a/wiki/lib/tpl/dokuwiki/lang/no/style.txt
+++ /dev/null
@@ -1 +0,0 @@
-Dersom du ønsker å endre logoen kan du gå til Mediefiler-siden og laste opp en fil med navn «logo.png» i navnerommet «wiki» eller «rot». Filen vil da, automatisk bli bruk som logo. Du kan også last opp en «favicon.ico» hvis ønskelig. Dersom du bruker en lukket wiki er det anbefalt at du setter rettighetene for navnerommet «wiki», eller «rot» til å være lesbar for alle (world-readable). Hvis ikke vil din logo bare vises for brukere som er logget inn i wikien.
\ No newline at end of file
diff --git a/wiki/lib/tpl/dokuwiki/lang/pl/lang.php b/wiki/lib/tpl/dokuwiki/lang/pl/lang.php
deleted file mode 100644
index ffff09f..0000000
--- a/wiki/lib/tpl/dokuwiki/lang/pl/lang.php
+++ /dev/null
@@ -1,15 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Wojciech Lichota <wojciech@lichota.pl>
- */
-$lang['__background_site__']   = 'Kolor tła za polem zawartości';
-$lang['__link__']              = 'Kolor łącza';
-$lang['__existing__']          = 'Kolor łącza do istniejącej strony';
-$lang['__missing__']           = 'Kolor łącza do nieistniejącej strony';
-$lang['__site_width__']        = 'Szerokość pełnej strony (możliwa dowolna jednostka długości: %, px, em, ...)';
-$lang['__sidebar_width__']     = 'Szerokość paska bocznego, jeśli istnieje (możliwa dowolna jednostka długości: %, px, em, ...)';
-$lang['__tablet_width__']      = 'Szerokość ekrany poniżej której, strona przełączy się w tryb tabletu';
-$lang['__phone_width__']       = 'Szerokość ekrany poniżej której, strona przełączy się w tryb telefonu';
diff --git a/wiki/lib/tpl/dokuwiki/lang/pl/style.txt b/wiki/lib/tpl/dokuwiki/lang/pl/style.txt
deleted file mode 100644
index 7db0465..0000000
--- a/wiki/lib/tpl/dokuwiki/lang/pl/style.txt
+++ /dev/null
@@ -1 +0,0 @@
-Jeśli chcesz dostosować logo, po użyj Menadżera multimediów, aby przesłać plik "logo.png" do "wiki" lub głównego katalogu a zostanie on automatycznie użyty. Możesz również załadować tam plik "favicon.ico". Jeśli używasz zamkniętej wiki, zaleca się, aby na liście ACL katalogu "wiki" (lub root)  włączyć prawo odczytu. W przeciwnym przypadku twoje logo nie będzie widoczne dla niezalogowanych użytkowników.
\ No newline at end of file
diff --git a/wiki/lib/tpl/dokuwiki/lang/pt-br/lang.php b/wiki/lib/tpl/dokuwiki/lang/pt-br/lang.php
deleted file mode 100644
index edf8ec9..0000000
--- a/wiki/lib/tpl/dokuwiki/lang/pt-br/lang.php
+++ /dev/null
@@ -1,15 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Frederico Gonçalves Guimarães <frederico@teia.bio.br>
- */
-$lang['__background_site__']   = 'Cor para o fundo da tela (atrás da caixa de conteúdo)';
-$lang['__link__']              = 'Cor dos links gerais';
-$lang['__existing__']          = 'Cor dos links para páginas existentes';
-$lang['__missing__']           = 'Cor dos links para páginas não existentes';
-$lang['__site_width__']        = 'Largura do site inteiro (pode ser qualquer unidade: %, px, em, ...)';
-$lang['__sidebar_width__']     = 'Largura da barra lateral, caso exista (pode ser qualquer unidade: %, px, em, ...)';
-$lang['__tablet_width__']      = 'Em larguras abaixo dessa medida, o site mudará para o modo tablet';
-$lang['__phone_width__']       = 'Em larguras abaixo dessa medida, o site mudará para o modo telefone';
diff --git a/wiki/lib/tpl/dokuwiki/lang/pt-br/style.txt b/wiki/lib/tpl/dokuwiki/lang/pt-br/style.txt
deleted file mode 100644
index 52475d8..0000000
--- a/wiki/lib/tpl/dokuwiki/lang/pt-br/style.txt
+++ /dev/null
@@ -1 +0,0 @@
-Caso queira ajustar a logo, use o Gerenciador de Mídias para enviar um "logo.png" para o espaço de nomes "wiki" ou para a raiz e ele será automaticamente usado. Você também pode enviar um "favicon.ico". Caso o seu wiki seja fechado, é recomendável que o espaço de nomes "wiki" (ou a raiz) tenha permissão de leitura nas configurações de ACL, caso contrário a sua logo não será exibida para usuários não autenticados.
\ No newline at end of file
diff --git a/wiki/lib/tpl/dokuwiki/lang/ru/lang.php b/wiki/lib/tpl/dokuwiki/lang/ru/lang.php
deleted file mode 100644
index 4f5c93c..0000000
--- a/wiki/lib/tpl/dokuwiki/lang/ru/lang.php
+++ /dev/null
@@ -1,18 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Yuriy Skalko <yuriy.skalko@gmail.com>
- * @author RainbowSpike <1@2.ru>
- * @author Aleksandr Selivanov <alexgearbox@yandex.ru>
- */
-$lang['__background_site__']   = 'Цвет Ð´Ð»Ñ Ð´Ð°Ð»ÑŒÐ½ÐµÐ³Ð¾ фона (за окном Ñодержимого)';
-$lang['__link__']              = 'ОÑновной цвет ÑÑылок';
-$lang['__existing__']          = 'Цвет ÑÑылок на ÑущеÑтвующие Ñтраницы';
-$lang['__missing__']           = 'Цвет ÑÑылок на неÑущеÑтвующие Ñтраницы';
-$lang['__site_width__']        = 'Ширина вÑего Ñайта (любые CSS-единицы: %, px, em, ...)';
-$lang['__sidebar_width__']     = 'Ширина боковой панели, еÑли еÑть (любые CSS-единицы)';
-$lang['__tablet_width__']      = 'Переключать Ñайт в планшетный вид ниже ширины';
-$lang['__phone_width__']       = 'Переключать Ñайт в мобильный вид ниже ширины';
-$lang['__theme_color__']       = 'Цвет темы веб-приложениÑ';
diff --git a/wiki/lib/tpl/dokuwiki/lang/ru/style.txt b/wiki/lib/tpl/dokuwiki/lang/ru/style.txt
deleted file mode 100644
index fe60415..0000000
--- a/wiki/lib/tpl/dokuwiki/lang/ru/style.txt
+++ /dev/null
@@ -1 +0,0 @@
-ЕÑли вы хотите изменить логотип, проÑто иÑпользуйте «Управление медиафайлами» Ð´Ð»Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ¸ файла ''logo.png'' в корневое проÑтранÑтво имён или ''wiki'', и тогда он будет иÑпользоватьÑÑ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡ÐµÑки. Туда же вы можете загрузить ''favicon.ico''. ЕÑли ÑƒÂ Ð²Ð°Ñ Ð·Ð°ÐºÑ€Ñ‹Ñ‚Ð°Ñ Ð²Ð¸ÐºÐ¸, рекомендуетÑÑ ÑƒÐºÐ°Ð·Ð°Ñ‚ÑŒ права на «чтение» в ÑпиÑках ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»Ñ Ð´Ð¾Ñтупа Ð´Ð»Ñ Ð¿Ñ€Ð¾ÑтранÑтва имён ''wiki'' (или корневое), иначе логотип не будет показыватьÑÑ Ð½ÐµÐ·Ð°Ð»Ð¾Ð³Ð¸Ð½Ð¸Ð²ÑˆÐ¸Ð¼ÑÑ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñм.
\ No newline at end of file
diff --git a/wiki/lib/tpl/dokuwiki/lang/sk/lang.php b/wiki/lib/tpl/dokuwiki/lang/sk/lang.php
deleted file mode 100644
index ad200d3..0000000
--- a/wiki/lib/tpl/dokuwiki/lang/sk/lang.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Martin Michalek <michalek.dev@gmail.com>
- */
-$lang['__background_site__']   = 'Farba základného pozadia (za oknom s obsahom)';
-$lang['__link__']              = 'Všeobecná farba odkazu';
-$lang['__existing__']          = 'Farba odkazov na existujúce stránky';
-$lang['__missing__']           = 'Farba odkazov na neexistujúce stránky';
diff --git a/wiki/lib/tpl/dokuwiki/lang/sv/lang.php b/wiki/lib/tpl/dokuwiki/lang/sv/lang.php
deleted file mode 100644
index 6fdf423..0000000
--- a/wiki/lib/tpl/dokuwiki/lang/sv/lang.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Tor Härnqvist <tor@harnqvist.se>
- */
-$lang['__link__']              = 'Den generella länkfärgen';
-$lang['__existing__']          = 'Färg på länkar till existerande sidor';
-$lang['__missing__']           = 'Färg på länkar till sidor som inte finns';
-$lang['__site_width__']        = 'Bredden på hela webbsidan (kan anges i valfri längdenhet: %, px, em, ...)';
-$lang['__sidebar_width__']     = 'Bredden på sidokolumnen, om existerande (kan anges i valfri längdenhet: %, px, em, ...)';
diff --git a/wiki/lib/tpl/dokuwiki/lang/zh/lang.php b/wiki/lib/tpl/dokuwiki/lang/zh/lang.php
deleted file mode 100644
index a9a284f..0000000
--- a/wiki/lib/tpl/dokuwiki/lang/zh/lang.php
+++ /dev/null
@@ -1,15 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author lainme <lainme993@gmail.com>
- */
-$lang['__background_site__']   = '特别背景的颜色 (内容框åŽé¢)';
-$lang['__link__']              = '一般链接的颜色';
-$lang['__existing__']          = '指å‘存在的页é¢çš„链接颜色';
-$lang['__missing__']           = '指å‘ä¸å­˜åœ¨çš„页é¢çš„链接颜色';
-$lang['__site_width__']        = '全站的宽度 (å¯ä»¥æ˜¯ä»»ä½•长度å•ä½ï¼š%,px,em,...)';
-$lang['__sidebar_width__']     = 'ä¾§è¾¹æ çš„宽度 (如有,å¯ä»¥æ˜¯ä»»ä½•长度å•ä½ï¼š%,px,em,...)';
-$lang['__tablet_width__']      = '当å±å¹•尺寸å°äºŽè¿™ä¸ªå®½åº¦ï¼Œç«™ç‚¹åˆ‡æ¢åˆ°å¹³æ¿æ¨¡å¼';
-$lang['__phone_width__']       = '当å±å¹•尺寸å°äºŽè¿™ä¸ªå®½åº¦ï¼Œç«™ç‚¹åˆ‡æ¢åˆ°æ‰‹æœºæ¨¡å¼';
diff --git a/wiki/lib/tpl/dokuwiki/lang/zh/style.txt b/wiki/lib/tpl/dokuwiki/lang/zh/style.txt
deleted file mode 100644
index 79467c2..0000000
--- a/wiki/lib/tpl/dokuwiki/lang/zh/style.txt
+++ /dev/null
@@ -1 +0,0 @@
-如果您想调整 Logo,åªéœ€ä½¿ç”¨åª’体管ç†å™¨å°†â€œlogo.pngâ€ä¸Šä¼ åˆ°â€œwikiâ€æˆ–者根命å空间下。您也å¯ä»¥åŒæ ·ä¸Šä¼ ä¸€ä¸ªâ€œfavicon.icoâ€ã€‚如果您采用的是å°é—­ç»´åŸºï¼Œå»ºè®®åœ¨ACL设置中将“wiki†(或者根) 命å空间设置为全局å¯è¯»ï¼Œå¦åˆ™æœªç™»å½•用户无法看到您的 Logo。
\ No newline at end of file
diff --git a/wiki/lib/tpl/dokuwiki/main.php b/wiki/lib/tpl/dokuwiki/main.php
deleted file mode 100644
index 2d2151f..0000000
--- a/wiki/lib/tpl/dokuwiki/main.php
+++ /dev/null
@@ -1,88 +0,0 @@
-<?php
-/**
- * DokuWiki Default Template 2012
- *
- * @link     http://dokuwiki.org/template
- * @author   Anika Henke <anika@selfthinker.org>
- * @author   Clarence Lee <clarencedglee@gmail.com>
- * @license  GPL 2 (http://www.gnu.org/licenses/gpl.html)
- */
-
-if (!defined('DOKU_INC')) die(); /* must be run from within DokuWiki */
-header('X-UA-Compatible: IE=edge,chrome=1');
-
-$hasSidebar = page_findnearest($conf['sidebar']);
-$showSidebar = $hasSidebar && ($ACT=='show');
-?><!DOCTYPE html>
-<html lang="<?php echo $conf['lang'] ?>" dir="<?php echo $lang['direction'] ?>" class="no-js">
-<head>
-    <meta charset="utf-8" />
-    <title><?php tpl_pagetitle() ?> [<?php echo strip_tags($conf['title']) ?>]</title>
-    <script>(function(H){H.className=H.className.replace(/\bno-js\b/,'js')})(document.documentElement)</script>
-    <?php tpl_metaheaders() ?>
-    <meta name="viewport" content="width=device-width,initial-scale=1" />
-    <?php echo tpl_favicon(array('favicon', 'mobile')) ?>
-    <?php tpl_includeFile('meta.html') ?>
-</head>
-
-<body>
-    <div id="dokuwiki__site"><div id="dokuwiki__top" class="site <?php echo tpl_classes(); ?> <?php
-        echo ($showSidebar) ? 'showSidebar' : ''; ?> <?php echo ($hasSidebar) ? 'hasSidebar' : ''; ?>">
-
-        <?php include('tpl_header.php') ?>
-
-        <div class="wrapper group">
-
-            <?php if($showSidebar): ?>
-                <!-- ********** ASIDE ********** -->
-                <div id="dokuwiki__aside"><div class="pad aside include group">
-                    <h3 class="toggle"><?php echo $lang['sidebar'] ?></h3>
-                    <div class="content"><div class="group">
-                        <?php tpl_flush() ?>
-                        <?php tpl_includeFile('sidebarheader.html') ?>
-                        <?php tpl_include_page($conf['sidebar'], true, true) ?>
-                        <?php tpl_includeFile('sidebarfooter.html') ?>
-                    </div></div>
-                </div></div><!-- /aside -->
-            <?php endif; ?>
-
-            <!-- ********** CONTENT ********** -->
-            <div id="dokuwiki__content"><div class="pad group">
-                <?php html_msgarea() ?>
-
-                <div class="pageId"><span><?php echo hsc($ID) ?></span></div>
-
-                <div class="page group">
-                    <?php tpl_flush() ?>
-                    <?php tpl_includeFile('pageheader.html') ?>
-                    <!-- wikipage start -->
-                    <?php tpl_content() ?>
-                    <!-- wikipage stop -->
-                    <?php tpl_includeFile('pagefooter.html') ?>
-                </div>
-
-                <div class="docInfo"><?php tpl_pageinfo() ?></div>
-
-                <?php tpl_flush() ?>
-            </div></div><!-- /content -->
-
-            <hr class="a11y" />
-
-            <!-- PAGE ACTIONS -->
-            <div id="dokuwiki__pagetools">
-                <h3 class="a11y"><?php echo $lang['page_tools']; ?></h3>
-                <div class="tools">
-                    <ul>
-                        <?php echo (new \dokuwiki\Menu\PageMenu())->getListItems(); ?>
-                    </ul>
-                </div>
-            </div>
-        </div><!-- /wrapper -->
-
-        <?php include('tpl_footer.php') ?>
-    </div></div><!-- /site -->
-
-    <div class="no"><?php tpl_indexerWebBug() /* provide DokuWiki housekeeping, required in all templates */ ?></div>
-    <div id="screen__mode" class="no"></div><?php /* helper to detect CSS media query in script.js */ ?>
-</body>
-</html>
diff --git a/wiki/lib/tpl/dokuwiki/mediamanager.php b/wiki/lib/tpl/dokuwiki/mediamanager.php
deleted file mode 100644
index 53ed062..0000000
--- a/wiki/lib/tpl/dokuwiki/mediamanager.php
+++ /dev/null
@@ -1,44 +0,0 @@
-<?php
-/**
- * DokuWiki Media Manager Popup
- *
- * @author   Andreas Gohr <andi@splitbrain.org>
- * @license  GPL 2 (http://www.gnu.org/licenses/gpl.html)
- */
-// must be run from within DokuWiki
-if (!defined('DOKU_INC')) die();
-header('X-UA-Compatible: IE=edge,chrome=1');
-
-?><!DOCTYPE html>
-<html lang="<?php echo $conf['lang']?>" dir="<?php echo $lang['direction'] ?>" class="popup no-js">
-<head>
-    <meta charset="utf-8" />
-    <title>
-        <?php echo hsc($lang['mediaselect'])?>
-        [<?php echo strip_tags($conf['title'])?>]
-    </title>
-    <script>(function(H){H.className=H.className.replace(/\bno-js\b/,'js')})(document.documentElement)</script>
-    <?php tpl_metaheaders()?>
-    <meta name="viewport" content="width=device-width,initial-scale=1" />
-    <?php echo tpl_favicon(array('favicon', 'mobile')) ?>
-    <?php tpl_includeFile('meta.html') ?>
-</head>
-
-<body>
-    <div id="media__manager" class="dokuwiki">
-        <?php html_msgarea() ?>
-        <div id="mediamgr__aside"><div class="pad">
-            <h1><?php echo hsc($lang['mediaselect'])?></h1>
-
-            <?php /* keep the id! additional elements are inserted via JS here */?>
-            <div id="media__opts"></div>
-
-            <?php tpl_mediaTree() ?>
-        </div></div>
-
-        <div id="mediamgr__content"><div class="pad">
-            <?php tpl_mediaContent() ?>
-        </div></div>
-    </div>
-</body>
-</html>
diff --git a/wiki/lib/tpl/dokuwiki/script.js b/wiki/lib/tpl/dokuwiki/script.js
deleted file mode 100644
index b4e6ced..0000000
--- a/wiki/lib/tpl/dokuwiki/script.js
+++ /dev/null
@@ -1,79 +0,0 @@
-/**
- *  We handle several device classes based on browser width.
- *
- *  - desktop:   > __tablet_width__ (as set in style.ini)
- *  - mobile:
- *    - tablet   <= __tablet_width__
- *    - phone    <= __phone_width__
- */
-var device_class = ''; // not yet known
-var device_classes = 'desktop mobile tablet phone';
-
-function tpl_dokuwiki_mobile(){
-
-    // the z-index in mobile.css is (mis-)used purely for detecting the screen mode here
-    var screen_mode = jQuery('#screen__mode').css('z-index') + '';
-
-    // determine our device pattern
-    // TODO: consider moving into dokuwiki core
-    switch (screen_mode) {
-        case '1':
-            if (device_class.match(/tablet/)) return;
-            device_class = 'mobile tablet';
-            break;
-        case '2':
-            if (device_class.match(/phone/)) return;
-            device_class = 'mobile phone';
-            break;
-        default:
-            if (device_class == 'desktop') return;
-            device_class = 'desktop';
-    }
-
-    jQuery('html').removeClass(device_classes).addClass(device_class);
-
-    // handle some layout changes based on change in device
-    var $handle = jQuery('#dokuwiki__aside h3.toggle');
-    var $toc = jQuery('#dw__toc h3');
-
-    if (device_class == 'desktop') {
-        // reset for desktop mode
-        if($handle.length) {
-            $handle[0].setState(1);
-            $handle.hide();
-        }
-        if($toc.length) {
-            $toc[0].setState(1);
-        }
-    }
-    if (device_class.match(/mobile/)){
-        // toc and sidebar hiding
-        if($handle.length) {
-            $handle.show();
-            $handle[0].setState(-1);
-        }
-        if($toc.length) {
-            $toc[0].setState(-1);
-        }
-    }
-}
-
-jQuery(function(){
-    var resizeTimer;
-    dw_page.makeToggle('#dokuwiki__aside h3.toggle','#dokuwiki__aside div.content');
-
-    tpl_dokuwiki_mobile();
-    jQuery(window).on('resize',
-        function(){
-            if (resizeTimer) clearTimeout(resizeTimer);
-            resizeTimer = setTimeout(tpl_dokuwiki_mobile,200);
-        }
-    );
-
-    // increase sidebar length to match content (desktop mode only)
-    var $sidebar = jQuery('.desktop #dokuwiki__aside');
-    if($sidebar.length) {
-        var $content = jQuery('#dokuwiki__content div.page');
-        $content.css('min-height', $sidebar.height());
-    }
-});
diff --git a/wiki/lib/tpl/dokuwiki/style.ini b/wiki/lib/tpl/dokuwiki/style.ini
deleted file mode 100644
index 723e8bc..0000000
--- a/wiki/lib/tpl/dokuwiki/style.ini
+++ /dev/null
@@ -1,89 +0,0 @@
-; Please see http://php.net/manual/en/function.parse-ini-file.php
-; for limitations of the ini format used here
-
-; To extend this file or make changes to it, it is recommended to create
-; a local conf/tpl/<template-folder-name>/style.ini file to prevent losing
-; any changes after an upgrade.
-; Please don't forget to copy the section your changes should be under
-; (i.e. [stylesheets] or [replacements]) into that file as well.
-
-; Define the stylesheets your template uses here. The second value
-; defines for which output media the style should be loaded. Currently
-; print, screen and all are supported.
-; You can reference CSS and LESS files here. Files referenced here will
-; be checked for updates when considering a cache rebuild while files
-; included through LESS' @import statements are not
-
-[stylesheets]
-
-css/basic.less            = screen
-css/_imgdetail.css        = screen
-css/_media_popup.css      = screen
-css/_media_fullscreen.css = screen
-css/_fileuploader.css     = screen
-css/_tabs.css             = screen
-css/_links.css            = screen
-css/_toc.css              = screen
-css/_footnotes.css        = screen
-css/_search.less          = screen
-css/_recent.css           = screen
-css/_diff.css             = screen
-css/_edit.css             = screen
-css/_modal.css            = screen
-css/_forms.css            = screen
-css/_admin.less           = screen
-css/structure.less        = screen
-css/design.less           = screen
-css/usertools.less        = screen
-css/pagetools.less        = screen
-css/content.less          = screen
-
-css/mobile.less           = all
-css/print.css             = print
-
-
-; This section is used to configure some placeholder values used in
-; the stylesheets. Changing this file is the simplest method to
-; give your wiki a new look.
-; Placeholders defined here will also be made available as LESS variables
-; (with surrounding underscores removed, and the prefix @ini_ added)
-
-[replacements]
-
-;--------------------------------------------------------------------------
-;------ guaranteed dokuwiki color placeholders that every plugin can use
-
-; main text and background colors
-__text__            = "#333"            ; @ini_text
-__background__      = "#fff"            ; @ini_background
-; alternative text and background colors
-__text_alt__        = "#999"            ; @ini_text_alt
-__background_alt__  = "#eee"            ; @ini_background_alt
-; neutral text and background colors
-__text_neu__        = "#666"            ; @ini_text_neu
-__background_neu__  = "#ddd"            ; @ini_background_neu
-; border color
-__border__          = "#ccc"            ; @ini_border
-
-; highlighted text (e.g. search snippets)
-__highlight__       = "#ff9"            ; @ini_highlight
-
-; default link color
-__link__            = "#2b73b7"         ; @ini_link
-
-;--------------------------------------------------------------------------
-
-__background_site__ = "#fbfaf9"         ; @ini_background_site
-
-; these are used for wiki links
-__existing__        = "#080"            ; @ini_existing
-__missing__         = "#d30"            ; @ini_missing
-
-; site and sidebar widths
-__site_width__      = "75em"            ; @ini_site_width
-__sidebar_width__   = "16em"            ; @ini_sidebar_width
-; cut off points for mobile devices
-__tablet_width__    = "800px"           ; @ini_tablet_width
-__phone_width__     = "480px"           ; @ini_phone_width
-
-__theme_color__     = "#008800"         ; @_ini_theme_color: theme_color of the web app
diff --git a/wiki/lib/tpl/dokuwiki/template.info.txt b/wiki/lib/tpl/dokuwiki/template.info.txt
deleted file mode 100644
index 73ad939..0000000
--- a/wiki/lib/tpl/dokuwiki/template.info.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-base     dokuwiki
-author   Anika Henke
-email    anika@selfthinker.org
-date     2015-07-26
-name     DokuWiki Template
-desc     DokuWiki's default template since 2012
-url      http://www.dokuwiki.org/template:dokuwiki
diff --git a/wiki/lib/tpl/dokuwiki/tpl_footer.php b/wiki/lib/tpl/dokuwiki/tpl_footer.php
deleted file mode 100644
index 34e8b90..0000000
--- a/wiki/lib/tpl/dokuwiki/tpl_footer.php
+++ /dev/null
@@ -1,33 +0,0 @@
-<?php
-/**
- * Template footer, included in the main and detail files
- */
-
-// must be run from within DokuWiki
-if (!defined('DOKU_INC')) die();
-?>
-
-<!-- ********** FOOTER ********** -->
-<div id="dokuwiki__footer"><div class="pad">
-    <?php tpl_license(''); // license text ?>
-
-    <div class="buttons">
-        <?php
-            tpl_license('button', true, false, false); // license button, no wrapper
-            $target = ($conf['target']['extern']) ? 'target="'.$conf['target']['extern'].'"' : '';
-        ?>
-        <a href="https://www.dokuwiki.org/donate" title="Donate" <?php echo $target?>><img
-            src="<?php echo tpl_basedir(); ?>images/button-donate.gif" width="80" height="15" alt="Donate" /></a>
-        <a href="https://php.net" title="Powered by PHP" <?php echo $target?>><img
-            src="<?php echo tpl_basedir(); ?>images/button-php.gif" width="80" height="15" alt="Powered by PHP" /></a>
-        <a href="//validator.w3.org/check/referer" title="Valid HTML5" <?php echo $target?>><img
-            src="<?php echo tpl_basedir(); ?>images/button-html5.png" width="80" height="15" alt="Valid HTML5" /></a>
-        <a href="//jigsaw.w3.org/css-validator/check/referer?profile=css3" title="Valid CSS" <?php echo $target?>><img
-            src="<?php echo tpl_basedir(); ?>images/button-css.png" width="80" height="15" alt="Valid CSS" /></a>
-        <a href="https://dokuwiki.org/" title="Driven by DokuWiki" <?php echo $target?>><img
-            src="<?php echo tpl_basedir(); ?>images/button-dw.png" width="80" height="15" alt="Driven by DokuWiki" /></a>
-    </div>
-</div></div><!-- /footer -->
-
-<?php
-tpl_includeFile('footer.html');
diff --git a/wiki/lib/tpl/dokuwiki/tpl_header.php b/wiki/lib/tpl/dokuwiki/tpl_header.php
deleted file mode 100644
index bb8732b..0000000
--- a/wiki/lib/tpl/dokuwiki/tpl_header.php
+++ /dev/null
@@ -1,84 +0,0 @@
-<?php
-/**
- * Template header, included in the main and detail files
- */
-
-// must be run from within DokuWiki
-if (!defined('DOKU_INC')) die();
-?>
-
-<!-- ********** HEADER ********** -->
-<div id="dokuwiki__header"><div class="pad group">
-
-    <?php tpl_includeFile('header.html') ?>
-
-    <div class="headings group">
-        <ul class="a11y skip">
-            <li><a href="#dokuwiki__content"><?php echo $lang['skip_to_content']; ?></a></li>
-        </ul>
-
-        <h1><?php
-            // get logo either out of the template images folder or data/media folder
-            $logoSize = array();
-            $logo = tpl_getMediaFile(array(':wiki:logo.png', ':logo.png', 'images/logo.png'), false, $logoSize);
-
-            // display logo and wiki title in a link to the home page
-            tpl_link(
-                wl(),
-                '<img src="'.$logo.'" '.$logoSize[3].' alt="" /> <span>'.$conf['title'].'</span>',
-                'accesskey="h" title="[H]"'
-            );
-        ?></h1>
-        <?php if ($conf['tagline']): ?>
-            <p class="claim"><?php echo $conf['tagline']; ?></p>
-        <?php endif ?>
-    </div>
-
-    <div class="tools group">
-        <!-- USER TOOLS -->
-        <?php if ($conf['useacl']): ?>
-            <div id="dokuwiki__usertools">
-                <h3 class="a11y"><?php echo $lang['user_tools']; ?></h3>
-                <ul>
-                    <?php
-                        if (!empty($_SERVER['REMOTE_USER'])) {
-                            echo '<li class="user">';
-                            tpl_userinfo(); /* 'Logged in as ...' */
-                            echo '</li>';
-                        }
-                        echo (new \dokuwiki\Menu\UserMenu())->getListItems('action ');
-                    ?>
-                </ul>
-            </div>
-        <?php endif ?>
-
-        <!-- SITE TOOLS -->
-        <div id="dokuwiki__sitetools">
-            <h3 class="a11y"><?php echo $lang['site_tools']; ?></h3>
-            <?php tpl_searchform(); ?>
-            <div class="mobileTools">
-                <?php echo (new \dokuwiki\Menu\MobileMenu())->getDropdown($lang['tools']); ?>
-            </div>
-            <ul>
-                <?php echo (new \dokuwiki\Menu\SiteMenu())->getListItems('action ', false); ?>
-            </ul>
-        </div>
-
-    </div>
-
-    <!-- BREADCRUMBS -->
-    <?php if($conf['breadcrumbs'] || $conf['youarehere']): ?>
-        <div class="breadcrumbs">
-            <?php if($conf['youarehere']): ?>
-                <div class="youarehere"><?php tpl_youarehere() ?></div>
-            <?php endif ?>
-            <?php if($conf['breadcrumbs']): ?>
-                <div class="trace"><?php tpl_breadcrumbs() ?></div>
-            <?php endif ?>
-        </div>
-    <?php endif ?>
-
-
-
-    <hr class="a11y" />
-</div></div><!-- /header -->
diff --git a/wiki/lib/tpl/index.php b/wiki/lib/tpl/index.php
deleted file mode 100644
index d6f0034..0000000
--- a/wiki/lib/tpl/index.php
+++ /dev/null
@@ -1,72 +0,0 @@
-<?php
-/**
- * This file reads the style.ini of the used template and displays the
- * replacements defined in it. Color replacements will be displayed
- * visually. This should help with adjusting and using the styles
- * specified in the style.ini
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- * @author Anika Henke <anika@selfthinker.org>
- */
-if(!defined('DOKU_INC')) define('DOKU_INC',dirname(__FILE__).'/../../');
-if(!defined('NOSESSION')) define('NOSESSION',1);
-require_once(DOKU_INC.'inc/init.php');
-?>
-<!DOCTYPE html>
-<html lang="en" dir="ltr">
-<head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-    <title>Template Replacements</title>
-    <style type="text/css">
-        body {
-            background-color: #fff;
-            color: #000;
-        }
-        caption {
-            font-weight: bold;
-        }
-        td {
-            margin: 0;
-            padding: 0.5em 2em;
-            font-family: monospace;
-            font-size: 120%;
-            border: 1px solid #fff;
-        }
-        tr:hover td {
-            border: 1px solid #ccc;
-        }
-        .color {
-            padding: 0.25em 1em;
-            border: 1px #000 solid;
-        }
-    </style>
-</head>
-<body>
-<?php
-// get merged style.ini
-define('SIMPLE_TEST', true); // hack to prevent css output and headers
-require_once(DOKU_INC.'lib/exe/css.php');
-$styleUtils = new \dokuwiki\StyleUtils();
-$ini = $styleUtils->cssStyleini($conf['template']);
-
-if ($ini) {
-    echo '<table>';
-    echo "<caption>".hsc($conf['template'])."'s style.ini</caption>";
-    foreach($ini['replacements'] as $key => $val){
-        echo '<tr>';
-        echo '<td>'.hsc($key).'</td>';
-        echo '<td>'.hsc($val).'</td>';
-        echo '<td>';
-        if(preg_match('/^#[0-f]{3,6}$/i',$val)){
-            echo '<div class="color" style="background-color:'.$val.';">&#160;</div>';
-        }
-        echo '</td>';
-        echo '</tr>';
-    }
-    echo '</table>';
-} else {
-    echo "<p>Non-existent or invalid template or style.ini: <strong>".hsc($conf['template'])."</strong></p>";
-}
-?>
-</body>
-</html>
diff --git a/wiki/vendor/.htaccess b/wiki/vendor/.htaccess
deleted file mode 100644
index 5f279f1..0000000
--- a/wiki/vendor/.htaccess
+++ /dev/null
@@ -1,7 +0,0 @@
-<IfModule mod_authz_host>
-    Require all denied
-</IfModule>
-<IfModule !mod_authz_host>
-    Order allow,deny
-    Deny from all
-</IfModule>
diff --git a/wiki/vendor/README b/wiki/vendor/README
deleted file mode 100644
index e4027f4..0000000
--- a/wiki/vendor/README
+++ /dev/null
@@ -1,6 +0,0 @@
-====== composer managed libraries ======
-
-All file within here are manged through composer and should not be
-edited directly. Instead provide upstream patches.
-
-Learn more about Composer at http://getcomposer.org
diff --git a/wiki/vendor/autoload.php b/wiki/vendor/autoload.php
deleted file mode 100644
index 521b485..0000000
--- a/wiki/vendor/autoload.php
+++ /dev/null
@@ -1,7 +0,0 @@
-<?php
-
-// autoload.php @generated by Composer
-
-require_once __DIR__ . '/composer/autoload_real.php';
-
-return ComposerAutoloaderInita19a915ee98347a0c787119619d2ff9b::getLoader();
diff --git a/wiki/vendor/aziraphale/email-address-validator/EmailAddressValidator.php b/wiki/vendor/aziraphale/email-address-validator/EmailAddressValidator.php
deleted file mode 100644
index 21285bc..0000000
--- a/wiki/vendor/aziraphale/email-address-validator/EmailAddressValidator.php
+++ /dev/null
@@ -1,183 +0,0 @@
-<?php
-
-/**
- * Class EmailAddressValidator
- *
- * @link https://github.com/aziraphale/email-address-validator
- * @link http://code.google.com/p/php-email-address-validation/
- * @license New BSD license http://www.opensource.org/licenses/bsd-license.php
- * @example if (EmailAddressValidator::checkEmailAddress('test@example.org')) {
- * @example     // Email address is technically valid
- * @example }
- */
-class EmailAddressValidator
-{
-    /**
-     * Check email address validity
-     * @param string $emailAddress Email address to be checked
-     * @param bool $allowLocal allow local domains
-     * @return bool Whether email is valid
-     */
-    public static function checkEmailAddress($emailAddress, $allowLocal = false)
-    {
-        // If magic quotes is "on", email addresses with quote marks will
-        // fail validation because of added escape characters. Uncommenting
-        // the next three lines will allow for this issue.
-        //if (get_magic_quotes_gpc()) {
-        //    $emailAddress = stripslashes($emailAddress);
-        //}
-
-        // Control characters are not allowed
-        if (preg_match('/[\x00-\x1F\x7F-\xFF]/', $emailAddress)) {
-            return false;
-        }
-
-        // Check email length - min 3 (a@a), max 256
-        if (!self::checkTextLength($emailAddress, 3, 256)) {
-            return false;
-        }
-
-        // Split it into sections using last instance of "@"
-        $atSymbol = strrpos($emailAddress, '@');
-        if ($atSymbol === false) {
-            // No "@" symbol in email.
-            return false;
-        }
-        $emailAddressParts[0] = substr($emailAddress, 0, $atSymbol);
-        $emailAddressParts[1] = substr($emailAddress, $atSymbol + 1);
-
-        // Count the "@" symbols. Only one is allowed, except where
-        // contained in quote marks in the local part. Quickest way to
-        // check this is to remove anything in quotes. We also remove
-        // characters escaped with backslash, and the backslash
-        // character.
-        $tempAddressParts[0] = preg_replace('/\./', '', $emailAddressParts[0]);
-        $tempAddressParts[0] = preg_replace('/"[^"]+"/', '', $tempAddressParts[0]);
-        $tempAddressParts[1] = $emailAddressParts[1];
-        $tempAddress = $tempAddressParts[0] . $tempAddressParts[1];
-        // Then check - should be no "@" symbols.
-        if (strrpos($tempAddress, '@') !== false) {
-            // "@" symbol found
-            return false;
-        }
-
-        // Check local portion
-        if (!self::checkLocalPortion($emailAddressParts[0])) {
-            return false;
-        }
-
-        // Check domain portion
-        if (!self::checkDomainPortion($emailAddressParts[1], $allowLocal)) {
-            return false;
-        }
-
-        // If we're still here, all checks above passed. Email is valid.
-        return true;
-    }
-
-    /**
-     * Checks email section before "@" symbol for validity
-     * @param string $localPortion Text to be checked
-     * @return bool Whether local portion is valid
-     */
-    public static function checkLocalPortion($localPortion)
-    {
-        // Local portion can only be from 1 to 64 characters, inclusive.
-        // Please note that servers are encouraged to accept longer local
-        // parts than 64 characters.
-        if (!self::checkTextLength($localPortion, 1, 64)) {
-            return false;
-        }
-        // Local portion must be:
-        // 1) a dot-atom (strings separated by periods)
-        // 2) a quoted string
-        // 3) an obsolete format string (combination of the above)
-        $localPortionParts = explode('.', $localPortion);
-        for ($i = 0, $max = sizeof($localPortionParts); $i < $max; $i++) {
-             if (!preg_match('.^('
-                            .    '([A-Za-z0-9!#$%&\'*+/=?^_`{|}~-]'
-                            .    '[A-Za-z0-9!#$%&\'*+/=?^_`{|}~-]{0,63})'
-                            .'|'
-                            .    '("[^\\\"]{0,62}")'
-                            .')$.'
-                            ,$localPortionParts[$i])) {
-                return false;
-            }
-        }
-        return true;
-    }
-
-    /**
-     * Checks email section after "@" symbol for validity
-     * @param string $domainPortion Text to be checked
-     * @param bool $allowLocal allow local domains?
-     * @return bool Whether domain portion is valid
-     */
-    public static function checkDomainPortion($domainPortion, $allowLocal = false)
-    {
-        // Total domain can only be from 1 to 255 characters, inclusive
-        if (!self::checkTextLength($domainPortion, 1, 255)) {
-            return false;
-        }
-
-        // some IPv4/v6 regexps borrowed from Feyd
-        // see: http://forums.devnetwork.net/viewtopic.php?f=38&t=53479
-        $dec_octet = '(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|[0-9])';
-        $hex_digit = '[A-Fa-f0-9]';
-        $h16 = "{$hex_digit}{1,4}";
-        $IPv4Address = "$dec_octet\\.$dec_octet\\.$dec_octet\\.$dec_octet";
-        $ls32 = "(?:$h16:$h16|$IPv4Address)";
-        $IPv6Address =
-            "(?:(?:{$IPv4Address})|(?:" .
-            "(?:$h16:){6}$ls32" .
-            "|::(?:$h16:){5}$ls32" .
-            "|(?:$h16)?::(?:$h16:){4}$ls32" .
-            "|(?:(?:$h16:){0,1}$h16)?::(?:$h16:){3}$ls32" .
-            "|(?:(?:$h16:){0,2}$h16)?::(?:$h16:){2}$ls32" .
-            "|(?:(?:$h16:){0,3}$h16)?::(?:$h16:){1}$ls32" .
-            "|(?:(?:$h16:){0,4}$h16)?::$ls32" .
-            "|(?:(?:$h16:){0,5}$h16)?::$h16" .
-            "|(?:(?:$h16:){0,6}$h16)?::" .
-            ")(?:\\/(?:12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9]))?)";
-
-        if (preg_match("/^($IPv4Address|\\[$IPv4Address\\]|\\[$IPv6Address\\])$/",
-                            $domainPortion)){
-            return true;
-        } else {
-            $domainPortionParts = explode('.', $domainPortion);
-            if (!$allowLocal && sizeof($domainPortionParts) < 2) {
-                return false; // Not enough parts to domain
-            }
-            for ($i = 0, $max = sizeof($domainPortionParts); $i < $max; $i++) {
-                // Each portion must be between 1 and 63 characters, inclusive
-                if (!self::checkTextLength($domainPortionParts[$i], 1, 63)) {
-                    return false;
-                }
-                if (!preg_match('/^(([A-Za-z0-9][A-Za-z0-9-]{0,61}[A-Za-z0-9])|'
-                   .'([A-Za-z0-9]+))$/', $domainPortionParts[$i])) {
-                    return false;
-                }
-                if ($i == $max - 1) { // TLD cannot be only numbers
-                    if (strlen(preg_replace('/[0-9]/', '', $domainPortionParts[$i])) <= 0) {
-                        return false;
-                    }
-                }
-            }
-        }
-        return true;
-    }
-
-    /**
-     * Check given text length is between defined bounds
-     * @param string $text Text to be checked
-     * @param int $minimum Minimum acceptable length
-     * @param int $maximum Maximum acceptable length
-     * @return bool Whether string is within bounds (inclusive)
-     */
-    protected static function checkTextLength($text, $minimum, $maximum)
-    {
-        // Minimum and maximum are both inclusive
-        $textLength = strlen($text);
-        return ($textLength >= $minimum && $textLength <= $maximum);
-    }
-}
diff --git a/wiki/vendor/aziraphale/email-address-validator/README.md b/wiki/vendor/aziraphale/email-address-validator/README.md
deleted file mode 100644
index 60bff60..0000000
--- a/wiki/vendor/aziraphale/email-address-validator/README.md
+++ /dev/null
@@ -1,59 +0,0 @@
-Email-Address-Validator
-=======================
-
-This is a fork of [AddedBytes' EmailAddressValidator class](https://code.google.com/p/php-email-address-validation/).
-
-## Changes ##
-Changes include:
-
-- [Composer](https://getcomposer.org/) support
-- Refactored the class to be purely static
-- Opened up methods for checking the "local part" (the bit before the `@`) and the "domain part" (after the `@`) 
-to be public methods
-- Additional code style and docblock fixing to properly follow the [PHP-FIG PSR-1](http://www.php-fig.org/psr/psr-1/) 
-and [PSR-2](http://www.php-fig.org/psr/psr-2/) documents
-
-Note that this class is still **un-namespaced** - i.e. it's still declared in the global namespace. The `composer.json` 
-file is still set up to correctly load it when required, so this shouldn't be a problem in practice - it's just perhaps
-not best-practice.
-
-## Installation ##
-Use [Composer](https://getcomposer.org/):
-```
-php composer.phar require aziraphale/email-address-validator:^2
-```
-
-If you don't want to use Composer (why not?!), just download the `EmailAddressValidator.php` file, save it with your project, and `require` it where needed.
-
-Note that this updated version is **version 2.0.0**. I have kept the original class tagged as **version 1.0.10** (it was the 10th commit to the Google Code svn repository). If you want to use Composer to install the **old** class, simply specify `^1` as the version constraint (which will allow for backwards-compatible changes to be installed, if any get made, while never jumping to my modified class without your direct action):
-```
-php composer.phar require aziraphale/email-address-validator:^1
-```
-
-## Usage ##
-Due to the aforementioned changes, the way of using this class has completely changed. However it has such a small and simple interface that these changes shouldn't be problematic.
-
-As a recap, the **old usage** was like this:
-```php
-$validator = new EmailAddressValidator;
-if ($validator->check_email_address('test@example.org')) {
-    // Email address is technically valid
-}
-```
-
-The **new syntax** is as follows (ensure you have already included Composer's `autoload.php` file!):
-```php
-if (EmailAddressValidator::checkEmailAddress("test@example.org")) {
-    // Email address is technically valid
-}
-```
-
-with a couple of additional methods in case they're helpful:
-```php
-if (EmailAddressValidator::checkLocalPortion("test")) {
-    // "test" is technically a valid string to have before the "@" in an email address
-}
-if (EmailAddressValidator::checkDomainPotion("example.org")) {
-    // "example.org" is technically a valid email address host
-}
-```
diff --git a/wiki/vendor/composer/ClassLoader.php b/wiki/vendor/composer/ClassLoader.php
deleted file mode 100644
index 2c72175..0000000
--- a/wiki/vendor/composer/ClassLoader.php
+++ /dev/null
@@ -1,445 +0,0 @@
-<?php
-
-/*
- * This file is part of Composer.
- *
- * (c) Nils Adermann <naderman@naderman.de>
- *     Jordi Boggiano <j.boggiano@seld.be>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Composer\Autoload;
-
-/**
- * ClassLoader implements a PSR-0, PSR-4 and classmap class loader.
- *
- *     $loader = new \Composer\Autoload\ClassLoader();
- *
- *     // register classes with namespaces
- *     $loader->add('Symfony\Component', __DIR__.'/component');
- *     $loader->add('Symfony',           __DIR__.'/framework');
- *
- *     // activate the autoloader
- *     $loader->register();
- *
- *     // to enable searching the include path (eg. for PEAR packages)
- *     $loader->setUseIncludePath(true);
- *
- * In this example, if you try to use a class in the Symfony\Component
- * namespace or one of its children (Symfony\Component\Console for instance),
- * the autoloader will first look for the class under the component/
- * directory, and it will then fallback to the framework/ directory if not
- * found before giving up.
- *
- * This class is loosely based on the Symfony UniversalClassLoader.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- * @author Jordi Boggiano <j.boggiano@seld.be>
- * @see    http://www.php-fig.org/psr/psr-0/
- * @see    http://www.php-fig.org/psr/psr-4/
- */
-class ClassLoader
-{
-    // PSR-4
-    private $prefixLengthsPsr4 = array();
-    private $prefixDirsPsr4 = array();
-    private $fallbackDirsPsr4 = array();
-
-    // PSR-0
-    private $prefixesPsr0 = array();
-    private $fallbackDirsPsr0 = array();
-
-    private $useIncludePath = false;
-    private $classMap = array();
-    private $classMapAuthoritative = false;
-    private $missingClasses = array();
-    private $apcuPrefix;
-
-    public function getPrefixes()
-    {
-        if (!empty($this->prefixesPsr0)) {
-            return call_user_func_array('array_merge', $this->prefixesPsr0);
-        }
-
-        return array();
-    }
-
-    public function getPrefixesPsr4()
-    {
-        return $this->prefixDirsPsr4;
-    }
-
-    public function getFallbackDirs()
-    {
-        return $this->fallbackDirsPsr0;
-    }
-
-    public function getFallbackDirsPsr4()
-    {
-        return $this->fallbackDirsPsr4;
-    }
-
-    public function getClassMap()
-    {
-        return $this->classMap;
-    }
-
-    /**
-     * @param array $classMap Class to filename map
-     */
-    public function addClassMap(array $classMap)
-    {
-        if ($this->classMap) {
-            $this->classMap = array_merge($this->classMap, $classMap);
-        } else {
-            $this->classMap = $classMap;
-        }
-    }
-
-    /**
-     * Registers a set of PSR-0 directories for a given prefix, either
-     * appending or prepending to the ones previously set for this prefix.
-     *
-     * @param string       $prefix  The prefix
-     * @param array|string $paths   The PSR-0 root directories
-     * @param bool         $prepend Whether to prepend the directories
-     */
-    public function add($prefix, $paths, $prepend = false)
-    {
-        if (!$prefix) {
-            if ($prepend) {
-                $this->fallbackDirsPsr0 = array_merge(
-                    (array) $paths,
-                    $this->fallbackDirsPsr0
-                );
-            } else {
-                $this->fallbackDirsPsr0 = array_merge(
-                    $this->fallbackDirsPsr0,
-                    (array) $paths
-                );
-            }
-
-            return;
-        }
-
-        $first = $prefix[0];
-        if (!isset($this->prefixesPsr0[$first][$prefix])) {
-            $this->prefixesPsr0[$first][$prefix] = (array) $paths;
-
-            return;
-        }
-        if ($prepend) {
-            $this->prefixesPsr0[$first][$prefix] = array_merge(
-                (array) $paths,
-                $this->prefixesPsr0[$first][$prefix]
-            );
-        } else {
-            $this->prefixesPsr0[$first][$prefix] = array_merge(
-                $this->prefixesPsr0[$first][$prefix],
-                (array) $paths
-            );
-        }
-    }
-
-    /**
-     * Registers a set of PSR-4 directories for a given namespace, either
-     * appending or prepending to the ones previously set for this namespace.
-     *
-     * @param string       $prefix  The prefix/namespace, with trailing '\\'
-     * @param array|string $paths   The PSR-4 base directories
-     * @param bool         $prepend Whether to prepend the directories
-     *
-     * @throws \InvalidArgumentException
-     */
-    public function addPsr4($prefix, $paths, $prepend = false)
-    {
-        if (!$prefix) {
-            // Register directories for the root namespace.
-            if ($prepend) {
-                $this->fallbackDirsPsr4 = array_merge(
-                    (array) $paths,
-                    $this->fallbackDirsPsr4
-                );
-            } else {
-                $this->fallbackDirsPsr4 = array_merge(
-                    $this->fallbackDirsPsr4,
-                    (array) $paths
-                );
-            }
-        } elseif (!isset($this->prefixDirsPsr4[$prefix])) {
-            // Register directories for a new namespace.
-            $length = strlen($prefix);
-            if ('\\' !== $prefix[$length - 1]) {
-                throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
-            }
-            $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
-            $this->prefixDirsPsr4[$prefix] = (array) $paths;
-        } elseif ($prepend) {
-            // Prepend directories for an already registered namespace.
-            $this->prefixDirsPsr4[$prefix] = array_merge(
-                (array) $paths,
-                $this->prefixDirsPsr4[$prefix]
-            );
-        } else {
-            // Append directories for an already registered namespace.
-            $this->prefixDirsPsr4[$prefix] = array_merge(
-                $this->prefixDirsPsr4[$prefix],
-                (array) $paths
-            );
-        }
-    }
-
-    /**
-     * Registers a set of PSR-0 directories for a given prefix,
-     * replacing any others previously set for this prefix.
-     *
-     * @param string       $prefix The prefix
-     * @param array|string $paths  The PSR-0 base directories
-     */
-    public function set($prefix, $paths)
-    {
-        if (!$prefix) {
-            $this->fallbackDirsPsr0 = (array) $paths;
-        } else {
-            $this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths;
-        }
-    }
-
-    /**
-     * Registers a set of PSR-4 directories for a given namespace,
-     * replacing any others previously set for this namespace.
-     *
-     * @param string       $prefix The prefix/namespace, with trailing '\\'
-     * @param array|string $paths  The PSR-4 base directories
-     *
-     * @throws \InvalidArgumentException
-     */
-    public function setPsr4($prefix, $paths)
-    {
-        if (!$prefix) {
-            $this->fallbackDirsPsr4 = (array) $paths;
-        } else {
-            $length = strlen($prefix);
-            if ('\\' !== $prefix[$length - 1]) {
-                throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
-            }
-            $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
-            $this->prefixDirsPsr4[$prefix] = (array) $paths;
-        }
-    }
-
-    /**
-     * Turns on searching the include path for class files.
-     *
-     * @param bool $useIncludePath
-     */
-    public function setUseIncludePath($useIncludePath)
-    {
-        $this->useIncludePath = $useIncludePath;
-    }
-
-    /**
-     * Can be used to check if the autoloader uses the include path to check
-     * for classes.
-     *
-     * @return bool
-     */
-    public function getUseIncludePath()
-    {
-        return $this->useIncludePath;
-    }
-
-    /**
-     * Turns off searching the prefix and fallback directories for classes
-     * that have not been registered with the class map.
-     *
-     * @param bool $classMapAuthoritative
-     */
-    public function setClassMapAuthoritative($classMapAuthoritative)
-    {
-        $this->classMapAuthoritative = $classMapAuthoritative;
-    }
-
-    /**
-     * Should class lookup fail if not found in the current class map?
-     *
-     * @return bool
-     */
-    public function isClassMapAuthoritative()
-    {
-        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.
-     *
-     * @param bool $prepend Whether to prepend the autoloader or not
-     */
-    public function register($prepend = false)
-    {
-        spl_autoload_register(array($this, 'loadClass'), true, $prepend);
-    }
-
-    /**
-     * Unregisters this instance as an autoloader.
-     */
-    public function unregister()
-    {
-        spl_autoload_unregister(array($this, 'loadClass'));
-    }
-
-    /**
-     * Loads the given class or interface.
-     *
-     * @param  string    $class The name of the class
-     * @return bool|null True if loaded, null otherwise
-     */
-    public function loadClass($class)
-    {
-        if ($file = $this->findFile($class)) {
-            includeFile($file);
-
-            return true;
-        }
-    }
-
-    /**
-     * Finds the path to the file where the class is defined.
-     *
-     * @param string $class The name of the class
-     *
-     * @return string|false The path if found, false otherwise
-     */
-    public function findFile($class)
-    {
-        // class map lookup
-        if (isset($this->classMap[$class])) {
-            return $this->classMap[$class];
-        }
-        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');
-
-        // Search for Hack files if we are running on HHVM
-        if (false === $file && defined('HHVM_VERSION')) {
-            $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;
-        }
-
-        return $file;
-    }
-
-    private function findFileWithExtension($class, $ext)
-    {
-        // PSR-4 lookup
-        $logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext;
-
-        $first = $class[0];
-        if (isset($this->prefixLengthsPsr4[$first])) {
-            $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;
-                        }
-                    }
-                }
-            }
-        }
-
-        // PSR-4 fallback dirs
-        foreach ($this->fallbackDirsPsr4 as $dir) {
-            if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) {
-                return $file;
-            }
-        }
-
-        // PSR-0 lookup
-        if (false !== $pos = strrpos($class, '\\')) {
-            // namespaced class name
-            $logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1)
-                . strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR);
-        } else {
-            // PEAR-like class name
-            $logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext;
-        }
-
-        if (isset($this->prefixesPsr0[$first])) {
-            foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) {
-                if (0 === strpos($class, $prefix)) {
-                    foreach ($dirs as $dir) {
-                        if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
-                            return $file;
-                        }
-                    }
-                }
-            }
-        }
-
-        // PSR-0 fallback dirs
-        foreach ($this->fallbackDirsPsr0 as $dir) {
-            if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
-                return $file;
-            }
-        }
-
-        // PSR-0 include paths.
-        if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) {
-            return $file;
-        }
-
-        return false;
-    }
-}
-
-/**
- * Scope isolated include.
- *
- * Prevents access to $this/self from included files.
- */
-function includeFile($file)
-{
-    include $file;
-}
diff --git a/wiki/vendor/composer/LICENSE b/wiki/vendor/composer/LICENSE
deleted file mode 100644
index f27399a..0000000
--- a/wiki/vendor/composer/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-
-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
-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.
-
diff --git a/wiki/vendor/composer/autoload_classmap.php b/wiki/vendor/composer/autoload_classmap.php
deleted file mode 100644
index 5380367..0000000
--- a/wiki/vendor/composer/autoload_classmap.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-
-// autoload_classmap.php @generated by Composer
-
-$vendorDir = dirname(dirname(__FILE__));
-$baseDir = dirname($vendorDir);
-
-return array(
-    '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',
-    'lessc' => $vendorDir . '/marcusschwarz/lesserphp/lessc.inc.php',
-    'lessc_formatter_classic' => $vendorDir . '/marcusschwarz/lesserphp/lessc.inc.php',
-    'lessc_formatter_compressed' => $vendorDir . '/marcusschwarz/lesserphp/lessc.inc.php',
-    'lessc_formatter_lessjs' => $vendorDir . '/marcusschwarz/lesserphp/lessc.inc.php',
-    'lessc_parser' => $vendorDir . '/marcusschwarz/lesserphp/lessc.inc.php',
-);
diff --git a/wiki/vendor/composer/autoload_files.php b/wiki/vendor/composer/autoload_files.php
deleted file mode 100644
index 55787b6..0000000
--- a/wiki/vendor/composer/autoload_files.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-
-// autoload_files.php @generated by Composer
-
-$vendorDir = dirname(dirname(__FILE__));
-$baseDir = dirname($vendorDir);
-
-return array(
-    '5255c38a0faeba867671b61dfda6d864' => $vendorDir . '/paragonie/random_compat/lib/random.php',
-    'decc78cc4436b1292c6c0d151b19445c' => $vendorDir . '/phpseclib/phpseclib/phpseclib/bootstrap.php',
-);
diff --git a/wiki/vendor/composer/autoload_namespaces.php b/wiki/vendor/composer/autoload_namespaces.php
deleted file mode 100644
index 6a43fa5..0000000
--- a/wiki/vendor/composer/autoload_namespaces.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-
-// autoload_namespaces.php @generated by Composer
-
-$vendorDir = dirname(dirname(__FILE__));
-$baseDir = dirname($vendorDir);
-
-return array(
-    'SimplePie' => array($vendorDir . '/simplepie/simplepie/library'),
-    'EmailAddressValidator' => array($vendorDir . '/aziraphale/email-address-validator'),
-);
diff --git a/wiki/vendor/composer/autoload_psr4.php b/wiki/vendor/composer/autoload_psr4.php
deleted file mode 100644
index 3a072f7..0000000
--- a/wiki/vendor/composer/autoload_psr4.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-
-// autoload_psr4.php @generated by Composer
-
-$vendorDir = dirname(dirname(__FILE__));
-$baseDir = dirname($vendorDir);
-
-return array(
-    'splitbrain\\phpcli\\' => array($vendorDir . '/splitbrain/php-cli/src'),
-    'splitbrain\\PHPArchive\\' => array($vendorDir . '/splitbrain/php-archive/src'),
-    'phpseclib\\' => array($vendorDir . '/phpseclib/phpseclib/phpseclib'),
-);
diff --git a/wiki/vendor/composer/autoload_real.php b/wiki/vendor/composer/autoload_real.php
deleted file mode 100644
index 2daff34..0000000
--- a/wiki/vendor/composer/autoload_real.php
+++ /dev/null
@@ -1,70 +0,0 @@
-<?php
-
-// autoload_real.php @generated by Composer
-
-class ComposerAutoloaderInita19a915ee98347a0c787119619d2ff9b
-{
-    private static $loader;
-
-    public static function loadClassLoader($class)
-    {
-        if ('Composer\Autoload\ClassLoader' === $class) {
-            require __DIR__ . '/ClassLoader.php';
-        }
-    }
-
-    public static function getLoader()
-    {
-        if (null !== self::$loader) {
-            return self::$loader;
-        }
-
-        spl_autoload_register(array('ComposerAutoloaderInita19a915ee98347a0c787119619d2ff9b', 'loadClassLoader'), true, true);
-        self::$loader = $loader = new \Composer\Autoload\ClassLoader();
-        spl_autoload_unregister(array('ComposerAutoloaderInita19a915ee98347a0c787119619d2ff9b', 'loadClassLoader'));
-
-        $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';
-
-            call_user_func(\Composer\Autoload\ComposerStaticInita19a915ee98347a0c787119619d2ff9b::getInitializer($loader));
-        } else {
-            $map = require __DIR__ . '/autoload_namespaces.php';
-            foreach ($map as $namespace => $path) {
-                $loader->set($namespace, $path);
-            }
-
-            $map = require __DIR__ . '/autoload_psr4.php';
-            foreach ($map as $namespace => $path) {
-                $loader->setPsr4($namespace, $path);
-            }
-
-            $classMap = require __DIR__ . '/autoload_classmap.php';
-            if ($classMap) {
-                $loader->addClassMap($classMap);
-            }
-        }
-
-        $loader->register(true);
-
-        if ($useStaticLoader) {
-            $includeFiles = Composer\Autoload\ComposerStaticInita19a915ee98347a0c787119619d2ff9b::$files;
-        } else {
-            $includeFiles = require __DIR__ . '/autoload_files.php';
-        }
-        foreach ($includeFiles as $fileIdentifier => $file) {
-            composerRequirea19a915ee98347a0c787119619d2ff9b($fileIdentifier, $file);
-        }
-
-        return $loader;
-    }
-}
-
-function composerRequirea19a915ee98347a0c787119619d2ff9b($fileIdentifier, $file)
-{
-    if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
-        require $file;
-
-        $GLOBALS['__composer_autoload_files'][$fileIdentifier] = true;
-    }
-}
diff --git a/wiki/vendor/composer/autoload_static.php b/wiki/vendor/composer/autoload_static.php
deleted file mode 100644
index 3f7b01e..0000000
--- a/wiki/vendor/composer/autoload_static.php
+++ /dev/null
@@ -1,97 +0,0 @@
-<?php
-
-// autoload_static.php @generated by Composer
-
-namespace Composer\Autoload;
-
-class ComposerStaticInita19a915ee98347a0c787119619d2ff9b
-{
-    public static $files = array (
-        '5255c38a0faeba867671b61dfda6d864' => __DIR__ . '/..' . '/paragonie/random_compat/lib/random.php',
-        'decc78cc4436b1292c6c0d151b19445c' => __DIR__ . '/..' . '/phpseclib/phpseclib/phpseclib/bootstrap.php',
-    );
-
-    public static $prefixLengthsPsr4 = array (
-        's' => 
-        array (
-            'splitbrain\\phpcli\\' => 18,
-            'splitbrain\\PHPArchive\\' => 22,
-        ),
-        'p' => 
-        array (
-            'phpseclib\\' => 10,
-        ),
-    );
-
-    public static $prefixDirsPsr4 = array (
-        'splitbrain\\phpcli\\' => 
-        array (
-            0 => __DIR__ . '/..' . '/splitbrain/php-cli/src',
-        ),
-        'splitbrain\\PHPArchive\\' => 
-        array (
-            0 => __DIR__ . '/..' . '/splitbrain/php-archive/src',
-        ),
-        'phpseclib\\' => 
-        array (
-            0 => __DIR__ . '/..' . '/phpseclib/phpseclib/phpseclib',
-        ),
-    );
-
-    public static $prefixesPsr0 = array (
-        'S' => 
-        array (
-            'SimplePie' => 
-            array (
-                0 => __DIR__ . '/..' . '/simplepie/simplepie/library',
-            ),
-        ),
-        'E' => 
-        array (
-            'EmailAddressValidator' => 
-            array (
-                0 => __DIR__ . '/..' . '/aziraphale/email-address-validator',
-            ),
-        ),
-    );
-
-    public static $classMap = array (
-        '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',
-        'lessc' => __DIR__ . '/..' . '/marcusschwarz/lesserphp/lessc.inc.php',
-        'lessc_formatter_classic' => __DIR__ . '/..' . '/marcusschwarz/lesserphp/lessc.inc.php',
-        'lessc_formatter_compressed' => __DIR__ . '/..' . '/marcusschwarz/lesserphp/lessc.inc.php',
-        'lessc_formatter_lessjs' => __DIR__ . '/..' . '/marcusschwarz/lesserphp/lessc.inc.php',
-        'lessc_parser' => __DIR__ . '/..' . '/marcusschwarz/lesserphp/lessc.inc.php',
-    );
-
-    public static function getInitializer(ClassLoader $loader)
-    {
-        return \Closure::bind(function () use ($loader) {
-            $loader->prefixLengthsPsr4 = ComposerStaticInita19a915ee98347a0c787119619d2ff9b::$prefixLengthsPsr4;
-            $loader->prefixDirsPsr4 = ComposerStaticInita19a915ee98347a0c787119619d2ff9b::$prefixDirsPsr4;
-            $loader->prefixesPsr0 = ComposerStaticInita19a915ee98347a0c787119619d2ff9b::$prefixesPsr0;
-            $loader->classMap = ComposerStaticInita19a915ee98347a0c787119619d2ff9b::$classMap;
-
-        }, null, ClassLoader::class);
-    }
-}
diff --git a/wiki/vendor/composer/installed.json b/wiki/vendor/composer/installed.json
deleted file mode 100644
index 23ae5c1..0000000
--- a/wiki/vendor/composer/installed.json
+++ /dev/null
@@ -1,506 +0,0 @@
-[
-    {
-        "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"
-        ]
-    },
-    {
-        "name": "aziraphale/email-address-validator",
-        "version": "2.0.1",
-        "version_normalized": "2.0.1.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/aziraphale/email-address-validator.git",
-            "reference": "fa25bc22c1c0b6491657c91473fae3e40719a650"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/aziraphale/email-address-validator/zipball/fa25bc22c1c0b6491657c91473fae3e40719a650",
-            "reference": "fa25bc22c1c0b6491657c91473fae3e40719a650",
-            "shasum": ""
-        },
-        "require-dev": {
-            "phpunit/phpunit": "^5.7"
-        },
-        "time": "2017-05-22T14:05:57+00:00",
-        "type": "library",
-        "installation-source": "dist",
-        "autoload": {
-            "psr-0": {
-                "EmailAddressValidator": ""
-            }
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "license": [
-            "MIT"
-        ],
-        "authors": [
-            {
-                "name": "Dave Child",
-                "email": "dave@addedbytes.com"
-            },
-            {
-                "name": "Andrew Gillard",
-                "email": "andrew@lorddeath.net"
-            }
-        ],
-        "description": "Fork of AddedBytes' PHP EmailAddressValidator script, now with Composer support!",
-        "homepage": "https://github.com/aziraphale/email-address-validator"
-    },
-    {
-        "name": "marcusschwarz/lesserphp",
-        "version": "v0.5.1",
-        "version_normalized": "0.5.1.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/MarcusSchwarz/lesserphp.git",
-            "reference": "e9e3d53980c0e486b07c75e12f2bae5e10bdee44"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/MarcusSchwarz/lesserphp/zipball/e9e3d53980c0e486b07c75e12f2bae5e10bdee44",
-            "reference": "e9e3d53980c0e486b07c75e12f2bae5e10bdee44",
-            "shasum": ""
-        },
-        "require-dev": {
-            "phpunit/phpunit": "~4.3"
-        },
-        "time": "2016-09-30T11:13:18+00:00",
-        "bin": [
-            "plessc"
-        ],
-        "type": "library",
-        "extra": {
-            "branch-alias": {
-                "dev-master": "0.5.1-dev"
-            }
-        },
-        "installation-source": "dist",
-        "autoload": {
-            "classmap": [
-                "lessc.inc.php"
-            ]
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "license": [
-            "MIT",
-            "GPL-3.0"
-        ],
-        "authors": [
-            {
-                "name": "Leaf Corcoran",
-                "email": "leafot@gmail.com",
-                "homepage": "http://leafo.net"
-            },
-            {
-                "name": "Marcus Schwarz",
-                "email": "github@maswaba.de",
-                "homepage": "https://www.maswaba.de"
-            }
-        ],
-        "description": "lesserphp is a compiler for LESS written in PHP based on leafo's lessphp.",
-        "homepage": "http://leafo.net/lessphp/"
-    },
-    {
-        "name": "paragonie/random_compat",
-        "version": "v2.0.12",
-        "version_normalized": "2.0.12.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/paragonie/random_compat.git",
-            "reference": "258c89a6b97de7dfaf5b8c7607d0478e236b04fb"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/paragonie/random_compat/zipball/258c89a6b97de7dfaf5b8c7607d0478e236b04fb",
-            "reference": "258c89a6b97de7dfaf5b8c7607d0478e236b04fb",
-            "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": "2018-04-04T21:24:14+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": "simplepie/simplepie",
-        "version": "1.5.1",
-        "version_normalized": "1.5.1.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/simplepie/simplepie.git",
-            "reference": "db9fff27b6d49eed3d4047cd3211ec8dba2f5d6e"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/simplepie/simplepie/zipball/db9fff27b6d49eed3d4047cd3211ec8dba2f5d6e",
-            "reference": "db9fff27b6d49eed3d4047cd3211ec8dba2f5d6e",
-            "shasum": ""
-        },
-        "require": {
-            "php": ">=5.3.0"
-        },
-        "require-dev": {
-            "phpunit/phpunit": "~4 || ~5"
-        },
-        "suggest": {
-            "mf2/mf2": "Microformat module that allows for parsing HTML for microformats"
-        },
-        "time": "2017-11-12T02:03:34+00:00",
-        "type": "library",
-        "installation-source": "dist",
-        "autoload": {
-            "psr-0": {
-                "SimplePie": "library"
-            }
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "license": [
-            "BSD-3-Clause"
-        ],
-        "authors": [
-            {
-                "name": "Ryan Parman",
-                "homepage": "http://ryanparman.com/",
-                "role": "Creator, alumnus developer"
-            },
-            {
-                "name": "Geoffrey Sneddon",
-                "homepage": "http://gsnedders.com/",
-                "role": "Alumnus developer"
-            },
-            {
-                "name": "Ryan McCue",
-                "email": "me@ryanmccue.info",
-                "homepage": "http://ryanmccue.info/",
-                "role": "Developer"
-            }
-        ],
-        "description": "A simple Atom/RSS parsing library for PHP",
-        "homepage": "http://simplepie.org/",
-        "keywords": [
-            "atom",
-            "feeds",
-            "rss"
-        ]
-    },
-    {
-        "name": "splitbrain/php-cli",
-        "version": "1.1.2",
-        "version_normalized": "1.1.2.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/splitbrain/php-cli.git",
-            "reference": "1d6f0bf9eccbfd79d1f4d185ef27573601185c23"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/splitbrain/php-cli/zipball/1d6f0bf9eccbfd79d1f4d185ef27573601185c23",
-            "reference": "1d6f0bf9eccbfd79d1f4d185ef27573601185c23",
-            "shasum": ""
-        },
-        "require": {
-            "php": ">=5.3.0"
-        },
-        "require-dev": {
-            "phpunit/phpunit": "4.5.*"
-        },
-        "suggest": {
-            "psr/log": "Allows you to make the CLI available as PSR-3 logger"
-        },
-        "time": "2018-02-02T08:46:12+00:00",
-        "type": "library",
-        "installation-source": "dist",
-        "autoload": {
-            "psr-4": {
-                "splitbrain\\phpcli\\": "src"
-            }
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "license": [
-            "MIT"
-        ],
-        "authors": [
-            {
-                "name": "Andreas Gohr",
-                "email": "andi@splitbrain.org"
-            }
-        ],
-        "description": "Easy command line scripts for PHP with opt parsing and color output. No dependencies",
-        "keywords": [
-            "argparse",
-            "cli",
-            "command line",
-            "console",
-            "getopt",
-            "optparse",
-            "terminal"
-        ]
-    },
-    {
-        "name": "phpseclib/phpseclib",
-        "version": "2.0.11",
-        "version_normalized": "2.0.11.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/phpseclib/phpseclib.git",
-            "reference": "7053f06f91b3de78e143d430e55a8f7889efc08b"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/7053f06f91b3de78e143d430e55a8f7889efc08b",
-            "reference": "7053f06f91b3de78e143d430e55a8f7889efc08b",
-            "shasum": ""
-        },
-        "require": {
-            "php": ">=5.3.3"
-        },
-        "require-dev": {
-            "phing/phing": "~2.7",
-            "phpunit/phpunit": "^4.8.35|^5.7|^6.0",
-            "sami/sami": "~2.0",
-            "squizlabs/php_codesniffer": "~2.0"
-        },
-        "suggest": {
-            "ext-gmp": "Install the GMP (GNU Multiple Precision) extension in order to speed up arbitrary precision integer arithmetic operations.",
-            "ext-libsodium": "SSH2/SFTP can make use of some algorithms provided by the libsodium-php extension.",
-            "ext-mcrypt": "Install the Mcrypt extension in order to speed up a few other cryptographic operations.",
-            "ext-openssl": "Install the OpenSSL extension in order to speed up a wide variety of cryptographic operations."
-        },
-        "time": "2018-04-15T16:55:05+00:00",
-        "type": "library",
-        "installation-source": "dist",
-        "autoload": {
-            "files": [
-                "phpseclib/bootstrap.php"
-            ],
-            "psr-4": {
-                "phpseclib\\": "phpseclib/"
-            }
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "license": [
-            "MIT"
-        ],
-        "authors": [
-            {
-                "name": "Jim Wigginton",
-                "email": "terrafrost@php.net",
-                "role": "Lead Developer"
-            },
-            {
-                "name": "Patrick Monnerat",
-                "email": "pm@datasphere.ch",
-                "role": "Developer"
-            },
-            {
-                "name": "Andreas Fischer",
-                "email": "bantu@phpbb.com",
-                "role": "Developer"
-            },
-            {
-                "name": "Hans-Jürgen Petrich",
-                "email": "petrich@tronic-media.com",
-                "role": "Developer"
-            },
-            {
-                "name": "Graham Campbell",
-                "email": "graham@alt-three.com",
-                "role": "Developer"
-            }
-        ],
-        "description": "PHP Secure Communications Library - Pure-PHP implementations of RSA, AES, SSH2, SFTP, X.509 etc.",
-        "homepage": "http://phpseclib.sourceforge.net",
-        "keywords": [
-            "BigInteger",
-            "aes",
-            "asn.1",
-            "asn1",
-            "blowfish",
-            "crypto",
-            "cryptography",
-            "encryption",
-            "rsa",
-            "security",
-            "sftp",
-            "signature",
-            "signing",
-            "ssh",
-            "twofish",
-            "x.509",
-            "x509"
-        ]
-    },
-    {
-        "name": "splitbrain/php-archive",
-        "version": "1.0.10",
-        "version_normalized": "1.0.10.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/splitbrain/php-archive.git",
-            "reference": "a46f3aaeb9f123fdb7db4e192b0600feebf7f773"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/splitbrain/php-archive/zipball/a46f3aaeb9f123fdb7db4e192b0600feebf7f773",
-            "reference": "a46f3aaeb9f123fdb7db4e192b0600feebf7f773",
-            "shasum": ""
-        },
-        "require": {
-            "php": ">=5.4"
-        },
-        "require-dev": {
-            "ext-bz2": "*",
-            "ext-zip": "*",
-            "mikey179/vfsstream": "^1.6",
-            "phpunit/phpunit": "^4.8"
-        },
-        "suggest": {
-            "ext-iconv": "Used for proper filename encode handling",
-            "ext-mbstring": "Can be used alternatively for handling filename encoding"
-        },
-        "time": "2018-05-01T08:03:56+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"
-        ]
-    }
-]
diff --git a/wiki/vendor/geshi/geshi/BUGS b/wiki/vendor/geshi/geshi/BUGS
deleted file mode 100644
index 8a5cf04..0000000
--- a/wiki/vendor/geshi/geshi/BUGS
+++ /dev/null
@@ -1,29 +0,0 @@
-
-                      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/wiki/vendor/geshi/geshi/CHANGELOG b/wiki/vendor/geshi/geshi/CHANGELOG
deleted file mode 100644
index 514e1a8..0000000
--- a/wiki/vendor/geshi/geshi/CHANGELOG
+++ /dev/null
@@ -1,1013 +0,0 @@
-
-              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/wiki/vendor/geshi/geshi/LICENSE b/wiki/vendor/geshi/geshi/LICENSE
deleted file mode 100644
index d159169..0000000
--- a/wiki/vendor/geshi/geshi/LICENSE
+++ /dev/null
@@ -1,339 +0,0 @@
-                    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/wiki/vendor/geshi/geshi/README.md b/wiki/vendor/geshi/geshi/README.md
deleted file mode 100644
index 6f67568..0000000
--- a/wiki/vendor/geshi/geshi/README.md
+++ /dev/null
@@ -1,36 +0,0 @@
-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/wiki/vendor/geshi/geshi/THANKS b/wiki/vendor/geshi/geshi/THANKS
deleted file mode 100644
index c52d7fd..0000000
--- a/wiki/vendor/geshi/geshi/THANKS
+++ /dev/null
@@ -1,284 +0,0 @@
-
-             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/wiki/vendor/geshi/geshi/build.properties.dist b/wiki/vendor/geshi/geshi/build.properties.dist
deleted file mode 100644
index dd270fe..0000000
--- a/wiki/vendor/geshi/geshi/build.properties.dist
+++ /dev/null
@@ -1 +0,0 @@
-sfuser=
diff --git a/wiki/vendor/geshi/geshi/build.xml b/wiki/vendor/geshi/geshi/build.xml
deleted file mode 100644
index d9bae0f..0000000
--- a/wiki/vendor/geshi/geshi/build.xml
+++ /dev/null
@@ -1,216 +0,0 @@
-<?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/wiki/vendor/geshi/geshi/src/geshi.php b/wiki/vendor/geshi/geshi/src/geshi.php
deleted file mode 100644
index c353299..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi.php
+++ /dev/null
@@ -1,4735 +0,0 @@
-<?php
-/**
- * GeSHi - Generic Syntax Highlighter
- *
- * The GeSHi class for Generic Syntax Highlighting. Please refer to the
- * documentation at http://qbnz.com/highlighter/documentation.php for more
- * information about how to use this class.
- *
- * For changes, release notes, TODOs etc, see the relevant files in the docs/
- * directory.
- *
- *   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
- *
- * @package    geshi
- * @subpackage core
- * @author     Nigel McNie <nigel@geshi.org>, Benny Baumann <BenBE@omorphia.de>
- * @copyright  (C) 2004 - 2007 Nigel McNie, (C) 2007 - 2014 Benny Baumann
- * @license    http://gnu.org/copyleft/gpl.html GNU GPL
- */
-
-//
-// GeSHi Constants
-// You should use these constant names in your programs instead of
-// their values - you never know when a value may change in a future
-// version
-//
-
-/** The version of this GeSHi file */
-define('GESHI_VERSION', '1.0.9.0');
-
-// Define the root directory for the GeSHi code tree
-if (!defined('GESHI_ROOT')) {
-    /** The root directory for GeSHi */
-    define('GESHI_ROOT', dirname(__FILE__) . DIRECTORY_SEPARATOR);
-}
-/** The language file directory for GeSHi
-    @access private */
-define('GESHI_LANG_ROOT', GESHI_ROOT . 'geshi' . DIRECTORY_SEPARATOR);
-
-// Define if GeSHi should be paranoid about security
-if (!defined('GESHI_SECURITY_PARANOID')) {
-    /** Tells GeSHi to be paranoid about security settings */
-    define('GESHI_SECURITY_PARANOID', false);
-}
-
-// Line numbers - use with enable_line_numbers()
-/** Use no line numbers when building the result */
-define('GESHI_NO_LINE_NUMBERS', 0);
-/** Use normal line numbers when building the result */
-define('GESHI_NORMAL_LINE_NUMBERS', 1);
-/** Use fancy line numbers when building the result */
-define('GESHI_FANCY_LINE_NUMBERS', 2);
-
-// Container HTML type
-/** Use nothing to surround the source */
-define('GESHI_HEADER_NONE', 0);
-/** Use a "div" to surround the source */
-define('GESHI_HEADER_DIV', 1);
-/** Use a "pre" to surround the source */
-define('GESHI_HEADER_PRE', 2);
-/** Use a pre to wrap lines when line numbers are enabled or to wrap the whole code. */
-define('GESHI_HEADER_PRE_VALID', 3);
-/**
- * Use a "table" to surround the source:
- *
- *  <table>
- *    <thead><tr><td colspan="2">$header</td></tr></thead>
- *    <tbody><tr><td><pre>$linenumbers</pre></td><td><pre>$code></pre></td></tr></tbody>
- *    <tfooter><tr><td colspan="2">$footer</td></tr></tfoot>
- *  </table>
- *
- * this is essentially only a workaround for Firefox, see sf#1651996 or take a look at
- * https://bugzilla.mozilla.org/show_bug.cgi?id=365805
- * @note when linenumbers are disabled this is essentially the same as GESHI_HEADER_PRE
- */
-define('GESHI_HEADER_PRE_TABLE', 4);
-
-// Capatalisation constants
-/** Lowercase keywords found */
-define('GESHI_CAPS_NO_CHANGE', 0);
-/** Uppercase keywords found */
-define('GESHI_CAPS_UPPER', 1);
-/** Leave keywords found as the case that they are */
-define('GESHI_CAPS_LOWER', 2);
-
-// Link style constants
-/** Links in the source in the :link state */
-define('GESHI_LINK', 0);
-/** Links in the source in the :hover state */
-define('GESHI_HOVER', 1);
-/** Links in the source in the :active state */
-define('GESHI_ACTIVE', 2);
-/** Links in the source in the :visited state */
-define('GESHI_VISITED', 3);
-
-// Important string starter/finisher
-// Note that if you change these, they should be as-is: i.e., don't
-// write them as if they had been run through htmlentities()
-/** The starter for important parts of the source */
-define('GESHI_START_IMPORTANT', '<BEGIN GeSHi>');
-/** The ender for important parts of the source */
-define('GESHI_END_IMPORTANT', '<END GeSHi>');
-
-/**#@+
- *  @access private
- */
-// When strict mode applies for a language
-/** Strict mode never applies (this is the most common) */
-define('GESHI_NEVER', 0);
-/** Strict mode *might* apply, and can be enabled or
-    disabled by {@link GeSHi->enable_strict_mode()} */
-define('GESHI_MAYBE', 1);
-/** Strict mode always applies */
-define('GESHI_ALWAYS', 2);
-
-// Advanced regexp handling constants, used in language files
-/** The key of the regex array defining what to search for */
-define('GESHI_SEARCH', 0);
-/** The key of the regex array defining what bracket group in a
-    matched search to use as a replacement */
-define('GESHI_REPLACE', 1);
-/** The key of the regex array defining any modifiers to the regular expression */
-define('GESHI_MODIFIERS', 2);
-/** The key of the regex array defining what bracket group in a
-    matched search to put before the replacement */
-define('GESHI_BEFORE', 3);
-/** The key of the regex array defining what bracket group in a
-    matched search to put after the replacement */
-define('GESHI_AFTER', 4);
-/** The key of the regex array defining a custom keyword to use
-    for this regexp's html tag class */
-define('GESHI_CLASS', 5);
-
-/** Used in language files to mark comments */
-define('GESHI_COMMENTS', 0);
-
-/** 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()
-    **/
-define('GESHI_MAX_PCRE_SUBPATTERNS', 500);
-/** it's also important not to generate too long regular expressions
-    be generous here... but keep in mind, that when reaching this limit we
-    still have to close open patterns. 12k should do just fine on a 16k limit.
-    @see GeSHi->optimize_regexp_list()
-    **/
-define('GESHI_MAX_PCRE_LENGTH', 12288);
-
-//Number format specification
-/** Basic number format for integers */
-define('GESHI_NUMBER_INT_BASIC', 1);        //Default integers \d+
-/** Enhanced number format for integers like seen in C */
-define('GESHI_NUMBER_INT_CSTYLE', 2);       //Default C-Style \d+[lL]?
-/** Number format to highlight binary numbers with a suffix "b" */
-define('GESHI_NUMBER_BIN_SUFFIX', 16);           //[01]+[bB]
-/** Number format to highlight binary numbers with a prefix % */
-define('GESHI_NUMBER_BIN_PREFIX_PERCENT', 32);   //%[01]+
-/** Number format to highlight binary numbers with a prefix 0b (C) */
-define('GESHI_NUMBER_BIN_PREFIX_0B', 64);        //0b[01]+
-/** Number format to highlight octal numbers with a leading zero */
-define('GESHI_NUMBER_OCT_PREFIX', 256);           //0[0-7]+
-/** Number format to highlight octal numbers with a prefix 0o (logtalk) */
-define('GESHI_NUMBER_OCT_PREFIX_0O', 512);           //0[0-7]+
-/** Number format to highlight octal numbers with a leading @ (Used in HiSofts Devpac series). */
-define('GESHI_NUMBER_OCT_PREFIX_AT', 1024);           //@[0-7]+
-/** Number format to highlight octal numbers with a suffix of o */
-define('GESHI_NUMBER_OCT_SUFFIX', 2048);           //[0-7]+[oO]
-/** Number format to highlight hex numbers with a prefix 0x */
-define('GESHI_NUMBER_HEX_PREFIX', 4096);           //0x[0-9a-fA-F]+
-/** Number format to highlight hex numbers with a prefix $ */
-define('GESHI_NUMBER_HEX_PREFIX_DOLLAR', 8192);           //$[0-9a-fA-F]+
-/** Number format to highlight hex numbers with a suffix of h */
-define('GESHI_NUMBER_HEX_SUFFIX', 16384);           //[0-9][0-9a-fA-F]*h
-/** Number format to highlight floating-point numbers without support for scientific notation */
-define('GESHI_NUMBER_FLT_NONSCI', 65536);          //\d+\.\d+
-/** Number format to highlight floating-point numbers without support for scientific notation */
-define('GESHI_NUMBER_FLT_NONSCI_F', 131072);       //\d+(\.\d+)?f
-/** Number format to highlight floating-point numbers with support for scientific notation (E) and optional leading zero */
-define('GESHI_NUMBER_FLT_SCI_SHORT', 262144);      //\.\d+e\d+
-/** Number format to highlight floating-point numbers with support for scientific notation (E) and required leading digit */
-define('GESHI_NUMBER_FLT_SCI_ZERO', 524288);       //\d+(\.\d+)?e\d+
-//Custom formats are passed by RX array
-
-// Error detection - use these to analyse faults
-/** No sourcecode to highlight was specified
- * @deprecated
- */
-define('GESHI_ERROR_NO_INPUT', 1);
-/** The language specified does not exist */
-define('GESHI_ERROR_NO_SUCH_LANG', 2);
-/** GeSHi could not open a file for reading (generally a language file) */
-define('GESHI_ERROR_FILE_NOT_READABLE', 3);
-/** The header type passed to {@link GeSHi->set_header_type()} was invalid */
-define('GESHI_ERROR_INVALID_HEADER_TYPE', 4);
-/** The line number type passed to {@link GeSHi->enable_line_numbers()} was invalid */
-define('GESHI_ERROR_INVALID_LINE_NUMBER_TYPE', 5);
-/**#@-*/
-
-
-/**
- * The GeSHi Class.
- *
- * Please refer to the documentation for GeSHi 1.0.X that is available
- * at http://qbnz.com/highlighter/documentation.php for more information
- * about how to use this class.
- *
- * @package   geshi
- * @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 {
-
-    /**
-     * The source code to highlight
-     * @var string
-     */
-    protected $source = '';
-
-    /**
-     * The language to use when highlighting
-     * @var string
-     */
-    protected $language = '';
-
-    /**
-     * The data for the language used
-     * @var array
-     */
-    protected $language_data = array();
-
-    /**
-     * The path to the language files
-     * @var string
-     */
-    protected $language_path = GESHI_LANG_ROOT;
-
-    /**
-     * The error message associated with an error
-     * @var string
-     * @todo check err reporting works
-     */
-    protected $error = false;
-
-    /**
-     * Possible error messages
-     * @var 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',
-        GESHI_ERROR_INVALID_LINE_NUMBER_TYPE => 'The line number type specified is invalid'
-    );
-
-    /**
-     * Whether highlighting is strict or not
-     * @var boolean
-     */
-    protected $strict_mode = false;
-
-    /**
-     * Whether to use CSS classes in output
-     * @var boolean
-     */
-    protected $use_classes = false;
-
-    /**
-     * The type of header to use. Can be one of the following
-     * values:
-     *
-     * - GESHI_HEADER_PRE: Source is outputted in a "pre" HTML element.
-     * - GESHI_HEADER_DIV: Source is outputted in a "div" HTML element.
-     * - GESHI_HEADER_NONE: No header is outputted.
-     *
-     * @var int
-     */
-    protected $header_type = GESHI_HEADER_PRE;
-
-    /**
-     * Array of permissions for which lexics should be highlighted
-     * @var array
-     */
-    protected $lexic_permissions = array(
-        'KEYWORDS' =>    array(),
-        'COMMENTS' =>    array('MULTI' => true),
-        'REGEXPS' =>     array(),
-        'ESCAPE_CHAR' => true,
-        'BRACKETS' =>    true,
-        'SYMBOLS' =>     false,
-        'STRINGS' =>     true,
-        'NUMBERS' =>     true,
-        'METHODS' =>     true,
-        'SCRIPT' =>      true
-    );
-
-    /**
-     * The time it took to parse the code
-     * @var double
-     */
-    protected $time = 0;
-
-    /**
-     * The content of the header block
-     * @var string
-     */
-    protected $header_content = '';
-
-    /**
-     * The content of the footer block
-     * @var string
-     */
-    protected $footer_content = '';
-
-    /**
-     * The style of the header block
-     * @var string
-     */
-    protected $header_content_style = '';
-
-    /**
-     * The style of the footer block
-     * @var string
-     */
-    protected $footer_content_style = '';
-
-    /**
-     * Tells if a block around the highlighted source should be forced
-     * if not using line numbering
-     * @var boolean
-     */
-    protected $force_code_block = false;
-
-    /**
-     * The styles for hyperlinks in the code
-     * @var array
-     */
-    protected $link_styles = array();
-
-    /**
-     * Whether important blocks should be recognised or not
-     * @var boolean
-     * @deprecated
-     * @todo REMOVE THIS FUNCTIONALITY!
-     */
-    protected $enable_important_blocks = false;
-
-    /**
-     * Styles for important parts of the code
-     * @var string
-     * @deprecated
-     * @todo As above - rethink the whole idea of important blocks as it is buggy and
-     * will be hard to implement in 1.2
-     */
-    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
-     */
-    protected $add_ids = false;
-
-    /**
-     * Lines that should be highlighted extra
-     * @var array
-     */
-    protected $highlight_extra_lines = array();
-
-    /**
-     * Styles of lines that should be highlighted extra
-     * @var array
-     */
-    protected $highlight_extra_lines_styles = array();
-
-    /**
-     * Styles of extra-highlighted lines
-     * @var string
-     */
-    protected $highlight_extra_lines_style = 'background-color: #ffc;';
-
-    /**
-     * The line ending
-     * If null, nl2br() will be used on the result string.
-     * Otherwise, all instances of \n will be replaced with $line_ending
-     * @var string
-     */
-    protected $line_ending = null;
-
-    /**
-     * Number at which line numbers should start at
-     * @var int
-     */
-    protected $line_numbers_start = 1;
-
-    /**
-     * The overall style for this code block
-     * @var string
-     */
-    protected $overall_style = 'font-family:monospace;';
-
-    /**
-     *  The style for the actual code
-     * @var string
-     */
-    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
-     */
-    protected $overall_class = '';
-
-    /**
-     * The overall ID for this code block
-     * @var string
-     */
-    protected $overall_id = '';
-
-    /**
-     * Line number styles
-     * @var string
-     */
-    protected $line_style1 = 'font-weight: normal; vertical-align:top;';
-
-    /**
-     * Line number styles for fancy lines
-     * @var string
-     */
-    protected $line_style2 = 'font-weight: bold; vertical-align:top;';
-
-    /**
-     * Style for line numbers when GESHI_HEADER_PRE_TABLE is chosen
-     * @var string
-     */
-    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
-     */
-    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
-     */
-    protected $allow_multiline_span = true;
-
-    /**
-     * The "nth" value for fancy line highlighting
-     * @var int
-     */
-    protected $line_nth_row = 0;
-
-    /**
-     * The size of tab stops
-     * @var int
-     */
-    protected $tab_width = 8;
-
-    /**
-     * Should we use language-defined tab stop widths?
-     * @var int
-     */
-    protected $use_language_tab_width = false;
-
-    /**
-     * Default target for keyword links
-     * @var string
-     */
-    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
-     */
-    protected $encoding = 'utf-8';
-
-    /**
-     * Should keywords be linked?
-     * @var boolean
-     */
-    protected $keyword_links = true;
-
-    /**
-     * Currently loaded language file
-     * @var    string
-     * @since 1.0.7.22
-     */
-    protected $loaded_language = '';
-
-    /**
-     * Wether the caches needed for parsing are built or not
-     *
-     * @var   bool
-     * @since 1.0.8
-     */
-    protected $parse_cache_built = false;
-
-    /**
-     * Work around for Suhosin Patch with disabled /e modifier
-     *
-     * Note from suhosins author in config file:
-     * <blockquote>
-     *   The /e modifier inside <code>preg_replace()</code> allows code execution.
-     *   Often it is the cause for remote code execution exploits. It is wise to
-     *   deactivate this feature and test where in the application it is used.
-     *   The developer using the /e modifier should be made aware that he should
-     *   use <code>preg_replace_callback()</code> instead
-     * </blockquote>
-     *
-     * @var   array
-     * @since 1.0.8
-     */
-    protected $_kw_replace_group = 0;
-    protected $_rx_key = 0;
-
-    /**
-     * some "callback parameters" for handle_multiline_regexps
-     *
-     * @since  1.0.8
-     * @access private
-     * @var    string
-     */
-    protected $_hmr_before = '';
-    protected $_hmr_replace = '';
-    protected $_hmr_after = '';
-    protected $_hmr_key = 0;
-
-    /**
-     * Creates a new GeSHi object, with source and language
-     *
-     * @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
-     *               renamed the language directory however, you will
-     *               still need to set the path using this parameter or
-     *               {@link GeSHi->set_language_path()}
-     * @since 1.0.0
-     */
-    public function __construct($source = '', $language = '', $path = '') {
-        if ( is_string($source) && ($source !== '') ) {
-            $this->set_source($source);
-        }
-        if ( is_string($language) && ($language !== '') ) {
-            $this->set_language($language);
-        }
-        $this->set_language_path($path);
-    }
-
-    /**
-     * Returns the version of GeSHi
-     *
-     * @return string
-     * @since  1.0.8.11
-     */
-    public function get_version()
-    {
-        return GESHI_VERSION;
-    }
-
-    /**
-     * Returns an error message associated with the last GeSHi operation,
-     * 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
-     */
-    public function error() {
-        if ($this->error) {
-            //Put some template variables for debugging here ...
-            $debug_tpl_vars = array(
-                '{LANGUAGE}' => $this->language,
-                '{PATH}' => $this->language_path
-            );
-            $msg = str_replace(
-                array_keys($debug_tpl_vars),
-                array_values($debug_tpl_vars),
-                $this->error_messages[$this->error]);
-
-            return "<br /><strong>GeSHi Error:</strong> $msg (code {$this->error})<br />";
-        }
-        return false;
-    }
-
-    /**
-     * Gets a human-readable language name (thanks to Simon Patterson
-     * for the idea :))
-     *
-     * @return string The name for the current language
-     * @since  1.0.2
-     */
-    public function get_language_name() {
-        if (GESHI_ERROR_NO_SUCH_LANG == $this->error) {
-            return $this->language_data['LANG_NAME'] . ' (Unknown Language)';
-        }
-        return $this->language_data['LANG_NAME'];
-    }
-
-    /**
-     * Sets the source code for this object
-     *
-     * @param string $source The source code to highlight
-     * @since 1.0.0
-     */
-    public function set_source($source) {
-        $this->source = $source;
-        $this->highlight_extra_lines = array();
-    }
-
-    /**
-     * Sets the language for this object
-     *
-     * @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 $language    The name of the language to use
-     * @param bool   $force_reset
-     * @since 1.0.0
-     */
-    public function set_language($language, $force_reset = false) {
-        $this->error = false;
-        $this->strict_mode = GESHI_NEVER;
-
-        if ($force_reset) {
-            $this->loaded_language = false;
-        }
-
-        //Clean up the language name to prevent malicious code injection
-        $language = preg_replace('#[^a-zA-Z0-9\-_]#', '', $language);
-
-        $language = strtolower($language);
-
-        //Retreive the full filename
-        $file_name = $this->language_path . $language . '.php';
-        if ($file_name == $this->loaded_language) {
-            // this language is already loaded!
-            return;
-        }
-
-        $this->language = $language;
-
-        //Check if we can read the desired file
-        if (!is_readable($file_name)) {
-            $this->error = GESHI_ERROR_NO_SUCH_LANG;
-            return;
-        }
-
-        // Load the language for parsing
-        $this->load_language($file_name);
-    }
-
-    /**
-     * Sets the path to the directory containing the language files. Note
-     * that this path is relative to the directory of the script that included
-     * geshi.php, NOT geshi.php itself.
-     *
-     * @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.
-     */
-    public function set_language_path($path) {
-        if(strpos($path,':')) {
-            //Security Fix to prevent external directories using fopen wrappers.
-            if(DIRECTORY_SEPARATOR == "\\") {
-                if(!preg_match('#^[a-zA-Z]:#', $path) || false !== strpos($path, ':', 2)) {
-                    return;
-                }
-            } else {
-                return;
-            }
-        }
-        if(preg_match('#[^/a-zA-Z0-9_\.\-\\\s:]#', $path)) {
-            //Security Fix to prevent external directories using fopen wrappers.
-            return;
-        }
-        if(GESHI_SECURITY_PARANOID && false !== strpos($path, '/.')) {
-            //Security Fix to prevent external directories using fopen wrappers.
-            return;
-        }
-        if(GESHI_SECURITY_PARANOID && false !== strpos($path, '..')) {
-            //Security Fix to prevent external directories using fopen wrappers.
-            return;
-        }
-        if ($path) {
-            $this->language_path = ('/' == $path[strlen($path) - 1]) ? $path : $path . '/';
-            $this->set_language($this->language); // otherwise set_language_path has no effect
-        }
-    }
-
-    /**
-     * Get supported langs or an associative array lang=>full_name.
-     * @param boolean $full_names
-     * @return array
-     */
-    public function get_supported_languages($full_names=false)
-    {
-        // return array
-        $back = array();
-
-        // we walk the lang root
-        $dir = dir($this->language_path);
-
-        // foreach entry
-        while (false !== ($entry = $dir->read()))
-        {
-            $full_path = $this->language_path.$entry;
-
-            // Skip all dirs
-            if (is_dir($full_path)) {
-                continue;
-            }
-
-            // we only want lang.php files
-            if (!preg_match('/^([^.]+)\.php$/', $entry, $matches)) {
-                continue;
-            }
-
-            // Raw lang name is here
-            $langname = $matches[1];
-
-            // We want the fullname too?
-            if ($full_names === true)
-            {
-                if (false !== ($fullname = $this->get_language_fullname($langname)))
-                {
-                    $back[$langname] = $fullname; // we go associative
-                }
-            }
-            else
-            {
-                // just store raw langname
-                $back[] = $langname;
-            }
-        }
-
-        $dir->close();
-
-        return $back;
-    }
-
-    /**
-     * Get full_name for a lang or false.
-     * @param string $language short langname (html4strict for example)
-     * @return mixed
-     */
-    public function get_language_fullname($language)
-    {
-        //Clean up the language name to prevent malicious code injection
-        $language = preg_replace('#[^a-zA-Z0-9\-_]#', '', $language);
-
-        $language = strtolower($language);
-
-        // get fullpath-filename for a langname
-        $fullpath = $this->language_path.$language.'.php';
-
-        // we need to get contents :S
-        if (false === ($data = file_get_contents($fullpath))) {
-            $this->error = sprintf('Geshi::get_lang_fullname() Unknown Language: %s', $language);
-            return false;
-        }
-
-        // match the langname
-        if (!preg_match('/\'LANG_NAME\'\s*=>\s*\'((?:[^\']|\\\')+?)\'/', $data, $matches)) {
-            $this->error = sprintf('Geshi::get_lang_fullname(%s): Regex can not detect language', $language);
-            return false;
-        }
-
-        // return fullname for langname
-        return stripcslashes($matches[1]);
-    }
-
-    /**
-     * Sets the type of header to be used.
-     *
-     * If GESHI_HEADER_DIV is used, the code is surrounded in a "div".This
-     * means more source code but more control over tab width and line-wrapping.
-     * GESHI_HEADER_PRE means that a "pre" is used - less source, but less
-     * control. Default is GESHI_HEADER_PRE.
-     *
-     * From 1.0.7.2, you can use GESHI_HEADER_NONE to specify that no header code
-     * should be outputted.
-     *
-     * @param int $type The type of header to be used
-     * @since 1.0.0
-     */
-    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))) {
-            $this->error = GESHI_ERROR_INVALID_HEADER_TYPE;
-            return;
-        }
-
-        //Set that new header type
-        $this->header_type = $type;
-    }
-
-    /**
-     * Sets the styles for the code that will be outputted
-     * when this object is parsed. The style should be a
-     * string of valid stylesheet declarations
-     *
-     * @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
-     */
-    public function set_overall_style($style, $preserve_defaults = false) {
-        if (!$preserve_defaults) {
-            $this->overall_style = $style;
-        } else {
-            $this->overall_style .= $style;
-        }
-    }
-
-    /**
-     * Sets the overall classname for this block of code. This
-     * class can then be used in a stylesheet to style this object's
-     * output
-     *
-     * @param string $class The class name to use for this block of code
-     * @since 1.0.0
-     */
-    public function set_overall_class($class) {
-        $this->overall_class = $class;
-    }
-
-    /**
-     * 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 $id The ID to use for this block of code
-     * @since 1.0.0
-     */
-    public function set_overall_id($id) {
-        $this->overall_id = $id;
-    }
-
-    /**
-     * 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 $flag Whether to turn classes on or not
-     * @since 1.0.0
-     */
-    public function enable_classes($flag = true) {
-        $this->use_classes = ($flag) ? true : false;
-    }
-
-    /**
-     * Sets the style for the actual code. This should be a string
-     * containing valid stylesheet declarations. If $preserve_defaults is
-     * true, then styles are merged with the default styles, with the
-     * user defined styles having priority
-     *
-     * Note: Use this method to override any style changes you made to
-     * the line numbers if you are using line numbers, else the line of
-     * code will have the same style as the line number! Consult the
-     * GeSHi documentation for more information about this.
-     *
-     * @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
-     */
-    public function set_code_style($style, $preserve_defaults = false) {
-        if (!$preserve_defaults) {
-            $this->code_style = $style;
-        } else {
-            $this->code_style .= $style;
-        }
-    }
-
-    /**
-     * Sets the styles for the line numbers.
-     *
-     * @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        $preserve_defaults If set, is the flag for whether to merge the "fancy"
-     *        styles with the current styles or not
-     * @since 1.0.2
-     */
-    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;
-            $style2 = '';
-        }
-
-        //Actually set the new styles
-        if (!$preserve_defaults) {
-            $this->line_style1 = $style1;
-            $this->line_style2 = $style2;
-        } else {
-            $this->line_style1 .= $style1;
-            $this->line_style2 .= $style2;
-        }
-    }
-
-    /**
-     * Sets whether line numbers should be displayed.
-     *
-     * Valid values for the first parameter are:
-     *
-     *  - GESHI_NO_LINE_NUMBERS: Line numbers will not be displayed
-     *  - GESHI_NORMAL_LINE_NUMBERS: Line numbers will be displayed
-     *  - GESHI_FANCY_LINE_NUMBERS: Fancy line numbers will be displayed
-     *
-     * For fancy line numbers, the second parameter is used to signal which lines
-     * are to be fancy. For example, if the value of this parameter is 5 then every
-     * 5th line will be fancy.
-     *
-     * @param int $flag    How line numbers should be displayed
-     * @param int $nth_row Defines which lines are fancy
-     * @since 1.0.0
-     */
-    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;
-        }
-        $this->line_numbers = $flag;
-        $this->line_nth_row = $nth_row;
-    }
-
-    /**
-     * Sets wether spans and other HTML markup generated by GeSHi can
-     * span over multiple lines or not. Defaults to true to reduce overhead.
-     * Set it to false if you want to manipulate the output or manually display
-     * the code in an ordered list.
-     *
-     * @param boolean $flag Wether multiline spans are allowed or not
-     * @since 1.0.7.22
-     */
-    public function enable_multiline_span($flag) {
-        $this->allow_multiline_span = (bool) $flag;
-    }
-
-    /**
-     * Get current setting for multiline spans, see GeSHi->enable_multiline_span().
-     *
-     * @see enable_multiline_span
-     * @return bool
-     */
-    public function get_multiline_span() {
-        return $this->allow_multiline_span;
-    }
-
-    /**
-     * Sets the style for a keyword group. If $preserve_defaults is
-     * true, then styles are merged with the default styles, with the
-     * user defined styles having priority
-     *
-     * @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
-     */
-    public function set_keyword_group_style($key, $style, $preserve_defaults = false) {
-        //Set the style for this keyword group
-        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 {
-            if (!$preserve_defaults) {
-                $this->language_data['STYLES']['KEYWORDS'][$key] = $style;
-            } else {
-                $this->language_data['STYLES']['KEYWORDS'][$key] .= $style;
-            }
-        }
-
-        //Update the lexic permissions
-        if (!isset($this->lexic_permissions['KEYWORDS'][$key])) {
-            $this->lexic_permissions['KEYWORDS'][$key] = true;
-        }
-    }
-
-    /**
-     * Turns highlighting on/off for a keyword group
-     *
-     * @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
-     */
-    public function set_keyword_group_highlighting($key, $flag = true) {
-        $this->lexic_permissions['KEYWORDS'][$key] = ($flag) ? true : false;
-    }
-
-    /**
-     * Sets the styles for comment groups.  If $preserve_defaults is
-     * true, then styles are merged with the default styles, with the
-     * user defined styles having priority
-     *
-     * @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
-     */
-    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 {
-            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     $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
-     */
-    public function set_comments_highlighting($key, $flag = true) {
-        $this->lexic_permissions['COMMENTS'][$key] = ($flag) ? true : false;
-    }
-
-    /**
-     * Sets the styles for escaped characters. If $preserve_defaults is
-     * true, then styles are merged with the default styles, with the
-     * user defined styles having priority
-     *
-     * @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
-     */
-    public function set_escape_characters_style($style, $preserve_defaults = false, $group = 0) {
-        if (!$preserve_defaults) {
-            $this->language_data['STYLES']['ESCAPE_CHAR'][$group] = $style;
-        } else {
-            $this->language_data['STYLES']['ESCAPE_CHAR'][$group] .= $style;
-        }
-    }
-
-    /**
-     * Turns highlighting on/off for escaped characters
-     *
-     * @param boolean $flag Whether to turn highlighting for escape characters on or off
-     * @since 1.0.0
-     */
-    public function set_escape_characters_highlighting($flag = true) {
-        $this->lexic_permissions['ESCAPE_CHAR'] = ($flag) ? true : false;
-    }
-
-    /**
-     * Sets the styles for brackets. If $preserve_defaults is
-     * true, then styles are merged with the default styles, with the
-     * user defined styles having priority
-     *
-     * This method is DEPRECATED: use set_symbols_style instead.
-     * This method will be removed in 1.2.X
-     *
-     * @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
-     */
-    public function set_brackets_style($style, $preserve_defaults = false) {
-        if (!$preserve_defaults) {
-            $this->language_data['STYLES']['BRACKETS'][0] = $style;
-        } else {
-            $this->language_data['STYLES']['BRACKETS'][0] .= $style;
-        }
-    }
-
-    /**
-     * Turns highlighting on/off for brackets
-     *
-     * This method is DEPRECATED: use set_symbols_highlighting instead.
-     * This method will be remove in 1.2.X
-     *
-     * @param boolean $flag Whether to turn highlighting for brackets on or off
-     * @since 1.0.0
-     * @deprecated In favour of set_symbols_highlighting
-     */
-    public function set_brackets_highlighting($flag) {
-        $this->lexic_permissions['BRACKETS'] = ($flag) ? true : false;
-    }
-
-    /**
-     * Sets the styles for symbols. If $preserve_defaults is
-     * true, then styles are merged with the default styles, with the
-     * user defined styles having priority
-     *
-     * @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
-     */
-    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;
-        } else {
-            $this->language_data['STYLES']['SYMBOLS'][$group] .= $style;
-        }
-
-        // For backward compatibility
-        if (0 == $group) {
-            $this->set_brackets_style ($style, $preserve_defaults);
-        }
-    }
-
-    /**
-     * Turns highlighting on/off for symbols
-     *
-     * @param boolean $flag Whether to turn highlighting for symbols on or off
-     * @since 1.0.0
-     */
-    public function set_symbols_highlighting($flag) {
-        // Update lexic permissions for this symbol group
-        $this->lexic_permissions['SYMBOLS'] = ($flag) ? true : false;
-
-        // For backward compatibility
-        $this->set_brackets_highlighting ($flag);
-    }
-
-    /**
-     * Sets the styles for strings. If $preserve_defaults is
-     * true, then styles are merged with the default styles, with the
-     * user defined styles having priority
-     *
-     * @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
-     */
-    public function set_strings_style($style, $preserve_defaults = false, $group = 0) {
-        if (!$preserve_defaults) {
-            $this->language_data['STYLES']['STRINGS'][$group] = $style;
-        } else {
-            $this->language_data['STYLES']['STRINGS'][$group] .= $style;
-        }
-    }
-
-    /**
-     * Turns highlighting on/off for strings
-     *
-     * @param boolean $flag Whether to turn highlighting for strings on or off
-     * @since 1.0.0
-     */
-    public function set_strings_highlighting($flag) {
-        $this->lexic_permissions['STRINGS'] = ($flag) ? true : false;
-    }
-
-    /**
-     * Sets the styles for strict code blocks. If $preserve_defaults is
-     * true, then styles are merged with the default styles, with the
-     * user defined styles having priority
-     *
-     * @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
-     */
-    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;
-        } else {
-            $this->language_data['STYLES']['SCRIPT'][$group] .= $style;
-        }
-    }
-
-    /**
-     * Sets the styles for numbers. If $preserve_defaults is
-     * true, then styles are merged with the default styles, with the
-     * user defined styles having priority
-     *
-     * @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
-     */
-    public function set_numbers_style($style, $preserve_defaults = false, $group = 0) {
-        if (!$preserve_defaults) {
-            $this->language_data['STYLES']['NUMBERS'][$group] = $style;
-        } else {
-            $this->language_data['STYLES']['NUMBERS'][$group] .= $style;
-        }
-    }
-
-    /**
-     * Turns highlighting on/off for numbers
-     *
-     * @param boolean $flag Whether to turn highlighting for numbers on or off
-     * @since 1.0.0
-     */
-    public function set_numbers_highlighting($flag) {
-        $this->lexic_permissions['NUMBERS'] = ($flag) ? true : false;
-    }
-
-    /**
-     * Sets the styles for methods. $key is a number that references the
-     * appropriate "object splitter" - see the language file for the language
-     * you are highlighting to get this number. If $preserve_defaults is
-     * true, then styles are merged with the default styles, with the
-     * user defined styles having priority
-     *
-     * @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
-     */
-    public function set_methods_style($key, $style, $preserve_defaults = false) {
-        if (!$preserve_defaults) {
-            $this->language_data['STYLES']['METHODS'][$key] = $style;
-        } else {
-            $this->language_data['STYLES']['METHODS'][$key] .= $style;
-        }
-    }
-
-    /**
-     * Turns highlighting on/off for methods
-     *
-     * @param boolean $flag Whether to turn highlighting for methods on or off
-     * @since 1.0.0
-     */
-    public function set_methods_highlighting($flag) {
-        $this->lexic_permissions['METHODS'] = ($flag) ? true : false;
-    }
-
-    /**
-     * Sets the styles for regexps. If $preserve_defaults is
-     * true, then styles are merged with the default styles, with the
-     * user defined styles having priority
-     *
-     * @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
-     */
-    public function set_regexps_style($key, $style, $preserve_defaults = false) {
-        if (!$preserve_defaults) {
-            $this->language_data['STYLES']['REGEXPS'][$key] = $style;
-        } else {
-            $this->language_data['STYLES']['REGEXPS'][$key] .= $style;
-        }
-    }
-
-    /**
-     * Turns highlighting on/off for regexps
-     *
-     * @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
-     */
-    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     $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
-     */
-    public function set_case_sensitivity($key, $case) {
-        $this->language_data['CASE_SENSITIVE'][$key] = ($case) ? true : false;
-    }
-
-    /**
-     * Sets the case that keywords should use when found. Use the constants:
-     *
-     *  - GESHI_CAPS_NO_CHANGE: leave keywords as-is
-     *  - GESHI_CAPS_UPPER: convert all keywords to uppercase where found
-     *  - GESHI_CAPS_LOWER: convert all keywords to lowercase where found
-     *
-     * @param int $case A constant specifying what to do with matched keywords
-     * @since 1.0.1
-     */
-    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;
-        }
-    }
-
-    /**
-     * Sets how many spaces a tab is substituted for
-     *
-     * Widths below zero are ignored
-     *
-     * @param int $width The tab width
-     * @since 1.0.0
-     */
-    public function set_tab_width($width) {
-        $this->tab_width = intval($width);
-
-        //Check if it fit's the constraints:
-        if ($this->tab_width < 1) {
-            //Return it to the default
-            $this->tab_width = 8;
-        }
-    }
-
-    /**
-     * Sets whether or not to use tab-stop width specifed by language
-     *
-     * @param boolean $use Whether to use language-specific tab-stop widths
-     * @since 1.0.7.20
-     */
-    public function set_use_language_tab_width($use) {
-        $this->use_language_tab_width = (bool) $use;
-    }
-
-    /**
-     * Returns the tab width to use, based on the current language and user
-     * preference
-     *
-     * @return int Tab width
-     * @since 1.0.7.20
-     */
-    public function get_real_tab_width() {
-        if (!$this->use_language_tab_width ||
-            !isset($this->language_data['TAB_WIDTH'])) {
-            return $this->tab_width;
-        } else {
-            return $this->language_data['TAB_WIDTH'];
-        }
-    }
-
-    /**
-     * Enables/disables strict highlighting. Default is off, calling this
-     * method without parameters will turn it on. See documentation
-     * for more details on strict mode and where to use it.
-     *
-     * @param boolean $mode Whether to enable strict mode or not
-     * @since 1.0.0
-     */
-    public function enable_strict_mode($mode = true) {
-        if (GESHI_MAYBE == $this->language_data['STRICT_MODE_APPLIES']) {
-            $this->strict_mode = ($mode) ? GESHI_ALWAYS : GESHI_NEVER;
-        }
-    }
-
-    /**
-     * Disables all highlighting
-     *
-     * @since 1.0.0
-     * @todo  Rewrite with array traversal
-     * @deprecated In favour of enable_highlighting
-     */
-    public function disable_highlighting() {
-        $this->enable_highlighting(false);
-    }
-
-    /**
-     * Enables all highlighting
-     *
-     * The optional flag parameter was added in version 1.0.7.21 and can be used
-     * to enable (true) or disable (false) all highlighting.
-     *
-     * @since 1.0.0
-     * @param boolean $flag A flag specifying whether to enable or disable all highlighting
-     * @todo  Rewrite with array traversal
-     */
-    public function enable_highlighting($flag = true) {
-        $flag = $flag ? true : false;
-        foreach ($this->lexic_permissions as $key => $value) {
-            if (is_array($value)) {
-                foreach ($value as $k => $v) {
-                    $this->lexic_permissions[$key][$k] = $flag;
-                }
-            } else {
-                $this->lexic_permissions[$key] = $flag;
-            }
-        }
-
-        // Context blocks
-        $this->enable_important_blocks = $flag;
-    }
-
-    /**
-     * 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 $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?)
-     * @return int|string
-     */
-    public static function get_language_name_from_extension( $extension, $lookup = array() ) {
-        $extension = strtolower($extension);
-
-        if ( !is_array($lookup) || empty($lookup)) {
-            $lookup = array(
-                '6502acme' => array( 'a', 's', 'asm', 'inc' ),
-                '6502tasm' => array( 'a', 's', 'asm', 'inc' ),
-                '6502kickass' => array( 'a', 's', 'asm', 'inc' ),
-                '68000devpac' => array( 'a', 's', 'asm', 'inc' ),
-                'abap' => array('abap'),
-                'actionscript' => array('as'),
-                'ada' => array('a', 'ada', 'adb', 'ads'),
-                'apache' => array('conf'),
-                'asm' => array('ash', 'asm', 'inc'),
-                'asp' => array('asp'),
-                'bash' => array('sh'),
-                'bf' => array('bf'),
-                'c' => array('c', 'h'),
-                'c_mac' => array('c', 'h'),
-                'caddcl' => array(),
-                'cadlisp' => array(),
-                'cdfg' => array('cdfg'),
-                'cobol' => array('cbl'),
-                'cpp' => array('cpp', 'hpp', 'C', 'H', 'CPP', 'HPP'),
-                'csharp' => array('cs'),
-                'css' => array('css'),
-                'd' => array('d'),
-                'delphi' => array('dpk', 'dpr', 'pp', 'pas'),
-                'diff' => array('diff', 'patch'),
-                'dos' => array('bat', 'cmd'),
-                'gdb' => array('kcrash', 'crash', 'bt'),
-                'gettext' => array('po', 'pot'),
-                'gml' => array('gml'),
-                'gnuplot' => array('plt'),
-                'groovy' => array('groovy'),
-                'haskell' => array('hs'),
-                'haxe' => array('hx'),
-                'html4strict' => array('html', 'htm'),
-                'ini' => array('ini', 'desktop'),
-                'java' => array('java'),
-                'javascript' => array('js'),
-                'klonec' => array('kl1'),
-                'klonecpp' => array('klx'),
-                'latex' => array('tex'),
-                'lisp' => array('lisp'),
-                'lua' => array('lua'),
-                'matlab' => array('m'),
-                'mpasm' => array(),
-                'mysql' => array('sql'),
-                'nsis' => array(),
-                'objc' => array(),
-                'oobas' => array(),
-                'oracle8' => array(),
-                'oracle10' => array(),
-                'pascal' => array('pas'),
-                'perl' => array('pl', 'pm'),
-                'php' => array('php', 'php5', 'phtml', 'phps'),
-                'povray' => array('pov'),
-                'providex' => array('pvc', 'pvx'),
-                'prolog' => array('pl'),
-                'python' => array('py'),
-                'qbasic' => array('bi'),
-                'reg' => array('reg'),
-                'ruby' => array('rb'),
-                'sas' => array('sas'),
-                'scala' => array('scala'),
-                'scheme' => array('scm'),
-                'scilab' => array('sci'),
-                'smalltalk' => array('st'),
-                'smarty' => array(),
-                'tcl' => array('tcl'),
-                'text' => array('txt'),
-                'vb' => array('bas'),
-                'vbnet' => array(),
-                'visualfoxpro' => array(),
-                'whitespace' => array('ws'),
-                'xml' => array('xml', 'svg', 'xrc'),
-                'z80' => array('z80', 'asm', 'inc')
-            );
-        }
-
-        foreach ($lookup as $lang => $extensions) {
-            if (in_array($extension, $extensions)) {
-                return $lang;
-            }
-        }
-
-        return 'text';
-    }
-
-    /**
-     * Given a file name, this method loads its contents in, and attempts
-     * to set the language automatically. An optional lookup table can be
-     * passed for looking up the language name. If not specified a default
-     * table is used
-     *
-     * The language table is in the form
-     * <pre>array(
-     *   'lang_name' => array('extension', 'extension', ...),
-     *   'lang_name' ...
-     * );</pre>
-     *
-     * @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
-     */
-    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(self::get_language_name_from_extension(substr(strrchr($file_name, '.'), 1), $lookup));
-        } else {
-            $this->error = GESHI_ERROR_FILE_NOT_READABLE;
-        }
-    }
-
-    /**
-     * Adds a keyword to a keyword group for highlighting
-     *
-     * @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
-     */
-    public function add_keyword($key, $word) {
-        if (!is_array($this->language_data['KEYWORDS'][$key])) {
-            $this->language_data['KEYWORDS'][$key] = array();
-        }
-        if (!in_array($word, $this->language_data['KEYWORDS'][$key])) {
-            $this->language_data['KEYWORDS'][$key][] = $word;
-
-            //NEW in 1.0.8 don't recompile the whole optimized regexp, simply append it
-            if ($this->parse_cache_built) {
-                $subkey = count($this->language_data['CACHED_KEYWORD_LISTS'][$key]) - 1;
-                $this->language_data['CACHED_KEYWORD_LISTS'][$key][$subkey] .= '|' . preg_quote($word, '/');
-            }
-        }
-    }
-
-    /**
-     * Removes a keyword from a keyword group
-     *
-     * @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
-     *               it might be too expensive to recompile the regexp list for every removal if you want to
-     *               remove a lot of keywords.
-     * @since 1.0.0
-     */
-    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]);
-
-            //NEW in 1.0.8, optionally recompile keyword group
-            if ($recompile && $this->parse_cache_built) {
-                $this->optimize_keyword_group($key);
-            }
-        }
-    }
-
-    /**
-     * Creates a new 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
-     */
-    public function add_keyword_group($key, $styles, $case_sensitive = true, $words = array()) {
-        $words = (array) $words;
-        if  (empty($words)) {
-            // empty word lists mess up highlighting
-            return false;
-        }
-
-        //Add the new keyword group internally
-        $this->language_data['KEYWORDS'][$key] = $words;
-        $this->lexic_permissions['KEYWORDS'][$key] = true;
-        $this->language_data['CASE_SENSITIVE'][$key] = $case_sensitive;
-        $this->language_data['STYLES']['KEYWORDS'][$key] = $styles;
-
-        //NEW in 1.0.8, cache keyword regexp
-        if ($this->parse_cache_built) {
-            $this->optimize_keyword_group($key);
-        }
-        return true;
-    }
-
-    /**
-     * Removes a keyword group
-     *
-     * @param int $key The key of the keyword group to remove
-     * @since 1.0.0
-     */
-    public function remove_keyword_group ($key) {
-        //Remove the keyword group internally
-        unset($this->language_data['KEYWORDS'][$key]);
-        unset($this->lexic_permissions['KEYWORDS'][$key]);
-        unset($this->language_data['CASE_SENSITIVE'][$key]);
-        unset($this->language_data['STYLES']['KEYWORDS'][$key]);
-
-        //NEW in 1.0.8
-        unset($this->language_data['CACHED_KEYWORD_LISTS'][$key]);
-    }
-
-    /**
-     * compile optimized regexp list for keyword group
-     *
-     * @param int $key The key of the keyword group to compile & optimize
-     * @since 1.0.8
-     */
-    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;
-        if(isset($this->language_data['PARSER_CONTROL'])) {
-            if(isset($this->language_data['PARSER_CONTROL']['KEYWORDS'])) {
-                if(isset($this->language_data['PARSER_CONTROL']['KEYWORDS']['SPACE_AS_WHITESPACE'])) {
-                    $space_as_whitespace = $this->language_data['PARSER_CONTROL']['KEYWORDS']['SPACE_AS_WHITESPACE'];
-                }
-                if(isset($this->language_data['PARSER_CONTROL']['KEYWORDS'][$key]['SPACE_AS_WHITESPACE'])) {
-                    if(isset($this->language_data['PARSER_CONTROL']['KEYWORDS'][$key]['SPACE_AS_WHITESPACE'])) {
-                        $space_as_whitespace = $this->language_data['PARSER_CONTROL']['KEYWORDS'][$key]['SPACE_AS_WHITESPACE'];
-                    }
-                }
-            }
-        }
-        if($space_as_whitespace) {
-            foreach($this->language_data['CACHED_KEYWORD_LISTS'][$key] as $rxk => $rxv) {
-                $this->language_data['CACHED_KEYWORD_LISTS'][$key][$rxk] =
-                    str_replace(" ", "\\s+", $rxv);
-            }
-        }
-    }
-
-    /**
-     * Sets the content of the header block
-     *
-     * @param string $content The content of the header block
-     * @since 1.0.2
-     */
-    public function set_header_content($content) {
-        $this->header_content = $content;
-    }
-
-    /**
-     * Sets the content of the footer block
-     *
-     * @param string $content The content of the footer block
-     * @since 1.0.2
-     */
-    public function set_footer_content($content) {
-        $this->footer_content = $content;
-    }
-
-    /**
-     * Sets the style for the header content
-     *
-     * @param string $style The style for the header content
-     * @since 1.0.2
-     */
-    public function set_header_content_style($style) {
-        $this->header_content_style = $style;
-    }
-
-    /**
-     * Sets the style for the footer content
-     *
-     * @param string $style The style for the footer content
-     * @since 1.0.2
-     */
-    public function set_footer_content_style($style) {
-        $this->footer_content_style = $style;
-    }
-
-    /**
-     * Sets whether to force a surrounding block around
-     * the highlighted code or not
-     *
-     * @param boolean $flag Tells whether to enable or disable this feature
-     * @since 1.0.7.20
-     */
-    public function enable_inner_code_block($flag) {
-        $this->force_code_block = (bool)$flag;
-    }
-
-    /**
-     * Sets the base URL to be used for keywords
-     *
-     * @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
-     */
-    public function set_url_for_keyword_group($group, $url) {
-        $this->language_data['URLS'][$group] = $url;
-    }
-
-    /**
-     * Sets styles for links in code
-     *
-     * @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
-     */
-    public function set_link_styles($type, $styles) {
-        $this->link_styles[$type] = $styles;
-    }
-
-    /**
-     * Sets the target for links in code
-     *
-     * @param string $target The target for links in the code, e.g. _blank
-     * @since 1.0.3
-     */
-    public function set_link_target($target) {
-        if (!$target) {
-            $this->link_target = '';
-        } else {
-            $this->link_target = ' target="' . $target . '"';
-        }
-    }
-
-    /**
-     * Sets styles for important parts of the code
-     *
-     * @param string $styles The styles to use on important parts of the code
-     * @since 1.0.2
-     */
-    public function set_important_styles($styles) {
-        $this->important_styles = $styles;
-    }
-
-    /**
-     * Sets whether context-important blocks are highlighted
-     *
-     * @param boolean $flag Tells whether to enable or disable highlighting of important blocks
-     * @todo REMOVE THIS SHIZ FROM GESHI!
-     * @deprecated
-     * @since 1.0.2
-     */
-    public function enable_important_blocks($flag) {
-        $this->enable_important_blocks = ( $flag ) ? true : false;
-    }
-
-    /**
-     * Whether CSS IDs should be added to each line
-     *
-     * @param boolean $flag If true, IDs will be added to each line.
-     * @since 1.0.2
-     */
-    public function enable_ids($flag = true) {
-        $this->add_ids = ($flag) ? true : false;
-    }
-
-    /**
-     * Specifies which lines to highlight extra
-     *
-     * The extra style parameter was added in 1.0.7.21.
-     *
-     * @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
-     */
-    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) {
-                $this->highlight_lines_extra($line, $style);
-            }
-        } else {
-            //Mark the line as being highlighted specially
-            $lines = intval($lines);
-            $this->highlight_extra_lines[$lines] = $lines;
-
-            //Decide on which style to use
-            if ($style === null) { //Check if we should use default style
-                unset($this->highlight_extra_lines_styles[$lines]);
-            } elseif ($style === false) { //Check if to remove this line
-                unset($this->highlight_extra_lines[$lines]);
-                unset($this->highlight_extra_lines_styles[$lines]);
-            } else {
-                $this->highlight_extra_lines_styles[$lines] = $style;
-            }
-        }
-    }
-
-    /**
-     * Sets the style for extra-highlighted lines
-     *
-     * @param string $styles The style for extra-highlighted lines
-     * @since 1.0.2
-     */
-    public function set_highlight_lines_extra_style($styles) {
-        $this->highlight_extra_lines_style = $styles;
-    }
-
-    /**
-     * Sets the line-ending
-     *
-     * @param string $line_ending The new line-ending
-     * @since 1.0.2
-     */
-    public function set_line_ending($line_ending) {
-        $this->line_ending = (string)$line_ending;
-    }
-
-    /**
-     * Sets what number line numbers should start at. Should
-     * be a positive integer, and will be converted to one.
-     *
-     * <b>Warning:</b> Using this method will add the "start"
-     * attribute to the &lt;ol&gt; that is used for line numbering.
-     * This is <b>not</b> valid XHTML strict, so if that's what you
-     * care about then don't use this method. Firefox is getting
-     * support for the CSS method of doing this in 1.1 and Opera
-     * 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 $number The number to start line numbers at
-     * @since 1.0.2
-     */
-    public function start_line_numbers_at($number) {
-        $this->line_numbers_start = abs(intval($number));
-    }
-
-    /**
-     * Sets the encoding used for htmlspecialchars(), for international
-     * support.
-     *
-     * NOTE: This is not needed for now because htmlspecialchars() is not
-     * being used (it has a security hole in PHP4 that has not been patched).
-     * Maybe in a future version it may make a return for speed reasons, but
-     * I doubt it.
-     *
-     * @param string $encoding The encoding to use for the source
-     * @since 1.0.3
-     */
-    public function set_encoding($encoding) {
-        if ($encoding) {
-          $this->encoding = strtolower($encoding);
-        }
-    }
-
-    /**
-     * Turns linking of keywords on or off.
-     *
-     * @param boolean $enable If true, links will be added to keywords
-     * @since 1.0.2
-     */
-    public function enable_keyword_links($enable = true) {
-        $this->keyword_links = (bool) $enable;
-    }
-
-    /**
-     * Setup caches needed for styling. This is automatically called in
-     * parse_code() and get_stylesheet() when appropriate. This function helps
-     * stylesheet generators as they rely on some style information being
-     * preprocessed
-     *
-     * @since 1.0.8
-     */
-    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
-            if(!isset($this->language_data['NUMBERS'])) {
-                $this->language_data['NUMBERS'] = 0;
-            }
-
-            if(is_array($this->language_data['NUMBERS'])) {
-                $this->language_data['NUMBERS_CACHE'] = $this->language_data['NUMBERS'];
-            } else {
-                $this->language_data['NUMBERS_CACHE'] = array();
-                if(!$this->language_data['NUMBERS']) {
-                    $this->language_data['NUMBERS'] =
-                        GESHI_NUMBER_INT_BASIC |
-                        GESHI_NUMBER_FLT_NONSCI;
-                }
-
-                for($i = 0, $j = $this->language_data['NUMBERS']; $j > 0; ++$i, $j>>=1) {
-                    //Rearrange style indices if required ...
-                    if(isset($this->language_data['STYLES']['NUMBERS'][1<<$i])) {
-                        $this->language_data['STYLES']['NUMBERS'][$i] =
-                            $this->language_data['STYLES']['NUMBERS'][1<<$i];
-                        unset($this->language_data['STYLES']['NUMBERS'][1<<$i]);
-                    }
-
-                    //Check if this bit is set for highlighting
-                    if($j&1) {
-                        //So this bit is set ...
-                        //Check if it belongs to group 0 or the actual stylegroup
-                        if(isset($this->language_data['STYLES']['NUMBERS'][$i])) {
-                            $this->language_data['NUMBERS_CACHE'][$i] = 1 << $i;
-                        } else {
-                            if(!isset($this->language_data['NUMBERS_CACHE'][0])) {
-                                $this->language_data['NUMBERS_CACHE'][0] = 0;
-                            }
-                            $this->language_data['NUMBERS_CACHE'][0] |= 1 << $i;
-                        }
-                    }
-                }
-            }
-        }
-    }
-
-    /**
-     * Setup caches needed for parsing. This is automatically called in parse_code() when appropriate.
-     * This function makes stylesheet generators much faster as they do not need these caches.
-     *
-     * @since 1.0.8
-     */
-    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.
-        //
-        //For this to work, we need to reorganize the data arrays.
-        if ($this->lexic_permissions['SYMBOLS'] && !empty($this->language_data['SYMBOLS'])) {
-            $this->language_data['MULTIPLE_SYMBOL_GROUPS'] = count($this->language_data['STYLES']['SYMBOLS']) > 1;
-
-            $this->language_data['SYMBOL_DATA'] = array();
-            $symbol_preg_multi = array(); // multi char symbols
-            $symbol_preg_single = array(); // single char symbols
-            foreach ($this->language_data['SYMBOLS'] as $key => $symbols) {
-                if (is_array($symbols)) {
-                    foreach ($symbols as $sym) {
-                        $sym = $this->hsc($sym);
-                        if (!isset($this->language_data['SYMBOL_DATA'][$sym])) {
-                            $this->language_data['SYMBOL_DATA'][$sym] = $key;
-                            if (isset($sym[1])) { // multiple chars
-                                $symbol_preg_multi[] = preg_quote($sym, '/');
-                            } else { // single char
-                                if ($sym == '-') {
-                                    // don't trigger range out of order error
-                                    $symbol_preg_single[] = '\-';
-                                } else {
-                                    $symbol_preg_single[] = preg_quote($sym, '/');
-                                }
-                            }
-                        }
-                    }
-                } else {
-                    $symbols = $this->hsc($symbols);
-                    if (!isset($this->language_data['SYMBOL_DATA'][$symbols])) {
-                        $this->language_data['SYMBOL_DATA'][$symbols] = 0;
-                        if (isset($symbols[1])) { // multiple chars
-                            $symbol_preg_multi[] = preg_quote($symbols, '/');
-                        } elseif ($symbols == '-') {
-                            // don't trigger range out of order error
-                            $symbol_preg_single[] = '\-';
-                        } else { // single char
-                            $symbol_preg_single[] = preg_quote($symbols, '/');
-                        }
-                    }
-                }
-            }
-
-            //Now we have an array with each possible symbol as the key and the style as the actual data.
-            //This way we can set the correct style just the moment we highlight ...
-            //
-            //Now we need to rewrite our array to get a search string that
-            $symbol_preg = array();
-            if (!empty($symbol_preg_multi)) {
-                rsort($symbol_preg_multi);
-                $symbol_preg[] = implode('|', $symbol_preg_multi);
-            }
-            if (!empty($symbol_preg_single)) {
-                rsort($symbol_preg_single);
-                $symbol_preg[] = '[' . implode('', $symbol_preg_single) . ']';
-            }
-            $this->language_data['SYMBOL_SEARCH'] = implode("|", $symbol_preg);
-        }
-
-        // cache optimized regexp for keyword matching
-        // remove old cache
-        $this->language_data['CACHED_KEYWORD_LISTS'] = array();
-        foreach (array_keys($this->language_data['KEYWORDS']) as $key) {
-            if (!isset($this->lexic_permissions['KEYWORDS'][$key]) ||
-                    $this->lexic_permissions['KEYWORDS'][$key]) {
-                $this->optimize_keyword_group($key);
-            }
-        }
-
-        // brackets
-        if ($this->lexic_permissions['BRACKETS']) {
-            $this->language_data['CACHE_BRACKET_MATCH'] = array('[', ']', '(', ')', '{', '}');
-            if (!$this->use_classes && isset($this->language_data['STYLES']['BRACKETS'][0])) {
-                $this->language_data['CACHE_BRACKET_REPLACE'] = array(
-                    '<| style="' . $this->language_data['STYLES']['BRACKETS'][0] . '">&#91;|>',
-                    '<| style="' . $this->language_data['STYLES']['BRACKETS'][0] . '">&#93;|>',
-                    '<| style="' . $this->language_data['STYLES']['BRACKETS'][0] . '">&#40;|>',
-                    '<| style="' . $this->language_data['STYLES']['BRACKETS'][0] . '">&#41;|>',
-                    '<| style="' . $this->language_data['STYLES']['BRACKETS'][0] . '">&#123;|>',
-                    '<| style="' . $this->language_data['STYLES']['BRACKETS'][0] . '">&#125;|>',
-                );
-            }
-            else {
-                $this->language_data['CACHE_BRACKET_REPLACE'] = array(
-                    '<| class="br0">&#91;|>',
-                    '<| class="br0">&#93;|>',
-                    '<| class="br0">&#40;|>',
-                    '<| class="br0">&#41;|>',
-                    '<| class="br0">&#123;|>',
-                    '<| class="br0">&#125;|>',
-                );
-            }
-        }
-
-        //Build the parse cache needed to highlight numbers appropriate
-        if($this->lexic_permissions['NUMBERS']) {
-            //Check if the style rearrangements have been processed ...
-            //This also does some preprocessing to check which style groups are useable ...
-            if(!isset($this->language_data['NUMBERS_CACHE'])) {
-                $this->build_style_cache();
-            }
-
-            //Number format specification
-            //All this formats are matched case-insensitively!
-            static $numbers_format = array(
-                GESHI_NUMBER_INT_BASIC =>
-                    '(?:(?<![0-9a-z_\.%$@])|(?<=\.\.))(?<![\d\.]e[+\-])([1-9]\d*?|0)(?![0-9a-z]|\.(?:[eE][+\-]?)?\d)',
-                GESHI_NUMBER_INT_CSTYLE =>
-                    '(?<![0-9a-z_\.%])(?<![\d\.]e[+\-])([1-9]\d*?|0)l(?![0-9a-z]|\.(?:[eE][+\-]?)?\d)',
-                GESHI_NUMBER_BIN_SUFFIX =>
-                    '(?<![0-9a-z_\.])(?<![\d\.]e[+\-])[01]+?[bB](?![0-9a-z]|\.(?:[eE][+\-]?)?\d)',
-                GESHI_NUMBER_BIN_PREFIX_PERCENT =>
-                    '(?<![0-9a-z_\.%])(?<![\d\.]e[+\-])%[01]+?(?![0-9a-z]|\.(?:[eE][+\-]?)?\d)',
-                GESHI_NUMBER_BIN_PREFIX_0B =>
-                    '(?<![0-9a-z_\.%])(?<![\d\.]e[+\-])0b[01]+?(?![0-9a-z]|\.(?:[eE][+\-]?)?\d)',
-                GESHI_NUMBER_OCT_PREFIX =>
-                    '(?<![0-9a-z_\.])(?<![\d\.]e[+\-])0[0-7]+?(?![0-9a-z]|\.(?:[eE][+\-]?)?\d)',
-                GESHI_NUMBER_OCT_PREFIX_0O =>
-                    '(?<![0-9a-z_\.%])(?<![\d\.]e[+\-])0o[0-7]+?(?![0-9a-z]|\.(?:[eE][+\-]?)?\d)',
-                GESHI_NUMBER_OCT_PREFIX_AT =>
-                    '(?<![0-9a-z_\.%])(?<![\d\.]e[+\-])\@[0-7]+?(?![0-9a-z]|\.(?:[eE][+\-]?)?\d)',
-                GESHI_NUMBER_OCT_SUFFIX =>
-                    '(?<![0-9a-z_\.])(?<![\d\.]e[+\-])[0-7]+?o(?![0-9a-z]|\.(?:[eE][+\-]?)?\d)',
-                GESHI_NUMBER_HEX_PREFIX =>
-                    '(?<![0-9a-z_\.])(?<![\d\.]e[+\-])0x[0-9a-fA-F]+?(?![0-9a-z]|\.(?:[eE][+\-]?)?\d)',
-                GESHI_NUMBER_HEX_PREFIX_DOLLAR =>
-                    '(?<![0-9a-z_\.])(?<![\d\.]e[+\-])\$[0-9a-fA-F]+?(?![0-9a-z]|\.(?:[eE][+\-]?)?\d)',
-                GESHI_NUMBER_HEX_SUFFIX =>
-                    '(?<![0-9a-z_\.])(?<![\d\.]e[+\-])\d[0-9a-fA-F]*?[hH](?![0-9a-z]|\.(?:[eE][+\-]?)?\d)',
-                GESHI_NUMBER_FLT_NONSCI =>
-                    '(?<![0-9a-z_\.])(?<![\d\.]e[+\-])\d+?\.\d+?(?![0-9a-z]|\.(?:[eE][+\-]?)?\d)',
-                GESHI_NUMBER_FLT_NONSCI_F =>
-                    '(?<![0-9a-z_\.])(?<![\d\.]e[+\-])(?:\d+?(?:\.\d*?)?|\.\d+?)f(?![0-9a-z]|\.(?:[eE][+\-]?)?\d)',
-                GESHI_NUMBER_FLT_SCI_SHORT =>
-                    '(?<![0-9a-z_\.])(?<![\d\.]e[+\-])\.\d+?(?:e[+\-]?\d+?)?(?![0-9a-z]|\.(?:[eE][+\-]?)?\d)',
-                GESHI_NUMBER_FLT_SCI_ZERO =>
-                    '(?<![0-9a-z_\.])(?<![\d\.]e[+\-])(?:\d+?(?:\.\d*?)?|\.\d+?)(?:e[+\-]?\d+?)?(?![0-9a-z]|\.(?:[eE][+\-]?)?\d)'
-                );
-
-            //At this step we have an associative array with flag groups for a
-            //specific style or an string denoting a regexp given its index.
-            $this->language_data['NUMBERS_RXCACHE'] = array();
-            foreach($this->language_data['NUMBERS_CACHE'] as $key => $rxdata) {
-                if(is_string($rxdata)) {
-                    $regexp = $rxdata;
-                } else {
-                    //This is a bitfield of number flags to highlight:
-                    //Build an array, implode them together and make this the actual RX
-                    $rxuse = array();
-                    for($i = 1; $i <= $rxdata; $i<<=1) {
-                        if($rxdata & $i) {
-                            $rxuse[] = $numbers_format[$i];
-                        }
-                    }
-                    $regexp = implode("|", $rxuse);
-                }
-
-                $this->language_data['NUMBERS_RXCACHE'][$key] =
-                    "/(?<!<\|\/)(?<!<\|!REG3XP)(?<!<\|\/NUM!)(?<!\d\/>)($regexp)(?!(?:<DOT>|(?>[^\<]))+>)(?![^<]*>)(?!\|>)(?!\/>)/i";
-            }
-
-            if(!isset($this->language_data['PARSER_CONTROL']['NUMBERS']['PRECHECK_RX'])) {
-                $this->language_data['PARSER_CONTROL']['NUMBERS']['PRECHECK_RX'] = '#\d#';
-            }
-        }
-
-        $this->parse_cache_built = true;
-    }
-
-    /**
-     * Returns the code in $this->source, highlighted and surrounded by the
-     * nessecary HTML.
-     *
-     * This should only be called ONCE, cos it's SLOW! If you want to highlight
-     * the same source multiple times, you're better off doing a whole lot of
-     * str_replaces to replace the &lt;span&gt;s
-     *
-     * @since 1.0.0
-     */
-    public function parse_code () {
-        // Start the timer
-        $start_time = microtime();
-
-        // Replace all newlines to a common form.
-        $code = str_replace("\r\n", "\n", $this->source);
-        $code = str_replace("\r", "\n", $code);
-
-        // Firstly, if there is an error, we won't highlight
-        if ($this->error) {
-            //Escape the source for output
-            $result = $this->hsc($this->source);
-
-            //This fix is related to SF#1923020, but has to be applied regardless of
-            //actually highlighting symbols.
-            $result = str_replace(array('<SEMI>', '<PIPE>'), array(';', '|'), $result);
-
-            // Timing is irrelevant
-            $this->set_time($start_time, $start_time);
-            $this->finalise($result);
-            return $result;
-        }
-
-        // make sure the parse cache is up2date
-        if (!$this->parse_cache_built) {
-            $this->build_parse_cache();
-        }
-
-        // Initialise various stuff
-        $length           = strlen($code);
-        $COMMENT_MATCHED  = false;
-        $stuff_to_parse   = '';
-        $endresult        = '';
-
-        // "Important" selections are handled like multiline comments
-        // @todo GET RID OF THIS SHIZ
-        if ($this->enable_important_blocks) {
-            $this->language_data['COMMENT_MULTI'][GESHI_START_IMPORTANT] = GESHI_END_IMPORTANT;
-        }
-
-        if ($this->strict_mode) {
-            // Break the source into bits. Each bit will be a portion of the code
-            // within script delimiters - for example, HTML between < and >
-            $k = 0;
-            $parts = array();
-            $matches = array();
-            $next_match_pointer = null;
-            // we use a copy to unset delimiters on demand (when they are not found)
-            $delim_copy = $this->language_data['SCRIPT_DELIMITERS'];
-            $i = 0;
-            while ($i < $length) {
-                $next_match_pos = $length + 1; // never true
-                foreach ($delim_copy as $dk => $delimiters) {
-                    if(is_array($delimiters)) {
-                        foreach ($delimiters as $open => $close) {
-                            // make sure the cache is setup properly
-                            if (!isset($matches[$dk][$open])) {
-                                $matches[$dk][$open] = array(
-                                    'next_match' => -1,
-                                    'dk' => $dk,
-
-                                    'open' => $open, // needed for grouping of adjacent code blocks (see below)
-                                    'open_strlen' => strlen($open),
-
-                                    'close' => $close,
-                                    'close_strlen' => strlen($close),
-                                );
-                            }
-                            // Get the next little bit for this opening string
-                            if ($matches[$dk][$open]['next_match'] < $i) {
-                                // only find the next pos if it was not already cached
-                                $open_pos = strpos($code, $open, $i);
-                                if ($open_pos === false) {
-                                    // no match for this delimiter ever
-                                    unset($delim_copy[$dk][$open]);
-                                    continue;
-                                }
-                                $matches[$dk][$open]['next_match'] = $open_pos;
-                            }
-                            if ($matches[$dk][$open]['next_match'] < $next_match_pos) {
-                                //So we got a new match, update the close_pos
-                                $matches[$dk][$open]['close_pos'] =
-                                    strpos($code, $close, $matches[$dk][$open]['next_match']+1);
-
-                                $next_match_pointer =& $matches[$dk][$open];
-                                $next_match_pos = $matches[$dk][$open]['next_match'];
-                            }
-                        }
-                    } else {
-                        //So we should match an RegExp as Strict Block ...
-                        /**
-                         * The value in $delimiters is expected to be an RegExp
-                         * containing exactly 2 matching groups:
-                         *  - Group 1 is the opener
-                         *  - Group 2 is the closer
-                         */
-                        if(preg_match($delimiters, $code, $matches_rx, PREG_OFFSET_CAPTURE, $i)) {
-                            //We got a match ...
-                            if(isset($matches_rx['start']) && isset($matches_rx['end']))
-                            {
-                                $matches[$dk] = array(
-                                    'next_match' => $matches_rx['start'][1],
-                                    'dk' => $dk,
-
-                                    'close_strlen' => strlen($matches_rx['end'][0]),
-                                    'close_pos' => $matches_rx['end'][1],
-                                    );
-                            } else {
-                                $matches[$dk] = array(
-                                    'next_match' => $matches_rx[1][1],
-                                    'dk' => $dk,
-
-                                    'close_strlen' => strlen($matches_rx[2][0]),
-                                    'close_pos' => $matches_rx[2][1],
-                                    );
-                            }
-                        } else {
-                            // no match for this delimiter ever
-                            unset($delim_copy[$dk]);
-                            continue;
-                        }
-
-                        if ($matches[$dk]['next_match'] <= $next_match_pos) {
-                            $next_match_pointer =& $matches[$dk];
-                            $next_match_pos = $matches[$dk]['next_match'];
-                        }
-                    }
-                }
-
-                // non-highlightable text
-                $parts[$k] = array(
-                    1 => substr($code, $i, $next_match_pos - $i)
-                );
-                ++$k;
-
-                if ($next_match_pos > $length) {
-                    // out of bounds means no next match was found
-                    break;
-                }
-
-                // highlightable code
-                $parts[$k][0] = $next_match_pointer['dk'];
-
-                //Only combine for non-rx script blocks
-                if(is_array($delim_copy[$next_match_pointer['dk']])) {
-                    // group adjacent script blocks, e.g. <foobar><asdf> should be one block, not three!
-                    $i = $next_match_pos + $next_match_pointer['open_strlen'];
-                    while (true) {
-                        $close_pos = strpos($code, $next_match_pointer['close'], $i);
-                        if ($close_pos == false) {
-                            break;
-                        }
-                        $i = $close_pos + $next_match_pointer['close_strlen'];
-                        if ($i == $length) {
-                            break;
-                        }
-                        if ($code[$i] == $next_match_pointer['open'][0] && ($next_match_pointer['open_strlen'] == 1 ||
-                            substr($code, $i, $next_match_pointer['open_strlen']) == $next_match_pointer['open'])) {
-                            // merge adjacent but make sure we don't merge things like <tag><!-- comment -->
-                            foreach ($matches as $submatches) {
-                                foreach ($submatches as $match) {
-                                    if ($match['next_match'] == $i) {
-                                        // a different block already matches here!
-                                        break 3;
-                                    }
-                                }
-                            }
-                        } else {
-                            break;
-                        }
-                    }
-                } else {
-                    $close_pos = $next_match_pointer['close_pos'] + $next_match_pointer['close_strlen'];
-                    $i = $close_pos;
-                }
-
-                if ($close_pos === false) {
-                    // no closing delimiter found!
-                    $parts[$k][1] = substr($code, $next_match_pos);
-                    ++$k;
-                    break;
-                } else {
-                    $parts[$k][1] = substr($code, $next_match_pos, $i - $next_match_pos);
-                    ++$k;
-                }
-            }
-            unset($delim_copy, $next_match_pointer, $next_match_pos, $matches);
-            $num_parts = $k;
-
-            if ($num_parts == 1 && $this->strict_mode == GESHI_MAYBE) {
-                // when we have only one part, we don't have anything to highlight at all.
-                // if we have a "maybe" strict language, this should be handled as highlightable code
-                $parts = array(
-                    0 => array(
-                        0 => '',
-                        1 => ''
-                    ),
-                    1 => array(
-                        0 => null,
-                        1 => $parts[0][1]
-                    )
-                );
-                $num_parts = 2;
-            }
-
-        } else {
-            // Not strict mode - simply dump the source into
-            // the array at index 1 (the first highlightable block)
-            $parts = array(
-                0 => array(
-                    0 => '',
-                    1 => ''
-                ),
-                1 => array(
-                    0 => null,
-                    1 => $code
-                )
-            );
-            $num_parts = 2;
-        }
-
-        //Unset variables we won't need any longer
-        unset($code);
-
-        //Preload some repeatedly used values regarding hardquotes ...
-        $hq = isset($this->language_data['HARDQUOTE']) ? $this->language_data['HARDQUOTE'][0] : false;
-        $hq_strlen = strlen($hq);
-
-        //Preload if line numbers are to be generated afterwards
-        //Added a check if line breaks should be forced even without line numbers, fixes SF#1727398
-        $check_linenumbers = $this->line_numbers != GESHI_NO_LINE_NUMBERS ||
-            !empty($this->highlight_extra_lines) || !$this->allow_multiline_span;
-
-        //preload the escape char for faster checking ...
-        $escaped_escape_char = $this->hsc($this->language_data['ESCAPE_CHAR']);
-
-        // this is used for single-line comments
-        $sc_disallowed_before = "";
-        $sc_disallowed_after = "";
-
-        if (isset($this->language_data['PARSER_CONTROL'])) {
-            if (isset($this->language_data['PARSER_CONTROL']['COMMENTS'])) {
-                if (isset($this->language_data['PARSER_CONTROL']['COMMENTS']['DISALLOWED_BEFORE'])) {
-                    $sc_disallowed_before = $this->language_data['PARSER_CONTROL']['COMMENTS']['DISALLOWED_BEFORE'];
-                }
-                if (isset($this->language_data['PARSER_CONTROL']['COMMENTS']['DISALLOWED_AFTER'])) {
-                    $sc_disallowed_after = $this->language_data['PARSER_CONTROL']['COMMENTS']['DISALLOWED_AFTER'];
-                }
-            }
-        }
-
-        //Fix for SF#1932083: Multichar Quotemarks unsupported
-        $is_string_starter = array();
-        if ($this->lexic_permissions['STRINGS']) {
-            foreach ($this->language_data['QUOTEMARKS'] as $quotemark) {
-                if (!isset($is_string_starter[$quotemark[0]])) {
-                    $is_string_starter[$quotemark[0]] = (string)$quotemark;
-                } elseif (is_string($is_string_starter[$quotemark[0]])) {
-                    $is_string_starter[$quotemark[0]] = array(
-                        $is_string_starter[$quotemark[0]],
-                        $quotemark);
-                } else {
-                    $is_string_starter[$quotemark[0]][] = $quotemark;
-                }
-            }
-        }
-
-        // Now we go through each part. We know that even-indexed parts are
-        // code that shouldn't be highlighted, and odd-indexed parts should
-        // be highlighted
-        for ($key = 0; $key < $num_parts; ++$key) {
-            $STRICTATTRS = '';
-
-            // If this block should be highlighted...
-            if (!($key & 1)) {
-                // Else not a block to highlight
-                $endresult .= $this->hsc($parts[$key][1]);
-                unset($parts[$key]);
-                continue;
-            }
-
-            $result = '';
-            $part = $parts[$key][1];
-
-            $highlight_part = true;
-            if ($this->strict_mode && !is_null($parts[$key][0])) {
-                // get the class key for this block of code
-                $script_key = $parts[$key][0];
-                $highlight_part = $this->language_data['HIGHLIGHT_STRICT_BLOCK'][$script_key];
-                if ($this->language_data['STYLES']['SCRIPT'][$script_key] != '' &&
-                    $this->lexic_permissions['SCRIPT']) {
-                    // Add a span element around the source to
-                    // highlight the overall source block
-                    if (!$this->use_classes &&
-                        $this->language_data['STYLES']['SCRIPT'][$script_key] != '') {
-                        $attributes = ' style="' . $this->language_data['STYLES']['SCRIPT'][$script_key] . '"';
-                    } else {
-                        $attributes = ' class="sc' . $script_key . '"';
-                    }
-                    $result .= "<span$attributes>";
-                    $STRICTATTRS = $attributes;
-                }
-            }
-
-            if ($highlight_part) {
-                // Now, highlight the code in this block. This code
-                // is really the engine of GeSHi (along with the method
-                // parse_non_string_part).
-
-                // cache comment regexps incrementally
-                $next_comment_regexp_key = '';
-                $next_comment_regexp_pos = -1;
-                $next_comment_multi_pos = -1;
-                $next_comment_single_pos = -1;
-                $comment_regexp_cache_per_key = array();
-                $comment_multi_cache_per_key = array();
-                $comment_single_cache_per_key = array();
-                $next_open_comment_multi = '';
-                $next_comment_single_key = '';
-                $escape_regexp_cache_per_key = array();
-                $next_escape_regexp_key = '';
-                $next_escape_regexp_pos = -1;
-
-                $length = strlen($part);
-                for ($i = 0; $i < $length; ++$i) {
-                    // Get the next char
-                    $char = $part[$i];
-                    $char_len = 1;
-
-                    // update regexp comment cache if needed
-                    if (isset($this->language_data['COMMENT_REGEXP']) && $next_comment_regexp_pos < $i) {
-                        $next_comment_regexp_pos = $length;
-                        foreach ($this->language_data['COMMENT_REGEXP'] as $comment_key => $regexp) {
-                            $match_i = false;
-                            if (isset($comment_regexp_cache_per_key[$comment_key]) &&
-                                ($comment_regexp_cache_per_key[$comment_key]['pos'] >= $i ||
-                                 $comment_regexp_cache_per_key[$comment_key]['pos'] === false)) {
-                                // we have already matched something
-                                if ($comment_regexp_cache_per_key[$comment_key]['pos'] === false) {
-                                    // this comment is never matched
-                                    continue;
-                                }
-                                $match_i = $comment_regexp_cache_per_key[$comment_key]['pos'];
-                            } elseif (preg_match($regexp, $part, $match, PREG_OFFSET_CAPTURE, $i)) {
-                                $match_i = $match[0][1];
-
-                                $comment_regexp_cache_per_key[$comment_key] = array(
-                                    'key' => $comment_key,
-                                    'length' => strlen($match[0][0]),
-                                    'pos' => $match_i
-                                );
-                            } else {
-                                $comment_regexp_cache_per_key[$comment_key]['pos'] = false;
-                                continue;
-                            }
-
-                            if ($match_i !== false && $match_i < $next_comment_regexp_pos) {
-                                $next_comment_regexp_pos = $match_i;
-                                $next_comment_regexp_key = $comment_key;
-                                if ($match_i === $i) {
-                                    break;
-                                }
-                            }
-                        }
-                    }
-
-                    $string_started = false;
-
-                    if (isset($is_string_starter[$char])) {
-                        // Possibly the start of a new string ...
-
-                        //Check which starter it was ...
-                        //Fix for SF#1932083: Multichar Quotemarks unsupported
-                        if (is_array($is_string_starter[$char])) {
-                            $char_new = '';
-                            foreach ($is_string_starter[$char] as $testchar) {
-                                if ($testchar === substr($part, $i, strlen($testchar)) &&
-                                    strlen($testchar) > strlen($char_new)) {
-                                    $char_new = $testchar;
-                                    $string_started = true;
-                                }
-                            }
-                            if ($string_started) {
-                                $char = $char_new;
-                            }
-                        } else {
-                            $testchar = $is_string_starter[$char];
-                            if ($testchar === substr($part, $i, strlen($testchar))) {
-                                $char = $testchar;
-                                $string_started = true;
-                            }
-                        }
-                        $char_len = strlen($char);
-                    }
-
-                    if ($string_started && ($i != $next_comment_regexp_pos)) {
-                        // Hand out the correct style information for this string
-                        $string_key = array_search($char, $this->language_data['QUOTEMARKS']);
-                        if (!isset($this->language_data['STYLES']['STRINGS'][$string_key]) ||
-                            !isset($this->language_data['STYLES']['ESCAPE_CHAR'][$string_key])) {
-                            $string_key = 0;
-                        }
-
-                        // parse the stuff before this
-                        $result .= $this->parse_non_string_part($stuff_to_parse);
-                        $stuff_to_parse = '';
-
-                        if (!$this->use_classes) {
-                            $string_attributes = ' style="' . $this->language_data['STYLES']['STRINGS'][$string_key] . '"';
-                        } else {
-                            $string_attributes = ' class="st'.$string_key.'"';
-                        }
-
-                        // now handle the string
-                        $string = "<span$string_attributes>" . GeSHi::hsc($char);
-                        $start = $i + $char_len;
-                        $string_open = true;
-
-                        if(empty($this->language_data['ESCAPE_REGEXP'])) {
-                            $next_escape_regexp_pos = $length;
-                        }
-
-                        do {
-                            //Get the regular ending pos ...
-                            $close_pos = strpos($part, $char, $start);
-                            if(false === $close_pos) {
-                                $close_pos = $length;
-                            }
-
-                            if($this->lexic_permissions['ESCAPE_CHAR']) {
-                                // update escape regexp cache if needed
-                                if (isset($this->language_data['ESCAPE_REGEXP']) && $next_escape_regexp_pos < $start) {
-                                    $next_escape_regexp_pos = $length;
-                                    foreach ($this->language_data['ESCAPE_REGEXP'] as $escape_key => $regexp) {
-                                        $match_i = false;
-                                        if (isset($escape_regexp_cache_per_key[$escape_key]) &&
-                                            ($escape_regexp_cache_per_key[$escape_key]['pos'] >= $start ||
-                                             $escape_regexp_cache_per_key[$escape_key]['pos'] === false)) {
-                                            // we have already matched something
-                                            if ($escape_regexp_cache_per_key[$escape_key]['pos'] === false) {
-                                                // this comment is never matched
-                                                continue;
-                                            }
-                                            $match_i = $escape_regexp_cache_per_key[$escape_key]['pos'];
-                                        } elseif (preg_match($regexp, $part, $match, PREG_OFFSET_CAPTURE, $start)) {
-                                            $match_i = $match[0][1];
-
-                                            $escape_regexp_cache_per_key[$escape_key] = array(
-                                                'key' => $escape_key,
-                                                'length' => strlen($match[0][0]),
-                                                'pos' => $match_i
-                                            );
-                                        } else {
-                                            $escape_regexp_cache_per_key[$escape_key]['pos'] = false;
-                                            continue;
-                                        }
-
-                                        if ($match_i !== false && $match_i < $next_escape_regexp_pos) {
-                                            $next_escape_regexp_pos = $match_i;
-                                            $next_escape_regexp_key = $escape_key;
-                                            if ($match_i === $start) {
-                                                break;
-                                            }
-                                        }
-                                    }
-                                }
-
-                                //Find the next simple escape position
-                                if('' != $this->language_data['ESCAPE_CHAR']) {
-                                    $simple_escape = strpos($part, $this->language_data['ESCAPE_CHAR'], $start);
-                                    if(false === $simple_escape) {
-                                        $simple_escape = $length;
-                                    }
-                                } else {
-                                    $simple_escape = $length;
-                                }
-                            } else {
-                                $next_escape_regexp_pos = $length;
-                                $simple_escape = $length;
-                            }
-
-                            if($simple_escape < $next_escape_regexp_pos &&
-                                $simple_escape < $length &&
-                                $simple_escape < $close_pos) {
-                                //The nexxt escape sequence is a simple one ...
-                                $es_pos = $simple_escape;
-
-                                //Add the stuff not in the string yet ...
-                                $string .= $this->hsc(substr($part, $start, $es_pos - $start));
-
-                                //Get the style for this escaped char ...
-                                if (!$this->use_classes) {
-                                    $escape_char_attributes = ' style="' . $this->language_data['STYLES']['ESCAPE_CHAR'][0] . '"';
-                                } else {
-                                    $escape_char_attributes = ' class="es0"';
-                                }
-
-                                //Add the style for the escape char ...
-                                $string .= "<span$escape_char_attributes>" .
-                                    GeSHi::hsc($this->language_data['ESCAPE_CHAR']);
-
-                                //Get the byte AFTER the ESCAPE_CHAR we just found
-                                $es_char = $part[$es_pos + 1];
-                                if ($es_char == "\n") {
-                                    // don't put a newline around newlines
-                                    $string .= "</span>\n";
-                                    $start = $es_pos + 2;
-                                } elseif (ord($es_char) >= 128) {
-                                    //This is an non-ASCII char (UTF8 or single byte)
-                                    //This code tries to work around SF#2037598 ...
-                                    if(function_exists('mb_substr')) {
-                                        $es_char_m = mb_substr(substr($part, $es_pos+1, 16), 0, 1, $this->encoding);
-                                        $string .= $es_char_m . '</span>';
-                                    } elseif ('utf-8' == $this->encoding) {
-                                        if(preg_match("/[\xC2-\xDF][\x80-\xBF]".
-                                            "|\xE0[\xA0-\xBF][\x80-\xBF]".
-                                            "|[\xE1-\xEC\xEE\xEF][\x80-\xBF]{2}".
-                                            "|\xED[\x80-\x9F][\x80-\xBF]".
-                                            "|\xF0[\x90-\xBF][\x80-\xBF]{2}".
-                                            "|[\xF1-\xF3][\x80-\xBF]{3}".
-                                            "|\xF4[\x80-\x8F][\x80-\xBF]{2}/s",
-                                            $part, $es_char_m, null, $es_pos + 1)) {
-                                            $es_char_m = $es_char_m[0];
-                                        } else {
-                                            $es_char_m = $es_char;
-                                        }
-                                        $string .= $this->hsc($es_char_m) . '</span>';
-                                    } else {
-                                        $es_char_m = $this->hsc($es_char);
-                                    }
-                                    $start = $es_pos + strlen($es_char_m) + 1;
-                                } else {
-                                    $string .= $this->hsc($es_char) . '</span>';
-                                    $start = $es_pos + 2;
-                                }
-                            } elseif ($next_escape_regexp_pos < $length &&
-                                $next_escape_regexp_pos < $close_pos) {
-                                $es_pos = $next_escape_regexp_pos;
-                                //Add the stuff not in the string yet ...
-                                $string .= $this->hsc(substr($part, $start, $es_pos - $start));
-
-                                //Get the key and length of this match ...
-                                $escape = $escape_regexp_cache_per_key[$next_escape_regexp_key];
-                                $escape_str = substr($part, $es_pos, $escape['length']);
-                                $escape_key = $escape['key'];
-
-                                //Get the style for this escaped char ...
-                                if (!$this->use_classes) {
-                                    $escape_char_attributes = ' style="' . $this->language_data['STYLES']['ESCAPE_CHAR'][$escape_key] . '"';
-                                } else {
-                                    $escape_char_attributes = ' class="es' . $escape_key . '"';
-                                }
-
-                                //Add the style for the escape char ...
-                                $string .= "<span$escape_char_attributes>" .
-                                    $this->hsc($escape_str) . '</span>';
-
-                                $start = $es_pos + $escape['length'];
-                            } else {
-                                //Copy the remainder of the string ...
-                                $string .= $this->hsc(substr($part, $start, $close_pos - $start + $char_len)) . '</span>';
-                                $start = $close_pos + $char_len;
-                                $string_open = false;
-                            }
-                        } while($string_open);
-
-                        if ($check_linenumbers) {
-                            // Are line numbers used? If, we should end the string before
-                            // the newline and begin it again (so when <li>s are put in the source
-                            // remains XHTML compliant)
-                            // note to self: This opens up possibility of config files specifying
-                            // that languages can/cannot have multiline strings???
-                            $string = str_replace("\n", "</span>\n<span$string_attributes>", $string);
-                        }
-
-                        $result .= $string;
-                        $string = '';
-                        $i = $start - 1;
-                        continue;
-                    } elseif ($this->lexic_permissions['STRINGS'] && $hq && $hq[0] == $char &&
-                        substr($part, $i, $hq_strlen) == $hq && ($i != $next_comment_regexp_pos)) {
-                        // The start of a hard quoted string
-                        if (!$this->use_classes) {
-                            $string_attributes = ' style="' . $this->language_data['STYLES']['STRINGS']['HARD'] . '"';
-                            $escape_char_attributes = ' style="' . $this->language_data['STYLES']['ESCAPE_CHAR']['HARD'] . '"';
-                        } else {
-                            $string_attributes = ' class="st_h"';
-                            $escape_char_attributes = ' class="es_h"';
-                        }
-                        // parse the stuff before this
-                        $result .= $this->parse_non_string_part($stuff_to_parse);
-                        $stuff_to_parse = '';
-
-                        // now handle the string
-                        $string = '';
-
-                        // look for closing quote
-                        $start = $i + $hq_strlen;
-                        while ($close_pos = strpos($part, $this->language_data['HARDQUOTE'][1], $start)) {
-                            $start = $close_pos + 1;
-                            if ($this->lexic_permissions['ESCAPE_CHAR'] && $part[$close_pos - 1] == $this->language_data['HARDCHAR'] &&
-                                (($i + $hq_strlen) != ($close_pos))) { //Support empty string for HQ escapes if Starter = Escape
-                                // make sure this quote is not escaped
-                                foreach ($this->language_data['HARDESCAPE'] as $hardescape) {
-                                    if (substr($part, $close_pos - 1, strlen($hardescape)) == $hardescape) {
-                                        // check wether this quote is escaped or if it is something like '\\'
-                                        $escape_char_pos = $close_pos - 1;
-                                        while ($escape_char_pos > 0
-                                                && $part[$escape_char_pos - 1] == $this->language_data['HARDCHAR']) {
-                                            --$escape_char_pos;
-                                        }
-                                        if (($close_pos - $escape_char_pos) & 1) {
-                                            // uneven number of escape chars => this quote is escaped
-                                            continue 2;
-                                        }
-                                    }
-                                }
-                            }
-
-                            // found closing quote
-                            break;
-                        }
-
-                        //Found the closing delimiter?
-                        if (!$close_pos) {
-                            // span till the end of this $part when no closing delimiter is found
-                            $close_pos = $length;
-                        }
-
-                        //Get the actual string
-                        $string = substr($part, $i, $close_pos - $i + 1);
-                        $i = $close_pos;
-
-                        // handle escape chars and encode html chars
-                        // (special because when we have escape chars within our string they may not be escaped)
-                        if ($this->lexic_permissions['ESCAPE_CHAR'] && $this->language_data['ESCAPE_CHAR']) {
-                            $start = 0;
-                            $new_string = '';
-                            while ($es_pos = strpos($string, $this->language_data['ESCAPE_CHAR'], $start)) {
-                                // hmtl escape stuff before
-                                $new_string .= $this->hsc(substr($string, $start, $es_pos - $start));
-                                // check if this is a hard escape
-                                foreach ($this->language_data['HARDESCAPE'] as $hardescape) {
-                                    if (substr($string, $es_pos, strlen($hardescape)) == $hardescape) {
-                                        // indeed, this is a hardescape
-                                        $new_string .= "<span$escape_char_attributes>" .
-                                            $this->hsc($hardescape) . '</span>';
-                                        $start = $es_pos + strlen($hardescape);
-                                        continue 2;
-                                    }
-                                }
-                                // not a hard escape, but a normal escape
-                                // they come in pairs of two
-                                $c = 0;
-                                while (isset($string[$es_pos + $c]) && isset($string[$es_pos + $c + 1])
-                                    && $string[$es_pos + $c] == $this->language_data['ESCAPE_CHAR']
-                                    && $string[$es_pos + $c + 1] == $this->language_data['ESCAPE_CHAR']) {
-                                    $c += 2;
-                                }
-                                if ($c) {
-                                    $new_string .= "<span$escape_char_attributes>" .
-                                        str_repeat($escaped_escape_char, $c) .
-                                        '</span>';
-                                    $start = $es_pos + $c;
-                                } else {
-                                    // this is just a single lonely escape char...
-                                    $new_string .= $escaped_escape_char;
-                                    $start = $es_pos + 1;
-                                }
-                            }
-                            $string = $new_string . $this->hsc(substr($string, $start));
-                        } else {
-                            $string = $this->hsc($string);
-                        }
-
-                        if ($check_linenumbers) {
-                            // Are line numbers used? If, we should end the string before
-                            // the newline and begin it again (so when <li>s are put in the source
-                            // remains XHTML compliant)
-                            // note to self: This opens up possibility of config files specifying
-                            // that languages can/cannot have multiline strings???
-                            $string = str_replace("\n", "</span>\n<span$string_attributes>", $string);
-                        }
-
-                        $result .= "<span$string_attributes>" . $string . '</span>';
-                        $string = '';
-                        continue;
-                    } else {
-                        //Have a look for regexp comments
-                        if ($i == $next_comment_regexp_pos) {
-                            $COMMENT_MATCHED = true;
-                            $comment = $comment_regexp_cache_per_key[$next_comment_regexp_key];
-                            $test_str = $this->hsc(substr($part, $i, $comment['length']));
-
-                            //@todo If remove important do remove here
-                            if ($this->lexic_permissions['COMMENTS']['MULTI']) {
-                                if (!$this->use_classes) {
-                                    $attributes = ' style="' . $this->language_data['STYLES']['COMMENTS'][$comment['key']] . '"';
-                                } else {
-                                    $attributes = ' class="co' . $comment['key'] . '"';
-                                }
-
-                                $test_str = "<span$attributes>" . $test_str . "</span>";
-
-                                // Short-cut through all the multiline code
-                                if ($check_linenumbers) {
-                                    // strreplace to put close span and open span around multiline newlines
-                                    $test_str = str_replace(
-                                        "\n", "</span>\n<span$attributes>",
-                                        str_replace("\n ", "\n&nbsp;", $test_str)
-                                    );
-                                }
-                            }
-
-                            $i += $comment['length'] - 1;
-
-                            // parse the rest
-                            $result .= $this->parse_non_string_part($stuff_to_parse);
-                            $stuff_to_parse = '';
-                        }
-
-                        // If we haven't matched a regexp comment, try multi-line comments
-                        if (!$COMMENT_MATCHED) {
-                            // Is this a multiline comment?
-                            if (!empty($this->language_data['COMMENT_MULTI']) && $next_comment_multi_pos < $i) {
-                                $next_comment_multi_pos = $length;
-                                foreach ($this->language_data['COMMENT_MULTI'] as $open => $close) {
-                                    $match_i = false;
-                                    if (isset($comment_multi_cache_per_key[$open]) &&
-                                        ($comment_multi_cache_per_key[$open] >= $i ||
-                                         $comment_multi_cache_per_key[$open] === false)) {
-                                        // we have already matched something
-                                        if ($comment_multi_cache_per_key[$open] === false) {
-                                            // this comment is never matched
-                                            continue;
-                                        }
-                                        $match_i = $comment_multi_cache_per_key[$open];
-                                    } elseif (($match_i = stripos($part, $open, $i)) !== false) {
-                                        $comment_multi_cache_per_key[$open] = $match_i;
-                                    } else {
-                                        $comment_multi_cache_per_key[$open] = false;
-                                        continue;
-                                    }
-                                    if ($match_i !== false && $match_i < $next_comment_multi_pos) {
-                                        $next_comment_multi_pos = $match_i;
-                                        $next_open_comment_multi = $open;
-                                        if ($match_i === $i) {
-                                            break;
-                                        }
-                                    }
-                                }
-                            }
-                            if ($i == $next_comment_multi_pos) {
-                                $open = $next_open_comment_multi;
-                                $close = $this->language_data['COMMENT_MULTI'][$open];
-                                $open_strlen = strlen($open);
-                                $close_strlen = strlen($close);
-                                $COMMENT_MATCHED = true;
-                                $test_str_match = $open;
-                                //@todo If remove important do remove here
-                                if ($this->lexic_permissions['COMMENTS']['MULTI'] ||
-                                    $open == GESHI_START_IMPORTANT) {
-                                    if ($open != GESHI_START_IMPORTANT) {
-                                        if (!$this->use_classes) {
-                                            $attributes = ' style="' . $this->language_data['STYLES']['COMMENTS']['MULTI'] . '"';
-                                        } else {
-                                            $attributes = ' class="coMULTI"';
-                                        }
-                                        $test_str = "<span$attributes>" . $this->hsc($open);
-                                    } else {
-                                        if (!$this->use_classes) {
-                                            $attributes = ' style="' . $this->important_styles . '"';
-                                        } else {
-                                            $attributes = ' class="imp"';
-                                        }
-
-                                        // We don't include the start of the comment if it's an
-                                        // "important" part
-                                        $test_str = "<span$attributes>";
-                                    }
-                                } else {
-                                    $test_str = $this->hsc($open);
-                                }
-
-                                $close_pos = strpos( $part, $close, $i + $open_strlen );
-
-                                if ($close_pos === false) {
-                                    $close_pos = $length;
-                                }
-
-                                // Short-cut through all the multiline code
-                                $rest_of_comment = $this->hsc(substr($part, $i + $open_strlen, $close_pos - $i - $open_strlen + $close_strlen));
-                                if (($this->lexic_permissions['COMMENTS']['MULTI'] ||
-                                    $test_str_match == GESHI_START_IMPORTANT) &&
-                                    $check_linenumbers) {
-
-                                    // strreplace to put close span and open span around multiline newlines
-                                    $test_str .= str_replace(
-                                        "\n", "</span>\n<span$attributes>",
-                                        str_replace("\n ", "\n&nbsp;", $rest_of_comment)
-                                    );
-                                } else {
-                                    $test_str .= $rest_of_comment;
-                                }
-
-                                if ($this->lexic_permissions['COMMENTS']['MULTI'] ||
-                                    $test_str_match == GESHI_START_IMPORTANT) {
-                                    $test_str .= '</span>';
-                                }
-
-                                $i = $close_pos + $close_strlen - 1;
-
-                                // parse the rest
-                                $result .= $this->parse_non_string_part($stuff_to_parse);
-                                $stuff_to_parse = '';
-                            }
-                        }
-
-                        // If we haven't matched a multiline comment, try single-line comments
-                        if (!$COMMENT_MATCHED) {
-                            // cache potential single line comment occurances
-                            if (!empty($this->language_data['COMMENT_SINGLE']) && $next_comment_single_pos < $i) {
-                                $next_comment_single_pos = $length;
-                                foreach ($this->language_data['COMMENT_SINGLE'] as $comment_key => $comment_mark) {
-                                    $match_i = false;
-                                    if (isset($comment_single_cache_per_key[$comment_key]) &&
-                                        ($comment_single_cache_per_key[$comment_key] >= $i ||
-                                         $comment_single_cache_per_key[$comment_key] === false)) {
-                                        // we have already matched something
-                                        if ($comment_single_cache_per_key[$comment_key] === false) {
-                                            // this comment is never matched
-                                            continue;
-                                        }
-                                        $match_i = $comment_single_cache_per_key[$comment_key];
-                                    } elseif (
-                                        // case sensitive comments
-                                        ($this->language_data['CASE_SENSITIVE'][GESHI_COMMENTS] &&
-                                        ($match_i = stripos($part, $comment_mark, $i)) !== false) ||
-                                        // non case sensitive
-                                        (!$this->language_data['CASE_SENSITIVE'][GESHI_COMMENTS] &&
-                                          (($match_i = strpos($part, $comment_mark, $i)) !== false))) {
-                                        $comment_single_cache_per_key[$comment_key] = $match_i;
-                                    } else {
-                                        $comment_single_cache_per_key[$comment_key] = false;
-                                        continue;
-                                    }
-                                    if ($match_i !== false && $match_i < $next_comment_single_pos) {
-                                        $next_comment_single_pos = $match_i;
-                                        $next_comment_single_key = $comment_key;
-                                        if ($match_i === $i) {
-                                            break;
-                                        }
-                                    }
-                                }
-                            }
-                            if ($next_comment_single_pos == $i) {
-                                $comment_key = $next_comment_single_key;
-                                $comment_mark = $this->language_data['COMMENT_SINGLE'][$comment_key];
-                                $com_len = strlen($comment_mark);
-
-                                // This check will find special variables like $# in bash
-                                // or compiler directives of Delphi beginning {$
-                                if ((empty($sc_disallowed_before) || ($i == 0) ||
-                                    (false === strpos($sc_disallowed_before, $part[$i-1]))) &&
-                                    (empty($sc_disallowed_after) || ($length <= $i + $com_len) ||
-                                    (false === strpos($sc_disallowed_after, $part[$i + $com_len]))))
-                                {
-                                    // this is a valid comment
-                                    $COMMENT_MATCHED = true;
-                                    if ($this->lexic_permissions['COMMENTS'][$comment_key]) {
-                                        if (!$this->use_classes) {
-                                            $attributes = ' style="' . $this->language_data['STYLES']['COMMENTS'][$comment_key] . '"';
-                                        } else {
-                                            $attributes = ' class="co' . $comment_key . '"';
-                                        }
-                                        $test_str = "<span$attributes>" . $this->hsc($this->change_case($comment_mark));
-                                    } else {
-                                        $test_str = $this->hsc($comment_mark);
-                                    }
-
-                                    //Check if this comment is the last in the source
-                                    $close_pos = strpos($part, "\n", $i);
-                                    $oops = false;
-                                    if ($close_pos === false) {
-                                        $close_pos = $length;
-                                        $oops = true;
-                                    }
-                                    $test_str .= $this->hsc(substr($part, $i + $com_len, $close_pos - $i - $com_len));
-                                    if ($this->lexic_permissions['COMMENTS'][$comment_key]) {
-                                        $test_str .= "</span>";
-                                    }
-
-                                    // Take into account that the comment might be the last in the source
-                                    if (!$oops) {
-                                      $test_str .= "\n";
-                                    }
-
-                                    $i = $close_pos;
-
-                                    // parse the rest
-                                    $result .= $this->parse_non_string_part($stuff_to_parse);
-                                    $stuff_to_parse = '';
-                                }
-                            }
-                        }
-                    }
-
-                    // Where are we adding this char?
-                    if (!$COMMENT_MATCHED) {
-                        $stuff_to_parse .= $char;
-                    } else {
-                        $result .= $test_str;
-                        unset($test_str);
-                        $COMMENT_MATCHED = false;
-                    }
-                }
-                // Parse the last bit
-                $result .= $this->parse_non_string_part($stuff_to_parse);
-                $stuff_to_parse = '';
-            } else {
-                $result .= $this->hsc($part);
-            }
-            // Close the <span> that surrounds the block
-            if ($STRICTATTRS != '') {
-                $result = str_replace("\n", "</span>\n<span$STRICTATTRS>", $result);
-                $result .= '</span>';
-            }
-
-            $endresult .= $result;
-            unset($part, $parts[$key], $result);
-        }
-
-        //This fix is related to SF#1923020, but has to be applied regardless of
-        //actually highlighting symbols.
-        /** NOTE: memorypeak #3 */
-        $endresult = str_replace(array('<SEMI>', '<PIPE>'), array(';', '|'), $endresult);
-
-//        // Parse the last stuff (redundant?)
-//        $result .= $this->parse_non_string_part($stuff_to_parse);
-
-        // Lop off the very first and last spaces
-//        $result = substr($result, 1, -1);
-
-        // We're finished: stop timing
-        $this->set_time($start_time, microtime());
-
-        $this->finalise($endresult);
-        return $endresult;
-    }
-
-    /**
-     * Swaps out spaces and tabs for HTML indentation. Not needed if
-     * the code is in a pre block...
-     *
-     * @param  string $result The source to indent (reference!)
-     * @since  1.0.0
-     */
-    protected function indent(&$result) {
-        /// Replace tabs with the correct number of spaces
-        if (false !== strpos($result, "\t")) {
-            $lines = explode("\n", $result);
-            $result = null;//Save memory while we process the lines individually
-            $tab_width = $this->get_real_tab_width();
-            $tab_string = '&nbsp;' . str_repeat(' ', $tab_width);
-
-            for ($key = 0, $n = count($lines); $key < $n; $key++) {
-                $line = $lines[$key];
-                if (false === strpos($line, "\t")) {
-                    continue;
-                }
-
-                $pos = 0;
-                $length = strlen($line);
-                $lines[$key] = ''; // reduce memory
-
-                $IN_TAG = false;
-                for ($i = 0; $i < $length; ++$i) {
-                    $char = $line[$i];
-                    // Simple engine to work out whether we're in a tag.
-                    // If we are we modify $pos. This is so we ignore HTML
-                    // in the line and only workout the tab replacement
-                    // via the actual content of the string
-                    // This test could be improved to include strings in the
-                    // html so that < or > would be allowed in user's styles
-                    // (e.g. quotes: '<' '>'; or similar)
-                    if ($IN_TAG) {
-                        if ('>' == $char) {
-                            $IN_TAG = false;
-                        }
-                        $lines[$key] .= $char;
-                    } elseif ('<' == $char) {
-                        $IN_TAG = true;
-                        $lines[$key] .= '<';
-                    } elseif ('&' == $char) {
-                        $substr = substr($line, $i + 3, 5);
-                        $posi = strpos($substr, ';');
-                        if (false === $posi) {
-                            ++$pos;
-                        } else {
-                            $pos -= $posi+2;
-                        }
-                        $lines[$key] .= $char;
-                    } elseif ("\t" == $char) {
-                        $str = '';
-                        // OPTIMISE - move $strs out. Make an array:
-                        // $tabs = array(
-                        //  1 => '&nbsp;',
-                        //  2 => '&nbsp; ',
-                        //  3 => '&nbsp; &nbsp;' etc etc
-                        // to use instead of building a string every time
-                        $tab_end_width = $tab_width - ($pos % $tab_width); //Moved out of the look as it doesn't change within the loop
-                        if (($pos & 1) || 1 == $tab_end_width) {
-                            $str .= substr($tab_string, 6, $tab_end_width);
-                        } else {
-                            $str .= substr($tab_string, 0, $tab_end_width+5);
-                        }
-                        $lines[$key] .= $str;
-                        $pos += $tab_end_width;
-
-                        if (false === strpos($line, "\t", $i + 1)) {
-                            $lines[$key] .= substr($line, $i + 1);
-                            break;
-                        }
-                    } elseif (0 == $pos && ' ' == $char) {
-                        $lines[$key] .= '&nbsp;';
-                        ++$pos;
-                    } else {
-                        $lines[$key] .= $char;
-                        ++$pos;
-                    }
-                }
-            }
-            $result = implode("\n", $lines);
-            unset($lines);//We don't need the lines separated beyond this --- free them!
-        }
-        // Other whitespace
-        // BenBE: Fix to reduce the number of replacements to be done
-        $result = preg_replace('/^ /m', '&nbsp;', $result);
-        $result = str_replace('  ', ' &nbsp;', $result);
-
-        if ($this->line_numbers == GESHI_NO_LINE_NUMBERS && $this->header_type != GESHI_HEADER_PRE_TABLE) {
-            if ($this->line_ending === null) {
-                $result = nl2br($result);
-            } else {
-                $result = str_replace("\n", $this->line_ending, $result);
-            }
-        }
-    }
-
-    /**
-     * Changes the case of a keyword for those languages where a change is asked for
-     *
-     * @param  string $instr The keyword to change the case of
-     * @return string The keyword with its case changed
-     * @since  1.0.0
-     */
-    protected function change_case($instr) {
-        switch ($this->language_data['CASE_KEYWORDS']) {
-            case GESHI_CAPS_UPPER:
-                return strtoupper($instr);
-            case GESHI_CAPS_LOWER:
-                return strtolower($instr);
-            default:
-                return $instr;
-        }
-    }
-
-    /**
-     * Handles replacements of keywords to include markup and links if requested
-     *
-     * @param  string $match The keyword to add the Markup to
-     * @return string The HTML for the match found
-     * @since  1.0.8
-     *
-     * @todo   Get rid of ender in keyword links
-     */
-    protected function handle_keyword_replace($match) {
-        $k = $this->_kw_replace_group;
-        $keyword = $match[0];
-        $keyword_match = $match[1];
-
-        $before = '';
-        $after = '';
-
-        if ($this->keyword_links) {
-            // Keyword links have been ebabled
-
-            if (isset($this->language_data['URLS'][$k]) &&
-                $this->language_data['URLS'][$k] != '') {
-                // There is a base group for this keyword
-
-                // Old system: strtolower
-                //$keyword = ( $this->language_data['CASE_SENSITIVE'][$group] ) ? $keyword : strtolower($keyword);
-                // New system: get keyword from language file to get correct case
-                if (!$this->language_data['CASE_SENSITIVE'][$k] &&
-                    strpos($this->language_data['URLS'][$k], '{FNAME}') !== false) {
-                    foreach ($this->language_data['KEYWORDS'][$k] as $word) {
-                        if (strcasecmp($word, $keyword_match) == 0) {
-                            break;
-                        }
-                    }
-                } else {
-                    $word = $keyword_match;
-                }
-
-                $before = '<|UR1|"' .
-                    str_replace(
-                        array(
-                            '{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]
-                    ) . '">';
-                $after = '</a>';
-            }
-        }
-
-        return $before . '<|/'. $k .'/>' . $this->change_case($keyword) . '|>' . $after;
-    }
-
-    /**
-     * handles regular expressions highlighting-definitions with callback functions
-     *
-     * @note this is a callback, don't use it directly
-     *
-     * @param array $matches the matches array
-     * @return string The highlighted string
-     * @since 1.0.8
-     */
-    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] . '|>';
-    }
-
-    /**
-     * handles newlines in REGEXPS matches. Set the _hmr_* vars before calling this
-     *
-     * @note this is a callback, don't use it directly
-     *
-     * @param array $matches the matches array
-     * @return string
-     * @since 1.0.8
-     */
-    protected function handle_multiline_regexps($matches) {
-        $before = $this->_hmr_before;
-        $after = $this->_hmr_after;
-        if ($this->_hmr_replace) {
-            $replace = $this->_hmr_replace;
-            $search = array();
-
-            foreach (array_keys($matches) as $k) {
-                $search[] = '\\' . $k;
-            }
-
-            $before = str_replace($search, $matches, $before);
-            $after = str_replace($search, $matches, $after);
-            $replace = str_replace($search, $matches, $replace);
-        } else {
-            $replace = $matches[0];
-        }
-        return $before
-                    . '<|!REG3XP' . $this->_hmr_key .'!>'
-                        . str_replace("\n", "|>\n<|!REG3XP" . $this->_hmr_key . '!>', $replace)
-                    . '|>'
-              . $after;
-    }
-
-    /**
-     * Takes a string that has no strings or comments in it, and highlights
-     * stuff like keywords, numbers and methods.
-     *
-     * @param string $stuff_to_parse The string to parse for keyword, numbers etc.
-     * @since 1.0.0
-     * @todo BUGGY! Why? Why not build string and return?
-     * @return string
-     */
-    protected function parse_non_string_part($stuff_to_parse) {
-        $stuff_to_parse = ' ' . $this->hsc($stuff_to_parse);
-
-        // Highlight keywords
-        $disallowed_before = "(?<![a-zA-Z0-9\$_\|\#|^&";
-        $disallowed_after = "(?![a-zA-Z0-9_\|%\\-&;";
-        if ($this->lexic_permissions['STRINGS']) {
-            $quotemarks = preg_quote(implode($this->language_data['QUOTEMARKS']), '/');
-            $disallowed_before .= $quotemarks;
-            $disallowed_after .= $quotemarks;
-        }
-        $disallowed_before .= "])";
-        $disallowed_after .= "])";
-
-        $parser_control_pergroup = false;
-        if (isset($this->language_data['PARSER_CONTROL'])) {
-            if (isset($this->language_data['PARSER_CONTROL']['KEYWORDS'])) {
-                $x = 0; // check wether per-keyword-group parser_control is enabled
-                if (isset($this->language_data['PARSER_CONTROL']['KEYWORDS']['DISALLOWED_BEFORE'])) {
-                    $disallowed_before = $this->language_data['PARSER_CONTROL']['KEYWORDS']['DISALLOWED_BEFORE'];
-                    ++$x;
-                }
-                if (isset($this->language_data['PARSER_CONTROL']['KEYWORDS']['DISALLOWED_AFTER'])) {
-                    $disallowed_after = $this->language_data['PARSER_CONTROL']['KEYWORDS']['DISALLOWED_AFTER'];
-                    ++$x;
-                }
-                $parser_control_pergroup = (count($this->language_data['PARSER_CONTROL']['KEYWORDS']) - $x) > 0;
-            }
-        }
-
-        foreach (array_keys($this->language_data['KEYWORDS']) as $k) {
-            if (!isset($this->lexic_permissions['KEYWORDS'][$k]) ||
-                $this->lexic_permissions['KEYWORDS'][$k]) {
-
-                $case_sensitive = $this->language_data['CASE_SENSITIVE'][$k];
-                $modifiers = $case_sensitive ? '' : 'i';
-
-                // NEW in 1.0.8 - per-keyword-group parser control
-                $disallowed_before_local = $disallowed_before;
-                $disallowed_after_local = $disallowed_after;
-                if ($parser_control_pergroup && isset($this->language_data['PARSER_CONTROL']['KEYWORDS'][$k])) {
-                    if (isset($this->language_data['PARSER_CONTROL']['KEYWORDS'][$k]['DISALLOWED_BEFORE'])) {
-                        $disallowed_before_local =
-                            $this->language_data['PARSER_CONTROL']['KEYWORDS'][$k]['DISALLOWED_BEFORE'];
-                    }
-
-                    if (isset($this->language_data['PARSER_CONTROL']['KEYWORDS'][$k]['DISALLOWED_AFTER'])) {
-                        $disallowed_after_local =
-                            $this->language_data['PARSER_CONTROL']['KEYWORDS'][$k]['DISALLOWED_AFTER'];
-                    }
-                }
-
-                $this->_kw_replace_group = $k;
-
-                //NEW in 1.0.8, the cached regexp list
-                // since we don't want PHP / PCRE to crash due to too large patterns we split them into smaller chunks
-                for ($set = 0, $set_length = count($this->language_data['CACHED_KEYWORD_LISTS'][$k]); $set <  $set_length; ++$set) {
-                    $keywordset =& $this->language_data['CACHED_KEYWORD_LISTS'][$k][$set];
-                    // Might make a more unique string for putting the number in soon
-                    // Basically, we don't put the styles in yet because then the styles themselves will
-                    // get highlighted if the language has a CSS keyword in it (like CSS, for example ;))
-                    $stuff_to_parse = preg_replace_callback(
-                        "/$disallowed_before_local({$keywordset})(?!\<DOT\>(?:htm|php|aspx?))$disallowed_after_local/$modifiers",
-                        array($this, 'handle_keyword_replace'),
-                        $stuff_to_parse
-                        );
-                }
-            }
-        }
-
-        // Regular expressions
-        foreach ($this->language_data['REGEXPS'] as $key => $regexp) {
-            if ($this->lexic_permissions['REGEXPS'][$key]) {
-                if (is_array($regexp)) {
-                    if ($this->line_numbers != GESHI_NO_LINE_NUMBERS) {
-                        // produce valid HTML when we match multiple lines
-                        $this->_hmr_replace = $regexp[GESHI_REPLACE];
-                        $this->_hmr_before = $regexp[GESHI_BEFORE];
-                        $this->_hmr_key = $key;
-                        $this->_hmr_after = $regexp[GESHI_AFTER];
-                        $stuff_to_parse = preg_replace_callback(
-                            "/" . $regexp[GESHI_SEARCH] . "/{$regexp[GESHI_MODIFIERS]}",
-                            array($this, 'handle_multiline_regexps'),
-                            $stuff_to_parse);
-                        $this->_hmr_replace = false;
-                        $this->_hmr_before = '';
-                        $this->_hmr_after = '';
-                    } else {
-                        $stuff_to_parse = preg_replace(
-                            '/' . $regexp[GESHI_SEARCH] . '/' . $regexp[GESHI_MODIFIERS],
-                            $regexp[GESHI_BEFORE] . '<|!REG3XP'. $key .'!>' . $regexp[GESHI_REPLACE] . '|>' . $regexp[GESHI_AFTER],
-                            $stuff_to_parse);
-                    }
-                } else {
-                    if ($this->line_numbers != GESHI_NO_LINE_NUMBERS) {
-                        // produce valid HTML when we match multiple lines
-                        $this->_hmr_key = $key;
-                        $stuff_to_parse = preg_replace_callback( "/(" . $regexp . ")/",
-                                              array($this, 'handle_multiline_regexps'), $stuff_to_parse);
-                        $this->_hmr_key = '';
-                    } else {
-                        $stuff_to_parse = preg_replace( "/(" . $regexp . ")/", "<|!REG3XP$key!>\\1|>", $stuff_to_parse);
-                    }
-                }
-            }
-        }
-
-        // Highlight numbers. As of 1.0.8 we support different types of numbers
-        $numbers_found = false;
-
-        if ($this->lexic_permissions['NUMBERS'] && preg_match($this->language_data['PARSER_CONTROL']['NUMBERS']['PRECHECK_RX'], $stuff_to_parse )) {
-            $numbers_found = true;
-
-            //For each of the formats ...
-            foreach($this->language_data['NUMBERS_RXCACHE'] as $id => $regexp) {
-                //Check if it should be highlighted ...
-                $stuff_to_parse = preg_replace($regexp, "<|/NUM!$id/>\\1|>", $stuff_to_parse);
-            }
-        }
-
-        //
-        // Now that's all done, replace /[number]/ with the correct styles
-        //
-        foreach (array_keys($this->language_data['KEYWORDS']) as $k) {
-            if (!$this->use_classes) {
-                $attributes = ' style="' .
-                    (isset($this->language_data['STYLES']['KEYWORDS'][$k]) ?
-                    $this->language_data['STYLES']['KEYWORDS'][$k] : "") . '"';
-            } else {
-                $attributes = ' class="kw' . $k . '"';
-            }
-            $stuff_to_parse = str_replace("<|/$k/>", "<|$attributes>", $stuff_to_parse);
-        }
-
-        if ($numbers_found) {
-            // Put number styles in
-            foreach($this->language_data['NUMBERS_RXCACHE'] as $id => $regexp) {
-                //Commented out for now, as this needs some review ...
-                //                if ($numbers_permissions & $id) {
-                //Get the appropriate style ...
-                //Checking for unset styles is done by the style cache builder ...
-                if (!$this->use_classes) {
-                    $attributes = ' style="' . $this->language_data['STYLES']['NUMBERS'][$id] . '"';
-                } else {
-                    $attributes = ' class="nu'.$id.'"';
-                }
-
-                //Set in the correct styles ...
-                $stuff_to_parse = str_replace("/NUM!$id/", $attributes, $stuff_to_parse);
-                //                }
-            }
-        }
-
-        // Highlight methods and fields in objects
-        if ($this->lexic_permissions['METHODS'] && $this->language_data['OOLANG']) {
-            $oolang_spaces = "[\s]*";
-            $oolang_before = "";
-            $oolang_after = "[a-zA-Z][a-zA-Z0-9_]*";
-            if (isset($this->language_data['PARSER_CONTROL'])) {
-                if (isset($this->language_data['PARSER_CONTROL']['OOLANG'])) {
-                    if (isset($this->language_data['PARSER_CONTROL']['OOLANG']['MATCH_BEFORE'])) {
-                        $oolang_before = $this->language_data['PARSER_CONTROL']['OOLANG']['MATCH_BEFORE'];
-                    }
-                    if (isset($this->language_data['PARSER_CONTROL']['OOLANG']['MATCH_AFTER'])) {
-                        $oolang_after = $this->language_data['PARSER_CONTROL']['OOLANG']['MATCH_AFTER'];
-                    }
-                    if (isset($this->language_data['PARSER_CONTROL']['OOLANG']['MATCH_SPACES'])) {
-                        $oolang_spaces = $this->language_data['PARSER_CONTROL']['OOLANG']['MATCH_SPACES'];
-                    }
-                }
-            }
-
-            foreach ($this->language_data['OBJECT_SPLITTERS'] as $key => $splitter) {
-                if (false !== strpos($stuff_to_parse, $splitter)) {
-                    if (!$this->use_classes) {
-                        $attributes = ' style="' . $this->language_data['STYLES']['METHODS'][$key] . '"';
-                    } else {
-                        $attributes = ' class="me' . $key . '"';
-                    }
-                    $stuff_to_parse = preg_replace("/($oolang_before)(" . preg_quote($this->language_data['OBJECT_SPLITTERS'][$key], '/') . ")($oolang_spaces)($oolang_after)/", "\\1\\2\\3<|$attributes>\\4|>", $stuff_to_parse);
-                }
-            }
-        }
-
-        //
-        // Highlight brackets. Yes, I've tried adding a semi-colon to this list.
-        // You try it, and see what happens ;)
-        // TODO: Fix lexic permissions not converting entities if shouldn't
-        // be highlighting regardless
-        //
-        if ($this->lexic_permissions['BRACKETS']) {
-            $stuff_to_parse = str_replace( $this->language_data['CACHE_BRACKET_MATCH'],
-                              $this->language_data['CACHE_BRACKET_REPLACE'], $stuff_to_parse );
-        }
-
-
-        //FIX for symbol highlighting ...
-        if ($this->lexic_permissions['SYMBOLS'] && !empty($this->language_data['SYMBOLS'])) {
-            //Get all matches and throw away those witin a block that is already highlighted... (i.e. matched by a regexp)
-            $n_symbols = preg_match_all("/<\|(?:<DOT>|[^>])+>(?:(?!\|>).*?)\|>|<\/a>|(?:" . $this->language_data['SYMBOL_SEARCH'] . ")+(?![^<]+?>)/", $stuff_to_parse, $pot_symbols, PREG_OFFSET_CAPTURE | PREG_SET_ORDER);
-            $global_offset = 0;
-            for ($s_id = 0; $s_id < $n_symbols; ++$s_id) {
-                $symbol_match = $pot_symbols[$s_id][0][0];
-                if (strpos($symbol_match, '<') !== false || strpos($symbol_match, '>') !== false) {
-                    // already highlighted blocks _must_ include either < or >
-                    // so if this conditional applies, we have to skip this match
-                    // BenBE: UNLESS the block contains <SEMI> or <PIPE>
-                    if(strpos($symbol_match, '<SEMI>') === false &&
-                        strpos($symbol_match, '<PIPE>') === false) {
-                        continue;
-                    }
-                }
-
-                // if we reach this point, we have a valid match which needs to be highlighted
-
-                $symbol_length = strlen($symbol_match);
-                $symbol_offset = $pot_symbols[$s_id][0][1];
-                unset($pot_symbols[$s_id]);
-                $symbol_hl = "";
-
-                // if we have multiple styles, we have to handle them properly
-                if ($this->language_data['MULTIPLE_SYMBOL_GROUPS']) {
-                    $old_sym = -1;
-                    // Split the current stuff to replace into its atomic symbols ...
-                    preg_match_all("/" . $this->language_data['SYMBOL_SEARCH'] . "/", $symbol_match, $sym_match_syms, PREG_PATTERN_ORDER);
-                    foreach ($sym_match_syms[0] as $sym_ms) {
-                        //Check if consequtive symbols belong to the same group to save output ...
-                        if (isset($this->language_data['SYMBOL_DATA'][$sym_ms])
-                            && ($this->language_data['SYMBOL_DATA'][$sym_ms] != $old_sym)) {
-                            if (-1 != $old_sym) {
-                                $symbol_hl .= "|>";
-                            }
-                            $old_sym = $this->language_data['SYMBOL_DATA'][$sym_ms];
-                            if (!$this->use_classes) {
-                                $symbol_hl .= '<| style="' . $this->language_data['STYLES']['SYMBOLS'][$old_sym] . '">';
-                            } else {
-                                $symbol_hl .= '<| class="sy' . $old_sym . '">';
-                            }
-                        }
-                        $symbol_hl .= $sym_ms;
-                    }
-                    unset($sym_match_syms);
-
-                    //Close remaining tags and insert the replacement at the right position ...
-                    //Take caution if symbol_hl is empty to avoid doubled closing spans.
-                    if (-1 != $old_sym) {
-                        $symbol_hl .= "|>";
-                    }
-                } else {
-                    if (!$this->use_classes) {
-                        $symbol_hl = '<| style="' . $this->language_data['STYLES']['SYMBOLS'][0] . '">';
-                    } else {
-                        $symbol_hl = '<| class="sy0">';
-                    }
-                    $symbol_hl .= $symbol_match . '|>';
-                }
-
-                $stuff_to_parse = substr_replace($stuff_to_parse, $symbol_hl, $symbol_offset + $global_offset, $symbol_length);
-
-                // since we replace old text with something of different size,
-                // we'll have to keep track of the differences
-                $global_offset += strlen($symbol_hl) - $symbol_length;
-            }
-        }
-        //FIX for symbol highlighting ...
-
-        // Add class/style for regexps
-        foreach (array_keys($this->language_data['REGEXPS']) as $key) {
-            if ($this->lexic_permissions['REGEXPS'][$key]) {
-                if (is_callable($this->language_data['STYLES']['REGEXPS'][$key])) {
-                    $this->_rx_key = $key;
-                    $stuff_to_parse = preg_replace_callback("/!REG3XP$key!(.*)\|>/U",
-                        array($this, 'handle_regexps_callback'),
-                        $stuff_to_parse);
-                } else {
-                    if (!$this->use_classes) {
-                        $attributes = ' style="' . $this->language_data['STYLES']['REGEXPS'][$key] . '"';
-                    } else {
-                        if (is_array($this->language_data['REGEXPS'][$key]) &&
-                            array_key_exists(GESHI_CLASS, $this->language_data['REGEXPS'][$key])) {
-                            $attributes = ' class="' .
-                                $this->language_data['REGEXPS'][$key][GESHI_CLASS] . '"';
-                        } else {
-                           $attributes = ' class="re' . $key . '"';
-                        }
-                    }
-                    $stuff_to_parse = str_replace("!REG3XP$key!", "$attributes", $stuff_to_parse);
-                }
-            }
-        }
-
-        // Replace <DOT> with . for urls
-        $stuff_to_parse = str_replace('<DOT>', '.', $stuff_to_parse);
-        // Replace <|UR1| with <a href= for urls also
-        if (isset($this->link_styles[GESHI_LINK])) {
-            if ($this->use_classes) {
-                $stuff_to_parse = str_replace('<|UR1|', '<a' . $this->link_target . ' href=', $stuff_to_parse);
-            } else {
-                $stuff_to_parse = str_replace('<|UR1|', '<a' . $this->link_target . ' style="' . $this->link_styles[GESHI_LINK] . '" href=', $stuff_to_parse);
-            }
-        } else {
-            $stuff_to_parse = str_replace('<|UR1|', '<a' . $this->link_target . ' href=', $stuff_to_parse);
-        }
-
-        //
-        // NOW we add the span thingy ;)
-        //
-
-        $stuff_to_parse = str_replace('<|', '<span', $stuff_to_parse);
-        $stuff_to_parse = str_replace ( '|>', '</span>', $stuff_to_parse );
-        return substr($stuff_to_parse, 1);
-    }
-
-    /**
-     * Sets the time taken to parse the code
-     *
-     * @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
-     */
-    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];
-    }
-
-    /**
-     * Gets the time taken to parse the code
-     *
-     * @return double The time taken to parse the code
-     * @since  1.0.2
-     */
-    public function get_time() {
-        return $this->time;
-    }
-
-    /**
-     * Merges arrays recursively, overwriting values of the first array with values of later arrays
-     *
-     * @since 1.0.8
-     */
-    protected function merge_arrays() {
-        $arrays = func_get_args();
-        $narrays = count($arrays);
-
-        // check arguments
-        // comment out if more performance is necessary (in this case the foreach loop will trigger a warning if the argument is not an array)
-        for ($i = 0; $i < $narrays; $i ++) {
-            if (!is_array($arrays[$i])) {
-                // also array_merge_recursive returns nothing in this case
-                trigger_error('Argument #' . ($i+1) . ' is not an array - trying to merge array with scalar! Returning false!', E_USER_WARNING);
-                return false;
-            }
-        }
-
-        // the first array is in the output set in every case
-        $ret = $arrays[0];
-
-        // merege $ret with the remaining arrays
-        for ($i = 1; $i < $narrays; $i ++) {
-            foreach ($arrays[$i] as $key => $value) {
-                if (is_array($value) && isset($ret[$key])) {
-                    // if $ret[$key] is not an array you try to merge an scalar value with an array - the result is not defined (incompatible arrays)
-                    // in this case the call will trigger an E_USER_WARNING and the $ret[$key] will be false.
-                    $ret[$key] = $this->merge_arrays($ret[$key], $value);
-                } else {
-                    $ret[$key] = $value;
-                }
-            }
-        }
-
-        return $ret;
-    }
-
-    /**
-     * Gets language information and stores it for later use
-     *
-     * @param string $file_name The filename of the language file you want to load
-     * @since 1.0.0
-     * @todo Needs to load keys for lexic permissions for keywords, regexps etc
-     */
-    protected function load_language($file_name) {
-        if ($file_name == $this->loaded_language) {
-            // this file is already loaded!
-            return;
-        }
-
-        //Prepare some stuff before actually loading the language file
-        $this->loaded_language = $file_name;
-        $this->parse_cache_built = false;
-        $this->enable_highlighting();
-        $language_data = array();
-
-        //Load the language file
-        require $file_name;
-
-        // Perhaps some checking might be added here later to check that
-        // $language data is a valid thing but maybe not
-        $this->language_data = $language_data;
-
-        // Set strict mode if should be set
-        $this->strict_mode = $this->language_data['STRICT_MODE_APPLIES'];
-
-        // Set permissions for all lexics to true
-        // so they'll be highlighted by default
-        foreach (array_keys($this->language_data['KEYWORDS']) as $key) {
-            if (!empty($this->language_data['KEYWORDS'][$key])) {
-                $this->lexic_permissions['KEYWORDS'][$key] = true;
-            } else {
-                $this->lexic_permissions['KEYWORDS'][$key] = false;
-            }
-        }
-
-        foreach (array_keys($this->language_data['COMMENT_SINGLE']) as $key) {
-            $this->lexic_permissions['COMMENTS'][$key] = true;
-        }
-        foreach (array_keys($this->language_data['REGEXPS']) as $key) {
-            $this->lexic_permissions['REGEXPS'][$key] = true;
-        }
-
-        // for BenBE and future code reviews:
-        // we can use empty here since we only check for existance and emptiness of an array
-        // if it is not an array at all but rather false or null this will work as intended as well
-        // even if $this->language_data['PARSER_CONTROL'] is undefined this won't trigger a notice
-        if (!empty($this->language_data['PARSER_CONTROL']['ENABLE_FLAGS'])) {
-            foreach ($this->language_data['PARSER_CONTROL']['ENABLE_FLAGS'] as $flag => $value) {
-                // it's either true or false and maybe is true as well
-                $perm = $value !== GESHI_NEVER;
-                if ($flag == 'ALL') {
-                    $this->enable_highlighting($perm);
-                    continue;
-                }
-                if (!isset($this->lexic_permissions[$flag])) {
-                    // unknown lexic permission
-                    continue;
-                }
-                if (is_array($this->lexic_permissions[$flag])) {
-                    foreach ($this->lexic_permissions[$flag] as $key => $val) {
-                        $this->lexic_permissions[$flag][$key] = $perm;
-                    }
-                } else {
-                    $this->lexic_permissions[$flag] = $perm;
-                }
-            }
-            unset($this->language_data['PARSER_CONTROL']['ENABLE_FLAGS']);
-        }
-
-        //Fix: Problem where hardescapes weren't handled if no ESCAPE_CHAR was given
-        //You need to set one for HARDESCAPES only in this case.
-        if(!isset($this->language_data['HARDCHAR'])) {
-            $this->language_data['HARDCHAR'] = $this->language_data['ESCAPE_CHAR'];
-        }
-
-        //NEW in 1.0.8: Allow styles to be loaded from a separate file to override defaults
-        $style_filename = substr($file_name, 0, -4) . '.style.php';
-        if (is_readable($style_filename)) {
-            //Clear any style_data that could have been set before ...
-            if (isset($style_data)) {
-                unset($style_data);
-            }
-
-            //Read the Style Information from the style file
-            include $style_filename;
-
-            //Apply the new styles to our current language styles
-            if (isset($style_data) && is_array($style_data)) {
-                $this->language_data['STYLES'] =
-                    $this->merge_arrays($this->language_data['STYLES'], $style_data);
-            }
-        }
-    }
-
-    /**
-     * Takes the parsed code and various options, and creates the HTML
-     * surrounding it to make it look nice.
-     *
-     * @param  string $parsed_code The code already parsed (reference!)
-     * @since  1.0.0
-     */
-    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
-        if ($this->enable_important_blocks &&
-            (strpos($parsed_code, $this->hsc(GESHI_START_IMPORTANT)) === false)) {
-            $parsed_code = str_replace($this->hsc(GESHI_END_IMPORTANT), '', $parsed_code);
-        }
-
-        // Add HTML whitespace stuff if we're using the <div> header
-        if ($this->header_type != GESHI_HEADER_PRE && $this->header_type != GESHI_HEADER_PRE_VALID) {
-            $this->indent($parsed_code);
-        }
-
-        // purge some unnecessary stuff
-        /** NOTE: memorypeak #1 */
-        $parsed_code = preg_replace('#<span[^>]+>(\s*)</span>#', '\\1', $parsed_code);
-
-        // If we are using IDs for line numbers, there needs to be an overall
-        // ID set to prevent collisions.
-        if ($this->add_ids && !$this->overall_id) {
-            $this->overall_id = 'geshi-' . substr(md5(microtime()), 0, 4);
-        }
-
-        // Get code into lines
-        /** NOTE: memorypeak #2 */
-        $code = explode("\n", $parsed_code);
-        $parsed_code = $this->header();
-
-        // If we're using line numbers, we insert <li>s and appropriate
-        // markup to style them (otherwise we don't need to do anything)
-        if ($this->line_numbers != GESHI_NO_LINE_NUMBERS && $this->header_type != GESHI_HEADER_PRE_TABLE) {
-            // If we're using the <pre> header, we shouldn't add newlines because
-            // 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" : '';
-
-            // Foreach line...
-            for ($i = 0, $n = count($code); $i < $n;) {
-                //Reset the attributes for a new line ...
-                $attrs = array();
-
-                // Make lines have at least one space in them if they're empty
-                // BenBE: Checking emptiness using trim instead of relying on blanks
-                if ('' == trim($code[$i])) {
-                    $code[$i] = '&nbsp;';
-                }
-
-                // If this is a "special line"...
-                if ($this->line_numbers == GESHI_FANCY_LINE_NUMBERS &&
-                    $i % $this->line_nth_row == ($this->line_nth_row - 1)) {
-                    // Set the attributes to style the line
-                    if ($this->use_classes) {
-                        //$attr = ' class="li2"';
-                        $attrs['class'][] = 'li2';
-                        $def_attr = ' class="de2"';
-                    } else {
-                        //$attr = ' style="' . $this->line_style2 . '"';
-                        $attrs['style'][] = $this->line_style2;
-                        // This style "covers up" the special styles set for special lines
-                        // so that styles applied to special lines don't apply to the actual
-                        // code on that line
-                        $def_attr = ' style="' . $this->code_style . '"';
-                    }
-                } else {
-                    if ($this->use_classes) {
-                        //$attr = ' class="li1"';
-                        $attrs['class'][] = 'li1';
-                        $def_attr = ' class="de1"';
-                    } else {
-                        //$attr = ' style="' . $this->line_style1 . '"';
-                        $attrs['style'][] = $this->line_style1;
-                        $def_attr = ' style="' . $this->code_style . '"';
-                    }
-                }
-
-                //Check which type of tag to insert for this line
-                if ($this->header_type == GESHI_HEADER_PRE_VALID) {
-                    $start = "<pre$def_attr>";
-                    $end = '</pre>';
-                } else {
-                    // Span or div?
-                    $start = "<div$def_attr>";
-                    $end = '</div>';
-                }
-
-                ++$i;
-
-                // Are we supposed to use ids? If so, add them
-                if ($this->add_ids) {
-                    $attrs['id'][] = "$this->overall_id-$i";
-                }
-
-                //Is this some line with extra styles???
-                if (in_array($i, $this->highlight_extra_lines)) {
-                    if ($this->use_classes) {
-                        if (isset($this->highlight_extra_lines_styles[$i])) {
-                            $attrs['class'][] = "lx$i";
-                        } else {
-                            $attrs['class'][] = "ln-xtra";
-                        }
-                    } else {
-                        array_push($attrs['style'], $this->get_line_style($i));
-                    }
-                }
-
-                // Add in the line surrounded by appropriate list HTML
-                $attr_string = '';
-                foreach ($attrs as $key => $attr) {
-                    $attr_string .= ' ' . $key . '="' . implode(' ', $attr) . '"';
-                }
-
-                $parsed_code .= "<li$attr_string>$start{$code[$i-1]}$end</li>$ls";
-                unset($code[$i - 1]);
-            }
-        } else {
-            $n = count($code);
-            if ($this->use_classes) {
-                $attributes = ' class="de1"';
-            } else {
-                $attributes = ' style="'. $this->code_style .'"';
-            }
-            if ($this->header_type == GESHI_HEADER_PRE_VALID) {
-                $parsed_code .= '<pre'. $attributes .'>';
-            } elseif ($this->header_type == GESHI_HEADER_PRE_TABLE) {
-                if ($this->line_numbers != GESHI_NO_LINE_NUMBERS) {
-                    if ($this->use_classes) {
-                        $attrs = ' class="ln"';
-                    } else {
-                        $attrs = ' style="'. $this->table_linenumber_style .'"';
-                    }
-                    $parsed_code .= '<td'.$attrs.'><pre'.$attributes.'>';
-                    // get linenumbers
-                    // we don't merge it with the for below, since it should be better for
-                    // memory consumption this way
-                    // @todo: but... actually it would still be somewhat nice to merge the two loops
-                    //        the mem peaks are at different positions
-                    for ($i = 0; $i < $n; ++$i) {
-                        $close = 0;
-                        // fancy lines
-                        if ($this->line_numbers == GESHI_FANCY_LINE_NUMBERS &&
-                            $i % $this->line_nth_row == ($this->line_nth_row - 1)) {
-                            // Set the attributes to style the line
-                            if ($this->use_classes) {
-                                $parsed_code .= '<span class="xtra li2"><span class="de2">';
-                            } else {
-                                // This style "covers up" the special styles set for special lines
-                                // so that styles applied to special lines don't apply to the actual
-                                // code on that line
-                                $parsed_code .= '<span style="display:block;' . $this->line_style2 . '">'
-                                                  .'<span style="' . $this->code_style .'">';
-                            }
-                            $close += 2;
-                        }
-                        //Is this some line with extra styles???
-                        if (in_array($i + 1, $this->highlight_extra_lines)) {
-                            if ($this->use_classes) {
-                                if (isset($this->highlight_extra_lines_styles[$i])) {
-                                    $parsed_code .= "<span class=\"xtra lx$i\">";
-                                } else {
-                                    $parsed_code .= "<span class=\"xtra ln-xtra\">";
-                                }
-                            } else {
-                                $parsed_code .= "<span style=\"display:block;" . $this->get_line_style($i) . "\">";
-                            }
-                            ++$close;
-                        }
-                        $parsed_code .= $this->line_numbers_start + $i;
-                        if ($close) {
-                            $parsed_code .= str_repeat('</span>', $close);
-                        } elseif ($i != $n) {
-                            $parsed_code .= "\n";
-                        }
-                    }
-                    $parsed_code .= '</pre></td><td'.$attributes.'>';
-                }
-                $parsed_code .= '<pre'. $attributes .'>';
-            }
-            // No line numbers, but still need to handle highlighting lines extra.
-            // Have to use divs so the full width of the code is highlighted
-            $close = 0;
-            for ($i = 0; $i < $n; ++$i) {
-                // Make lines have at least one space in them if they're empty
-                // BenBE: Checking emptiness using trim instead of relying on blanks
-                if ('' == trim($code[$i])) {
-                    $code[$i] = '&nbsp;';
-                }
-                // fancy lines
-                if ($this->line_numbers == GESHI_FANCY_LINE_NUMBERS &&
-                    $i % $this->line_nth_row == ($this->line_nth_row - 1)) {
-                    // Set the attributes to style the line
-                    if ($this->use_classes) {
-                        $parsed_code .= '<span class="xtra li2"><span class="de2">';
-                    } else {
-                        // This style "covers up" the special styles set for special lines
-                        // so that styles applied to special lines don't apply to the actual
-                        // code on that line
-                        $parsed_code .= '<span style="display:block;' . $this->line_style2 . '">'
-                                          .'<span style="' . $this->code_style .'">';
-                    }
-                    $close += 2;
-                }
-                //Is this some line with extra styles???
-                if (in_array($i + 1, $this->highlight_extra_lines)) {
-                    if ($this->use_classes) {
-                        if (isset($this->highlight_extra_lines_styles[$i])) {
-                            $parsed_code .= "<span class=\"xtra lx$i\">";
-                        } else {
-                            $parsed_code .= "<span class=\"xtra ln-xtra\">";
-                        }
-                    } else {
-                        $parsed_code .= "<span style=\"display:block;" . $this->get_line_style($i) . "\">";
-                    }
-                    ++$close;
-                }
-
-                $parsed_code .= $code[$i];
-
-                if ($close) {
-                  $parsed_code .= str_repeat('</span>', $close);
-                  $close = 0;
-                }
-                if ($i + 1 < $n) {
-                    $parsed_code .= "\n";
-                }
-                unset($code[$i]);
-            }
-
-            if ($this->header_type == GESHI_HEADER_PRE_VALID || $this->header_type == GESHI_HEADER_PRE_TABLE) {
-                $parsed_code .= '</pre>';
-            }
-            if ($this->header_type == GESHI_HEADER_PRE_TABLE && $this->line_numbers != GESHI_NO_LINE_NUMBERS) {
-                $parsed_code .= '</td>';
-            }
-        }
-
-        $parsed_code .= $this->footer();
-    }
-
-    /**
-     * Creates the header for the code block (with correct attributes)
-     *
-     * @return string The header for the code block
-     * @since  1.0.0
-     */
-    protected function header() {
-        // Get attributes needed
-        /**
-         * @todo   Document behaviour change - class is outputted regardless of whether
-         *         we're using classes or not. Same with style
-         */
-        $attributes = ' class="' . $this->_genCSSName($this->language);
-        if ($this->overall_class != '') {
-            $attributes .= " ".$this->_genCSSName($this->overall_class);
-        }
-        $attributes .= '"';
-
-        if ($this->overall_id != '') {
-            $attributes .= " id=\"{$this->overall_id}\"";
-        }
-        if ($this->overall_style != '' && !$this->use_classes) {
-            $attributes .= ' style="' . $this->overall_style . '"';
-        }
-
-        $ol_attributes = '';
-
-        if ($this->line_numbers_start != 1) {
-            $ol_attributes .= ' start="' . $this->line_numbers_start . '"';
-        }
-
-        // Get the header HTML
-        $header = $this->header_content;
-        if ($header) {
-            if ($this->header_type == GESHI_HEADER_PRE || $this->header_type == GESHI_HEADER_PRE_VALID) {
-                $header = str_replace("\n", '', $header);
-            }
-            $header = $this->replace_keywords($header);
-
-            if ($this->use_classes) {
-                $attr = ' class="head"';
-            } else {
-                $attr = " style=\"{$this->header_content_style}\"";
-            }
-            if ($this->header_type == GESHI_HEADER_PRE_TABLE && $this->line_numbers != GESHI_NO_LINE_NUMBERS) {
-                $header = "<thead><tr><td colspan=\"2\" $attr>$header</td></tr></thead>";
-            } else {
-                $header = "<div$attr>$header</div>";
-            }
-        }
-
-        if (GESHI_HEADER_NONE == $this->header_type) {
-            if ($this->line_numbers != GESHI_NO_LINE_NUMBERS) {
-                return "$header<ol$attributes$ol_attributes>";
-            }
-            return $header . ($this->force_code_block ? '<div>' : '');
-        }
-
-        // Work out what to return and do it
-        if ($this->line_numbers != GESHI_NO_LINE_NUMBERS) {
-            if ($this->header_type == GESHI_HEADER_PRE) {
-                return "<pre$attributes>$header<ol$ol_attributes>";
-            } elseif ($this->header_type == GESHI_HEADER_DIV ||
-                $this->header_type == GESHI_HEADER_PRE_VALID) {
-                return "<div$attributes>$header<ol$ol_attributes>";
-            } elseif ($this->header_type == GESHI_HEADER_PRE_TABLE) {
-                return "<table$attributes>$header<tbody><tr class=\"li1\">";
-            }
-        } else {
-            if ($this->header_type == GESHI_HEADER_PRE) {
-                return "<pre$attributes>$header"  .
-                    ($this->force_code_block ? '<div>' : '');
-            } else {
-                return "<div$attributes>$header" .
-                    ($this->force_code_block ? '<div>' : '');
-            }
-        }
-    }
-
-    /**
-     * Returns the footer for the code block.
-     *
-     * @return string The footer for the code block
-     * @since  1.0.0
-     */
-    protected function footer() {
-        $footer = $this->footer_content;
-        if ($footer) {
-            if ($this->header_type == GESHI_HEADER_PRE) {
-                $footer = str_replace("\n", '', $footer);;
-            }
-            $footer = $this->replace_keywords($footer);
-
-            if ($this->use_classes) {
-                $attr = ' class="foot"';
-            } else {
-                $attr = " style=\"{$this->footer_content_style}\"";
-            }
-            if ($this->header_type == GESHI_HEADER_PRE_TABLE && $this->line_numbers != GESHI_NO_LINE_NUMBERS) {
-                $footer = "<tfoot><tr><td colspan=\"2\">$footer</td></tr></tfoot>";
-            } else {
-                $footer = "<div$attr>$footer</div>";
-            }
-        }
-
-        if (GESHI_HEADER_NONE == $this->header_type) {
-            return ($this->line_numbers != GESHI_NO_LINE_NUMBERS) ? '</ol>' . $footer : $footer;
-        }
-
-        if ($this->header_type == GESHI_HEADER_DIV || $this->header_type == GESHI_HEADER_PRE_VALID) {
-            if ($this->line_numbers != GESHI_NO_LINE_NUMBERS) {
-                return "</ol>$footer</div>";
-            }
-            return ($this->force_code_block ? '</div>' : '') .
-                "$footer</div>";
-        }
-        elseif ($this->header_type == GESHI_HEADER_PRE_TABLE) {
-            if ($this->line_numbers != GESHI_NO_LINE_NUMBERS) {
-                return "</tr></tbody>$footer</table>";
-            }
-            return ($this->force_code_block ? '</div>' : '') .
-                "$footer</div>";
-        }
-        else {
-            if ($this->line_numbers != GESHI_NO_LINE_NUMBERS) {
-                return "</ol>$footer</pre>";
-            }
-            return ($this->force_code_block ? '</div>' : '') .
-                "$footer</pre>";
-        }
-    }
-
-    /**
-     * Replaces certain keywords in the header and footer with
-     * certain configuration values
-     *
-     * @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
-     */
-    protected function replace_keywords($instr) {
-        $keywords = $replacements = array();
-
-        $keywords[] = '<TIME>';
-        $keywords[] = '{TIME}';
-        $replacements[] = $replacements[] = number_format($time = $this->get_time(), 3);
-
-        $keywords[] = '<LANGUAGE>';
-        $keywords[] = '{LANGUAGE}';
-        $replacements[] = $replacements[] = $this->language_data['LANG_NAME'];
-
-        $keywords[] = '<VERSION>';
-        $keywords[] = '{VERSION}';
-        $replacements[] = $replacements[] = GESHI_VERSION;
-
-        $keywords[] = '<SPEED>';
-        $keywords[] = '{SPEED}';
-        if ($time <= 0) {
-            $speed = 'N/A';
-        } else {
-            $speed = strlen($this->source) / $time;
-            if ($speed >= 1024) {
-                $speed = sprintf("%.2f KB/s", $speed / 1024.0);
-            } else {
-                $speed = sprintf("%.0f B/s", $speed);
-            }
-        }
-        $replacements[] = $replacements[] = $speed;
-
-        return str_replace($keywords, $replacements, $instr);
-    }
-
-    /**
-     * Secure replacement for PHP built-in function htmlspecialchars().
-     *
-     * See ticket #427 (http://wush.net/trac/wikka/ticket/427) for the rationale
-     * for this replacement function.
-     *
-     * The INTERFACE for this function is almost the same as that for
-     * htmlspecialchars(), with the same default for quote style; however, there
-     * is no 'charset' parameter. The reason for this is as follows:
-     *
-     * The PHP docs say:
-     *      "The third argument charset defines character set used in conversion."
-     *
-     * I suspect PHP's htmlspecialchars() is working at the byte-value level and
-     * thus _needs_ to know (or asssume) a character set because the special
-     * characters to be replaced could exist at different code points in
-     * different character sets. (If indeed htmlspecialchars() works at
-     * byte-value level that goes some  way towards explaining why the
-     * vulnerability would exist in this function, too, and not only in
-     * htmlentities() which certainly is working at byte-value level.)
-     *
-     * This replacement function however works at character level and should
-     * therefore be "immune" to character set differences - so no charset
-     * parameter is needed or provided. If a third parameter is passed, it will
-     * be silently ignored.
-     *
-     * In the OUTPUT there is a minor difference in that we use '&#39;' instead
-     * of PHP's '&#039;' for a single quote: this provides compatibility with
-     *      get_html_translation_table(HTML_SPECIALCHARS, ENT_QUOTES)
-     * (see comment by mikiwoz at yahoo dot co dot uk on
-     * http://php.net/htmlspecialchars); it also matches the entity definition
-     * for XML 1.0
-     * (http://www.w3.org/TR/xhtml1/dtds.html#a_dtd_Special_characters).
-     * Like PHP we use a numeric character reference instead of '&apos;' for the
-     * single quote. For the other special characters we use the named entity
-     * references, as PHP is doing.
-     *
-     * @author      {@link http://wikkawiki.org/JavaWoman Marjolein Katsma}
-     *
-     * @license     http://www.gnu.org/copyleft/lgpl.html
-     *              GNU Lesser General Public License
-     * @copyright   Copyright 2007, {@link http://wikkawiki.org/CreditsPage
-     *              Wikka Development Team}
-     *
-     * @param       string  $string string to be converted
-     * @param       integer $quote_style
-     *                      - ENT_COMPAT:   escapes &, <, > and double quote (default)
-     *                      - ENT_NOQUOTES: escapes only &, < and >
-     *                      - ENT_QUOTES:   escapes &, <, >, double and single quotes
-     * @return      string  converted string
-     * @since       1.0.7.18
-     */
-    protected function hsc($string, $quote_style = ENT_COMPAT) {
-        // init
-        static $aTransSpecchar = array(
-            '&' => '&amp;',
-            '"' => '&quot;',
-            '<' => '&lt;',
-            '>' => '&gt;',
-
-            //This fix is related to SF#1923020, but has to be applied
-            //regardless of actually highlighting symbols.
-
-            //Circumvent a bug with symbol highlighting
-            //This is required as ; would produce undesirable side-effects if it
-            //was not to be processed as an entity.
-            ';' => '<SEMI>', // Force ; to be processed as entity
-            '|' => '<PIPE>' // Force | to be processed as entity
-            );                      // ENT_COMPAT set
-
-        switch ($quote_style) {
-            case ENT_NOQUOTES: // don't convert double quotes
-                unset($aTransSpecchar['"']);
-                break;
-            case ENT_QUOTES: // convert single quotes as well
-                $aTransSpecchar["'"] = '&#39;'; // (apos) htmlspecialchars() uses '&#039;'
-                break;
-        }
-
-        // return translated string
-        return strtr($string, $aTransSpecchar);
-    }
-
-    /**
-     * 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;
-    }
-
-    /**
-     * Returns a stylesheet for the highlighted code. If $economy mode
-     * is true, we only return the stylesheet declarations that matter for
-     * this code block instead of the whole thing
-     *
-     * @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
-     */
-    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...
-        if ($this->error) {
-            return '';
-        }
-
-        //Check if the style rearrangements have been processed ...
-        //This also does some preprocessing to check which style groups are useable ...
-        if(!isset($this->language_data['NUMBERS_CACHE'])) {
-            $this->build_style_cache();
-        }
-
-        // First, work out what the selector should be. If there's an ID,
-        // that should be used, the same for a class. Otherwise, a selector
-        // of '' means that these styles will be applied anywhere
-        if ($this->overall_id) {
-            $selector = '#' . $this->_genCSSName($this->overall_id);
-        } else {
-            $selector = '.' . $this->_genCSSName($this->language);
-            if ($this->overall_class) {
-                $selector .= '.' . $this->_genCSSName($this->overall_class);
-            }
-        }
-        $selector .= ' ';
-
-        // Header of the stylesheet
-        if (!$economy_mode) {
-            $stylesheet = "/**\n".
-                " * GeSHi Dynamically Generated Stylesheet\n".
-                " * --------------------------------------\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 - 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 - 2014 Benny Baumann\n" .
-                " * (http://qbnz.com/highlighter/ and http://geshi.org/)\n".
-                " */\n";
-        }
-
-        // Set the <ol> to have no effect at all if there are line numbers
-        // (<ol>s have margins that should be destroyed so all layout is
-        // controlled by the set_overall_style method, which works on the
-        // <pre> or <div> container). Additionally, set default styles for lines
-        if (!$economy_mode || $this->line_numbers != GESHI_NO_LINE_NUMBERS) {
-            //$stylesheet .= "$selector, {$selector}ol, {$selector}ol li {margin: 0;}\n";
-            $stylesheet .= "$selector.de1, $selector.de2 {{$this->code_style}}\n";
-        }
-
-        // Add overall styles
-        // note: neglect economy_mode, empty styles are meaningless
-        if ($this->overall_style != '') {
-            $stylesheet .= "$selector {{$this->overall_style}}\n";
-        }
-
-        // Add styles for links
-        // note: economy mode does not make _any_ sense here
-        //       either the style is empty and thus no selector is needed
-        //       or the appropriate key is given.
-        foreach ($this->link_styles as $key => $style) {
-            if ($style != '') {
-                switch ($key) {
-                    case GESHI_LINK:
-                        $stylesheet .= "{$selector}a:link {{$style}}\n";
-                        break;
-                    case GESHI_HOVER:
-                        $stylesheet .= "{$selector}a:hover {{$style}}\n";
-                        break;
-                    case GESHI_ACTIVE:
-                        $stylesheet .= "{$selector}a:active {{$style}}\n";
-                        break;
-                    case GESHI_VISITED:
-                        $stylesheet .= "{$selector}a:visited {{$style}}\n";
-                        break;
-                }
-            }
-        }
-
-        // Header and footer
-        // note: neglect economy_mode, empty styles are meaningless
-        if ($this->header_content_style != '') {
-            $stylesheet .= "$selector.head {{$this->header_content_style}}\n";
-        }
-        if ($this->footer_content_style != '') {
-            $stylesheet .= "$selector.foot {{$this->footer_content_style}}\n";
-        }
-
-        // Styles for important stuff
-        // note: neglect economy_mode, empty styles are meaningless
-        if ($this->important_styles != '') {
-            $stylesheet .= "$selector.imp {{$this->important_styles}}\n";
-        }
-
-        // Simple line number styles
-        if ((!$economy_mode || $this->line_numbers != GESHI_NO_LINE_NUMBERS) && $this->line_style1 != '') {
-            $stylesheet .= "{$selector}li, {$selector}.li1 {{$this->line_style1}}\n";
-        }
-        if ((!$economy_mode || $this->line_numbers != GESHI_NO_LINE_NUMBERS) && $this->table_linenumber_style != '') {
-            $stylesheet .= "{$selector}.ln {{$this->table_linenumber_style}}\n";
-        }
-        // If there is a style set for fancy line numbers, echo it out
-        if ((!$economy_mode || $this->line_numbers == GESHI_FANCY_LINE_NUMBERS) && $this->line_style2 != '') {
-            $stylesheet .= "{$selector}.li2 {{$this->line_style2}}\n";
-        }
-
-        // note: empty styles are meaningless
-        foreach ($this->language_data['STYLES']['KEYWORDS'] as $group => $styles) {
-            if ($styles != '' && (!$economy_mode ||
-                (isset($this->lexic_permissions['KEYWORDS'][$group]) &&
-                $this->lexic_permissions['KEYWORDS'][$group]))) {
-                $stylesheet .= "$selector.kw$group {{$styles}}\n";
-            }
-        }
-        foreach ($this->language_data['STYLES']['COMMENTS'] as $group => $styles) {
-            if ($styles != '' && (!$economy_mode ||
-                (isset($this->lexic_permissions['COMMENTS'][$group]) &&
-                $this->lexic_permissions['COMMENTS'][$group]) ||
-                (!empty($this->language_data['COMMENT_REGEXP']) &&
-                !empty($this->language_data['COMMENT_REGEXP'][$group])))) {
-                $stylesheet .= "$selector.co$group {{$styles}}\n";
-            }
-        }
-        foreach ($this->language_data['STYLES']['ESCAPE_CHAR'] as $group => $styles) {
-            if ($styles != '' && (!$economy_mode || $this->lexic_permissions['ESCAPE_CHAR'])) {
-                // NEW: since 1.0.8 we have to handle hardescapes
-                if ($group === 'HARD') {
-                    $group = '_h';
-                }
-                $stylesheet .= "$selector.es$group {{$styles}}\n";
-            }
-        }
-        foreach ($this->language_data['STYLES']['BRACKETS'] as $group => $styles) {
-            if ($styles != '' && (!$economy_mode || $this->lexic_permissions['BRACKETS'])) {
-                $stylesheet .= "$selector.br$group {{$styles}}\n";
-            }
-        }
-        foreach ($this->language_data['STYLES']['SYMBOLS'] as $group => $styles) {
-            if ($styles != '' && (!$economy_mode || $this->lexic_permissions['SYMBOLS'])) {
-                $stylesheet .= "$selector.sy$group {{$styles}}\n";
-            }
-        }
-        foreach ($this->language_data['STYLES']['STRINGS'] as $group => $styles) {
-            if ($styles != '' && (!$economy_mode || $this->lexic_permissions['STRINGS'])) {
-                // NEW: since 1.0.8 we have to handle hardquotes
-                if ($group === 'HARD') {
-                    $group = '_h';
-                }
-                $stylesheet .= "$selector.st$group {{$styles}}\n";
-            }
-        }
-        foreach ($this->language_data['STYLES']['NUMBERS'] as $group => $styles) {
-            if ($styles != '' && (!$economy_mode || $this->lexic_permissions['NUMBERS'])) {
-                $stylesheet .= "$selector.nu$group {{$styles}}\n";
-            }
-        }
-        foreach ($this->language_data['STYLES']['METHODS'] as $group => $styles) {
-            if ($styles != '' && (!$economy_mode || $this->lexic_permissions['METHODS'])) {
-                $stylesheet .= "$selector.me$group {{$styles}}\n";
-            }
-        }
-        // note: neglect economy_mode, empty styles are meaningless
-        foreach ($this->language_data['STYLES']['SCRIPT'] as $group => $styles) {
-            if ($styles != '') {
-                $stylesheet .= "$selector.sc$group {{$styles}}\n";
-            }
-        }
-        foreach ($this->language_data['STYLES']['REGEXPS'] as $group => $styles) {
-            if ($styles != '' && (!$economy_mode ||
-                (isset($this->lexic_permissions['REGEXPS'][$group]) &&
-                $this->lexic_permissions['REGEXPS'][$group]))) {
-                if (is_array($this->language_data['REGEXPS'][$group]) &&
-                    array_key_exists(GESHI_CLASS, $this->language_data['REGEXPS'][$group])) {
-                    $stylesheet .= "$selector.";
-                    $stylesheet .= $this->language_data['REGEXPS'][$group][GESHI_CLASS];
-                    $stylesheet .= " {{$styles}}\n";
-                } else {
-                    $stylesheet .= "$selector.re$group {{$styles}}\n";
-                }
-            }
-        }
-        // Styles for lines being highlighted extra
-        if (!$economy_mode || (count($this->highlight_extra_lines)!=count($this->highlight_extra_lines_styles))) {
-            $stylesheet .= "{$selector}.ln-xtra, {$selector}li.ln-xtra, {$selector}div.ln-xtra {{$this->highlight_extra_lines_style}}\n";
-        }
-        $stylesheet .= "{$selector}span.xtra { display:block; }\n";
-        foreach ($this->highlight_extra_lines_styles as $lineid => $linestyle) {
-            $stylesheet .= "{$selector}.lx$lineid, {$selector}li.lx$lineid, {$selector}div.lx$lineid {{$linestyle}}\n";
-        }
-
-        return $stylesheet;
-    }
-
-    /**
-     * Get's the style that is used for the specified line
-     *
-     * @param int $line The line number information is requested for
-     * @since 1.0.7.21
-     */
-    protected function get_line_style($line) {
-        $style = null;
-        if (isset($this->highlight_extra_lines_styles[$line])) {
-            $style = $this->highlight_extra_lines_styles[$line];
-        } else { // if no "extra" style assigned
-            $style = $this->highlight_extra_lines_style;
-        }
-
-        return $style;
-    }
-
-    /**
-    * this functions creates an optimized regular expression list
-    * of an array of strings.
-    *
-    * Example:
-    * <code>$list = array('faa', 'foo', 'foobar');
-    *          => string 'f(aa|oo(bar)?)'</code>
-    *
-    * @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
-    */
-    protected function optimize_regexp_list($list, $regexp_delimiter = '/') {
-        $regex_chars = array('.', '\\', '+', '-', '*', '?', '[', '^', ']', '$',
-            '(', ')', '{', '}', '=', '!', '<', '>', '|', ':', $regexp_delimiter);
-        sort($list);
-        $regexp_list = array('');
-        $num_subpatterns = 0;
-        $list_key = 0;
-
-        // the tokens which we will use to generate the regexp list
-        $tokens = array();
-        $prev_keys = array();
-        // go through all entries of the list and generate the token list
-        $cur_len = 0;
-        for ($i = 0, $i_max = count($list); $i < $i_max; ++$i) {
-            if ($cur_len > GESHI_MAX_PCRE_LENGTH) {
-                // seems like the length of this pcre is growing exorbitantly
-                $regexp_list[++$list_key] = $this->_optimize_regexp_list_tokens_to_string($tokens);
-                $num_subpatterns = substr_count($regexp_list[$list_key], '(?:');
-                $tokens = array();
-                $cur_len = 0;
-            }
-            $level = 0;
-            $entry = preg_quote((string) $list[$i], $regexp_delimiter);
-            $pointer = &$tokens;
-            // properly assign the new entry to the correct position in the token array
-            // possibly generate smaller common denominator keys
-            while (true) {
-                // get the common denominator
-                if (isset($prev_keys[$level])) {
-                    if ($prev_keys[$level] == $entry) {
-                        // this is a duplicate entry, skip it
-                        continue 2;
-                    }
-                    $char = 0;
-                    while (isset($entry[$char]) && isset($prev_keys[$level][$char])
-                            && $entry[$char] == $prev_keys[$level][$char]) {
-                        ++$char;
-                    }
-                    if ($char > 0) {
-                        // this entry has at least some chars in common with the current key
-                        if ($char == strlen($prev_keys[$level])) {
-                            // current key is totally matched, i.e. this entry has just some bits appended
-                            $pointer = &$pointer[$prev_keys[$level]];
-                        } else {
-                            // only part of the keys match
-                            $new_key_part1 = substr($prev_keys[$level], 0, $char);
-                            $new_key_part2 = substr($prev_keys[$level], $char);
-
-                            if (in_array($new_key_part1[0], $regex_chars)
-                                || in_array($new_key_part2[0], $regex_chars)) {
-                                // this is bad, a regex char as first character
-                                $pointer[$entry] = array('' => true);
-                                array_splice($prev_keys, $level, count($prev_keys), $entry);
-                                $cur_len += strlen($entry);
-                                continue;
-                            } else {
-                                // relocate previous tokens
-                                $pointer[$new_key_part1] = array($new_key_part2 => $pointer[$prev_keys[$level]]);
-                                unset($pointer[$prev_keys[$level]]);
-                                $pointer = &$pointer[$new_key_part1];
-                                // recreate key index
-                                array_splice($prev_keys, $level, count($prev_keys), array($new_key_part1, $new_key_part2));
-                                $cur_len += strlen($new_key_part2);
-                            }
-                        }
-                        ++$level;
-                        $entry = substr($entry, $char);
-                        continue;
-                    }
-                    // else: fall trough, i.e. no common denominator was found
-                }
-                if ($level == 0 && !empty($tokens)) {
-                    // we can dump current tokens into the string and throw them away afterwards
-                    $new_entry = $this->_optimize_regexp_list_tokens_to_string($tokens);
-                    $new_subpatterns = substr_count($new_entry, '(?:');
-                    if (GESHI_MAX_PCRE_SUBPATTERNS && $num_subpatterns + $new_subpatterns > GESHI_MAX_PCRE_SUBPATTERNS) {
-                        $regexp_list[++$list_key] = $new_entry;
-                        $num_subpatterns = $new_subpatterns;
-                    } else {
-                        if (!empty($regexp_list[$list_key])) {
-                            $new_entry = '|' . $new_entry;
-                        }
-                        $regexp_list[$list_key] .= $new_entry;
-                        $num_subpatterns += $new_subpatterns;
-                    }
-                    $tokens = array();
-                    $cur_len = 0;
-                }
-                // no further common denominator found
-                $pointer[$entry] = array('' => true);
-                array_splice($prev_keys, $level, count($prev_keys), $entry);
-
-                $cur_len += strlen($entry);
-                break;
-            }
-            unset($list[$i]);
-        }
-        // make sure the last tokens get converted as well
-        $new_entry = $this->_optimize_regexp_list_tokens_to_string($tokens);
-        if (GESHI_MAX_PCRE_SUBPATTERNS && $num_subpatterns + substr_count($new_entry, '(?:') > GESHI_MAX_PCRE_SUBPATTERNS) {
-            if ( !empty($regexp_list[$list_key]) ) {
-              ++$list_key;
-            }
-            $regexp_list[$list_key] = $new_entry;
-        } else {
-            if (!empty($regexp_list[$list_key])) {
-                $new_entry = '|' . $new_entry;
-            }
-            $regexp_list[$list_key] .= $new_entry;
-        }
-        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 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
-    */
-    protected function _optimize_regexp_list_tokens_to_string(&$tokens, $recursed = false) {
-        $list = '';
-        foreach ($tokens as $token => $sub_tokens) {
-            $list .= $token;
-            $close_entry = isset($sub_tokens['']);
-            unset($sub_tokens['']);
-            if (!empty($sub_tokens)) {
-                $list .= '(?:' . $this->_optimize_regexp_list_tokens_to_string($sub_tokens, true) . ')';
-                if ($close_entry) {
-                    // make sub_tokens optional
-                    $list .= '?';
-                }
-            }
-            $list .= '|';
-        }
-        if (!$recursed) {
-            // do some optimizations
-            // common trailing strings
-            // BUGGY!
-            //$list = preg_replace_callback('#(?<=^|\:|\|)\w+?(\w+)(?:\|.+\1)+(?=\|)#', create_function(
-            //    '$matches', 'return "(?:" . preg_replace("#" . preg_quote($matches[1], "#") . "(?=\||$)#", "", $matches[0]) . ")" . $matches[1];'), $list);
-            // (?:p)? => p?
-            $list = preg_replace('#\(\?\:(.)\)\?#', '\1?', $list);
-            // (?:a|b|c|d|...)? => [abcd...]?
-            // TODO: a|bb|c => [ac]|bb
-            static $callback_2;
-            if (!isset($callback_2)) {
-                $callback_2 = create_function('$matches', 'return "[" . str_replace("|", "", $matches[1]) . "]";');
-            }
-            $list = preg_replace_callback('#\(\?\:((?:.\|)+.)\)#', $callback_2, $list);
-        }
-        // return $list without trailing pipe
-        return substr($list, 0, -1);
-    }
-} // End Class GeSHi
-
-
-if (!function_exists('geshi_highlight')) {
-    /**
-     * Easy way to highlight stuff. Behaves just like highlight_string
-     *
-     * @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
-     */
-    function geshi_highlight($string, $language, $path = null, $return = false) {
-        $geshi = new GeSHi($string, $language, $path);
-        $geshi->set_header_type(GESHI_HEADER_NONE);
-
-        if ($return) {
-            return '<code>' . $geshi->parse_code() . '</code>';
-        }
-
-        echo '<code>' . $geshi->parse_code() . '</code>';
-
-        if ($geshi->error()) {
-            return false;
-        }
-        return true;
-    }
-}
diff --git a/wiki/vendor/geshi/geshi/src/geshi/4cs.php b/wiki/vendor/geshi/geshi/src/geshi/4cs.php
deleted file mode 100644
index cae453f..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/4cs.php
+++ /dev/null
@@ -1,137 +0,0 @@
-<?php
-/*************************************************************************************
- * 4cs.php
- * ------
- * Author: Jason Curl (jason.curl@continental-corporation.com)
- * Copyright: (c) 2009 Jason Curl
- * Release Version: 1.0.9.0
- * Date Started: 2009/09/05
- *
- * 4CS language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2009/09/05
- *   -  First Release
- *
- * TODO (updated 2009/09/01)
- * -------------------------
- *
- *************************************************************************************
- *
- *     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' => 'GADV 4CS',
-    'COMMENT_SINGLE' => array(1 => "//"),
-    'COMMENT_MULTI' => array(),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array('"'),
-    'ESCAPE_CHAR' => '',
-    'KEYWORDS' => array(
-        1 => array(
-            'All', 'AllMatches', 'And', 'And_Filters', 'As', 'Asc', 'BasedOn',
-            'BestMatch', 'Block', 'Buffer', 'ByRef', 'ByVal', 'Call', 'Channel',
-            'Chr', 'Clear', 'Close', 'Confirm', 'Const', 'Continue', 'Cos',
-            'Critical', 'Declare', 'Default', 'DefaultChannel', 'DefaultDelayTime',
-            'DefaultReceiveMode', 'DefaultResponseTime', '#Define', 'DelayTime',
-            'Delete', 'Div', 'Else', '#Else', 'ElseIf', '#ElseIf', 'End', 'EndCritical',
-            'EndInlineC', 'EndFunction', 'EndIf', '#EndIf', 'EndInputList',
-            'EndLocalChannel', 'EndScenario', 'EndSub', 'EndWhile', 'Error',
-            'ErrorLevelOff', 'ErrorLevelOn', 'ErrorLevelSet', 'ErrorLevelSetRaw',
-            'Event', 'EventMode', 'EventOff', 'EventOn', 'EventSet', 'EventSetRaw',
-            'Execute', 'Exit', 'Exp', 'FileClose', 'FilterClear', 'FileEOF', 'FileOpen',
-            'FileRead', 'FileSize', 'FileWrite', 'FilterAdd', 'FilterMode',
-            'FilterOff', 'FilterOn', 'For', 'Format', 'Function', 'GoOnline', 'GoTo',
-            'Handle', 'Hide', 'If', '#If', '#IfDef', '#IfNDef', 'Ignore', '#Include',
-            'InlineC', 'Input', 'InputItem', 'InputList', 'Kill', 'LBound', 'LocalChannel',
-            'Local', 'Log', 'Log10', 'LogOff', 'LogOn', 'Loop', 'Message', 'Mod',
-            'MonitorChannel', 'MostFormat', 'MostMessage', 'Named', 'Never', 'Next',
-            'NoOrder', 'Not', 'Nothing', 'NoWait', 'Numeric', 'OnError', 'OnEvent',
-            'Or', 'Or_Filters', 'Order', 'Pass', 'Pow', 'Prototype', 'Quit', 'Raise',
-            'Random', 'Receive', 'ReceiveMode', 'ReceiveRaw', 'Redim', 'Remote', 'Repeat',
-            'Repeated', 'ResponseTime', 'Resume', 'ResumeCritical', 'RT_Common',
-            'RT_Dll_Call', 'RT_FILEIO', 'RT_General', 'RT_HardwareAccess',
-            'RT_MessageVariableAccess', 'RT_Scenario', 'RT_VariableAccess', 'Runtime',
-            'Scenario', 'ScenarioEnd', 'ScenarioStart', 'ScenarioStatus', 'ScenarioTerminate',
-            'Send', 'SendRaw', 'Set', 'SetError', 'Sin', 'Single', 'Show', 'Start',
-            'StartCritical', 'Starts', 'Static', 'Step', 'Stop', 'String', 'Sub',
-            'System_Error', 'TerminateAllChilds', 'Terminates', 'Then', 'Throw', 'TimeOut',
-            'To', 'TooLate', 'Trunc', 'UBound', 'Unexpected', 'Until', 'User_Error',
-            'View', 'Wait', 'Warning', 'While', 'XOr'
-            ),
-        2 => array(
-            'alias', 'winapi', 'long', 'char', 'double', 'float', 'int', 'short', 'lib'
-            )
-        ),
-    'SYMBOLS' => array(
-        '=', ':=', '<', '>', '<>'
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false,
-        2 => false
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #0000C0; font-weight: bold;',
-            2 => 'color: #808080;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #008000;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #000080;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #800080;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #cc66cc;'
-            ),
-        'METHODS' => array(
-            1 => 'color: #66cc66;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #000080;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #000099;'
-            ),
-        'SCRIPT' => array(
-            ),
-        'REGEXPS' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => ''
-        ),
-    'OOLANG' => true,
-    'OBJECT_SPLITTERS' => array(
-        1 => '.'
-        ),
-    'REGEXPS' => array(
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/6502acme.php b/wiki/vendor/geshi/geshi/src/geshi/6502acme.php
deleted file mode 100644
index a11a108..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/6502acme.php
+++ /dev/null
@@ -1,228 +0,0 @@
-<?php
-/*************************************************************************************
- * 6502acme.php
- * -------
- * Author: Warren Willmey
- * Copyright: (c) 2010 Warren Willmey.
- * 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.
- *
- * CHANGES
- * -------
- * 2010/07/22
- *  -  First Release
- *
- * TODO (updated 2010/07/22)
- * -------------------------
- *
- *************************************************************************************
- *
- *     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' => 'MOS 6502 (6510) ACME Cross Assembler format',
-    'COMMENT_SINGLE' => array(1 => ';'),
-    'COMMENT_MULTI' => array(),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array("'", '"'),
-    'ESCAPE_CHAR' => '',
-    'KEYWORDS' => array(
-        /* 6502/6510 Opcodes. */
-        1 => array(
-            'adc', 'and', 'asl', 'bcc', 'bcs', 'beq', 'bit', 'bmi',
-            'bne', 'bpl', 'brk', 'bvc', 'bvs', 'clc', 'cld', 'cli',
-            'clv', 'cmp', 'cpx', 'cpy', 'dec', 'dex', 'dey', 'eor',
-            'inc', 'inx', 'iny', 'jmp', 'jsr', 'lda', 'ldx', 'ldy',
-            'lsr', 'nop', 'ora', 'pha', 'php', 'pla', 'plp', 'rol',
-            'ror', 'rti', 'rts', 'sbc', 'sec', 'sed', 'sei', 'sta',
-            'stx', 'sty', 'tax', 'tay', 'tsx', 'txa', 'txs', 'tya',
-            ),
-        /* Index Registers, yes the 6502 has other registers by they are only
-        * accessable by specific opcodes. The 65816 also has access to the stack pointer S. */
-        2 => array(
-            'x', 'y', 's'
-            ),
-        /* Directives or "pseudo opcodes" as defined by ACME 0.93 file AllPOs.txt. */
-        3 => array(
-            '!8', '!08', '!by', '!byte',
-            '!16', '!wo', '!word',
-            '!24', '!32',
-            '!fi', '!fill',
-            '!align',
-            '!ct', '!convtab',
-            '!tx', '!text',
-            '!pet',
-            '!raw',
-            '!scrxor',
-            '!to',
-            '!source',
-            '!bin', '!binary',
-            '!zn', '!zone',
-            '!sl',
-            '!svl',
-            '!sal',
-            '!if', '!ifdef',
-            '!for',
-            '!set',
-            '!do', 'while', 'until',
-            '!eof', '!endoffile',
-            '!warn', '!error', '!serious',
-            '!macro',
-//            , '*='        // Not a valid keyword (uses both * and = signs) moved to symbols instead.
-            '!initmem',
-            '!pseudopc',
-            '!cpu',
-            '!al', '!as', '!rl', '!rs',
-            ),
-
-        /* 6502/6510 undocumented opcodes (often referred to as illegal instructions).
-        *  These are present in the 6502/6510 but NOT in the newer CMOS revisions of the 65C02 or 65816.
-        *  As they are undocumented instructions there are no "official" names for them, there are also
-        *  several more that mainly perform various forms of crash and are not supported by ACME 0.93.
-        */
-        4 => array(
-            'anc', 'arr', 'asr', 'dcp', 'dop', 'isc', 'jam', 'lax',
-            'rla', 'rra', 'sax', 'sbx', 'slo', 'sre', 'top',
-            ),
-        /* 65c02 instructions, MOS added a few (much needed) instructions in the CMOS version of the 6502, but stupidly removed the undocumented/illegal opcodes.
-        *  ACME 0.93 does not support the rmb0-7 and smb0-7 instructions (they are currently rem'ed out).  */
-        5 => array(
-            'bra', 'phx', 'phy', 'plx', 'ply', 'stz', 'trb', 'tsb'
-            ),
-        /* 65816 instructions. */
-        6 => array(
-            'brl', 'cop', 'jml', 'jsl', 'mvn', 'mvp', 'pea', 'pei',
-            'per', 'phb', 'phd', 'phk', 'plb', 'pld', 'rep', 'rtl',
-            'sep', 'tcd', 'tcs', 'tdc', 'tsc', 'txy', 'tyx', 'wdm',
-            'xba', 'xce',
-            ),
-        /* Deprecated directives or "pseudo opcodes" as defined by ACME 0.93 file AllPOs.txt. */
-        7 => array(
-            '!cbm',
-            '!sz', '!subzone',
-            '!realpc',
-            ),
-        /* Math functions, some are aliases for the symbols. */
-        8 => array(
-            'not', 'div', 'mod', 'xor', 'or', 'sin', 'cos', 'tan',
-            'arcsin', 'arccos', 'arctan', 'int', 'float',
-
-            ),
-
-        ),
-    'SYMBOLS' => array(
-//        '[', ']', '(', ')', '{', '}',    // These are already defined by GeSHi as BRACKETS.
-        '*=', '#', '!', '^', '-', '*', '/',
-        '%', '+', '-', '<<', '>>', '>>>',
-        '<', '>', '^', '<=', '<', '>=', '>', '!=',
-        '=', '&', '|', '<>',
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false,
-        2 => false,
-        3 => false,
-        4 => false,
-        5 => false,
-        6 => false,
-        7 => false,
-        8 => false,
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #00f; font-weight:bold;',
-            2 => 'color: #00f; font-weight:bold;',
-            3 => 'color: #080; font-weight:bold;',
-            4 => 'color: #f00; font-weight:bold;',
-            5 => 'color: #80f; font-weight:bold;',
-            6 => 'color: #f08; font-weight:bold;',
-            7 => 'color: #a04; font-weight:bold; font-style: italic;',
-            8 => 'color: #000;',
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #999; font-style: italic;',
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #009; font-weight: bold;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #000;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #080;'
-            ),
-        'NUMBERS' => array(
-            GESHI_NUMBER_INT_BASIC          => 'color: #f00;',
-            GESHI_NUMBER_HEX_PREFIX_DOLLAR  => 'color: #f00;',
-            GESHI_NUMBER_HEX_PREFIX         => 'color: #f00;',
-            GESHI_NUMBER_BIN_PREFIX_PERCENT => 'color: #f00;',
-            GESHI_NUMBER_FLT_NONSCI         => 'color: #f00;',
-            ),
-        'METHODS' => array(
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #080;'
-            ),
-        'REGEXPS' => array(
-            0   => 'color: #f00;'
-            , 1 => 'color: #933;'
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => '',
-        4 => '',
-        5 => '',
-        6 => '',
-        7 => '',
-        8 => '',
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(
-        ),
-    'NUMBERS' =>
-        GESHI_NUMBER_INT_BASIC |
-        GESHI_NUMBER_FLT_NONSCI |
-        GESHI_NUMBER_HEX_PREFIX_DOLLAR |
-        GESHI_NUMBER_HEX_PREFIX |
-        GESHI_NUMBER_BIN_PREFIX_PERCENT,
-        // AMCE Octal format not support and gets picked up as Decimal unfortunately.
-    'REGEXPS' => array(
-        //ACME .# Binary number format. e.g. %..##..##..##
-        0 => '\%[\.\#]{1,64}',
-        //ACME Local Labels
-        1 => '\.[_a-zA-Z][_a-zA-Z0-9]*',
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        ),
-    'TAB_WIDTH' => 8,
-    'PARSER_CONTROL' => array(
-        'NUMBERS' => array(
-            'PRECHECK_RX' => '/[\da-fA-F\.\$\%]/'
-            )
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/6502kickass.php b/wiki/vendor/geshi/geshi/src/geshi/6502kickass.php
deleted file mode 100644
index 9da8f24..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/6502kickass.php
+++ /dev/null
@@ -1,239 +0,0 @@
-<?php
-/*************************************************************************************
- * 6502kickass.php
- * -------
- * Author: Warren Willmey
- * Copyright: (c) 2010 Warren Willmey.
- * Release Version: 1.0.9.0
- * Date Started: 2010/06/07
- *
- * MOS 6502 (6510) Kick Assembler 3.13 language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2010/07/22
- *  -  First Release
- *
- * TODO (updated 2010/07/22)
- * -------------------------
- *
- *************************************************************************************
- *
- *     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' => 'MOS 6502 (6510) Kick Assembler format',
-    'COMMENT_SINGLE' => array(1 => '//'),
-    'COMMENT_MULTI' => array('/*' => '*/'),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array("'", '"'),
-    'ESCAPE_CHAR' => '',
-    'KEYWORDS' => array(
-        /* 6502/6510 Opcodes including undocumented opcodes as Kick Assembler 3.13 does not make a distinction - they are ALL valid. */
-        1 => array(
-            'adc', 'ahx', 'alr', 'anc', 'anc2', 'and', 'arr', 'asl',
-            'axs', 'bcc', 'bcs', 'beq', 'bit', 'bmi', 'bne', 'bpl',
-            'brk', 'bvc', 'bvs', 'clc', 'cld', 'cli', 'clv', 'cmp',
-            'cpx', 'cpy', 'dcp', 'dec', 'dex', 'dey', 'eor', 'inc',
-            'inx', 'iny', 'isc', 'jmp', 'jsr', 'las', 'lax', 'lda',
-            'ldx', 'ldy', 'lsr', 'nop', 'ora', 'pha', 'php', 'pla',
-            'plp', 'rla', 'rol', 'ror', 'rra', 'rti', 'rts', 'sax',
-            'sbc', 'sbc2', 'sec', 'sed', 'sei', 'shx', 'shy', 'slo',
-            'sre', 'sta', 'stx', 'sty', 'tas', 'tax', 'tay', 'tsx',
-            'txa', 'txs', 'tya', 'xaa',
-            ),
-        /* DTV additional Opcodes. */
-        2 => array(
-            'bra', 'sac', 'sir'
-            ),
-        /* Index Registers, yes the 6502 has other registers by they are only
-        * accessable by specific opcodes. */
-        3 => array(
-            'x', 'y'
-            ),
-        /* Directives. */
-        4 => array(
-            '.pc', '.pseudopc', 'virtual', '.align', '.byte', '.word', '.text', '.fill',
-            '.import source', '.import binary', '.import c64', '.import text', '.import', '.print', '.printnow',
-            '.error', '.var', '.eval', '.const', '.eval const', '.enum', '.label', '.define', '.struct',
-            'if', '.for', '.macro', '.function', '.return', '.pseudocommand', '.namespace', '.filenamespace',
-            '.assert', '.asserterror',
-            ),
-        /* Kick Assembler 3.13 Functions/Operators. */
-        5 => array(
-            'size', 'charAt', 'substring', 'asNumber', 'asBoolean', 'toIntString', 'toBinaryString', 'toOctalString',
-            'toHexString', 'lock',                                       // String functions/operators.
-            'get', 'set', 'add', 'remove', 'shuffle',                    // List functions.
-            'put', 'keys',                                               // Hashtable functions.
-            'getType', 'getValue', 'CmdArgument',                        // Pseudo Commands functions.
-            'asmCommandSize',                                            // Opcode Constants functions.
-            'LoadBinary', 'getSize',
-            'LoadSid', 'getData',
-            'LoadPicture', 'width', 'height', 'getPixel', 'getSinglecolorByte', 'getMulticolorByte',
-            'createFile', 'writeln',
-            'cmdLineVars',
-            'getX', 'getY', 'getZ',                                             // Vector functions.
-            'RotationMatrix', 'ScaleMatrix', 'MoveMatrix', 'PerspectiveMatrix', // Matrix functions.
-
-            ),
-
-        /* Kick Assembler 3.13 Math Functions. */
-        6 => array(
-            'abs', 'acos', 'asin', 'atan', 'atan2', 'cbrt', 'ceil', 'cos', 'cosh',
-            'exp', 'expm1', 'floor', 'hypot', 'IEEEremainder', 'log', 'log10',
-            'log1p', 'max', 'min', 'pow', 'mod', 'random', 'round', 'signum',
-            'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'toDegrees', 'toRadians',
-            ),
-
-        /* Kick Assembler 3.13 Objects/Data Types. */
-        7 => array(
-            'List',          // List() Object.
-            'Hashtable',     // Hashtable() Object.
-            'Vector',        // Vector() Object.
-            'Matrix',        // Matrix() Object.
-            ),
-
-        /* Kick Assembler 3.13 Constants. */
-        8 => array(
-            'PI', 'E',                                                         // Math Constants.
-            'AT_ABSOLUTE' , 'AT_ABSOLUTEX' , 'AT_ABSOLUTEY' , 'AT_IMMEDIATE',  // Pseudo Commands Constants.
-            'AT_INDIRECT' , 'AT_IZEROPAGEX' , 'AT_IZEROPAGEY' , 'AT_NONE',
-            'BLACK', 'WHITE', 'RED', 'CYAN', 'PURPLE', 'GREEN', 'BLUE',        // Colour Constants.
-            'YELLOW', 'ORANGE', 'BROWN', 'LIGHT_RED', 'DARK_GRAY', 'GRAY',
-            'LIGHT_GREEN', 'LIGHT_BLUE', 'LIGHT_GRAY',
-            'C64FILE',                                                         // Template Tag names.
-            'BF_C64FILE', 'BF_BITMAP_SINGLECOLOR', 'BF_KOALA' , 'BF_FLI',      // Binary format constant
-            ),
-
-        ),
-    'SYMBOLS' => array(
-//        '[', ']', '(', ')', '{', '}',    // These are already defined by GeSHi as BRACKETS.
-        '-', '+', '-', '*', '/', '>', '<', '<<', '>>', '&', '|', '^', '=', '==',
-        '!=', '>=', '<=', '!', '&&', '||', '#',
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false,
-        2 => false,
-        3 => false,
-        4 => true,
-        5 => true,
-        6 => true,
-        7 => true,
-        8 => true,
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #00f; font-weight:bold;',
-            2 => 'color: #00f; font-weight:bold;',
-            3 => 'color: #00f; font-weight:bold;',
-            4 => 'color: #080; font-weight:bold;',
-            5 => 'color: #80f; font-weight:bold;',
-            6 => 'color: #f08; font-weight:bold;',
-            7 => 'color: #a04; font-weight:bold; font-style: italic;',
-            8 => 'color: #f08; font-weight:bold;',
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #999; font-style: italic;',
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #009; font-weight: bold;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #000;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #080;'
-            ),
-        'NUMBERS' => array(
-            GESHI_NUMBER_INT_BASIC          => 'color: #f00;',
-            GESHI_NUMBER_HEX_PREFIX_DOLLAR  => 'color: #f00;',
-            GESHI_NUMBER_BIN_PREFIX_PERCENT => 'color: #f00;',
-            GESHI_NUMBER_FLT_NONSCI         => 'color: #f00;',
-            ),
-        'METHODS' => array(
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #080;'
-            ),
-        'REGEXPS' => array(
-            0 => 'color: #933;',
-            1 => 'color: #933;',
-            2 => 'color: #933;',
-            3 => 'color: #00f; font-weight:bold;',
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => '',
-        4 => '',
-        5 => '',
-        6 => '',
-        7 => '',
-        8 => '',
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(
-        ),
-    'NUMBERS' =>
-        GESHI_NUMBER_INT_BASIC |
-        GESHI_NUMBER_FLT_NONSCI |
-        GESHI_NUMBER_HEX_PREFIX_DOLLAR |
-        GESHI_NUMBER_BIN_PREFIX_PERCENT,
-        // AMCE Octal format not support and gets picked up as Decimal unfortunately.
-    'REGEXPS' => array(
-        //Labels end with a collon.
-        0 => '[!]{0,1}[_a-zA-Z][_a-zA-Z0-9]*\:',
-        //Multi Labels (local labels) references start with ! and end with + or - for forward/backward reference.
-        1 => '![_a-zA-Z][_a-zA-Z0-9]*[+-]',
-        //Macros start with a colon :Macro.
-        2 => ':[_a-zA-Z][_a-zA-Z0-9]*',
-        // Opcode Constants, such as LDA_IMM, STA_IZPY are basically all 6502 opcodes
-        // in UPPER case followed by _underscore_ and the ADDRESS MODE.
-        // As you might imagine that is rather a lot ( 78 supported Opcodes * 12 Addressing modes = 936 variations)
-        // So I thought it better and easier to maintain as a regular expression.
-        // NOTE: The order of the Address Modes must be maintained or it wont work properly (eg. place ZP first and find out!)
-        3 => '[A-Z]{3}[2]?_(?:IMM|IND|IZPX|IZPY|ZPX|ZPY|ABSX|ABSY|REL|ABS|ZP)',
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        ),
-    'TAB_WIDTH' => 8,
-    'PARSER_CONTROL' => array(
-        'NUMBERS'  => array(
-            'PRECHECK_RX' => '/[\da-fA-F\.\$\%]/'
-            ),
-        'KEYWORDS' => array(
-            5 => array (
-                'DISALLOWED_BEFORE' => "(?<![a-zA-Z0-9\$_\|\;>|^&'\"])"
-                ),
-            6 => array (
-                'DISALLOWED_BEFORE' => "(?<![a-zA-Z0-9\$_\|\;>|^&'\"])"
-                ),
-            8 => array (
-                'DISALLOWED_BEFORE' => "(?<![a-zA-Z0-9\$_\|\;>|^&'\"])"
-                )
-            )
-        ),
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/6502tasm.php b/wiki/vendor/geshi/geshi/src/geshi/6502tasm.php
deleted file mode 100644
index 4ce348f..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/6502tasm.php
+++ /dev/null
@@ -1,187 +0,0 @@
-<?php
-/*************************************************************************************
- * 6502tasm.php
- * -------
- * Author: Warren Willmey
- * Copyright: (c) 2010 Warren Willmey.
- * 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.
- *
- * CHANGES
- * -------
- * 2010/07/22
- *  -  First Release
- *
- * TODO (updated 2010/07/22)
- * -------------------------
- *
- *************************************************************************************
- *
- *     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' => 'MOS 6502 (6510) TASM/64TASS 1.46 Assembler format',
-    'COMMENT_SINGLE' => array(1 => ';'),
-    'COMMENT_MULTI' => array(),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array("'", '"'),
-    'ESCAPE_CHAR' => '',
-    'KEYWORDS' => array(
-        /* 6502/6510 Opcodes. */
-        1 => array(
-            'adc', 'and', 'asl', 'bcc', 'bcs', 'beq', 'bit', 'bmi',
-            'bne', 'bpl', 'brk', 'bvc', 'bvs', 'clc', 'cld', 'cli',
-            'clv', 'cmp', 'cpx', 'cpy', 'dec', 'dex', 'dey', 'eor',
-            'inc', 'inx', 'iny', 'jmp', 'jsr', 'lda', 'ldx', 'ldy',
-            'lsr', 'nop', 'ora', 'pha', 'php', 'pla', 'plp', 'rol',
-            'ror', 'rti', 'rts', 'sbc', 'sec', 'sed', 'sei', 'sta',
-            'stx', 'sty', 'tax', 'tay', 'tsx', 'txa', 'txs', 'tya',
-            ),
-        /* Index Registers, yes the 6502 has other registers by they are only
-        * accessable by specific opcodes. The 65816 also has access to the stack pointer S. */
-        2 => array(
-            'x', 'y', 's'
-            ),
-        /* Directives. */
-        3 => array(
-            '.al', '.align', '.as', '.assert', '.binary', '.byte', '.cerror', '.char',
-            '.comment', '.cpu', '.cwarn', '.databank', '.dpage', '.else', '.elsif',
-            '.enc', '.endc', '.endif', '.endm', '.endp', '.error', '.fi', '.fill',
-            '.for', '.here', '.if', '.ifeq', '.ifmi', '.ifne', '.ifpl',
-            '.include', '.int', '.logical', '.long', '.macro', '.next', '.null', '.offs',
-            '.page', '.pend', '.proc', '.rept', '.rta', '.shift', '.text', '.warn', '.word',
-            '.xl', '.xs',
-//            , '*='        // Not a valid keyword (uses both * and = signs) moved to symbols instead.
-            ),
-
-        /* 6502/6510 undocumented opcodes (often referred to as illegal instructions).
-        *  These are present in the 6502/6510 but NOT in the newer CMOS revisions of the 65C02 or 65816.
-        *  As they are undocumented instructions there are no "official" names for them, these are the names
-        *  used by 64TASS V1.46.
-        */
-        4 => array(
-            'ahx', 'alr', 'anc', 'ane', 'arr', 'asr', 'axs', 'dcm',
-            'dcp', 'ins', 'isb', 'isc', 'jam', 'lae', 'las', 'lax',
-            'lds', 'lxa', 'rla', 'rra', 'sax', 'sbx', 'sha', 'shs',
-            'shx', 'shy', 'slo', 'sre', 'tas', 'xaa',
-            ),
-        /* 65c02 instructions, MOS added a few (much needed) instructions in the
-        *  CMOS version of the 6502, but stupidly removed the undocumented/illegal opcodes.  */
-        5 => array(
-            'bra', 'dea', 'gra', 'ina', 'phx', 'phy', 'plx', 'ply',
-            'stz', 'trb', 'tsb',
-            ),
-        /* 65816 instructions. */
-        6 => array(
-            'brl', 'cop', 'jml', 'jsl', 'mvn', 'mvp', 'pea', 'pei',
-            'per', 'phb', 'phd', 'phk', 'plb', 'pld', 'rep', 'rtl',
-            'sep', 'stp', 'swa', 'tad', 'tcd', 'tcs', 'tda',
-            'tdc', 'tsa', 'tsc', 'txy', 'tyx', 'wai', 'xba', 'xce',
-            ),
-        /* Deprecated directives (or yet to be implemented). */
-        7 => array(
-            '.global', '.check'
-            ),
-        ),
-    'SYMBOLS' => array(
-//        '[', ']', '(', ')', '{', '}',    // These are already defined by GeSHi as BRACKETS.
-        '*=', '#', '<', '>', '`', '=', '<', '>',
-        '!=', '>=', '<=', '+', '-', '*', '/', '//', '|',
-        '^', '&', '<<', '>>', '-', '~', '!',
-        ),
-    '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: #00f; font-weight:bold;',
-            2 => 'color: #00f; font-weight:bold;',
-            3 => 'color: #080; font-weight:bold;',
-            4 => 'color: #f00; font-weight:bold;',
-            5 => 'color: #80f; font-weight:bold;',
-            6 => 'color: #f08; font-weight:bold;',
-            7 => 'color: #a04; font-weight:bold; font-style: italic;',
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #999; font-style: italic;',
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #009; font-weight: bold;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #000;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #080;'
-            ),
-        'NUMBERS' => array(
-            GESHI_NUMBER_INT_BASIC          => 'color: #f00;',
-            GESHI_NUMBER_HEX_PREFIX_DOLLAR  => 'color: #f00;',
-            GESHI_NUMBER_BIN_PREFIX_PERCENT => 'color: #f00;',
-            ),
-        'METHODS' => array(
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #080;'
-            ),
-        'REGEXPS' => array(
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => '',
-        4 => '',
-        5 => '',
-        6 => '',
-        7 => '',
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(
-        ),
-    'NUMBERS' =>
-        GESHI_NUMBER_INT_BASIC |
-        GESHI_NUMBER_HEX_PREFIX_DOLLAR |
-        GESHI_NUMBER_BIN_PREFIX_PERCENT,
-        // AMCE Octal format not support and gets picked up as Decimal unfortunately.
-    'REGEXPS' => array(
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        ),
-    'TAB_WIDTH' => 8,
-    'PARSER_CONTROL' => array(
-        'NUMBERS' => array(
-            'PRECHECK_RX' => '/[\da-fA-F\.\$\%]/'
-            )
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/68000devpac.php b/wiki/vendor/geshi/geshi/src/geshi/68000devpac.php
deleted file mode 100644
index 96a9d08..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/68000devpac.php
+++ /dev/null
@@ -1,166 +0,0 @@
-<?php
-/*************************************************************************************
- * 68000devpac.php
- * -------
- * Author: Warren Willmey
- * Copyright: (c) 2010 Warren Willmey.
- * Release Version: 1.0.9.0
- * Date Started: 2010/06/09
- *
- * Motorola 68000 - HiSoft Devpac ST 2 Assembler language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2010/07/22
- *  -  First Release
- *
- * TODO (updated 2010/07/22)
- * -------------------------
- *
- *************************************************************************************
- *
- *     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' => 'Motorola 68000 - HiSoft Devpac ST 2 Assembler format',
-    'COMMENT_SINGLE' => array(1 => ';'),
-    'COMMENT_MULTI' => array(),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array("'", '"'),
-    'ESCAPE_CHAR' => '',
-    'KEYWORDS' => array(
-        /* Directives. */
-        1 => array(
-            'end', 'include', 'incbin', 'opt', 'even', 'cnop', 'dc.b', 'dc.w',
-            'dc.l', 'ds.b', 'ds.w', 'ds.l', 'dcb.b', 'dcb.w', 'dcb.l',
-            'fail', 'output', '__g2', 'rept', 'endr', 'list', 'nolist', 'plen',
-            'llen', 'ttl', 'subttl', 'spc', 'page', 'listchar', 'format',
-            'equ', 'equr', 'set', 'reg', 'rs.b', 'rs.w', 'rs.l', 'rsreset',
-            'rsset', '__rs', 'ifeq', 'ifne', 'ifgt', 'ifge', 'iflt', 'ifle', 'endc',
-            'ifd', 'ifnd', 'ifc', 'ifnc', 'elseif', 'iif', 'macro', 'endm', 'mexit',
-            'narg', '\@', 'section', 'text', 'data', 'bss', 'xdef', 'xref', 'org',
-            'offset', '__lk', 'comment',
-            ),
-        /* 68000 Opcodes. */
-        2 => array(
-            'abcd',    'add', 'adda', 'addi', 'addq', 'addx',  'and', 'andi',
-            'asl',     'asr',  'bcc', 'bchg', 'bclr',  'bcs',  'beq',  'bge',
-            'bgt',     'bhi',  'ble',  'bls',  'blt',  'bmi',  'bne',  'bpl',
-            'bra',    'bset',  'bsr', 'btst',  'bvc',  'bvs',  'chk',  'clr',
-            'cmp',    'cmpa', 'cmpi', 'cmpm', 'dbcc', 'dbcs', 'dbeq',  'dbf',
-            'dbge',   'dbgt', 'dbhi', 'dble', 'dbls', 'dblt', 'dbmi', 'dbne',
-            'dbpl',   'dbra',  'dbt', 'dbvc', 'dbvs', 'divs', 'divu',  'eor',
-            'eori',    'exg',  'ext','illegal','jmp',  'jsr',  'lea', 'link',
-            'lsl',     'lsr', 'move','movea','movem','movep','moveq', 'muls',
-            'mulu',   'nbcd',  'neg', 'negx',  'nop',  'not',   'or',  'ori',
-            'pea',   'reset',  'rol',  'ror', 'roxl', 'roxr',  'rte',  'rtr',
-            'rts',    'sbcd',  'scc',  'scs',  'seq',   'sf',  'sge',  'sgt',
-            'shi',     'sle',  'sls',  'slt',  'smi',  'sne',  'spl',   'st',
-            'stop',    'sub', 'suba', 'subi', 'subq', 'subx',  'svc',  'svs',
-            'swap',    'tas', 'trap','trapv',  'tst', 'unlk',
-            ),
-        /* oprand sizes. */
-        3 => array(
-            'b', 'w', 'l' , 's'
-            ),
-        /* 68000 Registers. */
-        4 => array(
-            'd0', 'd1', 'd2', 'd3', 'd4', 'd5', 'd6', 'd7',
-            'a0', 'a1', 'a2', 'a3', 'a4', 'a5', 'a6', 'a7', 'sp', 'usp', 'ssp',
-            'pc', 'ccr', 'sr',
-            ),
-        ),
-    'SYMBOLS' => array(
-//        '[', ']', '(', ')', '{', '}',    // These are already defined by GeSHi as BRACKETS.
-        '+', '-', '~', '<<', '>>', '&',
-        '!', '^', '*', '/', '=', '<', '>',
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false,
-        2 => false,
-        3 => false,
-        4 => false,
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #f08; font-weight:bold;',
-            2 => 'color: #00f; font-weight:bold;',
-            3 => 'color: #00f; font-weight:bold;',
-            4 => 'color: #080; font-weight:bold;',
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #999; font-style: italic;',
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #009; font-weight: bold;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #000;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #080;'
-            ),
-        'NUMBERS' => array(
-            GESHI_NUMBER_INT_BASIC          => 'color: #f00;',
-            GESHI_NUMBER_HEX_PREFIX_DOLLAR  => 'color: #f00;',
-            GESHI_NUMBER_BIN_PREFIX_PERCENT => 'color: #f00;',
-            GESHI_NUMBER_OCT_PREFIX_AT      => 'color: #f00;',
-            ),
-        'METHODS' => array(
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #080;'
-            ),
-        'REGEXPS' => array(
-            0 => 'color: #933;'
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => '',
-        4 => '',
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(
-        ),
-    'NUMBERS' =>
-        GESHI_NUMBER_INT_BASIC |
-        GESHI_NUMBER_HEX_PREFIX_DOLLAR |
-        GESHI_NUMBER_OCT_PREFIX_AT |
-        GESHI_NUMBER_BIN_PREFIX_PERCENT,
-    'REGEXPS' => array(
-        //Labels may end in a colon.
-        0 => '(?<=\A\x20|\r|\n|^)[\._a-zA-Z][\._a-zA-Z0-9]*[\:]?[\s]'
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        ),
-    'TAB_WIDTH' => 8,
-    'PARSER_CONTROL' => array(
-        'NUMBERS' => array(
-            'PRECHECK_RX' => '/[\da-fA-F\.\$\%\@]/'
-            )
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/abap.php b/wiki/vendor/geshi/geshi/src/geshi/abap.php
deleted file mode 100644
index d9df3ea..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/abap.php
+++ /dev/null
@@ -1,1407 +0,0 @@
-<?php
-/*************************************************************************************
- * abap.php
- * --------
- * Author: Andres Picazo (andres@andrespicazo.com)
- * Contributors:
- *  - Sandra Rossi (sandra.rossi@gmail.com)
- *  - Jacob Laursen (jlu@kmd.dk)
- * Copyright: (c) 2007 Andres Picazo
- * Release Version: 1.0.9.0
- * Date Started: 2004/06/04
- *
- * ABAP language file for GeSHi.
- *
- * Reference abap language documentation (abap 7.1) : http://help.sap.com/abapdocu/en/ABENABAP_INDEX.htm
- *
- * ABAP syntax is highly complex, several problems could not be addressed, see TODO below if you dare ;-)
- * Be aware that in ABAP language, keywords may be composed of several tokens,
- *    separated by one or more spaces or carriage returns
- *    (for example CONCATENATE 'hello' 'world' INTO string SEPARATED  BY ' ')
- *    it's why we must decode them with REGEXPS. As there are many keywords with several tokens,
- *    I had to create a separate section in the code to simplify the reading.
- * Be aware that some words may be highlighted several times like for "ref to data", which is first
- *    highlighted for "ref to data", then secondly for "ref to". It is very important to
- *    position "ref to" after "ref to data" otherwise "data" wouldn't be highlighted because
- *    of the previous highlight.
- * Control, declarative and other statements are assigned URLs to sap documentation website:
- *    http://help.sap.com/abapdocu/en/ABAP<statement_name>.htm
- *
- * CHANGES
- * -------
- * 2009/02/25 (1.0.8.3)
- *   -  Some more rework of the language file
- * 2009/01/04 (1.0.8.2)
- *   -  Major Release, more than 1000 statements and keywords added = whole abap 7.1 (Sandra Rossi)
- * 2007/06/27 (1.0.0)
- *   -  First Release
- *
- * TODO
- * ----
- *   - in DATA data TYPE type, 2nd "data" and 2nd "type" are highlighted with data
- *     style, but should be ignored. Same problem for all words!!! This is quite impossible to
- *     solve it as we should define syntaxes of all statements (huge effort!) and use a lex
- *     or something like that instead of regexp I guess.
- *   - Some words are considered as being statement names (report, tables, etc.) though they
- *     are used as keyword in some statements. For example: FORM xxxx TABLES itab. It was
- *     arbitrary decided to define them as statement instead of keyword, because it may be
- *     useful to have the URL to SAP help for some of them.
- *   - if a comment is between 2 words of a keyword (for example SEPARATED "comment \n BY),
- *     it is not considered as a keyword, but it should!
- *   - for statements like "READ DATASET", GeSHi does not allow to set URLs because these
- *     statements are determined by REGEXPS. For "READ DATASET", the URL should be
- *     ABAPREAD_DATASET.htm. If a technical solution is found, be careful : URLs
- *     are sometimes not valid because the URL does not exist. For example, for "AT NEW"
- *     statement, the URL should be ABAPAT_ITAB.htm (not ABAPAT_NEW.htm).
- *     There are many other exceptions.
- *     Note: for adding this functionality within your php program, you can execute this code:
- *       function add_urls_to_multi_tokens( $matches ) {
- *           $url = preg_replace( "/[ \n]+/" , "_" , $matches[3] );
- *           if( $url == $matches[3] ) return $matches[0] ;
- *           else return $matches[1]."<a href=\"http://help.sap.com/abapdocu/en/ABAP".strtoupper($url).".htm\">".$matches[3]."</a>".$matches[4];
- *           }
- *       $html = $geshi->parse_code();
- *       $html = preg_replace_callback( "£(zzz:(control|statement|data);\">)(.+?)(</span>)£s", "add_urls_to_multi_tokens", $html );
- *       echo $html;
- *   - Numbers followed by a dot terminating the statement are not properly recognized
- *
- *************************************************************************************
- *
- *     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' => 'ABAP',
-    'COMMENT_SINGLE' => array(
-        1 => '"'
-        ),
-    'COMMENT_MULTI' => array(),
-    'COMMENT_REGEXP' => array(
-        // lines beginning with star at 1st position are comments
-        // (star anywhere else is not a comment, especially be careful with
-        // "assign dref->* to <fs>" statement)
-        2 => '/^\*.*?$/m'
-        ),
-    'CASE_KEYWORDS' => 0,
-    'QUOTEMARKS' => array(
-        1 => "'",
-        2 => "`"
-        ),
-    'ESCAPE_CHAR' => '',
-
-    'KEYWORDS' => array(
-        //***********************************************
-        // Section 2 : process sequences of several tokens
-        //***********************************************
-
-        7 => array(
-            'at new',
-            'at end of',
-            'at first',
-            'at last',
-            'loop at',
-            'loop at screen',
-            ),
-
-        8 => array(
-            'private section',
-            'protected section',
-            'public section',
-            'at line-selection',
-            'at selection-screen',
-            'at user-command',
-            'assign component',
-            'assign table field',
-            'call badi',
-            'call customer-function',
-            'call customer subscreen',
-            'call dialog',
-            'call function',
-            'call method',
-            'call screen',
-            'call selection-screen',
-            'call transaction',
-            'call transformation',
-            'close cursor',
-            'close dataset',
-            'commit work',
-            'convert date',
-            'convert text',
-            'convert time stamp',
-            'create data',
-            'create object',
-            'delete dataset',
-            'delete from',
-            'describe distance',
-            'describe field',
-            'describe list',
-            'describe table',
-            'exec sql',
-            'exit from sql',
-            'exit from step-loop',
-            'export dynpro',
-            'export nametab',
-            'free memory',
-            'generate subroutine-pool',
-            'get badi',
-            'get bit',
-            'get cursor',
-            'get dataset',
-            'get locale',
-            'get parameter',
-            'get pf-status',
-            'get property',
-            'get reference',
-            'get run time',
-            'get time',
-            'get time stamp',
-            'import directory',
-            'insert report',
-            'insert text-pool',
-            'leave list-processing',
-            'leave program',
-            'leave screen',
-            'leave to list-processing',
-            'leave to transaction',
-            'modify line',
-            'modify screen',
-            'move percentage',
-            'open cursor',
-            'open dataset',
-            'raise event',
-            'raise exception',
-            'read dataset',
-            'read line',
-            'read report',
-            'read table',
-            'read textpool',
-            'receive results from function',
-            'refresh control',
-            'rollback work',
-            'set bit',
-            'set blank lines',
-            'set country',
-            'set cursor',
-            'set dataset',
-            'set extended check',
-            'set handler',
-            'set hold data',
-            'set language',
-            'set left scroll-boundary',
-            'set locale',
-            'set margin',
-            'set parameter',
-            'set pf-status',
-            'set property',
-            'set run time analyzer',
-            'set run time clock',
-            'set screen',
-            'set titlebar',
-            'set update task',
-            'set user-command',
-            'suppress dialog',
-            'truncate dataset',
-            'wait until',
-            'wait up to',
-            ),
-
-        9 => array(
-            'accepting duplicate keys',
-            'accepting padding',
-            'accepting truncation',
-            'according to',
-            'actual length',
-            'adjacent duplicates',
-            'after input',
-            'all blob columns',
-            'all clob columns',
-            'all fields',
-            'all methods',
-            'all other columns',
-            'and mark',
-            'and return to screen',
-            'and return',
-            'and skip first screen',
-            'and wait',
-            'any table',
-            'appendage type',
-            'archive mode',
-            'archiving parameters',
-            'area handle',
-            'as checkbox',
-            'as icon',
-            'as line',
-            'as listbox',
-            'as person table',
-            'as search patterns',
-            'as separate unit',
-            'as subscreen',
-            'as symbol',
-            'as text',
-            'as window',
-            'at cursor-selection',
-            'at exit-command',
-            'at next application statement',
-            'at position',
-
-            'backup into',
-            'before output',
-            'before unwind',
-            'begin of block',
-            'begin of common part',
-            'begin of line',
-            'begin of screen',
-            'begin of tabbed block',
-            'begin of version',
-            'begin of',
-            'big endian',
-            'binary mode',
-            'binary search',
-            'by kernel module',
-            'bypassing buffer',
-
-            'client specified',
-            'code page',
-            'code page hint',
-            'code page into',
-            'color black',
-            'color blue',
-            'color green',
-            'color pink',
-            'color red',
-            'color yellow',
-            'compression off',
-            'compression on',
-            'connect to',
-            'corresponding fields of table',
-            'corresponding fields of',
-            'cover page',
-            'cover text',
-            'create package',
-            'create private',
-            'create protected',
-            'create public',
-            'current position',
-
-            'data buffer',
-            'data values',
-            'dataset expiration',
-            'daylight saving time',
-            'default key',
-            'default program',
-            'default screen',
-            'defining database',
-            'deleting leading',
-            'deleting trailing',
-            'directory entry',
-            'display like',
-            'display offset',
-            'during line-selection',
-            'dynamic selections',
-
-            'edit mask',
-            'end of block',
-            'end of common part',
-            'end of file',
-            'end of line',
-            'end of screen',
-            'end of tabbed block',
-            'end of version',
-            'end of',
-            'endian into',
-            'ending at',
-            'enhancement options into',
-            'enhancement into',
-            'environment time format',
-            'execute procedure',
-            'exporting list to memory',
-            'extension type',
-
-            'field format',
-            'field selection',
-            'field value into',
-            'final methods',
-            'first occurrence of',
-            'fixed-point arithmetic',
-            'for all entries',
-            'for all instances',
-            'for appending',
-            'for columns',
-            'for event of',
-            'for field',
-            'for high',
-            'for input',
-            'for lines',
-            'for low',
-            'for node',
-            'for output',
-            'for select',
-            'for table',
-            'for testing',
-            'for update',
-            'for user',
-            'frame entry',
-            'frame program from',
-            'from code page',
-            'from context',
-            'from database',
-            'from logfile id',
-            'from number format',
-            'from screen',
-            'from table',
-            'function key',
-
-            'get connection',
-            'global friends',
-            'group by',
-
-            'hashed table of',
-            'hashed table',
-
-            'if found',
-            'ignoring case',
-            'ignoring conversion errors',
-            'ignoring structure boundaries',
-            'implementations from',
-            'in background',
-            'in background task',
-            'in background unit',
-            'in binary mode',
-            'in byte mode',
-            'in char-to-hex mode',
-            'in character mode',
-            'in group',
-            'in legacy binary mode',
-            'in legacy text mode',
-            'in program',
-            'in remote task',
-            'in text mode',
-            'in table',
-            'in update task',
-            'include bound',
-            'include into',
-            'include program from',
-            'include structure',
-            'include type',
-            'including gaps',
-            'index table',
-            'inheriting from',
-            'init destination',
-            'initial line of',
-            'initial line',
-            'initial size',
-            'internal table',
-            'into sortable code',
-
-            'keep in spool',
-            'keeping directory entry',
-            'keeping logical unit of work',
-            'keeping task',
-            'keywords from',
-
-            'left margin',
-            'left outer',
-            'levels into',
-            'line format',
-            'line into',
-            'line of',
-            'line page',
-            'line value from',
-            'line value into',
-            'lines of',
-            'list authority',
-            'list dataset',
-            'list name',
-            'little endian',
-            'lob handle for',
-            'local friends',
-            'locator for',
-            'lower case',
-
-            'main table field',
-            'match count',
-            'match length',
-            'match line',
-            'match offset',
-            'matchcode object',
-            'maximum length',
-            'maximum width into',
-            'memory id',
-            'message into',
-            'messages into',
-            'modif id',
-
-            'nesting level',
-            'new list identification',
-            'next cursor',
-            'no database selection',
-            'no dialog',
-            'no end of line',
-            'no fields',
-            'no flush',
-            'no intervals',
-            'no intervals off',
-            'no standard page heading',
-            'no-extension off',
-            'non-unique key',
-            'non-unique sorted key',
-            'not at end of mode',
-            'number of lines',
-            'number of pages',
-
-            'object key',
-            'obligatory off',
-            'of current page',
-            'of page',
-            'of program',
-            'offset into',
-            'on block',
-            'on commit',
-            'on end of task',
-            'on end of',
-            'on exit-command',
-            'on help-request for',
-            'on radiobutton group',
-            'on rollback',
-            'on value-request for',
-            'open for package',
-            'option class-coding',
-            'option class',
-            'option coding',
-            'option expand',
-            'option syncpoints',
-            'options from',
-            'order by',
-            'overflow into',
-
-            'package section',
-            'package size',
-            'preferred parameter',
-            'preserving identifier escaping',
-            'primary key',
-            'print off',
-            'print on',
-            'program from',
-            'program type',
-
-            'radiobutton groups',
-            'radiobutton group',
-            'range of',
-            'reader for',
-            'receive buffer',
-            'reduced functionality',
-            'ref to data',
-            'ref to object',
-            'ref to',
-
-            'reference into',
-            'renaming with suffix',
-            'replacement character',
-            'replacement count',
-            'replacement length',
-            'replacement line',
-            'replacement offset',
-            'respecting blanks',
-            'respecting case',
-            'result into',
-            'risk level',
-
-            'sap cover page',
-            'search fkeq',
-            'search fkge',
-            'search gkeq',
-            'search gkge',
-            'section of',
-            'send buffer',
-            'separated by',
-            'shared buffer',
-            'shared memory',
-            'shared memory enabled',
-            'skipping byte-order mark',
-            'sorted by',
-            'sorted table of',
-            'sorted table',
-            'spool parameters',
-            'standard table of',
-            'standard table',
-            'starting at',
-            'starting new task',
-            'statements into',
-            'structure default',
-            'structures into',
-
-            'table field',
-            'table of',
-            'text mode',
-            'time stamp',
-            'time zone',
-            'to code page',
-            'to column',
-            'to context',
-            'to first page',
-            'to last page',
-            'to last line',
-            'to line',
-            'to lower case',
-            'to number format',
-            'to page',
-            'to sap spool',
-            'to upper case',
-            'tokens into',
-            'transporting no fields',
-            'type tableview',
-            'type tabstrip',
-
-            'unicode enabling',
-            'up to',
-            'upper case',
-            'using edit mask',
-            'using key',
-            'using no edit mask',
-            'using screen',
-            'using selection-screen',
-            'using selection-set',
-            'using selection-sets of program',
-
-            'valid between',
-            'valid from',
-            'value check',
-            'via job',
-            'via selection-screen',
-            'visible length',
-
-            'whenever found',
-            'with analysis',
-            'with byte-order mark',
-            'with comments',
-            'with current switchstates',
-            'with explicit enhancements',
-            'with frame',
-            'with free selections',
-            'with further secondary keys',
-            'with header line',
-            'with hold',
-            'with implicit enhancements',
-            'with inactive enhancements',
-            'with includes',
-            'with key',
-            'with linefeed',
-            'with list tokenization',
-            'with native linefeed',
-            'with non-unique key',
-            'with null',
-            'with pragmas',
-            'with precompiled headers',
-            'with selection-table',
-            'with smart linefeed',
-            'with table key',
-            'with test code',
-            'with type-pools',
-            'with unique key',
-            'with unix linefeed',
-            'with windows linefeed',
-            'without further secondary keys',
-            'without selection-screen',
-            'without spool dynpro',
-            'without trmac',
-            'word into',
-            'writer for'
-            ),
-
-        //**********************************************************
-        // Other abap statements
-        //**********************************************************
-        3 => array(
-            'add',
-            'add-corresponding',
-            'aliases',
-            'append',
-            'assign',
-            'at',
-            'authority-check',
-
-            'break-point',
-
-            'clear',
-            'collect',
-            'compute',
-            'concatenate',
-            'condense',
-            'class',
-            'class-events',
-            'class-methods',
-            'class-pool',
-
-            'define',
-            'delete',
-            'demand',
-            'detail',
-            'divide',
-            'divide-corresponding',
-
-            'editor-call',
-            'end-of-file',
-            'end-enhancement-section',
-            'end-of-definition',
-            'end-of-page',
-            'end-of-selection',
-            'endclass',
-            'endenhancement',
-            'endexec',
-            'endform',
-            'endfunction',
-            'endinterface',
-            'endmethod',
-            'endmodule',
-            'endon',
-            'endprovide',
-            'endselect',
-            'enhancement',
-            'enhancement-point',
-            'enhancement-section',
-            'export',
-            'extract',
-            'events',
-
-            'fetch',
-            'field-groups',
-            'find',
-            'format',
-            'form',
-            'free',
-            'function-pool',
-            'function',
-
-            'get',
-
-            'hide',
-
-            'import',
-            'infotypes',
-            'input',
-            'insert',
-            'include',
-            'initialization',
-            'interface',
-            'interface-pool',
-            'interfaces',
-
-            'leave',
-            'load-of-program',
-            'log-point',
-
-            'maximum',
-            'message',
-            'methods',
-            'method',
-            'minimum',
-            'modify',
-            'move',
-            'move-corresponding',
-            'multiply',
-            'multiply-corresponding',
-
-            'new-line',
-            'new-page',
-            'new-section',
-
-            'overlay',
-
-            'pack',
-            'perform',
-            'position',
-            'print-control',
-            'program',
-            'provide',
-            'put',
-
-            'raise',
-            'refresh',
-            'reject',
-            'replace',
-            'report',
-            'reserve',
-
-            'scroll',
-            'search',
-            'select',
-            'selection-screen',
-            'shift',
-            'skip',
-            'sort',
-            'split',
-            'start-of-selection',
-            'submit',
-            'subtract',
-            'subtract-corresponding',
-            'sum',
-            'summary',
-            'summing',
-            'supply',
-            'syntax-check',
-
-            'top-of-page',
-            'transfer',
-            'translate',
-            'type-pool',
-
-            'uline',
-            'unpack',
-            'update',
-
-            'window',
-            'write'
-
-            ),
-
-        //**********************************************************
-        // keywords
-        //**********************************************************
-
-        4 => array(
-            'abbreviated',
-            'abstract',
-            'accept',
-            'acos',
-            'activation',
-            'alias',
-            'align',
-            'all',
-            'allocate',
-            'and',
-            'assigned',
-            'any',
-            'appending',
-            'area',
-            'as',
-            'ascending',
-            'asin',
-            'assigning',
-            'atan',
-            'attributes',
-            'avg',
-
-            'backward',
-            'between',
-            'bit-and',
-            'bit-not',
-            'bit-or',
-            'bit-set',
-            'bit-xor',
-            'boolc',
-            'boolx',
-            'bound',
-            'bt',
-            'blocks',
-            'bounds',
-            'boxed',
-            'by',
-            'byte-ca',
-            'byte-cn',
-            'byte-co',
-            'byte-cs',
-            'byte-na',
-            'byte-ns',
-
-            'ca',
-            'calling',
-            'casting',
-            'ceil',
-            'center',
-            'centered',
-            'changing',
-            'char_off',
-            'charlen',
-            'circular',
-            'class_constructor',
-            'client',
-            'clike',
-            'close',
-            'cmax',
-            'cmin',
-            'cn',
-            'cnt',
-            'co',
-            'col_background',
-            'col_group',
-            'col_heading',
-            'col_key',
-            'col_negative',
-            'col_normal',
-            'col_positive',
-            'col_total',
-            'color',
-            'column',
-            'comment',
-            'comparing',
-            'components',
-            'condition',
-            'context',
-            'copies',
-            'count',
-            'country',
-            'cpi',
-            'creating',
-            'critical',
-            'concat_lines_of',
-            'cos',
-            'cosh',
-            'count_any_not_of',
-            'count_any_of',
-            'cp',
-            'cs',
-            'csequence',
-            'currency',
-            'current',
-            'cx_static_check',
-            'cx_root',
-            'cx_dynamic_check',
-
-            'dangerous',
-            'database',
-            'datainfo',
-            'date',
-            'dbmaxlen',
-            'dd/mm/yy',
-            'dd/mm/yyyy',
-            'ddmmyy',
-            'deallocate',
-            'decfloat',
-            'decfloat16',
-            'decfloat34',
-            'decimals',
-            'default',
-            'deferred',
-            'definition',
-            'department',
-            'descending',
-            'destination',
-            'disconnect',
-            'display-mode',
-            'distance',
-            'distinct',
-            'div',
-            'dummy',
-
-            'encoding',
-            'end-lines',
-            'engineering',
-            'environment',
-            'eq',
-            'equiv',
-            'error_message',
-            'errormessage',
-            'escape',
-            'exact',
-            'exception-table',
-            'exceptions',
-            'exclude',
-            'excluding',
-            'exists',
-            'exp',
-            'exponent',
-            'exporting',
-            'extended_monetary',
-
-            'field',
-            'filter-table',
-            'filters',
-            'filter',
-            'final',
-            'find_any_not_of',
-            'find_any_of',
-            'find_end',
-            'floor',
-            'first-line',
-            'font',
-            'forward',
-            'for',
-            'frac',
-            'from_mixed',
-            'friends',
-            'from',
-
-            'giving',
-            'ge',
-            'gt',
-
-            'handle',
-            'harmless',
-            'having',
-            'head-lines',
-            'help-id',
-            'help-request',
-            'high',
-            'hold',
-            'hotspot',
-
-            'id',
-            'ids',
-            'immediately',
-            'implementation',
-            'importing',
-            'in',
-            'initial',
-            'incl',
-            'including',
-            'increment',
-            'index',
-            'index-line',
-            'inner',
-            'inout',
-            'intensified',
-            'into',
-            'inverse',
-            'is',
-            'iso',
-
-            'join',
-
-            'key',
-            'kind',
-
-            'log10',
-            'language',
-            'late',
-            'layout',
-            'le',
-            'lt',
-            'left-justified',
-            'leftplus',
-            'leftspace',
-            'left',
-            'length',
-            'level',
-            'like',
-            'line-count',
-            'line-size',
-            'lines',
-            'line',
-            'load',
-            'long',
-            'lower',
-            'low',
-            'lpi',
-
-            'matches',
-            'match',
-            'mail',
-            'major-id',
-            'max',
-            'medium',
-            'memory',
-            'message-id',
-            'module',
-            'minor-id',
-            'min',
-            'mm/dd/yyyy',
-            'mm/dd/yy',
-            'mmddyy',
-            'mode',
-            'modifier',
-            'mod',
-            'monetary',
-
-            'name',
-            'nb',
-            'ne',
-            'next',
-            'no-display',
-            'no-extension',
-            'no-gap',
-            'no-gaps',
-            'no-grouping',
-            'no-heading',
-            'no-scrolling',
-            'no-sign',
-            'no-title',
-            'no-topofpage',
-            'no-zero',
-            'nodes',
-            'non-unicode',
-            'no',
-            'number',
-            'nmax',
-            'nmin',
-            'not',
-            'null',
-            'numeric',
-            'numofchar',
-
-            'o',
-            'objects',
-            'obligatory',
-            'occurs',
-            'offset',
-            'off',
-            'of',
-            'only',
-            'open',
-            'option',
-            'optional',
-            'options',
-            'output-length',
-            'output',
-            'out',
-            'on change of',
-            'or',
-            'others',
-
-            'pad',
-            'page',
-            'pages',
-            'parameter-table',
-            'part',
-            'performing',
-            'pos_high',
-            'pos_low',
-            'priority',
-            'public',
-            'pushbutton',
-
-            'queue-only',
-            'quickinfo',
-
-            'raising',
-            'range',
-            'read-only',
-            'received',
-            'receiver',
-            'receiving',
-            'redefinition',
-            'reference',
-            'regex',
-            'replacing',
-            'reset',
-            'responsible',
-            'result',
-            'results',
-            'resumable',
-            'returncode',
-            'returning',
-            'right',
-            'right-specified',
-            'rightplus',
-            'rightspace',
-            'round',
-            'rows',
-            'repeat',
-            'requested',
-            'rescale',
-            'reverse',
-
-            'scale_preserving',
-            'scale_preserving_scientific',
-            'scientific',
-            'scientific_with_leading_zero',
-            'screen',
-            'scrolling',
-            'seconds',
-            'segment',
-            'shift_left',
-            'shift_right',
-            'sign',
-            'simple',
-            'sin',
-            'sinh',
-            'short',
-            'shortdump-id',
-            'sign_as_postfix',
-            'single',
-            'size',
-            'some',
-            'source',
-            'space',
-            'spots',
-            'stable',
-            'state',
-            'static',
-            'statusinfo',
-            'sqrt',
-            'string',
-            'strlen',
-            'structure',
-            'style',
-            'subkey',
-            'submatches',
-            'substring',
-            'substring_after',
-            'substring_before',
-            'substring_from',
-            'substring_to',
-            'super',
-            'supplied',
-            'switch',
-
-            'tan',
-            'tanh',
-            'table_line',
-            'table',
-            'tab',
-            'then',
-            'timestamp',
-            'times',
-            'time',
-            'timezone',
-            'title-lines',
-            'title',
-            'top-lines',
-            'to',
-            'to_lower',
-            'to_mixed',
-            'to_upper',
-            'trace-file',
-            'trace-table',
-            'transporting',
-            'trunc',
-            'type',
-
-            'under',
-            'unique',
-            'unit',
-            'user-command',
-            'using',
-            'utf-8',
-
-            'valid',
-            'value',
-            'value-request',
-            'values',
-            'vary',
-            'varying',
-            'version',
-
-            'warning',
-            'where',
-            'width',
-            'with',
-            'word',
-            'with-heading',
-            'with-title',
-
-            'xsequence',
-            'xstring',
-            'xstrlen',
-
-            'yes',
-            'yymmdd',
-
-            'z',
-            'zero'
-
-            ),
-
-        //**********************************************************
-        // screen statements
-        //**********************************************************
-
-        5 => array(
-            'call subscreen',
-            'chain',
-            'endchain',
-            'on chain-input',
-            'on chain-request',
-            'on help-request',
-            'on input',
-            'on request',
-            'on value-request',
-            'process'
-            ),
-
-        //**********************************************************
-        // internal statements
-        //**********************************************************
-
-        6 => array(
-            'generate dynpro',
-            'generate report',
-            'import dynpro',
-            'import nametab',
-            'include methods',
-            'load report',
-            'scan abap-source',
-            'scan and check abap-source',
-            'syntax-check for dynpro',
-            'syntax-check for program',
-            'syntax-trace',
-            'system-call',
-            'system-exit',
-            'verification-message'
-            ),
-
-        //**********************************************************
-        // Control statements
-        //**********************************************************
-
-        1 => array(
-            'assert',
-            'case',
-            'catch',
-            'check',
-            'cleanup',
-            'continue',
-            'do',
-            'else',
-            'elseif',
-            'endat',
-            'endcase',
-            'endcatch',
-            'endif',
-            'enddo',
-            'endloop',
-            'endtry',
-            'endwhile',
-            'exit',
-            'if',
-            'loop',
-            'resume',
-            'retry',
-            'return',
-            'stop',
-            'try',
-            'when',
-            'while'
-
-            ),
-
-        //**********************************************************
-        // variable declaration statements
-        //**********************************************************
-
-        2 => array(
-            'class-data',
-            'controls',
-            'constants',
-            'data',
-            'field-symbols',
-            'fields',
-            'local',
-            'parameters',
-            'ranges',
-            'select-options',
-            'statics',
-            'tables',
-            'type-pools',
-            'types'
-            )
-        ),
-    'SYMBOLS' => array(
-        0 => array(
-            '->*', '->', '=>',
-            '(', ')', '{', '}', '[', ']', '+', '-', '*', '/', '!', '%', '^', '&', ':', ',', '.'
-            ),
-        1 => array(
-            '>=', '<=', '<', '>', '='
-            ),
-        2 => array(
-            '?='
-            )
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false,
-        2 => false,
-        3 => false,
-        4 => false,
-        5 => false,
-        6 => false,
-        7 => false,
-        8 => false,
-        9 => false,
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            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;',
-            2 => 'color: #339933;',
-            'MULTI' => 'color: #808080; font-style: italic;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #000099; font-weight: bold;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #808080;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #4da619;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #3399ff;'
-            ),
-        'METHODS' => array(
-            1 => 'color: #202020;',
-            2 => 'color: #202020;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #808080;',
-            1 => 'color: #800080;',
-            2 => 'color: #0000ff;'
-            ),
-        'REGEXPS' => array(
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'URLS' => array(
-        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 => '',
-        7 => '',
-        8 => '',
-        9 => ''
-        ),
-    'OOLANG' => true,
-    'OBJECT_SPLITTERS' => array(
-        1 => '-&gt;',
-        2 => '=&gt;'
-        ),
-    'REGEXPS' => array(
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        ),
-    'PARSER_CONTROL' => array(
-        'KEYWORDS' => array(
-            7 => array(
-                'SPACE_AS_WHITESPACE' => true
-                ),
-            8 => array(
-                'SPACE_AS_WHITESPACE' => true
-                ),
-            9 => array(
-                'SPACE_AS_WHITESPACE' => true
-                )
-            )
-        ),
-    'TAB_WIDTH' => 4
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/actionscript.php b/wiki/vendor/geshi/geshi/src/geshi/actionscript.php
deleted file mode 100644
index bbafbdf..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/actionscript.php
+++ /dev/null
@@ -1,195 +0,0 @@
-<?php
-/*************************************************************************************
- * actionscript.php
- * ----------------
- * Author: Steffen Krause (Steffen.krause@muse.de)
- * Copyright: (c) 2004 Steffen Krause, Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.9.0
- * Date Started: 2004/06/20
- *
- * Actionscript language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2004/11/27 (1.0.1)
- *  -  Added support for multiple object splitters
- * 2004/10/27 (1.0.0)
- *  -  First Release
- *
- * TODO (updated 2004/11/27)
- * -------------------------
- *
- *************************************************************************************
- *
- *     This file is part of GeSHi.
- *
- *   GeSHi is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   GeSHi is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with GeSHi; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- ************************************************************************************/
-
-$language_data = array (
-    'LANG_NAME' => 'ActionScript',
-    'COMMENT_SINGLE' => array(1 => '//', 2 => '#'),
-    'COMMENT_MULTI' => array('/*' => '*/'),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array("'", '"'),
-    'ESCAPE_CHAR' => '\\',
-    'KEYWORDS' => array(
-        1 => array(
-            '#include', 'for', 'foreach', 'each', 'if', 'elseif', 'else', 'while', 'do', 'dowhile',
-            'endwhile', 'endif', 'switch', 'case', 'endswitch', 'return', 'break', 'continue', 'in'
-            ),
-        2 => array(
-            'null', 'false', 'true', 'var',
-            'default', 'function', 'class',
-            'new', '_global'
-            ),
-        3 => array(
-            '#endinitclip', '#initclip', '__proto__', '_accProps', '_alpha', '_currentframe',
-            '_droptarget', '_focusrect', '_framesloaded', '_height', '_highquality', '_lockroot',
-            '_name', '_parent', '_quality', '_root', '_rotation', '_soundbuftime', '_target', '_totalframes',
-            '_url', '_visible', '_width', '_x', '_xmouse', '_xscale', '_y', '_ymouse', '_yscale', 'abs',
-            'Accessibility', 'acos', 'activityLevel', 'add', 'addListener', 'addPage', 'addProperty',
-            'addRequestHeader', 'align', 'allowDomain', 'allowInsecureDomain', 'and', 'appendChild',
-            'apply', 'Arguments', 'Array', 'asfunction', 'asin', 'atan', 'atan2', 'attachAudio', 'attachMovie',
-            'attachSound', 'attachVideo', 'attributes', 'autosize', 'avHardwareDisable', 'background',
-            'backgroundColor', 'BACKSPACE', 'bandwidth', 'beginFill', 'beginGradientFill', 'blockIndent',
-            'bold', 'Boolean', 'border', 'borderColor', 'bottomScroll', 'bufferLength', 'bufferTime',
-            'builtInItems', 'bullet', 'Button', 'bytesLoaded', 'bytesTotal', 'call', 'callee', 'caller',
-            'Camera', 'capabilities', 'CAPSLOCK', 'caption', 'catch', 'ceil', 'charAt', 'charCodeAt',
-            'childNodes', 'chr', 'clear', 'clearInterval', 'cloneNode', 'close', 'Color', 'concat',
-            'connect', 'condenseWhite', 'constructor', 'contentType', 'ContextMenu', 'ContextMenuItem',
-            'CONTROL', 'copy', 'cos', 'createElement', 'createEmptyMovieClip', 'createTextField',
-            'createTextNode', 'currentFps', 'curveTo', 'CustomActions', 'customItems', 'data', 'Date',
-            'deblocking', 'delete', 'DELETEKEY', 'docTypeDecl', 'domain', 'DOWN',
-            'duplicateMovieClip', 'duration', 'dynamic', 'E', 'embedFonts', 'enabled',
-            'END', 'endFill', 'ENTER', 'eq', 'Error', 'ESCAPE(Konstante)', 'escape(Funktion)', 'eval',
-            'exactSettings', 'exp', 'extends', 'finally', 'findText', 'firstChild', 'floor',
-            'flush', 'focusEnabled', 'font', 'fps', 'fromCharCode', 'fscommand',
-            'gain', 'ge', 'get', 'getAscii', 'getBeginIndex', 'getBounds', 'getBytesLoaded', 'getBytesTotal',
-            'getCaretIndex', 'getCode', 'getCount', 'getDate', 'getDay', 'getDepth', 'getEndIndex', 'getFocus',
-            'getFontList', 'getFullYear', 'getHours', 'getInstanceAtDepth', 'getLocal', 'getMilliseconds',
-            'getMinutes', 'getMonth', 'getNewTextFormat', 'getNextHighestDepth', 'getPan', 'getProgress',
-            'getProperty', 'getRGB', 'getSeconds', 'getSelected', 'getSelectedText', 'getSize', 'getStyle',
-            'getStyleNames', 'getSWFVersion', 'getText', 'getTextExtent', 'getTextFormat', 'getTextSnapshot',
-            'getTime', 'getTimer', 'getTimezoneOffset', 'getTransform', 'getURL', 'getUTCDate', 'getUTCDay',
-            'getUTCFullYear', 'getUTCHours', 'getUTCMilliseconds', 'getUTCMinutes', 'getUTCMonth', 'getUTCSeconds',
-            'getVersion', 'getVolume', 'getYear', 'globalToLocal', 'goto', 'gotoAndPlay', 'gotoAndStop',
-            'hasAccessibility', 'hasAudio', 'hasAudioEncoder', 'hasChildNodes', 'hasEmbeddedVideo', 'hasMP3',
-            'hasPrinting', 'hasScreenBroadcast', 'hasScreenPlayback', 'hasStreamingAudio', 'hasStreamingVideo',
-            'hasVideoEncoder', 'height', 'hide', 'hideBuiltInItems', 'hitArea', 'hitTest', 'hitTestTextNearPos',
-            'HOME', 'hscroll', 'html', 'htmlText', 'ID3', 'ifFrameLoaded', 'ignoreWhite', 'implements',
-            'import', 'indent', 'index', 'indexOf', 'Infinity', '-Infinity', 'INSERT', 'insertBefore', 'install',
-            'instanceof', 'int', 'interface', 'isActive', 'isDebugger', 'isDown', 'isFinite', 'isNaN', 'isToggled',
-            'italic', 'join', 'Key', 'language', 'lastChild', 'lastIndexOf', 'le', 'leading', 'LEFT', 'leftMargin',
-            'length', 'level', 'lineStyle', 'lineTo', 'list', 'LN10', 'LN2', 'load', 'loadClip', 'loaded', 'loadMovie',
-            'loadMovieNum', 'loadSound', 'loadVariables', 'loadVariablesNum', 'LoadVars', 'LocalConnection',
-            'localFileReadDisable', 'localToGlobal', 'log', 'LOG10E', 'LOG2E', 'manufacturer', 'Math', 'max',
-            'MAX_VALUE', 'maxChars', 'maxhscroll', 'maxscroll', 'mbchr', 'mblength', 'mbord', 'mbsubstring', 'menu',
-            'message', 'Microphone', 'min', 'MIN_VALUE', 'MMExecute', 'motionLevel', 'motionTimeOut', 'Mouse',
-            'mouseWheelEnabled', 'moveTo', 'Movieclip', 'MovieClipLoader', 'multiline', 'muted', 'name', 'names', 'NaN',
-            'ne', 'NEGATIVE_INFINITY', 'NetConnection', 'NetStream', 'newline', 'nextFrame',
-            'nextScene', 'nextSibling', 'nodeName', 'nodeType', 'nodeValue', 'not', 'Number', 'Object',
-            'on', 'onActivity', 'onChanged', 'onClipEvent', 'onClose', 'onConnect', 'onData', 'onDragOut',
-            'onDragOver', 'onEnterFrame', 'onID3', 'onKeyDown', 'onKeyUp', 'onKillFocus', 'onLoad', 'onLoadComplete',
-            'onLoadError', 'onLoadInit', 'onLoadProgress', 'onLoadStart', 'onMouseDown', 'onMouseMove', 'onMouseUp',
-            'onMouseWheel', 'onPress', 'onRelease', 'onReleaseOutside', 'onResize', 'onRollOut', 'onRollOver',
-            'onScroller', 'onSelect', 'onSetFocus', 'onSoundComplete', 'onStatus', 'onUnload', 'onUpdate', 'onXML',
-            'or(logischesOR)', 'ord', 'os', 'parentNode', 'parseCSS', 'parseFloat', 'parseInt', 'parseXML', 'password',
-            'pause', 'PGDN', 'PGUP', 'PI', 'pixelAspectRatio', 'play', 'playerType', 'pop', 'position',
-            'POSITIVE_INFINITY', 'pow', 'prevFrame', 'previousSibling', 'prevScene', 'print', 'printAsBitmap',
-            'printAsBitmapNum', 'PrintJob', 'printNum', 'private', 'prototype', 'public', 'push', 'quality',
-            'random', 'rate', 'registerClass', 'removeListener', 'removeMovieClip', 'removeNode', 'removeTextField',
-            'replaceSel', 'replaceText', 'resolutionX', 'resolutionY', 'restrict', 'reverse', 'RIGHT',
-            'rightMargin', 'round', 'scaleMode', 'screenColor', 'screenDPI', 'screenResolutionX', 'screenResolutionY',
-            'scroll', 'seek', 'selectable', 'Selection', 'send', 'sendAndLoad', 'separatorBefore', 'serverString',
-            'set', 'setvariable', 'setBufferTime', 'setClipboard', 'setDate', 'setFocus', 'setFullYear', 'setGain',
-            'setHours', 'setInterval', 'setMask', 'setMilliseconds', 'setMinutes', 'setMode', 'setMonth',
-            'setMotionLevel', 'setNewTextFormat', 'setPan', 'setProperty', 'setQuality', 'setRate', 'setRGB',
-            'setSeconds', 'setSelectColor', 'setSelected', 'setSelection', 'setSilenceLevel', 'setStyle',
-            'setTextFormat', 'setTime', 'setTransform', 'setUseEchoSuppression', 'setUTCDate', 'setUTCFullYear',
-            'setUTCHours', 'setUTCMilliseconds', 'setUTCMinutes', 'setUTCMonth', 'setUTCSeconds', 'setVolume',
-            'setYear', 'SharedObject', 'SHIFT(Konstante)', 'shift(Methode)', 'show', 'showMenu', 'showSettings',
-            'silenceLevel', 'silenceTimeout', 'sin', 'size', 'slice', 'smoothing', 'sort', 'sortOn', 'Sound', 'SPACE',
-            'splice', 'split', 'sqrt', 'SQRT1_2', 'SQRT2', 'Stage', 'start', 'startDrag', 'static', 'status', 'stop',
-            'stopAllSounds', 'stopDrag', 'String', 'StyleSheet(Klasse)', 'styleSheet(Eigenschaft)', 'substr',
-            'substring', 'super', 'swapDepths', 'System', 'TAB', 'tabChildren', 'tabEnabled', 'tabIndex',
-            'tabStops', 'tan', 'target', 'targetPath', 'tellTarget', 'text', 'textColor', 'TextField', 'TextFormat',
-            'textHeight', 'TextSnapshot', 'textWidth', 'this', 'throw', 'time', 'toggleHighQuality', 'toLowerCase',
-            'toString', 'toUpperCase', 'trace', 'trackAsMenu', 'try', 'type', 'typeof', 'undefined',
-            'underline', 'unescape', 'uninstall', 'unloadClip', 'unloadMovie', 'unLoadMovieNum', 'unshift', 'unwatch',
-            'UP', 'updateAfterEvent', 'updateProperties', 'url', 'useCodePage', 'useEchoSuppression', 'useHandCursor',
-            'UTC', 'valueOf', 'variable', 'version', 'Video', 'visible', 'void', 'watch', 'width',
-            'with', 'wordwrap', 'XML', 'xmlDecl', 'XMLNode', 'XMLSocket'
-            )
-        ),
-    'SYMBOLS' => array(
-        '(', ')', '[', ']', '{', '}', '!', '@', '%', '&', '*', '|', '/', '<', '>'
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false,
-        2 => false,
-        3 => false,
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #b1b100;',
-            2 => 'color: #000000; font-weight: bold;',
-            3 => 'color: #0066CC;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #808080; font-style: italic;',
-            2 => 'color: #808080; font-style: italic;',
-            'MULTI' => 'color: #808080; font-style: italic;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #000099; font-weight: bold;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #66cc66;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #ff0000;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #cc66cc;'
-            ),
-        'METHODS' => array(
-            1 => 'color: #006600;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #66cc66;'
-            ),
-        'REGEXPS' => array(
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => ''
-        ),
-    'OOLANG' => true,
-    'OBJECT_SPLITTERS' => array(
-        1 => '.'
-        ),
-    'REGEXPS' => array(
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(),
-    'HIGHLIGHT_STRICT_BLOCK' => array()
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/actionscript3.php b/wiki/vendor/geshi/geshi/src/geshi/actionscript3.php
deleted file mode 100644
index 20dcf5d..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/actionscript3.php
+++ /dev/null
@@ -1,471 +0,0 @@
-<?php
-/*************************************************************************************
- * actionscript3.php
- * ----------------
- * 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.9.0
- * Date Started: 2007/11/26
- *
- * ActionScript3 language file for GeSHi.
- *
- * All keywords scraped from the Flex 2.0.1 Documentation
- *
- * The default style is based on FlexBuilder2 coloring, with the addition of class, package, method and
- * constant names that are highlighted to help identifying problem when used on public pastebins.
- *
- * For styling, keywords data from 0 to 1 (accessible through .kw1, etc.) are described here :
- *
- *   1 : operators
- *   2 : 'var' keyword
- *   3 : 'function' keyword
- *   4 : 'class' and 'package' keywords
- *   5 : all flash.* class names plus Top Level classes, mx are excluded
- *   6 : all flash.* package names, mx are excluded
- *   7 : valid flash method names and properties (there is no type checks sadly, for example String().x will be highlighted as 'x' is valid, but obviously strings don't have a x property)
- *   8 : valid flash constant names (again, no type check)
- *
- *
- * CHANGES
- * -------
- * 2007/12/06 (1.0.7.22)
- *  -  Added the 'this' keyword (oops)
- *
- * TODO (updated 2007/11/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' => 'ActionScript 3',
-    'COMMENT_SINGLE' => array(1 => '//'),
-    'COMMENT_MULTI' => array('/*' => '*/'),
-    'COMMENT_REGEXP' => array(
-        //Regular expressions
-        2 => "/(?<=[\\s^])(s|tr|y)\\/(?!\s)(?:\\\\.|(?!\n)[^\\/\\\\])+(?<!\s)\\/(?!\s)(?:\\\\.|(?!\n)[^\\/\\\\])*(?<!\s)\\/[msixpogcde]*(?=[\\s$\\.\\;])|(?<=[\\s^(=])(m|q[qrwx]?)?\\/(?!\s)(?:\\\\.|(?!\n)[^\\/\\\\])+(?<!\s)\\/[msixpogc]*(?=[\\s$\\.\\,\\;\\)])/iU",
-        ),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array("'", '"'),
-    'ESCAPE_CHAR' => '\\',
-    'KEYWORDS' => array(
-        1 => array(
-            'with', 'while', 'void', 'undefined', 'typeof', 'try', 'true',
-            'throw', 'this', 'switch', 'super', 'set', 'return', 'public', 'protected',
-            'private', 'null', 'new', 'is', 'internal', 'instanceof', 'in',
-            'import', 'if', 'get', 'for', 'false', 'else', 'each', 'do',
-            'delete', 'default', 'continue', 'catch', 'case', 'break', 'as',
-            'extends', 'override'
-            ),
-        2 => array(
-            'var'
-            ),
-        3 => array(
-            'function'
-            ),
-        4 => array(
-            'class', 'package'
-            ),
-        6 => array(
-            'flash.xml', 'flash.utils', 'flash.ui', 'flash.text',
-            'flash.system', 'flash.profiler', 'flash.printing', 'flash.net',
-            'flash.media', 'flash.geom', 'flash.filters', 'flash.external',
-            'flash.events', 'flash.errors', 'flash.display',
-            'flash.accessibility'
-            ),
-        7 => array(
-            'zoom', 'year', 'y', 'xmlDecl', 'x', 'writeUnsignedInt',
-            'writeUTFBytes', 'writeUTF', 'writeShort', 'writeObject',
-            'writeMultiByte', 'writeInt', 'writeFloat', 'writeExternal',
-            'writeDynamicProperty', 'writeDynamicProperties', 'writeDouble',
-            'writeBytes', 'writeByte', 'writeBoolean', 'wordWrap',
-            'willTrigger', 'width', 'volume', 'visible', 'videoWidth',
-            'videoHeight', 'version', 'valueOf', 'value', 'usingTLS',
-            'useRichTextClipboard', 'useHandCursor', 'useEchoSuppression',
-            'useCodePage', 'url', 'uri', 'uploadCompleteData', 'upload',
-            'updateProperties', 'updateAfterEvent', 'upState', 'unshift',
-            'unlock', 'unload', 'union', 'unescapeMultiByte', 'unescape',
-            'underline', 'uncompress', 'type', 'ty', 'tx', 'transparent',
-            'translate', 'transformPoint', 'transform', 'trackAsMenu', 'track',
-            'trace', 'totalMemory', 'totalFrames', 'topLeft', 'top',
-            'togglePause', 'toXMLString', 'toUpperCase', 'toUTCString',
-            'toTimeString', 'toString', 'toPrecision', 'toLowerCase',
-            'toLocaleUpperCase', 'toLocaleTimeString', 'toLocaleString',
-            'toLocaleLowerCase', 'toLocaleDateString', 'toFixed',
-            'toExponential', 'toDateString', 'timezoneOffset', 'timerComplete',
-            'timer', 'time', 'threshold', 'thickness', 'textWidth',
-            'textSnapshot', 'textInput', 'textHeight', 'textColor', 'text',
-            'test', 'target', 'tan', 'tabStops', 'tabIndexChange', 'tabIndex',
-            'tabEnabledChange', 'tabEnabled', 'tabChildrenChange',
-            'tabChildren', 'sync', 'swfVersion', 'swapChildrenAt',
-            'swapChildren', 'subtract', 'substring', 'substr', 'styleSheet',
-            'styleNames', 'strength', 'stopPropagation',
-            'stopImmediatePropagation', 'stopDrag', 'stopAll', 'stop', 'status',
-            'startDrag', 'start', 'stageY', 'stageX', 'stageWidth',
-            'stageHeight', 'stageFocusRect', 'stage', 'sqrt', 'split', 'splice',
-            'source', 'soundTransform', 'soundComplete', 'sortOn', 'sort',
-            'songName', 'some', 'socketData', 'smoothing', 'slice', 'size',
-            'sin', 'silent', 'silenceTimeout', 'silenceLevel', 'showSettings',
-            'showRedrawRegions', 'showDefaultContextMenu', 'show', 'shortcut',
-            'shiftKey', 'shift', 'sharpness', 'sharedEvents', 'shadowColor',
-            'shadowAlpha', 'settings', 'setUseEchoSuppression', 'setUTCSeconds',
-            'setUTCMonth', 'setUTCMinutes', 'setUTCMilliseconds', 'setUTCHours',
-            'setUTCFullYear', 'setUTCDate', 'setTimeout', 'setTime',
-            'setTextFormat', 'setStyle', 'setSilenceLevel', 'setSettings',
-            'setSelection', 'setSelected', 'setSelectColor', 'setSeconds',
-            'setQuality', 'setPropertyIsEnumerable', 'setProperty', 'setPixels',
-            'setPixel32', 'setPixel', 'setNamespace', 'setName',
-            'setMotionLevel', 'setMonth', 'setMode', 'setMinutes',
-            'setMilliseconds', 'setLoopback', 'setLoopBack', 'setLocalName',
-            'setKeyFrameInterval', 'setInterval', 'setHours', 'setFullYear',
-            'setEmpty', 'setDirty', 'setDate', 'setCompositionString',
-            'setClipboard', 'setChildren', 'setChildIndex',
-            'setAdvancedAntiAliasingTable', 'serverString', 'separatorBefore',
-            'sendToURL', 'send', 'selectionEndIndex', 'selectionBeginIndex',
-            'selectable', 'select', 'seek', 'securityError', 'securityDomain',
-            'secondsUTC', 'seconds', 'search', 'scrollV', 'scrollRect',
-            'scrollH', 'scroll', 'screenResolutionY', 'screenResolutionX',
-            'screenDPI', 'screenColor', 'scenes', 'scaleY', 'scaleX',
-            'scaleMode', 'scale9Grid', 'scale', 'save', 'sandboxType',
-            'sameDomain', 'running', 'round', 'rotation', 'rotate', 'root',
-            'rollOver', 'rollOut', 'rightToRight', 'rightToLeft', 'rightPeak',
-            'rightMargin', 'right', 'rewind', 'reverse', 'resume', 'restrict',
-            'resize', 'reset', 'requestHeaders', 'replaceText',
-            'replaceSelectedText', 'replace', 'repeatCount', 'render',
-            'removedFromStage', 'removed', 'removeNode', 'removeNamespace',
-            'removeEventListener', 'removeChildAt', 'removeChild',
-            'relatedObject', 'registerFont', 'registerClassAlias', 'redOffset',
-            'redMultiplier', 'rect', 'receiveVideo', 'receiveAudio',
-            'readUnsignedShort', 'readUnsignedInt', 'readUnsignedByte',
-            'readUTFBytes', 'readUTF', 'readShort', 'readObject',
-            'readMultiByte', 'readInt', 'readFloat', 'readExternal',
-            'readDouble', 'readBytes', 'readByte', 'readBoolean', 'ratios',
-            'rate', 'random', 'quality', 'push', 'publish', 'proxyType',
-            'prototype', 'propertyIsEnumerable', 'progress',
-            'processingInstructions', 'printAsBitmap', 'print',
-            'previousSibling', 'preventDefault', 'prevScene', 'prevFrame',
-            'prettyPrinting', 'prettyIndent', 'preserveAlpha', 'prependChild',
-            'prefix', 'pow', 'position', 'pop', 'polar', 'playerType', 'play',
-            'pixelSnapping', 'pixelDissolve', 'pixelBounds', 'pixelAspectRatio',
-            'perlinNoise', 'pause', 'parseXML', 'parseInt', 'parseFloat',
-            'parseCSS', 'parse', 'parentNode', 'parentDomain',
-            'parentAllowsChild', 'parent', 'parameters', 'paperWidth',
-            'paperHeight', 'pan', 'paletteMap', 'pageWidth', 'pageHeight',
-            'overState', 'outsideCutoff', 'os', 'orientation', 'open',
-            'opaqueBackground', 'onPlayStatus', 'onMetaData', 'onCuePoint',
-            'offsetPoint', 'offset', 'objectID', 'objectEncoding', 'numLock',
-            'numLines', 'numFrames', 'numChildren', 'normalize', 'noise',
-            'nodeValue', 'nodeType', 'nodeName', 'nodeKind', 'noAutoLabeling',
-            'nextValue', 'nextSibling', 'nextScene', 'nextNameIndex',
-            'nextName', 'nextFrame', 'netStatus', 'navigateToURL',
-            'namespaceURI', 'namespaceDeclarations', 'namespace', 'names',
-            'name', 'muted', 'multiline', 'moveTo', 'mouseY', 'mouseX',
-            'mouseWheelEnabled', 'mouseWheel', 'mouseUp', 'mouseTarget',
-            'mouseOver', 'mouseOut', 'mouseMove', 'mouseLeave',
-            'mouseFocusChange', 'mouseEnabled', 'mouseDown', 'mouseChildren',
-            'motionTimeout', 'motionLevel', 'monthUTC', 'month',
-            'modificationDate', 'mode', 'minutesUTC', 'minutes', 'min',
-            'millisecondsUTC', 'milliseconds', 'method', 'message', 'merge',
-            'menuSelect', 'menuItemSelect', 'maxScrollV', 'maxScrollH',
-            'maxLevel', 'maxChars', 'max', 'matrixY', 'matrixX', 'matrix',
-            'match', 'mask', 'mapPoint', 'mapBitmap', 'map', 'manufacturer',
-            'macType', 'loopback', 'loop', 'log', 'lock', 'localeCompare',
-            'localY', 'localX', 'localToGlobal', 'localName',
-            'localFileReadDisable', 'loaderURL', 'loaderInfo', 'loader',
-            'loadPolicyFile', 'loadBytes', 'load', 'liveDelay', 'link',
-            'lineTo', 'lineStyle', 'lineGradientStyle', 'level',
-            'letterSpacing', 'length', 'leftToRight', 'leftToLeft', 'leftPeak',
-            'leftMargin', 'left', 'leading', 'lastIndexOf', 'lastIndex',
-            'lastChild', 'language', 'labels', 'knockout', 'keyUp',
-            'keyLocation', 'keyFrameInterval', 'keyFocusChange', 'keyDown',
-            'keyCode', 'kerning', 'join', 'italic', 'isXMLName',
-            'isPrototypeOf', 'isNaN', 'isFocusInaccessible', 'isFinite',
-            'isEmpty', 'isDefaultPrevented', 'isDebugger', 'isBuffering',
-            'isAttribute', 'isAccessible', 'ioError', 'invert', 'invalidate',
-            'intersects', 'intersection', 'interpolate', 'insideCutoff',
-            'insertChildBefore', 'insertChildAfter', 'insertBefore', 'inner',
-            'init', 'info', 'inflatePoint', 'inflate', 'indexOf', 'index',
-            'indent', 'inScopeNamespaces', 'imeComposition', 'ime',
-            'ignoreWhitespace', 'ignoreWhite', 'ignoreProcessingInstructions',
-            'ignoreComments', 'ignoreCase', 'identity', 'idMap', 'id3',
-            'httpStatus', 'htmlText', 'hoursUTC', 'hours', 'hitTestTextNearPos',
-            'hitTestState', 'hitTestPoint', 'hitTestObject', 'hitTest',
-            'hitArea', 'highlightColor', 'highlightAlpha', 'hideObject',
-            'hideBuiltInItems', 'hide', 'height', 'hasVideoEncoder', 'hasTLS',
-            'hasStreamingVideo', 'hasStreamingAudio', 'hasSimpleContent',
-            'hasScreenPlayback', 'hasScreenBroadcast', 'hasProperty',
-            'hasPrinting', 'hasOwnProperty', 'hasMP3', 'hasIME', 'hasGlyphs',
-            'hasEventListener', 'hasEmbeddedVideo', 'hasDefinition',
-            'hasComplexContent', 'hasChildNodes', 'hasAudioEncoder', 'hasAudio',
-            'hasAccessibility', 'gridFitType', 'greenOffset', 'greenMultiplier',
-            'graphics', 'gotoAndStop', 'gotoAndPlay', 'globalToLocal', 'global',
-            'getUTCSeconds', 'getUTCMonth', 'getUTCMinutes',
-            'getUTCMilliseconds', 'getUTCHours', 'getUTCFullYear', 'getUTCDay',
-            'getUTCDate', 'getTimezoneOffset', 'getTimer', 'getTime',
-            'getTextRunInfo', 'getTextFormat', 'getText', 'getStyle',
-            'getStackTrace', 'getSelectedText', 'getSelected', 'getSeconds',
-            'getRemote', 'getRect', 'getQualifiedSuperclassName',
-            'getQualifiedClassName', 'getProperty', 'getPrefixForNamespace',
-            'getPixels', 'getPixel32', 'getPixel', 'getParagraphLength',
-            'getObjectsUnderPoint', 'getNamespaceForPrefix', 'getMonth',
-            'getMinutes', 'getMilliseconds', 'getMicrophone', 'getLocal',
-            'getLineText', 'getLineOffset', 'getLineMetrics', 'getLineLength',
-            'getLineIndexOfChar', 'getLineIndexAtPoint', 'getImageReference',
-            'getHours', 'getFullYear', 'getFirstCharInParagraph',
-            'getDescendants', 'getDefinitionByName', 'getDefinition', 'getDay',
-            'getDate', 'getColorBoundsRect', 'getClassByAlias', 'getChildIndex',
-            'getChildByName', 'getChildAt', 'getCharIndexAtPoint',
-            'getCharBoundaries', 'getCamera', 'getBounds', 'genre',
-            'generateFilterRect', 'gain', 'fullYearUTC', 'fullYear',
-            'fullScreen', 'fscommand', 'fromCharCode', 'framesLoaded',
-            'frameRate', 'frame', 'fps', 'forwardAndBack', 'formatToString',
-            'forceSimple', 'forEach', 'fontType', 'fontStyle', 'fontSize',
-            'fontName', 'font', 'focusRect', 'focusOut', 'focusIn', 'focus',
-            'flush', 'floor', 'floodFill', 'firstChild', 'findText', 'filters',
-            'filter', 'fillRect', 'fileList', 'extension', 'extended', 'exp',
-            'exec', 'exactSettings', 'every', 'eventPhase', 'escapeMultiByte',
-            'escape', 'errorID', 'error', 'equals', 'enumerateFonts',
-            'enterFrame', 'endian', 'endFill', 'encodeURIComponent',
-            'encodeURI', 'enabled', 'embedFonts', 'elements',
-            'dynamicPropertyWriter', 'dropTarget', 'drawRoundRect', 'drawRect',
-            'drawEllipse', 'drawCircle', 'draw', 'download', 'downState',
-            'doubleClickEnabled', 'doubleClick', 'dotall', 'domain',
-            'docTypeDecl', 'doConversion', 'divisor', 'distance', 'dispose',
-            'displayState', 'displayMode', 'displayAsPassword', 'dispatchEvent',
-            'description', 'describeType', 'descent', 'descendants',
-            'deltaTransformPoint', 'delta', 'deleteProperty', 'delay',
-            'defaultTextFormat', 'defaultSettings', 'defaultObjectEncoding',
-            'decodeURIComponent', 'decodeURI', 'decode', 'deblocking',
-            'deactivate', 'dayUTC', 'day', 'dateUTC', 'date', 'dataFormat',
-            'data', 'd', 'customItems', 'curveTo', 'currentTarget',
-            'currentScene', 'currentLabels', 'currentLabel', 'currentFrame',
-            'currentFPS', 'currentDomain', 'currentCount', 'ctrlKey', 'creator',
-            'creationDate', 'createTextNode', 'createGradientBox',
-            'createElement', 'createBox', 'cos', 'copyPixels', 'copyChannel',
-            'copy', 'conversionMode', 'contextMenuOwner', 'contextMenu',
-            'contentType', 'contentLoaderInfo', 'content', 'containsRect',
-            'containsPoint', 'contains', 'constructor', 'connectedProxyType',
-            'connected', 'connect', 'condenseWhite', 'concatenatedMatrix',
-            'concatenatedColorTransform', 'concat', 'computeSpectrum',
-            'compress', 'componentY', 'componentX', 'complete', 'compare',
-            'comments', 'comment', 'colors', 'colorTransform', 'color', 'code',
-            'close', 'cloneNode', 'clone', 'client', 'click', 'clearTimeout',
-            'clearInterval', 'clear', 'clamp', 'children', 'childNodes',
-            'childIndex', 'childAllowsParent', 'child', 'checkPolicyFile',
-            'charCount', 'charCodeAt', 'charCode', 'charAt', 'changeList',
-            'change', 'ceil', 'caretIndex', 'caption', 'capsLock', 'cancelable',
-            'cancel', 'callee', 'callProperty', 'call', 'cacheAsBitmap', 'c',
-            'bytesTotal', 'bytesLoaded', 'bytesAvailable', 'buttonMode',
-            'buttonDown', 'bullet', 'builtInItems', 'bufferTime',
-            'bufferLength', 'bubbles', 'browse', 'bottomScrollV', 'bottomRight',
-            'bottom', 'borderColor', 'border', 'bold', 'blurY', 'blurX',
-            'blueOffset', 'blueMultiplier', 'blockIndent', 'blendMode',
-            'bitmapData', 'bias', 'beginGradientFill', 'beginFill',
-            'beginBitmapFill', 'bandwidth', 'backgroundColor', 'background',
-            'b', 'available', 'avHardwareDisable', 'autoSize', 'attributes',
-            'attribute', 'attachNetStream', 'attachCamera', 'attachAudio',
-            'atan2', 'atan', 'asyncError', 'asin', 'ascent', 'artist',
-            'areSoundsInaccessible', 'areInaccessibleObjectsUnderPoint',
-            'applyFilter', 'apply', 'applicationDomain', 'appendText',
-            'appendChild', 'antiAliasType', 'angle', 'alwaysShowSelection',
-            'altKey', 'alphas', 'alphaOffset', 'alphaMultiplier', 'alpha',
-            'allowInsecureDomain', 'allowDomain', 'align', 'album',
-            'addedToStage', 'added', 'addPage', 'addNamespace', 'addHeader',
-            'addEventListener', 'addChildAt', 'addChild', 'addCallback', 'add',
-            'activityLevel', 'activity', 'active', 'activating', 'activate',
-            'actionScriptVersion', 'acos', 'accessibilityProperties', 'abs'
-            ),
-        8 => array(
-            'WRAP', 'VERTICAL', 'VARIABLES',
-            'UTC', 'UPLOAD_COMPLETE_DATA', 'UP', 'UNLOAD', 'UNKNOWN',
-            'UNIQUESORT', 'TOP_RIGHT', 'TOP_LEFT', 'TOP', 'TIMER_COMPLETE',
-            'TIMER', 'TEXT_NODE', 'TEXT_INPUT', 'TEXT', 'TAB_INDEX_CHANGE',
-            'TAB_ENABLED_CHANGE', 'TAB_CHILDREN_CHANGE', 'TAB', 'SYNC',
-            'SUBTRACT', 'SUBPIXEL', 'STATUS', 'STANDARD', 'SQUARE', 'SQRT2',
-            'SQRT1_2', 'SPACE', 'SOUND_COMPLETE', 'SOCKET_DATA', 'SHOW_ALL',
-            'SHIFT', 'SETTINGS_MANAGER', 'SELECT', 'SECURITY_ERROR', 'SCROLL',
-            'SCREEN', 'ROUND', 'ROLL_OVER', 'ROLL_OUT', 'RIGHT', 'RGB',
-            'RETURNINDEXEDARRAY', 'RESIZE', 'REPEAT', 'RENDER',
-            'REMOVED_FROM_STAGE', 'REMOVED', 'REMOTE', 'REGULAR', 'REFLECT',
-            'RED', 'RADIAL', 'PROGRESS', 'PRIVACY', 'POST', 'POSITIVE_INFINITY',
-            'PORTRAIT', 'PIXEL', 'PI', 'PENDING', 'PAGE_UP', 'PAGE_DOWN', 'PAD',
-            'OVERLAY', 'OUTER', 'OPEN', 'NaN', 'NUM_PAD', 'NUMPAD_SUBTRACT',
-            'NUMPAD_MULTIPLY', 'NUMPAD_ENTER', 'NUMPAD_DIVIDE',
-            'NUMPAD_DECIMAL', 'NUMPAD_ADD', 'NUMPAD_9', 'NUMPAD_8', 'NUMPAD_7',
-            'NUMPAD_6', 'NUMPAD_5', 'NUMPAD_4', 'NUMPAD_3', 'NUMPAD_2',
-            'NUMPAD_1', 'NUMPAD_0', 'NUMERIC', 'NO_SCALE', 'NO_BORDER',
-            'NORMAL', 'NONE', 'NEVER', 'NET_STATUS', 'NEGATIVE_INFINITY',
-            'MULTIPLY', 'MOUSE_WHEEL', 'MOUSE_UP', 'MOUSE_OVER', 'MOUSE_OUT',
-            'MOUSE_MOVE', 'MOUSE_LEAVE', 'MOUSE_FOCUS_CHANGE', 'MOUSE_DOWN',
-            'MITER', 'MIN_VALUE', 'MICROPHONE', 'MENU_SELECT',
-            'MENU_ITEM_SELECT', 'MEDIUM', 'MAX_VALUE', 'LOW', 'LOG2E', 'LOG10E',
-            'LOCAL_WITH_NETWORK', 'LOCAL_WITH_FILE', 'LOCAL_TRUSTED',
-            'LOCAL_STORAGE', 'LN2', 'LN10', 'LITTLE_ENDIAN', 'LINK',
-            'LINEAR_RGB', 'LINEAR', 'LIGHT_COLOR', 'LIGHTEN', 'LEFT', 'LCD',
-            'LAYER', 'LANDSCAPE', 'KOREAN', 'KEY_UP', 'KEY_FOCUS_CHANGE',
-            'KEY_DOWN', 'JUSTIFY', 'JAPANESE_KATAKANA_HALF',
-            'JAPANESE_KATAKANA_FULL', 'JAPANESE_HIRAGANA', 'Infinity', 'ITALIC',
-            'IO_ERROR', 'INVERT', 'INSERT', 'INPUT', 'INNER', 'INIT',
-            'IME_COMPOSITION', 'IGNORE', 'ID3', 'HTTP_STATUS', 'HORIZONTAL',
-            'HOME', 'HIGH', 'HARDLIGHT', 'GREEN', 'GET', 'FULLSCREEN', 'FULL',
-            'FOCUS_OUT', 'FOCUS_IN', 'FLUSHED', 'FLASH9', 'FLASH8', 'FLASH7',
-            'FLASH6', 'FLASH5', 'FLASH4', 'FLASH3', 'FLASH2', 'FLASH1', 'F9',
-            'F8', 'F7', 'F6', 'F5', 'F4', 'F3', 'F2', 'F15', 'F14', 'F13',
-            'F12', 'F11', 'F10', 'F1', 'EXACT_FIT', 'ESCAPE', 'ERROR', 'ERASE',
-            'ENTER_FRAME', 'ENTER', 'END', 'EMBEDDED', 'ELEMENT_NODE', 'E',
-            'DYNAMIC', 'DOWN', 'DOUBLE_CLICK', 'DIFFERENCE', 'DEVICE',
-            'DESCENDING', 'DELETE', 'DEFAULT', 'DEACTIVATE', 'DATA',
-            'DARK_COLOR', 'DARKEN', 'CRT', 'CONTROL', 'CONNECT', 'COMPLETE',
-            'COLOR', 'CLOSE', 'CLICK', 'CLAMP', 'CHINESE', 'CHANGE', 'CENTER',
-            'CASEINSENSITIVE', 'CAPTURING_PHASE', 'CAPS_LOCK', 'CANCEL',
-            'CAMERA', 'BUBBLING_PHASE', 'BOTTOM_RIGHT', 'BOTTOM_LEFT', 'BOTTOM',
-            'BOLD_ITALIC', 'BOLD', 'BLUE', 'BINARY', 'BIG_ENDIAN', 'BEVEL',
-            'BEST', 'BACKSPACE', 'AUTO', 'AT_TARGET', 'ASYNC_ERROR', 'AMF3',
-            'AMF0', 'ALWAYS', 'ALPHANUMERIC_HALF', 'ALPHANUMERIC_FULL', 'ALPHA',
-            'ADVANCED', 'ADDED_TO_STAGE', 'ADDED', 'ADD', 'ACTIVITY',
-            'ACTIONSCRIPT3', 'ACTIONSCRIPT2'
-            ),
-        //FIX: Must be last in order to avoid conflicts with keywords present
-        //in other keyword groups, that might get highlighted as part of the URL.
-        //I know this is not a proper work-around, but should do just fine.
-        5 => array(
-            'uint', 'int', 'arguments', 'XMLSocket', 'XMLNodeType', 'XMLNode',
-            'XMLList', 'XMLDocument', 'XML', 'Video', 'VerifyError',
-            'URLVariables', 'URLStream', 'URLRequestMethod', 'URLRequestHeader',
-            'URLRequest', 'URLLoaderDataFormat', 'URLLoader', 'URIError',
-            'TypeError', 'Transform', 'TimerEvent', 'Timer', 'TextSnapshot',
-            'TextRenderer', 'TextLineMetrics', 'TextFormatAlign', 'TextFormat',
-            'TextFieldType', 'TextFieldAutoSize', 'TextField', 'TextEvent',
-            'TextDisplayMode', 'TextColorType', 'System', 'SyntaxError',
-            'SyncEvent', 'StyleSheet', 'String', 'StatusEvent', 'StaticText',
-            'StageScaleMode', 'StageQuality', 'StageAlign', 'Stage',
-            'StackOverflowError', 'Sprite', 'SpreadMethod', 'SoundTransform',
-            'SoundMixer', 'SoundLoaderContext', 'SoundChannel', 'Sound',
-            'Socket', 'SimpleButton', 'SharedObjectFlushStatus', 'SharedObject',
-            'Shape', 'SecurityPanel', 'SecurityErrorEvent', 'SecurityError',
-            'SecurityDomain', 'Security', 'ScriptTimeoutError', 'Scene',
-            'SWFVersion', 'Responder', 'RegExp', 'ReferenceError', 'Rectangle',
-            'RangeError', 'QName', 'Proxy', 'ProgressEvent',
-            'PrintJobOrientation', 'PrintJobOptions', 'PrintJob', 'Point',
-            'PixelSnapping', 'ObjectEncoding', 'Object', 'Number', 'NetStream',
-            'NetStatusEvent', 'NetConnection', 'Namespace', 'MovieClip',
-            'MouseEvent', 'Mouse', 'MorphShape', 'Microphone', 'MemoryError',
-            'Matrix', 'Math', 'LocalConnection', 'LoaderInfo', 'LoaderContext',
-            'Loader', 'LineScaleMode', 'KeyboardEvent', 'Keyboard',
-            'KeyLocation', 'JointStyle', 'InvalidSWFError',
-            'InterpolationMethod', 'InteractiveObject', 'IllegalOperationError',
-            'IOErrorEvent', 'IOError', 'IMEEvent', 'IMEConversionMode', 'IME',
-            'IExternalizable', 'IEventDispatcher', 'IDynamicPropertyWriter',
-            'IDynamicPropertyOutput', 'IDataOutput', 'IDataInput', 'ID3Info',
-            'IBitmapDrawable', 'HTTPStatusEvent', 'GridFitType', 'Graphics',
-            'GradientType', 'GradientGlowFilter', 'GradientBevelFilter',
-            'GlowFilter', 'Function', 'FrameLabel', 'FontType', 'FontStyle',
-            'Font', 'FocusEvent', 'FileReferenceList', 'FileReference',
-            'FileFilter', 'ExternalInterface', 'EventPhase', 'EventDispatcher',
-            'Event', 'EvalError', 'ErrorEvent', 'Error', 'Endian', 'EOFError',
-            'DropShadowFilter', 'DisplayObjectContainer', 'DisplayObject',
-            'DisplacementMapFilterMode', 'DisplacementMapFilter', 'Dictionary',
-            'DefinitionError', 'Date', 'DataEvent', 'ConvolutionFilter',
-            'ContextMenuItem', 'ContextMenuEvent', 'ContextMenuBuiltInItems',
-            'ContextMenu', 'ColorTransform', 'ColorMatrixFilter', 'Class',
-            'CapsStyle', 'Capabilities', 'Camera', 'CSMSettings', 'ByteArray',
-            'Boolean', 'BlurFilter', 'BlendMode', 'BitmapFilterType',
-            'BitmapFilterQuality', 'BitmapFilter', 'BitmapDataChannel',
-            'BitmapData', 'Bitmap', 'BevelFilter', 'AsyncErrorEvent', 'Array',
-            'ArgumentError', 'ApplicationDomain', 'AntiAliasType',
-            'ActivityEvent', 'ActionScriptVersion', 'AccessibilityProperties',
-            'Accessibility', 'AVM1Movie'
-            )
-        ),
-    'SYMBOLS' => array(
-        '(', ')', '[', ']', '{', '}', '!', '%', '&', '*', '|', '/', '<', '>', '^', '-', '+', '~', '?', ':', ';', '.', ','
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => true,
-        2 => true,
-        3 => true,
-        4 => true,
-        5 => true,
-        6 => true,
-        7 => true,
-        8 => true
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #0033ff; font-weight: bold;',
-            2 => 'color: #6699cc; font-weight: bold;',
-            3 => 'color: #339966; font-weight: bold;',
-            4 => 'color: #9900cc; font-weight: bold;',
-            5 => 'color: #004993;',
-            6 => 'color: #004993;',
-            7 => 'color: #004993;',
-            8 => 'color: #004993;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #009900; font-style: italic;',
-            2 => 'color: #009966; font-style: italic;',
-            'MULTI' => 'color: #3f5fbf;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => ''
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #000000;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #990000;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #000000; font-weight:bold;'
-            ),
-        'METHODS' => array(
-            0 => 'color: #000000;',
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #000066; font-weight: bold;'
-            ),
-        'REGEXPS' => array(
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => '',
-        4 => '',
-        5 => 'http://www.google.com/search?q={FNAMEL}%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:{FNAMEL}.html',
-        6 => '',
-        7 => '',
-        8 => ''
-        ),
-    'OOLANG' => false,//Save some time as OO identifiers aren't used
-    'OBJECT_SPLITTERS' => array(
-        // commented out because it's not very relevant for AS, as all properties, methods and constants are dot-accessed.
-        // I believe it's preferable to have package highlighting for example, which is not possible with this enabled.
-        // 0 => '.'
-        ),
-    'REGEXPS' => array(
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(),
-    'HIGHLIGHT_STRICT_BLOCK' => array()
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/ada.php b/wiki/vendor/geshi/geshi/src/geshi/ada.php
deleted file mode 100644
index bad8595..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/ada.php
+++ /dev/null
@@ -1,130 +0,0 @@
-<?php
-/*************************************************************************************
- * ada.php
- * -------
- * Author: Tux (tux@inmail.cz)
- * Copyright: (c) 2004 Tux (http://tux.a4.cz/), Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.9.0
- * Date Started: 2004/07/29
- *
- * Ada language file for GeSHi.
- * Words are from SciTe configuration file
- *
- * CHANGES
- * -------
- * 2004/11/27 (1.0.2)
- *  -  Added support for multiple object splitters
- * 2004/10/27 (1.0.1)
- *   -  Removed apostrophe as string delimiter
- *   -  Added URL support
- * 2004/08/05 (1.0.0)
- *   -  First Release
- *
- * TODO (updated 2004/11/27)
- * -------------------------
- *
- *************************************************************************************
- *
- *     This file is part of GeSHi.
- *
- *   GeSHi is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   GeSHi is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with GeSHi; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- ************************************************************************************/
-
-$language_data = array (
-    'LANG_NAME' => 'Ada',
-    'COMMENT_SINGLE' => array(1 => '--'),
-    'COMMENT_MULTI' => array('/*' => '*/'),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array('"'),
-    'ESCAPE_CHAR' => '\\',
-    'KEYWORDS' => array(
-        1 => array(
-            'begin', 'declare', 'do', 'else', 'elsif', 'exception', 'for', 'if',
-            'is', 'loop', 'while', 'then', 'end', 'select', 'case', 'until',
-            'goto', 'return'
-            ),
-        2 => array(
-            'abs', 'and', 'at', 'mod', 'not', 'or', 'rem', 'xor'
-            ),
-        3 => array(
-            'abort', 'abstract', 'accept', 'access', 'aliased', 'all', 'array',
-            'body', 'constant', 'delay', 'delta', 'digits', 'entry', 'exit',
-            'function', 'generic', 'in', 'interface', 'limited', 'new', 'null',
-            'of', 'others', 'out', 'overriding', 'package', 'pragma', 'private',
-            'procedure', 'protected', 'raise', 'range', 'record', 'renames',
-            'requeue', 'reverse', 'separate', 'subtype', 'synchronized',
-            'tagged', 'task', 'terminate', 'type', 'use', 'when', 'with'
-            )
-        ),
-    'SYMBOLS' => array(
-        '(', ')'
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false,
-        2 => false,
-        3 => false,
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #00007f;',
-            2 => 'color: #0000ff;',
-            3 => 'color: #46aa03; font-weight:bold;',
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #66cc66;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #adadad; font-style: italic;',
-            'MULTI' => 'color: #808080; font-style: italic;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #000099; font-weight: bold;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #7f007f;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #ff0000;'
-            ),
-        'METHODS' => array(
-            1 => 'color: #202020;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #66cc66;'
-            ),
-        'REGEXPS' => array(
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => ''
-        ),
-    'OOLANG' => true,
-    'OBJECT_SPLITTERS' => array(
-        1 => '.'
-        ),
-    'REGEXPS' => array(
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/aimms.php b/wiki/vendor/geshi/geshi/src/geshi/aimms.php
deleted file mode 100644
index ea49b8e..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/aimms.php
+++ /dev/null
@@ -1,316 +0,0 @@
-<?php
-/*************************************************************************************
- * aimms.php
- * --------
- * Author: Guido Diepen (guido.diepen@aimms.com)
- * Copyright: (c) 2011 Guido Diepen (http://www.aimms.com)
- * Release Version: 1.0.9.0
- * Date Started: 2011/05/05
- *
- * AIMMS language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2004/07/14 (1.0.0)
- *  -  First Release
- *
- * TODO (updated 2004/07/14)
- * -------------------------
- * * Make sure the last few function I may have missed
- *   (like eval()) are included for highlighting
- * * Split to several files - php4, php5 etc
- *
- *************************************************************************************
- *
- *     This file is part of GeSHi.
- *
- *   GeSHi is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   GeSHi is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with GeSHi; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- ************************************************************************************/
-
-$language_data = array(
-    'LANG_NAME' => 'AIMMS3',
-    'COMMENT_SINGLE' => array(1 => '!'),
-    'COMMENT_MULTI' => array('/*' => '*/'),
-    'HARDQUOTE' => array("'", "'"),
-    'HARDESCAPE' => array("'", "\\"),
-    'HARDCHAR' => "\\",
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array('"'),
-    'OBJECT_SPLITTERS' => array(),
-    'REGEXPS' => array(),
-    'STRICT_MODE_APPLIES' => GESHI_MAYBE,
-    'SCRIPT_DELIMITERS' => array(),
-    'HIGHLIGHT_STRICT_BLOCK' => array(),
-    'ESCAPE_CHAR' => '',
-    'KEYWORDS' => array(
-        1 => array(
-            'if', 'then', 'else', 'endif', 'elseif', 'for', 'do', 'while' , 'endfor' , 'endwhile', 'break', 'switch', 'endswitch',
-            'display', 'return', 'in', 'apply'
-
-            ),
-        2 => array(
-            'main model' , 'declaration section', 'procedure', 'endprocedure', 'endmodel', 'endsection' , 'set', 'parameter',
-            'string parameter', 'element parameter', 'quantity'
-            ),
-        3 => array(
-            'identifier', 'index', 'index domain', 'body'
-            ),
-        4 => array(
-            'ActiveCard','Card','ConvertUnit','DistributionCumulative','DistributionDensity','DistributionDeviation',
-            'DistributionInverseCumulative','DistributionInverseDensity','DistributionKurtosis','DistributionMean',
-            'DistributionSkewness','DistributionVariance','Element','EvaluateUnit','First','FormatString','Last',
-            'Ord','Unit','Val','Aggregate','AttributeToString','CaseCompareIdentifier','CaseCreateDifferenceFile',
-            'CloseDataSource','CreateTimeTable','ConstraintVariables','ConvertReferenceDate','CloneElement',
-            'FindNthString','FindReplaceNthString','FindReplaceStrings','FindString','StringOccurrences',
-            'CurrentToMoment','CurrentToString','CurrentToTimeSlot','DaylightsavingEndDate','DaylightsavingStartDate',
-            'DeclaredSubset','DomainIndex','IndexRange','IsRunningAsViewer','ListingFileCopy','ListingFileDelete',
-            'DirectoryGetFiles','DirectoryGetSubdirectories','DirectSQL','Disaggregate','ElementCast','ElementRange',
-            'EnvironmentGetString','EnvironmentSetString','errh::Adapt','errh::Attribute','errh::Category',
-            'errh::Code','errh::Column','errh::CreationTime','errh::Filename','errh::InsideCategory',
-            'errh::IsMarkedAsHandled','errh::Line','errh::MarkAsHandled','errh::Message','errh::Multiplicity',
-            'errh::Node','errh::NumberOfLocations','errh::Severity','ExcelAddNewSheet','ExcelAssignParameter',
-            'ExcelAssignSet','ExcelAssignTable','ExcelAssignValue','ExcelClearRange','ExcelCloseWorkbook',
-            'ExcelColumnName','ExcelColumnNumber','ExcelCopyRange','ExcelCreateWorkbook','ExcelDeleteSheet',
-            'ExcelPrint','ExcelRetrieveParameter','ExcelRetrieveSet','ExcelRetrieveTable','ExcelRetrieveValue',
-            'ExcelRunMacro','ExcelSaveWorkbook','ExcelSetActiveSheet','ExcelSetUpdateLinksBehavior',
-            'ExcelSetVisibility','FindUsedElements','GenerateCUT','GMP::Coefficient::Get',
-            'GMP::Coefficient::GetQuadratic','GMP::Coefficient::Set','GMP::Coefficient::SetQuadratic',
-            'GMP::Column::Add','GMP::Column::Delete','GMP::Column::Freeze','GMP::Column::GetLowerbound',
-            'GMP::Column::GetScale','GMP::Column::GetStatus','GMP::Column::GetType','GMP::Column::GetUpperbound',
-            'GMP::Column::SetAsObjective','GMP::Column::SetLowerbound','GMP::Column::SetType',
-            'GMP::Column::SetUpperbound','GMP::Column::Unfreeze','GMP::Instance::AddIntegerEliminationRows',
-            'GMP::Instance::CalculateSubGradient','GMP::Instance::Copy','GMP::Instance::CreateDual',
-            'GMP::Instance::CreateMasterMip','GMP::Instance::CreatePresolved',
-            'GMP::SolverSession::CreateProgressCategory','GMP::Instance::CreateProgressCategory',
-            'GMP::Instance::CreateSolverSession','GMP::Stochastic::CreateBendersRootproblem',
-            'GMP::Instance::Delete','GMP::Instance::DeleteIntegerEliminationRows',
-            'GMP::Instance::DeleteSolverSession','GMP::Instance::FindApproximatelyFeasibleSolution',
-            'GMP::Instance::FixColumns','GMP::Instance::Generate','GMP::Instance::GenerateRobustCounterpart',
-            'GMP::Instance::GenerateStochasticProgram','GMP::SolverSession::GetCallbackInterruptStatus',
-            'GMP::SolverSession::WaitForCompletion','GMP::SolverSession::WaitForSingleCompletion',
-            'GMP::SolverSession::ExecutionStatus','GMP::Instance::GetDirection','GMP::Instance::GetLinearObjective',
-            'GMP::Instance::GetMathematicalProgrammingType','GMP::Instance::GetMemoryUsed',
-            'GMP::Instance::GetNumberOfColumns','GMP::Instance::GetNumberOfIndicatorRows',
-            'GMP::Instance::GetNumberOfIntegerColumns','GMP::Instance::GetNumberOfNonlinearColumns',
-            'GMP::Instance::GetNumberOfNonlinearNonzeros','GMP::Instance::GetNumberOfNonlinearRows',
-            'GMP::Instance::GetNumberOfNonzeros','GMP::Instance::GetNumberOfRows',
-            'GMP::Instance::GetNumberOfSOS1Rows','GMP::Instance::GetNumberOfSOS2Rows',
-            'GMP::Instance::GetObjective','GMP::Instance::GetOptionValue','GMP::Instance::GetSolver',
-            'GMP::Instance::GetSymbolicMathematicalProgram','GMP::Instance::MemoryStatistics',
-            'GMP::Instance::Rename','GMP::Instance::SetCallbackAddCut','GMP::Instance::SetCallbackBranch',
-            'GMP::Instance::SetCallbackHeuristic','GMP::Instance::SetCallbackIncumbent',
-            'GMP::Instance::SetCallbackIterations','GMP::Instance::SetCallbackNewIncumbent',
-            'GMP::Instance::SetCallbackStatusChange','GMP::Instance::SetCutoff','GMP::Instance::SetDirection',
-            'GMP::Instance::SetMathematicalProgrammingType','GMP::Instance::SetSolver','GMP::Instance::Solve',
-            'GMP::Stochastic::GetObjectiveBound','GMP::Stochastic::GetRelativeWeight',
-            'GMP::Stochastic::GetRepresentativeScenario','GMP::Stochastic::UpdateBendersSubproblem',
-            'GMP::Linearization::Add','GMP::Linearization::AddSingle','GMP::Linearization::Delete',
-            'GMP::Linearization::GetDeviation','GMP::Linearization::GetDeviationBound',
-            'GMP::Linearization::GetLagrangeMultiplier','GMP::Linearization::GetType',
-            'GMP::Linearization::GetWeight','GMP::Linearization::RemoveDeviation',
-            'GMP::Linearization::SetDeviationBound','GMP::Linearization::SetType',
-            'GMP::Linearization::SetWeight','GMP::ProgressWindow::DeleteCategory',
-            'GMP::ProgressWindow::DisplayLine','GMP::ProgressWindow::DisplayProgramStatus',
-            'GMP::ProgressWindow::DisplaySolver','GMP::ProgressWindow::DisplaySolverStatus',
-            'GMP::ProgressWindow::FreezeLine','GMP::ProgressWindow::UnfreezeLine',
-            'GMP::QuadraticCoefficient::Get','GMP::QuadraticCoefficient::Set','GMP::Row::Activate',
-            'GMP::Stochastic::AddBendersFeasibilityCut','GMP::Stochastic::AddBendersOptimalityCut',
-            'GMP::Stochastic::BendersFindFeasibilityReference','GMP::Stochastic::MergeSolution',
-            'GMP::Row::Add','GMP::Row::Deactivate','GMP::Row::Delete','GMP::Row::DeleteIndicatorCondition',
-            'GMP::Row::Generate','GMP::Row::GetConvex','GMP::Row::GetIndicatorColumn',
-            'GMP::Row::GetIndicatorCondition','GMP::Row::GetLeftHandSide','GMP::Row::GetRelaxationOnly',
-            'GMP::Row::GetRightHandSide','GMP::Row::GetScale','GMP::Row::GetStatus','GMP::Row::GetType',
-            'GMP::Row::SetConvex','GMP::Row::SetIndicatorCondition','GMP::Row::SetLeftHandSide',
-            'GMP::Row::SetRelaxationOnly','GMP::Row::SetRightHandSide','GMP::Row::SetType',
-            'GMP::Solution::Check','GMP::Solution::Copy','GMP::Solution::Count','GMP::Solution::Delete',
-            'GMP::Solution::DeleteAll','GMP::Solution::GetColumnValue','GMP::Solution::GetCPUSecondsUsed',
-            'GMP::Solution::GetDistance','GMP::Solution::GetFirstOrderDerivative',
-            'GMP::Solution::GetIterationsUsed','GMP::Solution::GetNodesUsed','GMP::Solution::GetLinearObjective',
-            'GMP::Solution::GetMemoryUsed','GMP::Solution::GetObjective','GMP::Solution::GetPenalizedObjective',
-            'GMP::Solution::GetProgramStatus','GMP::Solution::GetRowValue','GMP::Solution::GetSolutionsSet',
-            'GMP::Solution::GetSolverStatus','GMP::Solution::IsDualDegenerated','GMP::Solution::IsInteger',
-            'GMP::Solution::IsPrimalDegenerated','GMP::Solution::SetMIPStartFlag','GMP::Solution::Move',
-            'GMP::Solution::RandomlyGenerate','GMP::Solution::RetrieveFromModel',
-            'GMP::Solution::RetrieveFromSolverSession','GMP::Solution::SendToModel',
-            'GMP::Solution::SendToModelSelection','GMP::Solution::SendToSolverSession',
-            'GMP::Solution::SetIterationCount','GMP::Solution::SetProgramStatus','GMP::Solution::SetSolverStatus',
-            'GMP::Solution::UpdatePenaltyWeights','GMP::Solution::ConstructMean',
-            'GMP::SolverSession::AsynchronousExecute','GMP::SolverSession::Execute',
-            'GMP::SolverSession::Interrupt','GMP::SolverSession::AddLinearization',
-            'GMP::SolverSession::GenerateBranchLowerBound','GMP::SolverSession::GenerateBranchUpperBound',
-            'GMP::SolverSession::GenerateBranchRow','GMP::SolverSession::GenerateCut',
-            'GMP::SolverSession::GenerateBinaryEliminationRow','GMP::SolverSession::GetCPUSecondsUsed',
-            'GMP::SolverSession::GetHost','GMP::SolverSession::GetInstance',
-            'GMP::SolverSession::GetIterationsUsed','GMP::SolverSession::GetNodesLeft',
-            'GMP::SolverSession::GetNodesUsed','GMP::SolverSession::GetNodeNumber',
-            'GMP::SolverSession::GetNodeObjective','GMP::SolverSession::GetNumberOfBranchNodes',
-            'GMP::SolverSession::GetLinearObjective','GMP::SolverSession::GetMemoryUsed',
-            'GMP::SolverSession::GetObjective','GMP::SolverSession::GetOptionValue',
-            'GMP::SolverSession::GetProgramStatus','GMP::SolverSession::GetSolver',
-            'GMP::SolverSession::GetSolverStatus','GMP::SolverSession::RejectIncumbent',
-            'GMP::Event::Create','GMP::Event::Delete','GMP::Event::Reset','GMP::Event::Set',
-            'GMP::SolverSession::SetObjective','GMP::SolverSession::SetOptionValue',
-            'GMP::Instance::SetCPUSecondsLimit','GMP::Instance::SetIterationLimit',
-            'GMP::Instance::SetMemoryLimit','GMP::Instance::SetOptionValue','GMP::Tuning::SolveSingleMPS',
-            'GMP::Tuning::TuneMultipleMPS','GMP::Tuning::TuneSingleGMP',
-            'GMP::Solver::GetAsynchronousSessionsLimit','GMP::Robust::EvaluateAdjustableVariables',
-            'GenerateXML','GetDatasourceProperty','ReadGeneratedXML','ReadXML','ReferencedIdentifiers',
-            'WriteXML','IdentifierAttributes','IdentifierDimension','IsRuntimeIdentifier','IdentifierMemory',
-            'IdentifierMemoryStatistics','IdentifierText','IdentifierType','IdentifierUnit','ScalarValue',
-            'SectionIdentifiers','SubRange','MemoryInUse','CommitTransaction','RollbackTransaction',
-            'MemoryStatistics','me::AllowedAttribute','me::ChangeType','me::ChangeTypeAllowed','me::Children',
-            'me::ChildTypeAllowed','me::Compile','me::Create','me::CreateLibrary','me::Delete','me::ExportNode',
-            'me::GetAttribute','me::ImportLibrary','me::ImportNode','me::IsRunnable','me::Move','me::Parent',
-            'me::Rename','me::SetAttribute','MomentToString','MomentToTimeSlot','OptionGetValue',
-            'OptionGetKeywords','OptionGetString','OptionSetString','OptionSetValue','PeriodToString',
-            'ProfilerContinue','ProfilerPause','ProfilerRestart','RestoreInactiveElements',
-            'RetrieveCurrentVariableValues','SetAddRecursive','SetElementAdd','SetElementRename',
-            'SQLColumnData','SQLCreateConnectionString','SQLDriverName','SQLNumberOfColumns',
-            'SQLNumberOfDrivers','SQLNumberOfTables','SQLNumberOfViews','SQLTableName','SQLViewName',
-            'StartTransaction','StringToElement','StringToMoment','StringToTimeSlot','TestDatabaseColumn',
-            'TestDatabaseTable','TestDataSource','TestDate','TimeslotCharacteristic','TimeslotToMoment',
-            'TimeslotToString','TimeZoneOffset','VariableConstraints','PageOpen','PageOpenSingle','PageClose',
-            'PageGetActive','PageSetFocus','PageGetFocus','PageSetCursor','PageRefreshAll','PageGetChild',
-            'PageGetParent','PageGetNext','PageGetPrevious','PageGetNextInTreeWalk','PageGetUsedIdentifiers',
-            'PageGetTitle','PageGetAll','PageCopyTableToClipboard','PageCopyTableToExcel','PrintPage',
-            'PrintPageCount','PrintStartReport','PrintEndReport','PivotTableReloadState','PivotTableSaveState',
-            'PivotTableDeleteState','FileSelect','FileSelectNew','FileDelete','FileExists','FileCopy',
-            'FileMove','FileView','FileEdit','FilePrint','FileTime','FileTouch','FileAppend','FileGetSize',
-            'DirectorySelect','DirectoryCreate','DirectoryDelete','DirectoryExists','DirectoryCopy',
-            'DirectoryMove','DirectoryGetCurrent','DialogProgress','DialogMessage','DialogError',
-            'StatusMessage','DialogAsk','DialogGetString','DialogGetDate','DialogGetNumber','DialogGetElement',
-            'DialogGetElementByText','DialogGetElementByData','DialogGetPassword','DialogGetColor','CaseNew',
-            'CaseFind','CaseCreate','CaseLoadCurrent','CaseMerge','CaseLoadIntoCurrent','CaseSelect',
-            'CaseSelectNew','CaseSetCurrent','CaseSave','CaseSaveAll','CaseSaveAs','CaseSelectMultiple',
-            'CaseGetChangedStatus','CaseSetChangedStatus','CaseDelete','CaseGetType','CaseGetDatasetReference',
-            'CaseWriteToSingleFile','CaseReadFromSingleFile','DatasetNew','DatasetFind','DatasetCreate',
-            'DatasetLoadCurrent','DatasetMerge','DatasetLoadIntoCurrent','DatasetSelect','DatasetSelectNew',
-            'DatasetSetCurrent','DatasetSave','DatasetSaveAll','DatasetSaveAs','DatasetGetChangedStatus',
-            'DatasetSetChangedStatus','DatasetDelete','DatasetGetCategory','DataFileGetName',
-            'DataFileGetAcronym','DataFileSetAcronym','DataFileGetComment','DataFileSetComment',
-            'DataFileGetPath','DataFileGetTime','DataFileGetOwner','DataFileGetGroup','DataFileReadPermitted',
-            'DataFileWritePermitted','DataFileExists','DataFileCopy','DataCategoryContents','CaseTypeContents',
-            'CaseTypeCategories','Execute','OpenDocument','TestInternetConnection','GeoFindCoordinates',
-            'ShowHelpTopic','Delay','ScheduleAt','ExitAimms','SessionArgument','SessionHasVisibleGUI',
-            'ProjectDeveloperMode','DebuggerBreakpoint','ShowProgressWindow','ShowMessageWindow',
-            'SolverGetControl','SolverReleaseControl','ProfilerStart','DataManagerImport','DataManagerExport',
-            'DataManagerFileNew','DataManagerFileOpen','DataManagerFileGetCurrent','DataImport220',
-            'SecurityGetUsers','SecurityGetGroups','UserColorAdd','UserColorDelete','UserColorGetRGB',
-            'UserColorModify','LicenseNumber','LicenseType','LicenseStartDate','LicenseExpirationDate',
-            'LicenseMaintenanceExpirationDate','VARLicenseExpirationDate','AimmsRevisionString',
-            'VARLicenseCreate','HistogramCreate','HistogramDelete','HistogramSetDomain',
-            'HistogramAddObservation','HistogramGetFrequencies','HistogramGetBounds',
-            'HistogramGetObservationCount','HistogramGetAverage','HistogramGetDeviation',
-            'HistogramGetSkewness','HistogramGetKurtosis','DateDifferenceDays','DateDifferenceYearFraction',
-            'PriceFractional','PriceDecimal','RateEffective','RateNominal','DepreciationLinearLife',
-            'DepreciationLinearRate','DepreciationNonLinearSumOfYear','DepreciationNonLinearLife',
-            'DepreciationNonLinearFactor','DepreciationNonLinearRate','DepreciationSum',
-            'InvestmentConstantPresentValue','InvestmentConstantFutureValue',
-            'InvestmentConstantPeriodicPayment','InvestmentConstantInterestPayment',
-            'InvestmentConstantPrincipalPayment','InvestmentConstantCumulativePrincipalPayment',
-            'InvestmentConstantCumulativeInterestPayment','InvestmentConstantNumberPeriods',
-            'InvestmentConstantRateAll','InvestmentConstantRate','InvestmentVariablePresentValue',
-            'InvestmentVariablePresentValueInperiodic','InvestmentSingleFutureValue',
-            'InvestmentVariableInternalRateReturnAll','InvestmentVariableInternalRateReturn',
-            'InvestmentVariableInternalRateReturnInperiodicAll','InvestmentVariableInternalRateReturnInperiodic',
-            'InvestmentVariableInternalRateReturnModified','SecurityDiscountedPrice',
-            'SecurityDiscountedRedemption','SecurityDiscountedYield','SecurityDiscountedRate',
-            'TreasuryBillPrice','TreasuryBillYield','TreasuryBillBondEquivalent','SecurityMaturityPrice',
-            'SecurityMaturityCouponRate','SecurityMaturityYield','SecurityMaturityAccruedInterest',
-            'SecurityCouponNumber','SecurityCouponPreviousDate','SecurityCouponNextDate','SecurityCouponDays',
-            'SecurityCouponDaysPreSettlement','SecurityCouponDaysPostSettlement','SecurityPeriodicPrice',
-            'SecurityPeriodicRedemption','SecurityPeriodicCouponRate','SecurityPeriodicYieldAll',
-            'SecurityPeriodicYield','SecurityPeriodicAccruedInterest','SecurityPeriodicDuration',
-            'SecurityPeriodicDurationModified','Abs','AtomicUnit','Ceil','Character','CharacterNumber','Cube',
-            'Degrees','Div','Exp','FileRead','Floor','Log','Log10','Mapval','Max','Min','Mod','Power',
-            'Radians','Round','Sign','Sqr','Sqrt','StringCapitalize','StringLength','StringToLower',
-            'StringToUnit','StringToUpper','SubString','Trunc','Binomial','NegativeBinomial','Poisson',
-            'Geometric','HyperGeometric','Uniform','Normal','LogNormal','Triangular','Exponential','Weibull',
-            'Beta','Gamma','Logistic','Pareto','ExtremeValue','Precision','Factorial','Combination',
-            'Permutation','Errorf','Cos','Sin','Tan','ArcCos','ArcSin','ArcTan','Cosh','Sinh','Tanh',
-            'ArcCosh','ArcSinh','ArcTanh'
-            )
-        ),
-    'SYMBOLS' => array(
-        0 => array(
-            '(', ')', '[', ']', '{', '}',
-            '%', '&', '|', '/',
-            '<', '>', '>=' , '<=', ':=',
-            '=', '-', '+', '*',
-            '.', ','
-            )
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false,
-        2 => false,
-        3 => false,
-        4 => false
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #0000FF;',
-            2 => 'color: #000000; font-weight: bold;',
-            3 => 'color: #404040;',
-            4 => 'color: #990000; font-weight: bold;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #009900;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #808080; font-style: italic ',
-            'HARD' => 'color: #808080; font-style: italic'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #cc66cc;',
-            GESHI_NUMBER_OCT_PREFIX => 'color: #208080;',
-            GESHI_NUMBER_HEX_PREFIX => 'color: #208080;',
-            GESHI_NUMBER_FLT_SCI_ZERO => 'color:#800080;',
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #008000; font-style: italic;',
-            'MULTI' => 'color: #008000; font-style: italic;'
-            ),
-
-        'METHODS' => array(
-            1 => 'color: #004000;',
-            2 => 'color: #004000;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #339933;',
-            1 => 'color: #000000; font-weight: bold;'
-            ),
-        'REGEXPS' => array(
-            ),
-        'SCRIPT' => array(
-            0 => '',
-            1 => '',
-            2 => '',
-            3 => '',
-            4 => '',
-            5 => ''
-            ),
-        'ESCAPE_CHAR' => array()
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => '',
-        4 => ''
-        ),
-    'OOLANG' => false,
-    'TAB_WIDTH' => 4
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/algol68.php b/wiki/vendor/geshi/geshi/src/geshi/algol68.php
deleted file mode 100644
index f1555c6..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/algol68.php
+++ /dev/null
@@ -1,328 +0,0 @@
-<?php
-/*************************************************************************************
- * algol68.php
- * --------
- * Author: Neville Dempsey (NevilleD.sourceforge@sgr-a.net)
- * Copyright: (c) 2010 Neville Dempsey (https://sourceforge.net/projects/algol68/files/)
- * Release Version: 1.0.9.0
- * Date Started: 2010/04/24
- *
- * ALGOL 68 language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2010/04/24 (1.0.8.8.0)
- *   - First Release - machine generated by http://rosettacode.org/geshi/
- * 2010/05/24 (1.0.8.8.1)
- *   - #2324 - converted comment detection to RegEx
- * 2010/06/16 (1.0.8.8.2)
- *   - separate symbols from keywords - quick fix
- * 2010/06/16 (1.0.8.8.3)
- *   - reverse length order symbols
- *   - Add RegEx for BITS and REAL literals (INT to do)
- *   - recognise LONG and SHORT prefixes to literals
- * 2010/07/23 (1.0.8.8.4)
- *   - fix errors detected by langcheck.php, eg rm tab, fix indenting, rm duplicate keywords, fix symbols as keywords etc
- *   - removed bulk of local variables from name space.
- *   - unfolded arrays
- *
- * TODO (updated yyyy/mm/dd)
- * -------------------------
- *   - Use "Parser Control" to fix KEYWORD parsing, eg: (INT minus one= -1; print(ABSminus one))
- *   - Parse $FORMATS$ more fully - if possible.
- *   - Pull reserved words from the source of A68G and A68RS
- *   - Pull stdlib PROC/OP/MODE symbols from the soruce of A68G and A68RS
- *   - Pull PROC/OP/MODE extensions from the soruce of A68G and A68RS
- *   - Use RegEx to detect extended precision PROC names, eg 'long long sin' etc
- *   - Use RegEx to detect white space std PROC names, eg 'new line'
- *   - Use RegEx to detect white space ext PROC names, eg 'cgs speed of light'
- *   - Use RegEx to detect BOLD symbols, eg userdefined MODEs and OPs
- *   - Add REgEx for INT literals - Adding INT breaks formatting...
- *   - Adding PIPE as a key word breaks formatting of "|" symbols!!
- *
- *************************************************************************************
- *
- *     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
- *
- ************************************************************************************/
-
-if(!function_exists('geshi_langfile_algol68_vars')) {
-    function geshi_langfile_algol68_vars(){
-        $pre='(?<![0-9a-z_\.])';
-        $post='?(?![0-9a-z]|\.(?:[eE][+\-]?)?\d)';
-        $post=""; # assuming the RegEx is greedy #
-
-        $_="\s*";
-
-        $srad="Rr";        $rrad="[".$srad."]";  # either one digit, OR opt-space in digits #
-        $sbin="0-1";       $rbin="[".$sbin."]";  $_bin=$rbin."(?:[".$sbin."\s]*".$rbin."|)";
-        $snib="0-3";       $rnib="[".$snib."]";  $_nib=$rnib."(?:[".$snib."\s]*".$rnib."|)";
-        $soct="0-7";       $roct="[".$soct."]";  $_oct=$roct."(?:[".$soct."\s]*".$roct."|)";
-        $sdec="0-9";       $rdec="[".$sdec."]";  $_dec=$rdec."(?:[".$sdec."\s]*".$rdec."|)";
-        $shex="0-9A-Fa-f"; $rhex="[".$shex."]";  $_hex=$rhex."(?:[".$shex."\s]*".$rhex."|)";
-
-        # Define BITS: #
-        $prebits=$pre; $postbits=$post;
-        $bl="2".$_.$rrad.$_.$_bin;
-        $bl=$bl."|"."2".$_.$rrad.$_.$_bin;
-        $bl=$bl."|"."4".$_.$rrad.$_.$_nib;
-        $bl=$bl."|"."8".$_.$rrad.$_.$_oct;
-        $bl=$bl."|"."1".$_."0".$_.$rrad.$_.$_dec;
-        $bl=$bl."|"."1".$_."6".$_.$rrad.$_.$_hex;
-
-        # Define INT: #
-        $preint=$pre; $postint=$post;
-        # 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 # // 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)';
-
-        # Define REAL: #
-        $prereal=$pre; $postreal=$post;
-        $sexp="Ee\\\\";   $_exp="(?:â¨|[".$sexp."])".$_.$_int;
-        $_decimal="[.]".$_.$_dec;
-
-        # Add permitted permutations of various parts #
-        $rl=        $_int.$_.$_decimal.$_.$_exp; # +_9_._9_e_+_9 #
-        $rl=$rl."|".$_int.$_."[.]".$_.$_exp;     # +_9_.___e_+_9 #
-        $rl=$rl."|".$_int.$_.$_exp;              # +_9_____e_+_9 #
-        $rl=$rl."|".$sign_.$_decimal.$_.$_exp;   # +___._9_e_+_9 #
-
-        $rl=$rl."|".$_int.$_.$_decimal;          # +_9_._9       #
-        $rl=$rl."|".$sign_.$_decimal;            # +___._9       #
-
-        # The following line damaged formatting...
-        #$rl=$rl."|".$_int;                       # +_9           #
-
-        # Apparently Algol68 does not support '2.', c.f. Algol 68G
-        #$rl=$rl."|".$_int.$_."[.]";             # +_9_.         #
-
-        # Literal prefixes are overridden by KEYWORDS :-(
-        $LONGS="(?:(?:(LONG\s+)*|(SHORT\s+))*|)";
-
-        return array(
-            "BITS" => $prebits.$LONGS."(?:".$bl.")".$postbits,
-            "INT" => $preint.$LONGS."(?:".$il.")".$postint,
-            "REAL" => $prereal.$LONGS."(?:".$rl.")".$postreal,
-
-            "BOLD" => 'color: #b1b100; font-weight: bold;',
-            "ITALIC" => 'color: #b1b100;', # procedures traditionally italic #
-            "NONSTD" => 'color: #FF0000; font-weight: bold;', # RED #
-            "COMMENT" => 'color: #666666; font-style: italic;'
-        );
-    }
-}
-$a68=geshi_langfile_algol68_vars();
-
-$language_data = array(
-    'LANG_NAME' => 'ALGOL 68',
-    'COMMENT_SINGLE' => array(),
-    'COMMENT_MULTI' => array(
-        '¢' => '¢',
-        '£' => '£',
-        '#' => '#',
-        ),
-    'COMMENT_REGEXP' => array(
-        1 => '/\bCO((?:MMENT)?)\b.*?\bCO\\1\b/i',
-        2 => '/\bPR((?:AGMAT)?)\b.*?\bPR\\1\b/i',
-        3 => '/\bQUOTE\b.*?\bQUOTE\b/i'
-        ),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array('"'),
-    'ESCAPE_CHAR' => '"',
-    'NUMBERS' => GESHI_NUMBER_HEX_SUFFIX,  # Warning: Feature!! #
-#                GESHI_NUMBER_HEX_SUFFIX, # Attempt ignore default #
-    'KEYWORDS' => array(
-# Extensions
-        1 => array('KEEP', 'FINISH', 'USE', 'SYSPROCS', 'IOSTATE', 'USING', 'ENVIRON', 'PROGRAM', 'CONTEXT'),
-#        2 => array('CASE', 'IN', 'OUSE', 'IN', 'OUT', 'ESAC', '(', '|', '|:', ')', 'FOR', 'FROM', 'TO', 'BY', 'WHILE', 'DO', 'OD', 'IF', 'THEN', 'ELIF', 'THEN', 'ELSE', 'FI', 'PAR', 'BEGIN', 'EXIT', 'END', 'GO', 'GOTO', 'FORALL', 'UPTO', 'DOWNTO', 'FOREACH', 'ASSERT'), #
-        2 => array('CASE', 'IN', 'OUSE', /* 'IN',*/ 'OUT', 'ESAC', 'PAR', 'BEGIN', 'EXIT', 'END', 'GO TO', 'GOTO', 'FOR', 'FROM', 'TO', 'BY', 'WHILE', 'DO', 'OD', 'IF', 'THEN', 'ELIF', /* 'THEN',*/ 'ELSE', 'FI' ),
-        3 => array('BITS', 'BOOL', 'BYTES', 'CHAR', 'COMPL', 'INT', 'REAL', 'SEMA', 'STRING', 'VOID'),
-        4 => array('MODE', 'OP', 'PRIO', 'PROC', 'FLEX', 'HEAP', 'LOC', 'REF', 'LONG', 'SHORT', 'EITHER'),
-# Extensions or deprecated keywords
-# 'PIPE': keyword somehow interferes with the internal operation of GeSHi
-        5 => array('FORALL', 'UPTO', 'DOWNTO', 'FOREACH', 'ASSERT', 'CTB', 'CT', 'CTAB', 'COMPLEX', 'VECTOR', 'SOUND' /*, 'PIPE'*/),
-        6 => array('CHANNEL', 'FILE', 'FORMAT', 'STRUCT', 'UNION', 'OF'),
-# '(', '|', '|:', ')',  #
-#        7 => array('OF', 'AT', '@', 'IS', ':=:', 'ISNT', ':/=:', ':≠:', 'CTB', 'CT', '::', 'CTAB', '::=', 'TRUE', 'FALSE', 'EMPTY', 'NIL', '○', 'SKIP', '~'),
-        7 => array('AT', 'IS', 'ISNT', 'TRUE', 'FALSE', 'EMPTY', 'NIL', 'SKIP'),
-        8 => array('NOT', 'UP', 'DOWN', 'LWB', 'UPB', /* '-',*/ 'ABS', 'ARG', 'BIN', 'ENTIER', 'LENG', 'LEVEL', 'ODD', 'REPR', 'ROUND', 'SHORTEN', 'CONJ', 'SIGN'),
-# OPERATORS ordered roughtly by PRIORITY #
-#       9 => array('¬', '↑', '↓', '⌊', '⌈', '~', '⎩', '⎧'),
-#        10 => array('+*', 'I', '+×', '⊥', '!', 'â¨'),
-        10 => array('I'),
-#        11 => array('SHL', 'SHR', '**', 'UP', 'DOWN', 'LWB', 'UPB', '↑', '↓', '⌊', '⌈', '⎩', '⎧'),
-        11 => array('SHL', 'SHR', /*'UP', 'DOWN', 'LWB', 'UPB'*/),
-#        12 => array('*', '/', '%', 'OVER', '%*', 'MOD', 'ELEM', '×', '÷', '÷×', '÷*', '%×', '□', '÷:'),
-        12 => array('OVER', 'MOD', 'ELEM'),
-#        13 => array('-', '+'),
-#        14 => array('<', 'LT', '<=', 'LE', '>=', 'GE', '>', 'GT', '≤', '≥'),
-        14 => array('LT', 'LE', 'GE', 'GT'),
-#        15 => array('=', 'EQ', '/=', 'NE', '≠', '~='),
-        15 => array('EQ', 'NE'),
-#        16 => array('&', 'AND', '∧', 'OR', '∨', '/\\', '\\/'),
-        16 => array('AND', 'OR'),
-        17 => array('MINUSAB', 'PLUSAB', 'TIMESAB', 'DIVAB', 'OVERAB', 'MODAB', 'PLUSTO'),
-#        18 => array('-:=', '+:=', '*:=', '/:=', '%:=', '%*:=', '+=:', '×:=', '÷:=', '÷×:=', '÷*:=', '%×:=', '÷::=', 'MINUS', 'PLUS', 'DIV', 'MOD', 'PRUS'),
-# Extensions or deprecated keywords
-        18 => array('MINUS', 'PLUS', 'DIV', /* 'MOD',*/ 'PRUS', 'IS NOT'),
-# Extensions or deprecated keywords
-        19 => array('THEF', 'ANDF', 'ORF', 'ANDTH', 'OREL', 'ANDTHEN', 'ORELSE'),
-# Built in procedures - from standard prelude #
-        20 => array('int lengths', 'intlengths', 'int shorths', 'intshorths', 'max int', 'maxint', 'real lengths', 'reallengths', 'real shorths', 'realshorths', 'bits lengths', 'bitslengths', 'bits shorths', 'bitsshorths', 'bytes lengths', 'byteslengths', 'bytes shorths', 'bytesshorths', 'max abs char', 'maxabschar', 'int width', 'intwidth', 'long int width', 'longintwidth', 'long long int width', 'longlongintwidth', 'real width', 'realwidth', 'long real width', 'longrealwidth', 'long long real width', 'longlongrealwidth', 'exp width', 'expwidth', 'long exp width', 'longexpwidth', 'long long exp width', 'longlongexpwidth', 'bits width', 'bitswidth', 'long bits width', 'longbitswidth', 'long long bits width', 'longlongbitswidth', 'bytes width', 'byteswidth', 'long bytes width', 'longbyteswidth', 'max real', 'maxreal', 'small real', 'smallreal', 'long max int', 'longmaxint', 'long long max int', 'longlongmaxint', 'long max real', 'longmaxreal', 'long small real', 'longsmallreal', 'long long max real', 'longlongmaxreal', 'long long small real', 'longlongsmallreal', 'long max bits', 'longmaxbits', 'long long max bits', 'longlongmaxbits', 'null character', 'nullcharacter', 'blank', 'flip', 'flop', 'error char', 'errorchar', 'exp char', 'expchar', 'newline char', 'newlinechar', 'formfeed char', 'formfeedchar', 'tab char', 'tabchar'),
-        21 => array('stand in channel', 'standinchannel', 'stand out channel', 'standoutchannel', 'stand back channel', 'standbackchannel', 'stand draw channel', 'standdrawchannel', 'stand error channel', 'standerrorchannel'),
-        22 => array('put possible', 'putpossible', 'get possible', 'getpossible', 'bin possible', 'binpossible', 'set possible', 'setpossible', 'reset possible', 'resetpossible', 'reidf possible', 'reidfpossible', 'draw possible', 'drawpossible', 'compressible', 'on logical file end', 'onlogicalfileend', 'on physical file end', 'onphysicalfileend', 'on line end', 'onlineend', 'on page end', 'onpageend', 'on format end', 'onformatend', 'on value error', 'onvalueerror', 'on open error', 'onopenerror', 'on transput error', 'ontransputerror', 'on format error', 'onformaterror', 'open', 'establish', 'create', 'associate', 'close', 'lock', 'scratch', 'space', 'new line', 'newline', 'print', 'write f', 'writef', 'print f', 'printf', 'write bin', 'writebin', 'print bin', 'printbin', 'read f', 'readf', 'read bin', 'readbin', 'put f', 'putf', 'get f', 'getf', 'make term', 'maketerm', 'make device', 'makedevice', 'idf', 'term', 'read int', 'readint', 'read long int', 'readlongint', 'read long long int', 'readlonglongint', 'read real', 'readreal', 'read long real', 'readlongreal', 'read long long real', 'readlonglongreal', 'read complex', 'readcomplex', 'read long complex', 'readlongcomplex', 'read long long complex', 'readlonglongcomplex', 'read bool', 'readbool', 'read bits', 'readbits', 'read long bits', 'readlongbits', 'read long long bits', 'readlonglongbits', 'read char', 'readchar', 'read string', 'readstring', 'print int', 'printint', 'print long int', 'printlongint', 'print long long int', 'printlonglongint', 'print real', 'printreal', 'print long real', 'printlongreal', 'print long long real', 'printlonglongreal', 'print complex', 'printcomplex', 'print long complex', 'printlongcomplex', 'print long long complex', 'printlonglongcomplex', 'print bool', 'printbool', 'print bits', 'printbits', 'print long bits', 'printlongbits', 'print long long bits', 'printlonglongbits', 'print char', 'printchar', 'print string', 'printstring', 'whole', 'fixed', 'float'),
-        23 => array('pi', 'long pi', 'longpi', 'long long pi', 'longlongpi'),
-        24 => array('sqrt', 'curt', 'cbrt', 'exp', 'ln', 'log', 'sin', 'arc sin', 'arcsin', 'cos', 'arc cos', 'arccos', 'tan', 'arc tan', 'arctan', 'long sqrt', 'longsqrt', 'long curt', 'longcurt', 'long cbrt', 'longcbrt', 'long exp', 'longexp', 'long ln', 'longln', 'long log', 'longlog', 'long sin', 'longsin', 'long arc sin', 'longarcsin', 'long cos', 'longcos', 'long arc cos', 'longarccos', 'long tan', 'longtan', 'long arc tan', 'longarctan', 'long long sqrt', 'longlongsqrt', 'long long curt', 'longlongcurt', 'long long cbrt', 'longlongcbrt', 'long long exp', 'longlongexp', 'long long ln', 'longlongln', 'long long log', 'longlonglog', 'long long sin', 'longlongsin', 'long long arc sin', 'longlongarcsin', 'long long cos', 'longlongcos', 'long long arc cos', 'longlongarccos', 'long long tan', 'longlongtan', 'long long arc tan', 'longlongarctan'),
-        25 => array('first random', 'firstrandom', 'next random', 'nextrandom', 'long next random', 'longnextrandom', 'long long next random', 'longlongnextrandom'),
-        26 => array('real', 'bits pack', 'bitspack', 'long bits pack', 'longbitspack', 'long long bits pack', 'longlongbitspack', 'bytes pack', 'bytespack', 'long bytes pack', 'longbytespack', 'char in string', 'charinstring', 'last char in string', 'lastcharinstring', 'string in string', 'stringinstring'),
-        27 => array('utc time', 'utctime', 'local time', 'localtime', 'argc', 'argv', 'get env', 'getenv', 'reset errno', 'reseterrno', 'errno', 'strerror'),
-        28 => array('sinh', 'long sinh', 'longsinh', 'long long sinh', 'longlongsinh', 'arc sinh', 'arcsinh', 'long arc sinh', 'longarcsinh', 'long long arc sinh', 'longlongarcsinh', 'cosh', 'long cosh', 'longcosh', 'long long cosh', 'longlongcosh', 'arc cosh', 'arccosh', 'long arc cosh', 'longarccosh', 'long long arc cosh', 'longlongarccosh', 'tanh', 'long tanh', 'longtanh', 'long long tanh', 'longlongtanh', 'arc tanh', 'arctanh', 'long arc tanh', 'longarctanh', 'long long arc tanh', 'longlongarctanh', 'arc tan2', 'arctan2', 'long arc tan2', 'longarctan2', 'long long arc tan2', 'longlongarctan2'),
-        29 => array('complex sqrt', 'complexsqrt', 'long complex sqrt', 'longcomplexsqrt', 'long long complex sqrt', 'longlongcomplexsqrt', 'complex exp', 'complexexp', 'long complex exp', 'longcomplexexp', 'long long complex exp', 'longlongcomplexexp', 'complex ln', 'complexln', 'long complex ln', 'longcomplexln', 'long long complex ln', 'longlongcomplexln', 'complex sin', 'complexsin', 'long complex sin', 'longcomplexsin', 'long long complex sin', 'longlongcomplexsin', 'complex arc sin', 'complexarcsin', 'long complex arc sin', 'longcomplexarcsin', 'long long complex arc sin', 'longlongcomplexarcsin', 'complex cos', 'complexcos', 'long complex cos', 'longcomplexcos', 'long long complex cos', 'longlongcomplexcos', 'complex arc cos', 'complexarccos', 'long complex arc cos', 'longcomplexarccos', 'long long complex arc cos', 'longlongcomplexarccos', 'complex tan', 'complextan', 'long complex tan', 'longcomplextan', 'long long complex tan', 'longlongcomplextan', 'complex arc tan', 'complexarctan', 'long complex arc tan', 'longcomplexarctan', 'long long complex arc tan', 'longlongcomplexarctan', 'complex sinh', 'complexsinh', 'complex arc sinh', 'complexarcsinh', 'complex cosh', 'complexcosh', 'complex arc cosh', 'complexarccosh', 'complex tanh', 'complextanh', 'complex arc tanh', 'complexarctanh')
-        ),
-    'SYMBOLS' => array(
-        1 => array( /* reverse length sorted... */ '÷×:=', '%×:=', ':≠:', '÷*:=', '÷::=', '%*:=', ':/=:', '×:=', '÷:=', '÷×', '%:=', '%×', '*:=', '+:=', '+=:', '+×', '-:=', '/:=', '::=', ':=:', '÷*', '÷:', '↑', '↓', '∧', '∨', '≠', '≤', '≥', '⊥', '⌈', '⌊', '⎧', '⎩', /* 'â¨', */ 'â–¡', 'â—‹', '%*', '**', '+*', '/=', '::', '/\\', '\\/', '<=', '>=', '|:', '~=', '¬', '×', '÷', '!', '%', '&', '(', ')', '*', '+', ',', '-', '/', ':', ';', '<', '=', '>', '?', '@', '[', ']', '^', '{', '|', '}', '~')
-    ),
-    '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,
-        25 => true,
-        26 => true,
-        27 => true,
-        28 => true,
-        29 => true
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => $a68['NONSTD'], 2 => $a68['BOLD'], 3 => $a68['BOLD'], 4 => $a68['BOLD'],
-            5 => $a68['NONSTD'], 6 => $a68['BOLD'], 7 => $a68['BOLD'], 8 => $a68['BOLD'],
-            /* 9 => $a68['BOLD'],*/ 10 => $a68['BOLD'], 11 => $a68['BOLD'], 12 => $a68['BOLD'],
-            /* 13 => $a68['BOLD'],*/ 14 => $a68['BOLD'], 15 => $a68['BOLD'], 16 => $a68['BOLD'], 17 => $a68['BOLD'],
-            18 => $a68['NONSTD'], 19 => $a68['NONSTD'],
-            20 => $a68['ITALIC'], 21 => $a68['ITALIC'], 22 => $a68['ITALIC'], 23 => $a68['ITALIC'],
-            24 => $a68['ITALIC'], 25 => $a68['ITALIC'], 26 => $a68['ITALIC'], 27 => $a68['ITALIC'],
-            28 => $a68['ITALIC'], 29 => $a68['ITALIC']
-            ),
-        'COMMENTS' => array(
-            1 => $a68['COMMENT'], 2 => $a68['COMMENT'], 3 => $a68['COMMENT'], /* 4 => $a68['COMMENT'],
-            5 => $a68['COMMENT'],*/ 'MULTI' => $a68['COMMENT']
-            ),
-        '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(
-            0 => 'color: #004000;',
-            1 => 'color: #004000;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #339933;',
-            1 => 'color: #339933;'
-            ),
-        'REGEXPS' => array(
-            0  => 'color: #cc66cc;',   # BITS #
-            1  => 'color: #cc66cc;',   # REAL #
-            /* 2  => 'color: #cc66cc;',   # INT # */
-            ),
-        'SCRIPT' => array()
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => '',
-        4 => '',
-        5 => '',
-        6 => '',
-        7 => '',
-        8 => '',
-#        9 => '',
-        10 => '',
-        11 => '',
-        12 => '',
-#        13 => '',
-        14 => '',
-        15 => '',
-        16 => '',
-        17 => '',
-        18 => '',
-        19 => '',
-        20 => '',
-        21 => '',
-        22 => '',
-        23 => '',
-        24 => '',
-        25 => '',
-        26 => '',
-        27 => '',
-        28 => '',
-        29 => ''
-        ),
-    'OOLANG' => true,
-    'OBJECT_SPLITTERS' => array(
-        0 => '→',
-        1 => 'OF'
-        ),
-    'REGEXPS' => array(
-        0 => $a68['BITS'],
-        1 => $a68['REAL']
-        # 2 => $a68['INT'], # Breaks formatting for some reason #
-        # 2 => $GESHI_NUMBER_INT_BASIC # Also breaks formatting  #
-    ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(),
-    'HIGHLIGHT_STRICT_BLOCK' => array()
-);
-
-unset($a68);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/apache.php b/wiki/vendor/geshi/geshi/src/geshi/apache.php
deleted file mode 100644
index da1f5dd..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/apache.php
+++ /dev/null
@@ -1,481 +0,0 @@
-<?php
-/*************************************************************************************
- * apache.php
- * ----------
- * Author: Tux (tux@inmail.cz)
- * Copyright: (c) 2004 Tux (http://tux.a4.cz/), Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.9.0
- * Date Started: 2004/29/07
- *
- * Apache language file for GeSHi.
- * Words are from SciTe configuration file
- *
- * CHANGES
- * -------
- * 2008/17/06 (1.0.8)
- *  -  Added support for apache configuration sections (milian)
- *  -  Added missing php keywords (milian)
- *  -  Added some more keywords
- *  -  Disabled highlighting of brackets by default
- * 2004/11/27 (1.0.2)
- *  -  Added support for multiple object splitters
- * 2004/10/27 (1.0.1)
- *   -  Added support for URLs
- * 2004/08/05 (1.0.0)
- *   -  First Release
- *
- * TODO (updated 2004/07/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' => 'Apache configuration',
-    'COMMENT_SINGLE' => array(1 => '#'),
-    'COMMENT_MULTI' => array(),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array("'", '"'),
-    'ESCAPE_CHAR' => '\\',
-    'KEYWORDS' => array(
-        /*keywords*/
-        1 => array(
-            //core.c
-            'AcceptFilter','AcceptPathInfo','AccessConfig','AccessFileName',
-            'AddDefaultCharset','AddOutputFilterByType','AllowEncodedSlashes',
-            'AllowOverride','AuthName','AuthType','ContentDigest',
-            'CoreDumpDirectory','DefaultType','DocumentRoot','EnableMMAP',
-            'EnableSendfile','ErrorDocument','ErrorLog','FileETag','ForceType',
-            'HostnameLookups','Include','LimitInternalRecursion',
-            'LimitRequestBody','LimitRequestFields','LimitRequestFieldsize',
-            'LimitRequestLine','LimitXMLRequestBody','LogLevel','MaxMemFree',
-            'MaxRequestsPerChild','NameVirtualHost','Options','PidFile','Port',
-            'Protocol','Require','RLimitCPU','RLimitMEM','RLimitNPROC',
-            'Satisfy','ScoreBoardFile','ServerAdmin','ServerAlias','ServerName',
-            'ServerPath','ServerRoot','ServerSignature','ServerTokens',
-            'SetHandler','SetInputFilter','SetOutputFilter','ThreadStackSize',
-            'Timeout','TraceEnable','UseCanonicalName',
-            'UseCanonicalPhysicalPort',
-
-            //http_core.c
-            'KeepAlive','KeepAliveTimeout','MaxKeepAliveRequests',
-
-            //mod_actions.c
-            'Action','Script',
-
-            //mod_alias.c
-            'Alias','AliasMatch','Redirect','RedirectMatch','RedirectPermanent',
-            'RedirectTemp','ScriptAlias','ScriptAliasMatch',
-
-            //mod_asis.c
-
-            //mod_auth_basic.c
-            'AuthBasicAuthoritative','AuthBasicProvider',
-
-            //mod_auth_digest.c
-            'AuthDigestAlgorithm','AuthDigestDomain','AuthDigestNcCheck',
-            'AuthDigestNonceFormat','AuthDigestNonceLifetime',
-            'AuthDigestProvider','AuthDigestQop','AuthDigestShmemSize',
-
-            //mod_authn_alias.c
-
-            //mod_authn_anon.c
-            'Anonymous','Anonymous_LogEmail','Anonymous_MustGiveEmail',
-            'Anonymous_NoUserId','Anonymous_VerifyEmail',
-
-            //mod_authn_dbd.c
-            'AuthDBDUserPWQuery','AuthDBDUserRealmQuery',
-
-            //mod_authn_dbm.c
-            'AuthDBMType','AuthDBMUserFile',
-
-            //mod_authn_default.c
-            'AuthDefaultAuthoritative',
-
-            //mod_authn_file.c
-            'AuthUserFile',
-
-            //mod_authnz_ldap.c
-            'AuthLDAPBindDN','AuthLDAPBindPassword','AuthLDAPCharsetConfig',
-            'AuthLDAPCompareDNOnServer','AuthLDAPDereferenceAliases',
-            'AuthLDAPGroupAttribute','AuthLDAPGroupAttributeIsDN',
-            'AuthLDAPRemoteUserAttribute','AuthLDAPRemoteUserIsDN',
-            'AuthLDAPURL','AuthzLDAPAuthoritative',
-
-            //mod_authz_dbm.c
-            'AuthDBMGroupFile','AuthzDBMAuthoritative','AuthzDBMType',
-
-            //mod_authz_default.c
-            'AuthzDefaultAuthoritative',
-
-            //mod_authz_groupfile.c
-            'AuthGroupFile','AuthzGroupFileAuthoritative',
-
-            //mod_authz_host.c
-            'Allow','Deny','Order',
-
-            //mod_authz_owner.c
-            'AuthzOwnerAuthoritative',
-
-            //mod_authz_svn.c
-            'AuthzForceUsernameCase','AuthzSVNAccessFile','AuthzSVNAnonymous',
-            'AuthzSVNAuthoritative','AuthzSVNNoAuthWhenAnonymousAllowed',
-
-            //mod_authz_user.c
-            'AuthzUserAuthoritative',
-
-            //mod_autoindex.c
-            'AddAlt','AddAltByEncoding','AddAltByType','AddDescription',
-            'AddIcon','AddIconByEncoding','AddIconByType','DefaultIcon',
-            'FancyIndexing','HeaderName','IndexHeadInsert','IndexIgnore',
-            'IndexOptions','IndexOrderDefault','IndexStyleSheet','ReadmeName',
-
-            //mod_bt.c
-            'Tracker','TrackerDetailURL','TrackerFlags','TrackerHashMaxAge',
-            'TrackerHashMinAge','TrackerHashWatermark','TrackerHome',
-            'TrackerReturnInterval','TrackerReturnMax',
-            'TrackerReturnPeerFactor','TrackerReturnPeers','TrackerRootInclude',
-            'TrackerStyleSheet',
-
-            //mod_bw.c
-            'BandWidth','BandWidthError','BandWidthModule','BandWidthPacket',
-            'ForceBandWidthModule','LargeFileLimit','MaxConnection',
-            'MinBandWidth',
-
-            //mod_cache.c
-            'CacheDefaultExpire','CacheDisable','CacheEnable',
-            'CacheIgnoreCacheControl','CacheIgnoreHeaders',
-            'CacheIgnoreNoLastMod','CacheIgnoreQueryString',
-            'CacheLastModifiedFactor','CacheMaxExpire','CacheStoreNoStore',
-            'CacheStorePrivate',
-
-            //mod_cern_meta.c
-            'MetaDir','MetaFiles','MetaSuffix',
-
-            //mod_cgi.c
-            'ScriptLog','ScriptLogBuffer','ScriptLogLength',
-
-            //mod_charset_lite.c
-            'CharsetDefault','CharsetOptions','CharsetSourceEnc',
-
-            //mod_dav.c
-            'DAV','DAVDepthInfinity','DAVMinTimeout',
-
-            //mod_dav_fs.c
-            'DAVLockDB',
-
-            //mod_dav_lock.c
-            'DAVGenericLockDB',
-
-            //mod_dav_svn.c
-            'SVNActivitiesDB','SVNAllowBulkUpdates','SVNAutoversioning',
-            'SVNIndexXSLT','SVNListParentPath','SVNMasterURI','SVNParentPath',
-            'SVNPath','SVNPathAuthz','SVNReposName','SVNSpecialURI',
-
-            //mod_dbd.c
-            'DBDExptime','DBDKeep','DBDMax','DBDMin','DBDParams','DBDPersist',
-            'DBDPrepareSQL','DBDriver',
-
-            //mod_deflate.c
-            'DeflateBufferSize','DeflateCompressionLevel','DeflateFilterNote',
-            'DeflateMemLevel','DeflateWindowSize',
-
-            //mod_dir.c
-            'DirectoryIndex','DirectorySlash',
-
-            //mod_disk_cache.c
-            'CacheDirLength','CacheDirLevels','CacheMaxFileSize',
-            'CacheMinFileSize','CacheRoot',
-
-            //mod_dumpio.c
-            'DumpIOInput','DumpIOLogLevel','DumpIOOutput',
-
-            //mod_env.c
-            'PassEnv','SetEnv','UnsetEnv',
-
-            //mod_expires.c
-            'ExpiresActive','ExpiresByType','ExpiresDefault',
-
-            //mod_ext_filter.c
-            'ExtFilterDefine','ExtFilterOptions',
-
-            //mod_file_cache.c
-            'cachefile','mmapfile',
-
-            //mod_filter.c
-            'FilterChain','FilterDeclare','FilterProtocol','FilterProvider',
-            'FilterTrace',
-
-            //mod_gnutls.c
-            'GnuTLSCache','GnuTLSCacheTimeout','GnuTLSCertificateFile',
-            'GnuTLSKeyFile','GnuTLSPGPCertificateFile','GnuTLSPGPKeyFile',
-            'GnuTLSClientVerify','GnuTLSClientCAFile','GnuTLSPGPKeyringFile',
-            'GnuTLSEnable','GnuTLSDHFile','GnuTLSRSAFile','GnuTLSSRPPasswdFile',
-            'GnuTLSSRPPasswdConfFile','GnuTLSPriorities',
-            'GnuTLSExportCertificates',
-
-            //mod_headers.c
-            'Header','RequestHeader',
-
-            //mod_imagemap.c
-            'ImapBase','ImapDefault','ImapMenu',
-
-            //mod_include.c
-            'SSIAccessEnable','SSIEndTag','SSIErrorMsg','SSIStartTag',
-            'SSITimeFormat','SSIUndefinedEcho','XBitHack',
-
-            //mod_ident.c
-            'IdentityCheck','IdentityCheckTimeout',
-
-            //mod_info.c
-            'AddModuleInfo',
-
-            //mod_isapi.c
-            'ISAPIAppendLogToErrors','ISAPIAppendLogToQuery','ISAPICacheFile',
-            'ISAPIFakeAsync','ISAPILogNotSupported','ISAPIReadAheadBuffer',
-
-            //mod_log_config.c
-            'BufferedLogs','CookieLog','CustomLog','LogFormat','TransferLog',
-
-            //mod_log_forensic.c
-            'ForensicLog',
-
-            //mod_log_rotate.c
-            'RotateInterval','RotateLogs','RotateLogsLocalTime',
-
-            //mod_logio.c
-
-            //mod_mem_cache.c
-            'MCacheMaxObjectCount','MCacheMaxObjectSize',
-            'MCacheMaxStreamingBuffer','MCacheMinObjectSize',
-            'MCacheRemovalAlgorithm','MCacheSize',
-
-            //mod_mime.c
-            'AddCharset','AddEncoding','AddHandler','AddInputFilter',
-            'AddLanguage','AddOutputFilter','AddType','DefaultLanguage',
-            'ModMimeUsePathInfo','MultiviewsMatch','RemoveCharset',
-            'RemoveEncoding','RemoveHandler','RemoveInputFilter',
-            'RemoveLanguage','RemoveOutputFilter','RemoveType','TypesConfig',
-
-            //mod_mime_magic.c
-            'MimeMagicFile',
-
-            //mod_negotiation.c
-            'CacheNegotiatedDocs','ForceLanguagePriority','LanguagePriority',
-
-            //mod_php5.c
-            'php_admin_flag','php_admin_value','php_flag','php_value',
-            'PHPINIDir',
-
-            //mod_proxy.c
-            'AllowCONNECT','BalancerMember','NoProxy','ProxyBadHeader',
-            'ProxyBlock','ProxyDomain','ProxyErrorOverride',
-            'ProxyFtpDirCharset','ProxyIOBufferSize','ProxyMaxForwards',
-            'ProxyPass','ProxyPassInterpolateEnv','ProxyPassMatch',
-            'ProxyPassReverse','ProxyPassReverseCookieDomain',
-            'ProxyPassReverseCookiePath','ProxyPreserveHost',
-            'ProxyReceiveBufferSize','ProxyRemote','ProxyRemoteMatch',
-            'ProxyRequests','ProxySet','ProxyStatus','ProxyTimeout','ProxyVia',
-
-            //mod_proxy_ajp.c
-
-            //mod_proxy_balancer.c
-
-            //mod_proxy_connect.c
-
-            //mod_proxy_ftp.c
-
-            //mod_proxy_http.c
-
-            //mod_rewrite.c
-            'RewriteBase','RewriteCond','RewriteEngine','RewriteLock',
-            'RewriteLog','RewriteLogLevel','RewriteMap','RewriteOptions',
-            'RewriteRule',
-
-            //mod_setenvif.c
-            'BrowserMatch','BrowserMatchNoCase','SetEnvIf','SetEnvIfNoCase',
-
-            //mod_so.c
-            'LoadFile','LoadModule',
-
-            //mod_speling.c
-            'CheckCaseOnly','CheckSpelling',
-
-            //mod_ssl.c
-            'SSLCACertificateFile','SSLCACertificatePath','SSLCADNRequestFile',
-            'SSLCADNRequestPath','SSLCARevocationFile','SSLCARevocationPath',
-            'SSLCertificateChainFile','SSLCertificateFile',
-            'SSLCertificateKeyFile','SSLCipherSuite','SSLCryptoDevice',
-            'SSLEngine','SSLHonorCipherOrder','SSLMutex','SSLOptions',
-            'SSLPassPhraseDialog','SSLProtocol','SSLProxyCACertificateFile',
-            'SSLProxyCACertificatePath','SSLProxyCARevocationFile',
-            'SSLProxyCARevocationPath','SSLProxyCipherSuite','SSLProxyEngine',
-            'SSLProxyMachineCertificateFile','SSLProxyMachineCertificatePath',
-            'SSLProxyProtocol','SSLProxyVerify','SSLProxyVerifyDepth',
-            'SSLRandomSeed','SSLRenegBufferSize','SSLRequire','SSLRequireSSL',
-            'SSLSessionCache','SSLSessionCacheTimeout','SSLUserName',
-            'SSLVerifyClient','SSLVerifyDepth',
-
-            //mod_status.c
-            'ExtendedStatus','SeeRequestTail',
-
-            //mod_substitute.c
-            'Substitute',
-
-            //mod_suexec.c
-            'SuexecUserGroup',
-
-            //mod_unique_id.c
-
-            //mod_upload_progress
-            'ReportUploads', 'TrackUploads', 'UploadProgressSharedMemorySize',
-
-            //mod_userdir.c
-            'UserDir',
-
-            //mod_usertrack.c
-            'CookieDomain','CookieExpires','CookieName','CookieStyle',
-            'CookieTracking',
-
-            //mod_version.c
-
-            //mod_vhost_alias.c
-            'VirtualDocumentRoot','VirtualDocumentRootIP',
-            'VirtualScriptAlias','VirtualScriptAliasIP',
-
-            //mod_view.c
-            'ViewEnable',
-
-            //mod_win32.c
-            'ScriptInterpreterSource',
-
-            //mpm_winnt.c
-            'Listen','ListenBacklog','ReceiveBufferSize','SendBufferSize',
-            'ThreadLimit','ThreadsPerChild','Win32DisableAcceptEx',
-
-            //mpm_common.c
-            'AcceptMutex','AddModule','ClearModuleList','EnableExceptionHook',
-            'Group','LockFile','MaxClients','MaxSpareServers','MaxSpareThreads',
-            'MinSpareServers','MinSpareThreads','ServerLimit','StartServers',
-            'StartThreads','User',
-
-            //util_ldap.c
-            'LDAPCacheEntries','LDAPCacheTTL','LDAPConnectionTimeout',
-            'LDAPOpCacheEntries','LDAPOpCacheTTL','LDAPSharedCacheFile',
-            'LDAPSharedCacheSize','LDAPTrustedClientCert',
-            'LDAPTrustedGlobalCert','LDAPTrustedMode','LDAPVerifyServerCert',
-
-            //Unknown Mods ...
-            'AgentLog','BindAddress','bs2000account','CacheForceCompletion',
-            'CacheGCInterval','CacheSize','NoCache','qsc','RefererIgnore',
-            'RefererLog','Resourceconfig','ServerType','SingleListen'
-            ),
-        /*keywords 2*/
-        2 => array(
-            'all','on','off','standalone','inetd','indexes',
-            'force-response-1.0','downgrade-1.0','nokeepalive',
-            'includes','followsymlinks','none',
-            'x-compress','x-gzip'
-        ),
-        /*keywords 3*/
-        3 => array(
-            //core.c
-            'Directory','DirectoryMatch','Files','FilesMatch','IfDefine',
-            'IfModule','Limit','LimitExcept','Location','LocationMatch',
-            'VirtualHost',
-
-            //mod_authn_alias.c
-            'AuthnProviderAlias',
-
-            //mod_proxy.c
-            'Proxy','ProxyMatch',
-
-            //mod_version.c
-            'IfVersion'
-        )
-    ),
-    'SYMBOLS' => array(
-        '+', '-'
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false,
-        2 => false,
-        3 => false,
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #00007f;',
-            2 => 'color: #0000ff;',
-            3 => 'color: #000000; font-weight:bold;',
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #adadad; font-style: italic;',
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #000099; font-weight: bold;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #339933;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #7f007f;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #ff0000;'
-            ),
-        'METHODS' => array(
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #008000;'
-            ),
-        'REGEXPS' => array(
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => ''
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(
-        ),
-    'REGEXPS' => array(
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        ),
-    'PARSER_CONTROL' => array(
-        'ENABLE_FLAGS' => array(
-            'BRACKETS' => GESHI_NEVER,
-            'SYMBOLS' => GESHI_NEVER
-        ),
-        'KEYWORDS' => array(
-            3 => array(
-                'DISALLOWED_BEFORE' => '(?<=&lt;|&lt;\/)',
-                'DISALLOWED_AFTER' => '(?=\s|\/|&gt;)',
-            )
-        )
-    )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/applescript.php b/wiki/vendor/geshi/geshi/src/geshi/applescript.php
deleted file mode 100644
index e71eb32..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/applescript.php
+++ /dev/null
@@ -1,155 +0,0 @@
-<?php
-/*************************************************************************************
- * applescript.php
- * --------
- * Author: Stephan Klimek (http://www.initware.org)
- * Copyright: Stephan Klimek (http://www.initware.org)
- * Release Version: 1.0.9.0
- * Date Started: 2005/07/20
- *
- * AppleScript language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2008/05/23 (1.0.7.22)
- *  -  Added description of extra language features (SF#1970248)
- *
- * TODO
- * -------------------------
- * URL settings to references
- *
- **************************************************************************************
- *
- *     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' => 'AppleScript',
-    'COMMENT_SINGLE' => array(1 => '--'),
-    'COMMENT_MULTI' => array( '(*' => '*)'),
-    'COMMENT_REGEXP' => array(
-        2 => '/(?<=[a-z])\'/i',
-        3 => '/(?<![a-z])\'.*?\'/i',
-        ),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array('"'),
-    'ESCAPE_CHAR' => '\\',
-    'KEYWORDS' => array(
-        1 => array(
-            'application','close','count','delete','duplicate','exists','launch','make','move','open',
-            'print','quit','reopen','run','save','saving', 'idle', 'path to', 'number', 'alias', 'list', 'text', 'string',
-            'integer', 'it','me','version','pi','result','space','tab','anything','case','diacriticals','expansion',
-            'hyphens','punctuation','bold','condensed','expanded','hidden','italic','outline','plain',
-            'shadow','strikethrough','subscript','superscript','underline','ask','no','yes','false', 'id',
-            'true','weekday','monday','mon','tuesday','tue','wednesday','wed','thursday','thu','friday',
-            'fri','saturday','sat','sunday','sun','month','january','jan','february','feb','march',
-            'mar','april','apr','may','june','jun','july','jul','august','aug','september', 'quote', 'do JavaScript',
-            'sep','october','oct','november','nov','december','dec','minutes','hours', 'name', 'default answer',
-            'days','weeks', 'folder', 'folders', 'file', 'files', 'window', 'eject', 'disk', 'reveal', 'sleep',
-            'shut down', 'restart', 'display dialog', 'buttons', 'invisibles', 'item', 'items', 'delimiters', 'offset of',
-            'AppleScript\'s', 'choose file', 'choose folder', 'choose from list', 'beep', 'contents', 'do shell script',
-            'paragraph', 'paragraphs', 'missing value', 'quoted form', 'desktop', 'POSIX path', 'POSIX file',
-            'activate', 'document', 'adding', 'receiving', 'content', 'new', 'properties', 'info for', 'bounds',
-            'selection', 'extension', 'into', 'onto', 'by', 'between', 'against', 'set the clipboard to', 'the clipboard'
-            ),
-        2 => array(
-            'each','some','every','whose','where','index','first','second','third','fourth',
-            'fifth','sixth','seventh','eighth','ninth','tenth','last','front','back','st','nd',
-            'rd','th','middle','named','through','thru','before','after','beginning','the', 'as',
-            'div','mod','and','not','or','contains','equal','equals','isnt', 'less', 'greater'
-            ),
-        3 => array(
-            'script','property','prop','end','to','set','global','local','on','of',
-            'in','given','with','without','return','continue','tell','if','then','else','repeat',
-            'times','while','until','from','exit','try','error','considering','ignoring','timeout',
-            'transaction','my','get','put','is', 'copy'
-            )
-        ),
-    'SYMBOLS' => array(
-        ')','+','-','^','*','/','&','<','>=','<','<=','=','�'
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false,
-        2 => false,
-        3 => false,
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #0066ff;',
-            2 => 'color: #ff0033;',
-            3 => 'color: #ff0033; font-weight: bold;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #808080; font-style: italic;',
-            2 => '',
-            3 => 'color: #ff0000;',
-            'MULTI' => 'color: #808080; font-style: italic;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #000000; font-weight: bold;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #000000;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #009900;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #000000;'
-            ),
-        'METHODS' => array(
-            1 => 'color: #006600;',
-            2 => 'color: #006600;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #000000;'
-            ),
-        'REGEXPS' => array(
-            0 => 'color: #339933;',
-            4 => 'color: #0066ff;',
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => ''
-        ),
-    'OOLANG' => true,
-    'OBJECT_SPLITTERS' => array(
-        1 => ',+-=&lt;&gt;/?^&amp;*'
-        ),
-    'REGEXPS' => array(
-        //Variables
-        0 => '[\\$%@]+[a-zA-Z_][a-zA-Z0-9_]*',
-        //File descriptors
-        4 => '&lt;[a-zA-Z_][a-zA-Z0-9_]*&gt;',
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        ),
-    'PARSER_CONTROL' => array(
-        'KEYWORDS' => array(
-            'SPACE_AS_WHITESPACE' => true
-            )
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/apt_sources.php b/wiki/vendor/geshi/geshi/src/geshi/apt_sources.php
deleted file mode 100644
index 49c51b0..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/apt_sources.php
+++ /dev/null
@@ -1,153 +0,0 @@
-<?php
-/*************************************************************************************
- * apt_sources.php
- * ----------
- * Author: Milian Wolff (mail@milianw.de)
- * Copyright: (c) 2008 Milian Wolff (http://milianw.de)
- * Release Version: 1.0.9.0
- * Date Started: 2008/06/17
- *
- * Apt sources.list language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2008/06/17 (1.0.8)
- *  -  Initial import
- *
- *************************************************************************************
- *
- *     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' => 'Apt sources',
-    'COMMENT_SINGLE' => array(1 => '#'),
-    'COMMENT_MULTI' => array(),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array(),
-    'ESCAPE_CHAR' => '\\',
-    'KEYWORDS' => array(
-        /*keywords*/
-        1 => array(
-            'deb-src', 'deb'
-            ),
-        2 => array(
-            //Generic
-            'stable', 'old-stable', 'testing', 'testing-proposed-updates',
-            'unstable', 'unstable-proposed-updates', 'experimental',
-            'non-US', 'security', 'volatile', 'volatile-sloppy',
-            'apt-build',
-            'stable/updates',
-            //Debian
-            'buzz', 'rex', 'bo', 'hamm', 'slink', 'potato', 'woody', 'sarge',
-            'etch', 'lenny', 'wheezy', 'jessie', 'sid',
-            //Ubuntu
-            'warty', 'warty-updates', 'warty-security', 'warty-proposed', 'warty-backports',
-            'hoary', 'hoary-updates', 'hoary-security', 'hoary-proposed', 'hoary-backports',
-            'breezy', 'breezy-updates', 'breezy-security', 'breezy-proposed', 'breezy-backports',
-            'dapper', 'dapper-updates', 'dapper-security', 'dapper-proposed', 'dapper-backports',
-            'edgy', 'edgy-updates', 'edgy-security', 'edgy-proposed', 'edgy-backports',
-            'feisty', 'feisty-updates', 'feisty-security', 'feisty-proposed', 'feisty-backports',
-            'gutsy', 'gutsy-updates', 'gutsy-security', 'gutsy-proposed', 'gutsy-backports',
-            'hardy', 'hardy-updates', 'hardy-security', 'hardy-proposed', 'hardy-backports',
-            'intrepid', 'intrepid-updates', 'intrepid-security', 'intrepid-proposed', 'intrepid-backports',
-            'jaunty', 'jaunty-updates', 'jaunty-security', 'jaunty-proposed', 'jaunty-backports',
-            'karmic', 'karmic-updates', 'karmic-security', 'karmic-proposed', 'karmic-backports',
-            'lucid', 'lucid-updates', 'lucid-security', 'lucid-proposed', 'lucid-backports',
-            'maverick', 'maverick-updates', 'maverick-security', 'maverick-proposed', 'maverick-backports',
-            'natty', 'natty-updates', 'natty-security', 'natty-proposed', 'natty-backports',
-            'oneiric', 'oneiric-updates', 'oneiric-security', 'oneiric-proposed', 'oneiric-backports',
-            'precise', 'precise-updates', 'precise-security', 'precise-proposed', 'precise-backports',
-            'quantal', 'quantal-updates', 'quantal-security', 'quantal-proposed', 'quantal-backports',
-            'raring', 'raring-updates', 'raring-security', 'raring-proposed', 'raring-backports',
-            'saucy', 'saucy-updates', 'saucy-security', 'saucy-proposed', 'saucy-backports',
-            'trusty', 'trusty-updates', 'trusty-security', 'trusty-proposed', 'trusty-backports'
-            ),
-        3 => array(
-            'main', 'restricted', 'preview', 'contrib', 'non-free',
-            'commercial', 'universe', 'multiverse'
-            )
-        ),
-    'REGEXPS' => array(
-        0 => "(((http|ftp):\/\/|file:\/)[^\s]+)|(cdrom:\[[^\]]*\][^\s]*)",
-        ),
-    'SYMBOLS' => array(
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false,
-        2 => true,
-        3 => true
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #00007f;',
-            2 => 'color: #b1b100;',
-            3 => 'color: #b16000;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #adadad; font-style: italic;',
-            ),
-        'ESCAPE_CHAR' => array(
-            ),
-        'BRACKETS' => array(
-            ),
-        'STRINGS' => array(
-            ),
-        'NUMBERS' => array(
-            ),
-        'METHODS' => array(
-            ),
-        'SYMBOLS' => array(
-            ),
-        'REGEXPS' => array(
-            0 => 'color: #009900;',
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => ''
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        ),
-    'PARSER_CONTROL' => array(
-        'ENABLE_FLAGS' => array(
-            'NUMBERS' => GESHI_NEVER,
-            'METHODS' => GESHI_NEVER,
-            'SCRIPT' => GESHI_NEVER,
-            'SYMBOLS' => GESHI_NEVER,
-            'ESCAPE_CHAR' => GESHI_NEVER,
-            'BRACKETS' => GESHI_NEVER,
-            'STRINGS' => GESHI_NEVER,
-        ),
-        'KEYWORDS' => array(
-            'DISALLOWED_BEFORE' => '(?<![a-zA-Z0-9\$_\|\#;>|^\/])',
-            'DISALLOWED_AFTER' => '(?![a-zA-Z0-9_\|%\\-&\.])'
-        )
-    ),
-    'TAB_WIDTH' => 4
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/arm.php b/wiki/vendor/geshi/geshi/src/geshi/arm.php
deleted file mode 100644
index 86b71e1..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/arm.php
+++ /dev/null
@@ -1,3316 +0,0 @@
-<?php
-/*************************************************************************************
- * arm.php
- * -------
- * Author: Marat Dukhan (mdukhan3.at.gatech.dot.edu)
- * Copyright: (c) Marat Dukhan (mdukhan3.at.gatech.dot.edu)
- * Release Version: 1.0.9.0
- * Date Started: 2011/10/06
- *
- * ARM Assembler language file for GeSHi.
- * Based on the following documents:
- *   - "ARM Architecture Reference Manual: ARMv7-A and ARMv7-R edition"
- *   - "Intel XScale Technology: Intel Wireless MMX2 Coprocessor",
- *       Revision 1.5, July 2006
- *
- * CHANGES
- * -------
- * 2011/10/06
- *   -  First Release (supported UAL syntax for up to ARMv7 A/R, VFPv3, NEON, WMMX/WMMX2)
- *
- * TODO (updated 2011/10/06)
- * -------------------------
- *
- *************************************************************************************
- *
- *     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' => 'ARM ASSEMBLER',
-    'COMMENT_SINGLE' => array(
-        1 => ';'
-        ),
-    'COMMENT_MULTI' => array(),
-    //Line address prefix suppression
-    'COMMENT_REGEXP' => array(
-        2 => "/^(?:[0-9a-f]{0,4}:)?[0-9a-f]{4}(?:[0-9a-f]{4})?/mi"
-        ),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array("'", '"'),
-    'ESCAPE_CHAR' => '',
-    'KEYWORDS' => array(
-        /* Unconditional Data Processing Instructions */
-        1 => array(
-            /* Data Processing: Unconditional Addition & Subtraction */
-            'adc.w','adcal.w',
-            'adc','adcal',
-            'add.w','addal.w',
-            'add','addal',
-            'addw','addwal',
-            'rsb.w','rsbal.w',
-            'rsb','rsbal',
-            'rsc','rscal',
-            'sbc.w','sbcal.w',
-            'sbc','sbcal',
-            'sub.w','subal.w',
-            'sub','subal',
-            'neg.w','negal.w',
-            'neg','negal',
-            'adr.w','adral.w',
-            'adr','adral',
-            /* Data Processing: Unconditional Logical */
-            'and.w','andal.w',
-            'and','andal',
-            'bic.w','bical.w',
-            'bic','bical',
-            'orr.w','orral.w',
-            'orr','orral',
-            'orn.w','ornal.w',
-            'orn','ornal',
-            'eor.w','eoral.w',
-            'eor','eoral',
-            'mov.w','moval.w',
-            'mov','moval',
-            'movw','movwal',
-            'movt','movtal',
-            'cpy','cpyal',
-            'mvn.w','mvnal.w',
-            'mvn','mvnal',
-            /* Data Processing: Unconditional Shifts and Rotates */
-            'asr.w','asral.w',
-            'asr','asral',
-            'lsl.w','lslal.w',
-            'lsl','lslal',
-            'lsr.w','lsral.w',
-            'lsr','lsral',
-            'ror.w','roral.w',
-            'ror','roral',
-            'rrx','rrxal',
-            /* Data Processing: Unconditional Word Multiply and Multiply-Add */
-            'mul','mulal',
-            'mla','mlaal',
-            'mls','mlsal',
-            'smull','smullal',
-            'muls','mulsal',
-            'umull','umullal',
-            'smlal','smlalal',
-            'umlal','umlalal',
-            /* Data Processing: Unconditional Halfword Multiply and Multiply-Add (ARMv5TE) */
-            'smulbb','smulbbal',
-            'smulbt','smulbtal',
-            'smultb','smultbal',
-            'smultt','smulttal',
-            'smulwb','smulwbal',
-            'smulwt','smulwtal',
-            'smlalbb','smlalbbal',
-            'smlalbt','smlalbtal',
-            'smlaltb','smlaltbal',
-            'smlaltt','smlalttal',
-            'smlabb','smlabbal',
-            'smlabt','smlabtal',
-            'smlatb','smlatbal',
-            'smlatt','smlattal',
-            'smlawb','smlawbal',
-            'smlawt','smlawtal',
-            /* Data Processing: Unconditional Bit Operations */
-            'ubfx','ubfxal',
-            'sbfx','sbfxal',
-            'bfc','bfcal',
-            'bfi','bfial',
-            'clz','clzal',
-            /* Data Processing: Unconditional Divide (ARMv7-R) */
-            'sdiv','sdival',
-            'udiv','udival'
-            ),
-        /* Conditional Data Processing Instructions */
-        2 => array(
-            /* Data Processing: Conditional Addition & Subtraction */
-            'adceq.w','adcne.w','adccs.w','adchs.w','adccc.w','adclo.w','adcmi.w','adcpl.w','adcvs.w','adcvc.w','adchi.w','adcls.w','adcge.w','adclt.w','adcgt.w','adcle.w',
-            'adceq','adcne','adccs','adchs','adccc','adclo','adcmi','adcpl','adcvs','adcvc','adchi','adcls','adcge','adclt','adcgt','adcle',
-            'addeq.w','addne.w','addcs.w','addhs.w','addcc.w','addlo.w','addmi.w','addpl.w','addvs.w','addvc.w','addhi.w','addls.w','addge.w','addlt.w','addgt.w','addle.w',
-            'addeq','addne','addcs','addhs','addcc','addlo','addmi','addpl','addvs','addvc','addhi','addls','addge','addlt','addgt','addle',
-            'addweq','addwne','addwcs','addwhs','addwcc','addwlo','addwmi','addwpl','addwvs','addwvc','addwhi','addwls','addwge','addwlt','addwgt','addwle',
-            'rsbeq.w','rsbne.w','rsbcs.w','rsbhs.w','rsbcc.w','rsblo.w','rsbmi.w','rsbpl.w','rsbvs.w','rsbvc.w','rsbhi.w','rsbls.w','rsbge.w','rsblt.w','rsbgt.w','rsble.w',
-            'rsbeq','rsbne','rsbcs','rsbhs','rsbcc','rsblo','rsbmi','rsbpl','rsbvs','rsbvc','rsbhi','rsbls','rsbge','rsblt','rsbgt','rsble',
-            'rsceq','rscne','rsccs','rschs','rsccc','rsclo','rscmi','rscpl','rscvs','rscvc','rschi','rscls','rscge','rsclt','rscgt','rscle',
-            'sbceq.w','sbcne.w','sbccs.w','sbchs.w','sbccc.w','sbclo.w','sbcmi.w','sbcpl.w','sbcvs.w','sbcvc.w','sbchi.w','sbcls.w','sbcge.w','sbclt.w','sbcgt.w','sbcle.w',
-            'sbceq','sbcne','sbccs','sbchs','sbccc','sbclo','sbcmi','sbcpl','sbcvs','sbcvc','sbchi','sbcls','sbcge','sbclt','sbcgt','sbcle',
-            'subeq.w','subne.w','subcs.w','subhs.w','subcc.w','sublo.w','submi.w','subpl.w','subvs.w','subvc.w','subhi.w','subls.w','subge.w','sublt.w','subgt.w','suble.w',
-            'subeq','subne','subcs','subhs','subcc','sublo','submi','subpl','subvs','subvc','subhi','subls','subge','sublt','subgt','suble',
-            'negeq.w','negne.w','negcs.w','neghs.w','negcc.w','neglo.w','negmi.w','negpl.w','negvs.w','negvc.w','neghi.w','negls.w','negge.w','neglt.w','neggt.w','negle.w',
-            'negeq','negne','negcs','neghs','negcc','neglo','negmi','negpl','negvs','negvc','neghi','negls','negge','neglt','neggt','negle',
-            'adreq.w','adrne.w','adrcs.w','adrhs.w','adrcc.w','adrlo.w','adrmi.w','adrpl.w','adrvs.w','adrvc.w','adrhi.w','adrls.w','adrge.w','adrlt.w','adrgt.w','adrle.w',
-            'adreq','adrne','adrcs','adrhs','adrcc','adrlo','adrmi','adrpl','adrvs','adrvc','adrhi','adrls','adrge','adrlt','adrgt','adrle',
-            /* Data Processing: Conditional Logical */
-            'andeq.w','andne.w','andcs.w','andhs.w','andcc.w','andlo.w','andmi.w','andpl.w','andvs.w','andvc.w','andhi.w','andls.w','andge.w','andlt.w','andgt.w','andle.w',
-            'andeq','andne','andcs','andhs','andcc','andlo','andmi','andpl','andvs','andvc','andhi','andls','andge','andlt','andgt','andle',
-            'biceq.w','bicne.w','biccs.w','bichs.w','biccc.w','biclo.w','bicmi.w','bicpl.w','bicvs.w','bicvc.w','bichi.w','bicls.w','bicge.w','biclt.w','bicgt.w','bicle.w',
-            'biceq','bicne','biccs','bichs','biccc','biclo','bicmi','bicpl','bicvs','bicvc','bichi','bicls','bicge','biclt','bicgt','bicle',
-            'orreq.w','orrne.w','orrcs.w','orrhs.w','orrcc.w','orrlo.w','orrmi.w','orrpl.w','orrvs.w','orrvc.w','orrhi.w','orrls.w','orrge.w','orrlt.w','orrgt.w','orrle.w',
-            'orreq','orrne','orrcs','orrhs','orrcc','orrlo','orrmi','orrpl','orrvs','orrvc','orrhi','orrls','orrge','orrlt','orrgt','orrle',
-            'orneq.w','ornne.w','orncs.w','ornhs.w','orncc.w','ornlo.w','ornmi.w','ornpl.w','ornvs.w','ornvc.w','ornhi.w','ornls.w','ornge.w','ornlt.w','orngt.w','ornle.w',
-            'orneq','ornne','orncs','ornhs','orncc','ornlo','ornmi','ornpl','ornvs','ornvc','ornhi','ornls','ornge','ornlt','orngt','ornle',
-            'eoreq.w','eorne.w','eorcs.w','eorhs.w','eorcc.w','eorlo.w','eormi.w','eorpl.w','eorvs.w','eorvc.w','eorhi.w','eorls.w','eorge.w','eorlt.w','eorgt.w','eorle.w',
-            'eoreq','eorne','eorcs','eorhs','eorcc','eorlo','eormi','eorpl','eorvs','eorvc','eorhi','eorls','eorge','eorlt','eorgt','eorle',
-            'moveq.w','movne.w','movcs.w','movhs.w','movcc.w','movlo.w','movmi.w','movpl.w','movvs.w','movvc.w','movhi.w','movls.w','movge.w','movlt.w','movgt.w','movle.w',
-            'moveq','movne','movcs','movhs','movcc','movlo','movmi','movpl','movvs','movvc','movhi','movls','movge','movlt','movgt','movle',
-            'movweq','movwne','movwcs','movwhs','movwcc','movwlo','movwmi','movwpl','movwvs','movwvc','movwhi','movwls','movwge','movwlt','movwgt','movwle',
-            'movteq','movtne','movtcs','movths','movtcc','movtlo','movtmi','movtpl','movtvs','movtvc','movthi','movtls','movtge','movtlt','movtgt','movtle',
-            'cpyeq','cpyne','cpycs','cpyhs','cpycc','cpylo','cpymi','cpypl','cpyvs','cpyvc','cpyhi','cpyls','cpyge','cpylt','cpygt','cpyle',
-            'mvneq.w','mvnne.w','mvncs.w','mvnhs.w','mvncc.w','mvnlo.w','mvnmi.w','mvnpl.w','mvnvs.w','mvnvc.w','mvnhi.w','mvnls.w','mvnge.w','mvnlt.w','mvngt.w','mvnle.w',
-            'mvneq','mvnne','mvncs','mvnhs','mvncc','mvnlo','mvnmi','mvnpl','mvnvs','mvnvc','mvnhi','mvnls','mvnge','mvnlt','mvngt','mvnle',
-            /* Data Processing: Conditional Shifts and Rotates */
-            'asreq.w','asrne.w','asrcs.w','asrhs.w','asrcc.w','asrlo.w','asrmi.w','asrpl.w','asrvs.w','asrvc.w','asrhi.w','asrls.w','asrge.w','asrlt.w','asrgt.w','asrle.w',
-            'asreq','asrne','asrcs','asrhs','asrcc','asrlo','asrmi','asrpl','asrvs','asrvc','asrhi','asrls','asrge','asrlt','asrgt','asrle',
-            'lsleq.w','lslne.w','lslcs.w','lslhs.w','lslcc.w','lsllo.w','lslmi.w','lslpl.w','lslvs.w','lslvc.w','lslhi.w','lslls.w','lslge.w','lsllt.w','lslgt.w','lslle.w',
-            'lsleq','lslne','lslcs','lslhs','lslcc','lsllo','lslmi','lslpl','lslvs','lslvc','lslhi','lslls','lslge','lsllt','lslgt','lslle',
-            'lsreq.w','lsrne.w','lsrcs.w','lsrhs.w','lsrcc.w','lsrlo.w','lsrmi.w','lsrpl.w','lsrvs.w','lsrvc.w','lsrhi.w','lsrls.w','lsrge.w','lsrlt.w','lsrgt.w','lsrle.w',
-            'lsreq','lsrne','lsrcs','lsrhs','lsrcc','lsrlo','lsrmi','lsrpl','lsrvs','lsrvc','lsrhi','lsrls','lsrge','lsrlt','lsrgt','lsrle',
-            'roreq.w','rorne.w','rorcs.w','rorhs.w','rorcc.w','rorlo.w','rormi.w','rorpl.w','rorvs.w','rorvc.w','rorhi.w','rorls.w','rorge.w','rorlt.w','rorgt.w','rorle.w',
-            'roreq','rorne','rorcs','rorhs','rorcc','rorlo','rormi','rorpl','rorvs','rorvc','rorhi','rorls','rorge','rorlt','rorgt','rorle',
-            'rrxeq','rrxne','rrxcs','rrxhs','rrxcc','rrxlo','rrxmi','rrxpl','rrxvs','rrxvc','rrxhi','rrxls','rrxge','rrxlt','rrxgt','rrxle',
-            /* Data Processing: Conditional Word Multiply and Multiply-Add */
-            'muleq','mulne','mulcs','mulhs','mulcc','mullo','mulmi','mulpl','mulvs','mulvc','mulhi','mulls','mulge','mullt','mulgt','mulle',
-            'mlaeq','mlane','mlacs','mlahs','mlacc','mlalo','mlami','mlapl','mlavs','mlavc','mlahi','mlals','mlage','mlalt','mlagt','mlale',
-            'mlseq','mlsne','mlscs','mlshs','mlscc','mlslo','mlsmi','mlspl','mlsvs','mlsvc','mlshi','mlsls','mlsge','mlslt','mlsgt','mlsle',
-            'smulleq','smullne','smullcs','smullhs','smullcc','smulllo','smullmi','smullpl','smullvs','smullvc','smullhi','smullls','smullge','smulllt','smullgt','smullle',
-            'mulseq','mulsne','mulscs','mulshs','mulscc','mulslo','mulsmi','mulspl','mulsvs','mulsvc','mulshi','mulsls','mulsge','mulslt','mulsgt','mulsle',
-            'umulleq','umullne','umullcs','umullhs','umullcc','umulllo','umullmi','umullpl','umullvs','umullvc','umullhi','umullls','umullge','umulllt','umullgt','umullle',
-            'smlaleq','smlalne','smlalcs','smlalhs','smlalcc','smlallo','smlalmi','smlalpl','smlalvs','smlalvc','smlalhi','smlalls','smlalge','smlallt','smlalgt','smlalle',
-            'umlaleq','umlalne','umlalcs','umlalhs','umlalcc','umlallo','umlalmi','umlalpl','umlalvs','umlalvc','umlalhi','umlalls','umlalge','umlallt','umlalgt','umlalle',
-            /* Data Processing: Conditional Halfword Multiply and Multiply-Add (ARMv5TE) */
-            'smulbbeq','smulbbne','smulbbcs','smulbbhs','smulbbcc','smulbblo','smulbbmi','smulbbpl','smulbbvs','smulbbvc','smulbbhi','smulbbls','smulbbge','smulbblt','smulbbgt','smulbble',
-            'smulbteq','smulbtne','smulbtcs','smulbths','smulbtcc','smulbtlo','smulbtmi','smulbtpl','smulbtvs','smulbtvc','smulbthi','smulbtls','smulbtge','smulbtlt','smulbtgt','smulbtle',
-            'smultbeq','smultbne','smultbcs','smultbhs','smultbcc','smultblo','smultbmi','smultbpl','smultbvs','smultbvc','smultbhi','smultbls','smultbge','smultblt','smultbgt','smultble',
-            'smultteq','smulttne','smulttcs','smultths','smulttcc','smulttlo','smulttmi','smulttpl','smulttvs','smulttvc','smultthi','smulttls','smulttge','smulttlt','smulttgt','smulttle',
-            'smulwbeq','smulwbne','smulwbcs','smulwbhs','smulwbcc','smulwblo','smulwbmi','smulwbpl','smulwbvs','smulwbvc','smulwbhi','smulwbls','smulwbge','smulwblt','smulwbgt','smulwble',
-            'smulwteq','smulwtne','smulwtcs','smulwths','smulwtcc','smulwtlo','smulwtmi','smulwtpl','smulwtvs','smulwtvc','smulwthi','smulwtls','smulwtge','smulwtlt','smulwtgt','smulwtle',
-            'smlalbbeq','smlalbbne','smlalbbcs','smlalbbhs','smlalbbcc','smlalbblo','smlalbbmi','smlalbbpl','smlalbbvs','smlalbbvc','smlalbbhi','smlalbbls','smlalbbge','smlalbblt','smlalbbgt','smlalbble',
-            'smlalbteq','smlalbtne','smlalbtcs','smlalbths','smlalbtcc','smlalbtlo','smlalbtmi','smlalbtpl','smlalbtvs','smlalbtvc','smlalbthi','smlalbtls','smlalbtge','smlalbtlt','smlalbtgt','smlalbtle',
-            'smlaltbeq','smlaltbne','smlaltbcs','smlaltbhs','smlaltbcc','smlaltblo','smlaltbmi','smlaltbpl','smlaltbvs','smlaltbvc','smlaltbhi','smlaltbls','smlaltbge','smlaltblt','smlaltbgt','smlaltble',
-            'smlaltteq','smlalttne','smlalttcs','smlaltths','smlalttcc','smlalttlo','smlalttmi','smlalttpl','smlalttvs','smlalttvc','smlaltthi','smlalttls','smlalttge','smlalttlt','smlalttgt','smlalttle',
-            'smlabbeq','smlabbne','smlabbcs','smlabbhs','smlabbcc','smlabblo','smlabbmi','smlabbpl','smlabbvs','smlabbvc','smlabbhi','smlabbls','smlabbge','smlabblt','smlabbgt','smlabble',
-            'smlabteq','smlabtne','smlabtcs','smlabths','smlabtcc','smlabtlo','smlabtmi','smlabtpl','smlabtvs','smlabtvc','smlabthi','smlabtls','smlabtge','smlabtlt','smlabtgt','smlabtle',
-            'smlatbeq','smlatbne','smlatbcs','smlatbhs','smlatbcc','smlatblo','smlatbmi','smlatbpl','smlatbvs','smlatbvc','smlatbhi','smlatbls','smlatbge','smlatblt','smlatbgt','smlatble',
-            'smlatteq','smlattne','smlattcs','smlatths','smlattcc','smlattlo','smlattmi','smlattpl','smlattvs','smlattvc','smlatthi','smlattls','smlattge','smlattlt','smlattgt','smlattle',
-            'smlawbeq','smlawbne','smlawbcs','smlawbhs','smlawbcc','smlawblo','smlawbmi','smlawbpl','smlawbvs','smlawbvc','smlawbhi','smlawbls','smlawbge','smlawblt','smlawbgt','smlawble',
-            'smlawteq','smlawtne','smlawtcs','smlawths','smlawtcc','smlawtlo','smlawtmi','smlawtpl','smlawtvs','smlawtvc','smlawthi','smlawtls','smlawtge','smlawtlt','smlawtgt','smlawtle',
-            /* Data Processing: Conditional Bit Operations */
-            'ubfxeq','ubfxne','ubfxcs','ubfxhs','ubfxcc','ubfxlo','ubfxmi','ubfxpl','ubfxvs','ubfxvc','ubfxhi','ubfxls','ubfxge','ubfxlt','ubfxgt','ubfxle',
-            'sbfxeq','sbfxne','sbfxcs','sbfxhs','sbfxcc','sbfxlo','sbfxmi','sbfxpl','sbfxvs','sbfxvc','sbfxhi','sbfxls','sbfxge','sbfxlt','sbfxgt','sbfxle',
-            'bfceq','bfcne','bfccs','bfchs','bfccc','bfclo','bfcmi','bfcpl','bfcvs','bfcvc','bfchi','bfcls','bfcge','bfclt','bfcgt','bfcle',
-            'bfieq','bfine','bfics','bfihs','bficc','bfilo','bfimi','bfipl','bfivs','bfivc','bfihi','bfils','bfige','bfilt','bfigt','bfile',
-            'clzeq','clzne','clzcs','clzhs','clzcc','clzlo','clzmi','clzpl','clzvs','clzvc','clzhi','clzls','clzge','clzlt','clzgt','clzle',
-            /* ARMv7-R: Conditional Divide */
-            'sdiveq','sdivne','sdivcs','sdivhs','sdivcc','sdivlo','sdivmi','sdivpl','sdivvs','sdivvc','sdivhi','sdivls','sdivge','sdivlt','sdivgt','sdivle',
-            'udiveq','udivne','udivcs','udivhs','udivcc','udivlo','udivmi','udivpl','udivvs','udivvc','udivhi','udivls','udivge','udivlt','udivgt','udivle'
-            ),
-        /* Unconditional Memory Access */
-        3 => array(
-            /* Memory Access: Unconditional Memory Loads and Prefetches */
-            'ldm.w','ldmal.w',
-            'ldm','ldmal',
-            'ldmda','ldmdaal',
-            'ldmdb','ldmdbal',
-            'ldmib','ldmibal',
-            'ldmia','ldmiaal',
-            'ldmea','ldmeaal',
-            'ldmed','ldmedal',
-            'ldmfa','ldmfaal',
-            'ldmfd','ldmfdal',
-            'ldrd','ldrdal',
-            'ldr.w','ldral.w',
-            'ldr','ldral',
-            'ldrh.w','ldrhal.w',
-            'ldrh','ldrhal',
-            'ldrb.w','ldrbal.w',
-            'ldrb','ldrbal',
-            'ldrsh.w','ldrshal.w',
-            'ldrsh','ldrshal',
-            'ldrsb.w','ldrsbal.w',
-            'ldrsb','ldrsbal',
-            'ldrt','ldrtal',
-            'ldrht','ldrhtal',
-            'ldrbt','ldrbtal',
-            'ldrsht','ldrshtal',
-            'ldrsbt','ldrsbtal',
-            'pop.w','popal.w',
-            'pop','popal',
-            'pld','pldal',
-            'pldw','pldwal',
-            'pli','plial',
-            /* Memory Access: Unconditional Memory Stores */
-            'stm.w','stmal.w',
-            'stm','stmal',
-            'stmda','stmdaal',
-            'stmdb','stmdbal',
-            'stmib','stmibal',
-            'stmia','stmiaal',
-            'stmea','stmeaal',
-            'stmed','stmedal',
-            'stdfa','stdfaal',
-            'stdfd','stdfdal',
-            'strd','strdal',
-            'str.w','stral.w',
-            'str','stral',
-            'strh.w','strhal.w',
-            'strh','strhal',
-            'strb.w','strbal.w',
-            'strb','strbal',
-            'strt','strtal',
-            'strht','strhtal',
-            'strbt','strbtal',
-            'push.w','pushal.w',
-            'push','pushal'
-            ),
-        /* Conditional Memory Access */
-        4 => array(
-            /* Memory Access: Conditional Memory Loads and Prefetches */
-            'ldmeq.w','ldmne.w','ldmcs.w','ldmhs.w','ldmcc.w','ldmlo.w','ldmmi.w','ldmpl.w','ldmvs.w','ldmvc.w','ldmhi.w','ldmls.w','ldmge.w','ldmlt.w','ldmgt.w','ldmle.w',
-            'ldmeq','ldmne','ldmcs','ldmhs','ldmcc','ldmlo','ldmmi','ldmpl','ldmvs','ldmvc','ldmhi','ldmls','ldmge','ldmlt','ldmgt','ldmle',
-            'ldmdaeq','ldmdane','ldmdacs','ldmdahs','ldmdacc','ldmdalo','ldmdami','ldmdapl','ldmdavs','ldmdavc','ldmdahi','ldmdals','ldmdage','ldmdalt','ldmdagt','ldmdale',
-            'ldmdbeq','ldmdbne','ldmdbcs','ldmdbhs','ldmdbcc','ldmdblo','ldmdbmi','ldmdbpl','ldmdbvs','ldmdbvc','ldmdbhi','ldmdbls','ldmdbge','ldmdblt','ldmdbgt','ldmdble',
-            'ldmibeq','ldmibne','ldmibcs','ldmibhs','ldmibcc','ldmiblo','ldmibmi','ldmibpl','ldmibvs','ldmibvc','ldmibhi','ldmibls','ldmibge','ldmiblt','ldmibgt','ldmible',
-            'ldmiaeq','ldmiane','ldmiacs','ldmiahs','ldmiacc','ldmialo','ldmiami','ldmiapl','ldmiavs','ldmiavc','ldmiahi','ldmials','ldmiage','ldmialt','ldmiagt','ldmiale',
-            'ldmeaeq','ldmeane','ldmeacs','ldmeahs','ldmeacc','ldmealo','ldmeami','ldmeapl','ldmeavs','ldmeavc','ldmeahi','ldmeals','ldmeage','ldmealt','ldmeagt','ldmeale',
-            'ldmedeq','ldmedne','ldmedcs','ldmedhs','ldmedcc','ldmedlo','ldmedmi','ldmedpl','ldmedvs','ldmedvc','ldmedhi','ldmedls','ldmedge','ldmedlt','ldmedgt','ldmedle',
-            'ldmfaeq','ldmfane','ldmfacs','ldmfahs','ldmfacc','ldmfalo','ldmfami','ldmfapl','ldmfavs','ldmfavc','ldmfahi','ldmfals','ldmfage','ldmfalt','ldmfagt','ldmfale',
-            'ldmfdeq','ldmfdne','ldmfdcs','ldmfdhs','ldmfdcc','ldmfdlo','ldmfdmi','ldmfdpl','ldmfdvs','ldmfdvc','ldmfdhi','ldmfdls','ldmfdge','ldmfdlt','ldmfdgt','ldmfdle',
-            'ldrdeq','ldrdne','ldrdcs','ldrdhs','ldrdcc','ldrdlo','ldrdmi','ldrdpl','ldrdvs','ldrdvc','ldrdhi','ldrdls','ldrdge','ldrdlt','ldrdgt','ldrdle',
-            'ldreq.w','ldrne.w','ldrcs.w','ldrhs.w','ldrcc.w','ldrlo.w','ldrmi.w','ldrpl.w','ldrvs.w','ldrvc.w','ldrhi.w','ldrls.w','ldrge.w','ldrlt.w','ldrgt.w','ldrle.w',
-            'ldreq','ldrne','ldrcs','ldrhs','ldrcc','ldrlo','ldrmi','ldrpl','ldrvs','ldrvc','ldrhi','ldrls','ldrge','ldrlt','ldrgt','ldrle',
-            'ldrheq.w','ldrhne.w','ldrhcs.w','ldrhhs.w','ldrhcc.w','ldrhlo.w','ldrhmi.w','ldrhpl.w','ldrhvs.w','ldrhvc.w','ldrhhi.w','ldrhls.w','ldrhge.w','ldrhlt.w','ldrhgt.w','ldrhle.w',
-            'ldrheq','ldrhne','ldrhcs','ldrhhs','ldrhcc','ldrhlo','ldrhmi','ldrhpl','ldrhvs','ldrhvc','ldrhhi','ldrhls','ldrhge','ldrhlt','ldrhgt','ldrhle',
-            'ldrbeq.w','ldrbne.w','ldrbcs.w','ldrbhs.w','ldrbcc.w','ldrblo.w','ldrbmi.w','ldrbpl.w','ldrbvs.w','ldrbvc.w','ldrbhi.w','ldrbls.w','ldrbge.w','ldrblt.w','ldrbgt.w','ldrble.w',
-            'ldrbeq','ldrbne','ldrbcs','ldrbhs','ldrbcc','ldrblo','ldrbmi','ldrbpl','ldrbvs','ldrbvc','ldrbhi','ldrbls','ldrbge','ldrblt','ldrbgt','ldrble',
-            'ldrsheq.w','ldrshne.w','ldrshcs.w','ldrshhs.w','ldrshcc.w','ldrshlo.w','ldrshmi.w','ldrshpl.w','ldrshvs.w','ldrshvc.w','ldrshhi.w','ldrshls.w','ldrshge.w','ldrshlt.w','ldrshgt.w','ldrshle.w',
-            'ldrsheq','ldrshne','ldrshcs','ldrshhs','ldrshcc','ldrshlo','ldrshmi','ldrshpl','ldrshvs','ldrshvc','ldrshhi','ldrshls','ldrshge','ldrshlt','ldrshgt','ldrshle',
-            'ldrsbeq.w','ldrsbne.w','ldrsbcs.w','ldrsbhs.w','ldrsbcc.w','ldrsblo.w','ldrsbmi.w','ldrsbpl.w','ldrsbvs.w','ldrsbvc.w','ldrsbhi.w','ldrsbls.w','ldrsbge.w','ldrsblt.w','ldrsbgt.w','ldrsble.w',
-            'ldrsbeq','ldrsbne','ldrsbcs','ldrsbhs','ldrsbcc','ldrsblo','ldrsbmi','ldrsbpl','ldrsbvs','ldrsbvc','ldrsbhi','ldrsbls','ldrsbge','ldrsblt','ldrsbgt','ldrsble',
-            'ldrteq','ldrtne','ldrtcs','ldrths','ldrtcc','ldrtlo','ldrtmi','ldrtpl','ldrtvs','ldrtvc','ldrthi','ldrtls','ldrtge','ldrtlt','ldrtgt','ldrtle',
-            'ldrhteq','ldrhtne','ldrhtcs','ldrhths','ldrhtcc','ldrhtlo','ldrhtmi','ldrhtpl','ldrhtvs','ldrhtvc','ldrhthi','ldrhtls','ldrhtge','ldrhtlt','ldrhtgt','ldrhtle',
-            'ldrbteq','ldrbtne','ldrbtcs','ldrbths','ldrbtcc','ldrbtlo','ldrbtmi','ldrbtpl','ldrbtvs','ldrbtvc','ldrbthi','ldrbtls','ldrbtge','ldrbtlt','ldrbtgt','ldrbtle',
-            'ldrshteq','ldrshtne','ldrshtcs','ldrshths','ldrshtcc','ldrshtlo','ldrshtmi','ldrshtpl','ldrshtvs','ldrshtvc','ldrshthi','ldrshtls','ldrshtge','ldrshtlt','ldrshtgt','ldrshtle',
-            'ldrsbteq','ldrsbtne','ldrsbtcs','ldrsbths','ldrsbtcc','ldrsbtlo','ldrsbtmi','ldrsbtpl','ldrsbtvs','ldrsbtvc','ldrsbthi','ldrsbtls','ldrsbtge','ldrsbtlt','ldrsbtgt','ldrsbtle',
-            'popeq.w','popne.w','popcs.w','pophs.w','popcc.w','poplo.w','popmi.w','poppl.w','popvs.w','popvc.w','pophi.w','popls.w','popge.w','poplt.w','popgt.w','pople.w',
-            'popeq','popne','popcs','pophs','popcc','poplo','popmi','poppl','popvs','popvc','pophi','popls','popge','poplt','popgt','pople',
-            'pldeq','pldne','pldcs','pldhs','pldcc','pldlo','pldmi','pldpl','pldvs','pldvc','pldhi','pldls','pldge','pldlt','pldgt','pldle',
-            'pldweq','pldwne','pldwcs','pldwhs','pldwcc','pldwlo','pldwmi','pldwpl','pldwvs','pldwvc','pldwhi','pldwls','pldwge','pldwlt','pldwgt','pldwle',
-            'plieq','pline','plics','plihs','plicc','plilo','plimi','plipl','plivs','plivc','plihi','plils','plige','plilt','pligt','plile',
-            /* Memory Access: Conditional Memory Stores */
-            'stmeq.w','stmne.w','stmcs.w','stmhs.w','stmcc.w','stmlo.w','stmmi.w','stmpl.w','stmvs.w','stmvc.w','stmhi.w','stmls.w','stmge.w','stmlt.w','stmgt.w','stmle.w',
-            'stmeq','stmne','stmcs','stmhs','stmcc','stmlo','stmmi','stmpl','stmvs','stmvc','stmhi','stmls','stmge','stmlt','stmgt','stmle',
-            'stmdaeq','stmdane','stmdacs','stmdahs','stmdacc','stmdalo','stmdami','stmdapl','stmdavs','stmdavc','stmdahi','stmdals','stmdage','stmdalt','stmdagt','stmdale',
-            'stmdbeq','stmdbne','stmdbcs','stmdbhs','stmdbcc','stmdblo','stmdbmi','stmdbpl','stmdbvs','stmdbvc','stmdbhi','stmdbls','stmdbge','stmdblt','stmdbgt','stmdble',
-            'stmibeq','stmibne','stmibcs','stmibhs','stmibcc','stmiblo','stmibmi','stmibpl','stmibvs','stmibvc','stmibhi','stmibls','stmibge','stmiblt','stmibgt','stmible',
-            'stmiaeq','stmiane','stmiacs','stmiahs','stmiacc','stmialo','stmiami','stmiapl','stmiavs','stmiavc','stmiahi','stmials','stmiage','stmialt','stmiagt','stmiale',
-            'stmeaeq','stmeane','stmeacs','stmeahs','stmeacc','stmealo','stmeami','stmeapl','stmeavs','stmeavc','stmeahi','stmeals','stmeage','stmealt','stmeagt','stmeale',
-            'stmedeq','stmedne','stmedcs','stmedhs','stmedcc','stmedlo','stmedmi','stmedpl','stmedvs','stmedvc','stmedhi','stmedls','stmedge','stmedlt','stmedgt','stmedle',
-            'stdfaeq','stdfane','stdfacs','stdfahs','stdfacc','stdfalo','stdfami','stdfapl','stdfavs','stdfavc','stdfahi','stdfals','stdfage','stdfalt','stdfagt','stdfale',
-            'stdfdeq','stdfdne','stdfdcs','stdfdhs','stdfdcc','stdfdlo','stdfdmi','stdfdpl','stdfdvs','stdfdvc','stdfdhi','stdfdls','stdfdge','stdfdlt','stdfdgt','stdfdle',
-            'strdeq','strdne','strdcs','strdhs','strdcc','strdlo','strdmi','strdpl','strdvs','strdvc','strdhi','strdls','strdge','strdlt','strdgt','strdle',
-            'streq.w','strne.w','strcs.w','strhs.w','strcc.w','strlo.w','strmi.w','strpl.w','strvs.w','strvc.w','strhi.w','strls.w','strge.w','strlt.w','strgt.w','strle.w',
-            'streq','strne','strcs','strhs','strcc','strlo','strmi','strpl','strvs','strvc','strhi','strls','strge','strlt','strgt','strle',
-            'strheq.w','strhne.w','strhcs.w','strhhs.w','strhcc.w','strhlo.w','strhmi.w','strhpl.w','strhvs.w','strhvc.w','strhhi.w','strhls.w','strhge.w','strhlt.w','strhgt.w','strhle.w',
-            'strheq','strhne','strhcs','strhhs','strhcc','strhlo','strhmi','strhpl','strhvs','strhvc','strhhi','strhls','strhge','strhlt','strhgt','strhle',
-            'strbeq.w','strbne.w','strbcs.w','strbhs.w','strbcc.w','strblo.w','strbmi.w','strbpl.w','strbvs.w','strbvc.w','strbhi.w','strbls.w','strbge.w','strblt.w','strbgt.w','strble.w',
-            'strbeq','strbne','strbcs','strbhs','strbcc','strblo','strbmi','strbpl','strbvs','strbvc','strbhi','strbls','strbge','strblt','strbgt','strble',
-            'strteq','strtne','strtcs','strths','strtcc','strtlo','strtmi','strtpl','strtvs','strtvc','strthi','strtls','strtge','strtlt','strtgt','strtle',
-            'strhteq','strhtne','strhtcs','strhths','strhtcc','strhtlo','strhtmi','strhtpl','strhtvs','strhtvc','strhthi','strhtls','strhtge','strhtlt','strhtgt','strhtle',
-            'strbteq','strbtne','strbtcs','strbths','strbtcc','strbtlo','strbtmi','strbtpl','strbtvs','strbtvc','strbthi','strbtls','strbtge','strbtlt','strbtgt','strbtle',
-            'pusheq.w','pushne.w','pushcs.w','pushhs.w','pushcc.w','pushlo.w','pushmi.w','pushpl.w','pushvs.w','pushvc.w','pushhi.w','pushls.w','pushge.w','pushlt.w','pushgt.w','pushle.w',
-            'pusheq','pushne','pushcs','pushhs','pushcc','pushlo','pushmi','pushpl','pushvs','pushvc','pushhi','pushls','pushge','pushlt','pushgt','pushle'
-            ),
-        /* Unconditional Flags-Affecting Instructions */
-        5 => array(
-            /* Set Flags: Unconditional Addition and Subtraction */
-            'adds.w','addsal.w',
-            'adds','addsal',
-            'subs.w','subsal.w',
-            'subs','subsal',
-            'rsbs.w','rsbsal.w',
-            'rsbs','rsbsal',
-            'negs.w','negsal.w',
-            'negs','negsal',
-            'adcs.w','adcsal.w',
-            'adcs','adcsal',
-            'sbcs.w','sbcsal.w',
-            'sbcs','sbcsal',
-            'rscs','rscsal',
-            'cmp.w','cmpal.w',
-            'cmp','cmpal',
-            'cmn.w','cmnal.w',
-            'cmn','cmnal',
-            /* Set Flags: Unconditional Logical */
-            'ands.w','andsal.w',
-            'ands','andsal',
-            'bics.w','bicsal.w',
-            'bics','bicsal',
-            'orrs.w','orrsal.w',
-            'orrs','orrsal',
-            'orns.w','ornsal.w',
-            'orns','ornsal',
-            'eors.w','eorsal.w',
-            'eors','eorsal',
-            'mvns.w','mvnsal.w',
-            'mvns','mvnsal',
-            'movs.w','movsal.w',
-            'movs','movsal',
-            'teq','teqal',
-            'tst.w','tstal.w',
-            'tst','tstal',
-            'mrs','mrsal',
-            'msr','msral',
-            /* Set Flags: Unconditional Shifts and Rotates */
-            'asrs.w','asrsal.w',
-            'asrs','asrsal',
-            'lsls.w','lslsal.w',
-            'lsls','lslsal',
-            'lsrs.w','lsrsal.w',
-            'lsrs','lsrsal',
-            'rors.w','rorsal.w',
-            'rors','rorsal',
-            'rrxs','rrxsal',
-            /* Set Flags: Unconditional Multiply and Multiply-Add */
-            'mlas','mlasal',
-            'smulls','smullsal',
-            'umulls','umullsal',
-            'smlals','smlalsal',
-            'umlals','umlalsal'
-            ),
-        /* Conditional Flags-Affecting Instructions */
-        6 => array(
-            /* Set Flags: Conditional Addition and Subtraction */
-            'addseq.w','addsne.w','addscs.w','addshs.w','addscc.w','addslo.w','addsmi.w','addspl.w','addsvs.w','addsvc.w','addshi.w','addsls.w','addsge.w','addslt.w','addsgt.w','addsle.w',
-            'addseq','addsne','addscs','addshs','addscc','addslo','addsmi','addspl','addsvs','addsvc','addshi','addsls','addsge','addslt','addsgt','addsle',
-            'subseq.w','subsne.w','subscs.w','subshs.w','subscc.w','subslo.w','subsmi.w','subspl.w','subsvs.w','subsvc.w','subshi.w','subsls.w','subsge.w','subslt.w','subsgt.w','subsle.w',
-            'subseq','subsne','subscs','subshs','subscc','subslo','subsmi','subspl','subsvs','subsvc','subshi','subsls','subsge','subslt','subsgt','subsle',
-            'rsbseq.w','rsbsne.w','rsbscs.w','rsbshs.w','rsbscc.w','rsbslo.w','rsbsmi.w','rsbspl.w','rsbsvs.w','rsbsvc.w','rsbshi.w','rsbsls.w','rsbsge.w','rsbslt.w','rsbsgt.w','rsbsle.w',
-            'rsbseq','rsbsne','rsbscs','rsbshs','rsbscc','rsbslo','rsbsmi','rsbspl','rsbsvs','rsbsvc','rsbshi','rsbsls','rsbsge','rsbslt','rsbsgt','rsbsle',
-            'negseq.w','negsne.w','negscs.w','negshs.w','negscc.w','negslo.w','negsmi.w','negspl.w','negsvs.w','negsvc.w','negshi.w','negsls.w','negsge.w','negslt.w','negsgt.w','negsle.w',
-            'negseq','negsne','negscs','negshs','negscc','negslo','negsmi','negspl','negsvs','negsvc','negshi','negsls','negsge','negslt','negsgt','negsle',
-            'adcseq.w','adcsne.w','adcscs.w','adcshs.w','adcscc.w','adcslo.w','adcsmi.w','adcspl.w','adcsvs.w','adcsvc.w','adcshi.w','adcsls.w','adcsge.w','adcslt.w','adcsgt.w','adcsle.w',
-            'adcseq','adcsne','adcscs','adcshs','adcscc','adcslo','adcsmi','adcspl','adcsvs','adcsvc','adcshi','adcsls','adcsge','adcslt','adcsgt','adcsle',
-            'sbcseq.w','sbcsne.w','sbcscs.w','sbcshs.w','sbcscc.w','sbcslo.w','sbcsmi.w','sbcspl.w','sbcsvs.w','sbcsvc.w','sbcshi.w','sbcsls.w','sbcsge.w','sbcslt.w','sbcsgt.w','sbcsle.w',
-            'sbcseq','sbcsne','sbcscs','sbcshs','sbcscc','sbcslo','sbcsmi','sbcspl','sbcsvs','sbcsvc','sbcshi','sbcsls','sbcsge','sbcslt','sbcsgt','sbcsle',
-            'rscseq','rscsne','rscscs','rscshs','rscscc','rscslo','rscsmi','rscspl','rscsvs','rscsvc','rscshi','rscsls','rscsge','rscslt','rscsgt','rscsle',
-            'cmpeq.w','cmpne.w','cmpcs.w','cmphs.w','cmpcc.w','cmplo.w','cmpmi.w','cmppl.w','cmpvs.w','cmpvc.w','cmphi.w','cmpls.w','cmpge.w','cmplt.w','cmpgt.w','cmple.w',
-            'cmpeq','cmpne','cmpcs','cmphs','cmpcc','cmplo','cmpmi','cmppl','cmpvs','cmpvc','cmphi','cmpls','cmpge','cmplt','cmpgt','cmple',
-            'cmneq.w','cmnne.w','cmncs.w','cmnhs.w','cmncc.w','cmnlo.w','cmnmi.w','cmnpl.w','cmnvs.w','cmnvc.w','cmnhi.w','cmnls.w','cmnge.w','cmnlt.w','cmngt.w','cmnle.w',
-            'cmneq','cmnne','cmncs','cmnhs','cmncc','cmnlo','cmnmi','cmnpl','cmnvs','cmnvc','cmnhi','cmnls','cmnge','cmnlt','cmngt','cmnle',
-            /* Set Flags: Conditional Logical */
-            'andseq.w','andsne.w','andscs.w','andshs.w','andscc.w','andslo.w','andsmi.w','andspl.w','andsvs.w','andsvc.w','andshi.w','andsls.w','andsge.w','andslt.w','andsgt.w','andsle.w',
-            'andseq','andsne','andscs','andshs','andscc','andslo','andsmi','andspl','andsvs','andsvc','andshi','andsls','andsge','andslt','andsgt','andsle',
-            'bicseq.w','bicsne.w','bicscs.w','bicshs.w','bicscc.w','bicslo.w','bicsmi.w','bicspl.w','bicsvs.w','bicsvc.w','bicshi.w','bicsls.w','bicsge.w','bicslt.w','bicsgt.w','bicsle.w',
-            'bicseq','bicsne','bicscs','bicshs','bicscc','bicslo','bicsmi','bicspl','bicsvs','bicsvc','bicshi','bicsls','bicsge','bicslt','bicsgt','bicsle',
-            'orrseq.w','orrsne.w','orrscs.w','orrshs.w','orrscc.w','orrslo.w','orrsmi.w','orrspl.w','orrsvs.w','orrsvc.w','orrshi.w','orrsls.w','orrsge.w','orrslt.w','orrsgt.w','orrsle.w',
-            'orrseq','orrsne','orrscs','orrshs','orrscc','orrslo','orrsmi','orrspl','orrsvs','orrsvc','orrshi','orrsls','orrsge','orrslt','orrsgt','orrsle',
-            'ornseq.w','ornsne.w','ornscs.w','ornshs.w','ornscc.w','ornslo.w','ornsmi.w','ornspl.w','ornsvs.w','ornsvc.w','ornshi.w','ornsls.w','ornsge.w','ornslt.w','ornsgt.w','ornsle.w',
-            'ornseq','ornsne','ornscs','ornshs','ornscc','ornslo','ornsmi','ornspl','ornsvs','ornsvc','ornshi','ornsls','ornsge','ornslt','ornsgt','ornsle',
-            'eorseq.w','eorsne.w','eorscs.w','eorshs.w','eorscc.w','eorslo.w','eorsmi.w','eorspl.w','eorsvs.w','eorsvc.w','eorshi.w','eorsls.w','eorsge.w','eorslt.w','eorsgt.w','eorsle.w',
-            'eorseq','eorsne','eorscs','eorshs','eorscc','eorslo','eorsmi','eorspl','eorsvs','eorsvc','eorshi','eorsls','eorsge','eorslt','eorsgt','eorsle',
-            'mvnseq.w','mvnsne.w','mvnscs.w','mvnshs.w','mvnscc.w','mvnslo.w','mvnsmi.w','mvnspl.w','mvnsvs.w','mvnsvc.w','mvnshi.w','mvnsls.w','mvnsge.w','mvnslt.w','mvnsgt.w','mvnsle.w',
-            'mvnseq','mvnsne','mvnscs','mvnshs','mvnscc','mvnslo','mvnsmi','mvnspl','mvnsvs','mvnsvc','mvnshi','mvnsls','mvnsge','mvnslt','mvnsgt','mvnsle',
-            'movseq.w','movsne.w','movscs.w','movshs.w','movscc.w','movslo.w','movsmi.w','movspl.w','movsvs.w','movsvc.w','movshi.w','movsls.w','movsge.w','movslt.w','movsgt.w','movsle.w',
-            'movseq','movsne','movscs','movshs','movscc','movslo','movsmi','movspl','movsvs','movsvc','movshi','movsls','movsge','movslt','movsgt','movsle',
-            'teqeq','teqne','teqcs','teqhs','teqcc','teqlo','teqmi','teqpl','teqvs','teqvc','teqhi','teqls','teqge','teqlt','teqgt','teqle',
-            'tsteq.w','tstne.w','tstcs.w','tsths.w','tstcc.w','tstlo.w','tstmi.w','tstpl.w','tstvs.w','tstvc.w','tsthi.w','tstls.w','tstge.w','tstlt.w','tstgt.w','tstle.w',
-            'tsteq','tstne','tstcs','tsths','tstcc','tstlo','tstmi','tstpl','tstvs','tstvc','tsthi','tstls','tstge','tstlt','tstgt','tstle',
-            'mrseq','mrsne','mrscs','mrshs','mrscc','mrslo','mrsmi','mrspl','mrsvs','mrsvc','mrshi','mrsls','mrsge','mrslt','mrsgt','mrsle',
-            'msreq','msrne','msrcs','msrhs','msrcc','msrlo','msrmi','msrpl','msrvs','msrvc','msrhi','msrls','msrge','msrlt','msrgt','msrle',
-            /* Set Flags: Conditional Shifts and Rotates */
-            'asrseq.w','asrsne.w','asrscs.w','asrshs.w','asrscc.w','asrslo.w','asrsmi.w','asrspl.w','asrsvs.w','asrsvc.w','asrshi.w','asrsls.w','asrsge.w','asrslt.w','asrsgt.w','asrsle.w',
-            'asrseq','asrsne','asrscs','asrshs','asrscc','asrslo','asrsmi','asrspl','asrsvs','asrsvc','asrshi','asrsls','asrsge','asrslt','asrsgt','asrsle',
-            'lslseq.w','lslsne.w','lslscs.w','lslshs.w','lslscc.w','lslslo.w','lslsmi.w','lslspl.w','lslsvs.w','lslsvc.w','lslshi.w','lslsls.w','lslsge.w','lslslt.w','lslsgt.w','lslsle.w',
-            'lslseq','lslsne','lslscs','lslshs','lslscc','lslslo','lslsmi','lslspl','lslsvs','lslsvc','lslshi','lslsls','lslsge','lslslt','lslsgt','lslsle',
-            'lsrseq.w','lsrsne.w','lsrscs.w','lsrshs.w','lsrscc.w','lsrslo.w','lsrsmi.w','lsrspl.w','lsrsvs.w','lsrsvc.w','lsrshi.w','lsrsls.w','lsrsge.w','lsrslt.w','lsrsgt.w','lsrsle.w',
-            'lsrseq','lsrsne','lsrscs','lsrshs','lsrscc','lsrslo','lsrsmi','lsrspl','lsrsvs','lsrsvc','lsrshi','lsrsls','lsrsge','lsrslt','lsrsgt','lsrsle',
-            'rorseq.w','rorsne.w','rorscs.w','rorshs.w','rorscc.w','rorslo.w','rorsmi.w','rorspl.w','rorsvs.w','rorsvc.w','rorshi.w','rorsls.w','rorsge.w','rorslt.w','rorsgt.w','rorsle.w',
-            'rorseq','rorsne','rorscs','rorshs','rorscc','rorslo','rorsmi','rorspl','rorsvs','rorsvc','rorshi','rorsls','rorsge','rorslt','rorsgt','rorsle',
-            'rrxseq','rrxsne','rrxscs','rrxshs','rrxscc','rrxslo','rrxsmi','rrxspl','rrxsvs','rrxsvc','rrxshi','rrxsls','rrxsge','rrxslt','rrxsgt','rrxsle',
-            /* Set Flags: Conditional Multiply and Multiply-Add */
-            'mlaseq','mlasne','mlascs','mlashs','mlascc','mlaslo','mlasmi','mlaspl','mlasvs','mlasvc','mlashi','mlasls','mlasge','mlaslt','mlasgt','mlasle',
-            'smullseq','smullsne','smullscs','smullshs','smullscc','smullslo','smullsmi','smullspl','smullsvs','smullsvc','smullshi','smullsls','smullsge','smullslt','smullsgt','smullsle',
-            'umullseq','umullsne','umullscs','umullshs','umullscc','umullslo','umullsmi','umullspl','umullsvs','umullsvc','umullshi','umullsls','umullsge','umullslt','umullsgt','umullsle',
-            'smlalseq','smlalsne','smlalscs','smlalshs','smlalscc','smlalslo','smlalsmi','smlalspl','smlalsvs','smlalsvc','smlalshi','smlalsls','smlalsge','smlalslt','smlalsgt','smlalsle',
-            'umlalseq','umlalsne','umlalscs','umlalshs','umlalscc','umlalslo','umlalsmi','umlalspl','umlalsvs','umlalsvc','umlalshi','umlalsls','umlalsge','umlalslt','umlalsgt','umlalsle'
-            ),
-        /* Unconditional Flow Control Instructions */
-        7 => array(
-            /* Flow Control: Unconditional Branch and If-Then-Else */
-            'b.w','bal.w',
-            'b','bal',
-            'bl','blal',
-            'bx','bxal',
-            'blx','blxal',
-            'bxj','bxjal',
-            'cbnz',
-            'cbz',
-            'tbb','tbbal',
-            'tbh','tbhal',
-            'it',
-            'itt',
-            'ite',
-            'ittt',
-            'itet',
-            'itte',
-            'itee',
-            'itttt',
-            'itett',
-            'ittet',
-            'iteet',
-            'ittte',
-            'itete',
-            'ittee',
-            'iteee'
-            ),
-        /* Conditional Flow Control Instructions */
-        8 => array(
-            /* Flow Control: Conditional Branch and If-Then-Else */
-            'beq.w','bne.w','bcs.w','bhs.w','bcc.w','blo.w','bmi.w','bpl.w','bvs.w','bvc.w','bhi.w','bls.w','bge.w','blt.w','bgt.w','ble.w',
-            'beq','bne','bcs','bhs','bcc','blo','bmi','bpl','bvs','bvc','bhi','bls','bge','blt','bgt','ble',
-            'bleq','blne','blcs','blhs','blcc','bllo','blmi','blpl','blvs','blvc','blhi','blls','blge','bllt','blgt','blle',
-            'bxeq','bxne','bxcs','bxhs','bxcc','bxlo','bxmi','bxpl','bxvs','bxvc','bxhi','bxls','bxge','bxlt','bxgt','bxle',
-            'blxeq','blxne','blxcs','blxhs','blxcc','blxlo','blxmi','blxpl','blxvs','blxvc','blxhi','blxls','blxge','blxlt','blxgt','blxle',
-            'bxjeq','bxjne','bxjcs','bxjhs','bxjcc','bxjlo','bxjmi','bxjpl','bxjvs','bxjvc','bxjhi','bxjls','bxjge','bxjlt','bxjgt','bxjle',
-            'tbbeq','tbbne','tbbcs','tbbhs','tbbcc','tbblo','tbbmi','tbbpl','tbbvs','tbbvc','tbbhi','tbbls','tbbge','tbblt','tbbgt','tbble',
-            'tbheq','tbhne','tbhcs','tbhhs','tbhcc','tbhlo','tbhmi','tbhpl','tbhvs','tbhvc','tbhhi','tbhls','tbhge','tbhlt','tbhgt','tbhle'
-            ),
-        /* Unconditional Syncronization Instructions */
-        9 => array(
-            /* Synchronization: Unconditional Loads, Stores and Barriers */
-            'ldrexd','ldrexdal',
-            'ldrex','ldrexal',
-            'ldrexh','ldrexhal',
-            'ldrexb','ldrexbal',
-            'strexd','strexdal',
-            'strex','strexal',
-            'strexh','strexhal',
-            'strexb','strexbal',
-            'clrex','clrexal',
-            'swp','swpal',
-            'swpb','swpbal',
-            'dbc','dbcal',
-            'dsb','dsbal',
-            'isb','isbal',
-            'yield.w','yieldal.w',
-            'yield','yieldal',
-            'nop.w','nopal.w',
-            'nop','nopal'
-            ),
-        /* Conditional Syncronization Instructions */
-        10 => array(
-            /* Synchronization: Conditional Loads, Stores and Barriers */
-            'ldrexdeq','ldrexdne','ldrexdcs','ldrexdhs','ldrexdcc','ldrexdlo','ldrexdmi','ldrexdpl','ldrexdvs','ldrexdvc','ldrexdhi','ldrexdls','ldrexdge','ldrexdlt','ldrexdgt','ldrexdle',
-            'ldrexeq','ldrexne','ldrexcs','ldrexhs','ldrexcc','ldrexlo','ldrexmi','ldrexpl','ldrexvs','ldrexvc','ldrexhi','ldrexls','ldrexge','ldrexlt','ldrexgt','ldrexle',
-            'ldrexheq','ldrexhne','ldrexhcs','ldrexhhs','ldrexhcc','ldrexhlo','ldrexhmi','ldrexhpl','ldrexhvs','ldrexhvc','ldrexhhi','ldrexhls','ldrexhge','ldrexhlt','ldrexhgt','ldrexhle',
-            'ldrexbeq','ldrexbne','ldrexbcs','ldrexbhs','ldrexbcc','ldrexblo','ldrexbmi','ldrexbpl','ldrexbvs','ldrexbvc','ldrexbhi','ldrexbls','ldrexbge','ldrexblt','ldrexbgt','ldrexble',
-            'strexdeq','strexdne','strexdcs','strexdhs','strexdcc','strexdlo','strexdmi','strexdpl','strexdvs','strexdvc','strexdhi','strexdls','strexdge','strexdlt','strexdgt','strexdle',
-            'strexeq','strexne','strexcs','strexhs','strexcc','strexlo','strexmi','strexpl','strexvs','strexvc','strexhi','strexls','strexge','strexlt','strexgt','strexle',
-            'strexheq','strexhne','strexhcs','strexhhs','strexhcc','strexhlo','strexhmi','strexhpl','strexhvs','strexhvc','strexhhi','strexhls','strexhge','strexhlt','strexhgt','strexhle',
-            'strexbeq','strexbne','strexbcs','strexbhs','strexbcc','strexblo','strexbmi','strexbpl','strexbvs','strexbvc','strexbhi','strexbls','strexbge','strexblt','strexbgt','strexble',
-            'clrexeq','clrexne','clrexcs','clrexhs','clrexcc','clrexlo','clrexmi','clrexpl','clrexvs','clrexvc','clrexhi','clrexls','clrexge','clrexlt','clrexgt','clrexle',
-            'swpeq','swpne','swpcs','swphs','swpcc','swplo','swpmi','swppl','swpvs','swpvc','swphi','swpls','swpge','swplt','swpgt','swple',
-            'swpbeq','swpbne','swpbcs','swpbhs','swpbcc','swpblo','swpbmi','swpbpl','swpbvs','swpbvc','swpbhi','swpbls','swpbge','swpblt','swpbgt','swpble',
-            'dbceq','dbcne','dbccs','dbchs','dbccc','dbclo','dbcmi','dbcpl','dbcvs','dbcvc','dbchi','dbcls','dbcge','dbclt','dbcgt','dbcle',
-            'dsbeq','dsbne','dsbcs','dsbhs','dsbcc','dsblo','dsbmi','dsbpl','dsbvs','dsbvc','dsbhi','dsbls','dsbge','dsblt','dsbgt','dsble',
-            'isbeq','isbne','isbcs','isbhs','isbcc','isblo','isbmi','isbpl','isbvs','isbvc','isbhi','isbls','isbge','isblt','isbgt','isble',
-            'yieldeq.w','yieldne.w','yieldcs.w','yieldhs.w','yieldcc.w','yieldlo.w','yieldmi.w','yieldpl.w','yieldvs.w','yieldvc.w','yieldhi.w','yieldls.w','yieldge.w','yieldlt.w','yieldgt.w','yieldle.w',
-            'yieldeq','yieldne','yieldcs','yieldhs','yieldcc','yieldlo','yieldmi','yieldpl','yieldvs','yieldvc','yieldhi','yieldls','yieldge','yieldlt','yieldgt','yieldle',
-            'nopeq.w','nopne.w','nopcs.w','nophs.w','nopcc.w','noplo.w','nopmi.w','noppl.w','nopvs.w','nopvc.w','nophi.w','nopls.w','nopge.w','noplt.w','nopgt.w','nople.w',
-            'nopeq','nopne','nopcs','nophs','nopcc','noplo','nopmi','noppl','nopvs','nopvc','nophi','nopls','nopge','noplt','nopgt','nople'
-            ),
-        /* Unconditional ARMv6 SIMD */
-        11 => array(
-            /* ARMv6 SIMD: Unconditional Addition, Subtraction & Saturation */
-            'sadd16','sadd16al',
-            'sadd8','sadd8al',
-            'uadd16','uadd16al',
-            'uadd8','uadd8al',
-            'ssub16','ssub16al',
-            'ssub8','ssub8al',
-            'usub16','usub16al',
-            'usub8','usub8al',
-            'sasx','sasxal',
-            'ssax','ssaxal',
-            'uasx','uasxal',
-            'usax','usaxal',
-            'usad8','usad8al',
-            'usada8','usada8al',
-            /* ARMv6 SIMD: Unconditional Halving Addition & Subtraction */
-            'shadd16','shadd16al',
-            'shadd8','shadd8al',
-            'uhadd16','uhadd16al',
-            'uhadd8','uhadd8al',
-            'shsub16','shsub16al',
-            'shsub8','shsub8al',
-            'uhsub16','uhsub16al',
-            'uhsub8','uhsub8al',
-            'shasx','shasxal',
-            'shsax','shsaxal',
-            'uhasx','uhasxal',
-            'uhsax','uhsaxal',
-            /* ARMv6 SIMD: Unconditional Saturating Operations */
-            'qadd','qaddal',
-            'qadd16','qadd16al',
-            'qadd8','qadd8al',
-            'uqadd16','uqadd16al',
-            'uqadd8','uqadd8al',
-            'qsub','qsubal',
-            'qsub16','qsub16al',
-            'qsub8','qsub8al',
-            'uqsub16','uqsub16al',
-            'uqsub8','uqsub8al',
-            'qasx','qasxal',
-            'qsax','qsaxal',
-            'uqasx','uqasxal',
-            'uqsax','uqsaxal',
-            'qdadd','qdaddal',
-            'qdsub','qdsubal',
-            'ssat','ssatal',
-            'ssat16','ssat16al',
-            'usat','usatal',
-            'usat16','usat16al',
-            /* ARMv6 SIMD: Unconditional Permutation and Combine Operations */
-            'sxtah','sxtahal',
-            'sxtab','sxtabal',
-            'sxtab16','sxtab16al',
-            'uxtah','uxtahal',
-            'uxtab','uxtabal',
-            'uxtab16','uxtab16al',
-            'sxth.w','sxthal.w',
-            'sxth','sxthal',
-            'sxtb.w','sxtbal.w',
-            'sxtb','sxtbal',
-            'sxtb16','sxtb16al',
-            'uxth.w','uxthal.w',
-            'uxth','uxthal',
-            'uxtb.w','uxtbal.w',
-            'uxtb','uxtbal',
-            'uxtb16','uxtb16al',
-            'pkhbt','pkhbtal',
-            'pkhtb','pkhtbal',
-            'rbit','rbital',
-            'rev.w','reval.w',
-            'rev','reval',
-            'rev16.w','rev16al.w',
-            'rev16','rev16al',
-            'revsh.w','revshal.w',
-            'revsh','revshal',
-            'sel','selal',
-            /* ARMv6 SIMD: Unconditional Multiply and Multiply-Add */
-            'smlad','smladal',
-            'smladx','smladxal',
-            'smlsd','smlsdal',
-            'smlsdx','smlsdxal',
-            'smlald','smlaldal',
-            'smlaldx','smlaldxal',
-            'smlsld','smlsldal',
-            'smlsldx','smlsldxal',
-            'smmul','smmulal',
-            'smmulr','smmulral',
-            'smmla','smmlaal',
-            'smmlar','smmlaral',
-            'smmls','smmlsal',
-            'smmlsr','smmlsral',
-            'smuad','smuadal',
-            'smuadx','smuadxal',
-            'smusd','smusdal',
-            'smusdx','smusdxal',
-            'umaal','umaalal'
-            ),
-        /* Conditional ARMv6 SIMD */
-        12 => array(
-            /* ARMv6 SIMD: Conditional Addition, Subtraction & Saturation */
-            'sadd16eq','sadd16ne','sadd16cs','sadd16hs','sadd16cc','sadd16lo','sadd16mi','sadd16pl','sadd16vs','sadd16vc','sadd16hi','sadd16ls','sadd16ge','sadd16lt','sadd16gt','sadd16le',
-            'sadd8eq','sadd8ne','sadd8cs','sadd8hs','sadd8cc','sadd8lo','sadd8mi','sadd8pl','sadd8vs','sadd8vc','sadd8hi','sadd8ls','sadd8ge','sadd8lt','sadd8gt','sadd8le',
-            'uadd16eq','uadd16ne','uadd16cs','uadd16hs','uadd16cc','uadd16lo','uadd16mi','uadd16pl','uadd16vs','uadd16vc','uadd16hi','uadd16ls','uadd16ge','uadd16lt','uadd16gt','uadd16le',
-            'uadd8eq','uadd8ne','uadd8cs','uadd8hs','uadd8cc','uadd8lo','uadd8mi','uadd8pl','uadd8vs','uadd8vc','uadd8hi','uadd8ls','uadd8ge','uadd8lt','uadd8gt','uadd8le',
-            'ssub16eq','ssub16ne','ssub16cs','ssub16hs','ssub16cc','ssub16lo','ssub16mi','ssub16pl','ssub16vs','ssub16vc','ssub16hi','ssub16ls','ssub16ge','ssub16lt','ssub16gt','ssub16le',
-            'ssub8eq','ssub8ne','ssub8cs','ssub8hs','ssub8cc','ssub8lo','ssub8mi','ssub8pl','ssub8vs','ssub8vc','ssub8hi','ssub8ls','ssub8ge','ssub8lt','ssub8gt','ssub8le',
-            'usub16eq','usub16ne','usub16cs','usub16hs','usub16cc','usub16lo','usub16mi','usub16pl','usub16vs','usub16vc','usub16hi','usub16ls','usub16ge','usub16lt','usub16gt','usub16le',
-            'usub8eq','usub8ne','usub8cs','usub8hs','usub8cc','usub8lo','usub8mi','usub8pl','usub8vs','usub8vc','usub8hi','usub8ls','usub8ge','usub8lt','usub8gt','usub8le',
-            'sasxeq','sasxne','sasxcs','sasxhs','sasxcc','sasxlo','sasxmi','sasxpl','sasxvs','sasxvc','sasxhi','sasxls','sasxge','sasxlt','sasxgt','sasxle',
-            'ssaxeq','ssaxne','ssaxcs','ssaxhs','ssaxcc','ssaxlo','ssaxmi','ssaxpl','ssaxvs','ssaxvc','ssaxhi','ssaxls','ssaxge','ssaxlt','ssaxgt','ssaxle',
-            'uasxeq','uasxne','uasxcs','uasxhs','uasxcc','uasxlo','uasxmi','uasxpl','uasxvs','uasxvc','uasxhi','uasxls','uasxge','uasxlt','uasxgt','uasxle',
-            'usaxeq','usaxne','usaxcs','usaxhs','usaxcc','usaxlo','usaxmi','usaxpl','usaxvs','usaxvc','usaxhi','usaxls','usaxge','usaxlt','usaxgt','usaxle',
-            'usad8eq','usad8ne','usad8cs','usad8hs','usad8cc','usad8lo','usad8mi','usad8pl','usad8vs','usad8vc','usad8hi','usad8ls','usad8ge','usad8lt','usad8gt','usad8le',
-            'usada8eq','usada8ne','usada8cs','usada8hs','usada8cc','usada8lo','usada8mi','usada8pl','usada8vs','usada8vc','usada8hi','usada8ls','usada8ge','usada8lt','usada8gt','usada8le',
-            /* ARMv6 SIMD: Conditional Halving Addition & Subtraction */
-            'shadd16eq','shadd16ne','shadd16cs','shadd16hs','shadd16cc','shadd16lo','shadd16mi','shadd16pl','shadd16vs','shadd16vc','shadd16hi','shadd16ls','shadd16ge','shadd16lt','shadd16gt','shadd16le',
-            'shadd8eq','shadd8ne','shadd8cs','shadd8hs','shadd8cc','shadd8lo','shadd8mi','shadd8pl','shadd8vs','shadd8vc','shadd8hi','shadd8ls','shadd8ge','shadd8lt','shadd8gt','shadd8le',
-            'uhadd16eq','uhadd16ne','uhadd16cs','uhadd16hs','uhadd16cc','uhadd16lo','uhadd16mi','uhadd16pl','uhadd16vs','uhadd16vc','uhadd16hi','uhadd16ls','uhadd16ge','uhadd16lt','uhadd16gt','uhadd16le',
-            'uhadd8eq','uhadd8ne','uhadd8cs','uhadd8hs','uhadd8cc','uhadd8lo','uhadd8mi','uhadd8pl','uhadd8vs','uhadd8vc','uhadd8hi','uhadd8ls','uhadd8ge','uhadd8lt','uhadd8gt','uhadd8le',
-            'shsub16eq','shsub16ne','shsub16cs','shsub16hs','shsub16cc','shsub16lo','shsub16mi','shsub16pl','shsub16vs','shsub16vc','shsub16hi','shsub16ls','shsub16ge','shsub16lt','shsub16gt','shsub16le',
-            'shsub8eq','shsub8ne','shsub8cs','shsub8hs','shsub8cc','shsub8lo','shsub8mi','shsub8pl','shsub8vs','shsub8vc','shsub8hi','shsub8ls','shsub8ge','shsub8lt','shsub8gt','shsub8le',
-            'uhsub16eq','uhsub16ne','uhsub16cs','uhsub16hs','uhsub16cc','uhsub16lo','uhsub16mi','uhsub16pl','uhsub16vs','uhsub16vc','uhsub16hi','uhsub16ls','uhsub16ge','uhsub16lt','uhsub16gt','uhsub16le',
-            'uhsub8eq','uhsub8ne','uhsub8cs','uhsub8hs','uhsub8cc','uhsub8lo','uhsub8mi','uhsub8pl','uhsub8vs','uhsub8vc','uhsub8hi','uhsub8ls','uhsub8ge','uhsub8lt','uhsub8gt','uhsub8le',
-            'shasxeq','shasxne','shasxcs','shasxhs','shasxcc','shasxlo','shasxmi','shasxpl','shasxvs','shasxvc','shasxhi','shasxls','shasxge','shasxlt','shasxgt','shasxle',
-            'shsaxeq','shsaxne','shsaxcs','shsaxhs','shsaxcc','shsaxlo','shsaxmi','shsaxpl','shsaxvs','shsaxvc','shsaxhi','shsaxls','shsaxge','shsaxlt','shsaxgt','shsaxle',
-            'uhasxeq','uhasxne','uhasxcs','uhasxhs','uhasxcc','uhasxlo','uhasxmi','uhasxpl','uhasxvs','uhasxvc','uhasxhi','uhasxls','uhasxge','uhasxlt','uhasxgt','uhasxle',
-            'uhsaxeq','uhsaxne','uhsaxcs','uhsaxhs','uhsaxcc','uhsaxlo','uhsaxmi','uhsaxpl','uhsaxvs','uhsaxvc','uhsaxhi','uhsaxls','uhsaxge','uhsaxlt','uhsaxgt','uhsaxle',
-            /* ARMv6 SIMD: Conditional Saturating Operations */
-            'qaddeq','qaddne','qaddcs','qaddhs','qaddcc','qaddlo','qaddmi','qaddpl','qaddvs','qaddvc','qaddhi','qaddls','qaddge','qaddlt','qaddgt','qaddle',
-            'qadd16eq','qadd16ne','qadd16cs','qadd16hs','qadd16cc','qadd16lo','qadd16mi','qadd16pl','qadd16vs','qadd16vc','qadd16hi','qadd16ls','qadd16ge','qadd16lt','qadd16gt','qadd16le',
-            'qadd8eq','qadd8ne','qadd8cs','qadd8hs','qadd8cc','qadd8lo','qadd8mi','qadd8pl','qadd8vs','qadd8vc','qadd8hi','qadd8ls','qadd8ge','qadd8lt','qadd8gt','qadd8le',
-            'uqadd16eq','uqadd16ne','uqadd16cs','uqadd16hs','uqadd16cc','uqadd16lo','uqadd16mi','uqadd16pl','uqadd16vs','uqadd16vc','uqadd16hi','uqadd16ls','uqadd16ge','uqadd16lt','uqadd16gt','uqadd16le',
-            'uqadd8eq','uqadd8ne','uqadd8cs','uqadd8hs','uqadd8cc','uqadd8lo','uqadd8mi','uqadd8pl','uqadd8vs','uqadd8vc','uqadd8hi','uqadd8ls','uqadd8ge','uqadd8lt','uqadd8gt','uqadd8le',
-            'qsubeq','qsubne','qsubcs','qsubhs','qsubcc','qsublo','qsubmi','qsubpl','qsubvs','qsubvc','qsubhi','qsubls','qsubge','qsublt','qsubgt','qsuble',
-            'qsub16eq','qsub16ne','qsub16cs','qsub16hs','qsub16cc','qsub16lo','qsub16mi','qsub16pl','qsub16vs','qsub16vc','qsub16hi','qsub16ls','qsub16ge','qsub16lt','qsub16gt','qsub16le',
-            'qsub8eq','qsub8ne','qsub8cs','qsub8hs','qsub8cc','qsub8lo','qsub8mi','qsub8pl','qsub8vs','qsub8vc','qsub8hi','qsub8ls','qsub8ge','qsub8lt','qsub8gt','qsub8le',
-            'uqsub16eq','uqsub16ne','uqsub16cs','uqsub16hs','uqsub16cc','uqsub16lo','uqsub16mi','uqsub16pl','uqsub16vs','uqsub16vc','uqsub16hi','uqsub16ls','uqsub16ge','uqsub16lt','uqsub16gt','uqsub16le',
-            'uqsub8eq','uqsub8ne','uqsub8cs','uqsub8hs','uqsub8cc','uqsub8lo','uqsub8mi','uqsub8pl','uqsub8vs','uqsub8vc','uqsub8hi','uqsub8ls','uqsub8ge','uqsub8lt','uqsub8gt','uqsub8le',
-            'qasxeq','qasxne','qasxcs','qasxhs','qasxcc','qasxlo','qasxmi','qasxpl','qasxvs','qasxvc','qasxhi','qasxls','qasxge','qasxlt','qasxgt','qasxle',
-            'qsaxeq','qsaxne','qsaxcs','qsaxhs','qsaxcc','qsaxlo','qsaxmi','qsaxpl','qsaxvs','qsaxvc','qsaxhi','qsaxls','qsaxge','qsaxlt','qsaxgt','qsaxle',
-            'uqasxeq','uqasxne','uqasxcs','uqasxhs','uqasxcc','uqasxlo','uqasxmi','uqasxpl','uqasxvs','uqasxvc','uqasxhi','uqasxls','uqasxge','uqasxlt','uqasxgt','uqasxle',
-            'uqsaxeq','uqsaxne','uqsaxcs','uqsaxhs','uqsaxcc','uqsaxlo','uqsaxmi','uqsaxpl','uqsaxvs','uqsaxvc','uqsaxhi','uqsaxls','uqsaxge','uqsaxlt','uqsaxgt','uqsaxle',
-            'qdaddeq','qdaddne','qdaddcs','qdaddhs','qdaddcc','qdaddlo','qdaddmi','qdaddpl','qdaddvs','qdaddvc','qdaddhi','qdaddls','qdaddge','qdaddlt','qdaddgt','qdaddle',
-            'qdsubeq','qdsubne','qdsubcs','qdsubhs','qdsubcc','qdsublo','qdsubmi','qdsubpl','qdsubvs','qdsubvc','qdsubhi','qdsubls','qdsubge','qdsublt','qdsubgt','qdsuble',
-            'ssateq','ssatne','ssatcs','ssaths','ssatcc','ssatlo','ssatmi','ssatpl','ssatvs','ssatvc','ssathi','ssatls','ssatge','ssatlt','ssatgt','ssatle',
-            'ssat16eq','ssat16ne','ssat16cs','ssat16hs','ssat16cc','ssat16lo','ssat16mi','ssat16pl','ssat16vs','ssat16vc','ssat16hi','ssat16ls','ssat16ge','ssat16lt','ssat16gt','ssat16le',
-            'usateq','usatne','usatcs','usaths','usatcc','usatlo','usatmi','usatpl','usatvs','usatvc','usathi','usatls','usatge','usatlt','usatgt','usatle',
-            'usat16eq','usat16ne','usat16cs','usat16hs','usat16cc','usat16lo','usat16mi','usat16pl','usat16vs','usat16vc','usat16hi','usat16ls','usat16ge','usat16lt','usat16gt','usat16le',
-            /* ARMv6 SIMD: Conditional Permutation and Combine Operations */
-            'sxtaheq','sxtahne','sxtahcs','sxtahhs','sxtahcc','sxtahlo','sxtahmi','sxtahpl','sxtahvs','sxtahvc','sxtahhi','sxtahls','sxtahge','sxtahlt','sxtahgt','sxtahle',
-            'sxtabeq','sxtabne','sxtabcs','sxtabhs','sxtabcc','sxtablo','sxtabmi','sxtabpl','sxtabvs','sxtabvc','sxtabhi','sxtabls','sxtabge','sxtablt','sxtabgt','sxtable',
-            'sxtab16eq','sxtab16ne','sxtab16cs','sxtab16hs','sxtab16cc','sxtab16lo','sxtab16mi','sxtab16pl','sxtab16vs','sxtab16vc','sxtab16hi','sxtab16ls','sxtab16ge','sxtab16lt','sxtab16gt','sxtab16le',
-            'uxtaheq','uxtahne','uxtahcs','uxtahhs','uxtahcc','uxtahlo','uxtahmi','uxtahpl','uxtahvs','uxtahvc','uxtahhi','uxtahls','uxtahge','uxtahlt','uxtahgt','uxtahle',
-            'uxtabeq','uxtabne','uxtabcs','uxtabhs','uxtabcc','uxtablo','uxtabmi','uxtabpl','uxtabvs','uxtabvc','uxtabhi','uxtabls','uxtabge','uxtablt','uxtabgt','uxtable',
-            'uxtab16eq','uxtab16ne','uxtab16cs','uxtab16hs','uxtab16cc','uxtab16lo','uxtab16mi','uxtab16pl','uxtab16vs','uxtab16vc','uxtab16hi','uxtab16ls','uxtab16ge','uxtab16lt','uxtab16gt','uxtab16le',
-            'sxtheq.w','sxthne.w','sxthcs.w','sxthhs.w','sxthcc.w','sxthlo.w','sxthmi.w','sxthpl.w','sxthvs.w','sxthvc.w','sxthhi.w','sxthls.w','sxthge.w','sxthlt.w','sxthgt.w','sxthle.w',
-            'sxtheq','sxthne','sxthcs','sxthhs','sxthcc','sxthlo','sxthmi','sxthpl','sxthvs','sxthvc','sxthhi','sxthls','sxthge','sxthlt','sxthgt','sxthle',
-            'sxtbeq.w','sxtbne.w','sxtbcs.w','sxtbhs.w','sxtbcc.w','sxtblo.w','sxtbmi.w','sxtbpl.w','sxtbvs.w','sxtbvc.w','sxtbhi.w','sxtbls.w','sxtbge.w','sxtblt.w','sxtbgt.w','sxtble.w',
-            'sxtbeq','sxtbne','sxtbcs','sxtbhs','sxtbcc','sxtblo','sxtbmi','sxtbpl','sxtbvs','sxtbvc','sxtbhi','sxtbls','sxtbge','sxtblt','sxtbgt','sxtble',
-            'sxtb16eq','sxtb16ne','sxtb16cs','sxtb16hs','sxtb16cc','sxtb16lo','sxtb16mi','sxtb16pl','sxtb16vs','sxtb16vc','sxtb16hi','sxtb16ls','sxtb16ge','sxtb16lt','sxtb16gt','sxtb16le',
-            'uxtheq.w','uxthne.w','uxthcs.w','uxthhs.w','uxthcc.w','uxthlo.w','uxthmi.w','uxthpl.w','uxthvs.w','uxthvc.w','uxthhi.w','uxthls.w','uxthge.w','uxthlt.w','uxthgt.w','uxthle.w',
-            'uxtheq','uxthne','uxthcs','uxthhs','uxthcc','uxthlo','uxthmi','uxthpl','uxthvs','uxthvc','uxthhi','uxthls','uxthge','uxthlt','uxthgt','uxthle',
-            'uxtbeq.w','uxtbne.w','uxtbcs.w','uxtbhs.w','uxtbcc.w','uxtblo.w','uxtbmi.w','uxtbpl.w','uxtbvs.w','uxtbvc.w','uxtbhi.w','uxtbls.w','uxtbge.w','uxtblt.w','uxtbgt.w','uxtble.w',
-            'uxtbeq','uxtbne','uxtbcs','uxtbhs','uxtbcc','uxtblo','uxtbmi','uxtbpl','uxtbvs','uxtbvc','uxtbhi','uxtbls','uxtbge','uxtblt','uxtbgt','uxtble',
-            'uxtb16eq','uxtb16ne','uxtb16cs','uxtb16hs','uxtb16cc','uxtb16lo','uxtb16mi','uxtb16pl','uxtb16vs','uxtb16vc','uxtb16hi','uxtb16ls','uxtb16ge','uxtb16lt','uxtb16gt','uxtb16le',
-            'pkhbteq','pkhbtne','pkhbtcs','pkhbths','pkhbtcc','pkhbtlo','pkhbtmi','pkhbtpl','pkhbtvs','pkhbtvc','pkhbthi','pkhbtls','pkhbtge','pkhbtlt','pkhbtgt','pkhbtle',
-            'pkhtbeq','pkhtbne','pkhtbcs','pkhtbhs','pkhtbcc','pkhtblo','pkhtbmi','pkhtbpl','pkhtbvs','pkhtbvc','pkhtbhi','pkhtbls','pkhtbge','pkhtblt','pkhtbgt','pkhtble',
-            'rbiteq','rbitne','rbitcs','rbiths','rbitcc','rbitlo','rbitmi','rbitpl','rbitvs','rbitvc','rbithi','rbitls','rbitge','rbitlt','rbitgt','rbitle',
-            'reveq.w','revne.w','revcs.w','revhs.w','revcc.w','revlo.w','revmi.w','revpl.w','revvs.w','revvc.w','revhi.w','revls.w','revge.w','revlt.w','revgt.w','revle.w',
-            'reveq','revne','revcs','revhs','revcc','revlo','revmi','revpl','revvs','revvc','revhi','revls','revge','revlt','revgt','revle',
-            'rev16eq.w','rev16ne.w','rev16cs.w','rev16hs.w','rev16cc.w','rev16lo.w','rev16mi.w','rev16pl.w','rev16vs.w','rev16vc.w','rev16hi.w','rev16ls.w','rev16ge.w','rev16lt.w','rev16gt.w','rev16le.w',
-            'rev16eq','rev16ne','rev16cs','rev16hs','rev16cc','rev16lo','rev16mi','rev16pl','rev16vs','rev16vc','rev16hi','rev16ls','rev16ge','rev16lt','rev16gt','rev16le',
-            'revsheq.w','revshne.w','revshcs.w','revshhs.w','revshcc.w','revshlo.w','revshmi.w','revshpl.w','revshvs.w','revshvc.w','revshhi.w','revshls.w','revshge.w','revshlt.w','revshgt.w','revshle.w',
-            'revsheq','revshne','revshcs','revshhs','revshcc','revshlo','revshmi','revshpl','revshvs','revshvc','revshhi','revshls','revshge','revshlt','revshgt','revshle',
-            'seleq','selne','selcs','selhs','selcc','sello','selmi','selpl','selvs','selvc','selhi','sells','selge','sellt','selgt','selle',
-            /* ARMv6 SIMD: Conditional Multiply and Multiply-Add */
-            'smladeq','smladne','smladcs','smladhs','smladcc','smladlo','smladmi','smladpl','smladvs','smladvc','smladhi','smladls','smladge','smladlt','smladgt','smladle',
-            'smladxeq','smladxne','smladxcs','smladxhs','smladxcc','smladxlo','smladxmi','smladxpl','smladxvs','smladxvc','smladxhi','smladxls','smladxge','smladxlt','smladxgt','smladxle',
-            'smlsdeq','smlsdne','smlsdcs','smlsdhs','smlsdcc','smlsdlo','smlsdmi','smlsdpl','smlsdvs','smlsdvc','smlsdhi','smlsdls','smlsdge','smlsdlt','smlsdgt','smlsdle',
-            'smlsdxeq','smlsdxne','smlsdxcs','smlsdxhs','smlsdxcc','smlsdxlo','smlsdxmi','smlsdxpl','smlsdxvs','smlsdxvc','smlsdxhi','smlsdxls','smlsdxge','smlsdxlt','smlsdxgt','smlsdxle',
-            'smlaldeq','smlaldne','smlaldcs','smlaldhs','smlaldcc','smlaldlo','smlaldmi','smlaldpl','smlaldvs','smlaldvc','smlaldhi','smlaldls','smlaldge','smlaldlt','smlaldgt','smlaldle',
-            'smlaldxeq','smlaldxne','smlaldxcs','smlaldxhs','smlaldxcc','smlaldxlo','smlaldxmi','smlaldxpl','smlaldxvs','smlaldxvc','smlaldxhi','smlaldxls','smlaldxge','smlaldxlt','smlaldxgt','smlaldxle',
-            'smlsldeq','smlsldne','smlsldcs','smlsldhs','smlsldcc','smlsldlo','smlsldmi','smlsldpl','smlsldvs','smlsldvc','smlsldhi','smlsldls','smlsldge','smlsldlt','smlsldgt','smlsldle',
-            'smlsldxeq','smlsldxne','smlsldxcs','smlsldxhs','smlsldxcc','smlsldxlo','smlsldxmi','smlsldxpl','smlsldxvs','smlsldxvc','smlsldxhi','smlsldxls','smlsldxge','smlsldxlt','smlsldxgt','smlsldxle',
-            'smmuleq','smmulne','smmulcs','smmulhs','smmulcc','smmullo','smmulmi','smmulpl','smmulvs','smmulvc','smmulhi','smmulls','smmulge','smmullt','smmulgt','smmulle',
-            'smmulreq','smmulrne','smmulrcs','smmulrhs','smmulrcc','smmulrlo','smmulrmi','smmulrpl','smmulrvs','smmulrvc','smmulrhi','smmulrls','smmulrge','smmulrlt','smmulrgt','smmulrle',
-            'smmlaeq','smmlane','smmlacs','smmlahs','smmlacc','smmlalo','smmlami','smmlapl','smmlavs','smmlavc','smmlahi','smmlals','smmlage','smmlalt','smmlagt','smmlale',
-            'smmlareq','smmlarne','smmlarcs','smmlarhs','smmlarcc','smmlarlo','smmlarmi','smmlarpl','smmlarvs','smmlarvc','smmlarhi','smmlarls','smmlarge','smmlarlt','smmlargt','smmlarle',
-            'smmlseq','smmlsne','smmlscs','smmlshs','smmlscc','smmlslo','smmlsmi','smmlspl','smmlsvs','smmlsvc','smmlshi','smmlsls','smmlsge','smmlslt','smmlsgt','smmlsle',
-            'smmlsreq','smmlsrne','smmlsrcs','smmlsrhs','smmlsrcc','smmlsrlo','smmlsrmi','smmlsrpl','smmlsrvs','smmlsrvc','smmlsrhi','smmlsrls','smmlsrge','smmlsrlt','smmlsrgt','smmlsrle',
-            'smuadeq','smuadne','smuadcs','smuadhs','smuadcc','smuadlo','smuadmi','smuadpl','smuadvs','smuadvc','smuadhi','smuadls','smuadge','smuadlt','smuadgt','smuadle',
-            'smuadxeq','smuadxne','smuadxcs','smuadxhs','smuadxcc','smuadxlo','smuadxmi','smuadxpl','smuadxvs','smuadxvc','smuadxhi','smuadxls','smuadxge','smuadxlt','smuadxgt','smuadxle',
-            'smusdeq','smusdne','smusdcs','smusdhs','smusdcc','smusdlo','smusdmi','smusdpl','smusdvs','smusdvc','smusdhi','smusdls','smusdge','smusdlt','smusdgt','smusdle',
-            'smusdxeq','smusdxne','smusdxcs','smusdxhs','smusdxcc','smusdxlo','smusdxmi','smusdxpl','smusdxvs','smusdxvc','smusdxhi','smusdxls','smusdxge','smusdxlt','smusdxgt','smusdxle',
-            'umaaleq','umaalne','umaalcs','umaalhs','umaalcc','umaallo','umaalmi','umaalpl','umaalvs','umaalvc','umaalhi','umaalls','umaalge','umaallt','umaalgt','umaalle'
-            ),
-        /* Unconditional Coprocessor Instructions */
-        13 => array(
-            /* Data Processing: Unconditional Coprocessor Instructions */
-            'cdp','cdpal',
-            'cdp2','cdp2al',
-            'ldc','ldcal',
-            'ldcl','ldclal',
-            'ldc2','ldc2al',
-            'ldc2l','ldc2lal',
-            'stc','stcal',
-            'stcl','stclal',
-            'stc2','stc2al',
-            'stc2l','stc2lal',
-            'mcr','mcral',
-            'mcr2','mcr2al',
-            'mcrr','mcrral',
-            'mcrr2','mcrr2al',
-            'mrc','mrcal',
-            'mrc2','mrc2al',
-            'mrrc','mrrcal',
-            'mrrc2','mrrc2al'
-            ),
-        /* Conditional Coprocessor Instructions */
-        14 => array(
-            /* Data Processing: Conditional Coprocessor Instructions */
-            'cdpeq','cdpne','cdpcs','cdphs','cdpcc','cdplo','cdpmi','cdppl','cdpvs','cdpvc','cdphi','cdpls','cdpge','cdplt','cdpgt','cdple',
-            'cdp2eq','cdp2ne','cdp2cs','cdp2hs','cdp2cc','cdp2lo','cdp2mi','cdp2pl','cdp2vs','cdp2vc','cdp2hi','cdp2ls','cdp2ge','cdp2lt','cdp2gt','cdp2le',
-            'ldceq','ldcne','ldccs','ldchs','ldccc','ldclo','ldcmi','ldcpl','ldcvs','ldcvc','ldchi','ldcls','ldcge','ldclt','ldcgt','ldcle',
-            'ldcleq','ldclne','ldclcs','ldclhs','ldclcc','ldcllo','ldclmi','ldclpl','ldclvs','ldclvc','ldclhi','ldclls','ldclge','ldcllt','ldclgt','ldclle',
-            'ldc2eq','ldc2ne','ldc2cs','ldc2hs','ldc2cc','ldc2lo','ldc2mi','ldc2pl','ldc2vs','ldc2vc','ldc2hi','ldc2ls','ldc2ge','ldc2lt','ldc2gt','ldc2le',
-            'ldc2leq','ldc2lne','ldc2lcs','ldc2lhs','ldc2lcc','ldc2llo','ldc2lmi','ldc2lpl','ldc2lvs','ldc2lvc','ldc2lhi','ldc2lls','ldc2lge','ldc2llt','ldc2lgt','ldc2lle',
-            'stceq','stcne','stccs','stchs','stccc','stclo','stcmi','stcpl','stcvs','stcvc','stchi','stcls','stcge','stclt','stcgt','stcle',
-            'stcleq','stclne','stclcs','stclhs','stclcc','stcllo','stclmi','stclpl','stclvs','stclvc','stclhi','stclls','stclge','stcllt','stclgt','stclle',
-            'stc2eq','stc2ne','stc2cs','stc2hs','stc2cc','stc2lo','stc2mi','stc2pl','stc2vs','stc2vc','stc2hi','stc2ls','stc2ge','stc2lt','stc2gt','stc2le',
-            'stc2leq','stc2lne','stc2lcs','stc2lhs','stc2lcc','stc2llo','stc2lmi','stc2lpl','stc2lvs','stc2lvc','stc2lhi','stc2lls','stc2lge','stc2llt','stc2lgt','stc2lle',
-            'mcreq','mcrne','mcrcs','mcrhs','mcrcc','mcrlo','mcrmi','mcrpl','mcrvs','mcrvc','mcrhi','mcrls','mcrge','mcrlt','mcrgt','mcrle',
-            'mcr2eq','mcr2ne','mcr2cs','mcr2hs','mcr2cc','mcr2lo','mcr2mi','mcr2pl','mcr2vs','mcr2vc','mcr2hi','mcr2ls','mcr2ge','mcr2lt','mcr2gt','mcr2le',
-            'mcrreq','mcrrne','mcrrcs','mcrrhs','mcrrcc','mcrrlo','mcrrmi','mcrrpl','mcrrvs','mcrrvc','mcrrhi','mcrrls','mcrrge','mcrrlt','mcrrgt','mcrrle',
-            'mcrr2eq','mcrr2ne','mcrr2cs','mcrr2hs','mcrr2cc','mcrr2lo','mcrr2mi','mcrr2pl','mcrr2vs','mcrr2vc','mcrr2hi','mcrr2ls','mcrr2ge','mcrr2lt','mcrr2gt','mcrr2le',
-            'mrceq','mrcne','mrccs','mrchs','mrccc','mrclo','mrcmi','mrcpl','mrcvs','mrcvc','mrchi','mrcls','mrcge','mrclt','mrcgt','mrcle',
-            'mrc2eq','mrc2ne','mrc2cs','mrc2hs','mrc2cc','mrc2lo','mrc2mi','mrc2pl','mrc2vs','mrc2vc','mrc2hi','mrc2ls','mrc2ge','mrc2lt','mrc2gt','mrc2le',
-            'mrrceq','mrrcne','mrrccs','mrrchs','mrrccc','mrrclo','mrrcmi','mrrcpl','mrrcvs','mrrcvc','mrrchi','mrrcls','mrrcge','mrrclt','mrrcgt','mrrcle',
-            'mrrc2eq','mrrc2ne','mrrc2cs','mrrc2hs','mrrc2cc','mrrc2lo','mrrc2mi','mrrc2pl','mrrc2vs','mrrc2vc','mrrc2hi','mrrc2ls','mrrc2ge','mrrc2lt','mrrc2gt','mrrc2le'
-            ),
-        /* Unconditional System Instructions */
-        15 => array(
-            /* System: Unconditional Debug and State-Change Instructions */
-            'bkpt',
-            'dbg','dbgal',
-            'setend',
-            'svc','svcal',
-            'sev.w','seval.w',
-            'sev','seval',
-            'wfe.w','wfeal.w',
-            'wfe','wfeal',
-            'wfi.w','wfial.w',
-            'wfi','wfial',
-            /* System: Unconditional ThumbEE Instructions */
-            'enterx',
-            'leavex',
-            'chka.n','chkaal.n',
-            'chka','chkaal',
-            'hb.n','hbal.n',
-            'hb','hbal',
-            'hbl.n','hblal.n',
-            'hbl','hblal',
-            'hblp.n','hblpal.n',
-            'hblp','hblpal',
-            'hbp.n','hbpal.n',
-            'hbp','hbpal',
-            /* System: Unconditional Privileged Instructions */
-            'cpsie.n',
-            'cpsie.w',
-            'cpsie',
-            'cpsid.n',
-            'cpsid.w',
-            'cpsid',
-            'smc','smcal',
-            'rfeda','rfedaal',
-            'rfedb','rfedbal',
-            'rfeia','rfeiaal',
-            'rfeib','rfeibal',
-            'srsda','srsdaal',
-            'srsdb','srsdbal',
-            'srsia','srsiaal',
-            'srsib','srsibal'
-            ),
-        /* Conditional System Instructions */
-        16 => array(
-            /* System: Conditional Debug and State-Change Instructions */
-            'dbgeq','dbgne','dbgcs','dbghs','dbgcc','dbglo','dbgmi','dbgpl','dbgvs','dbgvc','dbghi','dbgls','dbgge','dbglt','dbggt','dbgle',
-            'svceq','svcne','svccs','svchs','svccc','svclo','svcmi','svcpl','svcvs','svcvc','svchi','svcls','svcge','svclt','svcgt','svcle',
-            'seveq.w','sevne.w','sevcs.w','sevhs.w','sevcc.w','sevlo.w','sevmi.w','sevpl.w','sevvs.w','sevvc.w','sevhi.w','sevls.w','sevge.w','sevlt.w','sevgt.w','sevle.w',
-            'seveq','sevne','sevcs','sevhs','sevcc','sevlo','sevmi','sevpl','sevvs','sevvc','sevhi','sevls','sevge','sevlt','sevgt','sevle',
-            'wfeeq.w','wfene.w','wfecs.w','wfehs.w','wfecc.w','wfelo.w','wfemi.w','wfepl.w','wfevs.w','wfevc.w','wfehi.w','wfels.w','wfege.w','wfelt.w','wfegt.w','wfele.w',
-            'wfeeq','wfene','wfecs','wfehs','wfecc','wfelo','wfemi','wfepl','wfevs','wfevc','wfehi','wfels','wfege','wfelt','wfegt','wfele',
-            'wfieq.w','wfine.w','wfics.w','wfihs.w','wficc.w','wfilo.w','wfimi.w','wfipl.w','wfivs.w','wfivc.w','wfihi.w','wfils.w','wfige.w','wfilt.w','wfigt.w','wfile.w',
-            'wfieq','wfine','wfics','wfihs','wficc','wfilo','wfimi','wfipl','wfivs','wfivc','wfihi','wfils','wfige','wfilt','wfigt','wfile',
-            /* System: Conditional ThumbEE Instructions */
-            'chkaeq.n','chkane.n','chkacs.n','chkahs.n','chkacc.n','chkalo.n','chkami.n','chkapl.n','chkavs.n','chkavc.n','chkahi.n','chkals.n','chkage.n','chkalt.n','chkagt.n','chkale.n',
-            'chkaeq','chkane','chkacs','chkahs','chkacc','chkalo','chkami','chkapl','chkavs','chkavc','chkahi','chkals','chkage','chkalt','chkagt','chkale',
-            'hbeq.n','hbne.n','hbcs.n','hbhs.n','hbcc.n','hblo.n','hbmi.n','hbpl.n','hbvs.n','hbvc.n','hbhi.n','hbls.n','hbge.n','hblt.n','hbgt.n','hble.n',
-            'hbeq','hbne','hbcs','hbhs','hbcc','hblo','hbmi','hbpl','hbvs','hbvc','hbhi','hbls','hbge','hblt','hbgt','hble',
-            'hbleq.n','hblne.n','hblcs.n','hblhs.n','hblcc.n','hbllo.n','hblmi.n','hblpl.n','hblvs.n','hblvc.n','hblhi.n','hblls.n','hblge.n','hbllt.n','hblgt.n','hblle.n',
-            'hbleq','hblne','hblcs','hblhs','hblcc','hbllo','hblmi','hblpl','hblvs','hblvc','hblhi','hblls','hblge','hbllt','hblgt','hblle',
-            'hblpeq.n','hblpne.n','hblpcs.n','hblphs.n','hblpcc.n','hblplo.n','hblpmi.n','hblppl.n','hblpvs.n','hblpvc.n','hblphi.n','hblpls.n','hblpge.n','hblplt.n','hblpgt.n','hblple.n',
-            'hblpeq','hblpne','hblpcs','hblphs','hblpcc','hblplo','hblpmi','hblppl','hblpvs','hblpvc','hblphi','hblpls','hblpge','hblplt','hblpgt','hblple',
-            'hbpeq.n','hbpne.n','hbpcs.n','hbphs.n','hbpcc.n','hbplo.n','hbpmi.n','hbppl.n','hbpvs.n','hbpvc.n','hbphi.n','hbpls.n','hbpge.n','hbplt.n','hbpgt.n','hbple.n',
-            'hbpeq','hbpne','hbpcs','hbphs','hbpcc','hbplo','hbpmi','hbppl','hbpvs','hbpvc','hbphi','hbpls','hbpge','hbplt','hbpgt','hbple',
-            /* System: Conditional Privileged Instructions */
-            'smceq','smcne','smccs','smchs','smccc','smclo','smcmi','smcpl','smcvs','smcvc','smchi','smcls','smcge','smclt','smcgt','smcle',
-            'rfedaeq','rfedane','rfedacs','rfedahs','rfedacc','rfedalo','rfedami','rfedapl','rfedavs','rfedavc','rfedahi','rfedals','rfedage','rfedalt','rfedagt','rfedale',
-            'rfedbeq','rfedbne','rfedbcs','rfedbhs','rfedbcc','rfedblo','rfedbmi','rfedbpl','rfedbvs','rfedbvc','rfedbhi','rfedbls','rfedbge','rfedblt','rfedbgt','rfedble',
-            'rfeiaeq','rfeiane','rfeiacs','rfeiahs','rfeiacc','rfeialo','rfeiami','rfeiapl','rfeiavs','rfeiavc','rfeiahi','rfeials','rfeiage','rfeialt','rfeiagt','rfeiale',
-            'rfeibeq','rfeibne','rfeibcs','rfeibhs','rfeibcc','rfeiblo','rfeibmi','rfeibpl','rfeibvs','rfeibvc','rfeibhi','rfeibls','rfeibge','rfeiblt','rfeibgt','rfeible',
-            'srsdaeq','srsdane','srsdacs','srsdahs','srsdacc','srsdalo','srsdami','srsdapl','srsdavs','srsdavc','srsdahi','srsdals','srsdage','srsdalt','srsdagt','srsdale',
-            'srsdbeq','srsdbne','srsdbcs','srsdbhs','srsdbcc','srsdblo','srsdbmi','srsdbpl','srsdbvs','srsdbvc','srsdbhi','srsdbls','srsdbge','srsdblt','srsdbgt','srsdble',
-            'srsiaeq','srsiane','srsiacs','srsiahs','srsiacc','srsialo','srsiami','srsiapl','srsiavs','srsiavc','srsiahi','srsials','srsiage','srsialt','srsiagt','srsiale',
-            'srsibeq','srsibne','srsibcs','srsibhs','srsibcc','srsiblo','srsibmi','srsibpl','srsibvs','srsibvc','srsibhi','srsibls','srsibge','srsiblt','srsibgt','srsible'
-            ),
-        /* Unconditional WMMX/WMMX2 instructions */
-        17 => array(
-            /* Unconditional WMMX/WMMX2 SIMD Instructions */
-            'tandcb','tandcbal',
-            'tandch','tandchal',
-            'tandcw','tandcwal',
-            'tbcstb','tbcstbal',
-            'tbcsth','tbcsthal',
-            'tbcstw','tbcstwal',
-            'textrcb','textrcbal',
-            'textrch','textrchal',
-            'textrcw','textrcwal',
-            'textrmsb','textrmsbal',
-            'textrmsh','textrmshal',
-            'textrmsw','textrmswal',
-            'textrmub','textrmubal',
-            'textrmuh','textrmuhal',
-            'textrmuw','textrmuwal',
-            'tinsrb','tinsrbal',
-            'tinsrh','tinsrhal',
-            'tinsrw','tinsrwal',
-            'tmcr','tmcral',
-            'tmcrr','tmcrral',
-            'tmia','tmiaal',
-            'tmiaph','tmiaphal',
-            'tmiabb','tmiabbal',
-            'tmiabt','tmiabtal',
-            'tmiatb','tmiatbal',
-            'tmiatt','tmiattal',
-            'tmovmskb','tmovmskbal',
-            'tmovmskh','tmovmskhal',
-            'tmovmskw','tmovmskwal',
-            'tmrc','tmrcal',
-            'tmrrc','tmrrcal',
-            'torcb','torcbal',
-            'torch','torchal',
-            'torcw','torcwal',
-            'torvscb','torvscbal',
-            'torvsch','torvschal',
-            'torvscw','torvscwal',
-            'wabsb','wabsbal',
-            'wabsh','wabshal',
-            'wabsw','wabswal',
-            'wabsdiffb','wabsdiffbal',
-            'wabsdiffh','wabsdiffhal',
-            'wabsdiffw','wabsdiffwal',
-            'waccb','waccbal',
-            'wacch','wacchal',
-            'waccw','waccwal',
-            'waddb','waddbal',
-            'waddh','waddhal',
-            'waddw','waddwal',
-            'waddbc','waddbcal',
-            'waddhc','waddhcal',
-            'waddwc','waddwcal',
-            'waddbss','waddbssal',
-            'waddhss','waddhssal',
-            'waddwss','waddwssal',
-            'waddbus','waddbusal',
-            'waddhus','waddhusal',
-            'waddwus','waddwusal',
-            'waddsubhx','waddsubhxal',
-            'waligni','walignial',
-            'walignr0','walignr0al',
-            'walignr1','walignr1al',
-            'walignr2','walignr2al',
-            'walignr3','walignr3al',
-            'wand','wandal',
-            'wandn','wandnal',
-            'wavg2b','wavg2bal',
-            'wavg2h','wavg2hal',
-            'wavg2br','wavg2bral',
-            'wavg2hr','wavg2hral',
-            'wavg4','wavg4al',
-            'wavg4r','wavg4ral',
-            'wcmpeqb','wcmpeqbal',
-            'wcmpeqh','wcmpeqhal',
-            'wcmpeqw','wcmpeqwal',
-            'wcmpgtsb','wcmpgtsbal',
-            'wcmpgtsh','wcmpgtshal',
-            'wcmpgtsw','wcmpgtswal',
-            'wcmpgtub','wcmpgtubal',
-            'wcmpgtuh','wcmpgtuhal',
-            'wcmpgtuw','wcmpgtuwal',
-            'wldrb','wldrbal',
-            'wldrh','wldrhal',
-            'wldrw','wldrwal',
-            'wldrd','wldrdal',
-            'wmacs','wmacsal',
-            'wmacu','wmacual',
-            'wmacsz','wmacszal',
-            'wmacuz','wmacuzal',
-            'wmadds','wmaddsal',
-            'wmaddu','wmaddual',
-            'wmaddsx','wmaddsxal',
-            'wmaddux','wmadduxal',
-            'wmaddsn','wmaddsnal',
-            'wmaddun','wmaddunal',
-            'wmaxsb','wmaxsbal',
-            'wmaxsh','wmaxshal',
-            'wmaxsw','wmaxswal',
-            'wmaxub','wmaxubal',
-            'wmaxuh','wmaxuhal',
-            'wmaxuw','wmaxuwal',
-            'wmerge','wmergeal',
-            'wmiabb','wmiabbal',
-            'wmiabt','wmiabtal',
-            'wmiatb','wmiatbal',
-            'wmiatt','wmiattal',
-            'wmiabbn','wmiabbnal',
-            'wmiabtn','wmiabtnal',
-            'wmiatbn','wmiatbnal',
-            'wmiattn','wmiattnal',
-            'wmiawbb','wmiawbbal',
-            'wmiawbt','wmiawbtal',
-            'wmiawtb','wmiawtbal',
-            'wmiawtt','wmiawttal',
-            'wmiawbbn','wmiawbbnal',
-            'wmiawbtn','wmiawbtnal',
-            'wmiawtbn','wmiawtbnal',
-            'wmiawttn','wmiawttnal',
-            'wminsb','wminsbal',
-            'wminsh','wminshal',
-            'wminsw','wminswal',
-            'wminub','wminubal',
-            'wminuh','wminuhal',
-            'wminuw','wminuwal',
-            'wmov','wmoval',
-            'wmulsm','wmulsmal',
-            'wmulsl','wmulslal',
-            'wmulum','wmulumal',
-            'wmulul','wmululal',
-            'wmulsmr','wmulsmral',
-            'wmulslr','wmulslral',
-            'wmulumr','wmulumral',
-            'wmululr','wmululral',
-            'wmulwum','wmulwumal',
-            'wmulwsm','wmulwsmal',
-            'wmulwl','wmulwlal',
-            'wmulwumr','wmulwumral',
-            'wmulwsmr','wmulwsmral',
-            'wor','woral',
-            'wpackhss','wpackhssal',
-            'wpackwss','wpackwssal',
-            'wpackdss','wpackdssal',
-            'wpackhus','wpackhusal',
-            'wpackwus','wpackwusal',
-            'wpackdus','wpackdusal',
-            'wqmiabb','wqmiabbal',
-            'wqmiabt','wqmiabtal',
-            'wqmiatb','wqmiatbal',
-            'wqmiatt','wqmiattal',
-            'wqmiabbn','wqmiabbnal',
-            'wqmiabtn','wqmiabtnal',
-            'wqmiatbn','wqmiatbnal',
-            'wqmiattn','wqmiattnal',
-            'wqmulm','wqmulmal',
-            'wqmulmr','wqmulmral',
-            'wqmulwm','wqmulwmal',
-            'wqmulwmr','wqmulwmral',
-            'wrorh','wrorhal',
-            'wrorw','wrorwal',
-            'wrord','wrordal',
-            'wrorhg','wrorhgal',
-            'wrorwg','wrorwgal',
-            'wrordg','wrordgal',
-            'wsadb','wsadbal',
-            'wsadh','wsadhal',
-            'wsadbz','wsadbzal',
-            'wsadhz','wsadhzal',
-            'wshufh','wshufhal',
-            'wsllh','wsllhal',
-            'wsllw','wsllwal',
-            'wslld','wslldal',
-            'wsllhg','wsllhgal',
-            'wsllwg','wsllwgal',
-            'wslldg','wslldgal',
-            'wsrah','wsrahal',
-            'wsraw','wsrawal',
-            'wsrad','wsradal',
-            'wsrahg','wsrahgal',
-            'wsrawg','wsrawgal',
-            'wsradg','wsradgal',
-            'wsrlh','wsrlhal',
-            'wsrlw','wsrlwal',
-            'wsrld','wsrldal',
-            'wsrlhg','wsrlhgal',
-            'wsrlwg','wsrlwgal',
-            'wsrldg','wsrldgal',
-            'wstrb','wstrbal',
-            'wstrh','wstrhal',
-            'wstrw','wstrwal',
-            'wstrd','wstrdal',
-            'wsubb','wsubbal',
-            'wsubh','wsubhal',
-            'wsubw','wsubwal',
-            'wsubbss','wsubbssal',
-            'wsubhss','wsubhssal',
-            'wsubwss','wsubwssal',
-            'wsubbus','wsubbusal',
-            'wsubhus','wsubhusal',
-            'wsubwus','wsubwusal',
-            'wsubaddhx','wsubaddhxal',
-            'wunpckehsb','wunpckehsbal',
-            'wunpckehsh','wunpckehshal',
-            'wunpckehsw','wunpckehswal',
-            'wunpckehub','wunpckehubal',
-            'wunpckehuh','wunpckehuhal',
-            'wunpckehuw','wunpckehuwal',
-            'wunpckihb','wunpckihbal',
-            'wunpckihh','wunpckihhal',
-            'wunpckihw','wunpckihwal',
-            'wunpckelsb','wunpckelsbal',
-            'wunpckelsh','wunpckelshal',
-            'wunpckelsw','wunpckelswal',
-            'wunpckelub','wunpckelubal',
-            'wunpckeluh','wunpckeluhal',
-            'wunpckeluw','wunpckeluwal',
-            'wunpckilb','wunpckilbal',
-            'wunpckilh','wunpckilhal',
-            'wunpckilw','wunpckilwal',
-            'wxor','wxoral',
-            'wzero','wzeroal'
-            ),
-        /* Conditional WMMX/WMMX2 SIMD Instructions */
-        18 => array(
-            /* Conditional WMMX/WMMX2 SIMD Instructions */
-            'tandcbeq','tandcbne','tandcbcs','tandcbhs','tandcbcc','tandcblo','tandcbmi','tandcbpl','tandcbvs','tandcbvc','tandcbhi','tandcbls','tandcbge','tandcblt','tandcbgt','tandcble',
-            'tandcheq','tandchne','tandchcs','tandchhs','tandchcc','tandchlo','tandchmi','tandchpl','tandchvs','tandchvc','tandchhi','tandchls','tandchge','tandchlt','tandchgt','tandchle',
-            'tandcweq','tandcwne','tandcwcs','tandcwhs','tandcwcc','tandcwlo','tandcwmi','tandcwpl','tandcwvs','tandcwvc','tandcwhi','tandcwls','tandcwge','tandcwlt','tandcwgt','tandcwle',
-            'tbcstbeq','tbcstbne','tbcstbcs','tbcstbhs','tbcstbcc','tbcstblo','tbcstbmi','tbcstbpl','tbcstbvs','tbcstbvc','tbcstbhi','tbcstbls','tbcstbge','tbcstblt','tbcstbgt','tbcstble',
-            'tbcstheq','tbcsthne','tbcsthcs','tbcsthhs','tbcsthcc','tbcsthlo','tbcsthmi','tbcsthpl','tbcsthvs','tbcsthvc','tbcsthhi','tbcsthls','tbcsthge','tbcsthlt','tbcsthgt','tbcsthle',
-            'tbcstweq','tbcstwne','tbcstwcs','tbcstwhs','tbcstwcc','tbcstwlo','tbcstwmi','tbcstwpl','tbcstwvs','tbcstwvc','tbcstwhi','tbcstwls','tbcstwge','tbcstwlt','tbcstwgt','tbcstwle',
-            'textrcbeq','textrcbne','textrcbcs','textrcbhs','textrcbcc','textrcblo','textrcbmi','textrcbpl','textrcbvs','textrcbvc','textrcbhi','textrcbls','textrcbge','textrcblt','textrcbgt','textrcble',
-            'textrcheq','textrchne','textrchcs','textrchhs','textrchcc','textrchlo','textrchmi','textrchpl','textrchvs','textrchvc','textrchhi','textrchls','textrchge','textrchlt','textrchgt','textrchle',
-            'textrcweq','textrcwne','textrcwcs','textrcwhs','textrcwcc','textrcwlo','textrcwmi','textrcwpl','textrcwvs','textrcwvc','textrcwhi','textrcwls','textrcwge','textrcwlt','textrcwgt','textrcwle',
-            'textrmsbeq','textrmsbne','textrmsbcs','textrmsbhs','textrmsbcc','textrmsblo','textrmsbmi','textrmsbpl','textrmsbvs','textrmsbvc','textrmsbhi','textrmsbls','textrmsbge','textrmsblt','textrmsbgt','textrmsble',
-            'textrmsheq','textrmshne','textrmshcs','textrmshhs','textrmshcc','textrmshlo','textrmshmi','textrmshpl','textrmshvs','textrmshvc','textrmshhi','textrmshls','textrmshge','textrmshlt','textrmshgt','textrmshle',
-            'textrmsweq','textrmswne','textrmswcs','textrmswhs','textrmswcc','textrmswlo','textrmswmi','textrmswpl','textrmswvs','textrmswvc','textrmswhi','textrmswls','textrmswge','textrmswlt','textrmswgt','textrmswle',
-            'textrmubeq','textrmubne','textrmubcs','textrmubhs','textrmubcc','textrmublo','textrmubmi','textrmubpl','textrmubvs','textrmubvc','textrmubhi','textrmubls','textrmubge','textrmublt','textrmubgt','textrmuble',
-            'textrmuheq','textrmuhne','textrmuhcs','textrmuhhs','textrmuhcc','textrmuhlo','textrmuhmi','textrmuhpl','textrmuhvs','textrmuhvc','textrmuhhi','textrmuhls','textrmuhge','textrmuhlt','textrmuhgt','textrmuhle',
-            'textrmuweq','textrmuwne','textrmuwcs','textrmuwhs','textrmuwcc','textrmuwlo','textrmuwmi','textrmuwpl','textrmuwvs','textrmuwvc','textrmuwhi','textrmuwls','textrmuwge','textrmuwlt','textrmuwgt','textrmuwle',
-            'tinsrbeq','tinsrbne','tinsrbcs','tinsrbhs','tinsrbcc','tinsrblo','tinsrbmi','tinsrbpl','tinsrbvs','tinsrbvc','tinsrbhi','tinsrbls','tinsrbge','tinsrblt','tinsrbgt','tinsrble',
-            'tinsrheq','tinsrhne','tinsrhcs','tinsrhhs','tinsrhcc','tinsrhlo','tinsrhmi','tinsrhpl','tinsrhvs','tinsrhvc','tinsrhhi','tinsrhls','tinsrhge','tinsrhlt','tinsrhgt','tinsrhle',
-            'tinsrweq','tinsrwne','tinsrwcs','tinsrwhs','tinsrwcc','tinsrwlo','tinsrwmi','tinsrwpl','tinsrwvs','tinsrwvc','tinsrwhi','tinsrwls','tinsrwge','tinsrwlt','tinsrwgt','tinsrwle',
-            'tmcreq','tmcrne','tmcrcs','tmcrhs','tmcrcc','tmcrlo','tmcrmi','tmcrpl','tmcrvs','tmcrvc','tmcrhi','tmcrls','tmcrge','tmcrlt','tmcrgt','tmcrle',
-            'tmcrreq','tmcrrne','tmcrrcs','tmcrrhs','tmcrrcc','tmcrrlo','tmcrrmi','tmcrrpl','tmcrrvs','tmcrrvc','tmcrrhi','tmcrrls','tmcrrge','tmcrrlt','tmcrrgt','tmcrrle',
-            'tmiaeq','tmiane','tmiacs','tmiahs','tmiacc','tmialo','tmiami','tmiapl','tmiavs','tmiavc','tmiahi','tmials','tmiage','tmialt','tmiagt','tmiale',
-            'tmiapheq','tmiaphne','tmiaphcs','tmiaphhs','tmiaphcc','tmiaphlo','tmiaphmi','tmiaphpl','tmiaphvs','tmiaphvc','tmiaphhi','tmiaphls','tmiaphge','tmiaphlt','tmiaphgt','tmiaphle',
-            'tmiabbeq','tmiabbne','tmiabbcs','tmiabbhs','tmiabbcc','tmiabblo','tmiabbmi','tmiabbpl','tmiabbvs','tmiabbvc','tmiabbhi','tmiabbls','tmiabbge','tmiabblt','tmiabbgt','tmiabble',
-            'tmiabteq','tmiabtne','tmiabtcs','tmiabths','tmiabtcc','tmiabtlo','tmiabtmi','tmiabtpl','tmiabtvs','tmiabtvc','tmiabthi','tmiabtls','tmiabtge','tmiabtlt','tmiabtgt','tmiabtle',
-            'tmiatbeq','tmiatbne','tmiatbcs','tmiatbhs','tmiatbcc','tmiatblo','tmiatbmi','tmiatbpl','tmiatbvs','tmiatbvc','tmiatbhi','tmiatbls','tmiatbge','tmiatblt','tmiatbgt','tmiatble',
-            'tmiatteq','tmiattne','tmiattcs','tmiatths','tmiattcc','tmiattlo','tmiattmi','tmiattpl','tmiattvs','tmiattvc','tmiatthi','tmiattls','tmiattge','tmiattlt','tmiattgt','tmiattle',
-            'tmovmskbeq','tmovmskbne','tmovmskbcs','tmovmskbhs','tmovmskbcc','tmovmskblo','tmovmskbmi','tmovmskbpl','tmovmskbvs','tmovmskbvc','tmovmskbhi','tmovmskbls','tmovmskbge','tmovmskblt','tmovmskbgt','tmovmskble',
-            'tmovmskheq','tmovmskhne','tmovmskhcs','tmovmskhhs','tmovmskhcc','tmovmskhlo','tmovmskhmi','tmovmskhpl','tmovmskhvs','tmovmskhvc','tmovmskhhi','tmovmskhls','tmovmskhge','tmovmskhlt','tmovmskhgt','tmovmskhle',
-            'tmovmskweq','tmovmskwne','tmovmskwcs','tmovmskwhs','tmovmskwcc','tmovmskwlo','tmovmskwmi','tmovmskwpl','tmovmskwvs','tmovmskwvc','tmovmskwhi','tmovmskwls','tmovmskwge','tmovmskwlt','tmovmskwgt','tmovmskwle',
-            'tmrceq','tmrcne','tmrccs','tmrchs','tmrccc','tmrclo','tmrcmi','tmrcpl','tmrcvs','tmrcvc','tmrchi','tmrcls','tmrcge','tmrclt','tmrcgt','tmrcle',
-            'tmrrceq','tmrrcne','tmrrccs','tmrrchs','tmrrccc','tmrrclo','tmrrcmi','tmrrcpl','tmrrcvs','tmrrcvc','tmrrchi','tmrrcls','tmrrcge','tmrrclt','tmrrcgt','tmrrcle',
-            'torcbeq','torcbne','torcbcs','torcbhs','torcbcc','torcblo','torcbmi','torcbpl','torcbvs','torcbvc','torcbhi','torcbls','torcbge','torcblt','torcbgt','torcble',
-            'torcheq','torchne','torchcs','torchhs','torchcc','torchlo','torchmi','torchpl','torchvs','torchvc','torchhi','torchls','torchge','torchlt','torchgt','torchle',
-            'torcweq','torcwne','torcwcs','torcwhs','torcwcc','torcwlo','torcwmi','torcwpl','torcwvs','torcwvc','torcwhi','torcwls','torcwge','torcwlt','torcwgt','torcwle',
-            'torvscbeq','torvscbne','torvscbcs','torvscbhs','torvscbcc','torvscblo','torvscbmi','torvscbpl','torvscbvs','torvscbvc','torvscbhi','torvscbls','torvscbge','torvscblt','torvscbgt','torvscble',
-            'torvscheq','torvschne','torvschcs','torvschhs','torvschcc','torvschlo','torvschmi','torvschpl','torvschvs','torvschvc','torvschhi','torvschls','torvschge','torvschlt','torvschgt','torvschle',
-            'torvscweq','torvscwne','torvscwcs','torvscwhs','torvscwcc','torvscwlo','torvscwmi','torvscwpl','torvscwvs','torvscwvc','torvscwhi','torvscwls','torvscwge','torvscwlt','torvscwgt','torvscwle',
-            'wabsbeq','wabsbne','wabsbcs','wabsbhs','wabsbcc','wabsblo','wabsbmi','wabsbpl','wabsbvs','wabsbvc','wabsbhi','wabsbls','wabsbge','wabsblt','wabsbgt','wabsble',
-            'wabsheq','wabshne','wabshcs','wabshhs','wabshcc','wabshlo','wabshmi','wabshpl','wabshvs','wabshvc','wabshhi','wabshls','wabshge','wabshlt','wabshgt','wabshle',
-            'wabsweq','wabswne','wabswcs','wabswhs','wabswcc','wabswlo','wabswmi','wabswpl','wabswvs','wabswvc','wabswhi','wabswls','wabswge','wabswlt','wabswgt','wabswle',
-            'wabsdiffbeq','wabsdiffbne','wabsdiffbcs','wabsdiffbhs','wabsdiffbcc','wabsdiffblo','wabsdiffbmi','wabsdiffbpl','wabsdiffbvs','wabsdiffbvc','wabsdiffbhi','wabsdiffbls','wabsdiffbge','wabsdiffblt','wabsdiffbgt','wabsdiffble',
-            'wabsdiffheq','wabsdiffhne','wabsdiffhcs','wabsdiffhhs','wabsdiffhcc','wabsdiffhlo','wabsdiffhmi','wabsdiffhpl','wabsdiffhvs','wabsdiffhvc','wabsdiffhhi','wabsdiffhls','wabsdiffhge','wabsdiffhlt','wabsdiffhgt','wabsdiffhle',
-            'wabsdiffweq','wabsdiffwne','wabsdiffwcs','wabsdiffwhs','wabsdiffwcc','wabsdiffwlo','wabsdiffwmi','wabsdiffwpl','wabsdiffwvs','wabsdiffwvc','wabsdiffwhi','wabsdiffwls','wabsdiffwge','wabsdiffwlt','wabsdiffwgt','wabsdiffwle',
-            'waccbeq','waccbne','waccbcs','waccbhs','waccbcc','waccblo','waccbmi','waccbpl','waccbvs','waccbvc','waccbhi','waccbls','waccbge','waccblt','waccbgt','waccble',
-            'waccheq','wacchne','wacchcs','wacchhs','wacchcc','wacchlo','wacchmi','wacchpl','wacchvs','wacchvc','wacchhi','wacchls','wacchge','wacchlt','wacchgt','wacchle',
-            'waccweq','waccwne','waccwcs','waccwhs','waccwcc','waccwlo','waccwmi','waccwpl','waccwvs','waccwvc','waccwhi','waccwls','waccwge','waccwlt','waccwgt','waccwle',
-            'waddbeq','waddbne','waddbcs','waddbhs','waddbcc','waddblo','waddbmi','waddbpl','waddbvs','waddbvc','waddbhi','waddbls','waddbge','waddblt','waddbgt','waddble',
-            'waddheq','waddhne','waddhcs','waddhhs','waddhcc','waddhlo','waddhmi','waddhpl','waddhvs','waddhvc','waddhhi','waddhls','waddhge','waddhlt','waddhgt','waddhle',
-            'waddweq','waddwne','waddwcs','waddwhs','waddwcc','waddwlo','waddwmi','waddwpl','waddwvs','waddwvc','waddwhi','waddwls','waddwge','waddwlt','waddwgt','waddwle',
-            'waddbceq','waddbcne','waddbccs','waddbchs','waddbccc','waddbclo','waddbcmi','waddbcpl','waddbcvs','waddbcvc','waddbchi','waddbcls','waddbcge','waddbclt','waddbcgt','waddbcle',
-            'waddhceq','waddhcne','waddhccs','waddhchs','waddhccc','waddhclo','waddhcmi','waddhcpl','waddhcvs','waddhcvc','waddhchi','waddhcls','waddhcge','waddhclt','waddhcgt','waddhcle',
-            'waddwceq','waddwcne','waddwccs','waddwchs','waddwccc','waddwclo','waddwcmi','waddwcpl','waddwcvs','waddwcvc','waddwchi','waddwcls','waddwcge','waddwclt','waddwcgt','waddwcle',
-            'waddbsseq','waddbssne','waddbsscs','waddbsshs','waddbsscc','waddbsslo','waddbssmi','waddbsspl','waddbssvs','waddbssvc','waddbsshi','waddbssls','waddbssge','waddbsslt','waddbssgt','waddbssle',
-            'waddhsseq','waddhssne','waddhsscs','waddhsshs','waddhsscc','waddhsslo','waddhssmi','waddhsspl','waddhssvs','waddhssvc','waddhsshi','waddhssls','waddhssge','waddhsslt','waddhssgt','waddhssle',
-            'waddwsseq','waddwssne','waddwsscs','waddwsshs','waddwsscc','waddwsslo','waddwssmi','waddwsspl','waddwssvs','waddwssvc','waddwsshi','waddwssls','waddwssge','waddwsslt','waddwssgt','waddwssle',
-            'waddbuseq','waddbusne','waddbuscs','waddbushs','waddbuscc','waddbuslo','waddbusmi','waddbuspl','waddbusvs','waddbusvc','waddbushi','waddbusls','waddbusge','waddbuslt','waddbusgt','waddbusle',
-            'waddhuseq','waddhusne','waddhuscs','waddhushs','waddhuscc','waddhuslo','waddhusmi','waddhuspl','waddhusvs','waddhusvc','waddhushi','waddhusls','waddhusge','waddhuslt','waddhusgt','waddhusle',
-            'waddwuseq','waddwusne','waddwuscs','waddwushs','waddwuscc','waddwuslo','waddwusmi','waddwuspl','waddwusvs','waddwusvc','waddwushi','waddwusls','waddwusge','waddwuslt','waddwusgt','waddwusle',
-            'waddsubhxeq','waddsubhxne','waddsubhxcs','waddsubhxhs','waddsubhxcc','waddsubhxlo','waddsubhxmi','waddsubhxpl','waddsubhxvs','waddsubhxvc','waddsubhxhi','waddsubhxls','waddsubhxge','waddsubhxlt','waddsubhxgt','waddsubhxle',
-            'walignieq','walignine','walignics','walignihs','walignicc','walignilo','walignimi','walignipl','walignivs','walignivc','walignihi','walignils','walignige','walignilt','walignigt','walignile',
-            'walignr0eq','walignr0ne','walignr0cs','walignr0hs','walignr0cc','walignr0lo','walignr0mi','walignr0pl','walignr0vs','walignr0vc','walignr0hi','walignr0ls','walignr0ge','walignr0lt','walignr0gt','walignr0le',
-            'walignr1eq','walignr1ne','walignr1cs','walignr1hs','walignr1cc','walignr1lo','walignr1mi','walignr1pl','walignr1vs','walignr1vc','walignr1hi','walignr1ls','walignr1ge','walignr1lt','walignr1gt','walignr1le',
-            'walignr2eq','walignr2ne','walignr2cs','walignr2hs','walignr2cc','walignr2lo','walignr2mi','walignr2pl','walignr2vs','walignr2vc','walignr2hi','walignr2ls','walignr2ge','walignr2lt','walignr2gt','walignr2le',
-            'walignr3eq','walignr3ne','walignr3cs','walignr3hs','walignr3cc','walignr3lo','walignr3mi','walignr3pl','walignr3vs','walignr3vc','walignr3hi','walignr3ls','walignr3ge','walignr3lt','walignr3gt','walignr3le',
-            'wandeq','wandne','wandcs','wandhs','wandcc','wandlo','wandmi','wandpl','wandvs','wandvc','wandhi','wandls','wandge','wandlt','wandgt','wandle',
-            'wandneq','wandnne','wandncs','wandnhs','wandncc','wandnlo','wandnmi','wandnpl','wandnvs','wandnvc','wandnhi','wandnls','wandnge','wandnlt','wandngt','wandnle',
-            'wavg2beq','wavg2bne','wavg2bcs','wavg2bhs','wavg2bcc','wavg2blo','wavg2bmi','wavg2bpl','wavg2bvs','wavg2bvc','wavg2bhi','wavg2bls','wavg2bge','wavg2blt','wavg2bgt','wavg2ble',
-            'wavg2heq','wavg2hne','wavg2hcs','wavg2hhs','wavg2hcc','wavg2hlo','wavg2hmi','wavg2hpl','wavg2hvs','wavg2hvc','wavg2hhi','wavg2hls','wavg2hge','wavg2hlt','wavg2hgt','wavg2hle',
-            'wavg2breq','wavg2brne','wavg2brcs','wavg2brhs','wavg2brcc','wavg2brlo','wavg2brmi','wavg2brpl','wavg2brvs','wavg2brvc','wavg2brhi','wavg2brls','wavg2brge','wavg2brlt','wavg2brgt','wavg2brle',
-            'wavg2hreq','wavg2hrne','wavg2hrcs','wavg2hrhs','wavg2hrcc','wavg2hrlo','wavg2hrmi','wavg2hrpl','wavg2hrvs','wavg2hrvc','wavg2hrhi','wavg2hrls','wavg2hrge','wavg2hrlt','wavg2hrgt','wavg2hrle',
-            'wavg4eq','wavg4ne','wavg4cs','wavg4hs','wavg4cc','wavg4lo','wavg4mi','wavg4pl','wavg4vs','wavg4vc','wavg4hi','wavg4ls','wavg4ge','wavg4lt','wavg4gt','wavg4le',
-            'wavg4req','wavg4rne','wavg4rcs','wavg4rhs','wavg4rcc','wavg4rlo','wavg4rmi','wavg4rpl','wavg4rvs','wavg4rvc','wavg4rhi','wavg4rls','wavg4rge','wavg4rlt','wavg4rgt','wavg4rle',
-            'wcmpeqbeq','wcmpeqbne','wcmpeqbcs','wcmpeqbhs','wcmpeqbcc','wcmpeqblo','wcmpeqbmi','wcmpeqbpl','wcmpeqbvs','wcmpeqbvc','wcmpeqbhi','wcmpeqbls','wcmpeqbge','wcmpeqblt','wcmpeqbgt','wcmpeqble',
-            'wcmpeqheq','wcmpeqhne','wcmpeqhcs','wcmpeqhhs','wcmpeqhcc','wcmpeqhlo','wcmpeqhmi','wcmpeqhpl','wcmpeqhvs','wcmpeqhvc','wcmpeqhhi','wcmpeqhls','wcmpeqhge','wcmpeqhlt','wcmpeqhgt','wcmpeqhle',
-            'wcmpeqweq','wcmpeqwne','wcmpeqwcs','wcmpeqwhs','wcmpeqwcc','wcmpeqwlo','wcmpeqwmi','wcmpeqwpl','wcmpeqwvs','wcmpeqwvc','wcmpeqwhi','wcmpeqwls','wcmpeqwge','wcmpeqwlt','wcmpeqwgt','wcmpeqwle',
-            'wcmpgtsbeq','wcmpgtsbne','wcmpgtsbcs','wcmpgtsbhs','wcmpgtsbcc','wcmpgtsblo','wcmpgtsbmi','wcmpgtsbpl','wcmpgtsbvs','wcmpgtsbvc','wcmpgtsbhi','wcmpgtsbls','wcmpgtsbge','wcmpgtsblt','wcmpgtsbgt','wcmpgtsble',
-            'wcmpgtsheq','wcmpgtshne','wcmpgtshcs','wcmpgtshhs','wcmpgtshcc','wcmpgtshlo','wcmpgtshmi','wcmpgtshpl','wcmpgtshvs','wcmpgtshvc','wcmpgtshhi','wcmpgtshls','wcmpgtshge','wcmpgtshlt','wcmpgtshgt','wcmpgtshle',
-            'wcmpgtsweq','wcmpgtswne','wcmpgtswcs','wcmpgtswhs','wcmpgtswcc','wcmpgtswlo','wcmpgtswmi','wcmpgtswpl','wcmpgtswvs','wcmpgtswvc','wcmpgtswhi','wcmpgtswls','wcmpgtswge','wcmpgtswlt','wcmpgtswgt','wcmpgtswle',
-            'wcmpgtubeq','wcmpgtubne','wcmpgtubcs','wcmpgtubhs','wcmpgtubcc','wcmpgtublo','wcmpgtubmi','wcmpgtubpl','wcmpgtubvs','wcmpgtubvc','wcmpgtubhi','wcmpgtubls','wcmpgtubge','wcmpgtublt','wcmpgtubgt','wcmpgtuble',
-            'wcmpgtuheq','wcmpgtuhne','wcmpgtuhcs','wcmpgtuhhs','wcmpgtuhcc','wcmpgtuhlo','wcmpgtuhmi','wcmpgtuhpl','wcmpgtuhvs','wcmpgtuhvc','wcmpgtuhhi','wcmpgtuhls','wcmpgtuhge','wcmpgtuhlt','wcmpgtuhgt','wcmpgtuhle',
-            'wcmpgtuweq','wcmpgtuwne','wcmpgtuwcs','wcmpgtuwhs','wcmpgtuwcc','wcmpgtuwlo','wcmpgtuwmi','wcmpgtuwpl','wcmpgtuwvs','wcmpgtuwvc','wcmpgtuwhi','wcmpgtuwls','wcmpgtuwge','wcmpgtuwlt','wcmpgtuwgt','wcmpgtuwle',
-            'wldrbeq','wldrbne','wldrbcs','wldrbhs','wldrbcc','wldrblo','wldrbmi','wldrbpl','wldrbvs','wldrbvc','wldrbhi','wldrbls','wldrbge','wldrblt','wldrbgt','wldrble',
-            'wldrheq','wldrhne','wldrhcs','wldrhhs','wldrhcc','wldrhlo','wldrhmi','wldrhpl','wldrhvs','wldrhvc','wldrhhi','wldrhls','wldrhge','wldrhlt','wldrhgt','wldrhle',
-            'wldrweq','wldrwne','wldrwcs','wldrwhs','wldrwcc','wldrwlo','wldrwmi','wldrwpl','wldrwvs','wldrwvc','wldrwhi','wldrwls','wldrwge','wldrwlt','wldrwgt','wldrwle',
-            'wldrdeq','wldrdne','wldrdcs','wldrdhs','wldrdcc','wldrdlo','wldrdmi','wldrdpl','wldrdvs','wldrdvc','wldrdhi','wldrdls','wldrdge','wldrdlt','wldrdgt','wldrdle',
-            'wmacseq','wmacsne','wmacscs','wmacshs','wmacscc','wmacslo','wmacsmi','wmacspl','wmacsvs','wmacsvc','wmacshi','wmacsls','wmacsge','wmacslt','wmacsgt','wmacsle',
-            'wmacueq','wmacune','wmacucs','wmacuhs','wmacucc','wmaculo','wmacumi','wmacupl','wmacuvs','wmacuvc','wmacuhi','wmaculs','wmacuge','wmacult','wmacugt','wmacule',
-            'wmacszeq','wmacszne','wmacszcs','wmacszhs','wmacszcc','wmacszlo','wmacszmi','wmacszpl','wmacszvs','wmacszvc','wmacszhi','wmacszls','wmacszge','wmacszlt','wmacszgt','wmacszle',
-            'wmacuzeq','wmacuzne','wmacuzcs','wmacuzhs','wmacuzcc','wmacuzlo','wmacuzmi','wmacuzpl','wmacuzvs','wmacuzvc','wmacuzhi','wmacuzls','wmacuzge','wmacuzlt','wmacuzgt','wmacuzle',
-            'wmaddseq','wmaddsne','wmaddscs','wmaddshs','wmaddscc','wmaddslo','wmaddsmi','wmaddspl','wmaddsvs','wmaddsvc','wmaddshi','wmaddsls','wmaddsge','wmaddslt','wmaddsgt','wmaddsle',
-            'wmaddueq','wmaddune','wmadducs','wmadduhs','wmadducc','wmaddulo','wmaddumi','wmaddupl','wmadduvs','wmadduvc','wmadduhi','wmadduls','wmadduge','wmaddult','wmaddugt','wmaddule',
-            'wmaddsxeq','wmaddsxne','wmaddsxcs','wmaddsxhs','wmaddsxcc','wmaddsxlo','wmaddsxmi','wmaddsxpl','wmaddsxvs','wmaddsxvc','wmaddsxhi','wmaddsxls','wmaddsxge','wmaddsxlt','wmaddsxgt','wmaddsxle',
-            'wmadduxeq','wmadduxne','wmadduxcs','wmadduxhs','wmadduxcc','wmadduxlo','wmadduxmi','wmadduxpl','wmadduxvs','wmadduxvc','wmadduxhi','wmadduxls','wmadduxge','wmadduxlt','wmadduxgt','wmadduxle',
-            'wmaddsneq','wmaddsnne','wmaddsncs','wmaddsnhs','wmaddsncc','wmaddsnlo','wmaddsnmi','wmaddsnpl','wmaddsnvs','wmaddsnvc','wmaddsnhi','wmaddsnls','wmaddsnge','wmaddsnlt','wmaddsngt','wmaddsnle',
-            'wmadduneq','wmaddunne','wmadduncs','wmaddunhs','wmadduncc','wmaddunlo','wmaddunmi','wmaddunpl','wmaddunvs','wmaddunvc','wmaddunhi','wmaddunls','wmaddunge','wmaddunlt','wmaddungt','wmaddunle',
-            'wmaxsbeq','wmaxsbne','wmaxsbcs','wmaxsbhs','wmaxsbcc','wmaxsblo','wmaxsbmi','wmaxsbpl','wmaxsbvs','wmaxsbvc','wmaxsbhi','wmaxsbls','wmaxsbge','wmaxsblt','wmaxsbgt','wmaxsble',
-            'wmaxsheq','wmaxshne','wmaxshcs','wmaxshhs','wmaxshcc','wmaxshlo','wmaxshmi','wmaxshpl','wmaxshvs','wmaxshvc','wmaxshhi','wmaxshls','wmaxshge','wmaxshlt','wmaxshgt','wmaxshle',
-            'wmaxsweq','wmaxswne','wmaxswcs','wmaxswhs','wmaxswcc','wmaxswlo','wmaxswmi','wmaxswpl','wmaxswvs','wmaxswvc','wmaxswhi','wmaxswls','wmaxswge','wmaxswlt','wmaxswgt','wmaxswle',
-            'wmaxubeq','wmaxubne','wmaxubcs','wmaxubhs','wmaxubcc','wmaxublo','wmaxubmi','wmaxubpl','wmaxubvs','wmaxubvc','wmaxubhi','wmaxubls','wmaxubge','wmaxublt','wmaxubgt','wmaxuble',
-            'wmaxuheq','wmaxuhne','wmaxuhcs','wmaxuhhs','wmaxuhcc','wmaxuhlo','wmaxuhmi','wmaxuhpl','wmaxuhvs','wmaxuhvc','wmaxuhhi','wmaxuhls','wmaxuhge','wmaxuhlt','wmaxuhgt','wmaxuhle',
-            'wmaxuweq','wmaxuwne','wmaxuwcs','wmaxuwhs','wmaxuwcc','wmaxuwlo','wmaxuwmi','wmaxuwpl','wmaxuwvs','wmaxuwvc','wmaxuwhi','wmaxuwls','wmaxuwge','wmaxuwlt','wmaxuwgt','wmaxuwle',
-            'wmergeeq','wmergene','wmergecs','wmergehs','wmergecc','wmergelo','wmergemi','wmergepl','wmergevs','wmergevc','wmergehi','wmergels','wmergege','wmergelt','wmergegt','wmergele',
-            'wmiabbeq','wmiabbne','wmiabbcs','wmiabbhs','wmiabbcc','wmiabblo','wmiabbmi','wmiabbpl','wmiabbvs','wmiabbvc','wmiabbhi','wmiabbls','wmiabbge','wmiabblt','wmiabbgt','wmiabble',
-            'wmiabteq','wmiabtne','wmiabtcs','wmiabths','wmiabtcc','wmiabtlo','wmiabtmi','wmiabtpl','wmiabtvs','wmiabtvc','wmiabthi','wmiabtls','wmiabtge','wmiabtlt','wmiabtgt','wmiabtle',
-            'wmiatbeq','wmiatbne','wmiatbcs','wmiatbhs','wmiatbcc','wmiatblo','wmiatbmi','wmiatbpl','wmiatbvs','wmiatbvc','wmiatbhi','wmiatbls','wmiatbge','wmiatblt','wmiatbgt','wmiatble',
-            'wmiatteq','wmiattne','wmiattcs','wmiatths','wmiattcc','wmiattlo','wmiattmi','wmiattpl','wmiattvs','wmiattvc','wmiatthi','wmiattls','wmiattge','wmiattlt','wmiattgt','wmiattle',
-            'wmiabbneq','wmiabbnne','wmiabbncs','wmiabbnhs','wmiabbncc','wmiabbnlo','wmiabbnmi','wmiabbnpl','wmiabbnvs','wmiabbnvc','wmiabbnhi','wmiabbnls','wmiabbnge','wmiabbnlt','wmiabbngt','wmiabbnle',
-            'wmiabtneq','wmiabtnne','wmiabtncs','wmiabtnhs','wmiabtncc','wmiabtnlo','wmiabtnmi','wmiabtnpl','wmiabtnvs','wmiabtnvc','wmiabtnhi','wmiabtnls','wmiabtnge','wmiabtnlt','wmiabtngt','wmiabtnle',
-            'wmiatbneq','wmiatbnne','wmiatbncs','wmiatbnhs','wmiatbncc','wmiatbnlo','wmiatbnmi','wmiatbnpl','wmiatbnvs','wmiatbnvc','wmiatbnhi','wmiatbnls','wmiatbnge','wmiatbnlt','wmiatbngt','wmiatbnle',
-            'wmiattneq','wmiattnne','wmiattncs','wmiattnhs','wmiattncc','wmiattnlo','wmiattnmi','wmiattnpl','wmiattnvs','wmiattnvc','wmiattnhi','wmiattnls','wmiattnge','wmiattnlt','wmiattngt','wmiattnle',
-            'wmiawbbeq','wmiawbbne','wmiawbbcs','wmiawbbhs','wmiawbbcc','wmiawbblo','wmiawbbmi','wmiawbbpl','wmiawbbvs','wmiawbbvc','wmiawbbhi','wmiawbbls','wmiawbbge','wmiawbblt','wmiawbbgt','wmiawbble',
-            'wmiawbteq','wmiawbtne','wmiawbtcs','wmiawbths','wmiawbtcc','wmiawbtlo','wmiawbtmi','wmiawbtpl','wmiawbtvs','wmiawbtvc','wmiawbthi','wmiawbtls','wmiawbtge','wmiawbtlt','wmiawbtgt','wmiawbtle',
-            'wmiawtbeq','wmiawtbne','wmiawtbcs','wmiawtbhs','wmiawtbcc','wmiawtblo','wmiawtbmi','wmiawtbpl','wmiawtbvs','wmiawtbvc','wmiawtbhi','wmiawtbls','wmiawtbge','wmiawtblt','wmiawtbgt','wmiawtble',
-            'wmiawtteq','wmiawttne','wmiawttcs','wmiawtths','wmiawttcc','wmiawttlo','wmiawttmi','wmiawttpl','wmiawttvs','wmiawttvc','wmiawtthi','wmiawttls','wmiawttge','wmiawttlt','wmiawttgt','wmiawttle',
-            'wmiawbbneq','wmiawbbnne','wmiawbbncs','wmiawbbnhs','wmiawbbncc','wmiawbbnlo','wmiawbbnmi','wmiawbbnpl','wmiawbbnvs','wmiawbbnvc','wmiawbbnhi','wmiawbbnls','wmiawbbnge','wmiawbbnlt','wmiawbbngt','wmiawbbnle',
-            'wmiawbtneq','wmiawbtnne','wmiawbtncs','wmiawbtnhs','wmiawbtncc','wmiawbtnlo','wmiawbtnmi','wmiawbtnpl','wmiawbtnvs','wmiawbtnvc','wmiawbtnhi','wmiawbtnls','wmiawbtnge','wmiawbtnlt','wmiawbtngt','wmiawbtnle',
-            'wmiawtbneq','wmiawtbnne','wmiawtbncs','wmiawtbnhs','wmiawtbncc','wmiawtbnlo','wmiawtbnmi','wmiawtbnpl','wmiawtbnvs','wmiawtbnvc','wmiawtbnhi','wmiawtbnls','wmiawtbnge','wmiawtbnlt','wmiawtbngt','wmiawtbnle',
-            'wmiawttneq','wmiawttnne','wmiawttncs','wmiawttnhs','wmiawttncc','wmiawttnlo','wmiawttnmi','wmiawttnpl','wmiawttnvs','wmiawttnvc','wmiawttnhi','wmiawttnls','wmiawttnge','wmiawttnlt','wmiawttngt','wmiawttnle',
-            'wminsbeq','wminsbne','wminsbcs','wminsbhs','wminsbcc','wminsblo','wminsbmi','wminsbpl','wminsbvs','wminsbvc','wminsbhi','wminsbls','wminsbge','wminsblt','wminsbgt','wminsble',
-            'wminsheq','wminshne','wminshcs','wminshhs','wminshcc','wminshlo','wminshmi','wminshpl','wminshvs','wminshvc','wminshhi','wminshls','wminshge','wminshlt','wminshgt','wminshle',
-            'wminsweq','wminswne','wminswcs','wminswhs','wminswcc','wminswlo','wminswmi','wminswpl','wminswvs','wminswvc','wminswhi','wminswls','wminswge','wminswlt','wminswgt','wminswle',
-            'wminubeq','wminubne','wminubcs','wminubhs','wminubcc','wminublo','wminubmi','wminubpl','wminubvs','wminubvc','wminubhi','wminubls','wminubge','wminublt','wminubgt','wminuble',
-            'wminuheq','wminuhne','wminuhcs','wminuhhs','wminuhcc','wminuhlo','wminuhmi','wminuhpl','wminuhvs','wminuhvc','wminuhhi','wminuhls','wminuhge','wminuhlt','wminuhgt','wminuhle',
-            'wminuweq','wminuwne','wminuwcs','wminuwhs','wminuwcc','wminuwlo','wminuwmi','wminuwpl','wminuwvs','wminuwvc','wminuwhi','wminuwls','wminuwge','wminuwlt','wminuwgt','wminuwle',
-            'wmoveq','wmovne','wmovcs','wmovhs','wmovcc','wmovlo','wmovmi','wmovpl','wmovvs','wmovvc','wmovhi','wmovls','wmovge','wmovlt','wmovgt','wmovle',
-            'wmulsmeq','wmulsmne','wmulsmcs','wmulsmhs','wmulsmcc','wmulsmlo','wmulsmmi','wmulsmpl','wmulsmvs','wmulsmvc','wmulsmhi','wmulsmls','wmulsmge','wmulsmlt','wmulsmgt','wmulsmle',
-            'wmulsleq','wmulslne','wmulslcs','wmulslhs','wmulslcc','wmulsllo','wmulslmi','wmulslpl','wmulslvs','wmulslvc','wmulslhi','wmulslls','wmulslge','wmulsllt','wmulslgt','wmulslle',
-            'wmulumeq','wmulumne','wmulumcs','wmulumhs','wmulumcc','wmulumlo','wmulummi','wmulumpl','wmulumvs','wmulumvc','wmulumhi','wmulumls','wmulumge','wmulumlt','wmulumgt','wmulumle',
-            'wmululeq','wmululne','wmululcs','wmululhs','wmululcc','wmulullo','wmululmi','wmululpl','wmululvs','wmululvc','wmululhi','wmululls','wmululge','wmulullt','wmululgt','wmululle',
-            'wmulsmreq','wmulsmrne','wmulsmrcs','wmulsmrhs','wmulsmrcc','wmulsmrlo','wmulsmrmi','wmulsmrpl','wmulsmrvs','wmulsmrvc','wmulsmrhi','wmulsmrls','wmulsmrge','wmulsmrlt','wmulsmrgt','wmulsmrle',
-            'wmulslreq','wmulslrne','wmulslrcs','wmulslrhs','wmulslrcc','wmulslrlo','wmulslrmi','wmulslrpl','wmulslrvs','wmulslrvc','wmulslrhi','wmulslrls','wmulslrge','wmulslrlt','wmulslrgt','wmulslrle',
-            'wmulumreq','wmulumrne','wmulumrcs','wmulumrhs','wmulumrcc','wmulumrlo','wmulumrmi','wmulumrpl','wmulumrvs','wmulumrvc','wmulumrhi','wmulumrls','wmulumrge','wmulumrlt','wmulumrgt','wmulumrle',
-            'wmululreq','wmululrne','wmululrcs','wmululrhs','wmululrcc','wmululrlo','wmululrmi','wmululrpl','wmululrvs','wmululrvc','wmululrhi','wmululrls','wmululrge','wmululrlt','wmululrgt','wmululrle',
-            'wmulwumeq','wmulwumne','wmulwumcs','wmulwumhs','wmulwumcc','wmulwumlo','wmulwummi','wmulwumpl','wmulwumvs','wmulwumvc','wmulwumhi','wmulwumls','wmulwumge','wmulwumlt','wmulwumgt','wmulwumle',
-            'wmulwsmeq','wmulwsmne','wmulwsmcs','wmulwsmhs','wmulwsmcc','wmulwsmlo','wmulwsmmi','wmulwsmpl','wmulwsmvs','wmulwsmvc','wmulwsmhi','wmulwsmls','wmulwsmge','wmulwsmlt','wmulwsmgt','wmulwsmle',
-            'wmulwleq','wmulwlne','wmulwlcs','wmulwlhs','wmulwlcc','wmulwllo','wmulwlmi','wmulwlpl','wmulwlvs','wmulwlvc','wmulwlhi','wmulwlls','wmulwlge','wmulwllt','wmulwlgt','wmulwlle',
-            'wmulwumreq','wmulwumrne','wmulwumrcs','wmulwumrhs','wmulwumrcc','wmulwumrlo','wmulwumrmi','wmulwumrpl','wmulwumrvs','wmulwumrvc','wmulwumrhi','wmulwumrls','wmulwumrge','wmulwumrlt','wmulwumrgt','wmulwumrle',
-            'wmulwsmreq','wmulwsmrne','wmulwsmrcs','wmulwsmrhs','wmulwsmrcc','wmulwsmrlo','wmulwsmrmi','wmulwsmrpl','wmulwsmrvs','wmulwsmrvc','wmulwsmrhi','wmulwsmrls','wmulwsmrge','wmulwsmrlt','wmulwsmrgt','wmulwsmrle',
-            'woreq','worne','worcs','worhs','worcc','worlo','wormi','worpl','worvs','worvc','worhi','worls','worge','worlt','worgt','worle',
-            'wpackhsseq','wpackhssne','wpackhsscs','wpackhsshs','wpackhsscc','wpackhsslo','wpackhssmi','wpackhsspl','wpackhssvs','wpackhssvc','wpackhsshi','wpackhssls','wpackhssge','wpackhsslt','wpackhssgt','wpackhssle',
-            'wpackwsseq','wpackwssne','wpackwsscs','wpackwsshs','wpackwsscc','wpackwsslo','wpackwssmi','wpackwsspl','wpackwssvs','wpackwssvc','wpackwsshi','wpackwssls','wpackwssge','wpackwsslt','wpackwssgt','wpackwssle',
-            'wpackdsseq','wpackdssne','wpackdsscs','wpackdsshs','wpackdsscc','wpackdsslo','wpackdssmi','wpackdsspl','wpackdssvs','wpackdssvc','wpackdsshi','wpackdssls','wpackdssge','wpackdsslt','wpackdssgt','wpackdssle',
-            'wpackhuseq','wpackhusne','wpackhuscs','wpackhushs','wpackhuscc','wpackhuslo','wpackhusmi','wpackhuspl','wpackhusvs','wpackhusvc','wpackhushi','wpackhusls','wpackhusge','wpackhuslt','wpackhusgt','wpackhusle',
-            'wpackwuseq','wpackwusne','wpackwuscs','wpackwushs','wpackwuscc','wpackwuslo','wpackwusmi','wpackwuspl','wpackwusvs','wpackwusvc','wpackwushi','wpackwusls','wpackwusge','wpackwuslt','wpackwusgt','wpackwusle',
-            'wpackduseq','wpackdusne','wpackduscs','wpackdushs','wpackduscc','wpackduslo','wpackdusmi','wpackduspl','wpackdusvs','wpackdusvc','wpackdushi','wpackdusls','wpackdusge','wpackduslt','wpackdusgt','wpackdusle',
-            'wqmiabbeq','wqmiabbne','wqmiabbcs','wqmiabbhs','wqmiabbcc','wqmiabblo','wqmiabbmi','wqmiabbpl','wqmiabbvs','wqmiabbvc','wqmiabbhi','wqmiabbls','wqmiabbge','wqmiabblt','wqmiabbgt','wqmiabble',
-            'wqmiabteq','wqmiabtne','wqmiabtcs','wqmiabths','wqmiabtcc','wqmiabtlo','wqmiabtmi','wqmiabtpl','wqmiabtvs','wqmiabtvc','wqmiabthi','wqmiabtls','wqmiabtge','wqmiabtlt','wqmiabtgt','wqmiabtle',
-            'wqmiatbeq','wqmiatbne','wqmiatbcs','wqmiatbhs','wqmiatbcc','wqmiatblo','wqmiatbmi','wqmiatbpl','wqmiatbvs','wqmiatbvc','wqmiatbhi','wqmiatbls','wqmiatbge','wqmiatblt','wqmiatbgt','wqmiatble',
-            'wqmiatteq','wqmiattne','wqmiattcs','wqmiatths','wqmiattcc','wqmiattlo','wqmiattmi','wqmiattpl','wqmiattvs','wqmiattvc','wqmiatthi','wqmiattls','wqmiattge','wqmiattlt','wqmiattgt','wqmiattle',
-            'wqmiabbneq','wqmiabbnne','wqmiabbncs','wqmiabbnhs','wqmiabbncc','wqmiabbnlo','wqmiabbnmi','wqmiabbnpl','wqmiabbnvs','wqmiabbnvc','wqmiabbnhi','wqmiabbnls','wqmiabbnge','wqmiabbnlt','wqmiabbngt','wqmiabbnle',
-            'wqmiabtneq','wqmiabtnne','wqmiabtncs','wqmiabtnhs','wqmiabtncc','wqmiabtnlo','wqmiabtnmi','wqmiabtnpl','wqmiabtnvs','wqmiabtnvc','wqmiabtnhi','wqmiabtnls','wqmiabtnge','wqmiabtnlt','wqmiabtngt','wqmiabtnle',
-            'wqmiatbneq','wqmiatbnne','wqmiatbncs','wqmiatbnhs','wqmiatbncc','wqmiatbnlo','wqmiatbnmi','wqmiatbnpl','wqmiatbnvs','wqmiatbnvc','wqmiatbnhi','wqmiatbnls','wqmiatbnge','wqmiatbnlt','wqmiatbngt','wqmiatbnle',
-            'wqmiattneq','wqmiattnne','wqmiattncs','wqmiattnhs','wqmiattncc','wqmiattnlo','wqmiattnmi','wqmiattnpl','wqmiattnvs','wqmiattnvc','wqmiattnhi','wqmiattnls','wqmiattnge','wqmiattnlt','wqmiattngt','wqmiattnle',
-            'wqmulmeq','wqmulmne','wqmulmcs','wqmulmhs','wqmulmcc','wqmulmlo','wqmulmmi','wqmulmpl','wqmulmvs','wqmulmvc','wqmulmhi','wqmulmls','wqmulmge','wqmulmlt','wqmulmgt','wqmulmle',
-            'wqmulmreq','wqmulmrne','wqmulmrcs','wqmulmrhs','wqmulmrcc','wqmulmrlo','wqmulmrmi','wqmulmrpl','wqmulmrvs','wqmulmrvc','wqmulmrhi','wqmulmrls','wqmulmrge','wqmulmrlt','wqmulmrgt','wqmulmrle',
-            'wqmulwmeq','wqmulwmne','wqmulwmcs','wqmulwmhs','wqmulwmcc','wqmulwmlo','wqmulwmmi','wqmulwmpl','wqmulwmvs','wqmulwmvc','wqmulwmhi','wqmulwmls','wqmulwmge','wqmulwmlt','wqmulwmgt','wqmulwmle',
-            'wqmulwmreq','wqmulwmrne','wqmulwmrcs','wqmulwmrhs','wqmulwmrcc','wqmulwmrlo','wqmulwmrmi','wqmulwmrpl','wqmulwmrvs','wqmulwmrvc','wqmulwmrhi','wqmulwmrls','wqmulwmrge','wqmulwmrlt','wqmulwmrgt','wqmulwmrle',
-            'wrorheq','wrorhne','wrorhcs','wrorhhs','wrorhcc','wrorhlo','wrorhmi','wrorhpl','wrorhvs','wrorhvc','wrorhhi','wrorhls','wrorhge','wrorhlt','wrorhgt','wrorhle',
-            'wrorweq','wrorwne','wrorwcs','wrorwhs','wrorwcc','wrorwlo','wrorwmi','wrorwpl','wrorwvs','wrorwvc','wrorwhi','wrorwls','wrorwge','wrorwlt','wrorwgt','wrorwle',
-            'wrordeq','wrordne','wrordcs','wrordhs','wrordcc','wrordlo','wrordmi','wrordpl','wrordvs','wrordvc','wrordhi','wrordls','wrordge','wrordlt','wrordgt','wrordle',
-            'wrorhgeq','wrorhgne','wrorhgcs','wrorhghs','wrorhgcc','wrorhglo','wrorhgmi','wrorhgpl','wrorhgvs','wrorhgvc','wrorhghi','wrorhgls','wrorhgge','wrorhglt','wrorhggt','wrorhgle',
-            'wrorwgeq','wrorwgne','wrorwgcs','wrorwghs','wrorwgcc','wrorwglo','wrorwgmi','wrorwgpl','wrorwgvs','wrorwgvc','wrorwghi','wrorwgls','wrorwgge','wrorwglt','wrorwggt','wrorwgle',
-            'wrordgeq','wrordgne','wrordgcs','wrordghs','wrordgcc','wrordglo','wrordgmi','wrordgpl','wrordgvs','wrordgvc','wrordghi','wrordgls','wrordgge','wrordglt','wrordggt','wrordgle',
-            'wsadbeq','wsadbne','wsadbcs','wsadbhs','wsadbcc','wsadblo','wsadbmi','wsadbpl','wsadbvs','wsadbvc','wsadbhi','wsadbls','wsadbge','wsadblt','wsadbgt','wsadble',
-            'wsadheq','wsadhne','wsadhcs','wsadhhs','wsadhcc','wsadhlo','wsadhmi','wsadhpl','wsadhvs','wsadhvc','wsadhhi','wsadhls','wsadhge','wsadhlt','wsadhgt','wsadhle',
-            'wsadbzeq','wsadbzne','wsadbzcs','wsadbzhs','wsadbzcc','wsadbzlo','wsadbzmi','wsadbzpl','wsadbzvs','wsadbzvc','wsadbzhi','wsadbzls','wsadbzge','wsadbzlt','wsadbzgt','wsadbzle',
-            'wsadhzeq','wsadhzne','wsadhzcs','wsadhzhs','wsadhzcc','wsadhzlo','wsadhzmi','wsadhzpl','wsadhzvs','wsadhzvc','wsadhzhi','wsadhzls','wsadhzge','wsadhzlt','wsadhzgt','wsadhzle',
-            'wshufheq','wshufhne','wshufhcs','wshufhhs','wshufhcc','wshufhlo','wshufhmi','wshufhpl','wshufhvs','wshufhvc','wshufhhi','wshufhls','wshufhge','wshufhlt','wshufhgt','wshufhle',
-            'wsllheq','wsllhne','wsllhcs','wsllhhs','wsllhcc','wsllhlo','wsllhmi','wsllhpl','wsllhvs','wsllhvc','wsllhhi','wsllhls','wsllhge','wsllhlt','wsllhgt','wsllhle',
-            'wsllweq','wsllwne','wsllwcs','wsllwhs','wsllwcc','wsllwlo','wsllwmi','wsllwpl','wsllwvs','wsllwvc','wsllwhi','wsllwls','wsllwge','wsllwlt','wsllwgt','wsllwle',
-            'wslldeq','wslldne','wslldcs','wslldhs','wslldcc','wslldlo','wslldmi','wslldpl','wslldvs','wslldvc','wslldhi','wslldls','wslldge','wslldlt','wslldgt','wslldle',
-            'wsllhgeq','wsllhgne','wsllhgcs','wsllhghs','wsllhgcc','wsllhglo','wsllhgmi','wsllhgpl','wsllhgvs','wsllhgvc','wsllhghi','wsllhgls','wsllhgge','wsllhglt','wsllhggt','wsllhgle',
-            'wsllwgeq','wsllwgne','wsllwgcs','wsllwghs','wsllwgcc','wsllwglo','wsllwgmi','wsllwgpl','wsllwgvs','wsllwgvc','wsllwghi','wsllwgls','wsllwgge','wsllwglt','wsllwggt','wsllwgle',
-            'wslldgeq','wslldgne','wslldgcs','wslldghs','wslldgcc','wslldglo','wslldgmi','wslldgpl','wslldgvs','wslldgvc','wslldghi','wslldgls','wslldgge','wslldglt','wslldggt','wslldgle',
-            'wsraheq','wsrahne','wsrahcs','wsrahhs','wsrahcc','wsrahlo','wsrahmi','wsrahpl','wsrahvs','wsrahvc','wsrahhi','wsrahls','wsrahge','wsrahlt','wsrahgt','wsrahle',
-            'wsraweq','wsrawne','wsrawcs','wsrawhs','wsrawcc','wsrawlo','wsrawmi','wsrawpl','wsrawvs','wsrawvc','wsrawhi','wsrawls','wsrawge','wsrawlt','wsrawgt','wsrawle',
-            'wsradeq','wsradne','wsradcs','wsradhs','wsradcc','wsradlo','wsradmi','wsradpl','wsradvs','wsradvc','wsradhi','wsradls','wsradge','wsradlt','wsradgt','wsradle',
-            'wsrahgeq','wsrahgne','wsrahgcs','wsrahghs','wsrahgcc','wsrahglo','wsrahgmi','wsrahgpl','wsrahgvs','wsrahgvc','wsrahghi','wsrahgls','wsrahgge','wsrahglt','wsrahggt','wsrahgle',
-            'wsrawgeq','wsrawgne','wsrawgcs','wsrawghs','wsrawgcc','wsrawglo','wsrawgmi','wsrawgpl','wsrawgvs','wsrawgvc','wsrawghi','wsrawgls','wsrawgge','wsrawglt','wsrawggt','wsrawgle',
-            'wsradgeq','wsradgne','wsradgcs','wsradghs','wsradgcc','wsradglo','wsradgmi','wsradgpl','wsradgvs','wsradgvc','wsradghi','wsradgls','wsradgge','wsradglt','wsradggt','wsradgle',
-            'wsrlheq','wsrlhne','wsrlhcs','wsrlhhs','wsrlhcc','wsrlhlo','wsrlhmi','wsrlhpl','wsrlhvs','wsrlhvc','wsrlhhi','wsrlhls','wsrlhge','wsrlhlt','wsrlhgt','wsrlhle',
-            'wsrlweq','wsrlwne','wsrlwcs','wsrlwhs','wsrlwcc','wsrlwlo','wsrlwmi','wsrlwpl','wsrlwvs','wsrlwvc','wsrlwhi','wsrlwls','wsrlwge','wsrlwlt','wsrlwgt','wsrlwle',
-            'wsrldeq','wsrldne','wsrldcs','wsrldhs','wsrldcc','wsrldlo','wsrldmi','wsrldpl','wsrldvs','wsrldvc','wsrldhi','wsrldls','wsrldge','wsrldlt','wsrldgt','wsrldle',
-            'wsrlhgeq','wsrlhgne','wsrlhgcs','wsrlhghs','wsrlhgcc','wsrlhglo','wsrlhgmi','wsrlhgpl','wsrlhgvs','wsrlhgvc','wsrlhghi','wsrlhgls','wsrlhgge','wsrlhglt','wsrlhggt','wsrlhgle',
-            'wsrlwgeq','wsrlwgne','wsrlwgcs','wsrlwghs','wsrlwgcc','wsrlwglo','wsrlwgmi','wsrlwgpl','wsrlwgvs','wsrlwgvc','wsrlwghi','wsrlwgls','wsrlwgge','wsrlwglt','wsrlwggt','wsrlwgle',
-            'wsrldgeq','wsrldgne','wsrldgcs','wsrldghs','wsrldgcc','wsrldglo','wsrldgmi','wsrldgpl','wsrldgvs','wsrldgvc','wsrldghi','wsrldgls','wsrldgge','wsrldglt','wsrldggt','wsrldgle',
-            'wstrbeq','wstrbne','wstrbcs','wstrbhs','wstrbcc','wstrblo','wstrbmi','wstrbpl','wstrbvs','wstrbvc','wstrbhi','wstrbls','wstrbge','wstrblt','wstrbgt','wstrble',
-            'wstrheq','wstrhne','wstrhcs','wstrhhs','wstrhcc','wstrhlo','wstrhmi','wstrhpl','wstrhvs','wstrhvc','wstrhhi','wstrhls','wstrhge','wstrhlt','wstrhgt','wstrhle',
-            'wstrweq','wstrwne','wstrwcs','wstrwhs','wstrwcc','wstrwlo','wstrwmi','wstrwpl','wstrwvs','wstrwvc','wstrwhi','wstrwls','wstrwge','wstrwlt','wstrwgt','wstrwle',
-            'wstrdeq','wstrdne','wstrdcs','wstrdhs','wstrdcc','wstrdlo','wstrdmi','wstrdpl','wstrdvs','wstrdvc','wstrdhi','wstrdls','wstrdge','wstrdlt','wstrdgt','wstrdle',
-            'wsubbeq','wsubbne','wsubbcs','wsubbhs','wsubbcc','wsubblo','wsubbmi','wsubbpl','wsubbvs','wsubbvc','wsubbhi','wsubbls','wsubbge','wsubblt','wsubbgt','wsubble',
-            'wsubheq','wsubhne','wsubhcs','wsubhhs','wsubhcc','wsubhlo','wsubhmi','wsubhpl','wsubhvs','wsubhvc','wsubhhi','wsubhls','wsubhge','wsubhlt','wsubhgt','wsubhle',
-            'wsubweq','wsubwne','wsubwcs','wsubwhs','wsubwcc','wsubwlo','wsubwmi','wsubwpl','wsubwvs','wsubwvc','wsubwhi','wsubwls','wsubwge','wsubwlt','wsubwgt','wsubwle',
-            'wsubbsseq','wsubbssne','wsubbsscs','wsubbsshs','wsubbsscc','wsubbsslo','wsubbssmi','wsubbsspl','wsubbssvs','wsubbssvc','wsubbsshi','wsubbssls','wsubbssge','wsubbsslt','wsubbssgt','wsubbssle',
-            'wsubhsseq','wsubhssne','wsubhsscs','wsubhsshs','wsubhsscc','wsubhsslo','wsubhssmi','wsubhsspl','wsubhssvs','wsubhssvc','wsubhsshi','wsubhssls','wsubhssge','wsubhsslt','wsubhssgt','wsubhssle',
-            'wsubwsseq','wsubwssne','wsubwsscs','wsubwsshs','wsubwsscc','wsubwsslo','wsubwssmi','wsubwsspl','wsubwssvs','wsubwssvc','wsubwsshi','wsubwssls','wsubwssge','wsubwsslt','wsubwssgt','wsubwssle',
-            'wsubbuseq','wsubbusne','wsubbuscs','wsubbushs','wsubbuscc','wsubbuslo','wsubbusmi','wsubbuspl','wsubbusvs','wsubbusvc','wsubbushi','wsubbusls','wsubbusge','wsubbuslt','wsubbusgt','wsubbusle',
-            'wsubhuseq','wsubhusne','wsubhuscs','wsubhushs','wsubhuscc','wsubhuslo','wsubhusmi','wsubhuspl','wsubhusvs','wsubhusvc','wsubhushi','wsubhusls','wsubhusge','wsubhuslt','wsubhusgt','wsubhusle',
-            'wsubwuseq','wsubwusne','wsubwuscs','wsubwushs','wsubwuscc','wsubwuslo','wsubwusmi','wsubwuspl','wsubwusvs','wsubwusvc','wsubwushi','wsubwusls','wsubwusge','wsubwuslt','wsubwusgt','wsubwusle',
-            'wsubaddhxeq','wsubaddhxne','wsubaddhxcs','wsubaddhxhs','wsubaddhxcc','wsubaddhxlo','wsubaddhxmi','wsubaddhxpl','wsubaddhxvs','wsubaddhxvc','wsubaddhxhi','wsubaddhxls','wsubaddhxge','wsubaddhxlt','wsubaddhxgt','wsubaddhxle',
-            'wunpckehsbeq','wunpckehsbne','wunpckehsbcs','wunpckehsbhs','wunpckehsbcc','wunpckehsblo','wunpckehsbmi','wunpckehsbpl','wunpckehsbvs','wunpckehsbvc','wunpckehsbhi','wunpckehsbls','wunpckehsbge','wunpckehsblt','wunpckehsbgt','wunpckehsble',
-            'wunpckehsheq','wunpckehshne','wunpckehshcs','wunpckehshhs','wunpckehshcc','wunpckehshlo','wunpckehshmi','wunpckehshpl','wunpckehshvs','wunpckehshvc','wunpckehshhi','wunpckehshls','wunpckehshge','wunpckehshlt','wunpckehshgt','wunpckehshle',
-            'wunpckehsweq','wunpckehswne','wunpckehswcs','wunpckehswhs','wunpckehswcc','wunpckehswlo','wunpckehswmi','wunpckehswpl','wunpckehswvs','wunpckehswvc','wunpckehswhi','wunpckehswls','wunpckehswge','wunpckehswlt','wunpckehswgt','wunpckehswle',
-            'wunpckehubeq','wunpckehubne','wunpckehubcs','wunpckehubhs','wunpckehubcc','wunpckehublo','wunpckehubmi','wunpckehubpl','wunpckehubvs','wunpckehubvc','wunpckehubhi','wunpckehubls','wunpckehubge','wunpckehublt','wunpckehubgt','wunpckehuble',
-            'wunpckehuheq','wunpckehuhne','wunpckehuhcs','wunpckehuhhs','wunpckehuhcc','wunpckehuhlo','wunpckehuhmi','wunpckehuhpl','wunpckehuhvs','wunpckehuhvc','wunpckehuhhi','wunpckehuhls','wunpckehuhge','wunpckehuhlt','wunpckehuhgt','wunpckehuhle',
-            'wunpckehuweq','wunpckehuwne','wunpckehuwcs','wunpckehuwhs','wunpckehuwcc','wunpckehuwlo','wunpckehuwmi','wunpckehuwpl','wunpckehuwvs','wunpckehuwvc','wunpckehuwhi','wunpckehuwls','wunpckehuwge','wunpckehuwlt','wunpckehuwgt','wunpckehuwle',
-            'wunpckihbeq','wunpckihbne','wunpckihbcs','wunpckihbhs','wunpckihbcc','wunpckihblo','wunpckihbmi','wunpckihbpl','wunpckihbvs','wunpckihbvc','wunpckihbhi','wunpckihbls','wunpckihbge','wunpckihblt','wunpckihbgt','wunpckihble',
-            'wunpckihheq','wunpckihhne','wunpckihhcs','wunpckihhhs','wunpckihhcc','wunpckihhlo','wunpckihhmi','wunpckihhpl','wunpckihhvs','wunpckihhvc','wunpckihhhi','wunpckihhls','wunpckihhge','wunpckihhlt','wunpckihhgt','wunpckihhle',
-            'wunpckihweq','wunpckihwne','wunpckihwcs','wunpckihwhs','wunpckihwcc','wunpckihwlo','wunpckihwmi','wunpckihwpl','wunpckihwvs','wunpckihwvc','wunpckihwhi','wunpckihwls','wunpckihwge','wunpckihwlt','wunpckihwgt','wunpckihwle',
-            'wunpckelsbeq','wunpckelsbne','wunpckelsbcs','wunpckelsbhs','wunpckelsbcc','wunpckelsblo','wunpckelsbmi','wunpckelsbpl','wunpckelsbvs','wunpckelsbvc','wunpckelsbhi','wunpckelsbls','wunpckelsbge','wunpckelsblt','wunpckelsbgt','wunpckelsble',
-            'wunpckelsheq','wunpckelshne','wunpckelshcs','wunpckelshhs','wunpckelshcc','wunpckelshlo','wunpckelshmi','wunpckelshpl','wunpckelshvs','wunpckelshvc','wunpckelshhi','wunpckelshls','wunpckelshge','wunpckelshlt','wunpckelshgt','wunpckelshle',
-            'wunpckelsweq','wunpckelswne','wunpckelswcs','wunpckelswhs','wunpckelswcc','wunpckelswlo','wunpckelswmi','wunpckelswpl','wunpckelswvs','wunpckelswvc','wunpckelswhi','wunpckelswls','wunpckelswge','wunpckelswlt','wunpckelswgt','wunpckelswle',
-            'wunpckelubeq','wunpckelubne','wunpckelubcs','wunpckelubhs','wunpckelubcc','wunpckelublo','wunpckelubmi','wunpckelubpl','wunpckelubvs','wunpckelubvc','wunpckelubhi','wunpckelubls','wunpckelubge','wunpckelublt','wunpckelubgt','wunpckeluble',
-            'wunpckeluheq','wunpckeluhne','wunpckeluhcs','wunpckeluhhs','wunpckeluhcc','wunpckeluhlo','wunpckeluhmi','wunpckeluhpl','wunpckeluhvs','wunpckeluhvc','wunpckeluhhi','wunpckeluhls','wunpckeluhge','wunpckeluhlt','wunpckeluhgt','wunpckeluhle',
-            'wunpckeluweq','wunpckeluwne','wunpckeluwcs','wunpckeluwhs','wunpckeluwcc','wunpckeluwlo','wunpckeluwmi','wunpckeluwpl','wunpckeluwvs','wunpckeluwvc','wunpckeluwhi','wunpckeluwls','wunpckeluwge','wunpckeluwlt','wunpckeluwgt','wunpckeluwle',
-            'wunpckilbeq','wunpckilbne','wunpckilbcs','wunpckilbhs','wunpckilbcc','wunpckilblo','wunpckilbmi','wunpckilbpl','wunpckilbvs','wunpckilbvc','wunpckilbhi','wunpckilbls','wunpckilbge','wunpckilblt','wunpckilbgt','wunpckilble',
-            'wunpckilheq','wunpckilhne','wunpckilhcs','wunpckilhhs','wunpckilhcc','wunpckilhlo','wunpckilhmi','wunpckilhpl','wunpckilhvs','wunpckilhvc','wunpckilhhi','wunpckilhls','wunpckilhge','wunpckilhlt','wunpckilhgt','wunpckilhle',
-            'wunpckilweq','wunpckilwne','wunpckilwcs','wunpckilwhs','wunpckilwcc','wunpckilwlo','wunpckilwmi','wunpckilwpl','wunpckilwvs','wunpckilwvc','wunpckilwhi','wunpckilwls','wunpckilwge','wunpckilwlt','wunpckilwgt','wunpckilwle',
-            'wxoreq','wxorne','wxorcs','wxorhs','wxorcc','wxorlo','wxormi','wxorpl','wxorvs','wxorvc','wxorhi','wxorls','wxorge','wxorlt','wxorgt','wxorle',
-            'wzeroeq','wzerone','wzerocs','wzerohs','wzerocc','wzerolo','wzeromi','wzeropl','wzerovs','wzerovc','wzerohi','wzerols','wzeroge','wzerolt','wzerogt','wzerole'
-            ),
-        /* Unconditional VFPv3 & NEON SIMD Memory Access Instructions */
-        19 => array(
-            /* Unconditional VFPv3 & NEON SIMD Memory Access: Loads */
-            'vld.8','vldal.8',
-            'vld.16','vldal.16',
-            'vld.32','vldal.32',
-            'vld.64','vldal.64',
-
-            'vld1.8','vld1al.8',
-            'vld1.16','vld1al.16',
-            'vld1.32','vld1al.32',
-
-            'vld2.8','vld2al.8',
-            'vld2.16','vld2al.16',
-            'vld2.32','vld2al.32',
-
-            'vld3.8','vld3al.8',
-            'vld3.16','vld3al.16',
-            'vld3.32','vld3al.32',
-
-            'vld4.8','vld4al.8',
-            'vld4.16','vld4al.16',
-            'vld4.32','vld4al.32',
-
-            'vldm','vldmal',
-            'vldm.32','vldmal.32',
-            'vldm.64','vldmal.64',
-
-            'vldmia','vldmiaal',
-            'vldmia.32','vldmiaal.32',
-            'vldmia.64','vldmiaal.64',
-
-            'vldmdb','vldmdbal',
-            'vldmdb.32','vldmdbal.32',
-            'vldmdb.64','vldmdbal.64',
-
-            'vldr','vldral',
-            'vldr.32','vldral.32',
-            'vldr.64','vldral.64',
-
-            'vpop','vpopal',
-            'vpop.32','vpopal.32',
-            'vpop.64','vpopal.64',
-
-            /* Unconditional VFPv3 & NEON SIMD Memory Access: Stores */
-            'vst1.8','vst1al.8',
-            'vst1.16','vst1al.16',
-            'vst1.32','vst1al.32',
-            'vst1.64','vst1al.64',
-
-            'vst2.8','vst2al.8',
-            'vst2.16','vst2al.16',
-            'vst2.32','vst2al.32',
-
-            'vst3.8','vst3al.8',
-            'vst3.16','vst3al.16',
-            'vst3.32','vst3al.32',
-
-            'vst4.8','vst4al.8',
-            'vst4.16','vst4al.16',
-            'vst4.32','vst4al.32',
-
-            'vstm','vstmal',
-            'vstm.32','vstmal.32',
-            'vstm.64','vstmal.64',
-
-            'vstmia','vstmiaal',
-            'vstmia.32','vstmiaal.32',
-            'vstmia.64','vstmiaal.64',
-
-            'vstmdb','vstmdbal',
-            'vstmdb.32','vstmdbal.32',
-            'vstmdb.64','vstmdbal.64',
-
-            'vstr','vstral',
-            'vstr.32','vstral.32',
-            'vstr.64','vstral.64',
-
-            'vpush','vpushal',
-            'vpush.32','vpushal.32',
-            'vpush.64','vpushal.64'
-            ),
-        /* Unconditional NEON SIMD Logical Instructions */
-        20 => array(
-            'vand','vandal',
-            'vand.i8','vandal.i8',
-            'vand.i16','vandal.i16',
-            'vand.i32','vandal.i32',
-            'vand.i64','vandal.i64',
-            'vand.s8','vandal.s8',
-            'vand.s16','vandal.s16',
-            'vand.s32','vandal.s32',
-            'vand.s64','vandal.s64',
-            'vand.u8','vandal.u8',
-            'vand.u16','vandal.u16',
-            'vand.u32','vandal.u32',
-            'vand.u64','vandal.u64',
-            'vand.f32','vandal.f32',
-            'vand.f64','vandal.f64',
-
-            'vbic','vbical',
-            'vbic.i8','vbical.i8',
-            'vbic.i16','vbical.i16',
-            'vbic.i32','vbical.i32',
-            'vbic.i64','vbical.i64',
-            'vbic.s8','vbical.s8',
-            'vbic.s16','vbical.s16',
-            'vbic.s32','vbical.s32',
-            'vbic.s64','vbical.s64',
-            'vbic.u8','vbical.u8',
-            'vbic.u16','vbical.u16',
-            'vbic.u32','vbical.u32',
-            'vbic.u64','vbical.u64',
-            'vbic.f32','vbical.f32',
-            'vbic.f64','vbical.f64',
-
-            'vbif','vbifal',
-            'vbif.i8','vbifal.i8',
-            'vbif.i16','vbifal.i16',
-            'vbif.i32','vbifal.i32',
-            'vbif.i64','vbifal.i64',
-            'vbif.s8','vbifal.s8',
-            'vbif.s16','vbifal.s16',
-            'vbif.s32','vbifal.s32',
-            'vbif.s64','vbifal.s64',
-            'vbif.u8','vbifal.u8',
-            'vbif.u16','vbifal.u16',
-            'vbif.u32','vbifal.u32',
-            'vbif.u64','vbifal.u64',
-            'vbif.f32','vbifal.f32',
-            'vbif.f64','vbifal.f64',
-
-            'vbit','vbital',
-            'vbit.i8','vbital.i8',
-            'vbit.i16','vbital.i16',
-            'vbit.i32','vbital.i32',
-            'vbit.i64','vbital.i64',
-            'vbit.s8','vbital.s8',
-            'vbit.s16','vbital.s16',
-            'vbit.s32','vbital.s32',
-            'vbit.s64','vbital.s64',
-            'vbit.u8','vbital.u8',
-            'vbit.u16','vbital.u16',
-            'vbit.u32','vbital.u32',
-            'vbit.u64','vbital.u64',
-            'vbit.f32','vbital.f32',
-            'vbit.f64','vbital.f64',
-
-            'vbsl','vbslal',
-            'vbsl.i8','vbslal.i8',
-            'vbsl.i16','vbslal.i16',
-            'vbsl.i32','vbslal.i32',
-            'vbsl.i64','vbslal.i64',
-            'vbsl.s8','vbslal.s8',
-            'vbsl.s16','vbslal.s16',
-            'vbsl.s32','vbslal.s32',
-            'vbsl.s64','vbslal.s64',
-            'vbsl.u8','vbslal.u8',
-            'vbsl.u16','vbslal.u16',
-            'vbsl.u32','vbslal.u32',
-            'vbsl.u64','vbslal.u64',
-            'vbsl.f32','vbslal.f32',
-            'vbsl.f64','vbslal.f64',
-
-            'veor','veoral',
-            'veor.i8','veoral.i8',
-            'veor.i16','veoral.i16',
-            'veor.i32','veoral.i32',
-            'veor.i64','veoral.i64',
-            'veor.s8','veoral.s8',
-            'veor.s16','veoral.s16',
-            'veor.s32','veoral.s32',
-            'veor.s64','veoral.s64',
-            'veor.u8','veoral.u8',
-            'veor.u16','veoral.u16',
-            'veor.u32','veoral.u32',
-            'veor.u64','veoral.u64',
-            'veor.f32','veoral.f32',
-            'veor.f64','veoral.f64',
-
-            'vmov','vmoval',
-            'vmov.8','vmoval.8',
-            'vmov.16','vmoval.16',
-            'vmov.32','vmoval.32',
-            'vmov.i8','vmoval.i8',
-            'vmov.i16','vmoval.i16',
-            'vmov.i32','vmoval.i32',
-            'vmov.i64','vmoval.i64',
-            'vmov.f32','vmoval.f32',
-            'vmov.f64','vmoval.f64',
-
-            'vmvn','vmvnal',
-            'vmvn.s8','vmvnal.s8',
-            'vmvn.s16','vmvnal.s16',
-            'vmvn.s32','vmvnal.s32',
-            'vmvn.s64','vmvnal.s64',
-            'vmvn.u8','vmvnal.u8',
-            'vmvn.u16','vmvnal.u16',
-            'vmvn.u32','vmvnal.u32',
-            'vmvn.u64','vmvnal.u64',
-            'vmvn.i8','vmvnal.i8',
-            'vmvn.i16','vmvnal.i16',
-            'vmvn.i32','vmvnal.i32',
-            'vmvn.i64','vmvnal.i64',
-            'vmvn.f32','vmvnal.f32',
-            'vmvn.f64','vmvnal.f64',
-
-            'vorn','vornal',
-            'vorn.s8','vornal.s8',
-            'vorn.s16','vornal.s16',
-            'vorn.s32','vornal.s32',
-            'vorn.s64','vornal.s64',
-            'vorn.u8','vornal.u8',
-            'vorn.u16','vornal.u16',
-            'vorn.u32','vornal.u32',
-            'vorn.u64','vornal.u64',
-            'vorn.i8','vornal.i8',
-            'vorn.i16','vornal.i16',
-            'vorn.i32','vornal.i32',
-            'vorn.i64','vornal.i64',
-            'vorn.f32','vornal.f32',
-            'vorn.f64','vornal.f64',
-
-            'vorr','vorral',
-            'vorr.s8','vorral.s8',
-            'vorr.s16','vorral.s16',
-            'vorr.s32','vorral.s32',
-            'vorr.s64','vorral.s64',
-            'vorr.u8','vorral.u8',
-            'vorr.u16','vorral.u16',
-            'vorr.u32','vorral.u32',
-            'vorr.u64','vorral.u64',
-            'vorr.i8','vorral.i8',
-            'vorr.i16','vorral.i16',
-            'vorr.i32','vorral.i32',
-            'vorr.i64','vorral.i64',
-            'vorr.f32','vorral.f32',
-            'vorr.f64','vorral.f64',
-
-            'vswp','vswpal',
-            'vswp.s8','vswpal.s8',
-            'vswp.s16','vswpal.s16',
-            'vswp.s32','vswpal.s32',
-            'vswp.s64','vswpal.s64',
-            'vswp.u8','vswpal.u8',
-            'vswp.u16','vswpal.u16',
-            'vswp.u32','vswpal.u32',
-            'vswp.u64','vswpal.u64',
-            'vswp.i8','vswpal.i8',
-            'vswp.i16','vswpal.i16',
-            'vswp.i32','vswpal.i32',
-            'vswp.i64','vswpal.i64',
-            'vswp.f32','vswpal.f32',
-            'vswp.f64','vswpal.f64'
-            ),
-        /* Unconditional NEON SIMD ARM Registers Interop Instructions */
-        21 => array(
-            'vmrs','vmrsal',
-            'vmsr','vmsral'
-            ),
-        /* Unconditional NEON SIMD Bit/Byte-Level Instructions */
-        22 => array(
-            'vcnt.8','vcntal.8',
-            'vdup.8','vdupal.8',
-
-            'vdup.16','vdupal.16',
-            'vdup.32','vdupal.32',
-
-            'vext.8','vextal.8',
-            'vext.16','vextal.16',
-
-            'vext.32','vextal.32',
-            'vext.64','vextal.64',
-
-            'vrev16.8','vrev16al.8',
-            'vrev32.8','vrev32al.8',
-            'vrev32.16','vrev32al.16',
-            'vrev64.8','vrev64al.8',
-            'vrev64.16','vrev64al.16',
-            'vrev64.32','vrev64al.32',
-
-            'vsli.8','vslial.8',
-            'vsli.16','vslial.16',
-            'vsli.32','vslial.32',
-            'vsli.64','vslial.64',
-
-            'vsri.8','vsrial.8',
-            'vsri.16','vsrial.16',
-            'vsri.32','vsrial.32',
-            'vsri.64','vsrial.64',
-
-            'vtbl.8','vtblal.8',
-
-            'vtbx','vtbxal',
-
-            'vtrn.8','vtrnal.8',
-            'vtrn.16','vtrnal.16',
-            'vtrn.32','vtrnal.32',
-
-            'vtst.8','vtstal.8',
-            'vtst.16','vtstal.16',
-            'vtst.32','vtstal.32',
-
-            'vuzp.8','vuzpal.8',
-            'vuzp.16','vuzpal.16',
-            'vuzp.32','vuzpal.32',
-
-            'vzip.8','vzipal.8',
-            'vzip.16','vzipal.16',
-            'vzip.32','vzipal.32',
-
-            'vmull.p8','vmullal.p8'
-            ),
-        /* Unconditional NEON SIMD Universal Integer Instructions */
-        23 => array(
-            'vadd.i8','vaddal.i8',
-            'vadd.i16','vaddal.i16',
-            'vadd.i32','vaddal.i32',
-            'vadd.i64','vaddal.i64',
-
-            'vsub.i8','vsubal.i8',
-            'vsub.i16','vsubal.i16',
-            'vsub.i32','vsubal.i32',
-            'vsub.i64','vsubal.i64',
-
-            'vaddhn.i16','vaddhnal.i16',
-            'vaddhn.i32','vaddhnal.i32',
-            'vaddhn.i64','vaddhnal.i64',
-
-            'vsubhn.i16','vsubhnal.i16',
-            'vsubhn.i32','vsubhnal.i32',
-            'vsubhn.i64','vsubhnal.i64',
-
-            'vraddhn.i16','vraddhnal.i16',
-            'vraddhn.i32','vraddhnal.i32',
-            'vraddhn.i64','vraddhnal.i64',
-
-            'vrsubhn.i16','vrsubhnal.i16',
-            'vrsubhn.i32','vrsubhnal.i32',
-            'vrsubhn.i64','vrsubhnal.i64',
-
-            'vpadd.i8','vpaddal.i8',
-            'vpadd.i16','vpaddal.i16',
-            'vpadd.i32','vpaddal.i32',
-
-            'vceq.i8','vceqal.i8',
-            'vceq.i16','vceqal.i16',
-            'vceq.i32','vceqal.i32',
-
-            'vclz.i8','vclzal.i8',
-            'vclz.i16','vclzal.i16',
-            'vclz.i32','vclzal.i32',
-
-            'vmovn.i16','vmovnal.i16',
-            'vmovn.i32','vmovnal.i32',
-            'vmovn.i64','vmovnal.i64',
-
-            'vmla.s8','vmlaal.s8',
-            'vmla.s16','vmlaal.s16',
-            'vmla.s32','vmlaal.s32',
-            'vmla.u8','vmlaal.u8',
-            'vmla.u16','vmlaal.u16',
-            'vmla.u32','vmlaal.u32',
-            'vmla.i8','vmlaal.i8',
-            'vmla.i16','vmlaal.i16',
-            'vmla.i32','vmlaal.i32',
-
-            'vmls.s8','vmlsal.s8',
-            'vmls.s16','vmlsal.s16',
-            'vmls.s32','vmlsal.s32',
-            'vmls.u8','vmlsal.u8',
-            'vmls.u16','vmlsal.u16',
-            'vmls.u32','vmlsal.u32',
-            'vmls.i8','vmlsal.i8',
-            'vmls.i16','vmlsal.i16',
-            'vmls.i32','vmlsal.i32',
-
-            'vmul.s8','vmulal.s8',
-            'vmul.s16','vmulal.s16',
-            'vmul.s32','vmulal.s32',
-            'vmul.u8','vmulal.u8',
-            'vmul.u16','vmulal.u16',
-            'vmul.u32','vmulal.u32',
-            'vmul.i8','vmulal.i8',
-            'vmul.i16','vmulal.i16',
-            'vmul.i32','vmulal.i32',
-            'vmul.p8','vmulal.p8',
-
-            'vrshrn.i16','vrshrnal.i16',
-            'vrshrn.i32','vrshrnal.i32',
-            'vrshrn.i64','vrshrnal.i64',
-
-            'vshrn.i16','vshrnal.i16',
-            'vshrn.i32','vshrnal.i32',
-            'vshrn.i64','vshrnal.i64',
-
-            'vshl.i8','vshlal.i8',
-            'vshl.i16','vshlal.i16',
-            'vshl.i32','vshlal.i32',
-            'vshl.i64','vshlal.i64',
-
-            'vshll.i8','vshllal.i8',
-            'vshll.i16','vshllal.i16',
-            'vshll.i32','vshllal.i32'
-            ),
-        /* Unconditional NEON SIMD Signed Integer Instructions */
-        24 => array(
-            'vaba.s8','vabaal.s8',
-            'vaba.s16','vabaal.s16',
-            'vaba.s32','vabaal.s32',
-
-            'vabal.s8','vabalal.s8',
-            'vabal.s16','vabalal.s16',
-            'vabal.s32','vabalal.s32',
-
-            'vabd.s8','vabdal.s8',
-            'vabd.s16','vabdal.s16',
-            'vabd.s32','vabdal.s32',
-
-            'vabs.s8','vabsal.s8',
-            'vabs.s16','vabsal.s16',
-            'vabs.s32','vabsal.s32',
-
-            'vaddl.s8','vaddlal.s8',
-            'vaddl.s16','vaddlal.s16',
-            'vaddl.s32','vaddlal.s32',
-
-            'vcge.s8','vcgeal.s8',
-            'vcge.s16','vcgeal.s16',
-            'vcge.s32','vcgeal.s32',
-
-            'vcle.s8','vcleal.s8',
-            'vcle.s16','vcleal.s16',
-            'vcle.s32','vcleal.s32',
-
-            'vcgt.s8','vcgtal.s8',
-            'vcgt.s16','vcgtal.s16',
-            'vcgt.s32','vcgtal.s32',
-
-            'vclt.s8','vcltal.s8',
-            'vclt.s16','vcltal.s16',
-            'vclt.s32','vcltal.s32',
-
-            'vcls.s8','vclsal.s8',
-            'vcls.s16','vclsal.s16',
-            'vcls.s32','vclsal.s32',
-
-            'vaddw.s8','vaddwal.s8',
-            'vaddw.s16','vaddwal.s16',
-            'vaddw.s32','vaddwal.s32',
-
-            'vhadd.s8','vhaddal.s8',
-            'vhadd.s16','vhaddal.s16',
-            'vhadd.s32','vhaddal.s32',
-
-            'vhsub.s8','vhsubal.s8',
-            'vhsub.s16','vhsubal.s16',
-            'vhsub.s32','vhsubal.s32',
-
-            'vmax.s8','vmaxal.s8',
-            'vmax.s16','vmaxal.s16',
-            'vmax.s32','vmaxal.s32',
-
-            'vmin.s8','vminal.s8',
-            'vmin.s16','vminal.s16',
-            'vmin.s32','vminal.s32',
-
-            'vmlal.s8','vmlalal.s8',
-            'vmlal.s16','vmlalal.s16',
-            'vmlal.s32','vmlalal.s32',
-
-            'vmlsl.s8','vmlslal.s8',
-            'vmlsl.s16','vmlslal.s16',
-            'vmlsl.s32','vmlslal.s32',
-
-            'vneg.s8','vnegal.s8',
-            'vneg.s16','vnegal.s16',
-            'vneg.s32','vnegal.s32',
-
-            'vpadal.s8','vpadalal.s8',
-            'vpadal.s16','vpadalal.s16',
-            'vpadal.s32','vpadalal.s32',
-
-            'vmovl.s8','vmovlal.s8',
-            'vmovl.s16','vmovlal.s16',
-            'vmovl.s32','vmovlal.s32',
-
-            'vmull.s8','vmullal.s8',
-            'vmull.s16','vmullal.s16',
-            'vmull.s32','vmullal.s32',
-
-            'vpaddl.s8','vpaddlal.s8',
-            'vpaddl.s16','vpaddlal.s16',
-            'vpaddl.s32','vpaddlal.s32',
-
-            'vpmax.s8','vpmaxal.s8',
-            'vpmax.s16','vpmaxal.s16',
-            'vpmax.s32','vpmaxal.s32',
-
-            'vpmin.s8','vpminal.s8',
-            'vpmin.s16','vpminal.s16',
-            'vpmin.s32','vpminal.s32',
-
-            'vqabs.s8','vqabsal.s8',
-            'vqabs.s16','vqabsal.s16',
-            'vqabs.s32','vqabsal.s32',
-
-            'vqadd.s8','vqaddal.s8',
-            'vqadd.s16','vqaddal.s16',
-            'vqadd.s32','vqaddal.s32',
-            'vqadd.s64','vqaddal.s64',
-
-            'vqdmlal.s16','vqdmlalal.s16',
-            'vqdmlal.s32','vqdmlalal.s32',
-
-            'vqdmlsl.s16','vqdmlslal.s16',
-            'vqdmlsl.s32','vqdmlslal.s32',
-
-            'vqdmulh.s16','vqdmulhal.s16',
-            'vqdmulh.s32','vqdmulhal.s32',
-
-            'vqdmull.s16','vqdmullal.s16',
-            'vqdmull.s32','vqdmullal.s32',
-
-            'vqmovn.s16','vqmovnal.s16',
-            'vqmovn.s32','vqmovnal.s32',
-            'vqmovn.s64','vqmovnal.s64',
-
-            'vqmovun.s16','vqmovunal.s16',
-            'vqmovun.s32','vqmovunal.s32',
-            'vqmovun.s64','vqmovunal.s64',
-
-            'vqneg.s8','vqnegal.s8',
-            'vqneg.s16','vqnegal.s16',
-            'vqneg.s32','vqnegal.s32',
-
-            'vqrdmulh.s16','vqrdmulhal.s16',
-            'vqrdmulh.s32','vqrdmulhal.s32',
-
-            'vqrshl.s8','vqrshlal.s8',
-            'vqrshl.s16','vqrshlal.s16',
-            'vqrshl.s32','vqrshlal.s32',
-            'vqrshl.s64','vqrshlal.s64',
-
-            'vqrshrn.s16','vqrshrnal.s16',
-            'vqrshrn.s32','vqrshrnal.s32',
-            'vqrshrn.s64','vqrshrnal.s64',
-
-            'vqrshrun.s16','vqrshrunal.s16',
-            'vqrshrun.s32','vqrshrunal.s32',
-            'vqrshrun.s64','vqrshrunal.s64',
-
-            'vqshl.s8','vqshlal.s8',
-            'vqshl.s16','vqshlal.s16',
-            'vqshl.s32','vqshlal.s32',
-            'vqshl.s64','vqshlal.s64',
-
-            'vqshlu.s8','vqshlual.s8',
-            'vqshlu.s16','vqshlual.s16',
-            'vqshlu.s32','vqshlual.s32',
-            'vqshlu.s64','vqshlual.s64',
-
-            'vqshrn.s16','vqshrnal.s16',
-            'vqshrn.s32','vqshrnal.s32',
-            'vqshrn.s64','vqshrnal.s64',
-
-            'vqshrun.s16','vqshrunal.s16',
-            'vqshrun.s32','vqshrunal.s32',
-            'vqshrun.s64','vqshrunal.s64',
-
-            'vqsub.s8','vqsubal.s8',
-            'vqsub.s16','vqsubal.s16',
-            'vqsub.s32','vqsubal.s32',
-            'vqsub.s64','vqsubal.s64',
-
-            'vrhadd.s8','vrhaddal.s8',
-            'vrhadd.s16','vrhaddal.s16',
-            'vrhadd.s32','vrhaddal.s32',
-
-            'vrshl.s8','vrshlal.s8',
-            'vrshl.s16','vrshlal.s16',
-            'vrshl.s32','vrshlal.s32',
-            'vrshl.s64','vrshlal.s64',
-
-            'vrshr.s8','vrshral.s8',
-            'vrshr.s16','vrshral.s16',
-            'vrshr.s32','vrshral.s32',
-            'vrshr.s64','vrshral.s64',
-
-            'vrsra.s8','vrsraal.s8',
-            'vrsra.s16','vrsraal.s16',
-            'vrsra.s32','vrsraal.s32',
-            'vrsra.s64','vrsraal.s64',
-
-            'vshl.s8','vshlal.s8',
-            'vshl.s16','vshlal.s16',
-            'vshl.s32','vshlal.s32',
-            'vshl.s64','vshlal.s64',
-
-            'vshll.s8','vshllal.s8',
-            'vshll.s16','vshllal.s16',
-            'vshll.s32','vshllal.s32',
-
-            'vshr.s8','vshral.s8',
-            'vshr.s16','vshral.s16',
-            'vshr.s32','vshral.s32',
-            'vshr.s64','vshral.s64',
-
-            'vsra.s8','vsraal.s8',
-            'vsra.s16','vsraal.s16',
-            'vsra.s32','vsraal.s32',
-            'vsra.s64','vsraal.s64',
-
-            'vsubl.s8','vsublal.s8',
-            'vsubl.s16','vsublal.s16',
-            'vsubl.s32','vsublal.s32',
-
-            'vsubh.s8','vsubhal.s8',
-            'vsubh.s16','vsubhal.s16',
-            'vsubh.s32','vsubhal.s32'
-            ),
-        /* Unconditional NEON SIMD Unsigned Integer Instructions */
-        25 => array(
-            'vaba.u8','vabaal.u8',
-            'vaba.u16','vabaal.u16',
-            'vaba.u32','vabaal.u32',
-
-            'vabal.u8','vabalal.u8',
-            'vabal.u16','vabalal.u16',
-            'vabal.u32','vabalal.u32',
-
-            'vabd.u8','vabdal.u8',
-            'vabd.u16','vabdal.u16',
-            'vabd.u32','vabdal.u32',
-
-            'vaddl.u8','vaddlal.u8',
-            'vaddl.u16','vaddlal.u16',
-            'vaddl.u32','vaddlal.u32',
-
-            'vsubl.u8','vsublal.u8',
-            'vsubl.u16','vsublal.u16',
-            'vsubl.u32','vsublal.u32',
-
-            'vaddw.u8','vaddwal.u8',
-            'vaddw.u16','vaddwal.u16',
-            'vaddw.u32','vaddwal.u32',
-
-            'vsubh.u8','vsubhal.u8',
-            'vsubh.u16','vsubhal.u16',
-            'vsubh.u32','vsubhal.u32',
-
-            'vhadd.u8','vhaddal.u8',
-            'vhadd.u16','vhaddal.u16',
-            'vhadd.u32','vhaddal.u32',
-
-            'vhsub.u8','vhsubal.u8',
-            'vhsub.u16','vhsubal.u16',
-            'vhsub.u32','vhsubal.u32',
-
-            'vpadal.u8','vpadalal.u8',
-            'vpadal.u16','vpadalal.u16',
-            'vpadal.u32','vpadalal.u32',
-
-            'vpaddl.u8','vpaddlal.u8',
-            'vpaddl.u16','vpaddlal.u16',
-            'vpaddl.u32','vpaddlal.u32',
-
-            'vcge.u8','vcgeal.u8',
-            'vcge.u16','vcgeal.u16',
-            'vcge.u32','vcgeal.u32',
-
-            'vcle.u8','vcleal.u8',
-            'vcle.u16','vcleal.u16',
-            'vcle.u32','vcleal.u32',
-
-            'vcgt.u8','vcgtal.u8',
-            'vcgt.u16','vcgtal.u16',
-            'vcgt.u32','vcgtal.u32',
-
-            'vclt.u8','vcltal.u8',
-            'vclt.u16','vcltal.u16',
-            'vclt.u32','vcltal.u32',
-
-            'vmax.u8','vmaxal.u8',
-            'vmax.u16','vmaxal.u16',
-            'vmax.u32','vmaxal.u32',
-
-            'vmin.u8','vminal.u8',
-            'vmin.u16','vminal.u16',
-            'vmin.u32','vminal.u32',
-
-            'vmlal.u8','vmlalal.u8',
-            'vmlal.u16','vmlalal.u16',
-            'vmlal.u32','vmlalal.u32',
-
-            'vmlsl.u8','vmlslal.u8',
-            'vmlsl.u16','vmlslal.u16',
-            'vmlsl.u32','vmlslal.u32',
-
-            'vmull.u8','vmullal.u8',
-            'vmull.u16','vmullal.u16',
-            'vmull.u32','vmullal.u32',
-
-            'vmovl.u8','vmovlal.u8',
-            'vmovl.u16','vmovlal.u16',
-            'vmovl.u32','vmovlal.u32',
-
-            'vshl.u8','vshlal.u8',
-            'vshl.u16','vshlal.u16',
-            'vshl.u32','vshlal.u32',
-            'vshl.u64','vshlal.u64',
-
-            'vshll.u8','vshllal.u8',
-            'vshll.u16','vshllal.u16',
-            'vshll.u32','vshllal.u32',
-
-            'vshr.u8','vshral.u8',
-            'vshr.u16','vshral.u16',
-            'vshr.u32','vshral.u32',
-            'vshr.u64','vshral.u64',
-
-            'vsra.u8','vsraal.u8',
-            'vsra.u16','vsraal.u16',
-            'vsra.u32','vsraal.u32',
-            'vsra.u64','vsraal.u64',
-
-            'vpmax.u8','vpmaxal.u8',
-            'vpmax.u16','vpmaxal.u16',
-            'vpmax.u32','vpmaxal.u32',
-
-            'vpmin.u8','vpminal.u8',
-            'vpmin.u16','vpminal.u16',
-            'vpmin.u32','vpminal.u32',
-
-            'vqadd.u8','vqaddal.u8',
-            'vqadd.u16','vqaddal.u16',
-            'vqadd.u32','vqaddal.u32',
-            'vqadd.u64','vqaddal.u64',
-
-            'vqsub.u8','vqsubal.u8',
-            'vqsub.u16','vqsubal.u16',
-            'vqsub.u32','vqsubal.u32',
-            'vqsub.u64','vqsubal.u64',
-
-            'vqmovn.u16','vqmovnal.u16',
-            'vqmovn.u32','vqmovnal.u32',
-            'vqmovn.u64','vqmovnal.u64',
-
-            'vqshl.u8','vqshlal.u8',
-            'vqshl.u16','vqshlal.u16',
-            'vqshl.u32','vqshlal.u32',
-            'vqshl.u64','vqshlal.u64',
-
-            'vqshrn.u16','vqshrnal.u16',
-            'vqshrn.u32','vqshrnal.u32',
-            'vqshrn.u64','vqshrnal.u64',
-
-            'vqrshl.u8','vqrshlal.u8',
-            'vqrshl.u16','vqrshlal.u16',
-            'vqrshl.u32','vqrshlal.u32',
-            'vqrshl.u64','vqrshlal.u64',
-
-            'vqrshrn.u16','vqrshrnal.u16',
-            'vqrshrn.u32','vqrshrnal.u32',
-            'vqrshrn.u64','vqrshrnal.u64',
-
-            'vrhadd.u8','vrhaddal.u8',
-            'vrhadd.u16','vrhaddal.u16',
-            'vrhadd.u32','vrhaddal.u32',
-
-            'vrshl.u8','vrshlal.u8',
-            'vrshl.u16','vrshlal.u16',
-            'vrshl.u32','vrshlal.u32',
-            'vrshl.u64','vrshlal.u64',
-
-            'vrshr.u8','vrshral.u8',
-            'vrshr.u16','vrshral.u16',
-            'vrshr.u32','vrshral.u32',
-            'vrshr.u64','vrshral.u64',
-
-            'vrsra.u8','vrsraal.u8',
-            'vrsra.u16','vrsraal.u16',
-            'vrsra.u32','vrsraal.u32',
-            'vrsra.u64','vrsraal.u64'
-            ),
-        /* Unconditional VFPv3 & NEON SIMD Floating-Point Instructions */
-        26 => array(
-            'vabd.f32','vabdal.f32',
-
-            'vabs.f32','vabsal.f32',
-            'vabs.f64','vabsal.f64',
-
-            'vacge.f32','vacgeal.f32',
-            'vacgt.f32','vacgtal.f32',
-            'vacle.f32','vacleal.f32',
-            'vaclt.f32','vacltal.f32',
-
-            'vadd.f32','vaddal.f32',
-            'vadd.f64','vaddal.f64',
-
-            'vceq.f32','vceqal.f32',
-            'vcge.f32','vcgeal.f32',
-            'vcle.f32','vcleal.f32',
-            'vcgt.f32','vcgtal.f32',
-            'vclt.f32','vcltal.f32',
-
-            'vcmp.f32','vcmpal.f32',
-            'vcmp.f64','vcmpal.f64',
-
-            'vcmpe.f32','vcmpeal.f32',
-            'vcmpe.f64','vcmpeal.f64',
-
-            'vcvt.s16.f32','vcvtal.s16.f32',
-            'vcvt.s16.f64','vcvtal.s16.f64',
-            'vcvt.s32.f32','vcvtal.s32.f32',
-            'vcvt.s32.f64','vcvtal.s32.f64',
-            'vcvt.u16.f32','vcvtal.u16.f32',
-            'vcvt.u16.f64','vcvtal.u16.f64',
-            'vcvt.u32.f32','vcvtal.u32.f32',
-            'vcvt.u32.f64','vcvtal.u32.f64',
-            'vcvt.f16.f32','vcvtal.f16.f32',
-            'vcvt.f32.s32','vcvtal.f32.s32',
-            'vcvt.f32.u32','vcvtal.f32.u32',
-            'vcvt.f32.f16','vcvtal.f32.f16',
-            'vcvt.f32.f64','vcvtal.f32.f64',
-            'vcvt.f64.s32','vcvtal.f64.s32',
-            'vcvt.f64.u32','vcvtal.f64.u32',
-            'vcvt.f64.f32','vcvtal.f64.f32',
-
-            'vcvtr.s32.f32','vcvtral.s32.f32',
-            'vcvtr.s32.f64','vcvtral.s32.f64',
-            'vcvtr.u32.f32','vcvtral.u32.f32',
-            'vcvtr.u32.f64','vcvtral.u32.f64',
-
-            'vcvtb.f16.f32','vcvtbal.f16.f32',
-            'vcvtb.f32.f16','vcvtbal.f32.f16',
-
-            'vcvtt.f16.f32','vcvttal.f16.f32',
-            'vcvtt.f32.f16','vcvttal.f32.f16',
-
-            'vdiv.f32','vdival.f32',
-            'vdiv.f64','vdival.f64',
-
-            'vmax.f32','vmaxal.f32',
-            'vmin.f32','vminal.f32',
-
-            'vmla.f32','vmlaal.f32',
-            'vmla.f64','vmlaal.f64',
-
-            'vmls.f32','vmlsal.f32',
-            'vmls.f64','vmlsal.f64',
-
-            'vmul.f32','vmulal.f32',
-            'vmul.f64','vmulal.f64',
-
-            'vneg.f32','vnegal.f32',
-            'vneg.f64','vnegal.f64',
-
-            'vnmla.f32','vnmlaal.f32',
-            'vnmla.f64','vnmlaal.f64',
-
-            'vnmls.f32','vnmlsal.f32',
-            'vnmls.f64','vnmlsal.f64',
-
-            'vnmul.f64','vnmulal.f64',
-            'vnmul.f32','vnmulal.f32',
-
-            'vpadd.f32','vpaddal.f32',
-
-            'vpmax.f32','vpmaxal.f32',
-            'vpmin.f32','vpminal.f32',
-
-            'vrecpe.u32','vrecpeal.u32',
-            'vrecpe.f32','vrecpeal.f32',
-            'vrecps.f32','vrecpsal.f32',
-
-            'vrsqrte.u32','vrsqrteal.u32',
-            'vrsqrte.f32','vrsqrteal.f32',
-            'vrsqrts.f32','vrsqrtsal.f32',
-
-            'vsqrt.f32','vsqrtal.f32',
-            'vsqrt.f64','vsqrtal.f64',
-
-            'vsub.f32','vsubal.f32',
-            'vsub.f64','vsubal.f64'
-            ),
-        /* Conditional VFPv3 & NEON SIMD Memory Access Instructions */
-        27 => array(
-            /* Conditional VFPv3 & NEON SIMD Memory Access: Loads */
-            'vldeq.8','vldne.8','vldcs.8','vldhs.8','vldcc.8','vldlo.8','vldmi.8','vldpl.8','vldvs.8','vldvc.8','vldhi.8','vldls.8','vldge.8','vldlt.8','vldgt.8','vldle.8',
-            'vldeq.16','vldne.16','vldcs.16','vldhs.16','vldcc.16','vldlo.16','vldmi.16','vldpl.16','vldvs.16','vldvc.16','vldhi.16','vldls.16','vldge.16','vldlt.16','vldgt.16','vldle.16',
-            'vldeq.32','vldne.32','vldcs.32','vldhs.32','vldcc.32','vldlo.32','vldmi.32','vldpl.32','vldvs.32','vldvc.32','vldhi.32','vldls.32','vldge.32','vldlt.32','vldgt.32','vldle.32',
-            'vldeq.64','vldne.64','vldcs.64','vldhs.64','vldcc.64','vldlo.64','vldmi.64','vldpl.64','vldvs.64','vldvc.64','vldhi.64','vldls.64','vldge.64','vldlt.64','vldgt.64','vldle.64',
-
-            'vld1eq.8','vld1ne.8','vld1cs.8','vld1hs.8','vld1cc.8','vld1lo.8','vld1mi.8','vld1pl.8','vld1vs.8','vld1vc.8','vld1hi.8','vld1ls.8','vld1ge.8','vld1lt.8','vld1gt.8','vld1le.8',
-            'vld1eq.16','vld1ne.16','vld1cs.16','vld1hs.16','vld1cc.16','vld1lo.16','vld1mi.16','vld1pl.16','vld1vs.16','vld1vc.16','vld1hi.16','vld1ls.16','vld1ge.16','vld1lt.16','vld1gt.16','vld1le.16',
-            'vld1eq.32','vld1ne.32','vld1cs.32','vld1hs.32','vld1cc.32','vld1lo.32','vld1mi.32','vld1pl.32','vld1vs.32','vld1vc.32','vld1hi.32','vld1ls.32','vld1ge.32','vld1lt.32','vld1gt.32','vld1le.32',
-
-            'vld2eq.8','vld2ne.8','vld2cs.8','vld2hs.8','vld2cc.8','vld2lo.8','vld2mi.8','vld2pl.8','vld2vs.8','vld2vc.8','vld2hi.8','vld2ls.8','vld2ge.8','vld2lt.8','vld2gt.8','vld2le.8',
-            'vld2eq.16','vld2ne.16','vld2cs.16','vld2hs.16','vld2cc.16','vld2lo.16','vld2mi.16','vld2pl.16','vld2vs.16','vld2vc.16','vld2hi.16','vld2ls.16','vld2ge.16','vld2lt.16','vld2gt.16','vld2le.16',
-            'vld2eq.32','vld2ne.32','vld2cs.32','vld2hs.32','vld2cc.32','vld2lo.32','vld2mi.32','vld2pl.32','vld2vs.32','vld2vc.32','vld2hi.32','vld2ls.32','vld2ge.32','vld2lt.32','vld2gt.32','vld2le.32',
-
-            'vld3eq.8','vld3ne.8','vld3cs.8','vld3hs.8','vld3cc.8','vld3lo.8','vld3mi.8','vld3pl.8','vld3vs.8','vld3vc.8','vld3hi.8','vld3ls.8','vld3ge.8','vld3lt.8','vld3gt.8','vld3le.8',
-            'vld3eq.16','vld3ne.16','vld3cs.16','vld3hs.16','vld3cc.16','vld3lo.16','vld3mi.16','vld3pl.16','vld3vs.16','vld3vc.16','vld3hi.16','vld3ls.16','vld3ge.16','vld3lt.16','vld3gt.16','vld3le.16',
-            'vld3eq.32','vld3ne.32','vld3cs.32','vld3hs.32','vld3cc.32','vld3lo.32','vld3mi.32','vld3pl.32','vld3vs.32','vld3vc.32','vld3hi.32','vld3ls.32','vld3ge.32','vld3lt.32','vld3gt.32','vld3le.32',
-
-            'vld4eq.8','vld4ne.8','vld4cs.8','vld4hs.8','vld4cc.8','vld4lo.8','vld4mi.8','vld4pl.8','vld4vs.8','vld4vc.8','vld4hi.8','vld4ls.8','vld4ge.8','vld4lt.8','vld4gt.8','vld4le.8',
-            'vld4eq.16','vld4ne.16','vld4cs.16','vld4hs.16','vld4cc.16','vld4lo.16','vld4mi.16','vld4pl.16','vld4vs.16','vld4vc.16','vld4hi.16','vld4ls.16','vld4ge.16','vld4lt.16','vld4gt.16','vld4le.16',
-            'vld4eq.32','vld4ne.32','vld4cs.32','vld4hs.32','vld4cc.32','vld4lo.32','vld4mi.32','vld4pl.32','vld4vs.32','vld4vc.32','vld4hi.32','vld4ls.32','vld4ge.32','vld4lt.32','vld4gt.32','vld4le.32',
-
-            'vldmeq','vldmne','vldmcs','vldmhs','vldmcc','vldmlo','vldmmi','vldmpl','vldmvs','vldmvc','vldmhi','vldmls','vldmge','vldmlt','vldmgt','vldmle',
-            'vldmeq.32','vldmne.32','vldmcs.32','vldmhs.32','vldmcc.32','vldmlo.32','vldmmi.32','vldmpl.32','vldmvs.32','vldmvc.32','vldmhi.32','vldmls.32','vldmge.32','vldmlt.32','vldmgt.32','vldmle.32',
-            'vldmeq.64','vldmne.64','vldmcs.64','vldmhs.64','vldmcc.64','vldmlo.64','vldmmi.64','vldmpl.64','vldmvs.64','vldmvc.64','vldmhi.64','vldmls.64','vldmge.64','vldmlt.64','vldmgt.64','vldmle.64',
-
-            'vldmiaeq','vldmiane','vldmiacs','vldmiahs','vldmiacc','vldmialo','vldmiami','vldmiapl','vldmiavs','vldmiavc','vldmiahi','vldmials','vldmiage','vldmialt','vldmiagt','vldmiale',
-            'vldmiaeq.32','vldmiane.32','vldmiacs.32','vldmiahs.32','vldmiacc.32','vldmialo.32','vldmiami.32','vldmiapl.32','vldmiavs.32','vldmiavc.32','vldmiahi.32','vldmials.32','vldmiage.32','vldmialt.32','vldmiagt.32','vldmiale.32',
-            'vldmiaeq.64','vldmiane.64','vldmiacs.64','vldmiahs.64','vldmiacc.64','vldmialo.64','vldmiami.64','vldmiapl.64','vldmiavs.64','vldmiavc.64','vldmiahi.64','vldmials.64','vldmiage.64','vldmialt.64','vldmiagt.64','vldmiale.64',
-
-            'vldmdbeq','vldmdbne','vldmdbcs','vldmdbhs','vldmdbcc','vldmdblo','vldmdbmi','vldmdbpl','vldmdbvs','vldmdbvc','vldmdbhi','vldmdbls','vldmdbge','vldmdblt','vldmdbgt','vldmdble',
-            'vldmdbeq.32','vldmdbne.32','vldmdbcs.32','vldmdbhs.32','vldmdbcc.32','vldmdblo.32','vldmdbmi.32','vldmdbpl.32','vldmdbvs.32','vldmdbvc.32','vldmdbhi.32','vldmdbls.32','vldmdbge.32','vldmdblt.32','vldmdbgt.32','vldmdble.32',
-            'vldmdbeq.64','vldmdbne.64','vldmdbcs.64','vldmdbhs.64','vldmdbcc.64','vldmdblo.64','vldmdbmi.64','vldmdbpl.64','vldmdbvs.64','vldmdbvc.64','vldmdbhi.64','vldmdbls.64','vldmdbge.64','vldmdblt.64','vldmdbgt.64','vldmdble.64',
-
-            'vldreq','vldrne','vldrcs','vldrhs','vldrcc','vldrlo','vldrmi','vldrpl','vldrvs','vldrvc','vldrhi','vldrls','vldrge','vldrlt','vldrgt','vldrle',
-            'vldreq.32','vldrne.32','vldrcs.32','vldrhs.32','vldrcc.32','vldrlo.32','vldrmi.32','vldrpl.32','vldrvs.32','vldrvc.32','vldrhi.32','vldrls.32','vldrge.32','vldrlt.32','vldrgt.32','vldrle.32',
-            'vldreq.64','vldrne.64','vldrcs.64','vldrhs.64','vldrcc.64','vldrlo.64','vldrmi.64','vldrpl.64','vldrvs.64','vldrvc.64','vldrhi.64','vldrls.64','vldrge.64','vldrlt.64','vldrgt.64','vldrle.64',
-
-            'vpopeq','vpopne','vpopcs','vpophs','vpopcc','vpoplo','vpopmi','vpoppl','vpopvs','vpopvc','vpophi','vpopls','vpopge','vpoplt','vpopgt','vpople',
-            'vpopeq.32','vpopne.32','vpopcs.32','vpophs.32','vpopcc.32','vpoplo.32','vpopmi.32','vpoppl.32','vpopvs.32','vpopvc.32','vpophi.32','vpopls.32','vpopge.32','vpoplt.32','vpopgt.32','vpople.32',
-            'vpopeq.64','vpopne.64','vpopcs.64','vpophs.64','vpopcc.64','vpoplo.64','vpopmi.64','vpoppl.64','vpopvs.64','vpopvc.64','vpophi.64','vpopls.64','vpopge.64','vpoplt.64','vpopgt.64','vpople.64',
-
-            /* Conditional VFPv3 & NEON SIMD Memory Access: Stores */
-            'vst1eq.8','vst1ne.8','vst1cs.8','vst1hs.8','vst1cc.8','vst1lo.8','vst1mi.8','vst1pl.8','vst1vs.8','vst1vc.8','vst1hi.8','vst1ls.8','vst1ge.8','vst1lt.8','vst1gt.8','vst1le.8',
-            'vst1eq.16','vst1ne.16','vst1cs.16','vst1hs.16','vst1cc.16','vst1lo.16','vst1mi.16','vst1pl.16','vst1vs.16','vst1vc.16','vst1hi.16','vst1ls.16','vst1ge.16','vst1lt.16','vst1gt.16','vst1le.16',
-            'vst1eq.32','vst1ne.32','vst1cs.32','vst1hs.32','vst1cc.32','vst1lo.32','vst1mi.32','vst1pl.32','vst1vs.32','vst1vc.32','vst1hi.32','vst1ls.32','vst1ge.32','vst1lt.32','vst1gt.32','vst1le.32',
-            'vst1eq.64','vst1ne.64','vst1cs.64','vst1hs.64','vst1cc.64','vst1lo.64','vst1mi.64','vst1pl.64','vst1vs.64','vst1vc.64','vst1hi.64','vst1ls.64','vst1ge.64','vst1lt.64','vst1gt.64','vst1le.64',
-
-            'vst2eq.8','vst2ne.8','vst2cs.8','vst2hs.8','vst2cc.8','vst2lo.8','vst2mi.8','vst2pl.8','vst2vs.8','vst2vc.8','vst2hi.8','vst2ls.8','vst2ge.8','vst2lt.8','vst2gt.8','vst2le.8',
-            'vst2eq.16','vst2ne.16','vst2cs.16','vst2hs.16','vst2cc.16','vst2lo.16','vst2mi.16','vst2pl.16','vst2vs.16','vst2vc.16','vst2hi.16','vst2ls.16','vst2ge.16','vst2lt.16','vst2gt.16','vst2le.16',
-            'vst2eq.32','vst2ne.32','vst2cs.32','vst2hs.32','vst2cc.32','vst2lo.32','vst2mi.32','vst2pl.32','vst2vs.32','vst2vc.32','vst2hi.32','vst2ls.32','vst2ge.32','vst2lt.32','vst2gt.32','vst2le.32',
-
-            'vst3eq.8','vst3ne.8','vst3cs.8','vst3hs.8','vst3cc.8','vst3lo.8','vst3mi.8','vst3pl.8','vst3vs.8','vst3vc.8','vst3hi.8','vst3ls.8','vst3ge.8','vst3lt.8','vst3gt.8','vst3le.8',
-            'vst3eq.16','vst3ne.16','vst3cs.16','vst3hs.16','vst3cc.16','vst3lo.16','vst3mi.16','vst3pl.16','vst3vs.16','vst3vc.16','vst3hi.16','vst3ls.16','vst3ge.16','vst3lt.16','vst3gt.16','vst3le.16',
-            'vst3eq.32','vst3ne.32','vst3cs.32','vst3hs.32','vst3cc.32','vst3lo.32','vst3mi.32','vst3pl.32','vst3vs.32','vst3vc.32','vst3hi.32','vst3ls.32','vst3ge.32','vst3lt.32','vst3gt.32','vst3le.32',
-
-            'vst4eq.8','vst4ne.8','vst4cs.8','vst4hs.8','vst4cc.8','vst4lo.8','vst4mi.8','vst4pl.8','vst4vs.8','vst4vc.8','vst4hi.8','vst4ls.8','vst4ge.8','vst4lt.8','vst4gt.8','vst4le.8',
-            'vst4eq.16','vst4ne.16','vst4cs.16','vst4hs.16','vst4cc.16','vst4lo.16','vst4mi.16','vst4pl.16','vst4vs.16','vst4vc.16','vst4hi.16','vst4ls.16','vst4ge.16','vst4lt.16','vst4gt.16','vst4le.16',
-            'vst4eq.32','vst4ne.32','vst4cs.32','vst4hs.32','vst4cc.32','vst4lo.32','vst4mi.32','vst4pl.32','vst4vs.32','vst4vc.32','vst4hi.32','vst4ls.32','vst4ge.32','vst4lt.32','vst4gt.32','vst4le.32',
-
-            'vstmeq','vstmne','vstmcs','vstmhs','vstmcc','vstmlo','vstmmi','vstmpl','vstmvs','vstmvc','vstmhi','vstmls','vstmge','vstmlt','vstmgt','vstmle',
-            'vstmeq.32','vstmne.32','vstmcs.32','vstmhs.32','vstmcc.32','vstmlo.32','vstmmi.32','vstmpl.32','vstmvs.32','vstmvc.32','vstmhi.32','vstmls.32','vstmge.32','vstmlt.32','vstmgt.32','vstmle.32',
-            'vstmeq.64','vstmne.64','vstmcs.64','vstmhs.64','vstmcc.64','vstmlo.64','vstmmi.64','vstmpl.64','vstmvs.64','vstmvc.64','vstmhi.64','vstmls.64','vstmge.64','vstmlt.64','vstmgt.64','vstmle.64',
-
-            'vstmiaeq','vstmiane','vstmiacs','vstmiahs','vstmiacc','vstmialo','vstmiami','vstmiapl','vstmiavs','vstmiavc','vstmiahi','vstmials','vstmiage','vstmialt','vstmiagt','vstmiale',
-            'vstmiaeq.32','vstmiane.32','vstmiacs.32','vstmiahs.32','vstmiacc.32','vstmialo.32','vstmiami.32','vstmiapl.32','vstmiavs.32','vstmiavc.32','vstmiahi.32','vstmials.32','vstmiage.32','vstmialt.32','vstmiagt.32','vstmiale.32',
-            'vstmiaeq.64','vstmiane.64','vstmiacs.64','vstmiahs.64','vstmiacc.64','vstmialo.64','vstmiami.64','vstmiapl.64','vstmiavs.64','vstmiavc.64','vstmiahi.64','vstmials.64','vstmiage.64','vstmialt.64','vstmiagt.64','vstmiale.64',
-
-            'vstmdbeq','vstmdbne','vstmdbcs','vstmdbhs','vstmdbcc','vstmdblo','vstmdbmi','vstmdbpl','vstmdbvs','vstmdbvc','vstmdbhi','vstmdbls','vstmdbge','vstmdblt','vstmdbgt','vstmdble',
-            'vstmdbeq.32','vstmdbne.32','vstmdbcs.32','vstmdbhs.32','vstmdbcc.32','vstmdblo.32','vstmdbmi.32','vstmdbpl.32','vstmdbvs.32','vstmdbvc.32','vstmdbhi.32','vstmdbls.32','vstmdbge.32','vstmdblt.32','vstmdbgt.32','vstmdble.32',
-            'vstmdbeq.64','vstmdbne.64','vstmdbcs.64','vstmdbhs.64','vstmdbcc.64','vstmdblo.64','vstmdbmi.64','vstmdbpl.64','vstmdbvs.64','vstmdbvc.64','vstmdbhi.64','vstmdbls.64','vstmdbge.64','vstmdblt.64','vstmdbgt.64','vstmdble.64',
-
-            'vstreq','vstrne','vstrcs','vstrhs','vstrcc','vstrlo','vstrmi','vstrpl','vstrvs','vstrvc','vstrhi','vstrls','vstrge','vstrlt','vstrgt','vstrle',
-            'vstreq.32','vstrne.32','vstrcs.32','vstrhs.32','vstrcc.32','vstrlo.32','vstrmi.32','vstrpl.32','vstrvs.32','vstrvc.32','vstrhi.32','vstrls.32','vstrge.32','vstrlt.32','vstrgt.32','vstrle.32',
-            'vstreq.64','vstrne.64','vstrcs.64','vstrhs.64','vstrcc.64','vstrlo.64','vstrmi.64','vstrpl.64','vstrvs.64','vstrvc.64','vstrhi.64','vstrls.64','vstrge.64','vstrlt.64','vstrgt.64','vstrle.64',
-
-            'vpusheq','vpushne','vpushcs','vpushhs','vpushcc','vpushlo','vpushmi','vpushpl','vpushvs','vpushvc','vpushhi','vpushls','vpushge','vpushlt','vpushgt','vpushle',
-            'vpusheq.32','vpushne.32','vpushcs.32','vpushhs.32','vpushcc.32','vpushlo.32','vpushmi.32','vpushpl.32','vpushvs.32','vpushvc.32','vpushhi.32','vpushls.32','vpushge.32','vpushlt.32','vpushgt.32','vpushle.32',
-            'vpusheq.64','vpushne.64','vpushcs.64','vpushhs.64','vpushcc.64','vpushlo.64','vpushmi.64','vpushpl.64','vpushvs.64','vpushvc.64','vpushhi.64','vpushls.64','vpushge.64','vpushlt.64','vpushgt.64','vpushle.64'
-            ),
-        /* Conditional NEON SIMD Logical Instructions */
-        28 => array(
-            'vandeq','vandne','vandcs','vandhs','vandcc','vandlo','vandmi','vandpl','vandvs','vandvc','vandhi','vandls','vandge','vandlt','vandgt','vandle',
-            'vandeq.i8','vandne.i8','vandcs.i8','vandhs.i8','vandcc.i8','vandlo.i8','vandmi.i8','vandpl.i8','vandvs.i8','vandvc.i8','vandhi.i8','vandls.i8','vandge.i8','vandlt.i8','vandgt.i8','vandle.i8',
-            'vandeq.i16','vandne.i16','vandcs.i16','vandhs.i16','vandcc.i16','vandlo.i16','vandmi.i16','vandpl.i16','vandvs.i16','vandvc.i16','vandhi.i16','vandls.i16','vandge.i16','vandlt.i16','vandgt.i16','vandle.i16',
-            'vandeq.i32','vandne.i32','vandcs.i32','vandhs.i32','vandcc.i32','vandlo.i32','vandmi.i32','vandpl.i32','vandvs.i32','vandvc.i32','vandhi.i32','vandls.i32','vandge.i32','vandlt.i32','vandgt.i32','vandle.i32',
-            'vandeq.i64','vandne.i64','vandcs.i64','vandhs.i64','vandcc.i64','vandlo.i64','vandmi.i64','vandpl.i64','vandvs.i64','vandvc.i64','vandhi.i64','vandls.i64','vandge.i64','vandlt.i64','vandgt.i64','vandle.i64',
-            'vandeq.s8','vandne.s8','vandcs.s8','vandhs.s8','vandcc.s8','vandlo.s8','vandmi.s8','vandpl.s8','vandvs.s8','vandvc.s8','vandhi.s8','vandls.s8','vandge.s8','vandlt.s8','vandgt.s8','vandle.s8',
-            'vandeq.s16','vandne.s16','vandcs.s16','vandhs.s16','vandcc.s16','vandlo.s16','vandmi.s16','vandpl.s16','vandvs.s16','vandvc.s16','vandhi.s16','vandls.s16','vandge.s16','vandlt.s16','vandgt.s16','vandle.s16',
-            'vandeq.s32','vandne.s32','vandcs.s32','vandhs.s32','vandcc.s32','vandlo.s32','vandmi.s32','vandpl.s32','vandvs.s32','vandvc.s32','vandhi.s32','vandls.s32','vandge.s32','vandlt.s32','vandgt.s32','vandle.s32',
-            'vandeq.s64','vandne.s64','vandcs.s64','vandhs.s64','vandcc.s64','vandlo.s64','vandmi.s64','vandpl.s64','vandvs.s64','vandvc.s64','vandhi.s64','vandls.s64','vandge.s64','vandlt.s64','vandgt.s64','vandle.s64',
-            'vandeq.u8','vandne.u8','vandcs.u8','vandhs.u8','vandcc.u8','vandlo.u8','vandmi.u8','vandpl.u8','vandvs.u8','vandvc.u8','vandhi.u8','vandls.u8','vandge.u8','vandlt.u8','vandgt.u8','vandle.u8',
-            'vandeq.u16','vandne.u16','vandcs.u16','vandhs.u16','vandcc.u16','vandlo.u16','vandmi.u16','vandpl.u16','vandvs.u16','vandvc.u16','vandhi.u16','vandls.u16','vandge.u16','vandlt.u16','vandgt.u16','vandle.u16',
-            'vandeq.u32','vandne.u32','vandcs.u32','vandhs.u32','vandcc.u32','vandlo.u32','vandmi.u32','vandpl.u32','vandvs.u32','vandvc.u32','vandhi.u32','vandls.u32','vandge.u32','vandlt.u32','vandgt.u32','vandle.u32',
-            'vandeq.u64','vandne.u64','vandcs.u64','vandhs.u64','vandcc.u64','vandlo.u64','vandmi.u64','vandpl.u64','vandvs.u64','vandvc.u64','vandhi.u64','vandls.u64','vandge.u64','vandlt.u64','vandgt.u64','vandle.u64',
-            'vandeq.f32','vandne.f32','vandcs.f32','vandhs.f32','vandcc.f32','vandlo.f32','vandmi.f32','vandpl.f32','vandvs.f32','vandvc.f32','vandhi.f32','vandls.f32','vandge.f32','vandlt.f32','vandgt.f32','vandle.f32',
-            'vandeq.f64','vandne.f64','vandcs.f64','vandhs.f64','vandcc.f64','vandlo.f64','vandmi.f64','vandpl.f64','vandvs.f64','vandvc.f64','vandhi.f64','vandls.f64','vandge.f64','vandlt.f64','vandgt.f64','vandle.f64',
-
-            'vbiceq','vbicne','vbiccs','vbichs','vbiccc','vbiclo','vbicmi','vbicpl','vbicvs','vbicvc','vbichi','vbicls','vbicge','vbiclt','vbicgt','vbicle',
-            'vbiceq.i8','vbicne.i8','vbiccs.i8','vbichs.i8','vbiccc.i8','vbiclo.i8','vbicmi.i8','vbicpl.i8','vbicvs.i8','vbicvc.i8','vbichi.i8','vbicls.i8','vbicge.i8','vbiclt.i8','vbicgt.i8','vbicle.i8',
-            'vbiceq.i16','vbicne.i16','vbiccs.i16','vbichs.i16','vbiccc.i16','vbiclo.i16','vbicmi.i16','vbicpl.i16','vbicvs.i16','vbicvc.i16','vbichi.i16','vbicls.i16','vbicge.i16','vbiclt.i16','vbicgt.i16','vbicle.i16',
-            'vbiceq.i32','vbicne.i32','vbiccs.i32','vbichs.i32','vbiccc.i32','vbiclo.i32','vbicmi.i32','vbicpl.i32','vbicvs.i32','vbicvc.i32','vbichi.i32','vbicls.i32','vbicge.i32','vbiclt.i32','vbicgt.i32','vbicle.i32',
-            'vbiceq.i64','vbicne.i64','vbiccs.i64','vbichs.i64','vbiccc.i64','vbiclo.i64','vbicmi.i64','vbicpl.i64','vbicvs.i64','vbicvc.i64','vbichi.i64','vbicls.i64','vbicge.i64','vbiclt.i64','vbicgt.i64','vbicle.i64',
-            'vbiceq.s8','vbicne.s8','vbiccs.s8','vbichs.s8','vbiccc.s8','vbiclo.s8','vbicmi.s8','vbicpl.s8','vbicvs.s8','vbicvc.s8','vbichi.s8','vbicls.s8','vbicge.s8','vbiclt.s8','vbicgt.s8','vbicle.s8',
-            'vbiceq.s16','vbicne.s16','vbiccs.s16','vbichs.s16','vbiccc.s16','vbiclo.s16','vbicmi.s16','vbicpl.s16','vbicvs.s16','vbicvc.s16','vbichi.s16','vbicls.s16','vbicge.s16','vbiclt.s16','vbicgt.s16','vbicle.s16',
-            'vbiceq.s32','vbicne.s32','vbiccs.s32','vbichs.s32','vbiccc.s32','vbiclo.s32','vbicmi.s32','vbicpl.s32','vbicvs.s32','vbicvc.s32','vbichi.s32','vbicls.s32','vbicge.s32','vbiclt.s32','vbicgt.s32','vbicle.s32',
-            'vbiceq.s64','vbicne.s64','vbiccs.s64','vbichs.s64','vbiccc.s64','vbiclo.s64','vbicmi.s64','vbicpl.s64','vbicvs.s64','vbicvc.s64','vbichi.s64','vbicls.s64','vbicge.s64','vbiclt.s64','vbicgt.s64','vbicle.s64',
-            'vbiceq.u8','vbicne.u8','vbiccs.u8','vbichs.u8','vbiccc.u8','vbiclo.u8','vbicmi.u8','vbicpl.u8','vbicvs.u8','vbicvc.u8','vbichi.u8','vbicls.u8','vbicge.u8','vbiclt.u8','vbicgt.u8','vbicle.u8',
-            'vbiceq.u16','vbicne.u16','vbiccs.u16','vbichs.u16','vbiccc.u16','vbiclo.u16','vbicmi.u16','vbicpl.u16','vbicvs.u16','vbicvc.u16','vbichi.u16','vbicls.u16','vbicge.u16','vbiclt.u16','vbicgt.u16','vbicle.u16',
-            'vbiceq.u32','vbicne.u32','vbiccs.u32','vbichs.u32','vbiccc.u32','vbiclo.u32','vbicmi.u32','vbicpl.u32','vbicvs.u32','vbicvc.u32','vbichi.u32','vbicls.u32','vbicge.u32','vbiclt.u32','vbicgt.u32','vbicle.u32',
-            'vbiceq.u64','vbicne.u64','vbiccs.u64','vbichs.u64','vbiccc.u64','vbiclo.u64','vbicmi.u64','vbicpl.u64','vbicvs.u64','vbicvc.u64','vbichi.u64','vbicls.u64','vbicge.u64','vbiclt.u64','vbicgt.u64','vbicle.u64',
-            'vbiceq.f32','vbicne.f32','vbiccs.f32','vbichs.f32','vbiccc.f32','vbiclo.f32','vbicmi.f32','vbicpl.f32','vbicvs.f32','vbicvc.f32','vbichi.f32','vbicls.f32','vbicge.f32','vbiclt.f32','vbicgt.f32','vbicle.f32',
-            'vbiceq.f64','vbicne.f64','vbiccs.f64','vbichs.f64','vbiccc.f64','vbiclo.f64','vbicmi.f64','vbicpl.f64','vbicvs.f64','vbicvc.f64','vbichi.f64','vbicls.f64','vbicge.f64','vbiclt.f64','vbicgt.f64','vbicle.f64',
-
-            'vbifeq','vbifne','vbifcs','vbifhs','vbifcc','vbiflo','vbifmi','vbifpl','vbifvs','vbifvc','vbifhi','vbifls','vbifge','vbiflt','vbifgt','vbifle',
-            'vbifeq.i8','vbifne.i8','vbifcs.i8','vbifhs.i8','vbifcc.i8','vbiflo.i8','vbifmi.i8','vbifpl.i8','vbifvs.i8','vbifvc.i8','vbifhi.i8','vbifls.i8','vbifge.i8','vbiflt.i8','vbifgt.i8','vbifle.i8',
-            'vbifeq.i16','vbifne.i16','vbifcs.i16','vbifhs.i16','vbifcc.i16','vbiflo.i16','vbifmi.i16','vbifpl.i16','vbifvs.i16','vbifvc.i16','vbifhi.i16','vbifls.i16','vbifge.i16','vbiflt.i16','vbifgt.i16','vbifle.i16',
-            'vbifeq.i32','vbifne.i32','vbifcs.i32','vbifhs.i32','vbifcc.i32','vbiflo.i32','vbifmi.i32','vbifpl.i32','vbifvs.i32','vbifvc.i32','vbifhi.i32','vbifls.i32','vbifge.i32','vbiflt.i32','vbifgt.i32','vbifle.i32',
-            'vbifeq.i64','vbifne.i64','vbifcs.i64','vbifhs.i64','vbifcc.i64','vbiflo.i64','vbifmi.i64','vbifpl.i64','vbifvs.i64','vbifvc.i64','vbifhi.i64','vbifls.i64','vbifge.i64','vbiflt.i64','vbifgt.i64','vbifle.i64',
-            'vbifeq.s8','vbifne.s8','vbifcs.s8','vbifhs.s8','vbifcc.s8','vbiflo.s8','vbifmi.s8','vbifpl.s8','vbifvs.s8','vbifvc.s8','vbifhi.s8','vbifls.s8','vbifge.s8','vbiflt.s8','vbifgt.s8','vbifle.s8',
-            'vbifeq.s16','vbifne.s16','vbifcs.s16','vbifhs.s16','vbifcc.s16','vbiflo.s16','vbifmi.s16','vbifpl.s16','vbifvs.s16','vbifvc.s16','vbifhi.s16','vbifls.s16','vbifge.s16','vbiflt.s16','vbifgt.s16','vbifle.s16',
-            'vbifeq.s32','vbifne.s32','vbifcs.s32','vbifhs.s32','vbifcc.s32','vbiflo.s32','vbifmi.s32','vbifpl.s32','vbifvs.s32','vbifvc.s32','vbifhi.s32','vbifls.s32','vbifge.s32','vbiflt.s32','vbifgt.s32','vbifle.s32',
-            'vbifeq.s64','vbifne.s64','vbifcs.s64','vbifhs.s64','vbifcc.s64','vbiflo.s64','vbifmi.s64','vbifpl.s64','vbifvs.s64','vbifvc.s64','vbifhi.s64','vbifls.s64','vbifge.s64','vbiflt.s64','vbifgt.s64','vbifle.s64',
-            'vbifeq.u8','vbifne.u8','vbifcs.u8','vbifhs.u8','vbifcc.u8','vbiflo.u8','vbifmi.u8','vbifpl.u8','vbifvs.u8','vbifvc.u8','vbifhi.u8','vbifls.u8','vbifge.u8','vbiflt.u8','vbifgt.u8','vbifle.u8',
-            'vbifeq.u16','vbifne.u16','vbifcs.u16','vbifhs.u16','vbifcc.u16','vbiflo.u16','vbifmi.u16','vbifpl.u16','vbifvs.u16','vbifvc.u16','vbifhi.u16','vbifls.u16','vbifge.u16','vbiflt.u16','vbifgt.u16','vbifle.u16',
-            'vbifeq.u32','vbifne.u32','vbifcs.u32','vbifhs.u32','vbifcc.u32','vbiflo.u32','vbifmi.u32','vbifpl.u32','vbifvs.u32','vbifvc.u32','vbifhi.u32','vbifls.u32','vbifge.u32','vbiflt.u32','vbifgt.u32','vbifle.u32',
-            'vbifeq.u64','vbifne.u64','vbifcs.u64','vbifhs.u64','vbifcc.u64','vbiflo.u64','vbifmi.u64','vbifpl.u64','vbifvs.u64','vbifvc.u64','vbifhi.u64','vbifls.u64','vbifge.u64','vbiflt.u64','vbifgt.u64','vbifle.u64',
-            'vbifeq.f32','vbifne.f32','vbifcs.f32','vbifhs.f32','vbifcc.f32','vbiflo.f32','vbifmi.f32','vbifpl.f32','vbifvs.f32','vbifvc.f32','vbifhi.f32','vbifls.f32','vbifge.f32','vbiflt.f32','vbifgt.f32','vbifle.f32',
-            'vbifeq.f64','vbifne.f64','vbifcs.f64','vbifhs.f64','vbifcc.f64','vbiflo.f64','vbifmi.f64','vbifpl.f64','vbifvs.f64','vbifvc.f64','vbifhi.f64','vbifls.f64','vbifge.f64','vbiflt.f64','vbifgt.f64','vbifle.f64',
-
-            'vbiteq','vbitne','vbitcs','vbiths','vbitcc','vbitlo','vbitmi','vbitpl','vbitvs','vbitvc','vbithi','vbitls','vbitge','vbitlt','vbitgt','vbitle',
-            'vbiteq.i8','vbitne.i8','vbitcs.i8','vbiths.i8','vbitcc.i8','vbitlo.i8','vbitmi.i8','vbitpl.i8','vbitvs.i8','vbitvc.i8','vbithi.i8','vbitls.i8','vbitge.i8','vbitlt.i8','vbitgt.i8','vbitle.i8',
-            'vbiteq.i16','vbitne.i16','vbitcs.i16','vbiths.i16','vbitcc.i16','vbitlo.i16','vbitmi.i16','vbitpl.i16','vbitvs.i16','vbitvc.i16','vbithi.i16','vbitls.i16','vbitge.i16','vbitlt.i16','vbitgt.i16','vbitle.i16',
-            'vbiteq.i32','vbitne.i32','vbitcs.i32','vbiths.i32','vbitcc.i32','vbitlo.i32','vbitmi.i32','vbitpl.i32','vbitvs.i32','vbitvc.i32','vbithi.i32','vbitls.i32','vbitge.i32','vbitlt.i32','vbitgt.i32','vbitle.i32',
-            'vbiteq.i64','vbitne.i64','vbitcs.i64','vbiths.i64','vbitcc.i64','vbitlo.i64','vbitmi.i64','vbitpl.i64','vbitvs.i64','vbitvc.i64','vbithi.i64','vbitls.i64','vbitge.i64','vbitlt.i64','vbitgt.i64','vbitle.i64',
-            'vbiteq.s8','vbitne.s8','vbitcs.s8','vbiths.s8','vbitcc.s8','vbitlo.s8','vbitmi.s8','vbitpl.s8','vbitvs.s8','vbitvc.s8','vbithi.s8','vbitls.s8','vbitge.s8','vbitlt.s8','vbitgt.s8','vbitle.s8',
-            'vbiteq.s16','vbitne.s16','vbitcs.s16','vbiths.s16','vbitcc.s16','vbitlo.s16','vbitmi.s16','vbitpl.s16','vbitvs.s16','vbitvc.s16','vbithi.s16','vbitls.s16','vbitge.s16','vbitlt.s16','vbitgt.s16','vbitle.s16',
-            'vbiteq.s32','vbitne.s32','vbitcs.s32','vbiths.s32','vbitcc.s32','vbitlo.s32','vbitmi.s32','vbitpl.s32','vbitvs.s32','vbitvc.s32','vbithi.s32','vbitls.s32','vbitge.s32','vbitlt.s32','vbitgt.s32','vbitle.s32',
-            'vbiteq.s64','vbitne.s64','vbitcs.s64','vbiths.s64','vbitcc.s64','vbitlo.s64','vbitmi.s64','vbitpl.s64','vbitvs.s64','vbitvc.s64','vbithi.s64','vbitls.s64','vbitge.s64','vbitlt.s64','vbitgt.s64','vbitle.s64',
-            'vbiteq.u8','vbitne.u8','vbitcs.u8','vbiths.u8','vbitcc.u8','vbitlo.u8','vbitmi.u8','vbitpl.u8','vbitvs.u8','vbitvc.u8','vbithi.u8','vbitls.u8','vbitge.u8','vbitlt.u8','vbitgt.u8','vbitle.u8',
-            'vbiteq.u16','vbitne.u16','vbitcs.u16','vbiths.u16','vbitcc.u16','vbitlo.u16','vbitmi.u16','vbitpl.u16','vbitvs.u16','vbitvc.u16','vbithi.u16','vbitls.u16','vbitge.u16','vbitlt.u16','vbitgt.u16','vbitle.u16',
-            'vbiteq.u32','vbitne.u32','vbitcs.u32','vbiths.u32','vbitcc.u32','vbitlo.u32','vbitmi.u32','vbitpl.u32','vbitvs.u32','vbitvc.u32','vbithi.u32','vbitls.u32','vbitge.u32','vbitlt.u32','vbitgt.u32','vbitle.u32',
-            'vbiteq.u64','vbitne.u64','vbitcs.u64','vbiths.u64','vbitcc.u64','vbitlo.u64','vbitmi.u64','vbitpl.u64','vbitvs.u64','vbitvc.u64','vbithi.u64','vbitls.u64','vbitge.u64','vbitlt.u64','vbitgt.u64','vbitle.u64',
-            'vbiteq.f32','vbitne.f32','vbitcs.f32','vbiths.f32','vbitcc.f32','vbitlo.f32','vbitmi.f32','vbitpl.f32','vbitvs.f32','vbitvc.f32','vbithi.f32','vbitls.f32','vbitge.f32','vbitlt.f32','vbitgt.f32','vbitle.f32',
-            'vbiteq.f64','vbitne.f64','vbitcs.f64','vbiths.f64','vbitcc.f64','vbitlo.f64','vbitmi.f64','vbitpl.f64','vbitvs.f64','vbitvc.f64','vbithi.f64','vbitls.f64','vbitge.f64','vbitlt.f64','vbitgt.f64','vbitle.f64',
-
-            'vbsleq','vbslne','vbslcs','vbslhs','vbslcc','vbsllo','vbslmi','vbslpl','vbslvs','vbslvc','vbslhi','vbslls','vbslge','vbsllt','vbslgt','vbslle',
-            'vbsleq.i8','vbslne.i8','vbslcs.i8','vbslhs.i8','vbslcc.i8','vbsllo.i8','vbslmi.i8','vbslpl.i8','vbslvs.i8','vbslvc.i8','vbslhi.i8','vbslls.i8','vbslge.i8','vbsllt.i8','vbslgt.i8','vbslle.i8',
-            'vbsleq.i16','vbslne.i16','vbslcs.i16','vbslhs.i16','vbslcc.i16','vbsllo.i16','vbslmi.i16','vbslpl.i16','vbslvs.i16','vbslvc.i16','vbslhi.i16','vbslls.i16','vbslge.i16','vbsllt.i16','vbslgt.i16','vbslle.i16',
-            'vbsleq.i32','vbslne.i32','vbslcs.i32','vbslhs.i32','vbslcc.i32','vbsllo.i32','vbslmi.i32','vbslpl.i32','vbslvs.i32','vbslvc.i32','vbslhi.i32','vbslls.i32','vbslge.i32','vbsllt.i32','vbslgt.i32','vbslle.i32',
-            'vbsleq.i64','vbslne.i64','vbslcs.i64','vbslhs.i64','vbslcc.i64','vbsllo.i64','vbslmi.i64','vbslpl.i64','vbslvs.i64','vbslvc.i64','vbslhi.i64','vbslls.i64','vbslge.i64','vbsllt.i64','vbslgt.i64','vbslle.i64',
-            'vbsleq.s8','vbslne.s8','vbslcs.s8','vbslhs.s8','vbslcc.s8','vbsllo.s8','vbslmi.s8','vbslpl.s8','vbslvs.s8','vbslvc.s8','vbslhi.s8','vbslls.s8','vbslge.s8','vbsllt.s8','vbslgt.s8','vbslle.s8',
-            'vbsleq.s16','vbslne.s16','vbslcs.s16','vbslhs.s16','vbslcc.s16','vbsllo.s16','vbslmi.s16','vbslpl.s16','vbslvs.s16','vbslvc.s16','vbslhi.s16','vbslls.s16','vbslge.s16','vbsllt.s16','vbslgt.s16','vbslle.s16',
-            'vbsleq.s32','vbslne.s32','vbslcs.s32','vbslhs.s32','vbslcc.s32','vbsllo.s32','vbslmi.s32','vbslpl.s32','vbslvs.s32','vbslvc.s32','vbslhi.s32','vbslls.s32','vbslge.s32','vbsllt.s32','vbslgt.s32','vbslle.s32',
-            'vbsleq.s64','vbslne.s64','vbslcs.s64','vbslhs.s64','vbslcc.s64','vbsllo.s64','vbslmi.s64','vbslpl.s64','vbslvs.s64','vbslvc.s64','vbslhi.s64','vbslls.s64','vbslge.s64','vbsllt.s64','vbslgt.s64','vbslle.s64',
-            'vbsleq.u8','vbslne.u8','vbslcs.u8','vbslhs.u8','vbslcc.u8','vbsllo.u8','vbslmi.u8','vbslpl.u8','vbslvs.u8','vbslvc.u8','vbslhi.u8','vbslls.u8','vbslge.u8','vbsllt.u8','vbslgt.u8','vbslle.u8',
-            'vbsleq.u16','vbslne.u16','vbslcs.u16','vbslhs.u16','vbslcc.u16','vbsllo.u16','vbslmi.u16','vbslpl.u16','vbslvs.u16','vbslvc.u16','vbslhi.u16','vbslls.u16','vbslge.u16','vbsllt.u16','vbslgt.u16','vbslle.u16',
-            'vbsleq.u32','vbslne.u32','vbslcs.u32','vbslhs.u32','vbslcc.u32','vbsllo.u32','vbslmi.u32','vbslpl.u32','vbslvs.u32','vbslvc.u32','vbslhi.u32','vbslls.u32','vbslge.u32','vbsllt.u32','vbslgt.u32','vbslle.u32',
-            'vbsleq.u64','vbslne.u64','vbslcs.u64','vbslhs.u64','vbslcc.u64','vbsllo.u64','vbslmi.u64','vbslpl.u64','vbslvs.u64','vbslvc.u64','vbslhi.u64','vbslls.u64','vbslge.u64','vbsllt.u64','vbslgt.u64','vbslle.u64',
-            'vbsleq.f32','vbslne.f32','vbslcs.f32','vbslhs.f32','vbslcc.f32','vbsllo.f32','vbslmi.f32','vbslpl.f32','vbslvs.f32','vbslvc.f32','vbslhi.f32','vbslls.f32','vbslge.f32','vbsllt.f32','vbslgt.f32','vbslle.f32',
-            'vbsleq.f64','vbslne.f64','vbslcs.f64','vbslhs.f64','vbslcc.f64','vbsllo.f64','vbslmi.f64','vbslpl.f64','vbslvs.f64','vbslvc.f64','vbslhi.f64','vbslls.f64','vbslge.f64','vbsllt.f64','vbslgt.f64','vbslle.f64',
-
-            'veoreq','veorne','veorcs','veorhs','veorcc','veorlo','veormi','veorpl','veorvs','veorvc','veorhi','veorls','veorge','veorlt','veorgt','veorle',
-            'veoreq.i8','veorne.i8','veorcs.i8','veorhs.i8','veorcc.i8','veorlo.i8','veormi.i8','veorpl.i8','veorvs.i8','veorvc.i8','veorhi.i8','veorls.i8','veorge.i8','veorlt.i8','veorgt.i8','veorle.i8',
-            'veoreq.i16','veorne.i16','veorcs.i16','veorhs.i16','veorcc.i16','veorlo.i16','veormi.i16','veorpl.i16','veorvs.i16','veorvc.i16','veorhi.i16','veorls.i16','veorge.i16','veorlt.i16','veorgt.i16','veorle.i16',
-            'veoreq.i32','veorne.i32','veorcs.i32','veorhs.i32','veorcc.i32','veorlo.i32','veormi.i32','veorpl.i32','veorvs.i32','veorvc.i32','veorhi.i32','veorls.i32','veorge.i32','veorlt.i32','veorgt.i32','veorle.i32',
-            'veoreq.i64','veorne.i64','veorcs.i64','veorhs.i64','veorcc.i64','veorlo.i64','veormi.i64','veorpl.i64','veorvs.i64','veorvc.i64','veorhi.i64','veorls.i64','veorge.i64','veorlt.i64','veorgt.i64','veorle.i64',
-            'veoreq.s8','veorne.s8','veorcs.s8','veorhs.s8','veorcc.s8','veorlo.s8','veormi.s8','veorpl.s8','veorvs.s8','veorvc.s8','veorhi.s8','veorls.s8','veorge.s8','veorlt.s8','veorgt.s8','veorle.s8',
-            'veoreq.s16','veorne.s16','veorcs.s16','veorhs.s16','veorcc.s16','veorlo.s16','veormi.s16','veorpl.s16','veorvs.s16','veorvc.s16','veorhi.s16','veorls.s16','veorge.s16','veorlt.s16','veorgt.s16','veorle.s16',
-            'veoreq.s32','veorne.s32','veorcs.s32','veorhs.s32','veorcc.s32','veorlo.s32','veormi.s32','veorpl.s32','veorvs.s32','veorvc.s32','veorhi.s32','veorls.s32','veorge.s32','veorlt.s32','veorgt.s32','veorle.s32',
-            'veoreq.s64','veorne.s64','veorcs.s64','veorhs.s64','veorcc.s64','veorlo.s64','veormi.s64','veorpl.s64','veorvs.s64','veorvc.s64','veorhi.s64','veorls.s64','veorge.s64','veorlt.s64','veorgt.s64','veorle.s64',
-            'veoreq.u8','veorne.u8','veorcs.u8','veorhs.u8','veorcc.u8','veorlo.u8','veormi.u8','veorpl.u8','veorvs.u8','veorvc.u8','veorhi.u8','veorls.u8','veorge.u8','veorlt.u8','veorgt.u8','veorle.u8',
-            'veoreq.u16','veorne.u16','veorcs.u16','veorhs.u16','veorcc.u16','veorlo.u16','veormi.u16','veorpl.u16','veorvs.u16','veorvc.u16','veorhi.u16','veorls.u16','veorge.u16','veorlt.u16','veorgt.u16','veorle.u16',
-            'veoreq.u32','veorne.u32','veorcs.u32','veorhs.u32','veorcc.u32','veorlo.u32','veormi.u32','veorpl.u32','veorvs.u32','veorvc.u32','veorhi.u32','veorls.u32','veorge.u32','veorlt.u32','veorgt.u32','veorle.u32',
-            'veoreq.u64','veorne.u64','veorcs.u64','veorhs.u64','veorcc.u64','veorlo.u64','veormi.u64','veorpl.u64','veorvs.u64','veorvc.u64','veorhi.u64','veorls.u64','veorge.u64','veorlt.u64','veorgt.u64','veorle.u64',
-            'veoreq.f32','veorne.f32','veorcs.f32','veorhs.f32','veorcc.f32','veorlo.f32','veormi.f32','veorpl.f32','veorvs.f32','veorvc.f32','veorhi.f32','veorls.f32','veorge.f32','veorlt.f32','veorgt.f32','veorle.f32',
-            'veoreq.f64','veorne.f64','veorcs.f64','veorhs.f64','veorcc.f64','veorlo.f64','veormi.f64','veorpl.f64','veorvs.f64','veorvc.f64','veorhi.f64','veorls.f64','veorge.f64','veorlt.f64','veorgt.f64','veorle.f64',
-
-            'vmoveq','vmovne','vmovcs','vmovhs','vmovcc','vmovlo','vmovmi','vmovpl','vmovvs','vmovvc','vmovhi','vmovls','vmovge','vmovlt','vmovgt','vmovle',
-            'vmoveq.8','vmovne.8','vmovcs.8','vmovhs.8','vmovcc.8','vmovlo.8','vmovmi.8','vmovpl.8','vmovvs.8','vmovvc.8','vmovhi.8','vmovls.8','vmovge.8','vmovlt.8','vmovgt.8','vmovle.8',
-            'vmoveq.16','vmovne.16','vmovcs.16','vmovhs.16','vmovcc.16','vmovlo.16','vmovmi.16','vmovpl.16','vmovvs.16','vmovvc.16','vmovhi.16','vmovls.16','vmovge.16','vmovlt.16','vmovgt.16','vmovle.16',
-            'vmoveq.32','vmovne.32','vmovcs.32','vmovhs.32','vmovcc.32','vmovlo.32','vmovmi.32','vmovpl.32','vmovvs.32','vmovvc.32','vmovhi.32','vmovls.32','vmovge.32','vmovlt.32','vmovgt.32','vmovle.32',
-            'vmoveq.i8','vmovne.i8','vmovcs.i8','vmovhs.i8','vmovcc.i8','vmovlo.i8','vmovmi.i8','vmovpl.i8','vmovvs.i8','vmovvc.i8','vmovhi.i8','vmovls.i8','vmovge.i8','vmovlt.i8','vmovgt.i8','vmovle.i8',
-            'vmoveq.i16','vmovne.i16','vmovcs.i16','vmovhs.i16','vmovcc.i16','vmovlo.i16','vmovmi.i16','vmovpl.i16','vmovvs.i16','vmovvc.i16','vmovhi.i16','vmovls.i16','vmovge.i16','vmovlt.i16','vmovgt.i16','vmovle.i16',
-            'vmoveq.i32','vmovne.i32','vmovcs.i32','vmovhs.i32','vmovcc.i32','vmovlo.i32','vmovmi.i32','vmovpl.i32','vmovvs.i32','vmovvc.i32','vmovhi.i32','vmovls.i32','vmovge.i32','vmovlt.i32','vmovgt.i32','vmovle.i32',
-            'vmoveq.i64','vmovne.i64','vmovcs.i64','vmovhs.i64','vmovcc.i64','vmovlo.i64','vmovmi.i64','vmovpl.i64','vmovvs.i64','vmovvc.i64','vmovhi.i64','vmovls.i64','vmovge.i64','vmovlt.i64','vmovgt.i64','vmovle.i64',
-            'vmoveq.f32','vmovne.f32','vmovcs.f32','vmovhs.f32','vmovcc.f32','vmovlo.f32','vmovmi.f32','vmovpl.f32','vmovvs.f32','vmovvc.f32','vmovhi.f32','vmovls.f32','vmovge.f32','vmovlt.f32','vmovgt.f32','vmovle.f32',
-            'vmoveq.f64','vmovne.f64','vmovcs.f64','vmovhs.f64','vmovcc.f64','vmovlo.f64','vmovmi.f64','vmovpl.f64','vmovvs.f64','vmovvc.f64','vmovhi.f64','vmovls.f64','vmovge.f64','vmovlt.f64','vmovgt.f64','vmovle.f64',
-
-            'vmvneq','vmvnne','vmvncs','vmvnhs','vmvncc','vmvnlo','vmvnmi','vmvnpl','vmvnvs','vmvnvc','vmvnhi','vmvnls','vmvnge','vmvnlt','vmvngt','vmvnle',
-            'vmvneq.s8','vmvnne.s8','vmvncs.s8','vmvnhs.s8','vmvncc.s8','vmvnlo.s8','vmvnmi.s8','vmvnpl.s8','vmvnvs.s8','vmvnvc.s8','vmvnhi.s8','vmvnls.s8','vmvnge.s8','vmvnlt.s8','vmvngt.s8','vmvnle.s8',
-            'vmvneq.s16','vmvnne.s16','vmvncs.s16','vmvnhs.s16','vmvncc.s16','vmvnlo.s16','vmvnmi.s16','vmvnpl.s16','vmvnvs.s16','vmvnvc.s16','vmvnhi.s16','vmvnls.s16','vmvnge.s16','vmvnlt.s16','vmvngt.s16','vmvnle.s16',
-            'vmvneq.s32','vmvnne.s32','vmvncs.s32','vmvnhs.s32','vmvncc.s32','vmvnlo.s32','vmvnmi.s32','vmvnpl.s32','vmvnvs.s32','vmvnvc.s32','vmvnhi.s32','vmvnls.s32','vmvnge.s32','vmvnlt.s32','vmvngt.s32','vmvnle.s32',
-            'vmvneq.s64','vmvnne.s64','vmvncs.s64','vmvnhs.s64','vmvncc.s64','vmvnlo.s64','vmvnmi.s64','vmvnpl.s64','vmvnvs.s64','vmvnvc.s64','vmvnhi.s64','vmvnls.s64','vmvnge.s64','vmvnlt.s64','vmvngt.s64','vmvnle.s64',
-            'vmvneq.u8','vmvnne.u8','vmvncs.u8','vmvnhs.u8','vmvncc.u8','vmvnlo.u8','vmvnmi.u8','vmvnpl.u8','vmvnvs.u8','vmvnvc.u8','vmvnhi.u8','vmvnls.u8','vmvnge.u8','vmvnlt.u8','vmvngt.u8','vmvnle.u8',
-            'vmvneq.u16','vmvnne.u16','vmvncs.u16','vmvnhs.u16','vmvncc.u16','vmvnlo.u16','vmvnmi.u16','vmvnpl.u16','vmvnvs.u16','vmvnvc.u16','vmvnhi.u16','vmvnls.u16','vmvnge.u16','vmvnlt.u16','vmvngt.u16','vmvnle.u16',
-            'vmvneq.u32','vmvnne.u32','vmvncs.u32','vmvnhs.u32','vmvncc.u32','vmvnlo.u32','vmvnmi.u32','vmvnpl.u32','vmvnvs.u32','vmvnvc.u32','vmvnhi.u32','vmvnls.u32','vmvnge.u32','vmvnlt.u32','vmvngt.u32','vmvnle.u32',
-            'vmvneq.u64','vmvnne.u64','vmvncs.u64','vmvnhs.u64','vmvncc.u64','vmvnlo.u64','vmvnmi.u64','vmvnpl.u64','vmvnvs.u64','vmvnvc.u64','vmvnhi.u64','vmvnls.u64','vmvnge.u64','vmvnlt.u64','vmvngt.u64','vmvnle.u64',
-            'vmvneq.i8','vmvnne.i8','vmvncs.i8','vmvnhs.i8','vmvncc.i8','vmvnlo.i8','vmvnmi.i8','vmvnpl.i8','vmvnvs.i8','vmvnvc.i8','vmvnhi.i8','vmvnls.i8','vmvnge.i8','vmvnlt.i8','vmvngt.i8','vmvnle.i8',
-            'vmvneq.i16','vmvnne.i16','vmvncs.i16','vmvnhs.i16','vmvncc.i16','vmvnlo.i16','vmvnmi.i16','vmvnpl.i16','vmvnvs.i16','vmvnvc.i16','vmvnhi.i16','vmvnls.i16','vmvnge.i16','vmvnlt.i16','vmvngt.i16','vmvnle.i16',
-            'vmvneq.i32','vmvnne.i32','vmvncs.i32','vmvnhs.i32','vmvncc.i32','vmvnlo.i32','vmvnmi.i32','vmvnpl.i32','vmvnvs.i32','vmvnvc.i32','vmvnhi.i32','vmvnls.i32','vmvnge.i32','vmvnlt.i32','vmvngt.i32','vmvnle.i32',
-            'vmvneq.i64','vmvnne.i64','vmvncs.i64','vmvnhs.i64','vmvncc.i64','vmvnlo.i64','vmvnmi.i64','vmvnpl.i64','vmvnvs.i64','vmvnvc.i64','vmvnhi.i64','vmvnls.i64','vmvnge.i64','vmvnlt.i64','vmvngt.i64','vmvnle.i64',
-            'vmvneq.f32','vmvnne.f32','vmvncs.f32','vmvnhs.f32','vmvncc.f32','vmvnlo.f32','vmvnmi.f32','vmvnpl.f32','vmvnvs.f32','vmvnvc.f32','vmvnhi.f32','vmvnls.f32','vmvnge.f32','vmvnlt.f32','vmvngt.f32','vmvnle.f32',
-            'vmvneq.f64','vmvnne.f64','vmvncs.f64','vmvnhs.f64','vmvncc.f64','vmvnlo.f64','vmvnmi.f64','vmvnpl.f64','vmvnvs.f64','vmvnvc.f64','vmvnhi.f64','vmvnls.f64','vmvnge.f64','vmvnlt.f64','vmvngt.f64','vmvnle.f64',
-
-            'vorneq','vornne','vorncs','vornhs','vorncc','vornlo','vornmi','vornpl','vornvs','vornvc','vornhi','vornls','vornge','vornlt','vorngt','vornle',
-            'vorneq.s8','vornne.s8','vorncs.s8','vornhs.s8','vorncc.s8','vornlo.s8','vornmi.s8','vornpl.s8','vornvs.s8','vornvc.s8','vornhi.s8','vornls.s8','vornge.s8','vornlt.s8','vorngt.s8','vornle.s8',
-            'vorneq.s16','vornne.s16','vorncs.s16','vornhs.s16','vorncc.s16','vornlo.s16','vornmi.s16','vornpl.s16','vornvs.s16','vornvc.s16','vornhi.s16','vornls.s16','vornge.s16','vornlt.s16','vorngt.s16','vornle.s16',
-            'vorneq.s32','vornne.s32','vorncs.s32','vornhs.s32','vorncc.s32','vornlo.s32','vornmi.s32','vornpl.s32','vornvs.s32','vornvc.s32','vornhi.s32','vornls.s32','vornge.s32','vornlt.s32','vorngt.s32','vornle.s32',
-            'vorneq.s64','vornne.s64','vorncs.s64','vornhs.s64','vorncc.s64','vornlo.s64','vornmi.s64','vornpl.s64','vornvs.s64','vornvc.s64','vornhi.s64','vornls.s64','vornge.s64','vornlt.s64','vorngt.s64','vornle.s64',
-            'vorneq.u8','vornne.u8','vorncs.u8','vornhs.u8','vorncc.u8','vornlo.u8','vornmi.u8','vornpl.u8','vornvs.u8','vornvc.u8','vornhi.u8','vornls.u8','vornge.u8','vornlt.u8','vorngt.u8','vornle.u8',
-            'vorneq.u16','vornne.u16','vorncs.u16','vornhs.u16','vorncc.u16','vornlo.u16','vornmi.u16','vornpl.u16','vornvs.u16','vornvc.u16','vornhi.u16','vornls.u16','vornge.u16','vornlt.u16','vorngt.u16','vornle.u16',
-            'vorneq.u32','vornne.u32','vorncs.u32','vornhs.u32','vorncc.u32','vornlo.u32','vornmi.u32','vornpl.u32','vornvs.u32','vornvc.u32','vornhi.u32','vornls.u32','vornge.u32','vornlt.u32','vorngt.u32','vornle.u32',
-            'vorneq.u64','vornne.u64','vorncs.u64','vornhs.u64','vorncc.u64','vornlo.u64','vornmi.u64','vornpl.u64','vornvs.u64','vornvc.u64','vornhi.u64','vornls.u64','vornge.u64','vornlt.u64','vorngt.u64','vornle.u64',
-            'vorneq.i8','vornne.i8','vorncs.i8','vornhs.i8','vorncc.i8','vornlo.i8','vornmi.i8','vornpl.i8','vornvs.i8','vornvc.i8','vornhi.i8','vornls.i8','vornge.i8','vornlt.i8','vorngt.i8','vornle.i8',
-            'vorneq.i16','vornne.i16','vorncs.i16','vornhs.i16','vorncc.i16','vornlo.i16','vornmi.i16','vornpl.i16','vornvs.i16','vornvc.i16','vornhi.i16','vornls.i16','vornge.i16','vornlt.i16','vorngt.i16','vornle.i16',
-            'vorneq.i32','vornne.i32','vorncs.i32','vornhs.i32','vorncc.i32','vornlo.i32','vornmi.i32','vornpl.i32','vornvs.i32','vornvc.i32','vornhi.i32','vornls.i32','vornge.i32','vornlt.i32','vorngt.i32','vornle.i32',
-            'vorneq.i64','vornne.i64','vorncs.i64','vornhs.i64','vorncc.i64','vornlo.i64','vornmi.i64','vornpl.i64','vornvs.i64','vornvc.i64','vornhi.i64','vornls.i64','vornge.i64','vornlt.i64','vorngt.i64','vornle.i64',
-            'vorneq.f32','vornne.f32','vorncs.f32','vornhs.f32','vorncc.f32','vornlo.f32','vornmi.f32','vornpl.f32','vornvs.f32','vornvc.f32','vornhi.f32','vornls.f32','vornge.f32','vornlt.f32','vorngt.f32','vornle.f32',
-            'vorneq.f64','vornne.f64','vorncs.f64','vornhs.f64','vorncc.f64','vornlo.f64','vornmi.f64','vornpl.f64','vornvs.f64','vornvc.f64','vornhi.f64','vornls.f64','vornge.f64','vornlt.f64','vorngt.f64','vornle.f64',
-
-            'vorreq','vorrne','vorrcs','vorrhs','vorrcc','vorrlo','vorrmi','vorrpl','vorrvs','vorrvc','vorrhi','vorrls','vorrge','vorrlt','vorrgt','vorrle',
-            'vorreq.s8','vorrne.s8','vorrcs.s8','vorrhs.s8','vorrcc.s8','vorrlo.s8','vorrmi.s8','vorrpl.s8','vorrvs.s8','vorrvc.s8','vorrhi.s8','vorrls.s8','vorrge.s8','vorrlt.s8','vorrgt.s8','vorrle.s8',
-            'vorreq.s16','vorrne.s16','vorrcs.s16','vorrhs.s16','vorrcc.s16','vorrlo.s16','vorrmi.s16','vorrpl.s16','vorrvs.s16','vorrvc.s16','vorrhi.s16','vorrls.s16','vorrge.s16','vorrlt.s16','vorrgt.s16','vorrle.s16',
-            'vorreq.s32','vorrne.s32','vorrcs.s32','vorrhs.s32','vorrcc.s32','vorrlo.s32','vorrmi.s32','vorrpl.s32','vorrvs.s32','vorrvc.s32','vorrhi.s32','vorrls.s32','vorrge.s32','vorrlt.s32','vorrgt.s32','vorrle.s32',
-            'vorreq.s64','vorrne.s64','vorrcs.s64','vorrhs.s64','vorrcc.s64','vorrlo.s64','vorrmi.s64','vorrpl.s64','vorrvs.s64','vorrvc.s64','vorrhi.s64','vorrls.s64','vorrge.s64','vorrlt.s64','vorrgt.s64','vorrle.s64',
-            'vorreq.u8','vorrne.u8','vorrcs.u8','vorrhs.u8','vorrcc.u8','vorrlo.u8','vorrmi.u8','vorrpl.u8','vorrvs.u8','vorrvc.u8','vorrhi.u8','vorrls.u8','vorrge.u8','vorrlt.u8','vorrgt.u8','vorrle.u8',
-            'vorreq.u16','vorrne.u16','vorrcs.u16','vorrhs.u16','vorrcc.u16','vorrlo.u16','vorrmi.u16','vorrpl.u16','vorrvs.u16','vorrvc.u16','vorrhi.u16','vorrls.u16','vorrge.u16','vorrlt.u16','vorrgt.u16','vorrle.u16',
-            'vorreq.u32','vorrne.u32','vorrcs.u32','vorrhs.u32','vorrcc.u32','vorrlo.u32','vorrmi.u32','vorrpl.u32','vorrvs.u32','vorrvc.u32','vorrhi.u32','vorrls.u32','vorrge.u32','vorrlt.u32','vorrgt.u32','vorrle.u32',
-            'vorreq.u64','vorrne.u64','vorrcs.u64','vorrhs.u64','vorrcc.u64','vorrlo.u64','vorrmi.u64','vorrpl.u64','vorrvs.u64','vorrvc.u64','vorrhi.u64','vorrls.u64','vorrge.u64','vorrlt.u64','vorrgt.u64','vorrle.u64',
-            'vorreq.i8','vorrne.i8','vorrcs.i8','vorrhs.i8','vorrcc.i8','vorrlo.i8','vorrmi.i8','vorrpl.i8','vorrvs.i8','vorrvc.i8','vorrhi.i8','vorrls.i8','vorrge.i8','vorrlt.i8','vorrgt.i8','vorrle.i8',
-            'vorreq.i16','vorrne.i16','vorrcs.i16','vorrhs.i16','vorrcc.i16','vorrlo.i16','vorrmi.i16','vorrpl.i16','vorrvs.i16','vorrvc.i16','vorrhi.i16','vorrls.i16','vorrge.i16','vorrlt.i16','vorrgt.i16','vorrle.i16',
-            'vorreq.i32','vorrne.i32','vorrcs.i32','vorrhs.i32','vorrcc.i32','vorrlo.i32','vorrmi.i32','vorrpl.i32','vorrvs.i32','vorrvc.i32','vorrhi.i32','vorrls.i32','vorrge.i32','vorrlt.i32','vorrgt.i32','vorrle.i32',
-            'vorreq.i64','vorrne.i64','vorrcs.i64','vorrhs.i64','vorrcc.i64','vorrlo.i64','vorrmi.i64','vorrpl.i64','vorrvs.i64','vorrvc.i64','vorrhi.i64','vorrls.i64','vorrge.i64','vorrlt.i64','vorrgt.i64','vorrle.i64',
-            'vorreq.f32','vorrne.f32','vorrcs.f32','vorrhs.f32','vorrcc.f32','vorrlo.f32','vorrmi.f32','vorrpl.f32','vorrvs.f32','vorrvc.f32','vorrhi.f32','vorrls.f32','vorrge.f32','vorrlt.f32','vorrgt.f32','vorrle.f32',
-            'vorreq.f64','vorrne.f64','vorrcs.f64','vorrhs.f64','vorrcc.f64','vorrlo.f64','vorrmi.f64','vorrpl.f64','vorrvs.f64','vorrvc.f64','vorrhi.f64','vorrls.f64','vorrge.f64','vorrlt.f64','vorrgt.f64','vorrle.f64',
-
-            'vswpeq','vswpne','vswpcs','vswphs','vswpcc','vswplo','vswpmi','vswppl','vswpvs','vswpvc','vswphi','vswpls','vswpge','vswplt','vswpgt','vswple',
-            'vswpeq.s8','vswpne.s8','vswpcs.s8','vswphs.s8','vswpcc.s8','vswplo.s8','vswpmi.s8','vswppl.s8','vswpvs.s8','vswpvc.s8','vswphi.s8','vswpls.s8','vswpge.s8','vswplt.s8','vswpgt.s8','vswple.s8',
-            'vswpeq.s16','vswpne.s16','vswpcs.s16','vswphs.s16','vswpcc.s16','vswplo.s16','vswpmi.s16','vswppl.s16','vswpvs.s16','vswpvc.s16','vswphi.s16','vswpls.s16','vswpge.s16','vswplt.s16','vswpgt.s16','vswple.s16',
-            'vswpeq.s32','vswpne.s32','vswpcs.s32','vswphs.s32','vswpcc.s32','vswplo.s32','vswpmi.s32','vswppl.s32','vswpvs.s32','vswpvc.s32','vswphi.s32','vswpls.s32','vswpge.s32','vswplt.s32','vswpgt.s32','vswple.s32',
-            'vswpeq.s64','vswpne.s64','vswpcs.s64','vswphs.s64','vswpcc.s64','vswplo.s64','vswpmi.s64','vswppl.s64','vswpvs.s64','vswpvc.s64','vswphi.s64','vswpls.s64','vswpge.s64','vswplt.s64','vswpgt.s64','vswple.s64',
-            'vswpeq.u8','vswpne.u8','vswpcs.u8','vswphs.u8','vswpcc.u8','vswplo.u8','vswpmi.u8','vswppl.u8','vswpvs.u8','vswpvc.u8','vswphi.u8','vswpls.u8','vswpge.u8','vswplt.u8','vswpgt.u8','vswple.u8',
-            'vswpeq.u16','vswpne.u16','vswpcs.u16','vswphs.u16','vswpcc.u16','vswplo.u16','vswpmi.u16','vswppl.u16','vswpvs.u16','vswpvc.u16','vswphi.u16','vswpls.u16','vswpge.u16','vswplt.u16','vswpgt.u16','vswple.u16',
-            'vswpeq.u32','vswpne.u32','vswpcs.u32','vswphs.u32','vswpcc.u32','vswplo.u32','vswpmi.u32','vswppl.u32','vswpvs.u32','vswpvc.u32','vswphi.u32','vswpls.u32','vswpge.u32','vswplt.u32','vswpgt.u32','vswple.u32',
-            'vswpeq.u64','vswpne.u64','vswpcs.u64','vswphs.u64','vswpcc.u64','vswplo.u64','vswpmi.u64','vswppl.u64','vswpvs.u64','vswpvc.u64','vswphi.u64','vswpls.u64','vswpge.u64','vswplt.u64','vswpgt.u64','vswple.u64',
-            'vswpeq.i8','vswpne.i8','vswpcs.i8','vswphs.i8','vswpcc.i8','vswplo.i8','vswpmi.i8','vswppl.i8','vswpvs.i8','vswpvc.i8','vswphi.i8','vswpls.i8','vswpge.i8','vswplt.i8','vswpgt.i8','vswple.i8',
-            'vswpeq.i16','vswpne.i16','vswpcs.i16','vswphs.i16','vswpcc.i16','vswplo.i16','vswpmi.i16','vswppl.i16','vswpvs.i16','vswpvc.i16','vswphi.i16','vswpls.i16','vswpge.i16','vswplt.i16','vswpgt.i16','vswple.i16',
-            'vswpeq.i32','vswpne.i32','vswpcs.i32','vswphs.i32','vswpcc.i32','vswplo.i32','vswpmi.i32','vswppl.i32','vswpvs.i32','vswpvc.i32','vswphi.i32','vswpls.i32','vswpge.i32','vswplt.i32','vswpgt.i32','vswple.i32',
-            'vswpeq.i64','vswpne.i64','vswpcs.i64','vswphs.i64','vswpcc.i64','vswplo.i64','vswpmi.i64','vswppl.i64','vswpvs.i64','vswpvc.i64','vswphi.i64','vswpls.i64','vswpge.i64','vswplt.i64','vswpgt.i64','vswple.i64',
-            'vswpeq.f32','vswpne.f32','vswpcs.f32','vswphs.f32','vswpcc.f32','vswplo.f32','vswpmi.f32','vswppl.f32','vswpvs.f32','vswpvc.f32','vswphi.f32','vswpls.f32','vswpge.f32','vswplt.f32','vswpgt.f32','vswple.f32',
-            'vswpeq.f64','vswpne.f64','vswpcs.f64','vswphs.f64','vswpcc.f64','vswplo.f64','vswpmi.f64','vswppl.f64','vswpvs.f64','vswpvc.f64','vswphi.f64','vswpls.f64','vswpge.f64','vswplt.f64','vswpgt.f64','vswple.f64'
-            ),
-        /* Conditional NEON SIMD ARM Registers Interop Instructions */
-        29 => array(
-            'vmrseq','vmrsne','vmrscs','vmrshs','vmrscc','vmrslo','vmrsmi','vmrspl','vmrsvs','vmrsvc','vmrshi','vmrsls','vmrsge','vmrslt','vmrsgt','vmrsle',
-            'vmsreq','vmsrne','vmsrcs','vmsrhs','vmsrcc','vmsrlo','vmsrmi','vmsrpl','vmsrvs','vmsrvc','vmsrhi','vmsrls','vmsrge','vmsrlt','vmsrgt','vmsrle'
-            ),
-        /* Conditional NEON SIMD Bit/Byte-Level Instructions */
-        30 => array(
-            'vcnteq.8','vcntne.8','vcntcs.8','vcnths.8','vcntcc.8','vcntlo.8','vcntmi.8','vcntpl.8','vcntvs.8','vcntvc.8','vcnthi.8','vcntls.8','vcntge.8','vcntlt.8','vcntgt.8','vcntle.8',
-            'vdupeq.8','vdupne.8','vdupcs.8','vduphs.8','vdupcc.8','vduplo.8','vdupmi.8','vduppl.8','vdupvs.8','vdupvc.8','vduphi.8','vdupls.8','vdupge.8','vduplt.8','vdupgt.8','vduple.8',
-
-            'vdupeq.16','vdupne.16','vdupcs.16','vduphs.16','vdupcc.16','vduplo.16','vdupmi.16','vduppl.16','vdupvs.16','vdupvc.16','vduphi.16','vdupls.16','vdupge.16','vduplt.16','vdupgt.16','vduple.16',
-            'vdupeq.32','vdupne.32','vdupcs.32','vduphs.32','vdupcc.32','vduplo.32','vdupmi.32','vduppl.32','vdupvs.32','vdupvc.32','vduphi.32','vdupls.32','vdupge.32','vduplt.32','vdupgt.32','vduple.32',
-
-            'vexteq.8','vextne.8','vextcs.8','vexths.8','vextcc.8','vextlo.8','vextmi.8','vextpl.8','vextvs.8','vextvc.8','vexthi.8','vextls.8','vextge.8','vextlt.8','vextgt.8','vextle.8',
-            'vexteq.16','vextne.16','vextcs.16','vexths.16','vextcc.16','vextlo.16','vextmi.16','vextpl.16','vextvs.16','vextvc.16','vexthi.16','vextls.16','vextge.16','vextlt.16','vextgt.16','vextle.16',
-
-            'vexteq.32','vextne.32','vextcs.32','vexths.32','vextcc.32','vextlo.32','vextmi.32','vextpl.32','vextvs.32','vextvc.32','vexthi.32','vextls.32','vextge.32','vextlt.32','vextgt.32','vextle.32',
-            'vexteq.64','vextne.64','vextcs.64','vexths.64','vextcc.64','vextlo.64','vextmi.64','vextpl.64','vextvs.64','vextvc.64','vexthi.64','vextls.64','vextge.64','vextlt.64','vextgt.64','vextle.64',
-
-            'vrev16eq.8','vrev16ne.8','vrev16cs.8','vrev16hs.8','vrev16cc.8','vrev16lo.8','vrev16mi.8','vrev16pl.8','vrev16vs.8','vrev16vc.8','vrev16hi.8','vrev16ls.8','vrev16ge.8','vrev16lt.8','vrev16gt.8','vrev16le.8',
-            'vrev32eq.8','vrev32ne.8','vrev32cs.8','vrev32hs.8','vrev32cc.8','vrev32lo.8','vrev32mi.8','vrev32pl.8','vrev32vs.8','vrev32vc.8','vrev32hi.8','vrev32ls.8','vrev32ge.8','vrev32lt.8','vrev32gt.8','vrev32le.8',
-            'vrev32eq.16','vrev32ne.16','vrev32cs.16','vrev32hs.16','vrev32cc.16','vrev32lo.16','vrev32mi.16','vrev32pl.16','vrev32vs.16','vrev32vc.16','vrev32hi.16','vrev32ls.16','vrev32ge.16','vrev32lt.16','vrev32gt.16','vrev32le.16',
-            'vrev64eq.8','vrev64ne.8','vrev64cs.8','vrev64hs.8','vrev64cc.8','vrev64lo.8','vrev64mi.8','vrev64pl.8','vrev64vs.8','vrev64vc.8','vrev64hi.8','vrev64ls.8','vrev64ge.8','vrev64lt.8','vrev64gt.8','vrev64le.8',
-            'vrev64eq.16','vrev64ne.16','vrev64cs.16','vrev64hs.16','vrev64cc.16','vrev64lo.16','vrev64mi.16','vrev64pl.16','vrev64vs.16','vrev64vc.16','vrev64hi.16','vrev64ls.16','vrev64ge.16','vrev64lt.16','vrev64gt.16','vrev64le.16',
-            'vrev64eq.32','vrev64ne.32','vrev64cs.32','vrev64hs.32','vrev64cc.32','vrev64lo.32','vrev64mi.32','vrev64pl.32','vrev64vs.32','vrev64vc.32','vrev64hi.32','vrev64ls.32','vrev64ge.32','vrev64lt.32','vrev64gt.32','vrev64le.32',
-
-            'vslieq.8','vsline.8','vslics.8','vslihs.8','vslicc.8','vslilo.8','vslimi.8','vslipl.8','vslivs.8','vslivc.8','vslihi.8','vslils.8','vslige.8','vslilt.8','vsligt.8','vslile.8',
-            'vslieq.16','vsline.16','vslics.16','vslihs.16','vslicc.16','vslilo.16','vslimi.16','vslipl.16','vslivs.16','vslivc.16','vslihi.16','vslils.16','vslige.16','vslilt.16','vsligt.16','vslile.16',
-            'vslieq.32','vsline.32','vslics.32','vslihs.32','vslicc.32','vslilo.32','vslimi.32','vslipl.32','vslivs.32','vslivc.32','vslihi.32','vslils.32','vslige.32','vslilt.32','vsligt.32','vslile.32',
-            'vslieq.64','vsline.64','vslics.64','vslihs.64','vslicc.64','vslilo.64','vslimi.64','vslipl.64','vslivs.64','vslivc.64','vslihi.64','vslils.64','vslige.64','vslilt.64','vsligt.64','vslile.64',
-
-            'vsrieq.8','vsrine.8','vsrics.8','vsrihs.8','vsricc.8','vsrilo.8','vsrimi.8','vsripl.8','vsrivs.8','vsrivc.8','vsrihi.8','vsrils.8','vsrige.8','vsrilt.8','vsrigt.8','vsrile.8',
-            'vsrieq.16','vsrine.16','vsrics.16','vsrihs.16','vsricc.16','vsrilo.16','vsrimi.16','vsripl.16','vsrivs.16','vsrivc.16','vsrihi.16','vsrils.16','vsrige.16','vsrilt.16','vsrigt.16','vsrile.16',
-            'vsrieq.32','vsrine.32','vsrics.32','vsrihs.32','vsricc.32','vsrilo.32','vsrimi.32','vsripl.32','vsrivs.32','vsrivc.32','vsrihi.32','vsrils.32','vsrige.32','vsrilt.32','vsrigt.32','vsrile.32',
-            'vsrieq.64','vsrine.64','vsrics.64','vsrihs.64','vsricc.64','vsrilo.64','vsrimi.64','vsripl.64','vsrivs.64','vsrivc.64','vsrihi.64','vsrils.64','vsrige.64','vsrilt.64','vsrigt.64','vsrile.64',
-
-            'vtbleq.8','vtblne.8','vtblcs.8','vtblhs.8','vtblcc.8','vtbllo.8','vtblmi.8','vtblpl.8','vtblvs.8','vtblvc.8','vtblhi.8','vtblls.8','vtblge.8','vtbllt.8','vtblgt.8','vtblle.8',
-
-            'vtbxeq','vtbxne','vtbxcs','vtbxhs','vtbxcc','vtbxlo','vtbxmi','vtbxpl','vtbxvs','vtbxvc','vtbxhi','vtbxls','vtbxge','vtbxlt','vtbxgt','vtbxle',
-
-            'vtrneq.8','vtrnne.8','vtrncs.8','vtrnhs.8','vtrncc.8','vtrnlo.8','vtrnmi.8','vtrnpl.8','vtrnvs.8','vtrnvc.8','vtrnhi.8','vtrnls.8','vtrnge.8','vtrnlt.8','vtrngt.8','vtrnle.8',
-            'vtrneq.16','vtrnne.16','vtrncs.16','vtrnhs.16','vtrncc.16','vtrnlo.16','vtrnmi.16','vtrnpl.16','vtrnvs.16','vtrnvc.16','vtrnhi.16','vtrnls.16','vtrnge.16','vtrnlt.16','vtrngt.16','vtrnle.16',
-            'vtrneq.32','vtrnne.32','vtrncs.32','vtrnhs.32','vtrncc.32','vtrnlo.32','vtrnmi.32','vtrnpl.32','vtrnvs.32','vtrnvc.32','vtrnhi.32','vtrnls.32','vtrnge.32','vtrnlt.32','vtrngt.32','vtrnle.32',
-
-            'vtsteq.8','vtstne.8','vtstcs.8','vtsths.8','vtstcc.8','vtstlo.8','vtstmi.8','vtstpl.8','vtstvs.8','vtstvc.8','vtsthi.8','vtstls.8','vtstge.8','vtstlt.8','vtstgt.8','vtstle.8',
-            'vtsteq.16','vtstne.16','vtstcs.16','vtsths.16','vtstcc.16','vtstlo.16','vtstmi.16','vtstpl.16','vtstvs.16','vtstvc.16','vtsthi.16','vtstls.16','vtstge.16','vtstlt.16','vtstgt.16','vtstle.16',
-            'vtsteq.32','vtstne.32','vtstcs.32','vtsths.32','vtstcc.32','vtstlo.32','vtstmi.32','vtstpl.32','vtstvs.32','vtstvc.32','vtsthi.32','vtstls.32','vtstge.32','vtstlt.32','vtstgt.32','vtstle.32',
-
-            'vuzpeq.8','vuzpne.8','vuzpcs.8','vuzphs.8','vuzpcc.8','vuzplo.8','vuzpmi.8','vuzppl.8','vuzpvs.8','vuzpvc.8','vuzphi.8','vuzpls.8','vuzpge.8','vuzplt.8','vuzpgt.8','vuzple.8',
-            'vuzpeq.16','vuzpne.16','vuzpcs.16','vuzphs.16','vuzpcc.16','vuzplo.16','vuzpmi.16','vuzppl.16','vuzpvs.16','vuzpvc.16','vuzphi.16','vuzpls.16','vuzpge.16','vuzplt.16','vuzpgt.16','vuzple.16',
-            'vuzpeq.32','vuzpne.32','vuzpcs.32','vuzphs.32','vuzpcc.32','vuzplo.32','vuzpmi.32','vuzppl.32','vuzpvs.32','vuzpvc.32','vuzphi.32','vuzpls.32','vuzpge.32','vuzplt.32','vuzpgt.32','vuzple.32',
-
-            'vzipeq.8','vzipne.8','vzipcs.8','vziphs.8','vzipcc.8','vziplo.8','vzipmi.8','vzippl.8','vzipvs.8','vzipvc.8','vziphi.8','vzipls.8','vzipge.8','vziplt.8','vzipgt.8','vziple.8',
-            'vzipeq.16','vzipne.16','vzipcs.16','vziphs.16','vzipcc.16','vziplo.16','vzipmi.16','vzippl.16','vzipvs.16','vzipvc.16','vziphi.16','vzipls.16','vzipge.16','vziplt.16','vzipgt.16','vziple.16',
-            'vzipeq.32','vzipne.32','vzipcs.32','vziphs.32','vzipcc.32','vziplo.32','vzipmi.32','vzippl.32','vzipvs.32','vzipvc.32','vziphi.32','vzipls.32','vzipge.32','vziplt.32','vzipgt.32','vziple.32',
-
-            'vmulleq.p8','vmullne.p8','vmullcs.p8','vmullhs.p8','vmullcc.p8','vmulllo.p8','vmullmi.p8','vmullpl.p8','vmullvs.p8','vmullvc.p8','vmullhi.p8','vmullls.p8','vmullge.p8','vmulllt.p8','vmullgt.p8','vmullle.p8'
-            ),
-        /* Conditional NEON SIMD Universal Integer Instructions */
-        31 => array(
-            'vaddeq.i8','vaddne.i8','vaddcs.i8','vaddhs.i8','vaddcc.i8','vaddlo.i8','vaddmi.i8','vaddpl.i8','vaddvs.i8','vaddvc.i8','vaddhi.i8','vaddls.i8','vaddge.i8','vaddlt.i8','vaddgt.i8','vaddle.i8',
-            'vaddeq.i16','vaddne.i16','vaddcs.i16','vaddhs.i16','vaddcc.i16','vaddlo.i16','vaddmi.i16','vaddpl.i16','vaddvs.i16','vaddvc.i16','vaddhi.i16','vaddls.i16','vaddge.i16','vaddlt.i16','vaddgt.i16','vaddle.i16',
-            'vaddeq.i32','vaddne.i32','vaddcs.i32','vaddhs.i32','vaddcc.i32','vaddlo.i32','vaddmi.i32','vaddpl.i32','vaddvs.i32','vaddvc.i32','vaddhi.i32','vaddls.i32','vaddge.i32','vaddlt.i32','vaddgt.i32','vaddle.i32',
-            'vaddeq.i64','vaddne.i64','vaddcs.i64','vaddhs.i64','vaddcc.i64','vaddlo.i64','vaddmi.i64','vaddpl.i64','vaddvs.i64','vaddvc.i64','vaddhi.i64','vaddls.i64','vaddge.i64','vaddlt.i64','vaddgt.i64','vaddle.i64',
-
-            'vsubeq.i8','vsubne.i8','vsubcs.i8','vsubhs.i8','vsubcc.i8','vsublo.i8','vsubmi.i8','vsubpl.i8','vsubvs.i8','vsubvc.i8','vsubhi.i8','vsubls.i8','vsubge.i8','vsublt.i8','vsubgt.i8','vsuble.i8',
-            'vsubeq.i16','vsubne.i16','vsubcs.i16','vsubhs.i16','vsubcc.i16','vsublo.i16','vsubmi.i16','vsubpl.i16','vsubvs.i16','vsubvc.i16','vsubhi.i16','vsubls.i16','vsubge.i16','vsublt.i16','vsubgt.i16','vsuble.i16',
-            'vsubeq.i32','vsubne.i32','vsubcs.i32','vsubhs.i32','vsubcc.i32','vsublo.i32','vsubmi.i32','vsubpl.i32','vsubvs.i32','vsubvc.i32','vsubhi.i32','vsubls.i32','vsubge.i32','vsublt.i32','vsubgt.i32','vsuble.i32',
-            'vsubeq.i64','vsubne.i64','vsubcs.i64','vsubhs.i64','vsubcc.i64','vsublo.i64','vsubmi.i64','vsubpl.i64','vsubvs.i64','vsubvc.i64','vsubhi.i64','vsubls.i64','vsubge.i64','vsublt.i64','vsubgt.i64','vsuble.i64',
-
-            'vaddhneq.i16','vaddhnne.i16','vaddhncs.i16','vaddhnhs.i16','vaddhncc.i16','vaddhnlo.i16','vaddhnmi.i16','vaddhnpl.i16','vaddhnvs.i16','vaddhnvc.i16','vaddhnhi.i16','vaddhnls.i16','vaddhnge.i16','vaddhnlt.i16','vaddhngt.i16','vaddhnle.i16',
-            'vaddhneq.i32','vaddhnne.i32','vaddhncs.i32','vaddhnhs.i32','vaddhncc.i32','vaddhnlo.i32','vaddhnmi.i32','vaddhnpl.i32','vaddhnvs.i32','vaddhnvc.i32','vaddhnhi.i32','vaddhnls.i32','vaddhnge.i32','vaddhnlt.i32','vaddhngt.i32','vaddhnle.i32',
-            'vaddhneq.i64','vaddhnne.i64','vaddhncs.i64','vaddhnhs.i64','vaddhncc.i64','vaddhnlo.i64','vaddhnmi.i64','vaddhnpl.i64','vaddhnvs.i64','vaddhnvc.i64','vaddhnhi.i64','vaddhnls.i64','vaddhnge.i64','vaddhnlt.i64','vaddhngt.i64','vaddhnle.i64',
-
-            'vsubhneq.i16','vsubhnne.i16','vsubhncs.i16','vsubhnhs.i16','vsubhncc.i16','vsubhnlo.i16','vsubhnmi.i16','vsubhnpl.i16','vsubhnvs.i16','vsubhnvc.i16','vsubhnhi.i16','vsubhnls.i16','vsubhnge.i16','vsubhnlt.i16','vsubhngt.i16','vsubhnle.i16',
-            'vsubhneq.i32','vsubhnne.i32','vsubhncs.i32','vsubhnhs.i32','vsubhncc.i32','vsubhnlo.i32','vsubhnmi.i32','vsubhnpl.i32','vsubhnvs.i32','vsubhnvc.i32','vsubhnhi.i32','vsubhnls.i32','vsubhnge.i32','vsubhnlt.i32','vsubhngt.i32','vsubhnle.i32',
-            'vsubhneq.i64','vsubhnne.i64','vsubhncs.i64','vsubhnhs.i64','vsubhncc.i64','vsubhnlo.i64','vsubhnmi.i64','vsubhnpl.i64','vsubhnvs.i64','vsubhnvc.i64','vsubhnhi.i64','vsubhnls.i64','vsubhnge.i64','vsubhnlt.i64','vsubhngt.i64','vsubhnle.i64',
-
-            'vraddhneq.i16','vraddhnne.i16','vraddhncs.i16','vraddhnhs.i16','vraddhncc.i16','vraddhnlo.i16','vraddhnmi.i16','vraddhnpl.i16','vraddhnvs.i16','vraddhnvc.i16','vraddhnhi.i16','vraddhnls.i16','vraddhnge.i16','vraddhnlt.i16','vraddhngt.i16','vraddhnle.i16',
-            'vraddhneq.i32','vraddhnne.i32','vraddhncs.i32','vraddhnhs.i32','vraddhncc.i32','vraddhnlo.i32','vraddhnmi.i32','vraddhnpl.i32','vraddhnvs.i32','vraddhnvc.i32','vraddhnhi.i32','vraddhnls.i32','vraddhnge.i32','vraddhnlt.i32','vraddhngt.i32','vraddhnle.i32',
-            'vraddhneq.i64','vraddhnne.i64','vraddhncs.i64','vraddhnhs.i64','vraddhncc.i64','vraddhnlo.i64','vraddhnmi.i64','vraddhnpl.i64','vraddhnvs.i64','vraddhnvc.i64','vraddhnhi.i64','vraddhnls.i64','vraddhnge.i64','vraddhnlt.i64','vraddhngt.i64','vraddhnle.i64',
-
-            'vrsubhneq.i16','vrsubhnne.i16','vrsubhncs.i16','vrsubhnhs.i16','vrsubhncc.i16','vrsubhnlo.i16','vrsubhnmi.i16','vrsubhnpl.i16','vrsubhnvs.i16','vrsubhnvc.i16','vrsubhnhi.i16','vrsubhnls.i16','vrsubhnge.i16','vrsubhnlt.i16','vrsubhngt.i16','vrsubhnle.i16',
-            'vrsubhneq.i32','vrsubhnne.i32','vrsubhncs.i32','vrsubhnhs.i32','vrsubhncc.i32','vrsubhnlo.i32','vrsubhnmi.i32','vrsubhnpl.i32','vrsubhnvs.i32','vrsubhnvc.i32','vrsubhnhi.i32','vrsubhnls.i32','vrsubhnge.i32','vrsubhnlt.i32','vrsubhngt.i32','vrsubhnle.i32',
-            'vrsubhneq.i64','vrsubhnne.i64','vrsubhncs.i64','vrsubhnhs.i64','vrsubhncc.i64','vrsubhnlo.i64','vrsubhnmi.i64','vrsubhnpl.i64','vrsubhnvs.i64','vrsubhnvc.i64','vrsubhnhi.i64','vrsubhnls.i64','vrsubhnge.i64','vrsubhnlt.i64','vrsubhngt.i64','vrsubhnle.i64',
-
-            'vpaddeq.i8','vpaddne.i8','vpaddcs.i8','vpaddhs.i8','vpaddcc.i8','vpaddlo.i8','vpaddmi.i8','vpaddpl.i8','vpaddvs.i8','vpaddvc.i8','vpaddhi.i8','vpaddls.i8','vpaddge.i8','vpaddlt.i8','vpaddgt.i8','vpaddle.i8',
-            'vpaddeq.i16','vpaddne.i16','vpaddcs.i16','vpaddhs.i16','vpaddcc.i16','vpaddlo.i16','vpaddmi.i16','vpaddpl.i16','vpaddvs.i16','vpaddvc.i16','vpaddhi.i16','vpaddls.i16','vpaddge.i16','vpaddlt.i16','vpaddgt.i16','vpaddle.i16',
-            'vpaddeq.i32','vpaddne.i32','vpaddcs.i32','vpaddhs.i32','vpaddcc.i32','vpaddlo.i32','vpaddmi.i32','vpaddpl.i32','vpaddvs.i32','vpaddvc.i32','vpaddhi.i32','vpaddls.i32','vpaddge.i32','vpaddlt.i32','vpaddgt.i32','vpaddle.i32',
-
-            'vceqeq.i8','vceqne.i8','vceqcs.i8','vceqhs.i8','vceqcc.i8','vceqlo.i8','vceqmi.i8','vceqpl.i8','vceqvs.i8','vceqvc.i8','vceqhi.i8','vceqls.i8','vceqge.i8','vceqlt.i8','vceqgt.i8','vceqle.i8',
-            'vceqeq.i16','vceqne.i16','vceqcs.i16','vceqhs.i16','vceqcc.i16','vceqlo.i16','vceqmi.i16','vceqpl.i16','vceqvs.i16','vceqvc.i16','vceqhi.i16','vceqls.i16','vceqge.i16','vceqlt.i16','vceqgt.i16','vceqle.i16',
-            'vceqeq.i32','vceqne.i32','vceqcs.i32','vceqhs.i32','vceqcc.i32','vceqlo.i32','vceqmi.i32','vceqpl.i32','vceqvs.i32','vceqvc.i32','vceqhi.i32','vceqls.i32','vceqge.i32','vceqlt.i32','vceqgt.i32','vceqle.i32',
-
-            'vclzeq.i8','vclzne.i8','vclzcs.i8','vclzhs.i8','vclzcc.i8','vclzlo.i8','vclzmi.i8','vclzpl.i8','vclzvs.i8','vclzvc.i8','vclzhi.i8','vclzls.i8','vclzge.i8','vclzlt.i8','vclzgt.i8','vclzle.i8',
-            'vclzeq.i16','vclzne.i16','vclzcs.i16','vclzhs.i16','vclzcc.i16','vclzlo.i16','vclzmi.i16','vclzpl.i16','vclzvs.i16','vclzvc.i16','vclzhi.i16','vclzls.i16','vclzge.i16','vclzlt.i16','vclzgt.i16','vclzle.i16',
-            'vclzeq.i32','vclzne.i32','vclzcs.i32','vclzhs.i32','vclzcc.i32','vclzlo.i32','vclzmi.i32','vclzpl.i32','vclzvs.i32','vclzvc.i32','vclzhi.i32','vclzls.i32','vclzge.i32','vclzlt.i32','vclzgt.i32','vclzle.i32',
-
-            'vmovneq.i16','vmovnne.i16','vmovncs.i16','vmovnhs.i16','vmovncc.i16','vmovnlo.i16','vmovnmi.i16','vmovnpl.i16','vmovnvs.i16','vmovnvc.i16','vmovnhi.i16','vmovnls.i16','vmovnge.i16','vmovnlt.i16','vmovngt.i16','vmovnle.i16',
-            'vmovneq.i32','vmovnne.i32','vmovncs.i32','vmovnhs.i32','vmovncc.i32','vmovnlo.i32','vmovnmi.i32','vmovnpl.i32','vmovnvs.i32','vmovnvc.i32','vmovnhi.i32','vmovnls.i32','vmovnge.i32','vmovnlt.i32','vmovngt.i32','vmovnle.i32',
-            'vmovneq.i64','vmovnne.i64','vmovncs.i64','vmovnhs.i64','vmovncc.i64','vmovnlo.i64','vmovnmi.i64','vmovnpl.i64','vmovnvs.i64','vmovnvc.i64','vmovnhi.i64','vmovnls.i64','vmovnge.i64','vmovnlt.i64','vmovngt.i64','vmovnle.i64',
-
-            'vmlaeq.s8','vmlane.s8','vmlacs.s8','vmlahs.s8','vmlacc.s8','vmlalo.s8','vmlami.s8','vmlapl.s8','vmlavs.s8','vmlavc.s8','vmlahi.s8','vmlals.s8','vmlage.s8','vmlalt.s8','vmlagt.s8','vmlale.s8',
-            'vmlaeq.s16','vmlane.s16','vmlacs.s16','vmlahs.s16','vmlacc.s16','vmlalo.s16','vmlami.s16','vmlapl.s16','vmlavs.s16','vmlavc.s16','vmlahi.s16','vmlals.s16','vmlage.s16','vmlalt.s16','vmlagt.s16','vmlale.s16',
-            'vmlaeq.s32','vmlane.s32','vmlacs.s32','vmlahs.s32','vmlacc.s32','vmlalo.s32','vmlami.s32','vmlapl.s32','vmlavs.s32','vmlavc.s32','vmlahi.s32','vmlals.s32','vmlage.s32','vmlalt.s32','vmlagt.s32','vmlale.s32',
-            'vmlaeq.u8','vmlane.u8','vmlacs.u8','vmlahs.u8','vmlacc.u8','vmlalo.u8','vmlami.u8','vmlapl.u8','vmlavs.u8','vmlavc.u8','vmlahi.u8','vmlals.u8','vmlage.u8','vmlalt.u8','vmlagt.u8','vmlale.u8',
-            'vmlaeq.u16','vmlane.u16','vmlacs.u16','vmlahs.u16','vmlacc.u16','vmlalo.u16','vmlami.u16','vmlapl.u16','vmlavs.u16','vmlavc.u16','vmlahi.u16','vmlals.u16','vmlage.u16','vmlalt.u16','vmlagt.u16','vmlale.u16',
-            'vmlaeq.u32','vmlane.u32','vmlacs.u32','vmlahs.u32','vmlacc.u32','vmlalo.u32','vmlami.u32','vmlapl.u32','vmlavs.u32','vmlavc.u32','vmlahi.u32','vmlals.u32','vmlage.u32','vmlalt.u32','vmlagt.u32','vmlale.u32',
-            'vmlaeq.i8','vmlane.i8','vmlacs.i8','vmlahs.i8','vmlacc.i8','vmlalo.i8','vmlami.i8','vmlapl.i8','vmlavs.i8','vmlavc.i8','vmlahi.i8','vmlals.i8','vmlage.i8','vmlalt.i8','vmlagt.i8','vmlale.i8',
-            'vmlaeq.i16','vmlane.i16','vmlacs.i16','vmlahs.i16','vmlacc.i16','vmlalo.i16','vmlami.i16','vmlapl.i16','vmlavs.i16','vmlavc.i16','vmlahi.i16','vmlals.i16','vmlage.i16','vmlalt.i16','vmlagt.i16','vmlale.i16',
-            'vmlaeq.i32','vmlane.i32','vmlacs.i32','vmlahs.i32','vmlacc.i32','vmlalo.i32','vmlami.i32','vmlapl.i32','vmlavs.i32','vmlavc.i32','vmlahi.i32','vmlals.i32','vmlage.i32','vmlalt.i32','vmlagt.i32','vmlale.i32',
-
-            'vmlseq.s8','vmlsne.s8','vmlscs.s8','vmlshs.s8','vmlscc.s8','vmlslo.s8','vmlsmi.s8','vmlspl.s8','vmlsvs.s8','vmlsvc.s8','vmlshi.s8','vmlsls.s8','vmlsge.s8','vmlslt.s8','vmlsgt.s8','vmlsle.s8',
-            'vmlseq.s16','vmlsne.s16','vmlscs.s16','vmlshs.s16','vmlscc.s16','vmlslo.s16','vmlsmi.s16','vmlspl.s16','vmlsvs.s16','vmlsvc.s16','vmlshi.s16','vmlsls.s16','vmlsge.s16','vmlslt.s16','vmlsgt.s16','vmlsle.s16',
-            'vmlseq.s32','vmlsne.s32','vmlscs.s32','vmlshs.s32','vmlscc.s32','vmlslo.s32','vmlsmi.s32','vmlspl.s32','vmlsvs.s32','vmlsvc.s32','vmlshi.s32','vmlsls.s32','vmlsge.s32','vmlslt.s32','vmlsgt.s32','vmlsle.s32',
-            'vmlseq.u8','vmlsne.u8','vmlscs.u8','vmlshs.u8','vmlscc.u8','vmlslo.u8','vmlsmi.u8','vmlspl.u8','vmlsvs.u8','vmlsvc.u8','vmlshi.u8','vmlsls.u8','vmlsge.u8','vmlslt.u8','vmlsgt.u8','vmlsle.u8',
-            'vmlseq.u16','vmlsne.u16','vmlscs.u16','vmlshs.u16','vmlscc.u16','vmlslo.u16','vmlsmi.u16','vmlspl.u16','vmlsvs.u16','vmlsvc.u16','vmlshi.u16','vmlsls.u16','vmlsge.u16','vmlslt.u16','vmlsgt.u16','vmlsle.u16',
-            'vmlseq.u32','vmlsne.u32','vmlscs.u32','vmlshs.u32','vmlscc.u32','vmlslo.u32','vmlsmi.u32','vmlspl.u32','vmlsvs.u32','vmlsvc.u32','vmlshi.u32','vmlsls.u32','vmlsge.u32','vmlslt.u32','vmlsgt.u32','vmlsle.u32',
-            'vmlseq.i8','vmlsne.i8','vmlscs.i8','vmlshs.i8','vmlscc.i8','vmlslo.i8','vmlsmi.i8','vmlspl.i8','vmlsvs.i8','vmlsvc.i8','vmlshi.i8','vmlsls.i8','vmlsge.i8','vmlslt.i8','vmlsgt.i8','vmlsle.i8',
-            'vmlseq.i16','vmlsne.i16','vmlscs.i16','vmlshs.i16','vmlscc.i16','vmlslo.i16','vmlsmi.i16','vmlspl.i16','vmlsvs.i16','vmlsvc.i16','vmlshi.i16','vmlsls.i16','vmlsge.i16','vmlslt.i16','vmlsgt.i16','vmlsle.i16',
-            'vmlseq.i32','vmlsne.i32','vmlscs.i32','vmlshs.i32','vmlscc.i32','vmlslo.i32','vmlsmi.i32','vmlspl.i32','vmlsvs.i32','vmlsvc.i32','vmlshi.i32','vmlsls.i32','vmlsge.i32','vmlslt.i32','vmlsgt.i32','vmlsle.i32',
-
-            'vmuleq.s8','vmulne.s8','vmulcs.s8','vmulhs.s8','vmulcc.s8','vmullo.s8','vmulmi.s8','vmulpl.s8','vmulvs.s8','vmulvc.s8','vmulhi.s8','vmulls.s8','vmulge.s8','vmullt.s8','vmulgt.s8','vmulle.s8',
-            'vmuleq.s16','vmulne.s16','vmulcs.s16','vmulhs.s16','vmulcc.s16','vmullo.s16','vmulmi.s16','vmulpl.s16','vmulvs.s16','vmulvc.s16','vmulhi.s16','vmulls.s16','vmulge.s16','vmullt.s16','vmulgt.s16','vmulle.s16',
-            'vmuleq.s32','vmulne.s32','vmulcs.s32','vmulhs.s32','vmulcc.s32','vmullo.s32','vmulmi.s32','vmulpl.s32','vmulvs.s32','vmulvc.s32','vmulhi.s32','vmulls.s32','vmulge.s32','vmullt.s32','vmulgt.s32','vmulle.s32',
-            'vmuleq.u8','vmulne.u8','vmulcs.u8','vmulhs.u8','vmulcc.u8','vmullo.u8','vmulmi.u8','vmulpl.u8','vmulvs.u8','vmulvc.u8','vmulhi.u8','vmulls.u8','vmulge.u8','vmullt.u8','vmulgt.u8','vmulle.u8',
-            'vmuleq.u16','vmulne.u16','vmulcs.u16','vmulhs.u16','vmulcc.u16','vmullo.u16','vmulmi.u16','vmulpl.u16','vmulvs.u16','vmulvc.u16','vmulhi.u16','vmulls.u16','vmulge.u16','vmullt.u16','vmulgt.u16','vmulle.u16',
-            'vmuleq.u32','vmulne.u32','vmulcs.u32','vmulhs.u32','vmulcc.u32','vmullo.u32','vmulmi.u32','vmulpl.u32','vmulvs.u32','vmulvc.u32','vmulhi.u32','vmulls.u32','vmulge.u32','vmullt.u32','vmulgt.u32','vmulle.u32',
-            'vmuleq.i8','vmulne.i8','vmulcs.i8','vmulhs.i8','vmulcc.i8','vmullo.i8','vmulmi.i8','vmulpl.i8','vmulvs.i8','vmulvc.i8','vmulhi.i8','vmulls.i8','vmulge.i8','vmullt.i8','vmulgt.i8','vmulle.i8',
-            'vmuleq.i16','vmulne.i16','vmulcs.i16','vmulhs.i16','vmulcc.i16','vmullo.i16','vmulmi.i16','vmulpl.i16','vmulvs.i16','vmulvc.i16','vmulhi.i16','vmulls.i16','vmulge.i16','vmullt.i16','vmulgt.i16','vmulle.i16',
-            'vmuleq.i32','vmulne.i32','vmulcs.i32','vmulhs.i32','vmulcc.i32','vmullo.i32','vmulmi.i32','vmulpl.i32','vmulvs.i32','vmulvc.i32','vmulhi.i32','vmulls.i32','vmulge.i32','vmullt.i32','vmulgt.i32','vmulle.i32',
-            'vmuleq.p8','vmulne.p8','vmulcs.p8','vmulhs.p8','vmulcc.p8','vmullo.p8','vmulmi.p8','vmulpl.p8','vmulvs.p8','vmulvc.p8','vmulhi.p8','vmulls.p8','vmulge.p8','vmullt.p8','vmulgt.p8','vmulle.p8',
-
-            'vrshrneq.i16','vrshrnne.i16','vrshrncs.i16','vrshrnhs.i16','vrshrncc.i16','vrshrnlo.i16','vrshrnmi.i16','vrshrnpl.i16','vrshrnvs.i16','vrshrnvc.i16','vrshrnhi.i16','vrshrnls.i16','vrshrnge.i16','vrshrnlt.i16','vrshrngt.i16','vrshrnle.i16',
-            'vrshrneq.i32','vrshrnne.i32','vrshrncs.i32','vrshrnhs.i32','vrshrncc.i32','vrshrnlo.i32','vrshrnmi.i32','vrshrnpl.i32','vrshrnvs.i32','vrshrnvc.i32','vrshrnhi.i32','vrshrnls.i32','vrshrnge.i32','vrshrnlt.i32','vrshrngt.i32','vrshrnle.i32',
-            'vrshrneq.i64','vrshrnne.i64','vrshrncs.i64','vrshrnhs.i64','vrshrncc.i64','vrshrnlo.i64','vrshrnmi.i64','vrshrnpl.i64','vrshrnvs.i64','vrshrnvc.i64','vrshrnhi.i64','vrshrnls.i64','vrshrnge.i64','vrshrnlt.i64','vrshrngt.i64','vrshrnle.i64',
-
-            'vshrneq.i16','vshrnne.i16','vshrncs.i16','vshrnhs.i16','vshrncc.i16','vshrnlo.i16','vshrnmi.i16','vshrnpl.i16','vshrnvs.i16','vshrnvc.i16','vshrnhi.i16','vshrnls.i16','vshrnge.i16','vshrnlt.i16','vshrngt.i16','vshrnle.i16',
-            'vshrneq.i32','vshrnne.i32','vshrncs.i32','vshrnhs.i32','vshrncc.i32','vshrnlo.i32','vshrnmi.i32','vshrnpl.i32','vshrnvs.i32','vshrnvc.i32','vshrnhi.i32','vshrnls.i32','vshrnge.i32','vshrnlt.i32','vshrngt.i32','vshrnle.i32',
-            'vshrneq.i64','vshrnne.i64','vshrncs.i64','vshrnhs.i64','vshrncc.i64','vshrnlo.i64','vshrnmi.i64','vshrnpl.i64','vshrnvs.i64','vshrnvc.i64','vshrnhi.i64','vshrnls.i64','vshrnge.i64','vshrnlt.i64','vshrngt.i64','vshrnle.i64',
-
-            'vshleq.i8','vshlne.i8','vshlcs.i8','vshlhs.i8','vshlcc.i8','vshllo.i8','vshlmi.i8','vshlpl.i8','vshlvs.i8','vshlvc.i8','vshlhi.i8','vshlls.i8','vshlge.i8','vshllt.i8','vshlgt.i8','vshlle.i8',
-            'vshleq.i16','vshlne.i16','vshlcs.i16','vshlhs.i16','vshlcc.i16','vshllo.i16','vshlmi.i16','vshlpl.i16','vshlvs.i16','vshlvc.i16','vshlhi.i16','vshlls.i16','vshlge.i16','vshllt.i16','vshlgt.i16','vshlle.i16',
-            'vshleq.i32','vshlne.i32','vshlcs.i32','vshlhs.i32','vshlcc.i32','vshllo.i32','vshlmi.i32','vshlpl.i32','vshlvs.i32','vshlvc.i32','vshlhi.i32','vshlls.i32','vshlge.i32','vshllt.i32','vshlgt.i32','vshlle.i32',
-            'vshleq.i64','vshlne.i64','vshlcs.i64','vshlhs.i64','vshlcc.i64','vshllo.i64','vshlmi.i64','vshlpl.i64','vshlvs.i64','vshlvc.i64','vshlhi.i64','vshlls.i64','vshlge.i64','vshllt.i64','vshlgt.i64','vshlle.i64',
-
-            'vshlleq.i8','vshllne.i8','vshllcs.i8','vshllhs.i8','vshllcc.i8','vshlllo.i8','vshllmi.i8','vshllpl.i8','vshllvs.i8','vshllvc.i8','vshllhi.i8','vshllls.i8','vshllge.i8','vshlllt.i8','vshllgt.i8','vshllle.i8',
-            'vshlleq.i16','vshllne.i16','vshllcs.i16','vshllhs.i16','vshllcc.i16','vshlllo.i16','vshllmi.i16','vshllpl.i16','vshllvs.i16','vshllvc.i16','vshllhi.i16','vshllls.i16','vshllge.i16','vshlllt.i16','vshllgt.i16','vshllle.i16',
-            'vshlleq.i32','vshllne.i32','vshllcs.i32','vshllhs.i32','vshllcc.i32','vshlllo.i32','vshllmi.i32','vshllpl.i32','vshllvs.i32','vshllvc.i32','vshllhi.i32','vshllls.i32','vshllge.i32','vshlllt.i32','vshllgt.i32','vshllle.i32'
-            ),
-        /* Conditional NEON SIMD Signed Integer Instructions */
-        32 => array(
-            'vabaeq.s8','vabane.s8','vabacs.s8','vabahs.s8','vabacc.s8','vabalo.s8','vabami.s8','vabapl.s8','vabavs.s8','vabavc.s8','vabahi.s8','vabals.s8','vabage.s8','vabalt.s8','vabagt.s8','vabale.s8',
-            'vabaeq.s16','vabane.s16','vabacs.s16','vabahs.s16','vabacc.s16','vabalo.s16','vabami.s16','vabapl.s16','vabavs.s16','vabavc.s16','vabahi.s16','vabals.s16','vabage.s16','vabalt.s16','vabagt.s16','vabale.s16',
-            'vabaeq.s32','vabane.s32','vabacs.s32','vabahs.s32','vabacc.s32','vabalo.s32','vabami.s32','vabapl.s32','vabavs.s32','vabavc.s32','vabahi.s32','vabals.s32','vabage.s32','vabalt.s32','vabagt.s32','vabale.s32',
-
-            'vabaleq.s8','vabalne.s8','vabalcs.s8','vabalhs.s8','vabalcc.s8','vaballo.s8','vabalmi.s8','vabalpl.s8','vabalvs.s8','vabalvc.s8','vabalhi.s8','vaballs.s8','vabalge.s8','vaballt.s8','vabalgt.s8','vaballe.s8',
-            'vabaleq.s16','vabalne.s16','vabalcs.s16','vabalhs.s16','vabalcc.s16','vaballo.s16','vabalmi.s16','vabalpl.s16','vabalvs.s16','vabalvc.s16','vabalhi.s16','vaballs.s16','vabalge.s16','vaballt.s16','vabalgt.s16','vaballe.s16',
-            'vabaleq.s32','vabalne.s32','vabalcs.s32','vabalhs.s32','vabalcc.s32','vaballo.s32','vabalmi.s32','vabalpl.s32','vabalvs.s32','vabalvc.s32','vabalhi.s32','vaballs.s32','vabalge.s32','vaballt.s32','vabalgt.s32','vaballe.s32',
-
-            'vabdeq.s8','vabdne.s8','vabdcs.s8','vabdhs.s8','vabdcc.s8','vabdlo.s8','vabdmi.s8','vabdpl.s8','vabdvs.s8','vabdvc.s8','vabdhi.s8','vabdls.s8','vabdge.s8','vabdlt.s8','vabdgt.s8','vabdle.s8',
-            'vabdeq.s16','vabdne.s16','vabdcs.s16','vabdhs.s16','vabdcc.s16','vabdlo.s16','vabdmi.s16','vabdpl.s16','vabdvs.s16','vabdvc.s16','vabdhi.s16','vabdls.s16','vabdge.s16','vabdlt.s16','vabdgt.s16','vabdle.s16',
-            'vabdeq.s32','vabdne.s32','vabdcs.s32','vabdhs.s32','vabdcc.s32','vabdlo.s32','vabdmi.s32','vabdpl.s32','vabdvs.s32','vabdvc.s32','vabdhi.s32','vabdls.s32','vabdge.s32','vabdlt.s32','vabdgt.s32','vabdle.s32',
-
-            'vabseq.s8','vabsne.s8','vabscs.s8','vabshs.s8','vabscc.s8','vabslo.s8','vabsmi.s8','vabspl.s8','vabsvs.s8','vabsvc.s8','vabshi.s8','vabsls.s8','vabsge.s8','vabslt.s8','vabsgt.s8','vabsle.s8',
-            'vabseq.s16','vabsne.s16','vabscs.s16','vabshs.s16','vabscc.s16','vabslo.s16','vabsmi.s16','vabspl.s16','vabsvs.s16','vabsvc.s16','vabshi.s16','vabsls.s16','vabsge.s16','vabslt.s16','vabsgt.s16','vabsle.s16',
-            'vabseq.s32','vabsne.s32','vabscs.s32','vabshs.s32','vabscc.s32','vabslo.s32','vabsmi.s32','vabspl.s32','vabsvs.s32','vabsvc.s32','vabshi.s32','vabsls.s32','vabsge.s32','vabslt.s32','vabsgt.s32','vabsle.s32',
-
-            'vaddleq.s8','vaddlne.s8','vaddlcs.s8','vaddlhs.s8','vaddlcc.s8','vaddllo.s8','vaddlmi.s8','vaddlpl.s8','vaddlvs.s8','vaddlvc.s8','vaddlhi.s8','vaddlls.s8','vaddlge.s8','vaddllt.s8','vaddlgt.s8','vaddlle.s8',
-            'vaddleq.s16','vaddlne.s16','vaddlcs.s16','vaddlhs.s16','vaddlcc.s16','vaddllo.s16','vaddlmi.s16','vaddlpl.s16','vaddlvs.s16','vaddlvc.s16','vaddlhi.s16','vaddlls.s16','vaddlge.s16','vaddllt.s16','vaddlgt.s16','vaddlle.s16',
-            'vaddleq.s32','vaddlne.s32','vaddlcs.s32','vaddlhs.s32','vaddlcc.s32','vaddllo.s32','vaddlmi.s32','vaddlpl.s32','vaddlvs.s32','vaddlvc.s32','vaddlhi.s32','vaddlls.s32','vaddlge.s32','vaddllt.s32','vaddlgt.s32','vaddlle.s32',
-
-            'vcgeeq.s8','vcgene.s8','vcgecs.s8','vcgehs.s8','vcgecc.s8','vcgelo.s8','vcgemi.s8','vcgepl.s8','vcgevs.s8','vcgevc.s8','vcgehi.s8','vcgels.s8','vcgege.s8','vcgelt.s8','vcgegt.s8','vcgele.s8',
-            'vcgeeq.s16','vcgene.s16','vcgecs.s16','vcgehs.s16','vcgecc.s16','vcgelo.s16','vcgemi.s16','vcgepl.s16','vcgevs.s16','vcgevc.s16','vcgehi.s16','vcgels.s16','vcgege.s16','vcgelt.s16','vcgegt.s16','vcgele.s16',
-            'vcgeeq.s32','vcgene.s32','vcgecs.s32','vcgehs.s32','vcgecc.s32','vcgelo.s32','vcgemi.s32','vcgepl.s32','vcgevs.s32','vcgevc.s32','vcgehi.s32','vcgels.s32','vcgege.s32','vcgelt.s32','vcgegt.s32','vcgele.s32',
-
-            'vcleeq.s8','vclene.s8','vclecs.s8','vclehs.s8','vclecc.s8','vclelo.s8','vclemi.s8','vclepl.s8','vclevs.s8','vclevc.s8','vclehi.s8','vclels.s8','vclege.s8','vclelt.s8','vclegt.s8','vclele.s8',
-            'vcleeq.s16','vclene.s16','vclecs.s16','vclehs.s16','vclecc.s16','vclelo.s16','vclemi.s16','vclepl.s16','vclevs.s16','vclevc.s16','vclehi.s16','vclels.s16','vclege.s16','vclelt.s16','vclegt.s16','vclele.s16',
-            'vcleeq.s32','vclene.s32','vclecs.s32','vclehs.s32','vclecc.s32','vclelo.s32','vclemi.s32','vclepl.s32','vclevs.s32','vclevc.s32','vclehi.s32','vclels.s32','vclege.s32','vclelt.s32','vclegt.s32','vclele.s32',
-
-            'vcgteq.s8','vcgtne.s8','vcgtcs.s8','vcgths.s8','vcgtcc.s8','vcgtlo.s8','vcgtmi.s8','vcgtpl.s8','vcgtvs.s8','vcgtvc.s8','vcgthi.s8','vcgtls.s8','vcgtge.s8','vcgtlt.s8','vcgtgt.s8','vcgtle.s8',
-            'vcgteq.s16','vcgtne.s16','vcgtcs.s16','vcgths.s16','vcgtcc.s16','vcgtlo.s16','vcgtmi.s16','vcgtpl.s16','vcgtvs.s16','vcgtvc.s16','vcgthi.s16','vcgtls.s16','vcgtge.s16','vcgtlt.s16','vcgtgt.s16','vcgtle.s16',
-            'vcgteq.s32','vcgtne.s32','vcgtcs.s32','vcgths.s32','vcgtcc.s32','vcgtlo.s32','vcgtmi.s32','vcgtpl.s32','vcgtvs.s32','vcgtvc.s32','vcgthi.s32','vcgtls.s32','vcgtge.s32','vcgtlt.s32','vcgtgt.s32','vcgtle.s32',
-
-            'vclteq.s8','vcltne.s8','vcltcs.s8','vclths.s8','vcltcc.s8','vcltlo.s8','vcltmi.s8','vcltpl.s8','vcltvs.s8','vcltvc.s8','vclthi.s8','vcltls.s8','vcltge.s8','vcltlt.s8','vcltgt.s8','vcltle.s8',
-            'vclteq.s16','vcltne.s16','vcltcs.s16','vclths.s16','vcltcc.s16','vcltlo.s16','vcltmi.s16','vcltpl.s16','vcltvs.s16','vcltvc.s16','vclthi.s16','vcltls.s16','vcltge.s16','vcltlt.s16','vcltgt.s16','vcltle.s16',
-            'vclteq.s32','vcltne.s32','vcltcs.s32','vclths.s32','vcltcc.s32','vcltlo.s32','vcltmi.s32','vcltpl.s32','vcltvs.s32','vcltvc.s32','vclthi.s32','vcltls.s32','vcltge.s32','vcltlt.s32','vcltgt.s32','vcltle.s32',
-
-            'vclseq.s8','vclsne.s8','vclscs.s8','vclshs.s8','vclscc.s8','vclslo.s8','vclsmi.s8','vclspl.s8','vclsvs.s8','vclsvc.s8','vclshi.s8','vclsls.s8','vclsge.s8','vclslt.s8','vclsgt.s8','vclsle.s8',
-            'vclseq.s16','vclsne.s16','vclscs.s16','vclshs.s16','vclscc.s16','vclslo.s16','vclsmi.s16','vclspl.s16','vclsvs.s16','vclsvc.s16','vclshi.s16','vclsls.s16','vclsge.s16','vclslt.s16','vclsgt.s16','vclsle.s16',
-            'vclseq.s32','vclsne.s32','vclscs.s32','vclshs.s32','vclscc.s32','vclslo.s32','vclsmi.s32','vclspl.s32','vclsvs.s32','vclsvc.s32','vclshi.s32','vclsls.s32','vclsge.s32','vclslt.s32','vclsgt.s32','vclsle.s32',
-
-            'vaddweq.s8','vaddwne.s8','vaddwcs.s8','vaddwhs.s8','vaddwcc.s8','vaddwlo.s8','vaddwmi.s8','vaddwpl.s8','vaddwvs.s8','vaddwvc.s8','vaddwhi.s8','vaddwls.s8','vaddwge.s8','vaddwlt.s8','vaddwgt.s8','vaddwle.s8',
-            'vaddweq.s16','vaddwne.s16','vaddwcs.s16','vaddwhs.s16','vaddwcc.s16','vaddwlo.s16','vaddwmi.s16','vaddwpl.s16','vaddwvs.s16','vaddwvc.s16','vaddwhi.s16','vaddwls.s16','vaddwge.s16','vaddwlt.s16','vaddwgt.s16','vaddwle.s16',
-            'vaddweq.s32','vaddwne.s32','vaddwcs.s32','vaddwhs.s32','vaddwcc.s32','vaddwlo.s32','vaddwmi.s32','vaddwpl.s32','vaddwvs.s32','vaddwvc.s32','vaddwhi.s32','vaddwls.s32','vaddwge.s32','vaddwlt.s32','vaddwgt.s32','vaddwle.s32',
-
-            'vhaddeq.s8','vhaddne.s8','vhaddcs.s8','vhaddhs.s8','vhaddcc.s8','vhaddlo.s8','vhaddmi.s8','vhaddpl.s8','vhaddvs.s8','vhaddvc.s8','vhaddhi.s8','vhaddls.s8','vhaddge.s8','vhaddlt.s8','vhaddgt.s8','vhaddle.s8',
-            'vhaddeq.s16','vhaddne.s16','vhaddcs.s16','vhaddhs.s16','vhaddcc.s16','vhaddlo.s16','vhaddmi.s16','vhaddpl.s16','vhaddvs.s16','vhaddvc.s16','vhaddhi.s16','vhaddls.s16','vhaddge.s16','vhaddlt.s16','vhaddgt.s16','vhaddle.s16',
-            'vhaddeq.s32','vhaddne.s32','vhaddcs.s32','vhaddhs.s32','vhaddcc.s32','vhaddlo.s32','vhaddmi.s32','vhaddpl.s32','vhaddvs.s32','vhaddvc.s32','vhaddhi.s32','vhaddls.s32','vhaddge.s32','vhaddlt.s32','vhaddgt.s32','vhaddle.s32',
-
-            'vhsubeq.s8','vhsubne.s8','vhsubcs.s8','vhsubhs.s8','vhsubcc.s8','vhsublo.s8','vhsubmi.s8','vhsubpl.s8','vhsubvs.s8','vhsubvc.s8','vhsubhi.s8','vhsubls.s8','vhsubge.s8','vhsublt.s8','vhsubgt.s8','vhsuble.s8',
-            'vhsubeq.s16','vhsubne.s16','vhsubcs.s16','vhsubhs.s16','vhsubcc.s16','vhsublo.s16','vhsubmi.s16','vhsubpl.s16','vhsubvs.s16','vhsubvc.s16','vhsubhi.s16','vhsubls.s16','vhsubge.s16','vhsublt.s16','vhsubgt.s16','vhsuble.s16',
-            'vhsubeq.s32','vhsubne.s32','vhsubcs.s32','vhsubhs.s32','vhsubcc.s32','vhsublo.s32','vhsubmi.s32','vhsubpl.s32','vhsubvs.s32','vhsubvc.s32','vhsubhi.s32','vhsubls.s32','vhsubge.s32','vhsublt.s32','vhsubgt.s32','vhsuble.s32',
-
-            'vmaxeq.s8','vmaxne.s8','vmaxcs.s8','vmaxhs.s8','vmaxcc.s8','vmaxlo.s8','vmaxmi.s8','vmaxpl.s8','vmaxvs.s8','vmaxvc.s8','vmaxhi.s8','vmaxls.s8','vmaxge.s8','vmaxlt.s8','vmaxgt.s8','vmaxle.s8',
-            'vmaxeq.s16','vmaxne.s16','vmaxcs.s16','vmaxhs.s16','vmaxcc.s16','vmaxlo.s16','vmaxmi.s16','vmaxpl.s16','vmaxvs.s16','vmaxvc.s16','vmaxhi.s16','vmaxls.s16','vmaxge.s16','vmaxlt.s16','vmaxgt.s16','vmaxle.s16',
-            'vmaxeq.s32','vmaxne.s32','vmaxcs.s32','vmaxhs.s32','vmaxcc.s32','vmaxlo.s32','vmaxmi.s32','vmaxpl.s32','vmaxvs.s32','vmaxvc.s32','vmaxhi.s32','vmaxls.s32','vmaxge.s32','vmaxlt.s32','vmaxgt.s32','vmaxle.s32',
-
-            'vmineq.s8','vminne.s8','vmincs.s8','vminhs.s8','vmincc.s8','vminlo.s8','vminmi.s8','vminpl.s8','vminvs.s8','vminvc.s8','vminhi.s8','vminls.s8','vminge.s8','vminlt.s8','vmingt.s8','vminle.s8',
-            'vmineq.s16','vminne.s16','vmincs.s16','vminhs.s16','vmincc.s16','vminlo.s16','vminmi.s16','vminpl.s16','vminvs.s16','vminvc.s16','vminhi.s16','vminls.s16','vminge.s16','vminlt.s16','vmingt.s16','vminle.s16',
-            'vmineq.s32','vminne.s32','vmincs.s32','vminhs.s32','vmincc.s32','vminlo.s32','vminmi.s32','vminpl.s32','vminvs.s32','vminvc.s32','vminhi.s32','vminls.s32','vminge.s32','vminlt.s32','vmingt.s32','vminle.s32',
-
-            'vmlaleq.s8','vmlalne.s8','vmlalcs.s8','vmlalhs.s8','vmlalcc.s8','vmlallo.s8','vmlalmi.s8','vmlalpl.s8','vmlalvs.s8','vmlalvc.s8','vmlalhi.s8','vmlalls.s8','vmlalge.s8','vmlallt.s8','vmlalgt.s8','vmlalle.s8',
-            'vmlaleq.s16','vmlalne.s16','vmlalcs.s16','vmlalhs.s16','vmlalcc.s16','vmlallo.s16','vmlalmi.s16','vmlalpl.s16','vmlalvs.s16','vmlalvc.s16','vmlalhi.s16','vmlalls.s16','vmlalge.s16','vmlallt.s16','vmlalgt.s16','vmlalle.s16',
-            'vmlaleq.s32','vmlalne.s32','vmlalcs.s32','vmlalhs.s32','vmlalcc.s32','vmlallo.s32','vmlalmi.s32','vmlalpl.s32','vmlalvs.s32','vmlalvc.s32','vmlalhi.s32','vmlalls.s32','vmlalge.s32','vmlallt.s32','vmlalgt.s32','vmlalle.s32',
-
-            'vmlsleq.s8','vmlslne.s8','vmlslcs.s8','vmlslhs.s8','vmlslcc.s8','vmlsllo.s8','vmlslmi.s8','vmlslpl.s8','vmlslvs.s8','vmlslvc.s8','vmlslhi.s8','vmlslls.s8','vmlslge.s8','vmlsllt.s8','vmlslgt.s8','vmlslle.s8',
-            'vmlsleq.s16','vmlslne.s16','vmlslcs.s16','vmlslhs.s16','vmlslcc.s16','vmlsllo.s16','vmlslmi.s16','vmlslpl.s16','vmlslvs.s16','vmlslvc.s16','vmlslhi.s16','vmlslls.s16','vmlslge.s16','vmlsllt.s16','vmlslgt.s16','vmlslle.s16',
-            'vmlsleq.s32','vmlslne.s32','vmlslcs.s32','vmlslhs.s32','vmlslcc.s32','vmlsllo.s32','vmlslmi.s32','vmlslpl.s32','vmlslvs.s32','vmlslvc.s32','vmlslhi.s32','vmlslls.s32','vmlslge.s32','vmlsllt.s32','vmlslgt.s32','vmlslle.s32',
-
-            'vnegeq.s8','vnegne.s8','vnegcs.s8','vneghs.s8','vnegcc.s8','vneglo.s8','vnegmi.s8','vnegpl.s8','vnegvs.s8','vnegvc.s8','vneghi.s8','vnegls.s8','vnegge.s8','vneglt.s8','vneggt.s8','vnegle.s8',
-            'vnegeq.s16','vnegne.s16','vnegcs.s16','vneghs.s16','vnegcc.s16','vneglo.s16','vnegmi.s16','vnegpl.s16','vnegvs.s16','vnegvc.s16','vneghi.s16','vnegls.s16','vnegge.s16','vneglt.s16','vneggt.s16','vnegle.s16',
-            'vnegeq.s32','vnegne.s32','vnegcs.s32','vneghs.s32','vnegcc.s32','vneglo.s32','vnegmi.s32','vnegpl.s32','vnegvs.s32','vnegvc.s32','vneghi.s32','vnegls.s32','vnegge.s32','vneglt.s32','vneggt.s32','vnegle.s32',
-
-            'vpadaleq.s8','vpadalne.s8','vpadalcs.s8','vpadalhs.s8','vpadalcc.s8','vpadallo.s8','vpadalmi.s8','vpadalpl.s8','vpadalvs.s8','vpadalvc.s8','vpadalhi.s8','vpadalls.s8','vpadalge.s8','vpadallt.s8','vpadalgt.s8','vpadalle.s8',
-            'vpadaleq.s16','vpadalne.s16','vpadalcs.s16','vpadalhs.s16','vpadalcc.s16','vpadallo.s16','vpadalmi.s16','vpadalpl.s16','vpadalvs.s16','vpadalvc.s16','vpadalhi.s16','vpadalls.s16','vpadalge.s16','vpadallt.s16','vpadalgt.s16','vpadalle.s16',
-            'vpadaleq.s32','vpadalne.s32','vpadalcs.s32','vpadalhs.s32','vpadalcc.s32','vpadallo.s32','vpadalmi.s32','vpadalpl.s32','vpadalvs.s32','vpadalvc.s32','vpadalhi.s32','vpadalls.s32','vpadalge.s32','vpadallt.s32','vpadalgt.s32','vpadalle.s32',
-
-            'vmovleq.s8','vmovlne.s8','vmovlcs.s8','vmovlhs.s8','vmovlcc.s8','vmovllo.s8','vmovlmi.s8','vmovlpl.s8','vmovlvs.s8','vmovlvc.s8','vmovlhi.s8','vmovlls.s8','vmovlge.s8','vmovllt.s8','vmovlgt.s8','vmovlle.s8',
-            'vmovleq.s16','vmovlne.s16','vmovlcs.s16','vmovlhs.s16','vmovlcc.s16','vmovllo.s16','vmovlmi.s16','vmovlpl.s16','vmovlvs.s16','vmovlvc.s16','vmovlhi.s16','vmovlls.s16','vmovlge.s16','vmovllt.s16','vmovlgt.s16','vmovlle.s16',
-            'vmovleq.s32','vmovlne.s32','vmovlcs.s32','vmovlhs.s32','vmovlcc.s32','vmovllo.s32','vmovlmi.s32','vmovlpl.s32','vmovlvs.s32','vmovlvc.s32','vmovlhi.s32','vmovlls.s32','vmovlge.s32','vmovllt.s32','vmovlgt.s32','vmovlle.s32',
-
-            'vmulleq.s8','vmullne.s8','vmullcs.s8','vmullhs.s8','vmullcc.s8','vmulllo.s8','vmullmi.s8','vmullpl.s8','vmullvs.s8','vmullvc.s8','vmullhi.s8','vmullls.s8','vmullge.s8','vmulllt.s8','vmullgt.s8','vmullle.s8',
-            'vmulleq.s16','vmullne.s16','vmullcs.s16','vmullhs.s16','vmullcc.s16','vmulllo.s16','vmullmi.s16','vmullpl.s16','vmullvs.s16','vmullvc.s16','vmullhi.s16','vmullls.s16','vmullge.s16','vmulllt.s16','vmullgt.s16','vmullle.s16',
-            'vmulleq.s32','vmullne.s32','vmullcs.s32','vmullhs.s32','vmullcc.s32','vmulllo.s32','vmullmi.s32','vmullpl.s32','vmullvs.s32','vmullvc.s32','vmullhi.s32','vmullls.s32','vmullge.s32','vmulllt.s32','vmullgt.s32','vmullle.s32',
-
-            'vpaddleq.s8','vpaddlne.s8','vpaddlcs.s8','vpaddlhs.s8','vpaddlcc.s8','vpaddllo.s8','vpaddlmi.s8','vpaddlpl.s8','vpaddlvs.s8','vpaddlvc.s8','vpaddlhi.s8','vpaddlls.s8','vpaddlge.s8','vpaddllt.s8','vpaddlgt.s8','vpaddlle.s8',
-            'vpaddleq.s16','vpaddlne.s16','vpaddlcs.s16','vpaddlhs.s16','vpaddlcc.s16','vpaddllo.s16','vpaddlmi.s16','vpaddlpl.s16','vpaddlvs.s16','vpaddlvc.s16','vpaddlhi.s16','vpaddlls.s16','vpaddlge.s16','vpaddllt.s16','vpaddlgt.s16','vpaddlle.s16',
-            'vpaddleq.s32','vpaddlne.s32','vpaddlcs.s32','vpaddlhs.s32','vpaddlcc.s32','vpaddllo.s32','vpaddlmi.s32','vpaddlpl.s32','vpaddlvs.s32','vpaddlvc.s32','vpaddlhi.s32','vpaddlls.s32','vpaddlge.s32','vpaddllt.s32','vpaddlgt.s32','vpaddlle.s32',
-
-            'vpmaxeq.s8','vpmaxne.s8','vpmaxcs.s8','vpmaxhs.s8','vpmaxcc.s8','vpmaxlo.s8','vpmaxmi.s8','vpmaxpl.s8','vpmaxvs.s8','vpmaxvc.s8','vpmaxhi.s8','vpmaxls.s8','vpmaxge.s8','vpmaxlt.s8','vpmaxgt.s8','vpmaxle.s8',
-            'vpmaxeq.s16','vpmaxne.s16','vpmaxcs.s16','vpmaxhs.s16','vpmaxcc.s16','vpmaxlo.s16','vpmaxmi.s16','vpmaxpl.s16','vpmaxvs.s16','vpmaxvc.s16','vpmaxhi.s16','vpmaxls.s16','vpmaxge.s16','vpmaxlt.s16','vpmaxgt.s16','vpmaxle.s16',
-            'vpmaxeq.s32','vpmaxne.s32','vpmaxcs.s32','vpmaxhs.s32','vpmaxcc.s32','vpmaxlo.s32','vpmaxmi.s32','vpmaxpl.s32','vpmaxvs.s32','vpmaxvc.s32','vpmaxhi.s32','vpmaxls.s32','vpmaxge.s32','vpmaxlt.s32','vpmaxgt.s32','vpmaxle.s32',
-
-            'vpmineq.s8','vpminne.s8','vpmincs.s8','vpminhs.s8','vpmincc.s8','vpminlo.s8','vpminmi.s8','vpminpl.s8','vpminvs.s8','vpminvc.s8','vpminhi.s8','vpminls.s8','vpminge.s8','vpminlt.s8','vpmingt.s8','vpminle.s8',
-            'vpmineq.s16','vpminne.s16','vpmincs.s16','vpminhs.s16','vpmincc.s16','vpminlo.s16','vpminmi.s16','vpminpl.s16','vpminvs.s16','vpminvc.s16','vpminhi.s16','vpminls.s16','vpminge.s16','vpminlt.s16','vpmingt.s16','vpminle.s16',
-            'vpmineq.s32','vpminne.s32','vpmincs.s32','vpminhs.s32','vpmincc.s32','vpminlo.s32','vpminmi.s32','vpminpl.s32','vpminvs.s32','vpminvc.s32','vpminhi.s32','vpminls.s32','vpminge.s32','vpminlt.s32','vpmingt.s32','vpminle.s32',
-
-            'vqabseq.s8','vqabsne.s8','vqabscs.s8','vqabshs.s8','vqabscc.s8','vqabslo.s8','vqabsmi.s8','vqabspl.s8','vqabsvs.s8','vqabsvc.s8','vqabshi.s8','vqabsls.s8','vqabsge.s8','vqabslt.s8','vqabsgt.s8','vqabsle.s8',
-            'vqabseq.s16','vqabsne.s16','vqabscs.s16','vqabshs.s16','vqabscc.s16','vqabslo.s16','vqabsmi.s16','vqabspl.s16','vqabsvs.s16','vqabsvc.s16','vqabshi.s16','vqabsls.s16','vqabsge.s16','vqabslt.s16','vqabsgt.s16','vqabsle.s16',
-            'vqabseq.s32','vqabsne.s32','vqabscs.s32','vqabshs.s32','vqabscc.s32','vqabslo.s32','vqabsmi.s32','vqabspl.s32','vqabsvs.s32','vqabsvc.s32','vqabshi.s32','vqabsls.s32','vqabsge.s32','vqabslt.s32','vqabsgt.s32','vqabsle.s32',
-
-            'vqaddeq.s8','vqaddne.s8','vqaddcs.s8','vqaddhs.s8','vqaddcc.s8','vqaddlo.s8','vqaddmi.s8','vqaddpl.s8','vqaddvs.s8','vqaddvc.s8','vqaddhi.s8','vqaddls.s8','vqaddge.s8','vqaddlt.s8','vqaddgt.s8','vqaddle.s8',
-            'vqaddeq.s16','vqaddne.s16','vqaddcs.s16','vqaddhs.s16','vqaddcc.s16','vqaddlo.s16','vqaddmi.s16','vqaddpl.s16','vqaddvs.s16','vqaddvc.s16','vqaddhi.s16','vqaddls.s16','vqaddge.s16','vqaddlt.s16','vqaddgt.s16','vqaddle.s16',
-            'vqaddeq.s32','vqaddne.s32','vqaddcs.s32','vqaddhs.s32','vqaddcc.s32','vqaddlo.s32','vqaddmi.s32','vqaddpl.s32','vqaddvs.s32','vqaddvc.s32','vqaddhi.s32','vqaddls.s32','vqaddge.s32','vqaddlt.s32','vqaddgt.s32','vqaddle.s32',
-            'vqaddeq.s64','vqaddne.s64','vqaddcs.s64','vqaddhs.s64','vqaddcc.s64','vqaddlo.s64','vqaddmi.s64','vqaddpl.s64','vqaddvs.s64','vqaddvc.s64','vqaddhi.s64','vqaddls.s64','vqaddge.s64','vqaddlt.s64','vqaddgt.s64','vqaddle.s64',
-
-            'vqdmlaleq.s16','vqdmlalne.s16','vqdmlalcs.s16','vqdmlalhs.s16','vqdmlalcc.s16','vqdmlallo.s16','vqdmlalmi.s16','vqdmlalpl.s16','vqdmlalvs.s16','vqdmlalvc.s16','vqdmlalhi.s16','vqdmlalls.s16','vqdmlalge.s16','vqdmlallt.s16','vqdmlalgt.s16','vqdmlalle.s16',
-            'vqdmlaleq.s32','vqdmlalne.s32','vqdmlalcs.s32','vqdmlalhs.s32','vqdmlalcc.s32','vqdmlallo.s32','vqdmlalmi.s32','vqdmlalpl.s32','vqdmlalvs.s32','vqdmlalvc.s32','vqdmlalhi.s32','vqdmlalls.s32','vqdmlalge.s32','vqdmlallt.s32','vqdmlalgt.s32','vqdmlalle.s32',
-
-            'vqdmlsleq.s16','vqdmlslne.s16','vqdmlslcs.s16','vqdmlslhs.s16','vqdmlslcc.s16','vqdmlsllo.s16','vqdmlslmi.s16','vqdmlslpl.s16','vqdmlslvs.s16','vqdmlslvc.s16','vqdmlslhi.s16','vqdmlslls.s16','vqdmlslge.s16','vqdmlsllt.s16','vqdmlslgt.s16','vqdmlslle.s16',
-            'vqdmlsleq.s32','vqdmlslne.s32','vqdmlslcs.s32','vqdmlslhs.s32','vqdmlslcc.s32','vqdmlsllo.s32','vqdmlslmi.s32','vqdmlslpl.s32','vqdmlslvs.s32','vqdmlslvc.s32','vqdmlslhi.s32','vqdmlslls.s32','vqdmlslge.s32','vqdmlsllt.s32','vqdmlslgt.s32','vqdmlslle.s32',
-
-            'vqdmulheq.s16','vqdmulhne.s16','vqdmulhcs.s16','vqdmulhhs.s16','vqdmulhcc.s16','vqdmulhlo.s16','vqdmulhmi.s16','vqdmulhpl.s16','vqdmulhvs.s16','vqdmulhvc.s16','vqdmulhhi.s16','vqdmulhls.s16','vqdmulhge.s16','vqdmulhlt.s16','vqdmulhgt.s16','vqdmulhle.s16',
-            'vqdmulheq.s32','vqdmulhne.s32','vqdmulhcs.s32','vqdmulhhs.s32','vqdmulhcc.s32','vqdmulhlo.s32','vqdmulhmi.s32','vqdmulhpl.s32','vqdmulhvs.s32','vqdmulhvc.s32','vqdmulhhi.s32','vqdmulhls.s32','vqdmulhge.s32','vqdmulhlt.s32','vqdmulhgt.s32','vqdmulhle.s32',
-
-            'vqdmulleq.s16','vqdmullne.s16','vqdmullcs.s16','vqdmullhs.s16','vqdmullcc.s16','vqdmulllo.s16','vqdmullmi.s16','vqdmullpl.s16','vqdmullvs.s16','vqdmullvc.s16','vqdmullhi.s16','vqdmullls.s16','vqdmullge.s16','vqdmulllt.s16','vqdmullgt.s16','vqdmullle.s16',
-            'vqdmulleq.s32','vqdmullne.s32','vqdmullcs.s32','vqdmullhs.s32','vqdmullcc.s32','vqdmulllo.s32','vqdmullmi.s32','vqdmullpl.s32','vqdmullvs.s32','vqdmullvc.s32','vqdmullhi.s32','vqdmullls.s32','vqdmullge.s32','vqdmulllt.s32','vqdmullgt.s32','vqdmullle.s32',
-
-            'vqmovneq.s16','vqmovnne.s16','vqmovncs.s16','vqmovnhs.s16','vqmovncc.s16','vqmovnlo.s16','vqmovnmi.s16','vqmovnpl.s16','vqmovnvs.s16','vqmovnvc.s16','vqmovnhi.s16','vqmovnls.s16','vqmovnge.s16','vqmovnlt.s16','vqmovngt.s16','vqmovnle.s16',
-            'vqmovneq.s32','vqmovnne.s32','vqmovncs.s32','vqmovnhs.s32','vqmovncc.s32','vqmovnlo.s32','vqmovnmi.s32','vqmovnpl.s32','vqmovnvs.s32','vqmovnvc.s32','vqmovnhi.s32','vqmovnls.s32','vqmovnge.s32','vqmovnlt.s32','vqmovngt.s32','vqmovnle.s32',
-            'vqmovneq.s64','vqmovnne.s64','vqmovncs.s64','vqmovnhs.s64','vqmovncc.s64','vqmovnlo.s64','vqmovnmi.s64','vqmovnpl.s64','vqmovnvs.s64','vqmovnvc.s64','vqmovnhi.s64','vqmovnls.s64','vqmovnge.s64','vqmovnlt.s64','vqmovngt.s64','vqmovnle.s64',
-
-            'vqmovuneq.s16','vqmovunne.s16','vqmovuncs.s16','vqmovunhs.s16','vqmovuncc.s16','vqmovunlo.s16','vqmovunmi.s16','vqmovunpl.s16','vqmovunvs.s16','vqmovunvc.s16','vqmovunhi.s16','vqmovunls.s16','vqmovunge.s16','vqmovunlt.s16','vqmovungt.s16','vqmovunle.s16',
-            'vqmovuneq.s32','vqmovunne.s32','vqmovuncs.s32','vqmovunhs.s32','vqmovuncc.s32','vqmovunlo.s32','vqmovunmi.s32','vqmovunpl.s32','vqmovunvs.s32','vqmovunvc.s32','vqmovunhi.s32','vqmovunls.s32','vqmovunge.s32','vqmovunlt.s32','vqmovungt.s32','vqmovunle.s32',
-            'vqmovuneq.s64','vqmovunne.s64','vqmovuncs.s64','vqmovunhs.s64','vqmovuncc.s64','vqmovunlo.s64','vqmovunmi.s64','vqmovunpl.s64','vqmovunvs.s64','vqmovunvc.s64','vqmovunhi.s64','vqmovunls.s64','vqmovunge.s64','vqmovunlt.s64','vqmovungt.s64','vqmovunle.s64',
-
-            'vqnegeq.s8','vqnegne.s8','vqnegcs.s8','vqneghs.s8','vqnegcc.s8','vqneglo.s8','vqnegmi.s8','vqnegpl.s8','vqnegvs.s8','vqnegvc.s8','vqneghi.s8','vqnegls.s8','vqnegge.s8','vqneglt.s8','vqneggt.s8','vqnegle.s8',
-            'vqnegeq.s16','vqnegne.s16','vqnegcs.s16','vqneghs.s16','vqnegcc.s16','vqneglo.s16','vqnegmi.s16','vqnegpl.s16','vqnegvs.s16','vqnegvc.s16','vqneghi.s16','vqnegls.s16','vqnegge.s16','vqneglt.s16','vqneggt.s16','vqnegle.s16',
-            'vqnegeq.s32','vqnegne.s32','vqnegcs.s32','vqneghs.s32','vqnegcc.s32','vqneglo.s32','vqnegmi.s32','vqnegpl.s32','vqnegvs.s32','vqnegvc.s32','vqneghi.s32','vqnegls.s32','vqnegge.s32','vqneglt.s32','vqneggt.s32','vqnegle.s32',
-
-            'vqrdmulheq.s16','vqrdmulhne.s16','vqrdmulhcs.s16','vqrdmulhhs.s16','vqrdmulhcc.s16','vqrdmulhlo.s16','vqrdmulhmi.s16','vqrdmulhpl.s16','vqrdmulhvs.s16','vqrdmulhvc.s16','vqrdmulhhi.s16','vqrdmulhls.s16','vqrdmulhge.s16','vqrdmulhlt.s16','vqrdmulhgt.s16','vqrdmulhle.s16',
-            'vqrdmulheq.s32','vqrdmulhne.s32','vqrdmulhcs.s32','vqrdmulhhs.s32','vqrdmulhcc.s32','vqrdmulhlo.s32','vqrdmulhmi.s32','vqrdmulhpl.s32','vqrdmulhvs.s32','vqrdmulhvc.s32','vqrdmulhhi.s32','vqrdmulhls.s32','vqrdmulhge.s32','vqrdmulhlt.s32','vqrdmulhgt.s32','vqrdmulhle.s32',
-
-            'vqrshleq.s8','vqrshlne.s8','vqrshlcs.s8','vqrshlhs.s8','vqrshlcc.s8','vqrshllo.s8','vqrshlmi.s8','vqrshlpl.s8','vqrshlvs.s8','vqrshlvc.s8','vqrshlhi.s8','vqrshlls.s8','vqrshlge.s8','vqrshllt.s8','vqrshlgt.s8','vqrshlle.s8',
-            'vqrshleq.s16','vqrshlne.s16','vqrshlcs.s16','vqrshlhs.s16','vqrshlcc.s16','vqrshllo.s16','vqrshlmi.s16','vqrshlpl.s16','vqrshlvs.s16','vqrshlvc.s16','vqrshlhi.s16','vqrshlls.s16','vqrshlge.s16','vqrshllt.s16','vqrshlgt.s16','vqrshlle.s16',
-            'vqrshleq.s32','vqrshlne.s32','vqrshlcs.s32','vqrshlhs.s32','vqrshlcc.s32','vqrshllo.s32','vqrshlmi.s32','vqrshlpl.s32','vqrshlvs.s32','vqrshlvc.s32','vqrshlhi.s32','vqrshlls.s32','vqrshlge.s32','vqrshllt.s32','vqrshlgt.s32','vqrshlle.s32',
-            'vqrshleq.s64','vqrshlne.s64','vqrshlcs.s64','vqrshlhs.s64','vqrshlcc.s64','vqrshllo.s64','vqrshlmi.s64','vqrshlpl.s64','vqrshlvs.s64','vqrshlvc.s64','vqrshlhi.s64','vqrshlls.s64','vqrshlge.s64','vqrshllt.s64','vqrshlgt.s64','vqrshlle.s64',
-
-            'vqrshrneq.s16','vqrshrnne.s16','vqrshrncs.s16','vqrshrnhs.s16','vqrshrncc.s16','vqrshrnlo.s16','vqrshrnmi.s16','vqrshrnpl.s16','vqrshrnvs.s16','vqrshrnvc.s16','vqrshrnhi.s16','vqrshrnls.s16','vqrshrnge.s16','vqrshrnlt.s16','vqrshrngt.s16','vqrshrnle.s16',
-            'vqrshrneq.s32','vqrshrnne.s32','vqrshrncs.s32','vqrshrnhs.s32','vqrshrncc.s32','vqrshrnlo.s32','vqrshrnmi.s32','vqrshrnpl.s32','vqrshrnvs.s32','vqrshrnvc.s32','vqrshrnhi.s32','vqrshrnls.s32','vqrshrnge.s32','vqrshrnlt.s32','vqrshrngt.s32','vqrshrnle.s32',
-            'vqrshrneq.s64','vqrshrnne.s64','vqrshrncs.s64','vqrshrnhs.s64','vqrshrncc.s64','vqrshrnlo.s64','vqrshrnmi.s64','vqrshrnpl.s64','vqrshrnvs.s64','vqrshrnvc.s64','vqrshrnhi.s64','vqrshrnls.s64','vqrshrnge.s64','vqrshrnlt.s64','vqrshrngt.s64','vqrshrnle.s64',
-
-            'vqrshruneq.s16','vqrshrunne.s16','vqrshruncs.s16','vqrshrunhs.s16','vqrshruncc.s16','vqrshrunlo.s16','vqrshrunmi.s16','vqrshrunpl.s16','vqrshrunvs.s16','vqrshrunvc.s16','vqrshrunhi.s16','vqrshrunls.s16','vqrshrunge.s16','vqrshrunlt.s16','vqrshrungt.s16','vqrshrunle.s16',
-            'vqrshruneq.s32','vqrshrunne.s32','vqrshruncs.s32','vqrshrunhs.s32','vqrshruncc.s32','vqrshrunlo.s32','vqrshrunmi.s32','vqrshrunpl.s32','vqrshrunvs.s32','vqrshrunvc.s32','vqrshrunhi.s32','vqrshrunls.s32','vqrshrunge.s32','vqrshrunlt.s32','vqrshrungt.s32','vqrshrunle.s32',
-            'vqrshruneq.s64','vqrshrunne.s64','vqrshruncs.s64','vqrshrunhs.s64','vqrshruncc.s64','vqrshrunlo.s64','vqrshrunmi.s64','vqrshrunpl.s64','vqrshrunvs.s64','vqrshrunvc.s64','vqrshrunhi.s64','vqrshrunls.s64','vqrshrunge.s64','vqrshrunlt.s64','vqrshrungt.s64','vqrshrunle.s64',
-
-            'vqshleq.s8','vqshlne.s8','vqshlcs.s8','vqshlhs.s8','vqshlcc.s8','vqshllo.s8','vqshlmi.s8','vqshlpl.s8','vqshlvs.s8','vqshlvc.s8','vqshlhi.s8','vqshlls.s8','vqshlge.s8','vqshllt.s8','vqshlgt.s8','vqshlle.s8',
-            'vqshleq.s16','vqshlne.s16','vqshlcs.s16','vqshlhs.s16','vqshlcc.s16','vqshllo.s16','vqshlmi.s16','vqshlpl.s16','vqshlvs.s16','vqshlvc.s16','vqshlhi.s16','vqshlls.s16','vqshlge.s16','vqshllt.s16','vqshlgt.s16','vqshlle.s16',
-            'vqshleq.s32','vqshlne.s32','vqshlcs.s32','vqshlhs.s32','vqshlcc.s32','vqshllo.s32','vqshlmi.s32','vqshlpl.s32','vqshlvs.s32','vqshlvc.s32','vqshlhi.s32','vqshlls.s32','vqshlge.s32','vqshllt.s32','vqshlgt.s32','vqshlle.s32',
-            'vqshleq.s64','vqshlne.s64','vqshlcs.s64','vqshlhs.s64','vqshlcc.s64','vqshllo.s64','vqshlmi.s64','vqshlpl.s64','vqshlvs.s64','vqshlvc.s64','vqshlhi.s64','vqshlls.s64','vqshlge.s64','vqshllt.s64','vqshlgt.s64','vqshlle.s64',
-
-            'vqshlueq.s8','vqshlune.s8','vqshlucs.s8','vqshluhs.s8','vqshlucc.s8','vqshlulo.s8','vqshlumi.s8','vqshlupl.s8','vqshluvs.s8','vqshluvc.s8','vqshluhi.s8','vqshluls.s8','vqshluge.s8','vqshlult.s8','vqshlugt.s8','vqshlule.s8',
-            'vqshlueq.s16','vqshlune.s16','vqshlucs.s16','vqshluhs.s16','vqshlucc.s16','vqshlulo.s16','vqshlumi.s16','vqshlupl.s16','vqshluvs.s16','vqshluvc.s16','vqshluhi.s16','vqshluls.s16','vqshluge.s16','vqshlult.s16','vqshlugt.s16','vqshlule.s16',
-            'vqshlueq.s32','vqshlune.s32','vqshlucs.s32','vqshluhs.s32','vqshlucc.s32','vqshlulo.s32','vqshlumi.s32','vqshlupl.s32','vqshluvs.s32','vqshluvc.s32','vqshluhi.s32','vqshluls.s32','vqshluge.s32','vqshlult.s32','vqshlugt.s32','vqshlule.s32',
-            'vqshlueq.s64','vqshlune.s64','vqshlucs.s64','vqshluhs.s64','vqshlucc.s64','vqshlulo.s64','vqshlumi.s64','vqshlupl.s64','vqshluvs.s64','vqshluvc.s64','vqshluhi.s64','vqshluls.s64','vqshluge.s64','vqshlult.s64','vqshlugt.s64','vqshlule.s64',
-
-            'vqshrneq.s16','vqshrnne.s16','vqshrncs.s16','vqshrnhs.s16','vqshrncc.s16','vqshrnlo.s16','vqshrnmi.s16','vqshrnpl.s16','vqshrnvs.s16','vqshrnvc.s16','vqshrnhi.s16','vqshrnls.s16','vqshrnge.s16','vqshrnlt.s16','vqshrngt.s16','vqshrnle.s16',
-            'vqshrneq.s32','vqshrnne.s32','vqshrncs.s32','vqshrnhs.s32','vqshrncc.s32','vqshrnlo.s32','vqshrnmi.s32','vqshrnpl.s32','vqshrnvs.s32','vqshrnvc.s32','vqshrnhi.s32','vqshrnls.s32','vqshrnge.s32','vqshrnlt.s32','vqshrngt.s32','vqshrnle.s32',
-            'vqshrneq.s64','vqshrnne.s64','vqshrncs.s64','vqshrnhs.s64','vqshrncc.s64','vqshrnlo.s64','vqshrnmi.s64','vqshrnpl.s64','vqshrnvs.s64','vqshrnvc.s64','vqshrnhi.s64','vqshrnls.s64','vqshrnge.s64','vqshrnlt.s64','vqshrngt.s64','vqshrnle.s64',
-
-            'vqshruneq.s16','vqshrunne.s16','vqshruncs.s16','vqshrunhs.s16','vqshruncc.s16','vqshrunlo.s16','vqshrunmi.s16','vqshrunpl.s16','vqshrunvs.s16','vqshrunvc.s16','vqshrunhi.s16','vqshrunls.s16','vqshrunge.s16','vqshrunlt.s16','vqshrungt.s16','vqshrunle.s16',
-            'vqshruneq.s32','vqshrunne.s32','vqshruncs.s32','vqshrunhs.s32','vqshruncc.s32','vqshrunlo.s32','vqshrunmi.s32','vqshrunpl.s32','vqshrunvs.s32','vqshrunvc.s32','vqshrunhi.s32','vqshrunls.s32','vqshrunge.s32','vqshrunlt.s32','vqshrungt.s32','vqshrunle.s32',
-            'vqshruneq.s64','vqshrunne.s64','vqshruncs.s64','vqshrunhs.s64','vqshruncc.s64','vqshrunlo.s64','vqshrunmi.s64','vqshrunpl.s64','vqshrunvs.s64','vqshrunvc.s64','vqshrunhi.s64','vqshrunls.s64','vqshrunge.s64','vqshrunlt.s64','vqshrungt.s64','vqshrunle.s64',
-
-            'vqsubeq.s8','vqsubne.s8','vqsubcs.s8','vqsubhs.s8','vqsubcc.s8','vqsublo.s8','vqsubmi.s8','vqsubpl.s8','vqsubvs.s8','vqsubvc.s8','vqsubhi.s8','vqsubls.s8','vqsubge.s8','vqsublt.s8','vqsubgt.s8','vqsuble.s8',
-            'vqsubeq.s16','vqsubne.s16','vqsubcs.s16','vqsubhs.s16','vqsubcc.s16','vqsublo.s16','vqsubmi.s16','vqsubpl.s16','vqsubvs.s16','vqsubvc.s16','vqsubhi.s16','vqsubls.s16','vqsubge.s16','vqsublt.s16','vqsubgt.s16','vqsuble.s16',
-            'vqsubeq.s32','vqsubne.s32','vqsubcs.s32','vqsubhs.s32','vqsubcc.s32','vqsublo.s32','vqsubmi.s32','vqsubpl.s32','vqsubvs.s32','vqsubvc.s32','vqsubhi.s32','vqsubls.s32','vqsubge.s32','vqsublt.s32','vqsubgt.s32','vqsuble.s32',
-            'vqsubeq.s64','vqsubne.s64','vqsubcs.s64','vqsubhs.s64','vqsubcc.s64','vqsublo.s64','vqsubmi.s64','vqsubpl.s64','vqsubvs.s64','vqsubvc.s64','vqsubhi.s64','vqsubls.s64','vqsubge.s64','vqsublt.s64','vqsubgt.s64','vqsuble.s64',
-
-            'vrhaddeq.s8','vrhaddne.s8','vrhaddcs.s8','vrhaddhs.s8','vrhaddcc.s8','vrhaddlo.s8','vrhaddmi.s8','vrhaddpl.s8','vrhaddvs.s8','vrhaddvc.s8','vrhaddhi.s8','vrhaddls.s8','vrhaddge.s8','vrhaddlt.s8','vrhaddgt.s8','vrhaddle.s8',
-            'vrhaddeq.s16','vrhaddne.s16','vrhaddcs.s16','vrhaddhs.s16','vrhaddcc.s16','vrhaddlo.s16','vrhaddmi.s16','vrhaddpl.s16','vrhaddvs.s16','vrhaddvc.s16','vrhaddhi.s16','vrhaddls.s16','vrhaddge.s16','vrhaddlt.s16','vrhaddgt.s16','vrhaddle.s16',
-            'vrhaddeq.s32','vrhaddne.s32','vrhaddcs.s32','vrhaddhs.s32','vrhaddcc.s32','vrhaddlo.s32','vrhaddmi.s32','vrhaddpl.s32','vrhaddvs.s32','vrhaddvc.s32','vrhaddhi.s32','vrhaddls.s32','vrhaddge.s32','vrhaddlt.s32','vrhaddgt.s32','vrhaddle.s32',
-
-            'vrshleq.s8','vrshlne.s8','vrshlcs.s8','vrshlhs.s8','vrshlcc.s8','vrshllo.s8','vrshlmi.s8','vrshlpl.s8','vrshlvs.s8','vrshlvc.s8','vrshlhi.s8','vrshlls.s8','vrshlge.s8','vrshllt.s8','vrshlgt.s8','vrshlle.s8',
-            'vrshleq.s16','vrshlne.s16','vrshlcs.s16','vrshlhs.s16','vrshlcc.s16','vrshllo.s16','vrshlmi.s16','vrshlpl.s16','vrshlvs.s16','vrshlvc.s16','vrshlhi.s16','vrshlls.s16','vrshlge.s16','vrshllt.s16','vrshlgt.s16','vrshlle.s16',
-            'vrshleq.s32','vrshlne.s32','vrshlcs.s32','vrshlhs.s32','vrshlcc.s32','vrshllo.s32','vrshlmi.s32','vrshlpl.s32','vrshlvs.s32','vrshlvc.s32','vrshlhi.s32','vrshlls.s32','vrshlge.s32','vrshllt.s32','vrshlgt.s32','vrshlle.s32',
-            'vrshleq.s64','vrshlne.s64','vrshlcs.s64','vrshlhs.s64','vrshlcc.s64','vrshllo.s64','vrshlmi.s64','vrshlpl.s64','vrshlvs.s64','vrshlvc.s64','vrshlhi.s64','vrshlls.s64','vrshlge.s64','vrshllt.s64','vrshlgt.s64','vrshlle.s64',
-
-            'vrshreq.s8','vrshrne.s8','vrshrcs.s8','vrshrhs.s8','vrshrcc.s8','vrshrlo.s8','vrshrmi.s8','vrshrpl.s8','vrshrvs.s8','vrshrvc.s8','vrshrhi.s8','vrshrls.s8','vrshrge.s8','vrshrlt.s8','vrshrgt.s8','vrshrle.s8',
-            'vrshreq.s16','vrshrne.s16','vrshrcs.s16','vrshrhs.s16','vrshrcc.s16','vrshrlo.s16','vrshrmi.s16','vrshrpl.s16','vrshrvs.s16','vrshrvc.s16','vrshrhi.s16','vrshrls.s16','vrshrge.s16','vrshrlt.s16','vrshrgt.s16','vrshrle.s16',
-            'vrshreq.s32','vrshrne.s32','vrshrcs.s32','vrshrhs.s32','vrshrcc.s32','vrshrlo.s32','vrshrmi.s32','vrshrpl.s32','vrshrvs.s32','vrshrvc.s32','vrshrhi.s32','vrshrls.s32','vrshrge.s32','vrshrlt.s32','vrshrgt.s32','vrshrle.s32',
-            'vrshreq.s64','vrshrne.s64','vrshrcs.s64','vrshrhs.s64','vrshrcc.s64','vrshrlo.s64','vrshrmi.s64','vrshrpl.s64','vrshrvs.s64','vrshrvc.s64','vrshrhi.s64','vrshrls.s64','vrshrge.s64','vrshrlt.s64','vrshrgt.s64','vrshrle.s64',
-
-            'vrsraeq.s8','vrsrane.s8','vrsracs.s8','vrsrahs.s8','vrsracc.s8','vrsralo.s8','vrsrami.s8','vrsrapl.s8','vrsravs.s8','vrsravc.s8','vrsrahi.s8','vrsrals.s8','vrsrage.s8','vrsralt.s8','vrsragt.s8','vrsrale.s8',
-            'vrsraeq.s16','vrsrane.s16','vrsracs.s16','vrsrahs.s16','vrsracc.s16','vrsralo.s16','vrsrami.s16','vrsrapl.s16','vrsravs.s16','vrsravc.s16','vrsrahi.s16','vrsrals.s16','vrsrage.s16','vrsralt.s16','vrsragt.s16','vrsrale.s16',
-            'vrsraeq.s32','vrsrane.s32','vrsracs.s32','vrsrahs.s32','vrsracc.s32','vrsralo.s32','vrsrami.s32','vrsrapl.s32','vrsravs.s32','vrsravc.s32','vrsrahi.s32','vrsrals.s32','vrsrage.s32','vrsralt.s32','vrsragt.s32','vrsrale.s32',
-            'vrsraeq.s64','vrsrane.s64','vrsracs.s64','vrsrahs.s64','vrsracc.s64','vrsralo.s64','vrsrami.s64','vrsrapl.s64','vrsravs.s64','vrsravc.s64','vrsrahi.s64','vrsrals.s64','vrsrage.s64','vrsralt.s64','vrsragt.s64','vrsrale.s64',
-
-            'vshleq.s8','vshlne.s8','vshlcs.s8','vshlhs.s8','vshlcc.s8','vshllo.s8','vshlmi.s8','vshlpl.s8','vshlvs.s8','vshlvc.s8','vshlhi.s8','vshlls.s8','vshlge.s8','vshllt.s8','vshlgt.s8','vshlle.s8',
-            'vshleq.s16','vshlne.s16','vshlcs.s16','vshlhs.s16','vshlcc.s16','vshllo.s16','vshlmi.s16','vshlpl.s16','vshlvs.s16','vshlvc.s16','vshlhi.s16','vshlls.s16','vshlge.s16','vshllt.s16','vshlgt.s16','vshlle.s16',
-            'vshleq.s32','vshlne.s32','vshlcs.s32','vshlhs.s32','vshlcc.s32','vshllo.s32','vshlmi.s32','vshlpl.s32','vshlvs.s32','vshlvc.s32','vshlhi.s32','vshlls.s32','vshlge.s32','vshllt.s32','vshlgt.s32','vshlle.s32',
-            'vshleq.s64','vshlne.s64','vshlcs.s64','vshlhs.s64','vshlcc.s64','vshllo.s64','vshlmi.s64','vshlpl.s64','vshlvs.s64','vshlvc.s64','vshlhi.s64','vshlls.s64','vshlge.s64','vshllt.s64','vshlgt.s64','vshlle.s64',
-
-            'vshlleq.s8','vshllne.s8','vshllcs.s8','vshllhs.s8','vshllcc.s8','vshlllo.s8','vshllmi.s8','vshllpl.s8','vshllvs.s8','vshllvc.s8','vshllhi.s8','vshllls.s8','vshllge.s8','vshlllt.s8','vshllgt.s8','vshllle.s8',
-            'vshlleq.s16','vshllne.s16','vshllcs.s16','vshllhs.s16','vshllcc.s16','vshlllo.s16','vshllmi.s16','vshllpl.s16','vshllvs.s16','vshllvc.s16','vshllhi.s16','vshllls.s16','vshllge.s16','vshlllt.s16','vshllgt.s16','vshllle.s16',
-            'vshlleq.s32','vshllne.s32','vshllcs.s32','vshllhs.s32','vshllcc.s32','vshlllo.s32','vshllmi.s32','vshllpl.s32','vshllvs.s32','vshllvc.s32','vshllhi.s32','vshllls.s32','vshllge.s32','vshlllt.s32','vshllgt.s32','vshllle.s32',
-
-            'vshreq.s8','vshrne.s8','vshrcs.s8','vshrhs.s8','vshrcc.s8','vshrlo.s8','vshrmi.s8','vshrpl.s8','vshrvs.s8','vshrvc.s8','vshrhi.s8','vshrls.s8','vshrge.s8','vshrlt.s8','vshrgt.s8','vshrle.s8',
-            'vshreq.s16','vshrne.s16','vshrcs.s16','vshrhs.s16','vshrcc.s16','vshrlo.s16','vshrmi.s16','vshrpl.s16','vshrvs.s16','vshrvc.s16','vshrhi.s16','vshrls.s16','vshrge.s16','vshrlt.s16','vshrgt.s16','vshrle.s16',
-            'vshreq.s32','vshrne.s32','vshrcs.s32','vshrhs.s32','vshrcc.s32','vshrlo.s32','vshrmi.s32','vshrpl.s32','vshrvs.s32','vshrvc.s32','vshrhi.s32','vshrls.s32','vshrge.s32','vshrlt.s32','vshrgt.s32','vshrle.s32',
-            'vshreq.s64','vshrne.s64','vshrcs.s64','vshrhs.s64','vshrcc.s64','vshrlo.s64','vshrmi.s64','vshrpl.s64','vshrvs.s64','vshrvc.s64','vshrhi.s64','vshrls.s64','vshrge.s64','vshrlt.s64','vshrgt.s64','vshrle.s64',
-
-            'vsraeq.s8','vsrane.s8','vsracs.s8','vsrahs.s8','vsracc.s8','vsralo.s8','vsrami.s8','vsrapl.s8','vsravs.s8','vsravc.s8','vsrahi.s8','vsrals.s8','vsrage.s8','vsralt.s8','vsragt.s8','vsrale.s8',
-            'vsraeq.s16','vsrane.s16','vsracs.s16','vsrahs.s16','vsracc.s16','vsralo.s16','vsrami.s16','vsrapl.s16','vsravs.s16','vsravc.s16','vsrahi.s16','vsrals.s16','vsrage.s16','vsralt.s16','vsragt.s16','vsrale.s16',
-            'vsraeq.s32','vsrane.s32','vsracs.s32','vsrahs.s32','vsracc.s32','vsralo.s32','vsrami.s32','vsrapl.s32','vsravs.s32','vsravc.s32','vsrahi.s32','vsrals.s32','vsrage.s32','vsralt.s32','vsragt.s32','vsrale.s32',
-            'vsraeq.s64','vsrane.s64','vsracs.s64','vsrahs.s64','vsracc.s64','vsralo.s64','vsrami.s64','vsrapl.s64','vsravs.s64','vsravc.s64','vsrahi.s64','vsrals.s64','vsrage.s64','vsralt.s64','vsragt.s64','vsrale.s64',
-
-            'vsubleq.s8','vsublne.s8','vsublcs.s8','vsublhs.s8','vsublcc.s8','vsubllo.s8','vsublmi.s8','vsublpl.s8','vsublvs.s8','vsublvc.s8','vsublhi.s8','vsublls.s8','vsublge.s8','vsubllt.s8','vsublgt.s8','vsublle.s8',
-            'vsubleq.s16','vsublne.s16','vsublcs.s16','vsublhs.s16','vsublcc.s16','vsubllo.s16','vsublmi.s16','vsublpl.s16','vsublvs.s16','vsublvc.s16','vsublhi.s16','vsublls.s16','vsublge.s16','vsubllt.s16','vsublgt.s16','vsublle.s16',
-            'vsubleq.s32','vsublne.s32','vsublcs.s32','vsublhs.s32','vsublcc.s32','vsubllo.s32','vsublmi.s32','vsublpl.s32','vsublvs.s32','vsublvc.s32','vsublhi.s32','vsublls.s32','vsublge.s32','vsubllt.s32','vsublgt.s32','vsublle.s32',
-
-            'vsubheq.s8','vsubhne.s8','vsubhcs.s8','vsubhhs.s8','vsubhcc.s8','vsubhlo.s8','vsubhmi.s8','vsubhpl.s8','vsubhvs.s8','vsubhvc.s8','vsubhhi.s8','vsubhls.s8','vsubhge.s8','vsubhlt.s8','vsubhgt.s8','vsubhle.s8',
-            'vsubheq.s16','vsubhne.s16','vsubhcs.s16','vsubhhs.s16','vsubhcc.s16','vsubhlo.s16','vsubhmi.s16','vsubhpl.s16','vsubhvs.s16','vsubhvc.s16','vsubhhi.s16','vsubhls.s16','vsubhge.s16','vsubhlt.s16','vsubhgt.s16','vsubhle.s16',
-            'vsubheq.s32','vsubhne.s32','vsubhcs.s32','vsubhhs.s32','vsubhcc.s32','vsubhlo.s32','vsubhmi.s32','vsubhpl.s32','vsubhvs.s32','vsubhvc.s32','vsubhhi.s32','vsubhls.s32','vsubhge.s32','vsubhlt.s32','vsubhgt.s32','vsubhle.s32'
-            ),
-        /* Conditional NEON SIMD Unsigned Integer Instructions */
-        33 => array(
-            'vabaeq.u8','vabane.u8','vabacs.u8','vabahs.u8','vabacc.u8','vabalo.u8','vabami.u8','vabapl.u8','vabavs.u8','vabavc.u8','vabahi.u8','vabals.u8','vabage.u8','vabalt.u8','vabagt.u8','vabale.u8',
-            'vabaeq.u16','vabane.u16','vabacs.u16','vabahs.u16','vabacc.u16','vabalo.u16','vabami.u16','vabapl.u16','vabavs.u16','vabavc.u16','vabahi.u16','vabals.u16','vabage.u16','vabalt.u16','vabagt.u16','vabale.u16',
-            'vabaeq.u32','vabane.u32','vabacs.u32','vabahs.u32','vabacc.u32','vabalo.u32','vabami.u32','vabapl.u32','vabavs.u32','vabavc.u32','vabahi.u32','vabals.u32','vabage.u32','vabalt.u32','vabagt.u32','vabale.u32',
-
-            'vabaleq.u8','vabalne.u8','vabalcs.u8','vabalhs.u8','vabalcc.u8','vaballo.u8','vabalmi.u8','vabalpl.u8','vabalvs.u8','vabalvc.u8','vabalhi.u8','vaballs.u8','vabalge.u8','vaballt.u8','vabalgt.u8','vaballe.u8',
-            'vabaleq.u16','vabalne.u16','vabalcs.u16','vabalhs.u16','vabalcc.u16','vaballo.u16','vabalmi.u16','vabalpl.u16','vabalvs.u16','vabalvc.u16','vabalhi.u16','vaballs.u16','vabalge.u16','vaballt.u16','vabalgt.u16','vaballe.u16',
-            'vabaleq.u32','vabalne.u32','vabalcs.u32','vabalhs.u32','vabalcc.u32','vaballo.u32','vabalmi.u32','vabalpl.u32','vabalvs.u32','vabalvc.u32','vabalhi.u32','vaballs.u32','vabalge.u32','vaballt.u32','vabalgt.u32','vaballe.u32',
-
-            'vabdeq.u8','vabdne.u8','vabdcs.u8','vabdhs.u8','vabdcc.u8','vabdlo.u8','vabdmi.u8','vabdpl.u8','vabdvs.u8','vabdvc.u8','vabdhi.u8','vabdls.u8','vabdge.u8','vabdlt.u8','vabdgt.u8','vabdle.u8',
-            'vabdeq.u16','vabdne.u16','vabdcs.u16','vabdhs.u16','vabdcc.u16','vabdlo.u16','vabdmi.u16','vabdpl.u16','vabdvs.u16','vabdvc.u16','vabdhi.u16','vabdls.u16','vabdge.u16','vabdlt.u16','vabdgt.u16','vabdle.u16',
-            'vabdeq.u32','vabdne.u32','vabdcs.u32','vabdhs.u32','vabdcc.u32','vabdlo.u32','vabdmi.u32','vabdpl.u32','vabdvs.u32','vabdvc.u32','vabdhi.u32','vabdls.u32','vabdge.u32','vabdlt.u32','vabdgt.u32','vabdle.u32',
-
-            'vaddleq.u8','vaddlne.u8','vaddlcs.u8','vaddlhs.u8','vaddlcc.u8','vaddllo.u8','vaddlmi.u8','vaddlpl.u8','vaddlvs.u8','vaddlvc.u8','vaddlhi.u8','vaddlls.u8','vaddlge.u8','vaddllt.u8','vaddlgt.u8','vaddlle.u8',
-            'vaddleq.u16','vaddlne.u16','vaddlcs.u16','vaddlhs.u16','vaddlcc.u16','vaddllo.u16','vaddlmi.u16','vaddlpl.u16','vaddlvs.u16','vaddlvc.u16','vaddlhi.u16','vaddlls.u16','vaddlge.u16','vaddllt.u16','vaddlgt.u16','vaddlle.u16',
-            'vaddleq.u32','vaddlne.u32','vaddlcs.u32','vaddlhs.u32','vaddlcc.u32','vaddllo.u32','vaddlmi.u32','vaddlpl.u32','vaddlvs.u32','vaddlvc.u32','vaddlhi.u32','vaddlls.u32','vaddlge.u32','vaddllt.u32','vaddlgt.u32','vaddlle.u32',
-
-            'vsubleq.u8','vsublne.u8','vsublcs.u8','vsublhs.u8','vsublcc.u8','vsubllo.u8','vsublmi.u8','vsublpl.u8','vsublvs.u8','vsublvc.u8','vsublhi.u8','vsublls.u8','vsublge.u8','vsubllt.u8','vsublgt.u8','vsublle.u8',
-            'vsubleq.u16','vsublne.u16','vsublcs.u16','vsublhs.u16','vsublcc.u16','vsubllo.u16','vsublmi.u16','vsublpl.u16','vsublvs.u16','vsublvc.u16','vsublhi.u16','vsublls.u16','vsublge.u16','vsubllt.u16','vsublgt.u16','vsublle.u16',
-            'vsubleq.u32','vsublne.u32','vsublcs.u32','vsublhs.u32','vsublcc.u32','vsubllo.u32','vsublmi.u32','vsublpl.u32','vsublvs.u32','vsublvc.u32','vsublhi.u32','vsublls.u32','vsublge.u32','vsubllt.u32','vsublgt.u32','vsublle.u32',
-
-            'vaddweq.u8','vaddwne.u8','vaddwcs.u8','vaddwhs.u8','vaddwcc.u8','vaddwlo.u8','vaddwmi.u8','vaddwpl.u8','vaddwvs.u8','vaddwvc.u8','vaddwhi.u8','vaddwls.u8','vaddwge.u8','vaddwlt.u8','vaddwgt.u8','vaddwle.u8',
-            'vaddweq.u16','vaddwne.u16','vaddwcs.u16','vaddwhs.u16','vaddwcc.u16','vaddwlo.u16','vaddwmi.u16','vaddwpl.u16','vaddwvs.u16','vaddwvc.u16','vaddwhi.u16','vaddwls.u16','vaddwge.u16','vaddwlt.u16','vaddwgt.u16','vaddwle.u16',
-            'vaddweq.u32','vaddwne.u32','vaddwcs.u32','vaddwhs.u32','vaddwcc.u32','vaddwlo.u32','vaddwmi.u32','vaddwpl.u32','vaddwvs.u32','vaddwvc.u32','vaddwhi.u32','vaddwls.u32','vaddwge.u32','vaddwlt.u32','vaddwgt.u32','vaddwle.u32',
-
-            'vsubheq.u8','vsubhne.u8','vsubhcs.u8','vsubhhs.u8','vsubhcc.u8','vsubhlo.u8','vsubhmi.u8','vsubhpl.u8','vsubhvs.u8','vsubhvc.u8','vsubhhi.u8','vsubhls.u8','vsubhge.u8','vsubhlt.u8','vsubhgt.u8','vsubhle.u8',
-            'vsubheq.u16','vsubhne.u16','vsubhcs.u16','vsubhhs.u16','vsubhcc.u16','vsubhlo.u16','vsubhmi.u16','vsubhpl.u16','vsubhvs.u16','vsubhvc.u16','vsubhhi.u16','vsubhls.u16','vsubhge.u16','vsubhlt.u16','vsubhgt.u16','vsubhle.u16',
-            'vsubheq.u32','vsubhne.u32','vsubhcs.u32','vsubhhs.u32','vsubhcc.u32','vsubhlo.u32','vsubhmi.u32','vsubhpl.u32','vsubhvs.u32','vsubhvc.u32','vsubhhi.u32','vsubhls.u32','vsubhge.u32','vsubhlt.u32','vsubhgt.u32','vsubhle.u32',
-
-            'vhaddeq.u8','vhaddne.u8','vhaddcs.u8','vhaddhs.u8','vhaddcc.u8','vhaddlo.u8','vhaddmi.u8','vhaddpl.u8','vhaddvs.u8','vhaddvc.u8','vhaddhi.u8','vhaddls.u8','vhaddge.u8','vhaddlt.u8','vhaddgt.u8','vhaddle.u8',
-            'vhaddeq.u16','vhaddne.u16','vhaddcs.u16','vhaddhs.u16','vhaddcc.u16','vhaddlo.u16','vhaddmi.u16','vhaddpl.u16','vhaddvs.u16','vhaddvc.u16','vhaddhi.u16','vhaddls.u16','vhaddge.u16','vhaddlt.u16','vhaddgt.u16','vhaddle.u16',
-            'vhaddeq.u32','vhaddne.u32','vhaddcs.u32','vhaddhs.u32','vhaddcc.u32','vhaddlo.u32','vhaddmi.u32','vhaddpl.u32','vhaddvs.u32','vhaddvc.u32','vhaddhi.u32','vhaddls.u32','vhaddge.u32','vhaddlt.u32','vhaddgt.u32','vhaddle.u32',
-
-            'vhsubeq.u8','vhsubne.u8','vhsubcs.u8','vhsubhs.u8','vhsubcc.u8','vhsublo.u8','vhsubmi.u8','vhsubpl.u8','vhsubvs.u8','vhsubvc.u8','vhsubhi.u8','vhsubls.u8','vhsubge.u8','vhsublt.u8','vhsubgt.u8','vhsuble.u8',
-            'vhsubeq.u16','vhsubne.u16','vhsubcs.u16','vhsubhs.u16','vhsubcc.u16','vhsublo.u16','vhsubmi.u16','vhsubpl.u16','vhsubvs.u16','vhsubvc.u16','vhsubhi.u16','vhsubls.u16','vhsubge.u16','vhsublt.u16','vhsubgt.u16','vhsuble.u16',
-            'vhsubeq.u32','vhsubne.u32','vhsubcs.u32','vhsubhs.u32','vhsubcc.u32','vhsublo.u32','vhsubmi.u32','vhsubpl.u32','vhsubvs.u32','vhsubvc.u32','vhsubhi.u32','vhsubls.u32','vhsubge.u32','vhsublt.u32','vhsubgt.u32','vhsuble.u32',
-
-            'vpadaleq.u8','vpadalne.u8','vpadalcs.u8','vpadalhs.u8','vpadalcc.u8','vpadallo.u8','vpadalmi.u8','vpadalpl.u8','vpadalvs.u8','vpadalvc.u8','vpadalhi.u8','vpadalls.u8','vpadalge.u8','vpadallt.u8','vpadalgt.u8','vpadalle.u8',
-            'vpadaleq.u16','vpadalne.u16','vpadalcs.u16','vpadalhs.u16','vpadalcc.u16','vpadallo.u16','vpadalmi.u16','vpadalpl.u16','vpadalvs.u16','vpadalvc.u16','vpadalhi.u16','vpadalls.u16','vpadalge.u16','vpadallt.u16','vpadalgt.u16','vpadalle.u16',
-            'vpadaleq.u32','vpadalne.u32','vpadalcs.u32','vpadalhs.u32','vpadalcc.u32','vpadallo.u32','vpadalmi.u32','vpadalpl.u32','vpadalvs.u32','vpadalvc.u32','vpadalhi.u32','vpadalls.u32','vpadalge.u32','vpadallt.u32','vpadalgt.u32','vpadalle.u32',
-
-            'vpaddleq.u8','vpaddlne.u8','vpaddlcs.u8','vpaddlhs.u8','vpaddlcc.u8','vpaddllo.u8','vpaddlmi.u8','vpaddlpl.u8','vpaddlvs.u8','vpaddlvc.u8','vpaddlhi.u8','vpaddlls.u8','vpaddlge.u8','vpaddllt.u8','vpaddlgt.u8','vpaddlle.u8',
-            'vpaddleq.u16','vpaddlne.u16','vpaddlcs.u16','vpaddlhs.u16','vpaddlcc.u16','vpaddllo.u16','vpaddlmi.u16','vpaddlpl.u16','vpaddlvs.u16','vpaddlvc.u16','vpaddlhi.u16','vpaddlls.u16','vpaddlge.u16','vpaddllt.u16','vpaddlgt.u16','vpaddlle.u16',
-            'vpaddleq.u32','vpaddlne.u32','vpaddlcs.u32','vpaddlhs.u32','vpaddlcc.u32','vpaddllo.u32','vpaddlmi.u32','vpaddlpl.u32','vpaddlvs.u32','vpaddlvc.u32','vpaddlhi.u32','vpaddlls.u32','vpaddlge.u32','vpaddllt.u32','vpaddlgt.u32','vpaddlle.u32',
-
-            'vcgeeq.u8','vcgene.u8','vcgecs.u8','vcgehs.u8','vcgecc.u8','vcgelo.u8','vcgemi.u8','vcgepl.u8','vcgevs.u8','vcgevc.u8','vcgehi.u8','vcgels.u8','vcgege.u8','vcgelt.u8','vcgegt.u8','vcgele.u8',
-            'vcgeeq.u16','vcgene.u16','vcgecs.u16','vcgehs.u16','vcgecc.u16','vcgelo.u16','vcgemi.u16','vcgepl.u16','vcgevs.u16','vcgevc.u16','vcgehi.u16','vcgels.u16','vcgege.u16','vcgelt.u16','vcgegt.u16','vcgele.u16',
-            'vcgeeq.u32','vcgene.u32','vcgecs.u32','vcgehs.u32','vcgecc.u32','vcgelo.u32','vcgemi.u32','vcgepl.u32','vcgevs.u32','vcgevc.u32','vcgehi.u32','vcgels.u32','vcgege.u32','vcgelt.u32','vcgegt.u32','vcgele.u32',
-
-            'vcleeq.u8','vclene.u8','vclecs.u8','vclehs.u8','vclecc.u8','vclelo.u8','vclemi.u8','vclepl.u8','vclevs.u8','vclevc.u8','vclehi.u8','vclels.u8','vclege.u8','vclelt.u8','vclegt.u8','vclele.u8',
-            'vcleeq.u16','vclene.u16','vclecs.u16','vclehs.u16','vclecc.u16','vclelo.u16','vclemi.u16','vclepl.u16','vclevs.u16','vclevc.u16','vclehi.u16','vclels.u16','vclege.u16','vclelt.u16','vclegt.u16','vclele.u16',
-            'vcleeq.u32','vclene.u32','vclecs.u32','vclehs.u32','vclecc.u32','vclelo.u32','vclemi.u32','vclepl.u32','vclevs.u32','vclevc.u32','vclehi.u32','vclels.u32','vclege.u32','vclelt.u32','vclegt.u32','vclele.u32',
-
-            'vcgteq.u8','vcgtne.u8','vcgtcs.u8','vcgths.u8','vcgtcc.u8','vcgtlo.u8','vcgtmi.u8','vcgtpl.u8','vcgtvs.u8','vcgtvc.u8','vcgthi.u8','vcgtls.u8','vcgtge.u8','vcgtlt.u8','vcgtgt.u8','vcgtle.u8',
-            'vcgteq.u16','vcgtne.u16','vcgtcs.u16','vcgths.u16','vcgtcc.u16','vcgtlo.u16','vcgtmi.u16','vcgtpl.u16','vcgtvs.u16','vcgtvc.u16','vcgthi.u16','vcgtls.u16','vcgtge.u16','vcgtlt.u16','vcgtgt.u16','vcgtle.u16',
-            'vcgteq.u32','vcgtne.u32','vcgtcs.u32','vcgths.u32','vcgtcc.u32','vcgtlo.u32','vcgtmi.u32','vcgtpl.u32','vcgtvs.u32','vcgtvc.u32','vcgthi.u32','vcgtls.u32','vcgtge.u32','vcgtlt.u32','vcgtgt.u32','vcgtle.u32',
-
-            'vclteq.u8','vcltne.u8','vcltcs.u8','vclths.u8','vcltcc.u8','vcltlo.u8','vcltmi.u8','vcltpl.u8','vcltvs.u8','vcltvc.u8','vclthi.u8','vcltls.u8','vcltge.u8','vcltlt.u8','vcltgt.u8','vcltle.u8',
-            'vclteq.u16','vcltne.u16','vcltcs.u16','vclths.u16','vcltcc.u16','vcltlo.u16','vcltmi.u16','vcltpl.u16','vcltvs.u16','vcltvc.u16','vclthi.u16','vcltls.u16','vcltge.u16','vcltlt.u16','vcltgt.u16','vcltle.u16',
-            'vclteq.u32','vcltne.u32','vcltcs.u32','vclths.u32','vcltcc.u32','vcltlo.u32','vcltmi.u32','vcltpl.u32','vcltvs.u32','vcltvc.u32','vclthi.u32','vcltls.u32','vcltge.u32','vcltlt.u32','vcltgt.u32','vcltle.u32',
-
-            'vmaxeq.u8','vmaxne.u8','vmaxcs.u8','vmaxhs.u8','vmaxcc.u8','vmaxlo.u8','vmaxmi.u8','vmaxpl.u8','vmaxvs.u8','vmaxvc.u8','vmaxhi.u8','vmaxls.u8','vmaxge.u8','vmaxlt.u8','vmaxgt.u8','vmaxle.u8',
-            'vmaxeq.u16','vmaxne.u16','vmaxcs.u16','vmaxhs.u16','vmaxcc.u16','vmaxlo.u16','vmaxmi.u16','vmaxpl.u16','vmaxvs.u16','vmaxvc.u16','vmaxhi.u16','vmaxls.u16','vmaxge.u16','vmaxlt.u16','vmaxgt.u16','vmaxle.u16',
-            'vmaxeq.u32','vmaxne.u32','vmaxcs.u32','vmaxhs.u32','vmaxcc.u32','vmaxlo.u32','vmaxmi.u32','vmaxpl.u32','vmaxvs.u32','vmaxvc.u32','vmaxhi.u32','vmaxls.u32','vmaxge.u32','vmaxlt.u32','vmaxgt.u32','vmaxle.u32',
-
-            'vmineq.u8','vminne.u8','vmincs.u8','vminhs.u8','vmincc.u8','vminlo.u8','vminmi.u8','vminpl.u8','vminvs.u8','vminvc.u8','vminhi.u8','vminls.u8','vminge.u8','vminlt.u8','vmingt.u8','vminle.u8',
-            'vmineq.u16','vminne.u16','vmincs.u16','vminhs.u16','vmincc.u16','vminlo.u16','vminmi.u16','vminpl.u16','vminvs.u16','vminvc.u16','vminhi.u16','vminls.u16','vminge.u16','vminlt.u16','vmingt.u16','vminle.u16',
-            'vmineq.u32','vminne.u32','vmincs.u32','vminhs.u32','vmincc.u32','vminlo.u32','vminmi.u32','vminpl.u32','vminvs.u32','vminvc.u32','vminhi.u32','vminls.u32','vminge.u32','vminlt.u32','vmingt.u32','vminle.u32',
-
-            'vmlaleq.u8','vmlalne.u8','vmlalcs.u8','vmlalhs.u8','vmlalcc.u8','vmlallo.u8','vmlalmi.u8','vmlalpl.u8','vmlalvs.u8','vmlalvc.u8','vmlalhi.u8','vmlalls.u8','vmlalge.u8','vmlallt.u8','vmlalgt.u8','vmlalle.u8',
-            'vmlaleq.u16','vmlalne.u16','vmlalcs.u16','vmlalhs.u16','vmlalcc.u16','vmlallo.u16','vmlalmi.u16','vmlalpl.u16','vmlalvs.u16','vmlalvc.u16','vmlalhi.u16','vmlalls.u16','vmlalge.u16','vmlallt.u16','vmlalgt.u16','vmlalle.u16',
-            'vmlaleq.u32','vmlalne.u32','vmlalcs.u32','vmlalhs.u32','vmlalcc.u32','vmlallo.u32','vmlalmi.u32','vmlalpl.u32','vmlalvs.u32','vmlalvc.u32','vmlalhi.u32','vmlalls.u32','vmlalge.u32','vmlallt.u32','vmlalgt.u32','vmlalle.u32',
-
-            'vmlsleq.u8','vmlslne.u8','vmlslcs.u8','vmlslhs.u8','vmlslcc.u8','vmlsllo.u8','vmlslmi.u8','vmlslpl.u8','vmlslvs.u8','vmlslvc.u8','vmlslhi.u8','vmlslls.u8','vmlslge.u8','vmlsllt.u8','vmlslgt.u8','vmlslle.u8',
-            'vmlsleq.u16','vmlslne.u16','vmlslcs.u16','vmlslhs.u16','vmlslcc.u16','vmlsllo.u16','vmlslmi.u16','vmlslpl.u16','vmlslvs.u16','vmlslvc.u16','vmlslhi.u16','vmlslls.u16','vmlslge.u16','vmlsllt.u16','vmlslgt.u16','vmlslle.u16',
-            'vmlsleq.u32','vmlslne.u32','vmlslcs.u32','vmlslhs.u32','vmlslcc.u32','vmlsllo.u32','vmlslmi.u32','vmlslpl.u32','vmlslvs.u32','vmlslvc.u32','vmlslhi.u32','vmlslls.u32','vmlslge.u32','vmlsllt.u32','vmlslgt.u32','vmlslle.u32',
-
-            'vmulleq.u8','vmullne.u8','vmullcs.u8','vmullhs.u8','vmullcc.u8','vmulllo.u8','vmullmi.u8','vmullpl.u8','vmullvs.u8','vmullvc.u8','vmullhi.u8','vmullls.u8','vmullge.u8','vmulllt.u8','vmullgt.u8','vmullle.u8',
-            'vmulleq.u16','vmullne.u16','vmullcs.u16','vmullhs.u16','vmullcc.u16','vmulllo.u16','vmullmi.u16','vmullpl.u16','vmullvs.u16','vmullvc.u16','vmullhi.u16','vmullls.u16','vmullge.u16','vmulllt.u16','vmullgt.u16','vmullle.u16',
-            'vmulleq.u32','vmullne.u32','vmullcs.u32','vmullhs.u32','vmullcc.u32','vmulllo.u32','vmullmi.u32','vmullpl.u32','vmullvs.u32','vmullvc.u32','vmullhi.u32','vmullls.u32','vmullge.u32','vmulllt.u32','vmullgt.u32','vmullle.u32',
-
-            'vmovleq.u8','vmovlne.u8','vmovlcs.u8','vmovlhs.u8','vmovlcc.u8','vmovllo.u8','vmovlmi.u8','vmovlpl.u8','vmovlvs.u8','vmovlvc.u8','vmovlhi.u8','vmovlls.u8','vmovlge.u8','vmovllt.u8','vmovlgt.u8','vmovlle.u8',
-            'vmovleq.u16','vmovlne.u16','vmovlcs.u16','vmovlhs.u16','vmovlcc.u16','vmovllo.u16','vmovlmi.u16','vmovlpl.u16','vmovlvs.u16','vmovlvc.u16','vmovlhi.u16','vmovlls.u16','vmovlge.u16','vmovllt.u16','vmovlgt.u16','vmovlle.u16',
-            'vmovleq.u32','vmovlne.u32','vmovlcs.u32','vmovlhs.u32','vmovlcc.u32','vmovllo.u32','vmovlmi.u32','vmovlpl.u32','vmovlvs.u32','vmovlvc.u32','vmovlhi.u32','vmovlls.u32','vmovlge.u32','vmovllt.u32','vmovlgt.u32','vmovlle.u32',
-
-            'vshleq.u8','vshlne.u8','vshlcs.u8','vshlhs.u8','vshlcc.u8','vshllo.u8','vshlmi.u8','vshlpl.u8','vshlvs.u8','vshlvc.u8','vshlhi.u8','vshlls.u8','vshlge.u8','vshllt.u8','vshlgt.u8','vshlle.u8',
-            'vshleq.u16','vshlne.u16','vshlcs.u16','vshlhs.u16','vshlcc.u16','vshllo.u16','vshlmi.u16','vshlpl.u16','vshlvs.u16','vshlvc.u16','vshlhi.u16','vshlls.u16','vshlge.u16','vshllt.u16','vshlgt.u16','vshlle.u16',
-            'vshleq.u32','vshlne.u32','vshlcs.u32','vshlhs.u32','vshlcc.u32','vshllo.u32','vshlmi.u32','vshlpl.u32','vshlvs.u32','vshlvc.u32','vshlhi.u32','vshlls.u32','vshlge.u32','vshllt.u32','vshlgt.u32','vshlle.u32',
-            'vshleq.u64','vshlne.u64','vshlcs.u64','vshlhs.u64','vshlcc.u64','vshllo.u64','vshlmi.u64','vshlpl.u64','vshlvs.u64','vshlvc.u64','vshlhi.u64','vshlls.u64','vshlge.u64','vshllt.u64','vshlgt.u64','vshlle.u64',
-
-            'vshlleq.u8','vshllne.u8','vshllcs.u8','vshllhs.u8','vshllcc.u8','vshlllo.u8','vshllmi.u8','vshllpl.u8','vshllvs.u8','vshllvc.u8','vshllhi.u8','vshllls.u8','vshllge.u8','vshlllt.u8','vshllgt.u8','vshllle.u8',
-            'vshlleq.u16','vshllne.u16','vshllcs.u16','vshllhs.u16','vshllcc.u16','vshlllo.u16','vshllmi.u16','vshllpl.u16','vshllvs.u16','vshllvc.u16','vshllhi.u16','vshllls.u16','vshllge.u16','vshlllt.u16','vshllgt.u16','vshllle.u16',
-            'vshlleq.u32','vshllne.u32','vshllcs.u32','vshllhs.u32','vshllcc.u32','vshlllo.u32','vshllmi.u32','vshllpl.u32','vshllvs.u32','vshllvc.u32','vshllhi.u32','vshllls.u32','vshllge.u32','vshlllt.u32','vshllgt.u32','vshllle.u32',
-
-            'vshreq.u8','vshrne.u8','vshrcs.u8','vshrhs.u8','vshrcc.u8','vshrlo.u8','vshrmi.u8','vshrpl.u8','vshrvs.u8','vshrvc.u8','vshrhi.u8','vshrls.u8','vshrge.u8','vshrlt.u8','vshrgt.u8','vshrle.u8',
-            'vshreq.u16','vshrne.u16','vshrcs.u16','vshrhs.u16','vshrcc.u16','vshrlo.u16','vshrmi.u16','vshrpl.u16','vshrvs.u16','vshrvc.u16','vshrhi.u16','vshrls.u16','vshrge.u16','vshrlt.u16','vshrgt.u16','vshrle.u16',
-            'vshreq.u32','vshrne.u32','vshrcs.u32','vshrhs.u32','vshrcc.u32','vshrlo.u32','vshrmi.u32','vshrpl.u32','vshrvs.u32','vshrvc.u32','vshrhi.u32','vshrls.u32','vshrge.u32','vshrlt.u32','vshrgt.u32','vshrle.u32',
-            'vshreq.u64','vshrne.u64','vshrcs.u64','vshrhs.u64','vshrcc.u64','vshrlo.u64','vshrmi.u64','vshrpl.u64','vshrvs.u64','vshrvc.u64','vshrhi.u64','vshrls.u64','vshrge.u64','vshrlt.u64','vshrgt.u64','vshrle.u64',
-
-            'vsraeq.u8','vsrane.u8','vsracs.u8','vsrahs.u8','vsracc.u8','vsralo.u8','vsrami.u8','vsrapl.u8','vsravs.u8','vsravc.u8','vsrahi.u8','vsrals.u8','vsrage.u8','vsralt.u8','vsragt.u8','vsrale.u8',
-            'vsraeq.u16','vsrane.u16','vsracs.u16','vsrahs.u16','vsracc.u16','vsralo.u16','vsrami.u16','vsrapl.u16','vsravs.u16','vsravc.u16','vsrahi.u16','vsrals.u16','vsrage.u16','vsralt.u16','vsragt.u16','vsrale.u16',
-            'vsraeq.u32','vsrane.u32','vsracs.u32','vsrahs.u32','vsracc.u32','vsralo.u32','vsrami.u32','vsrapl.u32','vsravs.u32','vsravc.u32','vsrahi.u32','vsrals.u32','vsrage.u32','vsralt.u32','vsragt.u32','vsrale.u32',
-            'vsraeq.u64','vsrane.u64','vsracs.u64','vsrahs.u64','vsracc.u64','vsralo.u64','vsrami.u64','vsrapl.u64','vsravs.u64','vsravc.u64','vsrahi.u64','vsrals.u64','vsrage.u64','vsralt.u64','vsragt.u64','vsrale.u64',
-
-            'vpmaxeq.u8','vpmaxne.u8','vpmaxcs.u8','vpmaxhs.u8','vpmaxcc.u8','vpmaxlo.u8','vpmaxmi.u8','vpmaxpl.u8','vpmaxvs.u8','vpmaxvc.u8','vpmaxhi.u8','vpmaxls.u8','vpmaxge.u8','vpmaxlt.u8','vpmaxgt.u8','vpmaxle.u8',
-            'vpmaxeq.u16','vpmaxne.u16','vpmaxcs.u16','vpmaxhs.u16','vpmaxcc.u16','vpmaxlo.u16','vpmaxmi.u16','vpmaxpl.u16','vpmaxvs.u16','vpmaxvc.u16','vpmaxhi.u16','vpmaxls.u16','vpmaxge.u16','vpmaxlt.u16','vpmaxgt.u16','vpmaxle.u16',
-            'vpmaxeq.u32','vpmaxne.u32','vpmaxcs.u32','vpmaxhs.u32','vpmaxcc.u32','vpmaxlo.u32','vpmaxmi.u32','vpmaxpl.u32','vpmaxvs.u32','vpmaxvc.u32','vpmaxhi.u32','vpmaxls.u32','vpmaxge.u32','vpmaxlt.u32','vpmaxgt.u32','vpmaxle.u32',
-
-            'vpmineq.u8','vpminne.u8','vpmincs.u8','vpminhs.u8','vpmincc.u8','vpminlo.u8','vpminmi.u8','vpminpl.u8','vpminvs.u8','vpminvc.u8','vpminhi.u8','vpminls.u8','vpminge.u8','vpminlt.u8','vpmingt.u8','vpminle.u8',
-            'vpmineq.u16','vpminne.u16','vpmincs.u16','vpminhs.u16','vpmincc.u16','vpminlo.u16','vpminmi.u16','vpminpl.u16','vpminvs.u16','vpminvc.u16','vpminhi.u16','vpminls.u16','vpminge.u16','vpminlt.u16','vpmingt.u16','vpminle.u16',
-            'vpmineq.u32','vpminne.u32','vpmincs.u32','vpminhs.u32','vpmincc.u32','vpminlo.u32','vpminmi.u32','vpminpl.u32','vpminvs.u32','vpminvc.u32','vpminhi.u32','vpminls.u32','vpminge.u32','vpminlt.u32','vpmingt.u32','vpminle.u32',
-
-            'vqaddeq.u8','vqaddne.u8','vqaddcs.u8','vqaddhs.u8','vqaddcc.u8','vqaddlo.u8','vqaddmi.u8','vqaddpl.u8','vqaddvs.u8','vqaddvc.u8','vqaddhi.u8','vqaddls.u8','vqaddge.u8','vqaddlt.u8','vqaddgt.u8','vqaddle.u8',
-            'vqaddeq.u16','vqaddne.u16','vqaddcs.u16','vqaddhs.u16','vqaddcc.u16','vqaddlo.u16','vqaddmi.u16','vqaddpl.u16','vqaddvs.u16','vqaddvc.u16','vqaddhi.u16','vqaddls.u16','vqaddge.u16','vqaddlt.u16','vqaddgt.u16','vqaddle.u16',
-            'vqaddeq.u32','vqaddne.u32','vqaddcs.u32','vqaddhs.u32','vqaddcc.u32','vqaddlo.u32','vqaddmi.u32','vqaddpl.u32','vqaddvs.u32','vqaddvc.u32','vqaddhi.u32','vqaddls.u32','vqaddge.u32','vqaddlt.u32','vqaddgt.u32','vqaddle.u32',
-            'vqaddeq.u64','vqaddne.u64','vqaddcs.u64','vqaddhs.u64','vqaddcc.u64','vqaddlo.u64','vqaddmi.u64','vqaddpl.u64','vqaddvs.u64','vqaddvc.u64','vqaddhi.u64','vqaddls.u64','vqaddge.u64','vqaddlt.u64','vqaddgt.u64','vqaddle.u64',
-
-            'vqsubeq.u8','vqsubne.u8','vqsubcs.u8','vqsubhs.u8','vqsubcc.u8','vqsublo.u8','vqsubmi.u8','vqsubpl.u8','vqsubvs.u8','vqsubvc.u8','vqsubhi.u8','vqsubls.u8','vqsubge.u8','vqsublt.u8','vqsubgt.u8','vqsuble.u8',
-            'vqsubeq.u16','vqsubne.u16','vqsubcs.u16','vqsubhs.u16','vqsubcc.u16','vqsublo.u16','vqsubmi.u16','vqsubpl.u16','vqsubvs.u16','vqsubvc.u16','vqsubhi.u16','vqsubls.u16','vqsubge.u16','vqsublt.u16','vqsubgt.u16','vqsuble.u16',
-            'vqsubeq.u32','vqsubne.u32','vqsubcs.u32','vqsubhs.u32','vqsubcc.u32','vqsublo.u32','vqsubmi.u32','vqsubpl.u32','vqsubvs.u32','vqsubvc.u32','vqsubhi.u32','vqsubls.u32','vqsubge.u32','vqsublt.u32','vqsubgt.u32','vqsuble.u32',
-            'vqsubeq.u64','vqsubne.u64','vqsubcs.u64','vqsubhs.u64','vqsubcc.u64','vqsublo.u64','vqsubmi.u64','vqsubpl.u64','vqsubvs.u64','vqsubvc.u64','vqsubhi.u64','vqsubls.u64','vqsubge.u64','vqsublt.u64','vqsubgt.u64','vqsuble.u64',
-
-            'vqmovneq.u16','vqmovnne.u16','vqmovncs.u16','vqmovnhs.u16','vqmovncc.u16','vqmovnlo.u16','vqmovnmi.u16','vqmovnpl.u16','vqmovnvs.u16','vqmovnvc.u16','vqmovnhi.u16','vqmovnls.u16','vqmovnge.u16','vqmovnlt.u16','vqmovngt.u16','vqmovnle.u16',
-            'vqmovneq.u32','vqmovnne.u32','vqmovncs.u32','vqmovnhs.u32','vqmovncc.u32','vqmovnlo.u32','vqmovnmi.u32','vqmovnpl.u32','vqmovnvs.u32','vqmovnvc.u32','vqmovnhi.u32','vqmovnls.u32','vqmovnge.u32','vqmovnlt.u32','vqmovngt.u32','vqmovnle.u32',
-            'vqmovneq.u64','vqmovnne.u64','vqmovncs.u64','vqmovnhs.u64','vqmovncc.u64','vqmovnlo.u64','vqmovnmi.u64','vqmovnpl.u64','vqmovnvs.u64','vqmovnvc.u64','vqmovnhi.u64','vqmovnls.u64','vqmovnge.u64','vqmovnlt.u64','vqmovngt.u64','vqmovnle.u64',
-
-            'vqshleq.u8','vqshlne.u8','vqshlcs.u8','vqshlhs.u8','vqshlcc.u8','vqshllo.u8','vqshlmi.u8','vqshlpl.u8','vqshlvs.u8','vqshlvc.u8','vqshlhi.u8','vqshlls.u8','vqshlge.u8','vqshllt.u8','vqshlgt.u8','vqshlle.u8',
-            'vqshleq.u16','vqshlne.u16','vqshlcs.u16','vqshlhs.u16','vqshlcc.u16','vqshllo.u16','vqshlmi.u16','vqshlpl.u16','vqshlvs.u16','vqshlvc.u16','vqshlhi.u16','vqshlls.u16','vqshlge.u16','vqshllt.u16','vqshlgt.u16','vqshlle.u16',
-            'vqshleq.u32','vqshlne.u32','vqshlcs.u32','vqshlhs.u32','vqshlcc.u32','vqshllo.u32','vqshlmi.u32','vqshlpl.u32','vqshlvs.u32','vqshlvc.u32','vqshlhi.u32','vqshlls.u32','vqshlge.u32','vqshllt.u32','vqshlgt.u32','vqshlle.u32',
-            'vqshleq.u64','vqshlne.u64','vqshlcs.u64','vqshlhs.u64','vqshlcc.u64','vqshllo.u64','vqshlmi.u64','vqshlpl.u64','vqshlvs.u64','vqshlvc.u64','vqshlhi.u64','vqshlls.u64','vqshlge.u64','vqshllt.u64','vqshlgt.u64','vqshlle.u64',
-
-            'vqshrneq.u16','vqshrnne.u16','vqshrncs.u16','vqshrnhs.u16','vqshrncc.u16','vqshrnlo.u16','vqshrnmi.u16','vqshrnpl.u16','vqshrnvs.u16','vqshrnvc.u16','vqshrnhi.u16','vqshrnls.u16','vqshrnge.u16','vqshrnlt.u16','vqshrngt.u16','vqshrnle.u16',
-            'vqshrneq.u32','vqshrnne.u32','vqshrncs.u32','vqshrnhs.u32','vqshrncc.u32','vqshrnlo.u32','vqshrnmi.u32','vqshrnpl.u32','vqshrnvs.u32','vqshrnvc.u32','vqshrnhi.u32','vqshrnls.u32','vqshrnge.u32','vqshrnlt.u32','vqshrngt.u32','vqshrnle.u32',
-            'vqshrneq.u64','vqshrnne.u64','vqshrncs.u64','vqshrnhs.u64','vqshrncc.u64','vqshrnlo.u64','vqshrnmi.u64','vqshrnpl.u64','vqshrnvs.u64','vqshrnvc.u64','vqshrnhi.u64','vqshrnls.u64','vqshrnge.u64','vqshrnlt.u64','vqshrngt.u64','vqshrnle.u64',
-
-            'vqrshleq.u8','vqrshlne.u8','vqrshlcs.u8','vqrshlhs.u8','vqrshlcc.u8','vqrshllo.u8','vqrshlmi.u8','vqrshlpl.u8','vqrshlvs.u8','vqrshlvc.u8','vqrshlhi.u8','vqrshlls.u8','vqrshlge.u8','vqrshllt.u8','vqrshlgt.u8','vqrshlle.u8',
-            'vqrshleq.u16','vqrshlne.u16','vqrshlcs.u16','vqrshlhs.u16','vqrshlcc.u16','vqrshllo.u16','vqrshlmi.u16','vqrshlpl.u16','vqrshlvs.u16','vqrshlvc.u16','vqrshlhi.u16','vqrshlls.u16','vqrshlge.u16','vqrshllt.u16','vqrshlgt.u16','vqrshlle.u16',
-            'vqrshleq.u32','vqrshlne.u32','vqrshlcs.u32','vqrshlhs.u32','vqrshlcc.u32','vqrshllo.u32','vqrshlmi.u32','vqrshlpl.u32','vqrshlvs.u32','vqrshlvc.u32','vqrshlhi.u32','vqrshlls.u32','vqrshlge.u32','vqrshllt.u32','vqrshlgt.u32','vqrshlle.u32',
-            'vqrshleq.u64','vqrshlne.u64','vqrshlcs.u64','vqrshlhs.u64','vqrshlcc.u64','vqrshllo.u64','vqrshlmi.u64','vqrshlpl.u64','vqrshlvs.u64','vqrshlvc.u64','vqrshlhi.u64','vqrshlls.u64','vqrshlge.u64','vqrshllt.u64','vqrshlgt.u64','vqrshlle.u64',
-
-            'vqrshrneq.u16','vqrshrnne.u16','vqrshrncs.u16','vqrshrnhs.u16','vqrshrncc.u16','vqrshrnlo.u16','vqrshrnmi.u16','vqrshrnpl.u16','vqrshrnvs.u16','vqrshrnvc.u16','vqrshrnhi.u16','vqrshrnls.u16','vqrshrnge.u16','vqrshrnlt.u16','vqrshrngt.u16','vqrshrnle.u16',
-            'vqrshrneq.u32','vqrshrnne.u32','vqrshrncs.u32','vqrshrnhs.u32','vqrshrncc.u32','vqrshrnlo.u32','vqrshrnmi.u32','vqrshrnpl.u32','vqrshrnvs.u32','vqrshrnvc.u32','vqrshrnhi.u32','vqrshrnls.u32','vqrshrnge.u32','vqrshrnlt.u32','vqrshrngt.u32','vqrshrnle.u32',
-            'vqrshrneq.u64','vqrshrnne.u64','vqrshrncs.u64','vqrshrnhs.u64','vqrshrncc.u64','vqrshrnlo.u64','vqrshrnmi.u64','vqrshrnpl.u64','vqrshrnvs.u64','vqrshrnvc.u64','vqrshrnhi.u64','vqrshrnls.u64','vqrshrnge.u64','vqrshrnlt.u64','vqrshrngt.u64','vqrshrnle.u64',
-
-            'vrhaddeq.u8','vrhaddne.u8','vrhaddcs.u8','vrhaddhs.u8','vrhaddcc.u8','vrhaddlo.u8','vrhaddmi.u8','vrhaddpl.u8','vrhaddvs.u8','vrhaddvc.u8','vrhaddhi.u8','vrhaddls.u8','vrhaddge.u8','vrhaddlt.u8','vrhaddgt.u8','vrhaddle.u8',
-            'vrhaddeq.u16','vrhaddne.u16','vrhaddcs.u16','vrhaddhs.u16','vrhaddcc.u16','vrhaddlo.u16','vrhaddmi.u16','vrhaddpl.u16','vrhaddvs.u16','vrhaddvc.u16','vrhaddhi.u16','vrhaddls.u16','vrhaddge.u16','vrhaddlt.u16','vrhaddgt.u16','vrhaddle.u16',
-            'vrhaddeq.u32','vrhaddne.u32','vrhaddcs.u32','vrhaddhs.u32','vrhaddcc.u32','vrhaddlo.u32','vrhaddmi.u32','vrhaddpl.u32','vrhaddvs.u32','vrhaddvc.u32','vrhaddhi.u32','vrhaddls.u32','vrhaddge.u32','vrhaddlt.u32','vrhaddgt.u32','vrhaddle.u32',
-
-            'vrshleq.u8','vrshlne.u8','vrshlcs.u8','vrshlhs.u8','vrshlcc.u8','vrshllo.u8','vrshlmi.u8','vrshlpl.u8','vrshlvs.u8','vrshlvc.u8','vrshlhi.u8','vrshlls.u8','vrshlge.u8','vrshllt.u8','vrshlgt.u8','vrshlle.u8',
-            'vrshleq.u16','vrshlne.u16','vrshlcs.u16','vrshlhs.u16','vrshlcc.u16','vrshllo.u16','vrshlmi.u16','vrshlpl.u16','vrshlvs.u16','vrshlvc.u16','vrshlhi.u16','vrshlls.u16','vrshlge.u16','vrshllt.u16','vrshlgt.u16','vrshlle.u16',
-            'vrshleq.u32','vrshlne.u32','vrshlcs.u32','vrshlhs.u32','vrshlcc.u32','vrshllo.u32','vrshlmi.u32','vrshlpl.u32','vrshlvs.u32','vrshlvc.u32','vrshlhi.u32','vrshlls.u32','vrshlge.u32','vrshllt.u32','vrshlgt.u32','vrshlle.u32',
-            'vrshleq.u64','vrshlne.u64','vrshlcs.u64','vrshlhs.u64','vrshlcc.u64','vrshllo.u64','vrshlmi.u64','vrshlpl.u64','vrshlvs.u64','vrshlvc.u64','vrshlhi.u64','vrshlls.u64','vrshlge.u64','vrshllt.u64','vrshlgt.u64','vrshlle.u64',
-
-            'vrshreq.u8','vrshrne.u8','vrshrcs.u8','vrshrhs.u8','vrshrcc.u8','vrshrlo.u8','vrshrmi.u8','vrshrpl.u8','vrshrvs.u8','vrshrvc.u8','vrshrhi.u8','vrshrls.u8','vrshrge.u8','vrshrlt.u8','vrshrgt.u8','vrshrle.u8',
-            'vrshreq.u16','vrshrne.u16','vrshrcs.u16','vrshrhs.u16','vrshrcc.u16','vrshrlo.u16','vrshrmi.u16','vrshrpl.u16','vrshrvs.u16','vrshrvc.u16','vrshrhi.u16','vrshrls.u16','vrshrge.u16','vrshrlt.u16','vrshrgt.u16','vrshrle.u16',
-            'vrshreq.u32','vrshrne.u32','vrshrcs.u32','vrshrhs.u32','vrshrcc.u32','vrshrlo.u32','vrshrmi.u32','vrshrpl.u32','vrshrvs.u32','vrshrvc.u32','vrshrhi.u32','vrshrls.u32','vrshrge.u32','vrshrlt.u32','vrshrgt.u32','vrshrle.u32',
-            'vrshreq.u64','vrshrne.u64','vrshrcs.u64','vrshrhs.u64','vrshrcc.u64','vrshrlo.u64','vrshrmi.u64','vrshrpl.u64','vrshrvs.u64','vrshrvc.u64','vrshrhi.u64','vrshrls.u64','vrshrge.u64','vrshrlt.u64','vrshrgt.u64','vrshrle.u64',
-
-            'vrsraeq.u8','vrsrane.u8','vrsracs.u8','vrsrahs.u8','vrsracc.u8','vrsralo.u8','vrsrami.u8','vrsrapl.u8','vrsravs.u8','vrsravc.u8','vrsrahi.u8','vrsrals.u8','vrsrage.u8','vrsralt.u8','vrsragt.u8','vrsrale.u8',
-            'vrsraeq.u16','vrsrane.u16','vrsracs.u16','vrsrahs.u16','vrsracc.u16','vrsralo.u16','vrsrami.u16','vrsrapl.u16','vrsravs.u16','vrsravc.u16','vrsrahi.u16','vrsrals.u16','vrsrage.u16','vrsralt.u16','vrsragt.u16','vrsrale.u16',
-            'vrsraeq.u32','vrsrane.u32','vrsracs.u32','vrsrahs.u32','vrsracc.u32','vrsralo.u32','vrsrami.u32','vrsrapl.u32','vrsravs.u32','vrsravc.u32','vrsrahi.u32','vrsrals.u32','vrsrage.u32','vrsralt.u32','vrsragt.u32','vrsrale.u32',
-            'vrsraeq.u64','vrsrane.u64','vrsracs.u64','vrsrahs.u64','vrsracc.u64','vrsralo.u64','vrsrami.u64','vrsrapl.u64','vrsravs.u64','vrsravc.u64','vrsrahi.u64','vrsrals.u64','vrsrage.u64','vrsralt.u64','vrsragt.u64','vrsrale.u64',
-            ),
-        /* Conditional VFPv3 & NEON SIMD Floating-Point Instructions */
-        34 => array(
-            'vabdeq.f32','vabdne.f32','vabdcs.f32','vabdhs.f32','vabdcc.f32','vabdlo.f32','vabdmi.f32','vabdpl.f32','vabdvs.f32','vabdvc.f32','vabdhi.f32','vabdls.f32','vabdge.f32','vabdlt.f32','vabdgt.f32','vabdle.f32',
-
-            'vabseq.f32','vabsne.f32','vabscs.f32','vabshs.f32','vabscc.f32','vabslo.f32','vabsmi.f32','vabspl.f32','vabsvs.f32','vabsvc.f32','vabshi.f32','vabsls.f32','vabsge.f32','vabslt.f32','vabsgt.f32','vabsle.f32',
-            'vabseq.f64','vabsne.f64','vabscs.f64','vabshs.f64','vabscc.f64','vabslo.f64','vabsmi.f64','vabspl.f64','vabsvs.f64','vabsvc.f64','vabshi.f64','vabsls.f64','vabsge.f64','vabslt.f64','vabsgt.f64','vabsle.f64',
-
-            'vacgeeq.f32','vacgene.f32','vacgecs.f32','vacgehs.f32','vacgecc.f32','vacgelo.f32','vacgemi.f32','vacgepl.f32','vacgevs.f32','vacgevc.f32','vacgehi.f32','vacgels.f32','vacgege.f32','vacgelt.f32','vacgegt.f32','vacgele.f32',
-            'vacgteq.f32','vacgtne.f32','vacgtcs.f32','vacgths.f32','vacgtcc.f32','vacgtlo.f32','vacgtmi.f32','vacgtpl.f32','vacgtvs.f32','vacgtvc.f32','vacgthi.f32','vacgtls.f32','vacgtge.f32','vacgtlt.f32','vacgtgt.f32','vacgtle.f32',
-            'vacleeq.f32','vaclene.f32','vaclecs.f32','vaclehs.f32','vaclecc.f32','vaclelo.f32','vaclemi.f32','vaclepl.f32','vaclevs.f32','vaclevc.f32','vaclehi.f32','vaclels.f32','vaclege.f32','vaclelt.f32','vaclegt.f32','vaclele.f32',
-            'vaclteq.f32','vacltne.f32','vacltcs.f32','vaclths.f32','vacltcc.f32','vacltlo.f32','vacltmi.f32','vacltpl.f32','vacltvs.f32','vacltvc.f32','vaclthi.f32','vacltls.f32','vacltge.f32','vacltlt.f32','vacltgt.f32','vacltle.f32',
-
-            'vaddeq.f32','vaddne.f32','vaddcs.f32','vaddhs.f32','vaddcc.f32','vaddlo.f32','vaddmi.f32','vaddpl.f32','vaddvs.f32','vaddvc.f32','vaddhi.f32','vaddls.f32','vaddge.f32','vaddlt.f32','vaddgt.f32','vaddle.f32',
-            'vaddeq.f64','vaddne.f64','vaddcs.f64','vaddhs.f64','vaddcc.f64','vaddlo.f64','vaddmi.f64','vaddpl.f64','vaddvs.f64','vaddvc.f64','vaddhi.f64','vaddls.f64','vaddge.f64','vaddlt.f64','vaddgt.f64','vaddle.f64',
-
-            'vceqeq.f32','vceqne.f32','vceqcs.f32','vceqhs.f32','vceqcc.f32','vceqlo.f32','vceqmi.f32','vceqpl.f32','vceqvs.f32','vceqvc.f32','vceqhi.f32','vceqls.f32','vceqge.f32','vceqlt.f32','vceqgt.f32','vceqle.f32',
-            'vcgeeq.f32','vcgene.f32','vcgecs.f32','vcgehs.f32','vcgecc.f32','vcgelo.f32','vcgemi.f32','vcgepl.f32','vcgevs.f32','vcgevc.f32','vcgehi.f32','vcgels.f32','vcgege.f32','vcgelt.f32','vcgegt.f32','vcgele.f32',
-            'vcleeq.f32','vclene.f32','vclecs.f32','vclehs.f32','vclecc.f32','vclelo.f32','vclemi.f32','vclepl.f32','vclevs.f32','vclevc.f32','vclehi.f32','vclels.f32','vclege.f32','vclelt.f32','vclegt.f32','vclele.f32',
-            'vcgteq.f32','vcgtne.f32','vcgtcs.f32','vcgths.f32','vcgtcc.f32','vcgtlo.f32','vcgtmi.f32','vcgtpl.f32','vcgtvs.f32','vcgtvc.f32','vcgthi.f32','vcgtls.f32','vcgtge.f32','vcgtlt.f32','vcgtgt.f32','vcgtle.f32',
-            'vclteq.f32','vcltne.f32','vcltcs.f32','vclths.f32','vcltcc.f32','vcltlo.f32','vcltmi.f32','vcltpl.f32','vcltvs.f32','vcltvc.f32','vclthi.f32','vcltls.f32','vcltge.f32','vcltlt.f32','vcltgt.f32','vcltle.f32',
-
-            'vcmpeq.f32','vcmpne.f32','vcmpcs.f32','vcmphs.f32','vcmpcc.f32','vcmplo.f32','vcmpmi.f32','vcmppl.f32','vcmpvs.f32','vcmpvc.f32','vcmphi.f32','vcmpls.f32','vcmpge.f32','vcmplt.f32','vcmpgt.f32','vcmple.f32',
-            'vcmpeq.f64','vcmpne.f64','vcmpcs.f64','vcmphs.f64','vcmpcc.f64','vcmplo.f64','vcmpmi.f64','vcmppl.f64','vcmpvs.f64','vcmpvc.f64','vcmphi.f64','vcmpls.f64','vcmpge.f64','vcmplt.f64','vcmpgt.f64','vcmple.f64',
-
-            'vcmpeeq.f32','vcmpene.f32','vcmpecs.f32','vcmpehs.f32','vcmpecc.f32','vcmpelo.f32','vcmpemi.f32','vcmpepl.f32','vcmpevs.f32','vcmpevc.f32','vcmpehi.f32','vcmpels.f32','vcmpege.f32','vcmpelt.f32','vcmpegt.f32','vcmpele.f32',
-            'vcmpeeq.f64','vcmpene.f64','vcmpecs.f64','vcmpehs.f64','vcmpecc.f64','vcmpelo.f64','vcmpemi.f64','vcmpepl.f64','vcmpevs.f64','vcmpevc.f64','vcmpehi.f64','vcmpels.f64','vcmpege.f64','vcmpelt.f64','vcmpegt.f64','vcmpele.f64',
-
-            'vcvteq.s16.f32','vcvtne.s16.f32','vcvtcs.s16.f32','vcvths.s16.f32','vcvtcc.s16.f32','vcvtlo.s16.f32','vcvtmi.s16.f32','vcvtpl.s16.f32','vcvtvs.s16.f32','vcvtvc.s16.f32','vcvthi.s16.f32','vcvtls.s16.f32','vcvtge.s16.f32','vcvtlt.s16.f32','vcvtgt.s16.f32','vcvtle.s16.f32',
-            'vcvteq.s16.f64','vcvtne.s16.f64','vcvtcs.s16.f64','vcvths.s16.f64','vcvtcc.s16.f64','vcvtlo.s16.f64','vcvtmi.s16.f64','vcvtpl.s16.f64','vcvtvs.s16.f64','vcvtvc.s16.f64','vcvthi.s16.f64','vcvtls.s16.f64','vcvtge.s16.f64','vcvtlt.s16.f64','vcvtgt.s16.f64','vcvtle.s16.f64',
-            'vcvteq.s32.f32','vcvtne.s32.f32','vcvtcs.s32.f32','vcvths.s32.f32','vcvtcc.s32.f32','vcvtlo.s32.f32','vcvtmi.s32.f32','vcvtpl.s32.f32','vcvtvs.s32.f32','vcvtvc.s32.f32','vcvthi.s32.f32','vcvtls.s32.f32','vcvtge.s32.f32','vcvtlt.s32.f32','vcvtgt.s32.f32','vcvtle.s32.f32',
-            'vcvteq.s32.f64','vcvtne.s32.f64','vcvtcs.s32.f64','vcvths.s32.f64','vcvtcc.s32.f64','vcvtlo.s32.f64','vcvtmi.s32.f64','vcvtpl.s32.f64','vcvtvs.s32.f64','vcvtvc.s32.f64','vcvthi.s32.f64','vcvtls.s32.f64','vcvtge.s32.f64','vcvtlt.s32.f64','vcvtgt.s32.f64','vcvtle.s32.f64',
-            'vcvteq.u16.f32','vcvtne.u16.f32','vcvtcs.u16.f32','vcvths.u16.f32','vcvtcc.u16.f32','vcvtlo.u16.f32','vcvtmi.u16.f32','vcvtpl.u16.f32','vcvtvs.u16.f32','vcvtvc.u16.f32','vcvthi.u16.f32','vcvtls.u16.f32','vcvtge.u16.f32','vcvtlt.u16.f32','vcvtgt.u16.f32','vcvtle.u16.f32',
-            'vcvteq.u16.f64','vcvtne.u16.f64','vcvtcs.u16.f64','vcvths.u16.f64','vcvtcc.u16.f64','vcvtlo.u16.f64','vcvtmi.u16.f64','vcvtpl.u16.f64','vcvtvs.u16.f64','vcvtvc.u16.f64','vcvthi.u16.f64','vcvtls.u16.f64','vcvtge.u16.f64','vcvtlt.u16.f64','vcvtgt.u16.f64','vcvtle.u16.f64',
-            'vcvteq.u32.f32','vcvtne.u32.f32','vcvtcs.u32.f32','vcvths.u32.f32','vcvtcc.u32.f32','vcvtlo.u32.f32','vcvtmi.u32.f32','vcvtpl.u32.f32','vcvtvs.u32.f32','vcvtvc.u32.f32','vcvthi.u32.f32','vcvtls.u32.f32','vcvtge.u32.f32','vcvtlt.u32.f32','vcvtgt.u32.f32','vcvtle.u32.f32',
-            'vcvteq.u32.f64','vcvtne.u32.f64','vcvtcs.u32.f64','vcvths.u32.f64','vcvtcc.u32.f64','vcvtlo.u32.f64','vcvtmi.u32.f64','vcvtpl.u32.f64','vcvtvs.u32.f64','vcvtvc.u32.f64','vcvthi.u32.f64','vcvtls.u32.f64','vcvtge.u32.f64','vcvtlt.u32.f64','vcvtgt.u32.f64','vcvtle.u32.f64',
-            'vcvteq.f16.f32','vcvtne.f16.f32','vcvtcs.f16.f32','vcvths.f16.f32','vcvtcc.f16.f32','vcvtlo.f16.f32','vcvtmi.f16.f32','vcvtpl.f16.f32','vcvtvs.f16.f32','vcvtvc.f16.f32','vcvthi.f16.f32','vcvtls.f16.f32','vcvtge.f16.f32','vcvtlt.f16.f32','vcvtgt.f16.f32','vcvtle.f16.f32',
-            'vcvteq.f32.s32','vcvtne.f32.s32','vcvtcs.f32.s32','vcvths.f32.s32','vcvtcc.f32.s32','vcvtlo.f32.s32','vcvtmi.f32.s32','vcvtpl.f32.s32','vcvtvs.f32.s32','vcvtvc.f32.s32','vcvthi.f32.s32','vcvtls.f32.s32','vcvtge.f32.s32','vcvtlt.f32.s32','vcvtgt.f32.s32','vcvtle.f32.s32',
-            'vcvteq.f32.u32','vcvtne.f32.u32','vcvtcs.f32.u32','vcvths.f32.u32','vcvtcc.f32.u32','vcvtlo.f32.u32','vcvtmi.f32.u32','vcvtpl.f32.u32','vcvtvs.f32.u32','vcvtvc.f32.u32','vcvthi.f32.u32','vcvtls.f32.u32','vcvtge.f32.u32','vcvtlt.f32.u32','vcvtgt.f32.u32','vcvtle.f32.u32',
-            'vcvteq.f32.f16','vcvtne.f32.f16','vcvtcs.f32.f16','vcvths.f32.f16','vcvtcc.f32.f16','vcvtlo.f32.f16','vcvtmi.f32.f16','vcvtpl.f32.f16','vcvtvs.f32.f16','vcvtvc.f32.f16','vcvthi.f32.f16','vcvtls.f32.f16','vcvtge.f32.f16','vcvtlt.f32.f16','vcvtgt.f32.f16','vcvtle.f32.f16',
-            'vcvteq.f32.f64','vcvtne.f32.f64','vcvtcs.f32.f64','vcvths.f32.f64','vcvtcc.f32.f64','vcvtlo.f32.f64','vcvtmi.f32.f64','vcvtpl.f32.f64','vcvtvs.f32.f64','vcvtvc.f32.f64','vcvthi.f32.f64','vcvtls.f32.f64','vcvtge.f32.f64','vcvtlt.f32.f64','vcvtgt.f32.f64','vcvtle.f32.f64',
-            'vcvteq.f64.s32','vcvtne.f64.s32','vcvtcs.f64.s32','vcvths.f64.s32','vcvtcc.f64.s32','vcvtlo.f64.s32','vcvtmi.f64.s32','vcvtpl.f64.s32','vcvtvs.f64.s32','vcvtvc.f64.s32','vcvthi.f64.s32','vcvtls.f64.s32','vcvtge.f64.s32','vcvtlt.f64.s32','vcvtgt.f64.s32','vcvtle.f64.s32',
-            'vcvteq.f64.u32','vcvtne.f64.u32','vcvtcs.f64.u32','vcvths.f64.u32','vcvtcc.f64.u32','vcvtlo.f64.u32','vcvtmi.f64.u32','vcvtpl.f64.u32','vcvtvs.f64.u32','vcvtvc.f64.u32','vcvthi.f64.u32','vcvtls.f64.u32','vcvtge.f64.u32','vcvtlt.f64.u32','vcvtgt.f64.u32','vcvtle.f64.u32',
-            'vcvteq.f64.f32','vcvtne.f64.f32','vcvtcs.f64.f32','vcvths.f64.f32','vcvtcc.f64.f32','vcvtlo.f64.f32','vcvtmi.f64.f32','vcvtpl.f64.f32','vcvtvs.f64.f32','vcvtvc.f64.f32','vcvthi.f64.f32','vcvtls.f64.f32','vcvtge.f64.f32','vcvtlt.f64.f32','vcvtgt.f64.f32','vcvtle.f64.f32',
-
-            'vcvtreq.s32.f32','vcvtrne.s32.f32','vcvtrcs.s32.f32','vcvtrhs.s32.f32','vcvtrcc.s32.f32','vcvtrlo.s32.f32','vcvtrmi.s32.f32','vcvtrpl.s32.f32','vcvtrvs.s32.f32','vcvtrvc.s32.f32','vcvtrhi.s32.f32','vcvtrls.s32.f32','vcvtrge.s32.f32','vcvtrlt.s32.f32','vcvtrgt.s32.f32','vcvtrle.s32.f32',
-            'vcvtreq.s32.f64','vcvtrne.s32.f64','vcvtrcs.s32.f64','vcvtrhs.s32.f64','vcvtrcc.s32.f64','vcvtrlo.s32.f64','vcvtrmi.s32.f64','vcvtrpl.s32.f64','vcvtrvs.s32.f64','vcvtrvc.s32.f64','vcvtrhi.s32.f64','vcvtrls.s32.f64','vcvtrge.s32.f64','vcvtrlt.s32.f64','vcvtrgt.s32.f64','vcvtrle.s32.f64',
-            'vcvtreq.u32.f32','vcvtrne.u32.f32','vcvtrcs.u32.f32','vcvtrhs.u32.f32','vcvtrcc.u32.f32','vcvtrlo.u32.f32','vcvtrmi.u32.f32','vcvtrpl.u32.f32','vcvtrvs.u32.f32','vcvtrvc.u32.f32','vcvtrhi.u32.f32','vcvtrls.u32.f32','vcvtrge.u32.f32','vcvtrlt.u32.f32','vcvtrgt.u32.f32','vcvtrle.u32.f32',
-            'vcvtreq.u32.f64','vcvtrne.u32.f64','vcvtrcs.u32.f64','vcvtrhs.u32.f64','vcvtrcc.u32.f64','vcvtrlo.u32.f64','vcvtrmi.u32.f64','vcvtrpl.u32.f64','vcvtrvs.u32.f64','vcvtrvc.u32.f64','vcvtrhi.u32.f64','vcvtrls.u32.f64','vcvtrge.u32.f64','vcvtrlt.u32.f64','vcvtrgt.u32.f64','vcvtrle.u32.f64',
-
-            'vcvtbeq.f16.f32','vcvtbne.f16.f32','vcvtbcs.f16.f32','vcvtbhs.f16.f32','vcvtbcc.f16.f32','vcvtblo.f16.f32','vcvtbmi.f16.f32','vcvtbpl.f16.f32','vcvtbvs.f16.f32','vcvtbvc.f16.f32','vcvtbhi.f16.f32','vcvtbls.f16.f32','vcvtbge.f16.f32','vcvtblt.f16.f32','vcvtbgt.f16.f32','vcvtble.f16.f32',
-            'vcvtbeq.f32.f16','vcvtbne.f32.f16','vcvtbcs.f32.f16','vcvtbhs.f32.f16','vcvtbcc.f32.f16','vcvtblo.f32.f16','vcvtbmi.f32.f16','vcvtbpl.f32.f16','vcvtbvs.f32.f16','vcvtbvc.f32.f16','vcvtbhi.f32.f16','vcvtbls.f32.f16','vcvtbge.f32.f16','vcvtblt.f32.f16','vcvtbgt.f32.f16','vcvtble.f32.f16',
-
-            'vcvtteq.f16.f32','vcvttne.f16.f32','vcvttcs.f16.f32','vcvtths.f16.f32','vcvttcc.f16.f32','vcvttlo.f16.f32','vcvttmi.f16.f32','vcvttpl.f16.f32','vcvttvs.f16.f32','vcvttvc.f16.f32','vcvtthi.f16.f32','vcvttls.f16.f32','vcvttge.f16.f32','vcvttlt.f16.f32','vcvttgt.f16.f32','vcvttle.f16.f32',
-            'vcvtteq.f32.f16','vcvttne.f32.f16','vcvttcs.f32.f16','vcvtths.f32.f16','vcvttcc.f32.f16','vcvttlo.f32.f16','vcvttmi.f32.f16','vcvttpl.f32.f16','vcvttvs.f32.f16','vcvttvc.f32.f16','vcvtthi.f32.f16','vcvttls.f32.f16','vcvttge.f32.f16','vcvttlt.f32.f16','vcvttgt.f32.f16','vcvttle.f32.f16',
-
-            'vdiveq.f32','vdivne.f32','vdivcs.f32','vdivhs.f32','vdivcc.f32','vdivlo.f32','vdivmi.f32','vdivpl.f32','vdivvs.f32','vdivvc.f32','vdivhi.f32','vdivls.f32','vdivge.f32','vdivlt.f32','vdivgt.f32','vdivle.f32',
-            'vdiveq.f64','vdivne.f64','vdivcs.f64','vdivhs.f64','vdivcc.f64','vdivlo.f64','vdivmi.f64','vdivpl.f64','vdivvs.f64','vdivvc.f64','vdivhi.f64','vdivls.f64','vdivge.f64','vdivlt.f64','vdivgt.f64','vdivle.f64',
-
-            'vmaxeq.f32','vmaxne.f32','vmaxcs.f32','vmaxhs.f32','vmaxcc.f32','vmaxlo.f32','vmaxmi.f32','vmaxpl.f32','vmaxvs.f32','vmaxvc.f32','vmaxhi.f32','vmaxls.f32','vmaxge.f32','vmaxlt.f32','vmaxgt.f32','vmaxle.f32',
-            'vmineq.f32','vminne.f32','vmincs.f32','vminhs.f32','vmincc.f32','vminlo.f32','vminmi.f32','vminpl.f32','vminvs.f32','vminvc.f32','vminhi.f32','vminls.f32','vminge.f32','vminlt.f32','vmingt.f32','vminle.f32',
-
-            'vmlaeq.f32','vmlane.f32','vmlacs.f32','vmlahs.f32','vmlacc.f32','vmlalo.f32','vmlami.f32','vmlapl.f32','vmlavs.f32','vmlavc.f32','vmlahi.f32','vmlals.f32','vmlage.f32','vmlalt.f32','vmlagt.f32','vmlale.f32',
-            'vmlaeq.f64','vmlane.f64','vmlacs.f64','vmlahs.f64','vmlacc.f64','vmlalo.f64','vmlami.f64','vmlapl.f64','vmlavs.f64','vmlavc.f64','vmlahi.f64','vmlals.f64','vmlage.f64','vmlalt.f64','vmlagt.f64','vmlale.f64',
-
-            'vmlseq.f32','vmlsne.f32','vmlscs.f32','vmlshs.f32','vmlscc.f32','vmlslo.f32','vmlsmi.f32','vmlspl.f32','vmlsvs.f32','vmlsvc.f32','vmlshi.f32','vmlsls.f32','vmlsge.f32','vmlslt.f32','vmlsgt.f32','vmlsle.f32',
-            'vmlseq.f64','vmlsne.f64','vmlscs.f64','vmlshs.f64','vmlscc.f64','vmlslo.f64','vmlsmi.f64','vmlspl.f64','vmlsvs.f64','vmlsvc.f64','vmlshi.f64','vmlsls.f64','vmlsge.f64','vmlslt.f64','vmlsgt.f64','vmlsle.f64',
-
-            'vmuleq.f32','vmulne.f32','vmulcs.f32','vmulhs.f32','vmulcc.f32','vmullo.f32','vmulmi.f32','vmulpl.f32','vmulvs.f32','vmulvc.f32','vmulhi.f32','vmulls.f32','vmulge.f32','vmullt.f32','vmulgt.f32','vmulle.f32',
-            'vmuleq.f64','vmulne.f64','vmulcs.f64','vmulhs.f64','vmulcc.f64','vmullo.f64','vmulmi.f64','vmulpl.f64','vmulvs.f64','vmulvc.f64','vmulhi.f64','vmulls.f64','vmulge.f64','vmullt.f64','vmulgt.f64','vmulle.f64',
-
-            'vnegeq.f32','vnegne.f32','vnegcs.f32','vneghs.f32','vnegcc.f32','vneglo.f32','vnegmi.f32','vnegpl.f32','vnegvs.f32','vnegvc.f32','vneghi.f32','vnegls.f32','vnegge.f32','vneglt.f32','vneggt.f32','vnegle.f32',
-            'vnegeq.f64','vnegne.f64','vnegcs.f64','vneghs.f64','vnegcc.f64','vneglo.f64','vnegmi.f64','vnegpl.f64','vnegvs.f64','vnegvc.f64','vneghi.f64','vnegls.f64','vnegge.f64','vneglt.f64','vneggt.f64','vnegle.f64',
-
-            'vnmlaeq.f32','vnmlane.f32','vnmlacs.f32','vnmlahs.f32','vnmlacc.f32','vnmlalo.f32','vnmlami.f32','vnmlapl.f32','vnmlavs.f32','vnmlavc.f32','vnmlahi.f32','vnmlals.f32','vnmlage.f32','vnmlalt.f32','vnmlagt.f32','vnmlale.f32',
-            'vnmlaeq.f64','vnmlane.f64','vnmlacs.f64','vnmlahs.f64','vnmlacc.f64','vnmlalo.f64','vnmlami.f64','vnmlapl.f64','vnmlavs.f64','vnmlavc.f64','vnmlahi.f64','vnmlals.f64','vnmlage.f64','vnmlalt.f64','vnmlagt.f64','vnmlale.f64',
-
-            'vnmlseq.f32','vnmlsne.f32','vnmlscs.f32','vnmlshs.f32','vnmlscc.f32','vnmlslo.f32','vnmlsmi.f32','vnmlspl.f32','vnmlsvs.f32','vnmlsvc.f32','vnmlshi.f32','vnmlsls.f32','vnmlsge.f32','vnmlslt.f32','vnmlsgt.f32','vnmlsle.f32',
-            'vnmlseq.f64','vnmlsne.f64','vnmlscs.f64','vnmlshs.f64','vnmlscc.f64','vnmlslo.f64','vnmlsmi.f64','vnmlspl.f64','vnmlsvs.f64','vnmlsvc.f64','vnmlshi.f64','vnmlsls.f64','vnmlsge.f64','vnmlslt.f64','vnmlsgt.f64','vnmlsle.f64',
-
-            'vnmuleq.f64','vnmulne.f64','vnmulcs.f64','vnmulhs.f64','vnmulcc.f64','vnmullo.f64','vnmulmi.f64','vnmulpl.f64','vnmulvs.f64','vnmulvc.f64','vnmulhi.f64','vnmulls.f64','vnmulge.f64','vnmullt.f64','vnmulgt.f64','vnmulle.f64',
-            'vnmuleq.f32','vnmulne.f32','vnmulcs.f32','vnmulhs.f32','vnmulcc.f32','vnmullo.f32','vnmulmi.f32','vnmulpl.f32','vnmulvs.f32','vnmulvc.f32','vnmulhi.f32','vnmulls.f32','vnmulge.f32','vnmullt.f32','vnmulgt.f32','vnmulle.f32',
-
-            'vpaddeq.f32','vpaddne.f32','vpaddcs.f32','vpaddhs.f32','vpaddcc.f32','vpaddlo.f32','vpaddmi.f32','vpaddpl.f32','vpaddvs.f32','vpaddvc.f32','vpaddhi.f32','vpaddls.f32','vpaddge.f32','vpaddlt.f32','vpaddgt.f32','vpaddle.f32',
-
-            'vpmaxeq.f32','vpmaxne.f32','vpmaxcs.f32','vpmaxhs.f32','vpmaxcc.f32','vpmaxlo.f32','vpmaxmi.f32','vpmaxpl.f32','vpmaxvs.f32','vpmaxvc.f32','vpmaxhi.f32','vpmaxls.f32','vpmaxge.f32','vpmaxlt.f32','vpmaxgt.f32','vpmaxle.f32',
-            'vpmineq.f32','vpminne.f32','vpmincs.f32','vpminhs.f32','vpmincc.f32','vpminlo.f32','vpminmi.f32','vpminpl.f32','vpminvs.f32','vpminvc.f32','vpminhi.f32','vpminls.f32','vpminge.f32','vpminlt.f32','vpmingt.f32','vpminle.f32',
-
-            'vrecpeeq.u32','vrecpene.u32','vrecpecs.u32','vrecpehs.u32','vrecpecc.u32','vrecpelo.u32','vrecpemi.u32','vrecpepl.u32','vrecpevs.u32','vrecpevc.u32','vrecpehi.u32','vrecpels.u32','vrecpege.u32','vrecpelt.u32','vrecpegt.u32','vrecpele.u32',
-            'vrecpeeq.f32','vrecpene.f32','vrecpecs.f32','vrecpehs.f32','vrecpecc.f32','vrecpelo.f32','vrecpemi.f32','vrecpepl.f32','vrecpevs.f32','vrecpevc.f32','vrecpehi.f32','vrecpels.f32','vrecpege.f32','vrecpelt.f32','vrecpegt.f32','vrecpele.f32',
-            'vrecpseq.f32','vrecpsne.f32','vrecpscs.f32','vrecpshs.f32','vrecpscc.f32','vrecpslo.f32','vrecpsmi.f32','vrecpspl.f32','vrecpsvs.f32','vrecpsvc.f32','vrecpshi.f32','vrecpsls.f32','vrecpsge.f32','vrecpslt.f32','vrecpsgt.f32','vrecpsle.f32',
-
-            'vrsqrteeq.u32','vrsqrtene.u32','vrsqrtecs.u32','vrsqrtehs.u32','vrsqrtecc.u32','vrsqrtelo.u32','vrsqrtemi.u32','vrsqrtepl.u32','vrsqrtevs.u32','vrsqrtevc.u32','vrsqrtehi.u32','vrsqrtels.u32','vrsqrtege.u32','vrsqrtelt.u32','vrsqrtegt.u32','vrsqrtele.u32',
-            'vrsqrteeq.f32','vrsqrtene.f32','vrsqrtecs.f32','vrsqrtehs.f32','vrsqrtecc.f32','vrsqrtelo.f32','vrsqrtemi.f32','vrsqrtepl.f32','vrsqrtevs.f32','vrsqrtevc.f32','vrsqrtehi.f32','vrsqrtels.f32','vrsqrtege.f32','vrsqrtelt.f32','vrsqrtegt.f32','vrsqrtele.f32',
-            'vrsqrtseq.f32','vrsqrtsne.f32','vrsqrtscs.f32','vrsqrtshs.f32','vrsqrtscc.f32','vrsqrtslo.f32','vrsqrtsmi.f32','vrsqrtspl.f32','vrsqrtsvs.f32','vrsqrtsvc.f32','vrsqrtshi.f32','vrsqrtsls.f32','vrsqrtsge.f32','vrsqrtslt.f32','vrsqrtsgt.f32','vrsqrtsle.f32',
-
-            'vsqrteq.f32','vsqrtne.f32','vsqrtcs.f32','vsqrths.f32','vsqrtcc.f32','vsqrtlo.f32','vsqrtmi.f32','vsqrtpl.f32','vsqrtvs.f32','vsqrtvc.f32','vsqrthi.f32','vsqrtls.f32','vsqrtge.f32','vsqrtlt.f32','vsqrtgt.f32','vsqrtle.f32',
-            'vsqrteq.f64','vsqrtne.f64','vsqrtcs.f64','vsqrths.f64','vsqrtcc.f64','vsqrtlo.f64','vsqrtmi.f64','vsqrtpl.f64','vsqrtvs.f64','vsqrtvc.f64','vsqrthi.f64','vsqrtls.f64','vsqrtge.f64','vsqrtlt.f64','vsqrtgt.f64','vsqrtle.f64',
-
-            'vsubeq.f32','vsubne.f32','vsubcs.f32','vsubhs.f32','vsubcc.f32','vsublo.f32','vsubmi.f32','vsubpl.f32','vsubvs.f32','vsubvc.f32','vsubhi.f32','vsubls.f32','vsubge.f32','vsublt.f32','vsubgt.f32','vsuble.f32',
-            'vsubeq.f64','vsubne.f64','vsubcs.f64','vsubhs.f64','vsubcc.f64','vsublo.f64','vsubmi.f64','vsubpl.f64','vsubvs.f64','vsubvc.f64','vsubhi.f64','vsubls.f64','vsubge.f64','vsublt.f64','vsubgt.f64','vsuble.f64'
-            ),
-        /* Registers */
-        35 => array(
-            /* General-Purpose Registers */
-            'r0','r1','r2','r3','r4','r5','r6','r7',
-            'r8','r9','r10','r11','r12','r13','r14','r15',
-            /* Scratch Registers */
-            'a1','a2','a3','a4',
-            /* Variable Registers */
-            'v1','v2','v3','v4','v5','v6','v7','v8',
-            /* Other Synonims for General-Purpose Registers */
-            'sb','sl','fp','ip','sp','lr','pc',
-            /* WMMX Data Registers */
-            'wr0','wr1','wr2','wr3','wr4','wr5','wr6','wr7',
-            'wr8','wr9','wr10','wr11','wr12','wr13','wr14','wr15',
-            /* WMMX Control Registers */
-            'wcid','wcon','wcssf','wcasf',
-            /* WMMX-Mapped General-Purpose Registers */
-            'wcgr0','wcgr1','wcgr2','wcgr3',
-            /* VFPv3 Registers */
-            's0','s1','s2','s3','s4','s5','s6','s7',
-            's8','s9','s10','s11','s12','s13','s14','s15',
-            's16','s17','s18','s19','s20','s21','s22','s23',
-            's24','s25','s26','s27','s28','s29','s30','s31',
-            /* VFPv3/NEON Registers */
-            'd0','d1','d2','d3','d4','d5','d6','d7',
-            'd8','d9','d10','d11','d12','d13','d14','d15',
-            'd16','d17','d18','d19','d20','d21','d22','d23',
-            'd24','d25','d26','d27','d28','d29','d30','d31',
-            /* NEON Registers */
-            'q0','q1','q2','q3','q4','q5','q6','q7',
-            'q8','q9','q10','q11','q12','q13','q14','q15'
-            )
-        ),
-    'SYMBOLS' => array(
-        '[', ']', '(', ')',
-        '+', '-', '*', '/', '%',
-        '.', ',', ';', ':'
-        ),
-    '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,
-        11 => false,
-        12 => false,
-        13 => false,
-        14 => false,
-        15 => false,
-        16 => false,
-        17 => false,
-        18 => false,
-        19 => false,
-        20 => false,
-        21 => false,
-        22 => false,
-        23 => false,
-        24 => false,
-        25 => false,
-        26 => false,
-        27 => false,
-        28 => false,
-        29 => false,
-        30 => false,
-        31 => false,
-        32 => false,
-        33 => false,
-        34 => false,
-        35 => false
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            /* Unconditional Data Processing Instructions */
-            1 => 'color: #00007f; font-weight: normal; font-style: normal;',
-            /* Conditional Data Processing Instructions */
-            2 => 'color: #00007f; font-weight: normal; font-style: italic;',
-            /* Unconditional Memory Access Instructions */
-            3 => 'color: #00007f; font-weight: normal; font-style: normal;',
-            /* Conditional Memory Access Instructions */
-            4 => 'color: #00007f; font-weight: normal; font-style: italic;',
-            /* Unconditional Flags Changing Instructions */
-            5 => 'color: #00007f; font-weight: bold; font-style: normal;',
-            /* Conditional Flags Changing Instructions */
-            6 => 'color: #00007f; font-weight: bold; font-style: italic;',
-            /* Unconditional Flow Control Instructions */
-            7 => 'color: #0000ff; font-weight: normal; font-style: normal;',
-            /* Conditional Flow Control Instructions */
-            8 => 'color: #0000ff; font-weight: normal; font-style: italic;',
-            /* Unconditional Syncronization Instructions */
-            9 => 'color: #00007f; font-weight: normal; font-style: normal;',
-            /* Conditional Syncronization Instructions */
-            10 => 'color: #00007f; font-weight: normal; font-style: italic;',
-            /* Unonditional ARMv6 SIMD */
-            11 => 'color: #b00040; font-weight: normal; font-style: normal;',
-            /* Conditional ARMv6 SIMD */
-            12 => 'color: #b00040; font-weight: normal; font-style: italic;',
-            /* Unconditional Coprocessor Instructions */
-            13 => 'color: #00007f; font-weight: normal; font-style: normal;',
-            /* Conditional Coprocessor Instructions */
-            14 => 'color: #00007f; font-weight: bold; font-style: italic;',
-            /* Unconditional System Instructions */
-            15 => 'color: #00007f; font-weight: normal; font-style: normal;',
-            /* Conditional System Instructions */
-            16 => 'color: #00007f; font-weight: bold; font-style: italic;',
-            /* Unconditional WMMX/WMMX2 SIMD Instructions */
-            17 => 'color: #b00040; font-weight: normal; font-style: normal;',
-            /* Conditional WMMX/WMMX2 SIMD Instructions */
-            18 => 'color: #b00040; font-weight: normal; font-style: italic;',
-            /* Unconditional VFPv3 & NEON SIMD Memory Access Instructions */
-            19 => 'color: #b00040; font-weight: normal; font-style: normal;',
-            /* Unconditional NEON SIMD Logical Instructions */
-            20 => 'color: #b00040; font-weight: normal; font-style: italic;',
-            /* Unconditional NEON SIMD ARM Registers Interop Instructions */
-            21 => 'color: #b00040; font-weight: normal; font-style: italic;',
-            /* Unconditional NEON SIMD Bit/Byte-Level Instructions */
-            22 => 'color: #b00040; font-weight: normal; font-style: italic;',
-            /* Unconditional NEON SIMD Universal Integer Instructions */
-            23 => 'color: #b00040; font-weight: normal; font-style: italic;',
-            /* Unconditional NEON SIMD Signed Integer Instructions */
-            24 => 'color: #b00040; font-weight: normal; font-style: italic;',
-            /* Unconditional NEON SIMD Unsigned Integer Instructions */
-            25 => 'color: #b00040; font-weight: normal; font-style: italic;',
-            /* Unconditional VFPv3 & NEON SIMD Floating-Point Instructions */
-            26 => 'color: #b00040; font-weight: normal; font-style: italic;',
-            /* Conditional VFPv3 & NEON SIMD Memory Access Instructions */
-            27 => 'color: #b00040; font-weight: normal; font-style: italic;',
-            /* Conditional NEON SIMD Logical Instructions */
-            28 => 'color: #b00040; font-weight: normal; font-style: italic;',
-            /* Conditional NEON SIMD ARM Registers Interop Instructions */
-            29 => 'color: #b00040; font-weight: normal; font-style: italic;',
-            /* Conditional NEON SIMD Bit/Byte-Level Instructions */
-            30 => 'color: #b00040; font-weight: normal; font-style: italic;',
-            /* Conditional NEON SIMD Universal Integer Instructions */
-            31 => 'color: #b00040; font-weight: normal; font-style: italic;',
-            /* Conditional NEON SIMD Signed Integer Instructions */
-            32 => 'color: #b00040; font-weight: normal; font-style: italic;',
-            /* Conditional NEON SIMD Unsigned Integer Instructions */
-            33 => 'color: #b00040; font-weight: normal; font-style: italic;',
-            /* Conditional VFPv3 & NEON SIMD Floating-Point Instructions */
-            34 => 'color: #b00040; font-weight: normal; font-style: italic;',
-            /* Registers */
-            35 => 'color: #46aa03; font-weight: bold;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #666666; font-style: italic;',
-            2 => 'color: #adadad; font-style: italic;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #000099; font-weight: bold;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #009900; font-weight: bold;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #7f007f;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #ff0000;'
-            ),
-        'METHODS' => array(
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #339933;'
-            ),
-        'REGEXPS' => array(
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => '',
-        4 => '',
-        5 => '',
-        6 => '',
-        7 => '',
-        8 => '',
-        9 => '',
-        10 => '',
-        11 => '',
-        12 => '',
-        13 => '',
-        14 => '',
-        15 => '',
-        16 => '',
-        17 => '',
-        18 => '',
-        19 => '',
-        20 => '',
-        21 => '',
-        22 => '',
-        23 => '',
-        24 => '',
-        25 => '',
-        26 => '',
-        27 => '',
-        28 => '',
-        29 => '',
-        30 => '',
-        31 => '',
-        32 => '',
-        33 => '',
-        34 => '',
-        35 => ''
-        ),
-    'NUMBERS' =>
-        GESHI_NUMBER_BIN_PREFIX_PERCENT |
-        GESHI_NUMBER_BIN_SUFFIX |
-        GESHI_NUMBER_HEX_PREFIX |
-        GESHI_NUMBER_HEX_SUFFIX |
-        GESHI_NUMBER_OCT_SUFFIX |
-        GESHI_NUMBER_INT_BASIC |
-        GESHI_NUMBER_FLT_NONSCI |
-        GESHI_NUMBER_FLT_NONSCI_F |
-        GESHI_NUMBER_FLT_SCI_ZERO,
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(
-        ),
-    'REGEXPS' => array(
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        ),
-    'TAB_WIDTH' => 8,
-    'PARSER_CONTROL' => array(
-        'KEYWORDS' => array(
-            'DISALLOWED_BEFORE' => "(?<![a-zA-Z0-9\$_\|\#>|^])",
-            'DISALLOWED_AFTER' => "(?![a-zA-Z0-9_<\|%])"
-        )
-    )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/asm.php b/wiki/vendor/geshi/geshi/src/geshi/asm.php
deleted file mode 100644
index 606f2f4..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/asm.php
+++ /dev/null
@@ -1,601 +0,0 @@
-<?php
-/*************************************************************************************
- * asm.php
- * -------
- * Author: Tux (tux@inmail.cz)
- * Copyright: (c) 2004 Tux (http://tux.a4.cz/),
- *                2004-2009 Nigel McNie (http://qbnz.com/highlighter),
- *                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.9.0
- * Date Started: 2004/07/27
- *
- * x86 Assembler language file for GeSHi.
- * Based on the following documents:
- *   - "Intel64 and IA-32 Architectures Programmer's Reference Manual
- *       Volume 2 (2A & 2B): Instructions Set Reference, A-Z",
- *       Order Number 25383-039US, May 2011
- *   - "Intel Advanced Vector Extensions Programming Reference",
- *       Order Number 319433-011, June 2011
- *   - "AMD64 Architecture Programmer's Manual Volume 3:
- *       General-Purpose and System Instructions", Publication No. 24594,
- *       Revision 3.15, November 2009
- *   - "AMD64 Architecture Programmer's Manual Volume 4:
- *       128-Bit and 256-Bit Media Instructions", Publication No. 26568,
- *       Revision 3.12, May 2011
- *   - "AMD64 Architecture Programmer's Manual Volume 5:
- *       64-Bit Media and x87 Floating-Point Instructions",
- *       Publication No. 26569, Revision 3.11, December 2009
- *   - "AMD64 Technology Lightweight Profiling Specification",
- *       Publication No. 43724, Revision 3.08, August 2010
- *   - "Application Note 108: Cyrix Extended MMX Instruction Set"
- *   - "VIA Padlock Programming Guide", 3rd May 2005
- *   - http://en.wikipedia.org/wiki/X86_instruction_listings
- *   - NASM 2.10rc8 Online Documenation at
- *       http://www.nasm.us/xdoc/2.10rc8/html/nasmdoc0.html
- * Color scheme is taken from SciTE. Previous versions of this file
- * also used words from SciTE configuration file (based on NASM syntax)
- *
- * CHANGES
- * -------
- * 2011/10/07
- *   -  Rearranged instructions and registers into groups
- *   -  Updated to support the following extensions
- *          - CMOV, BMI1, BMI2, TBM, FSGSBASE
- *          - LZCNT, TZCNT, POPCNT, MOVBE, CRC32
- *          - MMX, MMX+, EMMX
- *          - 3dnow!, 3dnow!+, 3dnow! Geode, 3dnow! Prefetch
- *          - SSE, SSE2, SSE3, SSSE3, SSE4A, SSE4.1, SSE4.2
- *          - AVX, AVX2, XOP, FMA3, FMA4, CVT16
- *          - VMX, SVM
- *          - AES, PCLMULQDQ, Padlock, RDRAND
- *   -  Updated NASM macros and directives
- * 2010/07/01 (1.0.8.11)
- *   -  Added MMX/SSE/new x86-64 registers, MMX/SSE (up to 4.2) instructions
- * 2008/05/23 (1.0.7.22)
- *   -  Added description of extra language features (SF#1970248)
- * 2004/11/27 (1.0.2)
- *   -  Added support for multiple object splitters
- * 2004/10/27 (1.0.1)
- *   -  Added support for URLs
- *   -  Added binary and hexadecimal regexps
- * 2004/08/05 (1.0.0)
- *   -  First Release
- *
- * TODO (updated 2004/11/27)
- * -------------------------
- *
- *************************************************************************************
- *
- *     This file is part of GeSHi.
- *
- *   GeSHi is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   GeSHi is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with GeSHi; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- ************************************************************************************/
-
-$language_data = array (
-    'LANG_NAME' => 'ASM',
-    'COMMENT_SINGLE' => array(1 => ';'),
-    'COMMENT_MULTI' => array(),
-    //Line address prefix suppression
-    'COMMENT_REGEXP' => array(2 => "/^(?:[0-9a-f]{0,4}:)?[0-9a-f]{4}(?:[0-9a-f]{4})?/mi"),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array("'", '"'),
-    'ESCAPE_CHAR' => '',
-    'KEYWORDS' => array(
-        /* General-Purpose */
-        1 => array(
-            /* BCD instructions */
-            'aaa','aad','aam','aas','daa','das',
-            /* Control flow instructions */
-            'ja','jae','jb','jbe','jc','je','jg','jge','jl','jle','jmp','jna',
-            'jnae','jnb','jnbe','jnc','jne','jng','jnge','jnl','jnle','jno','jnp','jns','jnz',
-            'jo','jp','jpe','jpo','js','jz','jcxz','jecxz','jrcxz','loop','loope','loopne',
-            'call','ret','enter','leave','syscall','sysenter','int','into',
-            /* Predicate instructions */
-            'seta','setae','setb','setbe','setc','sete','setg','setge','setl','setle','setna',
-            'setnae','setnb','setnbe','setnc','setne','setng','setnge','setnl','setnle','setno',
-            'setnp','setns','setnz','seto','setp','setpe','setpo','sets','setz','salc',
-            /* Conditional move instructions */
-            'cmovo','cmovno','cmovb','cmovc','cmovnae','cmovae','cmovnb','cmovnc','cmove','cmovz',
-            'cmovne','cmovnz','cmovbe','cmovna','cmova','cmovnbe','cmovs','cmovns','cmovp','cmovpe',
-            'cmovnp','cmovpo','cmovl','cmovnge','cmovge','cmovnl','cmovle','cmovng','cmovg','cmovnle',
-            /* ALU instructions */
-            'add','sub','adc','sbb','neg','cmp','inc','dec','and','or','xor','not','test',
-            'shl','shr','sal','sar','shld','shrd','rol','ror','rcl','rcr',
-            'cbw','cwd','cwde','cdq','cdqe','cqo','bsf','bsr','bt','btc','btr','bts',
-            'idiv','imul','div','mul','bswap','nop',
-            /* Memory instructions */
-            'lea','mov','movsx','movsxd','movzx','xlatb','bound','xchg','xadd','cmpxchg','cmpxchg8b','cmpxchg16b',
-            /* Stack instructions */
-            'push','pop','pusha','popa','pushad','popad','pushf','popf','pushfd','popfd','pushfq','popfq',
-            /* EFLAGS manipulations instructions */
-            'clc','cld','stc','std','cmc','lahf','sahf',
-            /* Prefix instructions */
-            'lock','rep','repe','repz','repne','repnz',
-            /* String instructions */
-            'cmps','cmpsb','cmpsw',/*'cmpsd',*/ 'cmpsq', /*CMPSD conflicts with the SSE2 instructions of the same name*/
-            'movs','movsb','movsw',/*'movsd',*/ 'movsq', /*MOVSD conflicts with the SSE2 instructions of the same name*/
-            'scas','scasb','scasw','scasd','scasq',
-            'stos','stosb','stosw','stosd','stosq',
-            'lods','lodsb','lodsw','lodsd','lodsq',
-            /* Information instructions */
-            'cpuid','rdtsc','rdtscp','rdpmc','xgetbv',
-            'sgdt','sidt','sldt','smsw','str','lar',
-            /* LWP instructions */
-            'llwpcb','slwpcb','lwpval','lwpins',
-            /* Instructions from miscellaneous extensions */
-            'crc32','popcnt','lzcnt','tzcnt','movbe','pclmulqdq','rdrand',
-            /* FSGSBASE instructions */
-            'rdfsbase','rdgsbase','wrfsbase','wrgsbase',
-            /* BMI1 instructions */
-            'andn','bextr','blsi','blsmk','blsr',
-            /* BMI2 instructions */
-            'bzhi','mulx','pdep','pext','rorx','sarx','shlx','shrx',
-            /* TBM instructions */
-            'blcfill','blci','blcic','blcmsk','blcs','blsfill','blsic','t1mskc','tzmsk',
-            /* Legacy instructions */
-            'arpl','ud2','lds','les','lfs','lgs','lss','lsl','verr','verw',
-            /* Privileged instructions */
-            'cli','sti','clts','hlt','rsm','in','insb','insw','insd',
-            'out','outsb','outsw','outsd','clflush','invd','invlpg','invpcid','wbinvd',
-            'iret','iretd','iretq','sysexit','sysret','lidt','lgdt','lldt','lmsw','ltr',
-            'monitor','mwait','rdmsr','wrmsr','swapgs',
-            'fxsave','fxsave64','fxrstor','fxrstor64',
-            'xsave','xsaveopt','xrstor','xsetbv','getsec',
-            /* VMX instructions */
-            'invept','invvpid','vmcall','vmclear','vmlaunch','vmresume',
-            'vmptrld','vmptrst','vmread','vmwrite','vmxoff','vmxon',
-            /* SVM (AMD-V) instructions */
-            'invlpga','skinit','clgi','stgi','vmload','vmsave','vmmcall','vmrun'
-            ),
-        /*FPU*/
-        2 => array(
-            'f2xm1','fabs','fadd','faddp','fbld','fbstp','fchs','fclex','fcom','fcomp','fcompp','fdecstp',
-            'fdisi','fdiv','fdivp','fdivr','fdivrp','feni','ffree','fiadd','ficom','ficomp','fidiv',
-            'fidivr','fild','fimul','fincstp','finit','fist','fistp','fisub','fisubr','fld','fld1',
-            'fldcw','fldenv','fldenvw','fldl2e','fldl2t','fldlg2','fldln2','fldpi','fldz','fmul',
-            'fmulp','fnclex','fndisi','fneni','fninit','fnop','fnsave','fnsavew','fnstcw','fnstenv',
-            'fnstenvw','fnstsw','fpatan','fprem','fptan','frndint','frstor','frstorw','fsave',
-            'fsavew','fscale','fsqrt','fst','fstcw','fstenv','fstenvw','fstp','fstsw','fsub','fsubp',
-            'fsubr','fsubrp','ftst','fwait','fxam','fxch','fxtract','fyl2x','fyl2xp1',
-            'fsetpm','fcos','fldenvd','fnsaved','fnstenvd','fprem1','frstord','fsaved','fsin','fsincos',
-            'fstenvd','fucom','fucomp','fucompp','ffreep',
-            /* FCMOV instructions */
-            'fcomi','fcomip','fucomi','fucomip',
-            'fcmovb','fcmove','fcmovbe','fcmovu','fcmovnb','fcmovne','fcmovnbe','fcmovnu',
-            /* SSE3 instructions */
-            'fisttp'
-            ),
-        /*SIMD*/
-        3 => array(
-            /* MMX instructions */
-            'movd','movq',
-            'paddb','paddw','paddd','paddsb','paddsw','paddusb','paddusw',
-            'psubb','psubw','psubd','psubsb','psubsw','psubusb','psubusw',
-            'pand','pandn','por','pxor',
-            'pcmpeqb','pcmpeqd','pcmpeqw','pcmpgtb','pcmpgtd','pcmpgtw',
-            'pmaddwd','pmulhw','pmullw',
-            'psllw','pslld','psllq','psrlw','psrld','psrlq','psraw','psrad',
-            'packuswb','packsswb','packssdw',
-            'punpcklbw','punpcklwd','punpckldq','punpckhbw','punpckhwd','punpckhdq',
-            'emms',
-            /* MMX+ instructions */
-            'pavgb','pavgw',
-            'pextrw','pinsrw','pmovmskb',
-            'pmaxsw','pmaxub','pminsw','pminub',
-            'pmulhuw','psadbw','pshufw',
-            'prefetchnta','prefetcht0','prefetcht1','prefetcht2',
-            'maskmovq','movntq','sfence',
-            /* EMMX instructions (only available on Cyrix MediaGXm) */
-            'paddsiw','psubsiw',
-            /*'pmulhrw',*/'pmachriw','pmulhriw', /* PMULHRW conflicts with the 3dnow! instruction of the same name */
-            'pmagw','pdistib','paveb',
-            'pmvzb','pmvnzb','pmvlzb','pmvgezb',
-            /* 3dnow! instructions! */
-            'pfacc','pfadd','pfsub','pfsubr','pfmul',
-            'pfcmpeq','pfcmpge','pfcmpgt',
-            'pfmax','pfmin',
-            'pfrcp','pfrcpit1','pfrcpit2','pfrsqit1','pfrsqrt',
-            'pi2fd','pf2id',
-            'pavgusb','pmulhrw',
-            'femms',
-            /* 3dnow!+ instructions */
-            'pfnacc','pfpnacc','pi2fw','pf2iw','pswapd',
-            /* 3dnow! Geode instructions */
-            'pfrsqrtv','pfrcpv',
-            /* 3dnow! Prefetch instructions */
-            'prefetch','prefetchw',
-            /* SSE instructions */
-            'addss','addps','subss','subps',
-            'mulss','mulps','divss','divps','sqrtss','sqrtps',
-            'rcpss','rcpps','rsqrtss','rsqrtps',
-            'maxss','maxps','minss','minps',
-            'cmpss','comiss','ucomiss','cmpps',
-            'cmpeqss','cmpltss','cmpless','cmpunordss','cmpneqss','cmpnltss','cmpnless','cmpordss',
-            'cmpeqps','cmpltps','cmpleps','cmpunordps','cmpneqps','cmpnltps','cmpnleps','cmpordps',
-            'andnps','andps','orps','xorps',
-            'cvtsi2ss','cvtss2si','cvttss2si',
-            'cvtpi2ps','cvtps2pi','cvttps2pi',
-            'movss','movlps','movhps','movlhps','movhlps','movaps','movups','movntps','movmskps',
-            'shufps','unpckhps','unpcklps',
-            'ldmxcsr','stmxcsr',
-            /* SSE2 instructions */
-            'addpd','addsd','subpd','subsd',
-            'mulsd','mulpd','divsd','divpd','sqrtsd','sqrtpd',
-            'maxsd','maxpd','minsd','minpd',
-            'cmpsd','comisd','ucomisd','cmppd',
-            'cmpeqsd','cmpltsd','cmplesd','cmpunordsd','cmpneqsd','cmpnltsd','cmpnlesd','cmpordsd',
-            'cmpeqpd','cmpltpd','cmplepd','cmpunordpd','cmpneqpd','cmpnltpd','cmpnlepd','cmpordpd',
-            'andnpd','andpd','orpd','xorpd',
-            'cvtsd2ss','cvtpd2ps','cvtss2sd','cvtps2pd',
-            'cvtdq2ps','cvtps2dq','cvttps2dq',
-            'cvtdq2pd','cvtpd2dq','cvttpd2dq',
-            'cvtsi2sd','cvtsd2si','cvttsd2si',
-            'cvtpi2pd','cvtpd2pi','cvttpd2pi',
-            'movsd','movlpd','movhpd','movapd','movupd','movntpd','movmskpd',
-            'shufpd','unpckhpd','unpcklpd',
-            'movnti','movdqa','movdqu','movntdq','maskmovdqu',
-            'movdq2q','movq2dq',
-            'paddq','psubq','pmuludq',
-            'pslldq','psrldq',
-            'punpcklqdq','punpckhqdq',
-            'pshufhw','pshuflw','pshufd',
-            'lfence','mfence',
-            /* SSE3 instructions */
-            'addsubps','addsubpd',
-            'haddps','haddpd','hsubps','hsubpd',
-            'movsldup','movshdup','movddup',
-            'lddqu',
-            /* SSSE3 instructions */
-            'psignb','psignw','psignd',
-            'pabsb','pabsw','pabsd',
-            'palignr','pshufb',
-            'pmulhrsw','pmaddubsw',
-            'phaddw','phaddd','phaddsw',
-            'phsubw','phsubd','phsubsw',
-            /* SSE4A instructions */
-            'extrq','insertq','movntsd','movntss',
-            /* SSE4.1 instructions */
-            'mpsadbw','phminposuw',
-            'pmuldq','pmulld',
-            'dpps','dppd',
-            'blendps','blendpd','blendvps','blendvpd','pblendvb','pblendw',
-            'pmaxsb','pmaxuw','pmaxsd','pmaxud','pminsb','pminuw','pminsd','pminud',
-            'roundps','roundss','roundpd','roundsd',
-            'insertps','pinsrb','pinsrd','pinsrq',
-            'extractps','pextrb','pextrd','pextrq',
-            'pmovsxbw','pmovsxbd','pmovsxbq','pmovsxwd','pmovsxwq','pmovsxdq',
-            'pmovzxbw','pmovzxbd','pmovzxbq','pmovzxwd','pmovzxwq','pmovzxdq',
-            'ptest',
-            'pcmpeqq',
-            'packusdw',
-            'movntdqa',
-            /* SSE4.2 instructions */
-            'pcmpgtq',
-            'pcmpestri','pcmpestrm','pcmpistri','pcmpistrm',
-            /* AES instructions */
-            'aesenc','aesenclast','aesdec','aesdeclast','aeskeygenassist','aesimc',
-            /* VIA Padlock instructions */
-            'xcryptcbc','xcryptcfb','xcryptctr','xcryptecb','xcryptofb',
-            'xsha1','xsha256','montmul','xstore',
-            /* AVX instructions */
-            'vaddss','vaddps','vaddsd','vaddpd','vsubss','vsubps','vsubsd','vsubpd',
-            'vaddsubps','vaddsubpd',
-            'vhaddps','vhaddpd','vhsubps','vhsubpd',
-            'vmulss','vmulps','vmulsd','vmulpd',
-            'vmaxss','vmaxps','vmaxsd','vmaxpd','vminss','vminps','vminsd','vminpd',
-            'vandps','vandpd','vandnps','vandnpd','vorps','vorpd','vxorps','vxorpd',
-            'vblendps','vblendpd','vblendvps','vblendvpd',
-            'vcmpss','vcomiss','vucomiss','vcmpsd','vcomisd','vucomisd','vcmpps','vcmppd',
-            'vcmpeqss','vcmpltss','vcmpless','vcmpunordss','vcmpneqss','vcmpnltss','vcmpnless','vcmpordss',
-            'vcmpeq_uqss','vcmpngess','vcmpngtss','vcmpfalsess','vcmpneq_oqss','vcmpgess','vcmpgtss','vcmptruess',
-            'vcmpeq_osss','vcmplt_oqss','vcmple_oqss','vcmpunord_sss','vcmpneq_usss','vcmpnlt_uqss','vcmpnle_uqss','vcmpord_sss',
-            'vcmpeq_usss','vcmpnge_uqss','vcmpngt_uqss','vcmpfalse_osss','vcmpneq_osss','vcmpge_oqss','vcmpgt_oqss','vcmptrue_usss',
-            'vcmpeqps','vcmpltps','vcmpleps','vcmpunordps','vcmpneqps','vcmpnltps','vcmpnleps','vcmpordps',
-            'vcmpeq_uqps','vcmpngeps','vcmpngtps','vcmpfalseps','vcmpneq_oqps','vcmpgeps','vcmpgtps','vcmptrueps',
-            'vcmpeq_osps','vcmplt_oqps','vcmple_oqps','vcmpunord_sps','vcmpneq_usps','vcmpnlt_uqps','vcmpnle_uqps','vcmpord_sps',
-            'vcmpeq_usps','vcmpnge_uqps','vcmpngt_uqps','vcmpfalse_osps','vcmpneq_osps','vcmpge_oqps','vcmpgt_oqps','vcmptrue_usps',
-            'vcmpeqsd','vcmpltsd','vcmplesd','vcmpunordsd','vcmpneqsd','vcmpnltsd','vcmpnlesd','vcmpordsd',
-            'vcmpeq_uqsd','vcmpngesd','vcmpngtsd','vcmpfalsesd','vcmpneq_oqsd','vcmpgesd','vcmpgtsd','vcmptruesd',
-            'vcmpeq_ossd','vcmplt_oqsd','vcmple_oqsd','vcmpunord_ssd','vcmpneq_ussd','vcmpnlt_uqsd','vcmpnle_uqsd','vcmpord_ssd',
-            'vcmpeq_ussd','vcmpnge_uqsd','vcmpngt_uqsd','vcmpfalse_ossd','vcmpneq_ossd','vcmpge_oqsd','vcmpgt_oqsd','vcmptrue_ussd',
-            'vcmpeqpd','vcmpltpd','vcmplepd','vcmpunordpd','vcmpneqpd','vcmpnltpd','vcmpnlepd','vcmpordpd',
-            'vcmpeq_uqpd','vcmpngepd','vcmpngtpd','vcmpfalsepd','vcmpneq_oqpd','vcmpgepd','vcmpgtpd','vcmptruepd',
-            'vcmpeq_ospd','vcmplt_oqpd','vcmple_oqpd','vcmpunord_spd','vcmpneq_uspd','vcmpnlt_uqpd','vcmpnle_uqpd','vcmpord_spd',
-            'vcmpeq_uspd','vcmpnge_uqpd','vcmpngt_uqpd','vcmpfalse_ospd','vcmpneq_ospd','vcmpge_oqpd','vcmpgt_oqpd','vcmptrue_uspd',
-            'vcvtsd2ss','vcvtpd2ps','vcvtss2sd','vcvtps2pd',
-            'vcvtsi2ss','vcvtss2si','vcvttss2si',
-            'vcvtpi2ps','vcvtps2pi','vcvttps2pi',
-            'vcvtdq2ps','vcvtps2dq','vcvttps2dq',
-            'vcvtdq2pd','vcvtpd2dq','vcvttpd2dq',
-            'vcvtsi2sd','vcvtsd2si','vcvttsd2si',
-            'vcvtpi2pd','vcvtpd2pi','vcvttpd2pi',
-            'vdivss','vdivps','vdivsd','vdivpd','vsqrtss','vsqrtps','vsqrtsd','vsqrtpd',
-            'vdpps','vdppd',
-            'vmaskmovps','vmaskmovpd',
-            'vmovss','vmovsd','vmovaps','vmovapd','vmovups','vmovupd','vmovntps','vmovntpd',
-            'vmovhlps','vmovlhps','vmovlps','vmovlpd','vmovhps','vmovhpd',
-            'vmovsldup','vmovshdup','vmovddup',
-            'vmovmskps','vmovmskpd',
-            'vroundss','vroundps','vroundsd','vroundpd',
-            'vrcpss','vrcpps','vrsqrtss','vrsqrtps',
-            'vunpcklps','vunpckhps','vunpcklpd','vunpckhpd',
-            'vbroadcastss','vbroadcastsd','vbroadcastf128',
-            'vextractps','vinsertps','vextractf128','vinsertf128',
-            'vshufps','vshufpd','vpermilps','vpermilpd','vperm2f128',
-            'vtestps','vtestpd',
-            'vpaddb','vpaddusb','vpaddsb','vpaddw','vpaddusw','vpaddsw','vpaddd','vpaddq',
-            'vpsubb','vpsubusb','vpsubsb','vpsubw','vpsubusw','vpsubsw','vpsubd','vpsubq',
-            'vphaddw','vphaddsw','vphaddd','vphsubw','vphsubsw','vphsubd',
-            'vpsllw','vpslld','vpsllq','vpsrlw','vpsrld','vpsrlq','vpsraw','vpsrad',
-            'vpand','vpandn','vpor','vpxor',
-            'vpblendwb','vpblendw',
-            'vpsignb','vpsignw','vpsignd',
-            'vpavgb','vpavgw',
-            'vpabsb','vpabsw','vpabsd',
-            'vmovd','vmovq','vmovdqa','vmovdqu','vlddqu','vmovntdq','vmovntdqa','vmaskmovdqu',
-            'vpmovsxbw','vpmovsxbd','vpmovsxbq','vpmovsxwd','vpmovsxwq','vpmovsxdq',
-            'vpmovzxbw','vpmovzxbd','vpmovzxbq','vpmovzxwd','vpmovzxwq','vpmovzxdq',
-            'vpackuswb','vpacksswb','vpackusdw','vpackssdw',
-            'vpcmpeqb','vpcmpeqw','vpcmpeqd','vpcmpeqq','vpcmpgtb','vpcmpgtw','vpcmpgtd','vpcmpgtq',
-            'vpmaddubsw','vpmaddwd',
-            'vpmullw','vpmulhuw','vpmulhw','vpmulhrsw','vpmulld','vpmuludq','vpmuldq',
-            'vpmaxub','vpmaxsb','vpmaxuw','vpmaxsw','vpmaxud','vpmaxsd',
-            'vpminub','vpminsb','vpminuw','vpminsw','vpminud','vpminsd',
-            'vpmovmskb','vptest',
-            'vpunpcklbw','vpunpcklwd','vpunpckldq','vpunpcklqdq',
-            'vpunpckhbw','vpunpckhwd','vpunpckhdq','vpunpckhqdq',
-            'vpslldq','vpsrldq','vpalignr',
-            'vpshufb','vpshuflw','vpshufhw','vpshufd',
-            'vpextrb','vpextrw','vpextrd','vpextrq','vpinsrb','vpinsrw','vpinsrd','vpinsrq',
-            'vpsadbw','vmpsadbw','vphminposuw',
-            'vpcmpestri','vpcmpestrm','vpcmpistri','vpcmpistrm',
-            'vpclmulqdq','vaesenc','vaesenclast','vaesdec','vaesdeclast','vaeskeygenassist','vaesimc',
-            'vldmxcsr','vstmxcsr','vzeroall','vzeroupper',
-            /* AVX2 instructions */
-            'vbroadcasti128','vpbroadcastb','vpbroadcastw','vpbroadcastd','vpbroadcastq',
-            'vpblendd',
-            'vpermd','vpermq','vperm2i128',
-            'vextracti128','vinserti128',
-            'vpmaskmovd','vpmaskmovq',
-            'vpsllvd','vpsllvq','vpsravd','vpsrlvd',
-            'vpgatherdd','vpgatherqd','vgatherdq','vgatherqq',
-            'vpermps','vpermpd',
-            'vgatherdpd','vgatherqpd','vgatherdps','vgatherqps',
-            /* XOP instructions */
-            'vfrczss','vfrczps','vfrczsd','vfrczpd',
-            'vpermil2ps','vperlil2pd',
-            'vpcomub','vpcomb','vpcomuw','vpcomw','vpcomud','vpcomd','vpcomuq','vpcomq',
-            'vphaddubw','vphaddbw','vphaddubd','vphaddbd','vphaddubq','vphaddbq',
-            'vphadduwd','vphaddwd','vphadduwq','vphaddwq','vphaddudq','vphadddq',
-            'vphsubbw','vphsubwd','vphsubdq',
-            'vpmacsdd','vpmacssdd','vpmacsdql','vpmacssdql','vpmacsdqh','vpmacssdqh',
-            'vpmacsww','vpmacssww','vpmacswd','vpmacsswd',
-            'vpmadcswd','vpmadcsswd',
-            'vpcmov','vpperm',
-            'vprotb','vprotw','vprotd','vprotq',
-            'vpshab','vpshaw','vpshad','vpshaq',
-            'vpshlb','vpshlw','vpshld','vpshlq',
-            /* CVT16 instructions */
-            'vcvtph2ps','vcvtps2ph',
-            /* FMA4 instructions */
-            'vfmaddss','vfmaddps','vfmaddsd','vfmaddpd',
-            'vfmsubss','vfmsubps','vfmsubsd','vfmsubpd',
-            'vnfmaddss','vnfmaddps','vnfmaddsd','vnfmaddpd',
-            'vnfmsubss','vnfmsubps','vnfmsubsd','vnfmsubpd',
-            'vfmaddsubps','vfmaddsubpd','vfmsubaddps','vfmsubaddpd',
-            /* FMA3 instructions */
-            'vfmadd132ss','vfmadd213ss','vfmadd231ss',
-            'vfmadd132ps','vfmadd213ps','vfmadd231ps',
-            'vfmadd132sd','vfmadd213sd','vfmadd231sd',
-            'vfmadd132pd','vfmadd213pd','vfmadd231pd',
-            'vfmaddsub132ps','vfmaddsub213ps','vfmaddsub231ps',
-            'vfmaddsub132pd','vfmaddsub213pd','vfmaddsub231pd',
-            'vfmsubadd132ps','vfmsubadd213ps','vfmsubadd231ps',
-            'vfmsubadd132pd','vfmsubadd213pd','vfmsubadd231pd',
-            'vfmsub132ss','vfmsub213ss','vfmsub231ss',
-            'vfmsub132ps','vfmsub213ps','vfmsub231ps',
-            'vfmsub132sd','vfmsub213sd','vfmsub231sd',
-            'vfmsub132pd','vfmsub213pd','vfmsub231pd',
-            'vfnmadd132ss','vfnmadd213ss','vfnmadd231ss',
-            'vfnmadd132ps','vfnmadd213ps','vfnmadd231ps',
-            'vfnmadd132sd','vfnmadd213sd','vfnmadd231sd',
-            'vfnmadd132pd','vfnmadd213pd','vfnmadd231pd',
-            'vfnmsub132ss','vfnmsub213ss','vfnmsub231ss',
-            'vfnmsub132ps','vfnmsub213ps','vfnmsub231ps',
-            'vfnmsub132sd','vfnmsub213sd','vfnmsub231sd',
-            'vfnmsub132pd','vfnmsub213pd','vfnmsub231pd'
-            ),
-        /*registers*/
-        4 => array(
-            /* General-Purpose Registers */
-            'al','ah','bl','bh','cl','ch','dl','dh','sil','dil','bpl','spl',
-            'r8b','r9b','r10b','r11b','r12b','r13b','r14b','r15b',
-            'ax','bx','cx','dx','si','di','bp','sp',
-            'r8w','r9w','r10w','r11w','r12w','r13w','r14w','r15w',
-            'eax','ebx','ecx','edx','esi','edi','ebp','esp',
-            'r8d','r9d','r10d','r11d','r12d','r13d','r14d','r15d',
-            'rax','rcx','rdx','rbx','rsp','rbp','rsi','rdi',
-            'r8','r9','r10','r11','r12','r13','r14','r15',
-            /* Debug Registers */
-            'dr0','dr1','dr2','dr3','dr6','dr7',
-            /* Control Registers */
-            'cr0','cr2','cr3','cr4','cr8',
-            /* Test Registers (Supported on Intel 486 only) */
-            'tr3','tr4','tr5','tr6','tr7',
-            /* Segment Registers */
-            'cs','ds','es','fs','gs','ss',
-            /* FPU Registers */
-            'st','st0','st1','st2','st3','st4','st5','st6','st7',
-            /* MMX Registers */
-            'mm0','mm1','mm2','mm3','mm4','mm5','mm6','mm7',
-            /* SSE Registers */
-            'xmm0','xmm1','xmm2','xmm3','xmm4','xmm5','xmm6','xmm7',
-            'xmm8','xmm9','xmm10','xmm11','xmm12','xmm13','xmm14','xmm15',
-            /* AVX Registers */
-            'ymm0','ymm1','ymm2','ymm3','ymm4','ymm5','ymm6','ymm7',
-            'ymm8','ymm9','ymm10','ymm11','ymm12','ymm13','ymm14','ymm15'
-            ),
-        /*Directive*/
-        5 => array(
-            'db','dw','dd','dq','dt','do','dy',
-            'resb','resw','resd','resq','rest','reso','resy','incbin','equ','times','safeseh',
-            '__utf16__','__utf32__',
-            'default','cpu','float','start','imagebase','osabi',
-            '..start','..imagebase','..gotpc','..gotoff','..gottpoff','..got','..plt','..sym','..tlsie',
-            'section','segment','__sect__','group','absolute',
-            '.bss','.comment','.data','.lbss','.ldata','.lrodata','.rdata','.rodata','.tbss','.tdata','.text',
-            'alloc','bss','code','exec','data','noalloc','nobits','noexec','nowrite','progbits','rdata','tls','write',
-            'private','public','common','stack','overlay','class',
-            'extern','global','import','export',
-            '%define','%idefine','%xdefine','%ixdefine','%assign','%undef',
-            '%defstr','%idefstr','%deftok','%ideftok',
-            '%strcat','%strlen','%substr',
-            '%macro','%imacro','%rmacro','%exitmacro','%endmacro','%unmacro',
-            '%if','%ifn','%elif','%elifn','%else','%endif',
-            '%ifdef','%ifndef','%elifdef','%elifndef',
-            '%ifmacro','%ifnmacro','%elifmacro','%elifnmacro',
-            '%ifctx','%ifnctx','%elifctx','%elifnctx',
-            '%ifidn','%ifnidn','%elifidn','%elifnidn',
-            '%ifidni','%ifnidni','%elifidni','%elifnidni',
-            '%ifid','%ifnid','%elifid','%elifnid',
-            '%ifnum','%ifnnum','%elifnum','%elifnnum',
-            '%ifstr','%ifnstr','%elifstr','%elifnstr',
-            '%iftoken','%ifntoken','%eliftoken','%elifntoken',
-            '%ifempty','%ifnempty','%elifempty','%elifnempty',
-            '%ifenv','%ifnenv','%elifenv','%elifnenv',
-            '%rep','%exitrep','%endrep',
-            '%while','%exitwhile','%endwhile',
-            '%include','%pathsearch','%depend','%use',
-            '%push','%pop','%repl','%arg','%local','%stacksize','flat','flat64','large','small',
-            '%error','%warning','%fatal',
-            '%00','.nolist','%rotate','%line','%!','%final','%clear',
-            'struc','endstruc','istruc','at','iend',
-            'align','alignb','sectalign',
-            'bits','use16','use32','use64',
-            '__nasm_major__','__nasm_minor__','__nasm_subminor__','___nasm_patchlevel__',
-            '__nasm_version_id__','__nasm_ver__',
-            '__file__','__line__','__pass__','__bits__','__output_format__',
-            '__date__','__time__','__date_num__','__time_num__','__posix_time__',
-            '__utc_date__','__utc_time__','__utc_date_num__','__utc_time_num__',
-            '__float_daz__','__float_round__','__float__',
-            /* Keywords from standard packages */
-            '__use_altreg__',
-            '__use_smartalign__','smartalign','__alignmode__',
-            '__use_fp__','__infinity__','__nan__','__qnan__','__snan__',
-            '__float8__','__float16__','__float32__','__float64__','__float80m__','__float80e__','__float128l__','__float128h__'
-            ),
-        /*Operands*/
-        6 => array(
-            'a16','a32','a64','o16','o32','o64','strict',
-            'byte','word','dword','qword','tword','oword','yword','nosplit',
-            '%0','%1','%2','%3','%4','%5','%6','%7','%8','%9',
-            'abs','rel',
-            'seg','wrt'
-            )
-        ),
-    'SYMBOLS' => array(
-        1 => array(
-                '[', ']', '(', ')',
-                '+', '-', '*', '/', '%',
-                '.', ',', ';', ':'
-            ),
-        2 => 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: #00007f; font-weight: bold;',
-            2 => 'color: #0000ff;',
-            3 => 'color: #b00040;',
-            4 => 'color: #46aa03; font-weight: bold;',
-            5 => 'color: #0000ff; font-weight: bold;',
-            6 => 'color: #0000ff; font-weight: bold;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #666666; font-style: italic;',
-            2 => 'color: #adadad; font-style: italic;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #000099; font-weight: bold;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #009900; font-weight: bold;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #7f007f;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #ff0000;'
-            ),
-        'METHODS' => array(
-            ),
-        'SYMBOLS' => array(
-            1 => 'color: #339933;',
-            2 => 'color: #0000ff; font-weight: bold;'
-            ),
-        'REGEXPS' => array(
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => '',
-        4 => '',
-        5 => '',
-        6 => ''
-        ),
-    'NUMBERS' =>
-        GESHI_NUMBER_BIN_PREFIX_PERCENT |
-        GESHI_NUMBER_BIN_SUFFIX |
-        GESHI_NUMBER_HEX_PREFIX |
-        GESHI_NUMBER_HEX_SUFFIX |
-        GESHI_NUMBER_OCT_SUFFIX |
-        GESHI_NUMBER_INT_BASIC |
-        GESHI_NUMBER_FLT_NONSCI |
-        GESHI_NUMBER_FLT_NONSCI_F |
-        GESHI_NUMBER_FLT_SCI_ZERO,
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(
-        ),
-    'REGEXPS' => array(
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        ),
-    'TAB_WIDTH' => 8,
-    'PARSER_CONTROL' => array(
-        'KEYWORDS' => array(
-            'DISALLOWED_BEFORE' => "(?<![a-zA-Z0-9\$_\|\#>|^])",
-            'DISALLOWED_AFTER' => "(?![a-zA-Z0-9_<\|%])"
-        )
-    )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/asp.php b/wiki/vendor/geshi/geshi/src/geshi/asp.php
deleted file mode 100644
index 6ba8f98..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/asp.php
+++ /dev/null
@@ -1,162 +0,0 @@
-<?php
-/*************************************************************************************
- * asp.php
- * --------
- * 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.9.0
- * Date Started: 2004/08/13
- *
- * ASP language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2005/12/30 (1.0.3)
- *   -  Strings only delimited by ", comments by '
- * 2004/11/27 (1.0.2)
- *   -  Added support for multiple object splitters
- * 2004/10/27 (1.0.1)
- *   -  Added support for URLs
- * 2004/08/13 (1.0.0)
- *   -  First Release
- *
- * TODO (updated 2004/11/27)
- * -------------------------
- * * Include all the functions, keywords etc that I have missed
- *
- *************************************************************************************
- *
- *     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' => 'ASP',
-    'COMMENT_SINGLE' => array(1 => "'", 2 => '//'),
-    'COMMENT_MULTI' => array('/*' => '*/'),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array('"'),
-    'ESCAPE_CHAR' => '',
-    'KEYWORDS' => array(
-        1 => array(
-            'include', 'file', 'Const', 'Dim', 'Option', 'Explicit', 'Implicit', 'Set', 'Select', 'ReDim', 'Preserve',
-            'ByVal', 'ByRef', 'End', 'Private', 'Public', 'If', 'Then', 'Else', 'ElseIf', 'Case', 'With', 'NOT',
-            'While', 'Wend', 'For', 'Loop', 'Do', 'Request', 'Response', 'Server', 'ADODB', 'Session', 'Application',
-            'Each', 'In', 'Get', 'Next', 'INT', 'CINT', 'CBOOL', 'CDATE', 'CBYTE', 'CCUR', 'CDBL', 'CLNG', 'CSNG',
-            'CSTR', 'Fix', 'Is', 'Sgn', 'String', 'Boolean', 'Currency', 'Me', 'Single', 'Long', 'Integer', 'Byte',
-            'Variant', 'Double', 'To', 'Let', 'Xor', 'Resume', 'On', 'Error', 'Imp', 'GoTo', 'Call', 'Global'
-            ),
-        2 => array(
-            'Null', 'Nothing', 'And',
-            'False',
-            'True', 'var', 'Or', 'BOF', 'EOF', 'xor',
-            'Function', 'Class', 'New', 'Sub'
-            ),
-        3 => array(
-            'CreateObject', 'Write', 'Redirect', 'Cookies', 'BinaryRead', 'ClientCertificate', 'Form', 'QueryString',
-            'ServerVariables', 'TotalBytes', 'AddHeader', 'AppendToLog', 'BinaryWrite', 'Buffer', 'CacheControl',
-            'Charset', 'Clear', 'ContentType', 'End()', 'Expires', 'ExpiresAbsolute', 'Flush()', 'IsClientConnected',
-            'PICS', 'Status', 'Connection', 'Recordset', 'Execute', 'Abandon', 'Lock', 'UnLock', 'Command', 'Fields',
-            'Properties', 'Property', 'Send', 'Replace', 'InStr', 'TRIM', 'NOW', 'Day', 'Month', 'Hour', 'Minute', 'Second',
-            'Year', 'MonthName', 'LCase', 'UCase', 'Abs', 'Array', 'As', 'LEN', 'MoveFirst', 'MoveLast', 'MovePrevious',
-            'MoveNext', 'LBound', 'UBound', 'Transfer', 'Open', 'Close', 'MapPath', 'FileExists', 'OpenTextFile', 'ReadAll'
-            )
-        ),
-    'SYMBOLS' => array(
-        1 => array(
-            '<%', '%>'
-            ),
-        0 => array(
-            '(', ')', '[', ']', '!', '@', '%', '&', '*', '|', '/', '<', '>',
-            ';', ':', '?', '='),
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false,
-        2 => false,
-        3 => false,
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #990099; font-weight: bold;',
-            2 => 'color: #0000ff; font-weight: bold;',
-            3 => 'color: #330066;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #008000;',
-            2 => 'color: #ff6600;',
-            'MULTI' => 'color: #008000;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #000099; font-weight: bold;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #006600; font-weight:bold;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #cc0000;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #800000;'
-            ),
-        'METHODS' => array(
-            1 => 'color: #9900cc;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #006600; font-weight: bold;',
-            1 => 'color: #000000; font-weight: bold;'
-            ),
-        'REGEXPS' => array(
-            ),
-        'SCRIPT' => array(
-            0 => '',
-            1 => '',
-            2 => '',
-            3 => ''
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => ''
-        ),
-    'OOLANG' => true,
-    'OBJECT_SPLITTERS' => array(
-        1 => '.'
-        ),
-    'REGEXPS' => array(
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_MAYBE,
-    'SCRIPT_DELIMITERS' => array(
-        0 => array(
-            '<%' => '%>'
-            ),
-        1 => array(
-            '<script language="vbscript" runat="server">' => '</script>'
-            ),
-        2 => array(
-            '<script language="javascript" runat="server">' => '</script>'
-            ),
-        3 => "/(?P<start><%=?)(?:\"[^\"]*?\"|\/\*(?!\*\/).*?\*\/|.)*?(?P<end>%>|\Z)/sm"
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        0 => true,
-        1 => true,
-        2 => true,
-        3 => true
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/asymptote.php b/wiki/vendor/geshi/geshi/src/geshi/asymptote.php
deleted file mode 100644
index a75a629..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/asymptote.php
+++ /dev/null
@@ -1,1850 +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.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/wiki/vendor/geshi/geshi/src/geshi/autoconf.php b/wiki/vendor/geshi/geshi/src/geshi/autoconf.php
deleted file mode 100644
index 9c1cf12..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/autoconf.php
+++ /dev/null
@@ -1,510 +0,0 @@
-<?php
-/*************************************************************************************
- * autoconf.php
- * -----
- * Author: Mihai Vasilian (grayasm@gmail.com)
- * Copyright: (c) 2010 Mihai Vasilian
- * Release Version: 1.0.9.0
- * Date Started: 2010/01/25
- *
- * autoconf 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' => 'Autoconf',
-    'COMMENT_SINGLE' => array(2 => '#'),
-    'COMMENT_MULTI' => array(),
-    'COMMENT_REGEXP' => array(
-        //Multiline-continued single-line comments
-        1 => '/\/\/(?:\\\\\\\\|\\\\\\n|.)*$/m',
-        //Multiline-continued preprocessor define
-        2 => '/#(?:\\\\\\\\|\\\\\\n|.)*$/m',
-        //Single Line comment started by dnl
-        3 => '/(?<!\$)\bdnl\b.*$/m',
-        ),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array("'", '"'),
-    'ESCAPE_CHAR' => '',
-    'ESCAPE_REGEXP' => array(),
-    'NUMBERS' =>
-        GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_INT_CSTYLE | GESHI_NUMBER_BIN_PREFIX_0B |
-        GESHI_NUMBER_OCT_PREFIX | GESHI_NUMBER_HEX_PREFIX | GESHI_NUMBER_FLT_NONSCI |
-        GESHI_NUMBER_FLT_NONSCI_F | GESHI_NUMBER_FLT_SCI_SHORT | GESHI_NUMBER_FLT_SCI_ZERO,
-    'KEYWORDS' => array(
-        1 => array(
-            'AC_ACT_IFELSE',
-            'AC_AIX',
-            'AC_ALLOCA',
-            'AC_ARG_ARRAY',
-            'AC_ARG_ENABLE',
-            'AC_ARG_PROGRAM',
-            'AC_ARG_VAR',
-            'AC_ARG_WITH',
-            'AC_AUTOCONF_VERSION',
-            'AC_BEFORE',
-            'AC_C_BACKSLASH_A',
-            'AC_C_BIGENDIAN',
-            'AC_C_CHAR_UNSIGNED',
-            'AC_C_CONST',
-            'AC_C_CROSS',
-            'AC_C_FLEXIBLE_ARRAY_MEMBER',
-            'AC_C_INLINE',
-            'AC_C_LONG_DOUBLE',
-            'AC_C_PROTOTYPES',
-            'AC_C_RESTRICT',
-            'AC_C_STRINGIZE',
-            'AC_C_TYPEOF',
-            'AC_C_VARARRAYS',
-            'AC_C_VOLATILE',
-            'AC_CACHE_CHECK',
-            'AC_CACHE_LOAD',
-            'AC_CACHE_SAVE',
-            'AC_CACHE_VAL',
-            'AC_CANONICAL_BUILD',
-            'AC_CANONICAL_HOST',
-            'AC_CANONICAL_SYSTEM',
-            'AC_CANONICAL_TARGET',
-            'AC_CHAR_UNSIGNED',
-            'AC_CHECK_ALIGNOF',
-            'AC_CHECK_DECL',
-            'AC_CHECK_DECLS',
-            'AC_CHECK_DECLS_ONCE',
-            'AC_CHECK_FILE',
-            'AC_CHECK_FILES',
-            'AC_CHECK_FUNC',
-            'AC_CHECK_FUNCS',
-            'AC_CHECK_FUNCS_ONCE',
-            'AC_CHECK_HEADER',
-            'AC_CHECK_HEADERS',
-            'AC_CHECK_HEADERS_ONCE',
-            'AC_CHECK_LIB',
-            'AC_CHECK_MEMBER',
-            'AC_CHECK_MEMBERS',
-            'AC_CHECK_PROG',
-            'AC_CHECK_PROGS',
-            'AC_CHECK_SIZEOF',
-            'AC_CHECK_TARGET_TOOL',
-            'AC_CHECK_TARGET_TOOLS',
-            'AC_CHECK_TOOL',
-            'AC_CHECK_TOOLS',
-            'AC_CHECK_TYPE',
-            'AC_CHECK_TYPES',
-            'AC_CHECKING',
-            'AC_COMPILE_CHECK',
-            'AC_COMPILE_IFELSE',
-            'AC_COMPUTE_INT',
-            'AC_CONFIG_AUX_DIR',
-            'AC_CONFIG_COMMANDS',
-            'AC_CONFIG_COMMANDS_POST',
-            'AC_CONFIG_COMMANDS_PRE',
-            'AC_CONFIG_FILES',
-            'AC_CONFIG_HEADERS',
-            'AC_CONFIG_ITEMS',
-            'AC_CONFIG_LIBOBJ_DIR',
-            'AC_CONFIG_LINKS',
-            'AC_CONFIG_MACRO_DIR',
-            'AC_CONFIG_SRCDIR',
-            'AC_CONFIG_SUBDIRS',
-            'AC_CONFIG_TESTDIR',
-            'AC_CONST',
-            'AC_COPYRIGHT',
-            'AC_CROSS_CHECK',
-            'AC_CYGWIN',
-            'AC_DATAROOTDIR_CHECKED',
-            'AC_DECL_SYS_SIGLIST',
-            'AC_DECL_YYTEXT',
-            'AC_DEFINE',
-            'AC_DEFINE_UNQUOTED',
-            'AC_DEFUN',
-            'AC_DEFUN_ONCE',
-            'AC_DIAGNOSE',
-            'AC_DIR_HEADER',
-            'AC_DISABLE_OPTION_CHECKING',
-            'AC_DYNIX_SEQ',
-            'AC_EGREP_CPP',
-            'AC_EGREP_HEADER',
-            'AC_EMXOS2',
-            'AC_ENABLE',
-            'AC_ERLANG_CHECK_LIB',
-            'AC_ERLANG_NEED_ERL',
-            'AC_ERLANG_NEED_ERLC',
-            'AC_ERLANG_PATH_ERL',
-            'AC_ERLANG_PATH_ERLC',
-            'AC_ERLANG_SUBST_ERTS_VER',
-            'AC_ERLANG_SUBST_INSTALL_LIB_DIR',
-            'AC_ERLANG_SUBST_INSTALL_LIB_SUBDIR',
-            'AC_ERLANG_SUBST_LIB_DIR',
-            'AC_ERLANG_SUBST_ROOT_DIR',
-            'AC_ERROR',
-            'AC_EXEEXT',
-            'AC_F77_DUMMY_MAIN',
-            'AC_F77_FUNC',
-            'AC_F77_LIBRARY_LDFLAGS',
-            'AC_F77_MAIN',
-            'AC_F77_WRAPPERS',
-            'AC_FATAL',
-            'AC_FC_FREEFORM',
-            'AC_FC_FUNC',
-            'AC_FC_LIBRARY_LDFLAGS',
-            'AC_FC_MAIN',
-            'AC_FC_SRCEXT',
-            'AC_FC_WRAPPERS',
-            'AC_FIND_X',
-            'AC_FIND_XTRA',
-            'AC_FOREACH',
-            'AC_FUNC_ALLOCA',
-            'AC_FUNC_CHECK',
-            'AC_FUNC_CHOWN',
-            'AC_FUNC_CLOSEDIR_VOID',
-            'AC_FUNC_ERROR_AT_LINE',
-            'AC_FUNC_FNMATCH',
-            'AC_FUNC_FNMATCH_GNU',
-            'AC_FUNC_FORK',
-            'AC_FUNC_FSEEKO',
-            'AC_FUNC_GETGROUPS',
-            'AC_FUNC_GETLOADAVG',
-            'AC_FUNC_GETMNTENT',
-            'AC_FUNC_GETPGRP',
-            'AC_FUNC_LSTAT',
-            'AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK',
-            'AC_FUNC_MALLOC',
-            'AC_FUNC_MBRTOWC',
-            'AC_FUNC_MEMCMP',
-            'AC_FUNC_MKTIME',
-            'AC_FUNC_MMAP',
-            'AC_FUNC_OBSTACK',
-            'AC_FUNC_REALLOC',
-            'AC_FUNC_SELECT_ARGTYPES',
-            'AC_FUNC_SETPGRP',
-            'AC_FUNC_SETVBUF_REVERSED',
-            'AC_FUNC_STAT',
-            'AC_FUNC_STRCOLL',
-            'AC_FUNC_STRERROR_R',
-            'AC_FUNC_STRFTIME',
-            'AC_FUNC_STRNLEN',
-            'AC_FUNC_STRTOD',
-            'AC_FUNC_STRTOLD',
-            'AC_FUNC_UTIME_NULL',
-            'AC_FUNC_VPRINTF',
-            'AC_FUNC_WAIT3',
-            'AC_GCC_TRADITIONAL',
-            'AC_GETGROUPS_T',
-            'AC_GETLOADAVG',
-            'AC_GNU_SOURCE',
-            'AC_HAVE_FUNCS',
-            'AC_HAVE_HEADERS',
-            'AC_HAVE_LIBRARY',
-            'AC_HAVE_POUNDBANG',
-            'AC_HEADER_ASSERT',
-            'AC_HEADER_CHECK',
-            'AC_HEADER_DIRENT',
-            'AC_HEADER_EGREP',
-            'AC_HEADER_MAJOR',
-            'AC_HEADER_RESOLV',
-            'AC_HEADER_STAT',
-            'AC_HEADER_STDBOOL',
-            'AC_HEADER_STDC',
-            'AC_HEADER_SYS_WAIT',
-            'AC_HEADER_TIME',
-            'AC_HEADER_TIOCGWINSZ',
-            'AC_HELP_STRING',
-            'AC_INCLUDES_DEFAULT',
-            'AC_INIT',
-            'AC_INLINE',
-            'AC_INT_16_BITS',
-            'AC_IRIX_SUN',
-            'AC_ISC_POSIX',
-            'AC_LANG_ASSERT',
-            'AC_LANG_C',
-            'AC_LANG_CALL',
-            'AC_LANG_CONFTEST',
-            'AC_LANG_CPLUSPLUS',
-            'AC_LANG_FORTRAN77',
-            'AC_LANG_FUNC_LINK_TRY',
-            'AC_LANG_POP',
-            'AC_LANG_PROGRAM',
-            'AC_LANG_PUSH',
-            'AC_LANG_RESTORE',
-            'AC_LANG_SAVE',
-            'AC_LANG_SOURCE',
-            'AC_LANG_WERROR',
-            'AC_LIBOBJ',
-            'AC_LIBSOURCE',
-            'AC_LIBSOURCES',
-            'AC_LINK_FILES',
-            'AC_LINK_IFELSE',
-            'AC_LN_S',
-            'AC_LONG_64_BITS',
-            'AC_LONG_DOUBLE',
-            'AC_LONG_FILE_NAMES',
-            'AC_MAJOR_HEADER',
-            'AC_MEMORY_H',
-            'AC_MINGW32',
-            'AC_MINIX',
-            'AC_MINUS_C_MINUS_O',
-            'AC_MMAP',
-            'AC_MODE_T',
-            'AC_MSG_CHECKING',
-            'AC_MSG_ERROR',
-            'AC_MSG_FAILURE',
-            'AC_MSG_NOTICE',
-            'AC_MSG_RESULT',
-            'AC_MSG_WARN',
-            'AC_OBJEXT',
-            'AC_OBSOLETE',
-            'AC_OFF_T',
-            'AC_OPENMP',
-            'AC_OUTPUT',
-            'AC_OUTPUT_COMMANDS',
-            'AC_PACKAGE_BUGREPORT',
-            'AC_PACKAGE_NAME',
-            'AC_PACKAGE_STRING',
-            'AC_PACKAGE_TARNAME',
-            'AC_PACKAGE_URL',
-            'AC_PACKAGE_VERSION',
-            'AC_PATH_PROG',
-            'AC_PATH_PROGS',
-            'AC_PATH_PROGS_FEATURE_CHECK',
-            'AC_PATH_TARGET_TOOL',
-            'AC_PATH_TOOL',
-            'AC_PATH_X',
-            'AC_PATH_XTRA',
-            'AC_PID_T',
-            'AC_PREFIX',
-            'AC_PREFIX_DEFAULT',
-            'AC_PREFIX_PROGRAM',
-            'AC_PREPROC_IFELSE',
-            'AC_PREREQ',
-            'AC_PRESERVE_HELP_ORDER',
-            'AC_PROG_AWK',
-            'AC_PROG_CC',
-            'AC_PROG_CC_C89',
-            'AC_PROG_CC_C99',
-            'AC_PROG_CC_C_O',
-            'AC_PROG_CC_STDC',
-            'AC_PROG_CPP',
-            'AC_PROG_CPP_WERROR',
-            'AC_PROG_CXX',
-            'AC_PROG_CXX_C_O',
-            'AC_PROG_CXXCPP',
-            'AC_PROG_EGREP',
-            'AC_PROG_F77',
-            'AC_PROG_F77_C_O',
-            'AC_PROG_FC',
-            'AC_PROG_FC_C_O',
-            'AC_PROG_FGREP',
-            'AC_PROG_GCC_TRADITIONAL',
-            'AC_PROG_GREP',
-            'AC_PROG_INSTALL',
-            'AC_PROG_LEX',
-            'AC_PROG_LN_S',
-            'AC_PROG_MAKE_SET',
-            'AC_PROG_MKDIR_P',
-            'AC_PROG_OBJC',
-            'AC_PROG_OBJCPP',
-            'AC_PROG_OBJCXX',
-            'AC_PROG_OBJCXXCPP',
-            'AC_PROG_RANLIB',
-            'AC_PROG_SED',
-            'AC_PROG_YACC',
-            'AC_PROGRAM_CHECK',
-            'AC_PROGRAM_EGREP',
-            'AC_PROGRAM_PATH',
-            'AC_PROGRAMS_CHECK',
-            'AC_PROGRAMS_PATH',
-            'AC_REMOTE_TAPE',
-            'AC_REPLACE_FNMATCH',
-            'AC_REPLACE_FUNCS',
-            'AC_REQUIRE',
-            'AC_REQUIRE_AUX_FILE',
-            'AC_REQUIRE_CPP',
-            'AC_RESTARTABLE_SYSCALLS',
-            'AC_RETSIGTYPE',
-            'AC_REVISION',
-            'AC_RSH',
-            'AC_RUN_IFELSE',
-            'AC_SCO_INTL',
-            'AC_SEARCH_LIBS',
-            'AC_SET_MAKE',
-            'AC_SETVBUF_REVERSED',
-            'AC_SIZE_T',
-            'AC_SIZEOF_TYPE',
-            'AC_ST_BLKSIZE',
-            'AC_ST_BLOCKS',
-            'AC_ST_RDEV',
-            'AC_STAT_MACROS_BROKEN',
-            'AC_STDC_HEADERS',
-            'AC_STRCOLL',
-            'AC_STRUCT_DIRENT_D_INO',
-            'AC_STRUCT_DIRENT_D_TYPE',
-            'AC_STRUCT_ST_BLKSIZE',
-            'AC_STRUCT_ST_BLOCKS',
-            'AC_STRUCT_ST_RDEV',
-            'AC_STRUCT_TIMEZONE',
-            'AC_STRUCT_TM',
-            'AC_SUBST',
-            'AC_SUBST_FILE',
-            'AC_SYS_INTERPRETER',
-            'AC_SYS_LARGEFILE',
-            'AC_SYS_LONG_FILE_NAMES',
-            'AC_SYS_POSIX_TERMIOS',
-            'AC_SYS_RESTARTABLE_SYSCALLS',
-            'AC_SYS_SIGLIST_DECLARED',
-            'AC_TEST_CPP',
-            'AC_TEST_PROGRAM',
-            'AC_TIME_WITH_SYS_TIME',
-            'AC_TIMEZONE',
-            'AC_TRY_ACT',
-            'AC_TRY_COMPILE',
-            'AC_TRY_CPP',
-            'AC_TRY_LINK',
-            'AC_TRY_LINK_FUNC',
-            'AC_TRY_RUN',
-            'AC_TYPE_GETGROUPS',
-            'AC_TYPE_INT16_T',
-            'AC_TYPE_INT32_T',
-            'AC_TYPE_INT64_T',
-            'AC_TYPE_INT8_T',
-            'AC_TYPE_INTMAX_T',
-            'AC_TYPE_INTPTR_T',
-            'AC_TYPE_LONG_DOUBLE',
-            'AC_TYPE_LONG_DOUBLE_WIDER',
-            'AC_TYPE_LONG_LONG_INT',
-            'AC_TYPE_MBSTATE_T',
-            'AC_TYPE_MODE_T',
-            'AC_TYPE_OFF_T',
-            'AC_TYPE_PID_T',
-            'AC_TYPE_SIGNAL',
-            'AC_TYPE_SIZE_T',
-            'AC_TYPE_SSIZE_T',
-            'AC_TYPE_UID_T',
-            'AC_TYPE_UINT16_T',
-            'AC_TYPE_UINT32_T',
-            'AC_TYPE_UINT64_T',
-            'AC_TYPE_UINT8_T',
-            'AC_TYPE_UINTMAX_T',
-            'AC_TYPE_UINTPTR_T',
-            'AC_TYPE_UNSIGNED_LONG_LONG_INT',
-            'AC_UID_T',
-            'AC_UNISTD_H',
-            'AC_USE_SYSTEM_EXTENSIONS',
-            'AC_USG',
-            'AC_UTIME_NULL',
-            'AC_VALIDATE_CACHED_SYSTEM_TUPLE',
-            'AC_VERBOSE',
-            'AC_VFORK',
-            'AC_VPRINTF',
-            'AC_WAIT3',
-            'AC_WARN',
-            'AC_WARNING',
-            'AC_WITH',
-            'AC_WORDS_BIGENDIAN',
-            'AC_XENIX_DIR',
-            'AC_YYTEXT_POINTER',
-            'AH_BOTTOM',
-            'AH_HEADER',
-            'AH_TEMPLATE',
-            'AH_TOP',
-            'AH_VERBATIM',
-            'AU_ALIAS',
-            'AU_DEFUN'),
-            ),
-    'SYMBOLS' => array('(', ')', '[', ']', '!', '@', '%', '&', '*', '|', '/', '<', '>', ';;', '`'),
-    'CASE_SENSITIVE' => array(
-            GESHI_COMMENTS => false,
-                1 => true,
-                ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #00ffff;',
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #666666;',
-            2 => 'color: #339900;',
-            3 => 'color: #666666;',
-            'MULTI' => 'color: #ff0000; font-style: italic;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #000099;',
-            1 => 'color: #000099;',
-            2 => 'color: #660099;',
-            3 => 'color: #660099;',
-            4 => 'color: #660099;',
-            5 => 'color: #006699;',
-            'HARD' => '',
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #008000;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #996600;'
-            ),
-        '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: #202020;',
-            2 => 'color: #202020;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #008000;',
-            1 => 'color: #000080;',
-            2 => 'color: #000040;',
-            3 => 'color: #000040;',
-            4 => 'color: #008080;'
-            ),
-        'REGEXPS' => array(
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(
-        ),
-    'REGEXPS' => array(
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        ),
-    'TAB_WIDTH' => 4,
-    'PARSER_CONTROL' => array(
-        'COMMENTS' => array(
-            'DISALLOWED_BEFORE' => '$'
-            ),
-        'KEYWORDS' => array(
-            'DISALLOWED_BEFORE' => "(?<![\.\-a-zA-Z0-9_\$\#])",
-            'DISALLOWED_AFTER' =>  "(?![\.\-a-zA-Z0-9_%\\/])"
-            )
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/autohotkey.php b/wiki/vendor/geshi/geshi/src/geshi/autohotkey.php
deleted file mode 100644
index 4a47d73..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/autohotkey.php
+++ /dev/null
@@ -1,371 +0,0 @@
-<?php
-/*************************************************************************************
- * autohotkey.php
- * --------
- * Author: Naveen Garg (naveen.garg@gmail.com)
- * Copyright: (c) 2009 Naveen Garg and GeSHi
- * Release Version: 1.0.9.0
- * Date Started: 2009/06/11
- *
- * Autohotkey language file for GeSHi.
- *
- * CHANGES
- * -------
- * Release 1.0.8.5 (2009/06/11)
- * - First Release
- *
- * TODO
- * ----
- * Reference: http://www.autohotkey.com/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' => 'Autohotkey',
-    'COMMENT_SINGLE' => array(
-        1 => ';'
-        ),
-    'COMMENT_MULTI' => array('/*' => '*/'),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array('"'),
-    'ESCAPE_CHAR' => '',
-    'KEYWORDS' => array(
-        1 => array(
-            'while','if','and','or','else','return'
-            ),
-        2 => array(
-            // built in variables
-            'A_AhkPath','A_AhkVersion','A_AppData','A_AppDataCommon',
-            'A_AutoTrim','A_BatchLines','A_CaretX','A_CaretY',
-            'A_ComputerName','A_ControlDelay','A_Cursor','A_DD',
-            'A_DDD','A_DDDD','A_DefaultMouseSpeed','A_Desktop',
-            'A_DesktopCommon','A_DetectHiddenText','A_DetectHiddenWindows','A_EndChar',
-            'A_EventInfo','A_ExitReason','A_FormatFloat','A_FormatInteger',
-            'A_Gui','A_GuiEvent','A_GuiControl','A_GuiControlEvent',
-            'A_GuiHeight','A_GuiWidth','A_GuiX','A_GuiY',
-            'A_Hour','A_IconFile','A_IconHidden','A_IconNumber',
-            'A_IconTip','A_Index','A_IPAddress1','A_IPAddress2',
-            'A_IPAddress3','A_IPAddress4','A_ISAdmin','A_IsCompiled',
-            'A_IsCritical','A_IsPaused','A_IsSuspended','A_KeyDelay',
-            'A_Language','A_LastError','A_LineFile','A_LineNumber',
-            'A_LoopField','A_LoopFileAttrib','A_LoopFileDir','A_LoopFileExt',
-            'A_LoopFileFullPath','A_LoopFileLongPath','A_LoopFileName','A_LoopFileShortName',
-            'A_LoopFileShortPath','A_LoopFileSize','A_LoopFileSizeKB','A_LoopFileSizeMB',
-            'A_LoopFileTimeAccessed','A_LoopFileTimeCreated','A_LoopFileTimeModified','A_LoopReadLine',
-            'A_LoopRegKey','A_LoopRegName','A_LoopRegSubkey','A_LoopRegTimeModified',
-            'A_LoopRegType','A_MDAY','A_Min','A_MM',
-            'A_MMM','A_MMMM','A_Mon','A_MouseDelay',
-            'A_MSec','A_MyDocuments','A_Now','A_NowUTC',
-            'A_NumBatchLines','A_OSType','A_OSVersion','A_PriorHotkey',
-            'A_ProgramFiles','A_Programs','A_ProgramsCommon','A_ScreenHeight',
-            'A_ScreenWidth','A_ScriptDir','A_ScriptFullPath','A_ScriptName',
-            'A_Sec','A_Space','A_StartMenu','A_StartMenuCommon',
-            'A_Startup','A_StartupCommon','A_StringCaseSense','A_Tab',
-            'A_Temp','A_ThisFunc','A_ThisHotkey','A_ThisLabel',
-            'A_ThisMenu','A_ThisMenuItem','A_ThisMenuItemPos','A_TickCount',
-            'A_TimeIdle','A_TimeIdlePhysical','A_TimeSincePriorHotkey','A_TimeSinceThisHotkey',
-            'A_TitleMatchMode','A_TitleMatchModeSpeed','A_UserName','A_WDay',
-            'A_WinDelay','A_WinDir','A_WorkingDir','A_YDay',
-            'A_YEAR','A_YWeek','A_YYYY','Clipboard',
-            'ClipboardAll','ComSpec','ErrorLevel','ProgramFiles',
-            ),
-        3 => array(
-            'AutoTrim',
-            'BlockInput','Break','Click',
-            'ClipWait','Continue','Control',
-            'ControlClick','ControlFocus','ControlGet',
-            'ControlGetFocus','ControlGetPos','ControlGetText',
-            'ControlMove','ControlSend','ControlSendRaw',
-            'ControlSetText','CoordMode','Critical',
-            'DetectHiddenText','DetectHiddenWindows','DllCall','Drive',
-            'DriveGet','DriveSpaceFree',
-            'Else','EnvAdd','EnvDiv',
-            'EnvGet','EnvMult','EnvSet',
-            'EnvSub','EnvUpdate','Exit',
-            'ExitApp','FileAppend','FileCopy',
-            'FileCopyDir','FileCreateDir','FileCreateShortcut',
-            'FileDelete','FileGetAttrib','FileGetShortcut',
-            'FileGetSize','FileGetTime','FileGetVersion',
-            'FileInstall','FileMove','FileMoveDir',
-            'FileRead','FileReadLine','FileRecycle',
-            'FileRecycleEmpty','FileRemoveDir','FileSelectFile',
-            'FileSelectFolder','FileSetAttrib','FileSetTime',
-            'FormatTime','Gosub',
-            'Goto','GroupActivate','GroupAdd',
-            'GroupClose','GroupDeactivate','Gui',
-            'GuiControl','GuiControlGet','Hotkey',
-            'IfExist','IfGreater','IfGreaterOrEqual',
-            'IfInString','IfLess','IfLessOrEqual',
-            'IfMsgBox','IfNotEqual','IfNotExist',
-            'IfNotInString','IfWinActive','IfWinExist',
-            'IfWinNotActive','IfWinNotExist','ImageSearch',
-            'IniDelete','IniRead','IniWrite',
-            'Input','InputBox','KeyHistory',
-            'KeyWait','ListHotkeys','ListLines',
-            'ListVars','Loop',
-            'Menu','MouseClick','MouseClickDrag',
-            'MouseGetPos','MouseMove','MsgBox',
-            'OnMessage','OnExit','OutputDebug',
-            'PixelGetColor','PixelSearch','PostMessage',
-            'Process','Progress','Random',
-            'RegExMatch','RegExReplace','RegisterCallback',
-            'RegDelete','RegRead','RegWrite',
-            'Reload','Repeat','Return',
-            'Run','RunAs','RunWait',
-            'Send','SendEvent','SendInput',
-            'SendMessage','SendMode','SendPlay',
-            'SendRaw','SetBatchLines','SetCapslockState',
-            'SetControlDelay','SetDefaultMouseSpeed','SetEnv',
-            'SetFormat','SetKeyDelay','SetMouseDelay',
-            'SetNumlockState','SetScrollLockState','SetStoreCapslockMode',
-            'SetTimer','SetTitleMatchMode','SetWinDelay',
-            'SetWorkingDir','Shutdown','Sleep',
-            'Sort','SoundBeep','SoundGet',
-            'SoundGetWaveVolume','SoundPlay','SoundSet',
-            'SoundSetWaveVolume','SplashImage','SplashTextOff',
-            'SplashTextOn','SplitPath','StatusBarGetText',
-            'StatusBarWait','StringCaseSense','StringGetPos',
-            'StringLeft','StringLen','StringLower',
-            'StringMid','StringReplace','StringRight',
-            'StringSplit','StringTrimLeft','StringTrimRight',
-            'StringUpper','Suspend','SysGet',
-            'Thread','ToolTip','Transform',
-            'TrayTip','URLDownloadToFile','While',
-            'VarSetCapacity',
-            'WinActivate','WinActivateBottom','WinClose',
-            'WinGet','WinGetActiveStats','WinGetActiveTitle',
-            'WinGetClass','WinGetPos','WinGetText',
-            'WinGetTitle','WinHide','WinKill',
-            'WinMaximize','WinMenuSelectItem','WinMinimize',
-            'WinMinimizeAll','WinMinimizeAllUndo','WinMove',
-            'WinRestore','WinSet','WinSetTitle',
-            'WinShow','WinWait','WinWaitActive',
-            'WinWaitClose','WinWaitNotActive'
-            ),
-        4 => array(
-            'Abs','ACos','Asc','ASin',
-            'ATan','Ceil','Chr','Cos',
-            'Exp','FileExist','Floor',
-            'GetKeyState','IL_Add','IL_Create','IL_Destroy',
-            'InStr','IsFunc','IsLabel','Ln',
-            'Log','LV_Add','LV_Delete','LV_DeleteCol',
-            'LV_GetCount','LV_GetNext','LV_GetText','LV_Insert',
-            'LV_InsertCol','LV_Modify','LV_ModifyCol','LV_SetImageList',
-            'Mod','NumGet','NumPut',
-            'Round',
-            'SB_SetIcon','SB_SetParts','SB_SetText','Sin',
-            'Sqrt','StrLen','SubStr','Tan',
-            'TV_Add','TV_Delete','TV_GetChild','TV_GetCount',
-            'TV_GetNext','TV_Get','TV_GetParent','TV_GetPrev',
-            'TV_GetSelection','TV_GetText','TV_Modify',
-            'WinActive','WinExist'
-            ),
-        5 => array(
-            // #Directives
-            'AllowSameLineComments','ClipboardTimeout','CommentFlag',
-            'ErrorStdOut','EscapeChar','HotkeyInterval',
-            'HotkeyModifierTimeout','Hotstring','IfWinActive',
-            'IfWinExist','IfWinNotActive','IfWinNotExist',
-            'Include','IncludeAgain','InstallKeybdHook',
-            'InstallMouseHook','KeyHistory','LTrim',
-            'MaxHotkeysPerInterval','MaxMem','MaxThreads',
-            'MaxThreadsBuffer','MaxThreadsPerHotkey','NoEnv',
-            'NoTrayIcon','Persistent','SingleInstance',
-            'UseHook','WinActivateForce'
-            ),
-        6 => array(
-            'Shift','LShift','RShift',
-            'Alt','LAlt','RAlt',
-            'LControl','RControl',
-            'Ctrl','LCtrl','RCtrl',
-            'LWin','RWin','AppsKey',
-            'AltDown','AltUp','ShiftDown',
-            'ShiftUp','CtrlDown','CtrlUp',
-            'LWinDown','LWinUp','RWinDown',
-            'RWinUp','LButton','RButton',
-            'MButton','WheelUp','WheelDown',
-            'WheelLeft','WheelRight','XButton1',
-            'XButton2','Joy1','Joy2',
-            'Joy3','Joy4','Joy5',
-            'Joy6','Joy7','Joy8',
-            'Joy9','Joy10','Joy11',
-            'Joy12','Joy13','Joy14',
-            'Joy15','Joy16','Joy17',
-            'Joy18','Joy19','Joy20',
-            'Joy21','Joy22','Joy23',
-            'Joy24','Joy25','Joy26',
-            'Joy27','Joy28','Joy29',
-            'Joy30','Joy31','Joy32',
-            'JoyX','JoyY','JoyZ',
-            'JoyR','JoyU','JoyV',
-            'JoyPOV','JoyName','JoyButtons',
-            'JoyAxes','JoyInfo','Space',
-            'Tab','Enter',
-            'Escape','Esc','BackSpace',
-            'BS','Delete','Del',
-            'Insert','Ins','PGUP',
-            'PGDN','Home','End',
-            'Up','Down','Left',
-            'Right','PrintScreen','CtrlBreak',
-            'Pause','ScrollLock','CapsLock',
-            'NumLock','Numpad0','Numpad1',
-            'Numpad2','Numpad3','Numpad4',
-            'Numpad5','Numpad6','Numpad7',
-            'Numpad8','Numpad9','NumpadMult',
-            'NumpadAdd','NumpadSub','NumpadDiv',
-            'NumpadDot','NumpadDel','NumpadIns',
-            'NumpadClear','NumpadUp','NumpadDown',
-            'NumpadLeft','NumpadRight','NumpadHome',
-            'NumpadEnd','NumpadPgup','NumpadPgdn',
-            'NumpadEnter','F1','F2',
-            'F3','F4','F5',
-            'F6','F7','F8',
-            'F9','F10','F11',
-            'F12','F13','F14',
-            'F15','F16','F17',
-            'F18','F19','F20',
-            'F21','F22','F23',
-            'F24','Browser_Back','Browser_Forward',
-            'Browser_Refresh','Browser_Stop','Browser_Search',
-            'Browser_Favorites','Browser_Home','Volume_Mute',
-            'Volume_Down','Volume_Up','Media_Next',
-            'Media_Prev','Media_Stop','Media_Play_Pause',
-            'Launch_Mail','Launch_Media','Launch_App1',
-            'Launch_App2'
-            ),
-        7 => array(
-            // Gui commands
-            'Add',
-            'Show', 'Submit', 'Cancel', 'Destroy',
-            'Font', 'Color', 'Margin', 'Flash', 'Default',
-            'GuiEscape','GuiClose','GuiSize','GuiContextMenu','GuiDropFilesTabStop',
-            ),
-        8 => array(
-            // Gui Controls
-            'Button',
-            'Checkbox','Radio','DropDownList','DDL',
-            'ComboBox','ListBox','ListView',
-            'Text', 'Edit', 'UpDown', 'Picture',
-            'TreeView','DateTime', 'MonthCal',
-            'Slider'
-            )
-        ),
-    'SYMBOLS' => array(
-        '(',')','[',']',
-        '+','-','*','/','&','^',
-        '=','+=','-=','*=','/=','&=',
-        '==','<','<=','>','>=',':=',
-        ',','.'
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false,
-        2 => false,
-        3 => false,
-        4 => false,
-        5 => false,
-        6 => false,
-        7 => false,
-        8 => false
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #AAAAFF; font-weight: bold;',       // reserved #blue
-            2 => 'color: #88FF88;',                         // BIV yellow
-            3 => 'color: #FF00FF; font-style: italic;',       // commands purple
-            4 => 'color: #888844; font-weight: bold;',       // functions #0080FF
-            5 => 'color: #000000; font-style: italic;',    // directives #black
-            6 => 'color: #FF0000; font-style: italic;',      // hotkeys #red
-            7 => 'color: #000000; font-style: italic;',    // gui commands #black
-            8 => 'color: #000000; font-style: italic;'      // gui controls
-            ),
-        'COMMENTS' => array(
-            'MULTI' => 'font-style: italic; color: #669900;',
-            1 => 'font-style: italic; color: #009933;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => ''
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #00FF00; font-weight: bold;'
-            ),
-        'STRINGS' => array(
-            0 => 'font-weight: bold; color: #008080;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #0000dd;'
-            ),
-        'METHODS' => array(
-            1 => 'color: #0000FF; font-style: italic; font-weight: italic;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #000000; font-weight: italic;'
-            ),
-        'REGEXPS' => array(
-            0 => 'font-weight: italic; color: #A00A0;',
-            1 => 'color: #CC0000; font-style: italic;',
-            2 => 'color: #DD0000; font-style: italic;',
-            3 => 'color: #88FF88;'
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(
-        1 => '_'
-        ),
-    'REGEXPS' => array(
-        //Variables
-        0 => '%[a-zA-Z_][a-zA-Z0-9_]*%',
-        //hotstrings
-        1 => '::[\w\d]+::',
-        //labels
-        2 => '\w[\w\d]+:\s',
-        //Built-in Variables
-        3 => '\bA_\w+\b(?![^<]*>)'
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => 'http://www.autohotkey.com/docs/Variables.htm#{FNAME}',
-        3 => 'http://www.autohotkey.com/docs/commands/{FNAME}.htm',
-        4 => 'http://www.autohotkey.com/docs/Functions.htm#BuiltIn',
-        5 => 'http://www.autohotkey.com/docs/commands/_{FNAME}.htm',
-        6 => '',
-        7 => 'http://www.autohotkey.com/docs/commands/Gui.htm#{FNAME}',
-        8 => 'http://www.autohotkey.com/docs/commands/GuiControls.htm#{FNAME}'
-        ),
-    '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(
-            5 => array(
-                'DISALLOWED_BEFORE' => '(?<!\w)\#'
-                )
-            )
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/autoit.php b/wiki/vendor/geshi/geshi/src/geshi/autoit.php
deleted file mode 100644
index 5742afe..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/autoit.php
+++ /dev/null
@@ -1,1888 +0,0 @@
-<?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/wiki/vendor/geshi/geshi/src/geshi/avisynth.php b/wiki/vendor/geshi/geshi/src/geshi/avisynth.php
deleted file mode 100644
index cbd8a12..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/avisynth.php
+++ /dev/null
@@ -1,193 +0,0 @@
-<?php
-/*************************************************************************************
- * avisynth.php
- * --------
- * Author: Ryan Jones (sciguyryan@gmail.com)
- * Copyright: (c) 2008 Ryan Jones
- * Release Version: 1.0.9.0
- * Date Started: 2008/10/08
- *
- * AviSynth language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2008/10/08 (1.0.8.1)
- *  -  First Release
- *
- * TODO (updated 2008/10/08)
- * -------------------------
- * * There are also some special words that can't currently be specified directly in GeSHi as they may
- *      also be used as variables which would really mess things up.
- * * Also there is an issue with the escape character as this language uses a muti-character escape system. Escape char should be """ but has been left
- *      as empty due to this restiction.
- *
- *************************************************************************************
- *
- *     This file is part of GeSHi.
- *
- *   GeSHi is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   GeSHi is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with GeSHi; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- ************************************************************************************/
-
-$language_data = array (
-    'LANG_NAME' => 'AviSynth',
-    'COMMENT_SINGLE' => array(1 => '#'),
-    'COMMENT_MULTI' => array('/*' => '*/', '[*' => '*]'),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array('"'),
-    'ESCAPE_CHAR' => '',
-    'KEYWORDS' => array(
-        //  Reserved words.
-        1 => array(
-            'try', 'cache', 'function', 'global', 'return'
-            ),
-        // Constants / special variables.
-        2 => array(
-            'true', 'yes', 'false', 'no', '__END__'
-            ),
-        // Internal Filters.
-        3 => array(
-            'AviSource', 'AviFileSource', 'AddBorders', 'AlignedSplice', 'AssumeFPS', 'AssumeScaledFPS',
-            'AssumeFrameBased', 'AssumeFieldBased', 'AssumeBFF', 'AssumeTFF', 'Amplify', 'AmplifydB',
-            'AssumeSampleRate', 'AudioDub', 'AudioDubEx', 'Animate', 'ApplyRange',
-            'BicubicResize', 'BilinearResize', 'BlackmanResize', 'Blur', 'Bob', 'BlankClip', 'Blackness',
-            'ColorYUV', 'ConvertBackToYUY2', 'ConvertToRGB', 'ConvertToRGB24', 'ConvertToRGB32',
-            'ConvertToYUY2', 'ConvertToY8', 'ConvertToYV411', 'ConvertToYV12', 'ConvertToYV16', 'ConvertToYV24',
-            'ColorKeyMask', 'Crop', 'CropBottom', 'ChangeFPS', 'ConvertFPS', 'ComplementParity', 'ConvertAudioTo8bit',
-            'ConvertAudioTo16bit', 'ConvertAudioTo24bit', 'ConvertAudioTo32bit', 'ConvertAudioToFloat', 'ConvertToMono',
-            'ConditionalFilter', 'ConditionalReader', 'ColorBars', 'Compare',
-            'DirectShowSource', 'DeleteFrame', 'Dissolve', 'DuplicateFrame', 'DoubleWeave', 'DelayAudio',
-            'EnsureVBRMP3Sync',
-            'FixLuminance', 'FlipHorizontal', 'FlipVertical', 'FixBrokenChromaUpsampling', 'FadeIn0', 'FadeIn',
-            'FadeIn2', 'FadeOut0', 'FadeOut', 'FadeOut2', 'FadeIO0', 'FadeIO', 'FadeIO2', 'FreezeFrame', 'FrameEvaluate',
-            'GreyScale', 'GaussResize', 'GeneralConvolution', 'GetChannel', 'GetLeftChannel', 'GetRightChannel',
-            'HorizontalReduceBy2', 'Histogram',
-            'ImageReader', 'ImageSource', 'ImageWriter', 'Invert', 'Interleave', 'Info',
-            'KillAudio', 'KillVideo',
-            'Levels', 'Limiter', 'Layer', 'Letterbox', 'LanczosResize', 'Lanczos4Resize', 'Loop',
-            'MergeARGB', 'MergeRGB', 'MergeChroma', 'MergeLuma', 'Merge', 'Mask', 'MaskHS', 'MergeChannels', 'MixAudio',
-            'MonoToStereo', 'MessageClip',
-            'Normalize',
-            'OpenDMLSource', 'Overlay',
-            'PointResize', 'PeculiarBlend', 'Pulldown',
-            'RGBAdjust', 'ResetMask', 'Reverse', 'ResampleAudio', 'ReduceBy2',
-            'SegmentedAviSource', 'SegmentedDirectShowSource', 'SoundOut', 'ShowAlpha', 'ShowRed', 'ShowGreen',
-            'ShowBlue', 'SwapUV', 'Subtract', 'SincResize', 'Spline16Resize', 'Spline36Resize', 'Spline64Resize',
-            'SelectEven', 'SelectOdd', 'SelectEvery', 'SelectRangeEvery', 'Sharpen', 'SpatialSoften', 'SeparateFields',
-            'ShowFiveVersions', 'ShowFrameNumber', 'ShowSMPTE', 'ShowTime', 'StackHorizontal', 'StackVertical', 'Subtitle',
-            'SwapFields', 'SuperEQ', 'SSRC', 'ScriptClip',
-            'Tweak', 'TurnLeft', 'TurnRight', 'Turn180', 'TemporalSoften', 'TimeStretch', 'TCPServer', 'TCPSource', 'Trim',
-            'Tone',
-            'UToY', 'UToY8', 'UnalignedSplice',
-            'VToY', 'VToY8', 'VerticalReduceBy2', 'Version',
-            'WavSource', 'Weave', 'WriteFile', 'WriteFileIf', 'WriteFileStart', 'WriteFileEnd',
-            'YToUV'
-            ),
-        // Internal functions.
-        4 => array(
-            'Abs', 'Apply', 'Assert', 'AverageLuma', 'AverageChromaU', 'AverageChromaV',
-            'Ceil', 'Cos', 'Chr', 'ChromaUDifference', 'ChromaVDifference',
-            'Defined', 'Default',
-            'Exp', 'Exist', 'Eval',
-            'Floor', 'Frac', 'Float', 'Findstr', 'GetMTMode',
-            'HexValue',
-            'Int', 'IsBool', 'IsClip', 'IsFloat', 'IsInt', 'IsString', 'Import',
-            'LoadPlugin', 'Log', 'LCase', 'LeftStr', 'LumaDifference', 'LoadVirtualDubPlugin', 'LoadVFAPIPlugin',
-            'LoadCPlugin', 'Load_Stdcall_Plugin',
-            'Max', 'MulDiv', 'MidStr',
-            'NOP',
-            'OPT_AllowFloatAudio', 'OPT_UseWaveExtensible',
-            'Pi', 'Pow',
-            'Round', 'Rand', 'RevStr', 'RightStr', 'RGBDifference', 'RGBDifferenceFromPrevious', 'RGBDifferenceToNext',
-            'Sin', 'Sqrt', 'Sign', 'Spline', 'StrLen', 'String', 'Select', 'SetMemoryMax', 'SetWorkingDir', 'SetMTMode',
-            'SetPlanarLegacyAlignment',
-            'Time',
-            'UCase', 'UDifferenceFromPrevious', 'UDifferenceToNext', 'UPlaneMax', 'UPlaneMin', 'UPlaneMedian',
-            'UPlaneMinMaxDifference',
-            'Value', 'VersionNumber', 'VersionString', 'VDifferenceFromPrevious', 'VDifferenceToNext', 'VPlaneMax',
-            'VPlaneMin', 'VPlaneMedian', 'VPlaneMinMaxDifference',
-            'YDifferenceFromPrevious', 'YDifferenceToNext', 'YPlaneMax', 'YPlaneMin', 'YPlaneMedian',
-            'YPlaneMinMaxDifference'
-            )
-        ),
-    'SYMBOLS' => array(
-        '+', '++', '-', '--', '/', '*', '%',
-        '=', '==', '<', '<=', '>', '>=', '<>', '!=',
-        '!', '?', ':',
-        '|', '||', '&&',
-        '\\',
-        '(', ')', '{', '}',
-        '.', ','
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false,
-        2 => false,
-        3 => false,
-        4 => true,
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color:#9966CC; font-weight:bold;',
-            2 => 'color:#0000FF; font-weight:bold;',
-            3 => 'color:#CC3300; font-weight:bold;',
-            4 => 'color:#660000; font-weight:bold;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color:#008000; font-style:italic;',
-            'MULTI' => 'color:#000080; font-style:italic;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color:#000099;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color:#006600; font-weight:bold;'
-            ),
-        'STRINGS' => array(
-            0 => 'color:#996600;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color:#006666;'
-            ),
-        'METHODS' => array(
-            1 => 'color:#9900CC;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color:#006600; font-weight:bold;'
-            ),
-        'REGEXPS' => array(
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => 'http://avisynth.org/mediawiki/{FNAME}',
-        4 => ''
-        ),
-    'REGEXPS' => array(
-        ),
-    'OOLANG' => true,
-    'OBJECT_SPLITTERS' => array(
-        1 => '.'
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_MAYBE,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        ),
-    'TAB_WIDTH' => 4
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/awk.php b/wiki/vendor/geshi/geshi/src/geshi/awk.php
deleted file mode 100644
index e94e64f..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/awk.php
+++ /dev/null
@@ -1,156 +0,0 @@
-<?php
-/************************************************
- * awk.php
- * -------
- * Author: George Pollard (porges@porg.es)
- * Copyright: (c) 2009 George Pollard
- * Release Version: 1.0.9.0
- * Date Started: 2009/01/28
- *
- * Awk language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2009/01/28 (1.0.8.5)
- *   -  First Release
- *
- * TODO (updated 2009/01/28)
- * -------------------------
- *
- *************************************************************************************
- *
- *     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' => 'awk',
-    'COMMENT_SINGLE' => array(
-        1 => '#'
-        ),
-    'COMMENT_MULTI' => array(),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array('"'),
-    'ESCAPE_CHAR' => '\\',
-    'KEYWORDS' => array (
-        1 => array(
-            'for', 'in', 'if', 'else', 'while', 'do', 'continue', 'break'
-            ),
-        2 => array(
-            'BEGIN', 'END'
-            ),
-        3 => array(
-            'ARGC', 'ARGV', 'CONVFMT', 'ENVIRON',
-            'FILENAME', 'FNR', 'FS', 'NF', 'NR', 'OFMT',
-            'OFS','ORS','RLENGTH','RS','RSTART','SUBSEP'
-            ),
-        4 => array(
-            'gsub','index','length','match','split',
-            'sprintf','sub','substr','tolower','toupper',
-            'atan2','cos','exp','int','log','rand',
-            'sin','sqrt','srand'
-            ),
-        5 => array(
-            'print','printf','getline','close','fflush','system'
-            ),
-        6 => array(
-            'function', 'return'
-            )
-        ),
-    'SYMBOLS' => array (
-        0 => array(
-            '(',')','[',']','{','}'
-            ),
-        1 => array(
-            '!','||','&&'
-            ),
-        2 => array(
-            '<','>','<=','>=','==','!='
-            ),
-        3 => array(
-            '+','-','*','/','%','^','++','--'
-            ),
-        4 => array(
-            '~','!~'
-            ),
-        5 => 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: #000000; font-weight: bold;',
-            2 => 'color: #C20CB9; font-weight: bold;',
-            3 => 'color: #4107D5; font-weight: bold;',
-            4 => 'color: #07D589; font-weight: bold;',
-            5 => 'color: #0BD507; font-weight: bold;',
-            6 => 'color: #078CD5; font-weight: bold;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color:#808080;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #000099; font-weight: bold;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color:black;',
-            1 => 'color:black;',
-            2 => 'color:black;',
-            3 => 'color:black;',
-            4 => 'color:#C4C364;',
-            5 => 'color:black;font-weight:bold;'),
-        'SCRIPT' => array(),
-        'REGEXPS' => array(
-            0 => 'color:#000088;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #ff0000;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #000000;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #7a0874; font-weight: bold;'
-            ),
-        'METHODS' => array()
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => '',
-        4 => '',
-        5 => '',
-        6 => ''
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array (),
-    'REGEXPS' => array(
-        0 => "\\$[a-zA-Z0-9_]+"
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array (),
-    'HIGHLIGHT_STRICT_BLOCK' => array()
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/bascomavr.php b/wiki/vendor/geshi/geshi/src/geshi/bascomavr.php
deleted file mode 100644
index 96ec609..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/bascomavr.php
+++ /dev/null
@@ -1,183 +0,0 @@
-<?php
-/*************************************************************************************
- * bascomavr.php
- * ---------------------------------
- * Author: aquaticus.info
- * Copyright: (c) 2008 aquaticus.info
- * Release Version: 1.0.9.0
- * Date Started: 2008/01/09
- *
- * BASCOM AVR language file for GeSHi.
- *
- * You can find the BASCOM AVR Website at (www.mcselec.com/bascom-avr.htm)
- *
- * CHANGES
- * -------
- * 2008/01/09 (1.0.8.10)
- *  -  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' => 'BASCOM AVR',
-    'COMMENT_SINGLE' => array(1 => "'"),
-    'COMMENT_MULTI' => array(),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array('"'),
-    'ESCAPE_CHAR' => '',
-    'KEYWORDS' => array(
-        1 => array(
-            // Navy Blue Bold Keywords
-            '1WRESET' , '1WREAD' , '1WWRITE' , '1WSEARCHFIRST' , '1WSEARCHNEXT' ,'1WVERIFY' , '1WIRECOUNT',
-            'CONFIG' , 'ACI' , 'ADC' , 'BCCARD' , 'CLOCK' , 'COM1' ,
-            'COM2' , 'PS2EMU' , 'ATEMU' , 'I2CSLAVE' ,
-            'INPUT', 'OUTPUT', 'GRAPHLCD' , 'KEYBOARD' , 'TIMER0' , 'TIMER1' ,
-            'LCDBUS' , 'LCDMODE' , '1WIRE' , 'LCD' , 'SERIALOUT' ,
-            'SERIALIN' , 'SPI' , 'LCDPIN' , 'SDA' , 'SCL' ,
-            'WATCHDOG' , 'PORT' , 'COUNTER0', 'COUNTER1' , 'TCPIP' , 'TWISLAVE' ,
-            'X10' , 'XRAM' , 'USB',
-            'BCD' , 'GRAY2BIN' , 'BIN2GRAY' , 'BIN' , 'MAKEBCD' , 'MAKEDEC' , 'MAKEINT' , 'FORMAT' , 'FUSING' , 'BINVAL' ,
-            'CRC8' , 'CRC16' , 'CRC16UNI' , 'CRC32' , 'HIGH' , 'HIGHW' , 'LOW',
-            'DATE' , 'TIME'  , 'DATE$' , 'TIME$' , 'DAYOFWEEK' , 'DAYOFYEAR' , 'SECOFDAY' , 'SECELAPSED' , 'SYSDAY' , 'SYSSEC' , 'SYSSECELAPSED',
-            'WAIT'  , 'WAITMS' , 'WAITUS' , 'DELAY',
-            'BSAVE' , 'BLOAD' , 'GET' , 'VER' , 'DISKFREE' , 'DIR' , 'DriveReset' , 'DriveInit' , 'LINE' , 'INITFILESYSTEM' ,
-            'EOF' , 'WRITE' , 'FLUSH' , 'FREEFILE' , 'FILEATTR' , 'FILEDATE' , 'FILETIME' , 'FILEDATETIME' , 'FILELEN' , 'SEEK' ,
-            'KILL' , 'DriveGetIdentity' , 'DriveWriteSector' , 'DriveReadSector' , 'LOC' , 'LOF' , 'PUT' , 'OPEN' , 'CLOSE',
-            'GLCDCMD' , 'GLCDDATA' , 'SETFONT' , 'PSET' , 'SHOWPIC' , 'SHOWPICE' , 'CIRCLE' , 'BOX',
-            'I2CINIT' , 'I2CRECEIVE' , 'I2CSEND' , 'I2CSTART','I2CSTOP','I2CRBYTE','I2CWBYTE',
-            'ALIAS' , 'BITWAIT' , 'TOGGLE' , 'RESET' , 'SET' , 'SHIFTIN' , 'SHIFTOUT' , 'DEBOUNCE' , 'PULSEIN' , 'PULSEOUT',
-            'IDLE' , 'POWERDOWN' , 'POWERSAVE' , 'ON', 'INTERRUPT' , 'ENABLE' , 'DISABLE' , 'START' , 'VERSION' , 'CLOCKDIVISION' , 'CRYSTAL' , 'STOP',
-            'ADR' , 'ADR2' , 'WRITEEEPROM' , 'CPEEK' , 'CPEEKH' , 'PEEK' , 'POKE' , 'OUT' , 'READEEPROM' , 'DATA' , 'INP' , 'READ' , 'RESTORE' , 'LOOKDOWN' , 'LOOKUP' , 'LOOKUPSTR' , 'LOAD' , 'LOADADR' , 'LOADLABEL' , 'LOADWORDADR' , 'MEMCOPY',
-            'RC5SEND' , 'RC6SEND' , 'GETRC5' , 'SONYSEND',
-            'BAUD' , 'BAUD1', 'BUFSPACE' , 'CLEAR', 'ECHO' , 'WAITKEY' , 'ISCHARWAITING' , 'INKEY' , 'INPUTBIN' , 'INPUTHEX' , 'PRINT', 'PRINT1','PRINT0', 'PRINTBIN' , 'SERIN' , 'SEROUT' , 'SPC' , 'MAKEMODBUS',
-            'SPIIN' , 'SPIINIT' , 'SPIMOVE' , 'SPIOUT', 'SINGLE',
-            'ASC' , 'UCASE' , 'LCASE' , 'TRIM' , 'SPLIT' , 'LTRIM' , 'INSTR' , 'SPACE' , 'RTRIM' , 'LEFT' , 'LEN' , 'MID' , 'RIGHT' , 'VAL' , 'STR' , 'CHR' , 'CHECKSUM' , 'HEX' , 'HEXVAL',
-            'BASE64DEC' , 'BASE64ENC' , 'IP2STR' , 'UDPREAD' , 'UDPWRITE' , 'UDPWRITESTR' , 'TCPWRITE' , 'TCPWRITESTR' , 'TCPREAD' , 'GETDSTIP' , 'GETDSTPORT' , 'SOCKETSTAT' , 'SOCKETCONNECT' , 'SOCKETLISTEN' , 'GETSOCKET' , 'CLOSESOCKET' ,
-            'SETTCP' , 'GETTCPREGS' , 'SETTCPREGS' , 'SETIPPROTOCOL' , 'TCPCHECKSUM',
-            'HOME' , 'CURSOR' , 'UPPERLINE' , 'THIRDLINE' , 'INITLCD' , 'LOWERLINE' , 'LCDAT' , 'FOURTHLINE' , 'DISPLAY' , 'LCDCONTRAST' , 'LOCATE' , 'SHIFTCURSOR' , 'DEFLCDCHAR' , 'SHIFTLCD' , 'CLS',
-            'ACOS' , 'ASIN' , 'ATN' , 'ATN2' , 'EXP' , 'RAD2DEG' , 'FRAC' , 'TAN' , 'TANH' , 'COS' , 'COSH' , 'LOG' , 'LOG10' , 'ROUND' , 'ABS' , 'INT' , 'MAX' , 'MIN' , 'SQR' , 'SGN' , 'POWER' , 'SIN' , 'SINH' , 'FIX' , 'INCR' , 'DECR' , 'DEG2RAD',
-            'DBG' , 'DEBUG', 'DTMFOUT' , 'ENCODER' , 'GETADC' , 'GETKBD' , 'GETATKBD' , 'GETRC' , 'VALUE' , 'POPALL' , 'PS2MOUSEXY' , 'PUSHALL' ,
-            'RETURN'  , 'RND' , 'ROTATE' , 'SENDSCAN' , 'SENDSCANKBD' , 'SHIFT' , 'SOUND' , 'STCHECK' , 'SWAP' , 'VARPTR' , 'X10DETECT' , 'X10SEND' , 'READMAGCARD' , 'REM' , 'BITS' , 'BYVAL' , 'CALL' , 'READHITAG',
-            'Buffered', 'Size', 'Dummy', 'Parity', 'None', 'Stopbits', 'Databits', 'Clockpol', 'Synchrone', 'Prescaler', 'Reference', 'int0', 'int1', 'Interrupts',
-            'Auto', 'avcc', 'ack', 'nack', 'Pin', 'Db4', 'Db3', 'Db2', 'Db1', 'Db7', 'Db6', 'Db5', 'Db0',  'e', 'rs', 'twi',
-            ),
-        2 => array(
-            // Red Lowercase Keywords
-            '$ASM' , '$BAUD' , '$BAUD1' , '$BGF' , '$BOOT' , '$CRYSTAL' , '$DATA' , '$DBG' , '$DEFAULT' , '$EEPLEAVE' , '$EEPROM' ,
-            '$EEPROMHEX' , '$EXTERNAL' , '$HWSTACK' , '$INC' , '$INCLUDE' , '$INITMICRO' , '$LCD' , '$LCDRS' , '$LCDPUTCTRL' ,
-            '$LCDPUTDATA' , '$LCDVFO' , '$LIB' , '$LOADER' , '$LOADERSIZE' , '$MAP' , '$NOCOMPILE' , '$NOINIT' , '$NORAMCLEAR' ,
-            '$PROG' , '$PROGRAMMER' , '$REGFILE' , '$RESOURCE' , '$ROMSTART', '$SERIALINPUT', '$SERIALINPUT1' , '$SERIALINPUT2LCD' ,
-            '$SERIALOUTPUT' , '$SERIALOUTPUT1' , '$SIM' , '$SWSTACK' , '$TIMEOUT' , '$TINY' , '$WAITSTATE' , '$XRAMSIZE' , '$XRAMSTART', '$XA',
-            '#IF' , '#ELSE' , '#ENDIF', '$framesize'
-            ),
-        3 => array(
-            // Blue Lowercase Keywords
-            'IF', 'THEN', 'ELSE', 'END', 'WHILE', 'WEND', 'DO', 'LOOP', 'SELECT', 'CASE', 'FOR', 'NEXT',
-            'GOSUB' , 'GOTO' , 'LOCAL' , 'SUB' , 'DEFBIT', 'DEFBYTE', 'DEFINT', 'DEFWORD', 'DEFLNG', 'DEFSNG', 'DEFDBL',
-            'CONST', 'DECLARE', 'FUNCTION', 'DIM', 'EXIT', 'LONG', 'INTEGER', 'BYTE', 'AS', 'STRING', 'WORD'
-            ),
-        4 => array(
-            //light blue
-            'PINA.0', 'PINA.1', 'PINA.2', 'PINA.3', 'PINA.4', 'PINA.5', 'PINA.6', 'PINA.7',
-            'PINB.0', 'PINB.1', 'PINB.2', 'PINB.3', 'PINB.4', 'PINB.5', 'PINB.6', 'PINB.7',
-            'PINC.0', 'PINC.1', 'PINC.2', 'PINC.3', 'PINC.4', 'PINC.5', 'PINC.6', 'PINC.7',
-            'PIND.0', 'PIND.1', 'PIND.2', 'PIND.3', 'PIND.4', 'PIND.5', 'PIND.6', 'PIND.7',
-            'PINE.0', 'PINE.1', 'PINE.2', 'PINE.3', 'PINE.4', 'PINE.5', 'PINE.6', 'PINE.7',
-            'PINF.0', 'PINF.1', 'PINF.2', 'PINF.3', 'PINF.4', 'PINF.5', 'PINF.6', 'PINF.7',
-
-            'PORTA.0', 'PORTA.1', 'PORTA.2', 'PORTA.3', 'PORTA.4', 'PORTA.5', 'PORTA.6', 'PORTA.7',
-            'PORTB.0', 'PORTB.1', 'PORTB.2', 'PORTB.3', 'PORTB.4', 'PORTB.5', 'PORTB.6', 'PORTB.7',
-            'PORTC.0', 'PORTC.1', 'PORTC.2', 'PORTC.3', 'PORTC.4', 'PORTC.5', 'PORTC.6', 'PORTC.7',
-            'PORTD.0', 'PORTD.1', 'PORTD.2', 'PORTD.3', 'PORTD.4', 'PORTD.5', 'PORTD.6', 'PORTD.7',
-            'PORTE.0', 'PORTE.1', 'PORTE.2', 'PORTE.3', 'PORTE.4', 'PORTE.5', 'PORTE.6', 'PORTE.7',
-            'PORTF.0', 'PORTF.1', 'PORTF.2', 'PORTF.3', 'PORTF.4', 'PORTF.5', 'PORTF.6', 'PORTF.7',
-
-            'DDRA.0', 'DDRA.1', 'DDRA.2', 'DDRA.3', 'DDRA.4', 'DDRA.5', 'DDRA.6', 'DDRA.7',
-            'DDRB.0', 'DDRB.1', 'DDRB.2', 'DDRB.3', 'DDRB.4', 'DDRB.5', 'DDRB.6', 'DDRB.7',
-            'DDRC.0', 'DDRC.1', 'DDRC.2', 'DDRC.3', 'DDRC.4', 'DDRC.5', 'DDRC.6', 'DDRC.7',
-            'DDRD.0', 'DDRD.1', 'DDRD.2', 'DDRD.3', 'DDRD.4', 'DDRD.5', 'DDRD.6', 'DDRD.7',
-            'DDRE.0', 'DDRE.1', 'DDRE.2', 'DDRE.3', 'DDRE.4', 'DDRE.5', 'DDRE.6', 'DDRE.7',
-            'DDRF.0', 'DDRF.1', 'DDRF.2', 'DDRF.3', 'DDRF.4', 'DDRF.5', 'DDRF.6', 'DDRF.7',
-
-            'DDRA','DDRB','DDRC','DDRD','DDRE','DDRF',
-            'PORTA','PORTB','PORTC','PORTD','PORTE','PORTF',
-            'PINA','PINB','PINC','PIND','PINE','PINF',
-            )
-        ),
-    'SYMBOLS' => array(
-        '=', '<', '>', '>=', '<=', '+', '-', '*', '/', '%', '(', ')', '{', '}', '[', ']',  ';', ':', '$', '&H'
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false,
-        2 => false,
-        3 => false,
-        4 => false,
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #000080; font-weight: bold;',
-            2 => 'color: #FF0000;',
-            3 => 'color: #0000FF;',
-            4 => 'color: #0080FF;',
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #657CC4; font-style: italic;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #000080;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #008000;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #000080; font-weight: bold;'
-            ),
-        'METHODS' => array(
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #0000FF;'
-            ),
-        'ESCAPE_CHAR' => array(
-            ),
-        'SCRIPT' => array(
-            ),
-        'REGEXPS' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => '',
-        4 => ''
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(
-        ),
-    'REGEXPS' => array(
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        ),
-    'TAB_WIDTH' => 4
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/bash.php b/wiki/vendor/geshi/geshi/src/geshi/bash.php
deleted file mode 100644
index d975215..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/bash.php
+++ /dev/null
@@ -1,472 +0,0 @@
-<?php
-/*************************************************************************************
- * bash.php
- * --------
- * Author: Andreas Gohr (andi@splitbrain.org)
- * Copyright: (c) 2004 Andreas Gohr, Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.9.0
- * Date Started: 2004/08/20
- *
- * BASH language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2008/06/21 (1.0.8)
- *  -  Added loads of keywords and commands of GNU/Linux
- *  -  Added support for parameters starting with a dash
- * 2008/05/23 (1.0.7.22)
- *  -  Added description of extra language features (SF#1970248)
- * 2007/09/05 (1.0.7.21)
- *  -  PARSER_CONTROL patch using SF #1788408 (BenBE)
- * 2007/06/11 (1.0.7.20)
- *  -  Added a lot of keywords (BenBE / Jan G)
- * 2004/11/27 (1.0.2)
- *  -  Added support for multiple object splitters
- * 2004/10/27 (1.0.1)
- *   -  Added support for URLs
- * 2004/08/20 (1.0.0)
- *   -  First Release
- *
- * TODO (updated 2004/11/27)
- * -------------------------
- * * Get symbols working
- * * Highlight builtin vars
- *
- *************************************************************************************
- *
- *     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' => 'Bash',
-    // Bash DOES have single line comments with # markers. But bash also has
-    // the  $# variable, so comments need special handling (see sf.net
-    // 1564839)
-    'COMMENT_SINGLE' => array('#'),
-    'COMMENT_MULTI' => array(),
-    'COMMENT_REGEXP' => array(
-        //Variables
-        1 => "/\\$\\{[^\\n\\}]*?\\}/i",
-        //BASH-style Heredoc
-        2 => '/<<-?\s*?(\'?)([a-zA-Z0-9]+)\1\\n.*\\n\\2(?![a-zA-Z0-9])/siU',
-        //Escaped String Starters
-        3 => "/\\\\['\"]/siU",
-        // Single-Line Shell usage: Hide the prompt at the beginning
-        /* 4 => "/\A(?!#!)\s*(?>[\w:@\\/\\-\\._~]*[$#]\s?)?(?=[^\n]+\n?\Z)|^(?!#!)(\w+@)?[\w\\-\\.]+(:~?)[\w\\/\\-\\._]*?[$#]\s?/ms" */
-        4 => "/\A(?!#!)(?:(?>[\w:@\\/\\-\\._~]*)[$#]\s?)(?=(?>[^\n]+)\n?\Z)|^(?!#!)(?:\w+@)?(?>[\w\\-\\.]+)(?>:~?[\w\\/\\-\\._]*?)?[$#]\s?/sm"
-        ),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array('"'),
-    'HARDQUOTE' => array("'", "'"),
-    'HARDESCAPE' => array("\'"),
-    'ESCAPE_CHAR' => '',
-    'ESCAPE_REGEXP' => array(
-        //Simple Single Char Escapes
-        1 => "#\\\\[nfrtv\\$\\\"\n]#i",
-        // $var
-        2 => "#\\$[a-z_][a-z0-9_]*#i",
-        // ${...}
-        3 => "/\\$\\{[^\\n\\}]*?\\}/i",
-        // $(...)
-        4 => "/\\$\\([^\\n\\)]*?\\)/i",
-        // `...`
-        5 => "/`[^`]*`/"
-        ),
-    'KEYWORDS' => array(
-        1 => array(
-            'case', 'do', 'done', 'elif', 'else', 'esac', 'fi', 'for', 'function',
-            'if', 'in', 'select', 'set', 'then', 'until', 'while', 'time'
-            ),
-        2 => array(
-            'aclocal', 'aconnect', 'apachectl', 'apache2ctl', 'aplay', 'apm',
-            'apmsleep', 'apropos', 'apt-cache', 'apt-cdrom', 'apt-config',
-            'apt-file', 'apt-ftparchive', 'apt-get', 'apt-key', 'apt-listbugs',
-            'apt-listchanges', 'apt-mark', 'apt-mirror', 'apt-sortpkgs',
-            'apt-src', 'apticron', 'aptitude', 'aptsh', 'apxs', 'apxs2', 'ar',
-            'arch', 'arecord', 'as', 'as86', 'ash', 'autoconf', 'autoheader',
-            'automake', 'awk',
-
-            'apachectl start', 'apachectl stop', 'apachectl restart',
-            'apachectl graceful', 'apachectl graceful-stop',
-            'apachectl configtest', 'apachectl status', 'apachectl fullstatus',
-            'apachectl help', 'apache2ctl start', 'apache2ctl stop',
-            'apache2ctl restart', 'apache2ctl graceful',
-            'apache2ctl graceful-stop', 'apache2ctl configtest',
-            'apache2ctl status', 'apache2ctl fullstatus', 'apache2ctl help',
-
-            'apt-cache add', 'apt-cache depends', 'apt-cache dotty',
-            'apt-cache dump', 'apt-cache dumpavail', 'apt-cache gencaches',
-            'apt-cache pkgnames', 'apt-cache policy', 'apt-cache rdepends',
-            'apt-cache search', 'apt-cache show', 'apt-cache showauto',
-            'apt-cache showpkg', 'apt-cache showsrc', 'apt-cache stats',
-            'apt-cache unmet', 'apt-cache xvcg', 'apt-cdrom add',
-            'apt-cdrom ident', 'apt-config dump', 'apt-config shell',
-            'apt-file find', 'apt-file list', 'apt-file purge',
-            'apt-file search', 'apt-file shot', 'apt-file update',
-            'apt-get autoclean', 'apt-get autoremove', 'apt-get build-dep',
-            'apt-get check', 'apt-get clean', 'apt-get dist-upgrade',
-            'apt-get dselect-upgrade', 'apt-get install', 'apt-get markauto',
-            'apt-get purge', 'apt-get remove', 'apt-get source',
-            'apt-get unmarkauto', 'apt-get update', 'apt-get upgrade',
-            'apt-key add', 'apt-key adv', 'apt-key del', 'apt-key export',
-            'apt-key exportall', 'apt-key finger', 'apt-key list',
-            'apt-key net-update', 'apt-key update', 'apt-listbugs apt',
-            'apt-listbugs list', 'apt-listbugs rss', 'apt-src build',
-            'apt-src clean', 'apt-src import', 'apt-src install',
-            'apt-src list', 'apt-src location', 'apt-src name',
-            'apt-src remove', 'apt-src update', 'apt-src upgrade',
-            'apt-src version',
-
-            'aptitude autoclean', 'aptitude build-dep', 'aptitude changelog',
-            'aptitude clean', 'aptitude download', 'aptitude forbid-version',
-            'aptitude forget-new', 'aptitude full-upgrade', 'aptitude hold',
-            'aptitude install', 'aptitude markauto', 'aptitude purge',
-            'aptitude reinstall', 'aptitude remove', 'aptitude safe-upgrade',
-            'aptitude search', 'aptitude show', 'aptitude unhold',
-            'aptitude unmarkauto', 'aptitude update', 'aptitude versions',
-            'aptitude why', 'aptitude why-not',
-
-            'basename', 'bash', 'batctl', 'bc', 'bison', 'bunzip2', 'bzcat',
-            'bzcmp', 'bzdiff', 'bzegrep', 'bzfgrep', 'bzgrep',
-            'bzip2', 'bzip2recover', 'bzless', 'bzmore',
-
-            'c++', 'cal', 'cat', 'chattr', 'cc', 'cdda2wav', 'cdparanoia',
-            'cdrdao', 'cd-read', 'cdrecord', 'chfn', 'chgrp', 'chmod',
-            'chown', 'chroot', 'chsh', 'chvt', 'clear', 'cmp', 'comm', 'co',
-            'col', 'cp', 'cpio', 'cpp', 'csh', 'cut', 'cvs', 'cvs-pserver',
-
-            'cvs add', 'cvs admin', 'cvs annotate', 'cvs checkout',
-            'cvs commit', 'cvs diff', 'cvs edit', 'cvs editors', 'cvs export',
-            'cvs history', 'cvs import', 'cvs init', 'cvs log', 'cvs login',
-            'cvs logout', 'cvs ls', 'cvs pserver', 'cvs rannotate',
-            'cvs rdiff', 'cvs release', 'cvs remove', 'cvs rlog', 'cvs rls',
-            'cvs rtag', 'cvs server', 'cvs status', 'cvs tag', 'cvs unedit',
-            'cvs update', 'cvs version', 'cvs watch', 'cvs watchers',
-
-            'dash', 'date', 'dc', 'dch', 'dcop', 'dd', 'ddate', 'ddd',
-            'deallocvt', 'debconf', 'defoma', 'depmod', 'df', 'dh',
-            'dialog', 'diff', 'diff3', 'dig', 'dir', 'dircolors', 'directomatic',
-            'dirname', 'dmesg', 'dnsdomainname', 'domainname', 'dpkg',
-            'dselect', 'du', 'dumpkeys',
-
-            'ed', 'egrep', 'env', 'expr',
-
-            'false', 'fbset', 'fdisk', 'ffmpeg', 'fgconsole','fgrep', 'file',
-            'find', 'flex', 'flex++', 'fmt', 'free', 'ftp', 'funzip', 'fuser',
-
-            'g++', 'gawk', 'gc','gcc', 'gdb', 'gdisk', 'getent', 'getkeycodes',
-            'getopt', 'gettext', 'gettextize', 'gimp', 'gimp-remote',
-            'gimptool', 'gmake', 'gocr', 'grep', 'groups', 'gs', 'gunzip',
-            'gzexe', 'gzip',
-
-            'git', 'git add', 'git add--interactive', 'git am', 'git annotate',
-            'git apply', 'git archive', 'git bisect', 'git bisect--helper',
-            'git blame', 'git branch', 'git bundle', 'git cat-file',
-            'git check-attr', 'git checkout', 'git checkout-index',
-            'git check-ref-format', 'git cherry', 'git cherry-pick',
-            'git clean', 'git clone', 'git commit', 'git commit-tree',
-            'git config', 'git count-objects', 'git daemon', 'git describe',
-            'git diff', 'git diff-files', 'git diff-index', 'git difftool',
-            '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 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',
-            'git instaweb', 'git log', 'git lost-found', 'git ls-files',
-            'git ls-remote', 'git ls-tree', 'git mailinfo', 'git mailsplit',
-            'git merge', 'git merge-base', 'git merge-file', 'git merge-index',
-            'git merge-octopus', 'git merge-one-file', 'git merge-ours',
-            'git merge-recursive', 'git merge-resolve', 'git merge-subtree',
-            'git mergetool', 'git merge-tree', 'git mktag', 'git mktree',
-            'git mv', 'git name-rev', 'git notes', 'git pack-objects',
-            'git pack-redundant', 'git pack-refs', 'git patch-id',
-            'git peek-remote', 'git prune', 'git prune-packed', 'git pull',
-            'git push', 'git quiltimport', 'git read-tree', 'git rebase',
-            'git rebase--interactive', 'git receive-pack', 'git reflog',
-            'git relink', 'git remote', 'git remote-ftp', 'git remote-ftps',
-            'git remote-http', 'git remote-https', 'git remote-testgit',
-            'git repack', 'git replace', 'git repo-config', 'git request-pull',
-            'git rerere', 'git reset', 'git revert', 'git rev-list',
-            'git rev-parse', 'git rm', 'git send-pack', 'git shell',
-            'git shortlog', 'git show', 'git show-branch', 'git show-index',
-            'git show-ref', 'git stage', 'git stash', 'git status',
-            'git stripspace', 'git submodule', 'git symbolic-ref', 'git tag',
-            'git tar-tree', 'git unpack-file', 'git unpack-objects',
-            'git update-index', 'git update-ref', 'git update-server-info',
-            'git upload-archive', 'git upload-pack', 'git var',
-            'git verify-pack', 'git verify-tag', 'git web--browse',
-            'git whatchanged', 'git write-tree',
-
-            'gitaction', 'git-add', 'git-add--interactive', 'git-am',
-            'git-annotate', 'git-apply', 'git-archive', 'git-bisect',
-            'git-bisect--helper', 'git-blame', 'git-branch', 'git-bundle',
-            'git-cat-file', 'git-check-attr', 'git-checkout',
-            'git-checkout-index', 'git-check-ref-format', 'git-cherry',
-            'git-cherry-pick', 'git-clean', 'git-clone', 'git-commit',
-            'git-commit-tree', 'git-config', 'git-count-objects', 'git-daemon',
-            'git-describe', 'git-diff', 'git-diff-files', 'git-diff-index',
-            'git-difftool', 'git-difftool--helper', 'git-diff-tree',
-            'gitdpkgname', 'git-fast-export', 'git-fast-import', 'git-fetch',
-            'git-fetch-pack', 'git-fetch--tool', 'git-filter-branch', 'gitfm',
-            'git-fmt-merge-msg', 'git-for-each-ref', 'git-format-patch',
-            'git-fsck', 'git-fsck-objects', 'git-gc', 'git-get-tar-commit-id',
-            'git-grep', 'git-hash-object', 'git-help', 'git-http-fetch',
-            'git-http-push', 'git-imap-send', 'git-index-pack', 'git-init',
-            'git-init-db', 'git-instaweb', 'gitkeys', 'git-log',
-            'git-lost-found', 'git-ls-files', 'git-ls-remote', 'git-ls-tree',
-            'git-mailinfo', 'git-mailsplit', 'git-merge', 'git-merge-base',
-            'git-merge-file', 'git-merge-index', 'git-merge-octopus',
-            'git-merge-one-file', 'git-merge-ours', 'git-merge-recursive',
-            'git-merge-resolve', 'git-merge-subtree', 'git-mergetool',
-            'git-mergetool--lib', 'git-merge-tree', 'gitmkdirs', 'git-mktag',
-            'git-mktree', 'gitmount', 'git-mv', 'git-name-rev',
-            'git-pack-objects', 'git-pack-redundant', 'git-pack-refs',
-            'git-parse-remote', 'git-patch-id', 'git-peek-remote', 'git-prune',
-            'git-prune-packed', 'gitps', 'git-pull', 'git-push',
-            'git-quiltimport', 'git-read-tree', 'git-rebase',
-            'git-rebase--interactive', 'git-receive-pack', 'git-reflog',
-            'gitregrep', 'git-relink', 'git-remote', 'git-repack',
-            'git-repo-config', 'git-request-pull', 'git-rerere', 'git-reset',
-            'git-revert', 'git-rev-list', 'git-rev-parse', 'gitrfgrep',
-            'gitrgrep', 'git-rm', 'git-send-pack', 'git-shell', 'git-shortlog',
-            'git-show', 'git-show-branch', 'git-show-index', 'git-show-ref',
-            'git-sh-setup', 'git-stage', 'git-stash', 'git-status',
-            'git-stripspace', 'git-submodule', 'git-svn', 'git-symbolic-ref',
-            'git-tag', 'git-tar-tree', 'gitunpack', 'git-unpack-file',
-            'git-unpack-objects', 'git-update-index', 'git-update-ref',
-            'git-update-server-info', 'git-upload-archive', 'git-upload-pack',
-            'git-var', 'git-verify-pack', 'git-verify-tag', 'gitview',
-            'git-web--browse', 'git-whatchanged', 'gitwhich', 'gitwipe',
-            'git-write-tree', 'gitxgrep',
-
-            'head', 'hexdump', 'hostname', 'htop',
-
-            'id', 'ifconfig', 'ifdown', 'ifup', 'igawk', 'install',
-
-            'ip', 'ip addr', 'ip addrlabel', 'ip link', 'ip maddr', 'ip mroute',
-            'ip neigh', 'ip route', 'ip rule', 'ip tunnel', 'ip xfrm',
-
-            'jar', 'java', 'javac', 'join',
-
-            'kbd_mode','kbdrate', 'kdialog', 'kfile', 'kill', 'killall',
-
-            'lame', 'last', 'lastb', 'ld', 'ld86', 'ldd', 'less', 'lex', 'link',
-            'ln', 'loadkeys', 'loadunimap', 'locate', 'lockfile', 'login',
-            'logname', 'lp', 'lpr', 'ls', 'lsattr', 'lsmod', 'lsmod.old',
-            'lspci', 'ltrace', 'lynx',
-
-            'm4', 'make', 'man', 'mapscrn', 'mesg', 'mkdir', 'mkfifo',
-            'mknod', 'mktemp', 'more', 'mount', 'mplayer', 'msgfmt', 'mv',
-
-            'namei', 'nano', 'nasm', 'nawk', 'netstat', 'nice',
-            'nisdomainname', 'nl', 'nm', 'nm86', 'nmap', 'nohup', 'nop',
-
-            'od', 'openvt',
-
-            'passwd', 'patch', 'pbzip2', 'pcregrep', 'pcretest', 'perl',
-            'perror', 'pgawk', 'pidof', 'pigz', 'ping', 'pr', 'procmail',
-            'prune', 'ps', 'pstree', 'ps2ascii', 'ps2epsi', 'ps2frag',
-            'ps2pdf', 'ps2ps', 'psbook', 'psmerge', 'psnup', 'psresize',
-            'psselect', 'pstops',
-
-            'rbash', 'rcs', 'rcs2log', 'read', 'readlink', 'red', 'resizecons',
-            'rev', 'rm', 'rmdir', 'rsh', 'run-parts',
-
-            'sash', 'scp', 'screen', 'sed', 'seq', 'sendmail', 'setfont',
-            'setkeycodes', 'setleds', 'setmetamode', 'setserial', 'setterm',
-            'sh', 'showkey', 'shred', 'size', 'size86', 'skill', 'sleep',
-            'slogin', 'snice', 'sort', 'sox', 'split', 'ssed', 'ssh', 'ssh-add',
-            'ssh-agent', 'ssh-keygen', 'ssh-keyscan', 'sshfs', 'stat', 'strace',
-            'strings', 'strip', 'stty', 'su', 'sudo', 'suidperl', 'sum', 'svn',
-            'svnadmin', 'svndumpfilter', 'svnlook', 'svnmerge', 'svnmucc',
-            'svnserve', 'svnshell', 'svnsync', 'svnversion', 'svnwrap', 'sync',
-
-            'svn add', 'svn ann', 'svn annotate', 'svn blame', 'svn cat',
-            'svn changelist', 'svn checkout', 'svn ci', 'svn cl', 'svn cleanup',
-            'svn co', 'svn commit', 'svn copy', 'svn cp', 'svn del',
-            'svn delete', 'svn di', 'svn diff', 'svn export', 'svn help',
-            'svn import', 'svn info', 'svn list', 'svn lock', 'svn log',
-            'svn ls', 'svn merge', 'svn mergeinfo', 'svn mkdir', 'svn move',
-            'svn mv', 'svn patch', 'svn pd', 'svn pdel', 'svn pe', 'svn pedit',
-            'svn pg', 'svn pget', 'svn pl', 'svn plist', 'svn praise',
-            'svn propdel', 'svn propedit', 'svn propget', 'svn proplist',
-            'svn propset', 'svn ps', 'svn pset', 'svn relocate', 'svn remove',
-            'svn rename', 'svn resolve', 'svn resolved', 'svn revert', 'svn rm',
-            'svn st', 'svn stat', 'svn status', 'svn sw', 'svn switch',
-            'svn unlock', 'svn up', 'svn update', 'svn upgrade',
-
-            'svnadmin crashtest', 'svnadmin create', 'svnadmin deltify',
-            'svnadmin dump', 'svnadmin help', 'svnadmin hotcopy',
-            'svnadmin list-dblogs', 'svnadmin list-unused-dblogs',
-            'svnadmin load', 'svnadmin lslocks', 'svnadmin lstxns',
-            'svnadmin pack', 'svnadmin recover', 'svnadmin rmlocks',
-            'svnadmin rmtxns', 'svnadmin setlog', 'svnadmin setrevprop',
-            'svnadmin setuuid', 'svnadmin upgrade', 'svnadmin verify',
-
-            'svndumpfilter exclude', 'svndumpfilter help',
-            'svndumpfilter include',
-
-            'svnlook author', 'svnlook cat', 'svnlook changed', 'svnlook date',
-            'svnlook diff', 'svnlook dirs-changed', 'svnlook filesize',
-            'svnlook help', 'svnlook history', 'svnlook info', 'svnlook lock',
-            'svnlook log', 'svnlook pg', 'svnlook pget', 'svnlook pl',
-            'svnlook plist', 'svnlook propget', 'svnlook proplist',
-            'svnlook tree', 'svnlook uuid', 'svnlook youngest',
-
-            'svnrdump dump', 'svnrdump help', 'svnrdump load',
-
-            'svnsync copy-revprops', 'svnsync help', 'svnsync info',
-            'svnsync init', 'svnsync initialize', 'svnsync sync',
-            'svnsync synchronize',
-
-            'tac', 'tail', 'tar', 'tee', 'tempfile', 'touch', 'tr', 'tree',
-            'true',
-
-            'umount', 'uname', 'unicode_start', 'unicode_stop', 'uniq',
-            'unlink', 'unzip', 'updatedb', 'updmap', 'uptime', 'users',
-            'utmpdump', 'uuidgen',
-
-            'valgrind', 'vdir', 'vi', 'vim', 'vmstat',
-
-            'w', 'wall', 'watch', 'wc', 'wget', 'whatis', 'whereis',
-            'which', 'whiptail', 'who', 'whoami', 'whois', 'wine', 'wineboot',
-            'winebuild', 'winecfg', 'wineconsole', 'winedbg', 'winedump',
-            'winefile', 'wodim', 'write',
-
-            'xargs', 'xhost', 'xmodmap', 'xset',
-
-            'yacc', 'yes', 'ypdomainname', 'yum',
-
-            'yum check-update', 'yum clean', 'yum deplist', 'yum erase',
-            'yum groupinfo', 'yum groupinstall', 'yum grouplist',
-            'yum groupremove', 'yum groupupdate', 'yum info', 'yum install',
-            'yum list', 'yum localinstall', 'yum localupdate', 'yum makecache',
-            'yum provides', 'yum remove', 'yum resolvedep', 'yum search',
-            'yum shell', 'yum update', 'yum upgrade', 'yum whatprovides',
-
-            'zcat', 'zcmp', 'zdiff', 'zdump', 'zegrep', 'zfgrep', 'zforce',
-            'zgrep', 'zip', 'zipgrep', 'zipinfo', 'zless', 'zmore', 'znew',
-            'zsh', 'zsoelim'
-            ),
-        3 => array(
-            'alias', 'bg', 'bind', 'break', 'builtin', 'cd', 'command',
-            'compgen', 'complete', 'continue', 'declare', 'dirs', 'disown',
-            'echo', 'enable', 'eval', 'exec', 'exit', 'export', 'fc',
-            'fg', 'getopts', 'hash', 'help', 'history', 'jobs', 'let',
-            'local', 'logout', 'popd', 'printf', 'pushd', 'pwd', 'readonly',
-            'return', 'shift', 'shopt', 'source', 'suspend', 'test', 'times',
-            'trap', 'type', 'typeset', 'ulimit', 'umask', 'unalias', 'unset',
-            'wait'
-            )
-        ),
-    'SYMBOLS' => array(
-        '(', ')', '[', ']', '!', '@', '%', '&', '*', '|', '/', '<', '>', ';;', '`'
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => true,
-        2 => true,
-        3 => true
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #000000; font-weight: bold;',
-            2 => 'color: #c20cb9; font-weight: bold;',
-            3 => 'color: #7a0874; font-weight: bold;'
-            ),
-        'COMMENTS' => array(
-            0 => 'color: #666666; font-style: italic;',
-            1 => 'color: #800000;',
-            2 => 'color: #cc0000; font-style: italic;',
-            3 => 'color: #000000; font-weight: bold;',
-            4 => 'color: #666666;'
-            ),
-        'ESCAPE_CHAR' => array(
-            1 => 'color: #000099; font-weight: bold;',
-            2 => 'color: #007800;',
-            3 => 'color: #007800;',
-            4 => 'color: #007800;',
-            5 => 'color: #780078;',
-            'HARD' => 'color: #000099; font-weight: bold;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #7a0874; font-weight: bold;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #ff0000;',
-            'HARD' => 'color: #ff0000;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #000000;'
-            ),
-        'METHODS' => array(
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #000000; font-weight: bold;'
-            ),
-        'REGEXPS' => array(
-            0 => 'color: #007800;',
-            1 => 'color: #007800;',
-            2 => 'color: #007800;',
-            4 => 'color: #007800;',
-            5 => 'color: #660033;'
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => ''
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(
-        ),
-    'REGEXPS' => array(
-        //Variables (will be handled by comment_regexps)
-        0 => "\\$\\{[a-zA-Z_][a-zA-Z0-9_]*?\\}",
-        //Variables without braces
-        1 => "\\$[a-zA-Z_][a-zA-Z0-9_]*",
-        //Variable assignment
-        2 => "(?<![\.a-zA-Z_\-])([a-zA-Z_][a-zA-Z0-9_]*?)(?==)",
-        //Shorthand shell variables
-        4 => "\\$[*#\$\\-\\?!\d]",
-        //Parameters of commands
-        5 => "(?<=\s)--?[0-9a-zA-Z\-]+(?=[\s=]|<(?:SEMI|PIPE)>|$)"
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        ),
-    'TAB_WIDTH' => 4,
-    'PARSER_CONTROL' => array(
-        'COMMENTS' => array(
-            'DISALLOWED_BEFORE' => '$'
-        ),
-        'KEYWORDS' => array(
-            'DISALLOWED_BEFORE' => "(?<![\.\-a-zA-Z0-9_\$\#:])",
-            'DISALLOWED_AFTER' =>  "(?![\.\-a-zA-Z0-9_%=\\/:])",
-            2 => array(
-                'SPACE_AS_WHITESPACE' => false
-                )
-            )
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/basic4gl.php b/wiki/vendor/geshi/geshi/src/geshi/basic4gl.php
deleted file mode 100644
index 499428f..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/basic4gl.php
+++ /dev/null
@@ -1,339 +0,0 @@
-<?php
-/*************************************************************************************
- * basic4gl.php
- * ---------------------------------
- * Author: Matthew Webb (bmatthew1@blueyonder.co.uk)
- * Copyright: (c) 2004 Matthew Webb (http://matthew-4gl.wikispaces.com)
- * Release Version: 1.0.9.0
- * Date Started: 2007/09/15
- *
- * Basic4GL language file for GeSHi.
- *
- * You can find the Basic4GL Website at (http://www.basic4gl.net/)
- *
- * CHANGES
- * -------
- * 2007/09/17 (1.0.0)
- *  -  First Release
- *
- * TODO (updated 2007/09/17)
- * -------------------------
- * Make sure all the OpenGL and Basic4GL commands have been added and are complete.
- *
- *************************************************************************************
- *
- *     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' => 'Basic4GL',
-    'COMMENT_SINGLE' => array(1 => "'"),
-    'COMMENT_MULTI' => array(),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array('"'),
-    'ESCAPE_CHAR' => '',
-    'KEYWORDS' => array(
-        1 => array(
-
-            // Navy Blue Bold Keywords
-
-            'true','rnd_max','m_pi','m_e','false','VK_ZOOM','VK_UP','VK_TAB','VK_SUBTRACT','VK_SPACE','VK_SNAPSHOT',
-            'VK_SHIFT','VK_SEPARATOR','VK_SELECT','VK_SCROLL','VK_RWIN','VK_RSHIFT','VK_RMENU','VK_RIGHT','VK_RETURN',
-            'VK_RCONTROL','VK_RBUTTON','VK_PROCESSKEY','VK_PRIOR','VK_PRINT','VK_PLAY','VK_PAUSE','VK_NUMPAD9','VK_NUMPAD8',
-            'VK_NUMPAD7','VK_NUMPAD6','VK_NUMPAD5','VK_NUMPAD4','VK_NUMPAD3','VK_NUMPAD2','VK_NUMPAD1','VK_NUMPAD0',
-            'VK_NUMLOCK','VK_NONCONVERT','VK_NEXT','VK_MULTIPLY','VK_MODECHANGE','VK_MENU','VK_MBUTTON','VK_LWIN',
-            'VK_LSHIFT','VK_LMENU','VK_LEFT','VK_LCONTROL','VK_LBUTTON','VK_KANJI','VK_KANA','VK_JUNJA','VK_INSERT',
-            'VK_HOME','VK_HELP','VK_HANJA','VK_HANGUL','VK_HANGEUL','VK_FINAL','VK_F9','VK_F8','VK_F7','VK_F6','VK_F5',
-            'VK_F4','VK_F3','VK_F24','VK_F23','VK_F22','VK_F21','VK_F20','VK_F2','VK_F19','VK_F18','VK_F17','VK_F16',
-            'VK_F15','VK_F14','VK_F13','VK_F12','VK_F11','VK_F10','VK_F1','VK_EXSEL','VK_EXECUTE','VK_ESCAPE','VK_EREOF',
-            'VK_END','VK_DOWN','VK_DIVIDE','VK_DELETE','VK_DECIMAL','VK_CRSEL','VK_CONVERT','VK_CONTROL','VK_CLEAR',
-            'VK_CAPITAL','VK_CANCEL','VK_BACK','VK_ATTN','VK_APPS','VK_ADD','VK_ACCEPT','TEXT_SIMPLE','TEXT_OVERLAID',
-            'TEXT_BUFFERED','SPR_TILEMAP','SPR_SPRITE','SPR_INVALID','MOUSE_RBUTTON','MOUSE_MBUTTON','MOUSE_LBUTTON',
-            'GL_ZOOM_Y','GL_ZOOM_X','GL_ZERO','GL_XOR','GL_WIN_swap_hint','GL_WIN_draw_range_elements','GL_VIEWPORT_BIT',
-            'GL_VIEWPORT','GL_VERTEX_ARRAY_TYPE_EXT','GL_VERTEX_ARRAY_TYPE','GL_VERTEX_ARRAY_STRIDE_EXT','GL_VERTEX_ARRAY_STRIDE',
-            'GL_VERTEX_ARRAY_SIZE_EXT','GL_VERTEX_ARRAY_SIZE','GL_VERTEX_ARRAY_POINTER_EXT','GL_VERTEX_ARRAY_POINTER',
-            'GL_VERTEX_ARRAY_EXT','GL_VERTEX_ARRAY_COUNT_EXT','GL_VERTEX_ARRAY','GL_VERSION_1_1','GL_VERSION','GL_VENDOR',
-            'GL_V3F','GL_V2F','GL_UNSIGNED_SHORT','GL_UNSIGNED_INT','GL_UNSIGNED_BYTE','GL_UNPACK_SWAP_BYTES','GL_UNPACK_SKIP_ROWS',
-            'GL_UNPACK_SKIP_PIXELS','GL_UNPACK_ROW_LENGTH','GL_UNPACK_LSB_FIRST','GL_UNPACK_ALIGNMENT','GL_TRUE','GL_TRIANGLE_STRIP',
-            'GL_TRIANGLE_FAN','GL_TRIANGLES','GL_TRANSFORM_BIT','GL_TEXTURE_WRAP_T','GL_TEXTURE_WRAP_S','GL_TEXTURE_WIDTH',
-            'GL_TEXTURE_STACK_DEPTH','GL_TEXTURE_RESIDENT','GL_TEXTURE_RED_SIZE','GL_TEXTURE_PRIORITY','GL_TEXTURE_MIN_FILTER',
-            'GL_TEXTURE_MATRIX','GL_TEXTURE_MAG_FILTER','GL_TEXTURE_LUMINANCE_SIZE','GL_TEXTURE_INTERNAL_FORMAT','GL_TEXTURE_INTENSITY_SIZE',
-            'GL_TEXTURE_HEIGHT','GL_TEXTURE_GREEN_SIZE','GL_TEXTURE_GEN_T','GL_TEXTURE_GEN_S','GL_TEXTURE_GEN_R','GL_TEXTURE_GEN_Q',
-            'GL_TEXTURE_GEN_MODE','GL_TEXTURE_ENV_MODE','GL_TEXTURE_ENV_COLOR','GL_TEXTURE_ENV','GL_TEXTURE_COORD_ARRAY_TYPE_EXT',
-            'GL_TEXTURE_COORD_ARRAY_TYPE','GL_TEXTURE_COORD_ARRAY_STRIDE_EXT','GL_TEXTURE_COORD_ARRAY_STRIDE','GL_TEXTURE_COORD_ARRAY_SIZE_EXT',
-            'GL_TEXTURE_COORD_ARRAY_SIZE','GL_TEXTURE_COORD_ARRAY_POINTER_EXT','GL_TEXTURE_COORD_ARRAY_POINTER','GL_TEXTURE_COORD_ARRAY_EXT',
-            'GL_TEXTURE_COORD_ARRAY_COUNT_EXT','GL_TEXTURE_COORD_ARRAY','GL_TEXTURE_COMPONENTS','GL_TEXTURE_BORDER_COLOR','GL_TEXTURE_BORDER',
-            'GL_TEXTURE_BLUE_SIZE','GL_TEXTURE_BIT','GL_TEXTURE_BINDING_2D','GL_TEXTURE_BINDING_1D','GL_TEXTURE_ALPHA_SIZE',
-            'GL_TEXTURE_2D','GL_TEXTURE_1D','GL_TEXTURE9_ARB','GL_TEXTURE9','GL_TEXTURE8_ARB','GL_TEXTURE8','GL_TEXTURE7_ARB',
-            'GL_TEXTURE7','GL_TEXTURE6_ARB','GL_TEXTURE6','GL_TEXTURE5_ARB','GL_TEXTURE5','GL_TEXTURE4_ARB','GL_TEXTURE4',
-            'GL_TEXTURE3_ARB','GL_TEXTURE31_ARB','GL_TEXTURE31','GL_TEXTURE30_ARB','GL_TEXTURE30','GL_TEXTURE3','GL_TEXTURE2_ARB',
-            'GL_TEXTURE29_ARB','GL_TEXTURE29','GL_TEXTURE28_ARB','GL_TEXTURE28','GL_TEXTURE27_ARB','GL_TEXTURE27','GL_TEXTURE26_ARB',
-            'GL_TEXTURE26','GL_TEXTURE25_ARB','GL_TEXTURE25','GL_TEXTURE24_ARB','GL_TEXTURE24','GL_TEXTURE23_ARB','GL_TEXTURE23',
-            'GL_TEXTURE22_ARB','GL_TEXTURE22','GL_TEXTURE21_ARB','GL_TEXTURE21','GL_TEXTURE20_ARB','GL_TEXTURE20','GL_TEXTURE2',
-            'GL_TEXTURE1_ARB','GL_TEXTURE19_ARB','GL_TEXTURE19','GL_TEXTURE18_ARB','GL_TEXTURE18','GL_TEXTURE17_ARB',
-            'GL_TEXTURE17','GL_TEXTURE16_ARB','GL_TEXTURE16','GL_TEXTURE15_ARB','GL_TEXTURE15','GL_TEXTURE14_ARB','GL_TEXTURE14',
-            'GL_TEXTURE13_ARB','GL_TEXTURE13','GL_TEXTURE12_ARB','GL_TEXTURE12','GL_TEXTURE11_ARB','GL_TEXTURE11','GL_TEXTURE10_ARB',
-            'GL_TEXTURE10','GL_TEXTURE1','GL_TEXTURE0_ARB','GL_TEXTURE0','GL_TEXTURE','GL_T4F_V4F','GL_T4F_C4F_N3F_V4F','GL_T2F_V3F',
-            'GL_T2F_N3F_V3F','GL_T2F_C4UB_V3F','GL_T2F_C4F_N3F_V3F','GL_T2F_C3F_V3F','GL_T','GL_SUBPIXEL_BITS','GL_STEREO',
-            'GL_STENCIL_WRITEMASK','GL_STENCIL_VALUE_MASK','GL_STENCIL_TEST','GL_STENCIL_REF','GL_STENCIL_PASS_DEPTH_PASS',
-            'GL_STENCIL_PASS_DEPTH_FAIL','GL_STENCIL_INDEX','GL_STENCIL_FUNC','GL_STENCIL_FAIL','GL_STENCIL_CLEAR_VALUE',
-            'GL_STENCIL_BUFFER_BIT','GL_STENCIL_BITS','GL_STENCIL','GL_STACK_UNDERFLOW','GL_STACK_OVERFLOW','GL_SRC_COLOR',
-            'GL_SRC_ALPHA_SATURATE','GL_SRC_ALPHA','GL_SPOT_EXPONENT','GL_SPOT_DIRECTION','GL_SPOT_CUTOFF','GL_SPHERE_MAP',
-            'GL_SPECULAR','GL_SOURCE2_RGB_EXT','GL_SOURCE2_RGB','GL_SOURCE2_ALPHA_EXT','GL_SOURCE2_ALPHA','GL_SOURCE1_RGB_EXT',
-            'GL_SOURCE1_RGB','GL_SOURCE1_ALPHA_EXT','GL_SOURCE1_ALPHA','GL_SOURCE0_RGB_EXT','GL_SOURCE0_RGB','GL_SOURCE0_ALPHA_EXT',
-            'GL_SOURCE0_ALPHA','GL_SMOOTH','GL_SHORT','GL_SHININESS','GL_SHADE_MODEL','GL_SET','GL_SELECTION_BUFFER_SIZE',
-            'GL_SELECTION_BUFFER_POINTER','GL_SELECT','GL_SCISSOR_TEST','GL_SCISSOR_BOX','GL_SCISSOR_BIT','GL_S','GL_RIGHT',
-            'GL_RGB_SCALE_EXT','GL_RGB_SCALE','GL_RGBA_MODE','GL_RGBA8','GL_RGBA4','GL_RGBA2','GL_RGBA16','GL_RGBA12','GL_RGBA',
-            'GL_RGB8','GL_RGB5_A1','GL_RGB5','GL_RGB4','GL_RGB16','GL_RGB12','GL_RGB10_A2','GL_RGB10','GL_RGB','GL_RETURN',
-            'GL_REPLACE','GL_REPEAT','GL_RENDER_MODE','GL_RENDERER','GL_RENDER','GL_RED_SCALE','GL_RED_BITS','GL_RED_BIAS',
-            'GL_RED','GL_READ_BUFFER','GL_R3_G3_B2','GL_R','GL_QUAD_STRIP','GL_QUADS','GL_QUADRATIC_ATTENUATION','GL_Q',
-            'GL_PROXY_TEXTURE_2D','GL_PROXY_TEXTURE_1D','GL_PROJECTION_STACK_DEPTH','GL_PROJECTION_MATRIX','GL_PROJECTION',
-            'GL_PRIMARY_COLOR_EXT','GL_PRIMARY_COLOR','GL_PREVIOUS_EXT','GL_PREVIOUS','GL_POSITION','GL_POLYGON_TOKEN',
-            'GL_POLYGON_STIPPLE_BIT','GL_POLYGON_STIPPLE','GL_POLYGON_SMOOTH_HINT','GL_POLYGON_SMOOTH','GL_POLYGON_OFFSET_UNITS',
-            'GL_POLYGON_OFFSET_POINT','GL_POLYGON_OFFSET_LINE','GL_POLYGON_OFFSET_FILL','GL_POLYGON_OFFSET_FACTOR','GL_POLYGON_MODE',
-            'GL_POLYGON_BIT','GL_POLYGON','GL_POINT_TOKEN','GL_POINT_SMOOTH_HINT','GL_POINT_SMOOTH','GL_POINT_SIZE_RANGE',
-            'GL_POINT_SIZE_GRANULARITY','GL_POINT_SIZE','GL_POINT_BIT','GL_POINTS','GL_POINT','GL_PIXEL_MODE_BIT',
-            'GL_PIXEL_MAP_S_TO_S_SIZE','GL_PIXEL_MAP_S_TO_S','GL_PIXEL_MAP_R_TO_R_SIZE','GL_PIXEL_MAP_R_TO_R','GL_PIXEL_MAP_I_TO_R_SIZE',
-            'GL_PIXEL_MAP_I_TO_R','GL_PIXEL_MAP_I_TO_I_SIZE','GL_PIXEL_MAP_I_TO_I','GL_PIXEL_MAP_I_TO_G_SIZE','GL_PIXEL_MAP_I_TO_G',
-            'GL_PIXEL_MAP_I_TO_B_SIZE','GL_PIXEL_MAP_I_TO_B','GL_PIXEL_MAP_I_TO_A_SIZE','GL_PIXEL_MAP_I_TO_A','GL_PIXEL_MAP_G_TO_G_SIZE',
-            'GL_PIXEL_MAP_G_TO_G','GL_PIXEL_MAP_B_TO_B_SIZE','GL_PIXEL_MAP_B_TO_B','GL_PIXEL_MAP_A_TO_A_SIZE','GL_PIXEL_MAP_A_TO_A',
-            'GL_PHONG_WIN','GL_PHONG_HINT_WIN','GL_PERSPECTIVE_CORRECTION_HINT','GL_PASS_THROUGH_TOKEN','GL_PACK_SWAP_BYTES',
-            'GL_PACK_SKIP_ROWS','GL_PACK_SKIP_PIXELS','GL_PACK_ROW_LENGTH','GL_PACK_LSB_FIRST','GL_PACK_ALIGNMENT','GL_OUT_OF_MEMORY',
-            'GL_OR_REVERSE','GL_OR_INVERTED','GL_ORDER','GL_OR','GL_OPERAND2_RGB_EXT','GL_OPERAND2_RGB','GL_OPERAND2_ALPHA_EXT',
-            'GL_OPERAND2_ALPHA','GL_OPERAND1_RGB_EXT','GL_OPERAND1_RGB','GL_OPERAND1_ALPHA_EXT','GL_OPERAND1_ALPHA','GL_OPERAND0_RGB_EXT',
-            'GL_OPERAND0_RGB','GL_OPERAND0_ALPHA_EXT','GL_OPERAND0_ALPHA','GL_ONE_MINUS_SRC_COLOR','GL_ONE_MINUS_SRC_ALPHA',
-            'GL_ONE_MINUS_DST_COLOR','GL_ONE_MINUS_DST_ALPHA','GL_ONE','GL_OBJECT_PLANE','GL_OBJECT_LINEAR','GL_NO_ERROR',
-            'GL_NOTEQUAL','GL_NORMAL_ARRAY_TYPE_EXT','GL_NORMAL_ARRAY_TYPE','GL_NORMAL_ARRAY_STRIDE_EXT','GL_NORMAL_ARRAY_STRIDE',
-            'GL_NORMAL_ARRAY_POINTER_EXT','GL_NORMAL_ARRAY_POINTER','GL_NORMAL_ARRAY_EXT','GL_NORMAL_ARRAY_COUNT_EXT',
-            'GL_NORMAL_ARRAY','GL_NORMALIZE','GL_NOR','GL_NOOP','GL_NONE','GL_NICEST','GL_NEVER','GL_NEAREST_MIPMAP_NEAREST','GL_NEAREST_MIPMAP_LINEAR',
-            'GL_NEAREST','GL_NAND','GL_NAME_STACK_DEPTH','GL_N3F_V3F','GL_MULT','GL_MODULATE','GL_MODELVIEW_STACK_DEPTH','GL_MODELVIEW_MATRIX',
-            'GL_MODELVIEW','GL_MAX_VIEWPORT_DIMS','GL_MAX_TEXTURE_UNITS_ARB','GL_MAX_TEXTURE_UNITS','GL_MAX_TEXTURE_STACK_DEPTH',
-            'GL_MAX_TEXTURE_SIZE','GL_MAX_PROJECTION_STACK_DEPTH','GL_MAX_PIXEL_MAP_TABLE','GL_MAX_NAME_STACK_DEPTH','GL_MAX_MODELVIEW_STACK_DEPTH',
-            'GL_MAX_LIST_NESTING','GL_MAX_LIGHTS','GL_MAX_EVAL_ORDER','GL_MAX_ELEMENTS_VERTICES_WIN','GL_MAX_ELEMENTS_INDICES_WIN',
-            'GL_MAX_CLIP_PLANES','GL_MAX_CLIENT_ATTRIB_STACK_DEPTH','GL_MAX_ATTRIB_STACK_DEPTH','GL_MATRIX_MODE','GL_MAP_STENCIL',
-            'GL_MAP_COLOR','GL_MAP2_VERTEX_4','GL_MAP2_VERTEX_3','GL_MAP2_TEXTURE_COORD_4','GL_MAP2_TEXTURE_COORD_3','GL_MAP2_TEXTURE_COORD_2',
-            'GL_MAP2_TEXTURE_COORD_1','GL_MAP2_NORMAL','GL_MAP2_INDEX','GL_MAP2_GRID_SEGMENTS','GL_MAP2_GRID_DOMAIN','GL_MAP2_COLOR_4',
-            'GL_MAP1_VERTEX_4','GL_MAP1_VERTEX_3','GL_MAP1_TEXTURE_COORD_4','GL_MAP1_TEXTURE_COORD_3','GL_MAP1_TEXTURE_COORD_2',
-            'GL_MAP1_TEXTURE_COORD_1','GL_MAP1_NORMAL','GL_MAP1_INDEX','GL_MAP1_GRID_SEGMENTS','GL_MAP1_GRID_DOMAIN',
-            'GL_MAP1_COLOR_4','GL_LUMINANCE_ALPHA','GL_LUMINANCE8_ALPHA8','GL_LUMINANCE8','GL_LUMINANCE6_ALPHA2','GL_LUMINANCE4_ALPHA4',
-            'GL_LUMINANCE4','GL_LUMINANCE16_ALPHA16','GL_LUMINANCE16','GL_LUMINANCE12_ALPHA4','GL_LUMINANCE12_ALPHA12','GL_LUMINANCE12',
-            'GL_LUMINANCE','GL_LOGIC_OP_MODE','GL_LOGIC_OP','GL_LOAD','GL_LIST_MODE','GL_LIST_INDEX','GL_LIST_BIT',
-            'GL_LIST_BASE','GL_LINE_WIDTH_RANGE','GL_LINE_WIDTH_GRANULARITY','GL_LINE_WIDTH','GL_LINE_TOKEN','GL_LINE_STRIP','GL_LINE_STIPPLE_REPEAT',
-            'GL_LINE_STIPPLE_PATTERN','GL_LINE_STIPPLE','GL_LINE_SMOOTH_HINT','GL_LINE_SMOOTH','GL_LINE_RESET_TOKEN','GL_LINE_LOOP',
-            'GL_LINE_BIT','GL_LINES','GL_LINEAR_MIPMAP_NEAREST','GL_LINEAR_MIPMAP_LINEAR','GL_LINEAR_ATTENUATION','GL_LINEAR',
-            'GL_LINE','GL_LIGHT_MODEL_TWO_SIDE','GL_LIGHT_MODEL_LOCAL_VIEWER','GL_LIGHT_MODEL_AMBIENT','GL_LIGHTING_BIT',
-            'GL_LIGHTING','GL_LIGHT7','GL_LIGHT6','GL_LIGHT5','GL_LIGHT4','GL_LIGHT3','GL_LIGHT2','GL_LIGHT1','GL_LIGHT0',
-            'GL_LESS','GL_LEQUAL','GL_LEFT','GL_KEEP','GL_INVERT','GL_INVALID_VALUE','GL_INVALID_OPERATION','GL_INVALID_ENUM','GL_INTERPOLATE_EXT',
-            'GL_INTERPOLATE','GL_INTENSITY8','GL_INTENSITY4','GL_INTENSITY16','GL_INTENSITY12','GL_INTENSITY','GL_INT',
-            'GL_INDEX_WRITEMASK','GL_INDEX_SHIFT','GL_INDEX_OFFSET','GL_INDEX_MODE','GL_INDEX_LOGIC_OP','GL_INDEX_CLEAR_VALUE','GL_INDEX_BITS',
-            'GL_INDEX_ARRAY_TYPE_EXT','GL_INDEX_ARRAY_TYPE','GL_INDEX_ARRAY_STRIDE_EXT','GL_INDEX_ARRAY_STRIDE','GL_INDEX_ARRAY_POINTER_EXT',
-            'GL_INDEX_ARRAY_POINTER','GL_INDEX_ARRAY_EXT','GL_INDEX_ARRAY_COUNT_EXT','GL_INDEX_ARRAY','GL_INCR','GL_HINT_BIT',
-            'GL_GREEN_SCALE','GL_GREEN_BITS','GL_GREEN_BIAS','GL_GREEN','GL_GREATER','GL_GEQUAL','GL_FRONT_RIGHT','GL_FRONT_LEFT',
-            'GL_FRONT_FACE','GL_FRONT_AND_BACK','GL_FRONT','GL_FOG_START','GL_FOG_SPECULAR_TEXTURE_WIN','GL_FOG_MODE','GL_FOG_INDEX',
-            'GL_FOG_HINT','GL_FOG_END','GL_FOG_DENSITY','GL_FOG_COLOR','GL_FOG_BIT','GL_FOG','GL_FLOAT','GL_FLAT','GL_FILL',
-            'GL_FEEDBACK_BUFFER_TYPE','GL_FEEDBACK_BUFFER_SIZE','GL_FEEDBACK_BUFFER_POINTER','GL_FEEDBACK','GL_FASTEST','GL_FALSE',
-            'GL_EYE_PLANE','GL_EYE_LINEAR','GL_EXT_vertex_array','GL_EXT_paletted_texture','GL_EXT_bgra','GL_EXTENSIONS','GL_EXP2',
-            'GL_EXP','GL_EVAL_BIT','GL_EQUIV','GL_EQUAL','GL_ENABLE_BIT','GL_EMISSION','GL_EDGE_FLAG_ARRAY_STRIDE_EXT','GL_EDGE_FLAG_ARRAY_STRIDE',
-            'GL_EDGE_FLAG_ARRAY_POINTER_EXT','GL_EDGE_FLAG_ARRAY_POINTER','GL_EDGE_FLAG_ARRAY_EXT','GL_EDGE_FLAG_ARRAY_COUNT_EXT','GL_EDGE_FLAG_ARRAY',
-            'GL_EDGE_FLAG','GL_DST_COLOR','GL_DST_ALPHA','GL_DRAW_PIXEL_TOKEN','GL_DRAW_BUFFER','GL_DOUBLE_EXT','GL_DOUBLEBUFFER',
-            'GL_DOUBLE','GL_DONT_CARE','GL_DOMAIN','GL_DITHER','GL_DIFFUSE','GL_DEPTH_WRITEMASK','GL_DEPTH_TEST','GL_DEPTH_SCALE',
-            'GL_DEPTH_RANGE','GL_DEPTH_FUNC','GL_DEPTH_COMPONENT','GL_DEPTH_CLEAR_VALUE','GL_DEPTH_BUFFER_BIT','GL_DEPTH_BITS',
-            'GL_DEPTH_BIAS','GL_DEPTH','GL_DECR','GL_DECAL','GL_CW','GL_CURRENT_TEXTURE_COORDS','GL_CURRENT_RASTER_TEXTURE_COORDS','GL_CURRENT_RASTER_POSITION_VALID',
-            'GL_CURRENT_RASTER_POSITION','GL_CURRENT_RASTER_INDEX','GL_CURRENT_RASTER_DISTANCE','GL_CURRENT_RASTER_COLOR','GL_CURRENT_NORMAL',
-            'GL_CURRENT_INDEX','GL_CURRENT_COLOR','GL_CURRENT_BIT','GL_CULL_FACE_MODE','GL_CULL_FACE','GL_COPY_PIXEL_TOKEN',
-            'GL_COPY_INVERTED','GL_COPY','GL_CONSTANT_EXT','GL_CONSTANT_ATTENUATION','GL_CONSTANT','GL_COMPILE_AND_EXECUTE','GL_COMPILE','GL_COMBINE_RGB_EXT',
-            'GL_COMBINE_RGB','GL_COMBINE_EXT','GL_COMBINE_ALPHA_EXT','GL_COMBINE_ALPHA','GL_COMBINE','GL_COLOR_WRITEMASK',
-            'GL_COLOR_TABLE_WIDTH_EXT','GL_COLOR_TABLE_RED_SIZE_EXT','GL_COLOR_TABLE_LUMINANCE_SIZE_EXT','GL_COLOR_TABLE_INTENSITY_SIZE_EXT',
-            'GL_COLOR_TABLE_GREEN_SIZE_EXT','GL_COLOR_TABLE_FORMAT_EXT','GL_COLOR_TABLE_BLUE_SIZE_EXT','GL_COLOR_TABLE_ALPHA_SIZE_EXT',
-            'GL_COLOR_MATERIAL_PARAMETER','GL_COLOR_MATERIAL_FACE','GL_COLOR_MATERIAL','GL_COLOR_LOGIC_OP','GL_COLOR_INDEXES',
-            'GL_COLOR_INDEX8_EXT','GL_COLOR_INDEX4_EXT','GL_COLOR_INDEX2_EXT','GL_COLOR_INDEX1_EXT','GL_COLOR_INDEX16_EXT',
-            'GL_COLOR_INDEX12_EXT','GL_COLOR_INDEX','GL_COLOR_CLEAR_VALUE','GL_COLOR_BUFFER_BIT','GL_COLOR_ARRAY_TYPE_EXT',
-            'GL_COLOR_ARRAY_TYPE','GL_COLOR_ARRAY_STRIDE_EXT','GL_COLOR_ARRAY_STRIDE','GL_COLOR_ARRAY_SIZE_EXT','GL_COLOR_ARRAY_SIZE',
-            'GL_COLOR_ARRAY_POINTER_EXT','GL_COLOR_ARRAY_POINTER','GL_COLOR_ARRAY_EXT','GL_COLOR_ARRAY_COUNT_EXT','GL_COLOR_ARRAY',
-            'GL_COLOR','GL_COEFF','GL_CLIP_PLANE5','GL_CLIP_PLANE4','GL_CLIP_PLANE3','GL_CLIP_PLANE2','GL_CLIP_PLANE1','GL_CLIP_PLANE0',
-            'GL_CLIENT_VERTEX_ARRAY_BIT','GL_CLIENT_PIXEL_STORE_BIT','GL_CLIENT_ATTRIB_STACK_DEPTH','GL_CLIENT_ALL_ATTRIB_BITS',
-            'GL_CLIENT_ACTIVE_TEXTURE_ARB','GL_CLIENT_ACTIVE_TEXTURE','GL_CLEAR','GL_CLAMP','GL_CCW','GL_C4UB_V3F','GL_C4UB_V2F',
-            'GL_C4F_N3F_V3F','GL_C3F_V3F','GL_BYTE','GL_BLUE_SCALE','GL_BLUE_BITS','GL_BLUE_BIAS','GL_BLUE','GL_BLEND_SRC','GL_BLEND_DST',
-            'GL_BLEND','GL_BITMAP_TOKEN','GL_BITMAP','GL_BGR_EXT','GL_BGRA_EXT','GL_BACK_RIGHT','GL_BACK_LEFT','GL_BACK',
-            'GL_AUX_BUFFERS','GL_AUX3','GL_AUX2','GL_AUX1','GL_AUX0','GL_AUTO_NORMAL','GL_ATTRIB_STACK_DEPTH','GL_AND_REVERSE',
-            'GL_AND_INVERTED','GL_AND','GL_AMBIENT_AND_DIFFUSE','GL_AMBIENT','GL_ALWAYS','GL_ALPHA_TEST_REF','GL_ALPHA_TEST_FUNC',
-            'GL_ALPHA_TEST','GL_ALPHA_SCALE','GL_ALPHA_BITS','GL_ALPHA_BIAS','GL_ALPHA8','GL_ALPHA4','GL_ALPHA16','GL_ALPHA12',
-            'GL_ALPHA','GL_ALL_ATTRIB_BITS','GL_ADD_SIGNED_EXT','GL_ADD_SIGNED','GL_ADD','GL_ACTIVE_TEXTURE_ARB','GL_ACTIVE_TEXTURE',
-            'GL_ACCUM_RED_BITS','GL_ACCUM_GREEN_BITS','GL_ACCUM_CLEAR_VALUE','GL_ACCUM_BUFFER_BIT','GL_ACCUM_BLUE_BITS','GL_ACCUM_ALPHA_BITS',
-            'GL_ACCUM','GL_4_BYTES','GL_4D_COLOR_TEXTURE','GL_3_BYTES','GL_3D_COLOR_TEXTURE','GL_3D_COLOR','GL_3D','GL_2_BYTES',
-            'GL_2D','GLU_V_STEP','GLU_VERTEX','GLU_VERSION_1_2','GLU_VERSION_1_1','GLU_VERSION','GLU_U_STEP','GLU_UNKNOWN','GLU_TRUE',
-            'GLU_TESS_WINDING_RULE','GLU_TESS_WINDING_POSITIVE','GLU_TESS_WINDING_ODD','GLU_TESS_WINDING_NONZERO','GLU_TESS_WINDING_NEGATIVE',
-            'GLU_TESS_WINDING_ABS_GEQ_TWO','GLU_TESS_VERTEX_DATA','GLU_TESS_VERTEX','GLU_TESS_TOLERANCE','GLU_TESS_NEED_COMBINE_CALLBACK','GLU_TESS_MISSING_END_POLYGON',
-            'GLU_TESS_MISSING_END_CONTOUR','GLU_TESS_MISSING_BEGIN_POLYGON','GLU_TESS_MISSING_BEGIN_CONTOUR','GLU_TESS_ERROR_DATA',
-            'GLU_TESS_ERROR8','GLU_TESS_ERROR7','GLU_TESS_ERROR6','GLU_TESS_ERROR5','GLU_TESS_ERROR4','GLU_TESS_ERROR3','GLU_TESS_ERROR2',
-            'GLU_TESS_ERROR1','GLU_TESS_ERROR','GLU_TESS_END_DATA','GLU_TESS_END','GLU_TESS_EDGE_FLAG_DATA','GLU_TESS_EDGE_FLAG',
-            'GLU_TESS_COORD_TOO_LARGE','GLU_TESS_COMBINE_DATA','GLU_TESS_COMBINE','GLU_TESS_BOUNDARY_ONLY','GLU_TESS_BEGIN_DATA',
-            'GLU_TESS_BEGIN','GLU_SMOOTH','GLU_SILHOUETTE','GLU_SAMPLING_TOLERANCE','GLU_SAMPLING_METHOD','GLU_POINT','GLU_PATH_LENGTH',
-            'GLU_PARAMETRIC_TOLERANCE','GLU_PARAMETRIC_ERROR','GLU_OUT_OF_MEMORY','GLU_OUTSIDE','GLU_OUTLINE_POLYGON','GLU_OUTLINE_PATCH',
-            'GLU_NURBS_ERROR9','GLU_NURBS_ERROR8','GLU_NURBS_ERROR7','GLU_NURBS_ERROR6','GLU_NURBS_ERROR5','GLU_NURBS_ERROR4',
-            'GLU_NURBS_ERROR37','GLU_NURBS_ERROR36','GLU_NURBS_ERROR35','GLU_NURBS_ERROR34','GLU_NURBS_ERROR33','GLU_NURBS_ERROR32',
-            'GLU_NURBS_ERROR31','GLU_NURBS_ERROR30','GLU_NURBS_ERROR3','GLU_NURBS_ERROR29','GLU_NURBS_ERROR28','GLU_NURBS_ERROR27','GLU_NURBS_ERROR26',
-            'GLU_NURBS_ERROR25','GLU_NURBS_ERROR24','GLU_NURBS_ERROR23','GLU_NURBS_ERROR22','GLU_NURBS_ERROR21','GLU_NURBS_ERROR20',
-            'GLU_NURBS_ERROR2','GLU_NURBS_ERROR19','GLU_NURBS_ERROR18','GLU_NURBS_ERROR17','GLU_NURBS_ERROR16','GLU_NURBS_ERROR15','GLU_NURBS_ERROR14',
-            'GLU_NURBS_ERROR13','GLU_NURBS_ERROR12','GLU_NURBS_ERROR11','GLU_NURBS_ERROR10','GLU_NURBS_ERROR1','GLU_NONE',
-            'GLU_MAP1_TRIM_3','GLU_MAP1_TRIM_2','GLU_LINE','GLU_INVALID_VALUE','GLU_INVALID_ENUM','GLU_INTERIOR','GLU_INSIDE','GLU_INCOMPATIBLE_GL_VERSION',
-            'GLU_FLAT','GLU_FILL','GLU_FALSE','GLU_EXTERIOR','GLU_EXTENSIONS','GLU_ERROR','GLU_END','GLU_EDGE_FLAG','GLU_DOMAIN_DISTANCE',
-            'GLU_DISPLAY_MODE','GLU_CW','GLU_CULLING','GLU_CCW','GLU_BEGIN','GLU_AUTO_LOAD_MATRIX','CHANNEL_UNORDERED','CHANNEL_ORDERED',
-            'CHANNEL_MAX'
-            ),
-        2 => array(
-
-            // Red Lowercase Keywords
-
-            'WriteWord','WriteString','WriteReal','WriteLine','WriteInt','WriteFloat','WriteDouble','WriteChar','WriteByte',
-            'windowwidth','windowheight','waittimer','Vec4','Vec3','Vec2','val','UpdateJoystick','ucase$','Transpose','tickcount',
-            'textscroll','textrows','textmode','textcols','tanh','tand','tan','synctimercatchup','synctimer','swapbuffers',
-            'str$','stopsoundvoice','stopsounds','stopmusic','sqrt','sqr','sprzorder','spryvel','sprytiles','sprysize','spryrepeat',
-            'spryflip','sprycentre','spry','sprxvel','sprxtiles','sprxsize','sprxrepeat','sprxflip','sprxcentre','sprx',
-            'sprvisible','sprvel','sprtype','sprtop','sprspin','sprsolid','sprsetzorder','sprsetyvel','sprsetysize','sprsetyrepeat',
-            'sprsetyflip','sprsetycentre','sprsety','sprsetxvel','sprsetxsize','sprsetxrepeat','sprsetxflip','sprsetxcentre',
-            'sprsetx','sprsetvisible','sprsetvel','sprsettiles','sprsettextures','sprsettexture','sprsetspin','sprsetsolid',
-            'sprsetsize','sprsetscale','sprsetpos','sprsetparallax','sprsetframe','sprsetcolor','sprsetanimspeed','sprsetanimloop',
-            'sprsetangle','sprsetalpha','sprscale','sprright','sprpos','sprparallax','sprleft','spriteareawidth','spriteareaheight',
-            'sprframe','sprcolor','sprcameraz','sprcameray','sprcamerax','sprcamerasetz','sprcamerasety','sprcamerasetx',
-            'sprcamerasetpos','sprcamerasetfov','sprcamerasetangle','sprcamerapos','sprcamerafov','sprcameraangle',
-            'sprbottom','spranimspeed','spranimloop','spranimdone','sprangle','spralpha','spraddtextures','spraddtexture',
-            'sounderror','sleep','sind','sin','showcursor','sgn','settextscroll','setmusicvolume','SendMessage','Seek',
-            'scankeydown','RTInvert','rnd','right$','resizetext','resizespritearea','RejectConnection','ReceiveMessage','ReadWord',
-            'ReadText','ReadReal','ReadLine','ReadInt','ReadFloat','ReadDouble','ReadChar','ReadByte','randomize','printr',
-            'print','pow','playsound','playmusic','performancecounter','Orthonormalize','OpenFileWrite','OpenFileRead','Normalize',
-            'newtilemap','newsprite','NewServer','NewConnection','musicplaying','mouse_yd','mouse_y','mouse_xd','mouse_x',
-            'mouse_wheel','mouse_button','mid$','MessageSmoothed','MessageReliable','MessagePending','MessageChannel','maxtextureunits',
-            'MatrixZero','MatrixTranslate','MatrixScale','MatrixRotateZ','MatrixRotateY','MatrixRotateX','MatrixRotate','MatrixIdentity',
-            'MatrixCrossProduct','MatrixBasis','log','locate','loadtexture','loadsound','loadmipmaptexture','loadmipmapimagestrip',
-            'loadimagestrip','loadimage','Length','len','left$','lcase$','keydown','Joy_Y','Joy_X','Joy_Up','Joy_Right','Joy_Left',
-            'Joy_Keys','Joy_Down','Joy_Button','Joy_3','Joy_2','Joy_1','Joy_0','int','inscankey','input$','inkey$','inittimer',
-            'imagewidth','imagestripframes','imageheight','imageformat','imagedatatype','hidecursor','glViewport','glVertex4sv',
-            'glVertex4s','glVertex4iv','glVertex4i','glVertex4fv','glVertex4f','glVertex4dv','glVertex4d','glVertex3sv','glVertex3s',
-            'glVertex3iv','glVertex3i','glVertex3fv','glVertex3f','glVertex3dv','glVertex3d','glVertex2sv','glVertex2s','glVertex2iv',
-            'glVertex2i','glVertex2fv','glVertex2f','glVertex2dv','glVertex2d','gluPerspective','gluOrtho2D','gluLookAt',
-            'glubuild2dmipmaps','glTranslatef','glTranslated','gltexsubimage2d','glTexParameteriv','glTexParameteri',
-            'glTexParameterfv','glTexParameterf','glteximage2d','glTexGeniv','glTexGeni','glTexGenfv','glTexGenf','glTexGendv',
-            'glTexGend','glTexEnviv','glTexEnvi','glTexEnvfv','glTexEnvf','glTexCoord4sv','glTexCoord4s','glTexCoord4iv','glTexCoord4i',
-            'glTexCoord4fv','glTexCoord4f','glTexCoord4dv','glTexCoord4d','glTexCoord3sv','glTexCoord3s','glTexCoord3iv','glTexCoord3i',
-            'glTexCoord3fv','glTexCoord3f','glTexCoord3dv','glTexCoord3d','glTexCoord2sv','glTexCoord2s','glTexCoord2iv','glTexCoord2i',
-            'glTexCoord2fv','glTexCoord2f','glTexCoord2dv','glTexCoord2d','glTexCoord1sv','glTexCoord1s','glTexCoord1iv','glTexCoord1i','glTexCoord1fv',
-            'glTexCoord1f','glTexCoord1dv','glTexCoord1d','glStencilOp','glStencilMask','glStencilFunc','glShadeModel','glSelectBuffer',
-            'glScissor','glScalef','glScaled','glRotatef','glRotated','glRenderMode','glRectsv','glRects','glRectiv','glRecti',
-            'glRectfv','glRectf','glRectdv','glRectd','glReadBuffer','glRasterPos4sv','glRasterPos4s','glRasterPos4iv',
-            'glRasterPos4i','glRasterPos4fv','glRasterPos4f','glRasterPos4dv','glRasterPos4d','glRasterPos3sv','glRasterPos3s',
-            'glRasterPos3iv','glRasterPos3i','glRasterPos3fv','glRasterPos3f','glRasterPos3dv','glRasterPos3d','glRasterPos2sv',
-            'glRasterPos2s','glRasterPos2iv','glRasterPos2i','glRasterPos2fv','glRasterPos2f','glRasterPos2dv','glRasterPos2d',
-            'glPushName','glPushMatrix','glPushClientAttrib','glPushAttrib','glPrioritizeTextures','glPopName','glPopMatrix',
-            'glPopClientAttrib','glPopAttrib','glpolygonstipple','glPolygonOffset','glPolygonMode','glPointSize','glPixelZoom',
-            'glPixelTransferi','glPixelTransferf','glPixelStorei','glPixelStoref','glPassThrough','glOrtho','glNormal3sv','glNormal3s',
-            'glNormal3iv','glNormal3i','glNormal3fv','glNormal3f','glNormal3dv','glNormal3d','glNormal3bv','glNormal3b','glNewList',
-            'glMultMatrixf','glMultMatrixd','glmultitexcoord2f','glmultitexcoord2d','glMatrixMode','glMaterialiv','glMateriali',
-            'glMaterialfv','glMaterialf','glMapGrid2f','glMapGrid2d','glMapGrid1f','glMapGrid1d','glLogicOp','glLoadName','glLoadMatrixf',
-            'glLoadMatrixd','glLoadIdentity','glListBase','glLineWidth','glLineStipple','glLightModeliv','glLightModeli','glLightModelfv',
-            'glLightModelf','glLightiv','glLighti','glLightfv','glLightf','glIsTexture','glIsList','glIsEnabled','glInitNames',
-            'glIndexubv','glIndexub','glIndexsv','glIndexs','glIndexMask','glIndexiv','glIndexi','glIndexfv','glIndexf','glIndexdv',
-            'glIndexd','glHint','glGetTexParameteriv','glGetTexParameterfv','glGetTexLevelParameteriv','glGetTexLevelParameterfv',
-            'glGetTexGeniv','glGetTexGenfv','glGetTexGendv','glGetTexEnviv','glGetTexEnvfv','glgetstring','glgetpolygonstipple','glGetPixelMapuiv',
-            'glGetMaterialiv','glGetMaterialfv','glGetLightiv','glGetLightfv','glGetIntegerv','glGetFloatv',
-            'glGetError','glGetDoublev','glGetClipPlane','glGetBooleanv','glgentextures','glgentexture',
-            'glgenlists','glFrustum','glFrontFace','glFogiv','glFogi','glFogfv','glFogf','glFlush','glFinish','glFeedbackBuffer',
-            'glEvalPoint2','glEvalPoint1','glEvalMesh2','glEvalMesh1','glEvalCoord2fv','glEvalCoord2f','glEvalCoord2dv','glEvalCoord2d',
-            'glEvalCoord1fv','glEvalCoord1f','glEvalCoord1dv','glEvalCoord1d','glEndList','glEnd','glEnableClientState','glEnable',
-            'glEdgeFlagv','glEdgeFlag','glDrawBuffer','glDrawArrays','glDisableClientState','glDisable','glDepthRange','glDepthMask',
-            'glDepthFunc','gldeletetextures','gldeletetexture','gldeletelists','glCullFace','glCopyTexSubImage2D','glCopyTexSubImage1D',
-            'glCopyTexImage2D','glCopyTexImage1D','glColorMaterial','glColorMask','glColor4usv','glColor4us','glColor4uiv','glColor4ui',
-            'glColor4ubv','glColor4ub','glColor4sv','glColor4s','glColor4iv','glColor4i','glColor4fv','glColor4f','glColor4dv',
-            'glColor4d','glColor4bv','glColor4b','glColor3usv','glColor3us','glColor3uiv','glColor3ui','glColor3ubv','glColor3ub',
-            'glColor3sv','glColor3s','glColor3iv','glColor3i','glColor3fv','glColor3f','glColor3dv','glColor3d','glColor3bv',
-            'glColor3b','glClipPlane','glClearStencil','glClearIndex','glClearDepth','glClearColor','glClearAccum','glClear',
-            'glcalllists','glCallList','glBlendFunc','glBindTexture','glBegin','glArrayElement','glAreTexturesResident',
-            'glAlphaFunc','glactivetexture','glAccum','font','FindNextFile','FindFirstFile','FindClose','FileError',
-            'extensionsupported','exp','execute','EndOfFile','drawtext','divbyzero','Determinant','deletesprite','deletesound',
-            'DeleteServer','deleteimage','DeleteConnection','defaultfont','CrossProduct','cosd','cos','copysprite','ConnectionPending',
-            'ConnectionHandShaking','ConnectionConnected','ConnectionAddress','compilererrorline','compilererrorcol','compilererror',
-            'compilefile','compile','color','cls','CloseFile','clearregion','clearline','clearkeys','chr$','charat$','bindsprite',
-            'beep','atnd','atn2d','atn2','atn','atand','asc','argcount','arg','animatesprites','AcceptConnection','abs'
-            ),
-        3 => array(
-
-            // Blue Lowercase Keywords
-
-            'xor','while','wend','until','type','traditional_print','traditional','to','then','struc','string','step','single',
-            'run','return','reset','read','or','null','not','next','lor','loop','language','land','integer','input','if',
-            'goto','gosub','for','endstruc','endif','end','elseif','else','double','do','dim','data','const','basic4gl','as',
-            'and','alloc'
-            )
-
-        ),
-    'SYMBOLS' => array(
-        '=', '<', '>', '>=', '<=', '+', '-', '*', '/', '%', '(', ')', '{', '}', '[', ']', '&', ';', ':', '$'
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false,
-        2 => false,
-        3 => false,
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #000080; font-weight: bold;',
-            2 => 'color: #FF0000;',
-            3 => 'color: #0000FF;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #657CC4; font-style: italic;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #000080;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #008000;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #000080; font-weight: bold;'
-            ),
-        'METHODS' => array(
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #0000FF;'
-            ),
-        'ESCAPE_CHAR' => array(
-            ),
-        'SCRIPT' => array(
-            ),
-        'REGEXPS' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => ''
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(
-        ),
-    'REGEXPS' => array(
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        ),
-    'TAB_WIDTH' => 4
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/batch.php b/wiki/vendor/geshi/geshi/src/geshi/batch.php
deleted file mode 100644
index 03a972e..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/batch.php
+++ /dev/null
@@ -1,228 +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.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/wiki/vendor/geshi/geshi/src/geshi/bf.php b/wiki/vendor/geshi/geshi/src/geshi/bf.php
deleted file mode 100644
index 06fddfe..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/bf.php
+++ /dev/null
@@ -1,113 +0,0 @@
-<?php
-/*************************************************************************************
- * bf.php
- * ----------
- * Author: Benny Baumann (BenBE@geshi.org)
- * Copyright: (c) 2008 Benny Baumann (http://qbnz.com/highlighter/)
- * Release Version: 1.0.9.0
- * Date Started: 2009/10/31
- *
- * Brainfuck language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2008/10/31 (1.0.8.1)
- *   -  First Release
- *
- * TODO
- * ----
- *
- *************************************************************************************
- *
- *     This file is part of GeSHi.
- *
- *   GeSHi is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   GeSHi is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with GeSHi; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- ************************************************************************************/
-$language_data = array (
-    'LANG_NAME' => 'Brainfuck',
-    'COMMENT_SINGLE' => array(),
-    'COMMENT_MULTI' => array(),
-    'COMMENT_REGEXP' => array(1 => '/[^\n+\-<>\[\]\.\,Y]+/s'),
-    'CASE_KEYWORDS' => GESHI_CAPS_UPPER,
-    'QUOTEMARKS' => array(),
-    'ESCAPE_CHAR' => '',
-    'KEYWORDS' => array(
-        ),
-    'SYMBOLS' => array(
-        0 => array('+', '-'),
-        1 => array('[', ']'),
-        2 => array('<', '>'),
-        3 => array('.', ','),
-        4 => array('Y') //Brainfork Extension ;-)
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #666666; font-style: italic;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #660000;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #ff0000;'
-            ),
-        'NUMBERS' => array(
-            ),
-        'METHODS' => array(
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #006600;',
-            1 => 'color: #660000;',
-            2 => 'color: #000066;',
-            3 => 'color: #666600;',
-            4 => 'color: #660066;'
-            ),
-        'ESCAPE_CHAR' => array(
-            ),
-        'SCRIPT' => array(
-            ),
-        'REGEXPS' => array(
-            )
-        ),
-    'URLS' => array(
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(
-        ),
-    'REGEXPS' => array(
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        ),
-    'TAB_WIDTH' => 4,
-    'PARSER_CONTROL' => array(
-        'ENABLE_FLAGS' => array(
-            'STRINGS' => GESHI_NEVER,
-            'NUMBERS' => GESHI_NEVER,
-            'BRACKETS' => GESHI_NEVER
-        ),
-        'KEYWORDS' => array(
-            'DISALLOW_BEFORE' => '',
-            'DISALLOW_AFTER' => ''
-            )
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/biblatex.php b/wiki/vendor/geshi/geshi/src/geshi/biblatex.php
deleted file mode 100644
index 8500cb6..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/biblatex.php
+++ /dev/null
@@ -1,200 +0,0 @@
-<?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/wiki/vendor/geshi/geshi/src/geshi/bibtex.php b/wiki/vendor/geshi/geshi/src/geshi/bibtex.php
deleted file mode 100644
index 169011e..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/bibtex.php
+++ /dev/null
@@ -1,181 +0,0 @@
-<?php
-/********************************************************************************
- * bibtex.php
- * -----
- * Author: 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
- *
- * BibTeX language file for GeSHi.
- *
- * 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
-            ),
-        '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 => ''
-            ),
-        ),
-    '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/wiki/vendor/geshi/geshi/src/geshi/blitzbasic.php b/wiki/vendor/geshi/geshi/src/geshi/blitzbasic.php
deleted file mode 100644
index 6311e8a..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/blitzbasic.php
+++ /dev/null
@@ -1,183 +0,0 @@
-<?php
-/*************************************************************************************
- * blitzbasic.php
- * --------------
- * Author: P�draig O`Connel (info@moonsword.info)
- * Copyright: (c) 2005 P�draig O`Connel (http://moonsword.info)
- * Release Version: 1.0.9.0
- * Date Started: 16.10.2005
- *
- * BlitzBasic language file for GeSHi.
- *
- * It is a simple Basic dialect. Released for Games and Network Connections.
- * In this Language File are all functions included (2D BB and 3D BB)
- *
- *
- * CHANGES
- * -------
- * 2005/12/28 (1.0.1)
- *   -  Remove unnecessary style index for regexps
- * 2005/10/22 (1.0.0)
- *   -  First Release
- *
- * TODO (updated 2005/10/22)
- * -------------------------
- * * Sort out the Basic commands for splitting up.
- * * To set up the right colors.
- *      (the colors are ok, but not the correct ones)
- * * Split to BlitzBasic 2D and BlitzBasic 3D.
- *
- *************************************************************************************
- *
- *     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' => 'BlitzBasic',
-    'COMMENT_SINGLE' => array(1 => ';'),
-    'COMMENT_MULTI' => array(),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array('"'),
-    'ESCAPE_CHAR' => '',
-    'KEYWORDS' => array(
-        1 => array(
-            'If','EndIf','ElseIf','Else','While','Wend','Return','Next','Include','End Type','End Select','End If','End Function','End','Select',
-            'Type','Forever','For','Or','And','AppTitle','Case','Goto','Gosub','Step','Stop','Int','Last','False','Then','To','True','Until','Float',
-            'String','Before','Not'
-            ),
-        2 => array(
-            // All Functions - 2D BB and 3D BB
-            'Xor','WriteString','WriteShort','WritePixelFast','WritePixel','WriteLine','WriteInt','WriteFloat','WriteFile','WriteBytes',
-            'WriteByte','Write','WaitTimer','WaitMouse','WaitKey','WaitJoy','VWait','Viewport',
-            'Upper','UpdateGamma','UnlockBuffer','UDPTimeouts','UDPStreamPort','UDPStreamIP','UDPMsgPort','UDPMsgIP',
-            'Trim','TotalVidMem','TileImage','TileBlock','TFormImage','TFormFilter','Text',
-            'TCPTimeouts','TCPStreamPort','TCPStreamIP','Tan','SystemProperty','StringWidth','StringHeight','Str','StopNetGame',
-            'StopChannel','StartNetGame','Sqr','SoundVolume','SoundPitch','SoundPan','Sin','Shr',
-            'ShowPointer','Shl','Sgn','SetGfxDriver','SetGamma','SetFont','SetEnv','SetBuffer','SendUDPMsg','SendNetMsg',
-            'SeekFile','SeedRnd','ScanLine','ScaleImage','SaveImage','SaveBuffer','Sar','RuntimeError','RSet',
-            'RotateImage','RndSeed','Rnd','Right','ResumeChannel','Restore','ResizeImage','ResizeBank','Replace',
-            'Repeat','RecvUDPMsg','RecvNetMsg','RectsOverlap','Rect','ReadString','ReadShort','ReadPixelFast','ReadPixel','ReadLine',
-            'ReadInt','ReadFloat','ReadFile','ReadDir','ReadBytes','ReadByte','ReadAvail','Read','Rand','Print',
-            'PokeShort','PokeInt','PokeFloat','PokeByte','Plot','PlaySound','PlayMusic','PlayCDTrack','Pi','PeekShort',
-            'PeekInt','PeekFloat','PeekByte','PauseChannel','Oval','Origin','OpenTCPStream','OpenMovie','OpenFile',
-            'Null','NextFile','New','NetPlayerName','NetPlayerLocal','NetMsgType','NetMsgTo','NetMsgFrom',
-            'NetMsgData','MovieWidth','MoviePlaying','MovieHeight','MoveMouse','MouseZSpeed','MouseZ','MouseYSpeed','MouseY','MouseXSpeed',
-            'MouseX','MouseHit','MouseDown','Mod','Millisecs','MidHandle','Mid','MaskImage','LSet','Lower',
-            'LoopSound','Log10','Log','LockBuffer','Locate','Local','LoadSound','LoadImage','LoadFont','LoadBuffer',
-            'LoadAnimImage','Line','Len','Left','KeyHit','KeyDown','JoyZDir','JoyZ','JoyYDir',
-            'JoyYaw','JoyY','JoyXDir','JoyX','JoyVDir','JoyV','JoyUDir','JoyU','JoyType','JoyRoll',
-            'JoyPitch','JoyHit','JoyHat','JoyDown','JoinNetGame','Instr','Insert','Input',
-            'ImageYHandle','ImageXHandle','ImageWidth','ImagesOverlap','ImagesCollide','ImageRectOverlap','ImageRectCollide','ImageHeight','ImageBuffer',
-            'HostNetGame','HostIP','HidePointer','Hex','HandleImage','GraphicsWidth','GraphicsHeight','GraphicsDepth','GraphicsBuffer','Graphics',
-            'GrabImage','Global','GFXModeWidth','GFXModeHeight','GfxModeExists','GFXModeDepth','GfxDriverName','GetMouse',
-            'GetKey','GetJoy','GetEnv','GetColor','GammaRed','GammaGreen','GammaBlue','Function','FrontBuffer','FreeTimer',
-            'FreeSound','FreeImage','FreeFont','FreeBank','FontWidth','FontHeight','FlushMouse','FlushKeys',
-            'FlushJoy','Floor','Flip','First','FileType','FileSize','FilePos','Field',
-            'Exp','Exit','ExecFile','Eof','EndGraphics','Each','DrawMovie','DrawImageRect','DrawImage','DrawBlockRect','DrawBlock',
-            'DottedIP','Dim','DeleteNetPlayer','DeleteFile','DeleteDir','Delete','Delay','Default','DebugLog','Data',
-            'CurrentTime','CurrentDir','CurrentDate','CreateUDPStream','CreateTimer','CreateTCPServer','CreateNetPlayer','CreateImage','CreateDir','CreateBank',
-            'CountHostIPs','CountGFXModes','CountGfxDrivers','Cos','CopyStream','CopyRect','CopyPixelFast','CopyPixel','CopyImage','CopyFile',
-            'CopyBank','Const','CommandLine','ColorRed','ColorGreen','ColorBlue','Color','ClsColor','Cls','CloseUDPStream',
-            'CloseTCPStream','CloseTCPServer','CloseMovie','CloseFile','CloseDir','Chr','ChannelVolume','ChannelPlaying','ChannelPitch','ChannelPan',
-            'ChangeDir','Ceil','CallDLL','Bin','BankSize','BackBuffer','AvailVidMem','AutoMidHandle',
-            'ATan2','ATan','ASin','Asc','After','ACos','AcceptTCPStream','Abs',
-            // 3D Commands
-            'Wireframe','Windowed3D','WBuffer','VertexZ','VertexY',
-            'VertexX','VertexW','VertexV','VertexU','VertexTexCoords','VertexRed','VertexNZ','VertexNY','VertexNX','VertexNormal',
-            'VertexGreen','VertexCoords','VertexColor','VertexBlue','VertexAlpha','VectorYaw','VectorPitch','UpdateWorld','UpdateNormals','TurnEntity',
-            'TrisRendered','TriangleVertex','TranslateEntity','TFormVector','TFormPoint','TFormNormal','TFormedZ','TFormedY','TFormedX','TextureWidth',
-            'TextureName','TextureHeight','TextureFilter','TextureCoords','TextureBuffer','TextureBlend','TerrainZ','TerrainY','TerrainX','TerrainSize',
-            'TerrainShading','TerrainHeight','TerrainDetail','SpriteViewMode','ShowEntity','SetCubeFace','SetAnimTime','SetAnimKey','ScaleTexture','ScaleSprite',
-            'ScaleMesh','ScaleEntity','RotateTexture','RotateSprite','RotateMesh','RotateEntity','ResetEntity','RenderWorld','ProjectedZ','ProjectedY',
-            'ProjectedX','PositionTexture','PositionMesh','PositionEntity','PointEntity','PickedZ','PickedY','PickedX','PickedTriangle','PickedTime',
-            'PickedSurface','PickedNZ','PickedNY','PickedNX','PickedEntity','PaintSurface','PaintMesh','PaintEntity','NameEntity','MoveEntity',
-            'ModifyTerrain','MeshWidth','MeshHeight','MeshesIntersect','MeshDepth','MD2AnimTime','MD2AnimLength','MD2Animating','LoadTexture','LoadTerrain',
-            'LoadSprite','LoadMesh','LoadMD2','LoaderMatrix','LoadBSP','LoadBrush','LoadAnimTexture','LoadAnimSeq','LoadAnimMesh','Load3DSound',
-            'LinePick','LightRange','LightMesh','LightConeAngles','LightColor','HWMultiTex','HideEntity','HandleSprite','Graphics3D','GfxMode3DExists',
-            'GfxMode3D','GfxDriverCaps3D','GfxDriver3D','GetSurfaceBrush','GetSurface','GetParent','GetMatElement','GetEntityType','GetEntityBrush','GetChild',
-            'GetBrushTexture','FreeTexture','FreeEntity','FreeBrush','FlipMesh','FitMesh','FindSurface','FindChild','ExtractAnimSeq','EntityZ',
-            'EntityYaw','EntityY','EntityX','EntityVisible','EntityType','EntityTexture','EntityShininess','EntityRoll','EntityRadius','EntityPitch',
-            'EntityPickMode','EntityPick','EntityParent','EntityOrder','EntityName','EntityInView','EntityFX','EntityDistance','EntityColor','EntityCollided',
-            'EntityBox','EntityBlend','EntityAutoFade','EntityAlpha','EmitSound','Dither','DeltaYaw','DeltaPitch','CreateTexture','CreateTerrain',
-            'CreateSurface','CreateSprite','CreateSphere','CreatePlane','CreatePivot','CreateMirror','CreateMesh','CreateListener','CreateLight','CreateCylinder',
-            'CreateCube','CreateCone','CreateCamera','CreateBrush','CountVertices','CountTriangles','CountSurfaces','CountGfxModes3D','CountCollisions','CountChildren',
-            'CopyMesh','CopyEntity','CollisionZ','CollisionY','CollisionX','CollisionTriangle','CollisionTime','CollisionSurface','Collisions','CollisionNZ',
-            'CollisionNY','CollisionNX','CollisionEntity','ClearWorld','ClearTextureFilters','ClearSurface','ClearCollisions','CaptureWorld','CameraZoom','CameraViewport',
-            'CameraRange','CameraProjMode','CameraProject','CameraPick','CameraFogRange','CameraFogMode','CameraFogColor','CameraClsMode','CameraClsColor','BSPLighting',
-            'BSPAmbientLight','BrushTexture','BrushShininess','BrushFX','BrushColor','BrushBlend','BrushAlpha','AntiAlias','AnimTime','AnimSeq',
-            'AnimLength','Animating','AnimateMD2','Animate','AmbientLight','AlignToVector','AddVertex','AddTriangle','AddMesh','AddAnimSeq',
-            )
-        ),
-    'SYMBOLS' => array(
-        '(',')'
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false,
-        2 => false,
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #000066; font-weight: bold;',
-            2 => 'color: #0000ff;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #D9D100; font-style: italic;',
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #000099; font-weight: bold;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #000066;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #009900;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #CC0000;'
-            ),
-        'METHODS' => array(
-            1 => 'color: #006600;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #000066;'
-            ),
-        'REGEXPS' => array(
-            ),
-        'SCRIPT' => array(
-            0 => '',
-            1 => '',
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => ''
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(
-        1 => '\\'
-        ),
-    'REGEXPS' => array(
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        0 => false,
-        1 => false
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/bnf.php b/wiki/vendor/geshi/geshi/src/geshi/bnf.php
deleted file mode 100644
index fafd94f..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/bnf.php
+++ /dev/null
@@ -1,117 +0,0 @@
-<?php
-/*************************************************************************************
- * bnf.php
- * --------
- * 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.9.0
- * Date Started: 2006/09/28
- *
- * BNF (Backus-Naur form) language file for GeSHi.
- *
- * See http://en.wikipedia.org/wiki/Backus-Naur_form for more info on BNF.
- *
- * CHANGES
- * -------
- * 2008/05/23 (1.0.7.22)
- *  -  Added description of extra language features (SF#1970248)
- *  -  Removed superflicious regexps
- * 2006/09/18 (1.0.0)
- *  -  First Release
- *
- * TODO (updated 2006/09/18)
- * -------------------------
- * * Nothing I can think of
- *
- *************************************************************************************
- *
- *     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' => 'bnf',
-    'COMMENT_SINGLE' => array(';'),
-    'COMMENT_MULTI' => array(),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array('"', "'"),
-    'ESCAPE_CHAR' => '',
-    'KEYWORDS' => array(),
-    'SYMBOLS' => array(
-        0 => array('(', ')'),
-        1 => array('<', '>'),
-        2 => array('[', ']'),
-        3 => array('{', '}'),
-        4 => array('=', '*', '/', '|', ':'),
-    ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false
-    ),
-    'STYLES' => array(
-        'KEYWORDS' => array(),
-        'COMMENTS' => array(
-            0 => 'color: #666666; font-style: italic;', // Single Line comments
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => ''
-            ),
-        'BRACKETS' => array(
-            0 => ''
-            ),
-        'STRINGS' => array(
-            0 => 'color: #a00;',
-            1 => 'color: #a00;'
-            ),
-        'NUMBERS' => array(
-            0 => ''
-            ),
-        'METHODS' => array(
-            0 => ''
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #000066; font-weight: bold;', // Round brackets
-            1 => 'color: #000066; font-weight: bold;', // Angel Brackets
-            2 => 'color: #000066; font-weight: bold;', // Square Brackets
-            3 => 'color: #000066; font-weight: bold;', // BRaces
-            4 => 'color: #006600; font-weight: bold;', // Other operator symbols
-        ),
-        'REGEXPS' => array(
-            0 => 'color: #007;',
-            ),
-        'SCRIPT' => array(
-            0 => ''
-            )
-        ),
-    'URLS' => array(),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(),
-    'REGEXPS' => array(
-        //terminal symbols
-        0 => array(
-            GESHI_SEARCH => '(&lt;)([^&]+?)(&gt;)',
-            GESHI_REPLACE => '\\2',
-            GESHI_MODIFIERS => '',
-            GESHI_BEFORE => '\\1',
-            GESHI_AFTER => '\\3'
-            ),
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/boo.php b/wiki/vendor/geshi/geshi/src/geshi/boo.php
deleted file mode 100644
index 19c8378..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/boo.php
+++ /dev/null
@@ -1,215 +0,0 @@
-<?php
-/*************************************************************************************
- * boo.php
- * --------
- * Author: Marcus Griep (neoeinstein+GeSHi@gmail.com)
- * Copyright: (c) 2007 Marcus Griep (http://www.xpdm.us)
- * Release Version: 1.0.9.0
- * Date Started: 2007/09/10
- *
- * Boo language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2004/09/10 (1.0.8)
- *  -  First Release
- *
- * TODO (updated 2007/09/10)
- * -------------------------
- * Regular Expression Literal matching
- *
- *************************************************************************************
- *
- *     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' => 'Boo',
-    'COMMENT_SINGLE' => array(1 => '//', 2 => '#'),
-    'COMMENT_MULTI' => array('/*' => '*/'),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array("'''", "'", '"""', '"'),
-    'HARDQUOTE' => array('"""', '"""'),
-    'HARDESCAPE' => array('\"""'),
-    'ESCAPE_CHAR' => '\\',
-    'KEYWORDS' => array(
-        1 => array(//Namespace
-            'namespace', 'import', 'from'
-            ),
-        2 => array(//Jump
-            'yield', 'return', 'goto', 'continue', 'break'
-            ),
-        3 => array(//Conditional
-            'while', 'unless', 'then', 'in', 'if', 'for', 'else', 'elif'
-            ),
-        4 => array(//Property
-            'set', 'get'
-            ),
-        5 => array(//Exception
-            'try', 'raise', 'failure', 'except', 'ensure'
-            ),
-        6 => array(//Visibility
-            'public', 'private', 'protected', 'internal'
-            ),
-        7 => array(//Define
-            'struct', 'ref', 'of', 'interface', 'event', 'enum', 'do', 'destructor', 'def', 'constructor', 'class'
-            ),
-        8 => array(//Cast
-            'typeof', 'cast', 'as'
-            ),
-        9 => array(//BiMacro
-            'yieldAll', 'using', 'unchecked', 'rawArayIndexing', 'print', 'normalArrayIndexing', 'lock',
-            'debug', 'checked', 'assert'
-            ),
-        10 => array(//BiAttr
-            'required', 'property', 'meta', 'getter', 'default'
-            ),
-        11 => array(//BiFunc
-            'zip', 'shellp', 'shellm', 'shell', 'reversed', 'range', 'prompt',
-            'matrix', 'map', 'len', 'join', 'iterator', 'gets', 'enumerate', 'cat', 'array'
-            ),
-        12 => array(//HiFunc
-            '__switch__', '__initobj__', '__eval__', '__addressof__', 'quack'
-            ),
-        13 => array(//Primitive
-            'void', 'ushort', 'ulong', 'uint', 'true', 'timespan', 'string', 'single',
-            'short', 'sbyte', 'regex', 'object', 'null', 'long', 'int', 'false', 'duck',
-            'double', 'decimal', 'date', 'char', 'callable', 'byte', 'bool'
-            ),
-        14 => array(//Operator
-            'not', 'or', 'and', 'is', 'isa',
-            ),
-        15 => array(//Modifier
-            'virtual', 'transient', 'static', 'partial', 'override', 'final', 'abstract'
-            ),
-        16 => array(//Access
-            'super', 'self'
-            ),
-        17 => array(//Pass
-            'pass'
-            )
-        ),
-    '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
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color:green;font-weight:bold;',
-            2 => 'color:navy;',
-            3 => 'color:blue;font-weight:bold;',
-            4 => 'color:#8B4513;',
-            5 => 'color:teal;font-weight:bold;',
-            6 => 'color:blue;font-weight:bold;',
-            7 => 'color:blue;font-weight:bold;',
-            8 => 'color:blue;font-weight:bold;',
-            9 => 'color:maroon;',
-            10 => 'color:maroon;',
-            11 => 'color:purple;',
-            12 => 'color:#4B0082;',
-            13 => 'color:purple;font-weight:bold;',
-            14 => 'color:#008B8B;font-weight:bold;',
-            15 => 'color:brown;',
-            16 => 'color:black;font-weight:bold;',
-            17 => 'color:gray;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #999999; font-style: italic;',
-            2 => 'color: #999999; font-style: italic;',
-            'MULTI' => 'color: #008000; font-style: italic;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #0000FF; font-weight: bold;',
-            'HARD' => 'color: #0000FF; font-weight: bold;',
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #006400;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #008000;',
-            'HARD' => 'color: #008000;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #00008B;'
-            ),
-        'METHODS' => array(
-            0 => 'color: 000000;',
-            1 => 'color: 000000;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #006400;'
-            ),
-        'REGEXPS' => array(
-            #0 => 'color: #0066ff;'
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => '',
-        4 => '',
-        5 => '',
-        6 => '',
-        7 => '',
-        8 => '',
-        9 => '',
-        10 => '',
-        11 => '',
-        12 => '',
-        13 => '',
-        14 => '',
-        15 => '',
-        16 => '',
-        17 => ''
-        ),
-    'OOLANG' => true,
-    'OBJECT_SPLITTERS' => array(
-        0 => '.',
-        1 => '::'
-        ),
-    'REGEXPS' => array(
-        #0 => '%(@)?\/(?:(?(1)[^\/\\\\\r\n]+|[^\/\\\\\r\n \t]+)|\\\\[\/\\\\\w+()|.*?$^[\]{}\d])+\/%'
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        ),
-    'TAB_WIDTH' => 4
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/c.php b/wiki/vendor/geshi/geshi/src/geshi/c.php
deleted file mode 100644
index 75e1c27..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/c.php
+++ /dev/null
@@ -1,279 +0,0 @@
-<?php
-/*************************************************************************************
- * c.php
- * -----
- * Author: Nigel McNie (nigel@geshi.org)
- * Contributors:
- *  - Jack Lloyd (lloyd@randombit.net)
- *  - Michael Mol (mikemol@gmail.com)
- * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter/)
- * Release Version: 1.0.9.0
- * Date Started: 2004/06/04
- *
- * C language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2009/01/22 (1.0.8.3)
- *   -  Made keywords case-sensitive.
- * 2008/05/23 (1.0.7.22)
- *   -  Added description of extra language features (SF#1970248)
- * 2004/XX/XX (1.0.4)
- *   -  Added a couple of new keywords (Jack Lloyd)
- * 2004/11/27 (1.0.3)
- *   -  Added support for multiple object splitters
- * 2004/10/27 (1.0.2)
- *   -  Added support for URLs
- * 2004/08/05 (1.0.1)
- *   -  Added support for symbols
- * 2004/07/14 (1.0.0)
- *   -  First Release
- *
- * TODO (updated 2009/02/08)
- * -------------------------
- *  -  Get a list of inbuilt functions to add (and explore C more
- *     to complete this rather bare language file
- *
- *************************************************************************************
- *
- *     This file is part of GeSHi.
- *
- *   GeSHi is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   GeSHi is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with GeSHi; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- ************************************************************************************/
-
-$language_data = array (
-    'LANG_NAME' => 'C',
-    'COMMENT_SINGLE' => array(1 => '//', 2 => '#'),
-    'COMMENT_MULTI' => array('/*' => '*/'),
-    'COMMENT_REGEXP' => array(
-        //Multiline-continued single-line comments
-        1 => '/\/\/(?:\\\\\\\\|\\\\\\n|.)*$/m',
-        //Multiline-continued preprocessor define
-        2 => '/#(?:\\\\\\\\|\\\\\\n|.)*$/m'
-        ),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array("'", '"'),
-    'ESCAPE_CHAR' => '',
-    'ESCAPE_REGEXP' => array(
-        //Simple Single Char Escapes
-        1 => "#\\\\[\\\\abfnrtv\'\"?\n]#i",
-        //Hexadecimal Char Specs
-        2 => "#\\\\x[\da-fA-F]{2}#",
-        //Hexadecimal Char Specs
-        3 => "#\\\\u[\da-fA-F]{4}#",
-        //Hexadecimal Char Specs
-        4 => "#\\\\U[\da-fA-F]{8}#",
-        //Octal Char Specs
-        5 => "#\\\\[0-7]{1,3}#"
-        ),
-    'NUMBERS' =>
-        GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_INT_CSTYLE | GESHI_NUMBER_BIN_PREFIX_0B |
-        GESHI_NUMBER_OCT_PREFIX | GESHI_NUMBER_HEX_PREFIX | GESHI_NUMBER_FLT_NONSCI |
-        GESHI_NUMBER_FLT_NONSCI_F | GESHI_NUMBER_FLT_SCI_SHORT | GESHI_NUMBER_FLT_SCI_ZERO,
-    'KEYWORDS' => array(
-        1 => array(
-            'if', 'return', 'while', 'case', 'continue', 'default',
-            'do', 'else', 'for', 'switch', 'goto'
-            ),
-        2 => array(
-            'null', 'false', 'break', 'true', 'function', 'enum', 'extern', 'inline'
-            ),
-        3 => array(
-            // assert.h
-            'assert',
-
-            //complex.h
-            'cabs', 'cacos', 'cacosh', 'carg', 'casin', 'casinh', 'catan',
-            'catanh', 'ccos', 'ccosh', 'cexp', 'cimag', 'cis', 'clog', 'conj',
-            'cpow', 'cproj', 'creal', 'csin', 'csinh', 'csqrt', 'ctan', 'ctanh',
-
-            //ctype.h
-            'digittoint', 'isalnum', 'isalpha', 'isascii', 'isblank', 'iscntrl',
-            'isdigit', 'isgraph', 'islower', 'isprint', 'ispunct', 'isspace',
-            'isupper', 'isxdigit', 'toascii', 'tolower', 'toupper',
-
-            //inttypes.h
-            'imaxabs', 'imaxdiv', 'strtoimax', 'strtoumax', 'wcstoimax',
-            'wcstoumax',
-
-            //locale.h
-            'localeconv', 'setlocale',
-
-            //math.h
-            'acos', 'asin', 'atan', 'atan2', 'ceil', 'cos', 'cosh', 'exp',
-            'fabs', 'floor', 'frexp', 'ldexp', 'log', 'log10', 'modf', 'pow',
-            'sin', 'sinh', 'sqrt', 'tan', 'tanh',
-
-            //setjmp.h
-            'longjmp', 'setjmp',
-
-            //signal.h
-            'raise',
-
-            //stdarg.h
-            'va_arg', 'va_copy', 'va_end', 'va_start',
-
-            //stddef.h
-            'offsetof',
-
-            //stdio.h
-            'clearerr', 'fclose', 'fdopen', 'feof', 'ferror', 'fflush', 'fgetc',
-            'fgetpos', 'fgets', 'fopen', 'fprintf', 'fputc', 'fputchar',
-            'fputs', 'fread', 'freopen', 'fscanf', 'fseek', 'fsetpos', 'ftell',
-            'fwrite', 'getc', 'getch', 'getchar', 'gets', 'perror', 'printf',
-            'putc', 'putchar', 'puts', 'remove', 'rename', 'rewind', 'scanf',
-            'setbuf', 'setvbuf', 'snprintf', 'sprintf', 'sscanf', 'tmpfile',
-            'tmpnam', 'ungetc', 'vfprintf', 'vfscanf', 'vprintf', 'vscanf',
-            'vsprintf', 'vsscanf',
-
-            //stdlib.h
-            'abort', 'abs', 'atexit', 'atof', 'atoi', 'atol', 'bsearch',
-            'calloc', 'div', 'exit', 'free', 'getenv', 'itoa', 'labs', 'ldiv',
-            'ltoa', 'malloc', 'qsort', 'rand', 'realloc', 'srand', 'strtod',
-            'strtol', 'strtoul', 'system',
-
-            //string.h
-            'memchr', 'memcmp', 'memcpy', 'memmove', 'memset', 'strcat',
-            'strchr', 'strcmp', 'strcoll', 'strcpy', 'strcspn', 'strerror',
-            'strlen', 'strncat', 'strncmp', 'strncpy', 'strpbrk', 'strrchr',
-            'strspn', 'strstr', 'strtok', 'strxfrm',
-
-            //time.h
-            'asctime', 'clock', 'ctime', 'difftime', 'gmtime', 'localtime',
-            'mktime', 'strftime', 'time',
-
-            //wchar.h
-            'btowc', 'fgetwc', 'fgetws', 'fputwc', 'fputws', 'fwide',
-            'fwprintf', 'fwscanf', 'getwc', 'getwchar', 'mbrlen', 'mbrtowc',
-            'mbsinit', 'mbsrtowcs', 'putwc', 'putwchar', 'swprintf', 'swscanf',
-            'ungetwc', 'vfwprintf', 'vswprintf', 'vwprintf', 'wcrtomb',
-            'wcscat', 'wcschr', 'wcscmp', 'wcscoll', 'wcscpy', 'wcscspn',
-            'wcsftime', 'wcslen', 'wcsncat', 'wcsncmp', 'wcsncpy', 'wcspbrk',
-            'wcsrchr', 'wcsrtombs', 'wcsspn', 'wcsstr', 'wcstod', 'wcstok',
-            'wcstol', 'wcstoul', 'wcsxfrm', 'wctob', 'wmemchr', 'wmemcmp',
-            'wmemcpy', 'wmemmove', 'wmemset', 'wprintf', 'wscanf',
-
-            //wctype.h
-            'iswalnum', 'iswalpha', 'iswcntrl', 'iswctype', 'iswdigit',
-            'iswgraph', 'iswlower', 'iswprint', 'iswpunct', 'iswspace',
-            'iswupper', 'iswxdigit', 'towctrans', 'towlower', 'towupper',
-            'wctrans', 'wctype'
-            ),
-        4 => array(
-            'auto', 'char', 'const', 'double',  'float', 'int', 'long',
-            'register', 'short', 'signed', 'sizeof', 'static', 'struct',
-            'typedef', 'union', 'unsigned', 'void', 'volatile', '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',
-            'size_t', 'off_t'
-            ),
-        ),
-    'SYMBOLS' => 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: #000066;',
-            4 => 'color: #993333;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #666666; font-style: italic;',
-            2 => 'color: #339933;',
-            'MULTI' => 'color: #808080; 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: #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(
-            1 => 'color: #202020;',
-            2 => 'color: #202020;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #339933;'
-            ),
-        'REGEXPS' => array(
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => 'http://www.opengroup.org/onlinepubs/009695399/functions/{FNAMEL}.html',
-        4 => ''
-        ),
-    'OOLANG' => true,
-    'OBJECT_SPLITTERS' => array(
-        1 => '.',
-        2 => '::'
-        ),
-    'REGEXPS' => array(
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        ),
-    'TAB_WIDTH' => 4
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/c_loadrunner.php b/wiki/vendor/geshi/geshi/src/geshi/c_loadrunner.php
deleted file mode 100644
index c1559bc..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/c_loadrunner.php
+++ /dev/null
@@ -1,321 +0,0 @@
-<?php
-/*************************************************************************************
- * c_loadrunner.php
- * ---------------------------------
- * Author: Stuart Moncrieff (stuart at myloadtest dot com)
- * Copyright: (c) 2010 Stuart Moncrieff (http://www.myloadtest.com/loadrunner-syntax-highlighter/)
- * Release Version: 1.0.9.0
- * Date Started: 2010-07-25
- *
- * C (for LoadRunner) language file for GeSHi.
- *
- * Based on LoadRunner 9.52.
- *
- * CHANGES
- * -------
- * 2010-08-01 (1.0.8.9)
- *  -  Added highlighting support for LoadRunner {parameters}.
- * 2010-07-25 (1.0.8.8)
- *  -  First Release. Syntax highlighting support for lr_, web_, and sapgui_ functions only.
- *
- * TODO (updated 2010-07-25)
- * -------------------------
- *  - Add support for other vuser types: MMS, FTP, 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 (
-    // The First Indices
-    'LANG_NAME' => 'C (LoadRunner)',
-    'COMMENT_SINGLE' => array(1 => '//'),
-    'COMMENT_MULTI' => array('/*' => '*/'),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array("'", '"'),
-    'ESCAPE_CHAR' => '',
-    // Escape characters within strings (like \\) are not highlighted differently in LoadRunner, so
-    // I am using GeSHi escape characters (or regular expressions) to highlight LoadRunner {parameters}.
-    // LoadRunner {parameters} must begin with a letter and contain only alphanumeric characters and '_'
-    'ESCAPE_REGEXP' => array(
-        0 => "#\{[a-zA-Z]{1}[a-zA-Z_]{0,}\}#",
-    ),
-
-    // Keywords
-    'KEYWORDS' => array(
-        // Keywords from http://en.wikipedia.org/wiki/C_syntax
-        1 => array(
-            'auto', 'break', 'case', 'char', 'const', 'continue', 'default',
-            'do', 'double', 'else', 'enum', 'extern', 'float', 'for', 'goto',
-            'if', 'inline', 'int', 'long', 'register', 'restrict', 'return',
-            'short', 'signed', 'sizeof', 'static', 'struct', 'switch',
-            'typedef', 'union', 'unsigned', 'void', 'volatile', 'while',
-            '_Bool', '_Complex', '_Imaginary'
-            ),
-        // C preprocessor directives from http://en.wikipedia.org/wiki/C_preprocessor
-        2 => array(
-            '#define', '#if', '#ifdef', '#ifndef', '#include', '#else', '#elif', '#endif', '#pragma', '#undef'
-            ),
-        // Functions from lrun.h
-        3 => array(
-            'lr_start_transaction', 'lr_start_sub_transaction', 'lr_start_transaction_instance', 'lr_end_transaction',
-            'lr_end_sub_transaction', 'lr_end_transaction_instance', 'lr_stop_transaction', 'lr_stop_transaction_instance',
-            'lr_resume_transaction', 'lr_resume_transaction_instance', 'lr_wasted_time', 'lr_set_transaction', 'lr_user_data_point',
-            'lr_user_data_point_instance', 'lr_user_data_point_ex', 'lr_user_data_point_instance_ex', 'lr_get_transaction_duration',
-            'lr_get_trans_instance_duration', 'lr_get_transaction_think_time', 'lr_get_trans_instance_think_time',
-            'lr_get_transaction_wasted_time', 'lr_get_trans_instance_wasted_time', 'lr_get_transaction_status',
-            'lr_get_trans_instance_status', 'lr_set_transaction_status', 'lr_set_transaction_status_by_name',
-            'lr_set_transaction_instance_status', 'lr_start_timer', 'lr_end_timer', 'lr_rendezvous', 'lr_rendezvous_ex',
-            'lr_get_vuser_ip', 'lr_whoami', 'lr_get_host_name', 'lr_get_master_host_name', 'lr_get_attrib_long',
-            'lr_get_attrib_string', 'lr_get_attrib_double', 'lr_paramarr_idx', 'lr_paramarr_random', 'lr_paramarr_len',
-            'lr_param_unique', 'lr_param_sprintf', 'lr_load_dll', 'lr_continue_on_error', 'lr_decrypt', 'lr_abort', 'lr_exit',
-            'lr_peek_events', 'lr_think_time', 'lr_debug_message', 'lr_log_message', 'lr_message', 'lr_error_message',
-            'lr_output_message', 'lr_vuser_status_message', 'lr_fail_trans_with_error', 'lr_next_row', 'lr_advance_param',
-            'lr_eval_string', 'lr_eval_string_ext', 'lr_eval_string_ext_free', 'lr_param_increment', 'lr_save_var',
-            'lr_save_string', 'lr_save_int', 'lr_save_datetime', 'lr_save_searched_string', 'lr_set_debug_message',
-            'lr_get_debug_message', 'lr_enable_ip_spoofing', 'lr_disable_ip_spoofing', 'lr_convert_string_encoding'
-            ),
-        // Constants from lrun.h
-        4 => array(
-            'DP_FLAGS_NO_LOG', 'DP_FLAGS_STANDARD_LOG', 'DP_FLAGS_EXTENDED_LOG', 'merc_timer_handle_t', 'LR_EXIT_VUSER',
-            'LR_EXIT_ACTION_AND_CONTINUE', 'LR_EXIT_ITERATION_AND_CONTINUE', 'LR_EXIT_VUSER_AFTER_ITERATION',
-            'LR_EXIT_VUSER_AFTER_ACTION', 'LR_EXIT_MAIN_ITERATION_AND_CONTINUE', 'LR_MSG_CLASS_DISABLE_LOG',
-            'LR_MSG_CLASS_STANDARD_LOG', 'LR_MSG_CLASS_RETURNED_DATA', 'LR_MSG_CLASS_PARAMETERS', 'LR_MSG_CLASS_ADVANCED_TRACE',
-            'LR_MSG_CLASS_EXTENDED_LOG', 'LR_MSG_CLASS_SENT_DATA', 'LR_MSG_CLASS_JIT_LOG_ON_ERROR', 'LR_SWITCH_OFF', 'LR_SWITCH_ON',
-            'LR_SWITCH_DEFAULT', 'ONE_DAY', 'ONE_HOUR', 'ONE_MIN', 'DATE_NOW', 'TIME_NOW', 'LR_MSG_CLASS_BRIEF_LOG',
-            'LR_MSG_CLASS_RESULT_DATA', 'LR_MSG_CLASS_FULL_TRACE', 'LR_MSG_CLASS_AUTO_LOG', 'LR_MSG_OFF', 'LR_MSG_ON',
-            'LR_MSG_DEFAULT'
-            ),
-        // Functions from web_api.h
-        5 => array(
-            'web_reg_add_cookie', 'web_report_data_point', 'web_text_link', 'web_element', 'web_image_link', 'web_static_image',
-            'web_image_submit', 'web_button', 'web_edit_field', 'web_radio_group', 'web_check_box', 'web_list', 'web_text_area',
-            'web_map_area', 'web_eval_java_script', 'web_reg_dialog', 'web_reg_cross_step_download', 'web_browser',
-            'web_set_rts_key', 'web_save_param_length', 'web_save_timestamp_param', 'web_load_cache', 'web_dump_cache',
-            'web_add_cookie_ex'
-            ),
-        // Constants from web_api.h
-        6 => array(
-            'DESCRIPTION', 'ACTION', 'VERIFICATION', 'LR_NOT_FOUND', 'HTTP_INFO_TOTAL_REQUEST_STAT',
-            'HTTP_INFO_TOTAL_RESPONSE_STAT', 'LRW_OPT_STOP_VUSER_ON_ERROR', 'LRW_OPT_DISPLAY_IMAGE_BODY'
-            ),
-        // Functions from as_web.h
-        7 => array(
-            'web_add_filter', 'web_add_auto_filter', 'web_add_auto_header', 'web_add_header', 'web_add_cookie',
-            'web_cleanup_auto_headers', 'web_cleanup_cookies', 'web_concurrent_end', 'web_concurrent_start', 'web_create_html_param',
-            'web_create_html_param_ex', 'web_custom_request', 'web_disable_keep_alive', 'web_enable_keep_alive', 'web_find',
-            'web_get_int_property', 'web_image', 'web_image_check', 'web_link', 'web_global_verification', 'web_reg_find',
-            'web_reg_save_param', 'web_convert_param', 'web_remove_auto_filter', 'web_remove_auto_header', 'web_revert_auto_header',
-            'web_remove_cookie', 'web_save_header', 'web_set_certificate', 'web_set_certificate_ex', 'web_set_connections_limit',
-            'web_set_max_html_param_len', 'web_set_max_retries', 'web_set_proxy', 'web_set_proxy_bypass', 'web_set_secure_proxy',
-            'web_set_sockets_option', 'web_set_option', 'web_set_timeout', 'web_set_user', 'web_sjis_to_euc_param',
-            'web_submit_data', 'web_submit_form', 'web_url', 'web_set_proxy_bypass_local', 'web_cache_cleanup',
-            'web_create_html_query', 'web_create_radio_button_param', 'web_switch_net_layer'
-            ),
-        // Constants from as_web.h
-        8 => array(
-            'ENDFORM', 'LAST', 'ENDITEM', 'EXTRARES', 'ITEMDATA', 'STARTHIDDENS', 'ENDHIDDENS', 'CONNECT', 'RECEIVE', 'RESOLVE',
-            'STEP', 'REQUEST', 'RESPONSE', 'STARTQUERY', 'ENDQUERY', 'INPROPS', 'OUTPROPS', 'ENDPROPS', 'RAW_BODY_START',
-            'RAW_BODY_END', 'HTTP_INFO_RETURN_CODE', 'HTTP_INFO_DOWNLOAD_SIZE', 'HTTP_INFO_DOWNLOAD_TIME',
-            'LRW_NET_SOCKET_OPT_LOAD_VERIFY_FILE', 'LRW_NET_SOCKET_OPT_DEFAULT_VERIFY_PATH', 'LRW_NET_SOCKET_OPT_SSL_VERSION',
-            'LRW_NET_SOCKET_OPT_SSL_CIPHER_LIST', 'LRW_NET_SOCKET_OPT_SO_REUSE_ADDRESS', 'LRW_NET_SOCKET_OPT_USER_IP_ADDRESS',
-            'LRW_NET_SOCKET_OPT_IP_ADDRESS_BY_INDEX', 'LRW_NET_SOCKET_OPT_HELP', 'LRW_NET_SOCKET_OPT_PRINT_USER_IP_ADDRESS_LIST',
-            'LRW_OPT_HTML_CHAR_REF_BACKWARD_COMPATIBILITY', 'LRW_OPT_VALUE_YES', 'LRW_OPT_VALUE_NO'
-            ),
-        // Functions from as_sapgui.h
-        9 => array(
-            'sapgui_open_connection', 'sapgui_open_connection_ex', 'sapgui_logon', 'sapgui_create_session',
-            'sapgui_create_new_session', 'sapgui_call_method', 'sapgui_call_method_ex', 'sapgui_set_property',
-            'sapgui_get_property', 'sapgui_set_collection_property', 'sapgui_active_object_from_parent_method',
-            'sapgui_active_object_from_parent_property', 'sapgui_call_method_of_active_object',
-            'sapgui_call_method_of_active_object_ex', 'sapgui_set_property_of_active_object', 'sapgui_get_property_of_active_object',
-            'sapgui_select_active_connection', 'sapgui_select_active_session', 'sapgui_select_active_window ',
-            'sapgui_status_bar_get_text', 'sapgui_status_bar_get_param', 'sapgui_status_bar_get_type', 'sapgui_get_status_bar_text',
-            'sapgui_get_active_window_title', 'sapgui_is_object_available', 'sapgui_is_tab_selected', 'sapgui_is_object_changeable',
-            'sapgui_set_ok_code', 'sapgui_send_vkey', 'sapgui_resize_window', 'sapgui_window_resize', 'sapgui_window_maximize',
-            'sapgui_window_close', 'sapgui_window_restore', 'sapgui_window_scroll_to_row', 'sapgui_press_button',
-            'sapgui_select_radio_button', 'sapgui_set_password', 'sapgui_set_text', 'sapgui_select_menu', 'sapgui_select_tab',
-            'sapgui_set_checkbox', 'sapgui_set_focus', 'sapgui_select_combobox_entry', 'sapgui_get_ok_code',
-            'sapgui_is_radio_button_selected', 'sapgui_get_text', 'sapgui_is_checkbox_selected', 'sapgui_table_set_focus',
-            'sapgui_table_press_button', 'sapgui_table_select_radio_button', 'sapgui_table_set_password', 'sapgui_table_set_text',
-            'sapgui_table_set_checkbox', 'sapgui_table_select_combobox_entry', 'sapgui_table_set_row_selected',
-            'sapgui_table_set_column_selected', 'sapgui_table_set_column_width', 'sapgui_table_reorder', 'sapgui_table_fill_data',
-            'sapgui_table_get_text', 'sapgui_table_is_radio_button_selected', 'sapgui_table_is_checkbox_selected',
-            'sapgui_table_is_row_selected', 'sapgui_table_is_column_selected', 'sapgui_table_get_column_width',
-            'sapgui_grid_clear_selection', 'sapgui_grid_select_all', 'sapgui_grid_selection_changed',
-            'sapgui_grid_press_column_header', 'sapgui_grid_select_cell', 'sapgui_grid_select_rows', 'sapgui_grid_select_column',
-            'sapgui_grid_deselect_column', 'sapgui_grid_select_columns', 'sapgui_grid_select_cells', 'sapgui_grid_select_cell_row',
-            'sapgui_grid_select_cell_column', 'sapgui_grid_set_column_order', 'sapgui_grid_set_column_width',
-            'sapgui_grid_scroll_to_row', 'sapgui_grid_double_click', 'sapgui_grid_click', 'sapgui_grid_press_button',
-            'sapgui_grid_press_total_row', 'sapgui_grid_set_cell_data', 'sapgui_grid_set_checkbox',
-            'sapgui_grid_double_click_current_cell', 'sapgui_grid_click_current_cell', 'sapgui_grid_press_button_current_cell',
-            'sapgui_grid_press_total_row_current_cell', 'sapgui_grid_press_F1', 'sapgui_grid_press_F4', 'sapgui_grid_press_ENTER',
-            'sapgui_grid_press_toolbar_button', 'sapgui_grid_press_toolbar_context_button', 'sapgui_grid_open_context_menu',
-            'sapgui_grid_select_context_menu', 'sapgui_grid_select_toolbar_menu', 'sapgui_grid_fill_data',
-            'sapgui_grid_get_current_cell_row', 'sapgui_grid_get_current_cell_column', 'sapgui_grid_get_rows_count',
-            'sapgui_grid_get_columns_count', 'sapgui_grid_get_cell_data', 'sapgui_grid_is_checkbox_selected',
-            'sapgui_tree_scroll_to_node', 'sapgui_tree_set_hierarchy_header_width', 'sapgui_tree_set_selected_node',
-            'sapgui_tree_double_click_node', 'sapgui_tree_press_key', 'sapgui_tree_press_button', 'sapgui_tree_set_checkbox',
-            'sapgui_tree_double_click_item', 'sapgui_tree_click_link', 'sapgui_tree_open_default_context_menu',
-            'sapgui_tree_open_node_context_menu', 'sapgui_tree_open_header_context_menu', 'sapgui_tree_open_item_context_menu',
-            'sapgui_tree_select_context_menu', 'sapgui_tree_select_item', 'sapgui_tree_select_node', 'sapgui_tree_unselect_node',
-            'sapgui_tree_unselect_all', 'sapgui_tree_select_column', 'sapgui_tree_unselect_column', 'sapgui_tree_set_column_order',
-            'sapgui_tree_collapse_node', 'sapgui_tree_expand_node', 'sapgui_tree_scroll_to_item', 'sapgui_tree_set_column_width',
-            'sapgui_tree_press_header', 'sapgui_tree_is_checkbox_selected', 'sapgui_tree_get_node_text', 'sapgui_tree_get_item_text',
-            'sapgui_calendar_scroll_to_date', 'sapgui_calendar_focus_date', 'sapgui_calendar_select_interval',
-            'sapgui_apogrid_select_all', 'sapgui_apogrid_clear_selection', 'sapgui_apogrid_select_cell',
-            'sapgui_apogrid_deselect_cell', 'sapgui_apogrid_select_row', 'sapgui_apogrid_deselect_row',
-            'sapgui_apogrid_select_column', 'sapgui_apogrid_deselect_column', 'sapgui_apogrid_scroll_to_row',
-            'sapgui_apogrid_scroll_to_column', 'sapgui_apogrid_double_click', 'sapgui_apogrid_set_cell_data',
-            'sapgui_apogrid_get_cell_data', 'sapgui_apogrid_is_cell_changeable', 'sapgui_apogrid_get_cell_format',
-            'sapgui_apogrid_get_cell_tooltip', 'sapgui_apogrid_press_ENTER', 'sapgui_apogrid_open_cell_context_menu',
-            'sapgui_apogrid_select_context_menu_item', 'sapgui_text_edit_scroll_to_line', 'sapgui_text_edit_set_selection_indexes',
-            'sapgui_text_edit_set_unprotected_text_part', 'sapgui_text_edit_get_first_visible_line',
-            'sapgui_text_edit_get_selection_index_start', 'sapgui_text_edit_get_selection_index_end',
-            'sapgui_text_edit_get_number_of_unprotected_text_parts', 'sapgui_text_edit_double_click',
-            'sapgui_text_edit_single_file_dropped', 'sapgui_text_edit_multiple_files_dropped', 'sapgui_text_edit_press_F1',
-            'sapgui_text_edit_press_F4', 'sapgui_text_edit_open_context_menu', 'sapgui_text_edit_select_context_menu',
-            'sapgui_text_edit_modified_status_changed', 'sapgui_htmlviewer_send_event', 'sapgui_htmlviewer_dom_get_property',
-            'sapgui_toolbar_press_button', 'sapgui_toolbar_press_context_button', 'sapgui_toolbar_select_menu_item',
-            'sapgui_toolbar_select_menu_item_by_text', 'sapgui_toolbar_select_context_menu_item',
-            'sapgui_toolbar_select_context_menu_item_by_text'
-            ),
-        // Constants from as_sapgui.h
-        10 => array(
-            'BEGIN_OPTIONAL', 'END_OPTIONAL', 'al-keys', 'ENTER', 'HELP', 'F2', 'BACK', 'F4', 'F5', 'F6', 'F7', 'F8', 'F9',
-            'F10', 'F11', 'ESC', 'SHIFT_F1', 'SHIFT_F2', 'SHIFT_F3', 'SHIFT_F4', 'SHIFT_F5', 'SHIFT_F6', 'SHIFT_F7', 'SHIFT_F8',
-            'SHIFT_F9', 'SHIFT_F10', 'SHIFT_F11', 'SHIFT_F12', 'CTRL_F1', 'CTRL_F2', 'CTRL_F3', 'CTRL_F4', 'CTRL_F5', 'CTRL_F6',
-            'CTRL_F7', 'CTRL_F8', 'CTRL_F9', 'CTRL_F10', 'CTRL_F11', 'CTRL_F12', 'CTRL_SHIFT_F1', 'CTRL_SHIFT_F2', 'CTRL_SHIFT_F3',
-            'CTRL_SHIFT_F4', 'CTRL_SHIFT_F5', 'CTRL_SHIFT_F6', 'CTRL_SHIFT_F7', 'CTRL_SHIFT_F8', 'CTRL_SHIFT_F9', 'CTRL_SHIFT_F10',
-            'CTRL_SHIFT_F11', 'CTRL_SHIFT_F12', 'CANCEL', 'CTRL_F', 'CTRL_PAGE_UP', 'PAGE_UP', 'PAGE_DOWN', 'CTRL_PAGE_DOWN',
-            'CTRL_G', 'CTRL_P'
-            ),
-        ),
-
-    // Symbols and Case Sensitivity
-    // Symbols from: http://en.wikipedia.org/wiki/C_syntax
-    'SYMBOLS' => array(
-        '(', ')', '{', '}', '[', ']',
-        '+', '-', '*', '/', '%',
-        '=', '<', '>', '!', '^', '&', '|', '?', ':', ';', ','
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => true, // Standard C reserved keywords
-        2 => true, // C preprocessor directives
-        3 => true, // Functions from lrun.h
-        4 => true, // Constants from lrun.h
-        5 => true, // Functions from web_api.h
-        6 => true, // Constants from web_api.h
-        7 => true, // Functions from as_web.h
-        8 => true, // Constants from as_web.h
-        9 => true, // Functions from as_sapgui.h
-        10 => true, // Constants from as_sapgui.h
-        ),
-
-    // Styles
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            // Functions are brown, constants and reserved words are blue
-            1 => 'color: #0000ff;', // Standard C reserved keywords
-            2 => 'color: #0000ff;', // C preprocessor directives
-            3 => 'color: #8a0000;', // Functions from lrun.h
-            4 => 'color: #0000ff;', // Constants from lrun.h
-            5 => 'color: #8a0000;', // Functions from web_api.h
-            6 => 'color: #0000ff;', // Constants from web_api.h
-            7 => 'color: #8a0000;', // Functions from as_web.h
-            8 => 'color: #0000ff;', // Constants from as_web.h
-            9 => 'color: #8a0000;', // Functions from as_sapgui.h
-            10 => 'color: #0000ff;', // Constants from as_sapgui.h
-            ),
-        'COMMENTS' => array(
-            // Comments are grey
-            1 => 'color: #9b9b9b;',
-            'MULTI' => 'color: #9b9b9b;'
-            ),
-        'ESCAPE_CHAR' => array(
-            // GeSHi cannot define a separate style for ESCAPE_REGEXP. The style for ESCAPE_CHAR also applies to ESCAPE_REGEXP.
-            // This is used for LoadRunner {parameters}
-            // {parameters} are pink
-            0 => 'color: #c000c0;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #000000;'
-            ),
-        'STRINGS' => array(
-            // Strings are green
-            0 => 'color: #008080;'
-            ),
-        'NUMBERS' => array(
-            // Numbers are green
-            0 => 'color: #008080;',
-            GESHI_NUMBER_BIN_PREFIX_0B => 'color: #008080;',
-            GESHI_NUMBER_OCT_PREFIX => 'color: #008080;',
-            GESHI_NUMBER_HEX_PREFIX => 'color: #008080;',
-            GESHI_NUMBER_FLT_SCI_SHORT => 'color:#008080;',
-            GESHI_NUMBER_FLT_SCI_ZERO => 'color:#008080;',
-            GESHI_NUMBER_FLT_NONSCI_F => 'color:#008080;',
-            GESHI_NUMBER_FLT_NONSCI => 'color:#008080;'
-            ),
-        'METHODS' => array(
-            1 => 'color: #000000;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #000000;'
-            ),
-        'REGEXPS' => array(
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-
-    // URLs for Functions
-    'URLS' => array(
-        1 => '', // Standard C reserved keywords
-        2 => '', // C preprocessor directives
-        3 => '', // Functions from lrun.h
-        4 => '', // Constants from lrun.h
-        5 => '', // Functions from web_api.h
-        6 => '', // Constants from web_api.h
-        7 => '', // Functions from as_web.h
-        8 => '', // Constants from as_web.h
-        9 => '', // Functions from as_sapgui.h
-        10 => '', // Constants from as_sapgui.h
-        ),
-
-    // Object Orientation
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(
-        ),
-
-    // Regular Expressions
-    // Note that REGEXPS are not applied within strings.
-    'REGEXPS' => array(
-        ),
-
-    // Contextual Highlighting and Strict Mode
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        ),
-
-    // Tabs
-    // 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/wiki/vendor/geshi/geshi/src/geshi/c_mac.php b/wiki/vendor/geshi/geshi/src/geshi/c_mac.php
deleted file mode 100644
index dc03184..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/c_mac.php
+++ /dev/null
@@ -1,225 +0,0 @@
-<?php
-/*************************************************************************************
- * c_mac.php
- * ---------
- * 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.9.0
- * Date Started: 2004/06/04
- *
- * C for Macs language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2008/05/23 (1.0.7.22)
- *   -  Added description of extra language features (SF#1970248)
- * 2004/11/27
- *   -  First Release
- *
- * TODO (updated 2004/11/27)
- * -------------------------
- *
- *************************************************************************************
- *
- *     This file is part of GeSHi.
- *
- *   GeSHi is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   GeSHi is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with GeSHi; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- ************************************************************************************/
-
-$language_data = array (
-    'LANG_NAME' => 'C (Mac)',
-    'COMMENT_SINGLE' => array(1 => '//', 2 => '#'),
-    'COMMENT_MULTI' => array('/*' => '*/'),
-    'COMMENT_REGEXP' => array(
-        //Multiline-continued single-line comments
-        1 => '/\/\/(?:\\\\\\\\|\\\\\\n|.)*$/m',
-        //Multiline-continued preprocessor define
-        2 => '/#(?:\\\\\\\\|\\\\\\n|.)*$/m'
-        ),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array("'", '"'),
-    'ESCAPE_CHAR' => '',
-    'ESCAPE_REGEXP' => array(
-        //Simple Single Char Escapes
-        1 => "#\\\\[\\\\abfnrtv\'\"?\n]#i",
-        //Hexadecimal Char Specs
-        2 => "#\\\\x[\da-fA-F]{2}#",
-        //Hexadecimal Char Specs
-        3 => "#\\\\u[\da-fA-F]{4}#",
-        //Hexadecimal Char Specs
-        4 => "#\\\\U[\da-fA-F]{8}#",
-        //Octal Char Specs
-        5 => "#\\\\[0-7]{1,3}#"
-        ),
-    'NUMBERS' =>
-        GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_INT_CSTYLE | GESHI_NUMBER_BIN_PREFIX_0B |
-        GESHI_NUMBER_OCT_PREFIX | GESHI_NUMBER_HEX_PREFIX | GESHI_NUMBER_FLT_NONSCI |
-        GESHI_NUMBER_FLT_NONSCI_F | GESHI_NUMBER_FLT_SCI_SHORT | GESHI_NUMBER_FLT_SCI_ZERO,
-    'KEYWORDS' => array(
-        1 => array(
-            'if', 'return', 'while', 'case', 'continue', 'default',
-            'do', 'else', 'for', 'switch', 'goto'
-            ),
-        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',
-            // Mac-specific constants:
-            'kCFAllocatorDefault'
-            ),
-        3 => array(
-            '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', 'char', 'const', 'double',  'float', 'int', 'long',
-            'register', 'short', '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',
-
-            // Mac-specific types:
-            'CFArrayRef', 'CFDictionaryRef', 'CFMutableDictionaryRef', 'CFBundleRef', 'CFSetRef', 'CFStringRef',
-            'CFURLRef', 'CFLocaleRef', 'CFDateFormatterRef', 'CFNumberFormatterRef', 'CFPropertyListRef',
-            'CFTreeRef', 'CFWriteStreamRef', 'CFCharacterSetRef', 'CFMutableStringRef', 'CFNotificationRef',
-            'CFReadStreamRef', 'CFNull', 'CFAllocatorRef', 'CFBagRef', 'CFBinaryHeapRef',
-            'CFBitVectorRef', 'CFBooleanRef', 'CFDataRef', 'CFDateRef', 'CFMachPortRef', 'CFMessagePortRef',
-            'CFMutableArrayRef', 'CFMutableBagRef', 'CFMutableBitVectorRef', 'CFMutableCharacterSetRef',
-            'CFMutableDataRef', 'CFMutableSetRef', 'CFNumberRef', 'CFPlugInRef', 'CFPlugInInstanceRef',
-            'CFRunLoopRef', 'CFRunLoopObserverRef', 'CFRunLoopSourceRef', 'CFRunLoopTimerRef', 'CFSocketRef',
-            'CFTimeZoneRef', 'CFTypeRef', 'CFUserNotificationRef', 'CFUUIDRef', 'CFXMLNodeRef', 'CFXMLParserRef',
-            'CFXMLTreeRef'
-            ),
-        ),
-    'SYMBOLS' => array(
-        '(', ')', '{', '}', '[', ']', '=', '+', '-', '*', '/', '!', '%', '^', '&', ':'
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => true,
-        2 => true,
-        3 => true,
-        4 => true,
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #0000ff;',
-            2 => 'color: #0000ff;',
-            3 => 'color: #0000dd;',
-            4 => 'color: #0000ff;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #ff0000;',
-            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: #000000;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #666666;'
-            ),
-        '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: #00eeff;',
-            2 => 'color: #00eeff;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #000000;'
-            ),
-        'REGEXPS' => array(
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => 'http://www.opengroup.org/onlinepubs/009695399/functions/{FNAMEL}.html',
-        4 => ''
-        ),
-    'OOLANG' => true,
-    'OBJECT_SPLITTERS' => array(
-        1 => '.',
-        2 => '::'
-        ),
-    'REGEXPS' => array(
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        ),
-    'TAB_WIDTH' => 4
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/c_winapi.php b/wiki/vendor/geshi/geshi/src/geshi/c_winapi.php
deleted file mode 100644
index 37db047..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/c_winapi.php
+++ /dev/null
@@ -1,870 +0,0 @@
-<?php
-/*************************************************************************************
- * c_winapi.php
- * -----
- * Author: Benny Baumann (BenBE@geshi.org)
- * Contributors:
- *  - Jack Lloyd (lloyd@randombit.net)
- *  - Michael Mol (mikemol@gmail.com)
- * Copyright: (c) 2012 Benny Baumann (http://qbnz.com/highlighter/)
- * Release Version: 1.0.9.0
- * Date Started: 2012/08/12
- *
- * C (WinAPI) language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2009/01/22 (1.0.8.3)
- *   -  Made keywords case-sensitive.
- * 2008/05/23 (1.0.7.22)
- *   -  Added description of extra language features (SF#1970248)
- * 2004/XX/XX (1.0.4)
- *   -  Added a couple of new keywords (Jack Lloyd)
- * 2004/11/27 (1.0.3)
- *   -  Added support for multiple object splitters
- * 2004/10/27 (1.0.2)
- *   -  Added support for URLs
- * 2004/08/05 (1.0.1)
- *   -  Added support for symbols
- * 2004/07/14 (1.0.0)
- *   -  First Release
- *
- * TODO (updated 2009/02/08)
- * -------------------------
- *  -  Get a list of inbuilt functions to add (and explore C more
- *     to complete this rather bare language file
- *
- *************************************************************************************
- *
- *     This file is part of GeSHi.
- *
- *   GeSHi is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   GeSHi is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with GeSHi; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- ************************************************************************************/
-
-$language_data = array (
-    'LANG_NAME' => 'C (WinAPI)',
-    'COMMENT_SINGLE' => array(1 => '//', 2 => '#'),
-    'COMMENT_MULTI' => array('/*' => '*/'),
-    'COMMENT_REGEXP' => array(
-        //Multiline-continued single-line comments
-        1 => '/\/\/(?:\\\\\\\\|\\\\\\n|.)*$/m',
-        //Multiline-continued preprocessor define
-        2 => '/#(?:\\\\\\\\|\\\\\\n|.)*$/m'
-        ),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array("'", '"'),
-    'ESCAPE_CHAR' => '',
-    'ESCAPE_REGEXP' => array(
-        //Simple Single Char Escapes
-        1 => "#\\\\[\\\\abfnrtv\'\"?\n]#i",
-        //Hexadecimal Char Specs
-        2 => "#\\\\x[\da-fA-F]{2}#",
-        //Hexadecimal Char Specs
-        3 => "#\\\\u[\da-fA-F]{4}#",
-        //Hexadecimal Char Specs
-        4 => "#\\\\U[\da-fA-F]{8}#",
-        //Octal Char Specs
-        5 => "#\\\\[0-7]{1,3}#"
-        ),
-    'NUMBERS' =>
-        GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_INT_CSTYLE | GESHI_NUMBER_BIN_PREFIX_0B |
-        GESHI_NUMBER_OCT_PREFIX | GESHI_NUMBER_HEX_PREFIX | GESHI_NUMBER_FLT_NONSCI |
-        GESHI_NUMBER_FLT_NONSCI_F | GESHI_NUMBER_FLT_SCI_SHORT | GESHI_NUMBER_FLT_SCI_ZERO,
-    'KEYWORDS' => array(
-        1 => array(
-            'if', 'return', 'while', 'case', 'continue', 'default',
-            'do', 'else', 'for', 'switch', 'goto'
-            ),
-        2 => array(
-            'null', 'false', 'break', 'true', 'function', 'enum', 'extern', 'inline'
-            ),
-        3 => array(
-            // assert.h
-            'assert',
-
-            //complex.h
-            'cabs', 'cacos', 'cacosh', 'carg', 'casin', 'casinh', 'catan',
-            'catanh', 'ccos', 'ccosh', 'cexp', 'cimag', 'cis', 'clog', 'conj',
-            'cpow', 'cproj', 'creal', 'csin', 'csinh', 'csqrt', 'ctan', 'ctanh',
-
-            //ctype.h
-            'digittoint', 'isalnum', 'isalpha', 'isascii', 'isblank', 'iscntrl',
-            'isdigit', 'isgraph', 'islower', 'isprint', 'ispunct', 'isspace',
-            'isupper', 'isxdigit', 'toascii', 'tolower', 'toupper',
-
-            //inttypes.h
-            'imaxabs', 'imaxdiv', 'strtoimax', 'strtoumax', 'wcstoimax',
-            'wcstoumax',
-
-            //locale.h
-            'localeconv', 'setlocale',
-
-            //math.h
-            'acos', 'asin', 'atan', 'atan2', 'ceil', 'cos', 'cosh', 'exp',
-            'fabs', 'floor', 'frexp', 'ldexp', 'log', 'log10', 'modf', 'pow',
-            'sin', 'sinh', 'sqrt', 'tan', 'tanh',
-
-            //setjmp.h
-            'longjmp', 'setjmp',
-
-            //signal.h
-            'raise',
-
-            //stdarg.h
-            'va_arg', 'va_copy', 'va_end', 'va_start',
-
-            //stddef.h
-            'offsetof',
-
-            //stdio.h
-            'clearerr', 'fclose', 'fdopen', 'feof', 'ferror', 'fflush', 'fgetc',
-            'fgetpos', 'fgets', 'fopen', 'fprintf', 'fputc', 'fputchar',
-            'fputs', 'fread', 'freopen', 'fscanf', 'fseek', 'fsetpos', 'ftell',
-            'fwrite', 'getc', 'getch', 'getchar', 'gets', 'perror', 'printf',
-            'putc', 'putchar', 'puts', 'remove', 'rename', 'rewind', 'scanf',
-            'setbuf', 'setvbuf', 'snprintf', 'sprintf', 'sscanf', 'tmpfile',
-            'tmpnam', 'ungetc', 'vfprintf', 'vfscanf', 'vprintf', 'vscanf',
-            'vsprintf', 'vsscanf',
-
-            //stdlib.h
-            'abort', 'abs', 'atexit', 'atof', 'atoi', 'atol', 'bsearch',
-            'calloc', 'div', 'exit', 'free', 'getenv', 'itoa', 'labs', 'ldiv',
-            'ltoa', 'malloc', 'qsort', 'rand', 'realloc', 'srand', 'strtod',
-            'strtol', 'strtoul', 'system',
-
-            //string.h
-            'memchr', 'memcmp', 'memcpy', 'memmove', 'memset', 'strcat',
-            'strchr', 'strcmp', 'strcoll', 'strcpy', 'strcspn', 'strerror',
-            'strlen', 'strncat', 'strncmp', 'strncpy', 'strpbrk', 'strrchr',
-            'strspn', 'strstr', 'strtok', 'strxfrm',
-
-            //time.h
-            'asctime', 'clock', 'ctime', 'difftime', 'gmtime', 'localtime',
-            'mktime', 'strftime', 'time',
-
-            //wchar.h
-            'btowc', 'fgetwc', 'fgetws', 'fputwc', 'fputws', 'fwide',
-            'fwprintf', 'fwscanf', 'getwc', 'getwchar', 'mbrlen', 'mbrtowc',
-            'mbsinit', 'mbsrtowcs', 'putwc', 'putwchar', 'swprintf', 'swscanf',
-            'ungetwc', 'vfwprintf', 'vswprintf', 'vwprintf', 'wcrtomb',
-            'wcscat', 'wcschr', 'wcscmp', 'wcscoll', 'wcscpy', 'wcscspn',
-            'wcsftime', 'wcslen', 'wcsncat', 'wcsncmp', 'wcsncpy', 'wcspbrk',
-            'wcsrchr', 'wcsrtombs', 'wcsspn', 'wcsstr', 'wcstod', 'wcstok',
-            'wcstol', 'wcstoul', 'wcsxfrm', 'wctob', 'wmemchr', 'wmemcmp',
-            'wmemcpy', 'wmemmove', 'wmemset', 'wprintf', 'wscanf',
-
-            //wctype.h
-            'iswalnum', 'iswalpha', 'iswcntrl', 'iswctype', 'iswdigit',
-            'iswgraph', 'iswlower', 'iswprint', 'iswpunct', 'iswspace',
-            'iswupper', 'iswxdigit', 'towctrans', 'towlower', 'towupper',
-            'wctrans', 'wctype'
-            ),
-        4 => array(
-            'auto', 'char', 'const', 'double',  'float', 'int', 'long',
-            'register', 'short', 'signed', 'sizeof', 'static', 'struct',
-            'typedef', 'union', 'unsigned', 'void', 'volatile', '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',
-            'size_t', 'off_t'
-            ),
-        // Public API
-        5 => array(
-            'AssignProcessToJobObject', 'CommandLineToArgvW', 'ConvertThreadToFiber',
-            'CreateFiber', 'CreateJobObjectA', 'CreateJobObjectW', 'CreateProcessA',
-            'CreateProcessAsUserA', 'CreateProcessAsUserW', 'CreateProcessW',
-            'CreateRemoteThread', 'CreateThread', 'DeleteFiber', 'ExitProcess',
-            'ExitThread', 'FreeEnvironmentStringsA', 'FreeEnvironmentStringsW',
-            'GetCommandLineA', 'GetCommandLineW', 'GetCurrentProcess',
-            'GetCurrentProcessId', 'GetCurrentThread', 'GetCurrentThreadId',
-            'GetEnvironmentStringsA', 'GetEnvironmentStringsW',
-            'GetEnvironmentVariableA', 'GetEnvironmentVariableW', 'GetExitCodeProcess',
-            'GetExitCodeThread', 'GetGuiResources', 'GetPriorityClass',
-            'GetProcessAffinityMask', 'GetProcessPriorityBoost',
-            'GetProcessShutdownParameters', 'GetProcessTimes', 'GetProcessVersion',
-            'GetProcessWorkingSetSize', 'GetStartupInfoA', 'GetStartupInfoW',
-            'GetThreadPriority', 'GetThreadPriorityBoost', 'GetThreadTimes',
-            'OpenJobObjectA', 'OpenJobObjectW', 'OpenProcess',
-            'QueryInformationJobObject', 'ResumeThread', 'SetEnvironmentVariableA',
-            'SetEnvironmentVariableW', 'SetInformationJobObject', 'SetPriorityClass',
-            'SetProcessAffinityMask', 'SetProcessPriorityBoost',
-            'SetProcessShutdownParameters', 'SetProcessWorkingSetSize',
-            'SetThreadAffinityMask', 'SetThreadIdealProcessor', 'SetThreadPriority',
-            'SetThreadPriorityBoost', 'Sleep', 'SleepEx', 'SuspendThread',
-            'SwitchToFiber', 'SwitchToThread', 'TerminateJobObject', 'TerminateProcess',
-            'TerminateThread', 'WaitForInputIdle', 'WinExec',
-
-            '_hread', '_hwrite', '_lclose', '_lcreat', '_llseek', '_lopen', '_lread',
-            '_lwrite', 'AreFileApisANSI', 'CancelIo', 'CopyFileA', 'CopyFileW',
-            'CreateDirectoryA', 'CreateDirectoryExA', 'CreateDirectoryExW',
-            'CreateDirectoryW', 'CreateFileA', 'CreateFileW', 'DeleteFileA',
-            'DeleteFileW', 'FindClose', 'FindCloseChangeNotification',
-            'FindFirstChangeNotificationA', 'FindFirstChangeNotificationW',
-            'FindFirstFileA', 'FindFirstFileW', 'FindNextFileA', 'FindNextFileW',
-            'FlushFileBuffers', 'GetCurrentDirectoryA', 'GetCurrentDirectoryW',
-            'GetDiskFreeSpaceA', 'GetDiskFreeSpaceExA', 'GetDiskFreeSpaceExW',
-            'GetDiskFreeSpaceW', 'GetDriveTypeA', 'GetDriveTypeW', 'GetFileAttributesA',
-            'GetFileAttributesExA', 'GetFileAttributesExW', 'GetFileAttributesW',
-            'GetFileInformationByHandle', 'GetFileSize', 'GetFileType',
-            'GetFullPathNameA', 'GetFullPathNameW', 'GetLogicalDrives',
-            'GetLogicalDriveStringsA', 'GetLogicalDriveStringsW', 'GetLongPathNameA',
-            'GetLongPathNameW', 'GetShortPathNameA', 'GetShortPathNameW',
-            'GetTempFileNameA', 'GetTempFileNameW', 'GetTempPathA', 'GetTempPathW',
-            'LockFile', 'MoveFileA', 'MoveFileW', 'MulDiv', 'OpenFile',
-            'QueryDosDeviceA', 'QueryDosDeviceW', 'ReadFile', 'ReadFileEx',
-            'RemoveDirectoryA', 'RemoveDirectoryW', 'SearchPathA', 'SearchPathW',
-            'SetCurrentDirectoryA', 'SetCurrentDirectoryW', 'SetEndOfFile',
-            'SetFileApisToANSI', 'SetFileApisToOEM', 'SetFileAttributesA',
-            'SetFileAttributesW', 'SetFilePointer', 'SetHandleCount',
-            'SetVolumeLabelA', 'SetVolumeLabelW', 'UnlockFile', 'WriteFile',
-            'WriteFileEx',
-
-            'DeviceIoControl',
-
-            'GetModuleFileNameA', 'GetModuleFileNameW', 'GetProcAddress',
-            'LoadLibraryA', 'LoadLibraryExA', 'LoadLibraryExW', 'LoadLibraryW',
-            'LoadModule',
-
-            'GetPrivateProfileIntA', 'GetPrivateProfileIntW',
-            'GetPrivateProfileSectionA', 'GetPrivateProfileSectionNamesA',
-            'GetPrivateProfileSectionNamesW', 'GetPrivateProfileSectionW',
-            'GetPrivateProfileStringA', 'GetPrivateProfileStringW',
-            'GetPrivateProfileStructA', 'GetPrivateProfileStructW',
-            'GetProfileIntA', 'GetProfileIntW', 'GetProfileSectionA',
-            'GetProfileSectionW', 'GetProfileStringA', 'GetProfileStringW',
-            'RegCloseKey', 'RegConnectRegistryA', 'RegConnectRegistryW',
-            'RegCreateKeyA', 'RegCreateKeyExA', 'RegCreateKeyExW',
-            'RegCreateKeyW', 'RegDeleteKeyA', 'RegDeleteKeyW', 'RegDeleteValueA',
-            'RegDeleteValueW', 'RegEnumKeyA', 'RegEnumKeyExA', 'RegEnumKeyExW',
-            'RegEnumKeyW', 'RegEnumValueA', 'RegEnumValueW', 'RegFlushKey',
-            'RegGetKeySecurity', 'RegLoadKeyA', 'RegLoadKeyW',
-            'RegNotifyChangeKeyValue', 'RegOpenKeyA', 'RegOpenKeyExA', 'RegOpenKeyExW',
-            'RegOpenKeyW', 'RegOverridePredefKey', 'RegQueryInfoKeyA',
-            'RegQueryInfoKeyW', 'RegQueryMultipleValuesA', 'RegQueryMultipleValuesW',
-            'RegQueryValueA', 'RegQueryValueExA', 'RegQueryValueExW', 'RegQueryValueW',
-            'RegReplaceKeyA', 'RegReplaceKeyW', 'RegRestoreKeyA', 'RegRestoreKeyW',
-            'RegSaveKeyA', 'RegSaveKeyW', 'RegSetKeySecurity', 'RegSetValueA',
-            'RegSetValueExA', 'RegSetValueExW', 'RegSetValueW', 'RegUnLoadKeyA',
-            'RegUnLoadKeyW', 'WritePrivateProfileSectionA', 'WritePrivateProfileSectionW',
-            'WritePrivateProfileStringA', 'WritePrivateProfileStringW',
-            'WritePrivateProfileStructA', 'WritePrivateProfileStructW',
-            'WriteProfileSectionA', 'WriteProfileSectionW', 'WriteProfileStringA',
-            'WriteProfileStringW',
-
-            'AccessCheck', 'AccessCheckAndAuditAlarmA', 'AccessCheckAndAuditAlarmW',
-            'AccessCheckByType', 'AccessCheckByTypeAndAuditAlarmA',
-            'AccessCheckByTypeAndAuditAlarmW', 'AccessCheckByTypeResultList',
-            'AccessCheckByTypeResultListAndAuditAlarmA', 'AccessCheckByTypeResultListAndAuditAlarmW',
-            'AddAccessAllowedAce', 'AddAccessAllowedAceEx', 'AddAccessAllowedObjectAce',
-            'AddAccessDeniedAce', 'AddAccessDeniedAceEx', 'AddAccessDeniedObjectAce',
-            'AddAce', 'AddAuditAccessAce', 'AddAuditAccessAceEx', 'AddAuditAccessObjectAce',
-            'AdjustTokenGroups', 'AdjustTokenPrivileges', 'AllocateAndInitializeSid',
-            'AllocateLocallyUniqueId', 'AreAllAccessesGranted', 'AreAnyAccessesGranted',
-            'BuildExplicitAccessWithNameA', 'BuildExplicitAccessWithNameW',
-            'BuildImpersonateExplicitAccessWithNameA', 'BuildImpersonateExplicitAccessWithNameW',
-            'BuildImpersonateTrusteeA', 'BuildImpersonateTrusteeW', 'BuildSecurityDescriptorA',
-            'BuildSecurityDescriptorW', 'BuildTrusteeWithNameA', 'BuildTrusteeWithNameW',
-            'BuildTrusteeWithSidA', 'BuildTrusteeWithSidW',
-            'ConvertToAutoInheritPrivateObjectSecurity', 'CopySid', 'CreatePrivateObjectSecurity',
-            'CreatePrivateObjectSecurityEx', 'CreateRestrictedToken', 'DeleteAce',
-            'DestroyPrivateObjectSecurity', 'DuplicateToken', 'DuplicateTokenEx',
-            'EqualPrefixSid', 'EqualSid', 'FindFirstFreeAce', 'FreeSid', 'GetAce',
-            'GetAclInformation', 'GetAuditedPermissionsFromAclA', 'GetAuditedPermissionsFromAclW',
-            'GetEffectiveRightsFromAclA', 'GetEffectiveRightsFromAclW',
-            'GetExplicitEntriesFromAclA', 'GetExplicitEntriesFromAclW', 'GetFileSecurityA',
-            'GetFileSecurityW', 'GetKernelObjectSecurity', 'GetLengthSid', 'GetMultipleTrusteeA',
-            'GetMultipleTrusteeOperationA', 'GetMultipleTrusteeOperationW', 'GetMultipleTrusteeW',
-            'GetNamedSecurityInfoA', 'GetNamedSecurityInfoW', 'GetPrivateObjectSecurity',
-            'GetSecurityDescriptorControl', 'GetSecurityDescriptorDacl',
-            'GetSecurityDescriptorGroup', 'GetSecurityDescriptorLength',
-            'GetSecurityDescriptorOwner', 'GetSecurityDescriptorSacl', 'GetSecurityInfo',
-            'GetSidIdentifierAuthority', 'GetSidLengthRequired', 'GetSidSubAuthority',
-            'GetSidSubAuthorityCount', 'GetTokenInformation', 'GetTrusteeFormA',
-            'GetTrusteeFormW', 'GetTrusteeNameA', 'GetTrusteeNameW', 'GetTrusteeTypeA',
-            'GetTrusteeTypeW', 'GetUserObjectSecurity', 'ImpersonateLoggedOnUser',
-            'ImpersonateNamedPipeClient', 'ImpersonateSelf', 'InitializeAcl',
-            'InitializeSecurityDescriptor', 'InitializeSid', 'IsTokenRestricted', 'IsValidAcl',
-            'IsValidSecurityDescriptor', 'IsValidSid', 'LogonUserA', 'LogonUserW',
-            'LookupAccountNameA', 'LookupAccountNameW', 'LookupAccountSidA', 'LookupAccountSidW',
-            'LookupPrivilegeDisplayNameA', 'LookupPrivilegeDisplayNameW', 'LookupPrivilegeNameA',
-            'LookupPrivilegeNameW', 'LookupPrivilegeValueA', 'LookupPrivilegeValueW',
-            'LookupSecurityDescriptorPartsA', 'LookupSecurityDescriptorPartsW', 'MakeAbsoluteSD',
-            'MakeSelfRelativeSD', 'MapGenericMask', 'ObjectCloseAuditAlarmA',
-            'ObjectCloseAuditAlarmW', 'ObjectDeleteAuditAlarmA', 'ObjectDeleteAuditAlarmW',
-            'ObjectOpenAuditAlarmA', 'ObjectOpenAuditAlarmW', 'ObjectPrivilegeAuditAlarmA',
-            'ObjectPrivilegeAuditAlarmW', 'OpenProcessToken', 'OpenThreadToken', 'PrivilegeCheck',
-            'PrivilegedServiceAuditAlarmA', 'PrivilegedServiceAuditAlarmW', 'RevertToSelf',
-            'SetAclInformation', 'SetEntriesInAclA', 'SetEntriesInAclW', 'SetFileSecurityA',
-            'SetFileSecurityW', 'SetKernelObjectSecurity', 'SetNamedSecurityInfoA',
-            'SetNamedSecurityInfoW', 'SetPrivateObjectSecurity', 'SetPrivateObjectSecurityEx',
-            'SetSecurityDescriptorControl', 'SetSecurityDescriptorDacl',
-            'SetSecurityDescriptorGroup', 'SetSecurityDescriptorOwner',
-            'SetSecurityDescriptorSacl', 'SetSecurityInfo', 'SetThreadToken',
-            'SetTokenInformation', 'SetUserObjectSecurity', 'ChangeServiceConfig2A',
-            'ChangeServiceConfig2W', 'ChangeServiceConfigA', 'ChangeServiceConfigW',
-            'CloseServiceHandle', 'ControlService', 'CreateServiceA', 'CreateServiceW',
-            'DeleteService', 'EnumDependentServicesA', 'EnumDependentServicesW',
-            'EnumServicesStatusA', 'EnumServicesStatusW', 'GetServiceDisplayNameA',
-            'GetServiceDisplayNameW', 'GetServiceKeyNameA', 'GetServiceKeyNameW',
-            'LockServiceDatabase', 'NotifyBootConfigStatus', 'OpenSCManagerA', 'OpenSCManagerW',
-            'OpenServiceA', 'OpenServiceW', 'QueryServiceConfig2A', 'QueryServiceConfig2W',
-            'QueryServiceConfigA', 'QueryServiceConfigW', 'QueryServiceLockStatusA',
-            'QueryServiceLockStatusW', 'QueryServiceObjectSecurity', 'QueryServiceStatus',
-            'RegisterServiceCtrlHandlerA', 'RegisterServiceCtrlHandlerW',
-            'SetServiceObjectSecurity', 'SetServiceStatus', 'StartServiceA',
-            'StartServiceCtrlDispatcherA', 'StartServiceCtrlDispatcherW', 'StartServiceW',
-            'UnlockServiceDatabase',
-
-            'MultinetGetConnectionPerformanceA', 'MultinetGetConnectionPerformanceW',
-            'NetAlertRaise', 'NetAlertRaiseEx', 'NetApiBufferAllocate', 'NetApiBufferFree',
-            'NetApiBufferReallocate', 'NetApiBufferSize', 'NetConnectionEnum', 'NetFileClose',
-            'NetFileGetInfo', 'NetGetAnyDCName', 'NetGetDCName', 'NetGetDisplayInformationIndex',
-            'NetGroupAdd', 'NetGroupAddUser', 'NetGroupDel', 'NetGroupDelUser', 'NetGroupEnum',
-            'NetGroupGetInfo', 'NetGroupGetUsers', 'NetGroupSetInfo', 'NetGroupSetUsers',
-            'NetLocalGroupAdd', 'NetLocalGroupAddMember', 'NetLocalGroupAddMembers',
-            'NetLocalGroupDel', 'NetLocalGroupDelMember', 'NetLocalGroupDelMembers',
-            'NetLocalGroupEnum', 'NetLocalGroupGetInfo', 'NetLocalGroupGetMembers',
-            'NetLocalGroupSetInfo', 'NetLocalGroupSetMembers', 'NetMessageBufferSend',
-            'NetMessageNameAdd', 'NetMessageNameDel', 'NetMessageNameEnum',
-            'NetMessageNameGetInfo', 'NetQueryDisplayInformation', 'NetRemoteComputerSupports',
-            'NetRemoteTOd', 'NetReplExportDirAdd', 'NetReplExportDirDel', 'NetReplExportDirEnum',
-            'NetReplExportDirGetInfo', 'NetReplExportDirLock', 'NetReplExportDirSetInfo',
-            'NetReplExportDirUnlock', 'NetReplGetInfo', 'NetReplImportDirAdd',
-            'NetReplImportDirDel', 'NetReplImportDirEnum', 'NetReplImportDirGetInfo',
-            'NetReplImportDirLock', 'NetReplImportDirUnlock', 'NetReplSetInfo',
-            'NetScheduleJobAdd', 'NetScheduleJobDel', 'NetScheduleJobEnum',
-            'NetScheduleJobGetInfo', 'NetServerComputerNameAdd', 'NetServerComputerNameDel',
-            'NetServerDiskEnum', 'NetServerEnum', 'NetServerEnumEx', 'NetServerGetInfo',
-            'NetServerSetInfo', 'NetServerTransportAdd', 'NetServerTransportAddEx',
-            'NetServerTransportDel', 'NetServerTransportEnum', 'NetSessionDel', 'NetSessionEnum',
-            'NetSessionGetInfo', 'NetShareAdd', 'NetShareCheck', 'NetShareDel', 'NetShareEnum',
-            'NetShareGetInfo', 'NetShareSetInfo', 'NetStatisticsGet', 'NetUseAdd', 'NetUseDel',
-            'NetUseEnum', 'NetUseGetInfo', 'NetUserAdd', 'NetUserChangePassword', 'NetUserDel',
-            'NetUserEnum', 'NetUserGetGroups', 'NetUserGetInfo', 'NetUserGetLocalGroups',
-            'NetUserModalsGet', 'NetUserModalsSet', 'NetUserSetGroups', 'NetUserSetInfo',
-            'NetWkstaGetInfo', 'NetWkstaSetInfo', 'NetWkstaTransportAdd', 'NetWkstaTransportDel',
-            'NetWkstaTransportEnum', 'NetWkstaUserEnum', 'NetWkstaUserGetInfo',
-            'NetWkstaUserSetInfo', 'WNetAddConnection2A', 'WNetAddConnection2W',
-            'WNetAddConnection3A', 'WNetAddConnection3W', 'WNetAddConnectionA',
-            'WNetAddConnectionW', 'WNetCancelConnection2A', 'WNetCancelConnection2W',
-            'WNetCancelConnectionA', 'WNetCancelConnectionW', 'WNetCloseEnum',
-            'WNetConnectionDialog', 'WNetConnectionDialog1A', 'WNetConnectionDialog1W',
-            'WNetDisconnectDialog', 'WNetDisconnectDialog1A', 'WNetDisconnectDialog1W',
-            'WNetEnumResourceA', 'WNetEnumResourceW', 'WNetGetConnectionA', 'WNetGetConnectionW',
-            'WNetGetLastErrorA', 'WNetGetLastErrorW', 'WNetGetNetworkInformationA',
-            'WNetGetNetworkInformationW', 'WNetGetProviderNameA', 'WNetGetProviderNameW',
-            'WNetGetResourceInformationA', 'WNetGetResourceInformationW',
-            'WNetGetResourceParentA', 'WNetGetResourceParentW', 'WNetGetUniversalNameA',
-            'WNetGetUniversalNameW', 'WNetGetUserA', 'WNetGetUserW', 'WNetOpenEnumA',
-            'WNetOpenEnumW', 'WNetUseConnectionA', 'WnetUseConnectionW',
-
-            'accept', 'bind', 'closesocket', 'connect', 'gethostbyaddr', 'gethostbyname',
-            'gethostname', 'getpeername', 'getprotobyname', 'getprotobynumber', 'getservbyname',
-            'getservbyport', 'getsockname', 'getsockopt', 'htonl', 'htons', 'inet_addr',
-            'inet_ntoa', 'ioctlsocket', 'listen', 'ntohl', 'ntohs', 'recv', 'recvfrom', 'select',
-            'send', 'sendto', 'setsockopt', 'shutdown', 'socket', 'WSAAccept',
-            'WSAAddressToStringA', 'WSAAddressToStringW', 'WSAAsyncGetHostByAddr',
-            'WSAAsyncGetHostByName', 'WSAAsyncGetProtoByName', 'WSAAsyncGetProtoByNumber',
-            'WSAAsyncGetServByName', 'WSAAsyncGetServByPort', 'WSAAsyncSelect',
-            'WSACancelAsyncRequest', 'WSACancelBlockingCall', 'WSACleanup', 'WSACloseEvent',
-            'WSAConnect', 'WSACreateEvent', 'WSADuplicateSocketA', 'WSADuplicateSocketW',
-            'WSAEnumNameSpaceProvidersA', 'WSAEnumNameSpaceProvidersW', 'WSAEnumNetworkEvents',
-            'WSAEnumProtocolsA', 'WSAEnumProtocolsW', 'WSAEventSelect', 'WSAGetLastError',
-            'WSAGetOverlappedResult', 'WSAGetQOSByName', 'WSAGetServiceClassInfoA',
-            'WSAGetServiceClassInfoW', 'WSAGetServiceClassNameByClassIdA',
-            'WSAGetServiceClassNameByClassIdW', 'WSAHtonl', 'WSAHtons', 'WSAInstallServiceClassA',
-            'WSAInstallServiceClassW', 'WSAIoctl', 'WSAIsBlocking', 'WSAJoinLeaf',
-            'WSALookupServiceBeginA', 'WSALookupServiceBeginW', 'WSALookupServiceEnd',
-            'WSALookupServiceNextA', 'WSALookupServiceNextW', 'WSANtohl', 'WSANtohs',
-            'WSAProviderConfigChange', 'WSARecv', 'WSARecvDisconnect', 'WSARecvFrom',
-            'WSARemoveServiceClass', 'WSAResetEvent', 'WSASend', 'WSASendDisconnect', 'WSASendTo',
-            'WSASetBlockingHook', 'WSASetEvent', 'WSASetLastError', 'WSASetServiceA',
-            'WSASetServiceW', 'WSASocketA', 'WSASocketW', 'WSAStartup', 'WSAStringToAddressA',
-            'WSAStringToAddressW', 'WSAUnhookBlockingHook', 'WSAWaitForMultipleEvents',
-            'WSCDeinstallProvider', 'WSCEnableNSProvider', 'WSCEnumProtocols',
-            'WSCGetProviderPath', 'WSCInstallNameSpace', 'WSCInstallProvider',
-            'WSCUnInstallNameSpace',
-
-            'ContinueDebugEvent', 'DebugActiveProcess', 'DebugBreak', 'FatalExit',
-            'FlushInstructionCache', 'GetThreadContext', 'GetThreadSelectorEntry',
-            'IsDebuggerPresent', 'OutputDebugStringA', 'OutputDebugStringW', 'ReadProcessMemory',
-            'SetDebugErrorLevel', 'SetThreadContext', 'WaitForDebugEvent', 'WriteProcessMemory',
-
-            'CloseHandle', 'DuplicateHandle', 'GetHandleInformation', 'SetHandleInformation',
-
-            'AdjustWindowRect', 'AdjustWindowRectEx', 'AllowSetForegroundWindow',
-            'AnimateWindow', 'AnyPopup', 'ArrangeIconicWindows', 'BeginDeferWindowPos',
-            'BringWindowToTop', 'CascadeWindows', 'ChildWindowFromPoint',
-            'ChildWindowFromPointEx', 'CloseWindow', 'CreateWindowExA', 'CreateWindowExW',
-            'DeferWindowPos', 'DestroyWindow', 'EndDeferWindowPos', 'EnumChildWindows',
-            'EnumThreadWindows', 'EnumWindows', 'FindWindowA', 'FindWindowExA', 'FindWindowExW',
-            'FindWindowW', 'GetAltTabInfoA', 'GetAltTabInfoW', 'GetAncestor', 'GetClientRect',
-            'GetDesktopWindow', 'GetForegroundWindow', 'GetGUIThreadInfo', 'GetLastActivePopup',
-            'GetLayout', 'GetParent', 'GetProcessDefaultLayout', 'GetTitleBarInf', 'GetTopWindow',
-            'GetWindow', 'GetWindowInfo', 'GetWindowModuleFileNameA', 'GetWindowModuleFileNameW',
-            'GetWindowPlacement', 'GetWindowRect', 'GetWindowTextA', 'GetWindowTextLengthA',
-            'GetWindowTextLengthW', 'GetWindowTextW', 'GetWindowThreadProcessId', 'IsChild',
-            'IsIconic', 'IsWindow', 'IsWindowUnicode', 'IsWindowVisible', 'IsZoomed',
-            'LockSetForegroundWindow', 'MoveWindow', 'OpenIcon', 'RealChildWindowFromPoint',
-            'RealGetWindowClassA', 'RealGetWindowClassW', 'SetForegroundWindow',
-            'SetLayeredWindowAttributes', 'SetLayout', 'SetParent', 'SetProcessDefaultLayout',
-            'SetWindowPlacement', 'SetWindowPos', 'SetWindowTextA', 'SetWindowTextW',
-            'ShowOwnedPopups', 'ShowWindow', 'ShowWindowAsync', 'TileWindows',
-            'UpdateLayeredWindow', 'WindowFromPoint',
-
-            'CreateDialogIndirectParamA', 'CreateDialogIndirectParamW', 'CreateDialogParamA',
-            'CreateDialogParamW', 'DefDlgProcA', 'DefDlgProcW', 'DialogBoxIndirectParamA',
-            'DialogBoxIndirectParamW', 'DialogBoxParamA', 'DialogBoxParamW', 'EndDialog',
-            'GetDialogBaseUnits', 'GetDlgCtrlID', 'GetDlgItem', 'GetDlgItemInt',
-            'GetDlgItemTextA', 'GetDlgItemTextW', 'GetNextDlgGroupItem', 'GetNextDlgTabItem',
-            'IsDialogMessageA', 'IsDialogMessageW', 'MapDialogRect', 'MessageBoxA',
-            'MessageBoxExA', 'MessageBoxExW', 'MessageBoxIndirectA', 'MessageBoxIndirectW',
-            'MessageBoxW', 'SendDlgItemMessageA', 'SendDlgItemMessageW', 'SetDlgItemInt',
-            'SetDlgItemTextA', 'SetDlgItemTextW',
-
-            'GetWriteWatch', 'GlobalMemoryStatus', 'GlobalMemoryStatusEx', 'IsBadCodePtr',
-            'IsBadReadPtr', 'IsBadStringPtrA', 'IsBadStringPtrW', 'IsBadWritePtr',
-            'ResetWriteWatch', 'AllocateUserPhysicalPages', 'FreeUserPhysicalPages',
-            'MapUserPhysicalPages', 'MapUserPhysicalPagesScatter', 'GlobalAlloc', 'GlobalFlags',
-            'GlobalFree', 'GlobalHandle', 'GlobalLock', 'GlobalReAlloc', 'GlobalSize',
-            'GlobalUnlock', 'LocalAlloc', 'LocalFlags', 'LocalFree', 'LocalHandle', 'LocalLock',
-            'LocalReAlloc', 'LocalSize', 'LocalUnlock', 'GetProcessHeap', 'GetProcessHeaps',
-            'HeapAlloc', 'HeapCompact', 'HeapCreate', 'HeapDestroy', 'HeapFree', 'HeapLock',
-            'HeapReAlloc', 'HeapSize', 'HeapUnlock', 'HeapValidate', 'HeapWalk', 'VirtualAlloc',
-            'VirtualAllocEx', 'VirtualFree', 'VirtualFreeEx', 'VirtualLock', 'VirtualProtect',
-            'VirtualProtectEx', 'VirtualQuery', 'VirtualQueryEx', 'VirtualUnlock',
-            'GetFreeSpace', 'GlobalCompact', 'GlobalFix', 'GlobalUnfix', 'GlobalUnWire',
-            'GlobalWire', 'IsBadHugeReadPtr', 'IsBadHugeWritePtr', 'LocalCompact', 'LocalShrink',
-
-            'GetClassInfoA', 'GetClassInfoW', 'GetClassInfoExA', 'GetClassInfoExW',
-            'GetClassLongA', 'GetClassLongW', 'GetClassLongPtrA', 'GetClassLongPtrW',
-            'RegisterClassA', 'RegisterClassW', 'RegisterClassExA', 'RegisterClassExW',
-            'SetClassLongA', 'SetClassLongW', 'SetClassLongPtrA', 'SetClassLongPtrW',
-            'SetWindowLongA', 'SetWindowLongW', 'SetWindowLongPtrA', 'SetWindowLongPtrW',
-            'UnregisterClassA', 'UnregisterClassW', 'GetClassWord', 'GetWindowWord',
-            'SetClassWord', 'SetWindowWord'
-            ),
-        // Native API
-        6 => array(
-            'CsrAllocateCaptureBuffer', 'CsrAllocateCapturePointer', 'CsrAllocateMessagePointer',
-            'CsrCaptureMessageBuffer', 'CsrCaptureMessageString', 'CsrCaptureTimeout',
-            'CsrClientCallServer', 'CsrClientConnectToServer', 'CsrFreeCaptureBuffer',
-            'CsrIdentifyAlertableThread', 'CsrNewThread', 'CsrProbeForRead', 'CsrProbeForWrite',
-            'CsrSetPriorityClass',
-
-            'LdrAccessResource', 'LdrDisableThreadCalloutsForDll', 'LdrEnumResources',
-            'LdrFindEntryForAddress', 'LdrFindResource_U', 'LdrFindResourceDirectory_U',
-            'LdrGetDllHandle', 'LdrGetProcedureAddress', 'LdrInitializeThunk', 'LdrLoadDll',
-            'LdrProcessRelocationBlock', 'LdrQueryImageFileExecutionOptions',
-            'LdrQueryProcessModuleInformation', 'LdrShutdownProcess', 'LdrShutdownThread',
-            'LdrUnloadDll', 'LdrVerifyImageMatchesChecksum',
-
-            'NtAcceptConnectPort', 'ZwAcceptConnectPort', 'NtCompleteConnectPort',
-            'ZwCompleteConnectPort', 'NtConnectPort', 'ZwConnectPort', 'NtCreatePort',
-            'ZwCreatePort', 'NtImpersonateClientOfPort', 'ZwImpersonateClientOfPort',
-            'NtListenPort', 'ZwListenPort', 'NtQueryInformationPort', 'ZwQueryInformationPort',
-            'NtReadRequestData', 'ZwReadRequestData', 'NtReplyPort', 'ZwReplyPort',
-            'NtReplyWaitReceivePort', 'ZwReplyWaitReceivePort', 'NtReplyWaitReplyPort',
-            'ZwReplyWaitReplyPort', 'NtRequestPort', 'ZwRequestPort', 'NtRequestWaitReplyPort',
-            'ZwRequestWaitReplyPort', 'NtSecureConnectPort', 'ZwSecureConnectPort',
-            'NtWriteRequestData', 'ZwWriteRequestData',
-
-            'NtAccessCheck', 'ZwAccessCheck', 'NtAccessCheckAndAuditAlarm',
-            'ZwAccessCheckAndAuditAlarm', 'NtAccessCheckByType', 'ZwAccessCheckByType',
-            'NtAccessCheckByTypeAndAuditAlarm', 'ZwAccessCheckByTypeAndAuditAlarm',
-            'NtAccessCheckByTypeResultList', 'ZwAccessCheckByTypeResultList',
-            'NtAdjustGroupsToken', 'ZwAdjustGroupsToken', 'NtAdjustPrivilegesToken',
-            'ZwAdjustPrivilegesToken', 'NtCloseObjectAuditAlarm', 'ZwCloseObjectAuditAlarm',
-            'NtCreateToken', 'ZwCreateToken', 'NtDeleteObjectAuditAlarm',
-            'ZwDeleteObjectAuditAlarm', 'NtDuplicateToken', 'ZwDuplicateToken',
-            'NtFilterToken', 'ZwFilterToken', 'NtImpersonateThread', 'ZwImpersonateThread',
-            'NtOpenObjectAuditAlarm', 'ZwOpenObjectAuditAlarm', 'NtOpenProcessToken',
-            'ZwOpenProcessToken', 'NtOpenThreadToken', 'ZwOpenThreadToken', 'NtPrivilegeCheck',
-            'ZwPrivilegeCheck', 'NtPrivilegedServiceAuditAlarm', 'ZwPrivilegedServiceAuditAlarm',
-            'NtPrivilegeObjectAuditAlarm', 'ZwPrivilegeObjectAuditAlarm',
-            'NtQueryInformationToken', 'ZwQueryInformationToken', 'NtQuerySecurityObject',
-            'ZwQuerySecurityObject', 'NtSetInformationToken', 'ZwSetInformationToken',
-            'NtSetSecurityObject', 'ZwSetSecurityObject',
-
-            'NtAddAtom', 'ZwAddAtom', 'NtDeleteAtom', 'ZwDeleteAtom', 'NtFindAtom', 'ZwFindAtom',
-            'NtQueryInformationAtom', 'ZwQueryInformationAtom',
-
-            'NtAlertResumeThread', 'ZwAlertResumeThread', 'NtAlertThread', 'ZwAlertThread',
-            'NtCreateProcess', 'ZwCreateProcess', 'NtCreateThread', 'ZwCreateThread',
-            'NtCurrentTeb', 'NtDelayExecution', 'ZwDelayExecution', 'NtGetContextThread',
-            'ZwGetContextThread', 'NtOpenProcess', 'ZwOpenProcess', 'NtOpenThread',
-            'ZwOpenThread', 'NtQueryInformationProcess', 'ZwQueryInformationProcess',
-            'NtQueryInformationThread', 'ZwQueryInformationThread', 'NtQueueApcThread',
-            'ZwQueueApcThread', 'NtResumeThread', 'ZwResumeThread', 'NtSetContextThread',
-            'ZwSetContextThread', 'NtSetHighWaitLowThread', 'ZwSetHighWaitLowThread',
-            'NtSetInformationProcess', 'ZwSetInformationProcess', 'NtSetInformationThread',
-            'ZwSetInformationThread', 'NtSetLowWaitHighThread', 'ZwSetLowWaitHighThread',
-            'NtSuspendThread', 'ZwSuspendThread', 'NtTerminateProcess', 'ZwTerminateProcess',
-            'NtTerminateThread', 'ZwTerminateThread', 'NtTestAlert', 'ZwTestAlert',
-            'NtYieldExecution', 'ZwYieldExecution',
-
-            'NtAllocateVirtualMemory', 'ZwAllocateVirtualMemory', 'NtAllocateVirtualMemory64',
-            'ZwAllocateVirtualMemory64', 'NtAreMappedFilesTheSame', 'ZwAreMappedFilesTheSame',
-            'NtCreateSection', 'ZwCreateSection', 'NtExtendSection', 'ZwExtendSection',
-            'NtFlushVirtualMemory', 'ZwFlushVirtualMemory', 'NtFreeVirtualMemory',
-            'ZwFreeVirtualMemory', 'NtFreeVirtualMemory64', 'ZwFreeVirtualMemory64',
-            'NtLockVirtualMemory', 'ZwLockVirtualMemory', 'NtMapViewOfSection',
-            'ZwMapViewOfSection', 'NtMapViewOfVlmSection', 'ZwMapViewOfVlmSection',
-            'NtOpenSection', 'ZwOpenSection', 'NtProtectVirtualMemory', 'ZwProtectVirtualMemory',
-            'NtProtectVirtualMemory64', 'ZwProtectVirtualMemory64', 'NtQueryVirtualMemory',
-            'ZwQueryVirtualMemory', 'NtQueryVirtualMemory64', 'ZwQueryVirtualMemory64',
-            'NtReadVirtualMemory', 'ZwReadVirtualMemory', 'NtReadVirtualMemory64',
-            'ZwReadVirtualMemory64', 'NtUnlockVirtualMemory', 'ZwUnlockVirtualMemory',
-            'NtUnmapViewOfSection', 'ZwUnmapViewOfSection', 'NtUnmapViewOfVlmSection',
-            'ZwUnmapViewOfVlmSection', 'NtWriteVirtualMemory', 'ZwWriteVirtualMemory',
-            'NtWriteVirtualMemory64', 'ZwWriteVirtualMemory64',
-
-            'NtAssignProcessToJobObject', 'ZwAssignProcessToJobObject', 'NtCreateJobObject',
-            'ZwCreateJobObject', 'NtOpenJobObject', 'ZwOpenJobObject',
-            'NtQueryInformationJobObject', 'ZwQueryInformationJobObject',
-            'NtSetInformationJobObject', 'ZwSetInformationJobObject', 'NtTerminateJobObject',
-            'ZwTerminateJobObject',
-
-            'NtCancelIoFile', 'ZwCancelIoFile', 'NtCreateFile', 'ZwCreateFile',
-            'NtCreateIoCompletion', 'ZwCreateIoCompletion', 'NtDeleteFile', 'ZwDeleteFile',
-            'NtDeviceIoControlFile', 'ZwDeviceIoControlFile', 'NtFlushBuffersFile',
-            'ZwFlushBuffersFile', 'NtFsControlFile', 'ZwFsControlFile', 'NtLockFile', 'ZwLockFile',
-            'NtNotifyChangeDirectoryFile', 'ZwNotifyChangeDirectoryFile', 'NtOpenFile',
-            'ZwOpenFile', 'NtOpenIoCompletion', 'ZwOpenIoCompletion', 'NtQueryAttributesFile',
-            'ZwQueryAttributesFile', 'NtQueryDirectoryFile', 'ZwQueryDirectoryFile',
-            'NtQueryEaFile', 'ZwQueryEaFile', 'NtQueryIoCompletion', 'ZwQueryIoCompletion',
-            'NtQueryQuotaInformationFile', 'ZwQueryQuotaInformationFile',
-            'NtQueryVolumeInformationFile', 'ZwQueryVolumeInformationFile', 'NtReadFile',
-            'ZwReadFile', 'NtReadFile64', 'ZwReadFile64', 'NtReadFileScatter', 'ZwReadFileScatter',
-            'NtRemoveIoCompletion', 'ZwRemoveIoCompletion', 'NtSetEaFile', 'ZwSetEaFile',
-            'NtSetInformationFile', 'ZwSetInformationFile', 'NtSetIoCompletion',
-            'ZwSetIoCompletion', 'NtSetQuotaInformationFile', 'ZwSetQuotaInformationFile',
-            'NtSetVolumeInformationFile', 'ZwSetVolumeInformationFile', 'NtUnlockFile',
-            'ZwUnlockFile', 'NtWriteFile', 'ZwWriteFile', 'NtWriteFile64','ZwWriteFile64',
-            'NtWriteFileGather', 'ZwWriteFileGather', 'NtQueryFullAttributesFile',
-            'ZwQueryFullAttributesFile', 'NtQueryInformationFile', 'ZwQueryInformationFile',
-
-            'RtlAbortRXact', 'RtlAbsoluteToSelfRelativeSD', 'RtlAcquirePebLock',
-            'RtlAcquireResourceExclusive', 'RtlAcquireResourceShared', 'RtlAddAccessAllowedAce',
-            'RtlAddAccessDeniedAce', 'RtlAddAce', 'RtlAddActionToRXact', 'RtlAddAtomToAtomTable',
-            'RtlAddAttributeActionToRXact', 'RtlAddAuditAccessAce', 'RtlAddCompoundAce',
-            'RtlAdjustPrivilege', 'RtlAllocateAndInitializeSid', 'RtlAllocateHandle',
-            'RtlAllocateHeap', 'RtlAnsiCharToUnicodeChar', 'RtlAnsiStringToUnicodeSize',
-            'RtlAnsiStringToUnicodeString', 'RtlAppendAsciizToString', 'RtlAppendStringToString',
-            'RtlAppendUnicodeStringToString', 'RtlAppendUnicodeToString', 'RtlApplyRXact',
-            'RtlApplyRXactNoFlush', 'RtlAreAllAccessesGranted', 'RtlAreAnyAccessesGranted',
-            'RtlAreBitsClear', 'RtlAreBitsSet', 'RtlAssert', 'RtlCaptureStackBackTrace',
-            'RtlCharToInteger', 'RtlCheckRegistryKey', 'RtlClearAllBits', 'RtlClearBits',
-            'RtlClosePropertySet', 'RtlCompactHeap', 'RtlCompareMemory', 'RtlCompareMemoryUlong',
-            'RtlCompareString', 'RtlCompareUnicodeString', 'RtlCompareVariants',
-            'RtlCompressBuffer', 'RtlConsoleMultiByteToUnicodeN', 'RtlConvertExclusiveToShared',
-            'RtlConvertLongToLargeInteger', 'RtlConvertPropertyToVariant',
-            'RtlConvertSharedToExclusive', 'RtlConvertSidToUnicodeString',
-            'RtlConvertUiListToApiList', 'RtlConvertUlongToLargeInteger',
-            'RtlConvertVariantToProperty', 'RtlCopyLuid', 'RtlCopyLuidAndAttributesArray',
-            'RtlCopySecurityDescriptor', 'RtlCopySid', 'RtlCopySidAndAttributesArray',
-            'RtlCopyString', 'RtlCopyUnicodeString', 'RtlCreateAcl', 'RtlCreateAndSetSD',
-            'RtlCreateAtomTable', 'RtlCreateEnvironment', 'RtlCreateHeap',
-            'RtlCreateProcessParameters', 'RtlCreatePropertySet', 'RtlCreateQueryDebugBuffer',
-            'RtlCreateRegistryKey', 'RtlCreateSecurityDescriptor', 'RtlCreateTagHeap',
-            'RtlCreateUnicodeString', 'RtlCreateUnicodeStringFromAsciiz', 'RtlCreateUserProcess',
-            'RtlCreateUserSecurityObject', 'RtlCreateUserThread', 'RtlCustomCPToUnicodeN',
-            'RtlCutoverTimeToSystemTime', 'RtlDecompressBuffer', 'RtlDecompressFragment',
-            'RtlDelete', 'RtlDeleteAce', 'RtlDeleteAtomFromAtomTable', 'RtlDeleteCriticalSection',
-            'RtlDeleteElementGenericTable', 'RtlDeleteNoSplay', 'RtlDeleteRegistryValue',
-            'RtlDeleteResource', 'RtlDeleteSecurityObject', 'RtlDeNormalizeProcessParams',
-            'RtlDestroyAtomTable', 'RtlDestroyEnvironment', 'RtlDestroyHandleTable',
-            'RtlDestroyHeap', 'RtlDestroyProcessParameters', 'RtlDestroyQueryDebugBuffer',
-            'RtlDetermineDosPathNameType_U', 'RtlDoesFileExists_U', 'RtlDosPathNameToNtPathName_U',
-            'RtlDosSearchPath_U', 'RtlDowncaseUnicodeString', 'RtlDumpResource',
-            'RtlEmptyAtomTable', 'RtlEnlargedIntegerMultiply', 'RtlEnlargedUnsignedDivide',
-            'RtlEnlargedUnsignedMultiply', 'RtlEnterCriticalSection', 'RtlEnumerateGenericTable',
-            'RtlEnumerateGenericTableWithoutSplaying', 'RtlEnumerateProperties',
-            'RtlEnumProcessHeaps', 'RtlEqualComputerName', 'RtlEqualDomainName', 'RtlEqualLuid',
-            'RtlEqualPrefixSid', 'RtlEqualSid', 'RtlEqualString', 'RtlEqualUnicodeString',
-            'RtlEraseUnicodeString', 'RtlExpandEnvironmentStrings_U', 'RtlExtendedIntegerMultiply',
-            'RtlExtendedLargeIntegerDivide', 'RtlExtendedMagicDivide', 'RtlExtendHeap',
-            'RtlFillMemory', 'RtlFillMemoryUlong', 'RtlFindClearBits', 'RtlFindClearBitsAndSet',
-            'RtlFindLongestRunClear', 'RtlFindLongestRunSet', 'RtlFindMessage', 'RtlFindSetBits',
-            'RtlFindSetBitsAndClear', 'RtlFirstFreeAce', 'RtlFlushPropertySet',
-            'RtlFormatCurrentUserKeyPath', 'RtlFormatMessage', 'RtlFreeAnsiString',
-            'RtlFreeHandle', 'RtlFreeHeap', 'RtlFreeOemString', 'RtlFreeSid',
-            'RtlFreeUnicodeString', 'RtlFreeUserThreadStack', 'RtlGenerate8dot3Name', 'RtlGetAce',
-            'RtlGetCallersAddress', 'RtlGetCompressionWorkSpaceSize',
-            'RtlGetControlSecurityDescriptor', 'RtlGetCurrentDirectory_U',
-            'RtlGetDaclSecurityDescriptor', 'RtlGetElementGenericTable', 'RtlGetFullPathName_U',
-            'RtlGetGroupSecurityDescriptor', 'RtlGetLongestNtPathLength', 'RtlGetNtGlobalFlags',
-            'RtlGetNtProductType', 'RtlGetOwnerSecurityDescriptor', 'RtlGetProcessHeaps',
-            'RtlGetSaclSecurityDescriptor', 'RtlGetUserInfoHeap', 'RtlGuidToPropertySetName',
-            'RtlIdentifierAuthoritySid', 'RtlImageDirectoryEntryToData', 'RtlImageNtHeader',
-            'RtlImageRvaToSection', 'RtlImageRvaToVa', 'RtlImpersonateSelf', 'RtlInitAnsiString',
-            'RtlInitCodePageTable', 'RtlInitializeAtomPackage', 'RtlInitializeBitMap',
-            'RtlInitializeContext', 'RtlInitializeCriticalSection',
-            'RtlInitializeCriticalSectionAndSpinCount', 'RtlInitializeGenericTable',
-            'RtlInitializeHandleTable', 'RtlInitializeResource', 'RtlInitializeRXact',
-            'RtlInitializeSid', 'RtlInitNlsTables', 'RtlInitString', 'RtlInitUnicodeString',
-            'RtlInsertElementGenericTable', 'RtlIntegerToChar', 'RtlIntegerToUnicodeString',
-            'RtlIsDosDeviceName_U', 'RtlIsGenericTableEmpty', 'RtlIsNameLegalDOS8Dot3',
-            'RtlIsTextUnicode', 'RtlIsValidHandle', 'RtlIsValidIndexHandle', 'RtlLargeIntegerAdd',
-            'RtlLargeIntegerArithmeticShift', 'RtlLargeIntegerDivide', 'RtlLargeIntegerNegate',
-            'RtlLargeIntegerShiftLeft', 'RtlLargeIntegerShiftRight', 'RtlLargeIntegerSubtract',
-            'RtlLargeIntegerToChar', 'RtlLeaveCriticalSection', 'RtlLengthRequiredSid',
-            'RtlLengthSecurityDescriptor', 'RtlLengthSid', 'RtlLocalTimeToSystemTime',
-            'RtlLockHeap', 'RtlLookupAtomInAtomTable', 'RtlLookupElementGenericTable',
-            'RtlMakeSelfRelativeSD', 'RtlMapGenericMask', 'RtlMoveMemory',
-            'RtlMultiByteToUnicodeN', 'RtlMultiByteToUnicodeSize', 'RtlNewInstanceSecurityObject',
-            'RtlNewSecurityGrantedAccess', 'RtlNewSecurityObject', 'RtlNormalizeProcessParams',
-            'RtlNtStatusToDosError', 'RtlNumberGenericTableElements', 'RtlNumberOfClearBits',
-            'RtlNumberOfSetBits', 'RtlOemStringToUnicodeSize', 'RtlOemStringToUnicodeString',
-            'RtlOemToUnicodeN', 'RtlOnMappedStreamEvent', 'RtlOpenCurrentUser',
-            'RtlPcToFileHeader', 'RtlPinAtomInAtomTable', 'RtlpNtCreateKey',
-            'RtlpNtEnumerateSubKey', 'RtlpNtMakeTemporaryKey', 'RtlpNtOpenKey',
-            'RtlpNtQueryValueKey', 'RtlpNtSetValueKey', 'RtlPrefixString',
-            'RtlPrefixUnicodeString', 'RtlPropertySetNameToGuid', 'RtlProtectHeap',
-            'RtlpUnWaitCriticalSection', 'RtlpWaitForCriticalSection', 'RtlQueryAtomInAtomTable',
-            'RtlQueryEnvironmentVariable_U', 'RtlQueryInformationAcl',
-            'RtlQueryProcessBackTraceInformation', 'RtlQueryProcessDebugInformation',
-            'RtlQueryProcessHeapInformation', 'RtlQueryProcessLockInformation',
-            'RtlQueryProperties', 'RtlQueryPropertyNames', 'RtlQueryPropertySet',
-            'RtlQueryRegistryValues', 'RtlQuerySecurityObject', 'RtlQueryTagHeap',
-            'RtlQueryTimeZoneInformation', 'RtlRaiseException', 'RtlRaiseStatus', 'RtlRandom',
-            'RtlReAllocateHeap', 'RtlRealPredecessor', 'RtlRealSuccessor', 'RtlReleasePebLock',
-            'RtlReleaseResource', 'RtlRemoteCall', 'RtlResetRtlTranslations',
-            'RtlRunDecodeUnicodeString', 'RtlRunEncodeUnicodeString', 'RtlSecondsSince1970ToTime',
-            'RtlSecondsSince1980ToTime', 'RtlSelfRelativeToAbsoluteSD', 'RtlSetAllBits',
-            'RtlSetAttributesSecurityDescriptor', 'RtlSetBits', 'RtlSetCriticalSectionSpinCount',
-            'RtlSetCurrentDirectory_U', 'RtlSetCurrentEnvironment', 'RtlSetDaclSecurityDescriptor',
-            'RtlSetEnvironmentVariable', 'RtlSetGroupSecurityDescriptor', 'RtlSetInformationAcl',
-            'RtlSetOwnerSecurityDescriptor', 'RtlSetProperties', 'RtlSetPropertyNames',
-            'RtlSetPropertySetClassId', 'RtlSetSaclSecurityDescriptor', 'RtlSetSecurityObject',
-            'RtlSetTimeZoneInformation', 'RtlSetUnicodeCallouts', 'RtlSetUserFlagsHeap',
-            'RtlSetUserValueHeap', 'RtlSizeHeap', 'RtlSplay', 'RtlStartRXact',
-            'RtlSubAuthorityCountSid', 'RtlSubAuthoritySid', 'RtlSubtreePredecessor',
-            'RtlSubtreeSuccessor', 'RtlSystemTimeToLocalTime', 'RtlTimeFieldsToTime',
-            'RtlTimeToElapsedTimeFields', 'RtlTimeToSecondsSince1970', 'RtlTimeToSecondsSince1980',
-            'RtlTimeToTimeFields', 'RtlTryEnterCriticalSection', 'RtlUnicodeStringToAnsiSize',
-            'RtlUnicodeStringToAnsiString', 'RtlUnicodeStringToCountedOemString',
-            'RtlUnicodeStringToInteger', 'RtlUnicodeStringToOemSize',
-            'RtlUnicodeStringToOemString', 'RtlUnicodeToCustomCPN', 'RtlUnicodeToMultiByteN',
-            'RtlUnicodeToMultiByteSize', 'RtlUnicodeToOemN', 'RtlUniform', 'RtlUnlockHeap',
-            'RtlUnwind', 'RtlUpcaseUnicodeChar', 'RtlUpcaseUnicodeString',
-            'RtlUpcaseUnicodeStringToAnsiString', 'RtlUpcaseUnicodeStringToCountedOemString',
-            'RtlUpcaseUnicodeStringToOemString', 'RtlUpcaseUnicodeToCustomCPN',
-            'RtlUpcaseUnicodeToMultiByteN', 'RtlUpcaseUnicodeToOemN', 'RtlUpperChar',
-            'RtlUpperString', 'RtlUsageHeap', 'RtlValidAcl', 'RtlValidateHeap',
-            'RtlValidateProcessHeaps', 'RtlValidSecurityDescriptor', 'RtlValidSid', 'RtlWalkHeap',
-            'RtlWriteRegistryValue', 'RtlxAnsiStringToUnicodeSize', 'RtlxOemStringToUnicodeSize',
-            'RtlxUnicodeStringToAnsiSize', 'RtlxUnicodeStringToOemSize', 'RtlZeroHeap',
-            'RtlZeroMemory',
-
-            'NtCancelTimer', 'ZwCancelTimer', 'NtCreateTimer', 'ZwCreateTimer', 'NtGetTickCount',
-            'ZwGetTickCount', 'NtOpenTimer', 'ZwOpenTimer', 'NtQueryPerformanceCounter',
-            'ZwQueryPerformanceCounter', 'NtQuerySystemTime', 'ZwQuerySystemTime', 'NtQueryTimer',
-            'ZwQueryTimer', 'NtQueryTimerResolution', 'ZwQueryTimerResolution', 'NtSetSystemTime',
-            'ZwSetSystemTime', 'NtSetTimer', 'ZwSetTimer', 'NtSetTimerResolution',
-            'ZwSetTimerResolution',
-
-            'NtClearEvent', 'ZwClearEvent', 'NtCreateEvent', 'ZwCreateEvent', 'NtCreateEventPair',
-            'ZwCreateEventPair', 'NtCreateMutant', 'ZwCreateMutant', 'NtCreateSemaphore',
-            'ZwCreateSemaphore', 'NtOpenEvent', 'ZwOpenEvent', 'NtOpenEventPair',
-            'ZwOpenEventPair', 'NtOpenMutant', 'ZwOpenMutant', 'NtOpenSemaphore',
-            'ZwOpenSemaphore', 'NtPulseEvent', 'ZwPulseEvent', 'NtQueryEvent', 'ZwQueryEvent',
-            'NtQueryMutant', 'ZwQueryMutant', 'NtQuerySemaphore', 'ZwQuerySemaphore',
-            'NtReleaseMutant', 'ZwReleaseMutant', 'NtReleaseProcessMutant',
-            'ZwReleaseProcessMutant', 'NtReleaseSemaphore', 'ZwReleaseSemaphore',
-            'NtReleaseThreadMutant', 'ZwReleaseThreadMutant', 'NtResetEvent', 'ZwResetEvent',
-            'NtSetEvent', 'ZwSetEvent', 'NtSetHighEventPair', 'ZwSetHighEventPair',
-            'NtSetHighWaitLowEventPair', 'ZwSetHighWaitLowEventPair', 'NtSetLowEventPair',
-            'ZwSetLowEventPair', 'NtSetLowWaitHighEventPair', 'ZwSetLowWaitHighEventPair',
-            'NtSignalAndWaitForSingleObject', 'ZwSignalAndWaitForSingleObject',
-            'NtWaitForMultipleObjects', 'ZwWaitForMultipleObjects', 'NtWaitForSingleObject',
-            'ZwWaitForSingleObject', 'NtWaitHighEventPair', 'ZwWaitHighEventPair',
-            'NtWaitLowEventPair', 'ZwWaitLowEventPair',
-
-            'NtClose', 'ZwClose', 'NtCreateDirectoryObject', 'ZwCreateDirectoryObject',
-            'NtCreateSymbolicLinkObject', 'ZwCreateSymbolicLinkObject',
-            'NtDuplicateObject', 'ZwDuplicateObject', 'NtMakeTemporaryObject',
-            'ZwMakeTemporaryObject', 'NtOpenDirectoryObject', 'ZwOpenDirectoryObject',
-            'NtOpenSymbolicLinkObject', 'ZwOpenSymbolicLinkObject', 'NtQueryDirectoryObject',
-            'ZwQueryDirectoryObject', 'NtQueryObject', 'ZwQueryObject',
-            'NtQuerySymbolicLinkObject', 'ZwQuerySymbolicLinkObject', 'NtSetInformationObject',
-            'ZwSetInformationObject',
-
-            'NtContinue', 'ZwContinue', 'NtRaiseException', 'ZwRaiseException',
-            'NtRaiseHardError', 'ZwRaiseHardError', 'NtSetDefaultHardErrorPort',
-            'ZwSetDefaultHardErrorPort',
-
-            'NtCreateChannel', 'ZwCreateChannel', 'NtListenChannel', 'ZwListenChannel',
-            'NtOpenChannel', 'ZwOpenChannel', 'NtReplyWaitSendChannel', 'ZwReplyWaitSendChannel',
-            'NtSendWaitReplyChannel', 'ZwSendWaitReplyChannel', 'NtSetContextChannel',
-            'ZwSetContextChannel',
-
-            'NtCreateKey', 'ZwCreateKey', 'NtDeleteKey', 'ZwDeleteKey', 'NtDeleteValueKey',
-            'ZwDeleteValueKey', 'NtEnumerateKey', 'ZwEnumerateKey', 'NtEnumerateValueKey',
-            'ZwEnumerateValueKey', 'NtFlushKey', 'ZwFlushKey', 'NtInitializeRegistry',
-            'ZwInitializeRegistry', 'NtLoadKey', 'ZwLoadKey', 'NtLoadKey2', 'ZwLoadKey2',
-            'NtNotifyChangeKey', 'ZwNotifyChangeKey', 'NtOpenKey', 'ZwOpenKey', 'NtQueryKey',
-            'ZwQueryKey', 'NtQueryMultipleValueKey', 'ZwQueryMultipleValueKey',
-            'NtQueryMultiplValueKey', 'ZwQueryMultiplValueKey', 'NtQueryValueKey',
-            'ZwQueryValueKey', 'NtReplaceKey', 'ZwReplaceKey', 'NtRestoreKey', 'ZwRestoreKey',
-            'NtSaveKey', 'ZwSaveKey', 'NtSetInformationKey', 'ZwSetInformationKey',
-            'NtSetValueKey', 'ZwSetValueKey', 'NtUnloadKey', 'ZwUnloadKey',
-
-            'NtCreateMailslotFile', 'ZwCreateMailslotFile', 'NtCreateNamedPipeFile',
-            'ZwCreateNamedPipeFile', 'NtCreatePagingFile', 'ZwCreatePagingFile',
-
-            'NtCreateProfile', 'ZwCreateProfile', 'NtQueryIntervalProfile',
-            'ZwQueryIntervalProfile', 'NtRegisterThreadTerminatePort',
-            'ZwRegisterThreadTerminatePort', 'NtSetIntervalProfile', 'ZwSetIntervalProfile',
-            'NtStartProfile', 'ZwStartProfile', 'NtStopProfile', 'ZwStopProfile',
-            'NtSystemDebugControl', 'ZwSystemDebugControl',
-
-            'NtEnumerateBus', 'ZwEnumerateBus', 'NtFlushInstructionCache',
-            'ZwFlushInstructionCache', 'NtFlushWriteBuffer', 'ZwFlushWriteBuffer',
-            'NtSetLdtEntries', 'ZwSetLdtEntries',
-
-            'NtGetPlugPlayEvent', 'ZwGetPlugPlayEvent', 'NtPlugPlayControl', 'ZwPlugPlayControl',
-
-            'NtInitiatePowerAction', 'ZwInitiatePowerAction', 'NtPowerInformation',
-            'ZwPowerInformation', 'NtRequestWakeupLatency', 'ZwRequestWakeupLatency',
-            'NtSetSystemPowerState', 'ZwSetSystemPowerState', 'NtSetThreadExecutionState',
-            'ZwSetThreadExecutionState',
-
-            'NtLoadDriver', 'ZwLoadDriver', 'NtRegisterNewDevice', 'ZwRegisterNewDevice',
-            'NtUnloadDriver', 'ZwUnloadDriver',
-
-            'NtQueryDefaultLocale', 'ZwQueryDefaultLocale', 'NtQueryDefaultUILanguage',
-            'ZwQueryDefaultUILanguage', 'NtQuerySystemEnvironmentValue',
-            'ZwQuerySystemEnvironmentValue', 'NtSetDefaultLocale', 'ZwSetDefaultLocale',
-            'NtSetDefaultUILanguage', 'ZwSetDefaultUILanguage', 'NtSetSystemEnvironmentValue',
-            'ZwSetSystemEnvironmentValue',
-
-            'DbgBreakPoint', 'DbgPrint', 'DbgPrompt', 'DbgSsHandleKmApiMsg', 'DbgSsInitialize',
-            'DbgUiConnectToDbg', 'DbgUiContinue', 'DbgUiWaitStateChange', 'DbgUserBreakPoint',
-            'KiRaiseUserExceptionDispatcher', 'KiUserApcDispatcher', 'KiUserCallbackDispatcher',
-            'KiUserExceptionDispatcher', 'NlsAnsiCodePage', 'NlsMbCodePageTag',
-            'NlsMbOemCodePageTag', 'NtAllocateLocallyUniqueId', 'ZwAllocateLocallyUniqueId',
-            'NtAllocateUuids', 'ZwAllocateUuids', 'NtCallbackReturn', 'ZwCallbackReturn',
-            'NtDisplayString', 'ZwDisplayString', 'NtQueryOleDirectoryFile',
-            'ZwQueryOleDirectoryFile', 'NtQuerySection', 'ZwQuerySection',
-            'NtQuerySystemInformation', 'ZwQuerySystemInformation', 'NtSetSystemInformation',
-            'ZwSetSystemInformation', 'NtShutdownSystem', 'ZwShutdownSystem', 'NtVdmControl',
-            'ZwVdmControl', 'NtW32Call', 'ZwW32Call', 'PfxFindPrefix', 'PfxInitialize',
-            'PfxInsertPrefix', 'PfxRemovePrefix', 'PropertyLengthAsVariant', 'RestoreEm87Context',
-            'SaveEm87Context'
-            )
-        ),
-    'SYMBOLS' => array(
-        '(', ')', '{', '}', '[', ']',
-        '+', '-', '*', '/', '%',
-        '=', '<', '>',
-        '!', '^', '&', '|',
-        '?', ':',
-        ';', ','
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => true,
-        2 => true,
-        3 => true,
-        4 => true,
-        5 => true,
-        6 => true
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #b1b100;',
-            2 => 'color: #000000; font-weight: bold;',
-            3 => 'color: #000066;',
-            4 => 'color: #993333;',
-            5 => 'color: #4000dd;',
-            6 => 'color: #4000dd;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #666666; font-style: italic;',
-            2 => 'color: #339933;',
-            'MULTI' => 'color: #808080; 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: #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(
-            1 => 'color: #202020;',
-            2 => 'color: #202020;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #339933;'
-            ),
-        'REGEXPS' => array(
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => 'http://www.opengroup.org/onlinepubs/009695399/functions/{FNAMEL}.html',
-        4 => '',
-        5 => 'http://www.google.com/search?q={FNAMEL}+msdn.microsoft.com',
-        6 => 'http://www.google.com/search?q={FNAMEL}+msdn.microsoft.com'
-        ),
-    'OOLANG' => true,
-    'OBJECT_SPLITTERS' => array(
-        1 => '.',
-        2 => '::'
-        ),
-    'REGEXPS' => array(
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        ),
-    'TAB_WIDTH' => 4
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/caddcl.php b/wiki/vendor/geshi/geshi/src/geshi/caddcl.php
deleted file mode 100644
index 6a205f9..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/caddcl.php
+++ /dev/null
@@ -1,124 +0,0 @@
-<?php
-/*************************************************************************************
- * caddcl.php
- * ----------
- * Author: Roberto Rossi (rsoftware@altervista.org)
- * Copyright: (c) 2004 Roberto Rossi (http://rsoftware.altervista.org), Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.9.0
- * Date Started: 2004/08/30
- *
- * CAD DCL (Dialog Control Language) language file for GeSHi.
- *
- * DCL for AutoCAD 12 or later and IntelliCAD all versions.
- *
- * CHANGES
- * -------
- * 2004/11/27 (1.0.1)
- *  -  Added support for multiple object splitters
- * 2004/1!/27 (1.0.0)
- *  -  First Release
- *
- * TODO (updated 2004/11/27)
- * -------------------------
- *
- *************************************************************************************
- *
- *     This file is part of GeSHi.
- *
- *   GeSHi is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   GeSHi is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with GeSHi; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- ************************************************************************************/
-
-$language_data = array (
-    'LANG_NAME' => 'CAD DCL',
-    'COMMENT_SINGLE' => array(1 => '//'),
-    'COMMENT_MULTI' => array('/*' => '*/'),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array('"'),
-    'ESCAPE_CHAR' => '\\',
-    'KEYWORDS' => array(
-        1 => array(
-            'boxed_column','boxed_radio_column','boxed_radio_row','boxed_row',
-            'column','concatenation','button','dialog','edit_box','image','image_button',
-            'errtile','list_box','ok_cancel','ok_cancel_help','ok_cancel_help_errtile',
-            'ok_cancel_help_info','ok_only','paragraph','popup_list','radio_button',
-            'radio_column','radio_row','row','slider','spacer','spacer_0','spacer_1','text',
-            'text_part','toggle',
-            'action','alignment','allow_accept','aspect_ratio','big_increment',
-            'children_alignment','children_fixed_height',
-            'children_fixed_width','color',
-            'edit_limit','edit_width','fixed_height','fixed_width',
-            'height','initial_focus','is_cancel','is_default',
-            'is_enabled','is_tab_stop','is-bold','key','label','layout','list',
-            'max_value','min_value','mnemonic','multiple_select','password_char',
-            'small_increment','tabs','tab_truncate','value','width',
-            'false','true','left','right','centered','top','bottom',
-            'dialog_line','dialog_foreground','dialog_background',
-            'graphics_background','black','red','yellow','green','cyan',
-            'blue','magenta','whitegraphics_foreground',
-            'horizontal','vertical'
-            )
-        ),
-    'SYMBOLS' => array(
-        '(', ')', '{', '}', '[', ']', '=', '+', '-', '*', '/', '!', '%', '^', '&', ':'
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #b1b100;'
-            ),
-        '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: #66cc66;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #ff0000;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #cc66cc;'
-            ),
-        'METHODS' => array(
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #66cc66;'
-            ),
-        'REGEXPS' => array(
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => ''
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(
-        ),
-    'REGEXPS' => array(
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/cadlisp.php b/wiki/vendor/geshi/geshi/src/geshi/cadlisp.php
deleted file mode 100644
index 97ac8ed..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/cadlisp.php
+++ /dev/null
@@ -1,184 +0,0 @@
-<?php
-/*************************************************************************************
- * cadlisp.php
- * -----------
- * 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.9.0
- * Date Started: 2004/08/30
- *
- * AutoCAD/IntelliCAD Lisp language file for GeSHi.
- *
- * For AutoCAD V.12..2005 and IntelliCAD all versions.
- *
- * CHANGES
- * -------
- * 2004/11/27 (1.0.1)
- *  -  Added support for multiple object splitters
- * 2004/10/27 (1.0.0)
- *  -  First Release
- *
- * TODO (updated 2004/11/27)
- * -------------------------
- *
- *************************************************************************************
- *
- *     This file is part of GeSHi.
- *
- *   GeSHi is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   GeSHi is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with GeSHi; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- ************************************************************************************/
-
-$language_data = array (
-    'LANG_NAME' => 'CAD Lisp',
-    'COMMENT_SINGLE' => array(1 => ";"),
-    'COMMENT_MULTI' => array(";|" => "|;"),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array('"'),
-    'ESCAPE_CHAR' => '\\',
-    'KEYWORDS' => array(
-        1 => array(
-            'abs','acad_colordlg','acad_helpdlg','acad_strlsort','action_tile',
-            'add_list','alert','alloc','and','angle','angtof','angtos','append','apply',
-            'arx','arxload','arxunload','ascii','assoc','atan','atof','atoi','atom',
-            'atoms-family','autoarxload','autoload','Boole','boundp','caddr',
-            'cadr','car','cdr','chr','client_data_tile','close','command','cond',
-            'cons','cos','cvunit','defun','defun-q','defun-q-list-ref',
-            'defun-q-list-set','dictadd','dictnext','dictremove','dictrename',
-            'dictsearch','dimx_tile','dimy_tile','distance','distof','done_dialog',
-            'end_image','end_list','entdel','entget','entlast','entmake',
-            'entmakex','entmod','entnext','entsel','entupd','eq','equal','eval','exit',
-            'exp','expand','expt','fill_image','findfile','fix','float','foreach','function',
-            'gc','gcd','get_attr','get_tile','getangle','getcfg','getcname','getcorner',
-            'getdist','getenv','getfiled','getint','getkword','getorient','getpoint',
-            'getreal','getstring','getvar','graphscr','grclear','grdraw','grread','grtext',
-            'grvecs','handent','help','if','initdia','initget','inters','itoa','lambda','last',
-            'layoutlist','length','list','listp','load','load_dialog','log','logand','logior',
-            'lsh','mapcar','max','mem','member','menucmd','menugroup','min','minusp','mode_tile',
-            'namedobjdict','nentsel','nentselp','new_dialog','nil','not','nth','null',
-            'numberp','open','or','osnap','polar','prin1','princ','print','progn','prompt',
-            'quit','quote','read','read-char','read-line','redraw','regapp','rem','repeat',
-            'reverse','rtos','set','set_tile','setcfg','setenv','setfunhelp','setq','setvar',
-            'setview','sin','slide_image','snvalid','sqrt','ssadd','ssdel','ssget','ssgetfirst',
-            'sslength','ssmemb','ssname','ssnamex','sssetfirst','start_dialog','start_image',
-            'start_list','startapp','strcase','strcat','strlen','subst','substr','t','tablet',
-            'tblnext','tblobjname','tblsearch','term_dialog','terpri','textbox','textpage',
-            'textscr','trace','trans','type','unload_dialog','untrace','vector_image','ver',
-            'vports','wcmatch','while','write-char','write-line','xdroom','xdsize','zerop',
-            'vl-acad-defun','vl-acad-undefun','vl-arx-import','vlax-3D-point',
-            'vlax-add-cmd','vlax-create-object','vlax-curve-getArea',
-            'vlax-curve-getClosestPointTo','vlax-curve-getClosestPointToProjection',
-            'vlax-curve-getDistAtParam','vlax-curve-getDistAtPoint',
-            'vlax-curve-getEndParam','vlax-curve-getEndPoint',
-            'vlax-curve-getFirstDeriv','vlax-curve-getParamAtDist',
-            'vlax-curve-getParamAtPoint','vlax-curve-getPointAtDist',
-            'vlax-curve-getPointAtParam','vlax-curve-getSecondDeriv',
-            'vlax-curve-getStartParam','vlax-curve-getStartPoint',
-            'vlax-curve-isClosed','vlax-curve-isPeriodic','vlax-curve-isPlanar',
-            'vlax-dump-object','vlax-erased-p','vlax-for','vlax-get-acad-object',
-            'vlax-get-object','vlax-get-or-create-object','vlax-get-property',
-            'vlax-import-type-library','vlax-invoke-method','vlax-ldata-delete',
-            'vlax-ldata-get','vlax-ldata-list','vlax-ldata-put','vlax-ldata-test',
-            'vlax-make-safearray','vlax-make-variant','vlax-map-collection',
-            'vlax-method-applicable-p','vlax-object-released-p','vlax-product-key',
-            'vlax-property-available-p','vlax-put-property','vlax-read-enabled-p',
-            'vlax-release-object','vlax-remove-cmd','vlax-safearray-fill',
-            'vlax-safearray-get-dim','vlax-safearray-get-element',
-            'vlax-safearray-get-l-bound','vlax-safearray-get-u-bound',
-            'vlax-safearray-put-element','vlax-safearray-type','vlax-tmatrix',
-            'vlax-typeinfo-available-p','vlax-variant-change-type',
-            'vlax-variant-type','vlax-variant-value','vlax-write-enabled-p',
-            'vl-bb-ref','vl-bb-set','vl-catch-all-apply','vl-catch-all-error-message',
-            'vl-catch-all-error-p','vl-cmdf','vl-consp','vl-directory-files','vl-doc-export',
-            'vl-doc-import','vl-doc-ref','vl-doc-set','vl-every','vl-exit-with-error',
-            'vl-exit-with-value','vl-file-copy','vl-file-delete','vl-file-directory-p',
-            'vl-filename-base','vl-filename-directory','vl-filename-extension',
-            'vl-filename-mktemp','vl-file-rename','vl-file-size','vl-file-systime',
-            'vl-get-resource','vlisp-compile','vl-list-exported-functions',
-            'vl-list-length','vl-list-loaded-vlx','vl-load-all','vl-load-com',
-            'vl-load-reactors','vl-member-if','vl-member-if-not','vl-position',
-            'vl-prin1-to-string','vl-princ-to-string','vl-propagate','vlr-acdb-reactor',
-            'vlr-add','vlr-added-p','vlr-beep-reaction','vlr-command-reactor',
-            'vlr-current-reaction-name','vlr-data','vlr-data-set',
-            'vlr-deepclone-reactor','vlr-docmanager-reactor','vlr-dwg-reactor',
-            'vlr-dxf-reactor','vlr-editor-reactor','vl-registry-delete',
-            'vl-registry-descendents','vl-registry-read','vl-registry-write',
-            'vl-remove','vl-remove-if','vl-remove-if-not','vlr-insert-reactor',
-            'vlr-linker-reactor','vlr-lisp-reactor','vlr-miscellaneous-reactor',
-            'vlr-mouse-reactor','vlr-notification','vlr-object-reactor',
-            'vlr-owner-add','vlr-owner-remove','vlr-owners','vlr-pers','vlr-pers-list',
-            'vlr-pers-p','vlr-pers-release','vlr-reaction-names','vlr-reactions',
-            'vlr-reaction-set','vlr-reactors','vlr-remove','vlr-remove-all',
-            'vlr-set-notification','vlr-sysvar-reactor','vlr-toolbar-reactor',
-            'vlr-trace-reaction','vlr-type','vlr-types','vlr-undo-reactor',
-            'vlr-wblock-reactor','vlr-window-reactor','vlr-xref-reactor',
-            'vl-some','vl-sort','vl-sort-i','vl-string-elt','vl-string-left-trim',
-            'vl-string-mismatch','vl-string-position','vl-string-right-trim',
-            'vl-string-search','vl-string-subst','vl-string-translate','vl-string-trim',
-            'vl-symbol-name','vl-symbolp','vl-symbol-value','vl-unload-vlx','vl-vbaload',
-            'vl-vbarun','vl-vlx-loaded-p'
-            )
-        ),
-    'SYMBOLS' => array(
-        '(', ')', '{', '}', '[', ']', '!', '%', '^', '&', '/','+','-','*','=','<','>'
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #b1b100;'
-            ),
-        '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: #66cc66;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #ff0000;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #cc66cc;'
-            ),
-        'METHODS' => array(
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #66cc66;'
-            ),
-        'REGEXPS' => array(
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => ''
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(
-        ),
-    'REGEXPS' => array(
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/ceylon.php b/wiki/vendor/geshi/geshi/src/geshi/ceylon.php
deleted file mode 100644
index 1c806d3..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/ceylon.php
+++ /dev/null
@@ -1,171 +0,0 @@
-<?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/wiki/vendor/geshi/geshi/src/geshi/cfdg.php b/wiki/vendor/geshi/geshi/src/geshi/cfdg.php
deleted file mode 100644
index 7ad658d..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/cfdg.php
+++ /dev/null
@@ -1,122 +0,0 @@
-<?php
-/*************************************************************************************
- * cfdg.php
- * --------
- * Author: John Horigan <john@glyphic.com>
- * Copyright: (c) 2006 John Horigan http://www.ozonehouse.com/john/
- * Release Version: 1.0.9.0
- * Date Started: 2006/03/11
- *
- * CFDG language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2006/03/11 (1.0.0)
- *  -  First Release
- *
- * TODO (updated 2006/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' => 'CFDG',
-    'COMMENT_SINGLE' => array(1 => '//', 2 => '#'),
-    'COMMENT_MULTI' => array('/*' => '*/'),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array("'", '"'),
-    'ESCAPE_CHAR' => '',
-    'KEYWORDS' => array(
-        1 => array(
-            'include', 'startshape', 'rule', 'background'
-            ),
-        2 => array(
-            'SQUARE', 'CIRCLE', 'TRIANGLE',
-            ),
-        3 => array(
-            'b','brightness','h','hue','sat','saturation',
-            'a','alpha','x','y','z','s','size',
-            'r','rotate','f','flip','skew','xml_set_object'
-            )
-        ),
-    'SYMBOLS' => array(
-        '[', ']', '{', '}', '*', '|'
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false,
-        2 => false,
-        3 => false,
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #717100;',
-            2 => 'color: #000000; font-weight: bold;',
-            3 => 'color: #006666;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #808080; font-style: italic;',
-            2 => 'color: #808080; font-style: italic;',
-            'MULTI' => 'color: #808080; font-style: italic;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #000099; font-weight: bold;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #66cc66;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #ff0000;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #cc66cc;'
-            ),
-        'METHODS' => array(
-            1 => 'color: #006600;',
-            2 => 'color: #006600;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #66cc66;'
-            ),
-        'REGEXPS' => array(
-            ),
-        'SCRIPT' => array(
-            0 => '',
-            1 => '',
-            2 => '',
-            3 => ''
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => ''
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(),
-    'REGEXPS' => array(
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/cfm.php b/wiki/vendor/geshi/geshi/src/geshi/cfm.php
deleted file mode 100644
index 7f98c33..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/cfm.php
+++ /dev/null
@@ -1,297 +0,0 @@
-<?php
-/*************************************************************************************
- * cfm.php
- * -------
- * Author: Diego
- * Copyright: (c) 2006 Diego
- * Release Version: 1.0.9.0
- * Date Started: 2006/02/25
- *
- * ColdFusion language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2006/02/25 (1.0.0)
- *   -  First Release
- *
- * TODO (updated 2006/02/25)
- * -------------------------
- *
- *************************************************************************************
- *
- *     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' => 'ColdFusion',
-    'COMMENT_SINGLE' => array(1 => '//'),
-    'COMMENT_MULTI' => array('/*' => '*/'),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array("'", '"'),
-    'ESCAPE_CHAR' => '\\',
-    'KEYWORDS' => array(
-        /* CFM Tags */
-        1 => array(
-            'cfabort', 'cfapplet', 'cfapplication', 'cfargument', 'cfassociate',
-            'cfbreak', 'cfcache', 'cfcase', 'cfcatch', 'cfchart', 'cfchartdata',
-            'cfchartseries', 'cfcol', 'cfcollection', 'cfcomponent',
-            'cfcontent', 'cfcookie', 'cfdefaultcase', 'cfdirectory',
-            'cfdocument', 'cfdocumentitem', 'cfdocumentsection', 'cfdump',
-            'cfelse', 'cfelseif', 'cferror', 'cfexecute', 'cfexit', 'cffile',
-            'cfflush', 'cfform', 'cfformgroup', 'cfformitem', 'cfftp',
-            'cffunction', 'cfgrid', 'cfgridcolumn', 'cfgridrow', 'cfgridupdate',
-            'cfheader', 'cfhtmlhead', 'cfhttp', 'cfhttpparam', 'cfif',
-            'cfimport', 'cfinclude', 'cfindex', 'cfinput', 'cfinsert',
-            'cfinvoke', 'cfinvokeargument', 'cfldap', 'cflocation', 'cflock',
-            'cflog', 'cflogin', 'cfloginuser', 'cflogout', 'cfloop', 'cfmail',
-            'cfmailparam', 'cfmailpart', 'cfmodule', 'cfNTauthenticate',
-            'cfobject', 'cfobjectcache', 'cfoutput', 'cfparam', 'cfpop',
-            'cfprocessingdirective', 'cfprocparam',
-            'cfprocresult', 'cfproperty', 'cfquery', 'cfqueryparam',
-            'cfregistry', 'cfreport', 'cfreportparam', 'cfrethrow', 'cfreturn',
-            'cfsavecontent', 'cfschedule', 'cfscript', 'cfsearch', 'cfselect',
-            'cfset', 'cfsetting', 'cfsilent', 'cfstoredproc',
-            'cfswitch', 'cftable', 'cftextarea', 'cfthrow', 'cftimer',
-            'cftrace', 'cftransaction', 'cftree', 'cftreeitem', 'cftry',
-            'cfupdate', 'cfwddx'
-            ),
-        /* HTML Tags */
-        2 => array(
-            'a', 'abbr', 'acronym', 'address', 'applet',
-
-            'base', 'basefont', 'bdo', 'big', 'blockquote', 'body', 'br', 'button', 'b',
-
-            'caption', 'center', 'cite', 'code', 'colgroup', 'col',
-
-            'dd', 'del', 'dfn', 'dir', 'div', 'dl', 'dt',
-
-            'em',
-
-            'fieldset', 'font', 'form', 'frame', 'frameset',
-
-            'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'hr', 'html',
-
-            'iframe', 'ilayer', 'img', 'input', 'ins', 'isindex', 'i',
-
-            'kbd',
-
-            'label', 'legend', 'link', 'li',
-
-            'map', 'meta',
-
-            'noframes', 'noscript',
-
-            'object', 'ol', 'optgroup', 'option',
-
-            'param', 'pre', 'p',
-
-            'q',
-
-            'samp', 'script', 'select', 'small', 'span', 'strike', 'strong', 'style', 'sub', 'sup', 's',
-
-            'table', 'tbody', 'td', 'textarea', 'text', 'tfoot', 'thead', 'th', 'title', 'tr', 'tt',
-
-            'ul', 'u',
-
-            'var',
-            ),
-        /* HTML attributes */
-        3 => array(
-            'abbr', 'accept-charset', 'accept', 'accesskey', 'action', 'align', 'alink', 'alt', 'archive', 'axis',
-            'background', 'bgcolor', 'border',
-            'cellpadding', 'cellspacing', 'char', 'charoff', 'charset', 'checked', 'cite', 'class', 'classid', 'clear', 'code', 'codebase', 'codetype', 'color', 'cols', 'colspan', 'compact', 'content', 'coords',
-            'data', 'datetime', 'declare', 'defer', 'dir', 'disabled',
-            'enctype',
-            'face', 'for', 'frame', 'frameborder',
-            'headers', 'height', 'href', 'hreflang', 'hspace', 'http-equiv',
-            'id', 'ismap',
-            'label', 'lang', 'language', 'link', 'longdesc',
-            'marginheight', 'marginwidth', 'maxlength', 'media', 'method', 'multiple',
-            'name', 'nohref', 'noresize', 'noshade', 'nowrap',
-            'object', 'onblur', 'onchange', 'onclick', 'ondblclick', 'onfocus', 'onkeydown', 'onkeypress', 'onkeyup', 'onload', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'onreset', 'onselect', 'onsubmit', 'onunload',
-            'profile', 'prompt',
-            'readonly', 'rel', 'rev', 'rowspan', 'rows', 'rules',
-            'scheme', 'scope', 'scrolling', 'selected', 'shape', 'size', 'span', 'src', 'standby', 'start', 'style', 'summary',
-            'tabindex', 'target', 'text', 'title', 'type',
-            'usemap',
-            'valign', 'value', 'valuetype', 'version', 'vlink', 'vspace',
-            'width'
-            ),
-        /* CFM Script delimeters */
-        4 => array(
-            'var', 'function', 'while', 'if','else'
-            ),
-        /* CFM Functions */
-        5 => array(
-            'Abs', 'GetFunctionList', 'LSTimeFormat','ACos','GetGatewayHelper','LTrim','AddSOAPRequestHeader','GetHttpRequestData',
-            'Max','AddSOAPResponseHeader','GetHttpTimeString','Mid','ArrayAppend','GetLocale','Min','ArrayAvg','GetLocaleDisplayName',
-            'Minute','ArrayClear','GetMetaData','Month','ArrayDeleteAt','GetMetricData','MonthAsString','ArrayInsertAt','GetPageContext',
-            'Now','ArrayIsEmpty','GetProfileSections','NumberFormat','ArrayLen','GetProfileString','ParagraphFormat','ArrayMax',
-            'GetLocalHostIP','ParseDateTime','ArrayMin','GetSOAPRequest','Pi','ArrayNew','GetSOAPRequestHeader','PreserveSingleQuotes',
-            'ArrayPrepend','GetSOAPResponse','Quarter','ArrayResize','GetSOAPResponseHeader','QueryAddColumn','ArraySet',
-            'GetTempDirectory','QueryAddRow','ArraySort','QueryNew','ArraySum','GetTempFile','QuerySetCell',
-            'ArraySwap','GetTickCount','QuotedValueList','ArrayToList','GetTimeZoneInfo','Rand','Asc','GetToken','Randomize',
-            'ASin','Hash','RandRange','Atn','Hour','REFind','BinaryDecode','HTMLCodeFormat','REFindNoCase','BinaryEncode',
-            'HTMLEditFormat','ReleaseComObject','BitAnd','IIf','RemoveChars','BitMaskClear','IncrementValue','RepeatString',
-            'BitMaskRead','InputBaseN','Replace','BitMaskSet','Insert','ReplaceList','BitNot','Int','ReplaceNoCase','BitOr',
-            'IsArray','REReplace','BitSHLN','IsBinary','REReplaceNoCase','BitSHRN','IsBoolean','Reverse','BitXor','IsCustomFunction',
-            'Right','Ceiling','IsDate','RJustify','CharsetDecode','IsDebugMode','Round','CharsetEncode','IsDefined','RTrim',
-            'Chr','IsLeapYear','Second','CJustify','IsLocalHost','SendGatewayMessage','Compare','IsNumeric','SetEncoding',
-            'CompareNoCase','IsNumericDate','SetLocale','Cos','IsObject','SetProfileString','CreateDate','IsQuery','SetVariable',
-            'CreateDateTime','IsSimpleValue','Sgn','CreateObject','IsSOAPRequest','Sin','CreateODBCDate','IsStruct','SpanExcluding',
-            'CreateODBCDateTime','IsUserInRole','SpanIncluding','CreateODBCTime','IsValid','Sqr','CreateTime','IsWDDX','StripCR',
-            'CreateTimeSpan','IsXML','StructAppend','CreateUUID','IsXmlAttribute','StructClear','DateAdd','IsXmlDoc','StructCopy',
-            'DateCompare','IsXmlElem','StructCount','DateConvert','IsXmlNode','StructDelete','DateDiff','IsXmlRoot','StructFind',
-            'DateFormat','JavaCast','StructFindKey','DatePart','JSStringFormat','StructFindValue','Day','LCase','StructGet',
-            'DayOfWeek','Left','StructInsert','DayOfWeekAsString','Len','StructIsEmpty','DayOfYear','ListAppend','StructKeyArray',
-            'DaysInMonth','ListChangeDelims','StructKeyExists','DaysInYear','ListContains','StructKeyList','DE','ListContainsNoCase',
-            'StructNew','DecimalFormat','ListDeleteAt','StructSort','DecrementValue','ListFind','StructUpdate','Decrypt','ListFindNoCase',
-            'Tan','DecryptBinary','ListFirst','TimeFormat','DeleteClientVariable','ListGetAt','ToBase64','DirectoryExists',
-            'ListInsertAt','ToBinary','DollarFormat','ListLast','ToScript','Duplicate','ListLen','ToString','Encrypt','ListPrepend',
-            'Trim','EncryptBinary','ListQualify','UCase','Evaluate','ListRest','URLDecode','Exp','ListSetAt','URLEncodedFormat',
-            'ExpandPath','ListSort','URLSessionFormat','FileExists','ListToArray','Val','Find','ListValueCount','ValueList',
-            'FindNoCase','ListValueCountNoCase','Week','FindOneOf','LJustify','Wrap','FirstDayOfMonth','Log','WriteOutput',
-            'Fix','Log10','XmlChildPos','FormatBaseN','LSCurrencyFormat','XmlElemNew','GetAuthUser','LSDateFormat','XmlFormat',
-            'GetBaseTagData','LSEuroCurrencyFormat','XmlGetNodeType','GetBaseTagList','LSIsCurrency','XmlNew','GetBaseTemplatePath',
-            'LSIsDate','XmlParse','GetClientVariablesList','LSIsNumeric','XmlSearch','GetCurrentTemplatePath','LSNumberFormat',
-            'XmlTransform','GetDirectoryFromPath','LSParseCurrency','XmlValidate','GetEncoding','LSParseDateTime','Year',
-            'GetException','LSParseEuroCurrency','YesNoFormat','GetFileFromPath','LSParseNumber'
-            ),
-        /* CFM Attributes */
-        6 => array(
-            'dbtype','connectstring','datasource','username','password','query','delimeter','description','required','hint','default','access','from','to','list','index'
-            ),
-        7 => array(
-            'EQ', 'GT', 'LT', 'GTE', 'LTE', 'IS', 'LIKE', 'NEQ'
-            )
-        ),
-    '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: #990000; font-weight: bold;',
-            2 => 'color: #000000; font-weight: bold;',
-            3 => 'color: #0000FF;',
-            4 => 'color: #000000; font-weight: bold;',
-            5 => 'color: #0000FF;',
-            6 => 'color: #0000FF;',
-            7 => 'color: #0000FF;'
-            ),
-        '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: #0000FF;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #009900;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #FF0000;'
-            ),
-        'METHODS' => array(
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #0000FF;'
-            ),
-        'SCRIPT' => array(
-            0 => 'color: #808080; font-style: italic;',
-            1 => 'color: #00bbdd;',
-            2 => 'color: #0000FF;',
-            3 => 'color: #000099;',
-            4 => 'color: #333333;',
-            5 => 'color: #333333;'
-            ),
-        'REGEXPS' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => 'http://december.com/html/4/element/{FNAMEL}.html',
-        3 => '',
-        4 => '',
-        5 => '',
-        6 => '',
-        7 => ''
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(
-        ),
-    'REGEXPS' => array(
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_ALWAYS,
-    'SCRIPT_DELIMITERS' => array(
-        0 => array(
-            '<!--' => '-->'
-            ),
-        1 => array(
-            '<!DOCTYPE' => '>'
-            ),
-        2 => "/(?!<#)(?:(?:##)*)(#)[a-zA-Z0-9_\.\(\)]+(#)/",
-        3 => array(
-            '<cfscript>' => '</cfscript>'
-            ),
-        4 => array(
-            '<' => '>'
-            ),
-        5 => '/((?!<!)<)(?:"[^"]*"|\'[^\']*\'|(?R)|[^">])+?(>)/si'
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        0 => false,
-        1 => false,
-        2 => true,
-        3 => true,
-        4 => true,
-        5 => true
-        ),
-    'PARSER_CONTROL' => array(
-        'KEYWORDS' => array(
-            1 => array(
-                'DISALLOWED_BEFORE' => '(?<=&lt;|&lt;\/)',
-                'DISALLOWED_AFTER' => '(?=\s|\/|&gt;)',
-                ),
-            2 => array(
-                'DISALLOWED_BEFORE' => '(?<=&lt;|&lt;\/)',
-                'DISALLOWED_AFTER' => '(?=\s|\/|&gt;)',
-                ),
-            3 => array(
-                'DISALLOWED_BEFORE' => '(?<![a-zA-Z0-9\$_\|\#>|^])', // allow ; before keywords
-                'DISALLOWED_AFTER' => '(?![a-zA-Z0-9_\|%\\-])', // allow & after keywords
-                ),
-            7 => array(
-                'DISALLOWED_BEFORE' => '(?<![a-zA-Z0-9\$_\|\#>&|^])', // allow ; before keywords
-                'DISALLOWED_AFTER' => '(?![a-zA-Z0-9_\|%\\-])', // allow & after keywords
-                )
-            )
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/chaiscript.php b/wiki/vendor/geshi/geshi/src/geshi/chaiscript.php
deleted file mode 100644
index 13570c9..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/chaiscript.php
+++ /dev/null
@@ -1,138 +0,0 @@
-<?php
-/*************************************************************************************
- * chaiscript.php
- * --------------
- * Author: Jason Turner & Jonathan Turner
- * 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.9.0
- * Date Started: 2009/07/03
- *
- * ChaiScript language file for GeSHi.
- *
- * Based on JavaScript by Ben Keen (ben.keen@gmail.com)
- *
- * CHANGES
- * -------
- * 2010/03/30 (1.0.8.8)
- *  -  Updated to include more language features
- *  -  Removed left over pieces from JavaScript
- * 2009/07/03 (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' => 'ChaiScript',
-    'COMMENT_SINGLE' => array(1 => '//'),
-    'COMMENT_MULTI' => array('/*' => '*/'),
-    //Regular Expressions
-    'COMMENT_REGEXP' => array(2 => "/(?<=[\\s^])s\\/(?:\\\\.|(?!\n)[^\\/\\\\])+\\/(?:\\\\.|(?!\n)[^\\/\\\\])+\\/[gimsu]*(?=[\\s$\\.\\;])|(?<=[\\s^(=])m?\\/(?:\\\\.|(?!\n)[^\\/\\\\])+\\/[gimsu]*(?=[\\s$\\.\\,\\;\\)])/iU"),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array("'", '"'),
-    'ESCAPE_CHAR' => '\\',
-    'KEYWORDS' => array(
-        1 => array(
-            'break', 'else', 'elseif', 'eval', 'for', 'if', 'return', 'while', 'try', 'catch', 'finally',
-            ),
-        2 => array(
-            'def', 'false', 'fun', 'true', 'var', 'attr',
-            ),
-        3 => array(
-            // built in functions
-            'throw',
-            )
-        ),
-    'SYMBOLS' => array(
-        '(', ')', '[', ']', '{', '}',
-        '+', '-', '*', '/', '%',
-        '!', '@', '&', '|', '^',
-        '<', '>', '=',
-        ',', ';', '?', ':'
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false,
-        2 => false,
-        3 => false
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #000066; font-weight: bold;',
-            2 => 'color: #003366; font-weight: bold;',
-            3 => 'color: #000066;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #006600; font-style: italic;',
-            2 => 'color: #009966; font-style: italic;',
-            'MULTI' => 'color: #006600; font-style: italic;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #000099; font-weight: bold;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #009900;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #3366CC;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #CC0000;'
-            ),
-        'METHODS' => array(
-            1 => 'color: #660066;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #339933;'
-            ),
-        'REGEXPS' => array(
-            ),
-        'SCRIPT' => array(
-            0 => '',
-            1 => '',
-            2 => '',
-            3 => ''
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => ''
-        ),
-    'OOLANG' => true,
-    'OBJECT_SPLITTERS' => array(
-        1 => '.'
-        ),
-    'REGEXPS' => array(
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_MAYBE,
-    'SCRIPT_DELIMITERS' => array(
-        0 => array(
-            ),
-        1 => array(
-            )
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        0 => true,
-        1 => true
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/chapel.php b/wiki/vendor/geshi/geshi/src/geshi/chapel.php
deleted file mode 100644
index d043634..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/chapel.php
+++ /dev/null
@@ -1,169 +0,0 @@
-<?php
-/*************************************************************************************
- * chapel.php
- * -----
- * Author: Richard Molitor (richard.molitor@student.kit.edu)
- * Copyright: (c) 2013 Richard Molitor
- * Release Version: 1.0.9.0
- * Date Started: 2013/06/22
- *
- * Chapel language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2013/06/22 (1.0.8.13)
- *   -  First Release
- *
- * TODO (updated 2013/06/22)
- * -------------------------
- *
- *************************************************************************************
- *
- *     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' => 'Chapel',
-    '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_INT_CSTYLE | GESHI_NUMBER_BIN_PREFIX_0B |
-        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(
-        // statements
-        1 => array(
-            'atomic', 'begin', 'break', 'class', 'cobegin', 'coforall',
-            'continue', 'do', 'else', 'export', 'extern', 'for', 'forall', 'if',
-            'iter', 'inline', 'label', 'let', 'local', 'module',
-            'otherwise', 'proc', 'record', 'return', 'select', 'serial',
-            'then', 'use', 'var', 'when', 'where', 'while', 'yield'
-            ),
-        // literals
-        2 => array(
-            'nil', 'true', 'false'
-            ),
-        // built-in functions
-        3 => array(
-            'by', 'delete', 'dmapped', 'domain', 'enum', 'index', 'min',
-            'minloc', 'max', 'maxloc', 'new', 'range', 'reduce', 'scan',
-            'sparse', 'subdomain', 'sync', 'union', 'zip'
-            ),
-        // built-in types
-        4 => array(
-            'config', 'const', 'in', 'inout', 'opaque', 'on', 'out', 'param',
-            'ref', 'single', 'type'
-            ),
-        // library types
-        5 => array(
-            'void', 'bool', 'int', 'uint', 'real', 'imag', 'complex', 'string',
-            'locale'
-            ),
-        ),
-    'SYMBOLS' => array(
-        '(', ')', '{', '}', '[', ']',
-        '+', '-', '*', '/', '%',
-        '=', '<', '>',
-        '!', '^', '&', '|',
-        '?', ':',
-        ';', ','
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => true,
-        2 => true,
-        3 => true,
-        4 => true,
-        5 => true
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #b1b100;',
-            2 => 'color: #000000; font-weight: bold;',
-            3 => 'color: #000066;',
-            4 => 'color: #993333;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #666666; font-style: italic;',
-            //2 => 'color: #339933;',
-            'MULTI' => 'color: #808080; 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: #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(
-            1 => 'color: #202020;',
-            2 => 'color: #202020;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #339933;'
-            ),
-        'REGEXPS' => array(
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => '',
-        4 => '',
-        5 => ''
-        ),
-    'OOLANG' => true,
-    'OBJECT_SPLITTERS' => array(
-        1 => '.',
-        ),
-    'REGEXPS' => array(
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        ),
-    'TAB_WIDTH' => 4
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/cil.php b/wiki/vendor/geshi/geshi/src/geshi/cil.php
deleted file mode 100644
index 82a2052..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/cil.php
+++ /dev/null
@@ -1,194 +0,0 @@
-<?php
-/*************************************************************************************
- * cil.php
- * --------
- * Author: Marcus Griep (neoeinstein+GeSHi@gmail.com)
- * Copyright: (c) 2007 Marcus Griep (http://www.xpdm.us)
- * Release Version: 1.0.9.0
- * Date Started: 2007/10/24
- *
- * CIL (Common Intermediate Language) language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2004/10/24 (1.0.8)
- *  -  First Release
- *
- * TODO (updated 2007/10/24)
- * -------------------------
- *
- *************************************************************************************
- *
- *     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' => 'CIL',
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'COMMENT_SINGLE' => array('//'),
-    'COMMENT_MULTI' => array(),
-    'QUOTEMARKS' => array('"'),
-    'ESCAPE_CHAR' => '\\',
-    'KEYWORDS' => array(
-        1 => array(//Dotted
-            '.zeroinit', '.vtfixup', '.vtentry', '.vtable', '.ver', '.try', '.subsystem', '.size', '.set', '.removeon',
-            '.publickeytoken', '.publickey', '.property', '.permissionset', '.permission', '.pdirect', '.param', '.pack',
-            '.override', '.other', '.namespace', '.mresource', '.module', '.method', '.maxstack', '.manifestres', '.locals',
-            '.localized', '.locale', '.line', '.language', '.import', '.imagebase', '.hash', '.get', '.fire', '.file', '.field',
-            '.export', '.event', '.entrypoint', '.emitbyte', '.data', '.custom', '.culture', '.ctor', '.corflags', '.class',
-            '.cctor', '.assembly', '.addon'
-            ),
-        2 => array(//Attributes
-            'wrapper', 'with', 'winapi', 'virtual', 'vector', 'vararg', 'value', 'userdefined', 'unused', 'unmanagedexp',
-            'unmanaged', 'unicode', 'to', 'tls', 'thiscall', 'synchronized', 'struct', 'strict', 'storage', 'stdcall',
-            'static', 'specialname', 'special', 'serializable', 'sequential', 'sealed', 'runtime', 'rtspecialname', 'request',
-            'reqsecobj', 'reqrefuse', 'reqopt', 'reqmin', 'record', 'public', 'privatescope', 'private', 'preservesig',
-            'prejitgrant', 'prejitdeny', 'platformapi', 'pinvokeimpl', 'pinned', 'permitonly', 'out', 'optil', 'opt',
-            'notserialized', 'notremotable', 'not_in_gc_heap', 'noprocess', 'noncaslinkdemand', 'noncasinheritance',
-            'noncasdemand', 'nometadata', 'nomangle', 'nomachine', 'noinlining', 'noappdomain', 'newslot', 'nested', 'native',
-            'modreq', 'modopt', 'marshal', 'managed', 'literal', 'linkcheck', 'lcid', 'lasterr', 'internalcall', 'interface',
-            'instance', 'initonly', 'init', 'inheritcheck', 'in', 'import', 'implicitres', 'implicitcom', 'implements',
-            'illegal', 'il', 'hidebysig', 'handler', 'fromunmanaged', 'forwardref', 'fixed', 'finally', 'final', 'filter',
-            'filetime', 'field', 'fault', 'fastcall', 'famorassem', 'family', 'famandassem', 'extern', 'extends', 'explicit',
-            'error', 'enum', 'endmac', 'deny', 'demand', 'default', 'custom', 'compilercontrolled', 'clsid', 'class', 'cil',
-            'cf', 'cdecl', 'catch', 'beforefieldinit', 'autochar', 'auto', 'at', 'assert', 'assembly', 'as', 'any', 'ansi',
-            'alignment', 'algorithm', 'abstract'
-            ),
-        3 => array(//Types
-            'wchar', 'void', 'variant', 'unsigned', 'valuetype', 'typedref', 'tbstr', 'sysstring', 'syschar', 'string',
-            'streamed_object', 'stream', 'stored_object', 'safearray', 'objectref', 'object', 'nullref', 'method', 'lpwstr',
-            'lpvoid', 'lptstr', 'lpstruct', 'lpstr', 'iunknown', 'int64', 'int32', 'int16', 'int8', 'int', 'idispatch',
-            'hresult', 'float64', 'float32', 'float', 'decimal', 'date', 'currency', 'char', 'carray', 'byvalstr',
-            'bytearray', 'boxed', 'bool', 'blob_object', 'blob', 'array'
-            ),
-        4 => array(//Prefix
-            'volatile', 'unaligned', 'tail', 'readonly', 'no', 'constrained'
-            ),
-        5 => array(//Suffix
-            'un', 'u8', 'u4', 'u2', 'u1', 'u', 's', 'ref', 'r8', 'r4', 'm1', 'i8', 'i4', 'i2', 'i1', 'i'#, '.8', '.7', '.6', '.5', '.4', '.3', '.2', '.1', '.0'
-            ),
-        6 => array(//Base
-            'xor', 'switch', 'sub', 'stloc',
-            'stind', 'starg',
-            'shr', 'shl', 'ret', 'rem', 'pop', 'or', 'not', 'nop', 'neg', 'mul',
-            'localloc', 'leave', 'ldnull', 'ldloca',
-            'ldloc', 'ldind', 'ldftn', 'ldc', 'ldarga',
-            'ldarg', 'jmp', 'initblk', 'endfinally', 'endfilter',
-            'endfault', 'dup', 'div', 'cpblk', 'conv', 'clt', 'ckfinite', 'cgt', 'ceq', 'calli',
-            'call', 'brzero', 'brtrue', 'brnull', 'brinst',
-            'brfalse', 'break', 'br', 'bne', 'blt', 'ble', 'bgt', 'bge', 'beq', 'arglist',
-            'and', 'add'
-            ),
-        7 => array(//Object
-            'unbox.any', 'unbox', 'throw', 'stsfld', 'stobj', 'stfld', 'stelem', 'sizeof', 'rethrow', 'refanyval', 'refanytype', 'newobj',
-            'newarr', 'mkrefany', 'ldvirtftn', 'ldtoken', 'ldstr', 'ldsflda', 'ldsfld', 'ldobj', 'ldlen', 'ldflda', 'ldfld',
-            'ldelema', 'ldelem', 'isinst', 'initobj', 'cpobj', 'castclass',
-            'callvirt', 'callmostderived', 'box'
-            ),
-        8 => array(//Other
-            'prefixref', 'prefix7', 'prefix6', 'prefix5', 'prefix4', 'prefix3', 'prefix2', 'prefix1', 'prefix0'
-            ),
-        9 => array(//Literal
-            'true', 'null', 'false'
-            ),
-        10 => array(//Comment-like
-            '#line', '^THE_END^'
-            )
-        ),
-    '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
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color:maroon;font-weight:bold;',
-            2 => 'color:blue;font-weight:bold;',
-            3 => 'color:purple;font-weight:bold;',
-            4 => 'color:teal;',
-            5 => 'color:blue;',
-            6 => 'color:blue;',
-            7 => 'color:blue;',
-            8 => 'color:blue;',
-            9 => 'color:00008B',
-            10 => 'color:gray'
-            ),
-        'COMMENTS' => array(
-            0 => 'color:gray;font-style:italic;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #008000; font-weight: bold;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #006400;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #008000;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #00008B;'
-            ),
-        'METHODS' => array(
-            1 => 'color: #000033;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #006400;'
-            ),
-        'REGEXPS' => array(
-            0 => 'color:blue;'
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => '',
-        4 => '',
-        5 => '',
-        6 => '',
-        7 => '',
-        8 => '',
-        9 => '',
-        10 => ''
-        ),
-    'OOLANG' => true,
-    'OBJECT_SPLITTERS' => array(
-        1 => '::'
-        ),
-    'REGEXPS' => array(
-        0 => '(?<=ldc\\.i4\\.)[0-8]|(?<=(?:ldarg|ldloc|stloc)\\.)[0-3]' # Pickup the opcodes that end with integers
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        ),
-    'TAB_WIDTH' => 4
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/clojure.php b/wiki/vendor/geshi/geshi/src/geshi/clojure.php
deleted file mode 100644
index 0a5d1dd..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/clojure.php
+++ /dev/null
@@ -1,132 +0,0 @@
-<?php
-/*************************************************************************************
- * clojure.php
- * --------
- * Author: Jess Johnson (jess@grok-code.com)
- * Copyright: (c) 2009 Jess Johnson (http://grok-code.com)
- * Release Version: 1.0.9.0
- * Date Started: 2009/09/20
- *
- * Clojure language file for GeSHi.
- *
- * This file borrows significantly from the lisp language file for GeSHi
- *
- * CHANGES
- * -------
- * 2009/09/20 (1.0.8.6)
- *  -  First Release
- *
- * TODO (updated 2009/09/20)
- * -------------------------
- *
- *************************************************************************************
- *
- *     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' => 'Clojure',
-    'COMMENT_SINGLE' => array(1 => ';'),
-    'COMMENT_MULTI' => array(';|' => '|;'),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array('"'),
-    'ESCAPE_CHAR' => '\\',
-    'KEYWORDS' => array(
-        1 => array(
-            'defn', 'defn-', 'defmulti', 'defmethod', 'defmacro', 'deftest',
-            'defstruct', 'def', 'defonce', 'let', 'letfn', 'do', 'cond', 'condp',
-            'for', 'loop', 'recur', 'when', 'when-not', 'when-let', 'when-first',
-            'if', 'if-let', 'if-not', 'doto', 'and', 'or','not','aget','aset',
-            'dosync', 'doseq', 'dotimes', 'dorun', 'doall',
-            'load', 'import', 'unimport', 'ns', 'in-ns', 'refer', 'print',
-            'try', 'catch', 'finally', 'throw', 'fn', 'update-in',
-            'with-open', 'with-local-vars', 'binding',
-            'gen-class', 'gen-and-load-class', 'gen-and-save-class',
-            'implement', 'proxy', 'lazy-cons', 'with-meta',
-            'struct', 'struct-map', 'delay', 'locking', 'sync', 'time', 'apply',
-            'remove', 'merge', 'interleave', 'interpose', 'distinct',
-            'cons', 'concat', 'lazy-cat', 'cycle', 'rest', 'frest', 'drop',
-            'drop-while', 'nthrest', 'take', 'take-while', 'take-nth', 'butlast',
-            'reverse', 'sort', 'sort-by', 'split-at', 'partition', 'split-with',
-            'first', 'ffirst', 'rfirst', 'zipmap', 'into', 'set', 'vec',
-            'to-array-2d', 'not-empty', 'seq?', 'not-every?', 'every?', 'not-any?',
-            'map', 'mapcat', 'vector?', 'list?', 'hash-map', 'reduce', 'filter',
-            'vals', 'keys', 'rseq', 'subseq', 'rsubseq', 'count', 'empty?',
-            'fnseq', 'repeatedly', 'iterate', 'drop-last',
-            'repeat', 'replicate', 'range',  'into-array',
-            'line-seq', 'resultset-seq', 're-seq', 're-find', 'tree-seq', 'file-seq',
-            'iterator-seq', 'enumeration-seq', 'declare',  'xml-seq',
-            'symbol?', 'string?', 'vector', 'conj', 'str',
-            'pos?', 'neg?', 'zero?', 'nil?', 'inc', 'dec', 'format',
-            'alter', 'commute', 'ref-set', 'floor', 'assoc', 'send', 'send-off'
-            )
-        ),
-    'SYMBOLS' => array(
-        '(', ')', '{', '}', '[', ']', '!', '%', '^', '&', '/','+','-','*','=','<','>',';','|', '.', '..', '->',
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => true,
-        1 => false
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #b1b100;'
-            ),
-        '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: #66cc66;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #ff0000;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #cc66cc;'
-            ),
-        'METHODS' => array(
-            0 => 'color: #555;',
-            1 => 'color: #555;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #66cc66;'
-            ),
-        'REGEXPS' => array(
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => ''
-        ),
-    'OOLANG' => true,
-    'OBJECT_SPLITTERS' => array(
-            '::', ':'
-        ),
-    'REGEXPS' => array(
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/cmake.php b/wiki/vendor/geshi/geshi/src/geshi/cmake.php
deleted file mode 100644
index cebf147..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/cmake.php
+++ /dev/null
@@ -1,179 +0,0 @@
-<?php
-/*************************************************************************************
- * cmake.php
- * -------
- * Author: Daniel Nelson (danieln@eng.utah.edu)
- * Copyright: (c) 2009 Daniel Nelson
- * Release Version: 1.0.9.0
- * Date Started: 2009/04/06
- *
- * CMake language file for GeSHi.
- *
- * Keyword list generated using CMake 2.6.3.
- *
- * CHANGES
- * -------
- * <date-of-release> (<GeSHi release>)
- *  -  First Release
- *
- * TODO (updated <date-of-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' => 'CMake',
-    'COMMENT_SINGLE' => array(1 => '#'),
-    'COMMENT_MULTI' => array(),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array('"'),
-    'ESCAPE_CHAR' => '\\',
-    'ESCAPE_REGEXP' => array(
-        // Quoted variables ${...}
-        1 => "/\\$(ENV)?\\{[^\\n\\}]*?\\}/i",
-        // Quoted registry keys [...]
-        2 => "/\\[HKEY[^\n\\]]*?]/i"
-        ),
-    'KEYWORDS' => array(
-        1 => array(
-            'add_custom_command', 'add_custom_target', 'add_definitions',
-            'add_dependencies', 'add_executable', 'add_library',
-            'add_subdirectory', 'add_test', 'aux_source_directory', 'break',
-            'build_command', 'cmake_minimum_required', 'cmake_policy',
-            'configure_file', 'create_test_sourcelist', 'define_property',
-            'else', 'elseif', 'enable_language', 'enable_testing',
-            'endforeach', 'endfunction', 'endif', 'endmacro',
-            'endwhile', 'execute_process', 'export', 'file', 'find_file',
-            'find_library', 'find_package', 'find_path', 'find_program',
-            'fltk_wrap_ui', 'foreach', 'function', 'get_cmake_property',
-            'get_directory_property', 'get_filename_component', 'get_property',
-            'get_source_file_property', 'get_target_property',
-            'get_test_property', 'if', 'include', 'include_directories',
-            'include_external_msproject', 'include_regular_expression',
-            'install', 'link_directories', 'list', 'load_cache',
-            'load_command', 'macro', 'mark_as_advanced', 'math', 'message',
-            'option', 'output_required_files', 'project', 'qt_wrap_cpp',
-            'qt_wrap_ui', 'remove_definitions', 'return', 'separate_arguments',
-            'set', 'set_directory_properties', 'set_property',
-            'set_source_files_properties', 'set_target_properties',
-            'set_tests_properties', 'site_name', 'source_group', 'string',
-            'target_link_libraries', 'try_compile', 'try_run', 'unset',
-            'variable_watch', 'while'
-            ),
-        2 => array(
-            // Deprecated commands
-            'build_name', 'exec_program', 'export_library_dependencies',
-            'install_files', 'install_programs', 'install_targets',
-            'link_libraries', 'make_directory', 'remove', 'subdir_depends',
-            'subdirs', 'use_mangled_mesa', 'utility_source',
-            'variable_requires', 'write_file'
-            ),
-        3 => array(
-            // Special command arguments, this list is not comprehesive.
-            'AND', 'APPEND', 'ASCII', 'BOOL', 'CACHE', 'COMMAND', 'COMMENT',
-            'COMPARE', 'CONFIGURE', 'DEFINED', 'DEPENDS', 'DIRECTORY',
-            'EQUAL', 'EXCLUDE_FROM_ALL', 'EXISTS', 'FALSE', 'FATAL_ERROR',
-            'FILEPATH', 'FIND', 'FORCE', 'GET', 'GLOBAL', 'GREATER',
-            'IMPLICIT_DEPENDS', 'INSERT', 'INTERNAL', 'IS_ABSOLUTE',
-            'IS_DIRECTORY', 'IS_NEWER_THAN', 'LENGTH', 'LESS',
-            'MAIN_DEPENDENCY', 'MATCH', 'MATCHALL', 'MATCHES', 'MODULE', 'NOT',
-            'NOTFOUND', 'OFF', 'ON', 'OR', 'OUTPUT', 'PARENT_SCOPE', 'PATH',
-            'POLICY', 'POST_BUILD', 'PRE_BUILD', 'PRE_LINK', 'PROPERTY',
-            'RANDOM', 'REGEX', 'REMOVE_AT', 'REMOVE_DUPLICATES', 'REMOVE_ITEM',
-            'REPLACE', 'REVERSE', 'SEND_ERROR', 'SHARED', 'SORT', 'SOURCE',
-            'STATIC', 'STATUS', 'STREQUAL', 'STRGREATER', 'STRING', 'STRIP',
-            'STRLESS', 'SUBSTRING', 'TARGET', 'TEST', 'TOLOWER', 'TOUPPER',
-            'TRUE', 'VERBATIM', 'VERSION', 'VERSION_EQUAL', 'VERSION_GREATOR',
-            'VERSION_LESS', 'WORKING_DIRECTORY',
-            )
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false,
-        2 => false,
-        3 => true
-        ),
-    'SYMBOLS' => array(
-        0 => array('(', ')')
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #1f3f81; font-style: bold;',
-            2 => 'color: #1f3f81;',
-            3 => 'color: #077807; font-sytle: italic;'
-            ),
-        'BRACKETS' => array(),
-        'COMMENTS' => array(
-            1 => 'color: #666666; font-style: italic;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #000099; font-weight: bold;',
-            1 => 'color: #b08000;',
-            2 => 'color: #0000cd;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #912f11;',
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #197d8b;'
-            ),
-        'NUMBERS' => array(),
-        'METHODS' => array(),
-        'REGEXPS' => array(
-            0 => 'color: #b08000;',
-            1 => 'color: #0000cd;'
-            ),
-        'SCRIPT' => array()
-        ),
-    'URLS' => array(
-        1 => 'http://www.cmake.org/cmake/help/cmake2.6docs.html#command:{FNAMEL}',
-        2 => 'http://www.cmake.org/cmake/help/cmake2.6docs.html#command:{FNAMEL}',
-        3 => '',
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(),
-    'REGEXPS' => array(
-        // Unquoted variables
-        0 => "\\$(ENV)?\\{[^\\n}]*?\\}",
-        // Unquoted registry keys
-        1 => "\\[HKEY[^\n\\]]*?]"
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(),
-    'HIGHLIGHT_STRICT_BLOCK' => array(),
-    'TAB_WIDTH' => 4,
-    'PARSER_CONTROL' => array(
-        'KEYWORDS' => array(
-            // These keywords cannot come after a open paren
-            1 => array(
-                'DISALLOWED_AFTER' =>  '(?= *\()'
-                ),
-            2 => array(
-                'DISALLOWED_AFTER' =>  '(?= *\()'
-                )
-            ),
-        'ENABLE_FLAGS' => array(
-            'BRACKETS' => GESHI_NEVER,
-            'METHODS' => GESHI_NEVER,
-            'NUMBERS' => GESHI_NEVER
-            )
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/cobol.php b/wiki/vendor/geshi/geshi/src/geshi/cobol.php
deleted file mode 100644
index 990551a..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/cobol.php
+++ /dev/null
@@ -1,457 +0,0 @@
-<?php
-/*************************************************************************************
- * cobol.php
- * ----------
- * Author: BenBE (BenBE@omorphia.org)
- * Copyright: (c) 2007-2008 BenBE (http://www.omorphia.de/)
- * Release Version: 1.0.9.0
- * Date Started: 2007/07/02
- *
- * COBOL language file for GeSHi.
- *
- * Most of the compiler directives, reserved words and intrinsic functions are
- * from the 2009 COBOL Draft Standard, Micro Focus, and GNU Cobol. The lists of
- * these were found in the draft standard (Sections 8.9, 8.10, 8.11 and 8.12),
- * Micro Focus' COBOL Language Reference and the GNU Cobol FAQ.
- *
- * CHANGES
- * -------
- * 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.13)
- *  -  Added more intrinsic functions, reserved words, and compiler directives
- *     from the (upcoming) standard.
- * 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.
- *  -  Added extra symbols.
- *  -  Fixed bug where scope terminators were only the statement in
- *     end-statement was highlighted.
- *
- * TODO (updated 2013/11/17)
- * -------------------------
- *
- *************************************************************************************
- *
- *     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' => 'COBOL',
-    'COMMENT_SINGLE' => array(
-        1 => '*>', // COBOL 2002 inline comment
-        2 => '>>'  // COBOL compiler directive indicator
-        ),
-    'COMMENT_MULTI' => array(),
-    'COMMENT_REGEXP' => array(
-        1 => '/^......(\*.*?$)/m', // Fixed-form comment
-        2 => '/\$SET.*/i'          // MF compiler directive indicator
-        ),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array('"', "'"),
-    'ESCAPE_CHAR' => '',
-    'NUMBERS' =>
-        GESHI_NUMBER_INT_BASIC |
-        GESHI_NUMBER_FLT_NONSCI |
-        GESHI_NUMBER_FLT_SCI_SHORT |
-        GESHI_NUMBER_FLT_SCI_ZERO,
-    'KEYWORDS' => array(
-        // Statements containing spaces. These are separate to other statements
-        // so that they are highlighted correctly.
-        1 => array(
-            'DELETE FILE', 'GO TO', 'NEXT SENTENCE', 'XML GENERATE',
-            'XML PARSE'
-            ),
-
-        2 => array( // Other Reserved Words
-            '3-D', 'ABSENT', 'ABSTRACT', 'ACCESS', 'ACQUIRE',
-            'ACTION', 'ACTIVE-CLASS', 'ACTIVE-X', 'ACTUAL', 'ADDRESS',
-            'ADDRESS-ARRAY', 'ADDRESS-OFFSET', 'ADJUSTABLE-COLUMNS',
-            'ADVANCING', 'AFP-5A', 'AFTER', 'ALIGNED', 'ALIGNMENT', 'ALL',
-            'ALLOW', 'ALLOWING', 'ALPHABET', 'ALPHABETIC',
-            'ALPHABETIC-LOWER', 'ALPHABETIC-UPPER', 'ALPHANUMERIC',
-            'ALPHANUMERIC-EDITED', 'ALSO', 'ALTERNATE', 'AND', 'ANY',
-            'ANYCASE',
-            'APPLY', 'ARE', 'AREA', 'AREAS', 'ARGUMENT-NUMBER',
-            'ARGUMENT-VALUE',
-            'ARITHMETIC', 'AS', 'ASCENDING',
-            'ASSEMBLY-ATTRIBUTES', 'ASSIGN', 'AT', 'ATTRIBUTE', 'AUTHOR',
-            'AUTO', 'AUTO-DECIMAL', 'AUTO-HYPHEN-SKIP', 'AUTO-MINIMIZE',
-            'AUTO-RESIZE', 'AUTO-SKIP', 'AUTO-SPIN', 'AUTOMATIC',
-            'AUTOTERMINATE', 'AWAY-FROM-ZERO',
-            'AX-EVENT-LIST', 'B-AND', 'B-EXOR', 'B-LEFT',
-            'B-NOT', 'B-OR', 'B-RIGHT', 'B-XOR', 'BACKGROUND-COLOR',
-            'BACKGROUND-COLOUR', 'BACKGROUND-HIGH', 'BACKGROUND-LOW',
-            'BACKGROUND-STANDARD', 'BACKWARD', 'BAR', 'BASED', 'BASIS', 'BEEP',
-            'BEFORE', 'BEGINNING', 'BELL', 'BINARY', 'BINARY-CHAR',
-            'BINARY-DOUBLE', 'BINARY-LONG', 'BINARY-SHORT', 'BIND', 'BIT',
-            'BITMAP', 'BITMAP-END', 'BITMAP-HANDLE', 'BITMAP-NUMBER',
-            'BITMAP-RAW-HEIGHT', 'BITMAP-RAW-WIDTH', 'BITMAP-SCALE',
-            'BITMAP-START', 'BITMAP-TIMER', 'BITMAP-TRAILING', 'BITMAP-WIDTH',
-            'BLANK', 'BLINK', 'BLINKING', 'BLOB', 'BLOB-FILE', 'BLOB-LOCATOR',
-            'BLOCK', 'BOLD', 'BOOLEAN', 'BOTTOM', 'BOX', 'BOXED', 'BROWSING',
-            'BUSY', 'BUTTONS', 'BY', 'C01', 'C02', 'C03', 'C04',
-            'C05',
-            'C06', 'C07', 'C08', 'C09', 'C10', 'C11', 'C12', 'CALENDAR-FONT',
-            'CALLED', 'CANCEL-BUTTON', 'CAPACITY', 'CATCH', 'CBL',
-            'CBL-CTR', 'CCOL', 'CD', 'CELL', 'CELL-COLOR', 'CELL-DATA',
-            'CELL-FONT', 'CELL-PROTECTION', 'CELLS', 'CENTER', 'CENTERED',
-            'CENTERED-HEADINGS', 'CENTURY-DATE', 'CENTURY-DAY', 'CF', 'CH',
-            'CHAINING', 'CHANGED', 'CHAR-VARYING',
-            'CHARACTER',
-            'CHARACTERS', 'CHART', 'CHECK-BOX', 'CHECKING', 'CLASS',
-            'CLASS-ATTRIBUTES', 'CLASS-CONTROL', 'CLASS-ID', 'CLASS-OBJECT',
-            'CLASSIFICATION',
-            'CLEAR-SELECTION', 'CLINE', 'CLINES', 'CLOB', 'CLOB-FILE',
-            'CLOB-LOCATOR', 'CLOCK-UNITS', 'COBOL', 'CODE', 'CODE-SET',
-            'COERCION', 'COL', 'COLLATING', 'COLORS', 'COLOUR',
-            'COLOURS', 'COLS', 'COLUMN', 'COLUMN-COLOR', 'COLUMN-DIVIDERS',
-            'COLUMN-FONT', 'COLUMN-HEADINGS', 'COLUMN-PROTECTION', 'COLUMNS',
-            'COM-REG', 'COMBO-BOX', 'COMMA', 'COMMITMENT', 'COMMON',
-            'COMMUNICATION', 'COMP', 'COMP-0', 'COMP-1', 'COMP-2', 'COMP-3',
-            'COMP-4', 'COMP-5', 'COMP-6', 'COMP-X', 'COMPRESSION',
-            'COMPUTATIONAL', 'COMPUTATIONAL-0', 'COMPUTATIONAL-1',
-            'COMPUTATIONAL-2', 'COMPUTATIONAL-3', 'COMPUTATIONAL-4',
-            'COMPUTATIONAL-5', 'COMPUTATIONAL-6', 'COMPUTATIONAL-X',
-            'CONDITION-VALUE', 'CONFIGURATION', 'CONSOLE', 'CONSTANT',
-            'CONSTRAIN', 'CONSTRAINTS', 'CONTAINS', 'CONTENT',
-            'CONTROL', 'CONTROL-AREA', 'CONTROLS', 'CONTROLS-UNCROPPED',
-            'CONVERSION', 'CONVERT', 'CONVERTING', 'COPY-SELECTION',
-            'CORE-INDEX', 'CORR', 'CORRESPONDING', 'COUNT',
-            'CREATING', 'CRT', 'CRT-UNDER', 'CSIZE', 'CSP', 'CURRENCY',
-            'CURSOR', 'CURSOR-COL', 'CURSOR-COLOR',
-            'CURSOR-FRAME-WIDTH', 'CURSOR-ROW', 'CURSOR-X', 'CURSOR-Y',
-            'CUSTOM-ATTRIBUTE', 'CUSTOM-PRINT-TEMPLATE', 'CYCLE', 'CYL-INDEX',
-            'CYL-OVERFLOW', 'DASHED', 'DATA', 'DATA-COLUMNS',
-            'DATA-POINTER', 'DATA-TYPES', 'DATABASE-KEY', 'DATABASE-KEY-LONG',
-            'DATE', 'DATE-COMPILED', 'DATE-ENTRY', 'DATE-RECORD',
-            'DATE-WRITTEN', 'DAY', 'DAY-OF-WEEK', 'DBCLOB', 'DBCLOB-FILE',
-            'DBCLOB-LOCATOR', 'DBCS', 'DE', 'DEBUG', 'DEBUG-CONTENTS',
-            'DEBUG-ITEM', 'DEBUG-LINE', 'DEBUG-NAME', 'DEBUG-SUB-1',
-            'DEBUG-SUB-2', 'DEBUG-SUB-3', 'DEBUGGING', 'DECIMAL',
-            'DECIMAL-POINT', 'DECLARATIVES', 'DEFAULT',
-            'DEFAULT-BUTTON', 'DEFAULT-FONT', 'DEFINITION',
-            'DELEGATE-ID', 'DELIMITED', 'DELIMITER', 'DEPENDING',
-            'DESCENDING', 'DESTINATION', 'DESTROY', 'DETAIL', 'DICTIONARY',
-            'DISABLE', 'DISC', 'DISJOINING', 'DISK', 'DISP',
-            'DISPLAY-1', 'DISPLAY-COLUMNS', 'DISPLAY-FORMAT', 'DISPLAY-ST',
-            'DIVIDER-COLOR', 'DIVIDERS', 'DIVISION', 'DOT-DASH',
-            'DOTTED', 'DOWN', 'DRAG-COLOR', 'DRAW', 'DROP', 'DROP-DOWN',
-            'DROP-LIST', 'DUPLICATES', 'DYNAMIC', 'EBCDIC', 'EC', 'ECHO', 'EGCS',
-            'EGI', 'EJECT', 'ELEMENTARY', 'ELSE', 'EMI', 'EMPTY-CHECK',
-            'ENABLE', 'ENABLED', 'END', 'END-ACCEPT', 'END-ADD', 'END-CALL',
-            'END-CHAIN', 'END-COLOR', 'END-COMPUTE', 'END-DELEGATE',
-            'END-DELETE', 'END-DISPLAY', 'END-DIVIDE', 'END-EVALUATE',
-            'END-IF', 'END-INVOKE', 'END-MODIFY', 'END-MOVE', 'END-MULTIPLY',
-            'END-OF-PAGE', 'END-PERFORM', 'END-READ', 'END-RECEIVE',
-            'END-RETURN', 'END-REWRITE', 'END-SEARCH', 'END-START',
-            'END-STRING', 'END-SUBTRACT', 'END-SYNC', 'END-TRY',
-            'END-UNSTRING', 'END-WAIT', 'END-WRITE', 'END-XML', 'ENDING',
-            'ENGRAVED', 'ENSURE-VISIBLE', 'ENTRY-CONVENTION',
-            'ENTRY-FIELD',
-            'ENTRY-REASON', 'ENUM', 'ENUM-ID', 'ENVIRONMENT',
-            'ENVIRONMENT-NAME', 'ENVIRONMENT-VALUE', 'EOL', 'EOP',
-            'EOS', 'EQUAL', 'EQUALS', 'ERASE', 'ERROR', 'ESCAPE',
-            'ESCAPE-BUTTON', 'ESI', 'EVENT', 'EVENT-LIST',
-            'EVENT-POINTER', 'EVERY', 'EXCEEDS', 'EXCEPTION',
-            'EXCEPTION-OBJECT', 'EXCEPTION-VALUE', 'EXCESS-3',
-            'EXCLUDE-EVENT-LIST', 'EXCLUSIVE',
-            'EXPAND', 'EXPANDS', 'EXTEND', 'EXTENDED',
-            'EXTENDED-SEARCH', 'EXTENSION', 'EXTERNAL', 'EXTERNAL-FORM',
-            'EXTERNALLY-DESCRIBED-KEY', 'FACTORY', 'FALSE', 'FD',
-            'FH--FCD', 'FH--KEYDEF', 'FILE', 'FILE-CONTROL', 'FILE-ID',
-            'FILE-LIMIT', 'FILE-LIMITS', 'FILE-NAME', 'FILE-POS', 'FILL-COLOR',
-            'FILL-COLOR2', 'FILL-PERCENT', 'FILLER', 'FINAL', 'FINALLY',
-            'FINISH-REASON', 'FIRST', 'FIXED', 'FIXED-FONT', 'FIXED-WIDTH',
-            'FLAT', 'FLAT-BUTTONS', 'FLOAT-BINARY-7', 'FLOAT-BINARY-16',
-            'FLOAT-BINARY-34', 'FLOAT-DECIMAL-16', 'FLOAT-DECIMAL-34',
-            'FLOAT-EXTENDED', 'FLOAT-LONG',
-            'FLOAT-SHORT', 'FLOATING', 'FONT', 'FOOTING', 'FOR',
-            'FOREGROUND-COLOR', 'FOREGROUND-COLOUR', 'FOREVER', 'FORMAT',
-            'FRAME', 'FRAMED', 'FROM', 'FULL', 'FULL-HEIGHT',
-            'FUNCTION', 'FUNCTION-ID', 'FUNCTION-POINTER', 'GENERATE',
-            'GET', 'GETTER', 'GIVING', 'GLOBAL', 'GO-BACK', 'GO-FORWARD',
-            'GO-HOME', 'GO-SEARCH', 'GRAPHICAL', 'GREATER', 'GRID',
-            'GRIP', 'GROUP', 'GROUP-USAGE', 'GROUP-VALUE', 'HANDLE',
-            'HAS-CHILDREN', 'HEADING', 'HEADING-COLOR', 'HEADING-DIVIDER-COLOR',
-            'HEADING-FONT', 'HEAVY', 'HEIGHT', 'HEIGHT-IN-CELLS', 'HELP-ID',
-            'HIDDEN-DATA', 'HIGH', 'HIGH-COLOR', 'HIGH-VALUE', 'HIGH-VALUES',
-            'HIGHLIGHT', 'HORIZONTAL', 'HOT-TRACK', 'HSCROLL', 'HSCROLL-POS',
-            'I-O', 'I-O-CONTROL', 'ICON', 'ID', 'IDENTIFICATION',
-            'IDENTIFIED', 'IFINITY', 'IGNORE', 'IGNORING', 'IMPLEMENTS', 'IN',
-            'INDEPENDENT', 'INDEX', 'INDEXED', 'INDEXER', 'INDEXER-ID', 'INDIC',
-            'INDICATE', 'INDICATOR', 'INDICATORS', 'INDIRECT',
-            'INHERITING', 'INHERITS',
-            'INITIAL', 'INITIALIZED', 'INPUT',
-            'INPUT-OUTPUT', 'INQUIRE', 'INSERT', 'INSERT-ROWS',
-            'INSERTION-INDEX', 'INSTALLATION', 'INSTANCE',
-            'INTERFACE', 'INTERFACE-ID', 'INTERMEDIATE',
-            'INTERNAL', 'INTO', 'INTRINSIC',
-            'INVALID', 'INVOKED', 'IS', 'ITEM', 'ITEM-BOLD',
-            'ITEM-ID', 'ITEM-TEXT', 'ITEM-TO-ADD', 'ITEM-TO-DELETE',
-            'ITEM-TO-EMPTY', 'ITEM-VALUE', 'ITERATOR', 'ITERATOR-ID', 'J',
-            'JOINED', 'JOINING', 'JUST', 'JUSTIFIED', 'KANJI',
-            'KEPT', 'KEY', 'KEY-YY', 'KEYBOARD', 'LABEL', 'LABEL-OFFSET',
-            'LARGE-FONT', 'LAST', 'LAST-ROW', 'LAYOUT-DATA', 'LAYOUT-MANAGER',
-            'LC_ALL', 'LC_COLLATE', 'LC_CTYPE', 'LC_CURRENCY', 'LC_MESSAGES',
-            'LC_MONETARY', 'LC_NUMERIC', 'LC_TIME', 'LEADING', 'LEADING-SHIFT',
-            'LEAVE', 'LEFT', 'LEFT-JUSTIFY', 'LEFT-TEXT', 'LEFTLINE',
-            'LENGTH-CHECK', 'LESS', 'LIMIT', 'LIMITS', 'LIN', 'LINAGE',
-            'LINAGE-COUNTER', 'LINE', 'LINE-COUNTER', 'LINES', 'LINES-AT-ROOT',
-            'LINK', 'LINKAGE', 'LIST', 'LIST-BOX', 'LM-RESIZE', 'LOCAL-STORAGE',
-            'LOCALE', 'LOCK', 'LOCKING', 'LONG-DATE', 'LONG-VARBINARY',
-            'LONG-VARCHAR', 'LOW', 'LOW-COLOR', 'LOW-VALUE', 'LOW-VALUES',
-            'LOWER', 'LOWERED', 'LOWLIGHT', 'MANUAL', 'MASS-UPDATE',
-            'MASTER-INDEX', 'MAX-HEIGHT', 'MAX-LINES', 'MAX-PROGRESS',
-            'MAX-SIZE', 'MAX-TEXT', 'MAX-VAL', 'MAX-WIDTH', 'MDI-CHILD',
-            'MDI-FRAME', 'MEDIUM-FONT', 'MEMORY', 'MENU', 'MESSAGE',
-            'MESSAGES', 'METACLASS', 'METHOD', 'METHOD-ID', 'MIN-HEIGHT',
-            'MIN-LINES', 'MIN-SIZE', 'MIN-VAL', 'MIN-WIDTH', 'MODAL', 'MODE',
-            'MODELESS', 'MODIFIED', 'MODULES', 'MONITOR-POINTER',
-            'MORE-LABELS', 'MULTILINE',
-            'MUTEX-POINTER', 'NAME', 'NAMED', 'NATIONAL',
-            'NATIONAL-EDITED', 'NATIVE', 'NAVIGATE-URL', 'NCHAR',
-            'NEAREST-AWAY-FROM-ZERO', 'NEAREST-EVEN', 'NEAREST-TOWARD-ZERO',
-            'NEGATIVE', 'NEGATIVE-INFINITY',
-            'NESTED', 'NET-EVENT-LIST', 'NEW', 'NEWABLE', 'NEXT ', 'NEXT-ITEM',
-            'NO', 'NO-AUTO-DEFAULT', 'NO-AUTOSEL', 'NO-BOX', 'NO-CELL-DRAG',
-            'NO-CLOSE', 'NO-DIVIDERS', 'NO-ECHO', 'NO-F4', 'NO-FOCUS',
-            'NO-GROUP-TAB', 'NO-KEY-LETTER', 'NO-SEARCH', 'NO-TAB', 'NO-UPDOWN',
-            'NOMINAL', 'NONE', 'NORMAL', 'NOT', 'NOT-A-NUMBER', 'NOTIFY',
-            'NOTIFY-CHANGE', 'NOTIFY-DBLCLICK', 'NOTIFY-SELCHANGE',
-            'NSTD-REELS', 'NULL', 'NULLS', 'NUM-COL-HEADINGS',
-            'NUM-ROW-HEADINGS', 'NUM-ROWS', 'NUMBER', 'NUMBERS', 'NUMERIC',
-            'NUMERIC-EDITED', 'NUMERIC-FILL', 'O-FILL', 'OBJECT',
-            'OBJECT-COMPUTER', 'OBJECT-ID', 'OBJECT-REFERENCE',
-            'OBJECT-STORAGE', 'OCCURS', 'OF', 'OFF', 'OK-BUTTON', 'OMITTED',
-            'ONLY', 'OOSTACKPTR', 'OPERATOR', 'OPERATOR-ID',
-            'OPTIONAL', 'OPTIONS', 'OR', 'ORDER', 'ORGANIZATION', 'OTHER',
-            'OTHERWISE', 'OUTPUT', 'OVERFLOW', 'OVERLAP-LEFT', 'OVERLAP-TOP',
-            'OVERLAPPED', 'OVERLINE', 'OVERRIDE', 'PACKED-DECIMAL',
-            'PADDING', 'PAGE', 'PAGE-COUNTER', 'PAGE-SETUP', 'PAGE-SIZE',
-            'PAGED', 'PANEL-INDEX', 'PANEL-STYLE', 'PANEL-TEXT', 'PANEL-WIDTHS',
-            'PARAGRAPH', 'PARAMS', 'PARENT', 'PARSE', 'PARTIAL', 'PASSWORD',
-            'PERMANENT', 'PF', 'PH', 'PIC', 'PICTURE', 'PIXEL',
-            'PIXELS', 'PLACEMENT', 'PLUS', 'POINTER', 'POP-UP', 'POSITION',
-            'POSITION-SHIFT', 'POSITIONING', 'POSITIVE', 'POSITIVE-INFINITY',
-            'PREFIXED', 'PREFIXING', 'PRESENT',
-            'PREVIOUS', 'PRINT', 'PRINT-CONTROL', 'PRINT-NO-PROMPT',
-            'PRINT-PREVIEW', 'PRINT-SWITCH', 'PRINTER', 'PRINTER-1', 'PRINTING',
-            'PRIOR', 'PRIORITY', 'PRIVATE', 'PROCEDURE', 'PROCEDURE-POINTER',
-            'PROCEDURES', 'PROCEED', 'PROCESS', 'PROCESSING', 'PROGRAM',
-            'PROGRAM-ID', 'PROGRAM-POINTER', 'PROGRESS', 'PROHIBITED',
-            'PROMPT', 'PROPERTIES',
-            'PROPERTY', 'PROPERTY-ID', 'PROPERTY-VALUE', 'PROTECTED',
-            'PROTOTYPE', 'PUBLIC', 'PURGE', 'PUSH-BUTTON', 'QUERY-INDEX',
-            'QUEUE', 'QUOTE', 'QUOTES', 'RADIO-BUTTON', 'RAISED',
-            'RAISING', 'RD', 'READ-ONLY', 'READING',
-            'READY', 'RECORD', 'RECORD-DATA', 'RECORD-OVERFLOW',
-            'RECORD-TO-ADD', 'RECORD-TO-DELETE', 'RECORDING', 'RECORDS',
-            'RECURSIVE', 'REDEFINE', 'REDEFINES', 'REDEFINITION', 'REEL',
-            'REFERENCE', 'REFERENCES', 'REFRESH', 'REGION-COLOR', 'RELATION',
-            'RELATIVE', 'RELOAD', 'REMAINDER', 'REMARKS', 'REMOVAL',
-            'RENAMES', 'REORG-CRITERIA', 'REPEATED', 'REPLACE', 'REPLACING',
-            'REPORT', 'REPORTING', 'REPORTS', 'REPOSITORY', 'REQUIRED',
-            'REPRESENTS-NOT-A-NUMBER',
-            'REREAD', 'RERUN', 'RESERVE', 'RESET-GRID', 'RESET-LIST',
-            'RESET-TABS', 'RESIZABLE', 'RESTRICTED', 'RESULT-SET-LOCATOR',
-            'RETRY', 'RETURN-CODE', 'RETURNING',
-            'REVERSE-VIDEO', 'REVERSED', 'REWIND', 'RF', 'RH',
-            'RIGHT', 'RIGHT-ALIGN', 'RIGHT-JUSTIFY', 'RIMMED',
-            'ROLLING', 'ROUNDED', 'ROUNDING', 'ROW-COLOR', 'ROW-COLOR-PATTERN',
-            'ROW-DIVIDERS', 'ROW-FONT', 'ROW-HEADINGS', 'ROW-PROTECTION',
-            'ROWID', 'RUN', 'S01', 'S02', 'S03', 'S04', 'S05', 'SAME',
-            'SAVE-AS', 'SAVE-AS-NO-PROMPT', 'SCREEN', 'SCROLL', 'SCROLL-BAR',
-            'SD', 'SEARCH-OPTIONS', 'SEARCH-TEXT', 'SECONDS',
-            'SECTION', 'SECURE', 'SECURITY', 'SEEK', 'SEGMENT', 'SEGMENT-LIMIT',
-            'SELECT-ALL', 'SELECTION-INDEX', 'SELECTION-TEXT',
-            'SELECTIVE', 'SELF', 'SELF-ACT', 'SELFCLASS', 'SEMAPHORE-POINTER',
-            'SEND', 'SENTENCE', 'SEPARATE', 'SEPARATION', 'SEQUENCE',
-            'SEQUENTIAL', 'SETTER', 'SHADING', 'SHADOW',
-            'SHARING', 'SHIFT-IN', 'SHIFT-OUT', 'SHORT-DATE', 'SHOW-LINES',
-            'SHOW-NONE', 'SHOW-SEL-ALWAYS', 'SIGNED', 'SIGNED-INT',
-            'SIGNED-LONG', 'SIGNED-SHORT', 'SIZE', 'SKIP1',
-            'SKIP2', 'SKIP3', 'SMALL-FONT', 'SORT-CONTROL',
-            'SORT-CORE-SIZE', 'SORT-FILE-SIZE', 'SORT-MERGE', 'SORT-MESSAGE',
-            'SORT-MODE-SIZE', 'SORT-OPTION', 'SORT-ORDER', 'SORT-RETURN',
-            'SORT-TAPE', 'SORT-TAPES', 'SOURCE', 'SOURCE-COMPUTER', 'SOURCES',
-            'SPACE', 'SPACE-FILL', 'SPACES', 'SPECIAL-NAMES', 'SPINNER', 'SQL',
-            'SQUARE', 'STANDARD', 'STANDARD-1', 'STANDARD-2', 'STANDARD-3',
-            'STANDARD-BINARY', 'STANDARD-DECIMAL',
-            'START-X', 'START-Y', 'STARTING', 'STATEMENT', 'STATIC',
-            'STATIC-LIST',
-            'STATUS', 'STATUS-BAR', 'STATUS-TEXT', 'STEP',
-            'STOP-BROWSER', 'STRONG', 'STYLE', 'SUB-QUEUE-1',
-            'SUB-QUEUE-2', 'SUB-QUEUE-3', 'SUBFILE', 'SUBWINDOW',
-            'SUFFIXING', 'SUPER', 'SYMBOL', 'SYMBOLIC',
-            'SYNCHRONIZED', 'SYSIN', 'SYSIPT', 'SYSLST', 'SYSOUT',
-            'SYSPCH', 'SYSPUNCH', 'SYSTEM', 'SYSTEM-DEFAULT', 'SYSTEM-INFO',
-            'TAB', 'TAB-CONTROL', 'TAB-TO-ADD', 'TAB-TO-DELETE', 'TABLE',
-            'TALLY', 'TALLYING', 'TAPE', 'TAPES', 'TEMPORARY', 'TERMINAL',
-            'TERMINAL-INFO', 'TERMINATION-VALUE', 'TEST', 'TEXT',
-            'THAN', 'THEN', 'THREAD', 'THREAD-LOCAL', 'THREAD-LOCAL-STORAGE',
-            'THREAD-POINTER', 'THROUGH', 'THRU', 'THUMB-POSITION',
-            'TILED-HEADINGS', 'TIME', 'TIME-OF-DAY', 'TIME-OUT', 'TIME-RECORD',
-            'TIMEOUT', 'TIMES', 'TIMESTAMP', 'TIMESTAMP-OFFSET',
-            'TIMESTAMP-OFFSET-RECORD', 'TIMESTAMP-RECORD', 'TITLE', 'TITLE-BAR',
-            'TITLE-POSITION', 'TO', 'TOOL-BAR', 'TOP', 'TOTALED', 'TOTALING',
-            'TOWARD-GREATER', 'TOWARD-LESSER',
-            'TRACE', 'TRACK-AREA', 'TRACK-LIMIT', 'TRACK-THUMB', 'TRACKS',
-            'TRADITIONAL-FONT', 'TRAILING', 'TRAILING-SHIFT', 'TRAILING-SIGN',
-            'TRANSACTION', 'TRANSPARENT', 'TRANSPARENT-COLOR',
-            'TREE-VIEW', 'TRUE', 'TRUNCATION', 'TYPE', 'TYPEDEF', 'UCS-4',
-            'UNDERLINE', 'UNDERLINED', 'UNEQUAL', 'UNFRAMED', 'UNIT', 'UNITS',
-            'UNIVERSAL', 'UNSIGNED', 'UNSIGNED-INT', 'UNSIGNED-LONG',
-            'UNSIGNED-SHORT',
-            'UNSORTED', 'UP', 'UPDATE', 'UNTIL', 'UPON', 'UPPER',
-            'UPSI-0', 'UPSI-1', 'UPSI-2', 'UPSI-3', 'UPSI-4', 'UPSI-5',
-            'UPSI-6', 'UPSI-7', 'USAGE', 'USE-ALT', 'USE-RETURN',
-            'USE-TAB', 'USER', 'USER-COLORS', 'USER-DEFAULT', 'USER-GRAY',
-            'USER-WHITE', 'USING', 'UTF-16', 'UTF-8', 'VALID',
-            'VAL-STATUS', 'VALIDATE-STATUS',
-            'VALUE', 'VALUE-FORMAT', 'VALUES', 'VALUETYPE', 'VALUETYPE-ID',
-            'VARBINARY', 'VARIABLE', 'VARIANT', 'VARYING', 'VERTICAL',
-            'VERY-HEAVY', 'VIRTUAL-WIDTH', 'VISIBLE', 'VPADDING', 'VSCROLL',
-            'VSCROLL-BAR', 'VSCROLL-POS', 'VTOP', 'WEB-BROWSER', 'WHEN',
-            'WHERE', 'WIDTH', 'WIDTH-IN-CELLS', 'WINDOW',
-            'WITH', 'WORDS', 'WORKING-STORAGE', 'WRAP', 'WRITE-ONLY',
-            'WRITE-VERIFY', 'WRITING', ' XML', 'XML ', 'XML-CODE', 'XML-EVENT',
-            'XML-NTEXT', 'XML-TEXT', 'YIELDING', 'YYYYDDD', 'YYYYMMDD', 'ZERO',
-            'ZERO-FILL', 'ZEROES', 'ZEROS'
-            ),
-        3 => array( // Statement Keywords containing no spaces.
-            'ACCEPT', 'ADD', 'ALTER', 'ALLOCATE', 'ATTACH', 'CALL', 'CANCEL',
-            'CHAIN', 'CREATE',
-            'CLOSE', 'COLOR', 'COMPUTE', 'COMMIT', 'CONTINUE',
-            'COPY', 'DECLARE', 'DELEGATE', 'DELETE', 'DETACH', 'DISPLAY',
-            'DIVIDE',
-            'ENTER', 'ENTRY', 'EVALUATE', 'EXAMINE',
-            'EXEC', 'EXECUTE', 'EXHIBIT', 'EXIT', 'FREE', 'GOBACK',
-            'IF',  'INITIALIZE', 'INITIATE', 'INSPECT', 'INVOKE', 'MERGE',
-            'MODIFY', 'MOVE', 'MULTIPLY', 'NOTE', 'ON', 'OPEN',
-            'PERFORM', 'RAISE', 'READ', 'RECEIVE', 'RELEASE', 'RETURN',
-            'RESET', 'RESUME',
-            'REWRITE', 'ROLLBACK', 'SEARCH', 'SELECT', 'SERVICE', 'SET', 'SORT',
-            'START', 'STOP', 'STRING', 'SUBTRACT', 'SYNC',
-            'SUPPRESS', 'TERMINATE',
-            'TRANSFORM', 'TRY', 'UNLOCKFILE', 'UNLOCK', 'UNSTRING', 'USE',
-            'VALIDATE', 'WAIT', 'WRITE'
-            ),
-        4 => array( // Intrinsic functions
-            'ABS', 'ACOS', 'ANNUITY', 'ASIN', 'ATAN', 'BOOLEAN-OF-INTEGER',
-            'BYTE-LENGTH', 'CHAR', 'CHAR-NATIONAL',
-            'COS', 'COMBINED-DATETIME', 'CONCATENATE', 'CURRENT-DATE',
-            'DATE-OF-INTEGER', 'DATE-TO-YYYYMMDD', 'DAY-TO-YYYYDDD',
-            'DAY-OF-INTEGER', 'DISPLAY-OF', 'E', 'EXCEPTION-FILE',
-            'EXCEPTION-FILE-N', 'EXCEPTION-LOCATION',
-            'EXCEPTION-LOCATION-N', 'EXCEPTION-STATEMENT', 'EXCEPTION-STATUS',
-            'EXP', 'EXP10', 'FACTORIAL', 'FORMATTED-CURRENT-DATE',
-            'FORMATTED-DATE', 'FORMATTED-DATETIME', 'FORMATTED-TIME',
-            'FRACTION-PART', 'HIGHEST-ALGEBRAIC', 'INTEGER',
-            'INTEGER-OF-BOOLEAN', 'INTEGER-OF-DATE', 'INTEGER-OF-DAY',
-            'INTEGER-OF-FORMATTED-DATE', 'INTEGER-PART', 'LENGTH',
-            'LOCALE-COMPARE',
-            'LOCALE-DATE', 'LOCALE-TIME', 'LOCALE-TIME-FROM-SECONDS',
-            'LOCALE-TIME-FROM-SECS', 'LOG',
-            'LOG10', 'LOWER-CASE', 'LOWEST-ALGEBRAIC',
-            'MAX', 'MEAN', 'MEDIAN', 'MIDRANGE',
-            'MIN', 'MOD', 'NATIONAL-OF', 'NUMVAL', 'NUMVAL-C', 'NUMVAL-F',
-            'ORD', 'ORD-MAX', 'ORD-MIN',
-            'PI', 'PRESENT-VALUE', 'RANDOM', 'RANGE', 'REM', 'REVERSE',
-            'SECONDS-FROM-FORMATTED-TIME', 'SIGN', 'SIN', 'SQRT',
-            'SECONDS-PAST-MIDNIGHT', 'STANDARD-DEVIATION', 'STANDARD-COMPARE',
-            'STORED-CHAR-LENGTH',
-            'SUBSTITUTE', 'SUBSTITUE-CASE', 'SUM', 'TAN', 'TEST-DATE-YYYYMMDD',
-            'TEST-DAY-YYYYDDD', 'TEST-FORMATTED-TIME', 'TEST-NUMVAL',
-            'TEST-NUMVAL-C', 'TEST-NUMVAL-F',
-            'TRIM', 'UPPER-CASE', 'VARIANCE', 'YEAR-TO-YYYY', 'WHEN-COMPILED'
-            ),
-        ),
-    'SYMBOLS' => array(
-        //  Arithmetic and comparison operators must be surrounded by spaces.
-        ' + ', ' - ', ' * ', ' / ', ' ** ', ' ^ ',
-        '.', ',',
-        ' = ', ' < ', ' > ', ' >= ', ' <= ', ' <> ',
-        '(', ')', '[', ']'
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false,
-        2 => false,
-        3 => false,
-        4 => false,
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #000000; font-weight: bold;',
-            2 => 'color: #008000; font-weight: bold;',
-            3 => 'color: #000000; font-weight: bold;',
-            4 => 'color: #9d7700;',
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #a0a0a0; font-style: italic;',
-            2 => 'color: #000080; font-weight: bold;',
-            ),
-        'ESCAPE_CHAR' => array(
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #339933;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #ff0000;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #993399;'
-            ),
-        'METHODS' => array(
-            1 => 'color: #800080;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #000066;'
-            ),
-        'REGEXPS' => array(
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => '',
-        4 => ''
-        ),
-    'OOLANG' => true,
-    'OBJECT_SPLITTERS' => array(
-        1 => '::'
-        ),
-    'REGEXPS' => array(
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        ),
-    'TAB_WIDTH' => 4,
-    'PARSER_CONTROL' => array(
-        'KEYWORDS' => array(
-            'DISALLOWED_BEFORE' => '(?<![a-zA-Z0-9-\$_\|\#|^&])',
-        ),
-    ),
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/coffeescript.php b/wiki/vendor/geshi/geshi/src/geshi/coffeescript.php
deleted file mode 100644
index 9656668..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/coffeescript.php
+++ /dev/null
@@ -1,144 +0,0 @@
-<?php
-/*************************************************************************************
- * coffeescript.php
- * ----------
- * Author: Trevor Burnham (trevorburnham@gmail.com)
- * Copyright: (c) 2010 Trevor Burnham (http://iterative.ly)
- * Release Version: 1.0.9.0
- * Date Started: 2010/06/08
- *
- * CoffeeScript language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2010/06/08 (1.0.8.9)
- *  -  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' => 'CoffeeScript',
-    'COMMENT_SINGLE' => array(1 => '#'),
-    'COMMENT_MULTI' => array('###' => '###'),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    //Longest quotemarks ALWAYS first
-    'QUOTEMARKS' => array('"""', "'''", '"', "'"),
-    'ESCAPE_CHAR' => '\\',
-    'KEYWORDS' => array(
-
-        /*
-        ** Set 1: control keywords
-        */
-        1 => array(
-            'break', 'by', 'catch', 'continue', 'else', 'finally', 'for', 'in', 'of', 'if',
-            'return', 'switch', 'then', 'throw', 'try', 'unless', 'when', 'while', 'until'
-            ),
-
-        /*
-        ** Set 2: logic keywords
-        */
-        2 => array(
-            'and', 'or', 'is', 'isnt', 'not'
-            ),
-
-        /*
-        ** Set 3: other keywords
-        */
-        3 => array(
-            'instanceof', 'new', 'delete', 'typeof',
-            'class', 'super', 'this', 'extends'
-            ),
-
-        /*
-        ** Set 4: constants
-        */
-        4 => array(
-            'true', 'false', 'on', 'off', 'yes', 'no',
-            'Infinity', 'NaN', 'undefined', 'null'
-            )
-        ),
-    '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;',
-            2 => 'color: #008000;',
-            3 => 'color: #dc143c;',
-            4 => 'color: #0000cd;'
-            ),
-        '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_MAYBE,
-    'SCRIPT_DELIMITERS' => array(
-        0 => array(
-            '<script type="text/coffeescript">' => '</script>'
-            )
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        0 => true
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/cpp-qt.php b/wiki/vendor/geshi/geshi/src/geshi/cpp-qt.php
deleted file mode 100644
index 40b7e5a..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/cpp-qt.php
+++ /dev/null
@@ -1,622 +0,0 @@
-<?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/wiki/vendor/geshi/geshi/src/geshi/cpp-winapi.php b/wiki/vendor/geshi/geshi/src/geshi/cpp-winapi.php
deleted file mode 100644
index b8bc6cc..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/cpp-winapi.php
+++ /dev/null
@@ -1,836 +0,0 @@
-<?php
-/*************************************************************************************
- * cpp-winapi.php
- * -------
- * Author: Dennis Bayer (Dennis.Bayer@mnifh-giessen.de)
- * Contributors:
- *  - M. Uli Kusterer (witness.of.teachtext@gmx.net)
- *  - 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.9.0
- * Date Started: 2004/09/27
- *
- * C++ language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2008/05/23 (1.0.7.22)
- *  -  Added description of extra language features (SF#1970248)
- * 2004/XX/XX (1.0.2)
- *  -  Added several new keywords (Jack Lloyd)
- * 2004/11/27 (1.0.1)
- *  -  Added StdCLib function and constant names, changed color scheme to
- *     a cleaner one. (M. Uli Kusterer)
- *  -  Added support for multiple object splitters
- * 2004/10/27 (1.0.0)
- *  -  First Release
- *
- * TODO (updated 2004/11/27)
- * -------------------------
- *
- *************************************************************************************
- *
- *     This file is part of GeSHi.
- *
- *   GeSHi is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   GeSHi is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with GeSHi; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- ************************************************************************************/
-
-$language_data = array (
-    'LANG_NAME' => 'C++ (WinAPI)',
-    '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(
-            'break', 'case', 'continue', 'default', 'do', 'else', 'for', 'goto', 'if', 'return',
-            'switch', 'throw', 'while'
-            ),
-        2 => array(
-            'NULL', 'false', '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'
-            ),
-        3 => array(
-            'cin', 'cerr', 'clog', 'cout', 'delete', 'new', 'this',
-            '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'
-            ),
-        // Public API
-        5 => array(
-            'AssignProcessToJobObject', 'CommandLineToArgvW', 'ConvertThreadToFiber',
-            'CreateFiber', 'CreateJobObjectA', 'CreateJobObjectW', 'CreateProcessA',
-            'CreateProcessAsUserA', 'CreateProcessAsUserW', 'CreateProcessW',
-            'CreateRemoteThread', 'CreateThread', 'DeleteFiber', 'ExitProcess',
-            'ExitThread', 'FreeEnvironmentStringsA', 'FreeEnvironmentStringsW',
-            'GetCommandLineA', 'GetCommandLineW', 'GetCurrentProcess',
-            'GetCurrentProcessId', 'GetCurrentThread', 'GetCurrentThreadId',
-            'GetEnvironmentStringsA', 'GetEnvironmentStringsW',
-            'GetEnvironmentVariableA', 'GetEnvironmentVariableW', 'GetExitCodeProcess',
-            'GetExitCodeThread', 'GetGuiResources', 'GetPriorityClass',
-            'GetProcessAffinityMask', 'GetProcessPriorityBoost',
-            'GetProcessShutdownParameters', 'GetProcessTimes', 'GetProcessVersion',
-            'GetProcessWorkingSetSize', 'GetStartupInfoA', 'GetStartupInfoW',
-            'GetThreadPriority', 'GetThreadPriorityBoost', 'GetThreadTimes',
-            'OpenJobObjectA', 'OpenJobObjectW', 'OpenProcess',
-            'QueryInformationJobObject', 'ResumeThread', 'SetEnvironmentVariableA',
-            'SetEnvironmentVariableW', 'SetInformationJobObject', 'SetPriorityClass',
-            'SetProcessAffinityMask', 'SetProcessPriorityBoost',
-            'SetProcessShutdownParameters', 'SetProcessWorkingSetSize',
-            'SetThreadAffinityMask', 'SetThreadIdealProcessor', 'SetThreadPriority',
-            'SetThreadPriorityBoost', 'Sleep', 'SleepEx', 'SuspendThread',
-            'SwitchToFiber', 'SwitchToThread', 'TerminateJobObject', 'TerminateProcess',
-            'TerminateThread', 'WaitForInputIdle', 'WinExec',
-
-            '_hread', '_hwrite', '_lclose', '_lcreat', '_llseek', '_lopen', '_lread',
-            '_lwrite', 'AreFileApisANSI', 'CancelIo', 'CopyFileA', 'CopyFileW',
-            'CreateDirectoryA', 'CreateDirectoryExA', 'CreateDirectoryExW',
-            'CreateDirectoryW', 'CreateFileA', 'CreateFileW', 'DeleteFileA',
-            'DeleteFileW', 'FindClose', 'FindCloseChangeNotification',
-            'FindFirstChangeNotificationA', 'FindFirstChangeNotificationW',
-            'FindFirstFileA', 'FindFirstFileW', 'FindNextFileA', 'FindNextFileW',
-            'FlushFileBuffers', 'GetCurrentDirectoryA', 'GetCurrentDirectoryW',
-            'GetDiskFreeSpaceA', 'GetDiskFreeSpaceExA', 'GetDiskFreeSpaceExW',
-            'GetDiskFreeSpaceW', 'GetDriveTypeA', 'GetDriveTypeW', 'GetFileAttributesA',
-            'GetFileAttributesExA', 'GetFileAttributesExW', 'GetFileAttributesW',
-            'GetFileInformationByHandle', 'GetFileSize', 'GetFileType',
-            'GetFullPathNameA', 'GetFullPathNameW', 'GetLogicalDrives',
-            'GetLogicalDriveStringsA', 'GetLogicalDriveStringsW', 'GetLongPathNameA',
-            'GetLongPathNameW', 'GetShortPathNameA', 'GetShortPathNameW',
-            'GetTempFileNameA', 'GetTempFileNameW', 'GetTempPathA', 'GetTempPathW',
-            'LockFile', 'MoveFileA', 'MoveFileW', 'MulDiv', 'OpenFile',
-            'QueryDosDeviceA', 'QueryDosDeviceW', 'ReadFile', 'ReadFileEx',
-            'RemoveDirectoryA', 'RemoveDirectoryW', 'SearchPathA', 'SearchPathW',
-            'SetCurrentDirectoryA', 'SetCurrentDirectoryW', 'SetEndOfFile',
-            'SetFileApisToANSI', 'SetFileApisToOEM', 'SetFileAttributesA',
-            'SetFileAttributesW', 'SetFilePointer', 'SetHandleCount',
-            'SetVolumeLabelA', 'SetVolumeLabelW', 'UnlockFile', 'WriteFile',
-            'WriteFileEx',
-
-            'DeviceIoControl',
-
-            'GetModuleFileNameA', 'GetModuleFileNameW', 'GetProcAddress',
-            'LoadLibraryA', 'LoadLibraryExA', 'LoadLibraryExW', 'LoadLibraryW',
-            'LoadModule',
-
-            'GetPrivateProfileIntA', 'GetPrivateProfileIntW',
-            'GetPrivateProfileSectionA', 'GetPrivateProfileSectionNamesA',
-            'GetPrivateProfileSectionNamesW', 'GetPrivateProfileSectionW',
-            'GetPrivateProfileStringA', 'GetPrivateProfileStringW',
-            'GetPrivateProfileStructA', 'GetPrivateProfileStructW',
-            'GetProfileIntA', 'GetProfileIntW', 'GetProfileSectionA',
-            'GetProfileSectionW', 'GetProfileStringA', 'GetProfileStringW',
-            'RegCloseKey', 'RegConnectRegistryA', 'RegConnectRegistryW',
-            'RegCreateKeyA', 'RegCreateKeyExA', 'RegCreateKeyExW',
-            'RegCreateKeyW', 'RegDeleteKeyA', 'RegDeleteKeyW', 'RegDeleteValueA',
-            'RegDeleteValueW', 'RegEnumKeyA', 'RegEnumKeyExA', 'RegEnumKeyExW',
-            'RegEnumKeyW', 'RegEnumValueA', 'RegEnumValueW', 'RegFlushKey',
-            'RegGetKeySecurity', 'RegLoadKeyA', 'RegLoadKeyW',
-            'RegNotifyChangeKeyValue', 'RegOpenKeyA', 'RegOpenKeyExA', 'RegOpenKeyExW',
-            'RegOpenKeyW', 'RegOverridePredefKey', 'RegQueryInfoKeyA',
-            'RegQueryInfoKeyW', 'RegQueryMultipleValuesA', 'RegQueryMultipleValuesW',
-            'RegQueryValueA', 'RegQueryValueExA', 'RegQueryValueExW', 'RegQueryValueW',
-            'RegReplaceKeyA', 'RegReplaceKeyW', 'RegRestoreKeyA', 'RegRestoreKeyW',
-            'RegSaveKeyA', 'RegSaveKeyW', 'RegSetKeySecurity', 'RegSetValueA',
-            'RegSetValueExA', 'RegSetValueExW', 'RegSetValueW', 'RegUnLoadKeyA',
-            'RegUnLoadKeyW', 'WritePrivateProfileSectionA', 'WritePrivateProfileSectionW',
-            'WritePrivateProfileStringA', 'WritePrivateProfileStringW',
-            'WritePrivateProfileStructA', 'WritePrivateProfileStructW',
-            'WriteProfileSectionA', 'WriteProfileSectionW', 'WriteProfileStringA',
-            'WriteProfileStringW',
-
-            'AccessCheck', 'AccessCheckAndAuditAlarmA', 'AccessCheckAndAuditAlarmW',
-            'AccessCheckByType', 'AccessCheckByTypeAndAuditAlarmA',
-            'AccessCheckByTypeAndAuditAlarmW', 'AccessCheckByTypeResultList',
-            'AccessCheckByTypeResultListAndAuditAlarmA', 'AccessCheckByTypeResultListAndAuditAlarmW',
-            'AddAccessAllowedAce', 'AddAccessAllowedAceEx', 'AddAccessAllowedObjectAce',
-            'AddAccessDeniedAce', 'AddAccessDeniedAceEx', 'AddAccessDeniedObjectAce',
-            'AddAce', 'AddAuditAccessAce', 'AddAuditAccessAceEx', 'AddAuditAccessObjectAce',
-            'AdjustTokenGroups', 'AdjustTokenPrivileges', 'AllocateAndInitializeSid',
-            'AllocateLocallyUniqueId', 'AreAllAccessesGranted', 'AreAnyAccessesGranted',
-            'BuildExplicitAccessWithNameA', 'BuildExplicitAccessWithNameW',
-            'BuildImpersonateExplicitAccessWithNameA', 'BuildImpersonateExplicitAccessWithNameW',
-            'BuildImpersonateTrusteeA', 'BuildImpersonateTrusteeW', 'BuildSecurityDescriptorA',
-            'BuildSecurityDescriptorW', 'BuildTrusteeWithNameA', 'BuildTrusteeWithNameW',
-            'BuildTrusteeWithSidA', 'BuildTrusteeWithSidW',
-            'ConvertToAutoInheritPrivateObjectSecurity', 'CopySid', 'CreatePrivateObjectSecurity',
-            'CreatePrivateObjectSecurityEx', 'CreateRestrictedToken', 'DeleteAce',
-            'DestroyPrivateObjectSecurity', 'DuplicateToken', 'DuplicateTokenEx',
-            'EqualPrefixSid', 'EqualSid', 'FindFirstFreeAce', 'FreeSid', 'GetAce',
-            'GetAclInformation', 'GetAuditedPermissionsFromAclA', 'GetAuditedPermissionsFromAclW',
-            'GetEffectiveRightsFromAclA', 'GetEffectiveRightsFromAclW',
-            'GetExplicitEntriesFromAclA', 'GetExplicitEntriesFromAclW', 'GetFileSecurityA',
-            'GetFileSecurityW', 'GetKernelObjectSecurity', 'GetLengthSid', 'GetMultipleTrusteeA',
-            'GetMultipleTrusteeOperationA', 'GetMultipleTrusteeOperationW', 'GetMultipleTrusteeW',
-            'GetNamedSecurityInfoA', 'GetNamedSecurityInfoW', 'GetPrivateObjectSecurity',
-            'GetSecurityDescriptorControl', 'GetSecurityDescriptorDacl',
-            'GetSecurityDescriptorGroup', 'GetSecurityDescriptorLength',
-            'GetSecurityDescriptorOwner', 'GetSecurityDescriptorSacl', 'GetSecurityInfo',
-            'GetSidIdentifierAuthority', 'GetSidLengthRequired', 'GetSidSubAuthority',
-            'GetSidSubAuthorityCount', 'GetTokenInformation', 'GetTrusteeFormA',
-            'GetTrusteeFormW', 'GetTrusteeNameA', 'GetTrusteeNameW', 'GetTrusteeTypeA',
-            'GetTrusteeTypeW', 'GetUserObjectSecurity', 'ImpersonateLoggedOnUser',
-            'ImpersonateNamedPipeClient', 'ImpersonateSelf', 'InitializeAcl',
-            'InitializeSecurityDescriptor', 'InitializeSid', 'IsTokenRestricted', 'IsValidAcl',
-            'IsValidSecurityDescriptor', 'IsValidSid', 'LogonUserA', 'LogonUserW',
-            'LookupAccountNameA', 'LookupAccountNameW', 'LookupAccountSidA', 'LookupAccountSidW',
-            'LookupPrivilegeDisplayNameA', 'LookupPrivilegeDisplayNameW', 'LookupPrivilegeNameA',
-            'LookupPrivilegeNameW', 'LookupPrivilegeValueA', 'LookupPrivilegeValueW',
-            'LookupSecurityDescriptorPartsA', 'LookupSecurityDescriptorPartsW', 'MakeAbsoluteSD',
-            'MakeSelfRelativeSD', 'MapGenericMask', 'ObjectCloseAuditAlarmA',
-            'ObjectCloseAuditAlarmW', 'ObjectDeleteAuditAlarmA', 'ObjectDeleteAuditAlarmW',
-            'ObjectOpenAuditAlarmA', 'ObjectOpenAuditAlarmW', 'ObjectPrivilegeAuditAlarmA',
-            'ObjectPrivilegeAuditAlarmW', 'OpenProcessToken', 'OpenThreadToken', 'PrivilegeCheck',
-            'PrivilegedServiceAuditAlarmA', 'PrivilegedServiceAuditAlarmW', 'RevertToSelf',
-            'SetAclInformation', 'SetEntriesInAclA', 'SetEntriesInAclW', 'SetFileSecurityA',
-            'SetFileSecurityW', 'SetKernelObjectSecurity', 'SetNamedSecurityInfoA',
-            'SetNamedSecurityInfoW', 'SetPrivateObjectSecurity', 'SetPrivateObjectSecurityEx',
-            'SetSecurityDescriptorControl', 'SetSecurityDescriptorDacl',
-            'SetSecurityDescriptorGroup', 'SetSecurityDescriptorOwner',
-            'SetSecurityDescriptorSacl', 'SetSecurityInfo', 'SetThreadToken',
-            'SetTokenInformation', 'SetUserObjectSecurity', 'ChangeServiceConfig2A',
-            'ChangeServiceConfig2W', 'ChangeServiceConfigA', 'ChangeServiceConfigW',
-            'CloseServiceHandle', 'ControlService', 'CreateServiceA', 'CreateServiceW',
-            'DeleteService', 'EnumDependentServicesA', 'EnumDependentServicesW',
-            'EnumServicesStatusA', 'EnumServicesStatusW', 'GetServiceDisplayNameA',
-            'GetServiceDisplayNameW', 'GetServiceKeyNameA', 'GetServiceKeyNameW',
-            'LockServiceDatabase', 'NotifyBootConfigStatus', 'OpenSCManagerA', 'OpenSCManagerW',
-            'OpenServiceA', 'OpenServiceW', 'QueryServiceConfig2A', 'QueryServiceConfig2W',
-            'QueryServiceConfigA', 'QueryServiceConfigW', 'QueryServiceLockStatusA',
-            'QueryServiceLockStatusW', 'QueryServiceObjectSecurity', 'QueryServiceStatus',
-            'RegisterServiceCtrlHandlerA', 'RegisterServiceCtrlHandlerW',
-            'SetServiceObjectSecurity', 'SetServiceStatus', 'StartServiceA',
-            'StartServiceCtrlDispatcherA', 'StartServiceCtrlDispatcherW', 'StartServiceW',
-            'UnlockServiceDatabase',
-
-            'MultinetGetConnectionPerformanceA', 'MultinetGetConnectionPerformanceW',
-            'NetAlertRaise', 'NetAlertRaiseEx', 'NetApiBufferAllocate', 'NetApiBufferFree',
-            'NetApiBufferReallocate', 'NetApiBufferSize', 'NetConnectionEnum', 'NetFileClose',
-            'NetFileGetInfo', 'NetGetAnyDCName', 'NetGetDCName', 'NetGetDisplayInformationIndex',
-            'NetGroupAdd', 'NetGroupAddUser', 'NetGroupDel', 'NetGroupDelUser', 'NetGroupEnum',
-            'NetGroupGetInfo', 'NetGroupGetUsers', 'NetGroupSetInfo', 'NetGroupSetUsers',
-            'NetLocalGroupAdd', 'NetLocalGroupAddMember', 'NetLocalGroupAddMembers',
-            'NetLocalGroupDel', 'NetLocalGroupDelMember', 'NetLocalGroupDelMembers',
-            'NetLocalGroupEnum', 'NetLocalGroupGetInfo', 'NetLocalGroupGetMembers',
-            'NetLocalGroupSetInfo', 'NetLocalGroupSetMembers', 'NetMessageBufferSend',
-            'NetMessageNameAdd', 'NetMessageNameDel', 'NetMessageNameEnum',
-            'NetMessageNameGetInfo', 'NetQueryDisplayInformation', 'NetRemoteComputerSupports',
-            'NetRemoteTOd', 'NetReplExportDirAdd', 'NetReplExportDirDel', 'NetReplExportDirEnum',
-            'NetReplExportDirGetInfo', 'NetReplExportDirLock', 'NetReplExportDirSetInfo',
-            'NetReplExportDirUnlock', 'NetReplGetInfo', 'NetReplImportDirAdd',
-            'NetReplImportDirDel', 'NetReplImportDirEnum', 'NetReplImportDirGetInfo',
-            'NetReplImportDirLock', 'NetReplImportDirUnlock', 'NetReplSetInfo',
-            'NetScheduleJobAdd', 'NetScheduleJobDel', 'NetScheduleJobEnum',
-            'NetScheduleJobGetInfo', 'NetServerComputerNameAdd', 'NetServerComputerNameDel',
-            'NetServerDiskEnum', 'NetServerEnum', 'NetServerEnumEx', 'NetServerGetInfo',
-            'NetServerSetInfo', 'NetServerTransportAdd', 'NetServerTransportAddEx',
-            'NetServerTransportDel', 'NetServerTransportEnum', 'NetSessionDel', 'NetSessionEnum',
-            'NetSessionGetInfo', 'NetShareAdd', 'NetShareCheck', 'NetShareDel', 'NetShareEnum',
-            'NetShareGetInfo', 'NetShareSetInfo', 'NetStatisticsGet', 'NetUseAdd', 'NetUseDel',
-            'NetUseEnum', 'NetUseGetInfo', 'NetUserAdd', 'NetUserChangePassword', 'NetUserDel',
-            'NetUserEnum', 'NetUserGetGroups', 'NetUserGetInfo', 'NetUserGetLocalGroups',
-            'NetUserModalsGet', 'NetUserModalsSet', 'NetUserSetGroups', 'NetUserSetInfo',
-            'NetWkstaGetInfo', 'NetWkstaSetInfo', 'NetWkstaTransportAdd', 'NetWkstaTransportDel',
-            'NetWkstaTransportEnum', 'NetWkstaUserEnum', 'NetWkstaUserGetInfo',
-            'NetWkstaUserSetInfo', 'WNetAddConnection2A', 'WNetAddConnection2W',
-            'WNetAddConnection3A', 'WNetAddConnection3W', 'WNetAddConnectionA',
-            'WNetAddConnectionW', 'WNetCancelConnection2A', 'WNetCancelConnection2W',
-            'WNetCancelConnectionA', 'WNetCancelConnectionW', 'WNetCloseEnum',
-            'WNetConnectionDialog', 'WNetConnectionDialog1A', 'WNetConnectionDialog1W',
-            'WNetDisconnectDialog', 'WNetDisconnectDialog1A', 'WNetDisconnectDialog1W',
-            'WNetEnumResourceA', 'WNetEnumResourceW', 'WNetGetConnectionA', 'WNetGetConnectionW',
-            'WNetGetLastErrorA', 'WNetGetLastErrorW', 'WNetGetNetworkInformationA',
-            'WNetGetNetworkInformationW', 'WNetGetProviderNameA', 'WNetGetProviderNameW',
-            'WNetGetResourceInformationA', 'WNetGetResourceInformationW',
-            'WNetGetResourceParentA', 'WNetGetResourceParentW', 'WNetGetUniversalNameA',
-            'WNetGetUniversalNameW', 'WNetGetUserA', 'WNetGetUserW', 'WNetOpenEnumA',
-            'WNetOpenEnumW', 'WNetUseConnectionA', 'WnetUseConnectionW',
-
-            'accept', 'bind', 'closesocket', 'connect', 'gethostbyaddr', 'gethostbyname',
-            'gethostname', 'getpeername', 'getprotobyname', 'getprotobynumber', 'getservbyname',
-            'getservbyport', 'getsockname', 'getsockopt', 'htonl', 'htons', 'inet_addr',
-            'inet_ntoa', 'ioctlsocket', 'listen', 'ntohl', 'ntohs', 'recv', 'recvfrom', 'select',
-            'send', 'sendto', 'setsockopt', 'shutdown', 'socket', 'WSAAccept',
-            'WSAAddressToStringA', 'WSAAddressToStringW', 'WSAAsyncGetHostByAddr',
-            'WSAAsyncGetHostByName', 'WSAAsyncGetProtoByName', 'WSAAsyncGetProtoByNumber',
-            'WSAAsyncGetServByName', 'WSAAsyncGetServByPort', 'WSAAsyncSelect',
-            'WSACancelAsyncRequest', 'WSACancelBlockingCall', 'WSACleanup', 'WSACloseEvent',
-            'WSAConnect', 'WSACreateEvent', 'WSADuplicateSocketA', 'WSADuplicateSocketW',
-            'WSAEnumNameSpaceProvidersA', 'WSAEnumNameSpaceProvidersW', 'WSAEnumNetworkEvents',
-            'WSAEnumProtocolsA', 'WSAEnumProtocolsW', 'WSAEventSelect', 'WSAGetLastError',
-            'WSAGetOverlappedResult', 'WSAGetQOSByName', 'WSAGetServiceClassInfoA',
-            'WSAGetServiceClassInfoW', 'WSAGetServiceClassNameByClassIdA',
-            'WSAGetServiceClassNameByClassIdW', 'WSAHtonl', 'WSAHtons', 'WSAInstallServiceClassA',
-            'WSAInstallServiceClassW', 'WSAIoctl', 'WSAIsBlocking', 'WSAJoinLeaf',
-            'WSALookupServiceBeginA', 'WSALookupServiceBeginW', 'WSALookupServiceEnd',
-            'WSALookupServiceNextA', 'WSALookupServiceNextW', 'WSANtohl', 'WSANtohs',
-            'WSAProviderConfigChange', 'WSARecv', 'WSARecvDisconnect', 'WSARecvFrom',
-            'WSARemoveServiceClass', 'WSAResetEvent', 'WSASend', 'WSASendDisconnect', 'WSASendTo',
-            'WSASetBlockingHook', 'WSASetEvent', 'WSASetLastError', 'WSASetServiceA',
-            'WSASetServiceW', 'WSASocketA', 'WSASocketW', 'WSAStartup', 'WSAStringToAddressA',
-            'WSAStringToAddressW', 'WSAUnhookBlockingHook', 'WSAWaitForMultipleEvents',
-            'WSCDeinstallProvider', 'WSCEnableNSProvider', 'WSCEnumProtocols',
-            'WSCGetProviderPath', 'WSCInstallNameSpace', 'WSCInstallProvider',
-            'WSCUnInstallNameSpace',
-
-            'ContinueDebugEvent', 'DebugActiveProcess', 'DebugBreak', 'FatalExit',
-            'FlushInstructionCache', 'GetThreadContext', 'GetThreadSelectorEntry',
-            'IsDebuggerPresent', 'OutputDebugStringA', 'OutputDebugStringW', 'ReadProcessMemory',
-            'SetDebugErrorLevel', 'SetThreadContext', 'WaitForDebugEvent', 'WriteProcessMemory',
-
-            'CloseHandle', 'DuplicateHandle', 'GetHandleInformation', 'SetHandleInformation',
-
-            'AdjustWindowRect', 'AdjustWindowRectEx', 'AllowSetForegroundWindow',
-            'AnimateWindow', 'AnyPopup', 'ArrangeIconicWindows', 'BeginDeferWindowPos',
-            'BringWindowToTop', 'CascadeWindows', 'ChildWindowFromPoint',
-            'ChildWindowFromPointEx', 'CloseWindow', 'CreateWindowExA', 'CreateWindowExW',
-            'DeferWindowPos', 'DestroyWindow', 'EndDeferWindowPos', 'EnumChildWindows',
-            'EnumThreadWindows', 'EnumWindows', 'FindWindowA', 'FindWindowExA', 'FindWindowExW',
-            'FindWindowW', 'GetAltTabInfoA', 'GetAltTabInfoW', 'GetAncestor', 'GetClientRect',
-            'GetDesktopWindow', 'GetForegroundWindow', 'GetGUIThreadInfo', 'GetLastActivePopup',
-            'GetLayout', 'GetParent', 'GetProcessDefaultLayout', 'GetTitleBarInf', 'GetTopWindow',
-            'GetWindow', 'GetWindowInfo', 'GetWindowModuleFileNameA', 'GetWindowModuleFileNameW',
-            'GetWindowPlacement', 'GetWindowRect', 'GetWindowTextA', 'GetWindowTextLengthA',
-            'GetWindowTextLengthW', 'GetWindowTextW', 'GetWindowThreadProcessId', 'IsChild',
-            'IsIconic', 'IsWindow', 'IsWindowUnicode', 'IsWindowVisible', 'IsZoomed',
-            'LockSetForegroundWindow', 'MoveWindow', 'OpenIcon', 'RealChildWindowFromPoint',
-            'RealGetWindowClassA', 'RealGetWindowClassW', 'SetForegroundWindow',
-            'SetLayeredWindowAttributes', 'SetLayout', 'SetParent', 'SetProcessDefaultLayout',
-            'SetWindowPlacement', 'SetWindowPos', 'SetWindowTextA', 'SetWindowTextW',
-            'ShowOwnedPopups', 'ShowWindow', 'ShowWindowAsync', 'TileWindows',
-            'UpdateLayeredWindow', 'WindowFromPoint',
-
-            'CreateDialogIndirectParamA', 'CreateDialogIndirectParamW', 'CreateDialogParamA',
-            'CreateDialogParamW', 'DefDlgProcA', 'DefDlgProcW', 'DialogBoxIndirectParamA',
-            'DialogBoxIndirectParamW', 'DialogBoxParamA', 'DialogBoxParamW', 'EndDialog',
-            'GetDialogBaseUnits', 'GetDlgCtrlID', 'GetDlgItem', 'GetDlgItemInt',
-            'GetDlgItemTextA', 'GetDlgItemTextW', 'GetNextDlgGroupItem', 'GetNextDlgTabItem',
-            'IsDialogMessageA', 'IsDialogMessageW', 'MapDialogRect', 'MessageBoxA',
-            'MessageBoxExA', 'MessageBoxExW', 'MessageBoxIndirectA', 'MessageBoxIndirectW',
-            'MessageBoxW', 'SendDlgItemMessageA', 'SendDlgItemMessageW', 'SetDlgItemInt',
-            'SetDlgItemTextA', 'SetDlgItemTextW',
-
-            'GetWriteWatch', 'GlobalMemoryStatus', 'GlobalMemoryStatusEx', 'IsBadCodePtr',
-            'IsBadReadPtr', 'IsBadStringPtrA', 'IsBadStringPtrW', 'IsBadWritePtr',
-            'ResetWriteWatch', 'AllocateUserPhysicalPages', 'FreeUserPhysicalPages',
-            'MapUserPhysicalPages', 'MapUserPhysicalPagesScatter', 'GlobalAlloc', 'GlobalFlags',
-            'GlobalFree', 'GlobalHandle', 'GlobalLock', 'GlobalReAlloc', 'GlobalSize',
-            'GlobalUnlock', 'LocalAlloc', 'LocalFlags', 'LocalFree', 'LocalHandle', 'LocalLock',
-            'LocalReAlloc', 'LocalSize', 'LocalUnlock', 'GetProcessHeap', 'GetProcessHeaps',
-            'HeapAlloc', 'HeapCompact', 'HeapCreate', 'HeapDestroy', 'HeapFree', 'HeapLock',
-            'HeapReAlloc', 'HeapSize', 'HeapUnlock', 'HeapValidate', 'HeapWalk', 'VirtualAlloc',
-            'VirtualAllocEx', 'VirtualFree', 'VirtualFreeEx', 'VirtualLock', 'VirtualProtect',
-            'VirtualProtectEx', 'VirtualQuery', 'VirtualQueryEx', 'VirtualUnlock',
-            'GetFreeSpace', 'GlobalCompact', 'GlobalFix', 'GlobalUnfix', 'GlobalUnWire',
-            'GlobalWire', 'IsBadHugeReadPtr', 'IsBadHugeWritePtr', 'LocalCompact', 'LocalShrink',
-
-            'GetClassInfoA', 'GetClassInfoW', 'GetClassInfoExA', 'GetClassInfoExW',
-            'GetClassLongA', 'GetClassLongW', 'GetClassLongPtrA', 'GetClassLongPtrW',
-            'RegisterClassA', 'RegisterClassW', 'RegisterClassExA', 'RegisterClassExW',
-            'SetClassLongA', 'SetClassLongW', 'SetClassLongPtrA', 'SetClassLongPtrW',
-            'SetWindowLongA', 'SetWindowLongW', 'SetWindowLongPtrA', 'SetWindowLongPtrW',
-            'UnregisterClassA', 'UnregisterClassW', 'GetClassWord', 'GetWindowWord',
-            'SetClassWord', 'SetWindowWord'
-            ),
-        // Native API
-        6 => array(
-            'CsrAllocateCaptureBuffer', 'CsrAllocateCapturePointer', 'CsrAllocateMessagePointer',
-            'CsrCaptureMessageBuffer', 'CsrCaptureMessageString', 'CsrCaptureTimeout',
-            'CsrClientCallServer', 'CsrClientConnectToServer', 'CsrFreeCaptureBuffer',
-            'CsrIdentifyAlertableThread', 'CsrNewThread', 'CsrProbeForRead', 'CsrProbeForWrite',
-            'CsrSetPriorityClass',
-
-            'LdrAccessResource', 'LdrDisableThreadCalloutsForDll', 'LdrEnumResources',
-            'LdrFindEntryForAddress', 'LdrFindResource_U', 'LdrFindResourceDirectory_U',
-            'LdrGetDllHandle', 'LdrGetProcedureAddress', 'LdrInitializeThunk', 'LdrLoadDll',
-            'LdrProcessRelocationBlock', 'LdrQueryImageFileExecutionOptions',
-            'LdrQueryProcessModuleInformation', 'LdrShutdownProcess', 'LdrShutdownThread',
-            'LdrUnloadDll', 'LdrVerifyImageMatchesChecksum',
-
-            'NtAcceptConnectPort', 'ZwAcceptConnectPort', 'NtCompleteConnectPort',
-            'ZwCompleteConnectPort', 'NtConnectPort', 'ZwConnectPort', 'NtCreatePort',
-            'ZwCreatePort', 'NtImpersonateClientOfPort', 'ZwImpersonateClientOfPort',
-            'NtListenPort', 'ZwListenPort', 'NtQueryInformationPort', 'ZwQueryInformationPort',
-            'NtReadRequestData', 'ZwReadRequestData', 'NtReplyPort', 'ZwReplyPort',
-            'NtReplyWaitReceivePort', 'ZwReplyWaitReceivePort', 'NtReplyWaitReplyPort',
-            'ZwReplyWaitReplyPort', 'NtRequestPort', 'ZwRequestPort', 'NtRequestWaitReplyPort',
-            'ZwRequestWaitReplyPort', 'NtSecureConnectPort', 'ZwSecureConnectPort',
-            'NtWriteRequestData', 'ZwWriteRequestData',
-
-            'NtAccessCheck', 'ZwAccessCheck', 'NtAccessCheckAndAuditAlarm',
-            'ZwAccessCheckAndAuditAlarm', 'NtAccessCheckByType', 'ZwAccessCheckByType',
-            'NtAccessCheckByTypeAndAuditAlarm', 'ZwAccessCheckByTypeAndAuditAlarm',
-            'NtAccessCheckByTypeResultList', 'ZwAccessCheckByTypeResultList',
-            'NtAdjustGroupsToken', 'ZwAdjustGroupsToken', 'NtAdjustPrivilegesToken',
-            'ZwAdjustPrivilegesToken', 'NtCloseObjectAuditAlarm', 'ZwCloseObjectAuditAlarm',
-            'NtCreateToken', 'ZwCreateToken', 'NtDeleteObjectAuditAlarm',
-            'ZwDeleteObjectAuditAlarm', 'NtDuplicateToken', 'ZwDuplicateToken',
-            'NtFilterToken', 'ZwFilterToken', 'NtImpersonateThread', 'ZwImpersonateThread',
-            'NtOpenObjectAuditAlarm', 'ZwOpenObjectAuditAlarm', 'NtOpenProcessToken',
-            'ZwOpenProcessToken', 'NtOpenThreadToken', 'ZwOpenThreadToken', 'NtPrivilegeCheck',
-            'ZwPrivilegeCheck', 'NtPrivilegedServiceAuditAlarm', 'ZwPrivilegedServiceAuditAlarm',
-            'NtPrivilegeObjectAuditAlarm', 'ZwPrivilegeObjectAuditAlarm',
-            'NtQueryInformationToken', 'ZwQueryInformationToken', 'NtQuerySecurityObject',
-            'ZwQuerySecurityObject', 'NtSetInformationToken', 'ZwSetInformationToken',
-            'NtSetSecurityObject', 'ZwSetSecurityObject',
-
-            'NtAddAtom', 'ZwAddAtom', 'NtDeleteAtom', 'ZwDeleteAtom', 'NtFindAtom', 'ZwFindAtom',
-            'NtQueryInformationAtom', 'ZwQueryInformationAtom',
-
-            'NtAlertResumeThread', 'ZwAlertResumeThread', 'NtAlertThread', 'ZwAlertThread',
-            'NtCreateProcess', 'ZwCreateProcess', 'NtCreateThread', 'ZwCreateThread',
-            'NtCurrentTeb', 'NtDelayExecution', 'ZwDelayExecution', 'NtGetContextThread',
-            'ZwGetContextThread', 'NtOpenProcess', 'ZwOpenProcess', 'NtOpenThread',
-            'ZwOpenThread', 'NtQueryInformationProcess', 'ZwQueryInformationProcess',
-            'NtQueryInformationThread', 'ZwQueryInformationThread', 'NtQueueApcThread',
-            'ZwQueueApcThread', 'NtResumeThread', 'ZwResumeThread', 'NtSetContextThread',
-            'ZwSetContextThread', 'NtSetHighWaitLowThread', 'ZwSetHighWaitLowThread',
-            'NtSetInformationProcess', 'ZwSetInformationProcess', 'NtSetInformationThread',
-            'ZwSetInformationThread', 'NtSetLowWaitHighThread', 'ZwSetLowWaitHighThread',
-            'NtSuspendThread', 'ZwSuspendThread', 'NtTerminateProcess', 'ZwTerminateProcess',
-            'NtTerminateThread', 'ZwTerminateThread', 'NtTestAlert', 'ZwTestAlert',
-            'NtYieldExecution', 'ZwYieldExecution',
-
-            'NtAllocateVirtualMemory', 'ZwAllocateVirtualMemory', 'NtAllocateVirtualMemory64',
-            'ZwAllocateVirtualMemory64', 'NtAreMappedFilesTheSame', 'ZwAreMappedFilesTheSame',
-            'NtCreateSection', 'ZwCreateSection', 'NtExtendSection', 'ZwExtendSection',
-            'NtFlushVirtualMemory', 'ZwFlushVirtualMemory', 'NtFreeVirtualMemory',
-            'ZwFreeVirtualMemory', 'NtFreeVirtualMemory64', 'ZwFreeVirtualMemory64',
-            'NtLockVirtualMemory', 'ZwLockVirtualMemory', 'NtMapViewOfSection',
-            'ZwMapViewOfSection', 'NtMapViewOfVlmSection', 'ZwMapViewOfVlmSection',
-            'NtOpenSection', 'ZwOpenSection', 'NtProtectVirtualMemory', 'ZwProtectVirtualMemory',
-            'NtProtectVirtualMemory64', 'ZwProtectVirtualMemory64', 'NtQueryVirtualMemory',
-            'ZwQueryVirtualMemory', 'NtQueryVirtualMemory64', 'ZwQueryVirtualMemory64',
-            'NtReadVirtualMemory', 'ZwReadVirtualMemory', 'NtReadVirtualMemory64',
-            'ZwReadVirtualMemory64', 'NtUnlockVirtualMemory', 'ZwUnlockVirtualMemory',
-            'NtUnmapViewOfSection', 'ZwUnmapViewOfSection', 'NtUnmapViewOfVlmSection',
-            'ZwUnmapViewOfVlmSection', 'NtWriteVirtualMemory', 'ZwWriteVirtualMemory',
-            'NtWriteVirtualMemory64', 'ZwWriteVirtualMemory64',
-
-            'NtAssignProcessToJobObject', 'ZwAssignProcessToJobObject', 'NtCreateJobObject',
-            'ZwCreateJobObject', 'NtOpenJobObject', 'ZwOpenJobObject',
-            'NtQueryInformationJobObject', 'ZwQueryInformationJobObject',
-            'NtSetInformationJobObject', 'ZwSetInformationJobObject', 'NtTerminateJobObject',
-            'ZwTerminateJobObject',
-
-            'NtCancelIoFile', 'ZwCancelIoFile', 'NtCreateFile', 'ZwCreateFile',
-            'NtCreateIoCompletion', 'ZwCreateIoCompletion', 'NtDeleteFile', 'ZwDeleteFile',
-            'NtDeviceIoControlFile', 'ZwDeviceIoControlFile', 'NtFlushBuffersFile',
-            'ZwFlushBuffersFile', 'NtFsControlFile', 'ZwFsControlFile', 'NtLockFile', 'ZwLockFile',
-            'NtNotifyChangeDirectoryFile', 'ZwNotifyChangeDirectoryFile', 'NtOpenFile',
-            'ZwOpenFile', 'NtOpenIoCompletion', 'ZwOpenIoCompletion', 'NtQueryAttributesFile',
-            'ZwQueryAttributesFile', 'NtQueryDirectoryFile', 'ZwQueryDirectoryFile',
-            'NtQueryEaFile', 'ZwQueryEaFile', 'NtQueryIoCompletion', 'ZwQueryIoCompletion',
-            'NtQueryQuotaInformationFile', 'ZwQueryQuotaInformationFile',
-            'NtQueryVolumeInformationFile', 'ZwQueryVolumeInformationFile', 'NtReadFile',
-            'ZwReadFile', 'NtReadFile64', 'ZwReadFile64', 'NtReadFileScatter', 'ZwReadFileScatter',
-            'NtRemoveIoCompletion', 'ZwRemoveIoCompletion', 'NtSetEaFile', 'ZwSetEaFile',
-            'NtSetInformationFile', 'ZwSetInformationFile', 'NtSetIoCompletion',
-            'ZwSetIoCompletion', 'NtSetQuotaInformationFile', 'ZwSetQuotaInformationFile',
-            'NtSetVolumeInformationFile', 'ZwSetVolumeInformationFile', 'NtUnlockFile',
-            'ZwUnlockFile', 'NtWriteFile', 'ZwWriteFile', 'NtWriteFile64','ZwWriteFile64',
-            'NtWriteFileGather', 'ZwWriteFileGather', 'NtQueryFullAttributesFile',
-            'ZwQueryFullAttributesFile', 'NtQueryInformationFile', 'ZwQueryInformationFile',
-
-            'RtlAbortRXact', 'RtlAbsoluteToSelfRelativeSD', 'RtlAcquirePebLock',
-            'RtlAcquireResourceExclusive', 'RtlAcquireResourceShared', 'RtlAddAccessAllowedAce',
-            'RtlAddAccessDeniedAce', 'RtlAddAce', 'RtlAddActionToRXact', 'RtlAddAtomToAtomTable',
-            'RtlAddAttributeActionToRXact', 'RtlAddAuditAccessAce', 'RtlAddCompoundAce',
-            'RtlAdjustPrivilege', 'RtlAllocateAndInitializeSid', 'RtlAllocateHandle',
-            'RtlAllocateHeap', 'RtlAnsiCharToUnicodeChar', 'RtlAnsiStringToUnicodeSize',
-            'RtlAnsiStringToUnicodeString', 'RtlAppendAsciizToString', 'RtlAppendStringToString',
-            'RtlAppendUnicodeStringToString', 'RtlAppendUnicodeToString', 'RtlApplyRXact',
-            'RtlApplyRXactNoFlush', 'RtlAreAllAccessesGranted', 'RtlAreAnyAccessesGranted',
-            'RtlAreBitsClear', 'RtlAreBitsSet', 'RtlAssert', 'RtlCaptureStackBackTrace',
-            'RtlCharToInteger', 'RtlCheckRegistryKey', 'RtlClearAllBits', 'RtlClearBits',
-            'RtlClosePropertySet', 'RtlCompactHeap', 'RtlCompareMemory', 'RtlCompareMemoryUlong',
-            'RtlCompareString', 'RtlCompareUnicodeString', 'RtlCompareVariants',
-            'RtlCompressBuffer', 'RtlConsoleMultiByteToUnicodeN', 'RtlConvertExclusiveToShared',
-            'RtlConvertLongToLargeInteger', 'RtlConvertPropertyToVariant',
-            'RtlConvertSharedToExclusive', 'RtlConvertSidToUnicodeString',
-            'RtlConvertUiListToApiList', 'RtlConvertUlongToLargeInteger',
-            'RtlConvertVariantToProperty', 'RtlCopyLuid', 'RtlCopyLuidAndAttributesArray',
-            'RtlCopySecurityDescriptor', 'RtlCopySid', 'RtlCopySidAndAttributesArray',
-            'RtlCopyString', 'RtlCopyUnicodeString', 'RtlCreateAcl', 'RtlCreateAndSetSD',
-            'RtlCreateAtomTable', 'RtlCreateEnvironment', 'RtlCreateHeap',
-            'RtlCreateProcessParameters', 'RtlCreatePropertySet', 'RtlCreateQueryDebugBuffer',
-            'RtlCreateRegistryKey', 'RtlCreateSecurityDescriptor', 'RtlCreateTagHeap',
-            'RtlCreateUnicodeString', 'RtlCreateUnicodeStringFromAsciiz', 'RtlCreateUserProcess',
-            'RtlCreateUserSecurityObject', 'RtlCreateUserThread', 'RtlCustomCPToUnicodeN',
-            'RtlCutoverTimeToSystemTime', 'RtlDecompressBuffer', 'RtlDecompressFragment',
-            'RtlDelete', 'RtlDeleteAce', 'RtlDeleteAtomFromAtomTable', 'RtlDeleteCriticalSection',
-            'RtlDeleteElementGenericTable', 'RtlDeleteNoSplay', 'RtlDeleteRegistryValue',
-            'RtlDeleteResource', 'RtlDeleteSecurityObject', 'RtlDeNormalizeProcessParams',
-            'RtlDestroyAtomTable', 'RtlDestroyEnvironment', 'RtlDestroyHandleTable',
-            'RtlDestroyHeap', 'RtlDestroyProcessParameters', 'RtlDestroyQueryDebugBuffer',
-            'RtlDetermineDosPathNameType_U', 'RtlDoesFileExists_U', 'RtlDosPathNameToNtPathName_U',
-            'RtlDosSearchPath_U', 'RtlDowncaseUnicodeString', 'RtlDumpResource',
-            'RtlEmptyAtomTable', 'RtlEnlargedIntegerMultiply', 'RtlEnlargedUnsignedDivide',
-            'RtlEnlargedUnsignedMultiply', 'RtlEnterCriticalSection', 'RtlEnumerateGenericTable',
-            'RtlEnumerateGenericTableWithoutSplaying', 'RtlEnumerateProperties',
-            'RtlEnumProcessHeaps', 'RtlEqualComputerName', 'RtlEqualDomainName', 'RtlEqualLuid',
-            'RtlEqualPrefixSid', 'RtlEqualSid', 'RtlEqualString', 'RtlEqualUnicodeString',
-            'RtlEraseUnicodeString', 'RtlExpandEnvironmentStrings_U', 'RtlExtendedIntegerMultiply',
-            'RtlExtendedLargeIntegerDivide', 'RtlExtendedMagicDivide', 'RtlExtendHeap',
-            'RtlFillMemory', 'RtlFillMemoryUlong', 'RtlFindClearBits', 'RtlFindClearBitsAndSet',
-            'RtlFindLongestRunClear', 'RtlFindLongestRunSet', 'RtlFindMessage', 'RtlFindSetBits',
-            'RtlFindSetBitsAndClear', 'RtlFirstFreeAce', 'RtlFlushPropertySet',
-            'RtlFormatCurrentUserKeyPath', 'RtlFormatMessage', 'RtlFreeAnsiString',
-            'RtlFreeHandle', 'RtlFreeHeap', 'RtlFreeOemString', 'RtlFreeSid',
-            'RtlFreeUnicodeString', 'RtlFreeUserThreadStack', 'RtlGenerate8dot3Name', 'RtlGetAce',
-            'RtlGetCallersAddress', 'RtlGetCompressionWorkSpaceSize',
-            'RtlGetControlSecurityDescriptor', 'RtlGetCurrentDirectory_U',
-            'RtlGetDaclSecurityDescriptor', 'RtlGetElementGenericTable', 'RtlGetFullPathName_U',
-            'RtlGetGroupSecurityDescriptor', 'RtlGetLongestNtPathLength', 'RtlGetNtGlobalFlags',
-            'RtlGetNtProductType', 'RtlGetOwnerSecurityDescriptor', 'RtlGetProcessHeaps',
-            'RtlGetSaclSecurityDescriptor', 'RtlGetUserInfoHeap', 'RtlGuidToPropertySetName',
-            'RtlIdentifierAuthoritySid', 'RtlImageDirectoryEntryToData', 'RtlImageNtHeader',
-            'RtlImageRvaToSection', 'RtlImageRvaToVa', 'RtlImpersonateSelf', 'RtlInitAnsiString',
-            'RtlInitCodePageTable', 'RtlInitializeAtomPackage', 'RtlInitializeBitMap',
-            'RtlInitializeContext', 'RtlInitializeCriticalSection',
-            'RtlInitializeCriticalSectionAndSpinCount', 'RtlInitializeGenericTable',
-            'RtlInitializeHandleTable', 'RtlInitializeResource', 'RtlInitializeRXact',
-            'RtlInitializeSid', 'RtlInitNlsTables', 'RtlInitString', 'RtlInitUnicodeString',
-            'RtlInsertElementGenericTable', 'RtlIntegerToChar', 'RtlIntegerToUnicodeString',
-            'RtlIsDosDeviceName_U', 'RtlIsGenericTableEmpty', 'RtlIsNameLegalDOS8Dot3',
-            'RtlIsTextUnicode', 'RtlIsValidHandle', 'RtlIsValidIndexHandle', 'RtlLargeIntegerAdd',
-            'RtlLargeIntegerArithmeticShift', 'RtlLargeIntegerDivide', 'RtlLargeIntegerNegate',
-            'RtlLargeIntegerShiftLeft', 'RtlLargeIntegerShiftRight', 'RtlLargeIntegerSubtract',
-            'RtlLargeIntegerToChar', 'RtlLeaveCriticalSection', 'RtlLengthRequiredSid',
-            'RtlLengthSecurityDescriptor', 'RtlLengthSid', 'RtlLocalTimeToSystemTime',
-            'RtlLockHeap', 'RtlLookupAtomInAtomTable', 'RtlLookupElementGenericTable',
-            'RtlMakeSelfRelativeSD', 'RtlMapGenericMask', 'RtlMoveMemory',
-            'RtlMultiByteToUnicodeN', 'RtlMultiByteToUnicodeSize', 'RtlNewInstanceSecurityObject',
-            'RtlNewSecurityGrantedAccess', 'RtlNewSecurityObject', 'RtlNormalizeProcessParams',
-            'RtlNtStatusToDosError', 'RtlNumberGenericTableElements', 'RtlNumberOfClearBits',
-            'RtlNumberOfSetBits', 'RtlOemStringToUnicodeSize', 'RtlOemStringToUnicodeString',
-            'RtlOemToUnicodeN', 'RtlOnMappedStreamEvent', 'RtlOpenCurrentUser',
-            'RtlPcToFileHeader', 'RtlPinAtomInAtomTable', 'RtlpNtCreateKey',
-            'RtlpNtEnumerateSubKey', 'RtlpNtMakeTemporaryKey', 'RtlpNtOpenKey',
-            'RtlpNtQueryValueKey', 'RtlpNtSetValueKey', 'RtlPrefixString',
-            'RtlPrefixUnicodeString', 'RtlPropertySetNameToGuid', 'RtlProtectHeap',
-            'RtlpUnWaitCriticalSection', 'RtlpWaitForCriticalSection', 'RtlQueryAtomInAtomTable',
-            'RtlQueryEnvironmentVariable_U', 'RtlQueryInformationAcl',
-            'RtlQueryProcessBackTraceInformation', 'RtlQueryProcessDebugInformation',
-            'RtlQueryProcessHeapInformation', 'RtlQueryProcessLockInformation',
-            'RtlQueryProperties', 'RtlQueryPropertyNames', 'RtlQueryPropertySet',
-            'RtlQueryRegistryValues', 'RtlQuerySecurityObject', 'RtlQueryTagHeap',
-            'RtlQueryTimeZoneInformation', 'RtlRaiseException', 'RtlRaiseStatus', 'RtlRandom',
-            'RtlReAllocateHeap', 'RtlRealPredecessor', 'RtlRealSuccessor', 'RtlReleasePebLock',
-            'RtlReleaseResource', 'RtlRemoteCall', 'RtlResetRtlTranslations',
-            'RtlRunDecodeUnicodeString', 'RtlRunEncodeUnicodeString', 'RtlSecondsSince1970ToTime',
-            'RtlSecondsSince1980ToTime', 'RtlSelfRelativeToAbsoluteSD', 'RtlSetAllBits',
-            'RtlSetAttributesSecurityDescriptor', 'RtlSetBits', 'RtlSetCriticalSectionSpinCount',
-            'RtlSetCurrentDirectory_U', 'RtlSetCurrentEnvironment', 'RtlSetDaclSecurityDescriptor',
-            'RtlSetEnvironmentVariable', 'RtlSetGroupSecurityDescriptor', 'RtlSetInformationAcl',
-            'RtlSetOwnerSecurityDescriptor', 'RtlSetProperties', 'RtlSetPropertyNames',
-            'RtlSetPropertySetClassId', 'RtlSetSaclSecurityDescriptor', 'RtlSetSecurityObject',
-            'RtlSetTimeZoneInformation', 'RtlSetUnicodeCallouts', 'RtlSetUserFlagsHeap',
-            'RtlSetUserValueHeap', 'RtlSizeHeap', 'RtlSplay', 'RtlStartRXact',
-            'RtlSubAuthorityCountSid', 'RtlSubAuthoritySid', 'RtlSubtreePredecessor',
-            'RtlSubtreeSuccessor', 'RtlSystemTimeToLocalTime', 'RtlTimeFieldsToTime',
-            'RtlTimeToElapsedTimeFields', 'RtlTimeToSecondsSince1970', 'RtlTimeToSecondsSince1980',
-            'RtlTimeToTimeFields', 'RtlTryEnterCriticalSection', 'RtlUnicodeStringToAnsiSize',
-            'RtlUnicodeStringToAnsiString', 'RtlUnicodeStringToCountedOemString',
-            'RtlUnicodeStringToInteger', 'RtlUnicodeStringToOemSize',
-            'RtlUnicodeStringToOemString', 'RtlUnicodeToCustomCPN', 'RtlUnicodeToMultiByteN',
-            'RtlUnicodeToMultiByteSize', 'RtlUnicodeToOemN', 'RtlUniform', 'RtlUnlockHeap',
-            'RtlUnwind', 'RtlUpcaseUnicodeChar', 'RtlUpcaseUnicodeString',
-            'RtlUpcaseUnicodeStringToAnsiString', 'RtlUpcaseUnicodeStringToCountedOemString',
-            'RtlUpcaseUnicodeStringToOemString', 'RtlUpcaseUnicodeToCustomCPN',
-            'RtlUpcaseUnicodeToMultiByteN', 'RtlUpcaseUnicodeToOemN', 'RtlUpperChar',
-            'RtlUpperString', 'RtlUsageHeap', 'RtlValidAcl', 'RtlValidateHeap',
-            'RtlValidateProcessHeaps', 'RtlValidSecurityDescriptor', 'RtlValidSid', 'RtlWalkHeap',
-            'RtlWriteRegistryValue', 'RtlxAnsiStringToUnicodeSize', 'RtlxOemStringToUnicodeSize',
-            'RtlxUnicodeStringToAnsiSize', 'RtlxUnicodeStringToOemSize', 'RtlZeroHeap',
-            'RtlZeroMemory',
-
-            'NtCancelTimer', 'ZwCancelTimer', 'NtCreateTimer', 'ZwCreateTimer', 'NtGetTickCount',
-            'ZwGetTickCount', 'NtOpenTimer', 'ZwOpenTimer', 'NtQueryPerformanceCounter',
-            'ZwQueryPerformanceCounter', 'NtQuerySystemTime', 'ZwQuerySystemTime', 'NtQueryTimer',
-            'ZwQueryTimer', 'NtQueryTimerResolution', 'ZwQueryTimerResolution', 'NtSetSystemTime',
-            'ZwSetSystemTime', 'NtSetTimer', 'ZwSetTimer', 'NtSetTimerResolution',
-            'ZwSetTimerResolution',
-
-            'NtClearEvent', 'ZwClearEvent', 'NtCreateEvent', 'ZwCreateEvent', 'NtCreateEventPair',
-            'ZwCreateEventPair', 'NtCreateMutant', 'ZwCreateMutant', 'NtCreateSemaphore',
-            'ZwCreateSemaphore', 'NtOpenEvent', 'ZwOpenEvent', 'NtOpenEventPair',
-            'ZwOpenEventPair', 'NtOpenMutant', 'ZwOpenMutant', 'NtOpenSemaphore',
-            'ZwOpenSemaphore', 'NtPulseEvent', 'ZwPulseEvent', 'NtQueryEvent', 'ZwQueryEvent',
-            'NtQueryMutant', 'ZwQueryMutant', 'NtQuerySemaphore', 'ZwQuerySemaphore',
-            'NtReleaseMutant', 'ZwReleaseMutant', 'NtReleaseProcessMutant',
-            'ZwReleaseProcessMutant', 'NtReleaseSemaphore', 'ZwReleaseSemaphore',
-            'NtReleaseThreadMutant', 'ZwReleaseThreadMutant', 'NtResetEvent', 'ZwResetEvent',
-            'NtSetEvent', 'ZwSetEvent', 'NtSetHighEventPair', 'ZwSetHighEventPair',
-            'NtSetHighWaitLowEventPair', 'ZwSetHighWaitLowEventPair', 'NtSetLowEventPair',
-            'ZwSetLowEventPair', 'NtSetLowWaitHighEventPair', 'ZwSetLowWaitHighEventPair',
-            'NtSignalAndWaitForSingleObject', 'ZwSignalAndWaitForSingleObject',
-            'NtWaitForMultipleObjects', 'ZwWaitForMultipleObjects', 'NtWaitForSingleObject',
-            'ZwWaitForSingleObject', 'NtWaitHighEventPair', 'ZwWaitHighEventPair',
-            'NtWaitLowEventPair', 'ZwWaitLowEventPair',
-
-            'NtClose', 'ZwClose', 'NtCreateDirectoryObject', 'ZwCreateDirectoryObject',
-            'NtCreateSymbolicLinkObject', 'ZwCreateSymbolicLinkObject',
-            'NtDuplicateObject', 'ZwDuplicateObject', 'NtMakeTemporaryObject',
-            'ZwMakeTemporaryObject', 'NtOpenDirectoryObject', 'ZwOpenDirectoryObject',
-            'NtOpenSymbolicLinkObject', 'ZwOpenSymbolicLinkObject', 'NtQueryDirectoryObject',
-            'ZwQueryDirectoryObject', 'NtQueryObject', 'ZwQueryObject',
-            'NtQuerySymbolicLinkObject', 'ZwQuerySymbolicLinkObject', 'NtSetInformationObject',
-            'ZwSetInformationObject',
-
-            'NtContinue', 'ZwContinue', 'NtRaiseException', 'ZwRaiseException',
-            'NtRaiseHardError', 'ZwRaiseHardError', 'NtSetDefaultHardErrorPort',
-            'ZwSetDefaultHardErrorPort',
-
-            'NtCreateChannel', 'ZwCreateChannel', 'NtListenChannel', 'ZwListenChannel',
-            'NtOpenChannel', 'ZwOpenChannel', 'NtReplyWaitSendChannel', 'ZwReplyWaitSendChannel',
-            'NtSendWaitReplyChannel', 'ZwSendWaitReplyChannel', 'NtSetContextChannel',
-            'ZwSetContextChannel',
-
-            'NtCreateKey', 'ZwCreateKey', 'NtDeleteKey', 'ZwDeleteKey', 'NtDeleteValueKey',
-            'ZwDeleteValueKey', 'NtEnumerateKey', 'ZwEnumerateKey', 'NtEnumerateValueKey',
-            'ZwEnumerateValueKey', 'NtFlushKey', 'ZwFlushKey', 'NtInitializeRegistry',
-            'ZwInitializeRegistry', 'NtLoadKey', 'ZwLoadKey', 'NtLoadKey2', 'ZwLoadKey2',
-            'NtNotifyChangeKey', 'ZwNotifyChangeKey', 'NtOpenKey', 'ZwOpenKey', 'NtQueryKey',
-            'ZwQueryKey', 'NtQueryMultipleValueKey', 'ZwQueryMultipleValueKey',
-            'NtQueryMultiplValueKey', 'ZwQueryMultiplValueKey', 'NtQueryValueKey',
-            'ZwQueryValueKey', 'NtReplaceKey', 'ZwReplaceKey', 'NtRestoreKey', 'ZwRestoreKey',
-            'NtSaveKey', 'ZwSaveKey', 'NtSetInformationKey', 'ZwSetInformationKey',
-            'NtSetValueKey', 'ZwSetValueKey', 'NtUnloadKey', 'ZwUnloadKey',
-
-            'NtCreateMailslotFile', 'ZwCreateMailslotFile', 'NtCreateNamedPipeFile',
-            'ZwCreateNamedPipeFile', 'NtCreatePagingFile', 'ZwCreatePagingFile',
-
-            'NtCreateProfile', 'ZwCreateProfile', 'NtQueryIntervalProfile',
-            'ZwQueryIntervalProfile', 'NtRegisterThreadTerminatePort',
-            'ZwRegisterThreadTerminatePort', 'NtSetIntervalProfile', 'ZwSetIntervalProfile',
-            'NtStartProfile', 'ZwStartProfile', 'NtStopProfile', 'ZwStopProfile',
-            'NtSystemDebugControl', 'ZwSystemDebugControl',
-
-            'NtEnumerateBus', 'ZwEnumerateBus', 'NtFlushInstructionCache',
-            'ZwFlushInstructionCache', 'NtFlushWriteBuffer', 'ZwFlushWriteBuffer',
-            'NtSetLdtEntries', 'ZwSetLdtEntries',
-
-            'NtGetPlugPlayEvent', 'ZwGetPlugPlayEvent', 'NtPlugPlayControl', 'ZwPlugPlayControl',
-
-            'NtInitiatePowerAction', 'ZwInitiatePowerAction', 'NtPowerInformation',
-            'ZwPowerInformation', 'NtRequestWakeupLatency', 'ZwRequestWakeupLatency',
-            'NtSetSystemPowerState', 'ZwSetSystemPowerState', 'NtSetThreadExecutionState',
-            'ZwSetThreadExecutionState',
-
-            'NtLoadDriver', 'ZwLoadDriver', 'NtRegisterNewDevice', 'ZwRegisterNewDevice',
-            'NtUnloadDriver', 'ZwUnloadDriver',
-
-            'NtQueryDefaultLocale', 'ZwQueryDefaultLocale', 'NtQueryDefaultUILanguage',
-            'ZwQueryDefaultUILanguage', 'NtQuerySystemEnvironmentValue',
-            'ZwQuerySystemEnvironmentValue', 'NtSetDefaultLocale', 'ZwSetDefaultLocale',
-            'NtSetDefaultUILanguage', 'ZwSetDefaultUILanguage', 'NtSetSystemEnvironmentValue',
-            'ZwSetSystemEnvironmentValue',
-
-            'DbgBreakPoint', 'DbgPrint', 'DbgPrompt', 'DbgSsHandleKmApiMsg', 'DbgSsInitialize',
-            'DbgUiConnectToDbg', 'DbgUiContinue', 'DbgUiWaitStateChange', 'DbgUserBreakPoint',
-            'KiRaiseUserExceptionDispatcher', 'KiUserApcDispatcher', 'KiUserCallbackDispatcher',
-            'KiUserExceptionDispatcher', 'NlsAnsiCodePage', 'NlsMbCodePageTag',
-            'NlsMbOemCodePageTag', 'NtAllocateLocallyUniqueId', 'ZwAllocateLocallyUniqueId',
-            'NtAllocateUuids', 'ZwAllocateUuids', 'NtCallbackReturn', 'ZwCallbackReturn',
-            'NtDisplayString', 'ZwDisplayString', 'NtQueryOleDirectoryFile',
-            'ZwQueryOleDirectoryFile', 'NtQuerySection', 'ZwQuerySection',
-            'NtQuerySystemInformation', 'ZwQuerySystemInformation', 'NtSetSystemInformation',
-            'ZwSetSystemInformation', 'NtShutdownSystem', 'ZwShutdownSystem', 'NtVdmControl',
-            'ZwVdmControl', 'NtW32Call', 'ZwW32Call', 'PfxFindPrefix', 'PfxInitialize',
-            'PfxInsertPrefix', 'PfxRemovePrefix', 'PropertyLengthAsVariant', 'RestoreEm87Context',
-            'SaveEm87Context'
-            )
-        ),
-    'SYMBOLS' => array(
-        0 => array('(', ')', '{', '}', '[', ']'),
-        1 => array('<', '>','='),
-        2 => array('+', '-', '*', '/', '%'),
-        3 => array('!', '^', '&', '|'),
-        4 => array('?', ':', ';')
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => true,
-        2 => true,
-        3 => true,
-        4 => true,
-        5 => true,
-        6 => true
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #0000ff;',
-            2 => 'color: #0000ff;',
-            3 => 'color: #0000dd;',
-            4 => 'color: #0000ff;',
-            5 => 'color: #4000dd;',
-            6 => 'color: #4000dd;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #666666;',
-            2 => 'color: #339900;',
-            3 => 'color: #FF0000;',
-            4 => 'color: #FF0000;',
-            '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;'
-            ),
-        'REGEXPS' => array(
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => '',
-        4 => '',
-        5 => 'http://www.google.com/search?q={FNAMEL}+msdn.microsoft.com',
-        6 => 'http://www.google.com/search?q={FNAMEL}+msdn.microsoft.com'
-        ),
-    'OOLANG' => true,
-    'OBJECT_SPLITTERS' => array(
-        1 => '.',
-        2 => '::'
-        ),
-    '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_\|%\\-])"
-        )
-    )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/cpp.php b/wiki/vendor/geshi/geshi/src/geshi/cpp.php
deleted file mode 100644
index 1439dfe..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/cpp.php
+++ /dev/null
@@ -1,250 +0,0 @@
-<?php
-/*************************************************************************************
- * cpp.php
- * -------
- * Author: Dennis Bayer (Dennis.Bayer@mnifh-giessen.de)
- * Contributors:
- *  - 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.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)
- *  -  Added several new keywords (Jack Lloyd)
- * 2004/11/27 (1.0.1)
- *  -  Added StdCLib function and constant names, changed color scheme to
- *     a cleaner one. (M. Uli Kusterer)
- *  -  Added support for multiple object splitters
- * 2004/10/27 (1.0.0)
- *  -  First Release
- *
- * TODO (updated 2004/11/27)
- * -------------------------
- *
- *************************************************************************************
- *
- *     This file is part of GeSHi.
- *
- *   GeSHi is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   GeSHi is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with GeSHi; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- ************************************************************************************/
-
-$language_data = array (
-    'LANG_NAME' => 'C++',
-    '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]#",
-        //Hexadecimal Char Specs
-        2 => "#\\\\x[\da-fA-F]{2}#",
-        //Hexadecimal Char Specs
-        3 => "#\\\\u[\da-fA-F]{4}#",
-        //Hexadecimal Char Specs
-        4 => "#\\\\U[\da-fA-F]{8}#",
-        //Octal Char Specs
-        5 => "#\\\\[0-7]{1,3}#"
-        ),
-    'NUMBERS' =>
-        GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_INT_CSTYLE | GESHI_NUMBER_BIN_PREFIX_0B |
-        GESHI_NUMBER_OCT_PREFIX | GESHI_NUMBER_HEX_PREFIX | GESHI_NUMBER_FLT_NONSCI |
-        GESHI_NUMBER_FLT_NONSCI_F | GESHI_NUMBER_FLT_SCI_SHORT | GESHI_NUMBER_FLT_SCI_ZERO,
-    'KEYWORDS' => array(
-        1 => array(
-            'break', 'case', 'continue', 'default', 'do', 'else', 'for', 'goto', 'if', 'return',
-            'switch', 'throw', 'while'
-            ),
-        2 => array(
-            'NULL', 'false', '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', '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', 'export',
-            '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', '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',
-
-            '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'
-            ),
-        ),
-    'SYMBOLS' => array(
-        0 => array('(', ')', '{', '}', '[', ']'),
-        1 => array('<', '>','='),
-        2 => array('+', '-', '*', '/', '%'),
-        3 => array('!', '^', '&', '|'),
-        4 => array('?', ':', ';')
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => true,
-        2 => true,
-        3 => true,
-        4 => true,
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #0000ff;',
-            2 => 'color: #0000ff;',
-            3 => 'color: #0000dd;',
-            4 => 'color: #0000ff;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #666666;',
-            2 => 'color: #339900;',
-            3 => 'color: #FF0000;',
-            4 => 'color: #FF0000;',
-            '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;'
-            ),
-        'REGEXPS' => array(
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => '',
-        4 => ''
-        ),
-    'OOLANG' => true,
-    'OBJECT_SPLITTERS' => array(
-        1 => '.',
-        2 => '::'
-        ),
-    '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_\|%\\-])"
-        )
-    )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/csharp.php b/wiki/vendor/geshi/geshi/src/geshi/csharp.php
deleted file mode 100644
index a5a0f11..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/csharp.php
+++ /dev/null
@@ -1,257 +0,0 @@
-<?php
-/*************************************************************************************
- * csharp.php
- * ----------
- * 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.9.0
- * Date Started: 2004/06/04
- *
- * C# language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2015/04/14
- *  -  Added C# 5.0 and 6.0 missing keywords and #pragma directive
- * 2012/06/18 (1.0.8.11)
- *  -  Added missing keywords (Christian Stelzmann)
- * 2009/04/03 (1.0.8.6)
- *  -  Added missing keywords identified by Rosetta Code users.
- * 2008/05/25 (1.0.7.22)
- *  -  Added highlighting of using and namespace directives as non-OOP
- * 2005/01/05 (1.0.1)
- *  -  Used hardquote support for @"..." strings (Cliff Stanford)
- * 2004/11/27 (1.0.0)
- *  -  Initial release
- *
- * TODO (updated 2004/11/27)
- * -------------------------
- *
- *************************************************************************************
- *
- *     This file is part of GeSHi.
- *
- *   GeSHi is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   GeSHi is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with GeSHi; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- ************************************************************************************/
-
-$language_data = array (
-    'LANG_NAME' => 'C#',
-    'COMMENT_SINGLE' => array(1 => '//', 2 => '#'),
-    'COMMENT_MULTI' => array('/*' => '*/'),
-    'COMMENT_REGEXP' => array(
-        //Using and Namespace directives (basic support)
-        //Please note that the alias syntax for using is not supported
-        3 => '/(?:(?<=using[\\n\\s])|(?<=namespace[\\n\\s]))[\\n\\s]*([a-zA-Z0-9_]+\\.)*[a-zA-Z0-9_]+[\n\s]*(?=[;=])/i'),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array("'", '"'),
-    'HARDQUOTE' => array('@"', '"'),
-    'HARDESCAPE' => array('"'),
-    'HARDCHAR' => '"',
-    'ESCAPE_CHAR' => '\\',
-    'KEYWORDS' => array(
-        1 => array(
-            'abstract', 'add', 'as', 'async', 'await', 'base',
-            'break', 'by', 'case', 'catch', 'const', 'continue',
-            'default', 'do', 'else', 'event', 'explicit', 'extern', 'false',
-            'finally', 'fixed', 'for', 'foreach', 'from', 'get', 'goto', 'group', 'if',
-            'implicit', 'in', 'into', 'internal', 'join', 'lock', 'namespace', 'null',
-            'operator', 'out', 'override', 'params', 'partial', 'private',
-            'protected', 'public', 'readonly', 'remove', 'ref', 'return', 'sealed',
-            'select', 'set', 'stackalloc', 'static', 'switch', 'this', 'throw', 'true',
-            'try', 'unsafe', 'using', 'var', 'value', 'virtual', 'volatile', 'where',
-            'while', 'yield'
-            ),
-        2 => array(
-            '#elif', '#endif', '#endregion', '#else', '#error', '#define', '#if',
-            '#line', '#pragma', '#region', '#undef', '#warning'
-            ),
-        3 => array(
-            'checked', 'is', 'new', 'nameof', 'sizeof', 'typeof', 'unchecked'
-            ),
-        4 => array(
-            'bool', 'byte', 'char', 'class', 'decimal', 'delegate', 'double',
-            'dynamic', 'enum', 'float', 'int', 'interface', 'long', 'object', 'sbyte',
-            'short', 'string', 'struct', 'uint', 'ulong', 'ushort', 'void'
-            ),
-        5 => array(
-            'Microsoft.Win32',
-            'System',
-            'System.CodeDOM',
-            'System.CodeDOM.Compiler',
-            'System.Collections',
-            'System.Collections.Bases',
-            'System.ComponentModel',
-            'System.ComponentModel.Design',
-            'System.ComponentModel.Design.CodeModel',
-            'System.Configuration',
-            'System.Configuration.Assemblies',
-            'System.Configuration.Core',
-            'System.Configuration.Install',
-            'System.Configuration.Interceptors',
-            'System.Configuration.Schema',
-            'System.Configuration.Web',
-            'System.Core',
-            'System.Data',
-            'System.Data.ADO',
-            'System.Data.Design',
-            'System.Data.Internal',
-            'System.Data.SQL',
-            'System.Data.SQLTypes',
-            'System.Data.XML',
-            'System.Data.XML.DOM',
-            'System.Data.XML.XPath',
-            'System.Data.XML.XSLT',
-            'System.Diagnostics',
-            'System.Diagnostics.SymbolStore',
-            'System.DirectoryServices',
-            'System.Drawing',
-            'System.Drawing.Design',
-            'System.Drawing.Drawing2D',
-            'System.Drawing.Imaging',
-            'System.Drawing.Printing',
-            'System.Drawing.Text',
-            'System.Globalization',
-            'System.IO',
-            'System.IO.IsolatedStorage',
-            'System.Messaging',
-            'System.Net',
-            'System.Net.Sockets',
-            'System.NewXml',
-            'System.NewXml.XPath',
-            'System.NewXml.Xsl',
-            'System.Reflection',
-            'System.Reflection.Emit',
-            'System.Resources',
-            'System.Runtime.InteropServices',
-            'System.Runtime.InteropServices.Expando',
-            'System.Runtime.Remoting',
-            'System.Runtime.Serialization',
-            'System.Runtime.Serialization.Formatters',
-            'System.Runtime.Serialization.Formatters.Binary',
-            'System.Security',
-            'System.Security.Cryptography',
-            'System.Security.Cryptography.X509Certificates',
-            'System.Security.Permissions',
-            'System.Security.Policy',
-            'System.Security.Principal',
-            'System.ServiceProcess',
-            'System.Text',
-            'System.Text.RegularExpressions',
-            'System.Threading',
-            'System.Timers',
-            'System.Web',
-            'System.Web.Caching',
-            'System.Web.Configuration',
-            'System.Web.Security',
-            'System.Web.Services',
-            'System.Web.Services.Description',
-            'System.Web.Services.Discovery',
-            'System.Web.Services.Protocols',
-            'System.Web.UI',
-            'System.Web.UI.Design',
-            'System.Web.UI.Design.WebControls',
-            'System.Web.UI.Design.WebControls.ListControls',
-            'System.Web.UI.HtmlControls',
-            'System.Web.UI.WebControls',
-            'System.WinForms',
-            'System.WinForms.ComponentModel',
-            'System.WinForms.Design',
-            'System.Xml',
-            'System.Xml.Serialization',
-            'System.Xml.Serialization.Code',
-            'System.Xml.Serialization.Schema'
-            ),
-        ),
-    'SYMBOLS' => array(
-        '+', '-', '*', '?', '=', '/', '%', '&', '>', '<', '^', '!', ':', ';',
-        '(', ')', '{', '}', '[', ']', '|', '.'
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false,
-        2 => false,
-        3 => false,
-        4 => false,
-        5 => false,
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #0600FF; font-weight: bold;',
-            2 => 'color: #FF8000; font-weight: bold;',
-            3 => 'color: #008000;',
-            4 => 'color: #6666cc; font-weight: bold;',
-            5 => 'color: #000000;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #008080; font-style: italic;',
-            2 => 'color: #008080;',
-            3 => 'color: #008080;',
-            'MULTI' => 'color: #008080; font-style: italic;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #008080; font-weight: bold;',
-            'HARD' => 'color: #008080; font-weight: bold;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #008000;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #666666;',
-            'HARD' => 'color: #666666;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #FF0000;'
-            ),
-        'METHODS' => array(
-            1 => 'color: #0000FF;',
-            2 => 'color: #0000FF;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #008000;'
-            ),
-        'REGEXPS' => array(
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => 'http://www.google.com/search?q={FNAMEL}+msdn.microsoft.com',
-        4 => '',
-        5 => ''
-        ),
-    'OOLANG' => true,
-    'OBJECT_SPLITTERS' => array(
-        1 => '.',
-        2 => '::'
-        ),
-    '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_%\\-])"
-        )
-    )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/css.php b/wiki/vendor/geshi/geshi/src/geshi/css.php
deleted file mode 100644
index 5d15fad..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/css.php
+++ /dev/null
@@ -1,944 +0,0 @@
-<?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/wiki/vendor/geshi/geshi/src/geshi/cuesheet.php b/wiki/vendor/geshi/geshi/src/geshi/cuesheet.php
deleted file mode 100644
index 97d631c..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/cuesheet.php
+++ /dev/null
@@ -1,136 +0,0 @@
-<?php
-/*************************************************************************************
- * cuesheet.php
- * ----------
- * Author: Benny Baumann (benbe@geshi.org)
- * Copyright: (c) 2009 Benny Baumann (http://qbnz.com/highlighter/)
- * Release Version: 1.0.9.0
- * Date Started: 2009/12/21
- *
- * Cuesheet language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2009/12/21 (1.0.8.6)
- *   -  First Release
- *
- * TODO (updated 2009/12/21)
- * -------------------------
- *
- *************************************************************************************
- *
- *     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' => 'Cuesheet',
-    'COMMENT_SINGLE' => array(1 => ';'),
-    'COMMENT_MULTI' => array(),
-    'COMMENT_REGEXP' => array(
-        //Single-Line Comments using REM command
-        1 => "/(?<=\bREM\b).*?$/im",
-        ),
-    'CASE_KEYWORDS' => GESHI_CAPS_UPPER,
-    'QUOTEMARKS' => array('"'),
-    'ESCAPE_CHAR' => '',
-    'KEYWORDS' => array(
-        1 => array(
-            'CATALOG','CDTEXTFILE','FILE','FLAGS','INDEX','ISRC','PERFORMER',
-            'POSTGAP','PREGAP','REM','SONGWRITER','TITLE','TRACK'
-            ),
-        2 => array(
-            'AIFF', 'BINARY', 'MOTOROLA', 'MP3', 'WAVE'
-            ),
-        3 => array(
-            '4CH', 'DCP', 'PRE', 'SCMS'
-            ),
-        4 => array(
-            'AUDIO', 'CDG', 'MODE1/2048', 'MODE1/2336', 'MODE2/2336',
-            'MODE2/2352', 'CDI/2336', 'CDI/2352'
-            )
-        ),
-    'SYMBOLS' => array(
-        ':'
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false,
-        2 => false,
-        3 => false,
-        4 => false
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #000000; font-weight: bold;',
-            2 => 'color: #000066; font-weight: bold;',
-            3 => 'color: #000066; font-weight: bold;',
-            4 => 'color: #000066; font-weight: bold;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #808080;',
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #0000ff;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #0000ff;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #006600;'
-            ),
-        'METHODS' => array(
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #000066;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #000099;'
-            ),
-        'SCRIPT' => array(
-            ),
-        'REGEXPS' => array(
-            1 => 'color: #000099;',
-            2 => 'color: #009900;',
-            )
-        ),
-    'URLS' => array(
-        1 => 'http://digitalx.org/cuesheetsyntax.php#{FNAMEL}',
-        2 => '',
-        3 => '',
-        4 => ''
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(
-        ),
-    'REGEXPS' => array(
-        2 => '\b[A-Za-z0-9]{5}\d{7}\b',
-        1 => '(?<=[\s:]|^)\d+(?=[\s:]|$)',
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        ),
-    'TAB_WIDTH' => 2,
-    'PARSER_CONTROL' => array(
-        'KEYWORDS' => array(
-            'DISALLOWED_BEFORE' => '(?<![\w\.])',
-            'DISALLOWED_AFTER' => '(?![\w\.])',
-            )
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/d.php b/wiki/vendor/geshi/geshi/src/geshi/d.php
deleted file mode 100644
index 5e3713a..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/d.php
+++ /dev/null
@@ -1,250 +0,0 @@
-<?php
-/*************************************************************************************
- * d.php
- * -----
- * Author: Thomas Kuehne (thomas@kuehne.cn)
- * Contributors:
- *  - Jimmy Cao
- * Copyright: (c) 2005 Thomas Kuehne (http://thomas.kuehne.cn/)
- * Release Version: 1.0.9.0
- * Date Started: 2005/04/22
- *
- * D language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2011/06/28 (0.0.3) (Jimmy Cao)
- *  -  added D2 features
- * 2005/04/22 (0.0.2)
- *  -  added _d_* and sizeof/ptrdiff_t
- * 2005/04/20 (0.0.1)
- *  -  First release
- *
- * TODO (updated 2005/04/22)
- * -------------------------
- * * nested comments
- * * correct handling of r"" and ``
- * * correct handling of ... and ..
- *
- *************************************************************************************
- *
- *     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' => 'D',
-    'COMMENT_SINGLE' => array(2 => '///', 1 => '//'),
-    'COMMENT_MULTI' => array('/*' => '*/', '/+' => '+/'),
-    'COMMENT_REGEXP' => array(
-        // doxygen comments
-        3 => '#/\*\*(?![\*\/]).*\*/#sU',
-        // raw strings
-        4 => '#r"[^"]*"#s',
-        // Script Style interpreter comment
-        5 => "/\A#!(?=\\/).*?$/m"
-        ),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array('"', "'"),
-    'ESCAPE_CHAR' => '',
-    'ESCAPE_REGEXP' => array(
-        //Simple Single Char Escapes
-        1 => "#\\\\[abfnrtv\\'\"?\n\\\\]#i",
-        //Hexadecimal Char Specs
-        2 => "#\\\\x[\da-fA-F]{2}#",
-        //Hexadecimal Char Specs
-        3 => "#\\\\u[\da-fA-F]{4}#",
-        //Hexadecimal Char Specs
-        4 => "#\\\\U[\da-fA-F]{8}#",
-        //Octal Char Specs
-        5 => "#\\\\[0-7]{1,3}#",
-        //Named entity escapes
-        /*6 => "#\\\\&(?:quot|amp|lt|gt|OElig|oelig|Scaron|scaron|Yuml|circ|tilde|".
-            "ensp|emsp|thinsp|zwnj|zwj|lrm|rlm|ndash|mdash|lsquo|rsquo|sbquo|".
-            "ldquo|rdquo|bdquo|dagger|Dagger|permil|lsaquo|rsaquo|euro|nbsp|".
-            "iexcl|cent|pound|curren|yen|brvbar|sect|uml|copy|ordf|laquo|not|".
-            "shy|reg|macr|deg|plusmn|sup2|sup3|acute|micro|para|middot|cedil|".
-            "sup1|ordm|raquo|frac14|frac12|frac34|iquest|Agrave|Aacute|Acirc|".
-            "Atilde|Auml|Aring|AElig|Ccedil|Egrave|Eacute|Ecirc|Euml|Igrave|".
-            "Iacute|Icirc|Iuml|ETH|Ntilde|Ograve|Oacute|Ocirc|Otilde|Ouml|".
-            "times|Oslash|Ugrave|Uacute|Ucirc|Uuml|Yacute|THORN|szlig|agrave|".
-            "aacute|acirc|atilde|auml|aring|aelig|ccedil|egrave|eacute|ecirc|".
-            "euml|igrave|iacute|icirc|iuml|eth|ntilde|ograve|oacute|ocirc|".
-            "otilde|ouml|divide|oslash|ugrave|uacute|ucirc|uuml|yacute|thorn|".
-            "yuml|fnof|Alpha|Beta|Gamma|Delta|Epsilon|Zeta|Eta|Theta|Iota|".
-            "Kappa|Lambda|Mu|Nu|Xi|Omicron|Pi|Rho|Sigma|Tau|Upsilon|Phi|Chi|".
-            "Psi|Omega|alpha|beta|gamma|delta|epsilon|zeta|eta|theta|iota|".
-            "kappa|lambda|mu|nu|xi|omicron|pi|rho|sigmaf|sigma|tau|upsilon|".
-            "phi|chi|psi|omega|thetasym|upsih|piv|bull|hellip|prime|Prime|".
-            "oline|frasl|weierp|image|real|trade|alefsym|larr|uarr|rarr|darr|".
-            "harr|crarr|lArr|uArr|rArr|dArr|hArr|forall|part|exist|empty|".
-            "nabla|isin|notin|ni|prod|sum|minus|lowast|radic|prop|infin|ang|".
-            "and|or|cap|cup|int|there4|sim|cong|asymp|ne|equiv|le|ge|sub|sup|".
-            "nsub|sube|supe|oplus|otimes|perp|sdot|lceil|rceil|lfloor|rfloor|".
-            "lang|rang|loz|spades|clubs|hearts|diams);#",*/
-        // optimized:
-        6 => "#\\\\&(?:A(?:Elig|acute|circ|grave|lpha|ring|tilde|uml)|Beta|".
-            "C(?:cedil|hi)|D(?:agger|elta)|E(?:TH|acute|circ|grave|psilon|ta|uml)|".
-            "Gamma|I(?:acute|circ|grave|ota|uml)|Kappa|Lambda|Mu|N(?:tilde|u)|".
-            "O(?:Elig|acute|circ|grave|m(?:ega|icron)|slash|tilde|uml)|".
-            "P(?:hi|i|rime|si)|Rho|S(?:caron|igma)|T(?:HORN|au|heta)|".
-            "U(?:acute|circ|grave|psilon|uml)|Xi|Y(?:acute|uml)|Zeta|".
-            "a(?:acute|c(?:irc|ute)|elig|grave|l(?:efsym|pha)|mp|n[dg]|ring|".
-            "symp|tilde|uml)|b(?:dquo|eta|rvbar|ull)|c(?:ap|cedil|e(?:dil|nt)|".
-            "hi|irc|lubs|o(?:ng|py)|rarr|u(?:p|rren))|d(?:Arr|a(?:gger|rr)|".
-            "e(?:g|lta)|i(?:ams|vide))|e(?:acute|circ|grave|m(?:pty|sp)|nsp|".
-            "psilon|quiv|t[ah]|u(?:ml|ro)|xist)|f(?:nof|orall|ra(?:c(?:1[24]|34)|sl))|".
-            "g(?:amma|e|t)|h(?:Arr|arr|e(?:arts|llip))|i(?:acute|circ|excl|grave|mage|".
-            "n(?:fin|t)|ota|quest|sin|uml)|kappa|l(?:Arr|a(?:mbda|ng|quo|rr)|ceil|".
-            "dquo|e|floor|o(?:wast|z)|rm|s(?:aquo|quo)|t)|m(?:acr|dash|".
-            "i(?:cro|ddot|nus)|u)|n(?:abla|bsp|dash|e|i|ot(?:in)?|sub|tilde|u)|".
-            "o(?:acute|circ|elig|grave|line|m(?:ega|icron)|plus|r(?:d[fm])?|".
-            "slash|ti(?:lde|mes)|uml)|p(?:ar[at]|er(?:mil|p)|hi|iv?|lusmn|ound|".
-            "r(?:ime|o[dp])|si)|quot|r(?:Arr|a(?:dic|ng|quo|rr)|ceil|dquo|e(?:al|g)|".
-            "floor|ho|lm|s(?:aquo|quo))|s(?:bquo|caron|dot|ect|hy|i(?:gmaf?|m)|".
-            "pades|u(?:be?|m|p[123e]?)|zlig)|t(?:au|h(?:e(?:re4|ta(?:sym)?)|insp|".
-            "orn)|i(?:lde|mes)|rade)|u(?:Arr|a(?:cute|rr)|circ|grave|ml|".
-            "psi(?:h|lon)|uml)|weierp|xi|y(?:acute|en|uml)|z(?:eta|w(?:j|nj)));#",
-        ),
-    'HARDQUOTE' => array('`', '`'),
-    'HARDESCAPE' => array(),
-    'NUMBERS' =>
-        GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_INT_CSTYLE | GESHI_NUMBER_BIN_PREFIX_0B |
-        GESHI_NUMBER_OCT_PREFIX | GESHI_NUMBER_HEX_PREFIX | GESHI_NUMBER_FLT_NONSCI |
-        GESHI_NUMBER_FLT_NONSCI_F | GESHI_NUMBER_FLT_SCI_SHORT | GESHI_NUMBER_FLT_SCI_ZERO,
-    'KEYWORDS' => array(
-        1 => array(
-                'break', 'case', 'continue', 'do', 'else',
-                'for', 'foreach', 'goto', 'if', 'return',
-                'switch', 'while', 'foreach_reverse'
-            ),
-        2 => array(
-                'alias', 'asm', 'assert', 'body', 'cast',
-                'catch', 'default', 'delegate', 'delete',
-                'extern', 'false', 'finally', 'function',
-                'import', 'in', 'inout',
-                'invariant', 'is', 'lazy', 'mixin', 'module', 'new',
-                'null', 'out', 'pragma', 'ref', 'super', 'this',
-                'throw', 'true', 'try', 'typeid',
-                'typeof', 'union', 'with', 'scope'
-            ),
-        3 => array(
-                'ClassInfo', 'Error', 'Exception',
-                'Interface', 'Object', 'IMonitor',
-                'OffsetTypeInfo', 'Throwable',
-                'TypeInfo_Class', 'TypeInfo', '__traits',
-                '__EOF__', '__FILE__', '__LINE__',
-            ),
-        4 => array(
-                'abstract', 'align', 'auto', 'bit', 'bool',
-                'byte', 'cdouble', 'cfloat', 'char',
-                'class', 'const', 'creal', 'dchar', 'dstring', 'debug',
-                'deprecated', 'double', 'enum', 'export',
-                'final', 'float', 'idouble', 'ifloat', 'immutable', 'int',
-                'interface', 'ireal', 'long', 'nothrow', 'override',
-                'package', 'private', 'protected', 'ptrdiff_t',
-                'public', 'real', 'short', 'shared', 'size_t',
-                'static', 'string', 'struct', 'synchronized',
-                'template', 'ubyte', 'ucent', 'uint',
-                'ulong', 'unittest', 'ushort', 'version',
-                'void', 'volatile', 'wchar', 'wstring',
-                '__gshared', '@disable', '@property', 'pure', 'safe'
-            )
-        ),
-    'SYMBOLS' => 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: #aaaadd; font-weight: bold;',
-            4 => 'color: #993333;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #808080; font-style: italic;',
-            2 => 'color: #009933; font-style: italic;',
-            3 => 'color: #009933; font-style: italic;',
-            4 => 'color: #ff0000;',
-            5 => 'color: #0040ff;',
-            'MULTI' => 'color: #808080; font-style: italic;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #000099; font-weight: bold;',
-            1 => 'color: #000099; font-weight: bold;',
-            2 => 'color: #660099; font-weight: bold;',
-            3 => 'color: #660099; font-weight: bold;',
-            4 => 'color: #660099; font-weight: bold;',
-            5 => 'color: #006699; font-weight: bold;',
-            6 => 'color: #666699; font-weight: bold; font-style: italic;',
-            'HARD' => '',
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #66cc66;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #ff0000;',
-            'HARD' => '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: #006600;',
-            2 => 'color: #006600;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #66cc66;'
-            ),
-        'SCRIPT' => array(
-            ),
-        'REGEXPS' => 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/wiki/vendor/geshi/geshi/src/geshi/dart.php b/wiki/vendor/geshi/geshi/src/geshi/dart.php
deleted file mode 100644
index 83c00c9..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/dart.php
+++ /dev/null
@@ -1,159 +0,0 @@
-<?php
-/*************************************************************************************
- * dart.php
- * --------
- * Author: Edward Hart (edward.dan.hart@gmail.com)
- * Copyright: (c) 2013 Edward Hart
- * Release Version: 1.0.9.0
- * Date Started: 2013/10/25
- *
- * Dart language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2013/10/25
- *   -  First Release
- *
- * TODO (updated 2013/10/25)
- * -------------------------
- *   -  Highlight standard library types.
- *
- *************************************************************************************
- *
- *     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' => 'Dart',
-
-    'COMMENT_SINGLE' => array('//'),
-    'COMMENT_MULTI' => array('/*' => '*/'),
-    'COMMENT_REGEXP' => array(),
-
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array("'", '"'),
-    'ESCAPE_CHAR' => '',
-    'ESCAPE_REGEXP' => array(
-        //Simple Single Char Escapes
-        1 => "#\\\\[\\\\nrfbtv\'\"?\n]#i",
-        //Hexadecimal Char Specs
-        2 => "#\\\\x[\da-fA-F]{2}#",
-        //Hexadecimal Char Specs
-        3 => "#\\\\u[\da-fA-F]{4}#",
-        4 => "#\\\\u\\{[\da-fA-F]*\\}#"
-        ),
-    'NUMBERS' =>
-        GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_INT_CSTYLE |
-        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(
-            'abstract', 'as', 'assert', 'break', 'case', 'catch', 'class',
-            'const', 'continue', 'default', 'do', 'dynamic', 'else', 'export',
-            'extends', 'external', 'factory', 'false', 'final', 'finally',
-            'for', 'get', 'if', 'implements', 'import', 'in', 'is', 'library',
-            'new', 'null', 'operator', 'part', 'return', 'set', 'static',
-            'super', 'switch', 'this', 'throw', 'true', 'try', 'typedef', 'var',
-            'while', 'with'
-            ),
-        2 => array(
-            'double', 'bool', 'int', 'num', 'void'
-            ),
-        ),
-
-    'SYMBOLS' => array(
-        0 => array('(', ')', '{', '}', '[', ']'),
-        1 => array('+', '-', '*', '/', '%', '~'),
-        2 => array('&', '|', '^'),
-        3 => array('=', '!', '<', '>'),
-        4 => array('?', ':'),
-        5 => array('..'),
-        6 => array(';', ',')
-        ),
-
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => true,
-        2 => true,
-        ),
-
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'font-weight: bold;',
-            2 => 'color: #445588; font-weight: bold;'
-            ),
-        'COMMENTS' => array(
-            0 => 'color: #999988; font-style: italic;',
-            'MULTI' => 'color: #999988; 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' => ''
-            ),
-        'STRINGS' => array(
-            0 => 'color: #d14;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #009999;',
-            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;'
-            ),
-        'BRACKETS' => array(''),
-        'METHODS' => array(
-            1 => 'color: #006633;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'font-weight: bold;',
-            1 => 'font-weight: bold;',
-            2 => 'font-weight: bold;',
-            3 => 'font-weight: bold;',
-            4 => 'font-weight: bold;',
-            5 => 'font-weight: bold;',
-            6 => 'font-weight: bold;'
-            ),
-        'REGEXPS' => array(
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => ''
-        ),
-    'OOLANG' => true,
-    'OBJECT_SPLITTERS' => array(
-        1 => '.'
-        ),
-    'REGEXPS' => array(
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        ),
-    'TAB_WIDTH' => 4
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/dcl.php b/wiki/vendor/geshi/geshi/src/geshi/dcl.php
deleted file mode 100644
index a1489c7..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/dcl.php
+++ /dev/null
@@ -1,190 +0,0 @@
-<?php
-/*************************************************************************************
- * dcl.php
- * --------
- * Author: Petr Hendl (petr@hendl.cz)
- * Copyright: (c) 2011 Petr Hendl http://hendl.cz/geshi/
- * Release Version: 1.0.9.0
- * Date Started: 2011/02/17
- *
- * DCL language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2011-02-17 (1.0.8.11)
- *   - First Release
- *
- * TODO
- * -------------------------
- *
- *************************************************************************************
- *
- *     This file is part of GeSHi.
- *
- *   GeSHi is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   GeSHi is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with GeSHi; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- ************************************************************************************/
-
-$language_data = array (
-    'LANG_NAME' => 'DCL',
-    'COMMENT_SINGLE' => array('$!', '!'),
-    'COMMENT_MULTI' => array(),
-    'COMMENT_REGEXP' => array(
-        2 => '/(?<=\$)\s*sql\s+.*?(?:quit|exit);?\s*?$/sim' // do not highlight inline sql
-        ),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array('"'),
-    'HARDESCAPE' => array(),
-    'ESCAPE_CHAR' => '',
-    'ESCAPE_REGEXP' => array(
-        1 => "/''[a-zA-Z\\-_]+'/"
-        ),
-    'KEYWORDS' => array(
-        1 => array( // commands
-            'ACCOUNTING', 'ALLOCATE', 'ANALYZE', 'APPEND', 'ASSIGN', 'ATTACH', 'BACKUP',
-            'CALL', 'CANCEL', 'CHECKSUM', 'CLOSE', 'CONNECT', 'CONTINUE', 'CONVERT',
-            'COPY', 'CREATE', 'DEALLOCATE', 'DEASSIGN', 'DEBUG', 'DECK',
-            'DECRYPT', 'DEFINE', 'DELETE', 'DEPOSIT', 'DIFFERENCES', 'DIRECTORY',
-            'DISABLE',  'AUTOSTART', 'DISCONNECT', 'DISMOUNT', 'DUMP', 'EDIT', 'ENABLE',
-            'ENCRYPT', 'ENDSUBROUTINE', 'EOD', 'EOJ', 'EXAMINE', 'EXCHANGE',
-            'EXIT', 'FONT', 'GOSUB', 'GOTO', 'HELP', 'IF', 'THEN', 'ELSE', 'ENDIF', 'INITIALIZE', 'INQUIRE',
-            'INSTALL', 'JAVA', 'JOB', 'LIBRARY', 'LICENSE', 'LINK', 'LOGIN', 'LOGOUT',
-            'MACRO', 'MAIL', 'MERGE', 'MESSAGE', 'MONITOR', 'MOUNT', 'NCS', 'ON', 'OPEN',
-            'PASSWORD', 'PATCH', 'PHONE', 'PIPE', 'PPPD', 'PRINT', 'PRODUCT', 'PURGE',
-            'READ', 'RECALL', 'RENAME', 'REPLY', 'REQUEST', 'RETURN', 'RMU', 'RUN', 'RUNOFF',
-            'SEARCH', 'SET', 'SET AUDIT', 'SET BOOTBLOCK', 'SET BROADCAST',
-            'SET CACHE', 'SET CARD_READER', 'SET CLUSTER', 'SET COMMAND', 'SET CONTROL',
-            'SET CPU', 'SET DAY', 'SET DEFAULT', 'SET DEVICE', 'SET DIRECTORY',
-            'SET DISPLAY', 'SET ENTRY', 'SET FILE', 'SET HOST', 'SET IMAGE', 'SET KEY',
-            'SET LOGINS', 'SET MAGTAPE', 'SET MESSAGE', 'SET NETWORK', 'SET ON', 'SET OUTPUT_RATE',
-            'SET PASSWORD', 'SET PREFERRED_PATH', 'SET PREFIX', 'SET PRINTER', 'SET PROCESS',
-            'SET PROMPT', 'SET PROTECTION', 'SET QUEUE', 'SET RESTART_VALUE',
-            'SET RIGHTS_LIST', 'SET RMS_DEFAULT', 'SET ROOT', 'SET SECURITY',
-            'SET SERVER ACME_SERVER', 'SET SERVER REGISTRY_SERVER', 'SET SERVER SECURITY_SERVER',
-            'SET SHADOW', 'SET SYMBOL', 'SET TERMINAL', 'SET TIME', 'SET VERIFY',
-            'SET VOLUME', 'SET WORKING_SET', 'SHOW', 'SHOW AUDIT',
-            'SHOW BROADCAST', 'SHOW CLUSTER', 'SHOW CPU', 'SHOW DEFAULT', 'SHOW DEVICES',
-            'SHOW DISPLAY', 'SHOW ENTRY', 'SHOW ERROR', 'SHOW FASTPATH', 'SHOW IMAGE',
-            'SHOW INTRUSION', 'SHOW KEY', 'SHOW LICENSE', 'SHOW LOGICAL', 'SHOW MEMORY',
-            'SHOW NETWORK', 'SHOW PRINTER', 'SHOW PROCESS', 'SHOW PROTECTION', 'SHOW QUEUE',
-            'SHOW QUOTA', 'SHOW RMS_DEFAULT', 'SHOW ROOT', 'SHOW SECURITY',
-            'SHOW SERVER ACME_SERVER', 'SHOW SERVER REGISTRY_SERVER', 'SHOW SHADOW',
-            'SHOW STATUS', 'SHOW SYMBOL', 'SHOW SYSTEM', 'SHOW TERMINAL', 'SHOW TIME',
-            'SHOW TRANSLATION', 'SHOW USERS', 'SHOW WORKING_SET', 'SHOW ZONE', 'SORT',
-            'SPAWN', 'START', 'STOP', 'SUBMIT', 'SUBROUTINE', 'SYNCHRONIZE', 'TYPE',
-            'UNLOCK', 'VIEW', 'WAIT', 'WRITE', 'XAUTH'
-            ),
-        2 => array( // lexical functions
-            'F$CONTEXT', 'F$CSID', 'F$CUNITS', 'F$CVSI', 'F$CVTIME', 'F$CVUI',
-            'F$DELTA_TIME', 'F$DEVICE', 'F$DIRECTORY', 'F$EDIT', 'F$ELEMENT',
-            'F$ENVIRONMENT', 'F$EXTRACT', 'F$FAO', 'F$FID_TO_NAME', 'F$FILE_ATTRIBUTES',
-            'F$GETDVI', 'F$GETENV', 'F$GETJPI', 'F$GETQUI', 'F$GETSYI', 'F$IDENTIFIER',
-            'F$INTEGER', 'F$LENGTH', 'F$LICENSE', 'F$LOCATE', 'F$MATCH_WILD', 'F$MESSAGE',
-            'F$MODE', 'F$MULTIPATH', 'F$PARSE', 'F$PID', 'F$PRIVILEGE', 'F$PROCESS',
-            'F$SEARCH', 'F$SETPRV', 'F$STRING', 'F$TIME', 'F$TRNLNM', 'F$TYPE', 'F$UNIQUE',
-            'F$USER', 'F$VERIFY'
-            ),
-        3 => array( // special variables etc
-            'sql$database', 'P1', 'P2', 'P3', 'P4', 'P5', 'P6', 'P7', 'P8', 'P9',
-            '$status', '$severity', 'sys$login', 'sys$system',
-            'sys$input', 'sys$output', 'sys$pipe'
-            )
-        ),
-    'SYMBOLS' => array(
-        '(', ')', '[', ']', '@', '&', '|', '<', '>', '-',
-        '.eqs.', '.eq.', '.lt.', '.lts.', '.gt.', '.gts.', '.ne.', '.nes.',
-        '.le.', '.ge.', '.ges.', '.les.',
-        '.EQS.', '.EQ.', '.LT.', '.LTS.', '.GT.', '.GTS.', '.NE.', '.NES.',
-        '.LE.', '.GE.', '.GES.', '.LES.',
-        '.and.', '.or.', '.not.',
-        '.AND.', '.OR.', '.NOT.',
-        '==', ':==', '=', ':='
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false,
-        2 => false,
-        3 => false
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #000099; font-weight: bold;',
-            2 => 'color: #0066FF;',
-            3 => 'color: #993300;'
-            ),
-        'COMMENTS' => array(
-            0 => 'color: #666666; font-style: italic;',
-            1 => 'color: #666666; font-style: italic;',
-            2 => 'color: #9999FF; font-style: italic;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #006666;',
-            1 => 'color: #0099FF;',
-            2 => 'color: red;',
-            3 => 'color: #007800;',
-            4 => 'color: #007800;',
-            5 => 'color: #780078;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #7a0874; font-weight: bold;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #009900;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #000000;'
-            ),
-        'METHODS' => array(
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #000000; font-weight: bold;'
-            ),
-        'REGEXPS' => array(
-            0 => 'color: #0099FF;',                     // variables
-            1 => 'color: #0000FF;',                     // qualifiers
-            2 => 'color: #FF6600; font-weight: bold;'   // labels
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => ''
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(
-        ),
-    'REGEXPS' => array(
-        // variables
-        0 => "'[a-zA-Z_\\-$]+'",
-        // qualifiers and parameters
-        1 => "(?:\/[a-zA-Z_\/]+)[\s=]",
-        // labels
-        2 => '(?<=\$)\s*[a-zA-Z\-_]+:'
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        ),
-    'TAB_WIDTH' => 4,
-    'PARSER_CONTROL' => array(
-        'COMMENTS' => array(
-        ),
-        'KEYWORDS' => array(
-        )
-    )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/dcpu16.php b/wiki/vendor/geshi/geshi/src/geshi/dcpu16.php
deleted file mode 100644
index 8c61bff..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/dcpu16.php
+++ /dev/null
@@ -1,129 +0,0 @@
-<?php
-/*************************************************************************************
- * dcpu16.php
- * -------
- * Author: Benny Baumann (BenBE@omorphia.de)
- * 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.
- * Syntax definition based on http://0x10c.com/doc/dcpu-16.txt
- *
- * CHANGES
- * -------
- * 2012/04/12 (1.0.0)
- *   -  First Release
- *
- * TODO (updated 2012/04/12)
- * -------------------------
- *
- *************************************************************************************
- *
- *     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' => 'DCPU-16 Assembly',
-    'COMMENT_SINGLE' => array(1 => ';'),
-    'COMMENT_MULTI' => array(),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array("'", '"'),
-    'ESCAPE_CHAR' => '',
-    'NUMBERS' => GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_HEX_PREFIX,
-    'KEYWORDS' => array(
-        /*CPU*/
-        1 => array(
-            'set','add','sub','mul','div','mod','shl','shr','and','bor','xor',
-            'ife','ifn','ifg','ifb',
-            'jsr'
-            ),
-        /*registers*/
-        2 => array(
-            'a','b','c','x','y','z','i','j',
-            'pc','sp','o',
-            'pop','peek','push' //Special cases with DCPU-16
-            ),
-        ),
-    'SYMBOLS' => array(
-        '[', ']', '+', '-', ','
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false,
-        2 => false,
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #000088; font-weight:bold;',
-            2 => 'color: #0000ff;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #adadad; font-style: italic;',
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #000099; font-weight: bold;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #000088;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #7f007f;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #880000;'
-            ),
-        'METHODS' => array(
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #008000;'
-            ),
-        'REGEXPS' => array(
-            2 => 'color: #993333;'
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => 'http://0x10c.com/doc/dcpu-16.txt',
-        2 => ''
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(
-        ),
-    'REGEXPS' => array(
-        //Hex numbers
-        //0 => '0[0-9a-fA-F]{1,32}[hH]',
-        //Binary numbers
-        //1 => '\%[01]{1,64}|[01]{1,64}[bB]?(?![^<]*>)',
-        //Labels
-        2 => '^:[_a-zA-Z][_a-zA-Z0-9]?(?=\s|$)'
-        ),
-    '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_\|%\\-])"
-            )
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/dcs.php b/wiki/vendor/geshi/geshi/src/geshi/dcs.php
deleted file mode 100644
index 58bf5a0..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/dcs.php
+++ /dev/null
@@ -1,180 +0,0 @@
-<?php
-/*************************************************************************************
- * dcs.php
- * ---------------------------------
- * Author: Stelio Passaris (GeSHi@stelio.net)
- * Copyright: (c) 2009 Stelio Passaris (http://stelio.net/stiki/GeSHi)
- * Release Version: 1.0.9.0
- * Date Started: 2009/01/20
- *
- * DCS language file for GeSHi.
- *
- * DCS (Data Conversion System) is part of Sungard iWorks' Prophet suite and is used
- * to convert external data files into a format that Prophet and Glean can read.
- * See http://www.prophet-web.com/Products/DCS for product information.
- * This language file is current for DCS version 7.3.2.
- *
- * Note that the DCS IDE does not handle escape characters correctly. The IDE thinks
- * that a backslash '\' is an escape character, but in practice the backslash does
- * not escape the string delimiter character '"' when the program runs. A '\\' is
- * escaped to '\' when the program runs, but '\"' is treated as '\' at the end of a
- * string. Therefore in this language file, we do not recognise the backslash as an
- * escape character. For the purposes of GeSHi, there is no character escaping.
- *
- * CHANGES
- * -------
- * 2009/02/21 (1.0.8.3)
- *  -  First Release
- *
- * TODO (updated 2009/02/21)
- * -------------------------
- * * Add handling for embedded C code. Note that the DCS IDE does not highlight C code
- *   correctly, but that doesn't mean that we can't! This will be included for a
- *   stable release of GeSHi of version 1.1.x (or later) that allows for highlighting
- *   embedded code using that code's appropriate language file.
- *
- *************************************************************************************
- *
- *     This file is part of GeSHi.
- *
- *   GeSHi is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   GeSHi is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with GeSHi; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *************************************************************************************/
-
-$language_data = array (
-    'LANG_NAME' => 'DCS',
-    'COMMENT_SINGLE' => array(
-        1 => ';'
-        ),
-    'COMMENT_MULTI' => array(
-        ),
-    'COMMENT_REGEXP' => array(
-        // Highlight embedded C code in a separate color:
-        2 => '/\bINSERT_C_CODE\b.*?\bEND_C_CODE\b/ims'
-        ),
-    'CASE_KEYWORDS' => GESHI_CAPS_UPPER,
-    'QUOTEMARKS' => array(
-        '"'
-        ),
-    'ESCAPE_CHAR' => '',
-    'ESCAPE_REGEXP' => '',
-    'NUMBERS' =>
-        GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_FLT_SCI_ZERO,
-    'KEYWORDS' => array(
-        1 => array(
-            'abs', 'ascii_value', 'bit_value', 'blank_date', 'calc_unit_values', 'cm',
-            'complete_months', 'complete_years', 'correct', 'create_input_file', 'cy',
-            'date_convert', 'day', 'del_output_separator',
-            'delete_existing_output_files', 'div', 'ex', 'exact_years', 'exp',
-            'extract_date', 'failed_validation', 'file_number', 'first_record',
-            'fract', 'fund_fac_a', 'fund_fac_b', 'fund_fac_c', 'fund_fac_d',
-            'fund_fac_e', 'fund_fac_f', 'fund_fac_g', 'fund_fac_h', 'fund_fac_i',
-            'fund_fac_j', 'fund_fac_k', 'fund_fac_l', 'fund_fac_m', 'fund_fac_n',
-            'fund_fac_o', 'fund_fac_p', 'fund_fac_q', 'fund_fac_r', 'fund_fac_s',
-            'fund_fac_t', 'fund_fac_u', 'fund_fac_v', 'fund_fac_w', 'fund_fac_x',
-            'fund_fac_y', 'fund_fac_z', 'group', 'group_record',
-            'input_file_date_time', 'input_file_extension', 'input_file_location',
-            'input_file_name', 'int', 'invalid', 'last_record', 'leap_year', 'len',
-            'ln', 'log', 'main_format_name', 'max', 'max_num_subrecords', 'message',
-            'min', 'mod', 'month', 'months_add', 'months_sub', 'nearest_months',
-            'nearest_years', 'next_record', 'nm', 'no_of_current_records',
-            'no_of_records', 'numval', 'ny', 'output', 'output_array_as_constants',
-            'output_file_path', 'output_record', 'pmdf_output', 'previous', 'rand',
-            're_start', 'read_generic_table', 'read_generic_table_text',
-            'read_input_footer', 'read_input_footer_text', 'read_input_header',
-            'read_input_header_text', 'record_count', 'record_suppressed', 'round',
-            'round_down', 'round_near', 'round_up', 'run_dcs_program', 'run_parameter',
-            'run_parameter_text', 'set_main_record', 'set_num_subrecords',
-            'sort_array', 'sort_current_records', 'sort_input', 'strval', 'substr',
-            'summarise', 'summarise_record', 'summarise_units',
-            'summarise_units_record', 'suppress_record', 'table_correct',
-            'table_validate', 'terminate', 'time', 'today', 'trim', 'ubound', 'year',
-            'years_add', 'years_sub'
-            ),
-        2 => array(
-            'and', 'as', 'begin', 'boolean', 'byref', 'byval', 'call', 'case', 'date',
-            'default', 'do', 'else', 'elseif', 'end_c_code', 'endfor', 'endfunction',
-            'endif', 'endproc', 'endswitch', 'endwhile', 'eq',
-            'explicit_declarations', 'false', 'for', 'from', 'function', 'ge', 'gt',
-            'if', 'insert_c_code', 'integer', 'le', 'loop', 'lt', 'ne', 'not',
-            'number', 'or', 'private', 'proc', 'public', 'quitloop', 'return',
-            'short', 'step', 'switch', 'text', 'then', 'to', 'true', 'while'
-            ),
-        3 => array(
-            // These keywords are not highlighted by the DCS IDE but we may as well
-            // keep track of them anyway:
-            'mp_file', 'odbc_file'
-            )
-        ),
-    'SYMBOLS' => array(
-        '(', ')', '[', ']',
-        '=', '<', '>',
-        '+', '-', '*', '/', '^',
-        ':', ','
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false,
-        2 => false,
-        3 => false,
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: red;',
-            2 => 'color: blue;',
-            3 => 'color: black;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: black; background-color: silver;',
-            // Colors for highlighting embedded C code:
-            2 => 'color: maroon; background-color: pink;'
-            ),
-        'ESCAPE_CHAR' => array(
-            ),
-        'BRACKETS' => array(
-            0 => 'color: black;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: green;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: green;'
-            ),
-        'METHODS' => array(
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: black;'
-            ),
-        'REGEXPS' => array(
-            ),
-        'SCRIPT' => array(
-            ),
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => ''
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(
-        ),
-    'REGEXPS' => array(
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        ),
-    'TAB_WIDTH' => 4
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/delphi.php b/wiki/vendor/geshi/geshi/src/geshi/delphi.php
deleted file mode 100644
index fadb4ad..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/delphi.php
+++ /dev/null
@@ -1,299 +0,0 @@
-<?php
-/*************************************************************************************
- * delphi.php
- * ----------
- * 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.9.0
- * Date Started: 2004/07/26
- *
- * Delphi (Object Pascal) language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2012/06/27 (1.0.8.11)
- *   -  Added some keywords
- *   -  fixed hex numbers and hex char literals (including WideChar)
- *   -  Added support for FPC-Style generics
- * 2008/05/23 (1.0.7.22)
- *   -  Added description of extra language features (SF#1970248)
- * 2005/11/19 (1.0.3)
- *   -  Updated the very incomplete keyword and type lists
- * 2005/09/03 (1.0.2)
- *   -  Added support for hex numbers and string entities
- * 2004/11/27 (1.0.1)
- *   -  Added support for multiple object splitters
- * 2004/10/27 (1.0.0)
- *   -  First Release
- *
- * TODO (updated 2004/11/27)
- * -------------------------
- *
- *************************************************************************************
- *
- *   This file is part of GeSHi.
- *
- *   GeSHi is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   GeSHi is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with GeSHi; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- ************************************************************************************/
-
-$language_data = array (
-    'LANG_NAME' => 'Delphi',
-    'COMMENT_SINGLE' => array(1 => '//'),
-    'COMMENT_MULTI' => array('(*' => '*)', '{' => '}'),
-    //Compiler directives
-    'COMMENT_REGEXP' => array(2 => '/\\{\\$.*?}|\\(\\*\\$.*?\\*\\)/U'),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array("'"),
-    'ESCAPE_CHAR' => '',
-
-    'KEYWORDS' => array(
-        1 => array(
-            'Abstract', 'And', 'Array', 'As', 'Asm', 'At', 'Begin', 'Case',
-            'Class', 'Const', 'Constructor', 'Contains', 'Default', 'delayed', 'Destructor',
-            'DispInterface', 'Div', 'Do', 'DownTo', 'Else', 'End', 'Except',
-            'Export', 'Exports', 'External', 'File', 'Finalization', 'Finally', 'For',
-            'Function', 'Generic', 'Goto', 'If', 'Implementation', 'In', 'Inherited',
-            'Initialization', 'Inline', 'Interface', 'Is', 'Label', 'Library', 'Message',
-            'Mod', 'Nil', 'Not', 'Object', 'Of', 'On', 'Or', 'Overload', 'Override',
-            'Package', 'Packed', 'Private', 'Procedure', 'Program', 'Property',
-            'Protected', 'Public', 'Published', 'Read', 'Raise', 'Record', 'Register',
-            'Repeat', 'Requires', 'Resourcestring', 'Set', 'Shl', 'Shr', 'Specialize', 'Stored',
-            'Then', 'ThreadVar', 'To', 'Try', 'Type', 'Unit', 'Until', 'Uses', 'Var',
-            'Virtual', 'While', 'With', 'Write', 'Xor', 'assembler', 'far',
-            'near', 'pascal', 'cdecl', 'safecall', 'stdcall', 'varargs'
-            ),
-        2 => array(
-            'false', 'self', 'true',
-            ),
-        3 => array(
-            'Abs', 'AcquireExceptionObject', 'Addr', 'AnsiToUtf8', 'Append', 'ArcTan',
-            'Assert', 'AssignFile', 'Assigned', 'BeginThread', 'BlockRead',
-            'BlockWrite', 'Break', 'ChDir', 'Chr', 'Close', 'CloseFile',
-            'CompToCurrency', 'CompToDouble', 'Concat', 'Continue', 'Copy', 'Cos',
-            'Dec', 'Delete', 'Dispose', 'DoubleToComp', 'EndThread', 'EnumModules',
-            'EnumResourceModules', 'Eof', 'Eoln', 'Erase', 'ExceptAddr',
-            'ExceptObject', 'Exclude', 'Exit', 'Exp', 'FilePos', 'FileSize',
-            'FillChar', 'Finalize', 'FindClassHInstance', 'FindHInstance',
-            'FindResourceHInstance', 'Flush', 'Frac', 'FreeMem', 'Get8087CW',
-            'GetDir', 'GetLastError', 'GetMem', 'GetMemoryManager',
-            'GetModuleFileName', 'GetVariantManager', 'Halt', 'Hi', 'High',
-            'IOResult', 'Inc', 'Include', 'Initialize', 'Insert', 'Int',
-            'IsMemoryManagerSet', 'IsVariantManagerSet', 'Length', 'Ln', 'Lo', 'Low',
-            'MkDir', 'Move', 'New', 'Odd', 'OleStrToStrVar', 'OleStrToString', 'Ord',
-            'PUCS4Chars', 'ParamCount', 'ParamStr', 'Pi', 'Pos', 'Pred', 'Ptr',
-            'Random', 'Randomize', 'Read', 'ReadLn', 'ReallocMem',
-            'ReleaseExceptionObject', 'Rename', 'Reset', 'Rewrite', 'RmDir', 'Round',
-            'RunError', 'Seek', 'SeekEof', 'SeekEoln', 'Set8087CW', 'SetLength',
-            'SetLineBreakStyle', 'SetMemoryManager', 'SetString', 'SetTextBuf',
-            'SetVariantManager', 'Sin', 'SizeOf', 'Slice', 'Sqr', 'Sqrt', 'Str',
-            'StringOfChar', 'StringToOleStr', 'StringToWideChar', 'Succ', 'Swap',
-            'Trunc', 'Truncate', 'TypeInfo', 'UCS4StringToWideString', 'UTF8Decode',
-            'UTF8Encode', 'UnicodeToUtf8', 'UniqueString', 'UpCase', 'Utf8ToAnsi',
-            'Utf8ToUnicode', 'Val', 'VarArrayRedim', 'VarClear',
-            'WideCharLenToStrVar', 'WideCharLenToString', 'WideCharToStrVar',
-            'WideCharToString', 'WideStringToUCS4String', 'Write', 'WriteLn',
-
-            'Abort', 'AddExitProc', 'AddTerminateProc', 'AdjustLineBreaks', 'AllocMem',
-            'AnsiCompareFileName', 'AnsiCompareStr', 'AnsiCompareText',
-            'AnsiDequotedStr', 'AnsiExtractQuotedStr', 'AnsiLastChar',
-            'AnsiLowerCase', 'AnsiLowerCaseFileName', 'AnsiPos', 'AnsiQuotedStr',
-            'AnsiSameStr', 'AnsiSameText', 'AnsiStrComp', 'AnsiStrIComp',
-            'AnsiStrLComp', 'AnsiStrLIComp', 'AnsiStrLastChar', 'AnsiStrLower',
-            'AnsiStrPos', 'AnsiStrRScan', 'AnsiStrScan', 'AnsiStrUpper',
-            'AnsiUpperCase', 'AnsiUpperCaseFileName', 'AppendStr', 'AssignStr',
-            'Beep', 'BoolToStr', 'ByteToCharIndex', 'ByteToCharLen', 'ByteType',
-            'CallTerminateProcs', 'ChangeFileExt', 'CharLength', 'CharToByteIndex',
-            'CharToByteLen', 'CompareMem', 'CompareStr', 'CompareText', 'CreateDir',
-            'CreateGUID', 'CurrToStr', 'CurrToStrF', 'CurrentYear', 'Date',
-            'DateTimeToFileDate', 'DateTimeToStr', 'DateTimeToString',
-            'DateTimeToSystemTime', 'DateTimeToTimeStamp', 'DateToStr', 'DayOfWeek',
-            'DecodeDate', 'DecodeDateFully', 'DecodeTime', 'DeleteFile',
-            'DirectoryExists', 'DiskFree', 'DiskSize', 'DisposeStr', 'EncodeDate',
-            'EncodeTime', 'ExceptionErrorMessage', 'ExcludeTrailingBackslash',
-            'ExcludeTrailingPathDelimiter', 'ExpandFileName', 'ExpandFileNameCase',
-            'ExpandUNCFileName', 'ExtractFileDir', 'ExtractFileDrive',
-            'ExtractFileExt', 'ExtractFileName', 'ExtractFilePath',
-            'ExtractRelativePath', 'ExtractShortPathName', 'FileAge', 'FileClose',
-            'FileCreate', 'FileDateToDateTime', 'FileExists', 'FileGetAttr',
-            'FileGetDate', 'FileIsReadOnly', 'FileOpen', 'FileRead', 'FileSearch',
-            'FileSeek', 'FileSetAttr', 'FileSetDate', 'FileSetReadOnly', 'FileWrite',
-            'FinalizePackage', 'FindClose', 'FindCmdLineSwitch', 'FindFirst',
-            'FindNext', 'FloatToCurr', 'FloatToDateTime', 'FloatToDecimal',
-            'FloatToStr', 'FloatToStrF', 'FloatToText', 'FloatToTextFmt',
-            'FmtLoadStr', 'FmtStr', 'ForceDirectories', 'Format', 'FormatBuf',
-            'FormatCurr', 'FormatDateTime', 'FormatFloat', 'FreeAndNil',
-            'GUIDToString', 'GetCurrentDir', 'GetEnvironmentVariable',
-            'GetFileVersion', 'GetFormatSettings', 'GetLocaleFormatSettings',
-            'GetModuleName', 'GetPackageDescription', 'GetPackageInfo', 'GetTime',
-            'IncAMonth', 'IncMonth', 'IncludeTrailingBackslash',
-            'IncludeTrailingPathDelimiter', 'InitializePackage', 'IntToHex',
-            'IntToStr', 'InterlockedDecrement', 'InterlockedExchange',
-            'InterlockedExchangeAdd', 'InterlockedIncrement', 'IsDelimiter',
-            'IsEqualGUID', 'IsLeapYear', 'IsPathDelimiter', 'IsValidIdent',
-            'Languages', 'LastDelimiter', 'LoadPackage', 'LoadStr', 'LowerCase',
-            'MSecsToTimeStamp', 'NewStr', 'NextCharIndex', 'Now', 'OutOfMemoryError',
-            'QuotedStr', 'RaiseLastOSError', 'RaiseLastWin32Error', 'RemoveDir',
-            'RenameFile', 'ReplaceDate', 'ReplaceTime', 'SafeLoadLibrary',
-            'SameFileName', 'SameText', 'SetCurrentDir', 'ShowException', 'Sleep',
-            'StrAlloc', 'StrBufSize', 'StrByteType', 'StrCat', 'StrCharLength',
-            'StrComp', 'StrCopy', 'StrDispose', 'StrECopy', 'StrEnd', 'StrFmt',
-            'StrIComp', 'StrLCat', 'StrLComp', 'StrLCopy', 'StrLFmt', 'StrLIComp',
-            'StrLen', 'StrLower', 'StrMove', 'StrNew', 'StrNextChar', 'StrPCopy',
-            'StrPLCopy', 'StrPas', 'StrPos', 'StrRScan', 'StrScan', 'StrToBool',
-            'StrToBoolDef', 'StrToCurr', 'StrToCurrDef', 'StrToDate', 'StrToDateDef',
-            'StrToDateTime', 'StrToDateTimeDef', 'StrToFloat', 'StrToFloatDef',
-            'StrToInt', 'StrToInt64', 'StrToInt64Def', 'StrToIntDef', 'StrToTime',
-            'StrToTimeDef', 'StrUpper', 'StringReplace', 'StringToGUID', 'Supports',
-            'SysErrorMessage', 'SystemTimeToDateTime', 'TextToFloat', 'Time',
-            'TimeStampToDateTime', 'TimeStampToMSecs', 'TimeToStr', 'Trim',
-            'TrimLeft', 'TrimRight', 'TryEncodeDate', 'TryEncodeTime',
-            'TryFloatToCurr', 'TryFloatToDateTime', 'TryStrToBool', 'TryStrToCurr',
-            'TryStrToDate', 'TryStrToDateTime', 'TryStrToFloat', 'TryStrToInt',
-            'TryStrToInt64', 'TryStrToTime', 'UnloadPackage', 'UpperCase',
-            'WideCompareStr', 'WideCompareText', 'WideFmtStr', 'WideFormat',
-            'WideFormatBuf', 'WideLowerCase', 'WideSameStr', 'WideSameText',
-            'WideUpperCase', 'Win32Check', 'WrapText',
-
-            'ActivateClassGroup', 'AllocateHwnd', 'BinToHex', 'CheckSynchronize',
-            'CollectionsEqual', 'CountGenerations', 'DeallocateHwnd', 'EqualRect',
-            'ExtractStrings', 'FindClass', 'FindGlobalComponent', 'GetClass',
-            'GroupDescendantsWith', 'HexToBin', 'IdentToInt',
-            'InitInheritedComponent', 'IntToIdent', 'InvalidPoint',
-            'IsUniqueGlobalComponentName', 'LineStart', 'ObjectBinaryToText',
-            'ObjectResourceToText', 'ObjectTextToBinary', 'ObjectTextToResource',
-            'PointsEqual', 'ReadComponentRes', 'ReadComponentResEx',
-            'ReadComponentResFile', 'Rect', 'RegisterClass', 'RegisterClassAlias',
-            'RegisterClasses', 'RegisterComponents', 'RegisterIntegerConsts',
-            'RegisterNoIcon', 'RegisterNonActiveX', 'SmallPoint', 'StartClassGroup',
-            'TestStreamFormat', 'UnregisterClass', 'UnregisterClasses',
-            'UnregisterIntegerConsts', 'UnregisterModuleClasses',
-            'WriteComponentResFile',
-
-            'ArcCos', 'ArcCosh', 'ArcCot', 'ArcCotH', 'ArcCsc', 'ArcCscH', 'ArcSec',
-            'ArcSecH', 'ArcSin', 'ArcSinh', 'ArcTan2', 'ArcTanh', 'Ceil',
-            'CompareValue', 'Cosecant', 'Cosh', 'Cot', 'CotH', 'Cotan', 'Csc', 'CscH',
-            'CycleToDeg', 'CycleToGrad', 'CycleToRad', 'DegToCycle', 'DegToGrad',
-            'DegToRad', 'DivMod', 'DoubleDecliningBalance', 'EnsureRange', 'Floor',
-            'Frexp', 'FutureValue', 'GetExceptionMask', 'GetPrecisionMode',
-            'GetRoundMode', 'GradToCycle', 'GradToDeg', 'GradToRad', 'Hypot',
-            'InRange', 'IntPower', 'InterestPayment', 'InterestRate',
-            'InternalRateOfReturn', 'IsInfinite', 'IsNan', 'IsZero', 'Ldexp', 'LnXP1',
-            'Log10', 'Log2', 'LogN', 'Max', 'MaxIntValue', 'MaxValue', 'Mean',
-            'MeanAndStdDev', 'Min', 'MinIntValue', 'MinValue', 'MomentSkewKurtosis',
-            'NetPresentValue', 'Norm', 'NumberOfPeriods', 'Payment', 'PeriodPayment',
-            'Poly', 'PopnStdDev', 'PopnVariance', 'Power', 'PresentValue',
-            'RadToCycle', 'RadToDeg', 'RadToGrad', 'RandG', 'RandomRange', 'RoundTo',
-            'SLNDepreciation', 'SYDDepreciation', 'SameValue', 'Sec', 'SecH',
-            'Secant', 'SetExceptionMask', 'SetPrecisionMode', 'SetRoundMode', 'Sign',
-            'SimpleRoundTo', 'SinCos', 'Sinh', 'StdDev', 'Sum', 'SumInt',
-            'SumOfSquares', 'SumsAndSquares', 'Tan', 'Tanh', 'TotalVariance',
-            'Variance'
-            ),
-        4 => array(
-            'AnsiChar', 'AnsiString', 'Bool', 'Boolean', 'Byte', 'ByteBool', 'Cardinal', 'Char',
-            'Comp', 'Currency', 'DWORD', 'Double', 'Extended', 'Int64', 'Integer', 'IUnknown',
-            'LongBool', 'LongInt', 'LongWord', 'PAnsiChar', 'PAnsiString', 'PBool', 'PBoolean', 'PByte',
-            'PByteArray', 'PCardinal', 'PChar', 'PComp', 'PCurrency', 'PDWORD', 'PDate', 'PDateTime',
-            'PDouble', 'PExtended', 'PInt64', 'PInteger', 'PLongInt', 'PLongWord', 'Pointer', 'PPointer',
-            'PShortInt', 'PShortString', 'PSingle', 'PSmallInt', 'PString', 'PHandle', 'PVariant', 'PWord',
-            'PWordArray', 'PWordBool', 'PWideChar', 'PWideString', 'Real', 'Real48', 'ShortInt', 'ShortString',
-            'Single', 'SmallInt', 'String', 'TClass', 'TDate', 'TDateTime', 'TextFile', 'THandle',
-            'TObject', 'TTime', 'Variant', 'WideChar', 'WideString', 'Word', 'WordBool'
-            ),
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false,
-        2 => false,
-        3 => false,
-        4 => false,
-        ),
-    'SYMBOLS' => array(
-        0 => array('(', ')', '[', ']'),
-        1 => array('.', ',', ':', ';'),
-        2 => array('@', '^'),
-        3 => array('=', '+', '-', '*', '/')
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #000000; font-weight: bold;',
-            2 => 'color: #000000; font-weight: bold;',
-            3 => 'color: #000066;',
-            4 => 'color: #000066; font-weight: bold;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #808080; font-style: italic;',
-            2 => 'color: #008000; font-style: italic;',
-            'MULTI' => 'color: #808080; font-style: italic;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #ff0000; font-weight: bold;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #000066;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #ff0000;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #0000ff;'
-            ),
-        'METHODS' => array(
-            1 => 'color: #006600;'
-            ),
-        'REGEXPS' => array(
-            0 => 'color: #0000cc;',
-            1 => 'color: #ff0000;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #000066;',
-            1 => 'color: #000066;',
-            2 => 'color: #000066;',
-            3 => 'color: #000066;'
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => '',
-        4 => ''
-        ),
-    'OOLANG' => true,
-    'OBJECT_SPLITTERS' => array(
-        1 => '.'
-        ),
-    'REGEXPS' => array(
-        //Hex numbers
-        0 => '(?<!\#)\$[0-9a-fA-F]+(?!\w)',
-        //Characters
-        1 => '\#(?:\$[0-9a-fA-F]{1,4}|\d{1,5})'
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        ),
-    'TAB_WIDTH' => 2,
-    'PARSER_CONTROL' => array(
-        'KEYWORDS' => array(
-            3 => array(
-                'DISALLOWED_AFTER' => '(?=\s*[(;])'
-                )
-            )
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/diff.php b/wiki/vendor/geshi/geshi/src/geshi/diff.php
deleted file mode 100644
index ee01e0c..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/diff.php
+++ /dev/null
@@ -1,194 +0,0 @@
-<?php
-/*************************************************************************************
- * diff.php
- * --------
- * 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.9.0
- * Date Started: 2004/12/29
- *
- * Diff-output language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2008/05/23 (1.0.7.22)
- *  -  Added description of extra language features (SF#1970248)
- * 2006/02/27
- *  -  changing language file to use matching of start (^) and end ($) (wt)
- * 2004/12/29 (1.0.0)
- *  -  First Release
- *
- * TODO (updated 2006/02/27)
- * -------------------------
- *
- *
- *************************************************************************************
- *
- *     This file is part of GeSHi.
- *
- *   GeSHi is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   GeSHi is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with GeSHi; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- ************************************************************************************/
-
-
-$language_data = array (
-    'LANG_NAME' => 'Diff',
-    'COMMENT_SINGLE' => array(),
-    'COMMENT_MULTI' => array(),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array(),
-    'ESCAPE_CHAR' => ' ',
-    'KEYWORDS' => array(
-            1 => array(
-                '\ No newline at end of file'
-            ),
-//            2 => array(
-//                '***************' /* This only seems to works in some cases? */
-//            ),
-        ),
-    'SYMBOLS' => array(
-        ),
-    'CASE_SENSITIVE' => array(
-        1 => false,
-//        2 => false
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #aaaaaa; font-style: italic;',
-//            2 => 'color: #dd6611;',
-            ),
-        'COMMENTS' => array(
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => ''
-            ),
-        'BRACKETS' => array(
-            0 => ''
-            ),
-        'STRINGS' => array(
-            0 => ''
-            ),
-        'NUMBERS' => array(
-            0 => ''
-            ),
-        'METHODS' => array(
-            0 => ''
-            ),
-        'SYMBOLS' => array(
-            0 => ''
-            ),
-        'SCRIPT' => array(
-            0 => ''
-            ),
-        'REGEXPS' => array(
-            0 => 'color: #440088;',
-            1 => 'color: #991111;',
-            2 => 'color: #00b000;',
-            3 => 'color: #888822;',
-            4 => 'color: #888822;',
-            5 => 'color: #0011dd;',
-            6 => 'color: #440088;',
-            7 => 'color: #991111;',
-            8 => 'color: #00b000;',
-            9 => 'color: #888822;',
-            ),
-        ),
-    'URLS' => array(
-        1 => '',
-//        2 => ''
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(),
-    'REGEXPS' => array(
-        0 => "[0-9,]+[acd][0-9,]+",
-        //Removed lines
-        1 => array(
-            GESHI_SEARCH => '(^|(?<=\A\s))\\&lt;.*$',
-            GESHI_REPLACE => '\\0',
-            GESHI_MODIFIERS => 'm',
-            GESHI_BEFORE => '',
-            GESHI_AFTER => ''
-            ),
-        //Inserted lines
-        2 => array(
-            GESHI_SEARCH => '(^|(?<=\A\s))\\&gt;.*$',
-            GESHI_REPLACE => '\\0',
-            GESHI_MODIFIERS => 'm',
-            GESHI_BEFORE => '',
-            GESHI_AFTER => ''
-            ),
-        //Location line
-        3 => array(
-            GESHI_SEARCH => '(^|(?<=\A\s))-{3}\\s.*$',
-            GESHI_REPLACE => '\\0',
-            GESHI_MODIFIERS => 'm',
-            GESHI_BEFORE => '',
-            GESHI_AFTER => ''
-            ),
-        //Inserted line
-        4 => array(
-            GESHI_SEARCH => '(^|(?<=\A\s))(\\+){3}\\s.*$',
-            GESHI_REPLACE => '\\0',
-            GESHI_MODIFIERS => 'm',
-            GESHI_BEFORE => '',
-            GESHI_AFTER => ''
-            ),
-        //Modified line
-        5 => array(
-            GESHI_SEARCH => '(^|(?<=\A\s))\\!.*$',
-            GESHI_REPLACE => '\\0',
-            GESHI_MODIFIERS => 'm',
-            GESHI_BEFORE => '',
-            GESHI_AFTER => ''
-            ),
-        //File specification
-        6 => array(
-            GESHI_SEARCH => '(^|(?<=\A\s))[\\@]{2}.*$',
-            GESHI_REPLACE => '\\0',
-            GESHI_MODIFIERS => 'm',
-            GESHI_BEFORE => '',
-            GESHI_AFTER => ''
-            ),
-        //Removed line
-        7 => array(
-            GESHI_SEARCH => '(^|(?<=\A\s))\\-.*$',
-            GESHI_REPLACE => '\\0',
-            GESHI_MODIFIERS => 'm',
-            GESHI_BEFORE => '',
-            GESHI_AFTER => ''
-            ),
-        //Inserted line
-        8 => array(
-            GESHI_SEARCH => '(^|(?<=\A\s))\\+.*$',
-            GESHI_REPLACE => '\\0',
-            GESHI_MODIFIERS => 'm',
-            GESHI_BEFORE => '',
-            GESHI_AFTER => ''
-            ),
-        //File specification
-        9 => array(
-            GESHI_SEARCH => '(^|(?<=\A\s))(\\*){3}\\s.*$',
-            GESHI_REPLACE => '\\0',
-            GESHI_MODIFIERS => 'm',
-            GESHI_BEFORE => '',
-            GESHI_AFTER => ''
-            ),
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/div.php b/wiki/vendor/geshi/geshi/src/geshi/div.php
deleted file mode 100644
index 6ae99f1..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/div.php
+++ /dev/null
@@ -1,124 +0,0 @@
-<?php
-/*************************************************************************************
- * div.php
- * ---------------------------------
- * Author: Gabriel Lorenzo (ermakina@gmail.com)
- * Copyright: (c) 2005 Gabriel Lorenzo (http://ermakina.gazpachito.net)
- * Release Version: 1.0.9.0
- * Date Started: 2005/06/19
- *
- * DIV language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2005/06/22 (1.0.0)
- *  -  First Release, includes "2nd gen" ELSEIF statement
- *
- * TODO (updated 2005/06/22)
- * -------------------------
- *  -  I'm pretty satisfied with this, so nothing for now... :P
- *
- *************************************************************************************
- *
- *     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' => 'DIV',
-    'COMMENT_SINGLE' => array(1 => '//'),
-    'COMMENT_MULTI' => array('/*' => '*/'),
-    'CASE_KEYWORDS' => GESHI_CAPS_UPPER,
-    'QUOTEMARKS' => array("'", '"'),
-    'ESCAPE_CHAR' => '',
-    'KEYWORDS' => array(
-        1 => array(
-            'while','until','to','switch','step','return','repeat','loop','if','from','frame','for','end','elseif',
-            'else','default','debug','continue','clone','case','break','begin'
-            ),
-        2 => array(
-            'xor','whoami','type','sizeof','pointer','or','offset','not','neg','mod','id','dup','and','_ne','_lt',
-            '_le','_gt','_ge','_eq'
-            ),
-        3 => array(
-            'setup_program','program','process','private','local','import','global','function','const',
-            'compiler_options'
-            ),
-        4 => array(
-            'word','struct','string','int','byte'
-            ),
-        ),
-    'SYMBOLS' => array(
-        '(',')','[',']','=','+','-','*','/','!','%','^','&',':',';',',','<','>'
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false,
-        2 => false,
-        3 => false,
-        4 => false,
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #0040b1;',
-            2 => 'color: #000000;',
-            3 => 'color: #000066; font-weight: bold;',
-            4 => 'color: #993333;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #808080; font-style: italic;',
-            'MULTI' => 'color: #808080; font-style: italic;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => ''
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #44aa44;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #ff0000;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #cc66cc;'
-            ),
-        'METHODS' => array(
-            0 => 'color: #202020;',
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #44aa44;'
-            ),
-        'REGEXPS' => array(
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => '',
-        4 => ''
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(),
-    'REGEXPS' => array(
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/dos.php b/wiki/vendor/geshi/geshi/src/geshi/dos.php
deleted file mode 100644
index 744cb82..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/dos.php
+++ /dev/null
@@ -1,225 +0,0 @@
-<?php
-/*************************************************************************************
- * dos.php
- * -------
- * Author: Alessandro Staltari (staltari@geocities.com)
- * Copyright: (c) 2005 Alessandro Staltari (http://www.geocities.com/SiliconValley/Vista/8155/)
- * Release Version: 1.0.9.0
- * Date Started: 2005/07/05
- *
- * DOS language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2008/05/23 (1.0.7.22)
- *   -  Added description of extra language features (SF#1970248)
- * 2005/07/05 (1.0.0)
- *  -  First Release
- *
- * TODO (updated 2005/07/05)
- * -------------------------
- *
- * - Highlight pipes and redirection (do we really need this?)
- * - Add missing keywords.
- * - Find a good hyperlink for keywords.
- * - Improve styles.
- *
- * KNOWN ISSUES (updated 2005/07/07)
- * ---------------------------------
- *
- * - Doesn't even try to handle spaces in variables name or labels (I can't
- *   find a reliable way to establish if a sting is a name or not, in some
- *   cases it depends on the contex or enviroment status).
- * - Doesn't handle %%[letter] pseudo variable used inside FOR constructs
- *   (it should be done only into its scope: how to handle variable it?).
- * - Doesn't handle %~[something] pseudo arguments.
- * - If the same keyword is placed at the end of the line and the
- *   beginning of the next, the second occourrence is not highlighted
- *   (this should be a GeSHi bug, not related to the language definition).
- * - I can't avoid to have keyword highlighted even when they are not used
- *   as keywords but, for example, as arguments to the echo command.
- *
- *************************************************************************************
- *
- *     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' => 'DOS',
-    'COMMENT_SINGLE' => array(),
-    'COMMENT_MULTI' => array(),
-    //DOS comment lines
-    'COMMENT_REGEXP' => array(
-        1 => "/^\s*@?REM\b.*$/mi",
-        2 => "/^\s*::.*$/m",
-        3 => "/\^./"
-        ),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array(),
-    'ESCAPE_CHAR' => '',
-    'KEYWORDS' => array(
-        /* Flow control keywords */
-        1 => array(
-            'if', 'else', 'goto', 'shift',
-            'for', 'in', 'do',
-            'call', 'exit'
-            ),
-        /* IF statement keywords */
-        2 => array(
-            'not', 'exist', 'errorlevel',
-            'defined',
-            'equ', 'neq', 'lss', 'leq', 'gtr', 'geq'
-            ),
-        /* Internal commands */
-        3 => array(
-            'cd', 'md', 'rd', 'chdir', 'mkdir', 'rmdir', 'dir',
-            'del', 'copy', 'move', 'ren', 'rename',
-            'echo',
-            'setlocal', 'endlocal', 'set',
-            'pause',
-            'pushd', 'popd', 'title', 'verify'
-            ),
-        /* Special files */
-        4 => array(
-            'prn', 'nul', 'lpt3', 'lpt2', 'lpt1', 'con',
-            'com4', 'com3', 'com2', 'com1', 'aux'
-            )
-        ),
-    'SYMBOLS' => array(
-        '(', ')', '@', '%', '!', '|', '<', '>', '&'
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false,
-        2 => false,
-        3 => false,
-        4 => false
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #00b100; font-weight: bold;',
-            2 => 'color: #000000; font-weight: bold;',
-            3 => 'color: #b1b100; font-weight: bold;',
-            4 => 'color: #0000ff; font-weight: bold;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #808080; font-style: italic;',
-            2 => 'color: #b100b1; font-style: italic;',
-            3 => 'color: #33cc33;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #ff0000; font-weight: bold;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #66cc66;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #ff0000;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #cc66cc;'
-            ),
-        'METHODS' => array(
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #33cc33;',
-            1 => 'color: #33cc33;'
-            ),
-        'SCRIPT' => array(
-            ),
-        'REGEXPS' => array(
-            0 => 'color: #b100b1; font-weight: bold;',
-            1 => 'color: #448844;',
-            2 => 'color: #448888;',
-            3 => 'color: #448888;'
-            )
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(
-        ),
-    'URLS' => array(
-        1 => 'http://www.ss64.com/nt/{FNAMEL}.html',
-        2 => 'http://www.ss64.com/nt/{FNAMEL}.html',
-        3 => 'http://www.ss64.com/nt/{FNAMEL}.html',
-        4 => 'http://www.ss64.com/nt/{FNAMEL}.html'
-        ),
-    'REGEXPS' => array(
-        /* Label */
-        0 => array(
-/*            GESHI_SEARCH => '((?si:[@\s]+GOTO\s+|\s+:)[\s]*)((?<!\n)[^\s\n]*)',*/
-            GESHI_SEARCH => '((?si:[@\s]+GOTO\s+|\s+:)[\s]*)((?<!\n)[^\s\n]*)',
-            GESHI_REPLACE => '\\2',
-            GESHI_MODIFIERS => 'si',
-            GESHI_BEFORE => '\\1',
-            GESHI_AFTER => ''
-        ),
-        /* Variable assignement */
-        1 => array(
-/*            GESHI_SEARCH => '(SET[\s]+(?si:\/A[\s]+|\/P[\s]+|))([^=\s\n]+)([\s]*=)',*/
-            GESHI_SEARCH => '(SET\s+(?si:\\/A\s+|\\/P\s+)?)([^=\n]+)(\s*=)',
-            GESHI_REPLACE => '\\2',
-            GESHI_MODIFIERS => 'si',
-            GESHI_BEFORE => '\\1',
-            GESHI_AFTER => '\\3'
-            ),
-        /* Arguments or variable evaluation */
-        2 => array(
-/*            GESHI_SEARCH => '(%)([\d*]|[^%\s]*(?=%))((?<!%\d)%|)',*/
-            GESHI_SEARCH => '(!(?:!(?=[a-z0-9]))?)([\d*]|(?:~[adfnpstxz]*(?:$\w+:)?)?[a-z0-9](?!\w)|[^!>\n]*(?=!))((?<!%\d)%|)(?!!>)',
-            GESHI_REPLACE => '\\2',
-            GESHI_MODIFIERS => 'si',
-            GESHI_BEFORE => '\\1',
-            GESHI_AFTER => '\\3'
-            ),
-        /* Arguments or variable evaluation */
-        3 => array(
-/*            GESHI_SEARCH => '(%)([\d*]|[^%\s]*(?=%))((?<!%\d)%|)',*/
-            GESHI_SEARCH => '(%(?:%(?=[a-z0-9]))?)([\d*]|(?:~[adfnpstxz]*(?:$\w+:)?)?[a-z0-9](?!\w)|[^%\n]*(?=%))((?<!%\d)%|)',
-            GESHI_REPLACE => '\\2',
-            GESHI_MODIFIERS => 'si',
-            GESHI_BEFORE => '\\1',
-            GESHI_AFTER => '\\3'
-            )
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        ),
-    'TAB_WIDTH' => 4,
-    'PARSER_CONTROL' => array(
-        'ENABLE_FLAGS' => array(
-            'BRACKETS' => GESHI_NEVER,
-            'NUMBERS' => GESHI_NEVER
-            ),
-        'KEYWORDS' => array(
-            1 => array(
-                'DISALLOWED_BEFORE' => '(?<![\w\-])'
-                ),
-            2 => array(
-                'DISALLOWED_BEFORE' => '(?<![\w\-])'
-                ),
-            3 => array(
-                'DISALLOWED_BEFORE' => '(?<![\w\-])'
-                ),
-            4 => array(
-                'DISALLOWED_BEFORE' => '(?<!\w)'
-                )
-            )
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/dot.php b/wiki/vendor/geshi/geshi/src/geshi/dot.php
deleted file mode 100644
index 77de029..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/dot.php
+++ /dev/null
@@ -1,162 +0,0 @@
-<?php
-/*************************************************************************************
- * dot.php
- * ---------------------------------
- * Author: Adrien Friggeri (adrien@friggeri.net)
- * Copyright: (c) 2007 Adrien Friggeri (http://www.friggeri.net)
- * Release Version: 1.0.9.0
- * Date Started: 2007/05/30
- *
- * dot language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2007/05/30 (1.0.0)
- *  -  First Release
- *
- * TODO (updated 2007/05/30)
- * -------------------------
- * Everything
- *
- *************************************************************************************
- *
- *     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' => 'dot',
-    'COMMENT_SINGLE' => array(1 => '//', 2 => '#'),
-    'COMMENT_MULTI' => array('/*' => '*/'),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array('"'),
-    'ESCAPE_CHAR' => '\\',
-    'KEYWORDS' => array(
-        1 => array(
-            'URL', 'arrowhead', 'arrowsize', 'arrowtail', 'bb', 'bgcolor', 'bottomlabel',
-            'center', 'clusterrank', 'color', 'comment', 'constraint', 'decorate',
-            'dir', 'distortion', 'fillcolor', 'fixedsize', 'fontcolor',
-            'fontname', 'fontsize', 'group', 'headclip', 'headlabel', 'headport',
-            'height', 'id', 'label', 'labelangle', 'labeldistance', 'labelfontcolor',
-            'labelfontname', 'labelfontsize', 'layer', 'layers', 'margin', 'mclimit',
-            'minlen', 'nodesep', 'nslimit', 'ordering', 'orientation', 'page',
-            'pagedir', 'peripheries', 'port_label_distance', 'quantum', 'rank', 'rankdir',
-            'ranksep', 'ratio', 'regular', 'rotate', 'samehead', 'sametail', 'searchsize',
-            'shape', 'shapefile', 'showboxes', 'sides', 'size', 'skew', 'style',
-            'tailclip', 'taillabel', 'tailport', 'toplabel', 'weight', 'width'
-            ),
-        2 => array(
-            'node', 'graph', 'digraph', 'strict', 'edge', 'subgraph'
-            ),
-        3 => array(
-            'Mcircle', 'Mdiamond', 'Mrecord', 'Msquare', 'auto', 'back', 'bold',
-            'both', 'box', 'circle', 'compress', 'dashed', 'diamond', 'dot',
-            'dotted', 'doublecircle', 'doubleoctagon', 'egg', 'ellipse', 'epsf',
-            'false', 'fill', 'filled', 'forward', 'global', 'hexagon', 'house',
-            'inv', 'invdot', 'invhouse', 'invis', 'invodot', 'invtrapezium',
-            'invtriangle', 'local', 'max', 'min', 'none', 'normal', 'octagon',
-            'odot', 'out', 'parallelogram', 'plaintext', 'polygon', 'record',
-            'same', 'solid', 'trapezium', 'triangle', 'tripleoctagon', 'true'
-            ),
-        4 => array(
-            'aliceblue', 'antiquewhite', 'aquamarine', 'azure', 'beige', 'bisque', 'black',
-            'blanchedalmond', 'blue', 'blueviolet', 'brown', 'burlywood', 'cadetblue',
-            'chartreuse', 'chocolate', 'coral', 'cornflowerblue', 'cornsilk', 'crimson',
-            'cyan', 'darkgoldenrod', 'darkgreen', 'darkkhaki', 'darkolivegreen',
-            'darkorange', 'darkorchid', 'darksalmon', 'darkseagreen', 'darkslateblue',
-            'darkslategray', 'darkturquoise', 'darkviolet', 'deeppink', 'deepskyblue',
-            'dimgray', 'dodgerblue', 'firebrick', 'forestgreen', 'gainsboro', 'ghostwhite',
-            'gold', 'goldenrod', 'gray', 'green', 'greenyellow', 'honeydew', 'hotpink',
-            'indianred', 'indigo', 'ivory', 'khaki', 'lavender', 'lavenderblush',
-            'lawngreen', 'lemonchiffon', 'lightblue', 'lightcyan', 'lightgoldenrod',
-            'lightgoldenrodyellow', 'lightgray', 'lightpink', 'lightsalmon',
-            'lightseagreen', 'lightskyblue', 'lightslateblue', 'lightslategray',
-            'lightyellow', 'limegreen', 'linen', 'magenta', 'maroon', 'mediumaquamarine',
-            'mediumblue', 'mediumorchid', 'mediumpurple', 'mediumseagreen',
-            'mediumslateblue', 'mediumspringgreen', 'mediumturquoise', 'mediumvioletred',
-            'midnightblue', 'mintcream', 'mistyrose', 'moccasin', 'navajowhite', 'navy',
-            'navyblue', 'oldlace', 'olivedrab', 'oralwhite', 'orange', 'orangered',
-            'orchid', 'palegoldenrod', 'palegreen', 'paleturquoise', 'palevioletred',
-            'papayawhip', 'peachpuff', 'peru', 'pink', 'plum', 'powderblue', 'purple',
-            'red', 'rosybrown', 'royalblue', 'saddlebrown', 'salmon', 'salmon2', 'sandybrown',
-            'seagreen', 'seashell', 'sienna', 'skyblue', 'slateblue', 'slategray', 'snow',
-            'springgreen', 'steelblue', 'tan', 'thistle', 'tomato', 'turquoise', 'violet',
-            'violetred', 'wheat', 'white', 'whitesmoke', 'yellow', 'yellowgreen'
-            )
-        ),
-    'SYMBOLS' => array(
-        '[', ']', '{', '}', '-', '+', '*', '/', '<', '>', '!', '~', '%', '&', '|', '='
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false,
-        2 => false,
-        3 => false,
-        4 => false,
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #000066;',
-            2 => 'color: #000000; font-weight: bold;',
-            3 => 'color: #993333;',
-            4 => 'color: #b1b100;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #808080; font-style: italic;',
-            2 => 'color: #339933;',
-            'MULTI' => 'color: #808080; font-style: italic;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #af624d; font-weight: bold;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #66cc66;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #ff0000;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #cc66cc;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #66cc66;'
-            ),
-        'METHODS' => array(
-            ),
-        'SCRIPT' => array(
-            ),
-        'REGEXPS' => array(
-            ),
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => '',
-        4 => ''
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(),
-    'REGEXPS' => array(),
-    'STRICT_MODE_APPLIES' => GESHI_MAYBE,
-    'SCRIPT_DELIMITERS' => array(),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        0 => true,
-        1 => true,
-        2 => true,
-        3 => true
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/e.php b/wiki/vendor/geshi/geshi/src/geshi/e.php
deleted file mode 100644
index 5f321e6..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/e.php
+++ /dev/null
@@ -1,206 +0,0 @@
-<?php
-/*************************************************************************************
- * e.php
- * --------
- * Author: Kevin Reid (kpreid@switchb.org)
- * Copyright: (c) 2010 Kevin Reid (http://switchb.org/kpreid/)
- * Release Version: 1.0.9.0
- * Date Started: 2010/04/16
- *
- * E language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2010-04-21 (1.0.8.8)
- *  -  Fixing langcheck-reported bugs.
- * 2010-04-14 (0.1)
- *  -  First Release
- *
- * TODO (updated 2010-04-21)
- * -------------------------
- *  -  Do something useful with the keyword groups. Since RC uses CSS classes named
- *     by the group numbers, either
- *     - change the numbering to match conventional uses by other languages,
- *     - or find or create some way to produce usefully named classes.
- *
- *************************************************************************************
- *
- *     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' => 'E',
-    'COMMENT_SINGLE' => array(1 => '#'),
-    'COMMENT_MULTI' => array('/**' => '*/'), // Note: This is method doc, not a general comment syntax.
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-
-    // FIXME: The escaping inside ` is actually doubling of any interior `, $, or @ -- backslash is NOT special
-    'QUOTEMARKS' => array('\'', '"', '`'),
-    'ESCAPE_CHAR' => '\\',
-
-    'KEYWORDS' => array(
-        // builtin control structures
-        1 => array(
-            'accum', 'break', 'try', 'continue', 'if', 'while', 'for', 'switch'
-            ),
-
-        // control structures subsidiary keywords
-        2 => array(
-            'catch', 'else', 'finally', 'in', 'exit'
-            ),
-
-        // named operators
-        3 => array(
-            'fn', 'via'
-            ),
-
-        // variable/function/object definers
-        4 => array(
-            'def', 'bind', 'var'
-            ),
-
-        // object definition subsidiary keywords
-        5 => array(
-            'extends', 'as', 'implements', 'guards', 'match', 'to', 'method'
-            ),
-
-        // builtin nouns in safeEnv
-        6 => array(
-            'null', 'false', 'true', 'throw', '__loop', '__makeList',
-            '__makeMap', '__makeProtocolDesc', '__makeMessageDesc',
-            '__makeParamDesc', 'any', 'void', 'boolean', '__makeOrderedSpace',
-            'ValueGuard', '__MatchContext', 'require', '__makeVerbFacet', 'NaN',
-            'Infinity', '__identityFunc', '__makeInt', '__makeFinalSlot',
-            '__makeVarSlot', '__makeGuardedSlot', '__makeGuard', '__makeTwine',
-            '__makeSourceSpan', '__auditedBy', 'Guard', 'near', 'pbc',
-            'PassByCopy', 'DeepPassByCopy', 'Data', 'Persistent', 'DeepFrozen',
-            'int', 'float64', 'char', 'String', 'Twine', 'TextWriter', 'List',
-            'Map', 'nullOk', 'Tuple', '__Portrayal', 'notNull', 'vow', 'rcvr',
-            'SturdyRef', 'simple__quasiParser', 'twine__quasiParser',
-            'rx__quasiParser', 'e__quasiParser', 'epatt__quasiParser',
-            'sml__quasiParser', 'term__quasiParser', 'traceln', '__equalizer',
-            '__comparer', 'Ref', 'E', 'promiseAllFulfilled', 'EIO', 'help',
-            'safeScope', '__eval', 'resource__uriGetter', 'type__uriGetter',
-            'import__uriGetter', 'elib__uriGetter', 'elang__uriGetter',
-            'opaque__uriGetter'
-            ),
-
-        // builtin nouns in privilegedEnv
-        7 => array(
-            'file__uriGetter', 'fileURL__uriGetter', 'jar__uriGetter',
-            'http__uriGetter', 'ftp__uriGetter', 'gopher__uriGetter',
-            'news__uriGetter', 'cap__uriGetter', 'makeCommand', 'stdout',
-            'stderr', 'stdin', 'print', 'println', 'interp', 'entropy', 'timer',
-            'introducer', 'identityMgr', 'makeSturdyRef', 'timeMachine',
-            'unsafe__uriGetter', 'currentVat', 'rune', 'awt__uriGetter',
-            'swing__uriGetter', 'JPanel__quasiParser', 'swt__uriGetter',
-            'currentDisplay', 'swtGrid__quasiParser', 'swtGrid`',
-            'privilegedScope'
-            ),
-
-        // reserved keywords
-        8 => array(
-            'abstract', 'an', 'assert', 'attribute', 'be', 'begin', 'behalf',
-            'belief', 'believe', 'believes', 'case', 'class', 'const',
-            'constructor', 'declare', 'default', 'define', 'defmacro',
-            'delicate', 'deprecated', 'dispatch', 'do', 'encapsulate',
-            'encapsulated', 'encapsulates', 'end', 'ensure', 'enum', 'eventual',
-            'eventually', 'export', 'facet', 'forall', 'function', 'given',
-            'hidden', 'hides', 'inline', 'is', 'know', 'knows', 'lambda', 'let',
-            'methods', 'module', 'namespace', 'native', 'obeys', 'octet',
-            'oneway', 'operator', 'package', 'private', 'protected', 'public',
-            'raises', 'reliance', 'reliant', 'relies', 'rely', 'reveal', 'sake',
-            'signed', 'static', 'struct', 'suchthat', 'supports', 'suspect',
-            'suspects', 'synchronized', 'this', 'transient', 'truncatable',
-            'typedef', 'unsigned', 'unum', 'uses', 'using', 'utf8', 'utf16',
-            'virtual', 'volatile', 'wstring'
-            )
-        ),
-    'SYMBOLS' => array(
-        1 => array(
-            '(', ')', '{', '}', '[', ']', '+', '-', '*', '/', '%', '=', '<', '>', '!', '^', '&', '|', '?', ':', ';', ','
-            )
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => true,
-        2 => true,
-        3 => true,
-        4 => true,
-        5 => true,
-        6 => true,
-        7 => true,
-        8 => true
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #b1b100;',
-            2 => 'color: #b1b100;',
-            3 => 'color: #b1b100;',
-            4 => 'color: #b1b100;',
-            5 => 'color: #b1b100;',
-            6 => 'color: #b1b100;',
-            7 => 'color: #b1b100;',
-            8 => 'color: #b1b100;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #666666; font-style: italic;',
-            '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(
-            0 => 'color: #004000;'
-            ),
-        'SYMBOLS' => array(
-            1 => 'color: #339933;'
-            ),
-        'REGEXPS' => array(),
-        'SCRIPT' => array()
-        ),
-    'URLS' => array(
-        1 => 'http://wiki.erights.org/wiki/{FNAME}',
-        2 => 'http://wiki.erights.org/wiki/{FNAME}',
-        3 => 'http://wiki.erights.org/wiki/{FNAME}',
-        4 => 'http://wiki.erights.org/wiki/{FNAME}',
-        5 => 'http://wiki.erights.org/wiki/{FNAME}',
-        6 => 'http://wiki.erights.org/wiki/{FNAME}',
-        7 => 'http://wiki.erights.org/wiki/{FNAME}',
-        8 => 'http://wiki.erights.org/wiki/{FNAME}'
-        ),
-    'OOLANG' => true,
-    'OBJECT_SPLITTERS' => array(
-        1 => '.',
-        2 => '<-',
-        3 => '::'
-        ),
-    'REGEXPS' => array(),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(),
-    'HIGHLIGHT_STRICT_BLOCK' => array()
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/ecmascript.php b/wiki/vendor/geshi/geshi/src/geshi/ecmascript.php
deleted file mode 100644
index 8d4ab15..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/ecmascript.php
+++ /dev/null
@@ -1,208 +0,0 @@
-<?php
-/*************************************************************************************
- * ecmascript.php
- * --------------
- * Author: Michel Mariani (http://www.tonton-pixel.com/site/)
- * Copyright: (c) 2010 Michel Mariani (http://www.tonton-pixel.com/site/)
- * Release Version: 1.0.9.0
- * Date Started: 2010/01/08
- *
- * ECMAScript language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2010/01/08 (1.0.8.6)
- *  -  First Release
- *  -  Adapted from javascript.php to support plain ECMAScript/JavaScript (no HTML, no DOM)
- *  -  Fixed regular expression for 'COMMENT_REGEXP' to exclude 'COMMENT_MULTI' syntax
- *  -  Added '~' and removed '@' from 'SYMBOLS'
- *  -  Cleaned up and expanded the list of 'KEYWORDS'
- *  -  Added support for 'ESCAPE_REGEXP' and 'NUMBERS' (from c.php)
- *  -  Selected colors to match my web site color chart
- *  -  Added full number highlighting in all C language style formats
- *  -  Added highlighting of escape sequences in strings, in all C language style formats including Unicode (\uXXXX).
- *
- * TODO (updated 2010/01/08)
- * -------------------------
- *
- *************************************************************************************
- *
- *     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' => 'ECMAScript',
-    'COMMENT_SINGLE' => array(1 => '//'),
-    'COMMENT_MULTI' => array('/*' => '*/'),
-    // Regular Expression Literals
-    'COMMENT_REGEXP' => array(2 => "/(?<=[\\s^])s\\/(?:\\\\.|(?!\n)[^\\*\\/\\\\])+\\/(?:\\\\.|(?!\n)[^\\*\\/\\\\])+\\/[gimsu]*(?=[\\s$\\.\\;])|(?<=[\\s^(=])m?\\/(?:\\\\.|(?!\n)[^\\*\\/\\\\])+\\/[gimsu]*(?=[\\s$\\.\\,\\;\\)])/iU"),
-    '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( // Reserved literals
-            'false', 'true',
-            'null'
-            ),
-        2 => array( // Main keywords
-            'break', 'case', 'catch', 'continue', 'default', 'delete', 'do', 'else',
-            'finally', 'for', 'function', 'if', 'in', 'instanceof', 'new', 'return',
-            'switch', 'this', 'throw', 'try', 'typeof', 'var', 'void', 'while',
-            'with'
-            ),
-        3 => array( // Extra keywords or keywords reserved for future use
-            'abstract', 'as', 'boolean', 'byte', 'char', 'class', 'const', 'debugger',
-            'double', 'enum', 'export', 'extends', 'final', 'float', 'goto', 'implements',
-            'import', 'int', 'interface', 'is', 'long', 'native', 'namespace', 'package',
-            'private', 'protected', 'public', 'short', 'static', 'super', 'synchronized', 'throws',
-            'transient', 'use', 'volatile'
-            ),
-        4 => array( // Operators
-            'get', 'set'
-            ),
-        5 => array( // Built-in object classes
-            'Array', 'Boolean', 'Date', 'EvalError', 'Error', 'Function', 'Math', 'Number',
-            'Object', 'RangeError', 'ReferenceError', 'RegExp', 'String', 'SyntaxError', 'TypeError', 'URIError'
-            ),
-        6 => array( // Global properties
-            'Infinity', 'NaN', 'undefined'
-            ),
-        7 => array( // Global methods
-            'decodeURI', 'decodeURIComponent', 'encodeURI', 'encodeURIComponent',
-            'eval', 'isFinite', 'isNaN', 'parseFloat', 'parseInt',
-            // The escape and unescape functions do not work properly for non-ASCII characters and have been deprecated.
-            // In JavaScript 1.5 and later, use encodeURI, decodeURI, encodeURIComponent, and decodeURIComponent.
-            'escape', 'unescape'
-            ),
-        8 => array( // Function's arguments
-            'arguments'
-            )
-        ),
-    'SYMBOLS' => array(
-        '(', ')', '[', ']', '{', '}',
-        '+', '-', '*', '/', '%',
-        '!', '.', '&', '|', '^',
-        '<', '>', '=', '~',
-        ',', ';', '?', ':'
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => true,
-        2 => true,
-        3 => true,
-        4 => true,
-        5 => true,
-        6 => true,
-        7 => true,
-        8 => true
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #009999;',
-            2 => 'color: #1500C8;',
-            3 => 'color: #1500C8;',
-            4 => 'color: #1500C8;',
-            5 => 'color: #1500C8;',
-            6 => 'color: #1500C8;',
-            7 => 'color: #1500C8;',
-            8 => 'color: #1500C8;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #666666; font-style: italic;',
-            2 => 'color: #CC0000;',
-            'MULTI' => 'color: #666666; font-style: italic;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #3366CC;',
-            1 => 'color: #3366CC;',
-            2 => 'color: #3366CC;',
-            3 => 'color: #3366CC;',
-            4 => 'color: #3366CC;',
-            5 => 'color: #3366CC;',
-            'HARD' => '',
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #008800;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #9900FF;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #FF00FF;',
-            GESHI_NUMBER_BIN_PREFIX_0B => 'color: #FF00FF;',
-            GESHI_NUMBER_OCT_PREFIX => 'color: #FF00FF;',
-            GESHI_NUMBER_HEX_PREFIX => 'color: #FF00FF;',
-            GESHI_NUMBER_FLT_SCI_SHORT => 'color: #FF00FF;',
-            GESHI_NUMBER_FLT_SCI_ZERO => 'color: #FF00FF;',
-            GESHI_NUMBER_FLT_NONSCI_F => 'color: #FF00FF;',
-            GESHI_NUMBER_FLT_NONSCI => 'color: #FF00FF;'
-            ),
-        'METHODS' => array(
-            1 => 'color: #660066;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #339933;'
-            ),
-        'REGEXPS' => array(
-            ),
-        'SCRIPT' => array(
-            0 => '',
-            1 => '',
-            2 => '',
-            3 => ''
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => '',
-        4 => '',
-        5 => '',
-        6 => '',
-        7 => '',
-        8 => ''
-        ),
-    'OOLANG' => true,
-    'OBJECT_SPLITTERS' => array(
-        1 => '.'
-        ),
-    'REGEXPS' => array(
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        ),
-    'TAB_WIDTH' => 4
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/eiffel.php b/wiki/vendor/geshi/geshi/src/geshi/eiffel.php
deleted file mode 100644
index 14a2cc0..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/eiffel.php
+++ /dev/null
@@ -1,393 +0,0 @@
-<?php
-/*************************************************************************************
- * eiffel.php
- * ----------
- * Author: Zoran Simic (zsimic@axarosenberg.com)
- * Copyright: (c) 2005 Zoran Simic
- * Release Version: 1.0.9.0
- * Date Started: 2005/06/30
- *
- * Eiffel language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2005/06/30 (1.0.7)
- *  -  Initial release
- *
- * TODO (updated 2005/06/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' => 'Eiffel',
-    'COMMENT_SINGLE' => array(1 => '--'),
-    'COMMENT_MULTI' => array(),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array("'", '"'),
-    'ESCAPE_CHAR' => '%',
-    'KEYWORDS' => array(
-        1 => array(
-            'separate',
-            'invariant',
-            'inherit',
-            'indexing',
-            'feature',
-            'expanded',
-            'deferred',
-            'class'
-            ),
-        2 => array(
-            'xor',
-            'when',
-            'variant',
-            'until',
-            'unique',
-            'undefine',
-            'then',
-            'strip',
-            'select',
-            'retry',
-            'rescue',
-            'require',
-            'rename',
-            'reference',
-            'redefine',
-            'prefix',
-            'or',
-            'once',
-            'old',
-            'obsolete',
-            'not',
-            'loop',
-            'local',
-            'like',
-            'is',
-            'inspect',
-            'infix',
-            'include',
-            'implies',
-            'if',
-            'frozen',
-            'from',
-            'external',
-            'export',
-            'ensure',
-            'end',
-            'elseif',
-            'else',
-            'do',
-            'creation',
-            'create',
-            'check',
-            'as',
-            'and',
-            'alias',
-            'agent'
-            ),
-        3 => array(
-            'Void',
-            'True',
-            'Result',
-            'Precursor',
-            'False',
-            'Current'
-            ),
-        4 => array(
-            'UNIX_SIGNALS',
-            'UNIX_FILE_INFO',
-            'UNBOUNDED',
-            'TWO_WAY_TREE_CURSOR',
-            'TWO_WAY_TREE',
-            'TWO_WAY_SORTED_SET',
-            'TWO_WAY_LIST',
-            'TWO_WAY_CURSOR_TREE',
-            'TWO_WAY_CIRCULAR',
-            'TWO_WAY_CHAIN_ITERATOR',
-            'TUPLE',
-            'TREE',
-            'TRAVERSABLE',
-            'TO_SPECIAL',
-            'THREAD_CONTROL',
-            'THREAD_ATTRIBUTES',
-            'THREAD',
-            'TABLE',
-            'SUBSET',
-            'STRING_HANDLER',
-            'STRING',
-            'STREAM',
-            'STORABLE',
-            'STD_FILES',
-            'STACK',
-            'SPECIAL',
-            'SORTED_TWO_WAY_LIST',
-            'SORTED_STRUCT',
-            'SORTED_LIST',
-            'SINGLE_MATH',
-            'SET',
-            'SEQUENCE',
-            'SEQ_STRING',
-            'SEMAPHORE',
-            'ROUTINE',
-            'RESIZABLE',
-            'RECURSIVE_TREE_CURSOR',
-            'RECURSIVE_CURSOR_TREE',
-            'REAL_REF',
-            'REAL',
-            'RAW_FILE',
-            'RANDOM',
-            'QUEUE',
-            'PROXY',
-            'PROFILING_SETTING',
-            'PROCEDURE',
-            'PRIORITY_QUEUE',
-            'PRIMES',
-            'PRECOMP',
-            'POINTER_REF',
-            'POINTER',
-            'PLATFORM',
-            'PLAIN_TEXT_FILE',
-            'PATH_NAME',
-            'PART_SORTED_TWO_WAY_LIST',
-            'PART_SORTED_SET',
-            'PART_SORTED_LIST',
-            'PART_COMPARABLE',
-            'OPERATING_ENVIRONMENT',
-            'ONCE_CONTROL',
-            'OBJECT_OWNER',
-            'OBJECT_CONTROL',
-            'NUMERIC',
-            'NONE',
-            'MUTEX',
-            'MULTI_ARRAY_LIST',
-            'MULTAR_LIST_CURSOR',
-            'MEMORY',
-            'MEM_INFO',
-            'MEM_CONST',
-            'MATH_CONST',
-            'LIST',
-            'LINKED_TREE_CURSOR',
-            'LINKED_TREE',
-            'LINKED_STACK',
-            'LINKED_SET',
-            'LINKED_QUEUE',
-            'LINKED_PRIORITY_QUEUE',
-            'LINKED_LIST_CURSOR',
-            'LINKED_LIST',
-            'LINKED_CURSOR_TREE',
-            'LINKED_CIRCULAR',
-            'LINKABLE',
-            'LINEAR_ITERATOR',
-            'LINEAR',
-            'ITERATOR',
-            'IO_MEDIUM',
-            'INTERNAL',
-            'INTEGER_REF',
-            'INTEGER_INTERVAL',
-            'INTEGER',
-            'INFINITE',
-            'INDEXABLE',
-            'IDENTIFIED_CONTROLLER',
-            'IDENTIFIED',
-            'HIERARCHICAL',
-            'HEAP_PRIORITY_QUEUE',
-            'HASHABLE',
-            'HASH_TABLE_CURSOR',
-            'HASH_TABLE',
-            'GENERAL',
-            'GC_INFO',
-            'FUNCTION',
-            'FORMAT_INTEGER',
-            'FORMAT_DOUBLE',
-            'FIXED_TREE',
-            'FIXED_LIST',
-            'FIXED',
-            'FINITE',
-            'FILE_NAME',
-            'FILE',
-            'FIBONACCI',
-            'EXECUTION_ENVIRONMENT',
-            'EXCEPTIONS',
-            'EXCEP_CONST',
-            'DYNAMIC_TREE',
-            'DYNAMIC_LIST',
-            'DYNAMIC_CIRCULAR',
-            'DYNAMIC_CHAIN',
-            'DOUBLE_REF',
-            'DOUBLE_MATH',
-            'DOUBLE',
-            'DISPENSER',
-            'DIRECTORY_NAME',
-            'DIRECTORY',
-            'DECLARATOR',
-            'DEBUG_OUTPUT',
-            'CURSOR_TREE_ITERATOR',
-            'CURSOR_TREE',
-            'CURSOR_STRUCTURE',
-            'CURSOR',
-            'COUNTABLE_SEQUENCE',
-            'COUNTABLE',
-            'CONTAINER',
-            'CONSOLE',
-            'CONDITION_VARIABLE',
-            'COMPARABLE_STRUCT',
-            'COMPARABLE_SET',
-            'COMPARABLE',
-            'COMPACT_TREE_CURSOR',
-            'COMPACT_CURSOR_TREE',
-            'COLLECTION',
-            'CIRCULAR_CURSOR',
-            'CIRCULAR',
-            'CHARACTER_REF',
-            'CHARACTER',
-            'CHAIN',
-            'CELL',
-            'BOX',
-            'BOUNDED_STACK',
-            'BOUNDED_QUEUE',
-            'BOUNDED',
-            'BOOLEAN_REF',
-            'BOOLEAN',
-            'BOOL_STRING',
-            'BIT_REF',
-            'BINARY_TREE',
-            'BINARY_SEARCH_TREE_SET',
-            'BINARY_SEARCH_TREE',
-            'BILINEAR',
-            'BI_LINKABLE',
-            'BASIC_ROUTINES',
-            'BAG',
-            'ASCII',
-            'ARRAYED_TREE',
-            'ARRAYED_STACK',
-            'ARRAYED_QUEUE',
-            'ARRAYED_LIST_CURSOR',
-            'ARRAYED_LIST',
-            'ARRAYED_CIRCULAR',
-            'ARRAY2',
-            'ARRAY',
-            'ARGUMENTS',
-            'ANY',
-            'ACTIVE'
-            ),
-        5 => array(
-            'yes',
-            'visible',
-            'trace',
-            'system',
-            'root',
-            'profile',
-            'override_cluster',
-            'object',
-            'no',
-            'multithreaded',
-            'msil_generation_type',
-            'line_generation',
-            'library',
-            'inlining_size',
-            'inlining',
-            'include_path',
-            'il_verifiable',
-            'exclude',
-            'exception_trace',
-            'dynamic_runtime',
-            'dotnet_naming_convention',
-            'disabled_debug',
-            'default',
-            'debug',
-            'dead_code_removal',
-            'console_application',
-            'cluster',
-            'cls_compliant',
-            'check_vape',
-            'assertion',
-            'array_optimization',
-            'all',
-            'address_expression'
-            ),
-        ),
-    'SYMBOLS' => array(
-        '+', '-', '*', '?', '=', '/', '%', '&', '>', '<', '^', '!', '|', ':',
-        '(', ')', '{', '}', '[', ']', '#'
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false,
-        2 => false,
-        3 => false,
-        4 => true,
-        5 => false,
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #0600FF; font-weight: bold;',
-            2 => 'color: #0600FF; font-weight: bold;',
-            3 => 'color: #800080;',
-            4 => 'color: #800000',
-            5 => 'color: #603000;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #008000; font-style: italic;',
-            'MULTI' => ''
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #005070; font-weight: bold;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #FF0000;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #0080A0;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #FF0000;'
-            ),
-        'METHODS' => array(
-            1 => 'color: #000060;',
-            2 => 'color: #000050;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #600000;'
-            ),
-        'REGEXPS' => array(
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => '',
-        4 => 'http://www.google.com/search?q=site%3Ahttp%3A%2F%2Fdocs.eiffel.com%2Feiffelstudio%2Flibraries+{FNAMEL}&amp;btnI=I%27m+Feeling+Lucky',
-        5 => ''
-        ),
-    'OOLANG' => true,
-    'OBJECT_SPLITTERS' => array(
-        1 => '.'
-        ),
-    'REGEXPS' => array(
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/email.php b/wiki/vendor/geshi/geshi/src/geshi/email.php
deleted file mode 100644
index c77d0fa..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/email.php
+++ /dev/null
@@ -1,220 +0,0 @@
-<?php
-/*************************************************************************************
- * email.php
- * ---------------
- * Author: Benny Baumann (BenBE@geshi.org)
- * Copyright: (c) 2008 Benny Baumann (http://qbnz.com/highlighter/)
- * Release Version: 1.0.9.0
- * Date Started: 2008/10/19
- *
- * Email (mbox \ eml \ RFC format) language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2008/10/19 (1.0.8.1)
- *   -  First Release
- *
- * TODO (updated 2008/10/19)
- * -------------------------
- * * Better checks when a header field should be expected
- * * Fix the bound checks for kw groups 2 and 3, as well as rx group 1
- *
- *************************************************************************************
- *
- *     This file is part of GeSHi.
- *
- *   GeSHi is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   GeSHi is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with GeSHi; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- ************************************************************************************/
-
-$language_data = array (
-    'LANG_NAME' => 'eMail (mbox)',
-    'COMMENT_SINGLE' => array(),
-    'COMMENT_MULTI' => array(),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array('"'),
-    'ESCAPE_CHAR' => '',
-    'KEYWORDS' => array(
-        1 => array(
-            'HTTP', 'SMTP', 'ASMTP', 'ESMTP'
-            ),
-        2 => array(
-            'Authentication-Results','Comment','Content-Description','Content-Type',
-            'Content-Disposition','Content-Transfer-Encoding','Delivered-To',
-            'Dkim-Signature','Domainkey-Signature','In-Reply-To','Message-Id',
-            'MIME-Version','OpenPGP','Received','Received-SPF','References',
-            'Reply-To', 'Resend-From','Resend-To','Return-Path','User-Agent'
-            ),
-        3 => array(
-            'Date','From','Sender','Subject','To','CC'
-            ),
-        4 => array(
-            'by', 'for', 'from', 'id', 'with'
-            )
-        ),
-    'SYMBOLS' => array(
-        ':', ';', '<', '>', '[', ']'
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => true,
-        2 => false,
-        3 => false,
-        4 => true
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #0000FF; font-weight: bold;',
-            2 => 'color: #000000; font-weight: bold;',
-            3 => 'color: #800000; font-weight: bold;',
-            4 => 'font-weight: bold;',
-            ),
-        'COMMENTS' => array(
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #000099; font-weight: bold;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #66cc66;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #ff0000;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #cc66cc;'
-            ),
-        'METHODS' => array(
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #66cc66;'
-            ),
-        'SCRIPT' => array(
-            0 => 'color: #000040;',
-            ),
-        'REGEXPS' => array(
-            1 => 'color: #000000; font-weight: bold;',
-            2 => 'color: #0000FF;',
-            3 => 'color: #008000;',
-            4 => 'color: #0000FF; font-weight: bold;',
-            5 => 'font-weight: bold;',
-            6 => 'color: #400080;'
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => '',
-        4 => ''
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(
-        ),
-    'REGEXPS' => array(
-        // Non-Standard-Header
-        1 => array(
-            GESHI_SEARCH => "(?<=\A\x20|\n)x-[a-z0-9\-]*(?=\s*:|\s*<)",
-            GESHI_REPLACE => "\\0",
-            GESHI_MODIFIERS => "smi",
-            GESHI_BEFORE => "",
-            GESHI_AFTER => ""
-            ),
-        //Email-Adresses or Mail-IDs
-        2 => array(
-            GESHI_SEARCH => "\b(?<!\\/)(?P<q>\"?)[\w\.\-]+\k<q>@(?!-)[\w\-]+(?<!-)(?:(?:\.(?!-)[\w\-]+(?<!-))*)?",
-            GESHI_REPLACE => "\\0",
-            GESHI_MODIFIERS => "mi",
-            GESHI_BEFORE => "",
-            GESHI_AFTER => ""
-            ),
-        //Date values in RFC format
-        3 => array(
-            GESHI_SEARCH => "\b(?:Mon|Tue|Wed|Thu|Fri|Sat|Sun),\s+\d\d?\s+" .
-                "(?:Jan|Feb|Mar|apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s+" .
-                "\d{4}\s+\d\d?:\d\d:\d\d\s+[+\-]\d{4}(?:\s+\(\w+\))?",
-            GESHI_REPLACE => "\\0",
-            GESHI_MODIFIERS => "mi",
-            GESHI_BEFORE => "",
-            GESHI_AFTER => ""
-            ),
-        //IP addresses
-        4 => array(
-            GESHI_SEARCH => "(?<=\s)\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}(?=\s)|".
-                "(?<=\[)\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}(?=\])|".
-                "(?<==)\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}(?=<)|".
-
-                "(?<=\s)(?:[a-f\d]{1,4}\:)+(?:[a-f\d]{0,4})?(?:\:[a-f\d]{1,4})+(?=\s)|".
-                "(?<=\[)(?:[a-f\d]{1,4}\:)+(?:[a-f\d]{0,4})?(?:\:[a-f\d]{1,4})+(?=\])|".
-                "(?<==)(?:[a-f\d]{1,4}\:)+(?:[a-f\d]{0,4})?(?:\:[a-f\d]{1,4})+(?=<)|".
-
-                "(?<=\s)\:(?:\:[a-f\d]{1,4})+(?=\s)|".
-                "(?<=\[)\:(?:\:[a-f\d]{1,4})+(?=\])|".
-                "(?<==)\:(?:\:[a-f\d]{1,4})+(?=<)|".
-
-                "(?<=\s)(?:[a-f\d]{1,4}\:)+\:(?=\s)|".
-                "(?<=\[)(?:[a-f\d]{1,4}\:)+\:(?=\])|".
-                "(?<==)(?:[a-f\d]{1,4}\:)+\:(?=<)",
-            GESHI_REPLACE => "\\0",
-            GESHI_MODIFIERS => "i",
-            GESHI_BEFORE => "",
-            GESHI_AFTER => ""
-            ),
-        //Field-Assignments
-        5 => array(
-            GESHI_SEARCH => "(?<=\s)[A-Z0-9\-\.]+(?==(?:$|\s$|[^\s=]))",
-            GESHI_REPLACE => "\\0",
-            GESHI_MODIFIERS => "mi",
-            GESHI_BEFORE => "",
-            GESHI_AFTER => ""
-            ),
-        //MIME type
-        6 => array(
-            GESHI_SEARCH => "(?<=\s)(?:audio|application|image|multipart|text|".
-                "video|x-[a-z0-9\-]+)\/[a-z0-9][a-z0-9\-]*(?=\s|<|$)",
-            GESHI_REPLACE => "\\0",
-            GESHI_MODIFIERS => "m",
-            GESHI_BEFORE => "",
-            GESHI_AFTER => ""
-            )
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_ALWAYS,
-    'SCRIPT_DELIMITERS' => array(
-        0 => "/(?P<start>^)[A-Za-z][a-zA-Z0-9\-]*\s*:\s*(?:.|(?=\n\s)\n)*(?P<end>$)/m"
-    ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        0 => true,
-        ),
-    'TAB_WIDTH' => 4,
-    'PARSER_CONTROL' => array(
-        'KEYWORDS' => array(
-            2 => array(
-                'DISALLOWED_BEFORE' => '(?<=\A\x20|\n)',
-                'DISALLOWED_AFTER' => '(?=\s*:)',
-            ),
-            3 => array(
-                'DISALLOWED_BEFORE' => '(?<=\A\x20|\n)',
-                'DISALLOWED_AFTER' => '(?=\s*:)',
-            ),
-            4 => array(
-                'DISALLOWED_BEFORE' => '(?<=\s)',
-                'DISALLOWED_AFTER' => '(?=\s|\b)',
-            )
-        ),
-        'ENABLE_FLAGS' => array(
-            'BRACKETS' => GESHI_NEVER,
-            'COMMENTS' => GESHI_NEVER,
-            'NUMBERS' => GESHI_NEVER
-        )
-    )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/epc.php b/wiki/vendor/geshi/geshi/src/geshi/epc.php
deleted file mode 100644
index b3ea4ae..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/epc.php
+++ /dev/null
@@ -1,152 +0,0 @@
-<?php
-/*************************************************************************************
- * epc.php
- * --------
- * Author: Thorsten Muehlfelder (muehlfelder@enertex.de)
- * Copyright: (c) 2010 Enertex Bayern GmbH
- * Release Version: 1.0.9.0
- * Date Started: 2010/08/26
- *
- * Enerscript language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2010/08/26 (1.0.8.10)
- *   -  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' => 'EPC',
-    'COMMENT_SINGLE' => array('//'),
-    'COMMENT_MULTI' => array('/*' => '*/'),
-    'COMMENT_REGEXP' => array(
-        //[Sections]
-        //1 => "/^\\[.*\\]/"
-        ),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array(
-        0 => '"',
-        1 => '$'
-        ),
-    'ESCAPE_CHAR' => '',
-    'KEYWORDS' => array(
-        1 => array(
-            'if', 'then', 'else', 'endif',
-            'and', 'or', 'xor', 'hysteresis'
-            ),
-        2 => array(
-            'read', 'write', 'event',
-            'gettime', 'settime', 'getdate', 'setdate', 'gettimedate', 'settimedate',
-            'hour', 'minute', 'second', 'changehour', 'changeminute', 'changesecond',
-            'date', 'month', 'day', 'dayofweek', 'sun', 'azimuth', 'elevation',
-            'sunrisehour', 'sunriseminute', 'sunsethour', 'sunsetminute',
-            'wtime', 'htime', 'mtime', 'stime',
-            'cwtime', 'chtime', 'cmtime', 'cstime',
-            'delay', 'after', 'cycle',
-            'readflash', 'writeflash',
-            'abs', 'acos', 'asin', 'atan', 'cos', 'ceil', 'average', 'exp', 'floor',
-            'log', 'max', 'min', 'mod', 'pow', 'sqrt', 'sin', 'tan', 'change', 'convert',
-            'eval', 'systemstart', 'random', 'comobject', 'sleep', 'scene', 'storescene', 'callscene',
-            'find', 'stringcast', 'stringset', 'stringformat', 'split', 'size',
-            'readrs232'. 'sendrs232', 'address', 'readknx',
-            'readudp', 'sendudp', 'connecttcp', 'closetcp', 'readtcp', 'sendtcp',
-            'resolve', 'sendmail',
-            'button', 'webbutton', 'chart', 'webchart', 'webdisplay', 'getslider', 'pshifter', 'mpshifter',
-            'getpslider', 'mbutton', 'mbbutton', 'mchart', 'mpchart', 'mpbutton', 'pdisplay', 'pchart',
-            'pbutton', 'setslider', 'setpslider', 'slider', 'pslider', 'page', 'line', 'header',
-            'footer', 'none', 'plink', 'link', 'frame', 'dframe'
-            )
-        ),
-    'SYMBOLS' => array(
-        0 => array(
-            '%', 'b01',
-            ),
-        1 => array(
-            '+', '-', '==', '>=', '=<',
-            ),
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => true,
-        2 => true
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #e63ec3;',
-            2 => 'color: #e63ec3;'
-            ),
-        'COMMENTS' => array(
-            0 => 'color: #0000ff;'
-            //1 => 'color: #ffa500;'
-            ),
-        'ESCAPE_CHAR' => array(
-            1 => 'color: #000099;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #000000;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #8a0808;',
-            1 => 'color: #6e6e6e;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #0b610b;'
-            ),
-        'METHODS' => array(
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #0b610b;',
-            1 => 'color: #e63ec3;'
-            ),
-        'REGEXPS' => array(
-            1 => 'color: #0b610b;'
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => ''
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(
-        ),
-    'REGEXPS' => array(
-        // Numbers, e.g. 255u08
-        1 => "[0-9]*[subf][0136][12468]"
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        ),
-    'TAB_WIDTH' => 4,
-    'PARSER_CONTROL' => array(
-        'COMMENTS' => array(
-            'DISALLOWED_BEFORE' => '$'
-        ),
-        'KEYWORDS' => array(
-            'DISALLOWED_BEFORE' => "(?<![\.\-a-zA-Z0-9_\$\#])",
-            'DISALLOWED_AFTER' =>  "(?![\.\-a-zA-Z0-9_%=\\/])"
-        )
-    )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/erlang.php b/wiki/vendor/geshi/geshi/src/geshi/erlang.php
deleted file mode 100644
index a153832..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/erlang.php
+++ /dev/null
@@ -1,439 +0,0 @@
-<?php
-/*************************************************************************************
- * erlang.php
- * --------
- * Author: Benny Baumann (BenBE@geshi.org)
- * Contributions:
- * - Uwe Dauernheim (uwe@dauernheim.net)
- * - Dan Forest-Barbier (dan@twisted.in)
- * Copyright: (c) 2008 Uwe Dauernheim (http://www.kreisquadratur.de/)
- * Release Version: 1.0.9.0
- * Date Started: 2008-09-27
- *
- * Erlang language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2009/05/02 (1.0.8.3)
- *  -  Now using 'PARSER_CONTROL' instead of huge rexgexps, better and cleaner
- *
- * 2009/04/26 (1.0.8.3)
- *  -  Only link to existing docs / Fixes
- *
- * 2008-09-28 (1.0.0.1)
- *   [!] Bug fixed with keyword module.
- *   [+] Added more function names
- *
- * 2008-09-27 (1.0.0)
- *   [ ] First Release
- *
- * TODO (updated 2008-09-27)
- * -------------------------
- *   [!] Stop ';' from being transformed to '<SEMI>'
- *
- *************************************************************************************
- *
- *     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' => 'Erlang',
-    'COMMENT_SINGLE' => array(1 => '%'),
-    'COMMENT_MULTI' => array(),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array('"'),
-    'HARDQUOTE' => array("'", "'"),
-    'HARDESCAPE' => array("'", "\\"),
-    'HARDCHAR' => "\\",
-    'ESCAPE_CHAR' => '\\',
-    'NUMBERS' => GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_FLT_SCI_ZERO,
-    'KEYWORDS' => array(
-        //Control flow keywrods
-        1 => array(
-            'after', 'andalso', 'begin', 'case', 'catch', 'end', 'fun', 'if',
-            'of', 'orelse', 'receive', 'try', 'when', 'query'
-            ),
-        //Binary operators
-        2 => array(
-            'and', 'band', 'bnot', 'bor', 'bsl', 'bsr', 'bxor', 'div', 'not',
-            'or', 'rem', 'xor'
-            ),
-        3 => array(
-            'abs', 'alive', 'apply', 'atom_to_list', 'binary_to_list',
-            'binary_to_term', 'concat_binary', 'date', 'disconnect_node',
-            'element', 'erase', 'exit', 'float', 'float_to_list', 'get',
-            'get_keys', 'group_leader', 'halt', 'hd', 'integer_to_list',
-            'is_alive', 'length', 'link', 'list_to_atom', 'list_to_binary',
-            'list_to_float', 'list_to_integer', 'list_to_pid', 'list_to_tuple',
-            'load_module', 'make_ref', 'monitor_node', 'node', 'nodes', 'now',
-            'open_port', 'pid_to_list', 'process_flag', 'process_info',
-            'process', 'put', 'register', 'registered', 'round', 'self',
-            'setelement', 'size', 'spawn', 'spawn_link', 'split_binary',
-            'statistics', 'term_to_binary', 'throw', 'time', 'tl', 'trunc',
-            'tuple_to_list', 'unlink', 'unregister', 'whereis'
-            ),
-        // Built-In Functions
-        4 => array(
-            'atom', 'binary', 'constant', 'function', 'integer', 'is_atom',
-            'is_binary', 'is_constant', 'is_function', 'is_integer', 'is_list',
-            'is_number', 'is_pid', 'is_reference', 'is_record', 'list',
-            'number', 'pid', 'ports', 'port_close', 'port_info', 'reference'
-            ),
-        // Erlang/OTP internal modules (scary one)
-        5 => array(
-            'alarm_handler', 'any', 'app', 'application', 'appmon', 'appup',
-            'array', 'asn1ct', 'asn1rt', 'auth', 'base64', 'beam_lib', 'c',
-            'calendar', 'code', 'common_test_app', 'compile', 'config',
-            'corba', 'corba_object', 'cosEventApp', 'CosEventChannelAdmin',
-            'CosEventChannelAdmin_ConsumerAdmin',
-            'CosEventChannelAdmin_EventChannel',
-            'CosEventChannelAdmin_ProxyPullConsumer',
-            'CosEventChannelAdmin_ProxyPullSupplier',
-            'CosEventChannelAdmin_ProxyPushConsumer',
-            'CosEventChannelAdmin_ProxyPushSupplier',
-            'CosEventChannelAdmin_SupplierAdmin', 'CosEventDomainAdmin',
-            'CosEventDomainAdmin_EventDomain',
-            'CosEventDomainAdmin_EventDomainFactory',
-            'cosEventDomainApp', 'CosFileTransfer_Directory',
-            'CosFileTransfer_File', 'CosFileTransfer_FileIterator',
-            'CosFileTransfer_FileTransferSession',
-            'CosFileTransfer_VirtualFileSystem',
-            'cosFileTransferApp', 'CosNaming', 'CosNaming_BindingIterator',
-            'CosNaming_NamingContext', 'CosNaming_NamingContextExt',
-            'CosNotification', 'CosNotification_AdminPropertiesAdmin',
-            'CosNotification_QoSAdmin', 'cosNotificationApp',
-            'CosNotifyChannelAdmin_ConsumerAdmin',
-            'CosNotifyChannelAdmin_EventChannel',
-            'CosNotifyChannelAdmin_EventChannelFactory',
-            'CosNotifyChannelAdmin_ProxyConsumer',
-            'CosNotifyChannelAdmin_ProxyPullConsumer',
-            'CosNotifyChannelAdmin_ProxyPullSupplier',
-            'CosNotifyChannelAdmin_ProxyPushConsumer',
-            'CosNotifyChannelAdmin_ProxyPushSupplier',
-            'CosNotifyChannelAdmin_ProxySupplier',
-            'CosNotifyChannelAdmin_SequenceProxyPullConsumer',
-            'CosNotifyChannelAdmin_SequenceProxyPullSupplier',
-            'CosNotifyChannelAdmin_SequenceProxyPushConsumer',
-            'CosNotifyChannelAdmin_SequenceProxyPushSupplier',
-            'CosNotifyChannelAdmin_StructuredProxyPullConsumer',
-            'CosNotifyChannelAdmin_StructuredProxyPullSupplier',
-            'CosNotifyChannelAdmin_StructuredProxyPushConsumer',
-            'CosNotifyChannelAdmin_StructuredProxyPushSupplier',
-            'CosNotifyChannelAdmin_SupplierAdmin',
-            'CosNotifyComm_NotifyPublish', 'CosNotifyComm_NotifySubscribe',
-            'CosNotifyFilter_Filter', 'CosNotifyFilter_FilterAdmin',
-            'CosNotifyFilter_FilterFactory', 'CosNotifyFilter_MappingFilter',
-            'cosProperty', 'CosPropertyService_PropertiesIterator',
-            'CosPropertyService_PropertyNamesIterator',
-            'CosPropertyService_PropertySet',
-            'CosPropertyService_PropertySetDef',
-            'CosPropertyService_PropertySetDefFactory',
-            'CosPropertyService_PropertySetFactory', 'cosTime',
-            'CosTime_TimeService', 'CosTime_TIO', 'CosTime_UTO',
-            'CosTimerEvent_TimerEventHandler',
-            'CosTimerEvent_TimerEventService', 'cosTransactions',
-            'CosTransactions_Control', 'CosTransactions_Coordinator',
-            'CosTransactions_RecoveryCoordinator', 'CosTransactions_Resource',
-            'CosTransactions_SubtransactionAwareResource',
-            'CosTransactions_Terminator', 'CosTransactions_TransactionFactory',
-            'cover', 'cprof', 'cpu_sup', 'crashdump', 'crypto', 'crypto_app',
-            'ct', 'ct_cover', 'ct_ftp', 'ct_master', 'ct_rpc', 'ct_snmp',
-            'ct_ssh', 'ct_telnet', 'dbg', 'debugger', 'dets', 'dialyzer',
-            'dict', 'digraph', 'digraph_utils', 'disk_log', 'disksup',
-            'docb_gen', 'docb_transform', 'docb_xml_check', 'docbuilder_app',
-            'driver_entry', 'edoc', 'edoc_doclet', 'edoc_extract',
-            'edoc_layout', 'edoc_lib', 'edoc_run', 'egd', 'ei', 'ei_connect',
-            'epmd', 'epp', 'epp_dodger', 'eprof', 'erl', 'erl_boot_server',
-            'erl_call', 'erl_comment_scan', 'erl_connect', 'erl_ddll',
-            'erl_driver', 'erl_error', 'erl_eterm', 'erl_eval',
-            'erl_expand_records', 'erl_format', 'erl_global', 'erl_id_trans',
-            'erl_internal', 'erl_lint', 'erl_malloc', 'erl_marshal',
-            'erl_parse', 'erl_pp', 'erl_prettypr', 'erl_prim_loader',
-            'erl_prim_loader_stub', 'erl_recomment', 'erl_scan',
-            'erl_set_memory_block', 'erl_syntax', 'erl_syntax_lib', 'erl_tar',
-            'erl_tidy', 'erlang', 'erlang_mode', 'erlang_stub', 'erlc',
-            'erlsrv', 'error_handler', 'error_logger', 'erts_alloc',
-            'erts_alloc_config', 'escript', 'et', 'et_collector',
-            'et_selector', 'et_viewer', 'etop', 'ets', 'eunit', 'file',
-            'file_sorter', 'filelib', 'filename', 'fixed', 'fprof', 'ftp',
-            'gb_sets', 'gb_trees', 'gen_event', 'gen_fsm', 'gen_sctp',
-            'gen_server', 'gen_tcp', 'gen_udp', 'gl', 'global', 'global_group',
-            'glu', 'gs', 'heart', 'http', 'httpd', 'httpd_conf',
-            'httpd_socket', 'httpd_util', 'i', 'ic', 'ic_c_protocol',
-            'ic_clib', 'igor', 'inet', 'inets', 'init', 'init_stub',
-            'instrument', 'int', 'interceptors', 'inviso', 'inviso_as_lib',
-            'inviso_lfm', 'inviso_lfm_tpfreader', 'inviso_rt',
-            'inviso_rt_meta', 'io', 'io_lib', 'kernel_app', 'lib', 'lists',
-            'lname', 'lname_component', 'log_mf_h', 'make', 'math', 'megaco',
-            'megaco_codec_meas', 'megaco_codec_transform',
-            'megaco_edist_compress', 'megaco_encoder', 'megaco_flex_scanner',
-            'megaco_tcp', 'megaco_transport', 'megaco_udp', 'megaco_user',
-            'memsup', 'mnesia', 'mnesia_frag_hash', 'mnesia_registry',
-            'mod_alias', 'mod_auth', 'mod_esi', 'mod_security',
-            'Module_Interface', 'ms_transform', 'net_adm', 'net_kernel',
-            'new_ssl', 'nteventlog', 'observer_app', 'odbc', 'orber',
-            'orber_acl', 'orber_diagnostics', 'orber_ifr', 'orber_tc',
-            'orddict', 'ordsets', 'os', 'os_mon', 'os_mon_mib', 'os_sup',
-            'otp_mib', 'overload', 'packages', 'percept', 'percept_profile',
-            'pg', 'pg2', 'pman', 'pool', 'prettypr', 'proc_lib', 'proplists',
-            'public_key', 'qlc', 'queue', 'random', 'rb', 're', 'regexp',
-            'registry', 'rel', 'release_handler', 'reltool', 'relup', 'rpc',
-            'run_erl', 'run_test', 'runtime_tools_app', 'sasl_app', 'script',
-            'seq_trace', 'sets', 'shell', 'shell_default', 'slave', 'snmp',
-            'snmp_app', 'snmp_community_mib', 'snmp_framework_mib',
-            'snmp_generic', 'snmp_index', 'snmp_notification_mib', 'snmp_pdus',
-            'snmp_standard_mib', 'snmp_target_mib', 'snmp_user_based_sm_mib',
-            'snmp_view_based_acm_mib', 'snmpa', 'snmpa_conf', 'snmpa_error',
-            'snmpa_error_io', 'snmpa_error_logger', 'snmpa_error_report',
-            'snmpa_local_db', 'snmpa_mpd', 'snmpa_network_interface',
-            'snmpa_network_interface_filter',
-            'snmpa_notification_delivery_info_receiver',
-            'snmpa_notification_filter', 'snmpa_supervisor', 'snmpc', 'snmpm',
-            'snmpm_conf', 'snmpm_mpd', 'snmpm_network_interface', 'snmpm_user',
-            'sofs', 'ssh', 'ssh_channel', 'ssh_connection', 'ssh_sftp',
-            'ssh_sftpd', 'ssl', 'ssl_app', 'ssl_pkix', 'start', 'start_erl',
-            'start_webtool', 'stdlib_app', 'string', 'supervisor',
-            'supervisor_bridge', 'sys', 'systools', 'tags', 'test_server',
-            'test_server_app', 'test_server_ctrl', 'tftp', 'timer', 'toolbar',
-            'ttb', 'tv', 'unicode', 'unix_telnet', 'user', 'webtool', 'werl',
-            'win32reg', 'wrap_log_reader', 'wx', 'wx_misc', 'wx_object',
-            'wxAcceleratorEntry', 'wxAcceleratorTable', 'wxArtProvider',
-            'wxAuiDockArt', 'wxAuiManager', 'wxAuiNotebook', 'wxAuiPaneInfo',
-            'wxAuiTabArt', 'wxBitmap', 'wxBitmapButton', 'wxBitmapDataObject',
-            'wxBoxSizer', 'wxBrush', 'wxBufferedDC', 'wxBufferedPaintDC',
-            'wxButton', 'wxCalendarCtrl', 'wxCalendarDateAttr',
-            'wxCalendarEvent', 'wxCaret', 'wxCheckBox', 'wxCheckListBox',
-            'wxChildFocusEvent', 'wxChoice', 'wxClientDC', 'wxClipboard',
-            'wxCloseEvent', 'wxColourData', 'wxColourDialog',
-            'wxColourPickerCtrl', 'wxColourPickerEvent', 'wxComboBox',
-            'wxCommandEvent', 'wxContextMenuEvent', 'wxControl',
-            'wxControlWithItems', 'wxCursor', 'wxDataObject', 'wxDateEvent',
-            'wxDatePickerCtrl', 'wxDC', 'wxDialog', 'wxDirDialog',
-            'wxDirPickerCtrl', 'wxDisplayChangedEvent', 'wxEraseEvent',
-            'wxEvent', 'wxEvtHandler', 'wxFileDataObject', 'wxFileDialog',
-            'wxFileDirPickerEvent', 'wxFilePickerCtrl', 'wxFindReplaceData',
-            'wxFindReplaceDialog', 'wxFlexGridSizer', 'wxFocusEvent', 'wxFont',
-            'wxFontData', 'wxFontDialog', 'wxFontPickerCtrl',
-            'wxFontPickerEvent', 'wxFrame', 'wxGauge', 'wxGBSizerItem',
-            'wxGenericDirCtrl', 'wxGLCanvas', 'wxGraphicsBrush',
-            'wxGraphicsContext', 'wxGraphicsFont', 'wxGraphicsMatrix',
-            'wxGraphicsObject', 'wxGraphicsPath', 'wxGraphicsPen',
-            'wxGraphicsRenderer', 'wxGrid', 'wxGridBagSizer', 'wxGridCellAttr',
-            'wxGridCellEditor', 'wxGridCellRenderer', 'wxGridEvent',
-            'wxGridSizer', 'wxHelpEvent', 'wxHtmlEasyPrinting', 'wxIcon',
-            'wxIconBundle', 'wxIconizeEvent', 'wxIdleEvent', 'wxImage',
-            'wxImageList', 'wxJoystickEvent', 'wxKeyEvent',
-            'wxLayoutAlgorithm', 'wxListBox', 'wxListCtrl', 'wxListEvent',
-            'wxListItem', 'wxListView', 'wxMask', 'wxMaximizeEvent',
-            'wxMDIChildFrame', 'wxMDIClientWindow', 'wxMDIParentFrame',
-            'wxMemoryDC', 'wxMenu', 'wxMenuBar', 'wxMenuEvent', 'wxMenuItem',
-            'wxMessageDialog', 'wxMiniFrame', 'wxMirrorDC',
-            'wxMouseCaptureChangedEvent', 'wxMouseEvent', 'wxMoveEvent',
-            'wxMultiChoiceDialog', 'wxNavigationKeyEvent', 'wxNcPaintEvent',
-            'wxNotebook', 'wxNotebookEvent', 'wxNotifyEvent',
-            'wxPageSetupDialog', 'wxPageSetupDialogData', 'wxPaintDC',
-            'wxPaintEvent', 'wxPalette', 'wxPaletteChangedEvent', 'wxPanel',
-            'wxPasswordEntryDialog', 'wxPen', 'wxPickerBase', 'wxPostScriptDC',
-            'wxPreviewCanvas', 'wxPreviewControlBar', 'wxPreviewFrame',
-            'wxPrintData', 'wxPrintDialog', 'wxPrintDialogData', 'wxPrinter',
-            'wxPrintout', 'wxPrintPreview', 'wxProgressDialog',
-            'wxQueryNewPaletteEvent', 'wxRadioBox', 'wxRadioButton',
-            'wxRegion', 'wxSashEvent', 'wxSashLayoutWindow', 'wxSashWindow',
-            'wxScreenDC', 'wxScrollBar', 'wxScrolledWindow', 'wxScrollEvent',
-            'wxScrollWinEvent', 'wxSetCursorEvent', 'wxShowEvent',
-            'wxSingleChoiceDialog', 'wxSizeEvent', 'wxSizer', 'wxSizerFlags',
-            'wxSizerItem', 'wxSlider', 'wxSpinButton', 'wxSpinCtrl',
-            'wxSpinEvent', 'wxSplashScreen', 'wxSplitterEvent',
-            'wxSplitterWindow', 'wxStaticBitmap', 'wxStaticBox',
-            'wxStaticBoxSizer', 'wxStaticLine', 'wxStaticText', 'wxStatusBar',
-            'wxStdDialogButtonSizer', 'wxStyledTextCtrl', 'wxStyledTextEvent',
-            'wxSysColourChangedEvent', 'wxTextAttr', 'wxTextCtrl',
-            'wxTextDataObject', 'wxTextEntryDialog', 'wxToggleButton',
-            'wxToolBar', 'wxToolTip', 'wxTopLevelWindow', 'wxTreeCtrl',
-            'wxTreeEvent', 'wxUpdateUIEvent', 'wxWindow', 'wxWindowCreateEvent',
-            'wxWindowDC', 'wxWindowDestroyEvent', 'wxXmlResource', 'xmerl',
-            'xmerl_eventp', 'xmerl_scan', 'xmerl_xpath', 'xmerl_xs',
-            'xmerl_xsd', 'xref', 'yecc', 'zip', 'zlib', 'zlib_stub'
-            ),
-        // Binary modifiers
-        6 => array(
-            'big', 'binary', 'float', 'integer', 'little', 'signed', 'unit', 'unsigned'
-            )
-        ),
-    'SYMBOLS' => array(
-        0 => array('(', ')', '[', ']', '{', '}'),
-        1 => array('->', ',', ';', '.'),
-        2 => array('<<', '>>'),
-        3 => array('=', '||', '-', '+', '*', '/', '++', '--', '!', '<', '>', '>=',
-                    '=<', '==', '/=', '=:=', '=/=')
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => true,
-        2 => true,
-        3 => true,
-        4 => true,
-        5 => true,
-        6 => true
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #186895;',
-            2 => 'color: #014ea4;',
-            3 => 'color: #fa6fff;',
-            4 => 'color: #fa6fff;',
-            5 => 'color: #ff4e18;',
-            6 => 'color: #9d4f37;'
-            ),
-        '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: #109ab8;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #ff7800;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #ff9600;'
-            ),
-        'METHODS' => array(
-            1 => 'color: #006600;',
-            2 => 'color: #006600;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #004866;',
-            1 => 'color: #6bb810;',
-            2 => 'color: #ee3800;',
-            3 => 'color: #014ea4;'
-            ),
-        'REGEXPS' => array(
-            0 => 'color: #6941fd;',
-            1 => 'color: #d400ed;',
-            2 => 'color: #5400b3;',
-            3 => 'color: #ff3c00;',
-            4 => 'color: #6941fd;',
-            5 => 'color: #45b3e6;',
-            6 => 'color: #ff9600;',
-            7 => 'color: #d400ed;',
-            8 => 'color: #ff9600;'
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => '',
-        4 => '',
-        5 => 'http://erlang.org/doc/man/{FNAME}.html',
-        6 => ''
-        ),
-    'OOLANG' => true,
-    'OBJECT_SPLITTERS' => array(
-        1 => '-&gt;',
-        2 => ':'
-        ),
-    'REGEXPS' => array(
-        //�Macro definitions
-        0 => array(
-            GESHI_SEARCH => '(-define\s*\()([a-zA-Z0-9_]+)(\(|,)',
-            GESHI_REPLACE => '\2',
-            GESHI_MODIFIERS => '',
-            GESHI_BEFORE => '\1',
-            GESHI_AFTER => '\3'
-            ),
-        // Record definitions
-        1 => array(
-            GESHI_SEARCH => '(-record\s*\()([a-zA-Z0-9_]+)(,)',
-            GESHI_REPLACE => '\2',
-            GESHI_MODIFIERS => '',
-            GESHI_BEFORE => '\1',
-            GESHI_AFTER => '\3'
-            ),
-        // Precompiler directives
-        2 => array(
-            GESHI_SEARCH => '(-)([a-z][a-zA-Z0-9_]*)(\()',
-            GESHI_REPLACE => '\2',
-            GESHI_MODIFIERS => '',
-            GESHI_BEFORE => '\1',
-            GESHI_AFTER => '\3'
-            ),
-        // Functions
-        3 => array(
-            GESHI_SEARCH => '([a-z]\w*|\'\w*\')(\s*\()',
-            GESHI_REPLACE => '\1',
-            GESHI_MODIFIERS => '',
-            GESHI_BEFORE => '',
-            GESHI_AFTER => '\2'
-            ),
-        // Macros
-        4 => array(
-            GESHI_SEARCH => '(\?)([a-zA-Z0-9_]+)',
-            GESHI_REPLACE => '\2',
-            GESHI_MODIFIERS => '',
-            GESHI_BEFORE => '\1',
-            GESHI_AFTER => ''
-            ),
-        // Variables - With hack to avoid interfering wish GeSHi internals
-        5 => array(
-            GESHI_SEARCH => '([([{,<+*-\/=\s!]|&lt;)(?!(?:PIPE|SEMI|DOT|NUM|REG3XP\d*)\W)([A-Z_]\w*)(?!\w)',
-            GESHI_REPLACE => '\2',
-            GESHI_MODIFIERS => '',
-            GESHI_BEFORE => '\1',
-            GESHI_AFTER => ''
-            ),
-        // ASCII�codes
-        6 => '(\$[a-zA-Z0-9_])',
-        // Records
-        7 => array(
-            GESHI_SEARCH => '(#)([a-z][a-zA-Z0-9_]*)(\.|\{)',
-            GESHI_REPLACE => '\2',
-            GESHI_MODIFIERS => '',
-            GESHI_BEFORE => '\1',
-            GESHI_AFTER => '\3'
-            ),
-        // Numbers with a different radix
-        8 => '(?<=>)(#[a-zA-Z0-9]*)'
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(),
-    'HIGHLIGHT_STRICT_BLOCK' => array(),
-    'TAB_WIDTH' => 4,
-    'PARSER_CONTROL' => array(
-        'KEYWORDS' => array(
-            3 => array(
-                'DISALLOWED_BEFORE' => '(?<![\w])',
-                'DISALLOWED_AFTER' => ''//'(?=\s*\()'
-                ),
-            5 => array(
-                'DISALLOWED_BEFORE' => '(?<=\'|)',
-                'DISALLOWED_AFTER' => '(?=(\'|):)'
-                ),
-            6 => array(
-                'DISALLOWED_BEFORE' => '(?<=\/|-)',
-                'DISALLOWED_AFTER' => ''
-                )
-            )
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/euphoria.php b/wiki/vendor/geshi/geshi/src/geshi/euphoria.php
deleted file mode 100644
index 5888d0f..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/euphoria.php
+++ /dev/null
@@ -1,138 +0,0 @@
-<?php
-/*************************************************************************************
- * euphoria.php
- * ---------------------------------
- * Author: Nicholas Koceja (nerketur@hotmail.com)
- * Copyright: (c) 2010 Nicholas Koceja
- * Release Version: 1.0.9.0
- * Date Started: 11/24/2010
- *
- * Euphoria language file for GeSHi.
- *
- * Author's note:  The colors are based off of the Euphoria Editor (ed.ex) colors.
- * Also, I added comments in places so I could remember a few things about Euphoria.
- *
- *
- * 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' => 'Euphoria',
-    'COMMENT_SINGLE' => array(1 => '--'),
-    'COMMENT_MULTI' => array(), //Euphoria doesn't support multi-line comments
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array("'", '"'),
-    'ESCAPE_CHAR' => '\\',
-    'KEYWORDS' => array(
-        1 => array( // keywords
-            'and', 'by', 'constant', 'do', 'else', 'elsif', 'end', 'exit',
-            'for', 'function', 'global', 'if', 'include', 'not', 'or',
-            'procedure', 'return', 'then', 'to', 'type', 'while', 'with',
-            'without', 'xor'
-            ),
-        2 => array( // built-ins
-            'abort', 'and_bits', 'append', 'arctan', 'atom', 'c_func', 'call',
-            'c_proc', 'call_func', 'call_proc', 'clear_screen', 'close', 'compare',
-            'command_line', 'cos', 'date', 'equal', 'find', 'find_from', 'floor',
-            'getc', 'getenv', 'gets', 'get_key', 'get_pixel', 'integer', 'length',
-            'log', 'machine_func', 'machine_proc', 'match', 'match_from',
-            'mem_copy', 'mem_set', 'not_bits', 'object', 'open', 'or_bits', 'peek',
-            'peek4s', 'peek4u', 'pixel', 'platform', 'poke', 'poke4', 'position',
-            'power', 'prepend', 'print', 'printf', 'profile', 'puts', 'rand',
-            'remainder', 'repeat', 'routine_id', 'sequence', 'sin', 'sprintf',
-            'sqrt', 'system', 'system_exec', 'tan', 'task_clock_stop',
-            'task_clock_start', 'task_create', 'task_list', 'task_schedule',
-            'task_self', 'task_status', 'task_suspend', 'task_yield', 'time',
-            'trace', 'xor_bits'
-            ),
-        ),
-    'SYMBOLS' => array(
-        0 => array(
-            '(', ')', '{', '}', '[', ']'
-            ),
-        1 => array(
-            '+', '-', '*', '/', '=', '&', '^'
-            ),
-        2 => array(
-            '&', '?', ','
-            )
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => true,
-        2 => true,
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #0000ff; font-weight: bold;', // keywords
-            2 => 'color: #cc33ff; font-weight: bold;', // builtins
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #ff0000; font-style: italic;',
-            'MULTI' => '' // doesn't exist
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #009900; font-weight: bold;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #999900; font-weight: bold;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #00cc00;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #cc33cc; font-style: italic'
-            ),
-        'METHODS' => array( // Doesn't exist in Euphoria.  Everything is a function =)
-            0 => ''
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #999900;', // brackets
-            1 => 'color: #333333;', // operators
-            2 => 'color: #333333; font-style: bold' // print+concat
-            ),
-        'REGEXPS' => array(
-            ),
-        'SCRIPT' => array( // Never included in scripts.
-            )
-        ),
-    'REGEXPS' => array(
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => ''
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/ezt.php b/wiki/vendor/geshi/geshi/src/geshi/ezt.php
deleted file mode 100644
index 5052412..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/ezt.php
+++ /dev/null
@@ -1,134 +0,0 @@
-<?php
-/*************************************************************************************
- * ezt.php
- * -----------
- * Author: Ramesh Vishveshwar (ramesh.vishveshwar@gmail.com)
- * Copyright: (c) 2012 Ramesh Vishveshwar (http://thecodeisclear.in)
- * Release Version: 1.0.9.0
- * Date Started: 2012/09/01
- *
- * Easytrieve language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2012/09/22 (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' => 'EZT',
-    'COMMENT_SINGLE' => array(),
-    'COMMENT_MULTI' => array(),
-    'CASE_KEYWORDS' => GESHI_CAPS_UPPER,
-    'COMMENT_REGEXP' => array(
-        // First character of the line is an asterisk. Rest of the line is spaces/null
-        0 => '/\*(\s|\D)?(\n)/',
-        // Asterisk followed by any character & then a non numeric character.
-        // This is to prevent expressions such as 25 * 4 from being marked as a comment
-        // Note: 25*4 - 100 will mark *4 - 100 as a comment. Pls. space out expressions
-        // In any case, 25*4 will result in an Easytrieve error
-        1 => '/\*.([^0-9\n])+.*(\n)/'
-        ),
-    'QUOTEMARKS' => array("'", '"'),
-    'ESCAPE_CHAR' => '',
-    'KEYWORDS' => array(
-        1 => array(
-            'CONTROL','DEFINE','DISPLAY','DO','ELSE','END-DO','END-IF',
-            'END-PROC','FILE','GET','GOTO','HEADING','IF','JOB','LINE',
-            'PARM','PERFORM','POINT','PRINT','PROC','PUT','READ','RECORD',
-            'REPORT','RETRIEVE','SEARCH','SELECT','SEQUENCE','SORT','STOP',
-            'TITLE','WRITE'
-            ),
-        // Procedure Keywords (Names of specific procedures)
-        2 => array (
-            'AFTER-BREAK','AFTER-LINE','BEFORE-BREAK','BEFORE-LINE',
-            'ENDPAGE','REPORT-INPUT','TERMINATION',
-            ),
-        // Macro names, Parameters
-        3 => array (
-            'COMPILE','CONCAT','DESC','GETDATE','MASK','PUNCH',
-            'VALUE','SYNTAX','NEWPAGE','SKIP','COL','TALLY',
-            'WITH'
-            )
-        ),
-    'SYMBOLS' => array(
-        '(',')','=','&',',','*','>','<','%'
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false,
-        2 => false,
-        3 => false
-        //4 => false,
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #FF0000;',
-            2 => 'color: #21A502;',
-            3 => 'color: #FF00FF;'
-            ),
-        'COMMENTS' => array(
-            0 => 'color: #0000FF; font-style: italic;',
-            1 => 'color: #0000FF; font-style: italic;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => ''
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #FF7400;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #66CC66;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #736205;'
-            ),
-        'METHODS' => array(
-            1 => '',
-            2 => ''
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #FF7400;'
-            ),
-        'REGEXPS' => array(
-            0 => 'color: #E01B6A;'
-            ),
-        'SCRIPT' => array(
-            0 => ''
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => ''
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(),
-    'REGEXPS' => array(
-        // We are trying to highlight Macro names here which preceded by %
-        0 => '(%)([a-zA-Z0-9])+(\s|\n)'
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array()
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/f1.php b/wiki/vendor/geshi/geshi/src/geshi/f1.php
deleted file mode 100644
index 1203e1b..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/f1.php
+++ /dev/null
@@ -1,149 +0,0 @@
-<?php
-/*************************************************************************************
- * f1.php
- * -------
- * Author: Juro Bystricky (juro@f1compiler.com)
- * Copyright: K2 Software Corp.
- * Release Version: 1.0.9.0
- * Date Started: 2010/07/06
- *
- * Formula One language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2010/07/06 (1.0.8.9)
- *  -  First Release
- *
- * TODO
- * -------------------------
- *  -  Add more RTL functions with URLs
- *
- *************************************************************************************
- *
- * 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' => 'Formula One',
-    'COMMENT_SINGLE' => array(1 => '//'),
-    'COMMENT_MULTI' => array('{' => '}'),
-    'COMMENT_REGEXP' => array(
-        //Nested Comments
-        2 =>  "/(\{(?:\{.*\}|[^\{])*\})/m"
-        ),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array("'",'"'),
-    'ESCAPE_CHAR' => '',
-    'ESCAPE_REGEXP' => array(
-        //Simple Single Char Escapes
-        1 => "#\\\\[\\\\nrt\'\"?\n]#i",
-        //Hexadecimal Char Specs (Utf16 codes, Unicode versions only)
-        2 => "#\\\\u[\da-fA-F]{4}#",
-        ),
-    'NUMBERS' =>
-        GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_INT_CSTYLE |
-        GESHI_NUMBER_BIN_PREFIX_0B |
-        GESHI_NUMBER_OCT_PREFIX_0O |
-        GESHI_NUMBER_HEX_PREFIX |
-        GESHI_NUMBER_FLT_NONSCI |
-        GESHI_NUMBER_FLT_SCI_SHORT | GESHI_NUMBER_FLT_SCI_ZERO,
-    'KEYWORDS' => array(
-        1 => array(
-            'pred','proc','subr','else','elsif','iff','if','then','false','true',
-            'case','of','use','local','mod','end','list','file','all','one','max','min','rel',
-            'external','Nil','_stdcall','_cdecl','_addressof','_pred','_file','_line'
-            ),
-        2 => array(
-            'Ascii','Bin','I','L','P','R','S','U'
-            ),
-        3 => array(
-            'Append','in','Dupl','Len','Print','_AllDifferent','_AllAscending',
-            '_AllDescending','_Ascending','_Descending'
-            )
-        ),
-    'SYMBOLS' => array(
-        0 => array('(', ')', '[', ']'),
-        1 => array('<', '>','='),
-        2 => array('+', '-', '*', '/'),
-        3 => array('&', '|'),
-        4 => array(':', ';')
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => true,
-        2 => true,
-        3 => true,
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #0000ff;',
-            2 => 'color: #000080;',
-            3 => 'color: #000080;',
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #000000;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #008000; font-style: italic;',
-            2 => 'color: #008000; font-style: italic;',
-            'MULTI' => 'color: #008000; font-style: italic;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #000099; font-weight: bold;',
-            1 => 'color: #000099; font-weight: bold;',
-            2 => 'color: #009999; font-weight: bold;',
-            ),
-        'STRINGS' => array(
-            0 => 'color: #ff0000;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #800000;'
-            ),
-        'METHODS' => array(
-            1 => 'color: #202020;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #000000;',
-            1 => 'color: #000000;',
-            2 => 'color: #000000;',
-            3 => 'color: #000000;',
-            4 => 'color: #000000;'
-            ),
-        'REGEXPS' => array(
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => 'http://www.f1compiler.com/f1helponline/f1_runtime_library.html#{FNAME}'
-        ),
-    'OOLANG' => true,
-    'OBJECT_SPLITTERS' => array(
-        1 => '.'
-        ),
-    'REGEXPS' => array(
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        ),
-    'TAB_WIDTH' => 4
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/falcon.php b/wiki/vendor/geshi/geshi/src/geshi/falcon.php
deleted file mode 100644
index ad5f3a6..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/falcon.php
+++ /dev/null
@@ -1,217 +0,0 @@
-<?php
-/*************************************************************************************
- * falcon.php
- * ---------------------------------
- * Author: billykater (billykater+geshi@gmail.com)
- * Copyright: (c) 2010 billykater (http://falconpl.org/)
- * Release Version: 1.0.9.0
- * Date Started: 2010/06/07
- *
- * Falcon language file for GeSHi.
- *
- * CHANGES
- * -------
- * <2010/8/1> (1.0.8.10)
- *  -  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' => 'Falcon',
-    'COMMENT_SINGLE' => array( 1 => '//' ),
-    'COMMENT_MULTI' => array( '/*' => '*/' ),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array( "'", '"' ),
-    'ESCAPE_CHAR' => '\\',
-    'KEYWORDS' => array(
-        1 => array(
-            'break','case','catch','class','const','continue','def','default',
-            'dropping','elif','else','end','enum','for','forfirst','forlast',
-            'formiddle','from','function','global','if','init','innerfunc',
-            'launch','loop','object','raise','return','select','state','static',
-            'switch','try','while'
-        ),
-        2 => array(
-            'false','nil','true',
-        ),
-        3 => array(
-            'and','as','eq','fself','in','not','notin','or','provides','self','to'
-        ),
-        4 => array(
-            'directive','export','import','load','macro'
-        ),
-        5 => array(
-            'ArrayType','BooleanType','ClassMethodType','ClassType','DictionaryType',
-            'FunctionType','MemBufType','MethodType','NilType','NumericType','ObjectType',
-            'RangeType','StringType','LBindType'
-        ),
-        6 => array(
-            "CurrentTime","IOStream","InputStream","MemBufFromPtr","OutputStream",
-            "PageDict","ParseRFC2822","abs","acos","all",
-            "allp","any","anyp","argd","argv",
-            "arrayAdd","arrayBuffer","arrayCompact","arrayDel","arrayDelAll",
-            "arrayFill","arrayFind","arrayHead","arrayIns","arrayMerge",
-            "arrayNM","arrayRemove","arrayResize","arrayScan","arraySort",
-            "arrayTail","asin","assert","atan","atan2",
-            "attributes","baseClass","beginCritical","bless","brigade",
-            "broadcast","cascade","ceil","choice","chr",
-            "className","clone","combinations","compare","consume",
-            "cos","deg2rad","deoob","derivedFrom","describe",
-            "deserialize","dictBack","dictBest","dictClear","dictFill",
-            "dictFind","dictFront","dictGet","dictKeys","dictMerge",
-            "dictRemove","dictSet","dictValues","dirChange","dirCurrent",
-            "dirMake","dirMakeLink","dirReadLink","dirRemove","dolist",
-            "endCritical","epoch","eval","exit","exp",
-            "factorial","fileChgroup","fileChmod","fileChown","fileCopy",
-            "fileExt","fileMove","fileName","fileNameMerge","filePath",
-            "fileRemove","fileType","fileUnit","filter","fint",
-            "firstOf","floop","floor","fract","getAssert",
-            "getEnviron","getProperty","getSlot","getSystemEncoding","getenv",
-            "iff","include","input","inspect","int",
-            "isBound","isCallable","isoob","lbind","len",
-            "let","lit","log","map","max",
-            "metaclass","min","numeric","oob","ord",
-            "paramCount","paramIsRef","paramSet","parameter","passvp",
-            "permutations","pow","print","printl","properties",
-            "rad2deg","random","randomChoice","randomDice","randomGrab",
-            "randomPick","randomSeed","randomWalk","readURI","reduce",
-            "retract","round","seconds","serialize","set",
-            "setProperty","setenv","sin","sleep","stdErr",
-            "stdErrRaw","stdIn","stdInRaw","stdOut","stdOutRaw",
-            "strBack","strBackFind","strBackTrim","strBuffer","strCmpIgnoreCase",
-            "strEndsWith","strEscape","strEsq","strFill","strFind",
-            "strFromMemBuf","strFront","strFrontTrim","strLower","strMerge",
-            "strReplace","strReplicate","strSplit","strSplitTrimmed","strStartsWith",
-            "strToMemBuf","strTrim","strUnescape","strUnesq","strUpper",
-            "strWildcardMatch","subscribe","systemErrorDescription","tan","times",
-            "toString","transcodeFrom","transcodeTo","typeOf","unsetenv",
-            "unsubscribe","valof","vmFalconPath","vmIsMain","vmModuleName",
-            "vmModuleVersionInfo","vmSearchPath","vmSystemType","vmVersionInfo","vmVersionName",
-            "writeURI","xmap","yield","yieldOut"
-        ),
-        7 => array(
-            "AccessError","Array","BOM","Base64","Class",
-            "ClassMethod","CloneError","CmdlineParser","CodeError","Continuation",
-            "Dictionary","Directory","Error","FileStat","Format",
-            "Function","GarbagePointer","GenericError","Integer","InterruptedError",
-            "IoError","Iterator","LateBinding","List","MathError",
-            "MemoryBuffer","MessageError","Method","Numeric","Object",
-            "ParamError","ParseError","Path","Range","Semaphore",
-            "Sequence","Set","Stream","String","StringStream",
-            "SyntaxError","Table","TableError","TimeStamp","TimeZone",
-            "Tokenizer","TypeError","URI","VMSlot"
-        ),
-        8 => array(
-            "args","scriptName","scriptPath"
-        ),
-        9 => array(
-            "GC"
-        ),
-    ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => '',
-        4 => '',
-        5 => 'http://falconpl.org/project_docs/core/functions.html#typeOf',
-        6 => 'http://falconpl.org/project_docs/core/functions.html#{FNAME}',
-        7 => 'http://falconpl.org/project_docs/core/class_{FNAME}.html',
-        8 => 'http://falconpl.org/project_docs/core/globals.html#{FNAME}',
-        9 => 'http://falconpl.org/project_docs/core/object_{FNAME}.html)'
-    ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => true,
-        2 => true,
-        3 => true,
-        4 => true,
-        5 => true,
-        6 => true,
-        7 => true,
-        8 => true,
-        9 => true
-    ),
-    'SYMBOLS' => array(
-        '(',')','$','%','&','/','{','[',']','=','}','?','+','-','#','*','@',
-        '<','>','|',',',':',';','\\','^'
-    ),
-    'REGEXPS' => array(
-        0 => array(
-            GESHI_SEARCH => '(\[)([a-zA-Z_]|\c{C})(?:[a-zA-Z0-9_]|\p{C})*(\])',
-            GESHI_REPLACE => '\\2',
-            GESHI_MODIFIERS => '',
-            GESHI_BEFORE => '\\1',
-            GESHI_AFTER => '\\3',
-
-        ),
-    ),
-    'STRICT_MODE_APPLIES' => GESHI_MAYBE,
-    'SCRIPT_DELIMITERS' => array(
-        0 => array( '<?' => '?>' )
-    ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        0 => true
-    ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #000080;font-weight:bold;',
-            2 => 'color: #800000;font-weight:bold;',
-            3 => 'color: #800000;font-weight:bold;',
-            4 => 'color: #000080;font-weight:bold;',
-            5 => 'color: #000000;font-weight:bold;',
-            6 => 'font-weight:bold;',
-            7 => 'font-weight:bold;',
-            8 => 'font-weight:bold;'
-        ),
-        'COMMENTS' => array(
-            1 => 'color: #29B900;',
-            'MULTI' => 'color: #008080'
-        ),
-        'STRINGS' => array(
-            0 => 'color: #800000'
-        ),
-        'BRACKETS' => array(
-            0 => 'color: #000000'
-        ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #800000'
-        ),
-        'NUMBERS' => array(
-            0 => 'color: #000000'
-        ),
-        'METHODS' => array(
-            0 => 'color: #000000'
-        ),
-        'SYMBOLS' => array(
-            0 => 'color: #8B0513'
-        ),
-        'SCRIPT' => array(
-            0 => ''
-        ),
-        'REGEXPS' => array(
-            0 => 'color: #FF00FF'
-        )
-    ),
-
-    'OOLANG' => true,
-    'OBJECT_SPLITTERS' => array(
-        '.'
-    )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/fo.php b/wiki/vendor/geshi/geshi/src/geshi/fo.php
deleted file mode 100644
index 8628bb1..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/fo.php
+++ /dev/null
@@ -1,326 +0,0 @@
-<?php
-/*************************************************************************************
- * fo.php
- * --------
- * Author: Tan-Vinh Nguyen (tvnguyen@web.de)
- * Copyright: (c) 2009 Tan-Vinh Nguyen
- * Release Version: 1.0.9.0
- * Date Started: 2009/03/23
- *
- * fo language file for GeSHi.
- *
- * FO stands for "Flexible Oberflaechen" (Flexible Surfaces) and
- * is part of the abas-ERP.
- *
- * CHANGES
- * -------
- * 2009/03/23 (1.0.0)
- *   -  First Release
- *      Basic commands in German and English
- *
- *************************************************************************************
- *
- *     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' => 'FO (abas-ERP)',
-    'COMMENT_SINGLE' => array(1 => '..'),
-    'COMMENT_MULTI' => array(),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array("'", '"'),
-    'ESCAPE_CHAR' => '\\',
-    'KEYWORDS' => array(
-        //Control Flow
-        1 => array(
-            /* see http://www.abas.de/sub_de/kunden/help/hd/html/9.html */
-
-            /* fo keywords, part 1: control flow */
-            '.weiter', '.continue'
-
-            /* this language works with goto's only*/
-            ),
-
-        //FO Keywords
-        2 => array(
-            /* fo keywords, part 2 */
-            '.fo', '.formel', '.formula',
-            '.zuweisen', '.assign',
-            '.fehler', '.error',
-            '.ende', '.end'
-            ),
-
-        //Java Keywords
-        3 => array(
-            /* Java keywords, part 3: primitive data types */
-            '.art', '.type',
-            'integer', 'real', 'bool', 'text', 'datum', 'woche', 'termin', 'zeit',
-            'mehr', 'MEHR'
-            ),
-
-        //Reserved words in fo literals
-        4 => array(
-            /* other reserved words in fo literals */
-            /* should be styled to look similar to numbers and Strings */
-            'false', 'null', 'true',
-            'OBJEKT',
-            'VORGANG', 'PROCESS',
-            'OFFEN', 'OPEN',
-            'ABORT',
-            'AN', 'ADDEDTO',
-            'AUF', 'NEW',
-            'BILDSCHIRM', 'TERMINAL',
-            'PC',
-            'MASKE', 'SCREEN',
-            'ZEILE', 'LINE'
-            ),
-
-        // interpreter settings
-        5 => array (
-            '..!INTERPRETER', 'DEBUG'
-            ),
-
-        // database commands
-        6 => array (
-            '.hole', '.hol', '.select',
-            '.lade', '.load',
-            '.aktion', '.action',
-            '.belegen', '.occupy',
-            '.bringe', '.rewrite',
-            '.dazu', '.add',
-            '.löschen', '.delete',
-            '.mache', '.make',
-            '.merke', '.reserve',
-            '.setze', '.set',
-            'SPERREN', 'LOCK',
-            'TEIL', 'PART',
-            'KEINESPERRE',
-            'AMASKE', 'ASCREEN',
-            'BETRIEB', 'WORK-ORDER',
-            'NUMERISCH', 'NUMERICAL',
-            'VORSCHLAG', 'SUGGESTION',
-            'OBLIGO', 'OUTSTANDING',
-            'LISTE', 'LIST',
-            'DRUCK', 'PRINT',
-            'ÜBERNAHME', 'TAGEOVER',
-            'ABLAGE', 'FILINGSYSTEM',
-            'BDE', 'PDC',
-            'BINDUNG', 'ALLOCATION',
-            'BUCHUNG', 'ENTRY',
-            'COLLI', 'SERIAL',
-            'DATEI', 'FILE',
-            'VERKAUF', 'SALES',
-            'EINKAUF', 'PURCHASING',
-            'EXEMPLAR', 'EXAMPLE',
-            'FERTIGUNG', 'PRODUCTION',
-            'FIFO',
-            'GRUPPE', 'GROUP',
-            'JAHR', 'YEAR',
-            'JOURNAL',
-            'KOPF', 'HEADER',
-            'KOSTEN',
-            'LIFO',
-            'LMENGE', 'SQUANTITY',
-            'LOHNFERTIGUNG', 'SUBCONTRACTING',
-            'LPLATZ', 'LOCATION',
-            'MBELEGUNG', 'MACHLOADING',
-            'MONAT', 'MONTH', 'MZ',
-            'NACHRICHT', 'MESSAGE',
-            'PLAN', 'TARGET',
-            'REGIONEN', 'REGIONS',
-            'SERVICEANFRAGE', 'SERVICEREQUEST',
-            'VERWENDUNG', 'APPLICATION',
-            'WEITER', 'CONTINUE',
-            'ABBRUCH', 'CANCEL',
-            'ABLAGEKENNZEICHEN', 'FILLINGCODE',
-            'ALLEIN', 'SINGLEUSER',
-            'AUFZAEHLTYP', 'ENUMERATION-TYPE',
-            'AUSGABE', 'OUTPUT',
-            'DEZPUNKT', 'DECPOINT'
-            ),
-
-        // output settings
-        7 => array (
-            '.absatz', '.para',
-            '.blocksatz', '.justified',
-            '.flattersatz', '.unjustified',
-            '.format',
-            '.box',
-            '.drucken', '.print',
-            '.gedruckt', '.printed',
-            '.länge', '.length',
-            '.links', '.left',
-            '.rechts', '.right',
-            '.oben', '.up',
-            '.unten', '.down',
-            '.seite', '.page',
-            '.tabellensatz', '.tablerecord',
-            '.trenner', '.separator',
-            'ARCHIV'
-            ),
-
-        // text commands
-        8 => array (
-            '.text',
-            '.atext',
-            '.println',
-            '.uebersetzen', '.translate'
-            ),
-
-        // I/O commands
-        9 => array (
-            '.aus', '.ausgabe', '.output',
-            '.ein', '.eingabe', '.input',
-            '.datei', '.file',
-            '.lesen', '.read',
-            '.sortiere', '.sort',
-            '-ÖFFNEN', '-OPEN',
-            '-TEST',
-            '-LESEN', '-READ',
-            'VON', 'FROM'
-            ),
-
-        //system
-        10 => array (
-            '.browser',
-            '.kommando', '.command',
-            '.system', '.dde',
-            '.editiere', '.edit',
-            '.hilfe', '.help',
-            '.kopieren', '.copy',
-            '.pc.clip',
-            '.pc.copy',
-            '.pc.dll',
-            '.pc.exec',
-            '.pc.open',
-            'DIAGNOSE', 'ERRORREPORT',
-            'DOPPELPUNKT', 'COLON',
-            'ERSETZUNG', 'REPLACEMENT',
-            'WARTEN', 'PARALLEL'
-            ),
-
-        //fibu/accounting specific commands
-        11 => array (
-            '.budget',
-            '.chart',
-            'VKZ',
-            'KONTO', 'ACCOUNT',
-            'AUSZUG', 'STATEMENT',
-            'WAEHRUNG', 'CURRENCY',
-            'WAEHRUNGSKURS', 'EXCHANGERATE',
-            'AUSWAEHR', 'FORCURR',
-            'BUCHUNGSKREIS', 'SET OF BOOKS'
-            ),
-
-        // efop - extended flexible surface
-        12 => array (
-            '.cursor',
-            '.farbe', '.colour',
-            '.fenster', '.window',
-            '.hinweis', '.note',
-            '.menue', '.menu',
-            '.schutz', '.protection',
-            '.zeigen', '.view',
-            '.zeile', '.line',
-            'VORDERGRUND', 'FOREGROUND',
-            'HINTERGRUND', 'BACKGROUND',
-            'SOFORT', 'IMMEDIATELY',
-            'AKTUALISIEREN', 'UPDATE',
-            'FENSTERSCHLIESSEN', 'CLOSEWINDOWS'
-            ),
-        ),
-    'SYMBOLS' => array(
-        0 => array('(', ')', '[', ']', '{', '}', '*', '&', '%', ';', '<', '>'),
-        1 => array('?', '!')
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        /* all fo keywords are case sensitive, don't have to but I like this type of coding */
-        1 => true, 2 => true, 3 => true, 4 => true,
-        5 => true, 6 => true, 7 => true, 8 => true, 9 => true,
-        10 => true, 11 => true, 12 => true
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #000000; font-weight: bold;',
-            2 => 'color: #000000; font-weight: bold;',
-            3 => 'color: #006600; font-weight: bold;',
-            4 => 'color: #006600; font-weight: bold;',
-            5 => 'color: #003399; font-weight: bold;',
-            6 => 'color: #003399; font-weight: bold;',
-            7 => 'color: #003399; font-weight: bold;',
-            8 => 'color: #003399; font-weight: bold;',
-            9 => 'color: #003399; font-weight: bold;',
-            10 => 'color: #003399; font-weight: bold;',
-            11 => 'color: #003399; font-weight: bold;',
-            12 => 'color: #003399; font-weight: bold;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #666666; font-style: italic;',
-            //2 => 'color: #006699;',
-            '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;',
-            1 => 'color: #000000; font-weight: bold;'
-            ),
-        'SCRIPT' => array(
-            ),
-        'REGEXPS' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => '',
-        4 => '',
-        5 => '',
-        6 => '',
-        7 => '',
-        8 => '',
-        9 => '',
-        10 => '',
-        11 => '',
-        12 => ''
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(),
-    'REGEXPS' => array(
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/fortran.php b/wiki/vendor/geshi/geshi/src/geshi/fortran.php
deleted file mode 100644
index e463cb9..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/fortran.php
+++ /dev/null
@@ -1,158 +0,0 @@
-<?php
-/*************************************************************************************
- * fortran.php
- * -----------
- * Author: Cedric Arrabie (cedric.arrabie@univ-pau.fr)
- * Copyright: (C) 2006 Cetric Arrabie
- * Release Version: 1.0.9.0
- * Date Started: 2006/04/22
- *
- * Fortran language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2008/05/23 (1.0.7.22)
- *   -  Added description of extra language features (SF#1970248)
- * 2006/04/20 (1.0.0)
- *   -  First Release
- *
- * TODO
- * -------------------------
- *  -  Get a list of inbuilt functions to add (and explore fortran more
- *     to complete this rather bare language file)
- *
- *************************************************************************************
- *
- *     This file is part of GeSHi.
- *
- *   GeSHi is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   GeSHi is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with GeSHi; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- ************************************************************************************/
-
-$language_data = array (
-    'LANG_NAME'=>'Fortran',
-    'COMMENT_SINGLE'=> array(1 =>'!',2=>'Cf2py'),
-    'COMMENT_MULTI'=> array(),
-    //Fortran Comments
-    'COMMENT_REGEXP' => array(1 => '/^C.*?$/mi'),
-    'CASE_KEYWORDS'=> GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS'=> array("'",'"'),
-    'ESCAPE_CHAR'=>'\\',
-    'KEYWORDS'=> array(
-        1 => array(
-            'allocate','block','call','case','contains','continue','cycle','deallocate',
-            'default','do','else','elseif','elsewhere','end','enddo','endif','endwhere',
-            'entry','exit','function','go','goto','if','interface','module','nullify','only',
-            'operator','procedure','program','recursive','return','select','stop',
-            'subroutine','then','to','where','while',
-            'access','action','advance','blank','blocksize','carriagecontrol',
-            'delim','direct','eor','err','exist','file','flen','fmt','form','formatted',
-            'iostat','name','named','nextrec','nml','number','opened','pad','position',
-            'readwrite','recl','sequential','status','unformatted','unit'
-            ),
-        2 => array(
-            '.AND.','.EQ.','.EQV.','.GE.','.GT.','.LE.','.LT.','.NE.','.NEQV.','.NOT.',
-            '.OR.','.TRUE.','.FALSE.'
-            ),
-        3 => array(
-            'allocatable','character','common','complex','data','dimension','double',
-            'equivalence','external','implicit','in','inout','integer','intent','intrinsic',
-            'kind','logical','namelist','none','optional','out','parameter','pointer',
-            'private','public','real','result','save','sequence','target','type','use'
-            ),
-        4 => array(
-            'abs','achar','acos','adjustl','adjustr','aimag','aint','all','allocated',
-            'anint','any','asin','atan','atan2','bit_size','break','btest','carg',
-            'ceiling','char','cmplx','conjg','cos','cosh','cpu_time','count','cshift',
-            'date_and_time','dble','digits','dim','dot_product','dprod dvchk',
-            'eoshift','epsilon','error','exp','exponent','floor','flush','fraction',
-            'getcl','huge','iachar','iand','ibclr','ibits','ibset','ichar','ieor','index',
-            'int','intrup','invalop','ior','iostat_msg','ishft','ishftc','lbound',
-            'len','len_trim','lge','lgt','lle','llt','log','log10','matmul','max','maxexponent',
-            'maxloc','maxval','merge','min','minexponent','minloc','minval','mod','modulo',
-            'mvbits','nbreak','ndperr','ndpexc','nearest','nint','not','offset','ovefl',
-            'pack','precfill','precision','present','product','prompt','radix',
-            'random_number','random_seed','range','repeat','reshape','rrspacing',
-            'scale','scan','segment','selected_int_kind','selected_real_kind',
-            'set_exponent','shape','sign','sin','sinh','size','spacing','spread','sqrt',
-            'sum system','system_clock','tan','tanh','timer','tiny','transfer','transpose',
-            'trim','ubound','undfl','unpack','val','verify'
-            ),
-        ),
-    'SYMBOLS'=> array(
-        '(',')','{','}','[',']','=','+','-','*','/','!','%','^','&',':'
-        ),
-    'CASE_SENSITIVE'=> array(
-        GESHI_COMMENTS => true,
-        1 => false,
-        2 => false,
-        3 => false,
-        4 => false,
-        ),
-    'STYLES'=> array(
-        'KEYWORDS'=> array(
-            1 =>'color: #b1b100;',
-            2 =>'color: #000000; font-weight: bold;',
-            3 =>'color: #000066;',
-            4 =>'color: #993333;'
-            ),
-        'COMMENTS'=> array(
-            1 =>'color: #666666; font-style: italic;',
-            2 =>'color: #339933;',
-            'MULTI'=>'color: #808080; font-style: italic;'
-            ),
-        'ESCAPE_CHAR'=> array(
-            0 =>'color: #000099; font-weight: bold;'
-            ),
-        'BRACKETS'=> array(
-            0 =>'color: #009900;'
-            ),
-        'STRINGS'=> array(
-            0 =>'color: #ff0000;'
-            ),
-        'NUMBERS'=> array(
-            0 =>'color: #cc66cc;'
-            ),
-        'METHODS'=> array(
-            1 =>'color: #202020;',
-            2 =>'color: #202020;'
-            ),
-        'SYMBOLS'=> array(
-            0 =>'color: #339933;'
-            ),
-        'REGEXPS'=> array(
-            ),
-        'SCRIPT'=> array(
-            )
-        ),
-    'URLS'=> array(
-        1 =>'',
-        2 =>'',
-        3 =>'',
-        4 =>''
-        ),
-    'OOLANG'=> true,
-    'OBJECT_SPLITTERS'=> array(
-        1 =>'.',
-        2 =>'::'
-        ),
-    'REGEXPS'=> array(
-        ),
-    'STRICT_MODE_APPLIES'=> GESHI_NEVER,
-    'SCRIPT_DELIMITERS'=> array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK'=> array(
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/freebasic.php b/wiki/vendor/geshi/geshi/src/geshi/freebasic.php
deleted file mode 100644
index cc6bd7b..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/freebasic.php
+++ /dev/null
@@ -1,139 +0,0 @@
-<?php
-/*************************************************************************************
- * freebasic.php
- * -------------
- * Author: Roberto Rossi
- * Copyright: (c) 2005 Roberto Rossi (http://rsoftware.altervista.org)
- * Release Version: 1.0.9.0
- * Date Started: 2005/08/19
- *
- * FreeBasic (http://www.freebasic.net/) language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2005/08/19 (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' => 'FreeBasic',
-    'COMMENT_SINGLE' => array(1 => "'", 2 => '#'),
-    'COMMENT_MULTI' => array(),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array('"'),
-    'ESCAPE_CHAR' => '\\',
-    'KEYWORDS' => array(
-        1 => array(
-            "append", "as", "asc", "asin", "asm", "atan2", "atn", "beep", "bin", "binary", "bit",
-            "bitreset", "bitset", "bload", "bsave", "byref", "byte", "byval", "call",
-            "callocate", "case", "cbyte", "cdbl", "cdecl", "chain", "chdir", "chr", "cint",
-            "circle", "clear", "clng", "clngint", "close", "cls", "color", "command",
-            "common", "cons", "const", "continue", "cos", "cshort", "csign", "csng",
-            "csrlin", "cubyte", "cuint", "culngint", "cunsg", "curdir", "cushort", "custom",
-            "cvd", "cvi", "cvl", "cvlongint", "cvs", "cvshort", "data", "date",
-            "deallocate", "declare", "defbyte", "defdbl", "defined", "defint", "deflng",
-            "deflngint", "defshort", "defsng", "defstr", "defubyte", "defuint",
-            "defulngint", "defushort", "dim", "dir", "do", "double", "draw", "dylibload",
-            "dylibsymbol", "else", "elseif", "end", "enum", "environ", 'environ$', "eof",
-            "eqv", "erase", "err", "error", "exec", "exepath", "exit", "exp", "export",
-            "extern", "field", "fix", "flip", "for", "fre", "freefile", "function", "get",
-            "getjoystick", "getkey", "getmouse", "gosub", "goto", "hex", "hibyte", "hiword",
-            "if", "iif", "imagecreate", "imagedestroy", "imp", "inkey", "inp", "input",
-            "instr", "int", "integer", "is", "kill", "lbound", "lcase", "left", "len",
-            "let", "lib", "line", "lobyte", "loc", "local", "locate", "lock", "lof", "log",
-            "long", "longint", "loop", "loword", "lset", "ltrim", "mid", "mkd", "mkdir",
-            "mki", "mkl", "mklongint", "mks", "mkshort", "mod", "multikey", "mutexcreate",
-            "mutexdestroy", "mutexlock", "mutexunlock", "name", "next", "not", "oct", "on",
-            "once", "open", "option", "or", "out", "output", "overload", "paint", "palette",
-            "pascal", "pcopy", "peek", "peeki", "peeks", "pipe", "pmap", "point", "pointer",
-            "poke", "pokei", "pokes", "pos", "preserve", "preset", "print", "private",
-            "procptr", "pset", "ptr", "public", "put", "random", "randomize", "read",
-            "reallocate", "redim", "rem", "reset", "restore", "resume",
-            "return", "rgb", "rgba", "right", "rmdir", "rnd", "rset", "rtrim", "run",
-            "sadd", "screen", "screencopy", "screeninfo", "screenlock", "screenptr",
-            "screenres", "screenset", "screensync", "screenunlock", "seek", "statement",
-            "selectcase", "setdate", "setenviron", "setmouse",
-            "settime", "sgn", "shared", "shell", "shl", "short", "shr", "sin", "single",
-            "sizeof", "sleep", "space", "spc", "sqr", "static", "stdcall", "step", "stop",
-            "str", "string", "strptr", "sub", "swap", "system", "tab", "tan",
-            "then", "threadcreate", "threadwait", "time", "timer", "to", "trans",
-            "trim", "type", "ubound", "ubyte", "ucase", "uinteger", "ulongint", "union",
-            "unlock", "unsigned", "until", "ushort", "using", "va_arg", "va_first",
-            "va_next", "val", "val64", "valint", "varptr", "view", "viewprint", "wait",
-            "wend", "while", "width", "window", "windowtitle", "with", "write", "xor",
-            "zstring", "explicit", "escape", "true", "false"
-            )
-        ),
-    'SYMBOLS' => array(
-        '(', ')'
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #b1b100;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #808080;',
-            2 => 'color: #339933;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #66cc66;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #ff0000;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #cc66cc;'
-            ),
-        'METHODS' => array(
-            0 => 'color: #66cc66;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #66cc66;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #000099;'
-            ),
-        'SCRIPT' => array(
-            ),
-        'REGEXPS' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => ''
-        ),
-    'OOLANG' => true,
-    'OBJECT_SPLITTERS' => array(
-        1 => '.'
-        ),
-    'REGEXPS' => array(
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/freeswitch.php b/wiki/vendor/geshi/geshi/src/geshi/freeswitch.php
deleted file mode 100644
index 14f2b93..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/freeswitch.php
+++ /dev/null
@@ -1,166 +0,0 @@
-<?php
-/*************************************************************************************
- * freeswitch.php
- * --------
- * Author: James Rose (james.gs@stubbornroses.com)
- * Copyright: (c) 2006 Christian Lescuyer http://xtian.goelette.info
- * Release Version: 1.0.9.0
- * Date Started: 2011/11/18
- *
- * FreeSWITCH language file for GeSHi.
- *
- * This file is based on robots.php
- *
- * 2011/11/18 (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' => 'FreeSWITCH',
-    'COMMENT_SINGLE' => array(1 => '#'),
-    'COMMENT_MULTI' => array(),
-    'COMMENT_REGEXP' => array(1 => "/^Comment:.*?$/m"),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array(),
-    'ESCAPE_CHAR' => '',
-    'KEYWORDS' => array(
-//        1 => array(
-//            'Disallow', 'Request-rate', 'Robot-version',
-//            'Sitemap', 'User-agent', 'Visit-time'
-//            )
-        ),
-    'SYMBOLS' => array(
-//        ':'
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false
-        ),
-
-//order is important. regexes will overwrite most things....
-    'STYLES' => array(
-        'KEYWORDS' => array(
-//            1 => 'color: #FF0000; font-weight: bold;',//red
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #808080; font-style: italic;',
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #000099; font-weight: bold;'
-            ),
-        'BRACKETS' => array(
-//            0 => 'color: #66cc66;'
-            ),
-        'STRINGS' => array(
-//            0 => 'color: #ff0000;'
-            ),
-        'NUMBERS' => array(
-//            0 => 'color: #cc66cc;'
-            ),
-        'METHODS' => array(
-            ),
-        'SYMBOLS' => array(
-//            0 => 'color: #66cc66;'
-            ),
-        'REGEXPS' => array(
-            0 => 'color: firebrick; font-weight: bold;',
-            1 => 'color: cornflowerblue; font-weight: bold;',
-            2 => 'color: goldenrod; font-weight: bold;',
-            3 => 'color: green; font-weight: bold;',
-            4 => 'color: dimgrey; font-style: italic;',
-            5 => 'color: green; font-weight: bold;',
-            6 => 'color: firebrick; font-weight: bold;',
-            7 => 'color: indigo; font-weight: italic;'
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'URLS' => array(
-//        1 => 'http://www.robotstxt.org/wc/norobots.html'
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(
-        ),
-    'REGEXPS' => array(
-        0 => array(
-            GESHI_SEARCH => '(^.*ERROR.*)',
-            GESHI_REPLACE => '\\1',
-            GESHI_MODIFIERS => 'im',
-            GESHI_BEFORE => '',
-            GESHI_AFTER => ''
-            ),
-        1 => array(
-            GESHI_SEARCH => '(^.*NOTICE.*)',
-            GESHI_REPLACE => '\\1',
-            GESHI_MODIFIERS => 'im',
-            GESHI_BEFORE => '',
-            GESHI_AFTER => ''
-            ),
-        2 => array(
-            GESHI_SEARCH => '(^.*DEBUG.*)',
-            GESHI_REPLACE => '\\1',
-            GESHI_MODIFIERS => 'm',
-            GESHI_BEFORE => '',
-            GESHI_AFTER => ''
-            ),
-        3 => array(
-            GESHI_SEARCH => '(^.*INFO.*|.*info\(.*|^Channel.*|^Caller.*|^variable.*)',
-            GESHI_REPLACE => '\\1',
-            GESHI_MODIFIERS => 'm',
-            GESHI_BEFORE => '',
-            GESHI_AFTER => ''
-            ),
-        4 => array(
-            GESHI_SEARCH => '(^Dialplan.*)',
-            GESHI_REPLACE => '\\1',
-            GESHI_MODIFIERS => 'im',
-            GESHI_BEFORE => '',
-            GESHI_AFTER => ''
-            ),
-        5 => array(
-            GESHI_SEARCH => '(Regex\ \(PASS\))',
-            GESHI_REPLACE => '\\1',
-            GESHI_MODIFIERS => '',
-            GESHI_BEFORE => '',
-            GESHI_AFTER => ''
-            ),
-        6 => array(
-            GESHI_SEARCH => '(Regex\ \(FAIL\))',
-            GESHI_REPLACE => '\\1',
-            GESHI_MODIFIERS => '',
-            GESHI_BEFORE => '',
-            GESHI_AFTER => ''
-            ),
-        7 => array(
-            GESHI_SEARCH => '(\d{7,15})',
-            GESHI_REPLACE => '\\1',
-            GESHI_MODIFIERS => '',
-            GESHI_BEFORE => '',
-            GESHI_AFTER => ''
-            )
-        ),
-
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/fsharp.php b/wiki/vendor/geshi/geshi/src/geshi/fsharp.php
deleted file mode 100644
index 5fc9878..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/fsharp.php
+++ /dev/null
@@ -1,211 +0,0 @@
-<?php
-/*************************************************************************************
- * fsharp.php
- * ----------
- * Author: julien ortin (jo_spam-divers@yahoo.fr)
- * Copyright: (c) 2009 julien ortin
- * Release Version: 1.0.9.0
- * Date Started: 2009/09/20
- *
- * F# language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2009/09/22 (1.0.1)
- *  -  added rules for single char handling (generics ['a] vs char ['x'])
- *  -  added symbols and keywords
- * 2009/09/20 (1.0.0)
- *  -  Initial release
- *
- * TODO
- * -------------------------
- *
- *************************************************************************************
- *
- *   This file is part of GeSHi.
- *
- *   GeSHi is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   GeSHi is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with GeSHi; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- ************************************************************************************/
-
-$language_data = array(
-    'LANG_NAME' => 'F#',
-    'COMMENT_SINGLE' => array(1 => '//', 2 => '#'),
-    'COMMENT_MULTI' => array('/*' => '*/'),
-    'COMMENT_REGEXP' => array(3 => '/\(\*(?!\)).*?\*\)/s'),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array("'", '"'),
-    'HARDQUOTE' => array('@"', '"'),
-    'HARDESCAPE' => array('"'),
-    'HARDCHAR' => '"',
-    'ESCAPE_CHAR' => '\\',
-    'KEYWORDS' => array(
-        /* main F# keywords */
-        /* section 3.4 */
-        1 => array(
-            'abstract', 'and', 'as', 'assert', 'base', 'begin', 'class', 'default', 'delegate', 'do', 'done',
-            'downcast', 'downto', 'elif', 'else', 'end', 'exception', 'extern', 'false', 'finally', 'for',
-            'fun', 'function', 'if', 'in', 'inherit', 'inline', 'interface', 'internal', 'lazy', 'let',
-            'match', 'member', 'module', 'mutable', 'namespace', 'new', 'not', 'null', 'of', 'open', 'or',
-            'override', 'private', 'public', 'rec', 'return', 'sig', 'static', 'struct', 'then', 'to',
-            'true', 'try', 'type', 'upcast', 'use', 'val', 'void', 'when', 'while', 'with', 'yield',
-            'asr', 'land', 'lor', 'lsl', 'lsr', 'lxor', 'mod',
-            /* identifiers are reserved for future use by F# */
-            'atomic', 'break', 'checked', 'component', 'const', 'constraint', 'constructor',
-            'continue', 'eager', 'fixed', 'fori', 'functor', 'global', 'include', 'method', 'mixin',
-            'object', 'parallel', 'params', 'process', 'protected', 'pure', 'sealed', 'tailcall',
-            'trait', 'virtual', 'volatile',
-            /* take monads into account */
-            'let!', 'yield!'
-            ),
-        /* define names of main libraries in F# Core, so we can link to it
-         * http://research.microsoft.com/en-us/um/cambridge/projects/fsharp/manual/namespaces.html
-         */
-        2 => array(
-            'Array', 'Array2D', 'Array3D', 'Array4D', 'ComparisonIdentity', 'HashIdentity', 'List',
-            'Map', 'Seq', 'SequenceExpressionHelpers', 'Set', 'CommonExtensions', 'Event',
-            'ExtraTopLevelOperators', 'LanguagePrimitives', 'NumericLiterals', 'Operators',
-            'OptimizedClosures', 'Option', 'String', 'NativePtr', 'Printf'
-            ),
-        /* 17.2 & 17.3 */
-        3 => array(
-            'abs', 'acos', 'asin', 'atan', 'atan2', 'ceil', 'cos', 'cosh', 'exp',
-            'floor', 'log', 'log10', 'pown', 'round', 'sign', 'sin', 'sinh', 'sqrt',
-            'tan', 'tanh',
-            'ignore',
-            'fst', 'snd',
-            'stdin', 'stdout', 'stderr',
-            'KeyValue',
-            'max', 'min'
-            ),
-        /* Pervasives Types & Overloaded Conversion Functions */
-        4 => array(
-            'bool', 'byref', 'byte', 'char', 'decimal', 'double', 'exn', 'float', 'float32',
-            'FuncConvert', 'ilsigptr', 'int', 'int16', 'int32', 'int64', 'int8',
-            'nativeint', 'nativeptr', 'obj', 'option', 'ref', 'sbyte', 'single', 'string', 'uint16',
-            'uint32', 'uint64', 'uint8', 'unativeint', 'unit',
-            'enum',
-            'async', 'seq', 'dict'
-            ),
-        /* 17.2 Exceptions */
-        5 => array (
-            'failwith', 'invalidArg', 'raise', 'rethrow'
-            ),
-        /* 3.3 Conditional compilation & 13.3 Compiler Directives + light / light off */
-        6 => array(
-            '(*IF-FSHARP', 'ENDIF-FSHARP*)', '(*F#', 'F#*)', '(*IF-OCAML', 'ENDIF-OCAML*)',
-            '#light',
-            '#if', '#else', '#endif', '#indent', '#nowarn', '#r', '#reference',
-            '#I', '#Include', '#load', '#time', '#help', '#q', '#quit',
-            ),
-        /* 3.11 Pre-processor Declarations / Identifier Replacements */
-        7 => array(
-            '__SOURCE_DIRECTORY__', '__SOURCE_FILE__', '__LINE__'
-            ),
-        /* 17.2 Object Transformation Operators */
-        8 => array(
-            'box', 'hash', 'sizeof', 'typeof', 'typedefof', 'unbox'
-            )
-        ),
-    /* 17.2 basic operators + the yield and yield! arrows */
-    'SYMBOLS' => array(
-        1 => array('+', '-', '/', '*', '**', '%', '~-'),
-        2 => array('<', '<=', '>', '<=', '=', '<>'),
-        3 => array('<<<', '>>>', '^^^', '&&&', '|||', '~~~'),
-        4 => array('|>', '>>', '<|', '<<'),
-        5 => array('!', '->', '->>'),
-        6 => array('[',']','(',')','{','}', '[|', '|]', '(|', '|)'),
-        7 => array(':=', ';', ';;')
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => true, /* keywords */
-        2 => true, /* modules */
-        3 => true, /* pervasives functions */
-        4 => true, /* types and overloaded conversion operators */
-        5 => true, /* exceptions */
-        6 => true, /* conditional compilation & compiler Directives */
-        7 => true, /* pre-processor declarations / identifier replacements */
-        8 => true  /* object transformation operators */
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #06c; font-weight: bold;', /* nice blue */
-            2 => 'color: #06c; font-weight: bold;', /* nice blue */
-            3 => 'color: #06c; font-weight: bold;', /* nice blue */
-            4 => 'color: #06c; font-weight: bold;', /* nice blue */
-            5 => 'color: #06c; font-weight: bold;', /* nice blue */
-            6 => 'color: #06c; font-weight: bold;', /* nice blue */
-            7 => 'color: #06c; font-weight: bold;', /* nice blue */
-            8 => 'color: #06c; font-weight: bold;' /* nice blue */
-            ),
-        'COMMENTS' => array(
-            'MULTI' => 'color: #5d478b; font-style: italic;', /* light purple */
-            1 => 'color: #5d478b; font-style: italic;',
-            2 => 'color: #5d478b; font-style: italic;', /* light purple */
-            3 => 'color: #5d478b; font-style: italic;' /* light purple */
-            ),
-        'ESCAPE_CHAR' => array(
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #6c6;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #3cb371;' /* nice green */
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #c6c;' /* pink */
-            ),
-        'METHODS' => array(
-            1 => 'color: #060;' /* dark green */
-            ),
-        'REGEXPS' => array(
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #a52a2a;' /* maroon */
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'URLS' => array(
-        /* some of keywords are Pervasives functions (land, lxor, asr, ...) */
-        1 => '',
-        2 => 'http://research.microsoft.com/en-us/um/cambridge/projects/fsharp/manual/namespaces.html',
-        3 => '',
-        4 => '',
-        5 => '',
-        6 => '',
-        7 => '',
-        8 => ''
-        ),
-    'OOLANG' => true,
-    'OBJECT_SPLITTERS' => array(
-        1 => '.'
-        ),
-    '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_<\|%\\-])"
-        )
-    )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/gambas.php b/wiki/vendor/geshi/geshi/src/geshi/gambas.php
deleted file mode 100644
index 8510b86..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/gambas.php
+++ /dev/null
@@ -1,212 +0,0 @@
-<?php
-/*************************************************************************************
- * gambas.php
- * ---------
- * 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.9.0
- * Date Started: 2004/08/20
- *
- * GAMBAS language file for GeSHi.
- * GAMBAS Official Site: http://gambas.sourceforge.net
- *
- * CHANGES
- * -------
- * 2009/09/26 (1.0.1)
- *  -  Splitted dollar-ended keywords in another group to match with or without '$'
- *  -  Modified URL for object/components keywords search through Google "I'm feeling lucky"
- * 2009/09/23 (1.0.0)
- *  -  Initial release
- *
- * TODO (updated 2009/09/26)
- * -------------------------
- *
- *************************************************************************************
- *
- *     This file is part of GeSHi.
- *
- *   GeSHi is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   GeSHi is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with GeSHi; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- ************************************************************************************/
-
-$language_data = array (
-    'LANG_NAME' => 'GAMBAS',
-    'COMMENT_SINGLE' => array(1 => "'"),
-    'COMMENT_MULTI' => array(),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array('"'),
-    'ESCAPE_CHAR' => '\\',
-    'NUMBERS' =>
-        GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_OCT_PREFIX | GESHI_NUMBER_HEX_PREFIX |
-        GESHI_NUMBER_FLT_NONSCI_F | GESHI_NUMBER_FLT_SCI_SHORT | GESHI_NUMBER_FLT_SCI_ZERO,
-    'KEYWORDS' => array(
-        //keywords
-        1 => array(
-            'APPEND', 'AS', 'BREAK', 'BYREF', 'CASE', 'CATCH', 'CLASS', 'CLOSE', 'CONST', 'CONTINUE', 'COPY',
-            'CREATE', 'DEBUG', 'DEC', 'DEFAULT', 'DIM', 'DO', 'EACH', 'ELSE', 'END', 'ENDIF', 'ERROR', 'EVENT', 'EXEC',
-            'EXPORT', 'EXTERN', 'FALSE', 'FINALLY', 'FLUSH', 'FOR', 'FUNCTION', 'GOTO', 'IF', 'IN', 'INC', 'INHERITS',
-            'INPUT', 'FROM', 'IS', 'KILL', 'LAST', 'LIBRARY', 'LIKE', 'LINE INPUT', 'LINK', 'LOCK', 'LOOP', 'ME',
-            'MKDIR', 'MOVE', 'NEW', 'NEXT', 'NULL', 'OPEN', 'OPTIONAL', 'OUTPUT', 'PIPE', 'PRINT', 'PRIVATE',
-            'PROCEDURE', 'PROPERTY', 'PUBLIC', 'QUIT', 'RAISE', 'RANDOMIZE', 'READ', 'REPEAT', 'RETURN', 'RMDIR',
-            'SEEK', 'SELECT', 'SHELL', 'SLEEP', 'STATIC', 'STEP', 'STOP', 'SUB', 'SUPER', 'SWAP', 'THEN', 'TO',
-            'TRUE', 'TRY', 'UNLOCK', 'UNTIL', 'WAIT', 'WATCH', 'WEND', 'WHILE', 'WITH', 'WRITE'
-            ),
-        //functions
-        2 => array(
-            'Abs', 'Access', 'Acos', 'Acosh', 'Alloc', 'Ang', 'Asc', 'ASin', 'ASinh', 'Asl', 'Asr', 'Assign', 'Atan',
-            'ATan2', 'ATanh',
-            'BChg', 'BClr', 'Bin', 'BSet', 'BTst',
-            'CBool', 'Cbr', 'CByte', 'CDate', 'CFloat', 'Choose', 'Chr', 'CInt', 'CLong', 'Comp', 'Conv', 'Cos',
-            'Cosh', 'CShort', 'CSng', 'CStr',
-            'DateAdd', 'DateDiff', 'Day', 'DConv', 'Deg', 'DFree', 'Dir',
-            'Eof', 'Eval', 'Exist', 'Exp', 'Exp10', 'Exp2', 'Expm',
-            'Fix', 'Format', 'Frac', 'Free',
-            'Hex', 'Hour', 'Hyp',
-            'Iif', 'InStr', 'Int', 'IsAscii', 'IsBlank', 'IsBoolean', 'IsByte', 'IsDate', 'IsDigit', 'IsDir',
-            'IsFloat', 'IsHexa', 'IsInteger', 'IsLCase', 'IsLetter', 'IsLong', 'IsNull', 'IsNumber', 'IsObject',
-            'IsPunct', 'IsShort', 'IsSingle', 'IsSpace', 'IsString', 'IsUCase', 'IsVariant',
-            'LCase', 'Left', 'Len', 'Lof', 'Log', 'Log10', 'Log2', 'Logp', 'Lsl', 'Lsr', 'LTrim',
-            'Mag', 'Max', 'Mid', 'Min', 'Minute', 'Month', 'Now', 'Quote',
-            'Rad', 'RDir', 'Realloc', 'Replace', 'Right', 'RInStr', 'Rnd', 'Rol', 'Ror', 'Round', 'RTrim',
-            'Scan', 'SConv', 'Second', 'Seek', 'Sgn', 'Shl', 'Shr', 'Sin', 'Sinh', 'Space', 'Split', 'Sqr',
-            'Stat', 'Str', 'StrPtr', 'Subst',
-            'Tan', 'Tanh', 'Temp$', 'Time', 'Timer', 'Tr', 'Trim', 'TypeOf',
-            'UCase', 'Unquote', 'Val', 'VarPtr', 'Week', 'WeekDay', 'Year'
-            ),
-        //string functions
-        3 => array(
-            'Bin$', 'Chr$', 'Conv$', 'DConv$', 'Format$', 'Hex$', 'LCase$', 'Left$', 'LTrim$', 'Mid$', 'Quote$',
-            'Replace$', 'Right$', 'SConv$', 'Space$', 'Str$', 'String$', 'Subst$', 'Tr$', 'Trim$', 'UCase$',
-            'Unquote$'
-            ),
-        //datatypes
-        4 => array(
-            'Boolean', 'Byte', 'Short', 'Integer', 'Long', 'Single', 'Float', 'Date', 'String', 'Variant', 'Object',
-            'Pointer', 'File'
-            ),
-        //operators
-        5 => array(
-            'AND', 'DIV', 'MOD', 'NOT', 'OR', 'XOR'
-            ),
-        //objects/classes
-        6 => array(
-            'Application', 'Array', 'Byte[]', 'Collection', 'Component', 'Enum', 'Observer', 'Param', 'Process',
-            'Stream', 'System', 'User', 'Chart', 'Compress', 'Crypt', 'Blob', 'Connection', 'DB', 'Database',
-            'DatabaseUser', 'Field', 'Index', 'Result', 'ResultField', 'Table', 'DataBrowser', 'DataCombo',
-            'DataControl', 'DataSource', 'DataView', 'Desktop', 'DesktopFile', 'Balloon', 'ColorButton',
-            'ColorChooser', 'DateChooser', 'DirChooser', 'DirView', 'Expander', 'FileChooser', 'FileView',
-            'FontChooser', 'InputBox', 'ListContainer', 'SidePanel', 'Stock', 'TableView', 'ToolPanel', 'ValueBox',
-            'Wizard', 'Dialog', 'ToolBar', 'WorkSpace', 'DnsClient', 'SerialPort', 'ServerSocket', 'Socket',
-            'UdpSocket', 'FtpClient', 'HttpClient', 'SmtpClient', 'Regexp', 'Action', 'Button', 'CheckBox',
-            'ColumnView', 'ComboBox', 'Draw', 'Container', 'Control', 'Cursor', 'DrawingArea', 'Embedder',
-            'Font', 'Form', 'Frame', 'GridView', 'HBox', 'HPanel', 'HSplit', 'IconView', 'Image', 'Key', 'Label',
-            'Line', 'ListBox', 'ListView', 'Menu', 'Message', 'Mouse', 'MovieBox', 'Panel', 'Picture', 'PictureBox',
-            'ProgressBar', 'RadioButton', 'ScrollBar', 'ScrollView', 'Separator', 'Slider', 'SpinBox', 'TabStrip',
-            'TextArea', 'TextBox', 'TextLabel', 'ToggleButton', 'TrayIcon', 'TreeView', 'VBox', 'VPanel', 'VSplit',
-            'Watcher', 'Window', 'Dial', 'Editor', 'LCDNumber', 'Printer', 'TextEdit', 'WebBrowser', 'GLarea',
-            'Report', 'ReportCloner', 'ReportContainer', 'ReportControl', 'ReportDrawing', 'ReportField', 'ReportHBox',
-            'ReportImage', 'ReportLabel', 'ReportSection', 'ReportSpecialField', 'ReportTextLabel', 'ReportVBox',
-            'CDRom', 'Channel', 'Music', 'Sound', 'Settings', 'VideoDevice', 'Vb', 'CGI', 'HTML', 'Request', 'Response',
-            'Session', 'XmlDocument', 'XmlNode', 'XmlReader', 'XmlReaderNodeType', 'XmlWriter', 'RpcArray', 'RpcClient',
-            'RpcFunction', 'RpcServer', 'RpcStruct', 'RpcType', 'XmlRpc', 'Xslt'
-            ),
-        //constants
-        7 => array(
-            'Pi'
-            ),
-        ),
-    '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: #0600FF; font-weight: bold;',          // Keywords
-            2 => 'color: #8B1433;',                             // Functions
-            3 => 'color: #8B1433;',                             // String Functions
-            4 => 'color: #0600FF;',                             // Data Types
-            5 => 'color: #1E90FF;',                             // Operators
-            6 => 'color: #0600FF;',                             // Objects/Components
-            7 => 'color: #0600FF;'                              // Constants
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #1A5B1A; font-style: italic;',
-            'MULTI' => 'color: #1A5B1A; font-style: italic;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #008080;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #612188;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #7E4B05;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #FF0000;',
-            GESHI_NUMBER_INT_BASIC => 'color: #FF0000;'
-            ),
-        'METHODS' => array(
-            1 => 'color: #0000FF;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #6132B2;'
-            ),
-        'REGEXPS' => array(
-            //3 => 'color: #8B1433;'  //fakes '$' colour matched by REGEXP
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => 'http://gambasdoc.org/help/lang/{FNAMEL}',
-        2 => 'http://gambasdoc.org/help/lang/{FNAMEL}',
-        3 => 'http://www.google.com/search?hl=en&amp;q={FNAMEL}+site:http://gambasdoc.org/help/lang/&amp;btnI=I%27m%20Feeling%20Lucky',
-        4 => 'http://gambasdoc.org/help/lang/type/{FNAMEL}',
-        5 => 'http://gambasdoc.org/help/lang/{FNAMEL}',
-        6 => 'http://www.google.com/search?hl=en&amp;q={FNAMEL}+site:http://gambasdoc.org/&amp;btnI=I%27m%20Feeling%20Lucky',
-        7 => 'http://gambasdoc.org/help/lang/{FNAMEL}'
-        ),
-    'OOLANG' => true,
-    'OBJECT_SPLITTERS' => array(
-        1 =>'.'
-        ),
-    'REGEXPS' => array(
-        //3 => "\\$(?!\\w)"   //matches '$' at the end of Keyword
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_MAYBE,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        ),
-    'PARSER_CONTROL' => array(
-        'KEYWORDS' => array(
-            2 => array(
-                'DISALLOWED_AFTER' => "(?![a-zA-Z0-9_\|%\\-&;\$])"
-                )
-            )
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/gdb.php b/wiki/vendor/geshi/geshi/src/geshi/gdb.php
deleted file mode 100644
index d05a9ca..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/gdb.php
+++ /dev/null
@@ -1,194 +0,0 @@
-<?php
-/*************************************************************************************
- * gdb.php
- * --------
- * Author: Milian Wolff (mail@milianw.de)
- * Copyright: (c) 2009 Milian Wolff
- * Release Version: 1.0.9.0
- * Date Started: 2009/06/24
- *
- * GDB language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2009/06/24 (1.0.0)
- *   -  First Release
- *
- * TODO (updated 2009/06/24)
- * -------------------------
- *
- *************************************************************************************
- *
- *     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' => 'GDB',
-    'COMMENT_SINGLE' => array(),
-    'COMMENT_MULTI' => array(),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array('"'),
-    'ESCAPE_CHAR' => '\\',
-    'KEYWORDS' => array(
-        0 => array(
-            'Application',
-            'signal',
-            ),
-        1 => array(
-            'Segmentation fault',
-            '[KCrash Handler]',
-            ),
-        ),
-    'NUMBERS' => false,
-    'SYMBOLS' => array(
-        ),
-    'CASE_SENSITIVE' => array(
-        0 => true,
-        1 => true
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            0 => 'font-weight:bold;',
-            1 => 'font-weight:bold; color: #ff0000;'
-            ),
-        'COMMENTS' => array(
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => ''
-            ),
-        'BRACKETS' => array(
-            0 => 'font-weight:bold;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #933;'
-            ),
-        'NUMBERS' => array(
-            ),
-        'METHODS' => array(
-            ),
-        'SYMBOLS' => array(
-            ),
-        'REGEXPS' => array(
-            0 => 'color: #000066; font-weight:bold;',
-            1 => 'color: #006600;',
-            2 => 'color: #B07E00;',
-            3 => 'color: #0057AE; text-style:italic;',
-            4 => 'color: #0057AE; text-style:italic;',
-            5 => 'color: #442886;',
-            6 => 'color: #442886; font-weight:bold;',
-            7 => 'color: #FF0000; font-weight:bold;',
-            8 => 'color: #006E26;',
-            9 => 'color: #555;',
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'URLS' => array(
-        0 => '',
-        1 => ''
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(
-        ),
-    'REGEXPS' => array(
-        //[Current Thread...], [KCrash Handler] etc.
-        0 => array(
-            GESHI_SEARCH => '^\[.+\]',
-            GESHI_REPLACE => '\\0',
-            GESHI_MODIFIERS => 'm',
-            GESHI_BEFORE => '',
-            GESHI_AFTER => ''
-            ),
-        //stack number
-        1 => array(
-            GESHI_SEARCH => '^#\d+',
-            GESHI_REPLACE => '\\0',
-            GESHI_MODIFIERS => 'm',
-            GESHI_BEFORE => '',
-            GESHI_AFTER => ''
-            ),
-        //Thread X (Thread...)
-        2 => array(
-            GESHI_SEARCH => '^Thread \d.+$',
-            GESHI_REPLACE => '\\0',
-            GESHI_MODIFIERS => 'm',
-            GESHI_BEFORE => '',
-            GESHI_AFTER => ''
-            ),
-        //Files with linenumbers
-        3 => array(
-            GESHI_SEARCH => '(at\s+)(.+)(:\d+\s*)$',
-            GESHI_REPLACE => '\\2',
-            GESHI_MODIFIERS => 'm',
-            GESHI_BEFORE => '\\1',
-            GESHI_AFTER => '\\3'
-            ),
-        //Libs without linenumbers
-        4 => array(
-            GESHI_SEARCH => '(from\s+)(.+)(\s*)$',
-            GESHI_REPLACE => '\\2',
-            GESHI_MODIFIERS => 'm',
-            GESHI_BEFORE => '\\1',
-            GESHI_AFTER => '\\3'
-            ),
-        //Line numbers
-        5 => array(
-            GESHI_SEARCH => '(:)(\d+)(\s*)$',
-            GESHI_REPLACE => '\\2',
-            GESHI_MODIFIERS => 'm',
-            GESHI_BEFORE => '\\1',
-            GESHI_AFTER => '\\3'
-            ),
-        //Location
-        6 => array(
-            GESHI_SEARCH => '(\s+)(in\s+)?([^ 0-9][^ ]*)([ \n]+\()',
-            GESHI_REPLACE => '\\3',
-            GESHI_MODIFIERS => '',
-            GESHI_BEFORE => '\\1\\2',
-            GESHI_AFTER => '\\4'
-            ),
-        // interesting parts: abort, qFatal, assertions, null ptrs, ...
-        7 => array(
-            GESHI_SEARCH => '\b((?:\*__GI_)?(?:__assert_fail|abort)|qFatal|0x0)\b([^\.]|$)',
-            GESHI_REPLACE => '\\1',
-            GESHI_MODIFIERS => '',
-            GESHI_BEFORE => '',
-            GESHI_AFTER => '\\2'
-            ),
-        // Namespace / Classes
-        8 => array(
-            GESHI_SEARCH => '\b(\w+)(::)',
-            GESHI_REPLACE => '\\1',
-            GESHI_MODIFIERS => 'U',
-            GESHI_BEFORE => '',
-            GESHI_AFTER => '\\2'
-            ),
-        // make ptr adresses and <value optimized out> uninteresting
-        9 => '\b(?:0x[a-f0-9]{2,}|value\s+optimized\s+out)\b'
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        ),
-    'PARSER_CONTROL' => array(
-        'ENABLE_FLAGS' => array(
-            'NUMBERS' => false
-            )
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/genero.php b/wiki/vendor/geshi/geshi/src/geshi/genero.php
deleted file mode 100644
index 4d3cc36..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/genero.php
+++ /dev/null
@@ -1,461 +0,0 @@
-<?php
-/*************************************************************************************
- * genero.php
- * ----------
- * Author: Lars Gersmann (lars.gersmann@gmail.com)
- * Copyright: (c) 2007 Lars Gersmann, Nigel McNie (http://qbnz.com/highlighter/)
- * Release Version: 1.0.9.0
- * Date Started: 2007/07/01
- *
- * Genero (FOURJ's Genero 4GL) language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2007/07/01 (1.0.0)
- *  -  Initial 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' => 'genero',
-    'COMMENT_SINGLE' => array(1 => '--', 2 => '#'),
-    'COMMENT_MULTI' => array('{' => '}'),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array("'", '"'),
-    'ESCAPE_CHAR' => '\\',
-    'KEYWORDS' => array(
-        1 => array(
-            "ABSOLUTE",
-            "ACCEPT",
-            "ACTION",
-            "ADD",
-            "AFTER",
-            "ALL",
-            "ALTER",
-            "AND",
-            "ANY",
-            "APPEND",
-            "APPLICATION",
-            "AS",
-            "AT",
-            "ATTRIBUTE",
-            "ATTRIBUTES",
-            "AUDIT",
-            "AVG",
-            "BEFORE",
-            "BEGIN",
-            "BETWEEN",
-            "BORDER",
-            "BOTTOM",
-            "BREAKPOINT",
-            "BUFFER",
-            "BUFFERED",
-            "BY",
-            "CALL",
-            "CANCEL",
-            "CASE",
-            "CENTURY",
-            "CHANGE",
-            "CHECK",
-            "CLEAR",
-            "CLIPPED",
-            "CLOSE",
-            "CLUSTER",
-            "COLUMN",
-            "COLUMNS",
-            "COMMAND",
-            "COMMENT",
-            "COMMIT",
-            "COMMITTED",
-            "CONCURRENT ",
-            "CONNECT",
-            "CONNECTION",
-            "CONSTANT",
-            "CONSTRAINED",
-            "CONSTRAINT",
-            "CONSTRUCT",
-            "CONTINUE",
-            "CONTROL",
-            "COUNT",
-            "CREATE",
-            "CROSS",
-            "CURRENT",
-            "DATABASE",
-            "DBA",
-            "DEC",
-            "DECLARE",
-            "DEFAULT",
-            "DEFAULTS",
-            "DEFER",
-            "DEFINE",
-            "DELETE",
-            "DELIMITER",
-            "DESCRIBE",
-            "DESTINATION",
-            "DIM",
-            "DIALOG",
-            "DIMENSION",
-            "DIRTY",
-            "DISCONNECT",
-            "DISPLAY",
-            "DISTINCT",
-            "DORMANT",
-            "DOWN",
-            "DROP",
-            "DYNAMIC",
-            "ELSE",
-            "END",
-            "ERROR",
-            "ESCAPE",
-            "EVERY",
-            "EXCLUSIVE",
-            "EXECUTE",
-            "EXISTS",
-            "EXIT",
-            "EXPLAIN",
-            "EXTEND",
-            "EXTENT",
-            "EXTERNAL",
-            "FETCH",
-            "FGL_DRAWBOX",
-            "FIELD",
-            "FIELD_TOUCHED",
-            "FILE",
-            "FILL",
-            "FINISH",
-            "FIRST",
-            "FLOAT",
-            "FLUSH",
-            "FOR",
-            "FOREACH",
-            "FORM",
-            "FORMAT",
-            "FOUND",
-            "FRACTION",
-            "FREE",
-            "FROM",
-            "FULL",
-            "FUNCTION",
-            "GET_FLDBUF",
-            "GLOBALS",
-            "GO",
-            "GOTO",
-            "GRANT",
-            "GROUP",
-            "HAVING",
-            "HEADER",
-            "HELP",
-            "HIDE",
-            "HOLD",
-            "HOUR",
-            "IDLE",
-            "IF",
-            "IMAGE",
-            "IMMEDIATE",
-            "IN",
-            "INDEX",
-            "INFIELD",
-            "INITIALIZE",
-            "INNER",
-            "INPUT",
-            "INSERT",
-            "INTERRUPT",
-            "INTERVAL",
-            "INTO",
-            "INVISIBLE",
-            "IS",
-            "ISOLATION",
-            "JOIN",
-            "KEEP",
-            "KEY",
-            "LABEL",
-            "LAST",
-            "LEFT",
-            "LENGTH",
-            "LET",
-            "LIKE",
-            "LINE",
-            "LINENO",
-            "LINES",
-            "LOAD",
-            "LOCATE",
-            "LOCK",
-            "LOG",
-            "LSTR",
-            "MAIN",
-            "MARGIN",
-            "MATCHES",
-            "MAX",
-            "MAXCOUNT",
-            "MDY",
-            "MEMORY",
-            "MENU",
-            "MESSAGE",
-            "MIN",
-            "MINUTE",
-            "MOD",
-            "MODE",
-            "MODIFY",
-            "MONEY",
-            "NAME",
-            "NEED",
-            "NEXT",
-            "NO",
-            "NORMAL",
-            "NOT",
-            "NOTFOUND",
-            "NULL",
-            "NUMERIC",
-            "OF",
-            "ON",
-            "OPEN",
-            "OPTION",
-            "OPTIONS",
-            "OR",
-            "ORDER",
-            "OTHERWISE",
-            "OUTER",
-            "OUTPUT",
-            "PAGE",
-            "PAGENO",
-            "PAUSE",
-            "PERCENT",
-            "PICTURE",
-            "PIPE",
-            "PRECISION",
-            "PREPARE",
-            "PREVIOUS",
-            "PRINT",
-            "PRINTER",
-            "PRINTX",
-            "PRIOR",
-            "PRIVILEGES",
-            "PROCEDURE",
-            "PROGRAM",
-            "PROMPT",
-            "PUBLIC",
-            "PUT",
-            "QUIT",
-            "READ",
-            "REAL",
-            "RECORD",
-            "RECOVER",
-            "RED ",
-            "RELATIVE",
-            "RENAME",
-            "REOPTIMIZATION",
-            "REPEATABLE",
-            "REPORT",
-            "RESOURCE",
-            "RETURN",
-            "RETURNING",
-            "REVERSE",
-            "REVOKE",
-            "RIGHT",
-            "ROLLBACK",
-            "ROLLFORWARD",
-            "ROW",
-            "ROWS",
-            "RUN",
-            "SCHEMA",
-            "SCREEN",
-            "SCROLL",
-            "SECOND",
-            "SELECT",
-            "SERIAL",
-            "SET",
-            "SFMT",
-            "SHARE",
-            "SHIFT",
-            "SHOW",
-            "SIGNAL ",
-            "SIZE",
-            "SKIP",
-            "SLEEP",
-            "SOME",
-            "SPACE",
-            "SPACES",
-            "SQL",
-            "SQLERRMESSAGE",
-            "SQLERROR",
-            "SQLSTATE",
-            "STABILITY",
-            "START",
-            "STATISTICS",
-            "STEP",
-            "STOP",
-            "STYLE",
-            "SUM",
-            "SYNONYM",
-            "TABLE",
-            "TEMP",
-            "TERMINATE",
-            "TEXT",
-            "THEN",
-            "THROUGH",
-            "THRU",
-            "TO",
-            "TODAY",
-            "TOP",
-            "TRAILER",
-            "TRANSACTION ",
-            "UNBUFFERED",
-            "UNCONSTRAINED",
-            "UNDERLINE",
-            "UNION",
-            "UNIQUE",
-            "UNITS",
-            "UNLOAD",
-            "UNLOCK",
-            "UP",
-            "UPDATE",
-            "USE",
-            "USER",
-            "USING",
-            "VALIDATE",
-            "VALUE",
-            "VALUES",
-            "VARCHAR",
-            "VIEW",
-            "WAIT",
-            "WAITING",
-            "WARNING",
-            "WHEN",
-            "WHENEVER",
-            "WHERE",
-            "WHILE",
-            "WINDOW",
-            "WITH",
-            "WITHOUT",
-            "WORDWRAP",
-            "WORK",
-            "WRAP"
-            ),
-        2 => array(
-            '&amp;IFDEF', '&amp;ENDIF'
-            ),
-        3 => array(
-            "ARRAY",
-            "BYTE",
-            "CHAR",
-            "CHARACTER",
-            "CURSOR",
-            "DATE",
-            "DATETIME",
-            "DECIMAL",
-            "DOUBLE",
-            "FALSE",
-            "INT",
-            "INTEGER",
-            "SMALLFLOAT",
-            "SMALLINT",
-            "STRING",
-            "TIME",
-            "TRUE"
-            ),
-        4 => array(
-            "BLACK",
-            "BLINK",
-            "BLUE",
-            "BOLD",
-            "ANSI",
-            "ASC",
-            "ASCENDING",
-            "ASCII",
-            "CYAN",
-            "DESC",
-            "DESCENDING",
-            "GREEN",
-            "MAGENTA",
-            "OFF",
-            "WHITE",
-            "YELLOW",
-            "YEAR",
-            "DAY",
-            "MONTH",
-            "WEEKDAY"
-            ),
-        ),
-    'SYMBOLS' => array(
-        '+', '-', '*', '?', '=', '/', '%', '>', '<', '^', '!', '|', ':',
-        '(', ')', '[', ']'
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false,
-        2 => false,
-        3 => false,
-        4 => false,
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #0600FF;',
-            2 => 'color: #0000FF; font-weight: bold;',
-            3 => 'color: #008000;',
-            4 => 'color: #FF0000;',
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #008080; font-style: italic;',
-            2 => 'color: #008080;',
-            'MULTI' => 'color: #008080; font-style: italic;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #008080; font-weight: bold;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #000000;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #808080;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #FF0000;'
-            ),
-        'METHODS' => array(
-            1 => 'color: #0000FF;',
-            2 => 'color: #0000FF;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #008000;'
-            ),
-        '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/wiki/vendor/geshi/geshi/src/geshi/genie.php b/wiki/vendor/geshi/geshi/src/geshi/genie.php
deleted file mode 100644
index dabc389..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/genie.php
+++ /dev/null
@@ -1,155 +0,0 @@
-<?php
-/*************************************************************************************
- * genie.php
- * ----------
- * Author: Nicolas Joseph (nicolas.joseph@valaide.org)
- * Copyright: (c) 2009 Nicolas Joseph
- * Release Version: 1.0.9.0
- * Date Started: 2009/04/29
- *
- * Genie language file for GeSHi.
- *
- * CHANGES
- * -------
- *
- * TODO
- * ----
- *
- *************************************************************************************
- *
- *     This file is part of GeSHi.
- *
- *   GeSHi is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   GeSHi is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with GeSHi; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- ************************************************************************************/
-
-$language_data = array (
-    'LANG_NAME' => 'Genie',
-    'COMMENT_SINGLE' => array(1 => '//'),
-    'COMMENT_MULTI' => array('/*' => '*/'),
-    'COMMENT_REGEXP' => array(
-        //Using and Namespace directives (basic support)
-        //Please note that the alias syntax for using is not supported
-        3 => '/(?:(?<=using[\\n\\s])|(?<=namespace[\\n\\s]))[\\n\\s]*([a-zA-Z0-9_]+\\.)*[a-zA-Z0-9_]+[\n\s]*(?=[;=])/i'),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array("'", '"'),
-    'HARDQUOTE' => array('@"', '"'),
-    'HARDESCAPE' => array('""'),
-    'ESCAPE_CHAR' => '\\',
-    'KEYWORDS' => array(
-        1 => array(
-            'and', 'as', 'abstract', 'break', 'case', 'cast', 'catch', 'const',
-            'construct', 'continue', 'default', 'def', 'delete', 'div',
-            'dynamic', 'do', 'downto', 'else', 'ensures', 'except', 'extern',
-            'false', 'final', 'finally', 'for', 'foreach', 'get', 'if', 'in',
-            'init', 'inline', 'internal', 'implements', 'lock', 'not', 'null',
-            'of', 'or', 'otherwise', 'out', 'override', 'pass', 'raise',
-            'raises', 'readonly', 'ref', 'requires', 'self', 'set', 'static',
-            'super', 'switch', 'to', 'true', 'try', 'unless', 'uses', 'var', 'virtual',
-            'volatile', 'void', 'when', 'while'
-            ),
-//        2 => array(
-//            ),
-        3 => array(
-            'is', 'isa', 'new', 'owned', 'sizeof', 'typeof', 'unchecked',
-            'unowned', 'weak'
-            ),
-        4 => array(
-            'bool', 'byte', 'class', 'char', 'date', 'datetime', 'decimal', 'delegate',
-            'double', 'enum', 'event', 'exception', 'float', 'int', 'interface',
-            'long', 'object', 'prop', 'sbyte', 'short', 'single', 'string',
-            'struct', 'ulong', 'ushort'
-            ),
-//        5 => array(
-//            ),
-        ),
-    'SYMBOLS' => array(
-        '+', '-', '*', '?', '=', '/', '%', '&', '>', '<', '^', '!', ':', ';',
-        '(', ')', '{', '}', '[', ']', '|'
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false,
-//        2 => false,
-        3 => false,
-        4 => false,
-//        5 => false,
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #0600FF;',
-//            2 => 'color: #FF8000; font-weight: bold;',
-            3 => 'color: #008000;',
-            4 => 'color: #FF0000;',
-//            5 => 'color: #000000;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #008080; font-style: italic;',
-//            2 => 'color: #008080;',
-            3 => 'color: #008080;',
-            'MULTI' => 'color: #008080; font-style: italic;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #008080; font-weight: bold;',
-            'HARD' => 'color: #008080; font-weight: bold;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #000000;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #666666;',
-            'HARD' => 'color: #666666;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #FF0000;'
-            ),
-        'METHODS' => array(
-            1 => 'color: #0000FF;',
-            2 => 'color: #0000FF;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #008000;'
-            ),
-        'REGEXPS' => array(
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-//        2 => '',
-        3 => '',
-        4 => '',
-//        5 => ''
-        ),
-    'OOLANG' => true,
-    'OBJECT_SPLITTERS' => array(
-        1 => '.'
-        ),
-    '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_<\|%\\-])"
-            )
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/gettext.php b/wiki/vendor/geshi/geshi/src/geshi/gettext.php
deleted file mode 100644
index 871f5ae..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/gettext.php
+++ /dev/null
@@ -1,95 +0,0 @@
-<?php
-/*************************************************************************************
- * gettext.php
- * --------
- * Author: Milian Wolff (mail@milianw.de)
- * Copyright: (c) 2008 Milian Wolff
- * Release Version: 1.0.9.0
- * Date Started: 2008/05/25
- *
- * GNU Gettext .po/.pot language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2008/08/02 (1.0.8)
- *  -  New comments: flags and previous-fields
- *  -  New keywords: msgctxt, msgid_plural
- *  -  Msgstr array indices
- *
- *************************************************************************************
- *
- *     This file is part of GeSHi.
- *
- *   GeSHi is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   GeSHi is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with GeSHi; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- ************************************************************************************/
-
-$language_data = array (
-    'LANG_NAME' => 'GNU Gettext',
-    'COMMENT_SINGLE' => array('#:', '#.', '#,', '#|', '#'),
-    'COMMENT_MULTI' => array(),
-    'COMMENT_REGEXP' => array(),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array("'", '"'),
-    'ESCAPE_CHAR' => '\\',
-    'KEYWORDS' => array(
-        1 => array('msgctxt', 'msgid_plural', 'msgid', 'msgstr'),
-    ),
-    'SYMBOLS' => array(),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => true,
-    ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #000000; font-weight: bold;'
-        ),
-        'COMMENTS' => array(
-            0 => 'color: #000099;',
-            1 => 'color: #000099;',
-            2 => 'color: #000099;',
-            3 => 'color: #006666;',
-            4 => 'color: #666666; font-style: italic;',
-        ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #000099; font-weight: bold;'
-        ),
-        'STRINGS' => array(
-            0 => 'color: #ff0000;'
-        ),
-        'REGEXPS' => array(),
-        'SYMBOLS' => array(),
-        'NUMBERS' => array(
-            0 => 'color: #000099;'
-        ),
-        'METHODS' => array(),
-        'SCRIPT' => array(),
-        'BRACKETS' => array(
-            0 => 'color: #000099;'
-        ),
-    ),
-    'URLS' => array(
-        1 => ''
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(),
-    'REGEXPS' => array(),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        ),
-    'TAB_WIDTH' => 4
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/glsl.php b/wiki/vendor/geshi/geshi/src/geshi/glsl.php
deleted file mode 100644
index d67adb2..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/glsl.php
+++ /dev/null
@@ -1,203 +0,0 @@
-<?php
-/*************************************************************************************
- * glsl.php
- * -----
- * Author: Benny Baumann (BenBE@omorphia.de)
- * Copyright: (c) 2008 Benny Baumann (BenBE@omorphia.de)
- * Release Version: 1.0.9.0
- * Date Started: 2008/03/20
- *
- * glSlang language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2008/03/20 (1.0.7.21)
- *   -  First Release
- *
- * TODO
- * ----
- *
- *************************************************************************************
- *
- *     This file is part of GeSHi.
- *
- *   GeSHi is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   GeSHi is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with GeSHi; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- ************************************************************************************/
-
-$language_data = array (
-    'LANG_NAME' => 'glSlang',
-    'COMMENT_SINGLE' => array(1 => '//', 2 => '#'),
-    'COMMENT_MULTI' => array('/*' => '*/'),
-    'COMMENT_REGEXP' => array(
-        //Multiline-continued single-line comments
-        1 => '/\/\/(?:\\\\\\\\|\\\\\\n|.)*$/m',
-        //Multiline-continued preprocessor define
-        2 => '/#(?:\\\\\\\\|\\\\\\n|.)*$/m'
-        ),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array("'", '"'),
-    'ESCAPE_CHAR' => '\\',
-    'KEYWORDS' => array(
-        1 => array(
-            'if', 'else', 'for', 'while', 'do', 'break', 'continue', 'asm',
-            'switch', 'case', 'default', 'return', 'discard',
-            'namespace', 'using', 'sizeof', 'cast'
-            ),
-        2 => array(
-            'const', 'uniform', 'attribute', 'centroid', 'varying', 'invariant',
-            'in', 'out', 'inout', 'input', 'output', 'typedef', 'volatile',
-            'public', 'static', 'extern', 'external', 'packed',
-            'inline', 'noinline', 'noperspective', 'flat'
-            ),
-        3 => array(
-            'void', 'bool', 'int', 'long', 'short', 'float', 'half', 'fixed',
-            'unsigned', 'lowp', 'mediump', 'highp', 'precision',
-            'vec2', 'vec3', 'vec4', 'bvec2', 'bvec3', 'bvec4',
-            'dvec2', 'dvec3', 'dvec4', 'fvec2', 'fvec3', 'fvec4',
-            'hvec2', 'hvec3', 'hvec4', 'ivec2', 'ivec3', 'ivec4',
-            'mat2', 'mat3', 'mat4', 'mat2x2', 'mat3x2', 'mat4x2',
-            'mat2x3', 'mat3x3', 'mat4x3', 'mat2x4', 'mat3x4', 'mat4x4',
-            'sampler1D', 'sampler2D', 'sampler3D', 'samplerCube',
-            'sampler1DShadow', 'sampler2DShadow',
-            'struct', 'class', 'union', 'enum', 'interface', 'template'
-            ),
-        4 => array(
-            'this', 'false', 'true'
-            ),
-        5 => array(
-            'radians', 'degrees', 'sin', 'cos', 'tan', 'asin', 'acos', 'atan',
-            'pow', 'exp2', 'log2', 'sqrt', 'inversesqrt', 'abs', 'sign', 'ceil',
-            'floor', 'fract', 'mod', 'min', 'max', 'clamp', 'mix', 'step',
-            'smoothstep', 'length', 'distance', 'dot', 'cross', 'normalize',
-            'ftransform', 'faceforward', 'reflect', 'matrixCompMult', 'equal',
-            'lessThan', 'lessThanEqual', 'greaterThan', 'greaterThanEqual',
-            'notEqual', 'any', 'all', 'not', 'texture1D', 'texture1DProj',
-            'texture1DLod', 'texture1DProjLod', 'texture2D', 'texture2DProj',
-            'texture2DLod', 'texture2DProjLod', 'texture3D', 'texture3DProj',
-            'texture3DLod', 'texture3DProjLod', 'textureCube', 'textureCubeLod',
-            'shadow1D', 'shadow1DProj', 'shadow1DLod', 'shadow1DProjLod',
-            'shadow2D', 'shadow2DProj', 'shadow2DLod', 'shadow2DProjLod',
-            'noise1', 'noise2', 'noise3', 'noise4'
-            ),
-        6 => array(
-            'gl_Position', 'gl_PointSize', 'gl_ClipVertex', 'gl_FragColor',
-            'gl_FragData', 'gl_FragDepth', 'gl_FragCoord', 'gl_FrontFacing',
-            'gl_Color', 'gl_SecondaryColor', 'gl_Normal', 'gl_Vertex',
-            'gl_MultiTexCoord0', 'gl_MultiTexCoord1', 'gl_MultiTexCoord2',
-            'gl_MultiTexCoord3', 'gl_MultiTexCoord4', 'gl_MultiTexCoord5',
-            'gl_MultiTexCoord6', 'gl_MultiTexCoord7', 'gl_FogCoord',
-            'gl_MaxLights', 'gl_MaxClipPlanes', 'gl_MaxTextureUnits',
-            'gl_MaxTextureCoords', 'gl_MaxVertexAttribs', 'gl_MaxVaryingFloats',
-            'gl_MaxVertexUniformComponents', 'gl_MaxVertexTextureImageUnits',
-            'gl_MaxCombinedTextureImageUnits', 'gl_MaxTextureImageUnits',
-            'gl_MaxFragmentUniformComponents', 'gl_MaxDrawBuffers', 'gl_Point',
-            'gl_ModelViewMatrix', 'gl_ProjectionMatrix', 'gl_FrontMaterial',
-            'gl_ModelViewProjectionMatrix', 'gl_TextureMatrix', 'gl_ClipPlane',
-            'gl_NormalMatrix', 'gl_ModelViewMatrixInverse', 'gl_BackMaterial',
-            'gl_ProjectionMatrixInverse', 'gl_ModelViewProjectionMatrixInverse',
-            'gl_TextureMatrixInverse', 'gl_ModelViewMatrixTranspose', 'gl_Fog',
-            'gl_ProjectionMatrixTranspose', 'gl_NormalScale', 'gl_DepthRange',
-            'gl_odelViewProjectionMatrixTranspose', 'gl_TextureMatrixTranspose',
-            'gl_ModelViewMatrixInverseTranspose', 'gl_LightSource',
-            'gl_ProjectionMatrixInverseTranspose', 'gl_LightModel',
-            'gl_ModelViewProjectionMatrixInverseTranspose', 'gl_TexCoord',
-            'gl_TextureMatrixInverseTranspose', 'gl_TextureEnvColor',
-            'gl_FrontLightModelProduct', 'gl_BackLightModelProduct',
-            'gl_FrontLightProduct', 'gl_BackLightProduct', 'gl_ObjectPlaneS',
-            'gl_ObjectPlaneT', 'gl_ObjectPlaneR', 'gl_ObjectPlaneQ',
-            'gl_EyePlaneS', 'gl_EyePlaneT', 'gl_EyePlaneR', 'gl_EyePlaneQ',
-            'gl_FrontColor', 'gl_BackColor', 'gl_FrontSecondaryColor',
-            'gl_BackSecondaryColor', 'gl_FogFragCoord', 'gl_PointCoord'
-            )
-        ),
-    'SYMBOLS' => array(
-        '(', ')', '{', '}', '[', ']', '=', '+', '-', '*', '/', '!', '%', '^',
-        '&', '?', ':', '.', '|', ';', ',', '<', '>'
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => true,
-        2 => true,
-        3 => true,
-        4 => true,
-        5 => true,
-        6 => true,
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #000000; font-weight: bold;',
-            2 => 'color: #333399; font-weight: bold;',
-            3 => 'color: #000066; font-weight: bold;',
-            4 => 'color: #333399; font-weight: bold;',
-            5 => 'color: #993333; font-weight: bold;',
-            6 => 'color: #551111;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #666666; font-style: italic;',
-            2 => 'color: #009900;',
-            'MULTI' => 'color: #666666; font-style: italic;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #000099; font-weight: bold;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #000066;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #ff0000;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #0000ff;'
-            ),
-        'METHODS' => array(
-            1 => 'color: #006600;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #000066;'
-            ),
-        'REGEXPS' => array(
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => '',
-        4 => '',
-        5 => '',
-        6 => ''
-        ),
-    'OOLANG' => true,
-    'OBJECT_SPLITTERS' => array(
-        1 => '.'
-        ),
-    'REGEXPS' => array(
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        ),
-    'TAB_WIDTH' => 4,
-    'PARSER_CONTROL' => array(
-        'OOLANG' => array(
-            'MATCH_BEFORE' => '',
-            'MATCH_AFTER' => '[a-zA-Z_][a-zA-Z0-9_]*',
-            'MATCH_SPACES' => '[\s]*'
-        )
-    )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/gml.php b/wiki/vendor/geshi/geshi/src/geshi/gml.php
deleted file mode 100644
index 2cb0cd2..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/gml.php
+++ /dev/null
@@ -1,367 +0,0 @@
-<?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/wiki/vendor/geshi/geshi/src/geshi/gnuplot.php b/wiki/vendor/geshi/geshi/src/geshi/gnuplot.php
deleted file mode 100644
index 55e1055..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/gnuplot.php
+++ /dev/null
@@ -1,294 +0,0 @@
-<?php
-/*************************************************************************************
- * gnuplot.php
- * ----------
- * Author: Milian Wolff (mail@milianw.de)
- * Copyright: (c) 2008 Milian Wolff (http://milianw.de)
- * Release Version: 1.0.9.0
- * Date Started: 2008/07/07
- *
- * Gnuplot script language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2008/07/07 (1.0.8)
- *  -  Initial import
- *
- *************************************************************************************
- *
- *     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' => 'Gnuplot',
-    'COMMENT_SINGLE' => array(1 => '#'),
-    'COMMENT_MULTI' => array(),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array('`', '"', "'"),
-    'ESCAPE_CHAR' => '\\',
-    'NUMBERS' =>
-        GESHI_NUMBER_INT_BASIC |
-        GESHI_NUMBER_FLT_NONSCI |
-        GESHI_NUMBER_FLT_SCI_SHORT |
-        GESHI_NUMBER_FLT_SCI_ZERO,
-    'KEYWORDS' => array(
-        // copy output of help command, indent properly and use this replace regexp:
-        // ([a-z0-9_\-]+)(( )+|$)          =>     '\1',\3
-
-        // commands as found in `help commands`
-        1 => array(
-            'bind', 'call', 'cd', 'clear',
-            'exit', 'fit', 'help', 'history',
-            'if', 'load', 'lower', 'pause',
-            'plot', 'print', 'pwd', 'quit',
-            'raise', 'replot', 'reread', 'reset',
-            'save', 'set', 'shell', 'show',
-            'splot', 'system', 'test', 'unset',
-            'update'
-            ),
-        2 => array(
-            // set commands as returned by `help set`
-            'angles', 'arrow', 'autoscale', 'bars',
-            'bmargin', 'border', 'boxwidth', 'cbdata',
-            'cbdtics', 'cblabel', 'cbmtics', 'cbrange',
-            'cbtics', 'clabel', 'clip', 'cntrparam',
-            'colorbox', 'contour', 'datafile', 'date_specifiers',
-            'decimalsign', 'dgrid3d', 'dummy', 'encoding',
-            'fontpath', 'format', 'grid',
-            'hidden3d', 'historysize', 'isosamples', 'key',
-            'label', 'lmargin', 'loadpath', 'locale',
-            'log', 'logscale', 'macros', 'mapping',
-            'margin', 'missing', 'mouse', 'multiplot',
-            'mx2tics', 'mxtics', 'my2tics', 'mytics',
-            'mztics', 'object', 'offsets', 'origin',
-            'output', 'palette', 'parametric', 'pm3d',
-            'pointsize', 'polar', 'rmargin',
-            'rrange', 'samples', 'size', 'style',
-            'surface', 'table', 'term', 'terminal',
-            'termoption', 'tics', 'ticscale', 'ticslevel',
-            'time_specifiers', 'timefmt', 'timestamp', 'title',
-            'trange', 'urange', 'view',
-            'vrange', 'x2data', 'x2dtics', 'x2label',
-            'x2mtics', 'x2range', 'x2tics', 'x2zeroaxis',
-            'xdata', 'xdtics', 'xlabel', 'xmtics',
-            'xrange', 'xtics', 'xyplane', 'xzeroaxis',
-            'y2data', 'y2dtics', 'y2label', 'y2mtics',
-            'y2range', 'y2tics', 'y2zeroaxis', 'ydata',
-            'ydtics', 'ylabel', 'ymtics', 'yrange',
-            'ytics', 'yzeroaxis', 'zdata', 'zdtics',
-            'zero', 'zeroaxis', 'zlabel', 'zmtics',
-            'zrange', 'ztics', 'zzeroaxis',
-            // same but with leading no
-            'noangles', 'noarrow', 'noautoscale', 'nobars',
-            'nobmargin', 'noborder', 'noboxwidth', 'nocbdata',
-            'nocbdtics', 'nocblabel', 'nocbmtics', 'nocbrange',
-            'nocbtics', 'noclabel', 'noclip', 'nocntrparam',
-            'nocolorbox', 'nocontour', 'nodatafile', 'nodate_specifiers',
-            'nodecimalsign', 'nodgrid3d', 'nodummy', 'noencoding',
-            'nofit', 'nofontpath', 'noformat', 'nogrid',
-            'nohidden3d', 'nohistorysize', 'noisosamples', 'nokey',
-            'nolabel', 'nolmargin', 'noloadpath', 'nolocale',
-            'nolog', 'nologscale', 'nomacros', 'nomapping',
-            'nomargin', 'nomissing', 'nomouse', 'nomultiplot',
-            'nomx2tics', 'nomxtics', 'nomy2tics', 'nomytics',
-            'nomztics', 'noobject', 'nooffsets', 'noorigin',
-            'nooutput', 'nopalette', 'noparametric', 'nopm3d',
-            'nopointsize', 'nopolar', 'noprint', 'normargin',
-            'norrange', 'nosamples', 'nosize', 'nostyle',
-            'nosurface', 'notable', 'noterm', 'noterminal',
-            'notermoption', 'notics', 'noticscale', 'noticslevel',
-            'notime_specifiers', 'notimefmt', 'notimestamp', 'notitle',
-            'notmargin', 'notrange', 'nourange', 'noview',
-            'novrange', 'nox2data', 'nox2dtics', 'nox2label',
-            'nox2mtics', 'nox2range', 'nox2tics', 'nox2zeroaxis',
-            'noxdata', 'noxdtics', 'noxlabel', 'noxmtics',
-            'noxrange', 'noxtics', 'noxyplane', 'noxzeroaxis',
-            'noy2data', 'noy2dtics', 'noy2label', 'noy2mtics',
-            'noy2range', 'noy2tics', 'noy2zeroaxis', 'noydata',
-            'noydtics', 'noylabel', 'noymtics', 'noyrange',
-            'noytics', 'noyzeroaxis', 'nozdata', 'nozdtics',
-            'nozero', 'nozeroaxis', 'nozlabel', 'nozmtics',
-            'nozrange', 'noztics', 'nozzeroaxis',
-            ),
-        3 => array(
-            // predefined variables
-            'pi', 'NaN', 'GNUTERM',
-            'GPVAL_X_MIN', 'GPVAL_X_MAX', 'GPVAL_Y_MIN', 'GPVAL_Y_MAX',
-            'GPVAL_TERM', 'GPVAL_TERMOPTIONS', 'GPVAL_OUTPUT',
-            'GPVAL_VERSION', 'GPVAL_PATcHLEVEL', 'GPVAL_COMPILE_OPTIONS',
-            'MOUSE_KEY', 'MOUSE_X', 'MOUSE_X2', 'MOUSE_Y', 'MOUSE_Y2',
-            'MOUSE_BUTTON', 'MOUSE_SHIFT', 'MOUSE_ALT', 'MOUSE_CTRL'
-            ),
-        4 => array(
-            // predefined functions `help functions`
-            'abs', 'acos', 'acosh', 'arg',
-            'asin', 'asinh', 'atan', 'atan2',
-            'atanh', 'besj0', 'besj1', 'besy0',
-            'besy1', 'ceil', 'column', 'cos',
-            'cosh', 'defined', 'erf', 'erfc',
-            'exists', 'exp', 'floor', 'gamma',
-            'gprintf', 'ibeta', 'igamma', 'imag',
-            'int', 'inverf', 'invnorm', 'lambertw',
-            'lgamma', 'log10', 'norm',
-            'rand', 'random', 'real', 'sgn',
-            'sin', 'sinh', 'sprintf', 'sqrt',
-            'stringcolumn', 'strlen', 'strstrt', 'substr',
-            'tan', 'tanh', 'timecolumn',
-            'tm_hour', 'tm_mday', 'tm_min', 'tm_mon',
-            'tm_sec', 'tm_wday', 'tm_yday', 'tm_year',
-            'valid', 'word', 'words',
-            ),
-        5 => array(
-            // mixed arguments
-            // there is no sane way to get these ones easily...
-            'autofreq', 'x', 'y', 'z',
-            'lt', 'linetype', 'lw', 'linewidth', 'ls', 'linestyle',
-            'out', 'rotate by', 'screen',
-            'enhanced', 'via',
-            // `help set key`
-            'on', 'off', 'default', 'inside', 'outside', 'tmargin',
-            'at', 'left', 'right', 'center', 'top', 'bottom', 'vertical', 'horizontal', 'Left', 'Right',
-            'noreverse', 'reverse', 'noinvert', 'invert', 'samplen', 'spacing', 'width', 'height',
-            'noautotitle', 'autotitle', 'noenhanced', 'nobox', 'box',
-
-            // help set terminal postscript
-            'landscape', 'portrait', 'eps', 'defaultplex', 'simplex', 'duplex',
-            'fontfile', 'add', 'delete', 'nofontfiles', 'level1', 'leveldefault',
-            'color', 'colour', 'monochrome', 'solid', 'dashed', 'dashlength', 'dl',
-            'rounded', 'butt', 'palfuncparam', 'blacktext', 'colortext', 'colourtext',
-            'font',
-
-            // help set terminal png
-            'notransparent', 'transparent', 'nointerlace', 'interlace',
-            'notruecolor', 'truecolor', 'tiny', 'small', 'medium', 'large', 'giant',
-            'nocrop', 'crop',
-
-            // `help plot`
-            'acsplines', 'bezier', 'binary', 'csplines',
-            'every',
-            'example', 'frequency', 'index', 'matrix',
-            'ranges', 'sbezier', 'smooth',
-            'special-filenames', 'thru',
-            'unique', 'using', 'with',
-
-            // `help plotting styles`
-            'boxerrorbars', 'boxes', 'boxxyerrorbars', 'candlesticks',
-            'dots', 'errorbars', 'errorlines', 'filledcurves',
-            'financebars', 'fsteps', 'histeps', 'histograms',
-            'image', 'impulses', 'labels', 'lines',
-            'linespoints', 'points', 'rgbimage', 'steps',
-            'vectors', 'xerrorbars', 'xerrorlines', 'xyerrorbars',
-            'xyerrorlines', 'yerrorbars', 'yerrorlines',
-
-
-            // terminals `help terminals`
-            'aed512', 'aed767', 'aifm', 'bitgraph',
-            'cgm', 'corel', 'dumb', 'dxf',
-            'eepic', 'emf', 'emtex', 'epslatex',
-            'epson-180dpi', 'epson-60dpi', 'epson-lx800', 'fig',
-            'gif', 'gpic', 'hp2623a', 'hp2648',
-            'hp500c', 'hpdj', 'hpgl', 'hpljii',
-            'hppj', 'imagen', 'jpeg', 'kc-tek40xx',
-            'km-tek40xx', 'latex', 'mf', 'mif',
-            'mp', 'nec-cp6', 'okidata', 'pbm',
-            'pcl5', 'png', 'pop', 'postscript',
-            'pslatex', 'pstex', 'pstricks', 'push',
-            'qms', 'regis', 'selanar', 'starc',
-            'svg', 'tandy-60dpi', 'tek40xx', 'tek410x',
-            'texdraw', 'tgif', 'tkcanvas', 'tpic',
-            'vttek', 'x11', 'xlib',
-            )
-        ),
-    'REGEXPS' => array(
-        //Variable assignment
-        0 => "(?<![?;>\w])([a-zA-Z_][a-zA-Z0-9_]*)\s*=",
-        //Numbers with unit
-        1 => "(?<=^|\s)([0-9]*\.?[0-9]+\s*cm)"
-        ),
-    'SYMBOLS' => array(
-        '-', '+', '~', '!', '$',
-        '*', '/', '%', '=', '<', '>', '&',
-        '^', '|', '.', 'eq', 'ne', '?:', ':', '`', ','
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => true,
-        2 => true,
-        3 => true,
-        4 => true,
-        5 => true
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #b1b100;',
-            2 => 'color: #990000;',
-            3 => 'color: #550000;',
-            4 => 'color: #7a0874;',
-            5 => 'color: #448888;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #adadad; font-style: italic;',
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #000099; font-weight:bold;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #000099; font-weight:bold;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #0000ff;',
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #cc66cc;'
-            ),
-        'METHODS' => array(
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #000; font-weight: bold;'
-            ),
-        'REGEXPS' => array(
-            0 => 'color: #007800;',
-            1 => 'color: #cc66cc;'
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => 'http://www.google.com/search?q=%22set+{FNAME}%22+site%3Ahttp%3A%2F%2Fwww.gnuplot.info%2Fdocs%2F&amp;btnI=lucky',
-        3 => '',
-        4 => '',
-        5 => ''
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        ),
-    'PARSER_CONTROL' => array(
-        'KEYWORDS' => array(
-            4 => array(
-                'DISALLOWED_AFTER' =>  "(?![\.\-a-zA-Z0-9_%])"
-            )
-        )
-    ),
-    'TAB_WIDTH' => 4
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/go.php b/wiki/vendor/geshi/geshi/src/geshi/go.php
deleted file mode 100644
index 5c9212b..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/go.php
+++ /dev/null
@@ -1,373 +0,0 @@
-<?php
-/*************************************************************************************
- * go.php
- * --------
- * Author: Markus Jarderot (mizardx at gmail dot com)
- * Copyright: (c) 2010 Markus Jarderot
- * Release Version: 1.0.9.0
- * Date Started: 2010/05/20
- *
- * Go language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2010/05/20 (1.0.8.9)
- *  -  First Release
- *
- * TODO (updated 2010/05/20)
- * -------------------------
- *
- *************************************************************************************
- *
- *     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' => 'Go',
-    'COMMENT_SINGLE' => array(1 => '//'),
-    'COMMENT_MULTI' => array('/*' => '*/'),
-    'COMMENT_REGEXP' => array(
-        # Raw strings (escapes and linebreaks ignored)
-        2 => "#`[^`]*`#"
-        ),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array('"', "'"),
-    'ESCAPE_CHAR' => '',
-    'ESCAPE_REGEXP' => array(
-        1 => "#\\\\[abfnrtv\\\\\'\"]#",
-        2 => "#\\\\[0-7]{3}#",
-        3 => "#\\\\x[0-9a-fA-F]{2}#",
-        4 => "#\\\\u[0-9a-fA-F]{4}#",
-        5 => "#\\\\U[0-9a-fA-F]{8}#"
-        ),
-    'NUMBERS' => array(
-        # integer literals (possibly imaginary)
-        0 => '\b([1-9][0-9]*i?|0[0-7]*|0[xX][0-9a-f]+|0[0-9]*i)\b',
-        # real floating point literals
-        1 => '\b((?:\d+\.\d*(?:[Ee][+-]?\d+\b)?|\.\d+(?:[Ee][+-]?\d+)?|\d+[Ee][+-]?\d+)?)\b',
-        # imaginary floating point literals
-        2 => '\b((?:\d+\.\d*(?:[Ee][+-]?\d+)?|\.\d+(?:[Ee][+-]?\d+)?|\d+[Ee][+-]?\d+)?i)\b'
-        ),
-    'KEYWORDS' => array(
-        # statements
-        1 => array(
-            'break', 'case', 'const', 'continue', 'default', 'defer', 'else',
-            'fallthrough', 'for', 'go', 'goto', 'if', 'import', 'package',
-            'range', 'return', 'select', 'switch', 'type', 'var'
-            ),
-        # literals
-        2 => array(
-            'nil', 'true', 'false'
-            ),
-        # built-in functions
-        3 => array(
-            'close', 'closed', 'len', 'cap', 'new', 'make', 'copy', 'cmplx',
-            'real', 'imag', 'panic', 'recover', 'print', 'println'
-            ),
-        # built-in types
-        4 => array(
-            'chan', 'func', 'interface', 'map', 'struct', 'bool', 'uint8',
-            'uint16', 'uint32', 'uint64', 'int8', 'int16', 'int32', 'int64',
-            'float32', 'float64', 'complex64', 'complex128', 'byte', 'uint',
-            'int', 'float', 'complex', 'uintptr', 'string'
-            ),
-        # library types
-        5 => array(
-            'aes.Cipher', 'aes.KeySizeError', 'ascii85.CorruptInputError', 'asn1.BitString',
-            'asn1.RawValue', 'asn1.StructuralError', 'asn1.SyntaxError', 'ast.ChanDir',
-            'ast.Comment', 'ast.CommentGroup', 'ast.Decl', 'ast.Expr', 'ast.Field',
-            'ast.FieldList', 'ast.File', 'ast.Filter', 'ast.MergeMode', 'ast.Node',
-            'ast.ObjKind', 'ast.Object', 'ast.Package', 'ast.Scope', 'ast.Stmt',
-            'ast.Visitor', 'av.Color', 'av.Image', 'av.Window', 'base64.CorruptInputError',
-            'base64.Encoding', 'big.Int', 'big.Word', 'bignum.Integer', 'bignum.Rational',
-            'binary.ByteOrder', 'block.Cipher', 'block.EAXTagError', 'blowfish.Cipher',
-            'blowfish.KeySizeError', 'bufio.BufSizeError', 'bufio.Error', 'bufio.ReadWriter',
-            'bufio.Reader', 'bufio.Writer', 'bytes.Buffer', 'datafmt.Environment',
-            'datafmt.Format', 'datafmt.Formatter', 'datafmt.FormatterMap', 'datafmt.State',
-            'doc.Filter', 'doc.FuncDoc', 'doc.PackageDoc', 'doc.TypeDoc', 'doc.ValueDoc',
-            'draw.Color', 'draw.Context', 'draw.Image', 'draw.Mouse', 'draw.Op',
-            'draw.Point', 'draw.Rectangle', 'dwarf.AddrType', 'dwarf.ArrayType',
-            'dwarf.Attr', 'dwarf.BasicType', 'dwarf.BoolType', 'dwarf.CharType',
-            'dwarf.CommonType', 'dwarf.ComplexType', 'dwarf.Data', 'dwarf.DecodeError',
-            'dwarf.DotDotDotType', 'dwarf.Entry', 'dwarf.EnumType', 'dwarf.EnumValue',
-            'dwarf.Field', 'dwarf.FloatType', 'dwarf.FuncType', 'dwarf.IntType',
-            'dwarf.Offset', 'dwarf.PtrType', 'dwarf.QualType', 'dwarf.Reader',
-            'dwarf.StructField', 'dwarf.StructType', 'dwarf.Tag', 'dwarf.Type',
-            'dwarf.TypedefType', 'dwarf.UcharType', 'dwarf.UintType', 'dwarf.VoidType',
-            'elf.Class', 'elf.Data', 'elf.Dyn32', 'elf.Dyn64', 'elf.DynFlag', 'elf.DynTag',
-            'elf.File', 'elf.FileHeader', 'elf.FormatError', 'elf.Header32', 'elf.Header64',
-            'elf.Machine', 'elf.NType', 'elf.OSABI', 'elf.Prog', 'elf.Prog32', 'elf.Prog64',
-            'elf.ProgFlag', 'elf.ProgHeader', 'elf.ProgType', 'elf.R_386', 'elf.R_ALPHA',
-            'elf.R_ARM', 'elf.R_PPC', 'elf.R_SPARC', 'elf.R_X86_64', 'elf.Rel32',
-            'elf.Rel64', 'elf.Rela32', 'elf.Rela64', 'elf.Section', 'elf.Section32',
-            'elf.Section64', 'elf.SectionFlag', 'elf.SectionHeader', 'elf.SectionIndex',
-            'elf.SectionType', 'elf.Sym32', 'elf.Sym64', 'elf.SymBind', 'elf.SymType',
-            'elf.SymVis', 'elf.Symbol', 'elf.Type', 'elf.Version', 'eval.ArrayType',
-            'eval.ArrayValue', 'eval.BoolValue', 'eval.BoundedType', 'eval.ChanType',
-            'eval.Code', 'eval.Constant', 'eval.Def', 'eval.DivByZeroError',
-            'eval.FloatValue', 'eval.Frame', 'eval.Func', 'eval.FuncDecl', 'eval.FuncType',
-            'eval.FuncValue', 'eval.IMethod', 'eval.IdealFloatValue', 'eval.IdealIntValue',
-            'eval.IndexError', 'eval.IntValue', 'eval.Interface', 'eval.InterfaceType',
-            'eval.InterfaceValue', 'eval.KeyError', 'eval.Map', 'eval.MapType',
-            'eval.MapValue', 'eval.Method', 'eval.MultiType', 'eval.NamedType',
-            'eval.NegativeCapacityError', 'eval.NegativeLengthError', 'eval.NilPointerError',
-            'eval.PtrType', 'eval.PtrValue', 'eval.RedefinitionError', 'eval.Scope',
-            'eval.Slice', 'eval.SliceError', 'eval.SliceType', 'eval.SliceValue',
-            'eval.StringValue', 'eval.StructField', 'eval.StructType', 'eval.StructValue',
-            'eval.Thread', 'eval.Type', 'eval.UintValue', 'eval.Value', 'eval.Variable',
-            'eval.World', 'exec.Cmd', 'expvar.Int', 'expvar.IntFunc', 'expvar.KeyValue',
-            'expvar.Map', 'expvar.String', 'expvar.StringFunc', 'expvar.Var', 'flag.Flag',
-            'flag.Value', 'flate.CorruptInputError', 'flate.InternalError',
-            'flate.ReadError', 'flate.Reader', 'flate.WriteError', 'flate.WrongValueError',
-            'fmt.Formatter', 'fmt.GoStringer', 'fmt.State', 'fmt.Stringer',
-            'git85.CorruptInputError', 'gob.Decoder', 'gob.Encoder', 'gosym.DecodingError',
-            'gosym.Func', 'gosym.LineTable', 'gosym.Obj', 'gosym.Sym', 'gosym.Table',
-            'gosym.UnknownFileError', 'gosym.UnknownLineError', 'gzip.Deflater',
-            'gzip.Header', 'gzip.Inflater', 'hash.Hash', 'hash.Hash32', 'hash.Hash64',
-            'heap.Interface', 'hex.InvalidHexCharError', 'hex.OddLengthInputError',
-            'http.ClientConn', 'http.Conn', 'http.Handler', 'http.HandlerFunc',
-            'http.ProtocolError', 'http.Request', 'http.Response', 'http.ServeMux',
-            'http.ServerConn', 'http.URL', 'http.URLError', 'http.URLEscapeError',
-            'image.Alpha', 'image.AlphaColor', 'image.Color', 'image.ColorImage',
-            'image.ColorModel', 'image.ColorModelFunc', 'image.Image', 'image.NRGBA',
-            'image.NRGBA64', 'image.NRGBA64Color', 'image.NRGBAColor', 'image.Paletted',
-            'image.RGBA', 'image.RGBA64', 'image.RGBA64Color', 'image.RGBAColor',
-            'io.Closer', 'io.Error', 'io.PipeReader', 'io.PipeWriter', 'io.ReadByter',
-            'io.ReadCloser', 'io.ReadSeeker', 'io.ReadWriteCloser', 'io.ReadWriteSeeker',
-            'io.ReadWriter', 'io.Reader', 'io.ReaderAt', 'io.ReaderFrom', 'io.SectionReader',
-            'io.Seeker', 'io.WriteCloser', 'io.WriteSeeker', 'io.Writer', 'io.WriterAt',
-            'io.WriterTo', 'iterable.Func', 'iterable.Group', 'iterable.Grouper',
-            'iterable.Injector', 'iterable.Iterable', 'jpeg.FormatError', 'jpeg.Reader',
-            'jpeg.UnsupportedError', 'json.Decoder', 'json.Encoder',
-            'json.InvalidUnmarshalError', 'json.Marshaler', 'json.MarshalerError',
-            'json.SyntaxError', 'json.UnmarshalTypeError', 'json.Unmarshaler',
-            'json.UnsupportedTypeError', 'list.Element', 'list.List', 'log.Logger',
-            'macho.Cpu', 'macho.File', 'macho.FileHeader', 'macho.FormatError', 'macho.Load',
-            'macho.LoadCmd', 'macho.Regs386', 'macho.RegsAMD64', 'macho.Section',
-            'macho.Section32', 'macho.Section64', 'macho.SectionHeader', 'macho.Segment',
-            'macho.Segment32', 'macho.Segment64', 'macho.SegmentHeader', 'macho.Thread',
-            'macho.Type', 'net.Addr', 'net.AddrError', 'net.Conn', 'net.DNSConfigError',
-            'net.DNSError', 'net.Error', 'net.InvalidAddrError', 'net.InvalidConnError',
-            'net.Listener', 'net.OpError', 'net.PacketConn', 'net.TCPAddr', 'net.TCPConn',
-            'net.TCPListener', 'net.UDPAddr', 'net.UDPConn', 'net.UnixAddr', 'net.UnixConn',
-            'net.UnixListener', 'net.UnknownNetworkError', 'net.UnknownSocketError',
-            'netchan.Dir', 'netchan.Exporter', 'netchan.Importer', 'nntp.Article',
-            'nntp.Conn', 'nntp.Error', 'nntp.Group', 'nntp.ProtocolError', 'ogle.Arch',
-            'ogle.ArchAlignedMultiple', 'ogle.ArchLSB', 'ogle.Breakpoint', 'ogle.Event',
-            'ogle.EventAction', 'ogle.EventHandler', 'ogle.EventHook', 'ogle.FormatError',
-            'ogle.Frame', 'ogle.Goroutine', 'ogle.GoroutineCreate', 'ogle.GoroutineExit',
-            'ogle.NoCurrentGoroutine', 'ogle.NotOnStack', 'ogle.Process',
-            'ogle.ProcessNotStopped', 'ogle.ReadOnlyError', 'ogle.RemoteMismatchError',
-            'ogle.UnknownArchitecture', 'ogle.UnknownGoroutine', 'ogle.UsageError',
-            'os.Errno', 'os.Error', 'os.ErrorString', 'os.File', 'os.FileInfo',
-            'os.LinkError', 'os.PathError', 'os.SyscallError', 'os.Waitmsg', 'patch.Diff',
-            'patch.File', 'patch.GitBinaryLiteral', 'patch.Op', 'patch.Set',
-            'patch.SyntaxError', 'patch.TextChunk', 'patch.Verb', 'path.Visitor',
-            'pdp1.HaltError', 'pdp1.LoopError', 'pdp1.Trapper', 'pdp1.UnknownInstrError',
-            'pdp1.Word', 'pem.Block', 'png.FormatError', 'png.IDATDecodingError',
-            'png.UnsupportedError', 'printer.Config', 'printer.HTMLTag', 'printer.Styler',
-            'proc.Breakpoint', 'proc.Cause', 'proc.Process', 'proc.ProcessExited',
-            'proc.Regs', 'proc.Signal', 'proc.Stopped', 'proc.Thread', 'proc.ThreadCreate',
-            'proc.ThreadExit', 'proc.Word', 'quick.CheckEqualError', 'quick.CheckError',
-            'quick.Config', 'quick.Generator', 'quick.SetupError', 'rand.Rand',
-            'rand.Source', 'rand.Zipf', 'rc4.Cipher', 'rc4.KeySizeError',
-            'reflect.ArrayOrSliceType', 'reflect.ArrayOrSliceValue', 'reflect.ArrayType',
-            'reflect.ArrayValue', 'reflect.BoolType', 'reflect.BoolValue', 'reflect.ChanDir',
-            'reflect.ChanType', 'reflect.ChanValue', 'reflect.Complex128Type',
-            'reflect.Complex128Value', 'reflect.Complex64Type', 'reflect.Complex64Value',
-            'reflect.ComplexType', 'reflect.ComplexValue', 'reflect.Float32Type',
-            'reflect.Float32Value', 'reflect.Float64Type', 'reflect.Float64Value',
-            'reflect.FloatType', 'reflect.FloatValue', 'reflect.FuncType',
-            'reflect.FuncValue', 'reflect.Int16Type', 'reflect.Int16Value',
-            'reflect.Int32Type', 'reflect.Int32Value', 'reflect.Int64Type',
-            'reflect.Int64Value', 'reflect.Int8Type', 'reflect.Int8Value', 'reflect.IntType',
-            'reflect.IntValue', 'reflect.InterfaceType', 'reflect.InterfaceValue',
-            'reflect.MapType', 'reflect.MapValue', 'reflect.Method', 'reflect.PtrType',
-            'reflect.PtrValue', 'reflect.SliceHeader', 'reflect.SliceType',
-            'reflect.SliceValue', 'reflect.StringHeader', 'reflect.StringType',
-            'reflect.StringValue', 'reflect.StructField', 'reflect.StructType',
-            'reflect.StructValue', 'reflect.Type', 'reflect.Uint16Type',
-            'reflect.Uint16Value', 'reflect.Uint32Type', 'reflect.Uint32Value',
-            'reflect.Uint64Type', 'reflect.Uint64Value', 'reflect.Uint8Type',
-            'reflect.Uint8Value', 'reflect.UintType', 'reflect.UintValue',
-            'reflect.UintptrType', 'reflect.UintptrValue', 'reflect.UnsafePointerType',
-            'reflect.UnsafePointerValue', 'reflect.Value', 'regexp.Error', 'regexp.Regexp',
-            'ring.Ring', 'rpc.Call', 'rpc.Client', 'rpc.ClientCodec', 'rpc.InvalidRequest',
-            'rpc.Request', 'rpc.Response', 'rpc.ServerCodec', 'rsa.DecryptionError',
-            'rsa.MessageTooLongError', 'rsa.PKCS1v15Hash', 'rsa.PrivateKey', 'rsa.PublicKey',
-            'rsa.VerificationError', 'runtime.ArrayType', 'runtime.BoolType',
-            'runtime.ChanDir', 'runtime.ChanType', 'runtime.Complex128Type',
-            'runtime.Complex64Type', 'runtime.ComplexType', 'runtime.Error',
-            'runtime.Float32Type', 'runtime.Float64Type', 'runtime.FloatType',
-            'runtime.Func', 'runtime.FuncType', 'runtime.Int16Type', 'runtime.Int32Type',
-            'runtime.Int64Type', 'runtime.Int8Type', 'runtime.IntType',
-            'runtime.InterfaceType', 'runtime.Itable', 'runtime.MapType',
-            'runtime.MemProfileRecord', 'runtime.MemStatsType', 'runtime.PtrType',
-            'runtime.SliceType', 'runtime.StringType', 'runtime.StructType', 'runtime.Type',
-            'runtime.TypeAssertionError', 'runtime.Uint16Type', 'runtime.Uint32Type',
-            'runtime.Uint64Type', 'runtime.Uint8Type', 'runtime.UintType',
-            'runtime.UintptrType', 'runtime.UnsafePointerType', 'scanner.Error',
-            'scanner.ErrorHandler', 'scanner.ErrorVector', 'scanner.Position',
-            'scanner.Scanner', 'script.Close', 'script.Closed', 'script.Event',
-            'script.ReceivedUnexpected', 'script.Recv', 'script.RecvMatch', 'script.Send',
-            'script.SetupError', 'signal.Signal', 'signal.UnixSignal', 'sort.Interface',
-            'srpc.Client', 'srpc.Errno', 'srpc.Handler', 'srpc.RPC', 'strconv.NumError',
-            'strings.Reader', 'sync.Mutex', 'sync.RWMutex',
-            'syscall.ByHandleFileInformation', 'syscall.Cmsghdr', 'syscall.Dirent',
-            'syscall.EpollEvent', 'syscall.Fbootstraptransfer_t', 'syscall.FdSet',
-            'syscall.Filetime', 'syscall.Flock_t', 'syscall.Fstore_t', 'syscall.Iovec',
-            'syscall.Kevent_t', 'syscall.Linger', 'syscall.Log2phys_t', 'syscall.Msghdr',
-            'syscall.Overlapped', 'syscall.PtraceRegs', 'syscall.Radvisory_t',
-            'syscall.RawSockaddr', 'syscall.RawSockaddrAny', 'syscall.RawSockaddrInet4',
-            'syscall.RawSockaddrInet6', 'syscall.RawSockaddrUnix', 'syscall.Rlimit',
-            'syscall.Rusage', 'syscall.Sockaddr', 'syscall.SockaddrInet4',
-            'syscall.SockaddrInet6', 'syscall.SockaddrUnix', 'syscall.Stat_t',
-            'syscall.Statfs_t', 'syscall.Sysinfo_t', 'syscall.Time_t', 'syscall.Timespec',
-            'syscall.Timeval', 'syscall.Timex', 'syscall.Tms', 'syscall.Ustat_t',
-            'syscall.Utimbuf', 'syscall.Utsname', 'syscall.WaitStatus',
-            'syscall.Win32finddata', 'syslog.Priority', 'syslog.Writer', 'tabwriter.Writer',
-            'tar.Header', 'tar.Reader', 'tar.Writer', 'template.Error',
-            'template.FormatterMap', 'template.Template', 'testing.Benchmark',
-            'testing.Regexp', 'testing.Test', 'time.ParseError', 'time.Ticker', 'time.Time',
-            'tls.CASet', 'tls.Certificate', 'tls.Config', 'tls.Conn', 'tls.ConnectionState',
-            'tls.Listener', 'token.Position', 'token.Token', 'unicode.CaseRange',
-            'unicode.Range', 'unsafe.ArbitraryType', 'vector.LessInterface',
-            'websocket.Conn', 'websocket.Draft75Handler', 'websocket.Handler',
-            'websocket.ProtocolError', 'websocket.WebSocketAddr', 'x509.Certificate',
-            'x509.ConstraintViolationError', 'x509.KeyUsage', 'x509.Name',
-            'x509.PublicKeyAlgorithm', 'x509.SignatureAlgorithm',
-            'x509.UnhandledCriticalExtension', 'x509.UnsupportedAlgorithmError', 'xml.Attr',
-            'xml.EndElement', 'xml.Name', 'xml.Parser', 'xml.ProcInst', 'xml.StartElement',
-            'xml.SyntaxError', 'xml.Token', 'xml.UnmarshalError', 'xtea.Cipher',
-            'xtea.KeySizeError'
-            )
-        ),
-    'SYMBOLS' => array(
-        # delimiters
-        1 => array(
-            '(', ')', '{', '}', '[', ']', ',', ':', ';'
-            ),
-        # assignments
-        2 => array(
-            '<<=', '!=', '%=', '&=', '&^=', '*=', '+=', '-=', '/=', ':=', '>>=',
-            '^=', '|=', '=', '++', '--'
-            ),
-        # operators
-        3 => array(
-            '<=', '<', '==', '>', '>=', '&&', '!', '||', '&', '&^', '|', '^',
-            '>>', '<<', '*', '%', '+', '-', '.', '/', '<-'),
-        # vararg
-        4 => array(
-            '...'
-            )
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => true,
-        2 => true,
-        3 => true,
-        4 => true,
-        5 => true
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            # statements
-            1 => 'color: #b1b100; font-weight: bold;',
-            # literals
-            2 => 'color: #000000; font-weight: bold;',
-            # built-in functions
-            3 => 'color: #000066;',
-            # built-in types
-            4 => 'color: #993333;',
-            # library types
-            5 => 'color: #003399;'
-            ),
-        'COMMENTS' => array(
-            # single-line comments
-            1 => 'color: #666666; font-style: italic;',
-            # raw strings
-            2 => 'color: #0000ff;',
-            # multi-line comments
-            'MULTI' => 'color: #666666; font-style: italic;'
-            ),
-        'ESCAPE_CHAR' => array(
-            # simple escape
-            1 => 'color: #000099; font-weight: bold;',
-            # octal escape
-            2 => 'color: #000099;',
-            # hex escape
-            3 => 'color: #000099;',
-            # unicode escape
-            4 => 'color: #000099;',
-            # long unicode escape
-            5 => 'color: #000099;'
-            ),
-        'BRACKETS' => array(
-            ),
-        'STRINGS' => array(
-            0 => 'color: #0000ff;',
-            0 => 'color: #cc66cc;' // FIXME: Duplicate array key
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #cc66cc;'
-            ),
-        'METHODS' => array(
-            0 => 'color: #004000;'
-            ),
-        'SYMBOLS' => array(
-            # delimiters
-            1 => 'color: #339933;',
-            # assignments
-            2 => 'color: #339933;',
-            # operators
-            3 => 'color: #339933;',
-            # vararg (highlighted as a keyword)
-            4 => 'color: #000000; font-weight: bold;'
-            ),
-        'REGEXPS' => array(
-            # If CSS classes are enabled, these would be highlighted as numbers (nu0)
-            # integer literals (possibly imaginary)
-            //0 => 'color: #cc66cc;',
-            # real floating point literals
-            //1 => 'color: #cc66cc;',
-            # imaginary floating point literals
-            //2 => 'color: #cc66cc;'
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => '',
-        4 => '',
-        5 => 'http://golang.org/search?q={FNAME}'
-        ),
-    'REGEXPS' => array(
-        ),
-    'OOLANG' => true,
-    'OBJECT_SPLITTERS' => array(1 => '.'),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(),
-    'HIGHLIGHT_STRICT_BLOCK' => array(),
-    'PARSER_CONTROL' => array(
-        'ENABLE_FLAGS' => array(
-            'BRACKETS' => GESHI_NEVER, # handled by symbols
-            )
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/groovy.php b/wiki/vendor/geshi/geshi/src/geshi/groovy.php
deleted file mode 100644
index 9f201bb..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/groovy.php
+++ /dev/null
@@ -1,1009 +0,0 @@
-<?php
-/*************************************************************************************
- * groovy.php
- * ----------
- * Author: Ivan F. Villanueva B. (geshi_groovy@artificialidea.com)
- * Copyright: (c) 2006 Ivan F. Villanueva B.(http://www.artificialidea.com)
- * Release Version: 1.0.9.0
- * Date Started: 2006/04/29
- *
- * Groovy language file for GeSHi.
- *
- * Keywords from http: http://docs.codehaus.org/download/attachments/2715/groovy-reference-card.pdf?version=1
- *
- * CHANGES
- * -------
- * 2008/05/23 (1.0.7.22)
- *   -  Added description of extra language features (SF#1970248)
- * 2006/04/29 (1.0.0)
- *   -  First Release
- *
- * TODO (updated 2006/04/29)
- * -------------------------
- * Testing
- *
- *************************************************************************************
- *
- *     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' => 'Groovy',
-    'COMMENT_SINGLE' => array(1 => '//', 3 => '#'),
-    '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',
-        ),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array("'''", '"""', "'", '"'),
-    'ESCAPE_CHAR' => '\\',
-    'KEYWORDS' => array(
-        1 => array(
-            'case', 'do', 'else', 'for', 'foreach', 'if', 'in', 'switch',
-            'while',
-            ),
-        2 => array(
-            'abstract', 'as', 'assert', 'break', 'catch', 'class', 'const',
-            'continue', 'def', 'default', 'enum', 'extends',
-            'false', 'final', 'finally', 'goto', 'implements', 'import',
-            'instanceof', 'interface', 'native', 'new', 'null',
-            'package', 'private', 'property', 'protected',
-            'public', 'return', 'static', 'strictfp', 'super',
-            'synchronized', 'this', 'throw', 'throws',
-            'transient', 'true', 'try', 'volatile'
-            ),
-        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', 'Any', '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', 'Boolean', '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', 'Byte',
-            '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', 'Double', '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', 'Float',
-            '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', 'Long', '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', 'Short', '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(
-            'boolean', 'byte', 'char', 'double', 'float', 'int', 'long',
-            'short', 'void'
-            ),
-        5 => array(
-            'allProperties', 'asImmutable', 'asSynchronized', 'collect',
-            'count', 'each', 'eachProperty', 'eachPropertyName',
-            'eachWithIndex', 'find', 'findAll', 'findIndexOf',
-            'flatten', 'get', 'grep', 'inject', 'intersect',
-            'join', 'max', 'min', 'pop', 'reverse',
-            'reverseEach', 'size', 'sort', 'subMap', 'toList'
-            ),
-        6 => array(
-            'center', 'contains', 'eachMatch', 'padLeft', 'padRight',
-            'toCharacter', 'tokenize', 'toLong', 'toURL'
-            ),
-        7 => array(
-            'append', 'eachByte', 'eachFile', 'eachFileRecurse', 'eachLine',
-            'eachLines', 'encodeBase64', 'filterLine', 'getText',
-            'splitEachLine', 'transformChar', 'transformLine',
-            'withOutputStream', 'withPrintWriter', 'withReader',
-            'withStream', 'withStreams', 'withWriter',
-            'withWriterAppend', 'write', 'writeLine'
-            ),
-        8 => array(
-            'dump', 'getLastMatcher', 'inspect', 'invokeMethod', 'print',
-            'println', 'start', 'startDaemon', 'step', 'times',
-            'upto', 'use'
-            ),
-        9 => array(
-            'call', 'close', 'eachRow', 'execute', 'executeUpdate', 'Sql'
-            )
-        ),
-    'SYMBOLS' => array(
-        '(', ')', '[', ']', '{', '}', '*', '&', '%', '!', ';', '<', '>', '?', '|', '=',
-        '=>', '||', '-', '+', '<<', '<<<', '&&'
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => true,
-        1 => false,
-        2 => false,
-        3 => true,
-        4 => true,
-        5 => true,
-        6 => true,
-        7 => true,
-        8 => true,
-        9 => true
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #b1b100;',
-            2 => 'color: #000000; font-weight: bold;',
-            3 => 'color: #aaaadd; font-weight: bold;',
-            4 => 'color: #993333;',
-            5 => 'color: #663399;',
-            6 => 'color: #CC0099;',
-            7 => 'color: #FFCC33;',
-            8 => 'color: #993399;',
-            9 => 'color: #993399; font-weight: bold;'
-            ),
-        'COMMENTS' => array(
-            1=> 'color: #808080; font-style: italic;',
-            2=> 'color: #a1a100;',
-            3=> 'color: #808080; font-style: italic;',
-            'MULTI' => 'color: #808080; font-style: italic;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #000099; font-weight: bold;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #66cc66;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #ff0000;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #cc66cc;'
-            ),
-        'METHODS' => array(
-            1 => 'color: #006600;',
-            2 => 'color: #006600;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #66cc66;'
-            ),
-        'SCRIPT' => array(
-            ),
-        'REGEXPS' => array(
-            0 => 'color: #0000ff;'
-            )
-        ),
-    'URLS' => array(
-        1 => 'http://www.google.de/search?q=site%3Agroovy.codehaus.org/%20{FNAMEL}',
-        2 => 'http://www.google.de/search?q=site%3Agroovy.codehaus.org/%20{FNAMEL}',
-        3 => 'http://www.google.de/search?as_q={FNAME}&amp;num=100&amp;hl=en&amp;as_occt=url&amp;as_sitesearch=java.sun.com%2Fj2se%2F1%2E5%2E0%2Fdocs%2Fapi%2F',
-        4 => 'http://www.google.de/search?q=site%3Agroovy.codehaus.org/%20{FNAME}',
-        5 => 'http://www.google.de/search?q=site%3Agroovy.codehaus.org/%20{FNAME}',
-        6 => 'http://www.google.de/search?q=site%3Agroovy.codehaus.org/%20{FNAME}',
-        7 => 'http://www.google.de/search?q=site%3Agroovy.codehaus.org/%20{FNAME}',
-        8 => 'http://www.google.de/search?q=site%3Agroovy.codehaus.org/%20{FNAME}',
-        9 => 'http://www.google.de/search?q=site%3Agroovy.codehaus.org/%20{FNAME}'
-        ),
-    'OOLANG' => true,
-    'OBJECT_SPLITTERS' => array(
-        1 => '.'
-        ),
-    'REGEXPS' => array(
-        //Variables
-        0 => '\\$\\{[a-zA-Z_][a-zA-Z0-9_]*\\}'
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/gwbasic.php b/wiki/vendor/geshi/geshi/src/geshi/gwbasic.php
deleted file mode 100644
index 9bf2c15..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/gwbasic.php
+++ /dev/null
@@ -1,151 +0,0 @@
-<?php
-/*************************************************************************************
- * gwbasic.php
- * ----------
- * 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.9.0
- * Date Started: 2010/01/30
- *
- * GwBasic language file for GeSHi.
- *
- * CHANGES
- * -------
- * REM was not classified as comment.
- * APPEND and RANDOM missing.
- *
- *************************************************************************************
- *
- *     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' => 'GwBasic',
-    'COMMENT_SINGLE' => array(1 => "'", 2=> "REM"),
-    'COMMENT_MULTI' => array(),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array('"'),
-    'ESCAPE_CHAR' => '',
-    'KEYWORDS' => array(
-    /* Statements */
-        1 => array('END','FOR','NEXT','DATA','INPUT','DIM','READ','LET',
-            'GOTO','RUN','IF','RESTORE','GOSUB','RETURN','REM',
-            'STOP','PRINT','CLEAR','LIST','NEW','ON','WAIT','DEF',
-            'POKE','CONT','OUT','LPRINT','LLIST','WIDTH','ELSE',
-            'TRON','TROFF','SWAP','ERASE','EDIT','ERROR','RESUME',
-            'DELETE','AUTO','RENUM','DEFSTR','DEFINT','DEFSNG',
-            'DEFDBL','LINE','WHILE','WEND','CALL','WRITE','OPTION',
-            'RANDOMIZE','OPEN','CLOSE','LOAD','MERGE','SAVE',
-            'COLOR','CLS','MOTOR','BSAVE','BLOAD','SOUND','BEEP',
-            'PSET','PRESET','SCREEN','KEY','LOCATE','TO','THEN',
-            'STEP','USR','FN','SPC','NOT','ERL','ERR','STRING',
-            'USING','INSTR','VARPTR','CSRLIN','POINT','OFF',
-            'FILES','FIELD','SYSTEM','NAME','LSET','RSET','KILL',
-            'PUT','GET','RESET','COMMON','CHAIN','PAINT','COM',
-            'CIRCLE','DRAW','PLAY','TIMER','IOCTL','CHDIR','MKDIR',
-            'RMDIR','SHELL','VIEW','WINDOW','PMAP','PALETTE','LCOPY',
-            'CALLS','PCOPY','LOCK','UNLOCK','RANDOM','APPEND',
-            ),
-        2 => array(
-            /* Functions */
-            'CVI','CVS','CVD','MKI','MKS','MKD','ENVIRON',
-            'LEFT','RIGHT','MID','SGN','INT','ABS',
-            'SQR','SIN','LOG','EXP','COS','TAN','ATN',
-            'FRE','INP','POS','LEN','STR','VAL','ASC',
-            'CHR','PEEK','SPACE','OCT','HEX','LPOS',
-            'CINT','CSNG','CDBL','FIX','PEN','STICK',
-            'STRIG','EOF','LOC','LOF'
-            ),
-        3 => array(
-            /* alpha Operators */
-            'AND','OR','XOR','EQV','IMP','MOD'
-            ),
-        4 => array(
-            /* parameterless functions */
-            'INKEY','DATE','TIME','ERDEV','RND'
-            )
-        ),
-    'SYMBOLS' => array(
-        0 => array(
-            '>','=','<','+','-','*','/','^','\\'
-            ),
-        1 => array(
-            '?'
-            )
-        ),
-    'CASE_SENSITIVE' => array(
-            GESHI_COMMENTS => false,
-            1 => false,
-            2 => false,
-            3 => false,
-            4 => false
-            ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #00a1a1;font-weight: bold',
-            2 => 'color: #000066;font-weight: bold',
-            3 => 'color: #00a166;font-weight: bold',
-            4 => 'color: #0066a1;font-weight: bold'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #808080;',
-            2 => 'color: #808080;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #66cc66;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #ff0000;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #cc66cc;'
-            ),
-        'METHODS' => array(
-            ),
-        'SYMBOLS' => array(
-        /* Same as KEYWORDS[3] (and, or, not...) */
-            0 => 'color: #00a166;font-weight: bold',
-            1 => 'color: #00a1a1;font-weight: bold',
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #000099;'
-            ),
-        'SCRIPT' => array(
-            ),
-        'REGEXPS' => array(
-            1 => 'color: #708090'
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => '',
-        4 => '',
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(
-        ),
-    'REGEXPS' => array(
-        1 => '^[0-9]+ '
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/haskell.php b/wiki/vendor/geshi/geshi/src/geshi/haskell.php
deleted file mode 100644
index 7b7c904..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/haskell.php
+++ /dev/null
@@ -1,193 +0,0 @@
-<?php
-/*************************************************************************************
- * haskell.php
- * ----------
- * 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.9.0
- * Date Started: 2014/05/12
- *
- * Haskell 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' => 'Haskell',
-    'COMMENT_SINGLE' => array( 1 => '--'),
-    'COMMENT_MULTI' => array('{-' => '-}'),
-    'COMMENT_REGEXP' => array(
-        2 => "/-->/",
-        3 => "/{-(?:(?R)|.)-}/s", //Nested Comments
-        ),
-    'CASE_KEYWORDS' => 0,
-    'QUOTEMARKS' => array('"'),
-    'ESCAPE_CHAR' => '\\',
-    'KEYWORDS' => array(
-        /* main haskell keywords */
-        1 => array(
-            'as',
-            'case', 'of', 'class', 'data', 'default',
-            'deriving', 'do', 'forall', 'hiding', 'if', 'then',
-            'else', 'import', 'infix', 'infixl', 'infixr',
-            'instance', 'let', 'in', 'module', 'newtype',
-            'qualified', 'type', 'where'
-            ),
-        /* define names of main libraries, so we can link to it */
-        2 => array(
-            'Foreign', 'Numeric', 'Prelude'
-            ),
-        /* just link to Prelude functions, cause it's the default opened library when starting Haskell */
-        3 => array(
-            'not', 'otherwise', 'maybe',
-            'either', 'fst', 'snd', 'curry', 'uncurry',
-            'compare',
-            'max', 'min', 'succ', 'pred', 'toEnum', 'fromEnum',
-            'enumFrom', 'enumFromThen', 'enumFromTo',
-            'enumFromThenTo', 'minBound', 'maxBound',
-            'negate', 'abs', 'signum',
-            'fromInteger', 'toRational', 'quot', 'rem',
-            'div', 'mod', 'quotRem', 'divMod', 'toInteger',
-            'recip', 'fromRational', 'pi', 'exp',
-            'log', 'sqrt', 'logBase', 'sin', 'cos',
-            'tan', 'asin', 'acos', 'atan', 'sinh', 'cosh',
-            'tanh', 'asinh', 'acosh', 'atanh',
-            'properFraction', 'truncate', 'round', 'ceiling',
-            'floor', 'floatRadix', 'floatDigits', 'floatRange',
-            'decodeFloat', 'encodeFloat', 'exponent',
-            'significand', 'scaleFloat', 'isNaN', 'isInfinite',
-            'isDenomalized', 'isNegativeZero', 'isIEEE',
-            'atan2', 'subtract', 'even', 'odd', 'gcd',
-            'lcm', 'fromIntegral', 'realToFrac',
-            'return', 'fail', 'fmap',
-            'mapM', 'mapM_', 'sequence', 'sequence_',
-            'id', 'const','flip',
-            'until', 'asTypeOf', 'error', 'undefined',
-            'seq','map','filter', 'head',
-            'last', 'tail', 'init', 'null', 'length',
-            'reverse', 'foldl', 'foldl1', 'foldr',
-            'foldr1', 'and', 'or', 'any', 'all', 'sum',
-            'product', 'concat', 'concatMap', 'maximum',
-            'minimum', 'scanl', 'scanl1', 'scanr', 'scanr1',
-            'iterate', 'repeat', 'cycle', 'take', 'drop',
-            'splitAt', 'takeWhile', 'dropWhile', 'span',
-            'break', 'elem', 'notElem', 'lookup', 'zip',
-            'zip3', 'zipWith', 'zipWith3', 'unzip', 'unzip3',
-            'lines', 'words', 'unlines',
-            'unwords', 'showPrec', 'show', 'showList',
-            'shows', 'showChar', 'showString', 'showParen',
-            'readsPrec', 'readList', 'reads', 'readParen',
-            'read', 'lex', 'putChar', 'putStr', 'putStrLn',
-            'print', 'getChar', 'getLine', 'getContents',
-            'interact', 'readFile', 'writeFile', 'appendFile',
-            'readIO', 'readLn', 'ioError', 'userError', 'catch'
-            ),
-        /* Prelude types */
-        4 => array (
-            'Bool', 'Maybe', 'Either', 'Ordering',
-            'Char', 'String',
-            'Int', 'Integer', 'Float', 'Double', 'Rational',
-            'ShowS', 'ReadS',
-            'IO', 'IOError', 'IOException'
-            ),
-        /* Prelude classes */
-        5 => array (
-            'Ord', 'Eq', 'Enum', 'Bounded',
-            'Num', 'Real', 'Integral', 'Fractional',
-            'Floating', 'RealFrac', 'RealFloat',
-            'Monad', 'Functor',
-            'Show', 'Read'
-            )
-        ),
-    /* Most symbol combinations can be valid Haskell operators */
-    'SYMBOLS' => array(
-        '!', '@', '#', '$', '%', '&', '*', '-', '+', '=',
-        '^', '~', '|', '\\', '>', '<', ':', '?', '/'
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => true, /* Haskell is a case sensitive language */
-        2 => true,
-        3 => true,
-        4 => true,
-        5 => true
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #06c; font-weight: bold;', /* nice blue */
-            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; font-weight: bold;' /* similarly for classes */
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #5d478b; font-style: italic;',
-            2 => 'color: #339933; font-weight: bold;',
-            3 => 'color: #5d478b; font-style: italic;', /* light purple */
-            'MULTI' => 'color: #5d478b; font-style: italic;' /* light purple */
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'background-color: #3cb371; font-weight: bold;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: green;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #3cb371;' /* nice green */
-            ),
-        'NUMBERS' => array(
-            0 => 'color: red;' /* pink */
-            ),
-        'METHODS' => array(
-            1 => 'color: #060;' /* dark green */
-            ),
-        'REGEXPS' => array(
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #339933; font-weight: bold;'
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'URLS' => array(
-        /* some of keywords are Prelude functions */
-        1 => '',
-        /* link to the wanted library */
-        2 => 'http://haskell.org/ghc/docs/latest/html/libraries/base/{FNAME}.html',
-        /* link to Prelude functions */
-        3 => 'http://haskell.org/ghc/docs/latest/html/libraries/base/Prelude.html#v:{FNAME}',
-        /* 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}'
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(
-        ),
-    'REGEXPS' => array(
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/haxe.php b/wiki/vendor/geshi/geshi/src/geshi/haxe.php
deleted file mode 100644
index c9376bd..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/haxe.php
+++ /dev/null
@@ -1,158 +0,0 @@
-<?php
-/*************************************************************************************
- * haxe.php
- * --------
- * Author: Andy Li (andy@onthewings.net)
- *         John Liao (colorhook@gmail.com)
- * Copyright: (c) 2012 onthewings (http://www.onthewings.net/)
- *                2010 colorhook (http://colorhook.com/)
- * Release Version: 1.0.9.0
- * Date Started: 2010/10/05
- *
- * Haxe language file for GeSHi.
- * Haxe version: 2.10
- *************************************************************************************
- *
- *   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' => 'Haxe',
-    'COMMENT_SINGLE' => array(1 => '//'),
-    'COMMENT_MULTI' => array('/*' => '*/'),
-    'COMMENT_REGEXP' => array(
-        //Import and Package directives (Basic Support only)
-        2 => '/(?:(?<=import[\\n\\s])|(?<=using[\\n\\s])|(?<=package[\\n\\s]))[\\n\\s]*([a-zA-Z0-9_]+\\.)*([a-zA-Z0-9_]+|\*)(?=[\n\s;])/i',
-        // Haxe comments
-        3 => '#/\*\*(?![\*\/]).*\*/#sU',
-        ),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array("'", '"'),
-    'ESCAPE_CHAR' => '\\',
-    'KEYWORDS' => array(
-        1 => array(
-            //http://haxe.org/ref/keywords
-            'break', 'callback', 'case', 'cast', 'catch', 'class', 'continue', 'default', 'do', 'dynamic',
-            'else', 'enum', 'extends', 'extern', /*'false',*/ 'for', 'function', 'here', 'if',
-            'implements', 'import', 'in', 'inline', 'interface', 'never', 'new', /*'null',*/ 'override',
-            'package', 'private', 'public', 'return', 'static', 'super', 'switch', 'this', 'throw',
-            'trace', /*'true',*/ 'try', 'typedef', 'untyped', 'using', 'var', 'while',
-            'macro', '$type',
-            ),
-        2 => array(
-            //primitive values
-            'null', 'false', 'true',
-            ),
-        3 => array(
-            //global types
-            'Array', 'ArrayAccess', /*'Bool',*/ 'Class', 'Date', 'DateTools', 'Dynamic',
-            'EReg', 'Enum', 'EnumValue', /*'Float',*/ 'Hash', /*'Int',*/ 'IntHash', 'IntIter',
-            'Iterable', 'Iterator', 'Lambda', 'List', 'Math', 'Null', 'Reflect', 'Std',
-            /*'String',*/ 'StringBuf', 'StringTools', 'Sys', 'Type', /*'UInt',*/ 'ValueType',
-            /*'Void',*/ 'Xml', 'XmlType',
-            ),
-        4 => array(
-            //primitive types
-            'Void', 'Bool', 'Int', 'Float', 'UInt', 'String',
-            ),
-        5 => array(
-            //compiler switches
-            "#if", "#elseif", "#else", "#end", "#error",
-            ),
-        ),
-    'SYMBOLS' => array(
-        //http://haxe.org/manual/operators
-        '++', '--',
-        '%',
-        '*', '/',
-        '+', '-',
-        '<<', '>>', '>>>',
-        '|', '&', '^',
-        '==', '!=', '>', '>=', '<', '<=',
-        '...',
-        '&&',
-        '||',
-        '?', ':',
-        '=', '+=', '-=', '/=', '*=', '<<=', '>>=', '>>>=', '|=', '&=', '^=',
-        '(', ')', '[', ']', '{', '}', ';',
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => true,
-        2 => true,
-        3 => true,
-        4 => true,
-        5 => true,
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #6699cc; font-weight: bold;',
-            2 => 'color: #000066; font-weight: bold;',
-            3 => 'color: #03F; ',
-            4 => 'color: #000033; font-weight: bold;',
-            5 => 'color: #330000; 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: #000000;',
-            ),
-        'STRINGS' => array(
-            0 => 'color: #FF0000;',
-            ),
-        '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 => '',
-        4 => '',
-        5 => '',
-        ),
-    'OOLANG' => true,
-    'OBJECT_SPLITTERS' => array(
-        1 => '.',
-        ),
-    'REGEXPS' => array(
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        ),
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/hicest.php b/wiki/vendor/geshi/geshi/src/geshi/hicest.php
deleted file mode 100644
index b8639bb..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/hicest.php
+++ /dev/null
@@ -1,106 +0,0 @@
-<?php
-/*************************************************************************************
- * hicest.php
- * --------
- * Author: Georg Petrich (spt@hicest.com)
- * Copyright: (c) 2010 Georg Petrich (http://www.HicEst.com)
- * Release Version: 1.0.9.0
- * Date Started: 2010/03/15
- *
- * HicEst language file for GeSHi.
- *
- * CHANGES
- * -------
- * yyyy/mm/dd (v.v.v.v)
- *  -  First Release
- *
- * TODO (updated yyyy/mm/dd)
- * -------------------------
- *
- *************************************************************************************
- *
- *     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' => 'HicEst',
-    'COMMENT_SINGLE' => array(1 => '!'),
-    'COMMENT_MULTI' => array(),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array('"', '\''),
-    'ESCAPE_CHAR' => '',
-    'KEYWORDS' => array(
-        1 => array(
-            '$cmd_line', 'abs', 'acos', 'alarm', 'alias', 'allocate', 'appendix', 'asin', 'atan', 'axis', 'beep',
-            'call', 'ceiling', 'char', 'character', 'com', 'continue', 'cos', 'cosh', 'data', 'diffeq', 'dimension', 'dlg', 'dll',
-            'do', 'edit', 'else', 'elseif', 'end', 'enddo', 'endif', 'exp', 'floor', 'function', 'fuz', 'goto', 'iand', 'ichar',
-            'ieor', 'if', 'index', 'init', 'int', 'intpol', 'ior', 'key', 'len', 'len_trim', 'line', 'lock', 'log', 'max', 'maxloc',
-            'min', 'minloc', 'mod', 'nint', 'not', 'open', 'pop', 'ran', 'read', 'real', 'return', 'rgb', 'roots', 'sign', 'sin',
-            'sinh', 'solve', 'sort', 'subroutine', 'sum', 'system', 'tan', 'tanh', 'then', 'time', 'use', 'window', 'write', 'xeq'
-            )
-        ),
-    'SYMBOLS' => array(
-        1 => array(
-            '(', ')', '+', '-', '*', '/', '=', '<', '>', '!', '^', ':', ','
-            ),
-        2 => array(
-            '$', '$$'
-            )
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #ff0000;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #666666; font-style: italic;',
-            '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(
-            0 => 'color: #004000;'
-            ),
-        'SYMBOLS' => array(
-            1 => 'color: #339933;',
-            2 => 'color: #ff0000;'
-            ),
-        'REGEXPS' => array(),
-        'SCRIPT' => array()
-        ),
-    'URLS' => array(1 => ''),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(),
-    'REGEXPS' => array(),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(),
-    'HIGHLIGHT_STRICT_BLOCK' => array()
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/hq9plus.php b/wiki/vendor/geshi/geshi/src/geshi/hq9plus.php
deleted file mode 100644
index 843f2d6..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/hq9plus.php
+++ /dev/null
@@ -1,102 +0,0 @@
-<?php
-/*************************************************************************************
- * hq9plus.php
- * ----------
- * Author: Benny Baumann (BenBE@geshi.org)
- * Copyright: (c) 2008 Benny Baumann (http://qbnz.com/highlighter/)
- * Release Version: 1.0.9.0
- * Date Started: 2009/10/31
- *
- * HQ9+ language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2008/10/31 (1.0.8.1)
- *   -  First Release
- *
- * TODO
- * ----
- *
- *************************************************************************************
- *
- *     This file is part of GeSHi.
- *
- *   GeSHi is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   GeSHi is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with GeSHi; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- ************************************************************************************/
-$language_data = array (
-    'LANG_NAME' => 'HQ9+',
-    'COMMENT_SINGLE' => array(),
-    'COMMENT_MULTI' => array(),
-    'COMMENT_REGEXP' => array(),
-    'CASE_KEYWORDS' => GESHI_CAPS_UPPER,
-    'QUOTEMARKS' => array(),
-    'ESCAPE_CHAR' => '',
-    'KEYWORDS' => array(
-        ),
-    'SYMBOLS' => array(
-        'H', 'Q', '9', '+', 'h', 'q'
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            ),
-        'COMMENTS' => array(
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #66cc66;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #ff0000;'
-            ),
-        'NUMBERS' => array(
-            ),
-        'METHODS' => array(
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #a16000;'
-            ),
-        'ESCAPE_CHAR' => array(
-            ),
-        'SCRIPT' => array(
-            ),
-        'REGEXPS' => array(
-            )
-        ),
-    'URLS' => array(
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(
-        ),
-    'REGEXPS' => array(
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        ),
-    'TAB_WIDTH' => 4,
-    'PARSER_CONTROL' => array(
-        'ENABLE_FLAGS' => array(
-            'KEYWORDS' => GESHI_NEVER,
-            'COMMENTS' => GESHI_NEVER,
-            'STRINGS' => GESHI_NEVER,
-            'REGEXPS' => GESHI_NEVER,
-            'NUMBERS' => GESHI_NEVER
-            )
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/html4strict.php b/wiki/vendor/geshi/geshi/src/geshi/html4strict.php
deleted file mode 100644
index 42ff9c7..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/html4strict.php
+++ /dev/null
@@ -1,188 +0,0 @@
-<?php
-/*************************************************************************************
- * html4strict.php
- * ---------------
- * Author: Nigel McNie (nigel@geshi.org)
- * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter/)
- * Release Version: 1.0.9.0
- * Date Started: 2004/07/10
- *
- * HTML 4.01 strict language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2005/12/28 (1.0.4)
- *   -  Removed escape character for strings
- * 2004/11/27 (1.0.3)
- *   -  Added support for multiple object splitters
- * 2004/10/27 (1.0.2)
- *   -  Added support for URLs
- * 2004/08/05 (1.0.1)
- *   -  Added INS and DEL
- *   -  Removed the background colour from tags' styles
- * 2004/07/14 (1.0.0)
- *   -  First Release
- *
- * TODO (updated 2004/11/27)
- * -------------------------
- * * Check that only HTML4 strict attributes are highlighted
- * * Eliminate empty tags that aren't allowed in HTML4 strict
- * * Split to several files - html4trans, xhtml1 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' => 'HTML',
-    'COMMENT_SINGLE' => array(),
-    'COMMENT_MULTI' => array(),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array("'", '"'),
-    'ESCAPE_CHAR' => '',
-    'KEYWORDS' => array(
-        2 => array(
-            'a', 'abbr', 'acronym', 'address', 'applet', 'area',
-            'base', 'basefont', 'bdo', 'big', 'blockquote', 'body', 'br', 'button', 'b',
-            'caption', 'center', 'cite', 'code', 'colgroup', 'col',
-            'dd', 'del', 'dfn', 'dir', 'div', 'dl', 'dt',
-            'em',
-            'fieldset', 'font', 'form', 'frame', 'frameset',
-            'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'hr', 'html',
-            'iframe', 'ilayer', 'img', 'input', 'ins', 'isindex', 'i',
-            'kbd',
-            'label', 'legend', 'link', 'li',
-            'map', 'meta',
-            'noframes', 'noscript',
-            'object', 'ol', 'optgroup', 'option',
-            'param', 'pre', 'p',
-            'q',
-            'samp', 'script', 'select', 'small', 'span', 'strike', 'strong', 'style', 'sub', 'sup', 's',
-            'table', 'tbody', 'td', 'textarea', 'text', 'tfoot', 'thead', 'th', 'title', 'tr', 'tt',
-            'ul', 'u',
-            'var',
-            ),
-        3 => array(
-            'abbr', 'accept-charset', 'accept', 'accesskey', 'action', 'align', 'alink', 'alt', 'archive', 'axis',
-            'background', 'bgcolor', 'border',
-            'cellpadding', 'cellspacing', 'char', 'charoff', 'charset', 'checked', 'cite', 'class', 'classid', 'clear', 'code', 'codebase', 'codetype', 'color', 'cols', 'colspan', 'compact', 'content', 'coords',
-            'data', 'datetime', 'declare', 'defer', 'dir', 'disabled',
-            'enctype',
-            'face', 'for', 'frame', 'frameborder',
-            'headers', 'height', 'href', 'hreflang', 'hspace', 'http-equiv',
-            'id', 'ismap',
-            'label', 'lang', 'language', 'link', 'longdesc',
-            'marginheight', 'marginwidth', 'maxlength', 'media', 'method', 'multiple',
-            'name', 'nohref', 'noresize', 'noshade', 'nowrap',
-            'object', 'onblur', 'onchange', 'onclick', 'ondblclick', 'onfocus', 'onkeydown', 'onkeypress', 'onkeyup', 'onload', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'onreset', 'onselect', 'onsubmit', 'onunload',
-            'profile', 'prompt',
-            'readonly', 'rel', 'rev', 'rowspan', 'rows', 'rules',
-            'scheme', 'scope', 'scrolling', 'selected', 'shape', 'size', 'span', 'src', 'standby', 'start', 'style', 'summary',
-            'tabindex', 'target', 'text', 'title', 'type',
-            'usemap',
-            'valign', 'value', 'valuetype', 'version', 'vlink', 'vspace',
-            'width'
-            )
-        ),
-    'SYMBOLS' => array(
-        '/', '='
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        2 => false,
-        3 => false,
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            2 => 'color: #000000; font-weight: bold;',
-            3 => 'color: #000066;'
-            ),
-        'COMMENTS' => array(
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #000099; font-weight: bold;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #66cc66;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #ff0000;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #cc66cc;'
-            ),
-        'METHODS' => array(
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #66cc66;'
-            ),
-        'SCRIPT' => array(
-            -2 => 'color: #404040;', // CDATA
-            -1 => 'color: #808080; font-style: italic;', // comments
-            0 => 'color: #00bbdd;',
-            1 => 'color: #ddbb00;',
-            2 => 'color: #009900;'
-            ),
-        'REGEXPS' => array(
-            )
-        ),
-    'URLS' => array(
-        2 => 'http://december.com/html/4/element/{FNAMEL}.html',
-        3 => ''
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(
-        ),
-    'REGEXPS' => array(
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_ALWAYS,
-    'SCRIPT_DELIMITERS' => array(
-        -2 => array(
-            '<![CDATA[' => ']]>'
-            ),
-        -1 => array(
-            '<!--' => '-->'
-            ),
-        0 => array(
-            '<!DOCTYPE' => '>'
-            ),
-        1 => array(
-            '&' => ';'
-            ),
-        2 => array(
-            '<' => '>'
-            )
-    ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        -2 => false,
-        -1 => false,
-        0 => false,
-        1 => false,
-        2 => true
-        ),
-    'TAB_WIDTH' => 4,
-    'PARSER_CONTROL' => array(
-        'KEYWORDS' => array(
-            2 => array(
-                'DISALLOWED_BEFORE' => '(?<=&lt;|&lt;\/)',
-                'DISALLOWED_AFTER' => '(?=\s|\/|&gt;)',
-            )
-        )
-    )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/html5.php b/wiki/vendor/geshi/geshi/src/geshi/html5.php
deleted file mode 100644
index 25d33cb..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/html5.php
+++ /dev/null
@@ -1,210 +0,0 @@
-<?php
-/*************************************************************************************
- * html5.php
- * ---------------
- * Author: Nigel McNie (nigel@geshi.org)
- * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter/)
- * Release Version: 1.0.9.0
- * Date Started: 2004/07/10
- *
- * HTML 5 language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2005/12/28 (1.0.4)
- *   -  Removed escape character for strings
- * 2004/11/27 (1.0.3)
- *   -  Added support for multiple object splitters
- * 2004/10/27 (1.0.2)
- *   -  Added support for URLs
- * 2004/08/05 (1.0.1)
- *   -  Added INS and DEL
- *   -  Removed the background colour from tags' styles
- * 2004/07/14 (1.0.0)
- *   -  First Release
- *
- * TODO (updated 2004/11/27)
- * -------------------------
- * * Check that only HTML4 strict attributes are highlighted
- * * Eliminate empty tags that aren't allowed in HTML4 strict
- * * Split to several files - html4trans, xhtml1 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' => 'HTML5',
-    'COMMENT_SINGLE' => array(),
-    'COMMENT_MULTI' => array(),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array("'", '"'),
-    'ESCAPE_CHAR' => '',
-    'KEYWORDS' => array(
-        2 => array(
-            'a', 'abbr', 'address', 'article', 'area', 'aside', 'audio',
-
-            'base', 'bdo', 'blockquote', 'body', 'br', 'button', 'b',
-
-            'caption', 'cite', 'code', 'colgroup', 'col', 'canvas', 'command', 'datalist', 'details',
-
-            'dd', 'del', 'dfn', 'div', 'dl', 'dt',
-
-            'em', 'embed',
-
-            'fieldset', 'form', 'figcaption', 'figure', 'footer',
-
-            'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'hr', 'html', 'header', 'hgroup',
-
-            'iframe', 'ilayer', 'img', 'input', 'ins', 'isindex', 'i',
-
-            'kbd', 'keygen',
-
-            'label', 'legend', 'link', 'li',
-
-            'map', 'meta', 'mark', 'meter',
-
-            'noscript', 'nav',
-
-            'object', 'ol', 'optgroup', 'option', 'output',
-
-            'param', 'pre', 'p', 'progress',
-
-            'q',
-
-            'rp', 'rt', 'ruby',
-
-            'samp', 'script', 'select', 'small', 'span', 'strong', 'style', 'sub', 'sup', 's', 'section', 'source', 'summary',
-
-            'table', 'tbody', 'td', 'textarea', 'text', 'tfoot', 'thead', 'th', 'title', 'tr', 'time',
-
-            'ul',
-
-            'var', 'video',
-
-            'wbr',
-            ),
-        3 => array(
-            'abbr', 'accept-charset', 'accept', 'accesskey', 'action', 'align', 'alink', 'alt', 'archive', 'axis', 'autocomplete', 'autofocus',
-            'background', 'bgcolor', 'border',
-            'cellpadding', 'cellspacing', 'char', 'charoff', 'charset', 'checked', 'cite', 'class', 'classid', 'clear', 'code', 'codebase', 'codetype', 'color', 'cols', 'colspan', 'compact', 'content', 'coords', 'contenteditable', 'contextmenu',
-            'data', 'datetime', 'declare', 'defer', 'dir', 'disabled', 'draggable', 'dropzone',
-            'enctype',
-            'face', 'for', 'frame', 'frameborder', 'form', 'formaction', 'formenctype', 'formmethod', 'formnovalidate', 'formtarget',
-            'headers', 'height', 'href', 'hreflang', 'hspace', 'http-equiv', 'hidden',
-            'id', 'ismap',
-            'label', 'lang', 'language', 'link', 'longdesc',
-            'marginheight', 'marginwidth', 'maxlength', 'media', 'method', 'multiple', 'min', 'max',
-            'name', 'nohref', 'noresize', 'noshade', 'nowrap', 'novalidate',
-            'object', 'onblur', 'onchange', 'onclick', 'ondblclick', 'onfocus', 'onkeydown', 'onkeypress', 'onkeyup', 'onload', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'onselect', 'onsubmit', 'onunload', 'onafterprint', 'onbeforeprint', 'onbeforeonload', 'onerror', 'onhaschange', 'onmessage', 'onoffline', 'ononline', 'onpagehide', 'onpageshow', 'onpopstate', 'onredo', 'onresize', 'onstorage', 'onundo', 'oncontextmenu', 'onformchange', 'onforminput', 'oninput', 'oninvalid', 'ondrag', 'ondragend', 'ondragenter', 'ondragleave', 'ondragover', 'ondragstart', 'ondrop', 'onmousewheel', 'onscroll', 'oncanplay', 'oncanplaythrough', 'ondurationchange', 'onemptied', 'onended', 'onloadeddata', 'onloadedmetadata', 'onloadstart', 'onpause', 'onplay', 'onplaying', 'onprogress', 'onratechange', 'onreadystatechange', 'onseeked', 'onseeking', 'onstalled', 'onsuspend', 'ontimeupdate', 'onvolumechange', 'onwaiting',
-            'profile', 'prompt', 'pattern', 'placeholder',
-            'readonly', 'rel', 'rev', 'rowspan', 'rows', 'rules', 'required',
-            'scheme', 'scope', 'scrolling', 'selected', 'shape', 'size', 'span', 'src', 'standby', 'start', 'style', 'summary', 'spellcheck', 'step',
-            'tabindex', 'target', 'text', 'title', 'type',
-            'usemap',
-            'valign', 'value', 'valuetype', 'version', 'vlink', 'vspace',
-            'width'
-            )
-        ),
-    'SYMBOLS' => array(
-        '/', '='
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        2 => false,
-        3 => false,
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            2 => 'color: #000000; font-weight: bold;',
-            3 => 'color: #000066;'
-            ),
-        'COMMENTS' => array(
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #000099; font-weight: bold;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #66cc66;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #ff0000;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #cc66cc;'
-            ),
-        'METHODS' => array(
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #66cc66;'
-            ),
-        'SCRIPT' => array(
-            -2 => 'color: #404040;', // CDATA
-            -1 => 'color: #808080; font-style: italic;', // comments
-            0 => 'color: #00bbdd;',
-            1 => 'color: #ddbb00;',
-            2 => 'color: #009900;'
-            ),
-        'REGEXPS' => array(
-            )
-        ),
-    'URLS' => array(
-        2 => 'http://december.com/html/4/element/{FNAMEL}.html',
-        3 => ''
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(
-        ),
-    'REGEXPS' => array(
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_ALWAYS,
-    'SCRIPT_DELIMITERS' => array(
-        -2 => array(
-            '<![CDATA[' => ']]>'
-            ),
-        -1 => array(
-            '<!--' => '-->'
-            ),
-        0 => array(
-            '<!DOCTYPE' => '>'
-            ),
-        1 => array(
-            '&' => ';'
-            ),
-        2 => array(
-            '<' => '>'
-            )
-    ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        -2 => false,
-        -1 => false,
-        0 => false,
-        1 => false,
-        2 => true
-        ),
-    'TAB_WIDTH' => 4,
-    'PARSER_CONTROL' => array(
-        'KEYWORDS' => array(
-            2 => array(
-                'DISALLOWED_BEFORE' => '(?<=&lt;|&lt;\/)',
-                'DISALLOWED_AFTER' => '(?=\s|\/|&gt;)',
-            )
-        )
-    )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/icon.php b/wiki/vendor/geshi/geshi/src/geshi/icon.php
deleted file mode 100644
index 1022690..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/icon.php
+++ /dev/null
@@ -1,210 +0,0 @@
-<?php
-/*************************************************************************************
- * icon.php
- * --------
- * Author: Matt Oates (mattoates@gmail.com)
- * Copyright: (c) 2010 Matt Oates (http://mattoates.co.uk)
- * Release Version: 1.0.9.0
- * Date Started: 2010/04/24
- *
- * Icon language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2010/04/24 (0.0.0.2)
- *  -  Validated with Geshi langcheck.php FAILED due to preprocessor keywords looking like symbols
- *  -  Hard wrapped to improve readability
- * 2010/04/20 (0.0.0.1)
- *  -  First Release
- *
- * TODO (updated 2010/04/20)
- * -------------------------
- * - Do the &amp; need replacing with &?
- *
- *************************************************************************************
- *
- *     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' => 'Icon',
-    'COMMENT_SINGLE' => array(1 => '#'),
-    'COMMENT_MULTI' => array(),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array('"', '\''),
-    'ESCAPE_CHAR' => '\\',
-    'KEYWORDS' => array(
-        1 => array(
-            'break', 'case', 'continue', 'create', 'default', 'do', 'else',
-            'end', 'every', 'fail', 'for', 'if', 'import', 'initial',
-            'initially', 'invocable', 'link', 'next', 'not', 'of', 'package',
-            'procedure', 'record', 'repeat', 'return', 'switch', 'suspend',
-            'then', 'to', 'until', 'while'
-            ),
-        2 => array(
-            'global', 'local', 'static'
-            ),
-        3 => array(
-            'allocated', 'ascii', 'clock', 'collections',
-            'column', 'cset', 'current', 'date', 'dateline', 'digits',
-            'dump', 'e', 'error', 'errornumber', 'errortext',
-            'errorvalue', 'errout', 'eventcode', 'eventsource', 'eventvalue',
-            'fail', 'features', 'file', 'host', 'input', 'lcase',
-            'letters', 'level', 'line', 'main', 'now', 'null',
-            'output', 'phi', 'pi', 'pos', 'progname', 'random',
-            'regions', 'source', 'storage', 'subject', 'syserr', 'time',
-            'trace', 'ucase', 'version', 'col', 'control', 'interval',
-            'ldrag', 'lpress', 'lrelease', 'mdrag', 'meta', 'mpress',
-            'mrelease', 'rdrag', 'resize', 'row', 'rpress', 'rrelease',
-            'shift', 'window', 'x', 'y'
-            ),
-        4 => array(
-            'abs', 'acos', 'any', 'args', 'asin', 'atan', 'bal', 'center', 'char',
-            'chmod', 'close', 'cofail', 'collect', 'copy', 'cos', 'cset', 'ctime', 'delay', 'delete',
-            'detab', 'display', 'dtor', 'entab', 'errorclear', 'event', 'eventmask', 'EvGet', 'exit',
-            'exp', 'fetch', 'fieldnames', 'find', 'flock', 'flush', 'function', 'get', 'getch',
-            'getche', 'getenv', 'gettimeofday', 'globalnames', 'gtime', 'iand', 'icom', 'image',
-            'insert', 'integer', 'ior', 'ishift', 'ixor', 'key', 'left', 'list', 'load', 'loadfunc',
-            'localnames', 'log', 'many', 'map', 'match', 'member', 'mkdir', 'move', 'name', 'numeric',
-            'open', 'opmask', 'ord', 'paramnames', 'parent', 'pipe', 'pop', 'pos', 'proc', 'pull',
-            'push', 'put', 'read', 'reads', 'real', 'receive', 'remove', 'rename', 'repl', 'reverse',
-            'right', 'rmdir', 'rtod', 'runerr', 'seek', 'select', 'send', 'seq', 'serial', 'set',
-            'setenv', 'sort', 'sortf', 'sql', 'sqrt', 'stat', 'stop', 'string', 'system', 'tab',
-            'table', 'tan', 'trap', 'trim', 'truncate', 'type', 'upto', 'utime', 'variable', 'where',
-            'write', 'writes'
-            ),
-        5 => array(
-            'Active', 'Alert', 'Bg', 'Clip', 'Clone', 'Color', 'ColorValue',
-            'CopyArea', 'Couple', 'DrawArc', 'DrawCircle', 'DrawCurve', 'DrawCylinder', 'DrawDisk',
-            'DrawImage', 'DrawLine', 'DrawPoint', 'DrawPolygon', 'DrawRectangle', 'DrawSegment',
-            'DrawSphere', 'DrawString', 'DrawTorus', 'EraseArea', 'Event', 'Fg', 'FillArc',
-            'FillCircle', 'FillPolygon', 'FillRectangle', 'Font', 'FreeColor', 'GotoRC', 'GotoXY',
-            'IdentifyMatrix', 'Lower', 'MatrixMode', 'NewColor', 'PaletteChars', 'PaletteColor',
-            'PaletteKey', 'Pattern', 'Pending', 'Pixel', 'PopMatrix', 'PushMatrix', 'PushRotate',
-            'PushScale', 'PushTranslate', 'QueryPointer', 'Raise', 'ReadImage', 'Refresh', 'Rotate',
-            'Scale', 'Texcoord', 'TextWidth', 'Texture', 'Translate', 'Uncouple', 'WAttrib',
-            'WDefault', 'WFlush', 'WindowContents', 'WriteImage', 'WSync'
-            ),
-        6 => array(
-            'define', 'include', 'ifdef', 'ifndef', 'else', 'endif', 'error',
-            'line', 'undef'
-            ),
-        7 => array(
-            '_V9', '_AMIGA', '_ACORN', '_CMS', '_MACINTOSH', '_MSDOS_386',
-            '_MS_WINDOWS_NT', '_MSDOS', '_MVS', '_OS2', '_POR', 'T', '_UNIX', '_POSIX', '_DBM',
-            '_VMS', '_ASCII', '_EBCDIC', '_CO_EXPRESSIONS', '_CONSOLE_WINDOW', '_DYNAMIC_LOADING',
-            '_EVENT_MONITOR', '_EXTERNAL_FUNCTIONS', '_KEYBOARD_FUNCTIONS', '_LARGE_INTEGERS',
-            '_MULTITASKING', '_PIPES', '_RECORD_IO', '_SYSTEM_FUNCTION', '_MESSAGING', '_GRAPHICS',
-            '_X_WINDOW_SYSTEM', '_MS_WINDOWS', '_WIN32', '_PRESENTATION_MGR', '_ARM_FUNCTIONS',
-            '_DOS_FUNCTIONS'
-            ),
-        8 => array(
-            'line'
-            )
-        ),
-    'SYMBOLS' => array(
-        1 => array(
-            '(', ')', '{', '}', '[', ']', '+', '-', '*', '/', '\\', '%', '=', '<', '>', '!', '^',
-            '&', '|', '?', ':', ';', ',', '.', '~', '@'
-            ),
-        2 => array(
-            '$(', '$)', '$<', '$>', '$'
-            )
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => true,
-        2 => true,
-        3 => true,
-        4 => true,
-        5 => true,
-        6 => true,
-        7 => true,
-        8 => true
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #b1b100;',
-            2 => 'color: #b1b100;',
-            3 => 'color: #b1b100;',
-            4 => 'color: #b1b100;',
-            5 => 'color: #b1b100;',
-            6 => 'color: #b1b100;',
-            7 => 'color: #b1b100;',
-            8 => 'color: #b1b100;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #666666; font-style: italic;',
-            '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(
-            0 => 'color: #004000;'
-            ),
-        'SYMBOLS' => array(
-            1 => 'color: #339933;',
-            2 => 'color: #b1b100;'
-            ),
-        'REGEXPS' => array(),
-        'SCRIPT' => array()
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => '',
-        4 => '',
-        5 => '',
-        6 => '',
-        7 => '',
-        8 => ''
-        ),
-    'OOLANG' => true,
-    'OBJECT_SPLITTERS' => array(1 => '.'),
-    'REGEXPS' => array(),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(),
-    'HIGHLIGHT_STRICT_BLOCK' => array(),
-    'PARSER_CONTROL' => array(
-        'KEYWORDS' => array(
-            3 => array(
-                'DISALLOWED_BEFORE' => '(?<=&amp;)'
-                ),
-            4 => array(
-                'DISALLOWED_BEFORE' => "(?<![a-zA-Z0-9_\"\'])",
-                'DISALLOWED_AFTER' => "(?![a-zA-Z0-9_\"\'])"
-                ),
-            6 => array(
-                'DISALLOWED_BEFORE' => '(?<=\$)'
-                ),
-            8 => array(
-                'DISALLOWED_BEFORE' => '(?<=#)'
-                )
-            )
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/idl.php b/wiki/vendor/geshi/geshi/src/geshi/idl.php
deleted file mode 100644
index f960f8b..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/idl.php
+++ /dev/null
@@ -1,121 +0,0 @@
-<?php
-/*************************************************************************************
- * idl.php
- * -------
- * Author: Cedric Bosdonnat (cedricbosdo@openoffice.org)
- * Copyright: (c) 2006 Cedric Bosdonnat
- * Release Version: 1.0.9.0
- * Date Started: 2006/08/20
- *
- * Unoidl language file for GeSHi.
- *
- * 2006/08/20 (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' => 'Uno Idl',
-    'COMMENT_SINGLE' => array(1 => '//', 2 => '#'),
-    'COMMENT_MULTI' => array('/*' => '*/'),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array("'", '"'),
-    'ESCAPE_CHAR' => '\\',
-    'KEYWORDS' => array(
-        1 => array(
-            'published', 'get', 'set', 'service', 'singleton', 'type', 'module', 'interface', 'struct',
-            'const', 'constants', 'exception', 'enum', 'raises', 'typedef'
-            ),
-        2 => array(
-            'bound', 'maybeambiguous', 'maybedefault', 'maybevoid', 'oneway', 'optional',
-            'readonly', 'in', 'out', 'inout', 'attribute', 'transient', 'removable'
-            ),
-        3 => array(
-            'True', 'False', 'TRUE', 'FALSE'
-            ),
-        4 => array(
-            'string', 'long', 'byte', 'hyper', 'boolean', 'any', 'char', 'double',
-            'void', 'sequence', 'unsigned'
-            ),
-        ),
-    'SYMBOLS' => array(
-        '(', ')', '{', '}', '[', ']', '=', '+', '-', '*', '/', '!', '%', '^', '&', ':', ';', '...'
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => true,
-        2 => true,
-        3 => true,
-        4 => true,
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #990078; font-weight: bold',
-            2 => 'color: #36dd1c;',
-            3 => 'color: #990078; font-weight: bold',
-            4 => 'color: #0000ec;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #3f7f5f;',
-            2 => 'color: #808080;',
-            'MULTI' => 'color: #4080ff; font-style: italic;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #666666; font-weight: bold;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #808080;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #ff0000;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #0000dd;'
-            ),
-        'METHODS' => array(
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #66cc66;'
-            ),
-        'REGEXPS' => array(
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => '',
-        4 => ''
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(
-        1 => '::'
-        ),
-    'REGEXPS' => array(
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/ini.php b/wiki/vendor/geshi/geshi/src/geshi/ini.php
deleted file mode 100644
index fe04224..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/ini.php
+++ /dev/null
@@ -1,127 +0,0 @@
-<?php
-/*************************************************************************************
- * ini.php
- * --------
- * Author: deguix (cevo_deguix@yahoo.com.br)
- * Copyright: (c) 2005 deguix
- * Release Version: 1.0.9.0
- * Date Started: 2005/03/27
- *
- * INI language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2008/05/23 (1.0.7.22)
- *   -  Added description of extra language features (SF#1970248)
- * 2005/12/28 (1.0.1)
- *   -  Removed unnecessary keyword style index
- *   -  Added support for " strings
- * 2005/04/05 (1.0.0)
- *   -  First Release
- *
- * TODO (updated 2005/03/27)
- * -------------------------
- *
- *************************************************************************************
- *
- *     This file is part of GeSHi.
- *
- *   GeSHi is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   GeSHi is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with GeSHi; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- ************************************************************************************/
-
-$language_data = array (
-    'LANG_NAME' => 'INI',
-    'COMMENT_SINGLE' => array(),
-    'COMMENT_MULTI' => array(),
-    'COMMENT_REGEXP' => array(0 => '/^\s*;.*?$/m'),
-    '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(
-            0 => 'color: #666666; font-style: italic;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => ''
-            ),
-        'BRACKETS' => array(
-            0 => ''
-            ),
-        'STRINGS' => array(
-            0 => 'color: #933;'
-            ),
-        'NUMBERS' => array(
-            0 => ''
-            ),
-        'METHODS' => array(
-            0 => ''
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #000066; font-weight:bold;'
-            ),
-        'REGEXPS' => array(
-            0 => 'color: #000066; font-weight:bold;',
-            1 => 'color: #000099;',
-            2 => 'color: #660066;'
-            ),
-        'SCRIPT' => array(
-            0 => ''
-            )
-        ),
-    'URLS' => array(
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(
-        ),
-    'REGEXPS' => array(
-        //Section names
-        0 => '\[.+\]',
-        //Entry names
-        1 => array(
-            GESHI_SEARCH => '^(\s*)([a-zA-Z0-9_\-]+)(\s*=)',
-            GESHI_REPLACE => '\\2',
-            GESHI_MODIFIERS => 'm',
-            GESHI_BEFORE => '\\1',
-            GESHI_AFTER => '\\3'
-            ),
-        //Entry values
-        2 => array(
-            // Evil hackery to get around GeSHi bug: <>" and ; are added so <span>s can be matched
-            // Explicit match on variable names because if a comment is before the first < of the span
-            // gets chewed up...
-            GESHI_SEARCH => '([<>";a-zA-Z0-9_]+\s*)=(.*)',
-            GESHI_REPLACE => '\\2',
-            GESHI_MODIFIERS => '',
-            GESHI_BEFORE => '\\1=',
-            GESHI_AFTER => ''
-            )
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/inno.php b/wiki/vendor/geshi/geshi/src/geshi/inno.php
deleted file mode 100644
index 542719c..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/inno.php
+++ /dev/null
@@ -1,210 +0,0 @@
-<?php
-/*************************************************************************************
- * Inno.php
- * ----------
- * 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.9.0
- * Date Started: 2005/07/29
- *
- * Inno Script language inkl. Delphi (Object Pascal) language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2005/09/03
- *   -  First Release
- *
- * TODO (updated 2005/07/27)
- * -------------------------
- *
- *************************************************************************************
- *
- *   This file is part of GeSHi.
- *
- *   GeSHi is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   GeSHi is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with GeSHi; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- ************************************************************************************/
-
-$language_data = array (
-    'LANG_NAME' => 'Inno',
-    'COMMENT_SINGLE' => array(1 => '//'),
-    'COMMENT_MULTI' => array('(*' => '*)'),
-    'CASE_KEYWORDS' => 0,
-    'QUOTEMARKS' => array("'", '"'),
-    'ESCAPE_CHAR' => '',
-    'KEYWORDS' => array(
-        1 => array(
-            'Setup','Types','Components','Tasks','Dirs','Files','Icons','INI',
-            'InstallDelete','Languages','Messages','CustomMessage',
-            'LangOptions','Registry','RUN','UninstallDelete','UninstallRun',
-            'app','win','sys','syswow64','src','sd','pf','pf32','pf64','cf',
-            'cf32','cf64','tmp','fonts','dao','group','localappdata','sendto',
-            'userappdata','commonappdata','userdesktop','commondesktop',
-            'userdocs','commondocs','userfavorites','commonfavorites',
-            'userprograms','commonprograms','userstartmenu','commonstartmenu',
-            'userstartup','commonstartup','usertemplates','commontemplates'
-            ),
-        2 => array(
-            'nil', 'false', 'true', 'var', 'type', 'const','And', 'Array', 'As', 'Begin', 'Case', 'Class', 'Constructor', 'Destructor', 'Div', 'Do', 'DownTo', 'Else',
-            'End', 'Except', 'File', 'Finally', 'For', 'Function', 'Goto', 'If', 'Implementation', 'In', 'Inherited', 'Interface',
-            'Is', 'Mod', 'Not', 'Object', 'Of', 'On', 'Or', 'Packed', 'Procedure', 'Property', 'Raise', 'Record',
-            'Repeat', 'Set', 'Shl', 'Shr', 'Then', 'ThreadVar', 'To', 'Try', 'Unit', 'Until', 'Uses', 'While', 'With', 'Xor',
-
-            'HKCC','HKCR','HKCU','HKLM','HKU','alwaysoverwrite','alwaysskipifsameorolder','append',
-            'binary','classic','closeonexit','comparetimestamp','confirmoverwrite',
-            'createkeyifdoesntexist','createonlyiffileexists','createvalueifdoesntexist',
-            'deleteafterinstall','deletekey','deletevalue','dirifempty','dontcloseonexit',
-            'dontcopy','dontcreatekey','disablenouninstallwarning','dword','exclusive','expandsz',
-            'external','files','filesandordirs','fixed','fontisnttruetype','ignoreversion','iscustom','isreadme',
-            'modern','multisz','new','noerror','none','normal','nowait','onlyifdestfileexists',
-            'onlyifdoesntexist','onlyifnewer','overwrite','overwritereadonly','postinstall',
-            'preservestringtype','promptifolder','regserver','regtypelib','restart','restartreplace',
-            'runhidden','runmaximized','runminimized','sharedfile','shellexec','showcheckbox',
-            'skipifnotsilent','skipifsilent','silent','skipifdoesntexist',
-            'skipifsourcedoesntexist','sortfilesbyextension','unchecked','uninsalwaysuninstall',
-            'uninsclearvalue','uninsdeleteentry','uninsdeletekey','uninsdeletekeyifempty',
-            'uninsdeletesection','uninsdeletesectionifempty','uninsdeletevalue',
-            'uninsneveruninstall','useapppaths','verysilent','waituntilidle'
-            ),
-        3 => array(
-            'Abs', 'Addr', 'AnsiCompareStr', 'AnsiCompareText', 'AnsiContainsStr', 'AnsiEndsStr', 'AnsiIndexStr', 'AnsiLeftStr',
-            'AnsiLowerCase', 'AnsiMatchStr', 'AnsiMidStr', 'AnsiPos', 'AnsiReplaceStr', 'AnsiReverseString', 'AnsiRightStr',
-            'AnsiStartsStr', 'AnsiUpperCase', 'ArcCos', 'ArcSin', 'ArcTan', 'Assigned', 'BeginThread', 'Bounds', 'CelsiusToFahrenheit',
-            'ChangeFileExt', 'Chr', 'CompareStr', 'CompareText', 'Concat', 'Convert', 'Copy', 'Cos', 'CreateDir', 'CurrToStr',
-            'CurrToStrF', 'Date', 'DateTimeToFileDate', 'DateTimeToStr', 'DateToStr', 'DayOfTheMonth', 'DayOfTheWeek', 'DayOfTheYear',
-            'DayOfWeek', 'DaysBetween', 'DaysInAMonth', 'DaysInAYear', 'DaySpan', 'DegToRad', 'DeleteFile', 'DiskFree', 'DiskSize',
-            'DupeString', 'EncodeDate', 'EncodeDateTime', 'EncodeTime', 'EndOfADay', 'EndOfAMonth', 'Eof', 'Eoln', 'Exp', 'ExtractFileDir',
-            'ExtractFileDrive', 'ExtractFileExt', 'ExtractFileName', 'ExtractFilePath', 'FahrenheitToCelsius', 'FileAge',
-            'FileDateToDateTime', 'FileExists', 'FilePos', 'FileSearch', 'FileSetDate', 'FileSize', 'FindClose', 'FindCmdLineSwitch',
-            'FindFirst', 'FindNext', 'FloatToStr', 'FloatToStrF', 'Format', 'FormatCurr', 'FormatDateTime', 'FormatFloat', 'Frac',
-            'GetCurrentDir', 'GetLastError', 'GetMem', 'High', 'IncDay', 'IncMinute', 'IncMonth', 'IncYear', 'InputBox',
-            'InputQuery', 'Int', 'IntToHex', 'IntToStr', 'IOResult', 'IsInfinite', 'IsLeapYear', 'IsMultiThread', 'IsNaN',
-            'LastDelimiter', 'Length', 'Ln', 'Lo', 'Log10', 'Low', 'LowerCase', 'Max', 'Mean', 'MessageDlg', 'MessageDlgPos',
-            'MonthOfTheYear', 'Now', 'Odd', 'Ord', 'ParamCount', 'ParamStr', 'Pi', 'Point', 'PointsEqual', 'Pos', 'Pred',
-            'Printer', 'PromptForFileName', 'PtInRect', 'RadToDeg', 'Random', 'RandomRange', 'RecodeDate', 'RecodeTime', 'Rect',
-            'RemoveDir', 'RenameFile', 'Round', 'SeekEof', 'SeekEoln', 'SelectDirectory', 'SetCurrentDir', 'Sin', 'SizeOf',
-            'Slice', 'Sqr', 'Sqrt', 'StringOfChar', 'StringReplace', 'StringToWideChar', 'StrToCurr', 'StrToDate', 'StrToDateTime',
-            'StrToFloat', 'StrToInt', 'StrToInt64', 'StrToInt64Def', 'StrToIntDef', 'StrToTime', 'StuffString', 'Succ', 'Sum', 'Tan',
-            'Time', 'TimeToStr', 'Tomorrow', 'Trunc', 'UpCase', 'UpperCase', 'VarType', 'WideCharToString', 'WrapText', 'Yesterday',
-            'Append', 'AppendStr', 'Assign', 'AssignFile', 'AssignPrn', 'Beep', 'BlockRead', 'BlockWrite', 'Break',
-            'ChDir', 'Close', 'CloseFile', 'Continue', 'DateTimeToString', 'Dec', 'DecodeDate', 'DecodeDateTime',
-            'DecodeTime', 'Delete', 'Dispose', 'EndThread', 'Erase', 'Exclude', 'Exit', 'FillChar', 'Flush', 'FreeAndNil',
-            'FreeMem', 'GetDir', 'GetLocaleFormatSettings', 'Halt', 'Inc', 'Include', 'Insert', 'MkDir', 'Move', 'New',
-            'ProcessPath', 'Randomize', 'Read', 'ReadLn', 'ReallocMem', 'Rename', 'ReplaceDate', 'ReplaceTime',
-            'Reset', 'ReWrite', 'RmDir', 'RunError', 'Seek', 'SetLength', 'SetString', 'ShowMessage', 'ShowMessageFmt',
-            'ShowMessagePos', 'Str', 'Truncate', 'Val', 'Write', 'WriteLn',
-
-            'AdminPrivilegesRequired','AfterInstall','AllowCancelDuringInstall','AllowNoIcons','AllowRootDirectory','AllowUNCPath','AlwaysRestart','AlwaysShowComponentsList','AlwaysShowDirOnReadyPage','AlwaysShowGroupOnReadyPage ','AlwaysUsePersonalGroup','AppComments','AppContact','AppCopyright','AppendDefaultDirName',
-            'AppendDefaultGroupName','AppId','AppModifyPath','AppMutex','AppName','AppPublisher',
-            'AppPublisherURL','AppReadmeFile','AppSupportURL','AppUpdatesURL','AppVerName','AppVersion',
-            'Attribs','BackColor','BackColor2','BackColorDirection','BackSolid','BeforeInstall',
-            'ChangesAssociations','ChangesEnvironment','Check','CodeFile','Comment','Compression','CopyMode',
-            'CreateAppDir','CreateUninstallRegKey','DefaultDirName','DefaultGroupName',
-            'DefaultUserInfoName','DefaultUserInfoOrg','DefaultUserInfoSerial',
-            'Description','DestDir','DestName','DirExistsWarning',
-            'DisableDirPage','DisableFinishedPage',
-            'DisableProgramGroupPage','DisableReadyMemo','DisableReadyPage',
-            'DisableStartupPrompt','DiskClusterSize','DiskSliceSize','DiskSpaceMBLabel',
-            'DiskSpanning','DontMergeDuplicateFiles','EnableDirDoesntExistWarning','Encryption',
-            'Excludes','ExtraDiskSpaceRequired','Filename','Flags','FlatComponentsList','FontInstall',
-            'GroupDescription','HotKey','IconFilename','IconIndex','InfoAfterFile','InfoBeforeFile',
-            'InternalCompressLevel','Key','LanguageDetectionMethod',
-            'LicenseFile','MergeDuplicateFiles','MessagesFile','MinVersion','Name',
-            'OnlyBelowVersion','OutputBaseFilename','OutputManifestFile','OutputDir',
-            'Parameters','Password','Permissions','PrivilegesRequired','ReserveBytes',
-            'RestartIfNeededByRun','Root','RunOnceId','Section','SetupIconFile',
-            'ShowComponentSizes','ShowLanguageDialog','ShowTasksTreeLines','SlicesPerDisk',
-            'SolidCompression','Source','SourceDir','StatusMsg','Subkey',
-            'TimeStampRounding','TimeStampsInUTC','TouchDate','TouchTime','Type',
-            'UninstallDisplayIcon','UninstallDisplayName','UninstallFilesDir','UninstallIconFile',
-            'UninstallLogMode','UninstallRestartComputer','UninstallStyle','Uninstallable',
-            'UpdateUninstallLogAppName','UsePreviousAppDir','UsePreviousGroup',
-            'UsePreviousTasks','UsePreviousSetupType','UsePreviousUserInfo',
-            'UserInfoPage','UseSetupLdr','ValueData','ValueName','ValueType',
-            'VersionInfoVersion','VersionInfoCompany','VersionInfoDescription','VersionInfoTextVersion',
-            'WindowResizable','WindowShowCaption','WindowStartMaximized',
-            'WindowVisible','WizardImageBackColor','WizardImageFile','WizardImageStretch','WizardSmallImageBackColor','WizardSmallImageFile','WizardStyle','WorkingDir'
-            ),
-        4 => array(
-            'AnsiChar', 'AnsiString', 'Boolean', 'Byte', 'Cardinal', 'Char', 'Comp', 'Currency', 'Double', 'Extended',
-            'Int64', 'Integer', 'LongInt', 'LongWord', 'PAnsiChar', 'PAnsiString', 'PChar', 'PCurrency', 'PDateTime',
-            'PExtended', 'PInt64', 'Pointer', 'PShortString', 'PString', 'PVariant', 'PWideChar', 'PWideString',
-            'Real', 'Real48', 'ShortInt', 'ShortString', 'Single', 'SmallInt', 'String', 'TBits', 'TConvType', 'TDateTime',
-            'Text', 'TextFile', 'TFloatFormat', 'TFormatSettings', 'TList', 'TObject', 'TOpenDialog', 'TPoint',
-            'TPrintDialog', 'TRect', 'TReplaceFlags', 'TSaveDialog', 'TSearchRec', 'TStringList', 'TSysCharSet',
-            'TThreadFunc', 'Variant', 'WideChar', 'WideString', 'Word'
-            ),
-        ),
-    'SYMBOLS' => array(
-        '(', ')', '[', ']', '{', '}', '@', '%', '&', '*', '|', '/', '<', '>'
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false,
-        2 => false,
-        3 => false,
-        4 => false,
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #000000; font-weight: bold;',/*bold Black*/
-            2 => 'color: #000000;font-style: italic;',/*Black*/
-            3 => 'color: #0000FF;',/*blue*/
-            4 => 'color: #CC0000;'/*red*/
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #33FF00; font-style: italic;',
-            'MULTI' => 'color: #33FF00; font-style: italic;'
-            ),
-        'ESCAPE_CHAR' => array(
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #66cc66;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #ff0000;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #cc66cc;'
-            ),
-        'METHODS' => array(
-            1 => 'color: #006600;'
-            ),
-        'REGEXPS' => array(
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #000000; font-weight: bold;',
-            ),
-        '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/wiki/vendor/geshi/geshi/src/geshi/intercal.php b/wiki/vendor/geshi/geshi/src/geshi/intercal.php
deleted file mode 100644
index 669050a..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/intercal.php
+++ /dev/null
@@ -1,120 +0,0 @@
-<?php
-/*************************************************************************************
- * intercal.php
- * ----------
- * Author: Benny Baumann (BenBE@geshi.org)
- * Copyright: (c) 2008 Benny Baumann (http://qbnz.com/highlighter/)
- * Release Version: 1.0.9.0
- * Date Started: 2009/10/31
- *
- * INTERCAL language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2008/10/31 (1.0.8.1)
- *   -  First Release
- *
- * TODO
- * ----
- *
- *************************************************************************************
- *
- *     This file is part of GeSHi.
- *
- *   GeSHi is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   GeSHi is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with GeSHi; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- ************************************************************************************/
-$language_data = array (
-    'LANG_NAME' => 'INTERCAL',
-    'COMMENT_SINGLE' => array(),
-    'COMMENT_MULTI' => array(),
-    'COMMENT_REGEXP' => array(),
-    'CASE_KEYWORDS' => GESHI_CAPS_UPPER,
-    'QUOTEMARKS' => array(),
-    'ESCAPE_CHAR' => '',
-    'KEYWORDS' => array(
-        //Politeness
-        1 => array(
-            'DO', 'DOES', 'DONT', 'DON\'T', 'NOT', 'PLEASE', 'PLEASENT', 'PLEASEN\'T', 'MAYBE'
-            ),
-        //Statements
-        2 => array(
-            'STASH', 'RETRIEVE', 'NEXT', 'RESUME', 'FORGET', 'ABSTAIN', 'ABSTAINING',
-            'COME', 'FROM', 'CALCULATING', 'REINSTATE', 'IGNORE', 'REMEMBER',
-            'WRITE', 'IN', 'READ', 'OUT', 'GIVE', 'UP'
-            )
-        ),
-    'SYMBOLS' => array(
-        '.', ',', ':', ';', '#',
-        '~', '$', '&', '?',
-        '\'', '"', '<-'
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false,
-        2 => false
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #000080; font-weight: bold;',
-            2 => 'color: #000080; font-weight: bold;'
-            ),
-        'COMMENTS' => array(
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #66cc66;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #ff0000;'
-            ),
-        'NUMBERS' => array(
-            ),
-        'METHODS' => array(
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #66cc66;'
-            ),
-        'ESCAPE_CHAR' => array(
-            ),
-        'SCRIPT' => array(
-            ),
-        'REGEXPS' => array(
-            1 => 'color: #808080; font-style: italic;'
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => ''
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(
-        ),
-    'REGEXPS' => array(
-        1 => '^\(\d+\)'
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        ),
-    'TAB_WIDTH' => 4,
-    'PARSER_CONTROL' => array(
-        'ENABLE_FLAGS' => array(
-            'COMMENTS' => GESHI_NEVER,
-            'STRINGS' => GESHI_NEVER,
-            'NUMBERS' => GESHI_NEVER
-            )
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/io.php b/wiki/vendor/geshi/geshi/src/geshi/io.php
deleted file mode 100644
index 5c8b93f..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/io.php
+++ /dev/null
@@ -1,136 +0,0 @@
-<?php
-/*************************************************************************************
- * io.php
- * -------
- * Author: Nigel McNie (nigel@geshi.org)
- * Copyright: (c) 2006 Nigel McNie (http://qbnz.com/highlighter/)
- * 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
- * with this language :)
- *
- * CHANGES
- * -------
- * 2006/09/23(1.0.0)
- *  -  First Release
- *
- * TODO
- * -------------------------
- *
- *************************************************************************************
- *
- *     This file is part of GeSHi.
- *
- *   GeSHi is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   GeSHi is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with GeSHi; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- ************************************************************************************/
-
-$language_data = array (
-    'LANG_NAME' => 'Io',
-    'COMMENT_SINGLE' => array(1 => '//', 2 => '#'),
-    'COMMENT_MULTI' => array('/*' => '*/'),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array('"'),
-    'ESCAPE_CHAR' => '\\',
-    'KEYWORDS' => array(
-        1 => array(
-            'and', 'break', 'else', 'elseif', 'exit', 'for', 'foreach', 'if', 'ifFalse', 'ifNil',
-            'ifTrue', 'or', 'pass', 'raise', 'return', 'then', 'try', 'wait', 'while', 'yield'
-            ),
-        2 => array(
-            'activate', 'activeCoroCount', 'asString', 'block', 'catch', 'clone', 'collectGarbage',
-            'compileString', 'continue', 'do', 'doFile', 'doMessage', 'doString', 'forward',
-            'getSlot', 'getenv', 'hasSlot', 'isActive', 'isNil', 'isResumable', 'list', 'message',
-            'method', 'parent', 'pause', 'perform', 'performWithArgList', 'print', 'proto',
-            'raiseResumable', 'removeSlot', 'resend', 'resume', 'schedulerSleepSeconds', 'self',
-            'sender', 'setSchedulerSleepSeconds', 'setSlot', 'shallowCopy', 'slotNames', 'super',
-            'system', 'thisBlock', 'thisContext', 'thisMessage', 'type', 'uniqueId', 'updateSlot',
-            'write'
-            ),
-        3 => array(
-            'Array', 'AudioDevice', 'AudioMixer', 'Block', 'Box', 'Buffer', 'CFunction', 'CGI',
-            'Color', 'Curses', 'DBM', 'DNSResolver', 'DOConnection', 'DOProxy', 'DOServer',
-            'Date', 'Directory', 'Duration', 'DynLib', 'Error', 'Exception', 'FFT', 'File',
-            'Fnmatch', 'Font', 'Future', 'GL', 'GLE', 'GLScissor', 'GLU', 'GLUCylinder',
-            'GLUQuadric', 'GLUSphere', 'GLUT', 'Host', 'Image', 'Importer', 'LinkList', 'List',
-            'Lobby', 'Locals', 'MD5', 'MP3Decoder', 'MP3Encoder', 'Map', 'Message', 'Movie',
-            'NULL', 'Nil', 'Nop', 'Notifiction', 'Number', 'Object', 'OpenGL', 'Point', 'Protos',
-            'Regex', 'SGMLTag', 'SQLite', 'Server', 'ShowMessage', 'SleepyCat', 'SleepyCatCursor',
-            'Socket', 'SocketManager', 'Sound', 'Soup', 'Store', 'String', 'Tree', 'UDPSender',
-            'UDPReceiver', 'URL', 'User', 'Warning', 'WeakLink'
-            )
-        ),
-    'SYMBOLS' => array(
-        '(', ')', '[', ']', '{', '}', '!', '@', '%', '&', '*', '|', '/', '<', '>'
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false,
-        2 => false,
-        3 => false,
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #b1b100;',
-            2 => 'color: #000000; font-weight: bold;',
-            3 => 'color: #000066;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #808080; font-style: italic;',
-            2 => 'color: #808080; font-style: italic;',
-            'MULTI' => 'color: #808080; font-style: italic;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #000099; font-weight: bold;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #66cc66;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #ff0000;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #cc66cc;'
-            ),
-        'METHODS' => array(
-            1 => 'color: #006600;',
-            2 => 'color: #006600;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #66cc66;'
-            ),
-        'REGEXPS' => array(
-            ),
-        'SCRIPT' => array(
-            0 => ''
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => ''
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(
-        ),
-    'REGEXPS' => array(
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/ispfpanel.php b/wiki/vendor/geshi/geshi/src/geshi/ispfpanel.php
deleted file mode 100644
index 8e60eed..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/ispfpanel.php
+++ /dev/null
@@ -1,165 +0,0 @@
-<?php
-/*************************************************************************************
- * ispfpanel.php
- * -------------
- * Author: Ramesh Vishveshwar (ramesh.vishveshwar@gmail.com)
- * Copyright: (c) 2012 Ramesh Vishveshwar (http://thecodeisclear.in)
- * Release Version: 1.0.9.0
- * Date Started: 2012/09/18
- *
- * ISPF Panel Definition (MVS) language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2011/09/22 (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' => 'ISPF Panel',
-    'COMMENT_SINGLE' => array(),
-    'COMMENT_MULTI' => array('/*' => '*/'),
-    'CASE_KEYWORDS' => GESHI_CAPS_UPPER,
-    'QUOTEMARKS' => array("'", '"'),
-    'ESCAPE_CHAR' => '',
-    'KEYWORDS' => array(
-        // Panel Definition Statements
-        1 => array(
-            ')CCSID',')PANEL',')ATTR',')ABC',')ABCINIT',')ABCPROC',')BODY',')MODEL',
-            ')AREA',')INIT',')REINIT',')PROC',')FIELD',')HELP',')LIST',')PNTS',')END'
-            ),
-        // File-Tailoring Skeletons
-        2 => array (
-            ')DEFAULT',')BLANK', ')CM', ')DO', ')DOT', ')ELSE', ')ENDSEL',
-            ')ENDDO', ')ENDDOT', ')IF', ')IM', ')ITERATE', ')LEAVE', ')NOP', ')SEL',
-            ')SET', ')TB', ')TBA'
-            ),
-        // Control Variables
-        3 => array (
-            '.ALARM','.ATTR','.ATTRCHAR','.AUTOSEL','.CSRPOS','.CSRROW','.CURSOR','.HELP',
-            '.HHELP','.KANA','.MSG','.NRET','.PFKEY','.RESP','.TRAIL','.ZVARS'
-            ),
-        // Keywords
-        4 => array (
-            'WINDOW','ALARM','ATTN','BARRIER','HILITE','CAPS',
-            'CKBOX','CLEAR','CMD','COLOR','COMBO','CSRGRP','CUADYN',
-            'SKIP','INTENS','AREA','EXTEND',
-            'DESC','ASIS','VGET','VPUT','JUST','BATSCRD','BATSCRW',
-            'BDBCS','BDISPMAX','BIT','BKGRND','BREDIMAX','PAD','PADC',
-            'PAS','CHINESES','CHINESET','DANISH','DATAMOD','DDLIST',
-            'DEPTH','DUMP','ENGLISH','ERROR','EXIT','EXPAND','FIELD',
-            'FORMAT','FRENCH','GE','GERMAN','IMAGE','IND','TYPE',
-            'ITALIAN','JAPANESE','KOREAN','LCOL','LEN','LIND','LISTBOX',
-            'MODE','NEST','NOJUMP','NOKANA','NUMERIC','OUTLINE','PARM',
-            'PGM','PORTUGESE','RADIO','RCOL','REP','RIND','ROWS',
-            'SCALE','SCROLL','SFIHDR','SGERMAN','SIND','SPANISH',
-            'UPPERENG','WIDTH'
-            ),
-        // Parameters
-        5 => array (
-            'ADDPOP','ALPHA','ALPHAB','DYNAMIC','SCRL',
-            'CCSID','COMMAND','DSNAME','DSNAMEF','DSNAMEFM',
-            'DSNAMEPQ','DSNAMEQ','EBCDIC','ENBLDUMP','ENUM',// 'EXTEND',
-            'FI','FILEID','FRAME','GUI','GUISCRD','GUISCRW','HEX',
-            'HIGH','IDATE','IN','INCLUDE','INPUT','ITIME','JDATE',
-            'JSTD','KEYLIST','LANG','LEFT','LIST','LISTV','LISTVX',
-            'LISTX','LMSG','LOGO','LOW','MIX','NAME','NAMEF','NB',
-            'NEWAPPL','NEWPOOL','NOCHECK','NOLOGO','NON','NONBLANK',
-            'NULLS','NUM','OFF','ON','OPT','OUT','OUTPUT','PANEL',
-            /* 'PGM',*/'PICT','PICTN','POSITION','TBDISPL','PROFILE',
-            'QUERY','RANGE','REVERSE','RIGHT','SHARED','SMSG',
-            'STDDATE','STDTIME','TERMSTAT','TERMTRAC','TEST',
-            'TESTX','TEXT','TRACE','TRACEX','USCORE','USER',
-            'USERMOD','WSCMD','WSCMDV'
-            ),
-        ),
-    'SYMBOLS' => array(
-        '(',')','=','&',',','*','#','+','&','%','_','-','@','!'
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false,
-        2 => false,
-        3 => false,
-        4 => false,
-        5 => false
-        ),
-    'STYLES' => array(
-        'BKGROUND' => 'background-color: #000000; color: #00FFFF;',
-        'KEYWORDS' => array(
-            1 => 'color: #FF0000;',
-            2 => 'color: #21A502;',
-            3 => 'color: #FF00FF;',
-            4 => 'color: #876C00;',
-            5 => 'color: #00FF00;'
-            ),
-        'COMMENTS' => array(
-            0 => 'color: #002EB8; font-style: italic;',
-            //1 => 'color: #002EB8; font-style: italic;',
-            //2 => 'color: #002EB8; font-style: italic;',
-            'MULTI' => 'color: #002EB8; font-style: italic;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => ''
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #FF7400;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #700000;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #FF6633;'
-            ),
-        'METHODS' => array(
-            1 => '',
-            2 => ''
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #FF7400;'
-            ),
-        'REGEXPS' => array(
-            0 => 'color: #6B1F6B;'
-            ),
-        'SCRIPT' => array(
-            0 => ''
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => '',
-        4 => '',
-        5 => ''
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(),
-    'REGEXPS' => array(
-        // Variables Defined in the Panel
-        0 => '&amp;[a-zA-Z]{1,8}[0-9]{0,}',
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array()
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/j.php b/wiki/vendor/geshi/geshi/src/geshi/j.php
deleted file mode 100644
index 499c489..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/j.php
+++ /dev/null
@@ -1,188 +0,0 @@
-<?php
-/*************************************************************************************
- * j.php
- * --------
- * Author: Ric Sherlock (tikkanz@gmail.com)
- * Copyright: (c) 2009 Ric Sherlock
- * Release Version: 1.0.9.0
- * Date Started: 2009/11/10
- *
- * J language file for GeSHi.
- *
- * CHANGES
- * -------
- *  2010/07/18 (1.0.8.10)
- *   - Infinity and negative infinity recognized as numbers
- *  2010/03/01 (1.0.8.8)
- *   - Add support for label_xyz. and goto_xyz.
- *   - Fix highlighting of for_i.
- *   - Use alternative method for highlighting for_xyz. construct
- *  2010/02/14 (1.0.8.7)
- *   - Add support for primitives
- *  2010/01/12 (1.0.2)
- *   - Use HARDQUOTE for strings
- *   - Highlight open quotes/incomplete strings
- *   - Highlight multi-line comments that use Note
- *   - Refinements for NUMBERS and Argument keywords
- *   - Highlight infinity and neg. infinity using REGEXPS
- *   - Highlight "for_myvar." style Control keyword using REGEXPS
- *  2009/12/14 (1.0.1)
- *   -  Regex for NUMBERS, SYMBOLS for () and turn off BRACKETS
- *  2009/11/12 (1.0.0)
- *   -  First Release
- *
- * TODO (updated 2010/01/27)
- * -------------------------
- *  * combine keyword categories by using conditional regex statement in PARSER CONTROL?
- *************************************************************************************
- *
- *     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' => 'J',
-    'COMMENT_SINGLE' => array(),
-    'COMMENT_MULTI' => array(),
-    'COMMENT_REGEXP' => array(
-        1 => '/(?<!\w)NB\..*?$/m',                //singleline comments NB.
-        2 => '/(?<=\bNote\b).*?$\s+\)(?:(?!\n)\s)*$/sm',   //multiline comments in Note
-        3 => "/'[^']*?$/m"                        //incomplete strings/open quotes
-        ),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array(),
-    'ESCAPE_CHAR' => '',
-    'HARDQUOTE' => array("'", "'"),
-    'HARDESCAPE' => array("'"),
-    'HARDCHAR' => "'",
-    'NUMBERS' => array(
-        0 => '\b(?:_?\d+(?:\.\d+)?(?:x|[bejprx]_?[\da-z]+(?:\.[\da-z]+)?)?|__?)(?![\w\.\:])',
-        ),
-    'KEYWORDS' => array(
-        //Control words
-        1 => array(
-            'assert.', 'break.', 'case.', 'catch.', 'catcht.', 'continue.', 'do.',
-            'else.', 'elseif.', 'end.', 'fcase.', 'for.', 'goto.', 'if.', 'label.',
-            'return.', 'select.', 'throw.', 'trap.', 'try.', 'while.', 'whilst.'
-            ),
-        //Arguments
-        2 => array(
-            'm', 'n', 'u', 'v', 'x', 'y'
-            ),
-        ),
-    'SYMBOLS' => array(
-        //Punctuation
-        0 => array(
-            '(', ')'
-            )
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => true,
-        2 => true,
-        //6 => true,
-        //7 => true,
-        //8 => true,
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #0000ff; font-weight: bold;',
-            2 => 'color: #0000cc; font-weight: bold;',
-            //6 => 'color: #000000; font-weight: bold;',
-            //7 => 'color: #000000; font-weight: bold;',
-            //8 => 'color: #000000; font-weight: bold;',
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #666666; font-style: italic;',
-            2 => 'color: #666666; font-style: italic; font-weight: bold;',
-            3 => 'color: #ff00ff; ',                      //open quote
-            'MULTI' => 'color: #666666; font-style: italic;'
-            ),
-        'ESCAPE_CHAR' => array(
-            'HARD' => 'font-weight: bold;',
-            0 => '',
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #009900;'
-            ),
-        'STRINGS' => array(
-            'HARD' => 'color: #ff0000;',
-            0 => 'color: #ff0000;',
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #009999; font-weight: bold;'
-            ),
-        'METHODS' => array(
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #009900; font-weight: bold;'
-            ),
-        'REGEXPS' => array(
-            0 => 'color: #0000ff; font-weight: bold;',   //for_xyz. - same as kw1
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => '', //'http://www.jsoftware.com/help/dictionary/ctrl.htm',
-        2 => '',
-        //6 => '', //'http://www.jsoftware.com/jwiki/Vocabulary',
-        //7 => '', //'http://www.jsoftware.com/jwiki/Vocabulary',
-        //8 => '', //'http://www.jsoftware.com/jwiki/Vocabulary',
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(
-        ),
-    'REGEXPS' => array(
-        0 => '\b(for|goto|label)_[a-zA-Z]\w*\.',   //for_xyz. - should be kw1
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        ),
-    'PARSER_CONTROL' => array(
-        'ENABLE_FLAGS' => array(
-            'BRACKETS' => GESHI_NEVER,
-            ),
-        'NUMBERS' => array(
-            'PRECHECK_RX' => '#[\d_]#',            // underscore is valid number
-            ),
-        'KEYWORDS' => array(
-            //Control words
-            2 => array(
-                'DISALLOWED_BEFORE' => '(?<!\w)',
-                'DISALLOWED_AFTER' => '(?![\w\.\:])',
-                ),
-            //Primtives starting with a symbol (except . or :)
-            6 => array(
-                'DISALLOWED_BEFORE' => '(?!K)',    // effect should be to allow anything
-                'DISALLOWED_AFTER' => '(?=.*)',
-                ),
-            //Primtives starting with a letter
-            7 => array(
-                'DISALLOWED_BEFORE' => '(?<!\w)',
-                'DISALLOWED_AFTER' => '(?=.*)',
-                ),
-            //Primtives starting with symbol . or :
-            8 => array(
-                'DISALLOWED_BEFORE' => '(?<=\s)',
-                'DISALLOWED_AFTER' => '(?=.*)',
-                ),
-            )
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/java.php b/wiki/vendor/geshi/geshi/src/geshi/java.php
deleted file mode 100644
index 59733b5..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/java.php
+++ /dev/null
@@ -1,980 +0,0 @@
-<?php
-/*************************************************************************************
- * java.php
- * --------
- * Author: Nigel McNie (nigel@geshi.org)
- * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter/)
- * Release Version: 1.0.9.0
- * Date Started: 2004/07/10
- *
- * Java language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2008/05/25 (1.0.7.22)
- *   -  Added highlighting of import and package directives as non-OOP
- * 2005/12/28 (1.0.4)
- *   -  Added instanceof keyword
- * 2004/11/27 (1.0.3)
- *   -  Added support for multiple object splitters
- * 2004/08/05 (1.0.2)
- *   -  Added URL support
- *   -  Added keyword "this", as bugs in GeSHi class ironed out
- * 2004/08/05 (1.0.1)
- *   -  Added support for symbols
- *   -  Added extra missed keywords
- * 2004/07/14 (1.0.0)
- *   -  First Release
- *
- * TODO (updated 2004/11/27)
- * -------------------------
- * * Compact the class names like the first few have been
- *   and eliminate repeats
- *
- *************************************************************************************
- *
- *     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' => 'Java',
-    '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(
-            'for', 'foreach', 'if', 'else', 'while', 'do',
-            'switch', 'case',  'return', 'public',
-            'private', 'protected', 'extends', 'break', 'class',
-            'new', 'try', 'catch', 'throws', 'finally', 'implements',
-            'interface', 'throw', 'final', 'native', 'synchronized', 'this',
-            'abstract', 'transient', 'instanceof', 'assert', 'continue',
-            'default', 'enum', 'package', 'static', 'strictfp', 'super',
-            'volatile', 'const', 'goto', 'import'
-            ),
-        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', 'Any', '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', 'Boolean', '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', 'Byte',
-            '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', 'Double', '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', 'Float',
-            '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', 'Long', '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', 'Short', '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(
-            'void', 'double', 'int', 'boolean', 'byte', 'short', 'long', 'char', 'float'
-            )
-        ),
-    'SYMBOLS' => array(
-        '(', ')', '[', ']', '{', '}',
-        '+', '-', '*', '/', '%',
-        '!', '&', '|', '^',
-        '<', '>', '=',
-        '?', ':', ';',
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false,
-        2 => false,
-        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/wiki/vendor/geshi/geshi/src/geshi/java5.php b/wiki/vendor/geshi/geshi/src/geshi/java5.php
deleted file mode 100644
index f9dbf31..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/java5.php
+++ /dev/null
@@ -1,1035 +0,0 @@
-<?php
-/*************************************************************************************
- * java.php
- * --------
- * Author: Nigel McNie (nigel@geshi.org)
- * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter/)
- * Release Version: 1.0.9.0
- * Date Started: 2004/07/10
- *
- * Java language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2008/05/25 (1.0.7.22)
- *   -  Added highlighting of import and package directives as non-OOP
- * 2005/12/28 (1.0.4)
- *   -  Added instanceof keyword
- * 2004/11/27 (1.0.3)
- *   -  Added support for multiple object splitters
- * 2004/08/05 (1.0.2)
- *   -  Added URL support
- *   -  Added keyword "this", as bugs in GeSHi class ironed out
- * 2004/08/05 (1.0.1)
- *   -  Added support for symbols
- *   -  Added extra missed keywords
- * 2004/07/14 (1.0.0)
- *   -  First Release
- *
- * TODO
- * -------------------------
- * *
- *
- *************************************************************************************
- *
- *     This file is part of GeSHi.
- *
- *   GeSHi is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   GeSHi is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with GeSHi; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- ************************************************************************************/
-
-$language_data = array (
-    'LANG_NAME' => 'Java(TM) 2 Platform Standard Edition 5.0',
-    'COMMENT_SINGLE' => array(1 => '//'),
-    'COMMENT_MULTI' => array('/*' => '*/'),
-    'COMMENT_REGEXP' => array(
-        //Import and Package directives (Basic Support only)
-        2 => '/(?:(?<=import[\\n\\s](?!static))|(?<=import[\\n\\s]static[\\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(
-            /* see the authoritative list of all 50 Java keywords at */
-            /* http://java.sun.com/docs/books/jls/third_edition/html/lexical.html#229308 */
-
-            /* java keywords, part 1: control flow */
-            'case', 'default', 'do', 'else', 'for',
-            'goto', 'if', 'switch', 'while'
-
-            /* IMO 'break', 'continue', 'return' and 'throw' */
-                        /* should also be added to this group, as they   */
-            /* also manage the control flow,                 */
-            /* arguably 'try'/'catch'/'finally' as well      */
-            ),
-        2 => array(
-            /* java keywords, part 2 */
-
-            'break', 'continue', 'return', 'throw',
-            'try', 'catch', 'finally',
-
-            'abstract', 'assert', 'class', 'const', 'enum', 'extends',
-            'final', 'implements', 'import', 'instanceof', 'interface',
-            'native', 'new', 'package', 'private', 'protected',
-            'public', 'static', 'strictfp', 'super', 'synchronized',
-            'this', 'throws', 'transient', 'volatile'
-            ),
-        3 => array(
-            /* Java keywords, part 3: primitive data types and 'void' */
-            'boolean', 'byte', 'char', 'double',
-            'float', 'int', 'long', 'short', 'void'
-            ),
-        4 => array(
-            /* other reserved words in Java: literals */
-            /* should be styled to look similar to numbers and Strings */
-            'false', 'null', 'true'
-            ),
-        5 => array (
-            'Applet', 'AppletContext', 'AppletStub', 'AudioClip'
-            ),
-        6 => array (
-            'AWTError', 'AWTEvent', 'AWTEventMulticaster', 'AWTException', 'AWTKeyStroke', 'AWTPermission', 'ActiveEvent', 'Adjustable', 'AlphaComposite', 'BasicStroke', 'BorderLayout', 'BufferCapabilities', 'BufferCapabilities.FlipContents', 'Button', 'Canvas', 'CardLayout', 'Checkbox', 'CheckboxGroup', 'CheckboxMenuItem', 'Choice', 'Color', 'Component', 'ComponentOrientation', 'Composite', 'CompositeContext', 'Container', 'ContainerOrderFocusTraversalPolicy', 'Cursor', 'DefaultFocusTraversalPolicy', 'DefaultKeyboardFocusManager', 'Dialog', 'Dimension', 'DisplayMode', 'EventQueue', 'FileDialog', 'FlowLayout', 'FocusTraversalPolicy', 'Font', 'FontFormatException', 'FontMetrics', 'Frame', 'GradientPaint', 'Graphics', 'Graphics2D', 'GraphicsConfigTemplate', 'GraphicsConfiguration', 'GraphicsDevice', 'GraphicsEnvironment', 'GridBagConstraints', 'GridBagLayout', 'GridLayout', 'HeadlessException', 'IllegalComponentStateException', 'Image', 'ImageCapabilities', 'Insets', 'ItemSelectable', 'JobAttributes',
-            'JobAttributes.DefaultSelectionType', 'JobAttributes.DestinationType', 'JobAttributes.DialogType', 'JobAttributes.MultipleDocumentHandlingType', 'JobAttributes.SidesType', 'KeyEventDispatcher', 'KeyEventPostProcessor', 'KeyboardFocusManager', 'Label', 'LayoutManager', 'LayoutManager2', 'MediaTracker', 'Menu', 'MenuBar', 'MenuComponent', 'MenuContainer', 'MenuItem', 'MenuShortcut', 'MouseInfo', 'PageAttributes', 'PageAttributes.ColorType', 'PageAttributes.MediaType', 'PageAttributes.OrientationRequestedType', 'PageAttributes.OriginType', 'PageAttributes.PrintQualityType', 'Paint', 'PaintContext', 'Panel', 'Point', 'PointerInfo', 'Polygon', 'PopupMenu', 'PrintGraphics', 'PrintJob', 'Rectangle', 'RenderingHints', 'RenderingHints.Key', 'Robot', 'ScrollPane', 'ScrollPaneAdjustable', 'Scrollbar', 'Shape', 'Stroke', 'SystemColor', 'TextArea', 'TextComponent', 'TextField', 'TexturePaint', 'Toolkit', 'Transparency', 'Window'
-            ),
-        7 => array (
-            'CMMException', 'ColorSpace', 'ICC_ColorSpace', 'ICC_Profile', 'ICC_ProfileGray', 'ICC_ProfileRGB', 'ProfileDataException'
-            ),
-        8 => array (
-            'Clipboard', 'ClipboardOwner', 'DataFlavor', 'FlavorEvent', 'FlavorListener', 'FlavorMap', 'FlavorTable', 'MimeTypeParseException', 'StringSelection', 'SystemFlavorMap', 'Transferable', 'UnsupportedFlavorException'
-            ),
-        9 => array (
-            'Autoscroll', 'DnDConstants', 'DragGestureEvent', 'DragGestureListener', 'DragGestureRecognizer', 'DragSource', 'DragSourceAdapter', 'DragSourceContext', 'DragSourceDragEvent', 'DragSourceDropEvent', 'DragSourceEvent', 'DragSourceListener', 'DragSourceMotionListener', 'DropTarget', 'DropTarget.DropTargetAutoScroller', 'DropTargetAdapter', 'DropTargetContext', 'DropTargetDragEvent', 'DropTargetDropEvent', 'DropTargetEvent', 'DropTargetListener', 'InvalidDnDOperationException', 'MouseDragGestureRecognizer'
-            ),
-        10 => array (
-            'AWTEventListener', 'AWTEventListenerProxy', 'ActionEvent', 'ActionListener', 'AdjustmentEvent', 'AdjustmentListener', 'ComponentAdapter', 'ComponentEvent', 'ComponentListener', 'ContainerAdapter', 'ContainerEvent', 'ContainerListener', 'FocusAdapter', 'FocusEvent', 'FocusListener', 'HierarchyBoundsAdapter', 'HierarchyBoundsListener', 'HierarchyEvent', 'HierarchyListener', 'InputEvent', 'InputMethodEvent', 'InputMethodListener', 'InvocationEvent', 'ItemEvent', 'ItemListener', 'KeyAdapter', 'KeyEvent', 'KeyListener', 'MouseAdapter', 'MouseListener', 'MouseMotionAdapter', 'MouseMotionListener', 'MouseWheelEvent', 'MouseWheelListener', 'PaintEvent', 'TextEvent', 'TextListener', 'WindowAdapter', 'WindowEvent', 'WindowFocusListener', 'WindowListener', 'WindowStateListener'
-            ),
-        11 => array (
-            'FontRenderContext', 'GlyphJustificationInfo', 'GlyphMetrics', 'GlyphVector', 'GraphicAttribute', 'ImageGraphicAttribute', 'LineBreakMeasurer', 'LineMetrics', 'MultipleMaster', 'NumericShaper', 'ShapeGraphicAttribute', 'TextAttribute', 'TextHitInfo', 'TextLayout', 'TextLayout.CaretPolicy', 'TextMeasurer', 'TransformAttribute'
-            ),
-        12 => array (
-            'AffineTransform', 'Arc2D', 'Arc2D.Double', 'Arc2D.Float', 'Area', 'CubicCurve2D', 'CubicCurve2D.Double', 'CubicCurve2D.Float', 'Dimension2D', 'Ellipse2D', 'Ellipse2D.Double', 'Ellipse2D.Float', 'FlatteningPathIterator', 'GeneralPath', 'IllegalPathStateException', 'Line2D', 'Line2D.Double', 'Line2D.Float', 'NoninvertibleTransformException', 'PathIterator', 'Point2D', 'Point2D.Double', 'Point2D.Float', 'QuadCurve2D', 'QuadCurve2D.Double', 'QuadCurve2D.Float', 'Rectangle2D', 'Rectangle2D.Double', 'Rectangle2D.Float', 'RectangularShape', 'RoundRectangle2D', 'RoundRectangle2D.Double', 'RoundRectangle2D.Float'
-            ),
-        13 => array (
-            'InputContext', 'InputMethodHighlight', 'InputMethodRequests', 'InputSubset'
-            ),
-        14 => array (
-            'InputMethod', 'InputMethodContext', 'InputMethodDescriptor'
-            ),
-        15 => array (
-            'AffineTransformOp', 'AreaAveragingScaleFilter', 'BandCombineOp', 'BandedSampleModel', 'BufferStrategy', 'BufferedImage', 'BufferedImageFilter', 'BufferedImageOp', 'ByteLookupTable', 'ColorConvertOp', 'ColorModel', 'ComponentColorModel', 'ComponentSampleModel', 'ConvolveOp', 'CropImageFilter', 'DataBuffer', 'DataBufferByte', 'DataBufferDouble', 'DataBufferFloat', 'DataBufferInt', 'DataBufferShort', 'DataBufferUShort', 'DirectColorModel', 'FilteredImageSource', 'ImageConsumer', 'ImageFilter', 'ImageObserver', 'ImageProducer', 'ImagingOpException', 'IndexColorModel', 'Kernel', 'LookupOp', 'LookupTable', 'MemoryImageSource', 'MultiPixelPackedSampleModel', 'PackedColorModel', 'PixelGrabber', 'PixelInterleavedSampleModel', 'RGBImageFilter', 'Raster', 'RasterFormatException', 'RasterOp', 'RenderedImage', 'ReplicateScaleFilter', 'RescaleOp', 'SampleModel', 'ShortLookupTable', 'SinglePixelPackedSampleModel', 'TileObserver', 'VolatileImage', 'WritableRaster', 'WritableRenderedImage'
-            ),
-        16 => array (
-            'ContextualRenderedImageFactory', 'ParameterBlock', 'RenderContext', 'RenderableImage', 'RenderableImageOp', 'RenderableImageProducer', 'RenderedImageFactory'
-            ),
-        17 => array (
-            'Book', 'PageFormat', 'Pageable', 'Paper', 'Printable', 'PrinterAbortException', 'PrinterException', 'PrinterGraphics', 'PrinterIOException', 'PrinterJob'
-            ),
-        18 => array (
-            'AppletInitializer', 'BeanDescriptor', 'BeanInfo', 'Beans', 'Customizer', 'DefaultPersistenceDelegate', 'DesignMode', 'Encoder', 'EventHandler', 'EventSetDescriptor', 'ExceptionListener', 'Expression', 'FeatureDescriptor', 'IndexedPropertyChangeEvent', 'IndexedPropertyDescriptor', 'Introspector', 'MethodDescriptor', 'ParameterDescriptor', 'PersistenceDelegate', 'PropertyChangeEvent', 'PropertyChangeListener', 'PropertyChangeListenerProxy', 'PropertyChangeSupport', 'PropertyDescriptor', 'PropertyEditor', 'PropertyEditorManager', 'PropertyEditorSupport', 'PropertyVetoException', 'SimpleBeanInfo', 'VetoableChangeListener', 'VetoableChangeListenerProxy', 'VetoableChangeSupport', 'Visibility', 'XMLDecoder', 'XMLEncoder'
-            ),
-        19 => array (
-            'BeanContext', 'BeanContextChild', 'BeanContextChildComponentProxy', 'BeanContextChildSupport', 'BeanContextContainerProxy', 'BeanContextEvent', 'BeanContextMembershipEvent', 'BeanContextMembershipListener', 'BeanContextProxy', 'BeanContextServiceAvailableEvent', 'BeanContextServiceProvider', 'BeanContextServiceProviderBeanInfo', 'BeanContextServiceRevokedEvent', 'BeanContextServiceRevokedListener', 'BeanContextServices', 'BeanContextServicesListener', 'BeanContextServicesSupport', 'BeanContextServicesSupport.BCSSServiceProvider', 'BeanContextSupport', 'BeanContextSupport.BCSIterator'
-            ),
-        20 => array (
-            'BufferedInputStream', 'BufferedOutputStream', 'BufferedReader', 'BufferedWriter', 'ByteArrayInputStream', 'ByteArrayOutputStream', 'CharArrayReader', 'CharArrayWriter', 'CharConversionException', 'Closeable', 'DataInput', 'DataOutput', 'EOFException', 'Externalizable', 'File', 'FileDescriptor', 'FileInputStream', 'FileNotFoundException', 'FileOutputStream', 'FilePermission', 'FileReader', 'FileWriter', 'FilenameFilter', 'FilterInputStream', 'FilterOutputStream', 'FilterReader', 'FilterWriter', 'Flushable', 'IOException', 'InputStreamReader', 'InterruptedIOException', 'InvalidClassException', 'InvalidObjectException', 'LineNumberInputStream', 'LineNumberReader', 'NotActiveException', 'NotSerializableException', 'ObjectInput', 'ObjectInputStream', 'ObjectInputStream.GetField', 'ObjectInputValidation', 'ObjectOutput', 'ObjectOutputStream', 'ObjectOutputStream.PutField', 'ObjectStreamClass', 'ObjectStreamConstants', 'ObjectStreamException', 'ObjectStreamField', 'OptionalDataException', 'OutputStreamWriter',
-            'PipedInputStream', 'PipedOutputStream', 'PipedReader', 'PipedWriter', 'PrintStream', 'PrintWriter', 'PushbackInputStream', 'PushbackReader', 'RandomAccessFile', 'Reader', 'SequenceInputStream', 'Serializable', 'SerializablePermission', 'StreamCorruptedException', 'StreamTokenizer', 'StringBufferInputStream', 'StringReader', 'StringWriter', 'SyncFailedException', 'UTFDataFormatException', 'UnsupportedEncodingException', 'WriteAbortedException', 'Writer'
-            ),
-        21 => array (
-            'AbstractMethodError', 'Appendable', 'ArithmeticException', 'ArrayIndexOutOfBoundsException', 'ArrayStoreException', 'AssertionError', 'Boolean', 'Byte', 'CharSequence', 'Character', 'Character.Subset', 'Character.UnicodeBlock', 'Class', 'ClassCastException', 'ClassCircularityError', 'ClassFormatError', 'ClassLoader', 'ClassNotFoundException', 'CloneNotSupportedException', 'Cloneable', 'Comparable', 'Compiler', 'Deprecated', 'Double', 'Enum', 'EnumConstantNotPresentException', 'Error', 'Exception', 'ExceptionInInitializerError', 'Float', 'IllegalAccessError', 'IllegalAccessException', 'IllegalArgumentException', 'IllegalMonitorStateException', 'IllegalStateException', 'IllegalThreadStateException', 'IncompatibleClassChangeError', 'IndexOutOfBoundsException', 'InheritableThreadLocal', 'InstantiationError', 'InstantiationException', 'Integer', 'InternalError', 'InterruptedException', 'Iterable', 'LinkageError', 'Long', 'Math', 'NegativeArraySizeException', 'NoClassDefFoundError', 'NoSuchFieldError',
-            'NoSuchFieldException', 'NoSuchMethodError', 'NoSuchMethodException', 'NullPointerException', 'Number', 'NumberFormatException', 'OutOfMemoryError', 'Override', 'Package', 'Process', 'ProcessBuilder', 'Readable', 'Runnable', 'Runtime', 'RuntimeException', 'RuntimePermission', 'SecurityException', 'SecurityManager', 'Short', 'StackOverflowError', 'StackTraceElement', 'StrictMath', 'String', 'StringBuffer', 'StringBuilder', 'StringIndexOutOfBoundsException', 'SuppressWarnings', 'System', 'Thread', 'Thread.State', 'Thread.UncaughtExceptionHandler', 'ThreadDeath', 'ThreadGroup', 'ThreadLocal', 'Throwable', 'TypeNotPresentException', 'UnknownError', 'UnsatisfiedLinkError', 'UnsupportedClassVersionError', 'UnsupportedOperationException', 'VerifyError', 'VirtualMachineError', 'Void'
-            ),
-        22 => array (
-            'AnnotationFormatError', 'AnnotationTypeMismatchException', 'Documented', 'ElementType', 'IncompleteAnnotationException', 'Inherited', 'Retention', 'RetentionPolicy', 'Target'
-            ),
-        23 => array (
-            'ClassDefinition', 'ClassFileTransformer', 'IllegalClassFormatException', 'Instrumentation', 'UnmodifiableClassException'
-            ),
-        24 => array (
-            'ClassLoadingMXBean', 'CompilationMXBean', 'GarbageCollectorMXBean', 'ManagementFactory', 'ManagementPermission', 'MemoryMXBean', 'MemoryManagerMXBean', 'MemoryNotificationInfo', 'MemoryPoolMXBean', 'MemoryType', 'MemoryUsage', 'OperatingSystemMXBean', 'RuntimeMXBean', 'ThreadInfo', 'ThreadMXBean'
-            ),
-        25 => array (
-            'PhantomReference', 'ReferenceQueue', 'SoftReference', 'WeakReference'
-            ),
-        26 => array (
-            'AccessibleObject', 'AnnotatedElement', 'Constructor', 'Field', 'GenericArrayType', 'GenericDeclaration', 'GenericSignatureFormatError', 'InvocationHandler', 'InvocationTargetException', 'MalformedParameterizedTypeException', 'Member', 'Method', 'Modifier', 'ParameterizedType', 'ReflectPermission', 'Type', 'TypeVariable', 'UndeclaredThrowableException', 'WildcardType'
-            ),
-        27 => array (
-            'BigDecimal', 'BigInteger', 'MathContext', 'RoundingMode'
-            ),
-        28 => array (
-            'Authenticator', 'Authenticator.RequestorType', 'BindException', 'CacheRequest', 'CacheResponse', 'ContentHandlerFactory', 'CookieHandler', 'DatagramPacket', 'DatagramSocket', 'DatagramSocketImpl', 'DatagramSocketImplFactory', 'FileNameMap', 'HttpRetryException', 'HttpURLConnection', 'Inet4Address', 'Inet6Address', 'InetAddress', 'InetSocketAddress', 'JarURLConnection', 'MalformedURLException', 'MulticastSocket', 'NetPermission', 'NetworkInterface', 'NoRouteToHostException', 'PasswordAuthentication', 'PortUnreachableException', 'ProtocolException', 'Proxy.Type', 'ProxySelector', 'ResponseCache', 'SecureCacheResponse', 'ServerSocket', 'Socket', 'SocketAddress', 'SocketException', 'SocketImpl', 'SocketImplFactory', 'SocketOptions', 'SocketPermission', 'SocketTimeoutException', 'URI', 'URISyntaxException', 'URL', 'URLClassLoader', 'URLConnection', 'URLDecoder', 'URLEncoder', 'URLStreamHandler', 'URLStreamHandlerFactory', 'UnknownServiceException'
-            ),
-        29 => array (
-            'Buffer', 'BufferOverflowException', 'BufferUnderflowException', 'ByteBuffer', 'ByteOrder', 'CharBuffer', 'DoubleBuffer', 'FloatBuffer', 'IntBuffer', 'InvalidMarkException', 'LongBuffer', 'MappedByteBuffer', 'ReadOnlyBufferException', 'ShortBuffer'
-            ),
-        30 => array (
-            'AlreadyConnectedException', 'AsynchronousCloseException', 'ByteChannel', 'CancelledKeyException', 'Channel', 'Channels', 'ClosedByInterruptException', 'ClosedChannelException', 'ClosedSelectorException', 'ConnectionPendingException', 'DatagramChannel', 'FileChannel', 'FileChannel.MapMode', 'FileLock', 'FileLockInterruptionException', 'GatheringByteChannel', 'IllegalBlockingModeException', 'IllegalSelectorException', 'InterruptibleChannel', 'NoConnectionPendingException', 'NonReadableChannelException', 'NonWritableChannelException', 'NotYetBoundException', 'NotYetConnectedException', 'OverlappingFileLockException', 'Pipe', 'Pipe.SinkChannel', 'Pipe.SourceChannel', 'ReadableByteChannel', 'ScatteringByteChannel', 'SelectableChannel', 'SelectionKey', 'Selector', 'ServerSocketChannel', 'SocketChannel', 'UnresolvedAddressException', 'UnsupportedAddressTypeException', 'WritableByteChannel'
-            ),
-        31 => array (
-            'AbstractInterruptibleChannel', 'AbstractSelectableChannel', 'AbstractSelectionKey', 'AbstractSelector', 'SelectorProvider'
-            ),
-        32 => array (
-            'CharacterCodingException', 'Charset', 'CharsetDecoder', 'CharsetEncoder', 'CoderMalfunctionError', 'CoderResult', 'CodingErrorAction', 'IllegalCharsetNameException', 'MalformedInputException', 'UnmappableCharacterException', 'UnsupportedCharsetException'
-            ),
-        33 => array (
-            'CharsetProvider'
-            ),
-        34 => array (
-            'AccessException', 'AlreadyBoundException', 'ConnectIOException', 'MarshalException', 'MarshalledObject', 'Naming', 'NoSuchObjectException', 'NotBoundException', 'RMISecurityException', 'RMISecurityManager', 'Remote', 'RemoteException', 'ServerError', 'ServerException', 'ServerRuntimeException', 'StubNotFoundException', 'UnexpectedException', 'UnmarshalException'
-            ),
-        35 => array (
-            'Activatable', 'ActivateFailedException', 'ActivationDesc', 'ActivationException', 'ActivationGroup', 'ActivationGroupDesc', 'ActivationGroupDesc.CommandEnvironment', 'ActivationGroupID', 'ActivationGroup_Stub', 'ActivationID', 'ActivationInstantiator', 'ActivationMonitor', 'ActivationSystem', 'Activator', 'UnknownGroupException', 'UnknownObjectException'
-            ),
-        36 => array (
-            'DGC', 'Lease', 'VMID'
-            ),
-        37 => array (
-            'LocateRegistry', 'Registry', 'RegistryHandler'
-            ),
-        38 => array (
-            'ExportException', 'LoaderHandler', 'LogStream', 'ObjID', 'Operation', 'RMIClassLoader', 'RMIClassLoaderSpi', 'RMIClientSocketFactory', 'RMIFailureHandler', 'RMIServerSocketFactory', 'RMISocketFactory', 'RemoteCall', 'RemoteObject', 'RemoteObjectInvocationHandler', 'RemoteRef', 'RemoteServer', 'RemoteStub', 'ServerCloneException', 'ServerNotActiveException', 'ServerRef', 'Skeleton', 'SkeletonMismatchException', 'SkeletonNotFoundException', 'SocketSecurityException', 'UID', 'UnicastRemoteObject', 'Unreferenced'
-            ),
-        39 => array (
-            'AccessControlContext', 'AccessControlException', 'AccessController', 'AlgorithmParameterGenerator', 'AlgorithmParameterGeneratorSpi', 'AlgorithmParameters', 'AlgorithmParametersSpi', 'AllPermission', 'AuthProvider', 'BasicPermission', 'CodeSigner', 'CodeSource', 'DigestException', 'DigestInputStream', 'DigestOutputStream', 'DomainCombiner', 'GeneralSecurityException', 'Guard', 'GuardedObject', 'Identity', 'IdentityScope', 'InvalidAlgorithmParameterException', 'InvalidParameterException', 'Key', 'KeyException', 'KeyFactory', 'KeyFactorySpi', 'KeyManagementException', 'KeyPair', 'KeyPairGenerator', 'KeyPairGeneratorSpi', 'KeyRep', 'KeyRep.Type', 'KeyStore', 'KeyStore.Builder', 'KeyStore.CallbackHandlerProtection', 'KeyStore.Entry', 'KeyStore.LoadStoreParameter', 'KeyStore.PasswordProtection', 'KeyStore.PrivateKeyEntry', 'KeyStore.ProtectionParameter', 'KeyStore.SecretKeyEntry', 'KeyStore.TrustedCertificateEntry', 'KeyStoreException', 'KeyStoreSpi', 'MessageDigest', 'MessageDigestSpi',
-            'NoSuchAlgorithmException', 'NoSuchProviderException', 'PermissionCollection', 'Permissions', 'PrivateKey', 'PrivilegedAction', 'PrivilegedActionException', 'PrivilegedExceptionAction', 'ProtectionDomain', 'Provider', 'Provider.Service', 'ProviderException', 'PublicKey', 'SecureClassLoader', 'SecureRandom', 'SecureRandomSpi', 'Security', 'SecurityPermission', 'Signature', 'SignatureException', 'SignatureSpi', 'SignedObject', 'Signer', 'UnrecoverableEntryException', 'UnrecoverableKeyException', 'UnresolvedPermission'
-            ),
-        40 => array (
-            'Acl', 'AclEntry', 'AclNotFoundException', 'Group', 'LastOwnerException', 'NotOwnerException', 'Owner'
-            ),
-        41 => array (
-            'CRL', 'CRLException', 'CRLSelector', 'CertPath', 'CertPath.CertPathRep', 'CertPathBuilder', 'CertPathBuilderException', 'CertPathBuilderResult', 'CertPathBuilderSpi', 'CertPathParameters', 'CertPathValidator', 'CertPathValidatorException', 'CertPathValidatorResult', 'CertPathValidatorSpi', 'CertSelector', 'CertStore', 'CertStoreException', 'CertStoreParameters', 'CertStoreSpi', 'Certificate.CertificateRep', 'CertificateFactory', 'CertificateFactorySpi', 'CollectionCertStoreParameters', 'LDAPCertStoreParameters', 'PKIXBuilderParameters', 'PKIXCertPathBuilderResult', 'PKIXCertPathChecker', 'PKIXCertPathValidatorResult', 'PKIXParameters', 'PolicyNode', 'PolicyQualifierInfo', 'TrustAnchor', 'X509CRL', 'X509CRLEntry', 'X509CRLSelector', 'X509CertSelector', 'X509Extension'
-            ),
-        42 => array (
-            'DSAKey', 'DSAKeyPairGenerator', 'DSAParams', 'DSAPrivateKey', 'DSAPublicKey', 'ECKey', 'ECPrivateKey', 'ECPublicKey', 'RSAKey', 'RSAMultiPrimePrivateCrtKey', 'RSAPrivateCrtKey', 'RSAPrivateKey', 'RSAPublicKey'
-            ),
-        43 => array (
-            'AlgorithmParameterSpec', 'DSAParameterSpec', 'DSAPrivateKeySpec', 'DSAPublicKeySpec', 'ECField', 'ECFieldF2m', 'ECFieldFp', 'ECGenParameterSpec', 'ECParameterSpec', 'ECPoint', 'ECPrivateKeySpec', 'ECPublicKeySpec', 'EllipticCurve', 'EncodedKeySpec', 'InvalidKeySpecException', 'InvalidParameterSpecException', 'KeySpec', 'MGF1ParameterSpec', 'PKCS8EncodedKeySpec', 'PSSParameterSpec', 'RSAKeyGenParameterSpec', 'RSAMultiPrimePrivateCrtKeySpec', 'RSAOtherPrimeInfo', 'RSAPrivateCrtKeySpec', 'RSAPrivateKeySpec', 'RSAPublicKeySpec', 'X509EncodedKeySpec'
-            ),
-        44 => array (
-            'BatchUpdateException', 'Blob', 'CallableStatement', 'Clob', 'Connection', 'DataTruncation', 'DatabaseMetaData', 'Driver', 'DriverManager', 'DriverPropertyInfo', 'ParameterMetaData', 'PreparedStatement', 'Ref', 'ResultSet', 'ResultSetMetaData', 'SQLData', 'SQLException', 'SQLInput', 'SQLOutput', 'SQLPermission', 'SQLWarning', 'Savepoint', 'Struct', 'Time', 'Types'
-            ),
-        45 => array (
-            'AttributedCharacterIterator', 'AttributedCharacterIterator.Attribute', 'AttributedString', 'Bidi', 'BreakIterator', 'CharacterIterator', 'ChoiceFormat', 'CollationElementIterator', 'CollationKey', 'Collator', 'DateFormat', 'DateFormat.Field', 'DateFormatSymbols', 'DecimalFormat', 'DecimalFormatSymbols', 'FieldPosition', 'Format', 'Format.Field', 'MessageFormat', 'MessageFormat.Field', 'NumberFormat', 'NumberFormat.Field', 'ParseException', 'ParsePosition', 'RuleBasedCollator', 'SimpleDateFormat', 'StringCharacterIterator'
-            ),
-        46 => array (
-            'AbstractCollection', 'AbstractList', 'AbstractMap', 'AbstractQueue', 'AbstractSequentialList', 'AbstractSet', 'ArrayList', 'Arrays', 'BitSet', 'Calendar', 'Collection', 'Collections', 'Comparator', 'ConcurrentModificationException', 'Currency', 'Dictionary', 'DuplicateFormatFlagsException', 'EmptyStackException', 'EnumMap', 'EnumSet', 'Enumeration', 'EventListenerProxy', 'EventObject', 'FormatFlagsConversionMismatchException', 'Formattable', 'FormattableFlags', 'Formatter.BigDecimalLayoutForm', 'FormatterClosedException', 'GregorianCalendar', 'HashMap', 'HashSet', 'Hashtable', 'IdentityHashMap', 'IllegalFormatCodePointException', 'IllegalFormatConversionException', 'IllegalFormatException', 'IllegalFormatFlagsException', 'IllegalFormatPrecisionException', 'IllegalFormatWidthException', 'InputMismatchException', 'InvalidPropertiesFormatException', 'Iterator', 'LinkedHashMap', 'LinkedHashSet', 'LinkedList', 'ListIterator', 'ListResourceBundle', 'Locale', 'Map', 'Map.Entry', 'MissingFormatArgumentException',
-            'MissingFormatWidthException', 'MissingResourceException', 'NoSuchElementException', 'Observable', 'Observer', 'PriorityQueue', 'Properties', 'PropertyPermission', 'PropertyResourceBundle', 'Queue', 'Random', 'RandomAccess', 'ResourceBundle', 'Scanner', 'Set', 'SimpleTimeZone', 'SortedMap', 'SortedSet', 'Stack', 'StringTokenizer', 'TimeZone', 'TimerTask', 'TooManyListenersException', 'TreeMap', 'TreeSet', 'UUID', 'UnknownFormatConversionException', 'UnknownFormatFlagsException', 'Vector', 'WeakHashMap'
-            ),
-        47 => array (
-            'AbstractExecutorService', 'ArrayBlockingQueue', 'BlockingQueue', 'BrokenBarrierException', 'Callable', 'CancellationException', 'CompletionService', 'ConcurrentHashMap', 'ConcurrentLinkedQueue', 'ConcurrentMap', 'CopyOnWriteArrayList', 'CopyOnWriteArraySet', 'CountDownLatch', 'CyclicBarrier', 'DelayQueue', 'Delayed', 'Exchanger', 'ExecutionException', 'Executor', 'ExecutorCompletionService', 'ExecutorService', 'Executors', 'Future', 'FutureTask', 'LinkedBlockingQueue', 'PriorityBlockingQueue', 'RejectedExecutionException', 'RejectedExecutionHandler', 'ScheduledExecutorService', 'ScheduledFuture', 'ScheduledThreadPoolExecutor', 'Semaphore', 'SynchronousQueue', 'ThreadFactory', 'ThreadPoolExecutor', 'ThreadPoolExecutor.AbortPolicy', 'ThreadPoolExecutor.CallerRunsPolicy', 'ThreadPoolExecutor.DiscardOldestPolicy', 'ThreadPoolExecutor.DiscardPolicy', 'TimeUnit', 'TimeoutException'
-            ),
-        48 => array (
-            'AtomicBoolean', 'AtomicInteger', 'AtomicIntegerArray', 'AtomicIntegerFieldUpdater', 'AtomicLong', 'AtomicLongArray', 'AtomicLongFieldUpdater', 'AtomicMarkableReference', 'AtomicReference', 'AtomicReferenceArray', 'AtomicReferenceFieldUpdater', 'AtomicStampedReference'
-            ),
-        49 => array (
-            'AbstractQueuedSynchronizer', 'Condition', 'Lock', 'LockSupport', 'ReadWriteLock', 'ReentrantLock', 'ReentrantReadWriteLock', 'ReentrantReadWriteLock.ReadLock', 'ReentrantReadWriteLock.WriteLock'
-            ),
-        50 => array (
-            'Attributes.Name', 'JarEntry', 'JarException', 'JarFile', 'JarInputStream', 'JarOutputStream', 'Manifest', 'Pack200', 'Pack200.Packer', 'Pack200.Unpacker'
-            ),
-        51 => array (
-            'ConsoleHandler', 'ErrorManager', 'FileHandler', 'Filter', 'Handler', 'Level', 'LogManager', 'LogRecord', 'Logger', 'LoggingMXBean', 'LoggingPermission', 'MemoryHandler', 'SimpleFormatter', 'SocketHandler', 'StreamHandler', 'XMLFormatter'
-            ),
-        52 => array (
-            'AbstractPreferences', 'BackingStoreException', 'InvalidPreferencesFormatException', 'NodeChangeEvent', 'NodeChangeListener', 'PreferenceChangeEvent', 'PreferenceChangeListener', 'Preferences', 'PreferencesFactory'
-            ),
-        53 => array (
-            'MatchResult', 'Matcher', 'Pattern', 'PatternSyntaxException'
-            ),
-        54 => array (
-            'Adler32', 'CRC32', 'CheckedInputStream', 'CheckedOutputStream', 'Checksum', 'DataFormatException', 'Deflater', 'DeflaterOutputStream', 'GZIPInputStream', 'GZIPOutputStream', 'Inflater', 'InflaterInputStream', 'ZipEntry', 'ZipException', 'ZipFile', 'ZipInputStream', 'ZipOutputStream'
-            ),
-        55 => array (
-            'Accessible', 'AccessibleAction', 'AccessibleAttributeSequence', 'AccessibleBundle', 'AccessibleComponent', 'AccessibleContext', 'AccessibleEditableText', 'AccessibleExtendedComponent', 'AccessibleExtendedTable', 'AccessibleExtendedText', 'AccessibleHyperlink', 'AccessibleHypertext', 'AccessibleIcon', 'AccessibleKeyBinding', 'AccessibleRelation', 'AccessibleRelationSet', 'AccessibleResourceBundle', 'AccessibleRole', 'AccessibleSelection', 'AccessibleState', 'AccessibleStateSet', 'AccessibleStreamable', 'AccessibleTable', 'AccessibleTableModelChange', 'AccessibleText', 'AccessibleTextSequence', 'AccessibleValue'
-            ),
-        56 => array (
-            'ActivityCompletedException', 'ActivityRequiredException', 'InvalidActivityException'
-            ),
-        57 => array (
-            'BadPaddingException', 'Cipher', 'CipherInputStream', 'CipherOutputStream', 'CipherSpi', 'EncryptedPrivateKeyInfo', 'ExemptionMechanism', 'ExemptionMechanismException', 'ExemptionMechanismSpi', 'IllegalBlockSizeException', 'KeyAgreement', 'KeyAgreementSpi', 'KeyGenerator', 'KeyGeneratorSpi', 'Mac', 'MacSpi', 'NoSuchPaddingException', 'NullCipher', 'SealedObject', 'SecretKey', 'SecretKeyFactory', 'SecretKeyFactorySpi', 'ShortBufferException'
-            ),
-        58 => array (
-            'DHKey', 'DHPrivateKey', 'DHPublicKey', 'PBEKey'
-            ),
-        59 => array (
-            'DESKeySpec', 'DESedeKeySpec', 'DHGenParameterSpec', 'DHParameterSpec', 'DHPrivateKeySpec', 'DHPublicKeySpec', 'IvParameterSpec', 'OAEPParameterSpec', 'PBEKeySpec', 'PBEParameterSpec', 'PSource', 'PSource.PSpecified', 'RC2ParameterSpec', 'RC5ParameterSpec', 'SecretKeySpec'
-            ),
-        60 => array (
-            'IIOException', 'IIOImage', 'IIOParam', 'IIOParamController', 'ImageIO', 'ImageReadParam', 'ImageReader', 'ImageTranscoder', 'ImageTypeSpecifier', 'ImageWriteParam', 'ImageWriter'
-            ),
-        61 => array (
-            'IIOReadProgressListener', 'IIOReadUpdateListener', 'IIOReadWarningListener', 'IIOWriteProgressListener', 'IIOWriteWarningListener'
-            ),
-        62 => array (
-            'IIOInvalidTreeException', 'IIOMetadata', 'IIOMetadataController', 'IIOMetadataFormat', 'IIOMetadataFormatImpl', 'IIOMetadataNode'
-            ),
-        63 => array (
-            'BMPImageWriteParam'
-            ),
-        64 => array (
-            'JPEGHuffmanTable', 'JPEGImageReadParam', 'JPEGImageWriteParam', 'JPEGQTable'
-            ),
-        65 => array (
-            'IIORegistry', 'IIOServiceProvider', 'ImageInputStreamSpi', 'ImageOutputStreamSpi', 'ImageReaderSpi', 'ImageReaderWriterSpi', 'ImageTranscoderSpi', 'ImageWriterSpi', 'RegisterableService', 'ServiceRegistry', 'ServiceRegistry.Filter'
-            ),
-        66 => array (
-            'FileCacheImageInputStream', 'FileCacheImageOutputStream', 'FileImageInputStream', 'FileImageOutputStream', 'IIOByteBuffer', 'ImageInputStream', 'ImageInputStreamImpl', 'ImageOutputStream', 'ImageOutputStreamImpl', 'MemoryCacheImageInputStream', 'MemoryCacheImageOutputStream'
-            ),
-        67 => array (
-            'AttributeChangeNotification', 'AttributeChangeNotificationFilter', 'AttributeNotFoundException', 'AttributeValueExp', 'BadAttributeValueExpException', 'BadBinaryOpValueExpException', 'BadStringOperationException', 'Descriptor', 'DescriptorAccess', 'DynamicMBean', 'InstanceAlreadyExistsException', 'InstanceNotFoundException', 'InvalidApplicationException', 'JMException', 'JMRuntimeException', 'ListenerNotFoundException', 'MBeanAttributeInfo', 'MBeanConstructorInfo', 'MBeanException', 'MBeanFeatureInfo', 'MBeanInfo', 'MBeanNotificationInfo', 'MBeanOperationInfo', 'MBeanParameterInfo', 'MBeanPermission', 'MBeanRegistration', 'MBeanRegistrationException', 'MBeanServer', 'MBeanServerBuilder', 'MBeanServerConnection', 'MBeanServerDelegate', 'MBeanServerDelegateMBean', 'MBeanServerFactory', 'MBeanServerInvocationHandler', 'MBeanServerNotification', 'MBeanServerPermission', 'MBeanTrustPermission', 'MalformedObjectNameException', 'NotCompliantMBeanException', 'Notification', 'NotificationBroadcaster',
-            'NotificationBroadcasterSupport', 'NotificationEmitter', 'NotificationFilter', 'NotificationFilterSupport', 'NotificationListener', 'ObjectInstance', 'ObjectName', 'OperationsException', 'PersistentMBean', 'Query', 'QueryEval', 'QueryExp', 'ReflectionException', 'RuntimeErrorException', 'RuntimeMBeanException', 'RuntimeOperationsException', 'ServiceNotFoundException', 'StandardMBean', 'StringValueExp', 'ValueExp'
-            ),
-        68 => array (
-            'ClassLoaderRepository', 'MLet', 'MLetMBean', 'PrivateClassLoader', 'PrivateMLet'
-            ),
-        69 => array (
-            'DescriptorSupport', 'InvalidTargetObjectTypeException', 'ModelMBean', 'ModelMBeanAttributeInfo', 'ModelMBeanConstructorInfo', 'ModelMBeanInfo', 'ModelMBeanInfoSupport', 'ModelMBeanNotificationBroadcaster', 'ModelMBeanNotificationInfo', 'ModelMBeanOperationInfo', 'RequiredModelMBean', 'XMLParseException'
-            ),
-        70 => array (
-            'CounterMonitor', 'CounterMonitorMBean', 'GaugeMonitor', 'GaugeMonitorMBean', 'Monitor', 'MonitorMBean', 'MonitorNotification', 'MonitorSettingException', 'StringMonitor', 'StringMonitorMBean'
-            ),
-        71 => array (
-            'ArrayType', 'CompositeData', 'CompositeDataSupport', 'CompositeType', 'InvalidOpenTypeException', 'KeyAlreadyExistsException', 'OpenDataException', 'OpenMBeanAttributeInfo', 'OpenMBeanAttributeInfoSupport', 'OpenMBeanConstructorInfo', 'OpenMBeanConstructorInfoSupport', 'OpenMBeanInfo', 'OpenMBeanInfoSupport', 'OpenMBeanOperationInfo', 'OpenMBeanOperationInfoSupport', 'OpenMBeanParameterInfo', 'OpenMBeanParameterInfoSupport', 'SimpleType', 'TabularData', 'TabularDataSupport', 'TabularType'
-            ),
-        72 => array (
-            'InvalidRelationIdException', 'InvalidRelationServiceException', 'InvalidRelationTypeException', 'InvalidRoleInfoException', 'InvalidRoleValueException', 'MBeanServerNotificationFilter', 'Relation', 'RelationException', 'RelationNotFoundException', 'RelationNotification', 'RelationService', 'RelationServiceMBean', 'RelationServiceNotRegisteredException', 'RelationSupport', 'RelationSupportMBean', 'RelationType', 'RelationTypeNotFoundException', 'RelationTypeSupport', 'Role', 'RoleInfo', 'RoleInfoNotFoundException', 'RoleList', 'RoleNotFoundException', 'RoleResult', 'RoleStatus', 'RoleUnresolved', 'RoleUnresolvedList'
-            ),
-        73 => array (
-            'JMXAuthenticator', 'JMXConnectionNotification', 'JMXConnector', 'JMXConnectorFactory', 'JMXConnectorProvider', 'JMXConnectorServer', 'JMXConnectorServerFactory', 'JMXConnectorServerMBean', 'JMXConnectorServerProvider', 'JMXPrincipal', 'JMXProviderException', 'JMXServerErrorException', 'JMXServiceURL', 'MBeanServerForwarder', 'NotificationResult', 'SubjectDelegationPermission', 'TargetedNotification'
-            ),
-        74 => array (
-            'RMIConnection', 'RMIConnectionImpl', 'RMIConnectionImpl_Stub', 'RMIConnector', 'RMIConnectorServer', 'RMIIIOPServerImpl', 'RMIJRMPServerImpl', 'RMIServer', 'RMIServerImpl', 'RMIServerImpl_Stub'
-            ),
-        75 => array (
-            'TimerAlarmClockNotification', 'TimerMBean', 'TimerNotification'
-            ),
-        76 => array (
-            'AuthenticationNotSupportedException', 'BinaryRefAddr', 'CannotProceedException', 'CommunicationException', 'CompositeName', 'CompoundName', 'ConfigurationException', 'ContextNotEmptyException', 'InitialContext', 'InsufficientResourcesException', 'InterruptedNamingException', 'InvalidNameException', 'LimitExceededException', 'LinkException', 'LinkLoopException', 'LinkRef', 'MalformedLinkException', 'Name', 'NameAlreadyBoundException', 'NameClassPair', 'NameNotFoundException', 'NameParser', 'NamingEnumeration', 'NamingException', 'NamingSecurityException', 'NoInitialContextException', 'NoPermissionException', 'NotContextException', 'OperationNotSupportedException', 'PartialResultException', 'RefAddr', 'Referenceable', 'ReferralException', 'ServiceUnavailableException', 'SizeLimitExceededException', 'StringRefAddr', 'TimeLimitExceededException'
-            ),
-        77 => array (
-            'AttributeInUseException', 'AttributeModificationException', 'BasicAttribute', 'BasicAttributes', 'DirContext', 'InitialDirContext', 'InvalidAttributeIdentifierException', 'InvalidAttributesException', 'InvalidSearchControlsException', 'InvalidSearchFilterException', 'ModificationItem', 'NoSuchAttributeException', 'SchemaViolationException', 'SearchControls', 'SearchResult'
-            ),
-        78 => array (
-            'EventContext', 'EventDirContext', 'NamespaceChangeListener', 'NamingEvent', 'NamingExceptionEvent', 'NamingListener', 'ObjectChangeListener'
-            ),
-        79 => array (
-            'BasicControl', 'ControlFactory', 'ExtendedRequest', 'ExtendedResponse', 'HasControls', 'InitialLdapContext', 'LdapContext', 'LdapName', 'LdapReferralException', 'ManageReferralControl', 'PagedResultsControl', 'PagedResultsResponseControl', 'Rdn', 'SortControl', 'SortKey', 'SortResponseControl', 'StartTlsRequest', 'StartTlsResponse', 'UnsolicitedNotification', 'UnsolicitedNotificationEvent', 'UnsolicitedNotificationListener'
-            ),
-        80 => array (
-            'DirObjectFactory', 'DirStateFactory', 'DirStateFactory.Result', 'DirectoryManager', 'InitialContextFactory', 'InitialContextFactoryBuilder', 'NamingManager', 'ObjectFactory', 'ObjectFactoryBuilder', 'ResolveResult', 'Resolver', 'StateFactory'
-            ),
-        81 => array (
-            'ServerSocketFactory', 'SocketFactory'
-            ),
-        82 => array (
-            'CertPathTrustManagerParameters', 'HandshakeCompletedEvent', 'HandshakeCompletedListener', 'HostnameVerifier', 'HttpsURLConnection', 'KeyManager', 'KeyManagerFactory', 'KeyManagerFactorySpi', 'KeyStoreBuilderParameters', 'ManagerFactoryParameters', 'SSLContext', 'SSLContextSpi', 'SSLEngine', 'SSLEngineResult', 'SSLEngineResult.HandshakeStatus', 'SSLEngineResult.Status', 'SSLException', 'SSLHandshakeException', 'SSLKeyException', 'SSLPeerUnverifiedException', 'SSLPermission', 'SSLProtocolException', 'SSLServerSocket', 'SSLServerSocketFactory', 'SSLSession', 'SSLSessionBindingEvent', 'SSLSessionBindingListener', 'SSLSessionContext', 'SSLSocket', 'SSLSocketFactory', 'TrustManager', 'TrustManagerFactory', 'TrustManagerFactorySpi', 'X509ExtendedKeyManager', 'X509KeyManager', 'X509TrustManager'
-            ),
-        83 => array (
-            'AttributeException', 'CancelablePrintJob', 'Doc', 'DocFlavor', 'DocFlavor.BYTE_ARRAY', 'DocFlavor.CHAR_ARRAY', 'DocFlavor.INPUT_STREAM', 'DocFlavor.READER', 'DocFlavor.SERVICE_FORMATTED', 'DocFlavor.STRING', 'DocFlavor.URL', 'DocPrintJob', 'FlavorException', 'MultiDoc', 'MultiDocPrintJob', 'MultiDocPrintService', 'PrintException', 'PrintService', 'PrintServiceLookup', 'ServiceUI', 'ServiceUIFactory', 'SimpleDoc', 'StreamPrintService', 'StreamPrintServiceFactory', 'URIException'
-            ),
-        84 => array (
-            'AttributeSetUtilities', 'DateTimeSyntax', 'DocAttribute', 'DocAttributeSet', 'EnumSyntax', 'HashAttributeSet', 'HashDocAttributeSet', 'HashPrintJobAttributeSet', 'HashPrintRequestAttributeSet', 'HashPrintServiceAttributeSet', 'IntegerSyntax', 'PrintJobAttribute', 'PrintJobAttributeSet', 'PrintRequestAttribute', 'PrintRequestAttributeSet', 'PrintServiceAttribute', 'PrintServiceAttributeSet', 'ResolutionSyntax', 'SetOfIntegerSyntax', 'Size2DSyntax', 'SupportedValuesAttribute', 'TextSyntax', 'URISyntax', 'UnmodifiableSetException'
-            ),
-        85 => array (
-            'Chromaticity', 'ColorSupported', 'Compression', 'Copies', 'CopiesSupported', 'DateTimeAtCompleted', 'DateTimeAtCreation', 'DateTimeAtProcessing', 'Destination', 'DocumentName', 'Fidelity', 'Finishings', 'JobHoldUntil', 'JobImpressions', 'JobImpressionsCompleted', 'JobImpressionsSupported', 'JobKOctets', 'JobKOctetsProcessed', 'JobKOctetsSupported', 'JobMediaSheets', 'JobMediaSheetsCompleted', 'JobMediaSheetsSupported', 'JobMessageFromOperator', 'JobName', 'JobOriginatingUserName', 'JobPriority', 'JobPrioritySupported', 'JobSheets', 'JobState', 'JobStateReason', 'JobStateReasons', 'Media', 'MediaName', 'MediaPrintableArea', 'MediaSize', 'MediaSize.Engineering', 'MediaSize.ISO', 'MediaSize.JIS', 'MediaSize.NA', 'MediaSize.Other', 'MediaSizeName', 'MediaTray', 'MultipleDocumentHandling', 'NumberOfDocuments', 'NumberOfInterveningJobs', 'NumberUp', 'NumberUpSupported', 'OrientationRequested', 'OutputDeviceAssigned', 'PDLOverrideSupported', 'PageRanges', 'PagesPerMinute', 'PagesPerMinuteColor',
-            'PresentationDirection', 'PrintQuality', 'PrinterInfo', 'PrinterIsAcceptingJobs', 'PrinterLocation', 'PrinterMakeAndModel', 'PrinterMessageFromOperator', 'PrinterMoreInfo', 'PrinterMoreInfoManufacturer', 'PrinterName', 'PrinterResolution', 'PrinterState', 'PrinterStateReason', 'PrinterStateReasons', 'PrinterURI', 'QueuedJobCount', 'ReferenceUriSchemesSupported', 'RequestingUserName', 'Severity', 'SheetCollate', 'Sides'
-            ),
-        86 => array (
-            'PrintEvent', 'PrintJobAdapter', 'PrintJobAttributeEvent', 'PrintJobAttributeListener', 'PrintJobEvent', 'PrintJobListener', 'PrintServiceAttributeEvent', 'PrintServiceAttributeListener'
-            ),
-        87 => array (
-            'PortableRemoteObject'
-            ),
-        88 => array (
-            'ClassDesc', 'PortableRemoteObjectDelegate', 'Stub', 'StubDelegate', 'Tie', 'Util', 'UtilDelegate', 'ValueHandler', 'ValueHandlerMultiFormat'
-            ),
-        89 => array (
-            'SslRMIClientSocketFactory', 'SslRMIServerSocketFactory'
-            ),
-        90 => array (
-            'AuthPermission', 'DestroyFailedException', 'Destroyable', 'PrivateCredentialPermission', 'RefreshFailedException', 'Refreshable', 'Subject', 'SubjectDomainCombiner'
-            ),
-        91 => array (
-            'Callback', 'CallbackHandler', 'ChoiceCallback', 'ConfirmationCallback', 'LanguageCallback', 'NameCallback', 'PasswordCallback', 'TextInputCallback', 'TextOutputCallback', 'UnsupportedCallbackException'
-            ),
-        92 => array (
-            'DelegationPermission', 'KerberosKey', 'KerberosPrincipal', 'KerberosTicket', 'ServicePermission'
-            ),
-        93 => array (
-            'AccountException', 'AccountExpiredException', 'AccountLockedException', 'AccountNotFoundException', 'AppConfigurationEntry', 'AppConfigurationEntry.LoginModuleControlFlag', 'Configuration', 'CredentialException', 'CredentialExpiredException', 'CredentialNotFoundException', 'FailedLoginException', 'LoginContext', 'LoginException'
-            ),
-        94 => array (
-            'LoginModule'
-            ),
-        95 => array (
-            'X500Principal', 'X500PrivateCredential'
-            ),
-        96 => array (
-            'AuthorizeCallback', 'RealmCallback', 'RealmChoiceCallback', 'Sasl', 'SaslClient', 'SaslClientFactory', 'SaslException', 'SaslServer', 'SaslServerFactory'
-            ),
-        97 => array (
-            'ControllerEventListener', 'Instrument', 'InvalidMidiDataException', 'MetaEventListener', 'MetaMessage', 'MidiChannel', 'MidiDevice', 'MidiDevice.Info', 'MidiEvent', 'MidiFileFormat', 'MidiMessage', 'MidiSystem', 'MidiUnavailableException', 'Patch', 'Receiver', 'Sequence', 'Sequencer', 'Sequencer.SyncMode', 'ShortMessage', 'Soundbank', 'SoundbankResource', 'Synthesizer', 'SysexMessage', 'Track', 'Transmitter', 'VoiceStatus'
-            ),
-        98 => array (
-            'MidiDeviceProvider', 'MidiFileReader', 'MidiFileWriter', 'SoundbankReader'
-            ),
-        99 => array (
-            'AudioFileFormat', 'AudioFileFormat.Type', 'AudioFormat', 'AudioFormat.Encoding', 'AudioInputStream', 'AudioPermission', 'AudioSystem', 'BooleanControl', 'BooleanControl.Type', 'Clip', 'CompoundControl', 'CompoundControl.Type', 'Control.Type', 'DataLine', 'DataLine.Info', 'EnumControl', 'EnumControl.Type', 'FloatControl', 'FloatControl.Type', 'Line', 'Line.Info', 'LineEvent', 'LineEvent.Type', 'LineListener', 'LineUnavailableException', 'Mixer', 'Mixer.Info', 'Port', 'Port.Info', 'ReverbType', 'SourceDataLine', 'TargetDataLine', 'UnsupportedAudioFileException'
-            ),
-        100 => array (
-            'AudioFileReader', 'AudioFileWriter', 'FormatConversionProvider', 'MixerProvider'
-            ),
-        101 => array (
-            'ConnectionEvent', 'ConnectionEventListener', 'ConnectionPoolDataSource', 'DataSource', 'PooledConnection', 'RowSet', 'RowSetEvent', 'RowSetInternal', 'RowSetListener', 'RowSetMetaData', 'RowSetReader', 'RowSetWriter', 'XAConnection', 'XADataSource'
-            ),
-        102 => array (
-            'BaseRowSet', 'CachedRowSet', 'FilteredRowSet', 'JdbcRowSet', 'JoinRowSet', 'Joinable', 'Predicate', 'RowSetMetaDataImpl', 'RowSetWarning', 'WebRowSet'
-            ),
-        103 => array (
-            'SQLInputImpl', 'SQLOutputImpl', 'SerialArray', 'SerialBlob', 'SerialClob', 'SerialDatalink', 'SerialException', 'SerialJavaObject', 'SerialRef', 'SerialStruct'
-            ),
-        104 => array (
-            'SyncFactory', 'SyncFactoryException', 'SyncProvider', 'SyncProviderException', 'SyncResolver', 'TransactionalWriter', 'XmlReader', 'XmlWriter'
-            ),
-        105 => array (
-            'AbstractAction', 'AbstractButton', 'AbstractCellEditor', 'AbstractListModel', 'AbstractSpinnerModel', 'Action', 'ActionMap', 'BorderFactory', 'BoundedRangeModel', 'Box', 'Box.Filler', 'BoxLayout', 'ButtonGroup', 'ButtonModel', 'CellEditor', 'CellRendererPane', 'ComboBoxEditor', 'ComboBoxModel', 'ComponentInputMap', 'DebugGraphics', 'DefaultBoundedRangeModel', 'DefaultButtonModel', 'DefaultCellEditor', 'DefaultComboBoxModel', 'DefaultDesktopManager', 'DefaultFocusManager', 'DefaultListCellRenderer', 'DefaultListCellRenderer.UIResource', 'DefaultListModel', 'DefaultListSelectionModel', 'DefaultSingleSelectionModel', 'DesktopManager', 'FocusManager', 'GrayFilter', 'Icon', 'ImageIcon', 'InputMap', 'InputVerifier', 'InternalFrameFocusTraversalPolicy', 'JApplet', 'JButton', 'JCheckBox', 'JCheckBoxMenuItem', 'JColorChooser', 'JComboBox', 'JComboBox.KeySelectionManager', 'JComponent', 'JDesktopPane', 'JDialog', 'JEditorPane', 'JFileChooser', 'JFormattedTextField', 'JFormattedTextField.AbstractFormatter',
-            'JFormattedTextField.AbstractFormatterFactory', 'JFrame', 'JInternalFrame', 'JInternalFrame.JDesktopIcon', 'JLabel', 'JLayeredPane', 'JList', 'JMenu', 'JMenuBar', 'JMenuItem', 'JOptionPane', 'JPanel', 'JPasswordField', 'JPopupMenu', 'JPopupMenu.Separator', 'JProgressBar', 'JRadioButton', 'JRadioButtonMenuItem', 'JRootPane', 'JScrollBar', 'JScrollPane', 'JSeparator', 'JSlider', 'JSpinner', 'JSpinner.DateEditor', 'JSpinner.DefaultEditor', 'JSpinner.ListEditor', 'JSpinner.NumberEditor', 'JSplitPane', 'JTabbedPane', 'JTable', 'JTable.PrintMode', 'JTextArea', 'JTextField', 'JTextPane', 'JToggleButton', 'JToggleButton.ToggleButtonModel', 'JToolBar', 'JToolBar.Separator', 'JToolTip', 'JTree', 'JTree.DynamicUtilTreeNode', 'JTree.EmptySelectionModel', 'JViewport', 'JWindow', 'KeyStroke', 'LayoutFocusTraversalPolicy', 'ListCellRenderer', 'ListModel', 'ListSelectionModel', 'LookAndFeel', 'MenuElement', 'MenuSelectionManager', 'MutableComboBoxModel', 'OverlayLayout', 'Popup', 'PopupFactory', 'ProgressMonitor',
-            'ProgressMonitorInputStream', 'Renderer', 'RepaintManager', 'RootPaneContainer', 'ScrollPaneConstants', 'ScrollPaneLayout', 'ScrollPaneLayout.UIResource', 'Scrollable', 'SingleSelectionModel', 'SizeRequirements', 'SizeSequence', 'SortingFocusTraversalPolicy', 'SpinnerDateModel', 'SpinnerListModel', 'SpinnerModel', 'SpinnerNumberModel', 'Spring', 'SpringLayout', 'SpringLayout.Constraints', 'SwingConstants', 'SwingUtilities', 'ToolTipManager', 'TransferHandler', 'UIDefaults', 'UIDefaults.ActiveValue', 'UIDefaults.LazyInputMap', 'UIDefaults.LazyValue', 'UIDefaults.ProxyLazyValue', 'UIManager', 'UIManager.LookAndFeelInfo', 'UnsupportedLookAndFeelException', 'ViewportLayout', 'WindowConstants'
-            ),
-        106 => array (
-            'AbstractBorder', 'BevelBorder', 'Border', 'CompoundBorder', 'EmptyBorder', 'EtchedBorder', 'LineBorder', 'MatteBorder', 'SoftBevelBorder', 'TitledBorder'
-            ),
-        107 => array (
-            'AbstractColorChooserPanel', 'ColorChooserComponentFactory', 'ColorSelectionModel', 'DefaultColorSelectionModel'
-            ),
-        108 => array (
-            'AncestorEvent', 'AncestorListener', 'CaretEvent', 'CaretListener', 'CellEditorListener', 'ChangeEvent', 'ChangeListener', 'DocumentEvent.ElementChange', 'DocumentEvent.EventType', 'DocumentListener', 'EventListenerList', 'HyperlinkEvent', 'HyperlinkEvent.EventType', 'HyperlinkListener', 'InternalFrameAdapter', 'InternalFrameEvent', 'InternalFrameListener', 'ListDataEvent', 'ListDataListener', 'ListSelectionEvent', 'ListSelectionListener', 'MenuDragMouseEvent', 'MenuDragMouseListener', 'MenuEvent', 'MenuKeyEvent', 'MenuKeyListener', 'MenuListener', 'MouseInputAdapter', 'MouseInputListener', 'PopupMenuEvent', 'PopupMenuListener', 'SwingPropertyChangeSupport', 'TableColumnModelEvent', 'TableColumnModelListener', 'TableModelEvent', 'TableModelListener', 'TreeExpansionEvent', 'TreeExpansionListener', 'TreeModelEvent', 'TreeModelListener', 'TreeSelectionEvent', 'TreeSelectionListener', 'TreeWillExpandListener', 'UndoableEditEvent', 'UndoableEditListener'
-            ),
-        109 => array (
-            'FileSystemView', 'FileView'
-            ),
-        110 => array (
-            'ActionMapUIResource', 'BorderUIResource', 'BorderUIResource.BevelBorderUIResource', 'BorderUIResource.CompoundBorderUIResource', 'BorderUIResource.EmptyBorderUIResource', 'BorderUIResource.EtchedBorderUIResource', 'BorderUIResource.LineBorderUIResource', 'BorderUIResource.MatteBorderUIResource', 'BorderUIResource.TitledBorderUIResource', 'ButtonUI', 'ColorChooserUI', 'ColorUIResource', 'ComboBoxUI', 'ComponentInputMapUIResource', 'ComponentUI', 'DesktopIconUI', 'DesktopPaneUI', 'DimensionUIResource', 'FileChooserUI', 'FontUIResource', 'IconUIResource', 'InputMapUIResource', 'InsetsUIResource', 'InternalFrameUI', 'LabelUI', 'ListUI', 'MenuBarUI', 'MenuItemUI', 'OptionPaneUI', 'PanelUI', 'PopupMenuUI', 'ProgressBarUI', 'RootPaneUI', 'ScrollBarUI', 'ScrollPaneUI', 'SeparatorUI', 'SliderUI', 'SpinnerUI', 'SplitPaneUI', 'TabbedPaneUI', 'TableHeaderUI', 'TableUI', 'TextUI', 'ToolBarUI', 'ToolTipUI', 'TreeUI', 'UIResource', 'ViewportUI'
-            ),
-        111 => array (
-            'BasicArrowButton', 'BasicBorders', 'BasicBorders.ButtonBorder', 'BasicBorders.FieldBorder', 'BasicBorders.MarginBorder', 'BasicBorders.MenuBarBorder', 'BasicBorders.RadioButtonBorder', 'BasicBorders.RolloverButtonBorder', 'BasicBorders.SplitPaneBorder', 'BasicBorders.ToggleButtonBorder', 'BasicButtonListener', 'BasicButtonUI', 'BasicCheckBoxMenuItemUI', 'BasicCheckBoxUI', 'BasicColorChooserUI', 'BasicComboBoxEditor', 'BasicComboBoxEditor.UIResource', 'BasicComboBoxRenderer', 'BasicComboBoxRenderer.UIResource', 'BasicComboBoxUI', 'BasicComboPopup', 'BasicDesktopIconUI', 'BasicDesktopPaneUI', 'BasicDirectoryModel', 'BasicEditorPaneUI', 'BasicFileChooserUI', 'BasicFormattedTextFieldUI', 'BasicGraphicsUtils', 'BasicHTML', 'BasicIconFactory', 'BasicInternalFrameTitlePane', 'BasicInternalFrameUI', 'BasicLabelUI', 'BasicListUI', 'BasicLookAndFeel', 'BasicMenuBarUI', 'BasicMenuItemUI', 'BasicMenuUI', 'BasicOptionPaneUI', 'BasicOptionPaneUI.ButtonAreaLayout', 'BasicPanelUI', 'BasicPasswordFieldUI',
-            'BasicPopupMenuSeparatorUI', 'BasicPopupMenuUI', 'BasicProgressBarUI', 'BasicRadioButtonMenuItemUI', 'BasicRadioButtonUI', 'BasicRootPaneUI', 'BasicScrollBarUI', 'BasicScrollPaneUI', 'BasicSeparatorUI', 'BasicSliderUI', 'BasicSpinnerUI', 'BasicSplitPaneDivider', 'BasicSplitPaneUI', 'BasicTabbedPaneUI', 'BasicTableHeaderUI', 'BasicTableUI', 'BasicTextAreaUI', 'BasicTextFieldUI', 'BasicTextPaneUI', 'BasicTextUI', 'BasicTextUI.BasicCaret', 'BasicTextUI.BasicHighlighter', 'BasicToggleButtonUI', 'BasicToolBarSeparatorUI', 'BasicToolBarUI', 'BasicToolTipUI', 'BasicTreeUI', 'BasicViewportUI', 'ComboPopup', 'DefaultMenuLayout'
-            ),
-        112 => array (
-            'DefaultMetalTheme', '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', 'MetalMenuBarUI', 'MetalPopupMenuSeparatorUI', 'MetalProgressBarUI', 'MetalRadioButtonUI', 'MetalRootPaneUI', 'MetalScrollBarUI', 'MetalScrollButton', 'MetalScrollPaneUI', 'MetalSeparatorUI', 'MetalSliderUI', 'MetalSplitPaneUI', 'MetalTabbedPaneUI', 'MetalTextFieldUI', 'MetalTheme', 'MetalToggleButtonUI', 'MetalToolBarUI', 'MetalToolTipUI', 'MetalTreeUI', 'OceanTheme'
-            ),
-        113 => array (
-            'MultiButtonUI', 'MultiColorChooserUI', 'MultiComboBoxUI', 'MultiDesktopIconUI', 'MultiDesktopPaneUI', 'MultiFileChooserUI', 'MultiInternalFrameUI', 'MultiLabelUI', 'MultiListUI', 'MultiLookAndFeel', 'MultiMenuBarUI', 'MultiMenuItemUI', 'MultiOptionPaneUI', 'MultiPanelUI', 'MultiPopupMenuUI', 'MultiProgressBarUI', 'MultiRootPaneUI', 'MultiScrollBarUI', 'MultiScrollPaneUI', 'MultiSeparatorUI', 'MultiSliderUI', 'MultiSpinnerUI', 'MultiSplitPaneUI', 'MultiTabbedPaneUI', 'MultiTableHeaderUI', 'MultiTableUI', 'MultiTextUI', 'MultiToolBarUI', 'MultiToolTipUI', 'MultiTreeUI', 'MultiViewportUI'
-            ),
-        114 => array (
-            'ColorType', 'Region', 'SynthConstants', 'SynthContext', 'SynthGraphicsUtils', 'SynthLookAndFeel', 'SynthPainter', 'SynthStyle', 'SynthStyleFactory'
-            ),
-        115 => array (
-            'AbstractTableModel', 'DefaultTableCellRenderer', 'DefaultTableCellRenderer.UIResource', 'DefaultTableColumnModel', 'DefaultTableModel', 'JTableHeader', 'TableCellEditor', 'TableCellRenderer', 'TableColumn', 'TableColumnModel', 'TableModel'
-            ),
-        116 => array (
-            'AbstractDocument', 'AbstractDocument.AttributeContext', 'AbstractDocument.Content', 'AbstractDocument.ElementEdit', 'AbstractWriter', 'AsyncBoxView', 'AttributeSet.CharacterAttribute', 'AttributeSet.ColorAttribute', 'AttributeSet.FontAttribute', 'AttributeSet.ParagraphAttribute', 'BadLocationException', 'BoxView', 'Caret', 'ChangedCharSetException', 'ComponentView', 'CompositeView', 'DateFormatter', 'DefaultCaret', 'DefaultEditorKit', 'DefaultEditorKit.BeepAction', 'DefaultEditorKit.CopyAction', 'DefaultEditorKit.CutAction', 'DefaultEditorKit.DefaultKeyTypedAction', 'DefaultEditorKit.InsertBreakAction', 'DefaultEditorKit.InsertContentAction', 'DefaultEditorKit.InsertTabAction', 'DefaultEditorKit.PasteAction', 'DefaultFormatter', 'DefaultFormatterFactory', 'DefaultHighlighter', 'DefaultHighlighter.DefaultHighlightPainter', 'DefaultStyledDocument', 'DefaultStyledDocument.AttributeUndoableEdit', 'DefaultStyledDocument.ElementSpec', 'DefaultTextUI', 'DocumentFilter', 'DocumentFilter.FilterBypass',
-            'EditorKit', 'ElementIterator', 'FieldView', 'FlowView', 'FlowView.FlowStrategy', 'GapContent', 'GlyphView', 'GlyphView.GlyphPainter', 'Highlighter', 'Highlighter.Highlight', 'Highlighter.HighlightPainter', 'IconView', 'InternationalFormatter', 'JTextComponent', 'JTextComponent.KeyBinding', 'Keymap', 'LabelView', 'LayeredHighlighter', 'LayeredHighlighter.LayerPainter', 'LayoutQueue', 'MaskFormatter', 'MutableAttributeSet', 'NavigationFilter', 'NavigationFilter.FilterBypass', 'NumberFormatter', 'PasswordView', 'PlainDocument', 'PlainView', 'Position', 'Position.Bias', 'Segment', 'SimpleAttributeSet', 'StringContent', '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', 'TabExpander', 'TabSet', 'TabStop', 'TabableView', 'TableView', 'TextAction', 'Utilities', 'View', 'ViewFactory', 'WrappedPlainView', 'ZoneView'
-            ),
-        117 => array (
-            'BlockView', 'CSS', 'CSS.Attribute', 'FormSubmitEvent', 'FormSubmitEvent.MethodType', 'FormView', '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', 'ImageView', 'InlineView', 'ListView', 'MinimalHTMLWriter', 'ObjectView', 'Option', 'StyleSheet', 'StyleSheet.BoxPainter', 'StyleSheet.ListPainter'
-            ),
-        118 => array (
-            'ContentModel', 'DTD', 'DTDConstants', 'DocumentParser', 'ParserDelegator', 'TagElement'
-            ),
-        119 => array (
-            'RTFEditorKit'
-            ),
-        120 => array (
-            'AbstractLayoutCache', 'AbstractLayoutCache.NodeDimensions', 'DefaultMutableTreeNode', 'DefaultTreeCellEditor', 'DefaultTreeCellRenderer', 'DefaultTreeModel', 'DefaultTreeSelectionModel', 'ExpandVetoException', 'FixedHeightLayoutCache', 'MutableTreeNode', 'RowMapper', 'TreeCellEditor', 'TreeCellRenderer', 'TreeModel', 'TreeNode', 'TreePath', 'TreeSelectionModel', 'VariableHeightLayoutCache'
-            ),
-        121 => array (
-            'AbstractUndoableEdit', 'CannotRedoException', 'CannotUndoException', 'CompoundEdit', 'StateEdit', 'StateEditable', 'UndoManager', 'UndoableEdit', 'UndoableEditSupport'
-            ),
-        122 => array (
-            'InvalidTransactionException', 'TransactionRequiredException', 'TransactionRolledbackException'
-            ),
-        123 => array (
-            'XAException', 'XAResource', 'Xid'
-            ),
-        124 => array (
-            'XMLConstants'
-            ),
-        125 => array (
-            'DatatypeConfigurationException', 'DatatypeConstants', 'DatatypeConstants.Field', 'DatatypeFactory', 'Duration', 'XMLGregorianCalendar'
-            ),
-        126 => array (
-            'NamespaceContext', 'QName'
-            ),
-        127 => array (
-            'DocumentBuilder', 'DocumentBuilderFactory', 'FactoryConfigurationError', 'ParserConfigurationException', 'SAXParser', 'SAXParserFactory'
-            ),
-        128 => array (
-            'ErrorListener', 'OutputKeys', 'Result', 'Source', 'SourceLocator', 'Templates', 'Transformer', 'TransformerConfigurationException', 'TransformerException', 'TransformerFactory', 'TransformerFactoryConfigurationError', 'URIResolver'
-            ),
-        129 => array (
-            'DOMResult', 'DOMSource'
-            ),
-        130 => array (
-            'SAXResult', 'SAXSource', 'SAXTransformerFactory', 'TemplatesHandler', 'TransformerHandler'
-            ),
-        131 => array (
-            'StreamResult', 'StreamSource'
-            ),
-        132 => array (
-            'Schema', 'SchemaFactory', 'SchemaFactoryLoader', 'TypeInfoProvider', 'Validator', 'ValidatorHandler'
-            ),
-        133 => array (
-            'XPath', 'XPathConstants', 'XPathException', 'XPathExpression', 'XPathExpressionException', 'XPathFactory', 'XPathFactoryConfigurationException', 'XPathFunction', 'XPathFunctionException', 'XPathFunctionResolver', 'XPathVariableResolver'
-            ),
-        134 => array (
-            'ChannelBinding', 'GSSContext', 'GSSCredential', 'GSSException', 'GSSManager', 'GSSName', 'MessageProp', 'Oid'
-            ),
-        135 => array (
-            'ACTIVITY_COMPLETED', 'ACTIVITY_REQUIRED', 'ARG_IN', 'ARG_INOUT', 'ARG_OUT', 'Any', 'AnyHolder', 'AnySeqHolder', 'BAD_CONTEXT', 'BAD_INV_ORDER', 'BAD_OPERATION', 'BAD_PARAM', 'BAD_POLICY', 'BAD_POLICY_TYPE', 'BAD_POLICY_VALUE', 'BAD_QOS', 'BAD_TYPECODE', 'BooleanHolder', 'BooleanSeqHelper', 'BooleanSeqHolder', 'ByteHolder', 'CODESET_INCOMPATIBLE', 'COMM_FAILURE', 'CTX_RESTRICT_SCOPE', 'CharHolder', 'CharSeqHelper', 'CharSeqHolder', 'CompletionStatus', 'CompletionStatusHelper', 'ContextList', 'CurrentHolder', 'CustomMarshal', 'DATA_CONVERSION', 'DefinitionKind', 'DefinitionKindHelper', 'DomainManager', 'DomainManagerOperations', 'DoubleHolder', 'DoubleSeqHelper', 'DoubleSeqHolder', 'Environment', 'ExceptionList', 'FREE_MEM', 'FixedHolder', 'FloatHolder', 'FloatSeqHelper', 'FloatSeqHolder', 'IDLType', 'IDLTypeHelper', 'IDLTypeOperations', 'IMP_LIMIT', 'INITIALIZE', 'INTERNAL', 'INTF_REPOS', 'INVALID_ACTIVITY', 'INVALID_TRANSACTION', 'INV_FLAG', 'INV_IDENT', 'INV_OBJREF', 'INV_POLICY', 'IRObject',
-            'IRObjectOperations', 'IdentifierHelper', 'IntHolder', 'LocalObject', 'LongHolder', 'LongLongSeqHelper', 'LongLongSeqHolder', 'LongSeqHelper', 'LongSeqHolder', 'MARSHAL', 'NO_IMPLEMENT', 'NO_MEMORY', 'NO_PERMISSION', 'NO_RESOURCES', 'NO_RESPONSE', 'NVList', 'NamedValue', 'OBJECT_NOT_EXIST', 'OBJ_ADAPTER', 'OMGVMCID', 'ObjectHelper', 'ObjectHolder', 'OctetSeqHelper', 'OctetSeqHolder', 'PERSIST_STORE', 'PRIVATE_MEMBER', 'PUBLIC_MEMBER', 'ParameterMode', 'ParameterModeHelper', 'ParameterModeHolder', 'PolicyError', 'PolicyErrorCodeHelper', 'PolicyErrorHelper', 'PolicyErrorHolder', 'PolicyHelper', 'PolicyHolder', 'PolicyListHelper', 'PolicyListHolder', 'PolicyOperations', 'PolicyTypeHelper', 'PrincipalHolder', 'REBIND', 'RepositoryIdHelper', 'Request', 'ServerRequest', 'ServiceDetail', 'ServiceDetailHelper', 'ServiceInformation', 'ServiceInformationHelper', 'ServiceInformationHolder', 'SetOverrideType', 'SetOverrideTypeHelper', 'ShortHolder', 'ShortSeqHelper', 'ShortSeqHolder', 'StringHolder',
-            'StringSeqHelper', 'StringSeqHolder', 'StringValueHelper', 'StructMember', 'StructMemberHelper', 'SystemException', 'TCKind', 'TIMEOUT', 'TRANSACTION_MODE', 'TRANSACTION_REQUIRED', 'TRANSACTION_ROLLEDBACK', 'TRANSACTION_UNAVAILABLE', 'TRANSIENT', 'TypeCode', 'TypeCodeHolder', 'ULongLongSeqHelper', 'ULongLongSeqHolder', 'ULongSeqHelper', 'ULongSeqHolder', 'UNSUPPORTED_POLICY', 'UNSUPPORTED_POLICY_VALUE', 'UShortSeqHelper', 'UShortSeqHolder', 'UnionMember', 'UnionMemberHelper', 'UnknownUserException', 'UnknownUserExceptionHelper', 'UnknownUserExceptionHolder', 'UserException', 'VM_ABSTRACT', 'VM_CUSTOM', 'VM_NONE', 'VM_TRUNCATABLE', 'ValueBaseHelper', 'ValueBaseHolder', 'ValueMember', 'ValueMemberHelper', 'VersionSpecHelper', 'VisibilityHelper', 'WCharSeqHelper', 'WCharSeqHolder', 'WStringSeqHelper', 'WStringSeqHolder', 'WStringValueHelper', 'WrongTransaction', 'WrongTransactionHelper', 'WrongTransactionHolder', '_IDLTypeStub', '_PolicyStub'
-            ),
-        136 => array (
-            'Invalid', 'InvalidSeq'
-            ),
-        137 => array (
-            'BadKind'
-            ),
-        138 => array (
-            'ApplicationException', 'BoxedValueHelper', 'CustomValue', 'IDLEntity', 'IndirectionException', 'InvokeHandler', 'RemarshalException', 'ResponseHandler', 'ServantObject', 'Streamable', 'StreamableValue', 'UnknownException', 'ValueBase', 'ValueFactory', 'ValueInputStream', 'ValueOutputStream'
-            ),
-        139 => array (
-            'BindingHelper', 'BindingHolder', 'BindingIterator', 'BindingIteratorHelper', 'BindingIteratorHolder', 'BindingIteratorOperations', 'BindingIteratorPOA', 'BindingListHelper', 'BindingListHolder', 'BindingType', 'BindingTypeHelper', 'BindingTypeHolder', 'IstringHelper', 'NameComponent', 'NameComponentHelper', 'NameComponentHolder', 'NameHelper', 'NameHolder', 'NamingContext', 'NamingContextExt', 'NamingContextExtHelper', 'NamingContextExtHolder', 'NamingContextExtOperations', 'NamingContextExtPOA', 'NamingContextHelper', 'NamingContextHolder', 'NamingContextOperations', 'NamingContextPOA', '_BindingIteratorImplBase', '_BindingIteratorStub', '_NamingContextExtStub', '_NamingContextImplBase', '_NamingContextStub'
-            ),
-        140 => array (
-            'AddressHelper', 'InvalidAddress', 'InvalidAddressHelper', 'InvalidAddressHolder', 'StringNameHelper', 'URLStringHelper'
-            ),
-        141 => array (
-            'AlreadyBound', 'AlreadyBoundHelper', 'AlreadyBoundHolder', 'CannotProceed', 'CannotProceedHelper', 'CannotProceedHolder', 'InvalidNameHolder', 'NotEmpty', 'NotEmptyHelper', 'NotEmptyHolder', 'NotFound', 'NotFoundHelper', 'NotFoundHolder', 'NotFoundReason', 'NotFoundReasonHelper', 'NotFoundReasonHolder'
-            ),
-        142 => array (
-            'Parameter'
-            ),
-        143 => array (
-            'DynAnyFactory', 'DynAnyFactoryHelper', 'DynAnyFactoryOperations', 'DynAnyHelper', 'DynAnyOperations', 'DynAnySeqHelper', 'DynArrayHelper', 'DynArrayOperations', 'DynEnumHelper', 'DynEnumOperations', 'DynFixedHelper', 'DynFixedOperations', 'DynSequenceHelper', 'DynSequenceOperations', 'DynStructHelper', 'DynStructOperations', 'DynUnionHelper', 'DynUnionOperations', 'DynValueBox', 'DynValueBoxOperations', 'DynValueCommon', 'DynValueCommonOperations', 'DynValueHelper', 'DynValueOperations', 'NameDynAnyPair', 'NameDynAnyPairHelper', 'NameDynAnyPairSeqHelper', 'NameValuePairSeqHelper', '_DynAnyFactoryStub', '_DynAnyStub', '_DynArrayStub', '_DynEnumStub', '_DynFixedStub', '_DynSequenceStub', '_DynStructStub', '_DynUnionStub', '_DynValueStub'
-            ),
-        144 => array (
-            'InconsistentTypeCodeHelper'
-            ),
-        145 => array (
-            'InvalidValueHelper'
-            ),
-        146 => array (
-            'CodeSets', 'Codec', 'CodecFactory', 'CodecFactoryHelper', 'CodecFactoryOperations', 'CodecOperations', 'ComponentIdHelper', 'ENCODING_CDR_ENCAPS', 'Encoding', 'ExceptionDetailMessage', 'IOR', 'IORHelper', 'IORHolder', 'MultipleComponentProfileHelper', 'MultipleComponentProfileHolder', 'ProfileIdHelper', 'RMICustomMaxStreamFormat', 'ServiceContext', 'ServiceContextHelper', 'ServiceContextHolder', 'ServiceContextListHelper', 'ServiceContextListHolder', 'ServiceIdHelper', 'TAG_ALTERNATE_IIOP_ADDRESS', 'TAG_CODE_SETS', 'TAG_INTERNET_IOP', 'TAG_JAVA_CODEBASE', 'TAG_MULTIPLE_COMPONENTS', 'TAG_ORB_TYPE', 'TAG_POLICIES', 'TAG_RMI_CUSTOM_MAX_STREAM_FORMAT', 'TaggedComponent', 'TaggedComponentHelper', 'TaggedComponentHolder', 'TaggedProfile', 'TaggedProfileHelper', 'TaggedProfileHolder', 'TransactionService'
-            ),
-        147 => array (
-            'UnknownEncoding', 'UnknownEncodingHelper'
-            ),
-        148 => array (
-            'FormatMismatch', 'FormatMismatchHelper', 'InvalidTypeForEncoding', 'InvalidTypeForEncodingHelper'
-            ),
-        149 => array (
-            'SYNC_WITH_TRANSPORT', 'SyncScopeHelper'
-            ),
-        150 => array (
-            'ACTIVE', 'AdapterManagerIdHelper', 'AdapterNameHelper', 'AdapterStateHelper', 'ClientRequestInfo', 'ClientRequestInfoOperations', 'ClientRequestInterceptor', 'ClientRequestInterceptorOperations', 'DISCARDING', 'HOLDING', 'INACTIVE', 'IORInfo', 'IORInfoOperations', 'IORInterceptor', 'IORInterceptorOperations', 'IORInterceptor_3_0', 'IORInterceptor_3_0Helper', 'IORInterceptor_3_0Holder', 'IORInterceptor_3_0Operations', 'Interceptor', 'InterceptorOperations', 'InvalidSlot', 'InvalidSlotHelper', 'LOCATION_FORWARD', 'NON_EXISTENT', 'ORBIdHelper', 'ORBInitInfo', 'ORBInitInfoOperations', 'ORBInitializer', 'ORBInitializerOperations', 'ObjectReferenceFactory', 'ObjectReferenceFactoryHelper', 'ObjectReferenceFactoryHolder', 'ObjectReferenceTemplate', 'ObjectReferenceTemplateHelper', 'ObjectReferenceTemplateHolder', 'ObjectReferenceTemplateSeqHelper', 'ObjectReferenceTemplateSeqHolder', 'PolicyFactory', 'PolicyFactoryOperations', 'RequestInfo', 'RequestInfoOperations', 'SUCCESSFUL', 'SYSTEM_EXCEPTION',
-            'ServerIdHelper', 'ServerRequestInfo', 'ServerRequestInfoOperations', 'ServerRequestInterceptor', 'ServerRequestInterceptorOperations', 'TRANSPORT_RETRY', 'USER_EXCEPTION'
-            ),
-        151 => array (
-            'DuplicateName', 'DuplicateNameHelper'
-            ),
-        152 => array (
-            'AdapterActivator', 'AdapterActivatorOperations', 'ID_ASSIGNMENT_POLICY_ID', 'ID_UNIQUENESS_POLICY_ID', 'IMPLICIT_ACTIVATION_POLICY_ID', 'IdAssignmentPolicy', 'IdAssignmentPolicyOperations', 'IdAssignmentPolicyValue', 'IdUniquenessPolicy', 'IdUniquenessPolicyOperations', 'IdUniquenessPolicyValue', 'ImplicitActivationPolicy', 'ImplicitActivationPolicyOperations', 'ImplicitActivationPolicyValue', 'LIFESPAN_POLICY_ID', 'LifespanPolicy', 'LifespanPolicyOperations', 'LifespanPolicyValue', 'POA', 'POAHelper', 'POAManager', 'POAManagerOperations', 'POAOperations', 'REQUEST_PROCESSING_POLICY_ID', 'RequestProcessingPolicy', 'RequestProcessingPolicyOperations', 'RequestProcessingPolicyValue', 'SERVANT_RETENTION_POLICY_ID', 'Servant', 'ServantActivator', 'ServantActivatorHelper', 'ServantActivatorOperations', 'ServantActivatorPOA', 'ServantLocator', 'ServantLocatorHelper', 'ServantLocatorOperations', 'ServantLocatorPOA', 'ServantManager', 'ServantManagerOperations', 'ServantRetentionPolicy',
-            'ServantRetentionPolicyOperations', 'ServantRetentionPolicyValue', 'THREAD_POLICY_ID', 'ThreadPolicy', 'ThreadPolicyOperations', 'ThreadPolicyValue', '_ServantActivatorStub', '_ServantLocatorStub'
-            ),
-        153 => array (
-            'NoContext', 'NoContextHelper'
-            ),
-        154 => array (
-            'AdapterInactive', 'AdapterInactiveHelper', 'State'
-            ),
-        155 => array (
-            'AdapterAlreadyExists', 'AdapterAlreadyExistsHelper', 'AdapterNonExistent', 'AdapterNonExistentHelper', 'InvalidPolicy', 'InvalidPolicyHelper', 'NoServant', 'NoServantHelper', 'ObjectAlreadyActive', 'ObjectAlreadyActiveHelper', 'ObjectNotActive', 'ObjectNotActiveHelper', 'ServantAlreadyActive', 'ServantAlreadyActiveHelper', 'ServantNotActive', 'ServantNotActiveHelper', 'WrongAdapter', 'WrongAdapterHelper', 'WrongPolicy', 'WrongPolicyHelper'
-            ),
-        156 => array (
-            'CookieHolder'
-            ),
-        157 => array (
-            'RunTime', 'RunTimeOperations'
-            ),
-        158 => array (
-            '_Remote_Stub'
-            ),
-        159 => array (
-            'Attr', 'CDATASection', 'CharacterData', 'Comment', 'DOMConfiguration', 'DOMError', 'DOMErrorHandler', 'DOMException', 'DOMImplementation', 'DOMImplementationList', 'DOMImplementationSource', 'DOMStringList', 'DocumentFragment', 'DocumentType', 'EntityReference', 'NameList', 'NamedNodeMap', 'Node', 'NodeList', 'Notation', 'ProcessingInstruction', 'Text', 'TypeInfo', 'UserDataHandler'
-            ),
-        160 => array (
-            'DOMImplementationRegistry'
-            ),
-        161 => array (
-            'EventException', 'EventTarget', 'MutationEvent', 'UIEvent'
-            ),
-        162 => array (
-            'DOMImplementationLS', 'LSException', 'LSInput', 'LSLoadEvent', 'LSOutput', 'LSParser', 'LSParserFilter', 'LSProgressEvent', 'LSResourceResolver', 'LSSerializer', 'LSSerializerFilter'
-            ),
-        163 => array (
-            'DTDHandler', 'DocumentHandler', 'EntityResolver', 'ErrorHandler', 'HandlerBase', 'InputSource', 'Locator', 'SAXException', 'SAXNotRecognizedException', 'SAXNotSupportedException', 'SAXParseException', 'XMLFilter', 'XMLReader'
-            ),
-        164 => array (
-            'Attributes2', 'Attributes2Impl', 'DeclHandler', 'DefaultHandler2', 'EntityResolver2', 'LexicalHandler', 'Locator2', 'Locator2Impl'
-            ),
-        165 => array (
-            'AttributeListImpl', 'AttributesImpl', 'DefaultHandler', 'LocatorImpl', 'NamespaceSupport', 'ParserAdapter', 'ParserFactory', 'XMLFilterImpl', 'XMLReaderAdapter', 'XMLReaderFactory'
-            ),
-        /* ambiguous class names (appear in more than one package) */
-        166 => array (
-            'Annotation', 'AnySeqHelper', 'Array', 'Attribute', 'AttributeList', 'AttributeSet', 'Attributes', 'AuthenticationException', 'Binding', 'Bounds', 'Certificate', 'CertificateEncodingException', 'CertificateException', 'CertificateExpiredException', 'CertificateNotYetValidException', 'CertificateParsingException', 'ConnectException', 'ContentHandler', 'Context', 'Control', 'Current', 'CurrentHelper', 'CurrentOperations', 'DOMLocator', 'DataInputStream', 'DataOutputStream', 'Date', 'DefaultLoaderRepository', 'Delegate', 'Document', 'DocumentEvent', 'DynAny', 'DynArray', 'DynEnum', 'DynFixed', 'DynSequence', 'DynStruct', 'DynUnion', 'DynValue', 'DynamicImplementation', 'Element', 'Entity', 'Event', 'EventListener', 'FieldNameHelper', 'FileFilter', 'Formatter', 'ForwardRequest', 'ForwardRequestHelper', 'InconsistentTypeCode', 'InputStream', 'IntrospectionException', 'InvalidAttributeValueException', 'InvalidKeyException', 'InvalidName', 'InvalidNameHelper', 'InvalidValue', 'List', 'MouseEvent',
-            'NameValuePair', 'NameValuePairHelper', 'ORB', 'Object', 'ObjectIdHelper', 'ObjectImpl', 'OpenType', 'OutputStream', 'ParagraphView', 'Parser', 'Permission', 'Policy', 'Principal', 'Proxy', 'Reference', 'Statement', 'Timer', 'Timestamp', 'TypeMismatch', 'TypeMismatchHelper', 'UNKNOWN', 'UnknownHostException', 'X509Certificate'
-            )
-        ),
-    'SYMBOLS' => array(
-        '(', ')', '[', ']', '{', '}', '*', '&', '%', '!', ';', '<', '>', '?'
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        /* all Java keywords are case sensitive */
-        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,
-        25 => true, 26 => true, 27 => true, 28 => true, 29 => true,
-        30 => true, 31 => true, 32 => true, 33 => true, 34 => true,
-        35 => true, 36 => true, 37 => true, 38 => true, 39 => true,
-        40 => true, 41 => true, 42 => true, 43 => true, 44 => true,
-        45 => true, 46 => true, 47 => true, 48 => true, 49 => true,
-        50 => true, 51 => true, 52 => true, 53 => true, 54 => true,
-        55 => true, 56 => true, 57 => true, 58 => true, 59 => true,
-        60 => true, 61 => true, 62 => true, 63 => true, 64 => true,
-        65 => true, 66 => true, 67 => true, 68 => true, 69 => true,
-        70 => true, 71 => true, 72 => true, 73 => true, 74 => true,
-        75 => true, 76 => true, 77 => true, 78 => true, 79 => true,
-        80 => true, 81 => true, 82 => true, 83 => true, 84 => true,
-        85 => true, 86 => true, 87 => true, 88 => true, 89 => true,
-        90 => true, 91 => true, 92 => true, 93 => true, 94 => true,
-        95 => true, 96 => true, 97 => true, 98 => true, 99 => true,
-        100 => true, 101 => true, 102 => true, 103 => true, 104 => true,
-        105 => true, 106 => true, 107 => true, 108 => true, 109 => true,
-        110 => true, 111 => true, 112 => true, 113 => true, 114 => true,
-        115 => true, 116 => true, 117 => true, 118 => true, 119 => true,
-        120 => true, 121 => true, 122 => true, 123 => true, 124 => true,
-        125 => true, 126 => true, 127 => true, 128 => true, 129 => true,
-        130 => true, 131 => true, 132 => true, 133 => true, 134 => true,
-        135 => true, 136 => true, 137 => true, 138 => true, 139 => true,
-        140 => true, 141 => true, 142 => true, 143 => true, 144 => true,
-        145 => true, 146 => true, 147 => true, 148 => true, 149 => true,
-        150 => true, 151 => true, 152 => true, 153 => true, 154 => true,
-        155 => true, 156 => true, 157 => true, 158 => true, 159 => true,
-        160 => true, 161 => true, 162 => true, 163 => true, 164 => true,
-        165 => true, 166 => true
-    ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #000000;  font-weight: bold;',
-            2 => 'color: #000000; font-weight: bold;',
-            3 => 'color: #006600; font-weight: bold;',
-            4 => 'color: #006600; font-weight: bold;',
-            5 => 'color: #003399; font-weight: bold;',
-            6 => 'color: #003399; font-weight: bold;',
-            7 => 'color: #003399; font-weight: bold;',
-            8 => 'color: #003399; font-weight: bold;',
-            9 => 'color: #003399; font-weight: bold;',
-            10 => 'color: #003399; font-weight: bold;',
-            11 => 'color: #003399; font-weight: bold;',
-            12 => 'color: #003399; font-weight: bold;',
-            13 => 'color: #003399; font-weight: bold;',
-            14 => 'color: #003399; font-weight: bold;',
-            15 => 'color: #003399; font-weight: bold;',
-            16 => 'color: #003399; font-weight: bold;',
-            17 => 'color: #003399; font-weight: bold;',
-            18 => 'color: #003399; font-weight: bold;',
-            19 => 'color: #003399; font-weight: bold;',
-            20 => 'color: #003399; font-weight: bold;',
-            21 => 'color: #003399; font-weight: bold;',
-            22 => 'color: #003399; font-weight: bold;',
-            23 => 'color: #003399; font-weight: bold;',
-            24 => 'color: #003399; font-weight: bold;',
-            25 => 'color: #003399; font-weight: bold;',
-            26 => 'color: #003399; font-weight: bold;',
-            27 => 'color: #003399; font-weight: bold;',
-            28 => 'color: #003399; font-weight: bold;',
-            29 => 'color: #003399; font-weight: bold;',
-            30 => 'color: #003399; font-weight: bold;',
-            31 => 'color: #003399; font-weight: bold;',
-            32 => 'color: #003399; font-weight: bold;',
-            33 => 'color: #003399; font-weight: bold;',
-            34 => 'color: #003399; font-weight: bold;',
-            35 => 'color: #003399; font-weight: bold;',
-            36 => 'color: #003399; font-weight: bold;',
-            37 => 'color: #003399; font-weight: bold;',
-            38 => 'color: #003399; font-weight: bold;',
-            39 => 'color: #003399; font-weight: bold;',
-            40 => 'color: #003399; font-weight: bold;',
-            41 => 'color: #003399; font-weight: bold;',
-            42 => 'color: #003399; font-weight: bold;',
-            43 => 'color: #003399; font-weight: bold;',
-            44 => 'color: #003399; font-weight: bold;',
-            45 => 'color: #003399; font-weight: bold;',
-            46 => 'color: #003399; font-weight: bold;',
-            47 => 'color: #003399; font-weight: bold;',
-            48 => 'color: #003399; font-weight: bold;',
-            49 => 'color: #003399; font-weight: bold;',
-            50 => 'color: #003399; font-weight: bold;',
-            51 => 'color: #003399; font-weight: bold;',
-            52 => 'color: #003399; font-weight: bold;',
-            53 => 'color: #003399; font-weight: bold;',
-            54 => 'color: #003399; font-weight: bold;',
-            55 => 'color: #003399; font-weight: bold;',
-            56 => 'color: #003399; font-weight: bold;',
-            57 => 'color: #003399; font-weight: bold;',
-            58 => 'color: #003399; font-weight: bold;',
-            59 => 'color: #003399; font-weight: bold;',
-            60 => 'color: #003399; font-weight: bold;',
-            61 => 'color: #003399; font-weight: bold;',
-            62 => 'color: #003399; font-weight: bold;',
-            63 => 'color: #003399; font-weight: bold;',
-            64 => 'color: #003399; font-weight: bold;',
-            65 => 'color: #003399; font-weight: bold;',
-            66 => 'color: #003399; font-weight: bold;',
-            67 => 'color: #003399; font-weight: bold;',
-            68 => 'color: #003399; font-weight: bold;',
-            69 => 'color: #003399; font-weight: bold;',
-            70 => 'color: #003399; font-weight: bold;',
-            71 => 'color: #003399; font-weight: bold;',
-            72 => 'color: #003399; font-weight: bold;',
-            73 => 'color: #003399; font-weight: bold;',
-            74 => 'color: #003399; font-weight: bold;',
-            75 => 'color: #003399; font-weight: bold;',
-            76 => 'color: #003399; font-weight: bold;',
-            77 => 'color: #003399; font-weight: bold;',
-            78 => 'color: #003399; font-weight: bold;',
-            79 => 'color: #003399; font-weight: bold;',
-            80 => 'color: #003399; font-weight: bold;',
-            81 => 'color: #003399; font-weight: bold;',
-            82 => 'color: #003399; font-weight: bold;',
-            83 => 'color: #003399; font-weight: bold;',
-            84 => 'color: #003399; font-weight: bold;',
-            85 => 'color: #003399; font-weight: bold;',
-            86 => 'color: #003399; font-weight: bold;',
-            87 => 'color: #003399; font-weight: bold;',
-            88 => 'color: #003399; font-weight: bold;',
-            89 => 'color: #003399; font-weight: bold;',
-            90 => 'color: #003399; font-weight: bold;',
-            91 => 'color: #003399; font-weight: bold;',
-            92 => 'color: #003399; font-weight: bold;',
-            93 => 'color: #003399; font-weight: bold;',
-            94 => 'color: #003399; font-weight: bold;',
-            95 => 'color: #003399; font-weight: bold;',
-            96 => 'color: #003399; font-weight: bold;',
-            97 => 'color: #003399; font-weight: bold;',
-            98 => 'color: #003399; font-weight: bold;',
-            99 => 'color: #003399; font-weight: bold;',
-            100 => 'color: #003399; font-weight: bold;',
-            101 => 'color: #003399; font-weight: bold;',
-            102 => 'color: #003399; font-weight: bold;',
-            103 => 'color: #003399; font-weight: bold;',
-            104 => 'color: #003399; font-weight: bold;',
-            105 => 'color: #003399; font-weight: bold;',
-            106 => 'color: #003399; font-weight: bold;',
-            107 => 'color: #003399; font-weight: bold;',
-            108 => 'color: #003399; font-weight: bold;',
-            109 => 'color: #003399; font-weight: bold;',
-            110 => 'color: #003399; font-weight: bold;',
-            111 => 'color: #003399; font-weight: bold;',
-            112 => 'color: #003399; font-weight: bold;',
-            113 => 'color: #003399; font-weight: bold;',
-            114 => 'color: #003399; font-weight: bold;',
-            115 => 'color: #003399; font-weight: bold;',
-            116 => 'color: #003399; font-weight: bold;',
-            117 => 'color: #003399; font-weight: bold;',
-            118 => 'color: #003399; font-weight: bold;',
-            119 => 'color: #003399; font-weight: bold;',
-            120 => 'color: #003399; font-weight: bold;',
-            121 => 'color: #003399; font-weight: bold;',
-            122 => 'color: #003399; font-weight: bold;',
-            123 => 'color: #003399; font-weight: bold;',
-            124 => 'color: #003399; font-weight: bold;',
-            125 => 'color: #003399; font-weight: bold;',
-            126 => 'color: #003399; font-weight: bold;',
-            127 => 'color: #003399; font-weight: bold;',
-            128 => 'color: #003399; font-weight: bold;',
-            129 => 'color: #003399; font-weight: bold;',
-            130 => 'color: #003399; font-weight: bold;',
-            131 => 'color: #003399; font-weight: bold;',
-            132 => 'color: #003399; font-weight: bold;',
-            133 => 'color: #003399; font-weight: bold;',
-            134 => 'color: #003399; font-weight: bold;',
-            135 => 'color: #003399; font-weight: bold;',
-            136 => 'color: #003399; font-weight: bold;',
-            137 => 'color: #003399; font-weight: bold;',
-            138 => 'color: #003399; font-weight: bold;',
-            139 => 'color: #003399; font-weight: bold;',
-            140 => 'color: #003399; font-weight: bold;',
-            141 => 'color: #003399; font-weight: bold;',
-            142 => 'color: #003399; font-weight: bold;',
-            143 => 'color: #003399; font-weight: bold;',
-            144 => 'color: #003399; font-weight: bold;',
-            145 => 'color: #003399; font-weight: bold;',
-            146 => 'color: #003399; font-weight: bold;',
-            147 => 'color: #003399; font-weight: bold;',
-            148 => 'color: #003399; font-weight: bold;',
-            149 => 'color: #003399; font-weight: bold;',
-            150 => 'color: #003399; font-weight: bold;',
-            151 => 'color: #003399; font-weight: bold;',
-            152 => 'color: #003399; font-weight: bold;',
-            153 => 'color: #003399; font-weight: bold;',
-            154 => 'color: #003399; font-weight: bold;',
-            155 => 'color: #003399; font-weight: bold;',
-            156 => 'color: #003399; font-weight: bold;',
-            157 => 'color: #003399; font-weight: bold;',
-            158 => 'color: #003399; font-weight: bold;',
-            159 => 'color: #003399; font-weight: bold;',
-            160 => 'color: #003399; font-weight: bold;',
-            161 => 'color: #003399; font-weight: bold;',
-            162 => 'color: #003399; font-weight: bold;',
-            163 => 'color: #003399; font-weight: bold;',
-            164 => 'color: #003399; font-weight: bold;',
-            165 => 'color: #003399; font-weight: bold;',
-            166 => 'color: #003399; 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 => '',
-        4 => '',
-        5 => 'http://docs.oracle.com/javase/7/docs/api/java/applet/{FNAME}.html',
-        6 => 'http://docs.oracle.com/javase/7/docs/api/java/awt/{FNAME}.html',
-        7 => 'http://docs.oracle.com/javase/7/docs/api/java/awt/color/{FNAME}.html',
-        8 => 'http://docs.oracle.com/javase/7/docs/api/java/awt/datatransfer/{FNAME}.html',
-        9 => 'http://docs.oracle.com/javase/7/docs/api/java/awt/dnd/{FNAME}.html',
-        10 => 'http://docs.oracle.com/javase/7/docs/api/java/awt/event/{FNAME}.html',
-        11 => 'http://docs.oracle.com/javase/7/docs/api/java/awt/font/{FNAME}.html',
-        12 => 'http://docs.oracle.com/javase/7/docs/api/java/awt/geom/{FNAME}.html',
-        13 => 'http://docs.oracle.com/javase/7/docs/api/java/awt/im/{FNAME}.html',
-        14 => 'http://docs.oracle.com/javase/7/docs/api/java/awt/im/spi/{FNAME}.html',
-        15 => 'http://docs.oracle.com/javase/7/docs/api/java/awt/image/{FNAME}.html',
-        16 => 'http://docs.oracle.com/javase/7/docs/api/java/awt/image/renderable/{FNAME}.html',
-        17 => 'http://docs.oracle.com/javase/7/docs/api/java/awt/print/{FNAME}.html',
-        18 => 'http://docs.oracle.com/javase/7/docs/api/java/beans/{FNAME}.html',
-        19 => 'http://docs.oracle.com/javase/7/docs/api/java/beans/beancontext/{FNAME}.html',
-        20 => 'http://docs.oracle.com/javase/7/docs/api/java/io/{FNAME}.html',
-        21 => 'http://docs.oracle.com/javase/7/docs/api/java/lang/{FNAME}.html',
-        22 => 'http://docs.oracle.com/javase/7/docs/api/java/lang/annotation/{FNAME}.html',
-        23 => 'http://docs.oracle.com/javase/7/docs/api/java/lang/instrument/{FNAME}.html',
-        24 => 'http://docs.oracle.com/javase/7/docs/api/java/lang/management/{FNAME}.html',
-        25 => 'http://docs.oracle.com/javase/7/docs/api/java/lang/ref/{FNAME}.html',
-        26 => 'http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/{FNAME}.html',
-        27 => 'http://docs.oracle.com/javase/7/docs/api/java/math/{FNAME}.html',
-        28 => 'http://docs.oracle.com/javase/7/docs/api/java/net/{FNAME}.html',
-        29 => 'http://docs.oracle.com/javase/7/docs/api/java/nio/{FNAME}.html',
-        30 => 'http://docs.oracle.com/javase/7/docs/api/java/nio/channels/{FNAME}.html',
-        31 => 'http://docs.oracle.com/javase/7/docs/api/java/nio/channels/spi/{FNAME}.html',
-        32 => 'http://docs.oracle.com/javase/7/docs/api/java/nio/charset/{FNAME}.html',
-        33 => 'http://docs.oracle.com/javase/7/docs/api/java/nio/charset/spi/{FNAME}.html',
-        34 => 'http://docs.oracle.com/javase/7/docs/api/java/rmi/{FNAME}.html',
-        35 => 'http://docs.oracle.com/javase/7/docs/api/java/rmi/activation/{FNAME}.html',
-        36 => 'http://docs.oracle.com/javase/7/docs/api/java/rmi/dgc/{FNAME}.html',
-        37 => 'http://docs.oracle.com/javase/7/docs/api/java/rmi/registry/{FNAME}.html',
-        38 => 'http://docs.oracle.com/javase/7/docs/api/java/rmi/server/{FNAME}.html',
-        39 => 'http://docs.oracle.com/javase/7/docs/api/java/security/{FNAME}.html',
-        40 => 'http://docs.oracle.com/javase/7/docs/api/java/security/acl/{FNAME}.html',
-        41 => 'http://docs.oracle.com/javase/7/docs/api/java/security/cert/{FNAME}.html',
-        42 => 'http://docs.oracle.com/javase/7/docs/api/java/security/interfaces/{FNAME}.html',
-        43 => 'http://docs.oracle.com/javase/7/docs/api/java/security/spec/{FNAME}.html',
-        44 => 'http://docs.oracle.com/javase/7/docs/api/java/sql/{FNAME}.html',
-        45 => 'http://docs.oracle.com/javase/7/docs/api/java/text/{FNAME}.html',
-        46 => 'http://docs.oracle.com/javase/7/docs/api/java/util/{FNAME}.html',
-        47 => 'http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/{FNAME}.html',
-        48 => 'http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/atomic/{FNAME}.html',
-        49 => 'http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/locks/{FNAME}.html',
-        50 => 'http://docs.oracle.com/javase/7/docs/api/java/util/jar/{FNAME}.html',
-        51 => 'http://docs.oracle.com/javase/7/docs/api/java/util/logging/{FNAME}.html',
-        52 => 'http://docs.oracle.com/javase/7/docs/api/java/util/prefs/{FNAME}.html',
-        53 => 'http://docs.oracle.com/javase/7/docs/api/java/util/regex/{FNAME}.html',
-        54 => 'http://docs.oracle.com/javase/7/docs/api/java/util/zip/{FNAME}.html',
-        55 => 'http://docs.oracle.com/javase/7/docs/api/javax/accessibility/{FNAME}.html',
-        56 => 'http://docs.oracle.com/javase/7/docs/api/javax/activity/{FNAME}.html',
-        57 => 'http://docs.oracle.com/javase/7/docs/api/javax/crypto/{FNAME}.html',
-        58 => 'http://docs.oracle.com/javase/7/docs/api/javax/crypto/interfaces/{FNAME}.html',
-        59 => 'http://docs.oracle.com/javase/7/docs/api/javax/crypto/spec/{FNAME}.html',
-        60 => 'http://docs.oracle.com/javase/7/docs/api/javax/imageio/{FNAME}.html',
-        61 => 'http://docs.oracle.com/javase/7/docs/api/javax/imageio/event/{FNAME}.html',
-        62 => 'http://docs.oracle.com/javase/7/docs/api/javax/imageio/metadata/{FNAME}.html',
-        63 => 'http://docs.oracle.com/javase/7/docs/api/javax/imageio/plugins/bmp/{FNAME}.html',
-        64 => 'http://docs.oracle.com/javase/7/docs/api/javax/imageio/plugins/jpeg/{FNAME}.html',
-        65 => 'http://docs.oracle.com/javase/7/docs/api/javax/imageio/spi/{FNAME}.html',
-        66 => 'http://docs.oracle.com/javase/7/docs/api/javax/imageio/stream/{FNAME}.html',
-        67 => 'http://docs.oracle.com/javase/7/docs/api/javax/management/{FNAME}.html',
-        68 => 'http://docs.oracle.com/javase/7/docs/api/javax/management/loading/{FNAME}.html',
-        69 => 'http://docs.oracle.com/javase/7/docs/api/javax/management/modelmbean/{FNAME}.html',
-        70 => 'http://docs.oracle.com/javase/7/docs/api/javax/management/monitor/{FNAME}.html',
-        71 => 'http://docs.oracle.com/javase/7/docs/api/javax/management/openmbean/{FNAME}.html',
-        72 => 'http://docs.oracle.com/javase/7/docs/api/javax/management/relation/{FNAME}.html',
-        73 => 'http://docs.oracle.com/javase/7/docs/api/javax/management/remote/{FNAME}.html',
-        74 => 'http://docs.oracle.com/javase/7/docs/api/javax/management/remote/rmi/{FNAME}.html',
-        75 => 'http://docs.oracle.com/javase/7/docs/api/javax/management/timer/{FNAME}.html',
-        76 => 'http://docs.oracle.com/javase/7/docs/api/javax/naming/{FNAME}.html',
-        77 => 'http://docs.oracle.com/javase/7/docs/api/javax/naming/directory/{FNAME}.html',
-        78 => 'http://docs.oracle.com/javase/7/docs/api/javax/naming/event/{FNAME}.html',
-        79 => 'http://docs.oracle.com/javase/7/docs/api/javax/naming/ldap/{FNAME}.html',
-        80 => 'http://docs.oracle.com/javase/7/docs/api/javax/naming/spi/{FNAME}.html',
-        81 => 'http://docs.oracle.com/javase/7/docs/api/javax/net/{FNAME}.html',
-        82 => 'http://docs.oracle.com/javase/7/docs/api/javax/net/ssl/{FNAME}.html',
-        83 => 'http://docs.oracle.com/javase/7/docs/api/javax/print/{FNAME}.html',
-        84 => 'http://docs.oracle.com/javase/7/docs/api/javax/print/attribute/{FNAME}.html',
-        85 => 'http://docs.oracle.com/javase/7/docs/api/javax/print/attribute/standard/{FNAME}.html',
-        86 => 'http://docs.oracle.com/javase/7/docs/api/javax/print/event/{FNAME}.html',
-        87 => 'http://docs.oracle.com/javase/7/docs/api/javax/rmi/{FNAME}.html',
-        88 => 'http://docs.oracle.com/javase/7/docs/api/javax/rmi/CORBA/{FNAME}.html',
-        89 => 'http://docs.oracle.com/javase/7/docs/api/javax/rmi/ssl/{FNAME}.html',
-        90 => 'http://docs.oracle.com/javase/7/docs/api/javax/security/auth/{FNAME}.html',
-        91 => 'http://docs.oracle.com/javase/7/docs/api/javax/security/auth/callback/{FNAME}.html',
-        92 => 'http://docs.oracle.com/javase/7/docs/api/javax/security/auth/kerberos/{FNAME}.html',
-        93 => 'http://docs.oracle.com/javase/7/docs/api/javax/security/auth/login/{FNAME}.html',
-        94 => 'http://docs.oracle.com/javase/7/docs/api/javax/security/auth/spi/{FNAME}.html',
-        95 => 'http://docs.oracle.com/javase/7/docs/api/javax/security/auth/x500/{FNAME}.html',
-        96 => 'http://docs.oracle.com/javase/7/docs/api/javax/security/sasl/{FNAME}.html',
-        97 => 'http://docs.oracle.com/javase/7/docs/api/javax/sound/midi/{FNAME}.html',
-        98 => 'http://docs.oracle.com/javase/7/docs/api/javax/sound/midi/spi/{FNAME}.html',
-        99 => 'http://docs.oracle.com/javase/7/docs/api/javax/sound/sampled/{FNAME}.html',
-        100 => 'http://docs.oracle.com/javase/7/docs/api/javax/sound/sampled/spi/{FNAME}.html',
-        101 => 'http://docs.oracle.com/javase/7/docs/api/javax/sql/{FNAME}.html',
-        102 => 'http://docs.oracle.com/javase/7/docs/api/javax/sql/rowset/{FNAME}.html',
-        103 => 'http://docs.oracle.com/javase/7/docs/api/javax/sql/rowset/serial/{FNAME}.html',
-        104 => 'http://docs.oracle.com/javase/7/docs/api/javax/sql/rowset/spi/{FNAME}.html',
-        105 => 'http://docs.oracle.com/javase/7/docs/api/javax/swing/{FNAME}.html',
-        106 => 'http://docs.oracle.com/javase/7/docs/api/javax/swing/border/{FNAME}.html',
-        107 => 'http://docs.oracle.com/javase/7/docs/api/javax/swing/colorchooser/{FNAME}.html',
-        108 => 'http://docs.oracle.com/javase/7/docs/api/javax/swing/event/{FNAME}.html',
-        109 => 'http://docs.oracle.com/javase/7/docs/api/javax/swing/filechooser/{FNAME}.html',
-        110 => 'http://docs.oracle.com/javase/7/docs/api/javax/swing/plaf/{FNAME}.html',
-        111 => 'http://docs.oracle.com/javase/7/docs/api/javax/swing/plaf/basic/{FNAME}.html',
-        112 => 'http://docs.oracle.com/javase/7/docs/api/javax/swing/plaf/metal/{FNAME}.html',
-        113 => 'http://docs.oracle.com/javase/7/docs/api/javax/swing/plaf/multi/{FNAME}.html',
-        114 => 'http://docs.oracle.com/javase/7/docs/api/javax/swing/plaf/synth/{FNAME}.html',
-        115 => 'http://docs.oracle.com/javase/7/docs/api/javax/swing/table/{FNAME}.html',
-        116 => 'http://docs.oracle.com/javase/7/docs/api/javax/swing/text/{FNAME}.html',
-        117 => 'http://docs.oracle.com/javase/7/docs/api/javax/swing/text/html/{FNAME}.html',
-        118 => 'http://docs.oracle.com/javase/7/docs/api/javax/swing/text/html/parser/{FNAME}.html',
-        119 => 'http://docs.oracle.com/javase/7/docs/api/javax/swing/text/rtf/{FNAME}.html',
-        120 => 'http://docs.oracle.com/javase/7/docs/api/javax/swing/tree/{FNAME}.html',
-        121 => 'http://docs.oracle.com/javase/7/docs/api/javax/swing/undo/{FNAME}.html',
-        122 => 'http://docs.oracle.com/javase/7/docs/api/javax/transaction/{FNAME}.html',
-        123 => 'http://docs.oracle.com/javase/7/docs/api/javax/transaction/xa/{FNAME}.html',
-        124 => 'http://docs.oracle.com/javase/7/docs/api/javax/xml/{FNAME}.html',
-        125 => 'http://docs.oracle.com/javase/7/docs/api/javax/xml/datatype/{FNAME}.html',
-        126 => 'http://docs.oracle.com/javase/7/docs/api/javax/xml/namespace/{FNAME}.html',
-        127 => 'http://docs.oracle.com/javase/7/docs/api/javax/xml/parsers/{FNAME}.html',
-        128 => 'http://docs.oracle.com/javase/7/docs/api/javax/xml/transform/{FNAME}.html',
-        129 => 'http://docs.oracle.com/javase/7/docs/api/javax/xml/transform/dom/{FNAME}.html',
-        130 => 'http://docs.oracle.com/javase/7/docs/api/javax/xml/transform/sax/{FNAME}.html',
-        131 => 'http://docs.oracle.com/javase/7/docs/api/javax/xml/transform/stream/{FNAME}.html',
-        132 => 'http://docs.oracle.com/javase/7/docs/api/javax/xml/validation/{FNAME}.html',
-        133 => 'http://docs.oracle.com/javase/7/docs/api/javax/xml/xpath/{FNAME}.html',
-        134 => 'http://docs.oracle.com/javase/7/docs/api/org/ietf/jgss/{FNAME}.html',
-        135 => 'http://docs.oracle.com/javase/7/docs/api/org/omg/CORBA/{FNAME}.html',
-        136 => 'http://docs.oracle.com/javase/7/docs/api/org/omg/CORBA/DynAnyPackage/{FNAME}.html',
-        137 => 'http://docs.oracle.com/javase/7/docs/api/org/omg/CORBA/TypeCodePackage/{FNAME}.html',
-        138 => 'http://docs.oracle.com/javase/7/docs/api/org/omg/CORBA/portable/{FNAME}.html',
-        139 => 'http://docs.oracle.com/javase/7/docs/api/org/omg/CosNaming/{FNAME}.html',
-        140 => 'http://docs.oracle.com/javase/7/docs/api/org/omg/CosNaming/NamingContextExtPackage/{FNAME}.html',
-        141 => 'http://docs.oracle.com/javase/7/docs/api/org/omg/CosNaming/NamingContextPackage/{FNAME}.html',
-        142 => 'http://docs.oracle.com/javase/7/docs/api/org/omg/Dynamic/{FNAME}.html',
-        143 => 'http://docs.oracle.com/javase/7/docs/api/org/omg/DynamicAny/{FNAME}.html',
-        144 => 'http://docs.oracle.com/javase/7/docs/api/org/omg/DynamicAny/DynAnyFactoryPackage/{FNAME}.html',
-        145 => 'http://docs.oracle.com/javase/7/docs/api/org/omg/DynamicAny/DynAnyPackage/{FNAME}.html',
-        146 => 'http://docs.oracle.com/javase/7/docs/api/org/omg/IOP/{FNAME}.html',
-        147 => 'http://docs.oracle.com/javase/7/docs/api/org/omg/IOP/CodecFactoryPackage/{FNAME}.html',
-        148 => 'http://docs.oracle.com/javase/7/docs/api/org/omg/IOP/CodecPackage/{FNAME}.html',
-        149 => 'http://docs.oracle.com/javase/7/docs/api/org/omg/Messaging/{FNAME}.html',
-        150 => 'http://docs.oracle.com/javase/7/docs/api/org/omg/PortableInterceptor/{FNAME}.html',
-        151 => 'http://docs.oracle.com/javase/7/docs/api/org/omg/PortableInterceptor/ORBInitInfoPackage/{FNAME}.html',
-        152 => 'http://docs.oracle.com/javase/7/docs/api/org/omg/PortableServer/{FNAME}.html',
-        153 => 'http://docs.oracle.com/javase/7/docs/api/org/omg/PortableServer/CurrentPackage/{FNAME}.html',
-        154 => 'http://docs.oracle.com/javase/7/docs/api/org/omg/PortableServer/POAManagerPackage/{FNAME}.html',
-        155 => 'http://docs.oracle.com/javase/7/docs/api/org/omg/PortableServer/POAPackage/{FNAME}.html',
-        156 => 'http://docs.oracle.com/javase/7/docs/api/org/omg/PortableServer/ServantLocatorPackage/{FNAME}.html',
-        157 => 'http://docs.oracle.com/javase/7/docs/api/org/omg/SendingContext/{FNAME}.html',
-        158 => 'http://docs.oracle.com/javase/7/docs/api/org/omg/stub/java/rmi/{FNAME}.html',
-        159 => 'http://docs.oracle.com/javase/7/docs/api/org/w3c/dom/{FNAME}.html',
-        160 => 'http://docs.oracle.com/javase/7/docs/api/org/w3c/dom/bootstrap/{FNAME}.html',
-        161 => 'http://docs.oracle.com/javase/7/docs/api/org/w3c/dom/events/{FNAME}.html',
-        162 => 'http://docs.oracle.com/javase/7/docs/api/org/w3c/dom/ls/{FNAME}.html',
-        163 => 'http://docs.oracle.com/javase/7/docs/api/org/xml/sax/{FNAME}.html',
-        164 => 'http://docs.oracle.com/javase/7/docs/api/org/xml/sax/ext/{FNAME}.html',
-        165 => 'http://docs.oracle.com/javase/7/docs/api/org/xml/sax/helpers/{FNAME}.html',
-        /* ambiguous class names (appear in more than one package) */
-        166 => 'http://www.google.com/search?sitesearch=docs.oracle.com&amp;q=allinurl%3Ajavase+docs+api+{FNAME}'
-        ),
-    'OOLANG' => true,
-    'OBJECT_SPLITTERS' => array(
-        1 => '.'
-        /* Java does not use '::' */
-        ),
-    'REGEXPS' => array(
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        ),
-    'PARSER_CONTROL' => array(
-        'KEYWORDS' => array(
-            'DISALLOWED_BEFORE' => '(?<![a-zA-Z0-9\$_\|\#>|^&"\'])',
-            'DISALLOWED_AFTER' => '(?![a-zA-Z0-9_\|%\\-;"\'])'
-            )
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/javascript.php b/wiki/vendor/geshi/geshi/src/geshi/javascript.php
deleted file mode 100644
index bc13dc4..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/javascript.php
+++ /dev/null
@@ -1,172 +0,0 @@
-<?php
-/*************************************************************************************
- * javascript.php
- * --------------
- * 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.9.0
- * Date Started: 2004/06/20
- *
- * JavaScript language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2012/06/27 (1.0.8.11)
- *  -  Reordered Keyword Groups to reflect syntactical meaning of keywords
- * 2008/05/23 (1.0.7.22)
- *  -  Added description of extra language features (SF#1970248)
- * 2004/11/27 (1.0.1)
- *  -  Added support for multiple object splitters
- * 2004/10/27 (1.0.0)
- *  -  First Release
- *
- * TODO (updated 2004/11/27)
- * -------------------------
- *
- *************************************************************************************
- *
- *     This file is part of GeSHi.
- *
- *   GeSHi is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   GeSHi is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with GeSHi; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- ************************************************************************************/
-
-$language_data = array (
-    'LANG_NAME' => 'Javascript',
-    'COMMENT_SINGLE' => array(1 => '//'),
-    'COMMENT_MULTI' => array('/*' => '*/'),
-    'COMMENT_REGEXP' => array(
-        //Regular Expressions
-        2 => "/(?<=[\\s^])(s|tr|y)\\/(?!\*)(?!\s)(?:\\\\.|(?!\n)[^\\/\\\\])+(?<!\s)\\/(?!\s)(?:\\\\.|(?!\n)[^\\/\\\\])*(?<!\s)\\/[msixpogcde]*(?=[\\s$\\.\\;])|(?<=[\\s^(=])(m|q[qrwx]?)?\\/(?!\*)(?!\s)(?:\\\\.|(?!\n)[^\\/\\\\])+(?<!\s)\\/[msixpogc]*(?=[\\s$\\.\\,\\;\\)])/iU"
-        ),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array("'", '"'),
-    'ESCAPE_CHAR' => '\\',
-    'KEYWORDS' => array(
-        1 => array(
-            //reserved/keywords; also some non-reserved keywords
-            'break','case','catch','const','continue',
-            'default','delete','do',
-            'else',
-            'finally','for','function',
-            'get','goto',
-            'if','in','instanceof',
-            'new',
-            'prototype',
-            'return',
-            'set','static','switch',
-            'this','throw','try','typeof',
-            'var','void'
-            ),
-        2 => array(
-            //reserved/non-keywords; metaconstants
-            'false','null','true','undefined','NaN','Infinity'
-            ),
-        3 => array(
-            //magic properties/functions
-            '__proto__','__defineGetter__','__defineSetter__','hasOwnProperty','hasProperty'
-            ),
-        4 => array(
-            //type constructors
-            'Object', 'Function', 'Date', 'Math', 'String', 'Number', 'Boolean', 'Array'
-            ),
-        5 => array(
-            //reserved, but invalid in language
-            'abstract','boolean','byte','char','class','debugger','double','enum','export','extends',
-            'final','float','implements','import','int','interface','long','native',
-            'short','super','synchronized','throws','transient','volatile'
-            ),
-        ),
-    'SYMBOLS' => array(
-        '(', ')', '[', ']', '{', '}',
-        '+', '-', '*', '/', '%',
-        '!', '@', '&', '|', '^',
-        '<', '>', '=',
-        ',', ';', '?', ':'
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => true,
-        2 => true,
-        3 => true,
-        4 => true,
-        5 => true
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #000066; font-weight: bold;',
-            2 => 'color: #003366; font-weight: bold;',
-            3 => 'color: #000066;',
-            5 => 'color: #FF0000;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #006600; font-style: italic;',
-            2 => 'color: #009966; font-style: italic;',
-            'MULTI' => 'color: #006600; font-style: italic;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #000099; font-weight: bold;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #009900;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #3366CC;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #CC0000;'
-            ),
-        'METHODS' => array(
-            1 => 'color: #660066;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #339933;'
-            ),
-        'REGEXPS' => array(
-            ),
-        'SCRIPT' => array(
-            0 => '',
-            1 => '',
-            2 => '',
-            3 => ''
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => '',
-        4 => '',
-        5 => ''
-    ),
-    '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/wiki/vendor/geshi/geshi/src/geshi/jcl.php b/wiki/vendor/geshi/geshi/src/geshi/jcl.php
deleted file mode 100644
index 07e3b50..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/jcl.php
+++ /dev/null
@@ -1,155 +0,0 @@
-<?php
-/*************************************************************************************
- * jcl.php
- * -----------
- * Author: Ramesh Vishveshwar (ramesh.vishveshwar@gmail.com)
- * Copyright: (c) 2012 Ramesh Vishveshwar (http://thecodeisclear.in)
- * Release Version: 1.0.9.0
- * Date Started: 2011/09/16
- *
- * JCL (MVS), DFSORT, IDCAMS language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2011/09/16 (1.0.0)
- *   -  Internal Release (for own blog/testing)
- * 2012/09/22 (1.0.1)
- *   - Released with support for DFSORT, ICETOOL, IDCAMS
- *   - Added support for Symbolic variables in JCL
- *   - Added support for TWS OPC variables
- *
- *************************************************************************************
- *
- *     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' => 'JCL',
-    'COMMENT_SINGLE' => array(),
-    'COMMENT_MULTI' => array(),
-    'COMMENT_REGEXP' => array(
-        // Comments identified using REGEX
-        // Comments start with //* but should not be followed by % (TWS) or + (some JES3 stmts)
-        3 => "\/\/\*[^%](.*?)(\n)"
-        ),
-    'CASE_KEYWORDS' => GESHI_CAPS_UPPER,
-    'QUOTEMARKS' => array("'", '"'),
-    'ESCAPE_CHAR' => '',
-    'KEYWORDS' => array(
-        1 => array(
-            'COMMAND', 'CNTL', 'DD', 'ENDCNTL', 'EXEC', 'IF', 'THEN', 'ELSE',
-            'ENDIF', 'JCLLIB', 'JOB', 'OUTPUT', 'PEND',
-            'PROC', 'SET', 'XMIT'
-            ),
-        2 => array (
-            'PGM','CLASS','NOTIFY','MSGCLASS','DSN','KEYLEN','LABEL','LIKE',
-            'RECFM','LRECL','DCB','DSORG','BLKSIZE','SPACE','STORCLAS',
-            'DUMMY','DYNAM','AVGREC','BURST','DISP','UNIT','VOLUME',
-            'MSGLEVEL','REGION'
-            ),
-        // Keywords set 3: DFSORT, ICETOOL
-        3 => array (
-            'ALTSEQ','DEBUG','END','INCLUDE','INREC','MERGE','MODS','OMIT',
-            'OPTION','OUTFIL','OUTREC','RECORD','SORT','SUM',
-            'COPY','COUNT','DEFAULTS','DISPLAY','MODE','OCCUR','RANGE',
-            'SELECT','STATS','UNIQUE','VERIFY'
-            ),
-        // Keywords set 4: IDCAMS
-        4 => array (
-            'ALTER','BLDINDEX','CNVTCAT','DEFINE','ALIAS','ALTERNATEINDEX',
-            'CLUSTER','GENERATIONDATAGROUP','GDG','NONVSAM','PAGESPACE','PATH',
-            /* 'SPACE',*/'USERCATALOG','DELETE','EXAMINE','EXPORT','DISCONNECT',
-            'EXPORTRA','IMPORT','CONNECT','IMPORTRA','LISTCAT','LISTCRA',
-            'PRINT','REPRO','RESETCAT'//,'VERIFY'
-            )
-        ),
-    'SYMBOLS' => array(
-        '(',')','=',',','>','<'
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false,
-        2 => false,
-        3 => false,
-        4 => false
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #FF0000;',
-            2 => 'color: #21A502;',
-            3 => 'color: #FF00FF;',
-            4 => 'color: #876C00;'
-            ),
-        'COMMENTS' => array(
-            0 => 'color: #0000FF;',
-            //1 => 'color: #0000FF;',
-            //2 => 'color: #0000FF;',
-            3 => 'color: #0000FF;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => ''
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #FF7400;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #66CC66;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #336633;'
-            ),
-        'METHODS' => array(
-            1 => '',
-            2 => ''
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #FF7400;'
-            ),
-        'REGEXPS' => array(
-            0 => 'color: #6B1F6B;',
-            1 => 'color: #6B1F6B;',
-            2 => 'color: #6B1F6B;'
-            ),
-        'SCRIPT' => array(
-            0 => ''
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        // JCL book at IBM Bookshelf is http://publibz.boulder.ibm.com/cgi-bin/bookmgr_OS390/handheld/Connected/BOOKS/IEA2B680/CONTENTS?SHELF=&DT=20080604022956#3.1
-        2 => '',
-        3 => '',
-        4 => ''
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(),
-    'REGEXPS' => array(
-        // The following regular expressions solves three purposes
-        // - Identify Temp Variables in JCL (e.g. &&TEMP)
-        // - Symbolic variables in JCL (e.g. &SYSUID)
-        // - TWS OPC Variables (e.g. %OPC)
-        // Thanks to Simon for pointing me to this
-        0 => '&amp;&amp;[a-zA-Z]{1,8}[0-9]{0,}',
-        1 => '&amp;[a-zA-Z]{1,8}[0-9]{0,}',
-        2 => '&amp;|\?|%[a-zA-Z]{1,8}[0-9]{0,}'
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array()
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/jquery.php b/wiki/vendor/geshi/geshi/src/geshi/jquery.php
deleted file mode 100644
index 0ffd83f..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/jquery.php
+++ /dev/null
@@ -1,236 +0,0 @@
-<?php
-/*************************************************************************************
- * jquery.php
- * --------------
- * Author: Rob Loach (http://www.robloach.net)
- * Copyright: (c) 2009 Rob Loach (http://www.robloach.net)
- * Release Version: 1.0.9.0
- * Date Started: 2009/07/20
- *
- * jQuery 1.3 language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2009/07/20 (1.0.8.5)
- *  -  First Release
- *
- * TODO (updated 2009/07/20)
- * -------------------------
- *
- *************************************************************************************
- *
- *     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' => 'jQuery',
-    'COMMENT_SINGLE' => array(1 => '//'),
-    'COMMENT_MULTI' => array('/*' => '*/'),
-    //Regular Expressions
-    'COMMENT_REGEXP' => array(2 => "/(?<=[\\s^])s\\/(?:\\\\.|(?!\n)[^\\/\\\\])+\\/(?:\\\\.|(?!\n)[^\\/\\\\])+\\/[gimsu]*(?=[\\s$\\.\\;])|(?<=[\\s^(=])m?\\/(?:\\\\.|(?!\n)[^\\/\\\\])+\\/[gimsu]*(?=[\\s$\\.\\,\\;\\)])/iU"),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array("'", '"'),
-    'ESCAPE_CHAR' => '\\',
-    'KEYWORDS' => array(
-        1 => array(
-            'as', 'break', 'case', 'catch', 'continue', 'decodeURI', 'delete', 'do',
-            'else', 'encodeURI', 'eval', 'finally', 'for', 'if', 'in', 'is', 'item',
-            'instanceof', 'return', 'switch', 'this', 'throw', 'try', 'typeof', 'void',
-            'while', 'write', 'with'
-            ),
-        2 => array(
-            'class', 'const', 'default', 'debugger', 'export', 'extends', 'false',
-            'function', 'import', 'namespace', 'new', 'null', 'package', 'private',
-            'protected', 'public', 'super', 'true', 'use', 'var'
-            ),
-        3 => array(
-            // common functions for Window object
-            'alert', 'back', 'close', 'confirm', 'forward', 'home',
-            'name', 'navigate', 'onblur', 'onerror', 'onfocus', 'onload', 'onmove',
-            'onresize', 'onunload', 'open', 'print', 'prompt', 'status',
-            //'blur', 'focus', 'scroll', // Duplicate with kw9
-            //'stop', //Duplicate with kw10
-            ),
-        4 => array(
-            // jQuery Core Functions
-            'jQuery', 'each', 'size', 'length', 'selector', 'context', 'eq',
-            'index', 'data', 'removeData', 'queue', 'dequeue', 'noConflict'
-            //'get', //Duplicate with kw11
-            ),
-        5 => array(
-            // jQuery Attribute Functions
-            'attr', 'removeAttr', 'addClass', 'hasClass', 'removeClass', 'toggleClass',
-            'html', 'text', 'val',
-            ),
-        6 => array(
-            // jQuery Traversing Functions
-            'filter', 'not', 'slice', 'add', 'children', 'closest',
-            'contents', 'find', 'next', 'nextAll', 'parent', 'parents',
-            'prev', 'prevAll', 'siblings', 'andSelf', 'end',
-            //'is',  //Dup with kw1
-            //'offsetParent', //Duplicate with kw8
-            //'map', //Duplicate with kw12
-            ),
-        7 => array(
-            // jQuery Manipulation Functions
-            'append', 'appendTo', 'prepend', 'prependTo', 'after', 'before', 'insertAfter',
-            'insertBefore', 'wrap', 'wrapAll', 'wrapInner', 'replaceWith', 'replaceAll',
-            'empty', 'remove', 'clone',
-            ),
-        8 => array(
-            // jQuery CSS Functions
-            'css', 'offset', 'offsetParent', 'position', 'scrollTop', 'scrollLeft',
-            'height', 'width', 'innerHeight', 'innerWidth', 'outerHeight', 'outerWidth',
-            ),
-        9 => array(
-            // jQuery Events Functions
-            'ready', 'bind', 'one', 'trigger', 'triggerHandler', 'unbind', 'live',
-            'die', 'hover', 'blur', 'change', 'click', 'dblclick', 'error',
-            'focus', 'keydown', 'keypress', 'keyup', 'mousedown', 'mouseenter',
-            'mouseleave', 'mousemove', 'mouseout', 'mouseover', 'mouseup', 'resize',
-            'scroll', 'select', 'submit', 'unload',
-            //'toggle', //Duplicate with kw10
-            //'load', //Duplicate with kw11
-            ),
-        10 => array(
-            // jQuery Effects Functions
-            'show', 'hide', 'toggle', 'slideDown', 'slideUp', 'slideToggle', 'fadeIn',
-            'fadeOut', 'fadeTo', 'animate', 'stop',
-            ),
-        11 => array(
-            // jQuery Ajax Functions
-            'ajax', 'load', 'get', 'getJSON', 'getScript', 'post', 'ajaxComplete',
-            'ajaxError', 'ajaxSend', 'ajaxStart', 'ajaxStop', 'ajaxSuccess', 'ajaxSetup',
-            'serialize', 'serializeArray',
-            ),
-        12 => array(
-            // jQuery Utility Functions
-            'support', 'browser', 'version', 'boxModal', 'extend', 'grep', 'makeArray',
-            'map', 'inArray', 'merge', 'unique', 'isArray', 'isFunction', 'trim',
-            'param',
-            ),
-        ),
-    'SYMBOLS' => array(
-        0 => array(
-            '(', ')', '[', ']', '{', '}',
-            '+', '-', '*', '/', '%',
-            '!', '@', '&', '|', '^',
-            '<', '>', '=',
-            ',', ';', '?', ':'
-            ),
-        1 => array(
-            '$'
-            )
-        ),
-    '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,
-        11 => false,
-        12 => false
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #000066; font-weight: bold;',
-            2 => 'color: #003366; font-weight: bold;',
-            3 => 'color: #000066;',
-            4 => 'color: #000066;',
-            5 => 'color: #000066;',
-            6 => 'color: #000066;',
-            7 => 'color: #000066;',
-            8 => 'color: #000066;',
-            9 => 'color: #000066;',
-            10 => 'color: #000066;',
-            11 => 'color: #000066;',
-            12 => 'color: #000066;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #006600; font-style: italic;',
-            2 => 'color: #009966; font-style: italic;',
-            'MULTI' => 'color: #006600; font-style: italic;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #000099; font-weight: bold;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #009900;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #3366CC;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #CC0000;'
-            ),
-        'METHODS' => array(
-            1 => 'color: #660066;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #339933;',
-            1 => 'color: #000066;'
-            ),
-        'REGEXPS' => array(
-            ),
-        'SCRIPT' => array(
-            0 => '',
-            1 => '',
-            2 => '',
-            3 => ''
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => '',
-        4 => 'http://docs.jquery.com/Core/{FNAME}',
-        5 => 'http://docs.jquery.com/Attributes/{FNAME}',
-        6 => 'http://docs.jquery.com/Traversing/{FNAME}',
-        7 => 'http://docs.jquery.com/Manipulation/{FNAME}',
-        8 => 'http://docs.jquery.com/CSS/{FNAME}',
-        9 => 'http://docs.jquery.com/Events/{FNAME}',
-        10 => 'http://docs.jquery.com/Effects/{FNAME}',
-        11 => 'http://docs.jquery.com/Ajax/{FNAME}',
-        12 => 'http://docs.jquery.com/Utilities/{FNAME}'
-        ),
-    '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/wiki/vendor/geshi/geshi/src/geshi/julia.php b/wiki/vendor/geshi/geshi/src/geshi/julia.php
deleted file mode 100644
index 93459c5..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/julia.php
+++ /dev/null
@@ -1,171 +0,0 @@
-<?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/wiki/vendor/geshi/geshi/src/geshi/kixtart.php b/wiki/vendor/geshi/geshi/src/geshi/kixtart.php
deleted file mode 100644
index 7f66e74..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/kixtart.php
+++ /dev/null
@@ -1,327 +0,0 @@
-<?php
-/*************************************************************************************
- * kixtart.php
- * --------
- * Author: Riley McArdle (riley@glyff.net)
- * Copyright: (c) 2007 Riley McArdle (http://www.glyff.net/)
- * Release Version: 1.0.9.0
- * Date Started: 2007/08/31
- *
- * PHP language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2007/08/31 (1.0.7.22)
- *  -  First Release
- *
- * TODO (updated 2007/08/31)
- * -------------------------
- * *
- *
- *************************************************************************************
- *
- *     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' => 'KiXtart',
-    'COMMENT_SINGLE' => array(1 => ';'),
-    'COMMENT_MULTI' => array('/*' => '*/'),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array("'", '"'),
-    'ESCAPE_CHAR' => '',
-    'KEYWORDS' => array(
-        1 => array(
-            'While', 'Loop',
-            'Use',
-            'Small',
-            'Sleep',
-            'Shell',
-            'SetTime',
-            'SetM',
-            'SetL',
-            'Set',
-            'Select', 'Case',
-            'Run',
-            'Return',
-            'Redim',
-            'RD',
-            'Quit',
-            'Play',
-            'Move',
-            'MD',
-            'Include',
-            'If', 'Else', 'Endif',
-            'GoTo',
-            'GoSub',
-            'Go',
-            'Global',
-            'GetS',
-            'Get',
-            'Function', 'Endfunction',
-            'For', 'Next',
-            'Each',
-            'FlushKb',
-            'Exit',
-            'Do', 'Until',
-            'Display',
-            'Dim',
-            'Del',
-            'Debug',
-            'Copy',
-            'Cookie1',
-            'Color',
-            'CLS',
-            'CD',
-            'Call',
-            'Break',
-            'Big',
-            'Beep',
-            ),
-        2 => array(
-            '@Address',
-            '@Build',
-            '@Color',
-            '@Comment',
-            '@CPU',
-            '@CRLF',
-            '@CSD',
-            '@CurDir',
-            '@Date',
-            '@Day',
-            '@Domain',
-            '@DOS',
-            '@Error',
-            '@FullName',
-            '@HomeDir',
-            '@HomeDrive',
-            '@HomeShr',
-            '@HostName',
-            '@InWin',
-            '@IPaddressX',
-            '@KiX',
-            '@LanRoot',
-            '@LDomain',
-            '@LDrive',
-            '@LM',
-            '@LogonMode',
-            '@LongHomeDir',
-            '@LServer',
-            '@MaxPWAge',
-            '@MDayNo',
-            '@MHz',
-            '@MonthNo',
-            '@Month',
-            '@MSecs',
-            '@OnWoW64',
-            '@PID',
-            '@PrimaryGroup',
-            '@Priv',
-            '@ProductSuite',
-            '@ProductType',
-            '@PWAge',
-            '@RAS',
-            '@Result',
-            '@RServer',
-            '@ScriptDir',
-            '@ScriptExe',
-            '@ScriptName',
-            '@SError',
-            '@SID',
-            '@Site',
-            '@StartDir',
-            '@SysLang',
-            '@Ticks',
-            '@Time',
-            '@TsSession',
-            '@UserID',
-            '@UserLang',
-            '@WDayNo',
-            '@Wksta',
-            '@WUserID',
-            '@YDayNo',
-            '@Year',
-            ),
-        3 => array(
-            'WriteValue',
-            'WriteProfileString',
-            'WriteLine',
-            'VarTypeName',
-            'VarType',
-            'Val',
-            'UnloadHive',
-            'UCase',
-            'Ubound',
-            'Trim',
-            'Substr',
-            'SRnd',
-            'Split',
-            'SidToName',
-            'ShutDown',
-            'ShowProgramGroup',
-            'SetWallpaper',
-            'SetTitle',
-            'SetSystemState',
-            'SetOption',
-            'SetFocus',
-            'SetFileAttr',
-            'SetDefaultPrinter',
-            'SetConsole',
-            'SetAscii',
-            'SendMessage',
-            'SendKeys',
-            'SaveKey',
-            'RTrim',
-            'Round',
-            'Rnd',
-            'Right',
-            'RedirectOutput',
-            'ReadValue',
-            'ReadType',
-            'ReadProfileString',
-            'ReadLine',
-            'Open',
-            'MessageBox',
-            'MemorySize',
-            'LTrim',
-            'Logoff',
-            'LogEvent',
-            'LoadKey',
-            'LoadHive',
-            'Len',
-            'Left',
-            'LCase',
-            'KeyExist',
-            'KbHit',
-            'Join',
-            'IsDeclared',
-            'Int',
-            'InStrRev',
-            'InStr',
-            'InGroup',
-            'IIF',
-            'GetObject',
-            'GetFileVersion',
-            'GetFileTime',
-            'GetFileSize',
-            'GetFileAttr',
-            'GetDiskSpace',
-            'FreeFileHandle',
-            'FormatNumber',
-            'Fix',
-            'ExpandEnvironmentVars',
-            'Exist',
-            'Execute',
-            'EnumValue',
-            'EnumLocalGroup',
-            'EnumKey',
-            'EnumIpInfo',
-            'EnumGroup',
-            'Dir',
-            'DelValue',
-            'DelTree',
-            'DelProgramItem',
-            'DelProgramGroup',
-            'DelPrinterConnection',
-            'DelKey',
-            'DecToHex',
-            'CStr',
-            'CreateObject',
-            'CompareFileTimes',
-            'Close',
-            'ClearEventLog',
-            'CInt',
-            'Chr',
-            'CDbl',
-            'Box',
-            'BackupEventLog',
-            'At',
-            'AScan',
-            'Asc',
-            'AddProgramItem',
-            'AddProgramGroup',
-            'AddPrinterConnection',
-            'AddKey',
-            'Abs'
-            )
-        ),
-    'SYMBOLS' => array(
-        '(', ')', '[', ']', '?', ':', '+', '-', '*', '/', '&', '|', '^', '~', '<', '>', '='
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false,
-        2 => false,
-        3 => false,
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #b1b100;',
-            2 => 'color: #000000; font-weight: bold;',
-            3 => 'color: #000066;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #808080; font-style: italic;',
-            'MULTI' => 'color: #808080; font-style: italic;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #000099; font-weight: bold;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #66cc66;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #ff0000;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #cc66cc;'
-            ),
-        'METHODS' => array(
-            1 => 'color: #006600;',
-            2 => 'color: #006600;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #66cc66;'
-            ),
-        'REGEXPS' => array(
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => 'http://www.kixtart.org/manual/Commands/{FNAMEL}.htm',
-        2 => '',
-        3 => 'http://www.kixtart.org/manual/Functions/{FNAMEL}.htm'
-        ),
-    'OOLANG' => true,
-    'OBJECT_SPLITTERS' => array(
-        1 => '.'
-        ),
-    'REGEXPS' => array(
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        0 => true,
-        1 => true,
-        2 => true,
-        3 => true
-        ),
-    'TAB_WIDTH' => 4
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/klonec.php b/wiki/vendor/geshi/geshi/src/geshi/klonec.php
deleted file mode 100644
index 58f2d7b..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/klonec.php
+++ /dev/null
@@ -1,280 +0,0 @@
-<?php
-/*************************************************************************************
- * klonec.php
- * --------
- * Author: AUGER Mickael
- * Copyright: Synchronic
- * Release Version: 1.0.9.0
- * Date Started: 2008/04/16
- *
- * KLone with C language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2008/04/16 (1.0.8)
- *  -  First Release
- *
- * TODO (updated 2008/04/16)
- * -------------------------
- * A tester et a completer si besoin
- *************************************************************************************
- *
- *     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' => 'KLone C',
-    'COMMENT_SINGLE' => array(1 => '//', 2 => '#'),//#pour precede les include de C
-    'COMMENT_MULTI' => array('/*' => '*/', '<!--' => '-->' ),//comentaires C et KLone suivi de ceux pour HTML
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array("'", '"'),
-    'ESCAPE_CHAR' => '\\',
-    'KEYWORDS' => array(
-        1 => array(//mots-cles C
-            'if', 'return', 'while', 'case', 'class', 'continue', 'default',
-            'do', 'else', 'for', 'switch', 'goto',
-            'null', 'break', 'true', 'enum', 'extern', 'inline', 'false'
-            ),
-        2 => array(//mots-cles KLone
-            'out', 'request', 'response',
-            ),
-        3 => array(//fonctions C usuelles
-            'printf', 'malloc', 'fopen', 'fclose', 'free', 'fputs', 'fgets', 'feof', 'fwrite',
-            'perror', 'ferror', 'qsort', 'stats', 'sscanf', 'scanf',
-            'strdup', 'strcpy', 'strcmp', 'strncpy', 'strcasecmp', 'cat', 'strcat', 'strstr',
-            'strlen', 'strtof', 'strtod', 'strtok', 'towlower', 'towupper',
-            'cd', 'system', 'exit', 'exec', 'fork', 'vfork', 'kill', 'signal', 'syslog',
-            'usleep', 'utime', 'wait', 'waitpid', 'waitid',
-            'ceil', 'eval', 'round', 'floor',
-            'atoi', 'atol', 'abs', 'cos', 'sin', 'tan', 'acos', 'asin', 'atan', 'exp',
-            'time', 'ctime', 'localtime', 'asctime', 'gmtime', 'difftime', 'date'
-            ),
-        4 => array(//fonctions KLone usuelles
-            'request_get_cookies', 'request_get_cookie', 'request_get_args', 'request_get_arg',
-            'request_io', 'request_get_uri', 'request_get_filename', 'request_get_query_string', 'request_get_path_info',
-            'request_get_if_modified_since', 'request_get_http', 'request_get_client_request',
-            'request_get_content_length', 'request_get_uploads', 'request_get_uploaded_file',
-            'request_get_method', 'request_get_protocol', 'request_get_resolved_filename',
-            'request_get_resolved_path_info', 'request_get_addr', 'request_get_peer_addr',
-            'request_get_header', 'request_get_field', 'request_get_field_value',
-            'response_set_content_encoding', 'response_disable_caching', 'response_enable_caching',
-            'response_set_cookie', 'response_set_method', 'response_get_method',
-            'response_print_header', 'response_set_field', 'response_del_field',
-            'response_set_content_type', 'response_set_date', 'response_set_last_modified',
-            'response_set_content_length', 'response_get_status', 'response_get_header',
-            'response_io', 'response_redirect', 'response_set_status',
-            'session_get_vars', 'session_get', 'session_set', 'session_age', 'session_clean', 'session_del',
-            'io_type', 'io_pipe', 'io_dup', 'io_copy', 'io_seek', 'io_tell', 'io_close',
-            'io_free', 'io_read', 'io_printf', 'io_flush', 'io_write', 'io_putc', 'io_getc',
-            'io_get_until', 'io_gets', 'io_codec_add_head', 'io_codec_add_tail',
-            'io_codecs_remove', 'io_name_set', 'io_name_get'
-            ),
-        5 => array(//types C
-            'auto', 'char', 'const', 'double',  'float', 'int', 'long',
-            'register', 'short', 'signed', 'sizeof', 'static', 'string', 'struct',
-            'typedef', 'union', 'unsigned', 'void', 'volatile',
-            'wchar_t', 'time_t', 'FILE'
-            ),
-        6 => array(//mots-cles HTML
-            'a', 'abbr', 'acronym', 'address', 'applet',
-
-            'base', 'basefont', 'bdo', 'big', 'blockquote', 'body', 'br', 'button', 'b',
-
-            'caption', 'center', 'cite', 'code', 'colgroup', 'col',
-
-            'dd', 'del', 'dfn', 'dir', 'div', 'dl', 'dt',
-
-            'em',
-
-            'fieldset', 'font', 'form', 'frame', 'frameset',
-
-            'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'hr', 'html',
-
-            'iframe', 'ilayer', 'img', 'input', 'ins', 'isindex', 'i',
-
-            'kbd',
-
-            'label', 'legend', 'link', 'li',
-
-            'map', 'meta',
-
-            'noframes', 'noscript',
-
-            'object', 'ol', 'optgroup', 'option',
-
-            'param', 'pre', 'p',
-
-            'q',
-
-            'samp', 'script', 'select', 'small', 'span', 'strike', 'strong', 'style', 'sub', 'sup', 's',
-
-            'table', 'tbody', 'td', 'textarea', 'text', 'tfoot', 'thead', 'th', 'title', 'tr', 'tt',
-
-            'ul', 'u',
-
-            'var',
-            ),
-        7 => array(//autres mots-cles HTML
-            'abbr', 'accept-charset', 'accept', 'accesskey', 'action', 'align', 'alink', 'alt', 'archive', 'axis',
-            'background', 'bgcolor', 'border',
-            'cellpadding', 'cellspacing', 'char', 'charoff', 'charset', 'checked', 'cite', 'class', 'classid', 'clear', 'code', 'codebase', 'codetype', 'color', 'cols', 'colspan', 'compact', 'content', 'coords',
-            'data', 'datetime', 'declare', 'defer', 'dir', 'disabled',
-            'enctype',
-            'face', 'for', 'frame', 'frameborder',
-            'headers', 'height', 'href', 'hreflang', 'hspace', 'http-equiv',
-            'id', 'ismap',
-            'label', 'lang', 'language', 'link', 'longdesc',
-            'marginheight', 'marginwidth', 'maxlength', 'media', 'method', 'multiple',
-            'name', 'nohref', 'noresize', 'noshade', 'nowrap',
-            'object', 'onblur', 'onchange', 'onclick', 'ondblclick', 'onfocus', 'onkeydown', 'onkeypress', 'onkeyup', 'onload', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'onreset', 'onselect', 'onsubmit', 'onunload',
-            'profile', 'prompt',
-            'readonly', 'rel', 'rev', 'rowspan', 'rows', 'rules',
-            'scheme', 'scope', 'scrolling', 'selected', 'shape', 'size', 'span', 'src', 'standby', 'start', 'style', 'summary',
-            'tabindex', 'target', 'text', 'title', 'type',
-            'usemap',
-            'valign', 'value', 'valuetype', 'version', 'vlink', 'vspace',
-            'width'
-            )
-        ),
-    'SYMBOLS' => array(
-        1 => array(
-            '<%=', '<%!', '<%', '%>'
-            ),
-        0 => 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: #b1b100; font-weight: bold;',//pour les mots-cles C
-            2 => 'color: #000000; font-weight: bold;',//pour les mots-cles KLone
-            3 => 'color: #6600FF;',//pour les fonctions C
-            4 => 'color: #6600FF;',//pour les fonctions Klone
-            5 => 'color: #0099FF; font-weight: bold;',//pour les types C
-            6 => 'color: #990099; font-weight: bold;',//pour les mots-cles HTML
-            7 => 'color: #000066;'//pour les autres mots-cles HTML
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #808080; font-style: italic;',//commentaire sur une ligne C et KLone
-            2 => 'color: #339933;',//pour les #... en C
-            'MULTI' => 'color: #808080; font-style: italic;'//commentaire sur plusieurs lignes C et KLone
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #000099; font-weight: bold;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #000000;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #ff0000;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #cc66cc;'
-            ),
-        'METHODS' => array(
-            1 => 'color: #006600;',
-            2 => 'color: #006600;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #000000;',
-            1 => 'color: #000000; font-weight: bold;'
-            ),
-        'REGEXPS' => array(),
-        'SCRIPT' => array(
-            0 => 'background-color:#ffccff; font-weight: bold; color:#000000;',
-            1 => '',
-            2 => '',
-            3 => 'color: #00bbdd; font-weight: bold;',
-            4 => 'color: #ddbb00;',
-            5 => 'color: #009900;'
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => 'http://www.opengroup.org/onlinepubs/009695399/functions/{FNAMEL}.html',
-        4 => 'http://www.koanlogic.com/klone/api/html/globals.html',
-        5 => '',
-        6 => 'http://december.com/html/4/element/{FNAMEL}.html',
-        7 => ''
-        ),
-    'OOLANG' => true,
-    'OBJECT_SPLITTERS' => array(
-        1 => '.',
-        2 => '::'
-        ),
-    'REGEXPS' => array(
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_ALWAYS,
-    'SCRIPT_DELIMITERS' => array(
-        //delimiteurs pour KLone
-        0 => array(
-            '<%=' => '%>'
-            ),
-        1 => array(
-            '<%!' => '%>'
-            ),
-        2 => array(
-            '<%' => '%>'
-            ),
-        //delimiteur pour HTML
-        3 => array(
-            '<!DOCTYPE' => '>'
-            ),
-        4 => array(
-            '&' => ';'
-            ),
-        5 => array(
-            '<' => '>'
-            )
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        0 => false,
-        1 => true,
-        2 => true,
-        3 => false,
-        4 => false,
-        5 => true
-        ),
-    'TAB_WIDTH' => 4,
-    'PARSER_CONTROL' => array(
-        'KEYWORDS' => array(
-            6 => array(
-                'DISALLOWED_BEFORE' => '(?<=&lt;|&lt;\/)',
-                'DISALLOWED_AFTER' => '(?=\s|\/|&gt;)',
-            ),
-            7 => array(
-                'DISALLOWED_AFTER' => '(?=\s*=)',
-            )
-        )
-    )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/klonecpp.php b/wiki/vendor/geshi/geshi/src/geshi/klonecpp.php
deleted file mode 100644
index 4b71cba..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/klonecpp.php
+++ /dev/null
@@ -1,308 +0,0 @@
-<?php
-/*************************************************************************************
- * klonecpp.php
- * --------
- * Author: AUGER Mickael
- * Copyright: Synchronic
- * Release Version: 1.0.9.0
- * Date Started: 2008/04/16
- *
- * KLone with C++ language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2008/04/16 (1.0.8)
- *  -  First Release
- *
- * TODO (updated 2008/04/16)
- * -------------------------
- * A tester et a completer si besoin
- *************************************************************************************
- *
- *     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' => 'KLone C++',
-    'COMMENT_SINGLE' => array(1 => '//', 2 => '#'),//#pour precede les include de C
-    'COMMENT_MULTI' => array('/*' => '*/', '<!--' => '-->' ),//comentaires C et KLone suivi de ceux pour HTML
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array("'", '"'),
-    'ESCAPE_CHAR' => '\\',
-    'KEYWORDS' => array(
-        1 => array(//mots-cles C++
-            'if', 'return', 'while', 'case', 'continue', 'default',
-            'do', 'else', 'for', 'switch', 'goto',
-            'break', 'true', 'enum', 'extern', 'inline', 'false',
-            'errno', 'stdin', 'stdout', 'stderr',
-            'virtual', 'public', 'private', 'protected', 'template', 'using', 'namespace',
-            'try', 'catch', 'dynamic_cast', 'const_cast', 'reinterpret_cast',
-            'static_cast', 'explicit', 'friend', 'typename', 'typeid', 'class',
-            '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', 'NULL',
-            'SEEK_CUR', 'SEEK_END', 'SEEK_SET', 'TMP_MAX',
-            'EXIT_FAILURE', 'EXIT_SUCCESS', 'RAND_MAX', 'CLOCKS_PER_SEC'
-            ),
-        2 => array(//mots-cles KLone
-            'out', 'request', 'response',
-            ),
-        3 => array(//fonctions C++ usuelles
-            'cin', 'cerr', 'clog', 'cout', 'delete', 'new', 'this',
-            '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(//fonctions KLone usuelles
-            'request_get_cookies', 'request_get_cookie', 'request_get_args', 'request_get_arg',
-            'request_io', 'request_get_uri', 'request_get_filename', 'request_get_query_string', 'request_get_path_info',
-            'request_get_if_modified_since', 'request_get_http', 'request_get_client_request',
-            'request_get_content_length', 'request_get_uploads', 'request_get_uploaded_file',
-            'request_get_method', 'request_get_protocol', 'request_get_resolved_filename',
-            'request_get_resolved_path_info', 'request_get_addr', 'request_get_peer_addr',
-            'request_get_header', 'request_get_field', 'request_get_field_value',
-            'response_set_content_encoding', 'response_disable_caching', 'response_enable_caching',
-            'response_set_cookie', 'response_set_method', 'response_get_method',
-            'response_print_header', 'response_set_field', 'response_del_field',
-            'response_set_content_type', 'response_set_date', 'response_set_last_modified',
-            'response_set_content_length', 'response_get_status', 'response_get_header',
-            'response_io', 'response_redirect', 'response_set_status',
-            'session_get_vars', 'session_get', 'session_set', 'session_age', 'session_clean', 'session_del',
-            'io_type', 'io_pipe', 'io_dup', 'io_copy', 'io_seek', 'io_tell', 'io_close',
-            'io_free', 'io_read', 'io_printf', 'io_flush', 'io_write', 'io_putc', 'io_getc',
-            'io_get_until', 'io_gets', 'io_codec_add_head', 'io_codec_add_tail',
-            'io_codecs_remove', 'io_name_set', 'io_name_get'
-            ),
-        5 => array(//types C++
-            'auto', 'bool', 'char', 'const', 'double', 'float', 'int', 'long', 'longint',
-            'register', 'short', 'shortint', 'signed', 'static', 'struct',
-            'typedef', 'union', 'unsigned', 'void', 'volatile', 'jmp_buf',
-            'signal', 'raise', 'va_list', 'ptrdiff_t', 'size_t', 'FILE', 'fpos_t',
-            'div_t', 'ldiv_t', 'clock_t', 'time_t', 'tm',
-            'string', 'wchar_t'
-            ),
-        6 => array(//mots-cles HTML
-            'a', 'abbr', 'acronym', 'address', 'applet',
-
-            'base', 'basefont', 'bdo', 'big', 'blockquote', 'body', 'br', 'button', 'b',
-
-            'caption', 'center', 'cite', 'code', 'colgroup', 'col',
-
-            'dd', 'del', 'dfn', 'dir', 'div', 'dl', 'dt',
-
-            'em',
-
-            'fieldset', 'font', 'form', 'frame', 'frameset',
-
-            'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'hr', 'html',
-
-            'iframe', 'ilayer', 'img', 'input', 'ins', 'isindex', 'i',
-
-            'kbd',
-
-            'label', 'legend', 'link', 'li',
-
-            'map', 'meta',
-
-            'noframes', 'noscript',
-
-            'object', 'ol', 'optgroup', 'option',
-
-            'param', 'pre', 'p',
-
-            'q',
-
-            'samp', 'script', 'select', 'small', 'span', 'strike', 'strong', 'style', 'sub', 'sup', 's',
-
-            'table', 'tbody', 'td', 'textarea', 'text', 'tfoot', 'thead', 'th', 'title', 'tr', 'tt',
-
-            'ul', 'u',
-
-            'var',
-            ),
-        7 => array(//autres mots-cles HTML
-            'abbr', 'accept-charset', 'accept', 'accesskey', 'action', 'align', 'alink', 'alt', 'archive', 'axis',
-            'background', 'bgcolor', 'border',
-            'cellpadding', 'cellspacing', 'char', 'charoff', 'charset', 'checked', 'cite', 'class', 'classid', 'clear', 'code', 'codebase', 'codetype', 'color', 'cols', 'colspan', 'compact', 'content', 'coords',
-            'data', 'datetime', 'declare', 'defer', 'dir', 'disabled',
-            'enctype',
-            'face', 'for', 'frame', 'frameborder',
-            'headers', 'height', 'href', 'hreflang', 'hspace', 'http-equiv',
-            'id', 'ismap',
-            'label', 'lang', 'language', 'link', 'longdesc',
-            'marginheight', 'marginwidth', 'maxlength', 'media', 'method', 'multiple',
-            'name', 'nohref', 'noresize', 'noshade', 'nowrap',
-            'object', 'onblur', 'onchange', 'onclick', 'ondblclick', 'onfocus', 'onkeydown', 'onkeypress', 'onkeyup', 'onload', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'onreset', 'onselect', 'onsubmit', 'onunload',
-            'profile', 'prompt',
-            'readonly', 'rel', 'rev', 'rowspan', 'rows', 'rules',
-            'scheme', 'scope', 'scrolling', 'selected', 'shape', 'size', 'span', 'src', 'standby', 'start', 'style', 'summary',
-            'tabindex', 'target', 'text', 'title', 'type',
-            'usemap',
-            'valign', 'value', 'valuetype', 'version', 'vlink', 'vspace',
-            'width'
-            )
-        ),
-    'SYMBOLS' => array(
-        1 => array(
-            '<%=', '<%!', '<%', '%>'
-            ),
-        0 => 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: #b1b100; font-weight: bold;',//pour les mots-cles C++
-            2 => 'color: #000000; font-weight: bold;',//pour les mots-cles KLone
-            3 => 'color: #6600FF;',//pour les fonctions C++
-            4 => 'color: #6600FF;',//pour les fonctions Klone
-            5 => 'color: #0099FF; font-weight: bold;',//pour les types C++
-            6 => 'color: #990099; font-weight: bold;',//pour les mots-cles HTML
-            7 => 'color: #000066;'//pour les autres mots-cles HTML
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #808080; font-style: italic;',//commentaire sur une ligne C++ et KLone
-            2 => 'color: #339933;',//pour les #... en C++
-            'MULTI' => 'color: #808080; font-style: italic;'//commentaire sur plusieurs lignes C++ et KLone
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #000099; font-weight: bold;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #000000;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #ff0000;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #cc66cc;'
-            ),
-        'METHODS' => array(
-            1 => 'color: #006600;',
-            2 => 'color: #006600;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #000000;',
-            1 => 'color: #000000; font-weight: bold;'
-            ),
-        'REGEXPS' => array(),
-        'SCRIPT' => array(
-            0 => 'background-color:#ffccff; font-weight: bold; color:#000000;',
-            1 => '',
-            2 => '',
-            3 => 'color: #00bbdd; font-weight: bold;',
-            4 => 'color: #ddbb00;',
-            5 => 'color: #009900;'
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => 'http://www.opengroup.org/onlinepubs/009695399/functions/{FNAMEL}.html',
-        4 => 'http://www.koanlogic.com/klone/api/html/globals.html',
-        5 => '',
-        6 => 'http://december.com/html/4/element/{FNAMEL}.html',
-        7 => ''
-        ),
-    'OOLANG' => true,
-    'OBJECT_SPLITTERS' => array(
-        1 => '.',
-        2 => '::'
-        ),
-    'REGEXPS' => array(
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_ALWAYS,
-    'SCRIPT_DELIMITERS' => array(
-        //delimiteurs pour KLone
-        0 => array(
-            '<%=' => '%>'
-            ),
-        1 => array(
-            '<%!' => '%>'
-            ),
-        2 => array(
-            '<%' => '%>'
-            ),
-        //delimiteur pour HTML
-        3 => array(
-            '<!DOCTYPE' => '>'
-            ),
-        4 => array(
-            '&' => ';'
-            ),
-        5 => array(
-            '<' => '>'
-            )
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        0 => false,
-        1 => true,
-        2 => true,
-        3 => false,
-        4 => false,
-        5 => true
-        ),
-    'TAB_WIDTH' => 4,
-    'PARSER_CONTROL' => array(
-        'KEYWORDS' => array(
-            6 => array(
-                'DISALLOWED_BEFORE' => '(?<=&lt;|&lt;\/)',
-                'DISALLOWED_AFTER' => '(?=\s|\/|&gt;)',
-            ),
-            7 => array(
-                'DISALLOWED_AFTER' => '(?=\s*=)',
-            )
-        )
-    )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/kotlin.php b/wiki/vendor/geshi/geshi/src/geshi/kotlin.php
deleted file mode 100644
index cb20ad8..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/kotlin.php
+++ /dev/null
@@ -1,959 +0,0 @@
-<?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/wiki/vendor/geshi/geshi/src/geshi/latex.php b/wiki/vendor/geshi/geshi/src/geshi/latex.php
deleted file mode 100644
index d03dde9..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/latex.php
+++ /dev/null
@@ -1,221 +0,0 @@
-<?php
-/*************************************************************************************
- * latex.php
- * -----
- * 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.9.0
- * Date Started: 2006/09/23
- *
- * LaTeX language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2008/08/18 (1.0.8.1)
- *  - Changes in color and some additional command recognition
- *  - No special Color for Brackets, it is only distracting
- *    if color should be reintroduced it should be less bright
- *  - Math color changed from green to violett, since green is now used for comments
- *  - Comments are now colored and the only green. The reason for coloring the comments
- *    is that often important information is in the comments und was merely unvisible before.
- *  - New Color for [Options]
- *  - color for labels not specialised anymore. It makes sence in large documents but less in
- *    small web examples.
- *  - \@keyword introduced
- *  - Fixed \& escaped ampersand
- * 2006/09/23 (1.0.0)
- *  -  First Release
- *
- * 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' => 'LaTeX',
-    'COMMENT_SINGLE' => array(
-        1 => '%'
-        ),
-    'COMMENT_MULTI' => array(),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array(),
-    'ESCAPE_CHAR' => '',
-    'KEYWORDS' => array(
-        1 => array(
-            'addlinespace','and','address','appendix','author','backmatter',
-            'bfseries','bibitem','bigskip','blindtext','caption','captionabove',
-            'captionbelow','cdot','centering','chapter','cite','color',
-            'colorbox','date','dedication','def','definecolor','documentclass',
-            'edef','else','email','emph','eqref','extratitle','fbox','fi',
-            'flushleft','flushright','footnote','frac','frontmatter',
-            'graphicspath','hfil','hfill','hfilll','hline','hspace','huge','ifx','include',
-            'includegraphics','infty','input','int','item','itemsep',
-            'KOMAoption','KOMAoptions','label','LaTeX','left','let','limits',
-            'listfiles','listoffigures','listoftables','lowertitleback',
-            'mainmatter','makeatletter','makeatother','makebox','makeindex',
-            'maketitle','mbox','mediumskip','newcommand','newenvironment',
-            'newpage','nocite','nonumber','pagestyle','par','paragraph',
-            'parbox','parident','parskip','partial','publishers','raggedleft',
-            'raggedright','raisebox','ref','renewcommand','renewenvironment',
-            'right','rule','section','setlength','sffamily','subject',
-            'subparagraph','subsection','subsubsection','subtitle','sum',
-            'table','tableofcontents','textbf','textcolor','textit',
-            'textnormal','textsuperscript','texttt','textwidth','thanks','title',
-            'titlehead','today','ttfamily','uppertitleback','urlstyle',
-            'usepackage','vfil','vfill','vfilll','vspace'
-            )
-        ),
-    'SYMBOLS' => array(
-        "&", "\\", "{", "}", "[", "]"
-        ),
-    'CASE_SENSITIVE' => array(
-        1 => true,
-        GESHI_COMMENTS => false,
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #800000;',
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #2C922C; font-style: italic;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 =>  'color: #000000; font-weight: bold;'
-            ),
-        'BRACKETS' => array(
-            ),
-        'STRINGS' => array(
-            0 =>  'color: #000000;'
-            ),
-        'NUMBERS' => array(
-            ),
-        'METHODS' => array(
-            ),
-        'SYMBOLS' => array(
-            0 =>  'color: #E02020; '
-            ),
-        'REGEXPS' => array(
-            1 => 'color: #8020E0; font-weight: normal;',  // Math inner
-            2 => 'color: #C08020; font-weight: normal;', // [Option]
-            3 => 'color: #8020E0; font-weight: normal;', // Maths
-            4 => 'color: #800000; font-weight: normal;', // Structure: Labels
-            5 => 'color: #00008B; font-weight: bold;',  // Structure (\section{->x<-})
-            6 => 'color: #800000; font-weight: normal;', // Structure (\section)
-            7 => 'color: #0000D0; font-weight: normal;', // Environment \end or \begin{->x<-} (brighter blue)
-            8 => 'color: #C00000; font-weight: normal;', // Structure \end or \begin
-            9 => 'color: #2020C0; font-weight: normal;', // {...}
-            10 => 'color: #800000; font-weight: normal;', // \%, \& etc.
-            11 => 'color: #E00000; font-weight: normal;', // \@keyword
-            12 => 'color: #800000; font-weight: normal;', // \keyword
-        ),
-        'SCRIPT' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => 'http://www.golatex.de/wiki/%5C{FNAME}',
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(
-        ),
-    'REGEXPS' => array(
-        // Math inner
-        1 => array(
-            GESHI_SEARCH => "(\\\\begin\\{(equation|displaymath|eqnarray|subeqnarray|math|multline|gather|align|alignat|flalign)\\})(.*)(\\\\end\\{\\2\\})",
-            GESHI_REPLACE => '\3',
-            GESHI_MODIFIERS => 'Us',
-            GESHI_BEFORE => '\1',
-            GESHI_AFTER => '\4'
-            ),
-        // [options]
-        2 => array(
-            GESHI_SEARCH => "(?<=\[).*(?=\])",
-            GESHI_REPLACE => '\0',
-            GESHI_MODIFIERS => 'Us',
-            GESHI_BEFORE => '',
-            GESHI_AFTER => ''
-            ),
-        // Math mode with $ ... $
-        3 => array(
-            GESHI_SEARCH => "\\$.+\\$",
-            GESHI_REPLACE => '\0',
-            GESHI_MODIFIERS => 'Us',
-            GESHI_BEFORE => '',
-            GESHI_AFTER => ''
-            ),
-        // Structure: Label
-        4 => "\\\\(?:label|pageref|ref|cite)(?=[^a-zA-Z])",
-        // Structure: sections
-        5 => array(
-            GESHI_SEARCH => "(\\\\(?:part|chapter|(?:sub){0,2}section|(?:sub)?paragraph|addpart|addchap|addsec)\*?\\{)(.*)(?=\\})",
-            GESHI_REPLACE => '\\2',
-            GESHI_MODIFIERS => 'U',
-            GESHI_BEFORE => '\\1',
-            GESHI_AFTER => ''
-            ),
-        // Structure: sections
-        6 => "\\\\(?:part|chapter|(?:sub){0,2}section|(?:sub)?paragraph|addpart|addchap|addsec)\*?(?=[^a-zA-Z])",
-        // environment \begin{} and \end{} (i.e. the things inside the {})
-        7 => array(
-            GESHI_SEARCH => "(\\\\(?:begin|end)\\{)(.*)(?=\\})",
-            GESHI_REPLACE => '\\2',
-            GESHI_MODIFIERS => 'U',
-            GESHI_BEFORE => '\\1',
-            GESHI_AFTER => ''
-            ),
-        // Structure \begin and \end
-        8 => "\\\\(?:end|begin)(?=[^a-zA-Z])",
-        // {parameters}
-        9 => array(
-            GESHI_SEARCH => "(?<=\\{)(?!<\|!REG3XP5!>).*?(?=\\})",
-            GESHI_REPLACE => '\0',
-            GESHI_MODIFIERS => 'Us',
-            GESHI_BEFORE => '',
-            GESHI_AFTER => ''
-            ),
-        // \%, \& usw.
-        10 => "\\\\(?:[_$%]|&amp;)",
-        //  \@keywords
-        11 => "(?<!<\|!REG3XP[8]!>)\\\\@[a-zA-Z]+\*?",
-        // \keywords
-        12 => "(?<!<\|!REG3XP[468]!>)\\\\[a-zA-Z]+\*?",
-
-// ---------------------------------------------
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        ),
-    'PARSER_CONTROL' => array(
-        'COMMENTS' => array(
-            'DISALLOWED_BEFORE' => '\\'
-        ),
-        'KEYWORDS' => array(
-            'DISALLOWED_BEFORE' => "(?<=\\\\)",
-            'DISALLOWED_AFTER' => "(?![A-Za-z0-9])"
-        ),
-        'ENABLE_FLAGS' => array(
-            'NUMBERS' => GESHI_NEVER,
-            'BRACKETS' => GESHI_NEVER
-        )
-    )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/lb.php b/wiki/vendor/geshi/geshi/src/geshi/lb.php
deleted file mode 100644
index 6882ea8..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/lb.php
+++ /dev/null
@@ -1,160 +0,0 @@
-<?php
-/*************************************************************************************
- * lb.php
- * --------
- * Author: Chris Iverson (cj.no.one@gmail.com)
- * Copyright: (c) 2010 Chris Iverson
- * Release Version: 1.0.9.0
- * Date Started: 2010/07/18
- *
- * Liberty BASIC language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2010/07/22
- *  -  First Release
- *
- * 2010/08/23
- *  -  Added missing default variables
- *
- * TODO (updated 2010/07/20)
- * -------------------------
- * Prevent highlighting numbers in handle names(constants beginning with #)
- * Allow number highlighting after a single period(e.g.  .9 = 0.9, should be
- *     highlighted
- * Prevent highlighting keywords within branch labels(within brackets)
- *
- *************************************************************************************
- *
- *     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' => 'Liberty BASIC',
-    'COMMENT_SINGLE' => array(1 => '\''),
-    'COMMENT_MULTI' => array(),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array('"'),
-    'ESCAPE_CHAR' => '',
-    'KEYWORDS' => array(
-        1 => array(
-            'and', 'append', 'as', 'beep', 'bmpbutton', 'bmpsave', 'boolean',
-            'button', 'byref', 'call', 'callback', 'calldll', 'callfn', 'case',
-            'checkbox', 'close', 'cls', 'colordialog', 'combobox', 'confirm',
-            'cursor', 'data', 'dialog', 'dim', 'dll', 'do', 'double', 'dump',
-            'dword', 'else', 'end', 'error', 'exit', 'field', 'filedialog',
-            'files', 'fontdialog', 'for', 'function', 'get', 'gettrim',
-            'global', 'gosub', 'goto', 'graphicbox', 'graphics', 'groupbox',
-            'if', 'input', 'kill', 'let', 'line', 'listbox', 'loadbmp',
-            'locate', 'long', 'loop', 'lprint', 'mainwin', 'maphandle', 'menu',
-            'mod', 'name', 'next', 'nomainwin', 'none', 'notice', 'on',
-            'oncomerror', 'or', 'open', 'out', 'output', 'password', 'playmidi',
-            'playwave', 'popupmenu', 'print', 'printerdialog', 'prompt', 'ptr',
-            'put', 'radiobutton', 'random', 'randomize', 'read', 'readjoystick',
-            'redim', 'rem', 'restore', 'resume', 'return', 'run', 'scan',
-            'seek', 'select', 'short', 'sort', 'statictext', 'stop', 'stopmidi',
-            'struct', 'stylebits', 'sub', 'text', 'textbox', 'texteditor',
-            'then', 'timer', 'titlebar', 'to', 'trace', 'ulong', 'unloadbmp',
-            'until', 'ushort', 'void', 'wait', 'window', 'wend', 'while',
-            'word', 'xor'
-            ),
-        2 => array(
-            'abs', 'acs', 'asc', 'asn', 'atn', 'chr$', 'cos', 'date$',
-            'dechex$', 'eof', 'eval', 'eval$', 'exp', 'hbmp', 'hexdec', 'hwnd',
-            'inp', 'input$', 'inputto$', 'instr', 'int', 'left$', 'len', 'lof',
-            'log', 'lower$', 'max', 'midipos', 'mid$', 'min', 'mkdir', 'not',
-            'right$', 'rmdir', 'rnd', 'sin', 'space$', 'sqr', 'str$', 'tab',
-            'tan', 'time$', 'trim$', 'txcount', 'upper$', 'using', 'val',
-            'winstring', 'word$'
-            ),
-        3 => array(
-            'BackgroundColor$', 'Com', 'ComboboxColor$', 'ComError', 'ComErrorNumber',
-            'CommandLine$', 'ComPortNumber', 'DefaultDir$',
-            'DisplayHeight', 'DisplayWidth', 'Drives$', 'Err', 'Err$',
-            'ForegroundColor$', 'Inkey$', 'Joy1x', 'Joy1y', 'Joy1z',
-            'Joy1button1', 'Joy1button2', 'Joy2x', 'Joy2y', 'Joy2z',
-            'Joy2button1', 'Joy2button2', 'ListboxColor$', 'MouseX', 'MouseY', 'Platform$',
-            'PrintCollate', 'PrintCopies', 'PrinterFont$', 'PrinterName$', 'StartupDir$',
-            'TextboxColor$', 'TexteditorColor$', 'Version$', 'WindowHeight',
-            'WindowWidth', 'UpperLeftX', 'UpperLeftY'
-            )
-        ),
-    'SYMBOLS' => array(
-        1 => array(
-            '(', ')', '[', ']', '+', '-', '*', '/', '%', '=', '<', '>', ':', ',', '#'
-            )
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false,
-        2 => false,
-        3 => true
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #0000FF;',
-            2 => 'color: #AD0080;',
-            3 => 'color: #008080;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #666666; font-style: italic;',
-            'MULTI' => 'color: #666666; font-style: italic;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #000099; font-weight: bold;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #009900;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #008000;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #FF0000;',
-            ),
-        'METHODS' => array(
-            0 => 'color: #004000;'
-            ),
-        'SYMBOLS' => array(
-            1 => 'color: #339933;'
-            ),
-        'REGEXPS' => array(),
-        'SCRIPT' => array()
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => ''
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(),
-    'REGEXPS' => array(),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(),
-    'HIGHLIGHT_STRICT_BLOCK' => array(),
-    'PARSER_CONTROL' => array(
-        'KEYWORDS' => array(
-            2 => array(
-                //In LB, the second keyword list is a list of built-in functions,
-                //and their names should not be highlighted unless being used
-                //as a function name.
-                'DISALLOWED_AFTER' => '(?=\s*\()'
-                )
-            )
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/ldif.php b/wiki/vendor/geshi/geshi/src/geshi/ldif.php
deleted file mode 100644
index 86be996..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/ldif.php
+++ /dev/null
@@ -1,114 +0,0 @@
-<?php
-/*************************************************************************************
- * ldif.php
- * --------
- * Author: Bruno Harbulot (Bruno.Harbulot@manchester.ac.uk)
- * Copyright: (c) 2005 deguix, (c) 2010 Bruno Harbulot
- * Release Version: 1.0.9.0
- * Date Started: 2010/03/01
- *
- * LDIF language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2010/03/01 (1.0.8.11)
- *   -  First Release
- *   -  Derived from ini.php (INI language), (c) 2005 deguix
- *
- * -------------------------
- *
- *************************************************************************************
- *
- *     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' => 'LDIF',
-    'COMMENT_SINGLE' => array(1 => '#'),
-    '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(
-            1 => 'color: #666666; font-style: italic;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => ''
-            ),
-        'BRACKETS' => array(
-            0 => ''
-            ),
-        'STRINGS' => array(
-            0 => 'color: #933;'
-            ),
-        'NUMBERS' => array(
-            0 => ''
-            ),
-        'METHODS' => array(
-            0 => ''
-            ),
-        'SYMBOLS' => array(
-            ),
-        'REGEXPS' => array(
-            0 => 'color: #000066; font-weight: bold;',
-            1 => 'color: #FF0000;'
-            ),
-        'SCRIPT' => array(
-            0 => ''
-            )
-        ),
-    'URLS' => array(
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(
-        ),
-    'REGEXPS' => array(
-        0 => array(
-            GESHI_SEARCH => '([a-zA-Z0-9_]+):(.+)',
-            GESHI_REPLACE => '\\1',
-            GESHI_MODIFIERS => '',
-            GESHI_BEFORE => '',
-            GESHI_AFTER => ':\\2'
-            ),
-        1 => array(
-            // Evil hackery to get around GeSHi bug: <>" and ; are added so <span>s can be matched
-            // Explicit match on variable names because if a comment is before the first < of the span
-            // gets chewed up...
-            GESHI_SEARCH => '([<>";a-zA-Z0-9_]+):(.+)',
-            GESHI_REPLACE => '\\2',
-            GESHI_MODIFIERS => '',
-            GESHI_BEFORE => '\\1:',
-            GESHI_AFTER => ''
-            )
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/lisp.php b/wiki/vendor/geshi/geshi/src/geshi/lisp.php
deleted file mode 100644
index 9b3dbf8..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/lisp.php
+++ /dev/null
@@ -1,147 +0,0 @@
-<?php
-/*************************************************************************************
- * lisp.php
- * --------
- * Author: Roberto Rossi (rsoftware@altervista.org)
- * Copyright: (c) 2004 Roberto Rossi (http://rsoftware.altervista.org), Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.9.0
- * Date Started: 2004/08/30
- *
- * Generic Lisp language file for GeSHi.
- *
- * CHANGES
- * -------
- * 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)
- * 2004/11/27 (1.0.1)
- *  -  Added support for multiple object splitters
- * 2004/08/30 (1.0.0)
- *  -  First Release
- *
- * TODO (updated 2004/11/27)
- * -------------------------
- *
- *************************************************************************************
- *
- *     This file is part of GeSHi.
- *
- *   GeSHi is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   GeSHi is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with GeSHi; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- ************************************************************************************/
-
-$language_data = array (
-    'LANG_NAME' => 'Lisp',
-    'COMMENT_SINGLE' => array(1 => ';'),
-    'COMMENT_MULTI' => array(';|' => '|;'),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array('"'),
-    'ESCAPE_CHAR' => '\\',
-    'KEYWORDS' => array(
-        1 => array(
-            'not','defun','princ','when',
-            'eval','apply','funcall','quote','identity','function',
-            'complement','backquote','lambda','set','setq','setf',
-            'defmacro','gensym','make','symbol','intern',
-            'name','value','plist','get',
-            'getf','putprop','remprop','hash','array','aref',
-            'car','cdr','caar','cadr','cdar','cddr','caaar','caadr','cadar',
-            'caddr','cdaar','cdadr','cddar','cdddr','caaaar','caaadr',
-            'caadar','caaddr','cadaar','cadadr','caddar','cadddr',
-            'cdaaar','cdaadr','cdadar','cdaddr','cddaar','cddadr',
-            'cdddar','cddddr','cons','list','append','reverse','last','nth',
-            'nthcdr','member','assoc','subst','sublis','nsubst',
-            'nsublis','remove','length',
-            'mapc','mapcar','mapl','maplist','mapcan','mapcon','rplaca',
-            'rplacd','nconc','delete','atom','symbolp','numberp',
-            'boundp','null','listp','consp','minusp','zerop','plusp',
-            'evenp','oddp','eq','eql','equal','cond','case','and','or',
-            'let','l','if','prog','prog1','prog2','progn','go','return',
-            'do','dolist','dotimes','catch','throw','error','cerror','break',
-            'continue','errset','baktrace','evalhook','truncate','float',
-            'rem','min','max','abs','sin','cos','tan','expt','exp','sqrt',
-            'random','logand','logior','logxor','lognot','bignums','logeqv',
-            'lognand','lognor','logorc2','logtest','logbitp','logcount',
-            'integer','nil','parse-integer','make-list','print','write'
-            )
-        ),
-    'SYMBOLS' => array(
-        '(', ')', '{', '}', '[', ']',
-        '!', '%', '^', '&',
-        ' + ',' - ',' * ',' / ',
-        '=','<','>',
-        '.',':',',',';',
-        '|'
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #b1b100;'
-            ),
-        '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: #66cc66;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #ff0000;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #cc66cc;'
-            ),
-        'METHODS' => array(
-            0 => 'color: #555;',
-            1 => 'color: #555;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #66cc66;'
-            ),
-        'REGEXPS' => array(
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => ''
-        ),
-    'OOLANG' => true,
-    'OBJECT_SPLITTERS' => array(
-        '::', ':'
-        ),
-    'REGEXPS' => array(
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        ),
-    'PARSER_CONTROL' => array(
-        'KEYWORDS' => array(
-            'DISALLOWED_BEFORE' => '(?<![a-zA-Z0-9-\$_\|\#|^&])',
-            ),
-        'OOLANG' => array(
-            'MATCH_AFTER' => '[a-zA-Z][a-zA-Z0-9_\-]*'
-            )
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/llvm.php b/wiki/vendor/geshi/geshi/src/geshi/llvm.php
deleted file mode 100644
index ca375bb..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/llvm.php
+++ /dev/null
@@ -1,389 +0,0 @@
-<?php
-/*************************************************************************************
- * llvm.php
- * --------
- * 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.9.0
- * Date Started: 2010/10/14
- *
- * LLVM language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2010/10/14 (1.0.8.10)
- *  -  First Release
- *
- * TODO (updated 2010/10/14)
- * -------------------------
- * * Check if all links aren't broken
- *
- *************************************************************************************
- *
- *     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' => 'LLVM Intermediate Representation',
-    'COMMENT_SINGLE' => array(1 => ';'),
-    'COMMENT_MULTI' => array(),
-    'HARDQUOTE' => array("\"", "\""),
-    'HARDESCAPE' => array("\"", "\\"),
-    'HARDCHAR' => "\\",
-    '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 => "#\\\\x[\da-fA-F]{1,2}#i",
-        //Octal Char Specs
-        // 3 => "#\\\\[0-7]{1,3}#",
-        //String Parsing of Variable Names
-        // 4 => "#\\$[a-z0-9_]+(?:\\[[a-z0-9_]+\\]|->[a-z0-9_]+)?|(?:\\{\\$|\\$\\{)[a-z0-9_]+(?:\\[('?)[a-z0-9_]*\\1\\]|->[a-z0-9_]+)*\\}#i",
-        //Experimental extension supporting cascaded {${$var}} syntax
-        // 5 => "#\$[a-z0-9_]+(?:\[[a-z0-9_]+\]|->[a-z0-9_]+)?|(?:\{\$|\$\{)[a-z0-9_]+(?:\[('?)[a-z0-9_]*\\1\]|->[a-z0-9_]+)*\}|\{\$(?R)\}#i",
-        //Format String support in ""-Strings
-        // 6 => "#%(?:%|(?:\d+\\\\\\\$)?\\+?(?:\x20|0|'.)?-?(?:\d+|\\*)?(?:\.\d+)?[bcdefFosuxX])#"
-        ),
-    'NUMBERS' =>
-    GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_HEX_PREFIX | GESHI_NUMBER_FLT_SCI_ZERO,
-    'KEYWORDS' => array(
-        0 => array(
-            'to', 'nuw', 'nsw', 'inbounds', 'entry', 'return'
-            ),
-        //Terminator Instructions
-        1 => array(
-            'ret', 'br', 'switch', 'indirectbr', 'invoke', 'resume', 'catchswitch', 'catchret', 'cleanupret', 'unreachable'
-            ),
-        //Binary Operations
-        2 => array(
-            'add', 'fadd', 'sub', 'fsub', 'mul', 'fmul', 'udiv', 'sdiv', 'fdiv', 'urem', 'srem', 'frem'
-            ),
-        //Bitwise Binary Operations
-        3 => array(
-            'shl', 'lshr', 'ashr', 'and', 'or', 'xor'
-            ),
-        //Vector Operations
-        4 => array(
-            'extractelement', 'insertelement', 'shufflevector'
-            ),
-        //Aggregate Operations
-        5 => array(
-            'extractvalue', 'insertvalue'
-            ),
-        //Memory Access and Addressing Operations
-        6 => array(
-            'alloca', 'load', 'store', 'fence', 'cmpxchg', 'atomicrmw', 'getelementptr'
-            ),
-        //Conversion Operations
-        7 => array(
-            'trunc', 'zext', 'sext', 'fptrunc', 'fpext', 'fptoui', 'fptosi', 'uitofp', 'sitofp',
-            'ptrtoint', 'inttoptr', 'bitcast', 'addrspacecast'
-            ),
-        //Other Operations
-        8 => array(
-            'icmp', 'fcmp', 'phi', 'select', 'call', 'va_arg', 'landingpad', 'catchpad', 'cleanuppad'
-            ),
-        //Linkage Types
-        9 => array(
-            'private', 'internal', 'available_externally', 'linkonce', 'weak', 'common', 'appending',
-            'extern_weak', 'linkonce_odr', 'weak_odr', 'external'
-            ),
-        //Calling Conventions
-        10 => array(
-            'ccc', 'fastcc', 'coldcc', 'cc 10', 'cc 11', 'webkit_jscc', 'anyregcc', 'preserve_mostcc',
-            'preserve_allcc', 'cxx_fast_tlscc', 'swiftcc', 'cc'
-            ),
-        //Structure Types
-        11 => array(
-            'type'
-            ),
-        //Parameter Attributes
-        12 => array(
-            'zeroext', 'signext', 'inreg', 'byval', 'inalloca', 'sret', 'align', 'noalias', 'nocapture', 'nest',
-            'returned', 'nonnull', 'dereferenceable', 'dereferenceable_or_null', 'swiftself', 'swifterror'
-            ),
-        //Function Attributes
-        13 => array(
-            '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(
-            'module asm'
-            ),
-        //Data Layout
-        15 => array(
-            'target datalayout'
-            ),
-        //Type System
-        16 => array(
-            'x86_mmx',
-            'void',
-            'label',
-            'metadata',
-            'opaque'
-            ),
-        //Floating Point Types
-        17 => array(
-            'half', 'float', 'double', 'fp128', 'x86_fp80', 'ppc_fp128',
-            ),
-        //Simple Constants
-        18 => array(
-            'false', 'true', 'null'
-            ),
-        //Global Variable
-        19 => array(
-            'global', 'addrspace', 'constant', 'section'
-            ),
-        //Functions
-        20 => array(
-            'declare', 'define'
-            ),
-        //Complex Constants
-        21 => array(
-            'zeroinitializer'
-            ),
-        //Undefined Values
-        22 => array(
-            'undef'
-            ),
-        //Addresses of Basic Blocks
-        23 => array(
-            'blockaddress'
-            ),
-        //Visibility Styles
-        24 => array(
-            'default', 'hidden', 'protected'
-            ),
-        //Volatile Memory Accesses
-        25 => array(
-            'volatile'
-            ),
-        26 => array(
-            'tail'
-            ),
-        ),
-    'SYMBOLS' => array(
-        0 => 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,
-        25 => true,
-        26 => true,
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            0 => 'color: #209090;',
-            1 => 'color: #0000F0;',
-            2 => 'color: #00F000; font-weight: bold;',
-            3 => 'color: #F00000;',
-            4 => 'color: #00F0F0; font-weight: bold;',
-            5 => 'color: #F000F0; font-weight: bold;',
-            6 => 'color: #403020; font-weight: bold;',
-            7 => 'color: #909090; font-weight: bold;',
-            8 => 'color: #009090; font-weight: bold;',
-            9 => 'color: #900090; font-weight: bold;',
-            10 => 'color: #909000; font-weight: bold;',
-            11 => 'color: #000090; font-weight: bold;',
-            12 => 'color: #900000; font-weight: bold;',
-            13 => 'color: #009000; font-weight: bold;',
-            14 => 'color: #F0F090; font-weight: bold;',
-            15 => 'color: #F090F0; font-weight: bold;',
-            16 => 'color: #90F0F0; font-weight: bold;',
-            17 => 'color: #9090F0; font-weight: bold;',
-            18 => 'color: #90F090; font-weight: bold;',
-            19 => 'color: #F09090; font-weight: bold;',
-            20 => 'color: #4040F0; font-weight: bold;',
-            21 => 'color: #40F040; font-weight: bold;',
-            22 => 'color: #F04040; font-weight: bold;',
-            23 => 'color: #F0F040; font-weight: bold;',
-            24 => 'color: #F040F0; font-weight: bold;',
-            25 => 'color: #40F0F0; font-weight: bold;',
-            26 => 'color: #904040; font-weight: bold;',
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #666666; font-style: italic;',
-            'MULTI' => 'color: #666666; font-style: italic;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #000099; font-weight: bold;',
-            1 => 'color: #000099; font-weight: bold;',
-            2 => 'color: #660099; font-weight: bold;',
-            3 => 'color: #660099; font-weight: bold;',
-            4 => 'color: #006699; font-weight: bold;',
-            5 => 'color: #006699; font-weight: bold; font-style: italic;',
-            6 => 'color: #009933; font-weight: bold;',
-            'HARD' => 'color: #000099; font-weight: bold;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #009900;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #0000ff;',
-            'HARD' => 'color: #0000ff;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #cc66cc;',
-            GESHI_NUMBER_OCT_PREFIX => 'color: #208080;',
-            GESHI_NUMBER_HEX_PREFIX => 'color: #208080;',
-            GESHI_NUMBER_FLT_SCI_ZERO => 'color:#800080;',
-            ),
-        'METHODS' => array(
-            1 => 'color: #004000;',
-            2 => 'color: #004000;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #339933;',
-            ),
-        'REGEXPS' => array(
-            0 => 'color: #007088;',
-            1 => 'color: #007088;',
-            // 2 => 'color: #000088;',
-            3 => 'color: #700088;',
-            4 => 'color: #010088;',
-            // 5 => 'color: #610088;',
-            // 6 => 'color: #616088;',
-            // 7 => 'color: #616988;',
-            // 8 => 'color: #616908;',
-            9 => 'color: #6109F8;',
-            ),
-        'SCRIPT' => array(
-            0 => '',
-            1 => '',
-            2 => '',
-            3 => '',
-            4 => '',
-            5 => ''
-            )
-        ),
-    'URLS' => array(
-        0 => '',
-        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(
-        ),
-    'REGEXPS' => array(
-        //Variables
-        0 => '%[-a-zA-Z$\._][-a-zA-Z$\._0-9]*',
-        //Labels
-        // 1 => '[-a-zA-Z$\._0-9]+:',
-        1 => '(?<!\w)[\-\w\$\.]+:(?![^">]*<)',
-        //Strings
-        // 2 => '"[^"]+"',
-        //Unnamed variable slots
-        3 => '%[-]?[0-9]+',
-        //Integer Types
-        4 => array(
-            GESHI_SEARCH => '(?<!\w)i\d+(?!\w)',
-            GESHI_REPLACE => '\\0',
-            GESHI_MODIFIERS => '',
-            GESHI_BEFORE => '<a href="http://llvm.org/docs/LangRef.html#t_integer">',
-            GESHI_AFTER => '</a>'
-            ),
-        //Comments
-        // 5 => ';.*',
-        //Integer literals
-        // 6 => '\\b[-]?[0-9]+\\b',
-        //Floating point constants
-        // 7 => '\\b[-+]?[0-9]+\.[0-9]*\([eE][-+]?[0-9]+\)?\\b',
-        //Hex constants
-        // 8 => '\\b0x[0-9A-Fa-f]+\\b',
-        //Global variables
-        9 => array(
-            GESHI_SEARCH => '@[-a-zA-Z$\._][-a-zA-Z$\._0-9]*',
-            GESHI_REPLACE => '\\0',
-            GESHI_MODIFIERS => '',
-            GESHI_BEFORE => '<a href="http://llvm.org/docs/LangRef.html#globalvars">',
-            GESHI_AFTER => '</a>'
-            ),
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_MAYBE,
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        0 => true,
-        1 => true,
-        2 => true,
-        3 => true,
-        4 => true,
-        5 => true
-        ),
-    'SCRIPT_DELIMITERS' => array(),
-    'TAB_WIDTH' => 4
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/locobasic.php b/wiki/vendor/geshi/geshi/src/geshi/locobasic.php
deleted file mode 100644
index 596cb12..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/locobasic.php
+++ /dev/null
@@ -1,128 +0,0 @@
-<?php
-/*************************************************************************************
- * locobasic.php
- * -------------
- * Author: Nacho Cabanes
- * Copyright: (c) 2009 Nacho Cabanes (http://www.nachocabanes.com)
- * Release Version: 1.0.9.0
- * Date Started: 2009/03/22
- *
- * Locomotive Basic (Amstrad CPC series) language file for GeSHi.
- *
- * More details at http://en.wikipedia.org/wiki/Locomotive_BASIC
- *
- * CHANGES
- * -------
- * 2009/03/22 (1.0.8.3)
- *  -  First Release
- *
- *************************************************************************************
- *
- *     This file is part of GeSHi.
- *
- *   GeSHi is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   GeSHi is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with GeSHi; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- ************************************************************************************/
-
-$language_data = array (
-    'LANG_NAME' => 'Locomotive Basic',
-    'COMMENT_SINGLE' => array(1 => "'", 2 => 'REM'),
-    'COMMENT_MULTI' => array(),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array('"'),
-    'ESCAPE_CHAR' => '\\',
-    'KEYWORDS' => array(
-        1 => array(
-            "AFTER", "AND", "AUTO", "BORDER", "BREAK", "CALL", "CAT", "CHAIN",
-            "CLEAR", "CLG", "CLS", "CLOSEIN", "CLOSEOUT", "CONT", "CURSOR",
-            "DATA", "DEF", "DEFINT", "DEFREAL", "DEFSTR", "DEG", "DELETE",
-            "DERR", "DI", "DIM", "DRAW", "DRAWR", "EDIT", "EI", "ELSE", "END",
-            "ENV", "ENT", "EOF", "ERASE", "ERL", "ERR", "ERROR", "EVERY",
-            "FILL", "FN", "FOR", "FRAME", "GOSUB", "GOTO", "GRAPHICS", "HIMEM",
-            "IF", "INK", "INPUT", "KEY", "LET", "LINE", "LIST", "LOAD",
-            "LOCATE", "MASK", "MEMORY", "MERGE", "MODE", "MOVE", "MOVER", "NEW",
-            "NEXT", "NOT", "ON", "OPENIN", "OPENOUT", "OR", "ORIGIN", "PAPER",
-            "PEEK", "PEN", "PLOT", "PLOTR", "POKE", "PRINT", "RAD", "RANDOMIZE",
-            "READ", "RELEASE", "REMAIN", "RENUM", "RESTORE", "RESUME", "RETURN",
-            "RUN", "SAVE", "SPEED", "SOUND", "SPC", "SQ", "STEP", "STOP", "SWAP",
-            "SYMBOL", "TAB", "TAG", "TAGOFF", "TEST", "TESTR", "TIME", "TO",
-            "THEN", "TRON", "TROFF", "USING", "WAIT", "WEND", "WHILE", "WIDTH",
-            "WINDOW", "WRITE", "XOR", "ZONE"
-            ),
-        2 => array(
-            "ABS", "ASC", "ATN", "BIN", "CHR", "CINT", "COPYCHR", "COS",
-            "CREAL", "DEC", "FIX", "FRE", "EXP", "HEX", "INKEY", "INP", "INSTR",
-            "INT", "JOY", "LEFT", "LEN", "LOG", "LOG10", "LOWER", "MAX", "MID",
-            "MIN", "MOD", "OUT", "PI", "POS", "RIGHT", "RND", "ROUND", "SGN",
-            "SIN", "SPACE", "SQR", "STR", "STRING", "TAN", "UNT", "UPPER",
-            "VAL", "VPOS", "XPOS", "YPOS"
-            )
-        ),
-    'SYMBOLS' => array(
-        '(', ')'
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false,
-        2 => false
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #000088; font-weight: bold;',
-            2 => 'color: #AA00AA; font-weight: bold;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #808080;',
-            2 => 'color: #808080;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #ff0000;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #008800;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #0044ff;'
-            ),
-        'METHODS' => array(
-            0 => 'color: #66cc66;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #66cc66;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #000099;'
-            ),
-        'SCRIPT' => array(
-            ),
-        'REGEXPS' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => ''
-        ),
-    'OOLANG' => true,
-    'OBJECT_SPLITTERS' => array(
-        1 => '.'
-        ),
-    'REGEXPS' => array(
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/logtalk.php b/wiki/vendor/geshi/geshi/src/geshi/logtalk.php
deleted file mode 100644
index a3ed129..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/logtalk.php
+++ /dev/null
@@ -1,343 +0,0 @@
-<?php
-/*************************************************************************************
- * logtalk.php
- * -----------
- *
- * Author: Paulo Moura (pmoura@logtalk.org)
- * Copyright: (c) 2009-2011 Paulo Moura (http://logtalk.org/)
- * Release Version: 1.0.9.0
- * Date Started: 2009/10/24
- *
- * Logtalk language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2011/01/18 (1.1.4)
- *  -  Added syntax coloring of ignore/1
- * 2010/11/28 (1.1.3)
- *  -  Added syntax coloring of conforms_to_protocol/2-3
- * 2010/09/14 (1.1.2)
- *  -  Added syntax coloring of coinductive/1
- * 2010/06/23 (1.1.1)
- *  -  Added syntax coloring of e/0 and pi/0
- *  -  Added syntax coloring of ground/1, numbervars/3, keysort/2, and sort/2
- * 2010/05/15 (1.1.0)
- *  -  Added syntax coloring of callable/1 and compare/3
- * 2009/10/28 (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' => 'Logtalk',
-    'COMMENT_SINGLE' => array(1 => '%'),
-    'COMMENT_MULTI' => array('/*' => '*/'),
-    'COMMENT_REGEXP' => array(2 => "/0'./sim"),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array("'"),
-    'HARDQUOTE' => array('"', '"'),
-    'HARDESCAPE' => array(),
-    'ESCAPE_CHAR' => '',
-    'ESCAPE_REGEXP' => array(
-        //Simple Single Char Escapes
-        1 => "#\\\\[\\\\abfnrtv\'\"?\n]#i",
-        //Hexadecimal Char Specs
-        2 => "#\\\\x[\da-fA-F]+\\\\#",
-        //Octal Char Specs
-        3 => "#\\\\[0-7]+\\\\#"
-        ),
-    '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_SCI_ZERO,
-    'KEYWORDS' => array(
-        // Directives (with arguments)
-        1 => array(
-            // file directives
-            'encoding', 'ensure_loaded',
-            // flag directives
-            'set_logtalk_flag', 'set_prolog_flag',
-            // entity opening directives
-            'category', 'object', 'protocol',
-            // predicate scope directives
-            'private', 'protected', 'public',
-            // conditional compilation directives
-            'elif', 'if',
-            // entity directives
-            'calls', 'initialization', 'op', 'uses',
-            // predicate directives
-            'alias', 'coinductive', 'discontiguous', 'dynamic', 'mode', 'info', 'meta_predicate', 'multifile', 'synchronized',
-            // module directives
-            'export', 'module', 'reexport', 'use_module'
-            ),
-        // Directives (no arguments)
-        2 => array(
-            // entity directives
-            'dynamic',
-            // multi-threading directives
-            'synchronized', 'threaded',
-            // entity closing directives
-            'end_category', 'end_object', 'end_protocol',
-            // conditional compilation directives
-            'else', 'endif'
-            ),
-        // Entity relations
-        3 => array(
-            'complements', 'extends', 'imports', 'implements','instantiates', 'specializes'
-            ),
-        // Built-in predicates (with arguments)
-        4 => array(
-            // event handlers
-            'after', 'before',
-            // execution-context methods
-            'parameter', 'self', 'sender', 'this',
-            // predicate reflection
-            'current_predicate', 'predicate_property',
-            // DCGs and term expansion
-            'expand_goal', 'expand_term', 'goal_expansion', 'phrase', 'term_expansion',
-            // entity
-            'abolish_category', 'abolish_object', 'abolish_protocol',
-            'create_category', 'create_object', 'create_protocol',
-            'current_category', 'current_object', 'current_protocol',
-            'category_property', 'object_property', 'protocol_property',
-            // entity relations
-            'complements_object', 'conforms_to_protocol',
-            'extends_category', 'extends_object', 'extends_protocol',
-            'implements_protocol', 'imports_category',
-            'instantiates_class', 'specializes_class',
-            // events
-            'abolish_events', 'current_event', 'define_events',
-            // flags
-            'current_logtalk_flag', 'set_logtalk_flag',
-            'current_prolog_flag', 'set_prolog_flag',
-            // compiling, loading, and library path
-            'logtalk_compile', 'logtalk_library_path', 'logtalk_load',
-            // database
-            'abolish', 'asserta', 'assertz', 'clause', 'retract', 'retractall',
-            // control
-            'call', 'catch', 'ignore', 'once', 'throw',
-            // all solutions predicates
-            'bagof', 'findall', 'forall', 'setof',
-            // multi-threading meta-predicates
-            'threaded',
-            'threaded_call', 'threaded_once', 'threaded_ignore', 'threaded_exit', 'threaded_peek',
-            'threaded_wait', 'threaded_notify',
-            // term unification
-            'unify_with_occurs_check',
-            // atomic term processing
-            'atom_chars', 'atom_codes', 'atom_concat', 'atom_length',
-            'number_chars', 'number_codes',
-            'char_code',
-            // term creation and decomposition
-            'arg', 'copy_term', 'functor', 'numbervars',
-            // term testing
-            'atom', 'atomic', 'callable', 'compound', 'float', 'ground', 'integer', 'nonvar', 'number', 'sub_atom', 'var',
-            // term comparison
-            'compare',
-            // stream selection and control
-            'current_input', 'current_output', 'set_input', 'set_output',
-            'open', 'close', 'flush_output', 'stream_property',
-            'at_end_of_stream', 'set_stream_position',
-            // character and byte input/output predicates
-            'get_byte', 'get_char', 'get_code',
-            'peek_byte', 'peek_char', 'peek_code',
-            'put_byte', 'put_char', 'put_code',
-            'nl',
-            // term input/output predicates
-            'current_op', 'op',
-            'write', 'writeq', 'write_canonical', 'write_term',
-            'read', 'read_term',
-            'char_conversion', 'current_char_conversion',
-            // hooks
-            'halt',
-            // sorting
-            'keysort', 'sort'
-            ),
-        // Built-in predicates (no arguments)
-        5 => array(
-            // control
-            'fail', 'repeat', 'true',
-            // character and byte input/output predicates
-            'nl',
-            // implementation defined hooks functions
-            'halt',
-            // arithemtic evaluation
-            'is',
-            // stream selection and control
-            'at_end_of_stream', 'flush_output'
-            ),
-        // Evaluable functors (with arguments)
-        6 => array(
-            'float_integer_part', 'float_fractional_part',
-            'rem', 'mod', 'abs', 'sign', 'floor', 'truncate', 'round', 'ceiling',
-            'cos', 'atan', 'exp', 'log', 'sin', 'sqrt'
-            ),
-        // Evaluable functors (no arguments)
-        7 => array(
-            'e', 'pi', 'mod', 'rem'
-            ),
-        ),
-    'SYMBOLS' => array(
-        0 => array(
-            // external call
-            '{', '}'
-            ),
-        1 => array(
-            // arithemtic comparison
-            '=:=', '=\=', '<', '=<', '>=', '>',
-            // term comparison
-            '<<', '>>', '/\\', '\\/', '\\',
-            // bitwise functors
-            '==', '\==', '@<', '@=<', '@>=', '@>',
-            // evaluable functors
-            '+', '-', '*', '/', '**',
-            // logic and control
-            '!', '\\+', ';',
-            // message sending operators
-            '::', '^^', ':',
-            // grammar rule and conditional functors
-            '-->', '->',
-            // mode operators
-            '@', '?',
-            // term to list predicate
-            '=..',
-            // unification
-            '=', '\\='
-            ),
-        2 => array(
-            // clause and directive functors
-            ':-'
-            )
-        ),
-    '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: #2e4dc9;',
-            2 => 'color: #2e4dc9;',
-            3 => 'color: #2e4dc9;',
-            4 => 'color: #9d4f37;',
-            5 => 'color: #9d4f37;',
-            6 => 'color: #9d4f37;',
-            7 => 'color: #9d4f37;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #430000;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #60a0b0; font-style: italic;',
-            2 => 'color: #430000;',
-            'MULTI' => 'color: #60a0b0; font-style: italic;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #9f0000; font-weight: bold;',
-            1 => 'color: #9f0000; font-weight: bold;',
-            2 => 'color: #9f0000; font-weight: bold;',
-            3 => 'color: #9f0000; font-weight: bold;',
-            'HARD' => '',
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #666666;font-weight: bold;',
-            1 => 'color: #666666;font-weight: bold;',
-            2 => 'color: #000000;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #000000;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #9f0000;',
-            'HARD' => 'color: #9f0000;'
-            ),
-        'METHODS' => array(
-            ),
-        'REGEXPS' => array(
-            0 => 'color: #848484;'
-            ),
-        'SCRIPT' => array()
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => '',
-        4 => '',
-        5 => '',
-        6 => '',
-        7 => ''
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(
-        1 => '::'
-        ),
-    'REGEXPS' => array(
-        // variables
-        0 => '\b(?!(?:PIPE|SEMI|REG3XP\d*)[^a-zA-Z0-9_])[A-Z_][a-zA-Z0-9_]*(?![a-zA-Z0-9_])'
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(),
-    'HIGHLIGHT_STRICT_BLOCK' => array(),
-    'TAB_WIDTH' => 4,
-    '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/wiki/vendor/geshi/geshi/src/geshi/lolcode.php b/wiki/vendor/geshi/geshi/src/geshi/lolcode.php
deleted file mode 100644
index 39cae20..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/lolcode.php
+++ /dev/null
@@ -1,159 +0,0 @@
-<?php
-/*************************************************************************************
- * lolcode.php
- * ----------
- * Author: Benny Baumann (BenBE@geshi.org)
- * Copyright: (c) 2008 Benny Baumann (http://qbnz.com/highlighter/)
- * 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
- *
- * TODO
- * ----
- *
- *************************************************************************************
- *
- *     This file is part of GeSHi.
- *
- *   GeSHi is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   GeSHi is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with GeSHi; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- ************************************************************************************/
-
-$language_data = array(
-    'LANG_NAME' => 'LOLcode',
-    'COMMENT_SINGLE' => array('BTW'),
-    'COMMENT_MULTI' => array('BTW','WTB'),
-    'COMMENT_REGEXP' => array(
-        1 => "/\bBTW\b.*$/im",
-        2 => "/(^|\b)(?:OBTW\b.+?\bTLDR|LOL\b.+?\/LOL)(\b|$)/si"
-        ),
-    'CASE_KEYWORDS' => GESHI_CAPS_UPPER,
-    'QUOTEMARKS' => array('"'),
-    'ESCAPE_CHAR' => '',
-    'ESCAPE_REGEXP' => array(
-        1 => '/:[)>o":]/',
-        2 => '/:\([\da-f]+\)/i',
-        3 => '/:\{\w+\}/i',
-        4 => '/:\[\w+\]/i',
-        ),
-    'KEYWORDS' => array(
-        //Statements
-        1 => array(
-            'VISIBLE', 'HAI', 'KTHX', 'KTHXBYE', 'SMOOSH', 'GIMMEH', 'PLZ',
-            'ON', 'INVISIBLE', 'R', 'ITZ', 'GTFO', 'COMPLAIN', 'GIMME',
-
-            'OPEN', 'FILE', 'I HAS A', 'AWSUM THX', 'O NOES', 'CAN', 'HAS', 'HAZ',
-            'HOW DOES I', 'IF U SAY SO', 'FOUND YR', 'BORROW', 'OWN', 'ALONG',
-            'WITH', 'WIT', 'LOOK', 'AT', 'AWSUM', 'THX'
-            ),
-        //Conditionals
-        2 => array(
-            'IZ', 'YARLY', 'NOWAI', 'WTF?', 'MEBBE', 'OMG', 'OMGWTF',
-            'ORLY?', 'OF', 'NOPE', 'SO', 'IM', 'MAI',
-
-            'O RLY?', 'SUM', 'BOTH SAEM', 'DIFFRINT', 'BOTH', 'EITHER', 'WON',
-            'DIFF', 'PRODUKT', 'QUOSHUNT', 'MOD', 'MKAY', 'OK', 'THING',
-            'BIGNESS'
-            ),
-        //Repetition
-        3 => array(
-            'IN', 'OUTTA', 'LOOP', 'WHILE'
-            ),
-        //Operators \Math
-        4 => array(
-            'AN', 'AND', 'NOT', 'UP', 'YR', 'UPPIN', 'NERF', 'NERFIN', 'NERFZ',
-            'SMASHING', 'UR', 'KINDA', 'LIKE', 'SAEM', 'BIG', 'SMALL',
-            'BIGGR', 'SMALLR', 'BIGGER', 'SMALLER', 'GOOD', 'CUTE', 'THAN'
-            )
-        ),
-    'SYMBOLS' => array(
-        '.', ',', '?',
-        '!!'
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false,
-        2 => false,
-        3 => false,
-        4 => false
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #008000;',
-            2 => 'color: #000080;',
-            3 => 'color: #000080;',
-            4 => 'color: #800000;'
-            ),
-        'COMMENTS' => array(
-            0 => 'color: #666666; style: italic;',
-            1 => 'color: #666666; style: italic;',
-            2 => 'color: #666666; style: italic;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #66cc66;'
-            ),
-        'STRINGS' => 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(
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => '',
-        4 => ''
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(
-        ),
-    'REGEXPS' => array(
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        ),
-    'PARSER_CONTROL' => array(
-        'KEYWORDS' => array(
-            'SPACE_AS_WHITESPACE' => true
-            )
-        ),
-    'TAB_WIDTH' => 4
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/lotusformulas.php b/wiki/vendor/geshi/geshi/src/geshi/lotusformulas.php
deleted file mode 100644
index 4f1c678..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/lotusformulas.php
+++ /dev/null
@@ -1,316 +0,0 @@
-<?php
-/*************************************************************************************
- * lotusformulas.php
- * ------------------------
- * Author: Richard Civil (info@richardcivil.net)
- * Copyright: (c) 2008 Richard Civil (info@richardcivil.net), Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.9.0
- * Date Started: 2008/04/12
- *
- * @Formula/@Command language file for GeSHi.
- *
- * @Formula/@Command source: IBM Lotus Notes/Domino 8 Designer Help
- *
- * CHANGES
- * -------
- * 2008/04/12 (1.0.7.22)
- *  -  First Release
- *
- * TODO (updated 2008/04/12)
- * -------------------------
- *
- *************************************************************************************
- *
- *     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' => 'Lotus Notes @Formulas',
-    'COMMENT_SINGLE' => array(1 => "'"),
-    'COMMENT_MULTI' => array('REM' => ';'),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array('"'),
-    'ESCAPE_CHAR' => '',
-    'KEYWORDS' => array(
-        1 => array (
-            '[ZoomPreview]', '[WorkspaceStackReplicaIcons]',
-            '[WorkspaceProperties]', '[WindowWorkspace]',
-            '[WindowTile]', '[WindowRestore]', '[WindowNext]',
-            '[WindowMinimizeAll]', '[WindowMinimize]', '[WindowMaximizeAll]',
-            '[WindowMaximize]', '[WindowCascade]', '[ViewSwitchForm]',
-            '[ViewShowUnread]', '[ViewShowServerNames]', '[ViewShowSearchBar]',
-            '[ViewShowRuler]', '[ViewShowPageBreaks]', '[ViewShowOnlyUnread]',
-            '[ViewShowOnlySelected]', '[ViewShowOnlySearchResults]',
-            '[ViewShowOnlyCategories]', '[ViewShowObject]',
-            '[ViewShowFieldHelp]', '[ViewRenamePerson]', '[ViewRefreshUnread]',
-            '[ViewRefreshFields]', '[ViewNavigatorsNone]',
-            '[ViewNavigatorsFolders]', '[ViewMoveName]', '[ViewHorizScrollbar]',
-            '[ViewExpandWithChildren]', '[ViewExpandAll]', '[ViewExpand]',
-            '[ViewCollapseAll]', '[ViewCollapse]', '[ViewChange]',
-            '[ViewCertify]', '[ViewBesideFolders]', '[ViewBelowFolders]',
-            '[ViewArrangeIcons]', '[V3EditPrevField]', '[V3EditNextField]',
-            '[UserIDSwitch]', '[UserIDSetPassword]', '[UserIDMergeCopy]',
-            '[UserIDInfo]', '[UserIDEncryptionKeys]', '[UserIDCreateSafeCopy]',
-            '[UserIDClearPassword]', '[UserIDCertificates]',
-            '[ToolsUserLogoff]', '[ToolsSpellCheck]', '[ToolsSmartIcons]',
-            '[ToolsSetupUserSetup]', '[ToolsSetupPorts]', '[ToolsSetupMail]',
-            '[ToolsSetupLocation]', '[ToolsScanUnreadSelected]',
-            '[ToolsScanUnreadPreferred]', '[ToolsScanUnreadChoose]',
-            '[ToolsRunMacro]', '[ToolsRunBackgroundMacros]', '[ToolsReplicate]',
-            '[ToolsRefreshSelectedDocs]', '[ToolsRefreshAllDocs]',
-            '[ToolsMarkSelectedUnread]', '[ToolsMarkSelectedRead]',
-            '[ToolsMarkAllUnread]', '[ToolsMarkAllRead]', '[ToolsHangUp]',
-            '[ToolsCategorize]', '[ToolsCall]', '[TextUnderline]',
-            '[TextSpacingSingle]', '[TextSpacingOneAndaHalf]',
-            '[TextSpacingDouble]', '[TextSetFontSize]', '[TextSetFontFace]',
-            '[TextSetFontColor]', '[TextReduceFont]', '[TextPermanentPen]',
-            '[TextParagraphStyles]', '[TextParagraph]', '[TextOutdent]',
-            '[TextNumbers]', '[TextNormal]', '[TextItalic]', '[TextFont]',
-            '[TextEnlargeFont]', '[TextCycleSpacing]', '[TextBullet]',
-            '[TextBold]', '[TextAlignRight]', '[TextAlignNone]',
-            '[TextAlignLeft]', '[TextAlignFull]', '[TextAlignCenter]',
-            '[SwitchView]', '[SwitchForm]', '[StyleCycleKey]',
-            '[SmartIconsNextSet]', '[SmartIconsFloating]', '[ShowProperties]',
-            '[ShowHidePreviewPane]', '[ShowHideParentPreview]',
-            '[ShowHideLinkPreview]', '[ShowHideIMContactList]',
-            '[SetCurrentLocation]', '[SendInstantMessage]',
-            '[SectionRemoveHeader]', '[SectionProperties]',
-            '[SectionExpandAll]', '[SectionExpand]', '[SectionDefineEditors]',
-            '[SectionCollapseAll]', '[SectionCollapse]', '[RunScheduledAgents]',
-            '[RunAgent]', '[ReplicatorStop]', '[ReplicatorStart]',
-            '[ReplicatorSendReceiveMail]', '[ReplicatorSendMail]',
-            '[ReplicatorReplicateWithServer]', '[ReplicatorReplicateSelected]',
-            '[ReplicatorReplicateNext]', '[ReplicatorReplicateHigh]',
-            '[Replicator]', '[RenameDatabase]', '[RemoveFromFolder]',
-            '[RemoteDebugLotusScript]', '[ReloadWindow]', '[RefreshWindow]',
-            '[RefreshParentNote]', '[RefreshHideFormulas]', '[RefreshFrame]',
-            '[PublishDatabase]', '[PictureProperties]', '[PasteBitmapAsObject]',
-            '[PasteBitmapAsBackground]', '[OpenView]', '[OpenPage]',
-            '[OpenNavigator]', '[OpenInNewWindow]', '[OpenHelpDocument]',
-            '[OpenFrameset]', '[OpenDocument]', '[OpenCalendar]',
-            '[ObjectProperties]', '[ObjectOpen]', '[ObjectDisplayAs]',
-            '[NavPrevUnread]', '[NavPrevSelected]', '[NavPrevMain]',
-            '[NavPrev]', '[NavNextUnread]', '[NavNextSelected]',
-            '[NavNextMain]', '[NavNext]', '[NavigatorTest]',
-            '[NavigatorProperties]', '[NavigateToBacklink]',
-            '[NavigatePrevUnread]', '[NavigatePrevSelected]',
-            '[NavigatePrevMain]', '[NavigatePrevHighlight]', '[NavigatePrev]',
-            '[NavigateNextUnread]', '[NavigateNextSelected]',
-            '[NavigateNextMain]', '[NavigateNextHighlight]', '[NavigateNext]',
-            '[MoveToTrash]', '[MailSendPublicKey]', '[MailSendEncryptionKey]',
-            '[MailSendCertificateRequest]', '[MailSend]', '[MailScanUnread]',
-            '[MailRequestNewPublicKey]', '[MailRequestNewName]',
-            '[MailRequestCrossCert]', '[MailOpen]', '[MailForwardAsAttachment]',
-            '[MailForward]', '[MailComposeMemo]', '[MailAddress]',
-            '[LayoutProperties]', '[LayoutElementSendToBack]',
-            '[LayoutElementProperties]', '[LayoutElementBringToFront]',
-            '[LayoutAddText]', '[LayoutAddGraphic]', '[InsertSubform]',
-            '[HotspotProperties]', '[HotspotClear]', '[HelpUsingDatabase]',
-            '[HelpAboutNotes]', '[HelpAboutDatabase]', '[GoUpLevel]',
-            '[FormTestDocument]', '[FormActions]', '[FolderRename]',
-            '[FolderProperties]', '[FolderMove]', '[FolderExpandWithChildren]',
-            '[FolderExpandAll]', '[FolderExpand]', '[FolderDocuments]',
-            '[FolderCustomize]', '[FolderCollapse]', '[Folder]',
-            '[FindFreeTimeDialog]', '[FileSaveNewVersion]', '[FileSave]',
-            '[FilePrintSetup]', '[FilePrint]', '[FilePageSetup]',
-            '[FileOpenDBRepID]', '[FileOpenDatabase]', '[FileNewReplica]',
-            '[FileNewDatabase]', '[FileImport]', '[FileFullTextUpdate]',
-            '[FileFullTextInfo]', '[FileFullTextDelete]',
-            '[FileFullTextCreate]', '[FileExport]', '[FileExit]',
-            '[FileDatabaseUseServer]', '[FileDatabaseRemove]',
-            '[FileDatabaseInfo]', '[FileDatabaseDelete]', '[FileDatabaseCopy]',
-            '[FileDatabaseCompact]', '[FileDatabaseACL]', '[FileCloseWindow]',
-            '[ExitNotes]', '[Execute]', '[ExchangeUnreadMarks]', '[EmptyTrash]',
-            '[EditUp]', '[EditUntruncate]', '[EditUndo]', '[EditTop]',
-            '[EditTableInsertRowColumn]', '[EditTableFormat]',
-            '[EditTableDeleteRowColumn]', '[EditShowHideHiddenChars]',
-            '[EditSelectByDate]', '[EditSelectAll]', '[EditRight]',
-            '[EditRestoreDocument]', '[EditResizePicture]',
-            '[EditQuoteSelection]', '[EditProfileDocument]', '[EditProfile]',
-            '[EditPrevField]', '[EditPhoneNumbers]', '[EditPasteSpecial]',
-            '[EditPaste]', '[EditOpenLink]', '[EditNextField]',
-            '[EditMakeDocLink]', '[EditLocations]', '[EditLinks]', '[EditLeft]',
-            '[EditInsertText]', '[EditInsertTable]', '[EditInsertPopup]',
-            '[EditInsertPageBreak]', '[EditInsertObject]',
-            '[EditInsertFileAttachment]', '[EditInsertButton]',
-            '[EditIndentFirstLine]', '[EditIndent]', '[EditHorizScrollbar]',
-            '[EditHeaderFooter]', '[EditGotoField]', '[EditFindNext]',
-            '[EditFindInPreview]', '[EditFind]', '[EditEncryptionKeys]',
-            '[EditDown]', '[EditDocument]', '[EditDetach]', '[EditDeselectAll]',
-            '[EditCut]', '[EditCopy]', '[EditClear]', '[EditButton]',
-            '[EditBottom]', '[DiscoverFolders]', '[Directories]',
-            '[DialingRules]', '[DesignViewSelectFormula]', '[DesignViews]',
-            '[DesignViewNewColumn]', '[DesignViewFormFormula]',
-            '[DesignViewEditActions]', '[DesignViewColumnDef]',
-            '[DesignViewAttributes]', '[DesignViewAppendColumn]',
-            '[DesignSynopsis]', '[DesignSharedFields]', '[DesignReplace]',
-            '[DesignRefresh]', '[DesignMacros]', '[DesignIcon]',
-            '[DesignHelpUsingDocument]', '[DesignHelpAboutDocument]',
-            '[DesignFormWindowTitle]', '[DesignFormUseField]',
-            '[DesignFormShareField]', '[DesignForms]', '[DesignFormNewField]',
-            '[DesignFormFieldDef]', '[DesignFormAttributes]',
-            '[DesignDocumentInfo]', '[DebugLotusScript]',
-            '[DatabaseReplSettings]', '[DatabaseDelete]', '[CreateView]',
-            '[CreateTextbox]', '[CreateSubForm]', '[CreateSection]',
-            '[CreateRectangularHotspot]', '[CreateRectangle]',
-            '[CreatePolyline]', '[CreatePolygon]', '[CreateNavigator]',
-            '[CreateLayoutRegion]', '[CreateForm]', '[CreateFolder]',
-            '[CreateEllipse]', '[CreateControlledAccessSection]',
-            '[CreateAgent]', '[CreateAction]', '[CopySelectedAsTable]',
-            '[ComposeWithReference]', '[Compose]', '[CloseWindow]', '[Clear]',
-            '[ChooseFolders]', '[CalendarGoTo]', '[CalendarFormat]',
-            '[AttachmentView]', '[AttachmentProperties]', '[AttachmentLaunch]',
-            '[AttachmentDetachAll]', '[AgentTestRun]', '[AgentSetServerName]',
-            '[AgentRun]', '[AgentLog]', '[AgentEnableDisable]', '[AgentEdit]',
-            '[AdminTraceConnection]', '[AdminStatisticsConfig]',
-            '[AdminSendMailTrace]', '[AdminRemoteConsole]',
-            '[AdminRegisterUser]', '[AdminRegisterServer]',
-            '[AdminRegisterFromFile]', '[AdminOutgoingMail]',
-            '[AdminOpenUsersView]', '[AdminOpenStatistics]',
-            '[AdminOpenServersView]', '[AdminOpenServerLog]',
-            '[AdminOpenGroupsView]', '[AdminOpenCertLog]', '[AdminOpenCatalog]',
-            '[AdminOpenAddressBook]', '[AdminNewOrgUnit]',
-            '[AdminNewOrganization]', '[Administration]',
-            '[AdminIDFileSetPassword]', '[AdminIDFileExamine]',
-            '[AdminIDFileClearPassword]', '[AdminDatabaseQuotas]',
-            '[AdminDatabaseAnalysis]', '[AdminCrossCertifyKey]',
-            '[AdminCrossCertifyIDFile]', '[AdminCreateGroup]', '[AdminCertify]',
-            '[AddToIMContactList]', '[AddDatabaseRepID]', '[AddDatabase]',
-            '[AddBookmark]'
-            ),
-        2 => array(
-            'SELECT', 'FIELD', 'ENVIRONMENT', 'DEFAULT', '@Zone ', '@Yesterday',
-            '@Yes', '@Year', '@Word', '@Wide', '@While', '@Weekday',
-            '@WebDbName', '@ViewTitle', '@ViewShowThisUnread', '@Version',
-            '@VerifyPassword', '@ValidateInternetAddress', '@V4UserAccess',
-            '@V3UserName', '@V2If', '@UserRoles', '@UserPrivileges',
-            '@UserNamesList', '@UserNameLanguage', '@UserName', '@UserAccess',
-            '@UrlQueryString', '@URLOpen', '@URLHistory', '@URLGetHeader',
-            '@URLEncode', '@URLDecode', '@UpperCase', '@UpdateFormulaContext',
-            '@Unique', '@UndeleteDocument', '@Unavailable', '@True', '@Trim',
-            '@Transform', '@ToTime', '@ToNumber', '@Tomorrow', '@Today',
-            '@TimeZoneToText', '@TimeToTextInZone', '@TimeMerge', '@Time',
-            '@ThisValue', '@ThisName', '@TextToTime', '@TextToNumber', '@Text',
-            '@TemplateVersion', '@Tan', '@Sum', '@Success', '@Subset',
-            '@StatusBar', '@Sqrt', '@Soundex', '@Sort', '@Sin', '@Sign',
-            '@SetViewInfo', '@SetTargetFrame', '@SetProfileField',
-            '@SetHTTPHeader', '@SetField', '@SetEnvironment', '@SetDocField',
-            '@Set', '@ServerName', '@ServerAccess', '@Select', '@Second',
-            '@Round', '@RightBack', '@Right', '@Return', '@Responses',
-            '@ReplicaID', '@ReplaceSubstring', '@Replace', '@Repeat',
-            '@RegQueryValue', '@RefreshECL', '@Random', '@ProperCase',
-            '@Prompt', '@Power', '@PostedCommand', '@PolicyIsFieldLocked',
-            '@Platform', '@PickList', '@Pi', '@PasswordQuality', '@Password',
-            '@OrgDir', '@OptimizeMailAddress', '@OpenInNewWindow', '@Now',
-            '@Nothing', '@NoteID', '@No', '@NewLine', '@Narrow', '@NameLookup',
-            '@Name', '@Month', '@Modulo', '@Modified', '@Minute', '@Min',
-            '@MiddleBack', '@Middle', '@Member', '@Max', '@Matches',
-            '@MailSignPreference', '@MailSend', '@MailSavePreference',
-            '@MailEncryptSentPreference', '@MailEncryptSavedPreference',
-            '@MailDbName', '@LowerCase', '@Log', '@Locale', '@Ln', '@Like',
-            '@Length', '@LeftBack', '@Left', '@LDAPServer', '@LaunchApp',
-            '@LanguagePreference', '@Keywords', '@IsVirtualizedDirectory',
-            '@IsValid', '@IsUsingJavaElement', '@IsUnavailable', '@IsTime',
-            '@IsText', '@IsResponseDoc', '@IsNumber', '@IsNull', '@IsNotMember',
-            '@IsNewDoc', '@IsModalHelp', '@IsMember', '@IsExpandable',
-            '@IsError', '@IsEmbeddedInsideWCT', '@IsDocTruncated',
-            '@IsDocBeingSaved', '@IsDocBeingRecalculated', '@IsDocBeingMailed',
-            '@IsDocBeingLoaded', '@IsDocBeingEdited', '@IsDB2', '@IsCategory',
-            '@IsAvailable', '@IsAppInstalled', '@IsAgentEnabled', '@Integer',
-            '@InheritedDocumentUniqueID', '@Implode', '@IfError', '@If',
-            '@Hour', '@HashPassword', '@HardDeleteDocument', '@GetViewInfo',
-            '@GetProfileField', '@GetPortsList', '@GetIMContactListGroupNames',
-            '@GetHTTPHeader', '@GetFocusTable', '@GetField', '@GetDocField',
-            '@GetCurrentTimeZone', '@GetAddressBooks', '@FormLanguage', '@For',
-            '@FontList', '@FloatEq', '@FileDir', '@False', '@Failure',
-            '@Explode', '@Exp', '@Eval', '@Error', '@Environment', '@Ends',
-            '@EnableAlarms', '@Elements', '@EditUserECL', '@EditECL',
-            '@DoWhile', '@Domain', '@DocumentUniqueID', '@DocSiblings',
-            '@DocParentNumber', '@DocOmmittedLength', '@DocNumber', '@DocMark',
-            '@DocLock', '@DocLevel', '@DocLength', '@DocFields',
-            '@DocDescendants', '@DocChildren', '@Do', '@DialogBox',
-            '@DeleteField', '@DeleteDocument', '@DDETerminate', '@DDEPoke',
-            '@DDEInitiate', '@DDEExecute', '@DbTitle', '@DbName', '@DbManager',
-            '@DbLookup', '@DbExists', '@DbCommand', '@DbColumn', '@DB2Schema',
-            '@Day', '@Date', '@Created', '@Count', '@Cos', '@Contains',
-            '@ConfigFile', '@Compare', '@Command', '@ClientType',
-            '@CheckFormulaSyntax', '@CheckAlarms', '@Char', '@Certificate',
-            '@BusinessDays', '@BrowserInfo', '@Begins', '@Author',
-            '@Attachments', '@AttachmentNames', '@AttachmentModifiedTimes',
-            '@AttachmentLengths', '@ATan2', '@ATan', '@ASin', '@Ascii',
-            '@AllDescendants', '@AllChildren', '@All', '@AdminECLIsLocked',
-            '@Adjust', '@AddToFolder', '@ACos', '@Accessed', '@AbstractSimple',
-            '@Abstract', '@Abs'
-            )
-        ),
-    'SYMBOLS' => array(
-        '(', ')'
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false,
-        2 => false
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #800000;',
-            2 => 'color: #0000FF;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #008000;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #000000;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #FF00FF;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #FF00FF;'
-            ),
-        'METHODS' => array(
-            1 => 'color: #0000AA;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #66cc66;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #000099;'
-            ),
-        'SCRIPT' => array(
-            ),
-        'REGEXPS' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => ''
-        ),
-    'OOLANG' => true,
-    'OBJECT_SPLITTERS' => array(
-        1 => '.'
-        ),
-    'REGEXPS' => array(
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        ),
-    'TAB_WIDTH' => 2
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/lotusscript.php b/wiki/vendor/geshi/geshi/src/geshi/lotusscript.php
deleted file mode 100644
index 069e603..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/lotusscript.php
+++ /dev/null
@@ -1,189 +0,0 @@
-<?php
-/**
- * lotusscript.php
- * ------------------------
- * Author: Richard Civil (info@richardcivil.net)
- * Copyright: (c) 2008 Richard Civil (info@richardcivil.net), Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.9.0
- * Date Started: 2008/04/12
- *
- * LotusScript language file for GeSHi.
- *
- * LotusScript source: IBM Lotus Notes/Domino 8 Designer Help
- *
- * CHANGES
- * -------
- * 2008/04/12 (1.0.7.22)
- *     -  First Release
- *
- * TODO (2008/04/12)
- * -----------------
- *
- *************************************************************************************
- *
- *   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' => 'LotusScript',
-    'COMMENT_SINGLE' => array(1 => "'"),
-    'COMMENT_MULTI' => array('%REM' => '%END REM'),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array('"' , "|"),
-    'ESCAPE_CHAR' => '',
-    'KEYWORDS' => array(
-        1 => array (
-            'Yield', 'Year', 'Xor', 'Write', 'With', 'Width', 'While', 'Wend',
-            'Weekday', 'VarType', 'Variant', 'Val', 'UString', 'UString$',
-            'UseLSX', 'Use', 'Until', 'Unlock', 'Unicode', 'Uni', 'UChr',
-            'UChr$', 'UCase', 'UCase$', 'UBound', 'TypeName', 'Type', 'TRUE',
-            'Trim', 'Trim$', 'Today', 'To', 'TimeValue', 'TimeSerial', 'Timer',
-            'TimeNumber', 'Time', 'Time$', 'Then', 'Text', 'Tan', 'Tab', 'Sub',
-            'StrToken', 'StrToken$', 'StrRightBack', 'StrRightBack$',
-            'StrRight', 'StrRight$', 'StrLeftBack', 'StrLeftBack$', 'StrLeft',
-            'StrLeft$', 'String', 'String$', 'StrConv', 'StrCompare', 'StrComp',
-            'Str', 'Str$', 'Stop', 'Step', 'Static', 'Sqr', 'Split', 'Spc',
-            'Space', 'Space$', 'Sleep', 'Single', 'Sin', 'Shell', 'Shared',
-            'Sgn', 'SetFileAttr', 'SetAttr', 'Set', 'SendKeys', 'Select',
-            'Seek', 'Second', 'RTrim', 'RTrim$', 'RSet', 'Round', 'Rnd',
-            'RmDir', 'RightC', 'RightC$', 'RightBP', 'RightBP$', 'RightB',
-            'RightB$', 'Right', 'Right$', 'Return', 'Resume', 'Reset',
-            'Replace', 'Remove', 'Rem', 'ReDim', 'Read', 'Randomize',
-            'Random', 'Put', 'Public', 'Property', 'Private', 'Print',
-            'Preserve', 'Pitch', 'PI', 'Output', 'Or', 'Option', 'Open', 'On',
-            'Oct', 'Oct$', 'NULL', 'Now', 'NOTHING', 'Not', 'NoPitch', 'NoCase',
-            'Next', 'New', 'Name', 'MsgBox', 'Month', 'Mod', 'MkDir', 'Minute',
-            'MidC', 'MidC$', 'MidBP', 'MidBP$', 'MidB', 'MidB$', 'Mid', 'Mid$',
-            'MessageBox', 'Me', 'LTrim', 'LTrim$', 'LSServer', 'LSI_Info',
-            'LSet', 'Loop', 'Long', 'Log', 'LOF', 'Lock', 'LOC', 'LMBCS',
-            'ListTag', 'List', 'Line', 'Like', 'Lib', 'Let', 'LenC', 'LenBP',
-            'LenB', 'Len', 'LeftC', 'LeftC$', 'LeftBP', 'LeftBP$', 'LeftB',
-            'LeftB$', 'Left', 'Left$', 'LCase', 'LCase$', 'LBound', 'Kill',
-            'Join', 'IsUnknown', 'IsScalar', 'IsObject', 'IsNumeric', 'IsNull',
-            'IsList', 'IsEmpty', 'IsElement', 'IsDate', 'IsArray', 'IsA', 'Is',
-            'Integer', 'Int', 'InStrC', 'InStrBP', 'InStrB', 'InStr', 'InputBP',
-            'InputBP$', 'InputBox', 'InputBox$', 'InputB', 'InputB$', 'Input',
-            'Input$', 'In', 'IMSetMode', 'Implode', 'Implode$', 'Imp',
-            'IMEStatus', 'If', 'Hour', 'Hex', 'Hex$', 'Goto', 'GoSub',
-            'GetThreadInfo', 'GetFileAttr', 'GetAttr', 'Get', 'Function',
-            'FullTrim', 'From', 'FreeFile', 'Fraction', 'Format', 'Format$',
-            'ForAll', 'For', 'Fix', 'FileLen', 'FileDateTime', 'FileCopy',
-            'FileAttr', 'FALSE', 'Explicit', 'Exp', 'Exit', 'Execute', 'Event',
-            'Evaluate', 'Error', 'Error$', 'Err', 'Erl', 'Erase', 'Eqv', 'EOF',
-            'Environ', 'Environ$', 'End', 'ElseIf', 'Else', 'Double', 'DoEvents',
-            'Do', 'Dir', 'Dir$', 'Dim', 'DestroyLock', 'Delete', 'DefVar',
-            'DefStr', 'DefSng', 'DefLng', 'DefInt', 'DefDbl', 'DefCur',
-            'DefByte', 'DefBool', 'Declare', 'Day', 'DateValue', 'DateSerial',
-            'DateNumber', 'Date', 'Date$', 'DataType', 'CVDate', 'CVar',
-            'Currency', 'CurDrive', 'CurDrive$', 'CurDir', 'CurDir$', 'CStr',
-            'CSng', 'CreateLock', 'Cos', 'Const', 'Compare', 'Command',
-            'Command$', 'CodeUnlock', 'CodeLockCheck', 'CodeLock', 'Close',
-            'CLng', 'Class', 'CInt', 'Chr', 'Chr$', 'ChDrive', 'ChDir', 'CDbl',
-            'CDat', 'CCur', 'CByte', 'CBool', 'Case', 'Call', 'ByVal', 'Byte',
-            'Boolean', 'Bind', 'Binary', 'Bin', 'Bin$', 'Beep', 'Base', 'Atn2',
-            'Atn', 'ASin', 'Asc', 'As', 'ArrayUnique', 'ArrayReplace',
-            'ArrayGetIndex', 'ArrayAppend', 'Append', 'AppActivate', 'Any',
-            'And', 'Alias', 'ActivateApp', 'ACos', 'Access', 'Abs', '%Include',
-            '%If', '%END', '%ElseIf', '%Else'
-            ),
-        2 => array (
-            'NotesXSLTransformer', 'NotesXMLProcessor', 'NotesViewNavigator',
-            'NotesViewEntryCollection', 'NotesViewEntry', 'NotesViewColumn',
-            'NotesView', 'NotesUIWorkspace', 'NotesUIView', 'NotesUIScheduler',
-            'NotesUIDocument', 'NotesUIDatabase', 'NotesTimer', 'NotesStream',
-            'NotesSession', 'NotesSAXParser', 'NotesSAXException',
-            'NotesSAXAttributeList', 'NotesRichTextTable', 'NotesRichTextTab',
-            'NotesRichTextStyle', 'NotesRichTextSection', 'NotesRichTextRange',
-            'NotesRichTextParagraphStyle', 'NotesRichTextNavigator',
-            'NotesRichTextItem', 'NotesRichTextDocLink',
-            'NotesReplicationEntry', 'NotesReplication', 'NotesRegistration',
-            'NotesOutlineEntry', 'NotesOutline', 'NotesNoteCollection',
-            'NotesNewsLetter', 'NotesName', 'NotesMIMEHeader',
-            'NotesMIMEEntity', 'NotesLog', 'NotesItem', 'NotesInternational',
-            'NotesForm', 'NotesEmbeddedObject', 'NotesDXLImporter',
-            'NotesDXLExporter', 'NotesDOMXMLDeclNode', 'NotesDOMTextNode',
-            'NotesDOMProcessingInstructionNode', 'NotesDOMParser',
-            'NotesDOMNotationNode', 'NotesDOMNodeList', 'NotesDOMNode',
-            'NotesDOMNamedNodeMap', 'NotesDOMEntityReferenceNode',
-            'NotesDOMEntityNode', 'NotesDOMElementNode',
-            'NotesDOMDocumentTypeNode', 'NotesDOMDocumentNode',
-            'NotesDOMDocumentFragmentNode', 'NotesDOMCommentNode',
-            'NotesDOMCharacterDataNote', 'NotesDOMCDATASectionNode',
-            'NotesDOMAttributeNode', 'NotesDocumentCollection', 'NotesDocument',
-            'NotesDbDirectory', 'NotesDateTime', 'NotesDateRange',
-            'NotesDatabase', 'NotesColorObject', 'NotesAgent',
-            'NotesAdministrationProcess', 'NotesACLEntry', 'NotesACL',
-            'Navigator', 'Field', 'Button'
-            )
-        ) ,
-    'SYMBOLS' => array(
-        '(', ')'
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false,
-        2 => false
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #0000FF;',
-            2 => 'color: #0000EE;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #008000;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #000000;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #000000;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #FF00FF;'
-            ),
-        'METHODS' => array(
-            1 => 'color: #0000AA;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #006600;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #000099;'
-            ),
-        'SCRIPT' => array(
-            ),
-        'REGEXPS' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => ''
-        ),
-    'OOLANG' => true,
-    'OBJECT_SPLITTERS' => array(
-        1 => '.'
-        ),
-    'REGEXPS' => array(
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        ),
-    'TAB_WIDTH' => 2
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/lscript.php b/wiki/vendor/geshi/geshi/src/geshi/lscript.php
deleted file mode 100644
index 432d54a..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/lscript.php
+++ /dev/null
@@ -1,385 +0,0 @@
-<?php
-/*************************************************************************************
- * lscript.php
- * ---------
- * Author: Arendedwinter (admin@arendedwinter.com)
- * Copyright: (c) 2008 Beau McGuigan (http://www.arendedwinter.com)
- * Release Version: 1.0.9.0
- * Date Started: 15/11/2008
- *
- * Lightwave Script language file for GeSHi.
- *
- *************************************************************************************
- *
- *     This file is part of GeSHi.
- *
- *   GeSHi is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   GeSHi is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with GeSHi; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- ************************************************************************************/
-
-$language_data = array (
-    'LANG_NAME' => 'LScript',
-    'COMMENT_SINGLE' => array(1 => '//'),
-    'COMMENT_MULTI' => array('/*' => '*/'),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array('"'),
-    'ESCAPE_CHAR' => '',
-    'KEYWORDS' => array(
-    //Yes, I'm aware these are out of order,
-    //I had to rearrange and couldn't be bothered changing the numbers...
-        7 => array(
-            '@data', '@define', '@else', '@end', '@fpdepth', '@if', '@include',
-            '@insert', '@library', '@localipc', '@name', '@save', '@script',
-            '@sequence', '@version', '@warnings'
-            ),
-        1 => array(
-            'break', 'case', 'continue', 'else', 'end', 'false', 'for',
-            'foreach', 'if', 'return', 'switch', 'true', 'while',
-            ),
-        3 => array(
-            'active', 'alertlevel', 'alpha', 'alphaprefix', 'animfilename', 'autokeycreate',
-            'backdroptype', 'blue', 'boxthreshold', 'button',
-            'channelsvisible', 'childrenvisible', 'compfg', 'compbg', 'compfgalpha',
-            'coneangles', 'cosine', 'count', 'ctl', 'curFilename', 'curFrame',
-            'currenttime', 'curTime', 'curType',
-            'depth', 'diffshade', 'diffuse', 'dimensions', 'displayopts', 'dynamicupdate',
-            'end', 'eta',
-            'filename', 'flags', 'fogtype', 'fps', 'frame', 'frameend', 'frameheight',
-            'framestart', 'framestep', 'framewidth',
-            'generalopts', 'genus', 'geometry', 'gNorm', 'goal', 'green',
-            'h', 'hasAlpha', 'height',
-            'id', 'innerlimit', 'isColor',
-            'keyCount', 'keys',
-            'limiteregion', 'locked', 'luminous',
-            'maxsamplesperpixel', 'minsamplesperpixel', 'mirror', 'motionx', 'motiony',
-            'name', 'newFilename', 'newFrame', 'newTime', 'newType', 'null', 'numthreads',
-            'objID', 'oPos', 'outerlimit', 'oXfrm',
-            'parent', 'pixel', 'pixelaspect', 'point', 'points', 'pointcount', 'polNum',
-            'polycount', 'polygon', 'polygons', 'postBehavior', 'preBehavior', 'previewend',
-            'previewstart', 'previewstep',
-            'range', 'rawblue', 'rawgreen', 'rawred', 'rayLength', 'raySource', 'red',
-            'reflectblue', 'reflectgreen', 'reflectred', 'recursiondepth', 'renderend',
-            'renderopts', 'renderstart', 'renderstep', 'rendertype', 'restlength',
-            'rgbprefix', 'roughness',
-            'selected', 'setColor', 'setPattern', 'shading', 'shadow', 'shadows',
-            'shadowtype', 'size', 'source', 'special', 'specshade', 'specular',
-            'spotsize', 'start', 'sx', 'sy', 'sz',
-            'target', 'totallayers', 'totalpoints', 'totalpolygons', 'trans', 'transparency',
-            'type',
-            'value', 'view', 'visible', 'visibility',
-            'w', 'width', 'wNorm', 'wPos', 'wXfrm',
-            'x', 'xoffset',
-            'y', 'yoffset',
-            'z'
-            ),
-        4 => array(
-            'addLayer', 'addParticle', 'alphaspot', 'ambient', 'asAsc', 'asBin',
-            'asInt', 'asNum', 'asStr', 'asVec', 'attach', 'axislocks',
-            'backdropColor', 'backdropRay', 'backdropSqueeze', 'bone', 'blurLength',
-            'close', 'color', 'contains', 'copy', 'createKey',
-            'deleteKey', 'detach', 'drawCircle', 'drawLine', 'drawPoint', 'drawText',
-            'drawTriangle',
-            'edit', 'eof', 'event',
-            'firstChannel', 'firstLayer', 'firstSelect', 'focalLength', 'fogColor',
-            'fogMaxAmount', 'fogMaxDist', 'fogMinAmount', 'fogMinDist',
-            'fovAngles', 'fStop', 'firstChild', 'focalDistance',
-            'get', 'getChannelGroup', 'getEnvelope', 'getForward', 'getKeyBias',
-            'getKeyContinuity', 'getKeyCurve', 'getKeyHermite', 'getKeyTension',
-            'getKeyTime', 'getKeyValue', 'getParticle', 'getPivot', 'getPosition',
-            'getRight', 'getRotation', 'getSelect', 'getScaling', 'getTag', 'getTexture',
-            'getUp', 'getValue', 'getWorldPosition', 'getWorldForward', 'getWorldRight',
-            'getWorldRotation', 'getWorldUp', 'globalBlur', 'globalMask', 'globalResolution',
-            'hasCCEnd', 'hasCCStart',
-            'illuminate', 'indexOf', 'isAscii', 'isAlnum', 'isAlpha', 'isBone',
-            'isCamera', 'isChannel', 'isChannelGroup', 'isCntrl', 'isCurve', 'isDigit',
-            'isEnvelope', 'isImage', 'isInt', 'isLight', 'isLower', 'isMapped', 'isMesh',
-            'isNil', 'isNum', 'IsOpen', 'isOriginal', 'isPrint', 'isPunct', 'isScene',
-            'isSpace', 'isStr', 'isUpper', 'isValid', 'isVMap', 'isVec', 'isXDigit',
-            'keyExists',
-            'layer', 'layerName', 'layerVisible', 'limits', 'line', 'linecount', 'load', 'luma',
-            'next', 'nextLayer', 'nextSelect', 'nextChannel', 'nextChild', 'nl',
-            'offset', 'open',
-            'pack', 'param', 'parse', 'paste', 'persist', 'polygonCount', 'position',
-            'rayCast', 'rayTrace', 'read', 'readByte', 'readInt', 'readNumber',
-            'readDouble', 'readShort', 'readString', 'readVector', 'reduce',
-            'remParticle', 'renderCamera', 'reopen', 'replace', 'reset', 'restParam',
-            'rewind', 'rgb', 'rgbambient', 'rgbcolor', 'rgbspot',
-            'save', 'schemaPosition', 'select', 'set', 'setChannelGroup', 'setKeyBias',
-            'setKeyContinuity', 'setKeyCurve',
-            'setKeyHermite', 'setKeyTension', 'setKeyValue', 'setParticle', 'setPoints',
-            'setTag', 'setValue', 'server', 'serverFlags', 'sortA', 'sortD', 'surface',
-            'trunc',
-            'write', 'writeln', 'writeByte', 'writeData', 'writeNumber', 'writeDouble',
-            'writeShort', 'writeString', 'writeVector',
-            'vertex', 'vertexCount',
-            'zoomFactor'
-            ),
-        2 => array(
-            'abs', 'acos', 'angle', 'append', 'ascii', 'asin', 'atan',
-            'binary',
-            'ceil', 'center', 'chdir', 'clearimage', 'cloned', 'comringattach',
-            'comringdecode', 'comringdetach', 'comringencode', 'comringmsg', 'cos',
-            'cosh', 'cot', 'cross2d', 'cross3d', 'csc', 'ctlstring', 'ctlinteger',
-            'ctlnumber', 'ctlvector', 'ctldistance', 'ctlchoice', 'ctltext',
-            'ctlcolor', 'ctlsurface', 'ctlfont', 'ctlpopup', 'ctledit', 'ctlpercent',
-            'ctlangle', 'ctlrgb', 'ctlhsv', 'ctlcheckbox', 'ctlstate', 'ctlfilename',
-            'ctlbutton', 'ctllistbox', 'ctlslider', 'ctlminislider', 'ctlsep', 'ctlimage',
-            'ctltab', 'ctlallitems', 'ctlmeshitems', 'ctlcameraitems', 'ctllightitems',
-            'ctlboneitems', 'ctlimageitems', 'ctlchannel', 'ctlviewport', 'Control_Management',
-            'ctlpage', 'ctlgroup', 'ctlposition', 'ctlactive', 'ctlvisible', 'ctlalign',
-            'ctlrefresh', 'ctlmenu', 'ctlinfo',
-            'date', 'debug', 'deg', 'dot2d', 'dot3d', 'drawborder', 'drawbox', 'drawcircle',
-            'drawelipse', 'drawerase', 'drawfillcircle', 'drawfillelipse', 'drawline',
-            'drawpixel', 'drawtext', 'drawtextwidth', 'drawtextheight', 'dump',
-            'error', 'exp', 'expose', 'extent',
-            'fac', 'filecrc', 'filedelete', 'fileexists', 'filefind', 'filerename',
-            'filestat', 'floor', 'format', 'frac', 'fullpath',
-            'gamma', 'getdir', 'getenv', 'getfile', 'getfirstitem', 'getsep', 'getvalue',
-            'globalrecall', 'globalstore',
-            'hash', 'hex', 'hostBuild', 'hostVersion', 'hypot',
-            'info', 'integer',
-            'library', 'licenseId', 'lscriptVersion', 'load', 'loadimage', 'log', 'log10',
-            'matchdirs', 'matchfiles', 'max', 'min', 'mkdir', 'mod', 'monend', 'moninit', 'monstep',
-            'nil', 'normalize', 'number',
-            'octal', 'overlayglyph',
-            'parse', 'platform', 'pow',
-            'rad', 'random', 'randu', 'range', 'read', 'readdouble', 'readInt', 'readNumber',
-            'readShort', 'recall', 'regexp', 'reqabort', 'reqbegin', 'reqend', 'reqisopen',
-            'reqkeyboard', 'reqopen', 'reqposition', 'reqpost', 'reqredraw',
-            'reqsize', 'reqresize', 'requpdate', 'rmdir', 'round', 'runningUnder',
-            'save', 'sec', 'select', 'selector', 'setdesc', 'setvalue', 'sin', 'sinh', 'size',
-            'sizeof', 'sleep', 'spawn', 'split', 'sqrt', 'step', 'store', 'string', 'strleft',
-            'strlower', 'strright', 'strsub', 'strupper',
-            'tan', 'tanh', 'targetobject', 'terminate', 'text', 'time',
-            'wait', 'warn', 'when', 'write', 'writeDouble', 'writeInt', 'writeNumber', 'writeShort',
-            'var', 'vector', 'visitnodes', 'vmag',
-            ),
-        5 => array(
-            'addcurve', 'addpoint', 'addpolygon', 'addquad', 'addtriangle', 'alignpols',
-            'autoflex', 'axisdrill',
-            'bend', 'bevel', 'boolean', 'boundingbox',
-            'changepart', 'changesurface', 'close', 'closeall', 'cmdseq', 'copy', 'copysurface',
-            'createsurface', 'cut',
-            'deformregion', 'delete',
-            'editbegin', 'editend', 'exit', 'extrude',
-            'fixedflex', 'flip', 'fontclear', 'fontcount', 'fontindex', 'fontload',
-            'fontname', 'fracsubdivide', 'freezecurves',
-            'getdefaultsurface',
-            'jitter',
-            'lathe', 'layerName', 'layerVisible', 'lyrbg', 'lyrdata', 'lyrempty', 'lyremptybg',
-            'lyremptyfg', 'lyrfg', 'lyrsetbg', 'lyrsetfg', 'lyrswap',
-            'magnet', 'make4patch', 'makeball', 'makebox', 'makecone', 'makedisc',
-            'maketesball', 'maketext', 'mergepoints', 'mergepols', 'meshedit', 'mirror',
-            'morphpols', 'move',
-            'new', 'nextsurface',
-            'paste', 'pathclone', 'pathextrude', 'pixel', 'pointcount', 'pointinfo',
-            'pointmove', 'pole', 'polycount', 'polyinfo', 'polynormal', 'polypointcount',
-            'polypoints', 'polysurface',
-            'quantize',
-            'railclone', 'railextrude', 'redo', 'removepols', 'rempoint', 'rempoly',
-            'renamesurface', 'revert', 'rotate',
-            'scale', 'selhide', 'selinvert', 'selmode', 'selpoint', 'selpolygon', 'selunhide',
-            'selectvmap', 'setlayername', 'setobject', 'setpivot', 'setsurface', 'shapebevel',
-            'shear', 'skinpols', 'smooth', 'smoothcurves', 'smoothscale', 'smoothshift',
-            'soliddrill', 'splitpols', 'subdivide', 'swaphidden',
-            'taper', 'triple', 'toggleCCend', 'toggleCCstart', 'togglepatches', 'twist',
-            'undo', 'undogroupend', 'undogroupbegin', 'unifypols', 'unweld',
-            'vortex',
-            'weldaverage', 'weldpoints'
-            ),
-        6 => array(
-            'About', 'AboutOpenGL', 'AdaptiveSampling', 'AdaptiveThreshold',
-            'AddAreaLight', 'AddBone', 'AddButton', 'AddCamera', 'AddChildBone',
-            'AddDistantLight', 'AddEnvelope', 'AddLinearLight', 'AddNull',
-            'AddPartigon', 'AddPlugins', 'AddPointLight', 'AddPosition',
-            'AddRotation', 'AddScale', 'AddSpotlight', 'AddToSelection',
-            'AdjustRegionTool', 'AffectCaustics', 'AffectDiffuse', 'AffectOpenGL',
-            'AffectSpecular', 'AlertLevel', 'AmbientColor', 'AmbientIntensity',
-            'Antialiasing', 'ApertureHeight', 'ApplyServer', 'AreaLight',
-            'AutoConfirm', 'AutoFrameAdvance', 'AutoKey',
-            'BackdropColor', 'BackView', 'BController', 'BLimits', 'BLurLength', 'BoneActive',
-            'BoneFalloffType', 'BoneJointComp', 'BoneJointCompAmounts', 'BoneJointCompParent',
-            'BoneLimitedRange', 'BoneMaxRange', 'BoneMinRange', 'BoneMuscleFlex',
-            'BoneMuscleFlexAmounts', 'BoneMuscleFlexParent', 'BoneNormalization',
-            'BoneRestLength', 'BoneRestPosition', 'BoneRestRotation', 'BoneSource',
-            'BoneStrength', 'BoneStrengthMultiply', 'BoneWeightMapName', 'BoneWeightMapOnly',
-            'BoneWeightShade', 'BoneXRay', 'BottomView', 'BoundingBoxThreshold',
-            'BStiffness',
-            'CacheCaustics', 'CacheRadiosity', 'CacheShadowMap',
-            'CameraMask', 'CameraView', 'CameraZoomTool', 'CastShadow', 'CausticIntensity',
-            'CenterItem', 'CenterMouse', 'ChangeTool', 'ClearAllBones', 'ClearAllCameras',
-            'ClearAllLights', 'ClearAllObjects', 'ClearAudio', 'ClearScene', 'ClearSelected',
-            'Clone', 'CommandHistory', 'CommandInput', 'Compositing', 'ConeAngleTool',
-            'ContentDirectory', 'CreateKey',
-            'DecreaseGrid', 'DeleteKey', 'DepthBufferAA', 'DepthOfField', 'DisplayOptions',
-            'DistantLight', 'DrawAntialiasing', 'DrawBones', 'DrawChildBones', 'DynamicUpdate',
-            'EditBones', 'EditCameras', 'EditKeys', 'EditLights',
-            'EditMenus', 'EditObjects', 'EditPlugins', 'EditServer', 'EnableCaustics',
-            'EnableDeformations', 'EnableIK', 'EnableLensFlares', 'EnableRadiosity', 'EnableServer',
-            'EnableShadowMaps', 'EnableVIPER', 'EnableVolumetricLights', 'EnableXH',
-            'EnableYP', 'EnableZB', 'EnahancedAA', 'ExcludeLight', 'ExcludeObject',
-            'EyeSeparation',
-            'FasterBones', 'FirstFrame', 'FirstItem', 'FitAll', 'FitSelected',
-            'FlareIntensity', 'FlareOptions', 'FocalDistance', 'FogColor', 'FogMaxAmount',
-            'FogMaxDistance', 'FogMinAmount', 'FogMinDistance', 'FogType', 'FractionalFrames',
-            'FrameSize', 'FramesPerSecond', 'FrameStep', 'FreePreview', 'FrontView', 'FullTimeIK',
-            'GeneralOptions', 'Generics', 'GlobalApertureHeight', 'GlobalBlurLength',
-            'GlobalFrameSize', 'GlobalIllumination', 'GlobalMaskPosition', 'GlobalMotionBlur',
-            'GlobalParticleBlur', 'GlobalPixelAspect', 'GlobalResolutionMulitplier', 'GoalItem',
-            'GoalStrength', 'GoToFrame', 'GradientBackdrop', 'GraphEditor', 'GridSize', 'GroundColor',
-            'HController', 'HideToolbar', 'HideWindows', 'HLimits', 'HStiffness',
-            'ImageEditor', 'ImageProcessing', 'IncludeLight', 'IncludeObject', 'IncreaseGrid',
-            'IndirectBounces', 'Item_SetWindowPos', 'ItemActive', 'ItemColor', 'ItemLock',
-            'ItemProperties', 'ItemVisibilty',
-            'KeepGoalWithinReach',
-            'LastFrame', 'LastItem', 'LastPluginInterface', 'Layout_SetWindowPos',
-            'Layout_SetWindowSize', 'LeftView', 'LensFlare', 'LensFStop', 'LightColor',
-            'LightConeAngle', 'LightEdgeAngle', 'LightFalloffType', 'LightIntensity',
-            'LightIntensityTool', 'LightQuality', 'LightRange', 'LightView', 'LimitB',
-            'LimitDynamicRange', 'LimitedRegion', 'LimitH', 'LimitP', 'LinearLight',
-            'LoadAudio', 'LoadFromScene', 'LoadMotion', 'LoadObject', 'LoadObjectLayer',
-            'LoadPreview', 'LoadScene', 'LocalCoordinateSystem',
-            'MakePreview', 'MaskColor', 'MaskPosition', 'MasterPlugins', 'MatchGoalOrientation',
-            'MatteColor', 'MatteObject', 'MetaballResolution', 'Model', 'MorphAmount',
-            'MorphAmountTool', 'MorphMTSE', 'MorphSurfaces', 'MorphTarget', 'MotionBlur',
-            'MotionBlurDOFPreview', 'MotionOptions', 'MovePathTool', 'MovePivotTool', 'MoveTool',
-            'NadirColor', 'NetRender', 'NextFrame', 'NextItem', 'NextKey', 'NextSibling',
-            'NextViewLayout', 'NoiseReduction', 'Numeric',
-            'ObjectDissolve',
-            'ParentCoordinateSystem', 'ParentInPlace', 'ParentItem',
-            'ParticleBlur', 'PathAlignLookAhead', 'PathAlignMaxLookSteps', 'PathAlignReliableDist',
-            'Pause', 'PController', 'PerspectiveView',
-            'PivotPosition', 'PivotRotation', 'PixelAspect', 'PlayAudio', 'PlayBackward',
-            'PlayForward', 'PlayPreview', 'PLimits', 'PointLight', 'PolygonEdgeColor',
-            'PolygonEdgeFlags', 'PolygonEdgeThickness', 'PolygonEdgeZScale', 'PolygonSize',
-            'Position', 'Presets', 'PreviewFirstFrame', 'PreviewFrameStep', 'PreviewLastFrame',
-            'PreviewOptions', 'PreviousFrame', 'PreviousItem', 'PreviousKey', 'PreviousSibling',
-            'PreviousViewLayout', 'PStiffness',
-            'Quit',
-            'RadiosityIntensity', 'RadiosityTolerance', 'RadiosityType', 'RayRecursionLimit',
-            'RayTraceReflection', 'RayTraceShadows',
-            'RayTraceTransparency', 'ReceiveShadow', 'RecentContentDirs', 'RecentScenes',
-            'ReconstructionFilter', 'RecordMaxAngles', 'RecordMinAngles', 'RecordPivotRotation',
-            'RecordRestPosition', 'Redraw', 'RedrawNow', 'Refresh', 'RefreshNow', 'RegionPosition',
-            'RemoveEnvelope', 'RemoveFromSelection', 'RemoveServer', 'Rename', 'RenderFrame',
-            'RenderOptions', 'RenderScene', 'RenderSelected', 'RenderThreads',
-            'ReplaceObjectLayer', 'ReplaceWithNull', 'ReplaceWithObject', 'Reset',
-            'ResolutionMultiplier', 'RestLengthTool', 'RightView', 'RotatePivotTool',
-            'RotateTool', 'Rotation',
-            'SaveAllObjects', 'SaveCommandList', 'SaveCommandMessages',
-            'SaveEndomorph', 'SaveLight', 'SaveLWSC1', 'SaveMotion', 'SaveObject', 'SaveObjectCopy',
-            'SavePreview', 'SaveScene', 'SaveSceneAs', 'SaveSceneCopy', 'SaveTransformed',
-            'SaveViewLayout', 'Scale', 'Scene_SetWindowPos', 'Scene_SetWindowSize',
-            'SceneEditor', 'SchematicPosition', 'SchematicView', 'SelectAllBones',
-            'SelectAllCameras', 'SelectAllLights', 'SelectAllObjects', 'SelectByName',
-            'SelectChild', 'SelectItem', 'SelectParent', 'SelfShadow', 'ShadowColor',
-            'ShadowExclusion', 'ShadowMapAngle', 'ShadowMapFitCone', 'ShadowMapFuzziness',
-            'ShadowMapSize', 'ShadowType', 'ShowCages', 'ShowFieldChart', 'ShowHandles',
-            'ShowIKChains', 'ShowMotionPaths', 'ShowSafeAreas', 'ShowTargetLines',
-            'ShrinkEdgesWithDistance', 'SingleView', 'SizeTool', 'SkelegonsToBones', 'SkyColor',
-            'Spotlight', 'SquashTool', 'Statistics', 'StatusMsg', 'Stereoscopic', 'StretchTool',
-            'SubdivisionOrder', 'SubPatchLevel', 'SurfaceEditor', 'Synchronize',
-            'TargetItem', 'TopView',
-            'UnaffectedByFog', 'UnaffectedByIK', 'Undo', 'UnseenByAlphaChannel', 'UnseenByCamera',
-            'UnseenByRays', 'UseGlobalResolution', 'UseGlobalBlur', 'UseGlobalMask',
-            'UseMorphedPositions',
-            'ViewLayout', 'VIPER', 'VolumetricLighting',
-            'VolumetricLightingOptions', 'VolumetricRadiosity', 'Volumetrics',
-            'WorldCoordinateSystem',
-            'XYView', 'XZView',
-            'ZenithColor', 'ZoomFactor', 'ZoomIn', 'ZoomInX2', 'ZoomOut', 'ZoomOutX2', 'ZYView',
-            'Camera', 'Channel', 'ChannelGroup', 'Envelope', 'File', 'Glyph', 'Icon', 'Image',
-            'Light', 'Mesh', 'Scene', 'Surface', 'VMap'
-            ),
-        ),
-    'SYMBOLS' => array(
-        '(', ')', '{', '}', '[', ']', '=', '<', '>', '+', '-', '*', '/', '!', '%', '&', '@'
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => true,
-        1 => false,
-        2 => false,
-        3 => false,
-        4 => false,
-        5 => false,
-        6 => false,
-        7 => false
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #000000; font-weight: bold;',
-            2 => 'color: #FF6820; font-weight: bold;', //LS_COMMANDS
-            3 => 'color: #007F7F; font-weight: bold;', //LS_MEMBERS
-            4 => 'color: #800080; font-weight: bold;', //LS_METHODS
-            5 => 'color: #51BD95; font-weight: bold;', //LS_MODELER
-            6 => 'color: #416F85; font-weight: bold;', //LS_GENERAL
-            7 => 'color: #C92929; font-weight: bold;'  //LS_COMMANDS (cont)
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #7F7F7F;',
-            'MULTI' => 'color: #7F7F7F;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #0040A0;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #00C800;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #6953AC;'
-            ),
-        'METHODS' => array(
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #0040A0;'
-            ),
-        'REGEXPS' => array(
-            ),
-        'SCRIPT' => array(
-            ),
-        'ESCAPE_CHAR' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => '',
-        4 => '',
-        5 => '',
-        6 => '',
-        7 => ''
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(
-        ),
-    'REGEXPS' => array(
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        ),
-    'TAB_WIDTH' => 4,
-    'PARSER_CONTROL' => array(
-        'KEYWORDS' => array(
-            3 => array(
-                'DISALLOWED_BEFORE' => '(?<=\.)'
-                ),
-            4 => array(
-                'DISALLOWED_BEFORE' => '(?<=\.)'
-                )
-            )
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/lsl2.php b/wiki/vendor/geshi/geshi/src/geshi/lsl2.php
deleted file mode 100644
index 608b5e1..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/lsl2.php
+++ /dev/null
@@ -1,1276 +0,0 @@
-<?php
-/*************************************************************************************
- * lsl2.php
- * --------
- * Author: William Fry (william.fry@nyu.edu)
- * Copyright: (c) 2009 William Fry
- * Release Version: 1.0.9.0
- * Date Started: 2009/02/04
- *
- * Linden Scripting Language (LSL2) language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2009-02-05 (1.0.0)
- *   -  First Release
- * 2013-01-01
- *   -  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
- * 2013-07-11
- *   -  Modified by Sei Lisa to fix symbols and to add multiline comment support
- *
- *************************************************************************************
- *
- *     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
- *
- ************************************************************************************/
-
-// 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('/*' => '*/'),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array('"'),
-    'ESCAPE_CHAR' => '\\',
-    'KEYWORDS' => array(
-        1 => array( // flow control
-            'do',
-            'else',
-            'for',
-            'if',
-            'jump',
-            'return',
-            'state',
-            'while',
-            ),
-        2 => array( // manifest constants
-            'ACTIVE',
-            'AGENT',
-            'AGENT_ALWAYS_RUN',
-            'AGENT_ATTACHMENTS',
-            'AGENT_AUTOPILOT',
-            'AGENT_AWAY',
-            'AGENT_BUSY',
-            'AGENT_BY_LEGACY_NAME',
-            'AGENT_BY_USERNAME',
-            'AGENT_CROUCHING',
-            'AGENT_FLYING',
-            'AGENT_IN_AIR',
-            'AGENT_LIST_PARCEL',
-            'AGENT_LIST_PARCEL_OWNER',
-            'AGENT_LIST_REGION',
-            'AGENT_MOUSELOOK',
-            'AGENT_ON_OBJECT',
-            'AGENT_SCRIPTED',
-            'AGENT_SITTING',
-            'AGENT_TYPING',
-            'AGENT_WALKING',
-            'ALL_SIDES',
-            'ANIM_ON',
-            'ATTACH_AVATAR_CENTER',
-            'ATTACH_BACK',
-            'ATTACH_BELLY',
-            'ATTACH_CHEST',
-            'ATTACH_CHIN',
-            'ATTACH_HEAD',
-            'ATTACH_HUD_BOTTOM',
-            'ATTACH_HUD_BOTTOM_LEFT',
-            'ATTACH_HUD_BOTTOM_RIGHT',
-            'ATTACH_HUD_CENTER_1',
-            'ATTACH_HUD_CENTER_2',
-            'ATTACH_HUD_TOP_CENTER',
-            'ATTACH_HUD_TOP_LEFT',
-            'ATTACH_HUD_TOP_RIGHT',
-            'ATTACH_LEAR',
-            'ATTACH_LEFT_PEC',
-            'ATTACH_LEYE',
-            'ATTACH_LFOOT',
-            'ATTACH_LHAND',
-            'ATTACH_LHIP',
-            'ATTACH_LLARM',
-            'ATTACH_LLLEG',
-            'ATTACH_LSHOULDER',
-            'ATTACH_LUARM',
-            'ATTACH_LULEG',
-            'ATTACH_MOUTH',
-            'ATTACH_NECK',
-            'ATTACH_NOSE',
-            'ATTACH_PELVIS',
-            'ATTACH_REAR',
-            'ATTACH_REYE',
-            'ATTACH_RFOOT',
-            'ATTACH_RHAND',
-            'ATTACH_RHIP',
-            'ATTACH_RIGHT_PEC',
-            'ATTACH_RLARM',
-            'ATTACH_RLLEG',
-            'ATTACH_RSHOULDER',
-            'ATTACH_RUARM',
-            'ATTACH_RULEG',
-            'AVOID_CHARACTERS',
-            'AVOID_DYNAMIC_OBSTACLES',
-            'AVOID_NONE',
-            'CAMERA_ACTIVE',
-            'CAMERA_BEHINDNESS_ANGLE',
-            'CAMERA_BEHINDNESS_LAG',
-            'CAMERA_DISTANCE',
-            'CAMERA_FOCUS',
-            'CAMERA_FOCUS_LAG',
-            'CAMERA_FOCUS_LOCKED',
-            'CAMERA_FOCUS_OFFSET',
-            'CAMERA_FOCUS_THRESHOLD',
-            'CAMERA_PITCH',
-            'CAMERA_POSITION',
-            'CAMERA_POSITION_LAG',
-            'CAMERA_POSITION_LOCKED',
-            'CAMERA_POSITION_THRESHOLD',
-            'CHANGED_ALLOWED_DROP',
-            'CHANGED_COLOR',
-            'CHANGED_INVENTORY',
-            'CHANGED_LINK',
-            'CHANGED_MEDIA',
-            'CHANGED_OWNER',
-            'CHANGED_REGION',
-            'CHANGED_REGION_START',
-            'CHANGED_SCALE',
-            'CHANGED_SHAPE',
-            'CHANGED_TELEPORT',
-            'CHANGED_TEXTURE',
-            'CHARACTER_ACCOUNT_FOR_SKIPPED_FRAMES',
-            'CHARACTER_AVOIDANCE_MODE',
-            'CHARACTER_CMD_JUMP',
-            'CHARACTER_CMD_SMOOTH_STOP',
-            'CHARACTER_CMD_STOP',
-            'CHARACTER_DESIRED_SPEED',
-            'CHARACTER_DESIRED_TURN_SPEED',
-            'CHARACTER_LENGTH',
-            'CHARACTER_MAX_ACCEL',
-            'CHARACTER_MAX_DECEL',
-            'CHARACTER_MAX_SPEED',
-            'CHARACTER_MAX_TURN_RADIUS',
-            'CHARACTER_ORIENTATION',
-            'CHARACTER_RADIUS',
-            'CHARACTER_STAY_WITHIN_PARCEL',
-            'CHARACTER_TYPE',
-            'CHARACTER_TYPE_A',
-            'CHARACTER_TYPE_B',
-            'CHARACTER_TYPE_C',
-            'CHARACTER_TYPE_D',
-            'CHARACTER_TYPE_NONE',
-            'CLICK_ACTION_BUY',
-            'CLICK_ACTION_NONE',
-            'CLICK_ACTION_OPEN',
-            'CLICK_ACTION_OPEN_MEDIA',
-            'CLICK_ACTION_PAY',
-            'CLICK_ACTION_PLAY',
-            'CLICK_ACTION_SIT',
-            'CLICK_ACTION_TOUCH',
-            'CONTENT_TYPE_ATOM',
-            'CONTENT_TYPE_FORM',
-            'CONTENT_TYPE_HTML',
-            'CONTENT_TYPE_JSON',
-            'CONTENT_TYPE_LLSD',
-            'CONTENT_TYPE_RSS',
-            'CONTENT_TYPE_TEXT',
-            'CONTENT_TYPE_XHTML',
-            'CONTENT_TYPE_XML',
-            'CONTROL_BACK',
-            'CONTROL_DOWN',
-            'CONTROL_FWD',
-            'CONTROL_LBUTTON',
-            'CONTROL_LEFT',
-            'CONTROL_ML_LBUTTON',
-            'CONTROL_RIGHT',
-            'CONTROL_ROT_LEFT',
-            'CONTROL_ROT_RIGHT',
-            'CONTROL_UP',
-            'DATA_BORN',
-            'DATA_NAME',
-            'DATA_ONLINE',
-            'DATA_PAYINFO',
-            'DATA_SIM_POS',
-            'DATA_SIM_RATING',
-            'DATA_SIM_STATUS',
-            'DEBUG_CHANNEL',
-            'DEG_TO_RAD',
-            'DENSITY',
-            'EOF',
-            'ERR_GENERIC',
-            'ERR_MALFORMED_PARAMS',
-            'ERR_PARCEL_PERMISSIONS',
-            'ERR_RUNTIME_PERMISSIONS',
-            'ERR_THROTTLED',
-            'ESTATE_ACCESS_ALLOWED_AGENT_ADD',
-            'ESTATE_ACCESS_ALLOWED_AGENT_REMOVE',
-            'ESTATE_ACCESS_ALLOWED_GROUP_ADD',
-            'ESTATE_ACCESS_ALLOWED_GROUP_REMOVE',
-            'ESTATE_ACCESS_BANNED_AGENT_ADD',
-            'ESTATE_ACCESS_BANNED_AGENT_REMOVE',
-            'FALSE',
-            'FORCE_DIRECT_PATH',
-            'FRICTION',
-            'GCNP_RADIUS',
-            'GCNP_STATIC',
-            'GRAVITY_MULTIPLIER',
-            'HORIZONTAL',
-            'HTTP_BODY_MAXLENGTH',
-            'HTTP_BODY_TRUNCATED',
-            'HTTP_CUSTOM_HEADER',
-            'HTTP_METHOD',
-            'HTTP_MIMETYPE',
-            'HTTP_PRAGMA_NO_CACHE',
-            'HTTP_VERBOSE_THROTTLE',
-            'HTTP_VERIFY_CERT',
-            'INVENTORY_ALL',
-            'INVENTORY_ANIMATION',
-            'INVENTORY_BODYPART',
-            'INVENTORY_CLOTHING',
-            'INVENTORY_GESTURE',
-            'INVENTORY_LANDMARK',
-            'INVENTORY_NONE',
-            'INVENTORY_NOTECARD',
-            'INVENTORY_OBJECT',
-            'INVENTORY_SCRIPT',
-            'INVENTORY_SOUND',
-            'INVENTORY_TEXTURE',
-            'JSON_APPEND',
-            'JSON_ARRAY',
-            'JSON_DELETE',
-            'JSON_FALSE',
-            'JSON_INVALID',
-            'JSON_NULL',
-            'JSON_NUMBER',
-            'JSON_OBJECT',
-            'JSON_STRING',
-            'JSON_TRUE',
-            'KFM_CMD_PAUSE',
-            'KFM_CMD_PLAY',
-            'KFM_CMD_SET_MODE',
-            'KFM_CMD_STOP',
-            'KFM_COMMAND',
-            'KFM_DATA',
-            'KFM_FORWARD',
-            'KFM_LOOP',
-            'KFM_MODE',
-            'KFM_PING_PONG',
-            'KFM_REVERSE',
-            'KFM_ROTATION',
-            'KFM_TRANSLATION',
-            'LAND_LARGE_BRUSH',
-            'LAND_LEVEL',
-            'LAND_LOWER',
-            'LAND_MEDIUM_BRUSH',
-            'LAND_NOISE',
-            'LAND_RAISE',
-            'LAND_REVERT',
-            'LAND_SMALL_BRUSH',
-            'LAND_SMOOTH',
-            'LINK_ALL_CHILDREN',
-            'LINK_ALL_OTHERS',
-            'LINK_ROOT',
-            'LINK_SET',
-            'LINK_THIS',
-            'LIST_STAT_GEOMETRIC_MEAN',
-            'LIST_STAT_MAX',
-            'LIST_STAT_MEAN',
-            'LIST_STAT_MEDIAN',
-            'LIST_STAT_MIN',
-            'LIST_STAT_NUM_COUNT',
-            'LIST_STAT_RANGE',
-            'LIST_STAT_STD_DEV',
-            'LIST_STAT_SUM',
-            'LIST_STAT_SUM_SQUARES',
-            'LOOP',
-            'MASK_BASE',
-            'MASK_EVERYONE',
-            'MASK_GROUP',
-            'MASK_NEXT',
-            'MASK_OWNER',
-            'NULL_KEY',
-            'OBJECT_ATTACHED_POINT',
-            'OBJECT_CHARACTER_TIME',
-            'OBJECT_CREATOR',
-            'OBJECT_DESC',
-            'OBJECT_GROUP',
-            'OBJECT_NAME',
-            'OBJECT_OWNER',
-            'OBJECT_PATHFINDING_TYPE',
-            'OBJECT_PHANTOM',
-            'OBJECT_PHYSICS',
-            'OBJECT_PHYSICS_COST',
-            'OBJECT_POS',
-            'OBJECT_PRIM_EQUIVALENCE',
-            'OBJECT_RENDER_WEIGHT',
-            'OBJECT_RETURN_PARCEL',
-            'OBJECT_RETURN_PARCEL_OWNER',
-            'OBJECT_RETURN_REGION',
-            'OBJECT_ROOT',
-            'OBJECT_ROT',
-            'OBJECT_RUNNING_SCRIPT_COUNT',
-            'OBJECT_SCRIPT_MEMORY',
-            'OBJECT_SCRIPT_TIME',
-            'OBJECT_SERVER_COST',
-            'OBJECT_STREAMING_COST',
-            'OBJECT_TEMP_ON_REZ',
-            'OBJECT_TOTAL_SCRIPT_COUNT',
-            'OBJECT_UNKNOWN_DETAIL',
-            'OBJECT_VELOCITY',
-            'OPT_AVATAR',
-            'OPT_CHARACTER',
-            'OPT_EXCLUSION_VOLUME',
-            'OPT_LEGACY_LINKSET',
-            'OPT_MATERIAL_VOLUME',
-            'OPT_OTHER',
-            'OPT_STATIC_OBSTACLE',
-            'OPT_WALKABLE',
-            'PARCEL_COUNT_GROUP',
-            'PARCEL_COUNT_OTHER',
-            'PARCEL_COUNT_OWNER',
-            'PARCEL_COUNT_SELECTED',
-            'PARCEL_COUNT_TEMP',
-            'PARCEL_COUNT_TOTAL',
-            'PARCEL_DETAILS_AREA',
-            'PARCEL_DETAILS_DESC',
-            'PARCEL_DETAILS_GROUP',
-            'PARCEL_DETAILS_ID',
-            'PARCEL_DETAILS_NAME',
-            'PARCEL_DETAILS_OWNER',
-            'PARCEL_DETAILS_SEE_AVATARS',
-            'PARCEL_FLAG_ALLOW_ALL_OBJECT_ENTRY',
-            'PARCEL_FLAG_ALLOW_CREATE_GROUP_OBJECTS',
-            'PARCEL_FLAG_ALLOW_CREATE_OBJECTS',
-            'PARCEL_FLAG_ALLOW_DAMAGE',
-            'PARCEL_FLAG_ALLOW_FLY',
-            'PARCEL_FLAG_ALLOW_GROUP_OBJECT_ENTRY',
-            'PARCEL_FLAG_ALLOW_GROUP_SCRIPTS',
-            'PARCEL_FLAG_ALLOW_LANDMARK',
-            'PARCEL_FLAG_ALLOW_SCRIPTS',
-            'PARCEL_FLAG_ALLOW_TERRAFORM',
-            'PARCEL_FLAG_LOCAL_SOUND_ONLY',
-            'PARCEL_FLAG_RESTRICT_PUSHOBJECT',
-            'PARCEL_FLAG_USE_ACCESS_GROUP',
-            'PARCEL_FLAG_USE_ACCESS_LIST',
-            'PARCEL_FLAG_USE_BAN_LIST',
-            'PARCEL_FLAG_USE_LAND_PASS_LIST',
-            'PARCEL_MEDIA_COMMAND_AGENT',
-            'PARCEL_MEDIA_COMMAND_AUTO_ALIGN',
-            'PARCEL_MEDIA_COMMAND_DESC',
-            'PARCEL_MEDIA_COMMAND_LOOP',
-            'PARCEL_MEDIA_COMMAND_LOOP_SET',
-            'PARCEL_MEDIA_COMMAND_PAUSE',
-            'PARCEL_MEDIA_COMMAND_PLAY',
-            'PARCEL_MEDIA_COMMAND_SIZE',
-            'PARCEL_MEDIA_COMMAND_STOP',
-            'PARCEL_MEDIA_COMMAND_TEXTURE',
-            'PARCEL_MEDIA_COMMAND_TIME',
-            'PARCEL_MEDIA_COMMAND_TYPE',
-            'PARCEL_MEDIA_COMMAND_UNLOAD',
-            'PARCEL_MEDIA_COMMAND_URL',
-            'PASSIVE',
-            'PATROL_PAUSE_AT_WAYPOINTS',
-            'PAYMENT_INFO_ON_FILE',
-            'PAYMENT_INFO_USED',
-            'PAY_DEFAULT',
-            'PAY_HIDE',
-            'PERMISSION_ATTACH',
-            'PERMISSION_CHANGE_LINKS',
-            'PERMISSION_CONTROL_CAMERA',
-            'PERMISSION_DEBIT',
-            'PERMISSION_OVERRIDE_ANIMATIONS',
-            'PERMISSION_RETURN_OBJECTS',
-            'PERMISSION_SILENT_ESTATE_MANAGEMENT',
-            'PERMISSION_TAKE_CONTROLS',
-            'PERMISSION_TELEPORT',
-            'PERMISSION_TRACK_CAMERA',
-            'PERMISSION_TRIGGER_ANIMATION',
-            'PERM_ALL',
-            'PERM_COPY',
-            'PERM_MODIFY',
-            'PERM_MOVE',
-            'PERM_TRANSFER',
-            'PI',
-            'PING_PONG',
-            'PI_BY_TWO',
-            'PRIM_BUMP_BARK',
-            'PRIM_BUMP_BLOBS',
-            'PRIM_BUMP_BRICKS',
-            'PRIM_BUMP_BRIGHT',
-            'PRIM_BUMP_CHECKER',
-            'PRIM_BUMP_CONCRETE',
-            'PRIM_BUMP_DARK',
-            'PRIM_BUMP_DISKS',
-            'PRIM_BUMP_GRAVEL',
-            'PRIM_BUMP_LARGETILE',
-            'PRIM_BUMP_NONE',
-            'PRIM_BUMP_SHINY',
-            'PRIM_BUMP_SIDING',
-            'PRIM_BUMP_STONE',
-            'PRIM_BUMP_STUCCO',
-            'PRIM_BUMP_SUCTION',
-            'PRIM_BUMP_TILE',
-            'PRIM_BUMP_WEAVE',
-            'PRIM_BUMP_WOOD',
-            'PRIM_COLOR',
-            'PRIM_DESC',
-            'PRIM_FLEXIBLE',
-            'PRIM_FULLBRIGHT',
-            'PRIM_GLOW',
-            'PRIM_HOLE_CIRCLE',
-            'PRIM_HOLE_DEFAULT',
-            'PRIM_HOLE_SQUARE',
-            'PRIM_HOLE_TRIANGLE',
-            'PRIM_LINK_TARGET',
-            'PRIM_MATERIAL',
-            'PRIM_MATERIAL_FLESH',
-            'PRIM_MATERIAL_GLASS',
-            'PRIM_MATERIAL_METAL',
-            'PRIM_MATERIAL_PLASTIC',
-            'PRIM_MATERIAL_RUBBER',
-            'PRIM_MATERIAL_STONE',
-            'PRIM_MATERIAL_WOOD',
-            'PRIM_MEDIA_ALT_IMAGE_ENABLE',
-            'PRIM_MEDIA_AUTO_LOOP',
-            'PRIM_MEDIA_AUTO_PLAY',
-            'PRIM_MEDIA_AUTO_SCALE',
-            'PRIM_MEDIA_AUTO_ZOOM',
-            'PRIM_MEDIA_CONTROLS',
-            'PRIM_MEDIA_CONTROLS_MINI',
-            'PRIM_MEDIA_CONTROLS_STANDARD',
-            'PRIM_MEDIA_CURRENT_URL',
-            'PRIM_MEDIA_FIRST_CLICK_INTERACT',
-            'PRIM_MEDIA_HEIGHT_PIXELS',
-            'PRIM_MEDIA_HOME_URL',
-            'PRIM_MEDIA_MAX_HEIGHT_PIXELS',
-            'PRIM_MEDIA_MAX_URL_LENGTH',
-            'PRIM_MEDIA_MAX_WHITELIST_COUNT',
-            'PRIM_MEDIA_MAX_WHITELIST_SIZE',
-            'PRIM_MEDIA_MAX_WIDTH_PIXELS',
-            'PRIM_MEDIA_PARAM_MAX',
-            'PRIM_MEDIA_PERMS_CONTROL',
-            'PRIM_MEDIA_PERMS_INTERACT',
-            'PRIM_MEDIA_PERM_ANYONE',
-            'PRIM_MEDIA_PERM_GROUP',
-            'PRIM_MEDIA_PERM_NONE',
-            'PRIM_MEDIA_PERM_OWNER',
-            'PRIM_MEDIA_WHITELIST',
-            'PRIM_MEDIA_WHITELIST_ENABLE',
-            'PRIM_MEDIA_WIDTH_PIXELS',
-            'PRIM_NAME',
-            'PRIM_OMEGA',
-            'PRIM_PHANTOM',
-            'PRIM_PHYSICS',
-            'PRIM_PHYSICS_SHAPE_CONVEX',
-            'PRIM_PHYSICS_SHAPE_NONE',
-            'PRIM_PHYSICS_SHAPE_PRIM',
-            'PRIM_PHYSICS_SHAPE_TYPE',
-            'PRIM_POINT_LIGHT',
-            'PRIM_POSITION',
-            'PRIM_POS_LOCAL',
-            'PRIM_ROTATION',
-            'PRIM_ROT_LOCAL',
-            'PRIM_SCULPT_FLAG_INVERT',
-            'PRIM_SCULPT_FLAG_MIRROR',
-            'PRIM_SCULPT_TYPE_CYLINDER',
-            'PRIM_SCULPT_TYPE_MASK',
-            'PRIM_SCULPT_TYPE_PLANE',
-            'PRIM_SCULPT_TYPE_SPHERE',
-            'PRIM_SCULPT_TYPE_TORUS',
-            'PRIM_SHINY_HIGH',
-            'PRIM_SHINY_LOW',
-            'PRIM_SHINY_MEDIUM',
-            'PRIM_SHINY_NONE',
-            'PRIM_SIZE',
-            'PRIM_SLICE',
-            'PRIM_TEMP_ON_REZ',
-            'PRIM_TEXGEN',
-            'PRIM_TEXGEN_DEFAULT',
-            'PRIM_TEXGEN_PLANAR',
-            'PRIM_TEXT',
-            'PRIM_TEXTURE',
-            'PRIM_TYPE',
-            'PRIM_TYPE_BOX',
-            'PRIM_TYPE_CYLINDER',
-            'PRIM_TYPE_PRISM',
-            'PRIM_TYPE_RING',
-            'PRIM_TYPE_SCULPT',
-            'PRIM_TYPE_SPHERE',
-            'PRIM_TYPE_TORUS',
-            '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',
-            'PSYS_PART_FOLLOW_VELOCITY_MASK',
-            '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',
-            'PSYS_PART_WIND_MASK',
-            'PSYS_SRC_ACCEL',
-            'PSYS_SRC_ANGLE_BEGIN',
-            'PSYS_SRC_ANGLE_END',
-            'PSYS_SRC_BURST_PART_COUNT',
-            'PSYS_SRC_BURST_RADIUS',
-            'PSYS_SRC_BURST_RATE',
-            'PSYS_SRC_BURST_SPEED_MAX',
-            'PSYS_SRC_BURST_SPEED_MIN',
-            'PSYS_SRC_MAX_AGE',
-            'PSYS_SRC_OMEGA',
-            'PSYS_SRC_PATTERN',
-            'PSYS_SRC_PATTERN_ANGLE',
-            'PSYS_SRC_PATTERN_ANGLE_CONE',
-            'PSYS_SRC_PATTERN_ANGLE_CONE_EMPTY',
-            'PSYS_SRC_PATTERN_DROP',
-            'PSYS_SRC_PATTERN_EXPLODE',
-            'PSYS_SRC_TARGET_KEY',
-            'PSYS_SRC_TEXTURE',
-            'PUBLIC_CHANNEL',
-            'PURSUIT_FUZZ_FACTOR',
-            'PURSUIT_GOAL_TOLERANCE',
-            'PURSUIT_INTERCEPT',
-            'PURSUIT_OFFSET',
-            'PU_EVADE_HIDDEN',
-            'PU_EVADE_SPOTTED',
-            'PU_FAILURE_DYNAMIC_PATHFINDING_DISABLED',
-            'PU_FAILURE_INVALID_GOAL',
-            'PU_FAILURE_INVALID_START',
-            'PU_FAILURE_NO_NAVMESH',
-            'PU_FAILURE_NO_VALID_DESTINATION',
-            'PU_FAILURE_OTHER',
-            'PU_FAILURE_PARCEL_UNREACHABLE',
-            'PU_FAILURE_TARGET_GONE',
-            'PU_FAILURE_UNREACHABLE',
-            'PU_GOAL_REACHED',
-            'PU_SLOWDOWN_DISTANCE_REACHED',
-            'RAD_TO_DEG',
-            'RCERR_CAST_TIME_EXCEEDED',
-            'RCERR_SIM_PERF_LOW',
-            'RCERR_UNKNOWN',
-            'RC_DATA_FLAGS',
-            'RC_DETECT_PHANTOM',
-            'RC_GET_LINK_NUM',
-            'RC_GET_NORMAL',
-            'RC_GET_ROOT_KEY',
-            'RC_MAX_HITS',
-            'RC_REJECT_AGENTS',
-            'RC_REJECT_LAND',
-            'RC_REJECT_NONPHYSICAL',
-            'RC_REJECT_PHYSICAL',
-            'RC_REJECT_TYPES',
-            'REGION_FLAG_ALLOW_DAMAGE',
-            'REGION_FLAG_ALLOW_DIRECT_TELEPORT',
-            'REGION_FLAG_BLOCK_FLY',
-            'REGION_FLAG_BLOCK_TERRAFORM',
-            'REGION_FLAG_DISABLE_COLLISIONS',
-            'REGION_FLAG_DISABLE_PHYSICS',
-            'REGION_FLAG_FIXED_SUN',
-            'REGION_FLAG_RESTRICT_PUSHOBJECT',
-            'REGION_FLAG_SANDBOX',
-            'REMOTE_DATA_CHANNEL',
-            'REMOTE_DATA_REPLY',
-            'REMOTE_DATA_REQUEST',
-            'REQUIRE_LINE_OF_SIGHT',
-            'RESTITUTION',
-            'REVERSE',
-            'ROTATE',
-            'SCALE',
-            'SCRIPTED',
-            'SIM_STAT_PCT_CHARS_STEPPED',
-            'SMOOTH',
-            'SQRT2',
-            'STATUS_BLOCK_GRAB',
-            'STATUS_BLOCK_GRAB_OBJECT',
-            'STATUS_BOUNDS_ERROR',
-            'STATUS_CAST_SHADOWS',
-            'STATUS_DIE_AT_EDGE',
-            'STATUS_INTERNAL_ERROR',
-            'STATUS_MALFORMED_PARAMS',
-            'STATUS_NOT_FOUND',
-            'STATUS_NOT_SUPPORTED',
-            'STATUS_OK',
-            'STATUS_PHANTOM',
-            'STATUS_PHYSICS',
-            'STATUS_RETURN_AT_EDGE',
-            'STATUS_ROTATE_X',
-            'STATUS_ROTATE_Y',
-            'STATUS_ROTATE_Z',
-            'STATUS_SANDBOX',
-            'STATUS_TYPE_MISMATCH',
-            'STATUS_WHITELIST_FAILED',
-            'STRING_TRIM',
-            'STRING_TRIM_HEAD',
-            'STRING_TRIM_TAIL',
-            'TEXTURE_BLANK',
-            'TEXTURE_DEFAULT',
-            'TEXTURE_MEDIA',
-            'TEXTURE_PLYWOOD',
-            'TEXTURE_TRANSPARENT',
-            'TOUCH_INVALID_FACE',
-            'TOUCH_INVALID_TEXCOORD',
-            'TOUCH_INVALID_VECTOR',
-            'TRAVERSAL_TYPE',
-            'TRAVERSAL_TYPE_FAST',
-            'TRAVERSAL_TYPE_NONE',
-            'TRAVERSAL_TYPE_SLOW',
-            'TRUE',
-            'TWO_PI',
-            'TYPE_FLOAT',
-            'TYPE_INTEGER',
-            'TYPE_INVALID',
-            'TYPE_KEY',
-            'TYPE_ROTATION',
-            'TYPE_STRING',
-            'TYPE_VECTOR',
-            'URL_REQUEST_DENIED',
-            'URL_REQUEST_GRANTED',
-            'VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY',
-            'VEHICLE_ANGULAR_DEFLECTION_TIMESCALE',
-            'VEHICLE_ANGULAR_FRICTION_TIMESCALE',
-            'VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE',
-            'VEHICLE_ANGULAR_MOTOR_DIRECTION',
-            'VEHICLE_ANGULAR_MOTOR_TIMESCALE',
-            'VEHICLE_BANKING_EFFICIENCY',
-            'VEHICLE_BANKING_MIX',
-            'VEHICLE_BANKING_TIMESCALE',
-            'VEHICLE_BUOYANCY',
-            'VEHICLE_FLAG_CAMERA_DECOUPLED',
-            'VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT',
-            'VEHICLE_FLAG_HOVER_TERRAIN_ONLY',
-            'VEHICLE_FLAG_HOVER_UP_ONLY',
-            'VEHICLE_FLAG_HOVER_WATER_ONLY',
-            'VEHICLE_FLAG_LIMIT_MOTOR_UP',
-            'VEHICLE_FLAG_LIMIT_ROLL_ONLY',
-            'VEHICLE_FLAG_MOUSELOOK_BANK',
-            'VEHICLE_FLAG_MOUSELOOK_STEER',
-            'VEHICLE_FLAG_NO_DEFLECTION_UP',
-            'VEHICLE_HOVER_EFFICIENCY',
-            'VEHICLE_HOVER_HEIGHT',
-            'VEHICLE_HOVER_TIMESCALE',
-            'VEHICLE_LINEAR_DEFLECTION_EFFICIENCY',
-            'VEHICLE_LINEAR_DEFLECTION_TIMESCALE',
-            'VEHICLE_LINEAR_FRICTION_TIMESCALE',
-            'VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE',
-            'VEHICLE_LINEAR_MOTOR_DIRECTION',
-            'VEHICLE_LINEAR_MOTOR_OFFSET',
-            'VEHICLE_LINEAR_MOTOR_TIMESCALE',
-            'VEHICLE_REFERENCE_FRAME',
-            'VEHICLE_TYPE_AIRPLANE',
-            'VEHICLE_TYPE_BALLOON',
-            'VEHICLE_TYPE_BOAT',
-            'VEHICLE_TYPE_CAR',
-            'VEHICLE_TYPE_NONE',
-            'VEHICLE_TYPE_SLED',
-            'VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY',
-            'VEHICLE_VERTICAL_ATTRACTION_TIMESCALE',
-            'VERTICAL',
-            'WANDER_PAUSE_AT_WAYPOINTS',
-            'ZERO_ROTATION',
-            'ZERO_VECTOR',
-            ),
-        3 => array( // handlers
-            'at_rot_target',
-            'at_target',
-            'attach',
-            'changed',
-            'collision',
-            'collision_end',
-            'collision_start',
-            'control',
-            'dataserver',
-            'email',
-            'http_request',
-            'http_response',
-            'land_collision',
-            'land_collision_end',
-            'land_collision_start',
-            'link_message',
-            'listen',
-            'money',
-            'moving_end',
-            'moving_start',
-            'no_sensor',
-            'not_at_rot_target',
-            'not_at_target',
-            'object_rez',
-            'on_rez',
-            'path_update',
-            'remote_data',
-            'run_time_permissions',
-            'sensor',
-            'state_entry',
-            'state_exit',
-            'timer',
-            'touch',
-            'touch_end',
-            'touch_start',
-            'transaction_result',
-            ),
-        4 => array( // data types
-            'float',
-            'integer',
-            'key',
-            'list',
-            'quaternion',
-            'rotation',
-            'string',
-            'vector',
-            ),
-        5 => array( // library
-            'default',
-            'llAbs',
-            'llAcos',
-            'llAddToLandBanList',
-            'llAddToLandPassList',
-            'llAdjustSoundVolume',
-            'llAllowInventoryDrop',
-            'llAngleBetween',
-            'llApplyImpulse',
-            'llApplyRotationalImpulse',
-            'llAsin',
-            'llAtan2',
-            'llAttachToAvatar',
-            'llAttachToAvatarTemp',
-            'llAvatarOnLinkSitTarget',
-            'llAvatarOnSitTarget',
-            'llAxes2Rot',
-            'llAxisAngle2Rot',
-            'llBase64ToInteger',
-            'llBase64ToString',
-            'llBreakAllLinks',
-            'llBreakLink',
-            'llCastRay',
-            'llCeil',
-            'llClearCameraParams',
-            'llClearLinkMedia',
-            'llClearPrimMedia',
-            'llCloseRemoteDataChannel',
-            'llCollisionFilter',
-            'llCollisionSound',
-            'llCos',
-            'llCreateCharacter',
-            'llCreateLink',
-            'llCSV2List',
-            'llDeleteCharacter',
-            'llDeleteSubList',
-            'llDeleteSubString',
-            'llDetachFromAvatar',
-            'llDetectedGrab',
-            'llDetectedGroup',
-            'llDetectedKey',
-            'llDetectedLinkNumber',
-            'llDetectedName',
-            'llDetectedOwner',
-            'llDetectedPos',
-            'llDetectedRot',
-            'llDetectedTouchBinormal',
-            'llDetectedTouchFace',
-            'llDetectedTouchNormal',
-            'llDetectedTouchPos',
-            'llDetectedTouchST',
-            'llDetectedTouchUV',
-            'llDetectedType',
-            'llDetectedVel',
-            'llDialog',
-            'llDie',
-            'llDumpList2String',
-            'llEdgeOfWorld',
-            'llEjectFromLand',
-            'llEmail',
-            'llEscapeURL',
-            'llEuler2Rot',
-            'llEvade',
-            'llExecCharacterCmd',
-            'llFabs',
-            'llFleeFrom',
-            'llFloor',
-            'llForceMouselook',
-            'llFrand',
-            'llGenerateKey',
-            'llGetAccel',
-            'llGetAgentInfo',
-            'llGetAgentLanguage',
-            'llGetAgentList',
-            'llGetAgentSize',
-            'llGetAlpha',
-            'llGetAndResetTime',
-            'llGetAnimation',
-            'llGetAnimationList',
-            'llGetAnimationOverride',
-            'llGetAttached',
-            'llGetBoundingBox',
-            'llGetCameraPos',
-            'llGetCameraRot',
-            'llGetCenterOfMass',
-            'llGetClosestNavPoint',
-            'llGetColor',
-            'llGetCreator',
-            'llGetDate',
-            'llGetDisplayName',
-            'llGetEnergy',
-            'llGetEnv',
-            'llGetForce',
-            'llGetFreeMemory',
-            'llGetFreeURLs',
-            'llGetGeometricCenter',
-            'llGetGMTclock',
-            'llGetHTTPHeader',
-            'llGetInventoryCreator',
-            'llGetInventoryKey',
-            'llGetInventoryName',
-            'llGetInventoryNumber',
-            'llGetInventoryPermMask',
-            'llGetInventoryType',
-            'llGetKey',
-            'llGetLandOwnerAt',
-            'llGetLinkKey',
-            'llGetLinkMedia',
-            'llGetLinkName',
-            'llGetLinkNumber',
-            'llGetLinkNumberOfSides',
-            'llGetLinkPrimitiveParams',
-            'llGetListEntryType',
-            'llGetListLength',
-            'llGetLocalPos',
-            'llGetLocalRot',
-            'llGetMass',
-            'llGetMassMKS',
-            'llGetMaxScaleFactor',
-            'llGetMemoryLimit',
-            'llGetMinScaleFactor',
-            'llGetNextEmail',
-            'llGetNotecardLine',
-            'llGetNumberOfNotecardLines',
-            'llGetNumberOfPrims',
-            'llGetNumberOfSides',
-            'llGetObjectDesc',
-            'llGetObjectDetails',
-            'llGetObjectMass',
-            'llGetObjectName',
-            'llGetObjectPermMask',
-            'llGetObjectPrimCount',
-            'llGetOmega',
-            'llGetOwner',
-            'llGetOwnerKey',
-            'llGetParcelDetails',
-            'llGetParcelFlags',
-            'llGetParcelMaxPrims',
-            'llGetParcelMusicURL',
-            'llGetParcelPrimCount',
-            'llGetParcelPrimOwners',
-            'llGetPermissions',
-            'llGetPermissionsKey',
-            'llGetPhysicsMaterial',
-            'llGetPos',
-            'llGetPrimitiveParams',
-            'llGetPrimMediaParams',
-            'llGetRegionAgentCount',
-            'llGetRegionCorner',
-            'llGetRegionFlags',
-            'llGetRegionFPS',
-            'llGetRegionName',
-            'llGetRegionTimeDilation',
-            'llGetRootPosition',
-            'llGetRootRotation',
-            'llGetRot',
-            'llGetScale',
-            'llGetScriptName',
-            'llGetScriptState',
-            'llGetSimStats',
-            'llGetSimulatorHostname',
-            'llGetSPMaxMemory',
-            'llGetStartParameter',
-            'llGetStaticPath',
-            'llGetStatus',
-            'llGetSubString',
-            'llGetSunDirection',
-            'llGetTexture',
-            'llGetTextureOffset',
-            'llGetTextureRot',
-            'llGetTextureScale',
-            'llGetTime',
-            'llGetTimeOfDay',
-            'llGetTimestamp',
-            'llGetTorque',
-            'llGetUnixTime',
-            'llGetUsedMemory',
-            'llGetUsername',
-            'llGetVel',
-            'llGetWallclock',
-            'llGiveInventory',
-            'llGiveInventoryList',
-            'llGiveMoney',
-            'llGround',
-            'llGroundContour',
-            'llGroundNormal',
-            'llGroundRepel',
-            'llGroundSlope',
-            'llHTTPRequest',
-            'llHTTPResponse',
-            'llInsertString',
-            'llInstantMessage',
-            'llIntegerToBase64',
-            'llJson2List',
-            'llJsonGetValue',
-            'llJsonSetValue',
-            'llJsonValueType',
-            'llKey2Name',
-            'llLinkParticleSystem',
-            'llLinkSitTarget',
-            'llList2CSV',
-            'llList2Float',
-            'llList2Integer',
-            'llList2Json',
-            'llList2Key',
-            'llList2List',
-            'llList2ListStrided',
-            'llList2Rot',
-            'llList2String',
-            'llList2Vector',
-            'llListen',
-            'llListenControl',
-            'llListenRemove',
-            'llListFindList',
-            'llListInsertList',
-            'llListRandomize',
-            'llListReplaceList',
-            'llListSort',
-            'llListStatistics',
-            'llLoadURL',
-            'llLog',
-            'llLog10',
-            'llLookAt',
-            'llLoopSound',
-            'llLoopSoundMaster',
-            'llLoopSoundSlave',
-            'llManageEstateAccess',
-            'llMapDestination',
-            'llMD5String',
-            'llMessageLinked',
-            'llMinEventDelay',
-            'llModifyLand',
-            'llModPow',
-            'llMoveToTarget',
-            'llNavigateTo',
-            'llOffsetTexture',
-            'llOpenRemoteDataChannel',
-            'llOverMyLand',
-            'llOwnerSay',
-            'llParcelMediaCommandList',
-            'llParcelMediaQuery',
-            'llParseString2List',
-            'llParseStringKeepNulls',
-            'llParticleSystem',
-            'llPassCollisions',
-            'llPassTouches',
-            'llPatrolPoints',
-            'llPlaySound',
-            'llPlaySoundSlave',
-            'llPow',
-            'llPreloadSound',
-            'llPursue',
-            'llPushObject',
-            'llRegionSay',
-            'llRegionSayTo',
-            'llReleaseControls',
-            'llReleaseURL',
-            'llRemoteDataReply',
-            'llRemoteLoadScriptPin',
-            'llRemoveFromLandBanList',
-            'llRemoveFromLandPassList',
-            'llRemoveInventory',
-            'llRemoveVehicleFlags',
-            'llRequestAgentData',
-            'llRequestDisplayName',
-            'llRequestInventoryData',
-            'llRequestPermissions',
-            'llRequestSecureURL',
-            'llRequestSimulatorData',
-            'llRequestURL',
-            'llRequestUsername',
-            'llResetAnimationOverride',
-            'llResetLandBanList',
-            'llResetLandPassList',
-            'llResetOtherScript',
-            'llResetScript',
-            'llResetTime',
-            'llReturnObjectsByID',
-            'llReturnObjectsByOwner',
-            'llRezAtRoot',
-            'llRezObject',
-            'llRot2Angle',
-            'llRot2Axis',
-            'llRot2Euler',
-            'llRot2Fwd',
-            'llRot2Left',
-            'llRot2Up',
-            'llRotateTexture',
-            'llRotBetween',
-            'llRotLookAt',
-            'llRotTarget',
-            'llRotTargetRemove',
-            'llRound',
-            'llSameGroup',
-            'llSay',
-            'llScaleByFactor',
-            'llScaleTexture',
-            'llScriptDanger',
-            'llScriptProfiler',
-            'llSendRemoteData',
-            'llSensor',
-            'llSensorRemove',
-            'llSensorRepeat',
-            'llSetAlpha',
-            'llSetAngularVelocity',
-            'llSetAnimationOverride',
-            'llSetBuoyancy',
-            'llSetCameraAtOffset',
-            'llSetCameraEyeOffset',
-            'llSetCameraParams',
-            'llSetClickAction',
-            'llSetColor',
-            'llSetContentType',
-            'llSetDamage',
-            'llSetForce',
-            'llSetForceAndTorque',
-            'llSetHoverHeight',
-            'llSetKeyframedMotion',
-            'llSetLinkAlpha',
-            'llSetLinkCamera',
-            'llSetLinkColor',
-            'llSetLinkMedia',
-            'llSetLinkPrimitiveParams',
-            'llSetLinkPrimitiveParamsFast',
-            'llSetLinkTexture',
-            'llSetLinkTextureAnim',
-            'llSetLocalRot',
-            'llSetMemoryLimit',
-            'llSetObjectDesc',
-            'llSetObjectName',
-            'llSetParcelMusicURL',
-            'llSetPayPrice',
-            'llSetPhysicsMaterial',
-            'llSetPos',
-            'llSetPrimitiveParams',
-            'llSetPrimMediaParams',
-            'llSetRegionPos',
-            'llSetRemoteScriptAccessPin',
-            'llSetRot',
-            'llSetScale',
-            'llSetScriptState',
-            'llSetSitText',
-            'llSetSoundQueueing',
-            'llSetSoundRadius',
-            'llSetStatus',
-            'llSetText',
-            'llSetTexture',
-            'llSetTextureAnim',
-            'llSetTimerEvent',
-            'llSetTorque',
-            'llSetTouchText',
-            'llSetVehicleFlags',
-            'llSetVehicleFloatParam',
-            'llSetVehicleRotationParam',
-            'llSetVehicleType',
-            'llSetVehicleVectorParam',
-            'llSetVelocity',
-            'llSHA1String',
-            'llShout',
-            'llSin',
-            'llSitTarget',
-            'llSleep',
-            'llSqrt',
-            'llStartAnimation',
-            'llStopAnimation',
-            'llStopHover',
-            'llStopLookAt',
-            'llStopMoveToTarget',
-            'llStopSound',
-            'llStringLength',
-            'llStringToBase64',
-            'llStringTrim',
-            'llSubStringIndex',
-            'llTakeControls',
-            'llTan',
-            'llTarget',
-            'llTargetOmega',
-            'llTargetRemove',
-            'llTeleportAgent',
-            'llTeleportAgentGlobalCoords',
-            'llTeleportAgentHome',
-            'llTextBox',
-            'llToLower',
-            'llToUpper',
-            'llTransferLindenDollars',
-            'llTriggerSound',
-            'llTriggerSoundLimited',
-            'llUnescapeURL',
-            'llUnSit',
-            'llUpdateCharacter',
-            'llVecDist',
-            'llVecMag',
-            'llVecNorm',
-            'llVolumeDetect',
-            'llWanderWithin',
-            'llWater',
-            'llWhisper',
-            'llWind',
-            'llXorBase64',
-            'print',
-            ),
-        6 => array( // deprecated
-            'ATTACH_LPEC',
-            'ATTACH_RPEC',
-            'DATA_RATING',
-            'PERMISSION_CHANGE_JOINTS',
-            'PERMISSION_CHANGE_PERMISSIONS',
-            'PERMISSION_RELEASE_OWNERSHIP',
-            'PERMISSION_REMAP_CONTROLS',
-            'PRIM_CAST_SHADOWS',
-            'PRIM_MATERIAL_LIGHT',
-            'PSYS_SRC_INNERANGLE',
-            'PSYS_SRC_OBJ_REL_MASK',
-            'PSYS_SRC_OUTERANGLE',
-            'VEHICLE_FLAG_NO_FLY_UP',
-            'llCloud',
-            'llMakeExplosion',
-            'llMakeFire',
-            'llMakeFountain',
-            'llMakeSmoke',
-            'llRemoteDataSetRegion',
-            'llSound',
-            'llSoundPreload',
-            'llXorBase64Strings',
-            'llXorBase64StringsCorrect',
-            ),
-        7 => array( // unimplemented
-            'event',
-            'llCollisionSprite',
-            'llPointAt',
-            'llRefreshPrimURL',
-            'llReleaseCamera',
-            'llRemoteLoadScript',
-            'llSetPrimURL',
-            'llStopPointAt',
-            'llTakeCamera',
-            ),
-        8 => array( // God mode
-            'llGodLikeRezObject',
-            'llSetInventoryPermMask',
-            'llSetObjectPermMask',
-            ),
-        ),
-    'SYMBOLS' => array(
-        '{', '}', '(', ')', '[', ']',
-        '=', '+', '-', '*', '/',
-        '+=', '-=', '*=', '/=', '%=', '++', '--',
-        '!', '%', '&', '|', '&&', '||',
-        '==', '!=', '<', '>', '<=', '>=',
-        '~', '<<', '>>', '^', ':',
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => true,
-        1 => true,
-        2 => true,
-        3 => true,
-        4 => true,
-        5 => true,
-        6 => true,
-        7 => true,
-        8 => true,
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #0000ff;',
-            2 => 'color: #000080;',
-            3 => 'color: #008080;',
-            4 => 'color: #228b22;',
-            5 => 'color: #b22222;',
-            6 => 'color: #8b0000; background-color: #ffff00;',
-            7 => 'color: #8b0000; background-color: #fa8072;',
-            8 => 'color: #000000; background-color: #ba55d3;',
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #ff7f50; font-style: italic;',
-            'MULTI' => 'color: #ff7f50; font-style: italic;',
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #000099;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #000000;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #006400;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #000000;'
-            ),
-        'METHODS' => array(
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #000000;'
-            ),
-        'REGEXPS' => array(
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => 'http://wiki.secondlife.com/wiki/{FNAME}',
-        4 => 'http://wiki.secondlife.com/wiki/{FNAME}',
-        5 => 'http://wiki.secondlife.com/wiki/{FNAME}',
-        6 => 'http://wiki.secondlife.com/wiki/{FNAME}',
-        7 => 'http://wiki.secondlife.com/wiki/{FNAME}',
-        8 => 'http://wiki.secondlife.com/wiki/{FNAME}',
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(),
-    'REGEXPS' => array(
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/lua.php b/wiki/vendor/geshi/geshi/src/geshi/lua.php
deleted file mode 100644
index 313bbb5..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/lua.php
+++ /dev/null
@@ -1,175 +0,0 @@
-<?php
-/*************************************************************************************
- * lua.php
- * -------
- * Author: Roberto Rossi (rsoftware@altervista.org)
- * Copyright: (c) 2004 Roberto Rossi (http://rsoftware.altervista.org), Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.9.0
- * Date Started: 2004/07/10
- *
- * LUA language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2005/08/26 (1.0.2)
- *  -  Added support for objects and methods
- *  -  Removed unusable keywords
- * 2004/11/27 (1.0.1)
- *  -  Added support for multiple object splitters
- * 2004/10/27 (1.0.0)
- *  -  First Release
- *
- * TODO (updated 2004/11/27)
- * -------------------------
- *
- *************************************************************************************
- *
- *     This file is part of GeSHi.
- *
- *   GeSHi is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   GeSHi is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with GeSHi; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- ************************************************************************************/
-
-$language_data = array (
-    'LANG_NAME' => 'Lua',
-    'COMMENT_SINGLE' => array(1 => "--"),
-    'COMMENT_MULTI' => array(),
-    'COMMENT_REGEXP' => array(1 => '/--\[(=*)\[.*?\]\1\]/s'),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array("'", '"'),
-    'ESCAPE_CHAR' => '',
-    'ESCAPE_REGEXP' => array(
-        //Simple Single Char Escapes
-        1 => "#\\\\[\\\\abfnrtv\'\"]#i",
-        //Octal Char Specs
-        2 => "#\\\\\\d{1,3}#"
-        ),
-    'NUMBERS' =>
-        GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_INT_CSTYLE | GESHI_NUMBER_HEX_PREFIX |
-        GESHI_NUMBER_FLT_NONSCI | GESHI_NUMBER_FLT_NONSCI_F |
-        GESHI_NUMBER_FLT_SCI_SHORT | GESHI_NUMBER_FLT_SCI_ZERO,
-    'KEYWORDS' => array(
-        1 => array(
-            'break','do','else','elseif','end','for','function','if',
-            'local','repeat','return','then','until','while'
-            ),
-        2 => array(
-            'and','in','not','or'
-            ),
-        3 => array(
-            '_VERSION','assert','collectgarbage','dofile','error','gcinfo','loadfile','loadstring',
-            'print','tonumber','tostring','type','unpack',
-            '_ALERT','_ERRORMESSAGE','_INPUT','_PROMPT','_OUTPUT',
-            '_STDERR','_STDIN','_STDOUT','call','dostring','foreach','foreachi','getn','globals','newtype',
-            'rawget','rawset','require','sort','tinsert','tremove',
-            'abs','acos','asin','atan','atan2','ceil','cos','deg','exp',
-            'floor','format','frexp','gsub','ldexp','log','log10','max','min','mod','rad','random','randomseed',
-            'sin','sqrt','strbyte','strchar','strfind','strlen','strlower','strrep','strsub','strupper','tan',
-            'openfile','closefile','readfrom','writeto','appendto',
-            'remove','rename','flush','seek','tmpfile','tmpname','read','write',
-            'clock','date','difftime','execute','exit','getenv','setlocale','time',
-            '_G','getfenv','getmetatable','ipairs','loadlib','next','pairs','pcall',
-            'rawegal','setfenv','setmetatable','xpcall',
-            'string.byte','string.char','string.dump','string.find','string.len',
-            'string.lower','string.rep','string.sub','string.upper','string.format','string.gfind','string.gsub',
-            'table.concat','table.foreach','table.foreachi','table.getn','table.sort','table.insert','table.remove','table.setn',
-            'math.abs','math.acos','math.asin','math.atan','math.atan2','math.ceil','math.cos','math.deg','math.exp',
-            'math.floor','math.frexp','math.ldexp','math.log','math.log10','math.max','math.min','math.mod',
-            'math.pi','math.rad','math.random','math.randomseed','math.sin','math.sqrt','math.tan',
-            'coroutine.create','coroutine.resume','coroutine.status',
-            'coroutine.wrap','coroutine.yield',
-            'io.close','io.flush','io.input','io.lines','io.open','io.output','io.read','io.tmpfile','io.type','io.write',
-            'io.stdin','io.stdout','io.stderr',
-            'os.clock','os.date','os.difftime','os.execute','os.exit','os.getenv','os.remove','os.rename',
-            'os.setlocale','os.time','os.tmpname',
-            'string','table','math','coroutine','io','os','debug'
-            ),
-        4 => array(
-            'nil', 'false', 'true'
-            ),
-        5 => array(
-            'Nil', 'Boolean', 'Number', 'String', 'Userdata', 'Thread', 'Table'
-            )
-        ),
-    'SYMBOLS' => array(
-        '+', '-', '*', '/', '%', '^', '#',
-        '==', '~=', '<=', '>=', '<', '>', '=',
-        '(', ')', '{', '}', '[', ']',
-        ';', ':', ',', '.', '..', '...'
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => true,
-        2 => true,
-        3 => true,
-        4 => true,
-        5 => true
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #aa9900; font-weight: bold;',
-            2 => 'color: #aa9900; font-weight: bold;',
-            3 => 'color: #0000aa;',
-            4 => 'color: #aa9900;',
-            5 => 'color: #aa9900;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #808080; font-style: italic;',
-            //2 => 'color: #ff0000;',
-            '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;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #66cc66;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #ff6666;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #cc66cc;'
-            ),
-        'METHODS' => array(
-            0 => 'color: #aa9900;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #66cc66;'
-            ),
-        'REGEXPS' => array(
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => '',
-        4 => '',
-        5 => ''
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(
-        ),
-    'REGEXPS' => array(
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/m68k.php b/wiki/vendor/geshi/geshi/src/geshi/m68k.php
deleted file mode 100644
index e2040a6..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/m68k.php
+++ /dev/null
@@ -1,141 +0,0 @@
-<?php
-/*************************************************************************************
- * m68k.php
- * --------
- * 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.9.0
- * Date Started: 2007/02/06
- *
- * Motorola 68000 Assembler language file for GeSHi.
- *
- * Syntax definition as commonly used by the motorola documentation for the
- * MC68HC908GP32 Microcontroller (and maybe others).
- *
- * CHANGES
- * -------
- * 2008/05/23 (1.0.7.22)
- *   -  Added description of extra language features (SF#1970248)
- * 2007/06/02 (1.0.0)
- *   -  First Release
- *
- * TODO (updated 2007/06/02)
- * -------------------------
- *
- *************************************************************************************
- *
- *     This file is part of GeSHi.
- *
- *   GeSHi is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   GeSHi is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with GeSHi; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- ************************************************************************************/
-
-$language_data = array (
-    'LANG_NAME' => 'Motorola 68000 Assembler',
-    'COMMENT_SINGLE' => array(1 => ';'),
-    'COMMENT_MULTI' => array(),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array("'", '"'),
-    'ESCAPE_CHAR' => '',
-    'KEYWORDS' => array(
-        /*CPU*/
-        1 => array(
-            'adc','add','ais','aix','and','asl','asr','bcc','bclr','bcs','beq',
-            'bge','bgt','bhcc','bhcs','bhi','bhs','bih','bil','bit','ble','blo',
-            'bls','blt','bmc','bmi','bms','bne','bpl','bra','brclr','brn',
-            'brset','bset','bsr','cbeq','clc','cli','clr','cmp','com','cphx',
-            'cpx','daa','dbnz','dec','div','eor','inc','jmp','jsr','lda','ldhx',
-            'ldx','lsl','lsr','mov','mul','neg','nop','nsa','ora','psha','pshh',
-            'pshx','pula','pulh','pulx','rol','ror','rsp','rti','rts','sbc',
-            'sec','sei','sta','sthx','stop','stx','sub','swi','tap','tax','tpa',
-            'tst','tsx','txa','txs','wait'
-        ),
-        /*registers*/
-        2 => array(
-            'a','h','x',
-            'hx','sp'
-            ),
-        /*Directive*/
-        3 => array(
-            '#define','#endif','#else','#ifdef','#ifndef','#include','#undef',
-            '.db','.dd','.df','.dq','.dt','.dw','.end','.org','equ'
-            ),
-        ),
-    'SYMBOLS' => array(
-        ','
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false,
-        2 => false,
-        3 => false,
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #0000ff; font-weight:bold;',
-            2 => 'color: #0000ff;',
-            3 => 'color: #46aa03; font-weight:bold;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #adadad; font-style: italic;',
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #000099; font-weight: bold;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #0000ff;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #7f007f;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #dd22dd;'
-            ),
-        'METHODS' => array(
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #008000;'
-            ),
-        'REGEXPS' => array(
-            0 => 'color: #22bbff;',
-            1 => 'color: #22bbff;',
-            2 => 'color: #993333;'
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => ''
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(
-        ),
-    'REGEXPS' => array(
-        //Hex numbers
-        0 => '#?0[0-9a-fA-F]{1,32}[hH]',
-        //Binary numbers
-        1 => '\%[01]{1,64}[bB]',
-        //Labels
-        2 => '^[_a-zA-Z][_a-zA-Z0-9]*?\:'
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        ),
-    'TAB_WIDTH' => 8
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/magiksf.php b/wiki/vendor/geshi/geshi/src/geshi/magiksf.php
deleted file mode 100644
index 154cd26..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/magiksf.php
+++ /dev/null
@@ -1,191 +0,0 @@
-<?php
-/*************************************************************************************
- * magiksf.php
- * --------
- * Author: Sjoerd van Leent (svanleent@gmail.com)
- * Copyright: (c) 2010 Sjoerd van Leent
- * Release Version: 1.0.9.0
- * Date Started: 2010/02/15
- *
- * MagikSF language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2010/02/22 (1.0.0.2)
- *   - Symbols also accept the ! and ? characters properly
- *   - Labels (identifiers starting with !) are also coloured
- * 2010/02/17 (1.0.0.1)
- *   -  Parsing out symbols better
- *   -  Add package identifiers
- * 2010/02/15 (1.0.0)
- *   -  First Release
- *
- * TODO
- * ----
- *
- *************************************************************************************
- *
- *     This file is part of GeSHi.
- *
- *   GeSHi is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   GeSHi is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with GeSHi; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- ************************************************************************************/
-
-$language_data = array (
-    'ESCAPE_CHAR' => null,
-    'LANG_NAME' => 'MagikSF',
-    'COMMENT_SINGLE' => array(1 => '##', 2 => '#%', 3 => '#'),
-    'COMMENT_MULTI' => array("_pragma(" => ")"),
-    //Multiline-continued single-line comments
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array("'", '"'),
-    'ESCAPE_CHAR' => '', // FIXME: Duplicate array key. null or ''?
-    'KEYWORDS' => array(
-        1 => array(
-            '_block', '_endblock', '_proc', '_endproc', '_loop', '_endloop',
-            '_method', '_endmethod',
-            '_protect', '_endprotect', '_protection', '_locking',
-            '_continue',
-            ),
-        2 => array(
-            '_self', '_thisthread', '_pragma', '_private', '_abstract',
-            '_local', '_global', '_dynamic', '_package', '_constant',
-            '_import', '_iter', '_lock', '_optional', '_recursive', '_super'
-            ),
-        3 => array(
-            '_if', '_endif', '_then', '_else', '_elif', '_orif', '_andif', '_for', '_over',
-            '_try', '_endtry', '_when', '_throw', '_catch', '_endcatch', '_handling',
-            '_finally', '_loopbody', '_return', '_leave', '_with'
-            ),
-        4 => array(
-            '_false', '_true', '_maybe', '_unset', '_no_way'
-            ),
-        5 => array(
-            '_mod', '_div', '_or', '_and', '_cf', '_is', '_isnt', '_not', '_gather', '_scatter',
-            '_allresults', '_clone', '_xor'
-            ),
-        6 => array(
-            'def_slotted_exemplar', 'write_string', 'write', 'condition',
-            'record_transaction', 'gis_program_manager', 'perform', 'define_shared_constant',
-            'property_list', 'rope', 'def_property', 'def_mixin'
-            ),
-        ),
-    '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: #000000; font-weight: bold;',
-            2 => 'color: #ff3f3f;',
-            3 => 'color: #3f7f3f; font-weight: bold;',
-            4 => 'color: #cc66cc;',
-            5 => 'color: #ff3fff; font-weight: bold;',
-            6 => 'font-weight: bold;',
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #339933; font-weight: bold;',
-            2 => 'color: #993333;',
-            3 => 'color: #339933;',
-            'MULTI' => 'color: #7f7f7f; font-style: italic',
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #000099; font-weight: bold;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #ff3f3f;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #ff0000;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #cc66cc;'
-            ),
-        'METHODS' => array(
-            1 => 'color: #202020;',
-            2 => 'color: #202020;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #ff3f3f;'
-            ),
-        'REGEXPS' => array(
-            1 => 'color: #3f3fff;',
-            2 => 'color: #3f3fff;',
-            3 => 'color: #cc66cc;',
-            4 => 'color: #7f3f7f; font-style: italic;',
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => '',
-        4 => '',
-        5 => '',
-        6 => ''
-        ),
-    'OOLANG' => true,
-    'OBJECT_SPLITTERS' => array(
-        1 => '.'
-        ),
-    'REGEXPS' => array(
-        1 => array(
-            GESHI_SEARCH => '\b[a-zA-Z0-9_]+:', // package identifiers
-            GESHI_REPLACE => '\\0',
-            GESHI_MODIFIERS => '',
-            GESHI_BEFORE => '',
-            GESHI_AFTER => ''
-            ),
-        2 => array(
-            GESHI_SEARCH => ':(?:[a-zA-Z0-9!?_]+|(?:[<pipe>].*?[<pipe>]))*', //symbols
-            GESHI_REPLACE => '\\0',
-            GESHI_MODIFIERS => '',
-            GESHI_BEFORE => '',
-            GESHI_AFTER => ''
-            ),
-        3 => array(
-            GESHI_SEARCH => '%space|%tab|%newline|%.', //characters
-            GESHI_REPLACE => '\\0',
-            GESHI_MODIFIERS => '',
-            GESHI_BEFORE => '',
-            GESHI_AFTER => ''
-            ),
-        4 => array(
-            GESHI_SEARCH => '@(?:[a-zA-Z0-9!?_]+|(?:[<pipe>].*?[<pipe>]))*', //symbols
-            GESHI_REPLACE => '\\0',
-            GESHI_MODIFIERS => '',
-            GESHI_BEFORE => '',
-            GESHI_AFTER => ''
-            ),
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        ),
-    'TAB_WIDTH' => 4
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/make.php b/wiki/vendor/geshi/geshi/src/geshi/make.php
deleted file mode 100644
index fa3193e..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/make.php
+++ /dev/null
@@ -1,149 +0,0 @@
-<?php
-/*************************************************************************************
- * make.php
- * --------
- * Author: Neil Bird <phoenix@fnxweb.com>
- * Copyright: (c) 2008 Neil Bird
- * Release Version: 1.0.9.0
- * Date Started: 2008/08/26
- *
- * make language file for GeSHi.
- *
- * (GNU make specific)
- *
- * CHANGES
- * -------
- * 2008/09/05 (1.0.0)
- *  -  First Release
- *
- *************************************************************************************
- *
- *     This file is part of GeSHi.
- *
- *   GeSHi is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   GeSHi is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with GeSHi; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- ************************************************************************************/
-
-$language_data = array (
-    'LANG_NAME' => 'GNU make',
-    'COMMENT_SINGLE' => array(1 => '#'),
-    'COMMENT_REGEXP' => array(
-        //Escaped String Starters
-        2 => "/\\\\['\"]/siU"
-        ),
-    'COMMENT_MULTI' => array(),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array("'", '"'),
-    'ESCAPE_CHAR' => '\\',
-    'KEYWORDS' => array(
-        1 => array(
-            // core
-            'ifeq', 'else', 'endif', 'ifneq', 'ifdef', 'ifndef',
-            'include', 'vpath', 'export', 'unexport', 'override',
-            'info', 'warning', 'error'
-            ),
-        2 => array(
-            // macros, literals
-            '.SUFFIXES', '.PHONY', '.DEFAULT', '.PRECIOUS', '.IGNORE', '.SILENT', '.EXPORT_ALL_VARIABLES', '.KEEP_STATE',
-            '.LIBPATTERNS', '.NOTPARALLEL', '.DELETE_ON_ERROR', '.INTERMEDIATE', '.POSIX', '.SECONDARY'
-            ),
-        /*
-        3 => array(
-            // funcs - see regex
-            //'subst', 'addprefix', 'addsuffix', 'basename', 'call', 'dir', 'error', 'eval', 'filter-out', 'filter',
-            //'findstring', 'firstword', 'foreach', 'if', 'join', 'notdir', 'origin', 'patsubst', 'shell', 'sort', 'strip',
-            //'suffix', 'warning', 'wildcard', 'word', 'wordlist', 'words'
-            )*/
-        ),
-    'SYMBOLS' => array(
-        '(', ')', '[', ']', '{', '}',
-        '!', '@', '%', '&', '|', '/',
-        '<', '>',
-        '=', '-', '+', '*',
-        '.', ':', ',', ';',
-        '$'
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false,
-        2 => false,
-        //3 => false,
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #666622; font-weight: bold;',
-            2 => 'color: #990000;',
-            //3 => 'color: #000000; font-weight: bold;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #339900; font-style: italic;',
-            2 => 'color: #000099; font-weight: bold;',
-            'MULTI' => ''
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #000099; font-weight: bold;'
-            ),
-        'BRACKETS' => array(  # keep same as symbols so as to make ${} and $() equiv.
-            0 => 'color: #004400;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #CC2200;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #CC2200;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #004400;'
-            ),
-        'REGEXPS' => array(
-            0 => 'color: #000088; font-weight: bold;',
-            1 => 'color: #0000CC; font-weight: bold;',
-            2 => 'color: #000088;'
-            ),
-        'SCRIPT' => array(),
-        'METHODS' => array()
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        //3 => ''
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(),
-    'REGEXPS' => array(
-        //Simple variables
-        0 => "\\$(?:[^{(&]|&(?:amp|lt|gt);)",
-        //Complex variables/functions [built-ins]
-        1 => array(
-            GESHI_SEARCH => '(\\$[({])(subst|addprefix|addsuffix|basename|call|dir|error|eval|filter-out|filter,|findstring|firstword|foreach|if|join|notdir|origin|patsubst|shell|sort|strip,|suffix|warning|wildcard|word|wordlist|words)([ })])',
-            GESHI_REPLACE => '\\2',
-            GESHI_MODIFIERS => '',
-            GESHI_BEFORE => '\\1',
-            GESHI_AFTER => '\\3'
-            ),
-            //Complex variables/functions [others]
-        2 => array(
-            GESHI_SEARCH => '(\\$[({])([A-Za-z_][A-Za-z_0-9]*)([ })])',
-            GESHI_REPLACE => '\\2',
-            GESHI_MODIFIERS => '',
-            GESHI_BEFORE => '\\1',
-            GESHI_AFTER => '\\3'
-            ),
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(),
-    'HIGHLIGHT_STRICT_BLOCK' => array(),
-    'TAB_WIDTH' => 8
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/mapbasic.php b/wiki/vendor/geshi/geshi/src/geshi/mapbasic.php
deleted file mode 100644
index d85e574..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/mapbasic.php
+++ /dev/null
@@ -1,906 +0,0 @@
-<?php
-/*************************************************************************************
- * mapbasic.php
- * ------
- * Author: Tomasz Berus (t.berus@gisodkuchni.pl)
- * Copyright: (c) 2009 Tomasz Berus (http://sourceforge.net/projects/mbsyntax/)
- * Release Version: 1.0.9.0
- * Date Started: 2008/11/25
- *
- * MapBasic language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2009/09/17 (1.0.1)
- *  -  Replaced all tabs with spaces
- *  -  Fixed 'URLS' array
- * 2008/11/25 (1.0.0)
- *  -  First Release (MapBasic v9.5)
- *
- * TODO (updated 2008/11/25)
- * -------------------------
- *
- *************************************************************************************
- *
- *     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' => 'MapBasic',
-    'COMMENT_SINGLE' => array(1 => "'"),
-    'COMMENT_MULTI' => array(),
-    'COMMENT_REGEXP' => array(),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array('"'),
-    'ESCAPE_CHAR' => '',
-    'KEYWORDS' => array(
-/*
-        1 - Statements + Clauses + Data Types + Logical Operators, Geographical Operators + SQL
-        2 - Special Procedures
-        3 - Functions
-        4 - Constants
-        5 - Extended keywords (case sensitive)
-*/
-        1 => array(
-            'Add', 'Alias', 'All', 'Alter', 'And', 'Any', 'Application', 'Arc',
-            'Area', 'As', 'AutoLabel', 'Bar', 'Beep', 'Begin', 'Bind',
-            'Browse', 'Brush', 'BrushPicker', 'Button', 'ButtonPad',
-            'ButtonPads', 'BY', 'Call', 'CancelButton', 'Cartographic', 'Case',
-            'CharSet', 'Check', 'CheckBox', 'Clean', 'Close', 'Collection',
-            'Column', 'Combine', 'Command', 'Commit', 'Connection',
-            'ConnectionNumber', 'Contains', 'Continue', 'Control', 'CoordSys',
-            'Create', 'Cutter', 'Date', 'Datum', 'DDEExecute', 'DDEPoke',
-            'DDETerminate', 'DDETerminateAll', 'Declare', 'Default', 'Define',
-            'Delete', 'Dialog', 'Digitizer', 'Dim', 'Disaggregate',
-            'Disconnect', 'Distance', 'Do', 'Document', 'DocumentWindow',
-            'Drag', 'Drop', 'EditText', 'Ellipse', 'Enclose', 'End', 'Entire',
-            'Entirely', 'Erase', 'Error', 'Event', 'Exit', 'Export',
-            'Farthest', 'Fetch', 'File', 'Find', 'Float', 'FME', 'Font',
-            'FontPicker', 'For', 'Format', 'Frame', 'From', 'Function',
-            'Geocode', 'Get', 'Global', 'Goto', 'Graph', 'Grid', 'GROUP',
-            'GroupBox', 'Handler', 'If', 'Import', 'In', 'Include', 'Index',
-            'Info', 'Input', 'Insert', 'Integer', 'Intersect', 'Intersects',
-            'INTO', 'Isogram', 'Item', 'Kill', 'Layout', 'Legend', 'Line',
-            'Link', 'ListBox', 'Logical', 'Loop', 'Map', 'Map3D', 'MapInfo',
-            'MapInfoDialog', 'Menu', 'Merge', 'Metadata', 'Method', 'Mod',
-            'Move', 'MultiListBox', 'MultiPoint', 'MWS', 'Nearest', 'Next',
-            'NOSELECT', 'Not', 'Note', 'Object', 'Objects', 'Offset',
-            'OKButton', 'OnError', 'Open', 'Or', 'ORDER', 'Overlay', 'Pack',
-            'Paper', 'Part', 'Partly', 'Pen', 'PenPicker', 'Pline', 'Point',
-            'PopupMenu', 'Preserve', 'Print', 'PrintWin', 'PrismMap',
-            'Processing', 'Program', 'ProgressBar', 'ProgressBars', 'Put',
-            'RadioGroup', 'Randomize', 'Ranges', 'Rect', 'ReDim',
-            'Redistricter', 'Refresh', 'Region', 'Register', 'Relief',
-            'Reload', 'Remove', 'Rename', 'Report', 'Reproject', 'Resolution',
-            'Resume', 'Rollback', 'RoundRect', 'RowID', 'Run', 'Save', 'Seek',
-            'Select', 'Selection', 'Server', 'Set', 'Shade', 'SmallInt',
-            'Snap', 'Split', 'StaticText', 'StatusBar', 'Stop', 'String',
-            'Style', 'Styles', 'Sub', 'Symbol', 'SymbolPicker', 'Symbols',
-            'Table', 'Target', 'Terminate', 'Text', 'Then', 'Threshold',
-            'Timeout', 'To', 'Transaction', 'Transform', 'Type', 'UnDim',
-            'Units', 'Unlink', 'Update', 'Using', 'VALUES', 'Version',
-            'Versioning', 'Wend', 'WFS', 'WHERE', 'While', 'Window', 'Within',
-            'Workspace', 'Write'
-            ),
-        2 => array(
-            'EndHandler', 'ForegroundTaskSwitchHandler', 'Main',
-            'RemoteMapGenHandler', 'RemoteMsgHandler', 'SelChangedHandler',
-            'ToolHandler', 'WinChangedHandler', 'WinClosedHandler',
-            'WinFocusChangedHandler'
-            ),
-        3 => array(
-            'Abs', 'Acos', 'ApplicationDirectory$', 'AreaOverlap', 'Asc',
-            'Asin', 'Ask', 'Atn', 'Avg', 'Buffer', 'ButtonPadInfo',
-            'CartesianArea', 'CartesianBuffer', 'CartesianConnectObjects',
-            'CartesianDistance', 'CartesianObjectDistance',
-            'CartesianObjectLen', 'CartesianOffset', 'CartesianOffsetXY',
-            'CartesianPerimeter', 'Centroid', 'CentroidX', 'CentroidY',
-            'ChooseProjection$', 'Chr$', 'ColumnInfo', 'CommandInfo',
-            'ConnectObjects', 'ControlPointInfo', 'ConvertToPline',
-            'ConvertToRegion', 'ConvexHull', 'CoordSysName$', 'Cos', 'Count',
-            'CreateCircle', 'CreateLine', 'CreatePoint', 'CreateText',
-            'CurDate', 'CurrentBorderPen', 'CurrentBrush', 'CurrentFont',
-            'CurrentLinePen', 'CurrentPen', 'CurrentSymbol', 'DateWindow',
-            'Day', 'DDEInitiate', 'DDERequest$', 'DeformatNumber$', 'EOF',
-            'EOT', 'EPSGToCoordSysString$', 'Err', 'Error$', 'Exp',
-            'ExtractNodes', 'FileAttr', 'FileExists', 'FileOpenDlg',
-            'FileSaveAsDlg', 'Fix', 'Format$', 'FormatDate$', 'FormatNumber$',
-            'FrontWindow', 'GeocodeInfo', 'GetFolderPath$', 'GetGridCellValue',
-            'GetMetadata$', 'GetSeamlessSheet', 'GridTableInfo',
-            'HomeDirectory$', 'InStr', 'Int', 'IntersectNodes',
-            'IsGridCellNull', 'IsogramInfo', 'IsPenWidthPixels',
-            'LabelFindByID', 'LabelFindFirst', 'LabelFindNext', 'LabelInfo',
-            'LayerInfo', 'LCase$', 'Left$', 'LegendFrameInfo', 'LegendInfo',
-            'LegendStyleInfo', 'Len', 'Like', 'LocateFile$', 'LOF', 'Log',
-            'LTrim$', 'MakeBrush', 'MakeCustomSymbol', 'MakeFont',
-            'MakeFontSymbol', 'MakePen', 'MakeSymbol', 'Map3DInfo',
-            'MapperInfo', 'Max', 'Maximum', 'MBR', 'MenuItemInfoByHandler',
-            'MenuItemInfoByID', 'MGRSToPoint', 'MICloseContent',
-            'MICloseFtpConnection', 'MICloseFtpFileFind',
-            'MICloseHttpConnection', 'MICloseHttpFile', 'MICloseSession',
-            'MICreateSession', 'MICreateSessionFull', 'Mid$', 'MidByte$',
-            'MIErrorDlg', 'MIFindFtpFile', 'MIFindNextFtpFile', 'MIGetContent',
-            'MIGetContentBuffer', 'MIGetContentLen', 'MIGetContentString',
-            'MIGetContentToFile', 'MIGetContentType',
-            'MIGetCurrentFtpDirectory', 'MIGetErrorCode', 'MIGetErrorMessage',
-            'MIGetFileURL', 'MIGetFtpConnection', 'MIGetFtpFile',
-            'MIGetFtpFileFind', 'MIGetFtpFileName', 'MIGetHttpConnection',
-            'MIIsFtpDirectory', 'MIIsFtpDots', 'Min', 'Minimum',
-            'MIOpenRequest', 'MIOpenRequestFull', 'MIParseURL', 'MIPutFtpFile',
-            'MIQueryInfo', 'MIQueryInfoStatusCode', 'MISaveContent',
-            'MISendRequest', 'MISendSimpleRequest', 'MISetCurrentFtpDirectory',
-            'MISetSessionTimeout', 'MIXmlAttributeListDestroy',
-            'MIXmlDocumentCreate', 'MIXmlDocumentDestroy',
-            'MIXmlDocumentGetNamespaces', 'MIXmlDocumentGetRootNode',
-            'MIXmlDocumentLoad', 'MIXmlDocumentLoadXML',
-            'MIXmlDocumentLoadXMLString', 'MIXmlDocumentSetProperty',
-            'MIXmlGetAttributeList', 'MIXmlGetChildList',
-            'MIXmlGetNextAttribute', 'MIXmlGetNextNode', 'MIXmlNodeDestroy',
-            'MIXmlNodeGetAttributeValue', 'MIXmlNodeGetFirstChild',
-            'MIXmlNodeGetName', 'MIXmlNodeGetParent', 'MIXmlNodeGetText',
-            'MIXmlNodeGetValue', 'MIXmlNodeListDestroy', 'MIXmlSCDestroy',
-            'MIXmlSCGetLength', 'MIXmlSCGetNamespace', 'MIXmlSelectNodes',
-            'MIXmlSelectSingleNode', 'Month', 'NumAllWindows', 'NumberToDate',
-            'NumCols', 'NumTables', 'NumWindows', 'ObjectDistance',
-            'ObjectGeography', 'ObjectInfo', 'ObjectLen', 'ObjectNodeHasM',
-            'ObjectNodeHasZ', 'ObjectNodeM', 'ObjectNodeX', 'ObjectNodeY',
-            'ObjectNodeZ', 'OffsetXY', 'Overlap', 'OverlayNodes',
-            'PathToDirectory$', 'PathToFileName$', 'PathToTableName$',
-            'PenWidthToPoints', 'Perimeter', 'PointsToPenWidth',
-            'PointToMGRS$', 'PrismMapInfo', 'ProgramDirectory$', 'Proper$',
-            'ProportionOverlap', 'RasterTableInfo', 'ReadControlValue',
-            'RegionInfo', 'RemoteQueryHandler', 'RGB', 'Right$', 'Rnd',
-            'Rotate', 'RotateAtPoint', 'Round', 'RTrim$', 'SearchInfo',
-            'SearchPoint', 'SearchRect', 'SelectionInfo', 'Server_ColumnInfo',
-            'Server_Connect', 'Server_ConnectInfo', 'Server_DriverInfo',
-            'Server_EOT', 'Server_Execute', 'Server_GetODBCHConn',
-            'Server_GetODBCHStmt', 'Server_NumCols', 'Server_NumDrivers',
-            'SessionInfo', 'Sgn', 'Sin', 'Space$', 'SphericalArea',
-            'SphericalConnectObjects', 'SphericalDistance',
-            'SphericalObjectDistance', 'SphericalObjectLen', 'SphericalOffset',
-            'SphericalOffsetXY', 'SphericalPerimeter', 'Sqr', 'Str$',
-            'String$', 'StringCompare', 'StringCompareIntl', 'StringToDate',
-            'StyleAttr', 'Sum', 'SystemInfo', 'TableInfo', 'Tan',
-            'TempFileName$', 'TextSize', 'Time', 'Timer', 'TriggerControl',
-            'TrueFileName$', 'UBound', 'UCase$', 'UnitAbbr$', 'UnitName$',
-            'Val', 'Weekday', 'WindowID', 'WindowInfo', 'WtAvg', 'Year'
-            ),
-        4 => array(
-            'BLACK', 'BLUE', 'BRUSH_BACKCOLOR', 'BRUSH_FORECOLOR',
-            'BRUSH_PATTERN', 'BTNPAD_INFO_FLOATING', 'BTNPAD_INFO_NBTNS',
-            'BTNPAD_INFO_WIDTH', 'BTNPAD_INFO_WINID', 'BTNPAD_INFO_X',
-            'BTNPAD_INFO_Y', 'CLS', 'CMD_INFO_CTRL', 'CMD_INFO_CUSTOM_OBJ',
-            'CMD_INFO_DLG_DBL', 'CMD_INFO_DLG_OK', 'CMD_INFO_EDIT_ASK',
-            'CMD_INFO_EDIT_DISCARD', 'CMD_INFO_EDIT_SAVE',
-            'CMD_INFO_EDIT_STATUS', 'CMD_INFO_EDIT_TABLE', 'CMD_INFO_FIND_RC',
-            'CMD_INFO_FIND_ROWID', 'CMD_INFO_HL_FILE_NAME',
-            'CMD_INFO_HL_LAYER_ID', 'CMD_INFO_HL_ROWID',
-            'CMD_INFO_HL_TABLE_NAME', 'CMD_INFO_HL_WINDOW_ID',
-            'CMD_INFO_INTERRUPT', 'CMD_INFO_MENUITEM', 'CMD_INFO_MSG',
-            'CMD_INFO_ROWID', 'CMD_INFO_SELTYPE', 'CMD_INFO_SHIFT',
-            'CMD_INFO_STATUS', 'CMD_INFO_TASK_SWITCH', 'CMD_INFO_TOOLBTN',
-            'CMD_INFO_WIN', 'CMD_INFO_X', 'CMD_INFO_X2', 'CMD_INFO_XCMD',
-            'CMD_INFO_Y', 'CMD_INFO_Y2', 'COL_INFO_DECPLACES',
-            'COL_INFO_EDITABLE', 'COL_INFO_INDEXED', 'COL_INFO_NAME',
-            'COL_INFO_NUM', 'COL_INFO_TYPE', 'COL_INFO_WIDTH', 'COL_TYPE_CHAR',
-            'COL_TYPE_DATE', 'COL_TYPE_DATETIME', 'COL_TYPE_DECIMAL',
-            'COL_TYPE_FLOAT', 'COL_TYPE_GRAPHIC', 'COL_TYPE_INTEGER',
-            'COL_TYPE_LOGICAL', 'COL_TYPE_SMALLINT', 'COL_TYPE_TIME', 'CYAN',
-            'DATE_WIN_CURPROG', 'DATE_WIN_SESSION', 'DEG_2_RAD',
-            'DICTIONARY_ADDRESS_ONLY', 'DICTIONARY_ALL',
-            'DICTIONARY_PREFER_ADDRESS', 'DICTIONARY_PREFER_USER',
-            'DICTIONARY_USER_ONLY', 'DM_CUSTOM_CIRCLE', 'DM_CUSTOM_ELLIPSE',
-            'DM_CUSTOM_LINE', 'DM_CUSTOM_POINT', 'DM_CUSTOM_POLYGON',
-            'DM_CUSTOM_POLYLINE', 'DM_CUSTOM_RECT', 'DMPAPER_10X11',
-            'DMPAPER_10X14', 'DMPAPER_11X17', 'DMPAPER_12X11', 'DMPAPER_15X11',
-            'DMPAPER_9X11', 'DMPAPER_A_PLUS', 'DMPAPER_A2', 'DMPAPER_A3',
-            'DMPAPER_A3_EXTRA', 'DMPAPER_A3_EXTRA_TRANSVERSE',
-            'DMPAPER_A3_ROTATED', 'DMPAPER_A3_TRANSVERSE', 'DMPAPER_A4',
-            'DMPAPER_A4_EXTRA', 'DMPAPER_A4_PLUS', 'DMPAPER_A4_ROTATED',
-            'DMPAPER_A4_TRANSVERSE', 'DMPAPER_A4SMALL', 'DMPAPER_A5',
-            'DMPAPER_A5_EXTRA', 'DMPAPER_A5_ROTATED', 'DMPAPER_A5_TRANSVERSE',
-            'DMPAPER_A6', 'DMPAPER_A6_ROTATED', 'DMPAPER_B_PLUS', 'DMPAPER_B4',
-            'DMPAPER_B4_JIS_ROTATED', 'DMPAPER_B5', 'DMPAPER_B5_EXTRA',
-            'DMPAPER_B5_JIS_ROTATED', 'DMPAPER_B5_TRANSVERSE',
-            'DMPAPER_B6_JIS', 'DMPAPER_B6_JIS_ROTATED', 'DMPAPER_CSHEET',
-            'DMPAPER_DBL_JAPANESE_POSTCARD',
-            'DMPAPER_DBL_JAPANESE_POSTCARD_ROTATED', 'DMPAPER_DSHEET',
-            'DMPAPER_ENV_10', 'DMPAPER_ENV_11', 'DMPAPER_ENV_12',
-            'DMPAPER_ENV_14', 'DMPAPER_ENV_9', 'DMPAPER_ENV_B4',
-            'DMPAPER_ENV_B5', 'DMPAPER_ENV_B6', 'DMPAPER_ENV_C3',
-            'DMPAPER_ENV_C4', 'DMPAPER_ENV_C5', 'DMPAPER_ENV_C6',
-            'DMPAPER_ENV_C65', 'DMPAPER_ENV_DL', 'DMPAPER_ENV_INVITE',
-            'DMPAPER_ENV_ITALY', 'DMPAPER_ENV_MONARCH', 'DMPAPER_ENV_PERSONAL',
-            'DMPAPER_ESHEET', 'DMPAPER_EXECUTIVE',
-            'DMPAPER_FANFOLD_LGL_GERMAN', 'DMPAPER_FANFOLD_STD_GERMAN',
-            'DMPAPER_FANFOLD_US', 'DMPAPER_FIRST', 'DMPAPER_FOLIO',
-            'DMPAPER_ISO_B4', 'DMPAPER_JAPANESE_POSTCARD',
-            'DMPAPER_JAPANESE_POSTCARD_ROTATED', 'DMPAPER_JENV_CHOU3',
-            'DMPAPER_JENV_CHOU3_ROTATED', 'DMPAPER_JENV_CHOU4',
-            'DMPAPER_JENV_CHOU4_ROTATED', 'DMPAPER_JENV_KAKU2',
-            'DMPAPER_JENV_KAKU2_ROTATED', 'DMPAPER_JENV_KAKU3',
-            'DMPAPER_JENV_KAKU3_ROTATED', 'DMPAPER_JENV_YOU4',
-            'DMPAPER_JENV_YOU4_ROTATED', 'DMPAPER_LEDGER', 'DMPAPER_LEGAL',
-            'DMPAPER_LEGAL_EXTRA', 'DMPAPER_LETTER', 'DMPAPER_LETTER_EXTRA',
-            'DMPAPER_LETTER_EXTRA_TRANSVERSE', 'DMPAPER_LETTER_PLUS',
-            'DMPAPER_LETTER_ROTATED', 'DMPAPER_LETTER_TRANSVERSE',
-            'DMPAPER_LETTERSMALL', 'DMPAPER_NOTE', 'DMPAPER_P16K',
-            'DMPAPER_P16K_ROTATED', 'DMPAPER_P32K', 'DMPAPER_P32K_ROTATED',
-            'DMPAPER_P32KBIG', 'DMPAPER_P32KBIG_ROTATED', 'DMPAPER_PENV_1',
-            'DMPAPER_PENV_1_ROTATED', 'DMPAPER_PENV_10',
-            'DMPAPER_PENV_10_ROTATED', 'DMPAPER_PENV_2',
-            'DMPAPER_PENV_2_ROTATED', 'DMPAPER_PENV_3',
-            'DMPAPER_PENV_3_ROTATED', 'DMPAPER_PENV_4',
-            'DMPAPER_PENV_4_ROTATED', 'DMPAPER_PENV_5',
-            'DMPAPER_PENV_5_ROTATED', 'DMPAPER_PENV_6',
-            'DMPAPER_PENV_6_ROTATED', 'DMPAPER_PENV_7',
-            'DMPAPER_PENV_7_ROTATED', 'DMPAPER_PENV_8',
-            'DMPAPER_PENV_8_ROTATED', 'DMPAPER_PENV_9',
-            'DMPAPER_PENV_9_ROTATED', 'DMPAPER_QUARTO', 'DMPAPER_RESERVED_48',
-            'DMPAPER_RESERVED_49', 'DMPAPER_STATEMENT', 'DMPAPER_TABLOID',
-            'DMPAPER_TABLOID_EXTRA', 'DMPAPER_USER', 'ERR_BAD_WINDOW',
-            'ERR_BAD_WINDOW_NUM', 'ERR_CANT_ACCESS_FILE',
-            'ERR_CANT_INITIATE_LINK', 'ERR_CMD_NOT_SUPPORTED',
-            'ERR_FCN_ARG_RANGE', 'ERR_FCN_INVALID_FMT',
-            'ERR_FCN_OBJ_FETCH_FAILED', 'ERR_FILEMGR_NOTOPEN',
-            'ERR_FP_MATH_LIB_DOMAIN', 'ERR_FP_MATH_LIB_RANGE',
-            'ERR_INVALID_CHANNEL', 'ERR_INVALID_READ_CONTROL',
-            'ERR_INVALID_TRIG_CONTROL', 'ERR_NO_FIELD',
-            'ERR_NO_RESPONSE_FROM_APP', 'ERR_NULL_SELECTION',
-            'ERR_PROCESS_FAILED_IN_APP', 'ERR_TABLE_NOT_FOUND',
-            'ERR_WANT_MAPPER_WIN', 'FALSE', 'FILE_ATTR_FILESIZE',
-            'FILE_ATTR_MODE', 'FILTER_ALL_DIRECTIONS_1',
-            'FILTER_ALL_DIRECTIONS_2', 'FILTER_DIAGONALLY',
-            'FILTER_HORIZONTALLY', 'FILTER_VERTICALLY',
-            'FILTER_VERTICALLY_AND_HORIZONTALLY', 'FOLDER_APPDATA',
-            'FOLDER_COMMON_APPDATA', 'FOLDER_COMMON_DOCS',
-            'FOLDER_LOCAL_APPDATA', 'FOLDER_MI_APPDATA',
-            'FOLDER_MI_COMMON_APPDATA', 'FOLDER_MI_LOCAL_APPDATA',
-            'FOLDER_MI_PREFERENCE', 'FOLDER_MYDOCS', 'FOLDER_MYPICS',
-            'FONT_BACKCOLOR', 'FONT_FORECOLOR', 'FONT_NAME', 'FONT_POINTSIZE',
-            'FONT_STYLE', 'FRAME_INFO_BORDER_PEN', 'FRAME_INFO_COLUMN',
-            'FRAME_INFO_HEIGHT', 'FRAME_INFO_LABEL', 'FRAME_INFO_MAP_LAYER_ID',
-            'FRAME_INFO_NUM_STYLES', 'FRAME_INFO_POS_X', 'FRAME_INFO_POS_Y',
-            'FRAME_INFO_REFRESHABLE', 'FRAME_INFO_SUBTITLE',
-            'FRAME_INFO_SUBTITLE_FONT', 'FRAME_INFO_TITLE',
-            'FRAME_INFO_TITLE_FONT', 'FRAME_INFO_TYPE', 'FRAME_INFO_VISIBLE',
-            'FRAME_INFO_WIDTH', 'FRAME_TYPE_STYLE', 'FRAME_TYPE_THEME',
-            'GEO_CONTROL_POINT_X', 'GEO_CONTROL_POINT_Y', 'GEOCODE_BATCH_SIZE',
-            'GEOCODE_COUNT_GEOCODED', 'GEOCODE_COUNT_NOTGEOCODED',
-            'GEOCODE_COUNTRY_SUBDIVISION', 'GEOCODE_COUNTRY_SUBDIVISION2',
-            'GEOCODE_DICTIONARY', 'GEOCODE_FALLBACK_GEOGRAPHIC',
-            'GEOCODE_FALLBACK_POSTAL', 'GEOCODE_MAX_BATCH_SIZE',
-            'GEOCODE_MIXED_CASE', 'GEOCODE_MUNICIPALITY',
-            'GEOCODE_MUNICIPALITY2', 'GEOCODE_OFFSET_CENTER',
-            'GEOCODE_OFFSET_CENTER_UNITS', 'GEOCODE_OFFSET_END',
-            'GEOCODE_OFFSET_END_UNITS', 'GEOCODE_PASSTHROUGH',
-            'GEOCODE_POSTAL_CODE', 'GEOCODE_RESULT_MARK_MULTIPLE',
-            'GEOCODE_STREET_NAME', 'GEOCODE_STREET_NUMBER',
-            'GEOCODE_UNABLE_TO_CONVERT_DATA', 'GREEN',
-            'GRID_TAB_INFO_HAS_HILLSHADE', 'GRID_TAB_INFO_MAX_VALUE',
-            'GRID_TAB_INFO_MIN_VALUE', 'HOTLINK_INFO_ENABLED',
-            'HOTLINK_INFO_EXPR', 'HOTLINK_INFO_MODE', 'HOTLINK_INFO_RELATIVE',
-            'HOTLINK_MODE_BOTH', 'HOTLINK_MODE_LABEL', 'HOTLINK_MODE_OBJ',
-            'IMAGE_CLASS_BILEVEL', 'IMAGE_CLASS_GREYSCALE',
-            'IMAGE_CLASS_PALETTE', 'IMAGE_CLASS_RGB', 'IMAGE_TYPE_GRID',
-            'IMAGE_TYPE_RASTER', 'INCL_ALL', 'INCL_COMMON', 'INCL_CROSSINGS',
-            'ISOGRAM_AMBIENT_SPEED_DIST_UNIT',
-            'ISOGRAM_AMBIENT_SPEED_TIME_UNIT', 'ISOGRAM_BANDING',
-            'ISOGRAM_BATCH_SIZE', 'ISOGRAM_DEFAULT_AMBIENT_SPEED',
-            'ISOGRAM_MAJOR_POLYGON_ONLY', 'ISOGRAM_MAJOR_ROADS_ONLY',
-            'ISOGRAM_MAX_BANDS', 'ISOGRAM_MAX_BATCH_SIZE',
-            'ISOGRAM_MAX_DISTANCE', 'ISOGRAM_MAX_DISTANCE_UNITS',
-            'ISOGRAM_MAX_OFFROAD_DIST', 'ISOGRAM_MAX_OFFROAD_DIST_UNITS',
-            'ISOGRAM_MAX_TIME', 'ISOGRAM_MAX_TIME_UNITS',
-            'ISOGRAM_POINTS_ONLY', 'ISOGRAM_PROPAGATION_FACTOR',
-            'ISOGRAM_RECORDS_INSERTED', 'ISOGRAM_RECORDS_NOTINSERTED',
-            'ISOGRAM_RETURN_HOLES', 'ISOGRAM_SIMPLIFICATION_FACTOR',
-            'LABEL_INFO_ANCHORX', 'LABEL_INFO_ANCHORY', 'LABEL_INFO_DRAWN',
-            'LABEL_INFO_EDIT', 'LABEL_INFO_EDIT_ANCHOR',
-            'LABEL_INFO_EDIT_ANGLE', 'LABEL_INFO_EDIT_FONT',
-            'LABEL_INFO_EDIT_OFFSET', 'LABEL_INFO_EDIT_PEN',
-            'LABEL_INFO_EDIT_POSITION', 'LABEL_INFO_EDIT_TEXT',
-            'LABEL_INFO_EDIT_TEXTARROW', 'LABEL_INFO_EDIT_TEXTLINE',
-            'LABEL_INFO_EDIT_VISIBILITY', 'LABEL_INFO_OBJECT',
-            'LABEL_INFO_OFFSET', 'LABEL_INFO_ORIENTATION',
-            'LABEL_INFO_POSITION', 'LABEL_INFO_ROWID', 'LABEL_INFO_SELECT',
-            'LABEL_INFO_TABLE', 'LAYER_INFO_ARROWS', 'LAYER_INFO_CENTROIDS',
-            'LAYER_INFO_COSMETIC', 'LAYER_INFO_DISPLAY',
-            'LAYER_INFO_DISPLAY_GLOBAL', 'LAYER_INFO_DISPLAY_GRAPHIC',
-            'LAYER_INFO_DISPLAY_OFF', 'LAYER_INFO_DISPLAY_VALUE',
-            'LAYER_INFO_EDITABLE', 'LAYER_INFO_HOTLINK_COUNT',
-            'LAYER_INFO_HOTLINK_EXPR', 'LAYER_INFO_HOTLINK_MODE',
-            'LAYER_INFO_HOTLINK_RELATIVE', 'LAYER_INFO_LABEL_ALPHA',
-            'LAYER_INFO_LABEL_ORIENT_CURVED',
-            'LAYER_INFO_LABEL_ORIENT_HORIZONTAL',
-            'LAYER_INFO_LABEL_ORIENT_PARALLEL', 'LAYER_INFO_LAYER_ALPHA',
-            'LAYER_INFO_LAYER_TRANSLUCENCY', 'LAYER_INFO_LBL_AUTODISPLAY',
-            'LAYER_INFO_LBL_CURFONT', 'LAYER_INFO_LBL_DUPLICATES',
-            'LAYER_INFO_LBL_EXPR', 'LAYER_INFO_LBL_FONT', 'LAYER_INFO_LBL_LT',
-            'LAYER_INFO_LBL_LT_ARROW', 'LAYER_INFO_LBL_LT_NONE',
-            'LAYER_INFO_LBL_LT_SIMPLE', 'LAYER_INFO_LBL_MAX',
-            'LAYER_INFO_LBL_OFFSET', 'LAYER_INFO_LBL_ORIENTATION',
-            'LAYER_INFO_LBL_OVERLAP', 'LAYER_INFO_LBL_PARALLEL',
-            'LAYER_INFO_LBL_PARTIALSEGS', 'LAYER_INFO_LBL_POS',
-            'LAYER_INFO_LBL_POS_BC', 'LAYER_INFO_LBL_POS_BL',
-            'LAYER_INFO_LBL_POS_BR', 'LAYER_INFO_LBL_POS_CC',
-            'LAYER_INFO_LBL_POS_CL', 'LAYER_INFO_LBL_POS_CR',
-            'LAYER_INFO_LBL_POS_TC', 'LAYER_INFO_LBL_POS_TL',
-            'LAYER_INFO_LBL_POS_TR', 'LAYER_INFO_LBL_VIS_OFF',
-            'LAYER_INFO_LBL_VIS_ON', 'LAYER_INFO_LBL_VIS_ZOOM',
-            'LAYER_INFO_LBL_VISIBILITY', 'LAYER_INFO_LBL_ZOOM_MAX',
-            'LAYER_INFO_LBL_ZOOM_MIN', 'LAYER_INFO_NAME', 'LAYER_INFO_NODES',
-            'LAYER_INFO_OVR_BRUSH', 'LAYER_INFO_OVR_FONT',
-            'LAYER_INFO_OVR_LINE', 'LAYER_INFO_OVR_PEN',
-            'LAYER_INFO_OVR_SYMBOL', 'LAYER_INFO_PATH',
-            'LAYER_INFO_SELECTABLE', 'LAYER_INFO_TYPE',
-            'LAYER_INFO_TYPE_COSMETIC', 'LAYER_INFO_TYPE_GRID',
-            'LAYER_INFO_TYPE_IMAGE', 'LAYER_INFO_TYPE_NORMAL',
-            'LAYER_INFO_TYPE_THEMATIC', 'LAYER_INFO_TYPE_WMS',
-            'LAYER_INFO_ZOOM_LAYERED', 'LAYER_INFO_ZOOM_MAX',
-            'LAYER_INFO_ZOOM_MIN', 'LEGEND_INFO_MAP_ID',
-            'LEGEND_INFO_NUM_FRAMES', 'LEGEND_INFO_ORIENTATION',
-            'LEGEND_INFO_STYLE_SAMPLE_SIZE', 'LEGEND_STYLE_INFO_FONT',
-            'LEGEND_STYLE_INFO_OBJ', 'LEGEND_STYLE_INFO_TEXT',
-            'LOCATE_ABB_FILE', 'LOCATE_CLR_FILE', 'LOCATE_CUSTSYMB_DIR',
-            'LOCATE_DEF_WOR', 'LOCATE_FNT_FILE', 'LOCATE_GEOCODE_SERVERLIST',
-            'LOCATE_GRAPH_DIR', 'LOCATE_LAYOUT_TEMPLATE_DIR',
-            'LOCATE_MNU_FILE', 'LOCATE_PEN_FILE', 'LOCATE_PREF_FILE',
-            'LOCATE_PRJ_FILE', 'LOCATE_ROUTING_SERVERLIST',
-            'LOCATE_THMTMPLT_DIR', 'LOCATE_WFS_SERVERLIST',
-            'LOCATE_WMS_SERVERLIST', 'M_3DMAP_CLONE_VIEW',
-            'M_3DMAP_PREVIOUS_VIEW', 'M_3DMAP_PROPERTIES',
-            'M_3DMAP_REFRESH_GRID_TEXTURE', 'M_3DMAP_VIEW_ENTIRE_GRID',
-            'M_3DMAP_VIEWPOINT_CONTROL', 'M_3DMAP_WIREFRAME',
-            'M_ANALYZE_CALC_STATISTICS', 'M_ANALYZE_CUSTOMIZE_LEGEND',
-            'M_ANALYZE_FIND', 'M_ANALYZE_FIND_SELECTION',
-            'M_ANALYZE_INVERTSELECT', 'M_ANALYZE_SELECT',
-            'M_ANALYZE_SELECTALL', 'M_ANALYZE_SHADE', 'M_ANALYZE_SQLQUERY',
-            'M_ANALYZE_UNSELECT', 'M_BROWSE_EDIT', 'M_BROWSE_GRID',
-            'M_BROWSE_NEW_RECORD', 'M_BROWSE_OPTIONS', 'M_BROWSE_PICK_FIELDS',
-            'M_DBMS_OPEN_ODBC', 'M_EDIT_CLEAR', 'M_EDIT_CLEAROBJ',
-            'M_EDIT_COPY', 'M_EDIT_CUT', 'M_EDIT_GETINFO', 'M_EDIT_NEW_ROW',
-            'M_EDIT_PASTE', 'M_EDIT_PREFERENCES', 'M_EDIT_PREFERENCES_COUNTRY',
-            'M_EDIT_PREFERENCES_FILE', 'M_EDIT_PREFERENCES_IMAGE_PROC',
-            'M_EDIT_PREFERENCES_LAYOUT', 'M_EDIT_PREFERENCES_LEGEND',
-            'M_EDIT_PREFERENCES_MAP', 'M_EDIT_PREFERENCES_OUTPUT',
-            'M_EDIT_PREFERENCES_PATH', 'M_EDIT_PREFERENCES_PRINTER',
-            'M_EDIT_PREFERENCES_STYLES', 'M_EDIT_PREFERENCES_SYSTEM',
-            'M_EDIT_PREFERENCES_WEBSERVICES', 'M_EDIT_RESHAPE', 'M_EDIT_UNDO',
-            'M_FILE_ABOUT', 'M_FILE_ADD_WORKSPACE', 'M_FILE_CLOSE',
-            'M_FILE_CLOSE_ALL', 'M_FILE_CLOSE_ODBC', 'M_FILE_EXIT',
-            'M_FILE_HELP', 'M_FILE_NEW', 'M_FILE_OPEN', 'M_FILE_OPEN_ODBC',
-            'M_FILE_OPEN_ODBC_CONN', 'M_FILE_OPEN_UNIVERSAL_DATA',
-            'M_FILE_OPEN_WFS', 'M_FILE_OPEN_WMS', 'M_FILE_PAGE_SETUP',
-            'M_FILE_PRINT', 'M_FILE_PRINT_SETUP', 'M_FILE_REVERT',
-            'M_FILE_RUN', 'M_FILE_SAVE', 'M_FILE_SAVE_COPY_AS',
-            'M_FILE_SAVE_QUERY', 'M_FILE_SAVE_WINDOW_AS',
-            'M_FILE_SAVE_WORKSPACE', 'M_FORMAT_CUSTOM_COLORS',
-            'M_FORMAT_PICK_FILL', 'M_FORMAT_PICK_FONT', 'M_FORMAT_PICK_LINE',
-            'M_FORMAT_PICK_SYMBOL', 'M_GRAPH_3D_VIEWING_ANGLE',
-            'M_GRAPH_FORMATING', 'M_GRAPH_GENERAL_OPTIONS',
-            'M_GRAPH_GRID_SCALES', 'M_GRAPH_LABEL_AXIS',
-            'M_GRAPH_SAVE_AS_TEMPLATE', 'M_GRAPH_SERIES',
-            'M_GRAPH_SERIES_OPTIONS', 'M_GRAPH_TITLES', 'M_GRAPH_TYPE',
-            'M_GRAPH_VALUE_AXIS', 'M_HELP_ABOUT', 'M_HELP_CHECK_FOR_UPDATE',
-            'M_HELP_CONNECT_MIFORUM', 'M_HELP_CONTENTS',
-            'M_HELP_CONTEXTSENSITIVE', 'M_HELP_HELPMODE',
-            'M_HELP_MAPINFO_3DGRAPH_HELP', 'M_HELP_MAPINFO_CONNECT_SERVICES',
-            'M_HELP_MAPINFO_WWW', 'M_HELP_MAPINFO_WWW_STORE',
-            'M_HELP_MAPINFO_WWW_TUTORIAL', 'M_HELP_SEARCH',
-            'M_HELP_TECHSUPPORT', 'M_HELP_USE_HELP', 'M_LAYOUT_ACTUAL',
-            'M_LAYOUT_ALIGN', 'M_LAYOUT_AUTOSCROLL_ONOFF',
-            'M_LAYOUT_BRING2FRONT', 'M_LAYOUT_CHANGE_VIEW',
-            'M_LAYOUT_DISPLAYOPTIONS', 'M_LAYOUT_DROPSHADOWS',
-            'M_LAYOUT_ENTIRE', 'M_LAYOUT_LAYOUT_SIZE', 'M_LAYOUT_PREVIOUS',
-            'M_LAYOUT_SEND2BACK', 'M_LEGEND_ADD_FRAMES', 'M_LEGEND_DELETE',
-            'M_LEGEND_PROPERTIES', 'M_LEGEND_REFRESH', 'M_MAP_AUTOLABEL',
-            'M_MAP_AUTOSCROLL_ONOFF', 'M_MAP_CHANGE_VIEW',
-            'M_MAP_CLEAR_COSMETIC', 'M_MAP_CLEAR_CUSTOM_LABELS',
-            'M_MAP_CLIP_REGION_ONOFF', 'M_MAP_CLONE_MAPPER',
-            'M_MAP_CREATE_3DMAP', 'M_MAP_CREATE_LEGEND',
-            'M_MAP_CREATE_PRISMMAP', 'M_MAP_ENTIRE_LAYER',
-            'M_MAP_LAYER_CONTROL', 'M_MAP_MODIFY_THEMATIC', 'M_MAP_OPTIONS',
-            'M_MAP_PREVIOUS', 'M_MAP_PROJECTION', 'M_MAP_SAVE_COSMETIC',
-            'M_MAP_SET_CLIP_REGION', 'M_MAP_SETUNITS', 'M_MAP_SETUPDIGITIZER',
-            'M_MAP_THEMATIC', 'M_MAPBASIC_CLEAR', 'M_MAPBASIC_SAVECONTENTS',
-            'M_OBJECTS_BREAKPOLY', 'M_OBJECTS_BUFFER',
-            'M_OBJECTS_CHECK_REGIONS', 'M_OBJECTS_CLEAN',
-            'M_OBJECTS_CLEAR_TARGET', 'M_OBJECTS_COMBINE',
-            'M_OBJECTS_CONVEX_HULL', 'M_OBJECTS_CVT_PGON',
-            'M_OBJECTS_CVT_PLINE', 'M_OBJECTS_DISAGG',
-            'M_OBJECTS_DRIVE_REGION', 'M_OBJECTS_ENCLOSE', 'M_OBJECTS_ERASE',
-            'M_OBJECTS_ERASE_OUT', 'M_OBJECTS_MERGE', 'M_OBJECTS_OFFSET',
-            'M_OBJECTS_OVERLAY', 'M_OBJECTS_POLYLINE_SPLIT',
-            'M_OBJECTS_POLYLINE_SPLIT_AT_NODE', 'M_OBJECTS_RESHAPE',
-            'M_OBJECTS_ROTATE', 'M_OBJECTS_SET_TARGET', 'M_OBJECTS_SMOOTH',
-            'M_OBJECTS_SNAP', 'M_OBJECTS_SPLIT', 'M_OBJECTS_UNSMOOTH',
-            'M_OBJECTS_VORONOI', 'M_ORACLE_CREATE_WORKSPACE',
-            'M_ORACLE_DELETE_WORKSPACE', 'M_ORACLE_MERGE_PARENT',
-            'M_ORACLE_REFRESH_FROM_PARENT', 'M_ORACLE_VERSION_ENABLE_OFF',
-            'M_ORACLE_VERSION_ENABLE_ON', 'M_QUERY_CALC_STATISTICS',
-            'M_QUERY_FIND', 'M_QUERY_FIND_ADDRESS', 'M_QUERY_FIND_SELECTION',
-            'M_QUERY_FIND_SELECTION_CURRENT_MAP', 'M_QUERY_INVERTSELECT',
-            'M_QUERY_SELECT', 'M_QUERY_SELECTALL', 'M_QUERY_SQLQUERY',
-            'M_QUERY_UNSELECT', 'M_REDISTRICT_ADD', 'M_REDISTRICT_ASSIGN',
-            'M_REDISTRICT_DELETE', 'M_REDISTRICT_OPTIONS',
-            'M_REDISTRICT_TARGET', 'M_SENDMAIL_CURRENTWINDOW',
-            'M_SENDMAIL_WORKSPACE', 'M_TABLE_APPEND', 'M_TABLE_BUFFER',
-            'M_TABLE_CHANGESYMBOL', 'M_TABLE_CREATE_POINTS', 'M_TABLE_DELETE',
-            'M_TABLE_DRIVE_REGION', 'M_TABLE_EXPORT', 'M_TABLE_GEOCODE',
-            'M_TABLE_IMPORT', 'M_TABLE_MAKEMAPPABLE',
-            'M_TABLE_MERGE_USING_COLUMN', 'M_TABLE_MODIFY_STRUCTURE',
-            'M_TABLE_PACK', 'M_TABLE_RASTER_REG', 'M_TABLE_RASTER_STYLE',
-            'M_TABLE_REFRESH', 'M_TABLE_RENAME',
-            'M_TABLE_UNIVERSAL_DATA_REFRESH', 'M_TABLE_UNLINK',
-            'M_TABLE_UPDATE_COLUMN', 'M_TABLE_VORONOI', 'M_TABLE_WEB_GEOCODE',
-            'M_TABLE_WFS_PROPS', 'M_TABLE_WFS_REFRESH', 'M_TABLE_WMS_PROPS',
-            'M_TOOLS_ADD_NODE', 'M_TOOLS_ARC', 'M_TOOLS_CRYSTAL_REPORTS_NEW',
-            'M_TOOLS_CRYSTAL_REPORTS_OPEN', 'M_TOOLS_DRAGWINDOW',
-            'M_TOOLS_ELLIPSE', 'M_TOOLS_EXPAND', 'M_TOOLS_FRAME',
-            'M_TOOLS_HOTLINK', 'M_TOOLS_LABELER', 'M_TOOLS_LINE',
-            'M_TOOLS_MAPBASIC', 'M_TOOLS_PNT_QUERY', 'M_TOOLS_POINT',
-            'M_TOOLS_POLYGON', 'M_TOOLS_POLYLINE', 'M_TOOLS_RASTER_REG',
-            'M_TOOLS_RECENTER', 'M_TOOLS_RECTANGLE', 'M_TOOLS_ROUNDEDRECT',
-            'M_TOOLS_RULER', 'M_TOOLS_RUN', 'M_TOOLS_SEARCH_BOUNDARY',
-            'M_TOOLS_SEARCH_POLYGON', 'M_TOOLS_SEARCH_RADIUS',
-            'M_TOOLS_SEARCH_RECT', 'M_TOOLS_SELECTOR', 'M_TOOLS_SHRINK',
-            'M_TOOLS_TEXT', 'M_TOOLS_TOOL_MANAGER', 'M_WINDOW_ARRANGEICONS',
-            'M_WINDOW_BROWSE', 'M_WINDOW_BUTTONPAD', 'M_WINDOW_CASCADE',
-            'M_WINDOW_EXPORT_WINDOW', 'M_WINDOW_FIRST', 'M_WINDOW_GRAPH',
-            'M_WINDOW_LAYOUT', 'M_WINDOW_LEGEND', 'M_WINDOW_MAP',
-            'M_WINDOW_MAPBASIC', 'M_WINDOW_MORE', 'M_WINDOW_REDISTRICT',
-            'M_WINDOW_REDRAW', 'M_WINDOW_STATISTICS', 'M_WINDOW_STATUSBAR',
-            'M_WINDOW_TILE', 'M_WINDOW_TOOL_PALETTE', 'MAGENTA',
-            'MAP3D_INFO_BACKGROUND', 'MAP3D_INFO_CAMERA_CLIP_FAR',
-            'MAP3D_INFO_CAMERA_CLIP_NEAR', 'MAP3D_INFO_CAMERA_FOCAL_X',
-            'MAP3D_INFO_CAMERA_FOCAL_Y', 'MAP3D_INFO_CAMERA_FOCAL_Z',
-            'MAP3D_INFO_CAMERA_VPN_1', 'MAP3D_INFO_CAMERA_VPN_2',
-            'MAP3D_INFO_CAMERA_VPN_3', 'MAP3D_INFO_CAMERA_VU_1',
-            'MAP3D_INFO_CAMERA_VU_2', 'MAP3D_INFO_CAMERA_VU_3',
-            'MAP3D_INFO_CAMERA_X', 'MAP3D_INFO_CAMERA_Y',
-            'MAP3D_INFO_CAMERA_Z', 'MAP3D_INFO_LIGHT_COLOR',
-            'MAP3D_INFO_LIGHT_X', 'MAP3D_INFO_LIGHT_Y', 'MAP3D_INFO_LIGHT_Z',
-            'MAP3D_INFO_RESOLUTION_X', 'MAP3D_INFO_RESOLUTION_Y',
-            'MAP3D_INFO_SCALE', 'MAP3D_INFO_UNITS', 'MAPPER_INFO_AREAUNITS',
-            'MAPPER_INFO_CENTERX', 'MAPPER_INFO_CENTERY',
-            'MAPPER_INFO_CLIP_DISPLAY_ALL', 'MAPPER_INFO_CLIP_DISPLAY_POLYOBJ',
-            'MAPPER_INFO_CLIP_OVERLAY', 'MAPPER_INFO_CLIP_REGION',
-            'MAPPER_INFO_CLIP_TYPE', 'MAPPER_INFO_COORDSYS_CLAUSE',
-            'MAPPER_INFO_COORDSYS_CLAUSE_WITH_BOUNDS',
-            'MAPPER_INFO_COORDSYS_NAME', 'MAPPER_INFO_DISPLAY',
-            'MAPPER_INFO_DISPLAY_DECIMAL', 'MAPPER_INFO_DISPLAY_DEGMINSEC',
-            'MAPPER_INFO_DISPLAY_DMS', 'MAPPER_INFO_DISPLAY_MGRS',
-            'MAPPER_INFO_DISPLAY_POSITION', 'MAPPER_INFO_DISPLAY_SCALE',
-            'MAPPER_INFO_DISPLAY_ZOOM', 'MAPPER_INFO_DIST_CALC_TYPE',
-            'MAPPER_INFO_DIST_CARTESIAN', 'MAPPER_INFO_DIST_SPHERICAL',
-            'MAPPER_INFO_DISTUNITS', 'MAPPER_INFO_EDIT_LAYER',
-            'MAPPER_INFO_LAYERS', 'MAPPER_INFO_MAXX', 'MAPPER_INFO_MAXY',
-            'MAPPER_INFO_MERGE_MAP', 'MAPPER_INFO_MINX', 'MAPPER_INFO_MINY',
-            'MAPPER_INFO_MOVE_DUPLICATE_NODES', 'MAPPER_INFO_NUM_THEMATIC',
-            'MAPPER_INFO_REPROJECTION', 'MAPPER_INFO_RESAMPLING',
-            'MAPPER_INFO_SCALE', 'MAPPER_INFO_SCROLLBARS',
-            'MAPPER_INFO_XYUNITS', 'MAPPER_INFO_ZOOM', 'MAX_STRING_LENGTH',
-            'MENUITEM_INFO_ACCELERATOR', 'MENUITEM_INFO_CHECKABLE',
-            'MENUITEM_INFO_CHECKED', 'MENUITEM_INFO_ENABLED',
-            'MENUITEM_INFO_HANDLER', 'MENUITEM_INFO_HELPMSG',
-            'MENUITEM_INFO_ID', 'MENUITEM_INFO_SHOWHIDEABLE',
-            'MENUITEM_INFO_TEXT', 'MI_CURSOR_ARROW', 'MI_CURSOR_CHANGE_WIDTH',
-            'MI_CURSOR_CROSSHAIR', 'MI_CURSOR_DRAG_OBJ',
-            'MI_CURSOR_FINGER_LEFT', 'MI_CURSOR_FINGER_UP',
-            'MI_CURSOR_GRABBER', 'MI_CURSOR_IBEAM', 'MI_CURSOR_IBEAM_CROSS',
-            'MI_CURSOR_ZOOM_IN', 'MI_CURSOR_ZOOM_OUT', 'MI_ICON_ADD_NODE',
-            'MI_ICON_ARC', 'MI_ICON_ARROW', 'MI_ICON_ARROW_1',
-            'MI_ICON_ARROW_10', 'MI_ICON_ARROW_11', 'MI_ICON_ARROW_12',
-            'MI_ICON_ARROW_13', 'MI_ICON_ARROW_14', 'MI_ICON_ARROW_15',
-            'MI_ICON_ARROW_16', 'MI_ICON_ARROW_17', 'MI_ICON_ARROW_18',
-            'MI_ICON_ARROW_19', 'MI_ICON_ARROW_2', 'MI_ICON_ARROW_20',
-            'MI_ICON_ARROW_21', 'MI_ICON_ARROW_3', 'MI_ICON_ARROW_4',
-            'MI_ICON_ARROW_5', 'MI_ICON_ARROW_6', 'MI_ICON_ARROW_7',
-            'MI_ICON_ARROW_8', 'MI_ICON_ARROW_9', 'MI_ICON_CLIP_MODE',
-            'MI_ICON_CLIP_REGION', 'MI_ICON_CLOSE_ALL',
-            'MI_ICON_COMMUNICATION_1', 'MI_ICON_COMMUNICATION_10',
-            'MI_ICON_COMMUNICATION_11', 'MI_ICON_COMMUNICATION_12',
-            'MI_ICON_COMMUNICATION_2', 'MI_ICON_COMMUNICATION_3',
-            'MI_ICON_COMMUNICATION_4', 'MI_ICON_COMMUNICATION_5',
-            'MI_ICON_COMMUNICATION_6', 'MI_ICON_COMMUNICATION_7',
-            'MI_ICON_COMMUNICATION_8', 'MI_ICON_COMMUNICATION_9',
-            'MI_ICON_COMPASS_CIRCLE_TA', 'MI_ICON_COMPASS_CONTRACT',
-            'MI_ICON_COMPASS_EXPAND', 'MI_ICON_COMPASS_POLY_TA',
-            'MI_ICON_COMPASS_TAG', 'MI_ICON_COMPASS_UNTAG', 'MI_ICON_COPY',
-            'MI_ICON_CROSSHAIR', 'MI_ICON_CUT', 'MI_ICON_DISTRICT_MANY',
-            'MI_ICON_DISTRICT_SAME', 'MI_ICON_DRAG_HANDLE', 'MI_ICON_ELLIPSE',
-            'MI_ICON_EMERGENCY_1', 'MI_ICON_EMERGENCY_10',
-            'MI_ICON_EMERGENCY_11', 'MI_ICON_EMERGENCY_12',
-            'MI_ICON_EMERGENCY_13', 'MI_ICON_EMERGENCY_14',
-            'MI_ICON_EMERGENCY_15', 'MI_ICON_EMERGENCY_16',
-            'MI_ICON_EMERGENCY_17', 'MI_ICON_EMERGENCY_18',
-            'MI_ICON_EMERGENCY_2', 'MI_ICON_EMERGENCY_3',
-            'MI_ICON_EMERGENCY_4', 'MI_ICON_EMERGENCY_5',
-            'MI_ICON_EMERGENCY_6', 'MI_ICON_EMERGENCY_7',
-            'MI_ICON_EMERGENCY_8', 'MI_ICON_EMERGENCY_9', 'MI_ICON_GRABBER',
-            'MI_ICON_GRAPH_SELECT', 'MI_ICON_HELP', 'MI_ICON_HOT_LINK',
-            'MI_ICON_INFO', 'MI_ICON_INVERTSELECT', 'MI_ICON_LABEL',
-            'MI_ICON_LAYERS', 'MI_ICON_LEGEND', 'MI_ICON_LETTERS_A',
-            'MI_ICON_LETTERS_B', 'MI_ICON_LETTERS_C', 'MI_ICON_LETTERS_D',
-            'MI_ICON_LETTERS_E', 'MI_ICON_LETTERS_F', 'MI_ICON_LETTERS_G',
-            'MI_ICON_LETTERS_H', 'MI_ICON_LETTERS_I', 'MI_ICON_LETTERS_J',
-            'MI_ICON_LETTERS_K', 'MI_ICON_LETTERS_L', 'MI_ICON_LETTERS_M',
-            'MI_ICON_LETTERS_N', 'MI_ICON_LETTERS_O', 'MI_ICON_LETTERS_P',
-            'MI_ICON_LETTERS_Q', 'MI_ICON_LETTERS_R', 'MI_ICON_LETTERS_S',
-            'MI_ICON_LETTERS_T', 'MI_ICON_LETTERS_U', 'MI_ICON_LETTERS_V',
-            'MI_ICON_LETTERS_W', 'MI_ICON_LETTERS_X', 'MI_ICON_LETTERS_Y',
-            'MI_ICON_LETTERS_Z', 'MI_ICON_LINE', 'MI_ICON_LINE_STYLE',
-            'MI_ICON_MAPSYMB_1', 'MI_ICON_MAPSYMB_10', 'MI_ICON_MAPSYMB_11',
-            'MI_ICON_MAPSYMB_12', 'MI_ICON_MAPSYMB_13', 'MI_ICON_MAPSYMB_14',
-            'MI_ICON_MAPSYMB_15', 'MI_ICON_MAPSYMB_16', 'MI_ICON_MAPSYMB_17',
-            'MI_ICON_MAPSYMB_18', 'MI_ICON_MAPSYMB_19', 'MI_ICON_MAPSYMB_2',
-            'MI_ICON_MAPSYMB_20', 'MI_ICON_MAPSYMB_21', 'MI_ICON_MAPSYMB_22',
-            'MI_ICON_MAPSYMB_23', 'MI_ICON_MAPSYMB_24', 'MI_ICON_MAPSYMB_25',
-            'MI_ICON_MAPSYMB_26', 'MI_ICON_MAPSYMB_3', 'MI_ICON_MAPSYMB_4',
-            'MI_ICON_MAPSYMB_5', 'MI_ICON_MAPSYMB_6', 'MI_ICON_MAPSYMB_7',
-            'MI_ICON_MAPSYMB_8', 'MI_ICON_MAPSYMB_9', 'MI_ICON_MARITIME_1',
-            'MI_ICON_MARITIME_10', 'MI_ICON_MARITIME_2', 'MI_ICON_MARITIME_3',
-            'MI_ICON_MARITIME_4', 'MI_ICON_MARITIME_5', 'MI_ICON_MARITIME_6',
-            'MI_ICON_MARITIME_7', 'MI_ICON_MARITIME_8', 'MI_ICON_MARITIME_9',
-            'MI_ICON_MB_1', 'MI_ICON_MB_10', 'MI_ICON_MB_11', 'MI_ICON_MB_12',
-            'MI_ICON_MB_13', 'MI_ICON_MB_14', 'MI_ICON_MB_2', 'MI_ICON_MB_3',
-            'MI_ICON_MB_4', 'MI_ICON_MB_5', 'MI_ICON_MB_6', 'MI_ICON_MB_7',
-            'MI_ICON_MB_8', 'MI_ICON_MB_9', 'MI_ICON_MISC_1',
-            'MI_ICON_MISC_10', 'MI_ICON_MISC_11', 'MI_ICON_MISC_12',
-            'MI_ICON_MISC_13', 'MI_ICON_MISC_14', 'MI_ICON_MISC_15',
-            'MI_ICON_MISC_16', 'MI_ICON_MISC_17', 'MI_ICON_MISC_18',
-            'MI_ICON_MISC_19', 'MI_ICON_MISC_2', 'MI_ICON_MISC_20',
-            'MI_ICON_MISC_21', 'MI_ICON_MISC_22', 'MI_ICON_MISC_23',
-            'MI_ICON_MISC_24', 'MI_ICON_MISC_25', 'MI_ICON_MISC_26',
-            'MI_ICON_MISC_27', 'MI_ICON_MISC_28', 'MI_ICON_MISC_29',
-            'MI_ICON_MISC_3', 'MI_ICON_MISC_30', 'MI_ICON_MISC_31',
-            'MI_ICON_MISC_4', 'MI_ICON_MISC_5', 'MI_ICON_MISC_6',
-            'MI_ICON_MISC_7', 'MI_ICON_MISC_8', 'MI_ICON_MISC_9',
-            'MI_ICON_NEW_DOC', 'MI_ICON_NUMBERS_1', 'MI_ICON_NUMBERS_10',
-            'MI_ICON_NUMBERS_11', 'MI_ICON_NUMBERS_12', 'MI_ICON_NUMBERS_13',
-            'MI_ICON_NUMBERS_14', 'MI_ICON_NUMBERS_15', 'MI_ICON_NUMBERS_16',
-            'MI_ICON_NUMBERS_17', 'MI_ICON_NUMBERS_18', 'MI_ICON_NUMBERS_19',
-            'MI_ICON_NUMBERS_2', 'MI_ICON_NUMBERS_20', 'MI_ICON_NUMBERS_21',
-            'MI_ICON_NUMBERS_22', 'MI_ICON_NUMBERS_23', 'MI_ICON_NUMBERS_24',
-            'MI_ICON_NUMBERS_25', 'MI_ICON_NUMBERS_26', 'MI_ICON_NUMBERS_27',
-            'MI_ICON_NUMBERS_28', 'MI_ICON_NUMBERS_29', 'MI_ICON_NUMBERS_3',
-            'MI_ICON_NUMBERS_30', 'MI_ICON_NUMBERS_31', 'MI_ICON_NUMBERS_32',
-            'MI_ICON_NUMBERS_4', 'MI_ICON_NUMBERS_5', 'MI_ICON_NUMBERS_6',
-            'MI_ICON_NUMBERS_7', 'MI_ICON_NUMBERS_8', 'MI_ICON_NUMBERS_9',
-            'MI_ICON_ODBC_DISCONNECT', 'MI_ICON_ODBC_MAPPABLE',
-            'MI_ICON_ODBC_OPEN', 'MI_ICON_ODBC_REFRESH', 'MI_ICON_ODBC_SYMBOL',
-            'MI_ICON_ODBC_UNLINK', 'MI_ICON_OPEN_FILE', 'MI_ICON_OPEN_WOR',
-            'MI_ICON_OPENWFS', 'MI_ICON_OPENWMS', 'MI_ICON_PASTE',
-            'MI_ICON_POLYGON', 'MI_ICON_POLYLINE', 'MI_ICON_PRINT',
-            'MI_ICON_REALESTATE_1', 'MI_ICON_REALESTATE_10',
-            'MI_ICON_REALESTATE_11', 'MI_ICON_REALESTATE_12',
-            'MI_ICON_REALESTATE_13', 'MI_ICON_REALESTATE_14',
-            'MI_ICON_REALESTATE_15', 'MI_ICON_REALESTATE_16',
-            'MI_ICON_REALESTATE_17', 'MI_ICON_REALESTATE_18',
-            'MI_ICON_REALESTATE_19', 'MI_ICON_REALESTATE_2',
-            'MI_ICON_REALESTATE_20', 'MI_ICON_REALESTATE_21',
-            'MI_ICON_REALESTATE_22', 'MI_ICON_REALESTATE_23',
-            'MI_ICON_REALESTATE_3', 'MI_ICON_REALESTATE_4',
-            'MI_ICON_REALESTATE_5', 'MI_ICON_REALESTATE_6',
-            'MI_ICON_REALESTATE_7', 'MI_ICON_REALESTATE_8',
-            'MI_ICON_REALESTATE_9', 'MI_ICON_RECT', 'MI_ICON_REGION_STYLE',
-            'MI_ICON_RESHAPE', 'MI_ICON_ROUND_RECT', 'MI_ICON_RULER',
-            'MI_ICON_RUN', 'MI_ICON_SAVE_FILE', 'MI_ICON_SAVE_WIN',
-            'MI_ICON_SAVE_WOR', 'MI_ICON_SEARCH_BDY', 'MI_ICON_SEARCH_POLYGON',
-            'MI_ICON_SEARCH_RADIUS', 'MI_ICON_SEARCH_RECT', 'MI_ICON_SIGNS_1',
-            'MI_ICON_SIGNS_10', 'MI_ICON_SIGNS_11', 'MI_ICON_SIGNS_12',
-            'MI_ICON_SIGNS_13', 'MI_ICON_SIGNS_14', 'MI_ICON_SIGNS_15',
-            'MI_ICON_SIGNS_16', 'MI_ICON_SIGNS_17', 'MI_ICON_SIGNS_18',
-            'MI_ICON_SIGNS_19', 'MI_ICON_SIGNS_2', 'MI_ICON_SIGNS_3',
-            'MI_ICON_SIGNS_4', 'MI_ICON_SIGNS_5', 'MI_ICON_SIGNS_6',
-            'MI_ICON_SIGNS_7', 'MI_ICON_SIGNS_8', 'MI_ICON_SIGNS_9',
-            'MI_ICON_STATISTICS', 'MI_ICON_SYMBOL', 'MI_ICON_SYMBOL_STYLE',
-            'MI_ICON_TEXT', 'MI_ICON_TEXT_STYLE', 'MI_ICON_TRANSPORT_1',
-            'MI_ICON_TRANSPORT_10', 'MI_ICON_TRANSPORT_11',
-            'MI_ICON_TRANSPORT_12', 'MI_ICON_TRANSPORT_13',
-            'MI_ICON_TRANSPORT_14', 'MI_ICON_TRANSPORT_15',
-            'MI_ICON_TRANSPORT_16', 'MI_ICON_TRANSPORT_17',
-            'MI_ICON_TRANSPORT_18', 'MI_ICON_TRANSPORT_19',
-            'MI_ICON_TRANSPORT_2', 'MI_ICON_TRANSPORT_20',
-            'MI_ICON_TRANSPORT_21', 'MI_ICON_TRANSPORT_22',
-            'MI_ICON_TRANSPORT_23', 'MI_ICON_TRANSPORT_24',
-            'MI_ICON_TRANSPORT_25', 'MI_ICON_TRANSPORT_26',
-            'MI_ICON_TRANSPORT_27', 'MI_ICON_TRANSPORT_3',
-            'MI_ICON_TRANSPORT_4', 'MI_ICON_TRANSPORT_5',
-            'MI_ICON_TRANSPORT_6', 'MI_ICON_TRANSPORT_7',
-            'MI_ICON_TRANSPORT_8', 'MI_ICON_TRANSPORT_9', 'MI_ICON_UNDO',
-            'MI_ICON_UNSELECT_ALL', 'MI_ICON_WINDOW_FRAME', 'MI_ICON_WRENCH',
-            'MI_ICON_ZOOM_IN', 'MI_ICON_ZOOM_OUT', 'MI_ICON_ZOOM_QUESTION',
-            'MI_ICONS_MAPS_1', 'MI_ICONS_MAPS_10', 'MI_ICONS_MAPS_11',
-            'MI_ICONS_MAPS_12', 'MI_ICONS_MAPS_13', 'MI_ICONS_MAPS_14',
-            'MI_ICONS_MAPS_15', 'MI_ICONS_MAPS_2', 'MI_ICONS_MAPS_3',
-            'MI_ICONS_MAPS_4', 'MI_ICONS_MAPS_5', 'MI_ICONS_MAPS_6',
-            'MI_ICONS_MAPS_7', 'MI_ICONS_MAPS_8', 'MI_ICONS_MAPS_9',
-            'MIPLATFORM_HP', 'MIPLATFORM_MAC68K', 'MIPLATFORM_POWERMAC',
-            'MIPLATFORM_SPECIAL', 'MIPLATFORM_SUN', 'MIPLATFORM_WIN16',
-            'MIPLATFORM_WIN32', 'MODE_APPEND', 'MODE_BINARY', 'MODE_INPUT',
-            'MODE_OUTPUT', 'MODE_RANDOM', 'OBJ_ARC', 'OBJ_ELLIPSE',
-            'OBJ_FRAME', 'OBJ_GEO_ARCBEGANGLE', 'OBJ_GEO_ARCENDANGLE',
-            'OBJ_GEO_CENTROID', 'OBJ_GEO_LINEBEGX', 'OBJ_GEO_LINEBEGY',
-            'OBJ_GEO_LINEENDX', 'OBJ_GEO_LINEENDY', 'OBJ_GEO_MAXX',
-            'OBJ_GEO_MAXY', 'OBJ_GEO_MINX', 'OBJ_GEO_MINY', 'OBJ_GEO_POINTM',
-            'OBJ_GEO_POINTX', 'OBJ_GEO_POINTY', 'OBJ_GEO_POINTZ',
-            'OBJ_GEO_ROUNDRADIUS', 'OBJ_GEO_TEXTANGLE', 'OBJ_GEO_TEXTLINEX',
-            'OBJ_GEO_TEXTLINEY', 'OBJ_INFO_BRUSH', 'OBJ_INFO_FILLFRAME',
-            'OBJ_INFO_FRAMETITLE', 'OBJ_INFO_FRAMEWIN', 'OBJ_INFO_HAS_M',
-            'OBJ_INFO_HAS_Z', 'OBJ_INFO_MPOINT', 'OBJ_INFO_NONEMPTY',
-            'OBJ_INFO_NPNTS', 'OBJ_INFO_NPOLYGONS', 'OBJ_INFO_PEN',
-            'OBJ_INFO_PLINE', 'OBJ_INFO_REGION', 'OBJ_INFO_SMOOTH',
-            'OBJ_INFO_SYMBOL', 'OBJ_INFO_TEXTARROW', 'OBJ_INFO_TEXTFONT',
-            'OBJ_INFO_TEXTJUSTIFY', 'OBJ_INFO_TEXTSPACING',
-            'OBJ_INFO_TEXTSTRING', 'OBJ_INFO_TYPE', 'OBJ_INFO_Z_UNIT',
-            'OBJ_INFO_Z_UNIT_SET', 'OBJ_LINE', 'OBJ_PLINE', 'OBJ_POINT',
-            'OBJ_RECT', 'OBJ_REGION', 'OBJ_ROUNDRECT', 'OBJ_TEXT',
-            'OBJ_TYPE_ARC', 'OBJ_TYPE_COLLECTION', 'OBJ_TYPE_ELLIPSE',
-            'OBJ_TYPE_FRAME', 'OBJ_TYPE_LINE', 'OBJ_TYPE_MPOINT',
-            'OBJ_TYPE_PLINE', 'OBJ_TYPE_POINT', 'OBJ_TYPE_RECT',
-            'OBJ_TYPE_REGION', 'OBJ_TYPE_ROUNDRECT', 'OBJ_TYPE_TEXT',
-            'ORIENTATION_CUSTOM', 'ORIENTATION_LANDSCAPE',
-            'ORIENTATION_PORTRAIT', 'PEN_COLOR', 'PEN_INDEX',
-            'PEN_INTERLEAVED', 'PEN_PATTERN', 'PEN_WIDTH', 'PLATFORM_MAC',
-            'PLATFORM_MOTIF', 'PLATFORM_SPECIAL', 'PLATFORM_WIN',
-            'PLATFORM_X11', 'PLATFORM_XOL', 'PRISMMAP_INFO_BACKGROUND',
-            'PRISMMAP_INFO_CAMERA_CLIP_FAR', 'PRISMMAP_INFO_CAMERA_CLIP_NEAR',
-            'PRISMMAP_INFO_CAMERA_FOCAL_X', 'PRISMMAP_INFO_CAMERA_FOCAL_Y',
-            'PRISMMAP_INFO_CAMERA_FOCAL_Z', 'PRISMMAP_INFO_CAMERA_VPN_1',
-            'PRISMMAP_INFO_CAMERA_VPN_2', 'PRISMMAP_INFO_CAMERA_VPN_3',
-            'PRISMMAP_INFO_CAMERA_VU_1', 'PRISMMAP_INFO_CAMERA_VU_2',
-            'PRISMMAP_INFO_CAMERA_VU_3', 'PRISMMAP_INFO_CAMERA_X',
-            'PRISMMAP_INFO_CAMERA_Y', 'PRISMMAP_INFO_CAMERA_Z',
-            'PRISMMAP_INFO_INFOTIP_EXPR', 'PRISMMAP_INFO_LIGHT_COLOR',
-            'PRISMMAP_INFO_LIGHT_X', 'PRISMMAP_INFO_LIGHT_Y',
-            'PRISMMAP_INFO_LIGHT_Z', 'PRISMMAP_INFO_SCALE', 'RAD_2_DEG',
-            'RASTER_CONTROL_POINT_X', 'RASTER_CONTROL_POINT_Y',
-            'RASTER_TAB_INFO_ALPHA', 'RASTER_TAB_INFO_BITS_PER_PIXEL',
-            'RASTER_TAB_INFO_BRIGHTNESS', 'RASTER_TAB_INFO_CONTRAST',
-            'RASTER_TAB_INFO_DISPLAY_TRANSPARENT', 'RASTER_TAB_INFO_GREYSCALE',
-            'RASTER_TAB_INFO_HEIGHT', 'RASTER_TAB_INFO_IMAGE_CLASS',
-            'RASTER_TAB_INFO_IMAGE_NAME', 'RASTER_TAB_INFO_IMAGE_TYPE',
-            'RASTER_TAB_INFO_NUM_CONTROL_POINTS',
-            'RASTER_TAB_INFO_TRANSPARENT_COLOR', 'RASTER_TAB_INFO_WIDTH',
-            'RED', 'REGION_INFO_IS_CLOCKWISE', 'SEARCH_INFO_ROW',
-            'SEARCH_INFO_TABLE', 'SECONDS_PER_DAY', 'SEL_INFO_NROWS',
-            'SEL_INFO_SELNAME', 'SEL_INFO_TABLENAME',
-            'SESSION_INFO_AREA_UNITS', 'SESSION_INFO_COORDSYS_CLAUSE',
-            'SESSION_INFO_DISTANCE_UNITS', 'SESSION_INFO_PAPER_UNITS',
-            'SRV_COL_INFO_ALIAS', 'SRV_COL_INFO_NAME',
-            'SRV_COL_INFO_PRECISION', 'SRV_COL_INFO_SCALE',
-            'SRV_COL_INFO_STATUS', 'SRV_COL_INFO_TYPE', 'SRV_COL_INFO_VALUE',
-            'SRV_COL_INFO_WIDTH', 'SRV_COL_TYPE_BIN_STRING',
-            'SRV_COL_TYPE_CHAR', 'SRV_COL_TYPE_DATE', 'SRV_COL_TYPE_DECIMAL',
-            'SRV_COL_TYPE_FIXED_LEN_STRING', 'SRV_COL_TYPE_FLOAT',
-            'SRV_COL_TYPE_INTEGER', 'SRV_COL_TYPE_LOGICAL',
-            'SRV_COL_TYPE_NONE', 'SRV_COL_TYPE_SMALLINT',
-            'SRV_CONNECT_INFO_DB_NAME', 'SRV_CONNECT_INFO_DRIVER_NAME',
-            'SRV_CONNECT_INFO_DS_NAME', 'SRV_CONNECT_INFO_QUOTE_CHAR',
-            'SRV_CONNECT_INFO_SQL_USER_ID', 'SRV_DRV_DATA_SOURCE',
-            'SRV_DRV_INFO_NAME', 'SRV_DRV_INFO_NAME_LIST', 'SRV_ERROR',
-            'SRV_FETCH_FIRST', 'SRV_FETCH_LAST', 'SRV_FETCH_NEXT',
-            'SRV_FETCH_PREV', 'SRV_INVALID_HANDLE', 'SRV_NEED_DATA',
-            'SRV_NO_MORE_DATA', 'SRV_NULL_DATA', 'SRV_SUCCESS',
-            'SRV_SUCCESS_WITH_INFO', 'SRV_TRUNCATED_DATA',
-            'SRV_WM_HIST_NO_OVERWRITE', 'SRV_WM_HIST_NONE',
-            'SRV_WM_HIST_OVERWRITE', 'STR_EQ', 'STR_GT', 'STR_LT',
-            'STYLE_SAMPLE_SIZE_LARGE', 'STYLE_SAMPLE_SIZE_SMALL',
-            'SWITCHING_INTO_MAPINFO', 'SWITCHING_OUT_OF_MAPINFO',
-            'SYMBOL_ANGLE', 'SYMBOL_CODE', 'SYMBOL_COLOR',
-            'SYMBOL_CUSTOM_NAME', 'SYMBOL_CUSTOM_STYLE', 'SYMBOL_FONT_NAME',
-            'SYMBOL_FONT_STYLE', 'SYMBOL_KIND', 'SYMBOL_KIND_CUSTOM',
-            'SYMBOL_KIND_FONT', 'SYMBOL_KIND_VECTOR', 'SYMBOL_POINTSIZE',
-            'SYS_INFO_APPIDISPATCH', 'SYS_INFO_APPLICATIONWND',
-            'SYS_INFO_APPVERSION', 'SYS_INFO_CHARSET',
-            'SYS_INFO_COPYPROTECTED', 'SYS_INFO_DATE_FORMAT',
-            'SYS_INFO_DDESTATUS', 'SYS_INFO_DIG_INSTALLED',
-            'SYS_INFO_DIG_MODE', 'SYS_INFO_MAPINFOWND',
-            'SYS_INFO_MDICLIENTWND', 'SYS_INFO_MIBUILD_NUMBER',
-            'SYS_INFO_MIPLATFORM', 'SYS_INFO_MIVERSION',
-            'SYS_INFO_NUMBER_FORMAT', 'SYS_INFO_PLATFORM',
-            'SYS_INFO_PRODUCTLEVEL', 'SYS_INFO_RUNTIME',
-            'TAB_GEO_CONTROL_POINT_X', 'TAB_GEO_CONTROL_POINT_Y',
-            'TAB_INFO_BROWSER_LIST', 'TAB_INFO_COORDSYS_CLAUSE',
-            'TAB_INFO_COORDSYS_CLAUSE_WITHOUT_BOUNDS',
-            'TAB_INFO_COORDSYS_MAXX', 'TAB_INFO_COORDSYS_MAXY',
-            'TAB_INFO_COORDSYS_MINX', 'TAB_INFO_COORDSYS_MINY',
-            'TAB_INFO_COORDSYS_NAME', 'TAB_INFO_EDITED', 'TAB_INFO_FASTEDIT',
-            'TAB_INFO_MAPPABLE', 'TAB_INFO_MAPPABLE_TABLE', 'TAB_INFO_MAXX',
-            'TAB_INFO_MAXY', 'TAB_INFO_MINX', 'TAB_INFO_MINY', 'TAB_INFO_NAME',
-            'TAB_INFO_NCOLS', 'TAB_INFO_NREFS', 'TAB_INFO_NROWS',
-            'TAB_INFO_NUM', 'TAB_INFO_READONLY', 'TAB_INFO_SEAMLESS',
-            'TAB_INFO_SUPPORT_MZ', 'TAB_INFO_TABFILE', 'TAB_INFO_TEMP',
-            'TAB_INFO_THEME_METADATA', 'TAB_INFO_TYPE', 'TAB_INFO_UNDO',
-            'TAB_INFO_USERBROWSE', 'TAB_INFO_USERCLOSE',
-            'TAB_INFO_USERDISPLAYMAP', 'TAB_INFO_USEREDITABLE',
-            'TAB_INFO_USERMAP', 'TAB_INFO_USERREMOVEMAP', 'TAB_INFO_Z_UNIT',
-            'TAB_INFO_Z_UNIT_SET', 'TAB_TYPE_BASE', 'TAB_TYPE_FME',
-            'TAB_TYPE_IMAGE', 'TAB_TYPE_LINKED', 'TAB_TYPE_RESULT',
-            'TAB_TYPE_VIEW', 'TAB_TYPE_WFS', 'TAB_TYPE_WMS', 'TRUE', 'WHITE',
-            'WIN_3DMAP', 'WIN_BROWSER', 'WIN_BUTTONPAD', 'WIN_CART_LEGEND',
-            'WIN_GRAPH', 'WIN_HELP', 'WIN_INFO', 'WIN_INFO_AUTOSCROLL',
-            'WIN_INFO_CLONEWINDOW', 'WIN_INFO_ENHANCED_RENDERING',
-            'WIN_INFO_EXPORT_ANTIALIASING', 'WIN_INFO_EXPORT_BORDER',
-            'WIN_INFO_EXPORT_DITHER', 'WIN_INFO_EXPORT_FILTER',
-            'WIN_INFO_EXPORT_MASKSIZE', 'WIN_INFO_EXPORT_THRESHOLD',
-            'WIN_INFO_EXPORT_TRANSPRASTER', 'WIN_INFO_EXPORT_TRANSPVECTOR',
-            'WIN_INFO_EXPORT_TRUECOLOR', 'WIN_INFO_HEIGHT',
-            'WIN_INFO_LEGENDS_MAP', 'WIN_INFO_NAME', 'WIN_INFO_OPEN',
-            'WIN_INFO_PRINTER_BORDER', 'WIN_INFO_PRINTER_BOTTOMMARGIN',
-            'WIN_INFO_PRINTER_COPIES', 'WIN_INFO_PRINTER_DITHER',
-            'WIN_INFO_PRINTER_LEFTMARGIN', 'WIN_INFO_PRINTER_METHOD',
-            'WIN_INFO_PRINTER_NAME', 'WIN_INFO_PRINTER_ORIENT',
-            'WIN_INFO_PRINTER_PAPERSIZE', 'WIN_INFO_PRINTER_RIGHTMARGIN',
-            'WIN_INFO_PRINTER_SCALE_PATTERNS', 'WIN_INFO_PRINTER_TOPMARGIN',
-            'WIN_INFO_PRINTER_TRANSPRASTER', 'WIN_INFO_PRINTER_TRANSPVECTOR',
-            'WIN_INFO_PRINTER_TRUECOLOR', 'WIN_INFO_SMARTPAN',
-            'WIN_INFO_SMOOTH_IMAGE', 'WIN_INFO_SMOOTH_TEXT',
-            'WIN_INFO_SMOOTH_VECTOR', 'WIN_INFO_SNAPMODE',
-            'WIN_INFO_SNAPTHRESHOLD', 'WIN_INFO_STATE',
-            'WIN_INFO_SYSMENUCLOSE', 'WIN_INFO_TABLE', 'WIN_INFO_TOPMOST',
-            'WIN_INFO_TYPE', 'WIN_INFO_WIDTH', 'WIN_INFO_WINDOWID',
-            'WIN_INFO_WND', 'WIN_INFO_WORKSPACE', 'WIN_INFO_X', 'WIN_INFO_Y',
-            'WIN_LAYOUT', 'WIN_LEGEND', 'WIN_MAPBASIC', 'WIN_MAPINFO',
-            'WIN_MAPPER', 'WIN_MESSAGE', 'WIN_PENPICKER',
-            'WIN_PRINTER_LANDSCAPE', 'WIN_PRINTER_PORTRAIT', 'WIN_RULER',
-            'WIN_STATE_MAXIMIZED', 'WIN_STATE_MINIMIZED', 'WIN_STATE_NORMAL',
-            'WIN_STATISTICS', 'WIN_STYLE_CHILD', 'WIN_STYLE_POPUP',
-            'WIN_STYLE_POPUP_FULLCAPTION', 'WIN_STYLE_STANDARD',
-            'WIN_SYMBOLPICKER', 'WIN_TOOLBAR', 'WIN_TOOLPICKER', 'YELLOW'
-            ),
-        5 => array(
-            'Abbrs', 'Above', 'Access', 'Active', 'Address', 'Advanced',
-            'Affine', 'Align', 'Alpha', 'alpha_value', 'Always', 'Angle',
-            'Animate', 'Antialiasing', 'Append', 'Apply', 'ApplyUpdates',
-            'Arrow', 'Ascending', 'ASCII', 'At', 'AttributeData', 'Auto',
-            'Autoflip', 'Autokey', 'Automatic', 'Autoscroll', 'Axis',
-            'Background', 'Banding', 'Batch', 'Behind', 'Below', 'Bend',
-            'Binary', 'Blocks', 'Border', 'BorderPen', 'Bottom', 'Bounds',
-            'ByteOrder', 'ByVal', 'Calling', 'Camera', 'Candidates',
-            'Cartesian', 'Cell', 'Center', 'Change', 'Char', 'Circle',
-            'Clipping', 'CloseMatchesOnly', 'ClosestAddr', 'Color', 'Columns',
-            'Contents', 'ControlPoints', 'Copies', 'Copyright', 'Counter',
-            'Country', 'CountrySecondarySubdivision', 'CountrySubdivision',
-            'Cross', 'CubicConvolution', 'Cull', 'Cursor', 'Custom', 'Data',
-            'DBF', 'DDE', 'Decimal', 'DecimalPlaces', 'DefaultAmbientSpeed',
-            'DefaultPropagationFactor', 'DeformatNumber', 'Delimiter',
-            'Density', 'DenyWrite', 'Descending', 'Destroy', 'Device',
-            'Dictionary', 'DInfo', 'Disable', 'DiscardUpdates', 'Display',
-            'Dither', 'DrawMode', 'DropKey', 'Droplines', 'Duplicates',
-            'Dynamic', 'Earth', 'East', 'EditLayerPopup', 'Elevation', 'Else',
-            'ElseIf', 'Emf', 'Enable', 'Envinsa', 'ErrorDiffusion', 'Extents',
-            'Fallback', 'FastEdit', 'FillFrame', 'Filter', 'First', 'Fit',
-            'Fixed', 'FocalPoint', 'Footnote', 'Force', 'FromMapCatalog',
-            'Front', 'Gap', 'Geographic', 'Geography', 'Graduated', 'Graphic',
-            'Gutter', 'Half', 'Halftone', 'Handles', 'Height', 'Help',
-            'HelpMsg', 'Hide', 'Hierarchical', 'HIGHLOW', 'History', 'Icon',
-            'ID', 'Ignore', 'Image', 'Inflect', 'Inset', 'Inside',
-            'Interactive', 'Internal', 'Interpolate', 'IntersectingStreet',
-            'Justify', 'Key', 'Label', 'Labels', 'Landscape', 'Large', 'Last',
-            'Layer', 'Left', 'Lib', 'Light', 'LinePen', 'Lines', 'Linestyle',
-            'Longitude', 'LOWHIGH', 'Major', 'MajorPolygonOnly',
-            'MajorRoadsOnly', 'MapBounds', 'MapMarker', 'MapString', 'Margins',
-            'MarkMultiple', 'MaskSize', 'Match', 'MaxOffRoadDistance',
-            'Message', 'MICODE', 'Minor', 'MixedCase', 'Mode', 'ModifierKeys',
-            'Modify', 'Multiple', 'MultiPolygonRgns', 'Municipality',
-            'MunicipalitySubdivision', 'Name', 'NATIVE', 'NearestNeighbor',
-            'NoCollision', 'Node', 'Nodes', 'NoIndex', 'None', 'Nonearth',
-            'NoRefresh', 'Normalized', 'North', 'Number', 'ObjectType', 'ODBC',
-            'Off', 'OK', 'OLE', 'On', 'Options', 'Orientation', 'OtherBdy',
-            'Output', 'Outside', 'Overlapped', 'Overwrite', 'Pagebreaks',
-            'Pan', 'Papersize', 'Parent', 'PassThrough', 'Password',
-            'Patterns', 'Per', 'Percent', 'Percentage', 'Permanent',
-            'PersistentCache', 'Pie', 'Pitch', 'Placename', 'PointsOnly',
-            'PolyObj', 'Portrait', 'Position', 'PostalCode', 'Prefer',
-            'Preferences', 'Prev', 'Printer', 'Projection', 'PushButton',
-            'Quantile', 'Query', 'Random', 'Range', 'Raster', 'Read',
-            'ReadOnly', 'Rec', 'Redraw', 'Refine', 'Regionstyle', 'RemoveData',
-            'Replace', 'Reprojection', 'Resampling', 'Restore', 'ResultCode',
-            'ReturnHoles', 'Right', 'Roll', 'ROP', 'Rotated', 'Row', 'Ruler',
-            'Scale', 'ScrollBars', 'Seamless', 'SecondaryPostalCode',
-            'SelfInt', 'Separator', 'Series', 'Service', 'SetKey',
-            'SetTraverse', 'Shades', 'Show', 'Simple', 'SimplificationFactor',
-            'Size', 'Small', 'Smart', 'Smooth', 'South', 'Spacing',
-            'SPATIALWARE', 'Spherical', 'Square', 'Stacked', 'Step', 'Store',
-            'Street', 'StreetName', 'StreetNumber', 'StyleType', 'Subtitle',
-            'SysMenuClose', 'Thin', 'Tick', 'Title', 'TitleAxisY',
-            'TitleGroup', 'Titles', 'TitleSeries', 'ToggleButton', 'Tolerance',
-            'ToolbarPosition', 'ToolButton', 'Toolkit', 'Top', 'Translucency',
-            'translucency_percent', 'Transparency', 'Transparent', 'Traverse',
-            'TrueColor', 'Uncheck', 'Undo', 'Union', 'Unit', 'Until', 'URL',
-            'Use', 'User', 'UserBrowse', 'UserClose', 'UserDisplayMap',
-            'UserEdit', 'UserMap', 'UserRemoveMap', 'Value', 'Variable',
-            'Vary', 'Vector', 'Versioned', 'View', 'ViewDisplayPopup',
-            'VisibleOnly', 'VMDefault', 'VMGrid', 'VMRaster', 'Voronoi',
-            'Warnings', 'Wedge', 'West', 'Width', 'With', 'XY', 'XYINDEX',
-            'Yaw', 'Zoom'
-            )
-        ),
-    'SYMBOLS' => array(
-            //Numeric/String Operators + Comparison Operators
-            '(', ')', '[', ']', '+', '-', '*', '/', '\\', '^', '&',
-            '=', '<', '>'
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false,
-        2 => false,
-        3 => false,
-        4 => false,
-        5 => true
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #0000ff;',        //Statements + Clauses + Data Types + Logical Operators, Geographical Operators + SQL
-            2 => 'color: #2391af;',        //Special Procedures
-            3 => 'color: #2391af;',        //Functions
-            4 => 'color: #c635cb;',        //Constants
-            5 => 'color: #0000ff;'         //Extended keywords (case sensitive)
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #008000;',
-            'MULTI' => 'color: #008000;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #000000;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #a31515;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #000000;'
-            ),
-        'METHODS' => array(
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #000000;'
-            ),
-        'ESCAPE_CHAR' => array(
-            ),
-        'SCRIPT' => array(
-            ),
-        'REGEXPS' => array(
-            0 => 'color: #12198b;',            //Table Attributes
-            1 => 'color: #2391af;'             //Data Types
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => '',
-        4 => '',
-        5 => ''
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(
-        ),
-    'REGEXPS' => array(
-            //Table Attribute
-            0 => "[\\.]{1}[a-zA-Z0-9_]+",
-            //Data Type
-            1 => "(?xi) \\s+ as \\s+ (Alias|Brush|Date|Float|Font|Integer|Logical|Object|Pen|SmallInt|String|Symbol)"
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        ),
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/mathematica.php b/wiki/vendor/geshi/geshi/src/geshi/mathematica.php
deleted file mode 100644
index 77d8653..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/mathematica.php
+++ /dev/null
@@ -1,5035 +0,0 @@
-<?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/wiki/vendor/geshi/geshi/src/geshi/matlab.php b/wiki/vendor/geshi/geshi/src/geshi/matlab.php
deleted file mode 100644
index f6e8ee5..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/matlab.php
+++ /dev/null
@@ -1,225 +0,0 @@
-<?php
-/*************************************************************************************
- * matlab.php
- * -----------
- * Author: Florian Knorn (floz@gmx.de)
- * Copyright: (c) 2004 Florian Knorn (http://www.florian-knorn.com)
- * Release Version: 1.0.9.0
- * Date Started: 2005/02/09
- *
- * Matlab M-file language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2006-03-25 (1.0.7.22)
- *   - support for the transpose operator
- *   - many keywords added
- *   - links to the matlab documentation at mathworks
- *      by: Olivier Verdier (olivier.verdier@free.fr)
- * 2005/05/07 (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' => 'Matlab M',
-    'COMMENT_SINGLE' => array(1 => '%'),
-    'COMMENT_MULTI' => array(),
-    //Matlab Strings
-    'COMMENT_REGEXP' => array(
-        2 => "/(?<![\\w\\)\\]\\}\\.])('[^\\n']*?')/"
-        ),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array(),
-    'ESCAPE_CHAR' => '',
-    'KEYWORDS' => array(
-        1 => array(
-            'break', 'case', 'catch', 'continue', 'elseif', 'else', 'end', 'for',
-            'function', 'global', 'if', 'otherwise', 'persistent', 'return',
-            'switch', 'try', 'while'
-            ),
-        2 => array(
-            'all','any','exist','is','logical','mislocked',
-
-            'abs','acos','acosh','acot','acoth','acsc','acsch','airy','angle',
-            'ans','area','asec','asech','asin','asinh','atan','atan2','atanh',
-            'auread','autumn','auwrite','axes','axis','balance','bar','bar3',
-            'bar3h','barh','besselh','besseli','besselj','besselk','Bessely',
-            'beta','betainc','betaln','bicg','bicgstab','bin2dec','bitand',
-            'bitcmp','bitget','bitmax','bitor','bitset','bitshift','bitxor',
-            'blkdiag','bone','box','brighten','builtin','bwcontr','calendar',
-            'camdolly','camlight','camlookat','camorbit','campan','campos',
-            'camproj','camroll','camtarget','camup','camva','camzoom','capture',
-            'cart2pol','cart2sph','cat','caxis','cdf2rdf','ceil','cell',
-            'cell2struct','celldisp','cellfun','cellplot','cellstr','cgs',
-            'char','chol','cholinc','cholupdate','cla','clabel','class','clc',
-            'clf','clg','clock','close','colmmd','colorbar','colorcube',
-            'colordef','colormap','colperm','comet','comet3','compan','compass',
-            'complex','computer','cond','condeig','condest','coneplot','conj',
-            'contour','contourc','contourf','contourslice','contrast','conv',
-            'conv2','convhull','cool','copper','copyobj','corrcoef','cos',
-            'cosh','cot','coth','cov','cplxpair','cputime','cross','csc','csch',
-            'cumprod','cumsum','cumtrapz','cylinder','daspect','date','datenum',
-            'datestr','datetick','datevec','dbclear','dbcont','dbdown',
-            'dblquad','dbmex','dbquit','dbstack','dbstatus','dbstep','dbstop',
-            'dbtype','dbup','deblank','dec2bin','dec2hex','deconv','del2',
-            'delaunay','det','diag','dialog','diff','diffuse','dlmread',
-            'dlmwrite','dmperm','double','dragrect','drawnow','dsearch','eig',
-            'eigs','ellipj','ellipke','eomday','eps','erf','erfc','erfcx',
-            'erfiny','error','errorbar','errordlg','etime','eval','evalc',
-            'evalin','exp','expint','expm','eye','ezcontour','ezcontourf',
-            'ezmesh','ezmeshc','ezplot','ezplot3','ezpolar','ezsurf','ezsurfc',
-            'factor','factorial','fclose','feather','feof','ferror','feval',
-            'fft','fft2','fftshift','fgetl','fgets','fieldnames','figure',
-            'fill','fill3','filter','filter2','find','findfigs','findobj',
-            'findstr','fix','flag','flipdim','fliplr','flipud','floor','flops',
-            'fmin','fmins','fopen','fplot','fprintf','fread','frewind','fscanf',
-            'fseek','ftell','full','funm','fwrite','fzero','gallery','gamma',
-            'gammainc','gammaln','gca','gcbo','gcd','gcf','gco','get',
-            'getfield','ginput','gmres','gradient','gray','graymon','grid',
-            'griddata','gsvd','gtext','hadamard','hankel','hdf','helpdlg',
-            'hess','hex2dec','hex2num','hidden','hilb','hist','hold','hot',
-            'hsv','hsv2rgb','i','ifft','ifft2','ifftn','ifftshift','imag',
-            'image','imfinfo','imread','imwrite','ind2sub','Inf','inferiorto',
-            'inline','inpolygon','input','inputdlg','inputname','int16',
-            'int2str','int32','int8','interp1','interp2','interp3','interpft',
-            'interpn','intersect','inv','invhilb','ipermute','isa','ishandle',
-            'ismember','isocaps','isonormals','isosurface','j','jet','keyboard',
-            'lcm','legend','legendre','light','lighting','lightingangle',
-            'lin2mu','line','lines','linspace','listdlg','loadobj','log',
-            'log10','log2','loglog','logm','logspace','lower','lscov','lu',
-            'luinc','magic','mat2str','material','max','mean','median','menu',
-            'menuedit','mesh','meshc','meshgrid','min','mod','msgbox','mu2lin',
-            'NaN','nargchk','nargin','nargout','nchoosek','ndgrid','ndims',
-            'newplot','nextpow2','nnls','nnz','nonzeros','norm','normest','now',
-            'null','num2cell','num2str','nzmax','ode113,','ode15s,','ode23s,',
-            'ode23t,','ode23tb','ode45,','odefile','odeget','odeset','ones',
-            'orient','orth','pagedlg','pareto','pascal','patch','pause',
-            'pbaspect','pcg','pcolor','peaks','perms','permute','pi','pie',
-            'pie3','pinv','plot','plot3','plotmatrix','plotyy','pol2cart',
-            'polar','poly','polyarea','polyder','polyeig','polyfit','polyval',
-            'polyvalm','pow2','primes','print','printdlg','printopt','prism',
-            'prod','propedit','qmr','qr','qrdelete','qrinsert','qrupdate',
-            'quad','questdlg','quiver','quiver3','qz','rand','randn','randperm',
-            'rank','rat','rats','rbbox','rcond','real','realmax','realmin',
-            'rectangle','reducepatch','reducevolume','refresh','rem','repmat',
-            'reset','reshape','residue','rgb2hsv','rgbplot','ribbon','rmfield',
-            'roots','rose','rot90','rotate','rotate3d','round','rref',
-            'rrefmovie','rsf2csf','saveobj','scatter','scatter3','schur',
-            'script','sec','sech','selectmoveresize','semilogx','semilogy',
-            'set','setdiff','setfield','setxor','shading','shg','shiftdim',
-            'shrinkfaces','sign','sin','single','sinh','slice','smooth3','sort',
-            'sortrows','sound','soundsc','spalloc','sparse','spconvert',
-            'spdiags','specular','speye','spfun','sph2cart','sphere','spinmap',
-            'spline','spones','spparms','sprand','sprandn','sprandsym','spring',
-            'sprintf','sqrt','sqrtm','squeeze','sscanf','stairs','std','stem',
-            'stem3','str2double','str2num','strcat','strcmp','strcmpi',
-            'stream2','stream3','streamline','strings','strjust','strmatch',
-            'strncmp','strrep','strtok','struct','struct2cell','strvcat',
-            'sub2ind','subplot','subspace','subvolume','sum','summer',
-            'superiorto','surf','surf2patch','surface','surfc','surfl',
-            'surfnorm','svd','svds','symmmd','symrcm','symvar','tan','tanh',
-            'texlabel','text Create','textread','textwrap','tic','title','toc',
-            'toeplitz','trace','trapz','tril','trimesh','trisurf','triu',
-            'tsearch','uicontext Create','uicontextmenu','uicontrol',
-            'uigetfile','uimenu','uint32','uint8','uiputfile','uiresume',
-            'uisetcolor','uisetfont','uiwait Used','union','unique','unwrap',
-            'upper','var','varargin','varargout','vectorize','view','viewmtx',
-            'voronoi','waitbar','waitforbuttonpress','warndlg','warning',
-            'waterfall','wavread','wavwrite','weekday','whitebg','wilkinson',
-            'winter','wk1read','wk1write','xlabel','xlim','ylabel','ylim',
-            'zeros','zlabel','zlim','zoom',
-            //'[Keywords 6]',
-            'addpath','cd','clear','copyfile','delete','diary','dir','disp',
-            'doc','docopt','echo','edit','fileparts','format','fullfile','help',
-            'helpdesk','helpwin','home','inmem','lasterr','lastwarn','length',
-            'load','lookfor','ls','matlabrc','matlabroot','mkdir','mlock',
-            'more','munlock','open','openvar','pack','partialpath','path',
-            'pathtool','profile','profreport','pwd','quit','rmpath','save',
-            'saveas','size','tempdir','tempname','type','ver','version','web',
-            'what','whatsnew','which','who','whos','workspace'
-            )
-        ),
-    'SYMBOLS' => array(
-        '...'
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false,
-        2 => false,
-        //3 => false,
-        //4 => false,
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #0000FF;',
-            2 => 'color: #0000FF;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #228B22;',
-            2 => 'color:#A020F0;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => ''
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #080;'
-            ),
-        'STRINGS' => array(
-            //0 => 'color: #A020F0;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #33f;'
-            ),
-        'METHODS' => array(
-            1 => '',
-            2 => ''
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #080;'
-            ),
-        'REGEXPS' => array(
-            0 => 'color: #33f;'
-            ),
-        'SCRIPT' => array(
-            0 => ''
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => 'http://www.mathworks.com/access/helpdesk/help/techdoc/ref/{FNAMEL}.html'
-        ),
-    'OOLANG' => true,
-    'OBJECT_SPLITTERS' => array(
-        1 => '.',
-        2 => '::'
-        ),
-    'REGEXPS' => array(
-        //Complex numbers
-        0 => '(?<![\\w\\/])[+-]?[\\d]*([\\d]\\.|\\.[\\d])?[\\d]*[ij](?![\\w]|\<DOT>html)'
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/mercury.php b/wiki/vendor/geshi/geshi/src/geshi/mercury.php
deleted file mode 100644
index 9f77e4b..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/mercury.php
+++ /dev/null
@@ -1,130 +0,0 @@
-<?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/wiki/vendor/geshi/geshi/src/geshi/metapost.php b/wiki/vendor/geshi/geshi/src/geshi/metapost.php
deleted file mode 100644
index f5944cb..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/metapost.php
+++ /dev/null
@@ -1,399 +0,0 @@
-<?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/wiki/vendor/geshi/geshi/src/geshi/mirc.php b/wiki/vendor/geshi/geshi/src/geshi/mirc.php
deleted file mode 100644
index 4aea845..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/mirc.php
+++ /dev/null
@@ -1,169 +0,0 @@
-<?php
-/*************************************************************************************
- * mirc.php
- * -----
- * Author: Alberto 'Birckin' de Areba (Birckin@hotmail.com)
- * Copyright: (c) 2006 Alberto de Areba
- * Release Version: 1.0.9.0
- * Date Started: 2006/05/29
- *
- * mIRC Scripting language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2008/05/23 (1.0.7.22)
- *   -  Added description of extra language features (SF#1970248)
- * 2006/05/29 (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' => 'mIRC Scripting',
-    'COMMENT_SINGLE' => array(1 => ';'),
-    'COMMENT_MULTI' => array(),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array(),
-    'ESCAPE_CHAR' => '',
-    'KEYWORDS' => array(
-        1 => array(
-            'alias', 'menu', 'dialog',
-            ),
-        2 => array(
-            'if', 'elseif', 'else', 'while', 'return', 'goto', 'var'
-            ),
-        3 => array(
-            'action','ajinvite','amsg','ame','anick','aop','auser',
-            'avoice','auto','autojoin','away','background','ban','beep',
-            'channel','clear','clearall','clipboard','close','closemsg','color',
-            'copy','creq','ctcp','ctcpreply','ctcps','dcc','dde','ddeserver',
-            'debug','describe','disable','disconnect','dlevel','dll','dns',
-            'dqwindow','ebeeps','echo','editbox','emailaddr','enable','events',
-            'exit','filter','findtext','finger','flash','flood','flush',
-            'flushini','font','fsend','fserve','fullname','ghide','gload',
-            'gmove','gopts','gplay','gpoint','gqreq','groups','gshow','gsize',
-            'gstop','gtalk','gunload','guser','help','hop','ignore','invite',
-            'join','kick','linesep','links','list','load','loadbuf','localinfo',
-            'log','me','mdi','mkdir','mnick','mode','msg','names','nick','noop',
-            'notice','notify','omsg','onotice','part','partall','pdcc',
-            'perform','ping','play','pop','protect','pvoice','qmsg','qme',
-            'query','queryrn','quit','raw','remini','remote','remove','rename',
-            'enwin','resetidle','rlevel','rmdir','run','ruser','save','savebuf',
-            'saveini','say','server','showmirc','sline','sound','speak','splay',
-            'sreq','strip','time',
-            //'timer[N/name]', //Handled as a regular expression below ...
-            'timers','timestamp','titlebar','tnick','tokenize','topic','ulist',
-            'unload','updatenl','url','uwho','window','winhelp','write',
-            'writeini','who','whois','whowas'
-            )
-        ),
-    'SYMBOLS' => array(
-        '(', ')', '{', '}', '[', ']', '/'
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false,
-        2 => false,
-        3 => false,
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #994444;',
-            2 => 'color: #000000; font-weight: bold;',
-            3 => 'color: #990000; font-weight: bold;',
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #808080; font-style: italic;',
-            ),
-        'ESCAPE_CHAR' => array(
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #FF0000;',
-            ),
-        'STRINGS' => array(
-            ),
-        'NUMBERS' => array(
-            0 => '',
-            ),
-        'METHODS' => array(
-            0 => 'color: #008000;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #FF0000;',
-            ),
-        'REGEXPS' => array(
-            0 => 'color: #000099;',
-            1 => 'color: #990000;',
-            2 => 'color: #000099;',
-            3 => 'color: #888800;',
-            4 => 'color: #888800;',
-            5 => 'color: #000099;',
-            6 => 'color: #990000; font-weight: bold;',
-            7 => 'color: #990000; font-weight: bold;'
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => 'http://en.wikichip.org/wiki/mirc/commands/{FNAMEL}'
-        ),
-    'OOLANG' => true,
-    'OBJECT_SPLITTERS' => array('.'),
-    'REGEXPS' => array(
-        //Variable names
-        0 => '\$[a-zA-Z0-9]+',
-        //Variable names
-        1 => '(%|&amp;)[\w\x80-\xFE]+',
-        //Client to Client Protocol handling
-        2 => '(on|ctcp) (!|@|&amp;)?(\d|\*):[a-zA-Z]+:',
-        /*4 => array(
-            GESHI_SEARCH => '((on|ctcp) (!|@|&)?(\d|\*):(Action|Active|Agent|AppActive|Ban|Chat|Close|Connect|Ctcp|CtcpReply|DccServer|DeHelp|DeOp|DeVoice|Dialog|Dns|Error|Exit|FileRcvd|FileSent|GetFail|Help|Hotlink|Input|Invite|Join|KeyDown|KeyUp|Kick|Load|Logon|MidiEnd|Mode|Mp3End|Nick|NoSound|Notice|Notify|Op|Open|Part|Ping|Pong|PlayEnd|Quit|Raw|RawMode|SendFail|Serv|ServerMode|ServerOp|Signal|Snotice|Start|Text|Topic|UnBan|Unload|Unotify|User|Mode|Voice|Wallops|WaveEnd):)',
-            GESHI_REPLACE => '\\1',
-            GESHI_MODIFIERS => 'i',
-            GESHI_BEFORE => '',
-            GESHI_AFTER => ''
-            ),*/
-        //Channel names
-        3 => '(#|@)[a-zA-Z0-9]+',
-        4 => '-[a-z\d]+',
-        //Raw protocol handling
-        5 => 'raw (\d|\*):',
-        //Timer handling
-        6 => '(?<!>|:|\/)\/timer(?!s\b)[0-9a-zA-Z_]+',
-        // /...
-        7 => '(?<!>|:|\/|\w)\/[a-zA-Z][a-zA-Z0-9]*(?!>)'
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        ),
-    'PARSER_CONTROL' => array(
-        'ENABLE_FLAGS' => array(
-            'NUMBERS' => GESHI_NEVER
-            ),
-        'KEYWORDS' => array(
-            'DISALLOWED_BEFORE' => '(?<![\w\$\|\#;<^&])'
-        )
-    )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/mk-61.php b/wiki/vendor/geshi/geshi/src/geshi/mk-61.php
deleted file mode 100644
index 653a336..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/mk-61.php
+++ /dev/null
@@ -1,106 +0,0 @@
-<?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/wiki/vendor/geshi/geshi/src/geshi/mmix.php b/wiki/vendor/geshi/geshi/src/geshi/mmix.php
deleted file mode 100644
index 5c8178c..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/mmix.php
+++ /dev/null
@@ -1,191 +0,0 @@
-<?php
-/*************************************************************************************
- * mmix.php
- * -------
- * Author: Benny Baumann (BenBE@geshi.org)
- * Copyright: (c) 2009 Benny Baumann (http://qbnz.com/highlighter/)
- * Release Version: 1.0.9.0
- * Date Started: 2009/10/16
- *
- * MMIX Assembler language file for GeSHi.
- *
- * This is an implementation of the MMIX language as designed by Donald E. Knuth
- *
- * CHANGES
- * -------
- * 2004/08/05 (1.0.8.6)
- *   -  First Release
- *
- * TODO (updated 2009/10/16)
- * -------------------------
- *
- *************************************************************************************
- *
- *     This file is part of GeSHi.
- *
- *   GeSHi is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   GeSHi is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with GeSHi; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- ************************************************************************************/
-
-$language_data = array (
-    'LANG_NAME' => 'MMIX',
-    'COMMENT_SINGLE' => array(1 => ';', 2 => '%'),
-    'COMMENT_MULTI' => array(),
-    //Line address prefix suppression
-    'COMMENT_REGEXP' => array(
-        3 => "/^\s*(?!\s)[^\w].*$/m",
-        4 => "/^\s*[0-9a-f]{12,16}+(?:\s+[0-9a-f]+(?:\.{3}[0-9a-f]{2,})?)?:/mi"
-        ),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array("'", '"'),
-    'ESCAPE_CHAR' => '',
-    'NUMBERS' => array(
-        1 => '(?<![\d\$#\w])[\da-fA-F]+(?!\w)',
-        2 => '#[\da-fA-F]+',
-        3 => '\$\d+'
-        ),
-    'KEYWORDS' => array(
-        /*CPU*/
-        1 => array(
-            '16ADDU','2ADDU','4ADDU','8ADDU','ADD','ADDU','AND','ANDN','ANDNH',
-            'ANDNL','ANDNMH','ANDNML','BDIF','BEV','BN','BNN','BNP','BNZ','BOD',
-            'BP','BZ','CMP','CMPU','CSEV','CSN','CSNN','CSNP','CSNZ','CSOD',
-            'CSP','CSWAP','CSZ','DIV','DIVU','FADD','FCMP','FCMPE','FDIV',
-            'FEQL','FEQLE','FINT','FIX','FIXU','FLOT','FLOTU','FMUL','FREM',
-            'FSQRT','FSUB','FUN','FUNE','GET','GETA','GO','INCH','INCL','INCMH',
-            'INCML','JMP','LDA','LDB','LDBU','LDHT','LDO','LDOU','LDSF','LDT',
-            'LDTU','LDUNC','LDVTS','LDW','LDWU','MOR','MUL','MULU','MUX','MXOR',
-            'NAND','NEG','NEGU','NOR','NXOR','ODIF','OR','ORH','ORL','ORMH',
-            'ORML','ORN','PBEV','PBN','PBNN','PBNP','PBNZ','PBOD','PBP','PBZ',
-            'POP','PREGO','PRELD','PREST','PUSHGO','PUSHJ','PUT','RESUME','SADD',
-            'SAVE','SETH','SETL','SETMH','SETML','SFLOT','SFLOTU','SL','SLU',
-            'SR','SRU','STB','STBU','STCO','STHT','STO','STOU','STSF','STT',
-            'STTU','STUNC','STW','STWU','SUB','SUBU','SWYM','SYNC','SYNCD',
-            'SYNCID','TDIF','TRAP','TRIP','UNSAVE','WDIF','XOR','ZSEV','ZSN',
-            'ZSNN','ZSNP','ZSNZ','ZSOD','ZSP','ZSZ'
-            ),
-        2 => array(
-            'BSPEC','BYTE','ESPEC','GREG','IS','LOC','LOCAL','OCTA',
-            'PREFIX','SET','TETRA','WYDE'
-            ),
-        /*registers*/
-        3 => array(
-            'rA','rB','rC','rD','rE','rF','rG','rH','rI','rJ','rK','rL','rM',
-            'rN','rO','rP','rQ','rR','rS','rT','rU','rV','rW','rX','rY','rZ',
-            'rBB','rTT','rWW','rXX','rYY','rZZ'
-            ),
-//        /*Directive*/
-//        4 => array(
-//            ),
-//        /*Operands*/
-//        5 => array(
-//            )
-        ),
-    'SYMBOLS' => array(
-        '[', ']', '(', ')',
-        '+', '-', '*', '/', '%',
-        '.', ',', ';', ':',
-        '<<','>>'
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => true,
-        2 => false,
-        3 => true,
-//        4 => false,
-//        5 => false
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #00007f; font-weight: bold;',
-            2 => 'color: #0000ff; font-weight: bold;',
-            3 => 'color: #00007f;',
-//            4 => 'color: #000000; font-weight: bold;',
-//            5 => 'color: #000000; font-weight: bold;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #666666; font-style: italic;',
-            2 => 'color: #666666; font-style: italic;',
-            3 => 'color: #666666; font-style: italic;',
-            4 => 'color: #adadad; font-style: italic;',
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #000099; font-weight: bold;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #009900; font-weight: bold;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #7f007f;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #0000ff;',
-            1 => 'color: #0000ff;',
-            2 => 'color: #0000ff;',
-            3 => 'color: #00007f;'
-            ),
-        'METHODS' => array(
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #339933;'
-            ),
-        'REGEXPS' => array(
-//            0 => 'color: #0000ff;',
-//            1 => 'color: #0000ff;'
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => '',
-//        4 => '',
-//        5 => ''
-        ),
-/*
-    'NUMBERS' =>
-        GESHI_NUMBER_BIN_PREFIX_PERCENT |
-        GESHI_NUMBER_BIN_SUFFIX |
-        GESHI_NUMBER_HEX_PREFIX |
-        GESHI_NUMBER_HEX_SUFFIX |
-        GESHI_NUMBER_OCT_SUFFIX |
-        GESHI_NUMBER_INT_BASIC |
-        GESHI_NUMBER_FLT_NONSCI |
-        GESHI_NUMBER_FLT_NONSCI_F |
-        GESHI_NUMBER_FLT_SCI_ZERO,
-*/
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(
-        ),
-    'REGEXPS' => array(
-        //Hex numbers
-//        0 => /*  */ "(?<=([\\s\\(\\)\\[\\],;.:+\\-\\/*]))(?:[0-9][0-9a-fA-F]{0,31}[hH]|0x[0-9a-fA-F]{1,32})(?=([\\s\\(\\)\\[\\],;.:+\\-\\/*]))",
-        //Binary numbers
-//        1 => "(?<=([\\s\\(\\)\\[\\],;.:+\\-\\/*]))[01]{1,64}[bB](?=([\\s\\(\\)\\[\\],;.:+\\-\\/*]))"
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        ),
-    'TAB_WIDTH' => 8,
-    'PARSER_CONTROL' => array(
-        'KEYWORDS' => array(
-            'DISALLOWED_BEFORE' => "(?<![a-zA-Z0-9\$_\|\#>|^])",
-            'DISALLOWED_AFTER' => "(?![a-zA-Z0-9_<\|%])"
-        )
-    )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/modula2.php b/wiki/vendor/geshi/geshi/src/geshi/modula2.php
deleted file mode 100644
index 2a20973..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/modula2.php
+++ /dev/null
@@ -1,134 +0,0 @@
-<?php
-/****************************************************************************
- * modula2.php
- * -----------
- * Author: Benjamin Kowarsch (benjamin@modula2.net)
- * Copyright: (c) 2009 Benjamin Kowarsch (benjamin@modula2.net)
- * Release Version: 1.0.9.0
- * Date Started: 2009/11/05
- *
- * Modula-2 language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2010/05/22 (1.0.8.8)
- *   -  First Release
- *
- * TODO (updated 2010/05/22)
- * -------------------------
- *
- *************************************************************************************
- *
- *     This file is part of GeSHi.
- *
- *   GeSHi is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   GeSHi is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with GeSHi; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- ************************************************************************************/
-
-$language_data = array (
-    'LANG_NAME' => 'Modula-2',
-    'COMMENT_MULTI' => array('(*' => '*)'),
-    'COMMENT_SINGLE' => array(),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array('"'),
-    'HARDQUOTE' => array("'", "'"),
-    'HARDESCAPE' => array("''"),
-    'ESCAPE_CHAR' => '\\',
-    'KEYWORDS' => array(
-        1 => array( /* reserved words */
-            'AND', 'ARRAY', 'BEGIN', 'BY', 'CASE', 'CONST', 'DEFINITION',
-            'DIV', 'DO', 'ELSE', 'ELSIF', 'END', 'EXIT', 'EXPORT', 'FOR',
-            'FROM', 'IF', 'IMPLEMENTATION', 'IMPORT', 'IN', 'LOOP', 'MOD',
-            'MODULE', 'NOT', 'OF', 'OR', 'POINTER', 'PROCEDURE', 'QUALIFIED',
-            'RECORD', 'REPEAT', 'RETURN', 'SET', 'THEN', 'TO', 'TYPE',
-            'UNTIL', 'VAR', 'WHILE', 'WITH'
-            ),
-        2 => array( /* pervasive constants */
-            'NIL', 'FALSE', 'TRUE',
-            ),
-        3 => array( /* pervasive types */
-            'BITSET', 'CAP', 'CHR', 'DEC', 'DISPOSE', 'EXCL', 'FLOAT',
-            'HALT', 'HIGH', 'INC', 'INCL', 'MAX', 'MIN', 'NEW', 'ODD', 'ORD',
-            'SIZE', 'TRUNC', 'VAL'
-            ),
-        4 => array( /* pervasive functions and macros */
-            'ABS', 'BOOLEAN', 'CARDINAL', 'CHAR', 'INTEGER',
-            'LONGCARD', 'LONGINT', 'LONGREAL', 'PROC', 'REAL'
-            ),
-        ),
-    'SYMBOLS' => array(
-        ',', ':', '=', '+', '-', '*', '/', '#', '~'
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => true,
-        2 => true,
-        3 => true,
-        4 => true,
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #000000; font-weight: bold;',
-            2 => 'color: #000000; font-weight: bold;',
-            3 => 'color: #000066;',
-            4 => 'color: #000066; font-weight: bold;'
-            ),
-        'COMMENTS' => array(
-            'MULTI' => 'color: #666666; font-style: italic;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #000099; font-weight: bold;',
-            'HARD' => 'color: #000099; font-weight: bold;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #009900;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #ff0000;',
-            'HARD' => 'color: #ff0000;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #cc66cc;'
-            ),
-        'METHODS' => array(
-            1 => 'color: #0066ee;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #339933;'
-            ),
-        'REGEXPS' => array(
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => '',
-        4 => ''
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(
-        1 => ''
-        ),
-    'REGEXPS' => array(
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        ),
-    'TAB_WIDTH' => 4
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/modula3.php b/wiki/vendor/geshi/geshi/src/geshi/modula3.php
deleted file mode 100644
index b3c223c..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/modula3.php
+++ /dev/null
@@ -1,133 +0,0 @@
-<?php
-/*************************************************************************************
- * modula3.php
- * ----------
- * Author: mbishop (mbishop@esoteriq.org)
- * Copyright: (c) 2009 mbishop (mbishop@esoteriq.org)
- * Release Version: 1.0.9.0
- * Date Started: 2009/01/21
- *
- * Modula-3 language file for GeSHi.
- *
- * CHANGES
- * -------
- *
- * TODO
- * -------------------------
- *
- *************************************************************************************
- *
- *     This file is part of GeSHi.
- *
- *   GeSHi is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   GeSHi is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with GeSHi; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- ************************************************************************************/
-
-$language_data = array (
-    'LANG_NAME' => 'Modula-3',
-    'COMMENT_SINGLE' => array(),
-    'COMMENT_MULTI' => array('(*' => '*)'),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array('"'),
-    'HARDQUOTE' => array("'", "'"),
-    'HARDESCAPE' => array("''"),
-    'ESCAPE_CHAR' => '\\',
-    'KEYWORDS' => array(
-        1 => array(
-            'AND', 'ANY', 'ARRAY', 'AS', 'BEGIN', 'BITS', 'BRANDED', 'BY', 'CASE',
-            'CONST', 'DIV', 'DO', 'ELSE', 'ELSIF', 'END', 'EVAL', 'EXCEPT', 'EXCEPTION',
-            'EXIT', 'EXPORTS', 'FINALLY', 'FOR', 'FROM', 'GENERIC', 'IF', 'IMPORT', 'IN',
-            'INTERFACE', 'LOCK', 'LOOP', 'METHODS', 'MOD', 'MODULE', 'NOT', 'OBJECT', 'OF',
-            'OR', 'OVERRIDES', 'PROCEDURE', 'RAISE', 'RAISES', 'READONLY', 'RECORD', 'REF',
-            'REPEAT', 'RETURN', 'REVEAL', 'ROOT', 'SET', 'THEN', 'TO', 'TRY', 'TYPE', 'TYPECASE',
-            'UNSAFE', 'UNTIL', 'UNTRACED', 'VALUE', 'VAR', 'WHILE', 'WITH'
-            ),
-        2 => array(
-            'NIL', 'NULL', 'FALSE', 'TRUE',
-            ),
-        3 => array(
-            'ABS','ADR','ADRSIZE','BITSIZE','BYTESIZE','CEILING','DEC','DISPOSE',
-            'EXTENDED','FIRST','FLOAT','FLOOR','INC','ISTYPE','LAST','LOOPHOLE','MAX','MIN',
-            'NARROW','NEW','NUMBER','ORD','ROUND','SUBARRAY','TRUNC','TYPECODE', 'VAL'
-            ),
-        4 => array(
-            'ADDRESS', 'BOOLEAN', 'CARDINAL', 'CHAR', 'INTEGER',
-            'LONGREAL', 'MUTEX', 'REAL', 'REFANY', 'TEXT'
-            ),
-        ),
-    'SYMBOLS' => array(
-        ',', ':', '=', '+', '-', '*', '/', '#'
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => true,
-        2 => true,
-        3 => true,
-        4 => true,
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #000000; font-weight: bold;',
-            2 => 'color: #000000; font-weight: bold;',
-            3 => 'color: #000066;',
-            4 => 'color: #000066; font-weight: bold;'
-            ),
-        'COMMENTS' => array(
-            'MULTI' => 'color: #666666; font-style: italic;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #000099; font-weight: bold;',
-            'HARD' => 'color: #000099; font-weight: bold;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #009900;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #ff0000;',
-            'HARD' => 'color: #ff0000;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #cc66cc;'
-            ),
-        'METHODS' => array(
-            1 => 'color: #0066ee;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #339933;'
-            ),
-        'REGEXPS' => array(
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => '',
-        4 => ''
-        ),
-    'OOLANG' => true,
-    'OBJECT_SPLITTERS' => array(
-        1 => '.'
-        ),
-    'REGEXPS' => array(
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        ),
-    'TAB_WIDTH' => 4
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/mpasm.php b/wiki/vendor/geshi/geshi/src/geshi/mpasm.php
deleted file mode 100644
index e6cf70e..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/mpasm.php
+++ /dev/null
@@ -1,162 +0,0 @@
-<?php
-/*************************************************************************************
- * mpasm.php
- * ---------
- * Author: Bakalex (bakalex@gmail.com)
- * Copyright: (c) 2004 Bakalex, Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.9.0
- * Date Started: 2004/12/6
- *
- * Microchip Assembler language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2008/05/23 (1.0.7.22)
- *  - Added description of extra language features (SF#1970248)
- * 2005/01/29 (1.0.0)
- *  - First Release
- *
- * TODO (updated 2005/12/6)
- * -------------------------
- *
- * For the moment, i've only added PIC16C6X registers. We need more (PIC16F/C7x/8x,
- * PIC10, PIC18 and dsPIC registers).
- * Must take a look to dsPIC instructions.
- *
- *************************************************************************************
- *
- *     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' => 'Microchip Assembler',
-    'COMMENT_SINGLE' => array(1 => ';'),
-    'COMMENT_MULTI' => array(),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array("'", '"'),
-    'ESCAPE_CHAR' => '',
-    'KEYWORDS' => array(
-        /*Directive Language*/
-        4 => array(
-            'CONSTANT', '#DEFINE', 'END', 'EQU', 'ERROR', 'ERROR-LEVEL', '#INCLUDE', 'LIST',
-            'MESSG', 'NOLIST', 'ORG', 'PAGE', 'PROCESSOR', 'RADIX', 'SET', 'SPACE', 'SUBTITLE',
-            'TITLE', '#UNDEFINE', 'VARIABLE', 'ELSE', 'ENDIF', 'ENDW', 'IF', 'IFDEF', 'IFNDEF',
-            'WHILE', '__BADRAM', 'CBLOCK', '__CONFIG', 'DA', 'DATA', 'DB', 'DE', 'DT', 'DW',
-            'ENDC', 'FILL', '__IDLOCS', '__MAXRAM', 'RES', 'ENDM', 'EXITM', 'EXPAND', 'LOCAL',
-            'MACRO', 'NOEXPAND', 'BANKISEL', 'BANKSEL', 'CODE', 'EXTERN', 'GLOBAL', 'IDATA',
-            'PAGESEL', 'UDATA', 'UDATA_ACS', 'UDATA_OVR', 'UDATA_SHR'
-            ),
-        /* 12&14-bit Specific Instruction Set*/
-        1 => array(
-            'andlw', 'call', 'clrwdt', 'goto', 'iorlw', 'movlw', 'option', 'retlw', 'sleep',
-            'tris', 'xorlw', 'addwf', 'andwf', 'clrf', 'clrw', 'comf', 'decf', 'decfsz', 'incf',
-            'incfsz', 'iorwf', 'movf', 'nop', 'rlf', 'rrf', 'subwf', 'swapf', 'xorwf',
-            'bcf', 'bsf', 'btfsc', 'btfss',
-            'addlw', 'retfie', 'return', 'sublw', 'addcf', 'adddcf', 'b', 'bc', 'bdc',
-            'bnc', 'bndc', 'bnz', 'bz', 'clrc', 'clrdc', 'clrz', 'lcall', 'lgoto', 'movfw',
-            'negf', 'setc', 'setdc', 'setz', 'skpc', 'skpdc', 'skpnc', 'skpndc', 'skpnz', 'skpz',
-            'subcf', 'subdcf', 'tstf'
-            ),
-        /* 16-bit Specific Instructiob Set */
-        2 => array (
-            'movfp', 'movlb', 'movlp', 'movpf', 'movwf', 'tablrd', 'tablwt', 'tlrd', 'tlwt',
-            'addwfc', 'daw', 'mullw', 'negw', 'rlcf', 'rlncf', 'rrcf', 'rrncf', 'setf', 'subwfb',
-            'btg', 'cpfseq', 'cpfsgt', 'cpfslt', 'dcfsnz', 'infsnz', 'tstfsz', 'lfsr', 'bnn',
-            'bnov', 'bra', 'pop', 'push', 'rcall', 'reset'
-            ),
-        /* Registers */
-        3 => array(
-            'INDF', 'TMR0', 'PCL', 'STATUS', 'FSR', 'PORTA', 'PORTB', 'PORTC', 'PORTD', 'PORTE',
-            'PCLATH', 'INTCON', 'PIR1', 'PIR2', 'TMR1L', 'TMR1H', 'T1CON', 'TMR2', 'T2CON', 'TMR2L',
-            'TMR2H', 'TMR0H', 'TMR0L', 'SSPBUF', 'SSPCON', 'CCPR1L', 'CCPR1H', 'CCP1CON', 'RCSTA',
-            'TXREG', 'RCREG', 'CCPR2L', 'CCPR2H', 'CCP2CON', 'OPTION', 'TRISA', 'TRISB', 'TRISC',
-            'TRISD', 'TRISE', 'PIE2', 'PIE1', 'PR2', 'SSPADD', 'SSPSTAT', 'TXSTA', 'SPBRG'
-            ),
-        /*Operands*/
-        5 => array(
-            'high','low'
-            )
-        ),
-    'SYMBOLS' => array(
-        '[', ']', '(', ')'
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false,
-        2 => false,
-        3 => false,
-        4 => false,
-        5 => false
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #00007f;',
-            2 => 'color: #0000ff;',
-            3 => 'color: #007f00;',
-            4 => 'color: #46aa03; font-weight:bold;',
-            5 => 'color: #7f0000;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #adadad; font-style: italic;',
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #000099; font-weight: bold;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #66cc66;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #7f007f;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #ff0000;'
-            ),
-        'METHODS' => array(
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #66cc66;'
-            ),
-        'REGEXPS' => array(
-            0 => 'color: #ff0000;',
-            1 => 'color: #ff0000;'
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => '',
-        4 => '',
-        5 => ''
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(
-        ),
-    'REGEXPS' => array(
-        //Hex numbers
-        0 => '[0-9a-fA-F]{1,32}[hH]',
-        //Binary numbers
-        1 => '[01]{1,64}[bB]'
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/mxml.php b/wiki/vendor/geshi/geshi/src/geshi/mxml.php
deleted file mode 100644
index 4bac672..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/mxml.php
+++ /dev/null
@@ -1,143 +0,0 @@
-<?php
-/*************************************************************************************
- * mxml.php
- * -------
- * Author: David Spurr
- * Copyright: (c) 2007 David Spurr (http://www.defusion.org.uk/)
- * Release Version: 1.0.9.0
- * Date Started: 2007/10/04
- *
- * MXML language file for GeSHi. Based on the XML file by Nigel McNie
- *
- * CHANGES
- * -------
- * 2007/10/04 (1.0.7.22)
- *   -  First Release
- *
- * TODO
- * ----
- *
- *************************************************************************************
- *
- *     This file is part of GeSHi.
- *
- *   GeSHi is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   GeSHi is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with GeSHi; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- ************************************************************************************/
-
-$language_data = array (
-    'LANG_NAME' => 'MXML',
-    '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(
-            'MULTI' => 'color: #808080; font-style: italic;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #000099; font-weight: bold;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #66cc66;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #ff0000;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #cc66cc;'
-            ),
-        'METHODS' => array(
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #66cc66;'
-            ),
-        'SCRIPT' => array(
-            0 => 'color: #00bbdd;',
-            1 => 'color: #ddbb00;',
-            2 => 'color: #339933;',
-            3 => 'color: #000000;'
-            ),
-        'REGEXPS' => array(
-            0 => 'font-weight: bold; color: black;',
-            1 => 'color: #7400FF;',
-            2 => 'color: #7400FF;'
-            )
-        ),
-    'URLS' => array(
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(
-        ),
-    'REGEXPS' => array(
-        // xml declaration
-        0 => array(
-            GESHI_SEARCH => '(&lt;[\/?|(\?xml)]?[a-z0-9_\-:]*(\?&gt;))',
-            GESHI_REPLACE => '\\1',
-            GESHI_MODIFIERS => 'i',
-            GESHI_BEFORE => '',
-            GESHI_AFTER => ''
-            ),
-        // opening tags
-        1 => array(
-            GESHI_SEARCH => '(&lt;\/?[a-z]+:[a-z]+)',
-            GESHI_REPLACE => '\\1',
-            GESHI_MODIFIERS => 'i',
-            GESHI_BEFORE => '',
-            GESHI_AFTER => ''
-            ),
-        // closing tags
-        2 => array(
-            GESHI_SEARCH => '(\/?&gt;)',
-            GESHI_REPLACE => '\\1',
-            GESHI_MODIFIERS => 'i',
-            GESHI_BEFORE => '',
-            GESHI_AFTER => ''
-            )
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_ALWAYS,
-    'SCRIPT_DELIMITERS' => array(
-        0 => array(
-            '<!DOCTYPE' => '>'
-            ),
-        1 => array(
-            '&' => ';'
-            ),
-        2 => array(
-            //'<![CDATA[' => ']]>'
-            '<mx:Script>' => '</mx:Script>'
-            ),
-        3 => array(
-            '<' => '>'
-            )
-    ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        0 => false,
-        1 => false,
-        2 => false,
-        3 => true
-        ),
-    'TAB_WIDTH' => 4
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/mysql.php b/wiki/vendor/geshi/geshi/src/geshi/mysql.php
deleted file mode 100644
index e62a122..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/mysql.php
+++ /dev/null
@@ -1,472 +0,0 @@
-<?php
-/*************************************************************************************
- * mysql.php
- * ---------
- * Author: Marjolein Katsma (marjolein.is.back@gmail.com)
- * Copyright: (c) 2008 Marjolein Katsma (http://blog.marjoleinkatsma.com/)
- * Release Version: 1.0.9.0
- * Date Started: 2008-12-12
- *
- * MySQL language file for GeSHi.
- *
- * Based on original MySQL language file by Carl Fürstenberg (2004); brought
- * up-to-date for current MySQL versions, and with more classes for different
- * types of keywords; several minor errors were corrected as well.
- *
- * Some "classes" have two groups here: this is to allow for the fact that some
- * keywords in MySQL have a double function: many of those are either a function
- * (must be immediately followed by an opening bracket) or some other keyword:
- * so they can be distinguished by the presence (or not) of that opening bracket.
- * (An immediately following opening bracket is a default rule for functions in
- * MySQL, though this may be overridden; because it's only a default, we use a
- * regex lookahead only where necessary to distinguish homonyms, not generally
- * to match any function.)
- * Other keywords with double usage cannot be distinguished and are classified
- * in the "Mix" category.
- *
- *************************************************************************************
- *
- * 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' => 'MySQL',
-    //'COMMENT_SINGLE' => array(1 =>'--', 2 => '#'),    // '--' MUST be folowed by whitespace,not necessarily a space
-    'COMMENT_SINGLE' => array(
-        1 =>'-- ',
-        2 => '#'
-        ),
-    'COMMENT_REGEXP' => array(
-        1 => "/(?:--\s).*?$/",                          // double dash followed by any whitespace
-        ),
-    'COMMENT_MULTI' => array('/*' => '*/'),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,            // @@@ would be nice if this could be defined per group!
-    'QUOTEMARKS' => array("'", '"', '`'),
-    'ESCAPE_CHAR' => '\\',                              // by default only, can be specified
-    'ESCAPE_REGEXP' => array(
-        1 => "/[_%]/",                                  // search wildcards
-        ),
-    'NUMBERS' =>
-        GESHI_NUMBER_INT_BASIC |
-        GESHI_NUMBER_OCT_PREFIX |
-        GESHI_NUMBER_HEX_PREFIX |
-        GESHI_NUMBER_FLT_NONSCI |
-        GESHI_NUMBER_FLT_SCI_SHORT |
-        GESHI_NUMBER_FLT_SCI_ZERO,
-    'KEYWORDS' => array(
-        1 => array(
-            // Mix: statement keywords and keywords that don't fit in any other
-            // category, or have multiple usage/meanings
-            'ACTION','ADD','AFTER','ALGORITHM','ALL','ALTER','ANALYZE','ANY',
-            'ASC','AS','BDB','BEGIN','BERKELEYDB','BINARY','BTREE','CALL',
-            'CASCADED','CASCADE','CHAIN','CHANGE','CHECK','COLUMNS','COLUMN',
-            'COMMENT','COMMIT','COMMITTED','CONSTRAINT','CONTAINS SQL',
-            'CONSISTENT','CONVERT','CREATE','CROSS','DATA','DATABASES',
-            'DECLARE','DEFINER','DELAYED','DELETE','DESCRIBE','DESC',
-            'DETERMINISTIC','DISABLE','DISCARD','DISTINCTROW','DISTINCT','DO',
-            'DROP','DUMPFILE','DUPLICATE KEY','ENABLE','ENCLOSED BY','ENGINE',
-            'ERRORS','ESCAPED BY','EXISTS','EXPLAIN','EXTENDED','FIELDS',
-            'FIRST','FOR EACH ROW','FORCE','FOREIGN KEY','FROM','FULL',
-            'FUNCTION','GLOBAL','GRANT','GROUP BY','HANDLER','HASH','HAVING',
-            'HELP','HIGH_PRIORITY','IF NOT EXISTS','IGNORE','IMPORT','INDEX',
-            'INFILE','INNER','INNODB','INOUT','INTO','INVOKER',
-            'ISOLATION LEVEL','JOIN','KEYS','KEY','KILL','LANGUAGE SQL','LAST',
-            'LIMIT','LINES','LOAD','LOCAL','LOCK','LOW_PRIORITY',
-            'MASTER_SERVER_ID','MATCH','MERGE','MIDDLEINT','MODIFIES SQL DATA',
-            'MODIFY','MRG_MYISAM','NATURAL','NEXT','NO SQL','NO','ON',
-            'OPTIMIZE','OPTIONALLY','OPTION','ORDER BY','OUTER','OUTFILE','OUT',
-            'PARTIAL','PARTITION','PREV','PRIMARY KEY','PRIVILEGES','PROCEDURE',
-            'PURGE','QUICK','READS SQL DATA','READ','REFERENCES','RELEASE',
-            'RENAME','REORGANIZE','REPEATABLE','REQUIRE','RESTRICT','RETURNS',
-            'REVOKE','ROLLBACK','ROUTINE','RTREE','SAVEPOINT','SELECT',
-            'SERIALIZABLE','SESSION','SET','SHARE MODE','SHOW','SIMPLE',
-            'SNAPSHOT','SOME','SONAME','SQL SECURITY','SQL_BIG_RESULT',
-            'SQL_BUFFER_RESULT','SQL_CACHE','SQL_CALC_FOUND_ROWS',
-            'SQL_NO_CACHE','SQL_SMALL_RESULT','SSL','START','STARTING BY',
-            'STATUS','STRAIGHT_JOIN','STRIPED','TABLESPACE','TABLES','TABLE',
-            'TEMPORARY','TEMPTABLE','TERMINATED BY','TO','TRANSACTIONS',
-            'TRANSACTION','TRIGGER','TYPES','TYPE','UNCOMMITTED','UNDEFINED',
-            'UNION','UNLOCK_TABLES','UPDATE','USAGE','USE','USER_RESOURCES',
-            'USING','VALUES','VALUE','VIEW','WARNINGS','WHERE','WITH ROLLUP',
-            'WITH','WORK','WRITE',
-            ),
-        2 => array(     //No ( must follow
-            // Mix: statement keywords distinguished from functions by the same name
-            "CURRENT_USER", "DATABASE", "IN", "INSERT", "DEFAULT", "REPLACE", "SCHEMA", "TRUNCATE"
-            ),
-        3 => array(
-            // Values (Constants)
-            'FALSE','NULL','TRUE',
-            ),
-        4 => array(
-            // Column Data Types
-            'BIGINT','BIT','BLOB','BOOLEAN','BOOL','CHARACTER VARYING',
-            'CHAR VARYING','DATETIME','DECIMAL','DEC','DOUBLE PRECISION',
-            'DOUBLE','ENUM','FIXED','FLOAT','GEOMETRYCOLLECTION','GEOMETRY',
-            'INTEGER','INT','LINESTRING','LONGBLOB','LONGTEXT','MEDIUMBLOB',
-            'MEDIUMINT','MEDIUMTEXT','MULTIPOINT','MULTILINESTRING',
-            'MULTIPOLYGON','NATIONAL CHARACTER','NATIONAL CHARACTER VARYING',
-            'NATIONAL CHAR VARYING','NATIONAL VARCHAR','NCHAR VARCHAR','NCHAR',
-            'NUMERIC','POINT','POLYGON','REAL','SERIAL',
-            'SMALLINT','TEXT','TIMESTAMP','TINYBLOB','TINYINT',
-            'TINYTEXT','VARBINARY','VARCHARACTER','VARCHAR',
-            ),
-        5 => array(     //No ( must follow
-            // Column data types distinguished from functions by the same name
-            "CHAR", "DATE", "TIME"
-            ),
-        6 => array(
-            // Table, Column & Index Attributes
-            'AUTO_INCREMENT','AVG_ROW_LENGTH','BOTH','CHECKSUM','CONNECTION',
-            'DATA DIRECTORY','DEFAULT NULL','DELAY_KEY_WRITE','FULLTEXT',
-            'INDEX DIRECTORY','INSERT_METHOD','LEADING','MAX_ROWS','MIN_ROWS',
-            'NOT NULL','PACK_KEYS','ROW_FORMAT','SERIAL DEFAULT VALUE','SIGNED',
-            'SPATIAL','TRAILING','UNIQUE','UNSIGNED','ZEROFILL'
-            ),
-        7 => array(     //No ( must follow
-            // Column attribute distinguished from function by the same name
-            "CHARSET"
-            ),
-        8 => array(
-            // Date and Time Unit Specifiers
-            'DAY_HOUR','DAY_MICROSECOND','DAY_MINUTE','DAY_SECOND',
-            'HOUR_MICROSECOND','HOUR_MINUTE','HOUR_SECOND',
-            'MINUTE_MICROSECOND','MINUTE_SECOND',
-            'SECOND_MICROSECOND','YEAR_MONTH'
-            ),
-        9 => array(     //No ( must follow
-            // Date-time unit specifiers distinguished from functions by the same name
-            "DAY", "HOUR", "MICROSECOND", "MINUTE", "MONTH", "QUARTER", "SECOND", "WEEK", "YEAR"
-            ),
-        10 => array(
-            // Operators (see also Symbols)
-            'AND','BETWEEN','CHARACTER SET','COLLATE','DIV','IS NOT NULL',
-            'IS NOT','IS NULL','IS','LIKE','NOT','OFFSET','OR','REGEXP','RLIKE',
-            'SOUNDS LIKE','XOR'
-            ),
-        11 => array(     //No ( must follow
-            // Operator distinghuished from function by the same name
-            "INTERVAL"
-            ),
-        12 => array(
-            // Control Flow (functions)
-            'CASE','ELSE','END','IFNULL','IF','NULLIF','THEN','WHEN',
-            ),
-        13 => array(
-            // String Functions
-            'ASCII','BIN','BIT_LENGTH','CHAR_LENGTH','CHARACTER_LENGTH',
-            'CONCAT_WS','CONCAT','ELT','EXPORT_SET','FIELD',
-            'FIND_IN_SET','FORMAT','HEX','INSTR','LCASE','LEFT','LENGTH',
-            'LOAD_FILE','LOCATE','LOWER','LPAD','LTRIM','MAKE_SET','MID',
-            'OCTET_LENGTH','ORD','POSITION','QUOTE','REPEAT','REVERSE',
-            'RIGHT','RPAD','RTRIM','SOUNDEX','SPACE','STRCMP','SUBSTRING_INDEX',
-            'SUBSTRING','TRIM','UCASE','UNHEX','UPPER',
-            ),
-        14 => array(     //A ( must follow
-            // String functions distinguished from other keywords by the same name
-            "INSERT", "REPLACE", "CHAR"
-            ),
-        15 => array(
-            // Numeric Functions
-            'ABS','ACOS','ASIN','ATAN2','ATAN','CEILING','CEIL',
-            'CONV','COS','COT','CRC32','DEGREES','EXP','FLOOR','LN','LOG10',
-            'LOG2','LOG','MOD','OCT','PI','POWER','POW','RADIANS','RAND',
-            'ROUND','SIGN','SIN','SQRT','TAN',
-            ),
-        16 => array(     //A ( must follow
-            // Numeric function distinguished from other keyword by the same name
-            "TRUNCATE"
-            ),
-        17 => array(
-            // Date and Time Functions
-            'ADDDATE','ADDTIME','CONVERT_TZ','CURDATE','CURRENT_DATE',
-            'CURRENT_TIME','CURRENT_TIMESTAMP','CURTIME','DATE_ADD',
-            'DATE_FORMAT','DATE_SUB','DATEDIFF','DAYNAME','DAYOFMONTH',
-            'DAYOFWEEK','DAYOFYEAR','EXTRACT','FROM_DAYS','FROM_UNIXTIME',
-            'GET_FORMAT','LAST_DAY','LOCALTIME','LOCALTIMESTAMP','MAKEDATE',
-            'MAKETIME','MONTHNAME','NOW','PERIOD_ADD',
-            'PERIOD_DIFF','SEC_TO_TIME','STR_TO_DATE','SUBDATE','SUBTIME',
-            'SYSDATE','TIME_FORMAT','TIME_TO_SEC',
-            'TIMESTAMPADD','TIMESTAMPDIFF','TO_DAYS',
-            'UNIX_TIMESTAMP','UTC_DATE','UTC_TIME','UTC_TIMESTAMP','WEEKDAY',
-            'WEEKOFYEAR','YEARWEEK',
-            ),
-        18 => array(     //A ( must follow
-            // Date-time functions distinguished from other keywords by the same name
-            "DATE", "DAY", "HOUR", "MICROSECOND", "MINUTE", "MONTH", "QUARTER",
-            "SECOND", "TIME", "WEEK", "YEAR"
-            ),
-        19 => array(
-            // Comparison Functions
-            'COALESCE','GREATEST','ISNULL','LEAST',
-            ),
-        20 => array(     //A ( must follow
-            // Comparison functions distinguished from other keywords by the same name
-            "IN", "INTERVAL"
-            ),
-        21 => array(
-            // Encryption and Compression Functions
-            'AES_DECRYPT','AES_ENCRYPT','COMPRESS','DECODE','DES_DECRYPT',
-            'DES_ENCRYPT','ENCODE','ENCRYPT','MD5','OLD_PASSWORD','PASSWORD',
-            'SHA1','SHA','UNCOMPRESS','UNCOMPRESSED_LENGTH',
-            ),
-        22 => array(
-            // GROUP BY (aggregate) Functions
-            'AVG','BIT_AND','BIT_OR','BIT_XOR','COUNT','GROUP_CONCAT',
-            'MAX','MIN','STDDEV_POP','STDDEV_SAMP','STDDEV','STD','SUM',
-            'VAR_POP','VAR_SAMP','VARIANCE',
-            ),
-        23 => array(
-            // Information Functions
-            'BENCHMARK','COERCIBILITY','COLLATION','CONNECTION_ID',
-            'FOUND_ROWS','LAST_INSERT_ID','ROW_COUNT',
-            'SESSION_USER','SYSTEM_USER','USER','VERSION',
-            ),
-        24 => array(     //A ( must follow
-            // Information functions distinguished from other keywords by the same name
-            "CURRENT_USER", "DATABASE", "SCHEMA", "CHARSET"
-            ),
-        25 => array(
-            // Miscellaneous Functions
-            'ExtractValue','BIT_COUNT','GET_LOCK','INET_ATON','INET_NTOA',
-            'IS_FREE_LOCK','IS_USED_LOCK','MASTER_POS_WAIT','NAME_CONST',
-            'RELEASE_LOCK','SLEEP','UpdateXML','UUID',
-            ),
-        26 => array(     //A ( must follow
-            // Miscellaneous function distinguished from other keyword by the same name
-            "DEFAULT"
-            ),
-        27 => array(
-            // Geometry Functions
-            'Area','AsBinary','AsText','AsWKB','AsWKT','Boundary','Buffer',
-            'Centroid','Contains','ConvexHull','Crosses',
-            'Difference','Dimension','Disjoint','Distance',
-            'EndPoint','Envelope','Equals','ExteriorRing',
-            'GLength','GeomCollFromText','GeomCollFromWKB','GeomFromText',
-            'GeomFromWKB','GeometryCollectionFromText',
-            'GeometryCollectionFromWKB','GeometryFromText','GeometryFromWKB',
-            'GeometryN','GeometryType',
-            'InteriorRingN','Intersection','Intersects','IsClosed','IsEmpty',
-            'IsRing','IsSimple',
-            'LineFromText','LineFromWKB','LineStringFromText',
-            'LineStringFromWKB',
-            'MBRContains','MBRDisjoint','MBREqual','MBRIntersects',
-            'MBROverlaps','MBRTouches','MBRWithin','MLineFromText',
-            'MLineFromWKB','MPointFromText','MPointFromWKB','MPolyFromText',
-            'MPolyFromWKB','MultiLineStringFromText','MultiLineStringFromWKB',
-            'MultiPointFromText','MultiPointFromWKB','MultiPolygonFromText',
-            'MultiPolygonFromWKB',
-            'NumGeometries','NumInteriorRings','NumPoints',
-            'Overlaps',
-            'PointFromText','PointFromWKB','PointN','PointOnSurface',
-            'PolyFromText','PolyFromWKB','PolygonFromText','PolygonFromWKB',
-            'Related','SRID','StartPoint','SymDifference',
-            'Touches',
-            'Union',
-            'Within',
-            'X',
-            'Y',
-            ),
-        ),
-    'SYMBOLS' => array(
-        1 => array(
-            /* Operators */
-            '=', ':=',                                      // assignment operators
-            '||', '&&', '!',                                // locical operators
-            '=', '<=>', '>=', '>', '<=', '<', '<>', '!=',   // comparison operators
-            '|', '&', '^', '~', '<<', '>>',                 // bitwise operators
-            '-', '+', '*', '/', '%',                        // numerical operators
-            ),
-        2 => array(
-            /* Other syntactical symbols */
-            '(', ')',
-            ',', ';',
-            ),
-        ),
-    '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,
-        11 => false,
-        12 => false,
-        13 => false,
-        14 => false,
-        15 => false,
-        16 => false,
-        17 => false,
-        18 => false,
-        19 => false,
-        20 => false,
-        21 => false,
-        22 => false,
-        23 => false,
-        24 => false,
-        25 => false,
-        26 => false,
-        27 => false,
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #990099; font-weight: bold;',      // mix
-            2 => 'color: #990099; font-weight: bold;',      // mix
-            3 => 'color: #9900FF; font-weight: bold;',      // constants
-            4 => 'color: #999900; font-weight: bold;',      // column data types
-            5 => 'color: #999900; font-weight: bold;',      // column data types
-            6 => 'color: #FF9900; font-weight: bold;',      // attributes
-            7 => 'color: #FF9900; font-weight: bold;',      // attributes
-            8 => 'color: #9900FF; font-weight: bold;',      // date-time units
-            9 => 'color: #9900FF; font-weight: bold;',      // date-time units
-
-            10 => 'color: #CC0099; font-weight: bold;',      // operators
-            11 => 'color: #CC0099; font-weight: bold;',      // operators
-
-            12 => 'color: #009900;',     // control flow (functions)
-            13 => 'color: #000099;',     // string functions
-            14 => 'color: #000099;',     // string functions
-            15 => 'color: #000099;',     // numeric functions
-            16 => 'color: #000099;',     // numeric functions
-            17 => 'color: #000099;',     // date-time functions
-            18 => 'color: #000099;',     // date-time functions
-            19 => 'color: #000099;',     // comparison functions
-            20 => 'color: #000099;',     // comparison functions
-            21 => 'color: #000099;',     // encryption functions
-            22 => 'color: #000099;',     // aggregate functions
-            23 => 'color: #000099;',     // information functions
-            24 => 'color: #000099;',     // information functions
-            25 => 'color: #000099;',     // miscellaneous functions
-            26 => 'color: #000099;',     // miscellaneous functions
-            27 => 'color: #00CC00;',     // geometry functions
-            ),
-        'COMMENTS' => array(
-            'MULTI' => 'color: #808000; font-style: italic;',
-            1 => 'color: #808080; font-style: italic;',
-            2 => 'color: #808080; font-style: italic;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #004000; font-weight: bold;',
-            1 => 'color: #008080; font-weight: bold;'       // search wildcards
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #FF00FF;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #008000;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #008080;'
-            ),
-        'METHODS' => array(
-            ),
-        'SYMBOLS' => array(
-            1 => 'color: #CC0099;',         // operators
-            2 => 'color: #000033;',         // syntax
-            ),
-        'SCRIPT' => array(
-            ),
-        'REGEXPS' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => 'http://search.oracle.com/search/search?group=MySQL&amp;q={FNAME}',
-        2 => 'http://search.oracle.com/search/search?group=MySQL&amp;q={FNAME}',
-        3 => 'http://search.oracle.com/search/search?group=MySQL&amp;q={FNAME}',
-        4 => 'http://search.oracle.com/search/search?group=MySQL&amp;q={FNAME}',
-        5 => 'http://search.oracle.com/search/search?group=MySQL&amp;q={FNAME}',
-        6 => 'http://search.oracle.com/search/search?group=MySQL&amp;q={FNAME}',
-        7 => 'http://search.oracle.com/search/search?group=MySQL&amp;q={FNAME}',
-        8 => 'http://search.oracle.com/search/search?group=MySQL&amp;q={FNAME}',
-        9 => 'http://search.oracle.com/search/search?group=MySQL&amp;q={FNAME}',
-
-        10 => 'http://dev.mysql.com/doc/refman/%35%2E%31/en/non-typed-operators.html',
-        11 => 'http://dev.mysql.com/doc/refman/%35%2E%31/en/non-typed-operators.html',
-
-        12 => 'http://dev.mysql.com/doc/refman/%35%2E%31/en/control-flow-functions.html',
-        13 => 'http://dev.mysql.com/doc/refman/%35%2E%31/en/string-functions.html',
-        14 => 'http://dev.mysql.com/doc/refman/%35%2E%31/en/string-functions.html',
-        15 => 'http://dev.mysql.com/doc/refman/%35%2E%31/en/numeric-functions.html',
-        16 => 'http://dev.mysql.com/doc/refman/%35%2E%31/en/numeric-functions.html',
-        17 => 'http://dev.mysql.com/doc/refman/%35%2E%31/en/date-and-time-functions.html',
-        18 => 'http://dev.mysql.com/doc/refman/%35%2E%31/en/date-and-time-functions.html',
-        19 => 'http://dev.mysql.com/doc/refman/%35%2E%31/en/comparison-operators.html',
-        20 => 'http://dev.mysql.com/doc/refman/%35%2E%31/en/comparison-operators.html',
-        21 => 'http://dev.mysql.com/doc/refman/%35%2E%31/en/encryption-functions.html',
-        22 => 'http://dev.mysql.com/doc/refman/%35%2E%31/en/group-by-functions-and-modifiers.html',
-        23 => 'http://dev.mysql.com/doc/refman/%35%2E%31/en/information-functions.html',
-        24 => 'http://dev.mysql.com/doc/refman/%35%2E%31/en/information-functions.html',
-        25 => 'http://dev.mysql.com/doc/refman/%35%2E%31/en/func-op-summary-ref.html',
-        26 => 'http://dev.mysql.com/doc/refman/%35%2E%31/en/func-op-summary-ref.html',
-        27 => 'http://dev.mysql.com/doc/refman/%35%2E%31/en/analysing-spatial-information.html',
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(
-        ),
-    'REGEXPS' => array(
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        ),
-    'TAB_WIDTH' => 4,
-    'PARSER_CONTROL' => array(
-        'KEYWORDS' => array(
-            2 => array(
-                'DISALLOWED_AFTER' => '(?![\(\w])'
-                ),
-            5 => array(
-                'DISALLOWED_AFTER' => '(?![\(\w])'
-                ),
-            7 => array(
-                'DISALLOWED_AFTER' => '(?![\(\w])'
-                ),
-            9 => array(
-                'DISALLOWED_AFTER' => '(?![\(\w])'
-                ),
-            11 => array(
-                'DISALLOWED_AFTER' => '(?![\(\w])'
-                ),
-
-            14 => array(
-                'DISALLOWED_AFTER' => '(?=\()'
-                ),
-            16 => array(
-                'DISALLOWED_AFTER' => '(?=\()'
-                ),
-            18 => array(
-                'DISALLOWED_AFTER' => '(?=\()'
-                ),
-            20 => array(
-                'DISALLOWED_AFTER' => '(?=\()'
-                ),
-            24 => array(
-                'DISALLOWED_AFTER' => '(?=\()'
-                ),
-            26 => array(
-                'DISALLOWED_AFTER' => '(?=\()'
-                )
-            )
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/nagios.php b/wiki/vendor/geshi/geshi/src/geshi/nagios.php
deleted file mode 100644
index ac6d63a..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/nagios.php
+++ /dev/null
@@ -1,223 +0,0 @@
-<?php
-/*************************************************************************************
- * nagios.php
- * --------
- * 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.9.0
- * Date Started: 2012/01/19
- *
- * Nagios language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2012/01/19 (1.0.0)
- *  -  First Release
- *
- * TODO (updated 2012/01/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' => 'Nagios',
-    'COMMENT_SINGLE' => array(1 => ';', 2 => '#'),
-    'COMMENT_MULTI' => array(),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'HARDQUOTE' => array("'", "'"),
-    'QUOTEMARKS' => array("'", '"'),
-    'ESCAPE_CHAR' => '\'',
-    'KEYWORDS' => array(
-        1 => array(
-            'define'
-            ),
-        2 => array(
-            'command', 'contact', 'contactgroup', 'host', 'hostdependency',
-            'hostescalation', 'hostextinfo', 'hostgroup', 'service',
-            'servicedependency', 'serviceescalation',
-            'serviceextinfo', 'servicegroup', 'timeperiod'
-            ),
-        3 => array(
-            'active_checks_enabled', 'passive_checks_enabled', 'alias',
-            'display_name', 'host_name', 'address', 'hostgroups', 'parents',
-            'hostgroup_members', 'members', 'service_description',
-            'servicegroups', 'is_volatile', 'servicegroup_name',
-            'servicegroup_members', 'contact_name', 'contactgroups', 'email',
-            'pager', 'can_submit_commands', 'contactgroup_name',
-            'contactgroup_members', 'host_notifications_enabled',
-            'service_notifications_enabled', 'host_notification_period',
-            'service_notification_period', 'host_notification_options',
-            'service_notification_options', 'host_notification_commands',
-            'service_notification_commands', 'check_command',
-            'check_freshness', 'check_interval', 'check_period', 'contacts',
-            'contact_groups', 'event_handler', 'event_handler_enabled',
-            'flap_detection_enabled', 'flap_detection_options',
-            'freshness_threshold', 'initial_state', 'low_flap_threshold',
-            'high_flap_threshold', 'max_check_attempts',
-            'notification_interval', 'first_notification_delay',
-            'notification_period', 'notification_options',
-            'notifications_enabled', 'stalking_options', 'notes', 'notes_url',
-            'action_url', 'icon_image', 'icon_image_alt', 'vrml_image',
-            'statusmap_image', '2d_coords', '3d_coords', 'obsess_over_host',
-            'obsess_over_hostver_service', 'process_perf_data',
-            'retain_status_information', 'retain_nonstatus_information',
-            'retry_interval', 'register', 'use', 'name', 'timeperiod_name',
-            'exclude', 'command_name', 'command_line', 'dependent_host_name',
-            'dependent_hostgroup_name', 'dependent_service_description',
-            'inherits_parent', 'execution_failure_criteria',
-            'notification_failure_criteria', 'dependency_period',
-            'first_notification', 'last_notification', 'escalation_period',
-            'escalation_options'
-            ),
-        4 => array(
-            'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday',
-            'sunday', 'january', 'february', 'march', 'april', 'may', 'june',
-            'july', 'august', 'september', 'october', 'november', 'december',
-            'day'
-            )
-        ),
-    'SYMBOLS' => array(
-        0 => array(
-            '{', '}', ',', '+'
-            )
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false,
-        2 => false,
-        3 => false,
-        4 => false,
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'font-weight:bold;color:#FFDCA8;',
-            2 => 'font-weight:bold;color #FFA858;',
-            3 => 'font-weight:bold;color:#00C0C0;',
-            4 => 'font-weight:bold;color:#C0C0FF;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'font-weight:bold;color:#000000;'
-            ),
-        'NUMBERS' => array(
-            0 => ''
-            ),
-        'COMMENTS' => array(
-            0 => 'color: #AAAAAA; font-style: italic;',
-            1 => 'color: #AAAAAA; font-style: italic;',
-            2 => 'color: #AAAAAA; font-style: italic;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #009900;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #660066;',
-            'HARD' => 'color: #660066;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #000099; font-weight: bold;'
-            ),
-        'METHODS' => array(
-            1 => 'color: #006600;'
-            ),
-        'REGEXPS' => array(
-            0 => 'font-weight:bold;color:#808080;',
-            1 => 'font-weight:bold;color:#000080;',
-            2 => 'font-weight:bold;color:red;',
-            3 => 'font-weight:bold;color:#808000;',
-            4 => 'font-weight:bold;color:blue;',
-            5 => 'font-weight:bold;color:#C0FFC0;',
-            ),
-        'SCRIPT' => array(
-            0 => '',
-            )
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(
-        1 => '\\'
-        ),
-    'REGEXPS' => array(
-        // Custom macros
-        0 => array(
-            GESHI_SEARCH => '(\$[a-zA-Z_]+\$)',
-            GESHI_REPLACE => '\\1',
-            GESHI_MODIFIERS => '',
-            GESHI_BEFORE => '',
-            GESHI_AFTER => '',
-            ),
-        // Custom macro definitions
-        1 => array(
-            GESHI_SEARCH => '(\A|\s)(_[a-zA-Z_]+)',
-            GESHI_REPLACE => '\\2',
-            GESHI_MODIFIERS => '',
-            GESHI_BEFORE => '\\1',
-            GESHI_AFTER => '',
-            ),
-        // $USERxx$
-        2 => array(
-            GESHI_SEARCH => '(\$USER[0-9]+\$)',
-            GESHI_REPLACE => '\\1',
-            GESHI_MODIFIERS => '',
-            GESHI_BEFORE => '',
-            GESHI_AFTER => '',
-            ),
-        // $ARGxx$
-        3 => array(
-            GESHI_SEARCH => '(\$ARG[1-9]\$)',
-            GESHI_REPLACE => '\\1',
-            GESHI_MODIFIERS => '',
-            GESHI_BEFORE => '',
-            GESHI_AFTER => '',
-            ),
-        // register 0
-        4 => array(
-            GESHI_SEARCH => '(\bregister[\\x20\\t]+[01])',
-            GESHI_REPLACE => '\\1',
-            GESHI_MODIFIERS => '',
-            GESHI_BEFORE => '',
-            GESHI_AFTER => '',
-            ),
-        // use
-        5 => array(
-            GESHI_SEARCH => '(use[\\x20\\t]+[^\\x20\\t]+)([\\x20\\t]*[$;#])',
-            GESHI_REPLACE => '\\2',
-            GESHI_MODIFIERS => '',
-            GESHI_BEFORE => '\\1',
-            GESHI_AFTER => '',
-            ),
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => '',
-        4 => ''
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        0 => false
-        ),
-    'TAB_WIDTH' => 4,
-    'PARSER_CONTROL' => array(
-        'ENABLE_FLAGS' => array(
-            'NUMBERS' => GESHI_NEVER
-            )
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/netrexx.php b/wiki/vendor/geshi/geshi/src/geshi/netrexx.php
deleted file mode 100644
index 38e09fa..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/netrexx.php
+++ /dev/null
@@ -1,161 +0,0 @@
-<?php
-/*************************************************************************************
- * netrexx.php
- * ---------------------------------
- * Author: Jon Wolfers (sahananda@windhorse.biz)
- * Contributors:
- *    - Walter Pachl (pachl@chello.at)
- * Copyright: (c) 2008 Jon Wolfers, (c) 2012 Walter Pachl
- * Release Version: 1.0.9.0
- * Date Started: 2008/01/07
- *
- * NetRexx language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2012/07/29 (1.0.0)
- *    -  tried to get it syntactically right
- *
- * TODO (updated 2012/07/29)
- * -------------------------
- *   -  Get it working on rosettacode.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' => 'NetRexx',
-    'COMMENT_SINGLE' => array(1 => '--'),
-    'COMMENT_MULTI' => array('/*' => '*/'),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array("'", '"'),
-    'ESCAPE_CHAR' => '',
-    'KEYWORDS' => array(
-        1 => array(
-            'class', 'do', 'exit', 'if', 'import', 'iterate', 'leave',
-            'loop', 'nop', 'numeric', 'package', 'parse', 'properties',
-            'return', 'say', 'select', 'signal', 'trace'
-            ),
-        2 => array(
-            'abstract', 'adapter', 'all', 'ask', 'binary', 'case',
-            'constant', 'dependent', 'deprecated', 'extends', 'final',
-            'implements', 'inheritable', 'interface', 'label', 'methods',
-            'native', 'off', 'private', 'protect', 'public', 'results',
-            'returns', 'shared', 'signals', 'source', 'static',
-            'transient', 'unused', 'uses', 'version', 'volatile'
-            ),
-        3 => array(
-            'catch', 'else', 'end', 'finally', 'otherwise', 'then', 'when'
-            ),
-        4 => array(
-            'rc', 'result', 'self', 'sigl', 'super'
-            ),
-        5 => array(
-            'placeholderforoorexxdirectives'
-            ),
-        6 => array(
-            'abbrev', 'abs', 'b2x', 'c2d', 'c2x', 'center', 'centre',
-            'changestr', 'compare', 'copies', 'copyindexed', 'countstr',
-            'd2c', 'd2x', 'datatype', 'delstr', 'delword', 'exists',
-            'formword', 'hashcode', 'insert', 'lastpos', 'left', 'lower',
-            'max', 'min', 'noteq', 'noteqs', 'opadd', 'opand', 'opcc',
-            'opccblank', 'opdiv', 'opdivi', 'opeq', 'opeqs', 'opgt',
-            'opgteq', 'opgteqs', 'opgts', 'oplt', 'oplteq', 'oplteqs',
-            'oplts', 'opminus', 'opmult', 'opnot', 'opor', 'opplus',
-            'oppow', 'oprem', 'opsub', 'opxor', 'overlay', 'pos position',
-            'reverse', 'right', 'sequence', 'setdigits', 'setform',
-            'sign', 'space', 'strip', 'substr', 'subword', 'toboolean',
-            'tobyte', 'tochar', 'todouble', 'tofloat', 'toint', 'tolong',
-            'toshort', 'tostring', 'translate', 'trunc', 'upper',
-            'verify', 'word', 'wordindex', 'wordlength', 'wordpos',
-            'words', 'x2b', 'x2c', 'x2d'
-            )
-        ),
-    'SYMBOLS' => array(
-        '(', ')', '<', '>', '[', ']', '=', '+', '-', '*', '/', '!', '%', '^', '&', ':',
-        '<', '>'
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => true,
-        1 => false,
-        2 => false,
-        3 => false,
-        4 => false,
-        5 => false,
-        6 => false
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #b1b100;',
-            2 => 'color: #ff0000; font-weight: bold;',
-            3 => 'color: #00ff00; font-weight: bold;',
-            4 => 'color: #0000ff; font-weight: bold;',
-            5 => 'color: #880088; font-weight: bold;',
-            6 => 'color: #888800; font-weight: bold;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #666666;',
-            'MULTI' => 'color: #808080;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #000099; font-weight: bold;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #66cc66;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #ff0000;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #cc66cc;'
-            ),
-        'METHODS' => array(
-            1 => 'color: #202020;',
-            2 => 'color: #202020;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #66cc66;'
-            ),
-        'REGEXPS' => array(
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => '',
-        4 => '',
-        5 => '',
-        6 => ''
-        ),
-    'OOLANG' => true,
-    'OBJECT_SPLITTERS' => array(
-        1 => '.'
-        ),
-    'REGEXPS' => array(
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        ),
-    'TAB_WIDTH' => 4
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/newlisp.php b/wiki/vendor/geshi/geshi/src/geshi/newlisp.php
deleted file mode 100644
index b5a9431..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/newlisp.php
+++ /dev/null
@@ -1,189 +0,0 @@
-<?php
-/*************************************************************************************
- * newlisp.php
- * ----------
- * Author: cormullion (cormullion@mac.com) Sept 2009
- * Copyright: (c) 2009 Cormullion (http://unbalanced-parentheses.nfshost.com/)
- * Release Version: 1.0.9.0
- * Date Started: 2009/09/30
- *
- * newLISP language file for GeSHi.
- *
- * based on work by Lutz Mueller and Jeff Ober
- *
- * CHANGES
- * -------
- * 2009/09/30 (1.0.8.6)
- *  -  First Release
- *
- * TODO (updated 2009/09/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' => 'newlisp',
-    'COMMENT_SINGLE' => array(1 => ';', 2 => '#'),
-    'COMMENT_MULTI' => array('[text]' => '[/text]', '{' => '}'), // also used for strings
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array('"'),
-    'ESCAPE_CHAR' => '\\',
-    'NUMBERS' => GESHI_NUMBER_INT_BASIC |  GESHI_NUMBER_OCT_PREFIX | GESHI_NUMBER_HEX_PREFIX | GESHI_NUMBER_FLT_SCI_ZERO,
-    'TAB_WIDTH' => 2,
-    'KEYWORDS' => array(
-        1 => array(
-            'NaN?','abort','abs','acos','acosh','add','address','amb','and',
-            'append','append-file','apply','args','array','array-list','array?',
-            'asin','asinh','assoc','atan','atan2','atanh','atom?','base64-dec',
-            'base64-enc','bayes-query','bayes-train','begin','beta','betai',
-            'bind','binomial','bits','callback','case','catch','ceil',
-            'change-dir','char','chop','clean','close','command-event','cond',
-            'cons','constant','context','context?','copy','copy-file','cos',
-            'cosh','count','cpymem','crc32','crit-chi2','crit-z','current-line',
-            'curry','date','date-value','debug','dec','def-new','default',
-            'define','define-macro','delete','delete-file','delete-url',
-            'destroy','det','device','difference','directory','directory?',
-            'div','do-until','do-while','doargs','dolist','dostring','dotimes',
-            'dotree','dump','dup','empty?','encrypt','ends-with','env','erf',
-            'error-event','estack','eval','eval-string','exec','exists','exit',
-            'exp','expand','explode','factor','fft','file-info','file?',
-            'filter','find','find-all','first','flat','float','float?','floor',
-            'flt','for','for-all','fork','format','fv','gammai','gammaln','gcd',
-            'get-char','get-float','get-int','get-long','get-string','get-url',
-            'global','global?','if','if-not','ifft','import','inc','index',
-            'inf?','int','integer','integer?','intersect','invert','irr','join',
-            'lambda','lambda?','last','last-error','legal?','length','let',
-            'letex','letn','list','list?','load','local','log','lookup',
-            'lower-case','macro?','main-args','make-dir','map','mat','match',
-            'max','member','min','mod','mul','multiply','name','net-accept',
-            'net-close','net-connect','net-error','net-eval','net-interface',
-            'net-listen','net-local','net-lookup','net-peek','net-peer',
-            'net-ping','net-receive','net-receive-from','net-receive-udp',
-            'net-select','net-send','net-send-to','net-send-udp','net-service',
-            'net-sessions','new','nil','nil?','normal','not','now','nper','npv',
-            'nth','null?','number?','open','or','pack','parse','parse-date',
-            'peek','pipe','pmt','pop','pop-assoc','post-url','pow',
-            'pretty-print','primitive?','print','println','prob-chi2','prob-z',
-            'process','prompt-event','protected?','push','put-url','pv','quote',
-            'quote?','rand','random','randomize','read-buffer','read-char',
-            'read-expr','read-file','read-key','read-line','read-utf8',
-            'real-path','receive','ref','ref-all','regex','regex-comp',
-            'remove-dir','rename-file','replace','reset','rest','reverse',
-            'rotate','round','save','search','seed','seek','select','semaphore',
-            'send','sequence','series','set','set-locale','set-ref',
-            'set-ref-all','setf','setq','sgn','share','signal','silent','sin',
-            'sinh','sleep','slice','sort','source','spawn','sqrt','starts-with',
-            'string','string?','sub','swap','sym','symbol?','symbols','sync',
-            'sys-error','sys-info','tan','tanh','throw','throw-error','time',
-            'time-of-day','timer','title-case','trace','trace-highlight',
-            'transpose','trim','true','true?','unicode','unify','unique',
-            'unless','unpack','until','upper-case','utf8','utf8len','uuid',
-            'wait-pid','when','while','write-buffer','write-char','write-file',
-            'write-line','xfer-event','xml-error','xml-parse','xml-type-tags',
-            'zero?'
-            )
-        ),
-    'SYMBOLS' => array(
-        0 => array(
-            '(', ')','\''
-            ),
-        1 => array(
-            '!','!=','$','%','&','*','+','-','/',':',
-            '<','<<','<=','=','>','>=','>>','^','|'
-            )
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #0000AA;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #808080; font-style: italic;',
-            2 => 'color: #808080; font-style: italic;',
-            'MULTI' => 'color: #00aa00; font-style: italic;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #009900;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #66cc66;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #009900;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #777700;'
-            ),
-        'METHODS' => array(
-            0 => 'color: #000099;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #AA0000;',
-            1 => 'color: #0000AA;'
-            ),
-        'REGEXPS' => array(
-            0 => 'color: #00aa00;',
-            1 => 'color: #00aa00;',
-            2 => 'color: #00aa00;',
-            3 => 'color: #00aa00;',
-            4 => 'color: #00aa00;',
-            5 => 'color: #AA0000;'
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => 'http://www.newlisp.org/downloads/newlisp_manual.html#{FNAME}'
-        ),
-    'OOLANG' => true,
-    'OBJECT_SPLITTERS' => array(':'),
-    'REGEXPS' => array(
-        // tags in newlispdoc
-        0 => "\s+@\S*?\s+",
-        // dollar sign symbols
-        1 => "[\\$]\w*",
-        // curly-braced string literals
-        2 => "{[^{}]*?}",
-        // [text] multi-line strings
-        3 => "(?s)\[text\].*\[\/text\](?-s)",
-        // [code] multi-line blocks
-        4 => "(?s)\[code\].*\[\/code\](?-s)",
-        // variable references
-        5 => "'[\w\-]+"
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        ),
-    'PARSER_CONTROL' => array(
-        'OOLANG' => array(
-            'MATCH_AFTER' => '[a-zA-Z][a-zA-Z0-9_\-]*'
-            ),
-        'KEYWORDS' => array(
-            'DISALLOWED_BEFORE' => '(?<=[^\w\-])',
-            )
-        ),
-
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/nginx.php b/wiki/vendor/geshi/geshi/src/geshi/nginx.php
deleted file mode 100644
index 47ced0a..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/nginx.php
+++ /dev/null
@@ -1,868 +0,0 @@
-<?php
-/*************************************************************************************
- * nginx.php
- * ------
- * Author: Cliff Wells (cliff@nginx.org)
- * Copyright: (c) Cliff Wells (http://wiki.nginx.org/CliffWells)
- * Contributors:
- *  - Deoren Moor (http://www.whyaskwhy.org/blog/)
- *  - Thomas Joiner
- * Release Version: 1.0.9.0
- * Date Started: 2010/08/24
- *
- * nginx language file for GeSHi.
- *
- * Original release found at http://forum.nginx.org/read.php?2,123194,123210
- *
- * CHANGES
- * -------
- * 2012/08/29
- *   - Clean up the duplicate keywords
- *
- * 2012/08/26
- *   - Synchronized with directives listed on wiki/doc pages
- *   - Misc formatting tweaks and language fixes to pass langcheck
- *
- * 2010/08/24
- *   - First Release
- *
- * TODO (updated 2012/08/26)
- * -------------------------
- *  - Verify PARSER_CONTROL items are correct
- *  - Verify REGEXPS
- *  - Verify ['STYLES']['REGEXPS'] entries
- *
- *
- *************************************************************************************
- *
- *     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' => 'nginx',
-    'COMMENT_SINGLE' => array(1 => '#'),
-    'COMMENT_MULTI' => array(),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array("'", '"'),
-    'ESCAPE_CHAR' => '\\',
-    'KEYWORDS' => array(
-        1 => array( // core module
-            // http://wiki.nginx.org/CoreModule
-            // http://nginx.org/en/docs/ngx_core_module.html
-            'daemon',
-            'debug_points',
-            'env',
-            'error_log',
-            'events',
-            'include',
-            'lock_file',
-            'master_process',
-            'pcre_jit',
-            'pid',
-            'ssl_engine',
-            'timer_resolution',
-            'user',
-            'worker_cpu_affinity',
-            'worker_priority',
-            'worker_processes',
-            'worker_rlimit_core',
-            'worker_rlimit_nofile',
-            'worker_rlimit_sigpending',
-            'working_directory',
-            // see EventsModule due to organization of wiki
-            //'accept_mutex',
-            //'accept_mutex_delay',
-            //'debug_connection',
-            //'multi_accept',
-            //'use',
-            //'worker_connections',
-            ),
-        2 => array( // events module
-            // http://wiki.nginx.org/EventsModule
-            // http://nginx.org/en/docs/ngx_core_module.html
-            'accept_mutex',
-            'accept_mutex_delay',
-            'debug_connection',
-            'devpoll_changes',
-            'devpoll_events',
-            'kqueue_changes',
-            'kqueue_events',
-            'epoll_events',
-            'multi_accept',
-            'rtsig_signo',
-            'rtsig_overflow_events',
-            'rtsig_overflow_test',
-            'rtsig_overflow_threshold',
-            'use',
-            'worker_connections',
-            ),
-        3 => array( // http module
-            // http://wiki.nginx.org/HttpCoreModule
-            // http://nginx.org/en/docs/http/ngx_http_core_module.html
-            'aio',
-            'alias',
-            'chunked_transfer_encoding',
-            'client_body_buffer_size',
-            'client_body_in_file_only',
-            'client_body_in_single_buffer',
-            'client_body_temp_path',
-            'client_body_timeout',
-            'client_header_buffer_size',
-            'client_header_timeout',
-            'client_max_body_size',
-            'connection_pool_size',
-            'default_type',
-            'directio',
-            'directio_alignment',
-            'disable_symlinks',
-            'error_page',
-            'etag',
-            'http',
-            'if_modified_since',
-            'ignore_invalid_headers',
-            'internal',
-            'keepalive_disable',
-            'keepalive_requests',
-            'keepalive_timeout',
-            'large_client_header_buffers',
-            'limit_except',
-            'limit_rate',
-            'limit_rate_after',
-            'lingering_close',
-            'lingering_time',
-            'lingering_timeout',
-            'listen',
-            'location',
-            'log_not_found',
-            'log_subrequest',
-            'max_ranges',
-            'merge_slashes',
-            'msie_padding',
-            'msie_refresh',
-            'open_file_cache',
-            'open_file_cache_errors',
-            'open_file_cache_min_uses',
-            'open_file_cache_valid',
-            'optimize_server_names',
-            'port_in_redirect',
-            'postpone_output',
-            'read_ahead',
-            'recursive_error_pages',
-            'request_pool_size',
-            'reset_timedout_connection',
-            'resolver',
-            'resolver_timeout',
-            'root',
-            'satisfy',
-            'satisfy_any',
-            'send_lowat',
-            'send_timeout',
-            'sendfile',
-            'sendfile_max_chunk',
-            'server',
-            'server_name',
-            'server_name_in_redirect',
-            'server_names_hash_bucket_size',
-            'server_names_hash_max_size',
-            'server_tokens',
-            'tcp_nodelay',
-            'tcp_nopush',
-            'try_files',
-            'types',
-            'types_hash_bucket_size',
-            'types_hash_max_size',
-            'underscores_in_headers',
-            'variables_hash_bucket_size',
-            'variables_hash_max_size',
-            ),
-        4 => array( // upstream module
-            // http://wiki.nginx.org/HttpUpstreamModule
-            // http://nginx.org/en/docs/http/ngx_http_upstream_module.html
-            'ip_hash',
-            'keepalive',
-            'least_conn',
-            // Use the documentation from the core module since every conf will have at least one of those.
-            //'server',
-            'upstream',
-            ),
-        5 => array( // access module
-            // http://wiki.nginx.org/HttpAccessModule
-            // http://nginx.org/en/docs/http/ngx_http_access_module.html
-            'deny',
-            'allow',
-            ),
-        6 => array( // auth basic module
-            // http://wiki.nginx.org/HttpAuthBasicModule
-            // http://nginx.org/en/docs/http/ngx_http_auth_basic_module.html
-            'auth_basic',
-            'auth_basic_user_file'
-            ),
-        7 => array( // auto index module
-            // http://wiki.nginx.org/HttpAutoindexModule
-            // http://nginx.org/en/docs/http/ngx_http_autoindex_module.html
-            'autoindex',
-            'autoindex_exact_size',
-            'autoindex_localtime',
-            ),
-        8 => array( // browser module
-            // http://wiki.nginx.org/HttpBrowserModule
-            // http://nginx.org/en/docs/http/ngx_http_browser_module.html
-            'ancient_browser',
-            'ancient_browser_value',
-            'modern_browser',
-            'modern_browser_value',
-            ),
-        9 => array( // charset module
-            // http://wiki.nginx.org/HttpCharsetModule
-            // http://nginx.org/en/docs/http/ngx_http_charset_module.html
-            'charset',
-            'charset_map',
-            'charset_types',
-            'override_charset',
-            'source_charset',
-            ),
-        10 => array( // empty gif module
-            // http://wiki.nginx.org/HttpEmptyGifModule
-            // http://nginx.org/en/docs/http/ngx_http_empty_gif_module.html
-            'empty_gif',
-            ),
-        11 => array( // fastcgi module
-            // http://wiki.nginx.org/HttpFastcgiModule
-            // http://nginx.org/en/docs/http/ngx_http_fastcgi_module.html
-            'fastcgi_bind',
-            'fastcgi_buffer_size',
-            'fastcgi_buffers',
-            'fastcgi_busy_buffers_size',
-            'fastcgi_cache',
-            'fastcgi_cache_bypass',
-            'fastcgi_cache_key',
-            'fastcgi_cache_lock',
-            'fastcgi_cache_lock_timeout',
-            'fastcgi_cache_methods',
-            'fastcgi_cache_min_uses',
-            'fastcgi_cache_path',
-            'fastcgi_cache_use_stale',
-            'fastcgi_cache_valid',
-            'fastcgi_connect_timeout',
-            'fastcgi_hide_header',
-            'fastcgi_ignore_client_abort',
-            'fastcgi_ignore_headers',
-            'fastcgi_index',
-            'fastcgi_intercept_errors',
-            'fastcgi_keep_conn',
-            'fastcgi_max_temp_file_size',
-            'fastcgi_next_upstream',
-            'fastcgi_no_cache',
-            'fastcgi_param',
-            'fastcgi_pass',
-            'fastcgi_pass_header',
-            'fastcgi_pass_request_body',
-            'fastcgi_pass_request_headers',
-            'fastcgi_read_timeout',
-            'fastcgi_redirect_errors',
-            'fastcgi_send_timeout',
-            'fastcgi_split_path_info',
-            'fastcgi_store',
-            'fastcgi_store_access',
-            'fastcgi_temp_file_write_size',
-            'fastcgi_temp_path',
-            ),
-        12 => array( // geo module
-            // http://wiki.nginx.org/HttpGeoModule
-            // http://nginx.org/en/docs/http/ngx_http_geo_module.html
-            'geo'
-            ),
-        13 => array( // gzip module
-            // http://wiki.nginx.org/HttpGzipModule
-            // http://nginx.org/en/docs/http/ngx_http_gzip_module.html
-            'gzip',
-            'gzip_buffers',
-            'gzip_comp_level',
-            'gzip_disable',
-            'gzip_min_length',
-            'gzip_http_version',
-            'gzip_proxied',
-            'gzip_types',
-            'gzip_vary',
-            ),
-        14 => array( // headers module
-            // http://wiki.nginx.org/HttpHeadersModule
-            // http://nginx.org/en/docs/http/ngx_http_headers_module.html
-            'add_header',
-            'expires',
-            ),
-        15 => array( // index module
-            // http://wiki.nginx.org/HttpIndexModule
-            // http://nginx.org/en/docs/http/ngx_http_index_module.html
-            'index',
-            ),
-        16 => array( // limit requests module
-            // http://wiki.nginx.org/HttpLimitReqModule
-            // http://nginx.org/en/docs/http/ngx_http_limit_req_module.html
-            'limit_req',
-            'limit_req_log_level',
-            'limit_req_zone',
-            ),
-        17 => array( // referer module
-            // http://wiki.nginx.org/HttpRefererModule
-            // http://nginx.org/en/docs/http/ngx_http_referer_module.html
-            'referer_hash_bucket_size',
-            'referer_hash_max_size',
-            'valid_referers',
-            ),
-        18 => array( // limit zone module
-            // deprecated in 1.1.8
-            // http://wiki.nginx.org/HttpLimitZoneModule
-            'limit_zone',
-            // Covered by documentation for ngx_http_limit_conn_module
-            //'limit_conn',
-            ),
-        19 => array( // limit connection module
-            // http://wiki.nginx.org/HttpLimitConnModule
-            // http://nginx.org/en/docs/http/ngx_http_limit_conn_module.html
-            'limit_conn',
-            'limit_conn_zone',
-            'limit_conn_log_level',
-            ),
-        20 => array( // log module
-            // http://wiki.nginx.org/HttpLogModule
-            // http://nginx.org/en/docs/http/ngx_http_log_module.html
-            'access_log',
-            'log_format',
-            // Appears to be deprecated
-            'log_format_combined',
-            'open_log_file_cache',
-            ),
-        21 => array( // map module
-            // http://wiki.nginx.org/HttpMapModule
-            // http://nginx.org/en/docs/http/ngx_http_map_module.html
-            'map',
-            'map_hash_max_size',
-            'map_hash_bucket_size',
-            ),
-        22 => array( // memcached module
-            // http://wiki.nginx.org/HttpMemcachedModule
-            // http://nginx.org/en/docs/http/ngx_http_memcached_module.html
-            'memcached_buffer_size',
-            'memcached_connect_timeout',
-            'memcached_next_upstream',
-            'memcached_pass',
-            'memcached_read_timeout',
-            'memcached_send_timeout',
-            ),
-        23 => array( // proxy module
-            // http://wiki.nginx.org/HttpProxyModule
-            // http://nginx.org/en/docs/http/ngx_http_proxy_module.html
-            'proxy_bind',
-            'proxy_buffer_size',
-            'proxy_buffering',
-            'proxy_buffers',
-            'proxy_busy_buffers_size',
-            'proxy_cache',
-            'proxy_cache_bypass',
-            'proxy_cache_key',
-            'proxy_cache_lock',
-            'proxy_cache_lock_timeout',
-            'proxy_cache_methods',
-            'proxy_cache_min_uses',
-            'proxy_cache_path',
-            'proxy_cache_use_stale',
-            'proxy_cache_valid',
-            'proxy_connect_timeout',
-            'proxy_cookie_domain',
-            'proxy_cookie_path',
-            'proxy_headers_hash_bucket_size',
-            'proxy_headers_hash_max_size',
-            'proxy_hide_header',
-            'proxy_http_version',
-            'proxy_ignore_client_abort',
-            'proxy_ignore_headers',
-            'proxy_intercept_errors',
-            'proxy_max_temp_file_size',
-            'proxy_method',
-            'proxy_next_upstream',
-            'proxy_no_cache',
-            'proxy_pass',
-            'proxy_pass_header',
-            'proxy_pass_request_body',
-            'proxy_pass_request_headers',
-            'proxy_redirect',
-            'proxy_read_timeout',
-            'proxy_redirect_errors',
-            'proxy_send_lowat',
-            'proxy_send_timeout',
-            'proxy_set_body',
-            'proxy_set_header',
-            'proxy_ssl_session_reuse',
-            'proxy_store',
-            'proxy_store_access',
-            'proxy_temp_file_write_size',
-            'proxy_temp_path',
-            'proxy_upstream_fail_timeout',
-            'proxy_upstream_max_fails',
-            ),
-        24 => array( // rewrite module
-            // http://wiki.nginx.org/HttpRewriteModule
-            // http://nginx.org/en/docs/http/ngx_http_rewrite_module.html
-            'break',
-            'if',
-            'return',
-            'rewrite',
-            'rewrite_log',
-            'set',
-            'uninitialized_variable_warn',
-            ),
-        25 => array( // ssi module
-            // http://wiki.nginx.org/HttpSsiModule
-            // http://nginx.org/en/docs/http/ngx_http_ssi_module.html
-            'ssi',
-            'ssi_silent_errors',
-            'ssi_types',
-            'ssi_value_length',
-            ),
-        26 => array( // user id module
-            // http://wiki.nginx.org/HttpUseridModule
-            // http://nginx.org/en/docs/http/ngx_http_userid_module.html
-            'userid',
-            'userid_domain',
-            'userid_expires',
-            'userid_name',
-            'userid_p3p',
-            'userid_path',
-            'userid_service',
-            ),
-        27 => array( // addition module
-            // http://wiki.nginx.org/HttpAdditionModule
-            // http://nginx.org/en/docs/http/ngx_http_addition_module.html
-            'add_before_body',
-            'add_after_body',
-            'addition_types',
-            ),
-        28 => array( // embedded Perl module
-            // http://wiki.nginx.org/HttpPerlModule
-            // http://nginx.org/en/docs/http/ngx_http_perl_module.html
-            'perl',
-            'perl_modules',
-            'perl_require',
-            'perl_set',
-            ),
-        29 => array( // flash video files module
-            // http://wiki.nginx.org/HttpFlvModule
-            // http://nginx.org/en/docs/http/ngx_http_flv_module.html
-            'flv',
-            ),
-        30 => array( // gzip precompression module
-            // http://wiki.nginx.org/HttpGzipStaticModule
-            // http://nginx.org/en/docs/http/ngx_http_gzip_static_module.html
-            'gzip_static',
-            // Removed to remove duplication with ngx_http_gzip_module
-            //'gzip_http_version',
-            //'gzip_proxied',
-            //'gzip_disable',
-            //'gzip_vary',
-            ),
-        31 => array( // random index module
-            // http://wiki.nginx.org/HttpRandomIndexModule
-            // http://nginx.org/en/docs/http/ngx_http_random_index_module.html
-            'random_index',
-            ),
-        32 => array( // real ip module
-            // http://wiki.nginx.org/HttpRealipModule
-            // http://nginx.org/en/docs/http/ngx_http_realip_module.html
-            'set_real_ip_from',
-            'real_ip_header',
-            'real_ip_recursive',
-            ),
-        33 => array( // https module
-            // http://wiki.nginx.org/HttpSslModule
-            // http://nginx.org/en/docs/http/ngx_http_ssl_module.html
-            'ssl',
-            'ssl_certificate',
-            'ssl_certificate_key',
-            'ssl_ciphers',
-            'ssl_client_certificate',
-            'ssl_crl',
-            'ssl_dhparam',
-            // Use the documentation for the core module since it links to the
-            // original properly
-            //'ssl_engine',
-            'ssl_prefer_server_ciphers',
-            'ssl_protocols',
-            'ssl_session_cache',
-            'ssl_session_timeout',
-            'ssl_verify_client',
-            'ssl_verify_depth',
-            ),
-        34 => array( // status module
-            // http://wiki.nginx.org/HttpStubStatusModule
-            'stub_status',
-            ),
-        35 => array( // substitution module
-            // http://wiki.nginx.org/HttpSubModule
-            // http://nginx.org/en/docs/http/ngx_http_sub_module.html
-            'sub_filter',
-            'sub_filter_once',
-            'sub_filter_types',
-            ),
-        36 => array( // NginxHttpDavModule
-            // http://wiki.nginx.org/HttpDavModule
-            // http://nginx.org/en/docs/http/ngx_http_dav_module.html
-            'dav_access',
-            'dav_methods',
-            'create_full_put_path',
-            'min_delete_depth',
-            ),
-        37 => array( // Google performance tools module
-            // http://wiki.nginx.org/GooglePerftoolsModule
-            'google_perftools_profiles',
-            ),
-        38 => array( // xslt module
-            // http://wiki.nginx.org/HttpXsltModule
-            // http://nginx.org/en/docs/http/ngx_http_xslt_module.html
-            'xslt_entities',
-            'xslt_param',
-            'xslt_string_param',
-            'xslt_stylesheet',
-            'xslt_types',
-            ),
-        39 => array( // uWSGI module
-            // http://wiki.nginx.org/HttpUwsgiModule
-            'uwsgi_bind',
-            'uwsgi_buffer_size',
-            'uwsgi_buffering',
-            'uwsgi_buffers',
-            'uwsgi_busy_buffers_size',
-            'uwsgi_cache',
-            'uwsgi_cache_bypass',
-            'uwsgi_cache_key',
-            'uwsgi_cache_lock',
-            'uwsgi_cache_lock_timeout',
-            'uwsgi_cache_methods',
-            'uwsgi_cache_min_uses',
-            'uwsgi_cache_path',
-            'uwsgi_cache_use_stale',
-            'uwsgi_cache_valid',
-            'uwsgi_connect_timeout',
-            'uwsgi_hide_header',
-            'uwsgi_ignore_client_abort',
-            'uwsgi_ignore_headers',
-            'uwsgi_intercept_errors',
-            'uwsgi_max_temp_file_size',
-            'uwsgi_modifier',
-            'uwsgi_next_upstream',
-            'uwsgi_no_cache',
-            'uwsgi_param',
-            'uwsgi_pass',
-            'uwsgi_pass_header',
-            'uwsgi_pass_request_body',
-            'uwsgi_pass_request_headers',
-            'uwsgi_read_timeout',
-            'uwsgi_send_timeout',
-            'uwsgi_store',
-            'uwsgi_store_access',
-            'uwsgi_string',
-            'uwsgi_temp_file_write_size',
-            'uwsgi_temp_path',
-            ),
-        40 => array( // SCGI module
-            // http://wiki.nginx.org/HttpScgiModule
-            // Note: These directives were pulled from nginx 1.2.3
-            //       ngx_http_scgi_module.c source file.
-            'scgi_bind',
-            'scgi_buffering',
-            'scgi_buffers',
-            'scgi_buffer_size',
-            'scgi_busy_buffers_size',
-            'scgi_cache',
-            'scgi_cache_bypass',
-            'scgi_cache_key',
-            'scgi_cache_lock',
-            'scgi_cache_lock_timeout',
-            'scgi_cache_methods',
-            'scgi_cache_min_uses',
-            'scgi_cache_path',
-            'scgi_cache_use_stale',
-            'scgi_cache_valid',
-            'scgi_connect_timeout',
-            'scgi_hide_header',
-            'scgi_ignore_client_abort',
-            'scgi_ignore_headers',
-            'scgi_intercept_errors',
-            'scgi_max_temp_file_size',
-            'scgi_next_upstream',
-            'scgi_no_cache',
-            'scgi_param',
-            'scgi_pass',
-            'scgi_pass_header',
-            'scgi_pass_request_body',
-            'scgi_pass_request_headers',
-            'scgi_read_timeout',
-            'scgi_send_timeout',
-            'scgi_store',
-            'scgi_store_access',
-            'scgi_temp_file_write_size',
-            'scgi_temp_path',
-            ),
-        41 => array( // split clients module
-            // http://wiki.nginx.org/HttpSplitClientsModule
-            // http://nginx.org/en/docs/http/ngx_http_split_clients_module.html
-            'split_clients',
-            ),
-        42 => array( // X-Accel module
-            // http://wiki.nginx.org/X-accel
-            'X-Accel-Redirect',
-            'X-Accel-Buffering',
-            'X-Accel-Charset',
-            'X-Accel-Expires',
-            'X-Accel-Limit-Rate',
-            ),
-        43 => array( // degradation module
-            // http://wiki.nginx.org/HttpDegradationModule
-            'degradation',
-            'degrade',
-            ),
-        44 => array( // GeoIP module
-            // http://wiki.nginx.org/HttpGeoipModule
-            // http://nginx.org/en/docs/http/ngx_http_geoip_module.html
-            'geoip_country',
-            'geoip_city',
-            'geoip_proxy',
-            'geoip_proxy_recursive',
-            ),
-        45 => array( // Image filter module
-            // http://wiki.nginx.org/HttpImageFilterModule
-            // http://nginx.org/en/docs/http/ngx_http_image_filter_module.html
-            'image_filter',
-            'image_filter_buffer',
-            'image_filter_jpeg_quality',
-            'image_filter_sharpen',
-            'image_filter_transparency',
-            ),
-        46 => array( // MP4 module
-            // http://wiki.nginx.org/HttpMp4Module
-            // http://nginx.org/en/docs/http/ngx_http_mp4_module.html
-            'mp4',
-            'mp4_buffer_size',
-            'mp4_max_buffer_size',
-            ),
-        47 => array( // Secure Link module
-            // http://wiki.nginx.org/HttpSecureLinkModule
-            // http://nginx.org/en/docs/http/ngx_http_secure_link_module.html
-            'secure_link',
-            'secure_link_md',
-            'secure_link_secret',
-            ),
-        48 => array( // Mail Core module
-            // http://wiki.nginx.org/MailCoreModule
-            'auth',
-            'imap_capabilities',
-            'imap_client_buffer',
-            'pop_auth',
-            'pop_capabilities',
-            'protocol',
-            'smtp_auth',
-            'smtp_capabilities',
-            'so_keepalive',
-            'timeout',
-            // Removed to prioritize documentation for core module
-            //'listen',
-            //'server',
-            //'server_name',
-            ),
-        49 => array( // Mail Auth module
-            // http://wiki.nginx.org/MailAuthModule
-            'auth_http',
-            'auth_http_header',
-            'auth_http_timeout',
-            ),
-        50 => array( // Mail Proxy module
-            // http://wiki.nginx.org/MailProxyModule
-            'proxy',
-            'proxy_buffer',
-            'proxy_pass_error_message',
-            'proxy_timeout',
-            'xclient',
-            ),
-        51 => array( // Mail SSL module
-            // http://wiki.nginx.org/MailSslModule
-            // Removed to prioritize documentation for http
-            //'ssl',
-            //'ssl_certificate',
-            //'ssl_certificate_key',
-            //'ssl_ciphers',
-            //'ssl_prefer_server_ciphers',
-            //'ssl_protocols',
-            //'ssl_session_cache',
-            //'ssl_session_timeout',
-            'starttls',
-            ),
-        ),
-    'SYMBOLS' => array(
-        '(', ')', '{', '}', '=', '~', ';'
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => true,
-        1 => true,
-        2 => true,
-        3 => true,
-        4 => true,
-        5 => true,
-        6 => true,
-        7 => true,
-        8 => true,
-        9 => true,
-        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,
-        25 => true,
-        26 => true,
-        27 => true,
-        28 => true,
-        29 => true,
-        30 => true,
-        31 => true,
-        32 => true,
-        33 => true,
-        34 => true,
-        35 => true,
-        36 => true,
-        37 => true,
-        38 => true,
-        39 => true,
-        40 => true,
-        41 => true,
-        42 => true,
-        43 => true,
-        44 => true,
-        45 => true,
-        46 => true,
-        47 => true,
-        48 => true,
-        49 => true,
-        50 => true,
-        51 => true,
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #b1b100;',
-            2 => 'color: #000000; font-weight: bold;',
-            3 => 'color: #000066;',
-            4 => 'color: #993333;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #808080; font-style: italic;',
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #000099; font-weight: bold;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #66cc66;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #ff0000;'
-            ),
-        'NUMBERS' => array(
-            ),
-        'METHODS' => array(
-            1 => 'color: #202020;',
-            2 => 'color: #202020;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #66cc66;'
-            ),
-        'REGEXPS' => array(
-            0 => 'color: #000066;',
-            4 => 'color: #000000; font-weight: bold;',
-        ),
-        'SCRIPT' => array()
-        ),
-    'URLS' => array(
-        1 => 'http://wiki.nginx.org/CoreModule#{FNAME}',
-        2 => 'http://wiki.nginx.org/NginxHttpEventsModule#{FNAME}',
-        3 => 'http://wiki.nginx.org/NginxHttpCoreModule#{FNAME}',
-        4 => 'http://wiki.nginx.org/NginxHttpUpstreamModule#{FNAME}',
-        5 => 'http://wiki.nginx.org/NginxHttpAccessModule#{FNAME}',
-        6 => 'http://wiki.nginx.org/NginxHttpAuthBasicModule#{FNAME}',
-        7 => 'http://wiki.nginx.org/NginxHttpAutoIndexModule#{FNAME}',
-        8 => 'http://wiki.nginx.org/NginxHttpBrowserModule#{FNAME}',
-        9 => 'http://wiki.nginx.org/NginxHttpCharsetModule#{FNAME}',
-        10 => 'http://wiki.nginx.org/NginxHttpEmptyGifModule#{FNAME}',
-        11 => 'http://wiki.nginx.org/NginxHttpFcgiModule#{FNAME}',
-        12 => 'http://wiki.nginx.org/NginxHttpGeoModule#{FNAME}',
-        13 => 'http://wiki.nginx.org/NginxHttpGzipModule#{FNAME}',
-        14 => 'http://wiki.nginx.org/NginxHttpHeadersModule#{FNAME}',
-        15 => 'http://wiki.nginx.org/NginxHttpIndexModule#{FNAME}',
-        16 => 'http://wiki.nginx.org/HttpLimitReqModule#{FNAME}',
-        17 => 'http://wiki.nginx.org/NginxHttpRefererModule#{FNAME}',
-        18 => 'http://wiki.nginx.org/NginxHttpLimitZoneModule#{FNAME}',
-        19 => 'http://wiki.nginx.org/HttpLimitConnModule#{FNAME}',
-        20 => 'http://wiki.nginx.org/NginxHttpLogModule#{FNAME}',
-        21 => 'http://wiki.nginx.org/NginxHttpMapModule#{FNAME}',
-        22 => 'http://wiki.nginx.org/NginxHttpMemcachedModule#{FNAME}',
-        23 => 'http://wiki.nginx.org/NginxHttpProxyModule#{FNAME}',
-        24 => 'http://wiki.nginx.org/NginxHttpRewriteModule#{FNAME}',
-        25 => 'http://wiki.nginx.org/NginxHttpSsiModule#{FNAME}',
-        26 => 'http://wiki.nginx.org/NginxHttpUserIdModule#{FNAME}',
-        27 => 'http://wiki.nginx.org/NginxHttpAdditionModule#{FNAME}',
-        28 => 'http://wiki.nginx.org/NginxHttpEmbeddedPerlModule#{FNAME}',
-        29 => 'http://wiki.nginx.org/NginxHttpFlvStreamModule#{FNAME}',
-        30 => 'http://wiki.nginx.org/NginxHttpGzipStaticModule#{FNAME}',
-        31 => 'http://wiki.nginx.org/NginxHttpRandomIndexModule#{FNAME}',
-        32 => 'http://wiki.nginx.org/NginxHttpRealIpModule#{FNAME}',
-        33 => 'http://wiki.nginx.org/NginxHttpSslModule#{FNAME}',
-        34 => 'http://wiki.nginx.org/NginxHttpStubStatusModule#{FNAME}',
-        35 => 'http://wiki.nginx.org/NginxHttpSubModule#{FNAME}',
-        36 => 'http://wiki.nginx.org/NginxHttpDavModule#{FNAME}',
-        37 => 'http://wiki.nginx.org/NginxHttpGooglePerfToolsModule#{FNAME}',
-        38 => 'http://wiki.nginx.org/NginxHttpXsltModule#{FNAME}',
-        39 => 'http://wiki.nginx.org/NginxHttpUwsgiModule#{FNAME}',
-        40 => 'http://wiki.nginx.org/HttpScgiModule',
-        41 => 'http://wiki.nginx.org/HttpSplitClientsModule#{FNAME}',
-        42 => 'http://wiki.nginx.org/X-accel#{FNAME}',
-        43 => 'http://wiki.nginx.org/HttpDegradationModule#{FNAME}',
-        44 => 'http://wiki.nginx.org/HttpGeoipModule#{FNAME}',
-        45 => 'http://wiki.nginx.org/HttpImageFilterModule#{FNAME}',
-        46 => 'http://wiki.nginx.org/HttpMp4Module#{FNAME}',
-        47 => 'http://wiki.nginx.org/HttpSecureLinkModule#{FNAME}',
-        48 => 'http://wiki.nginx.org/MailCoreModule#{FNAME}',
-        49 => 'http://wiki.nginx.org/MailAuthModule#{FNAME}',
-        50 => 'http://wiki.nginx.org/MailProxyModule#{FNAME}',
-        51 => 'http://wiki.nginx.org/MailSslModule#{FNAME}',
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(),
-    'REGEXPS' => array(
-        0 => '[\\$%@]+[a-zA-Z_][a-zA-Z0-9_]*',
-        4 => '&lt;[a-zA-Z_][a-zA-Z0-9_]*&gt;',
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(),
-    'HIGHLIGHT_STRICT_BLOCK' => array()
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/nimrod.php b/wiki/vendor/geshi/geshi/src/geshi/nimrod.php
deleted file mode 100644
index a85edfb..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/nimrod.php
+++ /dev/null
@@ -1,201 +0,0 @@
-<?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/wiki/vendor/geshi/geshi/src/geshi/nsis.php b/wiki/vendor/geshi/geshi/src/geshi/nsis.php
deleted file mode 100644
index 61da046..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/nsis.php
+++ /dev/null
@@ -1,351 +0,0 @@
-<?php
-/*************************************************************************************
- * nsis.php
- * --------
- * 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.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)
- *   - Updated to NSIS 2.07b0.
- * 2005/04/05 (2.0.0)
- *   - Updated to NSIS 2.06.
- * 2004/11/27 (1.0.2)
- *   - Added support for multiple object splitters
- * 2004/10/27 (1.0.1)
- *   - Added support for URLs
- * 2004/08/05 (1.0.0)
- *   - First Release
- *
- * TODO (updated 2004/11/27)
- * -------------------------
- *
- *************************************************************************************
- *
- *     This file is part of GeSHi.
- *
- *   GeSHi is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   GeSHi is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with GeSHi; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- ************************************************************************************/
-
-$language_data = array(
-    'LANG_NAME' => 'NSIS',
-    'COMMENT_SINGLE' => array(1 => ';', 2 => '#'),
-    'COMMENT_MULTI' => array('/*' => '*/'),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array("'",'"','`'),
-    'ESCAPE_CHAR' => '',
-    'KEYWORDS' => array(
-        1 => array(
-            '!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', 'DirText', 'DirVar', 'DirVerify', 'FileErrorText',
-            'Function', 'FunctionEnd', 'Icon', 'InstallButtonText', 'InstallColors', 'InstallDir',
-            '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', 'Unicode', 'UninstallButtonText', 'UninstallCaption', 'UninstallIcon', 'UninstallSubCaption',
-            'UninstallText', 'UninstPage', 'Var', 'VIAddVersionKey', 'VIFileVersion', 'VIProductVersion', 'WindowIcon', 'XPStyle'
-            ),
-        3 => array(
-            'AddSize', 'AllowSkipFiles', 'FileBufSize', 'GetInstDirError', 'PageCallbacks',
-            'SectionIn', 'SetCompress', 'SetCompressorDictSize',
-            'SetDatablockOptimize', 'SetDateSave', 'SetOverwrite', 'SetPluginUnload'
-            ),
-        4 => array(
-            'Abort', 'BringToFront', 'Call', 'CallInstDLL', 'ClearErrors', 'CopyFiles','CreateDirectory',
-            'CreateFont', 'CreateShortCut', 'Delete', 'DeleteINISec', 'DeleteINIStr', 'DeleteRegKey',
-            'DeleteRegValue', 'DetailPrint', 'EnableWindow', 'EnumRegKey', 'EnumRegValue', 'Exch', 'Exec',
-            'ExecShell', 'ExecWait', 'ExpandEnvStrings', 'File', 'FileClose', 'FileOpen', 'FileRead',
-            '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', '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',
-            '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', 'SetRegView', 'SetShellVarContext', 'SetSilent', 'ShowWindow', 'Sleep', 'StrCmp', 'StrCmpS',
-            'StrCpy', 'StrLen', 'UnRegDLL', 'WriteINIStr', 'WriteRegBin', 'WriteRegDWORD', 'WriteRegExpandStr',
-            'WriteRegStr', 'WriteUninstaller'
-            ),
-        5 => array(
-            'all', 'alwaysoff', 'ARCHIVE', 'auto', 'both', 'bzip2', 'checkbox', 'components', 'current',
-            'custom', 'directory', 'false', 'FILE_ATTRIBUTE_ARCHIVE', 'FILE_ATTRIBUTE_HIDDEN', 'FILE_ATTRIBUTE_NORMAL',
-            'FILE_ATTRIBUTE_OFFLINE', 'FILE_ATTRIBUTE_READONLY', 'FILE_ATTRIBUTE_SYSTEM,TEMPORARY',
-            'FILE_ATTRIBUTE_TEMPORARY', 'force', 'HIDDEN', 'hide', 'HKCC', 'HKCR', 'HKCU', 'HKDD', 'HKEY_CLASSES_ROOT',
-            'HKEY_CURRENT_CONFIG', 'HKEY_CURRENT_USER', 'HKEY_DYN_DATA', 'HKEY_LOCAL_MACHINE', 'HKEY_PERFORMANCE_DATA',
-            'HKEY_USERS', 'HKLM', 'HKPD', 'HKU', 'IDABORT', 'IDCANCEL', 'IDIGNORE', 'IDNO', 'IDOK', 'IDRETRY', 'IDYES',
-            'ifdiff', 'ifnewer', 'instfiles', 'lastused', 'leave', 'license', 'listonly', 'lzma', 'manual',
-            'MB_ABORTRETRYIGNORE', 'MB_DEFBUTTON1', 'MB_DEFBUTTON2', 'MB_DEFBUTTON3', 'MB_DEFBUTTON4',
-            'MB_ICONEXCLAMATION', 'MB_ICONINFORMATION', 'MB_ICONQUESTION', 'MB_ICONSTOP', 'MB_OK', 'MB_OKCANCEL',
-            'MB_RETRYCANCEL', 'MB_RIGHT', 'MB_SETFOREGROUND', 'MB_TOPMOST', 'MB_YESNO', 'MB_YESNOCANCEL', 'nevershow',
-            'none', 'normal', 'off', 'OFFLINE', 'on', 'radiobuttons', 'READONLY', 'RO', 'SHCTX', 'SHELL_CONTEXT', 'show',
-            'silent', 'silentlog', 'SW_HIDE', 'SW_SHOWMAXIMIZED', 'SW_SHOWMINIMIZED', 'SW_SHOWNORMAL', 'SYSTEM',
-            'textonly', 'true', 'try', 'uninstConfirm', 'zlib'
-            ),
-        6 => array(
-            '/a', '/components', '/COMPONENTSONLYONCUSTOM', '/CUSTOMSTRING', '/e', '/FILESONLY', '/FINAL', '/gray', '/GLOBAL',
-            '/ifempty', '/IMGID', '/ITALIC', '/lang', '/NOCUSTOM', '/nonfatal', '/NOUNLOAD', '/oname', '/r', '/REBOOTOK',
-            '/RESIZETOFIT', '/SOLID', '/SD', '/SHORT', '/silent', '/STRIKE', '/TIMEOUT', '/TRIMCENTER', '/TRIMLEFT',
-            '/TRIMRIGHT', '/UNDERLINE', '/windows', '/x'
-            ),
-        7 => array(
-            '.onGUIEnd', '.onGUIInit', '.onInit', '.onInstFailed', '.onInstSuccess', '.onMouseOverSection',
-            '.onRebootFailed', '.onSelChange', '.onUserAbort', '.onVerifyInstDir', 'un.onGUIEnd', 'un.onGUIInit',
-            'un.onInit', 'un.onRebootFailed', 'un.onUninstFailed', 'un.onUninstSuccess', 'un.onUserAbort'
-            ),
-        8 => array(
-            'MUI.nsh', '"${NSISDIR}\Contrib\Modern UI\System.nsh"', 'MUI_SYSVERSION', 'MUI_ICON', 'MUI_UNICON',
-            'MUI_HEADERIMAGE', 'MUI_HEADERIMAGE_BITMAP', 'MUI_HEADERIMAGE_BITMAP_NOSTRETCH', 'MUI_HEADERIMAGE_BITMAP_RTL',
-            'MUI_HEADERIMAGE_BITMAP_RTL_NOSTRETCH', 'MUI_HEADERIMAGE_UNBITMAP', 'MUI_HEADERIMAGE_UNBITMAP_NOSTRETCH',
-            'MUI_HEADERIMAGE_UNBITMAP_RTL', 'MUI_HEADERIMAGE_UNBITMAP_RTL_NOSTRETCH', 'MUI_HEADERIMAGE_RIGHT', 'MUI_BGCOLOR',
-            'MUI_UI', 'MUI_UI_HEADERIMAGE', 'MUI_UI_HEADERIMAGE_RIGHT', 'MUI_UI_COMPONENTSPAGE_SMALLDESC',
-            'MUI_UI_COMPONENTSPAGE_NODESC', 'MUI_WELCOMEFINISHPAGE_BITMAP', 'MUI_WELCOMEFINISHPAGE_BITMAP_NOSTRETCH',
-            'MUI_WELCOMEFINISHPAGE_INI', 'MUI_UNWELCOMEFINISHPAGE_BITMAP', 'MUI_UNWELCOMEFINISHPAGE_BITMAP_NOSTRETCH',
-            'MUI_UNWELCOMEFINISHPAGE_INI', 'MUI_LICENSEPAGE_BGCOLOR', 'MUI_COMPONENTSPAGE_CHECKBITMAP',
-            'MUI_COMPONENTSPAGE_SMALLDESC', 'MUI_COMPONENTSPAGE_NODESC', 'MUI_INSTFILESPAGE_COLORS',
-            'MUI_INSTFILESPAGE_PROGRESSBAR', 'MUI_FINISHPAGE_NOAUTOCLOSE', 'MUI_UNFINISHPAGE_NOAUTOCLOSE',
-            'MUI_ABORTWARNING', 'MUI_ABORTWARNING_TEXT', 'MUI_UNABORTWARNING', 'MUI_UNABORTWARNING_TEXT',
-            'MUI_PAGE_WELCOME', 'MUI_PAGE_LICENSE', 'MUI_PAGE_COMPONENTS', 'MUI_PAGE_DIRECTORY',
-            'MUI_PAGE_STARTMENU', 'MUI_PAGE_INSTFILES', 'MUI_PAGE_FINISH', 'MUI_UNPAGE_WELCOME',
-            'MUI_UNPAGE_CONFIRM', 'MUI_UNPAGE_LICENSE', 'MUI_UNPAGE_COMPONENTS', 'MUI_UNPAGE_DIRECTORY',
-            'MUI_UNPAGE_INSTFILES', 'MUI_UNPAGE_FINISH', 'MUI_PAGE_HEADER_TEXT', 'MUI_PAGE_HEADER_SUBTEXT',
-            'MUI_WELCOMEPAGE_TITLE', 'MUI_WELCOMEPAGE_TITLE_3LINES', 'MUI_WELCOMEPAGE_TEXT',
-            'MUI_LICENSEPAGE_TEXT_TOP', 'MUI_LICENSEPAGE_TEXT_BOTTOM', 'MUI_LICENSEPAGE_BUTTON',
-            'MUI_LICENSEPAGE_CHECKBOX', 'MUI_LICENSEPAGE_CHECKBOX_TEXT', 'MUI_LICENSEPAGE_RADIOBUTTONS',
-            'MUI_LICENSEPAGE_RADIOBUTTONS_TEXT_ACCEPT', 'MUI_LICENSEPAGE_RADIOBUTTONS_TEXT_DECLINE',
-            'MUI_COMPONENTSPAGE_TEXT_TOP', 'MUI_COMPONENTSPAGE_TEXT_COMPLIST', 'MUI_COMPONENTSPAGE_TEXT_INSTTYPE',
-            'MUI_COMPONENTSPAGE_TEXT_DESCRIPTION_TITLE', 'MUI_COMPONENTSPAGE_TEXT_DESCRIPTION_INFO',
-            'MUI_DIRECTORYPAGE_TEXT_TOP', 'MUI_DIRECTORYPAGE_TEXT_DESTINATION', 'MUI_DIRECTORYPAGE_VARIABLE',
-            'MUI_DIRECTORYPAGE_VERIFYONLEAVE', 'MUI_STARTMENU_WRITE_BEGIN', 'MUI_STARTMENU_WRITE_END',
-            'MUI_STARTMENUPAGE_TEXT_TOP', 'MUI_STARTMENUPAGE_TEXT_CHECKBOX', 'MUI_STARTMENUPAGE_DEFAULTFOLDER',
-            'MUI_STARTMENUPAGE_NODISABLE', 'MUI_STARTMENUPAGE_REGISTRY_ROOT', 'MUI_STARTMENUPAGE_REGISTRY_KEY',
-            'MUI_STARTMENUPAGE_REGISTRY_VALUENAME', 'MUI_INSTFILESPAGE_FINISHHEADER_TEXT',
-            'MUI_INSTFILESPAGE_FINISHHEADER_SUBTEXT', 'MUI_INSTFILESPAGE_ABORTHEADER_TEXT',
-            'MUI_INSTFILESPAGE_ABORTHEADER_SUBTEXT', 'MUI_FINISHPAGE_TITLE', 'MUI_FINISHPAGE_TITLE_3LINES',
-            'MUI_FINISHPAGE_TEXT', 'MUI_FINISHPAGE_TEXT_LARGE', 'MUI_FINISHPAGE_BUTTON',
-            'MUI_FINISHPAGE_TEXT_REBOOT', 'MUI_FINISHPAGE_TEXT_REBOOTNOW', 'MUI_FINISHPAGE_TEXT_REBOOTLATER',
-            'MUI_FINISHPAGE_RUN', 'MUI_FINISHPAGE_RUN_TEXT', 'MUI_FINISHPAGE_RUN_PARAMETERS',
-            'MUI_FINISHPAGE_RUN_NOTCHECKED', 'MUI_FINISHPAGE_RUN_FUNCTION', 'MUI_FINISHPAGE_SHOWREADME',
-            'MUI_FINISHPAGE_SHOWREADME_TEXT', 'MUI_FINISHPAGE_SHOWREADME_NOTCHECKED',
-            'MUI_FINISHPAGE_SHOWREADME_FUNCTION', 'MUI_FINISHPAGE_LINK', 'MUI_FINISHPAGE_LINK_LOCATION',
-            'MUI_FINISHPAGE_LINK_COLOR', 'MUI_FINISHPAGE_NOREBOOTSUPPORT', 'MUI_UNCONFIRMPAGE_TEXT_TOP',
-            'MUI_UNCONFIRMPAGE_TEXT_LOCATION', 'MUI_LANGUAGE', 'MUI_LANGDLL_DISPLAY',
-            'MUI_LANGDLL_REGISTRY_ROOT', 'MUI_LANGDLL_REGISTRY_KEY', 'MUI_LANGDLL_REGISTRY_VALUENAME',
-            'MUI_LANGDLL_WINDOWTITLE', 'MUI_LANGDLL_INFO', 'MUI_LANGDLL_ALWAYSSHOW',
-            'MUI_RESERVEFILE_INSTALLOPTIONS', 'MUI_RESERVEFILE_LANGDLL', 'MUI_FUNCTION_DESCRIPTION_BEGIN',
-            'MUI_DESCRIPTION_TEXT', 'MUI_FUNCTION_DESCRIPTION_END', 'MUI_INSTALLOPTIONS_EXTRACT',
-            'MUI_INSTALLOPTIONS_EXTRACT_AS', 'MUI_HEADER_TEXT', 'MUI_INSTALLOPTIONS_DISPLAY',
-            'MUI_INSTALLOPTIONS_INITDIALOG', 'MUI_INSTALLOPTIONS_SHOW',
-            'MUI_INSTALLOPTIONS_DISPLAY_RETURN', 'MUI_INSTALLOPTIONS_SHOW_RETURN',
-            'MUI_INSTALLOPTIONS_READ', 'MUI_INSTALLOPTIONS_WRITE',
-            'MUI_CUSTOMFUNCTION_GUIINIT', 'MUI_CUSTOMFUNCTION_UNGUIINIT',
-            'MUI_CUSTOMFUNCTION_ABORT', 'MUI_CUSTOMFUNCTION_UNABORT',
-            'MUI_PAGE_CUSTOMFUNCTION_PRE', 'MUI_PAGE_CUSTOMFUNCTION_SHOW', 'MUI_PAGE_CUSTOMFUNCTION_LEAVE',
-            'MUI_WELCOMEFINISHPAGE_CUSTOMFUNCTION_INIT'
-            ),
-        9 => array(
-            'LogicLib.nsh', '${LOGICLIB}', 'LOGICLIB_STRCMP', 'LOGICLIB_INT64CMP', 'LOGICLIB_SECTIONCMP', '${If}', '${Unless}',
-            '${ElseIf}', '${ElseUnless}', '${Else}', '${EndIf}', '${EndUnless}', '${AndIf}', '${AndUnless}',
-            '${OrIf}', '${OrUnless}', '${IfThen}', '${IfCmd}', '${Select}', '${Case2}', '${Case3}',
-            '${Case4}', '${Case5}', '${CaseElse}', '${Default}', '${EndSelect}', '${Switch}',
-            '${Case}', '${EndSwitch}', '${Do}', '${DoWhile}', '${UntilWhile}', '${Continue}', '${Break}',
-            '${Loop}', '${LoopWhile}', '${LoopUntil}', '${While}', '${ExitWhile}', '${EndWhile}', '${For}',
-            '${ForEach}', '${ExitFor}', '${Next}', '${Abort}', '${Errors}', '${RebootFlag}', '${Silent}',
-            '${FileExists}', '${Cmd}', '${SectionIsSelected}', '${SectionIsSectionGroup}',
-            '${SectionIsSectionGroupEnd}', '${SectionIsBold}', '${SectionIsReadOnly}',
-            '${SectionIsExpanded}', '${SectionIsPartiallySelected}'
-            ),
-        10 => array(
-            'StrFunc.nsh', '${STRFUNC}', '${StrCase}', '${StrClb}', '${StrIOToNSIS}', '${StrLoc}', '${StrNSISToIO}', '${StrRep}',
-            '${StrSort}', '${StrStr}', '${StrStrAdv}', '${StrTok}', '${StrTrimNewLines}'
-            ),
-        11 => array(
-            'UpgradeDLL.nsh', 'UPGRADEDLL_INCLUDED', 'UpgradeDLL'
-            ),
-        12 => array(
-            'Sections.nsh', 'SECTIONS_INCLUDED', '${SF_SELECTED}', '${SF_SECGRP}', '${SF_SUBSEC}', '${SF_SECGRPEND}',
-            '${SF_SUBSECEND}', '${SF_BOLD}', '${SF_RO}', '${SF_EXPAND}', '${SF_PSELECTED}', '${SF_TOGGLED}',
-            '${SF_NAMECHG}', '${SECTION_OFF}', 'SelectSection', 'UnselectSection', 'ReverseSection',
-            'StartRadioButtons', 'RadioButton', 'EndRadioButtons', '${INSTTYPE_0}', '${INSTTYPE_1}', '${INSTTYPE_2}',
-            '${INSTTYPE_3}', '${INSTTYPE_4}', '${INSTTYPE_5}', '${INSTTYPE_6}', '${INSTTYPE_7}', '${INSTTYPE_8}',
-            '${INSTTYPE_9}', '${INSTTYPE_10}', '${INSTTYPE_11}', '${INSTTYPE_12}', '${INSTTYPE_13}', '${INSTTYPE_14}',
-            '${INSTTYPE_15}', '${INSTTYPE_16}', '${INSTTYPE_17}', '${INSTTYPE_18}', '${INSTTYPE_19}', '${INSTTYPE_20}',
-            '${INSTTYPE_21}', '${INSTTYPE_22}', '${INSTTYPE_23}', '${INSTTYPE_24}', '${INSTTYPE_25}', '${INSTTYPE_26}',
-            '${INSTTYPE_27}', '${INSTTYPE_28}', '${INSTTYPE_29}', '${INSTTYPE_30}', '${INSTTYPE_31}', '${INSTTYPE_32}',
-            'SetSectionInInstType', 'ClearSectionInInstType', 'SetSectionFlag', 'ClearSectionFlag', 'SectionFlagIsSet'
-            ),
-        13 => array(
-            'Colors.nsh', 'WHITE', 'BLACK', 'YELLOW', 'RED', 'GREEN', 'BLUE', 'MAGENTA', 'CYAN', 'rgb2hex'
-            ),
-        14 => array(
-            'FileFunc.nsh', '${Locate}', '${GetSize}', '${DriveSpace}', '${GetDrives}', '${GetTime}', '${GetFileAttributes}', '${GetFileVersion}', '${GetExeName}', '${GetExePath}', '${GetParameters}', '${GetOptions}', '${GetRoot}', '${GetParent}', '${GetFileName}', '${GetBaseName}', '${GetFileExt}', '${BannerTrimPath}', '${DirState}', '${RefreshShellIcons}'
-            ),
-        15 => array(
-            'TextFunc.nsh', '${LineFind}', '${LineRead}', '${FileReadFromEnd}', '${LineSum}', '${FileJoin}', '${TextCompare}', '${ConfigRead}', '${ConfigWrite}', '${FileRecode}', '${TrimNewLines}'
-            ),
-        16 => array(
-            'WordFunc.nsh', '${WordFind}', '${WordFind2X}', '${WordFind3X}', '${WordReplace}', '${WordAdd}', '${WordInsert}', '${StrFilter}', '${VersionCompare}', '${VersionConvert}'
-            )
-        ),
-    'SYMBOLS' => array(
-        ),
-    '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,
-        11 => false,
-        12 => false,
-        13 => false,
-        14 => false,
-        15 => false,
-        16 => false
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #000066; font-weight:bold;',
-            2 => 'color: #000066;',
-            3 => 'color: #003366;',
-            4 => 'color: #000099;',
-            5 => 'color: #ff6600;',
-            6 => 'color: #ff6600;',
-            7 => 'color: #006600;',
-            8 => 'color: #006600;',
-            9 => 'color: #006600;',
-            10 => 'color: #006600;',
-            11 => 'color: #006600;',
-            12 => 'color: #006600;',
-            13 => 'color: #006600;',
-            14 => 'color: #006600;',
-            15 => 'color: #006600;',
-            16 => 'color: #006600;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #666666; font-style: italic;',
-            2 => 'color: #666666; font-style: italic;',
-            'MULTI' => 'color: #666666; font-style: italic;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #660066; font-weight: bold;'
-            ),
-        'BRACKETS' => array(
-            0 => ''
-            ),
-        'STRINGS' => array(
-            0 => 'color: #660066;'
-            ),
-        'NUMBERS' => array(
-            0 => ''
-            ),
-        'METHODS' => array(
-            0 => ''
-            ),
-        'SYMBOLS' => array(
-            0 => ''
-            ),
-        'REGEXPS' => array(
-            0 => 'color: #660000;',
-            1 => 'color: #660000;',
-            2 => 'color: #660000;',
-            3 => 'color: #660000;',
-            4 => 'color: #660000;',
-            5 => 'color: #660000;',
-            6 => 'color: #660000;',
-            7 => 'color: #000099;',
-            8 => 'color: #003399;'
-            ),
-        'SCRIPT' => array(
-            0 => ''
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => '',
-        4 => '',
-        5 => '',
-        6 => '',
-        7 => '',
-        8 => '',
-        9 => '',
-        10 => '',
-        11 => '',
-        12 => '',
-        13 => '',
-        14 => '',
-        15 => '',
-        16 => ''
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(
-        ),
-    'REGEXPS' => array(
-        0 => '\$\$',
-        1 => '\$\\r',
-        2 => '\$\\n',
-        3 => '\$\\t',
-        4 => '\$[a-zA-Z0-9_]+',
-        5 => '\$\{.{1,256}\}',
-        6 => '\$\\\(.{1,256}\\\)',
-        7 => array(
-            GESHI_SEARCH => '([^:\/\\\*\?\"\<\>(?:<PIPE>)\s]*?)(::)([^:\/\\\*\?\"\<\>(?:<PIPE>)\s]*?)',
-            GESHI_REPLACE => '\\1',
-            GESHI_MODIFIERS => '',
-            GESHI_BEFORE => '',
-            GESHI_AFTER => '\\2\\3'
-            ),
-        8 => array(
-            GESHI_SEARCH => '([^:\/\\\*\?\"\<\>(?:<PIPE>)\s]*?)(::)([^:\/\\\*\?\"\<\>(?:<PIPE>)]*?\s)',
-            GESHI_REPLACE => '\\3',
-            GESHI_MODIFIERS => '',
-            GESHI_BEFORE => '\\1\\2',
-            GESHI_AFTER => ''
-            )
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/oberon2.php b/wiki/vendor/geshi/geshi/src/geshi/oberon2.php
deleted file mode 100644
index 8540cad..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/oberon2.php
+++ /dev/null
@@ -1,133 +0,0 @@
-<?php
-/*************************************************************************************
- * oberon2.php
- * ----------
- * Author: mbishop (mbishop@esoteriq.org)
- * Copyright: (c) 2009 mbishop (mbishop@esoteriq.org)
- * Release Version: 1.0.9.0
- * Date Started: 2009/02/10
- *
- * Oberon-2 language file for GeSHi.
- *
- * CHANGES
- * -------
- *
- * TODO
- * -------------------------
- *
- *************************************************************************************
- *
- *     This file is part of GeSHi.
- *
- *   GeSHi is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   GeSHi is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with GeSHi; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- ************************************************************************************/
-
-$language_data = array (
-    'LANG_NAME' => 'Oberon-2',
-    'COMMENT_SINGLE' => array(),
-    'COMMENT_MULTI' => array('(*' => '*)'),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array('"'),
-    'HARDQUOTE' => array("'", "'"),
-    'HARDESCAPE' => array("''"),
-    'ESCAPE_CHAR' => '\\',
-    'KEYWORDS' => array(
-        1 => array(
-            'ARRAY', 'BEGIN', 'BY', 'CASE',
-            'CONST', 'DIV', 'DO', 'ELSE', 'ELSIF', 'END',
-            'EXIT', 'FOR', 'IF', 'IMPORT', 'IN', 'IS',
-            'LOOP', 'MOD', 'MODULE', 'OF',
-            'OR', 'POINTER', 'PROCEDURE', 'RECORD',
-            'REPEAT', 'RETURN', 'THEN', 'TO',
-            'TYPE', 'UNTIL', 'VAR', 'WHILE', 'WITH'
-            ),
-        2 => array(
-            'NIL', 'FALSE', 'TRUE',
-            ),
-        3 => array(
-            'ABS', 'ASH', 'ASSERT', 'CAP', 'CHR', 'COPY', 'DEC',
-            'ENTIER', 'EXCL', 'HALT', 'INC', 'INCL', 'LEN',
-            'LONG', 'MAX', 'MIN', 'NEW', 'ODD', 'ORD', 'SHORT', 'SIZE'
-            ),
-        4 => array(
-            'BOOLEAN', 'CHAR', 'SHORTINT', 'LONGINT',
-            'INTEGER', 'LONGREAL', 'REAL', 'SET', 'PTR'
-            ),
-        ),
-    'SYMBOLS' => array(
-        ',', ':', '=', '+', '-', '*', '/', '#', '~'
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => true,
-        2 => true,
-        3 => true,
-        4 => true,
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #000000; font-weight: bold;',
-            2 => 'color: #000000; font-weight: bold;',
-            3 => 'color: #000066;',
-            4 => 'color: #000066; font-weight: bold;'
-            ),
-        'COMMENTS' => array(
-            'MULTI' => 'color: #666666; font-style: italic;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #000099; font-weight: bold;',
-            'HARD' => 'color: #000099; font-weight: bold;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #009900;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #ff0000;',
-            'HARD' => 'color: #ff0000;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #cc66cc;'
-            ),
-        'METHODS' => array(
-            1 => 'color: #0066ee;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #339933;'
-            ),
-        'REGEXPS' => array(
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => '',
-        4 => ''
-        ),
-    'OOLANG' => true,
-    'OBJECT_SPLITTERS' => array(
-        1 => '.'
-        ),
-    'REGEXPS' => array(
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        ),
-    'TAB_WIDTH' => 4
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/objc.php b/wiki/vendor/geshi/geshi/src/geshi/objc.php
deleted file mode 100644
index 3fdf49a..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/objc.php
+++ /dev/null
@@ -1,356 +0,0 @@
-<?php
-/*************************************************************************************
- * objc.php
- * --------
- * 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.9.0
- * Date Started: 2004/06/04
- *
- * Objective-C language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2008/07/11 (1.0.8)
- *   -  Added support for @ before strings being highlighted
- * 2008/06/10 (1.0.7.22)
- *   -  Added keywords for Objective-C 2.0 (Leopard+).
- *   -  Changed colors to match Xcode 3 highlighting more closely.
- *   -  Updated API for AppKit and Foundation; added CoreData classes.
- *   -  Updated URLs for AppKit and Foundation; split classes and protocols.
- *   -  Sorted all keyword group in reverse-alpha order for correct matching.
- *   -  Changed all keyword groups to be case-sensitive.
- * 2004/11/27 (1.0.0)
- *   -  First Release
- *
- * TODO (updated 2004/11/27)
- * -------------------------
- *
- *************************************************************************************
- *
- *     This file is part of GeSHi.
- *
- *   GeSHi is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   GeSHi is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with GeSHi; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- ************************************************************************************/
-
-$language_data = array (
-    'LANG_NAME' => 'Objective-C',
-    'COMMENT_SINGLE' => array(
-        //Compiler directives
-        1 => '#',
-        //Single line C-Comments
-        2 => '//'
-        ),
-    'COMMENT_MULTI' => array('/*' => '*/'),
-    'COMMENT_REGEXP' => array(
-        //Multiline Continuation for single-line comment
-        2 => '/\/\/(?:\\\\\\\\|\\\\\\n|.)*$/m',
-        //Pseudo-Highlighting of the @-sign before strings
-        3 => "/@(?=\")/"
-        ),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array('"', "'"),
-    'ESCAPE_CHAR' => '\\',
-
-    'KEYWORDS' => array(
-        // Objective-C keywords
-        1 => array(
-            'while', 'switch', 'return', 'in', 'if', 'goto', 'foreach', 'for',
-            'else', 'do', 'default', 'continue', 'case', '@try', '@throw',
-            '@synthesize', '@synchronized', '@selector', '@public', '@protocol',
-            '@protected', '@property', '@private', '@interface',
-            '@implementation', '@finally', '@end', '@encode', '@defs', '@class',
-            '@catch'
-            ),
-        // Macros and constants
-        2 => array(
-            'YES', 'USHRT_MAX', 'ULONG_MAX', 'UINT_MAX', 'UCHAR_MAX', 'true',
-            'TMP_MAX', 'stdout', 'stdin', 'stderr', 'SIGTERM', 'SIGSEGV',
-            'SIGINT', 'SIGILL', 'SIG_IGN', 'SIGFPE', 'SIG_ERR', 'SIG_DFL',
-            'SIGABRT', 'SHRT_MIN', 'SHRT_MAX', 'SEEK_SET', 'SEEK_END',
-            'SEEK_CUR', 'SCHAR_MIN', 'SCHAR_MAX', 'RAND_MAX', 'NULL',
-            'NO', 'nil', 'Nil', 'L_tmpnam', 'LONG_MIN', 'LONG_MAX',
-            'LDBL_MIN_EXP', 'LDBL_MIN', 'LDBL_MAX_EXP', 'LDBL_MAX',
-            'LDBL_MANT_DIG', 'LDBL_EPSILON', 'LDBL_DIG', 'INT_MIN', 'INT_MAX',
-            'HUGE_VAL', 'FOPEN_MAX', 'FLT_ROUNDS', 'FLT_RADIX', 'FLT_MIN_EXP',
-            'FLT_MIN', 'FLT_MAX_EXP', 'FLT_MAX', 'FLT_MANT_DIG', 'FLT_EPSILON',
-            'FLT_DIG', 'FILENAME_MAX', 'false', 'EXIT_SUCCESS', 'EXIT_FAILURE',
-            'errno', 'ERANGE', 'EOF', 'enum', 'EDOM', 'DBL_MIN_EXP', 'DBL_MIN',
-            'DBL_MAX_EXP', 'DBL_MAX', 'DBL_MANT_DIG', 'DBL_EPSILON', 'DBL_DIG',
-            'CLOCKS_PER_SEC', 'CHAR_MIN', 'CHAR_MAX', 'CHAR_BIT', 'BUFSIZ',
-            'break'
-            ),
-        // C standard library functions
-        3 => array(
-            'vsprintf', 'vprintf', 'vfprintf', 'va_start', 'va_end', 'va_arg',
-            'ungetc', 'toupper', 'tolower', 'tmpname', 'tmpfile', 'time',
-            'tanh', 'tan', 'system', 'strxfrm', 'strtoul', 'strtol', 'strtok',
-            'strtod', 'strstr', 'strspn', 'strrchr', 'strpbrk', 'strncpy',
-            'strncmp', 'strncat', 'strlen', 'strftime', 'strerror', 'strcspn',
-            'strcpy', 'strcoll', 'strcmp', 'strchr', 'strcat', 'sscanf',
-            'srand', 'sqrt', 'sprintf', 'snprintf', 'sizeof', 'sinh', 'sin',
-            'setvbuf', 'setjmp', 'setbuf', 'scanf', 'rewind', 'rename',
-            'remove', 'realloc', 'rand', 'qsort', 'puts', 'putchar', 'putc',
-            'printf', 'pow', 'perror', 'offsetof', 'modf', 'mktime', 'memset',
-            'memmove', 'memcpy', 'memcmp', 'memchr', 'malloc', 'longjmp',
-            'log10', 'log', 'localtime', 'ldiv', 'ldexp', 'labs', 'isxdigit',
-            'isupper', 'isspace', 'ispunct', 'isprint', 'islower',
-            'isgraph', 'isdigit', 'iscntrl', 'isalpha', 'isalnum', 'gmtime',
-            'gets', 'getenv', 'getchar', 'getc', 'fwrite', 'ftell', 'fsetpos',
-            'fseek', 'fscanf', 'frexp', 'freopen', 'free', 'fread', 'fputs',
-            'fputc', 'fprintf', 'fopen', 'fmod', 'floor', 'fgets', 'fgetpos',
-            'fgetc', 'fflush', 'ferror', 'feof', 'fclose', 'fabs', 'exp',
-            'exit', 'div', 'difftime', 'ctime', 'cosh', 'cos', 'clock',
-            'clearerr', 'ceil', 'calloc', 'bsearch', 'atol', 'atoi', 'atof',
-            'atexit', 'atan2', 'atan', 'assert', 'asin', 'asctime', 'acos',
-            'abs', 'abort'
-            ),
-        // Data types (C, Objective-C, Cocoa)
-        4 => array(
-            'volatile', 'void', 'va_list', 'unsigned', 'union', 'typedef', 'tm',
-            'time_t', 'struct', 'string', 'static', 'size_t',
-            'signed', 'signal', 'short', 'SEL', 'register', 'raise',
-            'ptrdiff_t', 'NSZone', 'NSRect', 'NSRange', 'NSPoint', 'long',
-            'ldiv_t', 'jmp_buf', 'int', 'IMP', 'id', 'fpos_t', 'float', 'FILE',
-            'extern', 'double', 'div_t', 'const', 'clock_t', 'Class', 'char',
-            'BOOL', 'auto'
-            ),
-        // Foundation classes
-        5 => array(
-            'NSXMLParser', 'NSXMLNode', 'NSXMLElement', 'NSXMLDTDNode',
-            'NSXMLDTD', 'NSXMLDocument', 'NSWhoseSpecifier',
-            'NSValueTransformer', 'NSValue', 'NSUserDefaults', 'NSURLResponse',
-            'NSURLRequest', 'NSURLProtocol', 'NSURLProtectionSpace',
-            'NSURLHandle', 'NSURLDownload', 'NSURLCredentialStorage',
-            'NSURLCredential', 'NSURLConnection', 'NSURLCache',
-            'NSURLAuthenticationChallenge', 'NSURL', 'NSUniqueIDSpecifier',
-            'NSUndoManager', 'NSUnarchiver', 'NSTimeZone', 'NSTimer',
-            'NSThread', 'NSTask', 'NSString', 'NSStream', 'NSSpellServer',
-            'NSSpecifierTest', 'NSSortDescriptor', 'NSSocketPortNameServer',
-            'NSSocketPort', 'NSSetCommand', 'NSSet', 'NSSerializer',
-            'NSScriptWhoseTest', 'NSScriptSuiteRegistry',
-            'NSScriptObjectSpecifier', 'NSScriptExecutionContext',
-            'NSScriptCommandDescription', 'NSScriptCommand',
-            'NSScriptCoercionHandler', 'NSScriptClassDescription', 'NSScanner',
-            'NSRunLoop', 'NSRelativeSpecifier', 'NSRecursiveLock',
-            'NSRangeSpecifier', 'NSRandomSpecifier', 'NSQuitCommand', 'NSProxy',
-            'NSProtocolChecker', 'NSPropertySpecifier',
-            'NSPropertyListSerialization', 'NSProcessInfo', 'NSPredicate',
-            'NSPositionalSpecifier', 'NSPortNameServer', 'NSPortMessage',
-            'NSPortCoder', 'NSPort', 'NSPointerFunctions', 'NSPointerArray',
-            'NSPipe', 'NSOutputStream', 'NSOperationQueue', 'NSOperation',
-            'NSObject', 'NSNumberFormatter', 'NSNumber', 'NSNull',
-            'NSNotificationQueue', 'NSNotificationCenter', 'NSNotification',
-            'NSNetServiceBrowser', 'NSNetService', 'NSNameSpecifier',
-            'NSMutableURLRequest', 'NSMutableString', 'NSMutableSet',
-            'NSMutableIndexSet', 'NSMutableDictionary', 'NSMutableData',
-            'NSMutableCharacterSet', 'NSMutableAttributedString',
-            'NSMutableArray', 'NSMoveCommand', 'NSMiddleSpecifier',
-            'NSMethodSignature', 'NSMetadataQueryResultGroup',
-            'NSMetadataQueryAttributeValueTuple', 'NSMetadataQuery',
-            'NSMetadataItem', 'NSMessagePortNameServer', 'NSMessagePort',
-            'NSMapTable', 'NSMachPort', 'NSMachBootstrapServer',
-            'NSLogicalTest', 'NSLock', 'NSLocale', 'NSKeyedUnarchiver',
-            'NSKeyedArchiver', 'NSInvocationOperation', 'NSInvocation',
-            'NSInputStream', 'NSIndexSpecifier', 'NSIndexSet', 'NSIndexPath',
-            'NSHTTPURLResponse', 'NSHTTPCookieStorage', 'NSHTTPCookie',
-            'NSHost', 'NSHashTable', 'NSGetCommand', 'NSGarbageCollector',
-            'NSFormatter', 'NSFileManager', 'NSFileHandle', 'NSExpression',
-            'NSExistsCommand', 'NSException', 'NSError', 'NSEnumerator',
-            'NSDistributedNotificationCenter', 'NSDistributedLock',
-            'NSDistantObjectRequest', 'NSDistantObject',
-            'NSDirectoryEnumerator', 'NSDictionary', 'NSDeserializer',
-            'NSDeleteCommand', 'NSDecimalNumberHandler', 'NSDecimalNumber',
-            'NSDateFormatter', 'NSDateComponents', 'NSDate', 'NSData',
-            'NSCreateCommand', 'NSCountedSet', 'NSCountCommand', 'NSConnection',
-            'NSConditionLock', 'NSCondition', 'NSCompoundPredicate',
-            'NSComparisonPredicate', 'NSCoder', 'NSCloseCommand',
-            'NSCloneCommand', 'NSClassDescription', 'NSCharacterSet',
-            'NSCalendarDate', 'NSCalendar', 'NSCachedURLResponse', 'NSBundle',
-            'NSAutoreleasePool', 'NSAttributedString', 'NSAssertionHandler',
-            'NSArray', 'NSArchiver', 'NSAppleScript', 'NSAppleEventManager',
-            'NSAppleEventDescriptor', 'NSAffineTransform'
-            ),
-        // Foundation protocols
-        6 => array(
-            'NSURLProtocolClient', 'NSURLHandleClient', 'NSURLClient',
-            'NSURLAuthenticationChallengeSender', 'NSScriptObjectSpecifiers',
-            'NSScriptKeyValueCoding', 'NSScriptingComparisonMethods',
-            'NSObjCTypeSerializationCallBack', 'NSMutableCopying',
-            'NSLocking', 'NSKeyValueObserving', 'NSKeyValueCoding',
-            'NSFastEnumeration', 'NSErrorRecoveryAttempting',
-            'NSDecimalNumberBehaviors', 'NSCopying', 'NSComparisonMethods',
-            'NSCoding'
-            ),
-        // AppKit classes
-        7 => array(
-            'NSWorkspace', 'NSWindowController', 'NSWindow', 'NSViewController',
-            'NSViewAnimation', 'NSView', 'NSUserDefaultsController',
-            'NSTypesetter', 'NSTreeNode', 'NSTreeController', 'NSTrackingArea',
-            'NSToolbarItemGroup', 'NSToolbarItem', 'NSToolbar',
-            'NSTokenFieldCell', 'NSTokenField', 'NSTextView',
-            'NSTextTableBlock', 'NSTextTable', 'NSTextTab', 'NSTextStorage',
-            'NSTextList', 'NSTextFieldCell', 'NSTextField', 'NSTextContainer',
-            'NSTextBlock', 'NSTextAttachmentCell', 'NSTextAttachment', 'NSText',
-            'NSTabViewItem', 'NSTabView', 'NSTableView', 'NSTableHeaderView',
-            'NSTableHeaderCell', 'NSTableColumn', 'NSStepperCell', 'NSStepper',
-            'NSStatusItem', 'NSStatusBar', 'NSSplitView', 'NSSpellChecker',
-            'NSSpeechSynthesizer', 'NSSpeechRecognizer', 'NSSound',
-            'NSSliderCell', 'NSSlider', 'NSSimpleHorizontalTypesetter',
-            'NSShadow', 'NSSegmentedControl', 'NSSegmentedCell',
-            'NSSecureTextFieldCell', 'NSSecureTextField', 'NSSearchFieldCell',
-            'NSSearchField', 'NSScrollView', 'NSScroller', 'NSScreen',
-            'NSSavePanel', 'NSRulerView', 'NSRulerMarker', 'NSRuleEditor',
-            'NSResponder', 'NSQuickDrawView', 'NSProgressIndicator',
-            'NSPrintPanel', 'NSPrintOperation', 'NSPrintInfo', 'NSPrinter',
-            'NSPredicateEditorRowTemplate', 'NSPredicateEditor',
-            'NSPopUpButtonCell', 'NSPopUpButton', 'NSPICTImageRep',
-            'NSPersistentDocument', 'NSPDFImageRep', 'NSPathControl',
-            'NSPathComponentCell', 'NSPathCell', 'NSPasteboard',
-            'NSParagraphStyle', 'NSPanel', 'NSPageLayout', 'NSOutlineView',
-            'NSOpenPanel', 'NSOpenGLView', 'NSOpenGLPixelFormat',
-            'NSOpenGLPixelBuffer', 'NSOpenGLContext', 'NSObjectController',
-            'NSNibOutletConnector', 'NSNibControlConnector', 'NSNibConnector',
-            'NSNib', 'NSMutableParagraphStyle', 'NSMovieView', 'NSMovie',
-            'NSMenuView', 'NSMenuItemCell', 'NSMenuItem', 'NSMenu', 'NSMatrix',
-            'NSLevelIndicatorCell', 'NSLevelIndicator', 'NSLayoutManager',
-            'NSInputServer', 'NSInputManager', 'NSImageView', 'NSImageRep',
-            'NSImageCell', 'NSImage', 'NSHelpManager', 'NSGraphicsContext',
-            'NSGradient', 'NSGlyphInfo', 'NSGlyphGenerator', 'NSFormCell',
-            'NSForm', 'NSFontPanel', 'NSFontManager', 'NSFontDescriptor',
-            'NSFont', 'NSFileWrapper', 'NSEvent', 'NSEPSImageRep', 'NSDrawer',
-            'NSDocumentController', 'NSDocument', 'NSDockTile',
-            'NSDictionaryController', 'NSDatePickerCell', 'NSDatePicker',
-            'NSCustomImageRep', 'NSCursor', 'NSController', 'NSControl',
-            'NSComboBoxCell', 'NSComboBox', 'NSColorWell', 'NSColorSpace',
-            'NSColorPicker', 'NSColorPanel', 'NSColorList', 'NSColor',
-            'NSCollectionViewItem', 'NSCollectionView', 'NSClipView',
-            'NSCIImageRep', 'NSCell', 'NSCachedImageRep', 'NSButtonCell',
-            'NSButton', 'NSBrowserCell', 'NSBrowser', 'NSBox',
-            'NSBitmapImageRep', 'NSBezierPath', 'NSATSTypesetter',
-            'NSArrayController', 'NSApplication', 'NSAnimationContext',
-            'NSAnimation', 'NSAlert', 'NSActionCell'
-            ),
-        // AppKit protocols
-        8 => array(
-            'NSWindowScripting', 'NSValidatedUserInterfaceItem',
-            'NSUserInterfaceValidations', 'NSToolTipOwner',
-            'NSToolbarItemValidation', 'NSTextInput',
-            'NSTableDataSource', 'NSServicesRequests',
-            'NSPrintPanelAccessorizing', 'NSPlaceholders',
-            'NSPathControlDelegate', 'NSPathCellDelegate',
-            'NSOutlineViewDataSource', 'NSNibAwaking', 'NSMenuValidation',
-            'NSKeyValueBindingCreation', 'NSInputServiceProvider',
-            'NSInputServerMouseTracker', 'NSIgnoreMisspelledWords',
-            'NSGlyphStorage', 'NSFontPanelValidation', 'NSEditorRegistration',
-            'NSEditor', 'NSDraggingSource', 'NSDraggingInfo',
-            'NSDraggingDestination', 'NSDictionaryControllerKeyValuePair',
-            'NSComboBoxDataSource', 'NSComboBoxCellDataSource',
-            'NSColorPickingDefault', 'NSColorPickingCustom', 'NSChangeSpelling',
-            'NSAnimatablePropertyContainer', 'NSAccessibility'
-            ),
-        // CoreData classes
-        9 => array(
-            'NSRelationshipDescription', 'NSPropertyMapping',
-            'NSPropertyDescription', 'NSPersistentStoreCoordinator',
-            'NSPersistentStore', 'NSMigrationManager', 'NSMappingModel',
-            'NSManagedObjectModel', 'NSManagedObjectID',
-            'NSManagedObjectContext', 'NSManagedObject',
-            'NSFetchRequestExpression', 'NSFetchRequest',
-            'NSFetchedPropertyDescription', 'NSEntityMigrationPolicy',
-            'NSEntityMapping', 'NSEntityDescription', 'NSAttributeDescription',
-            'NSAtomicStoreCacheNode', 'NSAtomicStore'
-            )
-        ),
-    'SYMBOLS' => array(
-        '(', ')', '{', '}', '[', ']', '=', '+', '-', '*', '/', '!', '%', '^', '&', ':'
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => true,
-        1 => true,
-        2 => true,
-        3 => true,
-        4 => true,
-        5 => true,
-        6 => true,
-        7 => true,
-        8 => true,
-        9 => true
-        ),
-    // Define the colors for the groups listed above
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #a61390;', // Objective-C keywords
-            2 => 'color: #a61390;', // Macros and constants
-            3 => 'color: #a61390;', // C standard library functions
-            4 => 'color: #a61390;', // data types
-            5 => 'color: #400080;', // Foundation classes
-            6 => 'color: #2a6f76;', // Foundation protocols
-            7 => 'color: #400080;', // AppKit classes
-            8 => 'color: #2a6f76;', // AppKit protocols
-            9 => 'color: #400080;' // CoreData classes
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #6e371a;', // Preprocessor directives
-            2 => 'color: #11740a; font-style: italic;', // Normal C single-line comments
-            3 => 'color: #bf1d1a;', // Q-sign in front of Strings
-            'MULTI' => 'color: #11740a; font-style: italic;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #2400d9;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #002200;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #bf1d1a;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #2400d9;'
-            ),
-        'METHODS' => array(
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #002200;'
-            ),
-        'REGEXPS' => array(
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => 'http://www.opengroup.org/onlinepubs/009695399/functions/{FNAME}.html',
-        4 => '',
-        5 => 'http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/{FNAME}_Class/',
-        6 => 'http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Protocols/{FNAME}_Protocol/',
-        7 => 'http://developer.apple.com/documentation/Cocoa/Reference/ApplicationKit/Classes/{FNAME}_Class/',
-        8 => 'http://developer.apple.com/documentation/Cocoa/Reference/ApplicationKit/Protocols/{FNAME}_Protocol/',
-        9 => 'http://developer.apple.com/documentation/Cocoa/Reference/CoreDataFramework/Classes/{FNAME}_Class/'
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(
-        ),
-    'REGEXPS' => array(
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/objeck.php b/wiki/vendor/geshi/geshi/src/geshi/objeck.php
deleted file mode 100644
index 6fab2d0..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/objeck.php
+++ /dev/null
@@ -1,114 +0,0 @@
-<?php
-/*************************************************************************************
- * objeck.php
- * --------
- * Author: Randy Hollines (objeck@gmail.com)
- * Copyright: (c) 2010 Randy Hollines (http://code.google.com/p/objeck-lang/)
- * Release Version: 1.0.9.0
- * Date Started: 2010/07/01
- *
- * Objeck Programming Language language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2010/07/26 (1.0.8.10)
- *  -  Added new and missing keywords and symbols: 'String', 'each', '+=', '-=', '*=' and '/='.
- * 2010/07/01 (1.0.8.9)
- *  -  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' => 'Objeck Programming Language',
-    'COMMENT_SINGLE' => array(1 => '#'),
-    'COMMENT_MULTI' => array('#~' => '~#'),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array('"'),
-    'ESCAPE_CHAR' => '\\',
-    'KEYWORDS' => array(
-        1 => array(
-            'virtual', 'if', 'else', 'do', 'while', 'use', 'bundle', 'native',
-            'static', 'public', 'private', 'class', 'function', 'method',
-            'select', 'other', 'enum', 'for', 'each', 'label', 'return', 'from'
-            ),
-        2 => array(
-            'Byte', 'Int', 'Nil', 'Float', 'Char', 'Bool', 'String'
-            ),
-        3 => array(
-            'true', 'false'
-            )
-        ),
-    'SYMBOLS' => array(
-        1 => array(
-            '(', ')', '{', '}', '[', ']', '+', '-', '*', '/', '%', '=', '<', '>', '&', '|', ':', ';', ',', '+=', '-=', '*=', '/=',
-            )
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => true,
-        2 => true,
-        3 => true
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #b1b100;',
-            2 => 'color: #b1b100;',
-            3 => 'color: #b1b100;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #666666; font-style: italic;',
-            '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(
-            0 => 'color: #004000;'
-            ),
-        'SYMBOLS' => array(
-            1 => 'color: #339933;'
-            ),
-        'REGEXPS' => array(),
-        'SCRIPT' => array()
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => ''
-        ),
-    'OOLANG' => true,
-    'OBJECT_SPLITTERS' => array(
-        1 => '-&gt;'
-        ),
-    'REGEXPS' => array(),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(),
-    'HIGHLIGHT_STRICT_BLOCK' => array()
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/ocaml-brief.php b/wiki/vendor/geshi/geshi/src/geshi/ocaml-brief.php
deleted file mode 100644
index f63c9e7..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/ocaml-brief.php
+++ /dev/null
@@ -1,110 +0,0 @@
-<?php
-/*************************************************************************************
- * ocaml.php
- * ----------
- * Author: Flaie (fireflaie@gmail.com)
- * Copyright: (c) 2005 Flaie, Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.9.0
- * Date Started: 2005/08/27
- *
- * OCaml (Objective Caml) language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2005/08/27 (1.0.0)
- *   -  First Release
- *
- * TODO (updated 2005/08/27)
- * -------------------------
- *
- *************************************************************************************
- *
- *   This file is part of GeSHi.
- *
- *   GeSHi is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   GeSHi is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with GeSHi; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- ************************************************************************************/
-
-$language_data = array (
-    'LANG_NAME' => 'OCaml (brief)',
-    'COMMENT_SINGLE' => array(),
-    'COMMENT_MULTI' => array('(*' => '*)'),
-    'CASE_KEYWORDS' => 0,
-    'QUOTEMARKS' => array('"'),
-    'ESCAPE_CHAR' => "",
-    'KEYWORDS' => array(
-        /* main OCaml keywords */
-        1 => array(
-            'and', 'as', 'asr', 'begin', 'class', 'closed', 'constraint', 'do', 'done', 'downto', 'else',
-            'end', 'exception', 'external', 'failwith', 'false', 'flush', 'for', 'fun', 'function', 'functor',
-            'if', 'in', 'include', 'inherit',  'incr', 'land', 'let', 'load', 'los', 'lsl', 'lsr', 'lxor',
-            'match', 'method', 'mod', 'module', 'mutable', 'new', 'not', 'of', 'open', 'option', 'or', 'parser',
-            'private', 'ref', 'rec', 'raise', 'regexp', 'sig', 'struct', 'stdout', 'stdin', 'stderr', 'then',
-            'to', 'true', 'try', 'type', 'val', 'virtual', 'when', 'while', 'with'
-            )
-        ),
-    /* highlighting symbols is really important in OCaml */
-    'SYMBOLS' => array(
-        ';', '!', ':', '.', '=', '%', '^', '*', '-', '/', '+',
-        '>', '<', '(', ')', '[', ']', '&', '|', '#', "'"
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false,
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #06c; font-weight: bold;' /* nice blue */
-            ),
-        'COMMENTS' => array(
-            'MULTI' => 'color: #5d478b; font-style: italic;' /* light purple */
-            ),
-        'ESCAPE_CHAR' => array(
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #6c6;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #3cb371;' /* nice green */
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #c6c;' /* pink */
-            ),
-        'METHODS' => array(
-            1 => 'color: #060;' /* dark green */
-            ),
-        'REGEXPS' => array(
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #a52a2a;' /* maroon */
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        ),
-    'OOLANG' => true,
-    'OBJECT_SPLITTERS' => array(
-        1 => '.'
-        ),
-    'REGEXPS' => array(
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/ocaml.php b/wiki/vendor/geshi/geshi/src/geshi/ocaml.php
deleted file mode 100644
index 4e14082..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/ocaml.php
+++ /dev/null
@@ -1,185 +0,0 @@
-<?php
-/*************************************************************************************
- * ocaml.php
- * ----------
- * Author: Flaie (fireflaie@gmail.com)
- * Copyright: (c) 2005 Flaie, Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.9.0
- * Date Started: 2005/08/27
- *
- * OCaml (Objective Caml) language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2008/03/29 (1.0.7.22)
- *   -  Fixed warnings resulting from missing style information
- * 2005/08/27 (1.0.0)
- *   -  First Release
- *
- * TODO (updated 2005/08/27)
- * -------------------------
- *
- *************************************************************************************
- *
- *   This file is part of GeSHi.
- *
- *   GeSHi is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   GeSHi is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with GeSHi; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- ************************************************************************************/
-
-$language_data = array (
-    'LANG_NAME' => 'OCaml',
-    'COMMENT_SINGLE' => array(),
-    'COMMENT_MULTI' => array('(*' => '*)'),
-    'COMMENT_REGEXP' => array(1 => '/\(\*(?:(?R)|.)+?\*\)/s'),
-    'CASE_KEYWORDS' => 0,
-    'QUOTEMARKS' => array('"'),
-    'ESCAPE_CHAR' => "",
-    'KEYWORDS' => array(
-        /* main OCaml keywords */
-        1 => array(
-            'and', 'as', 'asr', 'begin', 'class', 'closed', 'constraint', 'do', 'done', 'downto', 'else',
-            'end', 'exception', 'external', 'failwith', 'false', 'for', 'fun', 'function', 'functor',
-            'if', 'in', 'include', 'inherit',  'incr', 'land', 'let', 'load', 'los', 'lsl', 'lsr', 'lxor',
-            'match', 'method', 'mod', 'module', 'mutable', 'new', 'not', 'of', 'open', 'option', 'or', 'parser',
-            'private', 'ref', 'rec', 'raise', 'regexp', 'sig', 'struct', 'stdout', 'stdin', 'stderr', 'then',
-            'to', 'true', 'try', 'type', 'val', 'virtual', 'when', 'while', 'with'
-            ),
-        /* define names of main librarys, so we can link to it */
-        2 => array(
-            'Arg', 'Arith_status', 'Array', //'Array1', 'Array2', 'Array3',
-            'ArrayLabels', 'Big_int', 'Bigarray', 'Buffer', 'Callback',
-            'CamlinternalLazy', 'CamlinternalMod', 'CamlinternalOO', 'Char',
-            'Complex', 'Condition', 'Dbm', 'Digest', 'Dynlink', 'Event',
-            'Filename', 'Format', 'Gc', 'Genlex', 'Graphics', 'GraphicsX11',
-            'Hashtbl', 'Int32', 'Int64', 'Lazy', 'Lexing', 'List', 'ListLabels',
-            'Map', 'Marshal', 'MoreLabels', 'Mutex', 'Nativeint', 'Num', 'Obj',
-            'Oo', 'Parsing', 'Pervasives', 'Printexc', 'Printf', 'Queue',
-            'Random', 'Scanf', 'Set', 'Sort', 'Stack', 'StdLabels', 'Str',
-            'Stream', 'String', 'StringLabels', 'Sys', 'Thread', 'ThreadUnix',
-            'Tk', 'Unix', 'UnixLabels', 'Weak'
-            ),
-        /* just link to the Pervasives functions library, cause it's the default opened library when starting OCaml */
-        3 => array(
-            'abs', 'abs_float', 'acos', 'asin', 'at_exit', 'atan', 'atan2',
-            'bool_of_string', 'ceil', 'char_of_int', 'classify_float',
-            'close_in', 'close_in_noerr', 'close_out', 'close_out_noerr',
-            'compare', 'cos', 'cosh', 'decr', 'epsilon_float', 'exit', 'exp',
-            'float', 'float_of_int', 'float_of_string', 'floor', 'flush',
-            'flush_all', 'format_of_string', 'frexp', 'fst', 'ignore',
-            'in_channel_length', 'infinity', 'input', 'input_binary_int',
-            'input_byte', 'input_char', 'input_line', 'input_value',
-            'int_of_char', 'int_of_float', 'int_of_string', 'invalid_arg',
-            'ldexp', 'log', 'log10', 'max', 'max_float', 'max_int', 'min',
-            'min_float', 'min_int', 'mod_float', 'modf', 'nan', 'open_in',
-            'open_in_bin', 'open_in_gen', 'open_out', 'open_out_bin',
-            'open_out_gen', 'out_channel_length', 'output', 'output_binary_int',
-            'output_byte', 'output_char', 'output_string', 'output_value',
-            'pos_in', 'pos_out',  'pred', 'prerr_char', 'prerr_endline',
-            'prerr_float', 'prerr_int', 'prerr_newline', 'prerr_string',
-            'print_char', 'print_endline', 'print_float', 'print_int',
-            'print_newline', 'print_string', 'read_float', 'read_int',
-            'read_line', 'really_input', 'seek_in', 'seek_out',
-            'set_binary_mode_in', 'set_binary_mode_out', 'sin', 'sinh', 'snd',
-            'sqrt', 'string_of_bool', 'string_of_float', 'string_of_format',
-            'string_of_int', 'succ', 'tan', 'tanh', 'truncate'
-            ),
-        /* here Pervasives Types */
-        4 => array (
-            'array','bool','char','exn','file_descr','format','fpclass',
-            'in_channel','int','int32','int64','list','nativeint','open_flag',
-            'out_channel','string','Sys_error','unit'
-            ),
-        /* finally Pervasives Exceptions */
-        5 => array (
-            'Exit', 'Invalid_Argument', 'Failure', 'Division_by_zero'
-            )
-        ),
-    /* highlighting symbols is really important in OCaml */
-    'SYMBOLS' => array(
-        '+.', '-.', '*.', '/.', '[<', '>]',
-        ';', '!', ':', '.', '=', '%', '^', '*', '-', '/', '+',
-        '>', '<', '(', ')', '[', ']', '&', '|', '#', "'",
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false,
-        2 => true, /* functions name are case sensitive */
-        3 => true, /* types name too */
-        4 => true, /* pervasives types */
-        5 => true  /* pervasives exceptions */
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #06c; font-weight: bold;', /* nice blue */
-            2 => 'color: #06c; font-weight: bold;', /* nice blue */
-            3 => 'color: #06c; font-weight: bold;', /* nice blue */
-            4 => 'color: #06c; font-weight: bold;', /* nice blue */
-            5 => 'color: #06c; font-weight: bold;' /* nice blue */
-            ),
-        '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: #a52a2a;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #3cb371;' /* nice green */
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #c6c;' /* pink */
-            ),
-        'METHODS' => array(
-            1 => 'color: #060;' /* dark green */
-            ),
-        'REGEXPS' => array(
-            1 => 'font-weight:bold; color:#339933;',
-            2 => 'font-weight:bold; color:#993399;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #a52a2a;' /* maroon */
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'URLS' => array(
-        /* some of keywords are Pervasives functions (land, lxor, asr, ...) */
-        1 => '',
-        /* link to the wanted library */
-        2 => 'http://caml.inria.fr/pub/docs/manual-ocaml/libref/{FNAME}.html',
-        /* link to Pervasives functions */
-        3 => 'http://caml.inria.fr/pub/docs/manual-ocaml/libref/Pervasives.html#VAL{FNAME}',
-        /* link to Pervasives type */
-        4 => 'http://caml.inria.fr/pub/docs/manual-ocaml/libref/Pervasives.html#TYPE{FNAME}',
-        /* link to Pervasives exceptions */
-        5 => 'http://caml.inria.fr/pub/docs/manual-ocaml/libref/Pervasives.html#EXCEPTION{FNAME}'
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(
-        1 => '.'
-        ),
-    'REGEXPS' => array(
-        1 => '~\w+',
-        2 => '`(?=(?-i:[a-z]))\w*',
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/octave.php b/wiki/vendor/geshi/geshi/src/geshi/octave.php
deleted file mode 100644
index a77e5da..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/octave.php
+++ /dev/null
@@ -1,513 +0,0 @@
-<?php
-/*************************************************************************************
- * octave.php
- * -----------
- * Author: Carnë Draug (carandraug+dev@gmail.com)
- *         Juan Pablo Carbajal (carbajal@ifi.uzh.ch)
- * Copyright: (c) 2012 Carnë Draug
- *            (c) 2012 Juan Pablo Carbajal
- * Release Version: 1.0.9.0
- * Date Started: 2012/05/22
- *
- * 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
- * project or e-mail them to this file authors. Thanks in advance
- *
- * CHANGES
- * -------
- * 2012/05/22 (1.0.8.11)
- *   -  First Release
- *
- *************************************************************************************
- *
- *     This file is part of GeSHi.
- *
- *   GeSHi is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   GeSHi is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with GeSHi; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- ************************************************************************************/
-
-$language_data = array (
-    'LANG_NAME' => 'GNU/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
-    'COMMENT_MULTI' => array(),
-    // we can't use QUOTEMARKS, not even HARDQUOTE, see COMMENT_REGEXP
-    'QUOTEMARKS' => array(),
-    'ESCAPE_CHAR' => '',
-    'COMMENT_REGEXP' => array(
-        // Single quote strings: we can't use QUOTEMARKS here since new
-        // lines will break the string. Plus, single quote strings do not even
-        // allow for continuation markers, only double quote strings allow it.
-        // Also, to do not misdetect the transpose operator ' as the start of a
-        // string we assert to not follow a variable name (letters, digits and
-        // underscores) or a closing bracket (round, square or curly) or a dot
-        // (to form the array transpose operator ".'" ).
-        3 => "/(?<![0-9a-zA-Z_\)\]}\.])'.*?'/",
-        // Double quote strings: we also can't use QUOTEMARKS here (see single
-        // line quotes). However, with double quote strings both \ and ... can
-        // be used to make multiline strings. Continuation markers can be
-        // followed by whitespace
-        4 => '/"(.|(\.\.\.|\\\)(\s)*?\n)*?(?<!\\\)"/',
-        // Block comments: the ms modifiers treat strings as multiple lines (to
-        // be able to use ^ and $ instead of newline and thus support block
-        // comments on the first and last line of source) and make . also match
-        // a newline
-        5 => "/^\s*?[%#]{\s*?$.*?^\s*?[%#]}\s*?$/ms",
-        // Packaging system: comes here so that pkg can also be used in the
-        // function form. The list of pkg commands is optional to the match so
-        // that at least pkg is highlighted if new commands are implemented
-        6 => "/\bpkg(?!\s*\()\s+((un)?install|update|(un)?load|list|(global|local)_list|describe|prefix|(re)?build)?\b/",
-        // Function handles
-        7 => "/@([a-z_][a-z1-9_]*)?/i",
-        ),
-    'NUMBERS' =>
-        GESHI_NUMBER_INT_BASIC |
-        GESHI_NUMBER_OCT_PREFIX |
-        GESHI_NUMBER_HEX_PREFIX |
-        GESHI_NUMBER_FLT_SCI_ZERO,
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'KEYWORDS' => array(
-        // Reserved words
-        1 => 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'
-            ),
-        // Storage type
-        2 => array(
-            'global', 'persistent', 'static'
-            ),
-        // Internal variable
-        3 => array(
-            'ans'
-            ),
-        // Data types
-        4 => array(
-            'cell', 'char', 'double', 'uint8', 'uint16', 'uint32', 'uint64',
-            'int8','int16', 'int32', 'int64', 'logical', 'single', 'struct'
-            ),
-        // Built in
-        5 => array(
-            'P_tmpdir', 'abs', 'acos', 'acosh',
-            'add_input_event_hook', 'addlistener', 'addpath', 'addproperty',
-            'all', 'allow_noninteger_range_as_index', 'and', 'angle', 'any',
-            'arg', 'argnames', 'argv', 'asin', 'asinh', 'assignin', 'atan',
-            'atan2', 'atanh', 'atexit', 'autoload', 'available_graphics_toolkits',
-            'beep_on_error', 'bitand', 'bitmax', 'bitor', 'bitshift', 'bitxor',
-            'builtin', 'canonicalize_file_name', 'cat', 'cbrt', 'cd', 'ceil',
-            'cell2struct', 'cellstr', 'chdir', 'class', 'clc',
-            'clear', 'columns', 'command_line_path', 'completion_append_char',
-            'completion_matches', 'complex', 'confirm_recursive_rmdir', 'conj',
-            'cos', 'cosh', 'cputime', 'crash_dumps_octave_core', 'ctranspose',
-            'cumprod', 'cumsum', 'dbclear', 'dbcont', 'dbdown', 'dbnext',
-            'dbquit', 'dbstack', 'dbstatus', 'dbstep', 'dbstop', 'dbtype', 'dbup',
-            'dbwhere', 'debug_on_error', 'debug_on_interrupt', 'debug_on_warning',
-            'default_save_options', 'dellistener', 'diag', 'diary', 'diff',
-            'disp', 'do_braindead_shortcircuit_evaluation', 'do_string_escapes',
-            'doc_cache_file', 'drawnow', 'dup2', 'echo',
-            'echo_executing_commands', 'edit_history','eq', 'erf', 'erfc',
-            'erfcx', 'erfinv', 'errno', 'errno_list', 'error', 'eval', 'evalin',
-            'exec', 'exist', 'exit', 'exp', 'expm1', 'eye', 'fclear',
-            'fclose', 'fcntl', 'fdisp', 'feof', 'ferror', 'feval', 'fflush',
-            'fgetl', 'fgets', 'fieldnames', 'file_in_loadpath', 'file_in_path',
-            'filemarker', 'filesep', 'find_dir_in_path', 'finite', 'fix',
-            'fixed_point_format', 'floor', 'fmod', 'fnmatch', 'fopen', 'fork',
-            'format', 'formula', 'fprintf', 'fputs', 'fread', 'freport',
-            'frewind', 'fscanf', 'fseek', 'fskipl', 'ftell', 'full', 'func2str',
-            'functions', 'fwrite', 'gamma', 'gammaln', 'ge', 'genpath', 'get',
-            'get_help_text', 'get_help_text_from_file', 'getegid', 'getenv',
-            'geteuid', 'getgid', 'gethostname', 'getpgrp', 'getpid', 'getppid',
-            'getuid', 'glob', 'gt', 'history', 'history_control', 'history_file',
-            'history_size', 'history_timestamp_format_string', 'home', 'horzcat',
-            'hypot', 'ifelse', 'ignore_function_time_stamp', 'imag',
-            'inferiorto', 'info_file', 'info_program', 'inline', 'input',
-            'intmax', 'intmin', 'ipermute',
-            'is_absolute_filename', 'is_dq_string', 'is_function_handle',
-            'is_rooted_relative_filename', 'is_sq_string', 'isalnum', 'isalpha',
-            'isargout', 'isascii', 'isbool', 'iscell', 'iscellstr', 'ischar',
-            'iscntrl', 'iscomplex', 'isdebugmode', 'isdigit', 'isempty',
-            'isfield', 'isfinite', 'isfloat', 'isglobal', 'isgraph', 'ishandle',
-            'isieee', 'isindex', 'isinf', 'isinteger', 'iskeyword', 'islogical',
-            'islower', 'ismatrix', 'ismethod', 'isna', 'isnan', 'isnull',
-            'isnumeric', 'isobject', 'isprint', 'ispunct', 'isreal', 'issorted',
-            'isspace', 'issparse', 'isstruct', 'isupper', 'isvarname', 'isxdigit',
-            'kbhit', 'keyboard', 'kill', 'lasterr', 'lasterror', 'lastwarn',
-            'ldivide', 'le', 'length', 'lgamma', 'link', 'linspace',
-            'list_in_columns', 'load', 'loaded_graphics_toolkits', 'log', 'log10',
-            'log1p', 'log2', 'lower', 'lstat', 'lt',
-            'make_absolute_filename', 'makeinfo_program', 'max_recursion_depth',
-            'merge', 'methods', 'mfilename', 'minus', 'mislocked',
-            'missing_function_hook', 'mkdir', 'mkfifo', 'mkstemp', 'mldivide',
-            'mlock', 'mod', 'more', 'mpower', 'mrdivide', 'mtimes', 'munlock',
-            'nargin', 'nargout', 'native_float_format', 'ndims', 'ne',
-            'nfields', 'nnz', 'norm', 'not', 'nth_element', 'numel', 'nzmax',
-            'octave_config_info', 'octave_core_file_limit',
-            'octave_core_file_name', 'octave_core_file_options',
-            'octave_tmp_file_name', 'onCleanup', 'ones',
-            'optimize_subsasgn_calls', 'or', 'output_max_field_width',
-            'output_precision', 'page_output_immediately', 'page_screen_output',
-            'path', 'pathsep', 'pause', 'pclose', 'permute', 'pipe', 'plus',
-            'popen', 'popen2', 'power', 'print_empty_dimensions',
-            'print_struct_array_contents', 'printf', 'prod',
-            'program_invocation_name', 'program_name', 'putenv', 'puts', 'pwd',
-            'quit', 'rats', 'rdivide', 're_read_readline_init_file',
-            'read_readline_init_file', 'readdir', 'readlink', 'real', 'realmax',
-            'realmin', 'register_graphics_toolkit', 'rehash', 'rem',
-            'remove_input_event_hook', 'rename', 'repelems', 'reset', 'reshape',
-            'resize', 'restoredefaultpath', 'rethrow', 'rmdir', 'rmfield',
-            'rmpath', 'round', 'roundb', 'rows', 'run_history', 'save',
-            'save_header_format_string', 'save_precision', 'saving_history',
-            'scanf', 'set', 'setenv', 'sighup_dumps_octave_core', 'sign',
-            'sigterm_dumps_octave_core', 'silent_functions', 'sin',
-            'sinh', 'size', 'size_equal', 'sizemax', 'sizeof', 'sleep', 'sort',
-            'source', 'spalloc', 'sparse', 'sparse_auto_mutate',
-            'split_long_rows', 'sprintf', 'sqrt', 'squeeze', 'sscanf', 'stat',
-            'stderr', 'stdin', 'stdout', 'str2func', 'strcmp', 'strcmpi',
-            'string_fill_char', 'strncmp', 'strncmpi', 'struct2cell',
-            'struct_levels_to_print', 'strvcat', 'subsasgn', 'subsref', 'sum',
-            'sumsq', 'superiorto', 'suppress_verbose_help_message', 'symlink',
-            'system', 'tan', 'tanh', 'terminal_size', 'tic', 'tilde_expand',
-            'times', 'tmpfile', 'tmpnam', 'toascii', 'toc', 'tolower', 'toupper',
-            'transpose', 'typeinfo',
-            'umask', 'uminus', 'uname', 'undo_string_escapes', 'unlink',
-            'uplus', 'upper', 'usage', 'usleep', 'vec', 'vectorize', 'vertcat',
-            'waitfor', 'waitpid', 'warning', 'warranty', 'who', 'whos',
-            'whos_line_format', 'yes_or_no', 'zeros'
-            ),
-        // Octave functions
-        6 => array(
-            'accumarray', 'accumdim', 'acosd', 'acot', 'acotd', 'acoth', 'acsc',
-            'acscd', 'acsch', 'addpref', 'addtodate', 'allchild', 'amd',
-            'ancestor', 'anova', 'arch_fit', 'arch_rnd', 'arch_test',
-            'area', 'arma_rnd', 'asctime', 'asec', 'asecd', 'asech', 'asind',
-            'assert', 'atand', 'autoreg_matrix', 'autumn',
-            'axes', 'axis', 'balance', 'bar', 'barh', 'bartlett', 'bartlett_test',
-            'base2dec', 'beep', 'bessel', 'besselj', 'beta', 'betacdf',
-            'betainc', 'betainv', 'betaln', 'betapdf', 'betarnd', 'bicg',
-            'bicgstab', 'bicubic', 'bin2dec', 'bincoeff', 'binocdf', 'binoinv',
-            'binopdf', 'binornd', 'bitcmp', 'bitget', 'bitset', 'blackman',
-            'blanks', 'blkdiag', 'bone', 'box', 'brighten', 'bsxfun',
-            'bug_report', 'bunzip2', 'bzip2', 'calendar', 'cart2pol', 'cart2sph',
-            'cast', 'cauchy_cdf', 'cauchy_inv', 'cauchy_pdf', 'cauchy_rnd',
-            'caxis', 'ccolamd', 'cell2mat', 'celldisp', 'cellfun',
-            'center', 'cgs', 'chi2cdf', 'chi2inv', 'chi2pdf', 'chi2rnd',
-            'chisquare_test_homogeneity', 'chisquare_test_independence', 'chol',
-            'chop', 'circshift', 'cla', 'clabel', 'clf', 'clock',
-            'cloglog', 'close', 'closereq', 'colamd', 'colloc', 'colon',
-            'colorbar', 'colormap', 'colperm', 'colstyle', 'comet', 'comet3',
-            'comma', 'common_size', 'commutation_matrix', 'compan',
-            'compare_versions', 'compass', 'computer', 'cond', 'condest',
-            'contour', 'contour3', 'contourc', 'contourf', 'contrast', 'conv',
-            'conv2', 'convhull', 'convhulln', 'cool', 'copper', 'copyfile',
-            'cor_test', 'corr', 'cosd', 'cot', 'cotd', 'coth', 'cov',
-            'cplxpair', 'cross', 'csc', 'cscd', 'csch', 'cstrcat',
-            'csvread', 'csvwrite', 'ctime', 'cumtrapz', 'curl', 'cylinder',
-            'daspect', 'daspk', 'dasrt', 'dassl', 'date', 'datenum', 'datestr',
-            'datetick', 'datevec', 'dblquad', 'deal', 'deblank', 'debug',
-            'dec2base', 'dec2bin', 'dec2hex', 'deconv', 'del2', 'delaunay',
-            'delaunay3', 'delaunayn', 'delete', 'demo', 'det', 'detrend',
-            'diffpara', 'diffuse', 'dir', 'discrete_cdf', 'discrete_inv',
-            'discrete_pdf', 'discrete_rnd', 'display', 'divergence',
-            'dlmread', 'dlmwrite', 'dmperm', 'doc', 'dos', 'dot', 'dsearch',
-            'dsearchn', 'dump_prefs', 'duplication_matrix', 'durbinlevinson',
-            'edit', 'eig', 'eigs', 'ellipsoid', 'empirical_cdf', 'empirical_inv',
-            'empirical_pdf', 'empirical_rnd', 'eomday', 'errorbar',
-            'etime', 'etreeplot', 'example', 'expcdf', 'expinv', 'expm', 'exppdf',
-            'exprnd', 'ezcontour', 'ezcontourf', 'ezmesh', 'ezmeshc', 'ezplot',
-            'ezplot3', 'ezpolar', 'ezsurf', 'ezsurfc', 'f_test_regression',
-            'fact', 'factor', 'factorial', 'fail', 'fcdf', 'feather', 'fft',
-            'fft2', 'fftconv', 'fftfilt', 'fftn', 'fftshift', 'fftw', 'figure',
-            'fileattrib', 'fileparts', 'fileread', 'fill', 'filter', 'filter2',
-            'find', 'findall', 'findobj', 'findstr', 'finv', 'flag', 'flipdim',
-            'fliplr', 'flipud', 'fminbnd', 'fminunc', 'fpdf', 'fplot',
-            'fractdiff', 'freqz', 'freqz_plot', 'frnd', 'fsolve',
-            'fullfile', 'fzero', 'gamcdf', 'gaminv', 'gammainc',
-            'gampdf', 'gamrnd', 'gca', 'gcbf', 'gcbo', 'gcd', 'gcf',
-            'gen_doc_cache', 'genvarname', 'geocdf', 'geoinv', 'geopdf', 'geornd',
-            'get_first_help_sentence', 'getappdata', 'getfield', 'getgrent',
-            'getpref', 'getpwent', 'getrusage', 'ginput', 'givens', 'glpk',
-            'gls', 'gmap40', 'gmres', 'gnuplot_binary', 'gplot',
-            'gradient', 'graphics_toolkit', 'gray', 'gray2ind', 'grid',
-            'griddata', 'griddata3', 'griddatan', 'gtext', 'guidata',
-            'guihandles', 'gunzip', 'gzip', 'hadamard', 'hamming', 'hankel',
-            'hanning', 'help', 'hess', 'hex2dec', 'hex2num', 'hggroup', 'hidden',
-            'hilb', 'hist', 'histc', 'hold', 'hot', 'hotelling_test',
-            'hotelling_test_2', 'housh', 'hsv', 'hsv2rgb', 'hurst', 'hygecdf',
-            'hygeinv', 'hygepdf', 'hygernd', 'idivide', 'ifftshift', 'image',
-            'imagesc', 'imfinfo', 'imread', 'imshow', 'imwrite', 'ind2gray',
-            'ind2rgb', 'index', 'info', 'inpolygon', 'inputname', 'int2str',
-            'interp1', 'interp1q', 'interp2', 'interp3', 'interpft', 'interpn',
-            'intersect', 'inv', 'invhilb', 'iqr',
-            'is_leap_year', 'is_valid_file_id',
-            'isa', 'isappdata', 'iscolumn', 'isdefinite', 'isdeployed', 'isdir',
-            'isequal', 'isequalwithequalnans', 'isfigure', 'ishermitian',
-            'ishghandle', 'ishold', 'isletter', 'ismac', 'ismember', 'isocolors',
-            'isonormals', 'isosurface', 'ispc', 'ispref', 'isprime', 'isprop',
-            'isrow', 'isscalar', 'issquare', 'isstrprop', 'issymmetric',
-            'isunix', 'isvector', 'jet', 'kendall', 'kolmogorov_smirnov_cdf',
-            'kolmogorov_smirnov_test', 'kolmogorov_smirnov_test_2', 'kron',
-            'kruskal_wallis_test', 'krylov', 'kurtosis', 'laplace_cdf',
-            'laplace_inv', 'laplace_pdf', 'laplace_rnd', 'lcm', 'legend',
-            'legendre', 'license', 'lin2mu', 'line', 'linkprop', 'list_primes',
-            'loadaudio', 'loadobj', 'logistic_cdf', 'logistic_inv',
-            'logistic_pdf', 'logistic_regression', 'logistic_rnd', 'logit',
-            'loglog', 'loglogerr', 'logm', 'logncdf', 'logninv', 'lognpdf',
-            'lognrnd', 'logspace', 'lookfor', 'lookup', 'ls', 'ls_command',
-            'lsode', 'lsqnonneg', 'lu', 'luinc', 'magic', 'mahalanobis', 'manova',
-            'mat2str', 'matlabroot', 'matrix_type', 'max', 'mcnemar_test',
-            'md5sum', 'mean', 'meansq', 'median', 'menu', 'mesh', 'meshc',
-            'meshgrid', 'meshz', 'mex', 'mexext', 'mgorth', 'mkoctfile', 'mkpp',
-            'mode', 'moment', 'movefile', 'mpoles', 'mu2lin', 'namelengthmax',
-            'nargchk', 'narginchk', 'nargoutchk', 'nbincdf', 'nbininv', 'nbinpdf',
-            'nbinrnd', 'nchoosek', 'ndgrid', 'newplot', 'news', 'nextpow2',
-            'nonzeros', 'normcdf', 'normest', 'norminv', 'normpdf', 'normrnd',
-            'now', 'nproc', 'nthargout', 'nthroot', 'ntsc2rgb', 'null', 'num2str',
-            'ocean', 'ols', 'onenormest', 'optimget', 'optimset', 'orderfields',
-            'orient', 'orth', 'pack', 'paren', 'pareto', 'parseparams', 'pascal',
-            'patch', 'pathdef', 'pbaspect', 'pcg', 'pchip', 'pcolor', 'pcr',
-            'peaks', 'periodogram', 'perl', 'perms', 'pie', 'pie3',
-            'pink', 'pinv', 'pkg', 'planerot', 'playaudio', 'plot', 'plot3',
-            'plotmatrix', 'plotyy', 'poisscdf', 'poissinv', 'poisspdf',
-            'poissrnd', 'pol2cart', 'polar', 'poly', 'polyaffine', 'polyarea',
-            'polyder', 'polyfit', 'polygcd', 'polyint', 'polyout',
-            'polyreduce', 'polyval', 'polyvalm', 'postpad', 'pow2', 'powerset',
-            'ppder', 'ppint', 'ppjumps', 'ppplot', 'ppval', 'pqpnonneg',
-            'prctile', 'prepad', 'primes', 'print', 'printAllBuiltins',
-            'print_usage', 'prism', 'probit', 'profexplore', 'profile',
-            'profshow', 'prop_test_2', 'python', 'qp', 'qqplot', 'qr', 'quad',
-            'quadcc', 'quadgk', 'quadl', 'quadv', 'quantile', 'quiver', 'quiver3',
-            'qz', 'qzhess', 'rainbow', 'rand', 'randi', 'range', 'rank', 'ranks',
-            'rat', 'rcond', 'reallog', 'realpow', 'realsqrt', 'record',
-            'rectangle', 'rectint', 'recycle', 'refresh', 'refreshdata', 'regexp',
-            'regexptranslate', 'repmat', 'residue', 'rgb2hsv',
-            'rgb2ind', 'rgb2ntsc', 'ribbon', 'rindex', 'rmappdata', 'rmpref',
-            'roots', 'rose', 'rosser', 'rot90', 'rotdim', 'rref', 'run',
-            'run_count', 'run_test', 'rundemos', 'runlength', 'runtests',
-            'saveas', 'saveaudio', 'saveobj', 'savepath', 'scatter',
-            'scatter3', 'schur', 'sec', 'secd', 'sech', 'semicolon', 'semilogx',
-            'semilogxerr', 'semilogy', 'semilogyerr', 'setappdata', 'setaudio',
-            'setdiff', 'setfield', 'setpref', 'setxor', 'shading',
-            'shg', 'shift', 'shiftdim', 'sign_test', 'sinc', 'sind',
-            'sinetone', 'sinewave', 'skewness', 'slice', 'sombrero', 'sortrows',
-            'spaugment', 'spconvert', 'spdiags', 'spearman', 'spectral_adf',
-            'spectral_xdf', 'specular', 'speed', 'spencer', 'speye', 'spfun',
-            'sph2cart', 'sphere', 'spinmap', 'spline', 'spones', 'spparms',
-            'sprand', 'sprandn', 'sprandsym', 'spring', 'spstats', 'spy', 'sqp',
-            'sqrtm', 'stairs', 'statistics', 'std', 'stdnormal_cdf',
-            'stdnormal_inv', 'stdnormal_pdf', 'stdnormal_rnd', 'stem', 'stem3',
-            'stft', 'str2double', 'str2num', 'strcat', 'strchr',
-            'strfind', 'strjust', 'strmatch', 'strread', 'strsplit', 'strtok',
-            'strtrim', 'strtrunc', 'structfun', 'sub2ind',
-            'subplot', 'subsindex', 'subspace', 'substr', 'substruct', 'summer',
-            'surf', 'surface', 'surfc', 'surfl', 'surfnorm', 'svd', 'svds',
-            'swapbytes', 'syl', 'symbfact', 'symrcm',
-            'symvar', 'synthesis', 't_test', 't_test_2', 't_test_regression',
-            'table', 'tand', 'tar', 'tcdf', 'tempdir', 'tempname', 'test', 'text',
-            'textread', 'textscan', 'time', 'tinv', 'title', 'toeplitz', 'tpdf',
-            'trace', 'trapz', 'treelayout', 'treeplot', 'tril', 'trimesh',
-            'triplequad', 'triplot', 'trisurf', 'trnd', 'tsearch', 'tsearchn',
-            'type', 'typecast', 'u_test', 'uicontextmenu', 'uicontrol',
-            'uigetdir', 'uigetfile', 'uimenu', 'uipanel', 'uipushtool',
-            'uiputfile', 'uiresume', 'uitoggletool', 'uitoolbar', 'uiwait',
-            'unidcdf', 'unidinv', 'unidpdf', 'unidrnd', 'unifcdf', 'unifinv',
-            'unifpdf', 'unifrnd', 'unimplemented', 'union', 'unique', 'unix',
-            'unmkpp', 'unpack', 'untabify', 'untar', 'unwrap', 'unzip',
-            'urlwrite', 'usejava', 'validatestring', 'vander', 'var',
-            'var_test', 'vech', 'ver', 'version', 'view', 'voronoi', 'voronoin',
-            'waitbar', 'waitforbuttonpress', 'warning_ids', 'wavread', 'wavwrite',
-            'wblcdf', 'wblinv', 'wblpdf', 'wblrnd', 'weekday',
-            'welch_test', 'what', 'which',
-            'white', 'whitebg', 'wienrnd', 'wilcoxon_test', 'wilkinson', 'winter',
-            'xlabel', 'xlim', 'xor', 'ylabel', 'ylim', 'yulewalker', 'z_test',
-            'z_test_2', 'zip', 'zlabel', 'zlim', 'zscore', 'airy', 'arrayfun',
-            'besselh', 'besseli', 'besselk', 'bessely', 'bitpack', 'bitunpack',
-            'blkmm', 'cellindexmat', 'cellslices', 'chol2inv', 'choldelete',
-            'cholinsert', 'cholinv', 'cholshift', 'cholupdate', 'convn',
-            'csymamd', 'cummax', 'cummin', 'daspk_options', 'dasrt_options',
-            'dassl_options', 'endgrent', 'endpwent', 'etree', 'getgrgid',
-            'getgrnam', 'getpwnam', 'getpwuid', 'gmtime', 'gui_mode', 'ifft',
-            'ifft2', 'ifftn', 'ind2sub', 'inverse', 'localtime', 'lsode_options',
-            'luupdate', 'mat2cell', 'min', 'mktime', 'mouse_wheel_zoom',
-            'num2cell', 'num2hex', 'qrdelete', 'qrinsert', 'qrshift', 'qrupdate',
-            'quad_options', 'rande', 'randg', 'randn', 'randp', 'randperm',
-            'regexpi', 'regexprep', 'rsf2csf', 'setgrent', 'setpwent', 'sprank',
-            'strftime', 'strptime', 'strrep', 'svd_driver', 'symamd', 'triu',
-            'urlread'
-            ),
-        // Private builtin
-        7 => array(
-            '__accumarray_max__', '__accumarray_min__', '__accumarray_sum__',
-            '__accumdim_sum__', '__builtins__', '__calc_dimensions__',
-            '__current_scope__', '__display_tokens__', '__dump_symtab_info__',
-            '__end__', '__get__', '__go_axes__', '__go_axes_init__',
-            '__go_delete__', '__go_execute_callback__', '__go_figure__',
-            '__go_figure_handles__', '__go_handles__', '__go_hggroup__',
-            '__go_image__', '__go_line__', '__go_patch__', '__go_surface__',
-            '__go_text__', '__go_uicontextmenu__', '__go_uicontrol__',
-            '__go_uimenu__', '__go_uipanel__', '__go_uipushtool__',
-            '__go_uitoggletool__', '__go_uitoolbar__', '__gud_mode__',
-            '__image_pixel_size__', '__is_handle_visible__', '__isa_parent__',
-            '__keywords__', '__lexer_debug_flag__', '__list_functions__',
-            '__operators__', '__parent_classes__', '__parser_debug_flag__',
-            '__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__',
-            '__dsearchn__', '__finish__', '__fltk_uigetfile__',
-            '__glpk__', '__gnuplot_drawnow__', '__init_fltk__',
-            '__init_gnuplot__', '__lin_interpn__', '__magick_read__',
-            '__makeinfo__', '__pchip_deriv__', '__plt_get_axis_arg__', '__qp__',
-            '__voronoi__', '__fltk_maxtime__', '__fltk_redraw__', '__ftp__',
-            '__ftp_ascii__', '__ftp_binary__', '__ftp_close__', '__ftp_cwd__',
-            '__ftp_delete__', '__ftp_dir__', '__ftp_mget__', '__ftp_mkdir__',
-            '__ftp_mode__', '__ftp_mput__', '__ftp_pwd__', '__ftp_rename__',
-            '__ftp_rmdir__', '__magick_finfo__', '__magick_format_list__',
-            '__magick_write__'
-            ),
-        // Builtin Global Variables
-        9 => array(
-            'EDITOR', 'EXEC_PATH', 'F_DUPFD', 'F_GETFD', 'F_GETFL', 'F_SETFD',
-            'F_SETFL', 'IMAGE_PATH', 'OCTAVE_HOME',
-            'OCTAVE_VERSION', 'O_APPEND', 'O_ASYNC', 'O_CREAT', 'O_EXCL',
-            'O_NONBLOCK', 'O_RDONLY', 'O_RDWR', 'O_SYNC', 'O_TRUNC', 'O_WRONLY',
-            'PAGER', 'PAGER_FLAGS', 'PS1', 'PS2', 'PS4', 'SEEK_CUR', 'SEEK_END',
-            'SEEK_SET', 'SIG', 'S_ISBLK', 'S_ISCHR', 'S_ISDIR', 'S_ISFIFO',
-            'S_ISLNK', 'S_ISREG', 'S_ISSOCK', 'WCONTINUE', 'WCOREDUMP',
-            'WEXITSTATUS', 'WIFCONTINUED', 'WIFEXITED', 'WIFSIGNALED',
-            'WIFSTOPPED', 'WNOHANG', 'WSTOPSIG', 'WTERMSIG', 'WUNTRACED'
-            ),
-        // Constant functions
-        10 => array (
-            'e', 'eps', 'inf', 'Inf', 'nan', 'NaN', 'NA', 'pi', 'i', 'I', 'j',
-            'J', 'true', 'false'
-            ),
-        ),
-    'SYMBOLS' => array(
-        // Comparison & logical
-        0 => array(
-            '!', '!=', '&', '&&','|', '||', '~', '~=',
-            '<', '<=', '==', '>', '>='
-            ),
-        // Aritmethical
-        1 => array(
-            '*', '**', '+', '++', '-', '--', '/', "\\","'"
-            ),
-        // Elementwise arithmetical
-        2 => array(
-            '.*', '.**','./', '.^', '^',".\\",".'"
-            ),
-        // Arithmetical & assignation
-        3 => array(
-            '*=','+=','-=','/=','\=','**=','^=',
-            '.*=','.+=','.-=','./=','.\=','.**=','.^=','='
-            ),
-        // Indexer
-        4 => array(
-            ':'
-            ),
-        // Delimiters
-        5 => array(
-            ',', '...', ';'
-            ),
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => true,
-        1 => true,
-        2 => true,
-        3 => true,
-        4 => true,
-        5 => true,
-        6 => true,
-        7 => true,
-        8 => true,
-        9 => true,
-        10 => true,
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => '',
-        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 => '',
-        8 => '',
-        9 => 'http://octave.sourceforge.net/octave/function/{FNAME}.html',
-        10 => 'http://octave.sourceforge.net/octave/function/{FNAME}.html',
-        ),
-    'OOLANG' => true,
-    'OBJECT_SPLITTERS' => array(
-        1 => '.',
-        ),
-    'REGEXPS' => array(),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(),
-    'HIGHLIGHT_STRICT_BLOCK' => array(),
-    'STYLES' => array(
-        'COMMENTS' => array(
-            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
-            6 => 'color: #996600; font-weight:bold;',   // packaging system
-            7 => 'color: #006600; font-weight:bold;',   // function handles
-            'MULTI' => 'color: #0000FF; font-style: italic;',
-            ),
-        'KEYWORDS' => array(
-            1 => 'color: #990000; font-weight:bold;',   // Reserved words
-            2 => 'color: #2E8B57;',                     // Storage type
-            3 => 'color: #0000FF; font-weight:bold;',   // Internal variable
-            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
-            10 => 'color: #008A8C; font-weight:bold;',  // Constant functions
-            ),
-        'ESCAPE_CHAR' => array(),
-        'BRACKETS' => array(
-            0 => 'color: #080;',
-            ),
-        'STRINGS' => array(
-            // strings were specified on the COMMENT_REGEXP section
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #cc66cc;',
-            GESHI_NUMBER_OCT_PREFIX => 'color: #208080;',
-            GESHI_NUMBER_HEX_PREFIX => 'color: #208080;',
-            GESHI_NUMBER_FLT_SCI_ZERO => 'color:#800080;',
-            ),
-        'METHODS' => array(),
-        'SYMBOLS' => array(
-            0 => 'color: #FF9696; font-weight:bold;',   // Comparison & logical
-            1 => 'color: #CC0000; font-weight:bold;',   // Aritmethical
-            2 => 'color: #993333; font-weight:bold;',   // Elementwise arithmetical
-            3 => 'color: #FF0000; font-weight:bold;',   // Arithmetical & assignation
-            4 => 'color: #33F;',                        // Indexer
-            5 => 'color: #33F;',                        // Delimiters
-            ),
-        'REGEXPS' => array(),
-        'SCRIPT' => array(),
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/oobas.php b/wiki/vendor/geshi/geshi/src/geshi/oobas.php
deleted file mode 100644
index e6f5efd..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/oobas.php
+++ /dev/null
@@ -1,133 +0,0 @@
-<?php
-/*************************************************************************************
- * oobas.php
- * ---------
- * Author: Roberto Rossi (rsoftware@altervista.org)
- * Copyright: (c) 2004 Roberto Rossi (http://rsoftware.altervista.org), Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.9.0
- * Date Started: 2004/08/30
- *
- * OpenOffice.org Basic 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.1)
- *  -  Added support for multiple object splitters
- * 2004/10/27 (1.0.0)
- *  -  First Release
- *
- * TODO (updated 2004/11/27)
- * -------------------------
- *
- *************************************************************************************
- *
- *     This file is part of GeSHi.
- *
- *   GeSHi is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   GeSHi is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with GeSHi; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- ************************************************************************************/
-
-$language_data = array (
-    'LANG_NAME' => 'OpenOffice.org Basic',
-    'COMMENT_SINGLE' => array(1 => "'"),
-    'COMMENT_MULTI' => array(),
-    //Single-Line comments using REM keyword
-    'COMMENT_REGEXP' => array(2 => '/\bREM.*?$/i'),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array('"'),
-    'ESCAPE_CHAR' => '',
-    'KEYWORDS' => array(
-        1 => array(
-            'dim','private','public','global','as','if','redim','true','set','byval',
-            'false','bool','double','integer','long','object','single','variant',
-            'msgbox','print','inputbox','green','blue','red','qbcolor',
-            'rgb','open','close','reset','freefile','get','input','line',
-            'put','write','loc','seek','eof','lof','chdir','chdrive',
-            'curdir','dir','fileattr','filecopy','filedatetime','fileexists',
-            'filelen','getattr','kill','mkdir','name','rmdir','setattr',
-            'dateserial','datevalue','day','month','weekday','year','cdatetoiso',
-            'cdatefromiso','hour','minute','second','timeserial','timevalue',
-            'date','now','time','timer','erl','err','error','on','goto','resume',
-            'and','eqv','imp','not','or','xor','mod','atn','cos','sin','tan','log',
-            'exp','rnd','randomize','sqr','fix','int','abs','sgn','hex','oct',
-            'it','then','else','select','case','iif','do','loop','for','next','to',
-            'while','wend','gosub','return','call','choose','declare',
-            'end','exit','freelibrary','function','rem','stop','sub','switch','with',
-            'cbool','cdate','cdbl','cint','clng','const','csng','cstr','defbool',
-            'defdate','defdbl','defint','deflng','asc','chr','str','val','cbyte',
-            'space','string','format','lcase','left','lset','ltrim','mid','right',
-            'rset','rtrim','trim','ucase','split','join','converttourl','convertfromurl',
-            'instr','len','strcomp','beep','shell','wait','getsystemticks','environ',
-            'getsolarversion','getguitype','twipsperpixelx','twipsperpixely',
-            'createunostruct','createunoservice','getprocessservicemanager',
-            'createunodialog','createunolistener','createunovalue','thiscomponent',
-            'globalscope'
-            )
-        ),
-    'SYMBOLS' => array(
-        '(', ')', '='
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #b1b100;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #808080;',
-            2 => 'color: #808080;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #66cc66;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #ff0000;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #cc66cc;'
-            ),
-        'METHODS' => array(
-            1 => 'color: #006600;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #66cc66;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #000099;'
-            ),
-        'SCRIPT' => array(
-            ),
-        'REGEXPS' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => ''
-        ),
-    'OOLANG' => true,
-    'OBJECT_SPLITTERS' => array(
-        1 => '.'
-        ),
-    'REGEXPS' => array(
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/oorexx.php b/wiki/vendor/geshi/geshi/src/geshi/oorexx.php
deleted file mode 100644
index 5fde800..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/oorexx.php
+++ /dev/null
@@ -1,169 +0,0 @@
-<?php
-/*************************************************************************************
- * oorexx.php
- * ---------------------------------
- * Author: Jon Wolfers (sahananda@windhorse.biz)
- * Contributors:
- *    - Walter Pachl (pachl@chello.at)
- * Copyright: (c) 2008 Jon Wolfers, (c) 2012 Walter Pachl
- * Release Version: 1.0.9.0
- * Date Started: 2008/01/07
- *
- * ooRexx language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2012/07/29 (1.0.0)
- *    -  tried to get it syntactically right
- *
- * TODO (updated 2012/07/29)
- * -------------------------
- *   -  Get it working on rosettacode.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' => 'ooRexx',
-    'COMMENT_SINGLE' => array(1 => '--'),
-    'COMMENT_MULTI' => array('/*' => '*/'),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array("'", '"'),
-    'ESCAPE_CHAR' => '',
-    'KEYWORDS' => array(
-        1 => array(
-            'address', 'arg', 'attribute', 'call', 'constant', 'do',
-            'drop', 'exit', 'if',
-            'interpret', 'iterate', 'leave', 'loop', 'nop', 'numeric',
-            'parse', 'procedure', 'pull', 'push', 'queue',
-            'raise', 'reply', 'return', 'say', 'select', 'signal',
-            'use'
-            ),
-        2 => array(
-            'abstract', 'any', 'arguments', 'array', 'by',
-            'continue', 'digits', 'engineering', 'error',
-            'expose', 'external', 'failure', 'for', 'forever',
-            'forward', 'get', 'guard', 'guarded', 'halt',
-            'inherit', 'library', 'lostdigits', 'message',
-            'metaclass', 'mixinclass', 'name', 'nomethod', 'nostring',
-            'notready', 'novalue', 'off', 'on', 'options', 'over',
-            'private', 'protected', 'public', 'scientific', 'set',
-            'source', 'subclass', 'syntax', 'to', 'unguarded',
-            'unprotected', 'until', 'user',
-            'version', 'while', 'with'
-            ),
-        3 => array(
-            'else', 'end', 'otherwise', 'then', 'when'
-            ),
-        4 => array(
-            'rc', 'result', 'self', 'sigl', 'super'
-            ),
-        5 => array(
-            '::attribute', '::class', '::constant', '::method',
-            '::optins', '::requires', '::routine'
-            ),
-        6 => array(
-            'abbrev', 'abs', 'beep', 'bitand', 'bitor',
-            'bitxor', 'b2x', 'center', 'centre', 'changestr', 'charin',
-            'charout', 'chars', 'compare', 'condition', 'copies',
-            'countstr', 'c2d', 'c2x', 'datatype', 'date', 'delstr',
-            'delword', 'directory', 'd2c', 'd2x', 'endlocal',
-            'errortext', 'filespec', 'form', 'format', 'fuzz', 'insert',
-            'lastpos', 'left', 'length', 'linein', 'lineout', 'lines',
-            'lower', 'max', 'min', 'overlay', 'pos', 'qualify', 'queued',
-            'random', 'reverse', 'right', 'rxfuncadd', 'rxfuncdrop',
-            'rxfuncquery', 'rxqueue', 'setlocal', 'sign', 'sourceline',
-            'space', 'stream', 'strip', 'substr', 'subword', 'symbol',
-            'time', 'trace', 'translate', 'trunc', 'upper', 'userid',
-            'value', 'var', 'verify', 'word', 'wordindex', 'wordlength',
-            'wordpos', 'words', 'xrange', 'x2b', 'x2c', 'x2d'
-            )
-        ),
-    'SYMBOLS' => array(
-        '(', ')', '<', '>', '[', ']', '=', '+', '-', '*', '/', '!', '%', '^', '&', ':',
-        '<', '>'
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => true,
-        1 => false,
-        2 => false,
-        3 => false,
-        4 => false,
-        5 => false,
-        6 => false
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #b1b100;',
-            2 => 'color: #ff0000; font-weight: bold;',
-            3 => 'color: #00ff00; font-weight: bold;',
-            4 => 'color: #0000ff; font-weight: bold;',
-            5 => 'color: #880088; font-weight: bold;',
-            6 => 'color: #888800; font-weight: bold;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #666666;',
-            'MULTI' => 'color: #808080;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #000099; font-weight: bold;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #66cc66;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #ff0000;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #cc66cc;'
-            ),
-        'METHODS' => array(
-            1 => 'color: #202020;',
-            2 => 'color: #202020;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #66cc66;'
-            ),
-        'REGEXPS' => array(
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => '',
-        4 => '',
-        5 => '',
-        6 => ''
-        ),
-    'OOLANG' => true,
-    'OBJECT_SPLITTERS' => array(
-        1 => '.'
-        ),
-    'REGEXPS' => array(
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        ),
-    'TAB_WIDTH' => 4
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/oracle11.php b/wiki/vendor/geshi/geshi/src/geshi/oracle11.php
deleted file mode 100644
index 36b2082..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/oracle11.php
+++ /dev/null
@@ -1,612 +0,0 @@
-<?php
-/*************************************************************************************
- * oracle11.php
- * -----------
- * Author: Guy Wicks (Guy.Wicks@rbs.co.uk)
- * Contributions:
- * - Updated for 11i by Simon Redhead
- * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.9.0
- * Date Started: 2004/06/04
- *
- * Oracle 11i language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2008/04/08 (1.0.8)
- *  -  SR changes to oracle8.php to support Oracle 11i reserved words.
- * 2005/01/29 (1.0.0)
- *  -  First Release
- *
- * TODO (updated 2004/11/27)
- * -------------------------
- *
- *************************************************************************************
- *
- *     This file is part of GeSHi.
- *
- *   GeSHi is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   GeSHi is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with GeSHi; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- ************************************************************************************/
-
-$language_data = array (
-    'LANG_NAME' => 'Oracle 11 SQL',
-    'COMMENT_SINGLE' => array(1 => '--'),
-    'COMMENT_MULTI' => array('/*' => '*/'),
-    'CASE_KEYWORDS' => GESHI_CAPS_UPPER,
-    'QUOTEMARKS' => array("'", '"', '`'),
-    'ESCAPE_CHAR' => '\\',
-    'KEYWORDS' => array(
-//Put your package names here - e.g. select distinct ''''|| lower(name) || ''',' from user_source;
-//        6 => array(
-//            ),
-
-//Put your table names here - e.g. select distinct ''''|| lower(table_name) || ''',' from user_tables;
-//        5 => array(
-//            ),
-
-//Put your view names here - e.g. select distinct ''''|| lower(view_name) || ''',' from user_views;
-//        4 => array(
-//            ),
-
-//Put your table field names here - e.g. select distinct ''''|| lower(column_name) || ''',' from user_tab_columns;
-//        3 => array(
-//            ),
-
-        //Put ORACLE reserved keywords here (11i).  I like mine uppercase.
-        1 => array(
-            'ABS',
-            'ACCESS',
-            'ACOS',
-            'ADD',
-            'ADD_MONTHS',
-            'ALL',
-            'ALTER',
-            'ANALYZE',
-            'AND',
-            'ANY',
-            'APPENDCHILDXML',
-            'ARRAY',
-            'AS',
-            'ASC',
-            'ASCII',
-            'ASCIISTR',
-            'ASIN',
-            'ASSOCIATE',
-            'AT',
-            'ATAN',
-            'ATAN2',
-            'AUDIT',
-            'AUTHID',
-            'AVG',
-            'BEGIN',
-            'BETWEEN',
-            'BFILENAME',
-            'BIN_TO_NUM',
-            'BINARY_INTEGER',
-            'BITAND',
-            'BODY',
-            'BOOLEAN',
-            'BULK',
-            'BY',
-            'CALL',
-            'CARDINALITY',
-            'CASCADE',
-            'CASE',
-            'CAST',
-            'CEIL',
-            'CHAR',
-            'CHAR_BASE',
-            'CHARTOROWID',
-            'CHECK',
-            'CHR',
-            'CLOSE',
-            'CLUSTER',
-            'CLUSTER_ID',
-            'CLUSTER_PROBABILITY',
-            'CLUSTER_SET',
-            'COALESCE',
-            'COLLECT',
-            'COLUMN',
-            'COMMENT',
-            'COMMIT',
-            'COMPOSE',
-            'COMPRESS',
-            'CONCAT',
-            'CONNECT',
-            'CONSTANT',
-            'CONSTRAINT',
-            'CONSTRAINTS',
-            'CONTEXT',
-            'CONTROLFILE',
-            'CONVERT',
-            'CORR',
-            'CORR_K',
-            'CORR_S',
-            'COS',
-            'COSH',
-            'COST',
-            'COUNT',
-            'COVAR_POP',
-            'COVAR_SAMP',
-            'CREATE',
-            'CUBE_TABLE',
-            'CUME_DIST',
-            'CURRENT',
-            'CURRENT_DATE',
-            'CURRENT_TIMESTAMP',
-            'CURRVAL',
-            'CURSOR',
-            'CV',
-            'DATABASE',
-            'DATAOBJ_TO_PARTITION',
-            'DATE',
-            'DAY',
-            'DBTIMEZONE',
-            'DECIMAL',
-            'DECLARE',
-            'DECODE',
-            'DECOMPOSE',
-            'DEFAULT',
-            'DELETE',
-            'DELETEXML',
-            'DENSE_RANK',
-            'DEPTH',
-            'DEREF',
-            'DESC',
-            'DIMENSION',
-            'DIRECTORY',
-            'DISASSOCIATE',
-            'DISTINCT',
-            'DO',
-            'DROP',
-            'DUMP',
-            'ELSE',
-            'ELSIF',
-            'EMPTY_BLOB',
-            'EMPTY_CLOB',
-            'END',
-            'EXCEPTION',
-            'EXCLUSIVE',
-            'EXEC',
-            'EXECUTE',
-            'EXISTS',
-            'EXISTSNODE',
-            'EXIT',
-            'EXP',
-            'EXPLAIN',
-            'EXTENDS',
-            'EXTRACT',
-            'EXTRACTVALUE',
-            'FALSE',
-            'FEATURE_ID',
-            'FEATURE_SET',
-            'FEATURE_VALUE',
-            'FETCH',
-            'FILE',
-            'FIRST',
-            'FIRST_VALUE',
-            'FLOAT',
-            'FLOOR',
-            'FOR',
-            'FORALL',
-            'FROM',
-            'FROM_TZ',
-            'FUNCTION',
-            'GOTO',
-            'GRANT',
-            'GREATEST',
-            'GROUP',
-            'GROUP_ID',
-            'GROUPING',
-            'GROUPING_ID',
-            'HAVING',
-            'HEAP',
-            'HEXTORAW',
-            'HOUR',
-            'IDENTIFIED',
-            'IF',
-            'IMMEDIATE',
-            'IN',
-            'INCREMENT',
-            'INDEX',
-            'INDEXTYPE',
-            'INDICATOR',
-            'INITCAP',
-            'INITIAL',
-            'INSERT',
-            'INSERTCHILDXML',
-            'INSERTXMLBEFORE',
-            'INSTR',
-            'INSTRB',
-            'INTEGER',
-            'INTERFACE',
-            'INTERSECT',
-            'INTERVAL',
-            'INTO',
-            'IS',
-            'ISOLATION',
-            'ITERATION_NUMBER',
-            'JAVA',
-            'KEY',
-            'LAG',
-            'LAST',
-            'LAST_DAY',
-            'LAST_VALUE',
-            'LEAD',
-            'LEAST',
-            'LENGTH',
-            'LENGTHB',
-            'LEVEL',
-            'LIBRARY',
-            'LIKE',
-            'LIMITED',
-            'LINK',
-            'LN',
-            'LNNVL',
-            'LOCALTIMESTAMP',
-            'LOCK',
-            'LOG',
-            'LONG',
-            'LOOP',
-            'LOWER',
-            'LPAD',
-            'LTRIM',
-            'MAKE_REF',
-            'MATERIALIZED',
-            'MAX',
-            'MAXEXTENTS',
-            'MEDIAN',
-            'MIN',
-            'MINUS',
-            'MINUTE',
-            'MLSLABEL',
-            'MOD',
-            'MODE',
-            'MODIFY',
-            'MONTH',
-            'MONTHS_BETWEEN',
-            'NANVL',
-            'NATURAL',
-            'NATURALN',
-            'NCHR',
-            'NEW',
-            'NEW_TIME',
-            'NEXT_DAY',
-            'NEXTVAL',
-            'NLS_CHARSET_DECL_LEN',
-            'NLS_CHARSET_ID',
-            'NLS_CHARSET_NAME',
-            'NLS_INITCAP',
-            'NLS_LOWER',
-            'NLS_UPPER',
-            'NLSSORT',
-            'NOAUDIT',
-            'NOCOMPRESS',
-            'NOCOPY',
-            'NOT',
-            'NOWAIT',
-            'NTILE',
-            'NULL',
-            'NULLIF',
-            'NUMBER',
-            'NUMBER_BASE',
-            'NUMTODSINTERVAL',
-            'NUMTOYMINTERVAL',
-            'NVL',
-            'NVL2',
-            'OCIROWID',
-            'OF',
-            'OFFLINE',
-            'ON',
-            'ONLINE',
-            'OPAQUE',
-            'OPEN',
-            'OPERATOR',
-            'OPTION',
-            'OR',
-            'ORA_HASH',
-            'ORDER',
-            'ORGANIZATION',
-            'OTHERS',
-            'OUT',
-            'OUTLINE',
-            'PACKAGE',
-            'PARTITION',
-            'PATH',
-            'PCTFREE',
-            'PERCENT_RANK',
-            'PERCENTILE_CONT',
-            'PERCENTILE_DISC',
-            'PLAN',
-            'PLS_INTEGER',
-            'POSITIVE',
-            'POSITIVEN',
-            'POWER',
-            'POWERMULTISET',
-            'POWERMULTISET_BY_CARDINALITY',
-            'PRAGMA',
-            'PREDICTION',
-            'PREDICTION_BOUNDS',
-            'PREDICTION_COST',
-            'PREDICTION_DETAILS',
-            'PREDICTION_PROBABILITY',
-            'PREDICTION_SET',
-            'PRESENTNNV',
-            'PRESENTV',
-            'PREVIOUS',
-            'PRIMARY',
-            'PRIOR',
-            'PRIVATE',
-            'PRIVILEGES',
-            'PROCEDURE',
-            'PROFILE',
-            'PUBLIC',
-            'RAISE',
-            'RANGE',
-            'RANK',
-            'RATIO_TO_REPORT',
-            'RAW',
-            'RAWTOHEX',
-            'RAWTONHEX',
-            'REAL',
-            'RECORD',
-            'REF',
-            'REFTOHEX',
-            'REGEXP_COUNT',
-            'REGEXP_INSTR',
-            'REGEXP_REPLACE',
-            'REGEXP_SUBSTR',
-            'REGR_AVGX',
-            'REGR_AVGY',
-            'REGR_COUNT',
-            'REGR_INTERCEPT',
-            'REGR_R2',
-            'REGR_SLOPE',
-            'REGR_SXX',
-            'REGR_SXY',
-            'REGR_SYY',
-            'RELEASE',
-            'REMAINDER',
-            'RENAME',
-            'REPLACE',
-            'RESOURCE',
-            'RETURN',
-            'RETURNING',
-            'REVERSE',
-            'REVOKE',
-            'ROLE',
-            'ROLLBACK',
-            'ROUND',
-            'ROW',
-            'ROW_NUMBER',
-            'ROWID',
-            'ROWIDTOCHAR',
-            'ROWIDTONCHAR',
-            'ROWNUM',
-            'ROWS',
-            'ROWTYPE',
-            'RPAD',
-            'RTRIM',
-            'SAVEPOINT',
-            'SCHEMA',
-            'SCN_TO_TIMESTAMP',
-            'SECOND',
-            'SEGMENT',
-            'SELECT',
-            'SEPERATE',
-            'SEQUENCE',
-            'SESSION',
-            'SESSIONTIMEZONE',
-            'SET',
-            'SHARE',
-            'SIGN',
-            'SIN',
-            'SINH',
-            'SIZE',
-            'SMALLINT',
-            'SOUNDEX',
-            'SPACE',
-            'SQL',
-            'SQLCODE',
-            'SQLERRM',
-            'SQRT',
-            'START',
-            'STATISTICS',
-            'STATS_BINOMIAL_TEST',
-            'STATS_CROSSTAB',
-            'STATS_F_TEST',
-            'STATS_KS_TEST',
-            'STATS_MODE',
-            'STATS_MW_TEST',
-            'STATS_ONE_WAY_ANOVA',
-            'STATS_T_TEST_INDEP',
-            'STATS_T_TEST_INDEPU',
-            'STATS_T_TEST_ONE',
-            'STATS_T_TEST_PAIRED',
-            'STATS_WSR_TEST',
-            'STDDEV',
-            'STDDEV_POP',
-            'STDDEV_SAMP',
-            'STOP',
-            'SUBSTR',
-            'SUBSTRB',
-            'SUBTYPE',
-            'SUCCESSFUL',
-            'SUM',
-            'SYNONYM',
-            'SYS_CONNECT_BY_PATH',
-            'SYS_CONTEXT',
-            'SYS_DBURIGEN',
-            'SYS_EXTRACT_UTC',
-            'SYS_GUID',
-            'SYS_TYPEID',
-            'SYS_XMLAGG',
-            'SYS_XMLGEN',
-            'SYSDATE',
-            'SYSTEM',
-            'SYSTIMESTAMP',
-            'TABLE',
-            'TABLESPACE',
-            'TAN',
-            'TANH',
-            'TEMPORARY',
-            'THEN',
-            'TIME',
-            'TIMESTAMP',
-            'TIMESTAMP_TO_SCN',
-            'TIMEZONE_ABBR',
-            'TIMEZONE_HOUR',
-            'TIMEZONE_MINUTE',
-            'TIMEZONE_REGION',
-            'TIMING',
-            'TO',
-            'TO_BINARY_DOUBLE',
-            'TO_BINARY_FLOAT',
-            'TO_CHAR',
-            'TO_CLOB',
-            'TO_DATE',
-            'TO_DSINTERVAL',
-            'TO_LOB',
-            'TO_MULTI_BYTE',
-            'TO_NCHAR',
-            'TO_NCLOB',
-            'TO_NUMBER',
-            'TO_SINGLE_BYTE',
-            'TO_TIMESTAMP',
-            'TO_TIMESTAMP_TZ',
-            'TO_YMINTERVAL',
-            'TRANSACTION',
-            'TRANSLATE',
-            'TREAT',
-            'TRIGGER',
-            'TRIM',
-            'TRUE',
-            'TRUNC',
-            'TRUNCATE',
-            'TYPE',
-            'TZ_OFFSET',
-            'UI',
-            'UID',
-            'UNION',
-            'UNIQUE',
-            'UNISTR',
-            'UPDATE',
-            'UPDATEXML',
-            'UPPER',
-            'USE',
-            'USER',
-            'USERENV',
-            'USING',
-            'VALIDATE',
-            'VALUE',
-            'VALUES',
-            'VAR_POP',
-            'VAR_SAMP',
-            'VARCHAR',
-            'VARCHAR2',
-            'VARIANCE',
-            'VIEW',
-            'VSIZE',
-            'WHEN',
-            'WHENEVER',
-            'WHERE',
-            'WHILE',
-            'WIDTH_BUCKET',
-            'WITH',
-            'WORK',
-            'WRITE',
-            'XMLAGG',
-            'XMLCAST',
-            'XMLCDATA',
-            'XMLCOLATTVAL',
-            'XMLCOMMENT',
-            'XMLCONCAT',
-            'XMLDIFF',
-            'XMLELEMENT',
-            'XMLEXISTS',
-            'XMLFOREST',
-            'XMLPARSE',
-            'XMLPATCH',
-            'XMLPI',
-            'XMLQUERY',
-            'XMLROOT',
-            'XMLSEQUENCE',
-            'XMLSERIALIZE',
-            'XMLTABLE',
-            'XMLTRANSFORM',
-            'YEAR',
-            'ZONE'
-            )
-        ),
-    'SYMBOLS' => array(
-        '(', ')', '=', '<', '>', '|', '+', '-', '*', '/', ','
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false,
-//        3 => false,
-//        4 => false,
-//        5 => false,
-//        6 => false
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #993333; font-weight: bold; text-transform: uppercase;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #808080; font-style: italic;',
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #000099; font-weight: bold;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #66cc66;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #ff0000;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #cc66cc;'
-            ),
-        'METHODS' => array(
-            1 => 'color: #ff0000;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #66cc66;'
-            ),
-        'SCRIPT' => array(
-            ),
-        'REGEXPS' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-//        3 => '',
-//        4 => '',
-//        5 => '',
-//        6 => ''
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(
-        ),
-    'REGEXPS' => array(
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/oracle8.php b/wiki/vendor/geshi/geshi/src/geshi/oracle8.php
deleted file mode 100644
index f132090..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/oracle8.php
+++ /dev/null
@@ -1,494 +0,0 @@
-<?php
-/*************************************************************************************
- * oracle8.php
- * -----------
- * Author: Guy Wicks (Guy.Wicks@rbs.co.uk)
- * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.9.0
- * Date Started: 2004/06/04
- *
- * Oracle 8 language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2005/01/29 (1.0.0)
- *  -  First Release
- *
- * TODO (updated 2004/11/27)
- * -------------------------
- *
- *************************************************************************************
- *
- *     This file is part of GeSHi.
- *
- *   GeSHi is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   GeSHi is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with GeSHi; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- ************************************************************************************/
-
-$language_data = array (
-    'LANG_NAME' => 'Oracle 8 SQL',
-    'COMMENT_SINGLE' => array(1 => '--'),
-    'COMMENT_MULTI' => array('/*' => '*/'),
-    'CASE_KEYWORDS' => GESHI_CAPS_UPPER,
-    'QUOTEMARKS' => array("'", '"', '`'),
-    'ESCAPE_CHAR' => '\\',
-    'KEYWORDS' => array(
-//Put your package names here - e.g. select distinct ''''|| lower(name) || ''',' from user_source;
-//        6 => array(
-//            ),
-
-//Put your table names here - e.g. select distinct ''''|| lower(table_name) || ''',' from user_tables;
-//        5 => array(
-//            ),
-
-//Put your view names here - e.g. select distinct ''''|| lower(view_name) || ''',' from user_views;
-//        4 => array(
-//            ),
-
-//Put your table field names here - e.g. select distinct ''''|| lower(column_name) || ''',' from user_tab_columns;
-//        3 => array(
-//            ),
-
-//Put ORACLE reserved keywords here (8.1.7).  I like mine uppercase.
-        1 => array(
-            'ABS',
-            'ACCESS',
-            'ACOS',
-            'ADD',
-            'ADD_MONTHS',
-            'ALL',
-            'ALTER',
-            'ANALYZE',
-            'AND',
-            'ANY',
-            'ARRAY',
-            'AS',
-            'ASC',
-            'ASCII',
-            'ASIN',
-            'ASSOCIATE',
-            'AT',
-            'ATAN',
-            'ATAN2',
-            'AUDIT',
-            'AUTHID',
-            'AVG',
-            'BEGIN',
-            'BETWEEN',
-            'BFILENAME',
-            'BINARY_INTEGER',
-            'BITAND',
-            'BODY',
-            'BOOLEAN',
-            'BULK',
-            'BY',
-            'CALL',
-            'CASCADE',
-            'CASE',
-            'CEIL',
-            'CHAR',
-            'CHAR_BASE',
-            'CHARTOROWID',
-            'CHECK',
-            'CHR',
-            'CLOSE',
-            'CLUSTER',
-            'COALESCE',
-            'COLLECT',
-            'COLUMN',
-            'COMMENT',
-            'COMMIT',
-            'COMPRESS',
-            'CONCAT',
-            'CONNECT',
-            'CONSTANT',
-            'CONSTRAINT',
-            'CONSTRAINTS',
-            'CONTEXT',
-            'CONTROLFILE',
-            'CONVERT',
-            'CORR',
-            'COS',
-            'COSH',
-            'COST',
-            'COUNT',
-            'COVAR_POP',
-            'COVAR_SAMP',
-            'CREATE',
-            'CUME_DIST',
-            'CURRENT',
-            'CURRVAL',
-            'CURSOR',
-            'DATABASE',
-            'DATE',
-            'DAY',
-            'DECIMAL',
-            'DECLARE',
-            'DECODE',
-            'DEFAULT',
-            'DELETE',
-            'DENSE_RANK',
-            'DEREF',
-            'DESC',
-            'DIMENSION',
-            'DIRECTORY',
-            'DISASSOCIATE',
-            'DISTINCT',
-            'DO',
-            'DROP',
-            'DUMP',
-            'ELSE',
-            'ELSIF',
-            'EMPTY_BLOB',
-            'EMPTY_CLOB',
-            'END',
-            'EXCEPTION',
-            'EXCLUSIVE',
-            'EXEC',
-            'EXECUTE',
-            'EXISTS',
-            'EXIT',
-            'EXP',
-            'EXPLAIN',
-            'EXTENDS',
-            'EXTRACT',
-            'FALSE',
-            'FETCH',
-            'FILE',
-            'FIRST_VALUE',
-            'FLOAT',
-            'FLOOR',
-            'FOR',
-            'FORALL',
-            'FROM',
-            'FUNCTION',
-            'GOTO',
-            'GRANT',
-            'GREATEST',
-            'GROUP',
-            'GROUPING',
-            'HAVING',
-            'HEAP',
-            'HEXTORAW',
-            'HOUR',
-            'IDENTIFIED',
-            'IF',
-            'IMMEDIATE',
-            'IN',
-            'INCREMENT',
-            'INDEX',
-            'INDEXTYPE',
-            'INDICATOR',
-            'INITCAP',
-            'INITIAL',
-            'INSERT',
-            'INSTR',
-            'INSTRB',
-            'INTEGER',
-            'INTERFACE',
-            'INTERSECT',
-            'INTERVAL',
-            'INTO',
-            'IS',
-            'ISOLATION',
-            'JAVA',
-            'KEY',
-            'LAG',
-            'LAST_DAY',
-            'LAST_VALUE',
-            'LEAD',
-            'LEAST',
-            'LENGTH',
-            'LENGTHB',
-            'LEVEL',
-            'LIBRARY',
-            'LIKE',
-            'LIMITED',
-            'LINK',
-            'LN',
-            'LOCK',
-            'LOG',
-            'LONG',
-            'LOOP',
-            'LOWER',
-            'LPAD',
-            'LTRIM',
-            'MAKE_REF',
-            'MATERIALIZED',
-            'MAX',
-            'MAXEXTENTS',
-            'MIN',
-            'MINUS',
-            'MINUTE',
-            'MLSLABEL',
-            'MOD',
-            'MODE',
-            'MODIFY',
-            'MONTH',
-            'MONTHS_BETWEEN',
-            'NATURAL',
-            'NATURALN',
-            'NEW',
-            'NEW_TIME',
-            'NEXT_DAY',
-            'NEXTVAL',
-            'NLS_CHARSET_DECL_LEN',
-            'NLS_CHARSET_ID',
-            'NLS_CHARSET_NAME',
-            'NLS_INITCAP',
-            'NLS_LOWER',
-            'NLS_UPPER',
-            'NLSSORT',
-            'NOAUDIT',
-            'NOCOMPRESS',
-            'NOCOPY',
-            'NOT',
-            'NOWAIT',
-            'NTILE',
-            'NULL',
-            'NULLIF',
-            'NUMBER',
-            'NUMBER_BASE',
-            'NUMTODSINTERVAL',
-            'NUMTOYMINTERVAL',
-            'NVL',
-            'NVL2',
-            'OCIROWID',
-            'OF',
-            'OFFLINE',
-            'ON',
-            'ONLINE',
-            'OPAQUE',
-            'OPEN',
-            'OPERATOR',
-            'OPTION',
-            'OR',
-            'ORDER',
-            'ORGANIZATION',
-            'OTHERS',
-            'OUT',
-            'OUTLINE',
-            'PACKAGE',
-            'PARTITION',
-            'PCTFREE',
-            'PERCENT_RANK',
-            'PLAN',
-            'PLS_INTEGER',
-            'POSITIVE',
-            'POSITIVEN',
-            'POWER',
-            'PRAGMA',
-            'PRIMARY',
-            'PRIOR',
-            'PRIVATE',
-            'PRIVILEGES',
-            'PROCEDURE',
-            'PROFILE',
-            'PUBLIC',
-            'RAISE',
-            'RANGE',
-            'RANK',
-            'RATIO_TO_REPORT',
-            'RAW',
-            'RAWTOHEX',
-            'REAL',
-            'RECORD',
-            'REF',
-            'REFTOHEX',
-            'REGR_AVGX',
-            'REGR_AVGY',
-            'REGR_COUNT',
-            'REGR_INTERCEPT',
-            'REGR_R2',
-            'REGR_SLOPE',
-            'REGR_SXX',
-            'REGR_SXY',
-            'REGR_SYY',
-            'RELEASE',
-            'RENAME',
-            'REPLACE',
-            'RESOURCE',
-            'RETURN',
-            'RETURNING',
-            'REVERSE',
-            'REVOKE',
-            'ROLE',
-            'ROLLBACK',
-            'ROUND',
-            'ROW',
-            'ROW_NUMBER',
-            'ROWID',
-            'ROWIDTOCHAR',
-            'ROWNUM',
-            'ROWS',
-            'ROWTYPE',
-            'RPAD',
-            'RTRIM',
-            'SAVEPOINT',
-            'SCHEMA',
-            'SECOND',
-            'SEGMENT',
-            'SELECT',
-            'SEPERATE',
-            'SEQUENCE',
-            'SESSION',
-            'SET',
-            'SHARE',
-            'SIGN',
-            'SIN',
-            'SINH',
-            'SIZE',
-            'SMALLINT',
-            'SOUNDEX',
-            'SPACE',
-            'SQL',
-            'SQLCODE',
-            'SQLERRM',
-            'SQRT',
-            'START',
-            'STATISTICS',
-            'STDDEV',
-            'STDDEV_POP',
-            'STDDEV_SAMP',
-            'STOP',
-            'SUBSTR',
-            'SUBSTRB',
-            'SUBTYPE',
-            'SUCCESSFUL',
-            'SUM',
-            'SYNONYM',
-            'SYS_CONTEXT',
-            'SYS_GUID',
-            'SYSDATE',
-            'SYSTEM',
-            'TABLE',
-            'TABLESPACE',
-            'TAN',
-            'TANH',
-            'TEMPORARY',
-            'THEN',
-            'TIME',
-            'TIMESTAMP',
-            'TIMEZONE_ABBR',
-            'TIMEZONE_HOUR',
-            'TIMEZONE_MINUTE',
-            'TIMEZONE_REGION',
-            'TIMING',
-            'TO',
-            'TO_CHAR',
-            'TO_DATE',
-            'TO_LOB',
-            'TO_MULTI_BYTE',
-            'TO_NUMBER',
-            'TO_SINGLE_BYTE',
-            'TRANSACTION',
-            'TRANSLATE',
-            'TRIGGER',
-            'TRIM',
-            'TRUE',
-            'TRUNC',
-            'TRUNCATE',
-            'TYPE',
-            'UI',
-            'UID',
-            'UNION',
-            'UNIQUE',
-            'UPDATE',
-            'UPPER',
-            'USE',
-            'USER',
-            'USERENV',
-            'USING',
-            'VALIDATE',
-            'VALUE',
-            'VALUES',
-            'VAR_POP',
-            'VAR_SAMP',
-            'VARCHAR',
-            'VARCHAR2',
-            'VARIANCE',
-            'VIEW',
-            'VSIZE',
-            'WHEN',
-            'WHENEVER',
-            'WHERE',
-            'WHILE',
-            'WITH',
-            'WORK',
-            'WRITE',
-            'YEAR',
-            'ZONE'
-            )
-        ),
-    'SYMBOLS' => array(
-        '(', ')', '=', '<', '>', '|', '+', '-', '*', '/', ','
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false,
-//        3 => false,
-//        4 => false,
-//        5 => false,
-//        6 => false
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #993333; font-weight: bold; text-transform: uppercase;'
-//Add the styles for groups 3-6 here when used
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #808080; font-style: italic;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #000099; font-weight: bold;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #66cc66;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #ff0000;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #cc66cc;'
-            ),
-        'METHODS' => array(
-            1 => 'color: #ff0000;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #66cc66;'
-            ),
-        'SCRIPT' => array(
-            ),
-        'REGEXPS' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-//        3 => '',
-//        4 => '',
-//        5 => '',
-//        6 => ''
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(
-        ),
-    'REGEXPS' => array(
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/oxygene.php b/wiki/vendor/geshi/geshi/src/geshi/oxygene.php
deleted file mode 100644
index 662bba2..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/oxygene.php
+++ /dev/null
@@ -1,155 +0,0 @@
-<?php
-/*************************************************************************************
- * oxygene.php
- * ----------
- * 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.9.0
- * Date Started: 2010/01/11
- *
- * Delphi Prism (Oxygene) language file for GeSHi.
- * Based on the original Delphi language file.
- *
- * 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)
- *   -  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' => 'Oxygene',
-    'COMMENT_SINGLE' => array(1 => '//'),
-    'COMMENT_MULTI' => array('(*' => '*)', '{' => '}'),
-    //Compiler directives
-    'COMMENT_REGEXP' => array(2 => '/{\\$.*?}|\\(\\*\\$.*?\\*\\)/U'),
-    'CASE_KEYWORDS' => 0,
-    'QUOTEMARKS' => array("'"),
-    'ESCAPE_CHAR' => '',
-    'KEYWORDS' => array(
-        1 => array(
-            'and',   'begin', 'case', 'const',  'div', 'do', 'downto', 'else',
-            'end',  'for',  'function', 'if', 'in', 'mod', 'not', 'of', 'or',
-            'procedure', 'repeat', 'record', 'set', 'shl', 'shr', 'then', 'to',
-            'type', 'until', 'uses', 'var','while', 'with', 'xor', 'exit', 'break',
-            'class', 'constructor', 'inherited', 'private', 'public', 'protected',
-            'property', 'As', 'Is', 'Unit', 'Continue', 'Try', 'Except', 'Forward',
-            'Interface','Implementation', 'nil', 'out', 'loop', 'namespace', 'true',
-            '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', 'mapped'
-            ),
-        2 => array(
-            'override', 'virtual', 'External', 'read', 'add', 'remove','final', 'abstract',
-            'empty', 'global', 'locked', 'sealed', 'reintroduce', 'implements', 'each',
-            'default', 'partial', 'finalize', 'enum', 'flags', 'result', 'readonly', 'unsafe',
-            'pinned', 'matching', 'static', 'has', 'step', 'iterator', 'inline', 'nested',
-            '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', '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'
-            ),
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false,
-        2 => false,
-        3 => false,
-//        4 => false,
-        ),
-    'SYMBOLS' => array(
-        0 => array('(', ')', '[', ']'),
-        1 => array('.', ',', ':', ';'),
-        2 => array('@', '^'),
-        3 => array('=', '+', '-', '*', '/')
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #000000; font-weight: bold;',
-            2 => 'color: #000000; font-weight: bold;',
-            3 => 'color: #000066;',
-//            4 => 'color: #000066; font-weight: bold;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #808080; font-style: italic;',
-            2 => 'color: #008000; font-style: italic;',
-            'MULTI' => 'color: #808080; font-style: italic;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #ff0000; font-weight: bold;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #000066;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #ff0000;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #0000ff;'
-            ),
-        'METHODS' => array(
-            1 => 'color: #000000;'
-            ),
-        'REGEXPS' => array(
-            0 => 'color: #9ac;',
-            1 => 'color: #ff0000;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #000066;',
-            1 => 'color: #000066;',
-            2 => 'color: #000066;',
-            3 => 'color: #000066;'
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => '',
-//        4 => ''
-        ),
-    'OOLANG' => true,
-    'OBJECT_SPLITTERS' => array(
-        1 => '.'
-        ),
-    'REGEXPS' => array(
-        //Hex numbers
-        0 => '\$[0-9a-fA-F]+',
-        //Characters
-        1 => '\#\$?[0-9]{1,3}'
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        ),
-    'TAB_WIDTH' => 2
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/oz.php b/wiki/vendor/geshi/geshi/src/geshi/oz.php
deleted file mode 100644
index 3b96566..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/oz.php
+++ /dev/null
@@ -1,142 +0,0 @@
-<?php
-/*************************************************************************************
- * oz.php
- * --------
- * Author: Wolfgang Meyer (Wolfgang.Meyer@gmx.net)
- * Copyright: (c) 2010 Wolfgang Meyer
- * Release Version: 1.0.9.0
- * Date Started: 2010/01/03
- *
- * Oz language file for GeSHi.
- *
- * CHANGES
- * -------
- *
- *************************************************************************************
- *
- *     This file is part of GeSHi.
- *
- *   GeSHi is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   GeSHi is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with GeSHi; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- ************************************************************************************/
-
-$language_data = array(
-    'LANG_NAME' => 'OZ',
-    'COMMENT_SINGLE' => array(1 => '%'),
-    'COMMENT_MULTI' => array('/*' => '*/'),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array('"','\''),
-    'ESCAPE_CHAR' => '\\',
-    'NUMBERS' => array(),
-    'KEYWORDS' => array(
-        1 => array(
-            'declare','local','in','end','proc','fun','functor','require','prepare',
-            'import','export','define','at','case','then','else','of','elseof',
-            'elsecase','if','elseif','class','from','prop','attr','feat','meth',
-            'self','true','false','unit','div','mod','andthen','orelse','cond','or',
-            'dis','choice','not','thread','try','catch','finally','raise','lock',
-            'skip','fail','for','do'
-            )
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => true
-        ),
-    'SYMBOLS' => array(
-        '@', '!', '|', '<-', ':=', '<', '>', '=<', '>=', '<=', '#', '~', '.',
-        '*', '-', '+', '/', '<:', '>:', '=:', '=<:', '>=:', '\\=', '\\=:', ',',
-        '!!', '...', '==', '::', ':::'
-        ),
-    'STYLES' => array(
-        'REGEXPS' => array(
-            1 => 'color: #0000ff;',
-            2 => 'color: #00a030;',
-            3 => 'color: #bc8f8f;',
-            4 => 'color: #0000ff;',
-            5 => 'color: #a020f0;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #bc8f8f;'
-            ),
-        'KEYWORDS' => array(
-            1 => 'color: #a020f0;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #B22222;',
-            'MULTI' => 'color: #B22222;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #bc8f8f;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #a020f0;'
-            ),
-        'BRACKETS' => array(),
-        'NUMBERS' => array(),
-        'METHODS' => array(),
-        'SCRIPT' => array()
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(),
-    'STRICT_MODE_APPLIES' => GESHI_MAYBE,
-    'SCRIPT_DELIMITERS' => array(),
-    'HIGHLIGHT_STRICT_BLOCK' => array(),
-    'URLS' => array(
-        1 => ''
-        ),
-    'REGEXPS' => array(
-        // function and procedure definition
-        1 => array(
-            GESHI_SEARCH => "(proc|fun)([^{}\n\)]*)(\\{)([\$A-Z\300-\326\330-\336][A-Z\300-\326\330-\336a-z\337-\366\370-\3770-9_.]*)",
-            GESHI_REPLACE => '\4',
-            GESHI_MODIFIERS => '',
-            GESHI_BEFORE => '\1\2\3',
-            GESHI_AFTER => ''
-            ),
-        // class definition
-        2 => array(
-            GESHI_SEARCH => "(class)([^A-Z\$]*)([\$A-Z\300-\326\330-\336][A-Z\300-\326\330-\336a-z\337-\366\370-\3770-9_.]*)",
-            GESHI_REPLACE => '\3\4',
-            GESHI_MODIFIERS => '',
-            GESHI_BEFORE => '\1\2',
-            GESHI_AFTER => ''
-            ),
-        // single character
-        3 => array(
-            GESHI_SEARCH => "&amp;.",
-            GESHI_REPLACE => '\0',
-            GESHI_MODIFIERS => '',
-            GESHI_BEFORE => '',
-            GESHI_AFTER => ''
-            ),
-        // method definition
-        4 => array(
-            GESHI_SEARCH => "(meth)([^a-zA-Z]+)([a-zA-Z\300-\326\330-\336][A-Z\300-\326\330-\336a-z\337-\366\370-\3770-9]*)",
-            GESHI_REPLACE => '\3',
-            GESHI_MODIFIERS => '',
-            GESHI_BEFORE => '\1\2',
-            GESHI_AFTER => ''
-            ),
-        // highlight "[]"
-        // ([] is actually a keyword, but that causes problems in validation; putting it into symbols doesn't work.)
-        5 => array(
-            GESHI_SEARCH => "\[\]",
-            GESHI_REPLACE => '\0',
-            GESHI_MODIFIERS => '',
-            GESHI_BEFORE => '',
-            GESHI_AFTER => ''
-            )
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/parasail.php b/wiki/vendor/geshi/geshi/src/geshi/parasail.php
deleted file mode 100644
index a72d845..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/parasail.php
+++ /dev/null
@@ -1,128 +0,0 @@
-<?php
-/*************************************************************************************
- * parasail.php
- * -------
- * Author: T. Taft (taft@adacore.com)
- * Copyright: (c) 2012 AdaCore (http://adacore.com/)
- * Release Version: 1.0.9.0
- * Date Started: 2012/08/02
- *
- * ParaSail language file for GeSHi.
- *
- * Words are from SciTe configuration file
- *
- * CHANGES
- * -------
- * 2012/08/02 (1.0.0)
- *   -  First Release
- *
- * TODO (updated 2012/08/02)
- * -------------------------
- *
- *************************************************************************************
- *
- *     This file is part of GeSHi.
- *
- *   GeSHi is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   GeSHi is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with GeSHi; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- ************************************************************************************/
-
-$language_data = array (
-    'LANG_NAME' => 'ParaSail',
-    'COMMENT_SINGLE' => array(1 => '//'),
-    'COMMENT_MULTI' => array('{' => '}'),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array('"'),
-    'ESCAPE_CHAR' => '\\',
-    'KEYWORDS' => array(
-        1 => array(
-            'all', 'block', 'case', 'continue', 'each',
-            'else', 'elsif', 'exit', 'for',
-            'forward', 'if', 'loop', 'return', 'reverse', 'some',
-            'then', 'until', 'while', 'with'
-            ),
-        2 => array(
-            'abs', 'and','in', 'mod', 'not', 'null', 'or', 'rem', 'xor'
-            ),
-        3 => array(
-            'abstract', 'class',
-            'concurrent', 'const',
-            'end', 'extends', 'exports',
-            'func', 'global', 'implements', 'import',
-            'interface', 'is', 'lambda', 'locked',
-            'new', 'of', 'op', 'optional',
-            'private', 'queued', 'ref',
-            'separate', 'type', 'var',
-            )
-        ),
-    'SYMBOLS' => array(
-        '(', ')', '[', ']', '<', '>'
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false,
-        2 => false,
-        3 => false,
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #00007f;',
-            2 => 'color: #0000ff;',
-            3 => 'color: #46aa03; font-weight:bold;',
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #66cc66;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #adadad; font-style: italic;',
-            'MULTI' => 'color: #808080; font-style: italic;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #000099; font-weight: bold;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #7f007f;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #ff0000;'
-            ),
-        'METHODS' => array(
-            1 => 'color: #202020;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #66cc66;'
-            ),
-        'REGEXPS' => array(
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => ''
-        ),
-    'OOLANG' => true,
-    'OBJECT_SPLITTERS' => array(
-        1 => '.'
-        ),
-    'REGEXPS' => array(
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/parigp.php b/wiki/vendor/geshi/geshi/src/geshi/parigp.php
deleted file mode 100644
index 9c6a143..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/parigp.php
+++ /dev/null
@@ -1,293 +0,0 @@
-<?php
-/*************************************************************************************
- * parigp.php
- * --------
- * Author: Charles R Greathouse IV (charles@crg4.com)
- * Copyright: 2011-2013 Charles R Greathouse IV (http://math.crg4.com/)
- * Release Version: 1.0.9.0
- * Date Started: 2011/05/11
- *
- * PARI/GP language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2011/07/09 (1.0.8.11)
- *  -  First Release
- * 2013/02/05 (1.0.8.13)
- *  -  Added 2.6.0 commands, default, member functions, and error-handling
- *
- * TODO (updated 2011/07/09)
- * -------------------------
- *
- *
- *************************************************************************************
- *
- *     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' => 'PARI/GP',
-    'COMMENT_SINGLE' => array(1 => '\\\\'),
-    'COMMENT_MULTI' => array('/*' => '*/'),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array('"'),
-    'ESCAPE_CHAR' => '\\',
-    'NUMBERS' => array(
-        # Integers
-        1 => GESHI_NUMBER_INT_BASIC,
-        # Reals
-        2 => GESHI_NUMBER_FLT_SCI_ZERO
-        ),
-    'KEYWORDS' => array(
-        1 => array(
-            'abs','acos','acosh','addhelp','addprimes','agm','alarm','algdep',
-            'alias','allocatemem','apply','arg','asin','asinh','atan','atanh',
-            'bernfrac','bernpol','bernreal','bernvec','besselh1','besselh2',
-            'besseli','besselj','besseljh','besselk','besseln','bestappr',
-            'bestapprPade','bezout','bezoutres','bigomega','binary','binomial',
-            'bitand','bitneg','bitnegimply','bitor','bittest','bitxor',
-            'bnfcertify','bnfcompress','bnfdecodemodule','bnfinit',
-            'bnfisintnorm','bnfisnorm','bnfisprincipal','bnfissunit',
-            'bnfisunit','bnfnarrow','bnfsignunit','bnfsunit','bnrclassno',
-            'bnrclassnolist','bnrconductor','bnrconductorofchar','bnrdisc',
-            'bnrdisclist','bnrinit','bnrisconductor','bnrisprincipal','bnrL1',
-            'bnrrootnumber','bnrstark','break','breakpoint','Catalan','ceil',
-            'centerlift','charpoly','chinese','cmp','Col','component','concat',
-            'conj','conjvec','content','contfrac','contfracpnqn','core',
-            'coredisc','cos','cosh','cotan','dbg_down','dbg_err','dbg_up',
-            'dbg_x','default','denominator','deriv','derivnum','diffop',
-            'digits','dilog','dirdiv','direuler','dirmul','dirzetak','divisors',
-            'divrem','eint1','elladd','ellak','ellan','ellanalyticrank','ellap',
-            'ellbil','ellcard','ellchangecurve','ellchangepoint',
-            'ellconvertname','elldivpol','elleisnum','elleta','ellffinit',
-            'ellfromj','ellgenerators','ellglobalred','ellgroup','ellheegner',
-            'ellheight','ellheightmatrix','ellidentify','ellinit',
-            'ellisoncurve','ellj','ellL1','elllocalred','elllog','elllseries',
-            'ellminimalmodel','ellmodulareqn','ellmul','ellneg','ellorder',
-            'ellordinate','ellpointtoz','ellrootno','ellsearch','ellsigma',
-            'ellsub','elltaniyama','elltatepairing','elltors','ellweilpairing',
-            'ellwp','ellzeta','ellztopoint','erfc','errname','error','eta','Euler',
-            'eulerphi','eval','exp','extern','externstr','factor','factorback',
-            'factorcantor','factorff','factorial','factorint','factormod',
-            'factornf','factorpadic','ffgen','ffinit','fflog','ffnbirred',
-            'fforder','ffprimroot','fibonacci','floor','for','forcomposite','fordiv','forell',
-            'forprime','forqfvec','forstep','forsubgroup','forvec','frac','galoisexport',
-            'galoisfixedfield','galoisgetpol','galoisidentify','galoisinit',
-            'galoisisabelian','galoisisnormal','galoispermtopol',
-            'galoissubcyclo','galoissubfields','galoissubgroups','gamma',
-            'gammah','gcd','getenv','getheap','getrand','getstack','gettime',
-            'global','hammingweight','hilbert','hyperu','I','idealadd',
-            'idealaddtoone','idealappr','idealchinese','idealcoprime',
-            'idealdiv','idealfactor','idealfactorback','idealfrobenius',
-            'idealhnf','idealintersect','idealinv','ideallist','ideallistarch',
-            'ideallog','idealmin','idealmul','idealnorm','idealnumden',
-            'idealpow','idealprimedec','idealramgroups','idealred','idealstar',
-            'idealtwoelt','idealval','if','iferr','iferrname','imag','incgam','incgamc','input',
-            'install','intcirc','intformal','intfouriercos','intfourierexp',
-            'intfouriersin','intfuncinit','intlaplaceinv','intmellininv',
-            'intmellininvshort','intnum','intnuminit','intnuminitgen',
-            'intnumromb','intnumstep','isfundamental','ispolygonal','ispower','ispowerful',
-            'isprime','isprimepower','ispseudoprime','issquare','issquarefree','istotient',
-            'kill','kronecker','lcm','length','lex','lift','lindep','List',
-            'listcreate','listinsert','listkill','listpop','listput','listsort',
-            'lngamma','local','log','Mat','matadjoint','matalgtobasis',
-            'matbasistoalg','matcompanion','matconcat','matcontent','matdet','matdetint',
-            'matdiagonal','mateigen','matfrobenius','mathess','mathilbert',
-            'mathnf','mathnfmod','mathnfmodid','matid','matimage',
-            'matimagecompl','matindexrank','matintersect','matinverseimage',
-            'matisdiagonal','matker','matkerint','matmuldiagonal',
-            'matmultodiagonal','matpascal','matrank','matrix','matrixqz',
-            'matsize','matsnf','matsolve','matsolvemod','matsupplement',
-            'mattranspose','max','min','minpoly','Mod','modreverse','moebius',
-            'my','newtonpoly','next','nextprime','nfalgtobasis','nfbasis',
-            'nfbasistoalg','nfdetint','nfdisc','nfeltadd','nfeltdiv',
-            'nfeltdiveuc','nfeltdivmodpr','nfeltdivrem','nfeltmod','nfeltmul',
-            'nfeltmulmodpr','nfeltnorm','nfeltpow','nfeltpowmodpr',
-            'nfeltreduce','nfeltreducemodpr','nfelttrace','nfeltval','nffactor',
-            'nffactorback','nffactormod','nfgaloisapply','nfgaloisconj',
-            'nfhilbert','nfhnf','nfhnfmod','nfinit','nfisideal','nfisincl',
-            'nfisisom','nfkermodpr','nfmodprinit','nfnewprec','nfroots',
-            'nfrootsof1','nfsnf','nfsolvemodpr','nfsubfields','norm','norml2',
-            'numbpart','numdiv','numerator','numtoperm','O','omega','padicappr',
-            'padicfields','padicprec','partitions','permtonum','Pi','plot',
-            'plotbox','plotclip','plotcolor','plotcopy','plotcursor','plotdraw',
-            'ploth','plothraw','plothsizes','plotinit','plotkill','plotlines',
-            'plotlinetype','plotmove','plotpoints','plotpointsize',
-            'plotpointtype','plotrbox','plotrecth','plotrecthraw','plotrline',
-            'plotrmove','plotrpoint','plotscale','plotstring','Pol',
-            'polchebyshev','polcoeff','polcompositum','polcyclo','polcyclofactors','poldegree',
-            'poldisc','poldiscreduced','polgalois','polgraeffe','polhensellift',
-            'polhermite','polinterpolate','poliscyclo','poliscycloprod',
-            'polisirreducible','pollead','pollegendre','polrecip','polred',
-            'polredabs','polredbest','polredord','polresultant','Polrev','polroots',
-            'polrootsff','polrootsmod','polrootspadic','polsturm','polsubcyclo',
-            'polsylvestermatrix','polsym','poltchebi','poltschirnhaus',
-            'polylog','polzagier','precision','precprime','prime','primepi',
-            'primes','print','print1','printf','printsep','printtex','prod','prodeuler',
-            'prodinf','psdraw','psi','psploth','psplothraw','Qfb','qfbclassno',
-            'qfbcompraw','qfbhclassno','qfbnucomp','qfbnupow','qfbpowraw',
-            'qfbprimeform','qfbred','qfbsolve','qfgaussred','qfjacobi','qflll',
-            'qflllgram','qfminim','qfperfection','qfrep','qfsign',
-            'quadclassunit','quaddisc','quadgen','quadhilbert','quadpoly',
-            'quadray','quadregulator','quadunit','quit','random','randomprime','read',
-            'readvec','real','removeprimes','return','rnfalgtobasis','rnfbasis',
-            'rnfbasistoalg','rnfcharpoly','rnfconductor','rnfdedekind','rnfdet',
-            'rnfdisc','rnfeltabstorel','rnfeltdown','rnfeltreltoabs','rnfeltup',
-            'rnfequation','rnfhnfbasis','rnfidealabstorel','rnfidealdown',
-            'rnfidealhnf','rnfidealmul','rnfidealnormabs','rnfidealnormrel',
-            'rnfidealreltoabs','rnfidealtwoelt','rnfidealup','rnfinit',
-            'rnfisabelian','rnfisfree','rnfisnorm','rnfisnorminit','rnfkummer',
-            'rnflllgram','rnfnormgroup','rnfpolred','rnfpolredabs',
-            'rnfpseudobasis','rnfsteinitz','round','select','Ser','serconvol',
-            'serlaplace','serreverse','Set','setbinop','setintersect',
-            'setisset','setminus','setrand','setsearch','setunion','shift',
-            'shiftmul','sigma','sign','simplify','sin','sinh','sizebyte',
-            'sizedigit','solve','sqr','sqrt','sqrtint','sqrtn','sqrtnint','stirling','Str',
-            'Strchr','Strexpand','Strprintf','Strtex','subgrouplist','subst',
-            'substpol','substvec','sum','sumalt','sumdedekind','sumdiv','sumdivmult','sumdigits',
-            'sumformal','suminf','sumnum','sumnumalt','sumnuminit','sumpos','system','tan',
-            'tanh','taylor','teichmuller','theta','thetanullk','thue',
-            'thueinit','trace','trap','truncate','type','until','valuation',
-            'variable','Vec','vecextract','vecmax','vecmin','Vecrev',
-            'vecsearch','Vecsmall','vecsort','vector','vectorsmall','vectorv',
-            'version','warning','weber','whatnow','while','write','write1',
-            'writebin','writetex','zeta','zetak','zetakinit','zncoppersmith',
-            'znlog','znorder','znprimroot','znstar'
-            ),
-
-        2 => array(
-            'void','bool','negbool','small','int',/*'real',*/'mp','var','lg','pol',
-            'vecsmall','vec','list','str','genstr','gen','typ'
-            ),
-
-        3 => array(
-            'TeXstyle','breakloop','colors','compatible','datadir','debug',
-            'debugfiles','debugmem','echo','factor_add_primes','factor_proven',
-            'format','graphcolormap','graphcolors','help','histfile','histsize',
-            'lines','linewrap',/*'log',*/'logfile','new_galois_format','output',
-            'parisize','path','prettyprinter','primelimit','prompt_cont',
-            'prompt','psfile','readline','realprecision','recover','secure',
-            'seriesprecision',/*'simplify',*/'sopath','strictmatch','timer'
-            ),
-
-        4 => array(
-            '"e_ARCH"','"e_BUG"','"e_FILE"','"e_IMPL"','"e_PACKAGE"','"e_DIM"',
-            '"e_FLAG"','"e_NOTFUNC"','"e_OP"','"e_TYPE"','"e_TYPE2"',
-            '"e_PRIORITY"','"e_VAR"','"e_DOMAIN"','"e_MAXPRIME"','"e_MEM"',
-            '"e_OVERFLOW"','"e_PREC"','"e_STACK"','"e_ALARM"','"e_USER"',
-            '"e_CONSTPOL"','"e_COPRIME"','"e_INV"','"e_IRREDPOL"','"e_MISC"',
-            '"e_MODULUS"','"e_NEGVAL"','"e_PRIME"','"e_ROOTS0"','"e_SQRTN"'
-            )
-        ),
-    'SYMBOLS' => array(
-        1 => array(
-            '(',')','{','}','[',']','+','-','*','/','%','=','<','>','!','^','&','|','?',';',':',',','\\','\''
-            )
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => true,
-        2 => true,
-        3 => true,
-        4 => true
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #0000ff;',
-            2 => 'color: #e07022;',
-            3 => 'color: #00d2d2;',
-            4 => 'color: #00d2d2;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #008000;',
-            'MULTI' => 'color: #008000;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #111111; font-weight: bold;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #002222;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #800080;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #666666;',
-            1 => 'color: #666666;',
-            2 => 'color: #666666;'
-            ),
-        'METHODS' => array(
-            0 => 'color: #004000;'
-            ),
-        'SYMBOLS' => array(
-            1 => 'color: #339933;'
-            ),
-        'REGEXPS' => array(
-            0 => 'color: #e07022',    # Should be the same as keyword group 2
-            1 => 'color: #555555',
-            2 => 'color: #0000ff'     # Should be the same as keyword group 1
-            ),
-        'SCRIPT' => array()
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => '',
-        4 => ''
-        ),
-    'OOLANG' => true,
-    'OBJECT_SPLITTERS' => array(
-        1 => '.'
-        ),
-    'REGEXPS' => array(
-        0 => array( # types marked on variables
-            GESHI_SEARCH => '(?<!\\\\ )"(t_(?:INT|REAL|INTMOD|FRAC|FFELT|COMPLEX|PADIC|QUAD|POLMOD|POL|SER|RFRAC|QFR|QFI|VEC|COL|MAT|LIST|STR|VECSMALL|CLOSURE|ERROR))"',
-            GESHI_REPLACE => '\\1',
-            GESHI_MODIFIERS => '',
-            GESHI_BEFORE => '"',
-            GESHI_AFTER => '"'
-            ),
-        1 => array( # literal variables
-            GESHI_SEARCH => '(?<!\\\\)(\'[a-zA-Z][a-zA-Z0-9_]*)',
-            GESHI_REPLACE => '\\1',
-            GESHI_MODIFIERS => '',
-            GESHI_BEFORE => '',
-            GESHI_AFTER => ''
-            ),
-        2 => array( # member functions
-            GESHI_SEARCH => '(?<=[.])(a[1-6]|b[2-8]|c[4-6]|area|bid|bnf|clgp|cyc|diff|disc|[efjp]|fu|gen|index|mod|nf|no|omega|pol|reg|roots|sign|r[12]|t2|tate|tu|zk|zkst)\b',
-            GESHI_REPLACE => '\\1',
-            GESHI_MODIFIERS => '',
-            GESHI_BEFORE => '',
-            GESHI_AFTER => ''
-            )
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        2 => array(
-            '[a-zA-Z][a-zA-Z0-9_]*:' => ''
-            ),
-        3 => array(
-            'default(' => ''
-            ),
-        4 => array(
-            'iferrname(' => ''
-            ),
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array()
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/pascal.php b/wiki/vendor/geshi/geshi/src/geshi/pascal.php
deleted file mode 100644
index 0d95af5..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/pascal.php
+++ /dev/null
@@ -1,163 +0,0 @@
-<?php
-/*************************************************************************************
- * pascal.php
- * ----------
- * Author: Tux (tux@inamil.cz)
- * Copyright: (c) 2004 Tux (http://tux.a4.cz/), Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.9.0
- * Date Started: 2004/07/26
- *
- * Pascal 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.2)
- *  -  Added support for multiple object splitters
- * 2004/10/27 (1.0.1)
- *   -  Added support for URLs
- * 2004/08/05 (1.0.0)
- *   -  Added support for symbols
- * 2004/07/27 (0.9.1)
- *   -  Pascal is OO language. Some new words.
- * 2004/07/26 (0.9.0)
- *   -  First Release
- *
- * TODO (updated 2004/11/27)
- * -------------------------
- *
- *************************************************************************************
- *
- *     This file is part of GeSHi.
- *
- *   GeSHi is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   GeSHi is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with GeSHi; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- ************************************************************************************/
-
-$language_data = array (
-    'LANG_NAME' => 'Pascal',
-    'COMMENT_SINGLE' => array(1 => '//'),
-    'COMMENT_MULTI' => array('(*' => '*)', '{' => '}'),
-    //Compiler directives
-    'COMMENT_REGEXP' => array(2 => '/\\{\\$.*?}|\\(\\*\\$.*?\\*\\)/U'),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array("'"),
-    'ESCAPE_CHAR' => '',
-
-    'KEYWORDS' => array(
-        1 => array(
-            'absolute','asm','assembler','begin','break','case','catch','cdecl',
-            'const','constructor','default','destructor','div','do','downto',
-            'else','end','except','export','exports','external','far',
-            'finalization','finally','for','forward','function','goto','if',
-            'implementation','in','index','inherited','initialization','inline',
-            'interface','interrupt','label','library','mod','name','not','of',
-            'or','overload','override','private','procedure','program',
-            'property','protected','public','published','raise','repeat',
-            'resourcestring','shl','shr','stdcall','stored','switch','then',
-            'to','try','type','unit','until','uses','var','while','with','xor'
-            ),
-        2 => array(
-            'nil', 'false', 'true',
-            ),
-        3 => array(
-            'abs','and','arc','arctan','blockread','blockwrite','chr','dispose',
-            'cos','eof','eoln','exp','get','ln','new','odd','ord','ordinal',
-            'pred','read','readln','sin','sqrt','succ','write','writeln'
-            ),
-        4 => array(
-            'ansistring','array','boolean','byte','bytebool','char','file',
-            'integer','longbool','longint','object','packed','pointer','real',
-            'record','set','shortint','smallint','string','union','word'
-            ),
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false,
-        2 => false,
-        3 => false,
-        4 => false,
-        ),
-    'SYMBOLS' => array(
-        0 => array('(', ')', '[', ']'),
-        1 => array('.', ',', ':', ';'),
-        2 => array('@', '^'),
-        3 => array('=', '+', '-', '*', '/')
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #000000; font-weight: bold;',
-            2 => 'color: #000000; font-weight: bold;',
-            3 => 'color: #000066;',
-            4 => 'color: #000066; font-weight: bold;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #808080; font-style: italic;',
-            2 => 'color: #008000; font-style: italic;',
-            'MULTI' => 'color: #808080; font-style: italic;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #ff0000; font-weight: bold;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #009900;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #ff0000;',
-            //'HARD' => 'color: #ff0000;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #cc66cc;'
-            ),
-        'METHODS' => array(
-            1 => 'color: #006600;'
-            ),
-        'REGEXPS' => array(
-            0 => 'color: #0000cc;',
-            1 => 'color: #ff0000;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #000066;',
-            1 => 'color: #000066;',
-            2 => 'color: #000066;',
-            3 => 'color: #000066;'
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => '',
-        4 => ''
-        ),
-    'OOLANG' => true,
-    'OBJECT_SPLITTERS' => array(
-        1 => '.'
-        ),
-    'REGEXPS' => array(
-        //Hex numbers
-        0 => '\$[0-9a-fA-F]+',
-        //Characters
-        1 => '\#(?:\$[0-9a-fA-F]{1,2}|\d{1,3})'
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        ),
-    'TAB_WIDTH' => 4
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/pcre.php b/wiki/vendor/geshi/geshi/src/geshi/pcre.php
deleted file mode 100644
index 243121b..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/pcre.php
+++ /dev/null
@@ -1,186 +0,0 @@
-<?php
-/*************************************************************************************
- * pcre.php
- * --------
- * Author: Benny Baumann (BenBE@geshi.org)
- * Copyright: (c) 2010 Benny Baumann (http://qbnz.com/highlighter/)
- * Release Version: 1.0.9.0
- * Date Started: 2010/05/22
- *
- * PCRE language file for GeSHi.
- *
- * NOTE: This language file handles plain PCRE expressions without delimiters.
- * If you want to highlight PCRE with delimiters you should use the
- * Perl language file instead.
- *
- * CHANGES
- * -------
- * 2010/05/22 (1.0.8.8)
- *   -  First Release
- *
- * TODO (updated 2010/05/22)
- * -------------------------
- *
- *************************************************************************************
- *
- *     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' => 'PCRE',
-    'COMMENT_SINGLE' => array(),
-    'COMMENT_MULTI' => array(
-        ),
-    'COMMENT_REGEXP' => array(
-        // Non-matching groups
-        1 => "/(?<=\()\?(?::|(?=\())/",
-
-        // Modifier groups
-        2 => "/(?<=\()\?[cdegimopsuxUX\-]+(?::|(?=\)))/",
-
-        // Look-Aheads
-        3 => "/(?<=\()\?[!=]/",
-
-        // Look-Behinds
-        4 => "/(?<=\()\?<[!=]/",
-
-        // Forward Matching
-        5 => "/(?<=\()\?>/",
-
-        // Recursive Matching
-        6 => "/(?<=\()\?R(?=\))/",
-
-        // Named Subpattern
-        7 => "/(?<=\()\?(?:P?<\w+>|\d+(?=\))|P[=>]\w+(?=\)))/",
-
-        // Back Reference
-        8 => "/\\\\(?:[1-9]\d?|g\d+|g\{(?:-?\d+|\w+)\}|k<\w+>|k'\w+'|k\{\w+\})/",
-
-        // Byte sequence: Octal
-        9 => "/\\\\[0-7]{2,3}/",
-
-        // Byte sequence: Hex
-        10 => "/\\\\x[0-9a-fA-F]{2}/",
-
-        // Byte sequence: Hex
-        11 => "/\\\\u[0-9a-fA-F]{4}/",
-
-        // Byte sequence: Hex
-        12 => "/\\\\U[0-9a-fA-F]{8}/",
-
-        // Byte sequence: Unicode
-        13 => "/\\\\[pP]\{[^}\n]+\}/",
-
-        // One-Char Escapes
-        14 => "/\\\\[abdefnrstvwzABCDGSWXZ\\\\\\.\[\]\(\)\{\}\^\\\$\?\+\*]/",
-
-        // Byte sequence: Control-X sequence
-        15 => "/\\\\c./",
-
-        // Quantifier
-        16 => "/\{(?:\d+,?|\d*,\d+)\}/",
-
-        // Comment Subpattern
-        17 => "/(?<=\()\?#[^\)]*/",
-        ),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array(),
-    'ESCAPE_CHAR' => '\\',
-    'KEYWORDS' => array(
-        ),
-    'SYMBOLS' => array(
-        0 => array('.'),
-        1 => array('(', ')'),
-        2 => array('[', ']', '|'),
-        3 => array('^', '$'),
-        4 => array('?', '+', '*'),
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #993333; font-weight: bold;',
-            2 => 'color: #cc3300; font-weight: bold;',
-            3 => 'color: #cc0066; font-weight: bold;',
-            4 => 'color: #cc0066; font-weight: bold;',
-            5 => 'color: #cc6600; font-weight: bold;',
-            6 => 'color: #cc00cc; font-weight: bold;',
-            7 => 'color: #cc9900; font-weight: bold; font-style: italic;',
-            8 => 'color: #cc9900; font-style: italic;',
-            9 => 'color: #669933; font-style: italic;',
-            10 => 'color: #339933; font-style: italic;',
-            11 => 'color: #339966; font-style: italic;',
-            12 => 'color: #339999; font-style: italic;',
-            13 => 'color: #663399; font-style: italic;',
-            14 => 'color: #999933; font-style: italic;',
-            15 => 'color: #993399; font-style: italic;',
-            16 => 'color: #333399; font-style: italic;',
-            17 => '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: #ff0000;',
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #cc66cc;'
-            ),
-        'METHODS' => array(
-            1 => 'color: #006600;',
-            2 => 'color: #006600;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #333399; font-weight: bold;',
-            1 => 'color: #993333; font-weight: bold;',
-            2 => 'color: #339933; font-weight: bold;',
-            3 => 'color: #333399; font-weight: bold;',
-            4 => 'color: #333399; font-style: italic;'
-            ),
-        'REGEXPS' => array(
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'URLS' => array(
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(
-        ),
-    'REGEXPS' => array(
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        ),
-    'PARSER_CONTROL' => array(
-        'ENABLE_FLAGS' => array(
-            'BRACKETS' => GESHI_NEVER,
-            'NUMBERS' => GESHI_NEVER
-        )
-    )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/per.php b/wiki/vendor/geshi/geshi/src/geshi/per.php
deleted file mode 100644
index 8337823..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/per.php
+++ /dev/null
@@ -1,300 +0,0 @@
-<?php
-/*************************************************************************************
- * per.php
- * --------
- * Author: Lars Gersmann (lars.gersmann@gmail.com)
- * Copyright: (c) 2007 Lars Gersmann
- * Release Version: 1.0.9.0
- * Date Started: 2007/06/03
- *
- * Per (forms) (FOURJ's Genero 4GL) 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' => 'per',
-    'COMMENT_SINGLE' => array(1 => '--', 2 => '#'),
-    'COMMENT_MULTI' => array('{' => '}'),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array("'", '"'),
-    'ESCAPE_CHAR' => '\\',
-    'KEYWORDS' => array(
-        1 => array(
-            "ACCELERATOR",
-            "ACCELERATOR2",
-            "ACTION",
-            "ALT",
-            "AND",
-            "AUTO",
-            "AUTONEXT",
-            "AUTOSCALE",
-            "BETWEEN",
-            "BOTH",
-            "BUTTON",
-            "BUTTONEDIT",
-            "BUTTONTEXTHIDDEN",
-            "BY",
-            "BYTE",
-            "CANVAS",
-            "CENTER",
-            "CHECKBOX",
-            "CLASS",
-            "COLOR",
-            "COLUMNS",
-            "COMBOBOX",
-            "COMMAND",
-            "COMMENT",
-            "COMMENTS",
-            "COMPACT",
-            "COMPRESS",
-            "CONFIG",
-            "CONTROL",
-            "CURRENT",
-            "DATABASE",
-            "DATEEDIT",
-            "DEC",
-            "DEFAULT",
-            "DEFAULTS",
-            "DELIMITERS",
-            "DISPLAY",
-            "DISPLAYONLY",
-            "DOWNSHIFT",
-            "DYNAMIC",
-            "EDIT",
-            "FIXED",
-            "FOLDER",
-            "FONTPITCH",
-            "FORMAT",
-            "FORMONLY",
-            "GRID",
-            "GRIDCHILDRENINPARENT",
-            "GROUP",
-            "HBOX",
-            "HEIGHT",
-            "HIDDEN",
-            "HORIZONTAL",
-            "INCLUDE",
-            "INITIAL",
-            "INITIALIZER",
-            "INPUT",
-            "INSTRUCTIONS",
-            "INTERVAL",
-            "INVISIBLE",
-            "IS",
-            "ITEM",
-            "ITEMS",
-            "JUSTIFY",
-            "KEY",
-            "KEYS",
-            "LABEL",
-            "LEFT",
-            "LIKE",
-            "LINES",
-            "MATCHES",
-            "NAME",
-            "NOENTRY",
-            "NONCOMPRESS",
-            "NORMAL",
-            "NOT",
-            "NOUPDATE",
-            "OPTIONS",
-            "OR",
-            "ORIENTATION",
-            "PACKED",
-            "PAGE",
-            "PICTURE",
-            "PIXELHEIGHT",
-            "PIXELS",
-            "PIXELWIDTH",
-            "POINTS",
-            "PROGRAM",
-            "PROGRESSBAR",
-            "QUERYCLEAR",
-            "QUERYEDITABLE",
-            "RADIOGROUP",
-            "RECORD",
-            "REQUIRED",
-            "REVERSE",
-            "RIGHT",
-            "SAMPLE",
-            "SCREEN",
-            "SCROLL",
-            "SCROLLBARS",
-            "SCROLLGRID",
-            "SECOND",
-            "SEPARATOR",
-            "SHIFT",
-            "SIZE",
-            "SIZEPOLICY",
-            "SMALLFLOAT",
-            "SMALLINT",
-            "SPACING",
-            "STRETCH",
-            "STYLE",
-            "TABINDEX",
-            "TABLE",
-            "TAG",
-            "TEXT",
-            "TEXTEDIT",
-            "THROUGH",
-            "THRU",
-            "TITLE",
-            "TO",
-            "TOOLBAR",
-            "TOPMENU",
-            "TYPE",
-            "UNHIDABLE",
-            "UNHIDABLECOLUMNS",
-            "UNMOVABLE",
-            "UNMOVABLECOLUMNS",
-            "UNSIZABLE",
-            "UNSIZABLECOLUMNS",
-            "UNSORTABLE",
-            "UNSORTABLECOLUMNS",
-            "UPSHIFT",
-            "USER",
-            "VALIDATE",
-            "VALUECHECKED",
-            "VALUEMAX",
-            "VALUEMIN",
-            "VALUEUNCHECKED",
-            "VARCHAR",
-            "VARIABLE",
-            "VBOX",
-            "VERIFY",
-            "VERSION",
-            "VERTICAL",
-            "TIMESTAMP",
-            "WANTCOLUMNSANCHORED", /* to be removed! */
-            "WANTFIXEDPAGESIZE",
-            "WANTNORETURNS",
-            "WANTTABS",
-            "WHERE",
-            "WIDGET",
-            "WIDTH",
-            "WINDOWSTYLE",
-            "WITHOUT",
-            "WORDWRAP",
-            "X",
-            "Y",
-            "ZEROFILL",
-            "SCHEMA",
-            "ATTRIBUTES",
-            "TABLES",
-            "LAYOUT",
-            "END"
-            ),
-        2 => array(
-            "YEAR",
-            "BLACK",
-            "BLINK",
-            "BLUE",
-            "YELLOW",
-            "WHITE",
-            "UNDERLINE",
-            "CENTURY",
-            "FRACTION",
-            "CHAR",
-            "CHARACTER",
-            "CHARACTERS",
-            "CYAN",
-            "DATE",
-            "DATETIME",
-            "DAY",
-            "DECIMAL",
-            "FALSE",
-            "FLOAT",
-            "GREEN",
-            "HOUR",
-            "INT",
-            "INTEGER",
-            "MAGENTA",
-            "MINUTE",
-            "MONEY",
-            "NONE",
-            "NULL",
-            "REAL",
-            "RED",
-            "TRUE",
-            "TODAY",
-            "MONTH",
-            "IMAGE"
-            ),
-        ),
-    'SYMBOLS' => array(
-        '+', '-', '*', '?', '=', '/', '%', '>', '<', '^', '!', '|', ':',
-        '(', ')', '[', ']'
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false,
-        2 => false,
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #0600FF;',
-            2 => 'color: #0000FF; font-weight: bold;',
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #008080; font-style: italic;',
-            2 => 'color: #008080;',
-            'MULTI' => 'color: green'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #008080; font-weight: bold;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #000000;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #808080;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #FF0000;'
-            ),
-        'METHODS' => array(
-            1 => 'color: #0000FF;',
-            2 => 'color: #0000FF;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #008000;'
-            ),
-        'REGEXPS' => array(
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        ),
-    'OOLANG' => true,
-    'OBJECT_SPLITTERS' => array(
-        1 => '.'
-        ),
-    'REGEXPS' => array(
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/perl.php b/wiki/vendor/geshi/geshi/src/geshi/perl.php
deleted file mode 100644
index 0a05708..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/perl.php
+++ /dev/null
@@ -1,211 +0,0 @@
-<?php
-/*************************************************************************************
- * perl.php
- * --------
- * 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.9.0
- * Date Started: 2004/08/20
- *
- * Perl language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2008/06/22 (1.0.8)
- *   -  Added support for system calls in backticks (Corley Kinnane)
- * 2008/05/23 (1.0.7.22)
- *   -  Added description of extra language features (SF#1970248)
- *   -  Added comment_regexp for predefined variables
- * 2008/02/15 (1.003)
- *   -  Fixed SF#1891630 with placebo patch
- * 2006/01/05 (1.0.2)
- *   -  Used hardescape feature for ' strings (Cliff Stanford)
- * 2004/11/27 (1.0.1)
- *   -  Added support for multiple object splitters
- * 2004/08/20 (1.0.0)
- *   -  First Release
- *
- * TODO (updated 2004/11/27)
- * -------------------------
- * * LABEL:
- * * string comparison operators
- *
- *************************************************************************************
- *
- *     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' => 'Perl',
-    'COMMENT_SINGLE' => array(1 => '#'),
-    'COMMENT_MULTI' => array(
-        '=back' => '=cut',
-        '=head' => '=cut',
-        '=item' => '=cut',
-        '=over' => '=cut',
-        '=begin' => '=cut',
-        '=end' => '=cut',
-        '=for' => '=cut',
-        '=encoding' => '=cut',
-        '=pod' => '=cut'
-        ),
-    'COMMENT_REGEXP' => array(
-        //Regular expressions
-        2 => "/(?<=[\\s^])(s|tr|y)\\/(?:\\\\.|(?!\n)[^\\/\\\\])+\\/(?:\\\\.|(?!\n)[^\\/\\\\])*\\/[msixpogcde]*(?=[\\s$\\.\\;])|(?<=[\\s^(=])(m|q[qrwx]?)?\\/(?:\\\\.|(?!\n)[^\\/\\\\])+\\/[msixpogc]*(?=[\\s$\\.\\,\\;\\)])/iU",
-        //Regular expression match variables
-        3 => '/\$\d+/',
-        //Heredoc
-        4 => '/<<\s*?([\'"]?)([a-zA-Z0-9]+)\1;[^\n]*?\\n.*\\n\\2(?![a-zA-Z0-9])/siU',
-        //Predefined variables
-        5 => '/\$(\^[a-zA-Z]?|[\*\$`\'&_\.,+\-~:;\\\\\/"\|%=\?!@#<>\(\)\[\]])(?!\w)|@[_+\-]|%[!]|\$(?=\{)/',
-        ),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array('"','`'),
-    'HARDQUOTE' => array("'", "'"),            // An optional 2-element array defining the beginning and end of a hard-quoted string
-    'HARDESCAPE' => array('\\\'',),
-        // Things that must still be escaped inside a hard-quoted string
-        // If HARDQUOTE is defined, HARDESCAPE must be defined
-        // This will not work unless the first character of each element is either in the
-        // QUOTEMARKS array or is the ESCAPE_CHAR
-    'ESCAPE_CHAR' => '\\',
-    'KEYWORDS' => array(
-        1 => array(
-            'case', 'do', 'else', 'elsif', 'for', 'if', 'then', 'until', 'while', 'foreach', 'my',
-            'xor', 'or', 'and', 'unless', 'next', 'last', 'redo', 'not', 'our',
-            'reset', 'continue', 'cmp', 'ne', 'eq', 'lt', 'gt', 'le', 'ge',
-            ),
-        2 => array(
-            'use', 'sub', 'new', '__END__', '__DATA__', '__DIE__', '__WARN__', 'BEGIN',
-            'STDIN', 'STDOUT', 'STDERR', 'ARGV', 'ARGVOUT'
-            ),
-        3 => array(
-            'abs', 'accept', 'alarm', 'atan2', 'bind', 'binmode', 'bless',
-            'caller', 'chdir', 'chmod', 'chomp', 'chop', 'chown', 'chr',
-            'chroot', 'close', 'closedir', 'connect', 'cos',
-            'crypt', 'dbmclose', 'dbmopen', 'defined', 'delete', 'die',
-            'dump', 'each', 'endgrent', 'endhostent', 'endnetent', 'endprotoent',
-            'endpwent', 'endservent', 'eof', 'eval', 'exec', 'exists', 'exit',
-            'exp', 'fcntl', 'fileno', 'flock', 'fork', 'format', 'formline',
-            'getc', 'getgrent', 'getgrgid', 'getgrnam', 'gethostbyaddr',
-            'gethostbyname', 'gethostent', 'getlogin', 'getnetbyaddr', 'getnetbyname',
-            'getnetent', 'getpeername', 'getpgrp', 'getppid', 'getpriority',
-            'getprotobyname', 'getprotobynumber', 'getprotoent', 'getpwent',
-            'getpwnam', 'getpwuid', 'getservbyname', 'getservbyport', 'getservent',
-            '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',
-            'msgrcv', 'msgsnd', 'no', 'oct', 'open', 'opendir',
-            'ord', 'pack', 'package', 'pipe', 'pop', 'pos', 'print',
-            'printf', 'prototype', 'push', 'qq', 'qr', 'quotemeta', 'qw',
-            'qx', 'q', 'rand', 'read', 'readdir', 'readline', 'readlink', 'readpipe',
-            'recv', 'ref', 'rename', 'require', 'return',
-            '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',
-            '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', 'write', 'y'
-            )
-        ),
-    'SYMBOLS' => array(
-        '<', '>', '=',
-        '!', '@', '~', '&', '|', '^',
-        '+','-', '*', '/', '%',
-        ',', ';', '?', '.', ':'
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => true,
-        2 => true,
-        3 => true,
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #b1b100;',
-            2 => 'color: #000000; font-weight: bold;',
-            3 => 'color: #000066;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #666666; font-style: italic;',
-            2 => 'color: #009966; font-style: italic;',
-            3 => 'color: #0000ff;',
-            4 => 'color: #cc0000; font-style: italic;',
-            5 => 'color: #0000ff;',
-            'MULTI' => 'color: #666666; font-style: italic;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #000099; font-weight: bold;',
-            'HARD' => 'color: #000099; font-weight: bold;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #009900;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #ff0000;',
-            'HARD' => 'color: #ff0000;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #cc66cc;'
-            ),
-        'METHODS' => array(
-            1 => 'color: #006600;',
-            2 => 'color: #006600;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #339933;'
-            ),
-        'REGEXPS' => array(
-            0 => 'color: #0000ff;',
-            4 => 'color: #009999;',
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => 'http://perldoc.perl.org/functions/{FNAMEL}.html'
-        ),
-    'OOLANG' => true,
-    'OBJECT_SPLITTERS' => array(
-        1 => '-&gt;',
-        2 => '::'
-        ),
-    'REGEXPS' => array(
-        //Variable
-        0 => '(?:\$[\$#]?|\\\\(?:[@%*]?|\\\\*\$|&amp;)|%[$]?|@[$]?|\*[$]?|&amp;[$]?)[a-zA-Z_][a-zA-Z0-9_]*',
-        //File Descriptor
-        4 => '&lt;[a-zA-Z_][a-zA-Z0-9_]*&gt;',
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        ),
-    'PARSER_CONTROL' => array(
-        'COMMENTS' => array(
-            'DISALLOWED_BEFORE' => '$'
-        )
-    )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/perl6.php b/wiki/vendor/geshi/geshi/src/geshi/perl6.php
deleted file mode 100644
index f063a6b..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/perl6.php
+++ /dev/null
@@ -1,195 +0,0 @@
-<?php
-/*************************************************************************************
- * perl6.php
- * ---------
- * 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.9.0
- * Date Started: 2009/11/07
- *
- * Perl 6 language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2009/12/25 (1.0.8.6)
- *   - First Release
- *
- * TODO (updated 2009/11/07)
- * -------------------------
- * * It's all pretty rough. Perl 6 is complicated; this'll never be more
- *   than reasonably accurate unless it's carefully written to match
- *   STD.pm.
- * * It's largely incomplete. Lots of keywords are no doubt missing.
- * * Recognize comments like #`( Hello! ).
- * * Recognize qw-ing angle brackets.
- * * ! should probably be in OBJECT_SPLITTERS too, but putting it there
- *   gives bizarre results. What to do?.
- *
- *************************************************************************************
- *
- *     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' => 'Perl 6',
-    'COMMENT_SINGLE' => array(1 => '#'),
-    'COMMENT_MULTI' => array('=begin' => '=end'),
-    'COMMENT_REGEXP' => array(
-        //Regular expressions
-        2 => "/(?<=[\\s^])(s|tr|y)\\/(?:\\\\.|(?!\n)[^\\/\\\\])+\\/(?:\\\\.|(?!\n)[^\\/\\\\])*\\/[msixpogcde]*(?=[\\s$\\.\\;])|(?<=[\\s^(=])(m|q[qrwx]?)?\\/(?:\\\\.|(?!\n)[^\\/\\\\])+\\/[msixpogc]*(?=[\\s$\\.\\,\\;\\)])/iU",
-        //Regular expression match variables
-        3 => '/\$\d+/',
-        //Heredoc
-        4 => '/<<\s*?([\'"]?)([a-zA-Z0-9]+)\1;[^\n]*?\\n.*\\n\\2(?![a-zA-Z0-9])/siU',
-        //Beastly hack to finish highlighting each POD block
-        5 => '((?<==end) .+)'
-        ),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array('"'),
-    'HARDQUOTE' => array("'", "'"),            // An optional 2-element array defining the beginning and end of a hard-quoted string
-    'HARDESCAPE' => array('\\\''),
-        // Things that must still be escaped inside a hard-quoted string
-        // If HARDQUOTE is defined, HARDESCAPE must be defined
-        // This will not work unless the first character of each element is either in the
-        // QUOTEMARKS array or is the ESCAPE_CHAR
-    'ESCAPE_CHAR' => '\\',
-    'KEYWORDS' => array(
-        1 => array(
-            'do', 'else', 'elsif', 'for', 'if', 'then', 'until',
-            'while', 'loop', 'repeat', 'my', 'xor', 'or', 'and',
-            'unless', 'next', 'last', 'redo', 'not', 'our', 'let',
-            'temp', 'state', 'enum', 'constant', 'continue', 'cmp',
-            'ne', 'eq', 'lt', 'gt', 'le', 'ge', 'leg', 'div', 'X',
-            'Z', 'x', 'xx', 'given', 'when', 'default', 'has',
-            'returns', 'of', 'is', 'does', 'where', 'subset', 'but',
-            'True', 'False', 'return', 'die', 'fail'
-            ),
-        2 => array(
-            'use', 'sub', 'multi', 'method', 'submethod', 'proto',
-            'class', 'role', 'grammar', 'regex', 'token', 'rule',
-            'new', 'BEGIN', 'END', 'CHECK', 'INIT', 'START', 'FIRST',
-            'ENTER', 'LEAVE', 'KEEP', 'UNDO', 'NEXT', 'LAST', 'PRE',
-            'POST', 'CATCH', 'CONTROL', 'BUILD'
-            ),
-        3 => array(
-            'all', 'any', 'cat', 'classify', 'defined', 'grep', 'first',
-            'keys', 'kv', 'join', 'map', 'max', 'min', 'none', 'one', 'pairs',
-            'print', 'printf', 'roundrobin', 'pick', 'reduce', 'reverse', 'say',
-            'shape', 'sort', 'srand', 'undefine', 'uri', 'values', 'warn', 'zip',
-
-            # Container
-            'rotate', 'comb', 'end', 'elems', 'delete',
-            'exists', 'pop', 'push', 'shift', 'splice',
-            'unshift', 'invert', 'decode',
-
-            # Numeric
-            'succ', 'pred', 'abs', 'exp', 'log',
-            'log10', 'rand', 'roots', 'cis', 'unpolar', 'i', 'floor',
-            'ceiling', 'round', 'truncate', 'sign', 'sqrt',
-            'polar', 're', 'im', 'I', 'atan2', 'nude',
-            'denominator', 'numerator',
-
-            # Str
-            'p5chop', 'chop', 'p5chomp', 'chomp', 'lc', 'lcfirst',
-            'uc', 'ucfirst', 'normalize', 'samecase', 'sameaccent',
-            'capitalize', 'length', 'chars', 'graphs', 'codes',
-            'bytes', 'encode', 'index', 'pack', 'quotemeta', 'rindex',
-            'split', 'words', 'flip', 'sprintf', 'fmt',
-            'substr', 'trim', 'unpack', 'match', 'subst', 'trans'
-            )
-        ),
-    'SYMBOLS' => array(
-        '<', '>', '=',
-        '!', '@', '~', '&', '|', '^',
-        '+','-', '*', '/', '%',
-        ',', ';', '?', '.', ':',
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => true,
-        2 => true,
-        3 => true,
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #b1b100;',
-            2 => 'color: #000000; font-weight: bold;',
-            3 => 'color: #000066;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #666666; font-style: italic;',
-            2 => 'color: #009966; font-style: italic;',
-            3 => 'color: #0000ff;',
-            4 => 'color: #cc0000; font-style: italic;',
-            5 => '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: #ff0000;',
-            'HARD' => 'color: #ff0000;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #cc66cc;'
-            ),
-        'METHODS' => array(
-            1 => 'color: #006600;',
-            2 => 'color: #006600;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #339933;'
-            ),
-        'REGEXPS' => array(
-            0 => 'color: #0000ff;',
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => '',
-        ),
-    'OOLANG' => true,
-    'OBJECT_SPLITTERS' => array(
-        1 => '.',
-        2 => '::'
-        ),
-    'REGEXPS' => array(
-        //Variable
-        0 => '(?:[$@%]|&amp;)(?:(?:[\^:*?!~]|&lt;)?[a-zA-Z_][a-zA-Z0-9_]*|(?=\.))'
-        # We treat the . twigil specially so the name can be highlighted as an
-        # object field (via OBJECT_SPLITTERS).
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        ),
-    'PARSER_CONTROL' => array(
-        'COMMENTS' => array(
-            'DISALLOWED_BEFORE' => '$'
-        )
-    )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/pf.php b/wiki/vendor/geshi/geshi/src/geshi/pf.php
deleted file mode 100644
index 2f80e23..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/pf.php
+++ /dev/null
@@ -1,176 +0,0 @@
-<?php
-/*************************************************************************************
- * pf.php
- * --------
- * Author: David Berard (david@nfrance.com)
- * Copyright: (c) 2010 Benny Baumann (http://qbnz.com/highlighter/)
- * Release Version: 1.0.9.0
- * Date Started: 2009/10/16
- * Based on bash.php
- *
- * OpenBSD PACKET FILTER language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2009/10/16 (1.0.0)
- *   -  First Release
- *
- * TODO
- * -------------------------
- * * Support ALTQ
- *
- *************************************************************************************
- *
- *     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' => 'OpenBSD Packet Filter',
-    'COMMENT_SINGLE' => array('#'),
-    'COMMENT_MULTI' => array(),
-    'COMMENT_REGEXP' => array(
-        1 => "/\\$\\{[^\\n\\}]*?\\}/i",
-        2 => '/<<-?\s*?(\'?)([a-zA-Z0-9]+)\1\\n.*\\n\\2(?![a-zA-Z0-9])/siU',
-        3 => "/\\\\['\"]/siU"
-        ),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array('"'),
-    'HARDQUOTE' => array("'", "'"),
-    'HARDESCAPE' => array("\'"),
-    'ESCAPE_CHAR' => '',
-    'ESCAPE_REGEXP' => array(
-        1 => "#\\\\[nfrtv\\$\\\"\n]#i",
-        2 => "#\\$[a-z_][a-z0-9_]*#i",
-        3 => "/\\$\\{[^\\n\\}]*?\\}/i",
-        4 => "/\\$\\([^\\n\\)]*?\\)/i",
-        5 => "/`[^`]*`/"
-        ),
-    'KEYWORDS' => array(
-        1 => array(
-            'pass'
-        ),
-        2 => array(
-            'block'
-            ),
-        3 => array(
-            'quick','keep','state','antispoof','table','persist','file','scrub',
-            'set','skip','flags','on'
-            ),
-        4 => array(
-            'in','out','proto'
-            )
-        ),
-    'SYMBOLS' => array(
-        '(', ')', '[', ']', '!', '@', '%', '&', '*', '|', '/', '<', '>', ';;', '`','='
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => true,
-        2 => true,
-        3 => true,
-        4 => true
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #009900; font-weight: bold;',
-            2 => 'color: #990000; font-weight: bold;',
-            3 => 'color: #7a0874;',
-            4 => 'color: #336699;'
-            ),
-        'COMMENTS' => array(
-            0 => 'color: #666666; font-style: italic;',
-            1 => 'color: #800000;',
-            2 => 'color: #cc0000; font-style: italic;',
-            3 => 'color: #000000; font-weight: bold;'
-            ),
-        'ESCAPE_CHAR' => array(
-            1 => 'color: #000099; font-weight: bold;',
-            2 => 'color: #007800;',
-            3 => 'color: #007800;',
-            4 => 'color: #007800;',
-            5 => 'color: #780078;',
-            'HARD' => 'color: #000099; font-weight: bold;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #7a0874; font-weight: bold;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #CC0000;',
-            'HARD' => 'color: #CC0000;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #ff00cc;'
-            ),
-        'METHODS' => array(
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #000000; font-weight: bold;'
-            ),
-        'REGEXPS' => array(
-            0 => 'color: #007800;',
-            1 => 'color: #007800;',
-            2 => 'color: #007800;',
-            4 => 'color: #007800;',
-            5 => 'color: #660033;',
-            6 => 'color: #000099; font-weight: bold;',
-            7 => 'color: #0000ff;',
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => '',
-        4 => ''
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(
-        ),
-    'REGEXPS' => array(
-        //Variables (will be handled by comment_regexps)
-        0 => "\\$\\{[a-zA-Z_][a-zA-Z0-9_]*?\\}",
-        //Variables without braces
-        1 => "\\$[a-zA-Z_][a-zA-Z0-9_]*",
-        //Variable assignment
-        2 => "(?<![\.a-zA-Z_\-])([a-zA-Z_][a-zA-Z0-9_]*?)(?==)",
-        //Shorthand shell variables
-        4 => "\\$[*#\$\\-\\?!]",
-        //Parameters of commands
-        5 => "(?<=\s)--?[0-9a-zA-Z\-]+(?=[\s=]|$)",
-        //IPs
-        6 => "([0-9]{1,3}\.){3}[0-9]{1,3}",
-        //Tables
-        7 => "(&lt;(.*)&gt;)"
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-    ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        ),
-    'TAB_WIDTH' => 4,
-    'PARSER_CONTROL' => array(
-        'COMMENTS' => array(
-            'DISALLOWED_BEFORE' => '$'
-        ),
-        'KEYWORDS' => array(
-            'DISALLOWED_BEFORE' => "(?<![\.\-a-zA-Z0-9_\$\#])",
-            'DISALLOWED_AFTER' =>  "(?![\.\-a-zA-Z0-9_%\\/])"
-        )
-    )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/phix.php b/wiki/vendor/geshi/geshi/src/geshi/phix.php
deleted file mode 100644
index a4f4e4e..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/phix.php
+++ /dev/null
@@ -1,439 +0,0 @@
-<?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/wiki/vendor/geshi/geshi/src/geshi/php-brief.php b/wiki/vendor/geshi/geshi/src/geshi/php-brief.php
deleted file mode 100644
index 922c9d9..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/php-brief.php
+++ /dev/null
@@ -1,220 +0,0 @@
-<?php
-/*************************************************************************************
- * php-brief.php
- * -------------
- * Author: Nigel McNie (nigel@geshi.org)
- * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter/)
- * Release Version: 1.0.9.0
- * Date Started: 2004/06/02
- *
- * PHP (brief version) 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
- *  -  Fixed &new problem
- * 2004/10/27 (1.0.2)
- *   -  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/07/14)
- * -------------------------
- * * Remove more functions that are hardly used
- *
- *************************************************************************************
- *
- *     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' => 'PHP (brief)',
-    'COMMENT_SINGLE' => array(1 => '//', 2 => '#'),
-    'COMMENT_MULTI' => array('/*' => '*/'),
-    //Heredoc and Nowdoc syntax
-    'COMMENT_REGEXP' => array(3 => '/<<<\s*?(\'?)([a-zA-Z0-9]+)\1[^\n]*?\\n.*\\n\\2(?![a-zA-Z0-9])/siU'),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array("'", '"'),
-    'ESCAPE_CHAR' => '\\',
-    'HARDQUOTE' => array("'", "'"),
-    'HARDESCAPE' => array("\'"),
-    'NUMBERS' =>
-        GESHI_NUMBER_INT_BASIC |  GESHI_NUMBER_OCT_PREFIX | GESHI_NUMBER_HEX_PREFIX |
-        GESHI_NUMBER_FLT_SCI_ZERO,
-    'KEYWORDS' => array(
-        1 => array(
-            'include', 'require', 'include_once', 'require_once',
-            'for', 'as', 'foreach', 'if', 'elseif', 'else', 'while', 'do', 'endwhile', 'endif', 'switch', 'case', 'endswitch',
-            'return', 'break'
-            ),
-        2 => array(
-            'null', '__LINE__', '__FILE__',
-            'false', '&lt;?php',
-            'true', 'var', 'default',
-            'function', 'class', 'new', '&amp;new', 'public', 'private', 'interface', 'extends',
-            'const', 'self'
-            ),
-        3 => array(
-            'func_num_args', 'func_get_arg', 'func_get_args', 'strlen', 'strcmp', 'strncmp', 'strcasecmp', 'strncasecmp', 'each', 'error_reporting', 'define', 'defined',
-            'trigger_error', 'user_error', 'set_error_handler', 'restore_error_handler', 'get_declared_classes', 'get_loaded_extensions',
-            'extension_loaded', 'get_extension_funcs', 'debug_backtrace',
-            'constant', 'bin2hex', 'sleep', 'usleep', 'time', 'mktime', 'gmmktime', 'strftime', 'gmstrftime', 'strtotime', 'date', 'gmdate', 'getdate', 'localtime', 'checkdate', 'flush', 'wordwrap', 'htmlspecialchars', 'htmlentities', 'html_entity_decode', 'md5', 'md5_file', 'crc32', 'getimagesize', 'image_type_to_mime_type', 'phpinfo', 'phpversion', 'phpcredits', 'strnatcmp', 'strnatcasecmp', 'substr_count', 'strspn', 'strcspn', 'strtok', 'strtoupper', 'strtolower', 'strpos', 'strrpos', 'strrev', 'hebrev', 'hebrevc', 'nl2br', 'basename', 'dirname', 'pathinfo', 'stripslashes', 'stripcslashes', 'strstr', 'stristr', 'strrchr', 'str_shuffle', 'str_word_count', 'strcoll', 'substr', 'substr_replace', 'quotemeta', 'ucfirst', 'ucwords', 'strtr', 'addslashes', 'addcslashes', 'rtrim', 'str_replace', 'str_repeat', 'count_chars', 'chunk_split', 'trim', 'ltrim', 'strip_tags', 'similar_text', 'explode', 'implode', 'setlocale', 'localeconv',
-            'parse_str', 'str_pad', 'chop', 'strchr', 'sprintf', 'printf', 'vprintf', 'vsprintf', 'sscanf', 'fscanf', 'parse_url', 'urlencode', 'urldecode', 'rawurlencode', 'rawurldecode', 'readlink', 'linkinfo', 'link', 'unlink', 'exec', 'system', 'escapeshellcmd', 'escapeshellarg', 'passthru', 'shell_exec', 'proc_open', 'proc_close', 'rand', 'srand', 'getrandmax', 'mt_rand', 'mt_srand', 'mt_getrandmax', 'base64_decode', 'base64_encode', 'abs', 'ceil', 'floor', 'round', 'is_finite', 'is_nan', 'is_infinite', 'bindec', 'hexdec', 'octdec', 'decbin', 'decoct', 'dechex', 'base_convert', 'number_format', 'fmod', 'ip2long', 'long2ip', 'getenv', 'putenv', 'getopt', 'microtime', 'gettimeofday', 'getrusage', 'uniqid', 'quoted_printable_decode', 'set_time_limit', 'get_cfg_var', 'magic_quotes_runtime', 'set_magic_quotes_runtime', 'get_magic_quotes_gpc', 'get_magic_quotes_runtime',
-            'import_request_variables', 'error_log', 'serialize', 'unserialize', 'memory_get_usage', 'var_dump', 'var_export', 'debug_zval_dump', 'print_r','highlight_file', 'show_source', 'highlight_string', 'ini_get', 'ini_get_all', 'ini_set', 'ini_alter', 'ini_restore', 'get_include_path', 'set_include_path', 'restore_include_path', 'setcookie', 'header', 'headers_sent', 'connection_aborted', 'connection_status', 'ignore_user_abort', 'parse_ini_file', 'is_uploaded_file', 'move_uploaded_file', 'intval', 'floatval', 'doubleval', 'strval', 'gettype', 'settype', 'is_null', 'is_resource', 'is_bool', 'is_long', 'is_float', 'is_int', 'is_integer', 'is_double', 'is_real', 'is_numeric', 'is_string', 'is_array', 'is_object', 'is_scalar',
-            'ereg', 'ereg_replace', 'eregi', 'eregi_replace', 'split', 'spliti', 'join', 'sql_regcase', 'dl', 'pclose', 'popen', 'readfile', 'rewind', 'rmdir', 'umask', 'fclose', 'feof', 'fgetc', 'fgets', 'fgetss', 'fread', 'fopen', 'fpassthru', 'ftruncate', 'fstat', 'fseek', 'ftell', 'fflush', 'fwrite', 'fputs', 'mkdir', 'rename', 'copy', 'tempnam', 'tmpfile', 'file', 'file_get_contents', 'stream_select', 'stream_context_create', 'stream_context_set_params', 'stream_context_set_option', 'stream_context_get_options', 'stream_filter_prepend', 'stream_filter_append', 'fgetcsv', 'flock', 'get_meta_tags', 'stream_set_write_buffer', 'set_file_buffer', 'set_socket_blocking', 'stream_set_blocking', 'socket_set_blocking', 'stream_get_meta_data', 'stream_register_wrapper', 'stream_wrapper_register', 'stream_set_timeout', 'socket_set_timeout', 'socket_get_status', 'realpath', 'fnmatch', 'fsockopen', 'pfsockopen', 'pack', 'unpack', 'get_browser', 'crypt', 'opendir', 'closedir', 'chdir', 'getcwd', 'rewinddir', 'readdir', 'dir', 'glob', 'fileatime', 'filectime', 'filegroup', 'fileinode', 'filemtime', 'fileowner', 'fileperms', 'filesize', 'filetype', 'file_exists', 'is_writable', 'is_writeable', 'is_readable', 'is_executable', 'is_file', 'is_dir', 'is_link', 'stat', 'lstat', 'chown',
-            'touch', 'clearstatcache', 'mail', 'ob_start', 'ob_flush', 'ob_clean', 'ob_end_flush', 'ob_end_clean', 'ob_get_flush', 'ob_get_clean', 'ob_get_length', 'ob_get_level', 'ob_get_status', 'ob_get_contents', 'ob_implicit_flush', 'ob_list_handlers', 'ksort', 'krsort', 'natsort', 'natcasesort', 'asort', 'arsort', 'sort', 'rsort', 'usort', 'uasort', 'uksort', 'shuffle', 'array_walk', 'count', 'end', 'prev', 'next', 'reset', 'current', 'key', 'min', 'max', 'in_array', 'array_search', 'extract', 'compact', 'array_fill', 'range', 'array_multisort', 'array_push', 'array_pop', 'array_shift', 'array_unshift', 'array_splice', 'array_slice', 'array_merge', 'array_merge_recursive', 'array_keys', 'array_values', 'array_count_values', 'array_reverse', 'array_reduce', 'array_pad', 'array_flip', 'array_change_key_case', 'array_rand', 'array_unique', 'array_intersect', 'array_intersect_assoc', 'array_diff', 'array_diff_assoc', 'array_sum', 'array_filter', 'array_map', 'array_chunk', 'array_key_exists', 'pos', 'sizeof', 'key_exists', 'assert', 'assert_options', 'version_compare', 'ftok', 'str_rot13', 'aggregate',
-            'session_name', 'session_module_name', 'session_save_path', 'session_id', 'session_regenerate_id', 'session_decode', 'session_register', 'session_unregister', 'session_is_registered', 'session_encode',
-            'session_start', 'session_destroy', 'session_unset', 'session_set_save_handler', 'session_cache_limiter', 'session_cache_expire', 'session_set_cookie_params', 'session_get_cookie_params', 'session_write_close', 'preg_match', 'preg_match_all', 'preg_replace', 'preg_replace_callback', 'preg_split', 'preg_quote', 'preg_grep', 'overload', 'ctype_alnum', 'ctype_alpha', 'ctype_cntrl', 'ctype_digit', 'ctype_lower', 'ctype_graph', 'ctype_print', 'ctype_punct', 'ctype_space', 'ctype_upper', 'ctype_xdigit', 'virtual', 'apache_request_headers', 'apache_note', 'apache_lookup_uri', 'apache_child_terminate', 'apache_setenv', 'apache_response_headers', 'apache_get_version', 'getallheaders', 'mysql_connect', 'mysql_pconnect', 'mysql_close', 'mysql_select_db', 'mysql_create_db', 'mysql_drop_db', 'mysql_query', 'mysql_unbuffered_query', 'mysql_db_query', 'mysql_list_dbs', 'mysql_list_tables', 'mysql_list_fields', 'mysql_list_processes', 'mysql_error', 'mysql_errno', 'mysql_affected_rows', 'mysql_insert_id', 'mysql_result', 'mysql_num_rows', 'mysql_num_fields', 'mysql_fetch_row', 'mysql_fetch_array', 'mysql_fetch_assoc', 'mysql_fetch_object', 'mysql_data_seek', 'mysql_fetch_lengths', 'mysql_fetch_field', 'mysql_field_seek', 'mysql_free_result', 'mysql_field_name', 'mysql_field_table', 'mysql_field_len', 'mysql_field_type', 'mysql_field_flags', 'mysql_escape_string', 'mysql_real_escape_string', 'mysql_stat',
-            'mysql_thread_id', 'mysql_client_encoding', 'mysql_get_client_info', 'mysql_get_host_info', 'mysql_get_proto_info', 'mysql_get_server_info', 'mysql_info', 'mysql', 'mysql_fieldname', 'mysql_fieldtable', 'mysql_fieldlen', 'mysql_fieldtype', 'mysql_fieldflags', 'mysql_selectdb', 'mysql_createdb', 'mysql_dropdb', 'mysql_freeresult', 'mysql_numfields', 'mysql_numrows', 'mysql_listdbs', 'mysql_listtables', 'mysql_listfields', 'mysql_db_name', 'mysql_dbname', 'mysql_tablename', 'mysql_table_name', 'pg_connect', 'pg_pconnect', 'pg_close', 'pg_connection_status', 'pg_connection_busy', 'pg_connection_reset', 'pg_host', 'pg_dbname', 'pg_port', 'pg_tty', 'pg_options', 'pg_ping', 'pg_query', 'pg_send_query', 'pg_cancel_query', 'pg_fetch_result', 'pg_fetch_row', 'pg_fetch_assoc', 'pg_fetch_array', 'pg_fetch_object', 'pg_fetch_all', 'pg_affected_rows', 'pg_get_result', 'pg_result_seek', 'pg_result_status', 'pg_free_result', 'pg_last_oid', 'pg_num_rows', 'pg_num_fields', 'pg_field_name', 'pg_field_num', 'pg_field_size', 'pg_field_type', 'pg_field_prtlen', 'pg_field_is_null', 'pg_get_notify', 'pg_get_pid', 'pg_result_error', 'pg_last_error', 'pg_last_notice', 'pg_put_line', 'pg_end_copy', 'pg_copy_to', 'pg_copy_from',
-            'pg_trace', 'pg_untrace', 'pg_lo_create', 'pg_lo_unlink', 'pg_lo_open', 'pg_lo_close', 'pg_lo_read', 'pg_lo_write', 'pg_lo_read_all', 'pg_lo_import', 'pg_lo_export', 'pg_lo_seek', 'pg_lo_tell', 'pg_escape_string', 'pg_escape_bytea', 'pg_unescape_bytea', 'pg_client_encoding', 'pg_set_client_encoding', 'pg_meta_data', 'pg_convert', 'pg_insert', 'pg_update', 'pg_delete', 'pg_select', 'pg_exec', 'pg_getlastoid', 'pg_cmdtuples', 'pg_errormessage', 'pg_numrows', 'pg_numfields', 'pg_fieldname', 'pg_fieldsize', 'pg_fieldtype', 'pg_fieldnum', 'pg_fieldprtlen', 'pg_fieldisnull', 'pg_freeresult', 'pg_result', 'pg_loreadall', 'pg_locreate', 'pg_lounlink', 'pg_loopen', 'pg_loclose', 'pg_loread', 'pg_lowrite', 'pg_loimport', 'pg_loexport',
-            'echo', 'print', 'global', 'static', 'exit', 'array', 'empty', 'eval', 'isset', 'unset', 'die'
-            )
-        ),
-    'SYMBOLS' => array(
-        1 => array(
-            '<%', '<%=', '%>', '<?', '<?=', '?>'
-            ),
-        0 => array(
-            '(', ')', '[', ']', '{', '}',
-            '!', '@', '%', '&', '|', '/',
-            '<', '>',
-            '=', '-', '+', '*',
-            '.', ':', ',', ';'
-            )
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false,
-        2 => false,
-        3 => false
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #b1b100;',
-            2 => 'color: #000000; font-weight: bold;',
-            3 => 'color: #990000;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #666666; font-style: italic;',
-            2 => 'color: #666666; font-style: italic;',
-            3 => 'color: #0000cc; 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: #cc66cc;',
-            GESHI_NUMBER_OCT_PREFIX => 'color: #208080;',
-            GESHI_NUMBER_HEX_PREFIX => 'color: #208080;',
-            GESHI_NUMBER_FLT_SCI_ZERO => 'color:#800080;',
-            ),
-        'METHODS' => array(
-            1 => 'color: #004000;',
-            2 => 'color: #004000;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #339933;',
-            1 => 'color: #000000; font-weight: bold;'
-            ),
-        'REGEXPS' => array(
-            0 => 'color: #0000ff;'
-            ),
-        'SCRIPT' => array(
-            0 => '',
-            1 => '',
-            2 => '',
-            3 => '',
-            4 => '',
-            5 => ''
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => 'http://www.php.net/{FNAMEL}'
-        ),
-    'OOLANG' => true,
-    'OBJECT_SPLITTERS' => array(
-        1 => '-&gt;',
-        2 => '::'
-        ),
-    'REGEXPS' => array(
-        //Variables
-        0 => "[\\$]+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*"
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_MAYBE,
-    'SCRIPT_DELIMITERS' => array(
-        0 => array(
-            '<?php' => '?>'
-            ),
-        1 => array(
-            '<?' => '?>'
-            ),
-        2 => array(
-            '<%' => '%>'
-            ),
-        3 => array(
-            '<script language="php">' => '</script>'
-            ),
-        4 => "/(?P<start><\\?(?>php\b)?)(?:".
-            "(?>[^\"'?\\/<]+)|".
-            "\\?(?!>)|".
-            "(?>'(?>[^'\\\\]|\\\\'|\\\\\\\|\\\\)*')|".
-            "(?>\"(?>[^\"\\\\]|\\\\\"|\\\\\\\\|\\\\)*\")|".
-            "(?>\\/\\*(?>[^\\*]|(?!\\*\\/)\\*)*\\*\\/)|".
-            "\\/\\/(?>.*?$)|".
-            "\\/(?=[^*\\/])|".
-            "<(?!<<)|".
-            "<<<(?P<phpdoc>\w+)\s.*?\s\k<phpdoc>".
-            ")*(?P<end>\\?>|\Z)/sm",
-        5 => "/(?P<start><%)(?:".
-            "(?>[^\"'%\\/<]+)|".
-            "%(?!>)|".
-            "(?>'(?>[^'\\\\]|\\\\'|\\\\\\\|\\\\)*')|".
-            "(?>\"(?>[^\\\"\\\\]|\\\\\"|\\\\\\\\|\\\\)*\")|".
-            "(?>\\/\\*(?>[^\\*]|(?!\\*\\/)\\*)*\\*\\/)|".
-            "\\/\\/(?>.*?$)|".
-            "\\/(?=[^*\\/])|".
-            "<(?!<<)|".
-            "<<<(?P<phpdoc>\w+)\s.*?\s\k<phpdoc>".
-            ")*(?P<end>%>)/sm"
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        0 => true,
-        1 => true,
-        2 => true,
-        3 => true,
-        4 => true,
-        5 => true
-        ),
-    'TAB_WIDTH' => 4
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/php.php b/wiki/vendor/geshi/geshi/src/geshi/php.php
deleted file mode 100644
index 6b24840..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/php.php
+++ /dev/null
@@ -1,1115 +0,0 @@
-<?php
-/*************************************************************************************
- * php.php
- * --------
- * Author: Nigel McNie (nigel@geshi.org)
- * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter/)
- * Release Version: 1.0.9.0
- * Date Started: 2004/06/20
- *
- * PHP language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2008/05/23 (1.0.7.22)
- *  -  Added description of extra language features (SF#1970248)
- * 2004/11/25 (1.0.3)
- *  -  Added support for multiple object splitters
- *  -  Fixed &new problem
- * 2004/10/27 (1.0.2)
- *  -  Added URL support
- *  -  Added extra constants
- * 2004/08/05 (1.0.1)
- *  -  Added support for symbols
- * 2004/07/14 (1.0.0)
- *  -  First Release
- *
- * TODO (updated 2004/07/14)
- * -------------------------
- * * Make sure the last few function I may have missed
- *   (like eval()) are included for highlighting
- * * Split to several files - php4, php5 etc
- *
- *************************************************************************************
- *
- *     This file is part of GeSHi.
- *
- *   GeSHi is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   GeSHi is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with GeSHi; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- ************************************************************************************/
-
-$language_data = array(
-    'LANG_NAME' => 'PHP',
-    'COMMENT_SINGLE' => array(1 => '//', 2 => '#'),
-    'COMMENT_MULTI' => array('/*' => '*/'),
-    'COMMENT_REGEXP' => array(
-        //Heredoc and Nowdoc syntax
-        3 => '/<<<\s*?(\'?)([a-zA-Z0-9]+?)\1[^\n]*?\\n.*\\n\\2(?![a-zA-Z0-9])/siU',
-        // phpdoc comments
-        4 => '#/\*\*(?![\*\/]).*\*/#sU',
-        // Advanced # handling
-        2 => "/#.*?(?:(?=\?\>)|^)/smi"
-        ),
-    '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 => "#\\\\x[\da-fA-F]{1,2}#i",
-        //Octal Char Specs
-        3 => "#\\\\[0-7]{1,3}#",
-        //String Parsing of Variable Names
-        4 => "#\\$[a-z0-9_]+(?:\\[[a-z0-9_]+\\]|->[a-z0-9_]+)?|(?:\\{\\$|\\$\\{)[a-z0-9_]+(?:\\[('?)[a-z0-9_]*\\1\\]|->[a-z0-9_]+)*\\}#i",
-        //Experimental extension supporting cascaded {${$var}} syntax
-        5 => "#\$[a-z0-9_]+(?:\[[a-z0-9_]+\]|->[a-z0-9_]+)?|(?:\{\$|\$\{)[a-z0-9_]+(?:\[('?)[a-z0-9_]*\\1\]|->[a-z0-9_]+)*\}|\{\$(?R)\}#i",
-        //Format String support in ""-Strings
-        6 => "#%(?:%|(?:\d+\\\\\\\$)?\\+?(?:\x20|0|'.)?-?(?:\d+|\\*)?(?:\.\d+)?[bcdefFosuxX])#"
-        ),
-    '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(
-            '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', 'yield',
-
-            'echo','print'
-            ),
-        2 => array(
-            '&amp;new','&lt;/script&gt;','&lt;?php','&lt;script language',
-            'abstract','class','const','declare','extends','function','global',
-            'implements', 'interface','namespace','new','private','protected',
-            'public','self','trait','use','var'
-            ),
-        3 => array(
-            'abs','acos','acosh','addcslashes','addslashes','aggregate',
-            'aggregate_methods','aggregate_methods_by_list',
-            'aggregate_methods_by_regexp','aggregate_properties',
-            'aggregate_properties_by_list','aggregate_properties_by_regexp',
-            'aggregation_info','apache_child_terminate','apache_get_modules',
-            'apache_get_version','apache_getenv','apache_lookup_uri',
-            'apache_note','apache_request_headers','apache_response_headers',
-            'apache_setenv','array','array_change_key_case','array_chunk',
-            'array_combine','array_count_values','array_diff',
-            'array_diff_assoc','array_diff_key','array_diff_uassoc',
-            'array_diff_ukey','array_fill','array_fill_keys','array_filter',
-            'array_flip','array_intersect','array_intersect_assoc',
-            'array_intersect_key','array_intersect_uassoc',
-            'array_intersect_ukey','array_key_exists','array_keys','array_map',
-            'array_merge','array_merge_recursive','array_multisort','array_pad',
-            'array_pop','array_product','array_push','array_rand',
-            'array_reduce','array_reverse','array_search','array_shift',
-            'array_slice','array_splice','array_sum','array_udiff',
-            'array_udiff_assoc','array_udiff_uassoc','array_uintersect',
-            'array_uintersect_assoc','array_uintersect_uassoc','array_unique',
-            'array_unshift','array_values','array_walk','array_walk_recursive',
-            'arsort','asin','asinh','asort','assert','assert_options','atan',
-            'atan2','atanh','base_convert','base64_decode','base64_encode',
-            'basename','bcadd','bccomp','bcdiv','bcmod','bcmul',
-            'bcompiler_load','bcompiler_load_exe','bcompiler_parse_class',
-            'bcompiler_read','bcompiler_write_class','bcompiler_write_constant',
-            'bcompiler_write_exe_footer','bcompiler_write_file',
-            'bcompiler_write_footer','bcompiler_write_function',
-            'bcompiler_write_functions_from_file','bcompiler_write_header',
-            'bcompiler_write_included_filename','bcpow','bcpowmod','bcscale',
-            'bcsqrt','bcsub','bin2hex','bindec','bindtextdomain',
-            'bind_textdomain_codeset','bitset_empty','bitset_equal',
-            'bitset_excl','bitset_fill','bitset_from_array','bitset_from_hash',
-            'bitset_from_string','bitset_in','bitset_incl',
-            'bitset_intersection','bitset_invert','bitset_is_empty',
-            'bitset_subset','bitset_to_array','bitset_to_hash',
-            'bitset_to_string','bitset_union','blenc_encrypt','bzclose',
-            'bzcompress','bzdecompress','bzerrno','bzerror','bzerrstr',
-            'bzflush','bzopen','bzread','bzwrite','cal_days_in_month',
-            'cal_from_jd','cal_info','cal_to_jd','call_user_func',
-            'call_user_func_array','call_user_method','call_user_method_array',
-            'ceil','chdir','checkdate','checkdnsrr','chgrp','chmod','chop',
-            'chown','chr','chunk_split','class_exists','class_implements',
-            'class_parents','classkit_aggregate_methods',
-            'classkit_doc_comments','classkit_import','classkit_method_add',
-            'classkit_method_copy','classkit_method_redefine',
-            'classkit_method_remove','classkit_method_rename','clearstatcache',
-            'closedir','closelog','com_create_guid','com_event_sink',
-            'com_get_active_object','com_load_typelib','com_message_pump',
-            'com_print_typeinfo','compact','confirm_phpdoc_compiled',
-            'connection_aborted','connection_status','constant',
-            'convert_cyr_string','convert_uudecode','convert_uuencode','copy',
-            'cos','cosh','count','count_chars','cpdf_add_annotation',
-            'cpdf_add_outline','cpdf_arc','cpdf_begin_text','cpdf_circle',
-            'cpdf_clip','cpdf_close','cpdf_closepath',
-            'cpdf_closepath_fill_stroke','cpdf_closepath_stroke',
-            'cpdf_continue_text','cpdf_curveto','cpdf_end_text','cpdf_fill',
-            'cpdf_fill_stroke','cpdf_finalize','cpdf_finalize_page',
-            'cpdf_global_set_document_limits','cpdf_import_jpeg','cpdf_lineto',
-            'cpdf_moveto','cpdf_newpath','cpdf_open','cpdf_output_buffer',
-            'cpdf_page_init','cpdf_rect','cpdf_restore','cpdf_rlineto',
-            'cpdf_rmoveto','cpdf_rotate','cpdf_rotate_text','cpdf_save',
-            'cpdf_save_to_file','cpdf_scale','cpdf_set_action_url',
-            'cpdf_set_char_spacing','cpdf_set_creator','cpdf_set_current_page',
-            'cpdf_set_font','cpdf_set_font_directories',
-            'cpdf_set_font_map_file','cpdf_set_horiz_scaling',
-            'cpdf_set_keywords','cpdf_set_leading','cpdf_set_page_animation',
-            'cpdf_set_subject','cpdf_set_text_matrix','cpdf_set_text_pos',
-            'cpdf_set_text_rendering','cpdf_set_text_rise','cpdf_set_title',
-            'cpdf_set_viewer_preferences','cpdf_set_word_spacing',
-            'cpdf_setdash','cpdf_setflat','cpdf_setgray','cpdf_setgray_fill',
-            'cpdf_setgray_stroke','cpdf_setlinecap','cpdf_setlinejoin',
-            'cpdf_setlinewidth','cpdf_setmiterlimit','cpdf_setrgbcolor',
-            'cpdf_setrgbcolor_fill','cpdf_setrgbcolor_stroke','cpdf_show',
-            'cpdf_show_xy','cpdf_stringwidth','cpdf_stroke','cpdf_text',
-            'cpdf_translate','crack_check','crack_closedict',
-            'crack_getlastmessage','crack_opendict','crc32','create_function',
-            'crypt','ctype_alnum','ctype_alpha','ctype_cntrl','ctype_digit',
-            'ctype_graph','ctype_lower','ctype_print','ctype_punct',
-            'ctype_space','ctype_upper','ctype_xdigit','curl_close',
-            'curl_copy_handle','curl_errno','curl_error','curl_exec',
-            'curl_getinfo','curl_init','curl_multi_add_handle',
-            'curl_multi_close','curl_multi_exec','curl_multi_getcontent',
-            'curl_multi_info_read','curl_multi_init','curl_multi_remove_handle',
-            'curl_multi_select','curl_setopt','curl_setopt_array',
-            'curl_version','current','cvsclient_connect','cvsclient_log',
-            'cvsclient_login','cvsclient_retrieve','date','date_create',
-            'date_date_set','date_default_timezone_get',
-            'date_default_timezone_set','date_format','date_isodate_set',
-            'date_modify','date_offset_get','date_parse','date_sun_info',
-            'date_sunrise','date_sunset','date_time_set','date_timezone_get',
-            'date_timezone_set','db_id_list','dba_close','dba_delete',
-            'dba_exists','dba_fetch','dba_firstkey','dba_handlers','dba_insert',
-            'dba_key_split','dba_list','dba_nextkey','dba_open','dba_optimize',
-            'dba_popen','dba_replace','dba_sync','dbase_add_record',
-            'dbase_close','dbase_create','dbase_delete_record',
-            'dbase_get_header_info','dbase_get_record',
-            'dbase_get_record_with_names','dbase_numfields','dbase_numrecords',
-            'dbase_open','dbase_pack','dbase_replace_record',
-            'dbg_get_all_contexts','dbg_get_all_module_names',
-            'dbg_get_all_source_lines','dbg_get_context_name',
-            'dbg_get_module_name','dbg_get_profiler_results',
-            'dbg_get_source_context','dblist','dbmclose','dbmdelete',
-            'dbmexists','dbmfetch','dbmfirstkey','dbminsert','dbmnextkey',
-            'dbmopen','dbmreplace','dbx_close','dbx_compare','dbx_connect',
-            'dbx_error','dbx_escape_string','dbx_fetch_row','dbx_query',
-            'dbx_sort','dcgettext','dcngettext','deaggregate','debug_backtrace',
-            'debug_zval_dump','debugbreak','decbin','dechex','decoct','define',
-            'defined','define_syslog_variables','deg2rad','dgettext','die',
-            'dio_close','dio_open','dio_read','dio_seek','dio_stat','dio_write',
-            'dir','dirname','disk_free_space','disk_total_space',
-            'diskfreespace','dl','dngettext','docblock_token_name',
-            'docblock_tokenize','dom_import_simplexml','domxml_add_root',
-            'domxml_attributes','domxml_children','domxml_doc_add_root',
-            'domxml_doc_document_element','domxml_doc_get_element_by_id',
-            'domxml_doc_get_elements_by_tagname','domxml_doc_get_root',
-            'domxml_doc_set_root','domxml_doc_validate','domxml_doc_xinclude',
-            'domxml_dump_mem','domxml_dump_mem_file','domxml_dump_node',
-            'domxml_dumpmem','domxml_elem_get_attribute',
-            'domxml_elem_set_attribute','domxml_get_attribute','domxml_getattr',
-            'domxml_html_dump_mem','domxml_new_child','domxml_new_doc',
-            'domxml_new_xmldoc','domxml_node','domxml_node_add_namespace',
-            'domxml_node_attributes','domxml_node_children',
-            'domxml_node_get_content','domxml_node_has_attributes',
-            'domxml_node_new_child','domxml_node_set_content',
-            'domxml_node_set_namespace','domxml_node_unlink_node',
-            'domxml_open_file','domxml_open_mem','domxml_parser',
-            'domxml_parser_add_chunk','domxml_parser_cdata_section',
-            'domxml_parser_characters','domxml_parser_comment',
-            'domxml_parser_end','domxml_parser_end_document',
-            'domxml_parser_end_element','domxml_parser_entity_reference',
-            'domxml_parser_get_document','domxml_parser_namespace_decl',
-            'domxml_parser_processing_instruction',
-            'domxml_parser_start_document','domxml_parser_start_element',
-            'domxml_root','domxml_set_attribute','domxml_setattr',
-            'domxml_substitute_entities_default','domxml_unlink_node',
-            'domxml_version','domxml_xmltree','doubleval','each','easter_date',
-            'easter_days','empty','end','ereg','ereg_replace','eregi',
-            'eregi_replace','error_get_last','error_log','error_reporting',
-            'escapeshellarg','escapeshellcmd','eval','event_deschedule',
-            'event_dispatch','event_free','event_handle_signal',
-            'event_have_events','event_init','event_new','event_pending',
-            'event_priority_set','event_schedule','event_set','event_timeout',
-            'exec','exif_imagetype','exif_read_data','exif_tagname',
-            'exif_thumbnail','exit','exp','explode','expm1','extension_loaded',
-            'extract','ezmlm_hash','fbird_add_user','fbird_affected_rows',
-            'fbird_backup','fbird_blob_add','fbird_blob_cancel',
-            'fbird_blob_close','fbird_blob_create','fbird_blob_echo',
-            'fbird_blob_get','fbird_blob_import','fbird_blob_info',
-            'fbird_blob_open','fbird_close','fbird_commit','fbird_commit_ret',
-            'fbird_connect','fbird_db_info','fbird_delete_user','fbird_drop_db',
-            'fbird_errcode','fbird_errmsg','fbird_execute','fbird_fetch_assoc',
-            'fbird_fetch_object','fbird_fetch_row','fbird_field_info',
-            'fbird_free_event_handler','fbird_free_query','fbird_free_result',
-            'fbird_gen_id','fbird_maintain_db','fbird_modify_user',
-            'fbird_name_result','fbird_num_fields','fbird_num_params',
-            'fbird_param_info','fbird_pconnect','fbird_prepare','fbird_query',
-            'fbird_restore','fbird_rollback','fbird_rollback_ret',
-            'fbird_server_info','fbird_service_attach','fbird_service_detach',
-            'fbird_set_event_handler','fbird_trans','fbird_wait_event','fclose',
-            'fdf_add_doc_javascript','fdf_add_template','fdf_close',
-            'fdf_create','fdf_enum_values','fdf_errno','fdf_error','fdf_get_ap',
-            'fdf_get_attachment','fdf_get_encoding','fdf_get_file',
-            'fdf_get_flags','fdf_get_opt','fdf_get_status','fdf_get_value',
-            'fdf_get_version','fdf_header','fdf_next_field_name','fdf_open',
-            'fdf_open_string','fdf_remove_item','fdf_save','fdf_save_string',
-            'fdf_set_ap','fdf_set_encoding','fdf_set_file','fdf_set_flags',
-            'fdf_set_javascript_action','fdf_set_on_import_javascript',
-            'fdf_set_opt','fdf_set_status','fdf_set_submit_form_action',
-            'fdf_set_target_frame','fdf_set_value','fdf_set_version','feof',
-            'fflush','fgetc','fgetcsv','fgets','fgetss','file','file_exists',
-            'file_get_contents','file_put_contents','fileatime','filectime',
-            'filegroup','fileinode','filemtime','fileowner','fileperms',
-            'filepro','filepro_fieldcount','filepro_fieldname',
-            'filepro_fieldtype','filepro_fieldwidth','filepro_retrieve',
-            'filepro_rowcount','filesize','filetype','filter_has_var',
-            'filter_id','filter_input','filter_input_array','filter_list',
-            'filter_var','filter_var_array','finfo_buffer','finfo_close',
-            'finfo_file','finfo_open','finfo_set_flags','floatval','flock',
-            'floor','flush','fmod','fnmatch','fopen','fpassthru','fprintf',
-            'fputcsv','fputs','fread','frenchtojd','fribidi_charset_info',
-            'fribidi_get_charsets','fribidi_log2vis','fscanf','fseek',
-            'fsockopen','fstat','ftell','ftok','ftp_alloc','ftp_cdup',
-            'ftp_chdir','ftp_chmod','ftp_close','ftp_connect','ftp_delete',
-            'ftp_exec','ftp_fget','ftp_fput','ftp_get','ftp_get_option',
-            'ftp_login','ftp_mdtm','ftp_mkdir','ftp_nb_continue','ftp_nb_fget',
-            'ftp_nb_fput','ftp_nb_get','ftp_nb_put','ftp_nlist','ftp_pasv',
-            'ftp_put','ftp_pwd','ftp_quit','ftp_raw','ftp_rawlist','ftp_rename',
-            'ftp_rmdir','ftp_set_option','ftp_site','ftp_size',
-            'ftp_ssl_connect','ftp_systype','ftruncate','function_exists',
-            'func_get_arg','func_get_args','func_num_args','fwrite','gd_info',
-            'getallheaders','getcwd','getdate','getenv','gethostbyaddr',
-            'gethostbyname','gethostbynamel','getimagesize','getlastmod',
-            'getmxrr','getmygid','getmyinode','getmypid','getmyuid','getopt',
-            'getprotobyname','getprotobynumber','getrandmax','getrusage',
-            'getservbyname','getservbyport','gettext','gettimeofday','gettype',
-            'get_browser','get_cfg_var','get_class','get_class_methods',
-            'get_class_vars','get_current_user','get_declared_classes',
-            'get_defined_constants','get_defined_functions','get_defined_vars',
-            'get_extension_funcs','get_headers','get_html_translation_table',
-            'get_included_files','get_include_path','get_loaded_extensions',
-            'get_magic_quotes_gpc','get_magic_quotes_runtime','get_meta_tags',
-            'get_object_vars','get_parent_class','get_required_files',
-            'get_resource_type','glob','gmdate','gmmktime','gmp_abs','gmp_add',
-            'gmp_and','gmp_clrbit','gmp_cmp','gmp_com','gmp_div','gmp_div_q',
-            'gmp_div_qr','gmp_div_r','gmp_divexact','gmp_fact','gmp_gcd',
-            'gmp_gcdext','gmp_hamdist','gmp_init','gmp_intval','gmp_invert',
-            'gmp_jacobi','gmp_legendre','gmp_mod','gmp_mul','gmp_neg',
-            'gmp_nextprime','gmp_or','gmp_perfect_square','gmp_popcount',
-            'gmp_pow','gmp_powm','gmp_prob_prime','gmp_random','gmp_scan0',
-            'gmp_scan1','gmp_setbit','gmp_sign','gmp_sqrt','gmp_sqrtrem',
-            'gmp_strval','gmp_sub','gmp_xor','gmstrftime','gopher_parsedir',
-            'gregoriantojd','gzclose','gzcompress','gzdeflate','gzencode',
-            'gzeof','gzfile','gzgetc','gzgets','gzgetss','gzinflate','gzopen',
-            'gzpassthru','gzputs','gzread','gzrewind','gzseek','gztell',
-            'gzuncompress','gzwrite','hash','hash_algos','hash_file',
-            'hash_final','hash_hmac','hash_hmac_file','hash_init','hash_update',
-            'hash_update_file','hash_update_stream','header','headers_list',
-            'headers_sent','hebrev','hebrevc','hexdec','highlight_file',
-            'highlight_string','html_doc','html_doc_file','html_entity_decode',
-            'htmlentities','htmlspecialchars','htmlspecialchars_decode',
-            'http_build_cookie','http_build_query','http_build_str',
-            'http_build_url','http_cache_etag','http_cache_last_modified',
-            'http_chunked_decode','http_date','http_deflate','http_get',
-            'http_get_request_body','http_get_request_body_stream',
-            'http_get_request_headers','http_head','http_inflate',
-            'http_match_etag','http_match_modified','http_match_request_header',
-            'http_negotiate_charset','http_negotiate_content_type',
-            'http_negotiate_language','http_parse_cookie','http_parse_headers',
-            'http_parse_message','http_parse_params',
-            'http_persistent_handles_clean','http_persistent_handles_count',
-            'http_persistent_handles_ident','http_post_data','http_post_fields',
-            'http_put_data','http_put_file','http_put_stream','http_redirect',
-            'http_request','http_request_body_encode',
-            'http_request_method_exists','http_request_method_name',
-            'http_request_method_register','http_request_method_unregister',
-            'http_send_content_disposition','http_send_content_type',
-            'http_send_data','http_send_file','http_send_last_modified',
-            'http_send_status','http_send_stream','http_support',
-            'http_throttle','hypot','i18n_convert','i18n_discover_encoding',
-            'i18n_http_input','i18n_http_output','i18n_internal_encoding',
-            'i18n_ja_jp_hantozen','i18n_mime_header_decode',
-            'i18n_mime_header_encode','ibase_add_user','ibase_affected_rows',
-            'ibase_backup','ibase_blob_add','ibase_blob_cancel',
-            'ibase_blob_close','ibase_blob_create','ibase_blob_echo',
-            'ibase_blob_get','ibase_blob_import','ibase_blob_info',
-            'ibase_blob_open','ibase_close','ibase_commit','ibase_commit_ret',
-            'ibase_connect','ibase_db_info','ibase_delete_user','ibase_drop_db',
-            'ibase_errcode','ibase_errmsg','ibase_execute','ibase_fetch_assoc',
-            'ibase_fetch_object','ibase_fetch_row','ibase_field_info',
-            'ibase_free_event_handler','ibase_free_query','ibase_free_result',
-            'ibase_gen_id','ibase_maintain_db','ibase_modify_user',
-            'ibase_name_result','ibase_num_fields','ibase_num_params',
-            'ibase_param_info','ibase_pconnect','ibase_prepare','ibase_query',
-            'ibase_restore','ibase_rollback','ibase_rollback_ret',
-            'ibase_server_info','ibase_service_attach','ibase_service_detach',
-            'ibase_set_event_handler','ibase_trans','ibase_wait_event','iconv',
-            'iconv_get_encoding','iconv_mime_decode',
-            'iconv_mime_decode_headers','iconv_mime_encode',
-            'iconv_set_encoding','iconv_strlen','iconv_strpos','iconv_strrpos',
-            'iconv_substr','id3_get_frame_long_name','id3_get_frame_short_name',
-            'id3_get_genre_id','id3_get_genre_list','id3_get_genre_name',
-            'id3_get_tag','id3_get_version','id3_remove_tag','id3_set_tag',
-            'idate','ignore_user_abort','image_type_to_extension',
-            'image_type_to_mime_type','image2wbmp','imagealphablending',
-            'imageantialias','imagearc','imagechar','imagecharup',
-            'imagecolorallocate','imagecolorallocatealpha','imagecolorat',
-            'imagecolorclosest','imagecolorclosestalpha','imagecolordeallocate',
-            'imagecolorexact','imagecolorexactalpha','imagecolormatch',
-            'imagecolorresolve','imagecolorresolvealpha','imagecolorset',
-            'imagecolorsforindex','imagecolorstotal','imagecolortransparent',
-            'imageconvolution','imagecopy','imagecopymerge',
-            'imagecopymergegray','imagecopyresampled','imagecopyresized',
-            'imagecreate','imagecreatefromgd','imagecreatefromgd2',
-            'imagecreatefromgd2part','imagecreatefromgif','imagecreatefromjpeg',
-            'imagecreatefrompng','imagecreatefromstring','imagecreatefromwbmp',
-            'imagecreatefromxbm','imagecreatetruecolor','imagedashedline',
-            'imagedestroy','imageellipse','imagefill','imagefilledarc',
-            'imagefilledellipse','imagefilledpolygon','imagefilledrectangle',
-            'imagefilltoborder','imagefilter','imagefontheight',
-            'imagefontwidth','imageftbbox','imagefttext','imagegammacorrect',
-            'imagegd','imagegd2','imagegif','imagegrabscreen','imagegrabwindow',
-            'imageinterlace','imageistruecolor','imagejpeg','imagelayereffect',
-            'imageline','imageloadfont','imagepalettecopy','imagepng',
-            'imagepolygon','imagepsbbox','imagepsencodefont',
-            'imagepsextendfont','imagepsfreefont','imagepsloadfont',
-            'imagepsslantfont','imagepstext','imagerectangle','imagerotate',
-            'imagesavealpha','imagesetbrush','imagesetpixel','imagesetstyle',
-            'imagesetthickness','imagesettile','imagestring','imagestringup',
-            'imagesx','imagesy','imagetruecolortopalette','imagettfbbox',
-            'imagettftext','imagetypes','imagewbmp','imagexbm','imap_8bit',
-            'imap_alerts','imap_append','imap_base64','imap_binary','imap_body',
-            'imap_bodystruct','imap_check','imap_clearflag_full','imap_close',
-            'imap_create','imap_createmailbox','imap_delete',
-            'imap_deletemailbox','imap_errors','imap_expunge',
-            'imap_fetch_overview','imap_fetchbody','imap_fetchheader',
-            'imap_fetchstructure','imap_fetchtext','imap_get_quota',
-            'imap_get_quotaroot','imap_getacl','imap_getmailboxes',
-            'imap_getsubscribed','imap_header','imap_headerinfo','imap_headers',
-            'imap_last_error','imap_list','imap_listmailbox',
-            'imap_listsubscribed','imap_lsub','imap_mail','imap_mail_compose',
-            'imap_mail_copy','imap_mail_move','imap_mailboxmsginfo',
-            'imap_mime_header_decode','imap_msgno','imap_num_msg',
-            'imap_num_recent','imap_open','imap_ping','imap_qprint',
-            'imap_rename','imap_renamemailbox','imap_reopen',
-            'imap_rfc822_parse_adrlist','imap_rfc822_parse_headers',
-            'imap_rfc822_write_address','imap_savebody','imap_scan',
-            'imap_scanmailbox','imap_search','imap_set_quota','imap_setacl',
-            'imap_setflag_full','imap_sort','imap_status','imap_subscribe',
-            'imap_thread','imap_timeout','imap_uid','imap_undelete',
-            'imap_unsubscribe','imap_utf7_decode','imap_utf7_encode',
-            'imap_utf8','implode','import_request_variables','in_array',
-            'ini_alter','ini_get','ini_get_all','ini_restore','ini_set',
-            'intval','ip2long','iptcembed','iptcparse','isset','is_a',
-            'is_array','is_bool','is_callable','is_dir','is_double',
-            'is_executable','is_file','is_finite','is_float','is_infinite',
-            'is_int','is_integer','is_link','is_long','is_nan','is_null',
-            'is_numeric','is_object','is_readable','is_real','is_resource',
-            'is_scalar','is_soap_fault','is_string','is_subclass_of',
-            'is_uploaded_file','is_writable','is_writeable','iterator_apply',
-            'iterator_count','iterator_to_array','java_last_exception_clear',
-            'java_last_exception_get','jddayofweek','jdmonthname','jdtofrench',
-            'jdtogregorian','jdtojewish','jdtojulian','jdtounix','jewishtojd',
-            'join','jpeg2wbmp','json_decode','json_encode','juliantojd','key',
-            'key_exists','krsort','ksort','lcg_value','ldap_add','ldap_bind',
-            'ldap_close','ldap_compare','ldap_connect','ldap_count_entries',
-            'ldap_delete','ldap_dn2ufn','ldap_err2str','ldap_errno',
-            'ldap_error','ldap_explode_dn','ldap_first_attribute',
-            'ldap_first_entry','ldap_first_reference','ldap_free_result',
-            'ldap_get_attributes','ldap_get_dn','ldap_get_entries',
-            'ldap_get_option','ldap_get_values','ldap_get_values_len',
-            'ldap_list','ldap_mod_add','ldap_mod_del','ldap_mod_replace',
-            'ldap_modify','ldap_next_attribute','ldap_next_entry',
-            'ldap_next_reference','ldap_parse_reference','ldap_parse_result',
-            'ldap_read','ldap_rename','ldap_search','ldap_set_option',
-            'ldap_sort','ldap_start_tls','ldap_unbind','levenshtein',
-            'libxml_clear_errors','libxml_get_errors','libxml_get_last_error',
-            'libxml_set_streams_context','libxml_use_internal_errors','link',
-            'linkinfo','list','localeconv','localtime','log','log1p','log10',
-            'long2ip','lstat','ltrim','lzf_compress','lzf_decompress',
-            'lzf_optimized_for','magic_quotes_runtime','mail','max','mbereg',
-            'mberegi','mberegi_replace','mbereg_match','mbereg_replace',
-            'mbereg_search','mbereg_search_getpos','mbereg_search_getregs',
-            'mbereg_search_init','mbereg_search_pos','mbereg_search_regs',
-            'mbereg_search_setpos','mbregex_encoding','mbsplit','mbstrcut',
-            'mbstrlen','mbstrpos','mbstrrpos','mbsubstr','mb_check_encoding',
-            'mb_convert_case','mb_convert_encoding','mb_convert_kana',
-            'mb_convert_variables','mb_decode_mimeheader',
-            'mb_decode_numericentity','mb_detect_encoding','mb_detect_order',
-            'mb_encode_mimeheader','mb_encode_numericentity','mb_ereg',
-            'mb_eregi','mb_eregi_replace','mb_ereg_match','mb_ereg_replace',
-            'mb_ereg_search','mb_ereg_search_getpos','mb_ereg_search_getregs',
-            'mb_ereg_search_init','mb_ereg_search_pos','mb_ereg_search_regs',
-            'mb_ereg_search_setpos','mb_get_info','mb_http_input',
-            'mb_http_output','mb_internal_encoding','mb_language',
-            'mb_list_encodings','mb_output_handler','mb_parse_str',
-            'mb_preferred_mime_name','mb_regex_encoding','mb_regex_set_options',
-            'mb_send_mail','mb_split','mb_strcut','mb_strimwidth','mb_stripos',
-            'mb_stristr','mb_strlen','mb_strpos','mb_strrchr','mb_strrichr',
-            'mb_strripos','mb_strrpos','mb_strstr','mb_strtolower',
-            'mb_strtoupper','mb_strwidth','mb_substitute_character','mb_substr',
-            'mb_substr_count','mcrypt_cbc','mcrypt_cfb','mcrypt_create_iv',
-            'mcrypt_decrypt','mcrypt_ecb','mcrypt_enc_get_algorithms_name',
-            'mcrypt_enc_get_block_size','mcrypt_enc_get_iv_size',
-            'mcrypt_enc_get_key_size','mcrypt_enc_get_modes_name',
-            'mcrypt_enc_get_supported_key_sizes',
-            'mcrypt_enc_is_block_algorithm',
-            'mcrypt_enc_is_block_algorithm_mode','mcrypt_enc_is_block_mode',
-            'mcrypt_enc_self_test','mcrypt_encrypt','mcrypt_generic',
-            'mcrypt_generic_deinit','mcrypt_generic_end','mcrypt_generic_init',
-            'mcrypt_get_block_size','mcrypt_get_cipher_name',
-            'mcrypt_get_iv_size','mcrypt_get_key_size','mcrypt_list_algorithms',
-            'mcrypt_list_modes','mcrypt_module_close',
-            'mcrypt_module_get_algo_block_size',
-            'mcrypt_module_get_algo_key_size',
-            'mcrypt_module_get_supported_key_sizes',
-            'mcrypt_module_is_block_algorithm',
-            'mcrypt_module_is_block_algorithm_mode',
-            'mcrypt_module_is_block_mode','mcrypt_module_open',
-            'mcrypt_module_self_test','mcrypt_ofb','md5','md5_file',
-            'mdecrypt_generic','memcache_add','memcache_add_server',
-            'memcache_close','memcache_connect','memcache_debug',
-            'memcache_decrement','memcache_delete','memcache_flush',
-            'memcache_get','memcache_get_extended_stats',
-            'memcache_get_server_status','memcache_get_stats',
-            'memcache_get_version','memcache_increment','memcache_pconnect',
-            'memcache_replace','memcache_set','memcache_set_compress_threshold',
-            'memcache_set_server_params','memory_get_peak_usage',
-            'memory_get_usage','metaphone','mhash','mhash_count',
-            'mhash_get_block_size','mhash_get_hash_name','mhash_keygen_s2k',
-            'method_exists','microtime','mime_content_type','min',
-            'ming_keypress','ming_setcubicthreshold','ming_setscale',
-            'ming_useconstants','ming_useswfversion','mkdir','mktime',
-            'money_format','move_uploaded_file','msql','msql_affected_rows',
-            'msql_close','msql_connect','msql_create_db','msql_createdb',
-            'msql_data_seek','msql_db_query','msql_dbname','msql_drop_db',
-            'msql_dropdb','msql_error','msql_fetch_array','msql_fetch_field',
-            'msql_fetch_object','msql_fetch_row','msql_field_flags',
-            'msql_field_len','msql_field_name','msql_field_seek',
-            'msql_field_table','msql_field_type','msql_fieldflags',
-            'msql_fieldlen','msql_fieldname','msql_fieldtable','msql_fieldtype',
-            'msql_free_result','msql_freeresult','msql_list_dbs',
-            'msql_list_fields','msql_list_tables','msql_listdbs',
-            'msql_listfields','msql_listtables','msql_num_fields',
-            'msql_num_rows','msql_numfields','msql_numrows','msql_pconnect',
-            'msql_query','msql_regcase','msql_result','msql_select_db',
-            'msql_selectdb','msql_tablename','mssql_bind','mssql_close',
-            'mssql_connect','mssql_data_seek','mssql_execute',
-            'mssql_fetch_array','mssql_fetch_assoc','mssql_fetch_batch',
-            'mssql_fetch_field','mssql_fetch_object','mssql_fetch_row',
-            'mssql_field_length','mssql_field_name','mssql_field_seek',
-            'mssql_field_type','mssql_free_result','mssql_free_statement',
-            'mssql_get_last_message','mssql_guid_string','mssql_init',
-            'mssql_min_error_severity','mssql_min_message_severity',
-            'mssql_next_result','mssql_num_fields','mssql_num_rows',
-            'mssql_pconnect','mssql_query','mssql_result','mssql_rows_affected',
-            'mssql_select_db','mt_getrandmax','mt_rand','mt_srand','mysql',
-            'mysql_affected_rows','mysql_client_encoding','mysql_close',
-            'mysql_connect','mysql_createdb','mysql_create_db',
-            'mysql_data_seek','mysql_dbname','mysql_db_name','mysql_db_query',
-            'mysql_dropdb','mysql_drop_db','mysql_errno','mysql_error',
-            'mysql_escape_string','mysql_fetch_array','mysql_fetch_assoc',
-            'mysql_fetch_field','mysql_fetch_lengths','mysql_fetch_object',
-            'mysql_fetch_row','mysql_fieldflags','mysql_fieldlen',
-            'mysql_fieldname','mysql_fieldtable','mysql_fieldtype',
-            'mysql_field_flags','mysql_field_len','mysql_field_name',
-            'mysql_field_seek','mysql_field_table','mysql_field_type',
-            'mysql_freeresult','mysql_free_result','mysql_get_client_info',
-            'mysql_get_host_info','mysql_get_proto_info',
-            'mysql_get_server_info','mysql_info','mysql_insert_id',
-            'mysql_listdbs','mysql_listfields','mysql_listtables',
-            'mysql_list_dbs','mysql_list_fields','mysql_list_processes',
-            'mysql_list_tables','mysql_numfields','mysql_numrows',
-            'mysql_num_fields','mysql_num_rows','mysql_pconnect','mysql_ping',
-            'mysql_query','mysql_real_escape_string','mysql_result',
-            'mysql_selectdb','mysql_select_db','mysql_set_charset','mysql_stat',
-            'mysql_tablename','mysql_table_name','mysql_thread_id',
-            'mysql_unbuffered_query','mysqli_affected_rows','mysqli_autocommit',
-            'mysqli_bind_param','mysqli_bind_result','mysqli_change_user',
-            'mysqli_character_set_name','mysqli_client_encoding','mysqli_close',
-            'mysqli_commit','mysqli_connect','mysqli_connect_errno',
-            'mysqli_connect_error','mysqli_data_seek','mysqli_debug',
-            'mysqli_disable_reads_from_master','mysqli_disable_rpl_parse',
-            'mysqli_dump_debug_info','mysqli_embedded_server_end',
-            'mysqli_embedded_server_start','mysqli_enable_reads_from_master',
-            'mysqli_enable_rpl_parse','mysqli_errno','mysqli_error',
-            'mysqli_escape_string','mysqli_execute','mysqli_fetch',
-            'mysqli_fetch_array','mysqli_fetch_assoc','mysqli_fetch_field',
-            'mysqli_fetch_field_direct','mysqli_fetch_fields',
-            'mysqli_fetch_lengths','mysqli_fetch_object','mysqli_fetch_row',
-            'mysqli_field_count','mysqli_field_seek','mysqli_field_tell',
-            'mysqli_free_result','mysqli_get_charset','mysqli_get_client_info',
-            'mysqli_get_client_version','mysqli_get_host_info',
-            'mysqli_get_metadata','mysqli_get_proto_info',
-            'mysqli_get_server_info','mysqli_get_server_version',
-            'mysqli_get_warnings','mysqli_info','mysqli_init',
-            'mysqli_insert_id','mysqli_kill','mysqli_master_query',
-            'mysqli_more_results','mysqli_multi_query','mysqli_next_result',
-            'mysqli_num_fields','mysqli_num_rows','mysqli_options',
-            'mysqli_param_count','mysqli_ping','mysqli_prepare','mysqli_query',
-            'mysqli_real_connect','mysqli_real_escape_string',
-            'mysqli_real_query','mysqli_report','mysqli_rollback',
-            'mysqli_rpl_parse_enabled','mysqli_rpl_probe',
-            'mysqli_rpl_query_type','mysqli_select_db','mysqli_send_long_data',
-            'mysqli_send_query','mysqli_set_charset',
-            'mysqli_set_local_infile_default','mysqli_set_local_infile_handler',
-            'mysqli_set_opt','mysqli_slave_query','mysqli_sqlstate',
-            'mysqli_ssl_set','mysqli_stat','mysqli_stmt_affected_rows',
-            'mysqli_stmt_attr_get','mysqli_stmt_attr_set',
-            'mysqli_stmt_bind_param','mysqli_stmt_bind_result',
-            'mysqli_stmt_close','mysqli_stmt_data_seek','mysqli_stmt_errno',
-            'mysqli_stmt_error','mysqli_stmt_execute','mysqli_stmt_fetch',
-            'mysqli_stmt_field_count','mysqli_stmt_free_result',
-            'mysqli_stmt_get_warnings','mysqli_stmt_init',
-            'mysqli_stmt_insert_id','mysqli_stmt_num_rows',
-            'mysqli_stmt_param_count','mysqli_stmt_prepare','mysqli_stmt_reset',
-            'mysqli_stmt_result_metadata','mysqli_stmt_send_long_data',
-            'mysqli_stmt_sqlstate','mysqli_stmt_store_result',
-            'mysqli_store_result','mysqli_thread_id','mysqli_thread_safe',
-            'mysqli_use_result','mysqli_warning_count','natcasesort','natsort',
-            'new_xmldoc','next','ngettext','nl2br','nl_langinfo',
-            'ntuser_getdomaincontroller','ntuser_getusergroups',
-            'ntuser_getuserinfo','ntuser_getuserlist','number_format',
-            'ob_clean','ob_deflatehandler','ob_end_clean','ob_end_flush',
-            'ob_etaghandler','ob_flush','ob_get_clean','ob_get_contents',
-            'ob_get_flush','ob_get_length','ob_get_level','ob_get_status',
-            'ob_gzhandler','ob_iconv_handler','ob_implicit_flush',
-            'ob_inflatehandler','ob_list_handlers','ob_start','ob_tidyhandler',
-            'octdec','odbc_autocommit','odbc_binmode','odbc_close',
-            'odbc_close_all','odbc_columnprivileges','odbc_columns',
-            'odbc_commit','odbc_connect','odbc_cursor','odbc_data_source',
-            'odbc_do','odbc_error','odbc_errormsg','odbc_exec','odbc_execute',
-            'odbc_fetch_array','odbc_fetch_into','odbc_fetch_object',
-            'odbc_fetch_row','odbc_field_len','odbc_field_name',
-            'odbc_field_num','odbc_field_precision','odbc_field_scale',
-            'odbc_field_type','odbc_foreignkeys','odbc_free_result',
-            'odbc_gettypeinfo','odbc_longreadlen','odbc_next_result',
-            'odbc_num_fields','odbc_num_rows','odbc_pconnect','odbc_prepare',
-            'odbc_primarykeys','odbc_procedurecolumns','odbc_procedures',
-            'odbc_result','odbc_result_all','odbc_rollback','odbc_setoption',
-            'odbc_specialcolumns','odbc_statistics','odbc_tableprivileges',
-            'odbc_tables','opendir','openlog','openssl_csr_export',
-            'openssl_csr_export_to_file','openssl_csr_get_public_key',
-            'openssl_csr_get_subject','openssl_csr_new','openssl_csr_sign',
-            'openssl_error_string','openssl_free_key','openssl_get_privatekey',
-            'openssl_get_publickey','openssl_open','openssl_pkcs12_export',
-            'openssl_pkcs12_export_to_file','openssl_pkcs12_read',
-            'openssl_pkcs7_decrypt','openssl_pkcs7_encrypt',
-            'openssl_pkcs7_sign','openssl_pkcs7_verify','openssl_pkey_export',
-            'openssl_pkey_export_to_file','openssl_pkey_free',
-            'openssl_pkey_get_details','openssl_pkey_get_private',
-            'openssl_pkey_get_public','openssl_pkey_new',
-            'openssl_private_decrypt','openssl_private_encrypt',
-            'openssl_public_decrypt','openssl_public_encrypt','openssl_seal',
-            'openssl_sign','openssl_verify','openssl_x509_checkpurpose',
-            'openssl_x509_check_private_key','openssl_x509_export',
-            'openssl_x509_export_to_file','openssl_x509_free',
-            'openssl_x509_parse','openssl_x509_read','ord',
-            'output_add_rewrite_var','output_reset_rewrite_vars','overload',
-            'outputdebugstring','pack','parse_ini_file','parse_str','parse_url',
-            'parsekit_compile_file','parsekit_compile_string',
-            'parsekit_func_arginfo','parsekit_opcode_flags',
-            'parsekit_opcode_name','passthru','pathinfo','pclose',
-            'pdf_add_bookmark','pdf_add_launchlink','pdf_add_locallink',
-            'pdf_add_nameddest','pdf_add_note','pdf_add_pdflink',
-            'pdf_add_thumbnail','pdf_add_weblink','pdf_arc','pdf_arcn',
-            'pdf_attach_file','pdf_begin_font','pdf_begin_glyph',
-            'pdf_begin_page','pdf_begin_pattern','pdf_begin_template',
-            'pdf_circle','pdf_clip','pdf_close','pdf_close_image',
-            'pdf_close_pdi','pdf_close_pdi_page','pdf_closepath',
-            'pdf_closepath_fill_stroke','pdf_closepath_stroke','pdf_concat',
-            'pdf_continue_text','pdf_create_gstate','pdf_create_pvf',
-            'pdf_curveto','pdf_delete','pdf_delete_pvf','pdf_encoding_set_char',
-            'pdf_end_font','pdf_end_glyph','pdf_end_page','pdf_end_pattern',
-            'pdf_end_template','pdf_endpath','pdf_fill','pdf_fill_imageblock',
-            'pdf_fill_pdfblock','pdf_fill_stroke','pdf_fill_textblock',
-            'pdf_findfont','pdf_fit_image','pdf_fit_pdi_page',
-            'pdf_fit_textline','pdf_get_apiname','pdf_get_buffer',
-            'pdf_get_errmsg','pdf_get_errnum','pdf_get_parameter',
-            'pdf_get_pdi_parameter','pdf_get_pdi_value','pdf_get_value',
-            'pdf_initgraphics','pdf_lineto','pdf_load_font',
-            'pdf_load_iccprofile','pdf_load_image','pdf_makespotcolor',
-            'pdf_moveto','pdf_new','pdf_open_ccitt','pdf_open_file',
-            'pdf_open_image','pdf_open_image_file','pdf_open_pdi',
-            'pdf_open_pdi_page','pdf_place_image','pdf_place_pdi_page',
-            'pdf_process_pdi','pdf_rect','pdf_restore','pdf_rotate','pdf_save',
-            'pdf_scale','pdf_set_border_color','pdf_set_border_dash',
-            'pdf_set_border_style','pdf_set_gstate','pdf_set_info',
-            'pdf_set_parameter','pdf_set_text_pos','pdf_set_value',
-            'pdf_setcolor','pdf_setdash','pdf_setdashpattern','pdf_setflat',
-            'pdf_setfont','pdf_setlinecap','pdf_setlinejoin','pdf_setlinewidth',
-            'pdf_setmatrix','pdf_setmiterlimit','pdf_setpolydash','pdf_shading',
-            'pdf_shading_pattern','pdf_shfill','pdf_show','pdf_show_boxed',
-            'pdf_show_xy','pdf_skew','pdf_stringwidth','pdf_stroke',
-            'pdf_translate','pdo_drivers','pfsockopen','pg_affected_rows',
-            'pg_cancel_query','pg_clientencoding','pg_client_encoding',
-            'pg_close','pg_cmdtuples','pg_connect','pg_connection_busy',
-            'pg_connection_reset','pg_connection_status','pg_convert',
-            'pg_copy_from','pg_copy_to','pg_dbname','pg_delete','pg_end_copy',
-            'pg_errormessage','pg_escape_bytea','pg_escape_string','pg_exec',
-            'pg_execute','pg_fetch_all','pg_fetch_all_columns','pg_fetch_array',
-            'pg_fetch_assoc','pg_fetch_object','pg_fetch_result','pg_fetch_row',
-            'pg_fieldisnull','pg_fieldname','pg_fieldnum','pg_fieldprtlen',
-            'pg_fieldsize','pg_fieldtype','pg_field_is_null','pg_field_name',
-            'pg_field_num','pg_field_prtlen','pg_field_size','pg_field_table',
-            'pg_field_type','pg_field_type_oid','pg_free_result',
-            'pg_freeresult','pg_get_notify','pg_get_pid','pg_get_result',
-            'pg_getlastoid','pg_host','pg_insert','pg_last_error',
-            'pg_last_notice','pg_last_oid','pg_loclose','pg_locreate',
-            'pg_loexport','pg_loimport','pg_loopen','pg_loread','pg_loreadall',
-            'pg_lounlink','pg_lowrite','pg_lo_close','pg_lo_create',
-            'pg_lo_export','pg_lo_import','pg_lo_open','pg_lo_read',
-            'pg_lo_read_all','pg_lo_seek','pg_lo_tell','pg_lo_unlink',
-            'pg_lo_write','pg_meta_data','pg_numfields','pg_numrows',
-            'pg_num_fields','pg_num_rows','pg_options','pg_parameter_status',
-            'pg_pconnect','pg_ping','pg_port','pg_prepare','pg_put_line',
-            'pg_query','pg_query_params','pg_result','pg_result_error',
-            'pg_result_error_field','pg_result_seek','pg_result_status',
-            'pg_select','pg_send_execute','pg_send_prepare','pg_send_query',
-            'pg_send_query_params','pg_set_client_encoding',
-            'pg_set_error_verbosity','pg_setclientencoding','pg_trace',
-            'pg_transaction_status','pg_tty','pg_unescape_bytea','pg_untrace',
-            'pg_update','pg_version','php_egg_logo_guid','php_ini_loaded_file',
-            'php_ini_scanned_files','php_logo_guid','php_real_logo_guid',
-            'php_sapi_name','php_strip_whitespace','php_uname','phpcredits',
-            'phpdoc_xml_from_string','phpinfo','phpversion','pi','png2wbmp',
-            'pop3_close','pop3_delete_message','pop3_get_account_size',
-            'pop3_get_message','pop3_get_message_count',
-            'pop3_get_message_header','pop3_get_message_ids',
-            'pop3_get_message_size','pop3_get_message_sizes','pop3_open',
-            'pop3_undelete','popen','pos','posix_ctermid','posix_errno',
-            'posix_getcwd','posix_getegid','posix_geteuid','posix_getgid',
-            'posix_getgrgid','posix_getgrnam','posix_getgroups',
-            'posix_getlogin','posix_getpgid','posix_getpgrp','posix_getpid',
-            'posix_getppid','posix_getpwnam','posix_getpwuid','posix_getrlimit',
-            'posix_getsid','posix_getuid','posix_get_last_error','posix_isatty',
-            'posix_kill','posix_mkfifo','posix_setegid','posix_seteuid',
-            'posix_setgid','posix_setpgid','posix_setsid','posix_setuid',
-            'posix_strerror','posix_times','posix_ttyname','posix_uname','pow',
-            'preg_grep','preg_last_error','preg_match','preg_match_all',
-            'preg_quote','preg_replace','preg_replace_callback','preg_split',
-            'prev','print_r','printf','proc_close','proc_get_status',
-            'proc_open','proc_terminate','putenv','quoted_printable_decode',
-            'quotemeta','rad2deg','radius_acct_open','radius_add_server',
-            'radius_auth_open','radius_close','radius_config',
-            'radius_create_request','radius_cvt_addr','radius_cvt_int',
-            'radius_cvt_string','radius_demangle','radius_demangle_mppe_key',
-            'radius_get_attr','radius_get_vendor_attr','radius_put_addr',
-            'radius_put_attr','radius_put_int','radius_put_string',
-            'radius_put_vendor_addr','radius_put_vendor_attr',
-            'radius_put_vendor_int','radius_put_vendor_string',
-            'radius_request_authenticator','radius_send_request',
-            'radius_server_secret','radius_strerror','rand','range',
-            'rawurldecode','rawurlencode','read_exif_data','readdir','readfile',
-            'readgzfile','readlink','realpath','reg_close_key','reg_create_key',
-            'reg_enum_key','reg_enum_value','reg_get_value','reg_open_key',
-            'reg_set_value','register_shutdown_function',
-            'register_tick_function','rename','res_close','res_get','res_list',
-            'res_list_type','res_open','res_set','reset',
-            'restore_error_handler','restore_include_path','rewind','rewinddir',
-            'rmdir','round','rsort','rtrim','runkit_class_adopt',
-            'runkit_class_emancipate','runkit_constant_add',
-            'runkit_constant_redefine','runkit_constant_remove',
-            'runkit_default_property_add','runkit_function_add',
-            'runkit_function_copy','runkit_function_redefine',
-            'runkit_function_remove','runkit_function_rename','runkit_import',
-            'runkit_lint','runkit_lint_file','runkit_method_add',
-            'runkit_method_copy','runkit_method_redefine',
-            'runkit_method_remove','runkit_method_rename','runkit_object_id',
-            'runkit_return_value_used','runkit_sandbox_output_handler',
-            'runkit_superglobals','runkit_zval_inspect','scandir','sem_acquire',
-            'sem_get','sem_release','sem_remove','serialize',
-            'session_cache_expire','session_cache_limiter','session_commit',
-            'session_decode','session_destroy','session_encode',
-            'session_get_cookie_params','session_id','session_is_registered',
-            'session_module_name','session_name','session_regenerate_id',
-            'session_register','session_save_path','session_set_cookie_params',
-            'session_set_save_handler','session_start','session_unregister',
-            'session_unset','session_write_close','set_content',
-            'set_error_handler','set_file_buffer','set_include_path',
-            'set_magic_quotes_runtime','set_socket_blocking','set_time_limit',
-            'setcookie','setlocale','setrawcookie','settype','sha1','sha1_file',
-            'shell_exec','shmop_close','shmop_delete','shmop_open','shmop_read',
-            'shmop_size','shmop_write','shm_attach','shm_detach','shm_get_var',
-            'shm_put_var','shm_remove','shm_remove_var','show_source','shuffle',
-            'similar_text','simplexml_import_dom','simplexml_load_file',
-            'simplexml_load_string','sin','sinh','sizeof','sleep','smtp_close',
-            'smtp_cmd_data','smtp_cmd_mail','smtp_cmd_rcpt','smtp_connect',
-            'snmp_get_quick_print','snmp_get_valueretrieval','snmp_read_mib',
-            'snmp_set_quick_print','snmp_set_valueretrieval','snmp2_get',
-            'snmp2_getnext','snmp2_real_walk','snmp2_set','snmp2_walk',
-            'snmp3_get','snmp3_getnext','snmp3_real_walk','snmp3_set',
-            'snmp3_walk','snmpget','snmpgetnext','snmprealwalk','snmpset',
-            'snmpwalk','snmpwalkoid','socket_accept','socket_bind',
-            'socket_clear_error','socket_close','socket_connect',
-            'socket_create','socket_create_listen','socket_create_pair',
-            'socket_getopt','socket_getpeername','socket_getsockname',
-            'socket_get_option','socket_get_status','socket_iovec_add',
-            'socket_iovec_alloc','socket_iovec_delete','socket_iovec_fetch',
-            'socket_iovec_free','socket_iovec_set','socket_last_error',
-            'socket_listen','socket_read','socket_readv','socket_recv',
-            'socket_recvfrom','socket_recvmsg','socket_select','socket_send',
-            'socket_sendmsg','socket_sendto','socket_setopt','socket_set_block',
-            'socket_set_blocking','socket_set_nonblock','socket_set_option',
-            'socket_set_timeout','socket_shutdown','socket_strerror',
-            'socket_write','socket_writev','sort','soundex','spl_autoload',
-            'spl_autoload_call','spl_autoload_extensions',
-            'spl_autoload_functions','spl_autoload_register',
-            'spl_autoload_unregister','spl_classes','spl_object_hash','split',
-            'spliti','sprintf','sql_regcase','sqlite_array_query',
-            'sqlite_busy_timeout','sqlite_changes','sqlite_close',
-            'sqlite_column','sqlite_create_aggregate','sqlite_create_function',
-            'sqlite_current','sqlite_error_string','sqlite_escape_string',
-            'sqlite_exec','sqlite_factory','sqlite_fetch_all',
-            'sqlite_fetch_array','sqlite_fetch_column_types',
-            'sqlite_fetch_object','sqlite_fetch_single','sqlite_fetch_string',
-            'sqlite_field_name','sqlite_has_more','sqlite_has_prev',
-            'sqlite_last_error','sqlite_last_insert_rowid','sqlite_libencoding',
-            'sqlite_libversion','sqlite_next','sqlite_num_fields',
-            'sqlite_num_rows','sqlite_open','sqlite_popen','sqlite_prev',
-            'sqlite_query','sqlite_rewind','sqlite_seek','sqlite_single_query',
-            'sqlite_udf_decode_binary','sqlite_udf_encode_binary',
-            'sqlite_unbuffered_query','sqlite_valid','sqrt','srand','sscanf',
-            'ssh2_auth_hostbased_file','ssh2_auth_none','ssh2_auth_password',
-            'ssh2_auth_pubkey_file','ssh2_connect','ssh2_exec',
-            'ssh2_fetch_stream','ssh2_fingerprint','ssh2_forward_accept',
-            'ssh2_forward_listen','ssh2_methods_negotiated','ssh2_poll',
-            'ssh2_publickey_add','ssh2_publickey_init','ssh2_publickey_list',
-            'ssh2_publickey_remove','ssh2_scp_recv','ssh2_scp_send','ssh2_sftp',
-            'ssh2_sftp_lstat','ssh2_sftp_mkdir','ssh2_sftp_readlink',
-            'ssh2_sftp_realpath','ssh2_sftp_rename','ssh2_sftp_rmdir',
-            'ssh2_sftp_stat','ssh2_sftp_symlink','ssh2_sftp_unlink',
-            'ssh2_shell','ssh2_tunnel','stat','stats_absolute_deviation',
-            'stats_cdf_beta','stats_cdf_binomial','stats_cdf_cauchy',
-            'stats_cdf_chisquare','stats_cdf_exponential','stats_cdf_f',
-            'stats_cdf_gamma','stats_cdf_laplace','stats_cdf_logistic',
-            'stats_cdf_negative_binomial','stats_cdf_noncentral_chisquare',
-            'stats_cdf_noncentral_f','stats_cdf_noncentral_t',
-            'stats_cdf_normal','stats_cdf_poisson','stats_cdf_t',
-            'stats_cdf_uniform','stats_cdf_weibull','stats_covariance',
-            'stats_dens_beta','stats_dens_cauchy','stats_dens_chisquare',
-            'stats_dens_exponential','stats_dens_f','stats_dens_gamma',
-            'stats_dens_laplace','stats_dens_logistic','stats_dens_normal',
-            'stats_dens_pmf_binomial','stats_dens_pmf_hypergeometric',
-            'stats_dens_pmf_negative_binomial','stats_dens_pmf_poisson',
-            'stats_dens_t','stats_dens_uniform','stats_dens_weibull',
-            'stats_harmonic_mean','stats_kurtosis','stats_rand_gen_beta',
-            'stats_rand_gen_chisquare','stats_rand_gen_exponential',
-            'stats_rand_gen_f','stats_rand_gen_funiform','stats_rand_gen_gamma',
-            'stats_rand_gen_ipoisson','stats_rand_gen_iuniform',
-            'stats_rand_gen_noncenral_f','stats_rand_gen_noncentral_chisquare',
-            'stats_rand_gen_noncentral_t','stats_rand_gen_normal',
-            'stats_rand_gen_t','stats_rand_getsd','stats_rand_ibinomial',
-            'stats_rand_ibinomial_negative','stats_rand_ignlgi',
-            'stats_rand_phrase_to_seeds','stats_rand_ranf','stats_rand_setall',
-            'stats_skew','stats_standard_deviation','stats_stat_binomial_coef',
-            'stats_stat_correlation','stats_stat_factorial',
-            'stats_stat_independent_t','stats_stat_innerproduct',
-            'stats_stat_paired_t','stats_stat_percentile','stats_stat_powersum',
-            'stats_variance','strcasecmp','strchr','strcmp','strcoll','strcspn',
-            'stream_bucket_append','stream_bucket_make_writeable',
-            'stream_bucket_new','stream_bucket_prepend','stream_context_create',
-            'stream_context_get_default','stream_context_get_options',
-            'stream_context_set_default','stream_context_set_option',
-            'stream_context_set_params','stream_copy_to_stream',
-            'stream_encoding','stream_filter_append','stream_filter_prepend',
-            'stream_filter_register','stream_filter_remove',
-            'stream_get_contents','stream_get_filters','stream_get_line',
-            'stream_get_meta_data','stream_get_transports',
-            'stream_get_wrappers','stream_is_local',
-            'stream_notification_callback','stream_register_wrapper',
-            'stream_resolve_include_path','stream_select','stream_set_blocking',
-            'stream_set_timeout','stream_set_write_buffer',
-            'stream_socket_accept','stream_socket_client',
-            'stream_socket_enable_crypto','stream_socket_get_name',
-            'stream_socket_pair','stream_socket_recvfrom',
-            'stream_socket_sendto','stream_socket_server',
-            'stream_socket_shutdown','stream_supports_lock',
-            'stream_wrapper_register','stream_wrapper_restore',
-            'stream_wrapper_unregister','strftime','stripcslashes','stripos',
-            'stripslashes','strip_tags','stristr','strlen','strnatcasecmp',
-            'strnatcmp','strpbrk','strncasecmp','strncmp','strpos','strrchr',
-            'strrev','strripos','strrpos','strspn','strstr','strtok',
-            'strtolower','strtotime','strtoupper','strtr','strval',
-            'str_ireplace','str_pad','str_repeat','str_replace','str_rot13',
-            'str_split','str_shuffle','str_word_count','substr',
-            'substr_compare','substr_count','substr_replace','svn_add',
-            'svn_auth_get_parameter','svn_auth_set_parameter','svn_cat',
-            'svn_checkout','svn_cleanup','svn_client_version','svn_commit',
-            'svn_diff','svn_export','svn_fs_abort_txn','svn_fs_apply_text',
-            'svn_fs_begin_txn2','svn_fs_change_node_prop','svn_fs_check_path',
-            'svn_fs_contents_changed','svn_fs_copy','svn_fs_delete',
-            'svn_fs_dir_entries','svn_fs_file_contents','svn_fs_file_length',
-            'svn_fs_is_dir','svn_fs_is_file','svn_fs_make_dir',
-            'svn_fs_make_file','svn_fs_node_created_rev','svn_fs_node_prop',
-            'svn_fs_props_changed','svn_fs_revision_prop',
-            'svn_fs_revision_root','svn_fs_txn_root','svn_fs_youngest_rev',
-            'svn_import','svn_info','svn_log','svn_ls','svn_repos_create',
-            'svn_repos_fs','svn_repos_fs_begin_txn_for_commit',
-            'svn_repos_fs_commit_txn','svn_repos_hotcopy','svn_repos_open',
-            'svn_repos_recover','svn_status','svn_update','symlink',
-            'sys_get_temp_dir','syslog','system','tan','tanh','tempnam',
-            'textdomain','thread_get','thread_include','thread_lock',
-            'thread_lock_try','thread_mutex_destroy','thread_mutex_init',
-            'thread_set','thread_start','thread_unlock','tidy_access_count',
-            'tidy_clean_repair','tidy_config_count','tidy_diagnose',
-            'tidy_error_count','tidy_get_body','tidy_get_config',
-            'tidy_get_error_buffer','tidy_get_head','tidy_get_html',
-            'tidy_get_html_ver','tidy_get_output','tidy_get_release',
-            'tidy_get_root','tidy_get_status','tidy_getopt','tidy_is_xhtml',
-            'tidy_is_xml','tidy_parse_file','tidy_parse_string',
-            'tidy_repair_file','tidy_repair_string','tidy_warning_count','time',
-            'timezone_abbreviations_list','timezone_identifiers_list',
-            'timezone_name_from_abbr','timezone_name_get','timezone_offset_get',
-            'timezone_open','timezone_transitions_get','tmpfile',
-            'token_get_all','token_name','touch','trigger_error',
-            'transliterate','transliterate_filters_get','trim','uasort',
-            'ucfirst','ucwords','uksort','umask','uniqid','unixtojd','unlink',
-            'unpack','unregister_tick_function','unserialize','unset',
-            'urldecode','urlencode','user_error','use_soap_error_handler',
-            'usleep','usort','utf8_decode','utf8_encode','var_dump',
-            'var_export','variant_abs','variant_add','variant_and',
-            'variant_cast','variant_cat','variant_cmp',
-            'variant_date_from_timestamp','variant_date_to_timestamp',
-            'variant_div','variant_eqv','variant_fix','variant_get_type',
-            'variant_idiv','variant_imp','variant_int','variant_mod',
-            'variant_mul','variant_neg','variant_not','variant_or',
-            'variant_pow','variant_round','variant_set','variant_set_type',
-            'variant_sub','variant_xor','version_compare','virtual','vfprintf',
-            'vprintf','vsprintf','wddx_add_vars','wddx_deserialize',
-            'wddx_packet_end','wddx_packet_start','wddx_serialize_value',
-            'wddx_serialize_vars','win_beep','win_browse_file',
-            'win_browse_folder','win_create_link','win_message_box',
-            'win_play_wav','win_shell_execute','win32_create_service',
-            'win32_delete_service','win32_get_last_control_message',
-            'win32_ps_list_procs','win32_ps_stat_mem','win32_ps_stat_proc',
-            'win32_query_service_status','win32_scheduler_delete_task',
-            'win32_scheduler_enum_tasks','win32_scheduler_get_task_info',
-            'win32_scheduler_run','win32_scheduler_set_task_info',
-            'win32_set_service_status','win32_start_service',
-            'win32_start_service_ctrl_dispatcher','win32_stop_service',
-            'wordwrap','xml_error_string','xml_get_current_byte_index',
-            'xml_get_current_column_number','xml_get_current_line_number',
-            'xml_get_error_code','xml_parse','xml_parser_create',
-            'xml_parser_create_ns','xml_parser_free','xml_parser_get_option',
-            'xml_parser_set_option','xml_parse_into_struct',
-            'xml_set_character_data_handler','xml_set_default_handler',
-            'xml_set_element_handler','xml_set_end_namespace_decl_handler',
-            'xml_set_external_entity_ref_handler',
-            'xml_set_notation_decl_handler','xml_set_object',
-            'xml_set_processing_instruction_handler',
-            'xml_set_start_namespace_decl_handler',
-            'xml_set_unparsed_entity_decl_handler','xmldoc','xmldocfile',
-            'xmlrpc_decode','xmlrpc_decode_request','xmlrpc_encode',
-            'xmlrpc_encode_request','xmlrpc_get_type','xmlrpc_is_fault',
-            'xmlrpc_parse_method_descriptions',
-            'xmlrpc_server_add_introspection_data','xmlrpc_server_call_method',
-            'xmlrpc_server_create','xmlrpc_server_destroy',
-            'xmlrpc_server_register_introspection_callback',
-            'xmlrpc_server_register_method','xmlrpc_set_type','xmltree',
-            'xmlwriter_end_attribute','xmlwriter_end_cdata',
-            'xmlwriter_end_comment','xmlwriter_end_document',
-            'xmlwriter_end_dtd','xmlwriter_end_dtd_attlist',
-            'xmlwriter_end_dtd_element','xmlwriter_end_dtd_entity',
-            'xmlwriter_end_element','xmlwriter_end_pi','xmlwriter_flush',
-            'xmlwriter_full_end_element','xmlwriter_open_memory',
-            'xmlwriter_open_uri','xmlwriter_output_memory',
-            'xmlwriter_set_indent','xmlwriter_set_indent_string',
-            'xmlwriter_start_attribute','xmlwriter_start_attribute_ns',
-            'xmlwriter_start_cdata','xmlwriter_start_comment',
-            'xmlwriter_start_document','xmlwriter_start_dtd',
-            'xmlwriter_start_dtd_attlist','xmlwriter_start_dtd_element',
-            'xmlwriter_start_dtd_entity','xmlwriter_start_element',
-            'xmlwriter_start_element_ns','xmlwriter_start_pi','xmlwriter_text',
-            'xmlwriter_write_attribute','xmlwriter_write_attribute_ns',
-            'xmlwriter_write_cdata','xmlwriter_write_comment',
-            'xmlwriter_write_dtd','xmlwriter_write_dtd_attlist',
-            'xmlwriter_write_dtd_element','xmlwriter_write_dtd_entity',
-            'xmlwriter_write_element','xmlwriter_write_element_ns',
-            'xmlwriter_write_pi','xmlwriter_write_raw','xpath_eval',
-            'xpath_eval_expression','xpath_new_context','xpath_register_ns',
-            'xpath_register_ns_auto','xptr_eval','xptr_new_context','yp_all',
-            'yp_cat','yp_errno','yp_err_string','yp_first',
-            'yp_get_default_domain','yp_master','yp_match','yp_next','yp_order',
-            'zend_current_obfuscation_level','zend_get_cfg_var','zend_get_id',
-            'zend_loader_current_file','zend_loader_enabled',
-            'zend_loader_file_encoded','zend_loader_file_licensed',
-            'zend_loader_install_license','zend_loader_version',
-            'zend_logo_guid','zend_match_hostmasks','zend_obfuscate_class_name',
-            'zend_obfuscate_function_name','zend_optimizer_version',
-            'zend_runtime_obfuscate','zend_version','zip_close',
-            'zip_entry_close','zip_entry_compressedsize',
-            'zip_entry_compressionmethod','zip_entry_filesize','zip_entry_name',
-            'zip_entry_open','zip_entry_read','zip_open','zip_read',
-            'zlib_get_coding_type'
-            ),
-        4 => array(
-            'DEFAULT_INCLUDE_PATH', 'DIRECTORY_SEPARATOR', 'E_ALL',
-            'E_COMPILE_ERROR', 'E_COMPILE_WARNING', 'E_CORE_ERROR',
-            'E_CORE_WARNING', 'E_ERROR', 'E_NOTICE', 'E_PARSE', 'E_STRICT',
-            'E_USER_ERROR', 'E_USER_NOTICE', 'E_USER_WARNING', 'E_WARNING',
-            'ENT_COMPAT','ENT_QUOTES','ENT_NOQUOTES',
-            'false', 'null', 'PEAR_EXTENSION_DIR', 'PEAR_INSTALL_DIR',
-            'PHP_BINDIR', 'PHP_CONFIG_FILE_PATH', 'PHP_DATADIR',
-            'PHP_EXTENSION_DIR', 'PHP_LIBDIR',
-            'PHP_LOCALSTATEDIR', 'PHP_OS',
-            'PHP_OUTPUT_HANDLER_CONT', 'PHP_OUTPUT_HANDLER_END',
-            'PHP_OUTPUT_HANDLER_START', 'PHP_SYSCONFDIR',
-            'PHP_VERSION', 'true', '__CLASS__', '__FILE__', '__FUNCTION__',
-            '__LINE__', '__METHOD__'
-            )
-        ),
-    'SYMBOLS' => array(
-        1 => array(
-            '<'.'%', '<'.'%=', '%'.'>', '<'.'?', '<'.'?=', '?'.'>'
-            ),
-        0 => array(
-            '(', ')', '[', ']', '{', '}',
-            '!', '@', '%', '&', '|', '/',
-            '<', '>',
-            '=', '-', '+', '*',
-            '.', ':', ',', ';'
-            )
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false,
-        2 => false,
-        3 => false,
-        4 => false
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #b1b100;',
-            2 => 'color: #000000; font-weight: bold;',
-            3 => 'color: #990000;',
-            4 => 'color: #009900; font-weight: bold;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #666666; font-style: italic;',
-            2 => 'color: #666666; font-style: italic;',
-            3 => 'color: #0000cc; font-style: italic;',
-            4 => 'color: #009933; font-style: italic;',
-            'MULTI' => 'color: #666666; font-style: italic;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #000099; font-weight: bold;',
-            1 => 'color: #000099; font-weight: bold;',
-            2 => 'color: #660099; font-weight: bold;',
-            3 => 'color: #660099; font-weight: bold;',
-            4 => 'color: #006699; font-weight: bold;',
-            5 => 'color: #006699; font-weight: bold; font-style: italic;',
-            6 => 'color: #009933; font-weight: bold;',
-            'HARD' => 'color: #000099; font-weight: bold;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #009900;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #0000ff;',
-            'HARD' => 'color: #0000ff;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #cc66cc;',
-            GESHI_NUMBER_OCT_PREFIX => 'color: #208080;',
-            GESHI_NUMBER_HEX_PREFIX => 'color: #208080;',
-            GESHI_NUMBER_FLT_SCI_ZERO => 'color:#800080;',
-            ),
-        'METHODS' => array(
-            1 => 'color: #004000;',
-            2 => 'color: #004000;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #339933;',
-            1 => 'color: #000000; font-weight: bold;'
-            ),
-        'REGEXPS' => array(
-            0 => 'color: #000088;'
-            ),
-        'SCRIPT' => array(
-            0 => '',
-            1 => '',
-            2 => '',
-            3 => '',
-            4 => '',
-            5 => ''
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => 'http://www.php.net/{FNAMEL}',
-        4 => ''
-        ),
-    'OOLANG' => true,
-    'OBJECT_SPLITTERS' => array(
-        1 => '-&gt;',
-        2 => '::'
-        ),
-    'REGEXPS' => array(
-        //Variables
-        0 => "[\\$]+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*"
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_MAYBE,
-    'SCRIPT_DELIMITERS' => array(
-        0 => array(
-            '<'.'?php' => '?'.'>'
-            ),
-        1 => array(
-            '<'.'?' => '?'.'>'
-            ),
-        2 => array(
-            '<'.'%' => '%'.'>'
-            ),
-        3 => array(
-            '<script language="php">' => '</script>'
-            ),
-        4 => "/(?P<start><\\?(?>php\b)?)(?:".
-            "(?>[^\"'?\\/<]+)|".
-            "\\?(?!>)|".
-            "(?>'(?>[^'\\\\]|\\\\'|\\\\\\\|\\\\)*')|".
-            "(?>\"(?>[^\"\\\\]|\\\\\"|\\\\\\\\|\\\\)*\")|".
-            "(?>\\/\\*(?>[^\\*]|(?!\\*\\/)\\*)*\\*\\/)|".
-            "\\/\\/(?>.*?(?:\\?>|$))|".
-            "#(?>.*?(?:\\?>|$))|".
-            "\\/(?=[^*\\/])|".
-            "<(?!<<)|".
-            "<<<(?P<phpdoc>\w+)\s.*?\s\k<phpdoc>".
-            ")*?(?P<end>\\?>|\Z)/sm",
-        5 => "/(?P<start><%)(?:".
-            "(?>[^\"'%\\/<]+)|".
-            "%(?!>)|".
-            "(?>'(?>[^'\\\\]|\\\\'|\\\\\\\|\\\\)*')|".
-            "(?>\"(?>[^\\\"\\\\]|\\\\\"|\\\\\\\\|\\\\)*\")|".
-            "(?>\\/\\*(?>[^\\*]|(?!\\*\\/)\\*)*\\*\\/)|".
-            "\\/\\/(?>.*?(?:%>|$))|".
-            "#(?>.*?(?:%>|$))|".
-            "\\/(?=[^*\\/])|".
-            "<(?!<<)|".
-            "<<<(?P<phpdoc>\w+)\s.*?\s\k<phpdoc>".
-            ")*?(?P<end>%>|\Z)/sm",
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        0 => true,
-        1 => true,
-        2 => true,
-        3 => true,
-        4 => true,
-        5 => true
-        ),
-    'TAB_WIDTH' => 4
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/pic16.php b/wiki/vendor/geshi/geshi/src/geshi/pic16.php
deleted file mode 100644
index bd742ad..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/pic16.php
+++ /dev/null
@@ -1,139 +0,0 @@
-<?php
-/*************************************************************************************
- * pic16.php
- * -------
- * Author: Phil Mattison (mattison@ohmikron.com)
- * Copyright: (c) 2008 Ohmikron Corp. (http://www.ohmikron.com/)
- * Release Version: 1.0.9.0
- * Date Started: 2008/07/30
- *
- * PIC16 Assembler language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2008/07/30 (1.0.8)
- *   -  First Release
- *
- * TODO (updated 2008/07/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' => 'PIC16',
-    'COMMENT_SINGLE' => array(1 => ';'),
-    'COMMENT_MULTI' => array(),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array("'", '"'),
-    'ESCAPE_CHAR' => '\\',
-    'KEYWORDS' => array(
-        /*Instructions*/
-        1 => array(
-            'addcf','adddcf','addlw','addwf','andlw','andwf','bc','bcf','bdc',
-            'bnc','bndc','bnz','bsf','btfsc','btfss','bz','call','clrc','clrdc',
-            'clrf','clrw','clrwdt','clrz','comf','decf','goto','incf','incfsz',
-            'iorlw','iorwf','lcall','lgoto','movf','movfw','movlw','movwf',
-            'option','negf','nop','retfie','retlw','return','rlf','rrf','setc',
-            'setdc','setz','skpc','skpdc','skpnc','skpndc','skpnz','skpz',
-            'sleep','subcf','subdcf','sublw','subwf','swapf','tris','tstf',
-            'xorlw','xorwf'
-            ),
-        /*Registers*/
-        2 => array(
-            'INDF','TMR0','OPTION','PCL','STATUS','FSR','PORTA','PORTB','PORTC',
-            'PORTD','PORTE','PORTF','TRISA','TRISB','TRISC','TRISD','TRISE',
-            'TRISF','PCLATH','INTCON','PIR1','PIE1','PCON','CMCON','VRCON',
-            'F','W'
-            ),
-        /*Directives*/
-        3 => array(
-            '_BADRAM','BANKISEL','BANKSEL','CBLOCK','CODE','_CONFIG','CONSTANT',
-            'DA','DATA','DB','DE','#DEFINE','DT','DW','ELSE','END','ENDC',
-            'ENDIF','ENDM','ENDW','EQU','ERROR','ERRORLEVEL','EXITM','EXPAND',
-            'EXTERN','FILL','GLOBAL','IDATA','_IDLOCS','IF','IFDEF','IFNDEF',
-            'INCLUDE','#INCLUDE','LIST','LOCAL','MACRO','_MAXRAM','MESSG',
-            'NOEXPAND','NOLIST','ORG','PAGE','PAGESEL','PROCESSOR','RADIX',
-            'RES','SET','SPACE','SUBTITLE','TITLE','UDATA','UDATA_ACS',
-            'UDATA_OVR','UDATA_SHR','#UNDEFINE','VARIABLE','WHILE',
-            'D','H','O','B','A'
-            ),
-        ),
-    'SYMBOLS' => array('=','.',',',':'),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false,
-        2 => false,
-        3 => false
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #0000a0; font-weight: bold;',
-            2 => 'color: #aa3300; font-weight: bold;',
-            3 => 'color: #0000ff;',
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #00a000;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #ff0000;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #0000ff;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #ff7700;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #ff7700;'
-            ),
-        'METHODS' => array(
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #7777ff;'
-            ),
-        'REGEXPS' => array(),
-        'SCRIPT' => array()
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => ''
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(),
-    'NUMBERS' =>
-        GESHI_NUMBER_INT_BASIC |
-        GESHI_NUMBER_BIN_SUFFIX |
-        GESHI_NUMBER_HEX_PREFIX |
-        GESHI_NUMBER_HEX_SUFFIX,
-    '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_<\|%"
-            )
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/pike.php b/wiki/vendor/geshi/geshi/src/geshi/pike.php
deleted file mode 100644
index 12dabf2..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/pike.php
+++ /dev/null
@@ -1,101 +0,0 @@
-<?php
-/*************************************************************************************
- * pike.php
- * --------
- * Author: Rick E. (codeblock@eighthbit.net)
- * Copyright: (c) 2009 Rick E.
- * Release Version: 1.0.9.0
- * Date Started: 2009/12/10
- *
- * Pike language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2009/12/25 (1.0.8.6)
- *  -  First Release
- *
- * TODO (updated 2009/12/25)
- * -------------------------
- *
- *
- *************************************************************************************
- *
- *     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' => 'Pike',
-    'COMMENT_SINGLE' => array(1 => '//'),
-    'COMMENT_MULTI' => array('/*' => '*/'),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array('"'),
-    'ESCAPE_CHAR' => '\\',
-    'KEYWORDS' => array(
-        1 => array(
-            'goto', 'break', 'continue', 'return', 'case', 'default', 'if',
-            'else', 'switch', 'while', 'foreach', 'do', 'for', 'gauge',
-            'destruct', 'lambda', 'inherit', 'import', 'typeof', 'catch',
-            'inline', 'nomask', 'private', 'protected', 'public', 'static'
-            )
-        ),
-    'SYMBOLS' => array(
-        1 => array(
-            '(', ')', '{', '}', '[', ']', '+', '-', '*', '/', '%', '=', '!', '&', '|', '?', ';'
-            )
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => true
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #b1b100;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #666666; font-style: italic;',
-            '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(
-            0 => 'color: #004000;'
-            ),
-        'SYMBOLS' => array(
-            1 => 'color: #339933;'
-            ),
-        'REGEXPS' => array(),
-        'SCRIPT' => array()
-        ),
-    'URLS' => array(1 => ''),
-    'OOLANG' => true,
-    'OBJECT_SPLITTERS' => array(1 => '.'),
-    'REGEXPS' => array(),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(),
-    'HIGHLIGHT_STRICT_BLOCK' => array()
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/pixelbender.php b/wiki/vendor/geshi/geshi/src/geshi/pixelbender.php
deleted file mode 100644
index d7bcc08..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/pixelbender.php
+++ /dev/null
@@ -1,173 +0,0 @@
-<?php
-/*************************************************************************************
- * pixelbender.php
- * ----------------
- * Author: Richard Olsson (r@richardolsson.se)
- * Copyright: (c) 2008 Richard Olsson (richardolsson.se)
- * Release Version: 1.0.9.0
- * Date Started: 2008/11/16
- *
- * Pixel Bender 1.0 language file for GeSHi.
- *
- *
- * Please feel free to modify this file, although I would greatly appreciate
- * it if you would then send some feedback on why the file needed to be
- * changed, using the e-mail address above.
- *
- *
- * The colors are inspired by those used in the Pixel Bender Toolkit, with
- * some slight modifications.
- *
- * For more info on Pixel Bender, see the Adobe Labs Wiki article at
- * http://labs.adobe.com/wiki/index.php/Pixel_Bender_Toolkit.
- *
- * Keyword groups are defined as follows (groups marked with an asterisk
- * inherit their names from terminology used in the language specification
- * included with the Pixel Bender Toolkit, see URL above.)
- *
- *  1. languageVersion & kernel keywords
- *  2. Kernel Members *
- *  3. Types *
- *  4. Statements * & qualifiers (in, out, inout)
- *  5. Built-in functions *
- *  6. Meta-data names
- *  7. Preprocessor & Pre-defined symbols *
- *
- *
- * CHANGES
- * -------
- * 2008/11/16 (1.0.8.2)
- *  - Initial release
- *
- * TODO (updated 2008/11/16)
- * -------------------------
- *
- *************************************************************************************
- *
- *     This file is part of GeSHi.
- *
- *   GeSHi is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   GeSHi is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with GeSHi; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- ************************************************************************************/
-
-$language_data = array(
-    'LANG_NAME' => 'Pixel Bender 1.0',
-    'COMMENT_SINGLE' => array(1 => '//'),
-    'COMMENT_MULTI' => array('/*' => '*/'),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array('"'),
-    'ESCAPE_CHAR' => '\\',
-    'KEYWORDS' => array(
-        1 => array(
-            'languageVersion', 'kernel'
-            ),
-        2 => array(
-            'import', 'parameter', 'dependent', 'const', 'input', 'output',
-            'evaluatePixel', 'evaluateDependents', 'needed', 'changed', 'generated'
-            ),
-        3 => array(
-            'bool', 'bool2', 'bool3', 'bool4', 'int', 'int2', 'int3', 'int4',
-            'float', 'float2', 'float3', 'float4', 'float2x2', 'float3x3', 'float4x4',
-            'pixel2', 'pixel3', 'pixel4', 'region', 'image1', 'image2', 'image3', 'image4',
-            'imageRef', 'void'
-            ),
-        4 => array(
-            'in', 'out', 'inout', 'if', 'else', 'for', 'while', 'do', 'break',
-            'continue', 'return'
-            ),
-        5 => array(
-            'radians', 'degrees', 'sin', 'cos', 'tan', 'asin', 'acos', 'atan', 'pow',
-            'exp', 'exp2', 'log', 'log2', 'sqrt', 'inverseSqrt', 'abs', 'sign', 'floor',
-            'ceil', 'fract', 'mod', 'min', 'max', 'step', 'clamp', 'mix', 'smoothStep',
-            'length', 'distance', 'dot', 'cross', 'normalize', 'matrixCompMult', 'lessThan',
-            'lessThanEqual', 'greaterThan', 'greaterThanEqual', 'equal', 'notEqual', 'any',
-            'all', 'not', 'nowhere', 'everywhere', 'transform', 'union', 'intersect',
-            'outset', 'inset', 'bounds', 'isEmpty', 'sample', 'sampleLinear', 'sampleNearest',
-            'outCoord', 'dod', 'pixelSize', 'pixelAspectRatio'
-            ),
-        6 => array(
-            'namespace', 'vendor', 'version', 'minValue', 'maxValue', 'defaultValue', 'description'
-            ),
-        7 => array(
-            '#if', '#endif', '#ifdef', '#elif', 'defined', '#define',
-            'AIF_ATI', 'AIF_NVIDIA', 'AIF_FLASH_TARGET'
-            )
-        ),
-    'SYMBOLS' => array(
-        '(', ')', '[', ']', '{', '}', '!', '%', '&', '|', '+', '-', '*', '/', '=', '<', '>', '?', ':'
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => true,
-        2 => true,
-        3 => true,
-        4 => true,
-        5 => true,
-        6 => true,
-        7 => true
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #0033ff;',
-            2 => 'color: #0033ff; font-weight: bold;',
-            3 => 'color: #0033ff;',
-            4 => 'color: #9900cc; font-weight: bold;',
-            5 => 'color: #333333;',
-            6 => 'color: #666666;',
-            7 => 'color: #990000;',
-        ),
-        'COMMENTS' => array(
-            1 => 'color: #009900;',
-            'MULTI' => 'color: #3f5fbf;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => ''
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #000000;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #990000;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #000000; font-weight:bold;'
-            ),
-        'METHODS' => array(
-            0 => 'color: #000000;',
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #000000; font-weight: bold;'
-            ),
-        'REGEXPS' => array(
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => '',
-        4 => '',
-        5 => '',
-        6 => '',
-        7 => ''
-        ),
-    'OOLANG' => true,
-    'OBJECT_SPLITTERS' => array('.'),
-    'REGEXPS' => array(),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(),
-    'HIGHLIGHT_STRICT_BLOCK' => array()
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/pli.php b/wiki/vendor/geshi/geshi/src/geshi/pli.php
deleted file mode 100644
index 6f12c1f..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/pli.php
+++ /dev/null
@@ -1,198 +0,0 @@
-<?php
-/*************************************************************************************
- * pli.php
- * --------
- * Author: Robert AH Prins (robert@prino.org)
- * Copyright: (c) 2011 Robert AH Prins (http://hitchwiki.org/en/User:Prino)
- * Release Version: 1.0.9.0
- * Date Started: 2011/02/09
- *
- * PL/I language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2011/02/09 (1.0.8.10)
- *  -  First Release - machine(ish) generated by http://rosettacode.org/geshi/
- *
- * TODO (updated 2011/02/09)
- * -------------------------
- *
- *
- *************************************************************************************
- *
- *     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' => 'PL/I',
-    'COMMENT_SINGLE' => array(),
-    'COMMENT_MULTI' => array('/*' => '*/'),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array('"', '\''),
-    'ESCAPE_CHAR' => '',
-    'KEYWORDS' => array(
-        1 => array(
-            'abnormal', 'abs', 'acos', 'acosf', 'add', 'addbuff', 'addr',
-            'addrdata', 'alias', 'aligned', 'all', 'alloc', 'allocate',
-            'allocation', 'allocn', 'allocsize', 'any', 'anycondition', 'area',
-            'ascii', 'asin', 'asinf', 'asm', 'asmtdli', 'assembler',
-            'assignable', 'atan', 'atand', 'atanf', 'atanh', 'attach',
-            'attention', 'attn', 'auto', 'automatic', 'availablearea',
-            'backwards', 'based', 'begin', 'bigendian', 'bin', 'binary',
-            'binaryvalue', 'bind', 'binvalue', 'bit', 'bitloc', 'bitlocation',
-            'bkwd', 'blksize', 'bool', 'buf', 'buffered', 'buffers', 'bufnd',
-            'bufni', 'bufoff', 'bufsp', 'builtin', 'bx', 'by', 'byaddr', 'byte',
-            'byvalue', 'b4', 'call', 'cast', 'cds', 'ceil', 'center',
-            'centerleft', 'centerright', 'centre', 'centreleft', 'centreright',
-            'char', 'character', 'charg', 'chargraphic', 'charval', 'check',
-            'checkstg', 'close', 'cmpat', 'cobol', 'col', 'collate', 'column',
-            'comment', 'compare', 'compiledate', 'compiletime', 'completion',
-            'complex', 'cond', 'condition', 'conjg', 'conn', 'connected',
-            'consecutive', 'controlled', 'conv', 'conversion', 'copy', 'cos',
-            'cosd', 'cosf', 'cosh', 'count', 'counter', 'cpln', 'cplx', 'cs',
-            'cstg', 'ctl', 'ctlasa', 'ctl360', 'currentsize', 'currentstorage',
-            'data', 'datafield', 'date', 'datetime', 'days', 'daystodate',
-            'daystosecs', 'db', 'dcl', 'dec', 'decimal', 'declare', 'def',
-            'default', 'define', 'defined', 'delay', 'delete', 'descriptor',
-            'descriptors', 'detach', 'dft', 'dim', 'dimacross', 'dimension',
-            'direct', 'display', 'divide', 'do', 'downthru', 'edit', 'else',
-            'empty', 'end', 'endfile', 'endpage', 'entry', 'entryaddr', 'env',
-            'environment', 'epsilon', 'erf', 'erfc', 'error', 'event', 'excl',
-            'exclusive', 'exit', 'exp', 'expf', 'exponent', 'exports', 'ext',
-            'external', 'fb', 'fbs', 'fetch', 'file', 'fileddint', 'fileddtest',
-            'fileddword', 'fileid', 'fileopen', 'fileread', 'fileseek',
-            'filetell', 'filewrite', 'finish', 'first', 'fixed', 'fixedbin',
-            'fixeddec', 'fixedoverflow', 'float', 'floatbin', 'floatdec',
-            'floor', 'flush', 'fofl', 'format', 'fortran', 'free', 'from',
-            'fromalien', 'fs', 'gamma', 'generic', 'genkey', 'get', 'getenv',
-            'go', 'goto', 'graphic', 'gx', 'handle', 'hbound', 'hex', 'hexadec',
-            'heximage', 'high', 'huge', 'iand', 'ieee', 'ieor', 'if', 'ignore',
-            'imag', 'in', 'index', 'indexarea', 'indexed', 'init', 'initial',
-            'inline', 'inonly', 'inot', 'inout', 'input', 'int', 'inter',
-            'internal', 'into', 'invalidop', 'ior', 'irred', 'irreducible',
-            'isfinite', 'isigned', 'isinf', 'isll', 'ismain', 'isnan',
-            'isnormal', 'isrl', 'iszero', 'iunsigned', 'key', 'keyed',
-            'keyfrom', 'keylength', 'keyloc', 'keyto', 'label', 'last',
-            'lbound', 'leave', 'left', 'length', 'like', 'limited', 'line',
-            'lineno', 'linesize', 'linkage', 'list', 'littleendian', 'loc',
-            'locate', 'location', 'log', 'logf', 'loggamma', 'log10', 'log10f',
-            'log2', 'low', 'lowercase', 'lower2', 'maccol', 'maclmar',
-            'macname', 'macrmar', 'main', 'max', 'maxexp', 'maxlength',
-            'memconvert', 'memcu12', 'memcu14', 'memcu21', 'memcu24', 'memcu41',
-            'memcu42', 'memindex', 'memsearch', 'memsearchr', 'memverify',
-            'memverifyr', 'min', 'minexp', 'mod', 'mpstr', 'multiply', 'name',
-            'native', 'ncp', 'new', 'nocharg', 'nochargraphic', 'nocheck',
-            'nocmpat', 'noconv', 'noconversion', 'nodescriptor', 'noexecops',
-            'nofixedoverflow', 'nofofl', 'noinline', 'nolock', 'nomap',
-            'nomapin', 'nomapout', 'nonasgn', 'nonassignable', 'nonconnected',
-            'nonnative', 'noofl', 'nooverflow', 'norescan', 'normal', 'nosize',
-            'nostrg', 'nostringrange', 'nostringsize', 'nostrz', 'nosubrg',
-            'nosubscriptrange', 'noufl', 'nounderflow', 'nowrite', 'nozdiv',
-            'nozerodivide', 'null', 'offset', 'offsetadd', 'offsetdiff',
-            'offsetsubtract', 'offsetvalue', 'ofl', 'omitted', 'on', 'onarea',
-            'onchar', 'oncode', 'oncondcond', 'oncondid', 'oncount', 'onfile',
-            'ongsource', 'onkey', 'online', 'onloc', 'onoffset', 'onsource',
-            'onsubcode', 'onwchar', 'onwsource', 'open', 'optional', 'options',
-            'order', 'ordinal', 'ordinalname', 'ordinalpred', 'ordinalsucc',
-            'other', 'otherwise', 'outonly', 'output', 'overflow', 'package',
-            'packagename', 'page', 'pageno', 'pagesize', 'parameter', 'parmset',
-            'password', 'pending', 'pic', 'picspec', 'picture', 'places',
-            'pliascii', 'plicanc', 'plickpt', 'plidelete', 'plidump',
-            'pliebcdic', 'plifill', 'plifree', 'plimove', 'pliover', 'plirest',
-            'pliretc', 'pliretv', 'plisaxa', 'plisaxb', 'plisaxc', 'plisaxd',
-            'plisrta', 'plisrtb', 'plisrtc', 'plisrtd', 'plitdli', 'plitran11',
-            'plitran12', 'plitran21', 'plitran22', 'pointer', 'pointeradd',
-            'pointerdiff', 'pointersubtract', 'pointervalue', 'poly', 'pos',
-            'position', 'prec', 'precision', 'pred', 'present', 'print',
-            'priority', 'proc', 'procedure', 'procedurename', 'procname',
-            'prod', 'ptr', 'ptradd', 'ptrdiff', 'ptrsubtract', 'ptrvalue',
-            'put', 'putenv', 'quote', 'radix', 'raise2', 'random', 'range',
-            'rank', 'read', 'real', 'record', 'recsize', 'recursive', 'red',
-            'reducible', 'reentrant', 'refer', 'regional', 'reg12', 'release',
-            'rem', 'reorder', 'repattern', 'repeat', 'replaceby2', 'reply',
-            'reread', 'rescan', 'reserved', 'reserves', 'resignal', 'respec',
-            'retcode', 'return', 'returns', 'reuse', 'reverse', 'revert',
-            'rewrite', 'right', 'round', 'rounddec', 'samekey', 'scalarvarying',
-            'scale', 'search', 'searchr', 'secs', 'secstodate', 'secstodays',
-            'select', 'seql', 'sequential', 'serialize4', 'set', 'sign',
-            'signal', 'signed', 'sin', 'sind', 'sinf', 'sinh', 'sis', 'size',
-            'skip', 'snap', 'sourcefile', 'sourceline', 'sqrt', 'sqrtf',
-            'stackaddr', 'statement', 'static', 'status', 'stg', 'stmt', 'stop',
-            'storage', 'stream', 'strg', 'string', 'stringrange', 'stringsize',
-            'structure', 'strz', 'subrg', 'subscriptrange', 'substr',
-            'subtract', 'succ', 'sum', 'suppress', 'sysin', 'sysnull',
-            'sysparm', 'sysprint', 'system', 'sysversion', 'tally', 'tan',
-            'tand', 'tanf', 'tanh', 'task', 'then', 'thread', 'threadid',
-            'time', 'tiny', 'title', 'to', 'total', 'tpk', 'tpm', 'transient',
-            'translate', 'transmit', 'trim', 'trkofl', 'trunc', 'type', 'ufl',
-            'ulength', 'ulength16', 'ulength8', 'unal', 'unaligned',
-            'unallocated', 'unbuf', 'unbuffered', 'undefinedfile', 'underflow',
-            'undf', 'unlock', 'unsigned', 'unspec', 'until', 'update', 'upos',
-            'uppercase', 'upthru', 'usubstr', 'usurrogate', 'uvalid', 'uwidth',
-            'valid', 'validdate', 'value', 'var', 'varglist', 'vargsize',
-            'variable', 'varying', 'varyingz', 'vb', 'vbs', 'verify', 'verifyr',
-            'vs', 'vsam', 'wait', 'wchar', 'wcharval', 'weekday', 'when',
-            'whigh', 'while', 'widechar', 'wlow', 'write', 'xmlchar', 'y4date',
-            'y4julian', 'y4year', 'zdiv', 'zerodivide'
-            )
-        ),
-    'SYMBOLS' => array(
-        1 => array(
-            '+', '-', '*', '/', '=', '<', '>', '&', '^', '|', ':', '(', ')', ';', ','
-            )
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #b1b100;'
-            ),
-        'COMMENTS' => array(
-            '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(
-            0 => 'color: #004000;'
-            ),
-        'SYMBOLS' => array(
-            1 => 'color: #339933;'
-            ),
-        'REGEXPS' => array(),
-        'SCRIPT' => array()
-        ),
-    'URLS' => array(1 => ''),
-    'OOLANG' => true,
-    'OBJECT_SPLITTERS' => array(1 => '.'),
-    'REGEXPS' => array(),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(),
-    'HIGHLIGHT_STRICT_BLOCK' => array()
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/plsql.php b/wiki/vendor/geshi/geshi/src/geshi/plsql.php
deleted file mode 100644
index c2ad851..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/plsql.php
+++ /dev/null
@@ -1,254 +0,0 @@
-<?php
-/*************************************************************************************
- * plsql.php
- * -------
- * Author: Victor Engmark <victor.engmark@gmail.com>
- * Copyright: (c) 2006 Victor Engmark (http://l0b0.net/)
- * Release Version: 1.0.9.0
- * Date Started: 2006/10/26
- *
- * Oracle 9.2 PL/SQL language file for GeSHi.
- * Formatting is based on the default setup of TOAD 8.6.
- *
- * CHANGES
- * -------
- * 2006/10/27 (1.0.0)
- *    -    First Release
- *
- * TODO (updated 2006/10/27)
- * -------------------------
- * * Add < and > to brackets
- * * Remove symbols which are also comment delimiters / quote marks?
- *
- *************************************************************************************
- *
- *         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' => 'PL/SQL',
-    'COMMENT_SINGLE' => array(1 =>'--'), //http://download-uk.oracle.com/docs/cd/B10501_01/appdev.920/a96624/02_funds.htm#2930
-    'COMMENT_MULTI' => array('/*' => '*/'), //http://download-uk.oracle.com/docs/cd/B10501_01/appdev.920/a96624/02_funds.htm#2950
-    'CASE_KEYWORDS' => GESHI_CAPS_UPPER,
-    'QUOTEMARKS' => array("'", '"'), //http://download-uk.oracle.com/docs/cd/B10501_01/appdev.920/a96624/02_funds.htm
-    'ESCAPE_CHAR' => '\\',
-    'KEYWORDS' => array(
-        //PL/SQL reserved keywords (http://download-uk.oracle.com/docs/cd/B10501_01/appdev.920/a96624/f_words.htm#LNPLS019)
-        1 => array('ZONE', 'YEAR', 'WRITE', 'WORK', 'WITH', 'WHILE', 'WHERE',
-        'WHENEVER', 'WHEN', 'VIEW', 'VARCHAR2', 'VARCHAR', 'VALUES',
-        'VALIDATE', 'USE', 'UPDATE', 'UNIQUE', 'UNION', 'TYPE', 'TRUE',
-        'TRIGGER', 'TO', 'TIMEZONE_REGION', 'TIMEZONE_MINUTE', 'TIMEZONE_HOUR',
-        'TIMEZONE_ABBR', 'TIMESTAMP', 'TIME', 'THEN', 'TABLE', 'SYNONYM',
-        'SUCCESSFUL', 'SUBTYPE', 'START', 'SQLERRM', 'SQLCODE', 'SQL', 'SPACE',
-        'SMALLINT', 'SHARE', 'SET', 'SEPARATE', 'SELECT', 'SECOND',
-        'SAVEPOINT', 'ROWTYPE', 'ROWNUM', 'ROWID', 'ROW', 'ROLLBACK',
-        'REVERSE', 'RETURN', 'RELEASE', 'RECORD', 'REAL', 'RAW', 'RANGE',
-        'RAISE', 'PUBLIC', 'PROCEDURE', 'PRIVATE', 'PRIOR', 'PRAGMA',
-        'POSITIVEN', 'POSITIVE', 'PLS_INTEGER', 'PCTFREE', 'PARTITION',
-        'PACKAGE', 'OUT', 'OTHERS', 'ORGANIZATION', 'ORDER', 'OR', 'OPTION',
-        'OPERATOR', 'OPEN', 'OPAQUE', 'ON', 'OF', 'OCIROWID', 'NUMBER_BASE',
-        'NUMBER', 'NULL', 'NOWAIT', 'NOT', 'NOCOPY', 'NEXTVAL', 'NEW',
-        'NATURALN', 'NATURAL', 'MONTH', 'MODE', 'MLSLABEL', 'MINUTE', 'MINUS',
-        'LOOP', 'LONG', 'LOCK', 'LIMITED', 'LIKE', 'LEVEL', 'JAVA',
-        'ISOLATION', 'IS', 'INTO', 'INTERVAL', 'INTERSECT', 'INTERFACE',
-        'INTEGER', 'INSERT', 'INDICATOR', 'INDEX', 'IN', 'IMMEDIATE', 'IF',
-        'HOUR', 'HEAP', 'HAVING', 'GROUP', 'GOTO', 'FUNCTION', 'FROM',
-        'FORALL', 'FOR', 'FLOAT', 'FETCH', 'FALSE', 'EXTENDS', 'EXIT',
-        'EXISTS', 'EXECUTE', 'EXCLUSIVE', 'EXCEPTION', 'END', 'ELSIF', 'ELSE',
-        'DROP', 'DO', 'DISTINCT', 'DESC', 'DELETE', 'DEFAULT', 'DECLARE',
-        'DECIMAL', 'DAY', 'DATE', 'CURSOR', 'CURRVAL', 'CURRENT', 'CREATE',
-        'CONSTANT', 'CONNECT', 'COMPRESS', 'COMMIT', 'COMMENT', 'COLLECT',
-        'CLUSTER', 'CLOSE', 'CHECK', 'CHAR_BASE', 'CHAR', 'CASE', 'BY', 'BULK',
-        'BOOLEAN', 'BODY', 'BINARY_INTEGER', 'BETWEEN', 'BEGIN', 'AUTHID',
-        'AT', 'ASC', 'AS', 'ARRAY', 'ANY', 'AND', 'ALTER', 'ALL'),
-        //SQL functions (http://download-uk.oracle.com/docs/cd/B10501_01/server.920/a96540/toc.htm & http://download-uk.oracle.com/docs/cd/B10501_01/server.920/a96540/functions101a.htm#85925)
-        2 => array('XMLTRANSFORM', 'XMLSEQUENCE', 'XMLFOREST', 'XMLELEMENT',
-        'XMLCONCAT', 'XMLCOLATTVAL', 'XMLAGG', 'WIDTH_BUCKET', 'VSIZE',
-        'VARIANCE', 'VAR_SAMP', 'VAR_POP', 'VALUE', 'USERENV', 'USER', 'UPPER',
-        'UPDATEXML', 'UNISTR', 'UID', 'TZ_OFFSET', 'TRUNC', 'TRIM', 'TREAT',
-        'TRANSLATE', 'TO_YMINTERVAL', 'TO_TIMESTAMP_TZ', 'TO_TIMESTAMP',
-        'TO_SINGLE_BYTE', 'TO_NUMBER', 'TO_NCLOB', 'TO_NCHAR', 'TO_MULTI_BYTE',
-        'TO_LOB', 'TO_DSINTERVAL', 'TO_DATE', 'TO_CLOB', 'TO_CHAR', 'TANH',
-        'TAN', 'SYSTIMESTAMP', 'SYSDATE', 'SYS_XMLGEN', 'SYS_XMLAGG',
-        'SYS_TYPEID', 'SYS_GUID', 'SYS_EXTRACT_UTC', 'SYS_DBURIGEN',
-        'SYS_CONTEXT', 'SYS_CONNECT_BY_PATH', 'SUM', 'SUBSTR', 'STDDEV_SAMP',
-        'STDDEV_POP', 'STDDEV', 'SQRT', 'SOUNDEX', 'SINH', 'SIN', 'SIGN',
-        'SESSIONTIMEZONE', 'RTRIM', 'RPAD', 'ROWIDTONCHAR', 'ROWIDTOCHAR',
-        'ROW_NUMBER', 'ROUND', 'REPLACE', 'REGR_SYY', 'REGR_SXY', 'REGR_SXX',
-        'REGR_SLOPE', 'REGR_R2', 'REGR_INTERCEPT', 'REGR_COUNT', 'REGR_AVGY',
-        'REGR_AVGX', 'REFTOHEX', 'REF', 'RAWTONHEX', 'RAWTOHEX',
-        'RATIO_TO_REPORT', 'RANK', 'POWER', 'PERCENTILE_DISC',
-        'PERCENTILE_CONT', 'PERCENT_RANK', 'PATH', 'NVL2', 'NVL',
-        'NUMTOYMINTERVAL', 'NUMTODSINTERVAL', 'NULLIF', 'NTILE', 'NLSSORT',
-        'NLS_UPPER', 'NLS_LOWER', 'NLS_INITCAP', 'NLS_CHARSET_NAME',
-        'NLS_CHARSET_ID', 'NLS_CHARSET_DECL_LEN', 'NEXT_DAY', 'NEW_TIME',
-        'NCHR', 'MONTHS_BETWEEN', 'MOD', 'MIN', 'MAX', 'MAKE_REF', 'LTRIM',
-        'LPAD', 'LOWER', 'LOG', 'LOCALTIMESTAMP', 'LN', 'LENGTH', 'LEAST',
-        'LEAD', 'LAST_VALUE', 'LAST_DAY', 'LAST', 'LAG', 'INSTR', 'INITCAP',
-        'HEXTORAW', 'GROUPING_ID', 'GROUPING', 'GROUP_ID', 'GREATEST',
-        'FROM_TZ', 'FLOOR', 'FIRST_VALUE', 'FIRST', 'EXTRACTVALUE', 'EXTRACT',
-        'EXP', 'EXISTSNODE', 'EMPTY_CLOB', 'EMPTY_BLOB', 'DUMP', 'DEREF',
-        'DEPTH', 'DENSE_RANK', 'DECOMPOSE', 'DECODE', 'DBTIMEZONE',
-        'CURRENT_TIMESTAMP', 'CURRENT_DATE', 'CUME_DIST', 'COVAR_SAMP',
-        'COVAR_POP', 'COUNT', 'COSH', 'COS', 'CORR', 'CONVERT', 'CONCAT',
-        'COMPOSE', 'COALESCE', 'CHR', 'CHARTOROWID', 'CEIL', 'CAST', 'BITAND',
-        'BIN_TO_NUM', 'BFILENAME', 'AVG', 'ATAN2', 'ATAN', 'ASIN', 'ASCIISTR',
-        'ASCII', 'ADD_MONTHS', 'ACOS', 'ABS'),
-        //PL/SQL packages (http://download-uk.oracle.com/docs/cd/B10501_01/appdev.920/a96612/intro2.htm#1025672)
-        3 => array('UTL_URL', 'UTL_TCP', 'UTL_SMTP', 'UTL_REF', 'UTL_RAW',
-        'UTL_PG', 'UTL_INADDR', 'UTL_HTTP', 'UTL_FILE', 'UTL_ENCODE',
-        'UTL_COLL', 'SDO_UTIL', 'SDO_TUNE', 'SDO_MIGRATE', 'SDO_LRS',
-        'SDO_GEOM', 'SDO_CS', 'DMBS_XMLQUERY', 'DMBS_FLASHBACK',
-        'DMBS_DEFER_SYS', 'DEBUG_EXTPROC', 'DBMS_XSLPROCESSOR', 'DBMS_XPLAN',
-        'DBMS_XMLSCHEMA', 'DBMS_XMLSAVE', 'DBMS_XMLPARSER', 'DBMS_XMLGEN',
-        'DBMS_XMLDOM', 'DBMS_XDBT', 'DBMS_XDB_VERSION', 'DBMS_XDB', 'DBMS_WM',
-        'DBMS_UTILITY', 'DBMS_TYPES', 'DBMS_TTS', 'DBMS_TRANSFORM',
-        'DBMS_TRANSACTION', 'DBMS_TRACE', 'DBMS_STRM_A', 'DBMS_STRM',
-        'DBMS_STORAGE_MAP', 'DBMS_STATS', 'DBMS_SQL', 'DBMS_SPACE_ADMIN',
-        'DBMS_SPACE', 'DBMS_SHARED_POOL', 'DBMS_SESSION', 'DBMS_RULE_ADM',
-        'DBMS_RULE', 'DBMS_ROWID', 'DBMS_RLS', 'DBMS_RESUMABLE',
-        'DBMS_RESOURCE_MANAGER_PRIVS', 'DBMS_RESOURCE_MANAGER', 'DBMS_REPUTIL',
-        'DBMS_REPCAT_RGT', 'DBMS_REPCAT_INSTATIATE', 'DBMS_REPCAT_ADMIN',
-        'DBMS_REPCAT', 'DBMS_REPAIR', 'DBMS_REFRESH', 'DBMS_REDEFINITION',
-        'DBMS_RECTIFIER_DIFF', 'DBMS_RANDOM', 'DBMS_PROPAGATION_ADM',
-        'DBMS_PROFILER', 'DBMS_PIPE', 'DBMS_PCLXUTIL', 'DBMS_OUTPUT',
-        'DBMS_OUTLN_EDIT', 'DBMS_OUTLN', 'DBMS_ORACLE_TRACE_USER',
-        'DBMS_ORACLE_TRACE_AGENT', 'DBMS_OLAP', 'DBMS_OFFLINE_SNAPSHOT',
-        'DBMS_OFFLINE_OG', 'DBMS_ODCI', 'DBMS_OBFUSCATION_TOOLKIT',
-        'DBMS_MVIEW', 'DBMS_MGWMSG', 'DBMS_MGWADM', 'DBMS_METADATA',
-        'DBMS_LOGSTDBY', 'DBMS_LOGMNR_D', 'DBMS_LOGMNR_CDC_SUBSCRIBE',
-        'DBMS_LOGMNR_CDC_PUBLISH', 'DBMS_LOGMNR', 'DBMS_LOCK', 'DBMS_LOB',
-        'DBMS_LIBCACHE', 'DBMS_LDAP', 'DBMS_JOB', 'DBMS_IOT',
-        'DBMS_HS_PASSTHROUGH', 'DBMS_FGA', 'DBMS_DISTRIBUTED_TRUST_ADMIN',
-        'DBMS_DESCRIBE', 'DBMS_DEFER_QUERY', 'DBMS_DEFER', 'DBMS_DEBUG',
-        'DBMS_DDL', 'DBMS_CAPTURE_ADM', 'DBMS_AW', 'DBMS_AQELM', 'DBMS_AQADM',
-        'DBMS_AQ', 'DBMS_APPLY_ADM', 'DBMS_APPLICATION_INFO', 'DBMS_ALERT',
-        'CWM2_OLAP_AW_ACCESS'),
-        //PL/SQL predefined exceptions (http://download-uk.oracle.com/docs/cd/B10501_01/appdev.920/a96624/07_errs.htm#784)
-        4 => array('ZERO_DIVIDE', 'VALUE_ERROR', 'TOO_MANY_ROWS',
-        'TIMEOUT_ON_RESOURCE', 'SYS_INVALID_ROWID', 'SUBSCRIPT_OUTSIDE_LIMIT',
-        'SUBSCRIPT_BEYOND_COUNT', 'STORAGE_ERROR', 'SELF_IS_NULL',
-        'ROWTYPE_MISMATCH', 'PROGRAM_ERROR', 'NOT_LOGGED_ON', 'NO_DATA_FOUND',
-        'LOGIN_DENIED', 'INVALID_NUMBER', 'INVALID_CURSOR', 'DUP_VAL_ON_INDEX',
-        'CURSOR_ALREADY_OPEN', 'COLLECTION_IS_NULL', 'CASE_NOT_FOUND',
-        'ACCESS_INTO_NULL'),
-        //Static data dictionary views (http://download-uk.oracle.com/docs/cd/B10501_01/server.920/a96536/ch2.htm)
-        5 => array('USER_REPSITES', 'USER_REPSCHEMA',
-        'USER_REPRESOLUTION_STATISTICS', 'USER_REPRESOLUTION_METHOD',
-        'USER_REPRESOLUTION', 'USER_REPRESOL_STATS_CONTROL', 'USER_REPPROP',
-        'USER_REPPRIORITY_GROUP', 'USER_REPPRIORITY',
-        'USER_REPPARAMETER_COLUMN', 'USER_REPOBJECT', 'USER_REPKEY_COLUMNS',
-        'USER_REPGROUPED_COLUMN', 'USER_REPGROUP_PRIVILEGES', 'USER_REPGROUP',
-        'USER_REPGENOBJECTS', 'USER_REPGENERATED', 'USER_REPFLAVORS',
-        'USER_REPFLAVOR_OBJECTS', 'USER_REPFLAVOR_COLUMNS', 'USER_REPDDL',
-        'USER_REPCONFLICT', 'USER_REPCOLUMN_GROUP', 'USER_REPCOLUMN',
-        'USER_REPCATLOG', 'USER_REPCAT_USER_PARM_VALUES',
-        'USER_REPCAT_USER_AUTHORIZATIONS', 'USER_REPCAT_TEMPLATE_SITES',
-        'USER_REPCAT_TEMPLATE_PARMS', 'USER_REPCAT_TEMPLATE_OBJECTS',
-        'USER_REPCAT_REFRESH_TEMPLATES', 'USER_REPCAT', 'USER_REPAUDIT_COLUMN',
-        'USER_REPAUDIT_ATTRIBUTE', 'DBA_REPSITES_NEW', 'DBA_REPSITES',
-        'DBA_REPSCHEMA', 'DBA_REPRESOLUTION_STATISTICS',
-        'DBA_REPRESOLUTION_METHOD', 'DBA_REPRESOLUTION',
-        'DBA_REPRESOL_STATS_CONTROL', 'DBA_REPPROP', 'DBA_REPPRIORITY_GROUP',
-        'DBA_REPPRIORITY', 'DBA_REPPARAMETER_COLUMN', 'DBA_REPOBJECT',
-        'DBA_REPKEY_COLUMNS', 'DBA_REPGROUPED_COLUMN',
-        'DBA_REPGROUP_PRIVILEGES', 'DBA_REPGROUP', 'DBA_REPGENOBJECTS',
-        'DBA_REPGENERATED', 'DBA_REPFLAVORS', 'DBA_REPFLAVOR_OBJECTS',
-        'DBA_REPFLAVOR_COLUMNS', 'DBA_REPEXTENSIONS', 'DBA_REPDDL',
-        'DBA_REPCONFLICT', 'DBA_REPCOLUMN_GROUP', 'DBA_REPCOLUMN',
-        'DBA_REPCATLOG', 'DBA_REPCAT_USER_PARM_VALUES',
-        'DBA_REPCAT_USER_AUTHORIZATIONS', 'DBA_REPCAT_TEMPLATE_SITES',
-        'DBA_REPCAT_TEMPLATE_PARMS', 'DBA_REPCAT_TEMPLATE_OBJECTS',
-        'DBA_REPCAT_REFRESH_TEMPLATES', 'DBA_REPCAT_EXCEPTIONS', 'DBA_REPCAT',
-        'DBA_REPAUDIT_COLUMN', 'DBA_REPAUDIT_ATTRIBUTE', 'ALL_REPSITES',
-        'ALL_REPSCHEMA', 'ALL_REPRESOLUTION_STATISTICS',
-        'ALL_REPRESOLUTION_METHOD', 'ALL_REPRESOLUTION',
-        'ALL_REPRESOL_STATS_CONTROL', 'ALL_REPPROP', 'ALL_REPPRIORITY_GROUP',
-        'ALL_REPPRIORITY', 'ALL_REPPARAMETER_COLUMN', 'ALL_REPOBJECT',
-        'ALL_REPKEY_COLUMNS', 'ALL_REPGROUPED_COLUMN',
-        'ALL_REPGROUP_PRIVILEGES', 'ALL_REPGROUP', 'ALL_REPGENOBJECTS',
-        'ALL_REPGENERATED', 'ALL_REPFLAVORS', 'ALL_REPFLAVOR_OBJECTS',
-        'ALL_REPFLAVOR_COLUMNS', 'ALL_REPDDL', 'ALL_REPCONFLICT',
-        'ALL_REPCOLUMN_GROUP', 'ALL_REPCOLUMN', 'ALL_REPCATLOG',
-        'ALL_REPCAT_USER_PARM_VALUES', 'ALL_REPCAT_USER_AUTHORIZATIONS',
-        'ALL_REPCAT_TEMPLATE_SITES', 'ALL_REPCAT_TEMPLATE_PARMS',
-        'ALL_REPCAT_TEMPLATE_OBJECTS', 'ALL_REPCAT_REFRESH_TEMPLATES',
-        'ALL_REPCAT', 'ALL_REPAUDIT_COLUMN', 'ALL_REPAUDIT_ATTRIBUTE')
-        ),
-    'SYMBOLS' => array(
-        //PL/SQL delimiters (http://download-uk.oracle.com/docs/cd/B10501_01/appdev.920/a96624/02_funds.htm#2732)
-        '+', '%', "'", '.', '/', '(', ')', ':', ',', '*', '"', '=', '<', '>', '@', ';', '-', ':=', '=>', '||', '**', '<<', '>>', '/*', '*/', '..', '<>', '!=', '~=', '^=', '<=', '>='
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false,
-        2 => false,
-        3 => false,
-        4 => false,
-        5 => false
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #00F;',
-            2 => 'color: #000;',
-            3 => 'color: #00F;',
-            4 => 'color: #F00;',
-            5 => 'color: #800;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #080; font-style: italic;',
-            'MULTI' => 'color: #080; font-style: italic;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #000; font-weight: bold;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #00F;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #F00;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #800;'
-            ),
-        'METHODS' => array(
-            0 => 'color: #0F0;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #00F;'
-            ),
-        'REGEXPS' => array(
-            ),
-        'SCRIPT' => array(
-            0 => 'color: #0F0;'
-            )
-        ),
-        'URLS' => array(
-            1 => 'http://www.oracle.com/pls/db92/db92.drilldown?word={FNAMEU}',
-            2 => 'http://www.oracle.com/pls/db92/db92.drilldown?word={FNAMEU}',
-            3 => 'http://www.oracle.com/pls/db92/db92.drilldown?word={FNAMEU}',
-            4 => 'http://www.oracle.com/pls/db92/db92.drilldown?word={FNAMEU}',
-            5 => 'http://www.oracle.com/pls/db92/db92.drilldown?word={FNAMEU}'
-            ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(),
-    'REGEXPS' => array(),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(),
-    'HIGHLIGHT_STRICT_BLOCK' => array()
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/postgresql.php b/wiki/vendor/geshi/geshi/src/geshi/postgresql.php
deleted file mode 100644
index 2816c6c..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/postgresql.php
+++ /dev/null
@@ -1,285 +0,0 @@
-<?php
-/*************************************************************************************
- * postgresql.php
- * -----------
- * 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.9.0
- * Date Started: 2007/07/20
- *
- * PostgreSQL language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2007/07/20 (1.0.0)
- *  -  First Release
- *
- * TODO (updated 2007/07/20)
- * -------------------------
- *
- *************************************************************************************
- *
- *     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' => 'PostgreSQL',
-    'COMMENT_SINGLE' => array(1 => '--'),
-    'COMMENT_MULTI' => array('/*' => '*/'),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array("'", '"', '`'),
-    'ESCAPE_CHAR' => '\\',
-    'KEYWORDS' => array(
-        //Put PostgreSQL reserved keywords here.  I like mine uppercase.
-        1 => array(
-            'ABORT','ABSOLUTE','ACCESS','ACTION','ADD','ADMIN','AFTER',
-            'AGGREGATE','ALL','ALSO','ALTER','ALWAYS','ANALYSE','ANALYZE','AND',
-            'ANY','AS','ASC,','ASSERTION','ASSIGNMENT','ASYMMETRIC','AT',
-            'AUTHORIZATION','BACKWARD','BEFORE','BEGIN','BETWEEN','BOTH','BY',
-            'CACHE','CALLED','CASCADE','CASCADED','CASE','CAST','CATALOG',
-            'CHAIN','CHARACTERISTICS','CHECK','CHECKPOINT','CLASS','CLOSE',
-            'CLUSTER','COALESCE','COLLATE','COLUMN','COMMENT','COMMIT',
-            'COMMITTED','CONCURRENTLY','CONFIGURATION','CONNECTION',
-            'CONSTRAINT','CONSTRAINTS','CONTENT','CONTINUE','CONVERSION','COPY',
-            'COST','CREATE','CREATEDB','CREATEROLE','CREATEUSER','CROSS','CSV',
-            'CURRENT','CURRENT_CATALOG','CURRENT_DATE','CURRENT_ROLE',
-            'CURRENT_SCHEMA','CURRENT_TIME','CURRENT_TIMESTAMP','CURRENT_USER',
-            'CURSOR','CYCLE','DATA','DATABASE','DAY','DEALLOCATE','DEC',
-            'DECLARE','DEFAULT','DEFAULTS','DEFERRABLE','DEFERRED','DEFINER',
-            'DELETE','DELIMITER','DELIMITERS','DESC','DICTIONARY','DISABLE',
-            'DISCARD','DISTINCT','DO','DOCUMENT','DOMAIN','DOUBLE','DROP',
-            'EACH','ELSE','ENABLE','ENCODING','ENCRYPTED','END','ESCAPE',
-            'EXCEPT','EXCLUDING','EXCLUSIVE','EXECUTE','EXISTS','EXPLAIN',
-            'EXTERNAL','EXTRACT','FALSE','FAMILY','FETCH','FIRST','FOLLOWING',
-            'FOR','FORCE','FOREIGN','FORWARD','FREEZE','FROM','FULL','FUNCTION',
-            'GLOBAL','GRANT','GRANTED','GREATEST','GROUP','HANDLER','HAVING',
-            'HEADER','HOLD','HOUR','IDENTITY','IF','ILIKE','IMMEDIATE',
-            'IMMUTABLE','IMPLICIT','IN','INCLUDING','INCREMENT','INDEX',
-            'INDEXES','INHERIT','INHERITS','INITIALLY','INNER','INOUT','INPUT',
-            'INSENSITIVE','INSERT','INSTEAD','INTERSECT','INTO','INVOKER','IS',
-            'ISNULL','ISOLATION','JOIN','KEY','LANCOMPILER','LANGUAGE','LARGE',
-            'LAST','LC_COLLATE','LC_CTYPE','LEADING','LEAST','LEFT','LEVEL',
-            'LIKE','LIMIT','LISTEN','LOAD','LOCAL','LOCALTIME','LOCALTIMESTAMP',
-            'LOCATION','LOCK','LOGIN','LOOP','MAPPING','MATCH','MAXVALUE',
-            'MINUTE','MINVALUE','MODE','MONTH','MOVE','NAME','NAMES','NATIONAL',
-            'NATURAL','NEW','NEXT','NO','NOCREATEDB','NOCREATEROLE',
-            'NOCREATEUSER','NOINHERIT','NOLOGIN','NONE','NOSUPERUSER','NOT',
-            'NOTHING','NOTIFY','NOTNULL','NOWAIT','NULL','NULLIF','NULLS',
-            'NUMERIC','OBJECT','OF','OFF','OFFSET','OIDS','OLD','ON','ONLY',
-            'OPERATOR','OPTION','OPTIONS','OR','ORDER','OUT','OUTER','OVER',
-            'OVERLAPS','OVERLAY','OWNED','OWNER','PARSER','PARTIAL','PARTITION',
-            'PASSWORD','PLACING','PLANS','POSITION','PRECEDING','PRECISION',
-            'PREPARE','PREPARED','PRESERVE','PRIMARY','PRIOR','PRIVILEGES',
-            'PROCEDURAL','PROCEDURE','QUOTE','RANGE','READ','REASSIGN',
-            'RECHECK','RECURSIVE','REFERENCES','REINDEX','RELATIVE','RELEASE',
-            'RENAME','REPEATABLE','REPLACE','REPLICA','RESET','RESTART',
-            'RESTRICT','RETURN','RETURNING','RETURNS','REVOKE','RIGHT','ROLE',
-            'ROLLBACK','ROW','ROWS','RULE','SAVEPOINT','SCHEMA','SCROLL',
-            'SEARCH','SECOND',
-            'SECURITY','SELECT','SEQUENCE','SERIALIZABLE','SERVER','SESSION',
-            'SESSION_USER','SET','SETOF','SHARE','SHOW','SIMILAR','SIMPLE',
-            'SOME','STABLE','STANDALONE','START','STATEMENT','STATISTICS',
-            'STDIN','STDOUT','STORAGE','STRICT','STRIP','SUPERUSER',
-            'SYMMETRIC','SYSID','SYSTEM','TABLE','TABLESPACE','TEMP','TEMPLATE',
-            'TEMPORARY','THEN','TO','TRAILING','TRANSACTION','TREAT','TRIGGER',
-            'TRUE','TRUNCATE','TRUSTED','TYPE','UNBOUNDED','UNCOMMITTED',
-            'UNENCRYPTED','UNION','UNIQUE','UNKNOWN','UNLISTEN','UNTIL',
-            'UPDATE','USER','USING','VACUUM','VALID','VALIDATOR','VALUE',
-            'VALUES','VARIADIC','VERBOSE','VERSION','VIEW','VOLATILE','WHEN',
-            'WHERE','WHILE','WHITESPACE','WINDOW','WITH','WITHOUT','WORK','WRAPPER',
-            'WRITE','XMLATTRIBUTES','XMLCONCAT','XMLELEMENT','XMLFOREST',
-            'XMLPARSE','XMLPI','XMLROOT','XMLSERIALIZE','YEAR','YES','ZONE'
-            ),
-
-        //Put functions here
-        3 => array(
-            // mathematical functions
-            'ABS','CBRT','CEIL','CEILING','DEGREES','DIV','EXP','FLOOR','LN',
-            'LOG','MOD','PI','POWER','RADIANS','RANDOM','ROUND','SETSEED',
-            'SIGN','SQRT','TRUNC','WIDTH_BUCKET',
-            // trigonometric functions
-            'ACOS','ASIN','ATAN','ATAN2','COS','COT','SIN','TAN',
-            // string functions
-            'BIT_LENGTH','CHAR_LENGTH','CHARACTER_LENGTH','LOWER',
-            'OCTET_LENGTH','POSITION','SUBSTRING','TRIM','UPPER',
-            // other string functions
-            'ASCII','BTRIM','CHR','CONVERT','CONVERT_FROM','CONVERT_TO',
-            'DECODE','ENCODE','INITCAP','LENGTH','LPAD','LTRIM','MD5',
-            'PG_CLIENT_ENCODING','QUOTE_IDENT','QUOTE_LITERAL','QUOTE_NULLABLE',
-            'REGEXP_MATCHES','REGEXP_REPLACE','REGEXP_SPLIT_TO_ARRAY',
-            'REGEXP_SPLIT_TO_TABLE','REPEAT','RPAD','RTRIM','SPLIT_PART',
-            'STRPOS','SUBSTR','TO_ASCII','TO_HEX','TRANSLATE',
-            // binary string functions
-            'GET_BIT','GET_BYTE','SET_BIT','SET_BYTE',
-            // data type formatting functions
-            'TO_CHAR','TO_DATE','TO_NUMBER','TO_TIMESTAMP',
-            // date/time functions
-            'AGE','CLOCK_TIMESTAMP','DATE_PART','DATE_TRUNC','EXTRACT',
-            'ISFINITE','JUSTIFY_DAYS','JUSTIFY_HOURS','JUSTIFY_INTERVAL','NOW',
-            'STATEMENT_TIMESTAMP','TIMEOFDAY','TRANSACTION_TIMESTAMP',
-            // enum support functions
-            'ENUM_FIRST','ENUM_LAST','ENUM_RANGE',
-            // geometric functions
-            'AREA','CENTER','DIAMETER','HEIGHT','ISCLOSED','ISOPEN','NPOINTS',
-            'PCLOSE','POPEN','RADIUS','WIDTH',
-            'BOX','CIRCLE','LSEG','PATH','POINT','POLYGON',
-            // cidr and inet functions
-            'ABBREV','BROADCAST','FAMILY','HOST','HOSTMASK','MASKLEN','NETMASK',
-            'NETWORK','SET_MASKLEN',
-            // text search functions
-            'TO_TSVECTOR','SETWEIGHT','STRIP','TO_TSQUERY','PLAINTO_TSQUERY',
-            'NUMNODE','QUERYTREE','TS_RANK','TS_RANK_CD','TS_HEADLINE',
-            'TS_REWRITE','GET_CURRENT_TS_CONFIG','TSVECTOR_UPDATE_TRIGGER',
-            'TSVECTOR_UPDATE_TRIGGER_COLUMN',
-            'TS_DEBUG','TS_LEXISE','TS_PARSE','TS_TOKEN_TYPE','TS_STAT',
-            // XML functions
-            'XMLCOMMENT','XMLCONCAT','XMLELEMENT','XMLFOREST','XMLPI','XMLROOT',
-            'XMLAGG','XPATH','TABLE_TO_XMLSCHEMA','QUERY_TO_XMLSCHEMA',
-            'CURSOR_TO_XMLSCHEMA','TABLE_TO_XML_AND_XMLSCHEMA',
-            'QUERY_TO_XML_AND_XMLSCHEMA','SCHEMA_TO_XML','SCHEMA_TO_XMLSCHEMA',
-            'SCHEMA_TO_XML_AND_XMLSCHEMA','DATABASE_TO_XML',
-            'DATABASE_TO_XMLSCHEMA','DATABASE_TO_XML_AND_XMLSCHEMA',
-            // sequence manipulating functions
-            'CURRVAL','LASTVAL','NEXTVAL','SETVAL',
-            // conditional expressions
-            'COALESCE','NULLIF','GREATEST','LEAST',
-            // array functions
-            'ARRAY_APPEND','ARRAY_CAT','ARRAY_NDIMS','ARRAY_DIMS','ARRAY_FILL',
-            'ARRAY_LENGTH','ARRAY_LOWER','ARRAY_PREPEND','ARRAY_TO_STRING',
-            'ARRAY_UPPER','STRING_TO_ARRAY','UNNEST',
-            // aggregate functions
-            'ARRAY_AGG','AVG','BIT_AND','BIT_OR','BOOL_AND','BOOL_OR','COUNT',
-            'EVERY','MAX','MIN','STRING_AGG','SUM',
-            // statistic aggregate functions
-            'CORR','COVAR_POP','COVAR_SAMP','REGR_AVGX','REGR_AVGY',
-            'REGR_COUNT','REGR_INTERCEPT','REGR_R2','REGR_SLOPE','REGR_SXX',
-            'REGR_SXY','REGR_SYY','STDDEV','STDDEV_POP','STDDEV_SAMP',
-            'VARIANCE','VAR_POP','VAR_SAMP',
-            // window functions
-            'ROW_NUMBER','RANK','DENSE_RANK','PERCENT_RANK','CUME_DIST','NTILE',
-            'LAG','LEAD','FIRST_VALUE','LAST_VALUE','NTH_VALUE',
-            // set returning functions
-            'GENERATE_SERIES','GENERATE_SUBSCRIPTS'
-            // system information functions not currently included
-            ),
-
-        //Put your postgresql var
-        4 => array(
-            'client_encoding',
-            'standard_conforming_strings'
-            ),
-
-        //Put your data types here
-        5 => array(
-            'ARRAY','ABSTIME','BIGINT','BIGSERIAL','BINARY','BIT','BIT VARYING',
-            'BOOLEAN','BOX','BYTEA','CHAR','CHARACTER','CHARACTER VARYING',
-            'CIDR','CIRCLE','DATE','DECIMAL','DOUBLE PRECISION','ENUM','FLOAT',
-            'INET','INT','INTEGER','INTERVAL','NCHAR','REAL','SMALLINT','TEXT',
-            'TIME','TIMESTAMP','VARCHAR','XML',
-            ),
-
-        //        //Put your package names here
-        //        6 => array(
-        //            ),
-
-        ),
-    'SYMBOLS' => array(
-        '(', ')', '=', '<', '>', '|'
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false,
-        3 => false,
-        4 => false,
-        5 => false
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            // regular keywords
-            1 => 'color: #000000; font-weight: bold; text-transform: uppercase;',
-            // inbuilt functions
-            3 => 'color: #333399; font-weight: bold; text-transform: uppercase;',
-            // postgresql var(?)
-            4 => 'color: #993333; font-weight: bold; text-transform: uppercase;',
-            // data types
-            5 => 'color: #993333; font-weight: bold; text-transform: uppercase;',
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #808080; font-style: italic;',
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #000099; font-weight: bold;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #66cc66;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #ff0000;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #cc66cc;'
-            ),
-        'METHODS' => array(
-            1 => 'color: #ff0000;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #66cc66;'
-            ),
-        'SCRIPT' => array(
-            ),
-        'REGEXPS' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        3 => '',
-        4 => 'http://paste.postgresql.fr/wiki/desc.php?def={FNAME}',
-        5 => '',
-        ),
-
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(
-        ),
-    'REGEXPS' => array(
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        ),
-    'PARSER_CONTROL' => array(
-        'KEYWORDS' => array(
-            1 => array(
-                'DISALLOWED_AFTER' => '(?![\(\w])'
-                ),
-
-            3 => array(
-                'DISALLOWED_AFTER' => '(?=\()'
-                ),
-
-            4 => array(
-                'DISALLOWED_AFTER' => '(?![\(\w])'
-                ),
-
-            5 => array(
-                'DISALLOWED_AFTER' => '(?![\(\w])'
-                ),
-            )
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/postscript.php b/wiki/vendor/geshi/geshi/src/geshi/postscript.php
deleted file mode 100644
index 00ee93c..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/postscript.php
+++ /dev/null
@@ -1,217 +0,0 @@
-<?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/wiki/vendor/geshi/geshi/src/geshi/povray.php b/wiki/vendor/geshi/geshi/src/geshi/povray.php
deleted file mode 100644
index eb75d41..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/povray.php
+++ /dev/null
@@ -1,198 +0,0 @@
-<?php
-/*************************************************************************************
- * povray.php
- * --------
- * Author: Carl Fürstenberg (azatoth@gmail.com)
- * Copyright: © 2007 Carl Fürstenberg
- * Release Version: 1.0.9.0
- * Date Started: 2008/07/11
- *
- * Povray language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2008/07/11 (1.0.8)
- *   -  initial import to GeSHi SVN
- *************************************************************************************
- *
- *     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' => 'POVRAY',
-    'COMMENT_SINGLE' => array(1 => '//'),
-    'COMMENT_MULTI' => array('/*' => '*/'),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array("'", '"'),
-    'ESCAPE_CHAR' => '\\',
-    'KEYWORDS' => array(
-        1 => array(
-            'yes', 'wrinkles', 'wood', 'width', 'waves', 'water_level', 'warp', 'vturbulence',
-            'vstr', 'vrotate', 'vnormalize', 'vlength', 'vcross', 'vaxis_rotate', 'variance', 'v_steps',
-            'uv_mapping', 'utf8', 'use_index', 'use_colour', 'use_color', 'use_alpha', 'up', 'undef',
-            'ultra_wide_angle', 'u_steps', 'type', 'turbulence', 'turb_depth', 'ttf', 'true', 'triangle_wave',
-            'translate', 'transform', 'trace', 'toroidal', 'tolerance', 'tiles', 'tile2', 'tightness',
-            'tiff', 'threshold', 'thickness', 'tga', 'texture_map', 'target', 'sys', 'sum',
-            'substr', 'sturm', 'strupr', 'strlwr', 'strength', 'str', 'statistics', 'sqr',
-            'spotted', 'spotlight', 'split_union', 'spline', 'spiral2', 'spiral1', 'spherical', 'specular',
-            'spacing', 'solid', 'smooth', 'slope', 'slice', 'sky', 'size', 'sine_wave',
-            'shadowless', 'scattering', 'scallop_wave', 'scale', 'save_file', 'samples', 'roughness', 'rotate',
-            'ripples', 'right', 'rgbt', 'rgbft', 'rgbf', 'rgb', 'repeat', 'render',
-            'refraction', 'reflection_exponent', 'recursion_limit', 'reciprocal', 'ratio', 'ramp_wave', 'radius', 'radial',
-            'quilted', 'quick_colour', 'quick_color', 'quaternion', 'quadratic_spline', 'pwr', 'projected_through', 'prod',
-            'pretrace_start', 'pretrace_end', 'precompute', 'precision', 'ppm', 'pow', 'pot', 'poly_wave',
-            'point_at', 'png', 'planar', 'pigment_pattern', 'pi', 'phong_size', 'phong', 'phase',
-            'pgm', 'perspective', 'pattern', 'pass_through', 'parallel', 'panoramic', 'orthographic', 'orientation',
-            'orient', 'open', 'onion', 'once', 'on', 'omnimax', 'omega', 'offset',
-            'off', 'octaves', 'number_of_waves', 'noise_generator', 'no_shadow', 'no_reflection', 'no_image', 'no_bump_scale',
-            'no', 'nearest_count', 'natural_spline', 'mortar', 'minimum_reuse', 'min_extent', 'metric', 'method',
-            'metallic', 'media_interaction', 'media_attenuation', 'media', 'max_trace_level', 'max_trace', 'max_sample', 'max_iteration',
-            'max_intersections', 'max_gradient', 'max_extent', 'matrix', 'material_map', 'marble', 'map_type', 'mandel',
-            'major_radius', 'magnet', 'low_error_factor', 'look_at', 'location', 'load_file', 'linear_sweep', 'linear_spline',
-            'leopard', 'lambda', 'julia', 'jpeg', 'jitter', 'irid_wavelength', 'ior', 'inverse',
-            'intervals', 'interpolate', 'internal', 'inside_vector', 'inside', 'initial_frame', 'initial_clock', 'image_width',
-            'image_pattern', 'image_height', 'iff', 'hypercomplex', 'hollow', 'hierarchy', 'hf_gray_16', 'hexagon',
-            'gray_threshold', 'granite', 'gradient', 'global_lights', 'gif', 'gather', 'fresnel', 'frequency',
-            'frame_number', 'form', 'fog_type', 'fog_offset', 'fog_alt', 'focal_point', 'flip', 'flatness',
-            'fisheye', 'final_frame', 'final_clock', 'false', 'falloff_angle', 'falloff', 'fade_power', 'fade_distance',
-            'fade_colour', 'fade_color', 'facets', 'extinction', 'exterior', 'exponent', 'expand_thresholds', 'evaluate',
-            'error_bound', 'emission', 'eccentricity', 'double_illuminate', 'distance', 'dist_exp', 'dispersion_samples', 'dispersion',
-            'direction', 'diffuse', 'df3', 'dents', 'density_map', 'density_file', 'density', 'cylindrical',
-            'cutaway_textures', 'cubic_wave', 'cubic_spline', 'cube', 'crand', 'crackle', 'count', 'coords',
-            'control1', 'control0', 'conserve_energy', 'conic_sweep', 'confidence', 'concat', 'composite', 'component',
-            'colour_map', 'colour', 'color', 'collect', 'clock_on', 'clock_delta', 'clock', 'circular',
-            'chr', 'checker', 'charset', 'cells', 'caustics', 'bumps', 'bump_size', 'brilliance',
-            'brightness', 'brick_size', 'brick', 'bozo', 'boxed', 'blur_samples', 'black_hole', 'bezier_spline',
-            'b_spline', 'average', 'autostop', 'assumed_gamma', 'ascii', 'array', 'area_light', 'arc_angle',
-            'append', 'aperture', 'angle', 'ambient_light', 'ambient', 'always_sample', 'altitude', 'alpha',
-            'all_intersections', 'all', 'agate_turb', 'agate', 'adc_bailout', 'adaptive', 'accuracy', 'absorption',
-            'aa_threshold', 'aa_level', 'reflection'
-            ),
-        2 => array(
-            'abs', 'acos', 'acosh', 'asc', 'asin', 'asinh', 'atan', 'atanh',
-            'atan2', 'ceil', 'cos', 'cosh', 'defined', 'degrees', 'dimensions', 'dimension_size',
-            'div', 'exp', 'file_exists', 'floor', 'int', 'ln', 'log', 'max',
-            'min', 'mod', 'pov', 'radians', 'rand', 'seed', 'select', 'sin',
-            'sinh', 'sqrt', 'strcmp', 'strlen', 'tan', 'tanh', 'val', 'vdot',
-            'vlenght',
-            ),
-        3 => array (
-            'x', 'y', 'z', 't', 'u', 'v', 'red', 'blue',
-            'green', 'filter', 'transmit', 'gray', 'e',
-            ),
-        4 => array (
-            'camera', 'background', 'fog', 'sky_sphere', 'rainbow', 'global_settings', 'radiosity', 'photon',
-            'object', 'blob', 'sphere', 'cylinder', 'box', 'cone', 'height_field', 'julia_fractal',
-            'lathe', 'prism', 'sphere_sweep', 'superellipsoid', 'sor', 'text', 'torus', 'bicubic_patch',
-            'disc', 'mesh', 'triangle', 'smooth_triangle', 'mesh2', 'vertex_vectors', 'normal_vectors', 'uv_vectors',
-            'texture_list', 'face_indices', 'normal_indices', 'uv_indices', 'texture', 'polygon', 'plane', 'poly',
-            'cubic', 'quartic', 'quadric', 'isosurface', 'function', 'contained_by', 'parametric', 'pigment',
-            'union', 'intersection', 'difference', 'merge', 'light_source', 'looks_like', 'light_group', 'clipped_by',
-            'bounded_by', 'interior', 'material', 'interior_texture', 'normal', 'finish', 'color_map', 'pigment_map',
-            'image_map', 'bump_map', 'slope_map', 'normal_map', 'irid', 'photons',
-            )
-        ),
-    'SYMBOLS' => array(
-        '(', ')', '[', ']', '{', '}', '!',
-        '@', '%', '&', '*', '|', '/', '<',
-        '>', '+', '-', '.', '=', '<=', '>=',
-        '!=',
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false,
-        2 => false,
-        3 => false,
-        4 => false
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #a63123;',
-            2 => 'color: #2312bc;',
-            3 => 'color: #cc1122; font-weight: bold;',
-            4 => 'color: #116688; font-weight: bold;',
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #808080; font-style: italic;',
-//            2 => 'color: #808080; font-style: italic;',
-            'MULTI' => 'color: #808080; font-style: italic;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #000099; font-weight: bold;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #66cc66;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #ff0000;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #cc66aa;'
-            ),
-        'METHODS' => array(
-            1 => 'color: #006600;',
-            2 => 'color: #006600;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #66cc66;'
-            ),
-        'REGEXPS' => array(
-            0 => 'color: #6666cc; font-weight: bold;',
-            1 => 'color: #66cc66; font-weight: bold;',
-            2 => 'color: #66cc66; font-weight: bold;'
-            ),
-        'SCRIPT' => array(
-            0 => '',
-            1 => '',
-            2 => '',
-            3 => ''
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => '',
-        4 => ''
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(
-        ),
-    'REGEXPS' => array(
-        # normal hash lines
-        0 => '\#(?!(include|declare|local|fopen|fclose|read|write|default|version|if|else|end|ifdef|ifndef|switch|case|range|break|while|debug|error|warning|macro) )[[:word:]]*',
-        # syntax functions hash thingis
-        1 => "\#(include|declare|local|fopen|fclose|read|write|default|version|if|else|end|ifdef|ifndef|switch|case|range|break|while|debug|error|warning|macro)",
-        2 => array(
-            GESHI_SEARCH  => "([a-zA-Z]+)(\n)(.*)(\n)(\\1;?)",
-            GESHI_REPLACE => '\3',
-            GESHI_BEFORE => '\1\2',
-            GESHI_AFTER => '\4\5',
-            GESHI_MODIFIERS => 'siU'
-            )
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_MAYBE,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        0 => true,
-        1 => true,
-        2 => true,
-        3 => true
-        ),
-    'TAB_WIDTH' => 4
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/powerbuilder.php b/wiki/vendor/geshi/geshi/src/geshi/powerbuilder.php
deleted file mode 100644
index b93e7dd..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/powerbuilder.php
+++ /dev/null
@@ -1,417 +0,0 @@
-<?php
-/*************************************************************************************
- * powerbuilder.php
- * ------
- * Author: Doug Porter (powerbuilder.geshi@gmail.com)
- * Copyright: (c) 2009 Doug Porter
- * Release Version: 1.0.9.0
- * Date Started: 2009/07/13
- *
- * PowerBuilder (PowerScript) language file for GeSHi.
- *
- * Based on the TextPad Syntax file for PowerBuilder
- * built by Rafi Avital
- *
- * CHANGES
- * -------
- * 2009/07/13 (1.0.0)
- *  -  First Release
- *
- * TODO (updated 2009/07/13)
- * -------------------------
- *
- *************************************************************************************
- *
- *     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' => 'PowerBuilder',
-    'COMMENT_SINGLE' => array(1 => '//'),
-    'COMMENT_MULTI' => array('/*' => '*/'),
-    'COMMENT_REGEXP' => array(),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array("'", '"'),
-    'ESCAPE_CHAR' => '~',
-    'KEYWORDS' => array(
-        1 => array(
-            'alias', 'and', 'autoinstantiate', 'call',
-            'case', 'catch', 'choose', 'close', 'commit', 'connect',
-            'constant', 'continue', 'create', 'cursor', 'declare',
-            'delete', 'describe', 'descriptor', 'destroy', 'disconnect',
-            'do', 'dynamic', 'else', 'elseif', 'end', 'enumerated',
-            'event', 'execute', 'exit', 'external', 'false', 'fetch',
-            'first', 'for', 'forward', 'from', 'function', 'global',
-            'goto', 'halt', 'if', 'immediate', 'indirect', 'insert',
-            'into', 'intrinsic', 'is', 'last', 'library', 'loop', 'next',
-            'not', 'of', 'on', 'open', 'or', 'parent', 'post', 'prepare',
-            'prior', 'private', 'privateread', 'privatewrite', 'procedure',
-            'protected', 'protectedread', 'protectedwrite', 'prototypes',
-            'public', 'readonly', 'ref', 'return', 'rollback', 'rpcfunc',
-            'select', 'selectblob', 'shared', 'static', 'step', 'subroutine',
-            'super', 'system', 'systemread', 'systemwrite', 'then', 'this',
-            'to', 'trigger', 'true', 'try', 'type', 'until', 'update', 'updateblob',
-            'using', 'variables', 'where', 'while', 'with', 'within'
-            ),
-        2 => array (
-            'blob', 'boolean', 'char', 'character', 'date', 'datetime',
-            'dec', 'decimal',
-            'double', 'int', 'integer', 'long', 'real', 'string', 'time',
-            'uint', 'ulong', 'unsignedint', 'unsignedinteger', 'unsignedlong'
-            ),
-        3 => array (
-            'abortretryignore!', 'actbegin!', 'acterror!', 'actesql!',
-            'actgarbagecollect!', 'activate!', 'activatemanually!',
-            'activateondoubleclick!',
-            'activateongetfocus!', 'actline!', 'actobjectcreate!', 'actobjectdestroy!',
-            'actprofile!', 'actroutine!', 'acttrace!', 'actual!',
-            'actuser!', 'adoresultset!', 'adtdate!', 'adtdatetime!',
-            'adtdefault!', 'adtdouble!', 'adttext!', 'adttime!',
-            'aix!', 'alignatbottom!', 'alignatleft!', 'alignatright!',
-            'alignattop!', 'all!', 'allowpartialchanges!', 'alpha!',
-            'ansi!', 'any!', 'anycase!', 'anyfont!',
-            'append!', 'application!', 'arabiccharset!', 'area3d!',
-            'areagraph!', 'arraybounds!', 'arrow!', 'ascending!',
-            'asstatement!', 'atbottom!', 'atleft!', 'atright!',
-            'attop!', 'autosize!', 'background!', 'balticcharset!',
-            'bar3dgraph!', 'bar3dobjgraph!', 'bargraph!', 'barstack3dobjgraph!',
-            'barstackgraph!', 'bdiagonal!', 'beam!', 'begin!',
-            'begindrag!', 'beginlabeledit!', 'beginrightdrag!', 'behind!',
-            'blob!', 'bold!', 'boolean!', 'bottom!',
-            'boundedarray!', 'box!', 'byreferenceargument!', 'byvalueargument!',
-            'cancel!', 'cascade!', 'cascaded!', 'category!',
-            'center!', 'character!', 'charsetansi!', 'charsetansiarabic!',
-            'charsetansihebrew!', 'charsetdbcsjapanese!', 'charsetunicode!', 'checkbox!',
-            'child!', 'childtreeitem!', 'chinesebig5!', 'classdefinition!',
-            'classdefinitionobject!', 'classorstructuretype!', 'clicked!', 'clip!',
-            'clipboard!', 'clipformatbitmap!', 'clipformatdib!', 'clipformatdif!',
-            'clipformatenhmetafile!', 'clipformathdrop!', 'clipformatlocale!',
-            'clipformatmetafilepict!',
-            'clipformatoemtext!', 'clipformatpalette!', 'clipformatpendata!', 'clipformatriff!',
-            'clipformatsylk!', 'clipformattext!', 'clipformattiff!', 'clipformatunicodetext!',
-            'clipformatwave!', 'clock!', 'close!', 'closequery!',
-            'col3dgraph!', 'col3dobjgraph!', 'colgraph!',
-            'colstack3dobjgraph!', 'colstackgraph!', 'columnclick!', 'commandbutton!',
-            'connection!', 'connectioninfo!', 'connectobject!', 'connectprivilege!',
-            'connectwithadminprivilege!', 'constructor!', 'containsany!', 'containsembeddedonly!',
-            'containslinkedonly!', 'contextinformation!', 'contextkeyword!', 'continuous!',
-            'corbaobject!', 'corbaunion!', 'cplusplus!', 'cross!',
-            'csv!', 'cumulative!', 'cumulativepercent!', 'currenttreeitem!',
-            'customvisual!', 'dash!', 'dashdot!', 'dashdotdot!',
-            'data!', 'datachange!', 'datamodified!', 'datastore!',
-            'datawindow!', 'datawindowchild!', 'date!', 'datemask!',
-            'datetime!', 'datetimemask!', 'dbase2!', 'dbase3!',
-            'dberror!', 'deactivate!', 'decimal!', 'decimalmask!',
-            'decorative!', 'default!', 'defaultcharset!', 'delete!',
-            'deleteallitems!', 'deleteitem!', 'descending!', 'desktop!',
-            'destructor!', 'detail!', 'diamond!', 'dif!',
-            'dirall!', 'dirapplication!', 'dirdatawindow!', 'directionall!',
-            'directiondown!', 'directionleft!', 'directionright!', 'directionup!',
-            'dirfunction!', 'dirmenu!', 'dirpipeline!', 'dirproject!',
-            'dirquery!', 'dirstructure!', 'diruserobject!', 'dirwindow!',
-            'displayasactivexdocument!', 'displayascontent!', 'displayasicon!', 'dot!',
-            'double!', 'doubleclicked!', 'dragdrop!', 'dragenter!',
-            'dragleave!', 'dragobject!', 'dragwithin!', 'drawobject!',
-            'dropdownlistbox!', 'dropdownpicturelistbox!', 'drophighlighttreeitem!', 'dwobject!',
-            'dynamicdescriptionarea!', 'dynamicstagingarea!', 'easteuropecharset!', 'editchanged!',
-            'editmask!', 'editmenu!', 'encodingansi!', 'encodingutf8!',
-            'encodingutf16le!', 'encodingutf16be!', 'end!', 'endlabeledit!',
-            'enterprise!', 'enterpriseonlyfeature!', 'enumeratedtype!', 'enumerationdefinition!',
-            'enumerationitemdefinition!', 'environment!', 'error!', 'errorlogging!',
-            'eventnotexisterror!', 'eventwrongprototypeerror!', 'excel!', 'excel5!',
-            'exceptionfail!', 'exceptionignore!', 'exceptionretry!',
-            'exceptionsubstitutereturnvalue!',
-            'exclamation!', 'exclude!', 'exportapplication!', 'exportdatawindow!',
-            'exportfunction!', 'exportmenu!', 'exportpipeline!', 'exportproject!',
-            'exportquery!', 'exportstructure!', 'exportuserobject!', 'exportwindow!',
-            'externalvisual!', 'extobject!', 'failonanyconflict!', 'fdiagonal!',
-            'featurenotsupportederror!', 'filealreadyopenerror!', 'filecloseerror!',
-            'fileexists!',
-            'fileinvalidformaterror!', 'filemenu!', 'filenotopenerror!', 'filenotseterror!',
-            'filereaderror!', 'filetyperichtext!', 'filetypetext!', 'filewriteerror!',
-            'filter!', 'first!', 'firstvisibletreeitem!', 'fixed!',
-            'floating!', 'focusrect!', 'footer!', 'foreground!',
-            'frombeginning!', 'fromcurrent!', 'fromend!', 'functionobject!',
-            'gb231charset!', 'getfocus!', 'graph!', 'graphicobject!',
-            'graxis!', 'grdispattr!', 'greekcharset!', 'groupbox!',
-            'hand!', 'hangeul!', 'header!', 'hebrewcharset!',
-            'helpmenu!', 'hide!', 'horizontal!', 'hotlinkalarm!',
-            'hourglass!', 'hppa!', 'hprogressbar!', 'hpux!',
-            'hscrollbar!', 'hticksonboth!', 'hticksonbottom!', 'hticksonneither!',
-            'hticksontop!', 'htmltable!', 'htrackbar!', 'i286!',
-            'i386!', 'i486!', 'icon!', 'icons!',
-            'idle!', 'importdatawindow!', 'indent!', 'index!',
-            'inet!', 'information!', 'inplace!', 'inputfieldselected!',
-            'insertitem!', 'inside!', 'integer!', 'internetresult!',
-            'italic!', 'itemchanged!', 'itemchanging!', 'itemcollapsed!',
-            'itemcollapsing!', 'itemerror!', 'itemexpanded!', 'itemexpanding!',
-            'itemfocuschanged!', 'itempopulate!', 'jaguarorb!', 'johabcharset!',
-            'justify!', 'key!', 'key0!', 'key1!',
-            'key2!', 'key3!', 'key4!', 'key5!',
-            'key6!', 'key7!', 'key8!', 'key9!',
-            'keya!', 'keyadd!', 'keyalt!', 'keyapps!',
-            'keyb!', 'keyback!', 'keybackquote!', 'keybackslash!',
-            'keyc!', 'keycapslock!', 'keycomma!', 'keycontrol!',
-            'keyd!', 'keydash!', 'keydecimal!', 'keydelete!',
-            'keydivide!', 'keydownarrow!', 'keye!', 'keyend!',
-            'keyenter!', 'keyequal!', 'keyescape!', 'keyf!',
-            'keyf1!', 'keyf10!', 'keyf11!', 'keyf12!',
-            'keyf2!', 'keyf3!', 'keyf4!', 'keyf5!',
-            'keyf6!', 'keyf7!', 'keyf8!', 'keyf9!',
-            'keyg!', 'keyh!', 'keyhome!', 'keyi!',
-            'keyinsert!', 'keyj!', 'keyk!', 'keyl!',
-            'keyleftarrow!', 'keyleftbracket!', 'keyleftbutton!', 'keyleftwindows!',
-            'keym!', 'keymiddlebutton!', 'keymultiply!', 'keyn!',
-            'keynull!', 'keynumlock!', 'keynumpad0!', 'keynumpad1!',
-            'keynumpad2!', 'keynumpad3!', 'keynumpad4!', 'keynumpad5!',
-            'keynumpad6!', 'keynumpad7!', 'keynumpad8!', 'keynumpad9!',
-            'keyo!', 'keyp!', 'keypagedown!', 'keypageup!',
-            'keypause!', 'keyperiod!', 'keyprintscreen!', 'keyq!',
-            'keyquote!', 'keyr!', 'keyrightarrow!', 'keyrightbracket!',
-            'keyrightbutton!', 'keyrightwindows!', 'keys!', 'keyscrolllock!',
-            'keysemicolon!', 'keyshift!', 'keyslash!', 'keyspacebar!',
-            'keysubtract!', 'keyt!', 'keytab!', 'keyu!',
-            'keyuparrow!', 'keyv!', 'keyw!', 'keyword!',
-            'keyx!', 'keyy!', 'keyz!', 'languageafrikaans!',
-            'languagealbanian!', 'languagearabicalgeria!', 'languagearabicbahrain!',
-            'languagearabicegypt!',
-            'languagearabiciraq!', 'languagearabicjordan!', 'languagearabickuwait!',
-            'languagearabiclebanon!',
-            'languagearabiclibya!', 'languagearabicmorocco!', 'languagearabicoman!',
-            'languagearabicqatar!',
-            'languagearabicsaudiarabia!', 'languagearabicsyria!', 'languagearabictunisia!',
-            'languagearabicuae!',
-            'languagearabicyemen!', 'languagebasque!', 'languagebulgarian!', 'languagebyelorussian!',
-            'languagecatalan!', 'languagechinese!', 'languagechinesehongkong!', 'languagechinesesimplified!',
-            'languagechinesesingapore!', 'languagechinesetraditional!', 'languagecroatian!', 'languageczech!',
-            'languagedanish!', 'languagedutch!', 'languagedutchbelgian!', 'languagedutchneutral!',
-            'languageenglish!', 'languageenglishaustralian!', 'languageenglishcanadian!',
-            'languageenglishirish!',
-            'languageenglishnewzealand!', 'languageenglishsouthafrica!', 'languageenglishuk!',
-            'languageenglishus!',
-            'languageestonian!', 'languagefaeroese!', 'languagefarsi!', 'languagefinnish!',
-            'languagefrench!', 'languagefrenchbelgian!', 'languagefrenchcanadian!', 'languagefrenchluxembourg!',
-            'languagefrenchneutral!', 'languagefrenchswiss!', 'languagegerman!', 'languagegermanaustrian!',
-            'languagegermanliechtenstein!', 'languagegermanluxembourg!', 'languagegermanneutral!',
-            'languagegermanswiss!',
-            'languagegreek!', 'languagehebrew!', 'languagehindi!', 'languagehungarian!',
-            'languageicelandic!', 'languageindonesian!', 'languageitalian!', 'languageitalianneutral!',
-            'languageitalianswiss!', 'languagejapanese!', 'languagekorean!', 'languagekoreanjohab!',
-            'languagelatvian!', 'languagelithuanian!', 'languagemacedonian!', 'languagemaltese!',
-            'languageneutral!', 'languagenorwegian!', 'languagenorwegianbokmal!', 'languagenorwegiannynorsk!',
-            'languagepolish!', 'languageportuguese!', 'languageportuguese_brazilian!',
-            'languageportugueseneutral!',
-            'languagerhaetoromanic!', 'languageromanian!', 'languageromanianmoldavia!', 'languagerussian!',
-            'languagerussianmoldavia!', 'languagesami!', 'languageserbian!', 'languageslovak!',
-            'languageslovenian!', 'languagesorbian!', 'languagesortnative!', 'languagesortunicode!',
-            'languagespanish!', 'languagespanishcastilian!', 'languagespanishmexican!', 'languagespanishmodern!',
-            'languagesutu!', 'languageswedish!', 'languagesystemdefault!', 'languagethai!',
-            'languagetsonga!', 'languagetswana!', 'languageturkish!', 'languageukrainian!',
-            'languageurdu!', 'languageuserdefault!', 'languagevenda!', 'languagexhosa!',
-            'languagezulu!', 'last!', 'layer!', 'layered!',
-            'Left!', 'leftmargin!', 'line!', 'line3d!',
-            'linear!', 'linecolor!', 'linedown!', 'linegraph!',
-            'lineleft!', 'linemode!', 'lineright!', 'lineup!',
-            'linkupdateautomatic!', 'linkupdatemanual!', 'listbox!', 'listview!',
-            'listviewitem!', 'listviewlargeicon!', 'listviewlist!', 'listviewreport!',
-            'listviewsmallicon!', 'lockread!', 'lockreadwrite!', 'lockwrite!',
-            'log10!', 'loge!', 'long!', 'losefocus!',
-            'lower!', 'lowered!', 'm68000!', 'm68020!',
-            'm68030!', 'm68040!', 'maccharset!', 'macintosh!',
-            'mailattach!', 'mailbcc!', 'mailbodyasfile!', 'mailcc!',
-            'maildownload!', 'mailentiremessage!', 'mailenvelopeonly!', 'mailfiledescription!',
-            'mailmessage!', 'mailnewsession!', 'mailnewsessionwithdownload!', 'mailole!',
-            'mailolestatic!', 'mailoriginator!', 'mailrecipient!', 'mailreturnaccessdenied!',
-            'mailreturnattachmentnotfound!', 'mailreturnattachmentopenfailure!',
-            'mailreturnattachmentwritefailure!', 'mailreturndiskfull!',
-            'mailreturnfailure!', 'mailreturninsufficientmemory!', 'mailreturninvalidmessage!',
-            'mailreturnloginfailure!',
-            'mailreturnmessageinuse!', 'mailreturnnomessages!', 'mailreturnsuccess!', 'mailreturntexttoolarge!',
-            'mailreturntoomanyfiles!', 'mailreturntoomanyrecipients!', 'mailreturntoomanysessions!',
-            'mailreturnunknownrecipient!',
-            'mailreturnuserabort!', 'mailsession!', 'mailsuppressattachments!', 'mailto!',
-            'main!', 'maximized!', 'mdi!', 'mdiclient!',
-            'mdihelp!', 'menu!', 'menucascade!', 'menuitemtypeabout!',
-            'menuitemtypeexit!', 'menuitemtypehelp!', 'menuitemtypenormal!', 'merge!',
-            'message!', 'minimized!', 'mips!', 'modelexistserror!',
-            'modelnotexistserror!', 'modern!', 'modified!', 'mousedown!',
-            'mousemove!', 'mouseup!', 'moved!', 'multiline!',
-            'multilineedit!', 'mutexcreateerror!', 'new!', 'newmodified!',
-            'next!', 'nexttreeitem!', 'nextvisibletreeitem!', 'noborder!',
-            'noconnectprivilege!', 'nolegend!', 'none!', 'nonvisualobject!',
-            'normal!', 'nosymbol!', 'notic!', 'notmodified!',
-            'notopmost!', 'notype!', 'numericmask!', 'objhandle!',
-            'oem!', 'off!', 'offsite!', 'ok!',
-            'okcancel!', 'olecontrol!', 'olecustomcontrol!', 'oleobject!',
-            'olestorage!', 'olestream!', 'oletxnobject!', 'omcontrol!',
-            'omcustomcontrol!', 'omembeddedcontrol!', 'omobject!', 'omstorage!',
-            'omstream!', 'open!', 'orb!', 'original!',
-            'osf1!', 'other!', 'outside!', 'oval!',
-            'pagedown!', 'pageleft!', 'pageright!', 'pageup!',
-            'parenttreeitem!', 'pbtocppobject!', 'pentium!', 'percentage!',
-            'picture!', 'picturebutton!', 'picturehyperlink!', 'picturelistbox!',
-            'pictureselected!', 'pie3d!', 'piegraph!', 'pipeend!',
-            'pipeline!', 'pipemeter!', 'pipestart!', 'popup!',
-            'powerobject!', 'powerpc!', 'powerrs!', 'ppc601!',
-            'ppc603!', 'ppc604!', 'previewdelete!', 'previewfunctionreselectrow!',
-            'previewfunctionretrieve!', 'previewfunctionupdate!', 'previewinsert!', 'previewselect!',
-            'previewupdate!', 'previoustreeitem!', 'previousvisibletreeitem!', 'primary!',
-            'printend!', 'printfooter!', 'printheader!', 'printpage!',
-            'printstart!', 'prior!', 'private!', 'process!',
-            'profilecall!', 'profileclass!', 'profileline!', 'profileroutine!',
-            'profiling!', 'protected!', 'psreport!', 'public!',
-            'question!', 'radiobutton!', 'raised!', 'rbuttondown!',
-            'rbuttonup!', 'read!', 'readonlyargument!', 'real!',
-            'rectangle!', 'regbinary!', 'regexpandstring!', 'reglink!',
-            'regmultistring!', 'regstring!', 'regulong!', 'regulongbigendian!',
-            'remoteexec!', 'remotehotlinkstart!', 'remotehotlinkstop!', 'remoteobject!',
-            'remoterequest!', 'remotesend!', 'rename!', 'replace!',
-            'resize!', 'resizeborder!', 'response!', 'resultset!',
-            'resultsets!', 'retrieveend!', 'retrieverow!', 'retrievestart!',
-            'retrycancel!', 'richtextedit!', 'Right!', 'rightclicked!',
-            'rightdoubleclicked!', 'rightmargin!', 'rnddays!', 'rnddefault!',
-            'rndhours!', 'rndmicroseconds!', 'rndminutes!', 'rndmonths!',
-            'rndnumber!', 'rndseconds!', 'rndyears!', 'roman!',
-            'roottreeitem!', 'roundrectangle!', 'routineesql!', 'routineevent!',
-            'routinefunction!', 'routinegarbagecollection!', 'routineobjectcreation!',
-            'routineobjectdestruction!',
-            'routineroot!', 'rowfocuschanged!', 'russiancharset!', 'save!',
-            'scalartype!', 'scattergraph!', 'script!', 'scriptdefinition!',
-            'scriptevent!', 'scriptfunction!', 'scrollhorizontal!', 'scrollvertical!',
-            'selected!', 'selectionchanged!', 'selectionchanging!', 'series!',
-            'service!', 'shade!', 'shadowbox!', 'shared!',
-            'sharedobjectcreateinstanceerror!', 'sharedobjectcreatepbsessionerror!',
-            'sharedobjectexistserror!', 'sharedobjectnotexistserror!',
-            'shiftjis!', 'show!', 'simpletype!', 'simpletypedefinition!',
-            'singlelineedit!', 'size!', 'sizenesw!', 'sizens!',
-            'sizenwse!', 'sizewe!', 'sol2!', 'solid!',
-            'sort!', 'sourcepblerror!', 'spacing1!', 'spacing15!',
-            'spacing2!', 'sparc!', 'sqlinsert!', 'sqlpreview!',
-            'square!', 'sslcallback!', 'sslserviceprovider!', 'statichyperlink!',
-            'statictext!', 'stgdenynone!', 'stgdenyread!', 'stgdenywrite!',
-            'stgexclusive!', 'stgread!', 'stgreadwrite!', 'stgwrite!',
-            'stopsign!', 'straddle!', 'streammode!', 'stretch!',
-            'strikeout!', 'string!', 'stringmask!', 'structure!',
-            'stylebox!', 'stylelowered!', 'styleraised!', 'styleshadowbox!',
-            'subscript!', 'success!', 'superscript!', 'swiss!',
-            'sylk!', 'symbol!', 'symbolhollowbox!', 'symbolhollowcircle!',
-            'symbolhollowdiamond!', 'symbolhollowdownarrow!', 'symbolhollowuparrow!', 'symbolplus!',
-            'symbolsolidbox!', 'symbolsolidcircle!', 'symbolsoliddiamond!', 'symbolsoliddownarrow!',
-            'symbolsoliduparrow!', 'symbolstar!', 'symbolx!', 'system!',
-            'systemerror!', 'systemfunctions!', 'systemkey!', 'tab!',
-            'tabsonbottom!', 'tabsonbottomandtop!', 'tabsonleft!', 'tabsonleftandright!',
-            'tabsonright!', 'tabsonrightandleft!', 'tabsontop!', 'tabsontopandbottom!',
-            'text!', 'thaicharset!', 'thread!', 'tile!',
-            'tilehorizontal!', 'time!', 'timemask!', 'timer!',
-            'timernone!', 'timing!', 'tobottom!', 'toolbarmoved!',
-            'top!', 'topic!', 'topmost!', 'totop!',
-            'traceactivitynode!', 'traceatomic!', 'tracebeginend!', 'traceerror!',
-            'traceesql!', 'tracefile!', 'tracegarbagecollect!', 'tracegeneralerror!',
-            'tracein!', 'traceline!', 'tracenomorenodes!', 'tracenotstartederror!',
-            'traceobject!', 'traceout!', 'traceroutine!', 'tracestartederror!',
-            'tracetree!', 'tracetreeerror!', 'tracetreeesql!', 'tracetreegarbagecollect!',
-            'tracetreeline!', 'tracetreenode!', 'tracetreeobject!', 'tracetreeroutine!',
-            'tracetreeuser!', 'traceuser!', 'transaction!', 'transactionserver!',
-            'transparent!', 'transport!', 'treeview!', 'treeviewitem!',
-            'turkishcharset!', 'typeboolean!', 'typecategory!', 'typecategoryaxis!',
-            'typecategorylabel!', 'typedata!', 'typedate!', 'typedatetime!',
-            'typedecimal!', 'typedefinition!', 'typedouble!', 'typegraph!',
-            'typeinteger!', 'typelegend!', 'typelong!', 'typereal!',
-            'typeseries!', 'typeseriesaxis!', 'typeserieslabel!', 'typestring!',
-            'typetime!', 'typetitle!', 'typeuint!', 'typeulong!',
-            'typeunknown!', 'typevalueaxis!', 'typevaluelabel!', 'ultrasparc!',
-            'unboundedarray!', 'underline!', 'underlined!', 'unsignedinteger!',
-            'unsignedlong!', 'unsorted!', 'uparrow!', 'updateend!',
-            'updatestart!', 'upper!', 'userdefinedsort!', 'userobject!',
-            'variable!', 'variableargument!', 'variablecardinalitydefinition!', 'variabledefinition!',
-            'variableglobal!', 'variableinstance!', 'variablelocal!', 'variableshared!',
-            'varlistargument!', 'vbxvisual!', 'vcenter!', 'vertical!',
-            'vietnamesecharset!', 'viewchange!', 'vprogressbar!', 'vscrollbar!',
-            'vticksonboth!', 'vticksonleft!', 'vticksonneither!', 'vticksonright!',
-            'vtrackbar!', 'window!', 'windowmenu!', 'windowobject!',
-            'windows!', 'windowsnt!', 'wk1!', 'wks!',
-            'wmf!', 'write!', 'xpixelstounits!', 'xunitstopixels!',
-            'xvalue!', 'yesno!', 'yesnocancel!', 'ypixelstounits!',
-            'yunitstopixels!',
-            'yvalue!',
-            'zoom!'
-            )
-        ),
-    'SYMBOLS' => array(
-            0 => array('(', ')', '[', ']', '{', '}'),
-            1 => array('|'),
-            2 => array('+', '-', '*', '/'),
-            3 => array('=', '&lt;', '>', '^')
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false,
-        2 => false,
-        3 => false
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #008000; font-weight: bold;',
-            2 => 'color: #990099; font-weight: bold;',
-            3 => 'color: #330099; font-weight: bold;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #0000ff; font-weight: bold;',
-            'MULTI' => 'color: #0000ff; font-weight: bold;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #000000;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #800000;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #330099; font-weight: bold;'
-            ),
-        'METHODS' => array(
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #000000;',
-            1 => 'color: #ffff00; background-color:#993300; font-weight: bold',
-            2 => 'color: #000000;',
-            3 => 'color: #000000;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #800000; font-weight: bold;'
-            ),
-        'SCRIPT' => array(
-            ),
-        'REGEXPS' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => ''
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(
-        ),
-    'REGEXPS' => array(
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/powershell.php b/wiki/vendor/geshi/geshi/src/geshi/powershell.php
deleted file mode 100644
index 4230459..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/powershell.php
+++ /dev/null
@@ -1,275 +0,0 @@
-<?php
-/*************************************************************************************
- * powershell.php
- * ---------------------------------
- * Author: Frode Aarebrot (frode@aarebrot.net)
- * Copyright: (c) 2008 Frode Aarebrot (http://www.aarebrot.net)
- * Release Version: 1.0.9.0
- * Date Started: 2008/06/20
- *
- * PowerShell language file for GeSHi.
- *
- * I've tried to make this language file as true to the highlighting in PowerGUI as
- * possible. Unfortunately it's not 100% complete, although it is pretty close.
- *
- * I've included some classes and their members, but there's tons and tons of these.
- * I suggest you add the ones you need yourself. I've included a few Sharepoint ones
- * in this language file.
- *
- * CHANGES
- * -------
- * 2008/06/20 (1.0.8)
- *  -  First Release
- *
- * TODO (updated 2008/06/20)
- * -------------------------
- * - Color text between Cmdlets/Aliases and pipe/end-of-line
- * - Try and get -- and ++ to work in the KEYWORDS array with the other operators
- *
- *************************************************************************************
- *
- *     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' => 'PowerShell',
-    'COMMENT_SINGLE' => array(1 => '#'),
-    'COMMENT_MULTI' => array('<#' => '#>'),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array("'", '"'),
-    'ESCAPE_CHAR' => '`',
-    'KEYWORDS' => array(
-        1 => array(
-            // Cmdlets
-            'Add-Content', 'Add-History', 'Add-Member', 'Add-PSSnapin', 'Clear-Content', 'Clear-Item',
-            'Clear-ItemProperty', 'Clear-Variable', 'Compare-Object', 'ConvertFrom-SecureString',
-            'Convert-Path', 'ConvertTo-Html', 'ConvertTo-SecureString', 'Copy-Item', 'Copy-ItemProperty',
-            'Export-Alias', 'Export-Clixml', 'Export-Console', 'Export-Csv', 'ForEach-Object',
-            'Format-Custom', 'Format-List', 'Format-Table', 'Format-Wide', 'Get-Acl', 'Get-Alias',
-            'Get-AuthenticodeSignature', 'Get-ChildItem', 'Get-Command', 'Get-Content', 'Get-Credential',
-            'Get-Culture', 'Get-Date', 'Get-EventLog', 'Get-ExecutionPolicy', 'Get-Help', 'Get-History',
-            'Get-Host', 'Get-Item', 'Get-ItemProperty', 'Get-Location', 'Get-Member',
-            'Get-PfxCertificate', 'Get-Process', 'Get-PSDrive', 'Get-PSProvider', 'Get-PSSnapin',
-            'Get-Service', 'Get-TraceSource', 'Get-UICulture', 'Get-Unique', 'Get-Variable',
-            'Get-WmiObject', 'Group-Object', 'Import-Alias', 'Import-Clixml', 'Import-Csv',
-            'Invoke-Expression', 'Invoke-History', 'Invoke-Item', 'Join-Path', 'Measure-Command',
-            'Measure-Object', 'Move-Item', 'Move-ItemProperty', 'New-Alias', 'New-Item',
-            'New-ItemProperty', 'New-Object', 'New-PSDrive', 'New-Service', 'New-TimeSpan',
-            'New-Variable', 'Out-Default', 'Out-File', 'Out-Host', 'Out-Null', 'Out-Printer',
-            'Out-String', 'Pop-Location', 'Push-Location', 'Read-Host', 'Remove-Item',
-            'Remove-ItemProperty', 'Remove-PSDrive', 'Remove-PSSnapin', 'Remove-Variable', 'Rename-Item',
-            'Rename-ItemProperty', 'Resolve-Path', 'Restart-Service', 'Resume-Service', 'Select-Object',
-            'Select-String', 'Set-Acl', 'Set-Alias', 'Set-AuthenticodeSignature', 'Set-Content',
-            'Set-Date', 'Set-ExecutionPolicy', 'Set-Item', 'Set-ItemProperty', 'Set-Location',
-            'Set-PSDebug', 'Set-Service', 'Set-TraceSource', 'Set-Variable', 'Sort-Object', 'Split-Path',
-            'Start-Service', 'Start-Sleep', 'Start-Transcript', 'Stop-Process', 'Stop-Service',
-            'Stop-Transcript', 'Suspend-Service', 'Tee-Object', 'Test-Path', 'Trace-Command',
-            'Update-FormatData', 'Update-TypeData', 'Where-Object', 'Write-Debug', 'Write-Error',
-            'Write-Host', 'Write-Output', 'Write-Progress', 'Write-Verbose', 'Write-Warning'
-            ),
-        2 => array(
-            // Aliases
-            'ac', 'asnp', 'clc', 'cli', 'clp', 'clv', 'cpi', 'cpp', 'cvpa', 'diff', 'epal', 'epcsv', 'fc',
-            'fl', 'ft', 'fw', 'gal', 'gc', 'gci', 'gcm', 'gdr', 'ghy', 'gi', 'gl', 'gm',
-            'gp', 'gps', 'group', 'gsv', 'gsnp', 'gu', 'gv', 'gwmi', 'iex', 'ihy', 'ii', 'ipal', 'ipcsv',
-            'mi', 'mp', 'nal', 'ndr', 'ni', 'nv', 'oh', 'rdr', 'ri', 'rni', 'rnp', 'rp', 'rsnp', 'rv',
-            'rvpa', 'sal', 'sasv', 'sc', 'select', 'si', 'sl', 'sleep', 'sort', 'sp', 'spps', 'spsv', 'sv',
-            'tee', 'write', 'cat', 'cd', 'clear', 'cp', 'h', 'history', 'kill', 'lp', 'ls',
-            'mount', 'mv', 'popd', 'ps', 'pushd', 'pwd', 'r', 'rm', 'rmdir', 'echo', 'cls', 'chdir',
-            'copy', 'del', 'dir', 'erase', 'move', 'rd', 'ren', 'set', 'type'
-            ),
-        3 => array(
-            // Reserved words
-            'break', 'continue', 'do', 'for', 'foreach', 'while', 'if', 'switch', 'until', 'where',
-            'function', 'filter', 'else', 'elseif', 'in', 'return', 'param', 'throw', 'trap'
-            ),
-        4 => array(
-            // Operators
-            '-eq', '-ne', '-gt', '-ge', '-lt', '-le', '-ieq', '-ine', '-igt', '-ige', '-ilt', '-ile',
-            '-ceq', '-cne', '-cgt', '-cge', '-clt', '-cle', '-like', '-notlike', '-match', '-notmatch',
-            '-ilike', '-inotlike', '-imatch', '-inotmatch', '-clike', '-cnotlike', '-cmatch', '-cnotmatch',
-            '-contains', '-notcontains', '-icontains', '-inotcontains', '-ccontains', '-cnotcontains',
-            '-isnot', '-is', '-as', '-replace', '-ireplace', '-creplace', '-and', '-or', '-band', '-bor',
-            '-not', '-bnot', '-f', '-casesensitive', '-exact', '-file', '-regex', '-wildcard'
-            ),
-        5 => array(
-            // Options
-            '-Year', '-Wrap', '-Word', '-Width', '-WhatIf', '-Wait', '-View', '-Verbose', '-Verb',
-            '-Variable', '-ValueOnly', '-Value', '-Unique', '-UFormat', '-TypeName', '-Trace', '-TotalCount',
-            '-Title', '-TimestampServer', '-TargetObject', '-Syntax', '-SyncWindow', '-Sum', '-String',
-            '-Strict', '-Stream', '-Step', '-Status', '-Static', '-StartupType', '-Start', '-StackName',
-            '-Stack', '-SourceId', '-SimpleMatch', '-ShowError', '-Separator', '-SecureString', '-SecureKey',
-            '-SecondValue', '-SecondsRemaining', '-Seconds', '-Second', '-Scope', '-Root', '-Role',
-            '-Resolve', '-RemoveListener', '-RemoveFileListener', '-Registered', '-ReferenceObject',
-            '-Recurse', '-RecommendedAction', '-ReadCount', '-Quiet', '-Query', '-Qualifier', '-PSSnapin',
-            '-PSProvider', '-PSHost', '-PSDrive', '-PropertyType', '-Property', '-Prompt', '-Process',
-            '-PrependPath', '-PercentComplete', '-Pattern', '-PathType', '-Path', '-PassThru', '-ParentId',
-            '-Parent', '-Parameter', '-Paging', '-OutVariable', '-OutBuffer', '-Option', '-OnType', '-Off',
-            '-Object', '-Noun', '-NoTypeInformation', '-NoQualifier', '-NoNewline', '-NoElement',
-            '-NoClobber', '-NewName', '-Newest', '-Namespace', '-Name', '-Month', '-Minutes', '-Minute',
-            '-Minimum', '-Milliseconds', '-Message', '-MemberType', '-Maximum', '-LogName', '-LiteralPath',
-            '-LiteralName', '-ListenerOption', '-List', '-Line', '-Leaf', '-Last', '-Key', '-ItemType',
-            '-IsValid', '-IsAbsolute', '-InputObject', '-IncludeEqual', '-IncludeChain', '-Include',
-            '-IgnoreWhiteSpace', '-Id', '-Hours', '-Hour', '-HideTableHeaders', '-Head', '-GroupBy',
-            '-Functionality', '-Full', '-Format', '-ForegroundColor', '-Force', '-First', '-FilterScript',
-            '-Filter', '-FilePath', '-Expression', '-ExpandProperty', '-Expand', '-ExecutionPolicy',
-            '-ExcludeProperty', '-ExcludeDifferent', '-Exclude', '-Exception', '-Examples', '-ErrorVariable',
-            '-ErrorRecord', '-ErrorId', '-ErrorAction', '-End', '-Encoding', '-DisplayName', '-DisplayHint',
-            '-DisplayError', '-DifferenceObject', '-Detailed', '-Destination', '-Description', '-Descending',
-            '-Depth', '-DependsOn', '-Delimiter', '-Debugger', '-Debug', '-Days', '-Day', '-Date',
-            '-CurrentOperation', '-Culture', '-Credential', '-Count', '-Container', '-Confirm',
-            '-ComputerName', '-Component', '-Completed', '-ComObject', '-CommandType', '-Command',
-            '-Column', '-Class', '-ChildPath', '-Character', '-Certificate', '-CategoryTargetType',
-            '-CategoryTargetName', '-CategoryReason', '-CategoryActivity', '-Category', '-CaseSensitive',
-            '-Body', '-BinaryPathName', '-Begin', '-BackgroundColor', '-Average', '-AutoSize', '-Audit',
-            '-AsString', '-AsSecureString', '-AsPlainText', '-As', '-ArgumentList', '-AppendPath', '-Append',
-            '-Adjust', '-Activity', '-AclObject'
-            ),
-        6 => array(
-            '_','args','DebugPreference','Error','ErrorActionPreference',
-            'foreach','Home','Host','Input','LASTEXITCODE','MaximumAliasCount',
-            'MaximumDriveCount','MaximumFunctionCount','MaximumHistoryCount',
-            'MaximumVariableCount','OFS','PsHome',
-            'ReportErrorShowExceptionClass','ReportErrorShowInnerException',
-            'ReportErrorShowSource','ReportErrorShowStackTrace',
-            'ShouldProcessPreference','ShouldProcessReturnPreference',
-            'StackTrace','VerbosePreference','WarningPreference','PWD'
-            )
-        ),
-    'SYMBOLS' => array(
-        '(', ')', '[', ']', '{', '}', '=', '<', '>', '@', '|', '&', ',', '?',
-        '+=', '-=', '*=', '/=', '%=', '*', '/', '%', '!', '+', '-', '++', '--'
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false,
-        2 => false,
-        3 => false,
-        4 => false,
-        5 => false,
-        6 => true
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #008080; font-weight: bold;',
-            2 => 'color: #008080; font-weight: bold;',
-            3 => 'color: #0000FF;',
-            4 => 'color: #FF0000;',
-            5 => 'color: #008080; font-style: italic;',
-            6 => 'color: #000080;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #008000;',
-            'MULTI' => 'color: #008000;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #008080; font-weight: bold;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #000000;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #800000;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #804000;'
-            ),
-        'METHODS' => array(
-            0 => 'color: pink;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: pink;'
-            ),
-        'REGEXPS' => array(
-            0 => 'color: #800080;',
-            3 => 'color: #008080;',
-            4 => 'color: #008080;',
-            5 => 'color: #800000;',
-            6 => 'color: #000080;'
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => '',
-        4 => '',
-        5 => '',
-        6 => 'about:blank',
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(
-        ),
-    'REGEXPS' => array(
-        // special after pipe
-        3 => array(
-            GESHI_SEARCH => '(\[)(int|long|string|char|bool|byte|double|decimal|float|single|regex|array|xml|scriptblock|switch|hashtable|type|ref|psobject|wmi|wmisearcher|wmiclass|object)((\[.*\])?\])',
-            GESHI_REPLACE => '\2',
-            GESHI_MODIFIERS => 'si',
-            GESHI_BEFORE => '\1',
-            GESHI_AFTER => '\3'
-            ),
-        // Classes
-        4 => array(
-            GESHI_SEARCH => '(\[)(System\.Reflection\.Assembly|System\.Net\.CredentialCache|Microsoft\.SharePoint\.SPFileLevel|Microsoft\.SharePoint\.Publishing\.PublishingWeb|Microsoft\.SharePoint\.Publishing|Microsoft\.SharePoint\.SPWeb)(\])',
-            GESHI_REPLACE => '\2',
-            GESHI_MODIFIERS => 'i',
-            GESHI_BEFORE => '\1',
-            GESHI_AFTER => '\3'
-            ),
-        // Members
-        // There's about a hundred million of these, add the ones you need as you need them
-        5 => array (
-            GESHI_SEARCH => '(::)(ReflectionOnlyLoadFrom|ReflectionOnlyLoad|ReferenceEquals|LoadWithPartialName|LoadFrom|LoadFile|Load|GetExecutingAssembly|GetEntryAssembly|GetCallingAssembly|GetAssembly|Equals|DefaultNetworkCredentials|DefaultCredentials|CreateQualifiedName|Checkout|Draft|Published|IsPublishingWeb)',
-            GESHI_REPLACE => '\2',
-            GESHI_MODIFIERS => '',
-            GESHI_BEFORE => '\1',
-            GESHI_AFTER => ''
-            ),
-        // Special variables
-        6 => array(
-            GESHI_SEARCH => '(\$)(\$[_\^]?|\?)(?!\w)',
-            GESHI_REPLACE => '\1\2',
-            GESHI_MODIFIERS => '',
-            GESHI_BEFORE => '',
-            GESHI_AFTER => ''
-            ),
-        // variables
-        //BenBE: Please note that changes here and in Keyword group 6 have to be synchronized in order to work properly.
-        //This Regexp must only match, if keyword group 6 doesn't. If this assumption fails
-        //Highlighting of the keywords will be incomplete or incorrect!
-        0 => "(?<!\\\$|>)[\\\$](\w+)(?=[^|\w])",
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        ),
-    'PARSER_CONTROL' => array(
-        'KEYWORDS' => array(
-            4 => array(
-                'DISALLOWED_AFTER' => '(?![a-zA-Z])',
-                'DISALLOWED_BEFORE' => ''
-                ),
-            6 => array(
-                'DISALLOWED_BEFORE' => '(?<!\$>)\$'
-                )
-            )
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/proftpd.php b/wiki/vendor/geshi/geshi/src/geshi/proftpd.php
deleted file mode 100644
index 99ae966..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/proftpd.php
+++ /dev/null
@@ -1,372 +0,0 @@
-<?php
-/*************************************************************************************
- * proftpd.php
- * ----------
- * Author: Benny Baumann (BenBE@geshi.org)
- * Copyright: (c) 2010 Benny Baumann (http://qbnz.com/highlighter)
- * Release Version: 1.0.9.0
- * Date Started: 2011/01/25
- *
- * ProFTPd language file for GeSHi.
- * Words are scraped from their documentation
- *
- * CHANGES
- * -------
- * 2004/08/05 (1.0.8.10)
- *   -  First Release
- *
- * TODO (updated 2011/01/25)
- * -------------------------
- *
- *************************************************************************************
- *
- *     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' => 'ProFTPd configuration',
-    'COMMENT_SINGLE' => array(1 => '#'),
-    'COMMENT_MULTI' => array(),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array("'", '"'),
-    'ESCAPE_CHAR' => '\\',
-    'KEYWORDS' => array(
-        /*keywords*/
-        1 => array(
-            //mod_auth
-            'AccessDenyMsg', 'AccessGrantMsg', 'AnonRejectePasswords',
-            'AnonRequirePassword', 'AuthAliasOnly', 'AuthUsingAlias',
-            'CreateHome', 'DefaultChdir', 'DefaultRoot', 'GroupPassword',
-            'LoginPasswordPrompt', 'MaxClients', 'MaxClientsPerClass',
-            'MaxClientsPerHost', 'MaxClientsPerUser', 'MaxConnectionsPerHost',
-            'MaxHostsPerUser', 'MaxLoginAttempts', 'RequireValidShell',
-            'RootLogin', 'RootRevoke', 'TimeoutLogin', 'TimeoutSession',
-            'UseFtpUsers', 'UserAlias', 'UserDirRoot', 'UserPassword',
-
-            //mod_auth_file
-            'AuthGroupFile', 'AuthUserFile',
-
-            //mod_auth_pam
-            'AuthPAM', 'AuthPAMConfig',
-
-            //mod_auth_unix
-            'PersistentPasswd',
-
-            //mod_ban
-            'BanControlsACLs', 'BanEngine', 'BanLog', 'BanMessage', 'BanOnEvent',
-            'BanTable',
-
-            //mod_cap
-            'CapabilitiesEngine', 'CapabilitiesSet',
-
-            //mod_core
-            'Allow', 'AllowAll', 'AllowClass', 'AllowFilter',
-            'AllowForeignAddress', 'AllowGroup', 'AllowOverride',
-            'AllowRetrieveRestart', 'AllowStoreRestart', 'AllowUser',
-            'AnonymousGroup', 'AuthOrder', 'Bind', 'CDPath', 'Class', 'Classes',
-            'CommandBufferSize', 'DebugLevel', 'DefaultAddress',
-            'DefaultServer', 'DefaultTransferMode', 'DeferWelcome', 'Define',
-            'Deny', 'DenyAll', 'DenyClass', 'DenyFilter', 'DenyGroup',
-            'DenyUser', 'DisplayChdir', 'DisplayConnect', 'DisplayFirstChdir',
-            'DisplayGoAway', 'DisplayLogin', 'DisplayQuit', 'From', 'Group',
-            'GroupOwner', 'HideFiles', 'HideGroup', 'HideNoAccess', 'HideUser',
-            'IdentLookups', 'IgnoreHidden', 'Include', 'MasqueradeAddress',
-            'MaxConnectionRate', 'MaxInstances', 'MultilineRFC2228', 'Order',
-            'PassivePorts', 'PathAllowFilter', 'PathDenyFilter', 'PidFile',
-            'Port', 'RLimitCPU', 'RLimitMemory', 'RLimitOpenFiles', 'Satisfy',
-            'ScoreboardFile', 'ServerAdmin', 'ServerIdent', 'ServerName',
-            'ServerType', 'SetEnv', 'SocketBindTight', 'SocketOptions',
-            'SyslogFacility', 'SyslogLevel', 'tcpBackLog', 'tcpNoDelay',
-            'TimeoutIdle', 'TimeoutLinger', 'TimesGMT', 'TransferLog', 'Umask',
-            'UnsetEnv', 'UseIPv6', 'User', 'UseReverseDNS', 'UserOwner',
-            'UseUTF8', 'WtmpLog',
-
-            //mod_ctrls_admin
-            'AdminControlsACLs', 'AdminControlsEngine',
-
-            //mod_delay
-            'DelayEngine', 'DelayTable',
-
-            //mod_dynmasq
-            'DynMasqRefresh',
-
-            //mod_exec
-            'ExecBeforeCommand', 'ExecEngine', 'ExecEnviron', 'ExecLog',
-            'ExecOnCommand', 'ExecOnConnect', 'ExecOnError', 'ExecOnEvent',
-            'ExecOnExit', 'ExecOnRestart', 'ExecOptions', 'ExecTimeout',
-
-            //mod_ldap
-            'LDAPAliasDereference', 'LDAPAttr', 'LDAPAuthBinds',
-            'LDAPDefaultAuthScheme', 'LDAPDefaultGID', 'LDAPDefaultUID',
-            'LDAPDNInfo', 'LDAPDoAuth', 'LDAPDoGIDLookups',
-            'LDAPDoQuotaLookups', 'LDAPDoUIDLookups',
-            'LDAPForceGeneratedHomedir', 'LDAPForceHomedirOnDemand',
-            'LDAPGenerateHomedir', 'LDAPGenerateHomedirPrefix',
-            'LDAPGenerateHomedirPrefixNoUsername', 'LDAPHomedirOnDemand',
-            'LDAPHomedirOnDemandPrefix', 'LDAPHomedirOnDemandPrefixNoUsername',
-            'LDAPHomedirOnDemandSuffix', 'LDAPNegativeCache',
-            'LDAPProtocolVersion', 'LDAPQueryTimeout', 'LDAPSearchScope',
-            'LDAPServer',
-
-            //mod_load
-            'MaxLoad',
-
-            //mod_log
-            'AllowLogSymlinks', 'ExtendedLog', 'LogFormat', 'ServerLog',
-            'SystemLog',
-
-            //mod_ls'
-            'DirFakeGroup', 'DirFakeMode', 'DirFakeUser', 'ListOptions',
-            'ShowSymlinks', 'UseGlobbing',
-
-            //mod_quotatab
-            'QuotaDirectoryTally', 'QuotaDisplayUnits', 'QuotaEngine',
-            'QuotaExcludeFilter', 'QuotaLimitTable', 'QuotaLock', 'QuotaLog',
-            'QuotaOptions', 'QuotaShowQuotas', 'QuotaTallyTable',
-
-            //mod_quotatab_file
-
-            //mod_quotatab_ldap
-
-            //mod_quotatab_sql
-
-            //mod_radius
-            'RadiusAcctServer', 'RadiusAuthServer', 'RadiusEngine',
-            'RadiusGroupInfo', 'RadiusLog', 'RadiusNASIdentifier',
-            'RadiusQuotaInfo', 'RadiusRealm', 'RadiusUserInfo', 'RadiusVendor',
-
-            //mod_ratio
-            'AnonRatio', 'ByteRatioErrMsg', 'CwdRatioMsg', 'FileRatioErrMsg',
-            'GroupRatio', 'HostRatio', 'LeechRatioMsg', 'RatioFile', 'Ratios',
-            'RatioTempFile', 'SaveRatios', 'UserRatio',
-
-            //mod_readme
-            'DisplayReadme',
-
-            //mod_rewrite
-            'RewriteCondition', 'RewriteEngine', 'RewriteLock', 'RewriteLog',
-            'RewriteMap', 'RewriteRule',
-
-            //mod_sftp
-            'SFTPAcceptEnv', 'SFTPAuthMethods', 'SFTPAuthorizedHostKeys',
-            'SFTPAuthorizedUserKeys', 'SFTPCiphers', 'SFTPClientMatch',
-            'SFTPCompression', 'SFTPCryptoDevice', 'SFTPDHParamFile',
-            'SFTPDigests', 'SFTPDisplayBanner', 'SFTPEngine', 'SFTPExtensions',
-            'SFTPHostKey', 'SFTPKeyBlacklist', 'SFTPKeyExchanges', 'SFTPLog',
-            'SFTPMaxChannels', 'SFTPOptions', 'SFTPPassPhraseProvider',
-            'SFTPRekey', 'SFTPTrafficPolicy',
-
-            //mod_sftp_pam
-            'SFTPPAMEngine', 'SFTPPAMOptions', 'SFTPPAMServiceName',
-
-            //mod_sftp_sql
-
-            //mod_shaper
-            'ShaperAll', 'ShaperControlsACLs', 'ShaperEngine', 'ShaperLog',
-            'ShaperSession', 'ShaperTable',
-
-            //mod_sql
-            'SQLAuthenticate', 'SQLAuthTypes', 'SQLBackend', 'SQLConnectInfo',
-            'SQLDefaultGID', 'SQLDefaultHomedir', 'SQLDefaultUID', 'SQLEngine',
-            'SQLGroupInfo', 'SQLGroupWhereClause', 'SQLHomedirOnDemand',
-            'SQLLog', 'SQLLogFile', 'SQLMinID', 'SQLMinUserGID',
-            'SQLMinUserUID', 'SQLNamedQuery', 'SQLNegativeCache', 'SQLOptions',
-            'SQLRatios', 'SQLRatioStats', 'SQLShowInfo', 'SQLUserInfo',
-            'SQLUserWhereClause',
-
-            //mod_sql_passwd
-            'SQLPasswordEncoding', 'SQLPasswordEngine', 'SQLPasswordSaltFile',
-            'SQLPasswordUserSalt',
-
-            //mod_tls
-            'TLSCACertificateFile', 'TLSCACertificatePath',
-            'TLSCARevocationFile', 'TLSCARevocationPath',
-            'TLSCertificateChainFile', 'TLSCipherSuite', 'TLSControlsACLs',
-            'TLSCryptoDevice', 'TLSDHParamFile', 'TLSDSACertificateFile',
-            'TLSDSACertificateKeyFile', 'TLSEngine', 'TLSLog', 'TLSOptions',
-            'TLSPKCS12File', 'TLSPassPhraseProvider', 'TLSProtocol',
-            'TLSRandomSeed', 'TLSRenegotiate', 'TLSRequired',
-            'TLSRSACertificateFile', 'TLSRSACertificateKeyFile',
-            'TLSSessionCache', 'TLSTimeoutHandshake', 'TLSVerifyClient',
-            'TLSVerifyDepth', 'TLSVerifyOrder',
-
-            //mod_tls_shmcache
-
-            //mod_unique_id
-            'UniqueIDEngine',
-
-            //mod_wrap
-            'TCPAccessFiles', 'TCPAccessSyslogLevels', 'TCPGroupAccessFiles',
-            'TCPServiceName', 'TCPUserAccessFiles',
-
-            //mod_wrap2
-            'WrapAllowMsg', 'WrapDenyMsg', 'WrapEngine', 'WrapGroupTables',
-            'WrapLog', 'WrapServiceName', 'WrapTables', 'WrapUserTables',
-
-            //mod_wrap2_file
-
-            //mod_wrap2_sql
-
-            //mod_xfer
-            'AllowOverwrite', 'DeleteAbortedStores', 'DisplayFileTransfer',
-            'HiddenStor', 'HiddenStores', 'MaxRetrieveFileSize',
-            'MaxStoreFileSize', 'StoreUniquePrefix', 'TimeoutNoTransfer',
-            'TimeoutStalled', 'TransferRate', 'UseSendfile',
-
-            //unknown
-            'ScoreboardPath', 'ScoreboardScrub'
-            ),
-        /*keywords 3*/
-        3 => array(
-            //mod_core
-            'Anonymous',
-            'Class',
-            'Directory',
-            'IfDefine',
-            'IfModule',
-            'Limit',
-            'VirtualHost',
-
-            //mod_ifsession
-            'IfClass', 'IfGroup', 'IfUser',
-
-            //mod_version
-            'IfVersion'
-            ),
-        /*permissions*/
-        4 => array(
-            //mod_core
-            'ALL',
-            'CDUP',
-            'CMD',
-            'CWD',
-            'DELE',
-            'DIRS',
-            'LOGIN',
-            'MKD',
-            'READ',
-            'RETR',
-            'RMD',
-            'RNFR',
-            'RNTO',
-            'STOR',
-            'WRITE',
-            'XCWD',
-            'XMKD',
-            'XRMD',
-
-            //mod_copy
-            'SITE_CPFR', 'SITE_CPTO',
-
-            //mod_quotatab
-            'SITE_QUOTA',
-
-            //mod_site
-            'SITE_HELP', 'SITE_CHMOD', 'SITE_CHGRP',
-
-            //mod_site_misc
-            'SITE_MKDIR', 'SITE_RMDIR', 'SITE_SYMLINK', 'SITE_UTIME',
-            ),
-        /*keywords 2*/
-        2 => array(
-            'all','on','off','yes','no',
-            'standalone', 'inetd',
-            'default', 'auth', 'write',
-            'internet', 'local', 'limit', 'ip',
-            'from'
-            ),
-        ),
-    'SYMBOLS' => array(
-        '+', '-'
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false,
-        2 => false,
-        3 => false,
-        4 => false,
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #00007f;',
-            2 => 'color: #0000ff;',
-            3 => 'color: #000000; font-weight:bold;',
-            4 => 'color: #000080; font-weight:bold;',
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #adadad; font-style: italic;',
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #000099; font-weight: bold;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #339933;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #7f007f;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #ff0000;'
-            ),
-        'METHODS' => array(
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #008000;'
-            ),
-        'REGEXPS' => array(
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => 'http://www.google.com/search?hl=en&amp;q={FNAMEL}+site:www.proftpd.org+inurl:docs&amp;btnI=I%27m%20Feeling%20Lucky',
-        2 => '',
-        3 => 'http://www.google.com/search?hl=en&amp;q={FNAMEL}+site:www.proftpd.org+inurl:docs&amp;btnI=I%27m%20Feeling%20Lucky',
-        4 => ''
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(
-        ),
-    'REGEXPS' => array(
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        ),
-    'PARSER_CONTROL' => 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/wiki/vendor/geshi/geshi/src/geshi/progress.php b/wiki/vendor/geshi/geshi/src/geshi/progress.php
deleted file mode 100644
index 1541472..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/progress.php
+++ /dev/null
@@ -1,483 +0,0 @@
-<?php
-/*************************************************************************************
- * progress.php
- * --------
- * 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.9.0
- * Date Started: 2008/07/11
- *
- * Progress language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2008/07/11 (1.0.8)
- *   -  First Release
- *
- * TODO (updated 2008/07/11)
- * -------------------------
- * * Clean up the keyword list
- * * Sort Keyword lists by Control Structures, Predefined functions and other important keywords
- * * Complete language support
- *
- *************************************************************************************
- *
- *     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' => 'Progress',
-    'COMMENT_SINGLE' => array(),
-    'COMMENT_MULTI' => array('/*' => '*/'),
-    'CASE_KEYWORDS' => GESHI_CAPS_UPPER,
-    'QUOTEMARKS' => array("'", '"'),
-    'ESCAPE_CHAR' => '',
-    'KEYWORDS' => array (
-        1 => array(
-            'ACCUMULATE','APPLY','ASSIGN','BELL','QUERY',
-            'BUFFER-COMPARE','BUFFER-COPY','CALL','CASE',
-            'CHOOSE','CLASS','CLOSE QUERY','each','WHERE',
-            'CLOSE STORED-PROCEDURE','COLOR','COMPILE','CONNECT',
-            'CONSTRUCTOR','COPY-LOB','CREATE','CREATE ALIAS',
-            'CREATE BROWSE','CREATE BUFFER','CREATE CALL','CREATE CLIENT-PRINCIPAL',
-            'CREATE DATABASE','CREATE DATASET','CREATE DATA-SOURCE','CREATE QUERY',
-            'CREATE SAX-attributeS','CREATE SAX-READER','CREATE SAX-WRITER','CREATE SERVER',
-            'CREATE SERVER-SOCKET','CREATE SOAP-HEADER','CREATE SOAP-HEADER-ENTRYREF','CREATE SOCKET',
-            'CREATE TEMP-TABLE','CREATE WIDGET','CREATE widget-POOL','CREATE X-DOCUMENT',
-            'CREATE X-NODEREF','CURRENT-LANGUAGE','CURRENT-VALUE','DDE ADVISE',
-            'DDE EXECUTE','DDE GET','DDE INITIATE','DDE REQUEST',
-            'DDE SEND','DDE TERMINATE','DEFINE BROWSE','DEFINE BUFFER','DEFINE',
-            'DEFINE BUTTON','DEFINE DATASET','DEFINE DATA-SOURCE','DEFINE FRAME','DEF','VAR',
-            'DEFINE IMAGE','DEFINE MENU','DEFINE PARAMETER','DEFINE property','PARAM',
-            'DEFINE QUERY','DEFINE RECTANGLE','DEFINE STREAM','DEFINE SUB-MENU',
-            'DEFINE TEMP-TABLE','DEFINE WORKFILE','DEFINE WORK-TABLE',
-            'DELETE','DELETE ALIAS','DELETE object','DELETE PROCEDURE',
-            'DELETE widget','DELETE widget-POOL','DESTRUCTOR','DICTIONARY',
-            'DISABLE','DISABLE TRIGGERS','DISCONNECT','DISPLAY',
-            'DO','DOS','DOWN','DYNAMIC-CURRENT-VALUE',
-            'ELSE','EMPTY TEMP-TABLE','ENABLE','END',
-            'ENTRY','FIND','AND',
-            'FIX-CODEPAGE','FOR','FORM','FRAME-VALUE',
-            'GET','GET-KEY-VALUE','HIDE','IF',
-            'IMPORT','INPUT CLEAR','INPUT CLOSE','INPUT FROM','input',
-            'INPUT THROUGH','INPUT-OUTPUT CLOSE','INPUT-OUTPUT THROUGH',
-            'INTERFACE','LEAVE','BREAK',
-            'LOAD-PICTURE','MESSAGE','method','NEXT','prev',
-            'NEXT-PROMPT','ON','OPEN QUERY','OS-APPEND',
-            'OS-COMMAND','OS-COPY','OS-CREATE-DIR','OS-DELETE',
-            'OS-RENAME','OUTPUT CLOSE','OUTPUT THROUGH','OUTPUT TO',
-            'OVERLAY','PAGE','PAUSE','PROCEDURE',
-            'PROCESS EVENTS','PROMPT-FOR','PROMSGS','PROPATH',
-            'PUBLISH','PUT','PUT CURSOR','PUT SCREEN',
-            'PUT-BITS','PUT-BYTE','PUT-BYTES','PUT-DOUBLE',
-            'PUT-FLOAT','PUT-INT64','PUT-KEY-VALUE','PUT-LONG',
-            'PUT-SHORT','PUT-STRING','PUT-UNSIGNED-LONG','PUT-UNSIGNED-SHORT',
-            'QUIT','RAW-TRANSFER','READKEY','RELEASE',
-            'RELEASE EXTERNAL','RELEASE object','REPEAT','REPOSITION',
-            'RUN','RUN STORED-PROCEDURE','RUN SUPER',
-            'SAVE CACHE','SCROLL','SEEK','SET',
-            'SET-BYTE-ORDER','SET-POINTER-VALUE','SET-SIZE','SHOW-STATS',
-            'STATUS','STOP','SUBSCRIBE','SUBSTRING',
-            'system-DIALOG COLOR','system-DIALOG FONT','system-DIALOG GET-DIR','system-DIALOG GET-FILE',
-            'system-DIALOG PRINTER-SETUP','system-HELP','THEN','THIS-object',
-            'TRANSACTION-MODE AUTOMATIC','TRIGGER PROCEDURE','UNDERLINE','UNDO',
-            'UNIX','UNLOAD','UNSUBSCRIBE','UP','STRING',
-            'UPDATE','USE','USING','substr','SKIP','CLOSE',
-            'VIEW','WAIT-FOR','MODULO','NE','AVAIL',
-            'NOT','OR','&GLOBAL-DEFINE','&IF','UNFORMATTED','NO-PAUSE',
-            '&THEN','&ELSEIF','&ELSE','&ENDIF','OPEN','NO-WAIT',
-            '&MESSAGE','&SCOPED-DEFINE','&UNDEFINE','DEFINED',
-            'BROWSE','BUTTON','COMBO-BOX','CONTROL-FRAME',
-            'DIALOG-BOX','EDITOR','FIELD-GROUP','FILL-IN',
-            'FRAME','IMAGE','LITERAL','MENU',
-            'MENU-ITEM','RADIO-SET','RECTANGLE','SELECTION-LIST',
-            'SLIDER','SUB-MENU','TEXT','TOGGLE-BOX',
-            'WINDOW','WITH','AT','OF','EDITING','ON ENDKEY','output',
-            'ON ERROR','ON QUIT','ON STOP','PRESELECT',
-            'QUERY-TUNING','SIZE','Trigger','VIEW-AS','ALERT-BOX',
-            'Buffer','Data-relation','ProDataSet','SAX-attributes',
-            'SAX-reader','SAX-writer','Server socket','SOAP-fault',
-            'SOAP-header','SOAP-header-entryref','Socket','Temp-table',
-            'X-noderef','Height','Left','Top','TO',
-            'Width','ACTIVE-WINDOW','AUDIT-CONTROL','FIRST','LAST',
-            'AUDIT-POLICY','CLIPBOARD','CODEBASE-LOCATOR','COLOR-TABLE',
-            'COMPILER','COM-SELF','DEBUGGER','DEFAULT-WINDOW',
-            'ERROR-STATUS','FILE-INFO','FOCUS','FONT-TABLE',
-            'LAST-EVENT','LOG-MANAGER','RCODE-INFO','SECURITY-POLICY',
-            'SELF','SESSION','SOURCE-PROCEDURE','TARGET-PROCEDURE','NO-LOCK','NO-error',
-            'THIS-PROCEDURE','WEB-CONTEXT','FUNCTION','RETURNS','NO-UNDO'
-            ),
-        2 => array(
-            'ACCEPT-CHANGES','ACCEPT-ROW-CHANGES','ADD-BUFFER','ADD-CALC-COLUMN',
-            'ADD-COLUMNS-FROM','ADD-EVENTS-PROCEDURE','ADD-FIELDS-FROM','ADD-FIRST',
-            'ADD-HEADER-ENTRY','ADD-INDEX-FIELD','ADD-LAST','ADD-LIKE-COLUMN',
-            'ADD-LIKE-FIELD','ADD-LIKE-INDEX','ADD-NEW-FIELD','ADD-NEW-INDEX',
-            'ADD-RELATION','ADD-SCHEMA-LOCATION','ADD-SOURCE-BUFFER','ADD-SUPER-PROCEDURE',
-            'APPEND-CHILD','APPLY-CALLBACK','ATTACH-DATA-SOURCE','AUTHENTICATION-FAILED',
-            'BEGIN-EVENT-GROUP','BUFFER-CREATE',
-            'BUFFER-DELETE','BUFFER-RELEASE','BUFFER-VALIDATE',
-            'CANCEL-BREAK','CANCEL-REQUESTS','CLEAR','CLEAR-APPL-CONTEXT',
-            'CLEAR-LOG','CLEAR-SELECTION','CLEAR-SORT-ARROWS','CLONE-NODE',
-            'CLOSE-LOG','CONNECTED','CONVERT-TO-OFFSET',
-            'COPY-DATASET','COPY-SAX-attributeS','COPY-TEMP-TABLE','CREATE-LIKE',
-            'CREATE-NODE','CREATE-NODE-NAMESPACE','CREATE-RESULT-LIST-ENTRY','DEBUG',
-            'DECLARE-NAMESPACE','DELETE-CHAR','DELETE-CURRENT-ROW',
-            'DELETE-HEADER-ENTRY','DELETE-LINE','DELETE-NODE','DELETE-RESULT-LIST-ENTRY',
-            'DELETE-SELECTED-ROW','DELETE-SELECTED-ROWS','DESELECT-FOCUSED-ROW','DESELECT-ROWS',
-            'DESELECT-SELECTED-ROW','DETACH-DATA-SOURCE','DISABLE-CONNECTIONS',
-            'DISABLE-DUMP-TRIGGERS','DISABLE-LOAD-TRIGGERS','DISPLAY-MESSAGE',
-            'DUMP-LOGGING-NOW','EDIT-CLEAR','EDIT-COPY','EDIT-CUT',
-            'EDIT-PASTE','EDIT-UNDO','EMPTY-DATASET','EMPTY-TEMP-TABLE',
-            'ENABLE-CONNECTIONS','ENABLE-EVENTS','ENCRYPT-AUDIT-MAC-KEY',
-            'END-DOCUMENT','END-ELEMENT','END-EVENT-GROUP','END-FILE-DROP',
-            'EXPORT','EXPORT-PRINCIPAL','FETCH-SELECTED-ROW',
-            'FILL','FIND-BY-ROWID','FIND-CURRENT','FIND-FIRST',
-            'FIND-LAST','FIND-UNIQUE','GET-attribute','GET-attribute-NODE',
-            'GET-BINARY-DATA','GET-BLUE-VALUE','GET-BROWSE-COLUMN','GET-BUFFER-HANDLE',
-            'GET-BYTES-AVAILABLE','GET-CALLBACK-PROC-CONTEXT','GET-CALLBACK-PROC-NAME','GET-CGI-LIST',
-            'GET-CGI-LONG-VALUE','GET-CGI-VALUE','GET-CHANGES','GET-CHILD',
-            'GET-CHILD-RELATION','GET-CONFIG-VALUE','GET-CURRENT','GET-DATASET-BUFFER',
-            'GET-DOCUMENT-ELEMENT','GET-DROPPED-FILE','GET-DYNAMIC','GET-ERROR-COLUMN ',
-            'GET-ERROR-ROW ','GET-FILE-NAME ','GET-FILE-OFFSET ','GET-FIRST',
-            'GET-GREEN-VALUE','GET-HEADER-ENTRY','GET-INDEX-BY-NAMESPACE-NAME','GET-INDEX-BY-QNAME',
-            'GET-ITERATION','GET-LAST','GET-LOCALNAME-BY-INDEX','GET-MESSAGE',
-            'GET-NEXT','GET-NODE','GET-NUMBER','GET-PARENT',
-            'GET-PREV','GET-PRINTERS','GET-property','GET-QNAME-BY-INDEX',
-            'GET-RED-VALUE','GET-RELATION','GET-REPOSITIONED-ROW','GET-RGB-VALUE',
-            'GET-SELECTED-widget','GET-SERIALIZED','GET-SIGNATURE','GET-SOCKET-OPTION',
-            'GET-SOURCE-BUFFER','GET-TAB-ITEM','GET-TEXT-HEIGHT-CHARS','GET-TEXT-HEIGHT-PIXELS',
-            'GET-TEXT-WIDTH-CHARS','GET-TEXT-WIDTH-PIXELS','GET-TOP-BUFFER','GET-TYPE-BY-INDEX',
-            'GET-TYPE-BY-NAMESPACE-NAME','GET-TYPE-BY-QNAME','GET-URI-BY-INDEX','GET-VALUE-BY-INDEX',
-            'GET-VALUE-BY-NAMESPACE-NAME','GET-VALUE-BY-QNAME','GET-WAIT-STATE','IMPORT-NODE',
-            'IMPORT-PRINCIPAL','INCREMENT-EXCLUSIVE-ID','INITIALIZE-DOCUMENT-TYPE',
-            'INITIATE','INSERT','INSERT-attribute','INSERT-BACKTAB',
-            'INSERT-BEFORE','INSERT-FILE','INSERT-ROW','INSERT-STRING',
-            'INSERT-TAB','INVOKE','IS-ROW-SELECTED','IS-SELECTED',
-            'LIST-property-NAMES','LOAD','LoadControls','LOAD-DOMAINS',
-            'LOAD-ICON','LOAD-IMAGE','LOAD-IMAGE-DOWN','LOAD-IMAGE-INSENSITIVE',
-            'LOAD-IMAGE-UP','LOAD-MOUSE-POINTER','LOAD-SMALL-ICON','LOCK-REGISTRATION',
-            'LOG-AUDIT-EVENT','LOGOUT','LONGCHAR-TO-NODE-VALUE','LOOKUP',
-            'MEMPTR-TO-NODE-VALUE','MERGE-CHANGES','MERGE-ROW-CHANGES','MOVE-AFTER-TAB-ITEM',
-            'MOVE-BEFORE-TAB-ITEM','MOVE-COLUMN','MOVE-TO-BOTTOM','MOVE-TO-EOF',
-            'MOVE-TO-TOP','NODE-VALUE-TO-LONGCHAR','NODE-VALUE-TO-MEMPTR','NORMALIZE',
-            'QUERY-CLOSE','QUERY-OPEN','QUERY-PREPARE',
-            'READ','READ-FILE','READ-XML','READ-XMLSCHEMA',
-            'REFRESH','REFRESH-AUDIT-POLICY','REGISTER-DOMAIN','REJECT-CHANGES',
-            'REJECT-ROW-CHANGES','REMOVE-attribute','REMOVE-CHILD','REMOVE-EVENTS-PROCEDURE',
-            'REMOVE-SUPER-PROCEDURE','REPLACE','REPLACE-CHILD','REPLACE-SELECTION-TEXT',
-            'REPOSITION-BACKWARD','REPOSITION-FORWARD','REPOSITION-TO-ROW','REPOSITION-TO-ROWID',
-            'RESET','SAVE','SAVE-FILE','SAVE-ROW-CHANGES',
-            'SAX-PARSE','SAX-PARSE-FIRST','SAX-PARSE-NEXT','SCROLL-TO-CURRENT-ROW',
-            'SCROLL-TO-ITEM','SCROLL-TO-SELECTED-ROW','SEAL','SEARCH',
-            'SELECT-ALL','SELECT-FOCUSED-ROW','SELECT-NEXT-ROW','SELECT-PREV-ROW',
-            'SELECT-ROW','SET-ACTOR','SET-APPL-CONTEXT','SET-attribute',
-            'SET-attribute-NODE','SET-BLUE-VALUE','SET-BREAK','SET-BUFFERS',
-            'SET-CALLBACK','SET-CALLBACK-PROCEDURE','SET-CLIENT','SET-COMMIT',
-            'SET-CONNECT-PROCEDURE','SET-DYNAMIC','SET-GREEN-VALUE','SET-INPUT-SOURCE',
-            'SET-MUST-UNDERSTAND','SET-NODE','SET-NUMERIC-FORMAT','SET-OUTPUT-DESTINATION',
-            'SET-PARAMETER','SET-property','SET-READ-RESPONSE-PROCEDURE','SET-RED-VALUE',
-            'SET-REPOSITIONED-ROW','SET-RGB-VALUE','SET-ROLLBACK','SET-SELECTION',
-            'SET-SERIALIZED','SET-SOCKET-OPTION','SET-SORT-ARROW','SET-WAIT-STATE',
-            'START-DOCUMENT','START-ELEMENT','STOP-PARSING','SYNCHRONIZE',
-            'TEMP-TABLE-PREPARE','UPDATE-attribute','URL-DECODE','URL-ENCODE',
-            'VALIDATE','VALIDATE-SEAL','WRITE','WRITE-CDATA','USE-INDEX',
-            'WRITE-CHARACTERS','WRITE-COMMENT','WRITE-DATA-ELEMENT','WRITE-EMPTY-ELEMENT',
-            'WRITE-ENTITY-REF','WRITE-EXTERNAL-DTD','WRITE-FRAGMENT','WRITE-MESSAGE',
-            'WRITE-PROCESSING-INSTRUCTION','WRITE-XML','WRITE-XMLSCHEMA','FALSE','true'
-            ),
-        3 => array(
-            'ABSOLUTE','ACCUM','ADD-INTERVAL','ALIAS','mod',
-            'AMBIGUOUS','ASC','AUDIT-ENABLED','AVAILABLE',
-            'BASE64-DECODE','BASE64-ENCODE','CAN-DO','CAN-FIND',
-            'CAN-QUERY','CAN-SET','CAPS','CAST','OS-DIR',
-            'CHR','CODEPAGE-CONVERT','COMPARE',
-            'COUNT-OF','CURRENT-CHANGED','CURRENT-RESULT-ROW','DATASERVERS',
-            'DATA-SOURCE-MODIFIED','DATETIME','DATETIME-TZ',
-            'DAY','DBCODEPAGE','DBCOLLATION','DBNAME',
-            'DBPARAM','DBRESTRICTIONS','DBTASKID','DBTYPE',
-            'DBVERSION','DECIMAL','DECRYPT','DYNAMIC-function',
-            'DYNAMIC-NEXT-VALUE','ENCODE','ENCRYPT','ENTERED',
-            'ERROR','ETIME','EXP','ENDKEY','END-error',
-            'FIRST-OF','FRAME-DB','FRAME-DOWN',
-            'FRAME-FIELD','FRAME-FILE','FRAME-INDEX','FRAME-LINE',
-            'GATEWAYS','GENERATE-PBE-KEY','GENERATE-PBE-SALT','GENERATE-RANDOM-KEY',
-            'GENERATE-UUID','GET-BITS','GET-BYTE','GET-BYTE-ORDER',
-            'GET-BYTES','GET-CODEPAGE','GET-CODEPAGES','GET-COLLATION',
-            'GET-COLLATIONS','GET-DOUBLE','GET-FLOAT','GET-INT64',
-            'GET-LONG','GET-POINTER-VALUE','GET-SHORT','GET-SIZE',
-            'GET-STRING','GET-UNSIGNED-LONG','GET-UNSIGNED-SHORT','GO-PENDING',
-            'GUID','HEX-DECODE','INDEX',
-            'INT64','INTEGER','INTERVAL','IS-ATTR-SPACE',
-            'IS-CODEPAGE-FIXED','IS-COLUMN-CODEPAGE','IS-LEAD-BYTE','ISO-DATE',
-            'KBLABEL','KEYCODE','KEYFUNCTION','KEYLABEL',
-            'KEYWORD','KEYWORD-ALL','LASTKEY',
-            'LAST-OF','LC','LDBNAME','LEFT-TRIM',
-            'LIBRARY','LINE-COUNTER','LIST-EVENTS','LIST-QUERY-ATTRS',
-            'LIST-SET-ATTRS','LIST-widgetS','LOCKED',
-            'LOGICAL','MAXIMUM','MD5-DIGEST',
-            'MEMBER','MESSAGE-LINES','MINIMUM','MONTH',
-            'MTIME','NEW','NEXT-VALUE','SHARED',
-            'NOT ENTERED','NOW','NUM-ALIASES','NUM-DBS',
-            'NUM-ENTRIES','NUM-RESULTS','OPSYS','OS-DRIVES',
-            'OS-ERROR','OS-GETENV','PAGE-NUMBER','PAGE-SIZE',
-            'PDBNAME','PROC-HANDLE','PROC-STATUS','PROGRAM-NAME',
-            'PROGRESS','PROVERSION','QUERY-OFF-END','QUOTER',
-            'RANDOM','RAW','RECID','REJECTED',
-            'RETRY','RETURN-VALUE','RGB-VALUE',
-            'RIGHT-TRIM','R-INDEX','ROUND','ROWID','LENGTH',
-            'SDBNAME','SET-DB-CLIENT','SETUSERID',
-            'SHA1-DIGEST','SQRT','SUBSTITUTE','VARIABLE',
-            'SUPER','TERMINAL','TIME','TIMEZONE','external',
-            'TODAY','TO-ROWID','TRIM','TRUNCATE','return',
-            'TYPE-OF','USERID','VALID-EVENT','VALID-HANDLE',
-            'VALID-object','WEEKDAY','YEAR','BEGINS','VALUE',
-            'EQ','GE','GT','LE','LT','MATCHES','AS','BY','LIKE'
-            ),
-        4 => array(
-            'ACCELERATOR','ACTIVE','ACTOR','ADM-DATA',
-            'AFTER-BUFFER','AFTER-ROWID','AFTER-TABLE','ALLOW-COLUMN-SEARCHING',
-            'ALWAYS-ON-TOP','APPL-ALERT-BOXES','APPL-CONTEXT-ID','APPSERVER-INFO',
-            'APPSERVER-PASSWORD','APPSERVER-USERID','ASYNCHRONOUS','ASYNC-REQUEST-COUNT',
-            'ASYNC-REQUEST-HANDLE','ATTACHED-PAIRLIST','attribute-NAMES','ATTR-SPACE',
-            'AUDIT-EVENT-CONTEXT','AUTO-COMPLETION','AUTO-DELETE','AUTO-DELETE-XML',
-            'AUTO-END-KEY','AUTO-GO','AUTO-INDENT','AUTO-RESIZE',
-            'AUTO-RETURN','AUTO-SYNCHRONIZE','AUTO-VALIDATE','AUTO-ZAP',
-            'AVAILABLE-FORMATS','BACKGROUND','BASE-ADE','BASIC-LOGGING',
-            'BATCH-MODE','BATCH-SIZE','BEFORE-BUFFER','BEFORE-ROWID',
-            'BEFORE-TABLE','BGCOLOR','BLANK','BLOCK-ITERATION-DISPLAY',
-            'BORDER-BOTTOM-CHARS','BORDER-BOTTOM-PIXELS','BORDER-LEFT-CHARS','BORDER-LEFT-PIXELS',
-            'BORDER-RIGHT-CHARS','BORDER-RIGHT-PIXELS','BORDER-TOP-CHARS','BORDER-TOP-PIXELS',
-            'BOX','BOX-SELECTABLE','BUFFER-CHARS','BUFFER-FIELD',
-            'BUFFER-HANDLE','BUFFER-LINES','BUFFER-NAME','BUFFER-VALUE',
-            'BYTES-READ','BYTES-WRITTEN','CACHE','CALL-NAME',
-            'CALL-TYPE','CANCEL-BUTTON','CANCELLED','CAN-CREATE',
-            'CAN-DELETE','CAN-READ','CAN-WRITE','CAREFUL-PAINT',
-            'CASE-SENSITIVE','CENTERED','CHARSET','CHECKED',
-            'CHILD-BUFFER','CHILD-NUM','CLASS-TYPE','CLIENT-CONNECTION-ID',
-            'CLIENT-TTY','CLIENT-TYPE','CLIENT-WORKSTATION','CODE',
-            'CODEPAGE','COLUMN','COLUMN-BGCOLOR','COLUMN-DCOLOR',
-            'COLUMN-FGCOLOR','COLUMN-FONT','COLUMN-LABEL','COLUMN-MOVABLE',
-            'COLUMN-PFCOLOR','COLUMN-READ-ONLY','COLUMN-RESIZABLE','COLUMN-SCROLLING',
-            'COM-HANDLE','COMPLETE','CONFIG-NAME','CONTEXT-HELP',
-            'CONTEXT-HELP-FILE','CONTEXT-HELP-ID','CONTROL-BOX','CONVERT-3D-COLORS',
-            'CPCASE','CPCOLL','CPINTERNAL','CPLOG',
-            'CPPRINT','CPRCODEIN','CPRCODEOUT','CPSTREAM',
-            'CPTERM','CRC-VALUE','CURRENT-COLUMN','CURRENT-ENVIRONMENT',
-            'CURRENT-ITERATION','CURRENT-ROW-MODIFIED','CURRENT-WINDOW','CURSOR-CHAR',
-            'CURSOR-LINE','CURSOR-OFFSET','DATA-ENTRY-RETURN','DATASET',
-            'DATA-SOURCE','DATA-SOURCE-COMPLETE-MAP','DATA-TYPE','DATE-FORMAT',
-            'DB-REFERENCES','DCOLOR','DDE-ERROR','DDE-ID',
-            'DDE-ITEM','DDE-NAME','DDE-TOPIC','DEBLANK',
-            'DEBUG-ALERT','DECIMALS','DEFAULT','DEFAULT-BUFFER-HANDLE',
-            'DEFAULT-BUTTON','DEFAULT-COMMIT','DELIMITER','DISABLE-AUTO-ZAP',
-            'DISPLAY-TIMEZONE','DISPLAY-TYPE','DOMAIN-DESCRIPTION','DOMAIN-NAME',
-            'DOMAIN-TYPE','DRAG-ENABLED','DROP-TARGET','DYNAMIC',
-            'EDGE-CHARS','EDGE-PIXELS','EDIT-CAN-PASTE','EDIT-CAN-UNDO',
-            'EMPTY','ENCODING','ENCRYPTION-SALT','END-USER-PROMPT',
-            'ENTRY-TYPES-LIST','ERROR-COLUMN','ERROR-object-DETAIL','ERROR-ROW',
-            'ERROR-STRING','EVENT-GROUP-ID','EVENT-PROCEDURE','EVENT-PROCEDURE-CONTEXT',
-            'EVENT-TYPE','EXCLUSIVE-ID','EXECUTION-LOG','EXPAND',
-            'EXPANDABLE','FGCOLOR','FILE-CREATE-DATE','FILE-CREATE-TIME',
-            'FILE-MOD-DATE','FILE-MOD-TIME','FILE-NAME','FILE-OFFSET',
-            'FILE-SIZE','FILE-TYPE','FILLED','FILL-MODE',
-            'FILL-WHERE-STRING','FIRST-ASYNC-REQUEST','FIRST-BUFFER','FIRST-CHILD',
-            'FIRST-COLUMN','FIRST-DATASET','FIRST-DATA-SOURCE','FIRST-object',
-            'FIRST-PROCEDURE','FIRST-QUERY','FIRST-SERVER','FIRST-SERVER-SOCKET',
-            'FIRST-SOCKET','FIRST-TAB-ITEM','FIT-LAST-COLUMN','FLAT-BUTTON',
-            'FOCUSED-ROW','FOCUSED-ROW-SELECTED','FONT','FOREGROUND',
-            'FORMAT','FORMATTED','FORM-INPUT','FORM-LONG-INPUT',
-            'FORWARD-ONLY','FRAGMENT','FRAME-COL','FRAME-NAME',
-            'FRAME-ROW','FRAME-SPACING','FRAME-X','FRAME-Y',
-            'FREQUENCY','FULL-HEIGHT-CHARS','FULL-HEIGHT-PIXELS','FULL-PATHNAME',
-            'FULL-WIDTH-CHARS','FULL-WIDTH-PIXELS','GRAPHIC-EDGE',
-            'GRID-FACTOR-HORIZONTAL','GRID-FACTOR-VERTICAL','GRID-SNAP','GRID-UNIT-HEIGHT-CHARS',
-            'GRID-UNIT-HEIGHT-PIXELS','GRID-UNIT-WIDTH-CHARS','GRID-UNIT-WIDTH-PIXELS','GRID-VISIBLE',
-            'GROUP-BOX','HANDLE','HANDLER','HAS-LOBS',
-            'HAS-RECORDS','HEIGHT-CHARS','HEIGHT-PIXELS','HELP',
-            'HIDDEN','HORIZONTAL','HTML-CHARSET','HTML-END-OF-LINE',
-            'HTML-END-OF-PAGE','HTML-FRAME-BEGIN','HTML-FRAME-END','HTML-HEADER-BEGIN',
-            'HTML-HEADER-END','HTML-TITLE-BEGIN','HTML-TITLE-END','HWND',
-            'ICFPARAMETER','ICON','IGNORE-CURRENT-MODIFIED','IMAGE-DOWN',
-            'IMAGE-INSENSITIVE','IMAGE-UP','IMMEDIATE-DISPLAY','INDEX-INFORMATION',
-            'IN-HANDLE','INHERIT-BGCOLOR','INHERIT-FGCOLOR','INITIAL','INIT',
-            'INNER-CHARS','INNER-LINES','INPUT-VALUE','INSTANTIATING-PROCEDURE',
-            'INTERNAL-ENTRIES','IS-CLASS','IS-OPEN','IS-PARAMETER-SET',
-            'IS-XML','ITEMS-PER-ROW','KEEP-CONNECTION-OPEN','KEEP-FRAME-Z-ORDER',
-            'KEEP-SECURITY-CACHE','KEY','KEYS','LABEL',
-            'LABEL-BGCOLOR','LABEL-DCOLOR','LABEL-FGCOLOR','LABEL-FONT',
-            'LABELS','LANGUAGES','LARGE','LARGE-TO-SMALL',
-            'LAST-ASYNC-REQUEST','LAST-BATCH','LAST-CHILD','LAST-object',
-            'LAST-PROCEDURE','LAST-SERVER','LAST-SERVER-SOCKET','LAST-SOCKET',
-            'LAST-TAB-ITEM','LINE','LIST-ITEM-PAIRS','LIST-ITEMS',
-            'LITERAL-QUESTION','LOCAL-HOST','LOCAL-NAME','LOCAL-PORT',
-            'LOCATOR-COLUMN-NUMBER','LOCATOR-LINE-NUMBER','LOCATOR-PUBLIC-ID','LOCATOR-system-ID',
-            'LOCATOR-TYPE','LOG-ENTRY-TYPES','LOGFILE-NAME','LOGGING-LEVEL',
-            'LOGIN-EXPIRATION-TIMESTAMP','LOGIN-HOST','LOGIN-STATE','LOG-THRESHOLD',
-            'MANDATORY','MANUAL-HIGHLIGHT','MAX-BUTTON','MAX-CHARS',
-            'MAX-DATA-GUESS','MAX-HEIGHT-CHARS','MAX-HEIGHT-PIXELS','MAX-VALUE',
-            'MAX-WIDTH-CHARS','MAX-WIDTH-PIXELS','MD5-VALUE','MENU-BAR',
-            'MENU-KEY','MENU-MOUSE','MERGE-BY-FIELD','MESSAGE-AREA',
-            'MESSAGE-AREA-FONT','MIN-BUTTON','MIN-COLUMN-WIDTH-CHARS','MIN-COLUMN-WIDTH-PIXELS',
-            'MIN-HEIGHT-CHARS','MIN-HEIGHT-PIXELS','MIN-SCHEMA-MARSHAL','MIN-VALUE',
-            'MIN-WIDTH-CHARS','MIN-WIDTH-PIXELS','MODIFIED','MOUSE-POINTER',
-            'MOVABLE','MULTI-COMPILE','MULTIPLE','MULTITASKING-INTERVAL',
-            'MUST-UNDERSTAND','NAME','NAMESPACE-PREFIX','NAMESPACE-URI',
-            'NEEDS-APPSERVER-PROMPT','NEEDS-PROMPT','NESTED','NEW-ROW',
-            'NEXT-COLUMN','NEXT-ROWID','NEXT-SIBLING','NEXT-TAB-ITEM', 'NO-BOX',
-            'NO-CURRENT-VALUE','NODE-VALUE','NO-EMPTY-SPACE','NO-FOCUS',
-            'NONAMESPACE-SCHEMA-LOCATION','NO-SCHEMA-MARSHAL','NO-VALIDATE','NUM-BUFFERS',
-            'NUM-BUTTONS','NUM-CHILD-RELATIONS','NUM-CHILDREN','NUM-COLUMNS',
-            'NUM-DROPPED-FILES','NUMERIC-DECIMAL-POINT','NUMERIC-FORMAT','NUMERIC-SEPARATOR',
-            'NUM-FIELDS','NUM-FORMATS','NUM-HEADER-ENTRIES','NUM-ITEMS',
-            'NUM-ITERATIONS','NUM-LINES','NUM-LOCKED-COLUMNS','NUM-LOG-FILES',
-            'NUM-MESSAGES','NUM-PARAMETERS','NUM-REFERENCES','NUM-RELATIONS',
-            'NUM-REPLACED','NUM-SELECTED-ROWS','NUM-SELECTED-WIDGETS','NUM-SOURCE-BUFFERS',
-            'NUM-TABS','NUM-TOP-BUFFERS','NUM-TO-RETAIN','NUM-VISIBLE-COLUMNS',
-            'ON-FRAME-BORDER','ORIGIN-HANDLE','ORIGIN-ROWID','OWNER',
-            'OWNER-DOCUMENT','PAGE-BOTTOM','PAGE-TOP','PARAMETER',
-            'PARENT','PARENT-BUFFER','PARENT-RELATION','PARSE-STATUS',
-            'PASSWORD-FIELD','PATHNAME','PBE-HASH-ALGORITHM','PBE-KEY-ROUNDS',
-            'PERSISTENT','PERSISTENT-CACHE-DISABLED','PERSISTENT-PROCEDURE','PFCOLOR',
-            'PIXELS-PER-COLUMN','PIXELS-PER-ROW','POPUP-MENU','POPUP-ONLY',
-            'POSITION','PREFER-DATASET','PREPARED','PREPARE-STRING',
-            'PREV-COLUMN','PREV-SIBLING','PREV-TAB-ITEM','PRIMARY',
-            'PRINTER-CONTROL-HANDLE','PRINTER-HDC','PRINTER-NAME','PRINTER-PORT',
-            'PRIVATE-DATA','PROCEDURE-NAME','PROGRESS-SOURCE','PROXY',
-            'PROXY-PASSWORD','PROXY-USERID','PUBLIC-ID','PUBLISHED-EVENTS',
-            'RADIO-BUTTONS','READ-ONLY','RECORD-LENGTH',
-            'REFRESHABLE','RELATION-FIELDS','RELATIONS-ACTIVE','REMOTE',
-            'REMOTE-HOST','REMOTE-PORT','RESIZABLE','RESIZE',
-            'RESTART-ROWID','RETAIN-SHAPE','RETURN-INSERTED','RETURN-VALUE-DATA-TYPE',
-            'ROLES','ROUNDED','COL','ROW','ROW-HEIGHT-CHARS',
-            'ROW-HEIGHT-PIXELS','ROW-MARKERS','ROW-RESIZABLE','ROW-STATE',
-            'SAVE-WHERE-STRING','SCHEMA-CHANGE','SCHEMA-LOCATION','SCHEMA-MARSHAL',
-            'SCHEMA-PATH','SCREEN-LINES','SCREEN-VALUE','SCROLLABLE',
-            'SCROLLBAR-HORIZONTAL','SCROLL-BARS','SCROLLBAR-VERTICAL','SEAL-TIMESTAMP',
-            'SELECTABLE','SELECTED','SELECTION-END','SELECTION-START',
-            'SELECTION-TEXT','SENSITIVE','SEPARATOR-FGCOLOR','SEPARATORS',
-            'SERVER','SERVER-CONNECTION-BOUND','SERVER-CONNECTION-BOUND-REQUEST','SERVER-CONNECTION-CONTEXT',
-            'SERVER-CONNECTION-ID','SERVER-OPERATING-MODE','SESSION-END','SESSION-ID',
-            'SHOW-IN-TASKBAR','SIDE-LABEL-HANDLE','SIDE-LABELS','SKIP-DELETED-RECORD',
-            'SMALL-ICON','SMALL-TITLE','SOAP-FAULT-ACTOR','SOAP-FAULT-CODE',
-            'SOAP-FAULT-DETAIL','SOAP-FAULT-STRING','SORT','SORT-ASCENDING',
-            'SORT-NUMBER','SSL-SERVER-NAME','STANDALONE','STARTUP-PARAMETERS',
-            'STATE-DETAIL','STATUS-AREA','STATUS-AREA-FONT','STOPPED',
-            'STREAM','STRETCH-TO-FIT','STRICT','STRING-VALUE',
-            'SUBTYPE','SUPER-PROCEDURES','SUPPRESS-NAMESPACE-PROCESSING','SUPPRESS-WARNINGS',
-            'SYMMETRIC-ENCRYPTION-ALGORITHM','SYMMETRIC-ENCRYPTION-IV','SYMMETRIC-ENCRYPTION-KEY','SYMMETRIC-SUPPORT',
-            'system-ALERT-BOXES','system-ID','TABLE','TABLE-CRC-LIST',
-            'TABLE-HANDLE','TABLE-LIST','TABLE-NUMBER','TAB-POSITION',
-            'TAB-STOP','TEMP-DIRECTORY','TEXT-SELECTED','THREE-D',
-            'TIC-MARKS','TIME-SOURCE','TITLE','TITLE-BGCOLOR','FIELD',
-            'TITLE-DCOLOR','TITLE-FGCOLOR','TITLE-FONT','TOOLTIP',
-            'TOOLTIPS','TOP-ONLY','TRACKING-CHANGES','TRANSACTION',
-            'TRANS-INIT-PROCEDURE','TRANSPARENT','TYPE','UNIQUE-ID',
-            'UNIQUE-MATCH','URL','URL-PASSWORD','URL-USERID','EXTENT',
-            'USER-ID','V6DISPLAY','VALIDATE-EXPRESSION','VALIDATE-MESSAGE',
-            'VALIDATE-XML','VALIDATION-ENABLED','VIEW-FIRST-COLUMN-ON-REOPEN',
-            'VIRTUAL-HEIGHT-CHARS','VIRTUAL-HEIGHT-PIXELS','VIRTUAL-WIDTH-CHARS','VIRTUAL-WIDTH-PIXELS',
-            'VISIBLE','WARNING','WHERE-STRING','widget-ENTER','DATE',
-            'widget-LEAVE','WIDTH-CHARS','WIDTH-PIXELS','WINDOW-STATE',
-            'WINDOW-system','WORD-WRAP','WORK-AREA-HEIGHT-PIXELS','WORK-AREA-WIDTH-PIXELS',
-            'WORK-AREA-X','WORK-AREA-Y','WRITE-STATUS','X','widget-Handle',
-            'X-DOCUMENT','XML-DATA-TYPE','XML-NODE-TYPE','XML-SCHEMA-PATH',
-            'XML-SUPPRESS-NAMESPACE-PROCESSING','Y','YEAR-OFFSET','CHARACTER',
-            'LONGCHAR','MEMPTR','CHAR','DEC','INT','LOG','DECI','INTE','LOGI','long'
-            )
-        ),
-    'SYMBOLS' => array(
-        '(', ')', '[', ']', '{', '}',
-        '<', '>', '=',
-        '+', '-', '*', '/',
-        '!', '@', '%', '|', '$',
-        ':', '.', ';', ',',
-        '?', '<=','<>','>=', '\\'
-        ),
-    'CASE_SENSITIVE' => array (
-        GESHI_COMMENTS => false,
-        1 => false,
-        2 => false,
-        3 => false,
-        4 => false
-        ),
-    'STYLES' => array (
-        'KEYWORDS' => array (
-            1 => 'color: #0000ff; font-weight: bold;',
-            2 => 'color: #1D16B2;',
-            3 => 'color: #993333;',
-            4 => 'color: #0000ff;'
-            ),
-        'COMMENTS' => array (
-//            1 => 'color: #808080; font-style: italic;',
-//            2 => 'color: #808080; font-style: italic;',
-            'MULTI' => 'color: #808080; font-style: italic;'
-            ),
-        'ESCAPE_CHAR' => array (
-            0 => 'color: #000099; font-weight: bold;'
-            ),
-        'BRACKETS' => array (
-            0 => 'color: #66cc66;'
-            ),
-        'STRINGS' => array (
-            0 => 'color: #ff0000;'
-            ),
-        'NUMBERS' => array (
-            0 => 'color: #cc66cc;'
-            ),
-        'METHODS' => array (
-            0 => 'color: #006600;'
-            ),
-        'SYMBOLS' => array (
-            0 => 'color: #66cc66;'
-            ),
-        'REGEXPS' => array (
-            ),
-        'SCRIPT' => array (
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => '',
-        4 => ''
-        ),
-    'OOLANG' => true,
-    'OBJECT_SPLITTERS' => array(
-        0 => ':'
-        ),
-    '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_%])",
-            1 => array(
-                'SPACE_AS_WHITESPACE' => true
-                ),
-            2 => array(
-                'SPACE_AS_WHITESPACE' => true
-                )
-            )
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/prolog.php b/wiki/vendor/geshi/geshi/src/geshi/prolog.php
deleted file mode 100644
index f3c8e8f..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/prolog.php
+++ /dev/null
@@ -1,141 +0,0 @@
-<?php
-/*************************************************************************************
- * prolog.php
- * --------
- * Author: Benny Baumann (BenBE@geshi.org)
- * Copyright: (c) 2008 Benny Baumann (http://qbnz.com/highlighter/)
- * Release Version: 1.0.9.0
- * Date Started: 2008/10/02
- *
- * Prolog language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2008/10/02 (1.0.8.1)
- *  -  First Release
- *
- * TODO (updated 2008/10/02)
- * -------------------------
- *
- *************************************************************************************
- *
- *     This file is part of GeSHi.
- *
- *   GeSHi is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   GeSHi is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with GeSHi; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- ************************************************************************************/
-
-$language_data = array (
-    'LANG_NAME' => 'Prolog',
-    'COMMENT_SINGLE' => array(1 => '%'),
-    'COMMENT_MULTI' => array('/*' => '*/'),
-    'HARDQUOTE' => array("'", "'"),
-    'HARDESCAPE' => array("\'"),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array(),
-    'ESCAPE_CHAR' => '',
-    'NUMBERS' =>
-        GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_FLT_SCI_ZERO,
-    'KEYWORDS' => array(
-        1 => array(
-            'abolish','abs','arg','asserta','assertz','at_end_of_stream','atan',
-            'atom','atom_chars','atom_codes','atom_concat','atom_length',
-            'atomic','bagof','call','catch','ceiling','char_code',
-            'char_conversion','clause','close','compound','consult','copy_term',
-            'cos','current_char_conversion','current_input','current_op',
-            'current_output','current_predicate','current_prolog_flag',
-            'discontiguous','dynamic','ensure_loaded','exp','fail','findall',
-            'float','float_fractional_part','float_integer_part','floor',
-            'flush_output','functor','get_byte','get_char','get_code','halt',
-            'include','initialization','integer','is','listing','log','mod',
-            'multifile','nl','nonvar','notrace','number','number_chars',
-            'number_codes','once','op','open','peek_byte','peek_char',
-            'peek_code','put_byte','put_char','put_code','read','read_term',
-            'rem','repeat','retract','round','set_input','set_output',
-            'set_prolog_flag','set_stream_position','setof','sign','sin','sqrt',
-            'stream_property','sub_atom','throw','trace','true','truncate',
-            'unify_with_occurs_check','univ','var','write','write_canonical',
-            'write_term','writeq'
-            )
-        ),
-    'SYMBOLS' => array(
-        0 => array('(', ')', '[', ']', '{', '}',),
-        1 => array('?-', ':-', '=:='),
-        2 => array('\-', '\+', '\*', '\/'),
-        3 => array('-', '+', '*', '/'),
-        4 => array('.', ':', ',', ';'),
-        5 => array('!', '@', '&', '|'),
-        6 => array('<', '>', '=')
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #990000;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #666666; font-style: italic;',
-            'MULTI' => 'color: #666666; font-style: italic;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #000099; font-weight: bold;',
-            'HARD' => 'color: #000099; font-weight: bold;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #009900;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #0000ff;',
-            'HARD' => 'color: #0000ff;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #800080;'
-            ),
-        'METHODS' => array(
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #339933;',
-            1 => 'color: #339933;',
-            2 => 'color: #339933;',
-            3 => 'color: #339933;',
-            4 => 'color: #339933;',
-            5 => 'color: #339933;',
-            6 => 'color: #339933;'
-            ),
-        'REGEXPS' => array(
-            0 => 'color: #008080;'
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => 'http://pauillac.inria.fr/~deransar/prolog/bips.html'
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(
-        ),
-    'REGEXPS' => array(
-        //Variables
-        0 => "(?<![a-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/wiki/vendor/geshi/geshi/src/geshi/properties.php b/wiki/vendor/geshi/geshi/src/geshi/properties.php
deleted file mode 100644
index 3cbde9d..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/properties.php
+++ /dev/null
@@ -1,125 +0,0 @@
-<?php
-/*************************************************************************************
- * properties.php
- * --------
- * Author: Edy Hinzen
- * Copyright: (c) 2009 Edy Hinzen
- * Release Version: 1.0.9.0
- * Date Started: 2009/04/03
- *
- * Property language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2008/04/03 (1.0.0)
- *   -  First Release
- *
- * TODO
- * -------------------------
- *
- *************************************************************************************
- *
- *     This file is part of GeSHi.
- *
- *   GeSHi is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   GeSHi is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with GeSHi; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- ************************************************************************************/
-
-$language_data = array (
-    'LANG_NAME' => 'PROPERTIES',
-    'COMMENT_SINGLE' => array(1 => '#'),
-    'COMMENT_MULTI' => array(),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array('"'),
-    'ESCAPE_CHAR' => '',
-    'KEYWORDS' => array(
-        /* Common used variables */
-        1 => array(
-            '${user.home}'
-            ),
-        ),
-    'SYMBOLS' => array(
-        '[', ']', '='
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => true
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'font-weight: bold;',
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #808080; font-style: italic;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => ''
-            ),
-        'BRACKETS' => array(
-            0 => ''
-            ),
-        'STRINGS' => array(
-            0 => 'color: #933;'
-            ),
-        'NUMBERS' => array(
-            0 => ''
-            ),
-        'METHODS' => array(
-            0 => ''
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #000000;'
-            ),
-        'REGEXPS' => array(
-            0 => 'color: #000080; font-weight:bold;',
-            1 => 'color: #008000; font-weight:bold;'
-            ),
-        'SCRIPT' => array(
-            0 => ''
-            )
-        ),
-    'URLS' => array(
-        1 => ''
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(
-        ),
-    'REGEXPS' => array(
-        //Entry names
-        0 => array(
-            GESHI_SEARCH => '^(\s*)([.a-zA-Z0-9_\-]+)(\s*=)',
-            GESHI_REPLACE => '\\2',
-            GESHI_MODIFIERS => 'm',
-            GESHI_BEFORE => '\\1',
-            GESHI_AFTER => '\\3'
-            ),
-        //Entry values
-        1 => array(
-            // Evil hackery to get around GeSHi bug: <>" and ; are added so <span>s can be matched
-            // Explicit match on variable names because if a comment is before the first < of the span
-            // gets chewed up...
-            GESHI_SEARCH => '([<>";a-zA-Z0-9_]+\s*)=(.*)',
-            GESHI_REPLACE => '\\2',
-            GESHI_MODIFIERS => '',
-            GESHI_BEFORE => '\\1=',
-            GESHI_AFTER => ''
-            )
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/providex.php b/wiki/vendor/geshi/geshi/src/geshi/providex.php
deleted file mode 100644
index 2d09be4..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/providex.php
+++ /dev/null
@@ -1,297 +0,0 @@
-<?php
-/******************************************************************************
- * providex.php
- * ----------
- * Author: Jeff Wilder (jeff@coastallogix.com)
- * Copyright:  (c) 2008 Coastal Logix (http://www.coastallogix.com)
- * Release Version: 1.0.9.0
- * Date Started: 2008/10/18
- *
- * ProvideX language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2008/10/21 (1.0.0)
- *  - First Release
- *
- * TODO
- * -------------------------
- * 1. Create a regexp for numeric global variables (ex: %VarName = 3)
- * 2. Add standard object control properties
- *
- ******************************************************************************
- *
- *     This file is part of GeSHi.
- *
- *   GeSHi is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   GeSHi is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with GeSHi; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- *****************************************************************************/
-$language_data = array (
-    'LANG_NAME' => 'ProvideX',
-    'COMMENT_SINGLE' => array(1 => '!'),
-    'COMMENT_MULTI' => array('/*' => '*/'),
-    'COMMENT_REGEXP' => array(
-        // Single-Line Comments using REM command
-        2 => "/\bREM\b.*?$/i"
-        ),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array('"'),
-    'ESCAPE_CHAR' => '',
-    'KEYWORDS' => array(
-        1 => array(
-            // Directives
-            '*break', '*continue', '*end', '*escape', '*next', '*proceed',
-            '*retry', '*return', '*same', 'accept', 'add index', 'addr',
-            'auto', 'begin', 'break', 'button', 'bye', 'call', 'case',
-            'chart', 'check_box', 'class', 'clear', 'clip_board', 'close',
-            'continue', 'control', 'create required', 'create table',
-            'cwdir', 'data', 'day_format', 'def', 'default', 'defctl',
-            'defprt', 'deftty', 'delete required', 'dictionary', 'dim', 'direct',
-            'directory', 'disable', 'drop', 'drop_box', 'dump', 'edit',
-            'else', 'enable', 'end switch', 'end', 'end_if', 'endtrace',
-            'enter', 'erase', 'error_handler', 'escape', 'event', 'execute',
-            'exit', 'exitto', 'extract', 'file', 'find', 'floating point',
-            'for', 'function', 'get_file_box', 'gosub', 'goto', 'grid',
-            'h_scrollbar', 'hide', 'if', 'index', 'indexed', 'input',
-            'insert', 'invoke', 'iolist', 'keyed', 'let', 'like',
-            'line_switch', 'list', 'list_box', 'load', 'local', 'lock',
-            'long_form', 'menu_bar', 'merge', 'message_lib', 'mnemonic',
-            'msgbox', 'multi_line', 'multi_media', 'next', 'object', 'obtain',
-            'on', 'open', 'password', 'perform', 'pop', 'popup_menu',
-            'precision', 'prefix', 'preinput', 'print', 'process', 'program',
-            'property', 'purge', 'quit', 'radio_button', 'randomize',
-            'read', 'record', 'redim', 'refile', 'release', 'rem', 'remove',
-            'rename', 'renumber', 'repeat', 'reset', 'restore', 'retry',
-            'return', 'round', 'run', 'save', 'select', 'serial', 'server',
-            'set_focus', 'set_nbf', 'set_param', 'setctl', 'setday', 'setdev',
-            'setdrive', 'seterr', 'setesc', 'setfid', 'setmouse', 'settime',
-            'settrace', 'short_form', 'show', 'sort', 'start', 'static',
-            'step', 'stop', 'switch', 'system_help', 'system_jrnl', 'table',
-            'then', 'to', 'translate', 'tristate_box', 'unlock', 'until',
-            'update', 'user_lex', 'v_scrollbar', 'vardrop_box', 'varlist_box',
-            'via', 'video_palette', 'wait', 'wend', 'while', 'winprt_setup',
-            'with', 'write'
-            ),
-        2 => array(
-            // System Functions
-            '@x', '@y', 'abs', 'acs', 'and', 'arg', 'asc', 'asn', 'ath',
-            'atn', 'bin', 'bsz', 'chg', 'chr', 'cmp', 'cos', 'cpl',
-            'crc', 'cse', 'ctl', 'cvs', 'dec', 'dir', 'dll', 'dsk',
-            'dte', 'env', 'ept', 'err', 'evn', 'evs', 'exp', 'ffn',
-            'fib', 'fid', 'fin', 'fpt', 'gap', 'gbl', 'gep', 'hsa',
-            'hsh', 'hta', 'hwn', 'i3e', 'ind', 'int', 'iol', 'ior',
-            'jul', 'jst', 'kec', 'kef', 'kel', 'ken', 'kep', 'key',
-            'kgn', 'lcs', 'len', 'lno', 'log', 'lrc', 'lst', 'max',
-            'mem', 'mid', 'min', 'mnm', 'mod', 'msg', 'msk', 'mxc',
-            'mxl', 'new', 'not', 'nul', 'num', 'obj', 'opt', 'pad',
-            'pck', 'pfx', 'pgm', 'pos', 'prc', 'prm', 'pth', 'pub',
-            'rcd', 'rdx', 'rec', 'ref', 'rnd', 'rno', 'sep', 'sgn',
-            'sin', 'sqr', 'srt', 'ssz', 'stk', 'stp', 'str', 'sub',
-            'swp', 'sys', 'tan', 'tbl', 'tcb', 'tmr', 'trx', 'tsk',
-            'txh', 'txw', 'ucp', 'ucs', 'upk', 'vin', 'vis', 'xeq',
-            'xfa', 'xor', '_obj'
-            ),
-        3 => array(
-            // System Variables
-            // Vars that are duplicates of functions
-            // 'ctl', 'err', 'pfx', 'prm', 'rnd', 'sep', 'sys',
-            'bkg', 'chn', 'day', 'dlm', 'dsz', 'eom', 'ers', 'esc',
-            'gfn', 'gid', 'hfn', 'hlp', 'hwd', 'lfa', 'lfo', 'lip',
-            'lpg', 'lwd', 'mse', 'msl', 'nar', 'nid', 'pgn', 'psz',
-            'quo', 'ret', 'sid', 'ssn', 'tim', 'tme', 'tms', 'tsm',
-            'uid', 'unt', 'who'
-
-            ),
-        4 => array(
-            // Nomads Variables
-            '%Flmaint_Lib$', '%Flmaint_Msg$', '%Nomads_Activation_Ok',
-            '%Nomads_Auto_Qry', '%Nomads_Disable_Debug',
-            '%Nomads_Disable_Trace', '%Nomads_Fkey_Handler$',
-            '%Nomads_Fkey_Tbl$', '%Nomads_Notest', '%Nomads_Onexit$',
-            '%Nomads_Post_Display', '%Nomads_Pre_Display$',
-            '%Nomads_Process$', '%Nomads_Trace_File$',
-            '%Nomad_Actv_Folder_Colors$', '%Nomad_Automation_Enabled',
-            '%Nomad_Auto_Close', '%Nomad_Center_Wdw', '%Nomad_Concurrent_Wdw',
-            '%Nomad_Custom_Define', '%Nomad_Custom_Dir$',
-            '%Nomad_Custom_Genmtc', '%Nomad_Custom_Skip_Definition',
-            '%Nomad_Def_Sfx$', '%Nomad_Enter_Tab', '%Nomad_Esc_Sel',
-            '%Nomad_Isjavx', '%Nomad_Iswindx', '%Nomad_Iswindx$',
-            '%Nomad_Menu$', '%Nomad_Menu_Leftedge_Clr$',
-            '%Nomad_Menu_Textbackground_Clr$', '%Nomad_Mln_Sep$',
-            '%Nomad_Msgmnt$', '%Nomad_Noplusw', '%Nomad_No_Customize',
-            '%Nomad_Object_Persistence', '%Nomad_Object_Resize',
-            '%Nomad_Open_Load', '%Nomad_Override_Font$',
-            '%Nomad_Palette_Loaded', '%Nomad_Panel_Info_Force',
-            '%Nomad_Panel_Info_Prog$', '%Nomad_Pnl_Def_Colour$',
-            '%Nomad_Pnl_Def_Font$', '%Nomad_Prg_Cache', '%Nomad_Qry_Attr$',
-            '%Nomad_Qry_Btn$', '%Nomad_Qry_Clear_Start', '%Nomad_Qry_Tip$',
-            '%Nomad_Qry_Wide', '%Nomad_Query_Clear_Status', '%Nomad_Query_Kno',
-            '%Nomad_Query_No_Gray', '%Nomad_Query_Odb_Ignore',
-            '%Nomad_Query_Retkno', '%Nomad_Query_Sbar_Max',
-            '%Nomad_Relative_Wdw', '%Nomad_Save_Qry_Path', '%Nomad_Script_Fn',
-            '%Nomad_Script_Log', '%Nomad_Script_Wdw',
-            '%Nomad_Skip_Change_Logic', '%Nomad_Skip_Onselect_Logic',
-            '%Nomad_Stk$', '%Nomad_Tab_Dir', '%Nomad_Timeout',
-            '%Nomad_Turbo_Off', '%Nomad_Visual_Effect',
-            '%Nomad_Visual_Override', '%Nomad_Win_Ver', '%Nomad_Xchar',
-            '%Nomad_Xmax', '%Nomad_Ychar', '%Nomad_Ymax', '%Scr_Def_Attr$',
-            '%Scr_Def_H_Fl$', '%Scr_Def_H_Id$', '%Scr_Lib', '%Scr_Lib$',
-            '%Z__Usr_Sec$', 'Alternate_Panel$', 'Alternate_Panel_Type$',
-            'Arg_1$', 'Arg_10$', 'Arg_11$', 'Arg_12$', 'Arg_13$', 'Arg_14$',
-            'Arg_15$', 'Arg_16$', 'Arg_17$', 'Arg_18$', 'Arg_19$', 'Arg_2$',
-            'Arg_20$', 'Arg_3$', 'Arg_4$', 'Arg_5$', 'Arg_6$', 'Arg_7$',
-            'Arg_8$', 'Arg_9$', 'Change_Flg', 'Cmd_Str$', 'Default_Prog$',
-            'Disp_Cmd$', 'Entire_Record$', 'Exit_Cmd$', 'Fldr_Default_Prog$',
-            'Folder_Id$', 'Id', 'Id$', 'Ignore_Exit', 'Initialize_Flg',
-            'Init_Text$', 'Init_Val$', 'Main_Scrn_K$', 'Mnu_Ln$',
-            'Next_Folder', 'Next_Id', 'Next_Id$', 'No_Flush', 'Prime_Key$',
-            'Prior_Val', 'Prior_Val$', 'Qry_Val$', 'Refresh_Flg',
-            'Replacement_Folder$', 'Replacement_Lib$', 'Replacement_Scrn$',
-            'Scrn_Id$', 'Scrn_K$', 'Scrn_Lib$', 'Tab_Table$', '_Eom$'
-            ),
-        5 => array(
-            // Mnemonics
-            "'!w'", "'*c'", "'*h'", "'*i'", "'*o'", "'*r'", "'*x'",
-            "'+b'", "'+d'", "'+e'", "'+f'", "'+i'", "'+n'",
-            "'+p'", "'+s'", "'+t'", "'+u'", "'+v'", "'+w'", "'+x'",
-            "'+z'", "'-b'", "'-d'", "'-e'", "'-f'", "'-i'",
-            "'-n'", "'-p'", "'-s'", "'-t'", "'-u'", "'-v'", "'-w'",
-            "'-x'", "'-z'", "'2d'", "'3d'", "'4d'", "'@@'", "'ab'",
-            "'arc'", "'at'", "'backgr'", "'bb'", "'be'", "'beep'",
-            "'bg'", "'bi'", "'bj'", "'bk'", "'black'", "'blue'",
-            "'bm'", "'bo'", "'box'", "'br'", "'bs'", "'bt'", "'bu'",
-            "'bw'", "'bx'", "'caption'", "'ce'", "'cf'", "'ch'",
-            "'ci'", "'circle'", "'cl'", "'colour'", "'cp'", "'cpi'",
-            "'cr'", "'cs'", "'cursor'", "'cyan''_cyan'", "'dc'",
-            "'default'", "'df'", "'dialogue'", "'dn'", "'do'",
-            "'drop'", "'eb'", "'ee'", "'ef'", "'eg'", "'ei'", "'ej'",
-            "'el'", "'em'", "'eo'", "'ep'", "'er'", "'es'", "'et'",
-            "'eu'", "'ew'", "'ff'", "'fill'", "'fl'", "'font'",
-            "'frame'", "'gd'", "'ge'", "'gf'", "'goto'", "'green'",
-            "'gs'", "'hide'", "'ic'", "'image'", "'jc'",
-            "'jd'", "'jl'", "'jn'", "'jr'", "'js'", "'l6'", "'l8'",
-            "'lc'", "'ld'", "'lf'", "'li'", "'line'", "'lm'",
-            "'lpi'", "'lt'", "'magenta'", "'maxsize'", "'me'",
-            "'message'", "'minsize'", "'mn'", "'mode'",
-            "'move'", "'mp'", "'ms'", "'ni'", "'offset'", "'option'",
-            "'pe'", "'pen'", "'picture'", "'pie'", "'pm'", "'polygon'",
-            "'pop'", "'ps'", "'push'", "'rb'", "'rc'", "'rectangle'",
-            "'red'", "'rl'", "'rm'", "'rp'", "'rs'", "'rt'", "'sb'",
-            "'scroll'", "'sd'", "'se'", "'sf'", "'show'", "'size'",
-            "'sl'", "'sn'", "'sp'", "'sr'", "'swap'", "'sx'", "'text'",
-            "'textwdw'", "'tr'", "'tw'", "'uc'", "'up'", "'vt'", "'wa'",
-            "'wc'", "'wd'", "'wg'", "'white'", "'window'", "'wm'",
-            "'wp'", "'wr'", "'wrap'", "'ws'", "'wx'", "'xp'", "'yellow'",
-            "'zx'", "'_black'", "'_blue'", "'_colour'", "'_green'",
-            "'_magenta'", "'_red'", "'_white'", "'_yellow'"
-            ),
-        ),
-    'SYMBOLS' => array(
-        0 => array('+', '-', '*', '/', '^', '|'),
-        1 => array('++', '--', '+=', '-=', '*=', '/=', '^=', '|='),
-        2 => array('&lt;', '&gt;', '='),
-        3 => array('(', ')', '[', ']', '{', '}'),
-        4 => array(',', '@', ';', '\\')
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false,
-        2 => false,
-        3 => false,
-        4 => false,
-        5 => false,
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: navy;', // Directives
-            2 => 'color: blue;', // System Functions
-            3 => 'color: blue;', // System Variables
-            4 => 'color: #6A5ACD; font-style: italic;', // Nomads Global Variables
-            5 => 'color: #BDB76B;', // Mnemonics
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #008080; font-style: italic;',
-            2 => 'color: #008080;',
-            'MULTI' => 'color: #008080; font-style: italic;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #000066;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: green;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #00008B;'
-            ),
-        'METHODS' => array(
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #008000;',
-            1 => 'color: #000099;',
-            2 => 'color: #000099;',
-            3 => 'color: #0000C9;',
-            4 => 'color: #000099;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #000099;'
-            ),
-        'SCRIPT' => array(
-            ),
-        'REGEXPS' => array(
-            1 => 'color: #006400; font-weight: bold',
-            2 => 'color: #6A5ACD;'
-            )
-        ),
-    'URLS' => array(
-        1 => 'http://www.allbasic.info./wiki/index.php/PX:Directive_{FNAME}',
-        2 => 'http://www.allbasic.info./wiki/index.php/PX:System_function_{FNAME}',
-        3 => 'http://www.allbasic.info./wiki/index.php/PX:System_variable_{FNAME}',
-        4 => 'http://www.allbasic.info./wiki/index.php/PX:Nomads_{FNAME}',
-        5 => 'http://www.allbasic.info./wiki/index.php/PX:Mnemonic_{FNAMEU}'
-        ),
-    'OOLANG' => true,
-    'OBJECT_SPLITTERS' => array(
-        1 => "'"
-        ),
-    'REGEXPS' => array(
-        1 => array(
-            // Line Labels
-            GESHI_SEARCH => '([[:space:]])([a-zA-Z_][a-zA-Z0-9_]+)(:)',
-            GESHI_REPLACE => '\\2',
-            GESHI_MODIFIERS => '',
-            GESHI_BEFORE => '\\1',
-            GESHI_AFTER => '\\3'
-            ),
-        2 => array(
-            // Global String Variables
-            GESHI_SEARCH => '(\%)([a-zA-Z_][a-zA-Z0-9_]+)(\$)',
-            GESHI_REPLACE => '\\1\\2\\3',
-            GESHI_MODIFIERS => '',
-            GESHI_BEFORE => '',
-            GESHI_AFTER => ''
-            )
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        ),
-    'PARSER_CONTROL' => array(
-        'ENABLE_FLAGS' => array(
-            'NUMBERS' => GESHI_NEVER
-            )
-        ),
-    'TAB_WIDTH' => 4
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/purebasic.php b/wiki/vendor/geshi/geshi/src/geshi/purebasic.php
deleted file mode 100644
index e40890b..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/purebasic.php
+++ /dev/null
@@ -1,301 +0,0 @@
-<?php
-/*************************************************************************************
- * purebasic.php
- * -------
- * Author: GuShH
- * Copyright: (c) 2009 Gustavo Julio Fiorenza
- * Release Version: 1.0.9.0
- * Date Started: 13/06/2009
- *
- * PureBasic language file for GeSHi.
- *
- * CHANGES
- * -------
- * 13/06/2009 (1.0.0)
- *   -  First Release
- *
- * TODO (updated 2009/06/13)
- * -------------------------
- * Add the remaining ASM mnemonics and the 4.3x functions/etc.
- * Better coloring (perhaps match the default scheme of PB?)
- *
- *************************************************************************************
- *
- *     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' => 'PureBasic',
-    'COMMENT_SINGLE' => array( 1 => ";"  ),
-    'COMMENT_MULTI' => array( ),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array('"'),
-    'ESCAPE_CHAR' => '',
-    'KEYWORDS' => array(
-        1 => array(
-            // Keywords
-            'And', 'As', 'Break', 'CallDebugger', 'Case', 'CompilerCase', 'CompilerDefault', 'CompilerElse', 'CompilerEndIf', 'CompilerEndSelect',
-            'CompilerError', 'CompilerIf', 'CompilerSelect', 'Continue', 'Data', 'DataSection', 'EndDataSection', 'Debug', 'DebugLevel', 'Declare',
-            'DeclareCDLL', 'DeclareDLL', 'Default', 'Define', 'Dim', 'DisableASM', 'DisableDebugger', 'DisableExplicit', 'Else', 'ElseIf', 'EnableASM',
-            'EnableDebugger', 'EnableExplicit', 'End', 'EndEnumeration', 'EndIf', 'EndImport', 'EndInterface', 'EndMacro', 'EndProcedure',
-            'EndSelect', 'EndStructure', 'EndStructureUnion', 'EndWith', 'Enumeration', 'Extends', 'FakeReturn', 'For', 'Next', 'ForEach',
-            'ForEver', 'Global', 'Gosub', 'Goto', 'If', 'Import', 'ImportC', 'IncludeBinary', 'IncludeFile', 'IncludePath', 'Interface', 'Macro',
-            'NewList', 'Not', 'Or', 'Procedure', 'ProcedureC', 'ProcedureCDLL', 'ProcedureDLL', 'ProcedureReturn', 'Protected', 'Prototype',
-            'PrototypeC', 'Read', 'ReDim', 'Repeat', 'Until', 'Restore', 'Return', 'Select', 'Shared', 'Static', 'Step', 'Structure', 'StructureUnion',
-            'Swap', 'To', 'Wend', 'While', 'With', 'XIncludeFile', 'XOr'
-            ),
-        2 => array(
-            // All Functions
-            'Abs', 'ACos', 'Add3DArchive', 'AddBillboard', 'AddDate', 'AddElement', 'AddGadgetColumn', 'AddGadgetItem',
-            'AddKeyboardShortcut', 'AddMaterialLayer', 'AddPackFile', 'AddPackMemory', 'AddStatusBarField', 'AddSysTrayIcon',
-            'AllocateMemory', 'AmbientColor', 'AnimateEntity', 'Asc', 'ASin', 'ATan', 'AudioCDLength', 'AudioCDName', 'AudioCDStatus',
-            'AudioCDTrackLength', 'AudioCDTracks', 'AudioCDTrackSeconds', 'AvailableProgramOutput', 'AvailableScreenMemory',
-            'BackColor', 'Base64Decoder', 'Base64Encoder', 'BillboardGroupLocate', 'BillboardGroupMaterial', 'BillboardGroupX',
-            'BillboardGroupY', 'BillboardGroupZ', 'BillboardHeight', 'BillboardLocate', 'BillboardWidth', 'BillboardX', 'BillboardY', 'BillboardZ',
-            'Bin', 'BinQ', 'Blue', 'Box', 'ButtonGadget', 'ButtonImageGadget', 'CalendarGadget', 'CallCFunction', 'CallCFunctionFast',
-            'CallFunction', 'CallFunctionFast', 'CameraBackColor', 'CameraFOV', 'CameraLocate', 'CameraLookAt', 'CameraProjection',
-            'CameraRange', 'CameraRenderMode', 'CameraX', 'CameraY', 'CameraZ', 'CatchImage', 'CatchSound', 'CatchSprite',
-            'CatchXML', 'ChangeAlphaIntensity', 'ChangeCurrentElement', 'ChangeGamma', 'ChangeListIconGadgetDisplay',
-            'ChangeSysTrayIcon', 'CheckBoxGadget', 'CheckEntityCollision', 'CheckFilename', 'ChildXMLNode', 'Chr', 'Circle',
-            'ClearBillboards', 'ClearClipboard', 'ClearConsole', 'ClearError', 'ClearGadgetItemList', 'ClearList', 'ClearScreen', 'ClipSprite',
-            'CloseConsole', 'CloseDatabase', 'CloseFile', 'CloseGadgetList', 'CloseHelp', 'CloseLibrary', 'CloseNetworkConnection',
-            'CloseNetworkServer', 'ClosePack', 'ClosePreferences', 'CloseProgram', 'CloseScreen', 'CloseSubMenu', 'CloseWindow',
-            'ColorRequester', 'ComboBoxGadget', 'CompareMemory', 'CompareMemoryString', 'ConnectionID', 'ConsoleColor',
-            'ConsoleCursor', 'ConsoleError', 'ConsoleLocate', 'ConsoleTitle', 'ContainerGadget', 'CopyDirectory', 'CopyEntity',
-            'CopyFile', 'CopyImage', 'CopyLight', 'CopyMaterial', 'CopyMemory', 'CopyMemoryString', 'CopyMesh', 'CopySprite',
-            'CopyTexture', 'CopyXMLNode', 'Cos', 'CountBillboards', 'CountGadgetItems', 'CountLibraryFunctions', 'CountList',
-            'CountMaterialLayers', 'CountProgramParameters', 'CountRenderedTriangles', 'CountString', 'CRC32Fingerprint',
-            'CreateBillboardGroup', 'CreateCamera', 'CreateDirectory', 'CreateEntity', 'CreateFile', 'CreateGadgetList',
-            'CreateImage', 'CreateLight', 'CreateMaterial', 'CreateMenu', 'CreateMesh', 'CreateMutex', 'CreateNetworkServer',
-            'CreatePack', 'CreatePalette', 'CreateParticleEmitter', 'CreatePopupMenu', 'CreatePreferences', 'CreateSprite',
-            'CreateSprite3D', 'CreateStatusBar', 'CreateTerrain', 'CreateTexture', 'CreateThread', 'CreateToolBar', 'CreateXML',
-            'CreateXMLNode', 'DatabaseColumnName', 'DatabaseColumns', 'DatabaseColumnType', 'DatabaseDriverDescription',
-            'DatabaseDriverName', 'DatabaseError', 'DatabaseQuery', 'DatabaseUpdate', 'Date', 'DateGadget', 'Day', 'DayOfWeek',
-            'DayOfYear', 'DefaultPrinter', 'Defined', 'Delay', 'DeleteDirectory', 'DeleteElement', 'DeleteFile', 'DeleteXMLNode',
-            'DESFingerprint', 'DesktopDepth', 'DesktopFrequency', 'DesktopHeight', 'DesktopMouseX', 'DesktopMouseY', 'DesktopName',
-            'DesktopWidth', 'DirectoryEntryAttributes', 'DirectoryEntryDate', 'DirectoryEntryName', 'DirectoryEntrySize',
-            'DirectoryEntryType', 'DisableGadget', 'DisableMaterialLighting', 'DisableMenuItem', 'DisableToolBarButton', 'DisableWindow',
-            'DisASMCommand', 'DisplayAlphaSprite', 'DisplayPalette', 'DisplayPopupMenu', 'DisplayRGBFilter', 'DisplayShadowSprite',
-            'DisplaySolidSprite', 'DisplaySprite', 'DisplaySprite3D', 'DisplayTranslucentSprite', 'DisplayTransparentSprite', 'DragFiles',
-            'DragImage', 'DragOSFormats', 'DragPrivate', 'DragText', 'DrawAlphaImage', 'DrawImage', 'DrawingBuffer',
-            'DrawingBufferPitch', 'DrawingBufferPixelFormat', 'DrawingFont', 'DrawingMode', 'DrawText', 'EditorGadget',
-            'egrid_AddColumn', 'egrid_AddRows', 'egrid_AppendCells', 'egrid_ClearRows', 'egrid_CopyCells',
-            'egrid_CreateCellCallback', 'egrid_CreateGrid', 'egrid_DeleteCells', 'egrid_FastDeleteCells', 'egrid_FreeGrid',
-            'egrid_GetCellSelection', 'egrid_GetCellText', 'egrid_GetColumnOrderArray', 'egrid_HasSelectedCellChanged', 'egrid_Height',
-            'egrid_HideEdit', 'egrid_HideGrid', 'egrid_MakeCellVisible', 'egrid_NumberOfColumns', 'egrid_NumberOfRows',
-            'egrid_PasteCells', 'egrid_Register', 'egrid_RemoveCellCallback', 'egrid_RemoveColumn', 'egrid_RemoveRow', 'egrid_Resize',
-            'egrid_SelectCell', 'egrid_SelectedColumn', 'egrid_SelectedRow', 'egrid_SetCellSelection', 'egrid_SetCellText',
-            'egrid_SetColumnOrderArray', 'egrid_SetHeaderFont', 'egrid_SetHeaderHeight', 'egrid_SetOption', 'egrid_Width', 'egrid_x',
-            'egrid_y', 'EjectAudioCD', 'ElapsedMilliseconds', 'Ellipse', 'EnableGadgetDrop', 'EnableGraphicalConsole',
-            'EnableWindowDrop', 'EnableWorldCollisions', 'EnableWorldPhysics', 'Engine3DFrameRate', 'EntityAngleX',
-            'EntityAnimationLength', 'EntityLocate', 'EntityMaterial', 'EntityMesh', 'EntityPhysicBody', 'EntityRenderMode',
-            'EntityX', 'EntityY', 'EntityZ', 'EnvironmentVariableName', 'EnvironmentVariableValue', 'Eof', 'EventClient',
-            'EventDropAction', 'EventDropBuffer', 'EventDropFiles', 'EventDropImage', 'EventDropPrivate', 'EventDropSize',
-            'EventDropText', 'EventDropType', 'EventDropX', 'EventDropY', 'EventGadget', 'EventlParam', 'EventMenu', 'EventServer',
-            'EventType', 'EventWindow', 'EventwParam', 'ExamineDatabaseDrivers', 'ExamineDesktops', 'ExamineDirectory',
-            'ExamineEnvironmentVariables', 'ExamineIPAddresses', 'ExamineJoystick', 'ExamineKeyboard', 'ExamineLibraryFunctions',
-            'ExamineMouse', 'ExaminePreferenceGroups', 'ExaminePreferenceKeys', 'ExamineScreenModes', 'ExamineWorldCollisions',
-            'ExamineXMLAttributes', 'ExplorerComboGadget', 'ExplorerListGadget', 'ExplorerTreeGadget', 'ExportXML',
-            'ExportXMLSize', 'FileBuffersSize', 'FileID', 'FileSeek', 'FileSize', 'FillArea', 'FindString', 'FinishDirectory',
-            'FirstDatabaseRow', 'FirstElement', 'FirstWorldCollisionEntity', 'FlipBuffers', 'FlushFileBuffers', 'Fog', 'FontID',
-            'FontRequester', 'FormatDate', 'FormatXML', 'Frame3DGadget', 'FreeBillboardGroup', 'FreeCamera', 'FreeEntity',
-            'FreeFont', 'FreeGadget', 'FreeImage', 'FreeLight', 'FreeMaterial', 'FreeMemory', 'FreeMenu', 'FreeMesh',
-            'FreeModule', 'FreeMovie', 'FreeMutex', 'FreePalette', 'FreeParticleEmitter', 'FreeSound', 'FreeSprite',
-            'FreeSprite3D', 'FreeStatusBar', 'FreeTexture', 'FreeToolBar', 'FreeXML', 'FrontColor', 'GadgetHeight', 'GadgetID',
-            'GadgetItemID', 'GadgetToolTip', 'GadgetType', 'GadgetWidth', 'GadgetX', 'GadgetY', 'GetActiveGadget',
-            'GetActiveWindow', 'GetClientIP', 'GetClientPort', 'GetClipboardImage', 'GetClipboardText', 'GetCurrentDirectory',
-            'GetCurrentEIP', 'GetDatabaseDouble', 'GetDatabaseFloat', 'GetDatabaseLong', 'GetDatabaseQuad', 'GetDatabaseString',
-            'GetDisASMString', 'GetEntityAnimationTime', 'GetEntityFriction', 'GetEntityMass', 'GetEnvironmentVariable',
-            'GetErrorAddress', 'GetErrorCounter', 'GetErrorDescription', 'GetErrorDLL', 'GetErrorLineNR', 'GetErrorModuleName',
-            'GetErrorNumber', 'GetErrorRegister', 'GetExtensionPart', 'GetFileAttributes', 'GetFileDate', 'GetFilePart', 'GetFunction',
-            'GetFunctionEntry', 'GetGadgetAttribute', 'GetGadgetColor', 'GetGadgetData', 'GetGadgetFont',
-            'GetGadgetItemAttribute', 'GetGadgetItemColor', 'GetGadgetItemData', 'GetGadgetItemState', 'GetGadgetItemText',
-            'GetGadgetState', 'GetGadgetText', 'GetHomeDirectory', 'GetMenuItemState', 'GetMenuItemText', 'GetMenuTitleText',
-            'GetModulePosition', 'GetModuleRow', 'GetPaletteColor', 'GetPathPart', 'GetTemporaryDirectory',
-            'GetToolBarButtonState', 'GetWindowColor', 'GetWindowState', 'GetWindowTitle', 'GetXMLAttribute', 'GetXMLEncoding',
-            'GetXMLNodeName', 'GetXMLNodeOffset', 'GetXMLNodeText', 'GetXMLStandalone', 'GoToEIP', 'GrabImage', 'GrabSprite',
-            'Green', 'Hex', 'HexQ', 'HideBillboardGroup', 'HideEntity', 'HideGadget', 'HideLight', 'HideMenu', 'HideParticleEmitter',
-            'HideWindow', 'Hostname', 'Hour', 'HyperLinkGadget', 'ImageDepth', 'ImageGadget', 'ImageHeight', 'ImageID',
-            'ImageOutput', 'ImageWidth', 'InitAudioCD', 'InitEngine3D', 'InitJoystick', 'InitKeyboard', 'InitMouse', 'InitMovie',
-            'InitNetwork', 'InitPalette', 'InitScintilla', 'InitSound', 'InitSprite', 'InitSprite3D', 'Inkey', 'Input', 'InputRequester',
-            'InsertElement', 'Int', 'IntQ', 'IPAddressField', 'IPAddressGadget', 'IPString', 'IsBillboardGroup', 'IsCamera', 'IsDatabase',
-            'IsDirectory', 'IsEntity', 'IsFile', 'IsFont', 'IsGadget', 'IsImage', 'IsLibrary', 'IsLight', 'IsMaterial', 'IsMenu', 'IsMesh',
-            'IsModule', 'IsMovie', 'IsPalette', 'IsParticleEmitter', 'IsProgram', 'IsScreenActive', 'IsSound', 'IsSprite', 'IsSprite3D',
-            'IsStatusBar', 'IsSysTrayIcon', 'IsTexture', 'IsThread', 'IsToolBar', 'IsWindow', 'IsXML', 'JoystickAxisX', 'JoystickAxisY',
-            'JoystickButton', 'KeyboardInkey', 'KeyboardMode', 'KeyboardPushed', 'KeyboardReleased', 'KillProgram', 'KillThread',
-            'LastElement', 'LCase', 'Left', 'Len', 'LibraryFunctionAddress', 'LibraryFunctionName', 'LibraryID', 'LightColor',
-            'LightLocate', 'LightSpecularColor', 'Line', 'LineXY', 'ListIconGadget', 'ListIndex', 'ListViewGadget', 'LoadFont',
-            'LoadImage', 'LoadMesh', 'LoadModule', 'LoadMovie', 'LoadPalette', 'LoadSound', 'LoadSprite', 'LoadTexture',
-            'LoadWorld', 'LoadXML', 'Loc', 'LockMutex', 'Lof', 'Log', 'Log10', 'LSet', 'LTrim', 'MainXMLNode', 'MakeIPAddress',
-            'MaterialAmbientColor', 'MaterialBlendingMode', 'MaterialDiffuseColor', 'MaterialFilteringMode', 'MaterialID',
-            'MaterialShadingMode', 'MaterialSpecularColor', 'MD5FileFingerprint', 'MD5Fingerprint', 'MDIGadget', 'MemorySize',
-            'MemoryStringLength', 'MenuBar', 'MenuHeight', 'MenuID', 'MenuItem', 'MenuTitle', 'MeshID', 'MessageRequester',
-            'Mid', 'Minute', 'ModuleVolume', 'Month', 'MouseButton', 'MouseDeltaX', 'MouseDeltaY', 'MouseLocate', 'MouseWheel',
-            'MouseX', 'MouseY', 'MoveBillboard', 'MoveBillboardGroup', 'MoveCamera', 'MoveEntity', 'MoveLight', 'MoveMemory',
-            'MoveParticleEmitter', 'MoveXMLNode', 'MovieAudio', 'MovieHeight', 'MovieInfo', 'MovieLength', 'MovieSeek',
-            'MovieStatus', 'MovieWidth', 'NetworkClientEvent', 'NetworkServerEvent', 'NewPrinterPage', 'NextDatabaseDriver',
-            'NextDatabaseRow', 'NextDirectoryEntry', 'NextElement', 'NextEnvironmentVariable', 'NextIPAddress',
-            'NextLibraryFunction', 'NextPackFile', 'NextPreferenceGroup', 'NextPreferenceKey', 'NextScreenMode',
-            'NextSelectedFileName', 'NextWorldCollision', 'NextXMLAttribute', 'NextXMLNode', 'OffsetOf', 'OnErrorExit',
-            'OnErrorGosub', 'OnErrorGoto', 'OnErrorResume', 'OpenComPort', 'OpenConsole', 'OpenDatabase',
-            'OpenDatabaseRequester', 'OpenFile', 'OpenFileRequester', 'OpenGadgetList', 'OpenHelp', 'OpenLibrary',
-            'OpenNetworkConnection', 'OpenPack', 'OpenPreferences', 'OpenScreen', 'OpenSubMenu', 'OpenWindow',
-            'OpenWindowedScreen', 'OptionGadget', 'OSVersion', 'PackerCallback', 'PackFileSize', 'PackMemory', 'PanelGadget',
-            'ParentXMLNode', 'Parse3DScripts', 'ParseDate', 'ParticleColorFader', 'ParticleColorRange', 'ParticleEmissionRate',
-            'ParticleEmitterDirection', 'ParticleEmitterLocate', 'ParticleEmitterX', 'ParticleEmitterY', 'ParticleEmitterZ',
-            'ParticleMaterial', 'ParticleSize', 'ParticleTimeToLive', 'ParticleVelocity', 'PathRequester', 'PauseAudioCD',
-            'PauseMovie', 'PauseThread', 'PeekB', 'PeekC', 'PeekD', 'PeekF', 'PeekL', 'PeekQ', 'PeekS', 'PeekW', 'PlayAudioCD',
-            'PlayModule', 'PlayMovie', 'PlaySound', 'Plot', 'Point', 'PokeB', 'PokeC', 'PokeD', 'PokeF', 'PokeL', 'PokeQ', 'PokeS',
-            'PokeW', 'Pow', 'PreferenceComment', 'PreferenceGroup', 'PreferenceGroupName', 'PreferenceKeyName',
-            'PreferenceKeyValue', 'PreviousDatabaseRow', 'PreviousElement', 'PreviousXMLNode', 'Print', 'PrinterOutput',
-            'PrinterPageHeight', 'PrinterPageWidth', 'PrintN', 'PrintRequester', 'ProgramExitCode', 'ProgramFilename',
-            'ProgramID', 'ProgramParameter', 'ProgramRunning', 'ProgressBarGadget', 'Random', 'RandomSeed', 'RawKey',
-            'ReadByte', 'ReadCharacter', 'ReadConsoleData', 'ReadData', 'ReadDouble', 'ReadFile', 'ReadFloat', 'ReadLong',
-            'ReadPreferenceDouble', 'ReadPreferenceFloat', 'ReadPreferenceLong', 'ReadPreferenceQuad',
-            'ReadPreferenceString', 'ReadProgramData', 'ReadProgramError', 'ReadProgramString', 'ReadQuad', 'ReadString',
-            'ReadStringFormat', 'ReadWord', 'ReAllocateMemory', 'ReceiveNetworkData', 'ReceiveNetworkFile', 'Red',
-            'Reg_DeleteEmptyKey', 'Reg_DeleteKey', 'Reg_DeleteValue', 'Reg_GetErrorMsg', 'Reg_GetErrorNr',
-            'Reg_GetValueTyp', 'Reg_ListSubKey', 'Reg_ListSubValue', 'Reg_ReadBinary', 'Reg_ReadExpandString',
-            'Reg_ReadLong', 'Reg_ReadMultiLineString', 'Reg_ReadQuad', 'Reg_ReadString', 'Reg_WriteBinary',
-            'Reg_WriteExpandString', 'Reg_WriteLong', 'Reg_WriteMultiLineString', 'Reg_WriteQuad', 'Reg_WriteString',
-            'ReleaseMouse', 'RemoveBillboard', 'RemoveEnvironmentVariable', 'RemoveGadgetColumn', 'RemoveGadgetItem',
-            'RemoveKeyboardShortcut', 'RemoveMaterialLayer', 'RemovePreferenceGroup', 'RemovePreferenceKey',
-            'RemoveString', 'RemoveSysTrayIcon', 'RemoveXMLAttribute', 'RenameFile', 'RenderMovieFrame', 'RenderWorld',
-            'ReplaceString', 'ResetList', 'ResizeBillboard', 'ResizeEntity', 'ResizeGadget', 'ResizeImage', 'ResizeMovie',
-            'ResizeParticleEmitter', 'ResizeWindow', 'ResolveXMLAttributeName', 'ResolveXMLNodeName', 'ResumeAudioCD',
-            'ResumeMovie', 'ResumeThread', 'RGB', 'Right', 'RootXMLNode', 'RotateBillboardGroup', 'RotateCamera',
-            'RotateEntity', 'RotateMaterial', 'RotateSprite3D', 'Round', 'RSet', 'RTrim', 'RunProgram', 'SaveFileRequester',
-            'SaveImage', 'SaveSprite', 'SaveXML', 'ScaleEntity', 'ScaleMaterial', 'ScintillaGadget', 'ScintillaSendMessage',
-            'ScreenID', 'ScreenModeDepth', 'ScreenModeHeight', 'ScreenModeRefreshRate', 'ScreenModeWidth',
-            'ScreenOutput', 'ScrollAreaGadget', 'ScrollBarGadget', 'ScrollMaterial', 'Second', 'SecondWorldCollisionEntity',
-            'SelectedFilePattern', 'SelectedFontColor', 'SelectedFontName', 'SelectedFontSize', 'SelectedFontStyle',
-            'SelectElement', 'SendNetworkData', 'SendNetworkFile', 'SendNetworkString', 'SetActiveGadget',
-            'SetActiveWindow', 'SetClipboardImage', 'SetClipboardText', 'SetCurrentDirectory', 'SetDragCallback',
-            'SetDropCallback', 'SetEntityAnimationTime', 'SetEntityFriction', 'SetEntityMass', 'SetEnvironmentVariable',
-            'SetErrorNumber', 'SetFileAttributes', 'SetFileDate', 'SetFrameRate', 'SetGadgetAttribute', 'SetGadgetColor',
-            'SetGadgetData', 'SetGadgetFont', 'SetGadgetItemAttribute', 'SetGadgetItemColor', 'SetGadgetItemData',
-            'SetGadgetItemState', 'SetGadgetItemText', 'SetGadgetState', 'SetGadgetText', 'SetMenuItemState',
-            'SetMenuItemText', 'SetMenuTitleText', 'SetMeshData', 'SetModulePosition', 'SetPaletteColor', 'SetRefreshRate',
-            'SetToolBarButtonState', 'SetWindowCallback', 'SetWindowColor', 'SetWindowState', 'SetWindowTitle',
-            'SetXMLAttribute', 'SetXMLEncoding', 'SetXMLNodeName', 'SetXMLNodeOffset', 'SetXMLNodeText',
-            'SetXMLStandalone', 'Sin', 'SizeOf', 'SkyBox', 'SkyDome', 'SmartWindowRefresh', 'SortArray', 'SortList',
-            'SortStructuredArray', 'SortStructuredList', 'SoundFrequency', 'SoundPan', 'SoundVolume', 'Space',
-            'SpinGadget', 'SplitterGadget', 'Sprite3DBlendingMode', 'Sprite3DQuality', 'SpriteCollision', 'SpriteDepth',
-            'SpriteHeight', 'SpriteID', 'SpriteOutput', 'SpritePixelCollision', 'SpriteWidth', 'Sqr', 'Start3D', 'StartDrawing',
-            'StartPrinting', 'StartSpecialFX', 'StatusBarHeight', 'StatusBarIcon', 'StatusBarID', 'StatusBarText',
-            'StickyWindow', 'Stop3D', 'StopAudioCD', 'StopDrawing', 'StopModule', 'StopMovie', 'StopPrinting',
-            'StopSound', 'StopSpecialFX', 'Str', 'StrD', 'StrF', 'StringByteLength', 'StringField', 'StringGadget', 'StrQ',
-            'StrU', 'Subsystem', 'SwapElements', 'SysTrayIconToolTip', 'Tan', 'TerrainHeight', 'TextGadget', 'TextHeight',
-            'TextureHeight', 'TextureID', 'TextureOutput', 'TextureWidth', 'TextWidth', 'ThreadID', 'ThreadPriority',
-            'ToolBarHeight', 'ToolBarID', 'ToolBarImageButton', 'ToolBarSeparator', 'ToolBarStandardButton',
-            'ToolBarToolTip', 'TrackBarGadget', 'TransformSprite3D', 'TransparentSpriteColor', 'TreeGadget', 'Trim',
-            'TruncateFile', 'TryLockMutex', 'UCase', 'UnlockMutex', 'UnpackMemory', 'UseAudioCD', 'UseBuffer',
-            'UseGadgetList', 'UseJPEGImageDecoder', 'UseJPEGImageEncoder', 'UseODBCDatabase', 'UseOGGSoundDecoder',
-            'UsePNGImageDecoder', 'UsePNGImageEncoder', 'UseTGAImageDecoder', 'UseTIFFImageDecoder', 'Val', 'ValD',
-            'ValF', 'ValQ', 'WaitProgram', 'WaitThread', 'WaitWindowEvent', 'WebGadget', 'WebGadgetPath', 'WindowEvent',
-            'WindowHeight', 'WindowID', 'WindowMouseX', 'WindowMouseY', 'WindowOutput', 'WindowWidth', 'WindowX',
-            'WindowY', 'WorldGravity', 'WorldShadows', 'WriteByte', 'WriteCharacter', 'WriteConsoleData', 'WriteData',
-            'WriteDouble', 'WriteFloat', 'WriteLong', 'WritePreferenceDouble', 'WritePreferenceFloat', 'WritePreferenceLong',
-            'WritePreferenceQuad', 'WritePreferenceString', 'WriteProgramData', 'WriteProgramString', 'WriteProgramStringN',
-            'WriteQuad', 'WriteString', 'WriteStringFormat', 'WriteStringN', 'WriteWord', 'XMLAttributeName', 'XMLAttributeValue',
-            'XMLChildCount', 'XMLError', 'XMLErrorLine', 'XMLErrorPosition', 'XMLNodeFromID', 'XMLNodeFromPath', 'XMLNodePath',
-            'XMLNodeType', 'XMLStatus', 'Year', 'ZoomSprite3D'
-            ),
-        3 => array(
-            // some ASM instructions
-            'AAA', 'AAD', 'AAM', 'AAS', 'ADC', 'ADD', 'AND', 'ARPL', 'BOUND', 'BSF', 'BSR', 'BSWAP', 'BT', 'BTC', 'BTR',
-            'BTS', 'CALL', 'CBW', 'CDQ', 'CLC', 'CLD', 'CLI', 'CLTS', 'CMC', 'CMP', 'CMPS', 'CMPXCHG', 'CWD', 'CWDE',
-            'DAA', 'DAS', 'DB', 'DD', 'DEC', 'DIV', 'DW', 'ENTER', 'ESC', 'F2XM1', 'FABS', 'FADD', 'FCHS', 'FCLEX',
-            'FCOM', 'FDIV', 'FDIVR', 'FFREE', 'FINCSTP', 'FINIT', 'FLD', 'FLD1', 'FLDCW', 'FMUL', 'FNOP', 'FPATAN',
-            'FPREM', 'FRNDINT', 'FSAVE', 'FSCALE', 'FSETPM', 'FSIN', 'FSQRT', 'FST', 'FSTENV', 'FSTSW', 'FSUB',
-            'FSUBR', 'FTST', 'FUCOM', 'FWAIT', 'FXAM', 'FXCH', 'FXTRACT', 'FYL2X', 'FYL2XP1', 'HLT', 'IDIV', 'IMUL',
-            'IN', 'INC', 'INS', 'INT', 'INTO', 'INVLPG', 'IRET', 'IRETD', 'JA', 'JAE', 'JB', 'JBE', 'JC', 'JCXZ', 'JE', 'JECXZ',
-            'JG', 'JGE', 'JL', 'JLE', 'JMP', 'JNA', 'JNAE', 'JNB', 'JNBE', 'JNC', 'JNE', 'JNG', 'JNGE', 'JNL', 'JNLE', 'JNO', 'JNP',
-            'JNS', 'JNZ', 'JO', 'JP', 'JPE', 'JPO', 'JS', 'JZ', 'LAHF', 'LAR', 'LDS', 'LEA', 'LEAVE', 'LES', 'LFS', 'LGDT', 'LGS',
-            'LIDT', 'LLDT', 'LMSW', 'LOCK', 'LODS', 'LOOP', 'LOOPE', 'LOOPNE', 'LOOPNZ', 'LOOPZ', 'LSL', 'LSS', 'LTR',
-            'MOV', 'MOVS', 'MOVSX', 'MOVZX', 'MUL', 'NEG', 'NOP', 'NOT', 'OR', 'OUT', 'OUTS', 'POP', 'POPA', 'POPAD',
-            'POPF', 'POPFD', 'PUSH', 'PUSHA', 'PUSHAD', 'PUSHF', 'PUSHFD', 'RCL', 'RCR', 'REP', 'REPE', 'REPNE',
-            'REPNZ', 'REPZ', 'RET', 'RETF', 'ROL', 'ROR', 'SAHF', 'SAL', 'SAR', 'SBB', 'SCAS', 'SETAE', 'SETB', 'SETBE',
-            'SETC', 'SETE', 'SETG', 'SETGE', 'SETL', 'SETLE', 'SETNA', 'SETNAE', 'SETNB', 'SETNC', 'SETNE', 'SETNG',
-            'SETNGE', 'SETNL', 'SETNLE', 'SETNO', 'SETNP', 'SETNS', 'SETNZ', 'SETO', 'SETP', 'SETPE', 'SETPO',
-            'SETS', 'SETZ', 'SGDT', 'SHL', 'SHLD', 'SHR', 'SHRD', 'SIDT', 'SLDT', 'SMSW', 'STC', 'STD', 'STI',
-            'STOS', 'STR', 'SUB', 'TEST', 'VERR', 'VERW', 'WAIT', 'WBINVD', 'XCHG', 'XLAT', 'XLATB', 'XOR'
-            )
-        ),
-    'SYMBOLS' => array(
-        '(', ')', '+', '-', '*', '/', '\\', '>', '<', '=', '<=', '>=', '&', '|', '!', '~', '<>', '>>', '<<', '%'
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false,
-        2 => false,
-        3 => false
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #000066; font-weight: bold;',
-            2 => 'color: #0000ff;',
-            3 => 'color: #000fff;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #ff0000; font-style: italic;',
-            'MULTI' => 'color: #ff0000; font-style: italic;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #000099; font-weight: bold;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #000066;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #009900;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #CC0000;'
-            ),
-        'METHODS' => array(
-            1 => 'color: #006600;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #000066;'
-            ),
-        'REGEXPS' => array(
-            ),
-        'SCRIPT' => array(
-            0 => '',
-            1 => '',
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => ''
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(
-        1 => '\\'
-        ),
-    'REGEXPS' => array(
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        0 => false,
-        1 => false
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/pycon.php b/wiki/vendor/geshi/geshi/src/geshi/pycon.php
deleted file mode 100644
index 31531a7..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/pycon.php
+++ /dev/null
@@ -1,62 +0,0 @@
-<?php
-/*************************************************************************************
- * python.php
- * ----------
- * Author: Roberto Rossi (rsoftware@altervista.org)
- * Copyright: (c) 2004 Roberto Rossi (http://rsoftware.altervista.org), Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.9.0
- * Date Started: 2004/08/30
- *
- * Python language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2008/12/18
- *  -  Added missing functions and keywords. Also added two new Python 3.0 types. SF#2441839
- * 2005/05/26
- *  -  Modifications by Tim (tim@skreak.com): added more keyword categories, tweaked colors
- * 2004/11/27 (1.0.1)
- *  -  Added support for multiple object splitters
- * 2004/08/30 (1.0.0)
- *  -  First Release
- *
- * TODO (updated 2004/11/27)
- * -------------------------
- *
- *************************************************************************************
- *
- *     This file is part of GeSHi.
- *
- *   GeSHi is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   GeSHi is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with GeSHi; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- ************************************************************************************/
-
-//This
-require(dirname(__FILE__).'/python.php');
-
-$language_data['LANG_NAME'] = 'Python (console mode)';
-
-$language_data['STRICT_MODE_APPLIES'] = GESHI_ALWAYS;
-$language_data['SCRIPT_DELIMITERS'][-1] = '/^(>>>).*?$(?:\n\.\.\..*?$)*($)/m';
-$language_data['HIGHLIGHT_STRICT_BLOCK'][-1] = true;
-
-$language_data['STYLES']['SCRIPT'][-1] = 'color: #222222;';
-
-if(!isset($language_data['COMMENT_REGEXP'])) {
-    $language_data['COMMENT_REGEXP'] = array();
-}
-
-$language_data['COMMENT_REGEXP'][-1] = '/(?:^|\A\s)(?:>>>|\.\.\.)/m';
-$language_data['STYLES']['COMMENTS'][-1] = 'color: #444444;';
diff --git a/wiki/vendor/geshi/geshi/src/geshi/pys60.php b/wiki/vendor/geshi/geshi/src/geshi/pys60.php
deleted file mode 100644
index caedc2f..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/pys60.php
+++ /dev/null
@@ -1,271 +0,0 @@
-<?php
-/**************************************************************************************
- * pys60.php
- * ----------
- * 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.9.0
- * Date Started: 2012/05/03
- *
- * Python for S60 language file for GeSHi.
- *
- * CHANGES
- * -------
- * No Changes Till Date
- *
- * The python.php file is extended to pys60.php with required modifications
- *
- * NOTES
- *
- * -I have kept the ":" in Reserved chars, so that it gets highlighted differently than brackets and/or symbols
- *
- *************************************************************************************
- *
- *     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' => 'Python for S60',
-    'COMMENT_SINGLE' => array(1 => '#'),
-    'COMMENT_MULTI' => array(),
-    '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(
-            'and', 'del', 'for', 'is', 'raise', 'assert', 'elif', 'from', 'lambda', 'return', 'break',
-            'else', 'global', 'not', 'try', 'class', 'except', 'if', 'or', 'while', 'continue', 'exec',
-            'import', 'pass', 'yield', 'def', 'finally', 'in', 'print', "<<", ">>", "as"
-            ),
-
-        /*
-         ** Set 2: builtins
-         ** http://python.org/doc/current/lib/built-in-funcs.html
-         */
-        2 => array(
-            '__import__', 'abs', 'basestring', 'bool', 'callable', 'chr', 'classmethod', 'cmp',
-            'compile', 'complex', 'delattr', 'dict', 'dir', 'divmod', 'enumerate', 'eval', 'execfile',
-            'file', 'filter', 'float', 'frozenset', 'getattr', 'globals', 'hasattr', 'hash', 'help',
-            'hex', 'id', 'input', 'int', 'isinstance', 'issubclass', 'iter', 'len', 'list', 'locals',
-            'long', 'map', 'max', 'min', 'object', 'oct', 'open', 'ord', 'pow', 'property', 'range',
-            'raw_input', 'reduce', 'reload', 'repr', 'reversed', 'round', 'set', 'setattr', 'slice',
-            'sorted', 'staticmethod', 'str', 'sum', 'super', 'tuple', 'type', 'unichr', 'unicode',
-            'vars', 'xrange', 'zip',
-            // Built-in constants: http://python.org/doc/current/lib/node35.html
-            'False', 'True', 'None', 'NotImplemented', 'Ellipsis',
-            // Built-in Exceptions: http://python.org/doc/current/lib/module-exceptions.html
-            'Exception', 'StandardError', 'ArithmeticError', 'LookupError', 'EnvironmentError',
-            'AssertionError', 'AttributeError', 'EOFError', 'FloatingPointError', 'IOError',
-            'ImportError', 'IndexError', 'KeyError', 'KeyboardInterrupt', 'MemoryError', 'NameError',
-            'NotImplementedError', 'OSError', 'OverflowError', 'ReferenceError', 'RuntimeError',
-            'StopIteration', 'SyntaxError', 'SystemError', 'SystemExit', 'TypeError',
-            'UnboundlocalError', 'UnicodeError', 'UnicodeEncodeError', 'UnicodeDecodeError',
-            'UnicodeTranslateError', 'ValueError', 'WindowsError', 'ZeroDivisionError', 'Warning',
-            'UserWarning', 'DeprecationWarning', 'PendingDeprecationWarning', 'SyntaxWarning',
-            'RuntimeWarning', 'FutureWarning',
-            //Symbian Errors
-            "SymbianError", "KernelError",
-            // self: this is a common python convention (but not a reserved word)
-            'self'
-            ),
-
-        /*
-         ** Set 3: standard library
-         ** http://python.org/doc/current/lib/modindex.html
-         */
-        3 => array(
-            '__builtin__', '__future__', '__main__', '_winreg', 'aifc', 'AL', 'al', 'anydbm',
-            'array', 'asynchat', 'asyncore', 'atexit', 'audioop', 'base64', 'BaseHTTPServer',
-            'Bastion', 'binascii', 'binhex', 'bisect', 'bsddb', 'bz2', 'calendar', 'cd', 'cgi',
-            'CGIHTTPServer', 'cgitb', 'chunk', 'cmath', 'cmd', 'code', 'codecs', 'codeop',
-            'collections', 'colorsys', 'commands', 'compileall', 'compiler',
-            'ConfigParser', 'Cookie', 'cookielib', 'copy', 'copy_reg', 'cPickle', 'crypt',
-            'cStringIO', 'csv', 'curses', 'datetime', 'dbhash', 'dbm', 'decimal', 'DEVICE',
-            'difflib', 'dircache', 'dis', 'distutils', 'dl', 'doctest', 'DocXMLRPCServer', 'dumbdbm',
-            'dummy_thread', 'dummy_threading', 'email', 'encodings', 'errno', 'exceptions', 'fcntl',
-            'filecmp', 'fileinput', 'FL', 'fl', 'flp', 'fm', 'fnmatch', 'formatter', 'fpectl',
-            'fpformat', 'ftplib', 'gc', 'gdbm', 'getopt', 'getpass', 'gettext', 'GL', 'gl', 'glob',
-            'gopherlib', 'grp', 'gzip', 'heapq', 'hmac', 'hotshot', 'htmlentitydefs', 'htmllib',
-            'HTMLParser', 'httplib', 'imageop', 'imaplib', 'imgfile', 'imghdr', 'imp', 'inspect',
-            'itertools', 'jpeg', 'keyword', 'linecache', 'locale', 'logging', 'mailbox', 'mailcap',
-            'marshal', 'math', 'md5', 'mhlib', 'mimetools', 'mimetypes', 'MimeWriter', 'mimify',
-            'mmap', 'msvcrt', 'multifile', 'mutex', 'netrc', 'new', 'nis', 'nntplib', 'operator',
-            'optparse', 'os', 'ossaudiodev', 'parser', 'pdb', 'pickle', 'pickletools', 'pipes',
-            'pkgutil', 'platform', 'popen2', 'poplib', 'posix', 'posixfile', 'pprint', 'profile',
-            'pstats', 'pty', 'pwd', 'py_compile', 'pyclbr', 'pydoc', 'Queue', 'quopri', 'random',
-            're', 'readline', 'resource', 'rexec', 'rgbimg', 'rlcompleter',
-            'robotparser', 'sched', 'ScrolledText', 'select', 'sets', 'sgmllib', 'sha', 'shelve',
-            'shlex', 'shutil', 'signal', 'SimpleHTTPServer', 'SimpleXMLRPCServer', 'site', 'smtpd',
-            'smtplib', 'sndhdr', 'socket', 'SocketServer', 'stat', 'statcache', 'statvfs', 'string',
-            'StringIO', 'stringprep', 'struct', 'subprocess', 'sunau', 'SUNAUDIODEV', 'sunaudiodev',
-            'symbol', 'sys', 'syslog', 'tabnanny', 'tarfile', 'telnetlib', 'tempfile', 'termios',
-            'test', 'textwrap', 'thread', 'threading', 'time', 'timeit', 'Tix', 'Tkinter', 'token',
-            'tokenize', 'traceback', 'tty', 'turtle', 'types', 'unicodedata', 'unittest', 'urllib2',
-            'urllib', 'urlparse', 'user', 'UserDict', 'UserList', 'UserString', 'uu', 'warnings',
-            'wave', 'weakref', 'webbrowser', 'whichdb', 'whrandom', 'winsound', 'xdrlib', 'xml',
-            'xmllib', 'xmlrpclib', 'zipfile', 'zipimport', 'zlib', "os.path", "sys.path",
-
-            //PythonS60 Standard Library
-            //http://pys60.garage.maemo.org/doc/s60/
-            //These are the standard modules in the archive
-
-            "appuifw", "globalui","e32", "telephone", "aosocket", "btsocket",
-            "sysinfo","camera","graphics","keycapture","key_codes","topwindow", "gles",
-            "glcanvas","sensor", "audio","messaging", "inbox","location","positioning",
-            "contacts", "e32calendar", "e32db","e32dbm","logs","scriptext",
-            "series60_console",
-
-            //These are external but very often usable modules
-
-            "appuifw2","ArchetypeUI","elementtree","lightblue",
-            "activaprofile","Adjustor","akntextutils","aosocketnativenew",
-            "appreciation","applicationmanager","appswitch","atextit","bt_teror","btconsole",
-            "btswitch","cElementTree","cenrep","cerealizer","cl_gui","clipboard",
-            "clipboard_CHN","debugger","decompile2",
-            "dir_iter","download","easydb","ECenrep","Edit_find","efeature","elocation","envy",
-            "EProfile","erestart","error","esyagent","Execwap","exprofile","fastcamera",
-            "feature","fgimage","filebrowser","firmware","fold","fonts","fraction","FTP",
-            "ftplibnew","fy_manager","fy_menu","gles_utils","gps_location","hack",
-            "HTML2TXT","iapconnect","icon_image","image_decoder",
-            "ini","interactive_console","inting","key_modifiers","key_tricks","keypress",
-            "landmarks","lite_fm","locationacq","locationrequestor",
-            "logo","markupbase","mbm","mbm2","minidb","miniinfo","MISC",
-            "misty","Msg","ntpath","odict","Paintbox","pathinfo","pexif","pickcolor",
-            "powlite_fm","powlite_fm2","powlite_fm3","powlite_fme","prgbar","prodb",
-            "profileengine","progressbar","progressbartw","progressnotes",
-            "ProgressBarTW2","proshivka","py_upload","pyConnection","PyFileMan",
-            "pykeylock","PyPyc","pyqq","pys60crypto","pys60usb","rfc822",
-            "RUSOS","scmk","scrollpage","SISFIELDS","SISFIELD","sisfile",
-            "SISINFO","sisreader","Sistools","smidi","smsreject","speechy","sre_compile",
-            "sre_constants","sre_parse","sre","sysagent","syslang","TextMan",
-            "textrenderer","TextWrap","topwind","tsocket","uikludge","uikludges","uitricks",
-            "walkfile","wallpaper","wfm_lite",
-            "wif_keys","wif","window","wlanmgmt","wlantools","wt_color","wt_requesters",
-            "zhkey",
-
-            //These are recent additions
-            "miffile"
-            ),
-
-        /*
-         ** Set 4: special methods
-         ** http://python.org/doc/current/ref/specialnames.html
-         */
-        4 => array(
-            ///*
-            //// Iterator types: http://python.org/doc/current/lib/typeiter.html
-            //'__iter__', 'next',
-            //// String types: http://python.org/doc/current/lib/string-methods.html
-            //'capitalize', 'center', 'count', 'decode', 'encode', 'endswith', 'expandtabs',
-            //'find', 'index', 'isalnum', 'isalpha', 'isdigit', 'islower', 'isspace', 'istitle',
-            //'isupper', 'join', 'ljust', 'lower', 'lstrip', 'replace', 'rfind', 'rindex', 'rjust',
-            //'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title',
-            //'translate', 'upper', 'zfill',
-            // */
-
-            // Basic customization: http://python.org/doc/current/ref/customization.html
-            '__new__', '__init__', '__del__', '__repr__', '__str__',
-            '__lt__', '__le__', '__eq__', '__ne__', '__gt__', '__ge__', '__cmp__', '__rcmp__',
-            '__hash__', '__nonzero__', '__unicode__', '__dict__',
-            // Attribute access: http://python.org/doc/current/ref/attribute-access.html
-            '__setattr__', '__delattr__', '__getattr__', '__getattribute__', '__get__', '__set__',
-            '__delete__', '__slots__',
-            // Class creation, callable objects
-            '__metaclass__', '__call__',
-            // Container types: http://python.org/doc/current/ref/sequence-types.html
-            '__len__', '__getitem__', '__setitem__', '__delitem__', '__iter__', '__contains__',
-            '__getslice__', '__setslice__', '__delslice__',
-            // Numeric types: http://python.org/doc/current/ref/numeric-types.html
-            '__abs__','__add__','__and__','__coerce__','__div__','__divmod__','__float__',
-            '__hex__','__iadd__','__isub__','__imod__','__idiv__','__ipow__','__iand__',
-            '__ior__','__ixor__', '__ilshift__','__irshift__','__invert__','__int__',
-            '__long__','__lshift__',
-            '__mod__','__mul__','__neg__','__oct__','__or__','__pos__','__pow__',
-            '__radd__','__rdiv__','__rdivmod__','__rmod__','__rpow__','__rlshift__','__rrshift__',
-            '__rshift__','__rsub__','__rmul__','__rand__','__rxor__','__ror__',
-            '__sub__','__xor__'
-            )
-
-        ),
-    'SYMBOLS' => array(
-        '(', ')', '[', ']', '{', '}', '*', '&', '%', '!', ';', '<', '>', '?', '`'
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => true,
-        1 => true,
-        2 => true,
-        3 => true,
-        4 => true
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #006000;font-weight:bold;',   // Reserved
-            2 => 'color: #800950;font-size:105%',                  // Built-ins + self
-            3 => 'color: #003399;font-size:106%',                  // Standard lib
-            4 => 'color: #0000cd;'                  // Special methods
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #808080; font-style:italic;font-size:92%',
-            'MULTI' => 'color: #808080; font-style: italic;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #930; font-weight: bold;font-size:105%'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: maroon;font-size:102%;padding:2px'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #666;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #2356F8;'
-            ),
-        'METHODS' => array(
-            1 => 'color: navy;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #66ccFF;'
-            ),
-        '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/wiki/vendor/geshi/geshi/src/geshi/python.php b/wiki/vendor/geshi/geshi/src/geshi/python.php
deleted file mode 100644
index 3df07ea..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/python.php
+++ /dev/null
@@ -1,242 +0,0 @@
-<?php
-/*************************************************************************************
- * python.php
- * ----------
- * Author: Roberto Rossi (rsoftware@altervista.org)
- * Copyright: (c) 2004 Roberto Rossi (http://rsoftware.altervista.org), Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.9.0
- * Date Started: 2004/08/30
- *
- * Python language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2008/12/18
- *  -  Added missing functions and keywords. Also added two new Python 3.0 types. SF#2441839
- * 2005/05/26
- *  -  Modifications by Tim (tim@skreak.com): added more keyword categories, tweaked colors
- * 2004/11/27 (1.0.1)
- *  -  Added support for multiple object splitters
- * 2004/08/30 (1.0.0)
- *  -  First Release
- *
- * TODO (updated 2004/11/27)
- * -------------------------
- *
- *************************************************************************************
- *
- *     This file is part of GeSHi.
- *
- *   GeSHi is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   GeSHi is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with GeSHi; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- ************************************************************************************/
-
-$language_data = array (
-    'LANG_NAME' => 'Python',
-    '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://python.org/doc/current/ref/keywords.html
-        */
-        1 => array(
-            'and', 'del', 'for', 'is', 'raise', 'assert', 'elif', 'from', 'lambda', 'return', 'break',
-            'else', 'global', 'not', 'try', 'class', 'except', 'if', 'or', 'while', 'continue', 'exec',
-            'import', 'pass', 'yield', 'def', 'finally', 'in', 'print', 'with', 'as', 'nonlocal'
-            ),
-
-        /*
-        ** Set 2: builtins
-        ** http://python.org/doc/current/lib/built-in-funcs.html
-        */
-        2 => array(
-            '__import__', 'abs', 'basestring', 'bool', 'callable', 'chr', 'classmethod', 'cmp',
-            'compile', 'complex', 'delattr', 'dict', 'dir', 'divmod', 'enumerate', 'eval', 'execfile',
-            'file', 'filter', 'float', 'frozenset', 'getattr', 'globals', 'hasattr', 'hash', 'help',
-            'hex', 'id', 'input', 'int', 'isinstance', 'issubclass', 'iter', 'len', 'list', 'locals',
-            'long', 'map', 'max', 'min', 'object', 'oct', 'open', 'ord', 'pow', 'property', 'range',
-            'raw_input', 'reduce', 'reload', 'reversed', 'round', 'set', 'setattr', 'slice',
-            'sorted', 'staticmethod', 'str', 'sum', 'super', 'tuple', 'type', 'unichr', 'unicode',
-            'vars', 'xrange', 'zip',
-            // Built-in constants: http://python.org/doc/current/lib/node35.html
-            'False', 'True', 'None', 'NotImplemented', 'Ellipsis',
-            // Built-in Exceptions: http://python.org/doc/current/lib/module-exceptions.html
-            'Exception', 'StandardError', 'ArithmeticError', 'LookupError', 'EnvironmentError',
-            'AssertionError', 'AttributeError', 'EOFError', 'FloatingPointError', 'IOError',
-            'ImportError', 'IndexError', 'KeyError', 'KeyboardInterrupt', 'MemoryError', 'NameError',
-            'NotImplementedError', 'OSError', 'OverflowError', 'ReferenceError', 'RuntimeError',
-            'StopIteration', 'SyntaxError', 'SystemError', 'SystemExit', 'TypeError',
-            'UnboundlocalError', 'UnicodeError', 'UnicodeEncodeError', 'UnicodeDecodeError',
-            'UnicodeTranslateError', 'ValueError', 'WindowsError', 'ZeroDivisionError', 'Warning',
-            'UserWarning', 'DeprecationWarning', 'PendingDeprecationWarning', 'SyntaxWarning',
-            'RuntimeWarning', 'FutureWarning',
-            // self: this is a common python convention (but not a reserved word)
-            'self',
-            // other
-            'any', 'all'
-            ),
-
-        /*
-        ** Set 3: standard library
-        ** http://python.org/doc/current/lib/modindex.html
-        */
-        3 => array(
-            '__builtin__', '__future__', '__main__', '_winreg', 'aifc', 'AL', 'al', 'anydbm',
-            'array', 'asynchat', 'asyncore', 'atexit', 'audioop', 'base64', 'BaseHTTPServer',
-            'Bastion', 'binascii', 'binhex', 'bisect', 'bsddb', 'bz2', 'calendar', 'cd', 'cgi',
-            'CGIHTTPServer', 'cgitb', 'chunk', 'cmath', 'cmd', 'code', 'codecs', 'codeop',
-            'collections', 'colorsys', 'commands', 'compileall', 'compiler',
-            'ConfigParser', 'Cookie', 'cookielib', 'copy', 'copy_reg', 'cPickle', 'crypt',
-            'cStringIO', 'csv', 'curses', 'datetime', 'dbhash', 'dbm', 'decimal', 'DEVICE',
-            'difflib', 'dircache', 'dis', 'distutils', 'dl', 'doctest', 'DocXMLRPCServer', 'dumbdbm',
-            'dummy_thread', 'dummy_threading', 'email', 'encodings', 'errno', 'exceptions', 'fcntl',
-            'filecmp', 'fileinput', 'FL', 'fl', 'flp', 'fm', 'fnmatch', 'formatter', 'fpectl',
-            'fpformat', 'ftplib', 'gc', 'gdbm', 'getopt', 'getpass', 'gettext', 'GL', 'gl', 'glob',
-            'gopherlib', 'grp', 'gzip', 'heapq', 'hmac', 'hotshot', 'htmlentitydefs', 'htmllib',
-            'HTMLParser', 'httplib', 'imageop', 'imaplib', 'imgfile', 'imghdr', 'imp', 'inspect',
-            'itertools', 'jpeg', 'keyword', 'linecache', 'locale', 'logging', 'mailbox', 'mailcap',
-            'marshal', 'math', 'md5', 'mhlib', 'mimetools', 'mimetypes', 'MimeWriter', 'mimify',
-            'mmap', 'msvcrt', 'multifile', 'mutex', 'netrc', 'new', 'nis', 'nntplib', 'operator',
-            'optparse', 'os', 'ossaudiodev', 'parser', 'pdb', 'pickle', 'pickletools', 'pipes',
-            'pkgutil', 'platform', 'popen2', 'poplib', 'posix', 'posixfile', 'pprint', 'profile',
-            'pstats', 'pty', 'pwd', 'py_compile', 'pyclbr', 'pydoc', 'Queue', 'quopri', 'random',
-            're', 'readline', 'repr', 'resource', 'rexec', 'rfc822', 'rgbimg', 'rlcompleter',
-            'robotparser', 'sched', 'ScrolledText', 'select', 'sets', 'sgmllib', 'sha', 'shelve',
-            'shlex', 'shutil', 'signal', 'SimpleHTTPServer', 'SimpleXMLRPCServer', 'site', 'smtpd',
-            'smtplib', 'sndhdr', 'socket', 'SocketServer', 'stat', 'statcache', 'statvfs', 'string',
-            'StringIO', 'stringprep', 'struct', 'subprocess', 'sunau', 'SUNAUDIODEV', 'sunaudiodev',
-            'symbol', 'sys', 'syslog', 'tabnanny', 'tarfile', 'telnetlib', 'tempfile', 'termios',
-            'test', 'textwrap', 'thread', 'threading', 'time', 'timeit', 'Tix', 'Tkinter', 'token',
-            'tokenize', 'traceback', 'tty', 'turtle', 'types', 'unicodedata', 'unittest', 'urllib2',
-            'urllib', 'urlparse', 'user', 'UserDict', 'UserList', 'UserString', 'uu', 'warnings',
-            'wave', 'weakref', 'webbrowser', 'whichdb', 'whrandom', 'winsound', 'xdrlib', 'xml',
-            'xmllib', 'xmlrpclib', 'zipfile', 'zipimport', 'zlib',
-            // Python 3.0
-            'bytes', 'bytearray'
-            ),
-
-        /*
-        ** Set 4: special methods
-        ** http://python.org/doc/current/ref/specialnames.html
-        */
-        4 => array(
-            /*
-            // Iterator types: http://python.org/doc/current/lib/typeiter.html
-            '__iter__', 'next',
-            // String types: http://python.org/doc/current/lib/string-methods.html
-            'capitalize', 'center', 'count', 'decode', 'encode', 'endswith', 'expandtabs',
-            'find', 'index', 'isalnum', 'isalpha', 'isdigit', 'islower', 'isspace', 'istitle',
-            'isupper', 'join', 'ljust', 'lower', 'lstrip', 'replace', 'rfind', 'rindex', 'rjust',
-            'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title',
-            'translate', 'upper', 'zfill',
-            */
-            // Basic customization: http://python.org/doc/current/ref/customization.html
-            '__new__', '__init__', '__del__', '__repr__', '__str__',
-            '__lt__', '__le__', '__eq__', '__ne__', '__gt__', '__ge__', '__cmp__', '__rcmp__',
-            '__hash__', '__nonzero__', '__unicode__', '__dict__',
-            // Attribute access: http://python.org/doc/current/ref/attribute-access.html
-            '__setattr__', '__delattr__', '__getattr__', '__getattribute__', '__get__', '__set__',
-            '__delete__', '__slots__',
-            // Class creation, callable objects
-            '__metaclass__', '__call__',
-            // Container types: http://python.org/doc/current/ref/sequence-types.html
-            '__len__', '__getitem__', '__setitem__', '__delitem__', '__iter__', '__contains__',
-            '__getslice__', '__setslice__', '__delslice__',
-            // Numeric types: http://python.org/doc/current/ref/numeric-types.html
-            '__abs__','__add__','__and__','__coerce__','__div__','__divmod__','__float__',
-            '__hex__','__iadd__','__isub__','__imod__','__idiv__','__ipow__','__iand__',
-            '__ior__','__ixor__', '__ilshift__','__irshift__','__invert__','__int__',
-            '__long__','__lshift__',
-            '__mod__','__mul__','__neg__','__oct__','__or__','__pos__','__pow__',
-            '__radd__','__rdiv__','__rdivmod__','__rmod__','__rpow__','__rlshift__','__rrshift__',
-            '__rshift__','__rsub__','__rmul__','__rand__','__rxor__','__ror__',
-            '__sub__','__xor__'
-            )
-        ),
-    'SYMBOLS' => array(
-        '<', '>', '=', '!', '<=', '>=',             //·comparison·operators
-        '~', '@',                                   //·unary·operators
-        ';', ','                                    //·statement·separator
-        ),
-    '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;',
-            '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/wiki/vendor/geshi/geshi/src/geshi/q.php b/wiki/vendor/geshi/geshi/src/geshi/q.php
deleted file mode 100644
index 926ddbf..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/q.php
+++ /dev/null
@@ -1,147 +0,0 @@
-<?php
-/*************************************************************************************
- * q.php
- * -----
- * Author: Ian Roddis (ian.roddis@proteanmind.net)
- * Copyright: (c) 2008 Ian Roddis (http://proteanmind.net)
- * Release Version: 1.0.9.0
- * Date Started: 2009/01/21
- *
- * q/kdb+ language file for GeSHi.
- *
- * Based on information available from code.kx.com
- *
- * CHANGES
- * -------
- * 2010/01/21 (1.0.0)
- *   -  First Release
- *
- * TODO (updated <1.0.0>)
- * -------------------------
- *  - Fix the handling of single line comments
- *
- *************************************************************************************
- *
- *     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'                 => 'q/kdb+',
-    'COMMENT_SINGLE'            => array(1 => '//'),
-    'COMMENT_MULTI'             => array(),
-    'COMMENT_REGEXP'            => array(
-        2 => '/ \s\/.*/',         # This needs to get fixed up, since it won't catch some instances
-        # Multi line comments (Moved from REGEXPS)
-        3 => '/^\/\s*?\n.*?\n\\\s*?\n/smi'
-        ),
-    'CASE_KEYWORDS'             => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS'                => array('"'),
-    'ESCAPE_CHAR'               => '\\',
-    'OOLANG'                    => false,
-    'OBJECT_SPLITTERS'          => array(),
-    'STRICT_MODE_APPLIES'       => GESHI_NEVER,
-    'SCRIPT_DELIMITERS'         => array(),
-    'HIGHLIGHT_STRICT_BLOCK'    => array(),
-    'TAB_WIDTH'                 => 4,
-    'KEYWORDS' => array(
-        1 => array(
-            'abs', 'acos', 'all', 'and', 'any', 'asc', 'asin', 'asof', 'atan', 'attr', 'avg', 'avgs', 'bin', 'ceiling',
-            'cols', 'cor', 'cos', 'count', 'cov', 'cross', 'cut', 'deltas', 'desc', 'dev', 'differ', 'distinct',
-            'div', 'each', 'enlist', 'eval', 'except', 'exec', 'exit', 'exp', 'fills', 'first', 'flip', 'floor',
-            'fkeys', 'get', 'getenv', 'group', 'gtime', 'hclose', 'hcount', 'hdel', 'hopen', 'hsym', 'iasc', 'idesc',
-            'in', 'insert', 'inter', 'inv', 'joins', 'key', 'keys', 'last', 'like', 'load', 'log', 'lower',
-            'lsq', 'ltime', 'ltrim', 'mavg', 'max', 'maxs', 'mcount', 'md5', 'mdev', 'med', 'meta', 'min', 'mins',
-            'mmax', 'mmin', 'mmu', 'mod', 'msum', 'neg', 'next', 'not', 'null', 'or', 'over', 'parse', 'peach',
-            'plist', 'prd', 'prds', 'prev', 'rand', 'rank', 'ratios', 'raze', 'read0', 'read1', 'reciprocal',
-            'reverse', 'rload', 'rotate', 'rsave', 'rtrim', 'save', 'scan', 'set', 'setenv', 'show', 'signum',
-            'sin', 'sqrt', 'ss', 'ssr', 'string', 'sublist', 'sum', 'sums', 'sv', 'system', 'tables', 'tan', 'til', 'trim',
-            'txf', 'type', 'ungroup', 'union', 'upper', 'upsert', 'value', 'var', 'view', 'views', 'vs',
-            'wavg', 'within', 'wsum', 'xasc', 'xbar', 'xcol', 'xcols', 'xdesc', 'xexp', 'xgroup', 'xkey',
-            'xlog', 'xprev', 'xrank'
-            ),
-        # kdb database template keywords
-        2 => array(
-            'aj', 'by', 'delete', 'fby', 'from', 'ij', 'lj', 'pj', 'select', 'uj', 'update', 'where', 'wj',
-            ),
-        ),
-    'SYMBOLS' => array(
-        '?', '#', ',', '_', '@', '.', '^', '~', '$', '!', '\\', '\\', '/:', '\:', "'", "':", '::', '+', '-', '%', '*'
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => true,
-        2 => true,
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #000099; font-weight: bold;',
-            2 => 'color: #009900; font-weight: bold;',
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #666666; font-style: italic;',
-            2 => 'color: #666666; font-style: italic;',
-            3 => 'color: #808080; 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: #660099; font-weight: bold;',
-            3 => 'color: #660099; font-weight: bold;',
-            4 => 'color: #660099; font-weight: bold;',
-            5 => 'color: #006699; font-weight: bold;',
-            'HARD' => '',
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #009900;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #990000;'
-            ),
-        '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: #202020;',
-            2 => 'color: #202020;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #339933;'
-            ),
-        'REGEXPS' => array(
-            2   => 'color: #999900;',
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'REGEXPS' => array(
-        # Symbols
-        2 => '`[^\s"]*',
-        ),
-    'URLS'  => array(
-        1   => '',
-        2   => '',
-        ),
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/qbasic.php b/wiki/vendor/geshi/geshi/src/geshi/qbasic.php
deleted file mode 100644
index 0a09b4d..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/qbasic.php
+++ /dev/null
@@ -1,160 +0,0 @@
-<?php
-/*************************************************************************************
- * qbasic.php
- * ----------
- * Author: Nigel McNie (nigel@geshi.org)
- * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter/)
- * Release Version: 1.0.9.0
- * Date Started: 2004/06/20
- *
- * QBasic/QuickBASIC 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)
- *   -  Added support for URLs
- * 2004/08/05 (1.0.1)
- *   -  Added support for symbols
- *   -  Removed unnessecary slashes from some keywords
- * 2004/07/14 (1.0.0)
- *   -  First Release
- *
- * TODO (updated 2004/11/27)
- * -------------------------
- * * Make sure all possible combinations of keywords with
- *   a space in them (EXIT FOR, END SELECT) are added
- *   to the first keyword group
- * * Update colours, especially for the first keyword group
- *
- *************************************************************************************
- *
- *     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' => 'QBasic/QuickBASIC',
-    'COMMENT_SINGLE' => array(1 => "'"),
-    'COMMENT_MULTI' => array(),
-    'COMMENT_REGEXP' => array(
-        //Single-Line Comments using REM command
-        2 => "/\bREM.*?$/i",
-        //Line numbers
-        3 => "/^\s*\d+/im"
-        ),
-    'CASE_KEYWORDS' => GESHI_CAPS_UPPER,
-    'QUOTEMARKS' => array('"'),
-    'ESCAPE_CHAR' => '',
-    'NUMBERS' =>
-        GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_FLT_NONSCI |
-        GESHI_NUMBER_FLT_NONSCI_F | GESHI_NUMBER_FLT_SCI_SHORT |
-        GESHI_NUMBER_FLT_SCI_ZERO,
-    'KEYWORDS' => array(
-        1 => array(
-            'DO', 'LOOP', 'WHILE', 'WEND', 'THEN', 'ELSE', 'ELSEIF', 'IF',
-            'FOR', 'TO', 'NEXT', 'STEP', 'GOTO', 'GOSUB', 'CALL', 'CALLS',
-            'SUB', 'FUNCTION', 'RETURN', 'RESUME', 'SELECT', 'CASE', 'UNTIL'
-            ),
-        3 => array(
-            'ABS', 'ABSOLUTE', 'ACCESS', 'ALIAS', 'AND', 'ANY', 'APPEND', 'AS', 'ASC', 'ATN',
-            'BASE', 'BEEP', 'BINARY', 'BLOAD', 'BSAVE', 'BYVAL',
-            'CDBL', 'CDECL', 'CHAIN', 'CHDIR', 'CHR$', 'CINT', 'CIRCLE', 'CLEAR',
-            'CLNG', 'CLOSE', 'CLS', 'COM', 'COMMAND$', 'COMMON', 'CONST', 'COS', 'CSNG',
-            'CSRLIN', 'CVD', 'CVDMBF', 'CVI', 'CVL', 'CVS', 'CVSMDF', 'DATA', 'DATE$',
-            'DECLARE', 'DEF', 'FN', 'SEG', 'DEFDBL', 'DEFINT', 'DEFLNG', 'DEFSNG', 'DEFSTR',
-            'DIM', 'DOUBLE', 'DRAW', 'END', 'ENVIRON', 'ENVIRON$', 'EOF', 'EQV', 'ERASE',
-            'ERDEV', 'ERDEV$', 'ERL', 'ERR', 'ERROR', 'EXIT', 'EXP', 'FIELD', 'FILEATTR',
-            'FILES', 'FIX', 'FRE', 'FREEFILE', 'GET', 'HEX$', 'IMP', 'INKEY$',
-            'INP', 'INPUT', 'INPUT$', 'INSTR', 'INT', 'INTEGER', 'IOCTL', 'IOCTL$', 'IS',
-            'KEY', 'KILL', 'LBOUND', 'LCASE$', 'LEFT$', 'LEN', 'LET', 'LINE', 'LIST', 'LOC',
-            'LOCAL', 'LOCATE', 'LOCK', 'LOF', 'LOG', 'LONG', 'LPOS', 'LPRINT',
-            'LSET', 'LTRIM$', 'MID$', 'MKD$', 'MKDIR', 'MKDMBF$', 'MKI$', 'MKL$',
-            'MKS$', 'MKSMBF$', 'MOD', 'NAME', 'NOT', 'OCT$', 'OFF', 'ON', 'PEN', 'PLAY',
-            'OPEN', 'OPTION', 'OR', 'OUT', 'OUTPUT',
-            'PAINT', 'PALETTE', 'PCOPY', 'PEEK', 'PMAP', 'POINT', 'POKE', 'POS', 'PRESET',
-            'PRINT', 'PSET', 'PUT', 'RANDOM', 'RANDOMIZE', 'READ', 'REDIM', 'RESET',
-            'RESTORE', 'RIGHT$', 'RMDIR', 'RND', 'RSET', 'RTRIM$', 'RUN', 'SADD', 'SCREEN',
-            'SEEK', 'SETMEM', 'SGN', 'SHARED', 'SHELL', 'SIGNAL', 'SIN', 'SINGLE', 'SLEEP',
-            'SOUND', 'SPACE$', 'SPC', 'SQR', 'STATIC', 'STICK', 'STOP', 'STR$', 'STRIG',
-            'STRING', 'STRING$', 'SWAP', 'SYSTEM', 'TAB', 'TAN', 'TIME$', 'TIMER',
-            'TROFF', 'TRON', 'TYPE', 'UBOUND', 'UCASE$', 'UEVENT', 'UNLOCK', 'USING', 'VAL',
-            'VARPTR', 'VARPTR$', 'VARSEG', 'VIEW', 'WAIT', 'WIDTH', 'WINDOW', 'WRITE', 'XOR'
-            )
-        ),
-    'SYMBOLS' => array(
-        '(', ')', ',', '+', '-', '*', '/', '=', '<', '>', '^'
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false,
-        3 => false
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #a1a100;',
-            3 => 'color: #000066;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #808080;',
-            2 => 'color: #808080;',
-            3 => 'color: #8080C0;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #66cc66;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #ff0000;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #cc66cc;'
-            ),
-        'METHODS' => array(
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #66cc66;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #000099;'
-            ),
-        'SCRIPT' => array(
-            ),
-        'REGEXPS' => array(
-            1 => 'color: #cc66cc;',
-            2 => 'color: #339933;'
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        3 => 'http://www.qbasicnews.com/qboho/qck{FNAMEL}.shtml'
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(
-        ),
-    'REGEXPS' => array(
-        1 => '&amp;(?:H[0-9a-fA-F]+|O[0-7]+)(?!\w)',
-        2 => '#[0-9]+(?!\w)'
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        ),
-    'TAB_WIDTH' => 8
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/qml.php b/wiki/vendor/geshi/geshi/src/geshi/qml.php
deleted file mode 100644
index 3aa3457..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/qml.php
+++ /dev/null
@@ -1,351 +0,0 @@
-<?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/wiki/vendor/geshi/geshi/src/geshi/racket.php b/wiki/vendor/geshi/geshi/src/geshi/racket.php
deleted file mode 100644
index 2b25b9b..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/racket.php
+++ /dev/null
@@ -1,964 +0,0 @@
-<?php
-/*************************************************************************************
- * racket.php
- * ----------
- * Author:          Tim Brown (tim@timb.net)
- * Copyright:   (c) 2013 Tim Brown ((https://github.com/tim-brown/geshi-racket))
- * Release Version: 1.0.9.0
- * Date Started:    2013-03-01
- *
- * Racket language file for GeSHi.
- *
- * This file was built automatically from the scripts in
- * https://github.com/tim-brown/geshi-racket (you didn't think
- * I typed those NUMBER regular expressions in myself, did you?).
- * Use those scripts to regenerate the file.
- *
- * CHANGES
- * -------
- *   1.0 (2013-03-31)
- *   - Initial Release1.1 (2013-03-31)
- *   - Added URLs, "symbol"-like identifiers moved to SYMBOLS*
- *
- * TODO (updated 2013-04-25)
- * -------------------------
- *   * better handling of empty and short arrays
- *   * care more about indentation and line lengths
- *   * most compound regexps are possibly over-bracketed: (or ...)
- *   * most compound regexps are possibly over-bracketed: (: ...)
- *   * URLs should be formed more smartly by discovering which module they came from.
- *   * '|...| identifiers
- *   * #<<HERE strings
- *   * #;(...) comments -- (note: requires balanced parenthesis regexp)
- *
- *************************************************************************************
- *
- *     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' => 'Racket',
-    'COMMENT_SINGLE' => array(
-        1 => ';',
-        ),
-    'COMMENT_MULTI' => array(
-        '#|' => '|#',
-        ),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array('"',
-        ),
-    'ESCAPE_CHAR' => '\\',
-    'KEYWORDS' => array(
-        1 => array(
-            'abort-current-continuation', 'abs', 'absolute-path?', 'acos', 'add1',
-            'alarm-evt', 'always-evt', 'andmap', 'angle', 'append',
-            'arithmetic-shift', 'arity-at-least-value', 'arity-at-least?',
-            'asin', 'assf', 'assoc', 'assq', 'assv', 'atan', 'banner',
-            'bitwise-and', 'bitwise-bit-field', 'bitwise-bit-set?',
-            'bitwise-ior', 'bitwise-not', 'bitwise-xor', 'boolean?',
-            'bound-identifier=?', 'box', 'box-cas!', 'box-immutable', 'box?',
-            'break-enabled', 'break-thread', 'build-list', 'build-path',
-            'build-path/convention-type', 'build-string', 'build-vector',
-            'byte-pregexp', 'byte-pregexp?', 'byte-ready?', 'byte-regexp',
-            'byte-regexp?', 'byte?', 'bytes', 'bytes&gt;?', 'bytes&lt;?',
-            'bytes-&gt;immutable-bytes', 'bytes-&gt;list', 'bytes-&gt;path',
-            'bytes-&gt;path-element', 'bytes-&gt;string/latin-1',
-            'bytes-&gt;string/locale', 'bytes-&gt;string/utf-8',
-            'bytes-append', 'bytes-close-converter', 'bytes-convert',
-            'bytes-convert-end', 'bytes-converter?', 'bytes-copy',
-            'bytes-copy!', 'bytes-fill!', 'bytes-length',
-            'bytes-open-converter', 'bytes-ref', 'bytes-set!',
-            'bytes-utf-8-index', 'bytes-utf-8-length', 'bytes-utf-8-ref',
-            'bytes=?', 'bytes?', 'caaaar', 'caaadr', 'caaar', 'caadar',
-            'caaddr', 'caadr', 'caar', 'cadaar', 'cadadr', 'cadar', 'caddar',
-            'cadddr', 'caddr', 'cadr', 'call-in-nested-thread',
-            'call-with-break-parameterization',
-            'call-with-composable-continuation',
-            'call-with-continuation-barrier', 'call-with-continuation-prompt',
-            'call-with-current-continuation', 'call-with-escape-continuation',
-            'call-with-exception-handler',
-            'call-with-immediate-continuation-mark',
-            'call-with-parameterization', 'call-with-semaphore',
-            'call-with-semaphore/enable-break', 'call-with-values', 'call/cc',
-            'call/ec', 'car', 'cdaaar', 'cdaadr', 'cdaar', 'cdadar', 'cdaddr',
-            'cdadr', 'cdar', 'cddaar', 'cddadr', 'cddar', 'cdddar', 'cddddr',
-            'cdddr', 'cddr', 'cdr', 'ceiling', 'channel-get', 'channel-put',
-            'channel-put-evt', 'channel-put-evt?', 'channel-try-get',
-            'channel?', 'chaperone-box', 'chaperone-continuation-mark-key',
-            'chaperone-evt', 'chaperone-hash', 'chaperone-of?',
-            'chaperone-procedure', 'chaperone-prompt-tag', 'chaperone-struct',
-            'chaperone-struct-type', 'chaperone-vector', 'chaperone?',
-            'char&gt;=?', 'char&gt;?', 'char&lt;=?', 'char&lt;?',
-            'char-&gt;integer', 'char-alphabetic?', 'char-blank?',
-            'char-ci&gt;=?', 'char-ci&gt;?', 'char-ci&lt;=?', 'char-ci&lt;?',
-            'char-ci=?', 'char-downcase', 'char-foldcase',
-            'char-general-category', 'char-graphic?', 'char-iso-control?',
-            'char-lower-case?', 'char-numeric?', 'char-punctuation?',
-            'char-ready?', 'char-symbolic?', 'char-title-case?',
-            'char-titlecase', 'char-upcase', 'char-upper-case?',
-            'char-utf-8-length', 'char-whitespace?', 'char=?', 'char?',
-            'check-duplicate-identifier',
-            'checked-procedure-check-and-extract', 'choice-evt',
-            'cleanse-path', 'close-input-port', 'close-output-port',
-            'collect-garbage', 'collection-file-path', 'collection-path',
-            'compile', 'compile-allow-set!-undefined',
-            'compile-context-preservation-enabled',
-            'compile-enforce-module-constants', 'compile-syntax',
-            'compiled-expression?', 'compiled-module-expression?',
-            'complete-path?', 'complex?', 'compose', 'compose1', 'cons',
-            'continuation-mark-key?', 'continuation-mark-set-&gt;context',
-            'continuation-mark-set-&gt;list',
-            'continuation-mark-set-&gt;list*', 'continuation-mark-set-first',
-            'continuation-mark-set?', 'continuation-marks',
-            'continuation-prompt-available?', 'continuation-prompt-tag?',
-            'continuation?', 'copy-file', 'cos',
-            'current-break-parameterization', 'current-code-inspector',
-            'current-command-line-arguments', 'current-compile',
-            'current-compiled-file-roots', 'current-continuation-marks',
-            'current-custodian', 'current-directory', 'current-drive',
-            'current-error-port', 'current-eval',
-            'current-evt-pseudo-random-generator', 'current-gc-milliseconds',
-            'current-get-interaction-input-port',
-            'current-inexact-milliseconds', 'current-input-port',
-            'current-inspector', 'current-library-collection-paths',
-            'current-load', 'current-load-extension',
-            'current-load-relative-directory', 'current-load/use-compiled',
-            'current-locale', 'current-logger', 'current-memory-use',
-            'current-milliseconds', 'current-module-declare-name',
-            'current-module-declare-source', 'current-module-name-resolver',
-            'current-namespace', 'current-output-port',
-            'current-parameterization', 'current-preserved-thread-cell-values',
-            'current-print', 'current-process-milliseconds',
-            'current-prompt-read', 'current-pseudo-random-generator',
-            'current-read-interaction', 'current-reader-guard',
-            'current-readtable', 'current-seconds', 'current-security-guard',
-            'current-subprocess-custodian-mode', 'current-thread',
-            'current-thread-group', 'current-thread-initial-stack-size',
-            'current-write-relative-directory', 'custodian-box-value',
-            'custodian-box?', 'custodian-limit-memory',
-            'custodian-managed-list', 'custodian-memory-accounting-available?',
-            'custodian-require-memory', 'custodian-shutdown-all', 'custodian?',
-            'custom-print-quotable-accessor', 'custom-print-quotable?',
-            'custom-write-accessor', 'custom-write?', 'date*-nanosecond',
-            'date*-time-zone-name', 'date*?', 'date-day', 'date-dst?',
-            'date-hour', 'date-minute', 'date-month', 'date-second',
-            'date-time-zone-offset', 'date-week-day', 'date-year',
-            'date-year-day', 'date?', 'datum-&gt;syntax',
-            'datum-intern-literal', 'default-continuation-prompt-tag',
-            'delete-directory', 'delete-file', 'denominator',
-            'directory-exists?', 'directory-list', 'display', 'displayln',
-            'double-flonum?', 'dump-memory-stats', 'dynamic-require',
-            'dynamic-require-for-syntax', 'dynamic-wind', 'eof', 'eof-object?',
-            'ephemeron-value', 'ephemeron?', 'eprintf', 'eq-hash-code', 'eq?',
-            'equal-hash-code', 'equal-secondary-hash-code', 'equal?',
-            'equal?/recur', 'eqv-hash-code', 'eqv?', 'error',
-            'error-display-handler', 'error-escape-handler',
-            'error-print-context-length', 'error-print-source-location',
-            'error-print-width', 'error-value-&gt;string-handler', 'eval',
-            'eval-jit-enabled', 'eval-syntax', 'even?', 'evt?',
-            'exact-&gt;inexact', 'exact-integer?',
-            'exact-nonnegative-integer?', 'exact-positive-integer?', 'exact?',
-            'executable-yield-handler', 'exit', 'exit-handler',
-            'exn-continuation-marks', 'exn-message', 'exn:break-continuation',
-            'exn:break:hang-up?', 'exn:break:terminate?', 'exn:break?',
-            'exn:fail:contract:arity?', 'exn:fail:contract:continuation?',
-            'exn:fail:contract:divide-by-zero?',
-            'exn:fail:contract:non-fixnum-result?',
-            'exn:fail:contract:variable-id', 'exn:fail:contract:variable?',
-            'exn:fail:contract?', 'exn:fail:filesystem:errno-errno',
-            'exn:fail:filesystem:errno?', 'exn:fail:filesystem:exists?',
-            'exn:fail:filesystem:version?', 'exn:fail:filesystem?',
-            'exn:fail:network:errno-errno', 'exn:fail:network:errno?',
-            'exn:fail:network?', 'exn:fail:out-of-memory?',
-            'exn:fail:read-srclocs', 'exn:fail:read:eof?',
-            'exn:fail:read:non-char?', 'exn:fail:read?',
-            'exn:fail:syntax-exprs', 'exn:fail:syntax:unbound?',
-            'exn:fail:syntax?', 'exn:fail:unsupported?', 'exn:fail:user?',
-            'exn:fail?', 'exn:srclocs-accessor', 'exn:srclocs?', 'exn?', 'exp',
-            'expand', 'expand-once', 'expand-syntax', 'expand-syntax-once',
-            'expand-syntax-to-top-form', 'expand-to-top-form',
-            'expand-user-path', 'expt', 'file-exists?',
-            'file-or-directory-identity', 'file-or-directory-modify-seconds',
-            'file-or-directory-permissions', 'file-position', 'file-position*',
-            'file-size', 'file-stream-buffer-mode', 'file-stream-port?',
-            'filesystem-root-list', 'filter', 'find-executable-path',
-            'find-library-collection-paths', 'find-system-path', 'findf',
-            'fixnum?', 'floating-point-bytes-&gt;real', 'flonum?', 'floor',
-            'flush-output', 'foldl', 'foldr', 'for-each', 'format', 'fprintf',
-            'free-identifier=?', 'free-label-identifier=?',
-            'free-template-identifier=?', 'free-transformer-identifier=?',
-            'gcd', 'generate-temporaries', 'gensym', 'get-output-bytes',
-            'get-output-string', 'getenv', 'global-port-print-handler',
-            'guard-evt', 'handle-evt', 'handle-evt?', 'hash', 'hash-&gt;list',
-            'hash-copy', 'hash-count', 'hash-eq?', 'hash-equal?', 'hash-eqv?',
-            'hash-for-each', 'hash-has-key?', 'hash-iterate-first',
-            'hash-iterate-key', 'hash-iterate-next', 'hash-iterate-value',
-            'hash-keys', 'hash-map', 'hash-placeholder?', 'hash-ref',
-            'hash-ref!', 'hash-remove', 'hash-remove!', 'hash-set',
-            'hash-set!', 'hash-set*', 'hash-set*!', 'hash-update',
-            'hash-update!', 'hash-values', 'hash-weak?', 'hash?', 'hasheq',
-            'hasheqv', 'identifier-binding', 'identifier-label-binding',
-            'identifier-prune-lexical-context',
-            'identifier-prune-to-source-module',
-            'identifier-remove-from-definition-context',
-            'identifier-template-binding', 'identifier-transformer-binding',
-            'identifier?', 'imag-part', 'immutable?', 'impersonate-box',
-            'impersonate-continuation-mark-key', 'impersonate-hash',
-            'impersonate-procedure', 'impersonate-prompt-tag',
-            'impersonate-struct', 'impersonate-vector', 'impersonator-of?',
-            'impersonator-prop:application-mark',
-            'impersonator-property-accessor-procedure?',
-            'impersonator-property?', 'impersonator?', 'in-cycle',
-            'in-directory', 'in-hash', 'in-hash-keys', 'in-hash-pairs',
-            'in-hash-values', 'in-parallel', 'in-sequences',
-            'in-values*-sequence', 'in-values-sequence', 'inexact-&gt;exact',
-            'inexact-real?', 'inexact?', 'input-port?', 'inspector?',
-            'integer-&gt;char', 'integer-&gt;integer-bytes',
-            'integer-bytes-&gt;integer', 'integer-length', 'integer-sqrt',
-            'integer-sqrt/remainder', 'integer?',
-            'internal-definition-context-seal', 'internal-definition-context?',
-            'keyword&lt;?', 'keyword-&gt;string', 'keyword-apply', 'keyword?',
-            'kill-thread', 'lcm', 'length', 'liberal-define-context?',
-            'link-exists?', 'list', 'list*', 'list-&gt;bytes',
-            'list-&gt;string', 'list-&gt;vector', 'list-ref', 'list-tail',
-            'list?', 'load', 'load-extension', 'load-on-demand-enabled',
-            'load-relative', 'load-relative-extension', 'load/cd',
-            'load/use-compiled', 'local-expand', 'local-expand/capture-lifts',
-            'local-transformer-expand',
-            'local-transformer-expand/capture-lifts', 'locale-string-encoding',
-            'log', 'log-level?', 'log-max-level', 'log-message',
-            'log-receiver?', 'logger-name', 'logger?', 'magnitude',
-            'make-arity-at-least', 'make-base-empty-namespace',
-            'make-base-namespace', 'make-bytes', 'make-channel',
-            'make-continuation-mark-key', 'make-continuation-prompt-tag',
-            'make-custodian', 'make-custodian-box', 'make-date', 'make-date*',
-            'make-derived-parameter', 'make-directory', 'make-do-sequence',
-            'make-empty-namespace', 'make-ephemeron', 'make-exn',
-            'make-exn:break', 'make-exn:break:hang-up',
-            'make-exn:break:terminate', 'make-exn:fail',
-            'make-exn:fail:contract', 'make-exn:fail:contract:arity',
-            'make-exn:fail:contract:continuation',
-            'make-exn:fail:contract:divide-by-zero',
-            'make-exn:fail:contract:non-fixnum-result',
-            'make-exn:fail:contract:variable', 'make-exn:fail:filesystem',
-            'make-exn:fail:filesystem:errno',
-            'make-exn:fail:filesystem:exists',
-            'make-exn:fail:filesystem:version', 'make-exn:fail:network',
-            'make-exn:fail:network:errno', 'make-exn:fail:out-of-memory',
-            'make-exn:fail:read', 'make-exn:fail:read:eof',
-            'make-exn:fail:read:non-char', 'make-exn:fail:syntax',
-            'make-exn:fail:syntax:unbound', 'make-exn:fail:unsupported',
-            'make-exn:fail:user', 'make-file-or-directory-link', 'make-hash',
-            'make-hash-placeholder', 'make-hasheq', 'make-hasheq-placeholder',
-            'make-hasheqv', 'make-hasheqv-placeholder', 'make-immutable-hash',
-            'make-immutable-hasheq', 'make-immutable-hasheqv',
-            'make-impersonator-property', 'make-input-port', 'make-inspector',
-            'make-keyword-procedure', 'make-known-char-range-list',
-            'make-log-receiver', 'make-logger', 'make-output-port',
-            'make-parameter', 'make-phantom-bytes', 'make-pipe',
-            'make-placeholder', 'make-polar', 'make-prefab-struct',
-            'make-pseudo-random-generator', 'make-reader-graph',
-            'make-readtable', 'make-rectangular', 'make-rename-transformer',
-            'make-resolved-module-path', 'make-security-guard',
-            'make-semaphore', 'make-set!-transformer', 'make-shared-bytes',
-            'make-sibling-inspector', 'make-special-comment', 'make-srcloc',
-            'make-string', 'make-struct-field-accessor',
-            'make-struct-field-mutator', 'make-struct-type',
-            'make-struct-type-property', 'make-syntax-delta-introducer',
-            'make-syntax-introducer', 'make-thread-cell', 'make-thread-group',
-            'make-vector', 'make-weak-box', 'make-weak-hash',
-            'make-weak-hasheq', 'make-weak-hasheqv', 'make-will-executor',
-            'map', 'max', 'mcar', 'mcdr', 'mcons', 'member', 'memf', 'memq',
-            'memv', 'min', 'module-&gt;exports', 'module-&gt;imports',
-            'module-&gt;language-info', 'module-&gt;namespace',
-            'module-compiled-exports', 'module-compiled-imports',
-            'module-compiled-language-info', 'module-compiled-name',
-            'module-compiled-submodules', 'module-declared?',
-            'module-path-index-join', 'module-path-index-resolve',
-            'module-path-index-split', 'module-path-index-submodule',
-            'module-path-index?', 'module-path?', 'module-predefined?',
-            'module-provide-protected?', 'modulo', 'mpair?', 'nack-guard-evt',
-            'namespace-anchor-&gt;empty-namespace',
-            'namespace-anchor-&gt;namespace', 'namespace-anchor?',
-            'namespace-attach-module', 'namespace-attach-module-declaration',
-            'namespace-base-phase', 'namespace-mapped-symbols',
-            'namespace-module-identifier', 'namespace-module-registry',
-            'namespace-require', 'namespace-require/constant',
-            'namespace-require/copy', 'namespace-require/expansion-time',
-            'namespace-set-variable-value!', 'namespace-symbol-&gt;identifier',
-            'namespace-syntax-introduce', 'namespace-undefine-variable!',
-            'namespace-unprotect-module', 'namespace-variable-value',
-            'namespace?', 'negative?', 'never-evt', 'newline',
-            'normal-case-path', 'not', 'null', 'null?', 'number-&gt;string',
-            'number?', 'numerator', 'object-name', 'odd?', 'open-input-bytes',
-            'open-input-string', 'open-output-bytes', 'open-output-string',
-            'ormap', 'output-port?', 'pair?', 'parameter-procedure=?',
-            'parameter?', 'parameterization?', 'path-&gt;bytes',
-            'path-&gt;complete-path', 'path-&gt;directory-path',
-            'path-&gt;string', 'path-add-suffix', 'path-convention-type',
-            'path-element-&gt;bytes', 'path-element-&gt;string',
-            'path-for-some-system?', 'path-list-string-&gt;path-list',
-            'path-replace-suffix', 'path-string?', 'path?', 'peek-byte',
-            'peek-byte-or-special', 'peek-bytes', 'peek-bytes!',
-            'peek-bytes-avail!', 'peek-bytes-avail!*',
-            'peek-bytes-avail!/enable-break', 'peek-char',
-            'peek-char-or-special', 'peek-string', 'peek-string!',
-            'phantom-bytes?', 'pipe-content-length', 'placeholder-get',
-            'placeholder-set!', 'placeholder?', 'poll-guard-evt',
-            'port-closed-evt', 'port-closed?', 'port-commit-peeked',
-            'port-count-lines!', 'port-count-lines-enabled',
-            'port-display-handler', 'port-file-identity', 'port-file-unlock',
-            'port-next-location', 'port-print-handler', 'port-progress-evt',
-            'port-provides-progress-evts?', 'port-read-handler',
-            'port-try-file-lock?', 'port-write-handler', 'port-writes-atomic?',
-            'port-writes-special?', 'port?', 'positive?',
-            'prefab-key-&gt;struct-type', 'prefab-key?', 'prefab-struct-key',
-            'pregexp', 'pregexp?', 'primitive-closure?',
-            'primitive-result-arity', 'primitive?', 'print',
-            'print-as-expression', 'print-boolean-long-form', 'print-box',
-            'print-graph', 'print-hash-table', 'print-mpair-curly-braces',
-            'print-pair-curly-braces', 'print-reader-abbreviations',
-            'print-struct', 'print-syntax-width', 'print-unreadable',
-            'print-vector-length', 'printf', 'procedure-&gt;method',
-            'procedure-arity', 'procedure-arity-includes?', 'procedure-arity?',
-            'procedure-closure-contents-eq?', 'procedure-extract-target',
-            'procedure-keywords', 'procedure-reduce-arity',
-            'procedure-reduce-keyword-arity', 'procedure-rename',
-            'procedure-struct-type?', 'procedure?', 'progress-evt?',
-            'prop:arity-string', 'prop:checked-procedure',
-            'prop:custom-print-quotable', 'prop:custom-write',
-            'prop:equal+hash', 'prop:evt', 'prop:exn:srclocs',
-            'prop:impersonator-of', 'prop:input-port',
-            'prop:liberal-define-context', 'prop:output-port',
-            'prop:procedure', 'prop:rename-transformer', 'prop:sequence',
-            'prop:set!-transformer', 'pseudo-random-generator-&gt;vector',
-            'pseudo-random-generator-vector?', 'pseudo-random-generator?',
-            'putenv', 'quotient', 'quotient/remainder', 'raise',
-            'raise-argument-error', 'raise-arguments-error',
-            'raise-arity-error', 'raise-mismatch-error', 'raise-range-error',
-            'raise-result-error', 'raise-syntax-error', 'raise-type-error',
-            'raise-user-error', 'random', 'random-seed', 'rational?',
-            'rationalize', 'read', 'read-accept-bar-quote', 'read-accept-box',
-            'read-accept-compiled', 'read-accept-dot', 'read-accept-graph',
-            'read-accept-infix-dot', 'read-accept-lang',
-            'read-accept-quasiquote', 'read-accept-reader', 'read-byte',
-            'read-byte-or-special', 'read-bytes', 'read-bytes!',
-            'read-bytes-avail!', 'read-bytes-avail!*',
-            'read-bytes-avail!/enable-break', 'read-bytes-line',
-            'read-case-sensitive', 'read-char', 'read-char-or-special',
-            'read-curly-brace-as-paren', 'read-decimal-as-inexact',
-            'read-eval-print-loop', 'read-language', 'read-line',
-            'read-on-demand-source', 'read-square-bracket-as-paren',
-            'read-string', 'read-string!', 'read-syntax',
-            'read-syntax/recursive', 'read/recursive', 'readtable-mapping',
-            'readtable?', 'real-&gt;decimal-string', 'real-&gt;double-flonum',
-            'real-&gt;floating-point-bytes', 'real-&gt;single-flonum',
-            'real-part', 'real?', 'regexp', 'regexp-match',
-            'regexp-match-exact?', 'regexp-match-peek',
-            'regexp-match-peek-immediate', 'regexp-match-peek-positions',
-            'regexp-match-peek-positions-immediate',
-            'regexp-match-peek-positions-immediate/end',
-            'regexp-match-peek-positions/end', 'regexp-match-positions',
-            'regexp-match-positions/end', 'regexp-match/end', 'regexp-match?',
-            'regexp-max-lookbehind', 'regexp-quote', 'regexp-replace',
-            'regexp-replace*', 'regexp-replace-quote', 'regexp-replaces',
-            'regexp-split', 'regexp-try-match', 'regexp?', 'relative-path?',
-            'remainder', 'remove', 'remove*', 'remq', 'remq*', 'remv', 'remv*',
-            'rename-file-or-directory', 'rename-transformer-target',
-            'rename-transformer?', 'reroot-path', 'resolve-path',
-            'resolved-module-path-name', 'resolved-module-path?', 'reverse',
-            'round', 'seconds-&gt;date', 'security-guard?',
-            'semaphore-peek-evt', 'semaphore-peek-evt?', 'semaphore-post',
-            'semaphore-try-wait?', 'semaphore-wait',
-            'semaphore-wait/enable-break', 'semaphore?', 'sequence-&gt;stream',
-            'sequence-generate', 'sequence-generate*', 'sequence?',
-            'set!-transformer-procedure', 'set!-transformer?', 'set-box!',
-            'set-mcar!', 'set-mcdr!', 'set-phantom-bytes!',
-            'set-port-next-location!', 'shared-bytes', 'shell-execute',
-            'simplify-path', 'sin', 'single-flonum?', 'sleep',
-            'special-comment-value', 'special-comment?', 'split-path', 'sqrt',
-            'srcloc-column', 'srcloc-line', 'srcloc-position', 'srcloc-source',
-            'srcloc-span', 'srcloc?', 'stop-after', 'stop-before', 'string',
-            'string&gt;=?', 'string&gt;?', 'string&lt;=?', 'string&lt;?',
-            'string-&gt;bytes/latin-1', 'string-&gt;bytes/locale',
-            'string-&gt;bytes/utf-8', 'string-&gt;immutable-string',
-            'string-&gt;keyword', 'string-&gt;list', 'string-&gt;number',
-            'string-&gt;path', 'string-&gt;path-element', 'string-&gt;symbol',
-            'string-&gt;uninterned-symbol', 'string-&gt;unreadable-symbol',
-            'string-append', 'string-ci&gt;=?', 'string-ci&gt;?',
-            'string-ci&lt;=?', 'string-ci&lt;?', 'string-ci=?', 'string-copy',
-            'string-copy!', 'string-downcase', 'string-fill!',
-            'string-foldcase', 'string-length', 'string-locale&gt;?',
-            'string-locale&lt;?', 'string-locale-ci&gt;?',
-            'string-locale-ci&lt;?', 'string-locale-ci=?',
-            'string-locale-downcase', 'string-locale-upcase',
-            'string-locale=?', 'string-normalize-nfc', 'string-normalize-nfd',
-            'string-normalize-nfkc', 'string-normalize-nfkd', 'string-ref',
-            'string-set!', 'string-titlecase', 'string-upcase',
-            'string-utf-8-length', 'string=?', 'string?', 'struct-&gt;vector',
-            'struct-accessor-procedure?', 'struct-constructor-procedure?',
-            'struct-info', 'struct-mutator-procedure?',
-            'struct-predicate-procedure?', 'struct-type-info',
-            'struct-type-make-constructor', 'struct-type-make-predicate',
-            'struct-type-property-accessor-procedure?',
-            'struct-type-property?', 'struct-type?', 'struct:arity-at-least',
-            'struct:date', 'struct:date*', 'struct:exn', 'struct:exn:break',
-            'struct:exn:break:hang-up', 'struct:exn:break:terminate',
-            'struct:exn:fail', 'struct:exn:fail:contract',
-            'struct:exn:fail:contract:arity',
-            'struct:exn:fail:contract:continuation',
-            'struct:exn:fail:contract:divide-by-zero',
-            'struct:exn:fail:contract:non-fixnum-result',
-            'struct:exn:fail:contract:variable', 'struct:exn:fail:filesystem',
-            'struct:exn:fail:filesystem:errno',
-            'struct:exn:fail:filesystem:exists',
-            'struct:exn:fail:filesystem:version', 'struct:exn:fail:network',
-            'struct:exn:fail:network:errno', 'struct:exn:fail:out-of-memory',
-            'struct:exn:fail:read', 'struct:exn:fail:read:eof',
-            'struct:exn:fail:read:non-char', 'struct:exn:fail:syntax',
-            'struct:exn:fail:syntax:unbound', 'struct:exn:fail:unsupported',
-            'struct:exn:fail:user', 'struct:srcloc', 'struct?', 'sub1',
-            'subbytes', 'subprocess', 'subprocess-group-enabled',
-            'subprocess-kill', 'subprocess-pid', 'subprocess-status',
-            'subprocess-wait', 'subprocess?', 'substring', 'symbol-&gt;string',
-            'symbol-interned?', 'symbol-unreadable?', 'symbol?', 'sync',
-            'sync/enable-break', 'sync/timeout', 'sync/timeout/enable-break',
-            'syntax-&gt;datum', 'syntax-&gt;list', 'syntax-arm',
-            'syntax-column', 'syntax-disarm', 'syntax-e', 'syntax-line',
-            'syntax-local-bind-syntaxes', 'syntax-local-certifier',
-            'syntax-local-context', 'syntax-local-expand-expression',
-            'syntax-local-get-shadower', 'syntax-local-introduce',
-            'syntax-local-lift-context', 'syntax-local-lift-expression',
-            'syntax-local-lift-module-end-declaration',
-            'syntax-local-lift-provide', 'syntax-local-lift-require',
-            'syntax-local-lift-values-expression',
-            'syntax-local-make-definition-context',
-            'syntax-local-make-delta-introducer',
-            'syntax-local-module-defined-identifiers',
-            'syntax-local-module-exports',
-            'syntax-local-module-required-identifiers', 'syntax-local-name',
-            'syntax-local-phase-level', 'syntax-local-submodules',
-            'syntax-local-transforming-module-provides?', 'syntax-local-value',
-            'syntax-local-value/immediate', 'syntax-original?',
-            'syntax-position', 'syntax-property',
-            'syntax-property-symbol-keys', 'syntax-protect', 'syntax-rearm',
-            'syntax-recertify', 'syntax-shift-phase-level', 'syntax-source',
-            'syntax-source-module', 'syntax-span', 'syntax-taint',
-            'syntax-tainted?', 'syntax-track-origin',
-            'syntax-transforming-module-expression?', 'syntax-transforming?',
-            'syntax?', 'system-big-endian?', 'system-idle-evt',
-            'system-language+country', 'system-library-subpath',
-            'system-path-convention-type', 'system-type', 'tan',
-            'terminal-port?', 'thread', 'thread-cell-ref', 'thread-cell-set!',
-            'thread-cell-values?', 'thread-cell?', 'thread-dead-evt',
-            'thread-dead?', 'thread-group?', 'thread-receive',
-            'thread-receive-evt', 'thread-resume', 'thread-resume-evt',
-            'thread-rewind-receive', 'thread-running?', 'thread-send',
-            'thread-suspend', 'thread-suspend-evt', 'thread-try-receive',
-            'thread-wait', 'thread/suspend-to-kill', 'thread?', 'time-apply',
-            'truncate', 'unbox', 'uncaught-exception-handler',
-            'use-collection-link-paths', 'use-compiled-file-paths',
-            'use-user-specific-search-paths', 'values',
-            'variable-reference-&gt;empty-namespace',
-            'variable-reference-&gt;module-base-phase',
-            'variable-reference-&gt;module-declaration-inspector',
-            'variable-reference-&gt;module-path-index',
-            'variable-reference-&gt;module-source',
-            'variable-reference-&gt;namespace', 'variable-reference-&gt;phase',
-            'variable-reference-&gt;resolved-module-path',
-            'variable-reference-constant?', 'variable-reference?', 'vector',
-            'vector-&gt;immutable-vector', 'vector-&gt;list',
-            'vector-&gt;pseudo-random-generator',
-            'vector-&gt;pseudo-random-generator!', 'vector-&gt;values',
-            'vector-copy!', 'vector-fill!', 'vector-immutable',
-            'vector-length', 'vector-ref', 'vector-set!',
-            'vector-set-performance-stats!', 'vector?', 'version', 'void',
-            'void?', 'weak-box-value', 'weak-box?', 'will-execute',
-            'will-executor?', 'will-register', 'will-try-execute', 'wrap-evt',
-            'write', 'write-byte', 'write-bytes', 'write-bytes-avail',
-            'write-bytes-avail*', 'write-bytes-avail-evt',
-            'write-bytes-avail/enable-break', 'write-char', 'write-special',
-            'write-special-avail*', 'write-special-evt', 'write-string',
-            'zero?',
-            ),
-
-        2 => array(
-            '#%app', '#%datum', '#%expression', '#%module-begin', '#%plain-app',
-            '#%plain-lambda', '#%plain-module-begin', '#%provide', '#%require',
-            '#%stratified-body', '#%top', '#%top-interaction',
-            '#%variable-reference', ':do-in', 'all-defined-out',
-            'all-from-out', 'and', 'apply', 'arity-at-least', 'begin',
-            'begin-for-syntax', 'begin0', 'call-with-input-file',
-            'call-with-input-file*', 'call-with-output-file',
-            'call-with-output-file*', 'case', 'case-lambda', 'combine-in',
-            'combine-out', 'cond', 'date', 'date*', 'define',
-            'define-for-syntax', 'define-logger', 'define-namespace-anchor',
-            'define-sequence-syntax', 'define-struct', 'define-struct/derived',
-            'define-syntax', 'define-syntax-rule', 'define-syntaxes',
-            'define-values', 'define-values-for-syntax', 'do', 'else',
-            'except-in', 'except-out', 'exn', 'exn:break', 'exn:break:hang-up',
-            'exn:break:terminate', 'exn:fail', 'exn:fail:contract',
-            'exn:fail:contract:arity', 'exn:fail:contract:continuation',
-            'exn:fail:contract:divide-by-zero',
-            'exn:fail:contract:non-fixnum-result',
-            'exn:fail:contract:variable', 'exn:fail:filesystem',
-            'exn:fail:filesystem:errno', 'exn:fail:filesystem:exists',
-            'exn:fail:filesystem:version', 'exn:fail:network',
-            'exn:fail:network:errno', 'exn:fail:out-of-memory',
-            'exn:fail:read', 'exn:fail:read:eof', 'exn:fail:read:non-char',
-            'exn:fail:syntax', 'exn:fail:syntax:unbound',
-            'exn:fail:unsupported', 'exn:fail:user', 'file', 'for', 'for*',
-            'for*/and', 'for*/first', 'for*/fold', 'for*/fold/derived',
-            'for*/hash', 'for*/hasheq', 'for*/hasheqv', 'for*/last',
-            'for*/list', 'for*/lists', 'for*/or', 'for*/product', 'for*/sum',
-            'for*/vector', 'for-label', 'for-meta', 'for-syntax',
-            'for-template', 'for/and', 'for/first', 'for/fold',
-            'for/fold/derived', 'for/hash', 'for/hasheq', 'for/hasheqv',
-            'for/last', 'for/list', 'for/lists', 'for/or', 'for/product',
-            'for/sum', 'for/vector', 'gen:custom-write', 'gen:equal+hash',
-            'if', 'in-bytes', 'in-bytes-lines', 'in-indexed',
-            'in-input-port-bytes', 'in-input-port-chars', 'in-lines',
-            'in-list', 'in-mlist', 'in-naturals', 'in-port', 'in-producer',
-            'in-range', 'in-string', 'in-value', 'in-vector', 'lambda', 'let',
-            'let*', 'let*-values', 'let-syntax', 'let-syntaxes', 'let-values',
-            'let/cc', 'let/ec', 'letrec', 'letrec-syntax', 'letrec-syntaxes',
-            'letrec-syntaxes+values', 'letrec-values', 'lib', 'local-require',
-            'log-debug', 'log-error', 'log-fatal', 'log-info', 'log-warning',
-            'module', 'module*', 'module+', 'only-in', 'only-meta-in',
-            'open-input-file', 'open-input-output-file', 'open-output-file',
-            'or', 'parameterize', 'parameterize*', 'parameterize-break',
-            'planet', 'prefix-in', 'prefix-out', 'protect-out', 'provide',
-            'quasiquote', 'quasisyntax', 'quasisyntax/loc', 'quote',
-            'quote-syntax', 'quote-syntax/prune', 'regexp-match*',
-            'regexp-match-peek-positions*', 'regexp-match-positions*',
-            'relative-in', 'rename-in', 'rename-out', 'require', 'set!',
-            'set!-values', 'sort', 'srcloc', 'struct', 'struct-copy',
-            'struct-field-index', 'struct-out', 'submod', 'syntax',
-            'syntax-case', 'syntax-case*', 'syntax-id-rules', 'syntax-rules',
-            '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', 'λ',
-            ),
-
-        3 => array(
-            '&gt;/c', '&lt;/c', 'append*', 'append-map', 'argmax', 'argmin',
-            'bad-number-of-results', 'base-&gt;-doms/c', 'base-&gt;-rngs/c',
-            'base-&gt;?', 'blame-add-unknown-context', 'blame-context',
-            'blame-contract', 'blame-fmt-&gt;-string', 'blame-negative',
-            'blame-original?', 'blame-positive', 'blame-replace-negative',
-            'blame-source', 'blame-swap', 'blame-swapped?', 'blame-value',
-            'blame?', 'boolean=?', 'build-chaperone-contract-property',
-            'build-compound-type-name', 'build-contract-property',
-            'build-flat-contract-property', 'bytes-append*', 'bytes-join',
-            'bytes-no-nuls?', 'call-with-input-bytes',
-            'call-with-input-string', 'call-with-output-bytes',
-            'call-with-output-string', 'chaperone-contract-property?',
-            'chaperone-contract?', 'class-&gt;interface', 'class-info',
-            'class?', 'coerce-chaperone-contract',
-            'coerce-chaperone-contracts', 'coerce-contract',
-            'coerce-contract/f', 'coerce-contracts', 'coerce-flat-contract',
-            'coerce-flat-contracts', 'conjugate', 'cons?', 'const',
-            'contract-first-order', 'contract-first-order-passes?',
-            'contract-name', 'contract-proc', 'contract-projection',
-            'contract-property?', 'contract-random-generate',
-            'contract-stronger?', 'contract-struct-exercise',
-            'contract-struct-generate', 'contract?', 'convert-stream',
-            'copy-directory/files', 'copy-port', 'cosh', 'count',
-            'current-blame-format', 'current-future', 'curry', 'curryr',
-            'degrees-&gt;radians', 'delete-directory/files',
-            'deserialize-info:set-v0', 'dict-iter-contract',
-            'dict-key-contract', 'dict-value-contract', 'drop', 'drop-right',
-            'dup-input-port', 'dup-output-port', 'dynamic-get-field',
-            'dynamic-send', 'dynamic-set-field!', 'eighth', 'empty',
-            'empty-sequence', 'empty-stream', 'empty?', 'env-stash',
-            'eq-contract-val', 'eq-contract?', 'equal&lt;%&gt;',
-            'equal-contract-val', 'equal-contract?', 'exact-ceiling',
-            'exact-floor', 'exact-round', 'exact-truncate',
-            'exn:fail:contract:blame-object', 'exn:fail:contract:blame?',
-            'exn:fail:object?', 'exn:misc:match?', 'explode-path',
-            'externalizable&lt;%&gt;', 'false', 'false/c', 'false?',
-            'field-names', 'fifth', 'file-name-from-path',
-            'filename-extension', 'filter-map', 'filter-not',
-            'filter-read-input-port', 'find-files', 'first', 'flat-contract',
-            'flat-contract-predicate', 'flat-contract-property?',
-            'flat-contract?', 'flat-named-contract', 'flatten', 'fold-files',
-            'force', 'fourth', 'fsemaphore-count', 'fsemaphore-post',
-            'fsemaphore-try-wait?', 'fsemaphore-wait', 'fsemaphore?', 'future',
-            'future?', 'futures-enabled?', 'generate-ctc-fail?',
-            'generate-env', 'generate-member-key', 'generate/choose',
-            'generate/direct', 'generic?', 'group-execute-bit',
-            'group-read-bit', 'group-write-bit', 'has-contract?', 'identity',
-            'impersonator-contract?', 'impersonator-prop:contracted',
-            'implementation?', 'implementation?/c', 'in-dict', 'in-dict-keys',
-            'in-dict-pairs', 'in-dict-values', 'infinite?',
-            'input-port-append', 'instanceof/c', 'interface-&gt;method-names',
-            'interface-extension?', 'interface?', 'is-a?', 'is-a?/c', 'last',
-            'last-pair', 'list-&gt;set', 'list-&gt;seteq', 'list-&gt;seteqv',
-            'make-chaperone-contract', 'make-contract', 'make-custom-hash',
-            'make-directory*', 'make-exn:fail:contract:blame',
-            'make-exn:fail:object', 'make-flat-contract', 'make-fsemaphore',
-            'make-generate-ctc-fail', 'make-generic',
-            'make-immutable-custom-hash', 'make-input-port/read-to-peek',
-            'make-limited-input-port', 'make-list', 'make-lock-file-name',
-            'make-mixin-contract', 'make-none/c', 'make-pipe-with-specials',
-            'make-primitive-class', 'make-proj-contract',
-            'make-tentative-pretty-print-output-port', 'make-weak-custom-hash',
-            'match-equality-test', 'matches-arity-exactly?',
-            '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%',
-            'object-&gt;vector', 'object-info', 'object-interface',
-            'object-method-arity-includes?', 'object=?', 'object?',
-            'open-output-nowhere', 'order-of-magnitude', 'other-execute-bit',
-            'other-read-bit', 'other-write-bit', 'parse-command-line',
-            'partition', 'path-element?', 'path-only', 'pathlist-closure',
-            'pi', 'pi.f', 'place-break', 'place-channel', 'place-channel-get',
-            'place-channel-put', 'place-channel-put/get', 'place-channel?',
-            'place-dead-evt', 'place-enabled?', 'place-kill',
-            'place-message-allowed?', 'place-sleep', 'place-wait', 'place?',
-            'port-&gt;bytes', 'port-&gt;list', 'port-&gt;string',
-            'predicate/c', 'preferences-lock-file-mode', 'pretty-display',
-            'pretty-format', 'pretty-print',
-            'pretty-print-.-symbol-without-bars',
-            'pretty-print-abbreviate-read-macros', 'pretty-print-columns',
-            'pretty-print-current-style-table', 'pretty-print-depth',
-            'pretty-print-exact-as-decimal', 'pretty-print-extend-style-table',
-            'pretty-print-handler', 'pretty-print-newline',
-            'pretty-print-post-print-hook', 'pretty-print-pre-print-hook',
-            'pretty-print-print-hook', 'pretty-print-print-line',
-            'pretty-print-remap-stylable', 'pretty-print-show-inexactness',
-            'pretty-print-size-hook', 'pretty-print-style-table?',
-            'pretty-printing', 'pretty-write', 'printable&lt;%&gt;',
-            'printable/c', 'process', 'process*', 'process*/ports',
-            'process/ports', 'processor-count', 'promise-forced?',
-            'promise-running?', 'promise?', 'prop:chaperone-contract',
-            'prop:contract', 'prop:contracted', 'prop:dict',
-            'prop:flat-contract', 'prop:opt-chaperone-contract',
-            'prop:opt-chaperone-contract-get-test',
-            'prop:opt-chaperone-contract?', 'prop:stream', 'proper-subset?',
-            'put-preferences', 'radians-&gt;degrees', 'raise-blame-error',
-            'raise-contract-error', 'range', 'reencode-input-port',
-            'reencode-output-port', 'relocate-input-port',
-            'relocate-output-port', 'rest', 'second', 'sequence-&gt;list',
-            'sequence-add-between', 'sequence-andmap', 'sequence-append',
-            'sequence-count', 'sequence-filter', 'sequence-fold',
-            'sequence-for-each', 'sequence-length', 'sequence-map',
-            'sequence-ormap', 'sequence-ref', 'sequence-tail', 'set',
-            'set-&gt;list', 'set-add', 'set-count', 'set-empty?', 'set-eq?',
-            'set-equal?', 'set-eqv?', 'set-first', 'set-for-each',
-            'set-intersect', 'set-map', 'set-member?', 'set-remove',
-            'set-rest', 'set-subtract', 'set-symmetric-difference',
-            'set-union', 'set/c', 'set=?', 'set?', 'seteq', 'seteqv',
-            'seventh', 'sgn', 'shuffle', 'simple-form-path', 'sinh', 'sixth',
-            'skip-projection-wrapper?', 'some-system-path-&gt;string',
-            'special-filter-input-port', 'split-at', 'split-at-right', 'sqr',
-            'stream-&gt;list', 'stream-add-between', 'stream-andmap',
-            'stream-append', 'stream-count', 'stream-empty?', 'stream-filter',
-            'stream-first', 'stream-fold', 'stream-for-each', 'stream-length',
-            'stream-map', 'stream-ormap', 'stream-ref', 'stream-rest',
-            'stream-tail', 'stream?', 'string-&gt;some-system-path',
-            'string-append*', 'string-no-nuls?', 'struct-type-property/c',
-            'struct:exn:fail:contract:blame', 'struct:exn:fail:object',
-            'subclass?', 'subclass?/c', 'subset?', 'symbol=?', 'system',
-            'system*', 'system*/exit-code', 'system/exit-code', 'take',
-            'take-right', 'tanh', 'tcp-abandon-port', 'tcp-accept',
-            'tcp-accept-evt', 'tcp-accept-ready?', 'tcp-accept/enable-break',
-            'tcp-addresses', 'tcp-close', 'tcp-connect',
-            'tcp-connect/enable-break', 'tcp-listen', 'tcp-listener?',
-            'tcp-port?', 'tentative-pretty-print-port-cancel',
-            'tentative-pretty-print-port-transfer', 'tenth',
-            'the-unsupplied-arg', 'third', 'touch', 'transplant-input-port',
-            'transplant-output-port', 'true', 'udp-addresses', 'udp-bind!',
-            'udp-bound?', 'udp-close', 'udp-connect!', 'udp-connected?',
-            'udp-open-socket', 'udp-receive!', 'udp-receive!*',
-            'udp-receive!-evt', 'udp-receive!/enable-break',
-            'udp-receive-ready-evt', 'udp-send', 'udp-send*', 'udp-send-evt',
-            'udp-send-ready-evt', 'udp-send-to', 'udp-send-to*',
-            'udp-send-to-evt', 'udp-send-to/enable-break',
-            'udp-send/enable-break', 'udp?', 'unit?', 'unsupplied-arg?',
-            'user-execute-bit', 'user-read-bit', 'user-write-bit',
-            'value-contract', 'vector-append', 'vector-argmax',
-            'vector-argmin', 'vector-copy', 'vector-count', 'vector-drop',
-            'vector-drop-right', 'vector-filter', 'vector-filter-not',
-            'vector-map', 'vector-map!', 'vector-member', 'vector-memq',
-            'vector-memv', 'vector-set*!', 'vector-split-at',
-            'vector-split-at-right', 'vector-take', 'vector-take-right',
-            'with-input-from-bytes', 'with-input-from-string',
-            'with-output-to-bytes', 'with-output-to-string', 'would-be-future',
-            'writable&lt;%&gt;', 'xor',
-            ),
-        4 => array(
-            '&gt;=/c', '&lt;=/c', '-&gt;*m', '-&gt;d', '-&gt;dm', '-&gt;i', '-&gt;m',
-            '=/c', 'absent', 'abstract', 'add-between', 'and/c', 'any',
-            'any/c', 'augment', 'augment*', 'augment-final', 'augment-final*',
-            'augride', 'augride*', 'between/c', 'blame-add-context',
-            'box-immutable/c', 'box/c', 'call-with-file-lock/timeout',
-            'case-&gt;', 'case-&gt;m', 'class', 'class*',
-            'class-field-accessor', 'class-field-mutator', 'class/c',
-            'class/derived', 'command-line', 'compound-unit',
-            'compound-unit/infer', 'cons/c', 'continuation-mark-key/c',
-            'contract', 'contract-out', 'contract-struct', 'contracted',
-            'current-contract-region', 'define-compound-unit',
-            'define-compound-unit/infer', 'define-contract-struct',
-            'define-local-member-name', 'define-match-expander',
-            'define-member-name', 'define-opt/c', 'define-serializable-class',
-            'define-serializable-class*', 'define-signature',
-            'define-signature-form', 'define-struct/contract', 'define-unit',
-            'define-unit-binding', 'define-unit-from-context',
-            'define-unit/contract', 'define-unit/new-import-export',
-            'define-unit/s', 'define-values-for-export',
-            'define-values/invoke-unit', 'define-values/invoke-unit/infer',
-            'define/augment', 'define/augment-final', 'define/augride',
-            'define/contract', 'define/final-prop', 'define/match',
-            'define/overment', 'define/override', 'define/override-final',
-            'define/private', 'define/public', 'define/public-final',
-            'define/pubment', 'define/subexpression-pos-prop', 'delay',
-            'delay/idle', 'delay/name', 'delay/strict', 'delay/sync',
-            'delay/thread', 'dict-&gt;list', 'dict-can-functional-set?',
-            'dict-can-remove-keys?', 'dict-count', 'dict-for-each',
-            'dict-has-key?', 'dict-iterate-first', 'dict-iterate-key',
-            'dict-iterate-next', 'dict-iterate-value', 'dict-keys', 'dict-map',
-            'dict-mutable?', 'dict-ref', 'dict-ref!', 'dict-remove',
-            'dict-remove!', 'dict-set', 'dict-set!', 'dict-set*', 'dict-set*!',
-            'dict-update', 'dict-update!', 'dict-values', 'dict?',
-            'display-lines', 'display-lines-to-file', 'display-to-file',
-            'dynamic-place', 'dynamic-place*', 'eof-evt', 'except',
-            'exn:fail:contract:blame', 'exn:fail:object', 'export', 'extends',
-            'field', 'field-bound?', 'file-&gt;bytes', 'file-&gt;bytes-lines',
-            'file-&gt;lines', 'file-&gt;list', 'file-&gt;string',
-            'file-&gt;value', 'find-relative-path', 'flat-murec-contract',
-            'flat-rec-contract', 'for*/set', 'for*/seteq', 'for*/seteqv',
-            'for/set', 'for/seteq', 'for/seteqv', 'gen:dict', 'gen:stream',
-            'generic', 'get-field', 'get-preference', 'hash/c', 'implies',
-            'import', 'in-set', 'in-stream', 'include',
-            'include-at/relative-to', 'include-at/relative-to/reader',
-            'include/reader', 'inherit', 'inherit-field', 'inherit/inner',
-            'inherit/super', 'init', 'init-depend', 'init-field', 'init-rest',
-            'inner', 'inspect', 'instantiate', 'integer-in', 'interface',
-            'interface*', 'invoke-unit', 'invoke-unit/infer', 'lazy', 'link',
-            'list/c', 'listof', 'local', 'make-handle-get-preference-locked',
-            'make-object', 'make-temporary-file', 'match', 'match*',
-            'match*/derived', 'match-define', 'match-define-values',
-            'match-lambda', 'match-lambda*', 'match-lambda**', 'match-let',
-            'match-let*', 'match-let*-values', 'match-let-values',
-            'match-letrec', 'match/derived', 'match/values', 'member-name-key',
-            'method-contract?', 'mixin', 'nand', 'new', 'non-empty-listof',
-            'none/c', 'nor', 'not/c', 'object-contract', 'object/c',
-            'one-of/c', 'only', 'open', 'opt/c', 'or/c', 'overment',
-            'overment*', 'override', 'override*', 'override-final',
-            'override-final*', 'parameter/c', 'parametric-&gt;/c',
-            'peek-bytes!-evt', 'peek-bytes-avail!-evt', 'peek-bytes-evt',
-            'peek-string!-evt', 'peek-string-evt', 'peeking-input-port',
-            'place', 'place*', 'port-&gt;bytes-lines', 'port-&gt;lines',
-            'prefix', 'private', 'private*', 'procedure-arity-includes/c',
-            'promise/c', 'prompt-tag/c', 'prop:dict/contract',
-            'provide-signature-elements', 'provide/contract', 'public',
-            'public*', 'public-final', 'public-final*', 'pubment', 'pubment*',
-            'read-bytes!-evt', 'read-bytes-avail!-evt', 'read-bytes-evt',
-            'read-bytes-line-evt', 'read-line-evt', 'read-string!-evt',
-            'read-string-evt', 'real-in', 'recursive-contract',
-            'regexp-match-evt', 'remove-duplicates', 'rename', 'rename-inner',
-            'rename-super', 'send', 'send*', 'send+', 'send-generic',
-            'send/apply', 'send/keyword-apply', 'set-field!', 'shared',
-            'stream', 'stream-cons', 'string-join', 'string-len/c',
-            'string-normalize-spaces', 'string-replace', 'string-split',
-            'string-trim', 'struct*', 'struct/c', 'struct/ctc', 'struct/dc',
-            'super', 'super-instantiate', 'super-make-object', 'super-new',
-            'symbols', 'syntax/c', 'tag', 'this', 'this%', 'thunk', 'thunk*',
-            'unconstrained-domain-&gt;', 'unit', 'unit-from-context', 'unit/c',
-            'unit/new-import-export', 'unit/s', 'vector-immutable/c',
-            'vector-immutableof', 'vector/c', 'vectorof', 'with-contract',
-            'with-method', 'write-to-file', '~.a', '~.s', '~.v', '~a', '~e',
-            '~r', '~s', '~v',
-            ),
-        ),
-    'SYMBOLS' => array(
-        0 => array(
-            '&gt;', '&gt;=', '&lt;', '&lt;=', '*', '+', '-', '-&gt;', '-&gt;*', '...', '/',
-            '=', '=&gt;', '==', '_', '#fl', '#fx', '#s', '#', '#f', '#F',
-            '#false', '#t', '#T', '#true', '#lang', '#reader', '.', '\'', '#`',
-            '#,@', '#,', '#\'', '`', '@', ',', '#%', '#$', '#&', '#~', '#rx',
-            '#px', '#<<', '#;', '#hash', '#',
-            ),
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false,
-        2 => false,
-        3 => false,
-        4 => false,
-        ),
-    'NUMBERS' => array(
-        1 => '(((#x#e)|(#e#x)|(#x#i)|(#i#x)|(#x))((((((((((((-)|(\+)))?(((('.
-            '(([0-9])+)?(\.)?(([0-9a-fA-F])+(#)*)))|(((([0-9a-fA-F])+(#)*)'.
-            '(\.)?(#)*))|(((([0-9a-fA-F])+(#)*)\\/(([0-9a-fA-F])+(#)*))))('.
-            '([sl]((((-)|(\+)))?([0-9])+)))?)))|((((-)|(\+))(((inf\.)|(nan'.
-            '\.))[0f])))))?((-)|(\+))(((((((([0-9])+)?(\.)?(([0-9a-fA-F])+'.
-            '(#)*)))|(((([0-9a-fA-F])+(#)*)(\.)?(#)*))|(((([0-9a-fA-F])+(#'.
-            ')*)\\/(([0-9a-fA-F])+(#)*))))(([sl]((((-)|(\+)))?([0-9])+)))?'.
-            '))|((((inf\.)|(nan\.))[0f])))i))|((((((((-)|(\+)))?(((((([0-9'.
-            '])+)?(\.)?(([0-9a-fA-F])+(#)*)))|(((([0-9a-fA-F])+(#)*)(\.)?('.
-            '#)*))|(((([0-9a-fA-F])+(#)*)\\/(([0-9a-fA-F])+(#)*))))(([sl]('.
-            '(((-)|(\+)))?([0-9])+)))?)))|((((-)|(\+))(((inf\.)|(nan\.))[0'.
-            'f]))))@((((((-)|(\+)))?(((((([0-9])+)?(\.)?(([0-9a-fA-F])+(#)'.
-            '*)))|(((([0-9a-fA-F])+(#)*)(\.)?(#)*))|(((([0-9a-fA-F])+(#)*)'.
-            '\\/(([0-9a-fA-F])+(#)*))))(([sl]((((-)|(\+)))?([0-9])+)))?)))'.
-            '|((((-)|(\+))(((inf\.)|(nan\.))[0f]))))))))|((((((-)|(\+)))?('.
-            '([0-9])+\\/([0-9])+))((-)|(\+))(([0-9])+\\/([0-9])+)i))|((((('.
-            '-)|(\+)))?(([0-9])+\\/([0-9])+)))|(((((((-)|(\+)))?(((((([0-9'.
-            '])+)?(\.)?(([0-9a-fA-F])+(#)*)))|(((([0-9a-fA-F])+(#)*)(\.)?('.
-            '#)*))|(((([0-9a-fA-F])+(#)*)\\/(([0-9a-fA-F])+(#)*))))(([sl]('.
-            '(((-)|(\+)))?([0-9])+)))?)))|((((-)|(\+))(((inf\.)|(nan\.))[0'.
-            'f])))))|(((((-)|(\+)))?([0-9])+))))',
-        2 => '(((#o#e)|(#e#o)|(#o#i)|(#i#o)|(#o))((((((((((((-)|(\+)))?(((('.
-            '(([0-9])+)?(\.)?(([0-7])+(#)*)))|(((([0-7])+(#)*)(\.)?(#)*))|'.
-            '(((([0-7])+(#)*)\\/(([0-7])+(#)*))))(((([sl])|([def]))((((-)|'.
-            '(\+)))?([0-9])+)))?)))|((((-)|(\+))(((inf\.)|(nan\.))[0f]))))'.
-            ')?((-)|(\+))(((((((([0-9])+)?(\.)?(([0-7])+(#)*)))|(((([0-7])'.
-            '+(#)*)(\.)?(#)*))|(((([0-7])+(#)*)\\/(([0-7])+(#)*))))(((([sl'.
-            '])|([def]))((((-)|(\+)))?([0-9])+)))?))|((((inf\.)|(nan\.))[0'.
-            'f])))i))|((((((((-)|(\+)))?(((((([0-9])+)?(\.)?(([0-7])+(#)*)'.
-            '))|(((([0-7])+(#)*)(\.)?(#)*))|(((([0-7])+(#)*)\\/(([0-7])+(#'.
-            ')*))))(((([sl])|([def]))((((-)|(\+)))?([0-9])+)))?)))|((((-)|'.
-            '(\+))(((inf\.)|(nan\.))[0f]))))@((((((-)|(\+)))?(((((([0-9])+'.
-            ')?(\.)?(([0-7])+(#)*)))|(((([0-7])+(#)*)(\.)?(#)*))|(((([0-7]'.
-            ')+(#)*)\\/(([0-7])+(#)*))))(((([sl])|([def]))((((-)|(\+)))?(['.
-            '0-9])+)))?)))|((((-)|(\+))(((inf\.)|(nan\.))[0f]))))))))|(((('.
-            '((-)|(\+)))?(([0-9])+\\/([0-9])+))((-)|(\+))(([0-9])+\\/([0-9'.
-            '])+)i))|(((((-)|(\+)))?(([0-9])+\\/([0-9])+)))|(((((((-)|(\+)'.
-            '))?(((((([0-9])+)?(\.)?(([0-7])+(#)*)))|(((([0-7])+(#)*)(\.)?'.
-            '(#)*))|(((([0-7])+(#)*)\\/(([0-7])+(#)*))))(((([sl])|([def]))'.
-            '((((-)|(\+)))?([0-9])+)))?)))|((((-)|(\+))(((inf\.)|(nan\.))['.
-            '0f])))))|(((((-)|(\+)))?([0-9])+))))',
-        3 => '(((#b#e)|(#e#b)|(#b#i)|(#i#b)|(#b))((((((((((((-)|(\+)))?(((('.
-            '(([0-9])+)?(\.)?(([0-1])+(#)*)))|(((([0-1])+(#)*)(\.)?(#)*))|'.
-            '(((([0-1])+(#)*)\\/(([0-1])+(#)*))))(((([sl])|([def]))((((-)|'.
-            '(\+)))?([0-9])+)))?)))|((((-)|(\+))(((inf\.)|(nan\.))[0f]))))'.
-            ')?((-)|(\+))(((((((([0-9])+)?(\.)?(([0-1])+(#)*)))|(((([0-1])'.
-            '+(#)*)(\.)?(#)*))|(((([0-1])+(#)*)\\/(([0-1])+(#)*))))(((([sl'.
-            '])|([def]))((((-)|(\+)))?([0-9])+)))?))|((((inf\.)|(nan\.))[0'.
-            'f])))i))|((((((((-)|(\+)))?(((((([0-9])+)?(\.)?(([0-1])+(#)*)'.
-            '))|(((([0-1])+(#)*)(\.)?(#)*))|(((([0-1])+(#)*)\\/(([0-1])+(#'.
-            ')*))))(((([sl])|([def]))((((-)|(\+)))?([0-9])+)))?)))|((((-)|'.
-            '(\+))(((inf\.)|(nan\.))[0f]))))@((((((-)|(\+)))?(((((([0-9])+'.
-            ')?(\.)?(([0-1])+(#)*)))|(((([0-1])+(#)*)(\.)?(#)*))|(((([0-1]'.
-            ')+(#)*)\\/(([0-1])+(#)*))))(((([sl])|([def]))((((-)|(\+)))?(['.
-            '0-9])+)))?)))|((((-)|(\+))(((inf\.)|(nan\.))[0f]))))))))|(((('.
-            '((-)|(\+)))?(([0-9])+\\/([0-9])+))((-)|(\+))(([0-9])+\\/([0-9'.
-            '])+)i))|(((((-)|(\+)))?(([0-9])+\\/([0-9])+)))|(((((((-)|(\+)'.
-            '))?(((((([0-9])+)?(\.)?(([0-1])+(#)*)))|(((([0-1])+(#)*)(\.)?'.
-            '(#)*))|(((([0-1])+(#)*)\\/(([0-1])+(#)*))))(((([sl])|([def]))'.
-            '((((-)|(\+)))?([0-9])+)))?)))|((((-)|(\+))(((inf\.)|(nan\.))['.
-            '0f])))))|(((((-)|(\+)))?([0-9])+))))',
-        4 => '((((#d#e)|(#e#d)|(#d#i)|(#i#d)|(#e)|(#i)|(#d)))?((((((((((((-'.
-            ')|(\+)))?(((((([0-9])+)?(\.)?(([0-9])+(#)*)))|(((([0-9])+(#)*'.
-            ')(\.)?(#)*))|(((([0-9])+(#)*)\\/(([0-9])+(#)*))))(((([sl])|(['.
-            'def]))((((-)|(\+)))?([0-9])+)))?)))|((((-)|(\+))(((inf\.)|(na'.
-            'n\.))[0f])))))?((-)|(\+))(((((((([0-9])+)?(\.)?(([0-9])+(#)*)'.
-            '))|(((([0-9])+(#)*)(\.)?(#)*))|(((([0-9])+(#)*)\\/(([0-9])+(#'.
-            ')*))))(((([sl])|([def]))((((-)|(\+)))?([0-9])+)))?))|((((inf'.
-            '\.)|(nan\.))[0f])))i))|((((((((-)|(\+)))?(((((([0-9])+)?(\.)?'.
-            '(([0-9])+(#)*)))|(((([0-9])+(#)*)(\.)?(#)*))|(((([0-9])+(#)*)'.
-            '\\/(([0-9])+(#)*))))(((([sl])|([def]))((((-)|(\+)))?([0-9])+)'.
-            '))?)))|((((-)|(\+))(((inf\.)|(nan\.))[0f]))))@((((((-)|(\+)))'.
-            '?(((((([0-9])+)?(\.)?(([0-9])+(#)*)))|(((([0-9])+(#)*)(\.)?(#'.
-            ')*))|(((([0-9])+(#)*)\\/(([0-9])+(#)*))))(((([sl])|([def]))(('.
-            '((-)|(\+)))?([0-9])+)))?)))|((((-)|(\+))(((inf\.)|(nan\.))[0f'.
-            ']))))))))|((((((-)|(\+)))?(([0-9])+\\/([0-9])+))((-)|(\+))((['.
-            '0-9])+\\/([0-9])+)i))|(((((-)|(\+)))?(([0-9])+\\/([0-9])+)))|'.
-            '(((((((-)|(\+)))?(((((([0-9])+)?(\.)?(([0-9])+(#)*)))|(((([0-'.
-            '9])+(#)*)(\.)?(#)*))|(((([0-9])+(#)*)\\/(([0-9])+(#)*))))(((('.
-            '[sl])|([def]))((((-)|(\+)))?([0-9])+)))?)))|((((-)|(\+))(((in'.
-            'f\.)|(nan\.))[0f])))))|(((((-)|(\+)))?([0-9])+))))',
-            ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: blue;',
-            2 => 'color: rgb(34, 34, 139);',
-            3 => 'color: blue;',
-            4 => 'color: rgb(34, 34, 139);',
-            ),
-        'COMMENTS' => array(
-            1 => 'color: rgb(194, 116, 31);',
-            'MULTI' => 'color: rgb(194, 116, 31);',
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => '',
-            ),
-        'BRACKETS' => array(
-            0 => 'color: rgb(132, 60,36);',
-            ),
-        'STRINGS' => array(
-            0 => 'color: rgb(34, 139, 34);',
-            ),
-        'NUMBERS' => array(
-            0 => 'color: rgb(34, 139, 34);',
-            1 => 'color: rgb(34, 139, 34);',
-            2 => 'color: rgb(34, 139, 34);',
-            3 => 'color: rgb(34, 139, 34);',
-            4 => 'color: rgb(34, 139, 34);',
-            ),
-        'METHODS' => array(
-            0 => 'color: #202020;',
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: rgb(132, 60,36);',
-            ),
-        'REGEXPS' => array(
-            1 => 'color: rgb(34, 139, 34);',
-            2 => 'color: rgb(132, 60,36);',
-            3 => 'color: rgb(34, 139, 34);',
-            ),
-        'SCRIPT' => array(
-            ),
-        ),
-    'URLS' => array(
-        1 => 'http://docs.racket-lang.org/reference/',
-        2 => 'http://docs.racket-lang.org/reference/',
-        3 => 'http://docs.racket-lang.org/reference/',
-        4 => 'http://docs.racket-lang.org/reference/',
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(
-        ),
-    'REGEXPS' => array(
-        1 => '#\\\\(nul|null|backspace|tab|newline|linefeed|vtab|page|retur'.
-            'n|space|rubout|([0-7]{1,3})|(u[[:xdigit:]]{1,4})|(U[[:xdigit:'.
-            ']]{1,6})|[a-z])',
-        2 => '#:[^[:space:]()[\\]{}",\']+',
-        3 => '\'((\\\\ )|([^[:space:]()[\\]{}",\']))+',
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        ),
-    'PARSER_CONTROL' => array(
-        'KEYWORDS' => array(
-            'DISALLOWED_BEFORE' => '[[:space:]()[\\]{}",\']',
-            ),
-        'ENABLE_FLAGS' => array(
-            'SYMBOLS' => GESHI_MAYBE,
-            'BRACKETS' => GESHI_MAYBE,
-            'REGEXPS' => GESHI_MAYBE,
-            'ESCAPE_CHAR' => GESHI_MAYBE,
-            )
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/rails.php b/wiki/vendor/geshi/geshi/src/geshi/rails.php
deleted file mode 100644
index f5683b8..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/rails.php
+++ /dev/null
@@ -1,404 +0,0 @@
-<?php
-/*************************************************************************************
- * rails.php
- * ---------
- * Author: Moises Deniz
- * Copyright: (c) 2005 Moises Deniz
- * Release Version: 1.0.9.0
- * Date Started: 2007/03/21
- *
- * Ruby (with Ruby on Rails Framework) 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' => 'Rails',
-    'COMMENT_SINGLE' => array(1 => "#"),
-    'COMMENT_MULTI' => array("=begin" => "=end"),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array('"', '`','\''),
-    'ESCAPE_CHAR' => '\\',
-    'KEYWORDS' => array(
-        1 => array(
-            'alias', 'and', 'begin', 'break', 'case', 'class',
-            'def', 'defined', 'do', 'else', 'elsif', 'end',
-            'ensure', 'for', 'if', 'in', 'module', 'while',
-            'next', 'not', 'or', 'redo', 'rescue', 'yield',
-            'retry', 'super', 'then', 'undef', 'unless',
-            'until', 'when', 'BEGIN', 'END', 'include'
-            ),
-        2 => array(
-            '__FILE__', '__LINE__', 'false', 'nil', 'self', 'true',
-            'return'
-            ),
-        3 => array(
-            'Array', 'Float', 'Integer', 'String', 'at_exit',
-            'autoload', 'binding', 'caller', 'catch', 'chop', 'chop!',
-            'chomp', 'chomp!', 'eval', 'exec', 'exit', 'exit!', 'fail',
-            'fork', 'format', 'gets', 'global_variables', 'gsub', 'gsub!',
-            'iterator?', 'lambda', 'load', 'local_variables', 'loop',
-            'open', 'p', 'print', 'printf', 'proc', 'putc', 'puts',
-            'raise', 'rand', 'readline', 'readlines', 'require', 'select',
-            'sleep', 'split', 'sprintf', 'srand', 'sub', 'sub!', 'syscall',
-            'system', 'trace_var', 'trap', 'untrace_var'
-            ),
-        4 => array(
-            'Abbrev', 'ArgumentError', 'Base64', 'Benchmark',
-            'Benchmark::Tms', 'Bignum', 'Binding', 'CGI', 'CGI::Cookie',
-            'CGI::HtmlExtension', 'CGI::QueryExtension',
-            'CGI::Session', 'CGI::Session::FileStore',
-            'CGI::Session::MemoryStore', 'Class', 'Comparable', 'Complex',
-            'ConditionVariable', 'Continuation', 'Data',
-            'Date', 'DateTime', 'Delegator', 'Dir', 'EOFError', 'ERB',
-            'ERB::Util', 'Enumerable', 'Enumerable::Enumerator', 'Errno',
-            'Exception', 'FalseClass', 'File',
-            'File::Constants', 'File::Stat', 'FileTest', 'FileUtils',
-            'FileUtils::DryRun', 'FileUtils::NoWrite',
-            'FileUtils::StreamUtils_', 'FileUtils::Verbose', 'Find',
-            'Fixnum', 'FloatDomainError', 'Forwardable', 'GC', 'Generator',
-            'Hash', 'IO', 'IOError', 'Iconv', 'Iconv::BrokenLibrary',
-            'Iconv::Failure', 'Iconv::IllegalSequence',
-            'Iconv::InvalidCharacter', 'Iconv::InvalidEncoding',
-            'Iconv::OutOfRange', 'IndexError', 'Interrupt', 'Kernel',
-            'LoadError', 'LocalJumpError', 'Logger', 'Logger::Application',
-            'Logger::Error', 'Logger::Formatter', 'Logger::LogDevice',
-            'Logger::LogDevice::LogDeviceMutex', 'Logger::Severity',
-            'Logger::ShiftingError', 'Marshal', 'MatchData',
-            'Math', 'Matrix', 'Method', 'Module', 'Mutex', 'NameError',
-            'NameError::message', 'NilClass', 'NoMemoryError',
-            'NoMethodError', 'NotImplementedError', 'Numeric', 'Object',
-            'ObjectSpace', 'Observable', 'PStore', 'PStore::Error',
-            'Pathname', 'Precision', 'Proc', 'Process', 'Process::GID',
-            'Process::Status', 'Process::Sys', 'Process::UID', 'Queue',
-            'Range', 'RangeError', 'Rational', 'Regexp', 'RegexpError',
-            'RuntimeError', 'ScriptError', 'SecurityError', 'Set',
-            'Shellwords', 'Signal', 'SignalException', 'SimpleDelegator',
-            'SingleForwardable', 'Singleton', 'SingletonClassMethods',
-            'SizedQueue', 'SortedSet', 'StandardError', 'StringIO',
-            'StringScanner', 'StringScanner::Error', 'Struct', 'Symbol',
-            'SyncEnumerator', 'SyntaxError', 'SystemCallError',
-            'SystemExit', 'SystemStackError', 'Tempfile',
-            'Test::Unit::TestCase', 'Test::Unit', 'Test', 'Thread',
-            'ThreadError', 'ThreadGroup',
-            'ThreadsWait', 'Time', 'TrueClass', 'TypeError', 'URI',
-            'URI::BadURIError', 'URI::Error', 'URI::Escape', 'URI::FTP',
-            'URI::Generic', 'URI::HTTP', 'URI::HTTPS',
-            'URI::InvalidComponentError', 'URI::InvalidURIError',
-            'URI::LDAP', 'URI::MailTo', 'URI::REGEXP',
-            'URI::REGEXP::PATTERN', 'UnboundMethod', 'Vector', 'YAML',
-            'ZeroDivisionError', 'Zlib',
-            'Zlib::BufError', 'Zlib::DataError', 'Zlib::Deflate',
-            'Zlib::Error', 'Zlib::GzipFile', 'Zlib::GzipFile::CRCError',
-            'Zlib::GzipFile::Error', 'Zlib::GzipFile::LengthError',
-            'Zlib::GzipFile::NoFooter', 'Zlib::GzipReader',
-            'Zlib::GzipWriter', 'Zlib::Inflate', 'Zlib::MemError',
-            'Zlib::NeedDict', 'Zlib::StreamEnd', 'Zlib::StreamError',
-            'Zlib::VersionError',
-            'Zlib::ZStream',
-            'ActionController::AbstractRequest',
-            'ActionController::Assertions::DomAssertions',
-            'ActionController::Assertions::ModelAssertions',
-            'ActionController::Assertions::ResponseAssertions',
-            'ActionController::Assertions::RoutingAssertions',
-            'ActionController::Assertions::SelectorAssertions',
-            'ActionController::Assertions::TagAssertions',
-            'ActionController::Base',
-            'ActionController::Benchmarking::ClassMethods',
-            'ActionController::Caching',
-            'ActionController::Caching::Actions',
-            'ActionController::Caching::Actions::ActionCachePath',
-            'ActionController::Caching::Fragments',
-            'ActionController::Caching::Pages',
-            'ActionController::Caching::Pages::ClassMethods',
-            'ActionController::Caching::Sweeping',
-            'ActionController::Components',
-            'ActionController::Components::ClassMethods',
-            'ActionController::Components::InstanceMethods',
-            'ActionController::Cookies',
-            'ActionController::Filters::ClassMethods',
-            'ActionController::Flash',
-            'ActionController::Flash::FlashHash',
-            'ActionController::Helpers::ClassMethods',
-            'ActionController::Integration::Session',
-            'ActionController::IntegrationTest',
-            'ActionController::Layout::ClassMethods',
-            'ActionController::Macros',
-            'ActionController::Macros::AutoComplete::ClassMethods',
-            'ActionController::Macros::InPlaceEditing::ClassMethods',
-            'ActionController::MimeResponds::InstanceMethods',
-            'ActionController::Pagination',
-            'ActionController::Pagination::ClassMethods',
-            'ActionController::Pagination::Paginator',
-            'ActionController::Pagination::Paginator::Page',
-            'ActionController::Pagination::Paginator::Window',
-            'ActionController::Rescue', 'ActionController::Resources',
-            'ActionController::Routing',
-            'ActionController::Scaffolding::ClassMethods',
-            'ActionController::SessionManagement::ClassMethods',
-            'ActionController::Streaming', 'ActionController::TestProcess',
-            'ActionController::TestUploadedFile',
-            'ActionController::UrlWriter',
-            'ActionController::Verification::ClassMethods',
-            'ActionMailer::Base', 'ActionView::Base',
-            'ActionView::Helpers::ActiveRecordHelper',
-            'ActionView::Helpers::AssetTagHelper',
-            'ActionView::Helpers::BenchmarkHelper',
-            'ActionView::Helpers::CacheHelper',
-            'ActionView::Helpers::CaptureHelper',
-            'ActionView::Helpers::DateHelper',
-            'ActionView::Helpers::DebugHelper',
-            'ActionView::Helpers::FormHelper',
-            'ActionView::Helpers::FormOptionsHelper',
-            'ActionView::Helpers::FormTagHelper',
-            'ActionView::Helpers::JavaScriptHelper',
-            'ActionView::Helpers::JavaScriptMacrosHelper',
-            'ActionView::Helpers::NumberHelper',
-            'ActionView::Helpers::PaginationHelper',
-            'ActionView::Helpers::PrototypeHelper',
-            'ActionView::Helpers::PrototypeHelper::JavaScriptGenerator::GeneratorMethods',
-            'ActionView::Helpers::ScriptaculousHelper',
-            'ActionView::Helpers::TagHelper',
-            'ActionView::Helpers::TextHelper',
-            'ActionView::Helpers::UrlHelper', 'ActionView::Partials',
-            'ActionWebService::API::Method', 'ActionWebService::Base',
-            'ActionWebService::Client::Soap',
-            'ActionWebService::Client::XmlRpc',
-            'ActionWebService::Container::ActionController::ClassMethods',
-            'ActionWebService::Container::Delegated::ClassMethods',
-            'ActionWebService::Container::Direct::ClassMethods',
-            'ActionWebService::Invocation::ClassMethods',
-            'ActionWebService::Scaffolding::ClassMethods',
-            'ActionWebService::SignatureTypes', 'ActionWebService::Struct',
-            'ActiveRecord::Acts::List::ClassMethods',
-            'ActiveRecord::Acts::List::InstanceMethods',
-            'ActiveRecord::Acts::NestedSet::ClassMethods',
-            'ActiveRecord::Acts::NestedSet::InstanceMethods',
-            'ActiveRecord::Acts::Tree::ClassMethods',
-            'ActiveRecord::Acts::Tree::InstanceMethods',
-            'ActiveRecord::Aggregations::ClassMethods',
-            'ActiveRecord::Associations::ClassMethods',
-            'ActiveRecord::AttributeMethods::ClassMethods',
-            'ActiveRecord::Base',
-            'ActiveRecord::Calculations::ClassMethods',
-            'ActiveRecord::Callbacks',
-            'ActiveRecord::ConnectionAdapters::AbstractAdapter',
-            'ActiveRecord::ConnectionAdapters::Column',
-            'ActiveRecord::ConnectionAdapters::DB2Adapter',
-            'ActiveRecord::ConnectionAdapters::DatabaseStatements',
-            'ActiveRecord::ConnectionAdapters::FirebirdAdapter',
-            'ActiveRecord::ConnectionAdapters::FrontBaseAdapter',
-            'ActiveRecord::ConnectionAdapters::MysqlAdapter',
-            'ActiveRecord::ConnectionAdapters::OpenBaseAdapter',
-            'ActiveRecord::ConnectionAdapters::OracleAdapter',
-            'ActiveRecord::ConnectionAdapters::PostgreSQLAdapter',
-            'ActiveRecord::ConnectionAdapters::Quoting',
-            'ActiveRecord::ConnectionAdapters::SQLServerAdapter',
-            'ActiveRecord::ConnectionAdapters::SQLiteAdapter',
-            'ActiveRecord::ConnectionAdapters::SchemaStatements',
-            'ActiveRecord::ConnectionAdapters::SybaseAdapter::ColumnWithIdentity',
-            'ActiveRecord::ConnectionAdapters::SybaseAdapterContext',
-            'ActiveRecord::ConnectionAdapters::TableDefinition',
-            'ActiveRecord::Errors', 'ActiveRecord::Locking',
-            'ActiveRecord::Locking::Optimistic',
-            'ActiveRecord::Locking::Optimistic::ClassMethods',
-            'ActiveRecord::Locking::Pessimistic',
-            'ActiveRecord::Migration', 'ActiveRecord::Observer',
-            'ActiveRecord::Observing::ClassMethods',
-            'ActiveRecord::Reflection::ClassMethods',
-            'ActiveRecord::Reflection::MacroReflection',
-            'ActiveRecord::Schema', 'ActiveRecord::Timestamp',
-            'ActiveRecord::Transactions::ClassMethods',
-            'ActiveRecord::Validations',
-            'ActiveRecord::Validations::ClassMethods',
-            'ActiveRecord::XmlSerialization',
-            'ActiveSupport::CachingTools::HashCaching',
-            'ActiveSupport::CoreExtensions::Array::Conversions',
-            'ActiveSupport::CoreExtensions::Array::Grouping',
-            'ActiveSupport::CoreExtensions::Date::Conversions',
-            'ActiveSupport::CoreExtensions::Hash::Conversions',
-            'ActiveSupport::CoreExtensions::Hash::Conversions::ClassMethods',
-            'ActiveSupport::CoreExtensions::Hash::Diff',
-            'ActiveSupport::CoreExtensions::Hash::Keys',
-            'ActiveSupport::CoreExtensions::Hash::ReverseMerge',
-            'ActiveSupport::CoreExtensions::Integer::EvenOdd',
-            'ActiveSupport::CoreExtensions::Integer::Inflections',
-            'ActiveSupport::CoreExtensions::Numeric::Bytes',
-            'ActiveSupport::CoreExtensions::Numeric::Time',
-            'ActiveSupport::CoreExtensions::Pathname::CleanWithin',
-            'ActiveSupport::CoreExtensions::Range::Conversions',
-            'ActiveSupport::CoreExtensions::String::Access',
-            'ActiveSupport::CoreExtensions::String::Conversions',
-            'ActiveSupport::CoreExtensions::String::Inflections',
-            'ActiveSupport::CoreExtensions::String::Iterators',
-            'ActiveSupport::CoreExtensions::String::StartsEndsWith',
-            'ActiveSupport::CoreExtensions::String::Unicode',
-            'ActiveSupport::CoreExtensions::Time::Calculations',
-            'ActiveSupport::CoreExtensions::Time::Calculations::ClassMethods',
-            'ActiveSupport::CoreExtensions::Time::Conversions',
-            'ActiveSupport::Multibyte::Chars',
-            'ActiveSupport::Multibyte::Handlers::UTF8Handler',
-            'Breakpoint', 'Builder::BlankSlate', 'Builder::XmlMarkup',
-            'Fixtures',
-            'HTML::Selector', 'HashWithIndifferentAccess', 'Inflector',
-            'Inflector::Inflections', 'Mime', 'Mime::Type',
-            'OCI8AutoRecover', 'TimeZone', 'XmlSimple'
-            ),
-        5 => array(
-            'image_tag', 'link_to', 'link_to_remote', 'javascript_include_tag',
-            'assert_equal', 'assert_not_equal', 'before_filter',
-            'after_filter', 'render', 'redirect_to', 'hide_action',
-            'render_to_string', 'url_for', 'controller_name',
-            'controller_class_name', 'controller_path', 'session',
-            'render_component', 'render_component_as_string', 'cookie',
-            'layout', 'flash', 'auto_complete_for', 'in_place_editor_for',
-            'respond_to', 'paginate', 'current_page', 'each', 'first',
-            'first_page', 'last_page', 'last', 'length', 'new', 'page_count',
-            'previous', 'scaffold', 'send_data',
-            'send_file', 'deliver', 'receive', 'error_messages_for',
-            'error_message_on', 'form', 'input', 'stylesheet_link_tag',
-            'stylesheet_path', 'content_for', 'select_date', 'ago',
-            'month', 'day', 'check_box', 'fields_for', 'file_field',
-            'form_for', 'hidden_field', 'text_area', 'password_field',
-            'collection_select', 'options_for_select',
-            'options_from_collection_for_select', 'file_field_tag',
-            'form_for_tag', 'hidden_field_tag', 'text_area_tag',
-            'password_field_tag', 'link_to_function', 'javascript_tag',
-            'human_size', 'number_to_currency', 'pagination_links',
-            'form_remote_tag', 'form_remote_for',
-            'submit_to_remote', 'remote_function', 'observe_form',
-            'observe_field', 'remote_form_for', 'options_for_ajax', 'alert',
-            'call', 'assign', 'show', 'hide', 'insert_html', 'sortable',
-            'toggle', 'visual_effect', 'replace', 'replace_html', 'remove',
-            'save', 'save!', 'draggable', 'drop_receiving', 'literal',
-            'draggable_element', 'drop_receiving_element', 'sortable_element',
-            'content_tag', 'tag', 'link_to_image', 'link_to_if',
-            'link_to_unless', 'mail_to', 'link_image_to', 'button_to',
-            'current_page?', 'act_as_list', 'act_as_nested', 'act_as_tree',
-            'has_many', 'has_one', 'belongs_to', 'has_many_and_belogns_to',
-            'delete', 'destroy', 'destroy_all', 'clone', 'deep_clone', 'copy',
-            'update', 'table_name', 'primary_key', 'sum', 'maximun', 'minimum',
-            'count', 'size', 'after_save', 'after_create', 'before_save',
-            'before_create', 'add_to_base', 'errors', 'add', 'validate',
-            'validates_presence_of', 'validates_numericality_of',
-            'validates_uniqueness_of', 'validates_length_of',
-            'validates_format_of', 'validates_size_of', 'to_a', 'to_s',
-            'to_xml', 'to_i'
-            )
-        ),
-    'SYMBOLS' => array(
-        '(', ')', '[', ']', '{', '}', '%', '&', '*', '|', '/', '<', '>',
-        '+', '-', '=>', '<<'
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => true,
-        2 => true,
-        3 => true,
-        4 => true,
-        5 => true
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color:#9966CC; font-weight:bold;',
-            2 => 'color:#0000FF; font-weight:bold;',
-            3 => 'color:#CC0066; font-weight:bold;',
-            4 => 'color:#CC00FF; font-weight:bold;',
-            5 => 'color:#5A0A0A; font-weight:bold;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color:#008000; font-style:italic;',
-                    'MULTI' => 'color:#000080; font-style:italic;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color:#000099;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color:#006600; font-weight:bold;'
-            ),
-        'STRINGS' => array(
-            0 => 'color:#996600;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color:#006666;'
-            ),
-        'METHODS' => array(
-            1 => 'color:#9900CC;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color:#006600; font-weight:bold;'
-            ),
-        'REGEXPS' => array(
-            0 => 'color:#ff6633; font-weight:bold;',
-            1 => 'color:#0066ff; font-weight:bold;',
-            2 => 'color:#6666ff; font-weight:bold;',
-            3 => 'color:#ff3333; font-weight:bold;'
-            ),
-        'SCRIPT' => array(
-            0 => '',
-            1 => '',
-            2 => '',
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => '',
-        4 => '',
-        5 => ''
-        ),
-    'OOLANG' => true,
-    'OBJECT_SPLITTERS' => array(
-        1 => '.'
-        ),
-    'REGEXPS' => array(
-        0 => array(
-            GESHI_SEARCH => "([[:space:]])(\\$[a-zA-Z_][a-zA-Z0-9_]*)",
-            GESHI_REPLACE => '\\2',
-            GESHI_MODIFIERS => '',
-            GESHI_BEFORE => '\\1',
-            GESHI_AFTER => ''
-            ),
-        1 => array(
-            GESHI_SEARCH => "([[:space:]])(@[a-zA-Z_][a-zA-Z0-9_]*)",
-            GESHI_REPLACE => '\\2',
-            GESHI_MODIFIERS => '',
-            GESHI_BEFORE => '\\1',
-            GESHI_AFTER => ''
-            ),
-        2 => "([A-Z][a-zA-Z0-9_]*::)+[A-Z][a-zA-Z0-9_]*", //Static OOP References
-        3 => array(
-            GESHI_SEARCH => "([[:space:]]|\[|\()(:[a-zA-Z_][a-zA-Z0-9_]*)",
-            GESHI_REPLACE => '\\2',
-            GESHI_MODIFIERS => '',
-            GESHI_BEFORE => '\\1',
-            GESHI_AFTER => ''
-            )
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_MAYBE,
-    'SCRIPT_DELIMITERS' => array(
-        0 => array(
-            '<%' => '%>'
-            )
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        0 => true
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/rbs.php b/wiki/vendor/geshi/geshi/src/geshi/rbs.php
deleted file mode 100644
index 76610d1..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/rbs.php
+++ /dev/null
@@ -1,224 +0,0 @@
-<?php
-/*************************************************************************************
- * rbs.php
- * ------
- * Author: Deng Wen Gang (deng@priity.com)
- * Copyright: (c) 2013 Deng Wen Gang
- * Release Version: 1.0.9.0
- * Date Started: 2013/01/15
- *
- * RBScript language file for GeSHi.
- *
- * RBScript official website: http://docs.realsoftware.com/index.php/Rbscript
- *
- * CHANGES
- * -------
- * 2013/01/15 (1.0.0)
- *  -  First Release
- *
- * TODO
- * ----
- *
- *************************************************************************************
- *
- *     This file is part of GeSHi.
- *
- *   GeSHi is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   GeSHi is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with GeSHi; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- ************************************************************************************/
-
-$language_data = array (
-    'LANG_NAME' => 'RBScript',
-    'COMMENT_SINGLE' => array( 1 => '//', 2 => "'" ),
-    'COMMENT_MULTI' => array(),
-    'COMMENT_REGEXP' => array(
-        3 => '/REM\s.*$/im',
-        4 => '/&b[01]+/',
-        5 => '/&o[0-7]+/',
-        6 => '/&h[a-f0-9]+/i',
-        7 => '/&c[a-f0-9]+/i',
-        8 => '/&u[a-f0-9]+/i',
-        ),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array('"'),
-    'ESCAPE_CHAR' => '',
-    'KEYWORDS' => array(
-        1 => array(
-            'Int8', 'Int16', 'Int32', 'Int64', 'Uint8', 'Uint16', 'Uint32', 'Uint64', 'Byte', 'Integer',
-            'Single', 'Double', 'Boolean', 'String', 'Color', 'Object', 'Variant'
-            ),
-        2 => array(
-            'Private', 'Public', 'Protected',
-            'Sub', 'Function', 'Delegate', 'Exception',
-            ),
-        3 => array(
-            'IsA',
-            'And', 'Or', 'Not', 'Xor',
-            'If', 'Then', 'Else', 'ElseIf',
-            'Select', 'Case',
-            'For', 'Each', 'In', 'To', 'Step', 'Next',
-            'Do', 'Loop', 'Until',
-            'While', 'Wend',
-            'Continue', 'Exit', 'Goto', 'End',
-            ),
-        4 => array(
-            'Const', 'Static',
-            'Dim', 'As', 'Redim',
-            'Me', 'Self', 'Super', 'Extends', 'Implements',
-            'ByRef', 'ByVal', 'Assigns', 'ParamArray',
-            'Mod',
-            'Raise',
-            ),
-        5 => array(
-            'False', 'True', 'Nil'
-            ),
-        6 => array(
-            'Abs',
-            'Acos',
-            'Asc',
-            'AscB',
-            'Asin',
-            'Atan',
-            'Atan2',
-            'CDbl',
-            'Ceil',
-            'Chr',
-            'ChrB',
-            'CMY',
-            'Cos',
-            'CountFields',
-            'CStr',
-            'Exp',
-            'Floor',
-            'Format',
-            'Hex',
-            'HSV',
-            'InStr',
-            'InStrB',
-            'Left',
-            'LeftB',
-            'Len',
-            'LenB',
-            'Log',
-            'Lowercase',
-            'LTrim',
-            'Max',
-            'Microseconds',
-            'Mid',
-            'MidB',
-            'Min',
-            'NthField',
-            'Oct',
-            'Pow',
-            'Replace',
-            'ReplaceB',
-            'ReplaceAll',
-            'ReplaceAllB',
-            'RGB',
-            'Right',
-            'RightB',
-            'Rnd',
-            'Round',
-            'RTrim',
-            'Sin',
-            'Sqrt',
-            'Str',
-            'StrComp',
-            'Tan',
-            'Ticks',
-            'Titlecase',
-            'Trim',
-            'UBound',
-            'Uppercase',
-            'Val',
-            ),
-        ),
-    '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: #F660AB; font-weight: bold;',
-            2 => 'color: #E56717; font-weight: bold;',
-            3 => 'color: #8D38C9; font-weight: bold;',
-            4 => 'color: #151B8D; font-weight: bold;',
-            5 => 'color: #00C2FF; font-weight: bold;',
-            6 => 'color: #3EA99F; font-weight: bold;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #008000;',
-            2 => 'color: #008000;',
-            3 => 'color: #008000;',
-
-            4 => 'color: #800000;',
-            5 => 'color: #800000;',
-            6 => 'color: #800000;',
-            7 => 'color: #800000;',
-            8 => 'color: #800000;',
-            ),
-        'BRACKETS' => array(
-            ),
-        'STRINGS' => array(
-            0 => 'color: #800000;'
-            ),
-        'NUMBERS' => array(
-            ),
-        'METHODS' => array(
-            ),
-        'SYMBOLS' => array(
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #800000; font-weight: bold;'
-            ),
-        'SCRIPT' => array(
-            ),
-        'REGEXPS' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => '',
-        4 => '',
-        5 => '',
-        6 => ''
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(
-        ),
-    'REGEXPS' => array(
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        ),
-    'PARSER_CONTROL' => array(
-        'ENABLE_FLAGS' => array(
-            'BRACKETS' => GESHI_NEVER,
-            'SYMBOLS' => GESHI_NEVER,
-            'NUMBERS' => GESHI_NEVER
-            )
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/rebol.php b/wiki/vendor/geshi/geshi/src/geshi/rebol.php
deleted file mode 100644
index d11447a..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/rebol.php
+++ /dev/null
@@ -1,194 +0,0 @@
-<?php
-/*************************************************************************************
- * rebol.php
- * --------
- * Author: Lecanu Guillaume (Guillaume@LyA.fr)
- * Copyright: (c) 2004-2005 Lecanu Guillaume (Guillaume@LyA.fr)
- * Release Version: 1.0.9.0
- * Date Started: 2004/12/22
- *
- * Rebol language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2009/01/26 (1.0.8.3)
- *  -  Adapted language file to comply to GeSHi language file guidelines
- * 2004/11/25 (1.0.3)
- *  -  Added support for multiple object splitters
- *  -  Fixed &new problem
- * 2004/10/27 (1.0.2)
- *  -  Added URL support
- *  -  Added extra constants
- * 2004/08/05 (1.0.1)
- *  -  Added support for symbols
- * 2004/07/14 (1.0.0)
- *  -  First Release
- *
- * TODO (updated 2004/07/14)
- * -------------------------
- * * Make sure the last few function I may have missed
- *   (like eval()) are included for highlighting
- * * Split to several files - php4, php5 etc
- *
- *************************************************************************************
- *
- *     This file is part of GeSHi.
- *
- *   GeSHi is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   GeSHi is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with GeSHi; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- ************************************************************************************/
-
-$language_data = array (
-    'LANG_NAME' => 'REBOL',
-    'COMMENT_SINGLE' => array(1 => ';'),
-    'COMMENT_MULTI' => array('rebol [' => ']', 'comment [' => ']'),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array('"'),
-    'ESCAPE_CHAR' => '',
-    'KEYWORDS' => array(
-        1 => array(
-            'binary!','block!','char!','date!','decimal!','email!','file!',
-            'hash!','integer!','issue!','list!','logic!','money!','none!',
-            'object!','paren!','pair!','path!','string!','tag!','time!',
-            'tuple!','url!',
-            ),
-        2 => array(
-            'all','any','attempt','break','catch','compose','disarm','dispatch',
-            'do','do-events','does','either','else','exit','for','forall',
-            'foreach','forever','forskip','func','function','halt','has','if',
-            'launch','loop','next','quit','reduce','remove-each','repeat',
-            'return','secure','switch','throw','try','until','wait','while',
-            ),
-        3 => array(
-            'about','abs','absolute','add','alert','alias','alter','and',
-            'any-block?','any-function?','any-string?','any-type?','any-word?',
-            'append','arccosine','arcsine','arctangent','array','as-pair',
-            'ask','at','back','binary?','bind','bitset?','block?','brightness?',
-            'browse','build-tag','caret-to-offset','center-face','change',
-            'change-dir','char?','charset','checksum','choose','clean-path',
-            'clear','clear-fields','close','comment','complement','component?',
-            'compress','confirm','connected?','construct','context','copy',
-            'cosine','datatype?','date?','debase','decimal?','decode-cgi',
-            'decompress','dehex','delete','detab','difference','dir?','dirize',
-            'divide','dump-face','dump-obj','echo','email?','empty?','enbase',
-            'entab','equal?','error?','even?','event?','exclude','exists?',
-            'exp','extract','fifth','file?','find','first','flash','focus',
-            'form','found?','fourth','free','function?','get','get-modes',
-            'get-word?','greater-or-equal?','greater?','hash?','head','head?',
-            'help','hide','hide-popup','image?','import-email','in',
-            'in-window?','index?','info?','inform','input','input?','insert',
-            'integer?','intersect','issue?','join','last','layout','length?',
-            'lesser-or-equal?','lesser?','library?','license','link?',
-            'list-dir','list?','lit-path?','lit-word?','load','load-image',
-            'log-10','log-2','log-e','logic?','lowercase','make','make-dir',
-            'make-face','max','maximum','maximum-of','min','minimum',
-            'minimum-of','modified?','mold','money?','multiply','native?',
-            'negate','negative?','none?','not','not-equal?','now','number?',
-            'object?','odd?','offset-to-caret','offset?','op?','open','or',
-            'pair?','paren?','parse','parse-xml','path?','pick','poke','port?',
-            'positive?','power','prin','print','probe','protect',
-            'protect-system','query','random','read','read-io','recycle',
-            'refinement?','reform','rejoin','remainder','remold','remove',
-            'rename',
-            //'repeat',
-            'repend','replace','request','request-color','request-date',
-            'request-download','request-file','request-list','request-pass',
-            'request-text','resend','reverse','routine?','same?','save',
-            'script?','second','select','send','series?','set','set-modes',
-            'set-net','set-path?','set-word?','show','show-popup','sign?',
-            'sine','size-text','size?','skip','sort','source','span?',
-            'split-path','square-root','strict-equal?','strict-not-equal?',
-            'string?','struct?','stylize','subtract','suffix?','tag?','tail',
-            'tail?','tangent','third','time?','to','to-binary','to-bitset',
-            'to-block','to-char','to-date','to-decimal','to-email','to-file',
-            'to-get-word','to-hash','to-hex','to-idate','to-image','to-integer',
-            'to-issue','to-list','to-lit-path','to-lit-word','to-local-file',
-            'to-logic','to-money','to-pair','to-paren','to-path',
-            'to-rebol-file','to-refinement','to-set-path','to-set-word',
-            'to-string','to-tag','to-time','to-tuple','to-url','to-word',
-            'trace','trim','tuple?','type?','unfocus','union','unique',
-            'unprotect','unset','unset?','unview','update','upgrade',
-            'uppercase','url?','usage','use','value?','view','viewed?','what',
-            'what-dir','within?','word?','write','write-io','xor','zero?',
-            )
-        ),
-    'SYMBOLS' => array(
-        '(', ')', '[', ']', '{', '}', '!', '@', '%', '&', '*', '|', '/', '<', '>'
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false,
-        2 => false,
-        3 => false,
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #b1b100;',
-            2 => 'color: #000000; font-weight: bold;',
-            3 => 'color: #000066;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #808080; font-style: italic;',
-//            2 => 'color: #808080; font-style: italic;',
-            'MULTI' => 'color: #808080; font-style: italic;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #000099; font-weight: bold;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #66cc66;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #ff0000;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #cc66cc;'
-            ),
-        'METHODS' => array(
-            1 => 'color: #006600;',
-            2 => 'color: #006600;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #66cc66;'
-            ),
-        'REGEXPS' => array(
-            0 => 'color: #0000ff;'
-            ),
-        'SCRIPT' => array(
-            0 => '',
-            1 => '',
-            2 => '',
-            3 => ''
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => ''
-//        2 => 'includes/dico_rebol.php?word={FNAME}',
-//        3 => 'includes/dico_rebol.php?word={FNAME}'
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(
-        ),
-    'REGEXPS' => array(
-        0 => "[\\$]{1,2}[a-zA-Z_][a-zA-Z0-9_]*",
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/reg.php b/wiki/vendor/geshi/geshi/src/geshi/reg.php
deleted file mode 100644
index e73c961..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/reg.php
+++ /dev/null
@@ -1,231 +0,0 @@
-<?php
-/*************************************************************************************
- * reg.php
- * -------
- * Author: Sean Hanna (smokingrope@gmail.com)
- * Copyright: (c) 2006 Sean Hanna
- * Release Version: 1.0.9.0
- * Date Started: 03/15/2006
- *
- * Microsoft Registry Editor language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2008/05/23 (1.0.7.22)
- *  -  Added description of extra language features (SF#1970248)
- *  -  Updated and optimized most regular expressions
- * 03/15/2006 (0.5.0)
- *  -  Syntax File Created
- * 04/27/2006 (0.9.5)
- *  -  Syntax Coloring Cleaned Up
- *  -  First Release
- * 04/29/2006 (1.0.0)
- *  -  Updated a few coloring settings
- *
- * TODO (updated 4/27/2006)
- * -------------------------
- * - Add a verification to the multi-line portion of the hex field regex
- *    for a '\' character on the line preceding the line of the multi-line
- *    hex field.
- *
- * KNOWN ISSUES (updated 4/27/2006)
- * ---------------------------------
- *
- * - There are two regexes for the multiline hex value regex. The regex for
- *        all lines after the first does not verify that the previous line contains
- *        a line continuation character '\'. This regex also does not check for
- *        end of line as it should.
- *
- * - If number_highlighting is enabled during processing of this syntax file
- *    many of the regexps used will appear slightly incorrect.
- *
- *************************************************************************************
- *
- *     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' => 'Microsoft Registry',
-    'COMMENT_SINGLE' => array(1 =>';'),
-    'COMMENT_MULTI' => array( ),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array(),
-    'ESCAPE_CHAR' => '',
-    'KEYWORDS' => array(
-//        1 => array(),
-//        2 => array(),
-        /* Registry Key Constants Not Used */
-        3 => array(
-            'HKEY_LOCAL_MACHINE',
-            'HKEY_CLASSES_ROOT',
-            'HKEY_CURRENT_USER',
-            'HKEY_USERS',
-            'HKEY_CURRENT_CONFIG',
-            'HKEY_DYN_DATA',
-            'HKLM', 'HKCR', 'HKCU', 'HKU', 'HKCC', 'HKDD'
-            )
-        ),
-    'SYMBOLS' => array(
-        '='
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-//        1 => false,
-//        2 => false,
-        3 => false
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-//            1 => 'color: #00CCFF;',
-//            2 => 'color: #0000FF;',
-            3 => 'color: #800000;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #009900;'
-            ),
-        'ESCAPE_CHAR' => array(
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #000000;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #009900;'
-            ),
-        'NUMBERS' => array(
-            ),
-        'METHODS' => array(
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #000000;'
-            ),
-        'SCRIPT' => array(
-            ),
-        'REGEXPS' => array(
-            0 => 'color: #00CCFF;',
-            1 => 'color: #0000FF;',
-            2 => '',
-            3 => 'color: #0000FF;',
-            4 => 'color: #0000FF;',
-            5 => '',
-            6 => '',
-            7 => '',
-            8 => 'color: #FF6600;',
-            )
-        ),
-    'URLS' => array(
-//        1 => '',
-//        2 => '',
-        3 => ''
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(
-        ),
-    'REGEXPS' => array(
-        // Highlight Key Delimiters
-        0 => array(
-            GESHI_SEARCH => '((^|\\n)\\s*)(\\\\\\[(.*)\\\\\\])(\\s*(\\n|$))',
-            GESHI_REPLACE => '\\3',
-            GESHI_MODIFIERS => '',
-            GESHI_BEFORE => '\\1',
-            GESHI_AFTER => '\\5'
-//            GESHI_CLASS => 'kw1'
-            ),
-        // Highlight File Format Header Version 5
-        1 => array(
-            GESHI_SEARCH => '(^\s*)(Windows Registry Editor Version \d+\.\d+)(\s*$)',
-            GESHI_REPLACE => '\\2',
-            GESHI_MODIFIERS => 'm',
-            GESHI_BEFORE => '\\1',
-            GESHI_AFTER => '\\3',
-            GESHI_CLASS => 'geshi_registry_header'
-            ),
-        // Highlight File Format Header Version 4
-        2 => array(
-            GESHI_SEARCH => '(^\\s*)(REGEDIT\s?\d+)(\s*$)',
-            GESHI_REPLACE => '\\2',
-            GESHI_MODIFIERS => 'm',
-            GESHI_BEFORE => '\\1',
-            GESHI_AFTER => '\\3',
-            GESHI_CLASS => 'geshi_registry_header'
-            ),
-        // Highlight dword: 32 bit integer values
-        3 => array(
-            GESHI_SEARCH => '(=\s*)(dword:[0-9a-fA-F]{8})(\s*$)',
-            GESHI_REPLACE => '\\2',
-            GESHI_MODIFIERS => 'm',
-            GESHI_BEFORE => '\\1',
-            GESHI_AFTER => '\\3'
-//            GESHI_CLASS => 'kw2'
-            ),
-        // Highlight variable names
-        4 => array(
-            GESHI_SEARCH => '(^\s*)(\&quot;.*?\&quot;)(\s*=)',
-            GESHI_REPLACE => '\\2',
-            GESHI_MODIFIERS => 'm',
-            GESHI_BEFORE => '\\1',
-            GESHI_AFTER => '\\3',
-            GESHI_CLASS => 'geshi_variable'
-            ),
-        // Highlight String Values
-        5 => array(
-            GESHI_SEARCH => '(=\s*)(\&quot;.*?\&quot;)(\s*$)',
-            GESHI_REPLACE => '\\2',
-            GESHI_MODIFIERS => 'm',
-            GESHI_BEFORE => '\\1',
-            GESHI_AFTER => '\\3',
-            GESHI_CLASS => 'st0'
-            ),
-        // Highlight Hexadecimal Values (Single-Line and Multi-Line)
-        6 => array(
-            GESHI_SEARCH => '(=\s*\n?\s*)(hex:[0-9a-fA-F]{2}(,(\\\s*\n\s*)?[0-9a-fA-F]{2})*)',
-            GESHI_REPLACE => '\\2',
-            GESHI_MODIFIERS => 'm',
-            GESHI_BEFORE => '\\1',
-            GESHI_AFTER => '',
-            GESHI_CLASS => 'kw2'
-            ),
-        // Highlight Default Variable
-        7 => array(
-            GESHI_SEARCH => '(^\s*)(@)(\s*=)',
-            GESHI_REPLACE => '\\2',
-            GESHI_MODIFIERS => 'm',
-            GESHI_BEFORE => '\\1',
-            GESHI_AFTER => '\\3',
-            GESHI_CLASS => 'geshi_variable'
-            ),
-        // Highlight GUID's found anywhere.
-        8 => array(
-            GESHI_SEARCH => '(\{[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\})',
-            GESHI_REPLACE => '\\1',
-            GESHI_MODIFIERS => 'i',
-            GESHI_BEFORE => '',
-            GESHI_AFTER => '',
-            GESHI_CLASS => 'geshi_guid'
-            )
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        ),
-    'PARSER_CONTROL' => array(
-        'ENABLE_FLAGS' => array(
-            'NUMBERS' => GESHI_NEVER,
-        )
-    )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/rexx.php b/wiki/vendor/geshi/geshi/src/geshi/rexx.php
deleted file mode 100644
index 9e0a73e..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/rexx.php
+++ /dev/null
@@ -1,160 +0,0 @@
-<?php
-/*************************************************************************************
- * rexx.php
- * ---------------------------------
- * Author: Jon Wolfers (sahananda@windhorse.biz)
- * Contributors:
- *    - Walter Pachl (pachl@chello.at)
- * Copyright: (c) 2008 Jon Wolfers, (c) 2012 Walter Pachl
- * Release Version: 1.0.9.0
- * Date Started: 2008/01/07
- *
- * Rexx language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2012/07/29 (1.0.0)
- *    -  tried to get it syntactically right
- *
- * TODO (updated 2012/07/29)
- * -------------------------
- *   -  Get it working on rosettacode.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' => 'rexx',
-    'COMMENT_SINGLE' => array(1 => '--'),
-    'COMMENT_MULTI' => array('/*' => '*/'),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array("'", '"'),
-    'ESCAPE_CHAR' => '',
-    'KEYWORDS' => array(
-        1 => array(
-            'address', 'arg', 'attribute', 'call', 'constant', 'do',
-            'drop', 'exit', 'forward', 'if',
-            'interpret', 'iterate', 'leave', 'loop', 'nop', 'numeric',
-            'options', 'parse', 'procedure', 'pull', 'push', 'queue',
-            'raise', 'return', 'say', 'select', 'signal', 'trace'
-            ),
-        2 => array(
-            'by', 'digits', 'engineering', 'error', 'expose',
-            'failure', 'for', 'forever', 'form', 'fuzz', 'halt',
-            'name', 'novalue', 'off', 'on', 'over', 'scientific', 'source',
-            'syntax', 'to', 'until', 'upper', 'version',
-            'while', 'with'
-            ),
-        3 => array(
-            'else', 'end', 'otherwise', 'then', 'when'
-            ),
-        4 => array(
-            'rc', 'result', 'sigl'
-            ),
-        5 => array(
-            'placeholderforoorexxdirectives'
-            ),
-        6 => array(
-            'abbrev', 'abs', 'beep', 'bitand', 'bitor',
-            'bitxor', 'b2x', 'center', 'centre', 'changestr', 'charin',
-            'charout', 'chars', 'compare', 'condition', 'copies',
-            'countstr', 'c2d', 'c2x', 'datatype', 'date', 'delstr',
-            'delword', 'directory', 'd2c', 'd2x', 'endlocal',
-            'errortext', 'filespec', 'format', 'insert',
-            'lastpos', 'left', 'length', 'linein', 'lineout', 'lines',
-            'lower', 'max', 'min', 'overlay', 'pos', 'queued', 'random',
-            'reverse', 'right', 'rxfuncadd', 'rxfuncdrop', 'rxfuncquery',
-            'rxqueue', 'setlocal', 'sign', 'sourceline', 'space',
-            'stream', 'strip', 'substr', 'subword', 'symbol', 'time',
-            'translate', 'trunc', 'userid', 'value',
-            'var', 'verify', 'word', 'wordindex', 'wordlength', 'wordpos',
-            'words', 'xrange', 'x2b', 'x2c', 'x2d'
-            )
-        ),
-    'SYMBOLS' => array(
-        '(', ')', '<', '>', '=', '+', '-', '*', '**', '/', '|', '%', '^', '&', ':'
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => true,
-        1 => false,
-        2 => false,
-        3 => false,
-        4 => false,
-        5 => false,
-        6 => false
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #b1b100;',
-            2 => 'color: #ff0000; font-weight: bold;',
-            3 => 'color: #00ff00; font-weight: bold;',
-            4 => 'color: #0000ff; font-weight: bold;',
-            5 => 'color: #880088; font-weight: bold;',
-            6 => 'color: #888800; font-weight: bold;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #666666;',
-            'MULTI' => 'color: #808080;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #000099; font-weight: bold;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #66cc66;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #ff0000;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #cc66cc;'
-            ),
-        'METHODS' => array(
-            1 => 'color: #202020;',
-            2 => 'color: #202020;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #66cc66;'
-            ),
-        'REGEXPS' => array(
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => '',
-        4 => '',
-        5 => '',
-        6 => ''
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(
-        1 => '.'
-        ),
-    'REGEXPS' => array(
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        ),
-    'TAB_WIDTH' => 4
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/robots.php b/wiki/vendor/geshi/geshi/src/geshi/robots.php
deleted file mode 100644
index 91fd87e..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/robots.php
+++ /dev/null
@@ -1,98 +0,0 @@
-<?php
-/*************************************************************************************
- * robots.php
- * --------
- * Author: Christian Lescuyer (cl@goelette.net)
- * Copyright: (c) 2006 Christian Lescuyer http://xtian.goelette.info
- * Release Version: 1.0.9.0
- * Date Started: 2006/02/17
- *
- * robots.txt language file for GeSHi.
- *
- * 2006/02/17 (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' => 'robots.txt',
-    'COMMENT_SINGLE' => array(1 => '#'),
-    'COMMENT_MULTI' => array(),
-    'COMMENT_REGEXP' => array(1 => "/^Comment:.*?/m"),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array(),
-    'ESCAPE_CHAR' => '',
-    'KEYWORDS' => array(
-        1 => array(
-            'Allow', 'Crawl-delay', 'Disallow', 'Request-rate', 'Robot-version',
-            'Sitemap', 'User-agent', 'Visit-time'
-            )
-        ),
-    'SYMBOLS' => array(
-        ':'
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => true
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #b1b100;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #808080; font-style: italic;',
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #000099; font-weight: bold;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #66cc66;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #ff0000;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #cc66cc;'
-            ),
-        'METHODS' => array(
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #66cc66;'
-            ),
-        'REGEXPS' => array(
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => 'http://www.robotstxt.org/wc/norobots.html'
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(
-        ),
-    'REGEXPS' => array(
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/rpmspec.php b/wiki/vendor/geshi/geshi/src/geshi/rpmspec.php
deleted file mode 100644
index 55d722d..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/rpmspec.php
+++ /dev/null
@@ -1,131 +0,0 @@
-<?php
-/*************************************************************************************
- * rpmspec.php
- * ---------------------------------
- * Author: Paul Grinberg (gri6507 TA unity-linux TOD org)
- * Copyright: (c) 2010 Paul Grinberg
- * Release Version: 1.0.9.0
- * Date Started: 2010/04/27
- *
- * RPM Spec language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2010/04/27 (0.1)
- *  -  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' => 'RPM Specification File',
-    'COMMENT_SINGLE' => array(1 => '#'),
-    'COMMENT_MULTI' => array(),
-    'QUOTEMARKS' => array('"','`'),
-    'ESCAPE_CHAR' => '\\',
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        ),
-    'KEYWORDS' => array(
-        ),
-    'SYMBOLS' => array(
-        '<', '>', '=',
-        '!', '@', '~', '&', '|', '^',
-        '+','-', '*', '/', '%',
-        ',', ';', '?', '.', ':'
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            ),
-        '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: #ff0000;',
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #cc66cc;'
-            ),
-        'METHODS' => array(
-            1 => 'color: #006600;',
-            2 => 'color: #006600;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #339933;'
-            ),
-        'REGEXPS' => array(
-            1 => 'color: #0000ff;',
-            2 => 'color: #009999;',
-            3 => 'color: #000000; font-weight: bold;',
-            4 => 'color: #ff6600; font-style: italic;',
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'REGEXPS' => array(
-        1 => array(
-            // search for generic macros
-            GESHI_SEARCH => '(%{?[a-zA-Z0-9_]+}?)',
-            GESHI_REPLACE => '\\1',
-            GESHI_MODIFIERS => '',
-            GESHI_BEFORE => '',
-            GESHI_AFTER => '',
-            ),
-        2 => array(
-            // search for special macros
-            GESHI_SEARCH => '(%(?:define|patch\d*|mklibname|mkrel|configure\S+|makeinstall\S+|make_session|make|defattr|config|doc|setup))',
-            GESHI_REPLACE => '\\1',
-            GESHI_MODIFIERS => 'i',
-            GESHI_BEFORE => '',
-            GESHI_AFTER => '',
-            ),
-        3 => array (
-            // special definitions
-            GESHI_SEARCH => '((?:summary|license|buildroot|buildrequires|provides|version|release|source\d*|group|buildarch|autoreqprov|provides|obsoletes|vendor|distribution|suggests|autoreq|autoprov|conflicts|name|url|requires|patch\d*):)',
-            GESHI_REPLACE => '\\1',
-            GESHI_MODIFIERS => 'i',
-            GESHI_BEFORE => '',
-            GESHI_AFTER => '',
-            ),
-        4 => array (
-            // section delimiting words
-            GESHI_SEARCH => '(%(?:description|package|prep|build|install|clean|postun|preun|post|pre|files|changelog))',
-            GESHI_REPLACE => '\\1',
-            GESHI_MODIFIERS => 'i',
-            GESHI_BEFORE => '',
-            GESHI_AFTER => '',
-            ),
-        ),
-    'URLS' => array(),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(),
-    'HIGHLIGHT_STRICT_BLOCK' => array(),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(),
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/rsplus.php b/wiki/vendor/geshi/geshi/src/geshi/rsplus.php
deleted file mode 100644
index 6c8771d..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/rsplus.php
+++ /dev/null
@@ -1,481 +0,0 @@
-<?php
-/*************************************************************************************
- * rsplus.php
- * ———–
- * Author: Ron Fredericks (ronf@LectureMaker.com)
- * Contributors:
- *  - 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.9.0
- * Date Started: 2009/03/28
- *
- * R language file for GeSHi.
- *
- * CHANGES
- * ——-
- * 2009/04/06
- *   -  Add references to Sekhon’s R Package docs
- * 2009/03/29 (1.0.8.5)
- *   -  First Release
- * 2009/07/16 (1.0.8.6)
- *   - Added functions from base packages (Benilton Carvalho - carvalho@bclab.org)
- *
- * References
- * ———-
- * Some online R Package documentation:
- *     http://sekhon.berkeley.edu/library/index.html         2.4 docs
- *     http://astrostatistics.psu.edu/su07/R/html            2.5 docs
- *
- * Another R GeSHi with no meat?
- *     http://organicdesign.co.nz/GeSHi/R.php
- * SourceForge R discussion:
- *     http://sourceforge.net/tracker/?func=detail&aid=2276025&group_id=114997&atid=670234
- *
- * TODO (updated 2007/02/06)
- * -------------------------
- *
- *************************************************************************************
- *
- *     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' => 'R / S+',
-    'COMMENT_SINGLE' => array(1 => '#'),
-    'COMMENT_MULTI' => array(),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array('"', "'"),
-    'ESCAPE_CHAR' => '\\',
-    'KEYWORDS' => array(
-        1 => array(
-            'else','global','in', 'otherwise','persistent',
-            ),
-        2 => array( // base package
-            '$.package_version', '$<-', '$<-.data.frame', 'abbreviate', 'abs', 'acos', 'acosh', 'addNA', 'addTaskCallback',
-            'agrep', 'alist', 'all', 'all.equal', 'all.equal.character', 'all.equal.default', 'all.equal.factor',
-            'all.equal.formula', 'all.equal.language', 'all.equal.list', 'all.equal.numeric', 'all.equal.POSIXct',
-            'all.equal.raw', 'all.names', 'all.vars', 'any', 'aperm', 'append', 'apply', 'Arg', 'args', 'array', 'as.array',
-            'as.array.default', 'as.call', 'as.character', 'as.character.condition', 'as.character.Date', 'as.character.default',
-            'as.character.error', 'as.character.factor', 'as.character.hexmode', 'as.character.numeric_version', 'as.character.octmode',
-            'as.character.POSIXt', 'as.character.srcref', 'as.complex', 'as.data.frame', 'as.data.frame.array', 'as.data.frame.AsIs',
-            'as.data.frame.character', 'as.data.frame.complex', 'as.data.frame.data.frame', 'as.data.frame.Date', 'as.data.frame.default',
-            'as.data.frame.difftime', 'as.data.frame.factor', 'as.data.frame.integer', 'as.data.frame.list', 'as.data.frame.logical',
-            'as.data.frame.matrix', 'as.data.frame.model.matrix', 'as.data.frame.numeric', 'as.data.frame.numeric_version',
-            'as.data.frame.ordered', 'as.data.frame.POSIXct', 'as.data.frame.POSIXlt', 'as.data.frame.raw', 'as.data.frame.table',
-            'as.data.frame.ts', 'as.data.frame.vector', 'as.Date', 'as.Date.character', 'as.Date.date', 'as.Date.dates',
-            'as.Date.default', 'as.Date.factor', 'as.Date.numeric', 'as.Date.POSIXct', 'as.Date.POSIXlt', 'as.difftime', 'as.double',
-            'as.double.difftime', 'as.double.POSIXlt', 'as.environment', 'as.expression', 'as.expression.default', 'as.factor',
-            'as.function', 'as.function.default', 'as.hexmode', 'as.integer', 'as.list', 'as.list.data.frame', 'as.list.default',
-            'as.list.environment', 'as.list.factor', 'as.list.function', 'as.list.numeric_version', 'as.logical', 'as.matrix',
-            'as.matrix.data.frame', 'as.matrix.default', 'as.matrix.noquote', 'as.matrix.POSIXlt', 'as.name', 'as.null', 'as.null.default',
-            'as.numeric', 'as.numeric_version', 'as.octmode', 'as.ordered', 'as.package_version', 'as.pairlist', 'as.POSIXct',
-            'as.POSIXct.date', 'as.POSIXct.Date', 'as.POSIXct.dates', 'as.POSIXct.default', 'as.POSIXct.numeric', 'as.POSIXct.POSIXlt',
-            'as.POSIXlt', 'as.POSIXlt.character', 'as.POSIXlt.date', 'as.POSIXlt.Date', 'as.POSIXlt.dates', 'as.POSIXlt.default',
-            'as.POSIXlt.factor', 'as.POSIXlt.numeric', 'as.POSIXlt.POSIXct', 'as.qr', 'as.raw', 'as.real', 'as.single',
-            'as.single.default', 'as.symbol', 'as.table', 'as.table.default', 'as.vector', 'as.vector.factor', 'asin', 'asinh',
-            'asNamespace', 'asS4', 'assign', 'atan', 'atan2', 'atanh', 'attach', 'attachNamespace', 'attr', 'attr.all.equal',
-            'attr<-', 'attributes', 'attributes<-', 'autoload', 'autoloader', 'backsolve', 'baseenv', 'basename', 'besselI',
-            'besselJ', 'besselK', 'besselY', 'beta', 'bindingIsActive', 'bindingIsLocked', 'bindtextdomain', 'body', 'body<-',
-            'bquote', 'break', 'browser', 'builtins', 'by', 'by.data.frame', 'by.default', 'bzfile', 'c', 'c.Date', 'c.noquote',
-            'c.numeric_version', 'c.POSIXct', 'c.POSIXlt', 'call', 'callCC', 'capabilities', 'casefold', 'cat', 'category',
-            'cbind', 'cbind.data.frame', 'ceiling', 'char.expand', 'character', 'charmatch', 'charToRaw', 'chartr', 'check_tzones',
-            'chol', 'chol.default', 'chol2inv', 'choose', 'class', 'class<-', 'close', 'close.connection', 'close.srcfile',
-            'closeAllConnections', 'codes', 'codes.factor', 'codes.ordered', 'codes<-', 'col', 'colMeans', 'colnames',
-            'colnames<-', 'colSums', 'commandArgs', 'comment', 'comment<-', 'complex', 'computeRestarts', 'conditionCall',
-            'conditionCall.condition', 'conditionMessage', 'conditionMessage.condition', 'conflicts', 'Conj', 'contributors',
-            'cos', 'cosh', 'crossprod', 'Cstack_info', 'cummax', 'cummin', 'cumprod', 'cumsum', 'cut', 'cut.Date', 'cut.default',
-            'cut.POSIXt', 'data.class', 'data.frame', 'data.matrix', 'date', 'debug', 'default.stringsAsFactors', 'delay',
-            'delayedAssign', 'deparse', 'det', 'detach', 'determinant', 'determinant.matrix', 'dget', 'diag', 'diag<-', 'diff',
-            'diff.Date', 'diff.default', 'diff.POSIXt', 'difftime', 'digamma', 'dim', 'dim.data.frame', 'dim<-', 'dimnames',
-            'dimnames.data.frame', 'dimnames<-', 'dimnames<-.data.frame', 'dir', 'dir.create', 'dirname', 'do.call', 'double',
-            'dput', 'dQuote', 'drop', 'dump', 'duplicated', 'duplicated.array', 'duplicated.data.frame', 'duplicated.default',
-            'duplicated.matrix', 'duplicated.numeric_version', 'duplicated.POSIXlt', 'dyn.load', 'dyn.unload', 'eapply', 'eigen',
-            'emptyenv', 'encodeString', 'Encoding', 'Encoding<-', 'env.profile', 'environment', 'environment<-', 'environmentIsLocked',
-            'environmentName', 'eval', 'eval.parent', 'evalq', 'exists', 'exp', 'expand.grid', 'expm1', 'expression', 'F', 'factor',
-            'factorial', 'fifo', 'file', 'file.access', 'file.append', 'file.choose', 'file.copy', 'file.create', 'file.exists',
-            'file.info', 'file.path', 'file.remove', 'file.rename', 'file.show', 'file.symlink', 'Filter', 'Find', 'findInterval',
-            'findPackageEnv', 'findRestart', 'floor', 'flush', 'flush.connection', 'for', 'force', 'formals', 'formals<-',
-            'format', 'format.AsIs', 'format.char', 'format.data.frame', 'format.Date', 'format.default', 'format.difftime',
-            'format.factor', 'format.hexmode', 'format.info', 'format.octmode', 'format.POSIXct', 'format.POSIXlt',
-            'format.pval', 'formatC', 'formatDL', 'forwardsolve', 'function', 'gamma', 'gammaCody', 'gc', 'gc.time',
-            'gcinfo', 'gctorture', 'get', 'getAllConnections', 'getCallingDLL', 'getCallingDLLe', 'getCConverterDescriptions',
-            'getCConverterStatus', 'getConnection', 'getDLLRegisteredRoutines', 'getDLLRegisteredRoutines.character',
-            'getDLLRegisteredRoutines.DLLInfo', 'getenv', 'geterrmessage', 'getExportedValue', 'getHook', 'getLoadedDLLs',
-            'getNamespace', 'getNamespaceExports', 'getNamespaceImports', 'getNamespaceInfo', 'getNamespaceName',
-            'getNamespaceUsers', 'getNamespaceVersion', 'getNativeSymbolInfo', 'getNumCConverters', 'getOption', 'getRversion',
-            'getSrcLines', 'getTaskCallbackNames', 'gettext', 'gettextf', 'getwd', 'gl', 'globalenv', 'gregexpr', 'grep',
-            'grepl', 'gsub', 'gzcon', 'gzfile', 'httpclient', 'I', 'iconv', 'iconvlist', 'icuSetCollate', 'identical', 'identity',
-            'if', 'ifelse', 'Im', 'importIntoEnv', 'inherits', 'integer', 'interaction', 'interactive', 'intersect', 'intToBits',
-            'intToUtf8', 'inverse.rle', 'invisible', 'invokeRestart', 'invokeRestartInteractively', 'is.array', 'is.atomic',
-            'is.call', 'is.character', 'is.complex', 'is.data.frame', 'is.double', 'is.element', 'is.environment',
-            'is.expression', 'is.factor', 'is.finite', 'is.function', 'is.infinite', 'is.integer', 'is.language',
-            'is.list', 'is.loaded', 'is.logical', 'is.matrix', 'is.na', 'is.na.data.frame', 'is.na.POSIXlt', 'is.na<-',
-            'is.na<-.default', 'is.na<-.factor', 'is.name', 'is.nan', 'is.null', 'is.numeric', 'is.numeric_version',
-            'is.numeric.Date', 'is.numeric.POSIXt', 'is.object', 'is.ordered', 'is.package_version', 'is.pairlist', 'is.primitive',
-            'is.qr', 'is.R', 'is.raw', 'is.real', 'is.recursive', 'is.single', 'is.symbol', 'is.table', 'is.unsorted', 'is.vector',
-            'isBaseNamespace', 'isdebugged', 'isIncomplete', 'isNamespace', 'ISOdate', 'ISOdatetime', 'isOpen', 'isRestart', 'isS4',
-            'isSeekable', 'isSymmetric', 'isSymmetric.matrix', 'isTRUE', 'jitter', 'julian', 'julian.Date', 'julian.POSIXt', 'kappa',
-            'kappa.default', 'kappa.lm', 'kappa.qr', 'kappa.tri', 'kronecker', 'l10n_info', 'La.chol', 'La.chol2inv', 'La.eigen',
-            'La.svd', 'labels', 'labels.default', 'lapply', 'lazyLoad', 'lazyLoadDBfetch', 'lbeta', 'lchoose', 'length', 'length<-',
-            'length<-.factor', 'letters', 'LETTERS', 'levels', 'levels.default', 'levels<-', 'levels<-.factor', 'lfactorial', 'lgamma',
-            'library', 'library.dynam', 'library.dynam.unload', 'licence', 'license', 'list', 'list.files', 'load', 'loadedNamespaces',
-            'loadingNamespaceInfo', 'loadNamespace', 'loadURL', 'local', 'lockBinding', 'lockEnvironment', 'log', 'log10', 'log1p', 'log2',
-            'logb', 'logical', 'lower.tri', 'ls', 'machine', 'Machine', 'make.names', 'make.unique', 'makeActiveBinding', 'manglePackageName',
-            'Map', 'mapply', 'margin.table', 'mat.or.vec', 'match', 'match.arg', 'match.call', 'match.fun', 'Math.data.frame', 'Math.Date',
-            'Math.difftime', 'Math.factor', 'Math.POSIXt', 'matrix', 'max', 'max.col', 'mean', 'mean.data.frame', 'mean.Date', 'mean.default',
-            'mean.difftime', 'mean.POSIXct', 'mean.POSIXlt', 'mem.limits', 'memory.profile', 'merge', 'merge.data.frame', 'merge.default',
-            'message', 'mget', 'min', 'missing', 'Mod', 'mode', 'mode<-', 'month.abb', 'month.name', 'months', 'months.Date',
-            'months.POSIXt', 'mostattributes<-', 'names', 'names<-', 'namespaceExport', 'namespaceImport', 'namespaceImportClasses',
-            'namespaceImportFrom', 'namespaceImportMethods', 'nargs', 'nchar', 'ncol', 'NCOL', 'Negate', 'new.env', 'next', 'NextMethod',
-            'ngettext', 'nlevels', 'noquote', 'nrow', 'NROW', 'numeric', 'numeric_version', 'nzchar', 'objects', 'oldClass',
-            'oldClass<-', 'on.exit', 'open', 'open.connection', 'open.srcfile', 'open.srcfilecopy', 'Ops.data.frame', 'Ops.Date',
-            'Ops.difftime', 'Ops.factor', 'Ops.numeric_version', 'Ops.ordered', 'Ops.POSIXt', 'options', 'order', 'ordered',
-            'outer', 'package_version', 'package.description', 'packageEvent', 'packageHasNamespace', 'packageStartupMessage',
-            'packBits', 'pairlist', 'parent.env', 'parent.env<-', 'parent.frame', 'parse', 'parse.dcf', 'parseNamespaceFile',
-            'paste', 'path.expand', 'pentagamma', 'pi', 'pipe', 'Platform', 'pmatch', 'pmax', 'pmax.int', 'pmin', 'pmin.int',
-            'polyroot', 'pos.to.env', 'Position', 'pretty', 'prettyNum', 'print', 'print.AsIs', 'print.atomic', 'print.by',
-            'print.condition', 'print.connection', 'print.data.frame', 'print.Date', 'print.default', 'print.difftime',
-            'print.DLLInfo', 'print.DLLInfoList', 'print.DLLRegisteredRoutines', 'print.factor', 'print.hexmode', 'print.libraryIQR',
-            'print.listof', 'print.NativeRoutineList', 'print.noquote', 'print.numeric_version', 'print.octmode', 'print.packageInfo',
-            'print.POSIXct', 'print.POSIXlt', 'print.proc_time', 'print.restart', 'print.rle', 'print.simple.list',
-            'print.srcfile', 'print.srcref', 'print.summary.table', 'print.table', 'print.warnings', 'printNoClass',
-            'prmatrix', 'proc.time', 'prod', 'prop.table', 'provide', 'psigamma', 'pushBack', 'pushBackLength', 'q', 'qr',
-            'qr.coef', 'qr.default', 'qr.fitted', 'qr.Q', 'qr.qty', 'qr.qy', 'qr.R', 'qr.resid', 'qr.solve', 'qr.X', 'quarters',
-            'quarters.Date', 'quarters.POSIXt', 'quit', 'quote', 'R_system_version', 'R.home', 'R.version', 'R.Version',
-            'R.version.string', 'range', 'range.default', 'rank', 'rapply', 'raw', 'rawConnection', 'rawConnectionValue',
-            'rawShift', 'rawToBits', 'rawToChar', 'rbind', 'rbind.data.frame', 'rcond', 'Re', 'read.dcf', 'read.table.url',
-            'readBin', 'readChar', 'readline', 'readLines', 'real', 'Recall', 'Reduce', 'reg.finalizer', 'regexpr',
-            'registerS3method', 'registerS3methods', 'remove', 'removeCConverter', 'removeTaskCallback', 'rep', 'rep.Date',
-            'rep.factor', 'rep.int', 'rep.numeric_version', 'rep.POSIXct', 'rep.POSIXlt', 'repeat', 'replace', 'replicate',
-            'require', 'restart', 'restartDescription', 'restartFormals', 'retracemem', 'return', 'rev', 'rev.default', 'rle',
-            'rm', 'RNGkind', 'RNGversion', 'round', 'round.Date', 'round.difftime', 'round.POSIXt', 'row', 'row.names',
-            'row.names.data.frame', 'row.names.default', 'row.names<-', 'row.names<-.data.frame', 'row.names<-.default',
-            'rowMeans', 'rownames', 'rownames<-', 'rowsum', 'rowsum.data.frame', 'rowsum.default', 'rowSums', 'sample',
-            'sample.int', 'sapply', 'save', 'save.image', 'saveNamespaceImage', 'scale', 'scale.default', 'scan', 'scan.url',
-            'search', 'searchpaths', 'seek', 'seek.connection', 'seq', 'seq_along', 'seq_len', 'seq.Date', 'seq.default',
-            'seq.int', 'seq.POSIXt', 'sequence', 'serialize', 'set.seed', 'setCConverterStatus', 'setdiff', 'setequal',
-            'setHook', 'setNamespaceInfo', 'setSessionTimeLimit', 'setTimeLimit', 'setwd', 'showConnections', 'shQuote',
-            'sign', 'signalCondition', 'signif', 'simpleCondition', 'simpleError', 'simpleMessage', 'simpleWarning', 'sin',
-            'single', 'sinh', 'sink', 'sink.number', 'slice.index', 'socketConnection', 'socketSelect', 'solve', 'solve.default',
-            'solve.qr', 'sort', 'sort.default', 'sort.int', 'sort.list', 'sort.POSIXlt', 'source', 'source.url', 'split',
-            'split.data.frame', 'split.Date', 'split.default', 'split.POSIXct', 'split<-', 'split<-.data.frame', 'split<-.default',
-            'sprintf', 'sqrt', 'sQuote', 'srcfile', 'srcfilecopy', 'srcref', 'standardGeneric', 'stderr', 'stdin', 'stdout',
-            'stop', 'stopifnot', 'storage.mode', 'storage.mode<-', 'strftime', 'strptime', 'strsplit', 'strtrim', 'structure',
-            'strwrap', 'sub', 'subset', 'subset.data.frame', 'subset.default', 'subset.matrix', 'substitute', 'substr',
-            'substr<-', 'substring', 'substring<-', 'sum', 'summary', 'summary.connection', 'summary.data.frame',
-            'Summary.data.frame', 'summary.Date', 'Summary.Date', 'summary.default', 'Summary.difftime',
-            'summary.factor', 'Summary.factor', 'summary.matrix', 'Summary.numeric_version', 'summary.POSIXct',
-            'Summary.POSIXct', 'summary.POSIXlt', 'Summary.POSIXlt', 'summary.table', 'suppressMessages',
-            'suppressPackageStartupMessages', 'suppressWarnings', 'svd', 'sweep', 'switch', 'symbol.C',
-            'symbol.For', 'sys.call', 'sys.calls', 'Sys.chmod', 'Sys.Date', 'sys.frame', 'sys.frames',
-            'sys.function', 'Sys.getenv', 'Sys.getlocale', 'Sys.getpid', 'Sys.glob', 'Sys.info', 'sys.load.image',
-            'Sys.localeconv', 'sys.nframe', 'sys.on.exit', 'sys.parent', 'sys.parents', 'Sys.putenv',
-            'sys.save.image', 'Sys.setenv', 'Sys.setlocale', 'Sys.sleep', 'sys.source', 'sys.status',
-            'Sys.time', 'Sys.timezone', 'Sys.umask', 'Sys.unsetenv', 'Sys.which', 'system', 'system.file',
-            'system.time', 't', 'T', 't.data.frame', 't.default', 'table', 'tabulate', 'tan', 'tanh', 'tapply',
-            'taskCallbackManager', 'tcrossprod', 'tempdir', 'tempfile', 'testPlatformEquivalence', 'tetragamma',
-            'textConnection', 'textConnectionValue', 'tolower', 'topenv', 'toString', 'toString.default', 'toupper',
-            'trace', 'traceback', 'tracemem', 'tracingState', 'transform', 'transform.data.frame', 'transform.default',
-            'trigamma', 'trunc', 'trunc.Date', 'trunc.POSIXt', 'truncate', 'truncate.connection', 'try', 'tryCatch',
-            'typeof', 'unclass', 'undebug', 'union', 'unique', 'unique.array', 'unique.data.frame', 'unique.default',
-            'unique.matrix', 'unique.numeric_version', 'unique.POSIXlt', 'units', 'units.difftime', 'units<-',
-            'units<-.difftime', 'unix', 'unix.time', 'unlink', 'unlist', 'unloadNamespace', 'unlockBinding',
-            'unname', 'unserialize', 'unsplit', 'untrace', 'untracemem', 'unz', 'upper.tri', 'url', 'UseMethod',
-            'utf8ToInt', 'vector', 'Vectorize', 'version', 'Version', 'warning', 'warnings', 'weekdays',
-            'weekdays.Date', 'weekdays.POSIXt', 'which', 'which.max', 'which.min', 'while', 'with',
-            'with.default', 'withCallingHandlers', 'within', 'within.data.frame', 'within.list', 'withRestarts',
-            'withVisible', 'write', 'write.dcf', 'write.table0', 'writeBin', 'writeChar', 'writeLines', 'xor',
-            'xpdrows.data.frame', 'xtfrm', 'xtfrm.Date', 'xtfrm.default', 'xtfrm.factor', 'xtfrm.numeric_version',
-            'xtfrm.POSIXct', 'xtfrm.POSIXlt', 'xtfrm.Surv', 'zapsmall',
-            ),
-        3 => array( // Datasets
-            'ability.cov', 'airmiles', 'AirPassengers', 'airquality',
-            'anscombe', 'attenu', 'attitude', 'austres', 'beaver1',
-            'beaver2', 'BJsales', 'BJsales.lead', 'BOD', 'cars',
-            'ChickWeight', 'chickwts', 'co2', 'crimtab',
-            'discoveries', 'DNase', 'esoph', 'euro', 'euro.cross',
-            'eurodist', 'EuStockMarkets', 'faithful', 'fdeaths',
-            'Formaldehyde', 'freeny', 'freeny.x', 'freeny.y',
-            'HairEyeColor', 'Harman23.cor', 'Harman74.cor', 'Indometh',
-            'infert', 'InsectSprays', 'iris', 'iris3', 'islands',
-            'JohnsonJohnson', 'LakeHuron', 'ldeaths', 'lh', 'LifeCycleSavings',
-            'Loblolly', 'longley', 'lynx', 'mdeaths', 'morley', 'mtcars',
-            'nhtemp', 'Nile', 'nottem', 'occupationalStatus', 'Orange',
-            'OrchardSprays', 'PlantGrowth', 'precip', 'presidents',
-            'pressure', 'Puromycin', 'quakes', 'randu', 'rivers', 'rock',
-            'Seatbelts', 'sleep', 'stack.loss', 'stack.x', 'stackloss',
-            'state.abb', 'state.area', 'state.center', 'state.division',
-            'state.name', 'state.region', 'state.x77', 'sunspot.month',
-            'sunspot.year', 'sunspots', 'swiss', 'Theoph', 'Titanic', 'ToothGrowth',
-            'treering', 'trees', 'UCBAdmissions', 'UKDriverDeaths', 'UKgas',
-            'USAccDeaths', 'USArrests', 'USJudgeRatings', 'USPersonalExpenditure',
-            'uspop', 'VADeaths', 'volcano', 'warpbreaks', 'women', 'WorldPhones',
-            'WWWusage',
-            ),
-        4 => array( // graphics package
-            'abline', 'arrows', 'assocplot', 'axis', 'Axis', 'axis.Date', 'axis.POSIXct',
-            'axTicks', 'barplot', 'barplot.default', 'box', 'boxplot', 'boxplot.default',
-            'boxplot.matrix', 'bxp', 'cdplot', 'clip', 'close.screen', 'co.intervals',
-            'contour', 'contour.default', 'coplot', 'curve', 'dotchart', 'erase.screen',
-            'filled.contour', 'fourfoldplot', 'frame', 'grconvertX', 'grconvertY', 'grid',
-            'hist', 'hist.default', 'identify', 'image', 'image.default', 'layout',
-            'layout.show', 'lcm', 'legend', 'lines', 'lines.default', 'locator', 'matlines',
-            'matplot', 'matpoints', 'mosaicplot', 'mtext', 'pairs', 'pairs.default',
-            'panel.smooth', 'par', 'persp', 'pie', 'piechart', 'plot', 'plot.default',
-            'plot.design', 'plot.new', 'plot.window', 'plot.xy', 'points', 'points.default',
-            'polygon', 'rect', 'rug', 'screen', 'segments', 'smoothScatter', 'spineplot',
-            'split.screen', 'stars', 'stem', 'strheight', 'stripchart', 'strwidth', 'sunflowerplot',
-            'symbols', 'text', 'text.default', 'title', 'xinch', 'xspline', 'xyinch', 'yinch',
-            ),
-        5 => array( // grDevices pkg
-            'as.graphicsAnnot', 'bitmap', 'blues9', 'bmp', 'boxplot.stats', 'cairo_pdf', 'cairo_ps', 'check.options',
-            'chull', 'CIDFont', 'cm', 'cm.colors', 'col2rgb', 'colorConverter', 'colorRamp', 'colorRampPalette',
-            'colors', 'colorspaces', 'colours', 'contourLines', 'convertColor', 'densCols', 'dev.control', 'dev.copy',
-            'dev.copy2eps', 'dev.copy2pdf', 'dev.cur', 'dev.interactive', 'dev.list', 'dev.new', 'dev.next', 'dev.off',
-            'dev.prev', 'dev.print', 'dev.set', 'dev.size', 'dev2bitmap', 'devAskNewPage', 'deviceIsInteractive',
-            'embedFonts', 'extendrange', 'getGraphicsEvent', 'graphics.off', 'gray', 'gray.colors', 'grey', 'grey.colors',
-            'hcl', 'heat.colors', 'Hershey', 'hsv', 'jpeg', 'make.rgb', 'n2mfrow', 'nclass.FD', 'nclass.scott',
-            'nclass.Sturges', 'palette', 'pdf', 'pdf.options', 'pdfFonts', 'pictex', 'png', 'postscript', 'postscriptFont',
-            'postscriptFonts', 'ps.options', 'quartz', 'quartz.options', 'quartzFont', 'quartzFonts', 'rainbow',
-            'recordGraphics', 'recordPlot', 'replayPlot', 'rgb', 'rgb2hsv', 'savePlot', 'setEPS', 'setPS', 'svg',
-            'terrain.colors', 'tiff', 'topo.colors', 'trans3d', 'Type1Font', 'x11', 'X11', 'X11.options', 'X11Font',
-            'X11Fonts', 'xfig', 'xy.coords', 'xyTable', 'xyz.coords',
-            ),
-        6 => array( // methods package
-            'addNextMethod', 'allGenerics', 'allNames', 'Arith', 'as', 'as<-',
-            'asMethodDefinition', 'assignClassDef', 'assignMethodsMetaData', 'balanceMethodsList',
-            'cacheGenericsMetaData', 'cacheMetaData', 'cacheMethod', 'callGeneric',
-            'callNextMethod', 'canCoerce', 'cbind2', 'checkSlotAssignment', 'classesToAM',
-            'classMetaName', 'coerce', 'coerce<-', 'Compare', 'completeClassDefinition',
-            'completeExtends', 'completeSubclasses', 'Complex', 'conformMethod', 'defaultDumpName',
-            'defaultPrototype', 'doPrimitiveMethod', 'dumpMethod', 'dumpMethods', 'el', 'el<-',
-            'elNamed', 'elNamed<-', 'empty.dump', 'emptyMethodsList', 'existsFunction', 'existsMethod',
-            'extends', 'finalDefaultMethod', 'findClass', 'findFunction', 'findMethod', 'findMethods',
-            'findMethodSignatures', 'findUnique', 'fixPre1.8', 'formalArgs', 'functionBody',
-            'functionBody<-', 'generic.skeleton', 'getAccess', 'getAllMethods', 'getAllSuperClasses',
-            'getClass', 'getClassDef', 'getClasses', 'getClassName', 'getClassPackage', 'getDataPart',
-            'getExtends', 'getFunction', 'getGeneric', 'getGenerics', 'getGroup', 'getGroupMembers',
-            'getMethod', 'getMethods', 'getMethodsForDispatch', 'getMethodsMetaData', 'getPackageName',
-            'getProperties', 'getPrototype', 'getSlots', 'getSubclasses', 'getValidity', 'getVirtual',
-            'hasArg', 'hasMethod', 'hasMethods', 'implicitGeneric', 'initialize', 'insertMethod', 'is',
-            'isClass', 'isClassDef', 'isClassUnion', 'isGeneric', 'isGrammarSymbol', 'isGroup',
-            'isSealedClass', 'isSealedMethod', 'isVirtualClass', 'isXS3Class', 'languageEl', 'languageEl<-',
-            'linearizeMlist', 'listFromMethods', 'listFromMlist', 'loadMethod', 'Logic',
-            'makeClassRepresentation', 'makeExtends', 'makeGeneric', 'makeMethodsList',
-            'makePrototypeFromClassDef', 'makeStandardGeneric', 'matchSignature', 'Math', 'Math2', 'mergeMethods',
-            'metaNameUndo', 'method.skeleton', 'MethodAddCoerce', 'methodSignatureMatrix', 'MethodsList',
-            'MethodsListSelect', 'methodsPackageMetaName', 'missingArg', 'mlistMetaName', 'new', 'newBasic',
-            'newClassRepresentation', 'newEmptyObject', 'Ops', 'packageSlot', 'packageSlot<-', 'possibleExtends',
-            'prohibitGeneric', 'promptClass', 'promptMethods', 'prototype', 'Quote', 'rbind2',
-            'reconcilePropertiesAndPrototype', 'registerImplicitGenerics', 'rematchDefinition',
-            'removeClass', 'removeGeneric', 'removeMethod', 'removeMethods', 'removeMethodsObject', 'representation',
-            'requireMethods', 'resetClass', 'resetGeneric', 'S3Class', 'S3Class<-', 'S3Part', 'S3Part<-', 'sealClass',
-            'seemsS4Object', 'selectMethod', 'selectSuperClasses', 'sessionData', 'setAs', 'setClass', 'setClassUnion',
-            'setDataPart', 'setGeneric', 'setGenericImplicit', 'setGroupGeneric', 'setIs', 'setMethod', 'setOldClass',
-            'setPackageName', 'setPrimitiveMethods', 'setReplaceMethod', 'setValidity', 'show', 'showClass', 'showDefault',
-            'showExtends', 'showMethods', 'showMlist', 'signature', 'SignatureMethod', 'sigToEnv', 'slot', 'slot<-',
-            'slotNames', 'slotsFromS3', 'substituteDirect', 'substituteFunctionArgs', 'Summary', 'superClassDepth',
-            'testInheritedMethods', 'testVirtual', 'traceOff', 'traceOn', 'tryNew', 'trySilent', 'unRematchDefinition',
-            'validObject', 'validSlotNames',
-            ),
-        7 => array( // stats pkg
-            'acf', 'acf2AR', 'add.scope', 'add1', 'addmargins', 'aggregate',
-            'aggregate.data.frame', 'aggregate.default', 'aggregate.ts', 'AIC',
-            'alias', 'anova', 'anova.glm', 'anova.glmlist', 'anova.lm', 'anova.lmlist',
-            'anova.mlm', 'anovalist.lm', 'ansari.test', 'aov', 'approx', 'approxfun',
-            'ar', 'ar.burg', 'ar.mle', 'ar.ols', 'ar.yw', 'arima', 'arima.sim',
-            'arima0', 'arima0.diag', 'ARMAacf', 'ARMAtoMA', 'as.dendrogram', 'as.dist',
-            'as.formula', 'as.hclust', 'as.stepfun', 'as.ts', 'asOneSidedFormula', 'ave',
-            'bandwidth.kernel', 'bartlett.test', 'binom.test', 'binomial', 'biplot',
-            'Box.test', 'bw.bcv', 'bw.nrd', 'bw.nrd0', 'bw.SJ', 'bw.ucv', 'C', 'cancor',
-            'case.names', 'ccf', 'chisq.test', 'clearNames', 'cmdscale', 'coef', 'coefficients',
-            'complete.cases', 'confint', 'confint.default', 'constrOptim', 'contr.helmert',
-            'contr.poly', 'contr.SAS', 'contr.sum', 'contr.treatment', 'contrasts', 'contrasts<-',
-            'convolve', 'cooks.distance', 'cophenetic', 'cor', 'cor.test', 'cov', 'cov.wt',
-            'cov2cor', 'covratio', 'cpgram', 'cutree', 'cycle', 'D', 'dbeta', 'dbinom', 'dcauchy',
-            'dchisq', 'decompose', 'delete.response', 'deltat', 'dendrapply', 'density', 'density.default',
-            'deriv', 'deriv.default', 'deriv.formula', 'deriv3', 'deriv3.default', 'deriv3.formula',
-            'deviance', 'dexp', 'df', 'df.kernel', 'df.residual', 'dfbeta', 'dfbetas', 'dffits',
-            'dgamma', 'dgeom', 'dhyper', 'diff.ts', 'diffinv', 'dist', 'dlnorm', 'dlogis',
-            'dmultinom', 'dnbinom', 'dnorm', 'dpois', 'drop.scope', 'drop.terms', 'drop1',
-            'dsignrank', 'dt', 'dummy.coef', 'dunif', 'dweibull', 'dwilcox', 'ecdf', 'eff.aovlist',
-            'effects', 'embed', 'end', 'estVar', 'expand.model.frame', 'extractAIC', 'factanal',
-            'factor.scope', 'family', 'fft', 'filter', 'fisher.test', 'fitted', 'fitted.values',
-            'fivenum', 'fligner.test', 'formula', 'frequency', 'friedman.test', 'ftable', 'Gamma',
-            'gaussian', 'get_all_vars', 'getInitial', 'glm', 'glm.control', 'glm.fit', 'glm.fit.null',
-            'hasTsp', 'hat', 'hatvalues', 'hatvalues.lm', 'hclust', 'heatmap', 'HoltWinters', 'influence',
-            'influence.measures', 'integrate', 'interaction.plot', 'inverse.gaussian', 'IQR',
-            'is.empty.model', 'is.leaf', 'is.mts', 'is.stepfun', 'is.ts', 'is.tskernel', 'isoreg',
-            'KalmanForecast', 'KalmanLike', 'KalmanRun', 'KalmanSmooth', 'kernapply', 'kernel', 'kmeans',
-            'knots', 'kruskal.test', 'ks.test', 'ksmooth', 'lag', 'lag.plot', 'line', 'lines.ts', 'lm',
-            'lm.fit', 'lm.fit.null', 'lm.influence', 'lm.wfit', 'lm.wfit.null', 'loadings', 'loess',
-            'loess.control', 'loess.smooth', 'logLik', 'loglin', 'lowess', 'ls.diag', 'ls.print', 'lsfit',
-            'mad', 'mahalanobis', 'make.link', 'makeARIMA', 'makepredictcall', 'manova', 'mantelhaen.test',
-            'mauchley.test', 'mauchly.test', 'mcnemar.test', 'median', 'median.default', 'medpolish',
-            'model.extract', 'model.frame', 'model.frame.aovlist', 'model.frame.default', 'model.frame.glm',
-            'model.frame.lm', 'model.matrix', 'model.matrix.default', 'model.matrix.lm', 'model.offset',
-            'model.response', 'model.tables', 'model.weights', 'monthplot', 'mood.test', 'mvfft', 'na.action',
-            'na.contiguous', 'na.exclude', 'na.fail', 'na.omit', 'na.pass', 'napredict', 'naprint', 'naresid',
-            'nextn', 'nlm', 'nlminb', 'nls', 'nls.control', 'NLSstAsymptotic', 'NLSstClosestX', 'NLSstLfAsymptote',
-            'NLSstRtAsymptote', 'numericDeriv', 'offset', 'oneway.test', 'optim', 'optimise', 'optimize',
-            'order.dendrogram', 'p.adjust', 'p.adjust.methods', 'pacf', 'pairwise.prop.test', 'pairwise.t.test',
-            'pairwise.table', 'pairwise.wilcox.test', 'pbeta', 'pbinom', 'pbirthday', 'pcauchy', 'pchisq', 'pexp',
-            'pf', 'pgamma', 'pgeom', 'phyper', 'plclust', 'plnorm', 'plogis', 'plot.density', 'plot.ecdf', 'plot.lm',
-            'plot.mlm', 'plot.spec', 'plot.spec.coherency', 'plot.spec.phase', 'plot.stepfun', 'plot.ts', 'plot.TukeyHSD',
-            'pnbinom', 'pnorm', 'poisson', 'poisson.test', 'poly', 'polym', 'power', 'power.anova.test', 'power.prop.test',
-            'power.t.test', 'PP.test', 'ppoints', 'ppois', 'ppr', 'prcomp', 'predict', 'predict.glm', 'predict.lm',
-            'predict.mlm', 'predict.poly', 'preplot', 'princomp', 'print.anova', 'print.coefmat', 'print.density',
-            'print.family', 'print.formula', 'print.ftable', 'print.glm', 'print.infl', 'print.integrate', 'print.lm',
-            'print.logLik', 'print.terms', 'print.ts', 'printCoefmat', 'profile', 'proj', 'promax', 'prop.test',
-            'prop.trend.test', 'psignrank', 'pt', 'ptukey', 'punif', 'pweibull', 'pwilcox', 'qbeta', 'qbinom',
-            'qbirthday', 'qcauchy', 'qchisq', 'qexp', 'qf', 'qgamma', 'qgeom', 'qhyper', 'qlnorm', 'qlogis',
-            'qnbinom', 'qnorm', 'qpois', 'qqline', 'qqnorm', 'qqnorm.default', 'qqplot', 'qsignrank', 'qt',
-            'qtukey', 'quade.test', 'quantile', 'quantile.default', 'quasi', 'quasibinomial', 'quasipoisson',
-            'qunif', 'qweibull', 'qwilcox', 'r2dtable', 'rbeta', 'rbinom', 'rcauchy', 'rchisq', 'read.ftable',
-            'rect.hclust', 'reformulate', 'relevel', 'reorder', 'replications', 'reshape', 'reshapeLong', 'reshapeWide',
-            'resid', 'residuals', 'residuals.default', 'residuals.glm', 'residuals.lm', 'rexp', 'rf', 'rgamma', 'rgeom',
-            'rhyper', 'rlnorm', 'rlogis', 'rmultinom', 'rnbinom', 'rnorm', 'rpois', 'rsignrank', 'rstandard', 'rstandard.glm',
-            'rstandard.lm', 'rstudent', 'rstudent.glm', 'rstudent.lm', 'rt', 'runif', 'runmed', 'rweibull', 'rwilcox',
-            'scatter.smooth', 'screeplot', 'sd', 'se.contrast', 'selfStart', 'setNames', 'shapiro.test', 'simulate',
-            'smooth', 'smooth.spline', 'smoothEnds', 'sortedXyData', 'spec.ar', 'spec.pgram', 'spec.taper', 'spectrum',
-            'spline', 'splinefun', 'splinefunH', 'SSasymp', 'SSasympOff', 'SSasympOrig', 'SSbiexp', 'SSD', 'SSfol',
-            'SSfpl', 'SSgompertz', 'SSlogis', 'SSmicmen', 'SSweibull', 'start', 'stat.anova', 'step', 'stepfun', 'stl',
-            'StructTS', 'summary.aov', 'summary.aovlist', 'summary.glm', 'summary.infl', 'summary.lm', 'summary.manova',
-            'summary.mlm', 'summary.stepfun', 'supsmu', 'symnum', 't.test', 'termplot', 'terms', 'terms.aovlist',
-            'terms.default', 'terms.formula', 'terms.terms', 'time', 'toeplitz', 'ts', 'ts.intersect', 'ts.plot',
-            'ts.union', 'tsdiag', 'tsp', 'tsp<-', 'tsSmooth', 'TukeyHSD', 'TukeyHSD.aov', 'uniroot', 'update',
-            'update.default', 'update.formula', 'var', 'var.test', 'variable.names', 'varimax', 'vcov', 'weighted.mean',
-            'weighted.residuals', 'weights', 'wilcox.test', 'window', 'window<-', 'write.ftable', 'xtabs',
-            ),
-        8 => array( // utils pkg
-            'alarm', 'apropos', 'argsAnywhere', 'as.person', 'as.personList', 'as.relistable', 'as.roman',
-            'assignInNamespace', 'available.packages', 'browseEnv', 'browseURL', 'browseVignettes', 'bug.report',
-            'capture.output', 'checkCRAN', 'chooseCRANmirror', 'citation', 'citEntry', 'citFooter', 'citHeader',
-            'close.socket', 'combn', 'compareVersion', 'contrib.url', 'count.fields', 'CRAN.packages', 'data',
-            'data.entry', 'dataentry', 'de', 'de.ncols', 'de.restore', 'de.setup', 'debugger', 'demo', 'download.file',
-            'download.packages', 'dump.frames', 'edit', 'emacs', 'example', 'file_test', 'file.edit', 'find', 'fix',
-            'fixInNamespace', 'flush.console', 'formatOL', 'formatUL', 'getAnywhere', 'getCRANmirrors', 'getFromNamespace',
-            'getS3method', 'getTxtProgressBar', 'glob2rx', 'head', 'head.matrix', 'help', 'help.request', 'help.search',
-            'help.start', 'history', 'index.search', 'install.packages', 'installed.packages', 'is.relistable',
-            'limitedLabels', 'loadhistory', 'localeToCharset', 'ls.str', 'lsf.str', 'make.packages.html', 'make.socket',
-            'makeRweaveLatexCodeRunner', 'memory.limit', 'memory.size', 'menu', 'methods', 'mirror2html', 'modifyList',
-            'new.packages', 'normalizePath', 'nsl', 'object.size', 'old.packages', 'package.contents', 'package.skeleton',
-            'packageDescription', 'packageStatus', 'page', 'person', 'personList', 'pico', 'prompt', 'promptData',
-            'promptPackage', 'rc.getOption', 'rc.options', 'rc.settings', 'rc.status', 'read.csv', 'read.csv2', 'read.delim',
-            'read.delim2', 'read.DIF', 'read.fortran', 'read.fwf', 'read.socket', 'read.table', 'readCitationFile', 'recover',
-            'relist', 'remove.packages', 'Rprof', 'Rprofmem', 'RShowDoc', 'RSiteSearch', 'rtags', 'Rtangle', 'RtangleSetup',
-            'RtangleWritedoc', 'RweaveChunkPrefix', 'RweaveEvalWithOpt', 'RweaveLatex', 'RweaveLatexFinish', 'RweaveLatexOptions',
-            'RweaveLatexSetup', 'RweaveLatexWritedoc', 'RweaveTryStop', 'savehistory', 'select.list', 'sessionInfo',
-            'setRepositories', 'setTxtProgressBar', 'stack', 'Stangle', 'str', 'strOptions', 'summaryRprof', 'Sweave',
-            'SweaveHooks', 'SweaveSyntaxLatex', 'SweaveSyntaxNoweb', 'SweaveSyntConv', 'tail', 'tail.matrix', 'timestamp',
-            'toBibtex', 'toLatex', 'txtProgressBar', 'type.convert', 'unstack', 'unzip', 'update.packages', 'update.packageStatus',
-            'upgrade', 'url.show', 'URLdecode', 'URLencode', 'vi', 'View', 'vignette', 'write.csv', 'write.csv2', 'write.socket',
-            'write.table', 'wsbrowser', 'xedit', 'xemacs', 'zip.file.extract',
-            ),
-        ),
-    'SYMBOLS' => array(
-        '(', ')', '{', '}', '[', ']', '!', '%', '^', '&', '/','+','-','*','=','<','>',';','|','<-','->',
-        '^', '-', ':', '::', ':::', '!', '!=', '*', '?',
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => true,
-        1 => true,
-        2 => true,
-        3 => true,
-        4 => true,
-        5 => true,
-        6 => true,
-        7 => true,
-        8 => true,
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #0000FF; font-weight: bold;',
-            2 => 'color: #0000FF; font-weight: bold;',
-            3 => 'color: #CC9900; font-weight: bold;',
-            4 => 'color: #0000FF; font-weight: bold;',
-            5 => 'color: #0000FF; font-weight: bold;',
-            6 => 'color: #0000FF; font-weight: bold;',
-            7 => 'color: #0000FF; font-weight: bold;',
-            8 => 'color: #0000FF; font-weight: bold;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #228B22;',
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #000099; font-weight: bold;',
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #080;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #ff0000;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #ff0000;'
-            ),
-        'METHODS' => array(
-            1 => '',
-            2 => ''
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #080;'
-            ),
-        'REGEXPS' => array(
-            0 => 'color:#A020F0;'
-            ),
-        'SCRIPT' => array(
-            0 => ''            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => 'http://stat.ethz.ch/R-manual/R-devel/library/base/html/{FNAME}.html', // Base Package
-        3 => 'http://stat.ethz.ch/R-manual/R-devel/library/datasets/html/{FNAME}.html', // Datasets
-        4 => 'http://stat.ethz.ch/R-manual/R-devel/library/graphics/html/{FNAME}.html', // Graphics Package
-        5 => 'http://stat.ethz.ch/R-manual/R-devel/library/grDevices/html/{FNAME}.html', // grDevices
-        6 => 'http://stat.ethz.ch/R-manual/R-devel/library/methods/html/{FNAME}.html', // methods
-        7 => 'http://stat.ethz.ch/R-manual/R-devel/library/stats/html/{FNAME}.html', // stats
-        8 => 'http://stat.ethz.ch/R-manual/R-devel/library/utils/html/{FNAME}.html' // utils
-        ),
-    'OOLANG' => true,
-    'OBJECT_SPLITTERS' => array(
-        1 => '.',
-        2 => '::'
-        ),
-    'REGEXPS' => array(
-        0 => array(
-            GESHI_SEARCH => "([^\w])'([^\\n\\r']*)'",
-            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(
-        'KEYWORDS' => array(
-            'DISALLOWED_BEFORE' => "(?<![a-zA-Z0-9\$_\|\#;>|^&\\.])(?<!\/html\/)",
-            'DISALLOWED_AFTER' => "(?![a-zA-Z0-9_\|%\\-&;\\.])"
-            )
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/ruby.php b/wiki/vendor/geshi/geshi/src/geshi/ruby.php
deleted file mode 100644
index b47953d..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/ruby.php
+++ /dev/null
@@ -1,229 +0,0 @@
-<?php
-/*************************************************************************************
- * ruby.php
- * --------
- * Author: Moises Deniz
- * Copyright: (c) 2007 Moises Deniz
- * Release Version: 1.0.9.0
- * Date Started: 2007/03/21
- *
- * Ruby language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2008/05/23 (1.0.7.22)
- *   -  Added description of extra language features (SF#1970248)
- * 2007/03/21 (1.0.7.19)
- *   -  Initial 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' => 'Ruby',
-    'COMMENT_SINGLE' => array(1 => "#"),
-    'COMMENT_MULTI' => array("=begin" => "=end"),
-    'COMMENT_REGEXP' => array(
-        //Heredoc
-        4 => '/<<\s*?(\w+)\\n.*?\\n\\1(?![a-zA-Z0-9])/si',
-        ),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array('"', '`','\''),
-    'ESCAPE_CHAR' => '\\',
-    'KEYWORDS' => array(
-        1 => array(
-                'alias', 'and', 'begin', 'break', 'case', 'class',
-                'def', 'defined', 'do', 'else', 'elsif', 'end',
-                'ensure', 'for', 'if', 'in', 'module', 'while',
-                'next', 'not', 'or', 'redo', 'rescue', 'yield',
-                'retry', 'super', 'then', 'undef', 'unless',
-                'until', 'when', 'include'
-            ),
-        2 => array(
-                '__FILE__', '__LINE__', 'false', 'nil', 'self', 'true',
-                'return'
-            ),
-        3 => array(
-                'Array', 'Float', 'Integer', 'String', 'at_exit',
-                'autoload', 'binding', 'caller', 'catch', 'chop', 'chop!',
-                'chomp', 'chomp!', 'eval', 'exec', 'exit', 'exit!', 'fail',
-                'fork', 'format', 'gets', 'global_variables', 'gsub', 'gsub!',
-                'iterator?', 'lambda', 'load', 'local_variables', 'loop',
-                'open', 'p', 'print', 'printf', 'proc', 'putc', 'puts',
-                'raise', 'rand', 'readline', 'readlines', 'require', 'select',
-                'sleep', 'split', 'sprintf', 'srand', 'sub', 'sub!', 'syscall',
-                'system', 'trace_var', 'trap', 'untrace_var'
-            ),
-        4 => array(
-                'Abbrev', 'ArgumentError', 'Base64', 'Benchmark',
-                'Benchmark::Tms', 'Bignum', 'Binding', 'CGI', 'CGI::Cookie',
-                'CGI::HtmlExtension', 'CGI::QueryExtension',
-                'CGI::Session', 'CGI::Session::FileStore',
-                'CGI::Session::MemoryStore', 'Class', 'Comparable', 'Complex',
-                'ConditionVariable', 'Continuation', 'Data',
-                'Date', 'DateTime', 'Delegator', 'Dir', 'EOFError', 'ERB',
-                'ERB::Util', 'Enumerable', 'Enumerable::Enumerator', 'Errno',
-                'Exception', 'FalseClass', 'File',
-                'File::Constants', 'File::Stat', 'FileTest', 'FileUtils',
-                'FileUtils::DryRun', 'FileUtils::NoWrite',
-                'FileUtils::StreamUtils_', 'FileUtils::Verbose', 'Find',
-                'Fixnum', 'FloatDomainError', 'Forwardable', 'GC', 'Generator',
-                'Hash', 'IO', 'IOError', 'Iconv', 'Iconv::BrokenLibrary',
-                'Iconv::Failure', 'Iconv::IllegalSequence',
-                'Iconv::InvalidCharacter', 'Iconv::InvalidEncoding',
-                'Iconv::OutOfRange', 'IndexError', 'Interrupt', 'Kernel',
-                'LoadError', 'LocalJumpError', 'Logger', 'Logger::Application',
-                'Logger::Error', 'Logger::Formatter', 'Logger::LogDevice',
-                'Logger::LogDevice::LogDeviceMutex', 'Logger::Severity',
-                'Logger::ShiftingError', 'Marshal', 'MatchData',
-                'Math', 'Matrix', 'Method', 'Module', 'Mutex', 'NameError',
-                'NameError::message', 'NilClass', 'NoMemoryError',
-                'NoMethodError', 'NotImplementedError', 'Numeric', 'Object',
-                'ObjectSpace', 'Observable', 'PStore', 'PStore::Error',
-                'Pathname', 'Precision', 'Proc', 'Process', 'Process::GID',
-                'Process::Status', 'Process::Sys', 'Process::UID', 'Queue',
-                'Range', 'RangeError', 'Rational', 'Regexp', 'RegexpError',
-                'RuntimeError', 'ScriptError', 'SecurityError', 'Set',
-                'Shellwords', 'Signal', 'SignalException', 'SimpleDelegator',
-                'SingleForwardable', 'Singleton', 'SingletonClassMethods',
-                'SizedQueue', 'SortedSet', 'StandardError', 'StringIO',
-                'StringScanner', 'StringScanner::Error', 'Struct', 'Symbol',
-                'SyncEnumerator', 'SyntaxError', 'SystemCallError',
-                'SystemExit', 'SystemStackError', 'Tempfile',
-                'Test::Unit::TestCase', 'Test::Unit', 'Test', 'Thread',
-                'ThreadError', 'ThreadGroup',
-                'ThreadsWait', 'Time', 'TrueClass', 'TypeError', 'URI',
-                'URI::BadURIError', 'URI::Error', 'URI::Escape', 'URI::FTP',
-                'URI::Generic', 'URI::HTTP', 'URI::HTTPS',
-                'URI::InvalidComponentError', 'URI::InvalidURIError',
-                'URI::LDAP', 'URI::MailTo', 'URI::REGEXP',
-                'URI::REGEXP::PATTERN', 'UnboundMethod', 'Vector', 'YAML',
-                'ZeroDivisionError', 'Zlib',
-                'Zlib::BufError', 'Zlib::DataError', 'Zlib::Deflate',
-                'Zlib::Error', 'Zlib::GzipFile', 'Zlib::GzipFile::CRCError',
-                'Zlib::GzipFile::Error', 'Zlib::GzipFile::LengthError',
-                'Zlib::GzipFile::NoFooter', 'Zlib::GzipReader',
-                'Zlib::GzipWriter', 'Zlib::Inflate', 'Zlib::MemError',
-                'Zlib::NeedDict', 'Zlib::StreamEnd', 'Zlib::StreamError',
-                'Zlib::VersionError',
-                'Zlib::ZStream',
-                'HTML::Selector', 'HashWithIndifferentAccess', 'Inflector',
-                'Inflector::Inflections', 'Mime', 'Mime::Type',
-                'OCI8AutoRecover', 'TimeZone', 'XmlSimple'
-            ),
-        ),
-    'SYMBOLS' => array(
-        '(', ')', '[', ']', '{', '}', '%', '&', '*', '|', '/', '<', '>',
-        '+', '-', '=>', '<<'
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false,
-        2 => false,
-        3 => false,
-        4 => true,
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color:#9966CC; font-weight:bold;',
-            2 => 'color:#0000FF; font-weight:bold;',
-            3 => 'color:#CC0066; font-weight:bold;',
-            4 => 'color:#CC00FF; font-weight:bold;',
-            ),
-        'COMMENTS' => array(
-            1 => 'color:#008000; font-style:italic;',
-            4 => 'color: #cc0000; font-style: italic;',
-            'MULTI' => 'color:#000080; font-style:italic;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color:#000099;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color:#006600; font-weight:bold;'
-            ),
-        'STRINGS' => array(
-            0 => 'color:#996600;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color:#006666;'
-            ),
-        'METHODS' => array(
-            1 => 'color:#9900CC;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color:#006600; font-weight:bold;'
-            ),
-        'REGEXPS' => array(
-            0 => 'color:#ff6633; font-weight:bold;',
-            1 => 'color:#0066ff; font-weight:bold;',
-            2 => 'color:#6666ff; font-weight:bold;',
-            3 => 'color:#ff3333; font-weight:bold;'
-            ),
-        'SCRIPT' => array(
-            0 => '',
-            1 => '',
-            2 => '',
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => '',
-        4 => ''
-        ),
-    'OOLANG' => true,
-    'OBJECT_SPLITTERS' => array(
-        1 => '.'
-        ),
-    'REGEXPS' => array(
-        0 => array(//Variables
-            GESHI_SEARCH => "([[:space:]])(\\$[a-zA-Z_][a-zA-Z0-9_]*)",
-            GESHI_REPLACE => '\\2',
-            GESHI_MODIFIERS => '',
-            GESHI_BEFORE => '\\1',
-            GESHI_AFTER => ''
-            ),
-        1 => array(//Arrays
-            GESHI_SEARCH => "([[:space:]])(@[a-zA-Z_][a-zA-Z0-9_]*)",
-            GESHI_REPLACE => '\\2',
-            GESHI_MODIFIERS => '',
-            GESHI_BEFORE => '\\1',
-            GESHI_AFTER => ''
-            ),
-        2 => "([A-Z][a-zA-Z0-9_]*::)+[A-Z][a-zA-Z0-9_]*",//Static OOP symbols
-        3 => array(
-            GESHI_SEARCH => "([[:space:]]|\[|\()(:[a-zA-Z_][a-zA-Z0-9_]*)",
-            GESHI_REPLACE => '\\2',
-            GESHI_MODIFIERS => '',
-            GESHI_BEFORE => '\\1',
-            GESHI_AFTER => ''
-            )
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_MAYBE,
-    'SCRIPT_DELIMITERS' => array(
-        0 => array(
-            '<%' => '%>'
-            )
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        0 => true,
-        ),
-    'TAB_WIDTH' => 2
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/rust.php b/wiki/vendor/geshi/geshi/src/geshi/rust.php
deleted file mode 100644
index 46d46c8..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/rust.php
+++ /dev/null
@@ -1,235 +0,0 @@
-<?php
-/*************************************************************************************
- * rust.php
- * --------
- * Author: Edward Hart (edward.dan.hart@gmail.com)
- * Copyright: (c) 2013 Edward Hart
- * 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
- *
- * TODO (updated 2013/10/20)
- * -------------------------
- *
- *************************************************************************************
- *
- *     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' => 'Rust',
-
-    'COMMENT_SINGLE' => array('//'),
-    'COMMENT_MULTI' => array('/*' => '*/'),
-    'COMMENT_REGEXP' => array(
-        // Raw strings
-        1 => '/\\br(\\#*)".*?"\\1/'
-        ),
-
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array("'", '"'),
-    'ESCAPE_CHAR' => '',
-    'ESCAPE_REGEXP' => array(
-        //Simple Single Char Escapes
-        1 => "#\\\\[\\\\nrt\'\"?\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_HEX_PREFIX | GESHI_NUMBER_FLT_NONSCI |
-        GESHI_NUMBER_FLT_NONSCI_F | GESHI_NUMBER_FLT_SCI_SHORT | GESHI_NUMBER_FLT_SCI_ZERO,
-
-    'KEYWORDS' => array(
-        // Keywords
-        1 => array(
-            'alt', 'as', 'assert', 'break', 'const', 'continue', 'copy', 'do',
-            'else', 'enum', 'extern', 'fn', 'for', 'if',
-            'impl', 'in', 'let', 'log', 'loop', 'match', 'mod', 'mut', 'of',
-            'priv', 'pub', 'ref', 'return', 'self', 'static', 'struct', 'super',
-            'to', 'trait', 'type', 'unsafe', 'use', 'with', 'while'
-            ),
-        // Boolean values
-        2 => array( 'true', 'false' ),
-        // Structs and built-in types
-        3 => array(
-            'u8', 'i8',
-            'u16', 'i16',
-            'u32', 'i32',
-            'u64', 'i64',
-            'f32', 'f64',
-            'int', 'uint',
-            'float',
-            'bool',
-            'str', 'char',
-            'Argument', 'AsyncWatcher', 'BorrowRecord', 'BufReader',
-            'BufWriter', 'BufferedReader', 'BufferedStream', 'BufferedWriter',
-            'ByRef', 'ByteIterator', 'CFile', 'CString', 'CStringIterator',
-            'Cell', 'Chain', 'Chan', 'ChanOne', 'CharIterator',
-            'CharOffsetIterator', 'CharRange', 'CharSplitIterator',
-            'CharSplitNIterator', 'ChunkIter', 'Condition', 'ConnectRequest',
-            'Coroutine', 'Counter', 'CrateMap', 'Cycle', 'DeflateWriter',
-            'Display', 'ElementSwaps', 'Enumerate', 'Exp', 'Exp1', 'FileDesc',
-            'FileReader', 'FileStat', 'FileStream', 'FileWriter', 'Filter',
-            'FilterMap', 'FlatMap', 'FormatSpec', 'Formatter', 'FsRequest',
-            'Fuse', 'GarbageCollector', 'GetAddrInfoRequest', 'Handle',
-            'HashMap', 'HashMapIterator', 'HashMapMoveIterator',
-            'HashMapMutIterator', 'HashSet', 'HashSetIterator',
-            'HashSetMoveIterator', 'Hint', 'IdleWatcher', 'InflateReader',
-            'Info', 'Inspect', 'Invert', 'IoError', 'Isaac64Rng', 'IsaacRng',
-            'LineBufferedWriter', 'Listener', 'LocalHeap', 'LocalStorage',
-            'Loop', 'Map', 'MatchesIndexIterator', 'MemReader', 'MemWriter',
-            'MemoryMap', 'ModEntry', 'MoveIterator', 'MovePtrAdaptor',
-            'MoveRevIterator', 'NoOpRunnable', 'NonCopyable', 'Normal',
-            'OSRng', 'OptionIterator', 'Parser', 'Path', 'Peekable',
-            'Permutations', 'Pipe', 'PipeStream', 'PluralArm', 'Port',
-            'PortOne', 'Process', 'ProcessConfig', 'ProcessOptions',
-            'ProcessOutput', 'RC', 'RSplitIterator', 'RandSample', 'Range',
-            'RangeInclusive', 'RangeStep', 'RangeStepInclusive', 'Rc', 'RcMut',
-            'ReaderRng', 'Repeat', 'ReprVisitor', 'RequestData',
-            'ReseedWithDefault', 'ReseedingRng', 'Scan', 'SchedOpts',
-            'SelectArm', 'SharedChan', 'SharedPort', 'SignalWatcher',
-            'SipState', 'Skip', 'SkipWhile', 'SocketAddr', 'SplitIterator',
-            'StackPool', 'StackSegment', 'StandardNormal', 'StdErrLogger',
-            'StdIn', 'StdOut', 'StdReader', 'StdRng', 'StdWriter',
-            'StrSplitIterator', 'StreamWatcher', 'TTY', 'Take', 'TakeWhile',
-            'Task', 'TaskBuilder', 'TaskOpts', 'TcpAcceptor', 'TcpListener',
-            'TcpStream', 'TcpWatcher', 'Timer', 'TimerWatcher', 'TrieMap',
-            'TrieMapIterator', 'TrieSet', 'TrieSetIterator', 'Tube',
-            'UdpSendRequest', 'UdpSocket', 'UdpStream', 'UdpWatcher', 'Unfold',
-            'UnixAcceptor', 'UnixListener', 'UnixStream', 'Unwinder',
-            'UvAddrInfo', 'UvError', 'UvEventLoop', 'UvFileStream',
-            'UvIoFactory', 'UvPausibleIdleCallback', 'UvPipeStream',
-            'UvProcess', 'UvRemoteCallback', 'UvSignal', 'UvTTY',
-            'UvTcpAcceptor', 'UvTcpListener', 'UvTcpStream', 'UvTimer',
-            'UvUdpSocket', 'UvUnboundPipe', 'UvUnixAcceptor', 'UvUnixListener',
-            'VecIterator', 'VecMutIterator', 'Weighted', 'WeightedChoice',
-            'WindowIter', 'WriteRequest', 'XorShiftRng', 'Zip', 'addrinfo',
-            'uv_buf_t', 'uv_err_data', 'uv_process_options_t', 'uv_stat_t',
-            'uv_stdio_container_t', 'uv_timespec_t'
-            ),
-        // Enums
-        4 => array(
-            'Alignment', 'Count', 'Either', 'ExponentFormat', 'FPCategory',
-            'FileAccess', 'FileMode', 'Flag', 'IoErrorKind', 'IpAddr',
-            'KeyValue', 'MapError', 'MapOption', 'MemoryMapKind', 'Method',
-            'NullByteResolution', 'Option', 'Ordering', 'PathPrefix', 'Piece',
-            'PluralKeyword', 'Position', 'Protocol', 'Result', 'SchedHome',
-            'SchedMode', 'SeekStyle', 'SendStr', 'SignFormat',
-            'SignificantDigits', 'Signum', 'SocketType', 'StdioContainer',
-            'TaskResult', 'TaskType', 'UvSocketAddr', 'Void', 'uv_handle_type',
-            'uv_membership', 'uv_req_type'
-            )
-        ),
-    'SYMBOLS' => array(
-        '(', ')', '{', '}', '[', ']',
-        '+', '-', '*', '/', '%',
-        '&', '|', '^', '!', '<', '>', '~', '@',
-        ':',
-        ';', ',',
-        '='
-        ),
-
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => true,
-        2 => true,
-        3 => true,
-        4 => true
-        ),
-
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #708;',
-            2 => 'color: #219;',
-            3 => 'color: #05a;',
-            4 => 'color: #800;'
-            ),
-        'COMMENTS' => array(
-            0 => 'color: #a50; font-style: italic;',
-            1 => 'color: #a11;',
-            'MULTI' => 'color: #a50; 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' => ''
-            ),
-        'STRINGS' => array(
-            0 => 'color: #a11;'
-            ),
-        '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;'
-            ),
-        'BRACKETS' => array(''),
-        'METHODS' => array(
-            1 => 'color: #164;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #339933;'
-            ),
-        'REGEXPS' => array(
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => '',
-        4 => ''
-        ),
-    'OOLANG' => true,
-    'OBJECT_SPLITTERS' => array(
-        1 => '::'
-        ),
-    'REGEXPS' => array(
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        ),
-    'TAB_WIDTH' => 4
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/sas.php b/wiki/vendor/geshi/geshi/src/geshi/sas.php
deleted file mode 100644
index 31446d7..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/sas.php
+++ /dev/null
@@ -1,288 +0,0 @@
-<?php
-/*************************************************************************************
- * sas.php
- * -------
- * Author: Galen Johnson (solitaryr@gmail.com)
- * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter/)
- * Release Version: 1.0.9.0
- * Date Started: 2005/12/27
- *
- * SAS language file for GeSHi. Based on the sas vim file.
- *
- * CHANGES
- * -------
- * 2008/05/23 (1.0.7.22)
- *   -  Added description of extra language features (SF#1970248)
- *   -  Cleaned up code style
- * 2005/12/27 (1.0.0)
- *   -  First Release
- *
- * TODO (updated 2005/12/27)
- * -------------------------
- * * Check highlighting stuff works
- *
- *************************************************************************************
- *
- *     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' => 'SAS',
-    'COMMENT_SINGLE' => array(),
-    'COMMENT_MULTI' => array('/*' => '*/', '*' => ';'),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array("'", '"'),
-    'ESCAPE_CHAR' => '\\',
-    'KEYWORDS' => array(
-        1 => array(
-            '_ALL_','_CHARACTER_','_INFILE_','_N_','_NULL_','_NUMERIC_',
-            '_WEBOUT_'
-            ),
-        2 => array(
-            '%BQUOTE','%CMPRES','%COMPSTOR','%DATATYP','%DISPLAY','%DO','%ELSE',
-            '%END','%EVAL','%GLOBAL','%GOTO','%IF','%INDEX','%INPUT','%KEYDEF',
-            '%LABEL','%LEFT','%LENGTH','%LET','%LOCAL','%LOWCASE','%MACRO',
-            '%MEND','%NRBQUOTE','%NRQUOTE','%NRSTR','%PUT','%QCMPRES','%QLEFT',
-            '%QLOWCASE','%QSCAN','%QSUBSTR','%QSYSFUNC','%QTRIM','%QUOTE',
-            '%QUPCASE','%SCAN','%STR','%SUBSTR','%SUPERQ','%SYSCALL',
-            '%SYSEVALF','%SYSEXEC','%SYSFUNC','%SYSGET','%SYSLPUT','%SYSPROD',
-            '%SYSRC','%SYSRPUT','%THEN','%TO','%TRIM','%UNQUOTE','%UNTIL',
-            '%UPCASE','%VERIFY','%WHILE','%WINDOW'
-            ),
-        3 => array(
-            'ABS','ADDR','AIRY','ARCOS','ARSIN','ATAN','ATTRC','ATTRN','BAND',
-            'BETAINV','BLSHIFT','BNOT','BOR','BRSHIFT','BXOR','BYTE','CDF',
-            'CEIL','CEXIST','CINV','CLOSE','CNONCT','COLLATE','COMPBL',
-            'COMPOUND','COMPRESS','COSH','COS','CSS','CUROBS','CV','DACCDBSL',
-            'DACCDB','DACCSL','DACCSYD','DACCTAB','DAIRY','DATETIME','DATEJUL',
-            'DATEPART','DATE','DAY','DCLOSE','DEPDBSL','DEPDB','DEPSL','DEPSYD',
-            'DEPTAB','DEQUOTE','DHMS','DIF','DIGAMMA','DIM','DINFO','DNUM',
-            'DOPEN','DOPTNAME','DOPTNUM','DREAD','DROPNOTE','DSNAME','ERFC',
-            'ERF','EXIST','EXP','FAPPEND','FCLOSE','FCOL','FDELETE','FETCHOBS',
-            'FETCH','FEXIST','FGET','FILEEXIST','FILENAME','FILEREF','FINFO',
-            'FINV','FIPNAMEL','FIPNAME','FIPSTATE','FLOOR','FNONCT','FNOTE',
-            'FOPEN','FOPTNAME','FOPTNUM','FPOINT','FPOS','FPUT','FREAD',
-            'FREWIND','FRLEN','FSEP','FUZZ','FWRITE','GAMINV','GAMMA',
-            'GETOPTION','GETVARC','GETVARN','HBOUND','HMS','HOSTHELP','HOUR',
-            'IBESSEL','INDEXW','INDEXC','INDEX','INPUTN','INPUTC','INPUT',
-            'INTRR','INTCK','INTNX','INT','IRR','JBESSEL','JULDATE','KURTOSIS',
-            'LAG','LBOUND','LEFT','LENGTH','LGAMMA','LIBNAME','LIBREF','LOG10',
-            'LOG2','LOGPDF','LOGPMF','LOGSDF','LOG','LOWCASE','MAX','MDY',
-            'MEAN','MINUTE','MIN','MOD','MONTH','MOPEN','MORT','NETPV','NMISS',
-            'NORMAL','NPV','N','OPEN','ORDINAL','PATHNAME','PDF','PEEKC','PEEK',
-            'PMF','POINT','POISSON','POKE','PROBBETA','PROBBNML','PROBCHI',
-            'PROBF','PROBGAM','PROBHYPR','PROBIT','PROBNEGB','PROBNORM','PROBT',
-            'PUTN','PUTC','PUT','QTR','QUOTE','RANBIN','RANCAU','RANEXP',
-            'RANGAM','RANGE','RANK','RANNOR','RANPOI','RANTBL','RANTRI',
-            'RANUNI','REPEAT','RESOLVE','REVERSE','REWIND','RIGHT','ROUND',
-            'SAVING','SCAN','SDF','SECOND','SIGN','SINH','SIN','SKEWNESS',
-            'SOUNDEX','SPEDIS','SQRT','STDERR','STD','STFIPS','STNAME',
-            'STNAMEL','SUBSTR','SUM','SYMGET','SYSGET','SYSMSG','SYSPROD',
-            'SYSRC','SYSTEM','TANH','TAN','TIMEPART','TIME','TINV','TNONCT',
-            'TODAY','TRANSLATE','TRANWRD','TRIGAMMA','TRIMN','TRIM','TRUNC',
-            'UNIFORM','UPCASE','USS','VARFMT','VARINFMT','VARLABEL','VARLEN',
-            'VARNAME','VARNUM','VARRAYX','VARRAY','VARTYPE','VAR','VERIFY',
-            'VFORMATX','VFORMATDX','VFORMATD','VFORMATNX','VFORMATN',
-            'VFORMATWX','VFORMATW','VFORMAT','VINARRAYX','VINARRAY',
-            'VINFORMATX','VINFORMATDX','VINFORMATD','VINFORMATNX','VINFORMATN',
-            'VINFORMATWX','VINFORMATW','VINFORMAT','VLABELX','VLABEL',
-            'VLENGTHX','VLENGTH','VNAMEX','VNAME','VTYPEX','VTYPE','WEEKDAY',
-            'YEAR','YYQ','ZIPFIPS','ZIPNAME','ZIPNAMEL','ZIPSTATE'
-            ),
-        4 => array(
-            'ABORT','ADD','ALTER','AND','ARRAY','AS','ATTRIB','BY','CALL',
-            'CARDS4','CASCADE','CATNAME','CHECK','CONTINUE','CREATE',
-            'DATALINES4','DELETE','DESCRIBE','DISPLAY','DISTINCT','DM','DROP',
-            'ENDSAS','FILE','FOOTNOTE','FOREIGN','FORMAT','FROM',
-            'GOTO','GROUP','HAVING','IN','INFILE','INFORMAT',
-            'INSERT','INTO','KEEP','KEY','LABEL','LEAVE',
-            'LIKE','LINK','LIST','LOSTCARD','MERGE','MESSAGE','MISSING',
-            'MODIFY','MSGTYPE','NOT','NULL','ON','OPTIONS','OR','ORDER',
-            'OUTPUT','PAGE','PRIMARY','REDIRECT','REFERENCES','REMOVE',
-            'RENAME','REPLACE','RESET','RESTRICT','RETAIN','RETURN','SELECT',
-            'SET','SKIP','STARTSAS','STOP','SYSTASK','TABLE','TITLE','UNIQUE',
-            'UPDATE','VALIDATE','VIEW','WAITSAS','WHERE','WINDOW','X'
-            ),
-        5 => array(
-            'DO','ELSE','END','IF','THEN','UNTIL','WHILE'
-            ),
-        6 => array(
-            'RUN','QUIT','DATA'
-            ),
-        7 => array(
-            'ERROR'
-            ),
-        8 => array(
-            'WARNING'
-            ),
-        9 => array(
-            'NOTE'
-            )
-        ),
-    'SYMBOLS' => array(
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false,
-        2 => false,
-        3 => false,
-        4 => false,
-        5 => false,
-        6 => false,
-        7 => false,
-        8 => false,
-        9 => false
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #0000ff;',
-            2 => 'color: #0000ff;',
-            3 => 'color: #0000ff;',
-            4 => 'color: #0000ff;',
-            5 => 'color: #0000ff;',
-            6 => 'color: #000080; font-weight: bold;',
-            7 => 'color: #ff0000;',
-            8 => 'color: #00ff00;',
-            9 => 'color: #0000ff;'
-            ),
-        'COMMENTS' => array(
-//            1 => 'color: #006400; font-style: italic;',
-            'MULTI' => 'color: #006400; font-style: italic;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #000099; font-weight: bold;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #66cc66;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #a020f0;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #2e8b57; font-weight: bold;'
-            ),
-        'METHODS' => array(
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #66cc66;'
-            ),
-        'SCRIPT' => array(
-            0 => '',
-            1 => '',
-            2 => '',
-            3 => ''
-            ),
-        'REGEXPS' => array(
-            0 => 'color: #0000ff; font-weight: bold;',
-            1 => 'color: #000080; font-weight: bold;',
-            2 => 'color: #006400; font-style: italic;',
-            3 => 'color: #006400; font-style: italic;',
-            4 => 'color: #006400; font-style: italic;',
-            5 => 'color: #ff0000; font-weight: bold;',
-            6 => 'color: #00ff00; font-style: italic;',
-            7 => 'color: #0000ff; font-style: normal;',
-            8 => 'color: #b218b2; font-weight: bold;',
-            9 => 'color: #b218b2; font-weight: bold;'
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => '',
-        4 => '',
-        5 => '',
-        6 => '',
-        7 => '',
-        8 => '',
-        9 => ''
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(
-        ),
-    'REGEXPS' => array(
-        0 => "&amp;[a-zA-Z_][a-zA-Z0-9_]*",
-        1 => array(//Procedures
-            GESHI_SEARCH => '(^\\s*)(PROC \\w+)',
-            GESHI_REPLACE => '\\2',
-            GESHI_MODIFIERS => 'im',
-            GESHI_BEFORE => '\\1',
-            GESHI_AFTER => ''
-            ),
-        2 => array(
-            GESHI_SEARCH => '(^\\s*)(\\*.*;)',
-            GESHI_REPLACE => '\\2',
-            GESHI_MODIFIERS => 'im',
-            GESHI_BEFORE => '\\1',
-            GESHI_AFTER => ''
-            ),
-        3 => array(
-            GESHI_SEARCH => '(.*;\\s*)(\\*.*;)',
-            GESHI_REPLACE => '\\2',
-            GESHI_MODIFIERS => 'im',
-            GESHI_BEFORE => '\\1',
-            GESHI_AFTER => ''
-            ),
-        4 => array(
-            GESHI_SEARCH => '(^\\s*)(%\\*.*;)',
-            GESHI_REPLACE => '\\2',
-            GESHI_MODIFIERS => 'im',
-            GESHI_BEFORE => '\\1',
-            GESHI_AFTER => ''
-            ),
-        5 => array(//Error messages
-            GESHI_SEARCH => '(^ERROR.*)',
-            GESHI_REPLACE => '\\1',
-            GESHI_MODIFIERS => 'im',
-            GESHI_BEFORE => '',
-            GESHI_AFTER => ''
-            ),
-        6 => array(//Warning messages
-            GESHI_SEARCH => '(^WARNING.*)',
-            GESHI_REPLACE => '\\1',
-            GESHI_MODIFIERS => 'im',
-            GESHI_BEFORE => '',
-            GESHI_AFTER => ''
-            ),
-        7 => array(//Notice messages
-            GESHI_SEARCH => '(^NOTE.*)',
-            GESHI_REPLACE => '\\1',
-            GESHI_MODIFIERS => 'im',
-            GESHI_BEFORE => '',
-            GESHI_AFTER => ''
-            ),
-        8 => array(
-            GESHI_SEARCH => '(^\\s*)(CARDS.*)(^\\s*;\\s*$)',
-            GESHI_REPLACE => '\\2',
-            GESHI_MODIFIERS => 'sim',
-            GESHI_BEFORE => '\\1',
-            GESHI_AFTER => '\\3'
-            ),
-        9 => array(
-            GESHI_SEARCH => '(^\\s*)(DATALINES.*)(^\\s*;\\s*$)',
-            GESHI_REPLACE => '\\2',
-            GESHI_MODIFIERS => 'sim',
-            GESHI_BEFORE => '\\1',
-            GESHI_AFTER => '\\3'
-            )
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_MAYBE,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/sass.php b/wiki/vendor/geshi/geshi/src/geshi/sass.php
deleted file mode 100644
index a4408a9..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/sass.php
+++ /dev/null
@@ -1,590 +0,0 @@
-<?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/wiki/vendor/geshi/geshi/src/geshi/scala.php b/wiki/vendor/geshi/geshi/src/geshi/scala.php
deleted file mode 100644
index d288eb0..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/scala.php
+++ /dev/null
@@ -1,136 +0,0 @@
-<?php
-/*************************************************************************************
- * scala.php
- * ----------
- * Author: Franco Lombardo (franco@francolombardo.net)
- * Copyright: (c) 2008 Franco Lombardo, Benny Baumann
- * Release Version: 1.0.9.0
- * Date Started: 2008/02/08
- *
- * Scala language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2008/02/08 (1.0.7.22)
- *   -  First Release
- *
- * TODO (updated 2007/04/27)
- * -------------------------
- *
- *************************************************************************************
- *
- *     This file is part of GeSHi.
- *
- *   GeSHi is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   GeSHi is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with GeSHi; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- ************************************************************************************/
-
-$language_data = array (
-    'LANG_NAME' => 'Scala',
-    'COMMENT_SINGLE' => array(1 => '//'),
-    'COMMENT_MULTI' => array('/*' => '*/'),
-    'COMMENT_REGEXP' => array(2 => "/\\'(?!\w\\'|\\\\)\w+(?=\s)/"),
-    '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 => "#\\\\x[\da-fA-F]{1,2}#i",
-        //Hexadecimal Char Specs (unicode)
-        3 => "#\\\\u[\da-fA-F]{1,4}#",
-        //Hexadecimal Char Specs (Extended Unicode)
-        4 => "#\\\\U[\da-fA-F]{1,8}#",
-        ),
-    'KEYWORDS' => array(
-        1 => array(
-            'abstract', 'case', 'catch', 'class', 'def',
-            'do', 'else', 'extends', 'false', 'final',
-            'finally', 'for', 'forSome', 'if', 'implicit',
-            'import', 'match', 'new', 'null', 'object',
-            'override', 'package', 'private', 'protected', 'requires',
-            'return', 'sealed', 'super', 'this', 'throw',
-            'trait', 'try', 'true', 'type', 'val',
-            'var', 'while', 'with', 'yield'
-            ),
-        2 => array(
-            'void', 'double', 'int', 'boolean', 'byte', 'short', 'long', 'char', 'float'
-            )
-        ),
-    'SYMBOLS' => array(
-        '(', ')', '[', ']', '{', '}', '*', '&', '%', '!', ';', '<', '>', '?',
-        '_', ':', '=', '=>', '<<:',
-        '<%', '>:', '#', '@'
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => true,
-        2 => true
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #0000ff; font-weight: bold;',
-            2 => 'color: #9999cc; font-weight: bold;',
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #008000; font-style: italic;',
-            2 => 'color: #CC66FF;',
-            'MULTI' => 'color: #00ff00; font-style: italic;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #6666ff; font-weight: bold;',
-            1 => 'color: #6666ff; font-weight: bold;',
-            2 => 'color: #5555ff; font-weight: bold;',
-            3 => 'color: #4444ff; font-weight: bold;',
-            4 => 'color: #3333ff; font-weight: bold;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #F78811;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #6666FF;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #F78811;'
-            ),
-        'METHODS' => array(
-            1 => 'color: #000000;',
-            2 => 'color: #000000;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #000080;'
-            ),
-        'SCRIPT' => array(
-            ),
-        'REGEXPS' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => 'http://scala-lang.org',
-        2 => ''
-        ),
-    'OOLANG' => true,
-    'OBJECT_SPLITTERS' => array(
-        1 => '.'
-        ),
-    'REGEXPS' => array(
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/scheme.php b/wiki/vendor/geshi/geshi/src/geshi/scheme.php
deleted file mode 100644
index 3230d5f..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/scheme.php
+++ /dev/null
@@ -1,168 +0,0 @@
-<?php
-/*************************************************************************************
- * scheme.php
- * ----------
- * Author: Jon Raphaelson (jonraphaelson@gmail.com)
- * Copyright: (c) 2005 Jon Raphaelson, Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.9.0
- * Date Started: 2004/08/30
- *
- * Scheme language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2005/09/22 (1.0.0)
- *  -  First Release
- *
- * TODO (updated 2005/09/22)
- * -------------------------
- *
- *************************************************************************************
- *
- *     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' => 'Scheme',
-    'COMMENT_SINGLE' => array(1 => ';'),
-    'COMMENT_MULTI' => array('#|' => '|#'),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array('"'),
-    'ESCAPE_CHAR' => '\\',
-    'KEYWORDS' => array(
-        1 => array(
-            'abs', 'acos', 'and', 'angle', 'append', 'appply', 'approximate',
-            'asin', 'assoc', 'assq', 'assv', 'atan',
-
-            'begin', 'boolean?', 'bound-identifier=?',
-
-            'caar', 'caddr', 'cadr', 'call-with-current-continuation',
-            'call-with-input-file', 'call-with-output-file', 'call/cc', 'car',
-            'case', 'catch', 'cdddar', 'cddddr', 'cdr', 'ceiling', 'char->integer',
-            'char-alphabetic?', 'char-ci<=?', 'char-ci<?', 'char-ci?', 'char-ci>=?',
-            'char-ci>?', 'char-ci=?', 'char-downcase', 'char-lower-case?',
-            'char-numeric', 'char-ready', 'char-ready?', 'char-upcase',
-            'char-upper-case?', 'char-whitespace?', 'char<=?', 'char<?', 'char=?',
-            'char>=?', 'char>?', 'char?', 'close-input-port', 'close-output-port',
-            'complex?', 'cond', 'cons', 'construct-identifier', 'cos',
-            'current-input-port', 'current-output-port',
-
-            'd', 'define', 'define-syntax', 'delay', 'denominator', 'display', 'do',
-
-            'e', 'eof-object?', 'eq?', 'equal?', 'eqv?', 'even?', 'exact->inexact',
-            'exact?', 'exp', 'expt', 'else',
-
-            'f', 'floor', 'for-each', 'force', 'free-identifer=?',
-
-            'gcd', 'gen-counter', 'gen-loser', 'generate-identifier',
-
-            'identifier->symbol', 'identifier', 'if', 'imag-part', 'inexact->exact',
-            'inexact?', 'input-port?', 'integer->char', 'integer?', 'integrate-system',
-
-            'l', 'lambda', 'last-pair', 'lcm', 'length', 'let', 'let*', 'letrec',
-            'list', 'list->string', 'list->vector', 'list-ref', 'list-tail', 'list?',
-            'load', 'log',
-
-            'magnitude', 'make-polar', 'make-promise', 'make-rectangular',
-            'make-string', 'make-vector', 'map', 'map-streams', 'max', 'member',
-            'memq', 'memv', 'min', 'modulo',
-
-            'negative', 'newline', 'nil', 'not', 'null?', 'number->string', 'number?',
-            'numerator',
-
-            'odd?', 'open-input-file', 'open-output-file', 'or', 'output-port',
-
-            'pair?', 'peek-char', 'positive?', 'procedure?',
-
-            'quasiquote', 'quote', 'quotient',
-
-            'rational', 'rationalize', 'read', 'read-char', 'real-part', 'real?',
-            'remainder', 'return', 'reverse',
-
-            's', 'sequence', 'set!', 'set-char!', 'set-cdr!', 'sin', 'sqrt', 'string',
-            'string->list', 'string->number', 'string->symbol', 'string-append',
-            'string-ci<=?', 'string-ci<?', 'string-ci=?', 'string-ci>=?',
-            'string-ci>?', 'string-copy', 'string-fill!', 'string-length',
-            'string-ref', 'string-set!', 'string<=?', 'string<?', 'string=?',
-            'string>=?', 'string>?', 'string?', 'substring', 'symbol->string',
-            'symbol?', 'syntax', 'syntax-rules',
-
-            't', 'tan', 'template', 'transcript-off', 'transcript-on', 'truncate',
-
-            'unquote', 'unquote-splicing', 'unwrap-syntax',
-
-            'vector', 'vector->list', 'vector-fill!', 'vector-length', 'vector-ref',
-            'vector-set!', 'vector?',
-
-            'with-input-from-file', 'with-output-to-file', 'write', 'write-char',
-
-            'zero?'
-            )
-        ),
-    'SYMBOLS' => array(
-        '(', ')', '{', '}', '[', ']', '!', '%', '^', '&', '/','+','-','*','=','<','>',';','|'
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #b1b100;'
-            ),
-        '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: #66cc66;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #ff0000;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #cc66cc;'
-            ),
-        'METHODS' => array(
-            0 => 'color: #202020;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #66cc66;'
-            ),
-        'REGEXPS' => array(
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => ''
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(
-        ),
-    'REGEXPS' => array(
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/scilab.php b/wiki/vendor/geshi/geshi/src/geshi/scilab.php
deleted file mode 100644
index 6b35520..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/scilab.php
+++ /dev/null
@@ -1,293 +0,0 @@
-<?php
-/*************************************************************************************
- * scilab.php
- * --------
- * Author: Christophe David (geshi@christophedavid.org)
- * Copyright: (c) 2008 Christophe David (geshi@christophedavid.org)
- * Release Version: 1.0.9.0
- * Date Started: 2008/08/04
- *
- * SciLab language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2008/08/25 (1.0.8.1)
- *   - Corrected with the help of Benny Baumann (BenBE@geshi.org)
- * 2008/08/04 (0.0.0.1)
- *   - First beta Release - known problem with ' used to transpose matrices considered as start of strings
- *
- *************************************************************************************
- *
- *     This file is part of GeSHi.
- *
- *   GeSHi is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   GeSHi is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with GeSHi; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- ************************************************************************************/
-
-$language_data = array (
-    'LANG_NAME' => 'SciLab',
-    'COMMENT_SINGLE' => array(1 => '//'),
-    'COMMENT_MULTI' => array(),
-    'COMMENT_REGEXP' => array(
-        2 => "/(?<=\)|\]|\w)'/"
-        ),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array('"'),
-    'ESCAPE_CHAR' => '\\',
-    'HARDQUOTE' => array("'", "'"),
-    'HARDESCAPE' => array(),
-    'KEYWORDS' => array(
-        1 => array(
-            'if', 'else', 'elseif', 'end', 'select', 'case', 'for', 'while', 'break'
-            ),
-        2 => array(
-            'STDIN', 'STDOUT', 'STDERR',
-            '%i', '%pi', '%e', '%eps', '%nan', '%inf', '%s', '%t', '%f',
-            'usual', 'polynomial', 'boolean', 'character', 'function', 'rational', 'state-space',
-            'sparse', 'boolean sparse', 'list', 'tlist', 'library', 'endfunction'
-            ),
-        3 => array(
-            '%asn', '%helps', '%k', '%sn', 'abcd', 'abinv', 'abort', 'about', 'About_M2SCI_tools',
-            'abs', 'acos', 'acosh', 'acoshm', 'acosm', 'AdCommunications', 'add_demo', 'add_edge',
-            'add_help_chapter', 'add_node', 'add_palette', 'addcolor', 'addf', 'addinter', 'addmenu',
-            'adj_lists', 'adj2sp', 'aff2ab', 'alufunctions', 'amell', 'analpf', 'analyze', 'and',
-            'ans', 'apropos', 'arc_graph', 'arc_number', 'arc_properties', 'argn', 'arhnk', 'arl2',
-            'arma', 'arma2p', 'armac', 'armax', 'armax1', 'arsimul', 'artest', 'articul', 'ascii',
-            'asciimat', 'asin', 'asinh', 'asinhm', 'asinm', 'assignation', 'atan', 'atanh', 'atanhm',
-            'atanm', 'augment', 'auread', 'auwrite', 'axes_properties', 'axis_properties', 'backslash',
-            'balanc', 'balreal', 'bandwr', 'banner','bar', 'barh', 'barhomogenize', 'basename', 'bdiag',
-            'beep', 'besselh', 'besseli', 'besselj', 'besselk', 'bessely', 'best_match', 'beta','bezout',
-            'bifish', 'bilin', 'binomial', 'black', 'bloc2exp', 'bloc2ss', 'bode', 'bool2s',
-            'boucle', 'brackets', 'browsevar', 'bsplin3val', 'bstap', 'buttmag', 'buttondialog',
-            'bvode', 'bvodeS', 'c_link', 'cainv', 'calendar', 'calerf', 'calfrq', 'call', 'canon', 'casc',
-            'cat', 'catch', 'ccontrg', 'cd', 'cdfbet', 'cdfbin', 'cdfchi', 'cdfchn', 'cdff', 'cdffnc',
-            'cdfgam', 'cdfnbn', 'cdfnor', 'cdfpoi', 'cdft', 'ceil', 'cell', 'cell2mat', 'cellstr', 'center',
-            'cepstrum', 'chain_struct', 'chaintest', 'champ', 'champ_properties', 'champ1', 'char', 'chart',
-            'chartooem', 'chdir', 'cheb1mag', 'cheb2mag', 'check_graph', 'chepol', 'chfact', 'chol', 'chsolve',
-            'circuit', 'classmarkov', 'clc', 'clean', 'clear', 'clear_pixmap', 'clearfun', 'clearglobal','clf',
-            'clipboard', 'close', 'cls2dls', 'cmb_lin', 'cmndred', 'cmoment', 'code2str', 'coeff', 'coff', 'coffg',
-            'colcomp', 'colcompr', 'colinout', 'colon', 'color', 'color_list', 'colorbar', 'colordef', 'colormap',
-            'colregul', 'comma', 'comments', 'comp', 'companion', 'comparison', 'Compound_properties', 'con_nodes',
-            'cond', 'config', 'configure_msvc', 'conj', 'connex', 'console', 'cont_frm', 'cont_mat', 'Contents',
-            'continue', 'contour', 'contour2d', 'contour2di', 'contourf', 'contr', 'contract_edge', 'contrss',
-            'convex_hull', 'convol', 'convstr', 'copfac', 'copy', 'corr', 'correl', 'cos', 'cosh', 'coshm',
-            'cosm', 'cotg', 'coth', 'cothm', 'covar', 'create_palette', 'cshep2d', 'csim', 'cspect', 'Cste',
-            'ctr_gram', 'cumprod', 'cumsum', 'cycle_basis', 'czt', 'dasrt', 'dassl', 'datafit', 'date', 'datenum',
-            'datevec', 'dbphi', 'dcf', 'ddp', 'debug', 'dec2hex', 'deff', 'definedfields', 'degree', 'delbpt',
-            'delete', 'delete_arcs', 'delete_nodes', 'delip', 'delmenu', 'demoplay', 'denom', 'derivat', 'derivative',
-            'des2ss', 'des2tf', 'det', 'determ', 'detr', 'detrend', 'dft', 'dhinf', 'dhnorm', 'diag', 'diary',
-            'diff', 'diophant', 'dir', 'dirname', 'disp', 'dispbpt', 'dispfiles', 'dlgamma', 'dnaupd', 'do', 'dot',
-            'double', 'dragrect', 'draw', 'drawaxis', 'drawlater', 'drawnow', 'driver', 'dsaupd', 'dscr',
-            'dsearch', 'dsimul', 'dt_ility', 'dtsi', 'edge_number', 'edit', 'edit_curv', 'edit_error',
-            'edit_graph', 'edit_graph_menus', 'editvar', 'eigenmarkov', 'ell1mag',
-            'empty', 'emptystr', 'eqfir', 'eqiir', 'equal', 'Equal', 'equil', 'equil1',
-            'ereduc', 'erf', 'erfc', 'erfcx', 'errbar', 'errcatch', 'errclear', 'error', 'error_table', 'etime',
-            'eval', 'eval_cshep2d', 'eval3d', 'eval3dp', 'evans', 'evstr', 'excel2sci', 'exec', 'execstr', 'exists',
-            'exit', 'exp', 'expm', 'external', 'extraction', 'eye', 'fac3d', 'factorial', 'factors', 'faurre', 'fchamp',
-            'fcontour', 'fcontour2d', 'fec', 'fec_properties', 'feedback', 'feval', 'ffilt', 'fft', 'fft2', 'fftshift',
-            'fgrayplot', 'figure', 'figure_properties', 'figure_style', 'file', 'fileinfo', 'fileparts', 'filter', 'find',
-            'find_freq', 'find_path', 'findABCD', 'findAC', 'findBD', 'findBDK', 'findm', 'findmsvccompiler', 'findobj',
-            'findR', 'findx0BD', 'firstnonsingleton', 'fit_dat', 'fix', 'floor', 'flts', 'foo', 'format',
-            'formatman', 'fort', 'fourplan', 'fplot2d', 'fplot3d', 'fplot3d1', 'fprintf', 'fprintfMat', 'frep2tf',
-            'freq', 'freson', 'frexp', 'frfit', 'frmag', 'fscanf', 'fscanfMat', 'fsfirlin', 'fsolve', 'fspecg',
-            'fstabst', 'fstair', 'ftest', 'ftuneq', 'full', 'fullfile', 'fullrf', 'fullrfk', 'fun2string', 'Funcall',
-            'funcprot', 'functions', 'funptr', 'fusee', 'G_make', 'g_margin', 'gainplot', 'gamitg',
-            'gamma', 'gammaln', 'gca', 'gcare', 'gcd', 'gce', 'gcf', 'gda', 'gdf', 'gen_net', 'genfac3d', 'genlib',
-            'genmarkov', 'geom3d', 'geomean', 'get', 'get_contents_infer', 'get_function_path', 'getcolor', 'getcwd',
-            'getd', 'getdate', 'getenv', 'getf', 'getfield', 'getfont', 'gethistory', 'getio', 'getlinestyle',
-            'getlongpathname', 'getmark', 'getmemory', 'getos', 'getpid', 'getscilabkeywords', 'getshell',
-            'getshortpathname', 'getsymbol', 'getvalue', 'getversion', 'gfare', 'gfrancis', 'girth', 'givens',
-            'glever', 'glist', 'global', 'GlobalProperty', 'glue', 'gmres', 'gpeche', 'gr_menu', 'graduate', 'grand',
-            'graph_2_mat', 'graph_center', 'graph_complement', 'graph_diameter', 'graph_power', 'graph_simp', 'graph_sum',
-            'graph_union', 'graphic', 'Graphics', 'graphics_entities', 'graph-list', 'graycolormap', 'grayplot',
-            'grayplot_properties', 'graypolarplot', 'great', 'grep', 'group', 'gschur', 'gsort', 'gspec', 'gstacksize',
-            'gtild', 'h_cl', 'h_inf', 'h_inf_st', 'h_norm', 'h2norm', 'halt', 'hamilton', 'hank', 'hankelsv', 'harmean',
-            'hat', 'havewindow', 'head_comments', 'help', 'help_skeleton', 'hermit', 'hess', 'hex2dec', 'hilb', 'hinf',
-            'hist3d', 'histplot', 'horner', 'host', 'hotcolormap', 'householder', 'hrmt', 'hsv2rgb', 'hsvcolormap',
-            'htrianr', 'hypermat', 'hypermatrices', 'iconvert', 'ieee', 'ifft', 'iir', 'iirgroup', 'iirlp',
-            'ilib_build', 'ilib_compile', 'ilib_for_link', 'ilib_gen_gateway', 'ilib_gen_loader', 'ilib_gen_Make',
-            'im_inv', 'imag', 'impl', 'imrep2ss', 'imult', 'ind2sub', 'Infer', 'inistate', 'input', 'insertion', 'int',
-            'int16', 'int2d', 'int32', 'int3d', 'int8', 'intc', 'intdec', 'integrate', 'interp', 'interp1', 'interp2d',
-            'interp3d', 'interpln', 'intersci', 'intersect', 'intg', 'intl', 'intppty', 'intsplin', 'inttrap', 'inttype',
-            'inv', 'inv_coeff', 'invr', 'invsyslin', 'iqr', 'is_connex', 'iscellstr', 'isdef', 'isdir', 'isempty',
-            'isequal', 'isequalbitwise', 'iserror', 'isglobal', 'isinf', 'isnan', 'isoview', 'isreal', 'javasci',
-            'jetcolormap', 'jmat', 'justify', 'kalm', 'karmarkar', 'kernel', 'keyboard', 'knapsack', 'kpure', 'krac2',
-            'kron', 'kroneck', 'label_properties', 'labostat', 'LANGUAGE', 'lasterror', 'lattn', 'lattp', 'lcf', 'lcm',
-            'lcmdiag', 'ldiv', 'ldivf', 'leastsq', 'left', 'legend', 'legend_properties', 'legendre', 'legends', 'length',
-            'leqr', 'less', 'lev', 'levin', 'lex_sort', 'lft', 'lgfft', 'lib', 'lin', 'lin2mu', 'lindquist',
-            'line_graph', 'linear_interpn', 'lines', 'LineSpec', 'linf', 'linfn', 'link', 'linmeq', 'linpro', 'linsolve',
-            'linspace', 'listfiles', 'listvarinfile', 'lmisolver', 'lmitool', 'load', 'load_graph', 'loadhistory',
-            'loadmatfile', 'loadplots', 'loadwave', 'locate', 'log', 'log10', 'log1p', 'log2', 'logm', 'logspace',
-            'lotest', 'lqe', 'lqg', 'lqg_ltr', 'lqg2stan', 'lqr', 'ls', 'lsq', 'lsq_splin', 'lsqrsolve', 'lsslist',
-            'lstcat', 'lstsize', 'ltitr', 'lu', 'ludel', 'lufact', 'luget', 'lusolve', 'lyap', 'm_circle', 'm2scideclare',
-            'macglov', 'macr2lst', 'macr2tree', 'macro', 'macrovar', 'mad', 'make_graph', 'make_index', 'makecell', 'man',
-            'manedit', 'mapsound', 'markp2ss', 'mat_2_graph', 'matfile2sci', 'Matlab-Scilab_character_strings', 'Matplot',
-            'Matplot_properties', 'Matplot1', 'matrices', 'matrix', 'max', 'max_cap_path', 'max_clique', 'max_flow',
-            'maxi', 'mcisendstring', 'mclearerr', 'mclose', 'mdelete', 'mean', 'meanf', 'median', 'menus', 'meof',
-            'merror', 'mese', 'mesh', 'mesh2d', 'meshgrid', 'mfft', 'mfile2sci', 'mfprintf', 'mfscanf', 'mget', 'mgeti',
-            'mgetl', 'mgetstr', 'milk_drop', 'min', 'min_lcost_cflow', 'min_lcost_flow1', 'min_lcost_flow2',
-            'min_qcost_flow', 'min_weight_tree', 'mine', 'mini', 'minreal', 'minss', 'minus', 'mkdir', 'mlist', 'mode',
-            'modulo', 'moment', 'mopen', 'move', 'mprintf', 'mps2linpro', 'mput', 'mputl', 'mputstr', 'mrfit', 'mscanf',
-            'msd', 'mseek', 'msprintf', 'msscanf', 'mstr2sci', 'mtell', 'mtlb_0', 'mtlb_a', 'mtlb_all', 'mtlb_any',
-            'mtlb_axis', 'mtlb_beta', 'mtlb_box', 'mtlb_close', 'mtlb_colordef', 'mtlb_conv', 'mtlb_cumprod', 'mtlb_cumsum',
-            'mtlb_dec2hex', 'mtlb_delete', 'mtlb_diag', 'mtlb_diff', 'mtlb_dir', 'mtlb_double', 'mtlb_e', 'mtlb_echo',
-            'mtlb_eig', 'mtlb_eval', 'mtlb_exist', 'mtlb_eye', 'mtlb_false', 'mtlb_fft', 'mtlb_fftshift', 'mtlb_find',
-            'mtlb_findstr', 'mtlb_fliplr', 'mtlb_fopen', 'mtlb_format', 'mtlb_fprintf', 'mtlb_fread', 'mtlb_fscanf',
-            'mtlb_full', 'mtlb_fwrite', 'mtlb_grid', 'mtlb_hold', 'mtlb_i', 'mtlb_ifft', 'mtlb_imp', 'mtlb_int16',
-            'mtlb_int32', 'mtlb_int8', 'mtlb_is', 'mtlb_isa', 'mtlb_isfield', 'mtlb_isletter', 'mtlb_isspace', 'mtlb_l',
-            'mtlb_legendre', 'mtlb_linspace', 'mtlb_load', 'mtlb_logic', 'mtlb_logical', 'mtlb_lower', 'mtlb_max',
-            'mtlb_min', 'mtlb_mode', 'mtlb_more', 'mtlb_num2str', 'mtlb_ones', 'mtlb_plot', 'mtlb_prod', 'mtlb_rand',
-            'mtlb_randn', 'mtlb_rcond', 'mtlb_realmax', 'mtlb_realmin', 'mtlb_repmat', 'mtlb_s', 'mtlb_save',
-            'mtlb_setstr', 'mtlb_size', 'mtlb_sort', 'mtlb_sparse', 'mtlb_strcmp', 'mtlb_strcmpi', 'mtlb_strfind',
-            'mtlb_strrep', 'mtlb_sum', 'mtlb_t', 'mtlb_toeplitz', 'mtlb_tril', 'mtlb_triu', 'mtlb_true', 'mtlb_uint16',
-            'mtlb_uint32', 'mtlb_uint8', 'mtlb_upper', 'mtlb_zeros', 'mu2lin', 'mucomp', 'mulf', 'mvvacov', 'name2rgb',
-            'names', 'nancumsum', 'nand2mean', 'nanmax', 'nanmean', 'nanmeanf', 'nanmedian', 'nanmin', 'nanstdev',
-            'nansum', 'narsimul', 'NDcost', 'ndgrid', 'ndims', 'nearfloat', 'nehari', 'neighbors', 'netclose', 'netwindow',
-            'netwindows', 'new', 'newaxes', 'newest', 'newfun', 'nextpow2', 'nf3d', 'nfreq', 'nlev', 'nnz', 'node_number',
-            'nodes_2_path', 'nodes_degrees', 'noisegen', 'norm', 'not', 'null', 'number_properties', 'numdiff', 'numer',
-            'nyquist', 'object_editor', 'obs_gram', 'obscont', 'obscont1', 'observer', 'obsv_mat', 'obsvss', 'ode',
-            'ode_discrete', 'ode_optional_output', 'ode_root', 'odedc', 'odeoptions', 'oemtochar', 'old_style',
-            'oldbesseli', 'oldbesselj', 'oldbesselk', 'oldbessely', 'oldload', 'oldplot', 'oldsave', 'ones',
-            'Operation', 'optim', 'or', 'orth', 'overloading', 'p_margin', 'param3d', 'param3d_properties',
-            'param3d1', 'paramfplot2d', 'parents', 'parrot', 'part', 'path_2_nodes', 'pathconvert', 'pause', 'pbig',
-            'pca', 'pcg', 'pdiv', 'pen2ea', 'pencan', 'penlaur', 'percent', 'perctl', 'perfect_match', 'perl',
-            'perms', 'permute', 'pertrans', 'pfss', 'phasemag', 'phc', 'pie', 'pinv', 'pipe_network', 'playsnd', 'plot',
-            'plot_graph', 'plot2d', 'plot2d_old_version', 'plot2d1', 'plot2d2', 'plot2d3', 'plot2d4', 'plot3d',
-            'plot3d_old_version', 'plot3d1', 'plot3d2', 'plot3d3', 'plotframe', 'plotprofile', 'plus', 'plzr',
-            'pmodulo', 'pol2des', 'pol2str', 'pol2tex', 'polar', 'polarplot', 'polfact', 'poly', 'polyline_properties',
-            'portr3d', 'portrait', 'power', 'ppol', 'prbs_a', 'predecessors', 'predef', 'print', 'printf',
-            'printf_conversion', 'printing', 'printsetupbox', 'prod', 'profile', 'progressionbar', 'proj', 'projsl',
-            'projspec', 'psmall', 'pspect', 'pvm', 'pvm_addhosts', 'pvm_barrier', 'pvm_bcast', 'pvm_bufinfo', 'pvm_config',
-            'pvm_delhosts', 'pvm_error', 'pvm_exit', 'pvm_f772sci', 'pvm_get_timer', 'pvm_getinst', 'pvm_gettid',
-            'pvm_gsize', 'pvm_halt', 'pvm_joingroup', 'pvm_kill', 'pvm_lvgroup', 'pvm_mytid', 'pvm_parent', 'pvm_probe',
-            'pvm_recv', 'pvm_reduce', 'pvm_sci2f77', 'pvm_send', 'pvm_set_timer', 'pvm_spawn', 'pvm_spawn_independent',
-            'pvm_start', 'pvm_tasks', 'pvm_tidtohost', 'pvmd3', 'pwd', 'qassign', 'qld', 'qmr', 'qr', 'quapro', 'quart',
-            'quaskro', 'quit', 'quote', 'rand', 'randpencil', 'range', 'rank', 'rankqr', 'rat',  'rcond',
-            'rdivf', 'read', 'read4b', 'readb', 'readc_', 'readmps', 'readxls', 'real', 'realtime', 'realtimeinit',
-            'rectangle_properties', 'recur', 'reglin', 'regress', 'remez', 'remezb', 'repfreq', 'replot', 'resethistory',
-            'residu', 'resume', 'return', 'rgb2name', 'ric_desc', 'ricc', 'riccati', 'rlist', 'rmdir', 'roots', 'rotate',
-            'round', 'routh_t', 'rowcomp', 'rowcompr', 'rowinout', 'rowregul', 'rowshuff', 'rpem', 'rref', 'rtitr',
-            'rubberbox', 'salesman', 'sample', 'samplef', 'samwr', 'save', 'save_format', 'save_graph', 'savehistory',
-            'savematfile', 'savewave', 'sca', 'scaling', 'scanf', 'scanf_conversion', 'scf', 'schur', 'sci_files',
-            'sci2exp', 'sci2for', 'sci2map', 'sciargs', 'SciComplex', 'SciComplexArray', 'SciDouble', 'SciDoubleArray',
-            'scilab', 'Scilab', 'ScilabEval', 'scilink', 'scipad', 'SciString', 'SciStringArray', 'sd2sci', 'sda', 'sdf',
-            'secto3d', 'segs_properties', 'semi', 'semicolon', 'semidef', 'sensi', 'set', 'set_posfig_dim',
-            'setbpt', 'setdiff', 'setenv', 'seteventhandler', 'setfield', 'sethomedirectory', 'setlanguage', 'setmenu',
-            'sfact', 'Sfgrayplot', 'Sgrayplot', 'sgrid', 'shortest_path', 'show_arcs', 'show_graph', 'show_nodes',
-            'show_pixmap', 'showprofile', 'sident', 'sign', 'Signal', 'signm', 'simp', 'simp_mode', 'sin', 'sinc',
-            'sincd', 'sinh', 'sinhm', 'sinm', 'size', 'slash', 'sleep', 'sm2des', 'sm2ss', 'smooth', 'solve',
-            'sorder', 'sort', 'sound', 'soundsec', 'sp2adj', 'spaninter', 'spanplus', 'spantwo', 'spchol',
-            'spcompack', 'spec', 'specfact', 'speye', 'spget', 'splin', 'splin2d', 'splin3d', 'split_edge', 'spones',
-            'sprand', 'sprintf', 'spzeros', 'sqroot', 'sqrt', 'sqrtm', 'square', 'squarewave', 'srfaur', 'srkf', 'ss2des',
-            'ss2ss', 'ss2tf', 'sscanf', 'sskf', 'ssprint', 'ssrand', 'st_deviation', 'st_ility', 'stabil', 'stacksize',
-            'star', 'startup', 'stdev', 'stdevf', 'str2code', 'strange', 'strcat', 'strindex', 'string', 'stringbox',
-            'strings', 'stripblanks', 'strong_con_nodes', 'strong_connex', 'strsplit', 'strsubst', 'struct', 'sub2ind',
-            'subf', 'subgraph', 'subplot', 'successors', 'sum', 'supernode', 'surf', 'surface_properties', 'sva',
-            'svd', 'svplot', 'sylm', 'sylv', 'symbols', 'sysconv', 'sysdiag', 'sysfact', 'syslin', 'syssize', 'system',
-            'systems', 'systmat', 'tabul', 'tan', 'tangent', 'tanh', 'tanhm', 'tanm', 'TCL_CreateSlave', 'TCL_DeleteInterp',
-            'TCL_EvalFile', 'TCL_EvalStr', 'TCL_ExistInterp', 'TCL_ExistVar', 'TCL_GetVar', 'TCL_GetVersion', 'TCL_SetVar',
-            'TCL_UnsetVar', 'TCL_UpVar', 'tdinit', 'testmatrix', 'texprint', 'text_properties', 'tf2des', 'tf2ss', 'then',
-            'thrownan', 'tic', 'tilda', 'time_id', 'timer', 'title', 'titlepage', 'TK_EvalFile', 'TK_EvalStr', 'tk_getdir',
-            'tk_getfile', 'TK_GetVar', 'tk_savefile', 'TK_SetVar',  'toc', 'toeplitz', 'tohome', 'tokenpos',
-            'tokens', 'toolbar', 'toprint', 'trace', 'trans', 'trans_closure', 'translatepaths', 'tree2code', 'trfmod',
-            'trianfml', 'tril', 'trimmean', 'trisolve', 'triu', 'try', 'trzeros', 'twinkle', 'type', 'Type', 'typename',
-            'typeof', 'ui_observer', 'uicontrol', 'uimenu', 'uint16', 'uint32', 'uint8', 'ulink', 'unglue', 'union',
-            'unique', 'unix', 'unix_g', 'unix_s', 'unix_w', 'unix_x', 'unobs', 'unsetmenu', 'unzoom', 'user', 'varargin',
-            'varargout', 'Variable', 'variance', 'variancef', 'varn', 'vectorfind', 'waitbar', 'warning', 'wavread',
-            'wavwrite', 'wcenter', 'wfir', 'what', 'where', 'whereami', 'whereis', 'who', 'who_user', 'whos',
-            'wiener', 'wigner', 'winclose', 'window', 'winlist', 'winopen', 'winqueryreg', 'winsid', 'with_atlas',
-            'with_gtk', 'with_javasci', 'with_pvm', 'with_texmacs', 'with_tk', 'writb', 'write', 'write4b', 'x_choices',
-            'x_choose', 'x_dialog', 'x_matrix', 'x_mdialog', 'x_message', 'x_message_modeless', 'xarc', 'xarcs', 'xarrows',
-            'xaxis', 'xbasc', 'xbasimp', 'xbasr', 'xchange', 'xclea', 'xclear', 'xclick', 'xclip', 'xdel', 'xend',
-            'xfarc', 'xfarcs', 'xfpoly', 'xfpolys', 'xfrect', 'xget', 'xgetech', 'xgetfile', 'xgetmouse', 'xgraduate',
-            'xgrid', 'xinfo', 'xinit', 'xlfont', 'xload', 'xls_open', 'xls_read', 'xmltohtml', 'xname', 'xnumb', 'xpause',
-            'xpoly', 'xpolys', 'xrect', 'xrects', 'xrpoly', 'xs2bmp', 'xs2emf', 'xs2eps', 'xs2fig', 'xs2gif', 'xs2ppm',
-            'xs2ps', 'xsave', 'xsegs', 'xselect', 'xset', 'xsetech', 'xsetm', 'xstring', 'xstringb', 'xstringl', 'xtape',
-            'xtitle', 'yulewalk', 'zeropen', 'zeros', 'zgrid', 'zoom_rect', 'zpbutt', 'zpch1', 'zpch2', 'zpell'
-            )
-        ),
-    'SYMBOLS' => array(
-        '<', '>', '=',
-        '!', '@', '~', '&', '|',
-        '+','-', '*', '/', '%',
-        ',', ';', '?', ':', "'"
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => true,
-        1 => true,
-        2 => true,
-        3 => true,
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #b1b100;',
-            2 => 'color: #000000; font-weight: bold;',
-            3 => 'color: #000066;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #666666; font-style: italic;',
-            2 => '',
-            'MULTI' => 'color: #666666; font-style: italic;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #000099; font-weight: bold;',
-            'HARD' => 'color: #000099; font-weight: bold;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #009900;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #ff0000;',
-            'HARD' => 'color: #ff0000;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #cc66cc;'
-            ),
-        'METHODS' => array(
-            1 => 'color: #006600;',
-            2 => 'color: #006600;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #339933;'
-            ),
-        'REGEXPS' => array(
-            0 => 'color: #0000ff;',
-            4 => 'color: #009999;',
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => 'http://www.scilab.org/product/dic-mat-sci/M2SCI_doc.htm',
-        2 => 'http://www.scilab.org/product/dic-mat-sci/M2SCI_doc.htm',
-        3 => 'http://www.scilab.org/product/dic-mat-sci/M2SCI_doc.htm'
-        ),
-    'OOLANG' => true,
-    'OBJECT_SPLITTERS' => array(
-        1 => '-&gt;',
-        2 => '::'
-        ),
-    'REGEXPS' => array(
-        //Variable
-        0 => '[\\$%@]+[a-zA-Z_][a-zA-Z0-9_]*',
-        //File Descriptor
-        4 => '&lt;[a-zA-Z_][a-zA-Z0-9_]*&gt;',
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/scl.php b/wiki/vendor/geshi/geshi/src/geshi/scl.php
deleted file mode 100644
index 761a0ac..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/scl.php
+++ /dev/null
@@ -1,148 +0,0 @@
-<?php
-/*************************************************************************************
- * <scl.php>
- * ---------------------------------
- * 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.
- *
- * A SCL langauge file.
- *
- * CHANGES
- * -------
- * <date-of-release> (<GeSHi release>)
- *  -  First Release
- *
- * TODO (updated <date-of-release>)
- * -------------------------
- * <things-to-do>
- *
- *************************************************************************************
- *
- *     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' => 'SCL',
-    'COMMENT_SINGLE' => array(1 => '//'),
-    'COMMENT_MULTI' => array('(*' => '*)'),
-    'CASE_KEYWORDS' => GESHI_CAPS_UPPER,
-    'QUOTEMARKS' => array("'"),
-    'ESCAPE_CHAR' => '$',
-    'KEYWORDS' => array(
-        1 => array(
-            'AND','ANY','ARRAY','AT','BEGIN','BLOCK_DB','BLOCK_FB','BLOCK_FC','BLOCK_SDB',
-            'BLOCK_SFB','BLOCK_SFC','BOOL','BY','BYTE','CASE','CHAR','CONST','CONTINUE','COUNTER',
-            'DATA_BLOCK','DATE','DATE_AND_TIME','DINT','DIV','DO','DT','DWORD','ELSE','ELSIF',
-            'EN','END_CASE','END_CONST','END_DATA_BLOCK','END_FOR','END_FUNCTION',
-            'END_FUNCTION_BLOCK','END_IF','END_LABEL','END_TYPE','END_ORGANIZATION_BLOCK',
-            'END_REPEAT','END_STRUCT','END_VAR','END_WHILE','ENO','EXIT','FALSE','FOR','FUNCTION',
-            'FUNCTION_BLOCK','GOTO','IF','INT','LABEL','MOD','NIL','NOT','OF','OK','OR',
-            'ORGANIZATION_BLOCK','POINTER','PROGRAM','REAL','REPEAT','RETURN','S5TIME','STRING',
-            'STRUCT','THEN','TIME','TIMER','TIME_OF_DAY','TO','TOD','TRUE','TYPE','VAR',
-            'VAR_TEMP','UNTIL','VAR_INPUT','VAR_IN_OUT','VAR_OUTPUT','VOID','WHILE','WORD','XOR'
-            ),
-        2 =>array(
-            'UBLKMOV','FILL','CREAT_DB','DEL_DB','TEST_DB','COMPRESS','REPL_VAL','CREA_DBL','READ_DBL',
-            'WRIT_DBL','CREA_DB','RE_TRIGR','STP','WAIT','MP_ALM','CiR','PROTECT','SET_CLK','READ_CLK',
-            'SNC_RTCB','SET_CLKS','RTM','SET_RTM','CTRL_RTM','READ_RTM','TIME_TCK','RD_DPARM',
-            'RD_DPARA','WR_PARM','WR_DPARM','PARM_MOD','WR_REC','RD_REC','RD_DPAR','RDREC','WRREC','RALRM',
-            'SALRM','RCVREC','PRVREC','SET_TINT','CAN_TINT','ACT_TINT','QRY_TINT','SRT_DINT','QRY_DINT',
-            'CAN_DINT','MSK_FLT','DMSK_FLT','READ_ERR','DIS_IRT','EN_IRT','DIS_AIRT','EN_AIRT','RD_SINFO',
-            'RDSYSST','WR_USMSG','OB_RT','C_DIAG','DP_TOPOL','UPDAT_PI','UPDAT_PO','SYNC_PI','SYNC_PO',
-            'SET','RSET','DRUM','GADR_LGC','LGC_GADR','RD_LGADR','GEO_LOG','LOG_GEO','DP_PRAL','DPSYC_FR',
-            'D_ACT_DP','DPNRM_DG','DPRD_DAT','DPWR_DAT','PN_IN','PN_OUT','PN_DP','WWW','IP_CONF','GETIO',
-            'SETIO','GETIO_PART','SETIO_PART','GD_SND','GD_RCV','USEND','URCV','BSEND','BRCV','PUT','GET',
-            'PRINT','START','STOP','RESUME','STATUS','USTATUS','CONTROL','C_CNTRL','X_SEND','X_RCV',
-            'X_GET','X_PUT','X_ABORT','I_GET','I_PUT','I_ABORT','TCON','TDISCON','TSEND','TRCV','TUSEND',
-            'TURCV','NOTIFY','NOTIFY_8P','ALARM','ALARM_8P','ALARM_8','AR_SEND','DIS_MSG','EN_MSG',
-            'ALARM_SQ','ALARM_S','ALARM_SC','ALARM_DQ','LARM_D','READ_SI','DEL_SI','TP','TON','TOF','CTU',
-            'CTD','CTUD','CONT_C','CONT_S','PULSEGEN','Analog','DIGITAL','COUNT','FREQUENC','PULSE',
-            'SEND_PTP','RECV_PTP','RES_RECV','SEND_RK','FETCH_RK','SERVE_RK','H_CTRL','state'
-            ),
-        ),
-    'SYMBOLS' => array(
-        '.', '"', '|', ';', ',', '=>', '>=', '<=', ':=', '=', '<', '>'
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false,
-        2 => false,
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #0000ff;',
-            2 => 'color: #ff6f00;',
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #009600; font-style: italic;',
-            'MULTI' => 'color: #009600; font-style: italic;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #000099; font-weight: bold;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #66cc66;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #ff0000;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #cc66cc;'
-            ),
-        'METHODS' => array(
-            0 => 'color: #006600;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #66cc66;'
-            ),
-        'REGEXPS' => array(
-            ),
-        'SCRIPT' => array(
-            0 => '',
-            1 => '',
-            2 => '',
-            3 => ''
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => ''
-        ),
-    'NUMBERS' => GESHI_NUMBER_INT_BASIC,
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(
-        1 => '',
-        2 => ''
-        ),
-    'REGEXPS' => array(
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        0 => array(
-            '<?php11!!' => '!!11?>'
-            ),
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        0 => false,
-        ),
-    'TAB_WIDTH' => 4
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/sdlbasic.php b/wiki/vendor/geshi/geshi/src/geshi/sdlbasic.php
deleted file mode 100644
index 170c665..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/sdlbasic.php
+++ /dev/null
@@ -1,163 +0,0 @@
-<?php
-/*************************************************************************************
- * sdlbasic.php
- * ------------
- * Author: Roberto Rossi
- * Copyright: (c) 2005 Roberto Rossi (http://rsoftware.altervista.org)
- * Release Version: 1.0.9.0
- * Date Started: 2005/08/19
- *
- * sdlBasic (http://sdlbasic.sf.net) language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2005/08/19 (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' => 'sdlBasic',
-    'COMMENT_SINGLE' => array(1 => "'", 2 => "rem", 3 => "!", 4 => "#"),
-    'COMMENT_MULTI' => array(),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array('"'),
-    'ESCAPE_CHAR' => '',
-    'KEYWORDS' => array(
-        1 => array(
-            'const', 'option', 'explicit', 'qbasic', 'include', 'argc',
-            'argv', 'command', 'command$', 'run', 'shell', 'os', 'declare',
-            'sub', 'function', 'return', 'while', 'wend', 'exit', 'end',
-            'continue', 'if', 'then', 'else', 'elseif',
-            'select', 'case', 'for', 'each', 'step',
-            'next', 'to', 'dim', 'shared', 'common', 'lbound', 'bound',
-            'erase', 'asc', 'chr', 'chr$', 'insert', 'insert$', 'instr', 'lcase',
-            'lcase$', 'left', 'left$', 'len', 'length', 'ltrim', 'ltrim$', 'mid',
-            'mid$', 'replace', 'replace$', 'replacesubstr', 'replacesubstr$',
-            'reverse', 'reverse$', 'right', 'right$', 'rinstr', 'rtrim', 'rtrim$',
-            'space', 'space$', 'str', 'str$', 'strf', 'strf$', 'string', 'string$',
-            'tally', 'trim', 'trim$', 'typeof', 'typeof$', 'ucase', 'ucase$', 'val',
-            'abs', 'acos', 'andbit', 'asin', 'atan', 'bitwiseand', 'bitwiseor',
-            'bitwisexor', 'cos', 'exp', 'fix', 'floor', 'frac', 'hex', 'hex$', 'int',
-            'log', 'min', 'max', 'orbit', 'randomize', 'rnd', 'round', 'sgn', 'sin',
-            'sqr', 'tan', 'xorbit', 'open', 'as', 'file', 'input', 'close', 'output',
-            'append', 'eof', 'fileexists', 'filecopy', 'filemove', 'filerename',
-            'freefile', 'kill', 'loc', 'lof', 'readbyte', 'rename', 'seek',
-            'writebyte', 'chdir', 'dir', 'dir$', 'direxists', 'dirfirst', 'dirnext',
-            'mkdir', 'rmdir', 'print', 'date', 'date$', 'time', 'time$', 'ticks',
-            'data', 'read', 'reservebank', 'freebank', 'copybank', 'loadbank',
-            'savebank', 'setbank', 'sizebank', 'poke', 'doke', 'loke', 'peek', 'deek',
-            'leek', 'memcopy', 'setdisplay', 'setcaption', 'caption', 'displaywidth',
-            'displayheight', 'displaybpp', 'screen', 'directscreen', 'screenopen',
-            'screenclose', 'screenclone', 'screencopy', 'screenfade', 'screenfadein',
-            'screencrossfade', 'screenalpha', 'screenlock', 'screenunlock',
-            'screenrect', 'xscreenrect', 'yscreenrect', 'wscreenrect', 'hscreenrect',
-            'flagscreenrect', 'screenwidth', 'screenheight', 'offset', 'xoffset',
-            'yoffset', 'cls', 'screenswap', 'autoback', 'setautoback',
-            'dualplayfield', 'waitvbl', 'fps', 'rgb', 'enablepalette', 'color',
-            'palette', 'colorcycling', 'ink', 'point', 'dot', 'plot', 'line', 'box',
-            'bar', 'circle', 'fillcircle', 'ellipse', 'fillellipse', 'paint',
-            'loadimage', 'saveimage', 'loadsound', 'savesound', 'loadmusic',
-            'hotspot', 'setcolorkey', 'imageexists', 'imagewidth', 'imageheight',
-            'deleteimage', 'copyimage', 'setalpha', 'zoomimage', 'rotateimage',
-            'rotozoomimage', 'blt', 'pastebob', 'pasteicon', 'grab', 'spriteclip',
-            'sprite', 'deletesprite', 'xsprite', 'ysprite', 'spritewidth',
-            'spriteheight', 'frsprite', 'livesprite', 'spritehit', 'autoupdatesprite',
-            'updatesprite', 'setbob', 'bob', 'deletebob', 'xbob', 'ybob', 'bobwidth',
-            'bobheight', 'frbob', 'livebob', 'bobhit', 'autoupdatebob', 'updatebob',
-            'text', 'setfont', 'textrender', 'pen', 'paper', 'prints', 'locate',
-            'atx', 'aty', 'curson', 'cursoff', 'inputs', 'zoneinputs',
-            'isenabledsound', 'soundexists', 'deletesound', 'copysound',
-            'musicexists', 'playsound', 'volumesound', 'stopsound', 'pausesound',
-            'resumesound', 'vumetersound', 'positionsound', 'soundchannels',
-            'playmusic', 'positionmusic', 'stopmusic', 'fademusic', 'pausemusic',
-            'resumemusic', 'rewindmusic', 'volumemusic', 'speedmusic', 'numdrivescd',
-            'namecd', 'getfreecd', 'opencd', 'indrivecd', 'trackscd', 'curtrackcd',
-            'curframecd', 'playcd', 'playtrackscd',
-            'pausecd', 'resumecd', 'stopcd', 'ejectcd', 'closecd', 'tracktypecd',
-            'tracklengthcd', 'trackoffsetcd', 'key', 'inkey', 'waitkey', 'xmouse',
-            'ymouse', 'xmousescreen', 'ymousescreen', 'bmouse', 'changemouse',
-            'locatemouse', 'mouseshow', 'mousehide', 'mousezone', 'numjoysticks',
-            'namejoystick', 'numaxesjoystick', 'numballsjoystick', 'numhatsjoystick',
-            'numbuttonsjoystick', 'getaxisjoystick', 'gethatjoystick',
-            'getbuttonjoystick', 'xgetballjoystick', 'ygetballjoystick', 'joy',
-            'bjoy', 'wait', 'timer', 'isenabledsock', 'getfreesock', 'opensock',
-            'acceptsock', 'isserverready', 'connectsock', 'connectionreadysock',
-            'isclientready', 'losesock', 'peeksock', 'readsock', 'readbytesock',
-            'readlinesock', 'writesock', 'writebytesock', 'writelinesock',
-            'getremoteip', 'getremoteport', 'getlocalip'
-            )
-        ),
-    'SYMBOLS' => array(
-        '(', ')'
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #b1b100;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #808080;',
-            2 => 'color: #808080;',
-            3 => 'color: #808080;',
-            4 => 'color: #808080;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #66cc66;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #ff0000;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #cc66cc;'
-            ),
-        'METHODS' => array(
-            0 => 'color: #66cc66;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #66cc66;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #000099;'
-            ),
-        'SCRIPT' => array(
-            ),
-        'REGEXPS' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => ''
-        ),
-    'OOLANG' => true,
-    'OBJECT_SPLITTERS' => array(
-        1 => '.'
-        ),
-    'REGEXPS' => array(
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/smalltalk.php b/wiki/vendor/geshi/geshi/src/geshi/smalltalk.php
deleted file mode 100644
index d57e543..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/smalltalk.php
+++ /dev/null
@@ -1,152 +0,0 @@
-<?php
-/*************************************************************************************
- * smalltalk.php
- * --------
- * Author: Bananeweizen (Bananeweizen@gmx.de)
- * Copyright: (c) 2005 Bananeweizen (www.bananeweizen.de)
- * Release Version: 1.0.9.0
- * Date Started: 2005/03/27
- *
- * Smalltalk language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2006-05-24 (1.0.0)
- *   -  First Release
- *
- * TODO
- * -------------------------
- * * recognize nested array symbols correctly
- *
- *************************************************************************************
- *
- *     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' => 'Smalltalk',
-    'COMMENT_SINGLE' => array(),
-    'COMMENT_MULTI' => array('"' => '"'),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array("'"),
-    'ESCAPE_CHAR' => '',
-    'KEYWORDS' => array(
-        1 => array(
-            'self','super','true','false','nil'
-            )
-        ),
-    'SYMBOLS' => array(
-        '[', ']', '=' , ':=', '(', ')', '#'
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => true
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #7f007f;'
-            ),
-        'COMMENTS' => array(
-            'MULTI' => 'color: #007f00; font-style: italic;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => ''
-            ),
-        'BRACKETS' => array(
-            0 => ''
-            ),
-        'STRINGS' => array(
-            0 => 'color: #7f0000;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #7f0000;'
-            ),
-        'METHODS' => array(
-            0 => ''
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #000066; font-weight:bold;'
-            ),
-        'REGEXPS' => array(
-            0 => 'color: #0000ff;',
-            1 => 'color: #7f0000;',
-            2 => 'color: #7f0000;',
-            3 => 'color: #00007f;',
-            5 => 'color: #00007f;',
-            6 => 'color: #00007f;'
-            ),
-        'SCRIPT' => array(
-            0 => ''
-            )
-        ),
-    'URLS' => array(
-        1 => ''
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(
-        ),
-    'REGEXPS' => array(
-        0 => array(
-            GESHI_SEARCH => '([^a-zA-Z0-9_#<])([A-Z]+[a-zA-Z0-9_]*)(?!>)', //class names
-            GESHI_REPLACE => '\\2',
-            GESHI_MODIFIERS => '',
-            GESHI_BEFORE => '\\1',
-            GESHI_AFTER => ''
-            ),
-        1 => array(
-            GESHI_SEARCH => '(#+)([a-zA-Z0-9_]+)', //symbols
-            GESHI_REPLACE => '\\1\\2',
-            GESHI_MODIFIERS => '',
-            GESHI_BEFORE => '',
-            GESHI_AFTER => ''
-            ),
-        2 => array(
-            GESHI_SEARCH => '(#\s*\([^)]*\))', //array symbols
-            GESHI_REPLACE => '\\1',
-            GESHI_MODIFIERS => '',
-            GESHI_BEFORE => '',
-            GESHI_AFTER => ''
-            ),
-        3 => array(
-            GESHI_SEARCH => '<PIPE>([a-zA-Z0-9_\s]+)<PIPE>', //temporary variables
-            GESHI_REPLACE => '\\1',
-            GESHI_MODIFIERS => '',
-            GESHI_BEFORE => '|',
-            GESHI_AFTER => '|'
-            ),
-        5 => array(
-            GESHI_SEARCH => '([:(,=[.*\/+-]\s*(?!\d+\/))([a-zA-Z0-9_]+)', //message parameters, message receivers
-            GESHI_REPLACE => '\\2',
-            GESHI_MODIFIERS => 's',
-            GESHI_BEFORE => '\\1',
-            GESHI_AFTER => ''
-            ),
-        6 => array(
-            GESHI_SEARCH => '([a-zA-Z0-9_]+)(\s*:=)', //assignment targets
-            GESHI_REPLACE => '\\1',
-            GESHI_MODIFIERS => '',
-            GESHI_BEFORE => '',
-            GESHI_AFTER => '\\2'
-            )
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/smarty.php b/wiki/vendor/geshi/geshi/src/geshi/smarty.php
deleted file mode 100644
index cb8833f..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/smarty.php
+++ /dev/null
@@ -1,190 +0,0 @@
-<?php
-/*************************************************************************************
- * smarty.php
- * ----------
- * Author: Alan Juden (alan@judenware.org)
- * Copyright: (c) 2004 Alan Juden, Nigel McNie (http://qbnz.com/highlighter/)
- * Release Version: 1.0.9.0
- * Date Started: 2004/07/10
- *
- * Smarty template language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2004/11/27 (1.0.0)
- *  -  Initial Release
- *
- * TODO
- * ----
- *
- *************************************************************************************
- *
- *     This file is part of GeSHi.
- *
- *   GeSHi is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   GeSHi is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with GeSHi; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- ************************************************************************************/
-
-$language_data = array (
-    'LANG_NAME' => 'Smarty',
-    'COMMENT_SINGLE' => array(),
-    'COMMENT_MULTI' => array('{*' => '*}'),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array("'", '"'),
-    'ESCAPE_CHAR' => '\\',
-    'KEYWORDS' => array(
-        1 => array(
-            '$smarty', 'now', 'const', 'capture', 'config', 'section', 'foreach', 'template', 'version', 'ldelim', 'rdelim',
-            'foreachelse', 'include', 'include_php', 'insert', 'if', 'elseif', 'else', 'php',
-            'sectionelse', 'is_cached',
-            ),
-        2 => array(
-            'capitalize', 'count_characters', 'cat', 'count_paragraphs', 'count_sentences', 'count_words', 'date_format',
-            'default', 'escape', 'indent', 'lower', 'nl2br', 'regex_replace', 'replace', 'spacify', 'string_format',
-            'strip', 'strip_tags', 'truncate', 'upper', 'wordwrap',
-            ),
-        3 => array(
-            'counter', 'cycle', 'debug', 'eval', 'html_checkboxes', 'html_image', 'html_options',
-            'html_radios', 'html_select_date', 'html_select_time', 'html_table', 'math', 'mailto', 'popup_init',
-            'popup', 'textformat'
-            ),
-        4 => array(
-            '$template_dir', '$compile_dir', '$config_dir', '$plugins_dir', '$debugging', '$debug_tpl',
-            '$debugging_ctrl', '$autoload_filters', '$compile_check', '$force_compile', '$caching', '$cache_dir',
-            '$cache_lifetime', '$cache_handler_func', '$cache_modified_check', '$config_overwrite',
-            '$config_booleanize', '$config_read_hidden', '$config_fix_newlines', '$default_template_handler_func',
-            '$php_handling', '$security', '$secure_dir', '$security_settings', '$trusted_dir', '$left_delimiter',
-            '$right_delimiter', '$compiler_class', '$request_vars_order', '$request_use_auto_globals',
-            '$error_reporting', '$compile_id', '$use_sub_dirs', '$default_modifiers', '$default_resource_type'
-            ),
-        5 => array(
-            'append', 'append_by_ref', 'assign', 'assign_by_ref', 'clear_all_assign', 'clear_all_cache',
-            'clear_assign', 'clear_cache', 'clear_compiled_tpl', 'clear_config', 'config_load', 'display',
-            'fetch', 'get_config_vars', 'get_registered_object', 'get_template_vars',
-            'load_filter', 'register_block', 'register_compiler_function', 'register_function',
-            'register_modifier', 'register_object', 'register_outputfilter', 'register_postfilter',
-            'register_prefilter', 'register_resource', 'trigger_error', 'template_exists', 'unregister_block',
-            'unregister_compiler_function', 'unregister_function', 'unregister_modifier', 'unregister_object',
-            'unregister_outputfilter', 'unregister_postfilter', 'unregister_prefilter', 'unregister_resource'
-            ),
-        6 => array(
-            'name', 'file', 'scope', 'global', 'key', 'once', 'script',
-            'loop', 'start', 'step', 'max', 'show', 'values', 'value', 'from', 'item'
-            ),
-        7 => array(
-            'eq', 'neq', 'ne', 'lte', 'gte', 'ge', 'le', 'not', 'mod'
-            ),
-        8 => array(
-            // some common php functions
-            'isset', 'is_array', 'empty', 'count', 'sizeof'
-            )
-        ),
-    'SYMBOLS' => array(
-        '/', '=', '==', '!=', '>', '<', '>=', '<=', '!', '%'
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false,
-        2 => false,
-        3 => false,
-        4 => false,
-        5 => false,
-        6 => false,
-        7 => false,
-        8 => false
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #0600FF;',        //Functions
-            2 => 'color: #008000;',        //Modifiers
-            3 => 'color: #0600FF;',        //Custom Functions
-            4 => 'color: #804040;',        //Variables
-            5 => 'color: #008000;',        //Methods
-            6 => 'color: #6A0A0A;',        //Attributes
-            7 => 'color: #D36900;',        //Text-based symbols
-            8 => 'color: #0600FF;'        //php functions
-            ),
-        'COMMENTS' => array(
-            'MULTI' => 'color: #008080; font-style: italic;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #000099; font-weight: bold;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #D36900;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #ff0000;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #cc66cc;'
-            ),
-        'METHODS' => array(
-            1 => 'color: #006600;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #D36900;'
-            ),
-        'SCRIPT' => array(
-            0 => '',
-            1 => 'color: #808080; font-style: italic;',
-            2 => 'color: #009000;'
-            ),
-        'REGEXPS' => array(
-            0 => 'color: #00aaff;'
-            )
-        ),
-    'URLS' => array(
-        1 => 'http://smarty.php.net/{FNAMEL}',
-        2 => 'http://smarty.php.net/{FNAMEL}',
-        3 => 'http://smarty.php.net/{FNAMEL}',
-        4 => 'http://smarty.php.net/{FNAMEL}',
-        5 => 'http://smarty.php.net/{FNAMEL}',
-        6 => '',
-        7 => 'http://smarty.php.net/{FNAMEL}',
-        8 => ''
-        ),
-    'OOLANG' => true,
-    'OBJECT_SPLITTERS' => array(
-        1 => '.'
-        ),
-    'REGEXPS' => array(
-        // variables
-        0 => '\$[a-zA-Z][a-zA-Z0-9_]*'
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_ALWAYS,
-    'SCRIPT_DELIMITERS' => array(
-        0 => array(
-            '{' => '}'
-            ),
-        1 => array(
-            '<!--' => '-->',
-        ),
-        2 => array(
-            '<' => '>'
-            )
-    ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        0 => true,
-        1 => false,
-        2 => false
-    ),
-    'PARSER_CONTROL' => array(
-        'KEYWORDS' => array(
-            'DISALLOWED_BEFORE' => "(?<![a-zA-Z0-9\$_\|\#;>|^])",
-            'DISALLOWED_AFTER' => "(?![a-zA-Z0-9_<\|%\\-&])"
-        )
-    )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/spark.php b/wiki/vendor/geshi/geshi/src/geshi/spark.php
deleted file mode 100644
index 30213ec..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/spark.php
+++ /dev/null
@@ -1,127 +0,0 @@
-<?php
-/*************************************************************************************
- * ada.php
- * -------
- * Author: Phil Thornley (tux@inmail.cz)
- * Copyright: (c) 2004 Phil Thornley (http://www.sparksure.com)
- * Release Version: 1.0.9.0
- * Date Started: 2010/08/22
- *
- * SPARK language file for GeSHi.
- *
- * Created by modifying Ada file version 1.0.2
- * Words are from SciTe configuration file
- *
- * CHANGES
- * -------
- * 2010/08/28 (1.0.0)
- *   -  First Release
- *
- * TODO (updated 2010/08/22)
- * -------------------------
- *
- *************************************************************************************
- *
- *     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' => 'SPARK',
-    'COMMENT_SINGLE' => array(1 => '--', 2 => '--#'),
-    'COMMENT_MULTI' => array('/*' => '*/'),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array('"'),
-    'ESCAPE_CHAR' => '\\',
-    'KEYWORDS' => array(
-        1 => array(
-            'begin', 'declare', 'do', 'else', 'elsif', 'exception', 'for', 'if',
-            'is', 'loop', 'while', 'then', 'end', 'select', 'case', 'until',
-            'goto', 'return'
-            ),
-        2 => array(
-            'abs', 'and', 'at', 'mod', 'not', 'or', 'rem', 'xor'
-            ),
-        3 => array(
-            'abort', 'abstract', 'accept', 'access', 'aliased', 'all', 'array',
-            'body', 'constant', 'delay', 'delta', 'digits', 'entry', 'exit',
-            'function', 'generic', 'in', 'interface', 'limited', 'new', 'null',
-            'of', 'others', 'out', 'overriding', 'package', 'pragma', 'private',
-            'procedure', 'protected', 'raise', 'range', 'record', 'renames',
-            'requeue', 'reverse', 'separate', 'subtype', 'synchronized',
-            'tagged', 'task', 'terminate', 'type', 'use', 'when', 'with'
-            )
-        ),
-    'SYMBOLS' => array(
-        '(', ')'
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false,
-        2 => false,
-        3 => false,
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #00007f;',
-            2 => 'color: #0000ff;',
-            3 => 'color: #46aa03; font-weight:bold;',
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #66cc66;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #adadad; font-style: italic;',
-            2 => 'color: #adadad; font-style: italic; font-weight: bold;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #000099; font-weight: bold;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #7f007f;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #ff0000;'
-            ),
-        'METHODS' => array(
-            1 => 'color: #202020;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #66cc66;'
-            ),
-        'REGEXPS' => array(
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => ''
-        ),
-    'OOLANG' => true,
-    'OBJECT_SPLITTERS' => array(
-        1 => '.'
-        ),
-    'REGEXPS' => array(
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/sparql.php b/wiki/vendor/geshi/geshi/src/geshi/sparql.php
deleted file mode 100644
index 68aaa5f..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/sparql.php
+++ /dev/null
@@ -1,153 +0,0 @@
-<?php
-/*************************************************************************************
- * sparql.php
- * -------
- * Author: Karima Rafes (karima.rafes@bordercloud.com)
- * Copyright: (c) 2011 Bourdercloud.com
- * Release Version: 1.0.9.0
- * Date Started: 2011/11/05
- *
- * SPARQL language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2011/11/05 (1.0.0)
- *  -  First Release
- *
- * TODO
- * ----
- *
- *************************************************************************************
- *
- *     This file is part of GeSHi.
- *
- *   GeSHi is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   GeSHi is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with GeSHi; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- ************************************************************************************/
-
-$language_data = array (
-    'LANG_NAME' => 'SPARQL',
-    'COMMENT_SINGLE' => array('#'),
-    'COMMENT_MULTI' => array('/*' => '*/' ),
-    'COMMENT_REGEXP' => array(
-        //IRI (it's not a comment ;)
-        1 => "/<[^> ]*>/i"
-        ),
-    'CASE_KEYWORDS' => 1,
-    'QUOTEMARKS' => array("'", '"', '`'),
-    'ESCAPE_CHAR' => '\\',
-    'KEYWORDS' => array(
-        1 => array(
-            'BASE','PREFIX','SELECT','DISTINCT','REDUCED','CONSTRUCT','DESCRIBE','ASK','FROM',
-            'NAMED','WHERE','ORDER','BY','ASC','DESC','LIMIT','OFFSET','OPTIONAL','GRAPH',
-            'UNION','FILTER','STR','LANG','LANGMATCHES','DATATYPE','BOUND','SAMETERM',
-            'ISIRI','ISURI','ISBLANK',
-            'ISLITERAL','REGEX','SUBSTR','TRUE',
-            'FALSE','LOAD','CLEAR',
-            'DROP','ADD','MOVE','COPY',
-            'CREATE','DELETE','INSERT',
-            'USING','SILENT','DEFAULT','ALL',
-            'DATA','WITH','INTO','TO',
-            'AS','GROUP','HAVING','UNDEF',
-            'BINDINGS','SERVICE','BIND','MINUS_KEYWORD',
-            'IRI','URI', 'BNODE',
-            'RAND','ABS','CEIL','FLOOR','ROUND',
-            'CONCAT','STRLEN',
-            'UCASE','LCASE','ENCODE_FOR_URI',
-            'CONTAINS','STRSTARTS',
-            'STRENDS','STRBEFORE',
-            'STRAFTER','REPLACE',
-            'YEAR','MONTH',
-            'DAY','HOURS',
-            'MINUTES','SECONDS',
-            'TIMEZONE','TZ',
-            'NOW','MD5',
-            'SHA1','SHA224',
-            'SHA256','SHA384',
-            'SHA512','COALESCE',
-            'IF','STRLANG','STRDT',
-            'ISNUMERIC','COUNT',
-            'SUM','MIN',
-            'MAX','AVG','SAMPLE',
-            'GROUP_CONCAT ','NOT',
-            'IN','EXISTS','SEPARATOR'
-            )
-        ),
-    'REGEXPS' => array(
-        //Variables without braces
-        1 => "\\?[a-zA-Z_][a-zA-Z0-9_]*",
-        //prefix
-        2 => "[a-zA-Z_.\\-0-9]*:",
-        //tag lang
-        3 => "@[^ .)}]*",
-        ),
-    'SYMBOLS' => array(
-        0 => array(
-            '{', '}' , '.', ';'
-            ),
-        1 => array(
-            '^^',
-            '<=','>=','!=','=','<','>','|',
-            '&&','||',
-            '(',')','[', ']',
-            '+','-','*','!','/'
-            ),
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #993333; font-weight: bold;'
-            ),
-        'COMMENTS' => array(
-            0 => 'color: #808080; font-style: italic;',
-            1 => 'color: #000078;',
-            //2 => 'color: #808080; font-style: italic;',
-            'MULTI' => 'color: #808080; font-style: italic;',
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #000099; font-weight: bold;'
-            ),
-        'BRACKETS' => array(),
-        'STRINGS' => array(
-            0 => 'color: #ff0000;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #FF63C3;'
-            ),
-        'METHODS' => array(
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #0000FF;',
-            1 => 'color: #FF8000; font-weight: bold;'
-            ),
-        'SCRIPT' => array(),
-        'REGEXPS' => array(
-            1 => 'color: #007800;',
-            2 => 'color: #780078;',
-            3 => 'color: #005078;'
-            )
-        ),
-    'URLS' => array(
-        1 => ''
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(),
-    'HIGHLIGHT_STRICT_BLOCK' => array()
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/sql.php b/wiki/vendor/geshi/geshi/src/geshi/sql.php
deleted file mode 100644
index b386729..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/sql.php
+++ /dev/null
@@ -1,168 +0,0 @@
-<?php
-/*************************************************************************************
- * sql.php
- * -------
- * Author: Nigel McNie (nigel@geshi.org)
- * Contributors:
- *  - Jürgen Thomas (Juergen.Thomas@vs-polis.de)
- * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.9.0
- * Date Started: 2004/06/04
- *
- * SQL language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2010/07/19 (1.0.8.9)
- *  -  Added many more keywords
- * 2008/05/23 (1.0.7.22)
- *  -  Added additional symbols for highlighting
- * 2004/11/27 (1.0.3)
- *  -  Added support for multiple object splitters
- * 2004/10/27 (1.0.2)
- *  -  Added "`" string delimiter
- *  -  Added "#" single comment starter
- * 2004/08/05 (1.0.1)
- *  -  Added support for symbols
- *  -  Added many more keywords (mostly MYSQL keywords)
- * 2004/07/14 (1.0.0)
- *  -  First Release
- *
- * TODO (updated 2004/11/27)
- * -------------------------
- * * Add all keywords
- * * Split this to several sql files - mysql-sql, ansi-sql 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' => 'SQL',
-    'COMMENT_SINGLE' => array(1 =>'--'),
-    'COMMENT_MULTI' => array('/*' => '*/'),
-    'CASE_KEYWORDS' => 1,
-    'QUOTEMARKS' => array("'", '"', '`'),
-    'ESCAPE_CHAR' => '\\',
-    'KEYWORDS' => array(
-        1 => array(
-            'ADD', 'ALL', 'ALTER', 'AND', 'AS', 'ASC', 'AUTO_INCREMENT',
-            'BEFORE', 'BEGIN', 'BETWEEN', 'BIGINT', 'BINARY', 'BLOB', 'BOOLEAN', 'BOTH', 'BY',
-            'CALL', 'CASE', 'CAST', 'CEIL', 'CEILING', 'CHANGE', 'CHAR', 'CHAR_LENGTH', 'CHARACTER',
-            'CHARACTER_LENGTH', 'CHECK', 'CLOB', 'COALESCE', 'COLLATE', 'COLUMN', 'COLUMNS',
-            'CONNECT', 'CONSTRAINT', 'CONVERT', 'COUNT', 'CREATE', 'CROSS', 'CURRENT',
-            'CURRENT_DATE', 'CURRENT_TIME', 'CURRENT_TIMESTAMP', 'CURRENT_USER',
-            'DATA', 'DATABASE', 'DATABASES', 'DATE', 'DAY', 'DEC', 'DECIMAL', 'DECLARE',
-            'DEFAULT', 'DELAYED', 'DELETE', 'DESC', 'DESCRIBE', 'DISTINCT', 'DOUBLE',
-            'DOMAIN', 'DROP',
-            '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',
-            'HAVING', 'HOUR',
-            'IDENTIFIED', 'IDENTITY', 'IF', 'IGNORE', 'IN', 'INCREMENT', 'INDEX', 'INFILE', 'INNER',
-            'INOUT', 'INPUT', 'INSERT', 'INT', 'INTEGER', 'INTERSECT', 'INTERSECTION', 'INTERVAL',
-            'INTO', 'IS',
-            'JOIN',
-            'KEY', 'KEYS', 'KILL',
-            'LANGUAGE', 'LARGE', 'LAST', 'LEADING', 'LEFT', 'LENGTH', 'LIKE', 'LIMIT', 'LINES', 'LOAD',
-            'LOCAL', 'LOCK', 'LOW_PRIORITY', 'LOWER',
-            'MATCH', 'MAX', 'MERGE', 'MIN', 'MINUTE', 'MOD', 'MODIFIES', 'MODIFY', 'MONTH',
-            'NATIONAL', 'NATURAL', 'NCHAR', 'NEW', 'NEXT', 'NEXTVAL', 'NONE', 'NOT',
-            'NULL', 'NULLABLE', 'NULLIF', 'NULLS', 'NUMBER', 'NUMERIC',
-            'OF', 'OLD', 'ON', 'ONLY', 'OPEN', 'OPTIMIZE', 'OPTION',
-            'OPTIONALLY', 'OR', 'ORDER', 'OUT', 'OUTER', 'OUTFILE', 'OVER',
-            'POSITION', 'POWER', 'PRECISION', 'PREPARE', 'PRIMARY', 'PROCEDURAL', 'PROCEDURE',
-            'READ', 'REAL', 'REF', 'REFERENCES', 'REFERENCING', 'REGEXP', 'RENAME', 'REPLACE',
-            'RESULT', 'RETURN', 'RETURNS', 'REVOKE', 'RIGHT', 'RLIKE', 'ROLLBACK', 'ROW',
-            'ROW_NUMBER', 'ROWS', 'RESTRICT', 'ROLE', 'ROUTINE', 'ROW_COUNT',
-            'SAVEPOINT', 'SEARCH', 'SECOND', 'SECTION', 'SELECT', 'SELF', 'SEQUENCE',
-            'SESSION', 'SET', 'SETVAL', 'SHOW', 'SIMILAR', 'SIZE', 'SMALLINT', 'SOME',
-            'SONAME', 'SOURCE', 'SPACE', 'SQL', 'SQRT', 'START', 'STATUS',
-            'STRAIGHT_JOIN', 'STRUCTURE', 'STYLE', 'SUBSTRING', 'SUM',
-            'TABLE', 'TABLE_NAME', 'TABLES', 'TERMINATED', 'TEMPORARY', 'THEN', 'TIME',
-            'TIMESTAMP', 'TO', 'TRAILING', 'TRANSACTION', 'TRIGGER', 'TRIM', 'TRUE', 'TRUNCATE',
-            'TRUSTED', 'TYPE',
-            'UNDER', 'UNION', 'UNIQUE', 'UNKNOWN', 'UNLOCK', 'UNSIGNED',
-            'UPDATE', 'UPPER', 'USE', 'USER', 'USING',
-            'VALUE', 'VALUES', 'VARCHAR', 'VARIABLES', 'VARYING', 'VIEW',
-            'WHEN', 'WHERE', 'WITH', 'WITHIN', 'WITHOUT', 'WORK', 'WRITE',
-            'XOR',
-            'YEAR',
-            'ZEROFILL'
-            )
-        ),
-    'SYMBOLS' => array(
-        '(', ')', '=', '<', '>', '|', ',', '.', '+', '-', '*', '/'
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #993333; font-weight: bold;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #808080; font-style: italic;',
-            //2 => 'color: #808080; font-style: italic;',
-            'MULTI' => 'color: #808080; font-style: italic;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #000099; font-weight: bold;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #66cc66;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #ff0000;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #cc66cc;'
-            ),
-        'METHODS' => array(
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #66cc66;'
-            ),
-        'SCRIPT' => array(
-            ),
-        'REGEXPS' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => ''
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(
-        ),
-    'REGEXPS' => array(
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        ),
-    'PARSER_CONTROL' => array(
-        'KEYWORDS' => array( //'
-            'DISALLOWED_BEFORE' => "(?<![a-zA-Z0-9\$_\.\|\#|^&])"
-            )
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/standardml.php b/wiki/vendor/geshi/geshi/src/geshi/standardml.php
deleted file mode 100644
index 9979ac5..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/standardml.php
+++ /dev/null
@@ -1,216 +0,0 @@
-<?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/wiki/vendor/geshi/geshi/src/geshi/stonescript.php b/wiki/vendor/geshi/geshi/src/geshi/stonescript.php
deleted file mode 100644
index 6ea1971..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/stonescript.php
+++ /dev/null
@@ -1,305 +0,0 @@
-<?php
-/*************************************************************************************
- * stonescript.php
- * --------
- * Author: Archimmersion ( based on ruby.php by Moises Deniz )
- * Copyright: (c) 2011 Archimmersion ( http://www.archimmersion.com )
- * Release Version: 1.0.9.0
- * Date Started: 2011/03/30
- *
- * StoneScript language file for GeSHi.
- *
- * StonesCript is a Lua based script language for the ShiVa3D game engine ( http://www.stonetrip.com )
- *
- * More information can be found at http://www.stonetrip.com/developer/doc/api/introduction
- *
- * CHANGES
- * -------
- * 2011/04/18 (1.0.8.11)
- *   -  Initial 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' => 'StoneScript',
-    'COMMENT_SINGLE' => array(1 => "--"),
-    'COMMENT_MULTI' => array("--[[" => "]]"),
-    'COMMENT_REGEXP' => array(
-        4 => '/<<\s*?(\w+)\\n.*?\\n\\1(?![a-zA-Z0-9])/si',
-        ),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array('"', '`','\''),
-    'ESCAPE_CHAR' => '\\',
-    'KEYWORDS' => array(
-        // Blue - General Keywords
-        1 => array(
-                'and', 'begin', 'break', 'do', 'else', 'elseif', 'end',
-                'for', 'if', 'in', 'while', 'next', 'not', 'or', 'redo',
-                'then', 'unless', 'until', 'when', 'false', 'nil', 'self',
-                'true', 'local', 'this', 'return',
-            ),
-        // Dark Blue - Main API names
-        2 => array(
-                'animation', 'application', 'cache', 'camera', 'debug',
-                'dynamics', 'group', 'hashtable', 'hud', 'input', 'light',
-                'log', 'math', 'mesh', 'microphone', 'music', 'navigation',
-                'network', 'object', 'pixelmap', 'projector', 'scene',
-                'sensor', 'server', 'session', 'sfx', 'shape', 'sound',
-                'string', 'system', 'table', 'user', 'video', 'xml',
-                // Plugin API names
-                'plasma', 'watersim',
-                'winDirectories',
-                'ActionSheet', 'Alert', 'Mail', 'Picker', 'StatusBar',
-            ),
-        // Constants
-        // Can be commented out if performance is crucial -> then these keywords will appear in a slightly lighter color
-        3 => array(
-                //Animation
-                'kPlaybackModeLoop', 'kPlaybackModeLoopMirrored', 'kPlaybackModeLoopReversed',
-                'kPlaybackModeOnce', 'kPlaybackModeOnceReversed',
-                //Application - Environment
-                'kStatusLoading', 'kStatusReady', 'kStatusSaving', // 'kStatusNone'
-                //Application - Options
-                'kOptionAudioMasterVolume', 'kOptionAutomaticVirtualKeyboard', 'kOptionDynamicShadowsBufferCount',
-                'kOptionDynamicShadowsBufferSize', 'kOptionDynamicShadowsConstantSampling', 'kOptionDynamicShadowsPCFSampleCount',
-                'kOptionDynamicShadowsQuality', 'kOptionDynamicShadowsScreenSpaceBlur', 'kOptionFullscreen',
-                'kOptionFullscreenHeight', 'kOptionFullscreenWidth', 'kOptionHardwareOcclusion',
-                'kOptionMaxEventBouncesPerFrame', 'kOptionNetworkStreams', 'kOptionNetworkStreamsUseBrowser',
-                'kOptionPrioritizeEventBounces', 'kOptionRenderingEnabled', 'kOptionShadersQuality',
-                'kOptionSwapInterval', 'kOptionTerrainsQuality', 'kOptionTexturesAnisotropyLevel',
-                'kOptionTexturesMipmapBias', 'kOptionTexturesQuality', 'kOptionViewportRotation',
-                //Application - Resource Types
-                'kResourceTypeAnimBank', 'kResourceTypeFont', 'kResourceTypeHUD',
-                'kResourceTypeMaterial', 'kResourceTypeMesh', 'kResourceTypeParticle',
-                'kResourceTypePixelMap', 'kResourceTypeSoundBank', 'kResourceTypeTexture',
-                'kResourceTypeTextureClip', 'kResourceTypeTrail',
-                //Cache
-                'kPropertyHeight', 'kPropertySize', 'kPropertyWidth',
-                //Dynamics
-                'kAxisX', 'kAxisY', 'kAxisZ',
-                'kTypeBox', 'kTypeCapsule', 'kTypeSphere',
-                //HUD
-                'kAddressingModeClamp', 'kAddressingModeRepeat', 'kAlignCenter', 'kAlignJustify','kAlignLeft', 'kAlignRight',
-                'kAlignTop', 'kBlendModeAdd', 'kBlendModeDefault', 'kBlendModeModulate', 'kCaseFixed', 'kCaseVariable',
-                'kCommandTypeCallAction', 'kCommandTypeCopyCheckStateToRegister', 'kCommandTypeCopyEditTextToRegister',
-                'kCommandTypeCopyListItemTextToRegister', 'kCommandTypeCopyListLastSelectedItemToRegister',
-                'kCommandTypeCopyProgressValueToRegister', 'kCommandTypeCopySliderValueToRegister', 'kCommandTypeCopyTagToRegister',
-                'kCommandTypeEnterModalMode', 'kCommandTypeInterpolateBackgroundColor', 'kCommandTypeInterpolateBorderColor',
-                'kCommandTypeInterpolateForegroundColor', 'kCommandTypeInterpolateHeight', 'kCommandTypeInterpolateOpacity',
-                'kCommandTypeInterpolatePosition', 'kCommandTypeInterpolateProgressValue', 'kCommandTypeInterpolateRotation',
-                'kCommandTypeInterpolateSize', 'kCommandTypeInterpolateWidth', 'kCommandTypeLeaveModalMode',
-                'kCommandTypeMatchScreenSpaceBottomLeftCorner', 'kCommandTypeMatchScreenSpaceBottomRightCorner',
-                'kCommandTypeMatchScreenSpaceCenter', 'kCommandTypeMatchScreenSpaceHeight', 'kCommandTypeMatchScreenSpaceTopLeftCorner',
-                'kCommandTypeMatchScreenSpaceTopRightCorner', 'kCommandTypeMatchScreenSpaceWidth', 'kCommandTypePauseMovie',
-                'kCommandTypePauseSound', 'kCommandTypePauseTimer', 'kCommandTypePlayMovie', 'kCommandTypePlaySound',
-                'kCommandTypePlaySoundLoop', 'kCommandTypeResumeSound', 'kCommandTypeSendEventToUser', 'kCommandTypeSetActive',
-                'kCommandTypeSetBackgroundColor', 'kCommandTypeSetBackgroundImage', 'kCommandTypeSetBackgroundImageUVOffset',
-                'kCommandTypeSetBackgroundImageUVScale', 'kCommandTypeSetBorderColor', 'kCommandTypeSetButtonText',
-                'kCommandTypeSetCheckState', 'kCommandTypeSetCheckText', 'kCommandTypeSetCursorPosition', 'kCommandTypeSetCursorVisible',
-                'kCommandTypeSetEditText', 'kCommandTypeSetFocus', 'kCommandTypeSetForegroundColor', 'kCommandTypeSetHeight',
-                'kCommandTypeSetLabelText', 'kCommandTypeSetOpacity', 'kCommandTypeSetPosition', 'kCommandTypeSetRotation',
-                'kCommandTypeSetSize', 'kCommandTypeSetVisible', 'kCommandTypeSetWidth', 'kCommandTypeSleep', 'kCommandTypeStartTimer',
-                'kCommandTypeStopAction', 'kCommandTypeStopMovie', 'kCommandTypeStopSound', 'kCommandTypeStopTimer',
-                'kComponentTypeButton', 'kComponentTypeCheck', 'kComponentTypeContainer', 'kComponentTypeEdit', 'kComponentTypeLabel',
-                'kComponentTypeList', 'kComponentTypeMovie', 'kComponentTypePicture', 'kComponentTypePixelMap', 'kComponentTypeProgress',
-                'kComponentTypeRenderMap', 'kComponentTypeSlider', 'kCursorShapeCross', 'kCursorShapeDefault', 'kCursorShapeHandPointing',
-                'kCursorShapeIBeam', 'kCursorShapeNone', 'kCursorShapeWaiting', 'kDirectionLeftToRight', 'kDirectionRightToLeft',
-                'kEncodingASCII', 'kEncodingUTF8', 'kEventTypeGainFocus', 'kEventTypeLooseFocus', 'kEventTypeMouseEnter',
-                'kEventTypeMouseLeave', 'kFillModeSolid', 'kInterpolatorTypeLinear', 'kInterpolatorTypePower2', 'kInterpolatorTypePower3',
-                'kInterpolatorTypePower4', 'kInterpolatorTypeRoot2', 'kInterpolatorTypeRoot3', 'kInterpolatorTypeRoot4',
-                'kInterpolatorTypeSpring1', 'kInterpolatorTypeSpring2', 'kInterpolatorTypeSpring3', 'kInterpolatorTypeSpring4',
-                'kInterpolatorTypeSpring5', 'kInterpolatorTypeSpring6',
-                'kOriginBottom', 'kOriginBottomLeft', 'kOriginBottomRight', 'kOriginCenter', 'kOriginLeft', 'kOriginRight',
-                'kOriginTop', 'kOriginTopLeft', 'kOriginTopRight', 'kProgressTypeBottomToTop', 'kProgressTypeLeftToRight',
-                'kProgressTypeRightToLeft', 'kProgressTypeTopToBottom', 'kRuntimeValueCallArgument0', 'kRuntimeValueCallArgument1',
-                'kRuntimeValueCallArgument2', 'kRuntimeValueCallArgument3', 'kRuntimeValueCurrentUser', 'kRuntimeValueCurrentUserMainCamera',
-                'kRuntimeValueRegister0', 'kRuntimeValueRegister1', 'kRuntimeValueRegister2', 'kRuntimeValueRegister3',
-                'kShapeTypeEllipsoid', 'kShapeTypeRectangle', 'kShapeTypeRoundRectangle', 'kSliderTypeBottomToTop',
-                'kSliderTypeLeftToRight', 'kSliderTypeRightToLeft', 'kSliderTypeTopToBottom', 'kWaveTypeConstant',
-                'kWaveTypeSawtooth', 'kWaveTypeSawtoothInv', 'kWaveTypeSinus', 'kWaveTypeSinusNoise', 'kWaveTypeSquare', 'kWaveTypeTriangle',
-                //Input
-                'kJoypadTypeIPhone', 'kJoypadTypeNone', 'kJoypadTypePhone', 'kJoypadTypeStandard', 'kJoypadTypeWiimote',
-                'kKey0', 'kKey1', 'kKey2', 'kKey3', 'kKey4', 'kKey5', 'kKey6', 'kKey7', 'kKey8', 'kKey9', 'kKeyA', 'kKeyB',
-                'kKeyBackspace', 'kKeyC', 'kKeyD', 'kKeyDelete', 'kKeyDown', 'kKeyE', 'kKeyEnd', 'kKeyEscape', 'kKeyF',
-                'kKeyF1', 'kKeyF10', 'kKeyF11', 'kKeyF12', 'kKeyF2', 'kKeyF3', 'kKeyF4', 'kKeyF5', 'kKeyF6', 'kKeyF7',
-                'kKeyF8', 'kKeyF9', 'kKeyG', 'kKeyH', 'kKeyHome', 'kKeyI', 'kKeyInsert', 'kKeyJ', 'kKeyK', 'kKeyL',
-                'kKeyLAlt', 'kKeyLControl', 'kKeyLeft', 'kKeyLShift', 'kKeyM', 'kKeyN', 'kKeyO', 'kKeyP', 'kKeyPageDown',
-                'kKeyPageUp', 'kKeyQ', 'kKeyR', 'kKeyRAlt', 'kKeyRControl', 'kKeyReturn', 'kKeyRight', 'kKeyRShift',
-                'kKeyS', 'kKeySpace', 'kKeyT', 'kKeyTab', 'kKeyU', 'kKeyUp', 'kKeyV', 'kKeyW', 'kKeyX', 'kKeyY',
-                'kKeyZ', 'kJoypadButtonPSPCircle', 'kJoypadButtonPSPCross', 'kJoypadButtonPSPDown', 'kJoypadButtonPSPL',
-                'kJoypadButtonPSPLeft', 'kJoypadButtonPSPR', 'kJoypadButtonPSPRight', 'kJoypadButtonPSPSelect',
-                'kJoypadButtonPSPSquare', 'kJoypadButtonPSPStart', 'kJoypadButtonPSPTriangle', 'kJoypadButtonPSPUp',
-                'kJoypadTypePSP', 'kJoypadButtonWiimoteA', 'kJoypadButtonWiimoteB', 'kJoypadButtonWiimoteC',
-                'kJoypadButtonWiimoteDown', 'kJoypadButtonWiimoteHome', 'kJoypadButtonWiimoteLeft',
-                'kJoypadButtonWiimoteMinus', 'kJoypadButtonWiimoteOne', 'kJoypadButtonWiimotePlus',
-                'kJoypadButtonWiimoteRight', 'kJoypadButtonWiimoteTwo', 'kJoypadButtonWiimoteUp', 'kJoypadButtonWiimoteZ',
-                //Light
-                'kTypeDirectional', 'kTypePoint',
-                //Math
-                'kEpsilon', 'kInfinity', 'kPi',
-                //Mesh
-                'kLockModeRead', 'kLockModeWrite', 'kLockReadWrite',
-                //Network
-                'kBluetoothServerPort', 'kDefaultServerPort', 'kStatusAuthenticated', 'kStatusSearchFinished', // 'kStatusNone', 'kStatusPending',
-                //Object
-                'kControllerTypeAI', 'kControllerTypeAnimation', 'kControllerTypeAny', 'kControllerTypeDynamics',
-                'kControllerTypeNavigation', 'kControllerTypeSound', 'kGlobalSpace', 'kLocalSpace', 'kParentSpace',
-                'kTransformOptionInheritsParentRotation', 'kTransformOptionInheritsParentScale', 'kTransformOptionInheritsParentTranslation',
-                'kTransformOptionTranslationAffectedByParentRotation', 'kTransformOptionTranslationAffectedByParentScale', 'kTypeCamera',
-                'kTypeCollider', 'kTypeDummy', 'kTypeGroup', 'kTypeLight', 'kTypeOccluder', 'kTypeProjector', 'kTypeReflector',
-                'kTypeSensor', 'kTypeSfx', 'kTypeShape',
-                //Pixelmap
-                'kBlendModeDecal', 'kBlendModeReplace', 'kFillModeBrush', 'kFillModeNone', 'kPenModeBrush', // 'kFillModeSolid',
-                'kPenModeNone', 'kPenModeSolid',
-                //Projector
-                'kMapTypeMovie', 'kMapTypePixelMap', 'kMapTypeRenderMap', 'kMapTypeTexture', 'kMapTypeTextureClip',
-                //Scene
-                'kFilteringModeBilinear', 'kFilteringModeNearest', 'kFilteringModeTrilinear', // 'kAddressingModeClamp', 'kAddressingModeRepeat',
-                'kSkyBoxFaceBack', 'kSkyBoxFaceBottom', 'kSkyBoxFaceFront', 'kSkyBoxFaceLeft', 'kSkyBoxFaceRight', 'kSkyBoxFaceTop',
-                //Sensor
-                'kShapeTypeBox', 'kShapeTypeSphere',
-                //Server
-                'kStatusConnected', 'kStatusNone', 'kStatusPending',
-                //Session - duplicate keywords
-                //'kStatusConnected', 'kStatusNone', 'kStatusPending',
-                //Shape
-                'kMapTypeUnknown', 'kCurveTypeBezier', 'kCurveTypeBSpline', 'kCurveTypeCatmullRom', 'kCurveTypePolyLine',
-                // 'kMapTypeMovie', 'kMapTypePixelMap', 'kMapTypeRenderMap', 'kMapTypeTexture',  'kMapTypeTextureClip',
-
-                //System
-                'kOSType3DS', 'kOSTypeBada', 'kOSTypeBrew', 'kOSTypePalm', 'kOSTypePS3',
-                'kClientTypeEditor', 'kClientTypeEmbedded', 'kClientTypeStandalone',
-                'kGPUCapabilityBloomFilterSupport', 'kGPUCapabilityContrastFilterSupport', 'kGPUCapabilityDepthBlurFilterSupport',
-                'kGPUCapabilityDistortionFilterSupport', 'kGPUCapabilityDynamicShadowsSupport', 'kGPUCapabilityHardwareOcclusionSupport',
-                'kGPUCapabilityHardwareRenderingSupport', 'kGPUCapabilityMonochromeFilterSupport', 'kGPUCapabilityMotionBlurFilterSupport',
-                'kGPUCapabilityPixelShaderSupport', 'kGPUCapabilityVelocityBlurFilterSupport', 'kGPUCapabilityVertexShaderSupport',
-                'kLanguageAlbanian', 'kLanguageArabic', 'kLanguageBulgarian', 'kLanguageCatalan', 'kLanguageCzech', 'kLanguageDanish',
-                'kLanguageDutch', 'kLanguageEnglish', 'kLanguageFinnish', 'kLanguageFrench', 'kLanguageGerman', 'kLanguageGreek',
-                'kLanguageHebrew', 'kLanguageHungarian', 'kLanguageIcelandic', 'kLanguageItalian', 'kLanguageJapanese', 'kLanguageKorean',
-                'kLanguageNorwegian', 'kLanguagePolish', 'kLanguagePortuguese', 'kLanguageRomanian', 'kLanguageRussian',
-                'kLanguageSerboCroatian', 'kLanguageSlovak', 'kLanguageSpanish', 'kLanguageSwedish', 'kLanguageThai',
-                'kLanguageTurkish', 'kLanguageUnknown', 'kLanguageUrdu', 'kOSTypeAndroid', 'kOSTypeAngstrom', 'kOSTypeIPhone',
-                'kOSTypeLinux', 'kOSTypeMac', 'kOSTypePSP', 'kOSTypeSymbian', 'kOSTypeWii', 'kOSTypeWindows', 'kOSTypeWindowsCE',
-            ),
-        // Not used yet
-        4 => array(
-                'dummycommand',
-            ),
-        ),
-    'SYMBOLS' => array(
-        '(', ')', '[', ']', '{', '}', '%', '&', '*', '|', '/', '<', '>',
-        '+', '-', '=>', '<<'
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false,
-        2 => false,
-        3 => false,
-        4 => true,
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color:#0000FF; font-weight:bold;',
-            2 => 'color:#000088; font-weight:bold;',
-            3 => 'color:#C088C0; font-weight:bold;',
-            4 => 'color:#00FEFE; font-weight:bold;',
-            ),
-        'COMMENTS' => array(
-            1 => 'color:#008000; font-style:italic;',
-            4 => 'color: #cc0000; font-style: italic;',
-            'MULTI' => 'color:#008000; font-style:italic;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color:#000099;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color:#000000; font-weight:bold;'
-            ),
-        'STRINGS' => array(
-            0 => 'color:#888800;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color:#AA0000;'
-            ),
-        // names after "."
-        'METHODS' => array(
-            1 => 'color:#FF00FF; font-weight:bold;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color:#000000; font-weight:bold;'
-            ),
-        'REGEXPS' => array(
-            0 => 'color:#ff6633; font-weight:bold;',
-            1 => 'color:#0066ff; font-weight:bold;',
-            2 => 'color:#6666ff; font-weight:bold;',
-            3 => 'color:#ff3333; font-weight:bold;'
-            ),
-        'SCRIPT' => array(
-            0 => '',
-            1 => '',
-            2 => '',
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => '',
-        4 => ''
-        ),
-    'OOLANG' => true,
-    'OBJECT_SPLITTERS' => array(
-        1 => '.'
-        ),
-    'REGEXPS' => array(
-        0 => array(//Variables
-            GESHI_SEARCH => "([[:space:]])(\\$[a-zA-Z_][a-zA-Z0-9_]*)",
-            GESHI_REPLACE => '\\2',
-            GESHI_MODIFIERS => '',
-            GESHI_BEFORE => '\\1',
-            GESHI_AFTER => ''
-            ),
-        1 => array(//Arrays
-            GESHI_SEARCH => "([[:space:]])(@[a-zA-Z_][a-zA-Z0-9_]*)",
-            GESHI_REPLACE => '\\2',
-            GESHI_MODIFIERS => '',
-            GESHI_BEFORE => '\\1',
-            GESHI_AFTER => ''
-            ),
-        2 => "([A-Z][a-zA-Z0-9_]*::)+[A-Z][a-zA-Z0-9_]*",//Static OOP symbols
-        3 => array(
-            GESHI_SEARCH => "([[:space:]]|\[|\()(:[a-zA-Z_][a-zA-Z0-9_]*)",
-            GESHI_REPLACE => '\\2',
-            GESHI_MODIFIERS => '',
-            GESHI_BEFORE => '\\1',
-            GESHI_AFTER => ''
-            )
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_MAYBE,
-    'SCRIPT_DELIMITERS' => array(
-        0 => array(
-            '<%' => '%>'
-            )
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        0 => true,
-        ),
-    'TAB_WIDTH' => 2
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/swift.php b/wiki/vendor/geshi/geshi/src/geshi/swift.php
deleted file mode 100644
index 4069035..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/swift.php
+++ /dev/null
@@ -1,557 +0,0 @@
-<?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/wiki/vendor/geshi/geshi/src/geshi/systemverilog.php b/wiki/vendor/geshi/geshi/src/geshi/systemverilog.php
deleted file mode 100644
index 24ed343..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/systemverilog.php
+++ /dev/null
@@ -1,315 +0,0 @@
-<?php
-/************************************************************************************
- * systemverilog.php
- * -------
- * Author: Sean O'Boyle
- * Copyright: (C) 2008 IntelligentDV
- * Release Version: 1.0.9.0
- * Date Started: 2008/06/25
- *
- * SystemVerilog IEEE 1800-2009(draft8) language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2008/06/25 (1.0.0)
- *  -  First Release
- *
- * TODO (updated 2008/06/25)
- * -------------------------
- *
- *************************************************************************************
- *
- *   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 3 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, see <http://www.gnu.org/licenses/>.
- *
- ************************************************************************
- * Title:        SystemVerilog Language Keywords File for GeSHi
- * Description:  This file contains the SV keywords defined in the
- *               IEEE1800-2009 Draft Standard in the format expected by
- *               GeSHi.
- *
- * Original Author: Sean O'Boyle
- * Contact:         seanoboyle@intelligentdv.com
- * Company:         Intelligent Design Verification
- * Company URL:     http://intelligentdv.com
- *
- * Download the most recent version here:
- *                  http://intelligentdv.com/downloads
- *
- * File Bugs Here:  http://bugs.intelligentdv.com
- *        Project:  SyntaxFiles
- *
- * File: systemverilog.php
- * $LastChangedBy$
- * $LastChangedDate$
- * $LastChangedRevision$
- *
- ************************************************************************/
-
-$language_data = array (
-    'LANG_NAME' => 'SystemVerilog',
-    'COMMENT_SINGLE' => array(1 => '//'),
-    'COMMENT_MULTI' => array('/*' => '*/'),
-    'COMMENT_REGEXP' => array(1 => '/\/\/(?:\\\\\\\\|\\\\\\n|.)*$/m'),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array('"'),
-    'ESCAPE_CHAR' => '\\',
-    'KEYWORDS' => array(
-        // system tasks
-        1 => array(
-            'acos','acosh','asin','asinh','assertfailoff','assertfailon',
-            'assertkill','assertnonvacuouson','assertoff','asserton',
-            'assertpassoff','assertpasson','assertvacuousoff','async$and$array',
-            'async$and$plane','async$nand$array','async$nand$plane',
-            'async$nor$array','async$nor$plane','async$or$array',
-            'async$or$plane','atan','atan2','atanh','bits','bitstoreal',
-            'bitstoshortreal','cast','ceil','changed','changed_gclk',
-            'changing_gclk','clog2','cos','cosh','countones','coverage_control',
-            'coverage_get','coverage_get_max','coverage_merge','coverage_save',
-            'dimensions','display','displayb','displayh','displayo',
-            'dist_chi_square','dist_erlang','dist_exponential','dist_normal',
-            'dist_poisson','dist_t','dist_uniform','dumpall','dumpfile',
-            'dumpflush','dumplimit','dumpoff','dumpon','dumpports',
-            'dumpportsall','dumpportsflush','dumpportslimit','dumpportsoff',
-            'dumpportson','dumpvars','error','exit','exp','falling_gclk',
-            'fclose','fdisplay','fdisplayb','fdisplayh','fdisplayo','fell',
-            'fell_gclk','feof','ferror','fflush','fgetc','fgets','finish',
-            'floor','fmonitor','fmonitorb','fmonitorh','fmonitoro','fopen',
-            'fread','fscanf','fseek','fstrobe','fstrobeb','fstrobeh','fstrobeo',
-            'ftell','future_gclk','fwrite','fwriteb','fwriteh','fwriteo',
-            'get_coverage','high','hypot','increment','info','isunbounded',
-            'isunknown','itor','left','ln','load_coverage_db','log10','low',
-            'monitor','monitorb','monitorh','monitoro','monitoroff','monitoron',
-            'onehot','onehot0','past','past_gclk','pow','printtimescale',
-            'q_add','q_exam','q_full','q_initialize','q_remove','random',
-            'readmemb','readmemh','realtime','realtobits','rewind','right',
-            'rising_gclk','rose','rose_gclk','rtoi','sampled',
-            'set_coverage_db_name','sformat','sformatf','shortrealtobits',
-            'signed','sin','sinh','size','sqrt','sscanf','stable','stable_gclk',
-            'steady_gclk','stime','stop','strobe','strobeb','strobeh','strobeo',
-            'swrite','swriteb','swriteh','swriteo','sync$and$array',
-            'sync$and$plane','sync$nand$array','sync$nand$plane',
-            'sync$nor$array','sync$nor$plane','sync$or$array','sync$or$plane',
-            'system','tan','tanh','test$plusargs','time','timeformat',
-            'typename','ungetc','unpacked_dimensions','unsigned',
-            'value$plusargs','warning','write','writeb','writeh','writememb',
-            'writememh','writeo',
-            ),
-        // compiler directives
-        2 => array(
-            '`__FILE__', '`__LINE__', '`begin_keywords', '`case', '`celldefine',
-            '`endcelldefine', '`default_nettype', '`define', '`default', '`else',
-            '`elsif', '`end_keywords', '`endfor', '`endif',
-            '`endprotect', '`endswitch', '`endwhile', '`for', '`format',
-            '`if', '`ifdef', '`ifndef', '`include', '`let',
-            '`line', '`nounconnected_drive', '`pragma', '`protect', '`resetall',
-            '`switch', '`timescale', '`unconnected_drive', '`undef', '`undefineall',
-            '`while'
-            ),
-        // keywords
-        3 => array(
-            'assert', 'assume', 'cover', 'expect', 'disable',
-            'iff', 'binsof', 'intersect', 'first_match', 'throughout',
-            'within', 'coverpoint', 'cross', 'wildcard', 'bins',
-            'ignore_bins', 'illegal_bins', 'genvar', 'if', 'else',
-            'unique', 'priority', 'matches', 'default', 'forever',
-            'repeat', 'while', 'for', 'do', 'foreach',
-            'break', 'continue', 'return', 'pulsestyle_onevent', 'pulsestyle_ondetect',
-            'noshowcancelled', 'showcancelled', 'ifnone', 'posedge', 'negedge',
-            'edge', 'wait', 'wait_order', 'timeunit', 'timeprecision',
-            's', 'ms', 'us', 'ns',
-            'ps', 'fs', 'step', 'new', 'extends',
-            'this', 'super', 'protected', 'local', 'rand',
-            'randc', 'bind', 'constraint', 'solve', 'before',
-            'dist', 'inside', 'with', 'virtual', 'extern',
-            'pure', 'forkjoin', 'design', 'instance', 'cell',
-            'liblist', 'use', 'library', 'incdir', 'include',
-            'modport', 'sync_accept_on', 'reject_on', 'accept_on',
-            'sync_reject_on', 'restrict', 'let', 'until', 'until_with',
-            'unique0', 'eventually', 's_until', 's_always', 's_eventually',
-            's_nexttime', 's_until_with', 'global', 'untyped', 'implies',
-            'weak', 'strong', 'nexttime'
-            ),
-        // block keywords
-        4 => array(
-            'begin', 'end', 'package', 'endpackage', 'macromodule',
-            'module', 'endmodule', 'generate', 'endgenerate', 'program',
-            'endprogram', 'class', 'endclass', 'function', 'endfunction',
-            'case', 'casex', 'casez', 'randcase', 'endcase',
-            'interface', 'endinterface', 'clocking', 'endclocking', 'task',
-            'endtask', 'primitive', 'endprimitive', 'fork', 'join',
-            'join_any', 'join_none', 'covergroup', 'endgroup', 'checker',
-            'endchecker', 'property', 'endproperty', 'randsequence', 'sequence',
-            'endsequence', 'specify', 'endspecify', 'config', 'endconfig',
-            'table', 'endtable', 'initial', 'final', 'always',
-            'always_comb', 'always_ff', 'always_latch', 'alias', 'assign',
-            'force', 'release'
-            ),
-
-        // types
-        5 => array(
-            'parameter', 'localparam', 'specparam', 'input', 'output',
-            'inout', 'ref', 'byte', 'shortint', 'int',
-            'integer', 'longint', 'time', 'bit', 'logic',
-            'reg', 'supply0', 'supply1', 'tri', 'triand',
-            'trior', 'trireg', 'tri0', 'tri1', 'wire',
-            'uwire', 'wand', 'wor', 'signed', 'unsigned',
-            'shortreal', 'real', 'realtime', 'type', 'void',
-            'struct', 'union', 'tagged', 'const', 'var',
-            'automatic', 'static', 'packed', 'vectored', 'scalared',
-            'typedef', 'enum', 'string', 'chandle', 'event',
-            'null', 'pullup', 'pulldown', 'cmos', 'rcmos',
-            'nmos', 'pmos', 'rnmos', 'rpmos', 'and',
-            'nand', 'or', 'nor', 'xor', 'xnor',
-            'not', 'buf', 'tran', 'rtran', 'tranif0',
-            'tranif1', 'rtranif0', 'rtranif1', 'bufif0', 'bufif1',
-            'notif0', 'notif1', 'strong0', 'strong1', 'pull0',
-            'pull1', 'weak0', 'weak1', 'highz0', 'highz1',
-            'small', 'medium', 'large'
-            ),
-
-        // DPI
-        6 => array(
-            'DPI', 'DPI-C', 'import', 'export', 'context'
-            ),
-
-        // stdlib
-        7 => array(
-            'randomize', 'mailbox', 'semaphore', 'put', 'get',
-            'try_put', 'try_get', 'peek', 'try_peek', 'process',
-            'state', 'self', 'status', 'kill', 'await',
-            'suspend', 'resume', 'size', 'delete', 'insert',
-            'num', 'first', 'last', 'next', 'prev',
-            'pop_front', 'pop_back', 'push_front', 'push_back', 'find',
-            'find_index', 'find_first', 'find_last', 'find_last_index', 'min',
-            'max', 'unique_index', 'reverse', 'sort', 'rsort',
-            'shuffle', 'sum', 'product', 'List', 'List_Iterator',
-            'neq', 'eq', 'data', 'empty', 'front',
-            'back', 'start', 'finish', 'insert_range', 'erase',
-            'erase_range', 'set', 'swap', 'clear', 'purge'
-            ),
-
-        // key_deprecated
-        8 => array(
-            'defparam', 'deassign', 'TODO'
-        ),
-
-        ),
-    'SYMBOLS' => array(
-            '(', ')', '{', '}', '[', ']', '=', '+', '-', '*', '/', '!', '%',
-            '^', '&', '|', '~',
-            '?', ':',
-            '#', '<<', '<<<',
-            '>', '<', '>=', '<=',
-            '@', ';', ','
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => true,
-        2 => true,
-        3 => true,
-        4 => true,
-        5 => true,
-        6 => true,
-        7 => true,
-        8 => true
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #996666; font-weight: bold;',
-            2 => 'color: #336600; font-weight: bold;',
-            3 => 'color: #996600; font-weight: bold;',
-            4 => 'color: #000033; font-weight: bold;',
-            5 => 'color: #330033; font-weight: bold;',
-            6 => 'color: #996600; font-weight: bold;',
-            7 => 'color: #CC9900; font-weight: bold;',
-            8 => 'color: #990000; font-weight: bold;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #00008B; font-style: italic;',
-            'MULTI' => 'color: #00008B; font-style: italic;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #9F79EE'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #9F79EE;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #FF00FF;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #ff0055;'
-            ),
-        'METHODS' => array(
-            1 => 'color: #202020;',
-            2 => 'color: #202020;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #5D478B;'
-            ),
-        'REGEXPS' => array(
-            0 => 'color: #ff0055;',
-            1 => 'color: #ff0055;',
-            2 => 'color: #ff0055;',
-            3 => 'color: #ff0055;'
-            ),
-        'SCRIPT' => array(
-            0 => '',
-            1 => '',
-            2 => '',
-            3 => ''
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => '',
-        4 => '',
-        5 => '',
-        6 => '',
-        7 => '',
-        8 => ''
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(
-        1 => ''
-        ),
-    'REGEXPS' => array(
-        // integer
-        0 => "\d'[bdh][0-9_a-fA-FxXzZ]+",
-        // realtime
-        1 => "\d*\.\d+[munpf]?s",
-        // time s, ms, us, ns, ps, of fs
-        2 => "\d+[munpf]?s",
-        // real
-        3 => "\d*\.\d+"
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        0 => ''
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        0 => true
-        ),
-    'TAB_WIDTH' => 3,
-    'PARSER_CONTROL' => array(
-        'KEYWORDS' => array(
-            1 => array(
-                'DISALLOWED_BEFORE' => '(?<=$)'
-                )
-            )
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/tcl.php b/wiki/vendor/geshi/geshi/src/geshi/tcl.php
deleted file mode 100644
index 73b854e..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/tcl.php
+++ /dev/null
@@ -1,192 +0,0 @@
-<?php
-/*************************************************************************************
- * tcl.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' => 'TCL',
-    'COMMENT_SINGLE' => array(),
-    'COMMENT_MULTI' => array(),
-    'COMMENT_REGEXP' => array(
-        1 => '/(?:^|(?<=\{|;))\s*#(?:\\\\\\\\|\\\\\\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(
-            'proc', 'global', 'upvar', 'if', 'then', 'else', 'elseif', 'for', 'foreach',
-            'break', 'continue', 'while', 'set', 'eval', 'case', 'in', 'switch',
-            'default', 'exit', 'error', 'return', 'uplevel', 'loop',
-            'for_array_keys', 'for_recursive_glob', 'for_file', 'unwind_protect',
-            'expr', 'catch', 'namespace', 'rename', 'variable',
-            // itcl
-            'method', 'itcl_class', 'public', 'protected'),
-
-        /*
-         * 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
-         */
-        3 => array(
-            'comment', 'filename', 'library', 'packagens', 'tcltest', 'tclvars',
-            ),
-
-        /*
-         * Set 4: special methods
-         */
-//        4 => array(
-//            )
-
-        ),
-    '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 => '',
-        2 => '',
-        3 => '',
-//        4 => ''
-        ),
-    '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/wiki/vendor/geshi/geshi/src/geshi/tclegg.php b/wiki/vendor/geshi/geshi/src/geshi/tclegg.php
deleted file mode 100644
index cc787e8..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/tclegg.php
+++ /dev/null
@@ -1,501 +0,0 @@
-<?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/wiki/vendor/geshi/geshi/src/geshi/teraterm.php b/wiki/vendor/geshi/geshi/src/geshi/teraterm.php
deleted file mode 100644
index 7c36002..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/teraterm.php
+++ /dev/null
@@ -1,352 +0,0 @@
-<?php
-/*************************************************************************************
- * teraterm.php
- * --------
- * Author: Boris Maisuradze (boris at logmett.com)
- * Copyright: (c) 2008 Boris Maisuradze (http://logmett.com)
- * Release Version: 1.0.9.0
- * Date Started: 2008/09/26
- *
- * Tera Term Macro language file for GeSHi.
- *
- *
- * This version of teraterm.php was created for Tera Term 4.62 and LogMeTT 2.9.4.
- * Newer versions of these application can contain additional Macro commands
- * and/or keywords that are not listed here. The latest release of teraterm.php
- * can be downloaded from Download section of LogMeTT.com
- *
- * CHANGES
- * -------
- * 2008/09/26 (1.0.0)
- *   -  First Release for Tera Term 4.60 and below.
- * 2009/03/22 (1.1.0)
- *   -  First Release for Tera Term 4.62 and below.
- * 2009/04/25 (1.1.1)
- *   -  Second Release for Tera Term 4.62 and below.
- * 2010/09/12 (1.1.2)
- *   -  Second Release for Tera Term 4.67, LogMeTT 2.97, TTLEditor 1.2.1 and below.
- *
- * TODO (updated 2010/09/12)
- * -------------------------
- * *
- *
- *************************************************************************************
- *
- *     This file is part of GeSHi.
- *
- *   GeSHi is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   GeSHi is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with GeSHi; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- ************************************************************************************/
-
-$language_data = array (
-    'LANG_NAME' => 'Tera Term Macro',
-    'COMMENT_SINGLE' => array(1 => ';'),
-    'COMMENT_MULTI' => array(),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array("'", '"'),
-    'ESCAPE_CHAR' => '',
-    'KEYWORDS' => array(
-        /* Commands */
-        1 => array(
-            'Beep',
-            'BplusRecv',
-            'BplusSend',
-            'Break',
-            'Call',
-            'CallMenu',
-            'ChangeDir',
-            'ClearScreen',
-            'Clipb2Var',
-            'ClosesBox',
-            'CloseTT',
-            'Code2Str',
-            'Connect',
-            'CRC32',
-            'CRC32File',
-            'CygConnect',
-            'DelPassword',
-            'Disconnect',
-            'DispStr',
-            'Do',
-            'Else',
-            'ElseIf',
-            'EnableKeyb',
-            'End',
-            'EndIf',
-            'EndUntil',
-            'EndWhile',
-            'Exec',
-            'ExecCmnd',
-            'Exit',
-            'FileClose',
-            'FileConcat',
-            'FileCopy',
-            'FileCreate',
-            'FileDelete',
-            'FileMarkPtr',
-            'FileNameBox',
-            'FileOpen',
-            'FileRead',
-            'FileReadln',
-            'FileRename',
-            'FileSearch',
-            'FileSeek',
-            'FileSeekBack',
-            'FileStat',
-            'FileStrSeek',
-            'FileStrSeek2',
-            'FileTruncate',
-            'FileWrite',
-            'FileWriteLn',
-            'FindClose',
-            'FindFirst',
-            'FindNext',
-            'FlushRecv',
-            'For',
-            'GetDate',
-            'GetDir',
-            'GetEnv',
-            'GetHostname',
-            'GetPassword',
-            'GetTime',
-            'GetTitle',
-            'GetTTDir',
-            'Getver',
-            'GoTo',
-            'If',
-            'IfDefined',
-            'Include',
-            'InputBox',
-            'Int2Str',
-            'KmtFinish',
-            'KmtGet',
-            'KmtRecv',
-            'KmtSend',
-            'LoadKeymap',
-            'LogClose',
-            'LogOpen',
-            'LogPause',
-            'LogStart',
-            'LogWrite',
-            'Loop',
-            'MakePath',
-            'MessageBox',
-            'MPause',
-            'Next',
-            'PasswordBox',
-            'Pause',
-            'QuickVANRecv',
-            'QuickVANSend',
-            'Random',
-            'RecvLn',
-            'RestoreSetup',
-            'Return',
-            'RotateLeft',
-            'RotateRight',
-            'ScpRecv',
-            'ScpSend',
-            'Send',
-            'SendBreak',
-            'SendBroadcast',
-            'SendFile',
-            'SendKCode',
-            'SendLn',
-            'SendLnBroadcast',
-            'SendMulticast',
-            'SetBaud',
-            'SetDate',
-            'SetDebug',
-            'SetDir',
-            'SetDlgPos',
-            'SetDTR',
-            'SetEcho',
-            'SetEnv',
-            'SetExitCode',
-            'SetMulticastName',
-            'SetRTS',
-            'SetSync',
-            'SetTime',
-            'SetTitle',
-            'Show',
-            'ShowTT',
-            'SPrintF',
-            'SPrintF2',
-            'StatusBox',
-            'Str2Code',
-            'Str2Int',
-            'StrCompare',
-            'StrConcat',
-            'StrCopy',
-            'StrInsert',
-            'StrJoin',
-            'StrLen',
-            'StrMatch',
-            'StrRemove',
-            'StrReplace',
-            'StrScan',
-            'StrSpecial',
-            'StrSplit',
-            'StrTrim',
-            'TestLink',
-            'Then',
-            'ToLower',
-            'ToUpper',
-            'UnLink',
-            'Until',
-            'Var2Clipb',
-            'Wait',
-            'Wait4All',
-            'WaitEvent',
-            'WaitLn',
-            'WaitN',
-            'WaitRecv',
-            'WaitRegEx',
-            'While',
-            'XmodemRecv',
-            'XmodemSend',
-            'YesNoBox',
-            'YmodemRecv',
-            'YmodemSend',
-            'ZmodemRecv',
-            'ZmodemSend'
-            ),
-        /* System Variables */
-        2 => array(
-            'groupmatchstr1',
-            'groupmatchstr2',
-            'groupmatchstr3',
-            'groupmatchstr4',
-            'groupmatchstr5',
-            'groupmatchstr6',
-            'groupmatchstr7',
-            'groupmatchstr8',
-            'groupmatchstr9',
-            'inputstr',
-            'matchstr',
-            'mtimeout',
-            'param2',
-            'param3',
-            'param4',
-            'param5',
-            'param6',
-            'param7',
-            'param8',
-            'param9',
-            'result',
-            'timeout'
-            ),
-        /* LogMeTT Key Words */
-        3 => array(
-            '$[1]',
-            '$[2]',
-            '$[3]',
-            '$[4]',
-            '$[5]',
-            '$[6]',
-            '$[7]',
-            '$[8]',
-            '$[9]',
-            '$branch$',
-            '$computername$',
-            '$connection$',
-            '$email$',
-            '$logdir$',
-            '$logfilename$',
-            '$lttfilename$',
-            '$mobile$',
-            '$name$',
-            '$pager$',
-            '$parent$',
-            '$phone$',
-            '$snippet$',
-            '$ttdir$',
-            '$user$',
-            '$windir$',
-        ),
-        /* Keyword Symbols */
-        4 => array(
-            'and',
-            'not',
-            'or',
-            'xor'
-            )
-        ),
-    'SYMBOLS' => array(
-        '(', ')', '[', ']', '{', '}',
-        '+', '-', '*', '/', '%',
-        '!', '&', '|', '^',
-        '<', '>', '=',
-        '?', ':', ';',
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false,
-        2 => false,
-        3 => false,
-        4 => false
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #000080; font-weight: bold!important;',
-            2 => 'color: #808000; font-weight: bold;',  // System Variables
-            3 => 'color: #ff0000; font-weight: bold;',  // LogMeTT Key Words
-            4 => 'color: #ff00ff; font-weight: bold;'   // Keyword Symbols
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #008000; font-style: italic;',
-            ),
-        'ESCAPE_CHAR' => array(),
-        'BRACKETS' => array(
-            0 => 'color: #ff00ff; font-weight: bold;'
-        ),
-        'STRINGS' => array(
-            0 => 'color: #800080;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #008080;'
-            ),
-        'SCRIPT' => array(
-            ),
-        'METHODS' => array(
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #ff00ff; font-weight: bold;'
-            ),
-        'REGEXPS' => array(
-            0 => 'color: #0000ff; font-weight: bold;'
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => '',
-        4 => ''
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(),
-    'REGEXPS' => array(
-        0 => array (
-            GESHI_SEARCH => '(\:[_a-zA-Z][_a-zA-Z0-9]+)',
-            GESHI_REPLACE => '\\1',
-            GESHI_MODIFIERS => '',
-            GESHI_BEFORE => '',
-            GESHI_AFTER => ''
-            )
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(),
-    'HIGHLIGHT_STRICT_BLOCK' => array(),
-    'TAB_WIDTH' => 4
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/texgraph.php b/wiki/vendor/geshi/geshi/src/geshi/texgraph.php
deleted file mode 100644
index ed57955..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/texgraph.php
+++ /dev/null
@@ -1,1137 +0,0 @@
-<?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/wiki/vendor/geshi/geshi/src/geshi/text.php b/wiki/vendor/geshi/geshi/src/geshi/text.php
deleted file mode 100644
index 5b97cff..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/text.php
+++ /dev/null
@@ -1,82 +0,0 @@
-<?php
-/*************************************************************************************
- * text.php
- * --------
- * Author: Sean Hanna (smokingrope@gmail.com)
- * Copyright: (c) 2006 Sean Hanna
- * Release Version: 1.0.9.0
- * Date Started: 04/23/2006
- *
- * Standard Text File (No Syntax Highlighting).
- * Plaintext language file for GeSHi.
- *
- * CHANGES
- * -------
- * 04/23/2006 (0.5.0)
- * - Syntax File Created
- *
- * 04/27/2006 (1.0.0)
- * - Documentation Cleaned Up
- * - First Release
- *
- * TODO (updated 04/27/2006)
- * -------------------------
- *
- *
- *************************************************************************************
- *
- *     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' => 'Text',
-    '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()
-        ),
-    'URLS' => array(),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(),
-    'REGEXPS' => array(),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(),
-    'HIGHLIGHT_STRICT_BLOCK' => array(),
-    'PARSER_CONTROL' => array(
-        'ENABLE_FLAGS' => array(
-            'ALL' => GESHI_NEVER
-            )
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/thinbasic.php b/wiki/vendor/geshi/geshi/src/geshi/thinbasic.php
deleted file mode 100644
index d4c91e2..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/thinbasic.php
+++ /dev/null
@@ -1,866 +0,0 @@
-<?php
-/*************************************************************************************
- * thinbasic.php
- * ------
- * 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.9.0
- * Date Started: 2006/05/12
- *
- * thinBasic language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2006/05/12 (1.0.0)
- *  -  First Release
- *
- * TODO (updated 2006/05/12)
- * -------------------------
- *
- *************************************************************************************
- *
- *     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' => 'thinBasic',
-    'COMMENT_SINGLE' => array(1 => "'"),
-    'COMMENT_MULTI' => array(),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array('"'),
-    'ESCAPE_CHAR' => '',
-    'KEYWORDS' => array(
-        1 => array(
-            'XOR','XML_TREETOSTRING','XML_PARSEFILE','XML_PARSE','XML_PARENT','XML_NODETYPE','XML_NODETOSTRING','XML_NEXTSIBLING',
-            'XML_LASTERROR','XML_GETTAG','XML_FREE','XML_FINDNODE','XML_DECODEPARAM','XML_CHILDDATA','XML_CHILD','XML_ATTRIBVALUE',
-            'XML_ATTRIBNAME','XML_ATTRIBCOUNT','WORD','WITH','WIN_SHOW','WIN_SETTITLE','WIN_SETFOREGROUND','WIN_ISZOOMED',
-            'WIN_ISVISIBLE','WIN_ISICONIC','WIN_GETTITLE','WIN_GETFOREGROUND','WIN_GETCLASS','WIN_GETACTIVE','WIN_FLASH','WIN_FINDBYTITLE',
-            'WIN_FINDBYCLASS','WHILE','WEND','VERIFY','VARPTR','VARIANTVT$','VARIANTVT','VARIANT',
-            'VARIABLE_GETINFO','VARIABLE_EXISTS','VARIABLE_EXIST','VALUE','VAL','USING$','USING','USES',
-            'USER','UNTIL','UNITS','UNION','UNICODE2ASCII','UDP_SEND','UDP_RECV','UDP_OPENSERVER',
-            'UDP_OPEN','UDP_FREEFILE','UDP_CLOSE','UCODE$','UCASE$','UBOUND','TYPE','TRIMFULL$',
-            'TRIM$','TOOLTIP','TOKENIZER_MOVETOEOL','TOKENIZER_KEYSETUSERSTRING','TOKENIZER_KEYSETUSERNUMBER','TOKENIZER_KEYGETUSERSTRING','TOKENIZER_KEYGETUSERNUMBER','TOKENIZER_KEYGETSUBTYPE',
-            'TOKENIZER_KEYGETNAME','TOKENIZER_KEYGETMAINTYPE','TOKENIZER_KEYFIND','TOKENIZER_KEYADD','TOKENIZER_GETNEXTTOKEN','TOKENIZER_DEFAULT_SET','TOKENIZER_DEFAULT_GET','TOKENIZER_DEFAULT_CODE',
-            'TOKENIZER_DEFAULT_CHAR','TO','TIMER','TIME$','THEN','TEXTBOX','TEXT','TCP_SEND',
-            'TCP_RECV','TCP_PRINT','TCP_OPEN','TCP_LINEINPUT','TCP_FREEFILE','TCP_CLOSE','TB_IMGCTX_SETIMAGEADJUSTMENT','TB_IMGCTX_LOADIMAGE',
-            'TB_IMGCTX_GETIMAGEADJUSTMENT','TBGL_VIEWPORT','TBGL_VERTEX','TBGL_USETEXTUREFLAG','TBGL_USETEXTURE','TBGL_USELINESTIPPLEFLAG','TBGL_USELINESTIPPLE','TBGL_USELIGHTSOURCEFLAG',
-            'TBGL_USELIGHTSOURCE','TBGL_USELIGHTINGFLAG','TBGL_USELIGHTING','TBGL_USEFOGFLAG','TBGL_USEFOG','TBGL_USEDEPTHMASK','TBGL_USEDEPTHFLAG','TBGL_USEDEPTH',
-            'TBGL_USECLIPPLANEFLAG','TBGL_USECLIPPLANE','TBGL_USEBLENDFLAG','TBGL_USEBLEND','TBGL_USEALPHATEST','TBGL_TRANSLATE','TBGL_TORUS','TBGL_TEXCOORD2D',
-            'TBGL_SPHERE','TBGL_SHOWWINDOW','TBGL_SHOWCURSOR','TBGL_SETWINDOWTITLE','TBGL_SETUPLIGHTSOURCE','TBGL_SETUPFOG','TBGL_SETUPCLIPPLANE','TBGL_SETPRIMITIVEQUALITY',
-            'TBGL_SETLIGHTPARAMETER','TBGL_SETDRAWDISTANCE','TBGL_SCALE','TBGL_SAVESCREENSHOT','TBGL_ROTATEXYZ','TBGL_ROTATE','TBGL_RESETMATRIX','TBGL_RENDERTOTEXTURE',
-            'TBGL_RENDERMATRIX3D','TBGL_RENDERMATRIX2D','TBGL_PUSHMATRIX','TBGL_PRINTFONT','TBGL_PRINTBMP','TBGL_PRINT','TBGL_POS3DTOPOS2D','TBGL_POPMATRIX',
-            'TBGL_POLYGONLOOK','TBGL_POINTSIZE','TBGL_POINTINSIDE3D','TBGL_NORMAL','TBGL_NEWLIST','TBGL_MOUSEGETWHEELDELTA','TBGL_MOUSEGETRBUTTON','TBGL_MOUSEGETPOSY',
-            'TBGL_MOUSEGETPOSX','TBGL_MOUSEGETMBUTTON','TBGL_MOUSEGETLBUTTON','TBGL_M15SETVERTEXZ','TBGL_M15SETVERTEXY','TBGL_M15SETVERTEXXYZ','TBGL_M15SETVERTEXX','TBGL_M15SETVERTEXTEXY',
-            'TBGL_M15SETVERTEXTEXXY','TBGL_M15SETVERTEXTEXX','TBGL_M15SETVERTEXTEXN','TBGL_M15SETVERTEXRGB','TBGL_M15SETVERTEXR','TBGL_M15SETVERTEXPSTOP','TBGL_M15SETVERTEXPARAM','TBGL_M15SETVERTEXLAYER',
-            'TBGL_M15SETVERTEXG','TBGL_M15SETVERTEXB','TBGL_M15SETMODELVERTEXCOUNT','TBGL_M15SETBONECHILD','TBGL_M15ROTBONEZ','TBGL_M15ROTBONEY','TBGL_M15ROTBONEX','TBGL_M15ROTBONE',
-            'TBGL_M15RESETBONES','TBGL_M15RECALCNORMALS','TBGL_M15LOADMODEL','TBGL_M15INITMODELBUFFERS','TBGL_M15GETVERTEXZ','TBGL_M15GETVERTEXY','TBGL_M15GETVERTEXXYZ','TBGL_M15GETVERTEXX',
-            'TBGL_M15GETVERTEXTEXY','TBGL_M15GETVERTEXTEXXY','TBGL_M15GETVERTEXTEXX','TBGL_M15GETVERTEXTEXN','TBGL_M15GETVERTEXRGB','TBGL_M15GETVERTEXR','TBGL_M15GETVERTEXPSTOP','TBGL_M15GETVERTEXPARAM',
-            'TBGL_M15GETVERTEXLAYER','TBGL_M15GETVERTEXG','TBGL_M15GETVERTEXB','TBGL_M15GETMODELVERTEXCOUNT','TBGL_M15GETMODELPOLYCOUNT','TBGL_M15ERASECHILDBONES','TBGL_M15DRAWMODEL','TBGL_M15DEFBONERESET',
-            'TBGL_M15DEFBONELAYER','TBGL_M15DEFBONEBOX','TBGL_M15DEFBONEANCHOR','TBGL_M15DEFBONEADDVERTEX','TBGL_M15CLEARMODEL','TBGL_M15APPLYBONES','TBGL_M15ADDBONETREEITEM','TBGL_LOADTEXTURE',
-            'TBGL_LOADFONT','TBGL_LOADBMPFONT','TBGL_LINEWIDTH','TBGL_LINESTIPPLE','TBGL_KILLFONT','TBGL_ISWINDOW','TBGL_ISPOINTVISIBLE','TBGL_ISPOINTBEHINDVIEW',
-            'TBGL_GETWINDOWMULTIKEYSTATE','TBGL_GETWINDOWKEYSTATE','TBGL_GETWINDOWKEYONCE','TBGL_GETWINDOWCLIENT','TBGL_GETTEXTURENAME','TBGL_GETTEXTURELIST','TBGL_GETPIXELINFO','TBGL_GETMULTIASYNCKEYSTATE',
-            'TBGL_GETLASTGLERROR','TBGL_GETFRAMERATE','TBGL_GETDESKTOPINFO','TBGL_GETASYNCKEYSTATE','TBGL_ERRORMESSAGES','TBGL_ENDPOLY','TBGL_ENDLIST','TBGL_DRAWFRAME',
-            'TBGL_DESTROYWINDOW','TBGL_DELETELIST','TBGL_CYLINDER','TBGL_CREATEWINDOWEX','TBGL_CREATEWINDOW','TBGL_COLORALPHA','TBGL_COLOR','TBGL_CLEARFRAME',
-            'TBGL_CAMERA','TBGL_CALLLIST','TBGL_BUILDFONT','TBGL_BOX','TBGL_BLENDFUNC','TBGL_BINDTEXTURE','TBGL_BEGINPOLY','TBGL_BACKCOLOR',
-            'TBGL_ALPHAFUNC','TBDI_JOYZ','TBDI_JOYY','TBDI_JOYX','TBDI_JOYSTOPEFFECT','TBDI_JOYSLIDER','TBDI_JOYSETRANGEZ','TBDI_JOYSETRANGEY',
-            'TBDI_JOYSETRANGEXYZ','TBDI_JOYSETRANGEX','TBDI_JOYSETDEADZONEZ','TBDI_JOYSETDEADZONEY','TBDI_JOYSETDEADZONEXYZ','TBDI_JOYSETDEADZONEX','TBDI_JOYSETAUTOCENTER','TBDI_JOYRZ',
-            'TBDI_JOYRY','TBDI_JOYRX','TBDI_JOYPOV','TBDI_JOYPLAYEFFECT','TBDI_JOYLOADEFFECT','TBDI_JOYHASFF','TBDI_JOYHASEFFECT','TBDI_JOYGETEFFECTNAME',
-            'TBDI_JOYGETEFFECTGUID','TBDI_JOYCREATEEFFECT','TBDI_JOYCOUNTPOV','TBDI_JOYCOUNTEFFECTS','TBDI_JOYCOUNTBTN','TBDI_JOYCOUNTAXES','TBDI_JOYBUTTON','TBDI_JOYAVAIL',
-            'TBDI_INIT','TBASS_STREAMFREE','TBASS_STREAMCREATEFILE','TBASS_SETVOLUME','TBASS_SETEAXPRESET','TBASS_SETEAXPARAMETERS','TBASS_SETCONFIG','TBASS_SET3DPOSITION',
-            'TBASS_SET3DFACTORS','TBASS_SAMPLELOAD','TBASS_SAMPLEGETCHANNEL','TBASS_MUSICLOAD','TBASS_MUSICFREE','TBASS_INIT','TBASS_GETVOLUME','TBASS_GETVERSION',
-            'TBASS_GETCONFIG','TBASS_FREE','TBASS_ERRORGETCODE','TBASS_CHANNELSTOP','TBASS_CHANNELSETPOSITION','TBASS_CHANNELSETATTRIBUTES','TBASS_CHANNELSET3DPOSITION','TBASS_CHANNELPLAY',
-            'TBASS_CHANNELPAUSE','TBASS_CHANNELISACTIVE','TBASS_CHANNELGETPOSITION','TBASS_CHANNELGETLENGTH','TBASS_CHANNELGETATTRIBUTES','TBASS_APPLY3D','TANH','TANGENT',
-            'TAN','TALLY','TABCTRL_ONNOTIFY','TABCTRL_INSERTITEM','TABCTRL_GETCURSEL','SWAP','SUB','STRZIP$',
-            'STRUNZIP$','STRREVERSE$','STRPTRLEN','STRPTR','STRINSERT$','STRING$','STRING','STRDELETE$',
-            'STR$','STOP','STEP','STDOUT','STDIN','STAT_SUM','STAT_STDERROR','STAT_STDDEVIATION',
-            'STAT_RANDOM','STAT_PRODUCT','STAT_MIN','STAT_MEDIAN','STAT_MEANHARMONIC','STAT_MEANGEOMETRIC','STAT_MEANARITHMETIC','STAT_MAX',
-            'STAT_INVERSESUM','STAT_HISTOGRAM','STAT_FILLARRAY','STAT_COUNT','STAT_COPYARRAY','STAT_CLONEARRAY','STAT_CHISQUARE','STATIC',
-            'STATE','SQR','SPLIT','SORT','SMTP_STATISTICS','SMTP_SETOPTION','SMTP_SETLOGFILE','SMTP_SENDHTML',
-            'SMTP_SENDEMAIL','SMTP_GETERROR','SMTP_FINISHED','SMTP_DEBUG','SMTP_CONNECT','SMTP_CLOSE','SLEEP','SIZEOF',
-            'SIZE','SINH','SINGLE','SIN','SIGNED','SHOW','SHIFT','SHAPETOBMP',
-            'SGN','SETAT','SET','SENDMESSAGE','SENDKEYSBULK','SENDKEYS','SEND','SELECTEXPRESSION',
-            'SELECT','SECH','SEC','SCAN','SAPI_SPEAK','SAPI_SETVOLUME','SAPI_SETRATE','SAPI_MODULELOADED',
-            'SAPI_GETVOLUME','SAPI_GETRATE','RTRIM$','RTF_SETTEXT','RTF_SETFONTSIZE','RTF_SETFONTNAME','RTF_SETFGCOLOR','RTF_SETEFFECT',
-            'RTF_SETBGCOLOR','RTF_SETALIGN','RTF_SAVETOFILE','RTF_LOADFROMFILE','RTF_GETTEXT','RTF_GETFONTSIZE','RTF_GETFONTNAME','RTF_GETEFFECT',
-            'RTF_GETCLASS','RTF_APPENDTEXT','RSET$','ROUND','RNDF','RND','RIGHT$','RIGHT',
-            'RGB','RESOURCE','RESIZE','RESET','REPLACE$','REPEAT$','REMOVE$','REM',
-            'REGISTRY_SETVALUE','REGISTRY_SETTXTNUM','REGISTRY_SETTXTBOOL','REGISTRY_SETDWORD','REGISTRY_GETVALUE','REGISTRY_GETTXTNUM','REGISTRY_GETTXTBOOL','REGISTRY_GETDWORD',
-            'REGISTRY_GETALLKEYS','REGISTRY_DELVALUE','REGISTRY_DELKEY','REFERENCE','REF','REDRAW','REDIM','RAS_SETPARAMS',
-            'RAS_OPENDIALUPDIALOG','RAS_LOADENTRIES','RAS_HANGUPALL','RAS_HANGUP','RAS_GETENTRY','RAS_BEGINDIAL','RANDOMIZE','RADTODEG',
-            'QUERYPERFORMANCEFREQUENCY','QUERYPERFORMANCECOUNTER','QUAD','PTR','PRESERVE','POST','POPUP','POKE$',
-            'POKE','PIXELS','PI','PERMUTATIONS','PEEKMESSAGE','PEEK$','PEEK','PC_SYSTEMUPFROM',
-            'PC_SUSPENDSTATE','PC_SHUTDOWN','PC_SHOWCARET','PC_SETCARETBLINKTIME','PC_RESTARTDIALOG','PC_PREVENTSHUTDOWN','PC_LOCK','PC_INSERTCD',
-            'PC_HIDECARET','PC_GETSTATEONOFF','PC_GETSCROLLLOCKKEYSTATE','PC_GETNUMLOCKKEYSTATE','PC_GETCARETBLINKTIME','PC_GETCAPSLOCKKEYSTATE','PC_EMPTYBIN','PC_EJECTCD',
-            'PC_DECODECDERROR','PCT','PARSESET$','PARSECOUNT','PARSE$','PARSE','PARAMETERS','OUTSIDE',
-            'OS_WINVERSIONTEXT','OS_WINGETVERSIONTIMELINE','OS_SHELLEXECUTE','OS_SHELLABOUT','OS_SHELL','OS_SETLASTCALLDLLERROR','OS_SERVICESTOP','OS_SERVICESTATUSDESCRIPTION',
-            'OS_SERVICESTARTTYPEDESCRIPTION','OS_SERVICESTART','OS_SERVICESETSTARTTYPE','OS_SERVICEQUERY','OS_SERVICEGETSTARTTYPE','OS_SERVICEGETLIST','OS_PROCESSKILLBYNAME','OS_PROCESSKILLBYID',
-            'OS_PROCESSISRUNNING','OS_PROCESSGETLIST','OS_PROCESSGETID','OS_PROCESSARERUNNING','OS_MESSAGEBEEP','OS_ISWOW64','OS_ISFEATUREPRESENT','OS_IEVERSION',
-            'OS_GETWINDOWSDIR','OS_GETUSERNAME','OS_GETTEMPDIR','OS_GETSYSTEMDIR','OS_GETSPECIALFOLDER','OS_GETLASTCALLDLLSTATUS','OS_GETLASTCALLDLLERROR','OS_GETCURRENTTHREADID',
-            'OS_GETCURRENTPROCESSID','OS_GETCOMPUTERNAME','OS_GETCOMMANDS','OS_GETCOMMAND','OS_FLASHWINDOW','OS_FATALAPPEXIT','OS_ENVIRON','OS_CALLDLL',
-            'OR','OPTIONAL','OPTION','OPT','ONCE','ON','OFF','NUMBER',
-            'NOT','NEXT','NEW','MSGBOX','MOUSEPTR','MODULE','MODELESS','MODAL',
-            'MOD','MKWRD$','MKS$','MKQ$','MKL$','MKI$','MKE$','MKDWD$',
-            'MKD$','MKCUX$','MKCUR$','MKBYT$','MIN$','MIN','MID$','MENU',
-            'MDI_CREATE','MCASE$','MAX$','MAX','MAKWRD','MAKLNG','MAKINT','MAKDWR',
-            'LTRIM$','LSET$','LOWRD','LOOP','LONG','LOINT','LOG_WRITE','LOGB',
-            'LOG2','LOG10','LOG','LOCAL','LOC','LL_UPDATEBYNAME','LL_UPDATE','LL_TOSTRING',
-            'LL_TOFILE','LL_NAME','LL_GETITEM','LL_GETBYNUMBER','LL_FROMFILE','LL_FREE','LL_FINDLAST','LL_FINDBYNAME',
-            'LL_FINDBYDATA','LL_DELETELIKE','LL_DELETEBYNAME','LL_DELETE','LL_DATABYNAME','LL_DATA','LL_COUNT','LL_ADD',
-            'LISTBOX','LINE','LIBRARY_EXISTS','LIB','LEN','LEFT$','LEFT','LCASE$',
-            'LBOUND','LABEL','KILL','JOIN$','ITERATE','ISWINDOW','ISUNICODE','ISTRUE',
-            'ISODD','ISLIKE','ISFALSE','ISEVEN','IP_TOSTRING','IP_ADDR','INTERNALINFO','INTEGER',
-            'INT','INSTR','INSIDE','INPUTBOX$','INI_SETKEY','INI_GETSECTIONSLIST','INI_GETSECTIONKEYLIST','INI_GETKEY',
-            'INET_URLDOWNLOAD','INET_PING','INET_OPENDIALUPDIALOG','INET_GETSTATE','INET_GETREMOTEMACADDRESS','INET_GETIP','INET_GETCONNECTIONMODE','INCR',
-            'IN','IMAGE','IIF$','IIF','IF','ICRYPTO_TESTSHA1','ICRYPTO_TESTMD5','ICRYPTO_TESTCRC32',
-            'ICRYPTO_TESTCRC16','ICRYPTO_STRING2ASCII','ICRYPTO_SHA1','ICRYPTO_MD5','ICRYPTO_ENCRYPTRIJNDAEL','ICRYPTO_ENCRYPTRC4','ICRYPTO_DECRYPTRIJNDAEL','ICRYPTO_DECRYPTRC4',
-            'ICRYPTO_CRC32','ICRYPTO_CRC16','ICRYPTO_BYTEXOR','ICRYPTO_BIN2ASCII','ICRYPTO_ASCII2STRING','ICRYPTO_ASCII2BIN','HOST_ADDR','HOSTNAME_TOIP',
-            'HOSTIP_TONAME','HIWRD','HIINT','HEX$','HASH','HANDLE','GUIDTXT$','GUID$',
-            'GRAPHIC','GLVOID','GLUSHORT','GLUINT','GLUBYTE','GLSIZEI','GLSHORT','GLOBAL',
-            'GLINT','GLFLOAT','GLENUM','GLDOUBLE','GLCLAMPF','GLCLAMPD','GLBYTE','GLBOOLEAN',
-            'GLBITFIELD','GETWINDOWMULTIKEYSTATE','GETWINDOWKEYSTATE','GETTICKCOUNT','GETS','GETMULTIASYNCKEYSTATE','GETMESSAGE','GETCURRENTINSTANCE',
-            'GETAT','GETASYNCKEYSTATE','GET','FUNCTION_NPARAMS','FUNCTION_EXISTS','FUNCTION_CPARAMS','FUNCTION','FTP_SETSTRING',
-            'FTP_SETSERVERDIR','FTP_SETNUMBER','FTP_SETMODE','FTP_SETLOGFILE','FTP_SETLOCALDIR','FTP_QUIT','FTP_PUTFILE','FTP_GETSTRING',
-            'FTP_GETSERVERDIR','FTP_GETNUMBER','FTP_GETLOCALDIR','FTP_GETLIST','FTP_GETFILE','FTP_GETERRORSTRING','FTP_GETERRORNUMBER','FTP_FINISHED',
-            'FTP_EXTRACT','FTP_DELFILE','FTP_CONNECT','FTP_COMMAND','FRAME','FRAC','FORMAT$','FOR',
-            'FONT_LIST','FONT_CREATE','FONT','FOCUS','FLUSH','FIX','FILE_SIZE','FILE_SHELLDELETE',
-            'FILE_SHELLCOPY','FILE_SETDATETIME','FILE_SEEK','FILE_SAVE','FILE_RENAME','FILE_PUT','FILE_PATHSPLIT','FILE_OPEN',
-            'FILE_LOF','FILE_LOAD','FILE_LINEPRINT','FILE_LINEINPUT','FILE_KILL','FILE_GETVERSIONSTRING','FILE_GETVERSION','FILE_GETTIME',
-            'FILE_GETDATETIMESTAMP','FILE_GETDATETIME','FILE_GETDATE','FILE_GET','FILE_EXISTS','FILE_EOF','FILE_COPY','FILE_CLOSE',
-            'FILE_CHANGED','FILE_APPEND','FACTORIAL','EXTRACT$','EXT','EXPORT','EXP2','EXP10',
-            'EXP','EXIT','EVAL_STRING','EVAL_SETSTRING','EVAL_SETNUMBER','EVAL_MATH','EVAL_LINKEXT','EVAL_GETSTRING',
-            'EVAL_GETNUMBER','EVAL_ERRORGETTOKEN','EVAL_ERRORDESCRIPTION','EVAL_ERRORCLEAR','EVAL','ERRCLEAR','ERR','ENGINE_GETCURRENTTOKEN',
-            'ENDIF','END','ENABLE','ELSEIF','ELSE','ECHO','DWORD','DT_YEAR',
-            'DT_TIMETOSEC','DT_TIMESUBSECONDS','DT_TIMEFORMAT','DT_TIMEADDSECONDS','DT_SETTIMESEPARATOR','DT_SETDATESEPARATOR','DT_SETDATECENTURY','DT_SECTOTIME',
-            'DT_SECTODATE','DT_SECOND','DT_MONTH','DT_MINUTE','DT_LASTDAYOFMONTH','DT_ISVALIDDATE','DT_ISLEAPYEAR','DT_HOUR',
-            'DT_GETWEEKDAYNAME','DT_GETWEEKDAY','DT_GETTIMESTAMP','DT_GETTIMESEPARATOR','DT_GETMONTHNAME','DT_GETDATESEPARATOR','DT_GETDATECENTURY','DT_DAY',
-            'DT_DATETOSEC','DT_DATETIMESUBSECONDS','DT_DATETIMEADDSECONDS','DT_DATESUBDAYS','DT_DATEFORMAT','DT_DATEDIFF','DT_DATEADDDAYS','DT_COOKIEDATE',
-            'DRAW','DOUBLE','DOEVENTS','DO','DISABLE','DIR_REMOVE','DIR_MAKEALL','DIR_MAKE',
-            'DIR_LISTARRAY','DIR_LIST','DIR_ISEMPTY','DIR_ISDIR','DIR_GETCURRENT','DIR_EXISTS','DIR_CHANGEDRIVE','DIR_CHANGE',
-            'DIM','DICTIONARY_MEMINFO','DICTIONARY_LISTKEYS','DICTIONARY_FREE','DICTIONARY_FIND','DICTIONARY_EXISTS','DICTIONARY_CREATE','DICTIONARY_COUNT',
-            'DICTIONARY_ADD','DIALOG_STOPEVENTS','DIALOG_SAVEFILE','DIALOG_OPENFILE','DIALOG_GETCONTROL','DIALOG_CHOOSECOLOR','DIALOG_BROWSEFORFOLDER','DIALOG',
-            'DESKTOP','DESCENDING','DESCEND','DELETEOBJECT','DELETE','DEGTORAD','DECR','DECLARE',
-            'DATE$','CVWRD','CVS','CVQ','CVL','CVI','CVE','CVDWD',
-            'CVD','CVCUX','CVCUR','CVBYT','CURRENCY','CUR','CSET$','CSCH',
-            'CSC','CRYPTO_GETPROVIDERTYPESCOUNT','CRYPTO_GETPROVIDERSCOUNT','CRYPTO_GETDEFAULTPROVIDER','CRYPTO_GENRANDOMSTRING','CRYPTO_ENUMPROVIDERTYPES','CRYPTO_ENUMPROVIDERS','CRYPTO_ENCRYPT',
-            'CRYPTO_DECRYPT','CREATEFONT','COTH','COTAN','COSH','COS','CONTROL_SETTEXT','CONTROL_GETTEXT',
-            'CONTROL_GETNUMBER','CONTROL','CONST','CONSOLE_WRITELINE','CONSOLE_WRITE','CONSOLE_WAITKEY','CONSOLE_SHOWWINDOW','CONSOLE_SHOWCURSOR',
-            'CONSOLE_SETTITLE','CONSOLE_SETTEXTATTRIBUTE','CONSOLE_SETSTDHANDLE','CONSOLE_SETSCREENBUFFERSIZE','CONSOLE_SETPROGRESSBARCHAR','CONSOLE_SETOUTPUTMODE','CONSOLE_SETOUTPUTCP','CONSOLE_SETINPUTMODE',
-            'CONSOLE_SETFILEAPISTOOEM','CONSOLE_SETFILEAPISTOANSI','CONSOLE_SETCURSORSIZE','CONSOLE_SETCURSORPOSITION','CONSOLE_SETCP','CONSOLE_SETACTIVESCREENBUFFER','CONSOLE_SCROLLWINDOW','CONSOLE_SCROLLBUFFERONEROW',
-            'CONSOLE_SCROLLBUFFER','CONSOLE_SAVESCREEN','CONSOLE_RESTORESCREEN','CONSOLE_READLINE','CONSOLE_READ','CONSOLE_PROGRESSBAR','CONSOLE_PRINTLINE','CONSOLE_PRINTAT',
-            'CONSOLE_PRINT','CONSOLE_NORMALSCREEN','CONSOLE_LINE','CONSOLE_INKEYB','CONSOLE_INKEY','CONSOLE_HIDECURSOR','CONSOLE_GETTITLE','CONSOLE_GETTEXTATTRIBUTE',
-            'CONSOLE_GETSTDHANDLE','CONSOLE_GETSIZEY','CONSOLE_GETSIZEX','CONSOLE_GETPROGRESSBARCHAR','CONSOLE_GETOUTPUTMODE','CONSOLE_GETOUTPUTCP','CONSOLE_GETNUMBEROFMOUSEBUTTONS','CONSOLE_GETINPUTMODE',
-            'CONSOLE_GETCURSORY','CONSOLE_GETCURSORX','CONSOLE_GETCURSORSIZE','CONSOLE_GETCURRENTFONTINDEX','CONSOLE_GETCP','CONSOLE_GENERATECTRLEVENT','CONSOLE_FULLSCREEN','CONSOLE_FREE',
-            'CONSOLE_FOREGROUNDRGB','CONSOLE_ENABLECTRLC','CONSOLE_DISABLECTRLC','CONSOLE_CREATESCREENBUFFER','CONSOLE_COLORAT','CONSOLE_CLS','CONSOLE_BOX','CONSOLE_BACKGROUNDRGB',
-            'CONSOLE_ATTACH','CONSOLE_AREFILEAPISANSI','CONSOLE_ALLOC','COM_VARIANTINIT','COM_VARIANTCOPY','COM_VARIANTCLEAR','COM_SUCCEEDED','COM_STRINGFROMCLSID',
-            'COM_RELEASE','COM_QUERYINTERFACE','COM_PROGIDFROMCLSID','COM_ISEQUALIID','COM_ISEQUALGUID','COM_ISEQUALCLSID','COM_GETOBJECT','COM_GETENGINEGUID',
-            'COM_EXECUTE','COM_DISPLAYERROR','COM_CREATEOBJECT','COM_CLSIDFROMSTRING','COM_CLSIDFROMPROGID','COM_BUILDVARIANT','COMBOBOX','COMBINATIONS',
-            'COLOR','CLIPBOARD_SETTEXT','CLIPBOARD_GETTEXT','CLIENT','CLEARMESSAGES','CHR$','CHOOSE$','CHOOSE',
-            'CHECKBOX','CHECK3STATE','CHECK','CGI_WRITELOGFILE','CGI_WRITE','CGI_URLDECODESTRING','CGI_UPLOADFILESTIME','CGI_UPLOADFILESNUMBER',
-            'CGI_UPLOADFILESIZE','CGI_STARTSESSION','CGI_SETSESSIONVARIABLE','CGI_RESETDEFAULTSETTINGS','CGI_REMOVESPECIALCHARSPREFIX','CGI_REMOVEQUOTE','CGI_READ','CGI_LOADCONFIGFILE',
-            'CGI_HEADER','CGI_GETSESSIONVARIABLE','CGI_GETREQUESTMETHOD','CGI_GETQUERYVALUE','CGI_GETCURRENTSESSION','CGI_GETCURRENTGUID','CGI_ENVIRON','CGI_CFGSETOPTION',
-            'CGI_CFGGETOPTION','CGI_ADDSPECIALCHARSPREFIX','CGI_ADDQUOTE','CEIL','CASE','CALL','BYVAL','BYTE',
-            'BYREF','BYCMD','BUTTON','BUNDLE_SETSCRIPTPARAMETERS','BUNDLE_SETSCRIPTNAME','BUNDLE_SETFLAGOBFUSCATEMAINSCRIPT','BUNDLE_SETFLAGDELETEAFTERRUN','BUNDLE_SETFLAGCOMPRESSALLFILES',
-            'BUNDLE_SETFLAGASKBEFOREEXTRACT','BUNDLE_SETEXTRACTIONFOLDER','BUNDLE_SETCREATIONFOLDER','BUNDLE_SETBUNDLENAME','BUNDLE_RESET','BUNDLE_MAKE','BUNDLE_BUILDER','BUNDLE_ADDFOLDER',
-            'BUNDLE_ADDFILE','BOUNDCHECK','BIN$','BIFF_WRITETEXT','BIFF_WRITENUMBER','BIFF_WRITEDATE','BIFF_SETROWHEIGHT','BIFF_SETCOLWIDTH',
-            'BIFF_SETBUFFER','BIFF_CREATEFILE','BIFF_CLOSEFILE','BETWEEN','BEEP','BAR','ATTACH','ATN',
-            'AT','ASSIGN','ASCIZ','ASCIIZ','ASCII2UNICODE','ASCENDING','ASCEND','ASC',
-            'AS','ARRAY','ARCTANH','ARCSINH','ARCSIN','ARCSECH','ARCSEC','ARCCSCH',
-            'ARCCSC','ARCCOTH','ARCCOT','ARCCOSH','ARCCOS','APP_TIMER','APP_SOURCEPATH','APP_SOURCENAME',
-            'APP_SOURCEFULLNAME','APP_PATH','APP_NAME','APP_LISTVARIABLES','APP_LISTKEYWORDS','APP_LISTFUNCTIONS','APP_LISTEQUATES','APP_INCLUDEPATH',
-            'APP_GETMODULEFULLPATH','APP_COUNTER','APPEND','ANY','ANIMATE_STOP','ANIMATE_PLAY','ANIMATE_OPEN','AND',
-            'ALIAS','ALERT','ADD','ACODE$','ABS','%DEF','#MINVERSION','#IF',
-            '#ENDIF','#ELSEIF','#ELSE','#DEFAULT','#DEF','SQLWRITEPRIVATEPROFILESTRING','SQLWRITEFILEDSN','SQLWRITEDSNTOINI',
-            'SQLVALIDDSN','SQLTRANSACT','SQLTABLES','SQLTABLEPRIVILEGES','SQLSTATISTICS','SQLSPECIALCOLUMNS','SQLSETSTMTOPTION','SQLSETSTMTATTR',
-            'SQLSETSCROLLOPTIONS','SQLSETPOS','SQLSETPARAM','SQLSETENVATTR','SQLSETDESCREC','SQLSETDESCFIELD','SQLSETCURSORNAME','SQLSETCONNECTOPTION',
-            'SQLSETCONNECTATTR','SQLSETCONFIGMODE','SQLROWCOUNT','SQLREMOVETRANSLATOR','SQLREMOVEDSNFROMINI','SQLREMOVEDRIVERMANAGER','SQLREMOVEDRIVER','SQLREADFILEDSN',
-            'SQLPUTDATA','SQLPROCEDURES','SQLPROCEDURECOLUMNS','SQLPRIMARYKEYS','SQLPREPARE','SQLPOSTINSTALLERERROR','SQLPARAMOPTIONS','SQLPARAMDATA',
-            'SQLNUMRESULTCOLS','SQLNUMPARAMS','SQLNATIVESQL','SQLMORERESULTS','SQLMANAGEDATASOURCES','SQLINSTALLTRANSLATOREX','SQLINSTALLERERROR','SQLINSTALLDRIVERMANAGER',
-            'SQLINSTALLDRIVEREX','SQLGETTYPEINFO','SQLGETTRANSLATOR','SQLGETSTMTOPTION','SQLGETSTMTATTR','SQLGETPRIVATEPROFILESTRING','SQLGETINSTALLEDDRIVERS','SQLGETINFO',
-            'SQLGETFUNCTIONS','SQLGETENVATTR','SQLGETDIAGREC','SQLGETDIAGFIELD','SQLGETDESCREC','SQLGETDESCFIELD','SQLGETDATA','SQLGETCURSORNAME',
-            'SQLGETCONNECTOPTION','SQLGETCONNECTATTR','SQLGETCONFIGMODE','SQLFREESTMT','SQLFREEHANDLE','SQLFREEENV','SQLFREECONNECT','SQLFOREIGNKEYS',
-            'SQLFETCHSCROLL','SQLFETCH','SQLEXTENDEDFETCH','SQLEXECUTE','SQLEXECDIRECT','SQLERROR','SQLENDTRAN','SQLDRIVERS',
-            'SQLDRIVERCONNECT','SQLDISCONNECT','SQLDESCRIBEPARAM','SQLDESCRIBECOL','SQLDATASOURCES','SQLCREATEDATASOURCE','SQLCOPYDESC','SQLCONNECT',
-            'SQLCONFIGDRIVER','SQLCONFIGDATASOURCE','SQLCOLUMNS','SQLCOLUMNPRIVILEGES','SQLCOLATTRIBUTES','SQLCOLATTRIBUTE','SQLCLOSECURSOR','SQLCANCEL',
-            'SQLBULKOPERATIONS','SQLBROWSECONNECT','SQLBINDPARAMETER','SQLBINDPARAM','SQLBINDCOL','SQLALLOCSTMT','SQLALLOCHANDLE','SQLALLOCENV',
-            'SQLALLOCCONNECT','ODBCWRONGDRIVER','ODBCWRITEPRIVATEPROFILESTRING','ODBCWRITEFILEDSN','ODBCWRITEDSNTOINI','ODBCVALIDDSN','ODBCUPDATERECORD','ODBCUPDATEBYBOOKMARK',
-            'ODBCUNLOCKRECORD','ODBCUNBINDCOLUMNS','ODBCUNBINDCOL','ODBCTABLESCOUNT','ODBCTABLES','ODBCTABLEPRIVILEGESCOUNT','ODBCTABLEPRIVILEGES','ODBCSUPPORTS',
-            'ODBCSTATTABLESCHEMANAME','ODBCSTATTABLEPAGES','ODBCSTATTABLECATALOGNAME','ODBCSTATTABLECARDINALITY','ODBCSTATISTICSCOUNT','ODBCSTATISTICS','ODBCSTATINDEXSORTSEQUENCE','ODBCSTATINDEXSCHEMANAME',
-            'ODBCSTATINDEXQUALIFIER','ODBCSTATINDEXPAGES','ODBCSTATINDEXFILTERCONDITION','ODBCSTATINDEXCOLUMNORDINALPOSITION','ODBCSTATINDEXCOLUMNNAME','ODBCSTATINDEXCATALOGNAME','ODBCSTATINDEXCARDINALITY','ODBCSTATINDEXALLOWDUPLICATES',
-            'ODBCSPECIALCOLUMNSCOUNT','ODBCSPECIALCOLUMNS','ODBCSETTXNISOLATION','ODBCSETTRANSLATELIB','ODBCSETTRACEFILE','ODBCSETTRACE','ODBCSETSTMTUSEBOOKMARKS','ODBCSETSTMTSIMULATECURSOR',
-            'ODBCSETSTMTROWSTATUSPTR','ODBCSETSTMTROWSFETCHEDPTR','ODBCSETSTMTROWOPERATIONPTR','ODBCSETSTMTROWBINDTYPE','ODBCSETSTMTROWBINDOFFSETPTR','ODBCSETSTMTROWARRAYSIZE','ODBCSETSTMTRETRIEVEDATA','ODBCSETSTMTQUERYTIMEOUT',
-            'ODBCSETSTMTPARAMSTATUSPTR','ODBCSETSTMTPARAMSPROCESSEDPTR','ODBCSETSTMTPARAMSETSIZE','ODBCSETSTMTPARAMOPERATIONPTR','ODBCSETSTMTPARAMBINDTYPE','ODBCSETSTMTPARAMBINDOFFSETPTR','ODBCSETSTMTNOSCAN','ODBCSETSTMTMETADATAID',
-            'ODBCSETSTMTMAXROWS','ODBCSETSTMTMAXLENGTH','ODBCSETSTMTKEYSETSIZE','ODBCSETSTMTFETCHBOOKMARKPTR','ODBCSETSTMTENABLEAUTOIPD','ODBCSETSTMTCURSORTYPE','ODBCSETSTMTCURSORSENSITIVITY','ODBCSETSTMTCURSORSCROLLABLE',
-            'ODBCSETSTMTCONCURRENCY','ODBCSETSTMTATTR','ODBCSETSTMTASYNCENABLE','ODBCSETSTMTAPPROWDESC','ODBCSETSTMTAPPPARAMDESC','ODBCSETSTATICCURSOR','ODBCSETROWVERCONCURRENCY','ODBCSETRESULT',
-            'ODBCSETRELATIVEPOSITION','ODBCSETREADONLYCONCURRENCY','ODBCSETQUIETMODE','ODBCSETPOSITION','ODBCSETPOS','ODBCSETPACKETMODE','ODBCSETOPTIMISTICCONCURRENCY','ODBCSETODBCCURSORS',
-            'ODBCSETMULTIUSERKEYSETCURSOR','ODBCSETMETADATAID','ODBCSETLOGINTIMEOUT','ODBCSETLOCKCONCURRENCY','ODBCSETKEYSETDRIVENCURSOR','ODBCSETFORWARDONLYCURSOR','ODBCSETENVOUTPUTNTS','ODBCSETENVODBCVERSION',
-            'ODBCSETENVCPMATCH','ODBCSETENVCONNECTIONPOOLING','ODBCSETENVATTR','ODBCSETDYNAMICCURSOR','ODBCSETDESCREC','ODBCSETDESCFIELD','ODBCSETCURSORTYPE','ODBCSETCURSORSENSITIVITY',
-            'ODBCSETCURSORSCROLLABILITY','ODBCSETCURSORNAME','ODBCSETCURSORLOCKTYPE','ODBCSETCURSORKEYSETSIZE','ODBCSETCURSORCONCURRENCY','ODBCSETCURRENTCATALOG','ODBCSETCONNECTIONTIMEOUT','ODBCSETCONNECTATTR',
-            'ODBCSETCONFIGMODE','ODBCSETCONCURVALUESCONCURRENCY','ODBCSETAUTOCOMMITON','ODBCSETAUTOCOMMITOFF','ODBCSETAUTOCOMMIT','ODBCSETASYNCENABLE','ODBCSETACCESSMODE','ODBCSETABSOLUTEPOSITION',
-            'ODBCROWCOUNT','ODBCROLLBACKTRAN','ODBCROLLBACKENVTRAN','ODBCROLLBACKDBCTRAN','ODBCRESULT','ODBCRESETPARAMS','ODBCREMOVETRANSLATOR','ODBCREMOVEDSNFROMINI',
-            'ODBCREMOVEDRIVERMANAGER','ODBCREMOVEDRIVER','ODBCREFRESHRECORD','ODBCRECORDCOUNT','ODBCREADFILEDSN','ODBCQUOTEDIDENTIFIERCASE','ODBCPUTDATA','ODBCPROCEDURESCOUNT',
-            'ODBCPROCEDURES','ODBCPROCEDURECOLUMNSCOUNT','ODBCPROCEDURECOLUMNS','ODBCPRIMARYKEYSCOUNT','ODBCPRIMARYKEYS','ODBCPREPARE','ODBCPOSTINSTALLERERROR','ODBCPARAMDATA',
-            'ODBCOPENSTMT','ODBCOPENCONNECTION','ODBCNUMRESULTCOLS','ODBCNUMPARAMS','ODBCNATIVESQL','ODBCMOVEPREVIOUS','ODBCMOVENEXT','ODBCMOVELAST',
-            'ODBCMOVEFIRST','ODBCMOVE','ODBCMORERESULTS','ODBCMANAGEDATASOURCES','ODBCLOCKRECORD','ODBCINSTALLTRANSLATOREX','ODBCINSTALLERERROR','ODBCINSTALLDRIVERMANAGER',
-            'ODBCINSTALLDRIVEREX','ODBCGETXOPENCLIYEAR','ODBCGETUSERNAME','ODBCGETUNION','ODBCGETTYPEINFOCOUNT','ODBCGETTYPEINFO','ODBCGETTXNISOLATIONOPTION','ODBCGETTXNISOLATION',
-            'ODBCGETTXNCAPABLE','ODBCGETTRANSLATOR','ODBCGETTRANSLATELIB','ODBCGETTRACEFILE','ODBCGETTRACE','ODBCGETTIMEDATEFUNCTIONS','ODBCGETTIMEDATEDIFFINTERVALS','ODBCGETTIMEDATEADDINTERVALS',
-            'ODBCGETTABLETERM','ODBCGETSYSTEMFUNCTIONS','ODBCGETSUBQUERIES','ODBCGETSTRINGFUNCTIONS','ODBCGETSTMTUSEBOOKMARKS','ODBCGETSTMTSQLSTATE','ODBCGETSTMTSIMULATECURSOR','ODBCGETSTMTROWSTATUSPTR',
-            'ODBCGETSTMTROWSFETCHEDPTR','ODBCGETSTMTROWOPERATIONPTR','ODBCGETSTMTROWNUMBER','ODBCGETSTMTROWBINDTYPE','ODBCGETSTMTROWBINDOFFSETPTR','ODBCGETSTMTROWARRAYSIZE','ODBCGETSTMTRETRIEVEDATA','ODBCGETSTMTQUERYTIMEOUT',
-            'ODBCGETSTMTPARAMSTATUSPTR','ODBCGETSTMTPARAMSPROCESSEDPTR','ODBCGETSTMTPARAMSETSIZE','ODBCGETSTMTPARAMOPERATIONPTR','ODBCGETSTMTPARAMBINDTYPE','ODBCGETSTMTPARAMBINDOFFSETPTR','ODBCGETSTMTNOSCAN','ODBCGETSTMTMETADATAID',
-            'ODBCGETSTMTMAXROWS','ODBCGETSTMTMAXLENGTH','ODBCGETSTMTKEYSETSIZE','ODBCGETSTMTIMPROWDESC','ODBCGETSTMTIMPPARAMDESC','ODBCGETSTMTFETCHBOOKMARKPTR','ODBCGETSTMTERRORINFO','ODBCGETSTMTENABLEAUTOIPD',
-            'ODBCGETSTMTCURSORTYPE','ODBCGETSTMTCURSORSENSITIVITY','ODBCGETSTMTCURSORSCROLLABLE','ODBCGETSTMTCONCURRENCY','ODBCGETSTMTATTR','ODBCGETSTMTASYNCENABLE','ODBCGETSTMTAPPROWDESC','ODBCGETSTMTAPPPARAMDESC',
-            'ODBCGETSTATICCURSORATTRIBUTES2','ODBCGETSTATICCURSORATTRIBUTES1','ODBCGETSTATEMENTSQLSTATE','ODBCGETSTATEMENTERRORINFO','ODBCGETSTANDARDCLICONFORMANCE','ODBCGETSQLSTATE','ODBCGETSQLCONFORMANCE','ODBCGETSQL92VALUEEXPRESSIONS',
-            'ODBCGETSQL92STRINGFUNCTIONS','ODBCGETSQL92ROWVALUECONSTRUCTOR','ODBCGETSQL92REVOKE','ODBCGETSQL92RELATIONALJOINOPERATORS','ODBCGETSQL92PREDICATES','ODBCGETSQL92NUMERICVALUEFUNCTIONS','ODBCGETSQL92GRANT','ODBCGETSQL92FOREIGNKEYUPDATERULE',
-            'ODBCGETSQL92FOREIGNKEYDELETERULE','ODBCGETSQL92DATETIMEFUNCTIONS','ODBCGETSPECIALCHARACTERS','ODBCGETSERVERNAME','ODBCGETSEARCHPATTERNESCAPE','ODBCGETSCROLLOPTIONS','ODBCGETSCHEMAUSAGE','ODBCGETSCHEMATERM',
-            'ODBCGETROWUPDATES','ODBCGETQUIETMODE','ODBCGETPROCEDURETERM','ODBCGETPROCEDURESSUPPORT','ODBCGETPRIVATEPROFILESTRING','ODBCGETPOSOPERATIONS','ODBCGETPARAMARRAYSELECTS','ODBCGETPARAMARRAYROWCOUNTS',
-            'ODBCGETPACKETMODE','ODBCGETOUTERJOINS','ODBCGETORDERBYCOLUMNSINSELECT','ODBCGETOJCAPABILITIES','ODBCGETODBCVER','ODBCGETODBCINTERFACECONFORMANCE','ODBCGETODBCCURSORS','ODBCGETNUMERICFUNCTIONS',
-            'ODBCGETNULLCOLLATION','ODBCGETNONNULLABLECOLUMNS','ODBCGETNEEDLONGDATALEN','ODBCGETMULTRESULTSETS','ODBCGETMULTIPLEACTIVETXN','ODBCGETMETADATAID','ODBCGETMAXUSERNAMELEN','ODBCGETMAXTABLESINSELECT',
-            'ODBCGETMAXTABLENAMELEN','ODBCGETMAXSTATEMENTLEN','ODBCGETMAXSCHEMANAMELEN','ODBCGETMAXROWSIZEINCLUDESLONG','ODBCGETMAXROWSIZE','ODBCGETMAXPROCEDURENAMELEN','ODBCGETMAXINDEXSIZE','ODBCGETMAXIDENTIFIERLEN',
-            'ODBCGETMAXDRIVERCONNECTIONS','ODBCGETMAXCURSORNAMELEN','ODBCGETMAXCONCURRENTACTIVITIES','ODBCGETMAXCOLUMNSINTABLE','ODBCGETMAXCOLUMNSINSELECT','ODBCGETMAXCOLUMNSINORDERBY','ODBCGETMAXCOLUMNSININDEX','ODBCGETMAXCOLUMNSINGROUPBY',
-            'ODBCGETMAXCOLUMNNAMELEN','ODBCGETMAXCHARLITERALLEN','ODBCGETMAXCATALOGNAMELEN','ODBCGETMAXBINARYLITERALLEN','ODBCGETMAXASYNCCONCURRENTSTATEMENTS','ODBCGETLONGVARCHARDATABYCOLNAME','ODBCGETLONGVARCHARDATA','ODBCGETLOGINTIMEOUT',
-            'ODBCGETLIKEESCAPECLAUSE','ODBCGETKEYWORDS','ODBCGETKEYSETCURSORATTRIBUTES2','ODBCGETKEYSETCURSORATTRIBUTES1','ODBCGETINTEGRITY','ODBCGETINSTALLERERRORMESSAGE','ODBCGETINSTALLERERRORCODE','ODBCGETINSTALLEDDRIVERS',
-            'ODBCGETINSERTSTATEMENT','ODBCGETINFOSTR','ODBCGETINFOSCHEMAVIEWS','ODBCGETINFOLONG','ODBCGETINFOINT','ODBCGETINFO','ODBCGETINDEXKEYWORDS','ODBCGETIMPROWDESCREC',
-            'ODBCGETIMPROWDESCFIELDTYPE','ODBCGETIMPROWDESCFIELDSCALE','ODBCGETIMPROWDESCFIELDPRECISION','ODBCGETIMPROWDESCFIELDOCTETLENGTH','ODBCGETIMPROWDESCFIELDNULLABLE','ODBCGETIMPROWDESCFIELDNAME','ODBCGETIMPROWDESCFIELD','ODBCGETIMPPARAMDESCREC',
-            'ODBCGETIMPPARAMDESCFIELDTYPE','ODBCGETIMPPARAMDESCFIELDSCALE','ODBCGETIMPPARAMDESCFIELDPRECISION','ODBCGETIMPPARAMDESCFIELDOCTETLENGTH','ODBCGETIMPPARAMDESCFIELDNULLABLE','ODBCGETIMPPARAMDESCFIELDNAME','ODBCGETIMPPARAMDESCFIELD','ODBCGETIDENTIFIERQUOTECHAR',
-            'ODBCGETIDENTIFIERCASE','ODBCGETGROUPBY','ODBCGETFUNCTIONS','ODBCGETFORWARDONLYCURSORATTRIBUTES2','ODBCGETFORWARDONLYCURSORATTRIBUTES1','ODBCGETFILEUSAGE','ODBCGETEXPRESSIONSINORDERBY','ODBCGETERRORINFO',
-            'ODBCGETENVSQLSTATE','ODBCGETENVOUTPUTNTS','ODBCGETENVODBCVERSION','ODBCGETENVIRONMENTSQLSTATE','ODBCGETENVIRONMENTERRORINFO','ODBCGETENVERRORINFO','ODBCGETENVCPMATCH','ODBCGETENVCONNECTIONPOOLING',
-            'ODBCGETENVATTR','ODBCGETDYNAMICCURSORATTRIBUTES2','ODBCGETDYNAMICCURSORATTRIBUTES1','ODBCGETDROPVIEW','ODBCGETDROPTRANSLATION','ODBCGETDROPTABLE','ODBCGETDROPSCHEMA','ODBCGETDROPDOMAIN',
-            'ODBCGETDROPCOLLATION','ODBCGETDROPCHARACTERSET','ODBCGETDROPASSERTION','ODBCGETDRIVERVER','ODBCGETDRIVERODBCVER','ODBCGETDRIVERNAME','ODBCGETDRIVERMANAGERINSTALLPATH','ODBCGETDRIVERHLIB',
-            'ODBCGETDRIVERHENV','ODBCGETDRIVERHDBC','ODBCGETDMVERMINOR','ODBCGETDMVERMAJOR','ODBCGETDMVER','ODBCGETDIAGREC','ODBCGETDIAGFIELD','ODBCGETDESCSQLSTATE',
-            'ODBCGETDESCRIPTORSQLSTATE','ODBCGETDESCRIPTORERRORINFO','ODBCGETDESCRIBEPARAMETER','ODBCGETDESCREC','ODBCGETDESCFIELD','ODBCGETDESCERRORINFO','ODBCGETDEFAULTTXNISOLATION','ODBCGETDDLINDEX',
-            'ODBCGETDBMSVER','ODBCGETDBMSNAME','ODBCGETDBCSQLSTATE','ODBCGETDBCERRORINFO','ODBCGETDATETIMELITERALS','ODBCGETDATASTRINGBYCOLNAME','ODBCGETDATASTRING','ODBCGETDATASOURCEREADONLY',
-            'ODBCGETDATASOURCENAME','ODBCGETDATAEXTENSIONS','ODBCGETDATABASENAME','ODBCGETDATA','ODBCGETCURSORTYPE','ODBCGETCURSORSENSITIVITYSUPPORT','ODBCGETCURSORSENSITIVITY','ODBCGETCURSORSCROLLABILITY',
-            'ODBCGETCURSORROLLBACKBEHAVIOR','ODBCGETCURSORNAME','ODBCGETCURSORLOCKTYPE','ODBCGETCURSORKEYSETSIZE','ODBCGETCURSORCONCURRENCY','ODBCGETCURSORCOMMITBEHAVIOR','ODBCGETCURRENTCATALOG','ODBCGETCREATEVIEW',
-            'ODBCGETCREATETRANSLATION','ODBCGETCREATETABLE','ODBCGETCREATESCHEMA','ODBCGETCREATEDOMAIN','ODBCGETCREATECOLLATION','ODBCGETCREATECHARACTERSET','ODBCGETCREATEASSERTION','ODBCGETCORRELATIONNAME',
-            'ODBCGETCONVERTVARCHAR','ODBCGETCONVERTVARBINARY','ODBCGETCONVERTTINYINT','ODBCGETCONVERTTIMESTAMP','ODBCGETCONVERTTIME','ODBCGETCONVERTSMALLINT','ODBCGETCONVERTREAL','ODBCGETCONVERTNUMERIC',
-            'ODBCGETCONVERTLONGVARCHAR','ODBCGETCONVERTLONGVARBINARY','ODBCGETCONVERTINTERVALYEARMONTH','ODBCGETCONVERTINTERVALDAYTIME','ODBCGETCONVERTINTEGER','ODBCGETCONVERTFUNCTIONS','ODBCGETCONVERTFLOAT','ODBCGETCONVERTDOUBLE',
-            'ODBCGETCONVERTDECIMAL','ODBCGETCONVERTDATE','ODBCGETCONVERTCHAR','ODBCGETCONVERTBIT','ODBCGETCONVERTBINARY','ODBCGETCONVERTBIGINT','ODBCGETCONNECTIONTIMEOUT','ODBCGETCONNECTIONSQLSTATE',
-            'ODBCGETCONNECTIONERRORINFO','ODBCGETCONNECTIONDEAD','ODBCGETCONNECTATTR','ODBCGETCONFIGMODE','ODBCGETCONCATNULLBEHAVIOR','ODBCGETCOLUMNALIAS','ODBCGETCOLLATIONSEQ','ODBCGETCATALOGUSAGE',
-            'ODBCGETCATALOGTERM','ODBCGETCATALOGNAMESEPARATOR','ODBCGETCATALOGNAME','ODBCGETCATALOGLOCATION','ODBCGETBOOKMARKPERSISTENCE','ODBCGETBATCHSUPPORT','ODBCGETBATCHROWCOUNT','ODBCGETAUTOIPD',
-            'ODBCGETAUTOCOMMIT','ODBCGETASYNCMODE','ODBCGETASYNCENABLE','ODBCGETALTERTABLE','ODBCGETALTERDOMAIN','ODBCGETAGGREGATEFUNCTIONS','ODBCGETACTIVEENVIRONMENTS','ODBCGETACCESSMODE',
-            'ODBCGETACCESSIBLETABLES','ODBCGETACCESSIBLEPROCEDURES','ODBCFREESTMT','ODBCFREEHANDLE','ODBCFREEENV','ODBCFREEDESC','ODBCFREEDBC','ODBCFREECONNECT',
-            'ODBCFOREIGNKEYSCOUNT','ODBCFOREIGNKEYS','ODBCFETCHSCROLL','ODBCFETCHBYBOOKMARK','ODBCFETCH','ODBCEXTENDEDFETCH','ODBCEXECUTE','ODBCEXECDIRECT',
-            'ODBCERROR','ODBCEOF','ODBCENDTRAN','ODBCDRIVERSCOUNT','ODBCDRIVERS','ODBCDRIVERCONNECT','ODBCDISCONNECT','ODBCDESCRIBEPARAM',
-            'ODBCDESCRIBECOL','ODBCDELETERECORD','ODBCDELETEBYBOOKMARK','ODBCDATASOURCES','ODBCCREATEDATASOURCE','ODBCCOPYDESC','ODBCCONNECTIONISDEAD','ODBCCONNECTIONISALIVE',
-            'ODBCCONNECT','ODBCCONFIGDRIVER','ODBCCONFIGDATASOURCE','ODBCCOMMITTRAN','ODBCCOMMITENVTRAN','ODBCCOMMITDBCTRAN','ODBCCOLUPDATABLE','ODBCCOLUNSIGNED',
-            'ODBCCOLUNNAMED','ODBCCOLUMNSCOUNT','ODBCCOLUMNS','ODBCCOLUMNPRIVILEGESCOUNT','ODBCCOLUMNPRIVILEGES','ODBCCOLUMN','ODBCCOLTYPENAME','ODBCCOLTYPE',
-            'ODBCCOLTABLENAME','ODBCCOLSEARCHABLE','ODBCCOLSCHEMANAME','ODBCCOLSCALE','ODBCCOLPRECISION','ODBCCOLOCTETLENGTH','ODBCCOLNUMPRECRADIX','ODBCCOLNULLABLE',
-            'ODBCCOLNAME','ODBCCOLLOCALTYPENAME','ODBCCOLLITERALSUFFIX','ODBCCOLLITERALPREFIX','ODBCCOLLENGTH','ODBCCOLLABEL','ODBCCOLISNULL','ODBCCOLFIXEDPRECSCALE',
-            'ODBCCOLDISPLAYSIZE','ODBCCOLCOUNT','ODBCCOLCONCISETYPE','ODBCCOLCATALOGNAME','ODBCCOLCASESENSITIVE','ODBCCOLBASETABLENAME','ODBCCOLBASECOLUMNNAME','ODBCCOLAUTOUNIQUEVALUE',
-            'ODBCCOLATTRIBUTE','ODBCCLOSESTMTCURSOR','ODBCCLOSESTMT','ODBCCLOSECURSOR','ODBCCLOSECONNECTION','ODBCCLEARRESULT','ODBCCANCEL','ODBCBULKOPERATIONS',
-            'ODBCBROWSECONNECT','ODBCBINDPARAMETER','ODBCBINDCOLTOWORD','ODBCBINDCOLTOTIMESTAMP','ODBCBINDCOLTOTIME','ODBCBINDCOLTOSTRING','ODBCBINDCOLTOSINGLE','ODBCBINDCOLTOQUAD',
-            'ODBCBINDCOLTONUMERIC','ODBCBINDCOLTOLONG','ODBCBINDCOLTOINTEGER','ODBCBINDCOLTODWORD','ODBCBINDCOLTODOUBLE','ODBCBINDCOLTODECIMAL','ODBCBINDCOLTODATE','ODBCBINDCOLTOCURRENCY',
-            'ODBCBINDCOLTOBYTE','ODBCBINDCOLTOBIT','ODBCBINDCOLTOBINARY','ODBCBINDCOL','ODBCALLOCSTMT','ODBCALLOCHANDLE','ODBCALLOCENV','ODBCALLOCDESC',
-            'ODBCALLOCDBC','ODBCALLOCCONNECT','ODBCADDRECORD','GLVIEWPORT','GLVERTEXPOINTER','GLVERTEX4SV','GLVERTEX4S','GLVERTEX4IV',
-            'GLVERTEX4I','GLVERTEX4FV','GLVERTEX4F','GLVERTEX4DV','GLVERTEX4D','GLVERTEX3SV','GLVERTEX3S','GLVERTEX3IV',
-            'GLVERTEX3I','GLVERTEX3FV','GLVERTEX3F','GLVERTEX3DV','GLVERTEX3D','GLVERTEX2SV','GLVERTEX2S','GLVERTEX2IV',
-            'GLVERTEX2I','GLVERTEX2FV','GLVERTEX2F','GLVERTEX2DV','GLVERTEX2D','GLUUNPROJECT','GLUTESSVERTEX','GLUTESSPROPERTY',
-            'GLUTESSNORMAL','GLUTESSENDPOLYGON','GLUTESSENDCONTOUR','GLUTESSCALLBACK','GLUTESSBEGINPOLYGON','GLUTESSBEGINCONTOUR','GLUSPHERE','GLUSCALEIMAGE',
-            'GLUQUADRICTEXTURE','GLUQUADRICORIENTATION','GLUQUADRICNORMALS','GLUQUADRICDRAWSTYLE','GLUQUADRICCALLBACK','GLUPWLCURVE','GLUPROJECT','GLUPICKMATRIX',
-            'GLUPERSPECTIVE','GLUPARTIALDISK','GLUORTHO2D','GLUNURBSSURFACE','GLUNURBSPROPERTY','GLUNURBSCURVE','GLUNURBSCALLBACK','GLUNEXTCONTOUR',
-            'GLUNEWTESS','GLUNEWQUADRIC','GLUNEWNURBSRENDERER','GLULOOKAT','GLULOADSAMPLINGMATRICES','GLUGETTESSPROPERTY','GLUGETSTRING','GLUGETNURBSPROPERTY',
-            'GLUERRORSTRING','GLUENDTRIM','GLUENDSURFACE','GLUENDPOLYGON','GLUENDCURVE','GLUDISK','GLUDELETETESS','GLUDELETEQUADRIC',
-            'GLUDELETENURBSRENDERER','GLUCYLINDER','GLUBUILD2DMIPMAPS','GLUBUILD1DMIPMAPS','GLUBEGINTRIM','GLUBEGINSURFACE','GLUBEGINPOLYGON','GLUBEGINCURVE',
-            'GLTRANSLATEF','GLTRANSLATED','GLTEXSUBIMAGE2D','GLTEXSUBIMAGE1D','GLTEXPARAMETERIV','GLTEXPARAMETERI','GLTEXPARAMETERFV','GLTEXPARAMETERF',
-            'GLTEXIMAGE2D','GLTEXIMAGE1D','GLTEXGENIV','GLTEXGENI','GLTEXGENFV','GLTEXGENF','GLTEXGENDV','GLTEXGEND',
-            'GLTEXENVIV','GLTEXENVI','GLTEXENVFV','GLTEXENVF','GLTEXCOORDPOINTER','GLTEXCOORD4SV','GLTEXCOORD4S','GLTEXCOORD4IV',
-            'GLTEXCOORD4I','GLTEXCOORD4FV','GLTEXCOORD4F','GLTEXCOORD4DV','GLTEXCOORD4D','GLTEXCOORD3SV','GLTEXCOORD3S','GLTEXCOORD3IV',
-            'GLTEXCOORD3I','GLTEXCOORD3FV','GLTEXCOORD3F','GLTEXCOORD3DV','GLTEXCOORD3D','GLTEXCOORD2SV','GLTEXCOORD2S','GLTEXCOORD2IV',
-            'GLTEXCOORD2I','GLTEXCOORD2FV','GLTEXCOORD2F','GLTEXCOORD2DV','GLTEXCOORD2D','GLTEXCOORD1SV','GLTEXCOORD1S','GLTEXCOORD1IV',
-            'GLTEXCOORD1I','GLTEXCOORD1FV','GLTEXCOORD1F','GLTEXCOORD1DV','GLTEXCOORD1D','GLSTENCILOP','GLSTENCILMASK','GLSTENCILFUNC',
-            'GLSHADEMODEL','GLSELECTBUFFER','GLSCISSOR','GLSCALEF','GLSCALED','GLROTATEF','GLROTATED','GLRENDERMODE',
-            'GLRECTSV','GLRECTS','GLRECTIV','GLRECTI','GLRECTFV','GLRECTF','GLRECTDV','GLRECTD',
-            'GLREADPIXELS','GLREADBUFFER','GLRASTERPOS4SV','GLRASTERPOS4S','GLRASTERPOS4IV','GLRASTERPOS4I','GLRASTERPOS4FV','GLRASTERPOS4F',
-            'GLRASTERPOS4DV','GLRASTERPOS4D','GLRASTERPOS3SV','GLRASTERPOS3S','GLRASTERPOS3IV','GLRASTERPOS3I','GLRASTERPOS3FV','GLRASTERPOS3F',
-            'GLRASTERPOS3DV','GLRASTERPOS3D','GLRASTERPOS2SV','GLRASTERPOS2S','GLRASTERPOS2IV','GLRASTERPOS2I','GLRASTERPOS2FV','GLRASTERPOS2F',
-            'GLRASTERPOS2DV','GLRASTERPOS2D','GLPUSHNAME','GLPUSHMATRIX','GLPUSHCLIENTATTRIB','GLPUSHATTRIB','GLPRIORITIZETEXTURES','GLPOPNAME',
-            'GLPOPMATRIX','GLPOPCLIENTATTRIB','GLPOPATTRIB','GLPOLYGONSTIPPLE','GLPOLYGONOFFSET','GLPOLYGONMODE','GLPOINTSIZE','GLPIXELZOOM',
-            'GLPIXELTRANSFERI','GLPIXELTRANSFERF','GLPIXELSTOREI','GLPIXELSTOREF','GLPIXELMAPUSV','GLPIXELMAPUIV','GLPIXELMAPFV','GLPASSTHROUGH',
-            'GLORTHO','GLNORMALPOINTER','GLNORMAL3SV','GLNORMAL3S','GLNORMAL3IV','GLNORMAL3I','GLNORMAL3FV','GLNORMAL3F',
-            'GLNORMAL3DV','GLNORMAL3D','GLNORMAL3BV','GLNORMAL3B','GLNEWLIST','GLMULTMATRIXF','GLMULTMATRIXD','GLMATRIXMODE',
-            'GLMATERIALIV','GLMATERIALI','GLMATERIALFV','GLMATERIALF','GLMAPGRID2F','GLMAPGRID2D','GLMAPGRID1F','GLMAPGRID1D',
-            'GLMAP2F','GLMAP2D','GLMAP1F','GLMAP1D','GLLOGICOP','GLLOADNAME','GLLOADMATRIXF','GLLOADMATRIXD',
-            'GLLOADIDENTITY','GLLISTBASE','GLLINEWIDTH','GLLINESTIPPLE','GLLIGHTMODELIV','GLLIGHTMODELI','GLLIGHTMODELFV','GLLIGHTMODELF',
-            'GLLIGHTIV','GLLIGHTI','GLLIGHTFV','GLLIGHTF','GLISTEXTURE','GLISLIST','GLISENABLED','GLINTERLEAVEDARRAYS',
-            'GLINITNAMES','GLINDEXUBV','GLINDEXUB','GLINDEXSV','GLINDEXS','GLINDEXPOINTER','GLINDEXMASK','GLINDEXIV',
-            'GLINDEXI','GLINDEXFV','GLINDEXF','GLINDEXDV','GLINDEXD','GLHINT','GLGETTEXPARAMETERIV','GLGETTEXPARAMETERFV',
-            'GLGETTEXLEVELPARAMETERIV','GLGETTEXLEVELPARAMETERFV','GLGETTEXIMAGE','GLGETTEXGENIV','GLGETTEXGENFV','GLGETTEXGENDV','GLGETTEXENVIV','GLGETTEXENVFV',
-            'GLGETSTRING','GLGETPOLYGONSTIPPLE','GLGETPOINTERV','GLGETPIXELMAPUSV','GLGETPIXELMAPUIV','GLGETPIXELMAPFV','GLGETMATERIALIV','GLGETMATERIALFV',
-            'GLGETMAPIV','GLGETMAPFV','GLGETMAPDV','GLGETLIGHTIV','GLGETLIGHTFV','GLGETINTEGERV','GLGETFLOATV','GLGETERROR',
-            'GLGETDOUBLEV','GLGETCLIPPLANE','GLGETBOOLEANV','GLGENTEXTURES','GLGENLISTS','GLFRUSTUM','GLFRONTFACE','GLFOGIV',
-            'GLFOGI','GLFOGFV','GLFOGF','GLFLUSH','GLFINISH','GLFEEDBACKBUFFER','GLEVALPOINT2','GLEVALPOINT1',
-            'GLEVALMESH2','GLEVALMESH1','GLEVALCOORD2FV','GLEVALCOORD2F','GLEVALCOORD2DV','GLEVALCOORD2D','GLEVALCOORD1FV','GLEVALCOORD1F',
-            'GLEVALCOORD1DV','GLEVALCOORD1D','GLENDLIST','GLEND','GLENABLECLIENTSTATE','GLENABLE','GLEDGEFLAGV','GLEDGEFLAGPOINTER',
-            'GLEDGEFLAG','GLDRAWPIXELS','GLDRAWELEMENTS','GLDRAWBUFFER','GLDRAWARRAYS','GLDISABLECLIENTSTATE','GLDISABLE','GLDEPTHRANGE',
-            'GLDEPTHMASK','GLDEPTHFUNC','GLDELETETEXTURES','GLDELETELISTS','GLCULLFACE','GLCOPYTEXSUBIMAGE2D','GLCOPYTEXSUBIMAGE1D','GLCOPYTEXIMAGE2D',
-            'GLCOPYTEXIMAGE1D','GLCOPYPIXELS','GLCOLORPOINTER','GLCOLORMATERIAL','GLCOLORMASK','GLCOLOR4USV','GLCOLOR4US','GLCOLOR4UIV',
-            'GLCOLOR4UI','GLCOLOR4UBV','GLCOLOR4UB','GLCOLOR4SV','GLCOLOR4S','GLCOLOR4IV','GLCOLOR4I','GLCOLOR4FV',
-            'GLCOLOR4F','GLCOLOR4DV','GLCOLOR4D','GLCOLOR4BV','GLCOLOR4B','GLCOLOR3USV','GLCOLOR3US','GLCOLOR3UIV',
-            'GLCOLOR3UI','GLCOLOR3UBV','GLCOLOR3UB','GLCOLOR3SV','GLCOLOR3S','GLCOLOR3IV','GLCOLOR3I','GLCOLOR3FV',
-            'GLCOLOR3F','GLCOLOR3DV','GLCOLOR3D','GLCOLOR3BV','GLCOLOR3B','GLCLIPPLANE','GLCLEARSTENCIL','GLCLEARINDEX',
-            'GLCLEARDEPTH','GLCLEARCOLOR','GLCLEARACCUM','GLCLEAR','GLCALLLISTS','GLCALLLIST','GLBLENDFUNC','GLBITMAP',
-            'GLBINDTEXTURE','GLBEGIN','GLARRAYELEMENT','GLARETEXTURESRESIDENT','GLALPHAFUNC','GLACCUM'),
-        2 => array(
-            '$BEL','$BS','$CR','$CRLF','$DQ','$DT_DATE_SEPARATOR','$DT_LANGUAGE','$DT_TIME_SEPARATOR',
-            '$ESC','$FF','$LF','$NUL','$PC_SD_MY_PC','$SPC','$SQL_OPT_TRACE_FILE_DEFAULT','$SQL_SPEC_STRING',
-            '$TAB','$TRACKBAR_CLASS','$VT','%ACM_OPEN','%ACM_OPENW','%ACM_PLAY','%ACM_STOP','%ACN_START',
-            '%ACN_STOP','%ACS_AUTOPLAY','%ACS_CENTER','%ACS_TIMER','%ACS_TRANSPARENT','%APP_COUNTER_FUNLOOKUP','%APP_COUNTER_KEYLOOKUP','%APP_COUNTER_LOOKUP',
-            '%APP_COUNTER_TESTALPHA','%APP_COUNTER_UDTLOOKUP','%APP_COUNTER_VARLOOKUP','%APP_TIMER_EXECTOTAL','%APP_TIMER_INIT','%APP_TIMER_LOAD','%APP_TIMER_PREPROCESSOR','%AW_ACTIVATE',
-            '%AW_BLEND','%AW_CENTER','%AW_HIDE','%AW_HOR_NEGATIVE','%AW_HOR_POSITIVE','%AW_SLIDE','%AW_VER_NEGATIVE','%AW_VER_POSITIVE',
-            '%BCM_FIRST','%BLACK','%BLUE','%BM_GETCHECK','%BM_SETCHECK','%BST_CHECKED','%BST_UNCHECKED','%BS_AUTOCHECKBOX',
-            '%BS_BOTTOM','%BS_CENTER','%BS_DEFAULT','%BS_DEFPUSHBUTTON','%BS_FLAT','%BS_LEFT','%BS_LEFTTEXT','%BS_MULTILINE',
-            '%BS_NOTIFY','%BS_OWNERDRAW','%BS_PUSHLIKE','%BS_RIGHT','%BS_TOP','%BS_VCENTER','%BUNDLE_BUILDER_CANCELLED','%CBM_FIRST',
-            '%CBN_CLOSEUP','%CBN_DBLCLK','%CBN_DROPDOWN','%CBN_EDITCHANGE','%CBN_EDITUPDATE','%CBN_ERRSPACE','%CBN_KILLFOCUS','%CBN_SELCANCEL',
-            '%CBN_SELCHANGE','%CBN_SELENDCANCEL','%CBN_SELENDOK','%CBN_SETFOCUS','%CBS_AUTOHSCROLL','%CBS_DISABLENOSCROLL','%CBS_DROPDOWN','%CBS_DROPDOWNLIST',
-            '%CBS_HASSTRINGS','%CBS_LOWERCASE','%CBS_NOINTEGRALHEIGHT','%CBS_SIMPLE','%CBS_SORT','%CBS_UPPERCASE','%CB_SELECTSTRING','%CCM_FIRST',
-            '%CC_ANYCOLOR','%CC_ENABLEHOOK','%CC_ENABLETEMPLATE','%CC_ENABLETEMPLATEHANDLE','%CC_FULLOPEN','%CC_PREVENTFULLOPEN','%CC_RGBINIT','%CC_SHOWHELP',
-            '%CC_SOLIDCOLOR','%CFE_BOLD','%CFE_ITALIC','%CFE_LINK','%CFE_PROTECTED','%CFE_STRIKEOUT','%CFE_UNDERLINE','%CFM_ANIMATION',
-            '%CFM_BACKCOLOR','%CFM_BOLD','%CFM_CHARSET','%CFM_COLOR','%CFM_FACE','%CFM_ITALIC','%CFM_KERNING','%CFM_LCID',
-            '%CFM_LINK','%CFM_OFFSET','%CFM_PROTECTED','%CFM_REVAUTHOR','%CFM_SIZE','%CFM_SPACING','%CFM_STRIKEOUT','%CFM_STYLE',
-            '%CFM_UNDERLINE','%CFM_UNDERLINETYPE','%CFM_WEIGHT','%CGI_ACCEPT_FILE_UPLOAD','%CGI_AUTO_ADD_SPECIAL_CHARS_PREFIX','%CGI_AUTO_CREATE_VARS','%CGI_BUFFERIZE_OUTPUT','%CGI_DOUBLE_QUOTE',
-            '%CGI_FILE_UPLOAD_BASEPATH','%CGI_FORCE_SESSION_VALIDATION','%CGI_MAX_BYTE_FROM_STD_IN','%CGI_REQUEST_METHOD_GET','%CGI_REQUEST_METHOD_POST','%CGI_SESSION_FILE_BASEPATH','%CGI_SINGLE_QUOTE','%CGI_SPECIAL_CHARS_PREFIX',
-            '%CGI_TEMPORARY_UPLOAD_PATH','%CGI_UPLOAD_CAN_OVERWRITE','%CGI_WRITE_LOG_FILE','%CGI_WRITE_VARS_INTO_LOG_FILE','%CONOLE_ATTACH_PARENT_PROCESS','%CONSOLE_BACKGROUND_BLUE','%CONSOLE_BACKGROUND_GREEN','%CONSOLE_BACKGROUND_INTENSITY',
-            '%CONSOLE_BACKGROUND_RED','%CONSOLE_BOX_FLAG_3DOFF','%CONSOLE_BOX_FLAG_3DON','%CONSOLE_BOX_FLAG_SHADOW','%CONSOLE_COMMON_LVB_GRID_HORIZONTAL','%CONSOLE_COMMON_LVB_GRID_LVERTICAL','%CONSOLE_COMMON_LVB_GRID_RVERTICAL','%CONSOLE_COMMON_LVB_LEADING_BYTE',
-            '%CONSOLE_COMMON_LVB_REVERSE_VIDEO','%CONSOLE_COMMON_LVB_TRAILING_BYTE','%CONSOLE_COMMON_LVB_UNDERSCORE','%CONSOLE_CTRL_BREAK_EVENT','%CONSOLE_CTRL_C_EVENT','%CONSOLE_DOUBLE_CLICK','%CONSOLE_ENABLE_AUTO_POSITION','%CONSOLE_ENABLE_ECHO_INPUT',
-            '%CONSOLE_ENABLE_EXTENDED_FLAGS','%CONSOLE_ENABLE_INSERT_MODE','%CONSOLE_ENABLE_LINE_INPUT','%CONSOLE_ENABLE_MOUSE_INPUT','%CONSOLE_ENABLE_PROCESSED_INPUT','%CONSOLE_ENABLE_PROCESSED_OUTPUT','%CONSOLE_ENABLE_QUICK_EDIT_MODE','%CONSOLE_ENABLE_WINDOW_INPUT',
-            '%CONSOLE_ENABLE_WRAP_AT_EOL_OUTPUT','%CONSOLE_FOREGROUND_BLUE','%CONSOLE_FOREGROUND_GREEN','%CONSOLE_FOREGROUND_INTENSITY','%CONSOLE_FOREGROUND_RED','%CONSOLE_LBUTTON','%CONSOLE_LINE_HORIZONTAL','%CONSOLE_LINE_VERTICAL',
-            '%CONSOLE_MBUTTON','%CONSOLE_MOUSE_MOVED','%CONSOLE_MOUSE_WHEELED','%CONSOLE_RBUTTON','%CONSOLE_SCROLLBUF_DOWN','%CONSOLE_SCROLLBUF_UP','%CONSOLE_SCROLLWND_ABSOLUTE','%CONSOLE_SCROLLWND_RELATIVE',
-            '%CONSOLE_STD_ERROR_HANDLE','%CONSOLE_STD_INPUT_HANDLE','%CONSOLE_STD_OUTPUT_HANDLE','%CONSOLE_SW_FORCEMINIMIZE','%CONSOLE_SW_HIDE','%CONSOLE_SW_MAXIMIZE','%CONSOLE_SW_MINIMIZE','%CONSOLE_SW_RESTORE',
-            '%CONSOLE_SW_SHOW','%CONSOLE_SW_SHOWDEFAULT','%CONSOLE_SW_SHOWMAXIMIZED','%CONSOLE_SW_SHOWMINIMIZED','%CONSOLE_SW_SHOWMINNOACTIVE','%CONSOLE_SW_SHOWNA','%CONSOLE_SW_SHOWNOACTIVATE','%CONSOLE_SW_SHOWNORMAL',
-            '%CONSOLE_UNAVAILABLE','%CRYPTO_CALG_DES','%CRYPTO_CALG_RC2','%CRYPTO_CALG_RC4','%CRYPTO_PROV_DH_SCHANNEL','%CRYPTO_PROV_DSS','%CRYPTO_PROV_DSS_DH','%CRYPTO_PROV_FORTEZZA',
-            '%CRYPTO_PROV_MS_EXCHANGE','%CRYPTO_PROV_RSA_FULL','%CRYPTO_PROV_RSA_SCHANNEL','%CRYPTO_PROV_RSA_SIG','%CRYPTO_PROV_SSL','%CSIDL_ADMINTOOLS','%CSIDL_ALTSTARTUP','%CSIDL_APPDATA',
-            '%CSIDL_BITBUCKET','%CSIDL_CDBURN_AREA','%CSIDL_COMMON_ADMINTOOLS','%CSIDL_COMMON_ALTSTARTUP','%CSIDL_COMMON_APPDATA','%CSIDL_COMMON_DESKTOPDIRECTORY','%CSIDL_COMMON_DOCUMENTS','%CSIDL_COMMON_FAVORITES',
-            '%CSIDL_COMMON_MUSIC','%CSIDL_COMMON_PICTURES','%CSIDL_COMMON_PROGRAMS','%CSIDL_COMMON_STARTMENU','%CSIDL_COMMON_STARTUP','%CSIDL_COMMON_TEMPLATES','%CSIDL_COMMON_VIDEO','%CSIDL_CONTROLS',
-            '%CSIDL_COOKIES','%CSIDL_DESKTOP','%CSIDL_DESKTOPDIRECTORY','%CSIDL_DRIVES','%CSIDL_FAVORITES','%CSIDL_FLAG_CREATE','%CSIDL_FONTS','%CSIDL_HISTORY',
-            '%CSIDL_INTERNET','%CSIDL_INTERNET_CACHE','%CSIDL_LOCAL_APPDATA','%CSIDL_MYDOCUMENTS','%CSIDL_MYMUSIC','%CSIDL_MYPICTURES','%CSIDL_MYVIDEO','%CSIDL_NETHOOD',
-            '%CSIDL_NETWORK','%CSIDL_PERSONAL','%CSIDL_PRINTERS','%CSIDL_PRINTHOOD','%CSIDL_PROFILE','%CSIDL_PROGRAMS','%CSIDL_PROGRAM_FILES','%CSIDL_PROGRAM_FILES_COMMON',
-            '%CSIDL_RECENT','%CSIDL_SENDTO','%CSIDL_STARTMENU','%CSIDL_STARTUP','%CSIDL_SYSTEM','%CSIDL_TEMPLATES','%CSIDL_WINDOWS','%CW_USEDEFAULT',
-            '%CYAN','%DATE_TIME_FILE_CREATION','%DATE_TIME_LAST_FILE_ACCESS','%DATE_TIME_LAST_FILE_WRITE','%DICTIONARY_MEMINFO_DATA','%DICTIONARY_MEMINFO_KEYS','%DICTIONARY_MEMINFO_TOTAL','%DICTIONARY_SORTDESCENDING',
-            '%DICTIONARY_SORTKEYS','%DSCAPS_CERTIFIED','%DSCAPS_CONTINUOUSRATE','%DSCAPS_EMULDRIVER','%DSCAPS_SECONDARY16BIT','%DSCAPS_SECONDARY8BIT','%DSCAPS_SECONDARYMONO','%DSCAPS_SECONDARYSTEREO',
-            '%DSCCAPS_CERTIFIED','%DSCCAPS_EMULDRIVER','%DS_3DLOOK','%DS_ABSALIGN','%DS_CENTER','%DS_CENTERMOUSE','%DS_CONTEXTHELP','%DS_CONTROL',
-            '%DS_MODALFRAME','%DS_NOFAILCREATE','%DS_SETFONT','%DS_SETFOREGROUND','%DS_SYSMODAL','%DTM_FIRST','%DTM_GETMCCOLOR','%DTM_GETMCFONT',
-            '%DTM_GETMONTHCAL','%DTM_GETRANGE','%DTM_GETSYSTEMTIME','%DTM_SETFORMAT','%DTM_SETFORMATW','%DTM_SETMCCOLOR','%DTM_SETMCFONT','%DTM_SETRANGE',
-            '%DTM_SETSYSTEMTIME','%DTN_CLOSEUP','%DTN_DATETIMECHANGE','%DTN_DROPDOWN','%DTN_FORMAT','%DTN_FORMATQUERY','%DTN_FORMATQUERYW','%DTN_FORMATW',
-            '%DTN_USERSTRING','%DTN_USERSTRINGW','%DTN_WMKEYDOWN','%DTN_WMKEYDOWNW','%DTS_APPCANPARSE','%DTS_LONGDATEFORMAT','%DTS_RIGHTALIGN','%DTS_SHORTDATECENTURYFORMAT',
-            '%DTS_SHORTDATEFORMAT','%DTS_SHOWNONE','%DTS_TIMEFORMAT','%DTS_UPDOWN','%DT_DATE_CENTURY','%DT_DATE_OK','%DT_DAY_IN_YEAR','%DT_DIFF_IN_DAYS',
-            '%DT_DIFF_IN_HOURS','%DT_DIFF_IN_MINUTES','%DT_DIFF_IN_SECONDS','%DT_HOURS_IN_DAY','%DT_MINUTES_IN_HOUR','%DT_SECONDS_IN_DAY','%DT_SECONDS_IN_HOUR','%DT_SECONDS_IN_MINUTE',
-            '%DT_SECONDS_IN_YEAR','%DT_USE_LONG_FORM','%DT_USE_SHORT_FORM','%DT_WRONG_DATE','%DT_WRONG_DAY','%DT_WRONG_MONTH','%ECM_FIRST','%ECOOP_AND',
-            '%ECOOP_OR','%ECOOP_SET','%ECOOP_XOR','%ECO_AUTOHSCROLL','%ECO_AUTOVSCROLL','%ECO_AUTOWORDSELECTION','%ECO_NOHIDESEL','%ECO_READONLY',
-            '%ECO_SELECTIONBAR','%ECO_WANTRETURN','%EM_AUTOURLDETECT','%EM_CANPASTE','%EM_CANREDO','%EM_CANUNDO','%EM_CHARFROMPOS','%EM_DISPLAYBAND',
-            '%EM_EMPTYUNDOBUFFER','%EM_EXGETSEL','%EM_EXLIMITTEXT','%EM_EXLINEFROMCHAR','%EM_EXSETSEL','%EM_FINDTEXT','%EM_FINDTEXTEX','%EM_FINDWORDBREAK',
-            '%EM_FMTLINES','%EM_FORMATRANGE','%EM_GETAUTOURLDETECT','%EM_GETCHARFORMAT','%EM_GETEDITSTYLE','%EM_GETEVENTMASK','%EM_GETFIRSTVISIBLELINE','%EM_GETHANDLE',
-            '%EM_GETIMESTATUS','%EM_GETLIMITTEXT','%EM_GETLINE','%EM_GETLINECOUNT','%EM_GETMARGINS','%EM_GETMODIFY','%EM_GETOLEINTERFACE','%EM_GETOPTIONS',
-            '%EM_GETPARAFORMAT','%EM_GETPASSWORDCHAR','%EM_GETRECT','%EM_GETREDONAME','%EM_GETSCROLLPOS','%EM_GETSEL','%EM_GETSELTEXT','%EM_GETTEXTMODE',
-            '%EM_GETTEXTRANGE','%EM_GETTHUMB','%EM_GETUNDONAME','%EM_GETWORDBREAKPROC','%EM_GETWORDBREAKPROCEX','%EM_HIDESELECTION','%EM_LIMITTEXT','%EM_LINEFROMCHAR',
-            '%EM_LINEINDEX','%EM_LINELENGTH','%EM_LINESCROLL','%EM_PASTESPECIAL','%EM_POSFROMCHAR','%EM_REDO','%EM_REPLACESEL','%EM_REQUESTRESIZE',
-            '%EM_SCROLL','%EM_SCROLLCARET','%EM_SELECTIONTYPE','%EM_SETBKGNDCOLOR','%EM_SETCHARFORMAT','%EM_SETEDITSTYLE','%EM_SETEVENTMASK','%EM_SETHANDLE',
-            '%EM_SETIMESTATUS','%EM_SETLIMITTEXT','%EM_SETMARGINS','%EM_SETMODIFY','%EM_SETOLECALLBACK','%EM_SETOPTIONS','%EM_SETPARAFORMAT','%EM_SETPASSWORDCHAR',
-            '%EM_SETREADONLY','%EM_SETRECT','%EM_SETRECTNP','%EM_SETSCROLLPOS','%EM_SETSEL','%EM_SETTABSTOPS','%EM_SETTARGETDEVICE','%EM_SETTEXTMODE',
-            '%EM_SETUNDOLIMIT','%EM_SETWORDBREAKPROC','%EM_SETWORDBREAKPROCEX','%EM_SETWORDWRAPMODE','%EM_SETZOOM','%EM_STOPGROUPTYPING','%EM_STREAMIN','%EM_STREAMOUT',
-            '%EM_UNDO','%ENM_CHANGE','%ENM_CORRECTTEXT','%ENM_DRAGDROPDONE','%ENM_DROPFILES','%ENM_KEYEVENTS','%ENM_MOUSEEVENTS','%ENM_NONE',
-            '%ENM_PARAGRAPHEXPANDED','%ENM_PROTECTED','%ENM_REQUESTRESIZE','%ENM_SCROLL','%ENM_SCROLLEVENTS','%ENM_SELCHANGE','%ENM_UPDATE','%EN_CHANGE',
-            '%EN_MSGFILTER','%EN_SELCHANGE','%EN_UPDATE','%ES_AUTOHSCROLL','%ES_AUTOVSCROLL','%ES_CENTER','%ES_DISABLENOSCROLL','%ES_EX_NOCALLOLEINIT',
-            '%ES_LEFT','%ES_LOWERCASE','%ES_MULTILINE','%ES_NOHIDESEL','%ES_NOOLEDRAGDROP','%ES_NUMBER','%ES_OEMCONVERT','%ES_PASSWORD',
-            '%ES_READONLY','%ES_RIGHT','%ES_SAVESEL','%ES_SELECTIONBAR','%ES_SUNKEN','%ES_UPPERCASE','%ES_WANTRETURN','%EVAL_EXEC_STRING',
-            '%FALSE','%FILE_ADDPATH','%FILE_ARCHIVE','%FILE_BUILDVERSION','%FILE_HIDDEN','%FILE_MAJORVERSION','%FILE_MINORVERSION','%FILE_NORMAL',
-            '%FILE_READONLY','%FILE_REVISIONVERSION','%FILE_SUBDIR','%FILE_SYSTEM','%FILE_VLABEL','%FTP_GET_CONNECT_STATUS','%FTP_GET_FILE_BYTES_RCVD','%FTP_GET_FILE_BYTES_SENT',
-            '%FTP_GET_LAST_RESPONSE','%FTP_GET_LOCAL_IP','%FTP_GET_SERVER_IP','%FTP_GET_TOTAL_BYTES_RCVD','%FTP_GET_TOTAL_BYTES_SENT','%FTP_LIST_FULLLIST','%FTP_LIST_FULLLISTDIR','%FTP_LIST_FULLLISTFILE',
-            '%FTP_SET_ASYNC','%FTP_SET_CONNECT_WAIT','%FTP_SET_MAX_LISTEN_WAIT','%FTP_SET_MAX_RESPONSE_WAIT','%FTP_SET_PASSIVE','%FTP_SET_SYNC','%FW_BLACK','%FW_BOLD',
-            '%FW_DEMIBOLD','%FW_DONTCARE','%FW_EXTRABOLD','%FW_EXTRALIGHT','%FW_HEAVY','%FW_LIGHT','%FW_MEDIUM','%FW_NORMAL',
-            '%FW_REGULAR','%FW_SEMIBOLD','%FW_THIN','%FW_ULTRABOLD','%FW_ULTRALIGHT','%GDTR_MAX','%GDTR_MIN','%GLU_AUTO_LOAD_MATRIX',
-            '%GLU_BEGIN','%GLU_CCW','%GLU_CULLING','%GLU_CW','%GLU_DISPLAY_MODE','%GLU_DOMAIN_DISTANCE','%GLU_EDGE_FLAG','%GLU_END',
-            '%GLU_ERROR','%GLU_EXTENSIONS','%GLU_EXTERIOR','%GLU_FALSE','%GLU_FILL','%GLU_FLAT','%GLU_INCOMPATIBLE_GL_VERSION','%GLU_INSIDE',
-            '%GLU_INTERIOR','%GLU_INVALID_ENUM','%GLU_INVALID_VALUE','%GLU_LINE','%GLU_MAP1_TRIM_2','%GLU_MAP1_TRIM_3','%GLU_NONE','%GLU_NURBS_ERROR1',
-            '%GLU_NURBS_ERROR10','%GLU_NURBS_ERROR11','%GLU_NURBS_ERROR12','%GLU_NURBS_ERROR13','%GLU_NURBS_ERROR14','%GLU_NURBS_ERROR15','%GLU_NURBS_ERROR16','%GLU_NURBS_ERROR17',
-            '%GLU_NURBS_ERROR18','%GLU_NURBS_ERROR19','%GLU_NURBS_ERROR2','%GLU_NURBS_ERROR20','%GLU_NURBS_ERROR21','%GLU_NURBS_ERROR22','%GLU_NURBS_ERROR23','%GLU_NURBS_ERROR24',
-            '%GLU_NURBS_ERROR25','%GLU_NURBS_ERROR26','%GLU_NURBS_ERROR27','%GLU_NURBS_ERROR28','%GLU_NURBS_ERROR29','%GLU_NURBS_ERROR3','%GLU_NURBS_ERROR30','%GLU_NURBS_ERROR31',
-            '%GLU_NURBS_ERROR32','%GLU_NURBS_ERROR33','%GLU_NURBS_ERROR34','%GLU_NURBS_ERROR35','%GLU_NURBS_ERROR36','%GLU_NURBS_ERROR37','%GLU_NURBS_ERROR4','%GLU_NURBS_ERROR5',
-            '%GLU_NURBS_ERROR6','%GLU_NURBS_ERROR7','%GLU_NURBS_ERROR8','%GLU_NURBS_ERROR9','%GLU_OUTLINE_PATCH','%GLU_OUTLINE_POLYGON','%GLU_OUTSIDE','%GLU_OUT_OF_MEMORY',
-            '%GLU_PARAMETRIC_ERROR','%GLU_PARAMETRIC_TOLERANCE','%GLU_PATH_LENGTH','%GLU_POINT','%GLU_SAMPLING_METHOD','%GLU_SAMPLING_TOLERANCE','%GLU_SILHOUETTE','%GLU_SMOOTH',
-            '%GLU_TESS_BEGIN','%GLU_TESS_BEGIN_DATA','%GLU_TESS_BOUNDARY_ONLY','%GLU_TESS_COMBINE','%GLU_TESS_COMBINE_DATA','%GLU_TESS_COORD_TOO_LARGE','%GLU_TESS_EDGE_FLAG','%GLU_TESS_EDGE_FLAG_DATA',
-            '%GLU_TESS_END','%GLU_TESS_END_DATA','%GLU_TESS_ERROR','%GLU_TESS_ERROR1','%GLU_TESS_ERROR2','%GLU_TESS_ERROR3','%GLU_TESS_ERROR4','%GLU_TESS_ERROR5',
-            '%GLU_TESS_ERROR6','%GLU_TESS_ERROR7','%GLU_TESS_ERROR8','%GLU_TESS_ERROR_DATA','%GLU_TESS_MISSING_BEGIN_CONTOUR','%GLU_TESS_MISSING_BEGIN_POLYGON','%GLU_TESS_MISSING_END_CONTOUR','%GLU_TESS_MISSING_END_POLYGON',
-            '%GLU_TESS_NEED_COMBINE_CALLBACK','%GLU_TESS_TOLERANCE','%GLU_TESS_VERTEX','%GLU_TESS_VERTEX_DATA','%GLU_TESS_WINDING_ABS_GEQ_TWO','%GLU_TESS_WINDING_NEGATIVE','%GLU_TESS_WINDING_NONZERO','%GLU_TESS_WINDING_ODD',
-            '%GLU_TESS_WINDING_POSITIVE','%GLU_TESS_WINDING_RULE','%GLU_TRUE','%GLU_UNKNOWN','%GLU_U_STEP','%GLU_VERSION','%GLU_VERSION_1_1','%GLU_VERSION_1_2',
-            '%GLU_VERTEX','%GLU_V_STEP','%GL_2D','%GL_2_BYTES','%GL_3D','%GL_3D_COLOR','%GL_3D_COLOR_TEXTURE','%GL_3_BYTES',
-            '%GL_4D_COLOR_TEXTURE','%GL_4_BYTES','%GL_ABGR_EXT','%GL_ACCUM','%GL_ACCUM_ALPHA_BITS','%GL_ACCUM_BLUE_BITS','%GL_ACCUM_BUFFER_BIT','%GL_ACCUM_CLEAR_VALUE',
-            '%GL_ACCUM_GREEN_BITS','%GL_ACCUM_RED_BITS','%GL_ADD','%GL_ALL_ATTRIB_BITS','%GL_ALPHA','%GL_ALPHA12','%GL_ALPHA16','%GL_ALPHA4',
-            '%GL_ALPHA8','%GL_ALPHA_BIAS','%GL_ALPHA_BITS','%GL_ALPHA_SCALE','%GL_ALPHA_TEST','%GL_ALPHA_TEST_FUNC','%GL_ALPHA_TEST_REF','%GL_ALWAYS',
-            '%GL_AMBIENT','%GL_AMBIENT_AND_DIFFUSE','%GL_AND','%GL_AND_INVERTED','%GL_AND_REVERSE','%GL_ARRAY_ELEMENT_LOCK_COUNT_EXT','%GL_ARRAY_ELEMENT_LOCK_FIRST_EXT','%GL_ATTRIB_STACK_DEPTH',
-            '%GL_AUTO_NORMAL','%GL_AUX0','%GL_AUX1','%GL_AUX2','%GL_AUX3','%GL_AUX_BUFFERS','%GL_BACK','%GL_BACK_LEFT',
-            '%GL_BACK_RIGHT','%GL_BGRA_EXT','%GL_BGR_EXT','%GL_BITMAP','%GL_BITMAP_TOKEN','%GL_BLEND','%GL_BLEND_COLOR_EXT','%GL_BLEND_DST',
-            '%GL_BLEND_EQUATION_EXT','%GL_BLEND_SRC','%GL_BLUE','%GL_BLUE_BIAS','%GL_BLUE_BITS','%GL_BLUE_SCALE','%GL_BYTE','%GL_C3F_V3F',
-            '%GL_C4F_N3F_V3F','%GL_C4UB_V2F','%GL_C4UB_V3F','%GL_CCW','%GL_CLAMP','%GL_CLEAR','%GL_CLIENT_ALL_ATTRIB_BITS','%GL_CLIENT_ATTRIB_STACK_DEPTH',
-            '%GL_CLIENT_PIXEL_STORE_BIT','%GL_CLIENT_VERTEX_ARRAY_BIT','%GL_CLIP_PLANE0','%GL_CLIP_PLANE1','%GL_CLIP_PLANE2','%GL_CLIP_PLANE3','%GL_CLIP_PLANE4','%GL_CLIP_PLANE5',
-            '%GL_CLIP_VOLUME_CLIPPING_HINT_EXT','%GL_COEFF','%GL_COLOR','%GL_COLOR_ARRAY','%GL_COLOR_ARRAY_COUNT_EXT','%GL_COLOR_ARRAY_EXT','%GL_COLOR_ARRAY_POINTER','%GL_COLOR_ARRAY_POINTER_EXT',
-            '%GL_COLOR_ARRAY_SIZE','%GL_COLOR_ARRAY_SIZE_EXT','%GL_COLOR_ARRAY_STRIDE','%GL_COLOR_ARRAY_STRIDE_EXT','%GL_COLOR_ARRAY_TYPE','%GL_COLOR_ARRAY_TYPE_EXT','%GL_COLOR_BUFFER_BIT','%GL_COLOR_CLEAR_VALUE',
-            '%GL_COLOR_INDEX','%GL_COLOR_INDEX12_EXT','%GL_COLOR_INDEX16_EXT','%GL_COLOR_INDEX1_EXT','%GL_COLOR_INDEX2_EXT','%GL_COLOR_INDEX4_EXT','%GL_COLOR_INDEX8_EXT','%GL_COLOR_INDEXES',
-            '%GL_COLOR_LOGIC_OP','%GL_COLOR_MATERIAL','%GL_COLOR_MATERIAL_FACE','%GL_COLOR_MATERIAL_PARAMETER','%GL_COLOR_SUM_EXT','%GL_COLOR_TABLE_ALPHA_SIZE_EXT','%GL_COLOR_TABLE_BIAS_EXT','%GL_COLOR_TABLE_BLUE_SIZE_EXT',
-            '%GL_COLOR_TABLE_EXT','%GL_COLOR_TABLE_FORMAT_EXT','%GL_COLOR_TABLE_GREEN_SIZE_EXT','%GL_COLOR_TABLE_INTENSITY_SIZE_EXT','%GL_COLOR_TABLE_LUMINANCE_SIZE_EXT','%GL_COLOR_TABLE_RED_SIZE_EXT','%GL_COLOR_TABLE_SCALE_EXT','%GL_COLOR_TABLE_WIDTH_EXT',
-            '%GL_COLOR_WRITEMASK','%GL_COMPILE','%GL_COMPILE_AND_EXECUTE','%GL_CONSTANT_ALPHA_EXT','%GL_CONSTANT_ATTENUATION','%GL_CONSTANT_COLOR_EXT','%GL_CONVOLUTION_1D_EXT','%GL_CONVOLUTION_2D_EXT',
-            '%GL_CONVOLUTION_BORDER_MODE_EXT','%GL_CONVOLUTION_FILTER_BIAS_EXT','%GL_CONVOLUTION_FILTER_SCALE_EXT','%GL_CONVOLUTION_FORMAT_EXT','%GL_CONVOLUTION_HEIGHT_EXT','%GL_CONVOLUTION_WIDTH_EXT','%GL_COPY','%GL_COPY_INVERTED',
-            '%GL_COPY_PIXEL_TOKEN','%GL_CULL_FACE','%GL_CULL_FACE_MODE','%GL_CULL_VERTEX_EXT','%GL_CULL_VERTEX_EYE_POSITION_EXT','%GL_CULL_VERTEX_OBJECT_POSITION_EXT','%GL_CURRENT_BIT','%GL_CURRENT_COLOR',
-            '%GL_CURRENT_INDEX','%GL_CURRENT_NORMAL','%GL_CURRENT_RASTER_COLOR','%GL_CURRENT_RASTER_DISTANCE','%GL_CURRENT_RASTER_INDEX','%GL_CURRENT_RASTER_POSITION','%GL_CURRENT_RASTER_POSITION_VALID','%GL_CURRENT_RASTER_TEXTURE_COORDS',
-            '%GL_CURRENT_SECONDARY_COLOR_EXT','%GL_CURRENT_TEXTURE_COORDS','%GL_CW','%GL_DECAL','%GL_DECR','%GL_DEPTH','%GL_DEPTH_BIAS','%GL_DEPTH_BITS',
-            '%GL_DEPTH_BUFFER_BIT','%GL_DEPTH_CLEAR_VALUE','%GL_DEPTH_COMPONENT','%GL_DEPTH_FUNC','%GL_DEPTH_RANGE','%GL_DEPTH_SCALE','%GL_DEPTH_TEST','%GL_DEPTH_WRITEMASK',
-            '%GL_DIFFUSE','%GL_DITHER','%GL_DOMAIN','%GL_DONT_CARE','%GL_DOUBLE','%GL_DOUBLEBUFFER','%GL_DOUBLE_EXT','%GL_DRAW_BUFFER',
-            '%GL_DRAW_PIXEL_TOKEN','%GL_DST_ALPHA','%GL_DST_COLOR','%GL_EDGE_FLAG','%GL_EDGE_FLAG_ARRAY','%GL_EDGE_FLAG_ARRAY_COUNT_EXT','%GL_EDGE_FLAG_ARRAY_EXT','%GL_EDGE_FLAG_ARRAY_POINTER',
-            '%GL_EDGE_FLAG_ARRAY_POINTER_EXT','%GL_EDGE_FLAG_ARRAY_STRIDE','%GL_EDGE_FLAG_ARRAY_STRIDE_EXT','%GL_EMISSION','%GL_ENABLE_BIT','%GL_EQUAL','%GL_EQUIV','%GL_EVAL_BIT',
-            '%GL_EXP','%GL_EXP2','%GL_EXTENSIONS','%GL_EXT_ABGR','%GL_EXT_BGRA','%GL_EXT_BLEND_COLOR','%GL_EXT_BLEND_MINMAX','%GL_EXT_BLEND_SUBTRACT',
-            '%GL_EXT_CLIP_VOLUME_HINT','%GL_EXT_COLOR_TABLE','%GL_EXT_COMPILED_VERTEX_ARRAY','%GL_EXT_CONVOLUTION','%GL_EXT_CULL_VERTEX','%GL_EXT_HISTOGRAM','%GL_EXT_PACKED_PIXELS','%GL_EXT_PALETTED_TEXTURE',
-            '%GL_EXT_POLYGON_OFFSET','%GL_EXT_SECONDARY_COLOR','%GL_EXT_SEPARATE_SPECULAR_COLOR','%GL_EXT_VERTEX_ARRAY','%GL_EYE_LINEAR','%GL_EYE_PLANE','%GL_FALSE','%GL_FASTEST',
-            '%GL_FEEDBACK','%GL_FEEDBACK_BUFFER_POINTER','%GL_FEEDBACK_BUFFER_SIZE','%GL_FEEDBACK_BUFFER_TYPE','%GL_FILL','%GL_FLAT','%GL_FLOAT','%GL_FOG',
-            '%GL_FOG_BIT','%GL_FOG_COLOR','%GL_FOG_DENSITY','%GL_FOG_END','%GL_FOG_HINT','%GL_FOG_INDEX','%GL_FOG_MODE','%GL_FOG_START',
-            '%GL_FRONT','%GL_FRONT_AND_BACK','%GL_FRONT_FACE','%GL_FRONT_LEFT','%GL_FRONT_RIGHT','%GL_FUNC_ADD_EXT','%GL_FUNC_REVERSE_SUBTRACT_EXT','%GL_FUNC_SUBTRACT_EXT',
-            '%GL_GEQUAL','%GL_GREATER','%GL_GREEN','%GL_GREEN_BIAS','%GL_GREEN_BITS','%GL_GREEN_SCALE','%GL_HINT_BIT','%GL_HISTOGRAM_ALPHA_SIZE_EXT',
-            '%GL_HISTOGRAM_BLUE_SIZE_EXT','%GL_HISTOGRAM_EXT','%GL_HISTOGRAM_FORMAT_EXT','%GL_HISTOGRAM_GREEN_SIZE_EXT','%GL_HISTOGRAM_LUMINANCE_SIZE_EXT','%GL_HISTOGRAM_RED_SIZE_EXT','%GL_HISTOGRAM_SINK_EXT','%GL_HISTOGRAM_WIDTH_EXT',
-            '%GL_INCR','%GL_INDEX_ARRAY','%GL_INDEX_ARRAY_COUNT_EXT','%GL_INDEX_ARRAY_EXT','%GL_INDEX_ARRAY_POINTER','%GL_INDEX_ARRAY_POINTER_EXT','%GL_INDEX_ARRAY_STRIDE','%GL_INDEX_ARRAY_STRIDE_EXT',
-            '%GL_INDEX_ARRAY_TYPE','%GL_INDEX_ARRAY_TYPE_EXT','%GL_INDEX_BITS','%GL_INDEX_CLEAR_VALUE','%GL_INDEX_LOGIC_OP','%GL_INDEX_MODE','%GL_INDEX_OFFSET','%GL_INDEX_SHIFT',
-            '%GL_INDEX_WRITEMASK','%GL_INT','%GL_INTENSITY','%GL_INTENSITY12','%GL_INTENSITY16','%GL_INTENSITY4','%GL_INTENSITY8','%GL_INVALID_ENUM',
-            '%GL_INVALID_OPERATION','%GL_INVALID_VALUE','%GL_INVERT','%GL_KEEP','%GL_LEFT','%GL_LEQUAL','%GL_LESS','%GL_LIGHT0',
-            '%GL_LIGHT1','%GL_LIGHT2','%GL_LIGHT3','%GL_LIGHT4','%GL_LIGHT5','%GL_LIGHT6','%GL_LIGHT7','%GL_LIGHTING',
-            '%GL_LIGHTING_BIT','%GL_LIGHT_MODEL_AMBIENT','%GL_LIGHT_MODEL_COLOR_CONTROL_EXT','%GL_LIGHT_MODEL_LOCAL_VIEWER','%GL_LIGHT_MODEL_TWO_SIDE','%GL_LINE','%GL_LINEAR','%GL_LINEAR_ATTENUATION',
-            '%GL_LINEAR_MIPMAP_LINEAR','%GL_LINEAR_MIPMAP_NEAREST','%GL_LINES','%GL_LINE_BIT','%GL_LINE_LOOP','%GL_LINE_RESET_TOKEN','%GL_LINE_SMOOTH','%GL_LINE_SMOOTH_HINT',
-            '%GL_LINE_STIPPLE','%GL_LINE_STIPPLE_PATTERN','%GL_LINE_STIPPLE_REPEAT','%GL_LINE_STRIP','%GL_LINE_TOKEN','%GL_LINE_WIDTH','%GL_LINE_WIDTH_GRANULARITY','%GL_LINE_WIDTH_RANGE',
-            '%GL_LIST_BASE','%GL_LIST_BIT','%GL_LIST_INDEX','%GL_LIST_MODE','%GL_LOAD','%GL_LOGIC_OP','%GL_LOGIC_OP_MODE','%GL_LUMINANCE',
-            '%GL_LUMINANCE12','%GL_LUMINANCE12_ALPHA12','%GL_LUMINANCE12_ALPHA4','%GL_LUMINANCE16','%GL_LUMINANCE16_ALPHA16','%GL_LUMINANCE4','%GL_LUMINANCE4_ALPHA4','%GL_LUMINANCE6_ALPHA2',
-            '%GL_LUMINANCE8','%GL_LUMINANCE8_ALPHA8','%GL_LUMINANCE_ALPHA','%GL_MAP1_COLOR_4','%GL_MAP1_GRID_DOMAIN','%GL_MAP1_GRID_SEGMENTS','%GL_MAP1_INDEX','%GL_MAP1_NORMAL',
-            '%GL_MAP1_TEXTURE_COORD_1','%GL_MAP1_TEXTURE_COORD_2','%GL_MAP1_TEXTURE_COORD_3','%GL_MAP1_TEXTURE_COORD_4','%GL_MAP1_VERTEX_3','%GL_MAP1_VERTEX_4','%GL_MAP2_COLOR_4','%GL_MAP2_GRID_DOMAIN',
-            '%GL_MAP2_GRID_SEGMENTS','%GL_MAP2_INDEX','%GL_MAP2_NORMAL','%GL_MAP2_TEXTURE_COORD_1','%GL_MAP2_TEXTURE_COORD_2','%GL_MAP2_TEXTURE_COORD_3','%GL_MAP2_TEXTURE_COORD_4','%GL_MAP2_VERTEX_3',
-            '%GL_MAP2_VERTEX_4','%GL_MAP_COLOR','%GL_MAP_STENCIL','%GL_MATRIX_MODE','%GL_MAX_ATTRIB_STACK_DEPTH','%GL_MAX_CLIENT_ATTRIB_STACK_DEPTH','%GL_MAX_CLIP_PLANES','%GL_MAX_CONVOLUTION_HEIGHT_EXT',
-            '%GL_MAX_CONVOLUTION_WIDTH_EXT','%GL_MAX_EVAL_ORDER','%GL_MAX_EXT','%GL_MAX_LIGHTS','%GL_MAX_LIST_NESTING','%GL_MAX_MODELVIEW_STACK_DEPTH','%GL_MAX_NAME_STACK_DEPTH','%GL_MAX_PIXEL_MAP_TABLE',
-            '%GL_MAX_PROJECTION_STACK_DEPTH','%GL_MAX_TEXTURE_SIZE','%GL_MAX_TEXTURE_STACK_DEPTH','%GL_MAX_VIEWPORT_DIMS','%GL_MINMAX_EXT','%GL_MINMAX_FORMAT_EXT','%GL_MINMAX_SINK_EXT','%GL_MIN_EXT',
-            '%GL_MODELVIEW','%GL_MODELVIEW_MATRIX','%GL_MODELVIEW_STACK_DEPTH','%GL_MODULATE','%GL_MULT','%GL_N3F_V3F','%GL_NAME_STACK_DEPTH','%GL_NAND',
-            '%GL_NEAREST','%GL_NEAREST_MIPMAP_LINEAR','%GL_NEAREST_MIPMAP_NEAREST','%GL_NEVER','%GL_NICEST','%GL_NONE','%GL_NOOP','%GL_NOR',
-            '%GL_NORMALIZE','%GL_NORMAL_ARRAY','%GL_NORMAL_ARRAY_COUNT_EXT','%GL_NORMAL_ARRAY_EXT','%GL_NORMAL_ARRAY_POINTER','%GL_NORMAL_ARRAY_POINTER_EXT','%GL_NORMAL_ARRAY_STRIDE','%GL_NORMAL_ARRAY_STRIDE_EXT',
-            '%GL_NORMAL_ARRAY_TYPE','%GL_NORMAL_ARRAY_TYPE_EXT','%GL_NOTEQUAL','%GL_NO_ERROR','%GL_OBJECT_LINEAR','%GL_OBJECT_PLANE','%GL_ONE','%GL_ONE_MINUS_CONSTANT_ALPHA_EXT',
-            '%GL_ONE_MINUS_CONSTANT_COLOR_EXT','%GL_ONE_MINUS_DST_ALPHA','%GL_ONE_MINUS_DST_COLOR','%GL_ONE_MINUS_SRC_ALPHA','%GL_ONE_MINUS_SRC_COLOR','%GL_OR','%GL_ORDER','%GL_OR_INVERTED',
-            '%GL_OR_REVERSE','%GL_OUT_OF_MEMORY','%GL_PACK_ALIGNMENT','%GL_PACK_LSB_FIRST','%GL_PACK_ROW_LENGTH','%GL_PACK_SKIP_PIXELS','%GL_PACK_SKIP_ROWS','%GL_PACK_SWAP_BYTES',
-            '%GL_PASS_THROUGH_TOKEN','%GL_PERSPECTIVE_CORRECTION_HINT','%GL_PIXEL_MAP_A_TO_A','%GL_PIXEL_MAP_A_TO_A_SIZE','%GL_PIXEL_MAP_B_TO_B','%GL_PIXEL_MAP_B_TO_B_SIZE','%GL_PIXEL_MAP_G_TO_G','%GL_PIXEL_MAP_G_TO_G_SIZE',
-            '%GL_PIXEL_MAP_I_TO_A','%GL_PIXEL_MAP_I_TO_A_SIZE','%GL_PIXEL_MAP_I_TO_B','%GL_PIXEL_MAP_I_TO_B_SIZE','%GL_PIXEL_MAP_I_TO_G','%GL_PIXEL_MAP_I_TO_G_SIZE','%GL_PIXEL_MAP_I_TO_I','%GL_PIXEL_MAP_I_TO_I_SIZE',
-            '%GL_PIXEL_MAP_I_TO_R','%GL_PIXEL_MAP_I_TO_R_SIZE','%GL_PIXEL_MAP_R_TO_R','%GL_PIXEL_MAP_R_TO_R_SIZE','%GL_PIXEL_MAP_S_TO_S','%GL_PIXEL_MAP_S_TO_S_SIZE','%GL_PIXEL_MODE_BIT','%GL_POINT',
-            '%GL_POINTS','%GL_POINT_BIT','%GL_POINT_SIZE','%GL_POINT_SIZE_GRANULARITY','%GL_POINT_SIZE_RANGE','%GL_POINT_SMOOTH','%GL_POINT_SMOOTH_HINT','%GL_POINT_TOKEN',
-            '%GL_POLYGON','%GL_POLYGON_BIT','%GL_POLYGON_MODE','%GL_POLYGON_OFFSET_BIAS_EXT','%GL_POLYGON_OFFSET_EXT','%GL_POLYGON_OFFSET_FACTOR','%GL_POLYGON_OFFSET_FACTOR_EXT','%GL_POLYGON_OFFSET_FILL',
-            '%GL_POLYGON_OFFSET_LINE','%GL_POLYGON_OFFSET_POINT','%GL_POLYGON_OFFSET_UNITS','%GL_POLYGON_SMOOTH','%GL_POLYGON_SMOOTH_HINT','%GL_POLYGON_STIPPLE','%GL_POLYGON_STIPPLE_BIT','%GL_POLYGON_TOKEN',
-            '%GL_POSITION','%GL_POST_COLOR_MATRIX_COLOR_TABLE_EXT','%GL_POST_CONVOLUTION_ALPHA_BIAS_EXT','%GL_POST_CONVOLUTION_ALPHA_SCALE_EXT','%GL_POST_CONVOLUTION_BLUE_BIAS_EXT','%GL_POST_CONVOLUTION_BLUE_SCALE_EXT','%GL_POST_CONVOLUTION_COLOR_TABLE_EXT','%GL_POST_CONVOLUTION_GREEN_BIAS_EXT',
-            '%GL_POST_CONVOLUTION_GREEN_SCALE_EXT','%GL_POST_CONVOLUTION_RED_BIAS_EXT','%GL_POST_CONVOLUTION_RED_SCALE_EXT','%GL_PROJECTION','%GL_PROJECTION_MATRIX','%GL_PROJECTION_STACK_DEPTH','%GL_PROXY_COLOR_TABLE_EXT','%GL_PROXY_HISTOGRAM_EXT',
-            '%GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_EXT','%GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_EXT','%GL_PROXY_TEXTURE_1D','%GL_PROXY_TEXTURE_2D','%GL_Q','%GL_QUADRATIC_ATTENUATION','%GL_QUADS','%GL_QUAD_STRIP',
-            '%GL_R','%GL_R3_G3_B2','%GL_READ_BUFFER','%GL_RED','%GL_REDUCE_EXT','%GL_RED_BIAS','%GL_RED_BITS','%GL_RED_SCALE',
-            '%GL_RENDER','%GL_RENDERER','%GL_RENDER_MODE','%GL_REPEAT','%GL_REPLACE','%GL_RETURN','%GL_RGB','%GL_RGB10',
-            '%GL_RGB10_A2','%GL_RGB12','%GL_RGB16','%GL_RGB4','%GL_RGB5','%GL_RGB5_A1','%GL_RGB8','%GL_RGBA',
-            '%GL_RGBA12','%GL_RGBA16','%GL_RGBA2','%GL_RGBA4','%GL_RGBA8','%GL_RGBA_MODE','%GL_RIGHT','%GL_S',
-            '%GL_SCISSOR_BIT','%GL_SCISSOR_BOX','%GL_SCISSOR_TEST','%GL_SECONDARY_COLOR_ARRAY_EXT','%GL_SECONDARY_COLOR_ARRAY_POINTER_EXT','%GL_SECONDARY_COLOR_ARRAY_SIZE_EXT','%GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT','%GL_SECONDARY_COLOR_ARRAY_TYPE_EXT',
-            '%GL_SELECT','%GL_SELECTION_BUFFER_POINTER','%GL_SELECTION_BUFFER_SIZE','%GL_SEPARABLE_2D_EXT','%GL_SEPARATE_SPECULAR_COLOR_EXT','%GL_SET','%GL_SHADE_MODEL','%GL_SHININESS',
-            '%GL_SHORT','%GL_SINGLE_COLOR_EXT','%GL_SMOOTH','%GL_SPECULAR','%GL_SPHERE_MAP','%GL_SPOT_CUTOFF','%GL_SPOT_DIRECTION','%GL_SPOT_EXPONENT',
-            '%GL_SRC_ALPHA','%GL_SRC_ALPHA_SATURATE','%GL_SRC_COLOR','%GL_STACK_OVERFLOW','%GL_STACK_UNDERFLOW','%GL_STENCIL','%GL_STENCIL_BITS','%GL_STENCIL_BUFFER_BIT',
-            '%GL_STENCIL_CLEAR_VALUE','%GL_STENCIL_FAIL','%GL_STENCIL_FUNC','%GL_STENCIL_INDEX','%GL_STENCIL_PASS_DEPTH_FAIL','%GL_STENCIL_PASS_DEPTH_PASS','%GL_STENCIL_REF','%GL_STENCIL_TEST',
-            '%GL_STENCIL_VALUE_MASK','%GL_STENCIL_WRITEMASK','%GL_STEREO','%GL_SUBPIXEL_BITS','%GL_T','%GL_T2F_C3F_V3F','%GL_T2F_C4F_N3F_V3F','%GL_T2F_C4UB_V3F',
-            '%GL_T2F_N3F_V3F','%GL_T2F_V3F','%GL_T4F_C4F_N3F_V4F','%GL_T4F_V4F','%GL_TABLE_TOO_LARGE_EXT','%GL_TEXTURE','%GL_TEXTURE_1D','%GL_TEXTURE_2D',
-            '%GL_TEXTURE_ALPHA_SIZE','%GL_TEXTURE_BINDING_1D','%GL_TEXTURE_BINDING_2D','%GL_TEXTURE_BIT','%GL_TEXTURE_BLUE_SIZE','%GL_TEXTURE_BORDER','%GL_TEXTURE_BORDER_COLOR','%GL_TEXTURE_COMPONENTS',
-            '%GL_TEXTURE_COORD_ARRAY','%GL_TEXTURE_COORD_ARRAY_COUNT_EXT','%GL_TEXTURE_COORD_ARRAY_EXT','%GL_TEXTURE_COORD_ARRAY_POINTER','%GL_TEXTURE_COORD_ARRAY_POINTER_EXT','%GL_TEXTURE_COORD_ARRAY_SIZE','%GL_TEXTURE_COORD_ARRAY_SIZE_EXT','%GL_TEXTURE_COORD_ARRAY_STRIDE',
-            '%GL_TEXTURE_COORD_ARRAY_STRIDE_EXT','%GL_TEXTURE_COORD_ARRAY_TYPE','%GL_TEXTURE_COORD_ARRAY_TYPE_EXT','%GL_TEXTURE_ENV','%GL_TEXTURE_ENV_COLOR','%GL_TEXTURE_ENV_MODE','%GL_TEXTURE_GEN_MODE','%GL_TEXTURE_GEN_Q',
-            '%GL_TEXTURE_GEN_R','%GL_TEXTURE_GEN_S','%GL_TEXTURE_GEN_T','%GL_TEXTURE_GREEN_SIZE','%GL_TEXTURE_HEIGHT','%GL_TEXTURE_INTENSITY_SIZE','%GL_TEXTURE_INTERNAL_FORMAT','%GL_TEXTURE_LUMINANCE_SIZE',
-            '%GL_TEXTURE_MAG_FILTER','%GL_TEXTURE_MATRIX','%GL_TEXTURE_MIN_FILTER','%GL_TEXTURE_PRIORITY','%GL_TEXTURE_RED_SIZE','%GL_TEXTURE_RESIDENT','%GL_TEXTURE_STACK_DEPTH','%GL_TEXTURE_WIDTH',
-            '%GL_TEXTURE_WRAP_S','%GL_TEXTURE_WRAP_T','%GL_TRANSFORM_BIT','%GL_TRIANGLES','%GL_TRIANGLE_FAN','%GL_TRIANGLE_STRIP','%GL_TRUE','%GL_UNPACK_ALIGNMENT',
-            '%GL_UNPACK_LSB_FIRST','%GL_UNPACK_ROW_LENGTH','%GL_UNPACK_SKIP_PIXELS','%GL_UNPACK_SKIP_ROWS','%GL_UNPACK_SWAP_BYTES','%GL_UNSIGNED_BYTE','%GL_UNSIGNED_BYTE_3_3_2_EXT','%GL_UNSIGNED_INT',
-            '%GL_UNSIGNED_INT_10_10_10_2_EXT','%GL_UNSIGNED_INT_8_8_8_8_EXT','%GL_UNSIGNED_SHORT','%GL_UNSIGNED_SHORT_4_4_4_4_EXT','%GL_UNSIGNED_SHORT_5_5_5_1_EXT','%GL_V2F','%GL_V3F','%GL_VENDOR',
-            '%GL_VERSION','%GL_VERSION_1_1','%GL_VERTEX_ARRAY','%GL_VERTEX_ARRAY_COUNT_EXT','%GL_VERTEX_ARRAY_EXT','%GL_VERTEX_ARRAY_POINTER','%GL_VERTEX_ARRAY_POINTER_EXT','%GL_VERTEX_ARRAY_SIZE',
-            '%GL_VERTEX_ARRAY_SIZE_EXT','%GL_VERTEX_ARRAY_STRIDE','%GL_VERTEX_ARRAY_STRIDE_EXT','%GL_VERTEX_ARRAY_TYPE','%GL_VERTEX_ARRAY_TYPE_EXT','%GL_VIEWPORT','%GL_VIEWPORT_BIT','%GL_WIN_SWAP_HINT',
-            '%GL_XOR','%GL_ZERO','%GL_ZOOM_X','%GL_ZOOM_Y','%GRAY','%GREEN','%GWLP_HINSTANCE','%GWLP_HWNDPARENT',
-            '%GWLP_ID','%GWLP_USERDATA','%GWLP_WNDPROC','%GWL_EXSTYLE','%GWL_HINSTANCE','%GWL_HWNDPARENT','%GWL_ID','%GWL_STYLE',
-            '%GWL_USERDATA','%GWL_WNDPROC','%HDM_FIRST','%HTCAPTION','%HWND_BOTTOM','%HWND_DESKTOP','%HWND_MESSAGE','%HWND_NOTOPMOST',
-            '%HWND_TOP','%HWND_TOPMOST','%ICRYPTO_XOR_DECREASE','%ICRYPTO_XOR_INCREASE','%ICRYPTO_XOR_NORMAL','%IDABORT','%IDCANCEL','%IDCONTINUE',
-            '%IDIGNORE','%IDNO','%IDOK','%IDRETRY','%IDTIMEOUT','%IDTRYAGAIN','%IDYES','%INTERNET_CONNECTION_CONFIGURED',
-            '%INTERNET_CONNECTION_LAN','%INTERNET_CONNECTION_MODEM','%INTERNET_CONNECTION_MODEM_BUSY','%INTERNET_CONNECTION_OFFLINE','%INTERNET_CONNECTION_PROXY','%INTERNET_RAS_INSTALLED','%LBN_DBLCLK','%LBN_KILLFOCUS',
-            '%LBN_SELCANCEL','%LBN_SELCHANGE','%LBN_SETFOCUS','%LBS_DISABLENOSCROLL','%LBS_EXTENDEDSEL','%LBS_MULTICOLUMN','%LBS_MULTIPLESEL','%LBS_NOINTEGRALHEIGHT',
-            '%LBS_NOSEL','%LBS_NOTIFY','%LBS_SORT','%LBS_STANDARD','%LBS_USETABSTOPS','%LB_ADDFILE','%LB_ADDSTRING','%LB_DELETESTRING',
-            '%LB_DIR','%LB_FINDSTRING','%LB_FINDSTRINGEXACT','%LB_GETANCHORINDEX','%LB_GETCARETINDEX','%LB_GETCOUNT','%LB_GETCURSEL','%LB_GETHORIZONTALEXTENT',
-            '%LB_GETITEMDATA','%LB_GETITEMHEIGHT','%LB_GETITEMRECT','%LB_GETLISTBOXINFO','%LB_GETLOCALE','%LB_GETSEL','%LB_GETSELCOUNT','%LB_GETSELITEMS',
-            '%LB_GETTEXT','%LB_GETTEXTLEN','%LB_GETTOPINDEX','%LB_INITSTORAGE','%LB_INSERTSTRING','%LB_ITEMFROMPOINT','%LB_MULTIPLEADDSTRING','%LB_RESETCONTENT',
-            '%LB_SELECTSTRING','%LB_SELITEMRANGE','%LB_SELITEMRANGEEX','%LB_SETANCHORINDEX','%LB_SETCARETINDEX','%LB_SETCOLUMNWIDTH','%LB_SETCOUNT','%LB_SETCURSEL',
-            '%LB_SETHORIZONTALEXTENT','%LB_SETITEMDATA','%LB_SETITEMHEIGHT','%LB_SETLOCALE','%LB_SETSEL','%LB_SETTABSTOPS','%LB_SETTOPINDEX','%LF_FACESIZE',
-            '%LTGRAY','%LVM_FIRST','%LWA_ALPHA','%LWA_COLORKEY','%MAGENTA','%MAXBYTE','%MAXCHAR','%MAXDWORD',
-            '%MAXSHORT','%MAXWORD','%MAX_PATH','%MB_ABORTRETRYIGNORE','%MB_APPLMODAL','%MB_CANCELTRYCONTINUE','%MB_DEFBUTTON1','%MB_DEFBUTTON2',
-            '%MB_DEFBUTTON3','%MB_HELP','%MB_ICONASTERISK','%MB_ICONERROR','%MB_ICONEXCLAMATION','%MB_ICONHAND','%MB_ICONINFORMATION','%MB_ICONQUESTION',
-            '%MB_ICONSTOP','%MB_ICONWARNING','%MB_OK','%MB_OKCANCEL','%MB_RETRYCANCEL','%MB_SIMPLE','%MB_SYSTEMMODAL','%MB_TOPMOST',
-            '%MB_YESNO','%MB_YESNOCANCEL','%MF_CHECKED','%MF_DISABLED','%MF_ENABLED','%MF_GRAYED','%MF_SEPARATOR','%MF_UNCHECKED',
-            '%MINCHAR','%MINLONG','%MINSHORT','%NULL','%ODBC352_INC','%ODBCVER','%ODBC_ADD_DSN','%ODBC_ADD_SYS_DSN',
-            '%ODBC_BOTH_DSN','%ODBC_CONFIG_DRIVER','%ODBC_CONFIG_DRIVER_MAX','%ODBC_CONFIG_DSN','%ODBC_CONFIG_SYS_DSN','%ODBC_DRIVER_VERSION','%ODBC_ERROR_COMPONENT_NOT_FOUND','%ODBC_ERROR_CREATE_DSN_FAILED',
-            '%ODBC_ERROR_GENERAL_ERR','%ODBC_ERROR_INVALID_BUFF_LEN','%ODBC_ERROR_INVALID_DSN','%ODBC_ERROR_INVALID_HWND','%ODBC_ERROR_INVALID_INF','%ODBC_ERROR_INVALID_KEYWORD_VALUE','%ODBC_ERROR_INVALID_LOG_FILE','%ODBC_ERROR_INVALID_NAME',
-            '%ODBC_ERROR_INVALID_PARAM_SEQUENCE','%ODBC_ERROR_INVALID_PATH','%ODBC_ERROR_INVALID_REQUEST_TYPE','%ODBC_ERROR_INVALID_STR','%ODBC_ERROR_LOAD_LIB_FAILED','%ODBC_ERROR_OUTPUT_STRING_TRUNCATED','%ODBC_ERROR_OUT_OF_MEM','%ODBC_ERROR_REMOVE_DSN_FAILED',
-            '%ODBC_ERROR_REQUEST_FAILED','%ODBC_ERROR_USAGE_UPDATE_FAILED','%ODBC_ERROR_USER_CANCELED','%ODBC_ERROR_WRITING_SYSINFO_FAILED','%ODBC_INSTALL_COMPLETE','%ODBC_INSTALL_DRIVER','%ODBC_INSTALL_INQUIRY','%ODBC_REMOVE_DEFAULT_DSN',
-            '%ODBC_REMOVE_DRIVER','%ODBC_REMOVE_DSN','%ODBC_REMOVE_SYS_DSN','%ODBC_SYSTEM_DSN','%ODBC_USER_DSN','%OFN_ALLOWMULTISELECT','%OFN_CREATEPROMPT','%OFN_ENABLEHOOK',
-            '%OFN_ENABLEINCLUDENOTIFY','%OFN_ENABLESIZING','%OFN_ENABLETEMPLATE','%OFN_ENABLETEMPLATEHANDLE','%OFN_EXPLORER','%OFN_EXTENSIONDIFFERENT','%OFN_FILEMUSTEXIST','%OFN_HIDEREADONLY',
-            '%OFN_LONGNAMES','%OFN_NOCHANGEDIR','%OFN_NODEREFERENCELINKS','%OFN_NOLONGNAMES','%OFN_NONETWORKBUTTON','%OFN_NOREADONLYRETURN','%OFN_NOTESTFILECREATE','%OFN_NOVALIDATE',
-            '%OFN_OVERWRITEPROMPT','%OFN_PATHMUSTEXIST','%OFN_READONLY','%OFN_SHAREAWARE','%OFN_SHOWHELP','%OS_ERROR_CALLFUNCTION','%OS_ERROR_EMPTYSTRING','%OS_ERROR_LOADLIBRARY',
-            '%OS_ERROR_SUCCESS','%OS_ERROR_WRONGPARAMETER','%OS_SHELL_ASYNC','%OS_SHELL_SYNC','%OS_WINDOWS_2K','%OS_WINDOWS_95','%OS_WINDOWS_95_OSR2','%OS_WINDOWS_98',
-            '%OS_WINDOWS_98_SE','%OS_WINDOWS_ME','%OS_WINDOWS_NT','%OS_WINDOWS_SERVER_2003','%OS_WINDOWS_SERVER_LONGHORN','%OS_WINDOWS_SERVER_LONGHORN_DC','%OS_WINDOWS_VISTA','%OS_WINDOWS_XP',
-            '%OS_WNDSTYLE_HIDE','%OS_WNDSTYLE_MAXIMIZED','%OS_WNDSTYLE_MINIMIZED','%OS_WNDSTYLE_MINIMIZEDNOFOCUS','%OS_WNDSTYLE_NORMAL','%OS_WNDSTYLE_NORMALNOFOCUS','%PATH_EXT','%PATH_FILE',
-            '%PATH_FILEEXT','%PATH_ROOT','%PATH_ROOTPATH','%PATH_ROOTPATHPROG','%PATH_ROOTPATHPROGEXT','%PBM_DELTAPOS','%PBM_GETPOS','%PBM_GETRANGE',
-            '%PBM_SETBARCOLOR','%PBM_SETBKCOLOR','%PBM_SETPOS','%PBM_SETRANGE','%PBM_SETRANGE32','%PBM_SETSTEP','%PBM_STEPIT','%PBS_SMOOTH',
-            '%PBS_VERTICAL','%PC_DISABLEWAKEEVENT_OFF','%PC_DISABLEWAKEEVENT_ON','%PC_EB_NOCONFIRMATION','%PC_EB_NOPROGRESSUI','%PC_EB_NORMAL','%PC_EB_NOSOUND','%PC_FORCECRITICAL_OFF',
-            '%PC_FORCECRITICAL_ON','%PC_HIBERNATE_OFF','%PC_HIBERNATE_ON','%PC_RD_FORCE','%PC_RD_FORCEIFHUNG','%PC_RD_LOGOFF','%PC_RD_POWEROFF','%PC_RD_REBOOT',
-            '%PC_RD_SHUTDOWN','%PC_SD_DONOT_FORCE','%PC_SD_DONOT_REBOOT','%PC_SD_FORCE','%PC_SD_REBOOT','%PFA_CENTER','%PFA_LEFT','%PFA_RIGHT',
-            '%PF_3DNOW_INSTRUCTIONS_AVAILABLE','%PF_CHANNELS_ENABLED','%PF_COMPARE64_EXCHANGE128','%PF_COMPARE_EXCHANGE128','%PF_COMPARE_EXCHANGE_DOUBLE','%PF_FLOATING_POINT_EMULATED','%PF_FLOATING_POINT_PRECISION_ERRATA','%PF_MMX_INSTRUCTIONS_AVAILABLE',
-            '%PF_NX_ENABLED','%PF_PAE_ENABLED','%PF_RDTSC_INSTRUCTION_AVAILABLE','%PF_SSE3_INSTRUCTIONS_AVAILABLE','%PF_XMMI64_INSTRUCTIONS_AVAILABLE','%PF_XMMI_INSTRUCTIONS_AVAILABLE','%PGM_FIRST','%RED',
-            '%RTF_UBB','%SAPI_SVSFDEFAULT','%SAPI_SVSFISFILENAME','%SAPI_SVSFISNOTXML','%SAPI_SVSFISXML','%SAPI_SVSFLAGSASYNC','%SAPI_SVSFNLPMASK','%SAPI_SVSFNLPSPEAKPUNC',
-            '%SAPI_SVSFPERSISTXML','%SAPI_SVSFPURGEBEFORESPEAK','%SAPI_SVSFUNUSEDFLAGS','%SAPI_SVSFVOICEMASK','%SBS_SIZEGRIP','%SB_BOTTOM','%SB_ENDSCROLL','%SB_LEFT',
-            '%SB_LINEDOWN','%SB_LINELEFT','%SB_LINERIGHT','%SB_LINEUP','%SB_PAGEDOWN','%SB_PAGELEFT','%SB_PAGERIGHT','%SB_PAGEUP',
-            '%SB_RIGHT','%SB_SETPARTS','%SB_SETTEXT','%SB_THUMBPOSITION','%SB_THUMBTRACK','%SB_TOP','%SCF_ALL','%SCF_ASSOCIATEFONT',
-            '%SCF_DEFAULT','%SCF_NOKBUPDATE','%SCF_SELECTION','%SCF_USEUIRULES','%SCF_WORD','%SC_CLOSE','%SC_CONTEXTHELP','%SC_HOTKEY',
-            '%SC_HSCROLL','%SC_KEYMENU','%SC_MAXIMIZE','%SC_MINIMIZE','%SC_MONITORPOWER','%SC_MOUSEMENU','%SC_MOVE','%SC_NEXTWINDOW',
-            '%SC_PREVWINDOW','%SC_RESTORE','%SC_SCREENSAVE','%SC_SIZE','%SC_TASKLIST','%SC_VSCROLL','%SERVICE_ACTIVE','%SERVICE_AUTO_START',
-            '%SERVICE_BOOT_START','%SERVICE_CONTINUE_PENDING','%SERVICE_DEMAND_START','%SERVICE_DISABLED','%SERVICE_DRIVER','%SERVICE_INACTIVE','%SERVICE_INFO_DISPLAY_NAME','%SERVICE_INFO_NAME',
-            '%SERVICE_PAUSED','%SERVICE_PAUSE_PENDING','%SERVICE_RUNNING','%SERVICE_START_PENDING','%SERVICE_STATE_ALL','%SERVICE_STOPPED','%SERVICE_STOP_PENDING','%SERVICE_SYSTEM_START',
-            '%SERVICE_TYPE_ALL','%SERVICE_WIN32','%SES_ALLOWBEEPS','%SES_BEEPONMAXTEXT','%SES_BIDI','%SES_EMULATE10','%SES_EMULATESYSEDIT','%SES_EXTENDBACKCOLOR',
-            '%SES_LOWERCASE','%SES_MAPCPS','%SES_NOIME','%SES_NOINPUTSEQUENCECHK','%SES_SCROLLONKILLFOCUS','%SES_UPPERCASE','%SES_USEAIMM','%SES_USECRLF',
-            '%SES_XLTCRCRLFTOCR','%SF_RTF','%SF_TEXT','%SMTP_SET_ATTACH_CONTENT_TYPE','%SMTP_SET_CONTENT_TYPE_PREFIX','%SQL_AA_FALSE','%SQL_AA_TRUE','%SQL_ACCESSIBLE_PROCEDURES',
-            '%SQL_ACCESSIBLE_TABLES','%SQL_ACCESS_MODE','%SQL_ACTIVE_CONNECTIONS','%SQL_ACTIVE_ENVIRONMENTS','%SQL_ACTIVE_STATEMENTS','%SQL_ADD','%SQL_AD_ADD_CONSTRAINT_DEFERRABLE','%SQL_AD_ADD_CONSTRAINT_INITIALLY_DEFERRED',
-            '%SQL_AD_ADD_CONSTRAINT_INITIALLY_IMMEDIATE','%SQL_AD_ADD_CONSTRAINT_NON_DEFERRABLE','%SQL_AD_ADD_DOMAIN_CONSTRAINT','%SQL_AD_ADD_DOMAIN_DEFAULT','%SQL_AD_CONSTRAINT_NAME_DEFINITION','%SQL_AD_DROP_DOMAIN_CONSTRAINT','%SQL_AD_DROP_DOMAIN_DEFAULT','%SQL_AF_ALL',
-            '%SQL_AF_AVG','%SQL_AF_COUNT','%SQL_AF_DISTINCT','%SQL_AF_MAX','%SQL_AF_MIN','%SQL_AF_SUM','%SQL_AGGREGATE_FUNCTIONS','%SQL_ALL_EXCEPT_LIKE',
-            '%SQL_ALL_TYPES','%SQL_ALTER_DOMAIN','%SQL_ALTER_TABLE','%SQL_AM_CONNECTION','%SQL_AM_NONE','%SQL_AM_STATEMENT','%SQL_API_ALL_FUNCTIONS','%SQL_API_LOADBYORDINAL',
-            '%SQL_API_ODBC3_ALL_FUNCTIONS','%SQL_API_ODBC3_ALL_FUNCTIONS_SIZE','%SQL_API_SQLALLOCCONNECT','%SQL_API_SQLALLOCENV','%SQL_API_SQLALLOCHANDLE','%SQL_API_SQLALLOCHANDLESTD','%SQL_API_SQLALLOCSTMT','%SQL_API_SQLBINDCOL',
-            '%SQL_API_SQLBINDPARAM','%SQL_API_SQLBINDPARAMETER','%SQL_API_SQLBROWSECONNECT','%SQL_API_SQLBULKOPERATIONS','%SQL_API_SQLCANCEL','%SQL_API_SQLCLOSECURSOR','%SQL_API_SQLCOLATTRIBUTE','%SQL_API_SQLCOLATTRIBUTES',
-            '%SQL_API_SQLCOLUMNPRIVILEGES','%SQL_API_SQLCOLUMNS','%SQL_API_SQLCONNECT','%SQL_API_SQLCOPYDESC','%SQL_API_SQLDATASOURCES','%SQL_API_SQLDESCRIBECOL','%SQL_API_SQLDESCRIBEPARAM','%SQL_API_SQLDISCONNECT',
-            '%SQL_API_SQLDRIVERCONNECT','%SQL_API_SQLDRIVERS','%SQL_API_SQLENDTRAN','%SQL_API_SQLERROR','%SQL_API_SQLEXECDIRECT','%SQL_API_SQLEXECUTE','%SQL_API_SQLEXTENDEDFETCH','%SQL_API_SQLFETCH',
-            '%SQL_API_SQLFETCHSCROLL','%SQL_API_SQLFOREIGNKEYS','%SQL_API_SQLFREECONNECT','%SQL_API_SQLFREEENV','%SQL_API_SQLFREEHANDLE','%SQL_API_SQLFREESTMT','%SQL_API_SQLGETCONNECTATTR','%SQL_API_SQLGETCONNECTOPTION',
-            '%SQL_API_SQLGETCURSORNAME','%SQL_API_SQLGETDATA','%SQL_API_SQLGETDESCFIELD','%SQL_API_SQLGETDESCREC','%SQL_API_SQLGETDIAGFIELD','%SQL_API_SQLGETDIAGREC','%SQL_API_SQLGETENVATTR','%SQL_API_SQLGETFUNCTIONS',
-            '%SQL_API_SQLGETINFO','%SQL_API_SQLGETSTMTATTR','%SQL_API_SQLGETSTMTOPTION','%SQL_API_SQLGETTYPEINFO','%SQL_API_SQLMORERESULTS','%SQL_API_SQLNATIVESQL','%SQL_API_SQLNUMPARAMS','%SQL_API_SQLNUMRESULTCOLS',
-            '%SQL_API_SQLPARAMDATA','%SQL_API_SQLPARAMOPTIONS','%SQL_API_SQLPREPARE','%SQL_API_SQLPRIMARYKEYS','%SQL_API_SQLPROCEDURECOLUMNS','%SQL_API_SQLPROCEDURES','%SQL_API_SQLPUTDATA','%SQL_API_SQLROWCOUNT',
-            '%SQL_API_SQLSETCONNECTATTR','%SQL_API_SQLSETCONNECTOPTION','%SQL_API_SQLSETCURSORNAME','%SQL_API_SQLSETDESCFIELD','%SQL_API_SQLSETDESCREC','%SQL_API_SQLSETENVATTR','%SQL_API_SQLSETPARAM','%SQL_API_SQLSETPOS',
-            '%SQL_API_SQLSETSCROLLOPTIONS','%SQL_API_SQLSETSTMTATTR','%SQL_API_SQLSETSTMTOPTION','%SQL_API_SQLSPECIALCOLUMNS','%SQL_API_SQLSTATISTICS','%SQL_API_SQLTABLEPRIVILEGES','%SQL_API_SQLTABLES','%SQL_API_SQLTRANSACT',
-            '%SQL_ARD_TYPE','%SQL_ASYNC_ENABLE','%SQL_ASYNC_ENABLE_DEFAULT','%SQL_ASYNC_ENABLE_OFF','%SQL_ASYNC_ENABLE_ON','%SQL_ASYNC_MODE','%SQL_ATTR_ACCESS_MODE','%SQL_ATTR_ANSI_APP',
-            '%SQL_ATTR_APP_PARAM_DESC','%SQL_ATTR_APP_ROW_DESC','%SQL_ATTR_ASYNC_ENABLE','%SQL_ATTR_AUTOCOMMIT','%SQL_ATTR_AUTO_IPD','%SQL_ATTR_CONCURRENCY','%SQL_ATTR_CONNECTION_DEAD','%SQL_ATTR_CONNECTION_POOLING',
-            '%SQL_ATTR_CONNECTION_TIMEOUT','%SQL_ATTR_CP_MATCH','%SQL_ATTR_CURRENT_CATALOG','%SQL_ATTR_CURSOR_SCROLLABLE','%SQL_ATTR_CURSOR_SENSITIVITY','%SQL_ATTR_CURSOR_TYPE','%SQL_ATTR_DISCONNECT_BEHAVIOR','%SQL_ATTR_ENABLE_AUTO_IPD',
-            '%SQL_ATTR_ENLIST_IN_DTC','%SQL_ATTR_ENLIST_IN_XA','%SQL_ATTR_FETCH_BOOKMARK_PTR','%SQL_ATTR_IMP_PARAM_DESC','%SQL_ATTR_IMP_ROW_DESC','%SQL_ATTR_KEYSET_SIZE','%SQL_ATTR_LOGIN_TIMEOUT','%SQL_ATTR_MAX_LENGTH',
-            '%SQL_ATTR_MAX_ROWS','%SQL_ATTR_METADATA_ID','%SQL_ATTR_NOSCAN','%SQL_ATTR_ODBC_CURSORS','%SQL_ATTR_ODBC_VERSION','%SQL_ATTR_OUTPUT_NTS','%SQL_ATTR_PACKET_SIZE','%SQL_ATTR_PARAMSET_SIZE',
-            '%SQL_ATTR_PARAMS_PROCESSED_PTR','%SQL_ATTR_PARAM_BIND_OFFSET_PTR','%SQL_ATTR_PARAM_BIND_TYPE','%SQL_ATTR_PARAM_OPERATION_PTR','%SQL_ATTR_PARAM_STATUS_PTR','%SQL_ATTR_QUERY_TIMEOUT','%SQL_ATTR_QUIET_MODE','%SQL_ATTR_READONLY',
-            '%SQL_ATTR_READWRITE_UNKNOWN','%SQL_ATTR_RETRIEVE_DATA','%SQL_ATTR_ROWS_FETCHED_PTR','%SQL_ATTR_ROW_ARRAY_SIZE','%SQL_ATTR_ROW_BIND_OFFSET_PTR','%SQL_ATTR_ROW_BIND_TYPE','%SQL_ATTR_ROW_NUMBER','%SQL_ATTR_ROW_OPERATION_PTR',
-            '%SQL_ATTR_ROW_STATUS_PTR','%SQL_ATTR_SIMULATE_CURSOR','%SQL_ATTR_TRACE','%SQL_ATTR_TRACEFILE','%SQL_ATTR_TRANSLATE_LIB','%SQL_ATTR_TRANSLATE_OPTION','%SQL_ATTR_TXN_ISOLATION','%SQL_ATTR_USE_BOOKMARKS',
-            '%SQL_ATTR_WRITE','%SQL_AT_ADD_COLUMN','%SQL_AT_ADD_COLUMN_COLLATION','%SQL_AT_ADD_COLUMN_DEFAULT','%SQL_AT_ADD_COLUMN_SINGLE','%SQL_AT_ADD_CONSTRAINT','%SQL_AT_ADD_TABLE_CONSTRAINT','%SQL_AT_CONSTRAINT_DEFERRABLE',
-            '%SQL_AT_CONSTRAINT_INITIALLY_DEFERRED','%SQL_AT_CONSTRAINT_INITIALLY_IMMEDIATE','%SQL_AT_CONSTRAINT_NAME_DEFINITION','%SQL_AT_CONSTRAINT_NON_DEFERRABLE','%SQL_AT_DROP_COLUMN','%SQL_AT_DROP_COLUMN_CASCADE','%SQL_AT_DROP_COLUMN_DEFAULT','%SQL_AT_DROP_COLUMN_RESTRICT',
-            '%SQL_AT_DROP_TABLE_CONSTRAINT_CASCADE','%SQL_AT_DROP_TABLE_CONSTRAINT_RESTRICT','%SQL_AT_SET_COLUMN_DEFAULT','%SQL_AUTOCOMMIT','%SQL_AUTOCOMMIT_DEFAULT','%SQL_AUTOCOMMIT_OFF','%SQL_AUTOCOMMIT_ON','%SQL_BATCH_ROW_COUNT',
-            '%SQL_BATCH_SUPPORT','%SQL_BEST_ROWID','%SQL_BIGINT','%SQL_BINARY','%SQL_BIND_BY_COLUMN','%SQL_BIND_TYPE','%SQL_BIND_TYPE_DEFAULT','%SQL_BIT',
-            '%SQL_BOOKMARK_PERSISTENCE','%SQL_BP_CLOSE','%SQL_BP_DELETE','%SQL_BP_DROP','%SQL_BP_OTHER_HSTMT','%SQL_BP_SCROLL','%SQL_BP_TRANSACTION','%SQL_BP_UPDATE',
-            '%SQL_BRC_EXPLICIT','%SQL_BRC_PROCEDURES','%SQL_BRC_ROLLED_UP','%SQL_BS_ROW_COUNT_EXPLICIT','%SQL_BS_ROW_COUNT_PROC','%SQL_BS_SELECT_EXPLICIT','%SQL_BS_SELECT_PROC','%SQL_CA1_ABSOLUTE',
-            '%SQL_CA1_BOOKMARK','%SQL_CA1_BULK_ADD','%SQL_CA1_BULK_DELETE_BY_BOOKMARK','%SQL_CA1_BULK_FETCH_BY_BOOKMARK','%SQL_CA1_BULK_UPDATE_BY_BOOKMARK','%SQL_CA1_LOCK_EXCLUSIVE','%SQL_CA1_LOCK_NO_CHANGE','%SQL_CA1_LOCK_UNLOCK',
-            '%SQL_CA1_NEXT','%SQL_CA1_POSITIONED_DELETE','%SQL_CA1_POSITIONED_UPDATE','%SQL_CA1_POS_DELETE','%SQL_CA1_POS_POSITION','%SQL_CA1_POS_REFRESH','%SQL_CA1_POS_UPDATE','%SQL_CA1_RELATIVE',
-            '%SQL_CA1_SELECT_FOR_UPDATE','%SQL_CA2_CRC_APPROXIMATE','%SQL_CA2_CRC_EXACT','%SQL_CA2_LOCK_CONCURRENCY','%SQL_CA2_MAX_ROWS_AFFECTS_ALL','%SQL_CA2_MAX_ROWS_CATALOG','%SQL_CA2_MAX_ROWS_DELETE','%SQL_CA2_MAX_ROWS_INSERT',
-            '%SQL_CA2_MAX_ROWS_SELECT','%SQL_CA2_MAX_ROWS_UPDATE','%SQL_CA2_OPT_ROWVER_CONCURRENCY','%SQL_CA2_OPT_VALUES_CONCURRENCY','%SQL_CA2_READ_ONLY_CONCURRENCY','%SQL_CA2_SENSITIVITY_ADDITIONS','%SQL_CA2_SENSITIVITY_DELETIONS','%SQL_CA2_SENSITIVITY_UPDATES',
-            '%SQL_CA2_SIMULATE_NON_UNIQUE','%SQL_CA2_SIMULATE_TRY_UNIQUE','%SQL_CA2_SIMULATE_UNIQUE','%SQL_CASCADE','%SQL_CATALOG_LOCATION','%SQL_CATALOG_NAME','%SQL_CATALOG_NAME_SEPARATOR','%SQL_CATALOG_TERM',
-            '%SQL_CATALOG_USAGE','%SQL_CA_CONSTRAINT_DEFERRABLE','%SQL_CA_CONSTRAINT_INITIALLY_DEFERRED','%SQL_CA_CONSTRAINT_INITIALLY_IMMEDIATE','%SQL_CA_CONSTRAINT_NON_DEFERRABLE','%SQL_CA_CREATE_ASSERTION','%SQL_CB_CLOSE','%SQL_CB_DELETE',
-            '%SQL_CB_NON_NULL','%SQL_CB_NULL','%SQL_CB_PRESERVE','%SQL_CCOL_CREATE_COLLATION','%SQL_CCS_COLLATE_CLAUSE','%SQL_CCS_CREATE_CHARACTER_SET','%SQL_CCS_LIMITED_COLLATION','%SQL_CC_CLOSE',
-            '%SQL_CC_DELETE','%SQL_CC_PRESERVE','%SQL_CDO_COLLATION','%SQL_CDO_CONSTRAINT','%SQL_CDO_CONSTRAINT_DEFERRABLE','%SQL_CDO_CONSTRAINT_INITIALLY_DEFERRED','%SQL_CDO_CONSTRAINT_INITIALLY_IMMEDIATE','%SQL_CDO_CONSTRAINT_NAME_DEFINITION',
-            '%SQL_CDO_CONSTRAINT_NON_DEFERRABLE','%SQL_CDO_CREATE_DOMAIN','%SQL_CDO_DEFAULT','%SQL_CD_FALSE','%SQL_CD_TRUE','%SQL_CHAR','%SQL_CLOSE','%SQL_CL_END',
-            '%SQL_CL_START','%SQL_CN_ANY','%SQL_CN_DIFFERENT','%SQL_CN_NONE','%SQL_CODE_DATE','%SQL_CODE_DAY','%SQL_CODE_DAY_TO_HOUR','%SQL_CODE_DAY_TO_MINUTE',
-            '%SQL_CODE_DAY_TO_SECOND','%SQL_CODE_HOUR','%SQL_CODE_HOUR_TO_MINUTE','%SQL_CODE_HOUR_TO_SECOND','%SQL_CODE_MINUTE','%SQL_CODE_MINUTE_TO_SECOND','%SQL_CODE_MONTH','%SQL_CODE_SECOND',
-            '%SQL_CODE_TIME','%SQL_CODE_TIMESTAMP','%SQL_CODE_YEAR','%SQL_CODE_YEAR_TO_MONTH','%SQL_COLATT_OPT_MAX','%SQL_COLATT_OPT_MIN','%SQL_COLLATION_SEQ','%SQL_COLUMN_ALIAS',
-            '%SQL_COLUMN_AUTO_INCREMENT','%SQL_COLUMN_CASE_SENSITIVE','%SQL_COLUMN_COUNT','%SQL_COLUMN_DISPLAY_SIZE','%SQL_COLUMN_IGNORE','%SQL_COLUMN_LABEL','%SQL_COLUMN_LENGTH','%SQL_COLUMN_MONEY',
-            '%SQL_COLUMN_NAME','%SQL_COLUMN_NULLABLE','%SQL_COLUMN_NUMBER_UNKNOWN','%SQL_COLUMN_OWNER_NAME','%SQL_COLUMN_PRECISION','%SQL_COLUMN_QUALIFIER_NAME','%SQL_COLUMN_SCALE','%SQL_COLUMN_SEARCHABLE',
-            '%SQL_COLUMN_TABLE_NAME','%SQL_COLUMN_TYPE','%SQL_COLUMN_TYPE_NAME','%SQL_COLUMN_UNSIGNED','%SQL_COLUMN_UPDATABLE','%SQL_COL_PRED_BASIC','%SQL_COL_PRED_CHAR','%SQL_COMMIT',
-            '%SQL_CONCAT_NULL_BEHAVIOR','%SQL_CONCURRENCY','%SQL_CONCUR_DEFAULT','%SQL_CONCUR_LOCK','%SQL_CONCUR_READ_ONLY','%SQL_CONCUR_ROWVER','%SQL_CONCUR_TIMESTAMP','%SQL_CONCUR_VALUES',
-            '%SQL_CONVERT_BIGINT','%SQL_CONVERT_BINARY','%SQL_CONVERT_BIT','%SQL_CONVERT_CHAR','%SQL_CONVERT_DATE','%SQL_CONVERT_DECIMAL','%SQL_CONVERT_DOUBLE','%SQL_CONVERT_FLOAT',
-            '%SQL_CONVERT_FUNCTIONS','%SQL_CONVERT_GUID','%SQL_CONVERT_INTEGER','%SQL_CONVERT_INTERVAL_DAY_TIME','%SQL_CONVERT_INTERVAL_YEAR_MONTH','%SQL_CONVERT_LONGVARBINARY','%SQL_CONVERT_LONGVARCHAR','%SQL_CONVERT_NUMERIC',
-            '%SQL_CONVERT_REAL','%SQL_CONVERT_SMALLINT','%SQL_CONVERT_TIME','%SQL_CONVERT_TIMESTAMP','%SQL_CONVERT_TINYINT','%SQL_CONVERT_VARBINARY','%SQL_CONVERT_VARCHAR','%SQL_CONVERT_WCHAR',
-            '%SQL_CONVERT_WLONGVARCHAR','%SQL_CONVERT_WVARCHAR','%SQL_CORRELATION_NAME','%SQL_CP_DEFAULT','%SQL_CP_MATCH_DEFAULT','%SQL_CP_OFF','%SQL_CP_ONE_PER_DRIVER','%SQL_CP_ONE_PER_HENV',
-            '%SQL_CP_RELAXED_MATCH','%SQL_CP_STRICT_MATCH','%SQL_CREATE_ASSERTION','%SQL_CREATE_CHARACTER_SET','%SQL_CREATE_COLLATION','%SQL_CREATE_DOMAIN','%SQL_CREATE_SCHEMA','%SQL_CREATE_TABLE',
-            '%SQL_CREATE_TRANSLATION','%SQL_CREATE_VIEW','%SQL_CR_CLOSE','%SQL_CR_DELETE','%SQL_CR_PRESERVE','%SQL_CS_AUTHORIZATION','%SQL_CS_CREATE_SCHEMA','%SQL_CS_DEFAULT_CHARACTER_SET',
-            '%SQL_CTR_CREATE_TRANSLATION','%SQL_CT_COLUMN_COLLATION','%SQL_CT_COLUMN_CONSTRAINT','%SQL_CT_COLUMN_DEFAULT','%SQL_CT_COMMIT_DELETE','%SQL_CT_COMMIT_PRESERVE','%SQL_CT_CONSTRAINT_DEFERRABLE','%SQL_CT_CONSTRAINT_INITIALLY_DEFERRED',
-            '%SQL_CT_CONSTRAINT_INITIALLY_IMMEDIATE','%SQL_CT_CONSTRAINT_NAME_DEFINITION','%SQL_CT_CONSTRAINT_NON_DEFERRABLE','%SQL_CT_CREATE_TABLE','%SQL_CT_GLOBAL_TEMPORARY','%SQL_CT_LOCAL_TEMPORARY','%SQL_CT_TABLE_CONSTRAINT','%SQL_CURRENT_QUALIFIER',
-            '%SQL_CURSOR_COMMIT_BEHAVIOR','%SQL_CURSOR_DYNAMIC','%SQL_CURSOR_FORWARD_ONLY','%SQL_CURSOR_KEYSET_DRIVEN','%SQL_CURSOR_ROLLBACK_BEHAVIOR','%SQL_CURSOR_SENSITIVITY','%SQL_CURSOR_STATIC','%SQL_CURSOR_TYPE',
-            '%SQL_CURSOR_TYPE_DEFAULT','%SQL_CUR_DEFAULT','%SQL_CUR_USE_DRIVER','%SQL_CUR_USE_IF_NEEDED','%SQL_CUR_USE_ODBC','%SQL_CU_DML_STATEMENTS','%SQL_CU_INDEX_DEFINITION','%SQL_CU_PRIVILEGE_DEFINITION',
-            '%SQL_CU_PROCEDURE_INVOCATION','%SQL_CU_TABLE_DEFINITION','%SQL_CVT_BIGINT','%SQL_CVT_BINARY','%SQL_CVT_BIT','%SQL_CVT_CHAR','%SQL_CVT_DATE','%SQL_CVT_DECIMAL',
-            '%SQL_CVT_DOUBLE','%SQL_CVT_FLOAT','%SQL_CVT_GUID','%SQL_CVT_INTEGER','%SQL_CVT_INTERVAL_DAY_TIME','%SQL_CVT_INTERVAL_YEAR_MONTH','%SQL_CVT_LONGVARBINARY','%SQL_CVT_LONGVARCHAR',
-            '%SQL_CVT_NUMERIC','%SQL_CVT_REAL','%SQL_CVT_SMALLINT','%SQL_CVT_TIME','%SQL_CVT_TIMESTAMP','%SQL_CVT_TINYINT','%SQL_CVT_VARBINARY','%SQL_CVT_VARCHAR',
-            '%SQL_CVT_WCHAR','%SQL_CVT_WLONGVARCHAR','%SQL_CVT_WVARCHAR','%SQL_CV_CASCADED','%SQL_CV_CHECK_OPTION','%SQL_CV_CREATE_VIEW','%SQL_CV_LOCAL','%SQL_C_BINARY',
-            '%SQL_C_BIT','%SQL_C_BOOKMARK','%SQL_C_CHAR','%SQL_C_DATE','%SQL_C_DEFAULT','%SQL_C_DOUBLE','%SQL_C_FLOAT','%SQL_C_GUID',
-            '%SQL_C_INTERVAL_DAY','%SQL_C_INTERVAL_DAY_TO_HOUR','%SQL_C_INTERVAL_DAY_TO_MINUTE','%SQL_C_INTERVAL_DAY_TO_SECOND','%SQL_C_INTERVAL_HOUR','%SQL_C_INTERVAL_HOUR_TO_MINUTE','%SQL_C_INTERVAL_HOUR_TO_SECOND','%SQL_C_INTERVAL_MINUTE',
-            '%SQL_C_INTERVAL_MINUTE_TO_SECOND','%SQL_C_INTERVAL_MONTH','%SQL_C_INTERVAL_SECOND','%SQL_C_INTERVAL_YEAR','%SQL_C_INTERVAL_YEAR_TO_MONTH','%SQL_C_LONG','%SQL_C_NUMERIC','%SQL_C_SBIGINT',
-            '%SQL_C_SHORT','%SQL_C_SLONG','%SQL_C_SSHORT','%SQL_C_STINYINT','%SQL_C_TIME','%SQL_C_TIMESTAMP','%SQL_C_TINYINT','%SQL_C_TYPE_DATE',
-            '%SQL_C_TYPE_TIME','%SQL_C_TYPE_TIMESTAMP','%SQL_C_UBIGINT','%SQL_C_ULONG','%SQL_C_USHORT','%SQL_C_UTINYINT','%SQL_C_VARBOOKMARK','%SQL_DATABASE_NAME',
-            '%SQL_DATA_AT_EXEC','%SQL_DATA_SOURCE_NAME','%SQL_DATA_SOURCE_READ_ONLY','%SQL_DATE','%SQL_DATETIME','%SQL_DATETIME_LITERALS','%SQL_DATE_LEN','%SQL_DAY',
-            '%SQL_DAY_TO_HOUR','%SQL_DAY_TO_MINUTE','%SQL_DAY_TO_SECOND','%SQL_DA_DROP_ASSERTION','%SQL_DBMS_NAME','%SQL_DBMS_VER','%SQL_DB_DEFAULT','%SQL_DB_DISCONNECT',
-            '%SQL_DB_RETURN_TO_POOL','%SQL_DCS_DROP_CHARACTER_SET','%SQL_DC_DROP_COLLATION','%SQL_DDL_INDEX','%SQL_DD_CASCADE','%SQL_DD_DROP_DOMAIN','%SQL_DD_RESTRICT','%SQL_DECIMAL',
-            '%SQL_DEFAULT','%SQL_DEFAULT_PARAM','%SQL_DEFAULT_TXN_ISOLATION','%SQL_DELETE','%SQL_DELETE_BY_BOOKMARK','%SQL_DESCRIBE_PARAMETER','%SQL_DESC_ALLOC_AUTO','%SQL_DESC_ALLOC_TYPE',
-            '%SQL_DESC_ALLOC_USER','%SQL_DESC_ARRAY_SIZE','%SQL_DESC_ARRAY_STATUS_PTR','%SQL_DESC_AUTO_UNIQUE_VALUE','%SQL_DESC_BASE_COLUMN_NAME','%SQL_DESC_BASE_TABLE_NAME','%SQL_DESC_BIND_OFFSET_PTR','%SQL_DESC_BIND_TYPE',
-            '%SQL_DESC_CASE_SENSITIVE','%SQL_DESC_CATALOG_NAME','%SQL_DESC_CONCISE_TYPE','%SQL_DESC_COUNT','%SQL_DESC_DATA_PTR','%SQL_DESC_DATETIME_INTERVAL_CODE','%SQL_DESC_DATETIME_INTERVAL_PRECISION','%SQL_DESC_DISPLAY_SIZE',
-            '%SQL_DESC_FIXED_PREC_SCALE','%SQL_DESC_INDICATOR_PTR','%SQL_DESC_LABEL','%SQL_DESC_LENGTH','%SQL_DESC_LITERAL_PREFIX','%SQL_DESC_LITERAL_SUFFIX','%SQL_DESC_LOCAL_TYPE_NAME','%SQL_DESC_MAXIMUM_SCALE',
-            '%SQL_DESC_MINIMUM_SCALE','%SQL_DESC_NAME','%SQL_DESC_NULLABLE','%SQL_DESC_NUM_PREC_RADIX','%SQL_DESC_OCTET_LENGTH','%SQL_DESC_OCTET_LENGTH_PTR','%SQL_DESC_PARAMETER_TYPE','%SQL_DESC_PRECISION',
-            '%SQL_DESC_ROWS_PROCESSED_PTR','%SQL_DESC_SCALE','%SQL_DESC_SCHEMA_NAME','%SQL_DESC_SEARCHABLE','%SQL_DESC_TABLE_NAME','%SQL_DESC_TYPE','%SQL_DESC_TYPE_NAME','%SQL_DESC_UNNAMED',
-            '%SQL_DESC_UNSIGNED','%SQL_DESC_UPDATABLE','%SQL_DIAG_ALTER_TABLE','%SQL_DIAG_CALL','%SQL_DIAG_CLASS_ORIGIN','%SQL_DIAG_COLUMN_NUMBER','%SQL_DIAG_CONNECTION_NAME','%SQL_DIAG_CREATE_INDEX',
-            '%SQL_DIAG_CREATE_TABLE','%SQL_DIAG_CREATE_VIEW','%SQL_DIAG_CURSOR_ROW_COUNT','%SQL_DIAG_DELETE_WHERE','%SQL_DIAG_DROP_INDEX','%SQL_DIAG_DROP_TABLE','%SQL_DIAG_DROP_VIEW','%SQL_DIAG_DYNAMIC_DELETE_CURSOR',
-            '%SQL_DIAG_DYNAMIC_FUNCTION','%SQL_DIAG_DYNAMIC_FUNCTION_CODE','%SQL_DIAG_DYNAMIC_UPDATE_CURSOR','%SQL_DIAG_GRANT','%SQL_DIAG_INSERT','%SQL_DIAG_MESSAGE_TEXT','%SQL_DIAG_NATIVE','%SQL_DIAG_NUMBER',
-            '%SQL_DIAG_RETURNCODE','%SQL_DIAG_REVOKE','%SQL_DIAG_ROW_COUNT','%SQL_DIAG_ROW_NUMBER','%SQL_DIAG_SELECT_CURSOR','%SQL_DIAG_SERVER_NAME','%SQL_DIAG_SQLSTATE','%SQL_DIAG_SUBCLASS_ORIGIN',
-            '%SQL_DIAG_UNKNOWN_STATEMENT','%SQL_DIAG_UPDATE_WHERE','%SQL_DI_CREATE_INDEX','%SQL_DI_DROP_INDEX','%SQL_DL_SQL92_DATE','%SQL_DL_SQL92_INTERVAL_DAY','%SQL_DL_SQL92_INTERVAL_DAY_TO_HOUR','%SQL_DL_SQL92_INTERVAL_DAY_TO_MINUTE',
-            '%SQL_DL_SQL92_INTERVAL_DAY_TO_SECOND','%SQL_DL_SQL92_INTERVAL_HOUR','%SQL_DL_SQL92_INTERVAL_HOUR_TO_MINUTE','%SQL_DL_SQL92_INTERVAL_HOUR_TO_SECOND','%SQL_DL_SQL92_INTERVAL_MINUTE','%SQL_DL_SQL92_INTERVAL_MINUTE_TO_SECOND','%SQL_DL_SQL92_INTERVAL_MONTH','%SQL_DL_SQL92_INTERVAL_SECOND',
-            '%SQL_DL_SQL92_INTERVAL_YEAR','%SQL_DL_SQL92_INTERVAL_YEAR_TO_MONTH','%SQL_DL_SQL92_TIME','%SQL_DL_SQL92_TIMESTAMP','%SQL_DM_VER','%SQL_DOUBLE','%SQL_DRIVER_COMPLETE','%SQL_DRIVER_COMPLETE_REQUIRED',
-            '%SQL_DRIVER_HDBC','%SQL_DRIVER_HDESC','%SQL_DRIVER_HENV','%SQL_DRIVER_HLIB','%SQL_DRIVER_HSTMT','%SQL_DRIVER_NAME','%SQL_DRIVER_NOPROMPT','%SQL_DRIVER_ODBC_VER',
-            '%SQL_DRIVER_PROMPT','%SQL_DRIVER_VER','%SQL_DROP','%SQL_DROP_ASSERTION','%SQL_DROP_CHARACTER_SET','%SQL_DROP_COLLATION','%SQL_DROP_DOMAIN','%SQL_DROP_SCHEMA',
-            '%SQL_DROP_TABLE','%SQL_DROP_TRANSLATION','%SQL_DROP_VIEW','%SQL_DS_CASCADE','%SQL_DS_DROP_SCHEMA','%SQL_DS_RESTRICT','%SQL_DTC_DONE','%SQL_DTC_ENLIST_EXPENSIVE',
-            '%SQL_DTC_TRANSITION_COST','%SQL_DTC_UNENLIST_EXPENSIVE','%SQL_DTR_DROP_TRANSLATION','%SQL_DT_CASCADE','%SQL_DT_DROP_TABLE','%SQL_DT_RESTRICT','%SQL_DV_CASCADE','%SQL_DV_DROP_VIEW',
-            '%SQL_DV_RESTRICT','%SQL_DYNAMIC_CURSOR_ATTRIBUTES1','%SQL_DYNAMIC_CURSOR_ATTRIBUTES2','%SQL_ENSURE','%SQL_ENTIRE_ROWSET','%SQL_ERROR','%SQL_EXPRESSIONS_IN_ORDERBY','%SQL_FALSE',
-            '%SQL_FD_FETCH_ABSOLUTE','%SQL_FD_FETCH_BOOKMARK','%SQL_FD_FETCH_FIRST','%SQL_FD_FETCH_LAST','%SQL_FD_FETCH_NEXT','%SQL_FD_FETCH_PREV','%SQL_FD_FETCH_PRIOR','%SQL_FD_FETCH_RELATIVE',
-            '%SQL_FETCH_ABSOLUTE','%SQL_FETCH_BOOKMARK','%SQL_FETCH_BY_BOOKMARK','%SQL_FETCH_DIRECTION','%SQL_FETCH_FIRST','%SQL_FETCH_FIRST_SYSTEM','%SQL_FETCH_FIRST_USER','%SQL_FETCH_LAST',
-            '%SQL_FETCH_NEXT','%SQL_FETCH_PREV','%SQL_FETCH_PRIOR','%SQL_FETCH_RELATIVE','%SQL_FILE_CATALOG','%SQL_FILE_NOT_SUPPORTED','%SQL_FILE_QUALIFIER','%SQL_FILE_TABLE',
-            '%SQL_FILE_USAGE','%SQL_FLOAT','%SQL_FN_CVT_CAST','%SQL_FN_CVT_CONVERT','%SQL_FN_NUM_ABS','%SQL_FN_NUM_ACOS','%SQL_FN_NUM_ASIN','%SQL_FN_NUM_ATAN',
-            '%SQL_FN_NUM_ATAN2','%SQL_FN_NUM_CEILING','%SQL_FN_NUM_COS','%SQL_FN_NUM_COT','%SQL_FN_NUM_DEGREES','%SQL_FN_NUM_EXP','%SQL_FN_NUM_FLOOR','%SQL_FN_NUM_LOG',
-            '%SQL_FN_NUM_LOG10','%SQL_FN_NUM_MOD','%SQL_FN_NUM_PI','%SQL_FN_NUM_POWER','%SQL_FN_NUM_RADIANS','%SQL_FN_NUM_RAND','%SQL_FN_NUM_ROUND','%SQL_FN_NUM_SIGN',
-            '%SQL_FN_NUM_SIN','%SQL_FN_NUM_SQRT','%SQL_FN_NUM_TAN','%SQL_FN_NUM_TRUNCATE','%SQL_FN_STR_ASCII','%SQL_FN_STR_BIT_LENGTH','%SQL_FN_STR_CHAR','%SQL_FN_STR_CHARACTER_LENGTH',
-            '%SQL_FN_STR_CHAR_LENGTH','%SQL_FN_STR_CONCAT','%SQL_FN_STR_DIFFERENCE','%SQL_FN_STR_INSERT','%SQL_FN_STR_LCASE','%SQL_FN_STR_LEFT','%SQL_FN_STR_LENGTH','%SQL_FN_STR_LOCATE',
-            '%SQL_FN_STR_LOCATE_2','%SQL_FN_STR_LTRIM','%SQL_FN_STR_OCTET_LENGTH','%SQL_FN_STR_POSITION','%SQL_FN_STR_REPEAT','%SQL_FN_STR_REPLACE','%SQL_FN_STR_RIGHT','%SQL_FN_STR_RTRIM',
-            '%SQL_FN_STR_SOUNDEX','%SQL_FN_STR_SPACE','%SQL_FN_STR_SUBSTRING','%SQL_FN_STR_UCASE','%SQL_FN_SYS_DBNAME','%SQL_FN_SYS_IFNULL','%SQL_FN_SYS_USERNAME','%SQL_FN_TD_CURDATE',
-            '%SQL_FN_TD_CURRENT_DATE','%SQL_FN_TD_CURRENT_TIME','%SQL_FN_TD_CURRENT_TIMESTAMP','%SQL_FN_TD_CURTIME','%SQL_FN_TD_DAYNAME','%SQL_FN_TD_DAYOFMONTH','%SQL_FN_TD_DAYOFWEEK','%SQL_FN_TD_DAYOFYEAR',
-            '%SQL_FN_TD_EXTRACT','%SQL_FN_TD_HOUR','%SQL_FN_TD_MINUTE','%SQL_FN_TD_MONTH','%SQL_FN_TD_MONTHNAME','%SQL_FN_TD_NOW','%SQL_FN_TD_QUARTER','%SQL_FN_TD_SECOND',
-            '%SQL_FN_TD_TIMESTAMPADD','%SQL_FN_TD_TIMESTAMPDIFF','%SQL_FN_TD_WEEK','%SQL_FN_TD_YEAR','%SQL_FN_TSI_DAY','%SQL_FN_TSI_FRAC_SECOND','%SQL_FN_TSI_HOUR','%SQL_FN_TSI_MINUTE',
-            '%SQL_FN_TSI_MONTH','%SQL_FN_TSI_QUARTER','%SQL_FN_TSI_SECOND','%SQL_FN_TSI_WEEK','%SQL_FN_TSI_YEAR','%SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES1','%SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES2','%SQL_GB_COLLATE',
-            '%SQL_GB_GROUP_BY_CONTAINS_SELECT','%SQL_GB_GROUP_BY_EQUALS_SELECT','%SQL_GB_NOT_SUPPORTED','%SQL_GB_NO_RELATION','%SQL_GD_ANY_COLUMN','%SQL_GD_ANY_ORDER','%SQL_GD_BLOCK','%SQL_GD_BOUND',
-            '%SQL_GETDATA_EXTENSIONS','%SQL_GET_BOOKMARK','%SQL_GROUP_BY','%SQL_GUID','%SQL_HANDLE_DBC','%SQL_HANDLE_DESC','%SQL_HANDLE_ENV','%SQL_HANDLE_SENV',
-            '%SQL_HANDLE_STMT','%SQL_HOUR','%SQL_HOUR_TO_MINUTE','%SQL_HOUR_TO_SECOND','%SQL_IC_LOWER','%SQL_IC_MIXED','%SQL_IC_SENSITIVE','%SQL_IC_UPPER',
-            '%SQL_IDENTIFIER_CASE','%SQL_IDENTIFIER_QUOTE_CHAR','%SQL_IGNORE','%SQL_IK_ALL','%SQL_IK_ASC','%SQL_IK_DESC','%SQL_IK_NONE','%SQL_INDEX_ALL',
-            '%SQL_INDEX_CLUSTERED','%SQL_INDEX_HASHED','%SQL_INDEX_KEYWORDS','%SQL_INDEX_OTHER','%SQL_INDEX_UNIQUE','%SQL_INFO_FIRST','%SQL_INFO_SCHEMA_VIEWS','%SQL_INITIALLY_DEFERRED',
-            '%SQL_INITIALLY_IMMEDIATE','%SQL_INSENSITIVE','%SQL_INSERT_STATEMENT','%SQL_INTEGER','%SQL_INTEGRITY','%SQL_INTERVAL','%SQL_INTERVAL_DAY','%SQL_INTERVAL_DAY_TO_HOUR',
-            '%SQL_INTERVAL_DAY_TO_MINUTE','%SQL_INTERVAL_DAY_TO_SECOND','%SQL_INTERVAL_HOUR','%SQL_INTERVAL_HOUR_TO_MINUTE','%SQL_INTERVAL_HOUR_TO_SECOND','%SQL_INTERVAL_MINUTE','%SQL_INTERVAL_MINUTE_TO_SECOND','%SQL_INTERVAL_MONTH',
-            '%SQL_INTERVAL_SECOND','%SQL_INTERVAL_YEAR','%SQL_INTERVAL_YEAR_TO_MONTH','%SQL_INVALID_HANDLE','%SQL_ISV_ASSERTIONS','%SQL_ISV_CHARACTER_SETS','%SQL_ISV_CHECK_CONSTRAINTS','%SQL_ISV_COLLATIONS',
-            '%SQL_ISV_COLUMNS','%SQL_ISV_COLUMN_DOMAIN_USAGE','%SQL_ISV_COLUMN_PRIVILEGES','%SQL_ISV_CONSTRAINT_COLUMN_USAGE','%SQL_ISV_CONSTRAINT_TABLE_USAGE','%SQL_ISV_DOMAINS','%SQL_ISV_DOMAIN_CONSTRAINTS','%SQL_ISV_KEY_COLUMN_USAGE',
-            '%SQL_ISV_REFERENTIAL_CONSTRAINTS','%SQL_ISV_SCHEMATA','%SQL_ISV_SQL_LANGUAGES','%SQL_ISV_TABLES','%SQL_ISV_TABLE_CONSTRAINTS','%SQL_ISV_TABLE_PRIVILEGES','%SQL_ISV_TRANSLATIONS','%SQL_ISV_USAGE_PRIVILEGES',
-            '%SQL_ISV_VIEWS','%SQL_ISV_VIEW_COLUMN_USAGE','%SQL_ISV_VIEW_TABLE_USAGE','%SQL_IS_DAY','%SQL_IS_DAY_TO_HOUR','%SQL_IS_DAY_TO_MINUTE','%SQL_IS_DAY_TO_SECOND','%SQL_IS_HOUR',
-            '%SQL_IS_HOUR_TO_MINUTE','%SQL_IS_HOUR_TO_SECOND','%SQL_IS_INSERT_LITERALS','%SQL_IS_INSERT_SEARCHED','%SQL_IS_INTEGER','%SQL_IS_MINUTE','%SQL_IS_MINUTE_TO_SECOND','%SQL_IS_MONTH',
-            '%SQL_IS_POINTER','%SQL_IS_SECOND','%SQL_IS_SELECT_INTO','%SQL_IS_SMALLINT','%SQL_IS_UINTEGER','%SQL_IS_USMALLINT','%SQL_IS_YEAR','%SQL_IS_YEAR_TO_MONTH',
-            '%SQL_KEYSET_CURSOR_ATTRIBUTES1','%SQL_KEYSET_CURSOR_ATTRIBUTES2','%SQL_KEYSET_SIZE','%SQL_KEYSET_SIZE_DEFAULT','%SQL_KEYWORDS','%SQL_LCK_EXCLUSIVE','%SQL_LCK_NO_CHANGE','%SQL_LCK_UNLOCK',
-            '%SQL_LEN_BINARY_ATTR_OFFSET','%SQL_LEN_DATA_AT_EXEC_OFFSET','%SQL_LIKE_ESCAPE_CLAUSE','%SQL_LIKE_ONLY','%SQL_LOCK_EXCLUSIVE','%SQL_LOCK_NO_CHANGE','%SQL_LOCK_TYPES','%SQL_LOCK_UNLOCK',
-            '%SQL_LOGIN_TIMEOUT','%SQL_LOGIN_TIMEOUT_DEFAULT','%SQL_LONGVARBINARY','%SQL_LONGVARCHAR','%SQL_MAXIMUM_CATALOG_NAME_LENGTH','%SQL_MAXIMUM_COLUMNS_IN_GROUP_BY','%SQL_MAXIMUM_COLUMNS_IN_INDEX','%SQL_MAXIMUM_COLUMNS_IN_ORDER_BY',
-            '%SQL_MAXIMUM_COLUMNS_IN_SELECT','%SQL_MAXIMUM_COLUMN_NAME_LENGTH','%SQL_MAXIMUM_CONCURRENT_ACTIVITIES','%SQL_MAXIMUM_CURSOR_NAME_LENGTH','%SQL_MAXIMUM_DRIVER_CONNECTIONS','%SQL_MAXIMUM_IDENTIFIER_LENGTH','%SQL_MAXIMUM_INDEX_SIZE','%SQL_MAXIMUM_ROW_SIZE',
-            '%SQL_MAXIMUM_SCHEMA_NAME_LENGTH','%SQL_MAXIMUM_STATEMENT_LENGTH','%SQL_MAXIMUM_TABLES_IN_SELECT','%SQL_MAXIMUM_USER_NAME_LENGTH','%SQL_MAX_ASYNC_CONCURRENT_STATEMENTS','%SQL_MAX_BINARY_LITERAL_LEN','%SQL_MAX_CATALOG_NAME_LEN','%SQL_MAX_CHAR_LITERAL_LEN',
-            '%SQL_MAX_COLUMNS_IN_GROUP_BY','%SQL_MAX_COLUMNS_IN_INDEX','%SQL_MAX_COLUMNS_IN_ORDER_BY','%SQL_MAX_COLUMNS_IN_SELECT','%SQL_MAX_COLUMNS_IN_TABLE','%SQL_MAX_COLUMN_NAME_LEN','%SQL_MAX_CONCURRENT_ACTIVITIES','%SQL_MAX_CURSOR_NAME_LEN',
-            '%SQL_MAX_DRIVER_CONNECTIONS','%SQL_MAX_DSN_LENGTH','%SQL_MAX_IDENTIFIER_LEN','%SQL_MAX_INDEX_SIZE','%SQL_MAX_LENGTH','%SQL_MAX_LENGTH_DEFAULT','%SQL_MAX_MESSAGE_LENGTH','%SQL_MAX_NUMERIC_LEN',
-            '%SQL_MAX_OPTION_STRING_LENGTH','%SQL_MAX_OWNER_NAME_LEN','%SQL_MAX_PROCEDURE_NAME_LEN','%SQL_MAX_QUALIFIER_NAME_LEN','%SQL_MAX_ROWS','%SQL_MAX_ROWS_DEFAULT','%SQL_MAX_ROW_SIZE','%SQL_MAX_ROW_SIZE_INCLUDES_LONG',
-            '%SQL_MAX_SCHEMA_NAME_LEN','%SQL_MAX_STATEMENT_LEN','%SQL_MAX_TABLES_IN_SELECT','%SQL_MAX_TABLE_NAME_LEN','%SQL_MAX_USER_NAME_LEN','%SQL_MINUTE','%SQL_MINUTE_TO_SECOND','%SQL_MODE_DEFAULT',
-            '%SQL_MODE_READ_ONLY','%SQL_MODE_READ_WRITE','%SQL_MONTH','%SQL_MULTIPLE_ACTIVE_TXN','%SQL_MULT_RESULT_SETS','%SQL_NAMED','%SQL_NC_END','%SQL_NC_HIGH',
-            '%SQL_NC_LOW','%SQL_NC_START','%SQL_NEED_DATA','%SQL_NEED_LONG_DATA_LEN','%SQL_NNC_NON_NULL','%SQL_NNC_NULL','%SQL_NONSCROLLABLE','%SQL_NON_NULLABLE_COLUMNS',
-            '%SQL_NOSCAN','%SQL_NOSCAN_DEFAULT','%SQL_NOSCAN_OFF','%SQL_NOSCAN_ON','%SQL_NOT_DEFERRABLE','%SQL_NO_ACTION','%SQL_NO_COLUMN_NUMBER','%SQL_NO_DATA',
-            '%SQL_NO_DATA_FOUND','%SQL_NO_NULLS','%SQL_NO_ROW_NUMBER','%SQL_NO_TOTAL','%SQL_NTS','%SQL_NTSL','%SQL_NULLABLE','%SQL_NULLABLE_UNKNOWN',
-            '%SQL_NULL_COLLATION','%SQL_NULL_DATA','%SQL_NULL_HANDLE','%SQL_NULL_HDBC','%SQL_NULL_HDESC','%SQL_NULL_HENV','%SQL_NULL_HSTMT','%SQL_NUMERIC',
-            '%SQL_NUMERIC_FUNCTIONS','%SQL_OAC_LEVEL1','%SQL_OAC_LEVEL2','%SQL_OAC_NONE','%SQL_ODBC_API_CONFORMANCE','%SQL_ODBC_CURSORS','%SQL_ODBC_INTERFACE_CONFORMANCE','%SQL_ODBC_SAG_CLI_CONFORMANCE',
-            '%SQL_ODBC_SQL_CONFORMANCE','%SQL_ODBC_SQL_OPT_IEF','%SQL_ODBC_VER','%SQL_OIC_CORE','%SQL_OIC_LEVEL1','%SQL_OIC_LEVEL2','%SQL_OJ_ALL_COMPARISON_OPS','%SQL_OJ_CAPABILITIES',
-            '%SQL_OJ_FULL','%SQL_OJ_INNER','%SQL_OJ_LEFT','%SQL_OJ_NESTED','%SQL_OJ_NOT_ORDERED','%SQL_OJ_RIGHT','%SQL_OPT_TRACE','%SQL_OPT_TRACEFILE',
-            '%SQL_OPT_TRACE_DEFAULT','%SQL_OPT_TRACE_OFF','%SQL_OPT_TRACE_ON','%SQL_ORDER_BY_COLUMNS_IN_SELECT','%SQL_OSCC_COMPLIANT','%SQL_OSCC_NOT_COMPLIANT','%SQL_OSC_CORE','%SQL_OSC_EXTENDED',
-            '%SQL_OSC_MINIMUM','%SQL_OUTER_JOINS','%SQL_OUTER_JOIN_CAPABILITIES','%SQL_OU_DML_STATEMENTS','%SQL_OU_INDEX_DEFINITION','%SQL_OU_PRIVILEGE_DEFINITION','%SQL_OU_PROCEDURE_INVOCATION','%SQL_OU_TABLE_DEFINITION',
-            '%SQL_OV_ODBC2','%SQL_OV_ODBC3','%SQL_OWNER_TERM','%SQL_OWNER_USAGE','%SQL_PACKET_SIZE','%SQL_PARAM_ARRAY_ROW_COUNTS','%SQL_PARAM_ARRAY_SELECTS','%SQL_PARAM_BIND_BY_COLUMN',
-            '%SQL_PARAM_BIND_TYPE_DEFAULT','%SQL_PARAM_DIAG_UNAVAILABLE','%SQL_PARAM_ERROR','%SQL_PARAM_IGNORE','%SQL_PARAM_INPUT','%SQL_PARAM_INPUT_OUTPUT','%SQL_PARAM_OUTPUT','%SQL_PARAM_PROCEED',
-            '%SQL_PARAM_SUCCESS','%SQL_PARAM_SUCCESS_WITH_INFO','%SQL_PARAM_TYPE_DEFAULT','%SQL_PARAM_TYPE_UNKNOWN','%SQL_PARAM_UNUSED','%SQL_PARC_BATCH','%SQL_PARC_NO_BATCH','%SQL_PAS_BATCH',
-            '%SQL_PAS_NO_BATCH','%SQL_PAS_NO_SELECT','%SQL_PC_NON_PSEUDO','%SQL_PC_NOT_PSEUDO','%SQL_PC_PSEUDO','%SQL_PC_UNKNOWN','%SQL_POSITION','%SQL_POSITIONED_STATEMENTS',
-            '%SQL_POS_ADD','%SQL_POS_DELETE','%SQL_POS_OPERATIONS','%SQL_POS_POSITION','%SQL_POS_REFRESH','%SQL_POS_UPDATE','%SQL_PRED_BASIC','%SQL_PRED_CHAR',
-            '%SQL_PRED_NONE','%SQL_PRED_SEARCHABLE','%SQL_PROCEDURES','%SQL_PROCEDURE_TERM','%SQL_PS_POSITIONED_DELETE','%SQL_PS_POSITIONED_UPDATE','%SQL_PS_SELECT_FOR_UPDATE','%SQL_PT_FUNCTION',
-            '%SQL_PT_PROCEDURE','%SQL_PT_UNKNOWN','%SQL_QL_END','%SQL_QL_START','%SQL_QUALIFIER_LOCATION','%SQL_QUALIFIER_NAME_SEPARATOR','%SQL_QUALIFIER_TERM','%SQL_QUALIFIER_USAGE',
-            '%SQL_QUERY_TIMEOUT','%SQL_QUERY_TIMEOUT_DEFAULT','%SQL_QUICK','%SQL_QUIET_MODE','%SQL_QUOTED_IDENTIFIER_CASE','%SQL_QU_DML_STATEMENTS','%SQL_QU_INDEX_DEFINITION','%SQL_QU_PRIVILEGE_DEFINITION',
-            '%SQL_QU_PROCEDURE_INVOCATION','%SQL_QU_TABLE_DEFINITION','%SQL_RD_DEFAULT','%SQL_RD_OFF','%SQL_RD_ON','%SQL_REAL','%SQL_REFRESH','%SQL_RESET_PARAMS',
-            '%SQL_RESTRICT','%SQL_RESULT_COL','%SQL_RETRIEVE_DATA','%SQL_RETURN_VALUE','%SQL_ROLLBACK','%SQL_ROWSET_SIZE','%SQL_ROWSET_SIZE_DEFAULT','%SQL_ROWVER',
-            '%SQL_ROW_ADDED','%SQL_ROW_DELETED','%SQL_ROW_ERROR','%SQL_ROW_IDENTIFIER','%SQL_ROW_IGNORE','%SQL_ROW_NOROW','%SQL_ROW_NUMBER','%SQL_ROW_NUMBER_UNKNOWN',
-            '%SQL_ROW_PROCEED','%SQL_ROW_SUCCESS','%SQL_ROW_SUCCESS_WITH_INFO','%SQL_ROW_UPDATED','%SQL_ROW_UPDATES','%SQL_SCCO_LOCK','%SQL_SCCO_OPT_ROWVER','%SQL_SCCO_OPT_TIMESTAMP',
-            '%SQL_SCCO_OPT_VALUES','%SQL_SCCO_READ_ONLY','%SQL_SCC_ISO92_CLI','%SQL_SCC_XOPEN_CLI_VERSION1','%SQL_SCHEMA_TERM','%SQL_SCHEMA_USAGE','%SQL_SCOPE_CURROW','%SQL_SCOPE_SESSION',
-            '%SQL_SCOPE_TRANSACTION','%SQL_SCROLLABLE','%SQL_SCROLL_CONCURRENCY','%SQL_SCROLL_DYNAMIC','%SQL_SCROLL_FORWARD_ONLY','%SQL_SCROLL_KEYSET_DRIVEN','%SQL_SCROLL_OPTIONS','%SQL_SCROLL_STATIC',
-            '%SQL_SC_FIPS127_2_TRANSITIONAL','%SQL_SC_NON_UNIQUE','%SQL_SC_SQL92_ENTRY','%SQL_SC_SQL92_FULL','%SQL_SC_SQL92_INTERMEDIATE','%SQL_SC_TRY_UNIQUE','%SQL_SC_UNIQUE','%SQL_SDF_CURRENT_DATE',
-            '%SQL_SDF_CURRENT_TIME','%SQL_SDF_CURRENT_TIMESTAMP','%SQL_SEARCHABLE','%SQL_SEARCH_PATTERN_ESCAPE','%SQL_SECOND','%SQL_SENSITIVE','%SQL_SERVER_NAME','%SQL_SETPARAM_VALUE_MAX',
-            '%SQL_SETPOS_MAX_LOCK_VALUE','%SQL_SETPOS_MAX_OPTION_VALUE','%SQL_SET_DEFAULT','%SQL_SET_NULL','%SQL_SFKD_CASCADE','%SQL_SFKD_NO_ACTION','%SQL_SFKD_SET_DEFAULT','%SQL_SFKD_SET_NULL',
-            '%SQL_SFKU_CASCADE','%SQL_SFKU_NO_ACTION','%SQL_SFKU_SET_DEFAULT','%SQL_SFKU_SET_NULL','%SQL_SG_DELETE_TABLE','%SQL_SG_INSERT_COLUMN','%SQL_SG_INSERT_TABLE','%SQL_SG_REFERENCES_COLUMN',
-            '%SQL_SG_REFERENCES_TABLE','%SQL_SG_SELECT_TABLE','%SQL_SG_UPDATE_COLUMN','%SQL_SG_UPDATE_TABLE','%SQL_SG_USAGE_ON_CHARACTER_SET','%SQL_SG_USAGE_ON_COLLATION','%SQL_SG_USAGE_ON_DOMAIN','%SQL_SG_USAGE_ON_TRANSLATION',
-            '%SQL_SG_WITH_GRANT_OPTION','%SQL_SIGNED_OFFSET','%SQL_SIMULATE_CURSOR','%SQL_SMALLINT','%SQL_SNVF_BIT_LENGTH','%SQL_SNVF_CHARACTER_LENGTH','%SQL_SNVF_CHAR_LENGTH','%SQL_SNVF_EXTRACT',
-            '%SQL_SNVF_OCTET_LENGTH','%SQL_SNVF_POSITION','%SQL_SO_DYNAMIC','%SQL_SO_FORWARD_ONLY','%SQL_SO_KEYSET_DRIVEN','%SQL_SO_MIXED','%SQL_SO_STATIC','%SQL_SPECIAL_CHARACTERS',
-            '%SQL_SPEC_MAJOR','%SQL_SPEC_MINOR','%SQL_SP_BETWEEN','%SQL_SP_COMPARISON','%SQL_SP_EXISTS','%SQL_SP_IN','%SQL_SP_ISNOTNULL','%SQL_SP_ISNULL',
-            '%SQL_SP_LIKE','%SQL_SP_MATCH_FULL','%SQL_SP_MATCH_PARTIAL','%SQL_SP_MATCH_UNIQUE_FULL','%SQL_SP_MATCH_UNIQUE_PARTIAL','%SQL_SP_OVERLAPS','%SQL_SP_QUANTIFIED_COMPARISON','%SQL_SP_UNIQUE',
-            '%SQL_SQL92_DATETIME_FUNCTIONS','%SQL_SQL92_FOREIGN_KEY_DELETE_RULE','%SQL_SQL92_FOREIGN_KEY_UPDATE_RULE','%SQL_SQL92_GRANT','%SQL_SQL92_NUMERIC_VALUE_FUNCTIONS','%SQL_SQL92_PREDICATES','%SQL_SQL92_RELATIONAL_JOIN_OPERATORS','%SQL_SQL92_REVOKE',
-            '%SQL_SQL92_ROW_VALUE_CONSTRUCTOR','%SQL_SQL92_STRING_FUNCTIONS','%SQL_SQL92_VALUE_EXPRESSIONS','%SQL_SQLSTATE_SIZE','%SQL_SQL_CONFORMANCE','%SQL_SQ_COMPARISON','%SQL_SQ_CORRELATED_SUBQUERIES','%SQL_SQ_EXISTS',
-            '%SQL_SQ_IN','%SQL_SQ_QUANTIFIED','%SQL_SRJO_CORRESPONDING_CLAUSE','%SQL_SRJO_CROSS_JOIN','%SQL_SRJO_EXCEPT_JOIN','%SQL_SRJO_FULL_OUTER_JOIN','%SQL_SRJO_INNER_JOIN','%SQL_SRJO_INTERSECT_JOIN',
-            '%SQL_SRJO_LEFT_OUTER_JOIN','%SQL_SRJO_NATURAL_JOIN','%SQL_SRJO_RIGHT_OUTER_JOIN','%SQL_SRJO_UNION_JOIN','%SQL_SRVC_DEFAULT','%SQL_SRVC_NULL','%SQL_SRVC_ROW_SUBQUERY','%SQL_SRVC_VALUE_EXPRESSION',
-            '%SQL_SR_CASCADE','%SQL_SR_DELETE_TABLE','%SQL_SR_GRANT_OPTION_FOR','%SQL_SR_INSERT_COLUMN','%SQL_SR_INSERT_TABLE','%SQL_SR_REFERENCES_COLUMN','%SQL_SR_REFERENCES_TABLE','%SQL_SR_RESTRICT',
-            '%SQL_SR_SELECT_TABLE','%SQL_SR_UPDATE_COLUMN','%SQL_SR_UPDATE_TABLE','%SQL_SR_USAGE_ON_CHARACTER_SET','%SQL_SR_USAGE_ON_COLLATION','%SQL_SR_USAGE_ON_DOMAIN','%SQL_SR_USAGE_ON_TRANSLATION','%SQL_SSF_CONVERT',
-            '%SQL_SSF_LOWER','%SQL_SSF_SUBSTRING','%SQL_SSF_TRANSLATE','%SQL_SSF_TRIM_BOTH','%SQL_SSF_TRIM_LEADING','%SQL_SSF_TRIM_TRAILING','%SQL_SSF_UPPER','%SQL_SS_ADDITIONS',
-            '%SQL_SS_DELETIONS','%SQL_SS_UPDATES','%SQL_STANDARD_CLI_CONFORMANCE','%SQL_STATIC_CURSOR_ATTRIBUTES1','%SQL_STATIC_CURSOR_ATTRIBUTES2','%SQL_STATIC_SENSITIVITY','%SQL_STILL_EXECUTING','%SQL_STRING_FUNCTIONS',
-            '%SQL_SUBQUERIES','%SQL_SUCCESS','%SQL_SUCCESS_WITH_INFO','%SQL_SU_DML_STATEMENTS','%SQL_SU_INDEX_DEFINITION','%SQL_SU_PRIVILEGE_DEFINITION','%SQL_SU_PROCEDURE_INVOCATION','%SQL_SU_TABLE_DEFINITION',
-            '%SQL_SVE_CASE','%SQL_SVE_CAST','%SQL_SVE_COALESCE','%SQL_SVE_NULLIF','%SQL_SYSTEM_FUNCTIONS','%SQL_TABLE_STAT','%SQL_TABLE_TERM','%SQL_TC_ALL',
-            '%SQL_TC_DDL_COMMIT','%SQL_TC_DDL_IGNORE','%SQL_TC_DML','%SQL_TC_NONE','%SQL_TIME','%SQL_TIMEDATE_ADD_INTERVALS','%SQL_TIMEDATE_DIFF_INTERVALS','%SQL_TIMEDATE_FUNCTIONS',
-            '%SQL_TIMESTAMP','%SQL_TIMESTAMP_LEN','%SQL_TIME_LEN','%SQL_TINYINT','%SQL_TRANSACTION_CAPABLE','%SQL_TRANSACTION_ISOLATION_OPTION','%SQL_TRANSACTION_READ_COMMITTED','%SQL_TRANSACTION_READ_UNCOMMITTED',
-            '%SQL_TRANSACTION_REPEATABLE_READ','%SQL_TRANSACTION_SERIALIZABLE','%SQL_TRANSLATE_DLL','%SQL_TRANSLATE_OPTION','%SQL_TRUE','%SQL_TXN_CAPABLE','%SQL_TXN_ISOLATION','%SQL_TXN_ISOLATION_OPTION',
-            '%SQL_TXN_READ_COMMITTED','%SQL_TXN_READ_UNCOMMITTED','%SQL_TXN_REPEATABLE_READ','%SQL_TXN_SERIALIZABLE','%SQL_TYPE_DATE','%SQL_TYPE_NULL','%SQL_TYPE_TIME','%SQL_TYPE_TIMESTAMP',
-            '%SQL_UB_DEFAULT','%SQL_UB_FIXED','%SQL_UB_OFF','%SQL_UB_ON','%SQL_UB_VARIABLE','%SQL_UNBIND','%SQL_UNICODE','%SQL_UNICODE_CHAR',
-            '%SQL_UNICODE_LONGVARCHAR','%SQL_UNICODE_VARCHAR','%SQL_UNION','%SQL_UNION_STATEMENT','%SQL_UNKNOWN_TYPE','%SQL_UNNAMED','%SQL_UNSEARCHABLE','%SQL_UNSIGNED_OFFSET',
-            '%SQL_UNSPECIFIED','%SQL_UPDATE','%SQL_UPDATE_BY_BOOKMARK','%SQL_USER_NAME','%SQL_USE_BOOKMARKS','%SQL_US_UNION','%SQL_US_UNION_ALL','%SQL_U_UNION',
-            '%SQL_U_UNION_ALL','%SQL_VARBINARY','%SQL_VARCHAR','%SQL_XOPEN_CLI_YEAR','%SQL_YEAR','%SQL_YEAR_TO_MONTH','%SRCCOPY','%SS_BITMAP',
-            '%SS_BLACKFRAME','%SS_BLACKRECT','%SS_CENTER','%SS_CENTERIMAGE','%SS_ENDELLIPSIS','%SS_ETCHEDFRAME','%SS_ETCHEDHORZ','%SS_ETCHEDVERT',
-            '%SS_GRAYFRAME','%SS_GRAYRECT','%SS_LEFT','%SS_NOPREFIX','%SS_NOTIFY','%SS_NOWORDWRAP','%SS_PATHELLIPSIS','%SS_RIGHT',
-            '%SS_RIGHTJUST','%SS_SIMPLE','%SS_SUNKEN','%SS_WHITEFRAME','%SS_WHITERECT','%SS_WORDELLIPSIS','%STAT_FILL_FROM_MEMORY','%STAT_FILL_NATURAL',
-            '%STAT_FILL_NATURAL_ERASTONE','%STAT_FILL_NATURAL_EVEN','%STAT_FILL_NATURAL_FIBONACCI','%STAT_FILL_NATURAL_ODD','%STAT_FILL_WITH_NUMBER','%STAT_MINMAX_INDEX','%STAT_MINMAX_VALUE','%STAT_TYPE_BYTE',
-            '%STAT_TYPE_CURRENCY','%STAT_TYPE_DOUBLE','%STAT_TYPE_DWORD','%STAT_TYPE_EXT','%STAT_TYPE_INTEGER','%STAT_TYPE_LONG','%STAT_TYPE_QUAD','%STAT_TYPE_SINGLE',
-            '%STAT_TYPE_WORD','%SWP_ASYNCWINDOWPOS','%SWP_DEFERERASE','%SWP_DRAWFRAME','%SWP_FRAMECHANGED','%SWP_HIDEWINDOW','%SWP_NOACTIVATE','%SWP_NOCOPYBITS',
-            '%SWP_NOMOVE','%SWP_NOOWNERZORDER','%SWP_NOREDRAW','%SWP_NOREPOSITION','%SWP_NOSENDCHANGING','%SWP_NOSIZE','%SWP_NOZORDER','%SWP_SHOWWINDOW',
-            '%SW_FORCEMINIMIZE','%SW_HIDE','%SW_MAXIMIZE','%SW_MINIMIZE','%SW_NORMAL','%SW_RESTORE','%SW_SHOW','%SW_SHOWDEFAULT',
-            '%SW_SHOWMAXIMIZED','%SW_SHOWMINIMIZED','%SW_SHOWMINNOACTIVE','%SW_SHOWNA','%SW_SHOWNOACTIVATE','%SW_SHOWNORMAL','%TBASS_3DALG_DEFAULT','%TBASS_3DALG_FULL',
-            '%TBASS_3DALG_LIGHT','%TBASS_3DALG_OFF','%TBASS_3DMODE_NORMAL','%TBASS_3DMODE_OFF','%TBASS_3DMODE_RELATIVE','%TBASS_ACTIVE_PAUSED','%TBASS_ACTIVE_PLAYING','%TBASS_ACTIVE_STALLED',
-            '%TBASS_ACTIVE_STOPPED','%TBASS_CONFIG_3DALGORITHM','%TBASS_CONFIG_BUFFER','%TBASS_CONFIG_CURVE_PAN','%TBASS_CONFIG_CURVE_VOL','%TBASS_CONFIG_FLOATDSP','%TBASS_CONFIG_GVOL_MUSIC','%TBASS_CONFIG_GVOL_SAMPLE',
-            '%TBASS_CONFIG_GVOL_STREAM','%TBASS_CONFIG_MAXVOL','%TBASS_CONFIG_MP3_CODEC','%TBASS_CONFIG_NET_AGENT','%TBASS_CONFIG_NET_BUFFER','%TBASS_CONFIG_NET_PASSIVE','%TBASS_CONFIG_NET_PREBUF','%TBASS_CONFIG_NET_PROXY',
-            '%TBASS_CONFIG_NET_TIMEOUT','%TBASS_CONFIG_PAUSE_NOPLAY','%TBASS_CONFIG_UPDATEPERIOD','%TBASS_CTYPE_MUSIC_IT','%TBASS_CTYPE_MUSIC_MO3','%TBASS_CTYPE_MUSIC_MOD','%TBASS_CTYPE_MUSIC_MTM','%TBASS_CTYPE_MUSIC_S3M',
-            '%TBASS_CTYPE_MUSIC_XM','%TBASS_CTYPE_RECORD','%TBASS_CTYPE_SAMPLE','%TBASS_CTYPE_STREAM','%TBASS_CTYPE_STREAM_AIFF','%TBASS_CTYPE_STREAM_MP1','%TBASS_CTYPE_STREAM_MP2','%TBASS_CTYPE_STREAM_MP3',
-            '%TBASS_CTYPE_STREAM_OGG','%TBASS_CTYPE_STREAM_WAV','%TBASS_CTYPE_STREAM_WAV_FLOAT','%TBASS_CTYPE_STREAM_WAV_PCM','%TBASS_DATA_AVAILABLE','%TBASS_DATA_FFT1024','%TBASS_DATA_FFT2048','%TBASS_DATA_FFT4096',
-            '%TBASS_DATA_FFT512','%TBASS_DATA_FFT_INDIVIDUAL','%TBASS_DATA_FFT_NOWINDOW','%TBASS_DATA_FLOAT','%TBASS_DEVICE_3D','%TBASS_DEVICE_8BITS','%TBASS_DEVICE_LATENCY','%TBASS_DEVICE_MONO',
-            '%TBASS_DEVICE_NOSPEAKER','%TBASS_DEVICE_SPEAKERS','%TBASS_EAX_ENVIRONMENT_ALLEY','%TBASS_EAX_ENVIRONMENT_ARENA','%TBASS_EAX_ENVIRONMENT_AUDITORIUM','%TBASS_EAX_ENVIRONMENT_BATHROOM','%TBASS_EAX_ENVIRONMENT_CARPETEDHALLWAY','%TBASS_EAX_ENVIRONMENT_CAVE',
-            '%TBASS_EAX_ENVIRONMENT_CITY','%TBASS_EAX_ENVIRONMENT_CONCERTHALL','%TBASS_EAX_ENVIRONMENT_COUNT','%TBASS_EAX_ENVIRONMENT_DIZZY','%TBASS_EAX_ENVIRONMENT_DRUGGED','%TBASS_EAX_ENVIRONMENT_FOREST','%TBASS_EAX_ENVIRONMENT_GENERIC','%TBASS_EAX_ENVIRONMENT_HALLWAY',
-            '%TBASS_EAX_ENVIRONMENT_HANGAR','%TBASS_EAX_ENVIRONMENT_LIVINGROOM','%TBASS_EAX_ENVIRONMENT_MOUNTAINS','%TBASS_EAX_ENVIRONMENT_PADDEDCELL','%TBASS_EAX_ENVIRONMENT_PARKINGLOT','%TBASS_EAX_ENVIRONMENT_PLAIN','%TBASS_EAX_ENVIRONMENT_PSYCHOTIC','%TBASS_EAX_ENVIRONMENT_QUARRY',
-            '%TBASS_EAX_ENVIRONMENT_ROOM','%TBASS_EAX_ENVIRONMENT_SEWERPIPE','%TBASS_EAX_ENVIRONMENT_STONECORRIDOR','%TBASS_EAX_ENVIRONMENT_STONEROOM','%TBASS_EAX_ENVIRONMENT_UNDERWATER','%TBASS_ERROR_ALREADY','%TBASS_ERROR_BUFLOST','%TBASS_ERROR_CODEC',
-            '%TBASS_ERROR_CREATE','%TBASS_ERROR_DECODE','%TBASS_ERROR_DEVICE','%TBASS_ERROR_DRIVER','%TBASS_ERROR_DX','%TBASS_ERROR_EMPTY','%TBASS_ERROR_FILEFORM','%TBASS_ERROR_FILEOPEN',
-            '%TBASS_ERROR_FORMAT','%TBASS_ERROR_FREQ','%TBASS_ERROR_HANDLE','%TBASS_ERROR_ILLPARAM','%TBASS_ERROR_ILLTYPE','%TBASS_ERROR_INIT','%TBASS_ERROR_MEM','%TBASS_ERROR_NO3D',
-            '%TBASS_ERROR_NOCHAN','%TBASS_ERROR_NOEAX','%TBASS_ERROR_NOFX','%TBASS_ERROR_NOHW','%TBASS_ERROR_NONET','%TBASS_ERROR_NOPAUSE','%TBASS_ERROR_NOPLAY','%TBASS_ERROR_NOTAVAIL',
-            '%TBASS_ERROR_NOTFILE','%TBASS_ERROR_PLAYING','%TBASS_ERROR_POSITION','%TBASS_ERROR_SPEAKER','%TBASS_ERROR_START','%TBASS_ERROR_TIMEOUT','%TBASS_ERROR_UNKNOWN','%TBASS_ERROR_VERSION',
-            '%TBASS_FALSE','%TBASS_FILEPOS_CURRENT','%TBASS_FILEPOS_DECODE','%TBASS_FILEPOS_DOWNLOAD','%TBASS_FILEPOS_END','%TBASS_FILEPOS_START','%TBASS_FILE_CLOSE','%TBASS_FILE_LEN',
-            '%TBASS_FILE_READ','%TBASS_FILE_SEEK','%TBASS_FX_CHORUS','%TBASS_FX_COMPRESSOR','%TBASS_FX_DISTORTION','%TBASS_FX_ECHO','%TBASS_FX_FLANGER','%TBASS_FX_GARGLE',
-            '%TBASS_FX_I3DL2REVERB','%TBASS_FX_PARAMEQ','%TBASS_FX_PHASE_180','%TBASS_FX_PHASE_90','%TBASS_FX_PHASE_NEG_180','%TBASS_FX_PHASE_NEG_90','%TBASS_FX_PHASE_ZERO','%TBASS_FX_REVERB',
-            '%TBASS_INPUT_LEVEL','%TBASS_INPUT_OFF','%TBASS_INPUT_ON','%TBASS_INPUT_TYPE_ANALOG','%TBASS_INPUT_TYPE_AUX','%TBASS_INPUT_TYPE_CD','%TBASS_INPUT_TYPE_DIGITAL','%TBASS_INPUT_TYPE_LINE',
-            '%TBASS_INPUT_TYPE_MASK','%TBASS_INPUT_TYPE_MIC','%TBASS_INPUT_TYPE_PHONE','%TBASS_INPUT_TYPE_SPEAKER','%TBASS_INPUT_TYPE_SYNTH','%TBASS_INPUT_TYPE_UNDEF','%TBASS_INPUT_TYPE_WAVE','%TBASS_MP3_SETPOS',
-            '%TBASS_MUSIC_3D','%TBASS_MUSIC_ATTRIB_AMPLIFY','%TBASS_MUSIC_ATTRIB_BPM','%TBASS_MUSIC_ATTRIB_PANSEP','%TBASS_MUSIC_ATTRIB_PSCALER','%TBASS_MUSIC_ATTRIB_SPEED','%TBASS_MUSIC_ATTRIB_VOL_CHAN','%TBASS_MUSIC_ATTRIB_VOL_GLOBAL',
-            '%TBASS_MUSIC_ATTRIB_VOL_INST','%TBASS_MUSIC_AUTOFREE','%TBASS_MUSIC_CALCLEN','%TBASS_MUSIC_DECODE','%TBASS_MUSIC_FLOAT','%TBASS_MUSIC_FT2MOD','%TBASS_MUSIC_FX','%TBASS_MUSIC_LOOP',
-            '%TBASS_MUSIC_MONO','%TBASS_MUSIC_NONINTER','%TBASS_MUSIC_NOSAMPLE','%TBASS_MUSIC_POSRESET','%TBASS_MUSIC_POSRESETEX','%TBASS_MUSIC_PRESCAN','%TBASS_MUSIC_PT1MOD','%TBASS_MUSIC_RAMP',
-            '%TBASS_MUSIC_RAMPS','%TBASS_MUSIC_STOPBACK','%TBASS_MUSIC_SURROUND','%TBASS_MUSIC_SURROUND2','%TBASS_OBJECT_DS','%TBASS_OBJECT_DS3DL','%TBASS_OK','%TBASS_RECORD_PAUSE',
-            '%TBASS_SAMPLE_3D','%TBASS_SAMPLE_8BITS','%TBASS_SAMPLE_FLOAT','%TBASS_SAMPLE_FX','%TBASS_SAMPLE_LOOP','%TBASS_SAMPLE_MONO','%TBASS_SAMPLE_MUTEMAX','%TBASS_SAMPLE_OVER_DIST',
-            '%TBASS_SAMPLE_OVER_POS','%TBASS_SAMPLE_OVER_VOL','%TBASS_SAMPLE_SOFTWARE','%TBASS_SAMPLE_VAM','%TBASS_SLIDE_FREQ','%TBASS_SLIDE_PAN','%TBASS_SLIDE_VOL','%TBASS_SPEAKER_CENLFE',
-            '%TBASS_SPEAKER_CENTER','%TBASS_SPEAKER_FRONT','%TBASS_SPEAKER_FRONTLEFT','%TBASS_SPEAKER_FRONTRIGHT','%TBASS_SPEAKER_LEFT','%TBASS_SPEAKER_LFE','%TBASS_SPEAKER_REAR','%TBASS_SPEAKER_REAR2',
-            '%TBASS_SPEAKER_REAR2LEFT','%TBASS_SPEAKER_REAR2RIGHT','%TBASS_SPEAKER_REARLEFT','%TBASS_SPEAKER_REARRIGHT','%TBASS_SPEAKER_RIGHT','%TBASS_STREAMPROC_END','%TBASS_STREAM_AUTOFREE','%TBASS_STREAM_BLOCK',
-            '%TBASS_STREAM_DECODE','%TBASS_STREAM_PRESCAN','%TBASS_STREAM_RESTRATE','%TBASS_STREAM_STATUS','%TBASS_SYNC_DOWNLOAD','%TBASS_SYNC_END','%TBASS_SYNC_FREE','%TBASS_SYNC_MESSAGE',
-            '%TBASS_SYNC_META','%TBASS_SYNC_MIXTIME','%TBASS_SYNC_MUSICFX','%TBASS_SYNC_MUSICINST','%TBASS_SYNC_MUSICPOS','%TBASS_SYNC_ONETIME','%TBASS_SYNC_POS','%TBASS_SYNC_SLIDE',
-            '%TBASS_SYNC_STALL','%TBASS_TAG_HTTP','%TBASS_TAG_ICY','%TBASS_TAG_ID3','%TBASS_TAG_ID3V2','%TBASS_TAG_META','%TBASS_TAG_MUSIC_INST','%TBASS_TAG_MUSIC_MESSAGE',
-            '%TBASS_TAG_MUSIC_NAME','%TBASS_TAG_MUSIC_SAMPLE','%TBASS_TAG_OGG','%TBASS_TAG_RIFF_INFO','%TBASS_TAG_VENDOR','%TBASS_TRUE','%TBASS_UNICODE','%TBASS_VAM_HARDWARE',
-            '%TBASS_VAM_SOFTWARE','%TBASS_VAM_TERM_DIST','%TBASS_VAM_TERM_PRIO','%TBASS_VAM_TERM_TIME','%TBASS_VERSION','%TBCD_CHANNEL','%TBCD_THUMB','%TBCD_TICS',
-            '%TBGL_ALIGN_CENTER','%TBGL_ALIGN_CENTER_CENTER','%TBGL_ALIGN_CENTER_DOWN','%TBGL_ALIGN_CENTER_UP','%TBGL_ALIGN_LEFT','%TBGL_ALIGN_LEFT_CENTER','%TBGL_ALIGN_LEFT_DOWN','%TBGL_ALIGN_LEFT_UP',
-            '%TBGL_ALIGN_RIGHT','%TBGL_ALIGN_RIGHT_CENTER','%TBGL_ALIGN_RIGHT_DOWN','%TBGL_ALIGN_RIGHT_UP','%TBGL_ALWAYS','%TBGL_EQUAL','%TBGL_ERROR_FILE','%TBGL_ERROR_MSGBOX',
-            '%TBGL_ERROR_NONE','%TBGL_GEQUAL','%TBGL_GREATER','%TBGL_LEQUAL','%TBGL_LESS','%TBGL_LIGHT_AMBIENT','%TBGL_LIGHT_CONSTANT_ATTENUATION','%TBGL_LIGHT_DIFFUSE',
-            '%TBGL_LIGHT_LINEAR_ATTENUATION','%TBGL_LIGHT_POSITION','%TBGL_LIGHT_QUADRATIC_ATTENUATION','%TBGL_LIGHT_SPECULAR','%TBGL_LIGHT_SPOT_CUTOFF','%TBGL_LIGHT_SPOT_DIRECTION','%TBGL_LIGHT_SPOT_EXPONENT','%TBGL_M15B',
-            '%TBGL_M15G','%TBGL_M15LAYER','%TBGL_M15PSTOP','%TBGL_M15R','%TBGL_M15TEXN','%TBGL_M15TEXX','%TBGL_M15TEXY','%TBGL_M15X',
-            '%TBGL_M15Y','%TBGL_M15Z','%TBGL_NEVER','%TBGL_NORMAL_NONE','%TBGL_NORMAL_PRECISE','%TBGL_NORMAL_SMOOTH','%TBGL_NOTEQUAL','%TBGL_OBJ_CUBE',
-            '%TBGL_OBJ_CUBE3','%TBGL_OBJ_CYLINDER','%TBGL_OBJ_SPHERE','%TBGL_PINFO_RGB','%TBGL_PINFO_XYZ','%TBGL_TEX_LINEAR','%TBGL_TEX_MIPMAP','%TBGL_TEX_NEAREST',
-            '%TBM_CLEARSEL','%TBM_CLEARTICS','%TBM_GETBUDDY','%TBM_GETCHANNELRECT','%TBM_GETLINESIZE','%TBM_GETNUMTICS','%TBM_GETPAGESIZE','%TBM_GETPOS',
-            '%TBM_GETPTICS','%TBM_GETRANGEMAX','%TBM_GETRANGEMIN','%TBM_GETSELEND','%TBM_GETSELSTART','%TBM_GETTHUMBLENGTH','%TBM_GETTHUMBRECT','%TBM_GETTIC',
-            '%TBM_GETTICPOS','%TBM_GETTOOLTIPS','%TBM_GETUNICODEFORMAT','%TBM_SETBUDDY','%TBM_SETLINESIZE','%TBM_SETPAGESIZE','%TBM_SETPOS','%TBM_SETRANGE',
-            '%TBM_SETRANGEMAX','%TBM_SETRANGEMIN','%TBM_SETSEL','%TBM_SETSELEND','%TBM_SETSELSTART','%TBM_SETTHUMBLENGTH','%TBM_SETTIC','%TBM_SETTICFREQ',
-            '%TBM_SETTIPSIDE','%TBM_SETTOOLTIPS','%TBM_SETUNICODEFORMAT','%TBS_AUTOTICKS','%TBS_BOTH','%TBS_BOTTOM','%TBS_DOWNISLEFT','%TBS_ENABLESELRANGE',
-            '%TBS_FIXEDLENGTH','%TBS_HORZ','%TBS_LEFT','%TBS_NOTHUMB','%TBS_NOTICKS','%TBS_REVERSED','%TBS_RIGHT','%TBS_TOOLTIPS',
-            '%TBS_TOP','%TBS_VERT','%TBTS_BOTTOM','%TBTS_LEFT','%TBTS_RIGHT','%TBTS_TOP','%TB_%VT_BSTR','%TB_%VT_CY',
-            '%TB_%VT_DATE','%TB_%VT_EMPTY','%TB_%VT_I2','%TB_%VT_I4','%TB_%VT_NULL','%TB_%VT_R4','%TB_%VT_R8','%TB_BOTTOM',
-            '%TB_CLASS_E_NOAGGREGATION','%TB_CO_E_CLASSSTRING','%TB_DISPATCH_METHOD','%TB_DISPATCH_PROPERTYGET','%TB_DISPATCH_PROPERTYPUT','%TB_DISPATCH_PROPERTYPUTREF','%TB_ENDTRACK','%TB_E_INVALIDARG',
-            '%TB_E_NOINTERFACE','%TB_E_OUTOFMEMORY','%TB_IMGCTX_ACTUALSIZE','%TB_IMGCTX_AUTOSIZE','%TB_IMGCTX_FITTOHEIGHT','%TB_IMGCTX_FITTOWIDTH','%TB_IMGCTX_STRETCH','%TB_LINEDOWN',
-            '%TB_LINEUP','%TB_MK_E_CONNECTMANUALLY','%TB_MK_E_EXCEEDEDDEADLINE','%TB_MK_E_INTERMEDIATEINTERFACENOTSUPPORTED','%TB_MK_E_NOOBJECT','%TB_MK_E_SYNTAX','%TB_PAGEDOWN','%TB_PAGEUP',
-            '%TB_REGDB_E_CLASSNOTREG','%TB_REGDB_E_WRITEREGDB','%TB_SIZEOF_TBVARIANT','%TB_S_FALSE','%TB_S_OK','%TB_THUMBPOSITION','%TB_THUMBTRACK','%TB_TOP',
-            '%TCM_FIRST','%TCM_GETCURSEL','%TCN_FOCUSCHANGE','%TCN_GETOBJECT','%TCN_SELCHANGE','%TCN_SELCHANGING','%TCS_BOTTOM','%TCS_BUTTONS',
-            '%TCS_EX_FLATSEPARATORS','%TCS_EX_REGISTERDROP','%TCS_FIXEDWIDTH','%TCS_FLATBUTTONS','%TCS_FOCUSNEVER','%TCS_FOCUSONBUTTONDOWN','%TCS_FORCEICONLEFT','%TCS_FORCELABELLEFT',
-            '%TCS_HOTTRACK','%TCS_MULTILINE','%TCS_MULTISELECT','%TCS_OWNERDRAWFIXED','%TCS_RAGGEDRIGHT','%TCS_RIGHT','%TCS_RIGHTJUSTIFY','%TCS_SCROLLOPPOSITE',
-            '%TCS_SINGLELINE','%TCS_TABS','%TCS_TOOLTIPS','%TCS_VERTICAL','%TM_PLAINTEXT','%TM_RICHTEXT','%TOKENIZER_DEFAULT_ALPHA','%TOKENIZER_DEFAULT_DELIM',
-            '%TOKENIZER_DEFAULT_DQUOTE','%TOKENIZER_DEFAULT_NEWLINE','%TOKENIZER_DEFAULT_NUMERIC','%TOKENIZER_DEFAULT_SPACE','%TOKENIZER_DELIMITER','%TOKENIZER_EOL','%TOKENIZER_ERROR','%TOKENIZER_FINISHED',
-            '%TOKENIZER_NUMBER','%TOKENIZER_QUOTE','%TOKENIZER_STRING','%TOKENIZER_UNDEFTOK','%TRUE','%TV_FIRST','%UDM_GETACCEL','%UDM_GETBASE',
-            '%UDM_GETBUDDY','%UDM_GETPOS','%UDM_GETPOS32','%UDM_GETRANGE','%UDM_GETRANGE32','%UDM_GETUNICODEFORMAT','%UDM_SETACCEL','%UDM_SETBASE',
-            '%UDM_SETBUDDY','%UDM_SETPOS','%UDM_SETPOS32','%UDM_SETRANGE','%UDM_SETRANGE32','%UDM_SETUNICODEFORMAT','%UDS_ALIGNLEFT','%UDS_ALIGNRIGHT',
-            '%UDS_ARROWKEYS','%UDS_AUTOBUDDY','%UDS_HORZ','%UDS_HOTTRACK','%UDS_NOTHOUSANDS','%UDS_SETBUDDYINT','%UDS_WRAP','%UD_MAXVAL',
-            '%UD_MINVAL','%VK_0','%VK_1','%VK_2','%VK_3','%VK_4','%VK_5','%VK_6',
-            '%VK_7','%VK_8','%VK_9','%VK_A','%VK_ACCEPT','%VK_ADD','%VK_APPS','%VK_B',
-            '%VK_BACK','%VK_C','%VK_CANCEL','%VK_CAPITAL','%VK_CLEAR','%VK_CONTROL','%VK_CONVERT','%VK_D',
-            '%VK_DECIMAL','%VK_DELETE','%VK_DIVIDE','%VK_DOWN','%VK_E','%VK_END','%VK_ESCAPE','%VK_EXECUTE',
-            '%VK_F','%VK_F1','%VK_F10','%VK_F11','%VK_F12','%VK_F13','%VK_F14','%VK_F15',
-            '%VK_F16','%VK_F17','%VK_F18','%VK_F19','%VK_F2','%VK_F20','%VK_F21','%VK_F22',
-            '%VK_F23','%VK_F24','%VK_F3','%VK_F4','%VK_F5','%VK_F6','%VK_F7','%VK_F8',
-            '%VK_F9','%VK_FINAL','%VK_G','%VK_H','%VK_HANGEUL','%VK_HANGUL','%VK_HANJA','%VK_HELP',
-            '%VK_HOME','%VK_I','%VK_INSERT','%VK_J','%VK_JUNJA','%VK_K','%VK_KANA','%VK_KANJI',
-            '%VK_L','%VK_LBUTTON','%VK_LEFT','%VK_LINEFEED','%VK_LWIN','%VK_M','%VK_MBUTTON','%VK_MENU',
-            '%VK_MODECHANGE','%VK_MULTIPLY','%VK_N','%VK_NEXT','%VK_NONCONVERT','%VK_NUMLOCK','%VK_NUMPAD0','%VK_NUMPAD1',
-            '%VK_NUMPAD2','%VK_NUMPAD3','%VK_NUMPAD4','%VK_NUMPAD5','%VK_NUMPAD6','%VK_NUMPAD7','%VK_NUMPAD8','%VK_NUMPAD9',
-            '%VK_O','%VK_P','%VK_PAUSE','%VK_PGDN','%VK_PGUP','%VK_PRINT','%VK_PRIOR','%VK_Q',
-            '%VK_R','%VK_RBUTTON','%VK_RETURN','%VK_RIGHT','%VK_RWIN','%VK_S','%VK_SCROLL','%VK_SELECT',
-            '%VK_SEPARATOR','%VK_SHIFT','%VK_SLEEP','%VK_SNAPSHOT','%VK_SPACE','%VK_SUBTRACT','%VK_T','%VK_TAB',
-            '%VK_U','%VK_UP','%VK_V','%VK_W','%VK_X','%VK_XBUTTON1','%VK_XBUTTON2','%VK_Y',
-            '%VK_Z','%VT_ARRAY','%VT_BLOB','%VT_BLOB_OBJECT','%VT_BOOL','%VT_BSTR','%VT_BYREF','%VT_CARRAY',
-            '%VT_CF','%VT_CLSID','%VT_CY','%VT_DATE','%VT_DISPATCH','%VT_EMPTY','%VT_ERROR','%VT_FILETIME',
-            '%VT_HRESULT','%VT_I1','%VT_I2','%VT_I4','%VT_I8','%VT_INT','%VT_LPSTR','%VT_LPWSTR',
-            '%VT_NULL','%VT_PTR','%VT_R4','%VT_R8','%VT_RECORD','%VT_RESERVED','%VT_SAFEARRAY','%VT_STORAGE',
-            '%VT_STORED_OBJECT','%VT_STREAM','%VT_STREAMED_OBJECT','%VT_UI1','%VT_UI2','%VT_UI4','%VT_UI8','%VT_UINT',
-            '%VT_UNKNOWN','%VT_USERDEFINED','%VT_VARIANT','%VT_VECTOR','%VT_VOID','%WAVE_FORMAT_1M08','%WAVE_FORMAT_1M16','%WAVE_FORMAT_1S08',
-            '%WAVE_FORMAT_1S16','%WAVE_FORMAT_2M08','%WAVE_FORMAT_2M16','%WAVE_FORMAT_2S08','%WAVE_FORMAT_2S16','%WAVE_FORMAT_4M08','%WAVE_FORMAT_4M16','%WAVE_FORMAT_4S08',
-            '%WAVE_FORMAT_4S16','%WBF_CUSTOM','%WBF_LEVEL1','%WBF_LEVEL2','%WBF_OVERFLOW','%WBF_WORDBREAK','%WBF_WORDWRAP','%WHITE',
-            '%WIN_FINDTITLECONTAIN','%WIN_FINDTITLEEND','%WIN_FINDTITLEEQUAL','%WIN_FINDTITLESTART','%WM_ACTIVATE','%WM_ACTIVATEAPP','%WM_CAPTURECHANGED','%WM_CHAR',
-            '%WM_CLOSE','%WM_COMMAND','%WM_DESTROY','%WM_DROPFILES','%WM_ERASEBKGND','%WM_GETTEXTLENGTH','%WM_HOTKEY','%WM_HSCROLL',
-            '%WM_IDLE','%WM_INITDIALOG','%WM_KEYDOWN','%WM_KEYUP','%WM_KILLFOCUS','%WM_LBUTTONDBLCLK','%WM_LBUTTONDOWN','%WM_LBUTTONUP',
-            '%WM_MBUTTONDBLCLK','%WM_MBUTTONDOWN','%WM_MBUTTONUP','%WM_MOUSEFIRST','%WM_MOUSEMOVE','%WM_MOUSEWHEEL','%WM_MOVE','%WM_MOVING',
-            '%WM_NCLBUTTONDOWN','%WM_NCRBUTTONDOWN','%WM_NEXTDLGCTL','%WM_NOTIFY','%WM_PAINT','%WM_QUIT','%WM_RBUTTONDBLCLK','%WM_RBUTTONDOWN',
-            '%WM_RBUTTONUP','%WM_SETFOCUS','%WM_SETFONT','%WM_SETTEXT','%WM_SIZE','%WM_SIZING','%WM_SYSCOMMAND','%WM_TIMER',
-            '%WM_USER','%WM_VSCROLL','%WS_BORDER','%WS_CAPTION','%WS_CHILD','%WS_CLIPCHILDREN','%WS_CLIPSIBLINGS','%WS_DISABLED',
-            '%WS_DLGFRAME','%WS_EX_ACCEPTFILES','%WS_EX_APPWINDOW','%WS_EX_CLIENTEDGE','%WS_EX_CONTEXTHELP','%WS_EX_CONTROLPARENT','%WS_EX_LAYERED','%WS_EX_LEFT',
-            '%WS_EX_LEFTSCROLLBAR','%WS_EX_LTRREADING','%WS_EX_MDICHILD','%WS_EX_NOPARENTNOTIFY','%WS_EX_OVERLAPPEDWINDOW','%WS_EX_PALETTEWINDOW','%WS_EX_RIGHT','%WS_EX_RIGHTSCROLLBAR',
-            '%WS_EX_RTLREADING','%WS_EX_STATICEDGE','%WS_EX_TOOLWINDOW','%WS_EX_TOPMOST','%WS_EX_TRANSPARENT','%WS_EX_WINDOWEDGE','%WS_GROUP','%WS_HSCROLL',
-            '%WS_ICONIC','%WS_MAXIMIZE','%WS_MAXIMIZEBOX','%WS_MINIMIZE','%WS_MINIMIZEBOX','%WS_OVERLAPPEDWINDOW','%WS_POPUP','%WS_POPUPWINDOW',
-            '%WS_SYSMENU','%WS_TABSTOP','%WS_THICKFRAME','%WS_VISIBLE','%WS_VSCROLL','%YELLOW','%ZERO','CRLF',
-            'FALSE','M_E','M_PI','NULL','TAB','TRUE'
-            )
-        ),
-    'SYMBOLS' => array(
-        '(', ')', '{', '}', '[', ']', '=', '+', '-', '*', '/', '!', '%', '^', '&', ':'
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false,
-        2 => false
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #0000FF; font-weight: bold;',
-            2 => 'color: #993333; font-style: italic; font-weight: bold;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #008000;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #333333;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #800080;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #CC0000;'
-            ),
-        'METHODS' => array(
-            1 => 'color: #66cc66;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #333333;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #000099;'
-            ),
-        'SCRIPT' => array(
-            ),
-        'REGEXPS' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => ''
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(
-        1 => '_'
-        ),
-    'REGEXPS' => array(
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/tsql.php b/wiki/vendor/geshi/geshi/src/geshi/tsql.php
deleted file mode 100644
index e333c97..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/tsql.php
+++ /dev/null
@@ -1,819 +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.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/wiki/vendor/geshi/geshi/src/geshi/twig.php b/wiki/vendor/geshi/geshi/src/geshi/twig.php
deleted file mode 100644
index 2936e0f..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/twig.php
+++ /dev/null
@@ -1,286 +0,0 @@
-<?php
-/*************************************************************************************
- * twig.php
- * ----------
- * Author: Keyvan Akbary (keyvan@kiwwito.com)
- * Copyright: (c) 2011 Keyvan Akbary (http://www.kiwwito.com/)
- * Release Version: 1.0.9.0
- * Date Started: 2011/12/05
- *
- * Twig template language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2012/09/28 (1.9.0 by José Andrés Puertas y Javier Eguiluz)
- *   - 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
- *
- * 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' => 'Twig',
-    'COMMENT_SINGLE' => array(),
-    'COMMENT_MULTI' => array('{#' => '#}'),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array("'", '"'),
-    'ESCAPE_CHAR' => '',
-    'KEYWORDS' => 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'
-        ),
-        //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',
-            'replace',
-            'reverse',
-            'slice',
-            'sort',
-            'split',
-            'striptags',
-            'title',
-            'trim',
-            'upper',
-            'url_encode'
-        ),
-        //Functions
-        3 => array(
-            'attribute',
-            'cycle',
-            'dump',
-            'parent',
-            'random',
-            'range',
-            'source',
-            'template_from_string'
-        ),
-        //Tests
-        4 => array(
-            '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'
-        )
-    ),
-    'SYMBOLS' => array(
-        '{{',
-        '}}',
-        '{%',
-        '%}',
-        '+',
-        '-',
-        '/',
-        '/',
-        '*',
-        '**', //Math operators
-        '==',
-        '!=',
-        '<',
-        '>',
-        '>=',
-        '<=',
-        '===', //Logic operators
-        '..',
-        '|',
-        '~',
-        '[',
-        ']',
-        '.',
-        '?',
-        ':',
-        '(',
-        ')', //Other
-        '=' //HTML (attributes)
-    ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        //Twig
-        1 => true,
-        2 => true,
-        3 => true,
-        4 => true,
-        5 => true
-    ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #0600FF;', //Tags
-            2 => 'color: #008000;', //Filters
-            3 => 'color: #0600FF;', //Functions
-            4 => 'color: #804040;', //Tests
-            5 => 'color: #008000;'
-        ),
-        'COMMENTS' => array(
-            'MULTI' => 'color: #008080; font-style: italic;'
-        ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #000099; font-weight: bold;'
-        ),
-        'BRACKETS' => array(
-            0 => 'color: #D36900;'
-        ),
-        'STRINGS' => array(
-            0 => 'color: #ff0000;'
-        ),
-        'NUMBERS' => array(
-            0 => 'color: #cc66cc;'
-        ),
-        'METHODS' => array(
-            1 => 'color: #006600;'
-        ),
-        'SYMBOLS' => array(
-            0 => 'color: #D36900;'
-        ),
-        'SCRIPT' => array(
-            0 => '',
-            1 => 'color: #808080; font-style: italic;',
-            2 => 'color: #009000;'
-        ),
-        'REGEXPS' => array(
-            0 => 'color: #00aaff;',
-            1 => 'color: #00aaff;'
-        )
-    ),
-    'URLS' => array(
-        1 => 'http://twig.sensiolabs.org/doc/tags/{FNAMEL}.html',
-        2 => 'http://twig.sensiolabs.org/doc/filters/{FNAMEL}.html',
-        3 => 'http://twig.sensiolabs.org/doc/functions/{FNAMEL}.html',
-        4 => 'http://twig.sensiolabs.org/doc/tests/{FNAMEL}.html',
-        5 => '',
-    ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(
-        1 => '.',
-    ),
-    'REGEXPS' => array(
-        0 => array(
-            GESHI_SEARCH => "([[:space:]])([a-zA-Z_][a-zA-Z0-9_]*)",
-            GESHI_REPLACE => '\\2',
-            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(
-        0 => true,
-        1 => true,
-        2 => true
-    ),
-    'PARSER_CONTROL' => array(
-        'KEYWORDS' => array()
-    )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/typoscript.php b/wiki/vendor/geshi/geshi/src/geshi/typoscript.php
deleted file mode 100644
index c52ba91..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/typoscript.php
+++ /dev/null
@@ -1,298 +0,0 @@
-<?php
-/*************************************************************************************
- * typoscript.php
- * --------
- * Author: Jan-Philipp Halle (typo3@jphalle.de)
- * Copyright: (c) 2005 Jan-Philipp Halle (http://www.jphalle.de/)
- * Release Version: 1.0.9.0
- * Date Started: 2005/07/29
- *
- * TypoScript language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2008/07/11 (1.0.8)
- * - Michiel Roos <geshi@typofree.org> Complete rewrite
- * 2005/07/29 (1.0.0)
- *  -  First Release
- *
- * TODO (updated 2004/07/14)
- * -------------------------
- * <things-to-do>
- *
- *************************************************************************************
- *
- *     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' => 'TypoScript',
-    'COMMENT_SINGLE' => array(1  => '//'),
-    'COMMENT_MULTI' => array('/*' => '*/'),
-    'COMMENT_REGEXP' => array(2 => '/(?<!(#|\'|"))(?:#(?!(?:[a-fA-F0-9]{6}|[a-fA-F0-9]{3}))[^\n#]+|#{2}[^\n#]+|#{7,999}[^\n]+)/'),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array(),
-    'ESCAPE_CHAR' => '',
-    'KEYWORDS' => array(
-        // Conditions: http://documentation.typo3.org/documentation/tsref/conditions/
-        1 => array(
-            'browser', 'compatVersion', 'dayofmonth', 'dayofweek', 'device',
-            'globalString', 'globalVars', 'hostname', 'hour',
-            'ip', 'language', 'loginUser', 'loginuser', 'minute',
-            'month', 'PIDinRootline', 'PIDupinRootline',
-            'system', 'treelevel', 'useragent', 'userFunc',
-            'usergroup', 'version'
-            ),
-
-        // Functions: http://documentation.typo3.org/documentation/tsref/functions/
-        2 => array(
-            'addParams', 'encapsLines', 'filelink', 'HTMLparser',
-            'HTMLparser_tags', 'if', 'imageLinkWrap',
-            'imgResource', 'makelinks', 'numRows', 'parseFunc',
-            'select', 'split', 'stdWrap', 'tableStyle', 'tags',
-            'textStyle', 'typolink'
-            ),
-
-        // Toplevel objects: http://documentation.typo3.org/documentation/tsref/tlo-objects/
-        3 => array(
-            'CARRAY', 'CONFIG', 'CONSTANTS', 'FE_DATA', 'FE_TABLE', 'FRAME',
-            'FRAMESET', 'META', 'PAGE', 'plugin'
-            ),
-
-        // Content Objects (cObject) : http://documentation.typo3.org/documentation/tsref/cobjects/
-        4 => array(
-            'CASE', 'CLEARGIF', 'COA', 'COA_INT', 'COBJ_ARRAY', 'COLUMNS',
-            'CONTENT', 'CTABLE', 'EDITPANEL', 'FILE', 'FORM',
-            'HMENU', 'HRULER', 'HTML', 'IMAGE', 'IMGTEXT',
-            'IMG_RESOURCE', 'LOAD_REGISTER', 'MULTIMEDIA',
-            'OTABLE', 'PHP_SCRIPT', 'PHP_SCRIPT_EXT',
-            'PHP_SCRIPT_INT', 'RECORDS', 'RESTORE_REGISTER',
-            'SEARCHRESULT', 'TEMPLATE', 'TEXT', 'USER',
-            'USER_INT'
-            ),
-
-        // GIFBUILDER toplevel link: http://documentation.typo3.org/documentation/tsref/gifbuilder/
-        5 => array(
-            'GIFBUILDER',
-            ),
-
-        // GIFBUILDER: http://documentation.typo3.org/documentation/tsref/gifbuilder/
-        // skipped fields: IMAGE, TEXT
-        // NOTE! the IMAGE and TEXT field already are linked in group 4, they
-        // cannot be linked twice . . . . unfortunately
-        6 => array(
-            'ADJUST', 'BOX', 'CROP', 'EFFECT', 'EMBOSS',
-            'IMGMAP', 'OUTLINE', 'SCALE', 'SHADOW',
-            'WORKAREA'
-            ),
-
-        // MENU Objects: http://documentation.typo3.org/documentation/tsref/menu/
-        7 => array(
-            'GMENU', 'GMENU_FOLDOUT', 'GMENU_LAYERS', 'IMGMENU',
-            'IMGMENUITEM', 'JSMENU', 'JSMENUITEM', 'TMENU',
-            'TMENUITEM', 'TMENU_LAYERS'
-            ),
-
-        // MENU common properties: http://documentation.typo3.org/documentation/tsref/menu/common-properties/
-        8 => array(
-            'alternativeSortingField', 'begin', 'debugItemConf',
-            'imgNameNotRandom', 'imgNamePrefix',
-            'itemArrayProcFunc', 'JSWindow', 'maxItems',
-            'minItems', 'overrideId', 'sectionIndex',
-            'showAccessRestrictedPages', 'submenuObjSuffixes'
-            ),
-
-        // MENU item states: http://documentation.typo3.org/documentation/tsref/menu/item-states/
-        9 => array(
-            'ACT', 'ACTIFSUB', 'ACTIFSUBRO', 'ACTRO', 'CUR', 'CURIFSUB',
-            'CURIFSUBRO', 'CURRO', 'IFSUB', 'IFSUBRO', 'NO',
-            'SPC', 'USERDEF1', 'USERDEF1RO', 'USERDEF2',
-            'USERDEF2RO', 'USR', 'USRRO'
-            ),
-        ),
-
-    // Does not include '-' because of stuff like htmlTag_langKey = en-GB and
-    // lib.nav-sub
-    'SYMBOLS' => array(
-        0 => array(
-            '|',
-            '+', '*', '/', '%',
-            '!', '&&', '^',
-            '<', '>', '=',
-            '?', ':',
-            '.'
-            ),
-        1 => 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
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #ed7d14;',
-            2 => 'font-weight: bold;',
-            3 => 'color: #990000; font-weight: bold;',
-            4 => 'color: #990000; font-weight: bold;',
-            5 => 'color: #990000; font-weight: bold;',
-            6 => 'color: #990000; font-weight: bold;',
-            7 => 'color: #990000; font-weight: bold;',
-            8 => 'font-weight: bold;',
-            9 => 'color: #990000; font-weight: bold;',
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #aaa; font-style: italic;',
-            2 => 'color: #aaa; font-style: italic;',
-            'MULTI' => 'color: #aaa; font-style: italic;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #ac14aa;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #cc0000;'
-            ),
-        'METHODS' => array(
-            1 => 'color: #0000e0; font-weight: bold;',
-            2 => 'color: #0000e0; font-weight: bold;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #009900;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #339933; font-weight: bold;',
-                // Set this to the same value as brackets above
-            1 => 'color: #009900; font-weight: bold;'
-            ),
-        'REGEXPS' => array(
-            0 => 'color: #009900;',
-            1 => 'color: #009900; font-weight: bold;',
-            2 => 'color: #3366CC;',
-            3 => 'color: #000066; font-weight: bold;',
-            4 => 'color: #ed7d14;',
-            5 => 'color: #000066; font-weight: bold;',
-            6 => 'color: #009900;',
-            7 => 'color: #3366CC;'
-            ),
-        'ESCAPE_CHAR' => array(
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => 'http://documentation.typo3.org/documentation/tsref/conditions/{FNAME}/',
-        2 => 'http://documentation.typo3.org/documentation/tsref/functions/{FNAME}/',
-        3 => 'http://documentation.typo3.org/documentation/tsref/tlo-objects/{FNAME}/',
-        4 => 'http://documentation.typo3.org/documentation/tsref/cobjects/{FNAME}/',
-        5 => 'http://documentation.typo3.org/documentation/tsref/gifbuilder/',
-        6 => 'http://documentation.typo3.org/documentation/tsref/gifbuilder/{FNAME}/',
-        7 => 'http://documentation.typo3.org/documentation/tsref/menu/{FNAME}/',
-        8 => 'http://documentation.typo3.org/documentation/tsref/menu/common-properties/',
-        9 => 'http://documentation.typo3.org/documentation/tsref/menu/item-states/'
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(
-        ),
-    'REGEXPS' => array(
-            // xhtml tag
-        2 => array(
-            GESHI_SEARCH => '(&lt;)([a-zA-Z\\/][^\\/\\\x7C]*?)(&gt;)',
-            GESHI_REPLACE => '\\2',
-            GESHI_MODIFIERS => 's',
-            GESHI_BEFORE => '\\1',
-            GESHI_AFTER => '\\3'
-            ),
-
-            // Constant
-        0 => array(
-            GESHI_SEARCH => '(\{)(\$[a-zA-Z_\.]+[a-zA-Z0-9_\.]*)(\})',
-            GESHI_REPLACE => '\\2',
-            GESHI_MODIFIERS => '',
-            GESHI_BEFORE => '\\1',
-            GESHI_AFTER => '\\3'
-            ),
-
-            // Constant dollar sign
-        1 => array(
-            GESHI_SEARCH => '(\$)([a-zA-Z_\.]+[a-zA-Z0-9_\.]*)',
-            GESHI_REPLACE => '\\1',
-            GESHI_MODIFIERS => '',
-            GESHI_BEFORE => '',
-            GESHI_AFTER => '\\2'
-            ),
-
-            // extension keys / tables: (static|user|ttx|tx|tt|fe)_something[_something]
-        3 => array(
-            GESHI_SEARCH => '(plugin\.|[^\.]\b)((?:static|user|ttx|tx|tt|fe)(?:_[0-9A-Za-z_]+?)\b)',
-            GESHI_REPLACE => '\\2',
-            GESHI_MODIFIERS => '',
-            GESHI_BEFORE => '\\1',
-            GESHI_AFTER => ''
-            ),
-
-            // conditions and controls
-        4 => array(
-            GESHI_SEARCH => '(\[)(globalVar|global|end)\b',
-            GESHI_REPLACE => '\\2',
-            GESHI_MODIFIERS => 'i',
-            GESHI_BEFORE => '\\1',
-            GESHI_AFTER => ''
-            ),
-
-            // lowlevel setup and constant objects
-        5 => array(
-            GESHI_SEARCH => '([^\.\$-\{]\b)(cObj|field|config|content|file|frameset|includeLibs|lib|page|plugin|register|resources|sitemap|sitetitle|styles|temp|tt_content|tt_news|types|xmlnews)\b',
-            GESHI_REPLACE => '\\2',
-            GESHI_MODIFIERS => '',
-            GESHI_BEFORE => '\\1',
-            GESHI_AFTER => ''
-            ),
-
-            // markers
-        6 => array(
-            GESHI_SEARCH => '(###[^#]+###)',
-            GESHI_REPLACE => '\\1',
-            GESHI_MODIFIERS => '',
-            GESHI_BEFORE => '',
-            GESHI_AFTER => ''
-            ),
-
-            // hex color codes
-        7 => array(
-            GESHI_SEARCH => '(#[a-fA-F0-9]{6}\b|#[a-fA-F0-9]{3}\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/wiki/vendor/geshi/geshi/src/geshi/unicon.php b/wiki/vendor/geshi/geshi/src/geshi/unicon.php
deleted file mode 100644
index bd56f50..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/unicon.php
+++ /dev/null
@@ -1,208 +0,0 @@
-<?php
-/*************************************************************************************
- * unicon.php
- * --------
- * Author: Matt Oates (mattoates@gmail.com)
- * Copyright: (c) 2010 Matt Oates (http://mattoates.co.uk)
- * Release Version: 1.0.9.0
- * Date Started: 2010/04/20
- *
- * Unicon the Unified Extended Dialect of Icon language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2010/04/24 (0.0.0.2)
- *  -  Validated with Geshi langcheck.php FAILED due to preprocessor keywords looking like symbols
- *  -  Hard wrapped to improve readability
- * 2010/04/20 (0.0.0.1)
- *  -  First Release
- *
- * TODO (updated 2010/04/20)
- * -------------------------
- * - Do the &amp; need replacing with &?
- *
- *************************************************************************************
- *
- *     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' => 'Unicon (Unified Extended Dialect of Icon)',
-    'COMMENT_SINGLE' => array(1 => '#'),
-    'COMMENT_MULTI' => array(),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array('"', '\''),
-    'ESCAPE_CHAR' => '\\',
-    'KEYWORDS' => array(
-        1 => array(
-            'break', 'case', 'class', 'continue', 'create', 'default', 'do',
-            'else', 'end', 'every', 'fail', 'for', 'if', 'import', 'initial', 'initially',
-            'invocable', 'link', 'method', 'next', 'not', 'of', 'package', 'procedure', 'record',
-            'repeat', 'return', 'switch', 'suspend', 'then', 'to', 'until', 'while'
-            ),
-        2 => array(
-            'global', 'local', 'static'
-            ),
-        3 => array(
-            'allocated', 'ascii', 'clock', 'collections',
-            'column', 'cset', 'current', 'date', 'dateline', 'digits',
-            'dump', 'e', 'error', 'errornumber', 'errortext',
-            'errorvalue', 'errout', 'eventcode', 'eventsource', 'eventvalue',
-            'fail', 'features', 'file', 'host', 'input', 'lcase',
-            'letters', 'level', 'line', 'main', 'now', 'null',
-            'output', 'phi', 'pi', 'pos', 'progname', 'random',
-            'regions', 'source', 'storage', 'subject', 'syserr', 'time',
-            'trace', 'ucase', 'version', 'col', 'control', 'interval',
-            'ldrag', 'lpress', 'lrelease', 'mdrag', 'meta', 'mpress',
-            'mrelease', 'rdrag', 'resize', 'row', 'rpress', 'rrelease',
-            'shift', 'window', 'x', 'y'
-            ),
-        4 => array(
-            'abs', 'acos', 'any', 'args', 'asin', 'atan', 'bal', 'center', 'char',
-            'chmod', 'close', 'cofail', 'collect', 'copy', 'cos', 'cset', 'ctime', 'dbcolumns',
-            'dbdriver', 'dbkeys', 'dblimits', 'dbproduction', 'dbtables', 'delay', 'delete', 'detab',
-            'display', 'dtor', 'entab', 'errorclear', 'event', 'eventmask', 'EvGet', 'exit', 'exp',
-            'fetch', 'fieldnames', 'find', 'flock', 'flush', 'function', 'get', 'getch', 'getche',
-            'getenv', 'gettimeofday', 'globalnames', 'gtime', 'iand', 'icom', 'image', 'insert',
-            'integer', 'ior', 'ishift', 'ixor', 'key', 'left', 'list', 'load', 'loadfunc',
-            'localnames', 'log', 'many', 'map', 'match', 'member', 'mkdir', 'move', 'name', 'numeric',
-            'open', 'opmask', 'ord', 'paramnames', 'parent', 'pipe', 'pop', 'pos', 'proc', 'pull',
-            'push', 'put', 'read', 'reads', 'real', 'receive', 'remove', 'rename', 'repl', 'reverse',
-            'right', 'rmdir', 'rtod', 'runerr', 'seek', 'select', 'send', 'seq', 'serial', 'set',
-            'setenv', 'sort', 'sortf', 'sql', 'sqrt', 'stat', 'staticnames', 'stop', 'string', 'system', 'tab',
-            'table', 'tan', 'trap', 'trim', 'truncate', 'type', 'upto', 'utime', 'variable', 'where',
-            'write', 'writes'
-            ),
-        5 => array(
-            'Active', 'Alert', 'Bg', 'Clip', 'Clone', 'Color', 'ColorValue',
-            'CopyArea', 'Couple', 'DrawArc', 'DrawCircle', 'DrawCurve', 'DrawCylinder', 'DrawDisk',
-            'DrawImage', 'DrawLine', 'DrawPoint', 'DrawPolygon', 'DrawRectangle', 'DrawSegment',
-            'DrawSphere', 'DrawString', 'DrawTorus', 'EraseArea', 'Event', 'Fg', 'FillArc',
-            'FillCircle', 'FillPolygon', 'FillRectangle', 'Font', 'FreeColor', 'GotoRC', 'GotoXY',
-            'IdentifyMatrix', 'Lower', 'MatrixMode', 'NewColor', 'PaletteChars', 'PaletteColor',
-            'PaletteKey', 'Pattern', 'Pending', 'Pixel', 'PopMatrix', 'PushMatrix', 'PushRotate',
-            'PushScale', 'PushTranslate', 'QueryPointer', 'Raise', 'ReadImage', 'Refresh', 'Rotate',
-            'Scale', 'Texcoord', 'TextWidth', 'Texture', 'Translate', 'Uncouple', 'WAttrib',
-            'WDefault', 'WFlush', 'WindowContents', 'WriteImage', 'WSync'
-            ),
-        6 => array(
-            'define', 'include', 'ifdef', 'ifndef', 'else', 'endif', 'error',
-            'line', 'undef'
-            ),
-        7 => array(
-            '_V9', '_AMIGA', '_ACORN', '_CMS', '_MACINTOSH', '_MSDOS_386',
-            '_MS_WINDOWS_NT', '_MSDOS', '_MVS', '_OS2', '_POR', 'T', '_UNIX', '_POSIX', '_DBM',
-            '_VMS', '_ASCII', '_EBCDIC', '_CO_EXPRESSIONS', '_CONSOLE_WINDOW', '_DYNAMIC_LOADING',
-            '_EVENT_MONITOR', '_EXTERNAL_FUNCTIONS', '_KEYBOARD_FUNCTIONS', '_LARGE_INTEGERS',
-            '_MULTITASKING', '_PIPES', '_RECORD_IO', '_SYSTEM_FUNCTION', '_MESSAGING', '_GRAPHICS',
-            '_X_WINDOW_SYSTEM', '_MS_WINDOWS', '_WIN32', '_PRESENTATION_MGR', '_ARM_FUNCTIONS',
-            '_DOS_FUNCTIONS'
-            ),
-        8 => array(
-            'line')
-        ),
-    'SYMBOLS' => array(
-        1 => array(
-            '(', ')', '{', '}', '[', ']', '+', '-', '*', '/', '\\', '%', '=', '<', '>', '!', '^',
-            '&', '|', '?', ':', ';', ',', '.', '~', '@'
-            ),
-        2 => array(
-            '$(', '$)', '$<', '$>'
-            )
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => true,
-        2 => true,
-        3 => true,
-        4 => true,
-        5 => true,
-        6 => true,
-        7 => true,
-        8 => true
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #b1b100;',
-            2 => 'color: #b1b100;',
-            3 => 'color: #b1b100;',
-            4 => 'color: #b1b100;',
-            5 => 'color: #b1b100;',
-            6 => 'color: #b1b100;',
-            7 => 'color: #b1b100;',
-            8 => 'color: #b1b100;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #666666; font-style: italic;',
-            '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(
-            0 => 'color: #004000;'
-            ),
-        'SYMBOLS' => array(
-            1 => 'color: #339933;'
-            ),
-        'REGEXPS' => array(),
-        'SCRIPT' => array()
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => '',
-        4 => '',
-        5 => '',
-        6 => '',
-        7 => '',
-        8 => ''
-        ),
-    'OOLANG' => true,
-    'OBJECT_SPLITTERS' => array(1 => '.'),
-    'REGEXPS' => array(),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(),
-    'HIGHLIGHT_STRICT_BLOCK' => array(),
-    'PARSER_CONTROL' => array(
-        'KEYWORDS' => array(
-            3 => array(
-                'DISALLOWED_BEFORE' => '(?<=&amp;)'
-                ),
-            4 => array(
-                'DISALLOWED_BEFORE' => "(?<![a-zA-Z0-9_\"\'])",
-                'DISALLOWED_AFTER' => "(?![a-zA-Z0-9_\"\'])"
-                ),
-            6 => array(
-                'DISALLOWED_BEFORE' => '(?<=\$)'
-                ),
-            8 => array(
-                'DISALLOWED_BEFORE' => '(?<=#)'
-                )
-            )
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/upc.php b/wiki/vendor/geshi/geshi/src/geshi/upc.php
deleted file mode 100644
index 0b8b485..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/upc.php
+++ /dev/null
@@ -1,268 +0,0 @@
-<?php
-/*************************************************************************************
- * upc.php
- * -----
- * Author: Viraj Sinha (viraj@indent.com)
- * Contributors:
- *  - Nigel McNie (nigel@geshi.org)
- *  - Jack Lloyd (lloyd@randombit.net)
- *  - Michael Mol (mikemol@gmail.com)
- * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter/)
- * Release Version: 1.0.9.0
- * Date Started: 2004/06/04
- *
- * UPC language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2011/06/14 (1.0.8.11)
- *   -  This file is a revision of c.php with UPC keywords added
- *
- *************************************************************************************
- *
- *     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' => 'UPC',
-    'COMMENT_SINGLE' => array(1 => '//', 2 => '#'),
-    'COMMENT_MULTI' => array('/*' => '*/'),
-    'COMMENT_REGEXP' => array(
-        //Multiline-continued single-line comments
-        1 => '/\/\/(?:\\\\\\\\|\\\\\\n|.)*$/m',
-        //Multiline-continued preprocessor define
-        2 => '/#(?:\\\\\\\\|\\\\\\n|.)*$/m'
-        ),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array("'", '"'),
-    'ESCAPE_CHAR' => '',
-    'ESCAPE_REGEXP' => array(
-        //Simple Single Char Escapes
-        1 => "#\\\\[\\\\abfnrtv\'\"?\n]#i",
-        //Hexadecimal Char Specs
-        2 => "#\\\\x[\da-fA-F]{2}#",
-        //Hexadecimal Char Specs
-        3 => "#\\\\u[\da-fA-F]{4}#",
-        //Hexadecimal Char Specs
-        4 => "#\\\\U[\da-fA-F]{8}#",
-        //Octal Char Specs
-        5 => "#\\\\[0-7]{1,3}#"
-        ),
-    'NUMBERS' =>
-        GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_INT_CSTYLE | GESHI_NUMBER_BIN_PREFIX_0B |
-        GESHI_NUMBER_OCT_PREFIX | GESHI_NUMBER_HEX_PREFIX | GESHI_NUMBER_FLT_NONSCI |
-        GESHI_NUMBER_FLT_NONSCI_F | GESHI_NUMBER_FLT_SCI_SHORT | GESHI_NUMBER_FLT_SCI_ZERO,
-    'KEYWORDS' => array(
-        1 => array(
-            'if', 'return', 'while', 'case', 'continue', 'default',
-            'do', 'else', 'for', 'switch', 'goto',
-
-            'upc_forall', 'upc_barrier', 'upc_notify', 'upc_wait', 'upc_fence'
-            ),
-        2 => array(
-            'null', 'false', 'break', 'true', 'function', 'enum', 'extern', 'inline'
-            ),
-        3 => array(
-            // assert.h
-            'assert',
-
-            //complex.h
-            'cabs', 'cacos', 'cacosh', 'carg', 'casin', 'casinh', 'catan',
-            'catanh', 'ccos', 'ccosh', 'cexp', 'cimag', 'cis', 'clog', 'conj',
-            'cpow', 'cproj', 'creal', 'csin', 'csinh', 'csqrt', 'ctan', 'ctanh',
-
-            //ctype.h
-            'digittoint', 'isalnum', 'isalpha', 'isascii', 'isblank', 'iscntrl',
-            'isdigit', 'isgraph', 'islower', 'isprint', 'ispunct', 'isspace',
-            'isupper', 'isxdigit', 'toascii', 'tolower', 'toupper',
-
-            //inttypes.h
-            'imaxabs', 'imaxdiv', 'strtoimax', 'strtoumax', 'wcstoimax',
-            'wcstoumax',
-
-            //locale.h
-            'localeconv', 'setlocale',
-
-            //math.h
-            'acos', 'asin', 'atan', 'atan2', 'ceil', 'cos', 'cosh', 'exp',
-            'fabs', 'floor', 'frexp', 'ldexp', 'log', 'log10', 'modf', 'pow',
-            'sin', 'sinh', 'sqrt', 'tan', 'tanh',
-
-            //setjmp.h
-            'longjmp', 'setjmp',
-
-            //signal.h
-            'raise',
-
-            //stdarg.h
-            'va_arg', 'va_copy', 'va_end', 'va_start',
-
-            //stddef.h
-            'offsetof',
-
-            //stdio.h
-            'clearerr', 'fclose', 'fdopen', 'feof', 'ferror', 'fflush', 'fgetc',
-            'fgetpos', 'fgets', 'fopen', 'fprintf', 'fputc', 'fputchar',
-            'fputs', 'fread', 'freopen', 'fscanf', 'fseek', 'fsetpos', 'ftell',
-            'fwrite', 'getc', 'getch', 'getchar', 'gets', 'perror', 'printf',
-            'putc', 'putchar', 'puts', 'remove', 'rename', 'rewind', 'scanf',
-            'setbuf', 'setvbuf', 'snprintf', 'sprintf', 'sscanf', 'tmpfile',
-            'tmpnam', 'ungetc', 'vfprintf', 'vfscanf', 'vprintf', 'vscanf',
-            'vsprintf', 'vsscanf',
-
-            //stdlib.h
-            'abort', 'abs', 'atexit', 'atof', 'atoi', 'atol', 'bsearch',
-            'calloc', 'div', 'exit', 'free', 'getenv', 'itoa', 'labs', 'ldiv',
-            'ltoa', 'malloc', 'qsort', 'rand', 'realloc', 'srand', 'strtod',
-            'strtol', 'strtoul', 'system',
-
-            //string.h
-            'memchr', 'memcmp', 'memcpy', 'memmove', 'memset', 'strcat',
-            'strchr', 'strcmp', 'strcoll', 'strcpy', 'strcspn', 'strerror',
-            'strlen', 'strncat', 'strncmp', 'strncpy', 'strpbrk', 'strrchr',
-            'strspn', 'strstr', 'strtok', 'strxfrm',
-
-            //time.h
-            'asctime', 'clock', 'ctime', 'difftime', 'gmtime', 'localtime',
-            'mktime', 'strftime', 'time',
-
-            //wchar.h
-            'btowc', 'fgetwc', 'fgetws', 'fputwc', 'fputws', 'fwide',
-            'fwprintf', 'fwscanf', 'getwc', 'getwchar', 'mbrlen', 'mbrtowc',
-            'mbsinit', 'mbsrtowcs', 'putwc', 'putwchar', 'swprintf', 'swscanf',
-            'ungetwc', 'vfwprintf', 'vswprintf', 'vwprintf', 'wcrtomb',
-            'wcscat', 'wcschr', 'wcscmp', 'wcscoll', 'wcscpy', 'wcscspn',
-            'wcsftime', 'wcslen', 'wcsncat', 'wcsncmp', 'wcsncpy', 'wcspbrk',
-            'wcsrchr', 'wcsrtombs', 'wcsspn', 'wcsstr', 'wcstod', 'wcstok',
-            'wcstol', 'wcstoul', 'wcsxfrm', 'wctob', 'wmemchr', 'wmemcmp',
-            'wmemcpy', 'wmemmove', 'wmemset', 'wprintf', 'wscanf',
-
-            //wctype.h
-            'iswalnum', 'iswalpha', 'iswcntrl', 'iswctype', 'iswdigit',
-            'iswgraph', 'iswlower', 'iswprint', 'iswpunct', 'iswspace',
-            'iswupper', 'iswxdigit', 'towctrans', 'towlower', 'towupper',
-            'wctrans', 'wctype'
-            ),
-        4 => array(
-            'auto', 'char', 'const', 'double',  'float', 'int', 'long',
-            'register', 'short', 'signed', 'sizeof', 'static', 'struct',
-            'typedef', 'union', 'unsigned', 'void', 'volatile', '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',
-            'size_t', 'off_t',
-
-            'upc_lock_t', 'shared', 'strict', 'relaxed', 'upc_blocksizeof',
-            'upc_localsizeof', 'upc_elemsizeof'
-            ),
-        ),
-    'SYMBOLS' => 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: #000066;',
-            4 => 'color: #993333;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #666666; font-style: italic;',
-            2 => 'color: #339933;',
-            'MULTI' => 'color: #808080; 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: #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(
-            1 => 'color: #202020;',
-            2 => 'color: #202020;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #339933;'
-            ),
-        'REGEXPS' => array(
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => 'http://www.opengroup.org/onlinepubs/009695399/functions/{FNAMEL}.html',
-        4 => ''
-        ),
-    'OOLANG' => true,
-    'OBJECT_SPLITTERS' => array(
-        1 => '.',
-        2 => '::'
-        ),
-    'REGEXPS' => array(
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        ),
-    'TAB_WIDTH' => 4
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/urbi.php b/wiki/vendor/geshi/geshi/src/geshi/urbi.php
deleted file mode 100644
index f87e6c1..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/urbi.php
+++ /dev/null
@@ -1,198 +0,0 @@
-<?php
-/*************************************************************************************
- * urbi.php
- * -------
- * Author: Alexandre Morgand (morgand.alexandre@gmail.com)
- * Copyright: (c) 2011 Morgand (http://gostai.com)
- * Release Version: 1.0.9.0
- * Date Started: 2011/09/10
- *
- * Urbi language file for GeSHi.
- *
- * CHANGES
- * -------
- * -------------------------
- *
- *************************************************************************************
- *
- *     This file is part of GeSHi.
- *
- *   GeSHi is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   GeSHi is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with GeSHi; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- ************************************************************************************/
-
-$language_data = array (
-    'LANG_NAME' => 'Urbi',
-    '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',
-        // Urbi warning.
-        3 => "#\[[0-9a-f]{8}:warning\].*#",
-        // Urbi message from echo.
-        4 => '#\[[0-9a-f]{8}\] \*\*\*.*#',
-        // Urbi error message.
-        6 => '#\[[0-9a-f]{8}:error\].*#',
-        // Urbi system message.
-        5 => '#\[00.*\].*#',
-        // Nested comment. Max depth 4.
-        7 => '#\/\*(.|\n)*\/\*(.|\n)*\*\/(.|\n)*\*\/#',
-        ),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array(
-        0 => '"',
-        1 => '\'',
-        ),
-    // For Urbi, disable escape char is better.
-    'ESCAPE_CHAR' => '\\',
-    'ESCAPE_REGEXP' => array(
-        //Simple Single Char Escapes
-        1 => "#\\\\[abfnrtv\\\'\"?\n]#",
-        //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(
-        // Condition keywords.
-        1 => array(
-            'at', 'at;', 'at|', 'at&', 'at,', 'break', 'call', 'case', 'catch', 'continue',
-            'do', 'else', 'every', 'every&', 'every,', 'every;', 'every|', 'for', 'for&',
-            'for,', 'for;', 'foreach', 'for|', 'freezeif', 'goto', 'if', 'in', 'loop',
-            'loop&', 'loop,', 'loop;', 'loop|', 'or_eq', 'stopif', 'switch', 'try',
-            'waituntil', 'when', 'whenever', 'while', 'while&', 'while,', 'while;',
-            'while|', 'throw', 'onleave', 'watch', 'return', 'and_eq', 'default', 'finally',
-            'timeout', 'xor_eq'
-            ),
-        // Type.
-        2 => array(
-            'virtual', 'using', 'namespace', 'inline', 'protected', 'private', 'public',
-            'typename', 'typeid', 'class', 'const_cast', 'dynamic_cast', 'friend',
-            'template', 'enum', 'static_cast', 'reinterpret_cast', 'mutable', 'explicit'
-            ),
-        // Standard function.
-        3 => array(
-            'this', 'sizeof', 'delete', 'assert', 'isdef', 'compl', 'detach',
-            'disown', '__HERE__', 'asm'
-            ),
-        // Type.
-        4 => array(
-            'char', 'const', 'double', 'int', 'long', 'typedef', 'union',
-            'unsigned', 'var', 'short', 'wchar_t', 'volatile', 'signed', 'bool',
-            'float', 'struct', 'auto', 'register', 'static', 'extern', 'function',
-            'export', 'external', 'internal', 'closure', 'BIN'
-            ),
-        ),
-    'SYMBOLS' => array(
-        0 => array('(', ')', '{', '}', '[', ']'),
-        1 => array('<', '>','=', '!=', '==', '==='),
-        2 => array('+', '-', '*', '/', '%', 'bitand', 'bitor', 'xor'),
-        3 => array('!', '^', '&', '|'),
-        4 => array('?', ':', ';')
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => true,
-        2 => true,
-        3 => true,
-        4 => true,
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #0000ff;',
-            2 => 'color: #0000ff;',
-            3 => 'color: #0000dd;',
-            4 => 'color: #0000ff;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #666666;',
-            2 => 'color: #339900;',
-            3 => 'color: #d46b0f;',
-            4 => 'color: #20b537;',
-            5 => 'color: #73776f;',
-            6 => 'color: #a71616;',
-            7 => 'color: #666666;',
-            'MULTI' => 'color: #666666; font-style: italic;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #ff0000;',
-            1 => 'color: #ff0000;',
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #7a0874; font-weight: bold;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #ff0000;',
-            1 => 'color: #007788;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #0000dd;'
-            ),
-        'METHODS' => array(
-            1 => 'color: #007788;',
-            2 => 'color: #007788;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #008000;',
-            1 => 'color: #0000f8;',
-            2 => 'color: #000040;',
-            3 => 'color: #000040; font-weight: bold;',
-            4 => 'color: #008080;'
-            ),
-        'REGEXPS' => array(
-            0 => 'color: #0000dd',
-            1 => 'color: #0000dd;',
-            2 => 'color: #0000dd;',
-            3 => 'color: #0000dd;',
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => '',
-        4 => ''
-        ),
-    'OOLANG' => true,
-    'OBJECT_SPLITTERS' => array(
-        1 => '.',
-        2 => '::',
-        // FIXME: add -> splitter.
-        ),
-    'REGEXPS' => array(
-        0 => '0x[0-9a-fA-F]([0-9a-fA-F_]*[0-9a-fA-F])*',
-        1 => '[0-9]([0-9_]*[0-9])*(e|E)(-|\+)?[0-9]([0-9_]*[0-9])*',
-        2 => '[0-9]([0-9_]*[0-9])*(min|s|ms|h|d)',
-        3 => '[0-9]+_([0-9_])*[0-9]',
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        ),
-    'TAB_WIDTH' => 4,
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/uscript.php b/wiki/vendor/geshi/geshi/src/geshi/uscript.php
deleted file mode 100644
index 216eaff..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/uscript.php
+++ /dev/null
@@ -1,297 +0,0 @@
-<?php
-/*************************************************************************************
- * uscript.php
- * ---------------------------------
- * Author: pospi (pospi@spadgos.com)
- * Copyright: (c) 2007 pospi (http://pospi.spadgos.com)
- * Release Version: 1.0.9.0
- * Date Started: 2007/05/21
- *
- * UnrealScript language file for GeSHi.
- *
- * Comments:
- * * Main purpose at this time is for Unreal Engine 2 / 2.5
- * * Mostly taken from UltraEdit unrealScript wordfile.
- *
- * CHANGES
- * -------
- * 2007/05/21 (1.0.8.10)
- *  -  First Release
- *
- * TODO (updated 2007/05/21)
- * -------------------------
- * * Update to feature any UE3 classes / keywords when UT3 comes out
- *
- *************************************************************************************
- *
- *     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' => 'Unreal Script',
-    'COMMENT_SINGLE' => array(
-            1 => '//',
-            2 => '#'
-            ),
-    'COMMENT_MULTI' => array('/*' => '*/'),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array("'", '"'),
-    'ESCAPE_CHAR' => '\\',
-    'KEYWORDS' => array(
-        1 => array(        //declaration keywords
-            'simulated', 'state', 'class', 'function', 'event', 'var', 'local',
-            'ignores', 'globalconfig', 'config', 'abstract', 'nativereplication', 'native',
-            'auto', 'coerce', 'const', 'default',
-            'defaultproperties',
-            'enum', 'extends', 'expands', 'final', 'guid', 'latent', 'localized',
-            'new', 'noexport', 'operator', 'preoperator', 'optional', 'out',
-            'private', 'public', 'protected', 'reliable', 'replication',
-            'singular', 'static', 'struct', 'transient', 'unreliable',
-            'hidedropdown', 'cacheexempt', 'exec', 'delegate', 'import', 'placeable', 'exportstructs'
-            ),
-        2 => array(        //control flow keywords
-            'for', 'while', 'do', 'if', 'else', 'switch', 'case', 'return', 'break', 'continue',
-            'begin', 'loop', 'assert',
-            'foreach', 'AllActors', 'DynamicActors', 'ChildActors', 'BasedActors', 'TouchingActors',
-            'TraceActors', 'RadiusActors', 'VisibleActors', 'CollidingActors', 'VisibleCollidingActors'
-            ),
-        3 => array(        //global (object) functions
-            'log', 'warn', 'rot', 'vect', 'Rand', 'Min', 'Max', 'Clamp', 'Abs', 'Sin', 'ASin',
-            'Cos', 'ACos', 'Tan', 'ATan', 'Exp', 'Loge', 'Sqrt', 'Square', 'FRand', 'FMin', 'FMax', 'FClamp',
-            'Lerp', 'Smerp', 'Ceil', 'Round', 'VSize', 'Normal', 'Invert', 'VRand', 'MirrorVectorByNormal',
-            'GetAxes', 'GetUnAxes', 'RotRand', 'OrthoRotation', 'Normalize', 'ClockwiseFrom',
-            'Len', 'InStr', 'Mid', 'Left', 'Right', 'Caps', 'Chr', 'Asc', 'Locs',
-            'Divide', 'Split', 'StrCmp', 'Repl', 'Eval',
-            'InterpCurveEval', 'InterpCurveGetOutputRange', 'InterpCurveGetInputDomain',
-            'QuatProduct', 'QuatInvert', 'QuatRotateVector', 'QuatFindBetween', 'QuatFromAxisAndAngle',
-            'QuatFromRotator', 'QuatToRotator', 'QuatSlerp',
-            'Localize', 'GotoState', 'IsInState', 'GetStateName',
-            'ClassIsChildOf', 'IsA', 'Enable', 'Disable',
-            'GetPropertyText', 'SetPropertyText', 'GetEnum', 'DynamicLoadObject', 'FindObject',
-            'SaveConfig', 'ClearConfig', 'StaticSaveConfig', 'ResetConfig', 'StaticClearConfig',
-            'GetPerObjectNames', 'RandRange', 'StopWatch', 'IsOnConsole', 'IsSoaking',
-            'PlatformIsMacOS', 'PlatformIsUnix', 'PlatformIsWindows', 'PlatformIs64Bit',
-            'BeginState', 'EndState', 'Created', 'AllObjects', 'GetReferencers', 'GetItemName',
-            'ReplaceText', 'EatStr'
-            ),
-        4 => array(        //common almost-global (actor) functions
-            'ClientMessage', 'ConsoleCommand', 'CopyObjectToClipboard', 'TextToSpeech',
-            'Error', 'Sleep', 'SetCollision', 'SetCollisionSize', 'SetDrawScale', 'SetDrawScale3D',
-            'SetStaticMesh', 'SetDrawType', 'Move', 'SetLocation', 'SetRotation',
-            'SetRelativeLocation', 'SetRelativeRotation', 'MoveSmooth', 'AutonomousPhysics',
-            'SetBase', 'SetOwner', 'IsJoinedTo', 'GetMeshName', 'PlayAnim', 'LoopAnim', 'TweenAnim',
-            'IsAnimating', 'FinishAnim', 'HasAnim', 'StopAnimating', 'FreezeFrameAt', 'SetAnimFrame',
-            'IsTweening', 'AnimStopLooping', 'AnimEnd', 'LinkSkelAnim', 'LinkMesh', 'BoneRefresh',
-            'GetBoneCoords', 'GetBoneRotation', 'GetRootLocation', 'GetRootRotation', 'AttachToBone',
-            'DetachFromBone', 'SetBoneScale', 'UpdateURL', 'GetURLOption', 'SetPhysics', 'KAddImpulse',
-            'KImpact', 'KApplyForce', 'Clock', 'UnClock', 'Destroyed', 'GainedChild', 'LostChild',
-            'Tick', 'PostNetReceive', 'ClientTrigger', 'Trigger', 'UnTrigger', 'BeginEvent', 'EndEvent',
-            'Timer', 'HitWall', 'Falling', 'Landed', 'ZoneChange', 'PhysicsVolumeChange', 'Touch',
-            'PostTouch', 'UnTouch', 'Bump', 'BaseChange', 'Attach', 'Detach', 'SpecialHandling',
-            'EncroachingOn', 'EncroachedBy', 'RanInto', 'FinishedInterpolation', 'EndedRotation',
-            'UsedBy', 'FellOutOfWorld', 'KilledBy', 'TakeDamage', 'HealDamage', 'Trace', 'FastTrace',
-            'TraceThisActor', 'spawn', 'Destroy', 'TornOff', 'SetTimer', 'PlaySound', 'PlayOwnedSound',
-            'GetSoundDuration', 'MakeNoise', 'BeginPlay', 'GetAllInt', 'RenderOverlays', 'RenderTexture',
-            'PreBeginPlay', 'PostBeginPlay', 'PostNetBeginPlay', 'HurtRadius', 'Reset', 'Crash'
-            ),
-        5 => array(        //data types
-            'none', 'null',
-            'float', 'int', 'bool', 'byte', 'char', 'double', 'iterator', 'name', 'string',    //primitive
-            'plane', 'rotator', 'vector', 'spline',    'coords', 'Quat', 'Range', 'RangeVector', //structs
-            'Scale', 'Color', 'Box', 'IntBox', 'FloatBox', 'BoundingVolume', 'Matrix', 'InterpCurvePoint',
-            'InterpCurve', 'CompressedPosition', 'TMultiMap', 'PointRegion',
-            'KRigidBodyState', 'KSimParams', 'AnimRep', 'FireProperties',
-            'lodmesh', 'skeletalmesh', 'mesh', 'StaticMesh', 'MeshInstance',    //3d resources
-            'sound',    //sound resources
-            'material', 'texture', 'combiner', 'modifier', 'ColorModifier', 'FinalBlend',    //2d resources
-            'MaterialSequence', 'MaterialSwitch', 'OpacityModifier', 'TexModifier', 'TexEnvMap',
-            'TexCoordSource', 'TexMatrix', 'TexOscillator', 'TexPanner', 'TexRotator', 'TexScaler',
-            'RenderedMaterial', 'BitmapMaterial', 'ScriptedTexture', 'ShadowBitmapMaterial', 'Cubemap',
-            'FractalTexture', 'FireTexture', 'IceTexture', 'WaterTexture', 'FluidTexture', 'WaveTexture',
-            'WetTexture', 'ConstantMaterial', 'ConstantColor', 'FadeColor', 'ParticleMaterial',
-            'ProjectorMaterial', 'Shader', 'TerrainMaterial', 'VertexColor'
-            ),
-        6 => array(        //misc keywords
-            'false', 'true', 'self', 'super', 'MaxInt', 'Pi'
-            ),
-        7 => array(        //common actor enums & variables
-            'DT_None', 'DT_Sprite', 'DT_Mesh', 'DT_Brush', 'DT_RopeSprite',
-            'DT_VerticalSprite', 'DT_TerraForm', 'DT_SpriteAnimOnce', 'DT_StaticMesh', 'DT_DrawType',
-            'DT_Particle', 'DT_AntiPortal', 'DT_FluidSurface',
-            'PHYS_None', 'PHYS_Walking', 'PHYS_Falling', 'PHYS_Swimming', 'PHYS_Flying',
-            'PHYS_Rotating', 'PHYS_Projectile', 'PHYS_Interpolating', 'PHYS_MovingBrush', 'PHYS_Spider',
-            'PHYS_Trailer', 'PHYS_Ladder', 'PHYS_RootMotion', 'PHYS_Karma', 'PHYS_KarmaRagDoll',
-            'PHYS_Hovering', 'PHYS_CinMotion',
-            'ROLE_None', 'ROLE_DumbProxy', 'ROLE_SimulatedProxy',
-            'ROLE_AutonomousProxy', 'ROLE_Authority',
-            'STY_None', 'STY_Normal', 'STY_Masked', 'STY_Translucent', 'STY_Modulated', 'STY_Alpha',
-            'STY_Additive', 'STY_Subtractive', 'STY_Particle', 'STY_AlphaZ',
-            'OCCLUSION_None', 'OCCLUSION_BSP', 'OCCLUSION_Default', 'OCCLUSION_StaticMeshes',
-            'SLOT_None', 'SLOT_Misc', 'SLOT_Pain', 'SLOT_Interact', 'SLOT_Ambient', 'SLOT_Talk',
-            'SLOT_Interface', 'MTRAN_None', 'MTRAN_Instant', 'MTRAN_Segue', 'MTRAN_Fade',
-            'MTRAN_FastFade', 'MTRAN_SlowFade',
-
-            'DrawType', 'Physics', 'Owner', 'Base', 'Level', 'Game', 'Instigator', 'RemoteRole', 'Role',
-            'LifeSpan', 'Tag', 'Event', 'Location', 'Rotation', 'Velocity', 'Acceleration',
-            'RelativeLocation', 'RelativeRotation', 'DrawScale', 'DrawScale3D', 'Skins', 'Style',
-            'SoundVolume', 'SoundPitch', 'SoundRadius', 'TransientSoundVolume', 'TransientSoundRadius',
-            'CollisionRadius', 'CollisionHeight', 'Mass', 'Buoyancy', 'RotationRate', 'DesiredRotation'
-            ),
-        8 => array(        //common non-actor uscript classes
-            'Object',
-            'CacheManager', 'CameraEffect', 'Canvas', 'CheatManager', 'Commandlet', 'DecoText', 'GUI',
-            'InteractionMaster', 'Interactions', 'Interaction', 'KarmaParamsCollision', 'KarmaParamsRBFull',
-            'KarmaParamsSkel', 'KarmaParams', 'LevelSummary', 'Locale', 'Manifest', 'MaterialFactory',
-            'MeshObject', 'ObjectPool', 'Pallete',
-            'ParticleEmitter', 'MeshEmitter', 'BeamEmitter', 'SpriteEmitter', 'SparkEmitter', 'TrailEmitter',
-            'Player', 'PlayerInput', 'PlayInfo', 'ReachSpec', 'Resource', 'LatentScriptedAction', 'ScriptedAction',
-            'speciesType', 'StreamBase', 'Stream', 'EditorEngine', 'Engine', 'Time', 'WeaponFire',
-            'WebApplication', 'WebRequest', 'WebResponse', 'WebSkin', 'xPawnGibGroup', 'xPawnSoundGroup',
-            'xUtil'
-            ),
-        9 => array(        //common actor-based uscript classes
-            'Actor',
-            'Controller', 'AIController', 'ScriptedController', 'Bot', 'xBot',
-            'PlayerController', 'UnrealPlayer', 'xPlayer',
-            'DamageType', 'WeaponDamageType', 'Effects', 'Emitter', 'NetworkEmitter',
-            'Gib', 'HUD', 'HudBase', 'Info', 'FluidSurfaceInfo', 'Combo',
-            'GameInfo', 'UnrealMPGameInfo', 'DeathMatch', 'TeamGame', 'CTFGame',
-            'xCTFGame', 'xBombingRun', 'xDoubleDom', 'xTeamGame',
-            'ASGameInfo', 'Invasion', 'ONSOnslaughtGame', 'xDeathmatch',
-            'Mutator', 'Inventory', 'Ammunition', 'KeyInventory', 'Powerups', 'Armor', 'Weapon',
-            'InventoryAttachment', 'WeaponAttachment',
-            'KActor', 'KConstraint', 'KBSJoint', 'KCarWheelJoint', 'KConeLimit', 'KHinge', 'KTire',
-            'KVehicleFactory', 'Keypoint', 'AIScript', 'ScriptedSequence', 'ScriptedTrigger',
-            'AmbientSound', 'Light', 'SpotLight', 'SunLight', 'TriggerLight',
-            'MeshEffect', 'NavigationPoint', 'GameObjective', 'DestroyableObjective',
-            'PathNode', 'FlyingPathNode', 'RoadPathNode', 'InventorySpot', 'PlayerStart',
-            'Pawn', 'Vehicle', 'UnrealPawn', 'xPawn', 'Monster', 'ASVehicle', 'KVehicle', 'KCar',
-            'ONSWeaponPawn', 'SVehicle', 'ONSVehicle', 'ONSChopperCraft', 'ONSHoverCraft',
-            'ONSPlaneCraft', 'ONSTreadCraft', 'ONSWheeledCraft',
-            'Pickup', 'Ammo', 'UTAmmoPickup', 'ArmorPickup', 'KeyPickup', 'TournamentPickup',
-            'Projectile', 'Projector', 'DynamicProjector', 'ShadowProjector', 'xScorch',
-            'xEmitter', 'xPickupBase', 'xProcMesh', 'xWeatherEffect', 'PhysicsVolume', 'Volume'
-            ),
-        10 => array(    //symbol-like operators
-            'dot','cross'
-            )
-        ),
-    'SYMBOLS' => array(
-        '+','-','=','/','*','-','%','>','<','&','^','!','|','`','(',')','[',']','{','}',
-        '<<','>>','$','@'
-        ),
-    '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;',
-            2 => 'color: #0000FF;',
-            3 => 'color: #0066AA;',
-            4 => 'color: #0088FF;',
-            5 => 'color: #E000E0;',
-            6 => 'color: #900000;',
-            7 => 'color: #888800;',
-            8 => 'color: #AA6600;',
-            9 => 'color: #FF8800;',
-            10 => 'color: #0000FF;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #008080; font-style: italic;',
-            2 => 'color: #000000; font-weight: bold;',
-            'MULTI' => 'color: #008080; font-style: italic;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => ''
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #000000;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #999999;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #FF0000;'
-            ),
-        'METHODS' => array(
-            0 => 'color: #006600;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #669966;'
-            ),
-        'REGEXPS' => array(
-            0 => 'color: #E000E0;',
-            1 => 'color: #E000E0;'
-            ),
-        'SCRIPT' => array(
-            0 => ''
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => '',
-        4 => '',
-        5 => '',
-        6 => '',
-        7 => '',
-        8 => 'http://wiki.beyondunreal.com/wiki?search={FNAME}',
-        9 => 'http://wiki.beyondunreal.com/wiki?search={FNAME}',
-        10 => ''
-        ),
-    'OOLANG' => true,
-    'OBJECT_SPLITTERS' => array('.'),
-    'REGEXPS' => array(            //handle template-style variable definitions
-        0 => array(
-            GESHI_SEARCH => '(class\s*)<(\s*(\w+)\s*)>',
-            GESHI_REPLACE => "\${1}",
-            GESHI_MODIFIERS => 'i',
-            GESHI_BEFORE => '',
-            GESHI_AFTER => "< \${3} >"
-            ),
-        1 => array(
-            GESHI_SEARCH => '(array\s*)<(\s*(\w+)\s*)>',
-            GESHI_REPLACE => "\${1}",
-            GESHI_MODIFIERS => 'i',
-            GESHI_BEFORE => '',
-            GESHI_AFTER => "< \${3} >"
-            )
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        ),
-    'PARSER_CONTROL' => array(
-        'KEYWORDS' => array(
-            10 => array(
-                'DISALLOWED_BEFORE' => '(?<!<)(?=DOT>)'
-                )
-            )
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/vala.php b/wiki/vendor/geshi/geshi/src/geshi/vala.php
deleted file mode 100644
index fd8ce68..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/vala.php
+++ /dev/null
@@ -1,149 +0,0 @@
-<?php
-/*************************************************************************************
- * vala.php
- * ----------
- * Author: Nicolas Joseph (nicolas.joseph@valaide.org)
- * Copyright: (c) 2009 Nicolas Joseph
- * Release Version: 1.0.9.0
- * Date Started: 2009/04/29
- *
- * Vala language file for GeSHi.
- *
- * CHANGES
- * -------
- *
- * TODO
- * ----
- *
- *************************************************************************************
- *
- *     This file is part of GeSHi.
- *
- *   GeSHi is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   GeSHi is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with GeSHi; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- ************************************************************************************/
-
-$language_data = array (
-    'LANG_NAME' => 'Vala',
-    'COMMENT_SINGLE' => array(1 => '//'),
-    'COMMENT_MULTI' => array('/*' => '*/'),
-    'COMMENT_REGEXP' => array(
-        //Using and Namespace directives (basic support)
-        //Please note that the alias syntax for using is not supported
-        3 => '/(?:(?<=using[\\n\\s])|(?<=namespace[\\n\\s]))[\\n\\s]*([a-zA-Z0-9_]+\\.)*[a-zA-Z0-9_]+[\n\s]*(?=[;=])/i'),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array("'", '"'),
-    'HARDQUOTE' => array('"""'),
-    'HARDESCAPE' => array('"'),
-    'ESCAPE_CHAR' => '\\',
-    'KEYWORDS' => array(
-        1 => array(
-            'as', 'abstract', 'base', 'break', 'case', 'catch', 'const',
-            'construct', 'continue', 'default', 'delete', 'dynamic', 'do',
-            'else', 'ensures', 'extern', 'false', 'finally', 'for', 'foreach',
-            'get', 'if', 'in', 'inline', 'internal', 'lock', 'namespace',
-            'null', 'out', 'override', 'private', 'protected', 'public', 'ref',
-            'requires', 'return', 'set', 'static', 'switch', 'this', 'throw',
-            'throws', 'true', 'try', 'using', 'value', 'var', 'virtual',
-            'volatile', 'void', 'yield', 'yields', 'while'
-            ),
-        2 => array(
-            '#elif', '#endif', '#else', '#if'
-            ),
-        3 => array(
-            'is', 'new', 'owned', 'sizeof', 'typeof', 'unchecked', 'unowned', 'weak'
-            ),
-        4 => array(
-            'bool', 'char', 'class', 'delegate', 'double', 'enum',
-            'errordomain', 'float', 'int', 'int8', 'int16', 'int32', 'int64',
-            'interface', 'long', 'short', 'signal', 'size_t', 'ssize_t',
-            'string', 'struct', 'uchar', 'uint', 'uint8', 'uint16', 'uint32',
-            'ulong', 'unichar', 'ushort'
-            )
-        ),
-    'SYMBOLS' => array(
-        '+', '-', '*', '?', '=', '/', '%', '&', '>', '<', '^', '!', ':', ';',
-        '(', ')', '{', '}', '[', ']', '|'
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => true,
-        2 => true,
-        3 => true,
-        4 => true,
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #0600FF;',
-            2 => 'color: #FF8000; font-weight: bold;',
-            3 => 'color: #008000;',
-            4 => 'color: #FF0000;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #008080; font-style: italic;',
-            3 => 'color: #008080;',
-            'MULTI' => 'color: #008080; font-style: italic;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #008080; font-weight: bold;',
-            'HARD' => 'color: #008080; font-weight: bold;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #000000;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #666666;',
-            'HARD' => 'color: #666666;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #FF0000;'
-            ),
-        'METHODS' => array(
-            1 => 'color: #0000FF;',
-            2 => 'color: #0000FF;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #008000;'
-            ),
-        'REGEXPS' => array(
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => '',
-        4 => ''
-        ),
-    'OOLANG' => true,
-    'OBJECT_SPLITTERS' => array(
-        1 => '.'
-        ),
-    'REGEXPS' => array(
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        ),
-    'TAB_WIDTH' => 4,
-    'PARSER_CONTROL' => array(
-        'KEYWORDS' => array(
-            'DISALLOWED_BEFORE' => "(?<![a-zA-Z0-9\$_\|\#>|^])",
-            'DISALLOWED_AFTER' => "(?![a-zA-Z0-9_<\|%\\-])"
-        )
-    )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/vb.php b/wiki/vendor/geshi/geshi/src/geshi/vb.php
deleted file mode 100644
index 2d2a7b6..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/vb.php
+++ /dev/null
@@ -1,155 +0,0 @@
-<?php
-/*************************************************************************************
- * vb.php
- * ------
- * Author: Roberto Rossi (rsoftware@altervista.org)
- * Copyright: (c) 2004 Roberto Rossi (http://rsoftware.altervista.org),
- *                     Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.9.0
- * Date Started: 2004/08/30
- *
- * Visual Basic language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2008/08/27 (1.0.8.1)
- *  -  changed keyword list for better Visual Studio compliance
- * 2008/08/26 (1.0.8.1)
- *  -  Fixed multiline comments
- * 2004/11/27 (1.0.1)
- *  -  Added support for multiple object splitters
- * 2004/08/30 (1.0.0)
- *  -  First Release
- *
- * TODO (updated 2004/11/27)
- * -------------------------
- *
- *************************************************************************************
- *
- *     This file is part of GeSHi.
- *
- *   GeSHi is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   GeSHi is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with GeSHi; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- ************************************************************************************/
-
-$language_data = array (
-    'LANG_NAME' => 'Visual Basic',
-    'COMMENT_SINGLE' => array(),
-    'COMMENT_MULTI' => array(),
-    'COMMENT_REGEXP' => array(
-        // Comments (either single or multiline with _
-        1 => '/\'.*(?<! _)$/sUm',
-        ),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array('"'),
-    'ESCAPE_CHAR' => '',
-    'KEYWORDS' => array(
-        1 => array(
-            'Binary', 'Boolean', 'Byte', 'Currency', 'Date', 'Decimal', 'Double',
-            'String', 'Enum', 'Integer', 'Long', 'Object', 'Single', 'Variant'
-            ),
-        2 => array(
-            'CreateObject', 'GetObject', 'New', 'Option', 'Function',
-            'Call', 'Private', 'Public', 'Sub', 'Explicit', 'Compare', 'Exit'
-            ),
-        3 => array(
-            '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',
-            'Declare', 'Let', 'ByRef', 'ByVal',
-            'Optional', 'Property', 'Control', 'UBound', 'Mod',
-            'Implements', 'Input', 'LBound', 'Static', 'Stop',
-            'Type', 'TypeOf', 'On', 'Open', 'Output', 'ParamArray',
-            'Preserve', 'Print', 'RaiseEvent', 'Random', 'Line'
-            ),
-        5 => array(
-            'Nothing', 'False', 'True', 'Null', 'Empty'
-            ),
-        6 => array(
-            'ErrorHandler','ExitProc', 'PublishReport'
-            ),
-        ),
-    '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: #F660AB; font-weight: bold;',
-            2 => 'color: #E56717; font-weight: bold;',
-            3 => 'color: #8D38C9; font-weight: bold;',
-            4 => 'color: #151B8D; font-weight: bold;',
-            5 => 'color: #00C2FF; font-weight: bold;',
-            6 => 'color: #3EA99F; font-weight: bold;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #008000;'
-            ),
-        'BRACKETS' => array(
-            ),
-        'STRINGS' => array(
-            0 => 'color: #800000;'
-            ),
-        'NUMBERS' => array(
-            ),
-        'METHODS' => array(
-            ),
-        'SYMBOLS' => array(
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #800000; font-weight: bold;'
-            ),
-        'SCRIPT' => array(
-            ),
-        'REGEXPS' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => '',
-        4 => '',
-        5 => '',
-        6 => ''
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(
-        ),
-    'REGEXPS' => array(
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        ),
-    'PARSER_CONTROL' => array(
-        'ENABLE_FLAGS' => array(
-            'BRACKETS' => GESHI_NEVER,
-            'SYMBOLS' => GESHI_NEVER,
-            'NUMBERS' => GESHI_NEVER
-            )
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/vbnet.php b/wiki/vendor/geshi/geshi/src/geshi/vbnet.php
deleted file mode 100644
index 058b9c4..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/vbnet.php
+++ /dev/null
@@ -1,180 +0,0 @@
-<?php
-/*************************************************************************************
- * vbnet.php
- * ---------
- * Author: Alan Juden (alan@judenware.org)
- * Copyright: (c) 2004 Alan Juden, Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.9.0
- * Date Started: 2004/06/04
- *
- * VB.NET language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2004/11/27 (1.0.0)
- *  -  Initial release
- *
- * TODO (updated 2004/11/27)
- * -------------------------
- *
- *************************************************************************************
- *
- *     This file is part of GeSHi.
- *
- *   GeSHi is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   GeSHi is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with GeSHi; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- ************************************************************************************/
-
-$language_data = array (
-    'LANG_NAME' => 'vb.net',
-    'COMMENT_SINGLE' => array(1 => "'"),
-    'COMMENT_MULTI' => array(),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array('"'),
-    'ESCAPE_CHAR' => '',
-    'KEYWORDS' => array(
-        //Keywords
-        1 => array(
-            'AddHandler', 'AddressOf', 'Alias', 'And', 'AndAlso', 'As', 'ByRef', 'ByVal',
-            'Call', 'Case', 'Catch', 'Char', 'Class', 'Const', 'Continue',
-            'Declare', 'Default',
-            'Delegate', 'Dim', 'DirectCast', 'Do', 'Each', 'Else', 'ElseIf', 'End', 'EndIf',
-            'Enum', 'Erase', 'Error', 'Event', 'Exit', 'False', 'Finally', 'For', 'Friend', 'Function',
-            'Get', 'GetType', 'GetXMLNamespace', 'Global', 'GoSub', 'GoTo', 'Handles', 'If', 'Implements',
-            'Imports', 'In', 'Inherits', 'Interface', 'Is', 'IsNot', 'Let', 'Lib', 'Like', 'Loop', 'Me',
-            'Mod', 'Module', 'Module Statement', 'MustInherit', 'MustOverride', 'MyBase', 'MyClass', 'Namespace',
-            'Narrowing', 'New', 'Next', 'Not', 'Nothing', 'NotInheritable', 'NotOverridable', 'Of', 'On',
-            'Operator', 'Option', 'Optional', 'Or', 'OrElse', 'Out', 'Overloads', 'Overridable', 'Overrides',
-            'ParamArray', 'Partial', 'Private', 'Property', 'Protected', 'Public', 'RaiseEvent', 'ReadOnly', 'ReDim',
-            'REM', 'RemoveHandler', 'Resume', 'Return', 'Select','Set', 'Shadows', 'Shared', 'Static', 'Step',
-            'Stop', 'Structure', 'Sub', 'SyncLock', 'Then', 'Throw', 'To', 'True', 'Try', 'TryCast', 'TypeOf',
-            'Using', 'Wend', 'When', 'While', 'Widening', 'With', 'WithEvents', 'WriteOnly', 'Xor'
-            ),
-        //Data Types
-        2 => array(
-            'Boolean', 'Byte', 'Date', 'Decimal', 'Double', 'Integer', 'Long', 'Object',
-            'SByte', 'Short', 'Single', 'String', 'UInteger', 'ULong', 'UShort'
-            ),
-        //Compiler Directives
-        3 => array(
-            '#Const', '#Else', '#ElseIf', '#End', '#If'
-            ),
-        //Constants
-        4 => array(
-            'CBool', 'CByte', 'CChar', 'CChr', 'CDate', 'CDbl', 'CDec','CInt', 'CLng', 'CLng8', 'CObj', 'CSByte', 'CShort',
-            'CSng', 'CStr', 'CType', 'CUInt', 'CULng', 'CUShort'
-            ),
-        //Linq
-        5 => array(
-            'By','From','Group','Where'
-            ),
-        //Built-in functions
-        7 => array(
-            'ABS', 'ARRAY', 'ASC', 'ASCB', 'ASCW', 'CALLBYNAME', 'CHOOSE', 'CHR', 'CHR$', 'CHRB', 'CHRB$', 'CHRW',
-            'CLOSE', 'COMMAND', 'COMMAND$', 'CONVERSION',
-            'COS', 'CREATEOBJECT', 'CURDIR', 'CVDATE', 'DATEADD',
-            'DATEDIFF', 'DATEPART', 'DATESERIAL', 'DATEVALUE', 'DAY', 'DDB', 'DIR', 'DIR$',
-            'EOF', 'ERROR$', 'EXP', 'FILEATTR', 'FILECOPY', 'FILEDATATIME', 'FILELEN', 'FILTER',
-            'FIX', 'FORMAT', 'FORMAT$', 'FORMATCURRENCY', 'FORMATDATETIME', 'FORMATNUMBER',
-            'FORMATPERCENT', 'FREEFILE', 'FV', 'GETALLSETTINGS', 'GETATTRGETOBJECT', 'GETSETTING',
-            'HEX', 'HEX$', 'HOUR', 'IIF', 'IMESTATUS', 'INPUT$', 'INPUTB', 'INPUTB$', 'INPUTBOX',
-            'INSTR', 'INSTRB', 'INSTRREV', 'INT', 'IPMT', 'IRR', 'ISARRAY', 'ISDATE', 'ISEMPTY',
-            'ISERROR', 'ISNULL', 'ISNUMERIC', 'ISOBJECT', 'JOIN', 'LBOUND', 'LCASE', 'LCASE$',
-            'LEFT', 'LEFT$', 'LEFTB', 'LEFTB$', 'LENB', 'LINEINPUT', 'LOC', 'LOF', 'LOG', 'LTRIM',
-            'LTRIM$', 'MID$', 'MIDB', 'MIDB$', 'MINUTE', 'MIRR', 'MKDIR', 'MONTH', 'MONTHNAME',
-            'MSGBOX', 'NOW', 'NPER', 'NPV', 'OCT', 'OCT$', 'PARTITION', 'PMT', 'PPMT', 'PV',
-            'RATE', 'REPLACE', 'RIGHT', 'RIGHT$', 'RIGHTB', 'RIGHTB$', 'RMDIR', 'RND', 'RTRIM',
-            'RTRIM$', 'SECOND', 'SIN', 'SLN', 'SPACE', 'SPACE$', 'SPC', 'SPLIT', 'SQRT', 'STR', 'STR$',
-            'STRCOMP', 'STRCONV', 'STRING$', 'STRREVERSE', 'SYD', 'TAB', 'TAN', 'TIMEOFDAY',
-            'TIMER', 'TIMESERIAL', 'TIMEVALUE', 'TODAY', 'TRIM', 'TRIM$', 'TYPENAME', 'UBOUND',
-            'UCASE', 'UCASE$', 'VAL', 'WEEKDAY', 'WEEKDAYNAME', 'YEAR'
-            ),
-        ),
-    'SYMBOLS' => array(
-        '+', '-', '*', '?', '=', '/', '%', '&', '>', '<', '^', '!',
-        '(', ')', '{', '}', '.'
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false,
-        2 => false,
-        3 => false,
-        4 => false,
-        5 => false,
-        7 => false
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #0000FF; font-weight: bold;',  //Keywords
-            2 => 'color: #6a5acd;',                     //primitive Data Types
-            3 => 'color: #6a5acd; font-weight: bold;',  //preprocessor-commands
-            4 => 'color: #cd6a5a;',                     //Constants
-            5 => 'color: #cd6a5a; font-weight: bold;',  //LinQ
-            7 => 'color: #000066;',                     //Built-in functions
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #008000; font-style: italic;',
-            'MULTI' => 'color: #008000; font-style: italic;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #008080; font-weight: bold;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #000000;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #a52a2a; back-color: #fffacd;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #a52a2a; back-color: #fffacd;'
-            ),
-        'METHODS' => array(
-            1 => 'color: #000000;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #000000;'
-            ),
-        'REGEXPS' => array(
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => 'http://www.google.com/search?q={FNAMEU}+site:msdn.microsoft.com',
-        4 => '',
-        5 => '',
-        7 => 'http://www.google.com/search?q={FNAMEU}+site:msdn.microsoft.com'
-        ),
-    'OOLANG' => true,
-    'OBJECT_SPLITTERS' => array(
-        1 =>'.'
-        ),
-    'REGEXPS' => array(
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        ),
-    'PARSER_CONTROL' => array(
-        'KEYWORDS' => array(
-            7 => array(
-                'DISALLOWED_AFTER' => '(?!\w)(?=\s*\()'
-                )
-            )
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/vbscript.php b/wiki/vendor/geshi/geshi/src/geshi/vbscript.php
deleted file mode 100644
index 4f73664..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/vbscript.php
+++ /dev/null
@@ -1,153 +0,0 @@
-<?php
-/*************************************************************************************
- * vbscript.php
- * ------
- * Author: Roberto Rossi (rsoftware@altervista.org)
- * 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.9.0
- * Date Started: 2012/08/20
- *
- * VBScript language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2012/08/20 (1.0.0)
- *  -  First Release
- *
- * TODO (updated 2004/11/27)
- * -------------------------
- *
- *************************************************************************************
- *
- *     This file is part of GeSHi.
- *
- *   GeSHi is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   GeSHi is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with GeSHi; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- ************************************************************************************/
-
-$language_data = array (
-    'LANG_NAME' => 'VBScript',
-    'COMMENT_SINGLE' => array(),
-    'COMMENT_MULTI' => array(),
-    'COMMENT_REGEXP' => array(
-        // Comments (either single or multiline with _
-        1 => '/\'.*(?<! _)\n/sU',
-        ),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array('"'),
-    'ESCAPE_CHAR' => '',
-    'KEYWORDS' => array(
-        1 => array(
-            'Empty', 'Nothing', 'Null', 'vbArray', 'vbBoolean', 'vbByte',
-            'vbCr', 'vbCrLf', 'vbCurrency', 'vbDate', 'vbDouble', 'vbEmpty',
-            'vbError', 'vbFirstFourDays', 'vbFirstFullWeek', 'vbFirstJan1',
-            'vbFormFeed', 'vbFriday', 'vbInteger', 'vbLf', 'vbLong', 'vbMonday',
-            'vbNewLine', 'vbNull', 'vbNullChar', 'vbNullString', 'vbObject',
-            'vbSaturday', 'vbSingle', 'vbString', 'vbSunday', 'vbTab',
-            'vbThursday', 'vbTuesday', 'vbUseSystem', 'vbUseSystemDayOfWeek',
-            'vbVariant', 'vbWednesday', 'FALSE', 'TRUE'
-            ),
-        2 => array(
-            'bs', 'Array', 'Asc', 'Atn', 'CBool', 'CByte', 'CDate', 'CDbl', 'Chr',
-            'CInt', 'CLng', 'Cos', 'CreateObject', 'CSng', 'CStr', 'Date', 'DateAdd',
-            'DateDiff', 'DatePart', 'DateSerial', 'DateValue', 'Day', 'Eval', 'Exp',
-            'Filter', 'Fix', 'FormatDateTime', 'FormatNumber', 'FormatPercent',
-            'GetObject', 'Hex', 'Hour', 'InputBox', 'InStr', 'InstrRev', 'Int',
-            'IsArray', 'IsDate', 'IsEmpty', 'IsNull', 'IsNumeric', 'IsObject', 'Join',
-            'LBound', 'LCase', 'Left', 'Len', 'Log', 'LTrim', 'Mid', 'Minute', 'Month',
-            'MonthName', 'MsgBox', 'Now', 'Oct', 'Replace', 'RGB', 'Right', 'Rnd',
-            'Round', 'RTrim', 'ScriptEngine', 'ScriptEngineBuildVersion',
-            'ScriptEngineMajorVersion', 'ScriptEngineMinorVersion', 'Second',
-            'Sgn', 'Sin', 'Space', 'Split', 'Sqr', 'StrComp', 'String', 'StrReverse',
-            'Tan', 'Time', 'TimeSerial', 'TimeValue', 'Trim', 'TypeName', 'UBound',
-            'UCase', 'VarType', 'Weekday', 'WeekdayName', 'Year'
-            ),
-        3 => array(
-            'Call', 'Case', 'Const', 'Dim', 'Do', 'Each', 'Else', 'End', 'Erase',
-            'Execute', 'Exit', 'For', 'Function', 'Gosub', 'Goto', 'If', 'Loop',
-            'Next', 'On Error', 'Option Explicit', 'Private', 'Public',
-            'Randomize', 'ReDim', 'Rem', 'Resume', 'Select', 'Set', 'Sub', 'Then',
-            'Wend', 'While', 'With', 'In', 'To', 'Step'
-            ),
-        4 => array(
-            'And', 'Eqv', 'Imp', 'Is', 'Mod', 'Not', 'Or', 'Xor'
-            ),
-        ),
-    'SYMBOLS' => array(
-        '-', '&', '*', '/', '\\', '^', '+', '<', '<=', '<>', '=', '>', '>='
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false,
-        2 => false,
-        3 => false,
-        4 => false
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #F660AB; font-weight: bold;',
-            2 => 'color: #E56717; font-weight: bold;',
-            3 => 'color: #8D38C9; font-weight: bold;',
-            4 => 'color: #151B8D; font-weight: bold;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #008000;'
-            ),
-        'BRACKETS' => array(
-            ),
-        'STRINGS' => array(
-            0 => 'color: #800000;'
-            ),
-        'NUMBERS' => array(
-            ),
-        'METHODS' => array(
-            ),
-        'SYMBOLS' => array(
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #800000; font-weight: bold;'
-            ),
-        'SCRIPT' => array(
-            ),
-        'REGEXPS' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => '',
-        4 => ''
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(
-        ),
-    'REGEXPS' => array(
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        ),
-    'PARSER_CONTROL' => array(
-        'KEYWORDS' => array(
-            'SPACE_AS_WHITESPACE' => true
-            ),
-        'ENABLE_FLAGS' => array(
-            'BRACKETS' => GESHI_NEVER
-            )
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/vedit.php b/wiki/vendor/geshi/geshi/src/geshi/vedit.php
deleted file mode 100644
index fa79420..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/vedit.php
+++ /dev/null
@@ -1,101 +0,0 @@
-<?php
-/*************************************************************************************
- * vedit.php
- * --------
- * Author: Pauli Lindgren (pauli0212@yahoo.com)
- * Copyright: (c) 2009 Pauli Lindgren (http://koti.mbnet.fi/pkl/)
- * Release Version: 1.0.9.0
- * Date Started: 2009/12/16
- *
- * Vedit macro language language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2009/12/16 (1.0.8.11)
- *  -  First Release
- *
- * TODO (updated 2009/12/16)
- * -------------------------
- * - Add keyword groups 2, 3 and 4.
- *
- *
- *************************************************************************************
- *
- *     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' => 'Vedit macro language',
-    'COMMENT_SINGLE' => array(1 => '//'),
-    'COMMENT_MULTI' => array(),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array('"', '\''),
-    'ESCAPE_CHAR' => '',
-    'KEYWORDS' => array(
-        1 => array(
-            'break', 'breakout', 'break_out', 'continue', 'do', 'else', 'for',
-            'goto', 'if', 'repeat', 'return', 'while'
-            )
-        ),
-    'SYMBOLS' => array(
-        1 => array(
-            '(', ')', '{', '}', '[', ']', '+', '-', '*', '/', '%',
-            '=', '<', '>', '!', '^', '&', '|', '?', ':', ';', ','
-            )
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #b1b100;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #666666; font-style: italic;',
-            '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(
-            0 => 'color: #004000;'
-            ),
-        'SYMBOLS' => array(
-            1 => 'color: #339933;'
-            ),
-        'REGEXPS' => array(),
-        'SCRIPT' => array()
-        ),
-    'URLS' => array(1 => ''),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(),
-    'REGEXPS' => array(),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(),
-    'HIGHLIGHT_STRICT_BLOCK' => array()
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/verilog.php b/wiki/vendor/geshi/geshi/src/geshi/verilog.php
deleted file mode 100644
index 8632304..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/verilog.php
+++ /dev/null
@@ -1,193 +0,0 @@
-<?php
-/**
- * verilog.php
- * -----------
- * Author: Günter Dannoritzer <dannoritzer@web.de>
- * Copyright: (C) 2008 Günter Dannoritzer
- * Release Version: 1.0.9.0
- * Date Started: 2008/05/28
- *
- * Verilog language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2008/05/29
- *   -  added regular expression to find numbers of the form 4'b001xz
- *   -  added regular expression to find values for `timescale command
- *   -  extended macro keywords
- *
- * TODO (updated 2008/05/29)
- * -------------------------
- *
- * 2013/01/08
- *   -  extended keywords to include system keywords
- *
- *************************************************************************************
- *
- *     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' => 'Verilog',
-    'COMMENT_SINGLE' => array(1 => '//'),
-    'COMMENT_MULTI' => array('/*' => '*/'),
-    'COMMENT_REGEXP' => array(1 => '/\/\/(?:\\\\\\\\|\\\\\\n|.)*$/m'),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array('"'),
-    'ESCAPE_CHAR' => '\\',
-    'KEYWORDS' => array(
-        // keywords
-        1 => array(
-            'accept_on','alias',
-            'always','always_comb','always_ff','always_latch','and','assert',
-            'assign','assume','automatic','before','begin','bind','bins','binsof',
-            'bit','break','buf','bufif0','bufif1','byte','case','casex','casez',
-            'cell','chandle','checker','class','clocking','cmos','config','const',
-            'constraint','context','continue','cover','covergroup','coverpoint','cross',
-            'deassign','default','defparam','design','disable','dist','do','edge','else',
-            'end','endcase','endchecker','endclass','endclocking','endconfig',
-            'endfunction','endgenerate','endgroup','endinterface','endmodule',
-            'endpackage','endprimitive','endprogram','endproperty','endspecify',
-            'endsequence','endtable','endtask','enum','event','eventually','expect',
-            'export','extends','extern','final','first_match','for','force','foreach',
-            'forever','fork','forkjoin','function','generate','genvar','global',
-            'highz0','highz1','if','iff','ifnone','ignore_bins','illegal_bins',
-            'implies','import','incdir','include','initial','inout','input','inside',
-            'instance','int','integer','interface','intersect','join','join_any',
-            'join_none','large','let','liblist','library','local','localparam',
-            'logic','longint','macromodule','matches','medium','modport','module','nand',
-            'negedge','new','nexttime','nmos','nor','noshowcancelled','not','notif0',
-            'notif1','null','or','output','package','packed','parameter','pmos','posedge',
-            'primitive','priority','program','property','protected','pull0','pull1',
-            'pulldown','pullup','pulsestyle_ondetect','pulsestyle_onevent','pure',
-            'rand','randc','randcase','randsequence','rcmos','real','realtime','ref',
-            'reg','reject_on','release','repeat','restrict','return','rnmos','rpmos',
-            'rtran','rtranif0','rtranif1','s_always','s_eventually','s_nexttime',
-            's_until','s_until_with','scalared','sequence','shortint','shortreal',
-            'showcancelled','signed','small','solve','specify','specparam','static',
-            'string','strong','strong0','strong1','struct','super','supply0','supply1',
-            'sync_accept_on','sync_reject_on','table','tagged','task','this','throughout',
-            'time','timeprecision','timeunit','tran','tranif0','tranif1','tri','tri0',
-            'tri1','triand','trior','trireg','type','typedef','union','unique','unique0',
-            'unsigned','until','until_with','untyped','use','uwire','var','vectored',
-            'virtual','void','wait','wait_order','wand','weak','weak0','weak1','while',
-            'wildcard','wire','with','within','wor','xnor','xor'
-            ),
-        // system tasks
-        2 => array(
-            '$display', '$monitor',
-            '$dumpall', '$dumpfile', '$dumpflush', '$dumplimit', '$dumpoff',
-            '$dumpon', '$dumpvars',
-            '$fclose', '$fdisplay', '$fopen',
-            '$finish', '$fmonitor', '$fstrobe', '$fwrite',
-            '$fgetc', '$ungetc', '$fgets', '$fscanf', '$fread', '$ftell',
-            '$fseek', '$frewind', '$ferror', '$fflush', '$feof',
-            '$random',
-            '$readmemb', '$readmemh', '$readmemx',
-            '$signed', '$stime', '$stop',
-            '$strobe', '$time', '$unsigned', '$write'
-            ),
-        // macros
-        3 => array(
-            '`default-net', '`define',
-            '`celldefine', '`default_nettype', '`else', '`elsif', '`endcelldefine',
-            '`endif', '`ifdef', '`ifndef', '`include', '`line', '`nounconnected_drive',
-            '`resetall', '`timescale', '`unconnected_drive', '`undef'
-            ),
-        ),
-    'SYMBOLS' => array(
-        '(', ')', '{', '}', '[', ']', '=', '+', '-', '*', '/', '!', '%',
-        '^', '&', '|', '~',
-        '?', ':',
-        '#', '<<', '<<<',
-        '>', '<', '>=', '<=',
-        '@', ';', ','
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false,
-        2 => false,
-        3 => false
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #A52A2A; font-weight: bold;',
-            2 => 'color: #9932CC;',
-            3 => 'color: #008800;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #00008B; font-style: italic;',
-            'MULTI' => 'color: #00008B; font-style: italic;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #9F79EE'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #9F79EE;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #FF00FF;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #ff0055;'
-            ),
-        'METHODS' => array(
-            1 => 'color: #202020;',
-            2 => 'color: #202020;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #5D478B;'
-            ),
-        'REGEXPS' => array(
-            0 => 'color: #ff0055;',
-            1 => 'color: #ff0055;',
-            ),
-        'SCRIPT' => array(
-            0 => '',
-            1 => '',
-            2 => '',
-            3 => ''
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => ''
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(
-        1 => ''
-        ),
-    'REGEXPS' => array(
-        // numbers
-        0 => "\d'[bdh][0-9_a-fA-FxXzZ]+",
-        // time -> 1, 10, or 100; s, ms, us, ns, ps, of fs
-        1 => "1[0]{0,2}[munpf]?s"
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        1 => ''
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        0 => true,
-        1 => true,
-        2 => true,
-        3 => true
-        ),
-    'TAB_WIDTH' => 4
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/vhdl.php b/wiki/vendor/geshi/geshi/src/geshi/vhdl.php
deleted file mode 100644
index edb0fd6..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/vhdl.php
+++ /dev/null
@@ -1,181 +0,0 @@
-<?php
-/*************************************************************************************
- * vhdl.php
- * --------
- * Author: Alexander 'E-Razor' Krause (admin@erazor-zone.de)
- * Contributors:
- *  - Kevin Thibedeau (kevinpt@yahoo.com)
- * Copyright: (c) 2005 Alexander Krause
- * Release Version: 1.0.9.0
- * Date Started: 2005/06/15
- *
- * VHDL (VHSICADL, very high speed integrated circuit HDL) language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2012/4/30 (1.0.8.10)
- *  -  Reworked to support new features of VHDL-2008.
- *  -    Changes include: multi-line comments, all new keywords, PSL keywords and metacomments,
- *  -    based literals, attribute highlighting, preprocessor macros (from PSL), and other small
- *  -    improvements.
- * 2008/05/23 (1.0.7.22)
- *  -  Added description of extra language features (SF#1970248)
- *  -  Optimized regexp group 0 somewhat
- * 2006/06/15 (1.0.0)
- *  -  First Release
- *
- * TODO
- * ----
- *
- *************************************************************************************
- *
- *     This file is part of GeSHi.
- *
- *   GeSHi is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   GeSHi is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with GeSHi; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- ************************************************************************************/
-
-$language_data = array (
-    'LANG_NAME' => 'VHDL',
-    'COMMENT_SINGLE' => array(1 => '--'),
-    'COMMENT_MULTI' => array('/*' => '*/'),
-    'COMMENT_REGEXP' => array(
-        // PSL adds C-preprocessor support
-        1 => '/(?<=\s)#(?:\\\\\\\\|\\\\\\n|.)*$/m',
-        // PSL metacomments (single-line only for now)
-        2 => '/--\s*@?psl(?:.)*?;$/m',
-        ),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array('"'),
-    'ESCAPE_CHAR' => '',
-    'KEYWORDS' => array(
-        /*keywords*/
-        1 => array(
-            'access','after','alias','all','attribute','architecture','array','begin',
-            'block','body','buffer','bus','case','case?','component','configuration','constant','context',
-            'disconnect','downto','else','elsif','end','entity','exit','file','for','force',
-            'function','generate','generic','group','guarded','if','impure','in',
-            'inertial','inout','is','label','library','linkage','literal','loop',
-            'map','new','next','null','of','on','open','others','out','package',
-            'port','postponed','procedure','process','protected','pure','range','record','register',
-            'reject','release','report','return','select','severity','shared','signal','subtype',
-            'then','to','transport','type','unaffected','units','until','use','variable',
-            'wait','when','while','with'
-            ),
-        /*types and standard libs*/
-        2 => array(
-            'bit','bit_vector','character','boolean','integer','real','time','delay_length','string',
-            'severity_level','positive','natural','signed','unsigned','line','text',
-            'std_logic','std_logic_vector','std_ulogic','std_ulogic_vector',
-            'sfixed','ufixed','float','float32','float64','float128',
-            'work','ieee','std_logic_1164','math_real','math_complex','textio',
-            'numeric_std','numeric_std_signed','numeric_std_unsigned','numeric_bit'
-            ),
-        /*operators*/
-        3 => array(
-            'abs','and','mod','nor','not','or','rem','rol','ror','sla','sll','sra','srl','xnor','xor'
-            ),
-        /*psl*/
-        4 => array(
-            'assert','assume','assume_guarantee','clock','const','countones','cover','default',
-            'endpoint','fairness','fell','forall','inf','inherit','isunknown','onehot','onehot0','property',
-            'prev','restrict','restrict_guarantee','rose','sequence','stable','strong','union','vmode','vprop','vunit'
-            ),
-        /*psl operators*/
-        5 => array(
-            'abort','always','before','before!','before!_','before_','eventually!','never',
-            'next!','next_a','next_a!','next_e','next_e!','next_event','next_event!','next_event_a','next_event_a!',
-            'next_event_e','next_event_e!','until!','until!_','until_','within'
-            )
-        ),
-    'SYMBOLS' => array(
-        '[', ']', '(', ')',
-        ';',':',
-        '<','>','=','+','-','*','/','&','|','?'
-    ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false,
-        2 => false,
-        3 => false,
-        4 => false,
-        5 => false
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #000080; font-weight: bold;',
-            2 => 'color: #0000ff;',
-            3 => 'color: #000066;',
-            4 => 'color: #000080; font-weight: bold;',
-            5 => 'color: #000066;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #008000; font-style: italic;',
-            2 => 'color: #ff0000; font-weight: bold;',
-            'MULTI' => 'color: #008000; font-style: italic;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #000099; font-weight: bold;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #000066;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #7f007f;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #ff0000;'
-            ),
-        'METHODS' => array(
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #000066;'
-            ),
-        'REGEXPS' => array(
-            0 => 'color: #ff0000;',
-            //1 => 'color: #ff0000;',
-            2 => 'color: #ee82ee;'
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => '',
-        4 => '',
-        5 => ''
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(
-        ),
-    'REGEXPS' => array(
-        //Based literals, scientific notation, and time units
-        0 => '(\b\d+#[[:xdigit:]_]+#)|'.
-            '(\b[\d_]+(\.[\d_]+)?[eE][+\-]?[\d_]+)|'.
-            '(\b(hr|min|sec|ms|us|ns|ps|fs)\b)',
-        //Character literals
-        /* GeSHi won't match this pattern for some reason and QUOTEMARKS
-         * can't be used because it interferes with attribute parsing */
-        /*1 => "\b'.'\b",*/
-        //Attributes
-        2 => "'\w+(?!')"
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/vim.php b/wiki/vendor/geshi/geshi/src/geshi/vim.php
deleted file mode 100644
index 39ec831..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/vim.php
+++ /dev/null
@@ -1,418 +0,0 @@
-<?php
-/*************************************************************************************
- * vim.php
- * ----------------
- * Author: Swaroop C H (swaroop@swaroopch.com)
- * Contributors:
- *  - Laurent Peuch (psycojoker@gmail.com)
- * Copyright: (c) 2008 Swaroop C H (http://www.swaroopch.com)
- * Release Version: 1.0.9.0
- * Date Started: 2008/10/19
- *
- * Vim scripting language file for GeSHi.
- *
- * Reference: http://qbnz.com/highlighter/geshi-doc.html#language-files
- * All keywords scraped from `:help expression-commands`.
- * All method names scraped from `:help function-list`.
- *
- * CHANGES
- * -------
- * 2008/10/19 (1.0.8.2)
- * - Started.
- * 2009/07/05
- * - Fill out list of zillion commands (maybe somes still miss).
- * - fix a part of the regex, now works for comment that have white space before the "
- *
- * TODO (updated 2009/07/05)
- * -------------------------
- * - Make this damn string with "" work correctly. I've just remove it for my wiki.
- * - Make the comment regex able to find comment after some code.
- *   (i.e: let rocks " unworking comment)
- * - Make <F1> <F2> ... <Esc> <CR> ... works event if they aren't surround by space.
- *
- *************************************************************************************
- *
- *     This file is part of GeSHi.
- *
- *   GeSHi is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   GeSHi is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with GeSHi; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- ************************************************************************************/
-
-$language_data = array(
-    'LANG_NAME' => 'Vim Script',
-    'COMMENT_SINGLE' => array(),
-    'COMMENT_REGEXP' => array(
-        1 => "/\s*\"[^\"]*?$/m",
-        //Regular expressions (Ported from perl.php)
-//        2 => "/(?<=[\\s^])(s|tr|y)\\/(?:\\\\.|(?!\n)[^\\/\\\\])+\\/(?:\\\\.|(?!\n)[^\\/\\\\])*\\/[msixpogcde]*(?=[\\s$\\.\\;])|(?<=[\\s^(=])(m|q[qrwx]?)?\\/(?:\\\\.|(?!\n)[^\\/\\\\])+\\/[msixpogc]*(?=[\\s$\\.\\,\\;\\)])/iU",
-        ),
-    'COMMENT_MULTI' => array(),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array("'", '"'),
-    'ESCAPE_CHAR' => '\\',
-    'KEYWORDS' => array(
-        1 => array(
-            'au', 'augroup', 'autocmd', 'brea', 'break', 'bufadd',
-            'bufcreate', 'bufdelete', 'bufenter', 'buffilepost',
-            'buffilepre', 'bufleave', 'bufnew', 'bufnewfile',
-            'bufread', 'bufreadcmd', 'bufreadpost', 'bufreadpre',
-            'bufunload', 'bufwinenter', 'bufwinleave', 'bufwipeout',
-            'bufwrite', 'bufwritecmd', 'bufwritepost', 'bufwritepre',
-            'call', 'cat', 'catc', 'catch', 'cmd-event', 'cmdwinenter',
-            'cmdwinleave', 'colorscheme', 'con', 'confirm', 'cont', 'conti',
-            'contin', 'continu', 'continue', 'cursorhold', 'cursorholdi',
-            'cursormoved', 'cursormovedi', 'ec', 'echo', 'echoe',
-            'echoer', 'echoerr', 'echoh', 'echohl', 'echom', 'echoms',
-            'echomsg', 'echon', 'el', 'els', 'else', 'elsei', 'elseif',
-            'en', 'encodingchanged', 'end', 'endfo', 'endfor', 'endi',
-            'endif', 'endt', 'endtr', 'endtry', 'endw', 'endwh', 'endwhi',
-            'endwhil', 'endwhile', 'exe', 'exec', 'execu', 'execut',
-            'execute', 'fileappendcmd', 'fileappendpost', 'fileappendpre',
-            'filechangedro', 'filechangedshell', 'filechangedshellpost',
-            'filereadcmd', 'filereadpost', 'filereadpre',
-            'filetype', 'filewritecmd', 'filewritepost', 'filewritepre',
-            'filterreadpost', 'filterreadpre', 'filterwritepost',
-            'filterwritepre', 'fina', 'final', 'finall', 'finally',
-            'finish', 'focusgained', 'focuslost', 'for', 'fun', 'func',
-            'funct', 'functi', 'functio', 'function', 'funcundefined',
-            'guienter', 'guifailed', 'hi', 'highlight', 'if', 'in',
-            'insertchange', 'insertenter', 'insertleave', 'let', 'lockv',
-            'lockva', 'lockvar', 'map', 'match', 'menupopup', 'nnoremap',
-            'quickfixcmdpost', 'quickfixcmdpre', 'remotereply', 'retu',
-            'retur', 'return', 'sessionloadpost', 'set', 'setlocal',
-            'shellcmdpost', 'shellfilterpost', 'sourcecmd', 'sourcepre',
-            'spellfilemissing', 'stdinreadpost', 'stdinreadpre',
-            'swapexists', 'syntax', 'tabenter', 'tableave', 'termchanged',
-            'termresponse', 'th', 'thr', 'thro', 'throw', 'tr', 'try', 'unl',
-            'unle', 'unlet', 'unlo', 'unloc', 'unlock', 'unlockv',
-            'unlockva', 'unlockvar', 'user', 'usergettingbored',
-            'vimenter', 'vimleave', 'vimleavepre', 'vimresized', 'wh',
-            'whi', 'whil', 'while', 'winenter', 'winleave'
-            ),
-        2 => array(
-            '&lt;CR&gt;', '&lt;Esc&gt;', '&lt;F1&gt;', '&lt;F10&gt;',
-            '&lt;F11&gt;', '&lt;F12&gt;', '&lt;F2&gt;', '&lt;F3&gt;',
-            '&lt;F4&gt;', '&lt;F5&gt;', '&lt;F6&gt;', '&lt;F7&gt;',
-            '&lt;F8&gt;', '&lt;F9&gt;', '&lt;cr&gt;', '&lt;silent&gt;',
-            '-nargs', 'acd', 'ai', 'akm', 'al', 'aleph',
-            'allowrevins', 'altkeymap', 'ambiwidth', 'ambw',
-            'anti', 'antialias', 'ar', 'arab', 'arabic',
-            'arabicshape', 'ari', 'arshape', 'autochdir',
-            'autoindent', 'autoread', 'autowrite', 'autowriteall',
-            'aw', 'awa', 'background', 'backspace', 'backup',
-            'backupcopy', 'backupdir', 'backupext',
-            'backupskip', 'balloondelay', 'ballooneval', 'balloonexpr',
-            'bdir', 'bdlay', 'beval', 'bex', 'bexpr', 'bg',
-            'bh', 'bin', 'binary', 'biosk', 'bioskey',
-            'bk', 'bkc', 'bl', 'bomb', 'breakat', 'brk',
-            'bs', 'bsdir', 'bsk', 'bt', 'bufhidden',
-            'buftype', 'casemap', 'cb',
-            'ccv', 'cd', 'cdpath', 'cedit', 'cf', 'cfu', 'ch',
-            'charconvert', 'ci', 'cin', 'cink',
-            'cinkeys', 'cino', 'cinoptions', 'cinw', 'cinwords',
-            'clipboard', 'cmdheight', 'cmdwinheight',
-            'cmp', 'cms', 'co', 'columns', 'com',
-            'comc', 'comcl', 'comcle', 'comclea', 'comclear', 'comm',
-            'comma', 'comman', 'command', 'comments', 'commentstring',
-            'compatible', 'completefunc', 'completeopt',
-            'consk', 'conskey', 'copyindent',
-            'cot', 'cp', 'cpo', 'cpoptions', 'cpt',
-            'cscopepathcomp', 'cscopeprg', 'cscopequickfix', 'cscopetag',
-            'cscopetagorder', 'cscopeverbose',
-            'cspc', 'csprg', 'csqf', 'cst', 'csto', 'csverb', 'cuc',
-            'cul', 'cursorcolumn', 'cursorline', 'cwh', 'debug',
-            'deco', 'def', 'define', 'delc', 'delco', 'delcom',
-            'delcombine', 'delcomm', 'delcomman', 'delcommand', 'dex',
-            'dg', 'dict', 'dictionary', 'diff', 'diffexpr',
-            'diffopt', 'digraph', 'dip', 'dir', 'directory', 'display',
-            'dlcomma', 'dy', 'ea', 'ead', 'eadirection',
-            'eb', 'ed', 'edcompatible', 'ef', 'efm',
-            'ei', 'ek', 'enc', 'encoding', 'endfun', 'endofline',
-            'eol', 'ep', 'equalalways', 'equalprg', 'errorbells',
-            'errorfile', 'errorformat', 'esckeys', 'et',
-            'eventignore', 'ex', 'expandtab', 'exrc', 'fcl',
-            'fcs', 'fdc', 'fde', 'fdi', 'fdl', 'fdls', 'fdm',
-            'fdn', 'fdo', 'fdt', 'fen', 'fenc', 'fencs', 'fex',
-            'ff', 'ffs', 'fileencoding', 'fileencodings', 'fileformat',
-            'fileformats', /*'filetype',*/ 'fillchars', 'fk',
-            'fkmap', 'flp', 'fml', 'fmr', 'fo', 'foldclose',
-            'foldcolumn', 'foldenable', 'foldexpr', 'foldignore',
-            'foldlevelstart', 'foldmarker', 'foldmethod', 'foldminlines',
-            'foldnestmax', 'foldopen', 'formatexpr', 'formatlistpat',
-            'formatoptions', 'formatprg', 'fp', 'fs', 'fsync', 'ft',
-            'gcr', 'gd', 'gdefault', 'gfm', 'gfn', 'gfs', 'gfw',
-            'ghr', 'go', 'gp', 'grepformat', 'grepprg', 'gtl',
-            'gtt', 'guicursor', 'guifont', 'guifontset',
-            'guifontwide', 'guiheadroom', 'guioptions', 'guipty',
-            'guitablabel', 'guitabtooltip', 'helpfile',
-            'helpheight', 'helplang', 'hf', 'hh', 'hid', 'hidden',
-            'history', 'hk', 'hkmap', 'hkmapp', 'hkp', 'hl',
-            'hlg', 'hls', 'hlsearch', 'ic', 'icon', 'iconstring',
-            'ignorecase', 'im', 'imactivatekey', 'imak', 'imc',
-            'imcmdline', 'imd', 'imdisable', 'imi', 'iminsert', 'ims',
-            'imsearch', 'inc', 'include', 'includeexpr',
-            'incsearch', 'inde', 'indentexpr', 'indentkeys',
-            'indk', 'inex', 'inf', 'infercase', 'insertmode', 'is', 'isf',
-            'isfname', 'isi', 'isident', 'isk', 'iskeyword',
-            'isp', 'isprint', 'joinspaces', 'js', 'key',
-            'keymap', 'keymodel', 'keywordprg', 'km', 'kmp', 'kp',
-            'langmap', 'langmenu', 'laststatus', 'lazyredraw', 'lbr',
-            'lcs', 'linebreak', 'lines', 'linespace', 'lisp',
-            'lispwords', 'list', 'listchars', 'lm', 'lmap',
-            'loadplugins', 'lpl', 'ls', 'lsp', 'lw', 'lz', 'ma',
-            'macatsui', 'magic', 'makeef', 'makeprg', 'mat',
-            'matchpairs', 'matchtime', 'maxcombine', 'maxfuncdepth',
-            'maxmapdepth', 'maxmem', 'maxmempattern',
-            'maxmemtot', 'mco', 'mef', 'menuitems', 'mfd', 'mh',
-            'mis', 'mkspellmem', 'ml', 'mls', 'mm', 'mmd', 'mmp',
-            'mmt', 'mod', 'modeline', 'modelines', 'modifiable',
-            'modified', 'more', 'mouse', 'mousef', 'mousefocus',
-            'mousehide', 'mousem', 'mousemodel', 'mouses',
-            'mouseshape', 'mouset', 'mousetime', 'mp', 'mps', 'msm',
-            'mzq', 'mzquantum', 'nf', 'noacd', 'noai', 'noakm',
-            'noallowrevins', 'noaltkeymap', 'noanti', 'noantialias',
-            'noar', 'noarab', 'noarabic', 'noarabicshape', 'noari',
-            'noarshape', 'noautochdir', 'noautoindent', 'noautoread',
-            'noautowrite', 'noautowriteall', 'noaw', 'noawa', 'nobackup',
-            'noballooneval', 'nobeval', 'nobin', 'nobinary', 'nobiosk',
-            'nobioskey', 'nobk', 'nobl', 'nobomb', 'nobuflisted', 'nocf',
-            'noci', 'nocin', 'nocindent', 'nocompatible', 'noconfirm',
-            'noconsk', 'noconskey', 'nocopyindent', 'nocp', 'nocscopetag',
-            'nocscopeverbose', 'nocst', 'nocsverb', 'nocuc', 'nocul',
-            'nocursorcolumn', 'nocursorline', 'nodeco', 'nodelcombine',
-            'nodg', 'nodiff', 'nodigraph', 'nodisable', 'noea', 'noeb',
-            'noed', 'noedcompatible', 'noek', 'noendofline', 'noeol',
-            'noequalalways', 'noerrorbells', 'noesckeys', 'noet',
-            'noex', 'noexpandtab', 'noexrc', 'nofen', 'nofk', 'nofkmap',
-            'nofoldenable', 'nogd', 'nogdefault', 'noguipty', 'nohid',
-            'nohidden', 'nohk', 'nohkmap', 'nohkmapp', 'nohkp', 'nohls',
-            'nohlsearch', 'noic', 'noicon', 'noignorecase', 'noim',
-            'noimc', 'noimcmdline', 'noimd', 'noincsearch', 'noinf',
-            'noinfercase', 'noinsertmode', 'nois', 'nojoinspaces',
-            'nojs', 'nolazyredraw', 'nolbr', 'nolinebreak', 'nolisp',
-            'nolist', 'noloadplugins', 'nolpl', 'nolz', 'noma',
-            'nomacatsui', 'nomagic', 'nomh', 'noml', 'nomod',
-            'nomodeline', 'nomodifiable', 'nomodified', 'nomore',
-            'nomousef', 'nomousefocus', 'nomousehide', 'nonu',
-            'nonumber', 'noodev', 'noopendevice', 'nopaste', 'nopi',
-            'nopreserveindent', 'nopreviewwindow', 'noprompt', 'nopvw',
-            'noreadonly', 'noremap', 'norestorescreen', 'norevins',
-            'nori', 'norightleft', 'norightleftcmd', 'norl', 'norlc',
-            'noro', 'nors', 'noru', 'noruler', 'nosb', 'nosc', 'noscb',
-            'noscrollbind', 'noscs', 'nosecure', 'nosft', 'noshellslash',
-            'noshelltemp', 'noshiftround', 'noshortname', 'noshowcmd',
-            'noshowfulltag', 'noshowmatch', 'noshowmode', 'nosi', 'nosm',
-            'nosmartcase', 'nosmartindent', 'nosmarttab', 'nosmd',
-            'nosn', 'nosol', 'nospell', 'nosplitbelow', 'nosplitright',
-            'nospr', 'nosr', 'nossl', 'nosta', 'nostartofline',
-            'nostmp', 'noswapfile', 'noswf', 'nota', 'notagbsearch',
-            'notagrelative', 'notagstack', 'notbi', 'notbidi', 'notbs',
-            'notermbidi', 'noterse', 'notextauto', 'notextmode',
-            'notf', 'notgst', 'notildeop', 'notimeout', 'notitle',
-            'noto', 'notop', 'notr', 'nottimeout', 'nottybuiltin',
-            'nottyfast', 'notx', 'novb', 'novisualbell', 'nowa',
-            'nowarn', 'nowb', 'noweirdinvert', 'nowfh', 'nowfw',
-            'nowildmenu', 'nowinfixheight', 'nowinfixwidth', 'nowiv',
-            'nowmnu', 'nowrap', 'nowrapscan', 'nowrite', 'nowriteany',
-            'nowritebackup', 'nows', 'nrformats', 'nu', 'number',
-            'numberwidth', 'nuw', 'odev', 'oft', 'ofu',
-            'omnifunc', 'opendevice', 'operatorfunc', 'opfunc',
-            'osfiletype', 'pa', 'para', 'paragraphs',
-            'paste', 'pastetoggle', 'patchexpr',
-            'patchmode', 'path', 'pdev', 'penc', 'pex', 'pexpr',
-            'pfn', 'ph', 'pheader', 'pi', 'pm', 'pmbcs',
-            'pmbfn', 'popt', 'preserveindent', 'previewheight',
-            'previewwindow', 'printdevice', 'printencoding', 'printexpr',
-            'printfont', 'printheader', 'printmbcharset',
-            'printmbfont', 'printoptions', 'prompt', 'pt', 'pumheight',
-            'pvh', 'pvw', 'qe', 'quoteescape', 'rdt',
-            'readonly', 'redrawtime', 'remap', 'report',
-            'restorescreen', 'revins', 'ri', 'rightleft', 'rightleftcmd',
-            'rl', 'rlc', 'ro', 'rs', 'rtp', 'ru',
-            'ruf', 'ruler', 'rulerformat', 'runtimepath', 'sb', 'sbo',
-            'sbr', 'sc', 'scb', 'scr', 'scroll', 'scrollbind',
-            'scrolljump', 'scrolloff', 'scrollopt',
-            'scs', 'sect', 'sections', 'secure', 'sel',
-            'selection', 'selectmode', 'sessionoptions', 'sft',
-            'sh', 'shcf', 'shell', 'shellcmdflag', 'shellpipe',
-            'shellquote', 'shellredir', 'shellslash',
-            'shelltemp', 'shelltype', 'shellxquote', 'shiftround',
-            'shiftwidth', 'shm', 'shortmess', 'shortname',
-            'showbreak', 'showcmd', 'showfulltag', 'showmatch',
-            'showmode', 'showtabline', 'shq', 'si', 'sidescroll',
-            'sidescrolloff', 'siso', 'sj', 'slm', 'sm', 'smartcase',
-            'smartindent', 'smarttab', 'smc', 'smd', 'sn',
-            'so', 'softtabstop', 'sol', 'sp', 'spc', 'spell',
-            'spellcapcheck', 'spellfile', 'spelllang',
-            'spf', 'spl', 'splitbelow', 'splitright', 'spr',
-            'sps', 'sr', 'srr', 'ss', 'ssl', 'ssop', 'st', 'sta',
-            'stal', 'startofline', 'statusline', 'stl', 'stmp',
-            'sts', 'su', 'sua', 'suffixes', 'suffixesadd', 'sw',
-            'swapfile', 'swapsync', 'swb', 'swf', 'switchbuf',
-            'sws', 'sxq', 'syn', 'synmaxcol', 'ta',
-            'tabline', 'tabpagemax', 'tabstop', 'tag',
-            'tagbsearch', 'taglength', 'tagrelative', 'tags', 'tagstack',
-            'tal', 'tb', 'tbi', 'tbidi', 'tbis', 'tbs',
-            'tenc', 'term', 'termbidi', 'termencoding', 'terse',
-            'textauto', 'textmode', 'textwidth', 'tf', 'tgst',
-            'thesaurus', 'tildeop', 'timeout', 'timeoutlen',
-            'title', 'titlelen', 'titleold', 'titlestring',
-            'tl', 'tm', 'to', 'toolbar', 'toolbariconsize', 'top',
-            'tpm', 'ts', 'tsl', 'tsr', 'ttimeout',
-            'ttimeoutlen', 'ttm', 'tty', 'ttybuiltin', 'ttyfast', 'ttym',
-            'ttymouse', 'ttyscroll', 'ttytype', 'tw', 'tx', 'uc',
-            'ul', 'undolevels', 'updatecount', 'updatetime', 'ut',
-            'vb', 'vbs', 'vdir', 've', 'verbose', 'verbosefile',
-            'vfile', 'vi', 'viewdir', 'viewoptions', 'viminfo',
-            'virtualedit', 'visualbell', 'vop', 'wa', 'wak',
-            'warn', 'wb', 'wc', 'wcm', 'wd', 'weirdinvert', 'wfh',
-            'wfw', /*'wh',*/ 'whichwrap', 'wi', 'wig', 'wildchar',
-            'wildcharm', 'wildignore', 'wildmenu',
-            'wildmode', 'wildoptions', 'wim', 'winaltkeys', 'window',
-            'winfixheight', 'winfixwidth', 'winheight',
-            'winminheight', 'winminwidth', 'winwidth', 'wiv',
-            'wiw', 'wm', 'wmh', 'wmnu', 'wmw', 'wop', 'wrap',
-            'wrapmargin', 'wrapscan', 'write', 'writeany',
-            'writebackup', 'writedelay', 'ws', 'ww'
-            ),
-        3 => array(
-            'BufAdd', 'BufCreate', 'BufDelete', 'BufEnter', 'BufFilePost',
-            'BufFilePre', 'BufHidden', 'BufLeave', 'BufNew', 'BufNewFile',
-            'BufRead', 'BufReadCmd', 'BufReadPost', 'BufReadPre',
-            'BufUnload', 'BufWinEnter', 'BufWinLeave', 'BufWipeout',
-            'BufWrite', 'BufWriteCmd', 'BufWritePost', 'BufWritePre',
-            'Cmd-event', 'CmdwinEnter', 'CmdwinLeave', 'ColorScheme',
-            'CursorHold', 'CursorHoldI', 'CursorMoved', 'CursorMovedI',
-            'EncodingChanged', 'FileAppendCmd', 'FileAppendPost',
-            'FileAppendPre', 'FileChangedRO', 'FileChangedShell',
-            'FileChangedShellPost', 'FileEncoding', 'FileReadCmd',
-            'FileReadPost', 'FileReadPre', 'FileType',
-            'FileWriteCmd', 'FileWritePost', 'FileWritePre',
-            'FilterReadPost', 'FilterReadPre', 'FilterWritePost',
-            'FilterWritePre', 'FocusGained', 'FocusLost', 'FuncUndefined',
-            'GUIEnter', 'GUIFailed', 'InsertChange', 'InsertEnter',
-            'InsertLeave', 'MenuPopup', 'QuickFixCmdPost',
-            'QuickFixCmdPre', 'RemoteReply', 'SessionLoadPost',
-            'ShellCmdPost', 'ShellFilterPost', 'SourceCmd',
-            'SourcePre', 'SpellFileMissing', 'StdinReadPost',
-            'StdinReadPre', 'SwapExists', 'Syntax', 'TabEnter',
-            'TabLeave', 'TermChanged', 'TermResponse', 'User',
-            'UserGettingBored', 'VimEnter', 'VimLeave', 'VimLeavePre',
-            'VimResized', 'WinEnter', 'WinLeave', 'abs', 'add', 'append',
-            'argc', 'argidx', 'argv', 'atan', 'browse', 'browsedir',
-            'bufexists', 'buflisted', 'bufloaded', 'bufname', 'bufnr',
-            'bufwinnr', 'byte2line', 'byteidx', 'ceil', 'changenr',
-            'char2nr', 'cindent', 'clearmatches', 'col', 'complete',
-            'complete_add', 'complete_check', 'copy',
-            'cos', 'count', 'cscope_connection', 'cursor', 'deepcopy',
-            'delete', 'did_filetype', 'diff_filler', 'diff_hlID',
-            'empty', 'escape', 'eval', 'eventhandler', 'executable',
-            'exists', 'expand', 'extend', 'feedkeys', 'filereadable',
-            'filewritable', 'filter', 'finddir', 'findfile', 'float2nr',
-            'floor', 'fnameescape', 'fnamemodify', 'foldclosed',
-            'foldclosedend', 'foldlevel', 'foldtext', 'foldtextresult',
-            'foreground', 'garbagecollect', 'get', 'getbufline',
-            'getbufvar', 'getchar', 'getcharmod', 'getcmdline',
-            'getcmdpos', 'getcmdtype', 'getcwd', 'getfontname',
-            'getfperm', 'getfsize', 'getftime', 'getftype', 'getline',
-            'getloclist', 'getmatches', 'getpid', 'getpos', 'getqflist',
-            'getreg', 'getregtype', 'gettabwinvar', 'getwinposx',
-            'getwinposy', 'getwinvar', 'glob', 'globpath', 'has',
-            'has_key', 'haslocaldir', 'hasmapto', 'histadd', 'histdel',
-            'histget', 'histnr', 'hlID', 'hlexists', 'hostname', 'iconv',
-            'indent', 'index', 'input', 'inputdialog', 'inputlist',
-            'inputrestore', 'inputsave', 'inputsecret', 'insert',
-            'isdirectory', 'islocked', 'items', 'join', 'keys', 'len',
-            'libcall', 'libcallnr', 'line', 'line2byte', 'lispindent',
-            'localtime', 'log10', 'maparg', 'mapcheck', 'matchadd',
-            'matcharg', 'matchdelete', 'matchend', 'matchlist',
-            'matchstr', 'max', 'min', 'mkdir', 'mode', 'nextnonblank',
-            'nr2char', 'off', 'on', 'pathshorten', 'plugin', 'pow',
-            'prevnonblank', 'printf', 'pumvisible', 'range', 'readfile',
-            'reltime', 'reltimestr', 'remote_expr', 'remote_foreground',
-            'remote_peek', 'remote_read', 'remote_send', 'remove',
-            'rename', 'repeat', 'resolve', 'reverse', 'round', 'search',
-            'searchdecl', 'searchpair', 'searchpairpos', 'searchpos',
-            'server2client', 'serverlist', 'setbufvar', 'setcmdpos',
-            'setline', 'setloclist', 'setmatches', 'setpos', 'setqflist',
-            'setreg', 'settabwinvar', 'setwinvar', 'shellescape',
-            'simplify', 'sin', 'sort', 'soundfold', 'spellbadword',
-            'spellsuggest', 'split', 'sqrt', 'str2float', 'str2nr',
-            'strftime', 'stridx', 'string', 'strlen', 'strpart',
-            'strridx', 'strtrans', 'submatch', 'substitute',
-            'synID', 'synIDattr', 'synIDtrans', 'synstack', 'system',
-            'tabpagebuflist', 'tabpagenr', 'tabpagewinnr', 'tagfiles',
-            'taglist', 'tempname', 'tolower', 'toupper', 'trunc',
-            'type', 'values', 'virtcol', 'visualmode', 'winbufnr',
-            'wincol', 'winline', 'winnr', 'winrestcmd',
-            'winrestview', 'winsaveview', 'writefile'
-            )
-        ),
-    'SYMBOLS' => array(
-        '(', ')', '[', ']', '{', '}', '!', '%', '&', '*', '|', '/', '<', '>',
-        '^', '-', '+', '~', '?', ':', '$', '@', '.'
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => true,
-        2 => true,
-        3 => true
-        ),
-    'STYLES' => array(
-        'BRACKETS' => array(
-            0 => 'color: #000000;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #adadad; font-style: italic;',
-//            2 => 'color: #009966; font-style: italic;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => ''
-            ),
-        'KEYWORDS' => array(
-            1 => 'color: #804040;',
-            2 => 'color: #668080;',
-            3 => 'color: #25BB4D;'
-            ),
-        'METHODS' => array(
-            0 => 'color: #000000;',
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #000000; font-weight:bold;'
-            ),
-        'REGEXPS' => array(
-            ),
-        'SCRIPT' => array(
-            ),
-        'STRINGS' => array(
-            0 => 'color: #C5A22D;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #000000;'
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => ''
-        ),
-    'OOLANG' => false, //Save some time as OO identifiers aren't used
-    'OBJECT_SPLITTERS' => array(),
-    'REGEXPS' => array(
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(),
-    'HIGHLIGHT_STRICT_BLOCK' => array()
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/visualfoxpro.php b/wiki/vendor/geshi/geshi/src/geshi/visualfoxpro.php
deleted file mode 100644
index 9e43ead..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/visualfoxpro.php
+++ /dev/null
@@ -1,454 +0,0 @@
-<?php
-/*************************************************************************************
- * visualfoxpro.php
- * ----------------
- * Author: Roberto Armellin (r.armellin@tin.it)
- * Copyright: (c) 2004 Roberto Armellin, Nigel McNie (http://qbnz.com/highlighter/)
- * Release Version: 1.0.9.0
- * Date Started: 2004/09/17
- *
- * Visual FoxPro language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2008/05/23 (1.0.7.22)
- *  -  Removed tab as a symbol char
- * 2004/11/27 (1.0.1)
- *  -  Added support for multiple object splitters
- * 2004/10/27 (1.0.0)
- *  -  First Release
- *
- * TODO (updated 2004/10/27)
- * -------------------------
- *
- *************************************************************************************
- *
- *     This file is part of GeSHi.
- *
- *   GeSHi is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   GeSHi is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with GeSHi; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- ************************************************************************************/
-
-$language_data = array (
-    'LANG_NAME' => 'Visual Fox Pro',
-    'COMMENT_SINGLE' => array(1 => "//", 2 => "\n*"),
-    'COMMENT_MULTI' => array(),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array('"'),
-    'ESCAPE_CHAR' => '\\',
-    'KEYWORDS' => array(
-        1 => array(
-            'Case', 'Else', '#Else', 'Then',
-            'Endcase', 'Enddefine', 'Enddo', 'Endfor', 'Endfunc', 'Endif', 'Endprintjob',
-            'Endproc', 'Endscan', 'Endtext', 'Endwith', '#Endif',
-            '#Elif','#Define','#If','#Include',
-            '#Itsexpression','#Readclauses','#Region','#Section','#Undef','#Wname',
-            'Define','Do',
-            'For','Function','Hidden',
-            'If','Local','Lparameter','Lparameters','Next','Otherwise',
-            'Parameters','Printjob','Procedure','Protected','Public','Scan',
-            'Text','While','With','Abs','Accept','Access','Aclass','Acopy',
-            'Acos','Adatabases','Adbobjects','Addbs','Addrelationtoenv','Addtabletoenv',
-            'Adel','Adir','Aelement','Aerror','Afields','Afont',
-            'Agetclass','Agetfileversion','Ains','Ainstance','Alen','Align',
-            'Alines','Alltrim','Alter','Amembers','Amouseobj','Anetresources',
-            'Ansitooem','Append','Aprinters','Ascan','Aselobj','Asin',
-            'Asort','Assert','Asserts','Assist','Asubscript','Asynchronous',
-            'At_c','Atan','Atc','Atcc','Atcline','Atline',
-            'Atn2','Aused','Autoform','Autoreport','Avcxclasses','Average',
-            'BarCount','BarPrompt','BatchMode','BatchUpdateCount','Begin','BellSound',
-            'BinToC','Bitand','Bitclear','Bitlshift','Bitnot',
-            'Bitor','Bitrshift','Bitset','Bittest','Bitxor','Bof',
-            'Browse','BrowseRefresh','Buffering','BuilderLock','COMArray','COMReturnError',
-            'CToBin','Calculate','Call','Capslock','Cd','Cdow',
-            'Ceiling','Central','Change','Char','Chdir','Chr',
-            'Chrsaw','Chrtran','Chrtranc','Close','Cmonth','Cntbar',
-            'Cntpad','Col','Comclassinfo','CommandTargetQuery','Compile','Completed',
-            'Compobj','Compute','Concat','ConnectBusy','ConnectHandle','ConnectName',
-            'ConnectString','ConnectTimeOut','ContainerReleaseType','Continue','Copy','Cos',
-            'Cot','Count','Coverage','Cpconvert','Cpcurrent','Cpdbf',
-            'Cpnotrans','Create','CreateBinary','Createobject','Createobjectex','Createoffline',
-            'CrsBuffering','CrsFetchMemo','CrsFetchSize','CrsMaxRows','CrsMethodUsed','CrsNumBatch',
-            'CrsShareConnection','CrsUseMemoSize','CrsWhereClause','Ctod','Ctot',
-            'Curdate','Curdir','CurrLeft','CurrSymbol','CursorGetProp','CursorSetProp',
-            'Curtime','Curval','DBGetProp','DBSetProp','DB_BufLockRow','DB_BufLockTable',
-            'DB_BufOff','DB_BufOptRow','DB_BufOptTable','DB_Complette','DB_DeleteInsert','DB_KeyAndModified',
-            'DB_KeyAndTimestamp','DB_KeyAndUpdatable','DB_LocalSQL','DB_NoPrompt','DB_Prompt','DB_RemoteSQL',
-            'DB_TransAuto','DB_TransManual','DB_TransNone','DB_Update','Datetime','Day',
-            'Dayname','Dayofmonth','Dayofweek','Dayofyear','Dbalias','Dbused',
-            'Ddeaborttrans','Ddeadvise','Ddeenabled','Ddeexecute','Ddeinitiate','Ddelasterror',
-            'Ddepoke','Dderequest','Ddesetoption','Ddesetservice','Ddesettopic','Ddeterminate',
-            'Debugout','Declare','DefOLELCid','DefaultValue','Defaultext','Degrees',
-            'DeleteTrigger','Desc','Description','Difference','Dimension','Dir',
-            'Directory','Diskspace','DispLogin','DispWarnings','Display','Dll',
-            'Dmy','DoDefault','DoEvents','Doc','Dow',
-            'Drivetype','Drop','Dropoffline','Dtoc','Dtor','Dtos',
-            'Dtot','DynamicInputMask','Each','Edit','Eject','Elif',
-            'End','Eof','Erase','Evaluate','Event','Eventtracking',
-            'Exclude','Exclusive','Exit','Exp','Export','External',
-            'FDate','FTime','Fchsize','Fclose','Fcount','Fcreate',
-            'Feof','Ferror','FetchMemo','FetchSize','Fflush','Fgets',
-            'Filer','Filetostr','Find','Fklabel','Fkmax','Fldlist',
-            'Flock','Floor','Flush','Fontmetric','Fopen','Forceext',
-            'Forcepath','FormSetClass','FormSetLib','FormsClass','FormsLib','Found',
-            'FoxPro','Foxcode','Foxdoc','Foxgen','Foxgraph','Foxview',
-            'Fputs','Fread','French','Fseek','Fsize','Fv',
-            'Fwrite','Gather','German','GetPem','Getbar','Getcolor',
-            'Getcp','Getdir','Getenv','Getexpr','Getfile','Getfldstate',
-            'Getfont','Gethost','Getnextmodified','Getobject','Getpad','Getpict',
-            'Getprinter','Go','Gomonth','Goto','Graph','GridHorz',
-            'GridShow','GridShowPos','GridSnap','GridVert','Help','HelpOn',
-            'HelpTo','HighLightRow','Home','Hour','IMEStatus','IdleTimeOut',
-            'Idxcollate','Ifdef','Ifndef','Iif','Import','Include',
-            'Indbc','Index','Indexseek','Inkey','Inlist','Input',
-            'Insert','InsertTrigger','Insmode','IsBlank','IsFLocked','IsLeadByte',
-            'IsMouse','IsNull','IsRLocked','Isalpha','Iscolor','Isdigit',
-            'IsExclusive','Ishosted','IsLower','IsReadOnly',
-            'IsUpper','Italian','Japan','Join','Justdrive','Justext',
-            'Justfname','Justpath','Juststem','KeyField','KeyFieldList','Keyboard'
-            ),
-        2 => array('Keymatch','LastProject','Lastkey','Lcase','Leftc','Len',
-            'Lenc','Length','Likec','Lineno','LoadPicture',
-            'Locate','Locfile','Log','Log10','Logout','Lookup',
-            'Loop','Lower','Ltrim','Lupdate','Mail','MaxRecords',
-            'Mcol','Md','Mdown','Mdx','Mdy','Memlines',
-            'Menu','Messagebox','Minute','Mkdir','Mline','Modify',
-            'Month','Monthname','Mouse','Mrkbar','Mrkpad','Mrow',
-            'Mtdll','Mton','Mwindow','Native','Ndx','Network',
-            'NoFilter','Nodefault','Normalize','Note','Now','Ntom',
-            'NullString','Numlock','Nvl','ODBChdbc','ODBChstmt','OLEDropTextInsertion',
-            'OLELCid','Objnum','Objref','Objtoclient','Objvar','Occurs',
-            'Oemtoansi','Oldval','OlePublic','Olereturnerror','On','Open',
-            'Oracle','Order','Os','Outer','PCount','Pack',
-            'PacketSize','Padc','Padl','Padr','Payment','Pcol',
-            'PemStatus','Pi','Pivot','Play','Pop','Popup',
-            'Power','PrimaryKey','Printstatus','Private','Prmbar','Prmpad',
-            'ProjectClick','Proper','Prow','Prtinfo','Push','Putfile',
-            'Pv','Qpr','Quater','QueryTimeOut','Quit','Radians',
-            'Rand','Rat','Ratc','Ratline','Rd','Rdlevel',
-            'Read','Readkey','Recall','Reccount','RecentlyUsedFiles','Recno',
-            'Recsize','Regional','Reindex','RelatedChild','RelatedTable','RelatedTag',
-            'Remove','Rename','Repeat','Replace','Replicate','Report',
-            'ResHeight','ResWidth','ResourceOn','ResourceTo','Resources','Restore',
-            'Resume','Retry','Return','Revertoffline','Rgbscheme','Rightc',
-            'Rlock','Rmdir','Rollback','Round','Rtod','Rtrim',
-            'RuleExpression','RuleText','Run','Runscript','Rview','SQLAsynchronous',
-            'SQLBatchMode','SQLCancel','SQLColumns','SQLConnect','SQLConnectTimeOut','SQLDisconnect',
-            'SQLDispLogin','SQLDispWarnings','SQLExec','SQLGetProp','SQLIdleTimeOut','SQLMoreResults',
-            'SQLPrepare','SQLQueryTimeOut','SQLSetProp','SQLTables','SQLTransactions','SQLWaitTime',
-            'Save','SavePicture','ScaleUnits','Scatter','Scols',
-            'Scroll','Sec','Second','Seek','Select','SendUpdates',
-            'Set','SetDefault','Setfldstate','Setup','ShareConnection','ShowOLEControls',
-            'ShowOLEInsertable','ShowVCXs','Sign','Sin','Size','SizeBox',
-            'Skpbar','Skppad','Sort','Soundex','SourceName','Sqlcommit',
-            'Sqll','Sqlrollback','Sqlstringconnect','Sqrt','Srows','StatusBar',
-            'Store','Str','Strconv','Strtofile','Strtran','Stuff',
-            'Stuffc','Substr','Substrc','Substring','Sum','Suspend',
-            'Sys','Sysmetric','TabOrdering','Table','TableRefresh','Tablerevert',
-            'Tableupdate','TagCount','TagNo','Tan','Target','This',
-            'Thisform','Thisformset','Timestamp','Timestampdiff','Total','Transactions',
-            'Transform','Trim','Truncate','Ttoc','Ttod','Txnlevel',
-            'Txtwidth','Type','Ucase','Undefine','Unlock','Unpack',
-            'Updatable','UpdatableFieldList','Update','UpdateName','UpdateNameList','UpdateTrigger',
-            'UpdateType','Updated','Upper','Upsizing','Usa','Use',
-            'UseMemoSize','Used','Val','Validate','Varread','Vartype',
-            'Version','VersionLanguage','Wait','WaitTime','Wborder','Wchild',
-            'Wcols','Week','Wexist','Wfont','WhereType','Windcmd',
-            'Windhelp','Windmemo','Windmenu','Windmodify','Windquery','Windscreen',
-            'Windsnip','Windstproc','WizardPrompt','Wlast','Wlcol','Wlrow',
-            'Wmaximum','Wminimum','Wontop','Woutput','Wparent','Wread',
-            'Wrows','Wtitle','Wvisible','Year','Zap','_Alignment',
-            '_Asciicols','_Asciirows','_Assist','_Beautify','_Box','_Browser',
-            '_Builder','_Calcmem','_Calcvalue','_Cliptext','_Converter','_Coverage',
-            '_Curobj','_Dblclick','_Diarydate','_Dos','_Foxdoc','_Foxgraph',
-            '_Gallery','_Gengraph','_Genhtml','_Genmenu','_Genpd','_Genscrn',
-            '_Genxtab','_Getexpr','_Include','_Indent','_Lmargin','_Mac',
-            '_Mbr_appnd','_Mbr_cpart','_Mbr_delet','_Mbr_font','_Mbr_goto','_Mbr_grid',
-            '_Mbr_link','_Mbr_mode','_Mbr_mvfld','_Mbr_mvprt','_Mbr_seek','_Mbr_sp100',
-            '_Mbr_sp200','_Mbr_szfld','_Mbrowse','_Mda_appnd','_Mda_avg','_Mda_brow',
-            '_Mda_calc','_Mda_copy','_Mda_count','_Mda_label','_Mda_pack','_Mda_reprt',
-            '_Mda_rindx','_Mda_setup','_Mda_sort','_Mda_sp100','_Mda_sp200','_Mda_sp300',
-            '_Mda_sum','_Mda_total','_Mdata','_Mdiary','_Med_clear','_Med_copy',
-            '_Med_cut','_Med_cvtst','_Med_find','_Med_finda','_Med_goto','_Med_insob',
-            '_Med_link','_Med_obj','_Med_paste','_Med_pref','_Med_pstlk','_Med_redo',
-            '_Med_repl','_Med_repla','_Med_slcta','_Med_sp100','_Med_sp200','_Med_sp300',
-            '_Med_sp400','_Med_sp500','_Med_undo','_Medit','_Mfi_clall','_Mfi_close',
-            '_Mfi_export','_Mfi_import','_Mfi_new','_Mfi_open','_Mfi_pgset','_Mfi_prevu',
-            '_Mfi_print','_Mfi_quit','_Mfi_revrt','_Mfi_savas','_Mfi_save','_Mfi_send',
-            '_Mfi_setup','_Mfi_sp100','_Mfi_sp200','_Mfi_sp300','_Mfi_sp400','_Mfile',
-            '_Mfiler','_Mfirst','_Mlabel','_Mlast','_Mline','_Mmacro',
-            '_Mmbldr','_Mpr_beaut','_Mpr_cancl','_Mpr_compl','_Mpr_do','_Mpr_docum',
-            '_Mpr_formwz','_Mpr_gener','_Mpr_graph','_Mpr_resum','_Mpr_sp100','_Mpr_sp200',
-            '_Mpr_sp300','_Mpr_suspend','_Mprog','_Mproj','_Mrc_appnd','_Mrc_chnge',
-            '_Mrc_cont','_Mrc_delet','_Mrc_goto','_Mrc_locat','_Mrc_recal','_Mrc_repl',
-            '_Mrc_seek','_Mrc_sp100','_Mrc_sp200','_Mrecord','_Mreport','_Mrqbe',
-            '_Mscreen','_Msm_data','_Msm_edit','_Msm_file','_Msm_format','_Msm_prog',
-            '_Msm_recrd','_Msm_systm','_Msm_text','_Msm_tools','_Msm_view','_Msm_windo',
-            '_Mst_about','_Mst_ascii','_Mst_calcu','_Mst_captr','_Mst_dbase','_Mst_diary',
-            '_Mst_filer','_Mst_help','_Mst_hphow','_Mst_hpsch','_Mst_macro','_Mst_office',
-            '_Mst_puzzl','_Mst_sp100','_Mst_sp200','_Mst_sp300','_Mst_specl','_Msysmenu',
-            '_Msystem','_Mtable','_Mtb_appnd','_Mtb_cpart','_Mtb_delet','_Mtb_delrc',
-            '_Mtb_goto','_Mtb_link','_Mtb_mvfld','_Mtb_mvprt','_Mtb_props','_Mtb_recal',
-            '_Mtb_sp100','_Mtb_sp200','_Mtb_sp300','_Mtb_sp400','_Mtb_szfld','_Mwi_arran',
-            '_Mwi_clear','_Mwi_cmd','_Mwi_color','_Mwi_debug','_Mwi_hide','_Mwi_hidea',
-            '_Mwi_min','_Mwi_move','_Mwi_rotat','_Mwi_showa','_Mwi_size','_Mwi_sp100',
-            '_Mwi_sp200','_Mwi_toolb','_Mwi_trace','_Mwi_view','_Mwi_zoom','_Mwindow',
-            '_Mwizards','_Mwz_all','_Mwz_form','_Mwz_foxdoc','_Mwz_import','_Mwz_label',
-            '_Mwz_mail','_Mwz_pivot','_Mwz_query','_Mwz_reprt','_Mwz_setup','_Mwz_table',
-            '_Mwz_upsizing','_Netware','_Oracle','_Padvance','_Pageno','_Pbpage',
-            '_Pcolno','_Pcopies','_Pdparms','_Pdriver','_Pdsetup','_Pecode',
-            '_Peject','_Pepage','_Pform','_Plength','_Plineno','_Ploffset',
-            '_Ppitch','_Pquality','_Pretext','_Pscode','_Pspacing','_Pwait',
-            '_Rmargin','_Runactivedoc','_Samples','_Screen','_Shell','_Spellchk',
-            '_Sqlserver','_Startup','_Tabs','_Tally','_Text','_Throttle',
-            '_Transport','_Triggerlevel','_Unix','_WebDevOnly','_WebMenu','_WebMsftHomePage',
-            '_WebVFPHomePage','_WebVfpOnlineSupport','_Windows','_Wizard','_Wrap','_scctext',
-            '_vfp','Additive','After','Again','Aindent','Alignright',
-            'All','Alt','Alternate','And','Ansi','Any',
-            'Aplabout','App','Array','As','Asc','Ascending',
-            'Ascii','At','Attributes','Automatic','Autosave','Avg',
-            'Bar','Before','Bell','Between','Bitmap','Blank',
-            'Blink','Blocksize','Border','Bottom','Brstatus','Bucket',
-            'Buffers','By','Candidate','Carry','Cascade','Catalog',
-            'Cdx','Center','Century','Cga','Character','Check',
-            'Classlib','Clock','Cnt','Codepage','Collate','Color',
-            'Com1','Com2','Command','Compact','Compatible','Compress',
-            'Confirm','Connection','Connections','Connstring','Console','Copies',
-            'Cpcompile','Cpdialog','Csv','Currency','Cycle','Databases',
-            'Datasource','Date','Db4','Dbc','Dbf','Dbmemo3',
-            'Debug','Decimals','Defaultsource','Deletetables','Delimited','Delimiters',
-            'Descending','Design','Development','Device','Dif','Disabled',
-            'Distinct','Dlls','Dohistory','Dos','Dosmem','Double',
-            'Driver','Duplex','Echo','Editwork','Ega25','Ega43',
-            'Ems','Ems64','Encrypt','Encryption','Environment','Escape',
-            'Events','Exact','Except','Exe','Exists','Expression',
-            'Extended','F','Fdow','Fetch','Field','Fields',
-            'File','Files','Fill','Fixed','Float','Foldconst',
-            'Font','Footer','Force','Foreign','Fox2x','Foxplus',
-            'Free','Freeze','From','Fullpath','Fw2','Fweek',
-            'Get','Gets','Global','Group','Grow','Halfheight',
-            'Having','Heading','Headings','Helpfilter','History','Hmemory',
-            'Hours','Id','In','Indexes','Information','Instruct',
-            'Int','Integer','Intensity','Intersect','Into','Is',
-            'Isometric','Key','Keycolumns','Keycomp','Keyset','Last',
-            'Ledit','Level','Library','Like','Linked','Lock',
-            'Logerrors','Long','Lpartition','Mac','Macdesktop','Machelp',
-            'Mackey','Macros','Mark','Master','Max','Maxmem',
-            'Mdi','Memlimit','Memory','Memos','Memowidth','Memvar',
-            'Menus','Messages','Middle','Min','Minimize','Minus',
-            'Mod','Modal','Module','Mono43','Movers','Multilocks',
-            'Mvarsiz','Mvcount','N','Near','Negotiate','Noalias',
-            'Noappend','Noclear','Noclose','Noconsole','Nocptrans','Nodata',
-            'Nodebug','Nodelete','Nodup','Noedit','Noeject','Noenvironment',
-            'Nofloat','Nofollow','Nogrow','Noinit','Nolgrid','Nolink',
-            'Nolock','Nomargin','Nomdi','Nomenu','Nominimize','Nomodify'
-            ),
-        3 => array('Nomouse','None','Nooptimize','Nooverwrite','Noprojecthook','Noprompt',
-            'Noread','Norefresh','Norequery','Norgrid','Norm','Normal',
-            'Nosave','Noshadow','Noshow','Nospace','Not','Notab',
-            'Notify','Noupdate','Novalidate','Noverify','Nowait','Nowindow',
-            'Nowrap','Nozoom','Npv','Null','Number','Objects',
-            'Odometer','Of','Off','Oleobjects','Only','Optimize',
-            'Or','Orientation','Output','Outshow','Overlay','Overwrite',
-            'Pad','Palette','Paperlength','Papersize','Paperwidth','Password',
-            'Path','Pattern','Pause','Pdox','Pdsetup','Pen',
-            'Pfs','Pixels','Plain','Popups','Precision','Preference',
-            'Preview','Primary','Printer','Printquality','Procedures','Production',
-            'Program','Progwork','Project','Prompt','Query','Random',
-            'Range','Readborder','Readerror','Record','Recover','Redit',
-            'Reference','References','Relative','Remote','Reprocess','Resource',
-            'Rest','Restrict','Rgb','Right','Row','Rowset',
-            'Rpd','Runtime','Safety','Same','Sample','Say',
-            'Scale','Scheme','Scoreboard','Screen','Sdf','Seconds',
-            'Selection','Shadows','Shared','Sheet','Shell','Shift',
-            'Shutdown','Single','Some','Sortwork','Space','Sql',
-            'Standalone','Status','Std','Step','Sticky','String',
-            'Structure','Subclass','Summary','Sylk','Sysformats','Sysmenus',
-            'System','T','Tab','Tables','Talk','Tedit',
-            'Textmerge','Time','Timeout','Titles','Tmpfiles','To',
-            'Topic','Transaction','Trap','Trbetween','Trigger','Ttoption',
-            'Typeahead','Udfparms','Union','Unique','Userid','Users',
-            'Values','Var','Verb','Vga25','Vga50','Views',
-            'Volume','Where','Windows','Wk1','Wk3','Wks',
-            'Workarea','Wp','Wr1','Wrap','Wrk','Xcmdfile',
-            'Xl5','Xl8','Xls','Y','Yresolution','Zoom',
-            'Activate','ActivateCell','Add','AddColumn','AddItem','AddListItem',
-            'AddObject','AddProperty','AddToSCC','AfterBuild','AfterCloseTables','AfterDock',
-            'AfterRowColChange','BeforeBuild','BeforeDock','BeforeOpenTables','BeforeRowColChange','Box',
-            'Build','CheckIn','CheckOut','Circle','Clear','ClearData',
-            'Cleanup','Click','CloneObject','CloseEditor','CloseTables','Cls',
-            'CommandTargetExec','CommandTargetQueryStas','ContainerRelease','DataToClip','DblClick','Deactivate',
-            'Delete','DeleteColumn','Deleted','Destroy','DoCmd','Dock',
-            'DoScroll','DoVerb','DownClick','Drag','DragDrop','DragOver',
-            'DropDown','Draw','EnterFocus','Error','ErrorMessage','Eval',
-            'ExitFocus','FormatChange','GetData','GetFormat','GetLatestVersion','GoBack',
-            'GotFocus','GoForward','GridHitTest','Hide','HideDoc','IndexToItemId',
-            'Init','InteractiveChange','Item','ItemIdToIndex','KeyPress','Line',
-            'Load','LostFocus','Message','MiddleClick','MouseDown','MouseMove',
-            'MouseUp','MouseWheel','Move','Moved','NavigateTo','Newobject',
-            'OLECompleteDrag','OLEDrag','OLEDragDrop','OLEDragOver','OLEGiveFeedback','OLESetData',
-            'OLEStartDrag','OpenEditor','OpenTables','Paint','Point','Print',
-            'ProgrammaticChange','PSet','QueryAddFile','QueryModifyFile','QueryRemoveFile','QueryRunFile',
-            'QueryUnload','RangeHigh','RangeLow','ReadActivate','ReadExpression','ReadDeactivate',
-            'ReadMethod','ReadShow','ReadValid','ReadWhen','Refresh','Release',
-            'RemoveFromSCC','RemoveItem','RemoveListItem','RemoveObject','Requery','RequestData',
-            'Reset','ResetToDefault','Resize','RightClick','SaveAs','SaveAsClass',
-            'Scrolled','SetAll','SetData','SetFocus','SetFormat','SetMain',
-            'SetVar','SetViewPort','ShowDoc','ShowWhatsThis','TextHeight','TextWidth',
-            'Timer','UIEnable','UnDock','UndoCheckOut','Unload','UpClick',
-            'Valid','WhatsThisMode','When','WriteExpression','WriteMethod','ZOrder',
-            'ATGetColors','ATListColors','Accelerate','ActiveColumn','ActiveControl','ActiveForm',
-            'ActiveObjectId','ActivePage','ActiveProject','ActiveRow','AddLineFeeds','Alias',
-            'Alignment','AllowAddNew','AllowHeaderSizing','AllowResize','AllowRowSizing','AllowTabs',
-            'AlwaysOnTop','Application','AutoActivate','AutoCenter','AutoCloseTables','AutoIncrement',
-            'AutoOpenTables','AutoRelease','AutoSize','AutoVerbMenu','AutoYield','AvailNum',
-            'BackColor','BackStyle','BaseClass','BorderColor','BorderStyle','BorderWidth',
-            'Bound','BoundColumn','BoundTo','BrowseAlignment','BrowseCellMarg','BrowseDestWidth',
-            'BufferMode','BufferModeOverride','BuildDateTime','ButtonCount','ButtonIndex','Buttons',
-            'CLSID','CanAccelerate','CanGetFocus','CanLoseFocus','Cancel','Caption',
-            'ChildAlias','ChildOrder','Class','ClassLibrary','ClipControls','ClipRect',
-            'Closable','ColorScheme','ColorSource','ColumnCount','ColumnHeaders','ColumnLines',
-            'ColumnOrder','ColumnWidths','Columns','Comment','ContinuousScroll','ControlBox',
-            'ControlCount','ControlIndex','ControlSource','Controls','CurrentControl','CurrentX',
-            'CurrentY','CursorSource','Curvature','DataSession','DataSessionId','DataSourceObj',
-            'DataType','Database','DateFormat','DateMark','DefButton','DefButtonOrig',
-            'DefHeight','DefLeft','DefTop','DefWidth','Default','DefaultFilePath',
-            'DefineWindows','DeleteMark','Desktop','Dirty','DisabledBackColor','DisabledByEOF',
-            'DisabledForeColor','DisabledItemBackColor','DisabledItemForeColor','DisabledPicture','DispPageHeight','DispPageWidth',
-            'DisplayCount','DisplayValue','DoCreate','DockPosition','Docked','DocumentFile',
-            'DownPicture','DragIcon','DragMode','DragState','DrawMode','DrawStyle',
-            'DrawWidth','DynamicAlignment','DynamicBackColor','DynamicCurrentControl','DynamicFontBold','DynamicFontItalic',
-            'DynamicFontName','DynamicFontOutline','DynamicFontShadow','DynamicFontSize','DynamicFontStrikethru','DynamicFontUnderline',
-            'DynamicForeColor','EditFlags','Enabled','EnabledByReadLock','Encrypted','EnvLevel',
-            'ErasePage','FileClass','FileClassLibrary','FillColor','FillStyle','Filter',
-            'FirstElement','FontBold','FontItalic','FontName','FontOutline','FontShadow',
-            'FontSize','FontStrikethru','FontUnderline','ForceFocus','ForeColor','FormCount',
-            'FormIndex','FormPageCount','FormPageIndex','Format','Forms','FoxFont',
-            'FullName','GoFirst','GoLast','GridLineColor','GridLineWidth','GridLines'
-            ),
-        4 => array('HPROJ','HWnd','HalfHeightCaption','HasClip','HeaderGap','HeaderHeight',
-            'Height','HelpContextID','HideSelection','Highlight','HomeDir','HostName',
-            'HotKey','HscrollSmallChange','IMEMode','Icon','IgnoreInsert','InResize',
-            'Increment','IncrementalSearch','InitialSelectedAlias','InputMask','Instancing','IntegralHeight',
-            'Interval','ItemBackColor','ItemData','ItemForeColor','ItemIDData','ItemTips',
-            'JustReadLocked','KeyPreview','KeyboardHighValue','KeyboardLowValue','LastModified','Left',
-            'LeftColumn','LineSlant','LinkMaster','List','ListCount','ListIndex',
-            'ListItem','ListItemId','LockDataSource','LockScreen','MDIForm','MainClass',
-            'MainFile','Margin','MaxButton','MaxHeight','MaxLeft','MaxLength',
-            'MaxTop','MaxWidth','MemoWindow','MinButton','MinHeight','MinWidth',
-            'MouseIcon','MousePointer','Movable','MoverBars','MultiSelect','Name',
-            'NapTime','NewIndex','NewItemId','NoDataOnLoad','NoDefine','NotifyContainer',
-            'NullDisplay','NumberOfElements','OLEDragMode','OLEDragPicture','OLEDropEffects','OLEDropHasData',
-            'OLEDropMode','OLERequestPendingTimeOut','OLEServerBusyRaiseError','OLEServerBusyTimeOut','OLETypeAllowed','OleClass',
-            'OleClassId','OleControlContainer','OleIDispInValue','OleIDispOutValue','OleIDispatchIncoming','OleIDispatchOutgoing',
-            'OnResize','OneToMany','OpenViews','OpenWindow','PageCount','PageHeight',
-            'PageOrder','PageWidth','Pages','Panel','PanelLink','Parent',
-            'ParentAlias','ParentClass','Partition','PasswordChar','Picture','ProcessID',
-            'ProgID','ProjectHookClass','ProjectHookLibrary','Projects','ReadColors','ReadCycle',
-            'ReadFiller','ReadLock','ReadMouse','ReadOnly','ReadSave','ReadSize',
-            'ReadTimeout','RecordMark','RecordSource','RecordSourceType','Rect','RelationalExpr',
-            'RelativeColumn','RelativeRow','ReleaseErase','ReleaseType','ReleaseWindows','Resizable',
-            'RightToLeft','RowHeight','RowSource','RowSourceType','SCCProvider','SCCStatus',
-            'SDIForm','ScaleMode','ScrollBars','SelLength','SelStart','SelText',
-            'SelectOnEntry','Selected','SelectedBackColor','SelectedForeColor','SelectedID','SelectedItemBackColor',
-            'SelectedItemForeColor','SelfEdit','ServerClass','ServerClassLibrary','ServerHelpFile','ServerName',
-            'ServerProject','ShowTips','ShowWindow','Sizable','Size<height>','Size<maxlength>',
-            'Size<width>','Skip','SkipForm','Sorted','SourceType','Sparse',
-            'SpecialEffect','SpinnerHighValue','SpinnerLowValue','SplitBar','StartMode','StatusBarText',
-            'Stretch','StrictDateEntry','Style','SystemRefCount','TabIndex','TabStop',
-            'TabStretch','TabStyle','Tabhit','Tabs','Tag','TerminateRead',
-            'ThreadID','TitleBar','ToolTipText','Top','TopIndex','TopItemId',
-            'TypeLibCLSID','TypeLibDesc','TypeLibName','UnlockDataSource','Value','ValueDirty',
-            'VersionComments','VersionCompany','VersionCopyright','VersionDescription','VersionNumber','VersionProduct',
-            'VersionTrademarks','View','ViewPortHeight','ViewPortLeft','ViewPortTop','ViewPortWidth',
-            'Visible','VscrollSmallChange','WasActive','WasOpen','WhatsThisButton','WhatsThisHelp',
-            'WhatsThisHelpID','Width','WindowList','WindowNTIList','WindowState','WindowType',
-            'WordWrap','ZOrderSet','ActiveDoc','Checkbox','Column','ComboBox',
-            'CommandButton','CommandGroup','Container','Control','Cursor','Custom',
-            'DataEnvironment','EditBox','Empty','FontClass','Form','Formset',
-            'General','Grid','Header','HyperLink','Image','Label',
-            'ListBox','Memo','OleBaseControl','OleBoundControl','OleClassIDispOut','OleControl',
-            'OptionButton','OptionGroup','Page','PageFrame','ProjectHook','RectClass',
-            'Relation','Session','Shape','Spinner','TextBox' ,'Toolbar'
-            ),
-        ),
-    'SYMBOLS' => array(
-        "!", "@", "$", "%",
-        "(", ")", "{", "}", "[", "]",
-        "-", "+", "*", "/",
-        "=", "<", ">",
-        ":", ";", ",", ".", "&",
-        "?", "??", "???"
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false,
-        2 => false,
-        3 => false,
-        4 => false,
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: blue;',
-            2 => 'color: blue;',
-            3 => 'color: blue;',
-            4 => 'color: blue;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: green; font-style: italic;',
-            2 => 'color: green; font-style: italic;',
-            'MULTI' => 'color: #808080; font-style: italic;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #000099; font-weight: bold;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: blue;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #ff0000;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #cc66cc;'
-            ),
-        'METHODS' => array(
-            1 => 'color: #006600;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: blue;'
-            ),
-        '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/wiki/vendor/geshi/geshi/src/geshi/visualprolog.php b/wiki/vendor/geshi/geshi/src/geshi/visualprolog.php
deleted file mode 100644
index 72ddb45..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/visualprolog.php
+++ /dev/null
@@ -1,127 +0,0 @@
-<?php
-/*************************************************************************************
- * visualprolog.php
- * ----------
- * Author: Thomas Linder Puls (puls@pdc.dk)
- * Copyright: (c) 2008 Thomas Linder Puls (puls@pdc.dk)
- * Release Version: 1.0.9.0
- * Date Started: 2008/11/20
- *
- * Visual Prolog language file for GeSHi.
- *
- * CHANGES
- * -------------------------
- *
- *************************************************************************************
- *
- *     This file is part of GeSHi.
- *
- *   GeSHi is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   GeSHi is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with GeSHi; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- ************************************************************************************/
-
-$language_data = array (
-    'LANG_NAME' => 'Visual Prolog',
-    'COMMENT_SINGLE' => array(1 => '%'),
-    'COMMENT_MULTI' => array('/*' => '*/'),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array("'", '"'),
-    'HARDQUOTE' => array('@"', '"'),
-    'HARDESCAPE' => array('""'),
-    'ESCAPE_CHAR' => '\\',
-    'KEYWORDS' => array(
-        1 => array(
-            'clauses','constants','constructors','delegate','domains','facts',
-            'goal','guards','inherits','monitor','namespace','open',
-            'predicates','properties','resolve','supports'
-            ),
-        2 => array(
-            'align','and','anyflow','as','bitsize','catch','determ','digits',
-            'div','do','else','elseif','erroneous','externally','failure',
-            'finally','from','language','mod','multi','nondeterm','or',
-            'procedure','quot','rem','single','then','to'
-            ),
-        3 => array(
-            '#bininclude','#else','#elseif','#endif','#error','#export',
-            '#externally','#if','#import','#include','#message','#options',
-            '#orrequires','#requires','#then','#warning'
-            ),
-        ),
-    'SYMBOLS' => array(
-        '+', '-', '*', '?', '=', '/', '>', '<', '^', '!', ':', '(', ')', '{', '}', '[', ']'
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => true,
-        1 => true,
-        2 => true,
-        3 => true
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #808000;',
-            2 => 'color: #333399;',
-            3 => 'color: #800080;',
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #AA77BD',
-            'MULTI' => 'color: #AA77BD'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #008080;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #000000;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #00B7B7;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #0000FF;'
-            ),
-        'METHODS' => array(
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #000000;'
-            ),
-        'SCRIPT' => array(
-            ),
-        'REGEXPS' => array(
-            0 => 'color: #008000;',
-            1 => 'color: #808000;',
-            2 => 'color: #333399;',
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => ''
-        ),
-    'OOLANG' => true,
-    'OBJECT_SPLITTERS' => array(
-        1 => ':',
-        2 => '::'
-        ),
-    'REGEXPS' => array(
-        0 => "(?<![a-zA-Z0-9_])(?!(?:PIPE|SEMI)>)[A-Z_]\w*(?!\w)",
-        1 => "\\b(end\\s+)?(implement|class|interface)\\b",
-        2 => "\\b(end\\s+)?(foreach|if|try)\\b",
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        ),
-    'TAB_WIDTH' => 4
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/whitespace.php b/wiki/vendor/geshi/geshi/src/geshi/whitespace.php
deleted file mode 100644
index 47ca8fd..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/whitespace.php
+++ /dev/null
@@ -1,119 +0,0 @@
-<?php
-/*************************************************************************************
- * whitespace.php
- * ----------
- * Author: Benny Baumann (BenBE@geshi.org)
- * Copyright: (c) 2008 Benny Baumann (http://qbnz.com/highlighter/)
- * Release Version: 1.0.9.0
- * Date Started: 2009/10/31
- *
- * Whitespace language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2008/10/31 (1.0.8.1)
- *   -  First Release
- *
- * TODO
- * ----
- *
- *************************************************************************************
- *
- *     This file is part of GeSHi.
- *
- *   GeSHi is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   GeSHi is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with GeSHi; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- ************************************************************************************/
-$language_data = array (
-    'LANG_NAME' => 'Whitespace',
-    'COMMENT_SINGLE' => array(),
-    'COMMENT_MULTI' => array(),
-    'COMMENT_REGEXP' => array(
-        3 => "/[^\n\x20\x09]+/s"
-        ),
-    'CASE_KEYWORDS' => GESHI_CAPS_UPPER,
-    'QUOTEMARKS' => array(),
-    'ESCAPE_CHAR' => '',
-    'KEYWORDS' => array(
-        ),
-    'SYMBOLS' => array(
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            ),
-        'COMMENTS' => array(
-            3 => 'color: #666666; font-style: italic;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #66cc66;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #ff0000;'
-            ),
-        'NUMBERS' => array(
-            ),
-        'METHODS' => array(
-            ),
-        'SYMBOLS' => array(
-            ),
-        'ESCAPE_CHAR' => array(
-            ),
-        'SCRIPT' => array(
-            ),
-        'REGEXPS' => array(
-            2 => 'background-color: #FF9999;',
-            3 => 'background-color: #9999FF;'
-            )
-        ),
-    'URLS' => array(
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(
-        ),
-    'REGEXPS' => array(
-        2 => array(
-            GESHI_SEARCH => "(?<!\\A)\x20",
-            GESHI_REPLACE => "&#32;",
-            GESHI_MODIFIERS => 's',
-            GESHI_BEFORE => "",
-            GESHI_AFTER => ""
-            ),
-        3 => array(
-            GESHI_SEARCH => "\x09",
-            GESHI_REPLACE => "&#9;",
-            GESHI_MODIFIERS => 's',
-            GESHI_BEFORE => "",
-            GESHI_AFTER => ""
-            ),
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        ),
-    'TAB_WIDTH' => 4,
-    'PARSER_CONTROL' => array(
-        'ENABLE_FLAGS' => array(
-            'KEYWORDS' => GESHI_NEVER,
-            'SYMBOLS' => GESHI_NEVER,
-            'STRINGS' => GESHI_NEVER,
-//            'REGEXPS' => GESHI_NEVER,
-            'NUMBERS' => GESHI_NEVER
-            )
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/whois.php b/wiki/vendor/geshi/geshi/src/geshi/whois.php
deleted file mode 100644
index 5ca47e1..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/whois.php
+++ /dev/null
@@ -1,178 +0,0 @@
-<?php
-/*************************************************************************************
- * whois.php
- * --------
- * Author: Benny Baumann (BenBE@geshi.org)
- * Copyright: (c) 2008 Benny Baumann (http://qbnz.com/highlighter/)
- * Release Version: 1.0.9.0
- * Date Started: 2008/09/14
- *
- * Whois response (RPSL format) language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2008/09/14 (1.0.0)
- *  -  First Release
- *
- * TODO
- * ----
- *
- *************************************************************************************
- *
- *     This file is part of GeSHi.
- *
- *   GeSHi is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   GeSHi is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with GeSHi; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- ************************************************************************************/
-
-$language_data = array (
-    'LANG_NAME' => 'Whois (RPSL format)',
-    'COMMENT_SINGLE' => array(1 => '% ', 2 => '%ERROR:'),
-    'COMMENT_MULTI' => array(),
-    'COMMENT_REGEXP' => array(
-        //Description
-        3 => '/(?:(?<=^remarks:)|(?<=^descr:))(.|\n\s)*$/mi',
-
-        //Contact Details
-        4 => '/(?<=^address:)(.|\n\s)*$/mi',
-        5 => '/\+\d+(?:(?:\s\(\d+(\s\d+)*\))?(?:\s\d+)+|-\d+-\d+)/',
-        6 => '/\b(?!-|\.)[\w\-\.]+(?!-|\.)@((?!-)[\w\-]+\.)+\w+\b/',
-
-        //IP, Networks and AS information\links
-        7 => '/\b(?<!\.|\-)(?:[\da-f:]+(?!\.)|\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})(?:\/1?\d\d?)?(?<!\.|\-)\b/',
-        8 => '/\bAS\d+\b/'
-        ),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array(),
-    'ESCAPE_CHAR' => '',
-    'KEYWORDS' => array(
-        1 => array( //Object Types
-            'as-block','as-set','aut-num','domain','filter-set','inet-rtr',
-            'inet6num','inetnum','irt','key-cert','limerick','mntner',
-            'organisation','peering-set','person','poem','role','route-set',
-            'route','route6','rtr-set'
-            ),
-        2 => array( //Field Types
-            'abuse-mailbox','address','admin-c','aggr-bndry','aggr-mtd','alias',
-            'as-block','as-name','as-set','aut-num','auth','author','certif',
-            'changed','components','country','default','descr','dom-net',
-            'domain','ds-rdata','e-mail','encryption','export','export-comps',
-            'fax-no','filter','filter-set','fingerpr','form','holes','ifaddr',
-            'import','inet-rtr','inet6num','inetnum','inject','interface','irt',
-            'irt-nfy','key-cert','limerick','local-as','mbrs-by-ref',
-            'member-of','members','method','mnt-by','mnt-domains','mnt-irt',
-            'mnt-lower','mnt-nfy','mnt-ref','mnt-routes','mntner','mp-default',
-            'mp-export','mp-filter','mp-import','mp-members','mp-peer',
-            'mp-peering','netname','nic-hdl','notify','nserver','org',
-            'org-name','org-type','organisation','origin','owner','peer',
-            'peering','peering-set','person','phone','poem','ref-nfy','refer',
-            'referral-by','remarks','rev-srv','role','route','route-set',
-            'route6','rtr-set','signature','source','status','sub-dom','tech-c',
-            'text','upd-to','zone-c'
-            ),
-        3 => array( //RPSL reserved
-            'accept','action','and','announce','any','as-any','at','atomic',
-            'except','from','inbound','into','networks','not','or','outbound',
-            'peeras','refine','rs-any','to'
-            )
-        ),
-    'SYMBOLS' => array(
-        ':'
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false,
-        2 => false,
-        3 => false,
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #0000FF; font-weight: bold;',
-            2 => 'color: #000080; font-weight: bold;',
-            3 => 'color: #990000; font-weight: bold;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #666666; font-style: italic;',
-            2 => 'color: #666666; font-style: italic;',
-            3 => 'color: #404080;',
-            4 => 'color: #408040;',
-            5 => 'color: #408040;',
-            6 => 'color: #408040;',
-            7 => 'color: #804040;',
-            8 => 'color: #804040;',
-            '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 => '',
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #000080;',
-            ),
-        'METHODS' => array(
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #0000FF;'
-            ),
-        'REGEXPS' => array(
-            0 => 'color: #000088;'
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => 'http://www.irr.net/docs/rpsl.html'
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(
-        ),
-    'REGEXPS' => array(
-        //Variables
-        0 => "[\\$]{1,2}[a-zA-Z_][a-zA-Z0-9_]*"
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_MAYBE,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        ),
-    'TAB_WIDTH' => 4,
-    'PARSER_CONTROL' => array(
-        'KEYWORDS' => array(
-            1 => array(
-                'DISALLOWED_BEFORE' => '(?<=\A |\A \n(?m:^)|\n\n(?m:^))'
-                ),
-            2 => array(
-                'DISALLOWED_BEFORE' => '(?m:^)'
-                )
-            ),
-        'ENABLE_FLAGS' => array(
-            'BRACKETS' => GESHI_NEVER,
-            'SYMBOLS' => GESHI_NEVER,
-            'STRINGS' => GESHI_NEVER,
-            'ESCAPE_CHAR' => GESHI_NEVER,
-            'NUMBERS' => GESHI_NEVER,
-            'METHODS' => GESHI_NEVER,
-            'SCRIPT' => GESHI_NEVER
-            )
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/winbatch.php b/wiki/vendor/geshi/geshi/src/geshi/winbatch.php
deleted file mode 100644
index aa1ce52..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/winbatch.php
+++ /dev/null
@@ -1,367 +0,0 @@
-<?php
-/*************************************************************************************
- * winbatch.php
- * ------------
- * Author: Craig Storey (storey.craig@gmail.com)
- * Copyright: (c) 2004 Craig Storey (craig.xcottawa.ca)
- * Release Version: 1.0.9.0
- * Date Started: 2006/05/19
- *
- * WinBatch language file for GeSHi.
- *
- * WinBatch is a Windows scripting language - www.winbatch.com.
- * The keywords were pulled from the winbatch/system/WIL.clr file for v2005G.
- * Not all extender functions are added, but a very large set of the most common.
- *
- * 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 2004/07/14)
- * -------------------------
- * - Right now any ':Subroutine' is treated as a comment. This highlights the
- *   Subroutine's name, but it's not a perfect fix. I should use a RegEx in
- *   GeSHI_Search&Replace features..
- * - Update the list of extender functions.
- * - Use a regular expression to comment UDFs that start with 'udf_'.
- *
- *************************************************************************************
- *
- *     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' => 'Winbatch',
-    'COMMENT_SINGLE' => array(1 => ';', 2 => ':'),
-    'COMMENT_MULTI' => array(),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array("'", '"', '`'),
-    'ESCAPE_CHAR' => '',
-    'KEYWORDS' => array(
-        1 => array(
-            'While', 'To', 'Then', 'Switch', 'Select', 'Return', 'Next', 'IntControl', 'Include', 'In', 'If',
-            'Goto', 'GoSub', 'ForEach', 'For', 'Exit', 'Execute', 'ErrorMode', 'EndWhile', 'EndSwitch', '#EndSubRoutine',
-            'EndSelect', 'EndIf', '#EEndFunction', 'EndFor', 'End', 'Else', 'DropWild', 'Drop', '#DefineSubRoutine',
-            '#DefineFunction', 'Debug', 'Continue', 'Case', 'CallExt', 'Call', 'By', 'BreakPoint', 'Break'
-            ),
-        2 => array(
-            'ZOOMED', 'YES', 'WORD4', 'WORD2', 'WORD1', 'WHOLESECTION', 'WAIT', 'UNSORTED', 'UNCHECK', 'TRUE', 'TILE',
-            'TAB', 'STRING', 'STACK', 'SPC2NET', 'SORTED', 'SOK', 'SNET2PC', 'SINGLE', 'SHIFT', 'SERVER', 'SERRWINSOCK',
-            'SERRVOICE', 'SERRSOCKET', 'SERRSERVICE', 'SERRSELECT', 'SERRPARAM', 'SERROUTOFMEM', 'SERRNOTFOUND', 'SERRNOCONN',
-            'SERRNOANSWER', 'SERRMUSTWAIT', 'SERRIPADDR', 'SERRHOSTNAME', 'SERRFAILURE', 'SERRBUSY', 'SCROLLLOCK', 'SCANCEL',
-            'SAVE', 'SALREADY', 'ROWS', 'REGUSERS', 'REGROOT', 'REGMACHINE', 'REGCURRENT', 'REGCLASSES', 'RDBLCLICK', 'RCLICK',
-            'RBUTTON', 'RAD2DEG', 'QSUCCESSINFO', 'QSUCCESS', 'QSTILLEX', 'QROLLBACK', 'QNULL', 'QNODATA', 'QNEXT', 'QNEEDDATA',
-            'QFIRST', 'QCOMMIT', 'QBADHANDLE', 'PRINTER', 'PLANCKJOULES', 'PLANCKERGS', 'PI', 'PARSEONLY', 'PARSEC', 'P3ERRREPLY',
-            'OPEN', 'ON', 'OFF', 'NUMLOCK', 'NOWAIT', 'NOTIFY', 'NORMAL', 'NORESIZE', 'NONE', 'NO', 'NCSAFORMAT', 'MULTIPLE',
-            'MSFORMAT', 'MPLAYRDBLCK', 'MPLAYRCLK', 'MPLAYRBUTTON', 'MPLAYMDBLCK', 'MPLAYMCLK', 'MPLAYMBUTTON', 'MPLAYLDBLCK',
-            'MPLAYLCLK', 'MPLAYLBUTTON', 'MINOR', 'MDBLCLICK', 'MCLICK', 'MBYESNO', 'MBUTTON', 'MBOKCANCEL', 'MAJOR', 'MAGFIELD',
-            'LOCALGROUP', 'LIGHTMTPS', 'LIGHTMPS', 'LF', 'LDBLCLICK', 'LCLICK', 'LBUTTON', 'LAFFDBERROR', 'ICON', 'HTTPS', 'HTTP',
-            'HNOHEADER', 'HMETHODPOST', 'HMETHODGET', 'HIDDEN', 'HHEADERONLY', 'HHEADER', 'GRAVITATION', 'GOPHER', 'GOLDENRATIO',
-            'GMTSEC', 'GLOBALGROUP', 'GFTSEC', 'GETPROCID', 'GETEXITCODE', 'FWDSCAN', 'FTPPASSIVE', 'FTP', 'FLOAT8', 'FARADAY',
-            'FALSE', 'EXTENDED', 'EULERS', 'ENABLE', 'ELECTRIC', 'DRIVE', 'DISABLE', 'DESCENDING', 'DEG2RAD', 'DEFAULT', 'CTRL',
-            'CRLF', 'CR', 'COMMONFORMAT', 'COLUMNS', 'CHECK', 'CAPSLOCK', 'CANCEL', 'BOLTZMANN', 'BACKSCAN', 'AVOGADRO', 'ATTR_X',
-            'ATTR_T', 'ATTR_SY', 'ATTR_SH', 'ATTR_RO', 'ATTR_RI', 'ATTR_P', 'ATTR_IC', 'ATTR_H', 'ATTR_DM', 'ATTR_DI', 'ATTR_DC',
-            'ATTR_CI', 'ATTR_A', 'ASCENDING', 'ARRANGE', 'AMC', 'ACC_WRITE', 'ACC_READ_NT', 'ACC_READ_95', 'ACC_READ', 'ACC_PRINT_NT',
-            'ACC_PMANG_NT', 'ACC_PFULL_NT', 'ACC_LIST', 'ACC_FULL_NT', 'ACC_FULL_95', 'ACC_DELETE', 'ACC_CREATE', 'ACC_CONTROL',
-            'ACC_CHNG_NT', 'ACC_ATTRIB', 'ABOVEICONS'
-            ),
-        3 => array(
-            'Yields', 'Yield', 'WinZoom', 'WinWaitExist', 'WinWaitClose', 'WinWaitChild', 'WinVersion', 'WinTitle', 'WinSysInfo',
-            'WinState', 'WinShow', 'WinResources', 'WinPositionChild', 'WinPosition', 'WinPlaceSet', 'WinPlaceGet', 'WinPlaceChild',
-            'WinPlace', 'WinParmSet', 'WinParmGet', 'WinName', 'WinMetrics', 'WinItemProcId', 'WinItemNameId', 'WinItemizeEx',
-            'WinItemize', 'WinItemChild', 'WinIsDos', 'WinIdGet', 'WinIconize', 'WinHide', 'WinHelp', 'WinGetactive', 'WinExistchild',
-            'WinExist', 'WinExename', 'WinConfig', 'WinClosenot', 'WinClose', 'WinArrange', 'WinActivechild', 'WinActivchild',
-            'WinActivate', 'WebVerifyCard', 'WebSetTimeout', 'WebParamSize', 'WebParamNames', 'WebParamFile', 'WebParamData',
-            'WebParamBuf', 'WebOutFile', 'WebOutBinary', 'WebOut', 'WebDumpError', 'WebDatData', 'WebCounter', 'WebConSize', 'WebConData',
-            'WebConBuf', 'WebCmdData', 'WebBaseConv', 'Wallpaper', 'WaitForKeyEX', 'WaitForKey', 'VersionDLL', 'Version', 'VarType',
-            'TimeYmdHms', 'TimeWait', 'TimeSubtract', 'TimeJulToYmd', 'TimeJulianDay', 'TimeDiffSecs', 'TimeDiffDays', 'TimeDiff', 'TimeDelay',
-            'TimeDate', 'TimeAdd', 'TextSelect', 'TextBoxSort', 'TextBox', 'Terminate', 'Tanh', 'Tan', 'SysParamInfo', 'SvcWaitForCmd',
-            'SvcSetState', 'SvcSetAccept', 'StrUpper', 'StrTrim', 'StrSubWild', 'StrSub', 'StrScan', 'StrReplace', 'StrLower', 'StrLenWild',
-            'StrLen', 'StrIndexWild', 'StrIndexNC', 'StrIndex', 'StriCmp', 'StrFixLeft', 'StrFixCharsL', 'StrFixChars', 'StrFix', 'StrFill',
-            'StrCnt', 'StrCmp', 'StrClean', 'StrCharCount', 'StrCat', 'StrByteCount', 'Sqrt', 'SoundVolume', 'Sounds', 'Snapshot', 'Sinh', 'Sin',
-            'ShortCutMake', 'ShortCutInfo', 'ShortCutExtra', 'ShortCutEdit', 'ShortCutDir', 'ShellExecute', 'SendMenusToEx', 'SendMenusTo',
-            'SendKeysTo', 'SendKeysChild', 'SendKey', 'RunZoomWait', 'RunZoom', 'RunWithLogon', 'RunWait', 'RunShell', 'RunIconWait',
-            'RunIcon', 'RunHideWait', 'RunHide', 'RunExit', 'RunEnviron', 'Run', 'RtStatus', 'Reload', 'RegUnloadHive', 'RegSetValue',
-            'RegSetQword', 'RegSetMulSz', 'RegSetExpSz', 'RegSetEx', 'RegSetDword', 'RegSetBin', 'RegQueryValue', 'RegQueryStr',
-            'RegQueryQword', 'RegQueryMulSz', 'RegQueryKeys', 'RegQueryKeyLastWriteTime', 'RegQueryKey', 'RegQueryItem', 'RegQueryExpSz',
-            'RegQueryEx', 'RegQueryDword', 'RegQueryBin', 'RegOpenKeyEx', 'RegOpenKey', 'RegOpenFlags', 'RegLoadHive', 'RegExistValue',
-            'RegExistKey', 'RegEntryType', 'RegDelValue', 'RegDeleteKey', 'RegCreateKey', 'RegConnect', 'RegCloseKey', 'RegApp', 'Random',
-            'PtrPersistent', 'PtrGlobalDefine', 'PtrGlobal', 'Print', 'PlayWaveform', 'PlayMidi', 'PlayMedia', 'PipeServerWrite', 'PipeServerRead',
-            'PipeServerCreate', 'PipeServerClose', 'PipeInfo', 'PipeClientSendRecvData', 'PipeClientOpen', 'PipeClientClose', 'Pause',
-            'ParseData', 'ObjectTypeGet', 'ObjectType', 'ObjectOpen', 'ObjectGet', 'ObjectEventRemove', 'ObjectEventAdd',
-            'ObjectCreate', 'ObjectConstToArray', 'ObjectConstantsGet', 'ObjectCollectionOpen', 'ObjectCollectionNext',
-            'ObjectCollectionClose', 'ObjectClose', 'ObjectAccess', 'Num2Char', 'NetInfo', 'MsgTextGet', 'MousePlay', 'MouseMove', 'MouseInfo',
-            'MouseDrag', 'MouseCoords', 'MouseClickBtn', 'MouseClick', 'mod', 'Min', 'Message', 'Max', 'Loge', 'LogDisk', 'Log10', 'LastError',
-            'KeyToggleSet', 'KeyToggleGet', 'ItemSortNc', 'ItemSort', 'ItemSelect', 'ItemReplace', 'ItemRemove', 'ItemLocate', 'ItemInsert',
-            'ItemExtractCSV', 'ItemExtract', 'ItemCountCSV', 'ItemCount', 'IsNumber', 'IsLicensed', 'IsKeyDown', 'IsInt', 'IsFloat', 'IsDefined',
-            'Int', 'InstallFile', 'IniWritePvt', 'IniWrite', 'IniReadPvt', 'IniRead', 'IniItemizePvt', 'IniItemize', 'IniDeletePvt', 'IniDelete',
-            'IgnoreInput', 'IconReplace', 'IconInfo', 'IconExtract', 'IconArrange', 'GetTickCount', 'GetObject', 'GetExactTime', 'Floor',
-            'FindWindow', 'FileYmdHms', 'FileWrite', 'FileVerInfo', 'FileTimeTouch', 'FileTimeSetEx', 'FileTimeSet', 'FileTimeGetEx',
-            'FileTimeGet', 'FileTimeCode', 'FileSizeEx', 'FileSize', 'FileRoot', 'FileRename', 'FileRead', 'FilePutW', 'FilePut', 'FilePath',
-            'FileOpen', 'FileNameShort', 'FileNameLong', 'FileNameEval2', 'FileNameEval1', 'FileMoveAttr', 'FileMove', 'FileMapName',
-            'FileLocate', 'FileItemPath', 'FileItemize', 'FileInfoToArray', 'FileGetW', 'FileGet', 'FileFullname', 'FileExtension', 'FileExist',
-            'FileDelete', 'FileCreateTemp', 'FileCopyAttr', 'FileCopy', 'FileCompare', 'FileClose', 'FileBaseName', 'FileAttrSetEx',
-            'FileAttrSet', 'FileAttrGetEx', 'FileAttrGet', 'FileAppend', 'Fabs', 'ExtractAttachedFile', 'Exp', 'ExeTypeInfo', 'Exclusive',
-            'EnvItemize', 'EnvironSet', 'Environment', 'EndSession', 'DosVersion', 'DllLoad', 'DllLastError', 'DllHwnd', 'DllHinst',
-            'DllFree', 'DllCallCDecl', 'DllCall', 'Display', 'DiskVolinfo', 'DiskSize', 'DiskScan', 'DiskInfo', 'DiskFree', 'DiskExist',
-            'DirWindows', 'DirSize', 'DirScript', 'DirRename', 'DirRemove', 'DirMake', 'DirItemize', 'DirInfoToArray', 'DirHome', 'DirGet',
-            'DirExist', 'DirChange', 'DirAttrSetEx', 'DirAttrSet', 'DirAttrGetEx', 'DirAttrGet', 'DialogProcOptions', 'DialogObject',
-            'DialogControlState', 'DialogControlSet', 'DialogControlGet', 'DialogBox', 'Dialog', 'Delay', 'Decimals', 'DebugTrace',
-            'DebugData', 'DDETimeout', 'DDETerminate', 'DDERequest', 'DDEPoke', 'DDEInitiate', 'DDEExecute', 'DateTime', 'CurrFilepath',
-            'CurrentPath', 'CurrentFile', 'CreateObject', 'Cosh', 'Cos', 'ClipPut', 'ClipHasFormat', 'ClipGetEx', 'ClipGet', 'ClipAppend',
-            'ChrUnicodeToString', 'ChrUnicodeToHex', 'ChrStringToUnicode', 'ChrSetCodepage', 'ChrHexToUnicode', 'ChrGetCodepage',
-            'Char2Num', 'Ceiling', 'ButtonNames', 'BoxUpdates', 'BoxTitle', 'BoxTextFont', 'BoxTextColor', 'BoxText', 'BoxShut', 'BoxPen',
-            'BoxOpen', 'BoxNew', 'BoxMapmode', 'BoxesUp', 'BoxDrawText', 'BoxDrawRect', 'BoxDrawLine', 'BoxDrawCircle', 'BoxDestroy',
-            'BoxDataTag', 'BoxDataClear', 'BoxColor', 'BoxCaption', 'BoxButtonWait', 'BoxButtonStat', 'BoxButtonKill', 'BoxButtonDraw',
-            'BoxBitMap', 'BinaryXor', 'BinaryXlate', 'BinaryWriteEx', 'BinaryWrite', 'BinaryTagRepl', 'BinaryTagLen', 'BinaryTagInit',
-            'BinaryTagIndex', 'BinaryTagFind', 'BinaryTagExtr', 'BinaryStrCnt', 'BinarySort', 'BinaryReplace', 'BinaryReadEx',
-            'BinaryRead', 'BinaryPokeStrW', 'BinaryPokeStr', 'BinaryPokeHex', 'BinaryPokeFlt', 'BinaryPoke4', 'BinaryPoke2', 'BinaryPoke',
-            'BinaryPeekStrW', 'BinaryPeekStr', 'BinaryPeekHex', 'BinaryPeekFlt', 'BinaryPeek4', 'BinaryPeek2', 'BinaryPeek', 'BinaryOr',
-            'BinaryOleType', 'BinaryIndexNc', 'BinaryIndexEx', 'BinaryIndexBin', 'BinaryIndex', 'BinaryIncrFlt', 'BinaryIncr4',
-            'BinaryIncr2', 'BinaryIncr', 'BinaryHashRec', 'BinaryFree', 'BinaryEodSet', 'BinaryEodGet', 'BinaryCopy', 'BinaryConvert',
-            'BinaryCompare', 'BinaryClipPut', 'BinaryClipGet', 'BinaryChecksum', 'BinaryBufInfo', 'BinaryAnd', 'BinaryAllocArray',
-            'BinaryAlloc', 'Beep', 'Average', 'Atan', 'AskYesNo', 'AskTextbox', 'AskPassword', 'AskLine', 'AskItemlist', 'AskFont',
-            'AskFiletext', 'AskFilename', 'AskDirectory', 'AskColor', 'Asin', 'ArrInitialize', 'ArrInfo', 'ArrDimension',
-            'Arrayize', 'ArrayFilePutCSV', 'ArrayFilePut', 'ArrayFileGetCSV', 'ArrayFileGet', 'AppWaitClose', 'AppExist', 'AddExtender',
-            'Acos', 'Abs', 'About'
-            ),
-        4 => array(
-            'zZipFiles', 'zVersionInfo', 'zVersion', 'zUnZipFiles', 'zSetPortBit', 'zRPortShift', 'zPortOut', 'zPortIn', 'zNotPortBit',
-            'zLPortShift', 'zGetPortBit', 'zClrPortBit', 'xVerifyCCard', 'xSendMessage', 'xMessageBox', 'xMemCompact', 'xHex', 'xGetElapsed',
-            'xGetChildHwnd', 'xExtenderInfo', 'xEnumStreams', 'xEjectMedia', 'xDriveReady', 'xDiskLabelGet', 'xCursorSet', 'xBaseConvert',
-            'wxPing', 'wxParmSet', 'wxParmGet', 'wxMsgSetHdr', 'wxMsgGetHdr', 'wxMsgGetBody', 'wxHost2Addr', 'wxGetLastErr', 'wxGetInfo',
-            'wxGetErrDesc', 'wxAddr2Host', 'wtsWaitSystemEvent', 'wtsVersion', 'wtsTerminateProcess', 'wtsShutdownSystem', 'wtsSendMessage',
-            'wtsQuerySessionInfo', 'wtsProcIdToSessId', 'wtsLogoffSession', 'wtsLastErrMsg', 'wtsIsTSEnabled', 'wtsIsCitrixEnabled',
-            'wtsGetActiveConsoleSessId', 'wtsEnumSessions', 'wtsEnumProcesses', 'wtsDisconnectSession', 'wnWrkGroups', 'wnVersion', 'wntWtsUserSet',
-            'wntWtsUserGet', 'wntVersion', 'wntUserSidChk', 'wntUserSetDat', 'wntUserRename', 'wntUserProps', 'wntUserList', 'wntUserInfo',
-            'wntUserGetDat', 'wntUserFiles', 'wntUserExist', 'wntUserDel', 'wntUserAddDat', 'wntUserAdd', 'wntSvcStatus', 'wntSvcStart',
-            'wntSvcList', 'wntSvcDelete', 'wntSvcCreate', 'wntSvcControl', 'wntSvcCfgSet', 'wntSvcCfgGet', 'wntShutdown', 'wntShareUsers',
-            'wntShareSet', 'wntShareList', 'wntShareInfo', 'wntShareDel', 'wntShareAdd', 'wntServiceInf', 'wntServiceAt', 'wntServerType',
-            'wntServerList', 'wntServerInfo', 'wntSecurityGet', 'wntRunAsUser', 'wntResources2', 'wntResources', 'wntRemoteTime', 'wntRasUserSet',
-            'wntRasUserGet', 'wntProfileInfo', 'wntProfileDel', 'wntPrivUsers', 'wntPrivList', 'wntPrivGet', 'wntPrivDel', 'wntPrivAdd',
-            'wntOwnerSet', 'wntOwnerGet', 'wntMemberSet', 'wntMemberLst2', 'wntMemberList', 'wntMemberGrps', 'wntMemberGet', 'wntMemberDel',
-            'wntLsaPolSet', 'wntLsaPolGet', 'wntListGroups', 'wntLastErrMsg', 'wntGroupRen', 'wntGroupInfo', 'wntGroupEdit', 'wntGroupDel',
-            'wntGroupAdd', 'wntGetUser', 'wntGetDrive', 'wntGetDc', 'wntGetCon', 'wntFileUsers', 'wntFilesOpen', 'wntFileClose', 'wntEventWrite',
-            'wntEventLog', 'wntDomainSync', 'wntDirDialog', 'wntDfsList', 'wntDfsGetInfo', 'wntCurrUsers', 'wntChgPswd', 'wntCancelCon',
-            'wntAuditMod', 'wntAuditList', 'wntAuditGet', 'wntAuditDel', 'wntAuditAdd2', 'wntAuditAdd', 'wntAddPrinter', 'wntAddDrive',
-            'wntAcctPolSet', 'wntAcctPolGet', 'wntAcctList', 'wntAcctInfo', 'wntAccessMod', 'wntAccessList', 'wntAccessGet', 'wntAccessDel',
-            'wntaccessadd2', 'wntAccessAdd', 'wnShares', 'wnSharePath', 'wnShareName', 'wnShareCnt', 'wnServers', 'wnRestore', 'wnNetNames',
-            'wnGetUser', 'wnGetCon', 'wnGetCaps', 'wnDlgShare', 'wnDlgNoShare', 'wnDlgDiscon', 'wnDlgCon4', 'wnDlgCon3', 'wnDlgCon2', 'wnDlgCon',
-            'wnDlgBrowse', 'wnDialog', 'wnCmptrInfo', 'wnCancelCon', 'wnAddCon', 'WaitSRQ', 'w9xVersion', 'w9xUserSetDat', 'w9xUserRename',
-            'w9xUserprops', 'w9xUserList', 'w9xUserinfo', 'w9xUserGetDat', 'w9xUserExist', 'w9xUserDel', 'w9xUserAddDat', 'w9xUserAdd', 'w9xShareSet',
-            'w9xShareInfo', 'w9xShareDel', 'w9xShareAdd', 'w9xServiceAt', 'w9xServerList', 'w9xRemoteTime', 'w9xOwnerGet', 'w9xMemberSet',
-            'w9xMemberList', 'w9xMemberGrps', 'w9xMemberGet', 'w9xMemberDel', 'w9xListGroups', 'w9xGroupInfo', 'w9xGroupDel', 'w9xGroupAdd',
-            'w9xGetDC', 'w9xFileUsers', 'w9xAccessList', 'w9xAccessGet', 'w9xAccessDel', 'w9xAccessAdd', 'w95Version', 'w95ShareUsers',
-            'w95ShareSet', 'w95ShareList', 'w95ShareInfo', 'w95ShareDel', 'w95ShareAdd', 'w95ServiceInf', 'w95ServiceAt', 'w95ServerType',
-            'w95ServerInfo', 'w95Resources', 'w95GetUser', 'w95GetDrive', 'w95GetCon', 'w95FileUsers', 'w95FileClose', 'w95DirDialog',
-            'w95CancelCon', 'w95AddPrinter', 'w95AddDrive', 'w95AccessDel', 'w95AccessAdd', 'w3Version', 'w3PrtBrowse', 'w3NetGetUser',
-            'w3NetDialog', 'w3GetCon', 'w3GetCaps', 'w3DirBrowse', 'w3CancelCon', 'w3AddCon', 'urlGetScheme', 'urlEncode', 'urlDecode',
-            'tVersion', 'tSetPriority', 'TriggerList', 'Trigger', 'tRemoteConn', 'tOpenProc', 'tListProc', 'tListMod', 'tKillProc', 'tGetProcInfo',
-            'tGetPriority', 'tGetModInfo', 'tGetLastError', 'tGetData', 'TestSys', 'TestSRQ', 'tCountProc', 'tCompatible', 'tCloseProc',
-            'tBrowseCntrs', 'sSendString', 'sSendNum', 'sSendLine', 'sSendBinary', 'sRecvNum', 'sRecvLine', 'sRecvBinary', 'SrchVersion',
-            'SrchNext', 'SrchInit', 'SrchFree', 'sOpen', 'sOK2Send', 'sOK2Recv', 'smtpSendText', 'smtpSendFile', 'sListen', 'SetRWLS',
-            'SendSetup', 'SendLLO', 'SendList', 'SendIFC', 'SendDataBytes', 'SendCmds', 'Send', 'sConnect', 'sClose', 'SByteOrder32',
-            'sByteOrder16', 'sAccept', 'rRegVersion', 'rRegSearch', 'ResetSys', 'ReceiveSetup', 'Receive', 'ReadStsByte', 'RcvRespMsg',
-            'RasVersion', 'RasTypeSize', 'RasRename', 'RasNumCons', 'RasNameValid', 'RasListActCon', 'RasItemize', 'RasHangUp', 'RasGetLastErr',
-            'RasGetConStat', 'RasEntrySet', 'RasEntryInfo', 'RasEntryExist', 'RasEntryDel', 'RasEntryAdd', 'RasDialInfo', 'RasDial',
-            'RasCopy', 'RasConStatus', 'qVersionInfo', 'qTransact', 'qTables', 'qSpecial', 'qSetConnOpt', 'qNumRsltCol', 'qNativeSql', 'qLastCode',
-            'qGetData', 'qFreeStmt', 'qFreeEnv', 'qFreeConnect', 'qFetch', 'qExecDirect', 'qError', 'qDriverList', 'qDriverCon', 'qDisconnect',
-            'qDataSources', 'qConnect', 'qConfigError', 'qConfigData', 'qColumns', 'qBindCol', 'qAllocStmt', 'qAllocEnv', 'qAllocConnect',
-            'pWaitFor', 'pVersionInfo', 'pTimeout', 'pSetPublish', 'pSetPrtInfo', 'pSetPrtAttrib', 'pSetDefPrtEx', 'pSetDefPrt', 'pSendFile',
-            'pRecvFile', 'pPutString', 'pPutLine', 'pPutChar', 'pPutByte', 'pPutBinary', 'PPollUnconfig', 'PPollConfig', 'PPoll', 'pPeekChar',
-            'pPeekByte', 'pPaperSizes', 'pPaperBins', 'pModemSReg', 'pModemParams', 'pModemInit', 'pModemHangUp', 'pModemDial', 'pModemControl',
-            'pModemConnect', 'pModemCommand', 'pModemAnsRing', 'pModemAnsCall', 'pMediaTypes', 'pGetString', 'pGetPublish', 'pGetPrtList',
-            'pGetPrtInfo', 'pGetPrtAttrib', 'pGetLine', 'pGetLastError', 'pGetErrorMsg', 'pGetErrorCode', 'pGetDefPrtInf', 'pGetChar',
-            'pGetByte', 'pGetBinary', 'pDelPrtConn', 'pDelPrinter', 'pComOpen', 'pComModify', 'pComInfo', 'pComControl', 'pComClose',
-            'pCheckSum', 'pCheckBinary', 'pCaptureOn', 'pCaptureOff', 'pCaptureLog', 'PassControl', 'pAddPrtConn', 'pAddPrinter', 'p3RecvText',
-            'p3RecvFile', 'p3Peek', 'p3Open', 'p3GetReply', 'p3Delete', 'p3Count', 'p3Close', 'nwWhoAmI', 'nwVfyPassword', 'nwVersion',
-            'nwSrvShutdown', 'nwSrvNLMMgr', 'nwSrvGenGUID', 'nwSrvExecNCF', 'nwSetVolLimit', 'nwSetSrvParam', 'nwSetSrvInfo', 'nwSetPrimServ',
-            'nwSetPassword', 'nwSetOptions', 'nwSetFileInfo', 'nwSetDirLimit', 'nwSetDirInfo', 'nwSetContext', 'nwSetBcastMode', 'nwServerList',
-            'nwSendBcastMsg', 'nwSearchObjects', 'nwSearchFilter', 'nwRenameObject', 'nwRemoveObject', 'nwReceiveBcastMsg', 'nwNameConvert',
-            'nwMutateObject', 'nwMoveObject', 'nwModifyObject', 'nwMapDelete', 'nwMap', 'nwLogout', 'nwLogin', 'nwListUserGroups',
-            'nwListObjects', 'nwListGroupMembers', 'nwLastErrMsg', 'nwIsUserInGroup', 'nwGetVolLimit', 'nwGetSrvStats', 'nwGetSrvParam',
-            'nwGetSrvInfo', 'nwGetSrvCfg', 'nwGetOptions', 'nwGetObjValue', 'nwGetObjInfo', 'nwGetNLMInfo', 'nwGetMapped', 'nwGetFileInfo',
-            'nwGetDirLimit', 'nwGetDirInfo', 'nwGetContext', 'nwGetConnInfo', 'nwGetCapture', 'nwGetBcastMode', 'nwGetAttrInfo',
-            'nwDriveStatus', 'nwDrivePath', 'nwDetachFromServer', 'nwDelUserFromGroup', 'nwDelConnNum', 'nwCompareObject', 'nwClientInfo',
-            'nwChgPassword', 'nwAttachToServer', 'nwAddUserToGroup', 'nwAddObject', 'netVersion', 'netResources', 'netGetUser', 'netGetCon',
-            'netDirDialog', 'netCancelCon', 'netAddPrinter', 'netAddDrive', 'n4Version', 'n4UserGroups', 'n4UserGroupEx', 'n4SetPrimServ',
-            'n4SetOptions', 'n4SetContextG', 'n4SetContext', 'n4ServerList', 'n4ServerInfo', 'n4ObjSearch', 'n4ObjRename', 'n4ObjOptions',
-            'n4ObjMove', 'n4ObjGetVal', 'n4ObjectProps', 'n4ObjectList', 'n4ObjectInfo', 'n4ObjDelete', 'n4NameConvert', 'n4MsgsEndAll',
-            'n4MsgsEnd', 'n4MemberSet', 'n4MemberGet', 'n4MemberDel', 'n4MapRoot', 'n4MapDir', 'n4MapDelete', 'n4Map', 'n4LogoutTree',
-            'n4Logout', 'n4Login', 'n4GetUserName', 'n4GetUserId', 'n4GetUser', 'n4GetNetAddr', 'n4GetMapped', 'n4GetContext',
-            'n4GetConnNum', 'n4FileUsers', 'n4FileTimeGet', 'n4FileAttrSet', 'n4FileAttrGet', 'n4DriveStatus', 'n4DrivePath', 'n4DirTimeGet',
-            'n4DirAttrSet', 'n4DirAttrGet', 'n4Detach', 'n4ChgPassword', 'n4CapturePrt', 'n4CaptureGet', 'n4CaptureEnd', 'n4Attach',
-            'n3Version', 'n3UserGroups', 'n3ServerList', 'n3ServerInfo', 'n3MsgsEndAll', 'n3MsgsEnd', 'n3MemberSet', 'n3MemberGet',
-            'n3MemberDel', 'n3Maproot', 'n3Mapdir', 'n3Mapdelete', 'n3Map', 'n3Logout', 'n3GetUserId', 'n3GetUser', 'n3GetNetAddr',
-            'n3GetMapped', 'n3GetConnNum', 'n3FileTimeGet', 'n3FileAttrSet', 'n3FileAttrGet', 'n3DriveStatus', 'n3DrivePath',
-            'n3DirTimeGet', 'n3DirAttrSet', 'n3DirAttrGet', 'n3Detach', 'n3ChgPassword', 'n3CapturePrt', 'n3CaptureGet',
-            'n3CaptureEnd', 'n3Attach', 'mVersion', 'mSyncMail', 'mSendMailEx', 'mSendMail', 'mrecvmail', 'mReadNextMsg', 'mLogOn',
-            'mLogOff', 'mFindNext', 'mError', 'mCompatible', 'kVerInfo', 'kStatusInfo', 'kSendText', 'kSendFile', 'kManageImap4',
-            'kInit', 'kGetMail', 'kExtra', 'kDest', 'kDeletePop3', 'iWriteDataBuf', 'iWriteData', 'iVersion', 'IUrlOpen', 'iUrlEncode',
-            'iUrlDecode', 'iReadDataBuf', 'iReadData', 'ipVersion', 'ipPing', 'iPing', 'ipHost2Addr', 'ipGetLastErr', 'ipGetAddress',
-            'iParseURL', 'ipAddr2Host', 'iOptionSet', 'iOptionGet', 'ImgWave', 'ImgVersion', 'ImgUnsharpMask', 'ImgThreshold', 'ImgSwirl',
-            'ImgSpread', 'ImgSolarize', 'ImgShear', 'ImgSharpen', 'ImgShade', 'ImgScale', 'ImgSample', 'ImgRotate', 'ImgResize',
-            'ImgReduceNoise', 'ImgRaise', 'ImgOilPaint', 'ImgNormalize', 'ImgNegate', 'ImgMotionBlur', 'ImgModulate', 'ImgMinify',
-            'ImgMedianFilter', 'ImgMagnify', 'ImgLevel', 'ImgIsValid', 'ImgIsPalette', 'ImgIsMono', 'ImgIsGray', 'ImgInfo', 'ImgImplode',
-            'ImgGetImageType', 'ImgGetColorCount', 'ImgGaussianBlur', 'ImgGamma', 'ImgFrame', 'ImgFlop', 'ImgFlip', 'ImgEqualize',
-            'ImgEnhance', 'ImgEmboss', 'ImgCrop', 'ImgConvert', 'ImgContrast', 'ImgCompare', 'ImgColorize', 'ImgChop', 'ImgCharcoal',
-            'ImgBorder', 'ImgBlur', 'ImgAddNoise', 'iLocFindNext', 'iLocFindInit', 'iHttpOpen', 'iHttpInit', 'iHttpHeaders', 'iHttpAccept',
-            'iHostConnect', 'iHost2Addr', 'iGetResponse', 'iGetLastError', 'iGetIEVer', 'iGetConStatEx', 'iGetConState', 'iFtpRename',
-            'iFtpPut', 'iFtpOpen', 'iFtpGet', 'iFtpFindNext', 'iFtpFindInit', 'iFtpDirRemove', 'iFtpDirMake', 'iFtpDirGet', 'iFtpDirChange',
-            'iFtpDialog', 'iFtpDelete', 'iFtpCmd', 'iErrorDialog', 'iDialItemize', 'iDialHangUp', 'iDial', 'iCookieSet', 'iCookieGet',
-            'iContentURL', 'iContentFile', 'iContentData', 'iClose', 'ibWrtf', 'ibWrt', 'ibWait', 'ibVersion', 'ibUnlock', 'ibTrg',
-            'ibTmo', 'ibStop', 'ibStatus', 'ibSta', 'ibSre', 'ibSic', 'ibSad', 'ibRsv', 'ibRsp', 'ibRsc', 'ibRpp', 'ibRdf', 'ibRd',
-            'ibPpc', 'ibPoke', 'ibPct', 'ibPad', 'ibOnl', 'ibMakeAddr', 'ibLock', 'ibLoc', 'ibLn', 'ibLines', 'ibIst', 'ibInit',
-            'ibGts', 'ibGetSad', 'ibGetPad', 'ibFind', 'ibEvent', 'ibErr', 'ibEot', 'ibEos', 'iBegin', 'ibDma', 'ibDev', 'ibConfig',
-            'ibCntl', 'ibCnt', 'ibCmda', 'ibCmd', 'ibClr', 'ibCac', 'ibBna', 'ibAsk', 'iAddr2Host', 'huge_Thousands', 'huge_Subtract',
-            'huge_SetOptions', 'huge_Multiply', 'huge_GetLastError', 'huge_ExtenderInfo', 'huge_Divide', 'huge_Decimal', 'huge_Add',
-            'httpStripHTML', 'httpRecvTextF', 'httpRecvText', 'httpRecvQuery', 'httpRecvQryF', 'httpRecvFile', 'httpGetServer',
-            'httpGetQuery', 'httpGetPath', 'httpGetFile', 'httpGetDir', 'httpGetAnchor', 'httpFullPath', 'httpFirewall', 'httpAuth',
-            'ftpRename', 'ftpQuote', 'ftpPut', 'ftpOpen', 'ftpList', 'ftpGet', 'ftpFirewall', 'ftpDelete', 'ftpClose', 'ftpChDir',
-            'FindRQS', 'FindLstn', 'EnvSetVar', 'EnvPathDel', 'EnvPathChk', 'EnvPathAdd', 'EnvListVars', 'EnvGetVar', 'EnvGetInfo',
-            'EnableRemote', 'EnableLocal', 'ehllapiWait', 'ehllapiVersion', 'ehllapiUninit', 'ehllapiStopKeyIntercept', 'ehllapiStopHostNotify',
-            'ehllapiStopCloseIntercept', 'ehllapiStartKeyIntercept', 'ehllapiStartHostNotify', 'ehllapiStartCloseIntercept',
-            'ehllapiSetWindowStatus', 'ehllapiSetSessionParams', 'ehllapiSetPSWindowName', 'ehllapiSetCursorLoc', 'ehllapiSendKey',
-            'ehllapiSendFile', 'ehllapiSearchPS', 'ehllapiSearchField', 'ehllapiRunProfile', 'ehllapiResetSystem', 'ehllapiReserve',
-            'ehllapiRelease', 'ehllapiReceiveFile', 'ehllapiQuerySystem', 'ehllapiQueryPSStatus', 'ehllapiQueryHostNotify',
-            'ehllapiQueryFieldAttr', 'ehllapiQueryCursorLoc', 'ehllapiQueryCloseIntercept', 'ehllapiPostInterceptStatus',
-            'ehllapiPause', 'ehllapiLastErrMsg', 'ehllapiInit', 'ehllapiGetWindowStatus', 'ehllapiGetPSHWND', 'ehllapiGetKey',
-            'ehllapiFindFieldPos', 'ehllapiFindFieldLen', 'ehllapiDisconnectPS', 'ehllapiCvtRCToPos', 'ehllapiCvtPosToRC',
-            'ehllapiCopyTextToPS', 'ehllapiCopyTextToField', 'ehllapiCopyTextFromPS', 'ehllapiCopyTextFromField', 'ehllapiCopyOIA',
-            'ehllapiConnectPS', 'dunItemize', 'dunDisconnect', 'dunConnectEx', 'dunConnect', 'dsTestParam', 'dsSIDtoHexStr', 'dsSetSecProp',
-            'dsSetProperty', 'dsSetPassword', 'dsSetObj', 'dsSetCredentX', 'dsSetCredent', 'dsRemFromGrp', 'dsRelSecObj', 'dsMoveObj',
-            'dsIsObject', 'dsIsMemberGrp', 'dsIsContainer', 'dsGetUsersGrps', 'dsGetSecProp', 'dsGetPropName', 'dsGetProperty',
-            'dsGetPrntPath', 'dsGetPrimGrp', 'dsGetMemGrp', 'dsGetInfo', 'dsGetClass', 'dsGetChldPath', 'dsFindPath', 'dsDeleteObj',
-            'dsCreatSecObj', 'dsCreateObj', 'dsCopySecObj', 'dsAddToGrp', 'dsAclRemAce', 'dsAclOrderAce', 'dsAclGetAces', 'dsAclAddAce',
-            'DevClearList', 'DevClear', 'dbTest', 'dbSwapColumns', 'dbSort', 'dbSetRecordField', 'dbSetOptions', 'dbSetErrorReporting',
-            'dbSetEntireRecord', 'dbSetDelimiter', 'dbSave', 'dbOpen', 'dbNameColumn', 'dbMakeNewItem', 'dbInsertColumn', 'dbGetVersion',
-            'dbGetSaveStatus', 'dbGetRecordField', 'dbGetRecordCount', 'dbGetNextItem', 'dbGetLastError', 'dbGetEntireRecord',
-            'dbGetColumnType', 'dbGetColumnNumber', 'dbGetColumnName', 'dbGetColumnCount', 'dbFindRecord', 'dbExist', 'dbEasterEgg',
-            'dbDeleteRecord', 'dbDeleteColumn', 'dbDebug', 'dbCookDatabases', 'dbClose', 'dbCloneRecord', 'dbBindCol', 'cWndState',
-            'cWndinfo', 'cWndGetWndSpecName', 'cWndGetWndSpec', 'cWndexist', 'cWndByWndSpecName', 'cWndByWndSpec', 'cWndbyseq',
-            'cWndbyname', 'cWndbyid', 'cWndbyclass', 'cWinIDConvert', 'cVersionInfo', 'cVendorId', 'cSetWndText', 'cSetUpDownPos',
-            'cSetTvItem', 'cSetTrackPos', 'cSetTabItem', 'cSetLvItem', 'cSetLbItemEx', 'cSetLbItem', 'cSetIpAddr', 'cSetFocus',
-            'cSetEditText', 'cSetDtpDate', 'cSetCbItem', 'cSetCalDate', 'cSendMessage', 'cRadioButton', 'cPostMessage', 'cPostButton',
-            'cMemStat', 'cGetWndCursor', 'cGetUpDownPos', 'cGetUpDownMin', 'cGetUpDownMax', 'cGetTVItem', 'cGetTrackPos', 'cGetTrackMin',
-            'cGetTrackMax', 'cGetTbText', 'cGetSbText', 'cGetLvText', 'cGetLvSelText', 'cGetLvFocText', 'cGetLvDdtText', 'cGetLvColText',
-            'cGetLbText', 'cGetLbSelText', 'cGetLbCount', 'cGetIpAddr', 'cGetInfo', 'cGetHrText', 'cGetFocus', 'cGetEditText', 'cGetDtpDate',
-            'cGetControlImageCRC', 'cGetCBText', 'cGetCbCount', 'cGetCalDate', 'cFindByName', 'cFindByClass', 'cEnablestate', 'cDblClickItem',
-            'cCpuSupt', 'cCpuSpeed', 'cCpuIdExt', 'cCpuId', 'cCpuFeat', 'cCpuBenchmark', 'cCloneCheck', 'cClickToolbar', 'cClickButton',
-            'cClearTvItem', 'cClearLvItem', 'cClearLbAll', 'cCheckbox', 'aVersion', 'aStatusbar', 'aShellFolder', 'aMsgTimeout', 'AllSPoll',
-            'aGetLastError', 'aFileRename', 'aFileMove', 'aFileDelete', 'aFileCopy'
-            ),
-        5 => array(
-            'wWordRight', 'wWordLeft', 'wWinTile', 'wWinRestore', 'wWinNext', 'wWinMinimize', 'wWinMaximize', 'wWinCloseAll', 'wWinClose',
-            'wWinCascade', 'wWinArricons', 'wViewOutput', 'wViewOptions', 'wViewHtml', 'wUpperCase', 'wUpline', 'wUndo', 'wTopOfFile', 'wToggleIns',
-            'wTab', 'wStatusMsg', 'wStartSel', 'wSpellcheck', 'wSetProject', 'wSetPrefs', 'wSetColblk', 'wSetBookmark', 'wSelWordRight',
-            'wSelWordLeft', 'wSelUp', 'wSelTop', 'wSelRight', 'wSelPgUp', 'wSelPgDn', 'wSelLeft', 'wSelInfo', 'wSelHome', 'wSelEnd', 'wSelectAll',
-            'wSelDown', 'wSelBottom', 'wRunRebuild', 'wRunMake', 'wRunExecute', 'wRunDebug', 'wRunConfig', 'wRunCompile', 'wRunCommand', 'wRight',
-            'wRepeat', 'wRedo', 'wRecord', 'wProperties', 'wPrintDirect', 'wPrinSetup', 'wPrevError', 'wPaste', 'wPageUp', 'wPageDown', 'wNextError',
-            'wNewLine', 'wLowerCase', 'wLineCount', 'wLeft', 'wInvertCase', 'wInsString', 'wInsLine', 'wHome', 'wHelpKeyword', 'wHelpKeybrd',
-            'wHelpIndex', 'wHelpHelp', 'wHelpCmds', 'wHelpAbout', 'wGotoLine', 'wGotoCol', 'wGetWrap', 'wGetWord', 'wGetUndo', 'wGetSelstate',
-            'wGetRedo', 'wGetOutput', 'wGetModified', 'wGetLineNo', 'wGetIns', 'wGetFilename', 'wGetColNo', 'wGetChar', 'wFtpOpen', 'wFindNext',
-            'wFindInFiles', 'wFind', 'wFileSaveAs', 'wFileSave', 'wFileRevert', 'wFilePrint', 'wFilePgSetup', 'wFileOpen', 'wFileNew', 'wFileMerge',
-            'wFileList', 'wFileExit', 'wEndSel', 'wEndOfFile', 'wEnd', 'wEdWrap', 'wEdWordRight', 'wEdWordLeft', 'wEdUpLine', 'wEdUndo', 'wEdTopOfFile',
-            'wEdToggleIns', 'wEdTab', 'wEdStartSel', 'wEdSetColBlk', 'wEdSelectAll', 'wEdRight', 'wEdRedo', 'wEdPaste', 'wEdPageUp', 'wEdPageDown',
-            'wEdNewLine', 'wEdLeft', 'wEdInsString', 'wEdHome', 'wEdGoToLine', 'wEdGoToCol', 'wEdGetWord', 'wEdEndSel', 'wEdEndOfFile', 'wEdEnd',
-            'wEdDownLine', 'wEdDelete', 'wEdCutLine', 'wEdCut', 'wEdCopyLine', 'wEdCopy', 'wEdClearSel', 'wEdBackTab', 'wEdBackspace', 'wDownLine',
-            'wDelete', 'wDelButton', 'wCutMarked', 'wCutLine', 'wCutAppend', 'wCut', 'wCopyMarked', 'wCopyLine', 'wCopyAppend', 'wCopy', 'wCompile',
-            'wClearSel', 'wChange', 'wCallMacro', 'wBackTab', 'wBackspace', 'wAutoIndent', 'wAddButton', 'edWindowTile', 'edWindowRestore',
-            'edWindowNext', 'edWindowMinimize', 'edWindowMaximize', 'edWindowCloseall', 'edWindowClose', 'edWindowCascade', 'edWindowArrangeIcons',
-            'edStatusMsg', 'edSearchViewOutput', 'edSearchRepeat', 'edSearchPrevError', 'edSearchNextError', 'edSearchFind', 'edSearchChange',
-            'edRunRebuild', 'edRunMake', 'edRunExecute', 'edRunDebug', 'edRunConfigure', 'edRunCompile', 'edRunCommand', 'edRecord', 'edHelpProcedures',
-            'edHelpKeyword', 'edHelpKeyboard', 'edHelpIndex', 'edHelpHelp', 'edHelpCommands', 'edHelpAbout', 'edGetWordWrapState', 'edGetWindowName',
-            'edGetUndoState', 'edGetSelectionState', 'edGetRedoState', 'edGetModifiedStatus', 'edGetLineNumber', 'edGetInsertState', 'edGetColumnNumber',
-            'edGetChar', 'edFileSetPreferences', 'edFileSaveAs', 'edFileSave', 'edFilePrinterSetup', 'edFilePrint', 'edFilePageSetup', 'edFileOpen',
-            'edFileNew', 'edFileMerge', 'edFileList', 'edFileExit', 'edEditWrap', 'edEditWordRight', 'edEditWordLeft', 'edEditUpLine', 'edEditUndo',
-            'edEditToggleIns', 'edEditTab', 'edEditStartSelection', 'edEditSetColumnBlock', 'edEditSetBookmark', 'edEditSelectAll', 'edEditRight',
-            'edEditRedo', 'edEditPaste', 'edEditPageUp', 'edEditPageDown', 'edEditLeft', 'edEditInsertString', 'edEditGoToLine', 'edEditGoToColumn',
-            'edEditGoToBookmark', 'edEditGetCurrentWord', 'edEditEndSelection', 'edEditEndOfLine', 'edEditEndOfFile', 'edEditDownline', 'edEditDelete',
-            'edEditCutline', 'edEditCut', 'edEditCopyline', 'edEditCopy', 'edEditClearSelection', 'edEditBeginningOfLine', 'edEditBeginningOfFile',
-            'edEditBackTab', 'edEditBackspace', 'edDeleteButton', 'edAddButton'
-            )
-        ),
-    '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;',
-            2 => 'color: #0080FF; font-weight: bold;',
-            3 => 'color: #0000FF;',
-            4 => 'color: #FF00FF;',
-            5 => 'color: #008000;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #008000; font-style: italic;',
-            2 => 'color: #FF1010; font-weight: bold;',
-            'MULTI' => 'color: #808080; font-style: italic;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #000099; font-weight: bold;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #66cc66;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #ff0000;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #cc66cc;'
-            ),
-        'METHODS' => array(
-            0 => 'color: #006600;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #66cc66;'
-            ),
-        'REGEXPS' => array(
-            0 => 'color: #0000ff;'
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => '',
-        4 => '',
-        5 => ''
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(),
-    'REGEXPS' => array(//Variable names
-        0 => "[\\$]{1,2}[a-zA-Z_][a-zA-Z0-9_]*"
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_MAYBE,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/xbasic.php b/wiki/vendor/geshi/geshi/src/geshi/xbasic.php
deleted file mode 100644
index 45af710..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/xbasic.php
+++ /dev/null
@@ -1,141 +0,0 @@
-<?php
-/*************************************************************************************
- * 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.9.0
- * Date Started: 2005/11/23
- *
- * XBasic language file for GeSHi.
- *
- * CHANGES
- * -------
- *  - Removed duplicate keywords
- *  - Tabs converted in spaces.
- *************************************************************************************
- *
- *     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' => 'XBasic',
-    'COMMENT_SINGLE' => array(1 => "'"),
-    'COMMENT_MULTI' => array(),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array('"'),
-    'ESCAPE_CHAR' => '',
-    'KEYWORDS' => array(
-        1 => array(
-            'WHILE', 'UNTIL', 'TRUE', 'TO', 'THEN', 'SUB', 'STOP', 'STEP',
-            'SELECT', 'RETURN', 'PROGRAM', 'NEXT', 'LOOP', 'IFZ',
-            'IFT', 'IFF', 'IF', 'GOTO', 'GOSUB', 'FOR', 'FALSE', 'EXIT',
-            'ENDIF', 'END', 'ELSE', 'DO', 'CASE', 'ALL'
-            ),
-        2 => array(
-            'XMAKE', 'XLONGAT', 'XLONG', 'WRITE', 'VOID', 'VERSION$', 'VERSION',
-            'USHORTAT', 'USHORT', 'UNION', 'ULONGAT', 'ULONG', 'UCASE$',
-            'UBYTEAT', 'UBYTE', 'UBOUND', 'TYPE','TRIM$', 'TAB', 'SWAP',
-            'SUBADDRESS', 'SUBADDR', 'STUFF$', 'STRING', 'STRING$', 'STR$',
-            'STATIC', 'SSHORTAT', 'SSHORT', 'SPACE$', 'SMAKE', 'SLONGAT', 'SLONG',
-            'SIZE', 'SINGLEAT', 'SINGLE', 'SIGNED$', 'SIGN', 'SHELL', 'SHARED',
-            'SGN', 'SFUNCTION', 'SET', 'SEEK', 'SCOMPLEX', 'SBYTEAT', 'SBYTE',
-            'RTRIM$', 'ROTATER', 'ROTATEL', 'RJUST$', 'RINSTRI', 'RINSTR',
-            'RINCHRI', 'RINCHR', 'RIGHT$', 'REDIM', 'READ', 'RCLIP$', 'QUIT',
-            'PROGRAM$', 'PRINT', 'POF', 'OPEN', 'OCTO$', 'OCT$', 'NULL$', 'MIN',
-            'MID$', 'MAX', 'MAKE', 'LTRIM$', 'LOF', 'LJUST$', 'LIBRARY', 'LEN',
-            'LEFT$', 'LCLIP$', 'LCASE$', 'INTERNAL', 'INT', 'INSTRI', 'INSTR',
-            'INLINE$', 'INFILE$', 'INCHRI', 'INCHR', 'INC', 'IMPORT', 'HIGH1',
-            'HIGH0', 'HEXX$', 'HEX$', 'GOADDRESS', 'GOADDR', 'GMAKE', 'GLOW',
-            'GIANTAT', 'GIANT', 'GHIGH', 'FUNCTION', 'FUNCADDRESS', 'FUNCADDR',
-            'FORMAT$', 'FIX', 'EXTU', 'EXTS', 'EXTERNAL', 'ERROR', 'ERROR$',
-            'EOF', 'DOUBLEAT', 'DOUBLE', 'DMAKE', 'DLOW', 'DIM', 'DHIGH',
-            'DECLARE', 'DEC', 'DCOMPLEX', 'CSTRING$', 'CSIZE', 'CSIZE$', 'CLR',
-            'CLOSE', 'CLEAR', 'CJUST$', 'CHR$', 'CFUNCTION', 'BITFIELD', 'BINB$',
-            'BIN$', 'AUTOX', 'AUTOS', 'AUTO', 'ATTACH', 'ASC', 'ABS'
-            ),
-        3 => array(
-            'XOR', 'OR', 'NOT', 'MOD', 'AND'
-            ),
-        4 => array(
-            'TANH', 'TAN', 'SQRT', 'SINH', 'SIN', 'SECH', 'SEC', 'POWER',
-            'LOG10', 'LOG', 'EXP10', 'EXP', 'CSCH', 'CSC', 'COTH', 'COT', 'COSH',
-            'COS', 'ATANH', 'ATAN', 'ASINH', 'ASIN', 'ASECH', 'ASEC', 'ACSCH',
-            'ACSC', 'ACOSH', 'ACOS'
-            )
-        ),
-    'SYMBOLS' => array(
-        '(', ')', '[', ']', '!', '@', '%', '&', '*', '|', '/', '<', '>',
-        '=','+','-'
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false,
-        2 => false,
-        3 => false,
-        4 => false
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #00a1a1;font-weight: bold',
-            2 => 'color: #000066;font-weight: bold',
-            3 => 'color: #00a166;font-weight: bold',
-            4 => 'color: #0066a1;font-weight: bold'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #808080;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #66cc66;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #ff0000;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #cc66cc;'
-            ),
-        'METHODS' => array(
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #66cc66;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #000099;'
-            ),
-        'SCRIPT' => array(
-            ),
-        'REGEXPS' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => 'http://www.xbasic.org',
-        4 => 'http://www.xbasic.org'
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(
-        ),
-    'REGEXPS' => array(
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/xml.php b/wiki/vendor/geshi/geshi/src/geshi/xml.php
deleted file mode 100644
index a6a145f..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/xml.php
+++ /dev/null
@@ -1,155 +0,0 @@
-<?php
-/*************************************************************************************
- * xml.php
- * -------
- * Author: Nigel McNie (nigel@geshi.org)
- * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter/)
- * Release Version: 1.0.9.0
- * Date Started: 2004/09/01
- *
- * XML language file for GeSHi. Based on the idea/file by Christian Weiske
- *
- * CHANGES
- * -------
- * 2008/05/23 (1.0.7.22)
- *   -  Added description of extra language features (SF#1970248)
- * 2005/12/28 (1.0.2)
- *   -  Removed escape character for strings
- * 2004/11/27 (1.0.1)
- *   -  Added support for multiple object splitters
- * 2004/10/27 (1.0.0)
- *   -  First Release
- *
- * TODO (updated 2004/11/27)
- * -------------------------
- * * Check regexps work and correctly highlight XML stuff and nothing else
- *
- *************************************************************************************
- *
- *     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' => 'XML',
-    '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(
-            0 => 'color: #000099; font-weight: bold;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #66cc66;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #ff0000;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #cc66cc;'
-            ),
-        'METHODS' => array(
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #66cc66;'
-            ),
-        'SCRIPT' => array(
-            -1 => 'color: #808080; font-style: italic;', // comments
-            0 => 'color: #00bbdd;',
-            1 => 'color: #ddbb00;',
-            2 => 'color: #339933;',
-            3 => 'color: #009900;'
-            ),
-        'REGEXPS' => array(
-            0 => 'color: #000066;',
-            1 => 'color: #000000; font-weight: bold;',
-            2 => 'color: #000000; font-weight: bold;'
-            )
-        ),
-    'URLS' => array(
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(
-        ),
-    'REGEXPS' => array(
-        0 => array(//attribute names
-            GESHI_SEARCH => '([a-z_:][\w\-\.:]*)(=)',
-            GESHI_REPLACE => '\\1',
-            GESHI_MODIFIERS => 'i',
-            GESHI_BEFORE => '',
-            GESHI_AFTER => '\\2'
-            ),
-        1 => array(//Initial header line
-            GESHI_SEARCH => '(&lt;[\/?|(\?xml)]?[a-z_:][\w\-\.:]*(\??&gt;)?)',
-            GESHI_REPLACE => '\\1',
-            GESHI_MODIFIERS => 'i',
-            GESHI_BEFORE => '',
-            GESHI_AFTER => ''
-            ),
-        2 => array(//Tag end markers
-            GESHI_SEARCH => '(([\/|\?])?&gt;)',
-            GESHI_REPLACE => '\\1',
-            GESHI_MODIFIERS => 'i',
-            GESHI_BEFORE => '',
-            GESHI_AFTER => ''
-            ),
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_ALWAYS,
-    'SCRIPT_DELIMITERS' => array(
-        -1 => array(
-            '<!--' => '-->'
-            ),
-        0 => array(
-            '<!DOCTYPE' => '>'
-            ),
-        1 => array(
-            '&' => ';'
-            ),
-        2 => array(
-            '<![CDATA[' => ']]>'
-            ),
-        3 => array(
-            '<' => '>'
-            )
-    ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        -1 => false,
-        0 => false,
-        1 => false,
-        2 => false,
-        3 => true
-        ),
-    'TAB_WIDTH' => 2,
-    'PARSER_CONTROL' => array(
-        'ENABLE_FLAGS' => array(
-            'NUMBERS' => GESHI_NEVER
-        )
-    )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/xojo.php b/wiki/vendor/geshi/geshi/src/geshi/xojo.php
deleted file mode 100644
index e067acf..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/xojo.php
+++ /dev/null
@@ -1,279 +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.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/wiki/vendor/geshi/geshi/src/geshi/xorg_conf.php b/wiki/vendor/geshi/geshi/src/geshi/xorg_conf.php
deleted file mode 100644
index 92b276b..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/xorg_conf.php
+++ /dev/null
@@ -1,122 +0,0 @@
-<?php
-/*************************************************************************************
- * xorg_conf.php
- * ----------
- * Author: Milian Wolff (mail@milianw.de)
- * Copyright: (c) 2008 Milian Wolff (http://milianw.de)
- * Release Version: 1.0.9.0
- * Date Started: 2008/06/18
- *
- * xorg.conf language file for GeSHi.
- *
- * CHANGES
- * -------
- * 2008/06/18 (1.0.8)
- *  -  Initial import
- *
- *************************************************************************************
- *
- *     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' => 'Xorg configuration',
-    'COMMENT_SINGLE' => array(1 => '#'),
-    'COMMENT_MULTI' => array(),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array('"'),
-    'ESCAPE_CHAR' => '\\',
-    'KEYWORDS' => array(
-        // sections
-        1 => array(
-            'Section', 'EndSection', 'SubSection', 'EndSubSection'
-            ),
-        2 => array(
-            // see http://www.x.org/archive/X11R6.9.0/doc/html/xorg.conf.5.html
-            'BiosBase', 'Black', 'Boardname', 'BusID', 'ChipID', 'ChipRev',
-            'Chipset', 'ClockChip', 'Clocks', 'DacSpeed',
-            'DefaultDepth', 'DefaultFbBpp', 'Depth', 'Device',
-            'DisplaySize', 'Driver', 'FbBpp', 'Gamma',
-            'HorizSync', 'IOBase', 'Identifier', 'InputDevice',
-            'Load', 'MemBase', 'Mode', 'Modeline', 'Modelname',
-            'Modes', 'Monitor', 'Option', 'Ramdac', 'RgbPath',
-            'Screen', 'TextClockFreq', 'UseModes', 'VendorName',
-            'VertRefresh', 'VideoAdaptor', 'VideoRam',
-            'ViewPort', 'Virtual', 'Visual', 'Weight', 'White'
-            ),
-        3 => array(
-            // some sub-keywords
-            // screen position
-            'Above', 'Absolute', 'Below', 'LeftOf', 'Relative', 'RightOf',
-            // modes
-            'DotClock', 'Flags', 'HSkew', 'HTimings', 'VScan', 'VTimings'
-            ),
-        ),
-    'REGEXPS' => array(
-        ),
-    'SYMBOLS' => array(
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false,
-        2 => false,
-        3 => false
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #b1b100;',
-            2 => 'color: #990000;',
-            3 => 'color: #550000;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #adadad; font-style: italic;',
-            ),
-        'ESCAPE_CHAR' => array(
-            ),
-        'BRACKETS' => array(
-            ),
-        'STRINGS' => array(
-            0 => 'color: #0000ff;',
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #cc66cc;'
-            ),
-        'METHODS' => array(
-            ),
-        'SYMBOLS' => array(
-            ),
-        'REGEXPS' => array(
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => ''
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        ),
-    'TAB_WIDTH' => 4
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/xpp.php b/wiki/vendor/geshi/geshi/src/geshi/xpp.php
deleted file mode 100644
index d249c48..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/xpp.php
+++ /dev/null
@@ -1,434 +0,0 @@
-<?php
-/*************************************************************************************
- * xpp.php
- * -------
- * Author: Simon Butcher (simon@butcher.name)
- * Copyright: (c) 2007 Simon Butcher (http://simon.butcher.name/)
- * Release Version: 1.0.9.0
- * Date Started: 2007/02/27
- *
- * Axapta/Dynamics Ax X++ language file for GeSHi.
- * For details, see <http://msdn.microsoft.com/en-us/library/aa867122.aspx>
- *
- * CHANGES
- * -------
- * 2007/02/28 (1.0.0)
- *  -  First Release
- *
- * TODO (updated 2007/02/27)
- * -------------------------
- *
- *************************************************************************************
- *
- *     This file is part of GeSHi.
- *
- *   GeSHi is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   GeSHi is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with GeSHi; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- ************************************************************************************/
-
-$language_data = array (
-    'LANG_NAME' => 'X++',
-    'COMMENT_SINGLE' => array(1 => '//'),
-    'COMMENT_MULTI' => array('/*' => '*/'),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array("'", '"'),
-    'ESCAPE_CHAR' => '\\',
-    'KEYWORDS' => array(
-        1 => array( // Primitive types
-            'void',
-            'str',
-            'real',
-            'int64',
-            'int',
-            'date',
-            'container',
-            'boolean',
-            'anytype'
-            ),
-        2 => array( // Keywords
-            'window',
-            'while',
-            'try',
-            'true',
-            'throw',
-            'switch',
-            'super',
-            'static',
-            'server',
-            'right',
-            'return',
-            'retry',
-            'public',
-            'protected',
-            'private',
-            'print',
-            'pause',
-            'null',
-            'new',
-            'mod',
-            'left',
-            'interface',
-            'implements',
-            'if',
-            'for',
-            'final',
-            'false',
-            'extends',
-            'else',
-            'edit',
-            'do',
-            'div',
-            'display',
-            'default',
-            'continue',
-            'client',
-            'class',
-            'changeCompany',
-            'case',
-            'breakpoint',
-            'break',
-            'at',
-            'abstract'
-            ),
-        3 => array( // Functions within the Axapta kernel
-            'year',
-            'wkofyr',
-            'webwebpartstr',
-            'webstaticfilestr',
-            'websitetempstr',
-            'websitedefstr',
-            'webreportstr',
-            'webpagedefstr',
-            'weboutputcontentitemstr',
-            'webmenustr',
-            'webletitemstr',
-            'webformstr',
-            'webdisplaycontentitemstr',
-            'webactionitemstr',
-            'varstr',
-            'utilmoyr',
-            'uint2str',
-            'typeof',
-            'typeid',
-            'trunc',
-            'today',
-            'timenow',
-            'time2str',
-            'term',
-            'tanh',
-            'tan',
-            'tablestr',
-            'tablestaticmethodstr',
-            'tablepname',
-            'tablenum',
-            'tablename2id',
-            'tablemethodstr',
-            'tableid2pname',
-            'tableid2name',
-            'tablefieldgroupstr',
-            'tablecollectionstr',
-            'systemdateset',
-            'systemdateget',
-            'syd',
-            'substr',
-            'strupr',
-            'strscan',
-            'strrtrim',
-            'strrep',
-            'strrem',
-            'strprompt',
-            'strpoke',
-            'strnfind',
-            'strlwr',
-            'strltrim',
-            'strline',
-            'strlen',
-            'strkeep',
-            'strins',
-            'strfmt',
-            'strfind',
-            'strdel',
-            'strcolseq',
-            'strcmp',
-            'stralpha',
-            'str2time',
-            'str2num',
-            'str2int64',
-            'str2int',
-            'str2guid',
-            'str2enum',
-            'str2date',
-            'staticmethodstr',
-            'sln',
-            'sleep',
-            'sinh',
-            'sin',
-            'setprefix',
-            'sessionid',
-            'securitykeystr',
-            'securitykeynum',
-            'runbuf',
-            'runas',
-            'round',
-            'resourcestr',
-            'reportstr',
-            'refprintall',
-            'rate',
-            'querystr',
-            'pv',
-            'pt',
-            'prmisdefault',
-            'primoyr',
-            'prevyr',
-            'prevqtr',
-            'prevmth',
-            'power',
-            'pmt',
-            'num2str',
-            'num2date',
-            'num2char',
-            'nextyr',
-            'nextqtr',
-            'nextmth',
-            'newguid',
-            'mthofyr',
-            'mthname',
-            'mkdate',
-            'minint',
-            'min',
-            'methodstr',
-            'menustr',
-            'menuitemoutputstr',
-            'menuitemdisplaystr',
-            'menuitemactionstr',
-            'maxint',
-            'maxdate',
-            'max',
-            'match',
-            'logn',
-            'log10',
-            'literalstr',
-            'licensecodestr',
-            'licensecodenum',
-            'intvnorm',
-            'intvno',
-            'intvname',
-            'intvmax',
-            'int64str',
-            'indexstr',
-            'indexnum',
-            'indexname2id',
-            'indexid2name',
-            'idg',
-            'identifierstr',
-            'helpfilestr',
-            'helpdevstr',
-            'helpapplstr',
-            'guid2str',
-            'getprefix',
-            'getCurrentUTCTime',
-            'fv',
-            'funcname',
-            'frac',
-            'formstr',
-            'fieldstr',
-            'fieldpname',
-            'fieldnum',
-            'fieldname2id',
-            'fieldid2pname',
-            'fieldid2name',
-            'extendedTypeStr',
-            'extendedTypeNum',
-            'exp10',
-            'exp',
-            'evalbuf',
-            'enumstr',
-            'enumnum',
-            'enumcnt',
-            'enum2str',
-            'endmth',
-            'dimof',
-            'dg',
-            'decround',
-            'ddb',
-            'dayofyr',
-            'dayofwk',
-            'dayofmth',
-            'dayname',
-            'date2str',
-            'date2num',
-            'curuserid',
-            'curext',
-            'cterm',
-            'cosh',
-            'cos',
-            'corrflagset',
-            'corrflagget',
-            'convertUTCTimeToLocalTime',
-            'convertUTCDateToLocalDate',
-            'conpoke',
-            'conpeek',
-            'connull',
-            'conlen',
-            'conins',
-            'confind',
-            'configurationkeystr',
-            'configurationkeynum',
-            'condel',
-            'classstr',
-            'classnum',
-            'classidget',
-            'char2num',
-            'beep',
-            'atan',
-            'asin',
-            'ascii2ansi',
-            'any2str',
-            'any2real',
-            'any2int64',
-            'any2int',
-            'any2guid',
-            'any2enum',
-            'any2date',
-            'ansi2ascii',
-            'acos',
-            'abs'
-            ),
-        4 => array( // X++ SQL stuff
-            'where',
-            'update_recordset',
-            'ttsCommit',
-            'ttsBegin',
-            'ttsAbort',
-            'sum',
-            'setting',
-            'select',
-            'reverse',
-            'pessimisticLock',
-            'outer',
-            'order by',
-            'optimisticLock',
-            'notExists',
-            'noFetch',
-            'next',
-            'minof',
-            'maxof',
-            'like',
-            'join',
-            'insert_recordset',
-            'index hint',
-            'index',
-            'group by',
-            'from',
-            'forUpdate',
-            'forceSelectOrder',
-            'forcePlaceholders',
-            'forceNestedLoop',
-            'forceLiterals',
-            'flush',
-            'firstOnly',
-            'firstFast',
-            'exists',
-            'desc',
-            'delete_from',
-            'count',
-            'avg',
-            'asc'
-            )
-        ),
-    'SYMBOLS' => array( // X++ symbols
-        '!',
-        '&',
-        '(',
-        ')',
-        '*',
-        '^',
-        '|',
-        '~',
-        '+',
-        ',',
-        '-',
-        '/',
-        ':',
-        '<',
-        '=',
-        '>',
-        '?',
-        '[',
-        ']',
-        '{',
-        '}'
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false,
-        2 => false,
-        3 => false,
-        4 => false
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #0000ff;',
-            2 => 'color: #0000ff;',
-            3 => 'color: #0000ff;',
-            4 => 'color: #0000ff;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #007f00;',
-            'MULTI' => 'color: #007f00; font-style: italic;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #000000;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #000000;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #ff0000;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #000000;'
-            ),
-        'METHODS' => array(
-            1 => 'color: #000000;',
-            2 => 'color: #000000;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #00007f;'
-            ),
-        'REGEXPS' => array(
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => '',
-        4 => ''
-        ),
-    'OOLANG' => true,
-    'OBJECT_SPLITTERS' => array(
-        1 => '.',
-        2 => '::'
-        ),
-    'REGEXPS' => array(
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        )
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/yaml.php b/wiki/vendor/geshi/geshi/src/geshi/yaml.php
deleted file mode 100644
index 252779e..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/yaml.php
+++ /dev/null
@@ -1,149 +0,0 @@
-<?php
-/*************************************************************************************
- * yaml.php
- * --------
- * Author: Josh Ventura (JoshV10@gmail.com)
- * Copyright: (c) 2010 Josh Ventura
- * Release Version: 1.0.9.0
- * Date Started: 2010/12/14
- *
- * YAML language file for GeSHi.
- *
- * YAML gets hairy sometimes. If anything needs fixed, drop me an email and
- *      I'll probably spit up on it. This is, in general, not a long format.
- *
- * CHANGES
- * ---------
- * 2010/12/14
- *  - Started project in rage over GML support but not YAML support. WTFH?
- * 2010/12/15
- *  - Submitted to Ben.
- *
- * TODO (not updated since release)
- * ----------------------------------
- *  -  Field testing and necessary corrections: this grammar file is usable, but not
- *     completely accurate. There are, in fact, multiple cases in which it will mess
- *     up, and some of it may need moved around. It is the most temperamental parser
- *     I have ever associated my name with. Points of interest follow:
- *   *  Improvised support for | and >: since PHP offers no variable-width lookbehind,
- *      these blocks will still be highlighted even when commented out. As it happens,
- *      any line ending with | or > could result in the unintentional highlighting of
- *      all remaining lines in the file, just because I couldn't check for this regex
- *      as a lookbehind:  '/:(\s+)(!!(\w+)(\s+))?/'
- *      If there is a workaround for that, it needs implemented.
- *   *  I may be missing some operators. I deliberately omitted inline array notation
- *      as, in general, it's ugly and tends to conflict with plain-text. Ensuring all
- *      highlighted list delimiters are not plain text would be as simple as checking
- *      that they follow a colon directly. Alas, without variable-length lookbehinds,
- *      if there is a way to do so in GeSHi I am unaware of it.
- *   *  I kind of whored the comment regexp array. It seemed like a safe bet, so it's
- *      where I crammed everything. Some of it may need moved elsewhere for neatness.
- *   *  The !!typename highlight needs not to interfere with ": |" and ": >": Pairing
- *      key: !!type | value is perfectly legal, but again due to lookbehind issues, I
- *      can't add a case for that. Also, it is likely that multiple spaces can be put
- *      between the colon and pipe symbol, which would also break it.
- *
- *************************************************************************************
- *
- *     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' => 'YAML',
-    'COMMENT_SINGLE' => array(),
-    'COMMENT_MULTI' => array(),
-    //Keys
-    'COMMENT_REGEXP' => array( // ENTRY ZERO  SHOULD CHECK FOR (\n(\s*)([^#%]+?):(\s+)(!!(\w+)(\s+))?) AS A LOOKBEHIND, BUT IT CAN'T.
-        0 => '/(?<=\s[\|>]\n)(\s+)(.*)((?=[\n$])(([\n^](\1(.*)|(?=[\n$])))*)|$)/', // Pipe blocks and > blocks.
-        1 => '/#(.*)/', // Blue # comments
-        2 => '/%(.*)/', // Red % comments
-        3 => '/(^|\n)([^#%^\n]+?)(?=: )/',  // Key-value names
-        4 => '/(^|\n)([^#%^\n]+?)(?=:\n)/',// Key-group names
-        5 => '/(?<=^---)(\s*)!(\S+)/',    // Comments after ---
-        6 => '/(?<=: )(\s*)\&(\S+)/',    // References
-        7 => '/(?<=: )(\s*)\*(\S+)/',   // Dereferences
-        8 => '/!!(\w+)/',              // Types
-        //9 => '/(?<=\n)(\s*)-(?!-)/',       // List items: This needs to search within comments 3 and 4, but I don't know how.
-        ),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array('"'),
-    'ESCAPE_CHAR' => '',
-    'NUMBERS' => array(),
-    'KEYWORDS' => array(
-        1 => array(
-            'all','any','none', "yes", "no"
-            ),
-        ),
-    'SYMBOLS' => array(
-        1 => array('---', '...'),
-        2 => array(': ', ">\n", "|\n", '<<:', ":\n") // It'd be nice if I could specify that the colon must
-        //                                              follow comment 3 or 4 to be considered, and the > and |
-        //                                              must follow such a colon.
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false,
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'font-weight: bold;'
-            ),
-        'COMMENTS' => array(
-            0 => 'color: #303050;background-color: #F5F5F5',
-            1 => 'color: blue;',
-            2 => 'font-weight: bold; color: red;',
-            3 => 'color: green;',
-            4 => 'color: #007F45;',
-            5 => 'color: #7f7fFF;',
-            6 => 'color: #FF7000;',
-            7 => 'color: #FF45C0;',
-            8 => 'font-weight: bold; color: #005F5F;',
-            //9 => 'font-weight: bold; color: #000000;',
-            ),
-        'ESCAPE_CHAR' => array(
-            ),
-        'BRACKETS' => array(
-            ),
-        'STRINGS' => array(
-            0 => 'color: #CF00CF;'
-            ),
-        'NUMBERS' => array(
-            // 0 => 'color: #33f;' // Don't highlight numbers, really...
-            ),
-        'METHODS' => array(
-            1 => '',
-            2 => ''
-            ),
-        'SYMBOLS' => array(
-            1 => 'color: cyan;',
-            2 => 'font-weight: bold; color: brown;'
-            ),
-        'REGEXPS' => array(
-            ),
-        'SCRIPT' => array(
-            0 => ''
-            )
-        ),
-    'URLS' => array(1 => ''),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(),
-    'REGEXPS' => array(),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(),
-    'HIGHLIGHT_STRICT_BLOCK' => array()
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/z80.php b/wiki/vendor/geshi/geshi/src/geshi/z80.php
deleted file mode 100644
index 5c8021f..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/z80.php
+++ /dev/null
@@ -1,142 +0,0 @@
-<?php
-/*************************************************************************************
- * z80.php
- * -------
- * Author: Benny Baumann (BenBE@omorphia.de)
- * Copyright: (c) 2007-2008 Benny Baumann (http://www.omorphia.de/)
- * Release Version: 1.0.9.0
- * Date Started: 2007/02/06
- *
- * ZiLOG Z80 Assembler language file for GeSHi.
- * Syntax definition as commonly used with table assembler TASM32
- * This file will contain some undocumented opcodes.
- *
- * CHANGES
- * -------
- * 2008/05/23 (1.0.7.22)
- *   -  Added description of extra language features (SF#1970248)
- * 2007/06/03 (1.0.1)
- *   -  Fixed two typos in the language file
- * 2007/02/06 (1.0.0)
- *   -  First Release
- *
- * TODO (updated 2007/02/06)
- * -------------------------
- *
- *************************************************************************************
- *
- *     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' => 'ZiLOG Z80 Assembler',
-    'COMMENT_SINGLE' => array(1 => ';'),
-    'COMMENT_MULTI' => array(),
-    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array("'", '"'),
-    'ESCAPE_CHAR' => '',
-    'KEYWORDS' => array(
-        /*CPU*/
-        1 => array(
-            'adc','add','and','bit','call','ccf','cp','cpd','cpdr','cpir','cpi',
-            'cpl','daa','dec','di','djnz','ei','ex','exx','halt','im','in',
-            'in0','inc','ind','indr','inir','ini','jp','jr','ld','ldd','lddr',
-            'ldir','ldi','mlt','neg','nop','or','otdm','otdmr','otdr','otim',
-            'otimr','otir','out','out0','outd','outi','pop','push','res','ret',
-            'reti','retn','rl','rla','rlc','rlca','rld','rr','rra','rrc','rrca',
-            'rrd','rst','sbc','scf','set','sla','sl1','sll','slp','sra','srl',
-            'sub','tst','tstio','xor'
-            ),
-        /*registers*/
-        2 => array(
-            'a','b','c','d','e','h','l',
-            'af','bc','de','hl','ix','iy','sp',
-            'af\'','ixh','ixl','iyh','iyl'
-            ),
-        /*Directive*/
-        3 => array(
-            '#define','#endif','#else','#ifdef','#ifndef','#include','#undef',
-            '.db','.dd','.df','.dq','.dt','.dw','.end','.org','equ'
-            ),
-        ),
-    'SYMBOLS' => array(
-        '[', ']', '(', ')', '?', '+', '-', '*', '/', '%', '$'
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false,
-        2 => false,
-        3 => false,
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #0000ff; font-weight:bold;',
-            2 => 'color: #0000ff;',
-            3 => 'color: #46aa03; font-weight:bold;'
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #adadad; font-style: italic;',
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #000099; font-weight: bold;'
-            ),
-        'BRACKETS' => array(
-            0 => 'color: #0000ff;'
-            ),
-        'STRINGS' => array(
-            0 => 'color: #7f007f;'
-            ),
-        'NUMBERS' => array(
-            0 => 'color: #dd22dd;'
-            ),
-        'METHODS' => array(
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #008000;'
-            ),
-        'REGEXPS' => array(
-            0 => 'color: #22bbff;',
-            1 => 'color: #22bbff;',
-            2 => 'color: #993333;'
-            ),
-        'SCRIPT' => array(
-            )
-        ),
-    'URLS' => array(
-        1 => '',
-        2 => '',
-        3 => ''
-        ),
-    'OOLANG' => false,
-    'OBJECT_SPLITTERS' => array(
-        ),
-    'REGEXPS' => array(
-        //Hex numbers
-        0 => '0[0-9a-fA-F]{1,32}[hH]',
-        //Binary numbers
-        1 => '\%[01]{1,64}|[01]{1,64}[bB]?(?![^<]*>)',
-        //Labels
-        2 => '^[_a-zA-Z][_a-zA-Z0-9]?\:'
-        ),
-    'STRICT_MODE_APPLIES' => GESHI_NEVER,
-    'SCRIPT_DELIMITERS' => array(
-        ),
-    'HIGHLIGHT_STRICT_BLOCK' => array(
-        ),
-    'TAB_WIDTH' => 8
-);
diff --git a/wiki/vendor/geshi/geshi/src/geshi/zxbasic.php b/wiki/vendor/geshi/geshi/src/geshi/zxbasic.php
deleted file mode 100644
index d097194..0000000
--- a/wiki/vendor/geshi/geshi/src/geshi/zxbasic.php
+++ /dev/null
@@ -1,148 +0,0 @@
-<?php
-/*************************************************************************************
- * zxbasic.php
- * -------------
- * Author: Jose Rodriguez (a.k.a. Boriel)
- * Based on Copyright: (c) 2005 Roberto Rossi (http://rsoftware.altervista.org) Freebasic template
- * Release Version: 1.0.9.0
- * Date Started: 2010/06/19
- *
- * ZXBasic language file for GeSHi.
- *
- * More details at http://www.zxbasic.net/
- *
- * CHANGES
- * -------
- * 2010/06/19 (1.0.0)
- *  -  First Release
- *
- * TODO (updated 2007/02/06)
- * -------------------------
- *
- *************************************************************************************
- *
- *     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' => 'ZXBasic',
-    'COMMENT_SINGLE' => array(
-        1 => "'",
-        2 => '#',
-        3 => 'REM'
-        ),
-    'COMMENT_MULTI' => array("/'" => "'/"),
-    'CASE_KEYWORDS' => GESHI_CAPS_UPPER, //GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array('"'),
-    'ESCAPE_CHAR' => '\\',
-    'KEYWORDS' => array(
-        1 => array(
-            "ASM", "BEEP", "BOLD", "BORDER", "BRIGHT", "ByRef", "ByVal", "CAST",
-            "CIRCLE", "CLS", "CONST", "CONTINUE", "DECLARE", "DIM", "DO",
-            "DRAW", "ELSE", "ELSEIF", "END", "EXIT", "FastCall", "FLASH", "FOR",
-            "FUNCTION", "GOTO", "GOSUB", "GO", "IF", "INK", "INVERSE", "ITALIC",
-            "LET", "LOAD", "LOOP", "NEXT", "OVER", "PAPER", "PAUSE", "PI",
-            "PLOT", "POKE", "PRINT", "RANDOMIZE", "REM", "RETURN", "SAVE",
-            "StdCall", "Sub", "THEN", "TO", "UNTIL", "VERIFY", "WEND", "WHILE",
-            ),
-
-        // types
-        2 => array(
-            'byte', 'ubyte', 'integer', 'uinteger', 'long', 'ulong', 'fixed',
-            'float', 'string'
-            ),
-
-        // Functions
-        3 => array(
-            "ABS", "ACS", "ASN", "ATN", "CHR", "CODE", "COS", "CSRLIN", "EXP",
-            "HEX", "HEX16", "INKEY", "INT", "LEN", "LN", "PEEK", "POS", "RND",
-            "SCREEN$", "SGN", "SIN", "SQR", "STR", "TAN", "VAL",
-            ),
-
-        // Operators and modifiers
-        4 => array(
-            "AT", "AS", "AND", "MOD", "NOT", "OR", "SHL", "SHR", "STEP", "XOR"
-            )
-        ),
-    'SYMBOLS' => array(
-        '(', ')'
-        ),
-    'CASE_SENSITIVE' => array(
-        GESHI_COMMENTS => false,
-        1 => false,
-        2 => false,
-        3 => false,
-        4 => false
-        ),
-    'STYLES' => array(
-        'KEYWORDS' => array(
-            1 => 'color: #000080; font-weight: bold;', // Commands
-            2 => 'color: #800080; font-weight: bold;', // Types
-            3 => 'color: #006000; font-weight: bold;', // Functions
-            4 => 'color: #801010; font-weight: bold;'  // Operators and Modifiers
-            ),
-        'COMMENTS' => array(
-            1 => 'color: #808080; font-style: italic;',
-            2 => 'color: #339933;',
-            3 => 'color: #808080; font-style: italic;',
-            'MULTI' => 'color: #808080; font-style: italic;'
-            ),
-        'BRACKETS' => array(
-            //0 => 'color: #66cc66;'
-            0 => 'color: #007676;'
-            ),
-        'STRINGS' => array(
-            //0 => 'color: #ff0000;'
-            0 => 'color: #A00000; font-style: italic;'
-            ),
-        'NUMBERS' => array(
-            //0 => 'color: #cc66cc;'
-            0 => 'color: #b05103;'// font-weight: bold;'
-            ),
-        'METHODS' => array(
-            0 => 'color: #66cc66;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #66cc66;'
-            ),
-        'ESCAPE_CHAR' => array(
-            0 => 'color: #000099;'
-            ),
-        'SCRIPT' => array(
-            ),
-        'REGEXPS' => 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/wiki/vendor/marcusschwarz/lesserphp/HISTORY.md b/wiki/vendor/marcusschwarz/lesserphp/HISTORY.md
deleted file mode 100644
index 19ec7dc..0000000
--- a/wiki/vendor/marcusschwarz/lesserphp/HISTORY.md
+++ /dev/null
@@ -1,29 +0,0 @@
-# lesserphp v0.5.1
-
-Originally written by Leaf Corcoran, obviously abandoned circa 2014
-https://github.com/leafo/lessphp
-
-Last version provided by Leaf was 0.5.0
-
-### v.0.5.1
-* 2016-09-30: renaming it to lesserphp for easier distinction
-* 2016-09-30: applying some pull requests of the origin repository
-  * https://github.com/leafo/lessphp/pull/584
-  * https://github.com/leafo/lessphp/pull/607
-  * https://github.com/leafo/lessphp/pull/619
-* 2016-09-29: applying some pull requests of the origin repository
-  * https://github.com/leafo/lessphp/pull/590
-  * https://github.com/leafo/lessphp/pull/523
-  * https://github.com/leafo/lessphp/pull/540
-  * https://github.com/leafo/lessphp/pull/564
-  * https://github.com/leafo/lessphp/pull/566
-* 2016-09-26: applying some pull requests of the origin repository
-  * https://github.com/leafo/lessphp/pull/592
-  * https://github.com/leafo/lessphp/pull/601
-  * https://github.com/leafo/lessphp/pull/603
-  * https://github.com/leafo/lessphp/pull/604
-  * https://github.com/leafo/lessphp/pull/605
-  * https://github.com/leafo/lessphp/pull/610
-  * https://github.com/leafo/lessphp/pull/616
-* 2016-09-26: making it compatible with php7.x
-* 2016-09-26: Forking master from https://github.com/leafo/lessphp
diff --git a/wiki/vendor/marcusschwarz/lesserphp/LICENSE b/wiki/vendor/marcusschwarz/lesserphp/LICENSE
deleted file mode 100644
index 5290202..0000000
--- a/wiki/vendor/marcusschwarz/lesserphp/LICENSE
+++ /dev/null
@@ -1,661 +0,0 @@
-For ease of distribution, lessphp 0.5.1 is under a dual license.
-You are free to pick which one suits your needs.
-
-
-
-
-MIT LICENSE
-
-
-
-
-Copyright (c) 2013 - 2015 Leaf Corcoran, http://leafo.net/lessphp
-Copyright (c) 2016 -  Marcus Schwarz, https://www.maswaba.de
-
-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.
-
-
-
-
-GPL VERSION 3
-
-
-
-
-					GNU GENERAL PUBLIC LICENSE
-                       Version 3, 29 June 2007
-
- Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-                            Preamble
-
-  The GNU General Public License is a free, copyleft license for
-software and other kinds of works.
-
-  The licenses for most software and other practical works are designed
-to take away your freedom to share and change the works.  By contrast,
-the GNU General Public License is intended to guarantee your freedom to
-share and change all versions of a program--to make sure it remains free
-software for all its users.  We, the Free Software Foundation, use the
-GNU General Public License for most of our software; it applies also to
-any other work released this way by its authors.  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
-them 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 prevent others from denying you
-these rights or asking you to surrender the rights.  Therefore, you have
-certain responsibilities if you distribute copies of the software, or if
-you modify it: responsibilities to respect the freedom of others.
-
-  For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must pass on to the recipients the same
-freedoms that you received.  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.
-
-  Developers that use the GNU GPL protect your rights with two steps:
-(1) assert copyright on the software, and (2) offer you this License
-giving you legal permission to copy, distribute and/or modify it.
-
-  For the developers' and authors' protection, the GPL clearly explains
-that there is no warranty for this free software.  For both users' and
-authors' sake, the GPL requires that modified versions be marked as
-changed, so that their problems will not be attributed erroneously to
-authors of previous versions.
-
-  Some devices are designed to deny users access to install or run
-modified versions of the software inside them, although the manufacturer
-can do so.  This is fundamentally incompatible with the aim of
-protecting users' freedom to change the software.  The systematic
-pattern of such abuse occurs in the area of products for individuals to
-use, which is precisely where it is most unacceptable.  Therefore, we
-have designed this version of the GPL to prohibit the practice for those
-products.  If such problems arise substantially in other domains, we
-stand ready to extend this provision to those domains in future versions
-of the GPL, as needed to protect the freedom of users.
-
-  Finally, every program is threatened constantly by software patents.
-States should not allow patents to restrict development and use of
-software on general-purpose computers, but in those that do, we wish to
-avoid the special danger that patents applied to a free program could
-make it effectively proprietary.  To prevent this, the GPL assures that
-patents cannot be used to render the program non-free.
-
-  The precise terms and conditions for copying, distribution and
-modification follow.
-
-                       TERMS AND CONDITIONS
-
-  0. Definitions.
-
-  "This License" refers to version 3 of the GNU General Public License.
-
-  "Copyright" also means copyright-like laws that apply to other kinds of
-works, such as semiconductor masks.
-
-  "The Program" refers to any copyrightable work licensed under this
-License.  Each licensee is addressed as "you".  "Licensees" and
-"recipients" may be individuals or organizations.
-
-  To "modify" a work means to copy from or adapt all or part of the work
-in a fashion requiring copyright permission, other than the making of an
-exact copy.  The resulting work is called a "modified version" of the
-earlier work or a work "based on" the earlier work.
-
-  A "covered work" means either the unmodified Program or a work based
-on the Program.
-
-  To "propagate" a work means to do anything with it that, without
-permission, would make you directly or secondarily liable for
-infringement under applicable copyright law, except executing it on a
-computer or modifying a private copy.  Propagation includes copying,
-distribution (with or without modification), making available to the
-public, and in some countries other activities as well.
-
-  To "convey" a work means any kind of propagation that enables other
-parties to make or receive copies.  Mere interaction with a user through
-a computer network, with no transfer of a copy, is not conveying.
-
-  An interactive user interface displays "Appropriate Legal Notices"
-to the extent that it includes a convenient and prominently visible
-feature that (1) displays an appropriate copyright notice, and (2)
-tells the user that there is no warranty for the work (except to the
-extent that warranties are provided), that licensees may convey the
-work under this License, and how to view a copy of this License.  If
-the interface presents a list of user commands or options, such as a
-menu, a prominent item in the list meets this criterion.
-
-  1. Source Code.
-
-  The "source code" for a work means the preferred form of the work
-for making modifications to it.  "Object code" means any non-source
-form of a work.
-
-  A "Standard Interface" means an interface that either is an official
-standard defined by a recognized standards body, or, in the case of
-interfaces specified for a particular programming language, one that
-is widely used among developers working in that language.
-
-  The "System Libraries" of an executable work include anything, other
-than the work as a whole, that (a) is included in the normal form of
-packaging a Major Component, but which is not part of that Major
-Component, and (b) serves only to enable use of the work with that
-Major Component, or to implement a Standard Interface for which an
-implementation is available to the public in source code form.  A
-"Major Component", in this context, means a major essential component
-(kernel, window system, and so on) of the specific operating system
-(if any) on which the executable work runs, or a compiler used to
-produce the work, or an object code interpreter used to run it.
-
-  The "Corresponding Source" for a work in object code form means all
-the source code needed to generate, install, and (for an executable
-work) run the object code and to modify the work, including scripts to
-control those activities.  However, it does not include the work's
-System Libraries, or general-purpose tools or generally available free
-programs which are used unmodified in performing those activities but
-which are not part of the work.  For example, Corresponding Source
-includes interface definition files associated with source files for
-the work, and the source code for shared libraries and dynamically
-linked subprograms that the work is specifically designed to require,
-such as by intimate data communication or control flow between those
-subprograms and other parts of the work.
-
-  The Corresponding Source need not include anything that users
-can regenerate automatically from other parts of the Corresponding
-Source.
-
-  The Corresponding Source for a work in source code form is that
-same work.
-
-  2. Basic Permissions.
-
-  All rights granted under this License are granted for the term of
-copyright on the Program, and are irrevocable provided the stated
-conditions are met.  This License explicitly affirms your unlimited
-permission to run the unmodified Program.  The output from running a
-covered work is covered by this License only if the output, given its
-content, constitutes a covered work.  This License acknowledges your
-rights of fair use or other equivalent, as provided by copyright law.
-
-  You may make, run and propagate covered works that you do not
-convey, without conditions so long as your license otherwise remains
-in force.  You may convey covered works to others for the sole purpose
-of having them make modifications exclusively for you, or provide you
-with facilities for running those works, provided that you comply with
-the terms of this License in conveying all material for which you do
-not control copyright.  Those thus making or running the covered works
-for you must do so exclusively on your behalf, under your direction
-and control, on terms that prohibit them from making any copies of
-your copyrighted material outside their relationship with you.
-
-  Conveying under any other circumstances is permitted solely under
-the conditions stated below.  Sublicensing is not allowed; section 10
-makes it unnecessary.
-
-  3. Protecting Users' Legal Rights From Anti-Circumvention Law.
-
-  No covered work shall be deemed part of an effective technological
-measure under any applicable law fulfilling obligations under article
-11 of the WIPO copyright treaty adopted on 20 December 1996, or
-similar laws prohibiting or restricting circumvention of such
-measures.
-
-  When you convey a covered work, you waive any legal power to forbid
-circumvention of technological measures to the extent such circumvention
-is effected by exercising rights under this License with respect to
-the covered work, and you disclaim any intention to limit operation or
-modification of the work as a means of enforcing, against the work's
-users, your or third parties' legal rights to forbid circumvention of
-technological measures.
-
-  4. Conveying Verbatim Copies.
-
-  You may convey 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;
-keep intact all notices stating that this License and any
-non-permissive terms added in accord with section 7 apply to the code;
-keep intact all notices of the absence of any warranty; and give all
-recipients a copy of this License along with the Program.
-
-  You may charge any price or no price for each copy that you convey,
-and you may offer support or warranty protection for a fee.
-
-  5. Conveying Modified Source Versions.
-
-  You may convey a work based on the Program, or the modifications to
-produce it from the Program, in the form of source code under the
-terms of section 4, provided that you also meet all of these conditions:
-
-    a) The work must carry prominent notices stating that you modified
-    it, and giving a relevant date.
-
-    b) The work must carry prominent notices stating that it is
-    released under this License and any conditions added under section
-    7.  This requirement modifies the requirement in section 4 to
-    "keep intact all notices".
-
-    c) You must license the entire work, as a whole, under this
-    License to anyone who comes into possession of a copy.  This
-    License will therefore apply, along with any applicable section 7
-    additional terms, to the whole of the work, and all its parts,
-    regardless of how they are packaged.  This License gives no
-    permission to license the work in any other way, but it does not
-    invalidate such permission if you have separately received it.
-
-    d) If the work has interactive user interfaces, each must display
-    Appropriate Legal Notices; however, if the Program has interactive
-    interfaces that do not display Appropriate Legal Notices, your
-    work need not make them do so.
-
-  A compilation of a covered work with other separate and independent
-works, which are not by their nature extensions of the covered work,
-and which are not combined with it such as to form a larger program,
-in or on a volume of a storage or distribution medium, is called an
-"aggregate" if the compilation and its resulting copyright are not
-used to limit the access or legal rights of the compilation's users
-beyond what the individual works permit.  Inclusion of a covered work
-in an aggregate does not cause this License to apply to the other
-parts of the aggregate.
-
-  6. Conveying Non-Source Forms.
-
-  You may convey a covered work in object code form under the terms
-of sections 4 and 5, provided that you also convey the
-machine-readable Corresponding Source under the terms of this License,
-in one of these ways:
-
-    a) Convey the object code in, or embodied in, a physical product
-    (including a physical distribution medium), accompanied by the
-    Corresponding Source fixed on a durable physical medium
-    customarily used for software interchange.
-
-    b) Convey the object code in, or embodied in, a physical product
-    (including a physical distribution medium), accompanied by a
-    written offer, valid for at least three years and valid for as
-    long as you offer spare parts or customer support for that product
-    model, to give anyone who possesses the object code either (1) a
-    copy of the Corresponding Source for all the software in the
-    product that is covered by this License, on a durable physical
-    medium customarily used for software interchange, for a price no
-    more than your reasonable cost of physically performing this
-    conveying of source, or (2) access to copy the
-    Corresponding Source from a network server at no charge.
-
-    c) Convey individual copies of the object code with a copy of the
-    written offer to provide the Corresponding Source.  This
-    alternative is allowed only occasionally and noncommercially, and
-    only if you received the object code with such an offer, in accord
-    with subsection 6b.
-
-    d) Convey the object code by offering access from a designated
-    place (gratis or for a charge), and offer equivalent access to the
-    Corresponding Source in the same way through the same place at no
-    further charge.  You need not require recipients to copy the
-    Corresponding Source along with the object code.  If the place to
-    copy the object code is a network server, the Corresponding Source
-    may be on a different server (operated by you or a third party)
-    that supports equivalent copying facilities, provided you maintain
-    clear directions next to the object code saying where to find the
-    Corresponding Source.  Regardless of what server hosts the
-    Corresponding Source, you remain obligated to ensure that it is
-    available for as long as needed to satisfy these requirements.
-
-    e) Convey the object code using peer-to-peer transmission, provided
-    you inform other peers where the object code and Corresponding
-    Source of the work are being offered to the general public at no
-    charge under subsection 6d.
-
-  A separable portion of the object code, whose source code is excluded
-from the Corresponding Source as a System Library, need not be
-included in conveying the object code work.
-
-  A "User Product" is either (1) a "consumer product", which means any
-tangible personal property which is normally used for personal, family,
-or household purposes, or (2) anything designed or sold for incorporation
-into a dwelling.  In determining whether a product is a consumer product,
-doubtful cases shall be resolved in favor of coverage.  For a particular
-product received by a particular user, "normally used" refers to a
-typical or common use of that class of product, regardless of the status
-of the particular user or of the way in which the particular user
-actually uses, or expects or is expected to use, the product.  A product
-is a consumer product regardless of whether the product has substantial
-commercial, industrial or non-consumer uses, unless such uses represent
-the only significant mode of use of the product.
-
-  "Installation Information" for a User Product means any methods,
-procedures, authorization keys, or other information required to install
-and execute modified versions of a covered work in that User Product from
-a modified version of its Corresponding Source.  The information must
-suffice to ensure that the continued functioning of the modified object
-code is in no case prevented or interfered with solely because
-modification has been made.
-
-  If you convey an object code work under this section in, or with, or
-specifically for use in, a User Product, and the conveying occurs as
-part of a transaction in which the right of possession and use of the
-User Product is transferred to the recipient in perpetuity or for a
-fixed term (regardless of how the transaction is characterized), the
-Corresponding Source conveyed under this section must be accompanied
-by the Installation Information.  But this requirement does not apply
-if neither you nor any third party retains the ability to install
-modified object code on the User Product (for example, the work has
-been installed in ROM).
-
-  The requirement to provide Installation Information does not include a
-requirement to continue to provide support service, warranty, or updates
-for a work that has been modified or installed by the recipient, or for
-the User Product in which it has been modified or installed.  Access to a
-network may be denied when the modification itself materially and
-adversely affects the operation of the network or violates the rules and
-protocols for communication across the network.
-
-  Corresponding Source conveyed, and Installation Information provided,
-in accord with this section must be in a format that is publicly
-documented (and with an implementation available to the public in
-source code form), and must require no special password or key for
-unpacking, reading or copying.
-
-  7. Additional Terms.
-
-  "Additional permissions" are terms that supplement the terms of this
-License by making exceptions from one or more of its conditions.
-Additional permissions that are applicable to the entire Program shall
-be treated as though they were included in this License, to the extent
-that they are valid under applicable law.  If additional permissions
-apply only to part of the Program, that part may be used separately
-under those permissions, but the entire Program remains governed by
-this License without regard to the additional permissions.
-
-  When you convey a copy of a covered work, you may at your option
-remove any additional permissions from that copy, or from any part of
-it.  (Additional permissions may be written to require their own
-removal in certain cases when you modify the work.)  You may place
-additional permissions on material, added by you to a covered work,
-for which you have or can give appropriate copyright permission.
-
-  Notwithstanding any other provision of this License, for material you
-add to a covered work, you may (if authorized by the copyright holders of
-that material) supplement the terms of this License with terms:
-
-    a) Disclaiming warranty or limiting liability differently from the
-    terms of sections 15 and 16 of this License; or
-
-    b) Requiring preservation of specified reasonable legal notices or
-    author attributions in that material or in the Appropriate Legal
-    Notices displayed by works containing it; or
-
-    c) Prohibiting misrepresentation of the origin of that material, or
-    requiring that modified versions of such material be marked in
-    reasonable ways as different from the original version; or
-
-    d) Limiting the use for publicity purposes of names of licensors or
-    authors of the material; or
-
-    e) Declining to grant rights under trademark law for use of some
-    trade names, trademarks, or service marks; or
-
-    f) Requiring indemnification of licensors and authors of that
-    material by anyone who conveys the material (or modified versions of
-    it) with contractual assumptions of liability to the recipient, for
-    any liability that these contractual assumptions directly impose on
-    those licensors and authors.
-
-  All other non-permissive additional terms are considered "further
-restrictions" within the meaning of section 10.  If the Program as you
-received it, or any part of it, contains a notice stating that it is
-governed by this License along with a term that is a further
-restriction, you may remove that term.  If a license document contains
-a further restriction but permits relicensing or conveying under this
-License, you may add to a covered work material governed by the terms
-of that license document, provided that the further restriction does
-not survive such relicensing or conveying.
-
-  If you add terms to a covered work in accord with this section, you
-must place, in the relevant source files, a statement of the
-additional terms that apply to those files, or a notice indicating
-where to find the applicable terms.
-
-  Additional terms, permissive or non-permissive, may be stated in the
-form of a separately written license, or stated as exceptions;
-the above requirements apply either way.
-
-  8. Termination.
-
-  You may not propagate or modify a covered work except as expressly
-provided under this License.  Any attempt otherwise to propagate or
-modify it is void, and will automatically terminate your rights under
-this License (including any patent licenses granted under the third
-paragraph of section 11).
-
-  However, if you cease all violation of this License, then your
-license from a particular copyright holder is reinstated (a)
-provisionally, unless and until the copyright holder explicitly and
-finally terminates your license, and (b) permanently, if the copyright
-holder fails to notify you of the violation by some reasonable means
-prior to 60 days after the cessation.
-
-  Moreover, your license from a particular copyright holder is
-reinstated permanently if the copyright holder notifies you of the
-violation by some reasonable means, this is the first time you have
-received notice of violation of this License (for any work) from that
-copyright holder, and you cure the violation prior to 30 days after
-your receipt of the notice.
-
-  Termination of your rights under this section does not terminate the
-licenses of parties who have received copies or rights from you under
-this License.  If your rights have been terminated and not permanently
-reinstated, you do not qualify to receive new licenses for the same
-material under section 10.
-
-  9. Acceptance Not Required for Having Copies.
-
-  You are not required to accept this License in order to receive or
-run a copy of the Program.  Ancillary propagation of a covered work
-occurring solely as a consequence of using peer-to-peer transmission
-to receive a copy likewise does not require acceptance.  However,
-nothing other than this License grants you permission to propagate or
-modify any covered work.  These actions infringe copyright if you do
-not accept this License.  Therefore, by modifying or propagating a
-covered work, you indicate your acceptance of this License to do so.
-
-  10. Automatic Licensing of Downstream Recipients.
-
-  Each time you convey a covered work, the recipient automatically
-receives a license from the original licensors, to run, modify and
-propagate that work, subject to this License.  You are not responsible
-for enforcing compliance by third parties with this License.
-
-  An "entity transaction" is a transaction transferring control of an
-organization, or substantially all assets of one, or subdividing an
-organization, or merging organizations.  If propagation of a covered
-work results from an entity transaction, each party to that
-transaction who receives a copy of the work also receives whatever
-licenses to the work the party's predecessor in interest had or could
-give under the previous paragraph, plus a right to possession of the
-Corresponding Source of the work from the predecessor in interest, if
-the predecessor has it or can get it with reasonable efforts.
-
-  You may not impose any further restrictions on the exercise of the
-rights granted or affirmed under this License.  For example, you may
-not impose a license fee, royalty, or other charge for exercise of
-rights granted under this License, and you may not initiate litigation
-(including a cross-claim or counterclaim in a lawsuit) alleging that
-any patent claim is infringed by making, using, selling, offering for
-sale, or importing the Program or any portion of it.
-
-  11. Patents.
-
-  A "contributor" is a copyright holder who authorizes use under this
-License of the Program or a work on which the Program is based.  The
-work thus licensed is called the contributor's "contributor version".
-
-  A contributor's "essential patent claims" are all patent claims
-owned or controlled by the contributor, whether already acquired or
-hereafter acquired, that would be infringed by some manner, permitted
-by this License, of making, using, or selling its contributor version,
-but do not include claims that would be infringed only as a
-consequence of further modification of the contributor version.  For
-purposes of this definition, "control" includes the right to grant
-patent sublicenses in a manner consistent with the requirements of
-this License.
-
-  Each contributor grants you a non-exclusive, worldwide, royalty-free
-patent license under the contributor's essential patent claims, to
-make, use, sell, offer for sale, import and otherwise run, modify and
-propagate the contents of its contributor version.
-
-  In the following three paragraphs, a "patent license" is any express
-agreement or commitment, however denominated, not to enforce a patent
-(such as an express permission to practice a patent or covenant not to
-sue for patent infringement).  To "grant" such a patent license to a
-party means to make such an agreement or commitment not to enforce a
-patent against the party.
-
-  If you convey a covered work, knowingly relying on a patent license,
-and the Corresponding Source of the work is not available for anyone
-to copy, free of charge and under the terms of this License, through a
-publicly available network server or other readily accessible means,
-then you must either (1) cause the Corresponding Source to be so
-available, or (2) arrange to deprive yourself of the benefit of the
-patent license for this particular work, or (3) arrange, in a manner
-consistent with the requirements of this License, to extend the patent
-license to downstream recipients.  "Knowingly relying" means you have
-actual knowledge that, but for the patent license, your conveying the
-covered work in a country, or your recipient's use of the covered work
-in a country, would infringe one or more identifiable patents in that
-country that you have reason to believe are valid.
-
-  If, pursuant to or in connection with a single transaction or
-arrangement, you convey, or propagate by procuring conveyance of, a
-covered work, and grant a patent license to some of the parties
-receiving the covered work authorizing them to use, propagate, modify
-or convey a specific copy of the covered work, then the patent license
-you grant is automatically extended to all recipients of the covered
-work and works based on it.
-
-  A patent license is "discriminatory" if it does not include within
-the scope of its coverage, prohibits the exercise of, or is
-conditioned on the non-exercise of one or more of the rights that are
-specifically granted under this License.  You may not convey a covered
-work if you are a party to an arrangement with a third party that is
-in the business of distributing software, under which you make payment
-to the third party based on the extent of your activity of conveying
-the work, and under which the third party grants, to any of the
-parties who would receive the covered work from you, a discriminatory
-patent license (a) in connection with copies of the covered work
-conveyed by you (or copies made from those copies), or (b) primarily
-for and in connection with specific products or compilations that
-contain the covered work, unless you entered into that arrangement,
-or that patent license was granted, prior to 28 March 2007.
-
-  Nothing in this License shall be construed as excluding or limiting
-any implied license or other defenses to infringement that may
-otherwise be available to you under applicable patent law.
-
-  12. No Surrender of Others' Freedom.
-
-  If 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 convey a
-covered work so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you may
-not convey it at all.  For example, if you agree to terms that obligate you
-to collect a royalty for further conveying from those to whom you convey
-the Program, the only way you could satisfy both those terms and this
-License would be to refrain entirely from conveying the Program.
-
-  13. Use with the GNU Affero General Public License.
-
-  Notwithstanding any other provision of this License, you have
-permission to link or combine any covered work with a work licensed
-under version 3 of the GNU Affero General Public License into a single
-combined work, and to convey the resulting work.  The terms of this
-License will continue to apply to the part which is the covered work,
-but the special requirements of the GNU Affero General Public License,
-section 13, concerning interaction through a network will apply to the
-combination as such.
-
-  14. Revised Versions of this License.
-
-  The Free Software Foundation may publish revised and/or new versions of
-the GNU 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 that a certain numbered version of the GNU General
-Public License "or any later version" applies to it, you have the
-option of following the terms and conditions either of that numbered
-version or of any later version published by the Free Software
-Foundation.  If the Program does not specify a version number of the
-GNU General Public License, you may choose any version ever published
-by the Free Software Foundation.
-
-  If the Program specifies that a proxy can decide which future
-versions of the GNU General Public License can be used, that proxy's
-public statement of acceptance of a version permanently authorizes you
-to choose that version for the Program.
-
-  Later license versions may give you additional or different
-permissions.  However, no additional obligations are imposed on any
-author or copyright holder as a result of your choosing to follow a
-later version.
-
-  15. Disclaimer of Warranty.
-
-  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.
-
-  16. Limitation of Liability.
-
-  IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
-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.
-
-  17. Interpretation of Sections 15 and 16.
-
-  If the disclaimer of warranty and limitation of liability provided
-above cannot be given local legal effect according to their terms,
-reviewing courts shall apply local law that most closely approximates
-an absolute waiver of all civil liability in connection with the
-Program, unless a warranty or assumption of liability accompanies a
-copy of the Program in return for a fee.
-
diff --git a/wiki/vendor/marcusschwarz/lesserphp/README.md b/wiki/vendor/marcusschwarz/lesserphp/README.md
deleted file mode 100644
index b30e07e..0000000
--- a/wiki/vendor/marcusschwarz/lesserphp/README.md
+++ /dev/null
@@ -1,97 +0,0 @@
-[![Build Status](https://travis-ci.org/MarcusSchwarz/lessphp.svg?branch=0.5.1)](https://travis-ci.org/MarcusSchwarz/lessphp)
-
-# lesserphp v0.5.1
-### <http://github.com/MarcusSchwarz/lesserphp>
-
-`lesserphp` is a compiler for LESS written in PHP. It is based on lessphp bei leafo.
-The documentation is great,
-so check it out: <http://leafo.net/lessphp/docs/>.
-
-Here's a quick tutorial:
-
-### How to use in your PHP project
-
-The only file required is `lessc.inc.php`, so copy that to your include directory.
-
-The typical flow of **lesserphp** is to create a new instance of `lessc`,
-configure it how you like, then tell it to compile something using one built in
-compile methods.
-
-The `compile` method compiles a string of LESS code to CSS.
-
-```php
-<?php
-require "lessc.inc.php";
-
-$less = new lessc;
-echo $less->compile(".block { padding: 3 + 4px }");
-```
-
-The `compileFile` method reads and compiles a file. It will either return the
-result or write it to the path specified by an optional second argument.
-
-```php
-<?php
-echo $less->compileFile("input.less");
-```
-
-The `checkedCompile` method is like `compileFile`, but it only compiles if the output
-file doesn't exist or it's older than the input file:
-
-```php
-<?php
-$less->checkedCompile("input.less", "output.css");
-```
-
-If there any problem compiling your code, an exception is thrown with a helpful message:
-
-```php
-<?php
-try {
-  $less->compile("invalid LESS } {");
-} catch (\Exception $e) {
-  echo "fatal error: " . $e->getMessage();
-}
-```
-
-The `lessc` object can be configured through an assortment of instance methods.
-Some possible configuration options include [changing the output format][1],
-[setting variables from PHP][2], and [controlling the preservation of
-comments][3], writing [custom functions][4] and much more. It's all described
-in [the documentation][0].
-
-
- [0]: http://leafo.net/lessphp/docs/
- [1]: http://leafo.net/lessphp/docs/#output_formatting
- [2]: http://leafo.net/lessphp/docs/#setting_variables_from_php
- [3]: http://leafo.net/lessphp/docs/#preserving_comments
- [4]: http://leafo.net/lessphp/docs/#custom_functions
-
-
-### How to use from the command line
-
-An additional script has been included to use the compiler from the command
-line. In the simplest invocation, you specify an input file and the compiled
-css is written to standard out:
-
-    $ plessc input.less > output.css
-
-Using the -r flag, you can specify LESS code directly as an argument or, if
-the argument is left off, from standard in:
-
-    $ plessc -r "my less code here"
-
-Finally, by using the -w flag you can watch a specified input file and have it
-compile as needed to the output file:
-
-    $ plessc -w input-file output-file
-
-Errors from watch mode are written to standard out.
-
-The -f flag sets the [output formatter][1]. For example, to compress the
-output run this:
-
-    $ plessc -f=compressed myfile.less
-
-For more help, run `plessc --help`
-
diff --git a/wiki/vendor/marcusschwarz/lesserphp/lessc.inc.php b/wiki/vendor/marcusschwarz/lesserphp/lessc.inc.php
deleted file mode 100644
index b9e80cc..0000000
--- a/wiki/vendor/marcusschwarz/lesserphp/lessc.inc.php
+++ /dev/null
@@ -1,4019 +0,0 @@
-<?php
-
-/**
- * lessphp v0.5.1
- * http://leafo.net/lessphp
- *
- * LESS CSS compiler, adapted from http://lesscss.org
- *
- * Copyright 2013, Leaf Corcoran <leafot@gmail.com>
- * Copyright 2016, Marcus Schwarz <github@maswaba.de>
- * Licensed under MIT or GPLv3, see LICENSE
- */
-
-
-/**
- * The LESS compiler and parser.
- *
- * Converting LESS to CSS is a three stage process. The incoming file is parsed
- * by `lessc_parser` into a syntax tree, then it is compiled into another tree
- * representing the CSS structure by `lessc`. The CSS tree is fed into a
- * formatter, like `lessc_formatter` which then outputs CSS as a string.
- *
- * During the first compile, all values are *reduced*, which means that their
- * types are brought to the lowest form before being dump as strings. This
- * handles math equations, variable dereferences, and the like.
- *
- * The `parse` function of `lessc` is the entry point.
- *
- * In summary:
- *
- * The `lessc` class creates an instance of the parser, feeds it LESS code,
- * then transforms the resulting tree to a CSS tree. This class also holds the
- * evaluation context, such as all available mixins and variables at any given
- * time.
- *
- * The `lessc_parser` class is only concerned with parsing its input.
- *
- * The `lessc_formatter` takes a CSS tree, and dumps it to a formatted string,
- * handling things like indentation.
- */
-class lessc {
-	static public $VERSION = "v0.5.1";
-
-	static public $TRUE = array("keyword", "true");
-	static public $FALSE = array("keyword", "false");
-
-	protected $libFunctions = array();
-	protected $registeredVars = array();
-	protected $preserveComments = false;
-
-	public $vPrefix = '@'; // prefix of abstract properties
-	public $mPrefix = '$'; // prefix of abstract blocks
-	public $parentSelector = '&';
-
-	static public $lengths = array( "px", "m", "cm", "mm", "in", "pt", "pc" );
-	static public $times = array( "s", "ms" );
-	static public $angles = array( "rad", "deg", "grad", "turn" );
-
-	static public $lengths_to_base = array( 1, 3779.52755906, 37.79527559, 3.77952756, 96, 1.33333333, 16  );
-	public $importDisabled = false;
-	public $importDir = array();
-
-	protected $numberPrecision = null;
-
-	protected $allParsedFiles = array();
-
-	// set to the parser that generated the current line when compiling
-	// so we know how to create error messages
-	protected $sourceParser = null;
-	protected $sourceLoc = null;
-
-	static protected $nextImportId = 0; // uniquely identify imports
-
-	// attempts to find the path of an import url, returns null for css files
-	protected function findImport($url) {
-		foreach ((array)$this->importDir as $dir) {
-			$full = $dir.(substr($dir, -1) != '/' ? '/' : '').$url;
-			if ($this->fileExists($file = $full.'.less') || $this->fileExists($file = $full)) {
-				return $file;
-			}
-		}
-
-		return null;
-	}
-
-	protected function fileExists($name) {
-		return is_file($name);
-	}
-
-	static public function compressList($items, $delim) {
-		if (!isset($items[1]) && isset($items[0])) return $items[0];
-		else return array('list', $delim, $items);
-	}
-
-	static public function preg_quote($what) {
-		return preg_quote($what, '/');
-	}
-
-	protected function tryImport($importPath, $parentBlock, $out) {
-		if ($importPath[0] == "function" && $importPath[1] == "url") {
-			$importPath = $this->flattenList($importPath[2]);
-		}
-
-		$str = $this->coerceString($importPath);
-		if ($str === null) return false;
-
-		$url = $this->compileValue($this->lib_e($str));
-
-		// don't import if it ends in css
-		if (substr_compare($url, '.css', -4, 4) === 0) return false;
-
-		$realPath = $this->findImport($url);
-
-		if ($realPath === null) return false;
-
-		if ($this->importDisabled) {
-			return array(false, "/* import disabled */");
-		}
-
-		if (isset($this->allParsedFiles[realpath($realPath)])) {
-			return array(false, null);
-		}
-
-		$this->addParsedFile($realPath);
-		$parser = $this->makeParser($realPath);
-		$root = $parser->parse(file_get_contents($realPath));
-
-		// set the parents of all the block props
-		foreach ($root->props as $prop) {
-			if ($prop[0] == "block") {
-				$prop[1]->parent = $parentBlock;
-			}
-		}
-
-		// copy mixins into scope, set their parents
-		// bring blocks from import into current block
-		// TODO: need to mark the source parser	these came from this file
-		foreach ($root->children as $childName => $child) {
-			if (isset($parentBlock->children[$childName])) {
-				$parentBlock->children[$childName] = array_merge(
-					$parentBlock->children[$childName],
-					$child);
-			} else {
-				$parentBlock->children[$childName] = $child;
-			}
-		}
-
-		$pi = pathinfo($realPath);
-		$dir = $pi["dirname"];
-
-		list($top, $bottom) = $this->sortProps($root->props, true);
-		$this->compileImportedProps($top, $parentBlock, $out, $parser, $dir);
-
-		return array(true, $bottom, $parser, $dir);
-	}
-
-	protected function compileImportedProps($props, $block, $out, $sourceParser, $importDir) {
-		$oldSourceParser = $this->sourceParser;
-
-		$oldImport = $this->importDir;
-
-		// TODO: this is because the importDir api is stupid
-		$this->importDir = (array)$this->importDir;
-		array_unshift($this->importDir, $importDir);
-
-		foreach ($props as $prop) {
-			$this->compileProp($prop, $block, $out);
-		}
-
-		$this->importDir = $oldImport;
-		$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()
-	 *
-	 */
-	protected function compileBlock($block) {
-		switch ($block->type) {
-		case "root":
-			$this->compileRoot($block);
-			break;
-		case null:
-			$this->compileCSSBlock($block);
-			break;
-		case "media":
-			$this->compileMedia($block);
-			break;
-		case "directive":
-			$name = "@" . $block->name;
-			if (!empty($block->value)) {
-				$name .= " " . $this->compileValue($this->reduce($block->value));
-			}
-
-			$this->compileNestedBlock($block, array($name));
-			break;
-		default:
-            $block->parser->throwError("unknown block type: $block->type\n", $block->count);
-		}
-	}
-
-	protected function compileCSSBlock($block) {
-		$env = $this->pushEnv();
-
-		$selectors = $this->compileSelectors($block->tags);
-		$env->selectors = $this->multiplySelectors($selectors);
-		$out = $this->makeOutputBlock(null, $env->selectors);
-
-		$this->scope->children[] = $out;
-		$this->compileProps($block, $out);
-
-		$block->scope = $env; // mixins carry scope with them!
-		$this->popEnv();
-	}
-
-	protected function compileMedia($media) {
-		$env = $this->pushEnv($media);
-		$parentScope = $this->mediaParent($this->scope);
-
-		$query = $this->compileMediaQuery($this->multiplyMedia($env));
-
-		$this->scope = $this->makeOutputBlock($media->type, array($query));
-		$parentScope->children[] = $this->scope;
-
-		$this->compileProps($media, $this->scope);
-
-		if (count($this->scope->lines) > 0) {
-			$orphanSelelectors = $this->findClosestSelectors();
-			if (!is_null($orphanSelelectors)) {
-				$orphan = $this->makeOutputBlock(null, $orphanSelelectors);
-				$orphan->lines = $this->scope->lines;
-				array_unshift($this->scope->children, $orphan);
-				$this->scope->lines = array();
-			}
-		}
-
-		$this->scope = $this->scope->parent;
-		$this->popEnv();
-	}
-
-	protected function mediaParent($scope) {
-		while (!empty($scope->parent)) {
-			if (!empty($scope->type) && $scope->type != "media") {
-				break;
-			}
-			$scope = $scope->parent;
-		}
-
-		return $scope;
-	}
-
-	protected function compileNestedBlock($block, $selectors) {
-		$this->pushEnv($block);
-		$this->scope = $this->makeOutputBlock($block->type, $selectors);
-		$this->scope->parent->children[] = $this->scope;
-
-		$this->compileProps($block, $this->scope);
-
-		$this->scope = $this->scope->parent;
-		$this->popEnv();
-	}
-
-	protected function compileRoot($root) {
-		$this->pushEnv();
-		$this->scope = $this->makeOutputBlock($root->type);
-		$this->compileProps($root, $this->scope);
-		$this->popEnv();
-	}
-
-	protected function compileProps($block, $out) {
-		foreach ($this->sortProps($block->props) as $prop) {
-			$this->compileProp($prop, $block, $out);
-		}
-		$out->lines = $this->deduplicate($out->lines);
-	}
-
-	/**
-	 * Deduplicate lines in a block. Comments are not deduplicated. If a
-	 * duplicate rule is detected, the comments immediately preceding each
-	 * occurence are consolidated.
-	 */
-	protected function deduplicate($lines) {
-		$unique = array();
-		$comments = array();
-
-		foreach($lines as $line) {
-			if (strpos($line, '/*') === 0) {
-				$comments[] = $line;
-				continue;
-			}
-			if (!in_array($line, $unique)) {
-				$unique[] = $line;
-			}
-			array_splice($unique, array_search($line, $unique), 0, $comments);
-			$comments = array();
-		}
-		return array_merge($unique, $comments);
-	}
-
-	protected function sortProps($props, $split = false) {
-		$vars = array();
-		$imports = array();
-		$other = array();
-		$stack = array();
-
-		foreach ($props as $prop) {
-			switch ($prop[0]) {
-			case "comment":
-				$stack[] = $prop;
-				break;
-			case "assign":
-				$stack[] = $prop;
-				if (isset($prop[1][0]) && $prop[1][0] == $this->vPrefix) {
-					$vars = array_merge($vars, $stack);
-				} else {
-					$other = array_merge($other, $stack);
-				}
-				$stack = array();
-				break;
-			case "import":
-				$id = self::$nextImportId++;
-				$prop[] = $id;
-				$stack[] = $prop;
-				$imports = array_merge($imports, $stack);
-				$other[] = array("import_mixin", $id);
-				$stack = array();
-				break;
-			default:
-				$stack[] = $prop;
-				$other = array_merge($other, $stack);
-				$stack = array();
-				break;
-			}
-		}
-		$other = array_merge($other, $stack);
-
-		if ($split) {
-			return array(array_merge($imports, $vars), $other);
-		} else {
-			return array_merge($imports, $vars, $other);
-		}
-	}
-
-	protected function compileMediaQuery($queries) {
-		$compiledQueries = array();
-		foreach ($queries as $query) {
-			$parts = array();
-			foreach ($query as $q) {
-				switch ($q[0]) {
-				case "mediaType":
-					$parts[] = implode(" ", array_slice($q, 1));
-					break;
-				case "mediaExp":
-					if (isset($q[2])) {
-						$parts[] = "($q[1]: " .
-							$this->compileValue($this->reduce($q[2])) . ")";
-					} else {
-						$parts[] = "($q[1])";
-					}
-					break;
-				case "variable":
-					$parts[] = $this->compileValue($this->reduce($q));
-				break;
-				}
-			}
-
-			if (count($parts) > 0) {
-				$compiledQueries[] =  implode(" and ", $parts);
-			}
-		}
-
-		$out = "@media";
-		if (!empty($parts)) {
-			$out .= " " .
-				implode($this->formatter->selectorSeparator, $compiledQueries);
-		}
-		return $out;
-	}
-
-	protected function multiplyMedia($env, $childQueries = null) {
-		if (is_null($env) ||
-			!empty($env->block->type) && $env->block->type != "media")
-		{
-			return $childQueries;
-		}
-
-		// plain old block, skip
-		if (empty($env->block->type)) {
-			return $this->multiplyMedia($env->parent, $childQueries);
-		}
-
-		$out = array();
-		$queries = $env->block->queries;
-		if (is_null($childQueries)) {
-			$out = $queries;
-		} else {
-			foreach ($queries as $parent) {
-				foreach ($childQueries as $child) {
-					$out[] = array_merge($parent, $child);
-				}
-			}
-		}
-
-		return $this->multiplyMedia($env->parent, $out);
-	}
-
-	protected function expandParentSelectors(&$tag, $replace) {
-		$parts = explode("$&$", $tag);
-		$count = 0;
-		foreach ($parts as &$part) {
-			$part = str_replace($this->parentSelector, $replace, $part, $c);
-			$count += $c;
-		}
-		$tag = implode($this->parentSelector, $parts);
-		return $count;
-	}
-
-	protected function findClosestSelectors() {
-		$env = $this->env;
-		$selectors = null;
-		while ($env !== null) {
-			if (isset($env->selectors)) {
-				$selectors = $env->selectors;
-				break;
-			}
-			$env = $env->parent;
-		}
-
-		return $selectors;
-	}
-
-
-	// multiply $selectors against the nearest selectors in env
-	protected function multiplySelectors($selectors) {
-		// find parent selectors
-
-		$parentSelectors = $this->findClosestSelectors();
-		if (is_null($parentSelectors)) {
-			// kill parent reference in top level selector
-			foreach ($selectors as &$s) {
-				$this->expandParentSelectors($s, "");
-			}
-
-			return $selectors;
-		}
-
-		$out = array();
-		foreach ($parentSelectors as $parent) {
-			foreach ($selectors as $child) {
-				$count = $this->expandParentSelectors($child, $parent);
-
-				// don't prepend the parent tag if & was used
-				if ($count > 0) {
-					$out[] = trim($child);
-				} else {
-					$out[] = trim($parent . ' ' . $child);
-				}
-			}
-		}
-
-		return $out;
-	}
-
-	// reduces selector expressions
-	protected function compileSelectors($selectors) {
-		$out = array();
-
-		foreach ($selectors as $s) {
-			if (is_array($s)) {
-				list(, $value) = $s;
-				$out[] = trim($this->compileValue($this->reduce($value)));
-			} else {
-				$out[] = $s;
-			}
-		}
-
-		return $out;
-	}
-
-	protected function eq($left, $right) {
-		return $left == $right;
-	}
-
-	protected function patternMatch($block, $orderedArgs, $keywordArgs) {
-		// match the guards if it has them
-		// any one of the groups must have all its guards pass for a match
-		if (!empty($block->guards)) {
-			$groupPassed = false;
-			foreach ($block->guards as $guardGroup) {
-				foreach ($guardGroup as $guard) {
-					$this->pushEnv();
-					$this->zipSetArgs($block->args, $orderedArgs, $keywordArgs);
-
-					$negate = false;
-					if ($guard[0] == "negate") {
-						$guard = $guard[1];
-						$negate = true;
-					}
-
-					$passed = $this->reduce($guard) == self::$TRUE;
-					if ($negate) $passed = !$passed;
-
-					$this->popEnv();
-
-					if ($passed) {
-						$groupPassed = true;
-					} else {
-						$groupPassed = false;
-						break;
-					}
-				}
-
-				if ($groupPassed) break;
-			}
-
-			if (!$groupPassed) {
-				return false;
-			}
-		}
-
-		if (empty($block->args)) {
-			return $block->isVararg || empty($orderedArgs) && empty($keywordArgs);
-		}
-
-		$remainingArgs = $block->args;
-		if ($keywordArgs) {
-			$remainingArgs = array();
-			foreach ($block->args as $arg) {
-				if ($arg[0] == "arg" && isset($keywordArgs[$arg[1]])) {
-					continue;
-				}
-
-				$remainingArgs[] = $arg;
-			}
-		}
-
-		$i = -1; // no args
-		// try to match by arity or by argument literal
-		foreach ($remainingArgs as $i => $arg) {
-			switch ($arg[0]) {
-			case "lit":
-				if (empty($orderedArgs[$i]) || !$this->eq($arg[1], $orderedArgs[$i])) {
-					return false;
-				}
-				break;
-			case "arg":
-				// no arg and no default value
-				if (!isset($orderedArgs[$i]) && !isset($arg[2])) {
-					return false;
-				}
-				break;
-			case "rest":
-				$i--; // rest can be empty
-				break 2;
-			}
-		}
-
-		if ($block->isVararg) {
-			return true; // not having enough is handled above
-		} else {
-			$numMatched = $i + 1;
-			// greater than because default values always match
-			return $numMatched >= count($orderedArgs);
-		}
-	}
-
-	protected function patternMatchAll($blocks, $orderedArgs, $keywordArgs, $skip=array()) {
-		$matches = null;
-		foreach ($blocks as $block) {
-			// skip seen blocks that don't have arguments
-			if (isset($skip[$block->id]) && !isset($block->args)) {
-				continue;
-			}
-
-			if ($this->patternMatch($block, $orderedArgs, $keywordArgs)) {
-				$matches[] = $block;
-			}
-		}
-
-		return $matches;
-	}
-
-	// attempt to find blocks matched by path and args
-	protected function findBlocks($searchIn, $path, $orderedArgs, $keywordArgs, $seen=array()) {
-		if ($searchIn == null) return null;
-		if (isset($seen[$searchIn->id])) return null;
-		$seen[$searchIn->id] = true;
-
-		$name = $path[0];
-
-		if (isset($searchIn->children[$name])) {
-			$blocks = $searchIn->children[$name];
-			if (count($path) == 1) {
-				$matches = $this->patternMatchAll($blocks, $orderedArgs, $keywordArgs, $seen);
-				if (!empty($matches)) {
-					// This will return all blocks that match in the closest
-					// scope that has any matching block, like lessjs
-					return $matches;
-				}
-			} else {
-				$matches = array();
-				foreach ($blocks as $subBlock) {
-					$subMatches = $this->findBlocks($subBlock,
-						array_slice($path, 1), $orderedArgs, $keywordArgs, $seen);
-
-					if (!is_null($subMatches)) {
-						foreach ($subMatches as $sm) {
-							$matches[] = $sm;
-						}
-					}
-				}
-
-				return count($matches) > 0 ? $matches : null;
-			}
-		}
-		if ($searchIn->parent === $searchIn) return null;
-		return $this->findBlocks($searchIn->parent, $path, $orderedArgs, $keywordArgs, $seen);
-	}
-
-	// sets all argument names in $args to either the default value
-	// or the one passed in through $values
-	protected function zipSetArgs($args, $orderedValues, $keywordValues) {
-		$assignedValues = array();
-
-		$i = 0;
-		foreach ($args as  $a) {
-			if ($a[0] == "arg") {
-				if (isset($keywordValues[$a[1]])) {
-					// has keyword arg
-					$value = $keywordValues[$a[1]];
-				} elseif (isset($orderedValues[$i])) {
-					// has ordered arg
-					$value = $orderedValues[$i];
-					$i++;
-				} elseif (isset($a[2])) {
-					// has default value
-					$value = $a[2];
-				} else {
-					$this->throwError("Failed to assign arg " . $a[1]);
-					$value = null; // :(
-				}
-
-				$value = $this->reduce($value);
-				$this->set($a[1], $value);
-				$assignedValues[] = $value;
-			} else {
-				// a lit
-				$i++;
-			}
-		}
-
-		// check for a rest
-		$last = end($args);
-		if ($last[0] == "rest") {
-			$rest = array_slice($orderedValues, count($args) - 1);
-			$this->set($last[1], $this->reduce(array("list", " ", $rest)));
-		}
-
-		// wow is this the only true use of PHP's + operator for arrays?
-		$this->env->arguments = $assignedValues + $orderedValues;
-	}
-
-	// compile a prop and update $lines or $blocks appropriately
-	protected function compileProp($prop, $block, $out) {
-		// set error position context
-		$this->sourceLoc = isset($prop[-1]) ? $prop[-1] : -1;
-
-		switch ($prop[0]) {
-		case 'assign':
-			list(, $name, $value) = $prop;
-			if ($name[0] == $this->vPrefix) {
-				$this->set($name, $value);
-			} else {
-				$out->lines[] = $this->formatter->property($name,
-						$this->compileValue($this->reduce($value)));
-			}
-			break;
-		case 'block':
-			list(, $child) = $prop;
-			$this->compileBlock($child);
-			break;
-		case 'ruleset':
-		case 'mixin':
-			list(, $path, $args, $suffix) = $prop;
-
-			$orderedArgs = array();
-			$keywordArgs = array();
-			foreach ((array)$args as $arg) {
-				$argval = null;
-				switch ($arg[0]) {
-				case "arg":
-					if (!isset($arg[2])) {
-						$orderedArgs[] = $this->reduce(array("variable", $arg[1]));
-					} else {
-						$keywordArgs[$arg[1]] = $this->reduce($arg[2]);
-					}
-					break;
-
-				case "lit":
-					$orderedArgs[] = $this->reduce($arg[1]);
-					break;
-				default:
-					$this->throwError("Unknown arg type: " . $arg[0]);
-				}
-			}
-
-			$mixins = $this->findBlocks($block, $path, $orderedArgs, $keywordArgs);
-
-			if ($mixins === null) {
-                $block->parser->throwError("{$prop[1][0]} is undefined", $block->count);
-			}
-
-			if(strpos($prop[1][0], "$") === 0) {
-				//Use Ruleset Logic - Only last element
-				$mixins = array(array_pop($mixins));
-			}
-
-			foreach ($mixins as $mixin) {
-				if ($mixin === $block && !$orderedArgs) {
-					continue;
-				}
-
-				$haveScope = false;
-				if (isset($mixin->parent->scope)) {
-					$haveScope = true;
-					$mixinParentEnv = $this->pushEnv();
-					$mixinParentEnv->storeParent = $mixin->parent->scope;
-				}
-
-				$haveArgs = false;
-				if (isset($mixin->args)) {
-					$haveArgs = true;
-					$this->pushEnv();
-					$this->zipSetArgs($mixin->args, $orderedArgs, $keywordArgs);
-				}
-
-				$oldParent = $mixin->parent;
-				if ($mixin != $block) $mixin->parent = $block;
-
-				foreach ($this->sortProps($mixin->props) as $subProp) {
-					if ($suffix !== null &&
-						$subProp[0] == "assign" &&
-						is_string($subProp[1]) &&
-						$subProp[1]{0} != $this->vPrefix)
-					{
-						$subProp[2] = array(
-							'list', ' ',
-							array($subProp[2], array('keyword', $suffix))
-						);
-					}
-
-					$this->compileProp($subProp, $mixin, $out);
-				}
-
-				$mixin->parent = $oldParent;
-
-				if ($haveArgs) $this->popEnv();
-				if ($haveScope) $this->popEnv();
-			}
-
-			break;
-		case 'raw':
-			$out->lines[] = $prop[1];
-			break;
-		case "directive":
-			list(, $name, $value) = $prop;
-			$out->lines[] = "@$name " . $this->compileValue($this->reduce($value)).';';
-			break;
-		case "comment":
-			$out->lines[] = $prop[1];
-			break;
-		case "import";
-			list(, $importPath, $importId) = $prop;
-			$importPath = $this->reduce($importPath);
-
-			if (!isset($this->env->imports)) {
-				$this->env->imports = array();
-			}
-
-			$result = $this->tryImport($importPath, $block, $out);
-
-			$this->env->imports[$importId] = $result === false ?
-				array(false, "@import " . $this->compileValue($importPath).";") :
-				$result;
-
-			break;
-		case "import_mixin":
-			list(,$importId) = $prop;
-			$import = $this->env->imports[$importId];
-			if ($import[0] === false) {
-				if (isset($import[1])) {
-					$out->lines[] = $import[1];
-				}
-			} else {
-				list(, $bottom, $parser, $importDir) = $import;
-				$this->compileImportedProps($bottom, $block, $out, $parser, $importDir);
-			}
-
-			break;
-		default:
-            $block->parser->throwError("unknown op: {$prop[0]}\n", $block->count);
-		}
-	}
-
-
-	/**
-	 * 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.
-	 */
-	public function compileValue($value) {
-		switch ($value[0]) {
-		case 'list':
-			// [1] - delimiter
-			// [2] - array of values
-			return implode($value[1], array_map(array($this, 'compileValue'), $value[2]));
-		case 'raw_color':
-			if (!empty($this->formatter->compressColors)) {
-				return $this->compileValue($this->coerceColor($value));
-			}
-			return $value[1];
-		case 'keyword':
-			// [1] - the keyword
-			return $value[1];
-		case 'number':
-			list(, $num, $unit) = $value;
-			// [1] - the number
-			// [2] - the unit
-			if ($this->numberPrecision !== null) {
-				$num = round($num, $this->numberPrecision);
-			}
-			return $num . $unit;
-		case 'string':
-			// [1] - contents of string (includes quotes)
-			list(, $delim, $content) = $value;
-			foreach ($content as &$part) {
-				if (is_array($part)) {
-					$part = $this->compileValue($part);
-				}
-			}
-			return $delim . implode($content) . $delim;
-		case 'color':
-			// [1] - red component (either number or a %)
-			// [2] - green component
-			// [3] - blue component
-			// [4] - optional alpha component
-			list(, $r, $g, $b) = $value;
-			$r = round($r);
-			$g = round($g);
-			$b = round($b);
-
-			if (count($value) == 5 && $value[4] != 1) { // rgba
-				return 'rgba('.$r.','.$g.','.$b.','.$value[4].')';
-			}
-
-			$h = sprintf("#%02x%02x%02x", $r, $g, $b);
-
-			if (!empty($this->formatter->compressColors)) {
-				// Converting hex color to short notation (e.g. #003399 to #039)
-				if ($h[1] === $h[2] && $h[3] === $h[4] && $h[5] === $h[6]) {
-					$h = '#' . $h[1] . $h[3] . $h[5];
-				}
-			}
-
-			return $h;
-
-		case 'function':
-			list(, $name, $args) = $value;
-			return $name.'('.$this->compileValue($args).')';
-		default: // assumed to be unit
-			$this->throwError("unknown value type: $value[0]");
-		}
-	}
-
-	protected function lib_pow($args) {
-		list($base, $exp) = $this->assertArgs($args, 2, "pow");
-        return array( "number", pow($this->assertNumber($base), $this->assertNumber($exp)), $args[2][0][2] );
-	}
-
-	protected function lib_pi() {
-		return pi();
-	}
-
-	protected function lib_mod($args) {
-		list($a, $b) = $this->assertArgs($args, 2, "mod");
-        return array( "number", $this->assertNumber($a) % $this->assertNumber($b), $args[2][0][2] );
- 	}
-
-	protected function lib_convert($args) {
-        list($value, $to) = $this->assertArgs($args, 2, "convert");
-
-        // If it's a keyword, grab the string version instead
-        if( is_array( $to ) && $to[0] == "keyword" )
-                $to = $to[1];
-
- 		return $this->convert( $value, $to );
- 	}
-
-	protected function lib_abs($num) {
-        return array( "number", abs($this->assertNumber($num)), $num[2] );
- 	}
-
-	protected function lib_min($args) {
-        $values = $this->assertMinArgs($args, 1, "min");
-
-        $first_format = $values[0][2];
-
-        $min_index = 0;
-        $min_value = $values[0][1];
-
-        for( $a = 0; $a < sizeof( $values ); $a++ )
-        {
-            $converted = $this->convert( $values[$a], $first_format );
-
-            if( $converted[1] < $min_value )
-            {
-                $min_index = $a;
-                $min_value = $values[$a][1];
-            }
- 		}
-
- 		return $values[ $min_index ];
- 	}
-
-	protected function lib_max($args) {
-        $values = $this->assertMinArgs($args, 1, "max");
-
-        $first_format = $values[0][2];
-
-        $max_index = 0;
-        $max_value = $values[0][1];
-
-        for( $a = 0; $a < sizeof( $values ); $a++ )
-        {
-            $converted = $this->convert( $values[$a], $first_format );
-
-            if( $converted[1] > $max_value )
-            {
-                $max_index = $a;
-                $max_value = $values[$a][1];
-            }
- 		}
-
- 		return $values[ $max_index ];
-    }
-
-	protected function lib_tan($num) {
-		return tan($this->assertNumber($num));
-	}
-
-	protected function lib_sin($num) {
-		return sin($this->assertNumber($num));
-	}
-
-	protected function lib_cos($num) {
-		return cos($this->assertNumber($num));
-	}
-
-	protected function lib_atan($num) {
-		$num = atan($this->assertNumber($num));
-		return array("number", $num, "rad");
-	}
-
-	protected function lib_asin($num) {
-		$num = asin($this->assertNumber($num));
-		return array("number", $num, "rad");
-	}
-
-	protected function lib_acos($num) {
-		$num = acos($this->assertNumber($num));
-		return array("number", $num, "rad");
-	}
-
-	protected function lib_sqrt($num) {
-		return sqrt($this->assertNumber($num));
-	}
-
-	protected function lib_extract($value) {
-		list($list, $idx) = $this->assertArgs($value, 2, "extract");
-		$idx = $this->assertNumber($idx);
-		// 1 indexed
-		if ($list[0] == "list" && isset($list[2][$idx - 1])) {
-			return $list[2][$idx - 1];
-		}
-	}
-
-	protected function lib_isnumber($value) {
-		return $this->toBool($value[0] == "number");
-	}
-
-	protected function lib_isstring($value) {
-		return $this->toBool($value[0] == "string");
-	}
-
-	protected function lib_iscolor($value) {
-		return $this->toBool($this->coerceColor($value));
-	}
-
-	protected function lib_iskeyword($value) {
-		return $this->toBool($value[0] == "keyword");
-	}
-
-	protected function lib_ispixel($value) {
-		return $this->toBool($value[0] == "number" && $value[2] == "px");
-	}
-
-	protected function lib_ispercentage($value) {
-		return $this->toBool($value[0] == "number" && $value[2] == "%");
-	}
-
-	protected function lib_isem($value) {
-		return $this->toBool($value[0] == "number" && $value[2] == "em");
-	}
-
-	protected function lib_isrem($value) {
-		return $this->toBool($value[0] == "number" && $value[2] == "rem");
-	}
-
-	protected function lib_rgbahex($color) {
-		$color = $this->coerceColor($color);
-		if (is_null($color))
-			$this->throwError("color expected for rgbahex");
-
-		return sprintf("#%02x%02x%02x%02x",
-			isset($color[4]) ? $color[4]*255 : 255,
-			$color[1],$color[2], $color[3]);
-	}
-
-	protected function lib_argb($color){
-		return $this->lib_rgbahex($color);
-	}
-
-	/**
-	 * Given an url, decide whether to output a regular link or the base64-encoded contents of the file
-	 *
-	 * @param  array  $value either an argument list (two strings) or a single string
-	 * @return string        formatted url(), either as a link or base64-encoded
-	 */
-	protected function lib_data_uri($value) {
-		$mime = ($value[0] === 'list') ? $value[2][0][2] : null;
-		$url = ($value[0] === 'list') ? $value[2][1][2][0] : $value[2][0];
-
-		$fullpath = $this->findImport($url);
-
-		if($fullpath && ($fsize = filesize($fullpath)) !== false) {
-			// IE8 can't handle data uris larger than 32KB
-			if($fsize/1024 < 32) {
-				if(is_null($mime)) {
-					if(class_exists('finfo')) { // php 5.3+
-						$finfo = new finfo(FILEINFO_MIME);
-						$mime = explode('; ', $finfo->file($fullpath));
-						$mime = $mime[0];
-					} elseif(function_exists('mime_content_type')) { // PHP 5.2
-						$mime = mime_content_type($fullpath);
-					}
-				}
-
-				if(!is_null($mime)) // fallback if the mime type is still unknown
-					$url = sprintf('data:%s;base64,%s', $mime, base64_encode(file_get_contents($fullpath)));
-			}
-		}
-
-		return 'url("'.$url.'")';
-	}
-
-	// utility func to unquote a string
-	protected function lib_e($arg) {
-		switch ($arg[0]) {
-			case "list":
-				$items = $arg[2];
-				if (isset($items[0])) {
-					return $this->lib_e($items[0]);
-				}
-				$this->throwError("unrecognised input");
-			case "string":
-				$arg[1] = "";
-				return $arg;
-			case "keyword":
-				return $arg;
-			default:
-				return array("keyword", $this->compileValue($arg));
-		}
-	}
-
-	protected function lib__sprintf($args) {
-		if ($args[0] != "list") return $args;
-		$values = $args[2];
-		$string = array_shift($values);
-		$template = $this->compileValue($this->lib_e($string));
-
-		$i = 0;
-		if (preg_match_all('/%[dsa]/', $template, $m)) {
-			foreach ($m[0] as $match) {
-				$val = isset($values[$i]) ?
-					$this->reduce($values[$i]) : array('keyword', '');
-
-				// lessjs compat, renders fully expanded color, not raw color
-				if ($color = $this->coerceColor($val)) {
-					$val = $color;
-				}
-
-				$i++;
-				$rep = $this->compileValue($this->lib_e($val));
-				$template = preg_replace('/'.self::preg_quote($match).'/',
-					$rep, $template, 1);
-			}
-		}
-
-		$d = $string[0] == "string" ? $string[1] : '"';
-		return array("string", $d, array($template));
-	}
-
-	protected function lib_floor($arg) {
-		$value = $this->assertNumber($arg);
-		return array("number", floor($value), $arg[2]);
-	}
-
-	protected function lib_ceil($arg) {
-		$value = $this->assertNumber($arg);
-		return array("number", ceil($value), $arg[2]);
-	}
-
-	protected function lib_round($arg) {
-		if($arg[0] != "list") {
-			$value = $this->assertNumber($arg);
-			return array("number", round($value), $arg[2]);
-		} else {
-			$value = $this->assertNumber($arg[2][0]);
-			$precision = $this->assertNumber($arg[2][1]);
-			return array("number", round($value, $precision), $arg[2][0][2]);
-		}
-	}
-
-	protected function lib_unit($arg) {
-		if ($arg[0] == "list") {
-			list($number, $newUnit) = $arg[2];
-			return array("number", $this->assertNumber($number),
-				$this->compileValue($this->lib_e($newUnit)));
-		} else {
-			return array("number", $this->assertNumber($arg), "");
-		}
-	}
-
-	/**
-	 * Helper function to get arguments for color manipulation functions.
-	 * takes a list that contains a color like thing and a percentage
-	 */
-	public function colorArgs($args) {
-		if ($args[0] != 'list' || count($args[2]) < 2) {
-			return array(array('color', 0, 0, 0), 0);
-		}
-		list($color, $delta) = $args[2];
-		$color = $this->assertColor($color);
-		$delta = floatval($delta[1]);
-
-		return array($color, $delta);
-	}
-
-	protected function lib_darken($args) {
-		list($color, $delta) = $this->colorArgs($args);
-
-		$hsl = $this->toHSL($color);
-		$hsl[3] = $this->clamp($hsl[3] - $delta, 100);
-		return $this->toRGB($hsl);
-	}
-
-	protected function lib_lighten($args) {
-		list($color, $delta) = $this->colorArgs($args);
-
-		$hsl = $this->toHSL($color);
-		$hsl[3] = $this->clamp($hsl[3] + $delta, 100);
-		return $this->toRGB($hsl);
-	}
-
-	protected function lib_saturate($args) {
-		list($color, $delta) = $this->colorArgs($args);
-
-		$hsl = $this->toHSL($color);
-		$hsl[2] = $this->clamp($hsl[2] + $delta, 100);
-		return $this->toRGB($hsl);
-	}
-
-	protected function lib_desaturate($args) {
-		list($color, $delta) = $this->colorArgs($args);
-
-		$hsl = $this->toHSL($color);
-		$hsl[2] = $this->clamp($hsl[2] - $delta, 100);
-		return $this->toRGB($hsl);
-	}
-
-	protected function lib_spin($args) {
-		list($color, $delta) = $this->colorArgs($args);
-
-		$hsl = $this->toHSL($color);
-
-		$hsl[1] = $hsl[1] + $delta % 360;
-		if ($hsl[1] < 0) $hsl[1] += 360;
-
-		return $this->toRGB($hsl);
-	}
-
-	protected function lib_fadeout($args) {
-		list($color, $delta) = $this->colorArgs($args);
-		$color[4] = $this->clamp((isset($color[4]) ? $color[4] : 1) - $delta/100);
-		return $color;
-	}
-
-	protected function lib_fadein($args) {
-		list($color, $delta) = $this->colorArgs($args);
-		$color[4] = $this->clamp((isset($color[4]) ? $color[4] : 1) + $delta/100);
-		return $color;
-	}
-
-	protected function lib_hue($color) {
-		$hsl = $this->toHSL($this->assertColor($color));
-		return round($hsl[1]);
-	}
-
-	protected function lib_saturation($color) {
-		$hsl = $this->toHSL($this->assertColor($color));
-		return round($hsl[2]);
-	}
-
-	protected function lib_lightness($color) {
-		$hsl = $this->toHSL($this->assertColor($color));
-		return round($hsl[3]);
-	}
-
-	// get the alpha of a color
-	// defaults to 1 for non-colors or colors without an alpha
-	protected function lib_alpha($value) {
-		if (!is_null($color = $this->coerceColor($value))) {
-			return isset($color[4]) ? $color[4] : 1;
-		}
-	}
-
-	// set the alpha of the color
-	protected function lib_fade($args) {
-		list($color, $alpha) = $this->colorArgs($args);
-		$color[4] = $this->clamp($alpha / 100.0);
-		return $color;
-	}
-
-	protected function lib_percentage($arg) {
-		$num = $this->assertNumber($arg);
-		return array("number", $num*100, "%");
-	}
-
-	// mixes two colors by weight
-	// mix(@color1, @color2, [@weight: 50%]);
-	// http://sass-lang.com/docs/yardoc/Sass/Script/Functions.html#mix-instance_method
-	protected function lib_mix($args) {
-		if ($args[0] != "list" || count($args[2]) < 2)
-			$this->throwError("mix expects (color1, color2, weight)");
-
-		list($first, $second) = $args[2];
-		$first = $this->assertColor($first);
-		$second = $this->assertColor($second);
-
-		$first_a = $this->lib_alpha($first);
-		$second_a = $this->lib_alpha($second);
-
-		if (isset($args[2][2])) {
-			$weight = $args[2][2][1] / 100.0;
-		} else {
-			$weight = 0.5;
-		}
-
-		$w = $weight * 2 - 1;
-		$a = $first_a - $second_a;
-
-		$w1 = (($w * $a == -1 ? $w : ($w + $a)/(1 + $w * $a)) + 1) / 2.0;
-		$w2 = 1.0 - $w1;
-
-		$new = array('color',
-			$w1 * $first[1] + $w2 * $second[1],
-			$w1 * $first[2] + $w2 * $second[2],
-			$w1 * $first[3] + $w2 * $second[3],
-		);
-
-		if ($first_a != 1.0 || $second_a != 1.0) {
-			$new[] = $first_a * $weight + $second_a * ($weight - 1);
-		}
-
-		return $this->fixColor($new);
-	}
-
-	protected function lib_contrast($args) {
-	    $darkColor  = array('color', 0, 0, 0);
-	    $lightColor = array('color', 255, 255, 255);
-	    $threshold  = 0.43;
-
-	    if ( $args[0] == 'list' ) {
-	        $inputColor = ( isset($args[2][0]) ) ? $this->assertColor($args[2][0])  : $lightColor;
-	        $darkColor  = ( isset($args[2][1]) ) ? $this->assertColor($args[2][1])  : $darkColor;
-	        $lightColor = ( isset($args[2][2]) ) ? $this->assertColor($args[2][2])  : $lightColor;
-            if( isset($args[2][3]) ) {
-                if( isset($args[2][3][2]) && $args[2][3][2] == '%' ) {
-                    $args[2][3][1] /= 100;
-                    unset($args[2][3][2]);
- 	        	}
- 		        $threshold = $this->assertNumber($args[2][3]);
- 	        }
-	    }
-	    else {
-	        $inputColor  = $this->assertColor($args);
-	    }
-
-	    $inputColor = $this->coerceColor($inputColor);
-	    $darkColor  = $this->coerceColor($darkColor);
-	    $lightColor = $this->coerceColor($lightColor);
-
-	    //Figure out which is actually light and dark!
-	    if ( $this->lib_luma($darkColor) > $this->lib_luma($lightColor) ) {
-	        $t  = $lightColor;
-	        $lightColor = $darkColor;
-	        $darkColor  = $t;
-	    }
-
-	    $inputColor_alpha = $this->lib_alpha($inputColor);
-	    if ( ( $this->lib_luma($inputColor) * $inputColor_alpha) < $threshold) {
-	        return $lightColor;
-	    }
-	    return $darkColor;
-	}
-
-	protected function lib_luma($color) {
-	    $color = $this->coerceColor($color);
-	    return (0.2126 * $color[0] / 255) + (0.7152 * $color[1] / 255) + (0.0722 * $color[2] / 255);
-	}
-
-
-	public function assertColor($value, $error = "expected color value") {
-		$color = $this->coerceColor($value);
-		if (is_null($color)) $this->throwError($error);
-		return $color;
-	}
-
-	public function assertNumber($value, $error = "expecting number") {
-		if ($value[0] == "number") return $value[1];
-		$this->throwError($error);
-	}
-
-	public function assertArgs($value, $expectedArgs, $name="") {
-		if ($expectedArgs == 1) {
-			return $value;
-		} else {
-			if ($value[0] !== "list" || $value[1] != ",") $this->throwError("expecting list");
-			$values = $value[2];
-			$numValues = count($values);
-			if ($expectedArgs != $numValues) {
-				if ($name) {
-					$name = $name . ": ";
-				}
-
-				$this->throwError("${name}expecting $expectedArgs arguments, got $numValues");
-			}
-
-			return $values;
-		}
-	}
-
-	public function assertMinArgs($value, $expectedMinArgs, $name="") {
-    	if ($value[0] !== "list" || $value[1] != ",") $this->throwError("expecting list");
- 		$values = $value[2];
- 		$numValues = count($values);
- 		if ($expectedMinArgs > $numValues) {
-        	if ($name) {
-            	$name = $name . ": ";
-        	}
-
- 			$this->throwError("${name}expecting at least $expectedMinArgs arguments, got $numValues");
- 		}
-
- 		return $values;
-}
-
-	protected function toHSL($color) {
-		if ($color[0] == 'hsl') return $color;
-
-		$r = $color[1] / 255;
-		$g = $color[2] / 255;
-		$b = $color[3] / 255;
-
-		$min = min($r, $g, $b);
-		$max = max($r, $g, $b);
-
-		$L = ($min + $max) / 2;
-		if ($min == $max) {
-			$S = $H = 0;
-		} else {
-			if ($L < 0.5)
-				$S = ($max - $min)/($max + $min);
-			else
-				$S = ($max - $min)/(2.0 - $max - $min);
-
-			if ($r == $max) $H = ($g - $b)/($max - $min);
-			elseif ($g == $max) $H = 2.0 + ($b - $r)/($max - $min);
-			elseif ($b == $max) $H = 4.0 + ($r - $g)/($max - $min);
-
-		}
-
-		$out = array('hsl',
-			($H < 0 ? $H + 6 : $H)*60,
-			$S*100,
-			$L*100,
-		);
-
-		if (count($color) > 4) $out[] = $color[4]; // copy alpha
-		return $out;
-	}
-
-	protected function toRGB_helper($comp, $temp1, $temp2) {
-		if ($comp < 0) $comp += 1.0;
-		elseif ($comp > 1) $comp -= 1.0;
-
-		if (6 * $comp < 1) return $temp1 + ($temp2 - $temp1) * 6 * $comp;
-		if (2 * $comp < 1) return $temp2;
-		if (3 * $comp < 2) return $temp1 + ($temp2 - $temp1)*((2/3) - $comp) * 6;
-
-		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
-	 */
-	protected function toRGB($color) {
-		if ($color[0] == 'color') return $color;
-
-		$H = $color[1] / 360;
-		$S = $color[2] / 100;
-		$L = $color[3] / 100;
-
-		if ($S == 0) {
-			$r = $g = $b = $L;
-		} else {
-			$temp2 = $L < 0.5 ?
-				$L*(1.0 + $S) :
-				$L + $S - $L * $S;
-
-			$temp1 = 2.0 * $L - $temp2;
-
-			$r = $this->toRGB_helper($H + 1/3, $temp1, $temp2);
-			$g = $this->toRGB_helper($H, $temp1, $temp2);
-			$b = $this->toRGB_helper($H - 1/3, $temp1, $temp2);
-		}
-
-		// $out = array('color', round($r*255), round($g*255), round($b*255));
-		$out = array('color', $r*255, $g*255, $b*255);
-		if (count($color) > 4) $out[] = $color[4]; // copy alpha
-		return $out;
-	}
-
-	protected function clamp($v, $max = 1, $min = 0) {
-		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.
-	 */
-	protected function funcToColor($func) {
-		$fname = $func[1];
-		if ($func[2][0] != 'list') return false; // need a list of arguments
-		$rawComponents = $func[2][2];
-
-		if ($fname == 'hsl' || $fname == 'hsla') {
-			$hsl = array('hsl');
-			$i = 0;
-			foreach ($rawComponents as $c) {
-				$val = $this->reduce($c);
-				$val = isset($val[1]) ? floatval($val[1]) : 0;
-
-				if ($i == 0) $clamp = 360;
-				elseif ($i < 3) $clamp = 100;
-				else $clamp = 1;
-
-				$hsl[] = $this->clamp($val, $clamp);
-				$i++;
-			}
-
-			while (count($hsl) < 4) $hsl[] = 0;
-			return $this->toRGB($hsl);
-
-		} elseif ($fname == 'rgb' || $fname == 'rgba') {
-			$components = array();
-			$i = 1;
-			foreach	($rawComponents as $c) {
-				$c = $this->reduce($c);
-				if ($i < 4) {
-					if ($c[0] == "number" && $c[2] == "%") {
-						$components[] = 255 * ($c[1] / 100);
-					} else {
-						$components[] = floatval($c[1]);
-					}
-				} elseif ($i == 4) {
-					if ($c[0] == "number" && $c[2] == "%") {
-						$components[] = 1.0 * ($c[1] / 100);
-					} else {
-						$components[] = floatval($c[1]);
-					}
-				} else break;
-
-				$i++;
-			}
-			while (count($components) < 3) $components[] = 0;
-			array_unshift($components, 'color');
-			return $this->fixColor($components);
-		}
-
-		return false;
-	}
-
-	protected function reduce($value, $forExpression = false) {
-		switch ($value[0]) {
-		case "interpolate":
-			$reduced = $this->reduce($value[1]);
-			$var = $this->compileValue($reduced);
-			$res = $this->reduce(array("variable", $this->vPrefix . $var));
-
-			if ($res[0] == "raw_color") {
-				$res = $this->coerceColor($res);
-			}
-
-			if (empty($value[2])) $res = $this->lib_e($res);
-
-			return $res;
-		case "variable":
-			$key = $value[1];
-			if (is_array($key)) {
-				$key = $this->reduce($key);
-				$key = $this->vPrefix . $this->compileValue($this->lib_e($key));
-			}
-
-			$seen =& $this->env->seenNames;
-
-			if (!empty($seen[$key])) {
-				$this->throwError("infinite loop detected: $key");
-			}
-
-			$seen[$key] = true;
-			$out = $this->reduce($this->get($key));
-			$seen[$key] = false;
-			return $out;
-		case "list":
-			foreach ($value[2] as &$item) {
-				$item = $this->reduce($item, $forExpression);
-			}
-			return $value;
-		case "expression":
-			return $this->evaluate($value);
-		case "string":
-			foreach ($value[2] as &$part) {
-				if (is_array($part)) {
-					$strip = $part[0] == "variable";
-					$part = $this->reduce($part);
-					if ($strip) $part = $this->lib_e($part);
-				}
-			}
-			return $value;
-		case "escape":
-			list(,$inner) = $value;
-			return $this->lib_e($this->reduce($inner));
-		case "function":
-			$color = $this->funcToColor($value);
-			if ($color) return $color;
-
-			list(, $name, $args) = $value;
-			if ($name == "%") $name = "_sprintf";
-
-			$f = isset($this->libFunctions[$name]) ?
-				$this->libFunctions[$name] : array($this, 'lib_'.str_replace('-', '_', $name));
-
-			if (is_callable($f)) {
-				if ($args[0] == 'list')
-					$args = self::compressList($args[2], $args[1]);
-
-				$ret = call_user_func($f, $this->reduce($args, true), $this);
-
-				if (is_null($ret)) {
-					return array("string", "", array(
-						$name, "(", $args, ")"
-					));
-				}
-
-				// convert to a typed value if the result is a php primitive
-				if (is_numeric($ret)) $ret = array('number', $ret, "");
-				elseif (!is_array($ret)) $ret = array('keyword', $ret);
-
-				return $ret;
-			}
-
-			// plain function, reduce args
-			$value[2] = $this->reduce($value[2]);
-			return $value;
-		case "unary":
-			list(, $op, $exp) = $value;
-			$exp = $this->reduce($exp);
-
-			if ($exp[0] == "number") {
-				switch ($op) {
-				case "+":
-					return $exp;
-				case "-":
-					$exp[1] *= -1;
-					return $exp;
-				}
-			}
-			return array("string", "", array($op, $exp));
-		}
-
-		if ($forExpression) {
-			switch ($value[0]) {
-			case "keyword":
-				if ($color = $this->coerceColor($value)) {
-					return $color;
-				}
-				break;
-			case "raw_color":
-				return $this->coerceColor($value);
-			}
-		}
-
-		return $value;
-	}
-
-
-	// coerce a value for use in color operation
-	protected function coerceColor($value) {
-		switch($value[0]) {
-			case 'color': return $value;
-			case 'raw_color':
-				$c = array("color", 0, 0, 0);
-				$colorStr = substr($value[1], 1);
-				$num = hexdec($colorStr);
-				$width = strlen($colorStr) == 3 ? 16 : 256;
-
-				for ($i = 3; $i > 0; $i--) { // 3 2 1
-					$t = $num % $width;
-					$num /= $width;
-
-					$c[$i] = $t * (256/$width) + $t * floor(16/$width);
-				}
-
-				return $c;
-			case 'keyword':
-				$name = $value[1];
-				if (isset(self::$cssColors[$name])) {
-					$rgba = explode(',', self::$cssColors[$name]);
-
-					if(isset($rgba[3]))
-						return array('color', $rgba[0], $rgba[1], $rgba[2], $rgba[3]);
-
-					return array('color', $rgba[0], $rgba[1], $rgba[2]);
-				}
-				return null;
-		}
-	}
-
-	// make something string like into a string
-	protected function coerceString($value) {
-		switch ($value[0]) {
-		case "string":
-			return $value;
-		case "keyword":
-			return array("string", "", array($value[1]));
-		}
-		return null;
-	}
-
-	// turn list of length 1 into value type
-	protected function flattenList($value) {
-		if ($value[0] == "list" && count($value[2]) == 1) {
-			return $this->flattenList($value[2][0]);
-		}
-		return $value;
-	}
-
-	public function toBool($a) {
-		if ($a) return self::$TRUE;
-		else return self::$FALSE;
-	}
-
-	// evaluate an expression
-	protected function evaluate($exp) {
-		list(, $op, $left, $right, $whiteBefore, $whiteAfter) = $exp;
-
-		$left = $this->reduce($left, true);
-		$right = $this->reduce($right, true);
-
-		if ($leftColor = $this->coerceColor($left)) {
-			$left = $leftColor;
-		}
-
-		if ($rightColor = $this->coerceColor($right)) {
-			$right = $rightColor;
-		}
-
-		$ltype = $left[0];
-		$rtype = $right[0];
-
-		// operators that work on all types
-		if ($op == "and") {
-			return $this->toBool($left == self::$TRUE && $right == self::$TRUE);
-		}
-
-		if ($op == "=") {
-			return $this->toBool($this->eq($left, $right) );
-		}
-
-		if ($op == "+" && !is_null($str = $this->stringConcatenate($left, $right))) {
-			return $str;
-		}
-
-		// type based operators
-		$fname = "op_${ltype}_${rtype}";
-		if (is_callable(array($this, $fname))) {
-			$out = $this->$fname($op, $left, $right);
-			if (!is_null($out)) return $out;
-		}
-
-		// make the expression look it did before being parsed
-		$paddedOp = $op;
-		if ($whiteBefore) $paddedOp = " " . $paddedOp;
-		if ($whiteAfter) $paddedOp .= " ";
-
-		return array("string", "", array($left, $paddedOp, $right));
-	}
-
-	protected function stringConcatenate($left, $right) {
-		if ($strLeft = $this->coerceString($left)) {
-			if ($right[0] == "string") {
-				$right[1] = "";
-			}
-			$strLeft[2][] = $right;
-			return $strLeft;
-		}
-
-		if ($strRight = $this->coerceString($right)) {
-			array_unshift($strRight[2], $left);
-			return $strRight;
-		}
-	}
-
-    protected function convert( $number, $to )
-    {
-        $value = $this->assertNumber( $number );
-        $from = $number[2];
-
-        // easy out
-        if( $from == $to )
-            return $number;
-
-        // check if the from value is a length
-        if( ( $from_index = array_search( $from, self::$lengths ) ) !== false ) {
-            // make sure to value is too
-            if( in_array( $to, self::$lengths ) ) {
-                // do the actual conversion
-                $to_index = array_search( $to, self::$lengths );
-                $px = $value * self::$lengths_to_base[ $from_index ];
-                $result = $px * ( 1 / self::$lengths_to_base[ $to_index ] );
-
-                $result = round( $result, 8 );
-                return array( "number", $result, $to );
-            }
-        }
-
-        // do the same check for times
-        if( in_array( $from, self::$times ) ) {
-            if( in_array( $to, self::$times ) ) {
-                // currently only ms and s are valid
-                if( $to == "ms" )
-                    $result = $value * 1000;
-                else
-                    $result = $value / 1000;
-
-                $result = round( $result, 8 );
-                return array( "number", $result, $to );
-            }
-        }
-
-        // lastly check for an angle
-        if( in_array( $from, self::$angles ) ) {
-            // convert whatever angle it is into degrees
-            if( $from == "rad" )
-                $deg = rad2deg( $value );
-
-            else if( $from == "turn" )
-                $deg = $value * 360;
-
-            else if( $from == "grad" )
-                $deg = $value / (400 / 360);
-
-            else
-                $deg = $value;
-
-            // Then convert it from degrees into desired unit
-            if( $to == "deg" )
-                $result = $deg;
-
-            if( $to == "rad" )
-                $result = deg2rad( $deg );
-
-            if( $to == "turn" )
-                $result = $value / 360;
-
-            if( $to == "grad" )
-                $result = $value * (400 / 360);
-
-            $result = round( $result, 8 );
-            return array( "number", $result, $to );
-        }
-
-        // we don't know how to convert these
-        $this->throwError( "Cannot convert {$from} to {$to}" );
-    }
-
-	// make sure a color's components don't go out of bounds
-	protected function fixColor($c) {
-		foreach (range(1, 3) as $i) {
-			if ($c[$i] < 0) $c[$i] = 0;
-			if ($c[$i] > 255) $c[$i] = 255;
-		}
-
-		return $c;
-	}
-
-	protected function op_number_color($op, $lft, $rgt) {
-		if ($op == '+' || $op == '*') {
-			return $this->op_color_number($op, $rgt, $lft);
-		}
-	}
-
-	protected function op_color_number($op, $lft, $rgt) {
-		if ($rgt[0] == '%') $rgt[1] /= 100;
-
-		return $this->op_color_color($op, $lft,
-			array_fill(1, count($lft) - 1, $rgt[1]));
-	}
-
-	protected function op_color_color($op, $left, $right) {
-		$out = array('color');
-		$max = count($left) > count($right) ? count($left) : count($right);
-		foreach (range(1, $max - 1) as $i) {
-			$lval = isset($left[$i]) ? $left[$i] : 0;
-			$rval = isset($right[$i]) ? $right[$i] : 0;
-			switch ($op) {
-			case '+':
-				$out[] = $lval + $rval;
-				break;
-			case '-':
-				$out[] = $lval - $rval;
-				break;
-			case '*':
-				$out[] = $lval * $rval;
-				break;
-			case '%':
-				$out[] = $lval % $rval;
-				break;
-			case '/':
-				if ($rval == 0) $this->throwError("evaluate error: can't divide by zero");
-				$out[] = $lval / $rval;
-				break;
-			default:
-				$this->throwError('evaluate error: color op number failed on op '.$op);
-			}
-		}
-		return $this->fixColor($out);
-	}
-
-	function lib_red($color){
-		$color = $this->coerceColor($color);
-		if (is_null($color)) {
-			$this->throwError('color expected for red()');
-		}
-
-		return $color[1];
-	}
-
-	function lib_green($color){
-		$color = $this->coerceColor($color);
-		if (is_null($color)) {
-			$this->throwError('color expected for green()');
-		}
-
-		return $color[2];
-	}
-
-	function lib_blue($color){
-		$color = $this->coerceColor($color);
-		if (is_null($color)) {
-			$this->throwError('color expected for blue()');
-		}
-
-		return $color[3];
-	}
-
-
-	// operator on two numbers
-	protected function op_number_number($op, $left, $right) {
-		$unit = empty($left[2]) ? $right[2] : $left[2];
-
-		$value = 0;
-		switch ($op) {
-		case '+':
-			$value = $left[1] + $right[1];
-			break;
-		case '*':
-			$value = $left[1] * $right[1];
-			break;
-		case '-':
-			$value = $left[1] - $right[1];
-			break;
-		case '%':
-			$value = $left[1] % $right[1];
-			break;
-		case '/':
-			if ($right[1] == 0) $this->throwError('parse error: divide by zero');
-			$value = $left[1] / $right[1];
-			break;
-		case '<':
-			return $this->toBool($left[1] < $right[1]);
-		case '>':
-			return $this->toBool($left[1] > $right[1]);
-		case '>=':
-			return $this->toBool($left[1] >= $right[1]);
-		case '=<':
-			return $this->toBool($left[1] <= $right[1]);
-		default:
-			$this->throwError('parse error: unknown number operator: '.$op);
-		}
-
-		return array("number", $value, $unit);
-	}
-
-
-	/* environment functions */
-
-	protected function makeOutputBlock($type, $selectors = null) {
-		$b = new stdclass;
-		$b->lines = array();
-		$b->children = array();
-		$b->selectors = $selectors;
-		$b->type = $type;
-		$b->parent = $this->scope;
-		return $b;
-	}
-
-	// the state of execution
-	protected function pushEnv($block = null) {
-		$e = new stdclass;
-		$e->parent = $this->env;
-		$e->store = array();
-		$e->block = $block;
-
-		$this->env = $e;
-		return $e;
-	}
-
-	// pop something off the stack
-	protected function popEnv() {
-		$old = $this->env;
-		$this->env = $this->env->parent;
-		return $old;
-	}
-
-	// set something in the current env
-	protected function set($name, $value) {
-		$this->env->store[$name] = $value;
-	}
-
-
-	// get the highest occurrence entry for a name
-	protected function get($name) {
-		$current = $this->env;
-
-        // track scope to evaluate
-        $scope_secondary = array();
-
-        $isArguments = $name == $this->vPrefix . 'arguments';
-		while ($current) {
-			if ($isArguments && isset($current->arguments)) {
-				return array('list', ' ', $current->arguments);
-			}
-
-			if (isset($current->store[$name]))
-				return $current->store[$name];
-			// has secondary scope?
-			if (isset($current->storeParent))
-				$scope_secondary[] = $current->storeParent;
-
-			if (isset($current->parent))
-				$current = $current->parent;
-			else
-				$current = null;
-		}
-
-		while (count($scope_secondary)) {
-            // pop one off
-            $current = array_shift($scope_secondary);
-            while ($current) {
-                if ($isArguments && isset($current->arguments)) {
-                    return array('list', ' ', $current->arguments);
-                }
-
-                if (isset($current->store[$name])) {
-                    return $current->store[$name];
-                }
-
-                // has secondary scope?
-                if (isset($current->storeParent)) {
-                    $scope_secondary[] = $current->storeParent;
-                }
-
-                if (isset($current->parent)) {
-                    $current = $current->parent;
-                } else {
-                    $current = null;
-                }
-            }
-        }
-
-		$this->throwError("variable $name is undefined");
-	}
-
-	// inject array of unparsed strings into environment as variables
-	protected function injectVariables($args) {
-		$this->pushEnv();
-		$parser = new lessc_parser($this, __METHOD__);
-		foreach ($args as $name => $strValue) {
-			if ($name{0} != '@') $name = '@'.$name;
-			$parser->count = 0;
-			$parser->buffer = (string)$strValue;
-			if (!$parser->propertyValue($value)) {
-				throw new \Exception("failed to parse passed in variable $name: $strValue");
-			}
-
-			$this->set($name, $value);
-		}
-	}
-
-	/**
-	 * Initialize any static state, can initialize parser for a file
-	 * $opts isn't used yet
-	 */
-	public function __construct($fname = null) {
-		if ($fname !== null) {
-			// used for deprecated parse method
-			$this->_parseFile = $fname;
-		}
-	}
-
-	public function compile($string, $name = null) {
-		$locale = setlocale(LC_NUMERIC, 0);
-		setlocale(LC_NUMERIC, "C");
-
-		$this->parser = $this->makeParser($name);
-		$root = $this->parser->parse($string);
-
-		$this->env = null;
-		$this->scope = null;
-        $this->allParsedFiles = array();
-
-		$this->formatter = $this->newFormatter();
-
-		if (!empty($this->registeredVars)) {
-			$this->injectVariables($this->registeredVars);
-		}
-
-		$this->sourceParser = $this->parser; // used for error messages
-		$this->compileBlock($root);
-
-		ob_start();
-		$this->formatter->block($this->scope);
-		$out = ob_get_clean();
-		setlocale(LC_NUMERIC, $locale);
-		return $out;
-	}
-
-	public function compileFile($fname, $outFname = null) {
-		if (!is_readable($fname)) {
-			throw new \Exception('load error: failed to find '.$fname);
-		}
-
-		$pi = pathinfo($fname);
-
-		$oldImport = $this->importDir;
-
-		$this->importDir = (array)$this->importDir;
-		$this->importDir[] = $pi['dirname'].'/';
-
-		$this->addParsedFile($fname);
-
-		$out = $this->compile(file_get_contents($fname), $fname);
-
-		$this->importDir = $oldImport;
-
-		if ($outFname !== null) {
-			return file_put_contents($outFname, $out);
-		}
-
-		return $out;
-	}
-
-    /**
-     * Based on explicit input/output files does a full change check on cache before compiling.
-     *
-     * @param string $in
-     * @param string $out
-     * @param boolean $force
-     * @return string Compiled CSS results
-     * @throws Exception
-     */
-    public function checkedCachedCompile($in, $out, $force = false) {
-        if (!is_file($in) || !is_readable($in)) {
-            throw new Exception('Invalid or unreadable input file specified.');
-        }
-        if (is_dir($out) || !is_writable(file_exists($out) ? $out : dirname($out))) {
-            throw new Exception('Invalid or unwritable output file specified.');
-        }
-
-        $outMeta = $out . '.meta';
-        $metadata = null;
-        if (!$force && is_file($outMeta)) {
-            $metadata = unserialize(file_get_contents($outMeta));
-        }
-
-        $output = $this->cachedCompile($metadata ? $metadata : $in);
-
-        if (!$metadata || $metadata['updated'] != $output['updated']) {
-            $css = $output['compiled'];
-            unset($output['compiled']);
-            file_put_contents($out, $css);
-            file_put_contents($outMeta, serialize($output));
-        } else {
-            $css = file_get_contents($out);
-        }
-
-        return $css;
-    }
-
-	// compile only if changed input has changed or output doesn't exist
-	public function checkedCompile($in, $out) {
-		if (!is_file($out) || filemtime($in) > filemtime($out)) {
-			$this->compileFile($in, $out);
-			return true;
-		}
-		return false;
-	}
-
-	/**
-	 * Execute lessphp on a .less file or a lessphp cache structure
-	 *
-	 * The lessphp cache structure contains information about a specific
-	 * less file having been parsed. It can be used as a hint for future
-	 * calls to determine whether or not a rebuild is required.
-	 *
-	 * The cache structure contains two important keys that may be used
-	 * externally:
-	 *
-	 * compiled: The final compiled CSS
-	 * updated: The time (in seconds) the CSS was last compiled
-	 *
-	 * The cache structure is a plain-ol' PHP associative array and can
-	 * be serialized and unserialized without a hitch.
-	 *
-	 * @param mixed $in Input
-	 * @param bool $force Force rebuild?
-	 * @return array lessphp cache structure
-	 */
-	public function cachedCompile($in, $force = false) {
-		// assume no root
-		$root = null;
-
-		if (is_string($in)) {
-			$root = $in;
-		} elseif (is_array($in) and isset($in['root'])) {
-			if ($force or ! isset($in['files'])) {
-				// If we are forcing a recompile or if for some reason the
-				// structure does not contain any file information we should
-				// specify the root to trigger a rebuild.
-				$root = $in['root'];
-			} elseif (isset($in['files']) and is_array($in['files'])) {
-				foreach ($in['files'] as $fname => $ftime ) {
-					if (!file_exists($fname) or filemtime($fname) > $ftime) {
-						// One of the files we knew about previously has changed
-						// so we should look at our incoming root again.
-						$root = $in['root'];
-						break;
-					}
-				}
-			}
-		} else {
-			// TODO: Throw an exception? We got neither a string nor something
-			// that looks like a compatible lessphp cache structure.
-			return null;
-		}
-
-		if ($root !== null) {
-			// If we have a root value which means we should rebuild.
-			$out = array();
-			$out['root'] = $root;
-			$out['compiled'] = $this->compileFile($root);
-			$out['files'] = $this->allParsedFiles();
-			$out['updated'] = time();
-			return $out;
-		} else {
-			// No changes, pass back the structure
-			// we were given initially.
-			return $in;
-		}
-
-	}
-
-	// parse and compile buffer
-	// This is deprecated
-	public function parse($str = null, $initialVariables = null) {
-		if (is_array($str)) {
-			$initialVariables = $str;
-			$str = null;
-		}
-
-		$oldVars = $this->registeredVars;
-		if ($initialVariables !== null) {
-			$this->setVariables($initialVariables);
-		}
-
-		if ($str == null) {
-			if (empty($this->_parseFile)) {
-				throw new \Exception("nothing to parse");
-			}
-
-			$out = $this->compileFile($this->_parseFile);
-		} else {
-			$out = $this->compile($str);
-		}
-
-		$this->registeredVars = $oldVars;
-		return $out;
-	}
-
-	protected function makeParser($name) {
-		$parser = new lessc_parser($this, $name);
-		$parser->writeComments = $this->preserveComments;
-
-		return $parser;
-	}
-
-	public function setFormatter($name) {
-		$this->formatterName = $name;
-	}
-
-	protected function newFormatter() {
-		$className = "lessc_formatter_lessjs";
-		if (!empty($this->formatterName)) {
-			if (!is_string($this->formatterName))
-				return $this->formatterName;
-			$className = "lessc_formatter_$this->formatterName";
-		}
-
-		return new $className;
-	}
-
-	public function setPreserveComments($preserve) {
-		$this->preserveComments = $preserve;
-	}
-
-	public function registerFunction($name, $func) {
-		$this->libFunctions[$name] = $func;
-	}
-
-	public function unregisterFunction($name) {
-		unset($this->libFunctions[$name]);
-	}
-
-	public function setVariables($variables) {
-		$this->registeredVars = array_merge($this->registeredVars, $variables);
-	}
-
-	public function unsetVariable($name) {
-		unset($this->registeredVars[$name]);
-	}
-
-	public function setImportDir($dirs) {
-		$this->importDir = (array)$dirs;
-	}
-
-	public function addImportDir($dir) {
-		$this->importDir = (array)$this->importDir;
-		$this->importDir[] = $dir;
-	}
-
-	public function allParsedFiles() {
-		return $this->allParsedFiles;
-	}
-
-	public function addParsedFile($file) {
-		$this->allParsedFiles[realpath($file)] = filemtime($file);
-	}
-
-	/**
-	 * Uses the current value of $this->count to show line and line number
-	 */
-	public function throwError($msg = null) {
-		if ($this->sourceLoc >= 0) {
-			$this->sourceParser->throwError($msg, $this->sourceLoc);
-		}
-		throw new \Exception($msg);
-	}
-
-	// compile file $in to file $out if $in is newer than $out
-	// returns true when it compiles, false otherwise
-	public static function ccompile($in, $out, $less = null) {
-		if ($less === null) {
-			$less = new self;
-		}
-		return $less->checkedCompile($in, $out);
-	}
-
-	public static function cexecute($in, $force = false, $less = null) {
-		if ($less === null) {
-			$less = new self;
-		}
-		return $less->cachedCompile($in, $force);
-	}
-
-	static protected $cssColors = array(
-		'aliceblue' => '240,248,255',
-		'antiquewhite' => '250,235,215',
-		'aqua' => '0,255,255',
-		'aquamarine' => '127,255,212',
-		'azure' => '240,255,255',
-		'beige' => '245,245,220',
-		'bisque' => '255,228,196',
-		'black' => '0,0,0',
-		'blanchedalmond' => '255,235,205',
-		'blue' => '0,0,255',
-		'blueviolet' => '138,43,226',
-		'brown' => '165,42,42',
-		'burlywood' => '222,184,135',
-		'cadetblue' => '95,158,160',
-		'chartreuse' => '127,255,0',
-		'chocolate' => '210,105,30',
-		'coral' => '255,127,80',
-		'cornflowerblue' => '100,149,237',
-		'cornsilk' => '255,248,220',
-		'crimson' => '220,20,60',
-		'cyan' => '0,255,255',
-		'darkblue' => '0,0,139',
-		'darkcyan' => '0,139,139',
-		'darkgoldenrod' => '184,134,11',
-		'darkgray' => '169,169,169',
-		'darkgreen' => '0,100,0',
-		'darkgrey' => '169,169,169',
-		'darkkhaki' => '189,183,107',
-		'darkmagenta' => '139,0,139',
-		'darkolivegreen' => '85,107,47',
-		'darkorange' => '255,140,0',
-		'darkorchid' => '153,50,204',
-		'darkred' => '139,0,0',
-		'darksalmon' => '233,150,122',
-		'darkseagreen' => '143,188,143',
-		'darkslateblue' => '72,61,139',
-		'darkslategray' => '47,79,79',
-		'darkslategrey' => '47,79,79',
-		'darkturquoise' => '0,206,209',
-		'darkviolet' => '148,0,211',
-		'deeppink' => '255,20,147',
-		'deepskyblue' => '0,191,255',
-		'dimgray' => '105,105,105',
-		'dimgrey' => '105,105,105',
-		'dodgerblue' => '30,144,255',
-		'firebrick' => '178,34,34',
-		'floralwhite' => '255,250,240',
-		'forestgreen' => '34,139,34',
-		'fuchsia' => '255,0,255',
-		'gainsboro' => '220,220,220',
-		'ghostwhite' => '248,248,255',
-		'gold' => '255,215,0',
-		'goldenrod' => '218,165,32',
-		'gray' => '128,128,128',
-		'green' => '0,128,0',
-		'greenyellow' => '173,255,47',
-		'grey' => '128,128,128',
-		'honeydew' => '240,255,240',
-		'hotpink' => '255,105,180',
-		'indianred' => '205,92,92',
-		'indigo' => '75,0,130',
-		'ivory' => '255,255,240',
-		'khaki' => '240,230,140',
-		'lavender' => '230,230,250',
-		'lavenderblush' => '255,240,245',
-		'lawngreen' => '124,252,0',
-		'lemonchiffon' => '255,250,205',
-		'lightblue' => '173,216,230',
-		'lightcoral' => '240,128,128',
-		'lightcyan' => '224,255,255',
-		'lightgoldenrodyellow' => '250,250,210',
-		'lightgray' => '211,211,211',
-		'lightgreen' => '144,238,144',
-		'lightgrey' => '211,211,211',
-		'lightpink' => '255,182,193',
-		'lightsalmon' => '255,160,122',
-		'lightseagreen' => '32,178,170',
-		'lightskyblue' => '135,206,250',
-		'lightslategray' => '119,136,153',
-		'lightslategrey' => '119,136,153',
-		'lightsteelblue' => '176,196,222',
-		'lightyellow' => '255,255,224',
-		'lime' => '0,255,0',
-		'limegreen' => '50,205,50',
-		'linen' => '250,240,230',
-		'magenta' => '255,0,255',
-		'maroon' => '128,0,0',
-		'mediumaquamarine' => '102,205,170',
-		'mediumblue' => '0,0,205',
-		'mediumorchid' => '186,85,211',
-		'mediumpurple' => '147,112,219',
-		'mediumseagreen' => '60,179,113',
-		'mediumslateblue' => '123,104,238',
-		'mediumspringgreen' => '0,250,154',
-		'mediumturquoise' => '72,209,204',
-		'mediumvioletred' => '199,21,133',
-		'midnightblue' => '25,25,112',
-		'mintcream' => '245,255,250',
-		'mistyrose' => '255,228,225',
-		'moccasin' => '255,228,181',
-		'navajowhite' => '255,222,173',
-		'navy' => '0,0,128',
-		'oldlace' => '253,245,230',
-		'olive' => '128,128,0',
-		'olivedrab' => '107,142,35',
-		'orange' => '255,165,0',
-		'orangered' => '255,69,0',
-		'orchid' => '218,112,214',
-		'palegoldenrod' => '238,232,170',
-		'palegreen' => '152,251,152',
-		'paleturquoise' => '175,238,238',
-		'palevioletred' => '219,112,147',
-		'papayawhip' => '255,239,213',
-		'peachpuff' => '255,218,185',
-		'peru' => '205,133,63',
-		'pink' => '255,192,203',
-		'plum' => '221,160,221',
-		'powderblue' => '176,224,230',
-		'purple' => '128,0,128',
-		'red' => '255,0,0',
-		'rosybrown' => '188,143,143',
-		'royalblue' => '65,105,225',
-		'saddlebrown' => '139,69,19',
-		'salmon' => '250,128,114',
-		'sandybrown' => '244,164,96',
-		'seagreen' => '46,139,87',
-		'seashell' => '255,245,238',
-		'sienna' => '160,82,45',
-		'silver' => '192,192,192',
-		'skyblue' => '135,206,235',
-		'slateblue' => '106,90,205',
-		'slategray' => '112,128,144',
-		'slategrey' => '112,128,144',
-		'snow' => '255,250,250',
-		'springgreen' => '0,255,127',
-		'steelblue' => '70,130,180',
-		'tan' => '210,180,140',
-		'teal' => '0,128,128',
-		'thistle' => '216,191,216',
-		'tomato' => '255,99,71',
-		'transparent' => '0,0,0,0',
-		'turquoise' => '64,224,208',
-		'violet' => '238,130,238',
-		'wheat' => '245,222,179',
-		'white' => '255,255,255',
-		'whitesmoke' => '245,245,245',
-		'yellow' => '255,255,0',
-		'yellowgreen' => '154,205,50'
-	);
-}
-
-// responsible for taking a string of LESS code and converting it into a
-// syntax tree
-class lessc_parser {
-	static protected $nextBlockId = 0; // used to uniquely identify blocks
-
-	static protected $precedence = array(
-		'=<' => 0,
-		'>=' => 0,
-		'=' => 0,
-		'<' => 0,
-		'>' => 0,
-
-		'+' => 1,
-		'-' => 1,
-		'*' => 2,
-		'/' => 2,
-		'%' => 2,
-	);
-
-	static protected $whitePattern;
-	static protected $commentMulti;
-
-	static protected $commentSingle = "//";
-	static protected $commentMultiLeft = "/*";
-	static protected $commentMultiRight = "*/";
-
-	// regex string to match any of the operators
-	static protected $operatorString;
-
-	// these properties will supress division unless it's inside parenthases
-	static protected $supressDivisionProps =
-		array('/border-radius$/i', '/^font$/i');
-
-	protected $blockDirectives = array("font-face", "keyframes", "page", "-moz-document", "viewport", "-moz-viewport", "-o-viewport", "-ms-viewport");
-	protected $lineDirectives = array("charset");
-
-	/**
-	 * if we are in parens we can be more liberal with whitespace around
-	 * operators because it must evaluate to a single value and thus is less
-	 * ambiguous.
-	 *
-	 * Consider:
-	 *     property1: 10 -5; // is two numbers, 10 and -5
-	 *     property2: (10 -5); // should evaluate to 5
-	 */
-	protected $inParens = false;
-
-	// caches preg escaped literals
-	static protected $literalCache = array();
-
-	public function __construct($lessc, $sourceName = null) {
-		$this->eatWhiteDefault = true;
-		// reference to less needed for vPrefix, mPrefix, and parentSelector
-		$this->lessc = $lessc;
-
-		$this->sourceName = $sourceName; // name used for error messages
-
-		$this->writeComments = false;
-
-		if (!self::$operatorString) {
-			self::$operatorString =
-				'('.implode('|', array_map(array('lessc', 'preg_quote'),
-					array_keys(self::$precedence))).')';
-
-			$commentSingle = lessc::preg_quote(self::$commentSingle);
-			$commentMultiLeft = lessc::preg_quote(self::$commentMultiLeft);
-			$commentMultiRight = lessc::preg_quote(self::$commentMultiRight);
-
-			self::$commentMulti = $commentMultiLeft.'.*?'.$commentMultiRight;
-			self::$whitePattern = '/'.$commentSingle.'[^\n]*\s*|('.self::$commentMulti.')\s*|\s+/Ais';
-		}
-	}
-
-	public function parse($buffer) {
-		$this->count = 0;
-		$this->line = 1;
-
-		$this->env = null; // block stack
-		$this->buffer = $this->writeComments ? $buffer : $this->removeComments($buffer);
-		$this->pushSpecialBlock("root");
-		$this->eatWhiteDefault = true;
-		$this->seenComments = array();
-
-		// trim whitespace on head
-		// if (preg_match('/^\s+/', $this->buffer, $m)) {
-		// 	$this->line += substr_count($m[0], "\n");
-		// 	$this->buffer = ltrim($this->buffer);
-		// }
-		$this->whitespace();
-
-		// parse the entire file
-		while (false !== $this->parseChunk());
-
-		if ($this->count != strlen($this->buffer))
-			$this->throwError();
-
-		// TODO report where the block was opened
-		if ( !property_exists($this->env, 'parent') || !is_null($this->env->parent) )
-			throw new \Exception('parse error: unclosed block');
-
-		return $this->env;
-	}
-
-	/**
-	 * Parse a single chunk off the head of the buffer and append it to the
-	 * current parse environment.
-	 * Returns false when the buffer is empty, or when there is an error.
-	 *
-	 * This function is called repeatedly until the entire document is
-	 * parsed.
-	 *
-	 * This parser is most similar to a recursive descent parser. Single
-	 * functions represent discrete grammatical rules for the language, and
-	 * they are able to capture the text that represents those rules.
-	 *
-	 * Consider the function lessc::keyword(). (all parse functions are
-	 * structured the same)
-	 *
-	 * The function takes a single reference argument. When calling the
-	 * function it will attempt to match a keyword on the head of the buffer.
-	 * If it is successful, it will place the keyword in the referenced
-	 * argument, advance the position in the buffer, and return true. If it
-	 * fails then it won't advance the buffer and it will return false.
-	 *
-	 * All of these parse functions are powered by lessc::match(), which behaves
-	 * the same way, but takes a literal regular expression. Sometimes it is
-	 * more convenient to use match instead of creating a new function.
-	 *
-	 * Because of the format of the functions, to parse an entire string of
-	 * grammatical rules, you can chain them together using &&.
-	 *
-	 * But, if some of the rules in the chain succeed before one fails, then
-	 * the buffer position will be left at an invalid state. In order to
-	 * avoid this, lessc::seek() is used to remember and set buffer positions.
-	 *
-	 * Before parsing a chain, use $s = $this->seek() to remember the current
-	 * position into $s. Then if a chain fails, use $this->seek($s) to
-	 * go back where we started.
-	 */
-	protected function parseChunk() {
-		if (empty($this->buffer)) return false;
-		$s = $this->seek();
-
-		if ($this->whitespace()) {
-			return true;
-		}
-
-		// setting a property
-		if ($this->keyword($key) && $this->assign() &&
-			$this->propertyValue($value, $key) && $this->end())
-		{
-			$this->append(array('assign', $key, $value), $s);
-			return true;
-		} else {
-			$this->seek($s);
-		}
-
-
-		// look for special css blocks
-		if ($this->literal('@', false)) {
-			$this->count--;
-
-			// media
-			if ($this->literal('@media')) {
-				if (($this->mediaQueryList($mediaQueries) || true)
-					&& $this->literal('{'))
-				{
-					$media = $this->pushSpecialBlock("media");
-					$media->queries = is_null($mediaQueries) ? array() : $mediaQueries;
-					return true;
-				} else {
-					$this->seek($s);
-					return false;
-				}
-			}
-
-			if ($this->literal("@", false) && $this->keyword($dirName)) {
-				if ($this->isDirective($dirName, $this->blockDirectives)) {
-					if (($this->openString("{", $dirValue, null, array(";")) || true) &&
-						$this->literal("{"))
-					{
-						$dir = $this->pushSpecialBlock("directive");
-						$dir->name = $dirName;
-						if (isset($dirValue)) $dir->value = $dirValue;
-						return true;
-					}
-				} elseif ($this->isDirective($dirName, $this->lineDirectives)) {
-					if ($this->propertyValue($dirValue) && $this->end()) {
-						$this->append(array("directive", $dirName, $dirValue));
-						return true;
-					}
-				} elseif ($this->literal(":", true)) {
-					//Ruleset Definition
-					if (($this->openString("{", $dirValue, null, array(";")) || true) &&
-							$this->literal("{"))
-					{
-						$dir = $this->pushBlock($this->fixTags(array("@".$dirName)));
-						$dir->name = $dirName;
-						if (isset($dirValue)) $dir->value = $dirValue;
-						return true;
-					}
-				}
-			}
-
-			$this->seek($s);
-		}
-
-		// setting a variable
-		if ($this->variable($var) && $this->assign() &&
-			$this->propertyValue($value) && $this->end())
-		{
-			$this->append(array('assign', $var, $value), $s);
-			return true;
-		} else {
-			$this->seek($s);
-		}
-
-		if ($this->import($importValue)) {
-			$this->append($importValue, $s);
-			return true;
-		}
-
-		// opening parametric mixin
-		if ($this->tag($tag, true) && $this->argumentDef($args, $isVararg) &&
-			($this->guards($guards) || true) &&
-			$this->literal('{'))
-		{
-			$block = $this->pushBlock($this->fixTags(array($tag)));
-			$block->args = $args;
-			$block->isVararg = $isVararg;
-			if (!empty($guards)) $block->guards = $guards;
-			return true;
-		} else {
-			$this->seek($s);
-		}
-
-		// opening a simple block
-		if ($this->tags($tags) && $this->literal('{', false)) {
-			$tags = $this->fixTags($tags);
-			$this->pushBlock($tags);
-			return true;
-		} else {
-			$this->seek($s);
-		}
-
-		// closing a block
-		if ($this->literal('}', false)) {
-			try {
-				$block = $this->pop();
-			} catch (\Exception $e) {
-				$this->seek($s);
-				$this->throwError($e->getMessage());
-			}
-
-			$hidden = false;
-			if (is_null($block->type)) {
-				$hidden = true;
-				if (!isset($block->args)) {
-					foreach ($block->tags as $tag) {
-						if (!is_string($tag) || $tag{0} != $this->lessc->mPrefix) {
-							$hidden = false;
-							break;
-						}
-					}
-				}
-
-				foreach ($block->tags as $tag) {
-					if (is_string($tag)) {
-						$this->env->children[$tag][] = $block;
-					}
-				}
-			}
-
-			if (!$hidden) {
-				$this->append(array('block', $block), $s);
-			}
-
-			// this is done here so comments aren't bundled into he block that
-			// was just closed
-			$this->whitespace();
-			return true;
-		}
-
-		// mixin
-		if ($this->mixinTags($tags) &&
-			($this->argumentDef($argv, $isVararg) || true) &&
-			($this->keyword($suffix) || true) && $this->end())
-		{
-			$tags = $this->fixTags($tags);
-			$this->append(array('mixin', $tags, $argv, $suffix), $s);
-			return true;
-		} else {
-			$this->seek($s);
-		}
-
-		// spare ;
-		if ($this->literal(';')) return true;
-
-		return false; // got nothing, throw error
-	}
-
-	protected function isDirective($dirname, $directives) {
-		// TODO: cache pattern in parser
-		$pattern = implode("|",
-			array_map(array("lessc", "preg_quote"), $directives));
-		$pattern = '/^(-[a-z-]+-)?(' . $pattern . ')$/i';
-
-		return preg_match($pattern, $dirname);
-	}
-
-	protected function fixTags($tags) {
-		// move @ tags out of variable namespace
-		foreach ($tags as &$tag) {
-			if ($tag{0} == $this->lessc->vPrefix)
-				$tag[0] = $this->lessc->mPrefix;
-		}
-		return $tags;
-	}
-
-	// a list of expressions
-	protected function expressionList(&$exps) {
-		$values = array();
-
-		while ($this->expression($exp)) {
-			$values[] = $exp;
-		}
-
-		if (count($values) == 0) return false;
-
-		$exps = lessc::compressList($values, ' ');
-		return true;
-	}
-
-	/**
-	 * Attempt to consume an expression.
-	 * @link http://en.wikipedia.org/wiki/Operator-precedence_parser#Pseudo-code
-	 */
-	protected function expression(&$out) {
-		if ($this->value($lhs)) {
-			$out = $this->expHelper($lhs, 0);
-
-			// look for / shorthand
-			if (!empty($this->env->supressedDivision)) {
-				unset($this->env->supressedDivision);
-				$s = $this->seek();
-				if ($this->literal("/") && $this->value($rhs)) {
-					$out = array("list", "",
-						array($out, array("keyword", "/"), $rhs));
-				} else {
-					$this->seek($s);
-				}
-			}
-
-			return true;
-		}
-		return false;
-	}
-
-	/**
-	 * recursively parse infix equation with $lhs at precedence $minP
-	 */
-	protected function expHelper($lhs, $minP) {
-		$this->inExp = true;
-		$ss = $this->seek();
-
-		while (true) {
-			$whiteBefore = isset($this->buffer[$this->count - 1]) &&
-				ctype_space($this->buffer[$this->count - 1]);
-
-			// If there is whitespace before the operator, then we require
-			// whitespace after the operator for it to be an expression
-			$needWhite = $whiteBefore && !$this->inParens;
-
-			if ($this->match(self::$operatorString.($needWhite ? '\s' : ''), $m) && self::$precedence[$m[1]] >= $minP) {
-				if (!$this->inParens && isset($this->env->currentProperty) && $m[1] == "/" && empty($this->env->supressedDivision)) {
-					foreach (self::$supressDivisionProps as $pattern) {
-						if (preg_match($pattern, $this->env->currentProperty)) {
-							$this->env->supressedDivision = true;
-							break 2;
-						}
-					}
-				}
-
-
-				$whiteAfter = isset($this->buffer[$this->count - 1]) &&
-					ctype_space($this->buffer[$this->count - 1]);
-
-				if (!$this->value($rhs)) break;
-
-				// peek for next operator to see what to do with rhs
-				if ($this->peek(self::$operatorString, $next) && self::$precedence[$next[1]] > self::$precedence[$m[1]]) {
-					$rhs = $this->expHelper($rhs, self::$precedence[$next[1]]);
-				}
-
-				$lhs = array('expression', $m[1], $lhs, $rhs, $whiteBefore, $whiteAfter);
-				$ss = $this->seek();
-
-				continue;
-			}
-
-			break;
-		}
-
-		$this->seek($ss);
-
-		return $lhs;
-	}
-
-	// consume a list of values for a property
-	public function propertyValue(&$value, $keyName = null) {
-		$values = array();
-
-		if ($keyName !== null) $this->env->currentProperty = $keyName;
-
-		$s = null;
-		while ($this->expressionList($v)) {
-			$values[] = $v;
-			$s = $this->seek();
-			if (!$this->literal(',')) break;
-		}
-
-		if ($s) $this->seek($s);
-
-		if ($keyName !== null) unset($this->env->currentProperty);
-
-		if (count($values) == 0) return false;
-
-		$value = lessc::compressList($values, ', ');
-		return true;
-	}
-
-	protected function parenValue(&$out) {
-		$s = $this->seek();
-
-		// speed shortcut
-		if (isset($this->buffer[$this->count]) && $this->buffer[$this->count] != "(") {
-			return false;
-		}
-
-		$inParens = $this->inParens;
-		if ($this->literal("(") &&
-			($this->inParens = true) && $this->expression($exp) &&
-			$this->literal(")"))
-		{
-			$out = $exp;
-			$this->inParens = $inParens;
-			return true;
-		} else {
-			$this->inParens = $inParens;
-			$this->seek($s);
-		}
-
-		return false;
-	}
-
-	// a single value
-	protected function value(&$value) {
-		$s = $this->seek();
-
-		// speed shortcut
-		if (isset($this->buffer[$this->count]) && $this->buffer[$this->count] == "-") {
-			// negation
-			if ($this->literal("-", false) &&
-				(($this->variable($inner) && $inner = array("variable", $inner)) ||
-				$this->unit($inner) ||
-				$this->parenValue($inner)))
-			{
-				$value = array("unary", "-", $inner);
-				return true;
-			} else {
-				$this->seek($s);
-			}
-		}
-
-		if ($this->parenValue($value)) return true;
-		if ($this->unit($value)) return true;
-		if ($this->color($value)) return true;
-		if ($this->func($value)) return true;
-		if ($this->stringValue($value)) return true;
-
-		if ($this->keyword($word)) {
-			$value = array('keyword', $word);
-			return true;
-		}
-
-		// try a variable
-		if ($this->variable($var)) {
-			$value = array('variable', $var);
-			return true;
-		}
-
-		// unquote string (should this work on any type?
-		if ($this->literal("~") && $this->stringValue($str)) {
-			$value = array("escape", $str);
-			return true;
-		} else {
-			$this->seek($s);
-		}
-
-		// css hack: \0
-		if ($this->literal('\\') && $this->match('([0-9]+)', $m)) {
-			$value = array('keyword', '\\'.$m[1]);
-			return true;
-		} else {
-			$this->seek($s);
-		}
-
-		return false;
-	}
-
-	// an import statement
-	protected function import(&$out) {
-		if (!$this->literal('@import')) return false;
-
-		// @import "something.css" media;
-		// @import url("something.css") media;
-		// @import url(something.css) media;
-
-		if ($this->propertyValue($value)) {
-			$out = array("import", $value);
-			return true;
-		}
-	}
-
-	protected function mediaQueryList(&$out) {
-		if ($this->genericList($list, "mediaQuery", ",", false)) {
-			$out = $list[2];
-			return true;
-		}
-		return false;
-	}
-
-	protected function mediaQuery(&$out) {
-		$s = $this->seek();
-
-		$expressions = null;
-		$parts = array();
-
-		if (($this->literal("only") && ($only = true) || $this->literal("not") && ($not = true) || true) && $this->keyword($mediaType)) {
-			$prop = array("mediaType");
-			if (isset($only)) $prop[] = "only";
-			if (isset($not)) $prop[] = "not";
-			$prop[] = $mediaType;
-			$parts[] = $prop;
-		} else {
-			$this->seek($s);
-		}
-
-
-		if (!empty($mediaType) && !$this->literal("and")) {
-			// ~
-		} else {
-			$this->genericList($expressions, "mediaExpression", "and", false);
-			if (is_array($expressions)) $parts = array_merge($parts, $expressions[2]);
-		}
-
-		if (count($parts) == 0) {
-			$this->seek($s);
-			return false;
-		}
-
-		$out = $parts;
-		return true;
-	}
-
-	protected function mediaExpression(&$out) {
-		$s = $this->seek();
-		$value = null;
-		if ($this->literal("(") &&
-			$this->keyword($feature) &&
-			($this->literal(":") && $this->expression($value) || true) &&
-			$this->literal(")"))
-		{
-			$out = array("mediaExp", $feature);
-			if ($value) $out[] = $value;
-			return true;
-		} elseif ($this->variable($variable)) {
-			$out = array('variable', $variable);
-			return true;
-		}
-
-		$this->seek($s);
-		return false;
-	}
-
-	// an unbounded string stopped by $end
-	protected function openString($end, &$out, $nestingOpen=null, $rejectStrs = null) {
-		$oldWhite = $this->eatWhiteDefault;
-		$this->eatWhiteDefault = false;
-
-		$stop = array("'", '"', "@{", $end);
-		$stop = array_map(array("lessc", "preg_quote"), $stop);
-		// $stop[] = self::$commentMulti;
-
-		if (!is_null($rejectStrs)) {
-			$stop = array_merge($stop, $rejectStrs);
-		}
-
-		$patt = '(.*?)('.implode("|", $stop).')';
-
-		$nestingLevel = 0;
-
-		$content = array();
-		while ($this->match($patt, $m, false)) {
-			if (!empty($m[1])) {
-				$content[] = $m[1];
-				if ($nestingOpen) {
-					$nestingLevel += substr_count($m[1], $nestingOpen);
-				}
-			}
-
-			$tok = $m[2];
-
-			$this->count-= strlen($tok);
-			if ($tok == $end) {
-				if ($nestingLevel == 0) {
-					break;
-				} else {
-					$nestingLevel--;
-				}
-			}
-
-			if (($tok == "'" || $tok == '"') && $this->stringValue($str)) {
-				$content[] = $str;
-				continue;
-			}
-
-			if ($tok == "@{" && $this->interpolation($inter)) {
-				$content[] = $inter;
-				continue;
-			}
-
-			if (!empty($rejectStrs) && in_array($tok, $rejectStrs)) {
-				break;
-			}
-
-			$content[] = $tok;
-			$this->count+= strlen($tok);
-		}
-
-		$this->eatWhiteDefault = $oldWhite;
-
-		if (count($content) == 0) return false;
-
-		// trim the end
-		if (is_string(end($content))) {
-			$content[count($content) - 1] = rtrim(end($content));
-		}
-
-		$out = array("string", "", $content);
-		return true;
-	}
-
-	protected function stringValue(&$out) {
-		$s = $this->seek();
-		if ($this->literal('"', false)) {
-			$delim = '"';
-		} elseif ($this->literal("'", false)) {
-			$delim = "'";
-		} else {
-			return false;
-		}
-
-		$content = array();
-
-		// look for either ending delim , escape, or string interpolation
-		$patt = '([^\n]*?)(@\{|\\\\|' .
-			lessc::preg_quote($delim).')';
-
-		$oldWhite = $this->eatWhiteDefault;
-		$this->eatWhiteDefault = false;
-
-		while ($this->match($patt, $m, false)) {
-			$content[] = $m[1];
-			if ($m[2] == "@{") {
-				$this->count -= strlen($m[2]);
-				if ($this->interpolation($inter, false)) {
-					$content[] = $inter;
-				} else {
-					$this->count += strlen($m[2]);
-					$content[] = "@{"; // ignore it
-				}
-			} elseif ($m[2] == '\\') {
-				$content[] = $m[2];
-				if ($this->literal($delim, false)) {
-					$content[] = $delim;
-				}
-			} else {
-				$this->count -= strlen($delim);
-				break; // delim
-			}
-		}
-
-		$this->eatWhiteDefault = $oldWhite;
-
-		if ($this->literal($delim)) {
-			$out = array("string", $delim, $content);
-			return true;
-		}
-
-		$this->seek($s);
-		return false;
-	}
-
-	protected function interpolation(&$out) {
-		$oldWhite = $this->eatWhiteDefault;
-		$this->eatWhiteDefault = true;
-
-		$s = $this->seek();
-		if ($this->literal("@{") &&
-			$this->openString("}", $interp, null, array("'", '"', ";")) &&
-			$this->literal("}", false))
-		{
-			$out = array("interpolate", $interp);
-			$this->eatWhiteDefault = $oldWhite;
-			if ($this->eatWhiteDefault) $this->whitespace();
-			return true;
-		}
-
-		$this->eatWhiteDefault = $oldWhite;
-		$this->seek($s);
-		return false;
-	}
-
-	protected function unit(&$unit) {
-		// speed shortcut
-		if (isset($this->buffer[$this->count])) {
-			$char = $this->buffer[$this->count];
-			if (!ctype_digit($char) && $char != ".") return false;
-		}
-
-		if ($this->match('([0-9]+(?:\.[0-9]*)?|\.[0-9]+)([%a-zA-Z]+)?', $m)) {
-			$unit = array("number", $m[1], empty($m[2]) ? "" : $m[2]);
-			return true;
-		}
-		return false;
-	}
-
-	// a # color
-	protected function color(&$out) {
-		if ($this->match('(#(?:[0-9a-f]{8}|[0-9a-f]{6}|[0-9a-f]{3}))', $m)) {
-			if (strlen($m[1]) > 7) {
-				$out = array("string", "", array($m[1]));
-			} else {
-				$out = array("raw_color", $m[1]);
-			}
-			return true;
-		}
-
-		return false;
-	}
-
-	// consume an argument definition list surrounded by ()
-	// each argument is a variable name with optional value
-	// or at the end a ... or a variable named followed by ...
-	// arguments are separated by , unless a ; is in the list, then ; is the
-	// delimiter.
-	protected function argumentDef(&$args, &$isVararg) {
-		$s = $this->seek();
-		if (!$this->literal('(')) return false;
-
-		$values = array();
-		$delim = ",";
-		$method = "expressionList";
-
-		$isVararg = false;
-		while (true) {
-			if ($this->literal("...")) {
-				$isVararg = true;
-				break;
-			}
-
-			if ($this->$method($value)) {
-				if ($value[0] == "variable") {
-					$arg = array("arg", $value[1]);
-					$ss = $this->seek();
-
-					if ($this->assign() && $this->$method($rhs)) {
-						$arg[] = $rhs;
-					} else {
-						$this->seek($ss);
-						if ($this->literal("...")) {
-							$arg[0] = "rest";
-							$isVararg = true;
-						}
-					}
-
-					$values[] = $arg;
-					if ($isVararg) break;
-					continue;
-				} else {
-					$values[] = array("lit", $value);
-				}
-			}
-
-
-			if (!$this->literal($delim)) {
-				if ($delim == "," && $this->literal(";")) {
-					// found new delim, convert existing args
-					$delim = ";";
-					$method = "propertyValue";
-
-					// transform arg list
-					if (isset($values[1])) { // 2 items
-						$newList = array();
-						foreach ($values as $i => $arg) {
-							switch($arg[0]) {
-							case "arg":
-								if ($i) {
-									$this->throwError("Cannot mix ; and , as delimiter types");
-								}
-								$newList[] = $arg[2];
-								break;
-							case "lit":
-								$newList[] = $arg[1];
-								break;
-							case "rest":
-								$this->throwError("Unexpected rest before semicolon");
-							}
-						}
-
-						$newList = array("list", ", ", $newList);
-
-						switch ($values[0][0]) {
-						case "arg":
-							$newArg = array("arg", $values[0][1], $newList);
-							break;
-						case "lit":
-							$newArg = array("lit", $newList);
-							break;
-						}
-
-					} elseif ($values) { // 1 item
-						$newArg = $values[0];
-					}
-
-					if ($newArg) {
-						$values = array($newArg);
-					}
-				} else {
-					break;
-				}
-			}
-		}
-
-		if (!$this->literal(')')) {
-			$this->seek($s);
-			return false;
-		}
-
-		$args = $values;
-
-		return true;
-	}
-
-	// consume a list of tags
-	// this accepts a hanging delimiter
-	protected function tags(&$tags, $simple = false, $delim = ',') {
-		$tags = array();
-		while ($this->tag($tt, $simple)) {
-			$tags[] = $tt;
-			if (!$this->literal($delim)) break;
-		}
-		if (count($tags) == 0) return false;
-
-		return true;
-	}
-
-	// list of tags of specifying mixin path
-	// optionally separated by > (lazy, accepts extra >)
-	protected function mixinTags(&$tags) {
-		$tags = array();
-		while ($this->tag($tt, true)) {
-			$tags[] = $tt;
-			$this->literal(">");
-		}
-
-		if (count($tags) == 0) return false;
-
-		return true;
-	}
-
-	// a bracketed value (contained within in a tag definition)
-	protected function tagBracket(&$parts, &$hasExpression) {
-		// speed shortcut
-		if (isset($this->buffer[$this->count]) && $this->buffer[$this->count] != "[") {
-			return false;
-		}
-
-		$s = $this->seek();
-
-		$hasInterpolation = false;
-
-		if ($this->literal("[", false)) {
-			$attrParts = array("[");
-			// keyword, string, operator
-			while (true) {
-				if ($this->literal("]", false)) {
-					$this->count--;
-					break; // get out early
-				}
-
-				if ($this->match('\s+', $m)) {
-					$attrParts[] = " ";
-					continue;
-				}
-				if ($this->stringValue($str)) {
-					// escape parent selector, (yuck)
-					foreach ($str[2] as &$chunk) {
-						$chunk = str_replace($this->lessc->parentSelector, "$&$", $chunk);
-					}
-
-					$attrParts[] = $str;
-					$hasInterpolation = true;
-					continue;
-				}
-
-				if ($this->keyword($word)) {
-					$attrParts[] = $word;
-					continue;
-				}
-
-				if ($this->interpolation($inter, false)) {
-					$attrParts[] = $inter;
-					$hasInterpolation = true;
-					continue;
-				}
-
-				// operator, handles attr namespace too
-				if ($this->match('[|-~\$\*\^=]+', $m)) {
-					$attrParts[] = $m[0];
-					continue;
-				}
-
-				break;
-			}
-
-			if ($this->literal("]", false)) {
-				$attrParts[] = "]";
-				foreach ($attrParts as $part) {
-					$parts[] = $part;
-				}
-				$hasExpression = $hasExpression || $hasInterpolation;
-				return true;
-			}
-			$this->seek($s);
-		}
-
-		$this->seek($s);
-		return false;
-	}
-
-	// a space separated list of selectors
-	protected function tag(&$tag, $simple = false) {
-		if ($simple)
-			$chars = '^@,:;{}\][>\(\) "\'';
-		else
-			$chars = '^@,;{}["\'';
-
-		$s = $this->seek();
-
-		$hasExpression = false;
-		$parts = array();
-		while ($this->tagBracket($parts, $hasExpression));
-
-		$oldWhite = $this->eatWhiteDefault;
-		$this->eatWhiteDefault = false;
-
-		while (true) {
-			if ($this->match('(['.$chars.'0-9]['.$chars.']*)', $m)) {
-				$parts[] = $m[1];
-				if ($simple) break;
-
-				while ($this->tagBracket($parts, $hasExpression));
-				continue;
-			}
-
-			if (isset($this->buffer[$this->count]) && $this->buffer[$this->count] == "@") {
-				if ($this->interpolation($interp)) {
-					$hasExpression = true;
-					$interp[2] = true; // don't unescape
-					$parts[] = $interp;
-					continue;
-				}
-
-				if ($this->literal("@")) {
-					$parts[] = "@";
-					continue;
-				}
-			}
-
-			if ($this->unit($unit)) { // for keyframes
-				$parts[] = $unit[1];
-				$parts[] = $unit[2];
-				continue;
-			}
-
-			break;
-		}
-
-		$this->eatWhiteDefault = $oldWhite;
-		if (!$parts) {
-			$this->seek($s);
-			return false;
-		}
-
-		if ($hasExpression) {
-			$tag = array("exp", array("string", "", $parts));
-		} else {
-			$tag = trim(implode($parts));
-		}
-
-		$this->whitespace();
-		return true;
-	}
-
-	// a css function
-	protected function func(&$func) {
-		$s = $this->seek();
-
-		if ($this->match('(%|[\w\-_][\w\-_:\.]+|[\w_])', $m) && $this->literal('(')) {
-			$fname = $m[1];
-
-			$sPreArgs = $this->seek();
-
-			$args = array();
-			while (true) {
-				$ss = $this->seek();
-				// this ugly nonsense is for ie filter properties
-				if ($this->keyword($name) && $this->literal('=') && $this->expressionList($value)) {
-					$args[] = array("string", "", array($name, "=", $value));
-				} else {
-					$this->seek($ss);
-					if ($this->expressionList($value)) {
-						$args[] = $value;
-					}
-				}
-
-				if (!$this->literal(',')) break;
-			}
-			$args = array('list', ',', $args);
-
-			if ($this->literal(')')) {
-				$func = array('function', $fname, $args);
-				return true;
-			} elseif ($fname == 'url') {
-				// couldn't parse and in url? treat as string
-				$this->seek($sPreArgs);
-				if ($this->openString(")", $string) && $this->literal(")")) {
-					$func = array('function', $fname, $string);
-					return true;
-				}
-			}
-		}
-
-		$this->seek($s);
-		return false;
-	}
-
-	// consume a less variable
-	protected function variable(&$name) {
-		$s = $this->seek();
-		if ($this->literal($this->lessc->vPrefix, false) &&
-			($this->variable($sub) || $this->keyword($name)))
-		{
-			if (!empty($sub)) {
-				$name = array('variable', $sub);
-			} else {
-				$name = $this->lessc->vPrefix.$name;
-			}
-			return true;
-		}
-
-		$name = null;
-		$this->seek($s);
-		return false;
-	}
-
-	/**
-	 * Consume an assignment operator
-	 * Can optionally take a name that will be set to the current property name
-	 */
-	protected function assign($name = null) {
-		if ($name) $this->currentProperty = $name;
-		return $this->literal(':') || $this->literal('=');
-	}
-
-	// consume a keyword
-	protected function keyword(&$word) {
-		if ($this->match('([\w_\-\*!"][\w\-_"]*)', $m)) {
-			$word = $m[1];
-			return true;
-		}
-		return false;
-	}
-
-	// consume an end of statement delimiter
-	protected function end() {
-		if ($this->literal(';', false)) {
-			return true;
-		} elseif ($this->count == strlen($this->buffer) || $this->buffer[$this->count] == '}') {
-			// if there is end of file or a closing block next then we don't need a ;
-			return true;
-		}
-		return false;
-	}
-
-	protected function guards(&$guards) {
-		$s = $this->seek();
-
-		if (!$this->literal("when")) {
-			$this->seek($s);
-			return false;
-		}
-
-		$guards = array();
-
-		while ($this->guardGroup($g)) {
-			$guards[] = $g;
-			if (!$this->literal(",")) break;
-		}
-
-		if (count($guards) == 0) {
-			$guards = null;
-			$this->seek($s);
-			return false;
-		}
-
-		return true;
-	}
-
-	// a bunch of guards that are and'd together
-	// TODO rename to guardGroup
-	protected function guardGroup(&$guardGroup) {
-		$s = $this->seek();
-		$guardGroup = array();
-		while ($this->guard($guard)) {
-			$guardGroup[] = $guard;
-			if (!$this->literal("and")) break;
-		}
-
-		if (count($guardGroup) == 0) {
-			$guardGroup = null;
-			$this->seek($s);
-			return false;
-		}
-
-		return true;
-	}
-
-	protected function guard(&$guard) {
-		$s = $this->seek();
-		$negate = $this->literal("not");
-
-		if ($this->literal("(") && $this->expression($exp) && $this->literal(")")) {
-			$guard = $exp;
-			if ($negate) $guard = array("negate", $guard);
-			return true;
-		}
-
-		$this->seek($s);
-		return false;
-	}
-
-	/* raw parsing functions */
-
-	protected function literal($what, $eatWhitespace = null) {
-		if ($eatWhitespace === null) $eatWhitespace = $this->eatWhiteDefault;
-
-		// shortcut on single letter
-		if (!isset($what[1]) && isset($this->buffer[$this->count])) {
-			if ($this->buffer[$this->count] == $what) {
-				if (!$eatWhitespace) {
-					$this->count++;
-					return true;
-				}
-				// goes below...
-			} else {
-				return false;
-			}
-		}
-
-		if (!isset(self::$literalCache[$what])) {
-			self::$literalCache[$what] = lessc::preg_quote($what);
-		}
-
-		return $this->match(self::$literalCache[$what], $m, $eatWhitespace);
-	}
-
-	protected function genericList(&$out, $parseItem, $delim="", $flatten=true) {
-		$s = $this->seek();
-		$items = array();
-		while ($this->$parseItem($value)) {
-			$items[] = $value;
-			if ($delim) {
-				if (!$this->literal($delim)) break;
-			}
-		}
-
-		if (count($items) == 0) {
-			$this->seek($s);
-			return false;
-		}
-
-		if ($flatten && count($items) == 1) {
-			$out = $items[0];
-		} else {
-			$out = array("list", $delim, $items);
-		}
-
-		return true;
-	}
-
-
-	// advance counter to next occurrence of $what
-	// $until - don't include $what in advance
-	// $allowNewline, if string, will be used as valid char set
-	protected function to($what, &$out, $until = false, $allowNewline = false) {
-		if (is_string($allowNewline)) {
-			$validChars = $allowNewline;
-		} else {
-			$validChars = $allowNewline ? "." : "[^\n]";
-		}
-		if (!$this->match('('.$validChars.'*?)'.lessc::preg_quote($what), $m, !$until)) return false;
-		if ($until) $this->count -= strlen($what); // give back $what
-		$out = $m[1];
-		return true;
-	}
-
-	// try to match something on head of buffer
-	protected function match($regex, &$out, $eatWhitespace = null) {
-		if ($eatWhitespace === null) $eatWhitespace = $this->eatWhiteDefault;
-
-		$r = '/'.$regex.($eatWhitespace && !$this->writeComments ? '\s*' : '').'/Ais';
-		if (preg_match($r, $this->buffer, $out, null, $this->count)) {
-			$this->count += strlen($out[0]);
-			if ($eatWhitespace && $this->writeComments) $this->whitespace();
-			return true;
-		}
-		return false;
-	}
-
-	// match some whitespace
-	protected function whitespace() {
-		if ($this->writeComments) {
-			$gotWhite = false;
-			while (preg_match(self::$whitePattern, $this->buffer, $m, null, $this->count)) {
-				if (isset($m[1]) && empty($this->seenComments[$this->count])) {
-					$this->append(array("comment", $m[1]));
-					$this->seenComments[$this->count] = true;
-				}
-				$this->count += strlen($m[0]);
-				$gotWhite = true;
-			}
-			return $gotWhite;
-		} else {
-			$this->match("", $m);
-			return strlen($m[0]) > 0;
-		}
-	}
-
-	// match something without consuming it
-	protected function peek($regex, &$out = null, $from=null) {
-		if (is_null($from)) $from = $this->count;
-		$r = '/'.$regex.'/Ais';
-		$result = preg_match($r, $this->buffer, $out, null, $from);
-
-		return $result;
-	}
-
-	// seek to a spot in the buffer or return where we are on no argument
-	protected function seek($where = null) {
-		if ($where === null) return $this->count;
-		else $this->count = $where;
-		return true;
-	}
-
-	/* misc functions */
-
-	public function throwError($msg = "parse error", $count = null) {
-		$count = is_null($count) ? $this->count : $count;
-
-		$line = $this->line +
-			substr_count(substr($this->buffer, 0, $count), "\n");
-
-		if (!empty($this->sourceName)) {
-			$loc = "$this->sourceName on line $line";
-		} else {
-			$loc = "line: $line";
-		}
-
-		// TODO this depends on $this->count
-		if ($this->peek("(.*?)(\n|$)", $m, $count)) {
-			throw new \Exception("$msg: failed at `$m[1]` $loc");
-		} else {
-			throw new \Exception("$msg: $loc");
-		}
-	}
-
-	protected function pushBlock($selectors=null, $type=null) {
-		$b = new \stdClass();
-		$b->parent = $this->env;
-
-		$b->type = $type;
-		$b->id = self::$nextBlockId++;
-
-		$b->isVararg = false; // TODO: kill me from here
-		$b->tags = $selectors;
-
-		$b->props = array();
-		$b->children = array();
-
-        // add a reference to the parser so
-        // we can access the parser to throw errors
-        // or retrieve the sourceName of this block.
-        $b->parser = $this;
-
-        // so we know the position of this block
-        $b->count = $this->count;
-
-		$this->env = $b;
-		return $b;
-	}
-
-	// push a block that doesn't multiply tags
-	protected function pushSpecialBlock($type) {
-		return $this->pushBlock(null, $type);
-	}
-
-	// append a property to the current block
-	protected function append($prop, $pos = null) {
-		if ($pos !== null) $prop[-1] = $pos;
-		$this->env->props[] = $prop;
-	}
-
-	// pop something off the stack
-	protected function pop() {
-		$old = $this->env;
-		$this->env = $this->env->parent;
-		return $old;
-	}
-
-	// remove comments from $text
-	// todo: make it work for all functions, not just url
-	protected function removeComments($text) {
-		$look = array(
-			'url(', '//', '/*', '"', "'"
-		);
-
-		$out = '';
-		$min = null;
-		while (true) {
-			// find the next item
-			foreach ($look as $token) {
-				$pos = strpos($text, $token);
-				if ($pos !== false) {
-					if (!isset($min) || $pos < $min[1]) $min = array($token, $pos);
-				}
-			}
-
-			if (is_null($min)) break;
-
-			$count = $min[1];
-			$skip = 0;
-			$newlines = 0;
-			switch ($min[0]) {
-			case 'url(':
-				if (preg_match('/url\(.*?\)/', $text, $m, 0, $count))
-					$count += strlen($m[0]) - strlen($min[0]);
-				break;
-			case '"':
-			case "'":
-				if (preg_match('/'.$min[0].'.*?(?<!\\\\)'.$min[0].'/', $text, $m, 0, $count))
-					$count += strlen($m[0]) - 1;
-				break;
-			case '//':
-				$skip = strpos($text, "\n", $count);
-				if ($skip === false) $skip = strlen($text) - $count;
-				else $skip -= $count;
-				break;
-			case '/*':
-				if (preg_match('/\/\*.*?\*\//s', $text, $m, 0, $count)) {
-					$skip = strlen($m[0]);
-					$newlines = substr_count($m[0], "\n");
-				}
-				break;
-			}
-
-			if ($skip == 0) $count += strlen($min[0]);
-
-			$out .= substr($text, 0, $count).str_repeat("\n", $newlines);
-			$text = substr($text, $count + $skip);
-
-			$min = null;
-		}
-
-		return $out.$text;
-	}
-
-}
-
-class lessc_formatter_classic {
-	public $indentChar = "  ";
-
-	public $break = "\n";
-	public $open = " {";
-	public $close = "}";
-	public $selectorSeparator = ", ";
-	public $assignSeparator = ":";
-
-	public $openSingle = " { ";
-	public $closeSingle = " }";
-
-	public $disableSingle = false;
-	public $breakSelectors = false;
-
-	public $compressColors = false;
-
-	public function __construct() {
-		$this->indentLevel = 0;
-	}
-
-	public function indentStr($n = 0) {
-		return str_repeat($this->indentChar, max($this->indentLevel + $n, 0));
-	}
-
-	public function property($name, $value) {
-		return $name . $this->assignSeparator . $value . ";";
-	}
-
-	protected function isEmpty($block) {
-		if (empty($block->lines)) {
-			foreach ($block->children as $child) {
-				if (!$this->isEmpty($child)) return false;
-			}
-
-			return true;
-		}
-		return false;
-	}
-
-	public function block($block) {
-		if ($this->isEmpty($block)) return;
-
-		$inner = $pre = $this->indentStr();
-
-		$isSingle = !$this->disableSingle &&
-			is_null($block->type) && count($block->lines) == 1;
-
-		if (!empty($block->selectors)) {
-			$this->indentLevel++;
-
-			if ($this->breakSelectors) {
-				$selectorSeparator = $this->selectorSeparator . $this->break . $pre;
-			} else {
-				$selectorSeparator = $this->selectorSeparator;
-			}
-
-			echo $pre .
-				implode($selectorSeparator, $block->selectors);
-			if ($isSingle) {
-				echo $this->openSingle;
-				$inner = "";
-			} else {
-				echo $this->open . $this->break;
-				$inner = $this->indentStr();
-			}
-
-		}
-
-		if (!empty($block->lines)) {
-			$glue = $this->break.$inner;
-			echo $inner . implode($glue, $block->lines);
-			if (!$isSingle && !empty($block->children)) {
-				echo $this->break;
-			}
-		}
-
-		foreach ($block->children as $child) {
-			$this->block($child);
-		}
-
-		if (!empty($block->selectors)) {
-			if (!$isSingle && empty($block->children)) echo $this->break;
-
-			if ($isSingle) {
-				echo $this->closeSingle . $this->break;
-			} else {
-				echo $pre . $this->close . $this->break;
-			}
-
-			$this->indentLevel--;
-		}
-	}
-}
-
-class lessc_formatter_compressed extends lessc_formatter_classic {
-	public $disableSingle = true;
-	public $open = "{";
-	public $selectorSeparator = ",";
-	public $assignSeparator = ":";
-	public $break = "";
-	public $compressColors = true;
-
-	public function indentStr($n = 0) {
-		return "";
-	}
-}
-
-class lessc_formatter_lessjs extends lessc_formatter_classic {
-	public $disableSingle = true;
-	public $breakSelectors = true;
-	public $assignSeparator = ": ";
-	public $selectorSeparator = ",";
-}
-
-
diff --git a/wiki/vendor/openpsa/universalfeedcreator/README.md b/wiki/vendor/openpsa/universalfeedcreator/README.md
deleted file mode 100644
index 4f4c723..0000000
--- a/wiki/vendor/openpsa/universalfeedcreator/README.md
+++ /dev/null
@@ -1,161 +0,0 @@
-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/wiki/vendor/openpsa/universalfeedcreator/lib/Creator/AtomCreator03.php b/wiki/vendor/openpsa/universalfeedcreator/lib/Creator/AtomCreator03.php
deleted file mode 100644
index 5f80a75..0000000
--- a/wiki/vendor/openpsa/universalfeedcreator/lib/Creator/AtomCreator03.php
+++ /dev/null
@@ -1,95 +0,0 @@
-<?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/wiki/vendor/openpsa/universalfeedcreator/lib/Creator/AtomCreator10.php b/wiki/vendor/openpsa/universalfeedcreator/lib/Creator/AtomCreator10.php
deleted file mode 100644
index db7314e..0000000
--- a/wiki/vendor/openpsa/universalfeedcreator/lib/Creator/AtomCreator10.php
+++ /dev/null
@@ -1,163 +0,0 @@
-<?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/wiki/vendor/openpsa/universalfeedcreator/lib/Creator/FeedCreator.php b/wiki/vendor/openpsa/universalfeedcreator/lib/Creator/FeedCreator.php
deleted file mode 100644
index d5e99cd..0000000
--- a/wiki/vendor/openpsa/universalfeedcreator/lib/Creator/FeedCreator.php
+++ /dev/null
@@ -1,274 +0,0 @@
-<?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/wiki/vendor/openpsa/universalfeedcreator/lib/Creator/GPXCreator.php b/wiki/vendor/openpsa/universalfeedcreator/lib/Creator/GPXCreator.php
deleted file mode 100644
index e8df308..0000000
--- a/wiki/vendor/openpsa/universalfeedcreator/lib/Creator/GPXCreator.php
+++ /dev/null
@@ -1,50 +0,0 @@
-<?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/wiki/vendor/openpsa/universalfeedcreator/lib/Creator/HTMLCreator.php b/wiki/vendor/openpsa/universalfeedcreator/lib/Creator/HTMLCreator.php
deleted file mode 100644
index 9b6f8b5..0000000
--- a/wiki/vendor/openpsa/universalfeedcreator/lib/Creator/HTMLCreator.php
+++ /dev/null
@@ -1,162 +0,0 @@
-<?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/wiki/vendor/openpsa/universalfeedcreator/lib/Creator/JSCreator.php b/wiki/vendor/openpsa/universalfeedcreator/lib/Creator/JSCreator.php
deleted file mode 100644
index 5b75ea7..0000000
--- a/wiki/vendor/openpsa/universalfeedcreator/lib/Creator/JSCreator.php
+++ /dev/null
@@ -1,45 +0,0 @@
-<?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/wiki/vendor/openpsa/universalfeedcreator/lib/Creator/KMLCreator.php b/wiki/vendor/openpsa/universalfeedcreator/lib/Creator/KMLCreator.php
deleted file mode 100644
index acb0abc..0000000
--- a/wiki/vendor/openpsa/universalfeedcreator/lib/Creator/KMLCreator.php
+++ /dev/null
@@ -1,107 +0,0 @@
-<?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/wiki/vendor/openpsa/universalfeedcreator/lib/Creator/MBOXCreator.php b/wiki/vendor/openpsa/universalfeedcreator/lib/Creator/MBOXCreator.php
deleted file mode 100644
index d7f898d..0000000
--- a/wiki/vendor/openpsa/universalfeedcreator/lib/Creator/MBOXCreator.php
+++ /dev/null
@@ -1,111 +0,0 @@
-<?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/wiki/vendor/openpsa/universalfeedcreator/lib/Creator/OPMLCreator.php b/wiki/vendor/openpsa/universalfeedcreator/lib/Creator/OPMLCreator.php
deleted file mode 100644
index 6dcdc82..0000000
--- a/wiki/vendor/openpsa/universalfeedcreator/lib/Creator/OPMLCreator.php
+++ /dev/null
@@ -1,68 +0,0 @@
-<?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/wiki/vendor/openpsa/universalfeedcreator/lib/Creator/PHPCreator.php b/wiki/vendor/openpsa/universalfeedcreator/lib/Creator/PHPCreator.php
deleted file mode 100644
index 23b8352..0000000
--- a/wiki/vendor/openpsa/universalfeedcreator/lib/Creator/PHPCreator.php
+++ /dev/null
@@ -1,57 +0,0 @@
-<?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/wiki/vendor/openpsa/universalfeedcreator/lib/Creator/PIECreator01.php b/wiki/vendor/openpsa/universalfeedcreator/lib/Creator/PIECreator01.php
deleted file mode 100644
index 5700123..0000000
--- a/wiki/vendor/openpsa/universalfeedcreator/lib/Creator/PIECreator01.php
+++ /dev/null
@@ -1,63 +0,0 @@
-<?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/wiki/vendor/openpsa/universalfeedcreator/lib/Creator/RSSCreator091.php b/wiki/vendor/openpsa/universalfeedcreator/lib/Creator/RSSCreator091.php
deleted file mode 100644
index cd229e9..0000000
--- a/wiki/vendor/openpsa/universalfeedcreator/lib/Creator/RSSCreator091.php
+++ /dev/null
@@ -1,198 +0,0 @@
-<?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/wiki/vendor/openpsa/universalfeedcreator/lib/Creator/RSSCreator10.php b/wiki/vendor/openpsa/universalfeedcreator/lib/Creator/RSSCreator10.php
deleted file mode 100644
index d9ed1d0..0000000
--- a/wiki/vendor/openpsa/universalfeedcreator/lib/Creator/RSSCreator10.php
+++ /dev/null
@@ -1,113 +0,0 @@
-<?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/wiki/vendor/openpsa/universalfeedcreator/lib/Creator/RSSCreator20.php b/wiki/vendor/openpsa/universalfeedcreator/lib/Creator/RSSCreator20.php
deleted file mode 100644
index dbc25ab..0000000
--- a/wiki/vendor/openpsa/universalfeedcreator/lib/Creator/RSSCreator20.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?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/wiki/vendor/openpsa/universalfeedcreator/lib/Element/FeedDate.php b/wiki/vendor/openpsa/universalfeedcreator/lib/Element/FeedDate.php
deleted file mode 100644
index 690c65a..0000000
--- a/wiki/vendor/openpsa/universalfeedcreator/lib/Element/FeedDate.php
+++ /dev/null
@@ -1,130 +0,0 @@
-<?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/wiki/vendor/openpsa/universalfeedcreator/lib/Element/FeedHtmlField.php b/wiki/vendor/openpsa/universalfeedcreator/lib/Element/FeedHtmlField.php
deleted file mode 100644
index 8979e95..0000000
--- a/wiki/vendor/openpsa/universalfeedcreator/lib/Element/FeedHtmlField.php
+++ /dev/null
@@ -1,60 +0,0 @@
-<?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/wiki/vendor/openpsa/universalfeedcreator/lib/Element/FeedImage.php b/wiki/vendor/openpsa/universalfeedcreator/lib/Element/FeedImage.php
deleted file mode 100644
index d525379..0000000
--- a/wiki/vendor/openpsa/universalfeedcreator/lib/Element/FeedImage.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?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/wiki/vendor/openpsa/universalfeedcreator/lib/Element/FeedItem.php b/wiki/vendor/openpsa/universalfeedcreator/lib/Element/FeedItem.php
deleted file mode 100644
index 8277685..0000000
--- a/wiki/vendor/openpsa/universalfeedcreator/lib/Element/FeedItem.php
+++ /dev/null
@@ -1,54 +0,0 @@
-<?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/wiki/vendor/openpsa/universalfeedcreator/lib/Element/HtmlDescribable.php b/wiki/vendor/openpsa/universalfeedcreator/lib/Element/HtmlDescribable.php
deleted file mode 100644
index 0fce11f..0000000
--- a/wiki/vendor/openpsa/universalfeedcreator/lib/Element/HtmlDescribable.php
+++ /dev/null
@@ -1,39 +0,0 @@
-<?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/wiki/vendor/openpsa/universalfeedcreator/lib/UniversalFeedCreator.php b/wiki/vendor/openpsa/universalfeedcreator/lib/UniversalFeedCreator.php
deleted file mode 100644
index 7804e73..0000000
--- a/wiki/vendor/openpsa/universalfeedcreator/lib/UniversalFeedCreator.php
+++ /dev/null
@@ -1,171 +0,0 @@
-<?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/wiki/vendor/paragonie/random_compat/LICENSE b/wiki/vendor/paragonie/random_compat/LICENSE
deleted file mode 100644
index 45c7017..0000000
--- a/wiki/vendor/paragonie/random_compat/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2015 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.
-
diff --git a/wiki/vendor/paragonie/random_compat/lib/byte_safe_strings.php b/wiki/vendor/paragonie/random_compat/lib/byte_safe_strings.php
deleted file mode 100644
index 3de86b2..0000000
--- a/wiki/vendor/paragonie/random_compat/lib/byte_safe_strings.php
+++ /dev/null
@@ -1,181 +0,0 @@
-<?php
-/**
- * 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 (!is_callable('RandomCompat_strlen')) {
-    if (
-        defined('MB_OVERLOAD_STRING') &&
-        ini_get('mbstring.func_overload') & MB_OVERLOAD_STRING
-    ) {
-        /**
-         * strlen() implementation that isn't brittle to mbstring.func_overload
-         *
-         * This version uses mb_strlen() in '8bit' mode to treat strings as raw
-         * binary rather than UTF-8, ISO-8859-1, etc
-         *
-         * @param string $binary_string
-         *
-         * @throws TypeError
-         *
-         * @return int
-         */
-        function RandomCompat_strlen($binary_string)
-        {
-            if (!is_string($binary_string)) {
-                throw new TypeError(
-                    'RandomCompat_strlen() expects a string'
-                );
-            }
-
-            return (int) mb_strlen($binary_string, '8bit');
-        }
-
-    } else {
-        /**
-         * strlen() implementation that isn't brittle to mbstring.func_overload
-         *
-         * This version just used the default strlen()
-         *
-         * @param string $binary_string
-         *
-         * @throws TypeError
-         *
-         * @return int
-         */
-        function RandomCompat_strlen($binary_string)
-        {
-            if (!is_string($binary_string)) {
-                throw new TypeError(
-                    'RandomCompat_strlen() expects a string'
-                );
-            }
-            return (int) strlen($binary_string);
-        }
-    }
-}
-
-if (!is_callable('RandomCompat_substr')) {
-
-    if (
-        defined('MB_OVERLOAD_STRING')
-        &&
-        ini_get('mbstring.func_overload') & MB_OVERLOAD_STRING
-    ) {
-        /**
-         * substr() implementation that isn't brittle to mbstring.func_overload
-         *
-         * This version uses mb_substr() in '8bit' mode to treat strings as raw
-         * binary rather than UTF-8, ISO-8859-1, etc
-         *
-         * @param string $binary_string
-         * @param int $start
-         * @param int $length (optional)
-         *
-         * @throws TypeError
-         *
-         * @return string
-         */
-        function RandomCompat_substr($binary_string, $start, $length = null)
-        {
-            if (!is_string($binary_string)) {
-                throw new TypeError(
-                    'RandomCompat_substr(): First argument should be a string'
-                );
-            }
-
-            if (!is_int($start)) {
-                throw new TypeError(
-                    'RandomCompat_substr(): Second argument should be an integer'
-                );
-            }
-
-            if ($length === null) {
-                /**
-                 * 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($binary_string) - $start;
-            } elseif (!is_int($length)) {
-                throw new TypeError(
-                    'RandomCompat_substr(): Third argument should be an integer, or omitted'
-                );
-            }
-
-            // Consistency with PHP's behavior
-            if ($start === RandomCompat_strlen($binary_string) && $length === 0) {
-                return '';
-            }
-            if ($start > RandomCompat_strlen($binary_string)) {
-                return '';
-            }
-
-            return (string) mb_substr($binary_string, $start, $length, '8bit');
-        }
-
-    } else {
-
-        /**
-         * substr() implementation that isn't brittle to mbstring.func_overload
-         *
-         * This version just uses the default substr()
-         *
-         * @param string $binary_string
-         * @param int $start
-         * @param int $length (optional)
-         *
-         * @throws TypeError
-         *
-         * @return string
-         */
-        function RandomCompat_substr($binary_string, $start, $length = null)
-        {
-            if (!is_string($binary_string)) {
-                throw new TypeError(
-                    'RandomCompat_substr(): First argument should be a string'
-                );
-            }
-
-            if (!is_int($start)) {
-                throw new TypeError(
-                    'RandomCompat_substr(): Second argument should be an integer'
-                );
-            }
-
-            if ($length !== null) {
-                if (!is_int($length)) {
-                    throw new TypeError(
-                        'RandomCompat_substr(): Third argument should be an integer, or omitted'
-                    );
-                }
-
-                return (string) substr($binary_string, $start, $length);
-            }
-
-            return (string) substr($binary_string, $start);
-        }
-    }
-}
diff --git a/wiki/vendor/paragonie/random_compat/lib/cast_to_int.php b/wiki/vendor/paragonie/random_compat/lib/cast_to_int.php
deleted file mode 100644
index 9a4fab9..0000000
--- a/wiki/vendor/paragonie/random_compat/lib/cast_to_int.php
+++ /dev/null
@@ -1,75 +0,0 @@
-<?php
-/**
- * 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 (!is_callable('RandomCompat_intval')) {
-    
-    /**
-     * Cast to an integer if we can, safely.
-     * 
-     * 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.
-     * 
-     * @param int|float $number    The number we want to convert to an int
-     * @param bool      $fail_open Set to true to not throw an exception
-     * 
-     * @return float|int
-     * @psalm-suppress InvalidReturnType
-     *
-     * @throws TypeError
-     */
-    function RandomCompat_intval($number, $fail_open = false)
-    {
-        if (is_int($number) || is_float($number)) {
-            $number += 0;
-        } elseif (is_numeric($number)) {
-            $number += 0;
-        }
-
-        if (
-            is_float($number)
-            &&
-            $number > ~PHP_INT_MAX
-            &&
-            $number < PHP_INT_MAX
-        ) {
-            $number = (int) $number;
-        }
-
-        if (is_int($number)) {
-            return (int) $number;
-        } elseif (!$fail_open) {
-            throw new TypeError(
-                'Expected an integer.'
-            );
-        }
-        return $number;
-    }
-}
diff --git a/wiki/vendor/paragonie/random_compat/lib/error_polyfill.php b/wiki/vendor/paragonie/random_compat/lib/error_polyfill.php
deleted file mode 100644
index 6a91990..0000000
--- a/wiki/vendor/paragonie/random_compat/lib/error_polyfill.php
+++ /dev/null
@@ -1,49 +0,0 @@
-<?php
-/**
- * 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 (!class_exists('Error', false)) {
-    // We can't really avoid making this extend Exception in PHP 5.
-    class Error extends Exception
-    {
-        
-    }
-}
-
-if (!class_exists('TypeError', false)) {
-    if (is_subclass_of('Error', 'Exception')) {
-        class TypeError extends Error
-        {
-            
-        }
-    } else {
-        class TypeError extends Exception
-        {
-            
-        }
-    }
-}
diff --git a/wiki/vendor/paragonie/random_compat/lib/random.php b/wiki/vendor/paragonie/random_compat/lib/random.php
deleted file mode 100644
index 080b87c..0000000
--- a/wiki/vendor/paragonie/random_compat/lib/random.php
+++ /dev/null
@@ -1,225 +0,0 @@
-<?php
-/**
- * Random_* Compatibility Library
- * for using the new PHP 7 random_* API in PHP 5 projects
- *
- * @version 2.0.10
- * @released 2017-03-13
- *
- * 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 (!defined('PHP_VERSION_ID')) {
-    // This constant was introduced in PHP 5.2.7
-    $RandomCompatversion = array_map('intval', explode('.', PHP_VERSION));
-    define(
-        'PHP_VERSION_ID',
-        $RandomCompatversion[0] * 10000
-        + $RandomCompatversion[1] * 100
-        + $RandomCompatversion[2]
-    );
-    $RandomCompatversion = null;
-}
-
-/**
- * PHP 7.0.0 and newer have these functions natively.
- */
-if (PHP_VERSION_ID >= 70000) {
-    return;
-}
-
-if (!defined('RANDOM_COMPAT_READ_BUFFER')) {
-    define('RANDOM_COMPAT_READ_BUFFER', 8);
-}
-
-$RandomCompatDIR = dirname(__FILE__);
-
-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;
-        }
-
-        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;
-    }
-
-    /**
-     * 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;
-
-    /**
-     * 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;
-    }
-
-    /**
-     * throw new 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.
-         *
-         * @param mixed $length
-         * @psalm-suppress MissingReturnType
-         * @throws Exception
-         * @return string
-         */
-        function random_bytes($length)
-        {
-            unset($length); // Suppress "variable not used" warnings.
-            throw new Exception(
-                'There is no suitable CSPRNG installed on your system'
-            );
-            return '';
-        }
-    }
-}
-
-if (!is_callable('random_int')) {
-    require_once $RandomCompatDIR . '/random_int.php';
-}
-
-$RandomCompatDIR = null;
diff --git a/wiki/vendor/paragonie/random_compat/lib/random_bytes_com_dotnet.php b/wiki/vendor/paragonie/random_compat/lib/random_bytes_com_dotnet.php
deleted file mode 100644
index fc1926e..0000000
--- a/wiki/vendor/paragonie/random_compat/lib/random_bytes_com_dotnet.php
+++ /dev/null
@@ -1,88 +0,0 @@
-<?php
-/**
- * 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 (!is_callable('random_bytes')) {
-    /**
-     * Windows with PHP < 5.3.0 will not have the function
-     * openssl_random_pseudo_bytes() available, so let's use
-     * CAPICOM to work around this deficiency.
-     *
-     * @param int $bytes
-     *
-     * @throws Exception
-     *
-     * @return string
-     */
-    function random_bytes($bytes)
-    {
-        try {
-            $bytes = RandomCompat_intval($bytes);
-        } catch (TypeError $ex) {
-            throw new TypeError(
-                'random_bytes(): $bytes must be an integer'
-            );
-        }
-
-        if ($bytes < 1) {
-            throw new Error(
-                'Length must be greater than 0'
-            );
-        }
-
-        $buf = '';
-        if (!class_exists('COM')) {
-            throw new Error(
-                'COM does not exist'
-            );
-        }
-        $util = new COM('CAPICOM.Utilities.1');
-        $execCount = 0;
-
-        /**
-         * Let's not let it loop forever. If we run N times and fail to
-         * get N bytes of random data, then CAPICOM has failed us.
-         */
-        do {
-            $buf .= base64_decode($util->GetRandom($bytes, 0));
-            if (RandomCompat_strlen($buf) >= $bytes) {
-                /**
-                 * Return our random entropy buffer here:
-                 */
-                return RandomCompat_substr($buf, 0, $bytes);
-            }
-            ++$execCount;
-        } while ($execCount < $bytes);
-
-        /**
-         * If we reach here, PHP has failed us.
-         */
-        throw new Exception(
-            'Could not gather sufficient random data'
-        );
-    }
-}
\ No newline at end of file
diff --git a/wiki/vendor/paragonie/random_compat/lib/random_bytes_dev_urandom.php b/wiki/vendor/paragonie/random_compat/lib/random_bytes_dev_urandom.php
deleted file mode 100644
index df5b915..0000000
--- a/wiki/vendor/paragonie/random_compat/lib/random_bytes_dev_urandom.php
+++ /dev/null
@@ -1,167 +0,0 @@
-<?php
-/**
- * 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 (!defined('RANDOM_COMPAT_READ_BUFFER')) {
-    define('RANDOM_COMPAT_READ_BUFFER', 8);
-}
-
-if (!is_callable('random_bytes')) {
-    /**
-     * Unless open_basedir is enabled, use /dev/urandom for
-     * random numbers in accordance with best practices
-     *
-     * Why we use /dev/urandom and not /dev/random
-     * @ref http://sockpuppet.org/blog/2014/02/25/safely-generate-random-numbers
-     *
-     * @param int $bytes
-     *
-     * @throws Exception
-     *
-     * @return string
-     */
-    function random_bytes($bytes)
-    {
-        static $fp = null;
-        /**
-         * This block should only be run once
-         */
-        if (empty($fp)) {
-            /**
-             * We use /dev/urandom if it is a char device.
-             * We never fall back to /dev/random
-             */
-            $fp = fopen('/dev/urandom', 'rb');
-            if (!empty($fp)) {
-                $st = fstat($fp);
-                if (($st['mode'] & 0170000) !== 020000) {
-                    fclose($fp);
-                    $fp = false;
-                }
-            }
-
-            if (!empty($fp)) {
-                /**
-                 * stream_set_read_buffer() does not exist in HHVM
-                 *
-                 * If we don't set the stream's read buffer to 0, PHP will
-                 * internally buffer 8192 bytes, which can waste entropy
-                 *
-                 * stream_set_read_buffer returns 0 on success
-                 */
-                if (is_callable('stream_set_read_buffer')) {
-                    stream_set_read_buffer($fp, RANDOM_COMPAT_READ_BUFFER);
-                }
-                if (is_callable('stream_set_chunk_size')) {
-                    stream_set_chunk_size($fp, RANDOM_COMPAT_READ_BUFFER);
-                }
-            }
-        }
-
-        try {
-            $bytes = RandomCompat_intval($bytes);
-        } catch (TypeError $ex) {
-            throw new TypeError(
-                'random_bytes(): $bytes must be an integer'
-            );
-        }
-
-        if ($bytes < 1) {
-            throw new Error(
-                'Length must be greater than 0'
-            );
-        }
-
-        /**
-         * This if() block only runs if we managed to open a file handle
-         *
-         * It does not belong in an else {} block, because the above
-         * if (empty($fp)) line is logic that should only be run once per
-         * 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 (!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);
-                /**
-                 * @var string|bool
-                 */
-                $buf = $buf . $read;
-            } while ($remaining > 0);
-
-            /**
-             * Is our result valid?
-             */
-            if (is_string($buf)) {
-                if (RandomCompat_strlen($buf) === $bytes) {
-                    /**
-                     * Return our random entropy buffer here:
-                     */
-                    return $buf;
-                }
-            }
-        }
-
-        /**
-         * If we reach here, PHP has failed us.
-         */
-        throw new Exception(
-            'Error reading from source device'
-        );
-    }
-}
diff --git a/wiki/vendor/paragonie/random_compat/lib/random_bytes_libsodium.php b/wiki/vendor/paragonie/random_compat/lib/random_bytes_libsodium.php
deleted file mode 100644
index 4af1a24..0000000
--- a/wiki/vendor/paragonie/random_compat/lib/random_bytes_libsodium.php
+++ /dev/null
@@ -1,88 +0,0 @@
-<?php
-/**
- * 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 (!is_callable('random_bytes')) {
-    /**
-     * If the libsodium PHP extension is loaded, we'll use it above any other
-     * solution.
-     *
-     * libsodium-php project:
-     * @ref https://github.com/jedisct1/libsodium-php
-     *
-     * @param int $bytes
-     *
-     * @throws Exception
-     *
-     * @return string
-     */
-    function random_bytes($bytes)
-    {
-        try {
-            $bytes = RandomCompat_intval($bytes);
-        } catch (TypeError $ex) {
-            throw new TypeError(
-                'random_bytes(): $bytes must be an integer'
-            );
-        }
-
-        if ($bytes < 1) {
-            throw new Error(
-                'Length must be greater than 0'
-            );
-        }
-
-        /**
-         * \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
-                    : $bytes - $i;
-                $buf .= \Sodium\randombytes_buf($n);
-            }
-        } else {
-            $buf = \Sodium\randombytes_buf($bytes);
-        }
-
-        if ($buf !== false) {
-            if (RandomCompat_strlen($buf) === $bytes) {
-                return $buf;
-            }
-        }
-
-        /**
-         * If we reach here, PHP has failed us.
-         */
-        throw new Exception(
-            'Could not gather sufficient random data'
-        );
-    }
-}
diff --git a/wiki/vendor/paragonie/random_compat/lib/random_bytes_libsodium_legacy.php b/wiki/vendor/paragonie/random_compat/lib/random_bytes_libsodium_legacy.php
deleted file mode 100644
index 705af52..0000000
--- a/wiki/vendor/paragonie/random_compat/lib/random_bytes_libsodium_legacy.php
+++ /dev/null
@@ -1,92 +0,0 @@
-<?php
-/**
- * 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 (!is_callable('random_bytes')) {
-    /**
-     * If the libsodium PHP extension is loaded, we'll use it above any other
-     * solution.
-     *
-     * libsodium-php project:
-     * @ref https://github.com/jedisct1/libsodium-php
-     *
-     * @param int $bytes
-     *
-     * @throws Exception
-     *
-     * @return string
-     */
-    function random_bytes($bytes)
-    {
-        try {
-            $bytes = RandomCompat_intval($bytes);
-        } catch (TypeError $ex) {
-            throw new TypeError(
-                'random_bytes(): $bytes must be an integer'
-            );
-        }
-
-        if ($bytes < 1) {
-            throw new Error(
-                'Length must be greater than 0'
-            );
-        }
-
-        /**
-         * @var string
-         */
-        $buf = '';
-
-        /**
-         * \Sodium\randombytes_buf() doesn't allow more than 2147483647 bytes to be
-         * generated in one invocation.
-         */
-        if ($bytes > 2147483647) {
-            for ($i = 0; $i < $bytes; $i += 1073741824) {
-                $n = ($bytes - $i) > 1073741824
-                    ? 1073741824
-                    : $bytes - $i;
-                $buf .= Sodium::randombytes_buf((int) $n);
-            }
-        } else {
-            $buf .= Sodium::randombytes_buf((int) $bytes);
-        }
-
-        if (is_string($buf)) {
-            if (RandomCompat_strlen($buf) === $bytes) {
-                return $buf;
-            }
-        }
-
-        /**
-         * If we reach here, PHP has failed us.
-         */
-        throw new Exception(
-            'Could not gather sufficient random data'
-        );
-    }
-}
diff --git a/wiki/vendor/paragonie/random_compat/lib/random_bytes_mcrypt.php b/wiki/vendor/paragonie/random_compat/lib/random_bytes_mcrypt.php
deleted file mode 100644
index aac9c01..0000000
--- a/wiki/vendor/paragonie/random_compat/lib/random_bytes_mcrypt.php
+++ /dev/null
@@ -1,77 +0,0 @@
-<?php
-/**
- * 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 (!is_callable('random_bytes')) {
-    /**
-     * Powered by ext/mcrypt (and thankfully NOT libmcrypt)
-     *
-     * @ref https://bugs.php.net/bug.php?id=55169
-     * @ref https://github.com/php/php-src/blob/c568ffe5171d942161fc8dda066bce844bdef676/ext/mcrypt/mcrypt.c#L1321-L1386
-     *
-     * @param int $bytes
-     *
-     * @throws Exception
-     *
-     * @return string
-     */
-    function random_bytes($bytes)
-    {
-        try {
-            $bytes = RandomCompat_intval($bytes);
-        } catch (TypeError $ex) {
-            throw new TypeError(
-                'random_bytes(): $bytes must be an integer'
-            );
-        }
-
-        if ($bytes < 1) {
-            throw new Error(
-                'Length must be greater than 0'
-            );
-        }
-
-        $buf = @mcrypt_create_iv($bytes, MCRYPT_DEV_URANDOM);
-        if (
-            $buf !== false
-            &&
-            RandomCompat_strlen($buf) === $bytes
-        ) {
-            /**
-             * Return our random entropy buffer here:
-             */
-            return $buf;
-        }
-
-        /**
-         * If we reach here, PHP has failed us.
-         */
-        throw new Exception(
-            'Could not gather sufficient random data'
-        );
-    }
-}
diff --git a/wiki/vendor/paragonie/random_compat/lib/random_int.php b/wiki/vendor/paragonie/random_compat/lib/random_int.php
deleted file mode 100644
index 5b2143a..0000000
--- a/wiki/vendor/paragonie/random_compat/lib/random_int.php
+++ /dev/null
@@ -1,190 +0,0 @@
-<?php
-
-if (!is_callable('random_int')) {
-    /**
-     * 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.
-     */
-
-    /**
-     * 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'
-            );
-        }
-
-        /**
-         * 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 ($min > $max) {
-            throw new Error(
-                'Minimum value must be less than or equal to the maximum value'
-            );
-        }
-
-        if ($max === $min) {
-            return (int) $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
-         */
-        $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)) {
-
-            /**
-             * 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;
-
-        } 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;
-        /**
-         * 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
-             */
-            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);
-
-            /**
-             * 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/wiki/vendor/paragonie/random_compat/psalm-autoload.php b/wiki/vendor/paragonie/random_compat/psalm-autoload.php
deleted file mode 100644
index d71d1b8..0000000
--- a/wiki/vendor/paragonie/random_compat/psalm-autoload.php
+++ /dev/null
@@ -1,9 +0,0 @@
-<?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/wiki/vendor/paragonie/random_compat/psalm.xml b/wiki/vendor/paragonie/random_compat/psalm.xml
deleted file mode 100644
index ee072a9..0000000
--- a/wiki/vendor/paragonie/random_compat/psalm.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0"?>
-<psalm
-    autoloader="psalm-autoload.php"
-    stopOnFirstError="false"
-    useDocblockTypes="true"
->
-    <projectFiles>
-        <directory name="lib" />
-    </projectFiles>
-    <issueHandlers>
-        <RedundantConditionGivenDocblockType errorLevel="info" />
-        <UnresolvableInclude errorLevel="info" />
-        <DuplicateClass errorLevel="info" />
-        <InvalidOperand errorLevel="info" />
-        <UndefinedConstant errorLevel="info" />
-        <MissingReturnType errorLevel="info" />
-    </issueHandlers>
-</psalm>
diff --git a/wiki/vendor/phpseclib/phpseclib/AUTHORS b/wiki/vendor/phpseclib/phpseclib/AUTHORS
deleted file mode 100644
index a08b309..0000000
--- a/wiki/vendor/phpseclib/phpseclib/AUTHORS
+++ /dev/null
@@ -1,6 +0,0 @@
-phpseclib Lead Developer:  TerraFrost (Jim Wigginton)
-
-phpseclib Developers:      monnerat (Patrick Monnerat)
-                           bantu (Andreas Fischer)
-                           petrich (Hans-Jürgen Petrich)
-                           GrahamCampbell (Graham Campbell)
diff --git a/wiki/vendor/phpseclib/phpseclib/LICENSE b/wiki/vendor/phpseclib/phpseclib/LICENSE
deleted file mode 100644
index a8ec8eb..0000000
--- a/wiki/vendor/phpseclib/phpseclib/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-Copyright 2007-2016 TerraFrost and other contributors
-http://phpseclib.sourceforge.net/
-
-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.
diff --git a/wiki/vendor/phpseclib/phpseclib/README.md b/wiki/vendor/phpseclib/phpseclib/README.md
deleted file mode 100644
index 53f58db..0000000
--- a/wiki/vendor/phpseclib/phpseclib/README.md
+++ /dev/null
@@ -1,74 +0,0 @@
-# phpseclib - PHP Secure Communications Library
-
-[![Build Status](https://travis-ci.org/phpseclib/phpseclib.svg?branch=2.0)](https://travis-ci.org/phpseclib/phpseclib)
-
-MIT-licensed pure-PHP implementations of an arbitrary-precision integer
-arithmetic library, fully PKCS#1 (v2.1) compliant RSA, DES, 3DES, RC4, Rijndael,
-AES, Blowfish, Twofish, SSH-1, SSH-2, SFTP, and X.509
-
-* [Browse Git](https://github.com/phpseclib/phpseclib)
-* [Code Coverage Report](https://coverage.phpseclib.org/2.0/latest/)
-
-## Documentation
-
-* [Documentation / Manual](http://phpseclib.sourceforge.net/)
-* [API Documentation](https://api.phpseclib.org/2.0/) (generated by Sami)
-
-## Branches
-
-### master
-
-* Development Branch
-* Unstable API
-* Do not use in production
-
-### 2.0
-
-* Modernized version of 1.0
-* Minimum PHP version: 5.3.3
-* PSR-4 autoloading with namespace rooted at `\phpseclib`
-* Install via Composer: `composer require phpseclib/phpseclib ~2.0`
-
-### 1.0
-
-* Long term support (LTS) release
-* PHP4 compatible
-* Composer compatible (PSR-0 autoloading)
-* Install using Composer: `composer require phpseclib/phpseclib ~1.0`
-* Install using PEAR: See [phpseclib PEAR Channel Documentation](http://phpseclib.sourceforge.net/pear.htm)
-* [Download 1.0.11 as ZIP](http://sourceforge.net/projects/phpseclib/files/phpseclib1.0.11.zip/download)
-
-## Support
-
-Need Support?
-
-* [Checkout Questions and Answers on Stack Overflow](http://stackoverflow.com/questions/tagged/phpseclib)
-* [Create a Support Ticket on GitHub](https://github.com/phpseclib/phpseclib/issues/new)
-* [Browse the Support Forum](http://www.frostjedi.com/phpbb/viewforum.php?f=46) (no longer in use)
-
-## Contributing
-
-1. Fork the Project
-
-2. Ensure you have Composer installed (see [Composer Download Instructions](https://getcomposer.org/download/))
-
-3. Install Development Dependencies
-
-    ``` sh
-    composer install
-    ```
-
-4. Create a Feature Branch
-
-5. (Recommended) Run the Test Suite
-
-    ``` sh
-    vendor/bin/phpunit
-    ```
-6. (Recommended) Check whether your code conforms to our Coding Standards by running
-
-    ``` sh
-    vendor/bin/phing -f build/build.xml sniff
-    ```
-
-7. Send us a Pull Request
diff --git a/wiki/vendor/phpseclib/phpseclib/phpseclib/Crypt/AES.php b/wiki/vendor/phpseclib/phpseclib/phpseclib/Crypt/AES.php
deleted file mode 100644
index 7d8cb8b..0000000
--- a/wiki/vendor/phpseclib/phpseclib/phpseclib/Crypt/AES.php
+++ /dev/null
@@ -1,126 +0,0 @@
-<?php
-
-/**
- * Pure-PHP implementation of AES.
- *
- * Uses mcrypt, if available/possible, and an internal implementation, otherwise.
- *
- * PHP version 5
- *
- * NOTE: Since AES.php is (for compatibility and phpseclib-historical reasons) virtually
- * just a wrapper to Rijndael.php you may consider using Rijndael.php instead of
- * to save one include_once().
- *
- * If {@link self::setKeyLength() setKeyLength()} isn't called, it'll be calculated from
- * {@link self::setKey() setKey()}.  ie. if the key is 128-bits, the key length will be 128-bits.  If it's 136-bits
- * it'll be null-padded to 192-bits and 192 bits will be the key length until {@link self::setKey() setKey()}
- * is called, again, at which point, it'll be recalculated.
- *
- * Since \phpseclib\Crypt\AES extends \phpseclib\Crypt\Rijndael, some functions are available to be called that, in the context of AES, don't
- * make a whole lot of sense.  {@link self::setBlockLength() setBlockLength()}, for instance.  Calling that function,
- * however possible, won't do anything (AES has a fixed block length whereas Rijndael has a variable one).
- *
- * Here's a short example of how to use this library:
- * <code>
- * <?php
- *    include 'vendor/autoload.php';
- *
- *    $aes = new \phpseclib\Crypt\AES();
- *
- *    $aes->setKey('abcdefghijklmnop');
- *
- *    $size = 10 * 1024;
- *    $plaintext = '';
- *    for ($i = 0; $i < $size; $i++) {
- *        $plaintext.= 'a';
- *    }
- *
- *    echo $aes->decrypt($aes->encrypt($plaintext));
- * ?>
- * </code>
- *
- * @category  Crypt
- * @package   AES
- * @author    Jim Wigginton <terrafrost@php.net>
- * @copyright 2008 Jim Wigginton
- * @license   http://www.opensource.org/licenses/mit-license.html  MIT License
- * @link      http://phpseclib.sourceforge.net
- */
-
-namespace phpseclib\Crypt;
-
-/**
- * Pure-PHP implementation of AES.
- *
- * @package AES
- * @author  Jim Wigginton <terrafrost@php.net>
- * @access  public
- */
-class AES extends Rijndael
-{
-    /**
-     * Dummy function
-     *
-     * Since \phpseclib\Crypt\AES extends \phpseclib\Crypt\Rijndael, this function is, technically, available, but it doesn't do anything.
-     *
-     * @see \phpseclib\Crypt\Rijndael::setBlockLength()
-     * @access public
-     * @param int $length
-     */
-    function setBlockLength($length)
-    {
-        return;
-    }
-
-    /**
-     * Sets the key length
-     *
-     * Valid key lengths are 128, 192, and 256.  If the length is less than 128, it will be rounded up to
-     * 128.  If the length is greater than 128 and invalid, it will be rounded down to the closest valid amount.
-     *
-     * @see \phpseclib\Crypt\Rijndael:setKeyLength()
-     * @access public
-     * @param int $length
-     */
-    function setKeyLength($length)
-    {
-        switch ($length) {
-            case 160:
-                $length = 192;
-                break;
-            case 224:
-                $length = 256;
-        }
-        parent::setKeyLength($length);
-    }
-
-    /**
-     * Sets the key.
-     *
-     * Rijndael supports five different key lengths, AES only supports three.
-     *
-     * @see \phpseclib\Crypt\Rijndael:setKey()
-     * @see setKeyLength()
-     * @access public
-     * @param string $key
-     */
-    function setKey($key)
-    {
-        parent::setKey($key);
-
-        if (!$this->explicit_key_length) {
-            $length = strlen($key);
-            switch (true) {
-                case $length <= 16:
-                    $this->key_length = 16;
-                    break;
-                case $length <= 24:
-                    $this->key_length = 24;
-                    break;
-                default:
-                    $this->key_length = 32;
-            }
-            $this->_setEngine();
-        }
-    }
-}
diff --git a/wiki/vendor/phpseclib/phpseclib/phpseclib/Crypt/Base.php b/wiki/vendor/phpseclib/phpseclib/phpseclib/Crypt/Base.php
deleted file mode 100644
index 7c9032f..0000000
--- a/wiki/vendor/phpseclib/phpseclib/phpseclib/Crypt/Base.php
+++ /dev/null
@@ -1,2708 +0,0 @@
-<?php
-
-/**
- * Base Class for all \phpseclib\Crypt\* cipher classes
- *
- * PHP version 5
- *
- * Internally for phpseclib developers:
- *  If you plan to add a new cipher class, please note following rules:
- *
- *  - The new \phpseclib\Crypt\* cipher class should extend \phpseclib\Crypt\Base
- *
- *  - Following methods are then required to be overridden/overloaded:
- *
- *    - _encryptBlock()
- *
- *    - _decryptBlock()
- *
- *    - _setupKey()
- *
- *  - All other methods are optional to be overridden/overloaded
- *
- *  - Look at the source code of the current ciphers how they extend \phpseclib\Crypt\Base
- *    and take one of them as a start up for the new cipher class.
- *
- *  - Please read all the other comments/notes/hints here also for each class var/method
- *
- * @category  Crypt
- * @package   Base
- * @author    Jim Wigginton <terrafrost@php.net>
- * @author    Hans-Juergen Petrich <petrich@tronic-media.com>
- * @copyright 2007 Jim Wigginton
- * @license   http://www.opensource.org/licenses/mit-license.html  MIT License
- * @link      http://phpseclib.sourceforge.net
- */
-
-namespace phpseclib\Crypt;
-
-/**
- * Base Class for all \phpseclib\Crypt\* cipher classes
- *
- * @package Base
- * @author  Jim Wigginton <terrafrost@php.net>
- * @author  Hans-Juergen Petrich <petrich@tronic-media.com>
- */
-abstract class Base
-{
-    /**#@+
-     * @access public
-     * @see \phpseclib\Crypt\Base::encrypt()
-     * @see \phpseclib\Crypt\Base::decrypt()
-     */
-    /**
-     * Encrypt / decrypt using the Counter mode.
-     *
-     * Set to -1 since that's what Crypt/Random.php uses to index the CTR mode.
-     *
-     * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Counter_.28CTR.29
-     */
-    const MODE_CTR = -1;
-    /**
-     * Encrypt / decrypt using the Electronic Code Book mode.
-     *
-     * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Electronic_codebook_.28ECB.29
-     */
-    const MODE_ECB = 1;
-    /**
-     * Encrypt / decrypt using the Code Book Chaining mode.
-     *
-     * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Cipher-block_chaining_.28CBC.29
-     */
-    const MODE_CBC = 2;
-    /**
-     * Encrypt / decrypt using the Cipher Feedback mode.
-     *
-     * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Cipher_feedback_.28CFB.29
-     */
-    const MODE_CFB = 3;
-    /**
-     * Encrypt / decrypt using the Cipher Feedback mode (8bit)
-     */
-    const MODE_CFB8 = 38;
-    /**
-     * Encrypt / decrypt using the Output Feedback mode.
-     *
-     * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Output_feedback_.28OFB.29
-     */
-    const MODE_OFB = 4;
-    /**
-     * Encrypt / decrypt using streaming mode.
-     */
-    const MODE_STREAM = 5;
-    /**#@-*/
-
-    /**
-     * Whirlpool available flag
-     *
-     * @see \phpseclib\Crypt\Base::_hashInlineCryptFunction()
-     * @var bool
-     * @access private
-     */
-    static $WHIRLPOOL_AVAILABLE;
-
-    /**#@+
-     * @access private
-     * @see \phpseclib\Crypt\Base::__construct()
-     */
-    /**
-     * Base value for the internal implementation $engine switch
-     */
-    const ENGINE_INTERNAL = 1;
-    /**
-     * Base value for the mcrypt implementation $engine switch
-     */
-    const ENGINE_MCRYPT = 2;
-    /**
-     * Base value for the mcrypt implementation $engine switch
-     */
-    const ENGINE_OPENSSL = 3;
-    /**#@-*/
-
-    /**
-     * The Encryption Mode
-     *
-     * @see self::__construct()
-     * @var int
-     * @access private
-     */
-    var $mode;
-
-    /**
-     * The Block Length of the block cipher
-     *
-     * @var int
-     * @access private
-     */
-    var $block_size = 16;
-
-    /**
-     * The Key
-     *
-     * @see self::setKey()
-     * @var string
-     * @access private
-     */
-    var $key = "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0";
-
-    /**
-     * The Initialization Vector
-     *
-     * @see self::setIV()
-     * @var string
-     * @access private
-     */
-    var $iv;
-
-    /**
-     * A "sliding" Initialization Vector
-     *
-     * @see self::enableContinuousBuffer()
-     * @see self::_clearBuffers()
-     * @var string
-     * @access private
-     */
-    var $encryptIV;
-
-    /**
-     * A "sliding" Initialization Vector
-     *
-     * @see self::enableContinuousBuffer()
-     * @see self::_clearBuffers()
-     * @var string
-     * @access private
-     */
-    var $decryptIV;
-
-    /**
-     * Continuous Buffer status
-     *
-     * @see self::enableContinuousBuffer()
-     * @var bool
-     * @access private
-     */
-    var $continuousBuffer = false;
-
-    /**
-     * Encryption buffer for CTR, OFB and CFB modes
-     *
-     * @see self::encrypt()
-     * @see self::_clearBuffers()
-     * @var array
-     * @access private
-     */
-    var $enbuffer;
-
-    /**
-     * Decryption buffer for CTR, OFB and CFB modes
-     *
-     * @see self::decrypt()
-     * @see self::_clearBuffers()
-     * @var array
-     * @access private
-     */
-    var $debuffer;
-
-    /**
-     * mcrypt resource for encryption
-     *
-     * The mcrypt resource can be recreated every time something needs to be created or it can be created just once.
-     * Since mcrypt operates in continuous mode, by default, it'll need to be recreated when in non-continuous mode.
-     *
-     * @see self::encrypt()
-     * @var resource
-     * @access private
-     */
-    var $enmcrypt;
-
-    /**
-     * mcrypt resource for decryption
-     *
-     * The mcrypt resource can be recreated every time something needs to be created or it can be created just once.
-     * Since mcrypt operates in continuous mode, by default, it'll need to be recreated when in non-continuous mode.
-     *
-     * @see self::decrypt()
-     * @var resource
-     * @access private
-     */
-    var $demcrypt;
-
-    /**
-     * Does the enmcrypt resource need to be (re)initialized?
-     *
-     * @see \phpseclib\Crypt\Twofish::setKey()
-     * @see \phpseclib\Crypt\Twofish::setIV()
-     * @var bool
-     * @access private
-     */
-    var $enchanged = true;
-
-    /**
-     * Does the demcrypt resource need to be (re)initialized?
-     *
-     * @see \phpseclib\Crypt\Twofish::setKey()
-     * @see \phpseclib\Crypt\Twofish::setIV()
-     * @var bool
-     * @access private
-     */
-    var $dechanged = true;
-
-    /**
-     * mcrypt resource for CFB mode
-     *
-     * mcrypt's CFB mode, in (and only in) buffered context,
-     * is broken, so phpseclib implements the CFB mode by it self,
-     * even when the mcrypt php extension is available.
-     *
-     * In order to do the CFB-mode work (fast) phpseclib
-     * use a separate ECB-mode mcrypt resource.
-     *
-     * @link http://phpseclib.sourceforge.net/cfb-demo.phps
-     * @see self::encrypt()
-     * @see self::decrypt()
-     * @see self::_setupMcrypt()
-     * @var resource
-     * @access private
-     */
-    var $ecb;
-
-    /**
-     * Optimizing value while CFB-encrypting
-     *
-     * Only relevant if $continuousBuffer enabled
-     * and $engine == self::ENGINE_MCRYPT
-     *
-     * It's faster to re-init $enmcrypt if
-     * $buffer bytes > $cfb_init_len than
-     * using the $ecb resource furthermore.
-     *
-     * This value depends of the chosen cipher
-     * and the time it would be needed for it's
-     * initialization [by mcrypt_generic_init()]
-     * which, typically, depends on the complexity
-     * on its internaly Key-expanding algorithm.
-     *
-     * @see self::encrypt()
-     * @var int
-     * @access private
-     */
-    var $cfb_init_len = 600;
-
-    /**
-     * Does internal cipher state need to be (re)initialized?
-     *
-     * @see self::setKey()
-     * @see self::setIV()
-     * @see self::disableContinuousBuffer()
-     * @var bool
-     * @access private
-     */
-    var $changed = true;
-
-    /**
-     * Padding status
-     *
-     * @see self::enablePadding()
-     * @var bool
-     * @access private
-     */
-    var $padding = true;
-
-    /**
-     * Is the mode one that is paddable?
-     *
-     * @see self::__construct()
-     * @var bool
-     * @access private
-     */
-    var $paddable = false;
-
-    /**
-     * Holds which crypt engine internaly should be use,
-     * which will be determined automatically on __construct()
-     *
-     * Currently available $engines are:
-     * - self::ENGINE_OPENSSL  (very fast, php-extension: openssl, extension_loaded('openssl') required)
-     * - self::ENGINE_MCRYPT   (fast, php-extension: mcrypt, extension_loaded('mcrypt') required)
-     * - self::ENGINE_INTERNAL (slower, pure php-engine, no php-extension required)
-     *
-     * @see self::_setEngine()
-     * @see self::encrypt()
-     * @see self::decrypt()
-     * @var int
-     * @access private
-     */
-    var $engine;
-
-    /**
-     * Holds the preferred crypt engine
-     *
-     * @see self::_setEngine()
-     * @see self::setPreferredEngine()
-     * @var int
-     * @access private
-     */
-    var $preferredEngine;
-
-    /**
-     * The mcrypt specific name of the cipher
-     *
-     * Only used if $engine == self::ENGINE_MCRYPT
-     *
-     * @link http://www.php.net/mcrypt_module_open
-     * @link http://www.php.net/mcrypt_list_algorithms
-     * @see self::_setupMcrypt()
-     * @var string
-     * @access private
-     */
-    var $cipher_name_mcrypt;
-
-    /**
-     * The openssl specific name of the cipher
-     *
-     * Only used if $engine == self::ENGINE_OPENSSL
-     *
-     * @link http://www.php.net/openssl-get-cipher-methods
-     * @var string
-     * @access private
-     */
-    var $cipher_name_openssl;
-
-    /**
-     * The openssl specific name of the cipher in ECB mode
-     *
-     * If OpenSSL does not support the mode we're trying to use (CTR)
-     * it can still be emulated with ECB mode.
-     *
-     * @link http://www.php.net/openssl-get-cipher-methods
-     * @var string
-     * @access private
-     */
-    var $cipher_name_openssl_ecb;
-
-    /**
-     * The default salt used by setPassword()
-     *
-     * @see self::setPassword()
-     * @var string
-     * @access private
-     */
-    var $password_default_salt = 'phpseclib/salt';
-
-    /**
-     * The name of the performance-optimized callback function
-     *
-     * Used by encrypt() / decrypt()
-     * only if $engine == self::ENGINE_INTERNAL
-     *
-     * @see self::encrypt()
-     * @see self::decrypt()
-     * @see self::_setupInlineCrypt()
-     * @see self::$use_inline_crypt
-     * @var Callback
-     * @access private
-     */
-    var $inline_crypt;
-
-    /**
-     * Holds whether performance-optimized $inline_crypt() can/should be used.
-     *
-     * @see self::encrypt()
-     * @see self::decrypt()
-     * @see self::inline_crypt
-     * @var mixed
-     * @access private
-     */
-    var $use_inline_crypt;
-
-    /**
-     * If OpenSSL can be used in ECB but not in CTR we can emulate CTR
-     *
-     * @see self::_openssl_ctr_process()
-     * @var bool
-     * @access private
-     */
-    var $openssl_emulate_ctr = false;
-
-    /**
-     * Determines what options are passed to openssl_encrypt/decrypt
-     *
-     * @see self::isValidEngine()
-     * @var mixed
-     * @access private
-     */
-    var $openssl_options;
-
-    /**
-     * Has the key length explicitly been set or should it be derived from the key, itself?
-     *
-     * @see self::setKeyLength()
-     * @var bool
-     * @access private
-     */
-    var $explicit_key_length = false;
-
-    /**
-     * Don't truncate / null pad key
-     *
-     * @see self::_clearBuffers()
-     * @var bool
-     * @access private
-     */
-    var $skip_key_adjustment = false;
-
-    /**
-     * Default Constructor.
-     *
-     * Determines whether or not the mcrypt extension should be used.
-     *
-     * $mode could be:
-     *
-     * - self::MODE_ECB
-     *
-     * - self::MODE_CBC
-     *
-     * - self::MODE_CTR
-     *
-     * - self::MODE_CFB
-     *
-     * - self::MODE_OFB
-     *
-     * If not explicitly set, self::MODE_CBC will be used.
-     *
-     * @param int $mode
-     * @access public
-     */
-    function __construct($mode = self::MODE_CBC)
-    {
-        // $mode dependent settings
-        switch ($mode) {
-            case self::MODE_ECB:
-                $this->paddable = true;
-                $this->mode = self::MODE_ECB;
-                break;
-            case self::MODE_CTR:
-            case self::MODE_CFB:
-            case self::MODE_CFB8:
-            case self::MODE_OFB:
-            case self::MODE_STREAM:
-                $this->mode = $mode;
-                break;
-            case self::MODE_CBC:
-            default:
-                $this->paddable = true;
-                $this->mode = self::MODE_CBC;
-        }
-
-        $this->_setEngine();
-
-        // Determining whether inline crypting can be used by the cipher
-        if ($this->use_inline_crypt !== false) {
-            $this->use_inline_crypt = version_compare(PHP_VERSION, '5.3.0') >= 0 || function_exists('create_function');
-        }
-    }
-
-    /**
-     * Sets the initialization vector. (optional)
-     *
-     * SetIV is not required when self::MODE_ECB (or ie for AES: \phpseclib\Crypt\AES::MODE_ECB) is being used.  If not explicitly set, it'll be assumed
-     * to be all zero's.
-     *
-     * @access public
-     * @param string $iv
-     * @internal Can be overwritten by a sub class, but does not have to be
-     */
-    function setIV($iv)
-    {
-        if ($this->mode == self::MODE_ECB) {
-            return;
-        }
-
-        $this->iv = $iv;
-        $this->changed = true;
-    }
-
-    /**
-     * Sets the key length.
-     *
-     * Keys with explicitly set lengths need to be treated accordingly
-     *
-     * @access public
-     * @param int $length
-     */
-    function setKeyLength($length)
-    {
-        $this->explicit_key_length = true;
-        $this->changed = true;
-        $this->_setEngine();
-    }
-
-    /**
-     * Returns the current key length in bits
-     *
-     * @access public
-     * @return int
-     */
-    function getKeyLength()
-    {
-        return $this->key_length << 3;
-    }
-
-    /**
-     * Returns the current block length in bits
-     *
-     * @access public
-     * @return int
-     */
-    function getBlockLength()
-    {
-        return $this->block_size << 3;
-    }
-
-    /**
-     * Sets the key.
-     *
-     * The min/max length(s) of the key depends on the cipher which is used.
-     * If the key not fits the length(s) of the cipher it will paded with null bytes
-     * up to the closest valid key length.  If the key is more than max length,
-     * we trim the excess bits.
-     *
-     * If the key is not explicitly set, it'll be assumed to be all null bytes.
-     *
-     * @access public
-     * @param string $key
-     * @internal Could, but not must, extend by the child Crypt_* class
-     */
-    function setKey($key)
-    {
-        if (!$this->explicit_key_length) {
-            $this->setKeyLength(strlen($key) << 3);
-            $this->explicit_key_length = false;
-        }
-
-        $this->key = $key;
-        $this->changed = true;
-        $this->_setEngine();
-    }
-
-    /**
-     * Sets the password.
-     *
-     * Depending on what $method is set to, setPassword()'s (optional) parameters are as follows:
-     *     {@link http://en.wikipedia.org/wiki/PBKDF2 pbkdf2} or pbkdf1:
-     *         $hash, $salt, $count, $dkLen
-     *
-     *         Where $hash (default = sha1) currently supports the following hashes: see: Crypt/Hash.php
-     *
-     * @see Crypt/Hash.php
-     * @param string $password
-     * @param string $method
-     * @return bool
-     * @access public
-     * @internal Could, but not must, extend by the child Crypt_* class
-     */
-    function setPassword($password, $method = 'pbkdf2')
-    {
-        $key = '';
-
-        switch ($method) {
-            default: // 'pbkdf2' or 'pbkdf1'
-                $func_args = func_get_args();
-
-                // Hash function
-                $hash = isset($func_args[2]) ? $func_args[2] : 'sha1';
-
-                // WPA and WPA2 use the SSID as the salt
-                $salt = isset($func_args[3]) ? $func_args[3] : $this->password_default_salt;
-
-                // RFC2898#section-4.2 uses 1,000 iterations by default
-                // WPA and WPA2 use 4,096.
-                $count = isset($func_args[4]) ? $func_args[4] : 1000;
-
-                // Keylength
-                if (isset($func_args[5])) {
-                    $dkLen = $func_args[5];
-                } else {
-                    $dkLen = $method == 'pbkdf1' ? 2 * $this->key_length : $this->key_length;
-                }
-
-                switch (true) {
-                    case $method == 'pbkdf1':
-                        $hashObj = new Hash();
-                        $hashObj->setHash($hash);
-                        if ($dkLen > $hashObj->getLength()) {
-                            user_error('Derived key too long');
-                            return false;
-                        }
-                        $t = $password . $salt;
-                        for ($i = 0; $i < $count; ++$i) {
-                            $t = $hashObj->hash($t);
-                        }
-                        $key = substr($t, 0, $dkLen);
-
-                        $this->setKey(substr($key, 0, $dkLen >> 1));
-                        $this->setIV(substr($key, $dkLen >> 1));
-
-                        return true;
-                    // Determining if php[>=5.5.0]'s hash_pbkdf2() function avail- and useable
-                    case !function_exists('hash_pbkdf2'):
-                    case !function_exists('hash_algos'):
-                    case !in_array($hash, hash_algos()):
-                        $i = 1;
-                        while (strlen($key) < $dkLen) {
-                            $hmac = new Hash();
-                            $hmac->setHash($hash);
-                            $hmac->setKey($password);
-                            $f = $u = $hmac->hash($salt . pack('N', $i++));
-                            for ($j = 2; $j <= $count; ++$j) {
-                                $u = $hmac->hash($u);
-                                $f^= $u;
-                            }
-                            $key.= $f;
-                        }
-                        $key = substr($key, 0, $dkLen);
-                        break;
-                    default:
-                        $key = hash_pbkdf2($hash, $password, $salt, $count, $dkLen, true);
-                }
-        }
-
-        $this->setKey($key);
-
-        return true;
-    }
-
-    /**
-     * Encrypts a message.
-     *
-     * $plaintext will be padded with additional bytes such that it's length is a multiple of the block size. Other cipher
-     * implementations may or may not pad in the same manner.  Other common approaches to padding and the reasons why it's
-     * necessary are discussed in the following
-     * URL:
-     *
-     * {@link http://www.di-mgt.com.au/cryptopad.html http://www.di-mgt.com.au/cryptopad.html}
-     *
-     * An alternative to padding is to, separately, send the length of the file.  This is what SSH, in fact, does.
-     * strlen($plaintext) will still need to be a multiple of the block size, however, arbitrary values can be added to make it that
-     * length.
-     *
-     * @see self::decrypt()
-     * @access public
-     * @param string $plaintext
-     * @return string $ciphertext
-     * @internal Could, but not must, extend by the child Crypt_* class
-     */
-    function encrypt($plaintext)
-    {
-        if ($this->paddable) {
-            $plaintext = $this->_pad($plaintext);
-        }
-
-        if ($this->engine === self::ENGINE_OPENSSL) {
-            if ($this->changed) {
-                $this->_clearBuffers();
-                $this->changed = false;
-            }
-            switch ($this->mode) {
-                case self::MODE_STREAM:
-                    return openssl_encrypt($plaintext, $this->cipher_name_openssl, $this->key, $this->openssl_options);
-                case self::MODE_ECB:
-                    $result = openssl_encrypt($plaintext, $this->cipher_name_openssl, $this->key, $this->openssl_options);
-                    return !defined('OPENSSL_RAW_DATA') ? substr($result, 0, -$this->block_size) : $result;
-                case self::MODE_CBC:
-                    $result = openssl_encrypt($plaintext, $this->cipher_name_openssl, $this->key, $this->openssl_options, $this->encryptIV);
-                    if (!defined('OPENSSL_RAW_DATA')) {
-                        $result = substr($result, 0, -$this->block_size);
-                    }
-                    if ($this->continuousBuffer) {
-                        $this->encryptIV = substr($result, -$this->block_size);
-                    }
-                    return $result;
-                case self::MODE_CTR:
-                    return $this->_openssl_ctr_process($plaintext, $this->encryptIV, $this->enbuffer);
-                case self::MODE_CFB:
-                    // cfb loosely routines inspired by openssl's:
-                    // {@link http://cvs.openssl.org/fileview?f=openssl/crypto/modes/cfb128.c&v=1.3.2.2.2.1}
-                    $ciphertext = '';
-                    if ($this->continuousBuffer) {
-                        $iv = &$this->encryptIV;
-                        $pos = &$this->enbuffer['pos'];
-                    } else {
-                        $iv = $this->encryptIV;
-                        $pos = 0;
-                    }
-                    $len = strlen($plaintext);
-                    $i = 0;
-                    if ($pos) {
-                        $orig_pos = $pos;
-                        $max = $this->block_size - $pos;
-                        if ($len >= $max) {
-                            $i = $max;
-                            $len-= $max;
-                            $pos = 0;
-                        } else {
-                            $i = $len;
-                            $pos+= $len;
-                            $len = 0;
-                        }
-                        // ie. $i = min($max, $len), $len-= $i, $pos+= $i, $pos%= $blocksize
-                        $ciphertext = substr($iv, $orig_pos) ^ $plaintext;
-                        $iv = substr_replace($iv, $ciphertext, $orig_pos, $i);
-                        $plaintext = substr($plaintext, $i);
-                    }
-
-                    $overflow = $len % $this->block_size;
-
-                    if ($overflow) {
-                        $ciphertext.= openssl_encrypt(substr($plaintext, 0, -$overflow) . str_repeat("\0", $this->block_size), $this->cipher_name_openssl, $this->key, $this->openssl_options, $iv);
-                        $iv = $this->_string_pop($ciphertext, $this->block_size);
-
-                        $size = $len - $overflow;
-                        $block = $iv ^ substr($plaintext, -$overflow);
-                        $iv = substr_replace($iv, $block, 0, $overflow);
-                        $ciphertext.= $block;
-                        $pos = $overflow;
-                    } elseif ($len) {
-                        $ciphertext = openssl_encrypt($plaintext, $this->cipher_name_openssl, $this->key, $this->openssl_options, $iv);
-                        $iv = substr($ciphertext, -$this->block_size);
-                    }
-
-                    return $ciphertext;
-                case self::MODE_CFB8:
-                    $ciphertext = openssl_encrypt($plaintext, $this->cipher_name_openssl, $this->key, $this->openssl_options, $this->encryptIV);
-                    if ($this->continuousBuffer) {
-                        if (($len = strlen($ciphertext)) >= $this->block_size) {
-                            $this->encryptIV = substr($ciphertext, -$this->block_size);
-                        } else {
-                            $this->encryptIV = substr($this->encryptIV, $len - $this->block_size) . substr($ciphertext, -$len);
-                        }
-                    }
-                    return $ciphertext;
-                case self::MODE_OFB:
-                    return $this->_openssl_ofb_process($plaintext, $this->encryptIV, $this->enbuffer);
-            }
-        }
-
-        if ($this->engine === self::ENGINE_MCRYPT) {
-            if ($this->changed) {
-                $this->_setupMcrypt();
-                $this->changed = false;
-            }
-            if ($this->enchanged) {
-                @mcrypt_generic_init($this->enmcrypt, $this->key, $this->encryptIV);
-                $this->enchanged = false;
-            }
-
-            // re: {@link http://phpseclib.sourceforge.net/cfb-demo.phps}
-            // using mcrypt's default handing of CFB the above would output two different things.  using phpseclib's
-            // rewritten CFB implementation the above outputs the same thing twice.
-            if ($this->mode == self::MODE_CFB && $this->continuousBuffer) {
-                $block_size = $this->block_size;
-                $iv = &$this->encryptIV;
-                $pos = &$this->enbuffer['pos'];
-                $len = strlen($plaintext);
-                $ciphertext = '';
-                $i = 0;
-                if ($pos) {
-                    $orig_pos = $pos;
-                    $max = $block_size - $pos;
-                    if ($len >= $max) {
-                        $i = $max;
-                        $len-= $max;
-                        $pos = 0;
-                    } else {
-                        $i = $len;
-                        $pos+= $len;
-                        $len = 0;
-                    }
-                    $ciphertext = substr($iv, $orig_pos) ^ $plaintext;
-                    $iv = substr_replace($iv, $ciphertext, $orig_pos, $i);
-                    $this->enbuffer['enmcrypt_init'] = true;
-                }
-                if ($len >= $block_size) {
-                    if ($this->enbuffer['enmcrypt_init'] === false || $len > $this->cfb_init_len) {
-                        if ($this->enbuffer['enmcrypt_init'] === true) {
-                            @mcrypt_generic_init($this->enmcrypt, $this->key, $iv);
-                            $this->enbuffer['enmcrypt_init'] = false;
-                        }
-                        $ciphertext.= @mcrypt_generic($this->enmcrypt, substr($plaintext, $i, $len - $len % $block_size));
-                        $iv = substr($ciphertext, -$block_size);
-                        $len%= $block_size;
-                    } else {
-                        while ($len >= $block_size) {
-                            $iv = @mcrypt_generic($this->ecb, $iv) ^ substr($plaintext, $i, $block_size);
-                            $ciphertext.= $iv;
-                            $len-= $block_size;
-                            $i+= $block_size;
-                        }
-                    }
-                }
-
-                if ($len) {
-                    $iv = @mcrypt_generic($this->ecb, $iv);
-                    $block = $iv ^ substr($plaintext, -$len);
-                    $iv = substr_replace($iv, $block, 0, $len);
-                    $ciphertext.= $block;
-                    $pos = $len;
-                }
-
-                return $ciphertext;
-            }
-
-            $ciphertext = @mcrypt_generic($this->enmcrypt, $plaintext);
-
-            if (!$this->continuousBuffer) {
-                @mcrypt_generic_init($this->enmcrypt, $this->key, $this->encryptIV);
-            }
-
-            return $ciphertext;
-        }
-
-        if ($this->changed) {
-            $this->_setup();
-            $this->changed = false;
-        }
-        if ($this->use_inline_crypt) {
-            $inline = $this->inline_crypt;
-            return $inline('encrypt', $this, $plaintext);
-        }
-
-        $buffer = &$this->enbuffer;
-        $block_size = $this->block_size;
-        $ciphertext = '';
-        switch ($this->mode) {
-            case self::MODE_ECB:
-                for ($i = 0; $i < strlen($plaintext); $i+=$block_size) {
-                    $ciphertext.= $this->_encryptBlock(substr($plaintext, $i, $block_size));
-                }
-                break;
-            case self::MODE_CBC:
-                $xor = $this->encryptIV;
-                for ($i = 0; $i < strlen($plaintext); $i+=$block_size) {
-                    $block = substr($plaintext, $i, $block_size);
-                    $block = $this->_encryptBlock($block ^ $xor);
-                    $xor = $block;
-                    $ciphertext.= $block;
-                }
-                if ($this->continuousBuffer) {
-                    $this->encryptIV = $xor;
-                }
-                break;
-            case self::MODE_CTR:
-                $xor = $this->encryptIV;
-                if (strlen($buffer['ciphertext'])) {
-                    for ($i = 0; $i < strlen($plaintext); $i+=$block_size) {
-                        $block = substr($plaintext, $i, $block_size);
-                        if (strlen($block) > strlen($buffer['ciphertext'])) {
-                            $buffer['ciphertext'].= $this->_encryptBlock($xor);
-                        }
-                        $this->_increment_str($xor);
-                        $key = $this->_string_shift($buffer['ciphertext'], $block_size);
-                        $ciphertext.= $block ^ $key;
-                    }
-                } else {
-                    for ($i = 0; $i < strlen($plaintext); $i+=$block_size) {
-                        $block = substr($plaintext, $i, $block_size);
-                        $key = $this->_encryptBlock($xor);
-                        $this->_increment_str($xor);
-                        $ciphertext.= $block ^ $key;
-                    }
-                }
-                if ($this->continuousBuffer) {
-                    $this->encryptIV = $xor;
-                    if ($start = strlen($plaintext) % $block_size) {
-                        $buffer['ciphertext'] = substr($key, $start) . $buffer['ciphertext'];
-                    }
-                }
-                break;
-            case self::MODE_CFB:
-                // cfb loosely routines inspired by openssl's:
-                // {@link http://cvs.openssl.org/fileview?f=openssl/crypto/modes/cfb128.c&v=1.3.2.2.2.1}
-                if ($this->continuousBuffer) {
-                    $iv = &$this->encryptIV;
-                    $pos = &$buffer['pos'];
-                } else {
-                    $iv = $this->encryptIV;
-                    $pos = 0;
-                }
-                $len = strlen($plaintext);
-                $i = 0;
-                if ($pos) {
-                    $orig_pos = $pos;
-                    $max = $block_size - $pos;
-                    if ($len >= $max) {
-                        $i = $max;
-                        $len-= $max;
-                        $pos = 0;
-                    } else {
-                        $i = $len;
-                        $pos+= $len;
-                        $len = 0;
-                    }
-                    // ie. $i = min($max, $len), $len-= $i, $pos+= $i, $pos%= $blocksize
-                    $ciphertext = substr($iv, $orig_pos) ^ $plaintext;
-                    $iv = substr_replace($iv, $ciphertext, $orig_pos, $i);
-                }
-                while ($len >= $block_size) {
-                    $iv = $this->_encryptBlock($iv) ^ substr($plaintext, $i, $block_size);
-                    $ciphertext.= $iv;
-                    $len-= $block_size;
-                    $i+= $block_size;
-                }
-                if ($len) {
-                    $iv = $this->_encryptBlock($iv);
-                    $block = $iv ^ substr($plaintext, $i);
-                    $iv = substr_replace($iv, $block, 0, $len);
-                    $ciphertext.= $block;
-                    $pos = $len;
-                }
-                break;
-            case self::MODE_CFB8:
-                $ciphertext = '';
-                $len = strlen($plaintext);
-                $iv = $this->encryptIV;
-
-                for ($i = 0; $i < $len; ++$i) {
-                    $ciphertext .= ($c = $plaintext[$i] ^ $this->_encryptBlock($iv));
-                    $iv = substr($iv, 1) . $c;
-                }
-
-                if ($this->continuousBuffer) {
-                    if ($len >= $block_size) {
-                        $this->encryptIV = substr($ciphertext, -$block_size);
-                    } else {
-                        $this->encryptIV = substr($this->encryptIV, $len - $block_size) . substr($ciphertext, -$len);
-                    }
-                }
-                break;
-            case self::MODE_OFB:
-                $xor = $this->encryptIV;
-                if (strlen($buffer['xor'])) {
-                    for ($i = 0; $i < strlen($plaintext); $i+=$block_size) {
-                        $block = substr($plaintext, $i, $block_size);
-                        if (strlen($block) > strlen($buffer['xor'])) {
-                            $xor = $this->_encryptBlock($xor);
-                            $buffer['xor'].= $xor;
-                        }
-                        $key = $this->_string_shift($buffer['xor'], $block_size);
-                        $ciphertext.= $block ^ $key;
-                    }
-                } else {
-                    for ($i = 0; $i < strlen($plaintext); $i+=$block_size) {
-                        $xor = $this->_encryptBlock($xor);
-                        $ciphertext.= substr($plaintext, $i, $block_size) ^ $xor;
-                    }
-                    $key = $xor;
-                }
-                if ($this->continuousBuffer) {
-                    $this->encryptIV = $xor;
-                    if ($start = strlen($plaintext) % $block_size) {
-                        $buffer['xor'] = substr($key, $start) . $buffer['xor'];
-                    }
-                }
-                break;
-            case self::MODE_STREAM:
-                $ciphertext = $this->_encryptBlock($plaintext);
-                break;
-        }
-
-        return $ciphertext;
-    }
-
-    /**
-     * Decrypts a message.
-     *
-     * If strlen($ciphertext) is not a multiple of the block size, null bytes will be added to the end of the string until
-     * it is.
-     *
-     * @see self::encrypt()
-     * @access public
-     * @param string $ciphertext
-     * @return string $plaintext
-     * @internal Could, but not must, extend by the child Crypt_* class
-     */
-    function decrypt($ciphertext)
-    {
-        if ($this->paddable) {
-            // we pad with chr(0) since that's what mcrypt_generic does.  to quote from {@link http://www.php.net/function.mcrypt-generic}:
-            // "The data is padded with "\0" to make sure the length of the data is n * blocksize."
-            $ciphertext = str_pad($ciphertext, strlen($ciphertext) + ($this->block_size - strlen($ciphertext) % $this->block_size) % $this->block_size, chr(0));
-        }
-
-        if ($this->engine === self::ENGINE_OPENSSL) {
-            if ($this->changed) {
-                $this->_clearBuffers();
-                $this->changed = false;
-            }
-            switch ($this->mode) {
-                case self::MODE_STREAM:
-                    $plaintext = openssl_decrypt($ciphertext, $this->cipher_name_openssl, $this->key, $this->openssl_options);
-                    break;
-                case self::MODE_ECB:
-                    if (!defined('OPENSSL_RAW_DATA')) {
-                        $ciphertext.= openssl_encrypt('', $this->cipher_name_openssl_ecb, $this->key, true);
-                    }
-                    $plaintext = openssl_decrypt($ciphertext, $this->cipher_name_openssl, $this->key, $this->openssl_options);
-                    break;
-                case self::MODE_CBC:
-                    if (!defined('OPENSSL_RAW_DATA')) {
-                        $padding = str_repeat(chr($this->block_size), $this->block_size) ^ substr($ciphertext, -$this->block_size);
-                        $ciphertext.= substr(openssl_encrypt($padding, $this->cipher_name_openssl_ecb, $this->key, true), 0, $this->block_size);
-                        $offset = 2 * $this->block_size;
-                    } else {
-                        $offset = $this->block_size;
-                    }
-                    $plaintext = openssl_decrypt($ciphertext, $this->cipher_name_openssl, $this->key, $this->openssl_options, $this->decryptIV);
-                    if ($this->continuousBuffer) {
-                        $this->decryptIV = substr($ciphertext, -$offset, $this->block_size);
-                    }
-                    break;
-                case self::MODE_CTR:
-                    $plaintext = $this->_openssl_ctr_process($ciphertext, $this->decryptIV, $this->debuffer);
-                    break;
-                case self::MODE_CFB:
-                    // cfb loosely routines inspired by openssl's:
-                    // {@link http://cvs.openssl.org/fileview?f=openssl/crypto/modes/cfb128.c&v=1.3.2.2.2.1}
-                    $plaintext = '';
-                    if ($this->continuousBuffer) {
-                        $iv = &$this->decryptIV;
-                        $pos = &$this->buffer['pos'];
-                    } else {
-                        $iv = $this->decryptIV;
-                        $pos = 0;
-                    }
-                    $len = strlen($ciphertext);
-                    $i = 0;
-                    if ($pos) {
-                        $orig_pos = $pos;
-                        $max = $this->block_size - $pos;
-                        if ($len >= $max) {
-                            $i = $max;
-                            $len-= $max;
-                            $pos = 0;
-                        } else {
-                            $i = $len;
-                            $pos+= $len;
-                            $len = 0;
-                        }
-                        // ie. $i = min($max, $len), $len-= $i, $pos+= $i, $pos%= $this->blocksize
-                        $plaintext = substr($iv, $orig_pos) ^ $ciphertext;
-                        $iv = substr_replace($iv, substr($ciphertext, 0, $i), $orig_pos, $i);
-                        $ciphertext = substr($ciphertext, $i);
-                    }
-                    $overflow = $len % $this->block_size;
-                    if ($overflow) {
-                        $plaintext.= openssl_decrypt(substr($ciphertext, 0, -$overflow), $this->cipher_name_openssl, $this->key, $this->openssl_options, $iv);
-                        if ($len - $overflow) {
-                            $iv = substr($ciphertext, -$overflow - $this->block_size, -$overflow);
-                        }
-                        $iv = openssl_encrypt(str_repeat("\0", $this->block_size), $this->cipher_name_openssl, $this->key, $this->openssl_options, $iv);
-                        $plaintext.= $iv ^ substr($ciphertext, -$overflow);
-                        $iv = substr_replace($iv, substr($ciphertext, -$overflow), 0, $overflow);
-                        $pos = $overflow;
-                    } elseif ($len) {
-                        $plaintext.= openssl_decrypt($ciphertext, $this->cipher_name_openssl, $this->key, $this->openssl_options, $iv);
-                        $iv = substr($ciphertext, -$this->block_size);
-                    }
-                    break;
-                case self::MODE_CFB8:
-                    $plaintext = openssl_decrypt($ciphertext, $this->cipher_name_openssl, $this->key, $this->openssl_options, $this->decryptIV);
-                    if ($this->continuousBuffer) {
-                        if (($len = strlen($ciphertext)) >= $this->block_size) {
-                            $this->decryptIV = substr($ciphertext, -$this->block_size);
-                        } else {
-                            $this->decryptIV = substr($this->decryptIV, $len - $this->block_size) . substr($ciphertext, -$len);
-                        }
-                    }
-                    break;
-                case self::MODE_OFB:
-                    $plaintext = $this->_openssl_ofb_process($ciphertext, $this->decryptIV, $this->debuffer);
-            }
-
-            return $this->paddable ? $this->_unpad($plaintext) : $plaintext;
-        }
-
-        if ($this->engine === self::ENGINE_MCRYPT) {
-            $block_size = $this->block_size;
-            if ($this->changed) {
-                $this->_setupMcrypt();
-                $this->changed = false;
-            }
-            if ($this->dechanged) {
-                @mcrypt_generic_init($this->demcrypt, $this->key, $this->decryptIV);
-                $this->dechanged = false;
-            }
-
-            if ($this->mode == self::MODE_CFB && $this->continuousBuffer) {
-                $iv = &$this->decryptIV;
-                $pos = &$this->debuffer['pos'];
-                $len = strlen($ciphertext);
-                $plaintext = '';
-                $i = 0;
-                if ($pos) {
-                    $orig_pos = $pos;
-                    $max = $block_size - $pos;
-                    if ($len >= $max) {
-                        $i = $max;
-                        $len-= $max;
-                        $pos = 0;
-                    } else {
-                        $i = $len;
-                        $pos+= $len;
-                        $len = 0;
-                    }
-                    // ie. $i = min($max, $len), $len-= $i, $pos+= $i, $pos%= $blocksize
-                    $plaintext = substr($iv, $orig_pos) ^ $ciphertext;
-                    $iv = substr_replace($iv, substr($ciphertext, 0, $i), $orig_pos, $i);
-                }
-                if ($len >= $block_size) {
-                    $cb = substr($ciphertext, $i, $len - $len % $block_size);
-                    $plaintext.= @mcrypt_generic($this->ecb, $iv . $cb) ^ $cb;
-                    $iv = substr($cb, -$block_size);
-                    $len%= $block_size;
-                }
-                if ($len) {
-                    $iv = @mcrypt_generic($this->ecb, $iv);
-                    $plaintext.= $iv ^ substr($ciphertext, -$len);
-                    $iv = substr_replace($iv, substr($ciphertext, -$len), 0, $len);
-                    $pos = $len;
-                }
-
-                return $plaintext;
-            }
-
-            $plaintext = @mdecrypt_generic($this->demcrypt, $ciphertext);
-
-            if (!$this->continuousBuffer) {
-                @mcrypt_generic_init($this->demcrypt, $this->key, $this->decryptIV);
-            }
-
-            return $this->paddable ? $this->_unpad($plaintext) : $plaintext;
-        }
-
-        if ($this->changed) {
-            $this->_setup();
-            $this->changed = false;
-        }
-        if ($this->use_inline_crypt) {
-            $inline = $this->inline_crypt;
-            return $inline('decrypt', $this, $ciphertext);
-        }
-
-        $block_size = $this->block_size;
-
-        $buffer = &$this->debuffer;
-        $plaintext = '';
-        switch ($this->mode) {
-            case self::MODE_ECB:
-                for ($i = 0; $i < strlen($ciphertext); $i+=$block_size) {
-                    $plaintext.= $this->_decryptBlock(substr($ciphertext, $i, $block_size));
-                }
-                break;
-            case self::MODE_CBC:
-                $xor = $this->decryptIV;
-                for ($i = 0; $i < strlen($ciphertext); $i+=$block_size) {
-                    $block = substr($ciphertext, $i, $block_size);
-                    $plaintext.= $this->_decryptBlock($block) ^ $xor;
-                    $xor = $block;
-                }
-                if ($this->continuousBuffer) {
-                    $this->decryptIV = $xor;
-                }
-                break;
-            case self::MODE_CTR:
-                $xor = $this->decryptIV;
-                if (strlen($buffer['ciphertext'])) {
-                    for ($i = 0; $i < strlen($ciphertext); $i+=$block_size) {
-                        $block = substr($ciphertext, $i, $block_size);
-                        if (strlen($block) > strlen($buffer['ciphertext'])) {
-                            $buffer['ciphertext'].= $this->_encryptBlock($xor);
-                            $this->_increment_str($xor);
-                        }
-                        $key = $this->_string_shift($buffer['ciphertext'], $block_size);
-                        $plaintext.= $block ^ $key;
-                    }
-                } else {
-                    for ($i = 0; $i < strlen($ciphertext); $i+=$block_size) {
-                        $block = substr($ciphertext, $i, $block_size);
-                        $key = $this->_encryptBlock($xor);
-                        $this->_increment_str($xor);
-                        $plaintext.= $block ^ $key;
-                    }
-                }
-                if ($this->continuousBuffer) {
-                    $this->decryptIV = $xor;
-                    if ($start = strlen($ciphertext) % $block_size) {
-                        $buffer['ciphertext'] = substr($key, $start) . $buffer['ciphertext'];
-                    }
-                }
-                break;
-            case self::MODE_CFB:
-                if ($this->continuousBuffer) {
-                    $iv = &$this->decryptIV;
-                    $pos = &$buffer['pos'];
-                } else {
-                    $iv = $this->decryptIV;
-                    $pos = 0;
-                }
-                $len = strlen($ciphertext);
-                $i = 0;
-                if ($pos) {
-                    $orig_pos = $pos;
-                    $max = $block_size - $pos;
-                    if ($len >= $max) {
-                        $i = $max;
-                        $len-= $max;
-                        $pos = 0;
-                    } else {
-                        $i = $len;
-                        $pos+= $len;
-                        $len = 0;
-                    }
-                    // ie. $i = min($max, $len), $len-= $i, $pos+= $i, $pos%= $blocksize
-                    $plaintext = substr($iv, $orig_pos) ^ $ciphertext;
-                    $iv = substr_replace($iv, substr($ciphertext, 0, $i), $orig_pos, $i);
-                }
-                while ($len >= $block_size) {
-                    $iv = $this->_encryptBlock($iv);
-                    $cb = substr($ciphertext, $i, $block_size);
-                    $plaintext.= $iv ^ $cb;
-                    $iv = $cb;
-                    $len-= $block_size;
-                    $i+= $block_size;
-                }
-                if ($len) {
-                    $iv = $this->_encryptBlock($iv);
-                    $plaintext.= $iv ^ substr($ciphertext, $i);
-                    $iv = substr_replace($iv, substr($ciphertext, $i), 0, $len);
-                    $pos = $len;
-                }
-                break;
-            case self::MODE_CFB8:
-                $plaintext = '';
-                $len = strlen($ciphertext);
-                $iv = $this->decryptIV;
-
-                for ($i = 0; $i < $len; ++$i) {
-                    $plaintext .= $ciphertext[$i] ^ $this->_encryptBlock($iv);
-                    $iv = substr($iv, 1) . $ciphertext[$i];
-                }
-
-                if ($this->continuousBuffer) {
-                    if ($len >= $block_size) {
-                        $this->decryptIV = substr($ciphertext, -$block_size);
-                    } else {
-                        $this->decryptIV = substr($this->decryptIV, $len - $block_size) . substr($ciphertext, -$len);
-                    }
-                }
-                break;
-            case self::MODE_OFB:
-                $xor = $this->decryptIV;
-                if (strlen($buffer['xor'])) {
-                    for ($i = 0; $i < strlen($ciphertext); $i+=$block_size) {
-                        $block = substr($ciphertext, $i, $block_size);
-                        if (strlen($block) > strlen($buffer['xor'])) {
-                            $xor = $this->_encryptBlock($xor);
-                            $buffer['xor'].= $xor;
-                        }
-                        $key = $this->_string_shift($buffer['xor'], $block_size);
-                        $plaintext.= $block ^ $key;
-                    }
-                } else {
-                    for ($i = 0; $i < strlen($ciphertext); $i+=$block_size) {
-                        $xor = $this->_encryptBlock($xor);
-                        $plaintext.= substr($ciphertext, $i, $block_size) ^ $xor;
-                    }
-                    $key = $xor;
-                }
-                if ($this->continuousBuffer) {
-                    $this->decryptIV = $xor;
-                    if ($start = strlen($ciphertext) % $block_size) {
-                        $buffer['xor'] = substr($key, $start) . $buffer['xor'];
-                    }
-                }
-                break;
-            case self::MODE_STREAM:
-                $plaintext = $this->_decryptBlock($ciphertext);
-                break;
-        }
-        return $this->paddable ? $this->_unpad($plaintext) : $plaintext;
-    }
-
-    /**
-     * OpenSSL CTR Processor
-     *
-     * PHP's OpenSSL bindings do not operate in continuous mode so we'll wrap around it. Since the keystream
-     * for CTR is the same for both encrypting and decrypting this function is re-used by both Base::encrypt()
-     * and Base::decrypt(). Also, OpenSSL doesn't implement CTR for all of it's symmetric ciphers so this
-     * function will emulate CTR with ECB when necessary.
-     *
-     * @see self::encrypt()
-     * @see self::decrypt()
-     * @param string $plaintext
-     * @param string $encryptIV
-     * @param array $buffer
-     * @return string
-     * @access private
-     */
-    function _openssl_ctr_process($plaintext, &$encryptIV, &$buffer)
-    {
-        $ciphertext = '';
-
-        $block_size = $this->block_size;
-        $key = $this->key;
-
-        if ($this->openssl_emulate_ctr) {
-            $xor = $encryptIV;
-            if (strlen($buffer['ciphertext'])) {
-                for ($i = 0; $i < strlen($plaintext); $i+=$block_size) {
-                    $block = substr($plaintext, $i, $block_size);
-                    if (strlen($block) > strlen($buffer['ciphertext'])) {
-                        $result = openssl_encrypt($xor, $this->cipher_name_openssl_ecb, $key, $this->openssl_options);
-                        $result = !defined('OPENSSL_RAW_DATA') ? substr($result, 0, -$this->block_size) : $result;
-                        $buffer['ciphertext'].= $result;
-                    }
-                    $this->_increment_str($xor);
-                    $otp = $this->_string_shift($buffer['ciphertext'], $block_size);
-                    $ciphertext.= $block ^ $otp;
-                }
-            } else {
-                for ($i = 0; $i < strlen($plaintext); $i+=$block_size) {
-                    $block = substr($plaintext, $i, $block_size);
-                    $otp = openssl_encrypt($xor, $this->cipher_name_openssl_ecb, $key, $this->openssl_options);
-                    $otp = !defined('OPENSSL_RAW_DATA') ? substr($otp, 0, -$this->block_size) : $otp;
-                    $this->_increment_str($xor);
-                    $ciphertext.= $block ^ $otp;
-                }
-            }
-            if ($this->continuousBuffer) {
-                $encryptIV = $xor;
-                if ($start = strlen($plaintext) % $block_size) {
-                    $buffer['ciphertext'] = substr($key, $start) . $buffer['ciphertext'];
-                }
-            }
-
-            return $ciphertext;
-        }
-
-        if (strlen($buffer['ciphertext'])) {
-            $ciphertext = $plaintext ^ $this->_string_shift($buffer['ciphertext'], strlen($plaintext));
-            $plaintext = substr($plaintext, strlen($ciphertext));
-
-            if (!strlen($plaintext)) {
-                return $ciphertext;
-            }
-        }
-
-        $overflow = strlen($plaintext) % $block_size;
-        if ($overflow) {
-            $plaintext2 = $this->_string_pop($plaintext, $overflow); // ie. trim $plaintext to a multiple of $block_size and put rest of $plaintext in $plaintext2
-            $encrypted = openssl_encrypt($plaintext . str_repeat("\0", $block_size), $this->cipher_name_openssl, $key, $this->openssl_options, $encryptIV);
-            $temp = $this->_string_pop($encrypted, $block_size);
-            $ciphertext.= $encrypted . ($plaintext2 ^ $temp);
-            if ($this->continuousBuffer) {
-                $buffer['ciphertext'] = substr($temp, $overflow);
-                $encryptIV = $temp;
-            }
-        } elseif (!strlen($buffer['ciphertext'])) {
-            $ciphertext.= openssl_encrypt($plaintext . str_repeat("\0", $block_size), $this->cipher_name_openssl, $key, $this->openssl_options, $encryptIV);
-            $temp = $this->_string_pop($ciphertext, $block_size);
-            if ($this->continuousBuffer) {
-                $encryptIV = $temp;
-            }
-        }
-        if ($this->continuousBuffer) {
-            if (!defined('OPENSSL_RAW_DATA')) {
-                $encryptIV.= openssl_encrypt('', $this->cipher_name_openssl_ecb, $key, $this->openssl_options);
-            }
-            $encryptIV = openssl_decrypt($encryptIV, $this->cipher_name_openssl_ecb, $key, $this->openssl_options);
-            if ($overflow) {
-                $this->_increment_str($encryptIV);
-            }
-        }
-
-        return $ciphertext;
-    }
-
-    /**
-     * OpenSSL OFB Processor
-     *
-     * PHP's OpenSSL bindings do not operate in continuous mode so we'll wrap around it. Since the keystream
-     * for OFB is the same for both encrypting and decrypting this function is re-used by both Base::encrypt()
-     * and Base::decrypt().
-     *
-     * @see self::encrypt()
-     * @see self::decrypt()
-     * @param string $plaintext
-     * @param string $encryptIV
-     * @param array $buffer
-     * @return string
-     * @access private
-     */
-    function _openssl_ofb_process($plaintext, &$encryptIV, &$buffer)
-    {
-        if (strlen($buffer['xor'])) {
-            $ciphertext = $plaintext ^ $buffer['xor'];
-            $buffer['xor'] = substr($buffer['xor'], strlen($ciphertext));
-            $plaintext = substr($plaintext, strlen($ciphertext));
-        } else {
-            $ciphertext = '';
-        }
-
-        $block_size = $this->block_size;
-
-        $len = strlen($plaintext);
-        $key = $this->key;
-        $overflow = $len % $block_size;
-
-        if (strlen($plaintext)) {
-            if ($overflow) {
-                $ciphertext.= openssl_encrypt(substr($plaintext, 0, -$overflow) . str_repeat("\0", $block_size), $this->cipher_name_openssl, $key, $this->openssl_options, $encryptIV);
-                $xor = $this->_string_pop($ciphertext, $block_size);
-                if ($this->continuousBuffer) {
-                    $encryptIV = $xor;
-                }
-                $ciphertext.= $this->_string_shift($xor, $overflow) ^ substr($plaintext, -$overflow);
-                if ($this->continuousBuffer) {
-                    $buffer['xor'] = $xor;
-                }
-            } else {
-                $ciphertext = openssl_encrypt($plaintext, $this->cipher_name_openssl, $key, $this->openssl_options, $encryptIV);
-                if ($this->continuousBuffer) {
-                    $encryptIV = substr($ciphertext, -$block_size) ^ substr($plaintext, -$block_size);
-                }
-            }
-        }
-
-        return $ciphertext;
-    }
-
-    /**
-     * phpseclib <-> OpenSSL Mode Mapper
-     *
-     * May need to be overwritten by classes extending this one in some cases
-     *
-     * @return int
-     * @access private
-     */
-    function _openssl_translate_mode()
-    {
-        switch ($this->mode) {
-            case self::MODE_ECB:
-                return 'ecb';
-            case self::MODE_CBC:
-                return 'cbc';
-            case self::MODE_CTR:
-                return 'ctr';
-            case self::MODE_CFB:
-                return 'cfb';
-            case self::MODE_CFB8:
-                return 'cfb8';
-            case self::MODE_OFB:
-                return 'ofb';
-        }
-    }
-
-    /**
-     * Pad "packets".
-     *
-     * Block ciphers working by encrypting between their specified [$this->]block_size at a time
-     * If you ever need to encrypt or decrypt something that isn't of the proper length, it becomes necessary to
-     * pad the input so that it is of the proper length.
-     *
-     * Padding is enabled by default.  Sometimes, however, it is undesirable to pad strings.  Such is the case in SSH,
-     * where "packets" are padded with random bytes before being encrypted.  Unpad these packets and you risk stripping
-     * away characters that shouldn't be stripped away. (SSH knows how many bytes are added because the length is
-     * transmitted separately)
-     *
-     * @see self::disablePadding()
-     * @access public
-     */
-    function enablePadding()
-    {
-        $this->padding = true;
-    }
-
-    /**
-     * Do not pad packets.
-     *
-     * @see self::enablePadding()
-     * @access public
-     */
-    function disablePadding()
-    {
-        $this->padding = false;
-    }
-
-    /**
-     * Treat consecutive "packets" as if they are a continuous buffer.
-     *
-     * Say you have a 32-byte plaintext $plaintext.  Using the default behavior, the two following code snippets
-     * will yield different outputs:
-     *
-     * <code>
-     *    echo $rijndael->encrypt(substr($plaintext,  0, 16));
-     *    echo $rijndael->encrypt(substr($plaintext, 16, 16));
-     * </code>
-     * <code>
-     *    echo $rijndael->encrypt($plaintext);
-     * </code>
-     *
-     * The solution is to enable the continuous buffer.  Although this will resolve the above discrepancy, it creates
-     * another, as demonstrated with the following:
-     *
-     * <code>
-     *    $rijndael->encrypt(substr($plaintext, 0, 16));
-     *    echo $rijndael->decrypt($rijndael->encrypt(substr($plaintext, 16, 16)));
-     * </code>
-     * <code>
-     *    echo $rijndael->decrypt($rijndael->encrypt(substr($plaintext, 16, 16)));
-     * </code>
-     *
-     * With the continuous buffer disabled, these would yield the same output.  With it enabled, they yield different
-     * outputs.  The reason is due to the fact that the initialization vector's change after every encryption /
-     * decryption round when the continuous buffer is enabled.  When it's disabled, they remain constant.
-     *
-     * Put another way, when the continuous buffer is enabled, the state of the \phpseclib\Crypt\*() object changes after each
-     * encryption / decryption round, whereas otherwise, it'd remain constant.  For this reason, it's recommended that
-     * continuous buffers not be used.  They do offer better security and are, in fact, sometimes required (SSH uses them),
-     * however, they are also less intuitive and more likely to cause you problems.
-     *
-     * @see self::disableContinuousBuffer()
-     * @access public
-     * @internal Could, but not must, extend by the child Crypt_* class
-     */
-    function enableContinuousBuffer()
-    {
-        if ($this->mode == self::MODE_ECB) {
-            return;
-        }
-
-        $this->continuousBuffer = true;
-
-        $this->_setEngine();
-    }
-
-    /**
-     * Treat consecutive packets as if they are a discontinuous buffer.
-     *
-     * The default behavior.
-     *
-     * @see self::enableContinuousBuffer()
-     * @access public
-     * @internal Could, but not must, extend by the child Crypt_* class
-     */
-    function disableContinuousBuffer()
-    {
-        if ($this->mode == self::MODE_ECB) {
-            return;
-        }
-        if (!$this->continuousBuffer) {
-            return;
-        }
-
-        $this->continuousBuffer = false;
-        $this->changed = true;
-
-        $this->_setEngine();
-    }
-
-    /**
-     * Test for engine validity
-     *
-     * @see self::__construct()
-     * @param int $engine
-     * @access public
-     * @return bool
-     */
-    function isValidEngine($engine)
-    {
-        switch ($engine) {
-            case self::ENGINE_OPENSSL:
-                if ($this->mode == self::MODE_STREAM && $this->continuousBuffer) {
-                    return false;
-                }
-                $this->openssl_emulate_ctr = false;
-                $result = $this->cipher_name_openssl &&
-                          extension_loaded('openssl') &&
-                          // PHP 5.3.0 - 5.3.2 did not let you set IV's
-                          version_compare(PHP_VERSION, '5.3.3', '>=');
-                if (!$result) {
-                    return false;
-                }
-
-                // prior to PHP 5.4.0 OPENSSL_RAW_DATA and OPENSSL_ZERO_PADDING were not defined. instead of expecting an integer
-                // $options openssl_encrypt expected a boolean $raw_data.
-                if (!defined('OPENSSL_RAW_DATA')) {
-                    $this->openssl_options = true;
-                } else {
-                    $this->openssl_options = OPENSSL_RAW_DATA | OPENSSL_ZERO_PADDING;
-                }
-
-                $methods = openssl_get_cipher_methods();
-                if (in_array($this->cipher_name_openssl, $methods)) {
-                    return true;
-                }
-                // not all of openssl's symmetric cipher's support ctr. for those
-                // that don't we'll emulate it
-                switch ($this->mode) {
-                    case self::MODE_CTR:
-                        if (in_array($this->cipher_name_openssl_ecb, $methods)) {
-                            $this->openssl_emulate_ctr = true;
-                            return true;
-                        }
-                }
-                return false;
-            case self::ENGINE_MCRYPT:
-                return $this->cipher_name_mcrypt &&
-                       extension_loaded('mcrypt') &&
-                       in_array($this->cipher_name_mcrypt, @mcrypt_list_algorithms());
-            case self::ENGINE_INTERNAL:
-                return true;
-        }
-
-        return false;
-    }
-
-    /**
-     * Sets the preferred crypt engine
-     *
-     * Currently, $engine could be:
-     *
-     * - \phpseclib\Crypt\Base::ENGINE_OPENSSL  [very fast]
-     *
-     * - \phpseclib\Crypt\Base::ENGINE_MCRYPT   [fast]
-     *
-     * - \phpseclib\Crypt\Base::ENGINE_INTERNAL [slow]
-     *
-     * If the preferred crypt engine is not available the fastest available one will be used
-     *
-     * @see self::__construct()
-     * @param int $engine
-     * @access public
-     */
-    function setPreferredEngine($engine)
-    {
-        switch ($engine) {
-            //case self::ENGINE_OPENSSL;
-            case self::ENGINE_MCRYPT:
-            case self::ENGINE_INTERNAL:
-                $this->preferredEngine = $engine;
-                break;
-            default:
-                $this->preferredEngine = self::ENGINE_OPENSSL;
-        }
-
-        $this->_setEngine();
-    }
-
-    /**
-     * Returns the engine currently being utilized
-     *
-     * @see self::_setEngine()
-     * @access public
-     */
-    function getEngine()
-    {
-        return $this->engine;
-    }
-
-    /**
-     * Sets the engine as appropriate
-     *
-     * @see self::__construct()
-     * @access private
-     */
-    function _setEngine()
-    {
-        $this->engine = null;
-
-        $candidateEngines = array(
-            $this->preferredEngine,
-            self::ENGINE_OPENSSL,
-            self::ENGINE_MCRYPT
-        );
-        foreach ($candidateEngines as $engine) {
-            if ($this->isValidEngine($engine)) {
-                $this->engine = $engine;
-                break;
-            }
-        }
-        if (!$this->engine) {
-            $this->engine = self::ENGINE_INTERNAL;
-        }
-
-        if ($this->engine != self::ENGINE_MCRYPT && $this->enmcrypt) {
-            // Closing the current mcrypt resource(s). _mcryptSetup() will, if needed,
-            // (re)open them with the module named in $this->cipher_name_mcrypt
-            @mcrypt_module_close($this->enmcrypt);
-            @mcrypt_module_close($this->demcrypt);
-            $this->enmcrypt = null;
-            $this->demcrypt = null;
-
-            if ($this->ecb) {
-                @mcrypt_module_close($this->ecb);
-                $this->ecb = null;
-            }
-        }
-
-        $this->changed = true;
-    }
-
-    /**
-     * Encrypts a block
-     *
-     * Note: Must be extended by the child \phpseclib\Crypt\* class
-     *
-     * @access private
-     * @param string $in
-     * @return string
-     */
-    abstract function _encryptBlock($in);
-
-    /**
-     * Decrypts a block
-     *
-     * Note: Must be extended by the child \phpseclib\Crypt\* class
-     *
-     * @access private
-     * @param string $in
-     * @return string
-     */
-    abstract function _decryptBlock($in);
-
-    /**
-     * Setup the key (expansion)
-     *
-     * Only used if $engine == self::ENGINE_INTERNAL
-     *
-     * Note: Must extend by the child \phpseclib\Crypt\* class
-     *
-     * @see self::_setup()
-     * @access private
-     */
-    abstract function _setupKey();
-
-    /**
-     * Setup the self::ENGINE_INTERNAL $engine
-     *
-     * (re)init, if necessary, the internal cipher $engine and flush all $buffers
-     * Used (only) if $engine == self::ENGINE_INTERNAL
-     *
-     * _setup() will be called each time if $changed === true
-     * typically this happens when using one or more of following public methods:
-     *
-     * - setKey()
-     *
-     * - setIV()
-     *
-     * - disableContinuousBuffer()
-     *
-     * - First run of encrypt() / decrypt() with no init-settings
-     *
-     * @see self::setKey()
-     * @see self::setIV()
-     * @see self::disableContinuousBuffer()
-     * @access private
-     * @internal _setup() is always called before en/decryption.
-     * @internal Could, but not must, extend by the child Crypt_* class
-     */
-    function _setup()
-    {
-        $this->_clearBuffers();
-        $this->_setupKey();
-
-        if ($this->use_inline_crypt) {
-            $this->_setupInlineCrypt();
-        }
-    }
-
-    /**
-     * Setup the self::ENGINE_MCRYPT $engine
-     *
-     * (re)init, if necessary, the (ext)mcrypt resources and flush all $buffers
-     * Used (only) if $engine = self::ENGINE_MCRYPT
-     *
-     * _setupMcrypt() will be called each time if $changed === true
-     * typically this happens when using one or more of following public methods:
-     *
-     * - setKey()
-     *
-     * - setIV()
-     *
-     * - disableContinuousBuffer()
-     *
-     * - First run of encrypt() / decrypt()
-     *
-     * @see self::setKey()
-     * @see self::setIV()
-     * @see self::disableContinuousBuffer()
-     * @access private
-     * @internal Could, but not must, extend by the child Crypt_* class
-     */
-    function _setupMcrypt()
-    {
-        $this->_clearBuffers();
-        $this->enchanged = $this->dechanged = true;
-
-        if (!isset($this->enmcrypt)) {
-            static $mcrypt_modes = array(
-                self::MODE_CTR    => 'ctr',
-                self::MODE_ECB    => MCRYPT_MODE_ECB,
-                self::MODE_CBC    => MCRYPT_MODE_CBC,
-                self::MODE_CFB    => 'ncfb',
-                self::MODE_CFB8   => MCRYPT_MODE_CFB,
-                self::MODE_OFB    => MCRYPT_MODE_NOFB,
-                self::MODE_STREAM => MCRYPT_MODE_STREAM,
-            );
-
-            $this->demcrypt = @mcrypt_module_open($this->cipher_name_mcrypt, '', $mcrypt_modes[$this->mode], '');
-            $this->enmcrypt = @mcrypt_module_open($this->cipher_name_mcrypt, '', $mcrypt_modes[$this->mode], '');
-
-            // we need the $ecb mcrypt resource (only) in MODE_CFB with enableContinuousBuffer()
-            // to workaround mcrypt's broken ncfb implementation in buffered mode
-            // see: {@link http://phpseclib.sourceforge.net/cfb-demo.phps}
-            if ($this->mode == self::MODE_CFB) {
-                $this->ecb = @mcrypt_module_open($this->cipher_name_mcrypt, '', MCRYPT_MODE_ECB, '');
-            }
-        } // else should mcrypt_generic_deinit be called?
-
-        if ($this->mode == self::MODE_CFB) {
-            @mcrypt_generic_init($this->ecb, $this->key, str_repeat("\0", $this->block_size));
-        }
-    }
-
-    /**
-     * Pads a string
-     *
-     * Pads a string using the RSA PKCS padding standards so that its length is a multiple of the blocksize.
-     * $this->block_size - (strlen($text) % $this->block_size) bytes are added, each of which is equal to
-     * chr($this->block_size - (strlen($text) % $this->block_size)
-     *
-     * If padding is disabled and $text is not a multiple of the blocksize, the string will be padded regardless
-     * and padding will, hence forth, be enabled.
-     *
-     * @see self::_unpad()
-     * @param string $text
-     * @access private
-     * @return string
-     */
-    function _pad($text)
-    {
-        $length = strlen($text);
-
-        if (!$this->padding) {
-            if ($length % $this->block_size == 0) {
-                return $text;
-            } else {
-                user_error("The plaintext's length ($length) is not a multiple of the block size ({$this->block_size})");
-                $this->padding = true;
-            }
-        }
-
-        $pad = $this->block_size - ($length % $this->block_size);
-
-        return str_pad($text, $length + $pad, chr($pad));
-    }
-
-    /**
-     * Unpads a string.
-     *
-     * If padding is enabled and the reported padding length is invalid the encryption key will be assumed to be wrong
-     * and false will be returned.
-     *
-     * @see self::_pad()
-     * @param string $text
-     * @access private
-     * @return string
-     */
-    function _unpad($text)
-    {
-        if (!$this->padding) {
-            return $text;
-        }
-
-        $length = ord($text[strlen($text) - 1]);
-
-        if (!$length || $length > $this->block_size) {
-            return false;
-        }
-
-        return substr($text, 0, -$length);
-    }
-
-    /**
-     * Clears internal buffers
-     *
-     * Clearing/resetting the internal buffers is done everytime
-     * after disableContinuousBuffer() or on cipher $engine (re)init
-     * ie after setKey() or setIV()
-     *
-     * @access public
-     * @internal Could, but not must, extend by the child Crypt_* class
-     */
-    function _clearBuffers()
-    {
-        $this->enbuffer = $this->debuffer = array('ciphertext' => '', 'xor' => '', 'pos' => 0, 'enmcrypt_init' => true);
-
-        // mcrypt's handling of invalid's $iv:
-        // $this->encryptIV = $this->decryptIV = strlen($this->iv) == $this->block_size ? $this->iv : str_repeat("\0", $this->block_size);
-        $this->encryptIV = $this->decryptIV = str_pad(substr($this->iv, 0, $this->block_size), $this->block_size, "\0");
-
-        if (!$this->skip_key_adjustment) {
-            $this->key = str_pad(substr($this->key, 0, $this->key_length), $this->key_length, "\0");
-        }
-    }
-
-    /**
-     * String Shift
-     *
-     * Inspired by array_shift
-     *
-     * @param string $string
-     * @param int $index
-     * @access private
-     * @return string
-     */
-    function _string_shift(&$string, $index = 1)
-    {
-        $substr = substr($string, 0, $index);
-        $string = substr($string, $index);
-        return $substr;
-    }
-
-    /**
-     * String Pop
-     *
-     * Inspired by array_pop
-     *
-     * @param string $string
-     * @param int $index
-     * @access private
-     * @return string
-     */
-    function _string_pop(&$string, $index = 1)
-    {
-        $substr = substr($string, -$index);
-        $string = substr($string, 0, -$index);
-        return $substr;
-    }
-
-    /**
-     * Increment the current string
-     *
-     * @see self::decrypt()
-     * @see self::encrypt()
-     * @param string $var
-     * @access private
-     */
-    function _increment_str(&$var)
-    {
-        for ($i = 4; $i <= strlen($var); $i+= 4) {
-            $temp = substr($var, -$i, 4);
-            switch ($temp) {
-                case "\xFF\xFF\xFF\xFF":
-                    $var = substr_replace($var, "\x00\x00\x00\x00", -$i, 4);
-                    break;
-                case "\x7F\xFF\xFF\xFF":
-                    $var = substr_replace($var, "\x80\x00\x00\x00", -$i, 4);
-                    return;
-                default:
-                    $temp = unpack('Nnum', $temp);
-                    $var = substr_replace($var, pack('N', $temp['num'] + 1), -$i, 4);
-                    return;
-            }
-        }
-
-        $remainder = strlen($var) % 4;
-
-        if ($remainder == 0) {
-            return;
-        }
-
-        $temp = unpack('Nnum', str_pad(substr($var, 0, $remainder), 4, "\0", STR_PAD_LEFT));
-        $temp = substr(pack('N', $temp['num'] + 1), -$remainder);
-        $var = substr_replace($var, $temp, 0, $remainder);
-    }
-
-    /**
-     * Setup the performance-optimized function for de/encrypt()
-     *
-     * Stores the created (or existing) callback function-name
-     * in $this->inline_crypt
-     *
-     * Internally for phpseclib developers:
-     *
-     *     _setupInlineCrypt() would be called only if:
-     *
-     *     - $engine == self::ENGINE_INTERNAL and
-     *
-     *     - $use_inline_crypt === true
-     *
-     *     - each time on _setup(), after(!) _setupKey()
-     *
-     *
-     *     This ensures that _setupInlineCrypt() has always a
-     *     full ready2go initializated internal cipher $engine state
-     *     where, for example, the keys allready expanded,
-     *     keys/block_size calculated and such.
-     *
-     *     It is, each time if called, the responsibility of _setupInlineCrypt():
-     *
-     *     - to set $this->inline_crypt to a valid and fully working callback function
-     *       as a (faster) replacement for encrypt() / decrypt()
-     *
-     *     - NOT to create unlimited callback functions (for memory reasons!)
-     *       no matter how often _setupInlineCrypt() would be called. At some
-     *       point of amount they must be generic re-useable.
-     *
-     *     - the code of _setupInlineCrypt() it self,
-     *       and the generated callback code,
-     *       must be, in following order:
-     *       - 100% safe
-     *       - 100% compatible to encrypt()/decrypt()
-     *       - using only php5+ features/lang-constructs/php-extensions if
-     *         compatibility (down to php4) or fallback is provided
-     *       - readable/maintainable/understandable/commented and... not-cryptic-styled-code :-)
-     *       - >= 10% faster than encrypt()/decrypt() [which is, by the way,
-     *         the reason for the existence of _setupInlineCrypt() :-)]
-     *       - memory-nice
-     *       - short (as good as possible)
-     *
-     * Note: - _setupInlineCrypt() is using _createInlineCryptFunction() to create the full callback function code.
-     *       - In case of using inline crypting, _setupInlineCrypt() must extend by the child \phpseclib\Crypt\* class.
-     *       - The following variable names are reserved:
-     *         - $_*  (all variable names prefixed with an underscore)
-     *         - $self (object reference to it self. Do not use $this, but $self instead)
-     *         - $in (the content of $in has to en/decrypt by the generated code)
-     *       - The callback function should not use the 'return' statement, but en/decrypt'ing the content of $in only
-     *
-     *
-     * @see self::_setup()
-     * @see self::_createInlineCryptFunction()
-     * @see self::encrypt()
-     * @see self::decrypt()
-     * @access private
-     * @internal If a Crypt_* class providing inline crypting it must extend _setupInlineCrypt()
-     */
-    function _setupInlineCrypt()
-    {
-        // If, for any reason, an extending \phpseclib\Crypt\Base() \phpseclib\Crypt\* class
-        // not using inline crypting then it must be ensured that: $this->use_inline_crypt = false
-        // ie in the class var declaration of $use_inline_crypt in general for the \phpseclib\Crypt\* class,
-        // in the constructor at object instance-time
-        // or, if it's runtime-specific, at runtime
-
-        $this->use_inline_crypt = false;
-    }
-
-    /**
-     * Creates the performance-optimized function for en/decrypt()
-     *
-     * Internally for phpseclib developers:
-     *
-     *    _createInlineCryptFunction():
-     *
-     *    - merge the $cipher_code [setup'ed by _setupInlineCrypt()]
-     *      with the current [$this->]mode of operation code
-     *
-     *    - create the $inline function, which called by encrypt() / decrypt()
-     *      as its replacement to speed up the en/decryption operations.
-     *
-     *    - return the name of the created $inline callback function
-     *
-     *    - used to speed up en/decryption
-     *
-     *
-     *
-     *    The main reason why can speed up things [up to 50%] this way are:
-     *
-     *    - using variables more effective then regular.
-     *      (ie no use of expensive arrays but integers $k_0, $k_1 ...
-     *      or even, for example, the pure $key[] values hardcoded)
-     *
-     *    - avoiding 1000's of function calls of ie _encryptBlock()
-     *      but inlining the crypt operations.
-     *      in the mode of operation for() loop.
-     *
-     *    - full loop unroll the (sometimes key-dependent) rounds
-     *      avoiding this way ++$i counters and runtime-if's etc...
-     *
-     *    The basic code architectur of the generated $inline en/decrypt()
-     *    lambda function, in pseudo php, is:
-     *
-     *    <code>
-     *    +----------------------------------------------------------------------------------------------+
-     *    | callback $inline = create_function:                                                          |
-     *    | lambda_function_0001_crypt_ECB($action, $text)                                               |
-     *    | {                                                                                            |
-     *    |     INSERT PHP CODE OF:                                                                      |
-     *    |     $cipher_code['init_crypt'];                  // general init code.                       |
-     *    |                                                  // ie: $sbox'es declarations used for       |
-     *    |                                                  //     encrypt and decrypt'ing.             |
-     *    |                                                                                              |
-     *    |     switch ($action) {                                                                       |
-     *    |         case 'encrypt':                                                                      |
-     *    |             INSERT PHP CODE OF:                                                              |
-     *    |             $cipher_code['init_encrypt'];       // encrypt sepcific init code.               |
-     *    |                                                    ie: specified $key or $box                |
-     *    |                                                        declarations for encrypt'ing.         |
-     *    |                                                                                              |
-     *    |             foreach ($ciphertext) {                                                          |
-     *    |                 $in = $block_size of $ciphertext;                                            |
-     *    |                                                                                              |
-     *    |                 INSERT PHP CODE OF:                                                          |
-     *    |                 $cipher_code['encrypt_block'];  // encrypt's (string) $in, which is always:  |
-     *    |                                                 // strlen($in) == $this->block_size          |
-     *    |                                                 // here comes the cipher algorithm in action |
-     *    |                                                 // for encryption.                           |
-     *    |                                                 // $cipher_code['encrypt_block'] has to      |
-     *    |                                                 // encrypt the content of the $in variable   |
-     *    |                                                                                              |
-     *    |                 $plaintext .= $in;                                                           |
-     *    |             }                                                                                |
-     *    |             return $plaintext;                                                               |
-     *    |                                                                                              |
-     *    |         case 'decrypt':                                                                      |
-     *    |             INSERT PHP CODE OF:                                                              |
-     *    |             $cipher_code['init_decrypt'];       // decrypt sepcific init code                |
-     *    |                                                    ie: specified $key or $box                |
-     *    |                                                        declarations for decrypt'ing.         |
-     *    |             foreach ($plaintext) {                                                           |
-     *    |                 $in = $block_size of $plaintext;                                             |
-     *    |                                                                                              |
-     *    |                 INSERT PHP CODE OF:                                                          |
-     *    |                 $cipher_code['decrypt_block'];  // decrypt's (string) $in, which is always   |
-     *    |                                                 // strlen($in) == $this->block_size          |
-     *    |                                                 // here comes the cipher algorithm in action |
-     *    |                                                 // for decryption.                           |
-     *    |                                                 // $cipher_code['decrypt_block'] has to      |
-     *    |                                                 // decrypt the content of the $in variable   |
-     *    |                 $ciphertext .= $in;                                                          |
-     *    |             }                                                                                |
-     *    |             return $ciphertext;                                                              |
-     *    |     }                                                                                        |
-     *    | }                                                                                            |
-     *    +----------------------------------------------------------------------------------------------+
-     *    </code>
-     *
-     *    See also the \phpseclib\Crypt\*::_setupInlineCrypt()'s for
-     *    productive inline $cipher_code's how they works.
-     *
-     *    Structure of:
-     *    <code>
-     *    $cipher_code = array(
-     *        'init_crypt'    => (string) '', // optional
-     *        'init_encrypt'  => (string) '', // optional
-     *        'init_decrypt'  => (string) '', // optional
-     *        'encrypt_block' => (string) '', // required
-     *        'decrypt_block' => (string) ''  // required
-     *    );
-     *    </code>
-     *
-     * @see self::_setupInlineCrypt()
-     * @see self::encrypt()
-     * @see self::decrypt()
-     * @param array $cipher_code
-     * @access private
-     * @return string (the name of the created callback function)
-     */
-    function _createInlineCryptFunction($cipher_code)
-    {
-        $block_size = $this->block_size;
-
-        // optional
-        $init_crypt    = isset($cipher_code['init_crypt'])    ? $cipher_code['init_crypt']    : '';
-        $init_encrypt  = isset($cipher_code['init_encrypt'])  ? $cipher_code['init_encrypt']  : '';
-        $init_decrypt  = isset($cipher_code['init_decrypt'])  ? $cipher_code['init_decrypt']  : '';
-        // required
-        $encrypt_block = $cipher_code['encrypt_block'];
-        $decrypt_block = $cipher_code['decrypt_block'];
-
-        // Generating mode of operation inline code,
-        // merged with the $cipher_code algorithm
-        // for encrypt- and decryption.
-        switch ($this->mode) {
-            case self::MODE_ECB:
-                $encrypt = $init_encrypt . '
-                    $_ciphertext = "";
-                    $_plaintext_len = strlen($_text);
-
-                    for ($_i = 0; $_i < $_plaintext_len; $_i+= '.$block_size.') {
-                        $in = substr($_text, $_i, '.$block_size.');
-                        '.$encrypt_block.'
-                        $_ciphertext.= $in;
-                    }
-
-                    return $_ciphertext;
-                    ';
-
-                $decrypt = $init_decrypt . '
-                    $_plaintext = "";
-                    $_text = str_pad($_text, strlen($_text) + ('.$block_size.' - strlen($_text) % '.$block_size.') % '.$block_size.', chr(0));
-                    $_ciphertext_len = strlen($_text);
-
-                    for ($_i = 0; $_i < $_ciphertext_len; $_i+= '.$block_size.') {
-                        $in = substr($_text, $_i, '.$block_size.');
-                        '.$decrypt_block.'
-                        $_plaintext.= $in;
-                    }
-
-                    return $self->_unpad($_plaintext);
-                    ';
-                break;
-            case self::MODE_CTR:
-                $encrypt = $init_encrypt . '
-                    $_ciphertext = "";
-                    $_plaintext_len = strlen($_text);
-                    $_xor = $self->encryptIV;
-                    $_buffer = &$self->enbuffer;
-                    if (strlen($_buffer["ciphertext"])) {
-                        for ($_i = 0; $_i < $_plaintext_len; $_i+= '.$block_size.') {
-                            $_block = substr($_text, $_i, '.$block_size.');
-                            if (strlen($_block) > strlen($_buffer["ciphertext"])) {
-                                $in = $_xor;
-                                '.$encrypt_block.'
-                                $self->_increment_str($_xor);
-                                $_buffer["ciphertext"].= $in;
-                            }
-                            $_key = $self->_string_shift($_buffer["ciphertext"], '.$block_size.');
-                            $_ciphertext.= $_block ^ $_key;
-                        }
-                    } else {
-                        for ($_i = 0; $_i < $_plaintext_len; $_i+= '.$block_size.') {
-                            $_block = substr($_text, $_i, '.$block_size.');
-                            $in = $_xor;
-                            '.$encrypt_block.'
-                            $self->_increment_str($_xor);
-                            $_key = $in;
-                            $_ciphertext.= $_block ^ $_key;
-                        }
-                    }
-                    if ($self->continuousBuffer) {
-                        $self->encryptIV = $_xor;
-                        if ($_start = $_plaintext_len % '.$block_size.') {
-                            $_buffer["ciphertext"] = substr($_key, $_start) . $_buffer["ciphertext"];
-                        }
-                    }
-
-                    return $_ciphertext;
-                ';
-
-                $decrypt = $init_encrypt . '
-                    $_plaintext = "";
-                    $_ciphertext_len = strlen($_text);
-                    $_xor = $self->decryptIV;
-                    $_buffer = &$self->debuffer;
-
-                    if (strlen($_buffer["ciphertext"])) {
-                        for ($_i = 0; $_i < $_ciphertext_len; $_i+= '.$block_size.') {
-                            $_block = substr($_text, $_i, '.$block_size.');
-                            if (strlen($_block) > strlen($_buffer["ciphertext"])) {
-                                $in = $_xor;
-                                '.$encrypt_block.'
-                                $self->_increment_str($_xor);
-                                $_buffer["ciphertext"].= $in;
-                            }
-                            $_key = $self->_string_shift($_buffer["ciphertext"], '.$block_size.');
-                            $_plaintext.= $_block ^ $_key;
-                        }
-                    } else {
-                        for ($_i = 0; $_i < $_ciphertext_len; $_i+= '.$block_size.') {
-                            $_block = substr($_text, $_i, '.$block_size.');
-                            $in = $_xor;
-                            '.$encrypt_block.'
-                            $self->_increment_str($_xor);
-                            $_key = $in;
-                            $_plaintext.= $_block ^ $_key;
-                        }
-                    }
-                    if ($self->continuousBuffer) {
-                        $self->decryptIV = $_xor;
-                        if ($_start = $_ciphertext_len % '.$block_size.') {
-                            $_buffer["ciphertext"] = substr($_key, $_start) . $_buffer["ciphertext"];
-                        }
-                    }
-
-                    return $_plaintext;
-                    ';
-                break;
-            case self::MODE_CFB:
-                $encrypt = $init_encrypt . '
-                    $_ciphertext = "";
-                    $_buffer = &$self->enbuffer;
-
-                    if ($self->continuousBuffer) {
-                        $_iv = &$self->encryptIV;
-                        $_pos = &$_buffer["pos"];
-                    } else {
-                        $_iv = $self->encryptIV;
-                        $_pos = 0;
-                    }
-                    $_len = strlen($_text);
-                    $_i = 0;
-                    if ($_pos) {
-                        $_orig_pos = $_pos;
-                        $_max = '.$block_size.' - $_pos;
-                        if ($_len >= $_max) {
-                            $_i = $_max;
-                            $_len-= $_max;
-                            $_pos = 0;
-                        } else {
-                            $_i = $_len;
-                            $_pos+= $_len;
-                            $_len = 0;
-                        }
-                        $_ciphertext = substr($_iv, $_orig_pos) ^ $_text;
-                        $_iv = substr_replace($_iv, $_ciphertext, $_orig_pos, $_i);
-                    }
-                    while ($_len >= '.$block_size.') {
-                        $in = $_iv;
-                        '.$encrypt_block.';
-                        $_iv = $in ^ substr($_text, $_i, '.$block_size.');
-                        $_ciphertext.= $_iv;
-                        $_len-= '.$block_size.';
-                        $_i+= '.$block_size.';
-                    }
-                    if ($_len) {
-                        $in = $_iv;
-                        '.$encrypt_block.'
-                        $_iv = $in;
-                        $_block = $_iv ^ substr($_text, $_i);
-                        $_iv = substr_replace($_iv, $_block, 0, $_len);
-                        $_ciphertext.= $_block;
-                        $_pos = $_len;
-                    }
-                    return $_ciphertext;
-                ';
-
-                $decrypt = $init_encrypt . '
-                    $_plaintext = "";
-                    $_buffer = &$self->debuffer;
-
-                    if ($self->continuousBuffer) {
-                        $_iv = &$self->decryptIV;
-                        $_pos = &$_buffer["pos"];
-                    } else {
-                        $_iv = $self->decryptIV;
-                        $_pos = 0;
-                    }
-                    $_len = strlen($_text);
-                    $_i = 0;
-                    if ($_pos) {
-                        $_orig_pos = $_pos;
-                        $_max = '.$block_size.' - $_pos;
-                        if ($_len >= $_max) {
-                            $_i = $_max;
-                            $_len-= $_max;
-                            $_pos = 0;
-                        } else {
-                            $_i = $_len;
-                            $_pos+= $_len;
-                            $_len = 0;
-                        }
-                        $_plaintext = substr($_iv, $_orig_pos) ^ $_text;
-                        $_iv = substr_replace($_iv, substr($_text, 0, $_i), $_orig_pos, $_i);
-                    }
-                    while ($_len >= '.$block_size.') {
-                        $in = $_iv;
-                        '.$encrypt_block.'
-                        $_iv = $in;
-                        $cb = substr($_text, $_i, '.$block_size.');
-                        $_plaintext.= $_iv ^ $cb;
-                        $_iv = $cb;
-                        $_len-= '.$block_size.';
-                        $_i+= '.$block_size.';
-                    }
-                    if ($_len) {
-                        $in = $_iv;
-                        '.$encrypt_block.'
-                        $_iv = $in;
-                        $_plaintext.= $_iv ^ substr($_text, $_i);
-                        $_iv = substr_replace($_iv, substr($_text, $_i), 0, $_len);
-                        $_pos = $_len;
-                    }
-
-                    return $_plaintext;
-                    ';
-                break;
-            case self::MODE_CFB8:
-                $encrypt = $init_encrypt . '
-                    $_ciphertext = "";
-                    $_len = strlen($_text);
-                    $_iv = $self->encryptIV;
-
-                    for ($_i = 0; $_i < $_len; ++$_i) {
-                        $in = $_iv;
-                        '.$encrypt_block.'
-                        $_ciphertext .= ($_c = $_text[$_i] ^ $in);
-                        $_iv = substr($_iv, 1) . $_c;
-                    }
-
-                    if ($self->continuousBuffer) {
-                        if ($_len >= '.$block_size.') {
-                            $self->encryptIV = substr($_ciphertext, -'.$block_size.');
-                        } else {
-                            $self->encryptIV = substr($self->encryptIV, $_len - '.$block_size.') . substr($_ciphertext, -$_len);
-                        }
-                    }
-
-                    return $_ciphertext;
-                    ';
-                $decrypt = $init_encrypt . '
-                    $_plaintext = "";
-                    $_len = strlen($_text);
-                    $_iv = $self->decryptIV;
-
-                    for ($_i = 0; $_i < $_len; ++$_i) {
-                        $in = $_iv;
-                        '.$encrypt_block.'
-                        $_plaintext .= $_text[$_i] ^ $in;
-                        $_iv = substr($_iv, 1) . $_text[$_i];
-                    }
-
-                    if ($self->continuousBuffer) {
-                        if ($_len >= '.$block_size.') {
-                            $self->decryptIV = substr($_text, -'.$block_size.');
-                        } else {
-                            $self->decryptIV = substr($self->decryptIV, $_len - '.$block_size.') . substr($_text, -$_len);
-                        }
-                    }
-
-                    return $_plaintext;
-                    ';
-                break;
-            case self::MODE_OFB:
-                $encrypt = $init_encrypt . '
-                    $_ciphertext = "";
-                    $_plaintext_len = strlen($_text);
-                    $_xor = $self->encryptIV;
-                    $_buffer = &$self->enbuffer;
-
-                    if (strlen($_buffer["xor"])) {
-                        for ($_i = 0; $_i < $_plaintext_len; $_i+= '.$block_size.') {
-                            $_block = substr($_text, $_i, '.$block_size.');
-                            if (strlen($_block) > strlen($_buffer["xor"])) {
-                                $in = $_xor;
-                                '.$encrypt_block.'
-                                $_xor = $in;
-                                $_buffer["xor"].= $_xor;
-                            }
-                            $_key = $self->_string_shift($_buffer["xor"], '.$block_size.');
-                            $_ciphertext.= $_block ^ $_key;
-                        }
-                    } else {
-                        for ($_i = 0; $_i < $_plaintext_len; $_i+= '.$block_size.') {
-                            $in = $_xor;
-                            '.$encrypt_block.'
-                            $_xor = $in;
-                            $_ciphertext.= substr($_text, $_i, '.$block_size.') ^ $_xor;
-                        }
-                        $_key = $_xor;
-                    }
-                    if ($self->continuousBuffer) {
-                        $self->encryptIV = $_xor;
-                        if ($_start = $_plaintext_len % '.$block_size.') {
-                             $_buffer["xor"] = substr($_key, $_start) . $_buffer["xor"];
-                        }
-                    }
-                    return $_ciphertext;
-                    ';
-
-                $decrypt = $init_encrypt . '
-                    $_plaintext = "";
-                    $_ciphertext_len = strlen($_text);
-                    $_xor = $self->decryptIV;
-                    $_buffer = &$self->debuffer;
-
-                    if (strlen($_buffer["xor"])) {
-                        for ($_i = 0; $_i < $_ciphertext_len; $_i+= '.$block_size.') {
-                            $_block = substr($_text, $_i, '.$block_size.');
-                            if (strlen($_block) > strlen($_buffer["xor"])) {
-                                $in = $_xor;
-                                '.$encrypt_block.'
-                                $_xor = $in;
-                                $_buffer["xor"].= $_xor;
-                            }
-                            $_key = $self->_string_shift($_buffer["xor"], '.$block_size.');
-                            $_plaintext.= $_block ^ $_key;
-                        }
-                    } else {
-                        for ($_i = 0; $_i < $_ciphertext_len; $_i+= '.$block_size.') {
-                            $in = $_xor;
-                            '.$encrypt_block.'
-                            $_xor = $in;
-                            $_plaintext.= substr($_text, $_i, '.$block_size.') ^ $_xor;
-                        }
-                        $_key = $_xor;
-                    }
-                    if ($self->continuousBuffer) {
-                        $self->decryptIV = $_xor;
-                        if ($_start = $_ciphertext_len % '.$block_size.') {
-                             $_buffer["xor"] = substr($_key, $_start) . $_buffer["xor"];
-                        }
-                    }
-                    return $_plaintext;
-                    ';
-                break;
-            case self::MODE_STREAM:
-                $encrypt = $init_encrypt . '
-                    $_ciphertext = "";
-                    '.$encrypt_block.'
-                    return $_ciphertext;
-                    ';
-                $decrypt = $init_decrypt . '
-                    $_plaintext = "";
-                    '.$decrypt_block.'
-                    return $_plaintext;
-                    ';
-                break;
-            // case self::MODE_CBC:
-            default:
-                $encrypt = $init_encrypt . '
-                    $_ciphertext = "";
-                    $_plaintext_len = strlen($_text);
-
-                    $in = $self->encryptIV;
-
-                    for ($_i = 0; $_i < $_plaintext_len; $_i+= '.$block_size.') {
-                        $in = substr($_text, $_i, '.$block_size.') ^ $in;
-                        '.$encrypt_block.'
-                        $_ciphertext.= $in;
-                    }
-
-                    if ($self->continuousBuffer) {
-                        $self->encryptIV = $in;
-                    }
-
-                    return $_ciphertext;
-                    ';
-
-                $decrypt = $init_decrypt . '
-                    $_plaintext = "";
-                    $_text = str_pad($_text, strlen($_text) + ('.$block_size.' - strlen($_text) % '.$block_size.') % '.$block_size.', chr(0));
-                    $_ciphertext_len = strlen($_text);
-
-                    $_iv = $self->decryptIV;
-
-                    for ($_i = 0; $_i < $_ciphertext_len; $_i+= '.$block_size.') {
-                        $in = $_block = substr($_text, $_i, '.$block_size.');
-                        '.$decrypt_block.'
-                        $_plaintext.= $in ^ $_iv;
-                        $_iv = $_block;
-                    }
-
-                    if ($self->continuousBuffer) {
-                        $self->decryptIV = $_iv;
-                    }
-
-                    return $self->_unpad($_plaintext);
-                    ';
-                break;
-        }
-
-        // Create the $inline function and return its name as string. Ready to run!
-        if (version_compare(PHP_VERSION, '5.3.0') >= 0) {
-            eval('$func = function ($_action, &$self, $_text) { ' . $init_crypt . 'if ($_action == "encrypt") { ' . $encrypt . ' } else { ' . $decrypt . ' } };');
-            return $func;
-        }
-
-        return create_function('$_action, &$self, $_text', $init_crypt . 'if ($_action == "encrypt") { ' . $encrypt . ' } else { ' . $decrypt . ' }');
-    }
-
-    /**
-     * Holds the lambda_functions table (classwide)
-     *
-     * Each name of the lambda function, created from
-     * _setupInlineCrypt() && _createInlineCryptFunction()
-     * is stored, classwide (!), here for reusing.
-     *
-     * The string-based index of $function is a classwide
-     * unique value representing, at least, the $mode of
-     * operation (or more... depends of the optimizing level)
-     * for which $mode the lambda function was created.
-     *
-     * @access private
-     * @return array &$functions
-     */
-    function &_getLambdaFunctions()
-    {
-        static $functions = array();
-        return $functions;
-    }
-
-    /**
-     * Generates a digest from $bytes
-     *
-     * @see self::_setupInlineCrypt()
-     * @access private
-     * @param $bytes
-     * @return string
-     */
-    function _hashInlineCryptFunction($bytes)
-    {
-        if (!isset(self::$WHIRLPOOL_AVAILABLE)) {
-            self::$WHIRLPOOL_AVAILABLE = extension_loaded('hash') && in_array('whirlpool', hash_algos());
-        }
-
-        $result = '';
-        $hash = $bytes;
-
-        switch (true) {
-            case self::$WHIRLPOOL_AVAILABLE:
-                foreach (str_split($bytes, 64) as $t) {
-                    $hash = hash('whirlpool', $hash, true);
-                    $result .= $t ^ $hash;
-                }
-                return $result . hash('whirlpool', $hash, true);
-            default:
-                $len = strlen($bytes);
-                for ($i = 0; $i < $len; $i+=20) {
-                    $t = substr($bytes, $i, 20);
-                    $hash = pack('H*', sha1($hash));
-                    $result .= $t ^ $hash;
-                }
-                return $result . pack('H*', sha1($hash));
-        }
-    }
-
-    /**
-     * Convert float to int
-     *
-     * On ARM CPUs converting floats to ints doesn't always work
-     *
-     * @access private
-     * @param string $x
-     * @return int
-     */
-    function safe_intval($x)
-    {
-        switch (true) {
-            case is_int($x):
-            // PHP 5.3, per http://php.net/releases/5_3_0.php, introduced "more consistent float rounding"
-            case (php_uname('m') & "\xDF\xDF\xDF") != 'ARM':
-                return $x;
-        }
-        return (fmod($x, 0x80000000) & 0x7FFFFFFF) |
-            ((fmod(floor($x / 0x80000000), 2) & 1) << 31);
-    }
-
-    /**
-     * eval()'able string for in-line float to int
-     *
-     * @access private
-     * @return string
-     */
-    function safe_intval_inline()
-    {
-        switch (true) {
-            case defined('PHP_INT_SIZE') && PHP_INT_SIZE == 8:
-            case (php_uname('m') & "\xDF\xDF\xDF") != 'ARM':
-                return '%s';
-                break;
-            default:
-                $safeint = '(is_int($temp = %s) ? $temp : (fmod($temp, 0x80000000) & 0x7FFFFFFF) | ';
-                return $safeint . '((fmod(floor($temp / 0x80000000), 2) & 1) << 31))';
-        }
-    }
-}
diff --git a/wiki/vendor/phpseclib/phpseclib/phpseclib/Crypt/Blowfish.php b/wiki/vendor/phpseclib/phpseclib/phpseclib/Crypt/Blowfish.php
deleted file mode 100644
index 74cc49d..0000000
--- a/wiki/vendor/phpseclib/phpseclib/phpseclib/Crypt/Blowfish.php
+++ /dev/null
@@ -1,571 +0,0 @@
-<?php
-
-/**
- * Pure-PHP implementation of Blowfish.
- *
- * Uses mcrypt, if available, and an internal implementation, otherwise.
- *
- * PHP version 5
- *
- * Useful resources are as follows:
- *
- *  - {@link http://en.wikipedia.org/wiki/Blowfish_(cipher) Wikipedia description of Blowfish}
- *
- * Here's a short example of how to use this library:
- * <code>
- * <?php
- *    include 'vendor/autoload.php';
- *
- *    $blowfish = new \phpseclib\Crypt\Blowfish();
- *
- *    $blowfish->setKey('12345678901234567890123456789012');
- *
- *    $plaintext = str_repeat('a', 1024);
- *
- *    echo $blowfish->decrypt($blowfish->encrypt($plaintext));
- * ?>
- * </code>
- *
- * @category  Crypt
- * @package   Blowfish
- * @author    Jim Wigginton <terrafrost@php.net>
- * @author    Hans-Juergen Petrich <petrich@tronic-media.com>
- * @copyright 2007 Jim Wigginton
- * @license   http://www.opensource.org/licenses/mit-license.html  MIT License
- * @link      http://phpseclib.sourceforge.net
- */
-
-namespace phpseclib\Crypt;
-
-/**
- * Pure-PHP implementation of Blowfish.
- *
- * @package Blowfish
- * @author  Jim Wigginton <terrafrost@php.net>
- * @author  Hans-Juergen Petrich <petrich@tronic-media.com>
- * @access  public
- */
-class Blowfish extends Base
-{
-    /**
-     * Block Length of the cipher
-     *
-     * @see \phpseclib\Crypt\Base::block_size
-     * @var int
-     * @access private
-     */
-    var $block_size = 8;
-
-    /**
-     * The mcrypt specific name of the cipher
-     *
-     * @see \phpseclib\Crypt\Base::cipher_name_mcrypt
-     * @var string
-     * @access private
-     */
-    var $cipher_name_mcrypt = 'blowfish';
-
-    /**
-     * Optimizing value while CFB-encrypting
-     *
-     * @see \phpseclib\Crypt\Base::cfb_init_len
-     * @var int
-     * @access private
-     */
-    var $cfb_init_len = 500;
-
-    /**
-     * The fixed subkeys boxes ($sbox0 - $sbox3) with 256 entries each
-     *
-     * S-Box 0
-     *
-     * @access private
-     * @var    array
-     */
-    var $sbox0 = 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
-    );
-
-    /**
-     * S-Box 1
-     *
-     * @access private
-     * @var    array
-     */
-    var $sbox1 = 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
-    );
-
-    /**
-     * S-Box 2
-     *
-     * @access private
-     * @var    array
-     */
-    var $sbox2 = 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
-    );
-
-    /**
-     * S-Box 3
-     *
-     * @access private
-     * @var    array
-     */
-    var $sbox3 = 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
-    );
-
-    /**
-     * P-Array consists of 18 32-bit subkeys
-     *
-     * @var array
-     * @access private
-     */
-    var $parray = array(
-        0x243f6a88, 0x85a308d3, 0x13198a2e, 0x03707344, 0xa4093822, 0x299f31d0,
-        0x082efa98, 0xec4e6c89, 0x452821e6, 0x38d01377, 0xbe5466cf, 0x34e90c6c,
-        0xc0ac29b7, 0xc97c50dd, 0x3f84d5b5, 0xb5470917, 0x9216d5d9, 0x8979fb1b
-    );
-
-    /**
-     * The BCTX-working Array
-     *
-     * Holds the expanded key [p] and the key-depended s-boxes [sb]
-     *
-     * @var array
-     * @access private
-     */
-    var $bctx;
-
-    /**
-     * Holds the last used key
-     *
-     * @var array
-     * @access private
-     */
-    var $kl;
-
-    /**
-     * The Key Length (in bytes)
-     *
-     * @see \phpseclib\Crypt\Base::setKeyLength()
-     * @var int
-     * @access private
-     * @internal The max value is 256 / 8 = 32, the min value is 128 / 8 = 16.  Exists in conjunction with $Nk
-     *    because the encryption / decryption / key schedule creation requires this number and not $key_length.  We could
-     *    derive this from $key_length or vice versa, but that'd mean we'd have to do multiple shift operations, so in lieu
-     *    of that, we'll just precompute it once.
-     */
-    var $key_length = 16;
-
-    /**
-     * Sets the key length.
-     *
-     * Key lengths can be between 32 and 448 bits.
-     *
-     * @access public
-     * @param int $length
-     */
-    function setKeyLength($length)
-    {
-        if ($length < 32) {
-            $this->key_length = 4;
-        } elseif ($length > 448) {
-            $this->key_length = 56;
-        } else {
-            $this->key_length = $length >> 3;
-        }
-
-        parent::setKeyLength($length);
-    }
-
-    /**
-     * Test for engine validity
-     *
-     * This is mainly just a wrapper to set things up for \phpseclib\Crypt\Base::isValidEngine()
-     *
-     * @see \phpseclib\Crypt\Base::isValidEngine()
-     * @param int $engine
-     * @access public
-     * @return bool
-     */
-    function isValidEngine($engine)
-    {
-        if ($engine == self::ENGINE_OPENSSL) {
-            if (version_compare(PHP_VERSION, '5.3.7') < 0 && $this->key_length != 16) {
-                return false;
-            }
-            if ($this->key_length < 16) {
-                return false;
-            }
-            $this->cipher_name_openssl_ecb = 'bf-ecb';
-            $this->cipher_name_openssl = 'bf-' . $this->_openssl_translate_mode();
-        }
-
-        return parent::isValidEngine($engine);
-    }
-
-    /**
-     * Setup the key (expansion)
-     *
-     * @see \phpseclib\Crypt\Base::_setupKey()
-     * @access private
-     */
-    function _setupKey()
-    {
-        if (isset($this->kl['key']) && $this->key === $this->kl['key']) {
-            // already expanded
-            return;
-        }
-        $this->kl = array('key' => $this->key);
-
-        /* key-expanding p[] and S-Box building sb[] */
-        $this->bctx = array(
-            'p'  => array(),
-            'sb' => array(
-                $this->sbox0,
-                $this->sbox1,
-                $this->sbox2,
-                $this->sbox3
-            )
-        );
-
-        // unpack binary string in unsigned chars
-        $key  = array_values(unpack('C*', $this->key));
-        $keyl = count($key);
-        for ($j = 0, $i = 0; $i < 18; ++$i) {
-            // xor P1 with the first 32-bits of the key, xor P2 with the second 32-bits ...
-            for ($data = 0, $k = 0; $k < 4; ++$k) {
-                $data = ($data << 8) | $key[$j];
-                if (++$j >= $keyl) {
-                    $j = 0;
-                }
-            }
-            $this->bctx['p'][] = $this->parray[$i] ^ $data;
-        }
-
-        // encrypt the zero-string, replace P1 and P2 with the encrypted data,
-        // encrypt P3 and P4 with the new P1 and P2, do it with all P-array and subkeys
-        $data = "\0\0\0\0\0\0\0\0";
-        for ($i = 0; $i < 18; $i += 2) {
-            list($l, $r) = array_values(unpack('N*', $data = $this->_encryptBlock($data)));
-            $this->bctx['p'][$i    ] = $l;
-            $this->bctx['p'][$i + 1] = $r;
-        }
-        for ($i = 0; $i < 4; ++$i) {
-            for ($j = 0; $j < 256; $j += 2) {
-                list($l, $r) = array_values(unpack('N*', $data = $this->_encryptBlock($data)));
-                $this->bctx['sb'][$i][$j    ] = $l;
-                $this->bctx['sb'][$i][$j + 1] = $r;
-            }
-        }
-    }
-
-    /**
-     * Encrypts a block
-     *
-     * @access private
-     * @param string $in
-     * @return string
-     */
-    function _encryptBlock($in)
-    {
-        $p = $this->bctx["p"];
-        // extract($this->bctx["sb"], EXTR_PREFIX_ALL, "sb"); // slower
-        $sb_0 = $this->bctx["sb"][0];
-        $sb_1 = $this->bctx["sb"][1];
-        $sb_2 = $this->bctx["sb"][2];
-        $sb_3 = $this->bctx["sb"][3];
-
-        $in = unpack("N*", $in);
-        $l = $in[1];
-        $r = $in[2];
-
-        for ($i = 0; $i < 16; $i+= 2) {
-            $l^= $p[$i];
-            $r^= $this->safe_intval(($this->safe_intval($sb_0[$l >> 24 & 0xff]  + $sb_1[$l >> 16 & 0xff]) ^
-                  $sb_2[$l >>  8 & 0xff]) +
-                  $sb_3[$l       & 0xff]);
-
-            $r^= $p[$i + 1];
-            $l^= $this->safe_intval(($this->safe_intval($sb_0[$r >> 24 & 0xff]  + $sb_1[$r >> 16 & 0xff]) ^
-                  $sb_2[$r >>  8 & 0xff]) +
-                  $sb_3[$r       & 0xff]);
-        }
-        return pack("N*", $r ^ $p[17], $l ^ $p[16]);
-    }
-
-    /**
-     * Decrypts a block
-     *
-     * @access private
-     * @param string $in
-     * @return string
-     */
-    function _decryptBlock($in)
-    {
-        $p = $this->bctx["p"];
-        $sb_0 = $this->bctx["sb"][0];
-        $sb_1 = $this->bctx["sb"][1];
-        $sb_2 = $this->bctx["sb"][2];
-        $sb_3 = $this->bctx["sb"][3];
-
-        $in = unpack("N*", $in);
-        $l = $in[1];
-        $r = $in[2];
-
-        for ($i = 17; $i > 2; $i-= 2) {
-            $l^= $p[$i];
-            $r^= $this->safe_intval(($this->safe_intval($sb_0[$l >> 24 & 0xff] + $sb_1[$l >> 16 & 0xff]) ^
-                  $sb_2[$l >>  8 & 0xff]) +
-                  $sb_3[$l       & 0xff]);
-
-            $r^= $p[$i - 1];
-            $l^= $this->safe_intval(($this->safe_intval($sb_0[$r >> 24 & 0xff] + $sb_1[$r >> 16 & 0xff]) ^
-                  $sb_2[$r >>  8 & 0xff]) +
-                  $sb_3[$r       & 0xff]);
-        }
-        return pack("N*", $r ^ $p[0], $l ^ $p[1]);
-    }
-
-    /**
-     * Setup the performance-optimized function for de/encrypt()
-     *
-     * @see \phpseclib\Crypt\Base::_setupInlineCrypt()
-     * @access private
-     */
-    function _setupInlineCrypt()
-    {
-        $lambda_functions =& self::_getLambdaFunctions();
-
-        // We create max. 10 hi-optimized code for memory reason. Means: For each $key one ultra fast inline-crypt function.
-        // (Currently, for Blowfish, one generated $lambda_function cost on php5.5@32bit ~100kb unfreeable mem and ~180kb on php5.5@64bit)
-        // After that, we'll still create very fast optimized code but not the hi-ultimative code, for each $mode one.
-        $gen_hi_opt_code = (bool)(count($lambda_functions) < 10);
-
-        // Generation of a unique hash for our generated code
-        $code_hash = "Crypt_Blowfish, {$this->mode}";
-        if ($gen_hi_opt_code) {
-            $code_hash = str_pad($code_hash, 32) . $this->_hashInlineCryptFunction($this->key);
-        }
-
-        $safeint = $this->safe_intval_inline();
-
-        if (!isset($lambda_functions[$code_hash])) {
-            switch (true) {
-                case $gen_hi_opt_code:
-                    $p = $this->bctx['p'];
-                    $init_crypt = '
-                        static $sb_0, $sb_1, $sb_2, $sb_3;
-                        if (!$sb_0) {
-                            $sb_0 = $self->bctx["sb"][0];
-                            $sb_1 = $self->bctx["sb"][1];
-                            $sb_2 = $self->bctx["sb"][2];
-                            $sb_3 = $self->bctx["sb"][3];
-                        }
-                    ';
-                    break;
-                default:
-                    $p   = array();
-                    for ($i = 0; $i < 18; ++$i) {
-                        $p[] = '$p_' . $i;
-                    }
-                    $init_crypt = '
-                        list($sb_0, $sb_1, $sb_2, $sb_3) = $self->bctx["sb"];
-                        list(' . implode(',', $p) . ') = $self->bctx["p"];
-
-                    ';
-            }
-
-            // Generating encrypt code:
-            $encrypt_block = '
-                $in = unpack("N*", $in);
-                $l = $in[1];
-                $r = $in[2];
-            ';
-            for ($i = 0; $i < 16; $i+= 2) {
-                $encrypt_block.= '
-                    $l^= ' . $p[$i] . ';
-                    $r^= ' . sprintf($safeint, '(' . sprintf($safeint, '$sb_0[$l >> 24 & 0xff] + $sb_1[$l >> 16 & 0xff]') . ' ^
-                          $sb_2[$l >>  8 & 0xff]) +
-                          $sb_3[$l       & 0xff]') . ';
-
-                    $r^= ' . $p[$i + 1] . ';
-                    $l^= ' . sprintf($safeint, '(' . sprintf($safeint, '$sb_0[$r >> 24 & 0xff] + $sb_1[$r >> 16 & 0xff]') . '  ^
-                          $sb_2[$r >>  8 & 0xff]) +
-                          $sb_3[$r       & 0xff]') . ';
-                ';
-            }
-            $encrypt_block.= '
-                $in = pack("N*",
-                    $r ^ ' . $p[17] . ',
-                    $l ^ ' . $p[16] . '
-                );
-            ';
-
-            // Generating decrypt code:
-            $decrypt_block = '
-                $in = unpack("N*", $in);
-                $l = $in[1];
-                $r = $in[2];
-            ';
-
-            for ($i = 17; $i > 2; $i-= 2) {
-                $decrypt_block.= '
-                    $l^= ' . $p[$i] . ';
-                    $r^= ' . sprintf($safeint, '(' . sprintf($safeint, '$sb_0[$l >> 24 & 0xff] + $sb_1[$l >> 16 & 0xff]') . ' ^
-                          $sb_2[$l >>  8 & 0xff]) +
-                          $sb_3[$l       & 0xff]') . ';
-
-                    $r^= ' . $p[$i - 1] . ';
-                    $l^= ' . sprintf($safeint, '(' . sprintf($safeint, '$sb_0[$r >> 24 & 0xff] + $sb_1[$r >> 16 & 0xff]') . ' ^
-                          $sb_2[$r >>  8 & 0xff]) +
-                          $sb_3[$r       & 0xff]') . ';
-                ';
-            }
-
-            $decrypt_block.= '
-                $in = pack("N*",
-                    $r ^ ' . $p[0] . ',
-                    $l ^ ' . $p[1] . '
-                );
-            ';
-
-            $lambda_functions[$code_hash] = $this->_createInlineCryptFunction(
-                array(
-                   'init_crypt'    => $init_crypt,
-                   'init_encrypt'  => '',
-                   'init_decrypt'  => '',
-                   'encrypt_block' => $encrypt_block,
-                   'decrypt_block' => $decrypt_block
-                )
-            );
-        }
-        $this->inline_crypt = $lambda_functions[$code_hash];
-    }
-}
diff --git a/wiki/vendor/phpseclib/phpseclib/phpseclib/Crypt/DES.php b/wiki/vendor/phpseclib/phpseclib/phpseclib/Crypt/DES.php
deleted file mode 100644
index 9a8225f..0000000
--- a/wiki/vendor/phpseclib/phpseclib/phpseclib/Crypt/DES.php
+++ /dev/null
@@ -1,1443 +0,0 @@
-<?php
-
-/**
- * Pure-PHP implementation of DES.
- *
- * Uses mcrypt, if available, and an internal implementation, otherwise.
- *
- * PHP version 5
- *
- * Useful resources are as follows:
- *
- *  - {@link http://en.wikipedia.org/wiki/DES_supplementary_material Wikipedia: DES supplementary material}
- *  - {@link http://www.itl.nist.gov/fipspubs/fip46-2.htm FIPS 46-2 - (DES), Data Encryption Standard}
- *  - {@link http://www.cs.eku.edu/faculty/styer/460/Encrypt/JS-DES.html JavaScript DES Example}
- *
- * Here's a short example of how to use this library:
- * <code>
- * <?php
- *    include 'vendor/autoload.php';
- *
- *    $des = new \phpseclib\Crypt\DES();
- *
- *    $des->setKey('abcdefgh');
- *
- *    $size = 10 * 1024;
- *    $plaintext = '';
- *    for ($i = 0; $i < $size; $i++) {
- *        $plaintext.= 'a';
- *    }
- *
- *    echo $des->decrypt($des->encrypt($plaintext));
- * ?>
- * </code>
- *
- * @category  Crypt
- * @package   DES
- * @author    Jim Wigginton <terrafrost@php.net>
- * @copyright 2007 Jim Wigginton
- * @license   http://www.opensource.org/licenses/mit-license.html  MIT License
- * @link      http://phpseclib.sourceforge.net
- */
-
-namespace phpseclib\Crypt;
-
-/**
- * Pure-PHP implementation of DES.
- *
- * @package DES
- * @author  Jim Wigginton <terrafrost@php.net>
- * @access  public
- */
-class DES extends Base
-{
-    /**#@+
-     * @access private
-     * @see \phpseclib\Crypt\DES::_setupKey()
-     * @see \phpseclib\Crypt\DES::_processBlock()
-     */
-    /**
-     * Contains $keys[self::ENCRYPT]
-     */
-    const ENCRYPT = 0;
-    /**
-     * Contains $keys[self::DECRYPT]
-     */
-    const DECRYPT = 1;
-    /**#@-*/
-
-    /**
-     * Block Length of the cipher
-     *
-     * @see \phpseclib\Crypt\Base::block_size
-     * @var int
-     * @access private
-     */
-    var $block_size = 8;
-
-    /**
-     * Key Length (in bytes)
-     *
-     * @see \phpseclib\Crypt\Base::setKeyLength()
-     * @var int
-     * @access private
-     */
-    var $key_length = 8;
-
-    /**
-     * The mcrypt specific name of the cipher
-     *
-     * @see \phpseclib\Crypt\Base::cipher_name_mcrypt
-     * @var string
-     * @access private
-     */
-    var $cipher_name_mcrypt = 'des';
-
-    /**
-     * The OpenSSL names of the cipher / modes
-     *
-     * @see \phpseclib\Crypt\Base::openssl_mode_names
-     * @var array
-     * @access private
-     */
-    var $openssl_mode_names = array(
-        self::MODE_ECB => 'des-ecb',
-        self::MODE_CBC => 'des-cbc',
-        self::MODE_CFB => 'des-cfb',
-        self::MODE_OFB => 'des-ofb'
-        // self::MODE_CTR is undefined for DES
-    );
-
-    /**
-     * Optimizing value while CFB-encrypting
-     *
-     * @see \phpseclib\Crypt\Base::cfb_init_len
-     * @var int
-     * @access private
-     */
-    var $cfb_init_len = 500;
-
-    /**
-     * Switch for DES/3DES encryption
-     *
-     * Used only if $engine == self::ENGINE_INTERNAL
-     *
-     * @see self::_setupKey()
-     * @see self::_processBlock()
-     * @var int
-     * @access private
-     */
-    var $des_rounds = 1;
-
-    /**
-     * max possible size of $key
-     *
-     * @see self::setKey()
-     * @var string
-     * @access private
-     */
-    var $key_length_max = 8;
-
-    /**
-     * The Key Schedule
-     *
-     * @see self::_setupKey()
-     * @var array
-     * @access private
-     */
-    var $keys;
-
-    /**
-     * Shuffle table.
-     *
-     * For each byte value index, the entry holds an 8-byte string
-     * with each byte containing all bits in the same state as the
-     * corresponding bit in the index value.
-     *
-     * @see self::_processBlock()
-     * @see self::_setupKey()
-     * @var array
-     * @access private
-     */
-    var $shuffle = array(
-        "\x00\x00\x00\x00\x00\x00\x00\x00", "\x00\x00\x00\x00\x00\x00\x00\xFF",
-        "\x00\x00\x00\x00\x00\x00\xFF\x00", "\x00\x00\x00\x00\x00\x00\xFF\xFF",
-        "\x00\x00\x00\x00\x00\xFF\x00\x00", "\x00\x00\x00\x00\x00\xFF\x00\xFF",
-        "\x00\x00\x00\x00\x00\xFF\xFF\x00", "\x00\x00\x00\x00\x00\xFF\xFF\xFF",
-        "\x00\x00\x00\x00\xFF\x00\x00\x00", "\x00\x00\x00\x00\xFF\x00\x00\xFF",
-        "\x00\x00\x00\x00\xFF\x00\xFF\x00", "\x00\x00\x00\x00\xFF\x00\xFF\xFF",
-        "\x00\x00\x00\x00\xFF\xFF\x00\x00", "\x00\x00\x00\x00\xFF\xFF\x00\xFF",
-        "\x00\x00\x00\x00\xFF\xFF\xFF\x00", "\x00\x00\x00\x00\xFF\xFF\xFF\xFF",
-        "\x00\x00\x00\xFF\x00\x00\x00\x00", "\x00\x00\x00\xFF\x00\x00\x00\xFF",
-        "\x00\x00\x00\xFF\x00\x00\xFF\x00", "\x00\x00\x00\xFF\x00\x00\xFF\xFF",
-        "\x00\x00\x00\xFF\x00\xFF\x00\x00", "\x00\x00\x00\xFF\x00\xFF\x00\xFF",
-        "\x00\x00\x00\xFF\x00\xFF\xFF\x00", "\x00\x00\x00\xFF\x00\xFF\xFF\xFF",
-        "\x00\x00\x00\xFF\xFF\x00\x00\x00", "\x00\x00\x00\xFF\xFF\x00\x00\xFF",
-        "\x00\x00\x00\xFF\xFF\x00\xFF\x00", "\x00\x00\x00\xFF\xFF\x00\xFF\xFF",
-        "\x00\x00\x00\xFF\xFF\xFF\x00\x00", "\x00\x00\x00\xFF\xFF\xFF\x00\xFF",
-        "\x00\x00\x00\xFF\xFF\xFF\xFF\x00", "\x00\x00\x00\xFF\xFF\xFF\xFF\xFF",
-        "\x00\x00\xFF\x00\x00\x00\x00\x00", "\x00\x00\xFF\x00\x00\x00\x00\xFF",
-        "\x00\x00\xFF\x00\x00\x00\xFF\x00", "\x00\x00\xFF\x00\x00\x00\xFF\xFF",
-        "\x00\x00\xFF\x00\x00\xFF\x00\x00", "\x00\x00\xFF\x00\x00\xFF\x00\xFF",
-        "\x00\x00\xFF\x00\x00\xFF\xFF\x00", "\x00\x00\xFF\x00\x00\xFF\xFF\xFF",
-        "\x00\x00\xFF\x00\xFF\x00\x00\x00", "\x00\x00\xFF\x00\xFF\x00\x00\xFF",
-        "\x00\x00\xFF\x00\xFF\x00\xFF\x00", "\x00\x00\xFF\x00\xFF\x00\xFF\xFF",
-        "\x00\x00\xFF\x00\xFF\xFF\x00\x00", "\x00\x00\xFF\x00\xFF\xFF\x00\xFF",
-        "\x00\x00\xFF\x00\xFF\xFF\xFF\x00", "\x00\x00\xFF\x00\xFF\xFF\xFF\xFF",
-        "\x00\x00\xFF\xFF\x00\x00\x00\x00", "\x00\x00\xFF\xFF\x00\x00\x00\xFF",
-        "\x00\x00\xFF\xFF\x00\x00\xFF\x00", "\x00\x00\xFF\xFF\x00\x00\xFF\xFF",
-        "\x00\x00\xFF\xFF\x00\xFF\x00\x00", "\x00\x00\xFF\xFF\x00\xFF\x00\xFF",
-        "\x00\x00\xFF\xFF\x00\xFF\xFF\x00", "\x00\x00\xFF\xFF\x00\xFF\xFF\xFF",
-        "\x00\x00\xFF\xFF\xFF\x00\x00\x00", "\x00\x00\xFF\xFF\xFF\x00\x00\xFF",
-        "\x00\x00\xFF\xFF\xFF\x00\xFF\x00", "\x00\x00\xFF\xFF\xFF\x00\xFF\xFF",
-        "\x00\x00\xFF\xFF\xFF\xFF\x00\x00", "\x00\x00\xFF\xFF\xFF\xFF\x00\xFF",
-        "\x00\x00\xFF\xFF\xFF\xFF\xFF\x00", "\x00\x00\xFF\xFF\xFF\xFF\xFF\xFF",
-        "\x00\xFF\x00\x00\x00\x00\x00\x00", "\x00\xFF\x00\x00\x00\x00\x00\xFF",
-        "\x00\xFF\x00\x00\x00\x00\xFF\x00", "\x00\xFF\x00\x00\x00\x00\xFF\xFF",
-        "\x00\xFF\x00\x00\x00\xFF\x00\x00", "\x00\xFF\x00\x00\x00\xFF\x00\xFF",
-        "\x00\xFF\x00\x00\x00\xFF\xFF\x00", "\x00\xFF\x00\x00\x00\xFF\xFF\xFF",
-        "\x00\xFF\x00\x00\xFF\x00\x00\x00", "\x00\xFF\x00\x00\xFF\x00\x00\xFF",
-        "\x00\xFF\x00\x00\xFF\x00\xFF\x00", "\x00\xFF\x00\x00\xFF\x00\xFF\xFF",
-        "\x00\xFF\x00\x00\xFF\xFF\x00\x00", "\x00\xFF\x00\x00\xFF\xFF\x00\xFF",
-        "\x00\xFF\x00\x00\xFF\xFF\xFF\x00", "\x00\xFF\x00\x00\xFF\xFF\xFF\xFF",
-        "\x00\xFF\x00\xFF\x00\x00\x00\x00", "\x00\xFF\x00\xFF\x00\x00\x00\xFF",
-        "\x00\xFF\x00\xFF\x00\x00\xFF\x00", "\x00\xFF\x00\xFF\x00\x00\xFF\xFF",
-        "\x00\xFF\x00\xFF\x00\xFF\x00\x00", "\x00\xFF\x00\xFF\x00\xFF\x00\xFF",
-        "\x00\xFF\x00\xFF\x00\xFF\xFF\x00", "\x00\xFF\x00\xFF\x00\xFF\xFF\xFF",
-        "\x00\xFF\x00\xFF\xFF\x00\x00\x00", "\x00\xFF\x00\xFF\xFF\x00\x00\xFF",
-        "\x00\xFF\x00\xFF\xFF\x00\xFF\x00", "\x00\xFF\x00\xFF\xFF\x00\xFF\xFF",
-        "\x00\xFF\x00\xFF\xFF\xFF\x00\x00", "\x00\xFF\x00\xFF\xFF\xFF\x00\xFF",
-        "\x00\xFF\x00\xFF\xFF\xFF\xFF\x00", "\x00\xFF\x00\xFF\xFF\xFF\xFF\xFF",
-        "\x00\xFF\xFF\x00\x00\x00\x00\x00", "\x00\xFF\xFF\x00\x00\x00\x00\xFF",
-        "\x00\xFF\xFF\x00\x00\x00\xFF\x00", "\x00\xFF\xFF\x00\x00\x00\xFF\xFF",
-        "\x00\xFF\xFF\x00\x00\xFF\x00\x00", "\x00\xFF\xFF\x00\x00\xFF\x00\xFF",
-        "\x00\xFF\xFF\x00\x00\xFF\xFF\x00", "\x00\xFF\xFF\x00\x00\xFF\xFF\xFF",
-        "\x00\xFF\xFF\x00\xFF\x00\x00\x00", "\x00\xFF\xFF\x00\xFF\x00\x00\xFF",
-        "\x00\xFF\xFF\x00\xFF\x00\xFF\x00", "\x00\xFF\xFF\x00\xFF\x00\xFF\xFF",
-        "\x00\xFF\xFF\x00\xFF\xFF\x00\x00", "\x00\xFF\xFF\x00\xFF\xFF\x00\xFF",
-        "\x00\xFF\xFF\x00\xFF\xFF\xFF\x00", "\x00\xFF\xFF\x00\xFF\xFF\xFF\xFF",
-        "\x00\xFF\xFF\xFF\x00\x00\x00\x00", "\x00\xFF\xFF\xFF\x00\x00\x00\xFF",
-        "\x00\xFF\xFF\xFF\x00\x00\xFF\x00", "\x00\xFF\xFF\xFF\x00\x00\xFF\xFF",
-        "\x00\xFF\xFF\xFF\x00\xFF\x00\x00", "\x00\xFF\xFF\xFF\x00\xFF\x00\xFF",
-        "\x00\xFF\xFF\xFF\x00\xFF\xFF\x00", "\x00\xFF\xFF\xFF\x00\xFF\xFF\xFF",
-        "\x00\xFF\xFF\xFF\xFF\x00\x00\x00", "\x00\xFF\xFF\xFF\xFF\x00\x00\xFF",
-        "\x00\xFF\xFF\xFF\xFF\x00\xFF\x00", "\x00\xFF\xFF\xFF\xFF\x00\xFF\xFF",
-        "\x00\xFF\xFF\xFF\xFF\xFF\x00\x00", "\x00\xFF\xFF\xFF\xFF\xFF\x00\xFF",
-        "\x00\xFF\xFF\xFF\xFF\xFF\xFF\x00", "\x00\xFF\xFF\xFF\xFF\xFF\xFF\xFF",
-        "\xFF\x00\x00\x00\x00\x00\x00\x00", "\xFF\x00\x00\x00\x00\x00\x00\xFF",
-        "\xFF\x00\x00\x00\x00\x00\xFF\x00", "\xFF\x00\x00\x00\x00\x00\xFF\xFF",
-        "\xFF\x00\x00\x00\x00\xFF\x00\x00", "\xFF\x00\x00\x00\x00\xFF\x00\xFF",
-        "\xFF\x00\x00\x00\x00\xFF\xFF\x00", "\xFF\x00\x00\x00\x00\xFF\xFF\xFF",
-        "\xFF\x00\x00\x00\xFF\x00\x00\x00", "\xFF\x00\x00\x00\xFF\x00\x00\xFF",
-        "\xFF\x00\x00\x00\xFF\x00\xFF\x00", "\xFF\x00\x00\x00\xFF\x00\xFF\xFF",
-        "\xFF\x00\x00\x00\xFF\xFF\x00\x00", "\xFF\x00\x00\x00\xFF\xFF\x00\xFF",
-        "\xFF\x00\x00\x00\xFF\xFF\xFF\x00", "\xFF\x00\x00\x00\xFF\xFF\xFF\xFF",
-        "\xFF\x00\x00\xFF\x00\x00\x00\x00", "\xFF\x00\x00\xFF\x00\x00\x00\xFF",
-        "\xFF\x00\x00\xFF\x00\x00\xFF\x00", "\xFF\x00\x00\xFF\x00\x00\xFF\xFF",
-        "\xFF\x00\x00\xFF\x00\xFF\x00\x00", "\xFF\x00\x00\xFF\x00\xFF\x00\xFF",
-        "\xFF\x00\x00\xFF\x00\xFF\xFF\x00", "\xFF\x00\x00\xFF\x00\xFF\xFF\xFF",
-        "\xFF\x00\x00\xFF\xFF\x00\x00\x00", "\xFF\x00\x00\xFF\xFF\x00\x00\xFF",
-        "\xFF\x00\x00\xFF\xFF\x00\xFF\x00", "\xFF\x00\x00\xFF\xFF\x00\xFF\xFF",
-        "\xFF\x00\x00\xFF\xFF\xFF\x00\x00", "\xFF\x00\x00\xFF\xFF\xFF\x00\xFF",
-        "\xFF\x00\x00\xFF\xFF\xFF\xFF\x00", "\xFF\x00\x00\xFF\xFF\xFF\xFF\xFF",
-        "\xFF\x00\xFF\x00\x00\x00\x00\x00", "\xFF\x00\xFF\x00\x00\x00\x00\xFF",
-        "\xFF\x00\xFF\x00\x00\x00\xFF\x00", "\xFF\x00\xFF\x00\x00\x00\xFF\xFF",
-        "\xFF\x00\xFF\x00\x00\xFF\x00\x00", "\xFF\x00\xFF\x00\x00\xFF\x00\xFF",
-        "\xFF\x00\xFF\x00\x00\xFF\xFF\x00", "\xFF\x00\xFF\x00\x00\xFF\xFF\xFF",
-        "\xFF\x00\xFF\x00\xFF\x00\x00\x00", "\xFF\x00\xFF\x00\xFF\x00\x00\xFF",
-        "\xFF\x00\xFF\x00\xFF\x00\xFF\x00", "\xFF\x00\xFF\x00\xFF\x00\xFF\xFF",
-        "\xFF\x00\xFF\x00\xFF\xFF\x00\x00", "\xFF\x00\xFF\x00\xFF\xFF\x00\xFF",
-        "\xFF\x00\xFF\x00\xFF\xFF\xFF\x00", "\xFF\x00\xFF\x00\xFF\xFF\xFF\xFF",
-        "\xFF\x00\xFF\xFF\x00\x00\x00\x00", "\xFF\x00\xFF\xFF\x00\x00\x00\xFF",
-        "\xFF\x00\xFF\xFF\x00\x00\xFF\x00", "\xFF\x00\xFF\xFF\x00\x00\xFF\xFF",
-        "\xFF\x00\xFF\xFF\x00\xFF\x00\x00", "\xFF\x00\xFF\xFF\x00\xFF\x00\xFF",
-        "\xFF\x00\xFF\xFF\x00\xFF\xFF\x00", "\xFF\x00\xFF\xFF\x00\xFF\xFF\xFF",
-        "\xFF\x00\xFF\xFF\xFF\x00\x00\x00", "\xFF\x00\xFF\xFF\xFF\x00\x00\xFF",
-        "\xFF\x00\xFF\xFF\xFF\x00\xFF\x00", "\xFF\x00\xFF\xFF\xFF\x00\xFF\xFF",
-        "\xFF\x00\xFF\xFF\xFF\xFF\x00\x00", "\xFF\x00\xFF\xFF\xFF\xFF\x00\xFF",
-        "\xFF\x00\xFF\xFF\xFF\xFF\xFF\x00", "\xFF\x00\xFF\xFF\xFF\xFF\xFF\xFF",
-        "\xFF\xFF\x00\x00\x00\x00\x00\x00", "\xFF\xFF\x00\x00\x00\x00\x00\xFF",
-        "\xFF\xFF\x00\x00\x00\x00\xFF\x00", "\xFF\xFF\x00\x00\x00\x00\xFF\xFF",
-        "\xFF\xFF\x00\x00\x00\xFF\x00\x00", "\xFF\xFF\x00\x00\x00\xFF\x00\xFF",
-        "\xFF\xFF\x00\x00\x00\xFF\xFF\x00", "\xFF\xFF\x00\x00\x00\xFF\xFF\xFF",
-        "\xFF\xFF\x00\x00\xFF\x00\x00\x00", "\xFF\xFF\x00\x00\xFF\x00\x00\xFF",
-        "\xFF\xFF\x00\x00\xFF\x00\xFF\x00", "\xFF\xFF\x00\x00\xFF\x00\xFF\xFF",
-        "\xFF\xFF\x00\x00\xFF\xFF\x00\x00", "\xFF\xFF\x00\x00\xFF\xFF\x00\xFF",
-        "\xFF\xFF\x00\x00\xFF\xFF\xFF\x00", "\xFF\xFF\x00\x00\xFF\xFF\xFF\xFF",
-        "\xFF\xFF\x00\xFF\x00\x00\x00\x00", "\xFF\xFF\x00\xFF\x00\x00\x00\xFF",
-        "\xFF\xFF\x00\xFF\x00\x00\xFF\x00", "\xFF\xFF\x00\xFF\x00\x00\xFF\xFF",
-        "\xFF\xFF\x00\xFF\x00\xFF\x00\x00", "\xFF\xFF\x00\xFF\x00\xFF\x00\xFF",
-        "\xFF\xFF\x00\xFF\x00\xFF\xFF\x00", "\xFF\xFF\x00\xFF\x00\xFF\xFF\xFF",
-        "\xFF\xFF\x00\xFF\xFF\x00\x00\x00", "\xFF\xFF\x00\xFF\xFF\x00\x00\xFF",
-        "\xFF\xFF\x00\xFF\xFF\x00\xFF\x00", "\xFF\xFF\x00\xFF\xFF\x00\xFF\xFF",
-        "\xFF\xFF\x00\xFF\xFF\xFF\x00\x00", "\xFF\xFF\x00\xFF\xFF\xFF\x00\xFF",
-        "\xFF\xFF\x00\xFF\xFF\xFF\xFF\x00", "\xFF\xFF\x00\xFF\xFF\xFF\xFF\xFF",
-        "\xFF\xFF\xFF\x00\x00\x00\x00\x00", "\xFF\xFF\xFF\x00\x00\x00\x00\xFF",
-        "\xFF\xFF\xFF\x00\x00\x00\xFF\x00", "\xFF\xFF\xFF\x00\x00\x00\xFF\xFF",
-        "\xFF\xFF\xFF\x00\x00\xFF\x00\x00", "\xFF\xFF\xFF\x00\x00\xFF\x00\xFF",
-        "\xFF\xFF\xFF\x00\x00\xFF\xFF\x00", "\xFF\xFF\xFF\x00\x00\xFF\xFF\xFF",
-        "\xFF\xFF\xFF\x00\xFF\x00\x00\x00", "\xFF\xFF\xFF\x00\xFF\x00\x00\xFF",
-        "\xFF\xFF\xFF\x00\xFF\x00\xFF\x00", "\xFF\xFF\xFF\x00\xFF\x00\xFF\xFF",
-        "\xFF\xFF\xFF\x00\xFF\xFF\x00\x00", "\xFF\xFF\xFF\x00\xFF\xFF\x00\xFF",
-        "\xFF\xFF\xFF\x00\xFF\xFF\xFF\x00", "\xFF\xFF\xFF\x00\xFF\xFF\xFF\xFF",
-        "\xFF\xFF\xFF\xFF\x00\x00\x00\x00", "\xFF\xFF\xFF\xFF\x00\x00\x00\xFF",
-        "\xFF\xFF\xFF\xFF\x00\x00\xFF\x00", "\xFF\xFF\xFF\xFF\x00\x00\xFF\xFF",
-        "\xFF\xFF\xFF\xFF\x00\xFF\x00\x00", "\xFF\xFF\xFF\xFF\x00\xFF\x00\xFF",
-        "\xFF\xFF\xFF\xFF\x00\xFF\xFF\x00", "\xFF\xFF\xFF\xFF\x00\xFF\xFF\xFF",
-        "\xFF\xFF\xFF\xFF\xFF\x00\x00\x00", "\xFF\xFF\xFF\xFF\xFF\x00\x00\xFF",
-        "\xFF\xFF\xFF\xFF\xFF\x00\xFF\x00", "\xFF\xFF\xFF\xFF\xFF\x00\xFF\xFF",
-        "\xFF\xFF\xFF\xFF\xFF\xFF\x00\x00", "\xFF\xFF\xFF\xFF\xFF\xFF\x00\xFF",
-        "\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x00", "\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"
-    );
-
-    /**
-     * IP mapping helper table.
-     *
-     * Indexing this table with each source byte performs the initial bit permutation.
-     *
-     * @var array
-     * @access private
-     */
-    var $ipmap = array(
-        0x00, 0x10, 0x01, 0x11, 0x20, 0x30, 0x21, 0x31,
-        0x02, 0x12, 0x03, 0x13, 0x22, 0x32, 0x23, 0x33,
-        0x40, 0x50, 0x41, 0x51, 0x60, 0x70, 0x61, 0x71,
-        0x42, 0x52, 0x43, 0x53, 0x62, 0x72, 0x63, 0x73,
-        0x04, 0x14, 0x05, 0x15, 0x24, 0x34, 0x25, 0x35,
-        0x06, 0x16, 0x07, 0x17, 0x26, 0x36, 0x27, 0x37,
-        0x44, 0x54, 0x45, 0x55, 0x64, 0x74, 0x65, 0x75,
-        0x46, 0x56, 0x47, 0x57, 0x66, 0x76, 0x67, 0x77,
-        0x80, 0x90, 0x81, 0x91, 0xA0, 0xB0, 0xA1, 0xB1,
-        0x82, 0x92, 0x83, 0x93, 0xA2, 0xB2, 0xA3, 0xB3,
-        0xC0, 0xD0, 0xC1, 0xD1, 0xE0, 0xF0, 0xE1, 0xF1,
-        0xC2, 0xD2, 0xC3, 0xD3, 0xE2, 0xF2, 0xE3, 0xF3,
-        0x84, 0x94, 0x85, 0x95, 0xA4, 0xB4, 0xA5, 0xB5,
-        0x86, 0x96, 0x87, 0x97, 0xA6, 0xB6, 0xA7, 0xB7,
-        0xC4, 0xD4, 0xC5, 0xD5, 0xE4, 0xF4, 0xE5, 0xF5,
-        0xC6, 0xD6, 0xC7, 0xD7, 0xE6, 0xF6, 0xE7, 0xF7,
-        0x08, 0x18, 0x09, 0x19, 0x28, 0x38, 0x29, 0x39,
-        0x0A, 0x1A, 0x0B, 0x1B, 0x2A, 0x3A, 0x2B, 0x3B,
-        0x48, 0x58, 0x49, 0x59, 0x68, 0x78, 0x69, 0x79,
-        0x4A, 0x5A, 0x4B, 0x5B, 0x6A, 0x7A, 0x6B, 0x7B,
-        0x0C, 0x1C, 0x0D, 0x1D, 0x2C, 0x3C, 0x2D, 0x3D,
-        0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F,
-        0x4C, 0x5C, 0x4D, 0x5D, 0x6C, 0x7C, 0x6D, 0x7D,
-        0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F,
-        0x88, 0x98, 0x89, 0x99, 0xA8, 0xB8, 0xA9, 0xB9,
-        0x8A, 0x9A, 0x8B, 0x9B, 0xAA, 0xBA, 0xAB, 0xBB,
-        0xC8, 0xD8, 0xC9, 0xD9, 0xE8, 0xF8, 0xE9, 0xF9,
-        0xCA, 0xDA, 0xCB, 0xDB, 0xEA, 0xFA, 0xEB, 0xFB,
-        0x8C, 0x9C, 0x8D, 0x9D, 0xAC, 0xBC, 0xAD, 0xBD,
-        0x8E, 0x9E, 0x8F, 0x9F, 0xAE, 0xBE, 0xAF, 0xBF,
-        0xCC, 0xDC, 0xCD, 0xDD, 0xEC, 0xFC, 0xED, 0xFD,
-        0xCE, 0xDE, 0xCF, 0xDF, 0xEE, 0xFE, 0xEF, 0xFF
-    );
-
-    /**
-     * Inverse IP mapping helper table.
-     * Indexing this table with a byte value reverses the bit order.
-     *
-     * @var array
-     * @access private
-     */
-    var $invipmap = array(
-        0x00, 0x80, 0x40, 0xC0, 0x20, 0xA0, 0x60, 0xE0,
-        0x10, 0x90, 0x50, 0xD0, 0x30, 0xB0, 0x70, 0xF0,
-        0x08, 0x88, 0x48, 0xC8, 0x28, 0xA8, 0x68, 0xE8,
-        0x18, 0x98, 0x58, 0xD8, 0x38, 0xB8, 0x78, 0xF8,
-        0x04, 0x84, 0x44, 0xC4, 0x24, 0xA4, 0x64, 0xE4,
-        0x14, 0x94, 0x54, 0xD4, 0x34, 0xB4, 0x74, 0xF4,
-        0x0C, 0x8C, 0x4C, 0xCC, 0x2C, 0xAC, 0x6C, 0xEC,
-        0x1C, 0x9C, 0x5C, 0xDC, 0x3C, 0xBC, 0x7C, 0xFC,
-        0x02, 0x82, 0x42, 0xC2, 0x22, 0xA2, 0x62, 0xE2,
-        0x12, 0x92, 0x52, 0xD2, 0x32, 0xB2, 0x72, 0xF2,
-        0x0A, 0x8A, 0x4A, 0xCA, 0x2A, 0xAA, 0x6A, 0xEA,
-        0x1A, 0x9A, 0x5A, 0xDA, 0x3A, 0xBA, 0x7A, 0xFA,
-        0x06, 0x86, 0x46, 0xC6, 0x26, 0xA6, 0x66, 0xE6,
-        0x16, 0x96, 0x56, 0xD6, 0x36, 0xB6, 0x76, 0xF6,
-        0x0E, 0x8E, 0x4E, 0xCE, 0x2E, 0xAE, 0x6E, 0xEE,
-        0x1E, 0x9E, 0x5E, 0xDE, 0x3E, 0xBE, 0x7E, 0xFE,
-        0x01, 0x81, 0x41, 0xC1, 0x21, 0xA1, 0x61, 0xE1,
-        0x11, 0x91, 0x51, 0xD1, 0x31, 0xB1, 0x71, 0xF1,
-        0x09, 0x89, 0x49, 0xC9, 0x29, 0xA9, 0x69, 0xE9,
-        0x19, 0x99, 0x59, 0xD9, 0x39, 0xB9, 0x79, 0xF9,
-        0x05, 0x85, 0x45, 0xC5, 0x25, 0xA5, 0x65, 0xE5,
-        0x15, 0x95, 0x55, 0xD5, 0x35, 0xB5, 0x75, 0xF5,
-        0x0D, 0x8D, 0x4D, 0xCD, 0x2D, 0xAD, 0x6D, 0xED,
-        0x1D, 0x9D, 0x5D, 0xDD, 0x3D, 0xBD, 0x7D, 0xFD,
-        0x03, 0x83, 0x43, 0xC3, 0x23, 0xA3, 0x63, 0xE3,
-        0x13, 0x93, 0x53, 0xD3, 0x33, 0xB3, 0x73, 0xF3,
-        0x0B, 0x8B, 0x4B, 0xCB, 0x2B, 0xAB, 0x6B, 0xEB,
-        0x1B, 0x9B, 0x5B, 0xDB, 0x3B, 0xBB, 0x7B, 0xFB,
-        0x07, 0x87, 0x47, 0xC7, 0x27, 0xA7, 0x67, 0xE7,
-        0x17, 0x97, 0x57, 0xD7, 0x37, 0xB7, 0x77, 0xF7,
-        0x0F, 0x8F, 0x4F, 0xCF, 0x2F, 0xAF, 0x6F, 0xEF,
-        0x1F, 0x9F, 0x5F, 0xDF, 0x3F, 0xBF, 0x7F, 0xFF
-    );
-
-    /**
-     * Pre-permuted S-box1
-     *
-     * Each box ($sbox1-$sbox8) has been vectorized, then each value pre-permuted using the
-     * P table: concatenation can then be replaced by exclusive ORs.
-     *
-     * @var array
-     * @access private
-     */
-    var $sbox1 = array(
-        0x00808200, 0x00000000, 0x00008000, 0x00808202,
-        0x00808002, 0x00008202, 0x00000002, 0x00008000,
-        0x00000200, 0x00808200, 0x00808202, 0x00000200,
-        0x00800202, 0x00808002, 0x00800000, 0x00000002,
-        0x00000202, 0x00800200, 0x00800200, 0x00008200,
-        0x00008200, 0x00808000, 0x00808000, 0x00800202,
-        0x00008002, 0x00800002, 0x00800002, 0x00008002,
-        0x00000000, 0x00000202, 0x00008202, 0x00800000,
-        0x00008000, 0x00808202, 0x00000002, 0x00808000,
-        0x00808200, 0x00800000, 0x00800000, 0x00000200,
-        0x00808002, 0x00008000, 0x00008200, 0x00800002,
-        0x00000200, 0x00000002, 0x00800202, 0x00008202,
-        0x00808202, 0x00008002, 0x00808000, 0x00800202,
-        0x00800002, 0x00000202, 0x00008202, 0x00808200,
-        0x00000202, 0x00800200, 0x00800200, 0x00000000,
-        0x00008002, 0x00008200, 0x00000000, 0x00808002
-    );
-
-    /**
-     * Pre-permuted S-box2
-     *
-     * @var array
-     * @access private
-     */
-    var $sbox2 = array(
-        0x40084010, 0x40004000, 0x00004000, 0x00084010,
-        0x00080000, 0x00000010, 0x40080010, 0x40004010,
-        0x40000010, 0x40084010, 0x40084000, 0x40000000,
-        0x40004000, 0x00080000, 0x00000010, 0x40080010,
-        0x00084000, 0x00080010, 0x40004010, 0x00000000,
-        0x40000000, 0x00004000, 0x00084010, 0x40080000,
-        0x00080010, 0x40000010, 0x00000000, 0x00084000,
-        0x00004010, 0x40084000, 0x40080000, 0x00004010,
-        0x00000000, 0x00084010, 0x40080010, 0x00080000,
-        0x40004010, 0x40080000, 0x40084000, 0x00004000,
-        0x40080000, 0x40004000, 0x00000010, 0x40084010,
-        0x00084010, 0x00000010, 0x00004000, 0x40000000,
-        0x00004010, 0x40084000, 0x00080000, 0x40000010,
-        0x00080010, 0x40004010, 0x40000010, 0x00080010,
-        0x00084000, 0x00000000, 0x40004000, 0x00004010,
-        0x40000000, 0x40080010, 0x40084010, 0x00084000
-    );
-
-    /**
-     * Pre-permuted S-box3
-     *
-     * @var array
-     * @access private
-     */
-    var $sbox3 = array(
-        0x00000104, 0x04010100, 0x00000000, 0x04010004,
-        0x04000100, 0x00000000, 0x00010104, 0x04000100,
-        0x00010004, 0x04000004, 0x04000004, 0x00010000,
-        0x04010104, 0x00010004, 0x04010000, 0x00000104,
-        0x04000000, 0x00000004, 0x04010100, 0x00000100,
-        0x00010100, 0x04010000, 0x04010004, 0x00010104,
-        0x04000104, 0x00010100, 0x00010000, 0x04000104,
-        0x00000004, 0x04010104, 0x00000100, 0x04000000,
-        0x04010100, 0x04000000, 0x00010004, 0x00000104,
-        0x00010000, 0x04010100, 0x04000100, 0x00000000,
-        0x00000100, 0x00010004, 0x04010104, 0x04000100,
-        0x04000004, 0x00000100, 0x00000000, 0x04010004,
-        0x04000104, 0x00010000, 0x04000000, 0x04010104,
-        0x00000004, 0x00010104, 0x00010100, 0x04000004,
-        0x04010000, 0x04000104, 0x00000104, 0x04010000,
-        0x00010104, 0x00000004, 0x04010004, 0x00010100
-    );
-
-    /**
-     * Pre-permuted S-box4
-     *
-     * @var array
-     * @access private
-     */
-    var $sbox4 = array(
-        0x80401000, 0x80001040, 0x80001040, 0x00000040,
-        0x00401040, 0x80400040, 0x80400000, 0x80001000,
-        0x00000000, 0x00401000, 0x00401000, 0x80401040,
-        0x80000040, 0x00000000, 0x00400040, 0x80400000,
-        0x80000000, 0x00001000, 0x00400000, 0x80401000,
-        0x00000040, 0x00400000, 0x80001000, 0x00001040,
-        0x80400040, 0x80000000, 0x00001040, 0x00400040,
-        0x00001000, 0x00401040, 0x80401040, 0x80000040,
-        0x00400040, 0x80400000, 0x00401000, 0x80401040,
-        0x80000040, 0x00000000, 0x00000000, 0x00401000,
-        0x00001040, 0x00400040, 0x80400040, 0x80000000,
-        0x80401000, 0x80001040, 0x80001040, 0x00000040,
-        0x80401040, 0x80000040, 0x80000000, 0x00001000,
-        0x80400000, 0x80001000, 0x00401040, 0x80400040,
-        0x80001000, 0x00001040, 0x00400000, 0x80401000,
-        0x00000040, 0x00400000, 0x00001000, 0x00401040
-    );
-
-    /**
-     * Pre-permuted S-box5
-     *
-     * @var array
-     * @access private
-     */
-    var $sbox5 = array(
-        0x00000080, 0x01040080, 0x01040000, 0x21000080,
-        0x00040000, 0x00000080, 0x20000000, 0x01040000,
-        0x20040080, 0x00040000, 0x01000080, 0x20040080,
-        0x21000080, 0x21040000, 0x00040080, 0x20000000,
-        0x01000000, 0x20040000, 0x20040000, 0x00000000,
-        0x20000080, 0x21040080, 0x21040080, 0x01000080,
-        0x21040000, 0x20000080, 0x00000000, 0x21000000,
-        0x01040080, 0x01000000, 0x21000000, 0x00040080,
-        0x00040000, 0x21000080, 0x00000080, 0x01000000,
-        0x20000000, 0x01040000, 0x21000080, 0x20040080,
-        0x01000080, 0x20000000, 0x21040000, 0x01040080,
-        0x20040080, 0x00000080, 0x01000000, 0x21040000,
-        0x21040080, 0x00040080, 0x21000000, 0x21040080,
-        0x01040000, 0x00000000, 0x20040000, 0x21000000,
-        0x00040080, 0x01000080, 0x20000080, 0x00040000,
-        0x00000000, 0x20040000, 0x01040080, 0x20000080
-    );
-
-    /**
-     * Pre-permuted S-box6
-     *
-     * @var array
-     * @access private
-     */
-    var $sbox6 = array(
-        0x10000008, 0x10200000, 0x00002000, 0x10202008,
-        0x10200000, 0x00000008, 0x10202008, 0x00200000,
-        0x10002000, 0x00202008, 0x00200000, 0x10000008,
-        0x00200008, 0x10002000, 0x10000000, 0x00002008,
-        0x00000000, 0x00200008, 0x10002008, 0x00002000,
-        0x00202000, 0x10002008, 0x00000008, 0x10200008,
-        0x10200008, 0x00000000, 0x00202008, 0x10202000,
-        0x00002008, 0x00202000, 0x10202000, 0x10000000,
-        0x10002000, 0x00000008, 0x10200008, 0x00202000,
-        0x10202008, 0x00200000, 0x00002008, 0x10000008,
-        0x00200000, 0x10002000, 0x10000000, 0x00002008,
-        0x10000008, 0x10202008, 0x00202000, 0x10200000,
-        0x00202008, 0x10202000, 0x00000000, 0x10200008,
-        0x00000008, 0x00002000, 0x10200000, 0x00202008,
-        0x00002000, 0x00200008, 0x10002008, 0x00000000,
-        0x10202000, 0x10000000, 0x00200008, 0x10002008
-    );
-
-    /**
-     * Pre-permuted S-box7
-     *
-     * @var array
-     * @access private
-     */
-    var $sbox7 = array(
-        0x00100000, 0x02100001, 0x02000401, 0x00000000,
-        0x00000400, 0x02000401, 0x00100401, 0x02100400,
-        0x02100401, 0x00100000, 0x00000000, 0x02000001,
-        0x00000001, 0x02000000, 0x02100001, 0x00000401,
-        0x02000400, 0x00100401, 0x00100001, 0x02000400,
-        0x02000001, 0x02100000, 0x02100400, 0x00100001,
-        0x02100000, 0x00000400, 0x00000401, 0x02100401,
-        0x00100400, 0x00000001, 0x02000000, 0x00100400,
-        0x02000000, 0x00100400, 0x00100000, 0x02000401,
-        0x02000401, 0x02100001, 0x02100001, 0x00000001,
-        0x00100001, 0x02000000, 0x02000400, 0x00100000,
-        0x02100400, 0x00000401, 0x00100401, 0x02100400,
-        0x00000401, 0x02000001, 0x02100401, 0x02100000,
-        0x00100400, 0x00000000, 0x00000001, 0x02100401,
-        0x00000000, 0x00100401, 0x02100000, 0x00000400,
-        0x02000001, 0x02000400, 0x00000400, 0x00100001
-    );
-
-    /**
-     * Pre-permuted S-box8
-     *
-     * @var array
-     * @access private
-     */
-    var $sbox8 = array(
-        0x08000820, 0x00000800, 0x00020000, 0x08020820,
-        0x08000000, 0x08000820, 0x00000020, 0x08000000,
-        0x00020020, 0x08020000, 0x08020820, 0x00020800,
-        0x08020800, 0x00020820, 0x00000800, 0x00000020,
-        0x08020000, 0x08000020, 0x08000800, 0x00000820,
-        0x00020800, 0x00020020, 0x08020020, 0x08020800,
-        0x00000820, 0x00000000, 0x00000000, 0x08020020,
-        0x08000020, 0x08000800, 0x00020820, 0x00020000,
-        0x00020820, 0x00020000, 0x08020800, 0x00000800,
-        0x00000020, 0x08020020, 0x00000800, 0x00020820,
-        0x08000800, 0x00000020, 0x08000020, 0x08020000,
-        0x08020020, 0x08000000, 0x00020000, 0x08000820,
-        0x00000000, 0x08020820, 0x00020020, 0x08000020,
-        0x08020000, 0x08000800, 0x08000820, 0x00000000,
-        0x08020820, 0x00020800, 0x00020800, 0x00000820,
-        0x00000820, 0x00020020, 0x08000000, 0x08020800
-    );
-
-    /**
-     * Test for engine validity
-     *
-     * This is mainly just a wrapper to set things up for \phpseclib\Crypt\Base::isValidEngine()
-     *
-     * @see \phpseclib\Crypt\Base::isValidEngine()
-     * @param int $engine
-     * @access public
-     * @return bool
-     */
-    function isValidEngine($engine)
-    {
-        if ($this->key_length_max == 8) {
-            if ($engine == self::ENGINE_OPENSSL) {
-                $this->cipher_name_openssl_ecb = 'des-ecb';
-                $this->cipher_name_openssl = 'des-' . $this->_openssl_translate_mode();
-            }
-        }
-
-        return parent::isValidEngine($engine);
-    }
-
-    /**
-     * Sets the key.
-     *
-     * Keys can be of any length.  DES, itself, uses 64-bit keys (eg. strlen($key) == 8), however, we
-     * only use the first eight, if $key has more then eight characters in it, and pad $key with the
-     * null byte if it is less then eight characters long.
-     *
-     * DES also requires that every eighth bit be a parity bit, however, we'll ignore that.
-     *
-     * If the key is not explicitly set, it'll be assumed to be all zero's.
-     *
-     * @see \phpseclib\Crypt\Base::setKey()
-     * @access public
-     * @param string $key
-     */
-    function setKey($key)
-    {
-        // We check/cut here only up to max length of the key.
-        // Key padding to the proper length will be done in _setupKey()
-        if (strlen($key) > $this->key_length_max) {
-            $key = substr($key, 0, $this->key_length_max);
-        }
-
-        // Sets the key
-        parent::setKey($key);
-    }
-
-    /**
-     * Encrypts a block
-     *
-     * @see \phpseclib\Crypt\Base::_encryptBlock()
-     * @see \phpseclib\Crypt\Base::encrypt()
-     * @see self::encrypt()
-     * @access private
-     * @param string $in
-     * @return string
-     */
-    function _encryptBlock($in)
-    {
-        return $this->_processBlock($in, self::ENCRYPT);
-    }
-
-    /**
-     * Decrypts a block
-     *
-     * @see \phpseclib\Crypt\Base::_decryptBlock()
-     * @see \phpseclib\Crypt\Base::decrypt()
-     * @see self::decrypt()
-     * @access private
-     * @param string $in
-     * @return string
-     */
-    function _decryptBlock($in)
-    {
-        return $this->_processBlock($in, self::DECRYPT);
-    }
-
-    /**
-     * Encrypts or decrypts a 64-bit block
-     *
-     * $mode should be either self::ENCRYPT or self::DECRYPT.  See
-     * {@link http://en.wikipedia.org/wiki/Image:Feistel.png Feistel.png} to get a general
-     * idea of what this function does.
-     *
-     * @see self::_encryptBlock()
-     * @see self::_decryptBlock()
-     * @access private
-     * @param string $block
-     * @param int $mode
-     * @return string
-     */
-    function _processBlock($block, $mode)
-    {
-        static $sbox1, $sbox2, $sbox3, $sbox4, $sbox5, $sbox6, $sbox7, $sbox8, $shuffleip, $shuffleinvip;
-        if (!$sbox1) {
-            $sbox1 = array_map("intval", $this->sbox1);
-            $sbox2 = array_map("intval", $this->sbox2);
-            $sbox3 = array_map("intval", $this->sbox3);
-            $sbox4 = array_map("intval", $this->sbox4);
-            $sbox5 = array_map("intval", $this->sbox5);
-            $sbox6 = array_map("intval", $this->sbox6);
-            $sbox7 = array_map("intval", $this->sbox7);
-            $sbox8 = array_map("intval", $this->sbox8);
-            /* Merge $shuffle with $[inv]ipmap */
-            for ($i = 0; $i < 256; ++$i) {
-                $shuffleip[]    =  $this->shuffle[$this->ipmap[$i]];
-                $shuffleinvip[] =  $this->shuffle[$this->invipmap[$i]];
-            }
-        }
-
-        $keys  = $this->keys[$mode];
-        $ki    = -1;
-
-        // Do the initial IP permutation.
-        $t = unpack('Nl/Nr', $block);
-        list($l, $r) = array($t['l'], $t['r']);
-        $block = ($shuffleip[ $r        & 0xFF] & "\x80\x80\x80\x80\x80\x80\x80\x80") |
-                 ($shuffleip[($r >>  8) & 0xFF] & "\x40\x40\x40\x40\x40\x40\x40\x40") |
-                 ($shuffleip[($r >> 16) & 0xFF] & "\x20\x20\x20\x20\x20\x20\x20\x20") |
-                 ($shuffleip[($r >> 24) & 0xFF] & "\x10\x10\x10\x10\x10\x10\x10\x10") |
-                 ($shuffleip[ $l        & 0xFF] & "\x08\x08\x08\x08\x08\x08\x08\x08") |
-                 ($shuffleip[($l >>  8) & 0xFF] & "\x04\x04\x04\x04\x04\x04\x04\x04") |
-                 ($shuffleip[($l >> 16) & 0xFF] & "\x02\x02\x02\x02\x02\x02\x02\x02") |
-                 ($shuffleip[($l >> 24) & 0xFF] & "\x01\x01\x01\x01\x01\x01\x01\x01");
-
-        // Extract L0 and R0.
-        $t = unpack('Nl/Nr', $block);
-        list($l, $r) = array($t['l'], $t['r']);
-
-        for ($des_round = 0; $des_round < $this->des_rounds; ++$des_round) {
-            // Perform the 16 steps.
-            for ($i = 0; $i < 16; $i++) {
-                // start of "the Feistel (F) function" - see the following URL:
-                // http://en.wikipedia.org/wiki/Image:Data_Encryption_Standard_InfoBox_Diagram.png
-                // Merge key schedule.
-                $b1 = (($r >>  3) & 0x1FFFFFFF) ^ ($r << 29) ^ $keys[++$ki];
-                $b2 = (($r >> 31) & 0x00000001) ^ ($r <<  1) ^ $keys[++$ki];
-
-                // S-box indexing.
-                $t = $sbox1[($b1 >> 24) & 0x3F] ^ $sbox2[($b2 >> 24) & 0x3F] ^
-                     $sbox3[($b1 >> 16) & 0x3F] ^ $sbox4[($b2 >> 16) & 0x3F] ^
-                     $sbox5[($b1 >>  8) & 0x3F] ^ $sbox6[($b2 >>  8) & 0x3F] ^
-                     $sbox7[ $b1        & 0x3F] ^ $sbox8[ $b2        & 0x3F] ^ $l;
-                // end of "the Feistel (F) function"
-
-                $l = $r;
-                $r = $t;
-            }
-
-            // Last step should not permute L & R.
-            $t = $l;
-            $l = $r;
-            $r = $t;
-        }
-
-        // Perform the inverse IP permutation.
-        return ($shuffleinvip[($r >> 24) & 0xFF] & "\x80\x80\x80\x80\x80\x80\x80\x80") |
-               ($shuffleinvip[($l >> 24) & 0xFF] & "\x40\x40\x40\x40\x40\x40\x40\x40") |
-               ($shuffleinvip[($r >> 16) & 0xFF] & "\x20\x20\x20\x20\x20\x20\x20\x20") |
-               ($shuffleinvip[($l >> 16) & 0xFF] & "\x10\x10\x10\x10\x10\x10\x10\x10") |
-               ($shuffleinvip[($r >>  8) & 0xFF] & "\x08\x08\x08\x08\x08\x08\x08\x08") |
-               ($shuffleinvip[($l >>  8) & 0xFF] & "\x04\x04\x04\x04\x04\x04\x04\x04") |
-               ($shuffleinvip[ $r        & 0xFF] & "\x02\x02\x02\x02\x02\x02\x02\x02") |
-               ($shuffleinvip[ $l        & 0xFF] & "\x01\x01\x01\x01\x01\x01\x01\x01");
-    }
-
-    /**
-     * Creates the key schedule
-     *
-     * @see \phpseclib\Crypt\Base::_setupKey()
-     * @access private
-     */
-    function _setupKey()
-    {
-        if (isset($this->kl['key']) && $this->key === $this->kl['key'] && $this->des_rounds === $this->kl['des_rounds']) {
-            // already expanded
-            return;
-        }
-        $this->kl = array('key' => $this->key, 'des_rounds' => $this->des_rounds);
-
-        static $shifts = array( // number of key bits shifted per round
-            1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1
-        );
-
-        static $pc1map = array(
-            0x00, 0x00, 0x08, 0x08, 0x04, 0x04, 0x0C, 0x0C,
-            0x02, 0x02, 0x0A, 0x0A, 0x06, 0x06, 0x0E, 0x0E,
-            0x10, 0x10, 0x18, 0x18, 0x14, 0x14, 0x1C, 0x1C,
-            0x12, 0x12, 0x1A, 0x1A, 0x16, 0x16, 0x1E, 0x1E,
-            0x20, 0x20, 0x28, 0x28, 0x24, 0x24, 0x2C, 0x2C,
-            0x22, 0x22, 0x2A, 0x2A, 0x26, 0x26, 0x2E, 0x2E,
-            0x30, 0x30, 0x38, 0x38, 0x34, 0x34, 0x3C, 0x3C,
-            0x32, 0x32, 0x3A, 0x3A, 0x36, 0x36, 0x3E, 0x3E,
-            0x40, 0x40, 0x48, 0x48, 0x44, 0x44, 0x4C, 0x4C,
-            0x42, 0x42, 0x4A, 0x4A, 0x46, 0x46, 0x4E, 0x4E,
-            0x50, 0x50, 0x58, 0x58, 0x54, 0x54, 0x5C, 0x5C,
-            0x52, 0x52, 0x5A, 0x5A, 0x56, 0x56, 0x5E, 0x5E,
-            0x60, 0x60, 0x68, 0x68, 0x64, 0x64, 0x6C, 0x6C,
-            0x62, 0x62, 0x6A, 0x6A, 0x66, 0x66, 0x6E, 0x6E,
-            0x70, 0x70, 0x78, 0x78, 0x74, 0x74, 0x7C, 0x7C,
-            0x72, 0x72, 0x7A, 0x7A, 0x76, 0x76, 0x7E, 0x7E,
-            0x80, 0x80, 0x88, 0x88, 0x84, 0x84, 0x8C, 0x8C,
-            0x82, 0x82, 0x8A, 0x8A, 0x86, 0x86, 0x8E, 0x8E,
-            0x90, 0x90, 0x98, 0x98, 0x94, 0x94, 0x9C, 0x9C,
-            0x92, 0x92, 0x9A, 0x9A, 0x96, 0x96, 0x9E, 0x9E,
-            0xA0, 0xA0, 0xA8, 0xA8, 0xA4, 0xA4, 0xAC, 0xAC,
-            0xA2, 0xA2, 0xAA, 0xAA, 0xA6, 0xA6, 0xAE, 0xAE,
-            0xB0, 0xB0, 0xB8, 0xB8, 0xB4, 0xB4, 0xBC, 0xBC,
-            0xB2, 0xB2, 0xBA, 0xBA, 0xB6, 0xB6, 0xBE, 0xBE,
-            0xC0, 0xC0, 0xC8, 0xC8, 0xC4, 0xC4, 0xCC, 0xCC,
-            0xC2, 0xC2, 0xCA, 0xCA, 0xC6, 0xC6, 0xCE, 0xCE,
-            0xD0, 0xD0, 0xD8, 0xD8, 0xD4, 0xD4, 0xDC, 0xDC,
-            0xD2, 0xD2, 0xDA, 0xDA, 0xD6, 0xD6, 0xDE, 0xDE,
-            0xE0, 0xE0, 0xE8, 0xE8, 0xE4, 0xE4, 0xEC, 0xEC,
-            0xE2, 0xE2, 0xEA, 0xEA, 0xE6, 0xE6, 0xEE, 0xEE,
-            0xF0, 0xF0, 0xF8, 0xF8, 0xF4, 0xF4, 0xFC, 0xFC,
-            0xF2, 0xF2, 0xFA, 0xFA, 0xF6, 0xF6, 0xFE, 0xFE
-        );
-
-        // Mapping tables for the PC-2 transformation.
-        static $pc2mapc1 = array(
-            0x00000000, 0x00000400, 0x00200000, 0x00200400,
-            0x00000001, 0x00000401, 0x00200001, 0x00200401,
-            0x02000000, 0x02000400, 0x02200000, 0x02200400,
-            0x02000001, 0x02000401, 0x02200001, 0x02200401
-        );
-        static $pc2mapc2 = array(
-            0x00000000, 0x00000800, 0x08000000, 0x08000800,
-            0x00010000, 0x00010800, 0x08010000, 0x08010800,
-            0x00000000, 0x00000800, 0x08000000, 0x08000800,
-            0x00010000, 0x00010800, 0x08010000, 0x08010800,
-            0x00000100, 0x00000900, 0x08000100, 0x08000900,
-            0x00010100, 0x00010900, 0x08010100, 0x08010900,
-            0x00000100, 0x00000900, 0x08000100, 0x08000900,
-            0x00010100, 0x00010900, 0x08010100, 0x08010900,
-            0x00000010, 0x00000810, 0x08000010, 0x08000810,
-            0x00010010, 0x00010810, 0x08010010, 0x08010810,
-            0x00000010, 0x00000810, 0x08000010, 0x08000810,
-            0x00010010, 0x00010810, 0x08010010, 0x08010810,
-            0x00000110, 0x00000910, 0x08000110, 0x08000910,
-            0x00010110, 0x00010910, 0x08010110, 0x08010910,
-            0x00000110, 0x00000910, 0x08000110, 0x08000910,
-            0x00010110, 0x00010910, 0x08010110, 0x08010910,
-            0x00040000, 0x00040800, 0x08040000, 0x08040800,
-            0x00050000, 0x00050800, 0x08050000, 0x08050800,
-            0x00040000, 0x00040800, 0x08040000, 0x08040800,
-            0x00050000, 0x00050800, 0x08050000, 0x08050800,
-            0x00040100, 0x00040900, 0x08040100, 0x08040900,
-            0x00050100, 0x00050900, 0x08050100, 0x08050900,
-            0x00040100, 0x00040900, 0x08040100, 0x08040900,
-            0x00050100, 0x00050900, 0x08050100, 0x08050900,
-            0x00040010, 0x00040810, 0x08040010, 0x08040810,
-            0x00050010, 0x00050810, 0x08050010, 0x08050810,
-            0x00040010, 0x00040810, 0x08040010, 0x08040810,
-            0x00050010, 0x00050810, 0x08050010, 0x08050810,
-            0x00040110, 0x00040910, 0x08040110, 0x08040910,
-            0x00050110, 0x00050910, 0x08050110, 0x08050910,
-            0x00040110, 0x00040910, 0x08040110, 0x08040910,
-            0x00050110, 0x00050910, 0x08050110, 0x08050910,
-            0x01000000, 0x01000800, 0x09000000, 0x09000800,
-            0x01010000, 0x01010800, 0x09010000, 0x09010800,
-            0x01000000, 0x01000800, 0x09000000, 0x09000800,
-            0x01010000, 0x01010800, 0x09010000, 0x09010800,
-            0x01000100, 0x01000900, 0x09000100, 0x09000900,
-            0x01010100, 0x01010900, 0x09010100, 0x09010900,
-            0x01000100, 0x01000900, 0x09000100, 0x09000900,
-            0x01010100, 0x01010900, 0x09010100, 0x09010900,
-            0x01000010, 0x01000810, 0x09000010, 0x09000810,
-            0x01010010, 0x01010810, 0x09010010, 0x09010810,
-            0x01000010, 0x01000810, 0x09000010, 0x09000810,
-            0x01010010, 0x01010810, 0x09010010, 0x09010810,
-            0x01000110, 0x01000910, 0x09000110, 0x09000910,
-            0x01010110, 0x01010910, 0x09010110, 0x09010910,
-            0x01000110, 0x01000910, 0x09000110, 0x09000910,
-            0x01010110, 0x01010910, 0x09010110, 0x09010910,
-            0x01040000, 0x01040800, 0x09040000, 0x09040800,
-            0x01050000, 0x01050800, 0x09050000, 0x09050800,
-            0x01040000, 0x01040800, 0x09040000, 0x09040800,
-            0x01050000, 0x01050800, 0x09050000, 0x09050800,
-            0x01040100, 0x01040900, 0x09040100, 0x09040900,
-            0x01050100, 0x01050900, 0x09050100, 0x09050900,
-            0x01040100, 0x01040900, 0x09040100, 0x09040900,
-            0x01050100, 0x01050900, 0x09050100, 0x09050900,
-            0x01040010, 0x01040810, 0x09040010, 0x09040810,
-            0x01050010, 0x01050810, 0x09050010, 0x09050810,
-            0x01040010, 0x01040810, 0x09040010, 0x09040810,
-            0x01050010, 0x01050810, 0x09050010, 0x09050810,
-            0x01040110, 0x01040910, 0x09040110, 0x09040910,
-            0x01050110, 0x01050910, 0x09050110, 0x09050910,
-            0x01040110, 0x01040910, 0x09040110, 0x09040910,
-            0x01050110, 0x01050910, 0x09050110, 0x09050910
-        );
-        static $pc2mapc3 = array(
-            0x00000000, 0x00000004, 0x00001000, 0x00001004,
-            0x00000000, 0x00000004, 0x00001000, 0x00001004,
-            0x10000000, 0x10000004, 0x10001000, 0x10001004,
-            0x10000000, 0x10000004, 0x10001000, 0x10001004,
-            0x00000020, 0x00000024, 0x00001020, 0x00001024,
-            0x00000020, 0x00000024, 0x00001020, 0x00001024,
-            0x10000020, 0x10000024, 0x10001020, 0x10001024,
-            0x10000020, 0x10000024, 0x10001020, 0x10001024,
-            0x00080000, 0x00080004, 0x00081000, 0x00081004,
-            0x00080000, 0x00080004, 0x00081000, 0x00081004,
-            0x10080000, 0x10080004, 0x10081000, 0x10081004,
-            0x10080000, 0x10080004, 0x10081000, 0x10081004,
-            0x00080020, 0x00080024, 0x00081020, 0x00081024,
-            0x00080020, 0x00080024, 0x00081020, 0x00081024,
-            0x10080020, 0x10080024, 0x10081020, 0x10081024,
-            0x10080020, 0x10080024, 0x10081020, 0x10081024,
-            0x20000000, 0x20000004, 0x20001000, 0x20001004,
-            0x20000000, 0x20000004, 0x20001000, 0x20001004,
-            0x30000000, 0x30000004, 0x30001000, 0x30001004,
-            0x30000000, 0x30000004, 0x30001000, 0x30001004,
-            0x20000020, 0x20000024, 0x20001020, 0x20001024,
-            0x20000020, 0x20000024, 0x20001020, 0x20001024,
-            0x30000020, 0x30000024, 0x30001020, 0x30001024,
-            0x30000020, 0x30000024, 0x30001020, 0x30001024,
-            0x20080000, 0x20080004, 0x20081000, 0x20081004,
-            0x20080000, 0x20080004, 0x20081000, 0x20081004,
-            0x30080000, 0x30080004, 0x30081000, 0x30081004,
-            0x30080000, 0x30080004, 0x30081000, 0x30081004,
-            0x20080020, 0x20080024, 0x20081020, 0x20081024,
-            0x20080020, 0x20080024, 0x20081020, 0x20081024,
-            0x30080020, 0x30080024, 0x30081020, 0x30081024,
-            0x30080020, 0x30080024, 0x30081020, 0x30081024,
-            0x00000002, 0x00000006, 0x00001002, 0x00001006,
-            0x00000002, 0x00000006, 0x00001002, 0x00001006,
-            0x10000002, 0x10000006, 0x10001002, 0x10001006,
-            0x10000002, 0x10000006, 0x10001002, 0x10001006,
-            0x00000022, 0x00000026, 0x00001022, 0x00001026,
-            0x00000022, 0x00000026, 0x00001022, 0x00001026,
-            0x10000022, 0x10000026, 0x10001022, 0x10001026,
-            0x10000022, 0x10000026, 0x10001022, 0x10001026,
-            0x00080002, 0x00080006, 0x00081002, 0x00081006,
-            0x00080002, 0x00080006, 0x00081002, 0x00081006,
-            0x10080002, 0x10080006, 0x10081002, 0x10081006,
-            0x10080002, 0x10080006, 0x10081002, 0x10081006,
-            0x00080022, 0x00080026, 0x00081022, 0x00081026,
-            0x00080022, 0x00080026, 0x00081022, 0x00081026,
-            0x10080022, 0x10080026, 0x10081022, 0x10081026,
-            0x10080022, 0x10080026, 0x10081022, 0x10081026,
-            0x20000002, 0x20000006, 0x20001002, 0x20001006,
-            0x20000002, 0x20000006, 0x20001002, 0x20001006,
-            0x30000002, 0x30000006, 0x30001002, 0x30001006,
-            0x30000002, 0x30000006, 0x30001002, 0x30001006,
-            0x20000022, 0x20000026, 0x20001022, 0x20001026,
-            0x20000022, 0x20000026, 0x20001022, 0x20001026,
-            0x30000022, 0x30000026, 0x30001022, 0x30001026,
-            0x30000022, 0x30000026, 0x30001022, 0x30001026,
-            0x20080002, 0x20080006, 0x20081002, 0x20081006,
-            0x20080002, 0x20080006, 0x20081002, 0x20081006,
-            0x30080002, 0x30080006, 0x30081002, 0x30081006,
-            0x30080002, 0x30080006, 0x30081002, 0x30081006,
-            0x20080022, 0x20080026, 0x20081022, 0x20081026,
-            0x20080022, 0x20080026, 0x20081022, 0x20081026,
-            0x30080022, 0x30080026, 0x30081022, 0x30081026,
-            0x30080022, 0x30080026, 0x30081022, 0x30081026
-        );
-        static $pc2mapc4 = array(
-            0x00000000, 0x00100000, 0x00000008, 0x00100008,
-            0x00000200, 0x00100200, 0x00000208, 0x00100208,
-            0x00000000, 0x00100000, 0x00000008, 0x00100008,
-            0x00000200, 0x00100200, 0x00000208, 0x00100208,
-            0x04000000, 0x04100000, 0x04000008, 0x04100008,
-            0x04000200, 0x04100200, 0x04000208, 0x04100208,
-            0x04000000, 0x04100000, 0x04000008, 0x04100008,
-            0x04000200, 0x04100200, 0x04000208, 0x04100208,
-            0x00002000, 0x00102000, 0x00002008, 0x00102008,
-            0x00002200, 0x00102200, 0x00002208, 0x00102208,
-            0x00002000, 0x00102000, 0x00002008, 0x00102008,
-            0x00002200, 0x00102200, 0x00002208, 0x00102208,
-            0x04002000, 0x04102000, 0x04002008, 0x04102008,
-            0x04002200, 0x04102200, 0x04002208, 0x04102208,
-            0x04002000, 0x04102000, 0x04002008, 0x04102008,
-            0x04002200, 0x04102200, 0x04002208, 0x04102208,
-            0x00000000, 0x00100000, 0x00000008, 0x00100008,
-            0x00000200, 0x00100200, 0x00000208, 0x00100208,
-            0x00000000, 0x00100000, 0x00000008, 0x00100008,
-            0x00000200, 0x00100200, 0x00000208, 0x00100208,
-            0x04000000, 0x04100000, 0x04000008, 0x04100008,
-            0x04000200, 0x04100200, 0x04000208, 0x04100208,
-            0x04000000, 0x04100000, 0x04000008, 0x04100008,
-            0x04000200, 0x04100200, 0x04000208, 0x04100208,
-            0x00002000, 0x00102000, 0x00002008, 0x00102008,
-            0x00002200, 0x00102200, 0x00002208, 0x00102208,
-            0x00002000, 0x00102000, 0x00002008, 0x00102008,
-            0x00002200, 0x00102200, 0x00002208, 0x00102208,
-            0x04002000, 0x04102000, 0x04002008, 0x04102008,
-            0x04002200, 0x04102200, 0x04002208, 0x04102208,
-            0x04002000, 0x04102000, 0x04002008, 0x04102008,
-            0x04002200, 0x04102200, 0x04002208, 0x04102208,
-            0x00020000, 0x00120000, 0x00020008, 0x00120008,
-            0x00020200, 0x00120200, 0x00020208, 0x00120208,
-            0x00020000, 0x00120000, 0x00020008, 0x00120008,
-            0x00020200, 0x00120200, 0x00020208, 0x00120208,
-            0x04020000, 0x04120000, 0x04020008, 0x04120008,
-            0x04020200, 0x04120200, 0x04020208, 0x04120208,
-            0x04020000, 0x04120000, 0x04020008, 0x04120008,
-            0x04020200, 0x04120200, 0x04020208, 0x04120208,
-            0x00022000, 0x00122000, 0x00022008, 0x00122008,
-            0x00022200, 0x00122200, 0x00022208, 0x00122208,
-            0x00022000, 0x00122000, 0x00022008, 0x00122008,
-            0x00022200, 0x00122200, 0x00022208, 0x00122208,
-            0x04022000, 0x04122000, 0x04022008, 0x04122008,
-            0x04022200, 0x04122200, 0x04022208, 0x04122208,
-            0x04022000, 0x04122000, 0x04022008, 0x04122008,
-            0x04022200, 0x04122200, 0x04022208, 0x04122208,
-            0x00020000, 0x00120000, 0x00020008, 0x00120008,
-            0x00020200, 0x00120200, 0x00020208, 0x00120208,
-            0x00020000, 0x00120000, 0x00020008, 0x00120008,
-            0x00020200, 0x00120200, 0x00020208, 0x00120208,
-            0x04020000, 0x04120000, 0x04020008, 0x04120008,
-            0x04020200, 0x04120200, 0x04020208, 0x04120208,
-            0x04020000, 0x04120000, 0x04020008, 0x04120008,
-            0x04020200, 0x04120200, 0x04020208, 0x04120208,
-            0x00022000, 0x00122000, 0x00022008, 0x00122008,
-            0x00022200, 0x00122200, 0x00022208, 0x00122208,
-            0x00022000, 0x00122000, 0x00022008, 0x00122008,
-            0x00022200, 0x00122200, 0x00022208, 0x00122208,
-            0x04022000, 0x04122000, 0x04022008, 0x04122008,
-            0x04022200, 0x04122200, 0x04022208, 0x04122208,
-            0x04022000, 0x04122000, 0x04022008, 0x04122008,
-            0x04022200, 0x04122200, 0x04022208, 0x04122208
-        );
-        static $pc2mapd1 = array(
-            0x00000000, 0x00000001, 0x08000000, 0x08000001,
-            0x00200000, 0x00200001, 0x08200000, 0x08200001,
-            0x00000002, 0x00000003, 0x08000002, 0x08000003,
-            0x00200002, 0x00200003, 0x08200002, 0x08200003
-        );
-        static $pc2mapd2 = array(
-            0x00000000, 0x00100000, 0x00000800, 0x00100800,
-            0x00000000, 0x00100000, 0x00000800, 0x00100800,
-            0x04000000, 0x04100000, 0x04000800, 0x04100800,
-            0x04000000, 0x04100000, 0x04000800, 0x04100800,
-            0x00000004, 0x00100004, 0x00000804, 0x00100804,
-            0x00000004, 0x00100004, 0x00000804, 0x00100804,
-            0x04000004, 0x04100004, 0x04000804, 0x04100804,
-            0x04000004, 0x04100004, 0x04000804, 0x04100804,
-            0x00000000, 0x00100000, 0x00000800, 0x00100800,
-            0x00000000, 0x00100000, 0x00000800, 0x00100800,
-            0x04000000, 0x04100000, 0x04000800, 0x04100800,
-            0x04000000, 0x04100000, 0x04000800, 0x04100800,
-            0x00000004, 0x00100004, 0x00000804, 0x00100804,
-            0x00000004, 0x00100004, 0x00000804, 0x00100804,
-            0x04000004, 0x04100004, 0x04000804, 0x04100804,
-            0x04000004, 0x04100004, 0x04000804, 0x04100804,
-            0x00000200, 0x00100200, 0x00000A00, 0x00100A00,
-            0x00000200, 0x00100200, 0x00000A00, 0x00100A00,
-            0x04000200, 0x04100200, 0x04000A00, 0x04100A00,
-            0x04000200, 0x04100200, 0x04000A00, 0x04100A00,
-            0x00000204, 0x00100204, 0x00000A04, 0x00100A04,
-            0x00000204, 0x00100204, 0x00000A04, 0x00100A04,
-            0x04000204, 0x04100204, 0x04000A04, 0x04100A04,
-            0x04000204, 0x04100204, 0x04000A04, 0x04100A04,
-            0x00000200, 0x00100200, 0x00000A00, 0x00100A00,
-            0x00000200, 0x00100200, 0x00000A00, 0x00100A00,
-            0x04000200, 0x04100200, 0x04000A00, 0x04100A00,
-            0x04000200, 0x04100200, 0x04000A00, 0x04100A00,
-            0x00000204, 0x00100204, 0x00000A04, 0x00100A04,
-            0x00000204, 0x00100204, 0x00000A04, 0x00100A04,
-            0x04000204, 0x04100204, 0x04000A04, 0x04100A04,
-            0x04000204, 0x04100204, 0x04000A04, 0x04100A04,
-            0x00020000, 0x00120000, 0x00020800, 0x00120800,
-            0x00020000, 0x00120000, 0x00020800, 0x00120800,
-            0x04020000, 0x04120000, 0x04020800, 0x04120800,
-            0x04020000, 0x04120000, 0x04020800, 0x04120800,
-            0x00020004, 0x00120004, 0x00020804, 0x00120804,
-            0x00020004, 0x00120004, 0x00020804, 0x00120804,
-            0x04020004, 0x04120004, 0x04020804, 0x04120804,
-            0x04020004, 0x04120004, 0x04020804, 0x04120804,
-            0x00020000, 0x00120000, 0x00020800, 0x00120800,
-            0x00020000, 0x00120000, 0x00020800, 0x00120800,
-            0x04020000, 0x04120000, 0x04020800, 0x04120800,
-            0x04020000, 0x04120000, 0x04020800, 0x04120800,
-            0x00020004, 0x00120004, 0x00020804, 0x00120804,
-            0x00020004, 0x00120004, 0x00020804, 0x00120804,
-            0x04020004, 0x04120004, 0x04020804, 0x04120804,
-            0x04020004, 0x04120004, 0x04020804, 0x04120804,
-            0x00020200, 0x00120200, 0x00020A00, 0x00120A00,
-            0x00020200, 0x00120200, 0x00020A00, 0x00120A00,
-            0x04020200, 0x04120200, 0x04020A00, 0x04120A00,
-            0x04020200, 0x04120200, 0x04020A00, 0x04120A00,
-            0x00020204, 0x00120204, 0x00020A04, 0x00120A04,
-            0x00020204, 0x00120204, 0x00020A04, 0x00120A04,
-            0x04020204, 0x04120204, 0x04020A04, 0x04120A04,
-            0x04020204, 0x04120204, 0x04020A04, 0x04120A04,
-            0x00020200, 0x00120200, 0x00020A00, 0x00120A00,
-            0x00020200, 0x00120200, 0x00020A00, 0x00120A00,
-            0x04020200, 0x04120200, 0x04020A00, 0x04120A00,
-            0x04020200, 0x04120200, 0x04020A00, 0x04120A00,
-            0x00020204, 0x00120204, 0x00020A04, 0x00120A04,
-            0x00020204, 0x00120204, 0x00020A04, 0x00120A04,
-            0x04020204, 0x04120204, 0x04020A04, 0x04120A04,
-            0x04020204, 0x04120204, 0x04020A04, 0x04120A04
-        );
-        static $pc2mapd3 = array(
-            0x00000000, 0x00010000, 0x02000000, 0x02010000,
-            0x00000020, 0x00010020, 0x02000020, 0x02010020,
-            0x00040000, 0x00050000, 0x02040000, 0x02050000,
-            0x00040020, 0x00050020, 0x02040020, 0x02050020,
-            0x00002000, 0x00012000, 0x02002000, 0x02012000,
-            0x00002020, 0x00012020, 0x02002020, 0x02012020,
-            0x00042000, 0x00052000, 0x02042000, 0x02052000,
-            0x00042020, 0x00052020, 0x02042020, 0x02052020,
-            0x00000000, 0x00010000, 0x02000000, 0x02010000,
-            0x00000020, 0x00010020, 0x02000020, 0x02010020,
-            0x00040000, 0x00050000, 0x02040000, 0x02050000,
-            0x00040020, 0x00050020, 0x02040020, 0x02050020,
-            0x00002000, 0x00012000, 0x02002000, 0x02012000,
-            0x00002020, 0x00012020, 0x02002020, 0x02012020,
-            0x00042000, 0x00052000, 0x02042000, 0x02052000,
-            0x00042020, 0x00052020, 0x02042020, 0x02052020,
-            0x00000010, 0x00010010, 0x02000010, 0x02010010,
-            0x00000030, 0x00010030, 0x02000030, 0x02010030,
-            0x00040010, 0x00050010, 0x02040010, 0x02050010,
-            0x00040030, 0x00050030, 0x02040030, 0x02050030,
-            0x00002010, 0x00012010, 0x02002010, 0x02012010,
-            0x00002030, 0x00012030, 0x02002030, 0x02012030,
-            0x00042010, 0x00052010, 0x02042010, 0x02052010,
-            0x00042030, 0x00052030, 0x02042030, 0x02052030,
-            0x00000010, 0x00010010, 0x02000010, 0x02010010,
-            0x00000030, 0x00010030, 0x02000030, 0x02010030,
-            0x00040010, 0x00050010, 0x02040010, 0x02050010,
-            0x00040030, 0x00050030, 0x02040030, 0x02050030,
-            0x00002010, 0x00012010, 0x02002010, 0x02012010,
-            0x00002030, 0x00012030, 0x02002030, 0x02012030,
-            0x00042010, 0x00052010, 0x02042010, 0x02052010,
-            0x00042030, 0x00052030, 0x02042030, 0x02052030,
-            0x20000000, 0x20010000, 0x22000000, 0x22010000,
-            0x20000020, 0x20010020, 0x22000020, 0x22010020,
-            0x20040000, 0x20050000, 0x22040000, 0x22050000,
-            0x20040020, 0x20050020, 0x22040020, 0x22050020,
-            0x20002000, 0x20012000, 0x22002000, 0x22012000,
-            0x20002020, 0x20012020, 0x22002020, 0x22012020,
-            0x20042000, 0x20052000, 0x22042000, 0x22052000,
-            0x20042020, 0x20052020, 0x22042020, 0x22052020,
-            0x20000000, 0x20010000, 0x22000000, 0x22010000,
-            0x20000020, 0x20010020, 0x22000020, 0x22010020,
-            0x20040000, 0x20050000, 0x22040000, 0x22050000,
-            0x20040020, 0x20050020, 0x22040020, 0x22050020,
-            0x20002000, 0x20012000, 0x22002000, 0x22012000,
-            0x20002020, 0x20012020, 0x22002020, 0x22012020,
-            0x20042000, 0x20052000, 0x22042000, 0x22052000,
-            0x20042020, 0x20052020, 0x22042020, 0x22052020,
-            0x20000010, 0x20010010, 0x22000010, 0x22010010,
-            0x20000030, 0x20010030, 0x22000030, 0x22010030,
-            0x20040010, 0x20050010, 0x22040010, 0x22050010,
-            0x20040030, 0x20050030, 0x22040030, 0x22050030,
-            0x20002010, 0x20012010, 0x22002010, 0x22012010,
-            0x20002030, 0x20012030, 0x22002030, 0x22012030,
-            0x20042010, 0x20052010, 0x22042010, 0x22052010,
-            0x20042030, 0x20052030, 0x22042030, 0x22052030,
-            0x20000010, 0x20010010, 0x22000010, 0x22010010,
-            0x20000030, 0x20010030, 0x22000030, 0x22010030,
-            0x20040010, 0x20050010, 0x22040010, 0x22050010,
-            0x20040030, 0x20050030, 0x22040030, 0x22050030,
-            0x20002010, 0x20012010, 0x22002010, 0x22012010,
-            0x20002030, 0x20012030, 0x22002030, 0x22012030,
-            0x20042010, 0x20052010, 0x22042010, 0x22052010,
-            0x20042030, 0x20052030, 0x22042030, 0x22052030
-        );
-        static $pc2mapd4 = array(
-            0x00000000, 0x00000400, 0x01000000, 0x01000400,
-            0x00000000, 0x00000400, 0x01000000, 0x01000400,
-            0x00000100, 0x00000500, 0x01000100, 0x01000500,
-            0x00000100, 0x00000500, 0x01000100, 0x01000500,
-            0x10000000, 0x10000400, 0x11000000, 0x11000400,
-            0x10000000, 0x10000400, 0x11000000, 0x11000400,
-            0x10000100, 0x10000500, 0x11000100, 0x11000500,
-            0x10000100, 0x10000500, 0x11000100, 0x11000500,
-            0x00080000, 0x00080400, 0x01080000, 0x01080400,
-            0x00080000, 0x00080400, 0x01080000, 0x01080400,
-            0x00080100, 0x00080500, 0x01080100, 0x01080500,
-            0x00080100, 0x00080500, 0x01080100, 0x01080500,
-            0x10080000, 0x10080400, 0x11080000, 0x11080400,
-            0x10080000, 0x10080400, 0x11080000, 0x11080400,
-            0x10080100, 0x10080500, 0x11080100, 0x11080500,
-            0x10080100, 0x10080500, 0x11080100, 0x11080500,
-            0x00000008, 0x00000408, 0x01000008, 0x01000408,
-            0x00000008, 0x00000408, 0x01000008, 0x01000408,
-            0x00000108, 0x00000508, 0x01000108, 0x01000508,
-            0x00000108, 0x00000508, 0x01000108, 0x01000508,
-            0x10000008, 0x10000408, 0x11000008, 0x11000408,
-            0x10000008, 0x10000408, 0x11000008, 0x11000408,
-            0x10000108, 0x10000508, 0x11000108, 0x11000508,
-            0x10000108, 0x10000508, 0x11000108, 0x11000508,
-            0x00080008, 0x00080408, 0x01080008, 0x01080408,
-            0x00080008, 0x00080408, 0x01080008, 0x01080408,
-            0x00080108, 0x00080508, 0x01080108, 0x01080508,
-            0x00080108, 0x00080508, 0x01080108, 0x01080508,
-            0x10080008, 0x10080408, 0x11080008, 0x11080408,
-            0x10080008, 0x10080408, 0x11080008, 0x11080408,
-            0x10080108, 0x10080508, 0x11080108, 0x11080508,
-            0x10080108, 0x10080508, 0x11080108, 0x11080508,
-            0x00001000, 0x00001400, 0x01001000, 0x01001400,
-            0x00001000, 0x00001400, 0x01001000, 0x01001400,
-            0x00001100, 0x00001500, 0x01001100, 0x01001500,
-            0x00001100, 0x00001500, 0x01001100, 0x01001500,
-            0x10001000, 0x10001400, 0x11001000, 0x11001400,
-            0x10001000, 0x10001400, 0x11001000, 0x11001400,
-            0x10001100, 0x10001500, 0x11001100, 0x11001500,
-            0x10001100, 0x10001500, 0x11001100, 0x11001500,
-            0x00081000, 0x00081400, 0x01081000, 0x01081400,
-            0x00081000, 0x00081400, 0x01081000, 0x01081400,
-            0x00081100, 0x00081500, 0x01081100, 0x01081500,
-            0x00081100, 0x00081500, 0x01081100, 0x01081500,
-            0x10081000, 0x10081400, 0x11081000, 0x11081400,
-            0x10081000, 0x10081400, 0x11081000, 0x11081400,
-            0x10081100, 0x10081500, 0x11081100, 0x11081500,
-            0x10081100, 0x10081500, 0x11081100, 0x11081500,
-            0x00001008, 0x00001408, 0x01001008, 0x01001408,
-            0x00001008, 0x00001408, 0x01001008, 0x01001408,
-            0x00001108, 0x00001508, 0x01001108, 0x01001508,
-            0x00001108, 0x00001508, 0x01001108, 0x01001508,
-            0x10001008, 0x10001408, 0x11001008, 0x11001408,
-            0x10001008, 0x10001408, 0x11001008, 0x11001408,
-            0x10001108, 0x10001508, 0x11001108, 0x11001508,
-            0x10001108, 0x10001508, 0x11001108, 0x11001508,
-            0x00081008, 0x00081408, 0x01081008, 0x01081408,
-            0x00081008, 0x00081408, 0x01081008, 0x01081408,
-            0x00081108, 0x00081508, 0x01081108, 0x01081508,
-            0x00081108, 0x00081508, 0x01081108, 0x01081508,
-            0x10081008, 0x10081408, 0x11081008, 0x11081408,
-            0x10081008, 0x10081408, 0x11081008, 0x11081408,
-            0x10081108, 0x10081508, 0x11081108, 0x11081508,
-            0x10081108, 0x10081508, 0x11081108, 0x11081508
-        );
-
-        $keys = array();
-        for ($des_round = 0; $des_round < $this->des_rounds; ++$des_round) {
-            // pad the key and remove extra characters as appropriate.
-            $key = str_pad(substr($this->key, $des_round * 8, 8), 8, "\0");
-
-            // Perform the PC/1 transformation and compute C and D.
-            $t = unpack('Nl/Nr', $key);
-            list($l, $r) = array($t['l'], $t['r']);
-            $key = ($this->shuffle[$pc1map[ $r        & 0xFF]] & "\x80\x80\x80\x80\x80\x80\x80\x00") |
-                   ($this->shuffle[$pc1map[($r >>  8) & 0xFF]] & "\x40\x40\x40\x40\x40\x40\x40\x00") |
-                   ($this->shuffle[$pc1map[($r >> 16) & 0xFF]] & "\x20\x20\x20\x20\x20\x20\x20\x00") |
-                   ($this->shuffle[$pc1map[($r >> 24) & 0xFF]] & "\x10\x10\x10\x10\x10\x10\x10\x00") |
-                   ($this->shuffle[$pc1map[ $l        & 0xFF]] & "\x08\x08\x08\x08\x08\x08\x08\x00") |
-                   ($this->shuffle[$pc1map[($l >>  8) & 0xFF]] & "\x04\x04\x04\x04\x04\x04\x04\x00") |
-                   ($this->shuffle[$pc1map[($l >> 16) & 0xFF]] & "\x02\x02\x02\x02\x02\x02\x02\x00") |
-                   ($this->shuffle[$pc1map[($l >> 24) & 0xFF]] & "\x01\x01\x01\x01\x01\x01\x01\x00");
-            $key = unpack('Nc/Nd', $key);
-            $c = ( $key['c'] >> 4) & 0x0FFFFFFF;
-            $d = (($key['d'] >> 4) & 0x0FFFFFF0) | ($key['c'] & 0x0F);
-
-            $keys[$des_round] = array(
-                self::ENCRYPT => array(),
-                self::DECRYPT => array_fill(0, 32, 0)
-            );
-            for ($i = 0, $ki = 31; $i < 16; ++$i, $ki-= 2) {
-                $c <<= $shifts[$i];
-                $c = ($c | ($c >> 28)) & 0x0FFFFFFF;
-                $d <<= $shifts[$i];
-                $d = ($d | ($d >> 28)) & 0x0FFFFFFF;
-
-                // Perform the PC-2 transformation.
-                $cp = $pc2mapc1[ $c >> 24        ] | $pc2mapc2[($c >> 16) & 0xFF] |
-                      $pc2mapc3[($c >>  8) & 0xFF] | $pc2mapc4[ $c        & 0xFF];
-                $dp = $pc2mapd1[ $d >> 24        ] | $pc2mapd2[($d >> 16) & 0xFF] |
-                      $pc2mapd3[($d >>  8) & 0xFF] | $pc2mapd4[ $d        & 0xFF];
-
-                // Reorder: odd bytes/even bytes. Push the result in key schedule.
-                $val1 = ( $cp        & 0xFF000000) | (($cp <<  8) & 0x00FF0000) |
-                        (($dp >> 16) & 0x0000FF00) | (($dp >>  8) & 0x000000FF);
-                $val2 = (($cp <<  8) & 0xFF000000) | (($cp << 16) & 0x00FF0000) |
-                        (($dp >>  8) & 0x0000FF00) | ( $dp        & 0x000000FF);
-                $keys[$des_round][self::ENCRYPT][       ] = $val1;
-                $keys[$des_round][self::DECRYPT][$ki - 1] = $val1;
-                $keys[$des_round][self::ENCRYPT][       ] = $val2;
-                $keys[$des_round][self::DECRYPT][$ki    ] = $val2;
-            }
-        }
-
-        switch ($this->des_rounds) {
-            case 3: // 3DES keys
-                $this->keys = array(
-                    self::ENCRYPT => array_merge(
-                        $keys[0][self::ENCRYPT],
-                        $keys[1][self::DECRYPT],
-                        $keys[2][self::ENCRYPT]
-                    ),
-                    self::DECRYPT => array_merge(
-                        $keys[2][self::DECRYPT],
-                        $keys[1][self::ENCRYPT],
-                        $keys[0][self::DECRYPT]
-                    )
-                );
-                break;
-            // case 1: // DES keys
-            default:
-                $this->keys = array(
-                    self::ENCRYPT => $keys[0][self::ENCRYPT],
-                    self::DECRYPT => $keys[0][self::DECRYPT]
-                );
-        }
-    }
-
-    /**
-     * Setup the performance-optimized function for de/encrypt()
-     *
-     * @see \phpseclib\Crypt\Base::_setupInlineCrypt()
-     * @access private
-     */
-    function _setupInlineCrypt()
-    {
-        $lambda_functions =& self::_getLambdaFunctions();
-
-        // Engine configuration for:
-        // -  DES ($des_rounds == 1) or
-        // - 3DES ($des_rounds == 3)
-        $des_rounds = $this->des_rounds;
-
-        // We create max. 10 hi-optimized code for memory reason. Means: For each $key one ultra fast inline-crypt function.
-        // (Currently, for DES, one generated $lambda_function cost on php5.5@32bit ~135kb unfreeable mem and ~230kb on php5.5@64bit)
-        // (Currently, for TripleDES, one generated $lambda_function cost on php5.5@32bit ~240kb unfreeable mem and ~340kb on php5.5@64bit)
-        // After that, we'll still create very fast optimized code but not the hi-ultimative code, for each $mode one
-        $gen_hi_opt_code = (bool)( count($lambda_functions) < 10 );
-
-        // Generation of a unique hash for our generated code
-        $code_hash = "Crypt_DES, $des_rounds, {$this->mode}";
-        if ($gen_hi_opt_code) {
-            // For hi-optimized code, we create for each combination of
-            // $mode, $des_rounds and $this->key its own encrypt/decrypt function.
-            // After max 10 hi-optimized functions, we create generic
-            // (still very fast.. but not ultra) functions for each $mode/$des_rounds
-            // Currently 2 * 5 generic functions will be then max. possible.
-            $code_hash = str_pad($code_hash, 32) . $this->_hashInlineCryptFunction($this->key);
-        }
-
-        // Is there a re-usable $lambda_functions in there? If not, we have to create it.
-        if (!isset($lambda_functions[$code_hash])) {
-            // Init code for both, encrypt and decrypt.
-            $init_crypt = 'static $sbox1, $sbox2, $sbox3, $sbox4, $sbox5, $sbox6, $sbox7, $sbox8, $shuffleip, $shuffleinvip;
-                if (!$sbox1) {
-                    $sbox1 = array_map("intval", $self->sbox1);
-                    $sbox2 = array_map("intval", $self->sbox2);
-                    $sbox3 = array_map("intval", $self->sbox3);
-                    $sbox4 = array_map("intval", $self->sbox4);
-                    $sbox5 = array_map("intval", $self->sbox5);
-                    $sbox6 = array_map("intval", $self->sbox6);
-                    $sbox7 = array_map("intval", $self->sbox7);
-                    $sbox8 = array_map("intval", $self->sbox8);'
-                    /* Merge $shuffle with $[inv]ipmap */ . '
-                    for ($i = 0; $i < 256; ++$i) {
-                        $shuffleip[]    =  $self->shuffle[$self->ipmap[$i]];
-                        $shuffleinvip[] =  $self->shuffle[$self->invipmap[$i]];
-                    }
-                }
-            ';
-
-            switch (true) {
-                case $gen_hi_opt_code:
-                    // In Hi-optimized code mode, we use our [3]DES key schedule as hardcoded integers.
-                    // No futher initialisation of the $keys schedule is necessary.
-                    // That is the extra performance boost.
-                    $k = array(
-                        self::ENCRYPT => $this->keys[self::ENCRYPT],
-                        self::DECRYPT => $this->keys[self::DECRYPT]
-                    );
-                    $init_encrypt = '';
-                    $init_decrypt = '';
-                    break;
-                default:
-                    // In generic optimized code mode, we have to use, as the best compromise [currently],
-                    // our key schedule as $ke/$kd arrays. (with hardcoded indexes...)
-                    $k = array(
-                        self::ENCRYPT => array(),
-                        self::DECRYPT => array()
-                    );
-                    for ($i = 0, $c = count($this->keys[self::ENCRYPT]); $i < $c; ++$i) {
-                        $k[self::ENCRYPT][$i] = '$ke[' . $i . ']';
-                        $k[self::DECRYPT][$i] = '$kd[' . $i . ']';
-                    }
-                    $init_encrypt = '$ke = $self->keys[$self::ENCRYPT];';
-                    $init_decrypt = '$kd = $self->keys[$self::DECRYPT];';
-                    break;
-            }
-
-            // Creating code for en- and decryption.
-            $crypt_block = array();
-            foreach (array(self::ENCRYPT, self::DECRYPT) as $c) {
-                /* Do the initial IP permutation. */
-                $crypt_block[$c] = '
-                    $in = unpack("N*", $in);
-                    $l  = $in[1];
-                    $r  = $in[2];
-                    $in = unpack("N*",
-                        ($shuffleip[ $r        & 0xFF] & "\x80\x80\x80\x80\x80\x80\x80\x80") |
-                        ($shuffleip[($r >>  8) & 0xFF] & "\x40\x40\x40\x40\x40\x40\x40\x40") |
-                        ($shuffleip[($r >> 16) & 0xFF] & "\x20\x20\x20\x20\x20\x20\x20\x20") |
-                        ($shuffleip[($r >> 24) & 0xFF] & "\x10\x10\x10\x10\x10\x10\x10\x10") |
-                        ($shuffleip[ $l        & 0xFF] & "\x08\x08\x08\x08\x08\x08\x08\x08") |
-                        ($shuffleip[($l >>  8) & 0xFF] & "\x04\x04\x04\x04\x04\x04\x04\x04") |
-                        ($shuffleip[($l >> 16) & 0xFF] & "\x02\x02\x02\x02\x02\x02\x02\x02") |
-                        ($shuffleip[($l >> 24) & 0xFF] & "\x01\x01\x01\x01\x01\x01\x01\x01")
-                    );
-                    ' . /* Extract L0 and R0 */ '
-                    $l = $in[1];
-                    $r = $in[2];
-                ';
-
-                $l = '$l';
-                $r = '$r';
-
-                // Perform DES or 3DES.
-                for ($ki = -1, $des_round = 0; $des_round < $des_rounds; ++$des_round) {
-                    // Perform the 16 steps.
-                    for ($i = 0; $i < 16; ++$i) {
-                        // start of "the Feistel (F) function" - see the following URL:
-                        // http://en.wikipedia.org/wiki/Image:Data_Encryption_Standard_InfoBox_Diagram.png
-                        // Merge key schedule.
-                        $crypt_block[$c].= '
-                            $b1 = ((' . $r . ' >>  3) & 0x1FFFFFFF)  ^ (' . $r . ' << 29) ^ ' . $k[$c][++$ki] . ';
-                            $b2 = ((' . $r . ' >> 31) & 0x00000001)  ^ (' . $r . ' <<  1) ^ ' . $k[$c][++$ki] . ';' .
-                            /* S-box indexing. */
-                            $l . ' = $sbox1[($b1 >> 24) & 0x3F] ^ $sbox2[($b2 >> 24) & 0x3F] ^
-                                     $sbox3[($b1 >> 16) & 0x3F] ^ $sbox4[($b2 >> 16) & 0x3F] ^
-                                     $sbox5[($b1 >>  8) & 0x3F] ^ $sbox6[($b2 >>  8) & 0x3F] ^
-                                     $sbox7[ $b1        & 0x3F] ^ $sbox8[ $b2        & 0x3F] ^ ' . $l . ';
-                        ';
-                        // end of "the Feistel (F) function"
-
-                        // swap L & R
-                        list($l, $r) = array($r, $l);
-                    }
-                    list($l, $r) = array($r, $l);
-                }
-
-                // Perform the inverse IP permutation.
-                $crypt_block[$c].= '$in =
-                    ($shuffleinvip[($l >> 24) & 0xFF] & "\x80\x80\x80\x80\x80\x80\x80\x80") |
-                    ($shuffleinvip[($r >> 24) & 0xFF] & "\x40\x40\x40\x40\x40\x40\x40\x40") |
-                    ($shuffleinvip[($l >> 16) & 0xFF] & "\x20\x20\x20\x20\x20\x20\x20\x20") |
-                    ($shuffleinvip[($r >> 16) & 0xFF] & "\x10\x10\x10\x10\x10\x10\x10\x10") |
-                    ($shuffleinvip[($l >>  8) & 0xFF] & "\x08\x08\x08\x08\x08\x08\x08\x08") |
-                    ($shuffleinvip[($r >>  8) & 0xFF] & "\x04\x04\x04\x04\x04\x04\x04\x04") |
-                    ($shuffleinvip[ $l        & 0xFF] & "\x02\x02\x02\x02\x02\x02\x02\x02") |
-                    ($shuffleinvip[ $r        & 0xFF] & "\x01\x01\x01\x01\x01\x01\x01\x01");
-                ';
-            }
-
-            // Creates the inline-crypt function
-            $lambda_functions[$code_hash] = $this->_createInlineCryptFunction(
-                array(
-                   'init_crypt'    => $init_crypt,
-                   'init_encrypt'  => $init_encrypt,
-                   'init_decrypt'  => $init_decrypt,
-                   'encrypt_block' => $crypt_block[self::ENCRYPT],
-                   'decrypt_block' => $crypt_block[self::DECRYPT]
-                )
-            );
-        }
-
-        // Set the inline-crypt function as callback in: $this->inline_crypt
-        $this->inline_crypt = $lambda_functions[$code_hash];
-    }
-}
diff --git a/wiki/vendor/phpseclib/phpseclib/phpseclib/Crypt/Hash.php b/wiki/vendor/phpseclib/phpseclib/phpseclib/Crypt/Hash.php
deleted file mode 100644
index 6ae0132..0000000
--- a/wiki/vendor/phpseclib/phpseclib/phpseclib/Crypt/Hash.php
+++ /dev/null
@@ -1,829 +0,0 @@
-<?php
-
-/**
- * Pure-PHP implementations of keyed-hash message authentication codes (HMACs) and various cryptographic hashing functions.
- *
- * Uses hash() or mhash() if available and an internal implementation, otherwise.  Currently supports the following:
- *
- * md2, md5, md5-96, sha1, sha1-96, sha256, sha256-96, sha384, and sha512, sha512-96
- *
- * If {@link self::setKey() setKey()} is called, {@link self::hash() hash()} will return the HMAC as opposed to
- * the hash.  If no valid algorithm is provided, sha1 will be used.
- *
- * PHP version 5
- *
- * {@internal The variable names are the same as those in
- * {@link http://tools.ietf.org/html/rfc2104#section-2 RFC2104}.}}
- *
- * Here's a short example of how to use this library:
- * <code>
- * <?php
- *    include 'vendor/autoload.php';
- *
- *    $hash = new \phpseclib\Crypt\Hash('sha1');
- *
- *    $hash->setKey('abcdefg');
- *
- *    echo base64_encode($hash->hash('abcdefg'));
- * ?>
- * </code>
- *
- * @category  Crypt
- * @package   Hash
- * @author    Jim Wigginton <terrafrost@php.net>
- * @copyright 2007 Jim Wigginton
- * @license   http://www.opensource.org/licenses/mit-license.html  MIT License
- * @link      http://phpseclib.sourceforge.net
- */
-
-namespace phpseclib\Crypt;
-
-use phpseclib\Math\BigInteger;
-
-/**
- * Pure-PHP implementations of keyed-hash message authentication codes (HMACs) and various cryptographic hashing functions.
- *
- * @package Hash
- * @author  Jim Wigginton <terrafrost@php.net>
- * @access  public
- */
-class Hash
-{
-    /**#@+
-     * @access private
-     * @see \phpseclib\Crypt\Hash::__construct()
-     */
-    /**
-     * Toggles the internal implementation
-     */
-    const MODE_INTERNAL = 1;
-    /**
-     * Toggles the mhash() implementation, which has been deprecated on PHP 5.3.0+.
-     */
-    const MODE_MHASH = 2;
-    /**
-     * Toggles the hash() implementation, which works on PHP 5.1.2+.
-     */
-    const MODE_HASH = 3;
-    /**#@-*/
-
-    /**
-     * Hash Parameter
-     *
-     * @see self::setHash()
-     * @var int
-     * @access private
-     */
-    var $hashParam;
-
-    /**
-     * Byte-length of compression blocks / key (Internal HMAC)
-     *
-     * @see self::setAlgorithm()
-     * @var int
-     * @access private
-     */
-    var $b;
-
-    /**
-     * Byte-length of hash output (Internal HMAC)
-     *
-     * @see self::setHash()
-     * @var int
-     * @access private
-     */
-    var $l = false;
-
-    /**
-     * Hash Algorithm
-     *
-     * @see self::setHash()
-     * @var string
-     * @access private
-     */
-    var $hash;
-
-    /**
-     * Key
-     *
-     * @see self::setKey()
-     * @var string
-     * @access private
-     */
-    var $key = false;
-
-    /**
-     * Outer XOR (Internal HMAC)
-     *
-     * @see self::setKey()
-     * @var string
-     * @access private
-     */
-    var $opad;
-
-    /**
-     * Inner XOR (Internal HMAC)
-     *
-     * @see self::setKey()
-     * @var string
-     * @access private
-     */
-    var $ipad;
-
-    /**
-     * Default Constructor.
-     *
-     * @param string $hash
-     * @return \phpseclib\Crypt\Hash
-     * @access public
-     */
-    function __construct($hash = 'sha1')
-    {
-        if (!defined('CRYPT_HASH_MODE')) {
-            switch (true) {
-                case extension_loaded('hash'):
-                    define('CRYPT_HASH_MODE', self::MODE_HASH);
-                    break;
-                case extension_loaded('mhash'):
-                    define('CRYPT_HASH_MODE', self::MODE_MHASH);
-                    break;
-                default:
-                    define('CRYPT_HASH_MODE', self::MODE_INTERNAL);
-            }
-        }
-
-        $this->setHash($hash);
-    }
-
-    /**
-     * Sets the key for HMACs
-     *
-     * Keys can be of any length.
-     *
-     * @access public
-     * @param string $key
-     */
-    function setKey($key = false)
-    {
-        $this->key = $key;
-    }
-
-    /**
-     * Gets the hash function.
-     *
-     * As set by the constructor or by the setHash() method.
-     *
-     * @access public
-     * @return string
-     */
-    function getHash()
-    {
-        return $this->hashParam;
-    }
-
-    /**
-     * Sets the hash function.
-     *
-     * @access public
-     * @param string $hash
-     */
-    function setHash($hash)
-    {
-        $this->hashParam = $hash = strtolower($hash);
-        switch ($hash) {
-            case 'md5-96':
-            case 'sha1-96':
-            case 'sha256-96':
-            case 'sha512-96':
-                $hash = substr($hash, 0, -3);
-                $this->l = 12; // 96 / 8 = 12
-                break;
-            case 'md2':
-            case 'md5':
-                $this->l = 16;
-                break;
-            case 'sha1':
-                $this->l = 20;
-                break;
-            case 'sha256':
-                $this->l = 32;
-                break;
-            case 'sha384':
-                $this->l = 48;
-                break;
-            case 'sha512':
-                $this->l = 64;
-        }
-
-        switch ($hash) {
-            case 'md2':
-                $mode = CRYPT_HASH_MODE == self::MODE_HASH && in_array('md2', hash_algos()) ?
-                    self::MODE_HASH : self::MODE_INTERNAL;
-                break;
-            case 'sha384':
-            case 'sha512':
-                $mode = CRYPT_HASH_MODE == self::MODE_MHASH ? self::MODE_INTERNAL : CRYPT_HASH_MODE;
-                break;
-            default:
-                $mode = CRYPT_HASH_MODE;
-        }
-
-        switch ($mode) {
-            case self::MODE_MHASH:
-                switch ($hash) {
-                    case 'md5':
-                        $this->hash = MHASH_MD5;
-                        break;
-                    case 'sha256':
-                        $this->hash = MHASH_SHA256;
-                        break;
-                    case 'sha1':
-                    default:
-                        $this->hash = MHASH_SHA1;
-                }
-                return;
-            case self::MODE_HASH:
-                switch ($hash) {
-                    case 'md5':
-                        $this->hash = 'md5';
-                        return;
-                    case 'md2':
-                    case 'sha256':
-                    case 'sha384':
-                    case 'sha512':
-                        $this->hash = $hash;
-                        return;
-                    case 'sha1':
-                    default:
-                        $this->hash = 'sha1';
-                }
-                return;
-        }
-
-        switch ($hash) {
-            case 'md2':
-                $this->b = 16;
-                $this->hash = array($this, '_md2');
-                break;
-            case 'md5':
-                $this->b = 64;
-                $this->hash = array($this, '_md5');
-                break;
-            case 'sha256':
-                $this->b = 64;
-                $this->hash = array($this, '_sha256');
-                break;
-            case 'sha384':
-            case 'sha512':
-                $this->b = 128;
-                $this->hash = array($this, '_sha512');
-                break;
-            case 'sha1':
-            default:
-                $this->b = 64;
-                $this->hash = array($this, '_sha1');
-        }
-
-        $this->ipad = str_repeat(chr(0x36), $this->b);
-        $this->opad = str_repeat(chr(0x5C), $this->b);
-    }
-
-    /**
-     * Compute the HMAC.
-     *
-     * @access public
-     * @param string $text
-     * @return string
-     */
-    function hash($text)
-    {
-        $mode = is_array($this->hash) ? self::MODE_INTERNAL : CRYPT_HASH_MODE;
-
-        if (!empty($this->key) || is_string($this->key)) {
-            switch ($mode) {
-                case self::MODE_MHASH:
-                    $output = mhash($this->hash, $text, $this->key);
-                    break;
-                case self::MODE_HASH:
-                    $output = hash_hmac($this->hash, $text, $this->key, true);
-                    break;
-                case self::MODE_INTERNAL:
-                    /* "Applications that use keys longer than B bytes will first hash the key using H and then use the
-                        resultant L byte string as the actual key to HMAC."
-
-                        -- http://tools.ietf.org/html/rfc2104#section-2 */
-                    $key = strlen($this->key) > $this->b ? call_user_func($this->hash, $this->key) : $this->key;
-
-                    $key    = str_pad($key, $this->b, chr(0));      // step 1
-                    $temp   = $this->ipad ^ $key;                   // step 2
-                    $temp  .= $text;                                // step 3
-                    $temp   = call_user_func($this->hash, $temp);   // step 4
-                    $output = $this->opad ^ $key;                   // step 5
-                    $output.= $temp;                                // step 6
-                    $output = call_user_func($this->hash, $output); // step 7
-            }
-        } else {
-            switch ($mode) {
-                case self::MODE_MHASH:
-                    $output = mhash($this->hash, $text);
-                    break;
-                case self::MODE_HASH:
-                    $output = hash($this->hash, $text, true);
-                    break;
-                case self::MODE_INTERNAL:
-                    $output = call_user_func($this->hash, $text);
-            }
-        }
-
-        return substr($output, 0, $this->l);
-    }
-
-    /**
-     * Returns the hash length (in bytes)
-     *
-     * @access public
-     * @return int
-     */
-    function getLength()
-    {
-        return $this->l;
-    }
-
-    /**
-     * Wrapper for MD5
-     *
-     * @access private
-     * @param string $m
-     */
-    function _md5($m)
-    {
-        return pack('H*', md5($m));
-    }
-
-    /**
-     * Wrapper for SHA1
-     *
-     * @access private
-     * @param string $m
-     */
-    function _sha1($m)
-    {
-        return pack('H*', sha1($m));
-    }
-
-    /**
-     * Pure-PHP implementation of MD2
-     *
-     * See {@link http://tools.ietf.org/html/rfc1319 RFC1319}.
-     *
-     * @access private
-     * @param string $m
-     */
-    function _md2($m)
-    {
-        static $s = array(
-             41,  46,  67, 201, 162, 216, 124,   1,  61,  54,  84, 161, 236, 240, 6,
-             19,  98, 167,   5, 243, 192, 199, 115, 140, 152, 147,  43, 217, 188,
-             76, 130, 202,  30, 155,  87,  60, 253, 212, 224,  22, 103,  66, 111, 24,
-            138,  23, 229,  18, 190,  78, 196, 214, 218, 158, 222,  73, 160, 251,
-            245, 142, 187,  47, 238, 122, 169, 104, 121, 145,  21, 178,   7,  63,
-            148, 194,  16, 137,  11,  34,  95,  33, 128, 127,  93, 154,  90, 144, 50,
-             39,  53,  62, 204, 231, 191, 247, 151,   3, 255,  25,  48, 179,  72, 165,
-            181, 209, 215,  94, 146,  42, 172,  86, 170, 198,  79, 184,  56, 210,
-            150, 164, 125, 182, 118, 252, 107, 226, 156, 116,   4, 241,  69, 157,
-            112,  89, 100, 113, 135,  32, 134,  91, 207, 101, 230,  45, 168,   2, 27,
-             96,  37, 173, 174, 176, 185, 246,  28,  70,  97, 105,  52,  64, 126, 15,
-             85,  71, 163,  35, 221,  81, 175,  58, 195,  92, 249, 206, 186, 197,
-            234,  38,  44,  83,  13, 110, 133,  40, 132,   9, 211, 223, 205, 244, 65,
-            129,  77,  82, 106, 220,  55, 200, 108, 193, 171, 250,  36, 225, 123,
-              8,  12, 189, 177,  74, 120, 136, 149, 139, 227,  99, 232, 109, 233,
-            203, 213, 254,  59,   0,  29,  57, 242, 239, 183,  14, 102,  88, 208, 228,
-            166, 119, 114, 248, 235, 117,  75,  10,  49,  68,  80, 180, 143, 237,
-             31,  26, 219, 153, 141,  51, 159,  17, 131, 20
-        );
-
-        // Step 1. Append Padding Bytes
-        $pad = 16 - (strlen($m) & 0xF);
-        $m.= str_repeat(chr($pad), $pad);
-
-        $length = strlen($m);
-
-        // Step 2. Append Checksum
-        $c = str_repeat(chr(0), 16);
-        $l = chr(0);
-        for ($i = 0; $i < $length; $i+= 16) {
-            for ($j = 0; $j < 16; $j++) {
-                // RFC1319 incorrectly states that C[j] should be set to S[c xor L]
-                //$c[$j] = chr($s[ord($m[$i + $j] ^ $l)]);
-                // per <http://www.rfc-editor.org/errata_search.php?rfc=1319>, however, C[j] should be set to S[c xor L] xor C[j]
-                $c[$j] = chr($s[ord($m[$i + $j] ^ $l)] ^ ord($c[$j]));
-                $l = $c[$j];
-            }
-        }
-        $m.= $c;
-
-        $length+= 16;
-
-        // Step 3. Initialize MD Buffer
-        $x = str_repeat(chr(0), 48);
-
-        // Step 4. Process Message in 16-Byte Blocks
-        for ($i = 0; $i < $length; $i+= 16) {
-            for ($j = 0; $j < 16; $j++) {
-                $x[$j + 16] = $m[$i + $j];
-                $x[$j + 32] = $x[$j + 16] ^ $x[$j];
-            }
-            $t = chr(0);
-            for ($j = 0; $j < 18; $j++) {
-                for ($k = 0; $k < 48; $k++) {
-                    $x[$k] = $t = $x[$k] ^ chr($s[ord($t)]);
-                    //$t = $x[$k] = $x[$k] ^ chr($s[ord($t)]);
-                }
-                $t = chr(ord($t) + $j);
-            }
-        }
-
-        // Step 5. Output
-        return substr($x, 0, 16);
-    }
-
-    /**
-     * Pure-PHP implementation of SHA256
-     *
-     * See {@link http://en.wikipedia.org/wiki/SHA_hash_functions#SHA-256_.28a_SHA-2_variant.29_pseudocode SHA-256 (a SHA-2 variant) pseudocode - Wikipedia}.
-     *
-     * @access private
-     * @param string $m
-     */
-    function _sha256($m)
-    {
-        if (extension_loaded('suhosin')) {
-            return pack('H*', sha256($m));
-        }
-
-        // Initialize variables
-        $hash = array(
-            0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19
-        );
-        // Initialize table of round constants
-        // (first 32 bits of the fractional parts of the cube roots of the first 64 primes 2..311)
-        static $k = array(
-            0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,
-            0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,
-            0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,
-            0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,
-            0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,
-            0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,
-            0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,
-            0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2
-        );
-
-        // Pre-processing
-        $length = strlen($m);
-        // to round to nearest 56 mod 64, we'll add 64 - (length + (64 - 56)) % 64
-        $m.= str_repeat(chr(0), 64 - (($length + 8) & 0x3F));
-        $m[$length] = chr(0x80);
-        // we don't support hashing strings 512MB long
-        $m.= pack('N2', 0, $length << 3);
-
-        // Process the message in successive 512-bit chunks
-        $chunks = str_split($m, 64);
-        foreach ($chunks as $chunk) {
-            $w = array();
-            for ($i = 0; $i < 16; $i++) {
-                extract(unpack('Ntemp', $this->_string_shift($chunk, 4)));
-                $w[] = $temp;
-            }
-
-            // Extend the sixteen 32-bit words into sixty-four 32-bit words
-            for ($i = 16; $i < 64; $i++) {
-                // @codingStandardsIgnoreStart
-                $s0 = $this->_rightRotate($w[$i - 15],  7) ^
-                      $this->_rightRotate($w[$i - 15], 18) ^
-                      $this->_rightShift( $w[$i - 15],  3);
-                $s1 = $this->_rightRotate($w[$i - 2], 17) ^
-                      $this->_rightRotate($w[$i - 2], 19) ^
-                      $this->_rightShift( $w[$i - 2], 10);
-                // @codingStandardsIgnoreEnd
-                $w[$i] = $this->_add($w[$i - 16], $s0, $w[$i - 7], $s1);
-            }
-
-            // Initialize hash value for this chunk
-            list($a, $b, $c, $d, $e, $f, $g, $h) = $hash;
-
-            // Main loop
-            for ($i = 0; $i < 64; $i++) {
-                $s0 = $this->_rightRotate($a,  2) ^
-                      $this->_rightRotate($a, 13) ^
-                      $this->_rightRotate($a, 22);
-                $maj = ($a & $b) ^
-                       ($a & $c) ^
-                       ($b & $c);
-                $t2 = $this->_add($s0, $maj);
-
-                $s1 = $this->_rightRotate($e,  6) ^
-                      $this->_rightRotate($e, 11) ^
-                      $this->_rightRotate($e, 25);
-                $ch = ($e & $f) ^
-                      ($this->_not($e) & $g);
-                $t1 = $this->_add($h, $s1, $ch, $k[$i], $w[$i]);
-
-                $h = $g;
-                $g = $f;
-                $f = $e;
-                $e = $this->_add($d, $t1);
-                $d = $c;
-                $c = $b;
-                $b = $a;
-                $a = $this->_add($t1, $t2);
-            }
-
-            // Add this chunk's hash to result so far
-            $hash = array(
-                $this->_add($hash[0], $a),
-                $this->_add($hash[1], $b),
-                $this->_add($hash[2], $c),
-                $this->_add($hash[3], $d),
-                $this->_add($hash[4], $e),
-                $this->_add($hash[5], $f),
-                $this->_add($hash[6], $g),
-                $this->_add($hash[7], $h)
-            );
-        }
-
-        // Produce the final hash value (big-endian)
-        return pack('N8', $hash[0], $hash[1], $hash[2], $hash[3], $hash[4], $hash[5], $hash[6], $hash[7]);
-    }
-
-    /**
-     * Pure-PHP implementation of SHA384 and SHA512
-     *
-     * @access private
-     * @param string $m
-     */
-    function _sha512($m)
-    {
-        static $init384, $init512, $k;
-
-        if (!isset($k)) {
-            // Initialize variables
-            $init384 = array( // initial values for SHA384
-                'cbbb9d5dc1059ed8', '629a292a367cd507', '9159015a3070dd17', '152fecd8f70e5939',
-                '67332667ffc00b31', '8eb44a8768581511', 'db0c2e0d64f98fa7', '47b5481dbefa4fa4'
-            );
-            $init512 = array( // initial values for SHA512
-                '6a09e667f3bcc908', 'bb67ae8584caa73b', '3c6ef372fe94f82b', 'a54ff53a5f1d36f1',
-                '510e527fade682d1', '9b05688c2b3e6c1f', '1f83d9abfb41bd6b', '5be0cd19137e2179'
-            );
-
-            for ($i = 0; $i < 8; $i++) {
-                $init384[$i] = new BigInteger($init384[$i], 16);
-                $init384[$i]->setPrecision(64);
-                $init512[$i] = new BigInteger($init512[$i], 16);
-                $init512[$i]->setPrecision(64);
-            }
-
-            // Initialize table of round constants
-            // (first 64 bits of the fractional parts of the cube roots of the first 80 primes 2..409)
-            $k = array(
-                '428a2f98d728ae22', '7137449123ef65cd', 'b5c0fbcfec4d3b2f', 'e9b5dba58189dbbc',
-                '3956c25bf348b538', '59f111f1b605d019', '923f82a4af194f9b', 'ab1c5ed5da6d8118',
-                'd807aa98a3030242', '12835b0145706fbe', '243185be4ee4b28c', '550c7dc3d5ffb4e2',
-                '72be5d74f27b896f', '80deb1fe3b1696b1', '9bdc06a725c71235', 'c19bf174cf692694',
-                'e49b69c19ef14ad2', 'efbe4786384f25e3', '0fc19dc68b8cd5b5', '240ca1cc77ac9c65',
-                '2de92c6f592b0275', '4a7484aa6ea6e483', '5cb0a9dcbd41fbd4', '76f988da831153b5',
-                '983e5152ee66dfab', 'a831c66d2db43210', 'b00327c898fb213f', 'bf597fc7beef0ee4',
-                'c6e00bf33da88fc2', 'd5a79147930aa725', '06ca6351e003826f', '142929670a0e6e70',
-                '27b70a8546d22ffc', '2e1b21385c26c926', '4d2c6dfc5ac42aed', '53380d139d95b3df',
-                '650a73548baf63de', '766a0abb3c77b2a8', '81c2c92e47edaee6', '92722c851482353b',
-                'a2bfe8a14cf10364', 'a81a664bbc423001', 'c24b8b70d0f89791', 'c76c51a30654be30',
-                'd192e819d6ef5218', 'd69906245565a910', 'f40e35855771202a', '106aa07032bbd1b8',
-                '19a4c116b8d2d0c8', '1e376c085141ab53', '2748774cdf8eeb99', '34b0bcb5e19b48a8',
-                '391c0cb3c5c95a63', '4ed8aa4ae3418acb', '5b9cca4f7763e373', '682e6ff3d6b2b8a3',
-                '748f82ee5defb2fc', '78a5636f43172f60', '84c87814a1f0ab72', '8cc702081a6439ec',
-                '90befffa23631e28', 'a4506cebde82bde9', 'bef9a3f7b2c67915', 'c67178f2e372532b',
-                'ca273eceea26619c', 'd186b8c721c0c207', 'eada7dd6cde0eb1e', 'f57d4f7fee6ed178',
-                '06f067aa72176fba', '0a637dc5a2c898a6', '113f9804bef90dae', '1b710b35131c471b',
-                '28db77f523047d84', '32caab7b40c72493', '3c9ebe0a15c9bebc', '431d67c49c100d4c',
-                '4cc5d4becb3e42b6', '597f299cfc657e2a', '5fcb6fab3ad6faec', '6c44198c4a475817'
-            );
-
-            for ($i = 0; $i < 80; $i++) {
-                $k[$i] = new BigInteger($k[$i], 16);
-            }
-        }
-
-        $hash = $this->l == 48 ? $init384 : $init512;
-
-        // Pre-processing
-        $length = strlen($m);
-        // to round to nearest 112 mod 128, we'll add 128 - (length + (128 - 112)) % 128
-        $m.= str_repeat(chr(0), 128 - (($length + 16) & 0x7F));
-        $m[$length] = chr(0x80);
-        // we don't support hashing strings 512MB long
-        $m.= pack('N4', 0, 0, 0, $length << 3);
-
-        // Process the message in successive 1024-bit chunks
-        $chunks = str_split($m, 128);
-        foreach ($chunks as $chunk) {
-            $w = array();
-            for ($i = 0; $i < 16; $i++) {
-                $temp = new BigInteger($this->_string_shift($chunk, 8), 256);
-                $temp->setPrecision(64);
-                $w[] = $temp;
-            }
-
-            // Extend the sixteen 32-bit words into eighty 32-bit words
-            for ($i = 16; $i < 80; $i++) {
-                $temp = array(
-                          $w[$i - 15]->bitwise_rightRotate(1),
-                          $w[$i - 15]->bitwise_rightRotate(8),
-                          $w[$i - 15]->bitwise_rightShift(7)
-                );
-                $s0 = $temp[0]->bitwise_xor($temp[1]);
-                $s0 = $s0->bitwise_xor($temp[2]);
-                $temp = array(
-                          $w[$i - 2]->bitwise_rightRotate(19),
-                          $w[$i - 2]->bitwise_rightRotate(61),
-                          $w[$i - 2]->bitwise_rightShift(6)
-                );
-                $s1 = $temp[0]->bitwise_xor($temp[1]);
-                $s1 = $s1->bitwise_xor($temp[2]);
-                $w[$i] = $w[$i - 16]->copy();
-                $w[$i] = $w[$i]->add($s0);
-                $w[$i] = $w[$i]->add($w[$i - 7]);
-                $w[$i] = $w[$i]->add($s1);
-            }
-
-            // Initialize hash value for this chunk
-            $a = $hash[0]->copy();
-            $b = $hash[1]->copy();
-            $c = $hash[2]->copy();
-            $d = $hash[3]->copy();
-            $e = $hash[4]->copy();
-            $f = $hash[5]->copy();
-            $g = $hash[6]->copy();
-            $h = $hash[7]->copy();
-
-            // Main loop
-            for ($i = 0; $i < 80; $i++) {
-                $temp = array(
-                    $a->bitwise_rightRotate(28),
-                    $a->bitwise_rightRotate(34),
-                    $a->bitwise_rightRotate(39)
-                );
-                $s0 = $temp[0]->bitwise_xor($temp[1]);
-                $s0 = $s0->bitwise_xor($temp[2]);
-                $temp = array(
-                    $a->bitwise_and($b),
-                    $a->bitwise_and($c),
-                    $b->bitwise_and($c)
-                );
-                $maj = $temp[0]->bitwise_xor($temp[1]);
-                $maj = $maj->bitwise_xor($temp[2]);
-                $t2 = $s0->add($maj);
-
-                $temp = array(
-                    $e->bitwise_rightRotate(14),
-                    $e->bitwise_rightRotate(18),
-                    $e->bitwise_rightRotate(41)
-                );
-                $s1 = $temp[0]->bitwise_xor($temp[1]);
-                $s1 = $s1->bitwise_xor($temp[2]);
-                $temp = array(
-                    $e->bitwise_and($f),
-                    $g->bitwise_and($e->bitwise_not())
-                );
-                $ch = $temp[0]->bitwise_xor($temp[1]);
-                $t1 = $h->add($s1);
-                $t1 = $t1->add($ch);
-                $t1 = $t1->add($k[$i]);
-                $t1 = $t1->add($w[$i]);
-
-                $h = $g->copy();
-                $g = $f->copy();
-                $f = $e->copy();
-                $e = $d->add($t1);
-                $d = $c->copy();
-                $c = $b->copy();
-                $b = $a->copy();
-                $a = $t1->add($t2);
-            }
-
-            // Add this chunk's hash to result so far
-            $hash = array(
-                $hash[0]->add($a),
-                $hash[1]->add($b),
-                $hash[2]->add($c),
-                $hash[3]->add($d),
-                $hash[4]->add($e),
-                $hash[5]->add($f),
-                $hash[6]->add($g),
-                $hash[7]->add($h)
-            );
-        }
-
-        // Produce the final hash value (big-endian)
-        // (\phpseclib\Crypt\Hash::hash() trims the output for hashes but not for HMACs.  as such, we trim the output here)
-        $temp = $hash[0]->toBytes() . $hash[1]->toBytes() . $hash[2]->toBytes() . $hash[3]->toBytes() .
-                $hash[4]->toBytes() . $hash[5]->toBytes();
-        if ($this->l != 48) {
-            $temp.= $hash[6]->toBytes() . $hash[7]->toBytes();
-        }
-
-        return $temp;
-    }
-
-    /**
-     * Right Rotate
-     *
-     * @access private
-     * @param int $int
-     * @param int $amt
-     * @see self::_sha256()
-     * @return int
-     */
-    function _rightRotate($int, $amt)
-    {
-        $invamt = 32 - $amt;
-        $mask = (1 << $invamt) - 1;
-        return (($int << $invamt) & 0xFFFFFFFF) | (($int >> $amt) & $mask);
-    }
-
-    /**
-     * Right Shift
-     *
-     * @access private
-     * @param int $int
-     * @param int $amt
-     * @see self::_sha256()
-     * @return int
-     */
-    function _rightShift($int, $amt)
-    {
-        $mask = (1 << (32 - $amt)) - 1;
-        return ($int >> $amt) & $mask;
-    }
-
-    /**
-     * Not
-     *
-     * @access private
-     * @param int $int
-     * @see self::_sha256()
-     * @return int
-     */
-    function _not($int)
-    {
-        return ~$int & 0xFFFFFFFF;
-    }
-
-    /**
-     * Add
-     *
-     * _sha256() adds multiple unsigned 32-bit integers.  Since PHP doesn't support unsigned integers and since the
-     * possibility of overflow exists, care has to be taken.  BigInteger could be used but this should be faster.
-     *
-     * @param int $...
-     * @return int
-     * @see self::_sha256()
-     * @access private
-     */
-    function _add()
-    {
-        static $mod;
-        if (!isset($mod)) {
-            $mod = pow(2, 32);
-        }
-
-        $result = 0;
-        $arguments = func_get_args();
-        foreach ($arguments as $argument) {
-            $result+= $argument < 0 ? ($argument & 0x7FFFFFFF) + 0x80000000 : $argument;
-        }
-
-        if ((php_uname('m') & "\xDF\xDF\xDF") != 'ARM') {
-            return fmod($result, $mod);
-        }
-
-        return (fmod($result, 0x80000000) & 0x7FFFFFFF) |
-            ((fmod(floor($result / 0x80000000), 2) & 1) << 31);
-    }
-
-    /**
-     * String Shift
-     *
-     * Inspired by array_shift
-     *
-     * @param string $string
-     * @param int $index
-     * @return string
-     * @access private
-     */
-    function _string_shift(&$string, $index = 1)
-    {
-        $substr = substr($string, 0, $index);
-        $string = substr($string, $index);
-        return $substr;
-    }
-}
diff --git a/wiki/vendor/phpseclib/phpseclib/phpseclib/Crypt/RC2.php b/wiki/vendor/phpseclib/phpseclib/phpseclib/Crypt/RC2.php
deleted file mode 100644
index b2b9d48..0000000
--- a/wiki/vendor/phpseclib/phpseclib/phpseclib/Crypt/RC2.php
+++ /dev/null
@@ -1,688 +0,0 @@
-<?php
-
-/**
- * Pure-PHP implementation of RC2.
- *
- * Uses mcrypt, if available, and an internal implementation, otherwise.
- *
- * PHP version 5
- *
- * Useful resources are as follows:
- *
- *  - {@link http://tools.ietf.org/html/rfc2268}
- *
- * Here's a short example of how to use this library:
- * <code>
- * <?php
- *    include 'vendor/autoload.php';
- *
- *    $rc2 = new \phpseclib\Crypt\RC2();
- *
- *    $rc2->setKey('abcdefgh');
- *
- *    $plaintext = str_repeat('a', 1024);
- *
- *    echo $rc2->decrypt($rc2->encrypt($plaintext));
- * ?>
- * </code>
- *
- * @category Crypt
- * @package  RC2
- * @author   Patrick Monnerat <pm@datasphere.ch>
- * @license  http://www.opensource.org/licenses/mit-license.html  MIT License
- * @link     http://phpseclib.sourceforge.net
- */
-
-namespace phpseclib\Crypt;
-
-/**
- * Pure-PHP implementation of RC2.
- *
- * @package RC2
- * @access  public
- */
-class RC2 extends Base
-{
-    /**
-     * Block Length of the cipher
-     *
-     * @see \phpseclib\Crypt\Base::block_size
-     * @var int
-     * @access private
-     */
-    var $block_size = 8;
-
-    /**
-     * The Key
-     *
-     * @see \phpseclib\Crypt\Base::key
-     * @see self::setKey()
-     * @var string
-     * @access private
-     */
-    var $key;
-
-    /**
-     * The Original (unpadded) Key
-     *
-     * @see \phpseclib\Crypt\Base::key
-     * @see self::setKey()
-     * @see self::encrypt()
-     * @see self::decrypt()
-     * @var string
-     * @access private
-     */
-    var $orig_key;
-
-    /**
-     * Don't truncate / null pad key
-     *
-     * @see \phpseclib\Crypt\Base::_clearBuffers()
-     * @var bool
-     * @access private
-     */
-    var $skip_key_adjustment = true;
-
-    /**
-     * Key Length (in bytes)
-     *
-     * @see \phpseclib\Crypt\RC2::setKeyLength()
-     * @var int
-     * @access private
-     */
-    var $key_length = 16; // = 128 bits
-
-    /**
-     * The mcrypt specific name of the cipher
-     *
-     * @see \phpseclib\Crypt\Base::cipher_name_mcrypt
-     * @var string
-     * @access private
-     */
-    var $cipher_name_mcrypt = 'rc2';
-
-    /**
-     * Optimizing value while CFB-encrypting
-     *
-     * @see \phpseclib\Crypt\Base::cfb_init_len
-     * @var int
-     * @access private
-     */
-    var $cfb_init_len = 500;
-
-    /**
-     * The key length in bits.
-     *
-     * @see self::setKeyLength()
-     * @see self::setKey()
-     * @var int
-     * @access private
-     * @internal Should be in range [1..1024].
-     * @internal Changing this value after setting the key has no effect.
-     */
-    var $default_key_length = 1024;
-
-    /**
-     * The key length in bits.
-     *
-     * @see self::isValidEnine()
-     * @see self::setKey()
-     * @var int
-     * @access private
-     * @internal Should be in range [1..1024].
-     */
-    var $current_key_length;
-
-    /**
-     * The Key Schedule
-     *
-     * @see self::_setupKey()
-     * @var array
-     * @access private
-     */
-    var $keys;
-
-    /**
-     * Key expansion randomization table.
-     * Twice the same 256-value sequence to save a modulus in key expansion.
-     *
-     * @see self::setKey()
-     * @var array
-     * @access private
-     */
-    var $pitable = array(
-        0xD9, 0x78, 0xF9, 0xC4, 0x19, 0xDD, 0xB5, 0xED,
-        0x28, 0xE9, 0xFD, 0x79, 0x4A, 0xA0, 0xD8, 0x9D,
-        0xC6, 0x7E, 0x37, 0x83, 0x2B, 0x76, 0x53, 0x8E,
-        0x62, 0x4C, 0x64, 0x88, 0x44, 0x8B, 0xFB, 0xA2,
-        0x17, 0x9A, 0x59, 0xF5, 0x87, 0xB3, 0x4F, 0x13,
-        0x61, 0x45, 0x6D, 0x8D, 0x09, 0x81, 0x7D, 0x32,
-        0xBD, 0x8F, 0x40, 0xEB, 0x86, 0xB7, 0x7B, 0x0B,
-        0xF0, 0x95, 0x21, 0x22, 0x5C, 0x6B, 0x4E, 0x82,
-        0x54, 0xD6, 0x65, 0x93, 0xCE, 0x60, 0xB2, 0x1C,
-        0x73, 0x56, 0xC0, 0x14, 0xA7, 0x8C, 0xF1, 0xDC,
-        0x12, 0x75, 0xCA, 0x1F, 0x3B, 0xBE, 0xE4, 0xD1,
-        0x42, 0x3D, 0xD4, 0x30, 0xA3, 0x3C, 0xB6, 0x26,
-        0x6F, 0xBF, 0x0E, 0xDA, 0x46, 0x69, 0x07, 0x57,
-        0x27, 0xF2, 0x1D, 0x9B, 0xBC, 0x94, 0x43, 0x03,
-        0xF8, 0x11, 0xC7, 0xF6, 0x90, 0xEF, 0x3E, 0xE7,
-        0x06, 0xC3, 0xD5, 0x2F, 0xC8, 0x66, 0x1E, 0xD7,
-        0x08, 0xE8, 0xEA, 0xDE, 0x80, 0x52, 0xEE, 0xF7,
-        0x84, 0xAA, 0x72, 0xAC, 0x35, 0x4D, 0x6A, 0x2A,
-        0x96, 0x1A, 0xD2, 0x71, 0x5A, 0x15, 0x49, 0x74,
-        0x4B, 0x9F, 0xD0, 0x5E, 0x04, 0x18, 0xA4, 0xEC,
-        0xC2, 0xE0, 0x41, 0x6E, 0x0F, 0x51, 0xCB, 0xCC,
-        0x24, 0x91, 0xAF, 0x50, 0xA1, 0xF4, 0x70, 0x39,
-        0x99, 0x7C, 0x3A, 0x85, 0x23, 0xB8, 0xB4, 0x7A,
-        0xFC, 0x02, 0x36, 0x5B, 0x25, 0x55, 0x97, 0x31,
-        0x2D, 0x5D, 0xFA, 0x98, 0xE3, 0x8A, 0x92, 0xAE,
-        0x05, 0xDF, 0x29, 0x10, 0x67, 0x6C, 0xBA, 0xC9,
-        0xD3, 0x00, 0xE6, 0xCF, 0xE1, 0x9E, 0xA8, 0x2C,
-        0x63, 0x16, 0x01, 0x3F, 0x58, 0xE2, 0x89, 0xA9,
-        0x0D, 0x38, 0x34, 0x1B, 0xAB, 0x33, 0xFF, 0xB0,
-        0xBB, 0x48, 0x0C, 0x5F, 0xB9, 0xB1, 0xCD, 0x2E,
-        0xC5, 0xF3, 0xDB, 0x47, 0xE5, 0xA5, 0x9C, 0x77,
-        0x0A, 0xA6, 0x20, 0x68, 0xFE, 0x7F, 0xC1, 0xAD,
-        0xD9, 0x78, 0xF9, 0xC4, 0x19, 0xDD, 0xB5, 0xED,
-        0x28, 0xE9, 0xFD, 0x79, 0x4A, 0xA0, 0xD8, 0x9D,
-        0xC6, 0x7E, 0x37, 0x83, 0x2B, 0x76, 0x53, 0x8E,
-        0x62, 0x4C, 0x64, 0x88, 0x44, 0x8B, 0xFB, 0xA2,
-        0x17, 0x9A, 0x59, 0xF5, 0x87, 0xB3, 0x4F, 0x13,
-        0x61, 0x45, 0x6D, 0x8D, 0x09, 0x81, 0x7D, 0x32,
-        0xBD, 0x8F, 0x40, 0xEB, 0x86, 0xB7, 0x7B, 0x0B,
-        0xF0, 0x95, 0x21, 0x22, 0x5C, 0x6B, 0x4E, 0x82,
-        0x54, 0xD6, 0x65, 0x93, 0xCE, 0x60, 0xB2, 0x1C,
-        0x73, 0x56, 0xC0, 0x14, 0xA7, 0x8C, 0xF1, 0xDC,
-        0x12, 0x75, 0xCA, 0x1F, 0x3B, 0xBE, 0xE4, 0xD1,
-        0x42, 0x3D, 0xD4, 0x30, 0xA3, 0x3C, 0xB6, 0x26,
-        0x6F, 0xBF, 0x0E, 0xDA, 0x46, 0x69, 0x07, 0x57,
-        0x27, 0xF2, 0x1D, 0x9B, 0xBC, 0x94, 0x43, 0x03,
-        0xF8, 0x11, 0xC7, 0xF6, 0x90, 0xEF, 0x3E, 0xE7,
-        0x06, 0xC3, 0xD5, 0x2F, 0xC8, 0x66, 0x1E, 0xD7,
-        0x08, 0xE8, 0xEA, 0xDE, 0x80, 0x52, 0xEE, 0xF7,
-        0x84, 0xAA, 0x72, 0xAC, 0x35, 0x4D, 0x6A, 0x2A,
-        0x96, 0x1A, 0xD2, 0x71, 0x5A, 0x15, 0x49, 0x74,
-        0x4B, 0x9F, 0xD0, 0x5E, 0x04, 0x18, 0xA4, 0xEC,
-        0xC2, 0xE0, 0x41, 0x6E, 0x0F, 0x51, 0xCB, 0xCC,
-        0x24, 0x91, 0xAF, 0x50, 0xA1, 0xF4, 0x70, 0x39,
-        0x99, 0x7C, 0x3A, 0x85, 0x23, 0xB8, 0xB4, 0x7A,
-        0xFC, 0x02, 0x36, 0x5B, 0x25, 0x55, 0x97, 0x31,
-        0x2D, 0x5D, 0xFA, 0x98, 0xE3, 0x8A, 0x92, 0xAE,
-        0x05, 0xDF, 0x29, 0x10, 0x67, 0x6C, 0xBA, 0xC9,
-        0xD3, 0x00, 0xE6, 0xCF, 0xE1, 0x9E, 0xA8, 0x2C,
-        0x63, 0x16, 0x01, 0x3F, 0x58, 0xE2, 0x89, 0xA9,
-        0x0D, 0x38, 0x34, 0x1B, 0xAB, 0x33, 0xFF, 0xB0,
-        0xBB, 0x48, 0x0C, 0x5F, 0xB9, 0xB1, 0xCD, 0x2E,
-        0xC5, 0xF3, 0xDB, 0x47, 0xE5, 0xA5, 0x9C, 0x77,
-        0x0A, 0xA6, 0x20, 0x68, 0xFE, 0x7F, 0xC1, 0xAD
-    );
-
-    /**
-     * Inverse key expansion randomization table.
-     *
-     * @see self::setKey()
-     * @var array
-     * @access private
-     */
-    var $invpitable = array(
-        0xD1, 0xDA, 0xB9, 0x6F, 0x9C, 0xC8, 0x78, 0x66,
-        0x80, 0x2C, 0xF8, 0x37, 0xEA, 0xE0, 0x62, 0xA4,
-        0xCB, 0x71, 0x50, 0x27, 0x4B, 0x95, 0xD9, 0x20,
-        0x9D, 0x04, 0x91, 0xE3, 0x47, 0x6A, 0x7E, 0x53,
-        0xFA, 0x3A, 0x3B, 0xB4, 0xA8, 0xBC, 0x5F, 0x68,
-        0x08, 0xCA, 0x8F, 0x14, 0xD7, 0xC0, 0xEF, 0x7B,
-        0x5B, 0xBF, 0x2F, 0xE5, 0xE2, 0x8C, 0xBA, 0x12,
-        0xE1, 0xAF, 0xB2, 0x54, 0x5D, 0x59, 0x76, 0xDB,
-        0x32, 0xA2, 0x58, 0x6E, 0x1C, 0x29, 0x64, 0xF3,
-        0xE9, 0x96, 0x0C, 0x98, 0x19, 0x8D, 0x3E, 0x26,
-        0xAB, 0xA5, 0x85, 0x16, 0x40, 0xBD, 0x49, 0x67,
-        0xDC, 0x22, 0x94, 0xBB, 0x3C, 0xC1, 0x9B, 0xEB,
-        0x45, 0x28, 0x18, 0xD8, 0x1A, 0x42, 0x7D, 0xCC,
-        0xFB, 0x65, 0x8E, 0x3D, 0xCD, 0x2A, 0xA3, 0x60,
-        0xAE, 0x93, 0x8A, 0x48, 0x97, 0x51, 0x15, 0xF7,
-        0x01, 0x0B, 0xB7, 0x36, 0xB1, 0x2E, 0x11, 0xFD,
-        0x84, 0x2D, 0x3F, 0x13, 0x88, 0xB3, 0x34, 0x24,
-        0x1B, 0xDE, 0xC5, 0x1D, 0x4D, 0x2B, 0x17, 0x31,
-        0x74, 0xA9, 0xC6, 0x43, 0x6D, 0x39, 0x90, 0xBE,
-        0xC3, 0xB0, 0x21, 0x6B, 0xF6, 0x0F, 0xD5, 0x99,
-        0x0D, 0xAC, 0x1F, 0x5C, 0x9E, 0xF5, 0xF9, 0x4C,
-        0xD6, 0xDF, 0x89, 0xE4, 0x8B, 0xFF, 0xC7, 0xAA,
-        0xE7, 0xED, 0x46, 0x25, 0xB6, 0x06, 0x5E, 0x35,
-        0xB5, 0xEC, 0xCE, 0xE8, 0x6C, 0x30, 0x55, 0x61,
-        0x4A, 0xFE, 0xA0, 0x79, 0x03, 0xF0, 0x10, 0x72,
-        0x7C, 0xCF, 0x52, 0xA6, 0xA7, 0xEE, 0x44, 0xD3,
-        0x9A, 0x57, 0x92, 0xD0, 0x5A, 0x7A, 0x41, 0x7F,
-        0x0E, 0x00, 0x63, 0xF2, 0x4F, 0x05, 0x83, 0xC9,
-        0xA1, 0xD4, 0xDD, 0xC4, 0x56, 0xF4, 0xD2, 0x77,
-        0x81, 0x09, 0x82, 0x33, 0x9F, 0x07, 0x86, 0x75,
-        0x38, 0x4E, 0x69, 0xF1, 0xAD, 0x23, 0x73, 0x87,
-        0x70, 0x02, 0xC2, 0x1E, 0xB8, 0x0A, 0xFC, 0xE6
-    );
-
-    /**
-     * Test for engine validity
-     *
-     * This is mainly just a wrapper to set things up for \phpseclib\Crypt\Base::isValidEngine()
-     *
-     * @see \phpseclib\Crypt\Base::__construct()
-     * @param int $engine
-     * @access public
-     * @return bool
-     */
-    function isValidEngine($engine)
-    {
-        switch ($engine) {
-            case self::ENGINE_OPENSSL:
-                if ($this->current_key_length != 128 || strlen($this->orig_key) < 16) {
-                    return false;
-                }
-                $this->cipher_name_openssl_ecb = 'rc2-ecb';
-                $this->cipher_name_openssl = 'rc2-' . $this->_openssl_translate_mode();
-        }
-
-        return parent::isValidEngine($engine);
-    }
-
-    /**
-     * Sets the key length.
-     *
-     * Valid key lengths are 8 to 1024.
-     * Calling this function after setting the key has no effect until the next
-     *  \phpseclib\Crypt\RC2::setKey() call.
-     *
-     * @access public
-     * @param int $length in bits
-     */
-    function setKeyLength($length)
-    {
-        if ($length < 8) {
-            $this->default_key_length = 1;
-        } elseif ($length > 1024) {
-            $this->default_key_length = 128;
-        } else {
-            $this->default_key_length = $length;
-        }
-        $this->current_key_length = $this->default_key_length;
-
-        parent::setKeyLength($length);
-    }
-
-    /**
-     * Returns the current key length
-     *
-     * @access public
-     * @return int
-     */
-    function getKeyLength()
-    {
-        return $this->current_key_length;
-    }
-
-    /**
-     * Sets the key.
-     *
-     * Keys can be of any length. RC2, itself, uses 8 to 1024 bit keys (eg.
-     * strlen($key) <= 128), however, we only use the first 128 bytes if $key
-     * has more then 128 bytes in it, and set $key to a single null byte if
-     * it is empty.
-     *
-     * If the key is not explicitly set, it'll be assumed to be a single
-     * null byte.
-     *
-     * @see \phpseclib\Crypt\Base::setKey()
-     * @access public
-     * @param string $key
-     * @param int $t1 optional Effective key length in bits.
-     */
-    function setKey($key, $t1 = 0)
-    {
-        $this->orig_key = $key;
-
-        if ($t1 <= 0) {
-            $t1 = $this->default_key_length;
-        } elseif ($t1 > 1024) {
-            $t1 = 1024;
-        }
-        $this->current_key_length = $t1;
-        // Key byte count should be 1..128.
-        $key = strlen($key) ? substr($key, 0, 128) : "\x00";
-        $t = strlen($key);
-
-        // The mcrypt RC2 implementation only supports effective key length
-        // of 1024 bits. It is however possible to handle effective key
-        // lengths in range 1..1024 by expanding the key and applying
-        // inverse pitable mapping to the first byte before submitting it
-        // to mcrypt.
-
-        // Key expansion.
-        $l = array_values(unpack('C*', $key));
-        $t8 = ($t1 + 7) >> 3;
-        $tm = 0xFF >> (8 * $t8 - $t1);
-
-        // Expand key.
-        $pitable = $this->pitable;
-        for ($i = $t; $i < 128; $i++) {
-            $l[$i] = $pitable[$l[$i - 1] + $l[$i - $t]];
-        }
-        $i = 128 - $t8;
-        $l[$i] = $pitable[$l[$i] & $tm];
-        while ($i--) {
-            $l[$i] = $pitable[$l[$i + 1] ^ $l[$i + $t8]];
-        }
-
-        // Prepare the key for mcrypt.
-        $l[0] = $this->invpitable[$l[0]];
-        array_unshift($l, 'C*');
-
-        parent::setKey(call_user_func_array('pack', $l));
-    }
-
-    /**
-     * Encrypts a message.
-     *
-     * Mostly a wrapper for \phpseclib\Crypt\Base::encrypt, with some additional OpenSSL handling code
-     *
-     * @see self::decrypt()
-     * @access public
-     * @param string $plaintext
-     * @return string $ciphertext
-     */
-    function encrypt($plaintext)
-    {
-        if ($this->engine == self::ENGINE_OPENSSL) {
-            $temp = $this->key;
-            $this->key = $this->orig_key;
-            $result = parent::encrypt($plaintext);
-            $this->key = $temp;
-            return $result;
-        }
-
-        return parent::encrypt($plaintext);
-    }
-
-    /**
-     * Decrypts a message.
-     *
-     * Mostly a wrapper for \phpseclib\Crypt\Base::decrypt, with some additional OpenSSL handling code
-     *
-     * @see self::encrypt()
-     * @access public
-     * @param string $ciphertext
-     * @return string $plaintext
-     */
-    function decrypt($ciphertext)
-    {
-        if ($this->engine == self::ENGINE_OPENSSL) {
-            $temp = $this->key;
-            $this->key = $this->orig_key;
-            $result = parent::decrypt($ciphertext);
-            $this->key = $temp;
-            return $result;
-        }
-
-        return parent::decrypt($ciphertext);
-    }
-
-    /**
-     * Encrypts a block
-     *
-     * @see \phpseclib\Crypt\Base::_encryptBlock()
-     * @see \phpseclib\Crypt\Base::encrypt()
-     * @access private
-     * @param string $in
-     * @return string
-     */
-    function _encryptBlock($in)
-    {
-        list($r0, $r1, $r2, $r3) = array_values(unpack('v*', $in));
-        $keys = $this->keys;
-        $limit = 20;
-        $actions = array($limit => 44, 44 => 64);
-        $j = 0;
-
-        for (;;) {
-            // Mixing round.
-            $r0 = (($r0 + $keys[$j++] + ((($r1 ^ $r2) & $r3) ^ $r1)) & 0xFFFF) << 1;
-            $r0 |= $r0 >> 16;
-            $r1 = (($r1 + $keys[$j++] + ((($r2 ^ $r3) & $r0) ^ $r2)) & 0xFFFF) << 2;
-            $r1 |= $r1 >> 16;
-            $r2 = (($r2 + $keys[$j++] + ((($r3 ^ $r0) & $r1) ^ $r3)) & 0xFFFF) << 3;
-            $r2 |= $r2 >> 16;
-            $r3 = (($r3 + $keys[$j++] + ((($r0 ^ $r1) & $r2) ^ $r0)) & 0xFFFF) << 5;
-            $r3 |= $r3 >> 16;
-
-            if ($j === $limit) {
-                if ($limit === 64) {
-                    break;
-                }
-
-                // Mashing round.
-                $r0 += $keys[$r3 & 0x3F];
-                $r1 += $keys[$r0 & 0x3F];
-                $r2 += $keys[$r1 & 0x3F];
-                $r3 += $keys[$r2 & 0x3F];
-                $limit = $actions[$limit];
-            }
-        }
-
-        return pack('vvvv', $r0, $r1, $r2, $r3);
-    }
-
-    /**
-     * Decrypts a block
-     *
-     * @see \phpseclib\Crypt\Base::_decryptBlock()
-     * @see \phpseclib\Crypt\Base::decrypt()
-     * @access private
-     * @param string $in
-     * @return string
-     */
-    function _decryptBlock($in)
-    {
-        list($r0, $r1, $r2, $r3) = array_values(unpack('v*', $in));
-        $keys = $this->keys;
-        $limit = 44;
-        $actions = array($limit => 20, 20 => 0);
-        $j = 64;
-
-        for (;;) {
-            // R-mixing round.
-            $r3 = ($r3 | ($r3 << 16)) >> 5;
-            $r3 = ($r3 - $keys[--$j] - ((($r0 ^ $r1) & $r2) ^ $r0)) & 0xFFFF;
-            $r2 = ($r2 | ($r2 << 16)) >> 3;
-            $r2 = ($r2 - $keys[--$j] - ((($r3 ^ $r0) & $r1) ^ $r3)) & 0xFFFF;
-            $r1 = ($r1 | ($r1 << 16)) >> 2;
-            $r1 = ($r1 - $keys[--$j] - ((($r2 ^ $r3) & $r0) ^ $r2)) & 0xFFFF;
-            $r0 = ($r0 | ($r0 << 16)) >> 1;
-            $r0 = ($r0 - $keys[--$j] - ((($r1 ^ $r2) & $r3) ^ $r1)) & 0xFFFF;
-
-            if ($j === $limit) {
-                if ($limit === 0) {
-                    break;
-                }
-
-                // R-mashing round.
-                $r3 = ($r3 - $keys[$r2 & 0x3F]) & 0xFFFF;
-                $r2 = ($r2 - $keys[$r1 & 0x3F]) & 0xFFFF;
-                $r1 = ($r1 - $keys[$r0 & 0x3F]) & 0xFFFF;
-                $r0 = ($r0 - $keys[$r3 & 0x3F]) & 0xFFFF;
-                $limit = $actions[$limit];
-            }
-        }
-
-        return pack('vvvv', $r0, $r1, $r2, $r3);
-    }
-
-    /**
-     * Setup the \phpseclib\Crypt\Base::ENGINE_MCRYPT $engine
-     *
-     * @see \phpseclib\Crypt\Base::_setupMcrypt()
-     * @access private
-     */
-    function _setupMcrypt()
-    {
-        if (!isset($this->key)) {
-            $this->setKey('');
-        }
-
-        parent::_setupMcrypt();
-    }
-
-    /**
-     * Creates the key schedule
-     *
-     * @see \phpseclib\Crypt\Base::_setupKey()
-     * @access private
-     */
-    function _setupKey()
-    {
-        if (!isset($this->key)) {
-            $this->setKey('');
-        }
-
-        // Key has already been expanded in \phpseclib\Crypt\RC2::setKey():
-        // Only the first value must be altered.
-        $l = unpack('Ca/Cb/v*', $this->key);
-        array_unshift($l, $this->pitable[$l['a']] | ($l['b'] << 8));
-        unset($l['a']);
-        unset($l['b']);
-        $this->keys = $l;
-    }
-
-    /**
-     * Setup the performance-optimized function for de/encrypt()
-     *
-     * @see \phpseclib\Crypt\Base::_setupInlineCrypt()
-     * @access private
-     */
-    function _setupInlineCrypt()
-    {
-        $lambda_functions =& self::_getLambdaFunctions();
-
-        // The first 10 generated $lambda_functions will use the $keys hardcoded as integers
-        // for the mixing rounds, for better inline crypt performance [~20% faster].
-        // But for memory reason we have to limit those ultra-optimized $lambda_functions to an amount of 10.
-        // (Currently, for Crypt_RC2, one generated $lambda_function cost on php5.5@32bit ~60kb unfreeable mem and ~100kb on php5.5@64bit)
-        $gen_hi_opt_code = (bool)(count($lambda_functions) < 10);
-
-        // Generation of a unique hash for our generated code
-        $code_hash = "Crypt_RC2, {$this->mode}";
-        if ($gen_hi_opt_code) {
-            $code_hash = str_pad($code_hash, 32) . $this->_hashInlineCryptFunction($this->key);
-        }
-
-        // Is there a re-usable $lambda_functions in there?
-        // If not, we have to create it.
-        if (!isset($lambda_functions[$code_hash])) {
-            // Init code for both, encrypt and decrypt.
-            $init_crypt = '$keys = $self->keys;';
-
-            switch (true) {
-                case $gen_hi_opt_code:
-                    $keys = $this->keys;
-                default:
-                    $keys = array();
-                    foreach ($this->keys as $k => $v) {
-                        $keys[$k] = '$keys[' . $k . ']';
-                    }
-            }
-
-            // $in is the current 8 bytes block which has to be en/decrypt
-            $encrypt_block = $decrypt_block = '
-                $in = unpack("v4", $in);
-                $r0 = $in[1];
-                $r1 = $in[2];
-                $r2 = $in[3];
-                $r3 = $in[4];
-            ';
-
-            // Create code for encryption.
-            $limit = 20;
-            $actions = array($limit => 44, 44 => 64);
-            $j = 0;
-
-            for (;;) {
-                // Mixing round.
-                $encrypt_block .= '
-                    $r0 = (($r0 + ' . $keys[$j++] . ' +
-                           ((($r1 ^ $r2) & $r3) ^ $r1)) & 0xFFFF) << 1;
-                    $r0 |= $r0 >> 16;
-                    $r1 = (($r1 + ' . $keys[$j++] . ' +
-                           ((($r2 ^ $r3) & $r0) ^ $r2)) & 0xFFFF) << 2;
-                    $r1 |= $r1 >> 16;
-                    $r2 = (($r2 + ' . $keys[$j++] . ' +
-                           ((($r3 ^ $r0) & $r1) ^ $r3)) & 0xFFFF) << 3;
-                    $r2 |= $r2 >> 16;
-                    $r3 = (($r3 + ' . $keys[$j++] . ' +
-                           ((($r0 ^ $r1) & $r2) ^ $r0)) & 0xFFFF) << 5;
-                    $r3 |= $r3 >> 16;';
-
-                if ($j === $limit) {
-                    if ($limit === 64) {
-                        break;
-                    }
-
-                    // Mashing round.
-                    $encrypt_block .= '
-                        $r0 += $keys[$r3 & 0x3F];
-                        $r1 += $keys[$r0 & 0x3F];
-                        $r2 += $keys[$r1 & 0x3F];
-                        $r3 += $keys[$r2 & 0x3F];';
-                    $limit = $actions[$limit];
-                }
-            }
-
-            $encrypt_block .= '$in = pack("v4", $r0, $r1, $r2, $r3);';
-
-            // Create code for decryption.
-            $limit = 44;
-            $actions = array($limit => 20, 20 => 0);
-            $j = 64;
-
-            for (;;) {
-                // R-mixing round.
-                $decrypt_block .= '
-                    $r3 = ($r3 | ($r3 << 16)) >> 5;
-                    $r3 = ($r3 - ' . $keys[--$j] . ' -
-                           ((($r0 ^ $r1) & $r2) ^ $r0)) & 0xFFFF;
-                    $r2 = ($r2 | ($r2 << 16)) >> 3;
-                    $r2 = ($r2 - ' . $keys[--$j] . ' -
-                           ((($r3 ^ $r0) & $r1) ^ $r3)) & 0xFFFF;
-                    $r1 = ($r1 | ($r1 << 16)) >> 2;
-                    $r1 = ($r1 - ' . $keys[--$j] . ' -
-                           ((($r2 ^ $r3) & $r0) ^ $r2)) & 0xFFFF;
-                    $r0 = ($r0 | ($r0 << 16)) >> 1;
-                    $r0 = ($r0 - ' . $keys[--$j] . ' -
-                           ((($r1 ^ $r2) & $r3) ^ $r1)) & 0xFFFF;';
-
-                if ($j === $limit) {
-                    if ($limit === 0) {
-                        break;
-                    }
-
-                    // R-mashing round.
-                    $decrypt_block .= '
-                        $r3 = ($r3 - $keys[$r2 & 0x3F]) & 0xFFFF;
-                        $r2 = ($r2 - $keys[$r1 & 0x3F]) & 0xFFFF;
-                        $r1 = ($r1 - $keys[$r0 & 0x3F]) & 0xFFFF;
-                        $r0 = ($r0 - $keys[$r3 & 0x3F]) & 0xFFFF;';
-                    $limit = $actions[$limit];
-                }
-            }
-
-            $decrypt_block .= '$in = pack("v4", $r0, $r1, $r2, $r3);';
-
-            // Creates the inline-crypt function
-            $lambda_functions[$code_hash] = $this->_createInlineCryptFunction(
-                array(
-                   'init_crypt'    => $init_crypt,
-                   'encrypt_block' => $encrypt_block,
-                   'decrypt_block' => $decrypt_block
-                )
-            );
-        }
-
-        // Set the inline-crypt function as callback in: $this->inline_crypt
-        $this->inline_crypt = $lambda_functions[$code_hash];
-    }
-}
diff --git a/wiki/vendor/phpseclib/phpseclib/phpseclib/Crypt/RC4.php b/wiki/vendor/phpseclib/phpseclib/phpseclib/Crypt/RC4.php
deleted file mode 100644
index 25e4ff8..0000000
--- a/wiki/vendor/phpseclib/phpseclib/phpseclib/Crypt/RC4.php
+++ /dev/null
@@ -1,342 +0,0 @@
-<?php
-
-/**
- * Pure-PHP implementation of RC4.
- *
- * Uses mcrypt, if available, and an internal implementation, otherwise.
- *
- * PHP version 5
- *
- * Useful resources are as follows:
- *
- *  - {@link http://www.mozilla.org/projects/security/pki/nss/draft-kaukonen-cipher-arcfour-03.txt ARCFOUR Algorithm}
- *  - {@link http://en.wikipedia.org/wiki/RC4 - Wikipedia: RC4}
- *
- * RC4 is also known as ARCFOUR or ARC4.  The reason is elaborated upon at Wikipedia.  This class is named RC4 and not
- * ARCFOUR or ARC4 because RC4 is how it is referred to in the SSH1 specification.
- *
- * Here's a short example of how to use this library:
- * <code>
- * <?php
- *    include 'vendor/autoload.php';
- *
- *    $rc4 = new \phpseclib\Crypt\RC4();
- *
- *    $rc4->setKey('abcdefgh');
- *
- *    $size = 10 * 1024;
- *    $plaintext = '';
- *    for ($i = 0; $i < $size; $i++) {
- *        $plaintext.= 'a';
- *    }
- *
- *    echo $rc4->decrypt($rc4->encrypt($plaintext));
- * ?>
- * </code>
- *
- * @category  Crypt
- * @package   RC4
- * @author    Jim Wigginton <terrafrost@php.net>
- * @copyright 2007 Jim Wigginton
- * @license   http://www.opensource.org/licenses/mit-license.html  MIT License
- * @link      http://phpseclib.sourceforge.net
- */
-
-namespace phpseclib\Crypt;
-
-/**
- * Pure-PHP implementation of RC4.
- *
- * @package RC4
- * @author  Jim Wigginton <terrafrost@php.net>
- * @access  public
- */
-class RC4 extends Base
-{
-    /**#@+
-     * @access private
-     * @see \phpseclib\Crypt\RC4::_crypt()
-    */
-    const ENCRYPT = 0;
-    const DECRYPT = 1;
-    /**#@-*/
-
-    /**
-     * Block Length of the cipher
-     *
-     * RC4 is a stream cipher
-     * so we the block_size to 0
-     *
-     * @see \phpseclib\Crypt\Base::block_size
-     * @var int
-     * @access private
-     */
-    var $block_size = 0;
-
-    /**
-     * Key Length (in bytes)
-     *
-     * @see \phpseclib\Crypt\RC4::setKeyLength()
-     * @var int
-     * @access private
-     */
-    var $key_length = 128; // = 1024 bits
-
-    /**
-     * The mcrypt specific name of the cipher
-     *
-     * @see \phpseclib\Crypt\Base::cipher_name_mcrypt
-     * @var string
-     * @access private
-     */
-    var $cipher_name_mcrypt = 'arcfour';
-
-    /**
-     * Holds whether performance-optimized $inline_crypt() can/should be used.
-     *
-     * @see \phpseclib\Crypt\Base::inline_crypt
-     * @var mixed
-     * @access private
-     */
-    var $use_inline_crypt = false; // currently not available
-
-    /**
-     * The Key
-     *
-     * @see self::setKey()
-     * @var string
-     * @access private
-     */
-    var $key;
-
-    /**
-     * The Key Stream for decryption and encryption
-     *
-     * @see self::setKey()
-     * @var array
-     * @access private
-     */
-    var $stream;
-
-    /**
-     * Default Constructor.
-     *
-     * Determines whether or not the mcrypt extension should be used.
-     *
-     * @see \phpseclib\Crypt\Base::__construct()
-     * @return \phpseclib\Crypt\RC4
-     * @access public
-     */
-    function __construct()
-    {
-        parent::__construct(Base::MODE_STREAM);
-    }
-
-    /**
-     * Test for engine validity
-     *
-     * This is mainly just a wrapper to set things up for \phpseclib\Crypt\Base::isValidEngine()
-     *
-     * @see \phpseclib\Crypt\Base::__construct()
-     * @param int $engine
-     * @access public
-     * @return bool
-     */
-    function isValidEngine($engine)
-    {
-        if ($engine == Base::ENGINE_OPENSSL) {
-            if (version_compare(PHP_VERSION, '5.3.7') >= 0) {
-                $this->cipher_name_openssl = 'rc4-40';
-            } else {
-                switch (strlen($this->key)) {
-                    case 5:
-                        $this->cipher_name_openssl = 'rc4-40';
-                        break;
-                    case 8:
-                        $this->cipher_name_openssl = 'rc4-64';
-                        break;
-                    case 16:
-                        $this->cipher_name_openssl = 'rc4';
-                        break;
-                    default:
-                        return false;
-                }
-            }
-        }
-
-        return parent::isValidEngine($engine);
-    }
-
-    /**
-     * Dummy function.
-     *
-     * Some protocols, such as WEP, prepend an "initialization vector" to the key, effectively creating a new key [1].
-     * If you need to use an initialization vector in this manner, feel free to prepend it to the key, yourself, before
-     * calling setKey().
-     *
-     * [1] WEP's initialization vectors (IV's) are used in a somewhat insecure way.  Since, in that protocol,
-     * the IV's are relatively easy to predict, an attack described by
-     * {@link http://www.drizzle.com/~aboba/IEEE/rc4_ksaproc.pdf Scott Fluhrer, Itsik Mantin, and Adi Shamir}
-     * can be used to quickly guess at the rest of the key.  The following links elaborate:
-     *
-     * {@link http://www.rsa.com/rsalabs/node.asp?id=2009 http://www.rsa.com/rsalabs/node.asp?id=2009}
-     * {@link http://en.wikipedia.org/wiki/Related_key_attack http://en.wikipedia.org/wiki/Related_key_attack}
-     *
-     * @param string $iv
-     * @see self::setKey()
-     * @access public
-     */
-    function setIV($iv)
-    {
-    }
-
-    /**
-     * Sets the key length
-     *
-     * Keys can be between 1 and 256 bytes long.
-     *
-     * @access public
-     * @param int $length
-     */
-    function setKeyLength($length)
-    {
-        if ($length < 8) {
-            $this->key_length = 1;
-        } elseif ($length > 2048) {
-            $this->key_length = 256;
-        } else {
-            $this->key_length = $length >> 3;
-        }
-
-        parent::setKeyLength($length);
-    }
-
-    /**
-     * Encrypts a message.
-     *
-     * @see \phpseclib\Crypt\Base::decrypt()
-     * @see self::_crypt()
-     * @access public
-     * @param string $plaintext
-     * @return string $ciphertext
-     */
-    function encrypt($plaintext)
-    {
-        if ($this->engine != Base::ENGINE_INTERNAL) {
-            return parent::encrypt($plaintext);
-        }
-        return $this->_crypt($plaintext, self::ENCRYPT);
-    }
-
-    /**
-     * Decrypts a message.
-     *
-     * $this->decrypt($this->encrypt($plaintext)) == $this->encrypt($this->encrypt($plaintext)).
-     * At least if the continuous buffer is disabled.
-     *
-     * @see \phpseclib\Crypt\Base::encrypt()
-     * @see self::_crypt()
-     * @access public
-     * @param string $ciphertext
-     * @return string $plaintext
-     */
-    function decrypt($ciphertext)
-    {
-        if ($this->engine != Base::ENGINE_INTERNAL) {
-            return parent::decrypt($ciphertext);
-        }
-        return $this->_crypt($ciphertext, self::DECRYPT);
-    }
-
-    /**
-     * Encrypts a block
-     *
-     * @access private
-     * @param string $in
-     */
-    function _encryptBlock($in)
-    {
-        // RC4 does not utilize this method
-    }
-
-    /**
-     * Decrypts a block
-     *
-     * @access private
-     * @param string $in
-     */
-    function _decryptBlock($in)
-    {
-        // RC4 does not utilize this method
-    }
-
-    /**
-     * Setup the key (expansion)
-     *
-     * @see \phpseclib\Crypt\Base::_setupKey()
-     * @access private
-     */
-    function _setupKey()
-    {
-        $key = $this->key;
-        $keyLength = strlen($key);
-        $keyStream = range(0, 255);
-        $j = 0;
-        for ($i = 0; $i < 256; $i++) {
-            $j = ($j + $keyStream[$i] + ord($key[$i % $keyLength])) & 255;
-            $temp = $keyStream[$i];
-            $keyStream[$i] = $keyStream[$j];
-            $keyStream[$j] = $temp;
-        }
-
-        $this->stream = array();
-        $this->stream[self::DECRYPT] = $this->stream[self::ENCRYPT] = array(
-            0, // index $i
-            0, // index $j
-            $keyStream
-        );
-    }
-
-    /**
-     * Encrypts or decrypts a message.
-     *
-     * @see self::encrypt()
-     * @see self::decrypt()
-     * @access private
-     * @param string $text
-     * @param int $mode
-     * @return string $text
-     */
-    function _crypt($text, $mode)
-    {
-        if ($this->changed) {
-            $this->_setup();
-            $this->changed = false;
-        }
-
-        $stream = &$this->stream[$mode];
-        if ($this->continuousBuffer) {
-            $i = &$stream[0];
-            $j = &$stream[1];
-            $keyStream = &$stream[2];
-        } else {
-            $i = $stream[0];
-            $j = $stream[1];
-            $keyStream = $stream[2];
-        }
-
-        $len = strlen($text);
-        for ($k = 0; $k < $len; ++$k) {
-            $i = ($i + 1) & 255;
-            $ksi = $keyStream[$i];
-            $j = ($j + $ksi) & 255;
-            $ksj = $keyStream[$j];
-
-            $keyStream[$i] = $ksj;
-            $keyStream[$j] = $ksi;
-            $text[$k] = $text[$k] ^ chr($keyStream[($ksj + $ksi) & 255]);
-        }
-
-        return $text;
-    }
-}
diff --git a/wiki/vendor/phpseclib/phpseclib/phpseclib/Crypt/RSA.php b/wiki/vendor/phpseclib/phpseclib/phpseclib/Crypt/RSA.php
deleted file mode 100644
index c15e86d..0000000
--- a/wiki/vendor/phpseclib/phpseclib/phpseclib/Crypt/RSA.php
+++ /dev/null
@@ -1,3057 +0,0 @@
-<?php
-
-/**
- * Pure-PHP PKCS#1 (v2.1) compliant implementation of RSA.
- *
- * PHP version 5
- *
- * Here's an example of how to encrypt and decrypt text with this library:
- * <code>
- * <?php
- *    include 'vendor/autoload.php';
- *
- *    $rsa = new \phpseclib\Crypt\RSA();
- *    extract($rsa->createKey());
- *
- *    $plaintext = 'terrafrost';
- *
- *    $rsa->loadKey($privatekey);
- *    $ciphertext = $rsa->encrypt($plaintext);
- *
- *    $rsa->loadKey($publickey);
- *    echo $rsa->decrypt($ciphertext);
- * ?>
- * </code>
- *
- * Here's an example of how to create signatures and verify signatures with this library:
- * <code>
- * <?php
- *    include 'vendor/autoload.php';
- *
- *    $rsa = new \phpseclib\Crypt\RSA();
- *    extract($rsa->createKey());
- *
- *    $plaintext = 'terrafrost';
- *
- *    $rsa->loadKey($privatekey);
- *    $signature = $rsa->sign($plaintext);
- *
- *    $rsa->loadKey($publickey);
- *    echo $rsa->verify($plaintext, $signature) ? 'verified' : 'unverified';
- * ?>
- * </code>
- *
- * @category  Crypt
- * @package   RSA
- * @author    Jim Wigginton <terrafrost@php.net>
- * @copyright 2009 Jim Wigginton
- * @license   http://www.opensource.org/licenses/mit-license.html  MIT License
- * @link      http://phpseclib.sourceforge.net
- */
-
-namespace phpseclib\Crypt;
-
-use phpseclib\Math\BigInteger;
-
-/**
- * Pure-PHP PKCS#1 compliant implementation of RSA.
- *
- * @package RSA
- * @author  Jim Wigginton <terrafrost@php.net>
- * @access  public
- */
-class RSA
-{
-    /**#@+
-     * @access public
-     * @see self::encrypt()
-     * @see self::decrypt()
-     */
-    /**
-     * Use {@link http://en.wikipedia.org/wiki/Optimal_Asymmetric_Encryption_Padding Optimal Asymmetric Encryption Padding}
-     * (OAEP) for encryption / decryption.
-     *
-     * Uses sha1 by default.
-     *
-     * @see self::setHash()
-     * @see self::setMGFHash()
-     */
-    const ENCRYPTION_OAEP = 1;
-    /**
-     * Use PKCS#1 padding.
-     *
-     * Although self::ENCRYPTION_OAEP offers more security, including PKCS#1 padding is necessary for purposes of backwards
-     * compatibility with protocols (like SSH-1) written before OAEP's introduction.
-     */
-    const ENCRYPTION_PKCS1 = 2;
-    /**
-     * Do not use any padding
-     *
-     * Although this method is not recommended it can none-the-less sometimes be useful if you're trying to decrypt some legacy
-     * stuff, if you're trying to diagnose why an encrypted message isn't decrypting, etc.
-     */
-    const ENCRYPTION_NONE = 3;
-    /**#@-*/
-
-    /**#@+
-     * @access public
-     * @see self::sign()
-     * @see self::verify()
-     * @see self::setHash()
-    */
-    /**
-     * Use the Probabilistic Signature Scheme for signing
-     *
-     * Uses sha1 by default.
-     *
-     * @see self::setSaltLength()
-     * @see self::setMGFHash()
-     */
-    const SIGNATURE_PSS = 1;
-    /**
-     * Use the PKCS#1 scheme by default.
-     *
-     * Although self::SIGNATURE_PSS offers more security, including PKCS#1 signing is necessary for purposes of backwards
-     * compatibility with protocols (like SSH-2) written before PSS's introduction.
-     */
-    const SIGNATURE_PKCS1 = 2;
-    /**#@-*/
-
-    /**#@+
-     * @access private
-     * @see \phpseclib\Crypt\RSA::createKey()
-    */
-    /**
-     * ASN1 Integer
-     */
-    const ASN1_INTEGER = 2;
-    /**
-     * ASN1 Bit String
-     */
-    const ASN1_BITSTRING = 3;
-    /**
-     * ASN1 Octet String
-     */
-    const ASN1_OCTETSTRING = 4;
-    /**
-     * ASN1 Object Identifier
-     */
-    const ASN1_OBJECT = 6;
-    /**
-     * ASN1 Sequence (with the constucted bit set)
-     */
-    const ASN1_SEQUENCE = 48;
-    /**#@-*/
-
-    /**#@+
-     * @access private
-     * @see \phpseclib\Crypt\RSA::__construct()
-    */
-    /**
-     * To use the pure-PHP implementation
-     */
-    const MODE_INTERNAL = 1;
-    /**
-     * To use the OpenSSL library
-     *
-     * (if enabled; otherwise, the internal implementation will be used)
-     */
-    const MODE_OPENSSL = 2;
-    /**#@-*/
-
-    /**#@+
-     * @access public
-     * @see \phpseclib\Crypt\RSA::createKey()
-     * @see \phpseclib\Crypt\RSA::setPrivateKeyFormat()
-    */
-    /**
-     * PKCS#1 formatted private key
-     *
-     * Used by OpenSSH
-     */
-    const PRIVATE_FORMAT_PKCS1 = 0;
-    /**
-     * PuTTY formatted private key
-     */
-    const PRIVATE_FORMAT_PUTTY = 1;
-    /**
-     * XML formatted private key
-     */
-    const PRIVATE_FORMAT_XML = 2;
-    /**
-     * PKCS#8 formatted private key
-     */
-    const PRIVATE_FORMAT_PKCS8 = 8;
-    /**#@-*/
-
-    /**#@+
-     * @access public
-     * @see \phpseclib\Crypt\RSA::createKey()
-     * @see \phpseclib\Crypt\RSA::setPublicKeyFormat()
-    */
-    /**
-     * Raw public key
-     *
-     * An array containing two \phpseclib\Math\BigInteger objects.
-     *
-     * The exponent can be indexed with any of the following:
-     *
-     * 0, e, exponent, publicExponent
-     *
-     * The modulus can be indexed with any of the following:
-     *
-     * 1, n, modulo, modulus
-     */
-    const PUBLIC_FORMAT_RAW = 3;
-    /**
-     * PKCS#1 formatted public key (raw)
-     *
-     * Used by File/X509.php
-     *
-     * Has the following header:
-     *
-     * -----BEGIN RSA PUBLIC KEY-----
-     *
-     * Analogous to ssh-keygen's pem format (as specified by -m)
-     */
-    const PUBLIC_FORMAT_PKCS1 = 4;
-    const PUBLIC_FORMAT_PKCS1_RAW = 4;
-    /**
-     * XML formatted public key
-     */
-    const PUBLIC_FORMAT_XML = 5;
-    /**
-     * OpenSSH formatted public key
-     *
-     * Place in $HOME/.ssh/authorized_keys
-     */
-    const PUBLIC_FORMAT_OPENSSH = 6;
-    /**
-     * PKCS#1 formatted public key (encapsulated)
-     *
-     * Used by PHP's openssl_public_encrypt() and openssl's rsautl (when -pubin is set)
-     *
-     * Has the following header:
-     *
-     * -----BEGIN PUBLIC KEY-----
-     *
-     * Analogous to ssh-keygen's pkcs8 format (as specified by -m). Although PKCS8
-     * is specific to private keys it's basically creating a DER-encoded wrapper
-     * for keys. This just extends that same concept to public keys (much like ssh-keygen)
-     */
-    const PUBLIC_FORMAT_PKCS8 = 7;
-    /**#@-*/
-
-    /**
-     * Precomputed Zero
-     *
-     * @var \phpseclib\Math\BigInteger
-     * @access private
-     */
-    var $zero;
-
-    /**
-     * Precomputed One
-     *
-     * @var \phpseclib\Math\BigInteger
-     * @access private
-     */
-    var $one;
-
-    /**
-     * Private Key Format
-     *
-     * @var int
-     * @access private
-     */
-    var $privateKeyFormat = self::PRIVATE_FORMAT_PKCS1;
-
-    /**
-     * Public Key Format
-     *
-     * @var int
-     * @access public
-     */
-    var $publicKeyFormat = self::PUBLIC_FORMAT_PKCS8;
-
-    /**
-     * Modulus (ie. n)
-     *
-     * @var \phpseclib\Math\BigInteger
-     * @access private
-     */
-    var $modulus;
-
-    /**
-     * Modulus length
-     *
-     * @var \phpseclib\Math\BigInteger
-     * @access private
-     */
-    var $k;
-
-    /**
-     * Exponent (ie. e or d)
-     *
-     * @var \phpseclib\Math\BigInteger
-     * @access private
-     */
-    var $exponent;
-
-    /**
-     * Primes for Chinese Remainder Theorem (ie. p and q)
-     *
-     * @var array
-     * @access private
-     */
-    var $primes;
-
-    /**
-     * Exponents for Chinese Remainder Theorem (ie. dP and dQ)
-     *
-     * @var array
-     * @access private
-     */
-    var $exponents;
-
-    /**
-     * Coefficients for Chinese Remainder Theorem (ie. qInv)
-     *
-     * @var array
-     * @access private
-     */
-    var $coefficients;
-
-    /**
-     * Hash name
-     *
-     * @var string
-     * @access private
-     */
-    var $hashName;
-
-    /**
-     * Hash function
-     *
-     * @var \phpseclib\Crypt\Hash
-     * @access private
-     */
-    var $hash;
-
-    /**
-     * Length of hash function output
-     *
-     * @var int
-     * @access private
-     */
-    var $hLen;
-
-    /**
-     * Length of salt
-     *
-     * @var int
-     * @access private
-     */
-    var $sLen;
-
-    /**
-     * Hash function for the Mask Generation Function
-     *
-     * @var \phpseclib\Crypt\Hash
-     * @access private
-     */
-    var $mgfHash;
-
-    /**
-     * Length of MGF hash function output
-     *
-     * @var int
-     * @access private
-     */
-    var $mgfHLen;
-
-    /**
-     * Encryption mode
-     *
-     * @var int
-     * @access private
-     */
-    var $encryptionMode = self::ENCRYPTION_OAEP;
-
-    /**
-     * Signature mode
-     *
-     * @var int
-     * @access private
-     */
-    var $signatureMode = self::SIGNATURE_PSS;
-
-    /**
-     * Public Exponent
-     *
-     * @var mixed
-     * @access private
-     */
-    var $publicExponent = false;
-
-    /**
-     * Password
-     *
-     * @var string
-     * @access private
-     */
-    var $password = false;
-
-    /**
-     * Components
-     *
-     * For use with parsing XML formatted keys.  PHP's XML Parser functions use utilized - instead of PHP's DOM functions -
-     * because PHP's XML Parser functions work on PHP4 whereas PHP's DOM functions - although surperior - don't.
-     *
-     * @see self::_start_element_handler()
-     * @var array
-     * @access private
-     */
-    var $components = array();
-
-    /**
-     * Current String
-     *
-     * For use with parsing XML formatted keys.
-     *
-     * @see self::_character_handler()
-     * @see self::_stop_element_handler()
-     * @var mixed
-     * @access private
-     */
-    var $current;
-
-    /**
-     * OpenSSL configuration file name.
-     *
-     * Set to null to use system configuration file.
-     * @see self::createKey()
-     * @var mixed
-     * @Access public
-     */
-    var $configFile;
-
-    /**
-     * Public key comment field.
-     *
-     * @var string
-     * @access private
-     */
-    var $comment = 'phpseclib-generated-key';
-
-    /**
-     * The constructor
-     *
-     * If you want to make use of the openssl extension, you'll need to set the mode manually, yourself.  The reason
-     * \phpseclib\Crypt\RSA doesn't do it is because OpenSSL doesn't fail gracefully.  openssl_pkey_new(), in particular, requires
-     * openssl.cnf be present somewhere and, unfortunately, the only real way to find out is too late.
-     *
-     * @return \phpseclib\Crypt\RSA
-     * @access public
-     */
-    function __construct()
-    {
-        $this->configFile = dirname(__FILE__) . '/../openssl.cnf';
-
-        if (!defined('CRYPT_RSA_MODE')) {
-            switch (true) {
-                // Math/BigInteger's openssl requirements are a little less stringent than Crypt/RSA's. in particular,
-                // Math/BigInteger doesn't require an openssl.cfg file whereas Crypt/RSA does. so if Math/BigInteger
-                // can't use OpenSSL it can be pretty trivially assumed, then, that Crypt/RSA can't either.
-                case defined('MATH_BIGINTEGER_OPENSSL_DISABLE'):
-                    define('CRYPT_RSA_MODE', self::MODE_INTERNAL);
-                    break;
-                case extension_loaded('openssl') && file_exists($this->configFile):
-                    // some versions of XAMPP have mismatched versions of OpenSSL which causes it not to work
-                    $versions = array();
-
-                    // avoid generating errors (even with suppression) when phpinfo() is disabled (common in production systems)
-                    if (strpos(ini_get('disable_functions'), 'phpinfo') === false) {
-                        ob_start();
-                        @phpinfo();
-                        $content = ob_get_contents();
-                        ob_end_clean();
-
-                        preg_match_all('#OpenSSL (Header|Library) Version(.*)#im', $content, $matches);
-
-                        if (!empty($matches[1])) {
-                            for ($i = 0; $i < count($matches[1]); $i++) {
-                                $fullVersion = trim(str_replace('=>', '', strip_tags($matches[2][$i])));
-
-                                // Remove letter part in OpenSSL version
-                                if (!preg_match('/(\d+\.\d+\.\d+)/i', $fullVersion, $m)) {
-                                    $versions[$matches[1][$i]] = $fullVersion;
-                                } else {
-                                    $versions[$matches[1][$i]] = $m[0];
-                                }
-                            }
-                        }
-                    }
-
-                    // it doesn't appear that OpenSSL versions were reported upon until PHP 5.3+
-                    switch (true) {
-                        case !isset($versions['Header']):
-                        case !isset($versions['Library']):
-                        case $versions['Header'] == $versions['Library']:
-                        case version_compare($versions['Header'], '1.0.0') >= 0 && version_compare($versions['Library'], '1.0.0') >= 0:
-                            define('CRYPT_RSA_MODE', self::MODE_OPENSSL);
-                            break;
-                        default:
-                            define('CRYPT_RSA_MODE', self::MODE_INTERNAL);
-                            define('MATH_BIGINTEGER_OPENSSL_DISABLE', true);
-                    }
-                    break;
-                default:
-                    define('CRYPT_RSA_MODE', self::MODE_INTERNAL);
-            }
-        }
-
-        $this->zero = new BigInteger();
-        $this->one = new BigInteger(1);
-
-        $this->hash = new Hash('sha1');
-        $this->hLen = $this->hash->getLength();
-        $this->hashName = 'sha1';
-        $this->mgfHash = new Hash('sha1');
-        $this->mgfHLen = $this->mgfHash->getLength();
-    }
-
-    /**
-     * Create public / private key pair
-     *
-     * Returns an array with the following three elements:
-     *  - 'privatekey': The private key.
-     *  - 'publickey':  The public key.
-     *  - 'partialkey': A partially computed key (if the execution time exceeded $timeout).
-     *                  Will need to be passed back to \phpseclib\Crypt\RSA::createKey() as the third parameter for further processing.
-     *
-     * @access public
-     * @param int $bits
-     * @param int $timeout
-     * @param array $p
-     */
-    function createKey($bits = 1024, $timeout = false, $partial = array())
-    {
-        if (!defined('CRYPT_RSA_EXPONENT')) {
-            // http://en.wikipedia.org/wiki/65537_%28number%29
-            define('CRYPT_RSA_EXPONENT', '65537');
-        }
-        // per <http://cseweb.ucsd.edu/~hovav/dist/survey.pdf#page=5>, this number ought not result in primes smaller
-        // than 256 bits. as a consequence if the key you're trying to create is 1024 bits and you've set CRYPT_RSA_SMALLEST_PRIME
-        // to 384 bits then you're going to get a 384 bit prime and a 640 bit prime (384 + 1024 % 384). at least if
-        // CRYPT_RSA_MODE is set to self::MODE_INTERNAL. if CRYPT_RSA_MODE is set to self::MODE_OPENSSL then
-        // CRYPT_RSA_SMALLEST_PRIME is ignored (ie. multi-prime RSA support is more intended as a way to speed up RSA key
-        // generation when there's a chance neither gmp nor OpenSSL are installed)
-        if (!defined('CRYPT_RSA_SMALLEST_PRIME')) {
-            define('CRYPT_RSA_SMALLEST_PRIME', 4096);
-        }
-
-        // OpenSSL uses 65537 as the exponent and requires RSA keys be 384 bits minimum
-        if (CRYPT_RSA_MODE == self::MODE_OPENSSL && $bits >= 384 && CRYPT_RSA_EXPONENT == 65537) {
-            $config = array();
-            if (isset($this->configFile)) {
-                $config['config'] = $this->configFile;
-            }
-            $rsa = openssl_pkey_new(array('private_key_bits' => $bits) + $config);
-            openssl_pkey_export($rsa, $privatekey, null, $config);
-            $publickey = openssl_pkey_get_details($rsa);
-            $publickey = $publickey['key'];
-
-            $privatekey = call_user_func_array(array($this, '_convertPrivateKey'), array_values($this->_parseKey($privatekey, self::PRIVATE_FORMAT_PKCS1)));
-            $publickey = call_user_func_array(array($this, '_convertPublicKey'), array_values($this->_parseKey($publickey, self::PUBLIC_FORMAT_PKCS1)));
-
-            // clear the buffer of error strings stemming from a minimalistic openssl.cnf
-            while (openssl_error_string() !== false) {
-            }
-
-            return array(
-                'privatekey' => $privatekey,
-                'publickey' => $publickey,
-                'partialkey' => false
-            );
-        }
-
-        static $e;
-        if (!isset($e)) {
-            $e = new BigInteger(CRYPT_RSA_EXPONENT);
-        }
-
-        extract($this->_generateMinMax($bits));
-        $absoluteMin = $min;
-        $temp = $bits >> 1; // divide by two to see how many bits P and Q would be
-        if ($temp > CRYPT_RSA_SMALLEST_PRIME) {
-            $num_primes = floor($bits / CRYPT_RSA_SMALLEST_PRIME);
-            $temp = CRYPT_RSA_SMALLEST_PRIME;
-        } else {
-            $num_primes = 2;
-        }
-        extract($this->_generateMinMax($temp + $bits % $temp));
-        $finalMax = $max;
-        extract($this->_generateMinMax($temp));
-
-        $generator = new BigInteger();
-
-        $n = $this->one->copy();
-        if (!empty($partial)) {
-            extract(unserialize($partial));
-        } else {
-            $exponents = $coefficients = $primes = array();
-            $lcm = array(
-                'top' => $this->one->copy(),
-                'bottom' => false
-            );
-        }
-
-        $start = time();
-        $i0 = count($primes) + 1;
-
-        do {
-            for ($i = $i0; $i <= $num_primes; $i++) {
-                if ($timeout !== false) {
-                    $timeout-= time() - $start;
-                    $start = time();
-                    if ($timeout <= 0) {
-                        return array(
-                            'privatekey' => '',
-                            'publickey'  => '',
-                            'partialkey' => serialize(array(
-                                'primes' => $primes,
-                                'coefficients' => $coefficients,
-                                'lcm' => $lcm,
-                                'exponents' => $exponents
-                            ))
-                        );
-                    }
-                }
-
-                if ($i == $num_primes) {
-                    list($min, $temp) = $absoluteMin->divide($n);
-                    if (!$temp->equals($this->zero)) {
-                        $min = $min->add($this->one); // ie. ceil()
-                    }
-                    $primes[$i] = $generator->randomPrime($min, $finalMax, $timeout);
-                } else {
-                    $primes[$i] = $generator->randomPrime($min, $max, $timeout);
-                }
-
-                if ($primes[$i] === false) { // if we've reached the timeout
-                    if (count($primes) > 1) {
-                        $partialkey = '';
-                    } else {
-                        array_pop($primes);
-                        $partialkey = serialize(array(
-                            'primes' => $primes,
-                            'coefficients' => $coefficients,
-                            'lcm' => $lcm,
-                            'exponents' => $exponents
-                        ));
-                    }
-
-                    return array(
-                        'privatekey' => '',
-                        'publickey'  => '',
-                        'partialkey' => $partialkey
-                    );
-                }
-
-                // the first coefficient is calculated differently from the rest
-                // ie. instead of being $primes[1]->modInverse($primes[2]), it's $primes[2]->modInverse($primes[1])
-                if ($i > 2) {
-                    $coefficients[$i] = $n->modInverse($primes[$i]);
-                }
-
-                $n = $n->multiply($primes[$i]);
-
-                $temp = $primes[$i]->subtract($this->one);
-
-                // textbook RSA implementations use Euler's totient function instead of the least common multiple.
-                // see http://en.wikipedia.org/wiki/Euler%27s_totient_function
-                $lcm['top'] = $lcm['top']->multiply($temp);
-                $lcm['bottom'] = $lcm['bottom'] === false ? $temp : $lcm['bottom']->gcd($temp);
-
-                $exponents[$i] = $e->modInverse($temp);
-            }
-
-            list($temp) = $lcm['top']->divide($lcm['bottom']);
-            $gcd = $temp->gcd($e);
-            $i0 = 1;
-        } while (!$gcd->equals($this->one));
-
-        $d = $e->modInverse($temp);
-
-        $coefficients[2] = $primes[2]->modInverse($primes[1]);
-
-        // from <http://tools.ietf.org/html/rfc3447#appendix-A.1.2>:
-        // RSAPrivateKey ::= SEQUENCE {
-        //     version           Version,
-        //     modulus           INTEGER,  -- n
-        //     publicExponent    INTEGER,  -- e
-        //     privateExponent   INTEGER,  -- d
-        //     prime1            INTEGER,  -- p
-        //     prime2            INTEGER,  -- q
-        //     exponent1         INTEGER,  -- d mod (p-1)
-        //     exponent2         INTEGER,  -- d mod (q-1)
-        //     coefficient       INTEGER,  -- (inverse of q) mod p
-        //     otherPrimeInfos   OtherPrimeInfos OPTIONAL
-        // }
-
-        return array(
-            'privatekey' => $this->_convertPrivateKey($n, $e, $d, $primes, $exponents, $coefficients),
-            'publickey'  => $this->_convertPublicKey($n, $e),
-            'partialkey' => false
-        );
-    }
-
-    /**
-     * Convert a private key to the appropriate format.
-     *
-     * @access private
-     * @see self::setPrivateKeyFormat()
-     * @param string $RSAPrivateKey
-     * @return string
-     */
-    function _convertPrivateKey($n, $e, $d, $primes, $exponents, $coefficients)
-    {
-        $signed = $this->privateKeyFormat != self::PRIVATE_FORMAT_XML;
-        $num_primes = count($primes);
-        $raw = array(
-            'version' => $num_primes == 2 ? chr(0) : chr(1), // two-prime vs. multi
-            'modulus' => $n->toBytes($signed),
-            'publicExponent' => $e->toBytes($signed),
-            'privateExponent' => $d->toBytes($signed),
-            'prime1' => $primes[1]->toBytes($signed),
-            'prime2' => $primes[2]->toBytes($signed),
-            'exponent1' => $exponents[1]->toBytes($signed),
-            'exponent2' => $exponents[2]->toBytes($signed),
-            'coefficient' => $coefficients[2]->toBytes($signed)
-        );
-
-        // if the format in question does not support multi-prime rsa and multi-prime rsa was used,
-        // call _convertPublicKey() instead.
-        switch ($this->privateKeyFormat) {
-            case self::PRIVATE_FORMAT_XML:
-                if ($num_primes != 2) {
-                    return false;
-                }
-                return "<RSAKeyValue>\r\n" .
-                       '  <Modulus>' . base64_encode($raw['modulus']) . "</Modulus>\r\n" .
-                       '  <Exponent>' . base64_encode($raw['publicExponent']) . "</Exponent>\r\n" .
-                       '  <P>' . base64_encode($raw['prime1']) . "</P>\r\n" .
-                       '  <Q>' . base64_encode($raw['prime2']) . "</Q>\r\n" .
-                       '  <DP>' . base64_encode($raw['exponent1']) . "</DP>\r\n" .
-                       '  <DQ>' . base64_encode($raw['exponent2']) . "</DQ>\r\n" .
-                       '  <InverseQ>' . base64_encode($raw['coefficient']) . "</InverseQ>\r\n" .
-                       '  <D>' . base64_encode($raw['privateExponent']) . "</D>\r\n" .
-                       '</RSAKeyValue>';
-                break;
-            case self::PRIVATE_FORMAT_PUTTY:
-                if ($num_primes != 2) {
-                    return false;
-                }
-                $key = "PuTTY-User-Key-File-2: ssh-rsa\r\nEncryption: ";
-                $encryption = (!empty($this->password) || is_string($this->password)) ? 'aes256-cbc' : 'none';
-                $key.= $encryption;
-                $key.= "\r\nComment: " . $this->comment . "\r\n";
-                $public = pack(
-                    'Na*Na*Na*',
-                    strlen('ssh-rsa'),
-                    'ssh-rsa',
-                    strlen($raw['publicExponent']),
-                    $raw['publicExponent'],
-                    strlen($raw['modulus']),
-                    $raw['modulus']
-                );
-                $source = pack(
-                    'Na*Na*Na*Na*',
-                    strlen('ssh-rsa'),
-                    'ssh-rsa',
-                    strlen($encryption),
-                    $encryption,
-                    strlen($this->comment),
-                    $this->comment,
-                    strlen($public),
-                    $public
-                );
-                $public = base64_encode($public);
-                $key.= "Public-Lines: " . ((strlen($public) + 63) >> 6) . "\r\n";
-                $key.= chunk_split($public, 64);
-                $private = pack(
-                    'Na*Na*Na*Na*',
-                    strlen($raw['privateExponent']),
-                    $raw['privateExponent'],
-                    strlen($raw['prime1']),
-                    $raw['prime1'],
-                    strlen($raw['prime2']),
-                    $raw['prime2'],
-                    strlen($raw['coefficient']),
-                    $raw['coefficient']
-                );
-                if (empty($this->password) && !is_string($this->password)) {
-                    $source.= pack('Na*', strlen($private), $private);
-                    $hashkey = 'putty-private-key-file-mac-key';
-                } else {
-                    $private.= Random::string(16 - (strlen($private) & 15));
-                    $source.= pack('Na*', strlen($private), $private);
-                    $sequence = 0;
-                    $symkey = '';
-                    while (strlen($symkey) < 32) {
-                        $temp = pack('Na*', $sequence++, $this->password);
-                        $symkey.= pack('H*', sha1($temp));
-                    }
-                    $symkey = substr($symkey, 0, 32);
-                    $crypto = new AES();
-
-                    $crypto->setKey($symkey);
-                    $crypto->disablePadding();
-                    $private = $crypto->encrypt($private);
-                    $hashkey = 'putty-private-key-file-mac-key' . $this->password;
-                }
-
-                $private = base64_encode($private);
-                $key.= 'Private-Lines: ' . ((strlen($private) + 63) >> 6) . "\r\n";
-                $key.= chunk_split($private, 64);
-                $hash = new Hash('sha1');
-                $hash->setKey(pack('H*', sha1($hashkey)));
-                $key.= 'Private-MAC: ' . bin2hex($hash->hash($source)) . "\r\n";
-
-                return $key;
-            default: // eg. self::PRIVATE_FORMAT_PKCS1
-                $components = array();
-                foreach ($raw as $name => $value) {
-                    $components[$name] = pack('Ca*a*', self::ASN1_INTEGER, $this->_encodeLength(strlen($value)), $value);
-                }
-
-                $RSAPrivateKey = implode('', $components);
-
-                if ($num_primes > 2) {
-                    $OtherPrimeInfos = '';
-                    for ($i = 3; $i <= $num_primes; $i++) {
-                        // OtherPrimeInfos ::= SEQUENCE SIZE(1..MAX) OF OtherPrimeInfo
-                        //
-                        // OtherPrimeInfo ::= SEQUENCE {
-                        //     prime             INTEGER,  -- ri
-                        //     exponent          INTEGER,  -- di
-                        //     coefficient       INTEGER   -- ti
-                        // }
-                        $OtherPrimeInfo = pack('Ca*a*', self::ASN1_INTEGER, $this->_encodeLength(strlen($primes[$i]->toBytes(true))), $primes[$i]->toBytes(true));
-                        $OtherPrimeInfo.= pack('Ca*a*', self::ASN1_INTEGER, $this->_encodeLength(strlen($exponents[$i]->toBytes(true))), $exponents[$i]->toBytes(true));
-                        $OtherPrimeInfo.= pack('Ca*a*', self::ASN1_INTEGER, $this->_encodeLength(strlen($coefficients[$i]->toBytes(true))), $coefficients[$i]->toBytes(true));
-                        $OtherPrimeInfos.= pack('Ca*a*', self::ASN1_SEQUENCE, $this->_encodeLength(strlen($OtherPrimeInfo)), $OtherPrimeInfo);
-                    }
-                    $RSAPrivateKey.= pack('Ca*a*', self::ASN1_SEQUENCE, $this->_encodeLength(strlen($OtherPrimeInfos)), $OtherPrimeInfos);
-                }
-
-                $RSAPrivateKey = pack('Ca*a*', self::ASN1_SEQUENCE, $this->_encodeLength(strlen($RSAPrivateKey)), $RSAPrivateKey);
-
-                if ($this->privateKeyFormat == self::PRIVATE_FORMAT_PKCS8) {
-                    $rsaOID = pack('H*', '300d06092a864886f70d0101010500'); // hex version of MA0GCSqGSIb3DQEBAQUA
-                    $RSAPrivateKey = pack(
-                        'Ca*a*Ca*a*',
-                        self::ASN1_INTEGER,
-                        "\01\00",
-                        $rsaOID,
-                        4,
-                        $this->_encodeLength(strlen($RSAPrivateKey)),
-                        $RSAPrivateKey
-                    );
-                    $RSAPrivateKey = pack('Ca*a*', self::ASN1_SEQUENCE, $this->_encodeLength(strlen($RSAPrivateKey)), $RSAPrivateKey);
-                    if (!empty($this->password) || is_string($this->password)) {
-                        $salt = Random::string(8);
-                        $iterationCount = 2048;
-
-                        $crypto = new DES();
-                        $crypto->setPassword($this->password, 'pbkdf1', 'md5', $salt, $iterationCount);
-                        $RSAPrivateKey = $crypto->encrypt($RSAPrivateKey);
-
-                        $parameters = pack(
-                            'Ca*a*Ca*N',
-                            self::ASN1_OCTETSTRING,
-                            $this->_encodeLength(strlen($salt)),
-                            $salt,
-                            self::ASN1_INTEGER,
-                            $this->_encodeLength(4),
-                            $iterationCount
-                        );
-                        $pbeWithMD5AndDES_CBC = "\x2a\x86\x48\x86\xf7\x0d\x01\x05\x03";
-
-                        $encryptionAlgorithm = pack(
-                            'Ca*a*Ca*a*',
-                            self::ASN1_OBJECT,
-                            $this->_encodeLength(strlen($pbeWithMD5AndDES_CBC)),
-                            $pbeWithMD5AndDES_CBC,
-                            self::ASN1_SEQUENCE,
-                            $this->_encodeLength(strlen($parameters)),
-                            $parameters
-                        );
-
-                        $RSAPrivateKey = pack(
-                            'Ca*a*Ca*a*',
-                            self::ASN1_SEQUENCE,
-                            $this->_encodeLength(strlen($encryptionAlgorithm)),
-                            $encryptionAlgorithm,
-                            self::ASN1_OCTETSTRING,
-                            $this->_encodeLength(strlen($RSAPrivateKey)),
-                            $RSAPrivateKey
-                        );
-
-                        $RSAPrivateKey = pack('Ca*a*', self::ASN1_SEQUENCE, $this->_encodeLength(strlen($RSAPrivateKey)), $RSAPrivateKey);
-
-                        $RSAPrivateKey = "-----BEGIN ENCRYPTED PRIVATE KEY-----\r\n" .
-                                         chunk_split(base64_encode($RSAPrivateKey), 64) .
-                                         '-----END ENCRYPTED PRIVATE KEY-----';
-                    } else {
-                        $RSAPrivateKey = "-----BEGIN PRIVATE KEY-----\r\n" .
-                                         chunk_split(base64_encode($RSAPrivateKey), 64) .
-                                         '-----END PRIVATE KEY-----';
-                    }
-                    return $RSAPrivateKey;
-                }
-
-                if (!empty($this->password) || is_string($this->password)) {
-                    $iv = Random::string(8);
-                    $symkey = pack('H*', md5($this->password . $iv)); // symkey is short for symmetric key
-                    $symkey.= substr(pack('H*', md5($symkey . $this->password . $iv)), 0, 8);
-                    $des = new TripleDES();
-                    $des->setKey($symkey);
-                    $des->setIV($iv);
-                    $iv = strtoupper(bin2hex($iv));
-                    $RSAPrivateKey = "-----BEGIN RSA PRIVATE KEY-----\r\n" .
-                                     "Proc-Type: 4,ENCRYPTED\r\n" .
-                                     "DEK-Info: DES-EDE3-CBC,$iv\r\n" .
-                                     "\r\n" .
-                                     chunk_split(base64_encode($des->encrypt($RSAPrivateKey)), 64) .
-                                     '-----END RSA PRIVATE KEY-----';
-                } else {
-                    $RSAPrivateKey = "-----BEGIN RSA PRIVATE KEY-----\r\n" .
-                                     chunk_split(base64_encode($RSAPrivateKey), 64) .
-                                     '-----END RSA PRIVATE KEY-----';
-                }
-
-                return $RSAPrivateKey;
-        }
-    }
-
-    /**
-     * Convert a public key to the appropriate format
-     *
-     * @access private
-     * @see self::setPublicKeyFormat()
-     * @param string $RSAPrivateKey
-     * @return string
-     */
-    function _convertPublicKey($n, $e)
-    {
-        $signed = $this->publicKeyFormat != self::PUBLIC_FORMAT_XML;
-
-        $modulus = $n->toBytes($signed);
-        $publicExponent = $e->toBytes($signed);
-
-        switch ($this->publicKeyFormat) {
-            case self::PUBLIC_FORMAT_RAW:
-                return array('e' => $e->copy(), 'n' => $n->copy());
-            case self::PUBLIC_FORMAT_XML:
-                return "<RSAKeyValue>\r\n" .
-                       '  <Modulus>' . base64_encode($modulus) . "</Modulus>\r\n" .
-                       '  <Exponent>' . base64_encode($publicExponent) . "</Exponent>\r\n" .
-                       '</RSAKeyValue>';
-                break;
-            case self::PUBLIC_FORMAT_OPENSSH:
-                // from <http://tools.ietf.org/html/rfc4253#page-15>:
-                // string    "ssh-rsa"
-                // mpint     e
-                // mpint     n
-                $RSAPublicKey = pack('Na*Na*Na*', strlen('ssh-rsa'), 'ssh-rsa', strlen($publicExponent), $publicExponent, strlen($modulus), $modulus);
-                $RSAPublicKey = 'ssh-rsa ' . base64_encode($RSAPublicKey) . ' ' . $this->comment;
-
-                return $RSAPublicKey;
-            default: // eg. self::PUBLIC_FORMAT_PKCS1_RAW or self::PUBLIC_FORMAT_PKCS1
-                // from <http://tools.ietf.org/html/rfc3447#appendix-A.1.1>:
-                // RSAPublicKey ::= SEQUENCE {
-                //     modulus           INTEGER,  -- n
-                //     publicExponent    INTEGER   -- e
-                // }
-                $components = array(
-                    'modulus' => pack('Ca*a*', self::ASN1_INTEGER, $this->_encodeLength(strlen($modulus)), $modulus),
-                    'publicExponent' => pack('Ca*a*', self::ASN1_INTEGER, $this->_encodeLength(strlen($publicExponent)), $publicExponent)
-                );
-
-                $RSAPublicKey = pack(
-                    'Ca*a*a*',
-                    self::ASN1_SEQUENCE,
-                    $this->_encodeLength(strlen($components['modulus']) + strlen($components['publicExponent'])),
-                    $components['modulus'],
-                    $components['publicExponent']
-                );
-
-                if ($this->publicKeyFormat == self::PUBLIC_FORMAT_PKCS1_RAW) {
-                    $RSAPublicKey = "-----BEGIN RSA PUBLIC KEY-----\r\n" .
-                                    chunk_split(base64_encode($RSAPublicKey), 64) .
-                                    '-----END RSA PUBLIC KEY-----';
-                } else {
-                    // sequence(oid(1.2.840.113549.1.1.1), null)) = rsaEncryption.
-                    $rsaOID = pack('H*', '300d06092a864886f70d0101010500'); // hex version of MA0GCSqGSIb3DQEBAQUA
-                    $RSAPublicKey = chr(0) . $RSAPublicKey;
-                    $RSAPublicKey = chr(3) . $this->_encodeLength(strlen($RSAPublicKey)) . $RSAPublicKey;
-
-                    $RSAPublicKey = pack(
-                        'Ca*a*',
-                        self::ASN1_SEQUENCE,
-                        $this->_encodeLength(strlen($rsaOID . $RSAPublicKey)),
-                        $rsaOID . $RSAPublicKey
-                    );
-
-                    $RSAPublicKey = "-----BEGIN PUBLIC KEY-----\r\n" .
-                                     chunk_split(base64_encode($RSAPublicKey), 64) .
-                                     '-----END PUBLIC KEY-----';
-                }
-
-                return $RSAPublicKey;
-        }
-    }
-
-    /**
-     * Break a public or private key down into its constituant components
-     *
-     * @access private
-     * @see self::_convertPublicKey()
-     * @see self::_convertPrivateKey()
-     * @param string $key
-     * @param int $type
-     * @return array
-     */
-    function _parseKey($key, $type)
-    {
-        if ($type != self::PUBLIC_FORMAT_RAW && !is_string($key)) {
-            return false;
-        }
-
-        switch ($type) {
-            case self::PUBLIC_FORMAT_RAW:
-                if (!is_array($key)) {
-                    return false;
-                }
-                $components = array();
-                switch (true) {
-                    case isset($key['e']):
-                        $components['publicExponent'] = $key['e']->copy();
-                        break;
-                    case isset($key['exponent']):
-                        $components['publicExponent'] = $key['exponent']->copy();
-                        break;
-                    case isset($key['publicExponent']):
-                        $components['publicExponent'] = $key['publicExponent']->copy();
-                        break;
-                    case isset($key[0]):
-                        $components['publicExponent'] = $key[0]->copy();
-                }
-                switch (true) {
-                    case isset($key['n']):
-                        $components['modulus'] = $key['n']->copy();
-                        break;
-                    case isset($key['modulo']):
-                        $components['modulus'] = $key['modulo']->copy();
-                        break;
-                    case isset($key['modulus']):
-                        $components['modulus'] = $key['modulus']->copy();
-                        break;
-                    case isset($key[1]):
-                        $components['modulus'] = $key[1]->copy();
-                }
-                return isset($components['modulus']) && isset($components['publicExponent']) ? $components : false;
-            case self::PRIVATE_FORMAT_PKCS1:
-            case self::PRIVATE_FORMAT_PKCS8:
-            case self::PUBLIC_FORMAT_PKCS1:
-                /* Although PKCS#1 proposes a format that public and private keys can use, encrypting them is
-                   "outside the scope" of PKCS#1.  PKCS#1 then refers you to PKCS#12 and PKCS#15 if you're wanting to
-                   protect private keys, however, that's not what OpenSSL* does.  OpenSSL protects private keys by adding
-                   two new "fields" to the key - DEK-Info and Proc-Type.  These fields are discussed here:
-
-                   http://tools.ietf.org/html/rfc1421#section-4.6.1.1
-                   http://tools.ietf.org/html/rfc1421#section-4.6.1.3
-
-                   DES-EDE3-CBC as an algorithm, however, is not discussed anywhere, near as I can tell.
-                   DES-CBC and DES-EDE are discussed in RFC1423, however, DES-EDE3-CBC isn't, nor is its key derivation
-                   function.  As is, the definitive authority on this encoding scheme isn't the IETF but rather OpenSSL's
-                   own implementation.  ie. the implementation *is* the standard and any bugs that may exist in that
-                   implementation are part of the standard, as well.
-
-                   * OpenSSL is the de facto standard.  It's utilized by OpenSSH and other projects */
-                if (preg_match('#DEK-Info: (.+),(.+)#', $key, $matches)) {
-                    $iv = pack('H*', trim($matches[2]));
-                    $symkey = pack('H*', md5($this->password . substr($iv, 0, 8))); // symkey is short for symmetric key
-                    $symkey.= pack('H*', md5($symkey . $this->password . substr($iv, 0, 8)));
-                    // remove the Proc-Type / DEK-Info sections as they're no longer needed
-                    $key = preg_replace('#^(?:Proc-Type|DEK-Info): .*#m', '', $key);
-                    $ciphertext = $this->_extractBER($key);
-                    if ($ciphertext === false) {
-                        $ciphertext = $key;
-                    }
-                    switch ($matches[1]) {
-                        case 'AES-256-CBC':
-                            $crypto = new AES();
-                            break;
-                        case 'AES-128-CBC':
-                            $symkey = substr($symkey, 0, 16);
-                            $crypto = new AES();
-                            break;
-                        case 'DES-EDE3-CFB':
-                            $crypto = new TripleDES(Base::MODE_CFB);
-                            break;
-                        case 'DES-EDE3-CBC':
-                            $symkey = substr($symkey, 0, 24);
-                            $crypto = new TripleDES();
-                            break;
-                        case 'DES-CBC':
-                            $crypto = new DES();
-                            break;
-                        default:
-                            return false;
-                    }
-                    $crypto->setKey($symkey);
-                    $crypto->setIV($iv);
-                    $decoded = $crypto->decrypt($ciphertext);
-                } else {
-                    $decoded = $this->_extractBER($key);
-                }
-
-                if ($decoded !== false) {
-                    $key = $decoded;
-                }
-
-                $components = array();
-
-                if (ord($this->_string_shift($key)) != self::ASN1_SEQUENCE) {
-                    return false;
-                }
-                if ($this->_decodeLength($key) != strlen($key)) {
-                    return false;
-                }
-
-                $tag = ord($this->_string_shift($key));
-                /* intended for keys for which OpenSSL's asn1parse returns the following:
-
-                    0:d=0  hl=4 l= 631 cons: SEQUENCE
-                    4:d=1  hl=2 l=   1 prim:  INTEGER           :00
-                    7:d=1  hl=2 l=  13 cons:  SEQUENCE
-                    9:d=2  hl=2 l=   9 prim:   OBJECT            :rsaEncryption
-                   20:d=2  hl=2 l=   0 prim:   NULL
-                   22:d=1  hl=4 l= 609 prim:  OCTET STRING
-
-                   ie. PKCS8 keys*/
-
-                if ($tag == self::ASN1_INTEGER && substr($key, 0, 3) == "\x01\x00\x30") {
-                    $this->_string_shift($key, 3);
-                    $tag = self::ASN1_SEQUENCE;
-                }
-
-                if ($tag == self::ASN1_SEQUENCE) {
-                    $temp = $this->_string_shift($key, $this->_decodeLength($key));
-                    if (ord($this->_string_shift($temp)) != self::ASN1_OBJECT) {
-                        return false;
-                    }
-                    $length = $this->_decodeLength($temp);
-                    switch ($this->_string_shift($temp, $length)) {
-                        case "\x2a\x86\x48\x86\xf7\x0d\x01\x01\x01": // rsaEncryption
-                            break;
-                        case "\x2a\x86\x48\x86\xf7\x0d\x01\x05\x03": // pbeWithMD5AndDES-CBC
-                            /*
-                               PBEParameter ::= SEQUENCE {
-                                   salt OCTET STRING (SIZE(8)),
-                                   iterationCount INTEGER }
-                            */
-                            if (ord($this->_string_shift($temp)) != self::ASN1_SEQUENCE) {
-                                return false;
-                            }
-                            if ($this->_decodeLength($temp) != strlen($temp)) {
-                                return false;
-                            }
-                            $this->_string_shift($temp); // assume it's an octet string
-                            $salt = $this->_string_shift($temp, $this->_decodeLength($temp));
-                            if (ord($this->_string_shift($temp)) != self::ASN1_INTEGER) {
-                                return false;
-                            }
-                            $this->_decodeLength($temp);
-                            list(, $iterationCount) = unpack('N', str_pad($temp, 4, chr(0), STR_PAD_LEFT));
-                            $this->_string_shift($key); // assume it's an octet string
-                            $length = $this->_decodeLength($key);
-                            if (strlen($key) != $length) {
-                                return false;
-                            }
-
-                            $crypto = new DES();
-                            $crypto->setPassword($this->password, 'pbkdf1', 'md5', $salt, $iterationCount);
-                            $key = $crypto->decrypt($key);
-                            if ($key === false) {
-                                return false;
-                            }
-                            return $this->_parseKey($key, self::PRIVATE_FORMAT_PKCS1);
-                        default:
-                            return false;
-                    }
-                    /* intended for keys for which OpenSSL's asn1parse returns the following:
-
-                        0:d=0  hl=4 l= 290 cons: SEQUENCE
-                        4:d=1  hl=2 l=  13 cons:  SEQUENCE
-                        6:d=2  hl=2 l=   9 prim:   OBJECT            :rsaEncryption
-                       17:d=2  hl=2 l=   0 prim:   NULL
-                       19:d=1  hl=4 l= 271 prim:  BIT STRING */
-                    $tag = ord($this->_string_shift($key)); // skip over the BIT STRING / OCTET STRING tag
-                    $this->_decodeLength($key); // skip over the BIT STRING / OCTET STRING length
-                    // "The initial octet shall encode, as an unsigned binary integer wtih bit 1 as the least significant bit, the number of
-                    //  unused bits in the final subsequent octet. The number shall be in the range zero to seven."
-                    //  -- http://www.itu.int/ITU-T/studygroups/com17/languages/X.690-0207.pdf (section 8.6.2.2)
-                    if ($tag == self::ASN1_BITSTRING) {
-                        $this->_string_shift($key);
-                    }
-                    if (ord($this->_string_shift($key)) != self::ASN1_SEQUENCE) {
-                        return false;
-                    }
-                    if ($this->_decodeLength($key) != strlen($key)) {
-                        return false;
-                    }
-                    $tag = ord($this->_string_shift($key));
-                }
-                if ($tag != self::ASN1_INTEGER) {
-                    return false;
-                }
-
-                $length = $this->_decodeLength($key);
-                $temp = $this->_string_shift($key, $length);
-                if (strlen($temp) != 1 || ord($temp) > 2) {
-                    $components['modulus'] = new BigInteger($temp, 256);
-                    $this->_string_shift($key); // skip over self::ASN1_INTEGER
-                    $length = $this->_decodeLength($key);
-                    $components[$type == self::PUBLIC_FORMAT_PKCS1 ? 'publicExponent' : 'privateExponent'] = new BigInteger($this->_string_shift($key, $length), 256);
-
-                    return $components;
-                }
-                if (ord($this->_string_shift($key)) != self::ASN1_INTEGER) {
-                    return false;
-                }
-                $length = $this->_decodeLength($key);
-                $components['modulus'] = new BigInteger($this->_string_shift($key, $length), 256);
-                $this->_string_shift($key);
-                $length = $this->_decodeLength($key);
-                $components['publicExponent'] = new BigInteger($this->_string_shift($key, $length), 256);
-                $this->_string_shift($key);
-                $length = $this->_decodeLength($key);
-                $components['privateExponent'] = new BigInteger($this->_string_shift($key, $length), 256);
-                $this->_string_shift($key);
-                $length = $this->_decodeLength($key);
-                $components['primes'] = array(1 => new BigInteger($this->_string_shift($key, $length), 256));
-                $this->_string_shift($key);
-                $length = $this->_decodeLength($key);
-                $components['primes'][] = new BigInteger($this->_string_shift($key, $length), 256);
-                $this->_string_shift($key);
-                $length = $this->_decodeLength($key);
-                $components['exponents'] = array(1 => new BigInteger($this->_string_shift($key, $length), 256));
-                $this->_string_shift($key);
-                $length = $this->_decodeLength($key);
-                $components['exponents'][] = new BigInteger($this->_string_shift($key, $length), 256);
-                $this->_string_shift($key);
-                $length = $this->_decodeLength($key);
-                $components['coefficients'] = array(2 => new BigInteger($this->_string_shift($key, $length), 256));
-
-                if (!empty($key)) {
-                    if (ord($this->_string_shift($key)) != self::ASN1_SEQUENCE) {
-                        return false;
-                    }
-                    $this->_decodeLength($key);
-                    while (!empty($key)) {
-                        if (ord($this->_string_shift($key)) != self::ASN1_SEQUENCE) {
-                            return false;
-                        }
-                        $this->_decodeLength($key);
-                        $key = substr($key, 1);
-                        $length = $this->_decodeLength($key);
-                        $components['primes'][] = new BigInteger($this->_string_shift($key, $length), 256);
-                        $this->_string_shift($key);
-                        $length = $this->_decodeLength($key);
-                        $components['exponents'][] = new BigInteger($this->_string_shift($key, $length), 256);
-                        $this->_string_shift($key);
-                        $length = $this->_decodeLength($key);
-                        $components['coefficients'][] = new BigInteger($this->_string_shift($key, $length), 256);
-                    }
-                }
-
-                return $components;
-            case self::PUBLIC_FORMAT_OPENSSH:
-                $parts = explode(' ', $key, 3);
-
-                $key = isset($parts[1]) ? base64_decode($parts[1]) : false;
-                if ($key === false) {
-                    return false;
-                }
-
-                $comment = isset($parts[2]) ? $parts[2] : false;
-
-                $cleanup = substr($key, 0, 11) == "\0\0\0\7ssh-rsa";
-
-                if (strlen($key) <= 4) {
-                    return false;
-                }
-                extract(unpack('Nlength', $this->_string_shift($key, 4)));
-                $publicExponent = new BigInteger($this->_string_shift($key, $length), -256);
-                if (strlen($key) <= 4) {
-                    return false;
-                }
-                extract(unpack('Nlength', $this->_string_shift($key, 4)));
-                $modulus = new BigInteger($this->_string_shift($key, $length), -256);
-
-                if ($cleanup && strlen($key)) {
-                    if (strlen($key) <= 4) {
-                        return false;
-                    }
-                    extract(unpack('Nlength', $this->_string_shift($key, 4)));
-                    $realModulus = new BigInteger($this->_string_shift($key, $length), -256);
-                    return strlen($key) ? false : array(
-                        'modulus' => $realModulus,
-                        'publicExponent' => $modulus,
-                        'comment' => $comment
-                    );
-                } else {
-                    return strlen($key) ? false : array(
-                        'modulus' => $modulus,
-                        'publicExponent' => $publicExponent,
-                        'comment' => $comment
-                    );
-                }
-            // http://www.w3.org/TR/xmldsig-core/#sec-RSAKeyValue
-            // http://en.wikipedia.org/wiki/XML_Signature
-            case self::PRIVATE_FORMAT_XML:
-            case self::PUBLIC_FORMAT_XML:
-                $this->components = array();
-
-                $xml = xml_parser_create('UTF-8');
-                xml_set_object($xml, $this);
-                xml_set_element_handler($xml, '_start_element_handler', '_stop_element_handler');
-                xml_set_character_data_handler($xml, '_data_handler');
-                // add <xml></xml> to account for "dangling" tags like <BitStrength>...</BitStrength> that are sometimes added
-                if (!xml_parse($xml, '<xml>' . $key . '</xml>')) {
-                    return false;
-                }
-
-                return isset($this->components['modulus']) && isset($this->components['publicExponent']) ? $this->components : false;
-            // from PuTTY's SSHPUBK.C
-            case self::PRIVATE_FORMAT_PUTTY:
-                $components = array();
-                $key = preg_split('#\r\n|\r|\n#', $key);
-                $type = trim(preg_replace('#PuTTY-User-Key-File-2: (.+)#', '$1', $key[0]));
-                if ($type != 'ssh-rsa') {
-                    return false;
-                }
-                $encryption = trim(preg_replace('#Encryption: (.+)#', '$1', $key[1]));
-                $comment = trim(preg_replace('#Comment: (.+)#', '$1', $key[2]));
-
-                $publicLength = trim(preg_replace('#Public-Lines: (\d+)#', '$1', $key[3]));
-                $public = base64_decode(implode('', array_map('trim', array_slice($key, 4, $publicLength))));
-                $public = substr($public, 11);
-                extract(unpack('Nlength', $this->_string_shift($public, 4)));
-                $components['publicExponent'] = new BigInteger($this->_string_shift($public, $length), -256);
-                extract(unpack('Nlength', $this->_string_shift($public, 4)));
-                $components['modulus'] = new BigInteger($this->_string_shift($public, $length), -256);
-
-                $privateLength = trim(preg_replace('#Private-Lines: (\d+)#', '$1', $key[$publicLength + 4]));
-                $private = base64_decode(implode('', array_map('trim', array_slice($key, $publicLength + 5, $privateLength))));
-
-                switch ($encryption) {
-                    case 'aes256-cbc':
-                        $symkey = '';
-                        $sequence = 0;
-                        while (strlen($symkey) < 32) {
-                            $temp = pack('Na*', $sequence++, $this->password);
-                            $symkey.= pack('H*', sha1($temp));
-                        }
-                        $symkey = substr($symkey, 0, 32);
-                        $crypto = new AES();
-                }
-
-                if ($encryption != 'none') {
-                    $crypto->setKey($symkey);
-                    $crypto->disablePadding();
-                    $private = $crypto->decrypt($private);
-                    if ($private === false) {
-                        return false;
-                    }
-                }
-
-                extract(unpack('Nlength', $this->_string_shift($private, 4)));
-                if (strlen($private) < $length) {
-                    return false;
-                }
-                $components['privateExponent'] = new BigInteger($this->_string_shift($private, $length), -256);
-                extract(unpack('Nlength', $this->_string_shift($private, 4)));
-                if (strlen($private) < $length) {
-                    return false;
-                }
-                $components['primes'] = array(1 => new BigInteger($this->_string_shift($private, $length), -256));
-                extract(unpack('Nlength', $this->_string_shift($private, 4)));
-                if (strlen($private) < $length) {
-                    return false;
-                }
-                $components['primes'][] = new BigInteger($this->_string_shift($private, $length), -256);
-
-                $temp = $components['primes'][1]->subtract($this->one);
-                $components['exponents'] = array(1 => $components['publicExponent']->modInverse($temp));
-                $temp = $components['primes'][2]->subtract($this->one);
-                $components['exponents'][] = $components['publicExponent']->modInverse($temp);
-
-                extract(unpack('Nlength', $this->_string_shift($private, 4)));
-                if (strlen($private) < $length) {
-                    return false;
-                }
-                $components['coefficients'] = array(2 => new BigInteger($this->_string_shift($private, $length), -256));
-
-                return $components;
-        }
-    }
-
-    /**
-     * Returns the key size
-     *
-     * More specifically, this returns the size of the modulo in bits.
-     *
-     * @access public
-     * @return int
-     */
-    function getSize()
-    {
-        return !isset($this->modulus) ? 0 : strlen($this->modulus->toBits());
-    }
-
-    /**
-     * Start Element Handler
-     *
-     * Called by xml_set_element_handler()
-     *
-     * @access private
-     * @param resource $parser
-     * @param string $name
-     * @param array $attribs
-     */
-    function _start_element_handler($parser, $name, $attribs)
-    {
-        //$name = strtoupper($name);
-        switch ($name) {
-            case 'MODULUS':
-                $this->current = &$this->components['modulus'];
-                break;
-            case 'EXPONENT':
-                $this->current = &$this->components['publicExponent'];
-                break;
-            case 'P':
-                $this->current = &$this->components['primes'][1];
-                break;
-            case 'Q':
-                $this->current = &$this->components['primes'][2];
-                break;
-            case 'DP':
-                $this->current = &$this->components['exponents'][1];
-                break;
-            case 'DQ':
-                $this->current = &$this->components['exponents'][2];
-                break;
-            case 'INVERSEQ':
-                $this->current = &$this->components['coefficients'][2];
-                break;
-            case 'D':
-                $this->current = &$this->components['privateExponent'];
-        }
-        $this->current = '';
-    }
-
-    /**
-     * Stop Element Handler
-     *
-     * Called by xml_set_element_handler()
-     *
-     * @access private
-     * @param resource $parser
-     * @param string $name
-     */
-    function _stop_element_handler($parser, $name)
-    {
-        if (isset($this->current)) {
-            $this->current = new BigInteger(base64_decode($this->current), 256);
-            unset($this->current);
-        }
-    }
-
-    /**
-     * Data Handler
-     *
-     * Called by xml_set_character_data_handler()
-     *
-     * @access private
-     * @param resource $parser
-     * @param string $data
-     */
-    function _data_handler($parser, $data)
-    {
-        if (!isset($this->current) || is_object($this->current)) {
-            return;
-        }
-        $this->current.= trim($data);
-    }
-
-    /**
-     * Loads a public or private key
-     *
-     * Returns true on success and false on failure (ie. an incorrect password was provided or the key was malformed)
-     *
-     * @access public
-     * @param string $key
-     * @param int $type optional
-     */
-    function loadKey($key, $type = false)
-    {
-        if ($key instanceof RSA) {
-            $this->privateKeyFormat = $key->privateKeyFormat;
-            $this->publicKeyFormat = $key->publicKeyFormat;
-            $this->k = $key->k;
-            $this->hLen = $key->hLen;
-            $this->sLen = $key->sLen;
-            $this->mgfHLen = $key->mgfHLen;
-            $this->encryptionMode = $key->encryptionMode;
-            $this->signatureMode = $key->signatureMode;
-            $this->password = $key->password;
-            $this->configFile = $key->configFile;
-            $this->comment = $key->comment;
-
-            if (is_object($key->hash)) {
-                $this->hash = new Hash($key->hash->getHash());
-            }
-            if (is_object($key->mgfHash)) {
-                $this->mgfHash = new Hash($key->mgfHash->getHash());
-            }
-
-            if (is_object($key->modulus)) {
-                $this->modulus = $key->modulus->copy();
-            }
-            if (is_object($key->exponent)) {
-                $this->exponent = $key->exponent->copy();
-            }
-            if (is_object($key->publicExponent)) {
-                $this->publicExponent = $key->publicExponent->copy();
-            }
-
-            $this->primes = array();
-            $this->exponents = array();
-            $this->coefficients = array();
-
-            foreach ($this->primes as $prime) {
-                $this->primes[] = $prime->copy();
-            }
-            foreach ($this->exponents as $exponent) {
-                $this->exponents[] = $exponent->copy();
-            }
-            foreach ($this->coefficients as $coefficient) {
-                $this->coefficients[] = $coefficient->copy();
-            }
-
-            return true;
-        }
-
-        if ($type === false) {
-            $types = array(
-                self::PUBLIC_FORMAT_RAW,
-                self::PRIVATE_FORMAT_PKCS1,
-                self::PRIVATE_FORMAT_XML,
-                self::PRIVATE_FORMAT_PUTTY,
-                self::PUBLIC_FORMAT_OPENSSH
-            );
-            foreach ($types as $type) {
-                $components = $this->_parseKey($key, $type);
-                if ($components !== false) {
-                    break;
-                }
-            }
-        } else {
-            $components = $this->_parseKey($key, $type);
-        }
-
-        if ($components === false) {
-            $this->comment = null;
-            $this->modulus = null;
-            $this->k = null;
-            $this->exponent = null;
-            $this->primes = null;
-            $this->exponents = null;
-            $this->coefficients = null;
-            $this->publicExponent = null;
-
-            return false;
-        }
-
-        if (isset($components['comment']) && $components['comment'] !== false) {
-            $this->comment = $components['comment'];
-        }
-        $this->modulus = $components['modulus'];
-        $this->k = strlen($this->modulus->toBytes());
-        $this->exponent = isset($components['privateExponent']) ? $components['privateExponent'] : $components['publicExponent'];
-        if (isset($components['primes'])) {
-            $this->primes = $components['primes'];
-            $this->exponents = $components['exponents'];
-            $this->coefficients = $components['coefficients'];
-            $this->publicExponent = $components['publicExponent'];
-        } else {
-            $this->primes = array();
-            $this->exponents = array();
-            $this->coefficients = array();
-            $this->publicExponent = false;
-        }
-
-        switch ($type) {
-            case self::PUBLIC_FORMAT_OPENSSH:
-            case self::PUBLIC_FORMAT_RAW:
-                $this->setPublicKey();
-                break;
-            case self::PRIVATE_FORMAT_PKCS1:
-                switch (true) {
-                    case strpos($key, '-BEGIN PUBLIC KEY-') !== false:
-                    case strpos($key, '-BEGIN RSA PUBLIC KEY-') !== false:
-                        $this->setPublicKey();
-                }
-        }
-
-        return true;
-    }
-
-    /**
-     * Sets the password
-     *
-     * Private keys can be encrypted with a password.  To unset the password, pass in the empty string or false.
-     * Or rather, pass in $password such that empty($password) && !is_string($password) is true.
-     *
-     * @see self::createKey()
-     * @see self::loadKey()
-     * @access public
-     * @param string $password
-     */
-    function setPassword($password = false)
-    {
-        $this->password = $password;
-    }
-
-    /**
-     * Defines the public key
-     *
-     * Some private key formats define the public exponent and some don't.  Those that don't define it are problematic when
-     * used in certain contexts.  For example, in SSH-2, RSA authentication works by sending the public key along with a
-     * message signed by the private key to the server.  The SSH-2 server looks the public key up in an index of public keys
-     * and if it's present then proceeds to verify the signature.  Problem is, if your private key doesn't include the public
-     * exponent this won't work unless you manually add the public exponent. phpseclib tries to guess if the key being used
-     * is the public key but in the event that it guesses incorrectly you might still want to explicitly set the key as being
-     * public.
-     *
-     * Do note that when a new key is loaded the index will be cleared.
-     *
-     * Returns true on success, false on failure
-     *
-     * @see self::getPublicKey()
-     * @access public
-     * @param string $key optional
-     * @param int $type optional
-     * @return bool
-     */
-    function setPublicKey($key = false, $type = false)
-    {
-        // if a public key has already been loaded return false
-        if (!empty($this->publicExponent)) {
-            return false;
-        }
-
-        if ($key === false && !empty($this->modulus)) {
-            $this->publicExponent = $this->exponent;
-            return true;
-        }
-
-        if ($type === false) {
-            $types = array(
-                self::PUBLIC_FORMAT_RAW,
-                self::PUBLIC_FORMAT_PKCS1,
-                self::PUBLIC_FORMAT_XML,
-                self::PUBLIC_FORMAT_OPENSSH
-            );
-            foreach ($types as $type) {
-                $components = $this->_parseKey($key, $type);
-                if ($components !== false) {
-                    break;
-                }
-            }
-        } else {
-            $components = $this->_parseKey($key, $type);
-        }
-
-        if ($components === false) {
-            return false;
-        }
-
-        if (empty($this->modulus) || !$this->modulus->equals($components['modulus'])) {
-            $this->modulus = $components['modulus'];
-            $this->exponent = $this->publicExponent = $components['publicExponent'];
-            return true;
-        }
-
-        $this->publicExponent = $components['publicExponent'];
-
-        return true;
-    }
-
-    /**
-     * Defines the private key
-     *
-     * If phpseclib guessed a private key was a public key and loaded it as such it might be desirable to force
-     * phpseclib to treat the key as a private key. This function will do that.
-     *
-     * Do note that when a new key is loaded the index will be cleared.
-     *
-     * Returns true on success, false on failure
-     *
-     * @see self::getPublicKey()
-     * @access public
-     * @param string $key optional
-     * @param int $type optional
-     * @return bool
-     */
-    function setPrivateKey($key = false, $type = false)
-    {
-        if ($key === false && !empty($this->publicExponent)) {
-            $this->publicExponent = false;
-            return true;
-        }
-
-        $rsa = new RSA();
-        if (!$rsa->loadKey($key, $type)) {
-            return false;
-        }
-        $rsa->publicExponent = false;
-
-        // don't overwrite the old key if the new key is invalid
-        $this->loadKey($rsa);
-        return true;
-    }
-
-    /**
-     * Returns the public key
-     *
-     * The public key is only returned under two circumstances - if the private key had the public key embedded within it
-     * or if the public key was set via setPublicKey().  If the currently loaded key is supposed to be the public key this
-     * function won't return it since this library, for the most part, doesn't distinguish between public and private keys.
-     *
-     * @see self::getPublicKey()
-     * @access public
-     * @param string $key
-     * @param int $type optional
-     */
-    function getPublicKey($type = self::PUBLIC_FORMAT_PKCS8)
-    {
-        if (empty($this->modulus) || empty($this->publicExponent)) {
-            return false;
-        }
-
-        $oldFormat = $this->publicKeyFormat;
-        $this->publicKeyFormat = $type;
-        $temp = $this->_convertPublicKey($this->modulus, $this->publicExponent);
-        $this->publicKeyFormat = $oldFormat;
-        return $temp;
-    }
-
-    /**
-     * Returns the public key's fingerprint
-     *
-     * The public key's fingerprint is returned, which is equivalent to running `ssh-keygen -lf rsa.pub`. If there is
-     * no public key currently loaded, false is returned.
-     * Example output (md5): "c1:b1:30:29:d7:b8:de:6c:97:77:10:d7:46:41:63:87" (as specified by RFC 4716)
-     *
-     * @access public
-     * @param string $algorithm The hashing algorithm to be used. Valid options are 'md5' and 'sha256'. False is returned
-     * for invalid values.
-     * @return mixed
-     */
-    function getPublicKeyFingerprint($algorithm = 'md5')
-    {
-        if (empty($this->modulus) || empty($this->publicExponent)) {
-            return false;
-        }
-
-        $modulus = $this->modulus->toBytes(true);
-        $publicExponent = $this->publicExponent->toBytes(true);
-
-        $RSAPublicKey = pack('Na*Na*Na*', strlen('ssh-rsa'), 'ssh-rsa', strlen($publicExponent), $publicExponent, strlen($modulus), $modulus);
-
-        switch ($algorithm) {
-            case 'sha256':
-                $hash = new Hash('sha256');
-                $base = base64_encode($hash->hash($RSAPublicKey));
-                return substr($base, 0, strlen($base) - 1);
-            case 'md5':
-                return substr(chunk_split(md5($RSAPublicKey), 2, ':'), 0, -1);
-            default:
-                return false;
-        }
-    }
-
-    /**
-     * Returns the private key
-     *
-     * The private key is only returned if the currently loaded key contains the constituent prime numbers.
-     *
-     * @see self::getPublicKey()
-     * @access public
-     * @param string $key
-     * @param int $type optional
-     * @return mixed
-     */
-    function getPrivateKey($type = self::PUBLIC_FORMAT_PKCS1)
-    {
-        if (empty($this->primes)) {
-            return false;
-        }
-
-        $oldFormat = $this->privateKeyFormat;
-        $this->privateKeyFormat = $type;
-        $temp = $this->_convertPrivateKey($this->modulus, $this->publicExponent, $this->exponent, $this->primes, $this->exponents, $this->coefficients);
-        $this->privateKeyFormat = $oldFormat;
-        return $temp;
-    }
-
-    /**
-     * Returns a minimalistic private key
-     *
-     * Returns the private key without the prime number constituants.  Structurally identical to a public key that
-     * hasn't been set as the public key
-     *
-     * @see self::getPrivateKey()
-     * @access private
-     * @param string $key
-     * @param int $type optional
-     */
-    function _getPrivatePublicKey($mode = self::PUBLIC_FORMAT_PKCS8)
-    {
-        if (empty($this->modulus) || empty($this->exponent)) {
-            return false;
-        }
-
-        $oldFormat = $this->publicKeyFormat;
-        $this->publicKeyFormat = $mode;
-        $temp = $this->_convertPublicKey($this->modulus, $this->exponent);
-        $this->publicKeyFormat = $oldFormat;
-        return $temp;
-    }
-
-    /**
-     *  __toString() magic method
-     *
-     * @access public
-     * @return string
-     */
-    function __toString()
-    {
-        $key = $this->getPrivateKey($this->privateKeyFormat);
-        if ($key !== false) {
-            return $key;
-        }
-        $key = $this->_getPrivatePublicKey($this->publicKeyFormat);
-        return $key !== false ? $key : '';
-    }
-
-    /**
-     *  __clone() magic method
-     *
-     * @access public
-     * @return Crypt_RSA
-     */
-    function __clone()
-    {
-        $key = new RSA();
-        $key->loadKey($this);
-        return $key;
-    }
-
-    /**
-     * Generates the smallest and largest numbers requiring $bits bits
-     *
-     * @access private
-     * @param int $bits
-     * @return array
-     */
-    function _generateMinMax($bits)
-    {
-        $bytes = $bits >> 3;
-        $min = str_repeat(chr(0), $bytes);
-        $max = str_repeat(chr(0xFF), $bytes);
-        $msb = $bits & 7;
-        if ($msb) {
-            $min = chr(1 << ($msb - 1)) . $min;
-            $max = chr((1 << $msb) - 1) . $max;
-        } else {
-            $min[0] = chr(0x80);
-        }
-
-        return array(
-            'min' => new BigInteger($min, 256),
-            'max' => new BigInteger($max, 256)
-        );
-    }
-
-    /**
-     * DER-decode the length
-     *
-     * DER supports lengths up to (2**8)**127, however, we'll only support lengths up to (2**8)**4.  See
-     * {@link http://itu.int/ITU-T/studygroups/com17/languages/X.690-0207.pdf#p=13 X.690 paragraph 8.1.3} for more information.
-     *
-     * @access private
-     * @param string $string
-     * @return int
-     */
-    function _decodeLength(&$string)
-    {
-        $length = ord($this->_string_shift($string));
-        if ($length & 0x80) { // definite length, long form
-            $length&= 0x7F;
-            $temp = $this->_string_shift($string, $length);
-            list(, $length) = unpack('N', substr(str_pad($temp, 4, chr(0), STR_PAD_LEFT), -4));
-        }
-        return $length;
-    }
-
-    /**
-     * DER-encode the length
-     *
-     * DER supports lengths up to (2**8)**127, however, we'll only support lengths up to (2**8)**4.  See
-     * {@link http://itu.int/ITU-T/studygroups/com17/languages/X.690-0207.pdf#p=13 X.690 paragraph 8.1.3} for more information.
-     *
-     * @access private
-     * @param int $length
-     * @return string
-     */
-    function _encodeLength($length)
-    {
-        if ($length <= 0x7F) {
-            return chr($length);
-        }
-
-        $temp = ltrim(pack('N', $length), chr(0));
-        return pack('Ca*', 0x80 | strlen($temp), $temp);
-    }
-
-    /**
-     * String Shift
-     *
-     * Inspired by array_shift
-     *
-     * @param string $string
-     * @param int $index
-     * @return string
-     * @access private
-     */
-    function _string_shift(&$string, $index = 1)
-    {
-        $substr = substr($string, 0, $index);
-        $string = substr($string, $index);
-        return $substr;
-    }
-
-    /**
-     * Determines the private key format
-     *
-     * @see self::createKey()
-     * @access public
-     * @param int $format
-     */
-    function setPrivateKeyFormat($format)
-    {
-        $this->privateKeyFormat = $format;
-    }
-
-    /**
-     * Determines the public key format
-     *
-     * @see self::createKey()
-     * @access public
-     * @param int $format
-     */
-    function setPublicKeyFormat($format)
-    {
-        $this->publicKeyFormat = $format;
-    }
-
-    /**
-     * Determines which hashing function should be used
-     *
-     * Used with signature production / verification and (if the encryption mode is self::ENCRYPTION_OAEP) encryption and
-     * decryption.  If $hash isn't supported, sha1 is used.
-     *
-     * @access public
-     * @param string $hash
-     */
-    function setHash($hash)
-    {
-        // \phpseclib\Crypt\Hash supports algorithms that PKCS#1 doesn't support.  md5-96 and sha1-96, for example.
-        switch ($hash) {
-            case 'md2':
-            case 'md5':
-            case 'sha1':
-            case 'sha256':
-            case 'sha384':
-            case 'sha512':
-                $this->hash = new Hash($hash);
-                $this->hashName = $hash;
-                break;
-            default:
-                $this->hash = new Hash('sha1');
-                $this->hashName = 'sha1';
-        }
-        $this->hLen = $this->hash->getLength();
-    }
-
-    /**
-     * Determines which hashing function should be used for the mask generation function
-     *
-     * The mask generation function is used by self::ENCRYPTION_OAEP and self::SIGNATURE_PSS and although it's
-     * best if Hash and MGFHash are set to the same thing this is not a requirement.
-     *
-     * @access public
-     * @param string $hash
-     */
-    function setMGFHash($hash)
-    {
-        // \phpseclib\Crypt\Hash supports algorithms that PKCS#1 doesn't support.  md5-96 and sha1-96, for example.
-        switch ($hash) {
-            case 'md2':
-            case 'md5':
-            case 'sha1':
-            case 'sha256':
-            case 'sha384':
-            case 'sha512':
-                $this->mgfHash = new Hash($hash);
-                break;
-            default:
-                $this->mgfHash = new Hash('sha1');
-        }
-        $this->mgfHLen = $this->mgfHash->getLength();
-    }
-
-    /**
-     * Determines the salt length
-     *
-     * To quote from {@link http://tools.ietf.org/html/rfc3447#page-38 RFC3447#page-38}:
-     *
-     *    Typical salt lengths in octets are hLen (the length of the output
-     *    of the hash function Hash) and 0.
-     *
-     * @access public
-     * @param int $format
-     */
-    function setSaltLength($sLen)
-    {
-        $this->sLen = $sLen;
-    }
-
-    /**
-     * Integer-to-Octet-String primitive
-     *
-     * See {@link http://tools.ietf.org/html/rfc3447#section-4.1 RFC3447#section-4.1}.
-     *
-     * @access private
-     * @param \phpseclib\Math\BigInteger $x
-     * @param int $xLen
-     * @return string
-     */
-    function _i2osp($x, $xLen)
-    {
-        $x = $x->toBytes();
-        if (strlen($x) > $xLen) {
-            user_error('Integer too large');
-            return false;
-        }
-        return str_pad($x, $xLen, chr(0), STR_PAD_LEFT);
-    }
-
-    /**
-     * Octet-String-to-Integer primitive
-     *
-     * See {@link http://tools.ietf.org/html/rfc3447#section-4.2 RFC3447#section-4.2}.
-     *
-     * @access private
-     * @param string $x
-     * @return \phpseclib\Math\BigInteger
-     */
-    function _os2ip($x)
-    {
-        return new BigInteger($x, 256);
-    }
-
-    /**
-     * Exponentiate with or without Chinese Remainder Theorem
-     *
-     * See {@link http://tools.ietf.org/html/rfc3447#section-5.1.1 RFC3447#section-5.1.2}.
-     *
-     * @access private
-     * @param \phpseclib\Math\BigInteger $x
-     * @return \phpseclib\Math\BigInteger
-     */
-    function _exponentiate($x)
-    {
-        switch (true) {
-            case empty($this->primes):
-            case $this->primes[1]->equals($this->zero):
-            case empty($this->coefficients):
-            case $this->coefficients[2]->equals($this->zero):
-            case empty($this->exponents):
-            case $this->exponents[1]->equals($this->zero):
-                return $x->modPow($this->exponent, $this->modulus);
-        }
-
-        $num_primes = count($this->primes);
-
-        if (defined('CRYPT_RSA_DISABLE_BLINDING')) {
-            $m_i = array(
-                1 => $x->modPow($this->exponents[1], $this->primes[1]),
-                2 => $x->modPow($this->exponents[2], $this->primes[2])
-            );
-            $h = $m_i[1]->subtract($m_i[2]);
-            $h = $h->multiply($this->coefficients[2]);
-            list(, $h) = $h->divide($this->primes[1]);
-            $m = $m_i[2]->add($h->multiply($this->primes[2]));
-
-            $r = $this->primes[1];
-            for ($i = 3; $i <= $num_primes; $i++) {
-                $m_i = $x->modPow($this->exponents[$i], $this->primes[$i]);
-
-                $r = $r->multiply($this->primes[$i - 1]);
-
-                $h = $m_i->subtract($m);
-                $h = $h->multiply($this->coefficients[$i]);
-                list(, $h) = $h->divide($this->primes[$i]);
-
-                $m = $m->add($r->multiply($h));
-            }
-        } else {
-            $smallest = $this->primes[1];
-            for ($i = 2; $i <= $num_primes; $i++) {
-                if ($smallest->compare($this->primes[$i]) > 0) {
-                    $smallest = $this->primes[$i];
-                }
-            }
-
-            $one = new BigInteger(1);
-
-            $r = $one->random($one, $smallest->subtract($one));
-
-            $m_i = array(
-                1 => $this->_blind($x, $r, 1),
-                2 => $this->_blind($x, $r, 2)
-            );
-            $h = $m_i[1]->subtract($m_i[2]);
-            $h = $h->multiply($this->coefficients[2]);
-            list(, $h) = $h->divide($this->primes[1]);
-            $m = $m_i[2]->add($h->multiply($this->primes[2]));
-
-            $r = $this->primes[1];
-            for ($i = 3; $i <= $num_primes; $i++) {
-                $m_i = $this->_blind($x, $r, $i);
-
-                $r = $r->multiply($this->primes[$i - 1]);
-
-                $h = $m_i->subtract($m);
-                $h = $h->multiply($this->coefficients[$i]);
-                list(, $h) = $h->divide($this->primes[$i]);
-
-                $m = $m->add($r->multiply($h));
-            }
-        }
-
-        return $m;
-    }
-
-    /**
-     * Performs RSA Blinding
-     *
-     * Protects against timing attacks by employing RSA Blinding.
-     * Returns $x->modPow($this->exponents[$i], $this->primes[$i])
-     *
-     * @access private
-     * @param \phpseclib\Math\BigInteger $x
-     * @param \phpseclib\Math\BigInteger $r
-     * @param int $i
-     * @return \phpseclib\Math\BigInteger
-     */
-    function _blind($x, $r, $i)
-    {
-        $x = $x->multiply($r->modPow($this->publicExponent, $this->primes[$i]));
-        $x = $x->modPow($this->exponents[$i], $this->primes[$i]);
-
-        $r = $r->modInverse($this->primes[$i]);
-        $x = $x->multiply($r);
-        list(, $x) = $x->divide($this->primes[$i]);
-
-        return $x;
-    }
-
-    /**
-     * Performs blinded RSA equality testing
-     *
-     * Protects against a particular type of timing attack described.
-     *
-     * See {@link http://codahale.com/a-lesson-in-timing-attacks/ A Lesson In Timing Attacks (or, Don't use MessageDigest.isEquals)}
-     *
-     * Thanks for the heads up singpolyma!
-     *
-     * @access private
-     * @param string $x
-     * @param string $y
-     * @return bool
-     */
-    function _equals($x, $y)
-    {
-        if (strlen($x) != strlen($y)) {
-            return false;
-        }
-
-        $result = 0;
-        for ($i = 0; $i < strlen($x); $i++) {
-            $result |= ord($x[$i]) ^ ord($y[$i]);
-        }
-
-        return $result == 0;
-    }
-
-    /**
-     * RSAEP
-     *
-     * See {@link http://tools.ietf.org/html/rfc3447#section-5.1.1 RFC3447#section-5.1.1}.
-     *
-     * @access private
-     * @param \phpseclib\Math\BigInteger $m
-     * @return \phpseclib\Math\BigInteger
-     */
-    function _rsaep($m)
-    {
-        if ($m->compare($this->zero) < 0 || $m->compare($this->modulus) > 0) {
-            user_error('Message representative out of range');
-            return false;
-        }
-        return $this->_exponentiate($m);
-    }
-
-    /**
-     * RSADP
-     *
-     * See {@link http://tools.ietf.org/html/rfc3447#section-5.1.2 RFC3447#section-5.1.2}.
-     *
-     * @access private
-     * @param \phpseclib\Math\BigInteger $c
-     * @return \phpseclib\Math\BigInteger
-     */
-    function _rsadp($c)
-    {
-        if ($c->compare($this->zero) < 0 || $c->compare($this->modulus) > 0) {
-            user_error('Ciphertext representative out of range');
-            return false;
-        }
-        return $this->_exponentiate($c);
-    }
-
-    /**
-     * RSASP1
-     *
-     * See {@link http://tools.ietf.org/html/rfc3447#section-5.2.1 RFC3447#section-5.2.1}.
-     *
-     * @access private
-     * @param \phpseclib\Math\BigInteger $m
-     * @return \phpseclib\Math\BigInteger
-     */
-    function _rsasp1($m)
-    {
-        if ($m->compare($this->zero) < 0 || $m->compare($this->modulus) > 0) {
-            user_error('Message representative out of range');
-            return false;
-        }
-        return $this->_exponentiate($m);
-    }
-
-    /**
-     * RSAVP1
-     *
-     * See {@link http://tools.ietf.org/html/rfc3447#section-5.2.2 RFC3447#section-5.2.2}.
-     *
-     * @access private
-     * @param \phpseclib\Math\BigInteger $s
-     * @return \phpseclib\Math\BigInteger
-     */
-    function _rsavp1($s)
-    {
-        if ($s->compare($this->zero) < 0 || $s->compare($this->modulus) > 0) {
-            user_error('Signature representative out of range');
-            return false;
-        }
-        return $this->_exponentiate($s);
-    }
-
-    /**
-     * MGF1
-     *
-     * See {@link http://tools.ietf.org/html/rfc3447#appendix-B.2.1 RFC3447#appendix-B.2.1}.
-     *
-     * @access private
-     * @param string $mgfSeed
-     * @param int $mgfLen
-     * @return string
-     */
-    function _mgf1($mgfSeed, $maskLen)
-    {
-        // if $maskLen would yield strings larger than 4GB, PKCS#1 suggests a "Mask too long" error be output.
-
-        $t = '';
-        $count = ceil($maskLen / $this->mgfHLen);
-        for ($i = 0; $i < $count; $i++) {
-            $c = pack('N', $i);
-            $t.= $this->mgfHash->hash($mgfSeed . $c);
-        }
-
-        return substr($t, 0, $maskLen);
-    }
-
-    /**
-     * RSAES-OAEP-ENCRYPT
-     *
-     * See {@link http://tools.ietf.org/html/rfc3447#section-7.1.1 RFC3447#section-7.1.1} and
-     * {http://en.wikipedia.org/wiki/Optimal_Asymmetric_Encryption_Padding OAES}.
-     *
-     * @access private
-     * @param string $m
-     * @param string $l
-     * @return string
-     */
-    function _rsaes_oaep_encrypt($m, $l = '')
-    {
-        $mLen = strlen($m);
-
-        // Length checking
-
-        // if $l is larger than two million terrabytes and you're using sha1, PKCS#1 suggests a "Label too long" error
-        // be output.
-
-        if ($mLen > $this->k - 2 * $this->hLen - 2) {
-            user_error('Message too long');
-            return false;
-        }
-
-        // EME-OAEP encoding
-
-        $lHash = $this->hash->hash($l);
-        $ps = str_repeat(chr(0), $this->k - $mLen - 2 * $this->hLen - 2);
-        $db = $lHash . $ps . chr(1) . $m;
-        $seed = Random::string($this->hLen);
-        $dbMask = $this->_mgf1($seed, $this->k - $this->hLen - 1);
-        $maskedDB = $db ^ $dbMask;
-        $seedMask = $this->_mgf1($maskedDB, $this->hLen);
-        $maskedSeed = $seed ^ $seedMask;
-        $em = chr(0) . $maskedSeed . $maskedDB;
-
-        // RSA encryption
-
-        $m = $this->_os2ip($em);
-        $c = $this->_rsaep($m);
-        $c = $this->_i2osp($c, $this->k);
-
-        // Output the ciphertext C
-
-        return $c;
-    }
-
-    /**
-     * RSAES-OAEP-DECRYPT
-     *
-     * See {@link http://tools.ietf.org/html/rfc3447#section-7.1.2 RFC3447#section-7.1.2}.  The fact that the error
-     * messages aren't distinguishable from one another hinders debugging, but, to quote from RFC3447#section-7.1.2:
-     *
-     *    Note.  Care must be taken to ensure that an opponent cannot
-     *    distinguish the different error conditions in Step 3.g, whether by
-     *    error message or timing, or, more generally, learn partial
-     *    information about the encoded message EM.  Otherwise an opponent may
-     *    be able to obtain useful information about the decryption of the
-     *    ciphertext C, leading to a chosen-ciphertext attack such as the one
-     *    observed by Manger [36].
-     *
-     * As for $l...  to quote from {@link http://tools.ietf.org/html/rfc3447#page-17 RFC3447#page-17}:
-     *
-     *    Both the encryption and the decryption operations of RSAES-OAEP take
-     *    the value of a label L as input.  In this version of PKCS #1, L is
-     *    the empty string; other uses of the label are outside the scope of
-     *    this document.
-     *
-     * @access private
-     * @param string $c
-     * @param string $l
-     * @return string
-     */
-    function _rsaes_oaep_decrypt($c, $l = '')
-    {
-        // Length checking
-
-        // if $l is larger than two million terrabytes and you're using sha1, PKCS#1 suggests a "Label too long" error
-        // be output.
-
-        if (strlen($c) != $this->k || $this->k < 2 * $this->hLen + 2) {
-            user_error('Decryption error');
-            return false;
-        }
-
-        // RSA decryption
-
-        $c = $this->_os2ip($c);
-        $m = $this->_rsadp($c);
-        if ($m === false) {
-            user_error('Decryption error');
-            return false;
-        }
-        $em = $this->_i2osp($m, $this->k);
-
-        // EME-OAEP decoding
-
-        $lHash = $this->hash->hash($l);
-        $y = ord($em[0]);
-        $maskedSeed = substr($em, 1, $this->hLen);
-        $maskedDB = substr($em, $this->hLen + 1);
-        $seedMask = $this->_mgf1($maskedDB, $this->hLen);
-        $seed = $maskedSeed ^ $seedMask;
-        $dbMask = $this->_mgf1($seed, $this->k - $this->hLen - 1);
-        $db = $maskedDB ^ $dbMask;
-        $lHash2 = substr($db, 0, $this->hLen);
-        $m = substr($db, $this->hLen);
-        if (!$this->_equals($lHash, $lHash2)) {
-            user_error('Decryption error');
-            return false;
-        }
-        $m = ltrim($m, chr(0));
-        if (ord($m[0]) != 1) {
-            user_error('Decryption error');
-            return false;
-        }
-
-        // Output the message M
-
-        return substr($m, 1);
-    }
-
-    /**
-     * Raw Encryption / Decryption
-     *
-     * Doesn't use padding and is not recommended.
-     *
-     * @access private
-     * @param string $m
-     * @return string
-     */
-    function _raw_encrypt($m)
-    {
-        $temp = $this->_os2ip($m);
-        $temp = $this->_rsaep($temp);
-        return  $this->_i2osp($temp, $this->k);
-    }
-
-    /**
-     * RSAES-PKCS1-V1_5-ENCRYPT
-     *
-     * See {@link http://tools.ietf.org/html/rfc3447#section-7.2.1 RFC3447#section-7.2.1}.
-     *
-     * @access private
-     * @param string $m
-     * @return string
-     */
-    function _rsaes_pkcs1_v1_5_encrypt($m)
-    {
-        $mLen = strlen($m);
-
-        // Length checking
-
-        if ($mLen > $this->k - 11) {
-            user_error('Message too long');
-            return false;
-        }
-
-        // EME-PKCS1-v1_5 encoding
-
-        $psLen = $this->k - $mLen - 3;
-        $ps = '';
-        while (strlen($ps) != $psLen) {
-            $temp = Random::string($psLen - strlen($ps));
-            $temp = str_replace("\x00", '', $temp);
-            $ps.= $temp;
-        }
-        $type = 2;
-        // see the comments of _rsaes_pkcs1_v1_5_decrypt() to understand why this is being done
-        if (defined('CRYPT_RSA_PKCS15_COMPAT') && (!isset($this->publicExponent) || $this->exponent !== $this->publicExponent)) {
-            $type = 1;
-            // "The padding string PS shall consist of k-3-||D|| octets. ... for block type 01, they shall have value FF"
-            $ps = str_repeat("\xFF", $psLen);
-        }
-        $em = chr(0) . chr($type) . $ps . chr(0) . $m;
-
-        // RSA encryption
-        $m = $this->_os2ip($em);
-        $c = $this->_rsaep($m);
-        $c = $this->_i2osp($c, $this->k);
-
-        // Output the ciphertext C
-
-        return $c;
-    }
-
-    /**
-     * RSAES-PKCS1-V1_5-DECRYPT
-     *
-     * See {@link http://tools.ietf.org/html/rfc3447#section-7.2.2 RFC3447#section-7.2.2}.
-     *
-     * For compatibility purposes, this function departs slightly from the description given in RFC3447.
-     * The reason being that RFC2313#section-8.1 (PKCS#1 v1.5) states that ciphertext's encrypted by the
-     * private key should have the second byte set to either 0 or 1 and that ciphertext's encrypted by the
-     * public key should have the second byte set to 2.  In RFC3447 (PKCS#1 v2.1), the second byte is supposed
-     * to be 2 regardless of which key is used.  For compatibility purposes, we'll just check to make sure the
-     * second byte is 2 or less.  If it is, we'll accept the decrypted string as valid.
-     *
-     * As a consequence of this, a private key encrypted ciphertext produced with \phpseclib\Crypt\RSA may not decrypt
-     * with a strictly PKCS#1 v1.5 compliant RSA implementation.  Public key encrypted ciphertext's should but
-     * not private key encrypted ciphertext's.
-     *
-     * @access private
-     * @param string $c
-     * @return string
-     */
-    function _rsaes_pkcs1_v1_5_decrypt($c)
-    {
-        // Length checking
-
-        if (strlen($c) != $this->k) { // or if k < 11
-            user_error('Decryption error');
-            return false;
-        }
-
-        // RSA decryption
-
-        $c = $this->_os2ip($c);
-        $m = $this->_rsadp($c);
-
-        if ($m === false) {
-            user_error('Decryption error');
-            return false;
-        }
-        $em = $this->_i2osp($m, $this->k);
-
-        // EME-PKCS1-v1_5 decoding
-
-        if (ord($em[0]) != 0 || ord($em[1]) > 2) {
-            user_error('Decryption error');
-            return false;
-        }
-
-        $ps = substr($em, 2, strpos($em, chr(0), 2) - 2);
-        $m = substr($em, strlen($ps) + 3);
-
-        if (strlen($ps) < 8) {
-            user_error('Decryption error');
-            return false;
-        }
-
-        // Output M
-
-        return $m;
-    }
-
-    /**
-     * EMSA-PSS-ENCODE
-     *
-     * See {@link http://tools.ietf.org/html/rfc3447#section-9.1.1 RFC3447#section-9.1.1}.
-     *
-     * @access private
-     * @param string $m
-     * @param int $emBits
-     */
-    function _emsa_pss_encode($m, $emBits)
-    {
-        // if $m is larger than two million terrabytes and you're using sha1, PKCS#1 suggests a "Label too long" error
-        // be output.
-
-        $emLen = ($emBits + 1) >> 3; // ie. ceil($emBits / 8)
-        $sLen = $this->sLen !== null ? $this->sLen : $this->hLen;
-
-        $mHash = $this->hash->hash($m);
-        if ($emLen < $this->hLen + $sLen + 2) {
-            user_error('Encoding error');
-            return false;
-        }
-
-        $salt = Random::string($sLen);
-        $m2 = "\0\0\0\0\0\0\0\0" . $mHash . $salt;
-        $h = $this->hash->hash($m2);
-        $ps = str_repeat(chr(0), $emLen - $sLen - $this->hLen - 2);
-        $db = $ps . chr(1) . $salt;
-        $dbMask = $this->_mgf1($h, $emLen - $this->hLen - 1);
-        $maskedDB = $db ^ $dbMask;
-        $maskedDB[0] = ~chr(0xFF << ($emBits & 7)) & $maskedDB[0];
-        $em = $maskedDB . $h . chr(0xBC);
-
-        return $em;
-    }
-
-    /**
-     * EMSA-PSS-VERIFY
-     *
-     * See {@link http://tools.ietf.org/html/rfc3447#section-9.1.2 RFC3447#section-9.1.2}.
-     *
-     * @access private
-     * @param string $m
-     * @param string $em
-     * @param int $emBits
-     * @return string
-     */
-    function _emsa_pss_verify($m, $em, $emBits)
-    {
-        // if $m is larger than two million terrabytes and you're using sha1, PKCS#1 suggests a "Label too long" error
-        // be output.
-
-        $emLen = ($emBits + 1) >> 3; // ie. ceil($emBits / 8);
-        $sLen = $this->sLen !== null ? $this->sLen : $this->hLen;
-
-        $mHash = $this->hash->hash($m);
-        if ($emLen < $this->hLen + $sLen + 2) {
-            return false;
-        }
-
-        if ($em[strlen($em) - 1] != chr(0xBC)) {
-            return false;
-        }
-
-        $maskedDB = substr($em, 0, -$this->hLen - 1);
-        $h = substr($em, -$this->hLen - 1, $this->hLen);
-        $temp = chr(0xFF << ($emBits & 7));
-        if ((~$maskedDB[0] & $temp) != $temp) {
-            return false;
-        }
-        $dbMask = $this->_mgf1($h, $emLen - $this->hLen - 1);
-        $db = $maskedDB ^ $dbMask;
-        $db[0] = ~chr(0xFF << ($emBits & 7)) & $db[0];
-        $temp = $emLen - $this->hLen - $sLen - 2;
-        if (substr($db, 0, $temp) != str_repeat(chr(0), $temp) || ord($db[$temp]) != 1) {
-            return false;
-        }
-        $salt = substr($db, $temp + 1); // should be $sLen long
-        $m2 = "\0\0\0\0\0\0\0\0" . $mHash . $salt;
-        $h2 = $this->hash->hash($m2);
-        return $this->_equals($h, $h2);
-    }
-
-    /**
-     * RSASSA-PSS-SIGN
-     *
-     * See {@link http://tools.ietf.org/html/rfc3447#section-8.1.1 RFC3447#section-8.1.1}.
-     *
-     * @access private
-     * @param string $m
-     * @return string
-     */
-    function _rsassa_pss_sign($m)
-    {
-        // EMSA-PSS encoding
-
-        $em = $this->_emsa_pss_encode($m, 8 * $this->k - 1);
-
-        // RSA signature
-
-        $m = $this->_os2ip($em);
-        $s = $this->_rsasp1($m);
-        $s = $this->_i2osp($s, $this->k);
-
-        // Output the signature S
-
-        return $s;
-    }
-
-    /**
-     * RSASSA-PSS-VERIFY
-     *
-     * See {@link http://tools.ietf.org/html/rfc3447#section-8.1.2 RFC3447#section-8.1.2}.
-     *
-     * @access private
-     * @param string $m
-     * @param string $s
-     * @return string
-     */
-    function _rsassa_pss_verify($m, $s)
-    {
-        // Length checking
-
-        if (strlen($s) != $this->k) {
-            user_error('Invalid signature');
-            return false;
-        }
-
-        // RSA verification
-
-        $modBits = 8 * $this->k;
-
-        $s2 = $this->_os2ip($s);
-        $m2 = $this->_rsavp1($s2);
-        if ($m2 === false) {
-            user_error('Invalid signature');
-            return false;
-        }
-        $em = $this->_i2osp($m2, $modBits >> 3);
-        if ($em === false) {
-            user_error('Invalid signature');
-            return false;
-        }
-
-        // EMSA-PSS verification
-
-        return $this->_emsa_pss_verify($m, $em, $modBits - 1);
-    }
-
-    /**
-     * EMSA-PKCS1-V1_5-ENCODE
-     *
-     * See {@link http://tools.ietf.org/html/rfc3447#section-9.2 RFC3447#section-9.2}.
-     *
-     * @access private
-     * @param string $m
-     * @param int $emLen
-     * @return string
-     */
-    function _emsa_pkcs1_v1_5_encode($m, $emLen)
-    {
-        $h = $this->hash->hash($m);
-        if ($h === false) {
-            return false;
-        }
-
-        // see http://tools.ietf.org/html/rfc3447#page-43
-        switch ($this->hashName) {
-            case 'md2':
-                $t = pack('H*', '3020300c06082a864886f70d020205000410');
-                break;
-            case 'md5':
-                $t = pack('H*', '3020300c06082a864886f70d020505000410');
-                break;
-            case 'sha1':
-                $t = pack('H*', '3021300906052b0e03021a05000414');
-                break;
-            case 'sha256':
-                $t = pack('H*', '3031300d060960864801650304020105000420');
-                break;
-            case 'sha384':
-                $t = pack('H*', '3041300d060960864801650304020205000430');
-                break;
-            case 'sha512':
-                $t = pack('H*', '3051300d060960864801650304020305000440');
-        }
-        $t.= $h;
-        $tLen = strlen($t);
-
-        if ($emLen < $tLen + 11) {
-            user_error('Intended encoded message length too short');
-            return false;
-        }
-
-        $ps = str_repeat(chr(0xFF), $emLen - $tLen - 3);
-
-        $em = "\0\1$ps\0$t";
-
-        return $em;
-    }
-
-    /**
-     * RSASSA-PKCS1-V1_5-SIGN
-     *
-     * See {@link http://tools.ietf.org/html/rfc3447#section-8.2.1 RFC3447#section-8.2.1}.
-     *
-     * @access private
-     * @param string $m
-     * @return string
-     */
-    function _rsassa_pkcs1_v1_5_sign($m)
-    {
-        // EMSA-PKCS1-v1_5 encoding
-
-        $em = $this->_emsa_pkcs1_v1_5_encode($m, $this->k);
-        if ($em === false) {
-            user_error('RSA modulus too short');
-            return false;
-        }
-
-        // RSA signature
-
-        $m = $this->_os2ip($em);
-        $s = $this->_rsasp1($m);
-        $s = $this->_i2osp($s, $this->k);
-
-        // Output the signature S
-
-        return $s;
-    }
-
-    /**
-     * RSASSA-PKCS1-V1_5-VERIFY
-     *
-     * See {@link http://tools.ietf.org/html/rfc3447#section-8.2.2 RFC3447#section-8.2.2}.
-     *
-     * @access private
-     * @param string $m
-     * @return string
-     */
-    function _rsassa_pkcs1_v1_5_verify($m, $s)
-    {
-        // Length checking
-
-        if (strlen($s) != $this->k) {
-            user_error('Invalid signature');
-            return false;
-        }
-
-        // RSA verification
-
-        $s = $this->_os2ip($s);
-        $m2 = $this->_rsavp1($s);
-        if ($m2 === false) {
-            user_error('Invalid signature');
-            return false;
-        }
-        $em = $this->_i2osp($m2, $this->k);
-        if ($em === false) {
-            user_error('Invalid signature');
-            return false;
-        }
-
-        // EMSA-PKCS1-v1_5 encoding
-
-        $em2 = $this->_emsa_pkcs1_v1_5_encode($m, $this->k);
-        if ($em2 === false) {
-            user_error('RSA modulus too short');
-            return false;
-        }
-
-        // Compare
-        return $this->_equals($em, $em2);
-    }
-
-    /**
-     * Set Encryption Mode
-     *
-     * Valid values include self::ENCRYPTION_OAEP and self::ENCRYPTION_PKCS1.
-     *
-     * @access public
-     * @param int $mode
-     */
-    function setEncryptionMode($mode)
-    {
-        $this->encryptionMode = $mode;
-    }
-
-    /**
-     * Set Signature Mode
-     *
-     * Valid values include self::SIGNATURE_PSS and self::SIGNATURE_PKCS1
-     *
-     * @access public
-     * @param int $mode
-     */
-    function setSignatureMode($mode)
-    {
-        $this->signatureMode = $mode;
-    }
-
-    /**
-     * Set public key comment.
-     *
-     * @access public
-     * @param string $comment
-     */
-    function setComment($comment)
-    {
-        $this->comment = $comment;
-    }
-
-    /**
-     * Get public key comment.
-     *
-     * @access public
-     * @return string
-     */
-    function getComment()
-    {
-        return $this->comment;
-    }
-
-    /**
-     * Encryption
-     *
-     * Both self::ENCRYPTION_OAEP and self::ENCRYPTION_PKCS1 both place limits on how long $plaintext can be.
-     * If $plaintext exceeds those limits it will be broken up so that it does and the resultant ciphertext's will
-     * be concatenated together.
-     *
-     * @see self::decrypt()
-     * @access public
-     * @param string $plaintext
-     * @return string
-     */
-    function encrypt($plaintext)
-    {
-        switch ($this->encryptionMode) {
-            case self::ENCRYPTION_NONE:
-                $plaintext = str_split($plaintext, $this->k);
-                $ciphertext = '';
-                foreach ($plaintext as $m) {
-                    $ciphertext.= $this->_raw_encrypt($m);
-                }
-                return $ciphertext;
-            case self::ENCRYPTION_PKCS1:
-                $length = $this->k - 11;
-                if ($length <= 0) {
-                    return false;
-                }
-
-                $plaintext = str_split($plaintext, $length);
-                $ciphertext = '';
-                foreach ($plaintext as $m) {
-                    $ciphertext.= $this->_rsaes_pkcs1_v1_5_encrypt($m);
-                }
-                return $ciphertext;
-            //case self::ENCRYPTION_OAEP:
-            default:
-                $length = $this->k - 2 * $this->hLen - 2;
-                if ($length <= 0) {
-                    return false;
-                }
-
-                $plaintext = str_split($plaintext, $length);
-                $ciphertext = '';
-                foreach ($plaintext as $m) {
-                    $ciphertext.= $this->_rsaes_oaep_encrypt($m);
-                }
-                return $ciphertext;
-        }
-    }
-
-    /**
-     * Decryption
-     *
-     * @see self::encrypt()
-     * @access public
-     * @param string $plaintext
-     * @return string
-     */
-    function decrypt($ciphertext)
-    {
-        if ($this->k <= 0) {
-            return false;
-        }
-
-        $ciphertext = str_split($ciphertext, $this->k);
-        $ciphertext[count($ciphertext) - 1] = str_pad($ciphertext[count($ciphertext) - 1], $this->k, chr(0), STR_PAD_LEFT);
-
-        $plaintext = '';
-
-        switch ($this->encryptionMode) {
-            case self::ENCRYPTION_NONE:
-                $decrypt = '_raw_encrypt';
-                break;
-            case self::ENCRYPTION_PKCS1:
-                $decrypt = '_rsaes_pkcs1_v1_5_decrypt';
-                break;
-            //case self::ENCRYPTION_OAEP:
-            default:
-                $decrypt = '_rsaes_oaep_decrypt';
-        }
-
-        foreach ($ciphertext as $c) {
-            $temp = $this->$decrypt($c);
-            if ($temp === false) {
-                return false;
-            }
-            $plaintext.= $temp;
-        }
-
-        return $plaintext;
-    }
-
-    /**
-     * Create a signature
-     *
-     * @see self::verify()
-     * @access public
-     * @param string $message
-     * @return string
-     */
-    function sign($message)
-    {
-        if (empty($this->modulus) || empty($this->exponent)) {
-            return false;
-        }
-
-        switch ($this->signatureMode) {
-            case self::SIGNATURE_PKCS1:
-                return $this->_rsassa_pkcs1_v1_5_sign($message);
-            //case self::SIGNATURE_PSS:
-            default:
-                return $this->_rsassa_pss_sign($message);
-        }
-    }
-
-    /**
-     * Verifies a signature
-     *
-     * @see self::sign()
-     * @access public
-     * @param string $message
-     * @param string $signature
-     * @return bool
-     */
-    function verify($message, $signature)
-    {
-        if (empty($this->modulus) || empty($this->exponent)) {
-            return false;
-        }
-
-        switch ($this->signatureMode) {
-            case self::SIGNATURE_PKCS1:
-                return $this->_rsassa_pkcs1_v1_5_verify($message, $signature);
-            //case self::SIGNATURE_PSS:
-            default:
-                return $this->_rsassa_pss_verify($message, $signature);
-        }
-    }
-
-    /**
-     * Extract raw BER from Base64 encoding
-     *
-     * @access private
-     * @param string $str
-     * @return string
-     */
-    function _extractBER($str)
-    {
-        /* X.509 certs are assumed to be base64 encoded but sometimes they'll have additional things in them
-         * above and beyond the ceritificate.
-         * ie. some may have the following preceding the -----BEGIN CERTIFICATE----- line:
-         *
-         * Bag Attributes
-         *     localKeyID: 01 00 00 00
-         * subject=/O=organization/OU=org unit/CN=common name
-         * issuer=/O=organization/CN=common name
-         */
-        $temp = preg_replace('#.*?^-+[^-]+-+[\r\n ]*$#ms', '', $str, 1);
-        // remove the -----BEGIN CERTIFICATE----- and -----END CERTIFICATE----- stuff
-        $temp = preg_replace('#-+[^-]+-+#', '', $temp);
-        // remove new lines
-        $temp = str_replace(array("\r", "\n", ' '), '', $temp);
-        $temp = preg_match('#^[a-zA-Z\d/+]*={0,2}$#', $temp) ? base64_decode($temp) : false;
-        return $temp != false ? $temp : $str;
-    }
-}
diff --git a/wiki/vendor/phpseclib/phpseclib/phpseclib/Crypt/Random.php b/wiki/vendor/phpseclib/phpseclib/phpseclib/Crypt/Random.php
deleted file mode 100644
index 01e34cc..0000000
--- a/wiki/vendor/phpseclib/phpseclib/phpseclib/Crypt/Random.php
+++ /dev/null
@@ -1,274 +0,0 @@
-<?php
-
-/**
- * Random Number Generator
- *
- * PHP version 5
- *
- * Here's a short example of how to use this library:
- * <code>
- * <?php
- *    include 'vendor/autoload.php';
- *
- *    echo bin2hex(\phpseclib\Crypt\Random::string(8));
- * ?>
- * </code>
- *
- * @category  Crypt
- * @package   Random
- * @author    Jim Wigginton <terrafrost@php.net>
- * @copyright 2007 Jim Wigginton
- * @license   http://www.opensource.org/licenses/mit-license.html  MIT License
- * @link      http://phpseclib.sourceforge.net
- */
-
-namespace phpseclib\Crypt;
-
-/**
- * Pure-PHP Random Number Generator
- *
- * @package Random
- * @author  Jim Wigginton <terrafrost@php.net>
- * @access  public
- */
-class Random
-{
-    /**
-     * Generate a random string.
-     *
-     * Although microoptimizations are generally discouraged as they impair readability this function is ripe with
-     * microoptimizations because this function has the potential of being called a huge number of times.
-     * eg. for RSA key generation.
-     *
-     * @param int $length
-     * @return string
-     */
-    static function string($length)
-    {
-        if (!$length) {
-            return '';
-        }
-
-        if (version_compare(PHP_VERSION, '7.0.0', '>=')) {
-            try {
-                return \random_bytes($length);
-            } catch (\Throwable $e) {
-                // If a sufficient source of randomness is unavailable, random_bytes() will throw an
-                // object that implements the Throwable interface (Exception, TypeError, Error).
-                // We don't actually need to do anything here. The string() method should just continue
-                // as normal. Note, however, that if we don't have a sufficient source of randomness for
-                // random_bytes(), most of the other calls here will fail too, so we'll end up using
-                // the PHP implementation.
-            }
-        }
-
-        if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
-            // method 1. prior to PHP 5.3 this would call rand() on windows hence the function_exists('class_alias') call.
-            // ie. class_alias is a function that was introduced in PHP 5.3
-            if (extension_loaded('mcrypt') && function_exists('class_alias')) {
-                return @mcrypt_create_iv($length);
-            }
-            // method 2. openssl_random_pseudo_bytes was introduced in PHP 5.3.0 but prior to PHP 5.3.4 there was,
-            // to quote <http://php.net/ChangeLog-5.php#5.3.4>, "possible blocking behavior". as of 5.3.4
-            // openssl_random_pseudo_bytes and mcrypt_create_iv do the exact same thing on Windows. ie. they both
-            // call php_win32_get_random_bytes():
-            //
-            // https://github.com/php/php-src/blob/7014a0eb6d1611151a286c0ff4f2238f92c120d6/ext/openssl/openssl.c#L5008
-            // https://github.com/php/php-src/blob/7014a0eb6d1611151a286c0ff4f2238f92c120d6/ext/mcrypt/mcrypt.c#L1392
-            //
-            // php_win32_get_random_bytes() is defined thusly:
-            //
-            // https://github.com/php/php-src/blob/7014a0eb6d1611151a286c0ff4f2238f92c120d6/win32/winutil.c#L80
-            //
-            // we're calling it, all the same, in the off chance that the mcrypt extension is not available
-            if (extension_loaded('openssl') && version_compare(PHP_VERSION, '5.3.4', '>=')) {
-                return openssl_random_pseudo_bytes($length);
-            }
-        } else {
-            // method 1. the fastest
-            if (extension_loaded('openssl')) {
-                return openssl_random_pseudo_bytes($length);
-            }
-            // method 2
-            static $fp = true;
-            if ($fp === true) {
-                // warning's will be output unles the error suppression operator is used. errors such as
-                // "open_basedir restriction in effect", "Permission denied", "No such file or directory", etc.
-                $fp = @fopen('/dev/urandom', 'rb');
-            }
-            if ($fp !== true && $fp !== false) { // surprisingly faster than !is_bool() or is_resource()
-                return fread($fp, $length);
-            }
-            // method 3. pretty much does the same thing as method 2 per the following url:
-            // https://github.com/php/php-src/blob/7014a0eb6d1611151a286c0ff4f2238f92c120d6/ext/mcrypt/mcrypt.c#L1391
-            // surprisingly slower than method 2. maybe that's because mcrypt_create_iv does a bunch of error checking that we're
-            // not doing. regardless, this'll only be called if this PHP script couldn't open /dev/urandom due to open_basedir
-            // restrictions or some such
-            if (extension_loaded('mcrypt')) {
-                return @mcrypt_create_iv($length, MCRYPT_DEV_URANDOM);
-            }
-        }
-        // at this point we have no choice but to use a pure-PHP CSPRNG
-
-        // cascade entropy across multiple PHP instances by fixing the session and collecting all
-        // environmental variables, including the previous session data and the current session
-        // data.
-        //
-        // mt_rand seeds itself by looking at the PID and the time, both of which are (relatively)
-        // easy to guess at. linux uses mouse clicks, keyboard timings, etc, as entropy sources, but
-        // PHP isn't low level to be able to use those as sources and on a web server there's not likely
-        // going to be a ton of keyboard or mouse action. web servers do have one thing that we can use
-        // however, a ton of people visiting the website. obviously you don't want to base your seeding
-        // soley on parameters a potential attacker sends but (1) not everything in $_SERVER is controlled
-        // by the user and (2) this isn't just looking at the data sent by the current user - it's based
-        // on the data sent by all users. one user requests the page and a hash of their info is saved.
-        // another user visits the page and the serialization of their data is utilized along with the
-        // server envirnment stuff and a hash of the previous http request data (which itself utilizes
-        // a hash of the session data before that). certainly an attacker should be assumed to have
-        // full control over his own http requests. he, however, is not going to have control over
-        // everyone's http requests.
-        static $crypto = false, $v;
-        if ($crypto === false) {
-            // save old session data
-            $old_session_id = session_id();
-            $old_use_cookies = ini_get('session.use_cookies');
-            $old_session_cache_limiter = session_cache_limiter();
-            $_OLD_SESSION = isset($_SESSION) ? $_SESSION : false;
-            if ($old_session_id != '') {
-                session_write_close();
-            }
-
-            session_id(1);
-            ini_set('session.use_cookies', 0);
-            session_cache_limiter('');
-            session_start();
-
-            $v = $seed = $_SESSION['seed'] = pack('H*', sha1(
-                (isset($_SERVER) ? phpseclib_safe_serialize($_SERVER) : '') .
-                (isset($_POST) ? phpseclib_safe_serialize($_POST) : '') .
-                (isset($_GET) ? phpseclib_safe_serialize($_GET) : '') .
-                (isset($_COOKIE) ? phpseclib_safe_serialize($_COOKIE) : '') .
-                phpseclib_safe_serialize($GLOBALS) .
-                phpseclib_safe_serialize($_SESSION) .
-                phpseclib_safe_serialize($_OLD_SESSION)
-            ));
-            if (!isset($_SESSION['count'])) {
-                $_SESSION['count'] = 0;
-            }
-            $_SESSION['count']++;
-
-            session_write_close();
-
-            // restore old session data
-            if ($old_session_id != '') {
-                session_id($old_session_id);
-                session_start();
-                ini_set('session.use_cookies', $old_use_cookies);
-                session_cache_limiter($old_session_cache_limiter);
-            } else {
-                if ($_OLD_SESSION !== false) {
-                    $_SESSION = $_OLD_SESSION;
-                    unset($_OLD_SESSION);
-                } else {
-                    unset($_SESSION);
-                }
-            }
-
-            // in SSH2 a shared secret and an exchange hash are generated through the key exchange process.
-            // the IV client to server is the hash of that "nonce" with the letter A and for the encryption key it's the letter C.
-            // if the hash doesn't produce enough a key or an IV that's long enough concat successive hashes of the
-            // original hash and the current hash. we'll be emulating that. for more info see the following URL:
-            //
-            // http://tools.ietf.org/html/rfc4253#section-7.2
-            //
-            // see the is_string($crypto) part for an example of how to expand the keys
-            $key = pack('H*', sha1($seed . 'A'));
-            $iv = pack('H*', sha1($seed . 'C'));
-
-            // ciphers are used as per the nist.gov link below. also, see this link:
-            //
-            // http://en.wikipedia.org/wiki/Cryptographically_secure_pseudorandom_number_generator#Designs_based_on_cryptographic_primitives
-            switch (true) {
-                case class_exists('\phpseclib\Crypt\AES'):
-                    $crypto = new AES(Base::MODE_CTR);
-                    break;
-                case class_exists('\phpseclib\Crypt\Twofish'):
-                    $crypto = new Twofish(Base::MODE_CTR);
-                    break;
-                case class_exists('\phpseclib\Crypt\Blowfish'):
-                    $crypto = new Blowfish(Base::MODE_CTR);
-                    break;
-                case class_exists('\phpseclib\Crypt\TripleDES'):
-                    $crypto = new TripleDES(Base::MODE_CTR);
-                    break;
-                case class_exists('\phpseclib\Crypt\DES'):
-                    $crypto = new DES(Base::MODE_CTR);
-                    break;
-                case class_exists('\phpseclib\Crypt\RC4'):
-                    $crypto = new RC4();
-                    break;
-                default:
-                    user_error(__CLASS__ . ' requires at least one symmetric cipher be loaded');
-                    return false;
-            }
-
-            $crypto->setKey($key);
-            $crypto->setIV($iv);
-            $crypto->enableContinuousBuffer();
-        }
-
-        //return $crypto->encrypt(str_repeat("\0", $length));
-
-        // the following is based off of ANSI X9.31:
-        //
-        // http://csrc.nist.gov/groups/STM/cavp/documents/rng/931rngext.pdf
-        //
-        // OpenSSL uses that same standard for it's random numbers:
-        //
-        // http://www.opensource.apple.com/source/OpenSSL/OpenSSL-38/openssl/fips-1.0/rand/fips_rand.c
-        // (do a search for "ANS X9.31 A.2.4")
-        $result = '';
-        while (strlen($result) < $length) {
-            $i = $crypto->encrypt(microtime()); // strlen(microtime()) == 21
-            $r = $crypto->encrypt($i ^ $v); // strlen($v) == 20
-            $v = $crypto->encrypt($r ^ $i); // strlen($r) == 20
-            $result.= $r;
-        }
-        return substr($result, 0, $length);
-    }
-}
-
-if (!function_exists('phpseclib_safe_serialize')) {
-    /**
-     * Safely serialize variables
-     *
-     * If a class has a private __sleep() method it'll give a fatal error on PHP 5.2 and earlier.
-     * PHP 5.3 will emit a warning.
-     *
-     * @param mixed $arr
-     * @access public
-     */
-    function phpseclib_safe_serialize(&$arr)
-    {
-        if (is_object($arr)) {
-            return '';
-        }
-        if (!is_array($arr)) {
-            return serialize($arr);
-        }
-        // prevent circular array recursion
-        if (isset($arr['__phpseclib_marker'])) {
-            return '';
-        }
-        $safearr = array();
-        $arr['__phpseclib_marker'] = true;
-        foreach (array_keys($arr) as $key) {
-            // do not recurse on the '__phpseclib_marker' key itself, for smaller memory usage
-            if ($key !== '__phpseclib_marker') {
-                $safearr[$key] = phpseclib_safe_serialize($arr[$key]);
-            }
-        }
-        unset($arr['__phpseclib_marker']);
-        return serialize($safearr);
-    }
-}
diff --git a/wiki/vendor/phpseclib/phpseclib/phpseclib/Crypt/Rijndael.php b/wiki/vendor/phpseclib/phpseclib/phpseclib/Crypt/Rijndael.php
deleted file mode 100644
index 3648a19..0000000
--- a/wiki/vendor/phpseclib/phpseclib/phpseclib/Crypt/Rijndael.php
+++ /dev/null
@@ -1,936 +0,0 @@
-<?php
-
-/**
- * Pure-PHP implementation of Rijndael.
- *
- * Uses mcrypt, if available/possible, and an internal implementation, otherwise.
- *
- * PHP version 5
- *
- * If {@link self::setBlockLength() setBlockLength()} isn't called, it'll be assumed to be 128 bits.  If
- * {@link self::setKeyLength() setKeyLength()} isn't called, it'll be calculated from
- * {@link self::setKey() setKey()}.  ie. if the key is 128-bits, the key length will be 128-bits.  If it's
- * 136-bits it'll be null-padded to 192-bits and 192 bits will be the key length until
- * {@link self::setKey() setKey()} is called, again, at which point, it'll be recalculated.
- *
- * Not all Rijndael implementations may support 160-bits or 224-bits as the block length / key length.  mcrypt, for example,
- * does not.  AES, itself, only supports block lengths of 128 and key lengths of 128, 192, and 256.
- * {@link http://csrc.nist.gov/archive/aes/rijndael/Rijndael-ammended.pdf#page=10 Rijndael-ammended.pdf#page=10} defines the
- * algorithm for block lengths of 192 and 256 but not for block lengths / key lengths of 160 and 224.  Indeed, 160 and 224
- * are first defined as valid key / block lengths in
- * {@link http://csrc.nist.gov/archive/aes/rijndael/Rijndael-ammended.pdf#page=44 Rijndael-ammended.pdf#page=44}:
- * Extensions: Other block and Cipher Key lengths.
- * Note: Use of 160/224-bit Keys must be explicitly set by setKeyLength(160) respectively setKeyLength(224).
- *
- * {@internal The variable names are the same as those in
- * {@link http://www.csrc.nist.gov/publications/fips/fips197/fips-197.pdf#page=10 fips-197.pdf#page=10}.}}
- *
- * Here's a short example of how to use this library:
- * <code>
- * <?php
- *    include 'vendor/autoload.php';
- *
- *    $rijndael = new \phpseclib\Crypt\Rijndael();
- *
- *    $rijndael->setKey('abcdefghijklmnop');
- *
- *    $size = 10 * 1024;
- *    $plaintext = '';
- *    for ($i = 0; $i < $size; $i++) {
- *        $plaintext.= 'a';
- *    }
- *
- *    echo $rijndael->decrypt($rijndael->encrypt($plaintext));
- * ?>
- * </code>
- *
- * @category  Crypt
- * @package   Rijndael
- * @author    Jim Wigginton <terrafrost@php.net>
- * @copyright 2008 Jim Wigginton
- * @license   http://www.opensource.org/licenses/mit-license.html  MIT License
- * @link      http://phpseclib.sourceforge.net
- */
-
-namespace phpseclib\Crypt;
-
-/**
- * Pure-PHP implementation of Rijndael.
- *
- * @package Rijndael
- * @author  Jim Wigginton <terrafrost@php.net>
- * @access  public
- */
-class Rijndael extends Base
-{
-    /**
-     * The mcrypt specific name of the cipher
-     *
-     * Mcrypt is useable for 128/192/256-bit $block_size/$key_length. For 160/224 not.
-     * \phpseclib\Crypt\Rijndael determines automatically whether mcrypt is useable
-     * or not for the current $block_size/$key_length.
-     * In case of, $cipher_name_mcrypt will be set dynamically at run time accordingly.
-     *
-     * @see \phpseclib\Crypt\Base::cipher_name_mcrypt
-     * @see \phpseclib\Crypt\Base::engine
-     * @see self::isValidEngine()
-     * @var string
-     * @access private
-     */
-    var $cipher_name_mcrypt = 'rijndael-128';
-
-    /**
-     * The default salt used by setPassword()
-     *
-     * @see \phpseclib\Crypt\Base::password_default_salt
-     * @see \phpseclib\Crypt\Base::setPassword()
-     * @var string
-     * @access private
-     */
-    var $password_default_salt = 'phpseclib';
-
-    /**
-     * The Key Schedule
-     *
-     * @see self::_setup()
-     * @var array
-     * @access private
-     */
-    var $w;
-
-    /**
-     * The Inverse Key Schedule
-     *
-     * @see self::_setup()
-     * @var array
-     * @access private
-     */
-    var $dw;
-
-    /**
-     * The Block Length divided by 32
-     *
-     * @see self::setBlockLength()
-     * @var int
-     * @access private
-     * @internal The max value is 256 / 32 = 8, the min value is 128 / 32 = 4.  Exists in conjunction with $block_size
-     *    because the encryption / decryption / key schedule creation requires this number and not $block_size.  We could
-     *    derive this from $block_size or vice versa, but that'd mean we'd have to do multiple shift operations, so in lieu
-     *    of that, we'll just precompute it once.
-     */
-    var $Nb = 4;
-
-    /**
-     * The Key Length (in bytes)
-     *
-     * @see self::setKeyLength()
-     * @var int
-     * @access private
-     * @internal The max value is 256 / 8 = 32, the min value is 128 / 8 = 16.  Exists in conjunction with $Nk
-     *    because the encryption / decryption / key schedule creation requires this number and not $key_length.  We could
-     *    derive this from $key_length or vice versa, but that'd mean we'd have to do multiple shift operations, so in lieu
-     *    of that, we'll just precompute it once.
-     */
-    var $key_length = 16;
-
-    /**
-     * The Key Length divided by 32
-     *
-     * @see self::setKeyLength()
-     * @var int
-     * @access private
-     * @internal The max value is 256 / 32 = 8, the min value is 128 / 32 = 4
-     */
-    var $Nk = 4;
-
-    /**
-     * The Number of Rounds
-     *
-     * @var int
-     * @access private
-     * @internal The max value is 14, the min value is 10.
-     */
-    var $Nr;
-
-    /**
-     * Shift offsets
-     *
-     * @var array
-     * @access private
-     */
-    var $c;
-
-    /**
-     * Holds the last used key- and block_size information
-     *
-     * @var array
-     * @access private
-     */
-    var $kl;
-
-    /**
-     * Sets the key length.
-     *
-     * Valid key lengths are 128, 160, 192, 224, and 256.  If the length is less than 128, it will be rounded up to
-     * 128.  If the length is greater than 128 and invalid, it will be rounded down to the closest valid amount.
-     *
-     * Note: phpseclib extends Rijndael (and AES) for using 160- and 224-bit keys but they are officially not defined
-     *       and the most (if not all) implementations are not able using 160/224-bit keys but round/pad them up to
-     *       192/256 bits as, for example, mcrypt will do.
-     *
-     *       That said, if you want be compatible with other Rijndael and AES implementations,
-     *       you should not setKeyLength(160) or setKeyLength(224).
-     *
-     * Additional: In case of 160- and 224-bit keys, phpseclib will/can, for that reason, not use
-     *             the mcrypt php extension, even if available.
-     *             This results then in slower encryption.
-     *
-     * @access public
-     * @param int $length
-     */
-    function setKeyLength($length)
-    {
-        switch (true) {
-            case $length <= 128:
-                $this->key_length = 16;
-                break;
-            case $length <= 160:
-                $this->key_length = 20;
-                break;
-            case $length <= 192:
-                $this->key_length = 24;
-                break;
-            case $length <= 224:
-                $this->key_length = 28;
-                break;
-            default:
-                $this->key_length = 32;
-        }
-
-        parent::setKeyLength($length);
-    }
-
-    /**
-     * Sets the block length
-     *
-     * Valid block lengths are 128, 160, 192, 224, and 256.  If the length is less than 128, it will be rounded up to
-     * 128.  If the length is greater than 128 and invalid, it will be rounded down to the closest valid amount.
-     *
-     * @access public
-     * @param int $length
-     */
-    function setBlockLength($length)
-    {
-        $length >>= 5;
-        if ($length > 8) {
-            $length = 8;
-        } elseif ($length < 4) {
-            $length = 4;
-        }
-        $this->Nb = $length;
-        $this->block_size = $length << 2;
-        $this->changed = true;
-        $this->_setEngine();
-    }
-
-    /**
-     * Test for engine validity
-     *
-     * This is mainly just a wrapper to set things up for \phpseclib\Crypt\Base::isValidEngine()
-     *
-     * @see \phpseclib\Crypt\Base::__construct()
-     * @param int $engine
-     * @access public
-     * @return bool
-     */
-    function isValidEngine($engine)
-    {
-        switch ($engine) {
-            case self::ENGINE_OPENSSL:
-                if ($this->block_size != 16) {
-                    return false;
-                }
-                $this->cipher_name_openssl_ecb = 'aes-' . ($this->key_length << 3) . '-ecb';
-                $this->cipher_name_openssl = 'aes-' . ($this->key_length << 3) . '-' . $this->_openssl_translate_mode();
-                break;
-            case self::ENGINE_MCRYPT:
-                $this->cipher_name_mcrypt = 'rijndael-' . ($this->block_size << 3);
-                if ($this->key_length % 8) { // is it a 160/224-bit key?
-                    // mcrypt is not usable for them, only for 128/192/256-bit keys
-                    return false;
-                }
-        }
-
-        return parent::isValidEngine($engine);
-    }
-
-    /**
-     * Encrypts a block
-     *
-     * @access private
-     * @param string $in
-     * @return string
-     */
-    function _encryptBlock($in)
-    {
-        static $tables;
-        if (empty($tables)) {
-            $tables = &$this->_getTables();
-        }
-        $t0   = $tables[0];
-        $t1   = $tables[1];
-        $t2   = $tables[2];
-        $t3   = $tables[3];
-        $sbox = $tables[4];
-
-        $state = array();
-        $words = unpack('N*', $in);
-
-        $c = $this->c;
-        $w = $this->w;
-        $Nb = $this->Nb;
-        $Nr = $this->Nr;
-
-        // addRoundKey
-        $wc = $Nb - 1;
-        foreach ($words as $word) {
-            $state[] = $word ^ $w[++$wc];
-        }
-
-        // fips-197.pdf#page=19, "Figure 5. Pseudo Code for the Cipher", states that this loop has four components -
-        // subBytes, shiftRows, mixColumns, and addRoundKey. fips-197.pdf#page=30, "Implementation Suggestions Regarding
-        // Various Platforms" suggests that performs enhanced implementations are described in Rijndael-ammended.pdf.
-        // Rijndael-ammended.pdf#page=20, "Implementation aspects / 32-bit processor", discusses such an optimization.
-        // Unfortunately, the description given there is not quite correct.  Per aes.spec.v316.pdf#page=19 [1],
-        // equation (7.4.7) is supposed to use addition instead of subtraction, so we'll do that here, as well.
-
-        // [1] http://fp.gladman.plus.com/cryptography_technology/rijndael/aes.spec.v316.pdf
-        $temp = array();
-        for ($round = 1; $round < $Nr; ++$round) {
-            $i = 0; // $c[0] == 0
-            $j = $c[1];
-            $k = $c[2];
-            $l = $c[3];
-
-            while ($i < $Nb) {
-                $temp[$i] = $t0[$state[$i] >> 24 & 0x000000FF] ^
-                            $t1[$state[$j] >> 16 & 0x000000FF] ^
-                            $t2[$state[$k] >>  8 & 0x000000FF] ^
-                            $t3[$state[$l]       & 0x000000FF] ^
-                            $w[++$wc];
-                ++$i;
-                $j = ($j + 1) % $Nb;
-                $k = ($k + 1) % $Nb;
-                $l = ($l + 1) % $Nb;
-            }
-            $state = $temp;
-        }
-
-        // subWord
-        for ($i = 0; $i < $Nb; ++$i) {
-            $state[$i] =   $sbox[$state[$i]       & 0x000000FF]        |
-                          ($sbox[$state[$i] >>  8 & 0x000000FF] <<  8) |
-                          ($sbox[$state[$i] >> 16 & 0x000000FF] << 16) |
-                          ($sbox[$state[$i] >> 24 & 0x000000FF] << 24);
-        }
-
-        // shiftRows + addRoundKey
-        $i = 0; // $c[0] == 0
-        $j = $c[1];
-        $k = $c[2];
-        $l = $c[3];
-        while ($i < $Nb) {
-            $temp[$i] = ($state[$i] & 0xFF000000) ^
-                        ($state[$j] & 0x00FF0000) ^
-                        ($state[$k] & 0x0000FF00) ^
-                        ($state[$l] & 0x000000FF) ^
-                         $w[$i];
-            ++$i;
-            $j = ($j + 1) % $Nb;
-            $k = ($k + 1) % $Nb;
-            $l = ($l + 1) % $Nb;
-        }
-
-        switch ($Nb) {
-            case 8:
-                return pack('N*', $temp[0], $temp[1], $temp[2], $temp[3], $temp[4], $temp[5], $temp[6], $temp[7]);
-            case 7:
-                return pack('N*', $temp[0], $temp[1], $temp[2], $temp[3], $temp[4], $temp[5], $temp[6]);
-            case 6:
-                return pack('N*', $temp[0], $temp[1], $temp[2], $temp[3], $temp[4], $temp[5]);
-            case 5:
-                return pack('N*', $temp[0], $temp[1], $temp[2], $temp[3], $temp[4]);
-            default:
-                return pack('N*', $temp[0], $temp[1], $temp[2], $temp[3]);
-        }
-    }
-
-    /**
-     * Decrypts a block
-     *
-     * @access private
-     * @param string $in
-     * @return string
-     */
-    function _decryptBlock($in)
-    {
-        static $invtables;
-        if (empty($invtables)) {
-            $invtables = &$this->_getInvTables();
-        }
-        $dt0   = $invtables[0];
-        $dt1   = $invtables[1];
-        $dt2   = $invtables[2];
-        $dt3   = $invtables[3];
-        $isbox = $invtables[4];
-
-        $state = array();
-        $words = unpack('N*', $in);
-
-        $c  = $this->c;
-        $dw = $this->dw;
-        $Nb = $this->Nb;
-        $Nr = $this->Nr;
-
-        // addRoundKey
-        $wc = $Nb - 1;
-        foreach ($words as $word) {
-            $state[] = $word ^ $dw[++$wc];
-        }
-
-        $temp = array();
-        for ($round = $Nr - 1; $round > 0; --$round) {
-            $i = 0; // $c[0] == 0
-            $j = $Nb - $c[1];
-            $k = $Nb - $c[2];
-            $l = $Nb - $c[3];
-
-            while ($i < $Nb) {
-                $temp[$i] = $dt0[$state[$i] >> 24 & 0x000000FF] ^
-                            $dt1[$state[$j] >> 16 & 0x000000FF] ^
-                            $dt2[$state[$k] >>  8 & 0x000000FF] ^
-                            $dt3[$state[$l]       & 0x000000FF] ^
-                            $dw[++$wc];
-                ++$i;
-                $j = ($j + 1) % $Nb;
-                $k = ($k + 1) % $Nb;
-                $l = ($l + 1) % $Nb;
-            }
-            $state = $temp;
-        }
-
-        // invShiftRows + invSubWord + addRoundKey
-        $i = 0; // $c[0] == 0
-        $j = $Nb - $c[1];
-        $k = $Nb - $c[2];
-        $l = $Nb - $c[3];
-
-        while ($i < $Nb) {
-            $word = ($state[$i] & 0xFF000000) |
-                    ($state[$j] & 0x00FF0000) |
-                    ($state[$k] & 0x0000FF00) |
-                    ($state[$l] & 0x000000FF);
-
-            $temp[$i] = $dw[$i] ^ ($isbox[$word       & 0x000000FF]        |
-                                  ($isbox[$word >>  8 & 0x000000FF] <<  8) |
-                                  ($isbox[$word >> 16 & 0x000000FF] << 16) |
-                                  ($isbox[$word >> 24 & 0x000000FF] << 24));
-            ++$i;
-            $j = ($j + 1) % $Nb;
-            $k = ($k + 1) % $Nb;
-            $l = ($l + 1) % $Nb;
-        }
-
-        switch ($Nb) {
-            case 8:
-                return pack('N*', $temp[0], $temp[1], $temp[2], $temp[3], $temp[4], $temp[5], $temp[6], $temp[7]);
-            case 7:
-                return pack('N*', $temp[0], $temp[1], $temp[2], $temp[3], $temp[4], $temp[5], $temp[6]);
-            case 6:
-                return pack('N*', $temp[0], $temp[1], $temp[2], $temp[3], $temp[4], $temp[5]);
-            case 5:
-                return pack('N*', $temp[0], $temp[1], $temp[2], $temp[3], $temp[4]);
-            default:
-                return pack('N*', $temp[0], $temp[1], $temp[2], $temp[3]);
-        }
-    }
-
-    /**
-     * Setup the key (expansion)
-     *
-     * @see \phpseclib\Crypt\Base::_setupKey()
-     * @access private
-     */
-    function _setupKey()
-    {
-        // Each number in $rcon is equal to the previous number multiplied by two in Rijndael's finite field.
-        // See http://en.wikipedia.org/wiki/Finite_field_arithmetic#Multiplicative_inverse
-        static $rcon = array(0,
-            0x01000000, 0x02000000, 0x04000000, 0x08000000, 0x10000000,
-            0x20000000, 0x40000000, 0x80000000, 0x1B000000, 0x36000000,
-            0x6C000000, 0xD8000000, 0xAB000000, 0x4D000000, 0x9A000000,
-            0x2F000000, 0x5E000000, 0xBC000000, 0x63000000, 0xC6000000,
-            0x97000000, 0x35000000, 0x6A000000, 0xD4000000, 0xB3000000,
-            0x7D000000, 0xFA000000, 0xEF000000, 0xC5000000, 0x91000000
-        );
-
-        if (isset($this->kl['key']) && $this->key === $this->kl['key'] && $this->key_length === $this->kl['key_length'] && $this->block_size === $this->kl['block_size']) {
-            // already expanded
-            return;
-        }
-        $this->kl = array('key' => $this->key, 'key_length' => $this->key_length, 'block_size' => $this->block_size);
-
-        $this->Nk = $this->key_length >> 2;
-        // see Rijndael-ammended.pdf#page=44
-        $this->Nr = max($this->Nk, $this->Nb) + 6;
-
-        // shift offsets for Nb = 5, 7 are defined in Rijndael-ammended.pdf#page=44,
-        //     "Table 8: Shift offsets in Shiftrow for the alternative block lengths"
-        // shift offsets for Nb = 4, 6, 8 are defined in Rijndael-ammended.pdf#page=14,
-        //     "Table 2: Shift offsets for different block lengths"
-        switch ($this->Nb) {
-            case 4:
-            case 5:
-            case 6:
-                $this->c = array(0, 1, 2, 3);
-                break;
-            case 7:
-                $this->c = array(0, 1, 2, 4);
-                break;
-            case 8:
-                $this->c = array(0, 1, 3, 4);
-        }
-
-        $w = array_values(unpack('N*words', $this->key));
-
-        $length = $this->Nb * ($this->Nr + 1);
-        for ($i = $this->Nk; $i < $length; $i++) {
-            $temp = $w[$i - 1];
-            if ($i % $this->Nk == 0) {
-                // according to <http://php.net/language.types.integer>, "the size of an integer is platform-dependent".
-                // on a 32-bit machine, it's 32-bits, and on a 64-bit machine, it's 64-bits. on a 32-bit machine,
-                // 0xFFFFFFFF << 8 == 0xFFFFFF00, but on a 64-bit machine, it equals 0xFFFFFFFF00. as such, doing 'and'
-                // with 0xFFFFFFFF (or 0xFFFFFF00) on a 32-bit machine is unnecessary, but on a 64-bit machine, it is.
-                $temp = (($temp << 8) & 0xFFFFFF00) | (($temp >> 24) & 0x000000FF); // rotWord
-                $temp = $this->_subWord($temp) ^ $rcon[$i / $this->Nk];
-            } elseif ($this->Nk > 6 && $i % $this->Nk == 4) {
-                $temp = $this->_subWord($temp);
-            }
-            $w[$i] = $w[$i - $this->Nk] ^ $temp;
-        }
-
-        // convert the key schedule from a vector of $Nb * ($Nr + 1) length to a matrix with $Nr + 1 rows and $Nb columns
-        // and generate the inverse key schedule.  more specifically,
-        // according to <http://csrc.nist.gov/archive/aes/rijndael/Rijndael-ammended.pdf#page=23> (section 5.3.3),
-        // "The key expansion for the Inverse Cipher is defined as follows:
-        //        1. Apply the Key Expansion.
-        //        2. Apply InvMixColumn to all Round Keys except the first and the last one."
-        // also, see fips-197.pdf#page=27, "5.3.5 Equivalent Inverse Cipher"
-        list($dt0, $dt1, $dt2, $dt3) = $this->_getInvTables();
-        $temp = $this->w = $this->dw = array();
-        for ($i = $row = $col = 0; $i < $length; $i++, $col++) {
-            if ($col == $this->Nb) {
-                if ($row == 0) {
-                    $this->dw[0] = $this->w[0];
-                } else {
-                    // subWord + invMixColumn + invSubWord = invMixColumn
-                    $j = 0;
-                    while ($j < $this->Nb) {
-                        $dw = $this->_subWord($this->w[$row][$j]);
-                        $temp[$j] = $dt0[$dw >> 24 & 0x000000FF] ^
-                                    $dt1[$dw >> 16 & 0x000000FF] ^
-                                    $dt2[$dw >>  8 & 0x000000FF] ^
-                                    $dt3[$dw       & 0x000000FF];
-                        $j++;
-                    }
-                    $this->dw[$row] = $temp;
-                }
-
-                $col = 0;
-                $row++;
-            }
-            $this->w[$row][$col] = $w[$i];
-        }
-
-        $this->dw[$row] = $this->w[$row];
-
-        // Converting to 1-dim key arrays (both ascending)
-        $this->dw = array_reverse($this->dw);
-        $w  = array_pop($this->w);
-        $dw = array_pop($this->dw);
-        foreach ($this->w as $r => $wr) {
-            foreach ($wr as $c => $wc) {
-                $w[]  = $wc;
-                $dw[] = $this->dw[$r][$c];
-            }
-        }
-        $this->w  = $w;
-        $this->dw = $dw;
-    }
-
-    /**
-     * Performs S-Box substitutions
-     *
-     * @access private
-     * @param int $word
-     */
-    function _subWord($word)
-    {
-        static $sbox;
-        if (empty($sbox)) {
-            list(, , , , $sbox) = $this->_getTables();
-        }
-
-        return  $sbox[$word       & 0x000000FF]        |
-               ($sbox[$word >>  8 & 0x000000FF] <<  8) |
-               ($sbox[$word >> 16 & 0x000000FF] << 16) |
-               ($sbox[$word >> 24 & 0x000000FF] << 24);
-    }
-
-    /**
-     * Provides the mixColumns and sboxes tables
-     *
-     * @see self::_encryptBlock()
-     * @see self::_setupInlineCrypt()
-     * @see self::_subWord()
-     * @access private
-     * @return array &$tables
-     */
-    function &_getTables()
-    {
-        static $tables;
-        if (empty($tables)) {
-            // according to <http://csrc.nist.gov/archive/aes/rijndael/Rijndael-ammended.pdf#page=19> (section 5.2.1),
-            // precomputed tables can be used in the mixColumns phase. in that example, they're assigned t0...t3, so
-            // those are the names we'll use.
-            $t3 = array_map('intval', array(
-                // with array_map('intval', ...) we ensure we have only int's and not
-                // some slower floats converted by php automatically on high values
-                0x6363A5C6, 0x7C7C84F8, 0x777799EE, 0x7B7B8DF6, 0xF2F20DFF, 0x6B6BBDD6, 0x6F6FB1DE, 0xC5C55491,
-                0x30305060, 0x01010302, 0x6767A9CE, 0x2B2B7D56, 0xFEFE19E7, 0xD7D762B5, 0xABABE64D, 0x76769AEC,
-                0xCACA458F, 0x82829D1F, 0xC9C94089, 0x7D7D87FA, 0xFAFA15EF, 0x5959EBB2, 0x4747C98E, 0xF0F00BFB,
-                0xADADEC41, 0xD4D467B3, 0xA2A2FD5F, 0xAFAFEA45, 0x9C9CBF23, 0xA4A4F753, 0x727296E4, 0xC0C05B9B,
-                0xB7B7C275, 0xFDFD1CE1, 0x9393AE3D, 0x26266A4C, 0x36365A6C, 0x3F3F417E, 0xF7F702F5, 0xCCCC4F83,
-                0x34345C68, 0xA5A5F451, 0xE5E534D1, 0xF1F108F9, 0x717193E2, 0xD8D873AB, 0x31315362, 0x15153F2A,
-                0x04040C08, 0xC7C75295, 0x23236546, 0xC3C35E9D, 0x18182830, 0x9696A137, 0x05050F0A, 0x9A9AB52F,
-                0x0707090E, 0x12123624, 0x80809B1B, 0xE2E23DDF, 0xEBEB26CD, 0x2727694E, 0xB2B2CD7F, 0x75759FEA,
-                0x09091B12, 0x83839E1D, 0x2C2C7458, 0x1A1A2E34, 0x1B1B2D36, 0x6E6EB2DC, 0x5A5AEEB4, 0xA0A0FB5B,
-                0x5252F6A4, 0x3B3B4D76, 0xD6D661B7, 0xB3B3CE7D, 0x29297B52, 0xE3E33EDD, 0x2F2F715E, 0x84849713,
-                0x5353F5A6, 0xD1D168B9, 0x00000000, 0xEDED2CC1, 0x20206040, 0xFCFC1FE3, 0xB1B1C879, 0x5B5BEDB6,
-                0x6A6ABED4, 0xCBCB468D, 0xBEBED967, 0x39394B72, 0x4A4ADE94, 0x4C4CD498, 0x5858E8B0, 0xCFCF4A85,
-                0xD0D06BBB, 0xEFEF2AC5, 0xAAAAE54F, 0xFBFB16ED, 0x4343C586, 0x4D4DD79A, 0x33335566, 0x85859411,
-                0x4545CF8A, 0xF9F910E9, 0x02020604, 0x7F7F81FE, 0x5050F0A0, 0x3C3C4478, 0x9F9FBA25, 0xA8A8E34B,
-                0x5151F3A2, 0xA3A3FE5D, 0x4040C080, 0x8F8F8A05, 0x9292AD3F, 0x9D9DBC21, 0x38384870, 0xF5F504F1,
-                0xBCBCDF63, 0xB6B6C177, 0xDADA75AF, 0x21216342, 0x10103020, 0xFFFF1AE5, 0xF3F30EFD, 0xD2D26DBF,
-                0xCDCD4C81, 0x0C0C1418, 0x13133526, 0xECEC2FC3, 0x5F5FE1BE, 0x9797A235, 0x4444CC88, 0x1717392E,
-                0xC4C45793, 0xA7A7F255, 0x7E7E82FC, 0x3D3D477A, 0x6464ACC8, 0x5D5DE7BA, 0x19192B32, 0x737395E6,
-                0x6060A0C0, 0x81819819, 0x4F4FD19E, 0xDCDC7FA3, 0x22226644, 0x2A2A7E54, 0x9090AB3B, 0x8888830B,
-                0x4646CA8C, 0xEEEE29C7, 0xB8B8D36B, 0x14143C28, 0xDEDE79A7, 0x5E5EE2BC, 0x0B0B1D16, 0xDBDB76AD,
-                0xE0E03BDB, 0x32325664, 0x3A3A4E74, 0x0A0A1E14, 0x4949DB92, 0x06060A0C, 0x24246C48, 0x5C5CE4B8,
-                0xC2C25D9F, 0xD3D36EBD, 0xACACEF43, 0x6262A6C4, 0x9191A839, 0x9595A431, 0xE4E437D3, 0x79798BF2,
-                0xE7E732D5, 0xC8C8438B, 0x3737596E, 0x6D6DB7DA, 0x8D8D8C01, 0xD5D564B1, 0x4E4ED29C, 0xA9A9E049,
-                0x6C6CB4D8, 0x5656FAAC, 0xF4F407F3, 0xEAEA25CF, 0x6565AFCA, 0x7A7A8EF4, 0xAEAEE947, 0x08081810,
-                0xBABAD56F, 0x787888F0, 0x25256F4A, 0x2E2E725C, 0x1C1C2438, 0xA6A6F157, 0xB4B4C773, 0xC6C65197,
-                0xE8E823CB, 0xDDDD7CA1, 0x74749CE8, 0x1F1F213E, 0x4B4BDD96, 0xBDBDDC61, 0x8B8B860D, 0x8A8A850F,
-                0x707090E0, 0x3E3E427C, 0xB5B5C471, 0x6666AACC, 0x4848D890, 0x03030506, 0xF6F601F7, 0x0E0E121C,
-                0x6161A3C2, 0x35355F6A, 0x5757F9AE, 0xB9B9D069, 0x86869117, 0xC1C15899, 0x1D1D273A, 0x9E9EB927,
-                0xE1E138D9, 0xF8F813EB, 0x9898B32B, 0x11113322, 0x6969BBD2, 0xD9D970A9, 0x8E8E8907, 0x9494A733,
-                0x9B9BB62D, 0x1E1E223C, 0x87879215, 0xE9E920C9, 0xCECE4987, 0x5555FFAA, 0x28287850, 0xDFDF7AA5,
-                0x8C8C8F03, 0xA1A1F859, 0x89898009, 0x0D0D171A, 0xBFBFDA65, 0xE6E631D7, 0x4242C684, 0x6868B8D0,
-                0x4141C382, 0x9999B029, 0x2D2D775A, 0x0F0F111E, 0xB0B0CB7B, 0x5454FCA8, 0xBBBBD66D, 0x16163A2C
-            ));
-
-            foreach ($t3 as $t3i) {
-                $t0[] = (($t3i << 24) & 0xFF000000) | (($t3i >>  8) & 0x00FFFFFF);
-                $t1[] = (($t3i << 16) & 0xFFFF0000) | (($t3i >> 16) & 0x0000FFFF);
-                $t2[] = (($t3i <<  8) & 0xFFFFFF00) | (($t3i >> 24) & 0x000000FF);
-            }
-
-            $tables = array(
-                // The Precomputed mixColumns tables t0 - t3
-                $t0,
-                $t1,
-                $t2,
-                $t3,
-                // The SubByte S-Box
-                array(
-                    0x63, 0x7C, 0x77, 0x7B, 0xF2, 0x6B, 0x6F, 0xC5, 0x30, 0x01, 0x67, 0x2B, 0xFE, 0xD7, 0xAB, 0x76,
-                    0xCA, 0x82, 0xC9, 0x7D, 0xFA, 0x59, 0x47, 0xF0, 0xAD, 0xD4, 0xA2, 0xAF, 0x9C, 0xA4, 0x72, 0xC0,
-                    0xB7, 0xFD, 0x93, 0x26, 0x36, 0x3F, 0xF7, 0xCC, 0x34, 0xA5, 0xE5, 0xF1, 0x71, 0xD8, 0x31, 0x15,
-                    0x04, 0xC7, 0x23, 0xC3, 0x18, 0x96, 0x05, 0x9A, 0x07, 0x12, 0x80, 0xE2, 0xEB, 0x27, 0xB2, 0x75,
-                    0x09, 0x83, 0x2C, 0x1A, 0x1B, 0x6E, 0x5A, 0xA0, 0x52, 0x3B, 0xD6, 0xB3, 0x29, 0xE3, 0x2F, 0x84,
-                    0x53, 0xD1, 0x00, 0xED, 0x20, 0xFC, 0xB1, 0x5B, 0x6A, 0xCB, 0xBE, 0x39, 0x4A, 0x4C, 0x58, 0xCF,
-                    0xD0, 0xEF, 0xAA, 0xFB, 0x43, 0x4D, 0x33, 0x85, 0x45, 0xF9, 0x02, 0x7F, 0x50, 0x3C, 0x9F, 0xA8,
-                    0x51, 0xA3, 0x40, 0x8F, 0x92, 0x9D, 0x38, 0xF5, 0xBC, 0xB6, 0xDA, 0x21, 0x10, 0xFF, 0xF3, 0xD2,
-                    0xCD, 0x0C, 0x13, 0xEC, 0x5F, 0x97, 0x44, 0x17, 0xC4, 0xA7, 0x7E, 0x3D, 0x64, 0x5D, 0x19, 0x73,
-                    0x60, 0x81, 0x4F, 0xDC, 0x22, 0x2A, 0x90, 0x88, 0x46, 0xEE, 0xB8, 0x14, 0xDE, 0x5E, 0x0B, 0xDB,
-                    0xE0, 0x32, 0x3A, 0x0A, 0x49, 0x06, 0x24, 0x5C, 0xC2, 0xD3, 0xAC, 0x62, 0x91, 0x95, 0xE4, 0x79,
-                    0xE7, 0xC8, 0x37, 0x6D, 0x8D, 0xD5, 0x4E, 0xA9, 0x6C, 0x56, 0xF4, 0xEA, 0x65, 0x7A, 0xAE, 0x08,
-                    0xBA, 0x78, 0x25, 0x2E, 0x1C, 0xA6, 0xB4, 0xC6, 0xE8, 0xDD, 0x74, 0x1F, 0x4B, 0xBD, 0x8B, 0x8A,
-                    0x70, 0x3E, 0xB5, 0x66, 0x48, 0x03, 0xF6, 0x0E, 0x61, 0x35, 0x57, 0xB9, 0x86, 0xC1, 0x1D, 0x9E,
-                    0xE1, 0xF8, 0x98, 0x11, 0x69, 0xD9, 0x8E, 0x94, 0x9B, 0x1E, 0x87, 0xE9, 0xCE, 0x55, 0x28, 0xDF,
-                    0x8C, 0xA1, 0x89, 0x0D, 0xBF, 0xE6, 0x42, 0x68, 0x41, 0x99, 0x2D, 0x0F, 0xB0, 0x54, 0xBB, 0x16
-                )
-            );
-        }
-        return $tables;
-    }
-
-    /**
-     * Provides the inverse mixColumns and inverse sboxes tables
-     *
-     * @see self::_decryptBlock()
-     * @see self::_setupInlineCrypt()
-     * @see self::_setupKey()
-     * @access private
-     * @return array &$tables
-     */
-    function &_getInvTables()
-    {
-        static $tables;
-        if (empty($tables)) {
-            $dt3 = array_map('intval', array(
-                0xF4A75051, 0x4165537E, 0x17A4C31A, 0x275E963A, 0xAB6BCB3B, 0x9D45F11F, 0xFA58ABAC, 0xE303934B,
-                0x30FA5520, 0x766DF6AD, 0xCC769188, 0x024C25F5, 0xE5D7FC4F, 0x2ACBD7C5, 0x35448026, 0x62A38FB5,
-                0xB15A49DE, 0xBA1B6725, 0xEA0E9845, 0xFEC0E15D, 0x2F7502C3, 0x4CF01281, 0x4697A38D, 0xD3F9C66B,
-                0x8F5FE703, 0x929C9515, 0x6D7AEBBF, 0x5259DA95, 0xBE832DD4, 0x7421D358, 0xE0692949, 0xC9C8448E,
-                0xC2896A75, 0x8E7978F4, 0x583E6B99, 0xB971DD27, 0xE14FB6BE, 0x88AD17F0, 0x20AC66C9, 0xCE3AB47D,
-                0xDF4A1863, 0x1A3182E5, 0x51336097, 0x537F4562, 0x6477E0B1, 0x6BAE84BB, 0x81A01CFE, 0x082B94F9,
-                0x48685870, 0x45FD198F, 0xDE6C8794, 0x7BF8B752, 0x73D323AB, 0x4B02E272, 0x1F8F57E3, 0x55AB2A66,
-                0xEB2807B2, 0xB5C2032F, 0xC57B9A86, 0x3708A5D3, 0x2887F230, 0xBFA5B223, 0x036ABA02, 0x16825CED,
-                0xCF1C2B8A, 0x79B492A7, 0x07F2F0F3, 0x69E2A14E, 0xDAF4CD65, 0x05BED506, 0x34621FD1, 0xA6FE8AC4,
-                0x2E539D34, 0xF355A0A2, 0x8AE13205, 0xF6EB75A4, 0x83EC390B, 0x60EFAA40, 0x719F065E, 0x6E1051BD,
-                0x218AF93E, 0xDD063D96, 0x3E05AEDD, 0xE6BD464D, 0x548DB591, 0xC45D0571, 0x06D46F04, 0x5015FF60,
-                0x98FB2419, 0xBDE997D6, 0x4043CC89, 0xD99E7767, 0xE842BDB0, 0x898B8807, 0x195B38E7, 0xC8EEDB79,
-                0x7C0A47A1, 0x420FE97C, 0x841EC9F8, 0x00000000, 0x80868309, 0x2BED4832, 0x1170AC1E, 0x5A724E6C,
-                0x0EFFFBFD, 0x8538560F, 0xAED51E3D, 0x2D392736, 0x0FD9640A, 0x5CA62168, 0x5B54D19B, 0x362E3A24,
-                0x0A67B10C, 0x57E70F93, 0xEE96D2B4, 0x9B919E1B, 0xC0C54F80, 0xDC20A261, 0x774B695A, 0x121A161C,
-                0x93BA0AE2, 0xA02AE5C0, 0x22E0433C, 0x1B171D12, 0x090D0B0E, 0x8BC7ADF2, 0xB6A8B92D, 0x1EA9C814,
-                0xF1198557, 0x75074CAF, 0x99DDBBEE, 0x7F60FDA3, 0x01269FF7, 0x72F5BC5C, 0x663BC544, 0xFB7E345B,
-                0x4329768B, 0x23C6DCCB, 0xEDFC68B6, 0xE4F163B8, 0x31DCCAD7, 0x63851042, 0x97224013, 0xC6112084,
-                0x4A247D85, 0xBB3DF8D2, 0xF93211AE, 0x29A16DC7, 0x9E2F4B1D, 0xB230F3DC, 0x8652EC0D, 0xC1E3D077,
-                0xB3166C2B, 0x70B999A9, 0x9448FA11, 0xE9642247, 0xFC8CC4A8, 0xF03F1AA0, 0x7D2CD856, 0x3390EF22,
-                0x494EC787, 0x38D1C1D9, 0xCAA2FE8C, 0xD40B3698, 0xF581CFA6, 0x7ADE28A5, 0xB78E26DA, 0xADBFA43F,
-                0x3A9DE42C, 0x78920D50, 0x5FCC9B6A, 0x7E466254, 0x8D13C2F6, 0xD8B8E890, 0x39F75E2E, 0xC3AFF582,
-                0x5D80BE9F, 0xD0937C69, 0xD52DA96F, 0x2512B3CF, 0xAC993BC8, 0x187DA710, 0x9C636EE8, 0x3BBB7BDB,
-                0x267809CD, 0x5918F46E, 0x9AB701EC, 0x4F9AA883, 0x956E65E6, 0xFFE67EAA, 0xBCCF0821, 0x15E8E6EF,
-                0xE79BD9BA, 0x6F36CE4A, 0x9F09D4EA, 0xB07CD629, 0xA4B2AF31, 0x3F23312A, 0xA59430C6, 0xA266C035,
-                0x4EBC3774, 0x82CAA6FC, 0x90D0B0E0, 0xA7D81533, 0x04984AF1, 0xECDAF741, 0xCD500E7F, 0x91F62F17,
-                0x4DD68D76, 0xEFB04D43, 0xAA4D54CC, 0x9604DFE4, 0xD1B5E39E, 0x6A881B4C, 0x2C1FB8C1, 0x65517F46,
-                0x5EEA049D, 0x8C355D01, 0x877473FA, 0x0B412EFB, 0x671D5AB3, 0xDBD25292, 0x105633E9, 0xD647136D,
-                0xD7618C9A, 0xA10C7A37, 0xF8148E59, 0x133C89EB, 0xA927EECE, 0x61C935B7, 0x1CE5EDE1, 0x47B13C7A,
-                0xD2DF599C, 0xF2733F55, 0x14CE7918, 0xC737BF73, 0xF7CDEA53, 0xFDAA5B5F, 0x3D6F14DF, 0x44DB8678,
-                0xAFF381CA, 0x68C43EB9, 0x24342C38, 0xA3405FC2, 0x1DC37216, 0xE2250CBC, 0x3C498B28, 0x0D9541FF,
-                0xA8017139, 0x0CB3DE08, 0xB4E49CD8, 0x56C19064, 0xCB84617B, 0x32B670D5, 0x6C5C7448, 0xB85742D0
-            ));
-
-            foreach ($dt3 as $dt3i) {
-                $dt0[] = (($dt3i << 24) & 0xFF000000) | (($dt3i >>  8) & 0x00FFFFFF);
-                $dt1[] = (($dt3i << 16) & 0xFFFF0000) | (($dt3i >> 16) & 0x0000FFFF);
-                $dt2[] = (($dt3i <<  8) & 0xFFFFFF00) | (($dt3i >> 24) & 0x000000FF);
-            };
-
-            $tables = array(
-                // The Precomputed inverse mixColumns tables dt0 - dt3
-                $dt0,
-                $dt1,
-                $dt2,
-                $dt3,
-                // The inverse SubByte S-Box
-                array(
-                    0x52, 0x09, 0x6A, 0xD5, 0x30, 0x36, 0xA5, 0x38, 0xBF, 0x40, 0xA3, 0x9E, 0x81, 0xF3, 0xD7, 0xFB,
-                    0x7C, 0xE3, 0x39, 0x82, 0x9B, 0x2F, 0xFF, 0x87, 0x34, 0x8E, 0x43, 0x44, 0xC4, 0xDE, 0xE9, 0xCB,
-                    0x54, 0x7B, 0x94, 0x32, 0xA6, 0xC2, 0x23, 0x3D, 0xEE, 0x4C, 0x95, 0x0B, 0x42, 0xFA, 0xC3, 0x4E,
-                    0x08, 0x2E, 0xA1, 0x66, 0x28, 0xD9, 0x24, 0xB2, 0x76, 0x5B, 0xA2, 0x49, 0x6D, 0x8B, 0xD1, 0x25,
-                    0x72, 0xF8, 0xF6, 0x64, 0x86, 0x68, 0x98, 0x16, 0xD4, 0xA4, 0x5C, 0xCC, 0x5D, 0x65, 0xB6, 0x92,
-                    0x6C, 0x70, 0x48, 0x50, 0xFD, 0xED, 0xB9, 0xDA, 0x5E, 0x15, 0x46, 0x57, 0xA7, 0x8D, 0x9D, 0x84,
-                    0x90, 0xD8, 0xAB, 0x00, 0x8C, 0xBC, 0xD3, 0x0A, 0xF7, 0xE4, 0x58, 0x05, 0xB8, 0xB3, 0x45, 0x06,
-                    0xD0, 0x2C, 0x1E, 0x8F, 0xCA, 0x3F, 0x0F, 0x02, 0xC1, 0xAF, 0xBD, 0x03, 0x01, 0x13, 0x8A, 0x6B,
-                    0x3A, 0x91, 0x11, 0x41, 0x4F, 0x67, 0xDC, 0xEA, 0x97, 0xF2, 0xCF, 0xCE, 0xF0, 0xB4, 0xE6, 0x73,
-                    0x96, 0xAC, 0x74, 0x22, 0xE7, 0xAD, 0x35, 0x85, 0xE2, 0xF9, 0x37, 0xE8, 0x1C, 0x75, 0xDF, 0x6E,
-                    0x47, 0xF1, 0x1A, 0x71, 0x1D, 0x29, 0xC5, 0x89, 0x6F, 0xB7, 0x62, 0x0E, 0xAA, 0x18, 0xBE, 0x1B,
-                    0xFC, 0x56, 0x3E, 0x4B, 0xC6, 0xD2, 0x79, 0x20, 0x9A, 0xDB, 0xC0, 0xFE, 0x78, 0xCD, 0x5A, 0xF4,
-                    0x1F, 0xDD, 0xA8, 0x33, 0x88, 0x07, 0xC7, 0x31, 0xB1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xEC, 0x5F,
-                    0x60, 0x51, 0x7F, 0xA9, 0x19, 0xB5, 0x4A, 0x0D, 0x2D, 0xE5, 0x7A, 0x9F, 0x93, 0xC9, 0x9C, 0xEF,
-                    0xA0, 0xE0, 0x3B, 0x4D, 0xAE, 0x2A, 0xF5, 0xB0, 0xC8, 0xEB, 0xBB, 0x3C, 0x83, 0x53, 0x99, 0x61,
-                    0x17, 0x2B, 0x04, 0x7E, 0xBA, 0x77, 0xD6, 0x26, 0xE1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0C, 0x7D
-                )
-            );
-        }
-        return $tables;
-    }
-
-    /**
-     * Setup the performance-optimized function for de/encrypt()
-     *
-     * @see \phpseclib\Crypt\Base::_setupInlineCrypt()
-     * @access private
-     */
-    function _setupInlineCrypt()
-    {
-        // Note: _setupInlineCrypt() will be called only if $this->changed === true
-        // So here we are'nt under the same heavy timing-stress as we are in _de/encryptBlock() or de/encrypt().
-        // However...the here generated function- $code, stored as php callback in $this->inline_crypt, must work as fast as even possible.
-
-        $lambda_functions =& self::_getLambdaFunctions();
-
-        // We create max. 10 hi-optimized code for memory reason. Means: For each $key one ultra fast inline-crypt function.
-        // (Currently, for Crypt_Rijndael/AES, one generated $lambda_function cost on php5.5@32bit ~80kb unfreeable mem and ~130kb on php5.5@64bit)
-        // After that, we'll still create very fast optimized code but not the hi-ultimative code, for each $mode one.
-        $gen_hi_opt_code = (bool)(count($lambda_functions) < 10);
-
-        // Generation of a uniqe hash for our generated code
-        $code_hash = "Crypt_Rijndael, {$this->mode}, {$this->Nr}, {$this->Nb}";
-        if ($gen_hi_opt_code) {
-            $code_hash = str_pad($code_hash, 32) . $this->_hashInlineCryptFunction($this->key);
-        }
-
-        if (!isset($lambda_functions[$code_hash])) {
-            switch (true) {
-                case $gen_hi_opt_code:
-                    // The hi-optimized $lambda_functions will use the key-words hardcoded for better performance.
-                    $w  = $this->w;
-                    $dw = $this->dw;
-                    $init_encrypt = '';
-                    $init_decrypt = '';
-                    break;
-                default:
-                    for ($i = 0, $cw = count($this->w); $i < $cw; ++$i) {
-                        $w[]  = '$w['  . $i . ']';
-                        $dw[] = '$dw[' . $i . ']';
-                    }
-                    $init_encrypt = '$w  = $self->w;';
-                    $init_decrypt = '$dw = $self->dw;';
-            }
-
-            $Nr = $this->Nr;
-            $Nb = $this->Nb;
-            $c  = $this->c;
-
-            // Generating encrypt code:
-            $init_encrypt.= '
-                static $tables;
-                if (empty($tables)) {
-                    $tables = &$self->_getTables();
-                }
-                $t0   = $tables[0];
-                $t1   = $tables[1];
-                $t2   = $tables[2];
-                $t3   = $tables[3];
-                $sbox = $tables[4];
-            ';
-
-            $s  = 'e';
-            $e  = 's';
-            $wc = $Nb - 1;
-
-            // Preround: addRoundKey
-            $encrypt_block = '$in = unpack("N*", $in);'."\n";
-            for ($i = 0; $i < $Nb; ++$i) {
-                $encrypt_block .= '$s'.$i.' = $in['.($i + 1).'] ^ '.$w[++$wc].";\n";
-            }
-
-            // Mainrounds: shiftRows + subWord + mixColumns + addRoundKey
-            for ($round = 1; $round < $Nr; ++$round) {
-                list($s, $e) = array($e, $s);
-                for ($i = 0; $i < $Nb; ++$i) {
-                    $encrypt_block.=
-                        '$'.$e.$i.' =
-                        $t0[($'.$s.$i                  .' >> 24) & 0xff] ^
-                        $t1[($'.$s.(($i + $c[1]) % $Nb).' >> 16) & 0xff] ^
-                        $t2[($'.$s.(($i + $c[2]) % $Nb).' >>  8) & 0xff] ^
-                        $t3[ $'.$s.(($i + $c[3]) % $Nb).'        & 0xff] ^
-                        '.$w[++$wc].";\n";
-                }
-            }
-
-            // Finalround: subWord + shiftRows + addRoundKey
-            for ($i = 0; $i < $Nb; ++$i) {
-                $encrypt_block.=
-                    '$'.$e.$i.' =
-                     $sbox[ $'.$e.$i.'        & 0xff]        |
-                    ($sbox[($'.$e.$i.' >>  8) & 0xff] <<  8) |
-                    ($sbox[($'.$e.$i.' >> 16) & 0xff] << 16) |
-                    ($sbox[($'.$e.$i.' >> 24) & 0xff] << 24);'."\n";
-            }
-            $encrypt_block .= '$in = pack("N*"'."\n";
-            for ($i = 0; $i < $Nb; ++$i) {
-                $encrypt_block.= ',
-                    ($'.$e.$i                  .' & '.((int)0xFF000000).') ^
-                    ($'.$e.(($i + $c[1]) % $Nb).' &         0x00FF0000   ) ^
-                    ($'.$e.(($i + $c[2]) % $Nb).' &         0x0000FF00   ) ^
-                    ($'.$e.(($i + $c[3]) % $Nb).' &         0x000000FF   ) ^
-                    '.$w[$i]."\n";
-            }
-            $encrypt_block .= ');';
-
-            // Generating decrypt code:
-            $init_decrypt.= '
-                static $invtables;
-                if (empty($invtables)) {
-                    $invtables = &$self->_getInvTables();
-                }
-                $dt0   = $invtables[0];
-                $dt1   = $invtables[1];
-                $dt2   = $invtables[2];
-                $dt3   = $invtables[3];
-                $isbox = $invtables[4];
-            ';
-
-            $s  = 'e';
-            $e  = 's';
-            $wc = $Nb - 1;
-
-            // Preround: addRoundKey
-            $decrypt_block = '$in = unpack("N*", $in);'."\n";
-            for ($i = 0; $i < $Nb; ++$i) {
-                $decrypt_block .= '$s'.$i.' = $in['.($i + 1).'] ^ '.$dw[++$wc].';'."\n";
-            }
-
-            // Mainrounds: shiftRows + subWord + mixColumns + addRoundKey
-            for ($round = 1; $round < $Nr; ++$round) {
-                list($s, $e) = array($e, $s);
-                for ($i = 0; $i < $Nb; ++$i) {
-                    $decrypt_block.=
-                        '$'.$e.$i.' =
-                        $dt0[($'.$s.$i                        .' >> 24) & 0xff] ^
-                        $dt1[($'.$s.(($Nb + $i - $c[1]) % $Nb).' >> 16) & 0xff] ^
-                        $dt2[($'.$s.(($Nb + $i - $c[2]) % $Nb).' >>  8) & 0xff] ^
-                        $dt3[ $'.$s.(($Nb + $i - $c[3]) % $Nb).'        & 0xff] ^
-                        '.$dw[++$wc].";\n";
-                }
-            }
-
-            // Finalround: subWord + shiftRows + addRoundKey
-            for ($i = 0; $i < $Nb; ++$i) {
-                $decrypt_block.=
-                    '$'.$e.$i.' =
-                     $isbox[ $'.$e.$i.'        & 0xff]        |
-                    ($isbox[($'.$e.$i.' >>  8) & 0xff] <<  8) |
-                    ($isbox[($'.$e.$i.' >> 16) & 0xff] << 16) |
-                    ($isbox[($'.$e.$i.' >> 24) & 0xff] << 24);'."\n";
-            }
-            $decrypt_block .= '$in = pack("N*"'."\n";
-            for ($i = 0; $i < $Nb; ++$i) {
-                $decrypt_block.= ',
-                    ($'.$e.$i.                        ' & '.((int)0xFF000000).') ^
-                    ($'.$e.(($Nb + $i - $c[1]) % $Nb).' &         0x00FF0000   ) ^
-                    ($'.$e.(($Nb + $i - $c[2]) % $Nb).' &         0x0000FF00   ) ^
-                    ($'.$e.(($Nb + $i - $c[3]) % $Nb).' &         0x000000FF   ) ^
-                    '.$dw[$i]."\n";
-            }
-            $decrypt_block .= ');';
-
-            $lambda_functions[$code_hash] = $this->_createInlineCryptFunction(
-                array(
-                   'init_crypt'    => '',
-                   'init_encrypt'  => $init_encrypt,
-                   'init_decrypt'  => $init_decrypt,
-                   'encrypt_block' => $encrypt_block,
-                   'decrypt_block' => $decrypt_block
-                )
-            );
-        }
-        $this->inline_crypt = $lambda_functions[$code_hash];
-    }
-}
diff --git a/wiki/vendor/phpseclib/phpseclib/phpseclib/Crypt/TripleDES.php b/wiki/vendor/phpseclib/phpseclib/phpseclib/Crypt/TripleDES.php
deleted file mode 100644
index a2c4166..0000000
--- a/wiki/vendor/phpseclib/phpseclib/phpseclib/Crypt/TripleDES.php
+++ /dev/null
@@ -1,460 +0,0 @@
-<?php
-
-/**
- * Pure-PHP implementation of Triple DES.
- *
- * Uses mcrypt, if available, and an internal implementation, otherwise.  Operates in the EDE3 mode (encrypt-decrypt-encrypt).
- *
- * PHP version 5
- *
- * Here's a short example of how to use this library:
- * <code>
- * <?php
- *    include 'vendor/autoload.php';
- *
- *    $des = new \phpseclib\Crypt\TripleDES();
- *
- *    $des->setKey('abcdefghijklmnopqrstuvwx');
- *
- *    $size = 10 * 1024;
- *    $plaintext = '';
- *    for ($i = 0; $i < $size; $i++) {
- *        $plaintext.= 'a';
- *    }
- *
- *    echo $des->decrypt($des->encrypt($plaintext));
- * ?>
- * </code>
- *
- * @category  Crypt
- * @package   TripleDES
- * @author    Jim Wigginton <terrafrost@php.net>
- * @copyright 2007 Jim Wigginton
- * @license   http://www.opensource.org/licenses/mit-license.html  MIT License
- * @link      http://phpseclib.sourceforge.net
- */
-
-namespace phpseclib\Crypt;
-
-/**
- * Pure-PHP implementation of Triple DES.
- *
- * @package TripleDES
- * @author  Jim Wigginton <terrafrost@php.net>
- * @access  public
- */
-class TripleDES extends DES
-{
-    /**
-     * Encrypt / decrypt using inner chaining
-     *
-     * Inner chaining is used by SSH-1 and is generally considered to be less secure then outer chaining (self::MODE_CBC3).
-     */
-    const MODE_3CBC = -2;
-
-    /**
-     * Encrypt / decrypt using outer chaining
-     *
-     * Outer chaining is used by SSH-2 and when the mode is set to \phpseclib\Crypt\Base::MODE_CBC.
-     */
-    const MODE_CBC3 = Base::MODE_CBC;
-
-    /**
-     * Key Length (in bytes)
-     *
-     * @see \phpseclib\Crypt\TripleDES::setKeyLength()
-     * @var int
-     * @access private
-     */
-    var $key_length = 24;
-
-    /**
-     * The default salt used by setPassword()
-     *
-     * @see \phpseclib\Crypt\Base::password_default_salt
-     * @see \phpseclib\Crypt\Base::setPassword()
-     * @var string
-     * @access private
-     */
-    var $password_default_salt = 'phpseclib';
-
-    /**
-     * The mcrypt specific name of the cipher
-     *
-     * @see \phpseclib\Crypt\DES::cipher_name_mcrypt
-     * @see \phpseclib\Crypt\Base::cipher_name_mcrypt
-     * @var string
-     * @access private
-     */
-    var $cipher_name_mcrypt = 'tripledes';
-
-    /**
-     * Optimizing value while CFB-encrypting
-     *
-     * @see \phpseclib\Crypt\Base::cfb_init_len
-     * @var int
-     * @access private
-     */
-    var $cfb_init_len = 750;
-
-    /**
-     * max possible size of $key
-     *
-     * @see self::setKey()
-     * @see \phpseclib\Crypt\DES::setKey()
-     * @var string
-     * @access private
-     */
-    var $key_length_max = 24;
-
-    /**
-     * Internal flag whether using self::MODE_3CBC or not
-     *
-     * @var bool
-     * @access private
-     */
-    var $mode_3cbc;
-
-    /**
-     * The \phpseclib\Crypt\DES objects
-     *
-     * Used only if $mode_3cbc === true
-     *
-     * @var array
-     * @access private
-     */
-    var $des;
-
-    /**
-     * Default Constructor.
-     *
-     * Determines whether or not the mcrypt extension should be used.
-     *
-     * $mode could be:
-     *
-     * - \phpseclib\Crypt\Base::MODE_ECB
-     *
-     * - \phpseclib\Crypt\Base::MODE_CBC
-     *
-     * - \phpseclib\Crypt\Base::MODE_CTR
-     *
-     * - \phpseclib\Crypt\Base::MODE_CFB
-     *
-     * - \phpseclib\Crypt\Base::MODE_OFB
-     *
-     * - \phpseclib\Crypt\TripleDES::MODE_3CBC
-     *
-     * If not explicitly set, \phpseclib\Crypt\Base::MODE_CBC will be used.
-     *
-     * @see \phpseclib\Crypt\DES::__construct()
-     * @see \phpseclib\Crypt\Base::__construct()
-     * @param int $mode
-     * @access public
-     */
-    function __construct($mode = Base::MODE_CBC)
-    {
-        switch ($mode) {
-            // In case of self::MODE_3CBC, we init as CRYPT_DES_MODE_CBC
-            // and additional flag us internally as 3CBC
-            case self::MODE_3CBC:
-                parent::__construct(Base::MODE_CBC);
-                $this->mode_3cbc = true;
-
-                // This three $des'es will do the 3CBC work (if $key > 64bits)
-                $this->des = array(
-                    new DES(Base::MODE_CBC),
-                    new DES(Base::MODE_CBC),
-                    new DES(Base::MODE_CBC),
-                );
-
-                // we're going to be doing the padding, ourselves, so disable it in the \phpseclib\Crypt\DES objects
-                $this->des[0]->disablePadding();
-                $this->des[1]->disablePadding();
-                $this->des[2]->disablePadding();
-                break;
-            // If not 3CBC, we init as usual
-            default:
-                parent::__construct($mode);
-        }
-    }
-
-    /**
-     * Test for engine validity
-     *
-     * This is mainly just a wrapper to set things up for \phpseclib\Crypt\Base::isValidEngine()
-     *
-     * @see \phpseclib\Crypt\Base::__construct()
-     * @param int $engine
-     * @access public
-     * @return bool
-     */
-    function isValidEngine($engine)
-    {
-        if ($engine == self::ENGINE_OPENSSL) {
-            $this->cipher_name_openssl_ecb = 'des-ede3';
-            $mode = $this->_openssl_translate_mode();
-            $this->cipher_name_openssl = $mode == 'ecb' ? 'des-ede3' : 'des-ede3-' . $mode;
-        }
-
-        return parent::isValidEngine($engine);
-    }
-
-    /**
-     * Sets the initialization vector. (optional)
-     *
-     * SetIV is not required when \phpseclib\Crypt\Base::MODE_ECB is being used.  If not explicitly set, it'll be assumed
-     * to be all zero's.
-     *
-     * @see \phpseclib\Crypt\Base::setIV()
-     * @access public
-     * @param string $iv
-     */
-    function setIV($iv)
-    {
-        parent::setIV($iv);
-        if ($this->mode_3cbc) {
-            $this->des[0]->setIV($iv);
-            $this->des[1]->setIV($iv);
-            $this->des[2]->setIV($iv);
-        }
-    }
-
-    /**
-     * Sets the key length.
-     *
-     * Valid key lengths are 64, 128 and 192
-     *
-     * @see \phpseclib\Crypt\Base:setKeyLength()
-     * @access public
-     * @param int $length
-     */
-    function setKeyLength($length)
-    {
-        $length >>= 3;
-        switch (true) {
-            case $length <= 8:
-                $this->key_length = 8;
-                break;
-            case $length <= 16:
-                $this->key_length = 16;
-                break;
-            default:
-                $this->key_length = 24;
-        }
-
-        parent::setKeyLength($length);
-    }
-
-    /**
-     * Sets the key.
-     *
-     * Keys can be of any length.  Triple DES, itself, can use 128-bit (eg. strlen($key) == 16) or
-     * 192-bit (eg. strlen($key) == 24) keys.  This function pads and truncates $key as appropriate.
-     *
-     * DES also requires that every eighth bit be a parity bit, however, we'll ignore that.
-     *
-     * If the key is not explicitly set, it'll be assumed to be all null bytes.
-     *
-     * @access public
-     * @see \phpseclib\Crypt\DES::setKey()
-     * @see \phpseclib\Crypt\Base::setKey()
-     * @param string $key
-     */
-    function setKey($key)
-    {
-        $length = $this->explicit_key_length ? $this->key_length : strlen($key);
-        if ($length > 8) {
-            $key = str_pad(substr($key, 0, 24), 24, chr(0));
-            // if $key is between 64 and 128-bits, use the first 64-bits as the last, per this:
-            // http://php.net/function.mcrypt-encrypt#47973
-            $key = $length <= 16 ? substr_replace($key, substr($key, 0, 8), 16) : substr($key, 0, 24);
-        } else {
-            $key = str_pad($key, 8, chr(0));
-        }
-        parent::setKey($key);
-
-        // And in case of self::MODE_3CBC:
-        // if key <= 64bits we not need the 3 $des to work,
-        // because we will then act as regular DES-CBC with just a <= 64bit key.
-        // So only if the key > 64bits (> 8 bytes) we will call setKey() for the 3 $des.
-        if ($this->mode_3cbc && $length > 8) {
-            $this->des[0]->setKey(substr($key,  0, 8));
-            $this->des[1]->setKey(substr($key,  8, 8));
-            $this->des[2]->setKey(substr($key, 16, 8));
-        }
-    }
-
-    /**
-     * Encrypts a message.
-     *
-     * @see \phpseclib\Crypt\Base::encrypt()
-     * @access public
-     * @param string $plaintext
-     * @return string $cipertext
-     */
-    function encrypt($plaintext)
-    {
-        // parent::en/decrypt() is able to do all the work for all modes and keylengths,
-        // except for: self::MODE_3CBC (inner chaining CBC) with a key > 64bits
-
-        // if the key is smaller then 8, do what we'd normally do
-        if ($this->mode_3cbc && strlen($this->key) > 8) {
-            return $this->des[2]->encrypt(
-                $this->des[1]->decrypt(
-                    $this->des[0]->encrypt(
-                        $this->_pad($plaintext)
-                    )
-                )
-            );
-        }
-
-        return parent::encrypt($plaintext);
-    }
-
-    /**
-     * Decrypts a message.
-     *
-     * @see \phpseclib\Crypt\Base::decrypt()
-     * @access public
-     * @param string $ciphertext
-     * @return string $plaintext
-     */
-    function decrypt($ciphertext)
-    {
-        if ($this->mode_3cbc && strlen($this->key) > 8) {
-            return $this->_unpad(
-                $this->des[0]->decrypt(
-                    $this->des[1]->encrypt(
-                        $this->des[2]->decrypt(
-                            str_pad($ciphertext, (strlen($ciphertext) + 7) & 0xFFFFFFF8, "\0")
-                        )
-                    )
-                )
-            );
-        }
-
-        return parent::decrypt($ciphertext);
-    }
-
-    /**
-     * Treat consecutive "packets" as if they are a continuous buffer.
-     *
-     * Say you have a 16-byte plaintext $plaintext.  Using the default behavior, the two following code snippets
-     * will yield different outputs:
-     *
-     * <code>
-     *    echo $des->encrypt(substr($plaintext, 0, 8));
-     *    echo $des->encrypt(substr($plaintext, 8, 8));
-     * </code>
-     * <code>
-     *    echo $des->encrypt($plaintext);
-     * </code>
-     *
-     * The solution is to enable the continuous buffer.  Although this will resolve the above discrepancy, it creates
-     * another, as demonstrated with the following:
-     *
-     * <code>
-     *    $des->encrypt(substr($plaintext, 0, 8));
-     *    echo $des->decrypt($des->encrypt(substr($plaintext, 8, 8)));
-     * </code>
-     * <code>
-     *    echo $des->decrypt($des->encrypt(substr($plaintext, 8, 8)));
-     * </code>
-     *
-     * With the continuous buffer disabled, these would yield the same output.  With it enabled, they yield different
-     * outputs.  The reason is due to the fact that the initialization vector's change after every encryption /
-     * decryption round when the continuous buffer is enabled.  When it's disabled, they remain constant.
-     *
-     * Put another way, when the continuous buffer is enabled, the state of the \phpseclib\Crypt\DES() object changes after each
-     * encryption / decryption round, whereas otherwise, it'd remain constant.  For this reason, it's recommended that
-     * continuous buffers not be used.  They do offer better security and are, in fact, sometimes required (SSH uses them),
-     * however, they are also less intuitive and more likely to cause you problems.
-     *
-     * @see \phpseclib\Crypt\Base::enableContinuousBuffer()
-     * @see self::disableContinuousBuffer()
-     * @access public
-     */
-    function enableContinuousBuffer()
-    {
-        parent::enableContinuousBuffer();
-        if ($this->mode_3cbc) {
-            $this->des[0]->enableContinuousBuffer();
-            $this->des[1]->enableContinuousBuffer();
-            $this->des[2]->enableContinuousBuffer();
-        }
-    }
-
-    /**
-     * Treat consecutive packets as if they are a discontinuous buffer.
-     *
-     * The default behavior.
-     *
-     * @see \phpseclib\Crypt\Base::disableContinuousBuffer()
-     * @see self::enableContinuousBuffer()
-     * @access public
-     */
-    function disableContinuousBuffer()
-    {
-        parent::disableContinuousBuffer();
-        if ($this->mode_3cbc) {
-            $this->des[0]->disableContinuousBuffer();
-            $this->des[1]->disableContinuousBuffer();
-            $this->des[2]->disableContinuousBuffer();
-        }
-    }
-
-    /**
-     * Creates the key schedule
-     *
-     * @see \phpseclib\Crypt\DES::_setupKey()
-     * @see \phpseclib\Crypt\Base::_setupKey()
-     * @access private
-     */
-    function _setupKey()
-    {
-        switch (true) {
-            // if $key <= 64bits we configure our internal pure-php cipher engine
-            // to act as regular [1]DES, not as 3DES. mcrypt.so::tripledes does the same.
-            case strlen($this->key) <= 8:
-                $this->des_rounds = 1;
-                break;
-
-            // otherwise, if $key > 64bits, we configure our engine to work as 3DES.
-            default:
-                $this->des_rounds = 3;
-
-                // (only) if 3CBC is used we have, of course, to setup the $des[0-2] keys also separately.
-                if ($this->mode_3cbc) {
-                    $this->des[0]->_setupKey();
-                    $this->des[1]->_setupKey();
-                    $this->des[2]->_setupKey();
-
-                    // because $des[0-2] will, now, do all the work we can return here
-                    // not need unnecessary stress parent::_setupKey() with our, now unused, $key.
-                    return;
-                }
-        }
-        // setup our key
-        parent::_setupKey();
-    }
-
-    /**
-     * Sets the internal crypt engine
-     *
-     * @see \phpseclib\Crypt\Base::__construct()
-     * @see \phpseclib\Crypt\Base::setPreferredEngine()
-     * @param int $engine
-     * @access public
-     * @return int
-     */
-    function setPreferredEngine($engine)
-    {
-        if ($this->mode_3cbc) {
-            $this->des[0]->setPreferredEngine($engine);
-            $this->des[1]->setPreferredEngine($engine);
-            $this->des[2]->setPreferredEngine($engine);
-        }
-
-        return parent::setPreferredEngine($engine);
-    }
-}
diff --git a/wiki/vendor/phpseclib/phpseclib/phpseclib/Crypt/Twofish.php b/wiki/vendor/phpseclib/phpseclib/phpseclib/Crypt/Twofish.php
deleted file mode 100644
index 70980a2..0000000
--- a/wiki/vendor/phpseclib/phpseclib/phpseclib/Crypt/Twofish.php
+++ /dev/null
@@ -1,816 +0,0 @@
-<?php
-
-/**
- * Pure-PHP implementation of Twofish.
- *
- * Uses mcrypt, if available, and an internal implementation, otherwise.
- *
- * PHP version 5
- *
- * Useful resources are as follows:
- *
- *  - {@link http://en.wikipedia.org/wiki/Twofish Wikipedia description of Twofish}
- *
- * Here's a short example of how to use this library:
- * <code>
- * <?php
- *    include 'vendor/autoload.php';
- *
- *    $twofish = new \phpseclib\Crypt\Twofish();
- *
- *    $twofish->setKey('12345678901234567890123456789012');
- *
- *    $plaintext = str_repeat('a', 1024);
- *
- *    echo $twofish->decrypt($twofish->encrypt($plaintext));
- * ?>
- * </code>
- *
- * @category  Crypt
- * @package   Twofish
- * @author    Jim Wigginton <terrafrost@php.net>
- * @author    Hans-Juergen Petrich <petrich@tronic-media.com>
- * @copyright 2007 Jim Wigginton
- * @license   http://www.opensource.org/licenses/mit-license.html  MIT License
- * @link      http://phpseclib.sourceforge.net
- */
-
-namespace phpseclib\Crypt;
-
-/**
- * Pure-PHP implementation of Twofish.
- *
- * @package Twofish
- * @author  Jim Wigginton <terrafrost@php.net>
- * @author  Hans-Juergen Petrich <petrich@tronic-media.com>
- * @access  public
- */
-class Twofish extends Base
-{
-    /**
-     * The mcrypt specific name of the cipher
-     *
-     * @see \phpseclib\Crypt\Base::cipher_name_mcrypt
-     * @var string
-     * @access private
-     */
-    var $cipher_name_mcrypt = 'twofish';
-
-    /**
-     * Optimizing value while CFB-encrypting
-     *
-     * @see \phpseclib\Crypt\Base::cfb_init_len
-     * @var int
-     * @access private
-     */
-    var $cfb_init_len = 800;
-
-    /**
-     * Q-Table
-     *
-     * @var array
-     * @access private
-     */
-    var $q0 = array(
-        0xA9, 0x67, 0xB3, 0xE8, 0x04, 0xFD, 0xA3, 0x76,
-        0x9A, 0x92, 0x80, 0x78, 0xE4, 0xDD, 0xD1, 0x38,
-        0x0D, 0xC6, 0x35, 0x98, 0x18, 0xF7, 0xEC, 0x6C,
-        0x43, 0x75, 0x37, 0x26, 0xFA, 0x13, 0x94, 0x48,
-        0xF2, 0xD0, 0x8B, 0x30, 0x84, 0x54, 0xDF, 0x23,
-        0x19, 0x5B, 0x3D, 0x59, 0xF3, 0xAE, 0xA2, 0x82,
-        0x63, 0x01, 0x83, 0x2E, 0xD9, 0x51, 0x9B, 0x7C,
-        0xA6, 0xEB, 0xA5, 0xBE, 0x16, 0x0C, 0xE3, 0x61,
-        0xC0, 0x8C, 0x3A, 0xF5, 0x73, 0x2C, 0x25, 0x0B,
-        0xBB, 0x4E, 0x89, 0x6B, 0x53, 0x6A, 0xB4, 0xF1,
-        0xE1, 0xE6, 0xBD, 0x45, 0xE2, 0xF4, 0xB6, 0x66,
-        0xCC, 0x95, 0x03, 0x56, 0xD4, 0x1C, 0x1E, 0xD7,
-        0xFB, 0xC3, 0x8E, 0xB5, 0xE9, 0xCF, 0xBF, 0xBA,
-        0xEA, 0x77, 0x39, 0xAF, 0x33, 0xC9, 0x62, 0x71,
-        0x81, 0x79, 0x09, 0xAD, 0x24, 0xCD, 0xF9, 0xD8,
-        0xE5, 0xC5, 0xB9, 0x4D, 0x44, 0x08, 0x86, 0xE7,
-        0xA1, 0x1D, 0xAA, 0xED, 0x06, 0x70, 0xB2, 0xD2,
-        0x41, 0x7B, 0xA0, 0x11, 0x31, 0xC2, 0x27, 0x90,
-        0x20, 0xF6, 0x60, 0xFF, 0x96, 0x5C, 0xB1, 0xAB,
-        0x9E, 0x9C, 0x52, 0x1B, 0x5F, 0x93, 0x0A, 0xEF,
-        0x91, 0x85, 0x49, 0xEE, 0x2D, 0x4F, 0x8F, 0x3B,
-        0x47, 0x87, 0x6D, 0x46, 0xD6, 0x3E, 0x69, 0x64,
-        0x2A, 0xCE, 0xCB, 0x2F, 0xFC, 0x97, 0x05, 0x7A,
-        0xAC, 0x7F, 0xD5, 0x1A, 0x4B, 0x0E, 0xA7, 0x5A,
-        0x28, 0x14, 0x3F, 0x29, 0x88, 0x3C, 0x4C, 0x02,
-        0xB8, 0xDA, 0xB0, 0x17, 0x55, 0x1F, 0x8A, 0x7D,
-        0x57, 0xC7, 0x8D, 0x74, 0xB7, 0xC4, 0x9F, 0x72,
-        0x7E, 0x15, 0x22, 0x12, 0x58, 0x07, 0x99, 0x34,
-        0x6E, 0x50, 0xDE, 0x68, 0x65, 0xBC, 0xDB, 0xF8,
-        0xC8, 0xA8, 0x2B, 0x40, 0xDC, 0xFE, 0x32, 0xA4,
-        0xCA, 0x10, 0x21, 0xF0, 0xD3, 0x5D, 0x0F, 0x00,
-        0x6F, 0x9D, 0x36, 0x42, 0x4A, 0x5E, 0xC1, 0xE0
-    );
-
-    /**
-     * Q-Table
-     *
-     * @var array
-     * @access private
-     */
-    var $q1 = array(
-        0x75, 0xF3, 0xC6, 0xF4, 0xDB, 0x7B, 0xFB, 0xC8,
-        0x4A, 0xD3, 0xE6, 0x6B, 0x45, 0x7D, 0xE8, 0x4B,
-        0xD6, 0x32, 0xD8, 0xFD, 0x37, 0x71, 0xF1, 0xE1,
-        0x30, 0x0F, 0xF8, 0x1B, 0x87, 0xFA, 0x06, 0x3F,
-        0x5E, 0xBA, 0xAE, 0x5B, 0x8A, 0x00, 0xBC, 0x9D,
-        0x6D, 0xC1, 0xB1, 0x0E, 0x80, 0x5D, 0xD2, 0xD5,
-        0xA0, 0x84, 0x07, 0x14, 0xB5, 0x90, 0x2C, 0xA3,
-        0xB2, 0x73, 0x4C, 0x54, 0x92, 0x74, 0x36, 0x51,
-        0x38, 0xB0, 0xBD, 0x5A, 0xFC, 0x60, 0x62, 0x96,
-        0x6C, 0x42, 0xF7, 0x10, 0x7C, 0x28, 0x27, 0x8C,
-        0x13, 0x95, 0x9C, 0xC7, 0x24, 0x46, 0x3B, 0x70,
-        0xCA, 0xE3, 0x85, 0xCB, 0x11, 0xD0, 0x93, 0xB8,
-        0xA6, 0x83, 0x20, 0xFF, 0x9F, 0x77, 0xC3, 0xCC,
-        0x03, 0x6F, 0x08, 0xBF, 0x40, 0xE7, 0x2B, 0xE2,
-        0x79, 0x0C, 0xAA, 0x82, 0x41, 0x3A, 0xEA, 0xB9,
-        0xE4, 0x9A, 0xA4, 0x97, 0x7E, 0xDA, 0x7A, 0x17,
-        0x66, 0x94, 0xA1, 0x1D, 0x3D, 0xF0, 0xDE, 0xB3,
-        0x0B, 0x72, 0xA7, 0x1C, 0xEF, 0xD1, 0x53, 0x3E,
-        0x8F, 0x33, 0x26, 0x5F, 0xEC, 0x76, 0x2A, 0x49,
-        0x81, 0x88, 0xEE, 0x21, 0xC4, 0x1A, 0xEB, 0xD9,
-        0xC5, 0x39, 0x99, 0xCD, 0xAD, 0x31, 0x8B, 0x01,
-        0x18, 0x23, 0xDD, 0x1F, 0x4E, 0x2D, 0xF9, 0x48,
-        0x4F, 0xF2, 0x65, 0x8E, 0x78, 0x5C, 0x58, 0x19,
-        0x8D, 0xE5, 0x98, 0x57, 0x67, 0x7F, 0x05, 0x64,
-        0xAF, 0x63, 0xB6, 0xFE, 0xF5, 0xB7, 0x3C, 0xA5,
-        0xCE, 0xE9, 0x68, 0x44, 0xE0, 0x4D, 0x43, 0x69,
-        0x29, 0x2E, 0xAC, 0x15, 0x59, 0xA8, 0x0A, 0x9E,
-        0x6E, 0x47, 0xDF, 0x34, 0x35, 0x6A, 0xCF, 0xDC,
-        0x22, 0xC9, 0xC0, 0x9B, 0x89, 0xD4, 0xED, 0xAB,
-        0x12, 0xA2, 0x0D, 0x52, 0xBB, 0x02, 0x2F, 0xA9,
-        0xD7, 0x61, 0x1E, 0xB4, 0x50, 0x04, 0xF6, 0xC2,
-        0x16, 0x25, 0x86, 0x56, 0x55, 0x09, 0xBE, 0x91
-    );
-
-    /**
-     * M-Table
-     *
-     * @var array
-     * @access private
-     */
-    var $m0 = array(
-        0xBCBC3275, 0xECEC21F3, 0x202043C6, 0xB3B3C9F4, 0xDADA03DB, 0x02028B7B, 0xE2E22BFB, 0x9E9EFAC8,
-        0xC9C9EC4A, 0xD4D409D3, 0x18186BE6, 0x1E1E9F6B, 0x98980E45, 0xB2B2387D, 0xA6A6D2E8, 0x2626B74B,
-        0x3C3C57D6, 0x93938A32, 0x8282EED8, 0x525298FD, 0x7B7BD437, 0xBBBB3771, 0x5B5B97F1, 0x474783E1,
-        0x24243C30, 0x5151E20F, 0xBABAC6F8, 0x4A4AF31B, 0xBFBF4887, 0x0D0D70FA, 0xB0B0B306, 0x7575DE3F,
-        0xD2D2FD5E, 0x7D7D20BA, 0x666631AE, 0x3A3AA35B, 0x59591C8A, 0x00000000, 0xCDCD93BC, 0x1A1AE09D,
-        0xAEAE2C6D, 0x7F7FABC1, 0x2B2BC7B1, 0xBEBEB90E, 0xE0E0A080, 0x8A8A105D, 0x3B3B52D2, 0x6464BAD5,
-        0xD8D888A0, 0xE7E7A584, 0x5F5FE807, 0x1B1B1114, 0x2C2CC2B5, 0xFCFCB490, 0x3131272C, 0x808065A3,
-        0x73732AB2, 0x0C0C8173, 0x79795F4C, 0x6B6B4154, 0x4B4B0292, 0x53536974, 0x94948F36, 0x83831F51,
-        0x2A2A3638, 0xC4C49CB0, 0x2222C8BD, 0xD5D5F85A, 0xBDBDC3FC, 0x48487860, 0xFFFFCE62, 0x4C4C0796,
-        0x4141776C, 0xC7C7E642, 0xEBEB24F7, 0x1C1C1410, 0x5D5D637C, 0x36362228, 0x6767C027, 0xE9E9AF8C,
-        0x4444F913, 0x1414EA95, 0xF5F5BB9C, 0xCFCF18C7, 0x3F3F2D24, 0xC0C0E346, 0x7272DB3B, 0x54546C70,
-        0x29294CCA, 0xF0F035E3, 0x0808FE85, 0xC6C617CB, 0xF3F34F11, 0x8C8CE4D0, 0xA4A45993, 0xCACA96B8,
-        0x68683BA6, 0xB8B84D83, 0x38382820, 0xE5E52EFF, 0xADAD569F, 0x0B0B8477, 0xC8C81DC3, 0x9999FFCC,
-        0x5858ED03, 0x19199A6F, 0x0E0E0A08, 0x95957EBF, 0x70705040, 0xF7F730E7, 0x6E6ECF2B, 0x1F1F6EE2,
-        0xB5B53D79, 0x09090F0C, 0x616134AA, 0x57571682, 0x9F9F0B41, 0x9D9D803A, 0x111164EA, 0x2525CDB9,
-        0xAFAFDDE4, 0x4545089A, 0xDFDF8DA4, 0xA3A35C97, 0xEAEAD57E, 0x353558DA, 0xEDEDD07A, 0x4343FC17,
-        0xF8F8CB66, 0xFBFBB194, 0x3737D3A1, 0xFAFA401D, 0xC2C2683D, 0xB4B4CCF0, 0x32325DDE, 0x9C9C71B3,
-        0x5656E70B, 0xE3E3DA72, 0x878760A7, 0x15151B1C, 0xF9F93AEF, 0x6363BFD1, 0x3434A953, 0x9A9A853E,
-        0xB1B1428F, 0x7C7CD133, 0x88889B26, 0x3D3DA65F, 0xA1A1D7EC, 0xE4E4DF76, 0x8181942A, 0x91910149,
-        0x0F0FFB81, 0xEEEEAA88, 0x161661EE, 0xD7D77321, 0x9797F5C4, 0xA5A5A81A, 0xFEFE3FEB, 0x6D6DB5D9,
-        0x7878AEC5, 0xC5C56D39, 0x1D1DE599, 0x7676A4CD, 0x3E3EDCAD, 0xCBCB6731, 0xB6B6478B, 0xEFEF5B01,
-        0x12121E18, 0x6060C523, 0x6A6AB0DD, 0x4D4DF61F, 0xCECEE94E, 0xDEDE7C2D, 0x55559DF9, 0x7E7E5A48,
-        0x2121B24F, 0x03037AF2, 0xA0A02665, 0x5E5E198E, 0x5A5A6678, 0x65654B5C, 0x62624E58, 0xFDFD4519,
-        0x0606F48D, 0x404086E5, 0xF2F2BE98, 0x3333AC57, 0x17179067, 0x05058E7F, 0xE8E85E05, 0x4F4F7D64,
-        0x89896AAF, 0x10109563, 0x74742FB6, 0x0A0A75FE, 0x5C5C92F5, 0x9B9B74B7, 0x2D2D333C, 0x3030D6A5,
-        0x2E2E49CE, 0x494989E9, 0x46467268, 0x77775544, 0xA8A8D8E0, 0x9696044D, 0x2828BD43, 0xA9A92969,
-        0xD9D97929, 0x8686912E, 0xD1D187AC, 0xF4F44A15, 0x8D8D1559, 0xD6D682A8, 0xB9B9BC0A, 0x42420D9E,
-        0xF6F6C16E, 0x2F2FB847, 0xDDDD06DF, 0x23233934, 0xCCCC6235, 0xF1F1C46A, 0xC1C112CF, 0x8585EBDC,
-        0x8F8F9E22, 0x7171A1C9, 0x9090F0C0, 0xAAAA539B, 0x0101F189, 0x8B8BE1D4, 0x4E4E8CED, 0x8E8E6FAB,
-        0xABABA212, 0x6F6F3EA2, 0xE6E6540D, 0xDBDBF252, 0x92927BBB, 0xB7B7B602, 0x6969CA2F, 0x3939D9A9,
-        0xD3D30CD7, 0xA7A72361, 0xA2A2AD1E, 0xC3C399B4, 0x6C6C4450, 0x07070504, 0x04047FF6, 0x272746C2,
-        0xACACA716, 0xD0D07625, 0x50501386, 0xDCDCF756, 0x84841A55, 0xE1E15109, 0x7A7A25BE, 0x1313EF91
-    );
-
-    /**
-     * M-Table
-     *
-     * @var array
-     * @access private
-     */
-    var $m1 = array(
-        0xA9D93939, 0x67901717, 0xB3719C9C, 0xE8D2A6A6, 0x04050707, 0xFD985252, 0xA3658080, 0x76DFE4E4,
-        0x9A084545, 0x92024B4B, 0x80A0E0E0, 0x78665A5A, 0xE4DDAFAF, 0xDDB06A6A, 0xD1BF6363, 0x38362A2A,
-        0x0D54E6E6, 0xC6432020, 0x3562CCCC, 0x98BEF2F2, 0x181E1212, 0xF724EBEB, 0xECD7A1A1, 0x6C774141,
-        0x43BD2828, 0x7532BCBC, 0x37D47B7B, 0x269B8888, 0xFA700D0D, 0x13F94444, 0x94B1FBFB, 0x485A7E7E,
-        0xF27A0303, 0xD0E48C8C, 0x8B47B6B6, 0x303C2424, 0x84A5E7E7, 0x54416B6B, 0xDF06DDDD, 0x23C56060,
-        0x1945FDFD, 0x5BA33A3A, 0x3D68C2C2, 0x59158D8D, 0xF321ECEC, 0xAE316666, 0xA23E6F6F, 0x82165757,
-        0x63951010, 0x015BEFEF, 0x834DB8B8, 0x2E918686, 0xD9B56D6D, 0x511F8383, 0x9B53AAAA, 0x7C635D5D,
-        0xA63B6868, 0xEB3FFEFE, 0xA5D63030, 0xBE257A7A, 0x16A7ACAC, 0x0C0F0909, 0xE335F0F0, 0x6123A7A7,
-        0xC0F09090, 0x8CAFE9E9, 0x3A809D9D, 0xF5925C5C, 0x73810C0C, 0x2C273131, 0x2576D0D0, 0x0BE75656,
-        0xBB7B9292, 0x4EE9CECE, 0x89F10101, 0x6B9F1E1E, 0x53A93434, 0x6AC4F1F1, 0xB499C3C3, 0xF1975B5B,
-        0xE1834747, 0xE66B1818, 0xBDC82222, 0x450E9898, 0xE26E1F1F, 0xF4C9B3B3, 0xB62F7474, 0x66CBF8F8,
-        0xCCFF9999, 0x95EA1414, 0x03ED5858, 0x56F7DCDC, 0xD4E18B8B, 0x1C1B1515, 0x1EADA2A2, 0xD70CD3D3,
-        0xFB2BE2E2, 0xC31DC8C8, 0x8E195E5E, 0xB5C22C2C, 0xE9894949, 0xCF12C1C1, 0xBF7E9595, 0xBA207D7D,
-        0xEA641111, 0x77840B0B, 0x396DC5C5, 0xAF6A8989, 0x33D17C7C, 0xC9A17171, 0x62CEFFFF, 0x7137BBBB,
-        0x81FB0F0F, 0x793DB5B5, 0x0951E1E1, 0xADDC3E3E, 0x242D3F3F, 0xCDA47676, 0xF99D5555, 0xD8EE8282,
-        0xE5864040, 0xC5AE7878, 0xB9CD2525, 0x4D049696, 0x44557777, 0x080A0E0E, 0x86135050, 0xE730F7F7,
-        0xA1D33737, 0x1D40FAFA, 0xAA346161, 0xED8C4E4E, 0x06B3B0B0, 0x706C5454, 0xB22A7373, 0xD2523B3B,
-        0x410B9F9F, 0x7B8B0202, 0xA088D8D8, 0x114FF3F3, 0x3167CBCB, 0xC2462727, 0x27C06767, 0x90B4FCFC,
-        0x20283838, 0xF67F0404, 0x60784848, 0xFF2EE5E5, 0x96074C4C, 0x5C4B6565, 0xB1C72B2B, 0xAB6F8E8E,
-        0x9E0D4242, 0x9CBBF5F5, 0x52F2DBDB, 0x1BF34A4A, 0x5FA63D3D, 0x9359A4A4, 0x0ABCB9B9, 0xEF3AF9F9,
-        0x91EF1313, 0x85FE0808, 0x49019191, 0xEE611616, 0x2D7CDEDE, 0x4FB22121, 0x8F42B1B1, 0x3BDB7272,
-        0x47B82F2F, 0x8748BFBF, 0x6D2CAEAE, 0x46E3C0C0, 0xD6573C3C, 0x3E859A9A, 0x6929A9A9, 0x647D4F4F,
-        0x2A948181, 0xCE492E2E, 0xCB17C6C6, 0x2FCA6969, 0xFCC3BDBD, 0x975CA3A3, 0x055EE8E8, 0x7AD0EDED,
-        0xAC87D1D1, 0x7F8E0505, 0xD5BA6464, 0x1AA8A5A5, 0x4BB72626, 0x0EB9BEBE, 0xA7608787, 0x5AF8D5D5,
-        0x28223636, 0x14111B1B, 0x3FDE7575, 0x2979D9D9, 0x88AAEEEE, 0x3C332D2D, 0x4C5F7979, 0x02B6B7B7,
-        0xB896CACA, 0xDA583535, 0xB09CC4C4, 0x17FC4343, 0x551A8484, 0x1FF64D4D, 0x8A1C5959, 0x7D38B2B2,
-        0x57AC3333, 0xC718CFCF, 0x8DF40606, 0x74695353, 0xB7749B9B, 0xC4F59797, 0x9F56ADAD, 0x72DAE3E3,
-        0x7ED5EAEA, 0x154AF4F4, 0x229E8F8F, 0x12A2ABAB, 0x584E6262, 0x07E85F5F, 0x99E51D1D, 0x34392323,
-        0x6EC1F6F6, 0x50446C6C, 0xDE5D3232, 0x68724646, 0x6526A0A0, 0xBC93CDCD, 0xDB03DADA, 0xF8C6BABA,
-        0xC8FA9E9E, 0xA882D6D6, 0x2BCF6E6E, 0x40507070, 0xDCEB8585, 0xFE750A0A, 0x328A9393, 0xA48DDFDF,
-        0xCA4C2929, 0x10141C1C, 0x2173D7D7, 0xF0CCB4B4, 0xD309D4D4, 0x5D108A8A, 0x0FE25151, 0x00000000,
-        0x6F9A1919, 0x9DE01A1A, 0x368F9494, 0x42E6C7C7, 0x4AECC9C9, 0x5EFDD2D2, 0xC1AB7F7F, 0xE0D8A8A8
-    );
-
-    /**
-     * M-Table
-     *
-     * @var array
-     * @access private
-     */
-    var $m2 = array(
-        0xBC75BC32, 0xECF3EC21, 0x20C62043, 0xB3F4B3C9, 0xDADBDA03, 0x027B028B, 0xE2FBE22B, 0x9EC89EFA,
-        0xC94AC9EC, 0xD4D3D409, 0x18E6186B, 0x1E6B1E9F, 0x9845980E, 0xB27DB238, 0xA6E8A6D2, 0x264B26B7,
-        0x3CD63C57, 0x9332938A, 0x82D882EE, 0x52FD5298, 0x7B377BD4, 0xBB71BB37, 0x5BF15B97, 0x47E14783,
-        0x2430243C, 0x510F51E2, 0xBAF8BAC6, 0x4A1B4AF3, 0xBF87BF48, 0x0DFA0D70, 0xB006B0B3, 0x753F75DE,
-        0xD25ED2FD, 0x7DBA7D20, 0x66AE6631, 0x3A5B3AA3, 0x598A591C, 0x00000000, 0xCDBCCD93, 0x1A9D1AE0,
-        0xAE6DAE2C, 0x7FC17FAB, 0x2BB12BC7, 0xBE0EBEB9, 0xE080E0A0, 0x8A5D8A10, 0x3BD23B52, 0x64D564BA,
-        0xD8A0D888, 0xE784E7A5, 0x5F075FE8, 0x1B141B11, 0x2CB52CC2, 0xFC90FCB4, 0x312C3127, 0x80A38065,
-        0x73B2732A, 0x0C730C81, 0x794C795F, 0x6B546B41, 0x4B924B02, 0x53745369, 0x9436948F, 0x8351831F,
-        0x2A382A36, 0xC4B0C49C, 0x22BD22C8, 0xD55AD5F8, 0xBDFCBDC3, 0x48604878, 0xFF62FFCE, 0x4C964C07,
-        0x416C4177, 0xC742C7E6, 0xEBF7EB24, 0x1C101C14, 0x5D7C5D63, 0x36283622, 0x672767C0, 0xE98CE9AF,
-        0x441344F9, 0x149514EA, 0xF59CF5BB, 0xCFC7CF18, 0x3F243F2D, 0xC046C0E3, 0x723B72DB, 0x5470546C,
-        0x29CA294C, 0xF0E3F035, 0x088508FE, 0xC6CBC617, 0xF311F34F, 0x8CD08CE4, 0xA493A459, 0xCAB8CA96,
-        0x68A6683B, 0xB883B84D, 0x38203828, 0xE5FFE52E, 0xAD9FAD56, 0x0B770B84, 0xC8C3C81D, 0x99CC99FF,
-        0x580358ED, 0x196F199A, 0x0E080E0A, 0x95BF957E, 0x70407050, 0xF7E7F730, 0x6E2B6ECF, 0x1FE21F6E,
-        0xB579B53D, 0x090C090F, 0x61AA6134, 0x57825716, 0x9F419F0B, 0x9D3A9D80, 0x11EA1164, 0x25B925CD,
-        0xAFE4AFDD, 0x459A4508, 0xDFA4DF8D, 0xA397A35C, 0xEA7EEAD5, 0x35DA3558, 0xED7AEDD0, 0x431743FC,
-        0xF866F8CB, 0xFB94FBB1, 0x37A137D3, 0xFA1DFA40, 0xC23DC268, 0xB4F0B4CC, 0x32DE325D, 0x9CB39C71,
-        0x560B56E7, 0xE372E3DA, 0x87A78760, 0x151C151B, 0xF9EFF93A, 0x63D163BF, 0x345334A9, 0x9A3E9A85,
-        0xB18FB142, 0x7C337CD1, 0x8826889B, 0x3D5F3DA6, 0xA1ECA1D7, 0xE476E4DF, 0x812A8194, 0x91499101,
-        0x0F810FFB, 0xEE88EEAA, 0x16EE1661, 0xD721D773, 0x97C497F5, 0xA51AA5A8, 0xFEEBFE3F, 0x6DD96DB5,
-        0x78C578AE, 0xC539C56D, 0x1D991DE5, 0x76CD76A4, 0x3EAD3EDC, 0xCB31CB67, 0xB68BB647, 0xEF01EF5B,
-        0x1218121E, 0x602360C5, 0x6ADD6AB0, 0x4D1F4DF6, 0xCE4ECEE9, 0xDE2DDE7C, 0x55F9559D, 0x7E487E5A,
-        0x214F21B2, 0x03F2037A, 0xA065A026, 0x5E8E5E19, 0x5A785A66, 0x655C654B, 0x6258624E, 0xFD19FD45,
-        0x068D06F4, 0x40E54086, 0xF298F2BE, 0x335733AC, 0x17671790, 0x057F058E, 0xE805E85E, 0x4F644F7D,
-        0x89AF896A, 0x10631095, 0x74B6742F, 0x0AFE0A75, 0x5CF55C92, 0x9BB79B74, 0x2D3C2D33, 0x30A530D6,
-        0x2ECE2E49, 0x49E94989, 0x46684672, 0x77447755, 0xA8E0A8D8, 0x964D9604, 0x284328BD, 0xA969A929,
-        0xD929D979, 0x862E8691, 0xD1ACD187, 0xF415F44A, 0x8D598D15, 0xD6A8D682, 0xB90AB9BC, 0x429E420D,
-        0xF66EF6C1, 0x2F472FB8, 0xDDDFDD06, 0x23342339, 0xCC35CC62, 0xF16AF1C4, 0xC1CFC112, 0x85DC85EB,
-        0x8F228F9E, 0x71C971A1, 0x90C090F0, 0xAA9BAA53, 0x018901F1, 0x8BD48BE1, 0x4EED4E8C, 0x8EAB8E6F,
-        0xAB12ABA2, 0x6FA26F3E, 0xE60DE654, 0xDB52DBF2, 0x92BB927B, 0xB702B7B6, 0x692F69CA, 0x39A939D9,
-        0xD3D7D30C, 0xA761A723, 0xA21EA2AD, 0xC3B4C399, 0x6C506C44, 0x07040705, 0x04F6047F, 0x27C22746,
-        0xAC16ACA7, 0xD025D076, 0x50865013, 0xDC56DCF7, 0x8455841A, 0xE109E151, 0x7ABE7A25, 0x139113EF
-    );
-
-    /**
-     * M-Table
-     *
-     * @var array
-     * @access private
-     */
-    var $m3 = array(
-        0xD939A9D9, 0x90176790, 0x719CB371, 0xD2A6E8D2, 0x05070405, 0x9852FD98, 0x6580A365, 0xDFE476DF,
-        0x08459A08, 0x024B9202, 0xA0E080A0, 0x665A7866, 0xDDAFE4DD, 0xB06ADDB0, 0xBF63D1BF, 0x362A3836,
-        0x54E60D54, 0x4320C643, 0x62CC3562, 0xBEF298BE, 0x1E12181E, 0x24EBF724, 0xD7A1ECD7, 0x77416C77,
-        0xBD2843BD, 0x32BC7532, 0xD47B37D4, 0x9B88269B, 0x700DFA70, 0xF94413F9, 0xB1FB94B1, 0x5A7E485A,
-        0x7A03F27A, 0xE48CD0E4, 0x47B68B47, 0x3C24303C, 0xA5E784A5, 0x416B5441, 0x06DDDF06, 0xC56023C5,
-        0x45FD1945, 0xA33A5BA3, 0x68C23D68, 0x158D5915, 0x21ECF321, 0x3166AE31, 0x3E6FA23E, 0x16578216,
-        0x95106395, 0x5BEF015B, 0x4DB8834D, 0x91862E91, 0xB56DD9B5, 0x1F83511F, 0x53AA9B53, 0x635D7C63,
-        0x3B68A63B, 0x3FFEEB3F, 0xD630A5D6, 0x257ABE25, 0xA7AC16A7, 0x0F090C0F, 0x35F0E335, 0x23A76123,
-        0xF090C0F0, 0xAFE98CAF, 0x809D3A80, 0x925CF592, 0x810C7381, 0x27312C27, 0x76D02576, 0xE7560BE7,
-        0x7B92BB7B, 0xE9CE4EE9, 0xF10189F1, 0x9F1E6B9F, 0xA93453A9, 0xC4F16AC4, 0x99C3B499, 0x975BF197,
-        0x8347E183, 0x6B18E66B, 0xC822BDC8, 0x0E98450E, 0x6E1FE26E, 0xC9B3F4C9, 0x2F74B62F, 0xCBF866CB,
-        0xFF99CCFF, 0xEA1495EA, 0xED5803ED, 0xF7DC56F7, 0xE18BD4E1, 0x1B151C1B, 0xADA21EAD, 0x0CD3D70C,
-        0x2BE2FB2B, 0x1DC8C31D, 0x195E8E19, 0xC22CB5C2, 0x8949E989, 0x12C1CF12, 0x7E95BF7E, 0x207DBA20,
-        0x6411EA64, 0x840B7784, 0x6DC5396D, 0x6A89AF6A, 0xD17C33D1, 0xA171C9A1, 0xCEFF62CE, 0x37BB7137,
-        0xFB0F81FB, 0x3DB5793D, 0x51E10951, 0xDC3EADDC, 0x2D3F242D, 0xA476CDA4, 0x9D55F99D, 0xEE82D8EE,
-        0x8640E586, 0xAE78C5AE, 0xCD25B9CD, 0x04964D04, 0x55774455, 0x0A0E080A, 0x13508613, 0x30F7E730,
-        0xD337A1D3, 0x40FA1D40, 0x3461AA34, 0x8C4EED8C, 0xB3B006B3, 0x6C54706C, 0x2A73B22A, 0x523BD252,
-        0x0B9F410B, 0x8B027B8B, 0x88D8A088, 0x4FF3114F, 0x67CB3167, 0x4627C246, 0xC06727C0, 0xB4FC90B4,
-        0x28382028, 0x7F04F67F, 0x78486078, 0x2EE5FF2E, 0x074C9607, 0x4B655C4B, 0xC72BB1C7, 0x6F8EAB6F,
-        0x0D429E0D, 0xBBF59CBB, 0xF2DB52F2, 0xF34A1BF3, 0xA63D5FA6, 0x59A49359, 0xBCB90ABC, 0x3AF9EF3A,
-        0xEF1391EF, 0xFE0885FE, 0x01914901, 0x6116EE61, 0x7CDE2D7C, 0xB2214FB2, 0x42B18F42, 0xDB723BDB,
-        0xB82F47B8, 0x48BF8748, 0x2CAE6D2C, 0xE3C046E3, 0x573CD657, 0x859A3E85, 0x29A96929, 0x7D4F647D,
-        0x94812A94, 0x492ECE49, 0x17C6CB17, 0xCA692FCA, 0xC3BDFCC3, 0x5CA3975C, 0x5EE8055E, 0xD0ED7AD0,
-        0x87D1AC87, 0x8E057F8E, 0xBA64D5BA, 0xA8A51AA8, 0xB7264BB7, 0xB9BE0EB9, 0x6087A760, 0xF8D55AF8,
-        0x22362822, 0x111B1411, 0xDE753FDE, 0x79D92979, 0xAAEE88AA, 0x332D3C33, 0x5F794C5F, 0xB6B702B6,
-        0x96CAB896, 0x5835DA58, 0x9CC4B09C, 0xFC4317FC, 0x1A84551A, 0xF64D1FF6, 0x1C598A1C, 0x38B27D38,
-        0xAC3357AC, 0x18CFC718, 0xF4068DF4, 0x69537469, 0x749BB774, 0xF597C4F5, 0x56AD9F56, 0xDAE372DA,
-        0xD5EA7ED5, 0x4AF4154A, 0x9E8F229E, 0xA2AB12A2, 0x4E62584E, 0xE85F07E8, 0xE51D99E5, 0x39233439,
-        0xC1F66EC1, 0x446C5044, 0x5D32DE5D, 0x72466872, 0x26A06526, 0x93CDBC93, 0x03DADB03, 0xC6BAF8C6,
-        0xFA9EC8FA, 0x82D6A882, 0xCF6E2BCF, 0x50704050, 0xEB85DCEB, 0x750AFE75, 0x8A93328A, 0x8DDFA48D,
-        0x4C29CA4C, 0x141C1014, 0x73D72173, 0xCCB4F0CC, 0x09D4D309, 0x108A5D10, 0xE2510FE2, 0x00000000,
-        0x9A196F9A, 0xE01A9DE0, 0x8F94368F, 0xE6C742E6, 0xECC94AEC, 0xFDD25EFD, 0xAB7FC1AB, 0xD8A8E0D8
-    );
-
-    /**
-     * The Key Schedule Array
-     *
-     * @var array
-     * @access private
-     */
-    var $K = array();
-
-    /**
-     * The Key depended S-Table 0
-     *
-     * @var array
-     * @access private
-     */
-    var $S0 = array();
-
-    /**
-     * The Key depended S-Table 1
-     *
-     * @var array
-     * @access private
-     */
-    var $S1 = array();
-
-    /**
-     * The Key depended S-Table 2
-     *
-     * @var array
-     * @access private
-     */
-    var $S2 = array();
-
-    /**
-     * The Key depended S-Table 3
-     *
-     * @var array
-     * @access private
-     */
-    var $S3 = array();
-
-    /**
-     * Holds the last used key
-     *
-     * @var array
-     * @access private
-     */
-    var $kl;
-
-    /**
-     * The Key Length (in bytes)
-     *
-     * @see Crypt_Twofish::setKeyLength()
-     * @var int
-     * @access private
-     */
-    var $key_length = 16;
-
-    /**
-     * Sets the key length.
-     *
-     * Valid key lengths are 128, 192 or 256 bits
-     *
-     * @access public
-     * @param int $length
-     */
-    function setKeyLength($length)
-    {
-        switch (true) {
-            case $length <= 128:
-                $this->key_length = 16;
-                break;
-            case $length <= 192:
-                $this->key_length = 24;
-                break;
-            default:
-                $this->key_length = 32;
-        }
-
-        parent::setKeyLength($length);
-    }
-
-    /**
-     * Setup the key (expansion)
-     *
-     * @see \phpseclib\Crypt\Base::_setupKey()
-     * @access private
-     */
-    function _setupKey()
-    {
-        if (isset($this->kl['key']) && $this->key === $this->kl['key']) {
-            // already expanded
-            return;
-        }
-        $this->kl = array('key' => $this->key);
-
-        /* Key expanding and generating the key-depended s-boxes */
-        $le_longs = unpack('V*', $this->key);
-        $key = unpack('C*', $this->key);
-        $m0 = $this->m0;
-        $m1 = $this->m1;
-        $m2 = $this->m2;
-        $m3 = $this->m3;
-        $q0 = $this->q0;
-        $q1 = $this->q1;
-
-        $K = $S0 = $S1 = $S2 = $S3 = array();
-
-        switch (strlen($this->key)) {
-            case 16:
-                list($s7, $s6, $s5, $s4) = $this->_mdsrem($le_longs[1], $le_longs[2]);
-                list($s3, $s2, $s1, $s0) = $this->_mdsrem($le_longs[3], $le_longs[4]);
-                for ($i = 0, $j = 1; $i < 40; $i+= 2, $j+= 2) {
-                    $A = $m0[$q0[$q0[$i] ^ $key[ 9]] ^ $key[1]] ^
-                         $m1[$q0[$q1[$i] ^ $key[10]] ^ $key[2]] ^
-                         $m2[$q1[$q0[$i] ^ $key[11]] ^ $key[3]] ^
-                         $m3[$q1[$q1[$i] ^ $key[12]] ^ $key[4]];
-                    $B = $m0[$q0[$q0[$j] ^ $key[13]] ^ $key[5]] ^
-                         $m1[$q0[$q1[$j] ^ $key[14]] ^ $key[6]] ^
-                         $m2[$q1[$q0[$j] ^ $key[15]] ^ $key[7]] ^
-                         $m3[$q1[$q1[$j] ^ $key[16]] ^ $key[8]];
-                    $B = ($B << 8) | ($B >> 24 & 0xff);
-                    $A = $this->safe_intval($A + $B);
-                    $K[] = $A;
-                    $A = $this->safe_intval($A + $B);
-                    $K[] = ($A << 9 | $A >> 23 & 0x1ff);
-                }
-                for ($i = 0; $i < 256; ++$i) {
-                    $S0[$i] = $m0[$q0[$q0[$i] ^ $s4] ^ $s0];
-                    $S1[$i] = $m1[$q0[$q1[$i] ^ $s5] ^ $s1];
-                    $S2[$i] = $m2[$q1[$q0[$i] ^ $s6] ^ $s2];
-                    $S3[$i] = $m3[$q1[$q1[$i] ^ $s7] ^ $s3];
-                }
-                break;
-            case 24:
-                list($sb, $sa, $s9, $s8) = $this->_mdsrem($le_longs[1], $le_longs[2]);
-                list($s7, $s6, $s5, $s4) = $this->_mdsrem($le_longs[3], $le_longs[4]);
-                list($s3, $s2, $s1, $s0) = $this->_mdsrem($le_longs[5], $le_longs[6]);
-                for ($i = 0, $j = 1; $i < 40; $i+= 2, $j+= 2) {
-                    $A = $m0[$q0[$q0[$q1[$i] ^ $key[17]] ^ $key[ 9]] ^ $key[1]] ^
-                         $m1[$q0[$q1[$q1[$i] ^ $key[18]] ^ $key[10]] ^ $key[2]] ^
-                         $m2[$q1[$q0[$q0[$i] ^ $key[19]] ^ $key[11]] ^ $key[3]] ^
-                         $m3[$q1[$q1[$q0[$i] ^ $key[20]] ^ $key[12]] ^ $key[4]];
-                    $B = $m0[$q0[$q0[$q1[$j] ^ $key[21]] ^ $key[13]] ^ $key[5]] ^
-                         $m1[$q0[$q1[$q1[$j] ^ $key[22]] ^ $key[14]] ^ $key[6]] ^
-                         $m2[$q1[$q0[$q0[$j] ^ $key[23]] ^ $key[15]] ^ $key[7]] ^
-                         $m3[$q1[$q1[$q0[$j] ^ $key[24]] ^ $key[16]] ^ $key[8]];
-                    $B = ($B << 8) | ($B >> 24 & 0xff);
-                    $A = $this->safe_intval($A + $B);
-                    $K[] = $A;
-                    $A = $this->safe_intval($A + $B);
-                    $K[] = ($A << 9 | $A >> 23 & 0x1ff);
-                }
-                for ($i = 0; $i < 256; ++$i) {
-                    $S0[$i] = $m0[$q0[$q0[$q1[$i] ^ $s8] ^ $s4] ^ $s0];
-                    $S1[$i] = $m1[$q0[$q1[$q1[$i] ^ $s9] ^ $s5] ^ $s1];
-                    $S2[$i] = $m2[$q1[$q0[$q0[$i] ^ $sa] ^ $s6] ^ $s2];
-                    $S3[$i] = $m3[$q1[$q1[$q0[$i] ^ $sb] ^ $s7] ^ $s3];
-                }
-                break;
-            default: // 32
-                list($sf, $se, $sd, $sc) = $this->_mdsrem($le_longs[1], $le_longs[2]);
-                list($sb, $sa, $s9, $s8) = $this->_mdsrem($le_longs[3], $le_longs[4]);
-                list($s7, $s6, $s5, $s4) = $this->_mdsrem($le_longs[5], $le_longs[6]);
-                list($s3, $s2, $s1, $s0) = $this->_mdsrem($le_longs[7], $le_longs[8]);
-                for ($i = 0, $j = 1; $i < 40; $i+= 2, $j+= 2) {
-                    $A = $m0[$q0[$q0[$q1[$q1[$i] ^ $key[25]] ^ $key[17]] ^ $key[ 9]] ^ $key[1]] ^
-                         $m1[$q0[$q1[$q1[$q0[$i] ^ $key[26]] ^ $key[18]] ^ $key[10]] ^ $key[2]] ^
-                         $m2[$q1[$q0[$q0[$q0[$i] ^ $key[27]] ^ $key[19]] ^ $key[11]] ^ $key[3]] ^
-                         $m3[$q1[$q1[$q0[$q1[$i] ^ $key[28]] ^ $key[20]] ^ $key[12]] ^ $key[4]];
-                    $B = $m0[$q0[$q0[$q1[$q1[$j] ^ $key[29]] ^ $key[21]] ^ $key[13]] ^ $key[5]] ^
-                         $m1[$q0[$q1[$q1[$q0[$j] ^ $key[30]] ^ $key[22]] ^ $key[14]] ^ $key[6]] ^
-                         $m2[$q1[$q0[$q0[$q0[$j] ^ $key[31]] ^ $key[23]] ^ $key[15]] ^ $key[7]] ^
-                         $m3[$q1[$q1[$q0[$q1[$j] ^ $key[32]] ^ $key[24]] ^ $key[16]] ^ $key[8]];
-                    $B = ($B << 8) | ($B >> 24 & 0xff);
-                    $A = $this->safe_intval($A + $B);
-                    $K[] = $A;
-                    $A = $this->safe_intval($A + $B);
-                    $K[] = ($A << 9 | $A >> 23 & 0x1ff);
-                }
-                for ($i = 0; $i < 256; ++$i) {
-                    $S0[$i] = $m0[$q0[$q0[$q1[$q1[$i] ^ $sc] ^ $s8] ^ $s4] ^ $s0];
-                    $S1[$i] = $m1[$q0[$q1[$q1[$q0[$i] ^ $sd] ^ $s9] ^ $s5] ^ $s1];
-                    $S2[$i] = $m2[$q1[$q0[$q0[$q0[$i] ^ $se] ^ $sa] ^ $s6] ^ $s2];
-                    $S3[$i] = $m3[$q1[$q1[$q0[$q1[$i] ^ $sf] ^ $sb] ^ $s7] ^ $s3];
-                }
-        }
-
-        $this->K  = $K;
-        $this->S0 = $S0;
-        $this->S1 = $S1;
-        $this->S2 = $S2;
-        $this->S3 = $S3;
-    }
-
-    /**
-     * _mdsrem function using by the twofish cipher algorithm
-     *
-     * @access private
-     * @param string $A
-     * @param string $B
-     * @return array
-     */
-    function _mdsrem($A, $B)
-    {
-        // No gain by unrolling this loop.
-        for ($i = 0; $i < 8; ++$i) {
-            // Get most significant coefficient.
-            $t = 0xff & ($B >> 24);
-
-            // Shift the others up.
-            $B = ($B << 8) | (0xff & ($A >> 24));
-            $A<<= 8;
-
-            $u = $t << 1;
-
-            // Subtract the modular polynomial on overflow.
-            if ($t & 0x80) {
-                $u^= 0x14d;
-            }
-
-            // Remove t * (a * x^2 + 1).
-            $B ^= $t ^ ($u << 16);
-
-            // Form u = a*t + t/a = t*(a + 1/a).
-            $u^= 0x7fffffff & ($t >> 1);
-
-            // Add the modular polynomial on underflow.
-            if ($t & 0x01) {
-                $u^= 0xa6 ;
-            }
-
-            // Remove t * (a + 1/a) * (x^3 + x).
-            $B^= ($u << 24) | ($u << 8);
-        }
-
-        return array(
-            0xff & $B >> 24,
-            0xff & $B >> 16,
-            0xff & $B >>  8,
-            0xff & $B);
-    }
-
-    /**
-     * Encrypts a block
-     *
-     * @access private
-     * @param string $in
-     * @return string
-     */
-    function _encryptBlock($in)
-    {
-        $S0 = $this->S0;
-        $S1 = $this->S1;
-        $S2 = $this->S2;
-        $S3 = $this->S3;
-        $K  = $this->K;
-
-        $in = unpack("V4", $in);
-        $R0 = $K[0] ^ $in[1];
-        $R1 = $K[1] ^ $in[2];
-        $R2 = $K[2] ^ $in[3];
-        $R3 = $K[3] ^ $in[4];
-
-        $ki = 7;
-        while ($ki < 39) {
-            $t0 = $S0[ $R0        & 0xff] ^
-                  $S1[($R0 >>  8) & 0xff] ^
-                  $S2[($R0 >> 16) & 0xff] ^
-                  $S3[($R0 >> 24) & 0xff];
-            $t1 = $S0[($R1 >> 24) & 0xff] ^
-                  $S1[ $R1        & 0xff] ^
-                  $S2[($R1 >>  8) & 0xff] ^
-                  $S3[($R1 >> 16) & 0xff];
-            $R2^= $this->safe_intval($t0 + $t1 + $K[++$ki]);
-            $R2 = ($R2 >> 1 & 0x7fffffff) | ($R2 << 31);
-            $R3 = ((($R3 >> 31) & 1) | ($R3 << 1)) ^ $this->safe_intval($t0 + ($t1 << 1) + $K[++$ki]);
-
-            $t0 = $S0[ $R2        & 0xff] ^
-                  $S1[($R2 >>  8) & 0xff] ^
-                  $S2[($R2 >> 16) & 0xff] ^
-                  $S3[($R2 >> 24) & 0xff];
-            $t1 = $S0[($R3 >> 24) & 0xff] ^
-                  $S1[ $R3        & 0xff] ^
-                  $S2[($R3 >>  8) & 0xff] ^
-                  $S3[($R3 >> 16) & 0xff];
-            $R0^= $this->safe_intval($t0 + $t1 + $K[++$ki]);
-            $R0 = ($R0 >> 1 & 0x7fffffff) | ($R0 << 31);
-            $R1 = ((($R1 >> 31) & 1) | ($R1 << 1)) ^ $this->safe_intval($t0 + ($t1 << 1) + $K[++$ki]);
-        }
-
-        // @codingStandardsIgnoreStart
-        return pack("V4", $K[4] ^ $R2,
-                          $K[5] ^ $R3,
-                          $K[6] ^ $R0,
-                          $K[7] ^ $R1);
-        // @codingStandardsIgnoreEnd
-    }
-
-    /**
-     * Decrypts a block
-     *
-     * @access private
-     * @param string $in
-     * @return string
-     */
-    function _decryptBlock($in)
-    {
-        $S0 = $this->S0;
-        $S1 = $this->S1;
-        $S2 = $this->S2;
-        $S3 = $this->S3;
-        $K  = $this->K;
-
-        $in = unpack("V4", $in);
-        $R0 = $K[4] ^ $in[1];
-        $R1 = $K[5] ^ $in[2];
-        $R2 = $K[6] ^ $in[3];
-        $R3 = $K[7] ^ $in[4];
-
-        $ki = 40;
-        while ($ki > 8) {
-            $t0 = $S0[$R0       & 0xff] ^
-                  $S1[$R0 >>  8 & 0xff] ^
-                  $S2[$R0 >> 16 & 0xff] ^
-                  $S3[$R0 >> 24 & 0xff];
-            $t1 = $S0[$R1 >> 24 & 0xff] ^
-                  $S1[$R1       & 0xff] ^
-                  $S2[$R1 >>  8 & 0xff] ^
-                  $S3[$R1 >> 16 & 0xff];
-            $R3^= $this->safe_intval($t0 + ($t1 << 1) + $K[--$ki]);
-            $R3 = $R3 >> 1 & 0x7fffffff | $R3 << 31;
-            $R2 = ($R2 >> 31 & 0x1 | $R2 << 1) ^ $this->safe_intval($t0 + $t1 + $K[--$ki]);
-
-            $t0 = $S0[$R2       & 0xff] ^
-                  $S1[$R2 >>  8 & 0xff] ^
-                  $S2[$R2 >> 16 & 0xff] ^
-                  $S3[$R2 >> 24 & 0xff];
-            $t1 = $S0[$R3 >> 24 & 0xff] ^
-                  $S1[$R3       & 0xff] ^
-                  $S2[$R3 >>  8 & 0xff] ^
-                  $S3[$R3 >> 16 & 0xff];
-            $R1^= $this->safe_intval($t0 + ($t1 << 1) + $K[--$ki]);
-            $R1 = $R1 >> 1 & 0x7fffffff | $R1 << 31;
-            $R0 = ($R0 >> 31 & 0x1 | $R0 << 1) ^ $this->safe_intval($t0 + $t1 + $K[--$ki]);
-        }
-
-        // @codingStandardsIgnoreStart
-        return pack("V4", $K[0] ^ $R2,
-                          $K[1] ^ $R3,
-                          $K[2] ^ $R0,
-                          $K[3] ^ $R1);
-        // @codingStandardsIgnoreEnd
-    }
-
-    /**
-     * Setup the performance-optimized function for de/encrypt()
-     *
-     * @see \phpseclib\Crypt\Base::_setupInlineCrypt()
-     * @access private
-     */
-    function _setupInlineCrypt()
-    {
-        $lambda_functions =& self::_getLambdaFunctions();
-
-        // Max. 10 Ultra-Hi-optimized inline-crypt functions. After that, we'll (still) create very fast code, but not the ultimate fast one.
-        // (Currently, for Crypt_Twofish, one generated $lambda_function cost on php5.5@32bit ~140kb unfreeable mem and ~240kb on php5.5@64bit)
-        $gen_hi_opt_code = (bool)(count($lambda_functions) < 10);
-
-        // Generation of a unique hash for our generated code
-        $code_hash = "Crypt_Twofish, {$this->mode}";
-        if ($gen_hi_opt_code) {
-            $code_hash = str_pad($code_hash, 32) . $this->_hashInlineCryptFunction($this->key);
-        }
-
-        $safeint = $this->safe_intval_inline();
-
-        if (!isset($lambda_functions[$code_hash])) {
-            switch (true) {
-                case $gen_hi_opt_code:
-                    $K = $this->K;
-                    $init_crypt = '
-                        static $S0, $S1, $S2, $S3;
-                        if (!$S0) {
-                            for ($i = 0; $i < 256; ++$i) {
-                                $S0[] = (int)$self->S0[$i];
-                                $S1[] = (int)$self->S1[$i];
-                                $S2[] = (int)$self->S2[$i];
-                                $S3[] = (int)$self->S3[$i];
-                            }
-                        }
-                    ';
-                    break;
-                default:
-                    $K   = array();
-                    for ($i = 0; $i < 40; ++$i) {
-                        $K[] = '$K_' . $i;
-                    }
-                    $init_crypt = '
-                        $S0 = $self->S0;
-                        $S1 = $self->S1;
-                        $S2 = $self->S2;
-                        $S3 = $self->S3;
-                        list(' . implode(',', $K) . ') = $self->K;
-                    ';
-            }
-
-            // Generating encrypt code:
-            $encrypt_block = '
-                $in = unpack("V4", $in);
-                $R0 = '.$K[0].' ^ $in[1];
-                $R1 = '.$K[1].' ^ $in[2];
-                $R2 = '.$K[2].' ^ $in[3];
-                $R3 = '.$K[3].' ^ $in[4];
-            ';
-            for ($ki = 7, $i = 0; $i < 8; ++$i) {
-                $encrypt_block.= '
-                    $t0 = $S0[ $R0        & 0xff] ^
-                          $S1[($R0 >>  8) & 0xff] ^
-                          $S2[($R0 >> 16) & 0xff] ^
-                          $S3[($R0 >> 24) & 0xff];
-                    $t1 = $S0[($R1 >> 24) & 0xff] ^
-                          $S1[ $R1        & 0xff] ^
-                          $S2[($R1 >>  8) & 0xff] ^
-                          $S3[($R1 >> 16) & 0xff];
-                    $R2^= ' . sprintf($safeint, '$t0 + $t1 + ' . $K[++$ki]) . ';
-                    $R2 = ($R2 >> 1 & 0x7fffffff) | ($R2 << 31);
-                    $R3 = ((($R3 >> 31) & 1) | ($R3 << 1)) ^ ' . sprintf($safeint, '($t0 + ($t1 << 1) + ' . $K[++$ki] . ')') . ';
-
-                    $t0 = $S0[ $R2        & 0xff] ^
-                          $S1[($R2 >>  8) & 0xff] ^
-                          $S2[($R2 >> 16) & 0xff] ^
-                          $S3[($R2 >> 24) & 0xff];
-                    $t1 = $S0[($R3 >> 24) & 0xff] ^
-                          $S1[ $R3        & 0xff] ^
-                          $S2[($R3 >>  8) & 0xff] ^
-                          $S3[($R3 >> 16) & 0xff];
-                    $R0^= ' . sprintf($safeint, '($t0 + $t1 + ' . $K[++$ki] . ')') . ';
-                    $R0 = ($R0 >> 1 & 0x7fffffff) | ($R0 << 31);
-                    $R1 = ((($R1 >> 31) & 1) | ($R1 << 1)) ^ ' . sprintf($safeint, '($t0 + ($t1 << 1) + ' . $K[++$ki] . ')') . ';
-                ';
-            }
-            $encrypt_block.= '
-                $in = pack("V4", ' . $K[4] . ' ^ $R2,
-                                 ' . $K[5] . ' ^ $R3,
-                                 ' . $K[6] . ' ^ $R0,
-                                 ' . $K[7] . ' ^ $R1);
-            ';
-
-            // Generating decrypt code:
-            $decrypt_block = '
-                $in = unpack("V4", $in);
-                $R0 = '.$K[4].' ^ $in[1];
-                $R1 = '.$K[5].' ^ $in[2];
-                $R2 = '.$K[6].' ^ $in[3];
-                $R3 = '.$K[7].' ^ $in[4];
-            ';
-            for ($ki = 40, $i = 0; $i < 8; ++$i) {
-                $decrypt_block.= '
-                    $t0 = $S0[$R0       & 0xff] ^
-                          $S1[$R0 >>  8 & 0xff] ^
-                          $S2[$R0 >> 16 & 0xff] ^
-                          $S3[$R0 >> 24 & 0xff];
-                    $t1 = $S0[$R1 >> 24 & 0xff] ^
-                          $S1[$R1       & 0xff] ^
-                          $S2[$R1 >>  8 & 0xff] ^
-                          $S3[$R1 >> 16 & 0xff];
-                    $R3^= ' . sprintf($safeint, '$t0 + ($t1 << 1) + ' . $K[--$ki]) . ';
-                    $R3 = $R3 >> 1 & 0x7fffffff | $R3 << 31;
-                    $R2 = ($R2 >> 31 & 0x1 | $R2 << 1) ^ ' . sprintf($safeint, '($t0 + $t1 + '.$K[--$ki] . ')') . ';
-
-                    $t0 = $S0[$R2       & 0xff] ^
-                          $S1[$R2 >>  8 & 0xff] ^
-                          $S2[$R2 >> 16 & 0xff] ^
-                          $S3[$R2 >> 24 & 0xff];
-                    $t1 = $S0[$R3 >> 24 & 0xff] ^
-                          $S1[$R3       & 0xff] ^
-                          $S2[$R3 >>  8 & 0xff] ^
-                          $S3[$R3 >> 16 & 0xff];
-                    $R1^= ' . sprintf($safeint, '$t0 + ($t1 << 1) + ' . $K[--$ki]) . ';
-                    $R1 = $R1 >> 1 & 0x7fffffff | $R1 << 31;
-                    $R0 = ($R0 >> 31 & 0x1 | $R0 << 1) ^ ' . sprintf($safeint, '($t0 + $t1 + '.$K[--$ki] . ')') . ';
-                ';
-            }
-            $decrypt_block.= '
-                $in = pack("V4", ' . $K[0] . ' ^ $R2,
-                                 ' . $K[1] . ' ^ $R3,
-                                 ' . $K[2] . ' ^ $R0,
-                                 ' . $K[3] . ' ^ $R1);
-            ';
-
-            $lambda_functions[$code_hash] = $this->_createInlineCryptFunction(
-                array(
-                   'init_crypt'    => $init_crypt,
-                   'init_encrypt'  => '',
-                   'init_decrypt'  => '',
-                   'encrypt_block' => $encrypt_block,
-                   'decrypt_block' => $decrypt_block
-                )
-            );
-        }
-        $this->inline_crypt = $lambda_functions[$code_hash];
-    }
-}
diff --git a/wiki/vendor/phpseclib/phpseclib/phpseclib/File/ANSI.php b/wiki/vendor/phpseclib/phpseclib/phpseclib/File/ANSI.php
deleted file mode 100644
index 5ff1f2e..0000000
--- a/wiki/vendor/phpseclib/phpseclib/phpseclib/File/ANSI.php
+++ /dev/null
@@ -1,577 +0,0 @@
-<?php
-
-/**
- * Pure-PHP ANSI Decoder
- *
- * PHP version 5
- *
- * If you call read() in \phpseclib\Net\SSH2 you may get {@link http://en.wikipedia.org/wiki/ANSI_escape_code ANSI escape codes} back.
- * They'd look like chr(0x1B) . '[00m' or whatever (0x1B = ESC).  They tell a
- * {@link http://en.wikipedia.org/wiki/Terminal_emulator terminal emulator} how to format the characters, what
- * color to display them in, etc. \phpseclib\File\ANSI is a {@link http://en.wikipedia.org/wiki/VT100 VT100} terminal emulator.
- *
- * @category  File
- * @package   ANSI
- * @author    Jim Wigginton <terrafrost@php.net>
- * @copyright 2012 Jim Wigginton
- * @license   http://www.opensource.org/licenses/mit-license.html  MIT License
- * @link      http://phpseclib.sourceforge.net
- */
-
-namespace phpseclib\File;
-
-/**
- * Pure-PHP ANSI Decoder
- *
- * @package ANSI
- * @author  Jim Wigginton <terrafrost@php.net>
- * @access  public
- */
-class ANSI
-{
-    /**
-     * Max Width
-     *
-     * @var int
-     * @access private
-     */
-    var $max_x;
-
-    /**
-     * Max Height
-     *
-     * @var int
-     * @access private
-     */
-    var $max_y;
-
-    /**
-     * Max History
-     *
-     * @var int
-     * @access private
-     */
-    var $max_history;
-
-    /**
-     * History
-     *
-     * @var array
-     * @access private
-     */
-    var $history;
-
-    /**
-     * History Attributes
-     *
-     * @var array
-     * @access private
-     */
-    var $history_attrs;
-
-    /**
-     * Current Column
-     *
-     * @var int
-     * @access private
-     */
-    var $x;
-
-    /**
-     * Current Row
-     *
-     * @var int
-     * @access private
-     */
-    var $y;
-
-    /**
-     * Old Column
-     *
-     * @var int
-     * @access private
-     */
-    var $old_x;
-
-    /**
-     * Old Row
-     *
-     * @var int
-     * @access private
-     */
-    var $old_y;
-
-    /**
-     * An empty attribute cell
-     *
-     * @var object
-     * @access private
-     */
-    var $base_attr_cell;
-
-    /**
-     * The current attribute cell
-     *
-     * @var object
-     * @access private
-     */
-    var $attr_cell;
-
-    /**
-     * An empty attribute row
-     *
-     * @var array
-     * @access private
-     */
-    var $attr_row;
-
-    /**
-     * The current screen text
-     *
-     * @var array
-     * @access private
-     */
-    var $screen;
-
-    /**
-     * The current screen attributes
-     *
-     * @var array
-     * @access private
-     */
-    var $attrs;
-
-    /**
-     * Current ANSI code
-     *
-     * @var string
-     * @access private
-     */
-    var $ansi;
-
-    /**
-     * Tokenization
-     *
-     * @var array
-     * @access private
-     */
-    var $tokenization;
-
-    /**
-     * Default Constructor.
-     *
-     * @return \phpseclib\File\ANSI
-     * @access public
-     */
-    function __construct()
-    {
-        $attr_cell = new \stdClass();
-        $attr_cell->bold = false;
-        $attr_cell->underline = false;
-        $attr_cell->blink = false;
-        $attr_cell->background = 'black';
-        $attr_cell->foreground = 'white';
-        $attr_cell->reverse = false;
-        $this->base_attr_cell = clone $attr_cell;
-        $this->attr_cell = clone $attr_cell;
-
-        $this->setHistory(200);
-        $this->setDimensions(80, 24);
-    }
-
-    /**
-     * Set terminal width and height
-     *
-     * Resets the screen as well
-     *
-     * @param int $x
-     * @param int $y
-     * @access public
-     */
-    function setDimensions($x, $y)
-    {
-        $this->max_x = $x - 1;
-        $this->max_y = $y - 1;
-        $this->x = $this->y = 0;
-        $this->history = $this->history_attrs = array();
-        $this->attr_row = array_fill(0, $this->max_x + 2, $this->base_attr_cell);
-        $this->screen = array_fill(0, $this->max_y + 1, '');
-        $this->attrs = array_fill(0, $this->max_y + 1, $this->attr_row);
-        $this->ansi = '';
-    }
-
-    /**
-     * Set the number of lines that should be logged past the terminal height
-     *
-     * @param int $x
-     * @param int $y
-     * @access public
-     */
-    function setHistory($history)
-    {
-        $this->max_history = $history;
-    }
-
-    /**
-     * Load a string
-     *
-     * @param string $source
-     * @access public
-     */
-    function loadString($source)
-    {
-        $this->setDimensions($this->max_x + 1, $this->max_y + 1);
-        $this->appendString($source);
-    }
-
-    /**
-     * Appdend a string
-     *
-     * @param string $source
-     * @access public
-     */
-    function appendString($source)
-    {
-        $this->tokenization = array('');
-        for ($i = 0; $i < strlen($source); $i++) {
-            if (strlen($this->ansi)) {
-                $this->ansi.= $source[$i];
-                $chr = ord($source[$i]);
-                // http://en.wikipedia.org/wiki/ANSI_escape_code#Sequence_elements
-                // single character CSI's not currently supported
-                switch (true) {
-                    case $this->ansi == "\x1B=":
-                        $this->ansi = '';
-                        continue 2;
-                    case strlen($this->ansi) == 2 && $chr >= 64 && $chr <= 95 && $chr != ord('['):
-                    case strlen($this->ansi) > 2 && $chr >= 64 && $chr <= 126:
-                        break;
-                    default:
-                        continue 2;
-                }
-                $this->tokenization[] = $this->ansi;
-                $this->tokenization[] = '';
-                // http://ascii-table.com/ansi-escape-sequences-vt-100.php
-                switch ($this->ansi) {
-                    case "\x1B[H": // Move cursor to upper left corner
-                        $this->old_x = $this->x;
-                        $this->old_y = $this->y;
-                        $this->x = $this->y = 0;
-                        break;
-                    case "\x1B[J": // Clear screen from cursor down
-                        $this->history = array_merge($this->history, array_slice(array_splice($this->screen, $this->y + 1), 0, $this->old_y));
-                        $this->screen = array_merge($this->screen, array_fill($this->y, $this->max_y, ''));
-
-                        $this->history_attrs = array_merge($this->history_attrs, array_slice(array_splice($this->attrs, $this->y + 1), 0, $this->old_y));
-                        $this->attrs = array_merge($this->attrs, array_fill($this->y, $this->max_y, $this->attr_row));
-
-                        if (count($this->history) == $this->max_history) {
-                            array_shift($this->history);
-                            array_shift($this->history_attrs);
-                        }
-                    case "\x1B[K": // Clear screen from cursor right
-                        $this->screen[$this->y] = substr($this->screen[$this->y], 0, $this->x);
-
-                        array_splice($this->attrs[$this->y], $this->x + 1, $this->max_x - $this->x, array_fill($this->x, $this->max_x - $this->x - 1, $this->base_attr_cell));
-                        break;
-                    case "\x1B[2K": // Clear entire line
-                        $this->screen[$this->y] = str_repeat(' ', $this->x);
-                        $this->attrs[$this->y] = $this->attr_row;
-                        break;
-                    case "\x1B[?1h": // set cursor key to application
-                    case "\x1B[?25h": // show the cursor
-                    case "\x1B(B": // set united states g0 character set
-                        break;
-                    case "\x1BE": // Move to next line
-                        $this->_newLine();
-                        $this->x = 0;
-                        break;
-                    default:
-                        switch (true) {
-                            case preg_match('#\x1B\[(\d+)B#', $this->ansi, $match): // Move cursor down n lines
-                                $this->old_y = $this->y;
-                                $this->y+= $match[1];
-                                break;
-                            case preg_match('#\x1B\[(\d+);(\d+)H#', $this->ansi, $match): // Move cursor to screen location v,h
-                                $this->old_x = $this->x;
-                                $this->old_y = $this->y;
-                                $this->x = $match[2] - 1;
-                                $this->y = $match[1] - 1;
-                                break;
-                            case preg_match('#\x1B\[(\d+)C#', $this->ansi, $match): // Move cursor right n lines
-                                $this->old_x = $this->x;
-                                $this->x+= $match[1];
-                                break;
-                            case preg_match('#\x1B\[(\d+)D#', $this->ansi, $match): // Move cursor left n lines
-                                $this->old_x = $this->x;
-                                $this->x-= $match[1];
-                                if ($this->x < 0) {
-                                    $this->x = 0;
-                                }
-                                break;
-                            case preg_match('#\x1B\[(\d+);(\d+)r#', $this->ansi, $match): // Set top and bottom lines of a window
-                                break;
-                            case preg_match('#\x1B\[(\d*(?:;\d*)*)m#', $this->ansi, $match): // character attributes
-                                $attr_cell = &$this->attr_cell;
-                                $mods = explode(';', $match[1]);
-                                foreach ($mods as $mod) {
-                                    switch ($mod) {
-                                        case 0: // Turn off character attributes
-                                            $attr_cell = clone $this->base_attr_cell;
-                                            break;
-                                        case 1: // Turn bold mode on
-                                            $attr_cell->bold = true;
-                                            break;
-                                        case 4: // Turn underline mode on
-                                            $attr_cell->underline = true;
-                                            break;
-                                        case 5: // Turn blinking mode on
-                                            $attr_cell->blink = true;
-                                            break;
-                                        case 7: // Turn reverse video on
-                                            $attr_cell->reverse = !$attr_cell->reverse;
-                                            $temp = $attr_cell->background;
-                                            $attr_cell->background = $attr_cell->foreground;
-                                            $attr_cell->foreground = $temp;
-                                            break;
-                                        default: // set colors
-                                            //$front = $attr_cell->reverse ? &$attr_cell->background : &$attr_cell->foreground;
-                                            $front = &$attr_cell->{ $attr_cell->reverse ? 'background' : 'foreground' };
-                                            //$back = $attr_cell->reverse ? &$attr_cell->foreground : &$attr_cell->background;
-                                            $back = &$attr_cell->{ $attr_cell->reverse ? 'foreground' : 'background' };
-                                            switch ($mod) {
-                                                // @codingStandardsIgnoreStart
-                                                case 30: $front = 'black'; break;
-                                                case 31: $front = 'red'; break;
-                                                case 32: $front = 'green'; break;
-                                                case 33: $front = 'yellow'; break;
-                                                case 34: $front = 'blue'; break;
-                                                case 35: $front = 'magenta'; break;
-                                                case 36: $front = 'cyan'; break;
-                                                case 37: $front = 'white'; break;
-
-                                                case 40: $back = 'black'; break;
-                                                case 41: $back = 'red'; break;
-                                                case 42: $back = 'green'; break;
-                                                case 43: $back = 'yellow'; break;
-                                                case 44: $back = 'blue'; break;
-                                                case 45: $back = 'magenta'; break;
-                                                case 46: $back = 'cyan'; break;
-                                                case 47: $back = 'white'; break;
-                                                // @codingStandardsIgnoreEnd
-
-                                                default:
-                                                    //user_error('Unsupported attribute: ' . $mod);
-                                                    $this->ansi = '';
-                                                    break 2;
-                                            }
-                                    }
-                                }
-                                break;
-                            default:
-                                //user_error("{$this->ansi} is unsupported\r\n");
-                        }
-                }
-                $this->ansi = '';
-                continue;
-            }
-
-            $this->tokenization[count($this->tokenization) - 1].= $source[$i];
-            switch ($source[$i]) {
-                case "\r":
-                    $this->x = 0;
-                    break;
-                case "\n":
-                    $this->_newLine();
-                    break;
-                case "\x08": // backspace
-                    if ($this->x) {
-                        $this->x--;
-                        $this->attrs[$this->y][$this->x] = clone $this->base_attr_cell;
-                        $this->screen[$this->y] = substr_replace(
-                            $this->screen[$this->y],
-                            $source[$i],
-                            $this->x,
-                            1
-                        );
-                    }
-                    break;
-                case "\x0F": // shift
-                    break;
-                case "\x1B": // start ANSI escape code
-                    $this->tokenization[count($this->tokenization) - 1] = substr($this->tokenization[count($this->tokenization) - 1], 0, -1);
-                    //if (!strlen($this->tokenization[count($this->tokenization) - 1])) {
-                    //    array_pop($this->tokenization);
-                    //}
-                    $this->ansi.= "\x1B";
-                    break;
-                default:
-                    $this->attrs[$this->y][$this->x] = clone $this->attr_cell;
-                    if ($this->x > strlen($this->screen[$this->y])) {
-                        $this->screen[$this->y] = str_repeat(' ', $this->x);
-                    }
-                    $this->screen[$this->y] = substr_replace(
-                        $this->screen[$this->y],
-                        $source[$i],
-                        $this->x,
-                        1
-                    );
-
-                    if ($this->x > $this->max_x) {
-                        $this->x = 0;
-                        $this->_newLine();
-                    } else {
-                        $this->x++;
-                    }
-            }
-        }
-    }
-
-    /**
-     * Add a new line
-     *
-     * Also update the $this->screen and $this->history buffers
-     *
-     * @access private
-     */
-    function _newLine()
-    {
-        //if ($this->y < $this->max_y) {
-        //    $this->y++;
-        //}
-
-        while ($this->y >= $this->max_y) {
-            $this->history = array_merge($this->history, array(array_shift($this->screen)));
-            $this->screen[] = '';
-
-            $this->history_attrs = array_merge($this->history_attrs, array(array_shift($this->attrs)));
-            $this->attrs[] = $this->attr_row;
-
-            if (count($this->history) >= $this->max_history) {
-                array_shift($this->history);
-                array_shift($this->history_attrs);
-            }
-
-            $this->y--;
-        }
-        $this->y++;
-    }
-
-    /**
-     * Returns the current coordinate without preformating
-     *
-     * @access private
-     * @return string
-     */
-    function _processCoordinate($last_attr, $cur_attr, $char)
-    {
-        $output = '';
-
-        if ($last_attr != $cur_attr) {
-            $close = $open = '';
-            if ($last_attr->foreground != $cur_attr->foreground) {
-                if ($cur_attr->foreground != 'white') {
-                    $open.= '<span style="color: ' . $cur_attr->foreground . '">';
-                }
-                if ($last_attr->foreground != 'white') {
-                    $close = '</span>' . $close;
-                }
-            }
-            if ($last_attr->background != $cur_attr->background) {
-                if ($cur_attr->background != 'black') {
-                    $open.= '<span style="background: ' . $cur_attr->background . '">';
-                }
-                if ($last_attr->background != 'black') {
-                    $close = '</span>' . $close;
-                }
-            }
-            if ($last_attr->bold != $cur_attr->bold) {
-                if ($cur_attr->bold) {
-                    $open.= '<b>';
-                } else {
-                    $close = '</b>' . $close;
-                }
-            }
-            if ($last_attr->underline != $cur_attr->underline) {
-                if ($cur_attr->underline) {
-                    $open.= '<u>';
-                } else {
-                    $close = '</u>' . $close;
-                }
-            }
-            if ($last_attr->blink != $cur_attr->blink) {
-                if ($cur_attr->blink) {
-                    $open.= '<blink>';
-                } else {
-                    $close = '</blink>' . $close;
-                }
-            }
-            $output.= $close . $open;
-        }
-
-        $output.= htmlspecialchars($char);
-
-        return $output;
-    }
-
-    /**
-     * Returns the current screen without preformating
-     *
-     * @access private
-     * @return string
-     */
-    function _getScreen()
-    {
-        $output = '';
-        $last_attr = $this->base_attr_cell;
-        for ($i = 0; $i <= $this->max_y; $i++) {
-            for ($j = 0; $j <= $this->max_x; $j++) {
-                $cur_attr = $this->attrs[$i][$j];
-                $output.= $this->_processCoordinate($last_attr, $cur_attr, isset($this->screen[$i][$j]) ? $this->screen[$i][$j] : '');
-                $last_attr = $this->attrs[$i][$j];
-            }
-            $output.= "\r\n";
-        }
-        $output = substr($output, 0, -2);
-        // close any remaining open tags
-        $output.= $this->_processCoordinate($last_attr, $this->base_attr_cell, '');
-        return rtrim($output);
-    }
-
-    /**
-     * Returns the current screen
-     *
-     * @access public
-     * @return string
-     */
-    function getScreen()
-    {
-        return '<pre width="' . ($this->max_x + 1) . '" style="color: white; background: black">' . $this->_getScreen() . '</pre>';
-    }
-
-    /**
-     * Returns the current screen and the x previous lines
-     *
-     * @access public
-     * @return string
-     */
-    function getHistory()
-    {
-        $scrollback = '';
-        $last_attr = $this->base_attr_cell;
-        for ($i = 0; $i < count($this->history); $i++) {
-            for ($j = 0; $j <= $this->max_x + 1; $j++) {
-                $cur_attr = $this->history_attrs[$i][$j];
-                $scrollback.= $this->_processCoordinate($last_attr, $cur_attr, isset($this->history[$i][$j]) ? $this->history[$i][$j] : '');
-                $last_attr = $this->history_attrs[$i][$j];
-            }
-            $scrollback.= "\r\n";
-        }
-        $base_attr_cell = $this->base_attr_cell;
-        $this->base_attr_cell = $last_attr;
-        $scrollback.= $this->_getScreen();
-        $this->base_attr_cell = $base_attr_cell;
-
-        return '<pre width="' . ($this->max_x + 1) . '" style="color: white; background: black">' . $scrollback . '</span></pre>';
-    }
-}
diff --git a/wiki/vendor/phpseclib/phpseclib/phpseclib/File/ASN1.php b/wiki/vendor/phpseclib/phpseclib/phpseclib/File/ASN1.php
deleted file mode 100644
index 76ff8e3..0000000
--- a/wiki/vendor/phpseclib/phpseclib/phpseclib/File/ASN1.php
+++ /dev/null
@@ -1,1325 +0,0 @@
-<?php
-
-/**
- * Pure-PHP ASN.1 Parser
- *
- * PHP version 5
- *
- * ASN.1 provides the semantics for data encoded using various schemes.  The most commonly
- * utilized scheme is DER or the "Distinguished Encoding Rules".  PEM's are base64 encoded
- * DER blobs.
- *
- * \phpseclib\File\ASN1 decodes and encodes DER formatted messages and places them in a semantic context.
- *
- * Uses the 1988 ASN.1 syntax.
- *
- * @category  File
- * @package   ASN1
- * @author    Jim Wigginton <terrafrost@php.net>
- * @copyright 2012 Jim Wigginton
- * @license   http://www.opensource.org/licenses/mit-license.html  MIT License
- * @link      http://phpseclib.sourceforge.net
- */
-
-namespace phpseclib\File;
-
-use phpseclib\File\ASN1\Element;
-use phpseclib\Math\BigInteger;
-use DateTime;
-use DateTimeZone;
-
-/**
- * Pure-PHP ASN.1 Parser
- *
- * @package ASN1
- * @author  Jim Wigginton <terrafrost@php.net>
- * @access  public
- */
-class ASN1
-{
-    /**#@+
-     * Tag Classes
-     *
-     * @access private
-     * @link http://www.itu.int/ITU-T/studygroups/com17/languages/X.690-0207.pdf#page=12
-     */
-    const CLASS_UNIVERSAL        = 0;
-    const CLASS_APPLICATION      = 1;
-    const CLASS_CONTEXT_SPECIFIC = 2;
-    const CLASS_PRIVATE          = 3;
-    /**#@-*/
-
-    /**#@+
-     * Tag Classes
-     *
-     * @access private
-     * @link http://www.obj-sys.com/asn1tutorial/node124.html
-    */
-    const TYPE_BOOLEAN           = 1;
-    const TYPE_INTEGER           = 2;
-    const TYPE_BIT_STRING        = 3;
-    const TYPE_OCTET_STRING      = 4;
-    const TYPE_NULL              = 5;
-    const TYPE_OBJECT_IDENTIFIER = 6;
-    //const TYPE_OBJECT_DESCRIPTOR = 7;
-    //const TYPE_INSTANCE_OF       = 8; // EXTERNAL
-    const TYPE_REAL              = 9;
-    const TYPE_ENUMERATED        = 10;
-    //const TYPE_EMBEDDED          = 11;
-    const TYPE_UTF8_STRING       = 12;
-    //const TYPE_RELATIVE_OID      = 13;
-    const TYPE_SEQUENCE          = 16; // SEQUENCE OF
-    const TYPE_SET               = 17; // SET OF
-    /**#@-*/
-    /**#@+
-     * More Tag Classes
-     *
-     * @access private
-     * @link http://www.obj-sys.com/asn1tutorial/node10.html
-    */
-    const TYPE_NUMERIC_STRING   = 18;
-    const TYPE_PRINTABLE_STRING = 19;
-    const TYPE_TELETEX_STRING   = 20; // T61String
-    const TYPE_VIDEOTEX_STRING  = 21;
-    const TYPE_IA5_STRING       = 22;
-    const TYPE_UTC_TIME         = 23;
-    const TYPE_GENERALIZED_TIME = 24;
-    const TYPE_GRAPHIC_STRING   = 25;
-    const TYPE_VISIBLE_STRING   = 26; // ISO646String
-    const TYPE_GENERAL_STRING   = 27;
-    const TYPE_UNIVERSAL_STRING = 28;
-    //const TYPE_CHARACTER_STRING = 29;
-    const TYPE_BMP_STRING       = 30;
-    /**#@-*/
-
-    /**#@+
-     * Tag Aliases
-     *
-     * These tags are kinda place holders for other tags.
-     *
-     * @access private
-    */
-    const TYPE_CHOICE = -1;
-    const TYPE_ANY    = -2;
-    /**#@-*/
-
-    /**
-     * ASN.1 object identifier
-     *
-     * @var array
-     * @access private
-     * @link http://en.wikipedia.org/wiki/Object_identifier
-     */
-    var $oids = array();
-
-    /**
-     * Default date format
-     *
-     * @var string
-     * @access private
-     * @link http://php.net/class.datetime
-     */
-    var $format = 'D, d M Y H:i:s O';
-
-    /**
-     * Default date format
-     *
-     * @var array
-     * @access private
-     * @see self::setTimeFormat()
-     * @see self::asn1map()
-     * @link http://php.net/class.datetime
-     */
-    var $encoded;
-
-    /**
-     * Filters
-     *
-     * If the mapping type is self::TYPE_ANY what do we actually encode it as?
-     *
-     * @var array
-     * @access private
-     * @see self::_encode_der()
-     */
-    var $filters;
-
-    /**
-     * Type mapping table for the ANY type.
-     *
-     * Structured or unknown types are mapped to a \phpseclib\File\ASN1\Element.
-     * Unambiguous types get the direct mapping (int/real/bool).
-     * Others are mapped as a choice, with an extra indexing level.
-     *
-     * @var array
-     * @access public
-     */
-    var $ANYmap = array(
-        self::TYPE_BOOLEAN              => true,
-        self::TYPE_INTEGER              => true,
-        self::TYPE_BIT_STRING           => 'bitString',
-        self::TYPE_OCTET_STRING         => 'octetString',
-        self::TYPE_NULL                 => 'null',
-        self::TYPE_OBJECT_IDENTIFIER    => 'objectIdentifier',
-        self::TYPE_REAL                 => true,
-        self::TYPE_ENUMERATED           => 'enumerated',
-        self::TYPE_UTF8_STRING          => 'utf8String',
-        self::TYPE_NUMERIC_STRING       => 'numericString',
-        self::TYPE_PRINTABLE_STRING     => 'printableString',
-        self::TYPE_TELETEX_STRING       => 'teletexString',
-        self::TYPE_VIDEOTEX_STRING      => 'videotexString',
-        self::TYPE_IA5_STRING           => 'ia5String',
-        self::TYPE_UTC_TIME             => 'utcTime',
-        self::TYPE_GENERALIZED_TIME     => 'generalTime',
-        self::TYPE_GRAPHIC_STRING       => 'graphicString',
-        self::TYPE_VISIBLE_STRING       => 'visibleString',
-        self::TYPE_GENERAL_STRING       => 'generalString',
-        self::TYPE_UNIVERSAL_STRING     => 'universalString',
-        //self::TYPE_CHARACTER_STRING     => 'characterString',
-        self::TYPE_BMP_STRING           => 'bmpString'
-    );
-
-    /**
-     * String type to character size mapping table.
-     *
-     * Non-convertable types are absent from this table.
-     * size == 0 indicates variable length encoding.
-     *
-     * @var array
-     * @access public
-     */
-    var $stringTypeSize = array(
-        self::TYPE_UTF8_STRING      => 0,
-        self::TYPE_BMP_STRING       => 2,
-        self::TYPE_UNIVERSAL_STRING => 4,
-        self::TYPE_PRINTABLE_STRING => 1,
-        self::TYPE_TELETEX_STRING   => 1,
-        self::TYPE_IA5_STRING       => 1,
-        self::TYPE_VISIBLE_STRING   => 1,
-    );
-
-    /**
-     * Parse BER-encoding
-     *
-     * Serves a similar purpose to openssl's asn1parse
-     *
-     * @param string $encoded
-     * @return array
-     * @access public
-     */
-    function decodeBER($encoded)
-    {
-        if ($encoded instanceof Element) {
-            $encoded = $encoded->element;
-        }
-
-        $this->encoded = $encoded;
-        // encapsulate in an array for BC with the old decodeBER
-        return array($this->_decode_ber($encoded));
-    }
-
-    /**
-     * Parse BER-encoding (Helper function)
-     *
-     * Sometimes we want to get the BER encoding of a particular tag.  $start lets us do that without having to reencode.
-     * $encoded is passed by reference for the recursive calls done for self::TYPE_BIT_STRING and
-     * self::TYPE_OCTET_STRING. In those cases, the indefinite length is used.
-     *
-     * @param string $encoded
-     * @param int $start
-     * @param int $encoded_pos
-     * @return array
-     * @access private
-     */
-    function _decode_ber($encoded, $start = 0, $encoded_pos = 0)
-    {
-        $current = array('start' => $start);
-
-        $type = ord($encoded[$encoded_pos++]);
-        $start++;
-
-        $constructed = ($type >> 5) & 1;
-
-        $tag = $type & 0x1F;
-        if ($tag == 0x1F) {
-            $tag = 0;
-            // process septets (since the eighth bit is ignored, it's not an octet)
-            do {
-                $loop = ord($encoded[0]) >> 7;
-                $tag <<= 7;
-                $tag |= ord($encoded[$encoded_pos++]) & 0x7F;
-                $start++;
-            } while ($loop);
-        }
-
-        // Length, as discussed in paragraph 8.1.3 of X.690-0207.pdf#page=13
-        $length = ord($encoded[$encoded_pos++]);
-        $start++;
-        if ($length == 0x80) { // indefinite length
-            // "[A sender shall] use the indefinite form (see 8.1.3.6) if the encoding is constructed and is not all
-            //  immediately available." -- paragraph 8.1.3.2.c
-            $length = strlen($encoded) - $encoded_pos;
-        } elseif ($length & 0x80) { // definite length, long form
-            // technically, the long form of the length can be represented by up to 126 octets (bytes), but we'll only
-            // support it up to four.
-            $length&= 0x7F;
-            $temp = substr($encoded, $encoded_pos, $length);
-            $encoded_pos += $length;
-            // tags of indefinte length don't really have a header length; this length includes the tag
-            $current+= array('headerlength' => $length + 2);
-            $start+= $length;
-            extract(unpack('Nlength', substr(str_pad($temp, 4, chr(0), STR_PAD_LEFT), -4)));
-        } else {
-            $current+= array('headerlength' => 2);
-        }
-
-        if ($length > (strlen($encoded) - $encoded_pos)) {
-            return false;
-        }
-
-        $content = substr($encoded, $encoded_pos, $length);
-        $content_pos = 0;
-
-        // at this point $length can be overwritten. it's only accurate for definite length things as is
-
-        /* Class is UNIVERSAL, APPLICATION, PRIVATE, or CONTEXT-SPECIFIC. The UNIVERSAL class is restricted to the ASN.1
-           built-in types. It defines an application-independent data type that must be distinguishable from all other
-           data types. The other three classes are user defined. The APPLICATION class distinguishes data types that
-           have a wide, scattered use within a particular presentation context. PRIVATE distinguishes data types within
-           a particular organization or country. CONTEXT-SPECIFIC distinguishes members of a sequence or set, the
-           alternatives of a CHOICE, or universally tagged set members. Only the class number appears in braces for this
-           data type; the term CONTEXT-SPECIFIC does not appear.
-
-             -- http://www.obj-sys.com/asn1tutorial/node12.html */
-        $class = ($type >> 6) & 3;
-        switch ($class) {
-            case self::CLASS_APPLICATION:
-            case self::CLASS_PRIVATE:
-            case self::CLASS_CONTEXT_SPECIFIC:
-                if (!$constructed) {
-                    return array(
-                        'type'     => $class,
-                        'constant' => $tag,
-                        'content'  => $content,
-                        'length'   => $length + $start - $current['start']
-                    );
-                }
-
-                $newcontent = array();
-                $remainingLength = $length;
-                while ($remainingLength > 0) {
-                    $temp = $this->_decode_ber($content, $start, $content_pos);
-                    $length = $temp['length'];
-                    // end-of-content octets - see paragraph 8.1.5
-                    if (substr($content, $content_pos + $length, 2) == "\0\0") {
-                        $length+= 2;
-                        $start+= $length;
-                        $newcontent[] = $temp;
-                        break;
-                    }
-                    $start+= $length;
-                    $remainingLength-= $length;
-                    $newcontent[] = $temp;
-                    $content_pos += $length;
-                }
-
-                return array(
-                    'type'     => $class,
-                    'constant' => $tag,
-                    // the array encapsulation is for BC with the old format
-                    'content'  => $newcontent,
-                    // the only time when $content['headerlength'] isn't defined is when the length is indefinite.
-                    // the absence of $content['headerlength'] is how we know if something is indefinite or not.
-                    // technically, it could be defined to be 2 and then another indicator could be used but whatever.
-                    'length'   => $start - $current['start']
-                ) + $current;
-        }
-
-        $current+= array('type' => $tag);
-
-        // decode UNIVERSAL tags
-        switch ($tag) {
-            case self::TYPE_BOOLEAN:
-                // "The contents octets shall consist of a single octet." -- paragraph 8.2.1
-                //if (strlen($content) != 1) {
-                //    return false;
-                //}
-                $current['content'] = (bool) ord($content[$content_pos]);
-                break;
-            case self::TYPE_INTEGER:
-            case self::TYPE_ENUMERATED:
-                $current['content'] = new BigInteger(substr($content, $content_pos), -256);
-                break;
-            case self::TYPE_REAL: // not currently supported
-                return false;
-            case self::TYPE_BIT_STRING:
-                // The initial octet shall encode, as an unsigned binary integer with bit 1 as the least significant bit,
-                // the number of unused bits in the final subsequent octet. The number shall be in the range zero to
-                // seven.
-                if (!$constructed) {
-                    $current['content'] = substr($content, $content_pos);
-                } else {
-                    $temp = $this->_decode_ber($content, $start, $content_pos);
-                    $length-= (strlen($content) - $content_pos);
-                    $last = count($temp) - 1;
-                    for ($i = 0; $i < $last; $i++) {
-                        // all subtags should be bit strings
-                        //if ($temp[$i]['type'] != self::TYPE_BIT_STRING) {
-                        //    return false;
-                        //}
-                        $current['content'].= substr($temp[$i]['content'], 1);
-                    }
-                    // all subtags should be bit strings
-                    //if ($temp[$last]['type'] != self::TYPE_BIT_STRING) {
-                    //    return false;
-                    //}
-                    $current['content'] = $temp[$last]['content'][0] . $current['content'] . substr($temp[$i]['content'], 1);
-                }
-                break;
-            case self::TYPE_OCTET_STRING:
-                if (!$constructed) {
-                    $current['content'] = substr($content, $content_pos);
-                } else {
-                    $current['content'] = '';
-                    $length = 0;
-                    while (substr($content, $content_pos, 2) != "\0\0") {
-                        $temp = $this->_decode_ber($content, $length + $start, $content_pos);
-                        $content_pos += $temp['length'];
-                        // all subtags should be octet strings
-                        //if ($temp['type'] != self::TYPE_OCTET_STRING) {
-                        //    return false;
-                        //}
-                        $current['content'].= $temp['content'];
-                        $length+= $temp['length'];
-                    }
-                    if (substr($content, $content_pos, 2) == "\0\0") {
-                        $length+= 2; // +2 for the EOC
-                    }
-                }
-                break;
-            case self::TYPE_NULL:
-                // "The contents octets shall not contain any octets." -- paragraph 8.8.2
-                //if (strlen($content)) {
-                //    return false;
-                //}
-                break;
-            case self::TYPE_SEQUENCE:
-            case self::TYPE_SET:
-                $offset = 0;
-                $current['content'] = array();
-                $content_len = strlen($content);
-                while ($content_pos < $content_len) {
-                    // if indefinite length construction was used and we have an end-of-content string next
-                    // see paragraphs 8.1.1.3, 8.1.3.2, 8.1.3.6, 8.1.5, and (for an example) 8.6.4.2
-                    if (!isset($current['headerlength']) && substr($content, $content_pos, 2) == "\0\0") {
-                        $length = $offset + 2; // +2 for the EOC
-                        break 2;
-                    }
-                    $temp = $this->_decode_ber($content, $start + $offset, $content_pos);
-                    $content_pos += $temp['length'];
-                    $current['content'][] = $temp;
-                    $offset+= $temp['length'];
-                }
-                break;
-            case self::TYPE_OBJECT_IDENTIFIER:
-                $temp = ord($content[$content_pos++]);
-                $current['content'] = sprintf('%d.%d', floor($temp / 40), $temp % 40);
-                $valuen = 0;
-                // process septets
-                $content_len = strlen($content);
-                while ($content_pos < $content_len) {
-                    $temp = ord($content[$content_pos++]);
-                    $valuen <<= 7;
-                    $valuen |= $temp & 0x7F;
-                    if (~$temp & 0x80) {
-                        $current['content'].= ".$valuen";
-                        $valuen = 0;
-                    }
-                }
-                // the eighth bit of the last byte should not be 1
-                //if ($temp >> 7) {
-                //    return false;
-                //}
-                break;
-            /* Each character string type shall be encoded as if it had been declared:
-               [UNIVERSAL x] IMPLICIT OCTET STRING
-
-                 -- X.690-0207.pdf#page=23 (paragraph 8.21.3)
-
-               Per that, we're not going to do any validation.  If there are any illegal characters in the string,
-               we don't really care */
-            case self::TYPE_NUMERIC_STRING:
-                // 0,1,2,3,4,5,6,7,8,9, and space
-            case self::TYPE_PRINTABLE_STRING:
-                // Upper and lower case letters, digits, space, apostrophe, left/right parenthesis, plus sign, comma,
-                // hyphen, full stop, solidus, colon, equal sign, question mark
-            case self::TYPE_TELETEX_STRING:
-                // The Teletex character set in CCITT's T61, space, and delete
-                // see http://en.wikipedia.org/wiki/Teletex#Character_sets
-            case self::TYPE_VIDEOTEX_STRING:
-                // The Videotex character set in CCITT's T.100 and T.101, space, and delete
-            case self::TYPE_VISIBLE_STRING:
-                // Printing character sets of international ASCII, and space
-            case self::TYPE_IA5_STRING:
-                // International Alphabet 5 (International ASCII)
-            case self::TYPE_GRAPHIC_STRING:
-                // All registered G sets, and space
-            case self::TYPE_GENERAL_STRING:
-                // All registered C and G sets, space and delete
-            case self::TYPE_UTF8_STRING:
-                // ????
-            case self::TYPE_BMP_STRING:
-                $current['content'] = substr($content, $content_pos);
-                break;
-            case self::TYPE_UTC_TIME:
-            case self::TYPE_GENERALIZED_TIME:
-                $current['content'] = $this->_decodeTime(substr($content, $content_pos), $tag);
-            default:
-        }
-
-        $start+= $length;
-
-        // ie. length is the length of the full TLV encoding - it's not just the length of the value
-        return $current + array('length' => $start - $current['start']);
-    }
-
-    /**
-     * ASN.1 Map
-     *
-     * Provides an ASN.1 semantic mapping ($mapping) from a parsed BER-encoding to a human readable format.
-     *
-     * "Special" mappings may be applied on a per tag-name basis via $special.
-     *
-     * @param array $decoded
-     * @param array $mapping
-     * @param array $special
-     * @return array
-     * @access public
-     */
-    function asn1map($decoded, $mapping, $special = array())
-    {
-        if (isset($mapping['explicit']) && is_array($decoded['content'])) {
-            $decoded = $decoded['content'][0];
-        }
-
-        switch (true) {
-            case $mapping['type'] == self::TYPE_ANY:
-                $intype = $decoded['type'];
-                if (isset($decoded['constant']) || !isset($this->ANYmap[$intype]) || (ord($this->encoded[$decoded['start']]) & 0x20)) {
-                    return new Element(substr($this->encoded, $decoded['start'], $decoded['length']));
-                }
-                $inmap = $this->ANYmap[$intype];
-                if (is_string($inmap)) {
-                    return array($inmap => $this->asn1map($decoded, array('type' => $intype) + $mapping, $special));
-                }
-                break;
-            case $mapping['type'] == self::TYPE_CHOICE:
-                foreach ($mapping['children'] as $key => $option) {
-                    switch (true) {
-                        case isset($option['constant']) && $option['constant'] == $decoded['constant']:
-                        case !isset($option['constant']) && $option['type'] == $decoded['type']:
-                            $value = $this->asn1map($decoded, $option, $special);
-                            break;
-                        case !isset($option['constant']) && $option['type'] == self::TYPE_CHOICE:
-                            $v = $this->asn1map($decoded, $option, $special);
-                            if (isset($v)) {
-                                $value = $v;
-                            }
-                    }
-                    if (isset($value)) {
-                        if (isset($special[$key])) {
-                            $value = call_user_func($special[$key], $value);
-                        }
-                        return array($key => $value);
-                    }
-                }
-                return null;
-            case isset($mapping['implicit']):
-            case isset($mapping['explicit']):
-            case $decoded['type'] == $mapping['type']:
-                break;
-            default:
-                // if $decoded['type'] and $mapping['type'] are both strings, but different types of strings,
-                // let it through
-                switch (true) {
-                    case $decoded['type'] < 18: // self::TYPE_NUMERIC_STRING == 18
-                    case $decoded['type'] > 30: // self::TYPE_BMP_STRING == 30
-                    case $mapping['type'] < 18:
-                    case $mapping['type'] > 30:
-                        return null;
-                }
-        }
-
-        if (isset($mapping['implicit'])) {
-            $decoded['type'] = $mapping['type'];
-        }
-
-        switch ($decoded['type']) {
-            case self::TYPE_SEQUENCE:
-                $map = array();
-
-                // ignore the min and max
-                if (isset($mapping['min']) && isset($mapping['max'])) {
-                    $child = $mapping['children'];
-                    foreach ($decoded['content'] as $content) {
-                        if (($map[] = $this->asn1map($content, $child, $special)) === null) {
-                            return null;
-                        }
-                    }
-
-                    return $map;
-                }
-
-                $n = count($decoded['content']);
-                $i = 0;
-
-                foreach ($mapping['children'] as $key => $child) {
-                    $maymatch = $i < $n; // Match only existing input.
-                    if ($maymatch) {
-                        $temp = $decoded['content'][$i];
-
-                        if ($child['type'] != self::TYPE_CHOICE) {
-                            // Get the mapping and input class & constant.
-                            $childClass = $tempClass = self::CLASS_UNIVERSAL;
-                            $constant = null;
-                            if (isset($temp['constant'])) {
-                                $tempClass = $temp['type'];
-                            }
-                            if (isset($child['class'])) {
-                                $childClass = $child['class'];
-                                $constant = $child['cast'];
-                            } elseif (isset($child['constant'])) {
-                                $childClass = self::CLASS_CONTEXT_SPECIFIC;
-                                $constant = $child['constant'];
-                            }
-
-                            if (isset($constant) && isset($temp['constant'])) {
-                                // Can only match if constants and class match.
-                                $maymatch = $constant == $temp['constant'] && $childClass == $tempClass;
-                            } else {
-                                // Can only match if no constant expected and type matches or is generic.
-                                $maymatch = !isset($child['constant']) && array_search($child['type'], array($temp['type'], self::TYPE_ANY, self::TYPE_CHOICE)) !== false;
-                            }
-                        }
-                    }
-
-                    if ($maymatch) {
-                        // Attempt submapping.
-                        $candidate = $this->asn1map($temp, $child, $special);
-                        $maymatch = $candidate !== null;
-                    }
-
-                    if ($maymatch) {
-                        // Got the match: use it.
-                        if (isset($special[$key])) {
-                            $candidate = call_user_func($special[$key], $candidate);
-                        }
-                        $map[$key] = $candidate;
-                        $i++;
-                    } elseif (isset($child['default'])) {
-                        $map[$key] = $child['default']; // Use default.
-                    } elseif (!isset($child['optional'])) {
-                        return null; // Syntax error.
-                    }
-                }
-
-                // Fail mapping if all input items have not been consumed.
-                return $i < $n ? null: $map;
-
-            // the main diff between sets and sequences is the encapsulation of the foreach in another for loop
-            case self::TYPE_SET:
-                $map = array();
-
-                // ignore the min and max
-                if (isset($mapping['min']) && isset($mapping['max'])) {
-                    $child = $mapping['children'];
-                    foreach ($decoded['content'] as $content) {
-                        if (($map[] = $this->asn1map($content, $child, $special)) === null) {
-                            return null;
-                        }
-                    }
-
-                    return $map;
-                }
-
-                for ($i = 0; $i < count($decoded['content']); $i++) {
-                    $temp = $decoded['content'][$i];
-                    $tempClass = self::CLASS_UNIVERSAL;
-                    if (isset($temp['constant'])) {
-                        $tempClass = $temp['type'];
-                    }
-
-                    foreach ($mapping['children'] as $key => $child) {
-                        if (isset($map[$key])) {
-                            continue;
-                        }
-                        $maymatch = true;
-                        if ($child['type'] != self::TYPE_CHOICE) {
-                            $childClass = self::CLASS_UNIVERSAL;
-                            $constant = null;
-                            if (isset($child['class'])) {
-                                $childClass = $child['class'];
-                                $constant = $child['cast'];
-                            } elseif (isset($child['constant'])) {
-                                $childClass = self::CLASS_CONTEXT_SPECIFIC;
-                                $constant = $child['constant'];
-                            }
-
-                            if (isset($constant) && isset($temp['constant'])) {
-                                // Can only match if constants and class match.
-                                $maymatch = $constant == $temp['constant'] && $childClass == $tempClass;
-                            } else {
-                                // Can only match if no constant expected and type matches or is generic.
-                                $maymatch = !isset($child['constant']) && array_search($child['type'], array($temp['type'], self::TYPE_ANY, self::TYPE_CHOICE)) !== false;
-                            }
-                        }
-
-                        if ($maymatch) {
-                            // Attempt submapping.
-                            $candidate = $this->asn1map($temp, $child, $special);
-                            $maymatch = $candidate !== null;
-                        }
-
-                        if (!$maymatch) {
-                            break;
-                        }
-
-                        // Got the match: use it.
-                        if (isset($special[$key])) {
-                            $candidate = call_user_func($special[$key], $candidate);
-                        }
-                        $map[$key] = $candidate;
-                        break;
-                    }
-                }
-
-                foreach ($mapping['children'] as $key => $child) {
-                    if (!isset($map[$key])) {
-                        if (isset($child['default'])) {
-                            $map[$key] = $child['default'];
-                        } elseif (!isset($child['optional'])) {
-                            return null;
-                        }
-                    }
-                }
-                return $map;
-            case self::TYPE_OBJECT_IDENTIFIER:
-                return isset($this->oids[$decoded['content']]) ? $this->oids[$decoded['content']] : $decoded['content'];
-            case self::TYPE_UTC_TIME:
-            case self::TYPE_GENERALIZED_TIME:
-                if (isset($mapping['implicit'])) {
-                    $decoded['content'] = $this->_decodeTime($decoded['content'], $decoded['type']);
-                }
-                return $decoded['content'] ? $decoded['content']->format($this->format) : false;
-            case self::TYPE_BIT_STRING:
-                if (isset($mapping['mapping'])) {
-                    $offset = ord($decoded['content'][0]);
-                    $size = (strlen($decoded['content']) - 1) * 8 - $offset;
-                    /*
-                       From X.680-0207.pdf#page=46 (21.7):
-
-                       "When a "NamedBitList" is used in defining a bitstring type ASN.1 encoding rules are free to add (or remove)
-                        arbitrarily any trailing 0 bits to (or from) values that are being encoded or decoded. Application designers should
-                        therefore ensure that different semantics are not associated with such values which differ only in the number of trailing
-                        0 bits."
-                    */
-                    $bits = count($mapping['mapping']) == $size ? array() : array_fill(0, count($mapping['mapping']) - $size, false);
-                    for ($i = strlen($decoded['content']) - 1; $i > 0; $i--) {
-                        $current = ord($decoded['content'][$i]);
-                        for ($j = $offset; $j < 8; $j++) {
-                            $bits[] = (bool) ($current & (1 << $j));
-                        }
-                        $offset = 0;
-                    }
-                    $values = array();
-                    $map = array_reverse($mapping['mapping']);
-                    foreach ($map as $i => $value) {
-                        if ($bits[$i]) {
-                            $values[] = $value;
-                        }
-                    }
-                    return $values;
-                }
-            case self::TYPE_OCTET_STRING:
-                return base64_encode($decoded['content']);
-            case self::TYPE_NULL:
-                return '';
-            case self::TYPE_BOOLEAN:
-                return $decoded['content'];
-            case self::TYPE_NUMERIC_STRING:
-            case self::TYPE_PRINTABLE_STRING:
-            case self::TYPE_TELETEX_STRING:
-            case self::TYPE_VIDEOTEX_STRING:
-            case self::TYPE_IA5_STRING:
-            case self::TYPE_GRAPHIC_STRING:
-            case self::TYPE_VISIBLE_STRING:
-            case self::TYPE_GENERAL_STRING:
-            case self::TYPE_UNIVERSAL_STRING:
-            case self::TYPE_UTF8_STRING:
-            case self::TYPE_BMP_STRING:
-                return $decoded['content'];
-            case self::TYPE_INTEGER:
-            case self::TYPE_ENUMERATED:
-                $temp = $decoded['content'];
-                if (isset($mapping['implicit'])) {
-                    $temp = new BigInteger($decoded['content'], -256);
-                }
-                if (isset($mapping['mapping'])) {
-                    $temp = (int) $temp->toString();
-                    return isset($mapping['mapping'][$temp]) ?
-                        $mapping['mapping'][$temp] :
-                        false;
-                }
-                return $temp;
-        }
-    }
-
-    /**
-     * ASN.1 Encode
-     *
-     * DER-encodes an ASN.1 semantic mapping ($mapping).  Some libraries would probably call this function
-     * an ASN.1 compiler.
-     *
-     * "Special" mappings can be applied via $special.
-     *
-     * @param string $source
-     * @param string $mapping
-     * @param int $idx
-     * @return string
-     * @access public
-     */
-    function encodeDER($source, $mapping, $special = array())
-    {
-        $this->location = array();
-        return $this->_encode_der($source, $mapping, null, $special);
-    }
-
-    /**
-     * ASN.1 Encode (Helper function)
-     *
-     * @param string $source
-     * @param string $mapping
-     * @param int $idx
-     * @return string
-     * @access private
-     */
-    function _encode_der($source, $mapping, $idx = null, $special = array())
-    {
-        if ($source instanceof Element) {
-            return $source->element;
-        }
-
-        // do not encode (implicitly optional) fields with value set to default
-        if (isset($mapping['default']) && $source === $mapping['default']) {
-            return '';
-        }
-
-        if (isset($idx)) {
-            if (isset($special[$idx])) {
-                $source = call_user_func($special[$idx], $source);
-            }
-            $this->location[] = $idx;
-        }
-
-        $tag = $mapping['type'];
-
-        switch ($tag) {
-            case self::TYPE_SET:    // Children order is not important, thus process in sequence.
-            case self::TYPE_SEQUENCE:
-                $tag|= 0x20; // set the constructed bit
-
-                // ignore the min and max
-                if (isset($mapping['min']) && isset($mapping['max'])) {
-                    $value = array();
-                    $child = $mapping['children'];
-
-                    foreach ($source as $content) {
-                        $temp = $this->_encode_der($content, $child, null, $special);
-                        if ($temp === false) {
-                            return false;
-                        }
-                        $value[]= $temp;
-                    }
-                    /* "The encodings of the component values of a set-of value shall appear in ascending order, the encodings being compared
-                        as octet strings with the shorter components being padded at their trailing end with 0-octets.
-                        NOTE - The padding octets are for comparison purposes only and do not appear in the encodings."
-
-                       -- sec 11.6 of http://www.itu.int/ITU-T/studygroups/com17/languages/X.690-0207.pdf  */
-                    if ($mapping['type'] == self::TYPE_SET) {
-                        sort($value);
-                    }
-                    $value = implode($value, '');
-                    break;
-                }
-
-                $value = '';
-                foreach ($mapping['children'] as $key => $child) {
-                    if (!array_key_exists($key, $source)) {
-                        if (!isset($child['optional'])) {
-                            return false;
-                        }
-                        continue;
-                    }
-
-                    $temp = $this->_encode_der($source[$key], $child, $key, $special);
-                    if ($temp === false) {
-                        return false;
-                    }
-
-                    // An empty child encoding means it has been optimized out.
-                    // Else we should have at least one tag byte.
-                    if ($temp === '') {
-                        continue;
-                    }
-
-                    // if isset($child['constant']) is true then isset($child['optional']) should be true as well
-                    if (isset($child['constant'])) {
-                        /*
-                           From X.680-0207.pdf#page=58 (30.6):
-
-                           "The tagging construction specifies explicit tagging if any of the following holds:
-                            ...
-                            c) the "Tag Type" alternative is used and the value of "TagDefault" for the module is IMPLICIT TAGS or
-                            AUTOMATIC TAGS, but the type defined by "Type" is an untagged choice type, an untagged open type, or
-                            an untagged "DummyReference" (see ITU-T Rec. X.683 | ISO/IEC 8824-4, 8.3)."
-                         */
-                        if (isset($child['explicit']) || $child['type'] == self::TYPE_CHOICE) {
-                            $subtag = chr((self::CLASS_CONTEXT_SPECIFIC << 6) | 0x20 | $child['constant']);
-                            $temp = $subtag . $this->_encodeLength(strlen($temp)) . $temp;
-                        } else {
-                            $subtag = chr((self::CLASS_CONTEXT_SPECIFIC << 6) | (ord($temp[0]) & 0x20) | $child['constant']);
-                            $temp = $subtag . substr($temp, 1);
-                        }
-                    }
-                    $value.= $temp;
-                }
-                break;
-            case self::TYPE_CHOICE:
-                $temp = false;
-
-                foreach ($mapping['children'] as $key => $child) {
-                    if (!isset($source[$key])) {
-                        continue;
-                    }
-
-                    $temp = $this->_encode_der($source[$key], $child, $key, $special);
-                    if ($temp === false) {
-                        return false;
-                    }
-
-                    // An empty child encoding means it has been optimized out.
-                    // Else we should have at least one tag byte.
-                    if ($temp === '') {
-                        continue;
-                    }
-
-                    $tag = ord($temp[0]);
-
-                    // if isset($child['constant']) is true then isset($child['optional']) should be true as well
-                    if (isset($child['constant'])) {
-                        if (isset($child['explicit']) || $child['type'] == self::TYPE_CHOICE) {
-                            $subtag = chr((self::CLASS_CONTEXT_SPECIFIC << 6) | 0x20 | $child['constant']);
-                            $temp = $subtag . $this->_encodeLength(strlen($temp)) . $temp;
-                        } else {
-                            $subtag = chr((self::CLASS_CONTEXT_SPECIFIC << 6) | (ord($temp[0]) & 0x20) | $child['constant']);
-                            $temp = $subtag . substr($temp, 1);
-                        }
-                    }
-                }
-
-                if (isset($idx)) {
-                    array_pop($this->location);
-                }
-
-                if ($temp && isset($mapping['cast'])) {
-                    $temp[0] = chr(($mapping['class'] << 6) | ($tag & 0x20) | $mapping['cast']);
-                }
-
-                return $temp;
-            case self::TYPE_INTEGER:
-            case self::TYPE_ENUMERATED:
-                if (!isset($mapping['mapping'])) {
-                    if (is_numeric($source)) {
-                        $source = new BigInteger($source);
-                    }
-                    $value = $source->toBytes(true);
-                } else {
-                    $value = array_search($source, $mapping['mapping']);
-                    if ($value === false) {
-                        return false;
-                    }
-                    $value = new BigInteger($value);
-                    $value = $value->toBytes(true);
-                }
-                if (!strlen($value)) {
-                    $value = chr(0);
-                }
-                break;
-            case self::TYPE_UTC_TIME:
-            case self::TYPE_GENERALIZED_TIME:
-                $format = $mapping['type'] == self::TYPE_UTC_TIME ? 'y' : 'Y';
-                $format.= 'mdHis';
-                $date = new DateTime($source, new DateTimeZone('GMT'));
-                $value = $date->format($format) . 'Z';
-                break;
-            case self::TYPE_BIT_STRING:
-                if (isset($mapping['mapping'])) {
-                    $bits = array_fill(0, count($mapping['mapping']), 0);
-                    $size = 0;
-                    for ($i = 0; $i < count($mapping['mapping']); $i++) {
-                        if (in_array($mapping['mapping'][$i], $source)) {
-                            $bits[$i] = 1;
-                            $size = $i;
-                        }
-                    }
-
-                    if (isset($mapping['min']) && $mapping['min'] >= 1 && $size < $mapping['min']) {
-                        $size = $mapping['min'] - 1;
-                    }
-
-                    $offset = 8 - (($size + 1) & 7);
-                    $offset = $offset !== 8 ? $offset : 0;
-
-                    $value = chr($offset);
-
-                    for ($i = $size + 1; $i < count($mapping['mapping']); $i++) {
-                        unset($bits[$i]);
-                    }
-
-                    $bits = implode('', array_pad($bits, $size + $offset + 1, 0));
-                    $bytes = explode(' ', rtrim(chunk_split($bits, 8, ' ')));
-                    foreach ($bytes as $byte) {
-                        $value.= chr(bindec($byte));
-                    }
-
-                    break;
-                }
-            case self::TYPE_OCTET_STRING:
-                /* The initial octet shall encode, as an unsigned binary integer with bit 1 as the least significant bit,
-                   the number of unused bits in the final subsequent octet. The number shall be in the range zero to seven.
-
-                   -- http://www.itu.int/ITU-T/studygroups/com17/languages/X.690-0207.pdf#page=16 */
-                $value = base64_decode($source);
-                break;
-            case self::TYPE_OBJECT_IDENTIFIER:
-                $oid = preg_match('#(?:\d+\.)+#', $source) ? $source : array_search($source, $this->oids);
-                if ($oid === false) {
-                    user_error('Invalid OID');
-                    return false;
-                }
-                $value = '';
-                $parts = explode('.', $oid);
-                $value = chr(40 * $parts[0] + $parts[1]);
-                for ($i = 2; $i < count($parts); $i++) {
-                    $temp = '';
-                    if (!$parts[$i]) {
-                        $temp = "\0";
-                    } else {
-                        while ($parts[$i]) {
-                            $temp = chr(0x80 | ($parts[$i] & 0x7F)) . $temp;
-                            $parts[$i] >>= 7;
-                        }
-                        $temp[strlen($temp) - 1] = $temp[strlen($temp) - 1] & chr(0x7F);
-                    }
-                    $value.= $temp;
-                }
-                break;
-            case self::TYPE_ANY:
-                $loc = $this->location;
-                if (isset($idx)) {
-                    array_pop($this->location);
-                }
-
-                switch (true) {
-                    case !isset($source):
-                        return $this->_encode_der(null, array('type' => self::TYPE_NULL) + $mapping, null, $special);
-                    case is_int($source):
-                    case $source instanceof BigInteger:
-                        return $this->_encode_der($source, array('type' => self::TYPE_INTEGER) + $mapping, null, $special);
-                    case is_float($source):
-                        return $this->_encode_der($source, array('type' => self::TYPE_REAL) + $mapping, null, $special);
-                    case is_bool($source):
-                        return $this->_encode_der($source, array('type' => self::TYPE_BOOLEAN) + $mapping, null, $special);
-                    case is_array($source) && count($source) == 1:
-                        $typename = implode('', array_keys($source));
-                        $outtype = array_search($typename, $this->ANYmap, true);
-                        if ($outtype !== false) {
-                            return $this->_encode_der($source[$typename], array('type' => $outtype) + $mapping, null, $special);
-                        }
-                }
-
-                $filters = $this->filters;
-                foreach ($loc as $part) {
-                    if (!isset($filters[$part])) {
-                        $filters = false;
-                        break;
-                    }
-                    $filters = $filters[$part];
-                }
-                if ($filters === false) {
-                    user_error('No filters defined for ' . implode('/', $loc));
-                    return false;
-                }
-                return $this->_encode_der($source, $filters + $mapping, null, $special);
-            case self::TYPE_NULL:
-                $value = '';
-                break;
-            case self::TYPE_NUMERIC_STRING:
-            case self::TYPE_TELETEX_STRING:
-            case self::TYPE_PRINTABLE_STRING:
-            case self::TYPE_UNIVERSAL_STRING:
-            case self::TYPE_UTF8_STRING:
-            case self::TYPE_BMP_STRING:
-            case self::TYPE_IA5_STRING:
-            case self::TYPE_VISIBLE_STRING:
-            case self::TYPE_VIDEOTEX_STRING:
-            case self::TYPE_GRAPHIC_STRING:
-            case self::TYPE_GENERAL_STRING:
-                $value = $source;
-                break;
-            case self::TYPE_BOOLEAN:
-                $value = $source ? "\xFF" : "\x00";
-                break;
-            default:
-                user_error('Mapping provides no type definition for ' . implode('/', $this->location));
-                return false;
-        }
-
-        if (isset($idx)) {
-            array_pop($this->location);
-        }
-
-        if (isset($mapping['cast'])) {
-            if (isset($mapping['explicit']) || $mapping['type'] == self::TYPE_CHOICE) {
-                $value = chr($tag) . $this->_encodeLength(strlen($value)) . $value;
-                $tag = ($mapping['class'] << 6) | 0x20 | $mapping['cast'];
-            } else {
-                $tag = ($mapping['class'] << 6) | (ord($temp[0]) & 0x20) | $mapping['cast'];
-            }
-        }
-
-        return chr($tag) . $this->_encodeLength(strlen($value)) . $value;
-    }
-
-    /**
-     * DER-encode the length
-     *
-     * DER supports lengths up to (2**8)**127, however, we'll only support lengths up to (2**8)**4.  See
-     * {@link http://itu.int/ITU-T/studygroups/com17/languages/X.690-0207.pdf#p=13 X.690 paragraph 8.1.3} for more information.
-     *
-     * @access private
-     * @param int $length
-     * @return string
-     */
-    function _encodeLength($length)
-    {
-        if ($length <= 0x7F) {
-            return chr($length);
-        }
-
-        $temp = ltrim(pack('N', $length), chr(0));
-        return pack('Ca*', 0x80 | strlen($temp), $temp);
-    }
-
-    /**
-     * BER-decode the time
-     *
-     * Called by _decode_ber() and in the case of implicit tags asn1map().
-     *
-     * @access private
-     * @param string $content
-     * @param int $tag
-     * @return string
-     */
-    function _decodeTime($content, $tag)
-    {
-        /* UTCTime:
-           http://tools.ietf.org/html/rfc5280#section-4.1.2.5.1
-           http://www.obj-sys.com/asn1tutorial/node15.html
-
-           GeneralizedTime:
-           http://tools.ietf.org/html/rfc5280#section-4.1.2.5.2
-           http://www.obj-sys.com/asn1tutorial/node14.html */
-
-        $format = 'YmdHis';
-
-        if ($tag == self::TYPE_UTC_TIME) {
-            // https://www.itu.int/ITU-T/studygroups/com17/languages/X.690-0207.pdf#page=28 says "the seconds
-            // element shall always be present" but none-the-less I've seen X509 certs where it isn't and if the
-            // browsers parse it phpseclib ought to too
-            if (preg_match('#^(\d{10})(Z|[+-]\d{4})$#', $content, $matches)) {
-                $content = $matches[1] . '00' . $matches[2];
-            }
-            $prefix = substr($content, 0, 2) >= 50 ? '19' : '20';
-            $content = $prefix . $content;
-        } elseif (strpos($content, '.') !== false) {
-            $format.= '.u';
-        }
-
-        if ($content[strlen($content) - 1] == 'Z') {
-            $content = substr($content, 0, -1) . '+0000';
-        }
-
-        if (strpos($content, '-') !== false || strpos($content, '+') !== false) {
-            $format.= 'O';
-        }
-
-        // error supression isn't necessary as of PHP 7.0:
-        // http://php.net/manual/en/migration70.other-changes.php
-        return @DateTime::createFromFormat($format, $content);
-    }
-
-    /**
-     * Set the time format
-     *
-     * Sets the time / date format for asn1map().
-     *
-     * @access public
-     * @param string $format
-     */
-    function setTimeFormat($format)
-    {
-        $this->format = $format;
-    }
-
-    /**
-     * Load OIDs
-     *
-     * Load the relevant OIDs for a particular ASN.1 semantic mapping.
-     *
-     * @access public
-     * @param array $oids
-     */
-    function loadOIDs($oids)
-    {
-        $this->oids = $oids;
-    }
-
-    /**
-     * Load filters
-     *
-     * See \phpseclib\File\X509, etc, for an example.
-     *
-     * @access public
-     * @param array $filters
-     */
-    function loadFilters($filters)
-    {
-        $this->filters = $filters;
-    }
-
-    /**
-     * String Shift
-     *
-     * Inspired by array_shift
-     *
-     * @param string $string
-     * @param int $index
-     * @return string
-     * @access private
-     */
-    function _string_shift(&$string, $index = 1)
-    {
-        $substr = substr($string, 0, $index);
-        $string = substr($string, $index);
-        return $substr;
-    }
-
-    /**
-     * String type conversion
-     *
-     * This is a lazy conversion, dealing only with character size.
-     * No real conversion table is used.
-     *
-     * @param string $in
-     * @param int $from
-     * @param int $to
-     * @return string
-     * @access public
-     */
-    function convert($in, $from = self::TYPE_UTF8_STRING, $to = self::TYPE_UTF8_STRING)
-    {
-        if (!isset($this->stringTypeSize[$from]) || !isset($this->stringTypeSize[$to])) {
-            return false;
-        }
-        $insize = $this->stringTypeSize[$from];
-        $outsize = $this->stringTypeSize[$to];
-        $inlength = strlen($in);
-        $out = '';
-
-        for ($i = 0; $i < $inlength;) {
-            if ($inlength - $i < $insize) {
-                return false;
-            }
-
-            // Get an input character as a 32-bit value.
-            $c = ord($in[$i++]);
-            switch (true) {
-                case $insize == 4:
-                    $c = ($c << 8) | ord($in[$i++]);
-                    $c = ($c << 8) | ord($in[$i++]);
-                case $insize == 2:
-                    $c = ($c << 8) | ord($in[$i++]);
-                case $insize == 1:
-                    break;
-                case ($c & 0x80) == 0x00:
-                    break;
-                case ($c & 0x40) == 0x00:
-                    return false;
-                default:
-                    $bit = 6;
-                    do {
-                        if ($bit > 25 || $i >= $inlength || (ord($in[$i]) & 0xC0) != 0x80) {
-                            return false;
-                        }
-                        $c = ($c << 6) | (ord($in[$i++]) & 0x3F);
-                        $bit += 5;
-                        $mask = 1 << $bit;
-                    } while ($c & $bit);
-                    $c &= $mask - 1;
-                    break;
-            }
-
-            // Convert and append the character to output string.
-            $v = '';
-            switch (true) {
-                case $outsize == 4:
-                    $v .= chr($c & 0xFF);
-                    $c >>= 8;
-                    $v .= chr($c & 0xFF);
-                    $c >>= 8;
-                case $outsize == 2:
-                    $v .= chr($c & 0xFF);
-                    $c >>= 8;
-                case $outsize == 1:
-                    $v .= chr($c & 0xFF);
-                    $c >>= 8;
-                    if ($c) {
-                        return false;
-                    }
-                    break;
-                case ($c & 0x80000000) != 0:
-                    return false;
-                case $c >= 0x04000000:
-                    $v .= chr(0x80 | ($c & 0x3F));
-                    $c = ($c >> 6) | 0x04000000;
-                case $c >= 0x00200000:
-                    $v .= chr(0x80 | ($c & 0x3F));
-                    $c = ($c >> 6) | 0x00200000;
-                case $c >= 0x00010000:
-                    $v .= chr(0x80 | ($c & 0x3F));
-                    $c = ($c >> 6) | 0x00010000;
-                case $c >= 0x00000800:
-                    $v .= chr(0x80 | ($c & 0x3F));
-                    $c = ($c >> 6) | 0x00000800;
-                case $c >= 0x00000080:
-                    $v .= chr(0x80 | ($c & 0x3F));
-                    $c = ($c >> 6) | 0x000000C0;
-                default:
-                    $v .= chr($c);
-                    break;
-            }
-            $out .= strrev($v);
-        }
-        return $out;
-    }
-}
diff --git a/wiki/vendor/phpseclib/phpseclib/phpseclib/File/ASN1/Element.php b/wiki/vendor/phpseclib/phpseclib/phpseclib/File/ASN1/Element.php
deleted file mode 100644
index 68246e2..0000000
--- a/wiki/vendor/phpseclib/phpseclib/phpseclib/File/ASN1/Element.php
+++ /dev/null
@@ -1,47 +0,0 @@
-<?php
-/**
- * Pure-PHP ASN.1 Parser
- *
- * PHP version 5
- *
- * @category  File
- * @package   ASN1
- * @author    Jim Wigginton <terrafrost@php.net>
- * @copyright 2012 Jim Wigginton
- * @license   http://www.opensource.org/licenses/mit-license.html  MIT License
- * @link      http://phpseclib.sourceforge.net
- */
-
-namespace phpseclib\File\ASN1;
-
-/**
- * ASN.1 Element
- *
- * Bypass normal encoding rules in phpseclib\File\ASN1::encodeDER()
- *
- * @package ASN1
- * @author  Jim Wigginton <terrafrost@php.net>
- * @access  public
- */
-class Element
-{
-    /**
-     * Raw element value
-     *
-     * @var string
-     * @access private
-     */
-    var $element;
-
-    /**
-     * Constructor
-     *
-     * @param string $encoded
-     * @return \phpseclib\File\ASN1\Element
-     * @access public
-     */
-    function __construct($encoded)
-    {
-        $this->element = $encoded;
-    }
-}
diff --git a/wiki/vendor/phpseclib/phpseclib/phpseclib/File/X509.php b/wiki/vendor/phpseclib/phpseclib/phpseclib/File/X509.php
deleted file mode 100644
index f3ee813..0000000
--- a/wiki/vendor/phpseclib/phpseclib/phpseclib/File/X509.php
+++ /dev/null
@@ -1,5046 +0,0 @@
-<?php
-
-/**
- * Pure-PHP X.509 Parser
- *
- * PHP version 5
- *
- * Encode and decode X.509 certificates.
- *
- * The extensions are from {@link http://tools.ietf.org/html/rfc5280 RFC5280} and
- * {@link http://web.archive.org/web/19961027104704/http://www3.netscape.com/eng/security/cert-exts.html Netscape Certificate Extensions}.
- *
- * Note that loading an X.509 certificate and resaving it may invalidate the signature.  The reason being that the signature is based on a
- * portion of the certificate that contains optional parameters with default values.  ie. if the parameter isn't there the default value is
- * used.  Problem is, if the parameter is there and it just so happens to have the default value there are two ways that that parameter can
- * be encoded.  It can be encoded explicitly or left out all together.  This would effect the signature value and thus may invalidate the
- * the certificate all together unless the certificate is re-signed.
- *
- * @category  File
- * @package   X509
- * @author    Jim Wigginton <terrafrost@php.net>
- * @copyright 2012 Jim Wigginton
- * @license   http://www.opensource.org/licenses/mit-license.html  MIT License
- * @link      http://phpseclib.sourceforge.net
- */
-
-namespace phpseclib\File;
-
-use phpseclib\Crypt\Hash;
-use phpseclib\Crypt\Random;
-use phpseclib\Crypt\RSA;
-use phpseclib\File\ASN1\Element;
-use phpseclib\Math\BigInteger;
-use DateTime;
-use DateTimeZone;
-
-/**
- * Pure-PHP X.509 Parser
- *
- * @package X509
- * @author  Jim Wigginton <terrafrost@php.net>
- * @access  public
- */
-class X509
-{
-    /**
-     * Flag to only accept signatures signed by certificate authorities
-     *
-     * Not really used anymore but retained all the same to suppress E_NOTICEs from old installs
-     *
-     * @access public
-     */
-    const VALIDATE_SIGNATURE_BY_CA = 1;
-
-    /**#@+
-     * @access public
-     * @see \phpseclib\File\X509::getDN()
-    */
-    /**
-     * Return internal array representation
-     */
-    const DN_ARRAY = 0;
-    /**
-     * Return string
-     */
-    const DN_STRING = 1;
-    /**
-     * Return ASN.1 name string
-     */
-    const DN_ASN1 = 2;
-    /**
-     * Return OpenSSL compatible array
-     */
-    const DN_OPENSSL = 3;
-    /**
-     * Return canonical ASN.1 RDNs string
-     */
-    const DN_CANON = 4;
-    /**
-     * Return name hash for file indexing
-     */
-    const DN_HASH = 5;
-    /**#@-*/
-
-    /**#@+
-     * @access public
-     * @see \phpseclib\File\X509::saveX509()
-     * @see \phpseclib\File\X509::saveCSR()
-     * @see \phpseclib\File\X509::saveCRL()
-    */
-    /**
-     * Save as PEM
-     *
-     * ie. a base64-encoded PEM with a header and a footer
-     */
-    const FORMAT_PEM = 0;
-    /**
-     * Save as DER
-     */
-    const FORMAT_DER = 1;
-    /**
-     * Save as a SPKAC
-     *
-     * Only works on CSRs. Not currently supported.
-     */
-    const FORMAT_SPKAC = 2;
-    /**
-     * Auto-detect the format
-     *
-     * Used only by the load*() functions
-     */
-    const FORMAT_AUTO_DETECT = 3;
-    /**#@-*/
-
-    /**
-     * Attribute value disposition.
-     * If disposition is >= 0, this is the index of the target value.
-     */
-    const ATTR_ALL = -1; // All attribute values (array).
-    const ATTR_APPEND = -2; // Add a value.
-    const ATTR_REPLACE = -3; // Clear first, then add a value.
-
-    /**
-     * ASN.1 syntax for X.509 certificates
-     *
-     * @var array
-     * @access private
-     */
-    var $Certificate;
-
-    /**#@+
-     * ASN.1 syntax for various extensions
-     *
-     * @access private
-     */
-    var $DirectoryString;
-    var $PKCS9String;
-    var $AttributeValue;
-    var $Extensions;
-    var $KeyUsage;
-    var $ExtKeyUsageSyntax;
-    var $BasicConstraints;
-    var $KeyIdentifier;
-    var $CRLDistributionPoints;
-    var $AuthorityKeyIdentifier;
-    var $CertificatePolicies;
-    var $AuthorityInfoAccessSyntax;
-    var $SubjectAltName;
-    var $SubjectDirectoryAttributes;
-    var $PrivateKeyUsagePeriod;
-    var $IssuerAltName;
-    var $PolicyMappings;
-    var $NameConstraints;
-
-    var $CPSuri;
-    var $UserNotice;
-
-    var $netscape_cert_type;
-    var $netscape_comment;
-    var $netscape_ca_policy_url;
-
-    var $Name;
-    var $RelativeDistinguishedName;
-    var $CRLNumber;
-    var $CRLReason;
-    var $IssuingDistributionPoint;
-    var $InvalidityDate;
-    var $CertificateIssuer;
-    var $HoldInstructionCode;
-    var $SignedPublicKeyAndChallenge;
-    /**#@-*/
-
-    /**#@+
-     * ASN.1 syntax for various DN attributes
-     *
-     * @access private
-     */
-    var $PostalAddress;
-    /**#@-*/
-
-    /**
-     * ASN.1 syntax for Certificate Signing Requests (RFC2986)
-     *
-     * @var array
-     * @access private
-     */
-    var $CertificationRequest;
-
-    /**
-     * ASN.1 syntax for Certificate Revocation Lists (RFC5280)
-     *
-     * @var array
-     * @access private
-     */
-    var $CertificateList;
-
-    /**
-     * Distinguished Name
-     *
-     * @var array
-     * @access private
-     */
-    var $dn;
-
-    /**
-     * Public key
-     *
-     * @var string
-     * @access private
-     */
-    var $publicKey;
-
-    /**
-     * Private key
-     *
-     * @var string
-     * @access private
-     */
-    var $privateKey;
-
-    /**
-     * Object identifiers for X.509 certificates
-     *
-     * @var array
-     * @access private
-     * @link http://en.wikipedia.org/wiki/Object_identifier
-     */
-    var $oids;
-
-    /**
-     * The certificate authorities
-     *
-     * @var array
-     * @access private
-     */
-    var $CAs;
-
-    /**
-     * The currently loaded certificate
-     *
-     * @var array
-     * @access private
-     */
-    var $currentCert;
-
-    /**
-     * The signature subject
-     *
-     * There's no guarantee \phpseclib\File\X509 is going to re-encode an X.509 cert in the same way it was originally
-     * encoded so we take save the portion of the original cert that the signature would have made for.
-     *
-     * @var string
-     * @access private
-     */
-    var $signatureSubject;
-
-    /**
-     * Certificate Start Date
-     *
-     * @var string
-     * @access private
-     */
-    var $startDate;
-
-    /**
-     * Certificate End Date
-     *
-     * @var string
-     * @access private
-     */
-    var $endDate;
-
-    /**
-     * Serial Number
-     *
-     * @var string
-     * @access private
-     */
-    var $serialNumber;
-
-    /**
-     * Key Identifier
-     *
-     * See {@link http://tools.ietf.org/html/rfc5280#section-4.2.1.1 RFC5280#section-4.2.1.1} and
-     * {@link http://tools.ietf.org/html/rfc5280#section-4.2.1.2 RFC5280#section-4.2.1.2}.
-     *
-     * @var string
-     * @access private
-     */
-    var $currentKeyIdentifier;
-
-    /**
-     * CA Flag
-     *
-     * @var bool
-     * @access private
-     */
-    var $caFlag = false;
-
-    /**
-     * SPKAC Challenge
-     *
-     * @var string
-     * @access private
-     */
-    var $challenge;
-
-    /**
-     * Recursion Limit
-     *
-     * @var int
-     * @access private
-     */
-    static $recur_limit = 5;
-
-    /**
-     * URL fetch flag
-     *
-     * @var bool
-     * @access private
-     */
-    static $disable_url_fetch = false;
-
-    /**
-     * Default Constructor.
-     *
-     * @return \phpseclib\File\X509
-     * @access public
-     */
-    function __construct()
-    {
-        // Explicitly Tagged Module, 1988 Syntax
-        // http://tools.ietf.org/html/rfc5280#appendix-A.1
-
-        $this->DirectoryString = array(
-            'type'     => ASN1::TYPE_CHOICE,
-            'children' => array(
-                'teletexString'   => array('type' => ASN1::TYPE_TELETEX_STRING),
-                'printableString' => array('type' => ASN1::TYPE_PRINTABLE_STRING),
-                'universalString' => array('type' => ASN1::TYPE_UNIVERSAL_STRING),
-                'utf8String'      => array('type' => ASN1::TYPE_UTF8_STRING),
-                'bmpString'       => array('type' => ASN1::TYPE_BMP_STRING)
-            )
-        );
-
-        $this->PKCS9String = array(
-            'type'     => ASN1::TYPE_CHOICE,
-            'children' => array(
-                'ia5String'       => array('type' => ASN1::TYPE_IA5_STRING),
-                'directoryString' => $this->DirectoryString
-            )
-        );
-
-        $this->AttributeValue = array('type' => ASN1::TYPE_ANY);
-
-        $AttributeType = array('type' => ASN1::TYPE_OBJECT_IDENTIFIER);
-
-        $AttributeTypeAndValue = array(
-            'type'     => ASN1::TYPE_SEQUENCE,
-            'children' => array(
-                'type' => $AttributeType,
-                'value'=> $this->AttributeValue
-            )
-        );
-
-        /*
-        In practice, RDNs containing multiple name-value pairs (called "multivalued RDNs") are rare,
-        but they can be useful at times when either there is no unique attribute in the entry or you
-        want to ensure that the entry's DN contains some useful identifying information.
-
-        - https://www.opends.org/wiki/page/DefinitionRelativeDistinguishedName
-        */
-        $this->RelativeDistinguishedName = array(
-            'type'     => ASN1::TYPE_SET,
-            'min'      => 1,
-            'max'      => -1,
-            'children' => $AttributeTypeAndValue
-        );
-
-        // http://tools.ietf.org/html/rfc5280#section-4.1.2.4
-        $RDNSequence = array(
-            'type'     => ASN1::TYPE_SEQUENCE,
-            // RDNSequence does not define a min or a max, which means it doesn't have one
-            'min'      => 0,
-            'max'      => -1,
-            'children' => $this->RelativeDistinguishedName
-        );
-
-        $this->Name = array(
-            'type'     => ASN1::TYPE_CHOICE,
-            'children' => array(
-                'rdnSequence' => $RDNSequence
-            )
-        );
-
-        // http://tools.ietf.org/html/rfc5280#section-4.1.1.2
-        $AlgorithmIdentifier = array(
-            'type'     => ASN1::TYPE_SEQUENCE,
-            'children' => array(
-                'algorithm'  => array('type' => ASN1::TYPE_OBJECT_IDENTIFIER),
-                'parameters' => array(
-                                    'type'     => ASN1::TYPE_ANY,
-                                    'optional' => true
-                                )
-            )
-        );
-
-        /*
-           A certificate using system MUST reject the certificate if it encounters
-           a critical extension it does not recognize; however, a non-critical
-           extension may be ignored if it is not recognized.
-
-           http://tools.ietf.org/html/rfc5280#section-4.2
-        */
-        $Extension = array(
-            'type'     => ASN1::TYPE_SEQUENCE,
-            'children' => array(
-                'extnId'   => array('type' => ASN1::TYPE_OBJECT_IDENTIFIER),
-                'critical' => array(
-                                  'type'     => ASN1::TYPE_BOOLEAN,
-                                  'optional' => true,
-                                  'default'  => false
-                              ),
-                'extnValue' => array('type' => ASN1::TYPE_OCTET_STRING)
-            )
-        );
-
-        $this->Extensions = array(
-            'type'     => ASN1::TYPE_SEQUENCE,
-            'min'      => 1,
-            // technically, it's MAX, but we'll assume anything < 0 is MAX
-            'max'      => -1,
-            // if 'children' isn't an array then 'min' and 'max' must be defined
-            'children' => $Extension
-        );
-
-        $SubjectPublicKeyInfo = array(
-            'type'     => ASN1::TYPE_SEQUENCE,
-            'children' => array(
-                'algorithm'        => $AlgorithmIdentifier,
-                'subjectPublicKey' => array('type' => ASN1::TYPE_BIT_STRING)
-            )
-        );
-
-        $UniqueIdentifier = array('type' => ASN1::TYPE_BIT_STRING);
-
-        $Time = array(
-            'type'     => ASN1::TYPE_CHOICE,
-            'children' => array(
-                'utcTime'     => array('type' => ASN1::TYPE_UTC_TIME),
-                'generalTime' => array('type' => ASN1::TYPE_GENERALIZED_TIME)
-            )
-        );
-
-        // http://tools.ietf.org/html/rfc5280#section-4.1.2.5
-        $Validity = array(
-            'type'     => ASN1::TYPE_SEQUENCE,
-            'children' => array(
-                'notBefore' => $Time,
-                'notAfter'  => $Time
-            )
-        );
-
-        $CertificateSerialNumber = array('type' => ASN1::TYPE_INTEGER);
-
-        $Version = array(
-            'type'    => ASN1::TYPE_INTEGER,
-            'mapping' => array('v1', 'v2', 'v3')
-        );
-
-        // assert($TBSCertificate['children']['signature'] == $Certificate['children']['signatureAlgorithm'])
-        $TBSCertificate = array(
-            'type'     => ASN1::TYPE_SEQUENCE,
-            'children' => array(
-                // technically, default implies optional, but we'll define it as being optional, none-the-less, just to
-                // reenforce that fact
-                'version'             => array(
-                                             'constant' => 0,
-                                             'optional' => true,
-                                             'explicit' => true,
-                                             'default'  => 'v1'
-                                         ) + $Version,
-                'serialNumber'         => $CertificateSerialNumber,
-                'signature'            => $AlgorithmIdentifier,
-                'issuer'               => $this->Name,
-                'validity'             => $Validity,
-                'subject'              => $this->Name,
-                'subjectPublicKeyInfo' => $SubjectPublicKeyInfo,
-                // implicit means that the T in the TLV structure is to be rewritten, regardless of the type
-                'issuerUniqueID'       => array(
-                                               'constant' => 1,
-                                               'optional' => true,
-                                               'implicit' => true
-                                           ) + $UniqueIdentifier,
-                'subjectUniqueID'       => array(
-                                               'constant' => 2,
-                                               'optional' => true,
-                                               'implicit' => true
-                                           ) + $UniqueIdentifier,
-                // <http://tools.ietf.org/html/rfc2459#page-74> doesn't use the EXPLICIT keyword but if
-                // it's not IMPLICIT, it's EXPLICIT
-                'extensions'            => array(
-                                               'constant' => 3,
-                                               'optional' => true,
-                                               'explicit' => true
-                                           ) + $this->Extensions
-            )
-        );
-
-        $this->Certificate = array(
-            'type'     => ASN1::TYPE_SEQUENCE,
-            'children' => array(
-                 'tbsCertificate'     => $TBSCertificate,
-                 'signatureAlgorithm' => $AlgorithmIdentifier,
-                 'signature'          => array('type' => ASN1::TYPE_BIT_STRING)
-            )
-        );
-
-        $this->KeyUsage = array(
-            'type'    => ASN1::TYPE_BIT_STRING,
-            'mapping' => array(
-                'digitalSignature',
-                'nonRepudiation',
-                'keyEncipherment',
-                'dataEncipherment',
-                'keyAgreement',
-                'keyCertSign',
-                'cRLSign',
-                'encipherOnly',
-                'decipherOnly'
-            )
-        );
-
-        $this->BasicConstraints = array(
-            'type'     => ASN1::TYPE_SEQUENCE,
-            'children' => array(
-                'cA'                => array(
-                                                 'type'     => ASN1::TYPE_BOOLEAN,
-                                                 'optional' => true,
-                                                 'default'  => false
-                                       ),
-                'pathLenConstraint' => array(
-                                                 'type' => ASN1::TYPE_INTEGER,
-                                                 'optional' => true
-                                       )
-            )
-        );
-
-        $this->KeyIdentifier = array('type' => ASN1::TYPE_OCTET_STRING);
-
-        $OrganizationalUnitNames = array(
-            'type'     => ASN1::TYPE_SEQUENCE,
-            'min'      => 1,
-            'max'      => 4, // ub-organizational-units
-            'children' => array('type' => ASN1::TYPE_PRINTABLE_STRING)
-        );
-
-        $PersonalName = array(
-            'type'     => ASN1::TYPE_SET,
-            'children' => array(
-                'surname'              => array(
-                                           'type' => ASN1::TYPE_PRINTABLE_STRING,
-                                           'constant' => 0,
-                                           'optional' => true,
-                                           'implicit' => true
-                                         ),
-                'given-name'           => array(
-                                           'type' => ASN1::TYPE_PRINTABLE_STRING,
-                                           'constant' => 1,
-                                           'optional' => true,
-                                           'implicit' => true
-                                         ),
-                'initials'             => array(
-                                           'type' => ASN1::TYPE_PRINTABLE_STRING,
-                                           'constant' => 2,
-                                           'optional' => true,
-                                           'implicit' => true
-                                         ),
-                'generation-qualifier' => array(
-                                           'type' => ASN1::TYPE_PRINTABLE_STRING,
-                                           'constant' => 3,
-                                           'optional' => true,
-                                           'implicit' => true
-                                         )
-            )
-        );
-
-        $NumericUserIdentifier = array('type' => ASN1::TYPE_NUMERIC_STRING);
-
-        $OrganizationName = array('type' => ASN1::TYPE_PRINTABLE_STRING);
-
-        $PrivateDomainName = array(
-            'type'     => ASN1::TYPE_CHOICE,
-            'children' => array(
-                'numeric'   => array('type' => ASN1::TYPE_NUMERIC_STRING),
-                'printable' => array('type' => ASN1::TYPE_PRINTABLE_STRING)
-            )
-        );
-
-        $TerminalIdentifier = array('type' => ASN1::TYPE_PRINTABLE_STRING);
-
-        $NetworkAddress = array('type' => ASN1::TYPE_NUMERIC_STRING);
-
-        $AdministrationDomainName = array(
-            'type'     => ASN1::TYPE_CHOICE,
-            // if class isn't present it's assumed to be \phpseclib\File\ASN1::CLASS_UNIVERSAL or
-            // (if constant is present) \phpseclib\File\ASN1::CLASS_CONTEXT_SPECIFIC
-            'class'    => ASN1::CLASS_APPLICATION,
-            'cast'     => 2,
-            'children' => array(
-                'numeric'   => array('type' => ASN1::TYPE_NUMERIC_STRING),
-                'printable' => array('type' => ASN1::TYPE_PRINTABLE_STRING)
-            )
-        );
-
-        $CountryName = array(
-            'type'     => ASN1::TYPE_CHOICE,
-            // if class isn't present it's assumed to be \phpseclib\File\ASN1::CLASS_UNIVERSAL or
-            // (if constant is present) \phpseclib\File\ASN1::CLASS_CONTEXT_SPECIFIC
-            'class'    => ASN1::CLASS_APPLICATION,
-            'cast'     => 1,
-            'children' => array(
-                'x121-dcc-code'        => array('type' => ASN1::TYPE_NUMERIC_STRING),
-                'iso-3166-alpha2-code' => array('type' => ASN1::TYPE_PRINTABLE_STRING)
-            )
-        );
-
-        $AnotherName = array(
-            'type'     => ASN1::TYPE_SEQUENCE,
-            'children' => array(
-                 'type-id' => array('type' => ASN1::TYPE_OBJECT_IDENTIFIER),
-                 'value'   => array(
-                                  'type' => ASN1::TYPE_ANY,
-                                  'constant' => 0,
-                                  'optional' => true,
-                                  'explicit' => true
-                              )
-            )
-        );
-
-        $ExtensionAttribute = array(
-            'type'     => ASN1::TYPE_SEQUENCE,
-            'children' => array(
-                 'extension-attribute-type'  => array(
-                                                    'type' => ASN1::TYPE_PRINTABLE_STRING,
-                                                    'constant' => 0,
-                                                    'optional' => true,
-                                                    'implicit' => true
-                                                ),
-                 'extension-attribute-value' => array(
-                                                    'type' => ASN1::TYPE_ANY,
-                                                    'constant' => 1,
-                                                    'optional' => true,
-                                                    'explicit' => true
-                                                )
-            )
-        );
-
-        $ExtensionAttributes = array(
-            'type'     => ASN1::TYPE_SET,
-            'min'      => 1,
-            'max'      => 256, // ub-extension-attributes
-            'children' => $ExtensionAttribute
-        );
-
-        $BuiltInDomainDefinedAttribute = array(
-            'type'     => ASN1::TYPE_SEQUENCE,
-            'children' => array(
-                 'type'  => array('type' => ASN1::TYPE_PRINTABLE_STRING),
-                 'value' => array('type' => ASN1::TYPE_PRINTABLE_STRING)
-            )
-        );
-
-        $BuiltInDomainDefinedAttributes = array(
-            'type'     => ASN1::TYPE_SEQUENCE,
-            'min'      => 1,
-            'max'      => 4, // ub-domain-defined-attributes
-            'children' => $BuiltInDomainDefinedAttribute
-        );
-
-        $BuiltInStandardAttributes =  array(
-            'type'     => ASN1::TYPE_SEQUENCE,
-            'children' => array(
-                'country-name'               => array('optional' => true) + $CountryName,
-                'administration-domain-name' => array('optional' => true) + $AdministrationDomainName,
-                'network-address'            => array(
-                                                 'constant' => 0,
-                                                 'optional' => true,
-                                                 'implicit' => true
-                                               ) + $NetworkAddress,
-                'terminal-identifier'        => array(
-                                                 'constant' => 1,
-                                                 'optional' => true,
-                                                 'implicit' => true
-                                               ) + $TerminalIdentifier,
-                'private-domain-name'        => array(
-                                                 'constant' => 2,
-                                                 'optional' => true,
-                                                 'explicit' => true
-                                               ) + $PrivateDomainName,
-                'organization-name'          => array(
-                                                 'constant' => 3,
-                                                 'optional' => true,
-                                                 'implicit' => true
-                                               ) + $OrganizationName,
-                'numeric-user-identifier'    => array(
-                                                 'constant' => 4,
-                                                 'optional' => true,
-                                                 'implicit' => true
-                                               ) + $NumericUserIdentifier,
-                'personal-name'              => array(
-                                                 'constant' => 5,
-                                                 'optional' => true,
-                                                 'implicit' => true
-                                               ) + $PersonalName,
-                'organizational-unit-names'  => array(
-                                                 'constant' => 6,
-                                                 'optional' => true,
-                                                 'implicit' => true
-                                               ) + $OrganizationalUnitNames
-            )
-        );
-
-        $ORAddress = array(
-            'type'     => ASN1::TYPE_SEQUENCE,
-            'children' => array(
-                 'built-in-standard-attributes'       => $BuiltInStandardAttributes,
-                 'built-in-domain-defined-attributes' => array('optional' => true) + $BuiltInDomainDefinedAttributes,
-                 'extension-attributes'               => array('optional' => true) + $ExtensionAttributes
-            )
-        );
-
-        $EDIPartyName = array(
-            'type'     => ASN1::TYPE_SEQUENCE,
-            'children' => array(
-                 'nameAssigner' => array(
-                                    'constant' => 0,
-                                    'optional' => true,
-                                    'implicit' => true
-                                ) + $this->DirectoryString,
-                 // partyName is technically required but \phpseclib\File\ASN1 doesn't currently support non-optional constants and
-                 // setting it to optional gets the job done in any event.
-                 'partyName'    => array(
-                                    'constant' => 1,
-                                    'optional' => true,
-                                    'implicit' => true
-                                ) + $this->DirectoryString
-            )
-        );
-
-        $GeneralName = array(
-            'type'     => ASN1::TYPE_CHOICE,
-            'children' => array(
-                'otherName'                 => array(
-                                                 'constant' => 0,
-                                                 'optional' => true,
-                                                 'implicit' => true
-                                               ) + $AnotherName,
-                'rfc822Name'                => array(
-                                                 'type' => ASN1::TYPE_IA5_STRING,
-                                                 'constant' => 1,
-                                                 'optional' => true,
-                                                 'implicit' => true
-                                               ),
-                'dNSName'                   => array(
-                                                 'type' => ASN1::TYPE_IA5_STRING,
-                                                 'constant' => 2,
-                                                 'optional' => true,
-                                                 'implicit' => true
-                                               ),
-                'x400Address'               => array(
-                                                 'constant' => 3,
-                                                 'optional' => true,
-                                                 'implicit' => true
-                                               ) + $ORAddress,
-                'directoryName'             => array(
-                                                 'constant' => 4,
-                                                 'optional' => true,
-                                                 'explicit' => true
-                                               ) + $this->Name,
-                'ediPartyName'              => array(
-                                                 'constant' => 5,
-                                                 'optional' => true,
-                                                 'implicit' => true
-                                               ) + $EDIPartyName,
-                'uniformResourceIdentifier' => array(
-                                                 'type' => ASN1::TYPE_IA5_STRING,
-                                                 'constant' => 6,
-                                                 'optional' => true,
-                                                 'implicit' => true
-                                               ),
-                'iPAddress'                 => array(
-                                                 'type' => ASN1::TYPE_OCTET_STRING,
-                                                 'constant' => 7,
-                                                 'optional' => true,
-                                                 'implicit' => true
-                                               ),
-                'registeredID'              => array(
-                                                 'type' => ASN1::TYPE_OBJECT_IDENTIFIER,
-                                                 'constant' => 8,
-                                                 'optional' => true,
-                                                 'implicit' => true
-                                               )
-            )
-        );
-
-        $GeneralNames = array(
-            'type'     => ASN1::TYPE_SEQUENCE,
-            'min'      => 1,
-            'max'      => -1,
-            'children' => $GeneralName
-        );
-
-        $this->IssuerAltName = $GeneralNames;
-
-        $ReasonFlags = array(
-            'type'    => ASN1::TYPE_BIT_STRING,
-            'mapping' => array(
-                'unused',
-                'keyCompromise',
-                'cACompromise',
-                'affiliationChanged',
-                'superseded',
-                'cessationOfOperation',
-                'certificateHold',
-                'privilegeWithdrawn',
-                'aACompromise'
-            )
-        );
-
-        $DistributionPointName = array(
-            'type'     => ASN1::TYPE_CHOICE,
-            'children' => array(
-                'fullName'                => array(
-                                                 'constant' => 0,
-                                                 'optional' => true,
-                                                 'implicit' => true
-                                       ) + $GeneralNames,
-                'nameRelativeToCRLIssuer' => array(
-                                                 'constant' => 1,
-                                                 'optional' => true,
-                                                 'implicit' => true
-                                       ) + $this->RelativeDistinguishedName
-            )
-        );
-
-        $DistributionPoint = array(
-            'type'     => ASN1::TYPE_SEQUENCE,
-            'children' => array(
-                'distributionPoint' => array(
-                                                 'constant' => 0,
-                                                 'optional' => true,
-                                                 'explicit' => true
-                                       ) + $DistributionPointName,
-                'reasons'           => array(
-                                                 'constant' => 1,
-                                                 'optional' => true,
-                                                 'implicit' => true
-                                       ) + $ReasonFlags,
-                'cRLIssuer'         => array(
-                                                 'constant' => 2,
-                                                 'optional' => true,
-                                                 'implicit' => true
-                                       ) + $GeneralNames
-            )
-        );
-
-        $this->CRLDistributionPoints = array(
-            'type'     => ASN1::TYPE_SEQUENCE,
-            'min'      => 1,
-            'max'      => -1,
-            'children' => $DistributionPoint
-        );
-
-        $this->AuthorityKeyIdentifier = array(
-            'type'     => ASN1::TYPE_SEQUENCE,
-            'children' => array(
-                'keyIdentifier'             => array(
-                                                 'constant' => 0,
-                                                 'optional' => true,
-                                                 'implicit' => true
-                                               ) + $this->KeyIdentifier,
-                'authorityCertIssuer'       => array(
-                                                 'constant' => 1,
-                                                 'optional' => true,
-                                                 'implicit' => true
-                                               ) + $GeneralNames,
-                'authorityCertSerialNumber' => array(
-                                                 'constant' => 2,
-                                                 'optional' => true,
-                                                 'implicit' => true
-                                               ) + $CertificateSerialNumber
-            )
-        );
-
-        $PolicyQualifierId = array('type' => ASN1::TYPE_OBJECT_IDENTIFIER);
-
-        $PolicyQualifierInfo = array(
-            'type'     => ASN1::TYPE_SEQUENCE,
-            'children' => array(
-                'policyQualifierId' => $PolicyQualifierId,
-                'qualifier'         => array('type' => ASN1::TYPE_ANY)
-            )
-        );
-
-        $CertPolicyId = array('type' => ASN1::TYPE_OBJECT_IDENTIFIER);
-
-        $PolicyInformation = array(
-            'type'     => ASN1::TYPE_SEQUENCE,
-            'children' => array(
-                'policyIdentifier' => $CertPolicyId,
-                'policyQualifiers' => array(
-                                          'type'     => ASN1::TYPE_SEQUENCE,
-                                          'min'      => 0,
-                                          'max'      => -1,
-                                          'optional' => true,
-                                          'children' => $PolicyQualifierInfo
-                                      )
-            )
-        );
-
-        $this->CertificatePolicies = array(
-            'type'     => ASN1::TYPE_SEQUENCE,
-            'min'      => 1,
-            'max'      => -1,
-            'children' => $PolicyInformation
-        );
-
-        $this->PolicyMappings = array(
-            'type'     => ASN1::TYPE_SEQUENCE,
-            'min'      => 1,
-            'max'      => -1,
-            'children' => array(
-                              'type'     => ASN1::TYPE_SEQUENCE,
-                              'children' => array(
-                                  'issuerDomainPolicy' => $CertPolicyId,
-                                  'subjectDomainPolicy' => $CertPolicyId
-                              )
-                       )
-        );
-
-        $KeyPurposeId = array('type' => ASN1::TYPE_OBJECT_IDENTIFIER);
-
-        $this->ExtKeyUsageSyntax = array(
-            'type'     => ASN1::TYPE_SEQUENCE,
-            'min'      => 1,
-            'max'      => -1,
-            'children' => $KeyPurposeId
-        );
-
-        $AccessDescription = array(
-            'type'     => ASN1::TYPE_SEQUENCE,
-            'children' => array(
-                'accessMethod'   => array('type' => ASN1::TYPE_OBJECT_IDENTIFIER),
-                'accessLocation' => $GeneralName
-            )
-        );
-
-        $this->AuthorityInfoAccessSyntax = array(
-            'type'     => ASN1::TYPE_SEQUENCE,
-            'min'      => 1,
-            'max'      => -1,
-            'children' => $AccessDescription
-        );
-
-        $this->SubjectAltName = $GeneralNames;
-
-        $this->PrivateKeyUsagePeriod = array(
-            'type'     => ASN1::TYPE_SEQUENCE,
-            'children' => array(
-                'notBefore' => array(
-                                                 'constant' => 0,
-                                                 'optional' => true,
-                                                 'implicit' => true,
-                                                 'type' => ASN1::TYPE_GENERALIZED_TIME),
-                'notAfter'  => array(
-                                                 'constant' => 1,
-                                                 'optional' => true,
-                                                 'implicit' => true,
-                                                 'type' => ASN1::TYPE_GENERALIZED_TIME)
-            )
-        );
-
-        $BaseDistance = array('type' => ASN1::TYPE_INTEGER);
-
-        $GeneralSubtree = array(
-            'type'     => ASN1::TYPE_SEQUENCE,
-            'children' => array(
-                'base'    => $GeneralName,
-                'minimum' => array(
-                                 'constant' => 0,
-                                 'optional' => true,
-                                 'implicit' => true,
-                                 'default' => new BigInteger(0)
-                             ) + $BaseDistance,
-                'maximum' => array(
-                                 'constant' => 1,
-                                 'optional' => true,
-                                 'implicit' => true,
-                             ) + $BaseDistance
-            )
-        );
-
-        $GeneralSubtrees = array(
-            'type'     => ASN1::TYPE_SEQUENCE,
-            'min'      => 1,
-            'max'      => -1,
-            'children' => $GeneralSubtree
-        );
-
-        $this->NameConstraints = array(
-            'type'     => ASN1::TYPE_SEQUENCE,
-            'children' => array(
-                'permittedSubtrees' => array(
-                                           'constant' => 0,
-                                           'optional' => true,
-                                           'implicit' => true
-                                       ) + $GeneralSubtrees,
-                'excludedSubtrees'  => array(
-                                           'constant' => 1,
-                                           'optional' => true,
-                                           'implicit' => true
-                                       ) + $GeneralSubtrees
-            )
-        );
-
-        $this->CPSuri = array('type' => ASN1::TYPE_IA5_STRING);
-
-        $DisplayText = array(
-            'type'     => ASN1::TYPE_CHOICE,
-            'children' => array(
-                'ia5String'     => array('type' => ASN1::TYPE_IA5_STRING),
-                'visibleString' => array('type' => ASN1::TYPE_VISIBLE_STRING),
-                'bmpString'     => array('type' => ASN1::TYPE_BMP_STRING),
-                'utf8String'    => array('type' => ASN1::TYPE_UTF8_STRING)
-            )
-        );
-
-        $NoticeReference = array(
-            'type'     => ASN1::TYPE_SEQUENCE,
-            'children' => array(
-                'organization'  => $DisplayText,
-                'noticeNumbers' => array(
-                                       'type'     => ASN1::TYPE_SEQUENCE,
-                                       'min'      => 1,
-                                       'max'      => 200,
-                                       'children' => array('type' => ASN1::TYPE_INTEGER)
-                                   )
-            )
-        );
-
-        $this->UserNotice = array(
-            'type'     => ASN1::TYPE_SEQUENCE,
-            'children' => array(
-                'noticeRef' => array(
-                                           'optional' => true,
-                                           'implicit' => true
-                                       ) + $NoticeReference,
-                'explicitText'  => array(
-                                           'optional' => true,
-                                           'implicit' => true
-                                       ) + $DisplayText
-            )
-        );
-
-        // mapping is from <http://www.mozilla.org/projects/security/pki/nss/tech-notes/tn3.html>
-        $this->netscape_cert_type = array(
-            'type'    => ASN1::TYPE_BIT_STRING,
-            'mapping' => array(
-                'SSLClient',
-                'SSLServer',
-                'Email',
-                'ObjectSigning',
-                'Reserved',
-                'SSLCA',
-                'EmailCA',
-                'ObjectSigningCA'
-            )
-        );
-
-        $this->netscape_comment = array('type' => ASN1::TYPE_IA5_STRING);
-        $this->netscape_ca_policy_url = array('type' => ASN1::TYPE_IA5_STRING);
-
-        // attribute is used in RFC2986 but we're using the RFC5280 definition
-
-        $Attribute = array(
-            'type'     => ASN1::TYPE_SEQUENCE,
-            'children' => array(
-                'type' => $AttributeType,
-                'value'=> array(
-                              'type'     => ASN1::TYPE_SET,
-                              'min'      => 1,
-                              'max'      => -1,
-                              'children' => $this->AttributeValue
-                          )
-            )
-        );
-
-        $this->SubjectDirectoryAttributes = array(
-            'type'     => ASN1::TYPE_SEQUENCE,
-            'min'      => 1,
-            'max'      => -1,
-            'children' => $Attribute
-        );
-
-        // adapted from <http://tools.ietf.org/html/rfc2986>
-
-        $Attributes = array(
-            'type'     => ASN1::TYPE_SET,
-            'min'      => 1,
-            'max'      => -1,
-            'children' => $Attribute
-        );
-
-        $CertificationRequestInfo = array(
-            'type'     => ASN1::TYPE_SEQUENCE,
-            'children' => array(
-                'version'       => array(
-                                       'type' => ASN1::TYPE_INTEGER,
-                                       'mapping' => array('v1')
-                                   ),
-                'subject'       => $this->Name,
-                'subjectPKInfo' => $SubjectPublicKeyInfo,
-                'attributes'    => array(
-                                       'constant' => 0,
-                                       'optional' => true,
-                                       'implicit' => true
-                                   ) + $Attributes,
-            )
-        );
-
-        $this->CertificationRequest = array(
-            'type'     => ASN1::TYPE_SEQUENCE,
-            'children' => array(
-                'certificationRequestInfo' => $CertificationRequestInfo,
-                'signatureAlgorithm'       => $AlgorithmIdentifier,
-                'signature'                => array('type' => ASN1::TYPE_BIT_STRING)
-            )
-        );
-
-        $RevokedCertificate = array(
-            'type'     => ASN1::TYPE_SEQUENCE,
-            'children' => array(
-                              'userCertificate'    => $CertificateSerialNumber,
-                              'revocationDate'     => $Time,
-                              'crlEntryExtensions' => array(
-                                                          'optional' => true
-                                                      ) + $this->Extensions
-                          )
-        );
-
-        $TBSCertList = array(
-            'type'     => ASN1::TYPE_SEQUENCE,
-            'children' => array(
-                'version'             => array(
-                                             'optional' => true,
-                                             'default'  => 'v1'
-                                         ) + $Version,
-                'signature'           => $AlgorithmIdentifier,
-                'issuer'              => $this->Name,
-                'thisUpdate'          => $Time,
-                'nextUpdate'          => array(
-                                             'optional' => true
-                                         ) + $Time,
-                'revokedCertificates' => array(
-                                             'type'     => ASN1::TYPE_SEQUENCE,
-                                             'optional' => true,
-                                             'min'      => 0,
-                                             'max'      => -1,
-                                             'children' => $RevokedCertificate
-                                         ),
-                'crlExtensions'       => array(
-                                             'constant' => 0,
-                                             'optional' => true,
-                                             'explicit' => true
-                                         ) + $this->Extensions
-            )
-        );
-
-        $this->CertificateList = array(
-            'type'     => ASN1::TYPE_SEQUENCE,
-            'children' => array(
-                'tbsCertList'        => $TBSCertList,
-                'signatureAlgorithm' => $AlgorithmIdentifier,
-                'signature'          => array('type' => ASN1::TYPE_BIT_STRING)
-            )
-        );
-
-        $this->CRLNumber = array('type' => ASN1::TYPE_INTEGER);
-
-        $this->CRLReason = array('type' => ASN1::TYPE_ENUMERATED,
-           'mapping' => array(
-                            'unspecified',
-                            'keyCompromise',
-                            'cACompromise',
-                            'affiliationChanged',
-                            'superseded',
-                            'cessationOfOperation',
-                            'certificateHold',
-                            // Value 7 is not used.
-                            8 => 'removeFromCRL',
-                            'privilegeWithdrawn',
-                            'aACompromise'
-            )
-        );
-
-        $this->IssuingDistributionPoint = array('type' => ASN1::TYPE_SEQUENCE,
-            'children' => array(
-                'distributionPoint'          => array(
-                                                    'constant' => 0,
-                                                    'optional' => true,
-                                                    'explicit' => true
-                                                ) + $DistributionPointName,
-                'onlyContainsUserCerts'      => array(
-                                                    'type'     => ASN1::TYPE_BOOLEAN,
-                                                    'constant' => 1,
-                                                    'optional' => true,
-                                                    'default'  => false,
-                                                    'implicit' => true
-                                                ),
-                'onlyContainsCACerts'        => array(
-                                                    'type'     => ASN1::TYPE_BOOLEAN,
-                                                    'constant' => 2,
-                                                    'optional' => true,
-                                                    'default'  => false,
-                                                    'implicit' => true
-                                                ),
-                'onlySomeReasons'           => array(
-                                                    'constant' => 3,
-                                                    'optional' => true,
-                                                    'implicit' => true
-                                                ) + $ReasonFlags,
-                'indirectCRL'               => array(
-                                                    'type'     => ASN1::TYPE_BOOLEAN,
-                                                    'constant' => 4,
-                                                    'optional' => true,
-                                                    'default'  => false,
-                                                    'implicit' => true
-                                                ),
-                'onlyContainsAttributeCerts' => array(
-                                                    'type'     => ASN1::TYPE_BOOLEAN,
-                                                    'constant' => 5,
-                                                    'optional' => true,
-                                                    'default'  => false,
-                                                    'implicit' => true
-                                                )
-                          )
-        );
-
-        $this->InvalidityDate = array('type' => ASN1::TYPE_GENERALIZED_TIME);
-
-        $this->CertificateIssuer = $GeneralNames;
-
-        $this->HoldInstructionCode = array('type' => ASN1::TYPE_OBJECT_IDENTIFIER);
-
-        $PublicKeyAndChallenge = array(
-            'type'     => ASN1::TYPE_SEQUENCE,
-            'children' => array(
-                'spki'      => $SubjectPublicKeyInfo,
-                'challenge' => array('type' => ASN1::TYPE_IA5_STRING)
-            )
-        );
-
-        $this->SignedPublicKeyAndChallenge = array(
-            'type'     => ASN1::TYPE_SEQUENCE,
-            'children' => array(
-                'publicKeyAndChallenge' => $PublicKeyAndChallenge,
-                'signatureAlgorithm'    => $AlgorithmIdentifier,
-                'signature'             => array('type' => ASN1::TYPE_BIT_STRING)
-            )
-        );
-
-        $this->PostalAddress = array(
-            'type'     => ASN1::TYPE_SEQUENCE,
-            'optional' => true,
-            'min'      => 1,
-            'max'      => -1,
-            'children' => $this->DirectoryString
-        );
-
-        // OIDs from RFC5280 and those RFCs mentioned in RFC5280#section-4.1.1.2
-        $this->oids = array(
-            '1.3.6.1.5.5.7' => 'id-pkix',
-            '1.3.6.1.5.5.7.1' => 'id-pe',
-            '1.3.6.1.5.5.7.2' => 'id-qt',
-            '1.3.6.1.5.5.7.3' => 'id-kp',
-            '1.3.6.1.5.5.7.48' => 'id-ad',
-            '1.3.6.1.5.5.7.2.1' => 'id-qt-cps',
-            '1.3.6.1.5.5.7.2.2' => 'id-qt-unotice',
-            '1.3.6.1.5.5.7.48.1' =>'id-ad-ocsp',
-            '1.3.6.1.5.5.7.48.2' => 'id-ad-caIssuers',
-            '1.3.6.1.5.5.7.48.3' => 'id-ad-timeStamping',
-            '1.3.6.1.5.5.7.48.5' => 'id-ad-caRepository',
-            '2.5.4' => 'id-at',
-            '2.5.4.41' => 'id-at-name',
-            '2.5.4.4' => 'id-at-surname',
-            '2.5.4.42' => 'id-at-givenName',
-            '2.5.4.43' => 'id-at-initials',
-            '2.5.4.44' => 'id-at-generationQualifier',
-            '2.5.4.3' => 'id-at-commonName',
-            '2.5.4.7' => 'id-at-localityName',
-            '2.5.4.8' => 'id-at-stateOrProvinceName',
-            '2.5.4.10' => 'id-at-organizationName',
-            '2.5.4.11' => 'id-at-organizationalUnitName',
-            '2.5.4.12' => 'id-at-title',
-            '2.5.4.13' => 'id-at-description',
-            '2.5.4.46' => 'id-at-dnQualifier',
-            '2.5.4.6' => 'id-at-countryName',
-            '2.5.4.5' => 'id-at-serialNumber',
-            '2.5.4.65' => 'id-at-pseudonym',
-            '2.5.4.17' => 'id-at-postalCode',
-            '2.5.4.9' => 'id-at-streetAddress',
-            '2.5.4.45' => 'id-at-uniqueIdentifier',
-            '2.5.4.72' => 'id-at-role',
-            '2.5.4.16' => 'id-at-postalAddress',
-
-            '0.9.2342.19200300.100.1.25' => 'id-domainComponent',
-            '1.2.840.113549.1.9' => 'pkcs-9',
-            '1.2.840.113549.1.9.1' => 'pkcs-9-at-emailAddress',
-            '2.5.29' => 'id-ce',
-            '2.5.29.35' => 'id-ce-authorityKeyIdentifier',
-            '2.5.29.14' => 'id-ce-subjectKeyIdentifier',
-            '2.5.29.15' => 'id-ce-keyUsage',
-            '2.5.29.16' => 'id-ce-privateKeyUsagePeriod',
-            '2.5.29.32' => 'id-ce-certificatePolicies',
-            '2.5.29.32.0' => 'anyPolicy',
-
-            '2.5.29.33' => 'id-ce-policyMappings',
-            '2.5.29.17' => 'id-ce-subjectAltName',
-            '2.5.29.18' => 'id-ce-issuerAltName',
-            '2.5.29.9' => 'id-ce-subjectDirectoryAttributes',
-            '2.5.29.19' => 'id-ce-basicConstraints',
-            '2.5.29.30' => 'id-ce-nameConstraints',
-            '2.5.29.36' => 'id-ce-policyConstraints',
-            '2.5.29.31' => 'id-ce-cRLDistributionPoints',
-            '2.5.29.37' => 'id-ce-extKeyUsage',
-            '2.5.29.37.0' => 'anyExtendedKeyUsage',
-            '1.3.6.1.5.5.7.3.1' => 'id-kp-serverAuth',
-            '1.3.6.1.5.5.7.3.2' => 'id-kp-clientAuth',
-            '1.3.6.1.5.5.7.3.3' => 'id-kp-codeSigning',
-            '1.3.6.1.5.5.7.3.4' => 'id-kp-emailProtection',
-            '1.3.6.1.5.5.7.3.8' => 'id-kp-timeStamping',
-            '1.3.6.1.5.5.7.3.9' => 'id-kp-OCSPSigning',
-            '2.5.29.54' => 'id-ce-inhibitAnyPolicy',
-            '2.5.29.46' => 'id-ce-freshestCRL',
-            '1.3.6.1.5.5.7.1.1' => 'id-pe-authorityInfoAccess',
-            '1.3.6.1.5.5.7.1.11' => 'id-pe-subjectInfoAccess',
-            '2.5.29.20' => 'id-ce-cRLNumber',
-            '2.5.29.28' => 'id-ce-issuingDistributionPoint',
-            '2.5.29.27' => 'id-ce-deltaCRLIndicator',
-            '2.5.29.21' => 'id-ce-cRLReasons',
-            '2.5.29.29' => 'id-ce-certificateIssuer',
-            '2.5.29.23' => 'id-ce-holdInstructionCode',
-            '1.2.840.10040.2' => 'holdInstruction',
-            '1.2.840.10040.2.1' => 'id-holdinstruction-none',
-            '1.2.840.10040.2.2' => 'id-holdinstruction-callissuer',
-            '1.2.840.10040.2.3' => 'id-holdinstruction-reject',
-            '2.5.29.24' => 'id-ce-invalidityDate',
-
-            '1.2.840.113549.2.2' => 'md2',
-            '1.2.840.113549.2.5' => 'md5',
-            '1.3.14.3.2.26' => 'id-sha1',
-            '1.2.840.10040.4.1' => 'id-dsa',
-            '1.2.840.10040.4.3' => 'id-dsa-with-sha1',
-            '1.2.840.113549.1.1' => 'pkcs-1',
-            '1.2.840.113549.1.1.1' => 'rsaEncryption',
-            '1.2.840.113549.1.1.2' => 'md2WithRSAEncryption',
-            '1.2.840.113549.1.1.4' => 'md5WithRSAEncryption',
-            '1.2.840.113549.1.1.5' => 'sha1WithRSAEncryption',
-            '1.2.840.10046.2.1' => 'dhpublicnumber',
-            '2.16.840.1.101.2.1.1.22' => 'id-keyExchangeAlgorithm',
-            '1.2.840.10045' => 'ansi-X9-62',
-            '1.2.840.10045.4' => 'id-ecSigType',
-            '1.2.840.10045.4.1' => 'ecdsa-with-SHA1',
-            '1.2.840.10045.1' => 'id-fieldType',
-            '1.2.840.10045.1.1' => 'prime-field',
-            '1.2.840.10045.1.2' => 'characteristic-two-field',
-            '1.2.840.10045.1.2.3' => 'id-characteristic-two-basis',
-            '1.2.840.10045.1.2.3.1' => 'gnBasis',
-            '1.2.840.10045.1.2.3.2' => 'tpBasis',
-            '1.2.840.10045.1.2.3.3' => 'ppBasis',
-            '1.2.840.10045.2' => 'id-publicKeyType',
-            '1.2.840.10045.2.1' => 'id-ecPublicKey',
-            '1.2.840.10045.3' => 'ellipticCurve',
-            '1.2.840.10045.3.0' => 'c-TwoCurve',
-            '1.2.840.10045.3.0.1' => 'c2pnb163v1',
-            '1.2.840.10045.3.0.2' => 'c2pnb163v2',
-            '1.2.840.10045.3.0.3' => 'c2pnb163v3',
-            '1.2.840.10045.3.0.4' => 'c2pnb176w1',
-            '1.2.840.10045.3.0.5' => 'c2pnb191v1',
-            '1.2.840.10045.3.0.6' => 'c2pnb191v2',
-            '1.2.840.10045.3.0.7' => 'c2pnb191v3',
-            '1.2.840.10045.3.0.8' => 'c2pnb191v4',
-            '1.2.840.10045.3.0.9' => 'c2pnb191v5',
-            '1.2.840.10045.3.0.10' => 'c2pnb208w1',
-            '1.2.840.10045.3.0.11' => 'c2pnb239v1',
-            '1.2.840.10045.3.0.12' => 'c2pnb239v2',
-            '1.2.840.10045.3.0.13' => 'c2pnb239v3',
-            '1.2.840.10045.3.0.14' => 'c2pnb239v4',
-            '1.2.840.10045.3.0.15' => 'c2pnb239v5',
-            '1.2.840.10045.3.0.16' => 'c2pnb272w1',
-            '1.2.840.10045.3.0.17' => 'c2pnb304w1',
-            '1.2.840.10045.3.0.18' => 'c2pnb359v1',
-            '1.2.840.10045.3.0.19' => 'c2pnb368w1',
-            '1.2.840.10045.3.0.20' => 'c2pnb431r1',
-            '1.2.840.10045.3.1' => 'primeCurve',
-            '1.2.840.10045.3.1.1' => 'prime192v1',
-            '1.2.840.10045.3.1.2' => 'prime192v2',
-            '1.2.840.10045.3.1.3' => 'prime192v3',
-            '1.2.840.10045.3.1.4' => 'prime239v1',
-            '1.2.840.10045.3.1.5' => 'prime239v2',
-            '1.2.840.10045.3.1.6' => 'prime239v3',
-            '1.2.840.10045.3.1.7' => 'prime256v1',
-            '1.2.840.113549.1.1.7' => 'id-RSAES-OAEP',
-            '1.2.840.113549.1.1.9' => 'id-pSpecified',
-            '1.2.840.113549.1.1.10' => 'id-RSASSA-PSS',
-            '1.2.840.113549.1.1.8' => 'id-mgf1',
-            '1.2.840.113549.1.1.14' => 'sha224WithRSAEncryption',
-            '1.2.840.113549.1.1.11' => 'sha256WithRSAEncryption',
-            '1.2.840.113549.1.1.12' => 'sha384WithRSAEncryption',
-            '1.2.840.113549.1.1.13' => 'sha512WithRSAEncryption',
-            '2.16.840.1.101.3.4.2.4' => 'id-sha224',
-            '2.16.840.1.101.3.4.2.1' => 'id-sha256',
-            '2.16.840.1.101.3.4.2.2' => 'id-sha384',
-            '2.16.840.1.101.3.4.2.3' => 'id-sha512',
-            '1.2.643.2.2.4' => 'id-GostR3411-94-with-GostR3410-94',
-            '1.2.643.2.2.3' => 'id-GostR3411-94-with-GostR3410-2001',
-            '1.2.643.2.2.20' => 'id-GostR3410-2001',
-            '1.2.643.2.2.19' => 'id-GostR3410-94',
-            // Netscape Object Identifiers from "Netscape Certificate Extensions"
-            '2.16.840.1.113730' => 'netscape',
-            '2.16.840.1.113730.1' => 'netscape-cert-extension',
-            '2.16.840.1.113730.1.1' => 'netscape-cert-type',
-            '2.16.840.1.113730.1.13' => 'netscape-comment',
-            '2.16.840.1.113730.1.8' => 'netscape-ca-policy-url',
-            // the following are X.509 extensions not supported by phpseclib
-            '1.3.6.1.5.5.7.1.12' => 'id-pe-logotype',
-            '1.2.840.113533.7.65.0' => 'entrustVersInfo',
-            '2.16.840.1.113733.1.6.9' => 'verisignPrivate',
-            // for Certificate Signing Requests
-            // see http://tools.ietf.org/html/rfc2985
-            '1.2.840.113549.1.9.2' => 'pkcs-9-at-unstructuredName', // PKCS #9 unstructured name
-            '1.2.840.113549.1.9.7' => 'pkcs-9-at-challengePassword', // Challenge password for certificate revocations
-            '1.2.840.113549.1.9.14' => 'pkcs-9-at-extensionRequest' // Certificate extension request
-        );
-    }
-
-    /**
-     * Load X.509 certificate
-     *
-     * Returns an associative array describing the X.509 cert or a false if the cert failed to load
-     *
-     * @param string $cert
-     * @param int $mode
-     * @access public
-     * @return mixed
-     */
-    function loadX509($cert, $mode = self::FORMAT_AUTO_DETECT)
-    {
-        if (is_array($cert) && isset($cert['tbsCertificate'])) {
-            unset($this->currentCert);
-            unset($this->currentKeyIdentifier);
-            $this->dn = $cert['tbsCertificate']['subject'];
-            if (!isset($this->dn)) {
-                return false;
-            }
-            $this->currentCert = $cert;
-
-            $currentKeyIdentifier = $this->getExtension('id-ce-subjectKeyIdentifier');
-            $this->currentKeyIdentifier = is_string($currentKeyIdentifier) ? $currentKeyIdentifier : null;
-
-            unset($this->signatureSubject);
-
-            return $cert;
-        }
-
-        $asn1 = new ASN1();
-
-        if ($mode != self::FORMAT_DER) {
-            $newcert = $this->_extractBER($cert);
-            if ($mode == self::FORMAT_PEM && $cert == $newcert) {
-                return false;
-            }
-            $cert = $newcert;
-        }
-
-        if ($cert === false) {
-            $this->currentCert = false;
-            return false;
-        }
-
-        $asn1->loadOIDs($this->oids);
-        $decoded = $asn1->decodeBER($cert);
-
-        if (!empty($decoded)) {
-            $x509 = $asn1->asn1map($decoded[0], $this->Certificate);
-        }
-        if (!isset($x509) || $x509 === false) {
-            $this->currentCert = false;
-            return false;
-        }
-
-        $this->signatureSubject = substr($cert, $decoded[0]['content'][0]['start'], $decoded[0]['content'][0]['length']);
-
-        if ($this->_isSubArrayValid($x509, 'tbsCertificate/extensions')) {
-            $this->_mapInExtensions($x509, 'tbsCertificate/extensions', $asn1);
-        }
-        $this->_mapInDNs($x509, 'tbsCertificate/issuer/rdnSequence', $asn1);
-        $this->_mapInDNs($x509, 'tbsCertificate/subject/rdnSequence', $asn1);
-
-        $key = &$x509['tbsCertificate']['subjectPublicKeyInfo']['subjectPublicKey'];
-        $key = $this->_reformatKey($x509['tbsCertificate']['subjectPublicKeyInfo']['algorithm']['algorithm'], $key);
-
-        $this->currentCert = $x509;
-        $this->dn = $x509['tbsCertificate']['subject'];
-
-        $currentKeyIdentifier = $this->getExtension('id-ce-subjectKeyIdentifier');
-        $this->currentKeyIdentifier = is_string($currentKeyIdentifier) ? $currentKeyIdentifier : null;
-
-        return $x509;
-    }
-
-    /**
-     * Save X.509 certificate
-     *
-     * @param array $cert
-     * @param int $format optional
-     * @access public
-     * @return string
-     */
-    function saveX509($cert, $format = self::FORMAT_PEM)
-    {
-        if (!is_array($cert) || !isset($cert['tbsCertificate'])) {
-            return false;
-        }
-
-        switch (true) {
-            // "case !$a: case !$b: break; default: whatever();" is the same thing as "if ($a && $b) whatever()"
-            case !($algorithm = $this->_subArray($cert, 'tbsCertificate/subjectPublicKeyInfo/algorithm/algorithm')):
-            case is_object($cert['tbsCertificate']['subjectPublicKeyInfo']['subjectPublicKey']):
-                break;
-            default:
-                switch ($algorithm) {
-                    case 'rsaEncryption':
-                        $cert['tbsCertificate']['subjectPublicKeyInfo']['subjectPublicKey']
-                            = base64_encode("\0" . base64_decode(preg_replace('#-.+-|[\r\n]#', '', $cert['tbsCertificate']['subjectPublicKeyInfo']['subjectPublicKey'])));
-                        /* "[For RSA keys] the parameters field MUST have ASN.1 type NULL for this algorithm identifier."
-                           -- https://tools.ietf.org/html/rfc3279#section-2.3.1
-
-                           given that and the fact that RSA keys appear ot be the only key type for which the parameters field can be blank,
-                           it seems like perhaps the ASN.1 description ought not say the parameters field is OPTIONAL, but whatever.
-                         */
-                        $cert['tbsCertificate']['subjectPublicKeyInfo']['algorithm']['parameters'] = null;
-                        // https://tools.ietf.org/html/rfc3279#section-2.2.1
-                        $cert['signatureAlgorithm']['parameters'] = null;
-                        $cert['tbsCertificate']['signature']['parameters'] = null;
-                }
-        }
-
-        $asn1 = new ASN1();
-        $asn1->loadOIDs($this->oids);
-
-        $filters = array();
-        $type_utf8_string = array('type' => ASN1::TYPE_UTF8_STRING);
-        $filters['tbsCertificate']['signature']['parameters'] = $type_utf8_string;
-        $filters['tbsCertificate']['signature']['issuer']['rdnSequence']['value'] = $type_utf8_string;
-        $filters['tbsCertificate']['issuer']['rdnSequence']['value'] = $type_utf8_string;
-        $filters['tbsCertificate']['subject']['rdnSequence']['value'] = $type_utf8_string;
-        $filters['tbsCertificate']['subjectPublicKeyInfo']['algorithm']['parameters'] = $type_utf8_string;
-        $filters['signatureAlgorithm']['parameters'] = $type_utf8_string;
-        $filters['authorityCertIssuer']['directoryName']['rdnSequence']['value'] = $type_utf8_string;
-        //$filters['policyQualifiers']['qualifier'] = $type_utf8_string;
-        $filters['distributionPoint']['fullName']['directoryName']['rdnSequence']['value'] = $type_utf8_string;
-        $filters['directoryName']['rdnSequence']['value'] = $type_utf8_string;
-
-        /* in the case of policyQualifiers/qualifier, the type has to be \phpseclib\File\ASN1::TYPE_IA5_STRING.
-           \phpseclib\File\ASN1::TYPE_PRINTABLE_STRING will cause OpenSSL's X.509 parser to spit out random
-           characters.
-         */
-        $filters['policyQualifiers']['qualifier']
-            = array('type' => ASN1::TYPE_IA5_STRING);
-
-        $asn1->loadFilters($filters);
-
-        $this->_mapOutExtensions($cert, 'tbsCertificate/extensions', $asn1);
-        $this->_mapOutDNs($cert, 'tbsCertificate/issuer/rdnSequence', $asn1);
-        $this->_mapOutDNs($cert, 'tbsCertificate/subject/rdnSequence', $asn1);
-
-        $cert = $asn1->encodeDER($cert, $this->Certificate);
-
-        switch ($format) {
-            case self::FORMAT_DER:
-                return $cert;
-            // case self::FORMAT_PEM:
-            default:
-                return "-----BEGIN CERTIFICATE-----\r\n" . chunk_split(base64_encode($cert), 64) . '-----END CERTIFICATE-----';
-        }
-    }
-
-    /**
-     * Map extension values from octet string to extension-specific internal
-     *   format.
-     *
-     * @param array ref $root
-     * @param string $path
-     * @param object $asn1
-     * @access private
-     */
-    function _mapInExtensions(&$root, $path, $asn1)
-    {
-        $extensions = &$this->_subArrayUnchecked($root, $path);
-
-        if ($extensions) {
-            for ($i = 0; $i < count($extensions); $i++) {
-                $id = $extensions[$i]['extnId'];
-                $value = &$extensions[$i]['extnValue'];
-                $value = base64_decode($value);
-                $decoded = $asn1->decodeBER($value);
-                /* [extnValue] contains the DER encoding of an ASN.1 value
-                   corresponding to the extension type identified by extnID */
-                $map = $this->_getMapping($id);
-                if (!is_bool($map)) {
-                    $mapped = $asn1->asn1map($decoded[0], $map, array('iPAddress' => array($this, '_decodeIP')));
-                    $value = $mapped === false ? $decoded[0] : $mapped;
-
-                    if ($id == 'id-ce-certificatePolicies') {
-                        for ($j = 0; $j < count($value); $j++) {
-                            if (!isset($value[$j]['policyQualifiers'])) {
-                                continue;
-                            }
-                            for ($k = 0; $k < count($value[$j]['policyQualifiers']); $k++) {
-                                $subid = $value[$j]['policyQualifiers'][$k]['policyQualifierId'];
-                                $map = $this->_getMapping($subid);
-                                $subvalue = &$value[$j]['policyQualifiers'][$k]['qualifier'];
-                                if ($map !== false) {
-                                    $decoded = $asn1->decodeBER($subvalue);
-                                    $mapped = $asn1->asn1map($decoded[0], $map);
-                                    $subvalue = $mapped === false ? $decoded[0] : $mapped;
-                                }
-                            }
-                        }
-                    }
-                } else {
-                    $value = base64_encode($value);
-                }
-            }
-        }
-    }
-
-    /**
-     * Map extension values from extension-specific internal format to
-     *   octet string.
-     *
-     * @param array ref $root
-     * @param string $path
-     * @param object $asn1
-     * @access private
-     */
-    function _mapOutExtensions(&$root, $path, $asn1)
-    {
-        $extensions = &$this->_subArray($root, $path);
-
-        if (is_array($extensions)) {
-            $size = count($extensions);
-            for ($i = 0; $i < $size; $i++) {
-                if ($extensions[$i] instanceof Element) {
-                    continue;
-                }
-
-                $id = $extensions[$i]['extnId'];
-                $value = &$extensions[$i]['extnValue'];
-
-                switch ($id) {
-                    case 'id-ce-certificatePolicies':
-                        for ($j = 0; $j < count($value); $j++) {
-                            if (!isset($value[$j]['policyQualifiers'])) {
-                                continue;
-                            }
-                            for ($k = 0; $k < count($value[$j]['policyQualifiers']); $k++) {
-                                $subid = $value[$j]['policyQualifiers'][$k]['policyQualifierId'];
-                                $map = $this->_getMapping($subid);
-                                $subvalue = &$value[$j]['policyQualifiers'][$k]['qualifier'];
-                                if ($map !== false) {
-                                    // by default \phpseclib\File\ASN1 will try to render qualifier as a \phpseclib\File\ASN1::TYPE_IA5_STRING since it's
-                                    // actual type is \phpseclib\File\ASN1::TYPE_ANY
-                                    $subvalue = new Element($asn1->encodeDER($subvalue, $map));
-                                }
-                            }
-                        }
-                        break;
-                    case 'id-ce-authorityKeyIdentifier': // use 00 as the serial number instead of an empty string
-                        if (isset($value['authorityCertSerialNumber'])) {
-                            if ($value['authorityCertSerialNumber']->toBytes() == '') {
-                                $temp = chr((ASN1::CLASS_CONTEXT_SPECIFIC << 6) | 2) . "\1\0";
-                                $value['authorityCertSerialNumber'] = new Element($temp);
-                            }
-                        }
-                }
-
-                /* [extnValue] contains the DER encoding of an ASN.1 value
-                   corresponding to the extension type identified by extnID */
-                $map = $this->_getMapping($id);
-                if (is_bool($map)) {
-                    if (!$map) {
-                        user_error($id . ' is not a currently supported extension');
-                        unset($extensions[$i]);
-                    }
-                } else {
-                    $temp = $asn1->encodeDER($value, $map, array('iPAddress' => array($this, '_encodeIP')));
-                    $value = base64_encode($temp);
-                }
-            }
-        }
-    }
-
-    /**
-     * Map attribute values from ANY type to attribute-specific internal
-     *   format.
-     *
-     * @param array ref $root
-     * @param string $path
-     * @param object $asn1
-     * @access private
-     */
-    function _mapInAttributes(&$root, $path, $asn1)
-    {
-        $attributes = &$this->_subArray($root, $path);
-
-        if (is_array($attributes)) {
-            for ($i = 0; $i < count($attributes); $i++) {
-                $id = $attributes[$i]['type'];
-                /* $value contains the DER encoding of an ASN.1 value
-                   corresponding to the attribute type identified by type */
-                $map = $this->_getMapping($id);
-                if (is_array($attributes[$i]['value'])) {
-                    $values = &$attributes[$i]['value'];
-                    for ($j = 0; $j < count($values); $j++) {
-                        $value = $asn1->encodeDER($values[$j], $this->AttributeValue);
-                        $decoded = $asn1->decodeBER($value);
-                        if (!is_bool($map)) {
-                            $mapped = $asn1->asn1map($decoded[0], $map);
-                            if ($mapped !== false) {
-                                $values[$j] = $mapped;
-                            }
-                            if ($id == 'pkcs-9-at-extensionRequest' && $this->_isSubArrayValid($values, $j)) {
-                                $this->_mapInExtensions($values, $j, $asn1);
-                            }
-                        } elseif ($map) {
-                            $values[$j] = base64_encode($value);
-                        }
-                    }
-                }
-            }
-        }
-    }
-
-    /**
-     * Map attribute values from attribute-specific internal format to
-     *   ANY type.
-     *
-     * @param array ref $root
-     * @param string $path
-     * @param object $asn1
-     * @access private
-     */
-    function _mapOutAttributes(&$root, $path, $asn1)
-    {
-        $attributes = &$this->_subArray($root, $path);
-
-        if (is_array($attributes)) {
-            $size = count($attributes);
-            for ($i = 0; $i < $size; $i++) {
-                /* [value] contains the DER encoding of an ASN.1 value
-                   corresponding to the attribute type identified by type */
-                $id = $attributes[$i]['type'];
-                $map = $this->_getMapping($id);
-                if ($map === false) {
-                    user_error($id . ' is not a currently supported attribute', E_USER_NOTICE);
-                    unset($attributes[$i]);
-                } elseif (is_array($attributes[$i]['value'])) {
-                    $values = &$attributes[$i]['value'];
-                    for ($j = 0; $j < count($values); $j++) {
-                        switch ($id) {
-                            case 'pkcs-9-at-extensionRequest':
-                                $this->_mapOutExtensions($values, $j, $asn1);
-                                break;
-                        }
-
-                        if (!is_bool($map)) {
-                            $temp = $asn1->encodeDER($values[$j], $map);
-                            $decoded = $asn1->decodeBER($temp);
-                            $values[$j] = $asn1->asn1map($decoded[0], $this->AttributeValue);
-                        }
-                    }
-                }
-            }
-        }
-    }
-
-    /**
-     * Map DN values from ANY type to DN-specific internal
-     *   format.
-     *
-     * @param array ref $root
-     * @param string $path
-     * @param object $asn1
-     * @access private
-     */
-    function _mapInDNs(&$root, $path, $asn1)
-    {
-        $dns = &$this->_subArray($root, $path);
-
-        if (is_array($dns)) {
-            for ($i = 0; $i < count($dns); $i++) {
-                for ($j = 0; $j < count($dns[$i]); $j++) {
-                    $type = $dns[$i][$j]['type'];
-                    $value = &$dns[$i][$j]['value'];
-                    if (is_object($value) && $value instanceof Element) {
-                        $map = $this->_getMapping($type);
-                        if (!is_bool($map)) {
-                            $decoded = $asn1->decodeBER($value);
-                            $value = $asn1->asn1map($decoded[0], $map);
-                        }
-                    }
-                }
-            }
-        }
-    }
-
-    /**
-     * Map DN values from DN-specific internal format to
-     *   ANY type.
-     *
-     * @param array ref $root
-     * @param string $path
-     * @param object $asn1
-     * @access private
-     */
-    function _mapOutDNs(&$root, $path, $asn1)
-    {
-        $dns = &$this->_subArray($root, $path);
-
-        if (is_array($dns)) {
-            $size = count($dns);
-            for ($i = 0; $i < $size; $i++) {
-                for ($j = 0; $j < count($dns[$i]); $j++) {
-                    $type = $dns[$i][$j]['type'];
-                    $value = &$dns[$i][$j]['value'];
-                    if (is_object($value) && $value instanceof Element) {
-                        continue;
-                    }
-
-                    $map = $this->_getMapping($type);
-                    if (!is_bool($map)) {
-                        $value = new Element($asn1->encodeDER($value, $map));
-                    }
-                }
-            }
-        }
-    }
-
-    /**
-     * Associate an extension ID to an extension mapping
-     *
-     * @param string $extnId
-     * @access private
-     * @return mixed
-     */
-    function _getMapping($extnId)
-    {
-        if (!is_string($extnId)) { // eg. if it's a \phpseclib\File\ASN1\Element object
-            return true;
-        }
-
-        switch ($extnId) {
-            case 'id-ce-keyUsage':
-                return $this->KeyUsage;
-            case 'id-ce-basicConstraints':
-                return $this->BasicConstraints;
-            case 'id-ce-subjectKeyIdentifier':
-                return $this->KeyIdentifier;
-            case 'id-ce-cRLDistributionPoints':
-                return $this->CRLDistributionPoints;
-            case 'id-ce-authorityKeyIdentifier':
-                return $this->AuthorityKeyIdentifier;
-            case 'id-ce-certificatePolicies':
-                return $this->CertificatePolicies;
-            case 'id-ce-extKeyUsage':
-                return $this->ExtKeyUsageSyntax;
-            case 'id-pe-authorityInfoAccess':
-                return $this->AuthorityInfoAccessSyntax;
-            case 'id-ce-subjectAltName':
-                return $this->SubjectAltName;
-            case 'id-ce-subjectDirectoryAttributes':
-                return $this->SubjectDirectoryAttributes;
-            case 'id-ce-privateKeyUsagePeriod':
-                return $this->PrivateKeyUsagePeriod;
-            case 'id-ce-issuerAltName':
-                return $this->IssuerAltName;
-            case 'id-ce-policyMappings':
-                return $this->PolicyMappings;
-            case 'id-ce-nameConstraints':
-                return $this->NameConstraints;
-
-            case 'netscape-cert-type':
-                return $this->netscape_cert_type;
-            case 'netscape-comment':
-                return $this->netscape_comment;
-            case 'netscape-ca-policy-url':
-                return $this->netscape_ca_policy_url;
-
-            // since id-qt-cps isn't a constructed type it will have already been decoded as a string by the time it gets
-            // back around to asn1map() and we don't want it decoded again.
-            //case 'id-qt-cps':
-            //    return $this->CPSuri;
-            case 'id-qt-unotice':
-                return $this->UserNotice;
-
-            // the following OIDs are unsupported but we don't want them to give notices when calling saveX509().
-            case 'id-pe-logotype': // http://www.ietf.org/rfc/rfc3709.txt
-            case 'entrustVersInfo':
-            // http://support.microsoft.com/kb/287547
-            case '1.3.6.1.4.1.311.20.2': // szOID_ENROLL_CERTTYPE_EXTENSION
-            case '1.3.6.1.4.1.311.21.1': // szOID_CERTSRV_CA_VERSION
-            // "SET Secure Electronic Transaction Specification"
-            // http://www.maithean.com/docs/set_bk3.pdf
-            case '2.23.42.7.0': // id-set-hashedRootKey
-            // "Certificate Transparency"
-            // https://tools.ietf.org/html/rfc6962
-            case '1.3.6.1.4.1.11129.2.4.2':
-                return true;
-
-            // CSR attributes
-            case 'pkcs-9-at-unstructuredName':
-                return $this->PKCS9String;
-            case 'pkcs-9-at-challengePassword':
-                return $this->DirectoryString;
-            case 'pkcs-9-at-extensionRequest':
-                return $this->Extensions;
-
-            // CRL extensions.
-            case 'id-ce-cRLNumber':
-                return $this->CRLNumber;
-            case 'id-ce-deltaCRLIndicator':
-                return $this->CRLNumber;
-            case 'id-ce-issuingDistributionPoint':
-                return $this->IssuingDistributionPoint;
-            case 'id-ce-freshestCRL':
-                return $this->CRLDistributionPoints;
-            case 'id-ce-cRLReasons':
-                return $this->CRLReason;
-            case 'id-ce-invalidityDate':
-                return $this->InvalidityDate;
-            case 'id-ce-certificateIssuer':
-                return $this->CertificateIssuer;
-            case 'id-ce-holdInstructionCode':
-                return $this->HoldInstructionCode;
-            case 'id-at-postalAddress':
-                return $this->PostalAddress;
-        }
-
-        return false;
-    }
-
-    /**
-     * Load an X.509 certificate as a certificate authority
-     *
-     * @param string $cert
-     * @access public
-     * @return bool
-     */
-    function loadCA($cert)
-    {
-        $olddn = $this->dn;
-        $oldcert = $this->currentCert;
-        $oldsigsubj = $this->signatureSubject;
-        $oldkeyid = $this->currentKeyIdentifier;
-
-        $cert = $this->loadX509($cert);
-        if (!$cert) {
-            $this->dn = $olddn;
-            $this->currentCert = $oldcert;
-            $this->signatureSubject = $oldsigsubj;
-            $this->currentKeyIdentifier = $oldkeyid;
-
-            return false;
-        }
-
-        /* From RFC5280 "PKIX Certificate and CRL Profile":
-
-           If the keyUsage extension is present, then the subject public key
-           MUST NOT be used to verify signatures on certificates or CRLs unless
-           the corresponding keyCertSign or cRLSign bit is set. */
-        //$keyUsage = $this->getExtension('id-ce-keyUsage');
-        //if ($keyUsage && !in_array('keyCertSign', $keyUsage)) {
-        //    return false;
-        //}
-
-        /* From RFC5280 "PKIX Certificate and CRL Profile":
-
-           The cA boolean indicates whether the certified public key may be used
-           to verify certificate signatures.  If the cA boolean is not asserted,
-           then the keyCertSign bit in the key usage extension MUST NOT be
-           asserted.  If the basic constraints extension is not present in a
-           version 3 certificate, or the extension is present but the cA boolean
-           is not asserted, then the certified public key MUST NOT be used to
-           verify certificate signatures. */
-        //$basicConstraints = $this->getExtension('id-ce-basicConstraints');
-        //if (!$basicConstraints || !$basicConstraints['cA']) {
-        //    return false;
-        //}
-
-        $this->CAs[] = $cert;
-
-        $this->dn = $olddn;
-        $this->currentCert = $oldcert;
-        $this->signatureSubject = $oldsigsubj;
-
-        return true;
-    }
-
-    /**
-     * Validate an X.509 certificate against a URL
-     *
-     * From RFC2818 "HTTP over TLS":
-     *
-     * Matching is performed using the matching rules specified by
-     * [RFC2459].  If more than one identity of a given type is present in
-     * the certificate (e.g., more than one dNSName name, a match in any one
-     * of the set is considered acceptable.) Names may contain the wildcard
-     * character * which is considered to match any single domain name
-     * component or component fragment. E.g., *.a.com matches foo.a.com but
-     * not bar.foo.a.com. f*.com matches foo.com but not bar.com.
-     *
-     * @param string $url
-     * @access public
-     * @return bool
-     */
-    function validateURL($url)
-    {
-        if (!is_array($this->currentCert) || !isset($this->currentCert['tbsCertificate'])) {
-            return false;
-        }
-
-        $components = parse_url($url);
-        if (!isset($components['host'])) {
-            return false;
-        }
-
-        if ($names = $this->getExtension('id-ce-subjectAltName')) {
-            foreach ($names as $name) {
-                foreach ($name as $key => $value) {
-                    $value = str_replace(array('.', '*'), array('\.', '[^.]*'), $value);
-                    switch ($key) {
-                        case 'dNSName':
-                            /* From RFC2818 "HTTP over TLS":
-
-                               If a subjectAltName extension of type dNSName is present, that MUST
-                               be used as the identity. Otherwise, the (most specific) Common Name
-                               field in the Subject field of the certificate MUST be used. Although
-                               the use of the Common Name is existing practice, it is deprecated and
-                               Certification Authorities are encouraged to use the dNSName instead. */
-                            if (preg_match('#^' . $value . '$#', $components['host'])) {
-                                return true;
-                            }
-                            break;
-                        case 'iPAddress':
-                            /* From RFC2818 "HTTP over TLS":
-
-                               In some cases, the URI is specified as an IP address rather than a
-                               hostname. In this case, the iPAddress subjectAltName must be present
-                               in the certificate and must exactly match the IP in the URI. */
-                            if (preg_match('#(?:\d{1-3}\.){4}#', $components['host'] . '.') && preg_match('#^' . $value . '$#', $components['host'])) {
-                                return true;
-                            }
-                    }
-                }
-            }
-            return false;
-        }
-
-        if ($value = $this->getDNProp('id-at-commonName')) {
-            $value = str_replace(array('.', '*'), array('\.', '[^.]*'), $value[0]);
-            return preg_match('#^' . $value . '$#', $components['host']);
-        }
-
-        return false;
-    }
-
-    /**
-     * Validate a date
-     *
-     * If $date isn't defined it is assumed to be the current date.
-     *
-     * @param int $date optional
-     * @access public
-     */
-    function validateDate($date = null)
-    {
-        if (!is_array($this->currentCert) || !isset($this->currentCert['tbsCertificate'])) {
-            return false;
-        }
-
-        if (!isset($date)) {
-            $date = new DateTime($date, new DateTimeZone(@date_default_timezone_get()));
-        }
-
-        $notBefore = $this->currentCert['tbsCertificate']['validity']['notBefore'];
-        $notBefore = isset($notBefore['generalTime']) ? $notBefore['generalTime'] : $notBefore['utcTime'];
-
-        $notAfter = $this->currentCert['tbsCertificate']['validity']['notAfter'];
-        $notAfter = isset($notAfter['generalTime']) ? $notAfter['generalTime'] : $notAfter['utcTime'];
-
-        switch (true) {
-            case $date < new DateTime($notBefore, new DateTimeZone(@date_default_timezone_get())):
-            case $date > new DateTime($notAfter, new DateTimeZone(@date_default_timezone_get())):
-                return false;
-        }
-
-        return true;
-    }
-
-    /**
-     * Fetches a URL
-     *
-     * @param string $url
-     * @access private
-     * @return bool|string
-     */
-    static function _fetchURL($url)
-    {
-        if (self::$disable_url_fetch) {
-            return false;
-        }
-
-        $parts = parse_url($url);
-        $data = '';
-        switch ($parts['scheme']) {
-            case 'http':
-                $fsock = @fsockopen($parts['host'], isset($parts['port']) ? $parts['port'] : 80);
-                if (!$fsock) {
-                    return false;
-                }
-                fputs($fsock, "GET $parts[path] HTTP/1.0\r\n");
-                fputs($fsock, "Host: $parts[host]\r\n\r\n");
-                $line = fgets($fsock, 1024);
-                if (strlen($line) < 3) {
-                    return false;
-                }
-                preg_match('#HTTP/1.\d (\d{3})#', $line, $temp);
-                if ($temp[1] != '200') {
-                    return false;
-                }
-
-                // skip the rest of the headers in the http response
-                while (!feof($fsock) && fgets($fsock, 1024) != "\r\n") {
-                }
-
-                while (!feof($fsock)) {
-                    $data.= fread($fsock, 1024);
-                }
-
-                break;
-            //case 'ftp':
-            //case 'ldap':
-            //default:
-        }
-
-        return $data;
-    }
-
-    /**
-     * Validates an intermediate cert as identified via authority info access extension
-     *
-     * See https://tools.ietf.org/html/rfc4325 for more info
-     *
-     * @param bool $caonly
-     * @param int $count
-     * @access private
-     * @return bool
-     */
-    function _testForIntermediate($caonly, $count)
-    {
-        $opts = $this->getExtension('id-pe-authorityInfoAccess');
-        if (!is_array($opts)) {
-            return false;
-        }
-        foreach ($opts as $opt) {
-            if ($opt['accessMethod'] == 'id-ad-caIssuers') {
-                // accessLocation is a GeneralName. GeneralName fields support stuff like email addresses, IP addresses, LDAP,
-                // etc, but we're only supporting URI's. URI's and LDAP are the only thing https://tools.ietf.org/html/rfc4325
-                // discusses
-                if (isset($opt['accessLocation']['uniformResourceIdentifier'])) {
-                    $url = $opt['accessLocation']['uniformResourceIdentifier'];
-                    break;
-                }
-            }
-        }
-
-        if (!isset($url)) {
-            return false;
-        }
-
-        $cert = static::_fetchURL($url);
-        if (!is_string($cert)) {
-            return false;
-        }
-
-        $parent = new static();
-        $parent->CAs = $this->CAs;
-        /*
-         "Conforming applications that support HTTP or FTP for accessing
-          certificates MUST be able to accept .cer files and SHOULD be able
-          to accept .p7c files." -- https://tools.ietf.org/html/rfc4325
-
-         A .p7c file is 'a "certs-only" CMS message as specified in RFC 2797"
-
-         These are currently unsupported
-        */
-        if (!is_array($parent->loadX509($cert))) {
-            return false;
-        }
-
-        if (!$parent->_validateSignatureCountable($caonly, ++$count)) {
-            return false;
-        }
-
-        $this->CAs[] = $parent->currentCert;
-        //$this->loadCA($cert);
-
-        return true;
-    }
-
-    /**
-     * Validate a signature
-     *
-     * Works on X.509 certs, CSR's and CRL's.
-     * Returns true if the signature is verified, false if it is not correct or null on error
-     *
-     * By default returns false for self-signed certs. Call validateSignature(false) to make this support
-     * self-signed.
-     *
-     * The behavior of this function is inspired by {@link http://php.net/openssl-verify openssl_verify}.
-     *
-     * @param bool $caonly optional
-     * @access public
-     * @return mixed
-     */
-    function validateSignature($caonly = true)
-    {
-        return $this->_validateSignatureCountable($caonly, 0);
-    }
-
-    /**
-     * Validate a signature
-     *
-     * Performs said validation whilst keeping track of how many times validation method is called
-     *
-     * @param bool $caonly
-     * @param int $count
-     * @access private
-     * @return mixed
-     */
-    function _validateSignatureCountable($caonly, $count)
-    {
-        if (!is_array($this->currentCert) || !isset($this->signatureSubject)) {
-            return null;
-        }
-
-        if ($count == self::$recur_limit) {
-            return false;
-        }
-
-        /* TODO:
-           "emailAddress attribute values are not case-sensitive (e.g., "subscriber@example.com" is the same as "SUBSCRIBER@EXAMPLE.COM")."
-            -- http://tools.ietf.org/html/rfc5280#section-4.1.2.6
-
-           implement pathLenConstraint in the id-ce-basicConstraints extension */
-
-        switch (true) {
-            case isset($this->currentCert['tbsCertificate']):
-                // self-signed cert
-                switch (true) {
-                    case !defined('FILE_X509_IGNORE_TYPE') && $this->currentCert['tbsCertificate']['issuer'] === $this->currentCert['tbsCertificate']['subject']:
-                    case defined('FILE_X509_IGNORE_TYPE') && $this->getIssuerDN(self::DN_STRING) === $this->getDN(self::DN_STRING):
-                        $authorityKey = $this->getExtension('id-ce-authorityKeyIdentifier');
-                        $subjectKeyID = $this->getExtension('id-ce-subjectKeyIdentifier');
-                        switch (true) {
-                            case !is_array($authorityKey):
-                            case !$subjectKeyID:
-                            case isset($authorityKey['keyIdentifier']) && $authorityKey['keyIdentifier'] === $subjectKeyID:
-                                $signingCert = $this->currentCert; // working cert
-                        }
-                }
-
-                if (!empty($this->CAs)) {
-                    for ($i = 0; $i < count($this->CAs); $i++) {
-                        // even if the cert is a self-signed one we still want to see if it's a CA;
-                        // if not, we'll conditionally return an error
-                        $ca = $this->CAs[$i];
-                        switch (true) {
-                            case !defined('FILE_X509_IGNORE_TYPE') && $this->currentCert['tbsCertificate']['issuer'] === $ca['tbsCertificate']['subject']:
-                            case defined('FILE_X509_IGNORE_TYPE') && $this->getDN(self::DN_STRING, $this->currentCert['tbsCertificate']['issuer']) === $this->getDN(self::DN_STRING, $ca['tbsCertificate']['subject']):
-                                $authorityKey = $this->getExtension('id-ce-authorityKeyIdentifier');
-                                $subjectKeyID = $this->getExtension('id-ce-subjectKeyIdentifier', $ca);
-                                switch (true) {
-                                    case !is_array($authorityKey):
-                                    case !$subjectKeyID:
-                                    case isset($authorityKey['keyIdentifier']) && $authorityKey['keyIdentifier'] === $subjectKeyID:
-                                        if (is_array($authorityKey) && isset($authorityKey['authorityCertSerialNumber']) && !$authorityKey['authorityCertSerialNumber']->equals($ca['tbsCertificate']['serialNumber'])) {
-                                            break 2; // serial mismatch - check other ca
-                                        }
-                                        $signingCert = $ca; // working cert
-                                        break 3;
-                                }
-                        }
-                    }
-                    if (count($this->CAs) == $i && $caonly) {
-                        return $this->_testForIntermediate($caonly, $count) && $this->validateSignature($caonly);
-                    }
-                } elseif (!isset($signingCert) || $caonly) {
-                    return $this->_testForIntermediate($caonly, $count) && $this->validateSignature($caonly);
-                }
-                return $this->_validateSignature(
-                    $signingCert['tbsCertificate']['subjectPublicKeyInfo']['algorithm']['algorithm'],
-                    $signingCert['tbsCertificate']['subjectPublicKeyInfo']['subjectPublicKey'],
-                    $this->currentCert['signatureAlgorithm']['algorithm'],
-                    substr(base64_decode($this->currentCert['signature']), 1),
-                    $this->signatureSubject
-                );
-            case isset($this->currentCert['certificationRequestInfo']):
-                return $this->_validateSignature(
-                    $this->currentCert['certificationRequestInfo']['subjectPKInfo']['algorithm']['algorithm'],
-                    $this->currentCert['certificationRequestInfo']['subjectPKInfo']['subjectPublicKey'],
-                    $this->currentCert['signatureAlgorithm']['algorithm'],
-                    substr(base64_decode($this->currentCert['signature']), 1),
-                    $this->signatureSubject
-                );
-            case isset($this->currentCert['publicKeyAndChallenge']):
-                return $this->_validateSignature(
-                    $this->currentCert['publicKeyAndChallenge']['spki']['algorithm']['algorithm'],
-                    $this->currentCert['publicKeyAndChallenge']['spki']['subjectPublicKey'],
-                    $this->currentCert['signatureAlgorithm']['algorithm'],
-                    substr(base64_decode($this->currentCert['signature']), 1),
-                    $this->signatureSubject
-                );
-            case isset($this->currentCert['tbsCertList']):
-                if (!empty($this->CAs)) {
-                    for ($i = 0; $i < count($this->CAs); $i++) {
-                        $ca = $this->CAs[$i];
-                        switch (true) {
-                            case !defined('FILE_X509_IGNORE_TYPE') && $this->currentCert['tbsCertList']['issuer'] === $ca['tbsCertificate']['subject']:
-                            case defined('FILE_X509_IGNORE_TYPE') && $this->getDN(self::DN_STRING, $this->currentCert['tbsCertList']['issuer']) === $this->getDN(self::DN_STRING, $ca['tbsCertificate']['subject']):
-                                $authorityKey = $this->getExtension('id-ce-authorityKeyIdentifier');
-                                $subjectKeyID = $this->getExtension('id-ce-subjectKeyIdentifier', $ca);
-                                switch (true) {
-                                    case !is_array($authorityKey):
-                                    case !$subjectKeyID:
-                                    case isset($authorityKey['keyIdentifier']) && $authorityKey['keyIdentifier'] === $subjectKeyID:
-                                        if (is_array($authorityKey) && isset($authorityKey['authorityCertSerialNumber']) && !$authorityKey['authorityCertSerialNumber']->equals($ca['tbsCertificate']['serialNumber'])) {
-                                            break 2; // serial mismatch - check other ca
-                                        }
-                                        $signingCert = $ca; // working cert
-                                        break 3;
-                                }
-                        }
-                    }
-                }
-                if (!isset($signingCert)) {
-                    return false;
-                }
-                return $this->_validateSignature(
-                    $signingCert['tbsCertificate']['subjectPublicKeyInfo']['algorithm']['algorithm'],
-                    $signingCert['tbsCertificate']['subjectPublicKeyInfo']['subjectPublicKey'],
-                    $this->currentCert['signatureAlgorithm']['algorithm'],
-                    substr(base64_decode($this->currentCert['signature']), 1),
-                    $this->signatureSubject
-                );
-            default:
-                return false;
-        }
-    }
-
-    /**
-     * Validates a signature
-     *
-     * Returns true if the signature is verified, false if it is not correct or null on error
-     *
-     * @param string $publicKeyAlgorithm
-     * @param string $publicKey
-     * @param string $signatureAlgorithm
-     * @param string $signature
-     * @param string $signatureSubject
-     * @access private
-     * @return int
-     */
-    function _validateSignature($publicKeyAlgorithm, $publicKey, $signatureAlgorithm, $signature, $signatureSubject)
-    {
-        switch ($publicKeyAlgorithm) {
-            case 'rsaEncryption':
-                $rsa = new RSA();
-                $rsa->loadKey($publicKey);
-
-                switch ($signatureAlgorithm) {
-                    case 'md2WithRSAEncryption':
-                    case 'md5WithRSAEncryption':
-                    case 'sha1WithRSAEncryption':
-                    case 'sha224WithRSAEncryption':
-                    case 'sha256WithRSAEncryption':
-                    case 'sha384WithRSAEncryption':
-                    case 'sha512WithRSAEncryption':
-                        $rsa->setHash(preg_replace('#WithRSAEncryption$#', '', $signatureAlgorithm));
-                        $rsa->setSignatureMode(RSA::SIGNATURE_PKCS1);
-                        if (!@$rsa->verify($signatureSubject, $signature)) {
-                            return false;
-                        }
-                        break;
-                    default:
-                        return null;
-                }
-                break;
-            default:
-                return null;
-        }
-
-        return true;
-    }
-
-    /**
-     * Sets the recursion limit
-     *
-     * When validating a signature it may be necessary to download intermediate certs from URI's.
-     * An intermediate cert that linked to itself would result in an infinite loop so to prevent
-     * that we set a recursion limit. A negative number means that there is no recursion limit.
-     *
-     * @param int $count
-     * @access public
-     */
-    static function setRecurLimit($count)
-    {
-        self::$recur_limit = $count;
-    }
-
-    /**
-     * Prevents URIs from being automatically retrieved
-     *
-     * @access public
-     */
-    static function disableURLFetch()
-    {
-        self::$disable_url_fetch = true;
-    }
-
-    /**
-     * Allows URIs to be automatically retrieved
-     *
-     * @access public
-     */
-    static function enableURLFetch()
-    {
-        self::$disable_url_fetch = false;
-    }
-
-    /**
-     * Reformat public keys
-     *
-     * Reformats a public key to a format supported by phpseclib (if applicable)
-     *
-     * @param string $algorithm
-     * @param string $key
-     * @access private
-     * @return string
-     */
-    function _reformatKey($algorithm, $key)
-    {
-        switch ($algorithm) {
-            case 'rsaEncryption':
-                return
-                    "-----BEGIN RSA PUBLIC KEY-----\r\n" .
-                    // subjectPublicKey is stored as a bit string in X.509 certs.  the first byte of a bit string represents how many bits
-                    // in the last byte should be ignored.  the following only supports non-zero stuff but as none of the X.509 certs Firefox
-                    // uses as a cert authority actually use a non-zero bit I think it's safe to assume that none do.
-                    chunk_split(base64_encode(substr(base64_decode($key), 1)), 64) .
-                    '-----END RSA PUBLIC KEY-----';
-            default:
-                return $key;
-        }
-    }
-
-    /**
-     * Decodes an IP address
-     *
-     * Takes in a base64 encoded "blob" and returns a human readable IP address
-     *
-     * @param string $ip
-     * @access private
-     * @return string
-     */
-    function _decodeIP($ip)
-    {
-        return inet_ntop(base64_decode($ip));
-    }
-
-    /**
-     * Encodes an IP address
-     *
-     * Takes a human readable IP address into a base64-encoded "blob"
-     *
-     * @param string $ip
-     * @access private
-     * @return string
-     */
-    function _encodeIP($ip)
-    {
-        return base64_encode(inet_pton($ip));
-    }
-
-    /**
-     * "Normalizes" a Distinguished Name property
-     *
-     * @param string $propName
-     * @access private
-     * @return mixed
-     */
-    function _translateDNProp($propName)
-    {
-        switch (strtolower($propName)) {
-            case 'id-at-countryname':
-            case 'countryname':
-            case 'c':
-                return 'id-at-countryName';
-            case 'id-at-organizationname':
-            case 'organizationname':
-            case 'o':
-                return 'id-at-organizationName';
-            case 'id-at-dnqualifier':
-            case 'dnqualifier':
-                return 'id-at-dnQualifier';
-            case 'id-at-commonname':
-            case 'commonname':
-            case 'cn':
-                return 'id-at-commonName';
-            case 'id-at-stateorprovincename':
-            case 'stateorprovincename':
-            case 'state':
-            case 'province':
-            case 'provincename':
-            case 'st':
-                return 'id-at-stateOrProvinceName';
-            case 'id-at-localityname':
-            case 'localityname':
-            case 'l':
-                return 'id-at-localityName';
-            case 'id-emailaddress':
-            case 'emailaddress':
-                return 'pkcs-9-at-emailAddress';
-            case 'id-at-serialnumber':
-            case 'serialnumber':
-                return 'id-at-serialNumber';
-            case 'id-at-postalcode':
-            case 'postalcode':
-                return 'id-at-postalCode';
-            case 'id-at-streetaddress':
-            case 'streetaddress':
-                return 'id-at-streetAddress';
-            case 'id-at-name':
-            case 'name':
-                return 'id-at-name';
-            case 'id-at-givenname':
-            case 'givenname':
-                return 'id-at-givenName';
-            case 'id-at-surname':
-            case 'surname':
-            case 'sn':
-                return 'id-at-surname';
-            case 'id-at-initials':
-            case 'initials':
-                return 'id-at-initials';
-            case 'id-at-generationqualifier':
-            case 'generationqualifier':
-                return 'id-at-generationQualifier';
-            case 'id-at-organizationalunitname':
-            case 'organizationalunitname':
-            case 'ou':
-                return 'id-at-organizationalUnitName';
-            case 'id-at-pseudonym':
-            case 'pseudonym':
-                return 'id-at-pseudonym';
-            case 'id-at-title':
-            case 'title':
-                return 'id-at-title';
-            case 'id-at-description':
-            case 'description':
-                return 'id-at-description';
-            case 'id-at-role':
-            case 'role':
-                return 'id-at-role';
-            case 'id-at-uniqueidentifier':
-            case 'uniqueidentifier':
-            case 'x500uniqueidentifier':
-                return 'id-at-uniqueIdentifier';
-            case 'postaladdress':
-            case 'id-at-postaladdress':
-                return 'id-at-postalAddress';
-            default:
-                return false;
-        }
-    }
-
-    /**
-     * Set a Distinguished Name property
-     *
-     * @param string $propName
-     * @param mixed $propValue
-     * @param string $type optional
-     * @access public
-     * @return bool
-     */
-    function setDNProp($propName, $propValue, $type = 'utf8String')
-    {
-        if (empty($this->dn)) {
-            $this->dn = array('rdnSequence' => array());
-        }
-
-        if (($propName = $this->_translateDNProp($propName)) === false) {
-            return false;
-        }
-
-        foreach ((array) $propValue as $v) {
-            if (!is_array($v) && isset($type)) {
-                $v = array($type => $v);
-            }
-            $this->dn['rdnSequence'][] = array(
-                array(
-                    'type' => $propName,
-                    'value'=> $v
-                )
-            );
-        }
-
-        return true;
-    }
-
-    /**
-     * Remove Distinguished Name properties
-     *
-     * @param string $propName
-     * @access public
-     */
-    function removeDNProp($propName)
-    {
-        if (empty($this->dn)) {
-            return;
-        }
-
-        if (($propName = $this->_translateDNProp($propName)) === false) {
-            return;
-        }
-
-        $dn = &$this->dn['rdnSequence'];
-        $size = count($dn);
-        for ($i = 0; $i < $size; $i++) {
-            if ($dn[$i][0]['type'] == $propName) {
-                unset($dn[$i]);
-            }
-        }
-
-        $dn = array_values($dn);
-        // fix for https://bugs.php.net/75433 affecting PHP 7.2
-        if (!isset($dn[0])) {
-            $dn = array_splice($dn, 0, 0);
-        }
-    }
-
-    /**
-     * Get Distinguished Name properties
-     *
-     * @param string $propName
-     * @param array $dn optional
-     * @param bool $withType optional
-     * @return mixed
-     * @access public
-     */
-    function getDNProp($propName, $dn = null, $withType = false)
-    {
-        if (!isset($dn)) {
-            $dn = $this->dn;
-        }
-
-        if (empty($dn)) {
-            return false;
-        }
-
-        if (($propName = $this->_translateDNProp($propName)) === false) {
-            return false;
-        }
-
-        $asn1 = new ASN1();
-        $asn1->loadOIDs($this->oids);
-        $filters = array();
-        $filters['value'] = array('type' => ASN1::TYPE_UTF8_STRING);
-        $asn1->loadFilters($filters);
-        $this->_mapOutDNs($dn, 'rdnSequence', $asn1);
-        $dn = $dn['rdnSequence'];
-        $result = array();
-        for ($i = 0; $i < count($dn); $i++) {
-            if ($dn[$i][0]['type'] == $propName) {
-                $v = $dn[$i][0]['value'];
-                if (!$withType) {
-                    if (is_array($v)) {
-                        foreach ($v as $type => $s) {
-                            $type = array_search($type, $asn1->ANYmap, true);
-                            if ($type !== false && isset($asn1->stringTypeSize[$type])) {
-                                $s = $asn1->convert($s, $type);
-                                if ($s !== false) {
-                                    $v = $s;
-                                    break;
-                                }
-                            }
-                        }
-                        if (is_array($v)) {
-                            $v = array_pop($v); // Always strip data type.
-                        }
-                    } elseif (is_object($v) && $v instanceof Element) {
-                        $map = $this->_getMapping($propName);
-                        if (!is_bool($map)) {
-                            $decoded = $asn1->decodeBER($v);
-                            $v = $asn1->asn1map($decoded[0], $map);
-                        }
-                    }
-                }
-                $result[] = $v;
-            }
-        }
-
-        return $result;
-    }
-
-    /**
-     * Set a Distinguished Name
-     *
-     * @param mixed $dn
-     * @param bool $merge optional
-     * @param string $type optional
-     * @access public
-     * @return bool
-     */
-    function setDN($dn, $merge = false, $type = 'utf8String')
-    {
-        if (!$merge) {
-            $this->dn = null;
-        }
-
-        if (is_array($dn)) {
-            if (isset($dn['rdnSequence'])) {
-                $this->dn = $dn; // No merge here.
-                return true;
-            }
-
-            // handles stuff generated by openssl_x509_parse()
-            foreach ($dn as $prop => $value) {
-                if (!$this->setDNProp($prop, $value, $type)) {
-                    return false;
-                }
-            }
-            return true;
-        }
-
-        // handles everything else
-        $results = preg_split('#((?:^|, *|/)(?:C=|O=|OU=|CN=|L=|ST=|SN=|postalCode=|streetAddress=|emailAddress=|serialNumber=|organizationalUnitName=|title=|description=|role=|x500UniqueIdentifier=|postalAddress=))#', $dn, -1, PREG_SPLIT_DELIM_CAPTURE);
-        for ($i = 1; $i < count($results); $i+=2) {
-            $prop = trim($results[$i], ', =/');
-            $value = $results[$i + 1];
-            if (!$this->setDNProp($prop, $value, $type)) {
-                return false;
-            }
-        }
-
-        return true;
-    }
-
-    /**
-     * Get the Distinguished Name for a certificates subject
-     *
-     * @param mixed $format optional
-     * @param array $dn optional
-     * @access public
-     * @return bool
-     */
-    function getDN($format = self::DN_ARRAY, $dn = null)
-    {
-        if (!isset($dn)) {
-            $dn = isset($this->currentCert['tbsCertList']) ? $this->currentCert['tbsCertList']['issuer'] : $this->dn;
-        }
-
-        switch ((int) $format) {
-            case self::DN_ARRAY:
-                return $dn;
-            case self::DN_ASN1:
-                $asn1 = new ASN1();
-                $asn1->loadOIDs($this->oids);
-                $filters = array();
-                $filters['rdnSequence']['value'] = array('type' => ASN1::TYPE_UTF8_STRING);
-                $asn1->loadFilters($filters);
-                $this->_mapOutDNs($dn, 'rdnSequence', $asn1);
-                return $asn1->encodeDER($dn, $this->Name);
-            case self::DN_CANON:
-                //  No SEQUENCE around RDNs and all string values normalized as
-                // trimmed lowercase UTF-8 with all spacing as one blank.
-                // constructed RDNs will not be canonicalized
-                $asn1 = new ASN1();
-                $asn1->loadOIDs($this->oids);
-                $filters = array();
-                $filters['value'] = array('type' => ASN1::TYPE_UTF8_STRING);
-                $asn1->loadFilters($filters);
-                $result = '';
-                $this->_mapOutDNs($dn, 'rdnSequence', $asn1);
-                foreach ($dn['rdnSequence'] as $rdn) {
-                    foreach ($rdn as $i => $attr) {
-                        $attr = &$rdn[$i];
-                        if (is_array($attr['value'])) {
-                            foreach ($attr['value'] as $type => $v) {
-                                $type = array_search($type, $asn1->ANYmap, true);
-                                if ($type !== false && isset($asn1->stringTypeSize[$type])) {
-                                    $v = $asn1->convert($v, $type);
-                                    if ($v !== false) {
-                                        $v = preg_replace('/\s+/', ' ', $v);
-                                        $attr['value'] = strtolower(trim($v));
-                                        break;
-                                    }
-                                }
-                            }
-                        }
-                    }
-                    $result .= $asn1->encodeDER($rdn, $this->RelativeDistinguishedName);
-                }
-                return $result;
-            case self::DN_HASH:
-                $dn = $this->getDN(self::DN_CANON, $dn);
-                $hash = new Hash('sha1');
-                $hash = $hash->hash($dn);
-                extract(unpack('Vhash', $hash));
-                return strtolower(bin2hex(pack('N', $hash)));
-        }
-
-        // Default is to return a string.
-        $start = true;
-        $output = '';
-
-        $result = array();
-        $asn1 = new ASN1();
-        $asn1->loadOIDs($this->oids);
-        $filters = array();
-        $filters['rdnSequence']['value'] = array('type' => ASN1::TYPE_UTF8_STRING);
-        $asn1->loadFilters($filters);
-        $this->_mapOutDNs($dn, 'rdnSequence', $asn1);
-
-        foreach ($dn['rdnSequence'] as $field) {
-            $prop = $field[0]['type'];
-            $value = $field[0]['value'];
-
-            $delim = ', ';
-            switch ($prop) {
-                case 'id-at-countryName':
-                    $desc = 'C';
-                    break;
-                case 'id-at-stateOrProvinceName':
-                    $desc = 'ST';
-                    break;
-                case 'id-at-organizationName':
-                    $desc = 'O';
-                    break;
-                case 'id-at-organizationalUnitName':
-                    $desc = 'OU';
-                    break;
-                case 'id-at-commonName':
-                    $desc = 'CN';
-                    break;
-                case 'id-at-localityName':
-                    $desc = 'L';
-                    break;
-                case 'id-at-surname':
-                    $desc = 'SN';
-                    break;
-                case 'id-at-uniqueIdentifier':
-                    $delim = '/';
-                    $desc = 'x500UniqueIdentifier';
-                    break;
-                case 'id-at-postalAddress':
-                    $delim = '/';
-                    $desc = 'postalAddress';
-                    break;
-                default:
-                    $delim = '/';
-                    $desc = preg_replace('#.+-([^-]+)$#', '$1', $prop);
-            }
-
-            if (!$start) {
-                $output.= $delim;
-            }
-            if (is_array($value)) {
-                foreach ($value as $type => $v) {
-                    $type = array_search($type, $asn1->ANYmap, true);
-                    if ($type !== false && isset($asn1->stringTypeSize[$type])) {
-                        $v = $asn1->convert($v, $type);
-                        if ($v !== false) {
-                            $value = $v;
-                            break;
-                        }
-                    }
-                }
-                if (is_array($value)) {
-                    $value = array_pop($value); // Always strip data type.
-                }
-            } elseif (is_object($value) && $value instanceof Element) {
-                $callback = function ($x) {
-                    return "\x" . bin2hex($x[0]);
-                };
-                $value = strtoupper(preg_replace_callback('#[^\x20-\x7E]#', $callback, $value->element));
-            }
-            $output.= $desc . '=' . $value;
-            $result[$desc] = isset($result[$desc]) ?
-                array_merge((array) $dn[$prop], array($value)) :
-                $value;
-            $start = false;
-        }
-
-        return $format == self::DN_OPENSSL ? $result : $output;
-    }
-
-    /**
-     * Get the Distinguished Name for a certificate/crl issuer
-     *
-     * @param int $format optional
-     * @access public
-     * @return mixed
-     */
-    function getIssuerDN($format = self::DN_ARRAY)
-    {
-        switch (true) {
-            case !isset($this->currentCert) || !is_array($this->currentCert):
-                break;
-            case isset($this->currentCert['tbsCertificate']):
-                return $this->getDN($format, $this->currentCert['tbsCertificate']['issuer']);
-            case isset($this->currentCert['tbsCertList']):
-                return $this->getDN($format, $this->currentCert['tbsCertList']['issuer']);
-        }
-
-        return false;
-    }
-
-    /**
-     * Get the Distinguished Name for a certificate/csr subject
-     * Alias of getDN()
-     *
-     * @param int $format optional
-     * @access public
-     * @return mixed
-     */
-    function getSubjectDN($format = self::DN_ARRAY)
-    {
-        switch (true) {
-            case !empty($this->dn):
-                return $this->getDN($format);
-            case !isset($this->currentCert) || !is_array($this->currentCert):
-                break;
-            case isset($this->currentCert['tbsCertificate']):
-                return $this->getDN($format, $this->currentCert['tbsCertificate']['subject']);
-            case isset($this->currentCert['certificationRequestInfo']):
-                return $this->getDN($format, $this->currentCert['certificationRequestInfo']['subject']);
-        }
-
-        return false;
-    }
-
-    /**
-     * Get an individual Distinguished Name property for a certificate/crl issuer
-     *
-     * @param string $propName
-     * @param bool $withType optional
-     * @access public
-     * @return mixed
-     */
-    function getIssuerDNProp($propName, $withType = false)
-    {
-        switch (true) {
-            case !isset($this->currentCert) || !is_array($this->currentCert):
-                break;
-            case isset($this->currentCert['tbsCertificate']):
-                return $this->getDNProp($propName, $this->currentCert['tbsCertificate']['issuer'], $withType);
-            case isset($this->currentCert['tbsCertList']):
-                return $this->getDNProp($propName, $this->currentCert['tbsCertList']['issuer'], $withType);
-        }
-
-        return false;
-    }
-
-    /**
-     * Get an individual Distinguished Name property for a certificate/csr subject
-     *
-     * @param string $propName
-     * @param bool $withType optional
-     * @access public
-     * @return mixed
-     */
-    function getSubjectDNProp($propName, $withType = false)
-    {
-        switch (true) {
-            case !empty($this->dn):
-                return $this->getDNProp($propName, null, $withType);
-            case !isset($this->currentCert) || !is_array($this->currentCert):
-                break;
-            case isset($this->currentCert['tbsCertificate']):
-                return $this->getDNProp($propName, $this->currentCert['tbsCertificate']['subject'], $withType);
-            case isset($this->currentCert['certificationRequestInfo']):
-                return $this->getDNProp($propName, $this->currentCert['certificationRequestInfo']['subject'], $withType);
-        }
-
-        return false;
-    }
-
-    /**
-     * Get the certificate chain for the current cert
-     *
-     * @access public
-     * @return mixed
-     */
-    function getChain()
-    {
-        $chain = array($this->currentCert);
-
-        if (!is_array($this->currentCert) || !isset($this->currentCert['tbsCertificate'])) {
-            return false;
-        }
-        if (empty($this->CAs)) {
-            return $chain;
-        }
-        while (true) {
-            $currentCert = $chain[count($chain) - 1];
-            for ($i = 0; $i < count($this->CAs); $i++) {
-                $ca = $this->CAs[$i];
-                if ($currentCert['tbsCertificate']['issuer'] === $ca['tbsCertificate']['subject']) {
-                    $authorityKey = $this->getExtension('id-ce-authorityKeyIdentifier', $currentCert);
-                    $subjectKeyID = $this->getExtension('id-ce-subjectKeyIdentifier', $ca);
-                    switch (true) {
-                        case !is_array($authorityKey):
-                        case is_array($authorityKey) && isset($authorityKey['keyIdentifier']) && $authorityKey['keyIdentifier'] === $subjectKeyID:
-                            if ($currentCert === $ca) {
-                                break 3;
-                            }
-                            $chain[] = $ca;
-                            break 2;
-                    }
-                }
-            }
-            if ($i == count($this->CAs)) {
-                break;
-            }
-        }
-        foreach ($chain as $key => $value) {
-            $chain[$key] = new X509();
-            $chain[$key]->loadX509($value);
-        }
-        return $chain;
-    }
-
-    /**
-     * Set public key
-     *
-     * Key needs to be a \phpseclib\Crypt\RSA object
-     *
-     * @param object $key
-     * @access public
-     * @return bool
-     */
-    function setPublicKey($key)
-    {
-        $key->setPublicKey();
-        $this->publicKey = $key;
-    }
-
-    /**
-     * Set private key
-     *
-     * Key needs to be a \phpseclib\Crypt\RSA object
-     *
-     * @param object $key
-     * @access public
-     */
-    function setPrivateKey($key)
-    {
-        $this->privateKey = $key;
-    }
-
-    /**
-     * Set challenge
-     *
-     * Used for SPKAC CSR's
-     *
-     * @param string $challenge
-     * @access public
-     */
-    function setChallenge($challenge)
-    {
-        $this->challenge = $challenge;
-    }
-
-    /**
-     * Gets the public key
-     *
-     * Returns a \phpseclib\Crypt\RSA object or a false.
-     *
-     * @access public
-     * @return mixed
-     */
-    function getPublicKey()
-    {
-        if (isset($this->publicKey)) {
-            return $this->publicKey;
-        }
-
-        if (isset($this->currentCert) && is_array($this->currentCert)) {
-            foreach (array('tbsCertificate/subjectPublicKeyInfo', 'certificationRequestInfo/subjectPKInfo') as $path) {
-                $keyinfo = $this->_subArray($this->currentCert, $path);
-                if (!empty($keyinfo)) {
-                    break;
-                }
-            }
-        }
-        if (empty($keyinfo)) {
-            return false;
-        }
-
-        $key = $keyinfo['subjectPublicKey'];
-
-        switch ($keyinfo['algorithm']['algorithm']) {
-            case 'rsaEncryption':
-                $publicKey = new RSA();
-                $publicKey->loadKey($key);
-                $publicKey->setPublicKey();
-                break;
-            default:
-                return false;
-        }
-
-        return $publicKey;
-    }
-
-    /**
-     * Load a Certificate Signing Request
-     *
-     * @param string $csr
-     * @access public
-     * @return mixed
-     */
-    function loadCSR($csr, $mode = self::FORMAT_AUTO_DETECT)
-    {
-        if (is_array($csr) && isset($csr['certificationRequestInfo'])) {
-            unset($this->currentCert);
-            unset($this->currentKeyIdentifier);
-            unset($this->signatureSubject);
-            $this->dn = $csr['certificationRequestInfo']['subject'];
-            if (!isset($this->dn)) {
-                return false;
-            }
-
-            $this->currentCert = $csr;
-            return $csr;
-        }
-
-        // see http://tools.ietf.org/html/rfc2986
-
-        $asn1 = new ASN1();
-
-        if ($mode != self::FORMAT_DER) {
-            $newcsr = $this->_extractBER($csr);
-            if ($mode == self::FORMAT_PEM && $csr == $newcsr) {
-                return false;
-            }
-            $csr = $newcsr;
-        }
-        $orig = $csr;
-
-        if ($csr === false) {
-            $this->currentCert = false;
-            return false;
-        }
-
-        $asn1->loadOIDs($this->oids);
-        $decoded = $asn1->decodeBER($csr);
-
-        if (empty($decoded)) {
-            $this->currentCert = false;
-            return false;
-        }
-
-        $csr = $asn1->asn1map($decoded[0], $this->CertificationRequest);
-        if (!isset($csr) || $csr === false) {
-            $this->currentCert = false;
-            return false;
-        }
-
-        $this->_mapInAttributes($csr, 'certificationRequestInfo/attributes', $asn1);
-        $this->_mapInDNs($csr, 'certificationRequestInfo/subject/rdnSequence', $asn1);
-
-        $this->dn = $csr['certificationRequestInfo']['subject'];
-
-        $this->signatureSubject = substr($orig, $decoded[0]['content'][0]['start'], $decoded[0]['content'][0]['length']);
-
-        $algorithm = &$csr['certificationRequestInfo']['subjectPKInfo']['algorithm']['algorithm'];
-        $key = &$csr['certificationRequestInfo']['subjectPKInfo']['subjectPublicKey'];
-        $key = $this->_reformatKey($algorithm, $key);
-
-        switch ($algorithm) {
-            case 'rsaEncryption':
-                $this->publicKey = new RSA();
-                $this->publicKey->loadKey($key);
-                $this->publicKey->setPublicKey();
-                break;
-            default:
-                $this->publicKey = null;
-        }
-
-        $this->currentKeyIdentifier = null;
-        $this->currentCert = $csr;
-
-        return $csr;
-    }
-
-    /**
-     * Save CSR request
-     *
-     * @param array $csr
-     * @param int $format optional
-     * @access public
-     * @return string
-     */
-    function saveCSR($csr, $format = self::FORMAT_PEM)
-    {
-        if (!is_array($csr) || !isset($csr['certificationRequestInfo'])) {
-            return false;
-        }
-
-        switch (true) {
-            case !($algorithm = $this->_subArray($csr, 'certificationRequestInfo/subjectPKInfo/algorithm/algorithm')):
-            case is_object($csr['certificationRequestInfo']['subjectPKInfo']['subjectPublicKey']):
-                break;
-            default:
-                switch ($algorithm) {
-                    case 'rsaEncryption':
-                        $csr['certificationRequestInfo']['subjectPKInfo']['subjectPublicKey']
-                            = base64_encode("\0" . base64_decode(preg_replace('#-.+-|[\r\n]#', '', $csr['certificationRequestInfo']['subjectPKInfo']['subjectPublicKey'])));
-                        $csr['certificationRequestInfo']['subjectPKInfo']['algorithm']['parameters'] = null;
-                        $csr['signatureAlgorithm']['parameters'] = null;
-                        $csr['certificationRequestInfo']['signature']['parameters'] = null;
-                }
-        }
-
-        $asn1 = new ASN1();
-
-        $asn1->loadOIDs($this->oids);
-
-        $filters = array();
-        $filters['certificationRequestInfo']['subject']['rdnSequence']['value']
-            = array('type' => ASN1::TYPE_UTF8_STRING);
-
-        $asn1->loadFilters($filters);
-
-        $this->_mapOutDNs($csr, 'certificationRequestInfo/subject/rdnSequence', $asn1);
-        $this->_mapOutAttributes($csr, 'certificationRequestInfo/attributes', $asn1);
-        $csr = $asn1->encodeDER($csr, $this->CertificationRequest);
-
-        switch ($format) {
-            case self::FORMAT_DER:
-                return $csr;
-            // case self::FORMAT_PEM:
-            default:
-                return "-----BEGIN CERTIFICATE REQUEST-----\r\n" . chunk_split(base64_encode($csr), 64) . '-----END CERTIFICATE REQUEST-----';
-        }
-    }
-
-    /**
-     * Load a SPKAC CSR
-     *
-     * SPKAC's are produced by the HTML5 keygen element:
-     *
-     * https://developer.mozilla.org/en-US/docs/HTML/Element/keygen
-     *
-     * @param string $csr
-     * @access public
-     * @return mixed
-     */
-    function loadSPKAC($spkac)
-    {
-        if (is_array($spkac) && isset($spkac['publicKeyAndChallenge'])) {
-            unset($this->currentCert);
-            unset($this->currentKeyIdentifier);
-            unset($this->signatureSubject);
-            $this->currentCert = $spkac;
-            return $spkac;
-        }
-
-        // see http://www.w3.org/html/wg/drafts/html/master/forms.html#signedpublickeyandchallenge
-
-        $asn1 = new ASN1();
-
-        // OpenSSL produces SPKAC's that are preceded by the string SPKAC=
-        $temp = preg_replace('#(?:SPKAC=)|[ \r\n\\\]#', '', $spkac);
-        $temp = preg_match('#^[a-zA-Z\d/+]*={0,2}$#', $temp) ? base64_decode($temp) : false;
-        if ($temp != false) {
-            $spkac = $temp;
-        }
-        $orig = $spkac;
-
-        if ($spkac === false) {
-            $this->currentCert = false;
-            return false;
-        }
-
-        $asn1->loadOIDs($this->oids);
-        $decoded = $asn1->decodeBER($spkac);
-
-        if (empty($decoded)) {
-            $this->currentCert = false;
-            return false;
-        }
-
-        $spkac = $asn1->asn1map($decoded[0], $this->SignedPublicKeyAndChallenge);
-
-        if (!isset($spkac) || $spkac === false) {
-            $this->currentCert = false;
-            return false;
-        }
-
-        $this->signatureSubject = substr($orig, $decoded[0]['content'][0]['start'], $decoded[0]['content'][0]['length']);
-
-        $algorithm = &$spkac['publicKeyAndChallenge']['spki']['algorithm']['algorithm'];
-        $key = &$spkac['publicKeyAndChallenge']['spki']['subjectPublicKey'];
-        $key = $this->_reformatKey($algorithm, $key);
-
-        switch ($algorithm) {
-            case 'rsaEncryption':
-                $this->publicKey = new RSA();
-                $this->publicKey->loadKey($key);
-                $this->publicKey->setPublicKey();
-                break;
-            default:
-                $this->publicKey = null;
-        }
-
-        $this->currentKeyIdentifier = null;
-        $this->currentCert = $spkac;
-
-        return $spkac;
-    }
-
-    /**
-     * Save a SPKAC CSR request
-     *
-     * @param array $csr
-     * @param int $format optional
-     * @access public
-     * @return string
-     */
-    function saveSPKAC($spkac, $format = self::FORMAT_PEM)
-    {
-        if (!is_array($spkac) || !isset($spkac['publicKeyAndChallenge'])) {
-            return false;
-        }
-
-        $algorithm = $this->_subArray($spkac, 'publicKeyAndChallenge/spki/algorithm/algorithm');
-        switch (true) {
-            case !$algorithm:
-            case is_object($spkac['publicKeyAndChallenge']['spki']['subjectPublicKey']):
-                break;
-            default:
-                switch ($algorithm) {
-                    case 'rsaEncryption':
-                        $spkac['publicKeyAndChallenge']['spki']['subjectPublicKey']
-                            = base64_encode("\0" . base64_decode(preg_replace('#-.+-|[\r\n]#', '', $spkac['publicKeyAndChallenge']['spki']['subjectPublicKey'])));
-                }
-        }
-
-        $asn1 = new ASN1();
-
-        $asn1->loadOIDs($this->oids);
-        $spkac = $asn1->encodeDER($spkac, $this->SignedPublicKeyAndChallenge);
-
-        switch ($format) {
-            case self::FORMAT_DER:
-                return $spkac;
-            // case self::FORMAT_PEM:
-            default:
-                // OpenSSL's implementation of SPKAC requires the SPKAC be preceded by SPKAC= and since there are pretty much
-                // no other SPKAC decoders phpseclib will use that same format
-                return 'SPKAC=' . base64_encode($spkac);
-        }
-    }
-
-    /**
-     * Load a Certificate Revocation List
-     *
-     * @param string $crl
-     * @access public
-     * @return mixed
-     */
-    function loadCRL($crl, $mode = self::FORMAT_AUTO_DETECT)
-    {
-        if (is_array($crl) && isset($crl['tbsCertList'])) {
-            $this->currentCert = $crl;
-            unset($this->signatureSubject);
-            return $crl;
-        }
-
-        $asn1 = new ASN1();
-
-        if ($mode != self::FORMAT_DER) {
-            $newcrl = $this->_extractBER($crl);
-            if ($mode == self::FORMAT_PEM && $crl == $newcrl) {
-                return false;
-            }
-            $crl = $newcrl;
-        }
-        $orig = $crl;
-
-        if ($crl === false) {
-            $this->currentCert = false;
-            return false;
-        }
-
-        $asn1->loadOIDs($this->oids);
-        $decoded = $asn1->decodeBER($crl);
-
-        if (empty($decoded)) {
-            $this->currentCert = false;
-            return false;
-        }
-
-        $crl = $asn1->asn1map($decoded[0], $this->CertificateList);
-        if (!isset($crl) || $crl === false) {
-            $this->currentCert = false;
-            return false;
-        }
-
-        $this->signatureSubject = substr($orig, $decoded[0]['content'][0]['start'], $decoded[0]['content'][0]['length']);
-
-        $this->_mapInDNs($crl, 'tbsCertList/issuer/rdnSequence', $asn1);
-        if ($this->_isSubArrayValid($crl, 'tbsCertList/crlExtensions')) {
-            $this->_mapInExtensions($crl, 'tbsCertList/crlExtensions', $asn1);
-        }
-        if ($this->_isSubArrayValid($crl, 'tbsCertList/revokedCertificates')) {
-            $rclist_ref = &$this->_subArrayUnchecked($crl, 'tbsCertList/revokedCertificates');
-            if ($rclist_ref) {
-                $rclist = $crl['tbsCertList']['revokedCertificates'];
-                foreach ($rclist as $i => $extension) {
-                    if ($this->_isSubArrayValid($rclist, "$i/crlEntryExtensions", $asn1)) {
-                        $this->_mapInExtensions($rclist_ref, "$i/crlEntryExtensions", $asn1);
-                    }
-                }
-            }
-        }
-
-        $this->currentKeyIdentifier = null;
-        $this->currentCert = $crl;
-
-        return $crl;
-    }
-
-    /**
-     * Save Certificate Revocation List.
-     *
-     * @param array $crl
-     * @param int $format optional
-     * @access public
-     * @return string
-     */
-    function saveCRL($crl, $format = self::FORMAT_PEM)
-    {
-        if (!is_array($crl) || !isset($crl['tbsCertList'])) {
-            return false;
-        }
-
-        $asn1 = new ASN1();
-
-        $asn1->loadOIDs($this->oids);
-
-        $filters = array();
-        $filters['tbsCertList']['issuer']['rdnSequence']['value']
-            = array('type' => ASN1::TYPE_UTF8_STRING);
-        $filters['tbsCertList']['signature']['parameters']
-            = array('type' => ASN1::TYPE_UTF8_STRING);
-        $filters['signatureAlgorithm']['parameters']
-            = array('type' => ASN1::TYPE_UTF8_STRING);
-
-        if (empty($crl['tbsCertList']['signature']['parameters'])) {
-            $filters['tbsCertList']['signature']['parameters']
-                = array('type' => ASN1::TYPE_NULL);
-        }
-
-        if (empty($crl['signatureAlgorithm']['parameters'])) {
-            $filters['signatureAlgorithm']['parameters']
-                = array('type' => ASN1::TYPE_NULL);
-        }
-
-        $asn1->loadFilters($filters);
-
-        $this->_mapOutDNs($crl, 'tbsCertList/issuer/rdnSequence', $asn1);
-        $this->_mapOutExtensions($crl, 'tbsCertList/crlExtensions', $asn1);
-        $rclist = &$this->_subArray($crl, 'tbsCertList/revokedCertificates');
-        if (is_array($rclist)) {
-            foreach ($rclist as $i => $extension) {
-                $this->_mapOutExtensions($rclist, "$i/crlEntryExtensions", $asn1);
-            }
-        }
-
-        $crl = $asn1->encodeDER($crl, $this->CertificateList);
-
-        switch ($format) {
-            case self::FORMAT_DER:
-                return $crl;
-            // case self::FORMAT_PEM:
-            default:
-                return "-----BEGIN X509 CRL-----\r\n" . chunk_split(base64_encode($crl), 64) . '-----END X509 CRL-----';
-        }
-    }
-
-    /**
-     * Helper function to build a time field according to RFC 3280 section
-     *  - 4.1.2.5 Validity
-     *  - 5.1.2.4 This Update
-     *  - 5.1.2.5 Next Update
-     *  - 5.1.2.6 Revoked Certificates
-     * by choosing utcTime iff year of date given is before 2050 and generalTime else.
-     *
-     * @param string $date in format date('D, d M Y H:i:s O')
-     * @access private
-     * @return array
-     */
-    function _timeField($date)
-    {
-        if ($date instanceof Element) {
-            return $date;
-        }
-        $dateObj = new DateTime($date, new DateTimeZone('GMT'));
-        $year = $dateObj->format('Y'); // the same way ASN1.php parses this
-        if ($year < 2050) {
-            return array('utcTime' => $date);
-        } else {
-            return array('generalTime' => $date);
-        }
-    }
-
-    /**
-     * Sign an X.509 certificate
-     *
-     * $issuer's private key needs to be loaded.
-     * $subject can be either an existing X.509 cert (if you want to resign it),
-     * a CSR or something with the DN and public key explicitly set.
-     *
-     * @param \phpseclib\File\X509 $issuer
-     * @param \phpseclib\File\X509 $subject
-     * @param string $signatureAlgorithm optional
-     * @access public
-     * @return mixed
-     */
-    function sign($issuer, $subject, $signatureAlgorithm = 'sha1WithRSAEncryption')
-    {
-        if (!is_object($issuer->privateKey) || empty($issuer->dn)) {
-            return false;
-        }
-
-        if (isset($subject->publicKey) && !($subjectPublicKey = $subject->_formatSubjectPublicKey())) {
-            return false;
-        }
-
-        $currentCert = isset($this->currentCert) ? $this->currentCert : null;
-        $signatureSubject = isset($this->signatureSubject) ? $this->signatureSubject: null;
-
-        if (isset($subject->currentCert) && is_array($subject->currentCert) && isset($subject->currentCert['tbsCertificate'])) {
-            $this->currentCert = $subject->currentCert;
-            $this->currentCert['tbsCertificate']['signature']['algorithm'] = $signatureAlgorithm;
-            $this->currentCert['signatureAlgorithm']['algorithm'] = $signatureAlgorithm;
-
-            if (!empty($this->startDate)) {
-                $this->currentCert['tbsCertificate']['validity']['notBefore'] = $this->_timeField($this->startDate);
-            }
-            if (!empty($this->endDate)) {
-                $this->currentCert['tbsCertificate']['validity']['notAfter'] = $this->_timeField($this->endDate);
-            }
-            if (!empty($this->serialNumber)) {
-                $this->currentCert['tbsCertificate']['serialNumber'] = $this->serialNumber;
-            }
-            if (!empty($subject->dn)) {
-                $this->currentCert['tbsCertificate']['subject'] = $subject->dn;
-            }
-            if (!empty($subject->publicKey)) {
-                $this->currentCert['tbsCertificate']['subjectPublicKeyInfo'] = $subjectPublicKey;
-            }
-            $this->removeExtension('id-ce-authorityKeyIdentifier');
-            if (isset($subject->domains)) {
-                $this->removeExtension('id-ce-subjectAltName');
-            }
-        } elseif (isset($subject->currentCert) && is_array($subject->currentCert) && isset($subject->currentCert['tbsCertList'])) {
-            return false;
-        } else {
-            if (!isset($subject->publicKey)) {
-                return false;
-            }
-
-            $startDate = new DateTime('now', new DateTimeZone(@date_default_timezone_get()));
-            $startDate = !empty($this->startDate) ? $this->startDate : $startDate->format('D, d M Y H:i:s O');
-
-            $endDate = new DateTime('+1 year', new DateTimeZone(@date_default_timezone_get()));
-            $endDate = !empty($this->endDate) ? $this->endDate : $endDate->format('D, d M Y H:i:s O');
-
-            /* "The serial number MUST be a positive integer"
-               "Conforming CAs MUST NOT use serialNumber values longer than 20 octets."
-                -- https://tools.ietf.org/html/rfc5280#section-4.1.2.2
-
-               for the integer to be positive the leading bit needs to be 0 hence the
-               application of a bitmap
-            */
-            $serialNumber = !empty($this->serialNumber) ?
-                $this->serialNumber :
-                new BigInteger(Random::string(20) & ("\x7F" . str_repeat("\xFF", 19)), 256);
-
-            $this->currentCert = array(
-                'tbsCertificate' =>
-                    array(
-                        'version' => 'v3',
-                        'serialNumber' => $serialNumber, // $this->setSerialNumber()
-                        'signature' => array('algorithm' => $signatureAlgorithm),
-                        'issuer' => false, // this is going to be overwritten later
-                        'validity' => array(
-                            'notBefore' => $this->_timeField($startDate), // $this->setStartDate()
-                            'notAfter' => $this->_timeField($endDate)   // $this->setEndDate()
-                        ),
-                        'subject' => $subject->dn,
-                        'subjectPublicKeyInfo' => $subjectPublicKey
-                    ),
-                    'signatureAlgorithm' => array('algorithm' => $signatureAlgorithm),
-                    'signature'          => false // this is going to be overwritten later
-            );
-
-            // Copy extensions from CSR.
-            $csrexts = $subject->getAttribute('pkcs-9-at-extensionRequest', 0);
-
-            if (!empty($csrexts)) {
-                $this->currentCert['tbsCertificate']['extensions'] = $csrexts;
-            }
-        }
-
-        $this->currentCert['tbsCertificate']['issuer'] = $issuer->dn;
-
-        if (isset($issuer->currentKeyIdentifier)) {
-            $this->setExtension('id-ce-authorityKeyIdentifier', array(
-                    //'authorityCertIssuer' => array(
-                    //    array(
-                    //        'directoryName' => $issuer->dn
-                    //    )
-                    //),
-                    'keyIdentifier' => $issuer->currentKeyIdentifier
-                ));
-            //$extensions = &$this->currentCert['tbsCertificate']['extensions'];
-            //if (isset($issuer->serialNumber)) {
-            //    $extensions[count($extensions) - 1]['authorityCertSerialNumber'] = $issuer->serialNumber;
-            //}
-            //unset($extensions);
-        }
-
-        if (isset($subject->currentKeyIdentifier)) {
-            $this->setExtension('id-ce-subjectKeyIdentifier', $subject->currentKeyIdentifier);
-        }
-
-        $altName = array();
-
-        if (isset($subject->domains) && count($subject->domains)) {
-            $altName = array_map(array('\phpseclib\File\X509', '_dnsName'), $subject->domains);
-        }
-
-        if (isset($subject->ipAddresses) && count($subject->ipAddresses)) {
-            // should an IP address appear as the CN if no domain name is specified? idk
-            //$ips = count($subject->domains) ? $subject->ipAddresses : array_slice($subject->ipAddresses, 1);
-            $ipAddresses = array();
-            foreach ($subject->ipAddresses as $ipAddress) {
-                $encoded = $subject->_ipAddress($ipAddress);
-                if ($encoded !== false) {
-                    $ipAddresses[] = $encoded;
-                }
-            }
-            if (count($ipAddresses)) {
-                $altName = array_merge($altName, $ipAddresses);
-            }
-        }
-
-        if (!empty($altName)) {
-            $this->setExtension('id-ce-subjectAltName', $altName);
-        }
-
-        if ($this->caFlag) {
-            $keyUsage = $this->getExtension('id-ce-keyUsage');
-            if (!$keyUsage) {
-                $keyUsage = array();
-            }
-
-            $this->setExtension(
-                'id-ce-keyUsage',
-                array_values(array_unique(array_merge($keyUsage, array('cRLSign', 'keyCertSign'))))
-            );
-
-            $basicConstraints = $this->getExtension('id-ce-basicConstraints');
-            if (!$basicConstraints) {
-                $basicConstraints = array();
-            }
-
-            $this->setExtension(
-                'id-ce-basicConstraints',
-                array_unique(array_merge(array('cA' => true), $basicConstraints)),
-                true
-            );
-
-            if (!isset($subject->currentKeyIdentifier)) {
-                $this->setExtension('id-ce-subjectKeyIdentifier', base64_encode($this->computeKeyIdentifier($this->currentCert)), false, false);
-            }
-        }
-
-        // resync $this->signatureSubject
-        // save $tbsCertificate in case there are any \phpseclib\File\ASN1\Element objects in it
-        $tbsCertificate = $this->currentCert['tbsCertificate'];
-        $this->loadX509($this->saveX509($this->currentCert));
-
-        $result = $this->_sign($issuer->privateKey, $signatureAlgorithm);
-        $result['tbsCertificate'] = $tbsCertificate;
-
-        $this->currentCert = $currentCert;
-        $this->signatureSubject = $signatureSubject;
-
-        return $result;
-    }
-
-    /**
-     * Sign a CSR
-     *
-     * @access public
-     * @return mixed
-     */
-    function signCSR($signatureAlgorithm = 'sha1WithRSAEncryption')
-    {
-        if (!is_object($this->privateKey) || empty($this->dn)) {
-            return false;
-        }
-
-        $origPublicKey = $this->publicKey;
-        $class = get_class($this->privateKey);
-        $this->publicKey = new $class();
-        $this->publicKey->loadKey($this->privateKey->getPublicKey());
-        $this->publicKey->setPublicKey();
-        if (!($publicKey = $this->_formatSubjectPublicKey())) {
-            return false;
-        }
-        $this->publicKey = $origPublicKey;
-
-        $currentCert = isset($this->currentCert) ? $this->currentCert : null;
-        $signatureSubject = isset($this->signatureSubject) ? $this->signatureSubject: null;
-
-        if (isset($this->currentCert) && is_array($this->currentCert) && isset($this->currentCert['certificationRequestInfo'])) {
-            $this->currentCert['signatureAlgorithm']['algorithm'] = $signatureAlgorithm;
-            if (!empty($this->dn)) {
-                $this->currentCert['certificationRequestInfo']['subject'] = $this->dn;
-            }
-            $this->currentCert['certificationRequestInfo']['subjectPKInfo'] = $publicKey;
-        } else {
-            $this->currentCert = array(
-                'certificationRequestInfo' =>
-                    array(
-                        'version' => 'v1',
-                        'subject' => $this->dn,
-                        'subjectPKInfo' => $publicKey
-                    ),
-                    'signatureAlgorithm' => array('algorithm' => $signatureAlgorithm),
-                    'signature'          => false // this is going to be overwritten later
-            );
-        }
-
-        // resync $this->signatureSubject
-        // save $certificationRequestInfo in case there are any \phpseclib\File\ASN1\Element objects in it
-        $certificationRequestInfo = $this->currentCert['certificationRequestInfo'];
-        $this->loadCSR($this->saveCSR($this->currentCert));
-
-        $result = $this->_sign($this->privateKey, $signatureAlgorithm);
-        $result['certificationRequestInfo'] = $certificationRequestInfo;
-
-        $this->currentCert = $currentCert;
-        $this->signatureSubject = $signatureSubject;
-
-        return $result;
-    }
-
-    /**
-     * Sign a SPKAC
-     *
-     * @access public
-     * @return mixed
-     */
-    function signSPKAC($signatureAlgorithm = 'sha1WithRSAEncryption')
-    {
-        if (!is_object($this->privateKey)) {
-            return false;
-        }
-
-        $origPublicKey = $this->publicKey;
-        $class = get_class($this->privateKey);
-        $this->publicKey = new $class();
-        $this->publicKey->loadKey($this->privateKey->getPublicKey());
-        $this->publicKey->setPublicKey();
-        $publicKey = $this->_formatSubjectPublicKey();
-        if (!$publicKey) {
-            return false;
-        }
-        $this->publicKey = $origPublicKey;
-
-        $currentCert = isset($this->currentCert) ? $this->currentCert : null;
-        $signatureSubject = isset($this->signatureSubject) ? $this->signatureSubject: null;
-
-        // re-signing a SPKAC seems silly but since everything else supports re-signing why not?
-        if (isset($this->currentCert) && is_array($this->currentCert) && isset($this->currentCert['publicKeyAndChallenge'])) {
-            $this->currentCert['signatureAlgorithm']['algorithm'] = $signatureAlgorithm;
-            $this->currentCert['publicKeyAndChallenge']['spki'] = $publicKey;
-            if (!empty($this->challenge)) {
-                // the bitwise AND ensures that the output is a valid IA5String
-                $this->currentCert['publicKeyAndChallenge']['challenge'] = $this->challenge & str_repeat("\x7F", strlen($this->challenge));
-            }
-        } else {
-            $this->currentCert = array(
-                'publicKeyAndChallenge' =>
-                    array(
-                        'spki' => $publicKey,
-                        // quoting <https://developer.mozilla.org/en-US/docs/Web/HTML/Element/keygen>,
-                        // "A challenge string that is submitted along with the public key. Defaults to an empty string if not specified."
-                        // both Firefox and OpenSSL ("openssl spkac -key private.key") behave this way
-                        // we could alternatively do this instead if we ignored the specs:
-                        // Random::string(8) & str_repeat("\x7F", 8)
-                        'challenge' => !empty($this->challenge) ? $this->challenge : ''
-                    ),
-                    'signatureAlgorithm' => array('algorithm' => $signatureAlgorithm),
-                    'signature'          => false // this is going to be overwritten later
-            );
-        }
-
-        // resync $this->signatureSubject
-        // save $publicKeyAndChallenge in case there are any \phpseclib\File\ASN1\Element objects in it
-        $publicKeyAndChallenge = $this->currentCert['publicKeyAndChallenge'];
-        $this->loadSPKAC($this->saveSPKAC($this->currentCert));
-
-        $result = $this->_sign($this->privateKey, $signatureAlgorithm);
-        $result['publicKeyAndChallenge'] = $publicKeyAndChallenge;
-
-        $this->currentCert = $currentCert;
-        $this->signatureSubject = $signatureSubject;
-
-        return $result;
-    }
-
-    /**
-     * Sign a CRL
-     *
-     * $issuer's private key needs to be loaded.
-     *
-     * @param \phpseclib\File\X509 $issuer
-     * @param \phpseclib\File\X509 $crl
-     * @param string $signatureAlgorithm optional
-     * @access public
-     * @return mixed
-     */
-    function signCRL($issuer, $crl, $signatureAlgorithm = 'sha1WithRSAEncryption')
-    {
-        if (!is_object($issuer->privateKey) || empty($issuer->dn)) {
-            return false;
-        }
-
-        $currentCert = isset($this->currentCert) ? $this->currentCert : null;
-        $signatureSubject = isset($this->signatureSubject) ? $this->signatureSubject : null;
-
-        $thisUpdate = new DateTime('now', new DateTimeZone(@date_default_timezone_get()));
-        $thisUpdate = !empty($this->startDate) ? $this->startDate : $thisUpdate->format('D, d M Y H:i:s O');
-
-        if (isset($crl->currentCert) && is_array($crl->currentCert) && isset($crl->currentCert['tbsCertList'])) {
-            $this->currentCert = $crl->currentCert;
-            $this->currentCert['tbsCertList']['signature']['algorithm'] = $signatureAlgorithm;
-            $this->currentCert['signatureAlgorithm']['algorithm'] = $signatureAlgorithm;
-        } else {
-            $this->currentCert = array(
-                'tbsCertList' =>
-                    array(
-                        'version' => 'v2',
-                        'signature' => array('algorithm' => $signatureAlgorithm),
-                        'issuer' => false, // this is going to be overwritten later
-                        'thisUpdate' => $this->_timeField($thisUpdate) // $this->setStartDate()
-                    ),
-                    'signatureAlgorithm' => array('algorithm' => $signatureAlgorithm),
-                    'signature'          => false // this is going to be overwritten later
-            );
-        }
-
-        $tbsCertList = &$this->currentCert['tbsCertList'];
-        $tbsCertList['issuer'] = $issuer->dn;
-        $tbsCertList['thisUpdate'] = $this->_timeField($thisUpdate);
-
-        if (!empty($this->endDate)) {
-            $tbsCertList['nextUpdate'] = $this->_timeField($this->endDate); // $this->setEndDate()
-        } else {
-            unset($tbsCertList['nextUpdate']);
-        }
-
-        if (!empty($this->serialNumber)) {
-            $crlNumber = $this->serialNumber;
-        } else {
-            $crlNumber = $this->getExtension('id-ce-cRLNumber');
-            // "The CRL number is a non-critical CRL extension that conveys a
-            //  monotonically increasing sequence number for a given CRL scope and
-            //  CRL issuer.  This extension allows users to easily determine when a
-            //  particular CRL supersedes another CRL."
-            // -- https://tools.ietf.org/html/rfc5280#section-5.2.3
-            $crlNumber = $crlNumber !== false ? $crlNumber->add(new BigInteger(1)) : null;
-        }
-
-        $this->removeExtension('id-ce-authorityKeyIdentifier');
-        $this->removeExtension('id-ce-issuerAltName');
-
-        // Be sure version >= v2 if some extension found.
-        $version = isset($tbsCertList['version']) ? $tbsCertList['version'] : 0;
-        if (!$version) {
-            if (!empty($tbsCertList['crlExtensions'])) {
-                $version = 1; // v2.
-            } elseif (!empty($tbsCertList['revokedCertificates'])) {
-                foreach ($tbsCertList['revokedCertificates'] as $cert) {
-                    if (!empty($cert['crlEntryExtensions'])) {
-                        $version = 1; // v2.
-                    }
-                }
-            }
-
-            if ($version) {
-                $tbsCertList['version'] = $version;
-            }
-        }
-
-        // Store additional extensions.
-        if (!empty($tbsCertList['version'])) { // At least v2.
-            if (!empty($crlNumber)) {
-                $this->setExtension('id-ce-cRLNumber', $crlNumber);
-            }
-
-            if (isset($issuer->currentKeyIdentifier)) {
-                $this->setExtension('id-ce-authorityKeyIdentifier', array(
-                        //'authorityCertIssuer' => array(
-                        //    array(
-                        //        'directoryName' => $issuer->dn
-                        //    )
-                        //),
-                        'keyIdentifier' => $issuer->currentKeyIdentifier
-                    ));
-                //$extensions = &$tbsCertList['crlExtensions'];
-                //if (isset($issuer->serialNumber)) {
-                //    $extensions[count($extensions) - 1]['authorityCertSerialNumber'] = $issuer->serialNumber;
-                //}
-                //unset($extensions);
-            }
-
-            $issuerAltName = $this->getExtension('id-ce-subjectAltName', $issuer->currentCert);
-
-            if ($issuerAltName !== false) {
-                $this->setExtension('id-ce-issuerAltName', $issuerAltName);
-            }
-        }
-
-        if (empty($tbsCertList['revokedCertificates'])) {
-            unset($tbsCertList['revokedCertificates']);
-        }
-
-        unset($tbsCertList);
-
-        // resync $this->signatureSubject
-        // save $tbsCertList in case there are any \phpseclib\File\ASN1\Element objects in it
-        $tbsCertList = $this->currentCert['tbsCertList'];
-        $this->loadCRL($this->saveCRL($this->currentCert));
-
-        $result = $this->_sign($issuer->privateKey, $signatureAlgorithm);
-        $result['tbsCertList'] = $tbsCertList;
-
-        $this->currentCert = $currentCert;
-        $this->signatureSubject = $signatureSubject;
-
-        return $result;
-    }
-
-    /**
-     * X.509 certificate signing helper function.
-     *
-     * @param object $key
-     * @param \phpseclib\File\X509 $subject
-     * @param string $signatureAlgorithm
-     * @access public
-     * @return mixed
-     */
-    function _sign($key, $signatureAlgorithm)
-    {
-        if ($key instanceof RSA) {
-            switch ($signatureAlgorithm) {
-                case 'md2WithRSAEncryption':
-                case 'md5WithRSAEncryption':
-                case 'sha1WithRSAEncryption':
-                case 'sha224WithRSAEncryption':
-                case 'sha256WithRSAEncryption':
-                case 'sha384WithRSAEncryption':
-                case 'sha512WithRSAEncryption':
-                    $key->setHash(preg_replace('#WithRSAEncryption$#', '', $signatureAlgorithm));
-                    $key->setSignatureMode(RSA::SIGNATURE_PKCS1);
-
-                    $this->currentCert['signature'] = base64_encode("\0" . $key->sign($this->signatureSubject));
-                    return $this->currentCert;
-            }
-        }
-
-        return false;
-    }
-
-    /**
-     * Set certificate start date
-     *
-     * @param string $date
-     * @access public
-     */
-    function setStartDate($date)
-    {
-        if (!is_object($date) || !is_a($date, 'DateTime')) {
-            $date = new DateTime($date, new DateTimeZone(@date_default_timezone_get()));
-        }
-
-        $this->startDate = $date->format('D, d M Y H:i:s O');
-    }
-
-    /**
-     * Set certificate end date
-     *
-     * @param string $date
-     * @access public
-     */
-    function setEndDate($date)
-    {
-        /*
-          To indicate that a certificate has no well-defined expiration date,
-          the notAfter SHOULD be assigned the GeneralizedTime value of
-          99991231235959Z.
-
-          -- http://tools.ietf.org/html/rfc5280#section-4.1.2.5
-        */
-        if (strtolower($date) == 'lifetime') {
-            $temp = '99991231235959Z';
-            $asn1 = new ASN1();
-            $temp = chr(ASN1::TYPE_GENERALIZED_TIME) . $asn1->_encodeLength(strlen($temp)) . $temp;
-            $this->endDate = new Element($temp);
-        } else {
-            if (!is_object($date) || !is_a($date, 'DateTime')) {
-                $date = new DateTime($date, new DateTimeZone(@date_default_timezone_get()));
-            }
-
-            $this->endDate = $date->format('D, d M Y H:i:s O');
-        }
-    }
-
-    /**
-     * Set Serial Number
-     *
-     * @param string $serial
-     * @param $base optional
-     * @access public
-     */
-    function setSerialNumber($serial, $base = -256)
-    {
-        $this->serialNumber = new BigInteger($serial, $base);
-    }
-
-    /**
-     * Turns the certificate into a certificate authority
-     *
-     * @access public
-     */
-    function makeCA()
-    {
-        $this->caFlag = true;
-    }
-
-    /**
-     * Check for validity of subarray
-     *
-     * This is intended for use in conjunction with _subArrayUnchecked(),
-     * implementing the checks included in _subArray() but without copying
-     * a potentially large array by passing its reference by-value to is_array().
-     *
-     * @param array $root
-     * @param string $path
-     * @return boolean
-     * @access private
-     */
-    function _isSubArrayValid($root, $path)
-    {
-        if (!is_array($root)) {
-            return false;
-        }
-
-        foreach (explode('/', $path) as $i) {
-            if (!is_array($root)) {
-                return false;
-            }
-
-            if (!isset($root[$i])) {
-                return true;
-            }
-
-            $root = $root[$i];
-        }
-
-        return true;
-    }
-
-    /**
-     * Get a reference to a subarray
-     *
-     * This variant of _subArray() does no is_array() checking,
-     * so $root should be checked with _isSubArrayValid() first.
-     *
-     * This is here for performance reasons:
-     * Passing a reference (i.e. $root) by-value (i.e. to is_array())
-     * creates a copy. If $root is an especially large array, this is expensive.
-     *
-     * @param array $root
-     * @param string $path  absolute path with / as component separator
-     * @param bool $create optional
-     * @access private
-     * @return array|false
-     */
-    function &_subArrayUnchecked(&$root, $path, $create = false)
-    {
-        $false = false;
-
-        foreach (explode('/', $path) as $i) {
-            if (!isset($root[$i])) {
-                if (!$create) {
-                    return $false;
-                }
-
-                $root[$i] = array();
-            }
-
-            $root = &$root[$i];
-        }
-
-        return $root;
-    }
-
-    /**
-     * Get a reference to a subarray
-     *
-     * @param array $root
-     * @param string $path  absolute path with / as component separator
-     * @param bool $create optional
-     * @access private
-     * @return array|false
-     */
-    function &_subArray(&$root, $path, $create = false)
-    {
-        $false = false;
-
-        if (!is_array($root)) {
-            return $false;
-        }
-
-        foreach (explode('/', $path) as $i) {
-            if (!is_array($root)) {
-                return $false;
-            }
-
-            if (!isset($root[$i])) {
-                if (!$create) {
-                    return $false;
-                }
-
-                $root[$i] = array();
-            }
-
-            $root = &$root[$i];
-        }
-
-        return $root;
-    }
-
-    /**
-     * Get a reference to an extension subarray
-     *
-     * @param array $root
-     * @param string $path optional absolute path with / as component separator
-     * @param bool $create optional
-     * @access private
-     * @return array|false
-     */
-    function &_extensions(&$root, $path = null, $create = false)
-    {
-        if (!isset($root)) {
-            $root = $this->currentCert;
-        }
-
-        switch (true) {
-            case !empty($path):
-            case !is_array($root):
-                break;
-            case isset($root['tbsCertificate']):
-                $path = 'tbsCertificate/extensions';
-                break;
-            case isset($root['tbsCertList']):
-                $path = 'tbsCertList/crlExtensions';
-                break;
-            case isset($root['certificationRequestInfo']):
-                $pth = 'certificationRequestInfo/attributes';
-                $attributes = &$this->_subArray($root, $pth, $create);
-
-                if (is_array($attributes)) {
-                    foreach ($attributes as $key => $value) {
-                        if ($value['type'] == 'pkcs-9-at-extensionRequest') {
-                            $path = "$pth/$key/value/0";
-                            break 2;
-                        }
-                    }
-                    if ($create) {
-                        $key = count($attributes);
-                        $attributes[] = array('type' => 'pkcs-9-at-extensionRequest', 'value' => array());
-                        $path = "$pth/$key/value/0";
-                    }
-                }
-                break;
-        }
-
-        $extensions = &$this->_subArray($root, $path, $create);
-
-        if (!is_array($extensions)) {
-            $false = false;
-            return $false;
-        }
-
-        return $extensions;
-    }
-
-    /**
-     * Remove an Extension
-     *
-     * @param string $id
-     * @param string $path optional
-     * @access private
-     * @return bool
-     */
-    function _removeExtension($id, $path = null)
-    {
-        $extensions = &$this->_extensions($this->currentCert, $path);
-
-        if (!is_array($extensions)) {
-            return false;
-        }
-
-        $result = false;
-        foreach ($extensions as $key => $value) {
-            if ($value['extnId'] == $id) {
-                unset($extensions[$key]);
-                $result = true;
-            }
-        }
-
-        $extensions = array_values($extensions);
-        // fix for https://bugs.php.net/75433 affecting PHP 7.2
-        if (!isset($extensions[0])) {
-            $extensions = array_splice($extensions, 0, 0);
-        }
-        return $result;
-    }
-
-    /**
-     * Get an Extension
-     *
-     * Returns the extension if it exists and false if not
-     *
-     * @param string $id
-     * @param array $cert optional
-     * @param string $path optional
-     * @access private
-     * @return mixed
-     */
-    function _getExtension($id, $cert = null, $path = null)
-    {
-        $extensions = $this->_extensions($cert, $path);
-
-        if (!is_array($extensions)) {
-            return false;
-        }
-
-        foreach ($extensions as $key => $value) {
-            if ($value['extnId'] == $id) {
-                return $value['extnValue'];
-            }
-        }
-
-        return false;
-    }
-
-    /**
-     * Returns a list of all extensions in use
-     *
-     * @param array $cert optional
-     * @param string $path optional
-     * @access private
-     * @return array
-     */
-    function _getExtensions($cert = null, $path = null)
-    {
-        $exts = $this->_extensions($cert, $path);
-        $extensions = array();
-
-        if (is_array($exts)) {
-            foreach ($exts as $extension) {
-                $extensions[] = $extension['extnId'];
-            }
-        }
-
-        return $extensions;
-    }
-
-    /**
-     * Set an Extension
-     *
-     * @param string $id
-     * @param mixed $value
-     * @param bool $critical optional
-     * @param bool $replace optional
-     * @param string $path optional
-     * @access private
-     * @return bool
-     */
-    function _setExtension($id, $value, $critical = false, $replace = true, $path = null)
-    {
-        $extensions = &$this->_extensions($this->currentCert, $path, true);
-
-        if (!is_array($extensions)) {
-            return false;
-        }
-
-        $newext = array('extnId'  => $id, 'critical' => $critical, 'extnValue' => $value);
-
-        foreach ($extensions as $key => $value) {
-            if ($value['extnId'] == $id) {
-                if (!$replace) {
-                    return false;
-                }
-
-                $extensions[$key] = $newext;
-                return true;
-            }
-        }
-
-        $extensions[] = $newext;
-        return true;
-    }
-
-    /**
-     * Remove a certificate, CSR or CRL Extension
-     *
-     * @param string $id
-     * @access public
-     * @return bool
-     */
-    function removeExtension($id)
-    {
-        return $this->_removeExtension($id);
-    }
-
-    /**
-     * Get a certificate, CSR or CRL Extension
-     *
-     * Returns the extension if it exists and false if not
-     *
-     * @param string $id
-     * @param array $cert optional
-     * @access public
-     * @return mixed
-     */
-    function getExtension($id, $cert = null)
-    {
-        return $this->_getExtension($id, $cert);
-    }
-
-    /**
-     * Returns a list of all extensions in use in certificate, CSR or CRL
-     *
-     * @param array $cert optional
-     * @access public
-     * @return array
-     */
-    function getExtensions($cert = null)
-    {
-        return $this->_getExtensions($cert);
-    }
-
-    /**
-     * Set a certificate, CSR or CRL Extension
-     *
-     * @param string $id
-     * @param mixed $value
-     * @param bool $critical optional
-     * @param bool $replace optional
-     * @access public
-     * @return bool
-     */
-    function setExtension($id, $value, $critical = false, $replace = true)
-    {
-        return $this->_setExtension($id, $value, $critical, $replace);
-    }
-
-    /**
-     * Remove a CSR attribute.
-     *
-     * @param string $id
-     * @param int $disposition optional
-     * @access public
-     * @return bool
-     */
-    function removeAttribute($id, $disposition = self::ATTR_ALL)
-    {
-        $attributes = &$this->_subArray($this->currentCert, 'certificationRequestInfo/attributes');
-
-        if (!is_array($attributes)) {
-            return false;
-        }
-
-        $result = false;
-        foreach ($attributes as $key => $attribute) {
-            if ($attribute['type'] == $id) {
-                $n = count($attribute['value']);
-                switch (true) {
-                    case $disposition == self::ATTR_APPEND:
-                    case $disposition == self::ATTR_REPLACE:
-                        return false;
-                    case $disposition >= $n:
-                        $disposition -= $n;
-                        break;
-                    case $disposition == self::ATTR_ALL:
-                    case $n == 1:
-                        unset($attributes[$key]);
-                        $result = true;
-                        break;
-                    default:
-                        unset($attributes[$key]['value'][$disposition]);
-                        $attributes[$key]['value'] = array_values($attributes[$key]['value']);
-                        $result = true;
-                        break;
-                }
-                if ($result && $disposition != self::ATTR_ALL) {
-                    break;
-                }
-            }
-        }
-
-        $attributes = array_values($attributes);
-        return $result;
-    }
-
-    /**
-     * Get a CSR attribute
-     *
-     * Returns the attribute if it exists and false if not
-     *
-     * @param string $id
-     * @param int $disposition optional
-     * @param array $csr optional
-     * @access public
-     * @return mixed
-     */
-    function getAttribute($id, $disposition = self::ATTR_ALL, $csr = null)
-    {
-        if (empty($csr)) {
-            $csr = $this->currentCert;
-        }
-
-        $attributes = $this->_subArray($csr, 'certificationRequestInfo/attributes');
-
-        if (!is_array($attributes)) {
-            return false;
-        }
-
-        foreach ($attributes as $key => $attribute) {
-            if ($attribute['type'] == $id) {
-                $n = count($attribute['value']);
-                switch (true) {
-                    case $disposition == self::ATTR_APPEND:
-                    case $disposition == self::ATTR_REPLACE:
-                        return false;
-                    case $disposition == self::ATTR_ALL:
-                        return $attribute['value'];
-                    case $disposition >= $n:
-                        $disposition -= $n;
-                        break;
-                    default:
-                        return $attribute['value'][$disposition];
-                }
-            }
-        }
-
-        return false;
-    }
-
-    /**
-     * Returns a list of all CSR attributes in use
-     *
-     * @param array $csr optional
-     * @access public
-     * @return array
-     */
-    function getAttributes($csr = null)
-    {
-        if (empty($csr)) {
-            $csr = $this->currentCert;
-        }
-
-        $attributes = $this->_subArray($csr, 'certificationRequestInfo/attributes');
-        $attrs = array();
-
-        if (is_array($attributes)) {
-            foreach ($attributes as $attribute) {
-                $attrs[] = $attribute['type'];
-            }
-        }
-
-        return $attrs;
-    }
-
-    /**
-     * Set a CSR attribute
-     *
-     * @param string $id
-     * @param mixed $value
-     * @param bool $disposition optional
-     * @access public
-     * @return bool
-     */
-    function setAttribute($id, $value, $disposition = self::ATTR_ALL)
-    {
-        $attributes = &$this->_subArray($this->currentCert, 'certificationRequestInfo/attributes', true);
-
-        if (!is_array($attributes)) {
-            return false;
-        }
-
-        switch ($disposition) {
-            case self::ATTR_REPLACE:
-                $disposition = self::ATTR_APPEND;
-            case self::ATTR_ALL:
-                $this->removeAttribute($id);
-                break;
-        }
-
-        foreach ($attributes as $key => $attribute) {
-            if ($attribute['type'] == $id) {
-                $n = count($attribute['value']);
-                switch (true) {
-                    case $disposition == self::ATTR_APPEND:
-                        $last = $key;
-                        break;
-                    case $disposition >= $n:
-                        $disposition -= $n;
-                        break;
-                    default:
-                        $attributes[$key]['value'][$disposition] = $value;
-                        return true;
-                }
-            }
-        }
-
-        switch (true) {
-            case $disposition >= 0:
-                return false;
-            case isset($last):
-                $attributes[$last]['value'][] = $value;
-                break;
-            default:
-                $attributes[] = array('type' => $id, 'value' => $disposition == self::ATTR_ALL ? $value: array($value));
-                break;
-        }
-
-        return true;
-    }
-
-    /**
-     * Sets the subject key identifier
-     *
-     * This is used by the id-ce-authorityKeyIdentifier and the id-ce-subjectKeyIdentifier extensions.
-     *
-     * @param string $value
-     * @access public
-     */
-    function setKeyIdentifier($value)
-    {
-        if (empty($value)) {
-            unset($this->currentKeyIdentifier);
-        } else {
-            $this->currentKeyIdentifier = base64_encode($value);
-        }
-    }
-
-    /**
-     * Compute a public key identifier.
-     *
-     * Although key identifiers may be set to any unique value, this function
-     * computes key identifiers from public key according to the two
-     * recommended methods (4.2.1.2 RFC 3280).
-     * Highly polymorphic: try to accept all possible forms of key:
-     * - Key object
-     * - \phpseclib\File\X509 object with public or private key defined
-     * - Certificate or CSR array
-     * - \phpseclib\File\ASN1\Element object
-     * - PEM or DER string
-     *
-     * @param mixed $key optional
-     * @param int $method optional
-     * @access public
-     * @return string binary key identifier
-     */
-    function computeKeyIdentifier($key = null, $method = 1)
-    {
-        if (is_null($key)) {
-            $key = $this;
-        }
-
-        switch (true) {
-            case is_string($key):
-                break;
-            case is_array($key) && isset($key['tbsCertificate']['subjectPublicKeyInfo']['subjectPublicKey']):
-                return $this->computeKeyIdentifier($key['tbsCertificate']['subjectPublicKeyInfo']['subjectPublicKey'], $method);
-            case is_array($key) && isset($key['certificationRequestInfo']['subjectPKInfo']['subjectPublicKey']):
-                return $this->computeKeyIdentifier($key['certificationRequestInfo']['subjectPKInfo']['subjectPublicKey'], $method);
-            case !is_object($key):
-                return false;
-            case $key instanceof Element:
-                // Assume the element is a bitstring-packed key.
-                $asn1 = new ASN1();
-                $decoded = $asn1->decodeBER($key->element);
-                if (empty($decoded)) {
-                    return false;
-                }
-                $raw = $asn1->asn1map($decoded[0], array('type' => ASN1::TYPE_BIT_STRING));
-                if (empty($raw)) {
-                    return false;
-                }
-                $raw = base64_decode($raw);
-                // If the key is private, compute identifier from its corresponding public key.
-                $key = new RSA();
-                if (!$key->loadKey($raw)) {
-                    return false;   // Not an unencrypted RSA key.
-                }
-                if ($key->getPrivateKey() !== false) {  // If private.
-                    return $this->computeKeyIdentifier($key, $method);
-                }
-                $key = $raw;    // Is a public key.
-                break;
-            case $key instanceof X509:
-                if (isset($key->publicKey)) {
-                    return $this->computeKeyIdentifier($key->publicKey, $method);
-                }
-                if (isset($key->privateKey)) {
-                    return $this->computeKeyIdentifier($key->privateKey, $method);
-                }
-                if (isset($key->currentCert['tbsCertificate']) || isset($key->currentCert['certificationRequestInfo'])) {
-                    return $this->computeKeyIdentifier($key->currentCert, $method);
-                }
-                return false;
-            default: // Should be a key object (i.e.: \phpseclib\Crypt\RSA).
-                $key = $key->getPublicKey(RSA::PUBLIC_FORMAT_PKCS1);
-                break;
-        }
-
-        // If in PEM format, convert to binary.
-        $key = $this->_extractBER($key);
-
-        // Now we have the key string: compute its sha-1 sum.
-        $hash = new Hash('sha1');
-        $hash = $hash->hash($key);
-
-        if ($method == 2) {
-            $hash = substr($hash, -8);
-            $hash[0] = chr((ord($hash[0]) & 0x0F) | 0x40);
-        }
-
-        return $hash;
-    }
-
-    /**
-     * Format a public key as appropriate
-     *
-     * @access private
-     * @return array
-     */
-    function _formatSubjectPublicKey()
-    {
-        if ($this->publicKey instanceof RSA) {
-            // the following two return statements do the same thing. i dunno.. i just prefer the later for some reason.
-            // the former is a good example of how to do fuzzing on the public key
-            //return new Element(base64_decode(preg_replace('#-.+-|[\r\n]#', '', $this->publicKey->getPublicKey())));
-            return array(
-                'algorithm' => array('algorithm' => 'rsaEncryption'),
-                'subjectPublicKey' => $this->publicKey->getPublicKey(RSA::PUBLIC_FORMAT_PKCS1)
-            );
-        }
-
-        return false;
-    }
-
-    /**
-     * Set the domain name's which the cert is to be valid for
-     *
-     * @access public
-     * @return array
-     */
-    function setDomain()
-    {
-        $this->domains = func_get_args();
-        $this->removeDNProp('id-at-commonName');
-        $this->setDNProp('id-at-commonName', $this->domains[0]);
-    }
-
-    /**
-     * Set the IP Addresses's which the cert is to be valid for
-     *
-     * @access public
-     * @param string $ipAddress optional
-     */
-    function setIPAddress()
-    {
-        $this->ipAddresses = func_get_args();
-        /*
-        if (!isset($this->domains)) {
-            $this->removeDNProp('id-at-commonName');
-            $this->setDNProp('id-at-commonName', $this->ipAddresses[0]);
-        }
-        */
-    }
-
-    /**
-     * Helper function to build domain array
-     *
-     * @access private
-     * @param string $domain
-     * @return array
-     */
-    function _dnsName($domain)
-    {
-        return array('dNSName' => $domain);
-    }
-
-    /**
-     * Helper function to build IP Address array
-     *
-     * (IPv6 is not currently supported)
-     *
-     * @access private
-     * @param string $address
-     * @return array
-     */
-    function _iPAddress($address)
-    {
-        return array('iPAddress' => $address);
-    }
-
-    /**
-     * Get the index of a revoked certificate.
-     *
-     * @param array $rclist
-     * @param string $serial
-     * @param bool $create optional
-     * @access private
-     * @return int|false
-     */
-    function _revokedCertificate(&$rclist, $serial, $create = false)
-    {
-        $serial = new BigInteger($serial);
-
-        foreach ($rclist as $i => $rc) {
-            if (!($serial->compare($rc['userCertificate']))) {
-                return $i;
-            }
-        }
-
-        if (!$create) {
-            return false;
-        }
-
-        $i = count($rclist);
-        $revocationDate = new DateTime('now', new DateTimeZone(@date_default_timezone_get()));
-        $rclist[] = array('userCertificate' => $serial,
-                          'revocationDate'  => $this->_timeField($revocationDate->format('D, d M Y H:i:s O')));
-        return $i;
-    }
-
-    /**
-     * Revoke a certificate.
-     *
-     * @param string $serial
-     * @param string $date optional
-     * @access public
-     * @return bool
-     */
-    function revoke($serial, $date = null)
-    {
-        if (isset($this->currentCert['tbsCertList'])) {
-            if (is_array($rclist = &$this->_subArray($this->currentCert, 'tbsCertList/revokedCertificates', true))) {
-                if ($this->_revokedCertificate($rclist, $serial) === false) { // If not yet revoked
-                    if (($i = $this->_revokedCertificate($rclist, $serial, true)) !== false) {
-                        if (!empty($date)) {
-                            $rclist[$i]['revocationDate'] = $this->_timeField($date);
-                        }
-
-                        return true;
-                    }
-                }
-            }
-        }
-
-        return false;
-    }
-
-    /**
-     * Unrevoke a certificate.
-     *
-     * @param string $serial
-     * @access public
-     * @return bool
-     */
-    function unrevoke($serial)
-    {
-        if (is_array($rclist = &$this->_subArray($this->currentCert, 'tbsCertList/revokedCertificates'))) {
-            if (($i = $this->_revokedCertificate($rclist, $serial)) !== false) {
-                unset($rclist[$i]);
-                $rclist = array_values($rclist);
-                return true;
-            }
-        }
-
-        return false;
-    }
-
-    /**
-     * Get a revoked certificate.
-     *
-     * @param string $serial
-     * @access public
-     * @return mixed
-     */
-    function getRevoked($serial)
-    {
-        if (is_array($rclist = $this->_subArray($this->currentCert, 'tbsCertList/revokedCertificates'))) {
-            if (($i = $this->_revokedCertificate($rclist, $serial)) !== false) {
-                return $rclist[$i];
-            }
-        }
-
-        return false;
-    }
-
-    /**
-     * List revoked certificates
-     *
-     * @param array $crl optional
-     * @access public
-     * @return array
-     */
-    function listRevoked($crl = null)
-    {
-        if (!isset($crl)) {
-            $crl = $this->currentCert;
-        }
-
-        if (!isset($crl['tbsCertList'])) {
-            return false;
-        }
-
-        $result = array();
-
-        if (is_array($rclist = $this->_subArray($crl, 'tbsCertList/revokedCertificates'))) {
-            foreach ($rclist as $rc) {
-                $result[] = $rc['userCertificate']->toString();
-            }
-        }
-
-        return $result;
-    }
-
-    /**
-     * Remove a Revoked Certificate Extension
-     *
-     * @param string $serial
-     * @param string $id
-     * @access public
-     * @return bool
-     */
-    function removeRevokedCertificateExtension($serial, $id)
-    {
-        if (is_array($rclist = &$this->_subArray($this->currentCert, 'tbsCertList/revokedCertificates'))) {
-            if (($i = $this->_revokedCertificate($rclist, $serial)) !== false) {
-                return $this->_removeExtension($id, "tbsCertList/revokedCertificates/$i/crlEntryExtensions");
-            }
-        }
-
-        return false;
-    }
-
-    /**
-     * Get a Revoked Certificate Extension
-     *
-     * Returns the extension if it exists and false if not
-     *
-     * @param string $serial
-     * @param string $id
-     * @param array $crl optional
-     * @access public
-     * @return mixed
-     */
-    function getRevokedCertificateExtension($serial, $id, $crl = null)
-    {
-        if (!isset($crl)) {
-            $crl = $this->currentCert;
-        }
-
-        if (is_array($rclist = $this->_subArray($crl, 'tbsCertList/revokedCertificates'))) {
-            if (($i = $this->_revokedCertificate($rclist, $serial)) !== false) {
-                return $this->_getExtension($id, $crl,  "tbsCertList/revokedCertificates/$i/crlEntryExtensions");
-            }
-        }
-
-        return false;
-    }
-
-    /**
-     * Returns a list of all extensions in use for a given revoked certificate
-     *
-     * @param string $serial
-     * @param array $crl optional
-     * @access public
-     * @return array
-     */
-    function getRevokedCertificateExtensions($serial, $crl = null)
-    {
-        if (!isset($crl)) {
-            $crl = $this->currentCert;
-        }
-
-        if (is_array($rclist = $this->_subArray($crl, 'tbsCertList/revokedCertificates'))) {
-            if (($i = $this->_revokedCertificate($rclist, $serial)) !== false) {
-                return $this->_getExtensions($crl, "tbsCertList/revokedCertificates/$i/crlEntryExtensions");
-            }
-        }
-
-        return false;
-    }
-
-    /**
-     * Set a Revoked Certificate Extension
-     *
-     * @param string $serial
-     * @param string $id
-     * @param mixed $value
-     * @param bool $critical optional
-     * @param bool $replace optional
-     * @access public
-     * @return bool
-     */
-    function setRevokedCertificateExtension($serial, $id, $value, $critical = false, $replace = true)
-    {
-        if (isset($this->currentCert['tbsCertList'])) {
-            if (is_array($rclist = &$this->_subArray($this->currentCert, 'tbsCertList/revokedCertificates', true))) {
-                if (($i = $this->_revokedCertificate($rclist, $serial, true)) !== false) {
-                    return $this->_setExtension($id, $value, $critical, $replace, "tbsCertList/revokedCertificates/$i/crlEntryExtensions");
-                }
-            }
-        }
-
-        return false;
-    }
-
-    /**
-     * Extract raw BER from Base64 encoding
-     *
-     * @access private
-     * @param string $str
-     * @return string
-     */
-    function _extractBER($str)
-    {
-        /* X.509 certs are assumed to be base64 encoded but sometimes they'll have additional things in them
-         * above and beyond the ceritificate.
-         * ie. some may have the following preceding the -----BEGIN CERTIFICATE----- line:
-         *
-         * Bag Attributes
-         *     localKeyID: 01 00 00 00
-         * subject=/O=organization/OU=org unit/CN=common name
-         * issuer=/O=organization/CN=common name
-         */
-        $temp = preg_replace('#.*?^-+[^-]+-+[\r\n ]*$#ms', '', $str, 1);
-        // remove the -----BEGIN CERTIFICATE----- and -----END CERTIFICATE----- stuff
-        $temp = preg_replace('#-+[^-]+-+#', '', $temp);
-        // remove new lines
-        $temp = str_replace(array("\r", "\n", ' '), '', $temp);
-        $temp = preg_match('#^[a-zA-Z\d/+]*={0,2}$#', $temp) ? base64_decode($temp) : false;
-        return $temp != false ? $temp : $str;
-    }
-
-    /**
-     * Returns the OID corresponding to a name
-     *
-     * What's returned in the associative array returned by loadX509() (or load*()) is either a name or an OID if
-     * no OID to name mapping is available. The problem with this is that what may be an unmapped OID in one version
-     * of phpseclib may not be unmapped in the next version, so apps that are looking at this OID may not be able
-     * to work from version to version.
-     *
-     * This method will return the OID if a name is passed to it and if no mapping is avialable it'll assume that
-     * what's being passed to it already is an OID and return that instead. A few examples.
-     *
-     * getOID('2.16.840.1.101.3.4.2.1') == '2.16.840.1.101.3.4.2.1'
-     * getOID('id-sha256') == '2.16.840.1.101.3.4.2.1'
-     * getOID('zzz') == 'zzz'
-     *
-     * @access public
-     * @return string
-     */
-    function getOID($name)
-    {
-        static $reverseMap;
-        if (!isset($reverseMap)) {
-            $reverseMap = array_flip($this->oids);
-        }
-        return isset($reverseMap[$name]) ? $reverseMap[$name] : $name;
-    }
-}
diff --git a/wiki/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger.php b/wiki/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger.php
deleted file mode 100644
index d82d123..0000000
--- a/wiki/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger.php
+++ /dev/null
@@ -1,3767 +0,0 @@
-<?php
-
-/**
- * Pure-PHP arbitrary precision integer arithmetic library.
- *
- * Supports base-2, base-10, base-16, and base-256 numbers.  Uses the GMP or BCMath extensions, if available,
- * and an internal implementation, otherwise.
- *
- * PHP version 5
- *
- * {@internal (all DocBlock comments regarding implementation - such as the one that follows - refer to the
- * {@link self::MODE_INTERNAL self::MODE_INTERNAL} mode)
- *
- * BigInteger uses base-2**26 to perform operations such as multiplication and division and
- * base-2**52 (ie. two base 2**26 digits) to perform addition and subtraction.  Because the largest possible
- * value when multiplying two base-2**26 numbers together is a base-2**52 number, double precision floating
- * point numbers - numbers that should be supported on most hardware and whose significand is 53 bits - are
- * used.  As a consequence, bitwise operators such as >> and << cannot be used, nor can the modulo operator %,
- * which only supports integers.  Although this fact will slow this library down, the fact that such a high
- * base is being used should more than compensate.
- *
- * Numbers are stored in {@link http://en.wikipedia.org/wiki/Endianness little endian} format.  ie.
- * (new \phpseclib\Math\BigInteger(pow(2, 26)))->value = array(0, 1)
- *
- * Useful resources are as follows:
- *
- *  - {@link http://www.cacr.math.uwaterloo.ca/hac/about/chap14.pdf Handbook of Applied Cryptography (HAC)}
- *  - {@link http://math.libtomcrypt.com/files/tommath.pdf Multi-Precision Math (MPM)}
- *  - Java's BigInteger classes.  See /j2se/src/share/classes/java/math in jdk-1_5_0-src-jrl.zip
- *
- * Here's an example of how to use this library:
- * <code>
- * <?php
- *    $a = new \phpseclib\Math\BigInteger(2);
- *    $b = new \phpseclib\Math\BigInteger(3);
- *
- *    $c = $a->add($b);
- *
- *    echo $c->toString(); // outputs 5
- * ?>
- * </code>
- *
- * @category  Math
- * @package   BigInteger
- * @author    Jim Wigginton <terrafrost@php.net>
- * @copyright 2006 Jim Wigginton
- * @license   http://www.opensource.org/licenses/mit-license.html  MIT License
- * @link      http://pear.php.net/package/Math_BigInteger
- */
-
-namespace phpseclib\Math;
-
-use phpseclib\Crypt\Random;
-
-/**
- * Pure-PHP arbitrary precision integer arithmetic library. Supports base-2, base-10, base-16, and base-256
- * numbers.
- *
- * @package BigInteger
- * @author  Jim Wigginton <terrafrost@php.net>
- * @access  public
- */
-class BigInteger
-{
-    /**#@+
-     * Reduction constants
-     *
-     * @access private
-     * @see BigInteger::_reduce()
-     */
-    /**
-     * @see BigInteger::_montgomery()
-     * @see BigInteger::_prepMontgomery()
-     */
-    const MONTGOMERY = 0;
-    /**
-     * @see BigInteger::_barrett()
-     */
-    const BARRETT = 1;
-    /**
-     * @see BigInteger::_mod2()
-     */
-    const POWEROF2 = 2;
-    /**
-     * @see BigInteger::_remainder()
-     */
-    const CLASSIC = 3;
-    /**
-     * @see BigInteger::__clone()
-     */
-    const NONE = 4;
-    /**#@-*/
-
-    /**#@+
-     * Array constants
-     *
-     * Rather than create a thousands and thousands of new BigInteger objects in repeated function calls to add() and
-     * multiply() or whatever, we'll just work directly on arrays, taking them in as parameters and returning them.
-     *
-     * @access private
-    */
-    /**
-     * $result[self::VALUE] contains the value.
-     */
-    const VALUE = 0;
-    /**
-     * $result[self::SIGN] contains the sign.
-     */
-    const SIGN = 1;
-    /**#@-*/
-
-    /**#@+
-     * @access private
-     * @see BigInteger::_montgomery()
-     * @see BigInteger::_barrett()
-    */
-    /**
-     * Cache constants
-     *
-     * $cache[self::VARIABLE] tells us whether or not the cached data is still valid.
-     */
-    const VARIABLE = 0;
-    /**
-     * $cache[self::DATA] contains the cached data.
-     */
-    const DATA = 1;
-    /**#@-*/
-
-    /**#@+
-     * Mode constants.
-     *
-     * @access private
-     * @see BigInteger::__construct()
-    */
-    /**
-     * To use the pure-PHP implementation
-     */
-    const MODE_INTERNAL = 1;
-    /**
-     * To use the BCMath library
-     *
-     * (if enabled; otherwise, the internal implementation will be used)
-     */
-    const MODE_BCMATH = 2;
-    /**
-     * To use the GMP library
-     *
-     * (if present; otherwise, either the BCMath or the internal implementation will be used)
-     */
-    const MODE_GMP = 3;
-    /**#@-*/
-
-    /**
-     * Karatsuba Cutoff
-     *
-     * At what point do we switch between Karatsuba multiplication and schoolbook long multiplication?
-     *
-     * @access private
-     */
-    const KARATSUBA_CUTOFF = 25;
-
-    /**#@+
-     * Static properties used by the pure-PHP implementation.
-     *
-     * @see __construct()
-     */
-    protected static $base;
-    protected static $baseFull;
-    protected static $maxDigit;
-    protected static $msb;
-
-    /**
-     * $max10 in greatest $max10Len satisfying
-     * $max10 = 10**$max10Len <= 2**$base.
-     */
-    protected static $max10;
-
-    /**
-     * $max10Len in greatest $max10Len satisfying
-     * $max10 = 10**$max10Len <= 2**$base.
-     */
-    protected static $max10Len;
-    protected static $maxDigit2;
-    /**#@-*/
-
-    /**
-     * Holds the BigInteger's value.
-     *
-     * @var array
-     * @access private
-     */
-    var $value;
-
-    /**
-     * Holds the BigInteger's magnitude.
-     *
-     * @var bool
-     * @access private
-     */
-    var $is_negative = false;
-
-    /**
-     * Precision
-     *
-     * @see self::setPrecision()
-     * @access private
-     */
-    var $precision = -1;
-
-    /**
-     * Precision Bitmask
-     *
-     * @see self::setPrecision()
-     * @access private
-     */
-    var $bitmask = false;
-
-    /**
-     * Mode independent value used for serialization.
-     *
-     * If the bcmath or gmp extensions are installed $this->value will be a non-serializable resource, hence the need for
-     * a variable that'll be serializable regardless of whether or not extensions are being used.  Unlike $this->value,
-     * however, $this->hex is only calculated when $this->__sleep() is called.
-     *
-     * @see self::__sleep()
-     * @see self::__wakeup()
-     * @var string
-     * @access private
-     */
-    var $hex;
-
-    /**
-     * Converts base-2, base-10, base-16, and binary strings (base-256) to BigIntegers.
-     *
-     * If the second parameter - $base - is negative, then it will be assumed that the number's are encoded using
-     * two's compliment.  The sole exception to this is -10, which is treated the same as 10 is.
-     *
-     * Here's an example:
-     * <code>
-     * <?php
-     *    $a = new \phpseclib\Math\BigInteger('0x32', 16); // 50 in base-16
-     *
-     *    echo $a->toString(); // outputs 50
-     * ?>
-     * </code>
-     *
-     * @param $x base-10 number or base-$base number if $base set.
-     * @param int $base
-     * @return \phpseclib\Math\BigInteger
-     * @access public
-     */
-    function __construct($x = 0, $base = 10)
-    {
-        if (!defined('MATH_BIGINTEGER_MODE')) {
-            switch (true) {
-                case extension_loaded('gmp'):
-                    define('MATH_BIGINTEGER_MODE', self::MODE_GMP);
-                    break;
-                case extension_loaded('bcmath'):
-                    define('MATH_BIGINTEGER_MODE', self::MODE_BCMATH);
-                    break;
-                default:
-                    define('MATH_BIGINTEGER_MODE', self::MODE_INTERNAL);
-            }
-        }
-
-        if (extension_loaded('openssl') && !defined('MATH_BIGINTEGER_OPENSSL_DISABLE') && !defined('MATH_BIGINTEGER_OPENSSL_ENABLED')) {
-            // some versions of XAMPP have mismatched versions of OpenSSL which causes it not to work
-            $versions = array();
-
-            // avoid generating errors (even with suppression) when phpinfo() is disabled (common in production systems)
-            if (strpos(ini_get('disable_functions'), 'phpinfo') === false) {
-                ob_start();
-                @phpinfo();
-                $content = ob_get_contents();
-                ob_end_clean();
-
-                preg_match_all('#OpenSSL (Header|Library) Version(.*)#im', $content, $matches);
-
-                if (!empty($matches[1])) {
-                    for ($i = 0; $i < count($matches[1]); $i++) {
-                        $fullVersion = trim(str_replace('=>', '', strip_tags($matches[2][$i])));
-
-                        // Remove letter part in OpenSSL version
-                        if (!preg_match('/(\d+\.\d+\.\d+)/i', $fullVersion, $m)) {
-                            $versions[$matches[1][$i]] = $fullVersion;
-                        } else {
-                            $versions[$matches[1][$i]] = $m[0];
-                        }
-                    }
-                }
-            }
-
-            // it doesn't appear that OpenSSL versions were reported upon until PHP 5.3+
-            switch (true) {
-                case !isset($versions['Header']):
-                case !isset($versions['Library']):
-                case $versions['Header'] == $versions['Library']:
-                case version_compare($versions['Header'], '1.0.0') >= 0 && version_compare($versions['Library'], '1.0.0') >= 0:
-                    define('MATH_BIGINTEGER_OPENSSL_ENABLED', true);
-                    break;
-                default:
-                    define('MATH_BIGINTEGER_OPENSSL_DISABLE', true);
-            }
-        }
-
-        if (!defined('PHP_INT_SIZE')) {
-            define('PHP_INT_SIZE', 4);
-        }
-
-        if (empty(self::$base) && MATH_BIGINTEGER_MODE == self::MODE_INTERNAL) {
-            switch (PHP_INT_SIZE) {
-                case 8: // use 64-bit integers if int size is 8 bytes
-                    self::$base      = 31;
-                    self::$baseFull  = 0x80000000;
-                    self::$maxDigit  = 0x7FFFFFFF;
-                    self::$msb       = 0x40000000;
-                    self::$max10     = 1000000000;
-                    self::$max10Len  = 9;
-                    self::$maxDigit2 = pow(2, 62);
-                    break;
-                //case 4: // use 64-bit floats if int size is 4 bytes
-                default:
-                    self::$base      = 26;
-                    self::$baseFull  = 0x4000000;
-                    self::$maxDigit  = 0x3FFFFFF;
-                    self::$msb       = 0x2000000;
-                    self::$max10     = 10000000;
-                    self::$max10Len  = 7;
-                    self::$maxDigit2 = pow(2, 52); // pow() prevents truncation
-            }
-        }
-
-        switch (MATH_BIGINTEGER_MODE) {
-            case self::MODE_GMP:
-                switch (true) {
-                    case is_resource($x) && get_resource_type($x) == 'GMP integer':
-                    // PHP 5.6 switched GMP from using resources to objects
-                    case $x instanceof \GMP:
-                        $this->value = $x;
-                        return;
-                }
-                $this->value = gmp_init(0);
-                break;
-            case self::MODE_BCMATH:
-                $this->value = '0';
-                break;
-            default:
-                $this->value = array();
-        }
-
-        // '0' counts as empty() but when the base is 256 '0' is equal to ord('0') or 48
-        // '0' is the only value like this per http://php.net/empty
-        if (empty($x) && (abs($base) != 256 || $x !== '0')) {
-            return;
-        }
-
-        switch ($base) {
-            case -256:
-                if (ord($x[0]) & 0x80) {
-                    $x = ~$x;
-                    $this->is_negative = true;
-                }
-            case 256:
-                switch (MATH_BIGINTEGER_MODE) {
-                    case self::MODE_GMP:
-                        $this->value = function_exists('gmp_import') ?
-                            gmp_import($x) :
-                            gmp_init('0x' . bin2hex($x));
-                        if ($this->is_negative) {
-                            $this->value = gmp_neg($this->value);
-                        }
-                        break;
-                    case self::MODE_BCMATH:
-                        // round $len to the nearest 4 (thanks, DavidMJ!)
-                        $len = (strlen($x) + 3) & 0xFFFFFFFC;
-
-                        $x = str_pad($x, $len, chr(0), STR_PAD_LEFT);
-
-                        for ($i = 0; $i < $len; $i+= 4) {
-                            $this->value = bcmul($this->value, '4294967296', 0); // 4294967296 == 2**32
-                            $this->value = bcadd($this->value, 0x1000000 * ord($x[$i]) + ((ord($x[$i + 1]) << 16) | (ord($x[$i + 2]) << 8) | ord($x[$i + 3])), 0);
-                        }
-
-                        if ($this->is_negative) {
-                            $this->value = '-' . $this->value;
-                        }
-
-                        break;
-                    // converts a base-2**8 (big endian / msb) number to base-2**26 (little endian / lsb)
-                    default:
-                        while (strlen($x)) {
-                            $this->value[] = $this->_bytes2int($this->_base256_rshift($x, self::$base));
-                        }
-                }
-
-                if ($this->is_negative) {
-                    if (MATH_BIGINTEGER_MODE != self::MODE_INTERNAL) {
-                        $this->is_negative = false;
-                    }
-                    $temp = $this->add(new static('-1'));
-                    $this->value = $temp->value;
-                }
-                break;
-            case 16:
-            case -16:
-                if ($base > 0 && $x[0] == '-') {
-                    $this->is_negative = true;
-                    $x = substr($x, 1);
-                }
-
-                $x = preg_replace('#^(?:0x)?([A-Fa-f0-9]*).*#', '$1', $x);
-
-                $is_negative = false;
-                if ($base < 0 && hexdec($x[0]) >= 8) {
-                    $this->is_negative = $is_negative = true;
-                    $x = bin2hex(~pack('H*', $x));
-                }
-
-                switch (MATH_BIGINTEGER_MODE) {
-                    case self::MODE_GMP:
-                        $temp = $this->is_negative ? '-0x' . $x : '0x' . $x;
-                        $this->value = gmp_init($temp);
-                        $this->is_negative = false;
-                        break;
-                    case self::MODE_BCMATH:
-                        $x = (strlen($x) & 1) ? '0' . $x : $x;
-                        $temp = new static(pack('H*', $x), 256);
-                        $this->value = $this->is_negative ? '-' . $temp->value : $temp->value;
-                        $this->is_negative = false;
-                        break;
-                    default:
-                        $x = (strlen($x) & 1) ? '0' . $x : $x;
-                        $temp = new static(pack('H*', $x), 256);
-                        $this->value = $temp->value;
-                }
-
-                if ($is_negative) {
-                    $temp = $this->add(new static('-1'));
-                    $this->value = $temp->value;
-                }
-                break;
-            case 10:
-            case -10:
-                // (?<!^)(?:-).*: find any -'s that aren't at the beginning and then any characters that follow that
-                // (?<=^|-)0*: find any 0's that are preceded by the start of the string or by a - (ie. octals)
-                // [^-0-9].*: find any non-numeric characters and then any characters that follow that
-                $x = preg_replace('#(?<!^)(?:-).*|(?<=^|-)0*|[^-0-9].*#', '', $x);
-
-                switch (MATH_BIGINTEGER_MODE) {
-                    case self::MODE_GMP:
-                        $this->value = gmp_init($x);
-                        break;
-                    case self::MODE_BCMATH:
-                        // explicitly casting $x to a string is necessary, here, since doing $x[0] on -1 yields different
-                        // results then doing it on '-1' does (modInverse does $x[0])
-                        $this->value = $x === '-' ? '0' : (string) $x;
-                        break;
-                    default:
-                        $temp = new static();
-
-                        $multiplier = new static();
-                        $multiplier->value = array(self::$max10);
-
-                        if ($x[0] == '-') {
-                            $this->is_negative = true;
-                            $x = substr($x, 1);
-                        }
-
-                        $x = str_pad($x, strlen($x) + ((self::$max10Len - 1) * strlen($x)) % self::$max10Len, 0, STR_PAD_LEFT);
-                        while (strlen($x)) {
-                            $temp = $temp->multiply($multiplier);
-                            $temp = $temp->add(new static($this->_int2bytes(substr($x, 0, self::$max10Len)), 256));
-                            $x = substr($x, self::$max10Len);
-                        }
-
-                        $this->value = $temp->value;
-                }
-                break;
-            case 2: // base-2 support originally implemented by Lluis Pamies - thanks!
-            case -2:
-                if ($base > 0 && $x[0] == '-') {
-                    $this->is_negative = true;
-                    $x = substr($x, 1);
-                }
-
-                $x = preg_replace('#^([01]*).*#', '$1', $x);
-                $x = str_pad($x, strlen($x) + (3 * strlen($x)) % 4, 0, STR_PAD_LEFT);
-
-                $str = '0x';
-                while (strlen($x)) {
-                    $part = substr($x, 0, 4);
-                    $str.= dechex(bindec($part));
-                    $x = substr($x, 4);
-                }
-
-                if ($this->is_negative) {
-                    $str = '-' . $str;
-                }
-
-                $temp = new static($str, 8 * $base); // ie. either -16 or +16
-                $this->value = $temp->value;
-                $this->is_negative = $temp->is_negative;
-
-                break;
-            default:
-                // base not supported, so we'll let $this == 0
-        }
-    }
-
-    /**
-     * Converts a BigInteger to a byte string (eg. base-256).
-     *
-     * Negative numbers are saved as positive numbers, unless $twos_compliment is set to true, at which point, they're
-     * saved as two's compliment.
-     *
-     * Here's an example:
-     * <code>
-     * <?php
-     *    $a = new \phpseclib\Math\BigInteger('65');
-     *
-     *    echo $a->toBytes(); // outputs chr(65)
-     * ?>
-     * </code>
-     *
-     * @param bool $twos_compliment
-     * @return string
-     * @access public
-     * @internal Converts a base-2**26 number to base-2**8
-     */
-    function toBytes($twos_compliment = false)
-    {
-        if ($twos_compliment) {
-            $comparison = $this->compare(new static());
-            if ($comparison == 0) {
-                return $this->precision > 0 ? str_repeat(chr(0), ($this->precision + 1) >> 3) : '';
-            }
-
-            $temp = $comparison < 0 ? $this->add(new static(1)) : $this->copy();
-            $bytes = $temp->toBytes();
-
-            if (!strlen($bytes)) { // eg. if the number we're trying to convert is -1
-                $bytes = chr(0);
-            }
-
-            if (ord($bytes[0]) & 0x80) {
-                $bytes = chr(0) . $bytes;
-            }
-
-            return $comparison < 0 ? ~$bytes : $bytes;
-        }
-
-        switch (MATH_BIGINTEGER_MODE) {
-            case self::MODE_GMP:
-                if (gmp_cmp($this->value, gmp_init(0)) == 0) {
-                    return $this->precision > 0 ? str_repeat(chr(0), ($this->precision + 1) >> 3) : '';
-                }
-
-                if (function_exists('gmp_export')) {
-                    $temp = gmp_export($this->value);
-                } else {
-                    $temp = gmp_strval(gmp_abs($this->value), 16);
-                    $temp = (strlen($temp) & 1) ? '0' . $temp : $temp;
-                    $temp = pack('H*', $temp);
-                }
-
-                return $this->precision > 0 ?
-                    substr(str_pad($temp, $this->precision >> 3, chr(0), STR_PAD_LEFT), -($this->precision >> 3)) :
-                    ltrim($temp, chr(0));
-            case self::MODE_BCMATH:
-                if ($this->value === '0') {
-                    return $this->precision > 0 ? str_repeat(chr(0), ($this->precision + 1) >> 3) : '';
-                }
-
-                $value = '';
-                $current = $this->value;
-
-                if ($current[0] == '-') {
-                    $current = substr($current, 1);
-                }
-
-                while (bccomp($current, '0', 0) > 0) {
-                    $temp = bcmod($current, '16777216');
-                    $value = chr($temp >> 16) . chr($temp >> 8) . chr($temp) . $value;
-                    $current = bcdiv($current, '16777216', 0);
-                }
-
-                return $this->precision > 0 ?
-                    substr(str_pad($value, $this->precision >> 3, chr(0), STR_PAD_LEFT), -($this->precision >> 3)) :
-                    ltrim($value, chr(0));
-        }
-
-        if (!count($this->value)) {
-            return $this->precision > 0 ? str_repeat(chr(0), ($this->precision + 1) >> 3) : '';
-        }
-        $result = $this->_int2bytes($this->value[count($this->value) - 1]);
-
-        $temp = $this->copy();
-
-        for ($i = count($temp->value) - 2; $i >= 0; --$i) {
-            $temp->_base256_lshift($result, self::$base);
-            $result = $result | str_pad($temp->_int2bytes($temp->value[$i]), strlen($result), chr(0), STR_PAD_LEFT);
-        }
-
-        return $this->precision > 0 ?
-            str_pad(substr($result, -(($this->precision + 7) >> 3)), ($this->precision + 7) >> 3, chr(0), STR_PAD_LEFT) :
-            $result;
-    }
-
-    /**
-     * Converts a BigInteger to a hex string (eg. base-16)).
-     *
-     * Negative numbers are saved as positive numbers, unless $twos_compliment is set to true, at which point, they're
-     * saved as two's compliment.
-     *
-     * Here's an example:
-     * <code>
-     * <?php
-     *    $a = new \phpseclib\Math\BigInteger('65');
-     *
-     *    echo $a->toHex(); // outputs '41'
-     * ?>
-     * </code>
-     *
-     * @param bool $twos_compliment
-     * @return string
-     * @access public
-     * @internal Converts a base-2**26 number to base-2**8
-     */
-    function toHex($twos_compliment = false)
-    {
-        return bin2hex($this->toBytes($twos_compliment));
-    }
-
-    /**
-     * Converts a BigInteger to a bit string (eg. base-2).
-     *
-     * Negative numbers are saved as positive numbers, unless $twos_compliment is set to true, at which point, they're
-     * saved as two's compliment.
-     *
-     * Here's an example:
-     * <code>
-     * <?php
-     *    $a = new \phpseclib\Math\BigInteger('65');
-     *
-     *    echo $a->toBits(); // outputs '1000001'
-     * ?>
-     * </code>
-     *
-     * @param bool $twos_compliment
-     * @return string
-     * @access public
-     * @internal Converts a base-2**26 number to base-2**2
-     */
-    function toBits($twos_compliment = false)
-    {
-        $hex = $this->toHex($twos_compliment);
-        $bits = '';
-        for ($i = strlen($hex) - 8, $start = strlen($hex) & 7; $i >= $start; $i-=8) {
-            $bits = str_pad(decbin(hexdec(substr($hex, $i, 8))), 32, '0', STR_PAD_LEFT) . $bits;
-        }
-        if ($start) { // hexdec('') == 0
-            $bits = str_pad(decbin(hexdec(substr($hex, 0, $start))), 8, '0', STR_PAD_LEFT) . $bits;
-        }
-        $result = $this->precision > 0 ? substr($bits, -$this->precision) : ltrim($bits, '0');
-
-        if ($twos_compliment && $this->compare(new static()) > 0 && $this->precision <= 0) {
-            return '0' . $result;
-        }
-
-        return $result;
-    }
-
-    /**
-     * Converts a BigInteger to a base-10 number.
-     *
-     * Here's an example:
-     * <code>
-     * <?php
-     *    $a = new \phpseclib\Math\BigInteger('50');
-     *
-     *    echo $a->toString(); // outputs 50
-     * ?>
-     * </code>
-     *
-     * @return string
-     * @access public
-     * @internal Converts a base-2**26 number to base-10**7 (which is pretty much base-10)
-     */
-    function toString()
-    {
-        switch (MATH_BIGINTEGER_MODE) {
-            case self::MODE_GMP:
-                return gmp_strval($this->value);
-            case self::MODE_BCMATH:
-                if ($this->value === '0') {
-                    return '0';
-                }
-
-                return ltrim($this->value, '0');
-        }
-
-        if (!count($this->value)) {
-            return '0';
-        }
-
-        $temp = $this->copy();
-        $temp->is_negative = false;
-
-        $divisor = new static();
-        $divisor->value = array(self::$max10);
-        $result = '';
-        while (count($temp->value)) {
-            list($temp, $mod) = $temp->divide($divisor);
-            $result = str_pad(isset($mod->value[0]) ? $mod->value[0] : '', self::$max10Len, '0', STR_PAD_LEFT) . $result;
-        }
-        $result = ltrim($result, '0');
-        if (empty($result)) {
-            $result = '0';
-        }
-
-        if ($this->is_negative) {
-            $result = '-' . $result;
-        }
-
-        return $result;
-    }
-
-    /**
-     * Copy an object
-     *
-     * PHP5 passes objects by reference while PHP4 passes by value.  As such, we need a function to guarantee
-     * that all objects are passed by value, when appropriate.  More information can be found here:
-     *
-     * {@link http://php.net/language.oop5.basic#51624}
-     *
-     * @access public
-     * @see self::__clone()
-     * @return \phpseclib\Math\BigInteger
-     */
-    function copy()
-    {
-        $temp = new static();
-        $temp->value = $this->value;
-        $temp->is_negative = $this->is_negative;
-        $temp->precision = $this->precision;
-        $temp->bitmask = $this->bitmask;
-        return $temp;
-    }
-
-    /**
-     *  __toString() magic method
-     *
-     * Will be called, automatically, if you're supporting just PHP5.  If you're supporting PHP4, you'll need to call
-     * toString().
-     *
-     * @access public
-     * @internal Implemented per a suggestion by Techie-Michael - thanks!
-     */
-    function __toString()
-    {
-        return $this->toString();
-    }
-
-    /**
-     * __clone() magic method
-     *
-     * Although you can call BigInteger::__toString() directly in PHP5, you cannot call BigInteger::__clone() directly
-     * in PHP5.  You can in PHP4 since it's not a magic method, but in PHP5, you have to call it by using the PHP5
-     * only syntax of $y = clone $x.  As such, if you're trying to write an application that works on both PHP4 and
-     * PHP5, call BigInteger::copy(), instead.
-     *
-     * @access public
-     * @see self::copy()
-     * @return \phpseclib\Math\BigInteger
-     */
-    function __clone()
-    {
-        return $this->copy();
-    }
-
-    /**
-     *  __sleep() magic method
-     *
-     * Will be called, automatically, when serialize() is called on a BigInteger object.
-     *
-     * @see self::__wakeup()
-     * @access public
-     */
-    function __sleep()
-    {
-        $this->hex = $this->toHex(true);
-        $vars = array('hex');
-        if ($this->precision > 0) {
-            $vars[] = 'precision';
-        }
-        return $vars;
-    }
-
-    /**
-     *  __wakeup() magic method
-     *
-     * Will be called, automatically, when unserialize() is called on a BigInteger object.
-     *
-     * @see self::__sleep()
-     * @access public
-     */
-    function __wakeup()
-    {
-        $temp = new static($this->hex, -16);
-        $this->value = $temp->value;
-        $this->is_negative = $temp->is_negative;
-        if ($this->precision > 0) {
-            // recalculate $this->bitmask
-            $this->setPrecision($this->precision);
-        }
-    }
-
-    /**
-     *  __debugInfo() magic method
-     *
-     * Will be called, automatically, when print_r() or var_dump() are called
-     *
-     * @access public
-     */
-    function __debugInfo()
-    {
-        $opts = array();
-        switch (MATH_BIGINTEGER_MODE) {
-            case self::MODE_GMP:
-                $engine = 'gmp';
-                break;
-            case self::MODE_BCMATH:
-                $engine = 'bcmath';
-                break;
-            case self::MODE_INTERNAL:
-                $engine = 'internal';
-                $opts[] = PHP_INT_SIZE == 8 ? '64-bit' : '32-bit';
-        }
-        if (MATH_BIGINTEGER_MODE != self::MODE_GMP && defined('MATH_BIGINTEGER_OPENSSL_ENABLED')) {
-            $opts[] = 'OpenSSL';
-        }
-        if (!empty($opts)) {
-            $engine.= ' (' . implode($opts, ', ') . ')';
-        }
-        return array(
-            'value' => '0x' . $this->toHex(true),
-            'engine' => $engine
-        );
-    }
-
-    /**
-     * Adds two BigIntegers.
-     *
-     * Here's an example:
-     * <code>
-     * <?php
-     *    $a = new \phpseclib\Math\BigInteger('10');
-     *    $b = new \phpseclib\Math\BigInteger('20');
-     *
-     *    $c = $a->add($b);
-     *
-     *    echo $c->toString(); // outputs 30
-     * ?>
-     * </code>
-     *
-     * @param \phpseclib\Math\BigInteger $y
-     * @return \phpseclib\Math\BigInteger
-     * @access public
-     * @internal Performs base-2**52 addition
-     */
-    function add($y)
-    {
-        switch (MATH_BIGINTEGER_MODE) {
-            case self::MODE_GMP:
-                $temp = new static();
-                $temp->value = gmp_add($this->value, $y->value);
-
-                return $this->_normalize($temp);
-            case self::MODE_BCMATH:
-                $temp = new static();
-                $temp->value = bcadd($this->value, $y->value, 0);
-
-                return $this->_normalize($temp);
-        }
-
-        $temp = $this->_add($this->value, $this->is_negative, $y->value, $y->is_negative);
-
-        $result = new static();
-        $result->value = $temp[self::VALUE];
-        $result->is_negative = $temp[self::SIGN];
-
-        return $this->_normalize($result);
-    }
-
-    /**
-     * Performs addition.
-     *
-     * @param array $x_value
-     * @param bool $x_negative
-     * @param array $y_value
-     * @param bool $y_negative
-     * @return array
-     * @access private
-     */
-    function _add($x_value, $x_negative, $y_value, $y_negative)
-    {
-        $x_size = count($x_value);
-        $y_size = count($y_value);
-
-        if ($x_size == 0) {
-            return array(
-                self::VALUE => $y_value,
-                self::SIGN => $y_negative
-            );
-        } elseif ($y_size == 0) {
-            return array(
-                self::VALUE => $x_value,
-                self::SIGN => $x_negative
-            );
-        }
-
-        // subtract, if appropriate
-        if ($x_negative != $y_negative) {
-            if ($x_value == $y_value) {
-                return array(
-                    self::VALUE => array(),
-                    self::SIGN => false
-                );
-            }
-
-            $temp = $this->_subtract($x_value, false, $y_value, false);
-            $temp[self::SIGN] = $this->_compare($x_value, false, $y_value, false) > 0 ?
-                                          $x_negative : $y_negative;
-
-            return $temp;
-        }
-
-        if ($x_size < $y_size) {
-            $size = $x_size;
-            $value = $y_value;
-        } else {
-            $size = $y_size;
-            $value = $x_value;
-        }
-
-        $value[count($value)] = 0; // just in case the carry adds an extra digit
-
-        $carry = 0;
-        for ($i = 0, $j = 1; $j < $size; $i+=2, $j+=2) {
-            $sum = $x_value[$j] * self::$baseFull + $x_value[$i] + $y_value[$j] * self::$baseFull + $y_value[$i] + $carry;
-            $carry = $sum >= self::$maxDigit2; // eg. floor($sum / 2**52); only possible values (in any base) are 0 and 1
-            $sum = $carry ? $sum - self::$maxDigit2 : $sum;
-
-            $temp = self::$base === 26 ? intval($sum / 0x4000000) : ($sum >> 31);
-
-            $value[$i] = (int) ($sum - self::$baseFull * $temp); // eg. a faster alternative to fmod($sum, 0x4000000)
-            $value[$j] = $temp;
-        }
-
-        if ($j == $size) { // ie. if $y_size is odd
-            $sum = $x_value[$i] + $y_value[$i] + $carry;
-            $carry = $sum >= self::$baseFull;
-            $value[$i] = $carry ? $sum - self::$baseFull : $sum;
-            ++$i; // ie. let $i = $j since we've just done $value[$i]
-        }
-
-        if ($carry) {
-            for (; $value[$i] == self::$maxDigit; ++$i) {
-                $value[$i] = 0;
-            }
-            ++$value[$i];
-        }
-
-        return array(
-            self::VALUE => $this->_trim($value),
-            self::SIGN => $x_negative
-        );
-    }
-
-    /**
-     * Subtracts two BigIntegers.
-     *
-     * Here's an example:
-     * <code>
-     * <?php
-     *    $a = new \phpseclib\Math\BigInteger('10');
-     *    $b = new \phpseclib\Math\BigInteger('20');
-     *
-     *    $c = $a->subtract($b);
-     *
-     *    echo $c->toString(); // outputs -10
-     * ?>
-     * </code>
-     *
-     * @param \phpseclib\Math\BigInteger $y
-     * @return \phpseclib\Math\BigInteger
-     * @access public
-     * @internal Performs base-2**52 subtraction
-     */
-    function subtract($y)
-    {
-        switch (MATH_BIGINTEGER_MODE) {
-            case self::MODE_GMP:
-                $temp = new static();
-                $temp->value = gmp_sub($this->value, $y->value);
-
-                return $this->_normalize($temp);
-            case self::MODE_BCMATH:
-                $temp = new static();
-                $temp->value = bcsub($this->value, $y->value, 0);
-
-                return $this->_normalize($temp);
-        }
-
-        $temp = $this->_subtract($this->value, $this->is_negative, $y->value, $y->is_negative);
-
-        $result = new static();
-        $result->value = $temp[self::VALUE];
-        $result->is_negative = $temp[self::SIGN];
-
-        return $this->_normalize($result);
-    }
-
-    /**
-     * Performs subtraction.
-     *
-     * @param array $x_value
-     * @param bool $x_negative
-     * @param array $y_value
-     * @param bool $y_negative
-     * @return array
-     * @access private
-     */
-    function _subtract($x_value, $x_negative, $y_value, $y_negative)
-    {
-        $x_size = count($x_value);
-        $y_size = count($y_value);
-
-        if ($x_size == 0) {
-            return array(
-                self::VALUE => $y_value,
-                self::SIGN => !$y_negative
-            );
-        } elseif ($y_size == 0) {
-            return array(
-                self::VALUE => $x_value,
-                self::SIGN => $x_negative
-            );
-        }
-
-        // add, if appropriate (ie. -$x - +$y or +$x - -$y)
-        if ($x_negative != $y_negative) {
-            $temp = $this->_add($x_value, false, $y_value, false);
-            $temp[self::SIGN] = $x_negative;
-
-            return $temp;
-        }
-
-        $diff = $this->_compare($x_value, $x_negative, $y_value, $y_negative);
-
-        if (!$diff) {
-            return array(
-                self::VALUE => array(),
-                self::SIGN => false
-            );
-        }
-
-        // switch $x and $y around, if appropriate.
-        if ((!$x_negative && $diff < 0) || ($x_negative && $diff > 0)) {
-            $temp = $x_value;
-            $x_value = $y_value;
-            $y_value = $temp;
-
-            $x_negative = !$x_negative;
-
-            $x_size = count($x_value);
-            $y_size = count($y_value);
-        }
-
-        // at this point, $x_value should be at least as big as - if not bigger than - $y_value
-
-        $carry = 0;
-        for ($i = 0, $j = 1; $j < $y_size; $i+=2, $j+=2) {
-            $sum = $x_value[$j] * self::$baseFull + $x_value[$i] - $y_value[$j] * self::$baseFull - $y_value[$i] - $carry;
-            $carry = $sum < 0; // eg. floor($sum / 2**52); only possible values (in any base) are 0 and 1
-            $sum = $carry ? $sum + self::$maxDigit2 : $sum;
-
-            $temp = self::$base === 26 ? intval($sum / 0x4000000) : ($sum >> 31);
-
-            $x_value[$i] = (int) ($sum - self::$baseFull * $temp);
-            $x_value[$j] = $temp;
-        }
-
-        if ($j == $y_size) { // ie. if $y_size is odd
-            $sum = $x_value[$i] - $y_value[$i] - $carry;
-            $carry = $sum < 0;
-            $x_value[$i] = $carry ? $sum + self::$baseFull : $sum;
-            ++$i;
-        }
-
-        if ($carry) {
-            for (; !$x_value[$i]; ++$i) {
-                $x_value[$i] = self::$maxDigit;
-            }
-            --$x_value[$i];
-        }
-
-        return array(
-            self::VALUE => $this->_trim($x_value),
-            self::SIGN => $x_negative
-        );
-    }
-
-    /**
-     * Multiplies two BigIntegers
-     *
-     * Here's an example:
-     * <code>
-     * <?php
-     *    $a = new \phpseclib\Math\BigInteger('10');
-     *    $b = new \phpseclib\Math\BigInteger('20');
-     *
-     *    $c = $a->multiply($b);
-     *
-     *    echo $c->toString(); // outputs 200
-     * ?>
-     * </code>
-     *
-     * @param \phpseclib\Math\BigInteger $x
-     * @return \phpseclib\Math\BigInteger
-     * @access public
-     */
-    function multiply($x)
-    {
-        switch (MATH_BIGINTEGER_MODE) {
-            case self::MODE_GMP:
-                $temp = new static();
-                $temp->value = gmp_mul($this->value, $x->value);
-
-                return $this->_normalize($temp);
-            case self::MODE_BCMATH:
-                $temp = new static();
-                $temp->value = bcmul($this->value, $x->value, 0);
-
-                return $this->_normalize($temp);
-        }
-
-        $temp = $this->_multiply($this->value, $this->is_negative, $x->value, $x->is_negative);
-
-        $product = new static();
-        $product->value = $temp[self::VALUE];
-        $product->is_negative = $temp[self::SIGN];
-
-        return $this->_normalize($product);
-    }
-
-    /**
-     * Performs multiplication.
-     *
-     * @param array $x_value
-     * @param bool $x_negative
-     * @param array $y_value
-     * @param bool $y_negative
-     * @return array
-     * @access private
-     */
-    function _multiply($x_value, $x_negative, $y_value, $y_negative)
-    {
-        //if ( $x_value == $y_value ) {
-        //    return array(
-        //        self::VALUE => $this->_square($x_value),
-        //        self::SIGN => $x_sign != $y_value
-        //    );
-        //}
-
-        $x_length = count($x_value);
-        $y_length = count($y_value);
-
-        if (!$x_length || !$y_length) { // a 0 is being multiplied
-            return array(
-                self::VALUE => array(),
-                self::SIGN => false
-            );
-        }
-
-        return array(
-            self::VALUE => min($x_length, $y_length) < 2 * self::KARATSUBA_CUTOFF ?
-                $this->_trim($this->_regularMultiply($x_value, $y_value)) :
-                $this->_trim($this->_karatsuba($x_value, $y_value)),
-            self::SIGN => $x_negative != $y_negative
-        );
-    }
-
-    /**
-     * Performs long multiplication on two BigIntegers
-     *
-     * Modeled after 'multiply' in MutableBigInteger.java.
-     *
-     * @param array $x_value
-     * @param array $y_value
-     * @return array
-     * @access private
-     */
-    function _regularMultiply($x_value, $y_value)
-    {
-        $x_length = count($x_value);
-        $y_length = count($y_value);
-
-        if (!$x_length || !$y_length) { // a 0 is being multiplied
-            return array();
-        }
-
-        if ($x_length < $y_length) {
-            $temp = $x_value;
-            $x_value = $y_value;
-            $y_value = $temp;
-
-            $x_length = count($x_value);
-            $y_length = count($y_value);
-        }
-
-        $product_value = $this->_array_repeat(0, $x_length + $y_length);
-
-        // the following for loop could be removed if the for loop following it
-        // (the one with nested for loops) initially set $i to 0, but
-        // doing so would also make the result in one set of unnecessary adds,
-        // since on the outermost loops first pass, $product->value[$k] is going
-        // to always be 0
-
-        $carry = 0;
-
-        for ($j = 0; $j < $x_length; ++$j) { // ie. $i = 0
-            $temp = $x_value[$j] * $y_value[0] + $carry; // $product_value[$k] == 0
-            $carry = self::$base === 26 ? intval($temp / 0x4000000) : ($temp >> 31);
-            $product_value[$j] = (int) ($temp - self::$baseFull * $carry);
-        }
-
-        $product_value[$j] = $carry;
-
-        // the above for loop is what the previous comment was talking about.  the
-        // following for loop is the "one with nested for loops"
-        for ($i = 1; $i < $y_length; ++$i) {
-            $carry = 0;
-
-            for ($j = 0, $k = $i; $j < $x_length; ++$j, ++$k) {
-                $temp = $product_value[$k] + $x_value[$j] * $y_value[$i] + $carry;
-                $carry = self::$base === 26 ? intval($temp / 0x4000000) : ($temp >> 31);
-                $product_value[$k] = (int) ($temp - self::$baseFull * $carry);
-            }
-
-            $product_value[$k] = $carry;
-        }
-
-        return $product_value;
-    }
-
-    /**
-     * Performs Karatsuba multiplication on two BigIntegers
-     *
-     * See {@link http://en.wikipedia.org/wiki/Karatsuba_algorithm Karatsuba algorithm} and
-     * {@link http://math.libtomcrypt.com/files/tommath.pdf#page=120 MPM 5.2.3}.
-     *
-     * @param array $x_value
-     * @param array $y_value
-     * @return array
-     * @access private
-     */
-    function _karatsuba($x_value, $y_value)
-    {
-        $m = min(count($x_value) >> 1, count($y_value) >> 1);
-
-        if ($m < self::KARATSUBA_CUTOFF) {
-            return $this->_regularMultiply($x_value, $y_value);
-        }
-
-        $x1 = array_slice($x_value, $m);
-        $x0 = array_slice($x_value, 0, $m);
-        $y1 = array_slice($y_value, $m);
-        $y0 = array_slice($y_value, 0, $m);
-
-        $z2 = $this->_karatsuba($x1, $y1);
-        $z0 = $this->_karatsuba($x0, $y0);
-
-        $z1 = $this->_add($x1, false, $x0, false);
-        $temp = $this->_add($y1, false, $y0, false);
-        $z1 = $this->_karatsuba($z1[self::VALUE], $temp[self::VALUE]);
-        $temp = $this->_add($z2, false, $z0, false);
-        $z1 = $this->_subtract($z1, false, $temp[self::VALUE], false);
-
-        $z2 = array_merge(array_fill(0, 2 * $m, 0), $z2);
-        $z1[self::VALUE] = array_merge(array_fill(0, $m, 0), $z1[self::VALUE]);
-
-        $xy = $this->_add($z2, false, $z1[self::VALUE], $z1[self::SIGN]);
-        $xy = $this->_add($xy[self::VALUE], $xy[self::SIGN], $z0, false);
-
-        return $xy[self::VALUE];
-    }
-
-    /**
-     * Performs squaring
-     *
-     * @param array $x
-     * @return array
-     * @access private
-     */
-    function _square($x = false)
-    {
-        return count($x) < 2 * self::KARATSUBA_CUTOFF ?
-            $this->_trim($this->_baseSquare($x)) :
-            $this->_trim($this->_karatsubaSquare($x));
-    }
-
-    /**
-     * Performs traditional squaring on two BigIntegers
-     *
-     * Squaring can be done faster than multiplying a number by itself can be.  See
-     * {@link http://www.cacr.math.uwaterloo.ca/hac/about/chap14.pdf#page=7 HAC 14.2.4} /
-     * {@link http://math.libtomcrypt.com/files/tommath.pdf#page=141 MPM 5.3} for more information.
-     *
-     * @param array $value
-     * @return array
-     * @access private
-     */
-    function _baseSquare($value)
-    {
-        if (empty($value)) {
-            return array();
-        }
-        $square_value = $this->_array_repeat(0, 2 * count($value));
-
-        for ($i = 0, $max_index = count($value) - 1; $i <= $max_index; ++$i) {
-            $i2 = $i << 1;
-
-            $temp = $square_value[$i2] + $value[$i] * $value[$i];
-            $carry = self::$base === 26 ? intval($temp / 0x4000000) : ($temp >> 31);
-            $square_value[$i2] = (int) ($temp - self::$baseFull * $carry);
-
-            // note how we start from $i+1 instead of 0 as we do in multiplication.
-            for ($j = $i + 1, $k = $i2 + 1; $j <= $max_index; ++$j, ++$k) {
-                $temp = $square_value[$k] + 2 * $value[$j] * $value[$i] + $carry;
-                $carry = self::$base === 26 ? intval($temp / 0x4000000) : ($temp >> 31);
-                $square_value[$k] = (int) ($temp - self::$baseFull * $carry);
-            }
-
-            // the following line can yield values larger 2**15.  at this point, PHP should switch
-            // over to floats.
-            $square_value[$i + $max_index + 1] = $carry;
-        }
-
-        return $square_value;
-    }
-
-    /**
-     * Performs Karatsuba "squaring" on two BigIntegers
-     *
-     * See {@link http://en.wikipedia.org/wiki/Karatsuba_algorithm Karatsuba algorithm} and
-     * {@link http://math.libtomcrypt.com/files/tommath.pdf#page=151 MPM 5.3.4}.
-     *
-     * @param array $value
-     * @return array
-     * @access private
-     */
-    function _karatsubaSquare($value)
-    {
-        $m = count($value) >> 1;
-
-        if ($m < self::KARATSUBA_CUTOFF) {
-            return $this->_baseSquare($value);
-        }
-
-        $x1 = array_slice($value, $m);
-        $x0 = array_slice($value, 0, $m);
-
-        $z2 = $this->_karatsubaSquare($x1);
-        $z0 = $this->_karatsubaSquare($x0);
-
-        $z1 = $this->_add($x1, false, $x0, false);
-        $z1 = $this->_karatsubaSquare($z1[self::VALUE]);
-        $temp = $this->_add($z2, false, $z0, false);
-        $z1 = $this->_subtract($z1, false, $temp[self::VALUE], false);
-
-        $z2 = array_merge(array_fill(0, 2 * $m, 0), $z2);
-        $z1[self::VALUE] = array_merge(array_fill(0, $m, 0), $z1[self::VALUE]);
-
-        $xx = $this->_add($z2, false, $z1[self::VALUE], $z1[self::SIGN]);
-        $xx = $this->_add($xx[self::VALUE], $xx[self::SIGN], $z0, false);
-
-        return $xx[self::VALUE];
-    }
-
-    /**
-     * Divides two BigIntegers.
-     *
-     * Returns an array whose first element contains the quotient and whose second element contains the
-     * "common residue".  If the remainder would be positive, the "common residue" and the remainder are the
-     * same.  If the remainder would be negative, the "common residue" is equal to the sum of the remainder
-     * and the divisor (basically, the "common residue" is the first positive modulo).
-     *
-     * Here's an example:
-     * <code>
-     * <?php
-     *    $a = new \phpseclib\Math\BigInteger('10');
-     *    $b = new \phpseclib\Math\BigInteger('20');
-     *
-     *    list($quotient, $remainder) = $a->divide($b);
-     *
-     *    echo $quotient->toString(); // outputs 0
-     *    echo "\r\n";
-     *    echo $remainder->toString(); // outputs 10
-     * ?>
-     * </code>
-     *
-     * @param \phpseclib\Math\BigInteger $y
-     * @return array
-     * @access public
-     * @internal This function is based off of {@link http://www.cacr.math.uwaterloo.ca/hac/about/chap14.pdf#page=9 HAC 14.20}.
-     */
-    function divide($y)
-    {
-        switch (MATH_BIGINTEGER_MODE) {
-            case self::MODE_GMP:
-                $quotient = new static();
-                $remainder = new static();
-
-                list($quotient->value, $remainder->value) = gmp_div_qr($this->value, $y->value);
-
-                if (gmp_sign($remainder->value) < 0) {
-                    $remainder->value = gmp_add($remainder->value, gmp_abs($y->value));
-                }
-
-                return array($this->_normalize($quotient), $this->_normalize($remainder));
-            case self::MODE_BCMATH:
-                $quotient = new static();
-                $remainder = new static();
-
-                $quotient->value = bcdiv($this->value, $y->value, 0);
-                $remainder->value = bcmod($this->value, $y->value);
-
-                if ($remainder->value[0] == '-') {
-                    $remainder->value = bcadd($remainder->value, $y->value[0] == '-' ? substr($y->value, 1) : $y->value, 0);
-                }
-
-                return array($this->_normalize($quotient), $this->_normalize($remainder));
-        }
-
-        if (count($y->value) == 1) {
-            list($q, $r) = $this->_divide_digit($this->value, $y->value[0]);
-            $quotient = new static();
-            $remainder = new static();
-            $quotient->value = $q;
-            $remainder->value = array($r);
-            $quotient->is_negative = $this->is_negative != $y->is_negative;
-            return array($this->_normalize($quotient), $this->_normalize($remainder));
-        }
-
-        static $zero;
-        if (!isset($zero)) {
-            $zero = new static();
-        }
-
-        $x = $this->copy();
-        $y = $y->copy();
-
-        $x_sign = $x->is_negative;
-        $y_sign = $y->is_negative;
-
-        $x->is_negative = $y->is_negative = false;
-
-        $diff = $x->compare($y);
-
-        if (!$diff) {
-            $temp = new static();
-            $temp->value = array(1);
-            $temp->is_negative = $x_sign != $y_sign;
-            return array($this->_normalize($temp), $this->_normalize(new static()));
-        }
-
-        if ($diff < 0) {
-            // if $x is negative, "add" $y.
-            if ($x_sign) {
-                $x = $y->subtract($x);
-            }
-            return array($this->_normalize(new static()), $this->_normalize($x));
-        }
-
-        // normalize $x and $y as described in HAC 14.23 / 14.24
-        $msb = $y->value[count($y->value) - 1];
-        for ($shift = 0; !($msb & self::$msb); ++$shift) {
-            $msb <<= 1;
-        }
-        $x->_lshift($shift);
-        $y->_lshift($shift);
-        $y_value = &$y->value;
-
-        $x_max = count($x->value) - 1;
-        $y_max = count($y->value) - 1;
-
-        $quotient = new static();
-        $quotient_value = &$quotient->value;
-        $quotient_value = $this->_array_repeat(0, $x_max - $y_max + 1);
-
-        static $temp, $lhs, $rhs;
-        if (!isset($temp)) {
-            $temp = new static();
-            $lhs =  new static();
-            $rhs =  new static();
-        }
-        $temp_value = &$temp->value;
-        $rhs_value =  &$rhs->value;
-
-        // $temp = $y << ($x_max - $y_max-1) in base 2**26
-        $temp_value = array_merge($this->_array_repeat(0, $x_max - $y_max), $y_value);
-
-        while ($x->compare($temp) >= 0) {
-            // calculate the "common residue"
-            ++$quotient_value[$x_max - $y_max];
-            $x = $x->subtract($temp);
-            $x_max = count($x->value) - 1;
-        }
-
-        for ($i = $x_max; $i >= $y_max + 1; --$i) {
-            $x_value = &$x->value;
-            $x_window = array(
-                isset($x_value[$i]) ? $x_value[$i] : 0,
-                isset($x_value[$i - 1]) ? $x_value[$i - 1] : 0,
-                isset($x_value[$i - 2]) ? $x_value[$i - 2] : 0
-            );
-            $y_window = array(
-                $y_value[$y_max],
-                ($y_max > 0) ? $y_value[$y_max - 1] : 0
-            );
-
-            $q_index = $i - $y_max - 1;
-            if ($x_window[0] == $y_window[0]) {
-                $quotient_value[$q_index] = self::$maxDigit;
-            } else {
-                $quotient_value[$q_index] = $this->_safe_divide(
-                    $x_window[0] * self::$baseFull + $x_window[1],
-                    $y_window[0]
-                );
-            }
-
-            $temp_value = array($y_window[1], $y_window[0]);
-
-            $lhs->value = array($quotient_value[$q_index]);
-            $lhs = $lhs->multiply($temp);
-
-            $rhs_value = array($x_window[2], $x_window[1], $x_window[0]);
-
-            while ($lhs->compare($rhs) > 0) {
-                --$quotient_value[$q_index];
-
-                $lhs->value = array($quotient_value[$q_index]);
-                $lhs = $lhs->multiply($temp);
-            }
-
-            $adjust = $this->_array_repeat(0, $q_index);
-            $temp_value = array($quotient_value[$q_index]);
-            $temp = $temp->multiply($y);
-            $temp_value = &$temp->value;
-            $temp_value = array_merge($adjust, $temp_value);
-
-            $x = $x->subtract($temp);
-
-            if ($x->compare($zero) < 0) {
-                $temp_value = array_merge($adjust, $y_value);
-                $x = $x->add($temp);
-
-                --$quotient_value[$q_index];
-            }
-
-            $x_max = count($x_value) - 1;
-        }
-
-        // unnormalize the remainder
-        $x->_rshift($shift);
-
-        $quotient->is_negative = $x_sign != $y_sign;
-
-        // calculate the "common residue", if appropriate
-        if ($x_sign) {
-            $y->_rshift($shift);
-            $x = $y->subtract($x);
-        }
-
-        return array($this->_normalize($quotient), $this->_normalize($x));
-    }
-
-    /**
-     * Divides a BigInteger by a regular integer
-     *
-     * abc / x = a00 / x + b0 / x + c / x
-     *
-     * @param array $dividend
-     * @param array $divisor
-     * @return array
-     * @access private
-     */
-    function _divide_digit($dividend, $divisor)
-    {
-        $carry = 0;
-        $result = array();
-
-        for ($i = count($dividend) - 1; $i >= 0; --$i) {
-            $temp = self::$baseFull * $carry + $dividend[$i];
-            $result[$i] = $this->_safe_divide($temp, $divisor);
-            $carry = (int) ($temp - $divisor * $result[$i]);
-        }
-
-        return array($result, $carry);
-    }
-
-    /**
-     * Performs modular exponentiation.
-     *
-     * Here's an example:
-     * <code>
-     * <?php
-     *    $a = new \phpseclib\Math\BigInteger('10');
-     *    $b = new \phpseclib\Math\BigInteger('20');
-     *    $c = new \phpseclib\Math\BigInteger('30');
-     *
-     *    $c = $a->modPow($b, $c);
-     *
-     *    echo $c->toString(); // outputs 10
-     * ?>
-     * </code>
-     *
-     * @param \phpseclib\Math\BigInteger $e
-     * @param \phpseclib\Math\BigInteger $n
-     * @return \phpseclib\Math\BigInteger
-     * @access public
-     * @internal The most naive approach to modular exponentiation has very unreasonable requirements, and
-     *    and although the approach involving repeated squaring does vastly better, it, too, is impractical
-     *    for our purposes.  The reason being that division - by far the most complicated and time-consuming
-     *    of the basic operations (eg. +,-,*,/) - occurs multiple times within it.
-     *
-     *    Modular reductions resolve this issue.  Although an individual modular reduction takes more time
-     *    then an individual division, when performed in succession (with the same modulo), they're a lot faster.
-     *
-     *    The two most commonly used modular reductions are Barrett and Montgomery reduction.  Montgomery reduction,
-     *    although faster, only works when the gcd of the modulo and of the base being used is 1.  In RSA, when the
-     *    base is a power of two, the modulo - a product of two primes - is always going to have a gcd of 1 (because
-     *    the product of two odd numbers is odd), but what about when RSA isn't used?
-     *
-     *    In contrast, Barrett reduction has no such constraint.  As such, some bigint implementations perform a
-     *    Barrett reduction after every operation in the modpow function.  Others perform Barrett reductions when the
-     *    modulo is even and Montgomery reductions when the modulo is odd.  BigInteger.java's modPow method, however,
-     *    uses a trick involving the Chinese Remainder Theorem to factor the even modulo into two numbers - one odd and
-     *    the other, a power of two - and recombine them, later.  This is the method that this modPow function uses.
-     *    {@link http://islab.oregonstate.edu/papers/j34monex.pdf Montgomery Reduction with Even Modulus} elaborates.
-     */
-    function modPow($e, $n)
-    {
-        $n = $this->bitmask !== false && $this->bitmask->compare($n) < 0 ? $this->bitmask : $n->abs();
-
-        if ($e->compare(new static()) < 0) {
-            $e = $e->abs();
-
-            $temp = $this->modInverse($n);
-            if ($temp === false) {
-                return false;
-            }
-
-            return $this->_normalize($temp->modPow($e, $n));
-        }
-
-        if (MATH_BIGINTEGER_MODE == self::MODE_GMP) {
-            $temp = new static();
-            $temp->value = gmp_powm($this->value, $e->value, $n->value);
-
-            return $this->_normalize($temp);
-        }
-
-        if ($this->compare(new static()) < 0 || $this->compare($n) > 0) {
-            list(, $temp) = $this->divide($n);
-            return $temp->modPow($e, $n);
-        }
-
-        if (defined('MATH_BIGINTEGER_OPENSSL_ENABLED')) {
-            $components = array(
-                'modulus' => $n->toBytes(true),
-                'publicExponent' => $e->toBytes(true)
-            );
-
-            $components = array(
-                'modulus' => pack('Ca*a*', 2, $this->_encodeASN1Length(strlen($components['modulus'])), $components['modulus']),
-                'publicExponent' => pack('Ca*a*', 2, $this->_encodeASN1Length(strlen($components['publicExponent'])), $components['publicExponent'])
-            );
-
-            $RSAPublicKey = pack(
-                'Ca*a*a*',
-                48,
-                $this->_encodeASN1Length(strlen($components['modulus']) + strlen($components['publicExponent'])),
-                $components['modulus'],
-                $components['publicExponent']
-            );
-
-            $rsaOID = pack('H*', '300d06092a864886f70d0101010500'); // hex version of MA0GCSqGSIb3DQEBAQUA
-            $RSAPublicKey = chr(0) . $RSAPublicKey;
-            $RSAPublicKey = chr(3) . $this->_encodeASN1Length(strlen($RSAPublicKey)) . $RSAPublicKey;
-
-            $encapsulated = pack(
-                'Ca*a*',
-                48,
-                $this->_encodeASN1Length(strlen($rsaOID . $RSAPublicKey)),
-                $rsaOID . $RSAPublicKey
-            );
-
-            $RSAPublicKey = "-----BEGIN PUBLIC KEY-----\r\n" .
-                             chunk_split(base64_encode($encapsulated)) .
-                             '-----END PUBLIC KEY-----';
-
-            $plaintext = str_pad($this->toBytes(), strlen($n->toBytes(true)) - 1, "\0", STR_PAD_LEFT);
-
-            if (openssl_public_encrypt($plaintext, $result, $RSAPublicKey, OPENSSL_NO_PADDING)) {
-                return new static($result, 256);
-            }
-        }
-
-        if (MATH_BIGINTEGER_MODE == self::MODE_BCMATH) {
-            $temp = new static();
-            $temp->value = bcpowmod($this->value, $e->value, $n->value, 0);
-
-            return $this->_normalize($temp);
-        }
-
-        if (empty($e->value)) {
-            $temp = new static();
-            $temp->value = array(1);
-            return $this->_normalize($temp);
-        }
-
-        if ($e->value == array(1)) {
-            list(, $temp) = $this->divide($n);
-            return $this->_normalize($temp);
-        }
-
-        if ($e->value == array(2)) {
-            $temp = new static();
-            $temp->value = $this->_square($this->value);
-            list(, $temp) = $temp->divide($n);
-            return $this->_normalize($temp);
-        }
-
-        return $this->_normalize($this->_slidingWindow($e, $n, self::BARRETT));
-
-        // the following code, although not callable, can be run independently of the above code
-        // although the above code performed better in my benchmarks the following could might
-        // perform better under different circumstances. in lieu of deleting it it's just been
-        // made uncallable
-
-        // is the modulo odd?
-        if ($n->value[0] & 1) {
-            return $this->_normalize($this->_slidingWindow($e, $n, self::MONTGOMERY));
-        }
-        // if it's not, it's even
-
-        // find the lowest set bit (eg. the max pow of 2 that divides $n)
-        for ($i = 0; $i < count($n->value); ++$i) {
-            if ($n->value[$i]) {
-                $temp = decbin($n->value[$i]);
-                $j = strlen($temp) - strrpos($temp, '1') - 1;
-                $j+= 26 * $i;
-                break;
-            }
-        }
-        // at this point, 2^$j * $n/(2^$j) == $n
-
-        $mod1 = $n->copy();
-        $mod1->_rshift($j);
-        $mod2 = new static();
-        $mod2->value = array(1);
-        $mod2->_lshift($j);
-
-        $part1 = ($mod1->value != array(1)) ? $this->_slidingWindow($e, $mod1, self::MONTGOMERY) : new static();
-        $part2 = $this->_slidingWindow($e, $mod2, self::POWEROF2);
-
-        $y1 = $mod2->modInverse($mod1);
-        $y2 = $mod1->modInverse($mod2);
-
-        $result = $part1->multiply($mod2);
-        $result = $result->multiply($y1);
-
-        $temp = $part2->multiply($mod1);
-        $temp = $temp->multiply($y2);
-
-        $result = $result->add($temp);
-        list(, $result) = $result->divide($n);
-
-        return $this->_normalize($result);
-    }
-
-    /**
-     * Performs modular exponentiation.
-     *
-     * Alias for modPow().
-     *
-     * @param \phpseclib\Math\BigInteger $e
-     * @param \phpseclib\Math\BigInteger $n
-     * @return \phpseclib\Math\BigInteger
-     * @access public
-     */
-    function powMod($e, $n)
-    {
-        return $this->modPow($e, $n);
-    }
-
-    /**
-     * Sliding Window k-ary Modular Exponentiation
-     *
-     * Based on {@link http://www.cacr.math.uwaterloo.ca/hac/about/chap14.pdf#page=27 HAC 14.85} /
-     * {@link http://math.libtomcrypt.com/files/tommath.pdf#page=210 MPM 7.7}.  In a departure from those algorithims,
-     * however, this function performs a modular reduction after every multiplication and squaring operation.
-     * As such, this function has the same preconditions that the reductions being used do.
-     *
-     * @param \phpseclib\Math\BigInteger $e
-     * @param \phpseclib\Math\BigInteger $n
-     * @param int $mode
-     * @return \phpseclib\Math\BigInteger
-     * @access private
-     */
-    function _slidingWindow($e, $n, $mode)
-    {
-        static $window_ranges = array(7, 25, 81, 241, 673, 1793); // from BigInteger.java's oddModPow function
-        //static $window_ranges = array(0, 7, 36, 140, 450, 1303, 3529); // from MPM 7.3.1
-
-        $e_value = $e->value;
-        $e_length = count($e_value) - 1;
-        $e_bits = decbin($e_value[$e_length]);
-        for ($i = $e_length - 1; $i >= 0; --$i) {
-            $e_bits.= str_pad(decbin($e_value[$i]), self::$base, '0', STR_PAD_LEFT);
-        }
-
-        $e_length = strlen($e_bits);
-
-        // calculate the appropriate window size.
-        // $window_size == 3 if $window_ranges is between 25 and 81, for example.
-        for ($i = 0, $window_size = 1; $i < count($window_ranges) && $e_length > $window_ranges[$i]; ++$window_size, ++$i) {
-        }
-
-        $n_value = $n->value;
-
-        // precompute $this^0 through $this^$window_size
-        $powers = array();
-        $powers[1] = $this->_prepareReduce($this->value, $n_value, $mode);
-        $powers[2] = $this->_squareReduce($powers[1], $n_value, $mode);
-
-        // we do every other number since substr($e_bits, $i, $j+1) (see below) is supposed to end
-        // in a 1.  ie. it's supposed to be odd.
-        $temp = 1 << ($window_size - 1);
-        for ($i = 1; $i < $temp; ++$i) {
-            $i2 = $i << 1;
-            $powers[$i2 + 1] = $this->_multiplyReduce($powers[$i2 - 1], $powers[2], $n_value, $mode);
-        }
-
-        $result = array(1);
-        $result = $this->_prepareReduce($result, $n_value, $mode);
-
-        for ($i = 0; $i < $e_length;) {
-            if (!$e_bits[$i]) {
-                $result = $this->_squareReduce($result, $n_value, $mode);
-                ++$i;
-            } else {
-                for ($j = $window_size - 1; $j > 0; --$j) {
-                    if (!empty($e_bits[$i + $j])) {
-                        break;
-                    }
-                }
-
-                // eg. the length of substr($e_bits, $i, $j + 1)
-                for ($k = 0; $k <= $j; ++$k) {
-                    $result = $this->_squareReduce($result, $n_value, $mode);
-                }
-
-                $result = $this->_multiplyReduce($result, $powers[bindec(substr($e_bits, $i, $j + 1))], $n_value, $mode);
-
-                $i += $j + 1;
-            }
-        }
-
-        $temp = new static();
-        $temp->value = $this->_reduce($result, $n_value, $mode);
-
-        return $temp;
-    }
-
-    /**
-     * Modular reduction
-     *
-     * For most $modes this will return the remainder.
-     *
-     * @see self::_slidingWindow()
-     * @access private
-     * @param array $x
-     * @param array $n
-     * @param int $mode
-     * @return array
-     */
-    function _reduce($x, $n, $mode)
-    {
-        switch ($mode) {
-            case self::MONTGOMERY:
-                return $this->_montgomery($x, $n);
-            case self::BARRETT:
-                return $this->_barrett($x, $n);
-            case self::POWEROF2:
-                $lhs = new static();
-                $lhs->value = $x;
-                $rhs = new static();
-                $rhs->value = $n;
-                return $x->_mod2($n);
-            case self::CLASSIC:
-                $lhs = new static();
-                $lhs->value = $x;
-                $rhs = new static();
-                $rhs->value = $n;
-                list(, $temp) = $lhs->divide($rhs);
-                return $temp->value;
-            case self::NONE:
-                return $x;
-            default:
-                // an invalid $mode was provided
-        }
-    }
-
-    /**
-     * Modular reduction preperation
-     *
-     * @see self::_slidingWindow()
-     * @access private
-     * @param array $x
-     * @param array $n
-     * @param int $mode
-     * @return array
-     */
-    function _prepareReduce($x, $n, $mode)
-    {
-        if ($mode == self::MONTGOMERY) {
-            return $this->_prepMontgomery($x, $n);
-        }
-        return $this->_reduce($x, $n, $mode);
-    }
-
-    /**
-     * Modular multiply
-     *
-     * @see self::_slidingWindow()
-     * @access private
-     * @param array $x
-     * @param array $y
-     * @param array $n
-     * @param int $mode
-     * @return array
-     */
-    function _multiplyReduce($x, $y, $n, $mode)
-    {
-        if ($mode == self::MONTGOMERY) {
-            return $this->_montgomeryMultiply($x, $y, $n);
-        }
-        $temp = $this->_multiply($x, false, $y, false);
-        return $this->_reduce($temp[self::VALUE], $n, $mode);
-    }
-
-    /**
-     * Modular square
-     *
-     * @see self::_slidingWindow()
-     * @access private
-     * @param array $x
-     * @param array $n
-     * @param int $mode
-     * @return array
-     */
-    function _squareReduce($x, $n, $mode)
-    {
-        if ($mode == self::MONTGOMERY) {
-            return $this->_montgomeryMultiply($x, $x, $n);
-        }
-        return $this->_reduce($this->_square($x), $n, $mode);
-    }
-
-    /**
-     * Modulos for Powers of Two
-     *
-     * Calculates $x%$n, where $n = 2**$e, for some $e.  Since this is basically the same as doing $x & ($n-1),
-     * we'll just use this function as a wrapper for doing that.
-     *
-     * @see self::_slidingWindow()
-     * @access private
-     * @param \phpseclib\Math\BigInteger
-     * @return \phpseclib\Math\BigInteger
-     */
-    function _mod2($n)
-    {
-        $temp = new static();
-        $temp->value = array(1);
-        return $this->bitwise_and($n->subtract($temp));
-    }
-
-    /**
-     * Barrett Modular Reduction
-     *
-     * See {@link http://www.cacr.math.uwaterloo.ca/hac/about/chap14.pdf#page=14 HAC 14.3.3} /
-     * {@link http://math.libtomcrypt.com/files/tommath.pdf#page=165 MPM 6.2.5} for more information.  Modified slightly,
-     * so as not to require negative numbers (initially, this script didn't support negative numbers).
-     *
-     * Employs "folding", as described at
-     * {@link http://www.cosic.esat.kuleuven.be/publications/thesis-149.pdf#page=66 thesis-149.pdf#page=66}.  To quote from
-     * it, "the idea [behind folding] is to find a value x' such that x (mod m) = x' (mod m), with x' being smaller than x."
-     *
-     * Unfortunately, the "Barrett Reduction with Folding" algorithm described in thesis-149.pdf is not, as written, all that
-     * usable on account of (1) its not using reasonable radix points as discussed in
-     * {@link http://math.libtomcrypt.com/files/tommath.pdf#page=162 MPM 6.2.2} and (2) the fact that, even with reasonable
-     * radix points, it only works when there are an even number of digits in the denominator.  The reason for (2) is that
-     * (x >> 1) + (x >> 1) != x / 2 + x / 2.  If x is even, they're the same, but if x is odd, they're not.  See the in-line
-     * comments for details.
-     *
-     * @see self::_slidingWindow()
-     * @access private
-     * @param array $n
-     * @param array $m
-     * @return array
-     */
-    function _barrett($n, $m)
-    {
-        static $cache = array(
-            self::VARIABLE => array(),
-            self::DATA => array()
-        );
-
-        $m_length = count($m);
-
-        // if ($this->_compare($n, $this->_square($m)) >= 0) {
-        if (count($n) > 2 * $m_length) {
-            $lhs = new static();
-            $rhs = new static();
-            $lhs->value = $n;
-            $rhs->value = $m;
-            list(, $temp) = $lhs->divide($rhs);
-            return $temp->value;
-        }
-
-        // if (m.length >> 1) + 2 <= m.length then m is too small and n can't be reduced
-        if ($m_length < 5) {
-            return $this->_regularBarrett($n, $m);
-        }
-
-        // n = 2 * m.length
-
-        if (($key = array_search($m, $cache[self::VARIABLE])) === false) {
-            $key = count($cache[self::VARIABLE]);
-            $cache[self::VARIABLE][] = $m;
-
-            $lhs = new static();
-            $lhs_value = &$lhs->value;
-            $lhs_value = $this->_array_repeat(0, $m_length + ($m_length >> 1));
-            $lhs_value[] = 1;
-            $rhs = new static();
-            $rhs->value = $m;
-
-            list($u, $m1) = $lhs->divide($rhs);
-            $u = $u->value;
-            $m1 = $m1->value;
-
-            $cache[self::DATA][] = array(
-                'u' => $u, // m.length >> 1 (technically (m.length >> 1) + 1)
-                'm1'=> $m1 // m.length
-            );
-        } else {
-            extract($cache[self::DATA][$key]);
-        }
-
-        $cutoff = $m_length + ($m_length >> 1);
-        $lsd = array_slice($n, 0, $cutoff); // m.length + (m.length >> 1)
-        $msd = array_slice($n, $cutoff);    // m.length >> 1
-        $lsd = $this->_trim($lsd);
-        $temp = $this->_multiply($msd, false, $m1, false);
-        $n = $this->_add($lsd, false, $temp[self::VALUE], false); // m.length + (m.length >> 1) + 1
-
-        if ($m_length & 1) {
-            return $this->_regularBarrett($n[self::VALUE], $m);
-        }
-
-        // (m.length + (m.length >> 1) + 1) - (m.length - 1) == (m.length >> 1) + 2
-        $temp = array_slice($n[self::VALUE], $m_length - 1);
-        // if even: ((m.length >> 1) + 2) + (m.length >> 1) == m.length + 2
-        // if odd:  ((m.length >> 1) + 2) + (m.length >> 1) == (m.length - 1) + 2 == m.length + 1
-        $temp = $this->_multiply($temp, false, $u, false);
-        // if even: (m.length + 2) - ((m.length >> 1) + 1) = m.length - (m.length >> 1) + 1
-        // if odd:  (m.length + 1) - ((m.length >> 1) + 1) = m.length - (m.length >> 1)
-        $temp = array_slice($temp[self::VALUE], ($m_length >> 1) + 1);
-        // if even: (m.length - (m.length >> 1) + 1) + m.length = 2 * m.length - (m.length >> 1) + 1
-        // if odd:  (m.length - (m.length >> 1)) + m.length     = 2 * m.length - (m.length >> 1)
-        $temp = $this->_multiply($temp, false, $m, false);
-
-        // at this point, if m had an odd number of digits, we'd be subtracting a 2 * m.length - (m.length >> 1) digit
-        // number from a m.length + (m.length >> 1) + 1 digit number.  ie. there'd be an extra digit and the while loop
-        // following this comment would loop a lot (hence our calling _regularBarrett() in that situation).
-
-        $result = $this->_subtract($n[self::VALUE], false, $temp[self::VALUE], false);
-
-        while ($this->_compare($result[self::VALUE], $result[self::SIGN], $m, false) >= 0) {
-            $result = $this->_subtract($result[self::VALUE], $result[self::SIGN], $m, false);
-        }
-
-        return $result[self::VALUE];
-    }
-
-    /**
-     * (Regular) Barrett Modular Reduction
-     *
-     * For numbers with more than four digits BigInteger::_barrett() is faster.  The difference between that and this
-     * is that this function does not fold the denominator into a smaller form.
-     *
-     * @see self::_slidingWindow()
-     * @access private
-     * @param array $x
-     * @param array $n
-     * @return array
-     */
-    function _regularBarrett($x, $n)
-    {
-        static $cache = array(
-            self::VARIABLE => array(),
-            self::DATA => array()
-        );
-
-        $n_length = count($n);
-
-        if (count($x) > 2 * $n_length) {
-            $lhs = new static();
-            $rhs = new static();
-            $lhs->value = $x;
-            $rhs->value = $n;
-            list(, $temp) = $lhs->divide($rhs);
-            return $temp->value;
-        }
-
-        if (($key = array_search($n, $cache[self::VARIABLE])) === false) {
-            $key = count($cache[self::VARIABLE]);
-            $cache[self::VARIABLE][] = $n;
-            $lhs = new static();
-            $lhs_value = &$lhs->value;
-            $lhs_value = $this->_array_repeat(0, 2 * $n_length);
-            $lhs_value[] = 1;
-            $rhs = new static();
-            $rhs->value = $n;
-            list($temp, ) = $lhs->divide($rhs); // m.length
-            $cache[self::DATA][] = $temp->value;
-        }
-
-        // 2 * m.length - (m.length - 1) = m.length + 1
-        $temp = array_slice($x, $n_length - 1);
-        // (m.length + 1) + m.length = 2 * m.length + 1
-        $temp = $this->_multiply($temp, false, $cache[self::DATA][$key], false);
-        // (2 * m.length + 1) - (m.length - 1) = m.length + 2
-        $temp = array_slice($temp[self::VALUE], $n_length + 1);
-
-        // m.length + 1
-        $result = array_slice($x, 0, $n_length + 1);
-        // m.length + 1
-        $temp = $this->_multiplyLower($temp, false, $n, false, $n_length + 1);
-        // $temp == array_slice($temp->_multiply($temp, false, $n, false)->value, 0, $n_length + 1)
-
-        if ($this->_compare($result, false, $temp[self::VALUE], $temp[self::SIGN]) < 0) {
-            $corrector_value = $this->_array_repeat(0, $n_length + 1);
-            $corrector_value[count($corrector_value)] = 1;
-            $result = $this->_add($result, false, $corrector_value, false);
-            $result = $result[self::VALUE];
-        }
-
-        // at this point, we're subtracting a number with m.length + 1 digits from another number with m.length + 1 digits
-        $result = $this->_subtract($result, false, $temp[self::VALUE], $temp[self::SIGN]);
-        while ($this->_compare($result[self::VALUE], $result[self::SIGN], $n, false) > 0) {
-            $result = $this->_subtract($result[self::VALUE], $result[self::SIGN], $n, false);
-        }
-
-        return $result[self::VALUE];
-    }
-
-    /**
-     * Performs long multiplication up to $stop digits
-     *
-     * If you're going to be doing array_slice($product->value, 0, $stop), some cycles can be saved.
-     *
-     * @see self::_regularBarrett()
-     * @param array $x_value
-     * @param bool $x_negative
-     * @param array $y_value
-     * @param bool $y_negative
-     * @param int $stop
-     * @return array
-     * @access private
-     */
-    function _multiplyLower($x_value, $x_negative, $y_value, $y_negative, $stop)
-    {
-        $x_length = count($x_value);
-        $y_length = count($y_value);
-
-        if (!$x_length || !$y_length) { // a 0 is being multiplied
-            return array(
-                self::VALUE => array(),
-                self::SIGN => false
-            );
-        }
-
-        if ($x_length < $y_length) {
-            $temp = $x_value;
-            $x_value = $y_value;
-            $y_value = $temp;
-
-            $x_length = count($x_value);
-            $y_length = count($y_value);
-        }
-
-        $product_value = $this->_array_repeat(0, $x_length + $y_length);
-
-        // the following for loop could be removed if the for loop following it
-        // (the one with nested for loops) initially set $i to 0, but
-        // doing so would also make the result in one set of unnecessary adds,
-        // since on the outermost loops first pass, $product->value[$k] is going
-        // to always be 0
-
-        $carry = 0;
-
-        for ($j = 0; $j < $x_length; ++$j) { // ie. $i = 0, $k = $i
-            $temp = $x_value[$j] * $y_value[0] + $carry; // $product_value[$k] == 0
-            $carry = self::$base === 26 ? intval($temp / 0x4000000) : ($temp >> 31);
-            $product_value[$j] = (int) ($temp - self::$baseFull * $carry);
-        }
-
-        if ($j < $stop) {
-            $product_value[$j] = $carry;
-        }
-
-        // the above for loop is what the previous comment was talking about.  the
-        // following for loop is the "one with nested for loops"
-
-        for ($i = 1; $i < $y_length; ++$i) {
-            $carry = 0;
-
-            for ($j = 0, $k = $i; $j < $x_length && $k < $stop; ++$j, ++$k) {
-                $temp = $product_value[$k] + $x_value[$j] * $y_value[$i] + $carry;
-                $carry = self::$base === 26 ? intval($temp / 0x4000000) : ($temp >> 31);
-                $product_value[$k] = (int) ($temp - self::$baseFull * $carry);
-            }
-
-            if ($k < $stop) {
-                $product_value[$k] = $carry;
-            }
-        }
-
-        return array(
-            self::VALUE => $this->_trim($product_value),
-            self::SIGN => $x_negative != $y_negative
-        );
-    }
-
-    /**
-     * Montgomery Modular Reduction
-     *
-     * ($x->_prepMontgomery($n))->_montgomery($n) yields $x % $n.
-     * {@link http://math.libtomcrypt.com/files/tommath.pdf#page=170 MPM 6.3} provides insights on how this can be
-     * improved upon (basically, by using the comba method).  gcd($n, 2) must be equal to one for this function
-     * to work correctly.
-     *
-     * @see self::_prepMontgomery()
-     * @see self::_slidingWindow()
-     * @access private
-     * @param array $x
-     * @param array $n
-     * @return array
-     */
-    function _montgomery($x, $n)
-    {
-        static $cache = array(
-            self::VARIABLE => array(),
-            self::DATA => array()
-        );
-
-        if (($key = array_search($n, $cache[self::VARIABLE])) === false) {
-            $key = count($cache[self::VARIABLE]);
-            $cache[self::VARIABLE][] = $x;
-            $cache[self::DATA][] = $this->_modInverse67108864($n);
-        }
-
-        $k = count($n);
-
-        $result = array(self::VALUE => $x);
-
-        for ($i = 0; $i < $k; ++$i) {
-            $temp = $result[self::VALUE][$i] * $cache[self::DATA][$key];
-            $temp = $temp - self::$baseFull * (self::$base === 26 ? intval($temp / 0x4000000) : ($temp >> 31));
-            $temp = $this->_regularMultiply(array($temp), $n);
-            $temp = array_merge($this->_array_repeat(0, $i), $temp);
-            $result = $this->_add($result[self::VALUE], false, $temp, false);
-        }
-
-        $result[self::VALUE] = array_slice($result[self::VALUE], $k);
-
-        if ($this->_compare($result, false, $n, false) >= 0) {
-            $result = $this->_subtract($result[self::VALUE], false, $n, false);
-        }
-
-        return $result[self::VALUE];
-    }
-
-    /**
-     * Montgomery Multiply
-     *
-     * Interleaves the montgomery reduction and long multiplication algorithms together as described in
-     * {@link http://www.cacr.math.uwaterloo.ca/hac/about/chap14.pdf#page=13 HAC 14.36}
-     *
-     * @see self::_prepMontgomery()
-     * @see self::_montgomery()
-     * @access private
-     * @param array $x
-     * @param array $y
-     * @param array $m
-     * @return array
-     */
-    function _montgomeryMultiply($x, $y, $m)
-    {
-        $temp = $this->_multiply($x, false, $y, false);
-        return $this->_montgomery($temp[self::VALUE], $m);
-
-        // the following code, although not callable, can be run independently of the above code
-        // although the above code performed better in my benchmarks the following could might
-        // perform better under different circumstances. in lieu of deleting it it's just been
-        // made uncallable
-
-        static $cache = array(
-            self::VARIABLE => array(),
-            self::DATA => array()
-        );
-
-        if (($key = array_search($m, $cache[self::VARIABLE])) === false) {
-            $key = count($cache[self::VARIABLE]);
-            $cache[self::VARIABLE][] = $m;
-            $cache[self::DATA][] = $this->_modInverse67108864($m);
-        }
-
-        $n = max(count($x), count($y), count($m));
-        $x = array_pad($x, $n, 0);
-        $y = array_pad($y, $n, 0);
-        $m = array_pad($m, $n, 0);
-        $a = array(self::VALUE => $this->_array_repeat(0, $n + 1));
-        for ($i = 0; $i < $n; ++$i) {
-            $temp = $a[self::VALUE][0] + $x[$i] * $y[0];
-            $temp = $temp - self::$baseFull * (self::$base === 26 ? intval($temp / 0x4000000) : ($temp >> 31));
-            $temp = $temp * $cache[self::DATA][$key];
-            $temp = $temp - self::$baseFull * (self::$base === 26 ? intval($temp / 0x4000000) : ($temp >> 31));
-            $temp = $this->_add($this->_regularMultiply(array($x[$i]), $y), false, $this->_regularMultiply(array($temp), $m), false);
-            $a = $this->_add($a[self::VALUE], false, $temp[self::VALUE], false);
-            $a[self::VALUE] = array_slice($a[self::VALUE], 1);
-        }
-        if ($this->_compare($a[self::VALUE], false, $m, false) >= 0) {
-            $a = $this->_subtract($a[self::VALUE], false, $m, false);
-        }
-        return $a[self::VALUE];
-    }
-
-    /**
-     * Prepare a number for use in Montgomery Modular Reductions
-     *
-     * @see self::_montgomery()
-     * @see self::_slidingWindow()
-     * @access private
-     * @param array $x
-     * @param array $n
-     * @return array
-     */
-    function _prepMontgomery($x, $n)
-    {
-        $lhs = new static();
-        $lhs->value = array_merge($this->_array_repeat(0, count($n)), $x);
-        $rhs = new static();
-        $rhs->value = $n;
-
-        list(, $temp) = $lhs->divide($rhs);
-        return $temp->value;
-    }
-
-    /**
-     * Modular Inverse of a number mod 2**26 (eg. 67108864)
-     *
-     * Based off of the bnpInvDigit function implemented and justified in the following URL:
-     *
-     * {@link http://www-cs-students.stanford.edu/~tjw/jsbn/jsbn.js}
-     *
-     * The following URL provides more info:
-     *
-     * {@link http://groups.google.com/group/sci.crypt/msg/7a137205c1be7d85}
-     *
-     * As for why we do all the bitmasking...  strange things can happen when converting from floats to ints. For
-     * instance, on some computers, var_dump((int) -4294967297) yields int(-1) and on others, it yields
-     * int(-2147483648).  To avoid problems stemming from this, we use bitmasks to guarantee that ints aren't
-     * auto-converted to floats.  The outermost bitmask is present because without it, there's no guarantee that
-     * the "residue" returned would be the so-called "common residue".  We use fmod, in the last step, because the
-     * maximum possible $x is 26 bits and the maximum $result is 16 bits.  Thus, we have to be able to handle up to
-     * 40 bits, which only 64-bit floating points will support.
-     *
-     * Thanks to Pedro Gimeno Fortea for input!
-     *
-     * @see self::_montgomery()
-     * @access private
-     * @param array $x
-     * @return int
-     */
-    function _modInverse67108864($x) // 2**26 == 67,108,864
-    {
-        $x = -$x[0];
-        $result = $x & 0x3; // x**-1 mod 2**2
-        $result = ($result * (2 - $x * $result)) & 0xF; // x**-1 mod 2**4
-        $result = ($result * (2 - ($x & 0xFF) * $result))  & 0xFF; // x**-1 mod 2**8
-        $result = ($result * ((2 - ($x & 0xFFFF) * $result) & 0xFFFF)) & 0xFFFF; // x**-1 mod 2**16
-        $result = fmod($result * (2 - fmod($x * $result, self::$baseFull)), self::$baseFull); // x**-1 mod 2**26
-        return $result & self::$maxDigit;
-    }
-
-    /**
-     * Calculates modular inverses.
-     *
-     * Say you have (30 mod 17 * x mod 17) mod 17 == 1.  x can be found using modular inverses.
-     *
-     * Here's an example:
-     * <code>
-     * <?php
-     *    $a = new \phpseclib\Math\BigInteger(30);
-     *    $b = new \phpseclib\Math\BigInteger(17);
-     *
-     *    $c = $a->modInverse($b);
-     *    echo $c->toString(); // outputs 4
-     *
-     *    echo "\r\n";
-     *
-     *    $d = $a->multiply($c);
-     *    list(, $d) = $d->divide($b);
-     *    echo $d; // outputs 1 (as per the definition of modular inverse)
-     * ?>
-     * </code>
-     *
-     * @param \phpseclib\Math\BigInteger $n
-     * @return \phpseclib\Math\BigInteger|false
-     * @access public
-     * @internal See {@link http://www.cacr.math.uwaterloo.ca/hac/about/chap14.pdf#page=21 HAC 14.64} for more information.
-     */
-    function modInverse($n)
-    {
-        switch (MATH_BIGINTEGER_MODE) {
-            case self::MODE_GMP:
-                $temp = new static();
-                $temp->value = gmp_invert($this->value, $n->value);
-
-                return ($temp->value === false) ? false : $this->_normalize($temp);
-        }
-
-        static $zero, $one;
-        if (!isset($zero)) {
-            $zero = new static();
-            $one = new static(1);
-        }
-
-        // $x mod -$n == $x mod $n.
-        $n = $n->abs();
-
-        if ($this->compare($zero) < 0) {
-            $temp = $this->abs();
-            $temp = $temp->modInverse($n);
-            return $this->_normalize($n->subtract($temp));
-        }
-
-        extract($this->extendedGCD($n));
-
-        if (!$gcd->equals($one)) {
-            return false;
-        }
-
-        $x = $x->compare($zero) < 0 ? $x->add($n) : $x;
-
-        return $this->compare($zero) < 0 ? $this->_normalize($n->subtract($x)) : $this->_normalize($x);
-    }
-
-    /**
-     * Calculates the greatest common divisor and Bezout's identity.
-     *
-     * Say you have 693 and 609.  The GCD is 21.  Bezout's identity states that there exist integers x and y such that
-     * 693*x + 609*y == 21.  In point of fact, there are actually an infinite number of x and y combinations and which
-     * combination is returned is dependent upon which mode is in use.  See
-     * {@link http://en.wikipedia.org/wiki/B%C3%A9zout%27s_identity Bezout's identity - Wikipedia} for more information.
-     *
-     * Here's an example:
-     * <code>
-     * <?php
-     *    $a = new \phpseclib\Math\BigInteger(693);
-     *    $b = new \phpseclib\Math\BigInteger(609);
-     *
-     *    extract($a->extendedGCD($b));
-     *
-     *    echo $gcd->toString() . "\r\n"; // outputs 21
-     *    echo $a->toString() * $x->toString() + $b->toString() * $y->toString(); // outputs 21
-     * ?>
-     * </code>
-     *
-     * @param \phpseclib\Math\BigInteger $n
-     * @return \phpseclib\Math\BigInteger
-     * @access public
-     * @internal Calculates the GCD using the binary xGCD algorithim described in
-     *    {@link http://www.cacr.math.uwaterloo.ca/hac/about/chap14.pdf#page=19 HAC 14.61}.  As the text above 14.61 notes,
-     *    the more traditional algorithim requires "relatively costly multiple-precision divisions".
-     */
-    function extendedGCD($n)
-    {
-        switch (MATH_BIGINTEGER_MODE) {
-            case self::MODE_GMP:
-                extract(gmp_gcdext($this->value, $n->value));
-
-                return array(
-                    'gcd' => $this->_normalize(new static($g)),
-                    'x'   => $this->_normalize(new static($s)),
-                    'y'   => $this->_normalize(new static($t))
-                );
-            case self::MODE_BCMATH:
-                // it might be faster to use the binary xGCD algorithim here, as well, but (1) that algorithim works
-                // best when the base is a power of 2 and (2) i don't think it'd make much difference, anyway.  as is,
-                // the basic extended euclidean algorithim is what we're using.
-
-                $u = $this->value;
-                $v = $n->value;
-
-                $a = '1';
-                $b = '0';
-                $c = '0';
-                $d = '1';
-
-                while (bccomp($v, '0', 0) != 0) {
-                    $q = bcdiv($u, $v, 0);
-
-                    $temp = $u;
-                    $u = $v;
-                    $v = bcsub($temp, bcmul($v, $q, 0), 0);
-
-                    $temp = $a;
-                    $a = $c;
-                    $c = bcsub($temp, bcmul($a, $q, 0), 0);
-
-                    $temp = $b;
-                    $b = $d;
-                    $d = bcsub($temp, bcmul($b, $q, 0), 0);
-                }
-
-                return array(
-                    'gcd' => $this->_normalize(new static($u)),
-                    'x'   => $this->_normalize(new static($a)),
-                    'y'   => $this->_normalize(new static($b))
-                );
-        }
-
-        $y = $n->copy();
-        $x = $this->copy();
-        $g = new static();
-        $g->value = array(1);
-
-        while (!(($x->value[0] & 1)|| ($y->value[0] & 1))) {
-            $x->_rshift(1);
-            $y->_rshift(1);
-            $g->_lshift(1);
-        }
-
-        $u = $x->copy();
-        $v = $y->copy();
-
-        $a = new static();
-        $b = new static();
-        $c = new static();
-        $d = new static();
-
-        $a->value = $d->value = $g->value = array(1);
-        $b->value = $c->value = array();
-
-        while (!empty($u->value)) {
-            while (!($u->value[0] & 1)) {
-                $u->_rshift(1);
-                if ((!empty($a->value) && ($a->value[0] & 1)) || (!empty($b->value) && ($b->value[0] & 1))) {
-                    $a = $a->add($y);
-                    $b = $b->subtract($x);
-                }
-                $a->_rshift(1);
-                $b->_rshift(1);
-            }
-
-            while (!($v->value[0] & 1)) {
-                $v->_rshift(1);
-                if ((!empty($d->value) && ($d->value[0] & 1)) || (!empty($c->value) && ($c->value[0] & 1))) {
-                    $c = $c->add($y);
-                    $d = $d->subtract($x);
-                }
-                $c->_rshift(1);
-                $d->_rshift(1);
-            }
-
-            if ($u->compare($v) >= 0) {
-                $u = $u->subtract($v);
-                $a = $a->subtract($c);
-                $b = $b->subtract($d);
-            } else {
-                $v = $v->subtract($u);
-                $c = $c->subtract($a);
-                $d = $d->subtract($b);
-            }
-        }
-
-        return array(
-            'gcd' => $this->_normalize($g->multiply($v)),
-            'x'   => $this->_normalize($c),
-            'y'   => $this->_normalize($d)
-        );
-    }
-
-    /**
-     * Calculates the greatest common divisor
-     *
-     * Say you have 693 and 609.  The GCD is 21.
-     *
-     * Here's an example:
-     * <code>
-     * <?php
-     *    $a = new \phpseclib\Math\BigInteger(693);
-     *    $b = new \phpseclib\Math\BigInteger(609);
-     *
-     *    $gcd = a->extendedGCD($b);
-     *
-     *    echo $gcd->toString() . "\r\n"; // outputs 21
-     * ?>
-     * </code>
-     *
-     * @param \phpseclib\Math\BigInteger $n
-     * @return \phpseclib\Math\BigInteger
-     * @access public
-     */
-    function gcd($n)
-    {
-        extract($this->extendedGCD($n));
-        return $gcd;
-    }
-
-    /**
-     * Absolute value.
-     *
-     * @return \phpseclib\Math\BigInteger
-     * @access public
-     */
-    function abs()
-    {
-        $temp = new static();
-
-        switch (MATH_BIGINTEGER_MODE) {
-            case self::MODE_GMP:
-                $temp->value = gmp_abs($this->value);
-                break;
-            case self::MODE_BCMATH:
-                $temp->value = (bccomp($this->value, '0', 0) < 0) ? substr($this->value, 1) : $this->value;
-                break;
-            default:
-                $temp->value = $this->value;
-        }
-
-        return $temp;
-    }
-
-    /**
-     * Compares two numbers.
-     *
-     * Although one might think !$x->compare($y) means $x != $y, it, in fact, means the opposite.  The reason for this is
-     * demonstrated thusly:
-     *
-     * $x  > $y: $x->compare($y)  > 0
-     * $x  < $y: $x->compare($y)  < 0
-     * $x == $y: $x->compare($y) == 0
-     *
-     * Note how the same comparison operator is used.  If you want to test for equality, use $x->equals($y).
-     *
-     * @param \phpseclib\Math\BigInteger $y
-     * @return int < 0 if $this is less than $y; > 0 if $this is greater than $y, and 0 if they are equal.
-     * @access public
-     * @see self::equals()
-     * @internal Could return $this->subtract($x), but that's not as fast as what we do do.
-     */
-    function compare($y)
-    {
-        switch (MATH_BIGINTEGER_MODE) {
-            case self::MODE_GMP:
-                return gmp_cmp($this->value, $y->value);
-            case self::MODE_BCMATH:
-                return bccomp($this->value, $y->value, 0);
-        }
-
-        return $this->_compare($this->value, $this->is_negative, $y->value, $y->is_negative);
-    }
-
-    /**
-     * Compares two numbers.
-     *
-     * @param array $x_value
-     * @param bool $x_negative
-     * @param array $y_value
-     * @param bool $y_negative
-     * @return int
-     * @see self::compare()
-     * @access private
-     */
-    function _compare($x_value, $x_negative, $y_value, $y_negative)
-    {
-        if ($x_negative != $y_negative) {
-            return (!$x_negative && $y_negative) ? 1 : -1;
-        }
-
-        $result = $x_negative ? -1 : 1;
-
-        if (count($x_value) != count($y_value)) {
-            return (count($x_value) > count($y_value)) ? $result : -$result;
-        }
-        $size = max(count($x_value), count($y_value));
-
-        $x_value = array_pad($x_value, $size, 0);
-        $y_value = array_pad($y_value, $size, 0);
-
-        for ($i = count($x_value) - 1; $i >= 0; --$i) {
-            if ($x_value[$i] != $y_value[$i]) {
-                return ($x_value[$i] > $y_value[$i]) ? $result : -$result;
-            }
-        }
-
-        return 0;
-    }
-
-    /**
-     * Tests the equality of two numbers.
-     *
-     * If you need to see if one number is greater than or less than another number, use BigInteger::compare()
-     *
-     * @param \phpseclib\Math\BigInteger $x
-     * @return bool
-     * @access public
-     * @see self::compare()
-     */
-    function equals($x)
-    {
-        switch (MATH_BIGINTEGER_MODE) {
-            case self::MODE_GMP:
-                return gmp_cmp($this->value, $x->value) == 0;
-            default:
-                return $this->value === $x->value && $this->is_negative == $x->is_negative;
-        }
-    }
-
-    /**
-     * Set Precision
-     *
-     * Some bitwise operations give different results depending on the precision being used.  Examples include left
-     * shift, not, and rotates.
-     *
-     * @param int $bits
-     * @access public
-     */
-    function setPrecision($bits)
-    {
-        $this->precision = $bits;
-        if (MATH_BIGINTEGER_MODE != self::MODE_BCMATH) {
-            $this->bitmask = new static(chr((1 << ($bits & 0x7)) - 1) . str_repeat(chr(0xFF), $bits >> 3), 256);
-        } else {
-            $this->bitmask = new static(bcpow('2', $bits, 0));
-        }
-
-        $temp = $this->_normalize($this);
-        $this->value = $temp->value;
-    }
-
-    /**
-     * Logical And
-     *
-     * @param \phpseclib\Math\BigInteger $x
-     * @access public
-     * @internal Implemented per a request by Lluis Pamies i Juarez <lluis _a_ pamies.cat>
-     * @return \phpseclib\Math\BigInteger
-     */
-    function bitwise_and($x)
-    {
-        switch (MATH_BIGINTEGER_MODE) {
-            case self::MODE_GMP:
-                $temp = new static();
-                $temp->value = gmp_and($this->value, $x->value);
-
-                return $this->_normalize($temp);
-            case self::MODE_BCMATH:
-                $left = $this->toBytes();
-                $right = $x->toBytes();
-
-                $length = max(strlen($left), strlen($right));
-
-                $left = str_pad($left, $length, chr(0), STR_PAD_LEFT);
-                $right = str_pad($right, $length, chr(0), STR_PAD_LEFT);
-
-                return $this->_normalize(new static($left & $right, 256));
-        }
-
-        $result = $this->copy();
-
-        $length = min(count($x->value), count($this->value));
-
-        $result->value = array_slice($result->value, 0, $length);
-
-        for ($i = 0; $i < $length; ++$i) {
-            $result->value[$i]&= $x->value[$i];
-        }
-
-        return $this->_normalize($result);
-    }
-
-    /**
-     * Logical Or
-     *
-     * @param \phpseclib\Math\BigInteger $x
-     * @access public
-     * @internal Implemented per a request by Lluis Pamies i Juarez <lluis _a_ pamies.cat>
-     * @return \phpseclib\Math\BigInteger
-     */
-    function bitwise_or($x)
-    {
-        switch (MATH_BIGINTEGER_MODE) {
-            case self::MODE_GMP:
-                $temp = new static();
-                $temp->value = gmp_or($this->value, $x->value);
-
-                return $this->_normalize($temp);
-            case self::MODE_BCMATH:
-                $left = $this->toBytes();
-                $right = $x->toBytes();
-
-                $length = max(strlen($left), strlen($right));
-
-                $left = str_pad($left, $length, chr(0), STR_PAD_LEFT);
-                $right = str_pad($right, $length, chr(0), STR_PAD_LEFT);
-
-                return $this->_normalize(new static($left | $right, 256));
-        }
-
-        $length = max(count($this->value), count($x->value));
-        $result = $this->copy();
-        $result->value = array_pad($result->value, $length, 0);
-        $x->value = array_pad($x->value, $length, 0);
-
-        for ($i = 0; $i < $length; ++$i) {
-            $result->value[$i]|= $x->value[$i];
-        }
-
-        return $this->_normalize($result);
-    }
-
-    /**
-     * Logical Exclusive-Or
-     *
-     * @param \phpseclib\Math\BigInteger $x
-     * @access public
-     * @internal Implemented per a request by Lluis Pamies i Juarez <lluis _a_ pamies.cat>
-     * @return \phpseclib\Math\BigInteger
-     */
-    function bitwise_xor($x)
-    {
-        switch (MATH_BIGINTEGER_MODE) {
-            case self::MODE_GMP:
-                $temp = new static();
-                $temp->value = gmp_xor(gmp_abs($this->value), gmp_abs($x->value));
-                return $this->_normalize($temp);
-            case self::MODE_BCMATH:
-                $left = $this->toBytes();
-                $right = $x->toBytes();
-
-                $length = max(strlen($left), strlen($right));
-
-                $left = str_pad($left, $length, chr(0), STR_PAD_LEFT);
-                $right = str_pad($right, $length, chr(0), STR_PAD_LEFT);
-
-                return $this->_normalize(new static($left ^ $right, 256));
-        }
-
-        $length = max(count($this->value), count($x->value));
-        $result = $this->copy();
-        $result->is_negative = false;
-        $result->value = array_pad($result->value, $length, 0);
-        $x->value = array_pad($x->value, $length, 0);
-
-        for ($i = 0; $i < $length; ++$i) {
-            $result->value[$i]^= $x->value[$i];
-        }
-
-        return $this->_normalize($result);
-    }
-
-    /**
-     * Logical Not
-     *
-     * @access public
-     * @internal Implemented per a request by Lluis Pamies i Juarez <lluis _a_ pamies.cat>
-     * @return \phpseclib\Math\BigInteger
-     */
-    function bitwise_not()
-    {
-        // calculuate "not" without regard to $this->precision
-        // (will always result in a smaller number.  ie. ~1 isn't 1111 1110 - it's 0)
-        $temp = $this->toBytes();
-        if ($temp == '') {
-            return $this->_normalize(new static());
-        }
-        $pre_msb = decbin(ord($temp[0]));
-        $temp = ~$temp;
-        $msb = decbin(ord($temp[0]));
-        if (strlen($msb) == 8) {
-            $msb = substr($msb, strpos($msb, '0'));
-        }
-        $temp[0] = chr(bindec($msb));
-
-        // see if we need to add extra leading 1's
-        $current_bits = strlen($pre_msb) + 8 * strlen($temp) - 8;
-        $new_bits = $this->precision - $current_bits;
-        if ($new_bits <= 0) {
-            return $this->_normalize(new static($temp, 256));
-        }
-
-        // generate as many leading 1's as we need to.
-        $leading_ones = chr((1 << ($new_bits & 0x7)) - 1) . str_repeat(chr(0xFF), $new_bits >> 3);
-        $this->_base256_lshift($leading_ones, $current_bits);
-
-        $temp = str_pad($temp, strlen($leading_ones), chr(0), STR_PAD_LEFT);
-
-        return $this->_normalize(new static($leading_ones | $temp, 256));
-    }
-
-    /**
-     * Logical Right Shift
-     *
-     * Shifts BigInteger's by $shift bits, effectively dividing by 2**$shift.
-     *
-     * @param int $shift
-     * @return \phpseclib\Math\BigInteger
-     * @access public
-     * @internal The only version that yields any speed increases is the internal version.
-     */
-    function bitwise_rightShift($shift)
-    {
-        $temp = new static();
-
-        switch (MATH_BIGINTEGER_MODE) {
-            case self::MODE_GMP:
-                static $two;
-
-                if (!isset($two)) {
-                    $two = gmp_init('2');
-                }
-
-                $temp->value = gmp_div_q($this->value, gmp_pow($two, $shift));
-
-                break;
-            case self::MODE_BCMATH:
-                $temp->value = bcdiv($this->value, bcpow('2', $shift, 0), 0);
-
-                break;
-            default: // could just replace _lshift with this, but then all _lshift() calls would need to be rewritten
-                     // and I don't want to do that...
-                $temp->value = $this->value;
-                $temp->_rshift($shift);
-        }
-
-        return $this->_normalize($temp);
-    }
-
-    /**
-     * Logical Left Shift
-     *
-     * Shifts BigInteger's by $shift bits, effectively multiplying by 2**$shift.
-     *
-     * @param int $shift
-     * @return \phpseclib\Math\BigInteger
-     * @access public
-     * @internal The only version that yields any speed increases is the internal version.
-     */
-    function bitwise_leftShift($shift)
-    {
-        $temp = new static();
-
-        switch (MATH_BIGINTEGER_MODE) {
-            case self::MODE_GMP:
-                static $two;
-
-                if (!isset($two)) {
-                    $two = gmp_init('2');
-                }
-
-                $temp->value = gmp_mul($this->value, gmp_pow($two, $shift));
-
-                break;
-            case self::MODE_BCMATH:
-                $temp->value = bcmul($this->value, bcpow('2', $shift, 0), 0);
-
-                break;
-            default: // could just replace _rshift with this, but then all _lshift() calls would need to be rewritten
-                     // and I don't want to do that...
-                $temp->value = $this->value;
-                $temp->_lshift($shift);
-        }
-
-        return $this->_normalize($temp);
-    }
-
-    /**
-     * Logical Left Rotate
-     *
-     * Instead of the top x bits being dropped they're appended to the shifted bit string.
-     *
-     * @param int $shift
-     * @return \phpseclib\Math\BigInteger
-     * @access public
-     */
-    function bitwise_leftRotate($shift)
-    {
-        $bits = $this->toBytes();
-
-        if ($this->precision > 0) {
-            $precision = $this->precision;
-            if (MATH_BIGINTEGER_MODE == self::MODE_BCMATH) {
-                $mask = $this->bitmask->subtract(new static(1));
-                $mask = $mask->toBytes();
-            } else {
-                $mask = $this->bitmask->toBytes();
-            }
-        } else {
-            $temp = ord($bits[0]);
-            for ($i = 0; $temp >> $i; ++$i) {
-            }
-            $precision = 8 * strlen($bits) - 8 + $i;
-            $mask = chr((1 << ($precision & 0x7)) - 1) . str_repeat(chr(0xFF), $precision >> 3);
-        }
-
-        if ($shift < 0) {
-            $shift+= $precision;
-        }
-        $shift%= $precision;
-
-        if (!$shift) {
-            return $this->copy();
-        }
-
-        $left = $this->bitwise_leftShift($shift);
-        $left = $left->bitwise_and(new static($mask, 256));
-        $right = $this->bitwise_rightShift($precision - $shift);
-        $result = MATH_BIGINTEGER_MODE != self::MODE_BCMATH ? $left->bitwise_or($right) : $left->add($right);
-        return $this->_normalize($result);
-    }
-
-    /**
-     * Logical Right Rotate
-     *
-     * Instead of the bottom x bits being dropped they're prepended to the shifted bit string.
-     *
-     * @param int $shift
-     * @return \phpseclib\Math\BigInteger
-     * @access public
-     */
-    function bitwise_rightRotate($shift)
-    {
-        return $this->bitwise_leftRotate(-$shift);
-    }
-
-    /**
-     * Generates a random BigInteger
-     *
-     * Byte length is equal to $length. Uses \phpseclib\Crypt\Random if it's loaded and mt_rand if it's not.
-     *
-     * @param int $length
-     * @return \phpseclib\Math\BigInteger
-     * @access private
-     */
-    function _random_number_helper($size)
-    {
-        if (class_exists('\phpseclib\Crypt\Random')) {
-            $random = Random::string($size);
-        } else {
-            $random = '';
-
-            if ($size & 1) {
-                $random.= chr(mt_rand(0, 255));
-            }
-
-            $blocks = $size >> 1;
-            for ($i = 0; $i < $blocks; ++$i) {
-                // mt_rand(-2147483648, 0x7FFFFFFF) always produces -2147483648 on some systems
-                $random.= pack('n', mt_rand(0, 0xFFFF));
-            }
-        }
-
-        return new static($random, 256);
-    }
-
-    /**
-     * Generate a random number
-     *
-     * Returns a random number between $min and $max where $min and $max
-     * can be defined using one of the two methods:
-     *
-     * $min->random($max)
-     * $max->random($min)
-     *
-     * @param \phpseclib\Math\BigInteger $arg1
-     * @param \phpseclib\Math\BigInteger $arg2
-     * @return \phpseclib\Math\BigInteger
-     * @access public
-     * @internal The API for creating random numbers used to be $a->random($min, $max), where $a was a BigInteger object.
-     *           That method is still supported for BC purposes.
-     */
-    function random($arg1, $arg2 = false)
-    {
-        if ($arg1 === false) {
-            return false;
-        }
-
-        if ($arg2 === false) {
-            $max = $arg1;
-            $min = $this;
-        } else {
-            $min = $arg1;
-            $max = $arg2;
-        }
-
-        $compare = $max->compare($min);
-
-        if (!$compare) {
-            return $this->_normalize($min);
-        } elseif ($compare < 0) {
-            // if $min is bigger then $max, swap $min and $max
-            $temp = $max;
-            $max = $min;
-            $min = $temp;
-        }
-
-        static $one;
-        if (!isset($one)) {
-            $one = new static(1);
-        }
-
-        $max = $max->subtract($min->subtract($one));
-        $size = strlen(ltrim($max->toBytes(), chr(0)));
-
-        /*
-            doing $random % $max doesn't work because some numbers will be more likely to occur than others.
-            eg. if $max is 140 and $random's max is 255 then that'd mean both $random = 5 and $random = 145
-            would produce 5 whereas the only value of random that could produce 139 would be 139. ie.
-            not all numbers would be equally likely. some would be more likely than others.
-
-            creating a whole new random number until you find one that is within the range doesn't work
-            because, for sufficiently small ranges, the likelihood that you'd get a number within that range
-            would be pretty small. eg. with $random's max being 255 and if your $max being 1 the probability
-            would be pretty high that $random would be greater than $max.
-
-            phpseclib works around this using the technique described here:
-
-            http://crypto.stackexchange.com/questions/5708/creating-a-small-number-from-a-cryptographically-secure-random-string
-        */
-        $random_max = new static(chr(1) . str_repeat("\0", $size), 256);
-        $random = $this->_random_number_helper($size);
-
-        list($max_multiple) = $random_max->divide($max);
-        $max_multiple = $max_multiple->multiply($max);
-
-        while ($random->compare($max_multiple) >= 0) {
-            $random = $random->subtract($max_multiple);
-            $random_max = $random_max->subtract($max_multiple);
-            $random = $random->bitwise_leftShift(8);
-            $random = $random->add($this->_random_number_helper(1));
-            $random_max = $random_max->bitwise_leftShift(8);
-            list($max_multiple) = $random_max->divide($max);
-            $max_multiple = $max_multiple->multiply($max);
-        }
-        list(, $random) = $random->divide($max);
-
-        return $this->_normalize($random->add($min));
-    }
-
-    /**
-     * Generate a random prime number.
-     *
-     * If there's not a prime within the given range, false will be returned.
-     * If more than $timeout seconds have elapsed, give up and return false.
-     *
-     * @param \phpseclib\Math\BigInteger $arg1
-     * @param \phpseclib\Math\BigInteger $arg2
-     * @param int $timeout
-     * @return Math_BigInteger|false
-     * @access public
-     * @internal See {@link http://www.cacr.math.uwaterloo.ca/hac/about/chap4.pdf#page=15 HAC 4.44}.
-     */
-    function randomPrime($arg1, $arg2 = false, $timeout = false)
-    {
-        if ($arg1 === false) {
-            return false;
-        }
-
-        if ($arg2 === false) {
-            $max = $arg1;
-            $min = $this;
-        } else {
-            $min = $arg1;
-            $max = $arg2;
-        }
-
-        $compare = $max->compare($min);
-
-        if (!$compare) {
-            return $min->isPrime() ? $min : false;
-        } elseif ($compare < 0) {
-            // if $min is bigger then $max, swap $min and $max
-            $temp = $max;
-            $max = $min;
-            $min = $temp;
-        }
-
-        static $one, $two;
-        if (!isset($one)) {
-            $one = new static(1);
-            $two = new static(2);
-        }
-
-        $start = time();
-
-        $x = $this->random($min, $max);
-
-        // gmp_nextprime() requires PHP 5 >= 5.2.0 per <http://php.net/gmp-nextprime>.
-        if (MATH_BIGINTEGER_MODE == self::MODE_GMP && extension_loaded('gmp')) {
-            $p = new static();
-            $p->value = gmp_nextprime($x->value);
-
-            if ($p->compare($max) <= 0) {
-                return $p;
-            }
-
-            if (!$min->equals($x)) {
-                $x = $x->subtract($one);
-            }
-
-            return $x->randomPrime($min, $x);
-        }
-
-        if ($x->equals($two)) {
-            return $x;
-        }
-
-        $x->_make_odd();
-        if ($x->compare($max) > 0) {
-            // if $x > $max then $max is even and if $min == $max then no prime number exists between the specified range
-            if ($min->equals($max)) {
-                return false;
-            }
-            $x = $min->copy();
-            $x->_make_odd();
-        }
-
-        $initial_x = $x->copy();
-
-        while (true) {
-            if ($timeout !== false && time() - $start > $timeout) {
-                return false;
-            }
-
-            if ($x->isPrime()) {
-                return $x;
-            }
-
-            $x = $x->add($two);
-
-            if ($x->compare($max) > 0) {
-                $x = $min->copy();
-                if ($x->equals($two)) {
-                    return $x;
-                }
-                $x->_make_odd();
-            }
-
-            if ($x->equals($initial_x)) {
-                return false;
-            }
-        }
-    }
-
-    /**
-     * Make the current number odd
-     *
-     * If the current number is odd it'll be unchanged.  If it's even, one will be added to it.
-     *
-     * @see self::randomPrime()
-     * @access private
-     */
-    function _make_odd()
-    {
-        switch (MATH_BIGINTEGER_MODE) {
-            case self::MODE_GMP:
-                gmp_setbit($this->value, 0);
-                break;
-            case self::MODE_BCMATH:
-                if ($this->value[strlen($this->value) - 1] % 2 == 0) {
-                    $this->value = bcadd($this->value, '1');
-                }
-                break;
-            default:
-                $this->value[0] |= 1;
-        }
-    }
-
-    /**
-     * Checks a numer to see if it's prime
-     *
-     * Assuming the $t parameter is not set, this function has an error rate of 2**-80.  The main motivation for the
-     * $t parameter is distributability.  BigInteger::randomPrime() can be distributed across multiple pageloads
-     * on a website instead of just one.
-     *
-     * @param \phpseclib\Math\BigInteger $t
-     * @return bool
-     * @access public
-     * @internal Uses the
-     *     {@link http://en.wikipedia.org/wiki/Miller%E2%80%93Rabin_primality_test Miller-Rabin primality test}.  See
-     *     {@link http://www.cacr.math.uwaterloo.ca/hac/about/chap4.pdf#page=8 HAC 4.24}.
-     */
-    function isPrime($t = false)
-    {
-        $length = strlen($this->toBytes());
-
-        if (!$t) {
-            // see HAC 4.49 "Note (controlling the error probability)"
-            // @codingStandardsIgnoreStart
-                 if ($length >= 163) { $t =  2; } // floor(1300 / 8)
-            else if ($length >= 106) { $t =  3; } // floor( 850 / 8)
-            else if ($length >= 81 ) { $t =  4; } // floor( 650 / 8)
-            else if ($length >= 68 ) { $t =  5; } // floor( 550 / 8)
-            else if ($length >= 56 ) { $t =  6; } // floor( 450 / 8)
-            else if ($length >= 50 ) { $t =  7; } // floor( 400 / 8)
-            else if ($length >= 43 ) { $t =  8; } // floor( 350 / 8)
-            else if ($length >= 37 ) { $t =  9; } // floor( 300 / 8)
-            else if ($length >= 31 ) { $t = 12; } // floor( 250 / 8)
-            else if ($length >= 25 ) { $t = 15; } // floor( 200 / 8)
-            else if ($length >= 18 ) { $t = 18; } // floor( 150 / 8)
-            else                     { $t = 27; }
-            // @codingStandardsIgnoreEnd
-        }
-
-        // ie. gmp_testbit($this, 0)
-        // ie. isEven() or !isOdd()
-        switch (MATH_BIGINTEGER_MODE) {
-            case self::MODE_GMP:
-                return gmp_prob_prime($this->value, $t) != 0;
-            case self::MODE_BCMATH:
-                if ($this->value === '2') {
-                    return true;
-                }
-                if ($this->value[strlen($this->value) - 1] % 2 == 0) {
-                    return false;
-                }
-                break;
-            default:
-                if ($this->value == array(2)) {
-                    return true;
-                }
-                if (~$this->value[0] & 1) {
-                    return false;
-                }
-        }
-
-        static $primes, $zero, $one, $two;
-
-        if (!isset($primes)) {
-            $primes = array(
-                3,    5,    7,    11,   13,   17,   19,   23,   29,   31,   37,   41,   43,   47,   53,   59,
-                61,   67,   71,   73,   79,   83,   89,   97,   101,  103,  107,  109,  113,  127,  131,  137,
-                139,  149,  151,  157,  163,  167,  173,  179,  181,  191,  193,  197,  199,  211,  223,  227,
-                229,  233,  239,  241,  251,  257,  263,  269,  271,  277,  281,  283,  293,  307,  311,  313,
-                317,  331,  337,  347,  349,  353,  359,  367,  373,  379,  383,  389,  397,  401,  409,  419,
-                421,  431,  433,  439,  443,  449,  457,  461,  463,  467,  479,  487,  491,  499,  503,  509,
-                521,  523,  541,  547,  557,  563,  569,  571,  577,  587,  593,  599,  601,  607,  613,  617,
-                619,  631,  641,  643,  647,  653,  659,  661,  673,  677,  683,  691,  701,  709,  719,  727,
-                733,  739,  743,  751,  757,  761,  769,  773,  787,  797,  809,  811,  821,  823,  827,  829,
-                839,  853,  857,  859,  863,  877,  881,  883,  887,  907,  911,  919,  929,  937,  941,  947,
-                953,  967,  971,  977,  983,  991,  997
-            );
-
-            if (MATH_BIGINTEGER_MODE != self::MODE_INTERNAL) {
-                for ($i = 0; $i < count($primes); ++$i) {
-                    $primes[$i] = new static($primes[$i]);
-                }
-            }
-
-            $zero = new static();
-            $one = new static(1);
-            $two = new static(2);
-        }
-
-        if ($this->equals($one)) {
-            return false;
-        }
-
-        // see HAC 4.4.1 "Random search for probable primes"
-        if (MATH_BIGINTEGER_MODE != self::MODE_INTERNAL) {
-            foreach ($primes as $prime) {
-                list(, $r) = $this->divide($prime);
-                if ($r->equals($zero)) {
-                    return $this->equals($prime);
-                }
-            }
-        } else {
-            $value = $this->value;
-            foreach ($primes as $prime) {
-                list(, $r) = $this->_divide_digit($value, $prime);
-                if (!$r) {
-                    return count($value) == 1 && $value[0] == $prime;
-                }
-            }
-        }
-
-        $n   = $this->copy();
-        $n_1 = $n->subtract($one);
-        $n_2 = $n->subtract($two);
-
-        $r = $n_1->copy();
-        $r_value = $r->value;
-        // ie. $s = gmp_scan1($n, 0) and $r = gmp_div_q($n, gmp_pow(gmp_init('2'), $s));
-        if (MATH_BIGINTEGER_MODE == self::MODE_BCMATH) {
-            $s = 0;
-            // if $n was 1, $r would be 0 and this would be an infinite loop, hence our $this->equals($one) check earlier
-            while ($r->value[strlen($r->value) - 1] % 2 == 0) {
-                $r->value = bcdiv($r->value, '2', 0);
-                ++$s;
-            }
-        } else {
-            for ($i = 0, $r_length = count($r_value); $i < $r_length; ++$i) {
-                $temp = ~$r_value[$i] & 0xFFFFFF;
-                for ($j = 1; ($temp >> $j) & 1; ++$j) {
-                }
-                if ($j != 25) {
-                    break;
-                }
-            }
-            $s = 26 * $i + $j;
-            $r->_rshift($s);
-        }
-
-        for ($i = 0; $i < $t; ++$i) {
-            $a = $this->random($two, $n_2);
-            $y = $a->modPow($r, $n);
-
-            if (!$y->equals($one) && !$y->equals($n_1)) {
-                for ($j = 1; $j < $s && !$y->equals($n_1); ++$j) {
-                    $y = $y->modPow($two, $n);
-                    if ($y->equals($one)) {
-                        return false;
-                    }
-                }
-
-                if (!$y->equals($n_1)) {
-                    return false;
-                }
-            }
-        }
-        return true;
-    }
-
-    /**
-     * Logical Left Shift
-     *
-     * Shifts BigInteger's by $shift bits.
-     *
-     * @param int $shift
-     * @access private
-     */
-    function _lshift($shift)
-    {
-        if ($shift == 0) {
-            return;
-        }
-
-        $num_digits = (int) ($shift / self::$base);
-        $shift %= self::$base;
-        $shift = 1 << $shift;
-
-        $carry = 0;
-
-        for ($i = 0; $i < count($this->value); ++$i) {
-            $temp = $this->value[$i] * $shift + $carry;
-            $carry = self::$base === 26 ? intval($temp / 0x4000000) : ($temp >> 31);
-            $this->value[$i] = (int) ($temp - $carry * self::$baseFull);
-        }
-
-        if ($carry) {
-            $this->value[count($this->value)] = $carry;
-        }
-
-        while ($num_digits--) {
-            array_unshift($this->value, 0);
-        }
-    }
-
-    /**
-     * Logical Right Shift
-     *
-     * Shifts BigInteger's by $shift bits.
-     *
-     * @param int $shift
-     * @access private
-     */
-    function _rshift($shift)
-    {
-        if ($shift == 0) {
-            return;
-        }
-
-        $num_digits = (int) ($shift / self::$base);
-        $shift %= self::$base;
-        $carry_shift = self::$base - $shift;
-        $carry_mask = (1 << $shift) - 1;
-
-        if ($num_digits) {
-            $this->value = array_slice($this->value, $num_digits);
-        }
-
-        $carry = 0;
-
-        for ($i = count($this->value) - 1; $i >= 0; --$i) {
-            $temp = $this->value[$i] >> $shift | $carry;
-            $carry = ($this->value[$i] & $carry_mask) << $carry_shift;
-            $this->value[$i] = $temp;
-        }
-
-        $this->value = $this->_trim($this->value);
-    }
-
-    /**
-     * Normalize
-     *
-     * Removes leading zeros and truncates (if necessary) to maintain the appropriate precision
-     *
-     * @param \phpseclib\Math\BigInteger
-     * @return \phpseclib\Math\BigInteger
-     * @see self::_trim()
-     * @access private
-     */
-    function _normalize($result)
-    {
-        $result->precision = $this->precision;
-        $result->bitmask = $this->bitmask;
-
-        switch (MATH_BIGINTEGER_MODE) {
-            case self::MODE_GMP:
-                if ($this->bitmask !== false) {
-                    $result->value = gmp_and($result->value, $result->bitmask->value);
-                }
-
-                return $result;
-            case self::MODE_BCMATH:
-                if (!empty($result->bitmask->value)) {
-                    $result->value = bcmod($result->value, $result->bitmask->value);
-                }
-
-                return $result;
-        }
-
-        $value = &$result->value;
-
-        if (!count($value)) {
-            return $result;
-        }
-
-        $value = $this->_trim($value);
-
-        if (!empty($result->bitmask->value)) {
-            $length = min(count($value), count($this->bitmask->value));
-            $value = array_slice($value, 0, $length);
-
-            for ($i = 0; $i < $length; ++$i) {
-                $value[$i] = $value[$i] & $this->bitmask->value[$i];
-            }
-        }
-
-        return $result;
-    }
-
-    /**
-     * Trim
-     *
-     * Removes leading zeros
-     *
-     * @param array $value
-     * @return \phpseclib\Math\BigInteger
-     * @access private
-     */
-    function _trim($value)
-    {
-        for ($i = count($value) - 1; $i >= 0; --$i) {
-            if ($value[$i]) {
-                break;
-            }
-            unset($value[$i]);
-        }
-
-        return $value;
-    }
-
-    /**
-     * Array Repeat
-     *
-     * @param $input Array
-     * @param $multiplier mixed
-     * @return array
-     * @access private
-     */
-    function _array_repeat($input, $multiplier)
-    {
-        return ($multiplier) ? array_fill(0, $multiplier, $input) : array();
-    }
-
-    /**
-     * Logical Left Shift
-     *
-     * Shifts binary strings $shift bits, essentially multiplying by 2**$shift.
-     *
-     * @param $x String
-     * @param $shift Integer
-     * @return string
-     * @access private
-     */
-    function _base256_lshift(&$x, $shift)
-    {
-        if ($shift == 0) {
-            return;
-        }
-
-        $num_bytes = $shift >> 3; // eg. floor($shift/8)
-        $shift &= 7; // eg. $shift % 8
-
-        $carry = 0;
-        for ($i = strlen($x) - 1; $i >= 0; --$i) {
-            $temp = ord($x[$i]) << $shift | $carry;
-            $x[$i] = chr($temp);
-            $carry = $temp >> 8;
-        }
-        $carry = ($carry != 0) ? chr($carry) : '';
-        $x = $carry . $x . str_repeat(chr(0), $num_bytes);
-    }
-
-    /**
-     * Logical Right Shift
-     *
-     * Shifts binary strings $shift bits, essentially dividing by 2**$shift and returning the remainder.
-     *
-     * @param $x String
-     * @param $shift Integer
-     * @return string
-     * @access private
-     */
-    function _base256_rshift(&$x, $shift)
-    {
-        if ($shift == 0) {
-            $x = ltrim($x, chr(0));
-            return '';
-        }
-
-        $num_bytes = $shift >> 3; // eg. floor($shift/8)
-        $shift &= 7; // eg. $shift % 8
-
-        $remainder = '';
-        if ($num_bytes) {
-            $start = $num_bytes > strlen($x) ? -strlen($x) : -$num_bytes;
-            $remainder = substr($x, $start);
-            $x = substr($x, 0, -$num_bytes);
-        }
-
-        $carry = 0;
-        $carry_shift = 8 - $shift;
-        for ($i = 0; $i < strlen($x); ++$i) {
-            $temp = (ord($x[$i]) >> $shift) | $carry;
-            $carry = (ord($x[$i]) << $carry_shift) & 0xFF;
-            $x[$i] = chr($temp);
-        }
-        $x = ltrim($x, chr(0));
-
-        $remainder = chr($carry >> $carry_shift) . $remainder;
-
-        return ltrim($remainder, chr(0));
-    }
-
-    // one quirk about how the following functions are implemented is that PHP defines N to be an unsigned long
-    // at 32-bits, while java's longs are 64-bits.
-
-    /**
-     * Converts 32-bit integers to bytes.
-     *
-     * @param int $x
-     * @return string
-     * @access private
-     */
-    function _int2bytes($x)
-    {
-        return ltrim(pack('N', $x), chr(0));
-    }
-
-    /**
-     * Converts bytes to 32-bit integers
-     *
-     * @param string $x
-     * @return int
-     * @access private
-     */
-    function _bytes2int($x)
-    {
-        $temp = unpack('Nint', str_pad($x, 4, chr(0), STR_PAD_LEFT));
-        return $temp['int'];
-    }
-
-    /**
-     * DER-encode an integer
-     *
-     * The ability to DER-encode integers is needed to create RSA public keys for use with OpenSSL
-     *
-     * @see self::modPow()
-     * @access private
-     * @param int $length
-     * @return string
-     */
-    function _encodeASN1Length($length)
-    {
-        if ($length <= 0x7F) {
-            return chr($length);
-        }
-
-        $temp = ltrim(pack('N', $length), chr(0));
-        return pack('Ca*', 0x80 | strlen($temp), $temp);
-    }
-
-    /**
-     * Single digit division
-     *
-     * Even if int64 is being used the division operator will return a float64 value
-     * if the dividend is not evenly divisible by the divisor. Since a float64 doesn't
-     * have the precision of int64 this is a problem so, when int64 is being used,
-     * we'll guarantee that the dividend is divisible by first subtracting the remainder.
-     *
-     * @access private
-     * @param int $x
-     * @param int $y
-     * @return int
-     */
-    function _safe_divide($x, $y)
-    {
-        if (self::$base === 26) {
-            return (int) ($x / $y);
-        }
-
-        // self::$base === 31
-        return ($x - ($x % $y)) / $y;
-    }
-}
diff --git a/wiki/vendor/phpseclib/phpseclib/phpseclib/Net/SCP.php b/wiki/vendor/phpseclib/phpseclib/phpseclib/Net/SCP.php
deleted file mode 100644
index f95bce6..0000000
--- a/wiki/vendor/phpseclib/phpseclib/phpseclib/Net/SCP.php
+++ /dev/null
@@ -1,337 +0,0 @@
-<?php
-
-/**
- * Pure-PHP implementation of SCP.
- *
- * PHP version 5
- *
- * The API for this library is modeled after the API from PHP's {@link http://php.net/book.ftp FTP extension}.
- *
- * Here's a short example of how to use this library:
- * <code>
- * <?php
- *    include 'vendor/autoload.php';
- *
- *    $ssh = new \phpseclib\Net\SSH2('www.domain.tld');
- *    if (!$ssh->login('username', 'password')) {
- *        exit('bad login');
- *    }
- *    $scp = new \phpseclib\Net\SCP($ssh);
- *
- *    $scp->put('abcd', str_repeat('x', 1024*1024));
- * ?>
- * </code>
- *
- * @category  Net
- * @package   SCP
- * @author    Jim Wigginton <terrafrost@php.net>
- * @copyright 2010 Jim Wigginton
- * @license   http://www.opensource.org/licenses/mit-license.html  MIT License
- * @link      http://phpseclib.sourceforge.net
- */
-
-namespace phpseclib\Net;
-
-/**
- * Pure-PHP implementations of SCP.
- *
- * @package SCP
- * @author  Jim Wigginton <terrafrost@php.net>
- * @access  public
- */
-class SCP
-{
-    /**#@+
-     * @access public
-     * @see \phpseclib\Net\SCP::put()
-     */
-    /**
-     * Reads data from a local file.
-     */
-    const SOURCE_LOCAL_FILE = 1;
-    /**
-     * Reads data from a string.
-     */
-    const SOURCE_STRING = 2;
-    /**#@-*/
-
-    /**#@+
-     * @access private
-     * @see \phpseclib\Net\SCP::_send()
-     * @see \phpseclib\Net\SCP::_receive()
-    */
-    /**
-     * SSH1 is being used.
-     */
-    const MODE_SSH1 = 1;
-    /**
-     * SSH2 is being used.
-     */
-    const MODE_SSH2 =  2;
-    /**#@-*/
-
-    /**
-     * SSH Object
-     *
-     * @var object
-     * @access private
-     */
-    var $ssh;
-
-    /**
-     * Packet Size
-     *
-     * @var int
-     * @access private
-     */
-    var $packet_size;
-
-    /**
-     * Mode
-     *
-     * @var int
-     * @access private
-     */
-    var $mode;
-
-    /**
-     * Default Constructor.
-     *
-     * Connects to an SSH server
-     *
-     * @param \phpseclib\Net\SSH1|\phpseclib\Net\SSH2 $ssh
-     * @return \phpseclib\Net\SCP
-     * @access public
-     */
-    function __construct($ssh)
-    {
-        if ($ssh instanceof SSH2) {
-            $this->mode = self::MODE_SSH2;
-        } elseif ($ssh instanceof SSH1) {
-            $this->packet_size = 50000;
-            $this->mode = self::MODE_SSH1;
-        } else {
-            return;
-        }
-
-        $this->ssh = $ssh;
-    }
-
-    /**
-     * Uploads a file to the SCP server.
-     *
-     * By default, \phpseclib\Net\SCP::put() does not read from the local filesystem.  $data is dumped directly into $remote_file.
-     * So, for example, if you set $data to 'filename.ext' and then do \phpseclib\Net\SCP::get(), you will get a file, twelve bytes
-     * long, containing 'filename.ext' as its contents.
-     *
-     * Setting $mode to self::SOURCE_LOCAL_FILE will change the above behavior.  With self::SOURCE_LOCAL_FILE, $remote_file will
-     * contain as many bytes as filename.ext does on your local filesystem.  If your filename.ext is 1MB then that is how
-     * large $remote_file will be, as well.
-     *
-     * Currently, only binary mode is supported.  As such, if the line endings need to be adjusted, you will need to take
-     * care of that, yourself.
-     *
-     * @param string $remote_file
-     * @param string $data
-     * @param int $mode
-     * @param callable $callback
-     * @return bool
-     * @access public
-     */
-    function put($remote_file, $data, $mode = self::SOURCE_STRING, $callback = null)
-    {
-        if (!isset($this->ssh)) {
-            return false;
-        }
-
-        if (!$this->ssh->exec('scp -t ' . escapeshellarg($remote_file), false)) { // -t = to
-            return false;
-        }
-
-        $temp = $this->_receive();
-        if ($temp !== chr(0)) {
-            return false;
-        }
-
-        if ($this->mode == self::MODE_SSH2) {
-            $this->packet_size = $this->ssh->packet_size_client_to_server[SSH2::CHANNEL_EXEC] - 4;
-        }
-
-        $remote_file = basename($remote_file);
-
-        if ($mode == self::SOURCE_STRING) {
-            $size = strlen($data);
-        } else {
-            if (!is_file($data)) {
-                user_error("$data is not a valid file", E_USER_NOTICE);
-                return false;
-            }
-
-            $fp = @fopen($data, 'rb');
-            if (!$fp) {
-                return false;
-            }
-            $size = filesize($data);
-        }
-
-        $this->_send('C0644 ' . $size . ' ' . $remote_file . "\n");
-
-        $temp = $this->_receive();
-        if ($temp !== chr(0)) {
-            return false;
-        }
-
-        $sent = 0;
-        while ($sent < $size) {
-            $temp = $mode & self::SOURCE_STRING ? substr($data, $sent, $this->packet_size) : fread($fp, $this->packet_size);
-            $this->_send($temp);
-            $sent+= strlen($temp);
-
-            if (is_callable($callback)) {
-                call_user_func($callback, $sent);
-            }
-        }
-        $this->_close();
-
-        if ($mode != self::SOURCE_STRING) {
-            fclose($fp);
-        }
-
-        return true;
-    }
-
-    /**
-     * Downloads a file from the SCP server.
-     *
-     * Returns a string containing the contents of $remote_file if $local_file is left undefined or a boolean false if
-     * the operation was unsuccessful.  If $local_file is defined, returns true or false depending on the success of the
-     * operation
-     *
-     * @param string $remote_file
-     * @param string $local_file
-     * @return mixed
-     * @access public
-     */
-    function get($remote_file, $local_file = false)
-    {
-        if (!isset($this->ssh)) {
-            return false;
-        }
-
-        if (!$this->ssh->exec('scp -f ' . escapeshellarg($remote_file), false)) { // -f = from
-            return false;
-        }
-
-        $this->_send("\0");
-
-        if (!preg_match('#(?<perms>[^ ]+) (?<size>\d+) (?<name>.+)#', rtrim($this->_receive()), $info)) {
-            return false;
-        }
-
-        $this->_send("\0");
-
-        $size = 0;
-
-        if ($local_file !== false) {
-            $fp = @fopen($local_file, 'wb');
-            if (!$fp) {
-                return false;
-            }
-        }
-
-        $content = '';
-        while ($size < $info['size']) {
-            $data = $this->_receive();
-            // SCP usually seems to split stuff out into 16k chunks
-            $size+= strlen($data);
-
-            if ($local_file === false) {
-                $content.= $data;
-            } else {
-                fputs($fp, $data);
-            }
-        }
-
-        $this->_close();
-
-        if ($local_file !== false) {
-            fclose($fp);
-            return true;
-        }
-
-        return $content;
-    }
-
-    /**
-     * Sends a packet to an SSH server
-     *
-     * @param string $data
-     * @access private
-     */
-    function _send($data)
-    {
-        switch ($this->mode) {
-            case self::MODE_SSH2:
-                $this->ssh->_send_channel_packet(SSH2::CHANNEL_EXEC, $data);
-                break;
-            case self::MODE_SSH1:
-                $data = pack('CNa*', NET_SSH1_CMSG_STDIN_DATA, strlen($data), $data);
-                $this->ssh->_send_binary_packet($data);
-        }
-    }
-
-    /**
-     * Receives a packet from an SSH server
-     *
-     * @return string
-     * @access private
-     */
-    function _receive()
-    {
-        switch ($this->mode) {
-            case self::MODE_SSH2:
-                return $this->ssh->_get_channel_packet(SSH2::CHANNEL_EXEC, true);
-            case self::MODE_SSH1:
-                if (!$this->ssh->bitmap) {
-                    return false;
-                }
-                while (true) {
-                    $response = $this->ssh->_get_binary_packet();
-                    switch ($response[SSH1::RESPONSE_TYPE]) {
-                        case NET_SSH1_SMSG_STDOUT_DATA:
-                            if (strlen($response[SSH1::RESPONSE_DATA]) < 4) {
-                                return false;
-                            }
-                            extract(unpack('Nlength', $response[SSH1::RESPONSE_DATA]));
-                            return $this->ssh->_string_shift($response[SSH1::RESPONSE_DATA], $length);
-                        case NET_SSH1_SMSG_STDERR_DATA:
-                            break;
-                        case NET_SSH1_SMSG_EXITSTATUS:
-                            $this->ssh->_send_binary_packet(chr(NET_SSH1_CMSG_EXIT_CONFIRMATION));
-                            fclose($this->ssh->fsock);
-                            $this->ssh->bitmap = 0;
-                            return false;
-                        default:
-                            user_error('Unknown packet received', E_USER_NOTICE);
-                            return false;
-                    }
-                }
-        }
-    }
-
-    /**
-     * Closes the connection to an SSH server
-     *
-     * @access private
-     */
-    function _close()
-    {
-        switch ($this->mode) {
-            case self::MODE_SSH2:
-                $this->ssh->_close_channel(SSH2::CHANNEL_EXEC, true);
-                break;
-            case self::MODE_SSH1:
-                $this->ssh->disconnect();
-        }
-    }
-}
diff --git a/wiki/vendor/phpseclib/phpseclib/phpseclib/Net/SFTP.php b/wiki/vendor/phpseclib/phpseclib/phpseclib/Net/SFTP.php
deleted file mode 100644
index 8825f30..0000000
--- a/wiki/vendor/phpseclib/phpseclib/phpseclib/Net/SFTP.php
+++ /dev/null
@@ -1,3104 +0,0 @@
-<?php
-
-/**
- * Pure-PHP implementation of SFTP.
- *
- * PHP version 5
- *
- * Currently only supports SFTPv2 and v3, which, according to wikipedia.org, "is the most widely used version,
- * implemented by the popular OpenSSH SFTP server".  If you want SFTPv4/5/6 support, provide me with access
- * to an SFTPv4/5/6 server.
- *
- * The API for this library is modeled after the API from PHP's {@link http://php.net/book.ftp FTP extension}.
- *
- * Here's a short example of how to use this library:
- * <code>
- * <?php
- *    include 'vendor/autoload.php';
- *
- *    $sftp = new \phpseclib\Net\SFTP('www.domain.tld');
- *    if (!$sftp->login('username', 'password')) {
- *        exit('Login Failed');
- *    }
- *
- *    echo $sftp->pwd() . "\r\n";
- *    $sftp->put('filename.ext', 'hello, world!');
- *    print_r($sftp->nlist());
- * ?>
- * </code>
- *
- * @category  Net
- * @package   SFTP
- * @author    Jim Wigginton <terrafrost@php.net>
- * @copyright 2009 Jim Wigginton
- * @license   http://www.opensource.org/licenses/mit-license.html  MIT License
- * @link      http://phpseclib.sourceforge.net
- */
-
-namespace phpseclib\Net;
-
-/**
- * Pure-PHP implementations of SFTP.
- *
- * @package SFTP
- * @author  Jim Wigginton <terrafrost@php.net>
- * @access  public
- */
-class SFTP extends SSH2
-{
-    /**
-     * SFTP channel constant
-     *
-     * \phpseclib\Net\SSH2::exec() uses 0 and \phpseclib\Net\SSH2::read() / \phpseclib\Net\SSH2::write() use 1.
-     *
-     * @see \phpseclib\Net\SSH2::_send_channel_packet()
-     * @see \phpseclib\Net\SSH2::_get_channel_packet()
-     * @access private
-     */
-    const CHANNEL = 0x100;
-
-    /**#@+
-     * @access public
-     * @see \phpseclib\Net\SFTP::put()
-    */
-    /**
-     * Reads data from a local file.
-     */
-    const SOURCE_LOCAL_FILE = 1;
-    /**
-     * Reads data from a string.
-     */
-    // this value isn't really used anymore but i'm keeping it reserved for historical reasons
-    const SOURCE_STRING = 2;
-    /**
-     * Reads data from callback:
-     * function callback($length) returns string to proceed, null for EOF
-     */
-    const SOURCE_CALLBACK = 16;
-    /**
-     * Resumes an upload
-     */
-    const RESUME = 4;
-    /**
-     * Append a local file to an already existing remote file
-     */
-    const RESUME_START = 8;
-    /**#@-*/
-
-    /**
-     * Packet Types
-     *
-     * @see self::__construct()
-     * @var array
-     * @access private
-     */
-    var $packet_types = array();
-
-    /**
-     * Status Codes
-     *
-     * @see self::__construct()
-     * @var array
-     * @access private
-     */
-    var $status_codes = array();
-
-    /**
-     * The Request ID
-     *
-     * The request ID exists in the off chance that a packet is sent out-of-order.  Of course, this library doesn't support
-     * concurrent actions, so it's somewhat academic, here.
-     *
-     * @var int
-     * @see self::_send_sftp_packet()
-     * @access private
-     */
-    var $request_id = false;
-
-    /**
-     * The Packet Type
-     *
-     * The request ID exists in the off chance that a packet is sent out-of-order.  Of course, this library doesn't support
-     * concurrent actions, so it's somewhat academic, here.
-     *
-     * @var int
-     * @see self::_get_sftp_packet()
-     * @access private
-     */
-    var $packet_type = -1;
-
-    /**
-     * Packet Buffer
-     *
-     * @var string
-     * @see self::_get_sftp_packet()
-     * @access private
-     */
-    var $packet_buffer = '';
-
-    /**
-     * Extensions supported by the server
-     *
-     * @var array
-     * @see self::_initChannel()
-     * @access private
-     */
-    var $extensions = array();
-
-    /**
-     * Server SFTP version
-     *
-     * @var int
-     * @see self::_initChannel()
-     * @access private
-     */
-    var $version;
-
-    /**
-     * Current working directory
-     *
-     * @var string
-     * @see self::realpath()
-     * @see self::chdir()
-     * @access private
-     */
-    var $pwd = false;
-
-    /**
-     * Packet Type Log
-     *
-     * @see self::getLog()
-     * @var array
-     * @access private
-     */
-    var $packet_type_log = array();
-
-    /**
-     * Packet Log
-     *
-     * @see self::getLog()
-     * @var array
-     * @access private
-     */
-    var $packet_log = array();
-
-    /**
-     * Error information
-     *
-     * @see self::getSFTPErrors()
-     * @see self::getLastSFTPError()
-     * @var array
-     * @access private
-     */
-    var $sftp_errors = array();
-
-    /**
-     * Stat Cache
-     *
-     * Rather than always having to open a directory and close it immediately there after to see if a file is a directory
-     * we'll cache the results.
-     *
-     * @see self::_update_stat_cache()
-     * @see self::_remove_from_stat_cache()
-     * @see self::_query_stat_cache()
-     * @var array
-     * @access private
-     */
-    var $stat_cache = array();
-
-    /**
-     * Max SFTP Packet Size
-     *
-     * @see self::__construct()
-     * @see self::get()
-     * @var array
-     * @access private
-     */
-    var $max_sftp_packet;
-
-    /**
-     * Stat Cache Flag
-     *
-     * @see self::disableStatCache()
-     * @see self::enableStatCache()
-     * @var bool
-     * @access private
-     */
-    var $use_stat_cache = true;
-
-    /**
-     * Sort Options
-     *
-     * @see self::_comparator()
-     * @see self::setListOrder()
-     * @var array
-     * @access private
-     */
-    var $sortOptions = array();
-
-    /**
-     * Canonicalization Flag
-     *
-     * Determines whether or not paths should be canonicalized before being
-     * passed on to the remote server.
-     *
-     * @see self::enablePathCanonicalization()
-     * @see self::disablePathCanonicalization()
-     * @see self::realpath()
-     * @var bool
-     * @access private
-     */
-    var $canonicalize_paths = true;
-
-    /**
-     * Default Constructor.
-     *
-     * Connects to an SFTP server
-     *
-     * @param string $host
-     * @param int $port
-     * @param int $timeout
-     * @return \phpseclib\Net\SFTP
-     * @access public
-     */
-    function __construct($host, $port = 22, $timeout = 10)
-    {
-        parent::__construct($host, $port, $timeout);
-
-        $this->max_sftp_packet = 1 << 15;
-
-        $this->packet_types = array(
-            1  => 'NET_SFTP_INIT',
-            2  => 'NET_SFTP_VERSION',
-            /* the format of SSH_FXP_OPEN changed between SFTPv4 and SFTPv5+:
-                   SFTPv5+: http://tools.ietf.org/html/draft-ietf-secsh-filexfer-13#section-8.1.1
-               pre-SFTPv5 : http://tools.ietf.org/html/draft-ietf-secsh-filexfer-04#section-6.3 */
-            3  => 'NET_SFTP_OPEN',
-            4  => 'NET_SFTP_CLOSE',
-            5  => 'NET_SFTP_READ',
-            6  => 'NET_SFTP_WRITE',
-            7  => 'NET_SFTP_LSTAT',
-            9  => 'NET_SFTP_SETSTAT',
-            11 => 'NET_SFTP_OPENDIR',
-            12 => 'NET_SFTP_READDIR',
-            13 => 'NET_SFTP_REMOVE',
-            14 => 'NET_SFTP_MKDIR',
-            15 => 'NET_SFTP_RMDIR',
-            16 => 'NET_SFTP_REALPATH',
-            17 => 'NET_SFTP_STAT',
-            /* the format of SSH_FXP_RENAME changed between SFTPv4 and SFTPv5+:
-                   SFTPv5+: http://tools.ietf.org/html/draft-ietf-secsh-filexfer-13#section-8.3
-               pre-SFTPv5 : http://tools.ietf.org/html/draft-ietf-secsh-filexfer-04#section-6.5 */
-            18 => 'NET_SFTP_RENAME',
-            19 => 'NET_SFTP_READLINK',
-            20 => 'NET_SFTP_SYMLINK',
-
-            101=> 'NET_SFTP_STATUS',
-            102=> 'NET_SFTP_HANDLE',
-            /* the format of SSH_FXP_NAME changed between SFTPv3 and SFTPv4+:
-                   SFTPv4+: http://tools.ietf.org/html/draft-ietf-secsh-filexfer-13#section-9.4
-               pre-SFTPv4 : http://tools.ietf.org/html/draft-ietf-secsh-filexfer-02#section-7 */
-            103=> 'NET_SFTP_DATA',
-            104=> 'NET_SFTP_NAME',
-            105=> 'NET_SFTP_ATTRS',
-
-            200=> 'NET_SFTP_EXTENDED'
-        );
-        $this->status_codes = array(
-            0 => 'NET_SFTP_STATUS_OK',
-            1 => 'NET_SFTP_STATUS_EOF',
-            2 => 'NET_SFTP_STATUS_NO_SUCH_FILE',
-            3 => 'NET_SFTP_STATUS_PERMISSION_DENIED',
-            4 => 'NET_SFTP_STATUS_FAILURE',
-            5 => 'NET_SFTP_STATUS_BAD_MESSAGE',
-            6 => 'NET_SFTP_STATUS_NO_CONNECTION',
-            7 => 'NET_SFTP_STATUS_CONNECTION_LOST',
-            8 => 'NET_SFTP_STATUS_OP_UNSUPPORTED',
-            9 => 'NET_SFTP_STATUS_INVALID_HANDLE',
-            10 => 'NET_SFTP_STATUS_NO_SUCH_PATH',
-            11 => 'NET_SFTP_STATUS_FILE_ALREADY_EXISTS',
-            12 => 'NET_SFTP_STATUS_WRITE_PROTECT',
-            13 => 'NET_SFTP_STATUS_NO_MEDIA',
-            14 => 'NET_SFTP_STATUS_NO_SPACE_ON_FILESYSTEM',
-            15 => 'NET_SFTP_STATUS_QUOTA_EXCEEDED',
-            16 => 'NET_SFTP_STATUS_UNKNOWN_PRINCIPAL',
-            17 => 'NET_SFTP_STATUS_LOCK_CONFLICT',
-            18 => 'NET_SFTP_STATUS_DIR_NOT_EMPTY',
-            19 => 'NET_SFTP_STATUS_NOT_A_DIRECTORY',
-            20 => 'NET_SFTP_STATUS_INVALID_FILENAME',
-            21 => 'NET_SFTP_STATUS_LINK_LOOP',
-            22 => 'NET_SFTP_STATUS_CANNOT_DELETE',
-            23 => 'NET_SFTP_STATUS_INVALID_PARAMETER',
-            24 => 'NET_SFTP_STATUS_FILE_IS_A_DIRECTORY',
-            25 => 'NET_SFTP_STATUS_BYTE_RANGE_LOCK_CONFLICT',
-            26 => 'NET_SFTP_STATUS_BYTE_RANGE_LOCK_REFUSED',
-            27 => 'NET_SFTP_STATUS_DELETE_PENDING',
-            28 => 'NET_SFTP_STATUS_FILE_CORRUPT',
-            29 => 'NET_SFTP_STATUS_OWNER_INVALID',
-            30 => 'NET_SFTP_STATUS_GROUP_INVALID',
-            31 => 'NET_SFTP_STATUS_NO_MATCHING_BYTE_RANGE_LOCK'
-        );
-        // http://tools.ietf.org/html/draft-ietf-secsh-filexfer-13#section-7.1
-        // the order, in this case, matters quite a lot - see \phpseclib\Net\SFTP::_parseAttributes() to understand why
-        $this->attributes = array(
-            0x00000001 => 'NET_SFTP_ATTR_SIZE',
-            0x00000002 => 'NET_SFTP_ATTR_UIDGID', // defined in SFTPv3, removed in SFTPv4+
-            0x00000004 => 'NET_SFTP_ATTR_PERMISSIONS',
-            0x00000008 => 'NET_SFTP_ATTR_ACCESSTIME',
-            // 0x80000000 will yield a floating point on 32-bit systems and converting floating points to integers
-            // yields inconsistent behavior depending on how php is compiled.  so we left shift -1 (which, in
-            // two's compliment, consists of all 1 bits) by 31.  on 64-bit systems this'll yield 0xFFFFFFFF80000000.
-            // that's not a problem, however, and 'anded' and a 32-bit number, as all the leading 1 bits are ignored.
-            (-1 << 31) & 0xFFFFFFFF => 'NET_SFTP_ATTR_EXTENDED'
-        );
-        // http://tools.ietf.org/html/draft-ietf-secsh-filexfer-04#section-6.3
-        // the flag definitions change somewhat in SFTPv5+.  if SFTPv5+ support is added to this library, maybe name
-        // the array for that $this->open5_flags and similarly alter the constant names.
-        $this->open_flags = array(
-            0x00000001 => 'NET_SFTP_OPEN_READ',
-            0x00000002 => 'NET_SFTP_OPEN_WRITE',
-            0x00000004 => 'NET_SFTP_OPEN_APPEND',
-            0x00000008 => 'NET_SFTP_OPEN_CREATE',
-            0x00000010 => 'NET_SFTP_OPEN_TRUNCATE',
-            0x00000020 => 'NET_SFTP_OPEN_EXCL'
-        );
-        // http://tools.ietf.org/html/draft-ietf-secsh-filexfer-04#section-5.2
-        // see \phpseclib\Net\SFTP::_parseLongname() for an explanation
-        $this->file_types = array(
-            1 => 'NET_SFTP_TYPE_REGULAR',
-            2 => 'NET_SFTP_TYPE_DIRECTORY',
-            3 => 'NET_SFTP_TYPE_SYMLINK',
-            4 => 'NET_SFTP_TYPE_SPECIAL',
-            5 => 'NET_SFTP_TYPE_UNKNOWN',
-            // the followin types were first defined for use in SFTPv5+
-            // http://tools.ietf.org/html/draft-ietf-secsh-filexfer-05#section-5.2
-            6 => 'NET_SFTP_TYPE_SOCKET',
-            7 => 'NET_SFTP_TYPE_CHAR_DEVICE',
-            8 => 'NET_SFTP_TYPE_BLOCK_DEVICE',
-            9 => 'NET_SFTP_TYPE_FIFO'
-        );
-        $this->_define_array(
-            $this->packet_types,
-            $this->status_codes,
-            $this->attributes,
-            $this->open_flags,
-            $this->file_types
-        );
-
-        if (!defined('NET_SFTP_QUEUE_SIZE')) {
-            define('NET_SFTP_QUEUE_SIZE', 32);
-        }
-    }
-
-    /**
-     * Login
-     *
-     * @param string $username
-     * @param string $password
-     * @return bool
-     * @access public
-     */
-    function login($username)
-    {
-        $args = func_get_args();
-        if (!call_user_func_array(array(&$this, '_login'), $args)) {
-            return false;
-        }
-
-        $this->window_size_server_to_client[self::CHANNEL] = $this->window_size;
-
-        $packet = pack(
-            'CNa*N3',
-            NET_SSH2_MSG_CHANNEL_OPEN,
-            strlen('session'),
-            'session',
-            self::CHANNEL,
-            $this->window_size,
-            0x4000
-        );
-
-        if (!$this->_send_binary_packet($packet)) {
-            return false;
-        }
-
-        $this->channel_status[self::CHANNEL] = NET_SSH2_MSG_CHANNEL_OPEN;
-
-        $response = $this->_get_channel_packet(self::CHANNEL, true);
-        if ($response === false) {
-            return false;
-        }
-
-        $packet = pack(
-            'CNNa*CNa*',
-            NET_SSH2_MSG_CHANNEL_REQUEST,
-            $this->server_channels[self::CHANNEL],
-            strlen('subsystem'),
-            'subsystem',
-            1,
-            strlen('sftp'),
-            'sftp'
-        );
-        if (!$this->_send_binary_packet($packet)) {
-            return false;
-        }
-
-        $this->channel_status[self::CHANNEL] = NET_SSH2_MSG_CHANNEL_REQUEST;
-
-        $response = $this->_get_channel_packet(self::CHANNEL, true);
-        if ($response === false) {
-            // from PuTTY's psftp.exe
-            $command = "test -x /usr/lib/sftp-server && exec /usr/lib/sftp-server\n" .
-                       "test -x /usr/local/lib/sftp-server && exec /usr/local/lib/sftp-server\n" .
-                       "exec sftp-server";
-            // we don't do $this->exec($command, false) because exec() operates on a different channel and plus the SSH_MSG_CHANNEL_OPEN that exec() does
-            // is redundant
-            $packet = pack(
-                'CNNa*CNa*',
-                NET_SSH2_MSG_CHANNEL_REQUEST,
-                $this->server_channels[self::CHANNEL],
-                strlen('exec'),
-                'exec',
-                1,
-                strlen($command),
-                $command
-            );
-            if (!$this->_send_binary_packet($packet)) {
-                return false;
-            }
-
-            $this->channel_status[self::CHANNEL] = NET_SSH2_MSG_CHANNEL_REQUEST;
-
-            $response = $this->_get_channel_packet(self::CHANNEL, true);
-            if ($response === false) {
-                return false;
-            }
-        }
-
-        $this->channel_status[self::CHANNEL] = NET_SSH2_MSG_CHANNEL_DATA;
-
-        if (!$this->_send_sftp_packet(NET_SFTP_INIT, "\0\0\0\3")) {
-            return false;
-        }
-
-        $response = $this->_get_sftp_packet();
-        if ($this->packet_type != NET_SFTP_VERSION) {
-            user_error('Expected SSH_FXP_VERSION');
-            return false;
-        }
-
-        if (strlen($response) < 4) {
-            return false;
-        }
-        extract(unpack('Nversion', $this->_string_shift($response, 4)));
-        $this->version = $version;
-        while (!empty($response)) {
-            if (strlen($response) < 4) {
-                return false;
-            }
-            extract(unpack('Nlength', $this->_string_shift($response, 4)));
-            $key = $this->_string_shift($response, $length);
-            if (strlen($response) < 4) {
-                return false;
-            }
-            extract(unpack('Nlength', $this->_string_shift($response, 4)));
-            $value = $this->_string_shift($response, $length);
-            $this->extensions[$key] = $value;
-        }
-
-        /*
-         SFTPv4+ defines a 'newline' extension.  SFTPv3 seems to have unofficial support for it via 'newline@vandyke.com',
-         however, I'm not sure what 'newline@vandyke.com' is supposed to do (the fact that it's unofficial means that it's
-         not in the official SFTPv3 specs) and 'newline@vandyke.com' / 'newline' are likely not drop-in substitutes for
-         one another due to the fact that 'newline' comes with a SSH_FXF_TEXT bitmask whereas it seems unlikely that
-         'newline@vandyke.com' would.
-        */
-        /*
-        if (isset($this->extensions['newline@vandyke.com'])) {
-            $this->extensions['newline'] = $this->extensions['newline@vandyke.com'];
-            unset($this->extensions['newline@vandyke.com']);
-        }
-        */
-
-        $this->request_id = 1;
-
-        /*
-         A Note on SFTPv4/5/6 support:
-         <http://tools.ietf.org/html/draft-ietf-secsh-filexfer-13#section-5.1> states the following:
-
-         "If the client wishes to interoperate with servers that support noncontiguous version
-          numbers it SHOULD send '3'"
-
-         Given that the server only sends its version number after the client has already done so, the above
-         seems to be suggesting that v3 should be the default version.  This makes sense given that v3 is the
-         most popular.
-
-         <http://tools.ietf.org/html/draft-ietf-secsh-filexfer-13#section-5.5> states the following;
-
-         "If the server did not send the "versions" extension, or the version-from-list was not included, the
-          server MAY send a status response describing the failure, but MUST then close the channel without
-          processing any further requests."
-
-         So what do you do if you have a client whose initial SSH_FXP_INIT packet says it implements v3 and
-         a server whose initial SSH_FXP_VERSION reply says it implements v4 and only v4?  If it only implements
-         v4, the "versions" extension is likely not going to have been sent so version re-negotiation as discussed
-         in draft-ietf-secsh-filexfer-13 would be quite impossible.  As such, what \phpseclib\Net\SFTP would do is close the
-         channel and reopen it with a new and updated SSH_FXP_INIT packet.
-        */
-        switch ($this->version) {
-            case 2:
-            case 3:
-                break;
-            default:
-                return false;
-        }
-
-        $this->pwd = $this->_realpath('.');
-
-        $this->_update_stat_cache($this->pwd, array());
-
-        return true;
-    }
-
-    /**
-     * Disable the stat cache
-     *
-     * @access public
-     */
-    function disableStatCache()
-    {
-        $this->use_stat_cache = false;
-    }
-
-    /**
-     * Enable the stat cache
-     *
-     * @access public
-     */
-    function enableStatCache()
-    {
-        $this->use_stat_cache = true;
-    }
-
-    /**
-     * Clear the stat cache
-     *
-     * @access public
-     */
-    function clearStatCache()
-    {
-        $this->stat_cache = array();
-    }
-
-    /**
-     * Enable path canonicalization
-     *
-     * @access public
-     */
-    function enablePathCanonicalization()
-    {
-        $this->canonicalize_paths = true;
-    }
-
-    /**
-     * Enable path canonicalization
-     *
-     * @access public
-     */
-    function disablePathCanonicalization()
-    {
-        $this->canonicalize_paths = false;
-    }
-
-    /**
-     * Returns the current directory name
-     *
-     * @return mixed
-     * @access public
-     */
-    function pwd()
-    {
-        return $this->pwd;
-    }
-
-    /**
-     * Logs errors
-     *
-     * @param string $response
-     * @param int $status
-     * @access public
-     */
-    function _logError($response, $status = -1)
-    {
-        if ($status == -1) {
-            if (strlen($response) < 4) {
-                return;
-            }
-            extract(unpack('Nstatus', $this->_string_shift($response, 4)));
-        }
-
-        $error = $this->status_codes[$status];
-
-        if ($this->version > 2 || strlen($response) < 4) {
-            extract(unpack('Nlength', $this->_string_shift($response, 4)));
-            $this->sftp_errors[] = $error . ': ' . $this->_string_shift($response, $length);
-        } else {
-            $this->sftp_errors[] = $error;
-        }
-    }
-
-    /**
-     * Returns canonicalized absolute pathname
-     *
-     * realpath() expands all symbolic links and resolves references to '/./', '/../' and extra '/' characters in the input
-     * path and returns the canonicalized absolute pathname.
-     *
-     * @param string $path
-     * @return mixed
-     * @access public
-     */
-    function realpath($path)
-    {
-        return $this->_realpath($path);
-    }
-
-    /**
-     * Canonicalize the Server-Side Path Name
-     *
-     * SFTP doesn't provide a mechanism by which the current working directory can be changed, so we'll emulate it.  Returns
-     * the absolute (canonicalized) path.
-     *
-     * If canonicalize_paths has been disabled using disablePathCanonicalization(), $path is returned as-is.
-     *
-     * @see self::chdir()
-     * @see self::disablePathCanonicalization()
-     * @param string $path
-     * @return mixed
-     * @access private
-     */
-    function _realpath($path)
-    {
-        if (!$this->canonicalize_paths) {
-            return $path;
-        }
-
-        if ($this->pwd === false) {
-            // http://tools.ietf.org/html/draft-ietf-secsh-filexfer-13#section-8.9
-            if (!$this->_send_sftp_packet(NET_SFTP_REALPATH, pack('Na*', strlen($path), $path))) {
-                return false;
-            }
-
-            $response = $this->_get_sftp_packet();
-            switch ($this->packet_type) {
-                case NET_SFTP_NAME:
-                    // although SSH_FXP_NAME is implemented differently in SFTPv3 than it is in SFTPv4+, the following
-                    // should work on all SFTP versions since the only part of the SSH_FXP_NAME packet the following looks
-                    // at is the first part and that part is defined the same in SFTP versions 3 through 6.
-                    $this->_string_shift($response, 4); // skip over the count - it should be 1, anyway
-                    if (strlen($response) < 4) {
-                        return false;
-                    }
-                    extract(unpack('Nlength', $this->_string_shift($response, 4)));
-                    return $this->_string_shift($response, $length);
-                case NET_SFTP_STATUS:
-                    $this->_logError($response);
-                    return false;
-                default:
-                    user_error('Expected SSH_FXP_NAME or SSH_FXP_STATUS');
-                    return false;
-            }
-        }
-
-        if ($path[0] != '/') {
-            $path = $this->pwd . '/' . $path;
-        }
-
-        $path = explode('/', $path);
-        $new = array();
-        foreach ($path as $dir) {
-            if (!strlen($dir)) {
-                continue;
-            }
-            switch ($dir) {
-                case '..':
-                    array_pop($new);
-                case '.':
-                    break;
-                default:
-                    $new[] = $dir;
-            }
-        }
-
-        return '/' . implode('/', $new);
-    }
-
-    /**
-     * Changes the current directory
-     *
-     * @param string $dir
-     * @return bool
-     * @access public
-     */
-    function chdir($dir)
-    {
-        if (!($this->bitmap & SSH2::MASK_LOGIN)) {
-            return false;
-        }
-
-        // assume current dir if $dir is empty
-        if ($dir === '') {
-            $dir = './';
-        // suffix a slash if needed
-        } elseif ($dir[strlen($dir) - 1] != '/') {
-            $dir.= '/';
-        }
-
-        $dir = $this->_realpath($dir);
-
-        // confirm that $dir is, in fact, a valid directory
-        if ($this->use_stat_cache && is_array($this->_query_stat_cache($dir))) {
-            $this->pwd = $dir;
-            return true;
-        }
-
-        // we could do a stat on the alleged $dir to see if it's a directory but that doesn't tell us
-        // the currently logged in user has the appropriate permissions or not. maybe you could see if
-        // the file's uid / gid match the currently logged in user's uid / gid but how there's no easy
-        // way to get those with SFTP
-
-        if (!$this->_send_sftp_packet(NET_SFTP_OPENDIR, pack('Na*', strlen($dir), $dir))) {
-            return false;
-        }
-
-        // see \phpseclib\Net\SFTP::nlist() for a more thorough explanation of the following
-        $response = $this->_get_sftp_packet();
-        switch ($this->packet_type) {
-            case NET_SFTP_HANDLE:
-                $handle = substr($response, 4);
-                break;
-            case NET_SFTP_STATUS:
-                $this->_logError($response);
-                return false;
-            default:
-                user_error('Expected SSH_FXP_HANDLE or SSH_FXP_STATUS');
-                return false;
-        }
-
-        if (!$this->_close_handle($handle)) {
-            return false;
-        }
-
-        $this->_update_stat_cache($dir, array());
-
-        $this->pwd = $dir;
-        return true;
-    }
-
-    /**
-     * Returns a list of files in the given directory
-     *
-     * @param string $dir
-     * @param bool $recursive
-     * @return mixed
-     * @access public
-     */
-    function nlist($dir = '.', $recursive = false)
-    {
-        return $this->_nlist_helper($dir, $recursive, '');
-    }
-
-    /**
-     * Helper method for nlist
-     *
-     * @param string $dir
-     * @param bool $recursive
-     * @param string $relativeDir
-     * @return mixed
-     * @access private
-     */
-    function _nlist_helper($dir, $recursive, $relativeDir)
-    {
-        $files = $this->_list($dir, false);
-
-        if (!$recursive || $files === false) {
-            return $files;
-        }
-
-        $result = array();
-        foreach ($files as $value) {
-            if ($value == '.' || $value == '..') {
-                if ($relativeDir == '') {
-                    $result[] = $value;
-                }
-                continue;
-            }
-            if (is_array($this->_query_stat_cache($this->_realpath($dir . '/' . $value)))) {
-                $temp = $this->_nlist_helper($dir . '/' . $value, true, $relativeDir . $value . '/');
-                $result = array_merge($result, $temp);
-            } else {
-                $result[] = $relativeDir . $value;
-            }
-        }
-
-        return $result;
-    }
-
-    /**
-     * Returns a detailed list of files in the given directory
-     *
-     * @param string $dir
-     * @param bool $recursive
-     * @return mixed
-     * @access public
-     */
-    function rawlist($dir = '.', $recursive = false)
-    {
-        $files = $this->_list($dir, true);
-        if (!$recursive || $files === false) {
-            return $files;
-        }
-
-        static $depth = 0;
-
-        foreach ($files as $key => $value) {
-            if ($depth != 0 && $key == '..') {
-                unset($files[$key]);
-                continue;
-            }
-            if ($key != '.' && $key != '..' && is_array($this->_query_stat_cache($this->_realpath($dir . '/' . $key)))) {
-                $depth++;
-                $files[$key] = $this->rawlist($dir . '/' . $key, true);
-                $depth--;
-            } else {
-                $files[$key] = (object) $value;
-            }
-        }
-
-        return $files;
-    }
-
-    /**
-     * Reads a list, be it detailed or not, of files in the given directory
-     *
-     * @param string $dir
-     * @param bool $raw
-     * @return mixed
-     * @access private
-     */
-    function _list($dir, $raw = true)
-    {
-        if (!($this->bitmap & SSH2::MASK_LOGIN)) {
-            return false;
-        }
-
-        $dir = $this->_realpath($dir . '/');
-        if ($dir === false) {
-            return false;
-        }
-
-        // http://tools.ietf.org/html/draft-ietf-secsh-filexfer-13#section-8.1.2
-        if (!$this->_send_sftp_packet(NET_SFTP_OPENDIR, pack('Na*', strlen($dir), $dir))) {
-            return false;
-        }
-
-        $response = $this->_get_sftp_packet();
-        switch ($this->packet_type) {
-            case NET_SFTP_HANDLE:
-                // http://tools.ietf.org/html/draft-ietf-secsh-filexfer-13#section-9.2
-                // since 'handle' is the last field in the SSH_FXP_HANDLE packet, we'll just remove the first four bytes that
-                // represent the length of the string and leave it at that
-                $handle = substr($response, 4);
-                break;
-            case NET_SFTP_STATUS:
-                // presumably SSH_FX_NO_SUCH_FILE or SSH_FX_PERMISSION_DENIED
-                $this->_logError($response);
-                return false;
-            default:
-                user_error('Expected SSH_FXP_HANDLE or SSH_FXP_STATUS');
-                return false;
-        }
-
-        $this->_update_stat_cache($dir, array());
-
-        $contents = array();
-        while (true) {
-            // http://tools.ietf.org/html/draft-ietf-secsh-filexfer-13#section-8.2.2
-            // why multiple SSH_FXP_READDIR packets would be sent when the response to a single one can span arbitrarily many
-            // SSH_MSG_CHANNEL_DATA messages is not known to me.
-            if (!$this->_send_sftp_packet(NET_SFTP_READDIR, pack('Na*', strlen($handle), $handle))) {
-                return false;
-            }
-
-            $response = $this->_get_sftp_packet();
-            switch ($this->packet_type) {
-                case NET_SFTP_NAME:
-                    if (strlen($response) < 4) {
-                        return false;
-                    }
-                    extract(unpack('Ncount', $this->_string_shift($response, 4)));
-                    for ($i = 0; $i < $count; $i++) {
-                        if (strlen($response) < 4) {
-                            return false;
-                        }
-                        extract(unpack('Nlength', $this->_string_shift($response, 4)));
-                        $shortname = $this->_string_shift($response, $length);
-                        if (strlen($response) < 4) {
-                            return false;
-                        }
-                        extract(unpack('Nlength', $this->_string_shift($response, 4)));
-                        $longname = $this->_string_shift($response, $length);
-                        $attributes = $this->_parseAttributes($response);
-                        if (!isset($attributes['type'])) {
-                            $fileType = $this->_parseLongname($longname);
-                            if ($fileType) {
-                                $attributes['type'] = $fileType;
-                            }
-                        }
-                        $contents[$shortname] = $attributes + array('filename' => $shortname);
-
-                        if (isset($attributes['type']) && $attributes['type'] == NET_SFTP_TYPE_DIRECTORY && ($shortname != '.' && $shortname != '..')) {
-                            $this->_update_stat_cache($dir . '/' . $shortname, array());
-                        } else {
-                            if ($shortname == '..') {
-                                $temp = $this->_realpath($dir . '/..') . '/.';
-                            } else {
-                                $temp = $dir . '/' . $shortname;
-                            }
-                            $this->_update_stat_cache($temp, (object) array('lstat' => $attributes));
-                        }
-                        // SFTPv6 has an optional boolean end-of-list field, but we'll ignore that, since the
-                        // final SSH_FXP_STATUS packet should tell us that, already.
-                    }
-                    break;
-                case NET_SFTP_STATUS:
-                    if (strlen($response) < 4) {
-                        return false;
-                    }
-                    extract(unpack('Nstatus', $this->_string_shift($response, 4)));
-                    if ($status != NET_SFTP_STATUS_EOF) {
-                        $this->_logError($response, $status);
-                        return false;
-                    }
-                    break 2;
-                default:
-                    user_error('Expected SSH_FXP_NAME or SSH_FXP_STATUS');
-                    return false;
-            }
-        }
-
-        if (!$this->_close_handle($handle)) {
-            return false;
-        }
-
-        if (count($this->sortOptions)) {
-            uasort($contents, array(&$this, '_comparator'));
-        }
-
-        return $raw ? $contents : array_keys($contents);
-    }
-
-    /**
-     * Compares two rawlist entries using parameters set by setListOrder()
-     *
-     * Intended for use with uasort()
-     *
-     * @param array $a
-     * @param array $b
-     * @return int
-     * @access private
-     */
-    function _comparator($a, $b)
-    {
-        switch (true) {
-            case $a['filename'] === '.' || $b['filename'] === '.':
-                if ($a['filename'] === $b['filename']) {
-                    return 0;
-                }
-                return $a['filename'] === '.' ? -1 : 1;
-            case $a['filename'] === '..' || $b['filename'] === '..':
-                if ($a['filename'] === $b['filename']) {
-                    return 0;
-                }
-                return $a['filename'] === '..' ? -1 : 1;
-            case isset($a['type']) && $a['type'] === NET_SFTP_TYPE_DIRECTORY:
-                if (!isset($b['type'])) {
-                    return 1;
-                }
-                if ($b['type'] !== $a['type']) {
-                    return -1;
-                }
-                break;
-            case isset($b['type']) && $b['type'] === NET_SFTP_TYPE_DIRECTORY:
-                return 1;
-        }
-        foreach ($this->sortOptions as $sort => $order) {
-            if (!isset($a[$sort]) || !isset($b[$sort])) {
-                if (isset($a[$sort])) {
-                    return -1;
-                }
-                if (isset($b[$sort])) {
-                    return 1;
-                }
-                return 0;
-            }
-            switch ($sort) {
-                case 'filename':
-                    $result = strcasecmp($a['filename'], $b['filename']);
-                    if ($result) {
-                        return $order === SORT_DESC ? -$result : $result;
-                    }
-                    break;
-                case 'permissions':
-                case 'mode':
-                    $a[$sort]&= 07777;
-                    $b[$sort]&= 07777;
-                default:
-                    if ($a[$sort] === $b[$sort]) {
-                        break;
-                    }
-                    return $order === SORT_ASC ? $a[$sort] - $b[$sort] : $b[$sort] - $a[$sort];
-            }
-        }
-    }
-
-    /**
-     * Defines how nlist() and rawlist() will be sorted - if at all.
-     *
-     * If sorting is enabled directories and files will be sorted independently with
-     * directories appearing before files in the resultant array that is returned.
-     *
-     * Any parameter returned by stat is a valid sort parameter for this function.
-     * Filename comparisons are case insensitive.
-     *
-     * Examples:
-     *
-     * $sftp->setListOrder('filename', SORT_ASC);
-     * $sftp->setListOrder('size', SORT_DESC, 'filename', SORT_ASC);
-     * $sftp->setListOrder(true);
-     *    Separates directories from files but doesn't do any sorting beyond that
-     * $sftp->setListOrder();
-     *    Don't do any sort of sorting
-     *
-     * @access public
-     */
-    function setListOrder()
-    {
-        $this->sortOptions = array();
-        $args = func_get_args();
-        if (empty($args)) {
-            return;
-        }
-        $len = count($args) & 0x7FFFFFFE;
-        for ($i = 0; $i < $len; $i+=2) {
-            $this->sortOptions[$args[$i]] = $args[$i + 1];
-        }
-        if (!count($this->sortOptions)) {
-            $this->sortOptions = array('bogus' => true);
-        }
-    }
-
-    /**
-     * Returns the file size, in bytes, or false, on failure
-     *
-     * Files larger than 4GB will show up as being exactly 4GB.
-     *
-     * @param string $filename
-     * @return mixed
-     * @access public
-     */
-    function size($filename)
-    {
-        if (!($this->bitmap & SSH2::MASK_LOGIN)) {
-            return false;
-        }
-
-        $result = $this->stat($filename);
-        if ($result === false) {
-            return false;
-        }
-        return isset($result['size']) ? $result['size'] : -1;
-    }
-
-    /**
-     * Save files / directories to cache
-     *
-     * @param string $path
-     * @param mixed $value
-     * @access private
-     */
-    function _update_stat_cache($path, $value)
-    {
-        if ($this->use_stat_cache === false) {
-            return;
-        }
-
-        // preg_replace('#^/|/(?=/)|/$#', '', $dir) == str_replace('//', '/', trim($path, '/'))
-        $dirs = explode('/', preg_replace('#^/|/(?=/)|/$#', '', $path));
-
-        $temp = &$this->stat_cache;
-        $max = count($dirs) - 1;
-        foreach ($dirs as $i => $dir) {
-            // if $temp is an object that means one of two things.
-            //  1. a file was deleted and changed to a directory behind phpseclib's back
-            //  2. it's a symlink. when lstat is done it's unclear what it's a symlink to
-            if (is_object($temp)) {
-                $temp = array();
-            }
-            if (!isset($temp[$dir])) {
-                $temp[$dir] = array();
-            }
-            if ($i === $max) {
-                if (is_object($temp[$dir]) && is_object($value)) {
-                    if (!isset($value->stat) && isset($temp[$dir]->stat)) {
-                        $value->stat = $temp[$dir]->stat;
-                    }
-                    if (!isset($value->lstat) && isset($temp[$dir]->lstat)) {
-                        $value->lstat = $temp[$dir]->lstat;
-                    }
-                }
-                $temp[$dir] = $value;
-                break;
-            }
-            $temp = &$temp[$dir];
-        }
-    }
-
-    /**
-     * Remove files / directories from cache
-     *
-     * @param string $path
-     * @return bool
-     * @access private
-     */
-    function _remove_from_stat_cache($path)
-    {
-        $dirs = explode('/', preg_replace('#^/|/(?=/)|/$#', '', $path));
-
-        $temp = &$this->stat_cache;
-        $max = count($dirs) - 1;
-        foreach ($dirs as $i => $dir) {
-            if ($i === $max) {
-                unset($temp[$dir]);
-                return true;
-            }
-            if (!isset($temp[$dir])) {
-                return false;
-            }
-            $temp = &$temp[$dir];
-        }
-    }
-
-    /**
-     * Checks cache for path
-     *
-     * Mainly used by file_exists
-     *
-     * @param string $dir
-     * @return mixed
-     * @access private
-     */
-    function _query_stat_cache($path)
-    {
-        $dirs = explode('/', preg_replace('#^/|/(?=/)|/$#', '', $path));
-
-        $temp = &$this->stat_cache;
-        foreach ($dirs as $dir) {
-            if (!isset($temp[$dir])) {
-                return null;
-            }
-            $temp = &$temp[$dir];
-        }
-        return $temp;
-    }
-
-    /**
-     * Returns general information about a file.
-     *
-     * Returns an array on success and false otherwise.
-     *
-     * @param string $filename
-     * @return mixed
-     * @access public
-     */
-    function stat($filename)
-    {
-        if (!($this->bitmap & SSH2::MASK_LOGIN)) {
-            return false;
-        }
-
-        $filename = $this->_realpath($filename);
-        if ($filename === false) {
-            return false;
-        }
-
-        if ($this->use_stat_cache) {
-            $result = $this->_query_stat_cache($filename);
-            if (is_array($result) && isset($result['.']) && isset($result['.']->stat)) {
-                return $result['.']->stat;
-            }
-            if (is_object($result) && isset($result->stat)) {
-                return $result->stat;
-            }
-        }
-
-        $stat = $this->_stat($filename, NET_SFTP_STAT);
-        if ($stat === false) {
-            $this->_remove_from_stat_cache($filename);
-            return false;
-        }
-        if (isset($stat['type'])) {
-            if ($stat['type'] == NET_SFTP_TYPE_DIRECTORY) {
-                $filename.= '/.';
-            }
-            $this->_update_stat_cache($filename, (object) array('stat' => $stat));
-            return $stat;
-        }
-
-        $pwd = $this->pwd;
-        $stat['type'] = $this->chdir($filename) ?
-            NET_SFTP_TYPE_DIRECTORY :
-            NET_SFTP_TYPE_REGULAR;
-        $this->pwd = $pwd;
-
-        if ($stat['type'] == NET_SFTP_TYPE_DIRECTORY) {
-            $filename.= '/.';
-        }
-        $this->_update_stat_cache($filename, (object) array('stat' => $stat));
-
-        return $stat;
-    }
-
-    /**
-     * Returns general information about a file or symbolic link.
-     *
-     * Returns an array on success and false otherwise.
-     *
-     * @param string $filename
-     * @return mixed
-     * @access public
-     */
-    function lstat($filename)
-    {
-        if (!($this->bitmap & SSH2::MASK_LOGIN)) {
-            return false;
-        }
-
-        $filename = $this->_realpath($filename);
-        if ($filename === false) {
-            return false;
-        }
-
-        if ($this->use_stat_cache) {
-            $result = $this->_query_stat_cache($filename);
-            if (is_array($result) && isset($result['.']) && isset($result['.']->lstat)) {
-                return $result['.']->lstat;
-            }
-            if (is_object($result) && isset($result->lstat)) {
-                return $result->lstat;
-            }
-        }
-
-        $lstat = $this->_stat($filename, NET_SFTP_LSTAT);
-        if ($lstat === false) {
-            $this->_remove_from_stat_cache($filename);
-            return false;
-        }
-        if (isset($lstat['type'])) {
-            if ($lstat['type'] == NET_SFTP_TYPE_DIRECTORY) {
-                $filename.= '/.';
-            }
-            $this->_update_stat_cache($filename, (object) array('lstat' => $lstat));
-            return $lstat;
-        }
-
-        $stat = $this->_stat($filename, NET_SFTP_STAT);
-
-        if ($lstat != $stat) {
-            $lstat = array_merge($lstat, array('type' => NET_SFTP_TYPE_SYMLINK));
-            $this->_update_stat_cache($filename, (object) array('lstat' => $lstat));
-            return $stat;
-        }
-
-        $pwd = $this->pwd;
-        $lstat['type'] = $this->chdir($filename) ?
-            NET_SFTP_TYPE_DIRECTORY :
-            NET_SFTP_TYPE_REGULAR;
-        $this->pwd = $pwd;
-
-        if ($lstat['type'] == NET_SFTP_TYPE_DIRECTORY) {
-            $filename.= '/.';
-        }
-        $this->_update_stat_cache($filename, (object) array('lstat' => $lstat));
-
-        return $lstat;
-    }
-
-    /**
-     * Returns general information about a file or symbolic link
-     *
-     * Determines information without calling \phpseclib\Net\SFTP::realpath().
-     * The second parameter can be either NET_SFTP_STAT or NET_SFTP_LSTAT.
-     *
-     * @param string $filename
-     * @param int $type
-     * @return mixed
-     * @access private
-     */
-    function _stat($filename, $type)
-    {
-        // SFTPv4+ adds an additional 32-bit integer field - flags - to the following:
-        $packet = pack('Na*', strlen($filename), $filename);
-        if (!$this->_send_sftp_packet($type, $packet)) {
-            return false;
-        }
-
-        $response = $this->_get_sftp_packet();
-        switch ($this->packet_type) {
-            case NET_SFTP_ATTRS:
-                return $this->_parseAttributes($response);
-            case NET_SFTP_STATUS:
-                $this->_logError($response);
-                return false;
-        }
-
-        user_error('Expected SSH_FXP_ATTRS or SSH_FXP_STATUS');
-        return false;
-    }
-
-    /**
-     * Truncates a file to a given length
-     *
-     * @param string $filename
-     * @param int $new_size
-     * @return bool
-     * @access public
-     */
-    function truncate($filename, $new_size)
-    {
-        $attr = pack('N3', NET_SFTP_ATTR_SIZE, $new_size / 4294967296, $new_size); // 4294967296 == 0x100000000 == 1<<32
-
-        return $this->_setstat($filename, $attr, false);
-    }
-
-    /**
-     * Sets access and modification time of file.
-     *
-     * If the file does not exist, it will be created.
-     *
-     * @param string $filename
-     * @param int $time
-     * @param int $atime
-     * @return bool
-     * @access public
-     */
-    function touch($filename, $time = null, $atime = null)
-    {
-        if (!($this->bitmap & SSH2::MASK_LOGIN)) {
-            return false;
-        }
-
-        $filename = $this->_realpath($filename);
-        if ($filename === false) {
-            return false;
-        }
-
-        if (!isset($time)) {
-            $time = time();
-        }
-        if (!isset($atime)) {
-            $atime = $time;
-        }
-
-        $flags = NET_SFTP_OPEN_WRITE | NET_SFTP_OPEN_CREATE | NET_SFTP_OPEN_EXCL;
-        $attr = pack('N3', NET_SFTP_ATTR_ACCESSTIME, $time, $atime);
-        $packet = pack('Na*Na*', strlen($filename), $filename, $flags, $attr);
-        if (!$this->_send_sftp_packet(NET_SFTP_OPEN, $packet)) {
-            return false;
-        }
-
-        $response = $this->_get_sftp_packet();
-        switch ($this->packet_type) {
-            case NET_SFTP_HANDLE:
-                return $this->_close_handle(substr($response, 4));
-            case NET_SFTP_STATUS:
-                $this->_logError($response);
-                break;
-            default:
-                user_error('Expected SSH_FXP_HANDLE or SSH_FXP_STATUS');
-                return false;
-        }
-
-        return $this->_setstat($filename, $attr, false);
-    }
-
-    /**
-     * Changes file or directory owner
-     *
-     * Returns true on success or false on error.
-     *
-     * @param string $filename
-     * @param int $uid
-     * @param bool $recursive
-     * @return bool
-     * @access public
-     */
-    function chown($filename, $uid, $recursive = false)
-    {
-        // quoting from <http://www.kernel.org/doc/man-pages/online/pages/man2/chown.2.html>,
-        // "if the owner or group is specified as -1, then that ID is not changed"
-        $attr = pack('N3', NET_SFTP_ATTR_UIDGID, $uid, -1);
-
-        return $this->_setstat($filename, $attr, $recursive);
-    }
-
-    /**
-     * Changes file or directory group
-     *
-     * Returns true on success or false on error.
-     *
-     * @param string $filename
-     * @param int $gid
-     * @param bool $recursive
-     * @return bool
-     * @access public
-     */
-    function chgrp($filename, $gid, $recursive = false)
-    {
-        $attr = pack('N3', NET_SFTP_ATTR_UIDGID, -1, $gid);
-
-        return $this->_setstat($filename, $attr, $recursive);
-    }
-
-    /**
-     * Set permissions on a file.
-     *
-     * Returns the new file permissions on success or false on error.
-     * If $recursive is true than this just returns true or false.
-     *
-     * @param int $mode
-     * @param string $filename
-     * @param bool $recursive
-     * @return mixed
-     * @access public
-     */
-    function chmod($mode, $filename, $recursive = false)
-    {
-        if (is_string($mode) && is_int($filename)) {
-            $temp = $mode;
-            $mode = $filename;
-            $filename = $temp;
-        }
-
-        $attr = pack('N2', NET_SFTP_ATTR_PERMISSIONS, $mode & 07777);
-        if (!$this->_setstat($filename, $attr, $recursive)) {
-            return false;
-        }
-        if ($recursive) {
-            return true;
-        }
-
-        $filename = $this->realpath($filename);
-        // rather than return what the permissions *should* be, we'll return what they actually are.  this will also
-        // tell us if the file actually exists.
-        // incidentally, SFTPv4+ adds an additional 32-bit integer field - flags - to the following:
-        $packet = pack('Na*', strlen($filename), $filename);
-        if (!$this->_send_sftp_packet(NET_SFTP_STAT, $packet)) {
-            return false;
-        }
-
-        $response = $this->_get_sftp_packet();
-        switch ($this->packet_type) {
-            case NET_SFTP_ATTRS:
-                $attrs = $this->_parseAttributes($response);
-                return $attrs['permissions'];
-            case NET_SFTP_STATUS:
-                $this->_logError($response);
-                return false;
-        }
-
-        user_error('Expected SSH_FXP_ATTRS or SSH_FXP_STATUS');
-        return false;
-    }
-
-    /**
-     * Sets information about a file
-     *
-     * @param string $filename
-     * @param string $attr
-     * @param bool $recursive
-     * @return bool
-     * @access private
-     */
-    function _setstat($filename, $attr, $recursive)
-    {
-        if (!($this->bitmap & SSH2::MASK_LOGIN)) {
-            return false;
-        }
-
-        $filename = $this->_realpath($filename);
-        if ($filename === false) {
-            return false;
-        }
-
-        $this->_remove_from_stat_cache($filename);
-
-        if ($recursive) {
-            $i = 0;
-            $result = $this->_setstat_recursive($filename, $attr, $i);
-            $this->_read_put_responses($i);
-            return $result;
-        }
-
-        // SFTPv4+ has an additional byte field - type - that would need to be sent, as well. setting it to
-        // SSH_FILEXFER_TYPE_UNKNOWN might work. if not, we'd have to do an SSH_FXP_STAT before doing an SSH_FXP_SETSTAT.
-        if (!$this->_send_sftp_packet(NET_SFTP_SETSTAT, pack('Na*a*', strlen($filename), $filename, $attr))) {
-            return false;
-        }
-
-        /*
-         "Because some systems must use separate system calls to set various attributes, it is possible that a failure
-          response will be returned, but yet some of the attributes may be have been successfully modified.  If possible,
-          servers SHOULD avoid this situation; however, clients MUST be aware that this is possible."
-
-          -- http://tools.ietf.org/html/draft-ietf-secsh-filexfer-13#section-8.6
-        */
-        $response = $this->_get_sftp_packet();
-        if ($this->packet_type != NET_SFTP_STATUS) {
-            user_error('Expected SSH_FXP_STATUS');
-            return false;
-        }
-
-        if (strlen($response) < 4) {
-            return false;
-        }
-        extract(unpack('Nstatus', $this->_string_shift($response, 4)));
-        if ($status != NET_SFTP_STATUS_OK) {
-            $this->_logError($response, $status);
-            return false;
-        }
-
-        return true;
-    }
-
-    /**
-     * Recursively sets information on directories on the SFTP server
-     *
-     * Minimizes directory lookups and SSH_FXP_STATUS requests for speed.
-     *
-     * @param string $path
-     * @param string $attr
-     * @param int $i
-     * @return bool
-     * @access private
-     */
-    function _setstat_recursive($path, $attr, &$i)
-    {
-        if (!$this->_read_put_responses($i)) {
-            return false;
-        }
-        $i = 0;
-        $entries = $this->_list($path, true);
-
-        if ($entries === false) {
-            return $this->_setstat($path, $attr, false);
-        }
-
-        // normally $entries would have at least . and .. but it might not if the directories
-        // permissions didn't allow reading
-        if (empty($entries)) {
-            return false;
-        }
-
-        unset($entries['.'], $entries['..']);
-        foreach ($entries as $filename => $props) {
-            if (!isset($props['type'])) {
-                return false;
-            }
-
-            $temp = $path . '/' . $filename;
-            if ($props['type'] == NET_SFTP_TYPE_DIRECTORY) {
-                if (!$this->_setstat_recursive($temp, $attr, $i)) {
-                    return false;
-                }
-            } else {
-                if (!$this->_send_sftp_packet(NET_SFTP_SETSTAT, pack('Na*a*', strlen($temp), $temp, $attr))) {
-                    return false;
-                }
-
-                $i++;
-
-                if ($i >= NET_SFTP_QUEUE_SIZE) {
-                    if (!$this->_read_put_responses($i)) {
-                        return false;
-                    }
-                    $i = 0;
-                }
-            }
-        }
-
-        if (!$this->_send_sftp_packet(NET_SFTP_SETSTAT, pack('Na*a*', strlen($path), $path, $attr))) {
-            return false;
-        }
-
-        $i++;
-
-        if ($i >= NET_SFTP_QUEUE_SIZE) {
-            if (!$this->_read_put_responses($i)) {
-                return false;
-            }
-            $i = 0;
-        }
-
-        return true;
-    }
-
-    /**
-     * Return the target of a symbolic link
-     *
-     * @param string $link
-     * @return mixed
-     * @access public
-     */
-    function readlink($link)
-    {
-        if (!($this->bitmap & SSH2::MASK_LOGIN)) {
-            return false;
-        }
-
-        $link = $this->_realpath($link);
-
-        if (!$this->_send_sftp_packet(NET_SFTP_READLINK, pack('Na*', strlen($link), $link))) {
-            return false;
-        }
-
-        $response = $this->_get_sftp_packet();
-        switch ($this->packet_type) {
-            case NET_SFTP_NAME:
-                break;
-            case NET_SFTP_STATUS:
-                $this->_logError($response);
-                return false;
-            default:
-                user_error('Expected SSH_FXP_NAME or SSH_FXP_STATUS');
-                return false;
-        }
-
-        if (strlen($response) < 4) {
-            return false;
-        }
-        extract(unpack('Ncount', $this->_string_shift($response, 4)));
-        // the file isn't a symlink
-        if (!$count) {
-            return false;
-        }
-
-        if (strlen($response) < 4) {
-            return false;
-        }
-        extract(unpack('Nlength', $this->_string_shift($response, 4)));
-        return $this->_string_shift($response, $length);
-    }
-
-    /**
-     * Create a symlink
-     *
-     * symlink() creates a symbolic link to the existing target with the specified name link.
-     *
-     * @param string $target
-     * @param string $link
-     * @return bool
-     * @access public
-     */
-    function symlink($target, $link)
-    {
-        if (!($this->bitmap & SSH2::MASK_LOGIN)) {
-            return false;
-        }
-
-        //$target = $this->_realpath($target);
-        $link = $this->_realpath($link);
-
-        $packet = pack('Na*Na*', strlen($target), $target, strlen($link), $link);
-        if (!$this->_send_sftp_packet(NET_SFTP_SYMLINK, $packet)) {
-            return false;
-        }
-
-        $response = $this->_get_sftp_packet();
-        if ($this->packet_type != NET_SFTP_STATUS) {
-            user_error('Expected SSH_FXP_STATUS');
-            return false;
-        }
-
-        if (strlen($response) < 4) {
-            return false;
-        }
-        extract(unpack('Nstatus', $this->_string_shift($response, 4)));
-        if ($status != NET_SFTP_STATUS_OK) {
-            $this->_logError($response, $status);
-            return false;
-        }
-
-        return true;
-    }
-
-    /**
-     * Creates a directory.
-     *
-     * @param string $dir
-     * @return bool
-     * @access public
-     */
-    function mkdir($dir, $mode = -1, $recursive = false)
-    {
-        if (!($this->bitmap & SSH2::MASK_LOGIN)) {
-            return false;
-        }
-
-        $dir = $this->_realpath($dir);
-        // by not providing any permissions, hopefully the server will use the logged in users umask - their
-        // default permissions.
-        $attr = $mode == -1 ? "\0\0\0\0" : pack('N2', NET_SFTP_ATTR_PERMISSIONS, $mode & 07777);
-
-        if ($recursive) {
-            $dirs = explode('/', preg_replace('#/(?=/)|/$#', '', $dir));
-            if (empty($dirs[0])) {
-                array_shift($dirs);
-                $dirs[0] = '/' . $dirs[0];
-            }
-            for ($i = 0; $i < count($dirs); $i++) {
-                $temp = array_slice($dirs, 0, $i + 1);
-                $temp = implode('/', $temp);
-                $result = $this->_mkdir_helper($temp, $attr);
-            }
-            return $result;
-        }
-
-        return $this->_mkdir_helper($dir, $attr);
-    }
-
-    /**
-     * Helper function for directory creation
-     *
-     * @param string $dir
-     * @return bool
-     * @access private
-     */
-    function _mkdir_helper($dir, $attr)
-    {
-        if (!$this->_send_sftp_packet(NET_SFTP_MKDIR, pack('Na*a*', strlen($dir), $dir, $attr))) {
-            return false;
-        }
-
-        $response = $this->_get_sftp_packet();
-        if ($this->packet_type != NET_SFTP_STATUS) {
-            user_error('Expected SSH_FXP_STATUS');
-            return false;
-        }
-
-        if (strlen($response) < 4) {
-            return false;
-        }
-        extract(unpack('Nstatus', $this->_string_shift($response, 4)));
-        if ($status != NET_SFTP_STATUS_OK) {
-            $this->_logError($response, $status);
-            return false;
-        }
-
-        return true;
-    }
-
-    /**
-     * Removes a directory.
-     *
-     * @param string $dir
-     * @return bool
-     * @access public
-     */
-    function rmdir($dir)
-    {
-        if (!($this->bitmap & SSH2::MASK_LOGIN)) {
-            return false;
-        }
-
-        $dir = $this->_realpath($dir);
-        if ($dir === false) {
-            return false;
-        }
-
-        if (!$this->_send_sftp_packet(NET_SFTP_RMDIR, pack('Na*', strlen($dir), $dir))) {
-            return false;
-        }
-
-        $response = $this->_get_sftp_packet();
-        if ($this->packet_type != NET_SFTP_STATUS) {
-            user_error('Expected SSH_FXP_STATUS');
-            return false;
-        }
-
-        if (strlen($response) < 4) {
-            return false;
-        }
-        extract(unpack('Nstatus', $this->_string_shift($response, 4)));
-        if ($status != NET_SFTP_STATUS_OK) {
-            // presumably SSH_FX_NO_SUCH_FILE or SSH_FX_PERMISSION_DENIED?
-            $this->_logError($response, $status);
-            return false;
-        }
-
-        $this->_remove_from_stat_cache($dir);
-        // the following will do a soft delete, which would be useful if you deleted a file
-        // and then tried to do a stat on the deleted file. the above, in contrast, does
-        // a hard delete
-        //$this->_update_stat_cache($dir, false);
-
-        return true;
-    }
-
-    /**
-     * Uploads a file to the SFTP server.
-     *
-     * By default, \phpseclib\Net\SFTP::put() does not read from the local filesystem.  $data is dumped directly into $remote_file.
-     * So, for example, if you set $data to 'filename.ext' and then do \phpseclib\Net\SFTP::get(), you will get a file, twelve bytes
-     * long, containing 'filename.ext' as its contents.
-     *
-     * Setting $mode to self::SOURCE_LOCAL_FILE will change the above behavior.  With self::SOURCE_LOCAL_FILE, $remote_file will
-     * contain as many bytes as filename.ext does on your local filesystem.  If your filename.ext is 1MB then that is how
-     * large $remote_file will be, as well.
-     *
-     * Setting $mode to self::SOURCE_CALLBACK will use $data as callback function, which gets only one parameter -- number of bytes to return, and returns a string if there is some data or null if there is no more data
-     *
-     * If $data is a resource then it'll be used as a resource instead.
-     *
-     * Currently, only binary mode is supported.  As such, if the line endings need to be adjusted, you will need to take
-     * care of that, yourself.
-     *
-     * $mode can take an additional two parameters - self::RESUME and self::RESUME_START. These are bitwise AND'd with
-     * $mode. So if you want to resume upload of a 300mb file on the local file system you'd set $mode to the following:
-     *
-     * self::SOURCE_LOCAL_FILE | self::RESUME
-     *
-     * If you wanted to simply append the full contents of a local file to the full contents of a remote file you'd replace
-     * self::RESUME with self::RESUME_START.
-     *
-     * If $mode & (self::RESUME | self::RESUME_START) then self::RESUME_START will be assumed.
-     *
-     * $start and $local_start give you more fine grained control over this process and take precident over self::RESUME
-     * when they're non-negative. ie. $start could let you write at the end of a file (like self::RESUME) or in the middle
-     * of one. $local_start could let you start your reading from the end of a file (like self::RESUME_START) or in the
-     * middle of one.
-     *
-     * Setting $local_start to > 0 or $mode | self::RESUME_START doesn't do anything unless $mode | self::SOURCE_LOCAL_FILE.
-     *
-     * @param string $remote_file
-     * @param string|resource $data
-     * @param int $mode
-     * @param int $start
-     * @param int $local_start
-     * @param callable|null $progressCallback
-     * @return bool
-     * @access public
-     * @internal ASCII mode for SFTPv4/5/6 can be supported by adding a new function - \phpseclib\Net\SFTP::setMode().
-     */
-    function put($remote_file, $data, $mode = self::SOURCE_STRING, $start = -1, $local_start = -1, $progressCallback = null)
-    {
-        if (!($this->bitmap & SSH2::MASK_LOGIN)) {
-            return false;
-        }
-
-        $remote_file = $this->_realpath($remote_file);
-        if ($remote_file === false) {
-            return false;
-        }
-
-        $this->_remove_from_stat_cache($remote_file);
-
-        $flags = NET_SFTP_OPEN_WRITE | NET_SFTP_OPEN_CREATE;
-        // according to the SFTP specs, NET_SFTP_OPEN_APPEND should "force all writes to append data at the end of the file."
-        // in practice, it doesn't seem to do that.
-        //$flags|= ($mode & self::RESUME) ? NET_SFTP_OPEN_APPEND : NET_SFTP_OPEN_TRUNCATE;
-
-        if ($start >= 0) {
-            $offset = $start;
-        } elseif ($mode & self::RESUME) {
-            // if NET_SFTP_OPEN_APPEND worked as it should _size() wouldn't need to be called
-            $size = $this->size($remote_file);
-            $offset = $size !== false ? $size : 0;
-        } else {
-            $offset = 0;
-            $flags|= NET_SFTP_OPEN_TRUNCATE;
-        }
-
-        $packet = pack('Na*N2', strlen($remote_file), $remote_file, $flags, 0);
-        if (!$this->_send_sftp_packet(NET_SFTP_OPEN, $packet)) {
-            return false;
-        }
-
-        $response = $this->_get_sftp_packet();
-        switch ($this->packet_type) {
-            case NET_SFTP_HANDLE:
-                $handle = substr($response, 4);
-                break;
-            case NET_SFTP_STATUS:
-                $this->_logError($response);
-                return false;
-            default:
-                user_error('Expected SSH_FXP_HANDLE or SSH_FXP_STATUS');
-                return false;
-        }
-
-        // http://tools.ietf.org/html/draft-ietf-secsh-filexfer-13#section-8.2.3
-        $dataCallback = false;
-        switch (true) {
-            case $mode & self::SOURCE_CALLBACK:
-                if (!is_callable($data)) {
-                    user_error("\$data should be is_callable() if you specify SOURCE_CALLBACK flag");
-                }
-                $dataCallback = $data;
-                // do nothing
-                break;
-            case is_resource($data):
-                $mode = $mode & ~self::SOURCE_LOCAL_FILE;
-                $info = stream_get_meta_data($data);
-                if ($info['wrapper_type'] == 'PHP' && $info['stream_type'] == 'Input') {
-                    $fp = fopen('php://memory', 'w+');
-                    stream_copy_to_stream($data, $fp);
-                    rewind($fp);
-                } else {
-                    $fp = $data;
-                }
-                break;
-            case $mode & self::SOURCE_LOCAL_FILE:
-                if (!is_file($data)) {
-                    user_error("$data is not a valid file");
-                    return false;
-                }
-                $fp = @fopen($data, 'rb');
-                if (!$fp) {
-                    return false;
-                }
-        }
-
-        if (isset($fp)) {
-            $stat = fstat($fp);
-            $size = !empty($stat) ? $stat['size'] : 0;
-
-            if ($local_start >= 0) {
-                fseek($fp, $local_start);
-                $size-= $local_start;
-            }
-        } elseif ($dataCallback) {
-            $size = 0;
-        } else {
-            $size = strlen($data);
-        }
-
-        $sent = 0;
-        $size = $size < 0 ? ($size & 0x7FFFFFFF) + 0x80000000 : $size;
-
-        $sftp_packet_size = 4096; // PuTTY uses 4096
-        // make the SFTP packet be exactly 4096 bytes by including the bytes in the NET_SFTP_WRITE packets "header"
-        $sftp_packet_size-= strlen($handle) + 25;
-        $i = 0;
-        while ($dataCallback || ($size === 0 || $sent < $size)) {
-            if ($dataCallback) {
-                $temp = call_user_func($dataCallback, $sftp_packet_size);
-                if (is_null($temp)) {
-                    break;
-                }
-            } else {
-                $temp = isset($fp) ? fread($fp, $sftp_packet_size) : substr($data, $sent, $sftp_packet_size);
-                if ($temp === false || $temp === '') {
-                    break;
-                }
-            }
-
-            $subtemp = $offset + $sent;
-            $packet = pack('Na*N3a*', strlen($handle), $handle, $subtemp / 4294967296, $subtemp, strlen($temp), $temp);
-            if (!$this->_send_sftp_packet(NET_SFTP_WRITE, $packet)) {
-                if ($mode & self::SOURCE_LOCAL_FILE) {
-                    fclose($fp);
-                }
-                return false;
-            }
-            $sent+= strlen($temp);
-            if (is_callable($progressCallback)) {
-                call_user_func($progressCallback, $sent);
-            }
-
-            $i++;
-
-            if ($i == NET_SFTP_QUEUE_SIZE) {
-                if (!$this->_read_put_responses($i)) {
-                    $i = 0;
-                    break;
-                }
-                $i = 0;
-            }
-        }
-
-        if (!$this->_read_put_responses($i)) {
-            if ($mode & self::SOURCE_LOCAL_FILE) {
-                fclose($fp);
-            }
-            $this->_close_handle($handle);
-            return false;
-        }
-
-        if ($mode & self::SOURCE_LOCAL_FILE) {
-            fclose($fp);
-        }
-
-        return $this->_close_handle($handle);
-    }
-
-    /**
-     * Reads multiple successive SSH_FXP_WRITE responses
-     *
-     * Sending an SSH_FXP_WRITE packet and immediately reading its response isn't as efficient as blindly sending out $i
-     * SSH_FXP_WRITEs, in succession, and then reading $i responses.
-     *
-     * @param int $i
-     * @return bool
-     * @access private
-     */
-    function _read_put_responses($i)
-    {
-        while ($i--) {
-            $response = $this->_get_sftp_packet();
-            if ($this->packet_type != NET_SFTP_STATUS) {
-                user_error('Expected SSH_FXP_STATUS');
-                return false;
-            }
-
-            if (strlen($response) < 4) {
-                return false;
-            }
-            extract(unpack('Nstatus', $this->_string_shift($response, 4)));
-            if ($status != NET_SFTP_STATUS_OK) {
-                $this->_logError($response, $status);
-                break;
-            }
-        }
-
-        return $i < 0;
-    }
-
-    /**
-     * Close handle
-     *
-     * @param string $handle
-     * @return bool
-     * @access private
-     */
-    function _close_handle($handle)
-    {
-        if (!$this->_send_sftp_packet(NET_SFTP_CLOSE, pack('Na*', strlen($handle), $handle))) {
-            return false;
-        }
-
-        // "The client MUST release all resources associated with the handle regardless of the status."
-        //  -- http://tools.ietf.org/html/draft-ietf-secsh-filexfer-13#section-8.1.3
-        $response = $this->_get_sftp_packet();
-        if ($this->packet_type != NET_SFTP_STATUS) {
-            user_error('Expected SSH_FXP_STATUS');
-            return false;
-        }
-
-        if (strlen($response) < 4) {
-            return false;
-        }
-        extract(unpack('Nstatus', $this->_string_shift($response, 4)));
-        if ($status != NET_SFTP_STATUS_OK) {
-            $this->_logError($response, $status);
-            return false;
-        }
-
-        return true;
-    }
-
-    /**
-     * Downloads a file from the SFTP server.
-     *
-     * Returns a string containing the contents of $remote_file if $local_file is left undefined or a boolean false if
-     * the operation was unsuccessful.  If $local_file is defined, returns true or false depending on the success of the
-     * operation.
-     *
-     * $offset and $length can be used to download files in chunks.
-     *
-     * @param string $remote_file
-     * @param string $local_file
-     * @param int $offset
-     * @param int $length
-     * @return mixed
-     * @access public
-     */
-    function get($remote_file, $local_file = false, $offset = 0, $length = -1)
-    {
-        if (!($this->bitmap & SSH2::MASK_LOGIN)) {
-            return false;
-        }
-
-        $remote_file = $this->_realpath($remote_file);
-        if ($remote_file === false) {
-            return false;
-        }
-
-        $packet = pack('Na*N2', strlen($remote_file), $remote_file, NET_SFTP_OPEN_READ, 0);
-        if (!$this->_send_sftp_packet(NET_SFTP_OPEN, $packet)) {
-            return false;
-        }
-
-        $response = $this->_get_sftp_packet();
-        switch ($this->packet_type) {
-            case NET_SFTP_HANDLE:
-                $handle = substr($response, 4);
-                break;
-            case NET_SFTP_STATUS: // presumably SSH_FX_NO_SUCH_FILE or SSH_FX_PERMISSION_DENIED
-                $this->_logError($response);
-                return false;
-            default:
-                user_error('Expected SSH_FXP_HANDLE or SSH_FXP_STATUS');
-                return false;
-        }
-
-        if (is_resource($local_file)) {
-            $fp = $local_file;
-            $stat = fstat($fp);
-            $res_offset = $stat['size'];
-        } else {
-            $res_offset = 0;
-            if ($local_file !== false) {
-                $fp = fopen($local_file, 'wb');
-                if (!$fp) {
-                    return false;
-                }
-            } else {
-                $content = '';
-            }
-        }
-
-        $fclose_check = $local_file !== false && !is_resource($local_file);
-
-        $start = $offset;
-        $read = 0;
-        while (true) {
-            $i = 0;
-
-            while ($i < NET_SFTP_QUEUE_SIZE && ($length < 0 || $read < $length)) {
-                $tempoffset = $start + $read;
-
-                $packet_size = $length > 0 ? min($this->max_sftp_packet, $length - $read) : $this->max_sftp_packet;
-
-                $packet = pack('Na*N3', strlen($handle), $handle, $tempoffset / 4294967296, $tempoffset, $packet_size);
-                if (!$this->_send_sftp_packet(NET_SFTP_READ, $packet)) {
-                    if ($fclose_check) {
-                        fclose($fp);
-                    }
-                    return false;
-                }
-                $packet = null;
-                $read+= $packet_size;
-                $i++;
-            }
-
-            if (!$i) {
-                break;
-            }
-
-            $clear_responses = false;
-            while ($i > 0) {
-                $i--;
-
-                if ($clear_responses) {
-                    $this->_get_sftp_packet();
-                    continue;
-                } else {
-                    $response = $this->_get_sftp_packet();
-                }
-
-                switch ($this->packet_type) {
-                    case NET_SFTP_DATA:
-                        $temp = substr($response, 4);
-                        $offset+= strlen($temp);
-                        if ($local_file === false) {
-                            $content.= $temp;
-                        } else {
-                            fputs($fp, $temp);
-                        }
-                        $temp = null;
-                        break;
-                    case NET_SFTP_STATUS:
-                        // could, in theory, return false if !strlen($content) but we'll hold off for the time being
-                        $this->_logError($response);
-                        $clear_responses = true; // don't break out of the loop yet, so we can read the remaining responses
-                        break;
-                    default:
-                        if ($fclose_check) {
-                            fclose($fp);
-                        }
-                        user_error('Expected SSH_FX_DATA or SSH_FXP_STATUS');
-                }
-                $response = null;
-            }
-
-            if ($clear_responses) {
-                break;
-            }
-        }
-
-        if ($length > 0 && $length <= $offset - $start) {
-            if ($local_file === false) {
-                $content = substr($content, 0, $length);
-            } else {
-                ftruncate($fp, $length + $res_offset);
-            }
-        }
-
-        if ($fclose_check) {
-            fclose($fp);
-        }
-
-        if (!$this->_close_handle($handle)) {
-            return false;
-        }
-
-        // if $content isn't set that means a file was written to
-        return isset($content) ? $content : true;
-    }
-
-    /**
-     * Deletes a file on the SFTP server.
-     *
-     * @param string $path
-     * @param bool $recursive
-     * @return bool
-     * @access public
-     */
-    function delete($path, $recursive = true)
-    {
-        if (!($this->bitmap & SSH2::MASK_LOGIN)) {
-            return false;
-        }
-
-        if (is_object($path)) {
-            // It's an object. Cast it as string before we check anything else.
-            $path = (string) $path;
-        }
-
-        if (!is_string($path) || $path == '') {
-            return false;
-        }
-
-        $path = $this->_realpath($path);
-        if ($path === false) {
-            return false;
-        }
-
-        // http://tools.ietf.org/html/draft-ietf-secsh-filexfer-13#section-8.3
-        if (!$this->_send_sftp_packet(NET_SFTP_REMOVE, pack('Na*', strlen($path), $path))) {
-            return false;
-        }
-
-        $response = $this->_get_sftp_packet();
-        if ($this->packet_type != NET_SFTP_STATUS) {
-            user_error('Expected SSH_FXP_STATUS');
-            return false;
-        }
-
-        // if $status isn't SSH_FX_OK it's probably SSH_FX_NO_SUCH_FILE or SSH_FX_PERMISSION_DENIED
-        if (strlen($response) < 4) {
-            return false;
-        }
-        extract(unpack('Nstatus', $this->_string_shift($response, 4)));
-        if ($status != NET_SFTP_STATUS_OK) {
-            $this->_logError($response, $status);
-            if (!$recursive) {
-                return false;
-            }
-            $i = 0;
-            $result = $this->_delete_recursive($path, $i);
-            $this->_read_put_responses($i);
-            return $result;
-        }
-
-        $this->_remove_from_stat_cache($path);
-
-        return true;
-    }
-
-    /**
-     * Recursively deletes directories on the SFTP server
-     *
-     * Minimizes directory lookups and SSH_FXP_STATUS requests for speed.
-     *
-     * @param string $path
-     * @param int $i
-     * @return bool
-     * @access private
-     */
-    function _delete_recursive($path, &$i)
-    {
-        if (!$this->_read_put_responses($i)) {
-            return false;
-        }
-        $i = 0;
-        $entries = $this->_list($path, true);
-
-        // normally $entries would have at least . and .. but it might not if the directories
-        // permissions didn't allow reading
-        if (empty($entries)) {
-            return false;
-        }
-
-        unset($entries['.'], $entries['..']);
-        foreach ($entries as $filename => $props) {
-            if (!isset($props['type'])) {
-                return false;
-            }
-
-            $temp = $path . '/' . $filename;
-            if ($props['type'] == NET_SFTP_TYPE_DIRECTORY) {
-                if (!$this->_delete_recursive($temp, $i)) {
-                    return false;
-                }
-            } else {
-                if (!$this->_send_sftp_packet(NET_SFTP_REMOVE, pack('Na*', strlen($temp), $temp))) {
-                    return false;
-                }
-                $this->_remove_from_stat_cache($temp);
-
-                $i++;
-
-                if ($i >= NET_SFTP_QUEUE_SIZE) {
-                    if (!$this->_read_put_responses($i)) {
-                        return false;
-                    }
-                    $i = 0;
-                }
-            }
-        }
-
-        if (!$this->_send_sftp_packet(NET_SFTP_RMDIR, pack('Na*', strlen($path), $path))) {
-            return false;
-        }
-        $this->_remove_from_stat_cache($path);
-
-        $i++;
-
-        if ($i >= NET_SFTP_QUEUE_SIZE) {
-            if (!$this->_read_put_responses($i)) {
-                return false;
-            }
-            $i = 0;
-        }
-
-        return true;
-    }
-
-    /**
-     * Checks whether a file or directory exists
-     *
-     * @param string $path
-     * @return bool
-     * @access public
-     */
-    function file_exists($path)
-    {
-        if ($this->use_stat_cache) {
-            $path = $this->_realpath($path);
-
-            $result = $this->_query_stat_cache($path);
-
-            if (isset($result)) {
-                // return true if $result is an array or if it's an stdClass object
-                return $result !== false;
-            }
-        }
-
-        return $this->stat($path) !== false;
-    }
-
-    /**
-     * Tells whether the filename is a directory
-     *
-     * @param string $path
-     * @return bool
-     * @access public
-     */
-    function is_dir($path)
-    {
-        $result = $this->_get_stat_cache_prop($path, 'type');
-        if ($result === false) {
-            return false;
-        }
-        return $result === NET_SFTP_TYPE_DIRECTORY;
-    }
-
-    /**
-     * Tells whether the filename is a regular file
-     *
-     * @param string $path
-     * @return bool
-     * @access public
-     */
-    function is_file($path)
-    {
-        $result = $this->_get_stat_cache_prop($path, 'type');
-        if ($result === false) {
-            return false;
-        }
-        return $result === NET_SFTP_TYPE_REGULAR;
-    }
-
-    /**
-     * Tells whether the filename is a symbolic link
-     *
-     * @param string $path
-     * @return bool
-     * @access public
-     */
-    function is_link($path)
-    {
-        $result = $this->_get_lstat_cache_prop($path, 'type');
-        if ($result === false) {
-            return false;
-        }
-        return $result === NET_SFTP_TYPE_SYMLINK;
-    }
-
-    /**
-     * Tells whether a file exists and is readable
-     *
-     * @param string $path
-     * @return bool
-     * @access public
-     */
-    function is_readable($path)
-    {
-        $path = $this->_realpath($path);
-
-        $packet = pack('Na*N2', strlen($path), $path, NET_SFTP_OPEN_READ, 0);
-        if (!$this->_send_sftp_packet(NET_SFTP_OPEN, $packet)) {
-            return false;
-        }
-
-        $response = $this->_get_sftp_packet();
-        switch ($this->packet_type) {
-            case NET_SFTP_HANDLE:
-                return true;
-            case NET_SFTP_STATUS: // presumably SSH_FX_NO_SUCH_FILE or SSH_FX_PERMISSION_DENIED
-                return false;
-            default:
-                user_error('Expected SSH_FXP_HANDLE or SSH_FXP_STATUS');
-                return false;
-        }
-    }
-
-    /**
-     * Tells whether the filename is writable
-     *
-     * @param string $path
-     * @return bool
-     * @access public
-     */
-    function is_writable($path)
-    {
-        $path = $this->_realpath($path);
-
-        $packet = pack('Na*N2', strlen($path), $path, NET_SFTP_OPEN_WRITE, 0);
-        if (!$this->_send_sftp_packet(NET_SFTP_OPEN, $packet)) {
-            return false;
-        }
-
-        $response = $this->_get_sftp_packet();
-        switch ($this->packet_type) {
-            case NET_SFTP_HANDLE:
-                return true;
-            case NET_SFTP_STATUS: // presumably SSH_FX_NO_SUCH_FILE or SSH_FX_PERMISSION_DENIED
-                return false;
-            default:
-                user_error('Expected SSH_FXP_HANDLE or SSH_FXP_STATUS');
-                return false;
-        }
-    }
-
-    /**
-     * Tells whether the filename is writeable
-     *
-     * Alias of is_writable
-     *
-     * @param string $path
-     * @return bool
-     * @access public
-     */
-    function is_writeable($path)
-    {
-        return $this->is_writable($path);
-    }
-
-    /**
-     * Gets last access time of file
-     *
-     * @param string $path
-     * @return mixed
-     * @access public
-     */
-    function fileatime($path)
-    {
-        return $this->_get_stat_cache_prop($path, 'atime');
-    }
-
-    /**
-     * Gets file modification time
-     *
-     * @param string $path
-     * @return mixed
-     * @access public
-     */
-    function filemtime($path)
-    {
-        return $this->_get_stat_cache_prop($path, 'mtime');
-    }
-
-    /**
-     * Gets file permissions
-     *
-     * @param string $path
-     * @return mixed
-     * @access public
-     */
-    function fileperms($path)
-    {
-        return $this->_get_stat_cache_prop($path, 'permissions');
-    }
-
-    /**
-     * Gets file owner
-     *
-     * @param string $path
-     * @return mixed
-     * @access public
-     */
-    function fileowner($path)
-    {
-        return $this->_get_stat_cache_prop($path, 'uid');
-    }
-
-    /**
-     * Gets file group
-     *
-     * @param string $path
-     * @return mixed
-     * @access public
-     */
-    function filegroup($path)
-    {
-        return $this->_get_stat_cache_prop($path, 'gid');
-    }
-
-    /**
-     * Gets file size
-     *
-     * @param string $path
-     * @return mixed
-     * @access public
-     */
-    function filesize($path)
-    {
-        return $this->_get_stat_cache_prop($path, 'size');
-    }
-
-    /**
-     * Gets file type
-     *
-     * @param string $path
-     * @return mixed
-     * @access public
-     */
-    function filetype($path)
-    {
-        $type = $this->_get_stat_cache_prop($path, 'type');
-        if ($type === false) {
-            return false;
-        }
-
-        switch ($type) {
-            case NET_SFTP_TYPE_BLOCK_DEVICE:
-                return 'block';
-            case NET_SFTP_TYPE_CHAR_DEVICE:
-                return 'char';
-            case NET_SFTP_TYPE_DIRECTORY:
-                return 'dir';
-            case NET_SFTP_TYPE_FIFO:
-                return 'fifo';
-            case NET_SFTP_TYPE_REGULAR:
-                return 'file';
-            case NET_SFTP_TYPE_SYMLINK:
-                return 'link';
-            default:
-                return false;
-        }
-    }
-
-    /**
-     * Return a stat properity
-     *
-     * Uses cache if appropriate.
-     *
-     * @param string $path
-     * @param string $prop
-     * @return mixed
-     * @access private
-     */
-    function _get_stat_cache_prop($path, $prop)
-    {
-        return $this->_get_xstat_cache_prop($path, $prop, 'stat');
-    }
-
-    /**
-     * Return an lstat properity
-     *
-     * Uses cache if appropriate.
-     *
-     * @param string $path
-     * @param string $prop
-     * @return mixed
-     * @access private
-     */
-    function _get_lstat_cache_prop($path, $prop)
-    {
-        return $this->_get_xstat_cache_prop($path, $prop, 'lstat');
-    }
-
-    /**
-     * Return a stat or lstat properity
-     *
-     * Uses cache if appropriate.
-     *
-     * @param string $path
-     * @param string $prop
-     * @return mixed
-     * @access private
-     */
-    function _get_xstat_cache_prop($path, $prop, $type)
-    {
-        if ($this->use_stat_cache) {
-            $path = $this->_realpath($path);
-
-            $result = $this->_query_stat_cache($path);
-
-            if (is_object($result) && isset($result->$type)) {
-                return $result->{$type}[$prop];
-            }
-        }
-
-        $result = $this->$type($path);
-
-        if ($result === false || !isset($result[$prop])) {
-            return false;
-        }
-
-        return $result[$prop];
-    }
-
-    /**
-     * Renames a file or a directory on the SFTP server
-     *
-     * @param string $oldname
-     * @param string $newname
-     * @return bool
-     * @access public
-     */
-    function rename($oldname, $newname)
-    {
-        if (!($this->bitmap & SSH2::MASK_LOGIN)) {
-            return false;
-        }
-
-        $oldname = $this->_realpath($oldname);
-        $newname = $this->_realpath($newname);
-        if ($oldname === false || $newname === false) {
-            return false;
-        }
-
-        // http://tools.ietf.org/html/draft-ietf-secsh-filexfer-13#section-8.3
-        $packet = pack('Na*Na*', strlen($oldname), $oldname, strlen($newname), $newname);
-        if (!$this->_send_sftp_packet(NET_SFTP_RENAME, $packet)) {
-            return false;
-        }
-
-        $response = $this->_get_sftp_packet();
-        if ($this->packet_type != NET_SFTP_STATUS) {
-            user_error('Expected SSH_FXP_STATUS');
-            return false;
-        }
-
-        // if $status isn't SSH_FX_OK it's probably SSH_FX_NO_SUCH_FILE or SSH_FX_PERMISSION_DENIED
-        if (strlen($response) < 4) {
-            return false;
-        }
-        extract(unpack('Nstatus', $this->_string_shift($response, 4)));
-        if ($status != NET_SFTP_STATUS_OK) {
-            $this->_logError($response, $status);
-            return false;
-        }
-
-        // don't move the stat cache entry over since this operation could very well change the
-        // atime and mtime attributes
-        //$this->_update_stat_cache($newname, $this->_query_stat_cache($oldname));
-        $this->_remove_from_stat_cache($oldname);
-        $this->_remove_from_stat_cache($newname);
-
-        return true;
-    }
-
-    /**
-     * Parse Attributes
-     *
-     * See '7.  File Attributes' of draft-ietf-secsh-filexfer-13 for more info.
-     *
-     * @param string $response
-     * @return array
-     * @access private
-     */
-    function _parseAttributes(&$response)
-    {
-        $attr = array();
-        if (strlen($response) < 4) {
-            user_error('Malformed file attributes');
-            return array();
-        }
-        extract(unpack('Nflags', $this->_string_shift($response, 4)));
-        // SFTPv4+ have a type field (a byte) that follows the above flag field
-        foreach ($this->attributes as $key => $value) {
-            switch ($flags & $key) {
-                case NET_SFTP_ATTR_SIZE: // 0x00000001
-                    // The size attribute is defined as an unsigned 64-bit integer.
-                    // The following will use floats on 32-bit platforms, if necessary.
-                    // As can be seen in the BigInteger class, floats are generally
-                    // IEEE 754 binary64 "double precision" on such platforms and
-                    // as such can represent integers of at least 2^50 without loss
-                    // of precision. Interpreted in filesize, 2^50 bytes = 1024 TiB.
-                    $attr['size'] = hexdec(bin2hex($this->_string_shift($response, 8)));
-                    break;
-                case NET_SFTP_ATTR_UIDGID: // 0x00000002 (SFTPv3 only)
-                    if (strlen($response) < 8) {
-                        user_error('Malformed file attributes');
-                        return $attr;
-                    }
-                    $attr+= unpack('Nuid/Ngid', $this->_string_shift($response, 8));
-                    break;
-                case NET_SFTP_ATTR_PERMISSIONS: // 0x00000004
-                    if (strlen($response) < 4) {
-                        user_error('Malformed file attributes');
-                        return $attr;
-                    }
-                    $attr+= unpack('Npermissions', $this->_string_shift($response, 4));
-                    // mode == permissions; permissions was the original array key and is retained for bc purposes.
-                    // mode was added because that's the more industry standard terminology
-                    $attr+= array('mode' => $attr['permissions']);
-                    $fileType = $this->_parseMode($attr['permissions']);
-                    if ($fileType !== false) {
-                        $attr+= array('type' => $fileType);
-                    }
-                    break;
-                case NET_SFTP_ATTR_ACCESSTIME: // 0x00000008
-                    if (strlen($response) < 8) {
-                        user_error('Malformed file attributes');
-                        return $attr;
-                    }
-                    $attr+= unpack('Natime/Nmtime', $this->_string_shift($response, 8));
-                    break;
-                case NET_SFTP_ATTR_EXTENDED: // 0x80000000
-                    if (strlen($response) < 4) {
-                        user_error('Malformed file attributes');
-                        return $attr;
-                    }
-                    extract(unpack('Ncount', $this->_string_shift($response, 4)));
-                    for ($i = 0; $i < $count; $i++) {
-                        if (strlen($response) < 4) {
-                            user_error('Malformed file attributes');
-                            return $attr;
-                        }
-                        extract(unpack('Nlength', $this->_string_shift($response, 4)));
-                        $key = $this->_string_shift($response, $length);
-                        if (strlen($response) < 4) {
-                            user_error('Malformed file attributes');
-                            return $attr;
-                        }
-                        extract(unpack('Nlength', $this->_string_shift($response, 4)));
-                        $attr[$key] = $this->_string_shift($response, $length);
-                    }
-            }
-        }
-        return $attr;
-    }
-
-    /**
-     * Attempt to identify the file type
-     *
-     * Quoting the SFTP RFC, "Implementations MUST NOT send bits that are not defined" but they seem to anyway
-     *
-     * @param int $mode
-     * @return int
-     * @access private
-     */
-    function _parseMode($mode)
-    {
-        // values come from http://lxr.free-electrons.com/source/include/uapi/linux/stat.h#L12
-        // see, also, http://linux.die.net/man/2/stat
-        switch ($mode & 0170000) {// ie. 1111 0000 0000 0000
-            case 0000000: // no file type specified - figure out the file type using alternative means
-                return false;
-            case 0040000:
-                return NET_SFTP_TYPE_DIRECTORY;
-            case 0100000:
-                return NET_SFTP_TYPE_REGULAR;
-            case 0120000:
-                return NET_SFTP_TYPE_SYMLINK;
-            // new types introduced in SFTPv5+
-            // http://tools.ietf.org/html/draft-ietf-secsh-filexfer-05#section-5.2
-            case 0010000: // named pipe (fifo)
-                return NET_SFTP_TYPE_FIFO;
-            case 0020000: // character special
-                return NET_SFTP_TYPE_CHAR_DEVICE;
-            case 0060000: // block special
-                return NET_SFTP_TYPE_BLOCK_DEVICE;
-            case 0140000: // socket
-                return NET_SFTP_TYPE_SOCKET;
-            case 0160000: // whiteout
-                // "SPECIAL should be used for files that are of
-                //  a known type which cannot be expressed in the protocol"
-                return NET_SFTP_TYPE_SPECIAL;
-            default:
-                return NET_SFTP_TYPE_UNKNOWN;
-        }
-    }
-
-    /**
-     * Parse Longname
-     *
-     * SFTPv3 doesn't provide any easy way of identifying a file type.  You could try to open
-     * a file as a directory and see if an error is returned or you could try to parse the
-     * SFTPv3-specific longname field of the SSH_FXP_NAME packet.  That's what this function does.
-     * The result is returned using the
-     * {@link http://tools.ietf.org/html/draft-ietf-secsh-filexfer-04#section-5.2 SFTPv4 type constants}.
-     *
-     * If the longname is in an unrecognized format bool(false) is returned.
-     *
-     * @param string $longname
-     * @return mixed
-     * @access private
-     */
-    function _parseLongname($longname)
-    {
-        // http://en.wikipedia.org/wiki/Unix_file_types
-        // http://en.wikipedia.org/wiki/Filesystem_permissions#Notation_of_traditional_Unix_permissions
-        if (preg_match('#^[^/]([r-][w-][xstST-]){3}#', $longname)) {
-            switch ($longname[0]) {
-                case '-':
-                    return NET_SFTP_TYPE_REGULAR;
-                case 'd':
-                    return NET_SFTP_TYPE_DIRECTORY;
-                case 'l':
-                    return NET_SFTP_TYPE_SYMLINK;
-                default:
-                    return NET_SFTP_TYPE_SPECIAL;
-            }
-        }
-
-        return false;
-    }
-
-    /**
-     * Sends SFTP Packets
-     *
-     * See '6. General Packet Format' of draft-ietf-secsh-filexfer-13 for more info.
-     *
-     * @param int $type
-     * @param string $data
-     * @see self::_get_sftp_packet()
-     * @see self::_send_channel_packet()
-     * @return bool
-     * @access private
-     */
-    function _send_sftp_packet($type, $data)
-    {
-        $packet = $this->request_id !== false ?
-            pack('NCNa*', strlen($data) + 5, $type, $this->request_id, $data) :
-            pack('NCa*',  strlen($data) + 1, $type, $data);
-
-        $start = strtok(microtime(), ' ') + strtok(''); // http://php.net/microtime#61838
-        $result = $this->_send_channel_packet(self::CHANNEL, $packet);
-        $stop = strtok(microtime(), ' ') + strtok('');
-
-        if (defined('NET_SFTP_LOGGING')) {
-            $packet_type = '-> ' . $this->packet_types[$type] .
-                           ' (' . round($stop - $start, 4) . 's)';
-            if (NET_SFTP_LOGGING == self::LOG_REALTIME) {
-                echo "<pre>\r\n" . $this->_format_log(array($data), array($packet_type)) . "\r\n</pre>\r\n";
-                flush();
-                ob_flush();
-            } else {
-                $this->packet_type_log[] = $packet_type;
-                if (NET_SFTP_LOGGING == self::LOG_COMPLEX) {
-                    $this->packet_log[] = $data;
-                }
-            }
-        }
-
-        return $result;
-    }
-
-    /**
-     * Receives SFTP Packets
-     *
-     * See '6. General Packet Format' of draft-ietf-secsh-filexfer-13 for more info.
-     *
-     * Incidentally, the number of SSH_MSG_CHANNEL_DATA messages has no bearing on the number of SFTP packets present.
-     * There can be one SSH_MSG_CHANNEL_DATA messages containing two SFTP packets or there can be two SSH_MSG_CHANNEL_DATA
-     * messages containing one SFTP packet.
-     *
-     * @see self::_send_sftp_packet()
-     * @return string
-     * @access private
-     */
-    function _get_sftp_packet()
-    {
-        $this->curTimeout = false;
-
-        $start = strtok(microtime(), ' ') + strtok(''); // http://php.net/microtime#61838
-
-        // SFTP packet length
-        while (strlen($this->packet_buffer) < 4) {
-            $temp = $this->_get_channel_packet(self::CHANNEL, true);
-            if (is_bool($temp)) {
-                $this->packet_type = false;
-                $this->packet_buffer = '';
-                return false;
-            }
-            $this->packet_buffer.= $temp;
-        }
-        if (strlen($this->packet_buffer) < 4) {
-            return false;
-        }
-        extract(unpack('Nlength', $this->_string_shift($this->packet_buffer, 4)));
-        $tempLength = $length;
-        $tempLength-= strlen($this->packet_buffer);
-
-        // SFTP packet type and data payload
-        while ($tempLength > 0) {
-            $temp = $this->_get_channel_packet(self::CHANNEL, true);
-            if (is_bool($temp)) {
-                $this->packet_type = false;
-                $this->packet_buffer = '';
-                return false;
-            }
-            $this->packet_buffer.= $temp;
-            $tempLength-= strlen($temp);
-        }
-
-        $stop = strtok(microtime(), ' ') + strtok('');
-
-        $this->packet_type = ord($this->_string_shift($this->packet_buffer));
-
-        if ($this->request_id !== false) {
-            $this->_string_shift($this->packet_buffer, 4); // remove the request id
-            $length-= 5; // account for the request id and the packet type
-        } else {
-            $length-= 1; // account for the packet type
-        }
-
-        $packet = $this->_string_shift($this->packet_buffer, $length);
-
-        if (defined('NET_SFTP_LOGGING')) {
-            $packet_type = '<- ' . $this->packet_types[$this->packet_type] .
-                           ' (' . round($stop - $start, 4) . 's)';
-            if (NET_SFTP_LOGGING == self::LOG_REALTIME) {
-                echo "<pre>\r\n" . $this->_format_log(array($packet), array($packet_type)) . "\r\n</pre>\r\n";
-                flush();
-                ob_flush();
-            } else {
-                $this->packet_type_log[] = $packet_type;
-                if (NET_SFTP_LOGGING == self::LOG_COMPLEX) {
-                    $this->packet_log[] = $packet;
-                }
-            }
-        }
-
-        return $packet;
-    }
-
-    /**
-     * Returns a log of the packets that have been sent and received.
-     *
-     * Returns a string if NET_SFTP_LOGGING == NET_SFTP_LOG_COMPLEX, an array if NET_SFTP_LOGGING == NET_SFTP_LOG_SIMPLE and false if !defined('NET_SFTP_LOGGING')
-     *
-     * @access public
-     * @return string or Array
-     */
-    function getSFTPLog()
-    {
-        if (!defined('NET_SFTP_LOGGING')) {
-            return false;
-        }
-
-        switch (NET_SFTP_LOGGING) {
-            case self::LOG_COMPLEX:
-                return $this->_format_log($this->packet_log, $this->packet_type_log);
-                break;
-            //case self::LOG_SIMPLE:
-            default:
-                return $this->packet_type_log;
-        }
-    }
-
-    /**
-     * Returns all errors
-     *
-     * @return array
-     * @access public
-     */
-    function getSFTPErrors()
-    {
-        return $this->sftp_errors;
-    }
-
-    /**
-     * Returns the last error
-     *
-     * @return string
-     * @access public
-     */
-    function getLastSFTPError()
-    {
-        return count($this->sftp_errors) ? $this->sftp_errors[count($this->sftp_errors) - 1] : '';
-    }
-
-    /**
-     * Get supported SFTP versions
-     *
-     * @return array
-     * @access public
-     */
-    function getSupportedVersions()
-    {
-        $temp = array('version' => $this->version);
-        if (isset($this->extensions['versions'])) {
-            $temp['extensions'] = $this->extensions['versions'];
-        }
-        return $temp;
-    }
-
-    /**
-     * Disconnect
-     *
-     * @param int $reason
-     * @return bool
-     * @access private
-     */
-    function _disconnect($reason)
-    {
-        $this->pwd = false;
-        parent::_disconnect($reason);
-    }
-}
diff --git a/wiki/vendor/phpseclib/phpseclib/phpseclib/Net/SFTP/Stream.php b/wiki/vendor/phpseclib/phpseclib/phpseclib/Net/SFTP/Stream.php
deleted file mode 100644
index d2c4425..0000000
--- a/wiki/vendor/phpseclib/phpseclib/phpseclib/Net/SFTP/Stream.php
+++ /dev/null
@@ -1,795 +0,0 @@
-<?php
-
-/**
- * SFTP Stream Wrapper
- *
- * Creates an sftp:// protocol handler that can be used with, for example, fopen(), dir(), etc.
- *
- * PHP version 5
- *
- * @category  Net
- * @package   SFTP
- * @author    Jim Wigginton <terrafrost@php.net>
- * @copyright 2013 Jim Wigginton
- * @license   http://www.opensource.org/licenses/mit-license.html  MIT License
- * @link      http://phpseclib.sourceforge.net
- */
-
-namespace phpseclib\Net\SFTP;
-
-use phpseclib\Crypt\RSA;
-use phpseclib\Net\SFTP;
-
-/**
- * SFTP Stream Wrapper
- *
- * @package SFTP
- * @author  Jim Wigginton <terrafrost@php.net>
- * @access  public
- */
-class Stream
-{
-    /**
-     * SFTP instances
-     *
-     * Rather than re-create the connection we re-use instances if possible
-     *
-     * @var array
-     */
-    static $instances;
-
-    /**
-     * SFTP instance
-     *
-     * @var object
-     * @access private
-     */
-    var $sftp;
-
-    /**
-     * Path
-     *
-     * @var string
-     * @access private
-     */
-    var $path;
-
-    /**
-     * Mode
-     *
-     * @var string
-     * @access private
-     */
-    var $mode;
-
-    /**
-     * Position
-     *
-     * @var int
-     * @access private
-     */
-    var $pos;
-
-    /**
-     * Size
-     *
-     * @var int
-     * @access private
-     */
-    var $size;
-
-    /**
-     * Directory entries
-     *
-     * @var array
-     * @access private
-     */
-    var $entries;
-
-    /**
-     * EOF flag
-     *
-     * @var bool
-     * @access private
-     */
-    var $eof;
-
-    /**
-     * Context resource
-     *
-     * Technically this needs to be publically accessible so PHP can set it directly
-     *
-     * @var resource
-     * @access public
-     */
-    var $context;
-
-    /**
-     * Notification callback function
-     *
-     * @var callable
-     * @access public
-     */
-    var $notification;
-
-    /**
-     * Registers this class as a URL wrapper.
-     *
-     * @param string $protocol The wrapper name to be registered.
-     * @return bool True on success, false otherwise.
-     * @access public
-     */
-    static function register($protocol = 'sftp')
-    {
-        if (in_array($protocol, stream_get_wrappers(), true)) {
-            return false;
-        }
-        return stream_wrapper_register($protocol, get_called_class());
-    }
-
-    /**
-     * The Constructor
-     *
-     * @access public
-     */
-    function __construct()
-    {
-        if (defined('NET_SFTP_STREAM_LOGGING')) {
-            echo "__construct()\r\n";
-        }
-    }
-
-    /**
-     * Path Parser
-     *
-     * Extract a path from a URI and actually connect to an SSH server if appropriate
-     *
-     * If "notification" is set as a context parameter the message code for successful login is
-     * NET_SSH2_MSG_USERAUTH_SUCCESS. For a failed login it's NET_SSH2_MSG_USERAUTH_FAILURE.
-     *
-     * @param string $path
-     * @return string
-     * @access private
-     */
-    function _parse_path($path)
-    {
-        $orig = $path;
-        extract(parse_url($path) + array('port' => 22));
-        if (isset($query)) {
-            $path.= '?' . $query;
-        } elseif (preg_match('/(\?|\?#)$/', $orig)) {
-            $path.= '?';
-        }
-        if (isset($fragment)) {
-            $path.= '#' . $fragment;
-        } elseif ($orig[strlen($orig) - 1] == '#') {
-            $path.= '#';
-        }
-
-        if (!isset($host)) {
-            return false;
-        }
-
-        if (isset($this->context)) {
-            $context = stream_context_get_params($this->context);
-            if (isset($context['notification'])) {
-                $this->notification = $context['notification'];
-            }
-        }
-
-        if ($host[0] == '$') {
-            $host = substr($host, 1);
-            global ${$host};
-            if (($$host instanceof SFTP) === false) {
-                return false;
-            }
-            $this->sftp = $$host;
-        } else {
-            if (isset($this->context)) {
-                $context = stream_context_get_options($this->context);
-            }
-            if (isset($context[$scheme]['session'])) {
-                $sftp = $context[$scheme]['session'];
-            }
-            if (isset($context[$scheme]['sftp'])) {
-                $sftp = $context[$scheme]['sftp'];
-            }
-            if (isset($sftp) && $sftp instanceof SFTP) {
-                $this->sftp = $sftp;
-                return $path;
-            }
-            if (isset($context[$scheme]['username'])) {
-                $user = $context[$scheme]['username'];
-            }
-            if (isset($context[$scheme]['password'])) {
-                $pass = $context[$scheme]['password'];
-            }
-            if (isset($context[$scheme]['privkey']) && $context[$scheme]['privkey'] instanceof RSA) {
-                $pass = $context[$scheme]['privkey'];
-            }
-
-            if (!isset($user) || !isset($pass)) {
-                return false;
-            }
-
-            // casting $pass to a string is necessary in the event that it's a \phpseclib\Crypt\RSA object
-            if (isset(self::$instances[$host][$port][$user][(string) $pass])) {
-                $this->sftp = self::$instances[$host][$port][$user][(string) $pass];
-            } else {
-                $this->sftp = new SFTP($host, $port);
-                $this->sftp->disableStatCache();
-                if (isset($this->notification) && is_callable($this->notification)) {
-                    /* if !is_callable($this->notification) we could do this:
-
-                       user_error('fopen(): failed to call user notifier', E_USER_WARNING);
-
-                       the ftp wrapper gives errors like that when the notifier isn't callable.
-                       i've opted not to do that, however, since the ftp wrapper gives the line
-                       on which the fopen occurred as the line number - not the line that the
-                       user_error is on.
-                    */
-                    call_user_func($this->notification, STREAM_NOTIFY_CONNECT, STREAM_NOTIFY_SEVERITY_INFO, '', 0, 0, 0);
-                    call_user_func($this->notification, STREAM_NOTIFY_AUTH_REQUIRED, STREAM_NOTIFY_SEVERITY_INFO, '', 0, 0, 0);
-                    if (!$this->sftp->login($user, $pass)) {
-                        call_user_func($this->notification, STREAM_NOTIFY_AUTH_RESULT, STREAM_NOTIFY_SEVERITY_ERR, 'Login Failure', NET_SSH2_MSG_USERAUTH_FAILURE, 0, 0);
-                        return false;
-                    }
-                    call_user_func($this->notification, STREAM_NOTIFY_AUTH_RESULT, STREAM_NOTIFY_SEVERITY_INFO, 'Login Success', NET_SSH2_MSG_USERAUTH_SUCCESS, 0, 0);
-                } else {
-                    if (!$this->sftp->login($user, $pass)) {
-                        return false;
-                    }
-                }
-                self::$instances[$host][$port][$user][(string) $pass] = $this->sftp;
-            }
-        }
-
-        return $path;
-    }
-
-    /**
-     * Opens file or URL
-     *
-     * @param string $path
-     * @param string $mode
-     * @param int $options
-     * @param string $opened_path
-     * @return bool
-     * @access public
-     */
-    function _stream_open($path, $mode, $options, &$opened_path)
-    {
-        $path = $this->_parse_path($path);
-
-        if ($path === false) {
-            return false;
-        }
-        $this->path = $path;
-
-        $this->size = $this->sftp->size($path);
-        $this->mode = preg_replace('#[bt]$#', '', $mode);
-        $this->eof = false;
-
-        if ($this->size === false) {
-            if ($this->mode[0] == 'r') {
-                return false;
-            } else {
-                $this->sftp->touch($path);
-                $this->size = 0;
-            }
-        } else {
-            switch ($this->mode[0]) {
-                case 'x':
-                    return false;
-                case 'w':
-                    $this->sftp->truncate($path, 0);
-                    $this->size = 0;
-            }
-        }
-
-        $this->pos = $this->mode[0] != 'a' ? 0 : $this->size;
-
-        return true;
-    }
-
-    /**
-     * Read from stream
-     *
-     * @param int $count
-     * @return mixed
-     * @access public
-     */
-    function _stream_read($count)
-    {
-        switch ($this->mode) {
-            case 'w':
-            case 'a':
-            case 'x':
-            case 'c':
-                return false;
-        }
-
-        // commented out because some files - eg. /dev/urandom - will say their size is 0 when in fact it's kinda infinite
-        //if ($this->pos >= $this->size) {
-        //    $this->eof = true;
-        //    return false;
-        //}
-
-        $result = $this->sftp->get($this->path, false, $this->pos, $count);
-        if (isset($this->notification) && is_callable($this->notification)) {
-            if ($result === false) {
-                call_user_func($this->notification, STREAM_NOTIFY_FAILURE, STREAM_NOTIFY_SEVERITY_ERR, $this->sftp->getLastSFTPError(), NET_SFTP_OPEN, 0, 0);
-                return 0;
-            }
-            // seems that PHP calls stream_read in 8k chunks
-            call_user_func($this->notification, STREAM_NOTIFY_PROGRESS, STREAM_NOTIFY_SEVERITY_INFO, '', 0, strlen($result), $this->size);
-        }
-
-        if (empty($result)) { // ie. false or empty string
-            $this->eof = true;
-            return false;
-        }
-        $this->pos+= strlen($result);
-
-        return $result;
-    }
-
-    /**
-     * Write to stream
-     *
-     * @param string $data
-     * @return mixed
-     * @access public
-     */
-    function _stream_write($data)
-    {
-        switch ($this->mode) {
-            case 'r':
-                return false;
-        }
-
-        $result = $this->sftp->put($this->path, $data, SFTP::SOURCE_STRING, $this->pos);
-        if (isset($this->notification) && is_callable($this->notification)) {
-            if (!$result) {
-                call_user_func($this->notification, STREAM_NOTIFY_FAILURE, STREAM_NOTIFY_SEVERITY_ERR, $this->sftp->getLastSFTPError(), NET_SFTP_OPEN, 0, 0);
-                return 0;
-            }
-            // seems that PHP splits up strings into 8k blocks before calling stream_write
-            call_user_func($this->notification, STREAM_NOTIFY_PROGRESS, STREAM_NOTIFY_SEVERITY_INFO, '', 0, strlen($data), strlen($data));
-        }
-
-        if ($result === false) {
-            return false;
-        }
-        $this->pos+= strlen($data);
-        if ($this->pos > $this->size) {
-            $this->size = $this->pos;
-        }
-        $this->eof = false;
-        return strlen($data);
-    }
-
-    /**
-     * Retrieve the current position of a stream
-     *
-     * @return int
-     * @access public
-     */
-    function _stream_tell()
-    {
-        return $this->pos;
-    }
-
-    /**
-     * Tests for end-of-file on a file pointer
-     *
-     * In my testing there are four classes functions that normally effect the pointer:
-     * fseek, fputs  / fwrite, fgets / fread and ftruncate.
-     *
-     * Only fgets / fread, however, results in feof() returning true. do fputs($fp, 'aaa') on a blank file and feof()
-     * will return false. do fread($fp, 1) and feof() will then return true. do fseek($fp, 10) on ablank file and feof()
-     * will return false. do fread($fp, 1) and feof() will then return true.
-     *
-     * @return bool
-     * @access public
-     */
-    function _stream_eof()
-    {
-        return $this->eof;
-    }
-
-    /**
-     * Seeks to specific location in a stream
-     *
-     * @param int $offset
-     * @param int $whence
-     * @return bool
-     * @access public
-     */
-    function _stream_seek($offset, $whence)
-    {
-        switch ($whence) {
-            case SEEK_SET:
-                if ($offset >= $this->size || $offset < 0) {
-                    return false;
-                }
-                break;
-            case SEEK_CUR:
-                $offset+= $this->pos;
-                break;
-            case SEEK_END:
-                $offset+= $this->size;
-        }
-
-        $this->pos = $offset;
-        $this->eof = false;
-        return true;
-    }
-
-    /**
-     * Change stream options
-     *
-     * @param string $path
-     * @param int $option
-     * @param mixed $var
-     * @return bool
-     * @access public
-     */
-    function _stream_metadata($path, $option, $var)
-    {
-        $path = $this->_parse_path($path);
-        if ($path === false) {
-            return false;
-        }
-
-        // stream_metadata was introduced in PHP 5.4.0 but as of 5.4.11 the constants haven't been defined
-        // see http://www.php.net/streamwrapper.stream-metadata and https://bugs.php.net/64246
-        //     and https://github.com/php/php-src/blob/master/main/php_streams.h#L592
-        switch ($option) {
-            case 1: // PHP_STREAM_META_TOUCH
-                return $this->sftp->touch($path, $var[0], $var[1]);
-            case 2: // PHP_STREAM_OWNER_NAME
-            case 3: // PHP_STREAM_GROUP_NAME
-                return false;
-            case 4: // PHP_STREAM_META_OWNER
-                return $this->sftp->chown($path, $var);
-            case 5: // PHP_STREAM_META_GROUP
-                return $this->sftp->chgrp($path, $var);
-            case 6: // PHP_STREAM_META_ACCESS
-                return $this->sftp->chmod($path, $var) !== false;
-        }
-    }
-
-    /**
-     * Retrieve the underlaying resource
-     *
-     * @param int $cast_as
-     * @return resource
-     * @access public
-     */
-    function _stream_cast($cast_as)
-    {
-        return $this->sftp->fsock;
-    }
-
-    /**
-     * Advisory file locking
-     *
-     * @param int $operation
-     * @return bool
-     * @access public
-     */
-    function _stream_lock($operation)
-    {
-        return false;
-    }
-
-    /**
-     * Renames a file or directory
-     *
-     * Attempts to rename oldname to newname, moving it between directories if necessary.
-     * If newname exists, it will be overwritten.  This is a departure from what \phpseclib\Net\SFTP
-     * does.
-     *
-     * @param string $path_from
-     * @param string $path_to
-     * @return bool
-     * @access public
-     */
-    function _rename($path_from, $path_to)
-    {
-        $path1 = parse_url($path_from);
-        $path2 = parse_url($path_to);
-        unset($path1['path'], $path2['path']);
-        if ($path1 != $path2) {
-            return false;
-        }
-
-        $path_from = $this->_parse_path($path_from);
-        $path_to = parse_url($path_to);
-        if ($path_from === false) {
-            return false;
-        }
-
-        $path_to = $path_to['path']; // the $component part of parse_url() was added in PHP 5.1.2
-        // "It is an error if there already exists a file with the name specified by newpath."
-        //  -- http://tools.ietf.org/html/draft-ietf-secsh-filexfer-02#section-6.5
-        if (!$this->sftp->rename($path_from, $path_to)) {
-            if ($this->sftp->stat($path_to)) {
-                return $this->sftp->delete($path_to, true) && $this->sftp->rename($path_from, $path_to);
-            }
-            return false;
-        }
-
-        return true;
-    }
-
-    /**
-     * Open directory handle
-     *
-     * The only $options is "whether or not to enforce safe_mode (0x04)". Since safe mode was deprecated in 5.3 and
-     * removed in 5.4 I'm just going to ignore it.
-     *
-     * Also, nlist() is the best that this function is realistically going to be able to do. When an SFTP client
-     * sends a SSH_FXP_READDIR packet you don't generally get info on just one file but on multiple files. Quoting
-     * the SFTP specs:
-     *
-     *    The SSH_FXP_NAME response has the following format:
-     *
-     *        uint32     id
-     *        uint32     count
-     *        repeats count times:
-     *                string     filename
-     *                string     longname
-     *                ATTRS      attrs
-     *
-     * @param string $path
-     * @param int $options
-     * @return bool
-     * @access public
-     */
-    function _dir_opendir($path, $options)
-    {
-        $path = $this->_parse_path($path);
-        if ($path === false) {
-            return false;
-        }
-        $this->pos = 0;
-        $this->entries = $this->sftp->nlist($path);
-        return $this->entries !== false;
-    }
-
-    /**
-     * Read entry from directory handle
-     *
-     * @return mixed
-     * @access public
-     */
-    function _dir_readdir()
-    {
-        if (isset($this->entries[$this->pos])) {
-            return $this->entries[$this->pos++];
-        }
-        return false;
-    }
-
-    /**
-     * Rewind directory handle
-     *
-     * @return bool
-     * @access public
-     */
-    function _dir_rewinddir()
-    {
-        $this->pos = 0;
-        return true;
-    }
-
-    /**
-     * Close directory handle
-     *
-     * @return bool
-     * @access public
-     */
-    function _dir_closedir()
-    {
-        return true;
-    }
-
-    /**
-     * Create a directory
-     *
-     * Only valid $options is STREAM_MKDIR_RECURSIVE
-     *
-     * @param string $path
-     * @param int $mode
-     * @param int $options
-     * @return bool
-     * @access public
-     */
-    function _mkdir($path, $mode, $options)
-    {
-        $path = $this->_parse_path($path);
-        if ($path === false) {
-            return false;
-        }
-
-        return $this->sftp->mkdir($path, $mode, $options & STREAM_MKDIR_RECURSIVE);
-    }
-
-    /**
-     * Removes a directory
-     *
-     * Only valid $options is STREAM_MKDIR_RECURSIVE per <http://php.net/streamwrapper.rmdir>, however,
-     * <http://php.net/rmdir>  does not have a $recursive parameter as mkdir() does so I don't know how
-     * STREAM_MKDIR_RECURSIVE is supposed to be set. Also, when I try it out with rmdir() I get 8 as
-     * $options. What does 8 correspond to?
-     *
-     * @param string $path
-     * @param int $mode
-     * @param int $options
-     * @return bool
-     * @access public
-     */
-    function _rmdir($path, $options)
-    {
-        $path = $this->_parse_path($path);
-        if ($path === false) {
-            return false;
-        }
-
-        return $this->sftp->rmdir($path);
-    }
-
-    /**
-     * Flushes the output
-     *
-     * See <http://php.net/fflush>. Always returns true because \phpseclib\Net\SFTP doesn't cache stuff before writing
-     *
-     * @return bool
-     * @access public
-     */
-    function _stream_flush()
-    {
-        return true;
-    }
-
-    /**
-     * Retrieve information about a file resource
-     *
-     * @return mixed
-     * @access public
-     */
-    function _stream_stat()
-    {
-        $results = $this->sftp->stat($this->path);
-        if ($results === false) {
-            return false;
-        }
-        return $results;
-    }
-
-    /**
-     * Delete a file
-     *
-     * @param string $path
-     * @return bool
-     * @access public
-     */
-    function _unlink($path)
-    {
-        $path = $this->_parse_path($path);
-        if ($path === false) {
-            return false;
-        }
-
-        return $this->sftp->delete($path, false);
-    }
-
-    /**
-     * Retrieve information about a file
-     *
-     * Ignores the STREAM_URL_STAT_QUIET flag because the entirety of \phpseclib\Net\SFTP\Stream is quiet by default
-     * might be worthwhile to reconstruct bits 12-16 (ie. the file type) if mode doesn't have them but we'll
-     * cross that bridge when and if it's reached
-     *
-     * @param string $path
-     * @param int $flags
-     * @return mixed
-     * @access public
-     */
-    function _url_stat($path, $flags)
-    {
-        $path = $this->_parse_path($path);
-        if ($path === false) {
-            return false;
-        }
-
-        $results = $flags & STREAM_URL_STAT_LINK ? $this->sftp->lstat($path) : $this->sftp->stat($path);
-        if ($results === false) {
-            return false;
-        }
-
-        return $results;
-    }
-
-    /**
-     * Truncate stream
-     *
-     * @param int $new_size
-     * @return bool
-     * @access public
-     */
-    function _stream_truncate($new_size)
-    {
-        if (!$this->sftp->truncate($this->path, $new_size)) {
-            return false;
-        }
-
-        $this->eof = false;
-        $this->size = $new_size;
-
-        return true;
-    }
-
-    /**
-     * Change stream options
-     *
-     * STREAM_OPTION_WRITE_BUFFER isn't supported for the same reason stream_flush isn't.
-     * The other two aren't supported because of limitations in \phpseclib\Net\SFTP.
-     *
-     * @param int $option
-     * @param int $arg1
-     * @param int $arg2
-     * @return bool
-     * @access public
-     */
-    function _stream_set_option($option, $arg1, $arg2)
-    {
-        return false;
-    }
-
-    /**
-     * Close an resource
-     *
-     * @access public
-     */
-    function _stream_close()
-    {
-    }
-
-    /**
-     * __call Magic Method
-     *
-     * When you're utilizing an SFTP stream you're not calling the methods in this class directly - PHP is calling them for you.
-     * Which kinda begs the question... what methods is PHP calling and what parameters is it passing to them? This function
-     * lets you figure that out.
-     *
-     * If NET_SFTP_STREAM_LOGGING is defined all calls will be output on the screen and then (regardless of whether or not
-     * NET_SFTP_STREAM_LOGGING is enabled) the parameters will be passed through to the appropriate method.
-     *
-     * @param string
-     * @param array
-     * @return mixed
-     * @access public
-     */
-    function __call($name, $arguments)
-    {
-        if (defined('NET_SFTP_STREAM_LOGGING')) {
-            echo $name . '(';
-            $last = count($arguments) - 1;
-            foreach ($arguments as $i => $argument) {
-                var_export($argument);
-                if ($i != $last) {
-                    echo ',';
-                }
-            }
-            echo ")\r\n";
-        }
-        $name = '_' . $name;
-        if (!method_exists($this, $name)) {
-            return false;
-        }
-        return call_user_func_array(array($this, $name), $arguments);
-    }
-}
diff --git a/wiki/vendor/phpseclib/phpseclib/phpseclib/Net/SSH1.php b/wiki/vendor/phpseclib/phpseclib/phpseclib/Net/SSH1.php
deleted file mode 100644
index 514b20a..0000000
--- a/wiki/vendor/phpseclib/phpseclib/phpseclib/Net/SSH1.php
+++ /dev/null
@@ -1,1642 +0,0 @@
-<?php
-
-/**
- * Pure-PHP implementation of SSHv1.
- *
- * PHP version 5
- *
- * Here's a short example of how to use this library:
- * <code>
- * <?php
- *    include 'vendor/autoload.php';
- *
- *    $ssh = new \phpseclib\Net\SSH1('www.domain.tld');
- *    if (!$ssh->login('username', 'password')) {
- *        exit('Login Failed');
- *    }
- *
- *    echo $ssh->exec('ls -la');
- * ?>
- * </code>
- *
- * Here's another short example:
- * <code>
- * <?php
- *    include 'vendor/autoload.php';
- *
- *    $ssh = new \phpseclib\Net\SSH1('www.domain.tld');
- *    if (!$ssh->login('username', 'password')) {
- *        exit('Login Failed');
- *    }
- *
- *    echo $ssh->read('username@username:~$');
- *    $ssh->write("ls -la\n");
- *    echo $ssh->read('username@username:~$');
- * ?>
- * </code>
- *
- * More information on the SSHv1 specification can be found by reading
- * {@link http://www.snailbook.com/docs/protocol-1.5.txt protocol-1.5.txt}.
- *
- * @category  Net
- * @package   SSH1
- * @author    Jim Wigginton <terrafrost@php.net>
- * @copyright 2007 Jim Wigginton
- * @license   http://www.opensource.org/licenses/mit-license.html  MIT License
- * @link      http://phpseclib.sourceforge.net
- */
-
-namespace phpseclib\Net;
-
-use phpseclib\Crypt\DES;
-use phpseclib\Crypt\Random;
-use phpseclib\Crypt\TripleDES;
-use phpseclib\Math\BigInteger;
-
-/**
- * Pure-PHP implementation of SSHv1.
- *
- * @package SSH1
- * @author  Jim Wigginton <terrafrost@php.net>
- * @access  public
- */
-class SSH1
-{
-    /**#@+
-     * Encryption Methods
-     *
-     * @see \phpseclib\Net\SSH1::getSupportedCiphers()
-     * @access public
-     */
-    /**
-     * No encryption
-     *
-     * Not supported.
-     */
-    const CIPHER_NONE = 0;
-    /**
-     * IDEA in CFB mode
-     *
-     * Not supported.
-     */
-    const CIPHER_IDEA = 1;
-    /**
-     * DES in CBC mode
-     */
-    const CIPHER_DES = 2;
-    /**
-     * Triple-DES in CBC mode
-     *
-     * All implementations are required to support this
-     */
-    const CIPHER_3DES = 3;
-    /**
-     * TRI's Simple Stream encryption CBC
-     *
-     * Not supported nor is it defined in the official SSH1 specs.  OpenSSH, however, does define it (see cipher.h),
-     * although it doesn't use it (see cipher.c)
-     */
-    const CIPHER_BROKEN_TSS = 4;
-    /**
-     * RC4
-     *
-     * Not supported.
-     *
-     * @internal According to the SSH1 specs:
-     *
-     *        "The first 16 bytes of the session key are used as the key for
-     *         the server to client direction.  The remaining 16 bytes are used
-     *         as the key for the client to server direction.  This gives
-     *         independent 128-bit keys for each direction."
-     *
-     *     This library currently only supports encryption when the same key is being used for both directions.  This is
-     *     because there's only one $crypto object.  Two could be added ($encrypt and $decrypt, perhaps).
-     */
-    const CIPHER_RC4 = 5;
-    /**
-     * Blowfish
-     *
-     * Not supported nor is it defined in the official SSH1 specs.  OpenSSH, however, defines it (see cipher.h) and
-     * uses it (see cipher.c)
-     */
-    const CIPHER_BLOWFISH = 6;
-    /**#@-*/
-
-    /**#@+
-     * Authentication Methods
-     *
-     * @see \phpseclib\Net\SSH1::getSupportedAuthentications()
-     * @access public
-    */
-    /**
-     * .rhosts or /etc/hosts.equiv
-     */
-    const AUTH_RHOSTS = 1;
-    /**
-     * pure RSA authentication
-     */
-    const AUTH_RSA = 2;
-    /**
-     * password authentication
-     *
-     * This is the only method that is supported by this library.
-     */
-    const AUTH_PASSWORD = 3;
-    /**
-     * .rhosts with RSA host authentication
-     */
-    const AUTH_RHOSTS_RSA = 4;
-    /**#@-*/
-
-    /**#@+
-     * Terminal Modes
-     *
-     * @link http://3sp.com/content/developer/maverick-net/docs/Maverick.SSH.PseudoTerminalModesMembers.html
-     * @access private
-    */
-    const TTY_OP_END = 0;
-    /**#@-*/
-
-    /**
-     * The Response Type
-     *
-     * @see \phpseclib\Net\SSH1::_get_binary_packet()
-     * @access private
-     */
-    const RESPONSE_TYPE = 1;
-
-    /**
-     * The Response Data
-     *
-     * @see \phpseclib\Net\SSH1::_get_binary_packet()
-     * @access private
-     */
-    const RESPONSE_DATA = 2;
-
-    /**#@+
-     * Execution Bitmap Masks
-     *
-     * @see \phpseclib\Net\SSH1::bitmap
-     * @access private
-    */
-    const MASK_CONSTRUCTOR = 0x00000001;
-    const MASK_CONNECTED   = 0x00000002;
-    const MASK_LOGIN       = 0x00000004;
-    const MASK_SHELL       = 0x00000008;
-    /**#@-*/
-
-    /**#@+
-     * @access public
-     * @see \phpseclib\Net\SSH1::getLog()
-    */
-    /**
-     * Returns the message numbers
-     */
-    const LOG_SIMPLE = 1;
-    /**
-     * Returns the message content
-     */
-    const LOG_COMPLEX = 2;
-    /**
-     * Outputs the content real-time
-     */
-    const LOG_REALTIME = 3;
-    /**
-     * Dumps the content real-time to a file
-     */
-    const LOG_REALTIME_FILE = 4;
-    /**#@-*/
-
-    /**#@+
-     * @access public
-     * @see \phpseclib\Net\SSH1::read()
-    */
-    /**
-     * Returns when a string matching $expect exactly is found
-     */
-    const READ_SIMPLE = 1;
-    /**
-     * Returns when a string matching the regular expression $expect is found
-     */
-    const READ_REGEX = 2;
-    /**#@-*/
-
-    /**
-     * The SSH identifier
-     *
-     * @var string
-     * @access private
-     */
-    var $identifier = 'SSH-1.5-phpseclib';
-
-    /**
-     * The Socket Object
-     *
-     * @var object
-     * @access private
-     */
-    var $fsock;
-
-    /**
-     * The cryptography object
-     *
-     * @var object
-     * @access private
-     */
-    var $crypto = false;
-
-    /**
-     * Execution Bitmap
-     *
-     * The bits that are set represent functions that have been called already.  This is used to determine
-     * if a requisite function has been successfully executed.  If not, an error should be thrown.
-     *
-     * @var int
-     * @access private
-     */
-    var $bitmap = 0;
-
-    /**
-     * The Server Key Public Exponent
-     *
-     * Logged for debug purposes
-     *
-     * @see self::getServerKeyPublicExponent()
-     * @var string
-     * @access private
-     */
-    var $server_key_public_exponent;
-
-    /**
-     * The Server Key Public Modulus
-     *
-     * Logged for debug purposes
-     *
-     * @see self::getServerKeyPublicModulus()
-     * @var string
-     * @access private
-     */
-    var $server_key_public_modulus;
-
-    /**
-     * The Host Key Public Exponent
-     *
-     * Logged for debug purposes
-     *
-     * @see self::getHostKeyPublicExponent()
-     * @var string
-     * @access private
-     */
-    var $host_key_public_exponent;
-
-    /**
-     * The Host Key Public Modulus
-     *
-     * Logged for debug purposes
-     *
-     * @see self::getHostKeyPublicModulus()
-     * @var string
-     * @access private
-     */
-    var $host_key_public_modulus;
-
-    /**
-     * Supported Ciphers
-     *
-     * Logged for debug purposes
-     *
-     * @see self::getSupportedCiphers()
-     * @var array
-     * @access private
-     */
-    var $supported_ciphers = array(
-        self::CIPHER_NONE       => 'No encryption',
-        self::CIPHER_IDEA       => 'IDEA in CFB mode',
-        self::CIPHER_DES        => 'DES in CBC mode',
-        self::CIPHER_3DES       => 'Triple-DES in CBC mode',
-        self::CIPHER_BROKEN_TSS => 'TRI\'s Simple Stream encryption CBC',
-        self::CIPHER_RC4        => 'RC4',
-        self::CIPHER_BLOWFISH   => 'Blowfish'
-    );
-
-    /**
-     * Supported Authentications
-     *
-     * Logged for debug purposes
-     *
-     * @see self::getSupportedAuthentications()
-     * @var array
-     * @access private
-     */
-    var $supported_authentications = array(
-        self::AUTH_RHOSTS     => '.rhosts or /etc/hosts.equiv',
-        self::AUTH_RSA        => 'pure RSA authentication',
-        self::AUTH_PASSWORD   => 'password authentication',
-        self::AUTH_RHOSTS_RSA => '.rhosts with RSA host authentication'
-    );
-
-    /**
-     * Server Identification
-     *
-     * @see self::getServerIdentification()
-     * @var string
-     * @access private
-     */
-    var $server_identification = '';
-
-    /**
-     * Protocol Flags
-     *
-     * @see self::__construct()
-     * @var array
-     * @access private
-     */
-    var $protocol_flags = array();
-
-    /**
-     * Protocol Flag Log
-     *
-     * @see self::getLog()
-     * @var array
-     * @access private
-     */
-    var $protocol_flag_log = array();
-
-    /**
-     * Message Log
-     *
-     * @see self::getLog()
-     * @var array
-     * @access private
-     */
-    var $message_log = array();
-
-    /**
-     * Real-time log file pointer
-     *
-     * @see self::_append_log()
-     * @var resource
-     * @access private
-     */
-    var $realtime_log_file;
-
-    /**
-     * Real-time log file size
-     *
-     * @see self::_append_log()
-     * @var int
-     * @access private
-     */
-    var $realtime_log_size;
-
-    /**
-     * Real-time log file wrap boolean
-     *
-     * @see self::_append_log()
-     * @var bool
-     * @access private
-     */
-    var $realtime_log_wrap;
-
-    /**
-     * Interactive Buffer
-     *
-     * @see self::read()
-     * @var array
-     * @access private
-     */
-    var $interactiveBuffer = '';
-
-    /**
-     * Timeout
-     *
-     * @see self::setTimeout()
-     * @access private
-     */
-    var $timeout;
-
-    /**
-     * Current Timeout
-     *
-     * @see self::_get_channel_packet()
-     * @access private
-     */
-    var $curTimeout;
-
-    /**
-     * Log Boundary
-     *
-     * @see self::_format_log()
-     * @access private
-     */
-    var $log_boundary = ':';
-
-    /**
-     * Log Long Width
-     *
-     * @see self::_format_log()
-     * @access private
-     */
-    var $log_long_width = 65;
-
-    /**
-     * Log Short Width
-     *
-     * @see self::_format_log()
-     * @access private
-     */
-    var $log_short_width = 16;
-
-    /**
-     * Hostname
-     *
-     * @see self::__construct()
-     * @see self::_connect()
-     * @var string
-     * @access private
-     */
-    var $host;
-
-    /**
-     * Port Number
-     *
-     * @see self::__construct()
-     * @see self::_connect()
-     * @var int
-     * @access private
-     */
-    var $port;
-
-    /**
-     * Timeout for initial connection
-     *
-     * Set by the constructor call. Calling setTimeout() is optional. If it's not called functions like
-     * exec() won't timeout unless some PHP setting forces it too. The timeout specified in the constructor,
-     * however, is non-optional. There will be a timeout, whether or not you set it. If you don't it'll be
-     * 10 seconds. It is used by fsockopen() in that function.
-     *
-     * @see self::__construct()
-     * @see self::_connect()
-     * @var int
-     * @access private
-     */
-    var $connectionTimeout;
-
-    /**
-     * Default cipher
-     *
-     * @see self::__construct()
-     * @see self::_connect()
-     * @var int
-     * @access private
-     */
-    var $cipher;
-
-    /**
-     * Default Constructor.
-     *
-     * Connects to an SSHv1 server
-     *
-     * @param string $host
-     * @param int $port
-     * @param int $timeout
-     * @param int $cipher
-     * @return \phpseclib\Net\SSH1
-     * @access public
-     */
-    function __construct($host, $port = 22, $timeout = 10, $cipher = self::CIPHER_3DES)
-    {
-        $this->protocol_flags = array(
-            1  => 'NET_SSH1_MSG_DISCONNECT',
-            2  => 'NET_SSH1_SMSG_PUBLIC_KEY',
-            3  => 'NET_SSH1_CMSG_SESSION_KEY',
-            4  => 'NET_SSH1_CMSG_USER',
-            9  => 'NET_SSH1_CMSG_AUTH_PASSWORD',
-            10 => 'NET_SSH1_CMSG_REQUEST_PTY',
-            12 => 'NET_SSH1_CMSG_EXEC_SHELL',
-            13 => 'NET_SSH1_CMSG_EXEC_CMD',
-            14 => 'NET_SSH1_SMSG_SUCCESS',
-            15 => 'NET_SSH1_SMSG_FAILURE',
-            16 => 'NET_SSH1_CMSG_STDIN_DATA',
-            17 => 'NET_SSH1_SMSG_STDOUT_DATA',
-            18 => 'NET_SSH1_SMSG_STDERR_DATA',
-            19 => 'NET_SSH1_CMSG_EOF',
-            20 => 'NET_SSH1_SMSG_EXITSTATUS',
-            33 => 'NET_SSH1_CMSG_EXIT_CONFIRMATION'
-        );
-
-        $this->_define_array($this->protocol_flags);
-
-        $this->host = $host;
-        $this->port = $port;
-        $this->connectionTimeout = $timeout;
-        $this->cipher = $cipher;
-    }
-
-    /**
-     * Connect to an SSHv1 server
-     *
-     * @return bool
-     * @access private
-     */
-    function _connect()
-    {
-        $this->fsock = @fsockopen($this->host, $this->port, $errno, $errstr, $this->connectionTimeout);
-        if (!$this->fsock) {
-            user_error(rtrim("Cannot connect to {$this->host}:{$this->port}. Error $errno. $errstr"));
-            return false;
-        }
-
-        $this->server_identification = $init_line = fgets($this->fsock, 255);
-
-        if (defined('NET_SSH1_LOGGING')) {
-            $this->_append_log('<-', $this->server_identification);
-            $this->_append_log('->', $this->identifier . "\r\n");
-        }
-
-        if (!preg_match('#SSH-([0-9\.]+)-(.+)#', $init_line, $parts)) {
-            user_error('Can only connect to SSH servers');
-            return false;
-        }
-        if ($parts[1][0] != 1) {
-            user_error("Cannot connect to SSH $parts[1] servers");
-            return false;
-        }
-
-        fputs($this->fsock, $this->identifier."\r\n");
-
-        $response = $this->_get_binary_packet();
-        if ($response[self::RESPONSE_TYPE] != NET_SSH1_SMSG_PUBLIC_KEY) {
-            user_error('Expected SSH_SMSG_PUBLIC_KEY');
-            return false;
-        }
-
-        $anti_spoofing_cookie = $this->_string_shift($response[self::RESPONSE_DATA], 8);
-
-        $this->_string_shift($response[self::RESPONSE_DATA], 4);
-
-        if (strlen($response[self::RESPONSE_DATA]) < 2) {
-            return false;
-        }
-        $temp = unpack('nlen', $this->_string_shift($response[self::RESPONSE_DATA], 2));
-        $server_key_public_exponent = new BigInteger($this->_string_shift($response[self::RESPONSE_DATA], ceil($temp['len'] / 8)), 256);
-        $this->server_key_public_exponent = $server_key_public_exponent;
-
-        if (strlen($response[self::RESPONSE_DATA]) < 2) {
-            return false;
-        }
-        $temp = unpack('nlen', $this->_string_shift($response[self::RESPONSE_DATA], 2));
-        $server_key_public_modulus = new BigInteger($this->_string_shift($response[self::RESPONSE_DATA], ceil($temp['len'] / 8)), 256);
-
-        $this->server_key_public_modulus = $server_key_public_modulus;
-
-        $this->_string_shift($response[self::RESPONSE_DATA], 4);
-
-        if (strlen($response[self::RESPONSE_DATA]) < 2) {
-            return false;
-        }
-        $temp = unpack('nlen', $this->_string_shift($response[self::RESPONSE_DATA], 2));
-        $host_key_public_exponent = new BigInteger($this->_string_shift($response[self::RESPONSE_DATA], ceil($temp['len'] / 8)), 256);
-        $this->host_key_public_exponent = $host_key_public_exponent;
-
-        if (strlen($response[self::RESPONSE_DATA]) < 2) {
-            return false;
-        }
-        $temp = unpack('nlen', $this->_string_shift($response[self::RESPONSE_DATA], 2));
-        $host_key_public_modulus = new BigInteger($this->_string_shift($response[self::RESPONSE_DATA], ceil($temp['len'] / 8)), 256);
-
-        $this->host_key_public_modulus = $host_key_public_modulus;
-
-        $this->_string_shift($response[self::RESPONSE_DATA], 4);
-
-        // get a list of the supported ciphers
-        if (strlen($response[self::RESPONSE_DATA]) < 4) {
-            return false;
-        }
-        extract(unpack('Nsupported_ciphers_mask', $this->_string_shift($response[self::RESPONSE_DATA], 4)));
-
-        foreach ($this->supported_ciphers as $mask => $name) {
-            if (($supported_ciphers_mask & (1 << $mask)) == 0) {
-                unset($this->supported_ciphers[$mask]);
-            }
-        }
-
-        // get a list of the supported authentications
-        if (strlen($response[self::RESPONSE_DATA]) < 4) {
-            return false;
-        }
-        extract(unpack('Nsupported_authentications_mask', $this->_string_shift($response[self::RESPONSE_DATA], 4)));
-        foreach ($this->supported_authentications as $mask => $name) {
-            if (($supported_authentications_mask & (1 << $mask)) == 0) {
-                unset($this->supported_authentications[$mask]);
-            }
-        }
-
-        $session_id = pack('H*', md5($host_key_public_modulus->toBytes() . $server_key_public_modulus->toBytes() . $anti_spoofing_cookie));
-
-        $session_key = Random::string(32);
-        $double_encrypted_session_key = $session_key ^ str_pad($session_id, 32, chr(0));
-
-        if ($server_key_public_modulus->compare($host_key_public_modulus) < 0) {
-            $double_encrypted_session_key = $this->_rsa_crypt(
-                $double_encrypted_session_key,
-                array(
-                    $server_key_public_exponent,
-                    $server_key_public_modulus
-                )
-            );
-            $double_encrypted_session_key = $this->_rsa_crypt(
-                $double_encrypted_session_key,
-                array(
-                    $host_key_public_exponent,
-                    $host_key_public_modulus
-                )
-            );
-        } else {
-            $double_encrypted_session_key = $this->_rsa_crypt(
-                $double_encrypted_session_key,
-                array(
-                    $host_key_public_exponent,
-                    $host_key_public_modulus
-                )
-            );
-            $double_encrypted_session_key = $this->_rsa_crypt(
-                $double_encrypted_session_key,
-                array(
-                    $server_key_public_exponent,
-                    $server_key_public_modulus
-                )
-            );
-        }
-
-        $cipher = isset($this->supported_ciphers[$this->cipher]) ? $this->cipher : self::CIPHER_3DES;
-        $data = pack('C2a*na*N', NET_SSH1_CMSG_SESSION_KEY, $cipher, $anti_spoofing_cookie, 8 * strlen($double_encrypted_session_key), $double_encrypted_session_key, 0);
-
-        if (!$this->_send_binary_packet($data)) {
-            user_error('Error sending SSH_CMSG_SESSION_KEY');
-            return false;
-        }
-
-        switch ($cipher) {
-            //case self::CIPHER_NONE:
-            //    $this->crypto = new \phpseclib\Crypt\Null();
-            //    break;
-            case self::CIPHER_DES:
-                $this->crypto = new DES();
-                $this->crypto->disablePadding();
-                $this->crypto->enableContinuousBuffer();
-                $this->crypto->setKey(substr($session_key, 0,  8));
-                break;
-            case self::CIPHER_3DES:
-                $this->crypto = new TripleDES(TripleDES::MODE_3CBC);
-                $this->crypto->disablePadding();
-                $this->crypto->enableContinuousBuffer();
-                $this->crypto->setKey(substr($session_key, 0, 24));
-                break;
-            //case self::CIPHER_RC4:
-            //    $this->crypto = new RC4();
-            //    $this->crypto->enableContinuousBuffer();
-            //    $this->crypto->setKey(substr($session_key, 0,  16));
-            //    break;
-        }
-
-        $response = $this->_get_binary_packet();
-
-        if ($response[self::RESPONSE_TYPE] != NET_SSH1_SMSG_SUCCESS) {
-            user_error('Expected SSH_SMSG_SUCCESS');
-            return false;
-        }
-
-        $this->bitmap = self::MASK_CONNECTED;
-
-        return true;
-    }
-
-    /**
-     * Login
-     *
-     * @param string $username
-     * @param string $password
-     * @return bool
-     * @access public
-     */
-    function login($username, $password = '')
-    {
-        if (!($this->bitmap & self::MASK_CONSTRUCTOR)) {
-            $this->bitmap |= self::MASK_CONSTRUCTOR;
-            if (!$this->_connect()) {
-                return false;
-            }
-        }
-
-        if (!($this->bitmap & self::MASK_CONNECTED)) {
-            return false;
-        }
-
-        $data = pack('CNa*', NET_SSH1_CMSG_USER, strlen($username), $username);
-
-        if (!$this->_send_binary_packet($data)) {
-            user_error('Error sending SSH_CMSG_USER');
-            return false;
-        }
-
-        $response = $this->_get_binary_packet();
-
-        if ($response === true) {
-            return false;
-        }
-        if ($response[self::RESPONSE_TYPE] == NET_SSH1_SMSG_SUCCESS) {
-            $this->bitmap |= self::MASK_LOGIN;
-            return true;
-        } elseif ($response[self::RESPONSE_TYPE] != NET_SSH1_SMSG_FAILURE) {
-            user_error('Expected SSH_SMSG_SUCCESS or SSH_SMSG_FAILURE');
-            return false;
-        }
-
-        $data = pack('CNa*', NET_SSH1_CMSG_AUTH_PASSWORD, strlen($password), $password);
-
-        if (!$this->_send_binary_packet($data)) {
-            user_error('Error sending SSH_CMSG_AUTH_PASSWORD');
-            return false;
-        }
-
-        // remove the username and password from the last logged packet
-        if (defined('NET_SSH1_LOGGING') && NET_SSH1_LOGGING == self::LOG_COMPLEX) {
-            $data = pack('CNa*', NET_SSH1_CMSG_AUTH_PASSWORD, strlen('password'), 'password');
-            $this->message_log[count($this->message_log) - 1] = $data;
-        }
-
-        $response = $this->_get_binary_packet();
-
-        if ($response === true) {
-            return false;
-        }
-        if ($response[self::RESPONSE_TYPE] == NET_SSH1_SMSG_SUCCESS) {
-            $this->bitmap |= self::MASK_LOGIN;
-            return true;
-        } elseif ($response[self::RESPONSE_TYPE] == NET_SSH1_SMSG_FAILURE) {
-            return false;
-        } else {
-            user_error('Expected SSH_SMSG_SUCCESS or SSH_SMSG_FAILURE');
-            return false;
-        }
-    }
-
-    /**
-     * Set Timeout
-     *
-     * $ssh->exec('ping 127.0.0.1'); on a Linux host will never return and will run indefinitely.  setTimeout() makes it so it'll timeout.
-     * Setting $timeout to false or 0 will mean there is no timeout.
-     *
-     * @param mixed $timeout
-     */
-    function setTimeout($timeout)
-    {
-        $this->timeout = $this->curTimeout = $timeout;
-    }
-
-    /**
-     * Executes a command on a non-interactive shell, returns the output, and quits.
-     *
-     * An SSH1 server will close the connection after a command has been executed on a non-interactive shell.  SSH2
-     * servers don't, however, this isn't an SSH2 client.  The way this works, on the server, is by initiating a
-     * shell with the -s option, as discussed in the following links:
-     *
-     * {@link http://www.faqs.org/docs/bashman/bashref_65.html http://www.faqs.org/docs/bashman/bashref_65.html}
-     * {@link http://www.faqs.org/docs/bashman/bashref_62.html http://www.faqs.org/docs/bashman/bashref_62.html}
-     *
-     * To execute further commands, a new \phpseclib\Net\SSH1 object will need to be created.
-     *
-     * Returns false on failure and the output, otherwise.
-     *
-     * @see self::interactiveRead()
-     * @see self::interactiveWrite()
-     * @param string $cmd
-     * @return mixed
-     * @access public
-     */
-    function exec($cmd, $block = true)
-    {
-        if (!($this->bitmap & self::MASK_LOGIN)) {
-            user_error('Operation disallowed prior to login()');
-            return false;
-        }
-
-        $data = pack('CNa*', NET_SSH1_CMSG_EXEC_CMD, strlen($cmd), $cmd);
-
-        if (!$this->_send_binary_packet($data)) {
-            user_error('Error sending SSH_CMSG_EXEC_CMD');
-            return false;
-        }
-
-        if (!$block) {
-            return true;
-        }
-
-        $output = '';
-        $response = $this->_get_binary_packet();
-
-        if ($response !== false) {
-            do {
-                $output.= substr($response[self::RESPONSE_DATA], 4);
-                $response = $this->_get_binary_packet();
-            } while (is_array($response) && $response[self::RESPONSE_TYPE] != NET_SSH1_SMSG_EXITSTATUS);
-        }
-
-        $data = pack('C', NET_SSH1_CMSG_EXIT_CONFIRMATION);
-
-        // i don't think it's really all that important if this packet gets sent or not.
-        $this->_send_binary_packet($data);
-
-        fclose($this->fsock);
-
-        // reset the execution bitmap - a new \phpseclib\Net\SSH1 object needs to be created.
-        $this->bitmap = 0;
-
-        return $output;
-    }
-
-    /**
-     * Creates an interactive shell
-     *
-     * @see self::interactiveRead()
-     * @see self::interactiveWrite()
-     * @return bool
-     * @access private
-     */
-    function _initShell()
-    {
-        // connect using the sample parameters in protocol-1.5.txt.
-        // according to wikipedia.org's entry on text terminals, "the fundamental type of application running on a text
-        // terminal is a command line interpreter or shell".  thus, opening a terminal session to run the shell.
-        $data = pack('CNa*N4C', NET_SSH1_CMSG_REQUEST_PTY, strlen('vt100'), 'vt100', 24, 80, 0, 0, self::TTY_OP_END);
-
-        if (!$this->_send_binary_packet($data)) {
-            user_error('Error sending SSH_CMSG_REQUEST_PTY');
-            return false;
-        }
-
-        $response = $this->_get_binary_packet();
-
-        if ($response === true) {
-            return false;
-        }
-        if ($response[self::RESPONSE_TYPE] != NET_SSH1_SMSG_SUCCESS) {
-            user_error('Expected SSH_SMSG_SUCCESS');
-            return false;
-        }
-
-        $data = pack('C', NET_SSH1_CMSG_EXEC_SHELL);
-
-        if (!$this->_send_binary_packet($data)) {
-            user_error('Error sending SSH_CMSG_EXEC_SHELL');
-            return false;
-        }
-
-        $this->bitmap |= self::MASK_SHELL;
-
-        //stream_set_blocking($this->fsock, 0);
-
-        return true;
-    }
-
-    /**
-     * Inputs a command into an interactive shell.
-     *
-     * @see self::interactiveWrite()
-     * @param string $cmd
-     * @return bool
-     * @access public
-     */
-    function write($cmd)
-    {
-        return $this->interactiveWrite($cmd);
-    }
-
-    /**
-     * Returns the output of an interactive shell when there's a match for $expect
-     *
-     * $expect can take the form of a string literal or, if $mode == self::READ_REGEX,
-     * a regular expression.
-     *
-     * @see self::write()
-     * @param string $expect
-     * @param int $mode
-     * @return bool
-     * @access public
-     */
-    function read($expect, $mode = self::READ_SIMPLE)
-    {
-        if (!($this->bitmap & self::MASK_LOGIN)) {
-            user_error('Operation disallowed prior to login()');
-            return false;
-        }
-
-        if (!($this->bitmap & self::MASK_SHELL) && !$this->_initShell()) {
-            user_error('Unable to initiate an interactive shell session');
-            return false;
-        }
-
-        $match = $expect;
-        while (true) {
-            if ($mode == self::READ_REGEX) {
-                preg_match($expect, $this->interactiveBuffer, $matches);
-                $match = isset($matches[0]) ? $matches[0] : '';
-            }
-            $pos = strlen($match) ? strpos($this->interactiveBuffer, $match) : false;
-            if ($pos !== false) {
-                return $this->_string_shift($this->interactiveBuffer, $pos + strlen($match));
-            }
-            $response = $this->_get_binary_packet();
-
-            if ($response === true) {
-                return $this->_string_shift($this->interactiveBuffer, strlen($this->interactiveBuffer));
-            }
-            $this->interactiveBuffer.= substr($response[self::RESPONSE_DATA], 4);
-        }
-    }
-
-    /**
-     * Inputs a command into an interactive shell.
-     *
-     * @see self::interactiveRead()
-     * @param string $cmd
-     * @return bool
-     * @access public
-     */
-    function interactiveWrite($cmd)
-    {
-        if (!($this->bitmap & self::MASK_LOGIN)) {
-            user_error('Operation disallowed prior to login()');
-            return false;
-        }
-
-        if (!($this->bitmap & self::MASK_SHELL) && !$this->_initShell()) {
-            user_error('Unable to initiate an interactive shell session');
-            return false;
-        }
-
-        $data = pack('CNa*', NET_SSH1_CMSG_STDIN_DATA, strlen($cmd), $cmd);
-
-        if (!$this->_send_binary_packet($data)) {
-            user_error('Error sending SSH_CMSG_STDIN');
-            return false;
-        }
-
-        return true;
-    }
-
-    /**
-     * Returns the output of an interactive shell when no more output is available.
-     *
-     * Requires PHP 4.3.0 or later due to the use of the stream_select() function.  If you see stuff like
-     * "^[[00m", you're seeing ANSI escape codes.  According to
-     * {@link http://support.microsoft.com/kb/101875 How to Enable ANSI.SYS in a Command Window}, "Windows NT
-     * does not support ANSI escape sequences in Win32 Console applications", so if you're a Windows user,
-     * there's not going to be much recourse.
-     *
-     * @see self::interactiveRead()
-     * @return string
-     * @access public
-     */
-    function interactiveRead()
-    {
-        if (!($this->bitmap & self::MASK_LOGIN)) {
-            user_error('Operation disallowed prior to login()');
-            return false;
-        }
-
-        if (!($this->bitmap & self::MASK_SHELL) && !$this->_initShell()) {
-            user_error('Unable to initiate an interactive shell session');
-            return false;
-        }
-
-        $read = array($this->fsock);
-        $write = $except = null;
-        if (stream_select($read, $write, $except, 0)) {
-            $response = $this->_get_binary_packet();
-            return substr($response[self::RESPONSE_DATA], 4);
-        } else {
-            return '';
-        }
-    }
-
-    /**
-     * Disconnect
-     *
-     * @access public
-     */
-    function disconnect()
-    {
-        $this->_disconnect();
-    }
-
-    /**
-     * Destructor.
-     *
-     * Will be called, automatically, if you're supporting just PHP5.  If you're supporting PHP4, you'll need to call
-     * disconnect().
-     *
-     * @access public
-     */
-    function __destruct()
-    {
-        $this->_disconnect();
-    }
-
-    /**
-     * Disconnect
-     *
-     * @param string $msg
-     * @access private
-     */
-    function _disconnect($msg = 'Client Quit')
-    {
-        if ($this->bitmap) {
-            $data = pack('C', NET_SSH1_CMSG_EOF);
-            $this->_send_binary_packet($data);
-            /*
-            $response = $this->_get_binary_packet();
-            if ($response === true) {
-                $response = array(self::RESPONSE_TYPE => -1);
-            }
-            switch ($response[self::RESPONSE_TYPE]) {
-                case NET_SSH1_SMSG_EXITSTATUS:
-                    $data = pack('C', NET_SSH1_CMSG_EXIT_CONFIRMATION);
-                    break;
-                default:
-                    $data = pack('CNa*', NET_SSH1_MSG_DISCONNECT, strlen($msg), $msg);
-            }
-            */
-            $data = pack('CNa*', NET_SSH1_MSG_DISCONNECT, strlen($msg), $msg);
-
-            $this->_send_binary_packet($data);
-            fclose($this->fsock);
-            $this->bitmap = 0;
-        }
-    }
-
-    /**
-     * Gets Binary Packets
-     *
-     * See 'The Binary Packet Protocol' of protocol-1.5.txt for more info.
-     *
-     * Also, this function could be improved upon by adding detection for the following exploit:
-     * http://www.securiteam.com/securitynews/5LP042K3FY.html
-     *
-     * @see self::_send_binary_packet()
-     * @return array
-     * @access private
-     */
-    function _get_binary_packet()
-    {
-        if (feof($this->fsock)) {
-            //user_error('connection closed prematurely');
-            return false;
-        }
-
-        if ($this->curTimeout) {
-            $read = array($this->fsock);
-            $write = $except = null;
-
-            $start = strtok(microtime(), ' ') + strtok(''); // http://php.net/microtime#61838
-            $sec = floor($this->curTimeout);
-            $usec = 1000000 * ($this->curTimeout - $sec);
-            // on windows this returns a "Warning: Invalid CRT parameters detected" error
-            if (!@stream_select($read, $write, $except, $sec, $usec) && !count($read)) {
-                //$this->_disconnect('Timeout');
-                return true;
-            }
-            $elapsed = strtok(microtime(), ' ') + strtok('') - $start;
-            $this->curTimeout-= $elapsed;
-        }
-
-        $start = strtok(microtime(), ' ') + strtok(''); // http://php.net/microtime#61838
-        $data = fread($this->fsock, 4);
-        if (strlen($data) < 4) {
-            return false;
-        }
-        $temp = unpack('Nlength', $data);
-
-        $padding_length = 8 - ($temp['length'] & 7);
-        $length = $temp['length'] + $padding_length;
-        $raw = '';
-
-        while ($length > 0) {
-            $temp = fread($this->fsock, $length);
-            $raw.= $temp;
-            $length-= strlen($temp);
-        }
-        $stop = strtok(microtime(), ' ') + strtok('');
-
-        if (strlen($raw) && $this->crypto !== false) {
-            $raw = $this->crypto->decrypt($raw);
-        }
-
-        $padding = substr($raw, 0, $padding_length);
-        $type = $raw[$padding_length];
-        $data = substr($raw, $padding_length + 1, -4);
-
-        if (strlen($raw) < 4) {
-            return false;
-        }
-        $temp = unpack('Ncrc', substr($raw, -4));
-
-        //if ( $temp['crc'] != $this->_crc($padding . $type . $data) ) {
-        //    user_error('Bad CRC in packet from server');
-        //    return false;
-        //}
-
-        $type = ord($type);
-
-        if (defined('NET_SSH1_LOGGING')) {
-            $temp = isset($this->protocol_flags[$type]) ? $this->protocol_flags[$type] : 'UNKNOWN';
-            $temp = '<- ' . $temp .
-                    ' (' . round($stop - $start, 4) . 's)';
-            $this->_append_log($temp, $data);
-        }
-
-        return array(
-            self::RESPONSE_TYPE => $type,
-            self::RESPONSE_DATA => $data
-        );
-    }
-
-    /**
-     * Sends Binary Packets
-     *
-     * Returns true on success, false on failure.
-     *
-     * @see self::_get_binary_packet()
-     * @param string $data
-     * @return bool
-     * @access private
-     */
-    function _send_binary_packet($data)
-    {
-        if (feof($this->fsock)) {
-            //user_error('connection closed prematurely');
-            return false;
-        }
-
-        $length = strlen($data) + 4;
-
-        $padding = Random::string(8 - ($length & 7));
-
-        $orig = $data;
-        $data = $padding . $data;
-        $data.= pack('N', $this->_crc($data));
-
-        if ($this->crypto !== false) {
-            $data = $this->crypto->encrypt($data);
-        }
-
-        $packet = pack('Na*', $length, $data);
-
-        $start = strtok(microtime(), ' ') + strtok(''); // http://php.net/microtime#61838
-        $result = strlen($packet) == fputs($this->fsock, $packet);
-        $stop = strtok(microtime(), ' ') + strtok('');
-
-        if (defined('NET_SSH1_LOGGING')) {
-            $temp = isset($this->protocol_flags[ord($orig[0])]) ? $this->protocol_flags[ord($orig[0])] : 'UNKNOWN';
-            $temp = '-> ' . $temp .
-                    ' (' . round($stop - $start, 4) . 's)';
-            $this->_append_log($temp, $orig);
-        }
-
-        return $result;
-    }
-
-    /**
-     * Cyclic Redundancy Check (CRC)
-     *
-     * PHP's crc32 function is implemented slightly differently than the one that SSH v1 uses, so
-     * we've reimplemented it. A more detailed discussion of the differences can be found after
-     * $crc_lookup_table's initialization.
-     *
-     * @see self::_get_binary_packet()
-     * @see self::_send_binary_packet()
-     * @param string $data
-     * @return int
-     * @access private
-     */
-    function _crc($data)
-    {
-        static $crc_lookup_table = array(
-            0x00000000, 0x77073096, 0xEE0E612C, 0x990951BA,
-            0x076DC419, 0x706AF48F, 0xE963A535, 0x9E6495A3,
-            0x0EDB8832, 0x79DCB8A4, 0xE0D5E91E, 0x97D2D988,
-            0x09B64C2B, 0x7EB17CBD, 0xE7B82D07, 0x90BF1D91,
-            0x1DB71064, 0x6AB020F2, 0xF3B97148, 0x84BE41DE,
-            0x1ADAD47D, 0x6DDDE4EB, 0xF4D4B551, 0x83D385C7,
-            0x136C9856, 0x646BA8C0, 0xFD62F97A, 0x8A65C9EC,
-            0x14015C4F, 0x63066CD9, 0xFA0F3D63, 0x8D080DF5,
-            0x3B6E20C8, 0x4C69105E, 0xD56041E4, 0xA2677172,
-            0x3C03E4D1, 0x4B04D447, 0xD20D85FD, 0xA50AB56B,
-            0x35B5A8FA, 0x42B2986C, 0xDBBBC9D6, 0xACBCF940,
-            0x32D86CE3, 0x45DF5C75, 0xDCD60DCF, 0xABD13D59,
-            0x26D930AC, 0x51DE003A, 0xC8D75180, 0xBFD06116,
-            0x21B4F4B5, 0x56B3C423, 0xCFBA9599, 0xB8BDA50F,
-            0x2802B89E, 0x5F058808, 0xC60CD9B2, 0xB10BE924,
-            0x2F6F7C87, 0x58684C11, 0xC1611DAB, 0xB6662D3D,
-            0x76DC4190, 0x01DB7106, 0x98D220BC, 0xEFD5102A,
-            0x71B18589, 0x06B6B51F, 0x9FBFE4A5, 0xE8B8D433,
-            0x7807C9A2, 0x0F00F934, 0x9609A88E, 0xE10E9818,
-            0x7F6A0DBB, 0x086D3D2D, 0x91646C97, 0xE6635C01,
-            0x6B6B51F4, 0x1C6C6162, 0x856530D8, 0xF262004E,
-            0x6C0695ED, 0x1B01A57B, 0x8208F4C1, 0xF50FC457,
-            0x65B0D9C6, 0x12B7E950, 0x8BBEB8EA, 0xFCB9887C,
-            0x62DD1DDF, 0x15DA2D49, 0x8CD37CF3, 0xFBD44C65,
-            0x4DB26158, 0x3AB551CE, 0xA3BC0074, 0xD4BB30E2,
-            0x4ADFA541, 0x3DD895D7, 0xA4D1C46D, 0xD3D6F4FB,
-            0x4369E96A, 0x346ED9FC, 0xAD678846, 0xDA60B8D0,
-            0x44042D73, 0x33031DE5, 0xAA0A4C5F, 0xDD0D7CC9,
-            0x5005713C, 0x270241AA, 0xBE0B1010, 0xC90C2086,
-            0x5768B525, 0x206F85B3, 0xB966D409, 0xCE61E49F,
-            0x5EDEF90E, 0x29D9C998, 0xB0D09822, 0xC7D7A8B4,
-            0x59B33D17, 0x2EB40D81, 0xB7BD5C3B, 0xC0BA6CAD,
-            0xEDB88320, 0x9ABFB3B6, 0x03B6E20C, 0x74B1D29A,
-            0xEAD54739, 0x9DD277AF, 0x04DB2615, 0x73DC1683,
-            0xE3630B12, 0x94643B84, 0x0D6D6A3E, 0x7A6A5AA8,
-            0xE40ECF0B, 0x9309FF9D, 0x0A00AE27, 0x7D079EB1,
-            0xF00F9344, 0x8708A3D2, 0x1E01F268, 0x6906C2FE,
-            0xF762575D, 0x806567CB, 0x196C3671, 0x6E6B06E7,
-            0xFED41B76, 0x89D32BE0, 0x10DA7A5A, 0x67DD4ACC,
-            0xF9B9DF6F, 0x8EBEEFF9, 0x17B7BE43, 0x60B08ED5,
-            0xD6D6A3E8, 0xA1D1937E, 0x38D8C2C4, 0x4FDFF252,
-            0xD1BB67F1, 0xA6BC5767, 0x3FB506DD, 0x48B2364B,
-            0xD80D2BDA, 0xAF0A1B4C, 0x36034AF6, 0x41047A60,
-            0xDF60EFC3, 0xA867DF55, 0x316E8EEF, 0x4669BE79,
-            0xCB61B38C, 0xBC66831A, 0x256FD2A0, 0x5268E236,
-            0xCC0C7795, 0xBB0B4703, 0x220216B9, 0x5505262F,
-            0xC5BA3BBE, 0xB2BD0B28, 0x2BB45A92, 0x5CB36A04,
-            0xC2D7FFA7, 0xB5D0CF31, 0x2CD99E8B, 0x5BDEAE1D,
-            0x9B64C2B0, 0xEC63F226, 0x756AA39C, 0x026D930A,
-            0x9C0906A9, 0xEB0E363F, 0x72076785, 0x05005713,
-            0x95BF4A82, 0xE2B87A14, 0x7BB12BAE, 0x0CB61B38,
-            0x92D28E9B, 0xE5D5BE0D, 0x7CDCEFB7, 0x0BDBDF21,
-            0x86D3D2D4, 0xF1D4E242, 0x68DDB3F8, 0x1FDA836E,
-            0x81BE16CD, 0xF6B9265B, 0x6FB077E1, 0x18B74777,
-            0x88085AE6, 0xFF0F6A70, 0x66063BCA, 0x11010B5C,
-            0x8F659EFF, 0xF862AE69, 0x616BFFD3, 0x166CCF45,
-            0xA00AE278, 0xD70DD2EE, 0x4E048354, 0x3903B3C2,
-            0xA7672661, 0xD06016F7, 0x4969474D, 0x3E6E77DB,
-            0xAED16A4A, 0xD9D65ADC, 0x40DF0B66, 0x37D83BF0,
-            0xA9BCAE53, 0xDEBB9EC5, 0x47B2CF7F, 0x30B5FFE9,
-            0xBDBDF21C, 0xCABAC28A, 0x53B39330, 0x24B4A3A6,
-            0xBAD03605, 0xCDD70693, 0x54DE5729, 0x23D967BF,
-            0xB3667A2E, 0xC4614AB8, 0x5D681B02, 0x2A6F2B94,
-            0xB40BBE37, 0xC30C8EA1, 0x5A05DF1B, 0x2D02EF8D
-        );
-
-        // For this function to yield the same output as PHP's crc32 function, $crc would have to be
-        // set to 0xFFFFFFFF, initially - not 0x00000000 as it currently is.
-        $crc = 0x00000000;
-        $length = strlen($data);
-
-        for ($i=0; $i<$length; $i++) {
-            // We AND $crc >> 8 with 0x00FFFFFF because we want the eight newly added bits to all
-            // be zero.  PHP, unfortunately, doesn't always do this.  0x80000000 >> 8, as an example,
-            // yields 0xFF800000 - not 0x00800000.  The following link elaborates:
-            // http://www.php.net/manual/en/language.operators.bitwise.php#57281
-            $crc = (($crc >> 8) & 0x00FFFFFF) ^ $crc_lookup_table[($crc & 0xFF) ^ ord($data[$i])];
-        }
-
-        // In addition to having to set $crc to 0xFFFFFFFF, initially, the return value must be XOR'd with
-        // 0xFFFFFFFF for this function to return the same thing that PHP's crc32 function would.
-        return $crc;
-    }
-
-    /**
-     * String Shift
-     *
-     * Inspired by array_shift
-     *
-     * @param string $string
-     * @param int $index
-     * @return string
-     * @access private
-     */
-    function _string_shift(&$string, $index = 1)
-    {
-        $substr = substr($string, 0, $index);
-        $string = substr($string, $index);
-        return $substr;
-    }
-
-    /**
-     * RSA Encrypt
-     *
-     * Returns mod(pow($m, $e), $n), where $n should be the product of two (large) primes $p and $q and where $e
-     * should be a number with the property that gcd($e, ($p - 1) * ($q - 1)) == 1.  Could just make anything that
-     * calls this call modexp, instead, but I think this makes things clearer, maybe...
-     *
-     * @see self::__construct()
-     * @param BigInteger $m
-     * @param array $key
-     * @return BigInteger
-     * @access private
-     */
-    function _rsa_crypt($m, $key)
-    {
-        /*
-        $rsa = new RSA();
-        $rsa->loadKey($key, RSA::PUBLIC_FORMAT_RAW);
-        $rsa->setEncryptionMode(RSA::ENCRYPTION_PKCS1);
-        return $rsa->encrypt($m);
-        */
-
-        // To quote from protocol-1.5.txt:
-        // The most significant byte (which is only partial as the value must be
-        // less than the public modulus, which is never a power of two) is zero.
-        //
-        // The next byte contains the value 2 (which stands for public-key
-        // encrypted data in the PKCS standard [PKCS#1]).  Then, there are non-
-        // zero random bytes to fill any unused space, a zero byte, and the data
-        // to be encrypted in the least significant bytes, the last byte of the
-        // data in the least significant byte.
-
-        // Presumably the part of PKCS#1 they're refering to is "Section 7.2.1 Encryption Operation",
-        // under "7.2 RSAES-PKCS1-v1.5" and "7 Encryption schemes" of the following URL:
-        // ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-1/pkcs-1v2-1.pdf
-        $modulus = $key[1]->toBytes();
-        $length = strlen($modulus) - strlen($m) - 3;
-        $random = '';
-        while (strlen($random) != $length) {
-            $block = Random::string($length - strlen($random));
-            $block = str_replace("\x00", '', $block);
-            $random.= $block;
-        }
-        $temp = chr(0) . chr(2) . $random . chr(0) . $m;
-
-        $m = new BigInteger($temp, 256);
-        $m = $m->modPow($key[0], $key[1]);
-
-        return $m->toBytes();
-    }
-
-    /**
-     * Define Array
-     *
-     * Takes any number of arrays whose indices are integers and whose values are strings and defines a bunch of
-     * named constants from it, using the value as the name of the constant and the index as the value of the constant.
-     * If any of the constants that would be defined already exists, none of the constants will be defined.
-     *
-     * @param array $array
-     * @access private
-     */
-    function _define_array()
-    {
-        $args = func_get_args();
-        foreach ($args as $arg) {
-            foreach ($arg as $key => $value) {
-                if (!defined($value)) {
-                    define($value, $key);
-                } else {
-                    break 2;
-                }
-            }
-        }
-    }
-
-    /**
-     * Returns a log of the packets that have been sent and received.
-     *
-     * Returns a string if NET_SSH1_LOGGING == self::LOG_COMPLEX, an array if NET_SSH1_LOGGING == self::LOG_SIMPLE and false if !defined('NET_SSH1_LOGGING')
-     *
-     * @access public
-     * @return array|false|string
-     */
-    function getLog()
-    {
-        if (!defined('NET_SSH1_LOGGING')) {
-            return false;
-        }
-
-        switch (NET_SSH1_LOGGING) {
-            case self::LOG_SIMPLE:
-                return $this->message_number_log;
-                break;
-            case self::LOG_COMPLEX:
-                return $this->_format_log($this->message_log, $this->protocol_flags_log);
-                break;
-            default:
-                return false;
-        }
-    }
-
-    /**
-     * Formats a log for printing
-     *
-     * @param array $message_log
-     * @param array $message_number_log
-     * @access private
-     * @return string
-     */
-    function _format_log($message_log, $message_number_log)
-    {
-        $output = '';
-        for ($i = 0; $i < count($message_log); $i++) {
-            $output.= $message_number_log[$i] . "\r\n";
-            $current_log = $message_log[$i];
-            $j = 0;
-            do {
-                if (strlen($current_log)) {
-                    $output.= str_pad(dechex($j), 7, '0', STR_PAD_LEFT) . '0  ';
-                }
-                $fragment = $this->_string_shift($current_log, $this->log_short_width);
-                $hex = substr(preg_replace_callback('#.#s', array($this, '_format_log_helper'), $fragment), strlen($this->log_boundary));
-                // replace non ASCII printable characters with dots
-                // http://en.wikipedia.org/wiki/ASCII#ASCII_printable_characters
-                // also replace < with a . since < messes up the output on web browsers
-                $raw = preg_replace('#[^\x20-\x7E]|<#', '.', $fragment);
-                $output.= str_pad($hex, $this->log_long_width - $this->log_short_width, ' ') . $raw . "\r\n";
-                $j++;
-            } while (strlen($current_log));
-            $output.= "\r\n";
-        }
-
-        return $output;
-    }
-
-    /**
-     * Helper function for _format_log
-     *
-     * For use with preg_replace_callback()
-     *
-     * @param array $matches
-     * @access private
-     * @return string
-     */
-    function _format_log_helper($matches)
-    {
-        return $this->log_boundary . str_pad(dechex(ord($matches[0])), 2, '0', STR_PAD_LEFT);
-    }
-
-    /**
-     * Return the server key public exponent
-     *
-     * Returns, by default, the base-10 representation.  If $raw_output is set to true, returns, instead,
-     * the raw bytes.  This behavior is similar to PHP's md5() function.
-     *
-     * @param bool $raw_output
-     * @return string
-     * @access public
-     */
-    function getServerKeyPublicExponent($raw_output = false)
-    {
-        return $raw_output ? $this->server_key_public_exponent->toBytes() : $this->server_key_public_exponent->toString();
-    }
-
-    /**
-     * Return the server key public modulus
-     *
-     * Returns, by default, the base-10 representation.  If $raw_output is set to true, returns, instead,
-     * the raw bytes.  This behavior is similar to PHP's md5() function.
-     *
-     * @param bool $raw_output
-     * @return string
-     * @access public
-     */
-    function getServerKeyPublicModulus($raw_output = false)
-    {
-        return $raw_output ? $this->server_key_public_modulus->toBytes() : $this->server_key_public_modulus->toString();
-    }
-
-    /**
-     * Return the host key public exponent
-     *
-     * Returns, by default, the base-10 representation.  If $raw_output is set to true, returns, instead,
-     * the raw bytes.  This behavior is similar to PHP's md5() function.
-     *
-     * @param bool $raw_output
-     * @return string
-     * @access public
-     */
-    function getHostKeyPublicExponent($raw_output = false)
-    {
-        return $raw_output ? $this->host_key_public_exponent->toBytes() : $this->host_key_public_exponent->toString();
-    }
-
-    /**
-     * Return the host key public modulus
-     *
-     * Returns, by default, the base-10 representation.  If $raw_output is set to true, returns, instead,
-     * the raw bytes.  This behavior is similar to PHP's md5() function.
-     *
-     * @param bool $raw_output
-     * @return string
-     * @access public
-     */
-    function getHostKeyPublicModulus($raw_output = false)
-    {
-        return $raw_output ? $this->host_key_public_modulus->toBytes() : $this->host_key_public_modulus->toString();
-    }
-
-    /**
-     * Return a list of ciphers supported by SSH1 server.
-     *
-     * Just because a cipher is supported by an SSH1 server doesn't mean it's supported by this library. If $raw_output
-     * is set to true, returns, instead, an array of constants.  ie. instead of array('Triple-DES in CBC mode'), you'll
-     * get array(self::CIPHER_3DES).
-     *
-     * @param bool $raw_output
-     * @return array
-     * @access public
-     */
-    function getSupportedCiphers($raw_output = false)
-    {
-        return $raw_output ? array_keys($this->supported_ciphers) : array_values($this->supported_ciphers);
-    }
-
-    /**
-     * Return a list of authentications supported by SSH1 server.
-     *
-     * Just because a cipher is supported by an SSH1 server doesn't mean it's supported by this library. If $raw_output
-     * is set to true, returns, instead, an array of constants.  ie. instead of array('password authentication'), you'll
-     * get array(self::AUTH_PASSWORD).
-     *
-     * @param bool $raw_output
-     * @return array
-     * @access public
-     */
-    function getSupportedAuthentications($raw_output = false)
-    {
-        return $raw_output ? array_keys($this->supported_authentications) : array_values($this->supported_authentications);
-    }
-
-    /**
-     * Return the server identification.
-     *
-     * @return string
-     * @access public
-     */
-    function getServerIdentification()
-    {
-        return rtrim($this->server_identification);
-    }
-
-    /**
-     * Logs data packets
-     *
-     * Makes sure that only the last 1MB worth of packets will be logged
-     *
-     * @param string $data
-     * @access private
-     */
-    function _append_log($protocol_flags, $message)
-    {
-        switch (NET_SSH1_LOGGING) {
-            // useful for benchmarks
-            case self::LOG_SIMPLE:
-                $this->protocol_flags_log[] = $protocol_flags;
-                break;
-            // the most useful log for SSH1
-            case self::LOG_COMPLEX:
-                $this->protocol_flags_log[] = $protocol_flags;
-                $this->_string_shift($message);
-                $this->log_size+= strlen($message);
-                $this->message_log[] = $message;
-                while ($this->log_size > self::LOG_MAX_SIZE) {
-                    $this->log_size-= strlen(array_shift($this->message_log));
-                    array_shift($this->protocol_flags_log);
-                }
-                break;
-            // dump the output out realtime; packets may be interspersed with non packets,
-            // passwords won't be filtered out and select other packets may not be correctly
-            // identified
-            case self::LOG_REALTIME:
-                echo "<pre>\r\n" . $this->_format_log(array($message), array($protocol_flags)) . "\r\n</pre>\r\n";
-                @flush();
-                @ob_flush();
-                break;
-            // basically the same thing as self::LOG_REALTIME with the caveat that self::LOG_REALTIME_FILE
-            // needs to be defined and that the resultant log file will be capped out at self::LOG_MAX_SIZE.
-            // the earliest part of the log file is denoted by the first <<< START >>> and is not going to necessarily
-            // at the beginning of the file
-            case self::LOG_REALTIME_FILE:
-                if (!isset($this->realtime_log_file)) {
-                    // PHP doesn't seem to like using constants in fopen()
-                    $filename = self::LOG_REALTIME_FILE;
-                    $fp = fopen($filename, 'w');
-                    $this->realtime_log_file = $fp;
-                }
-                if (!is_resource($this->realtime_log_file)) {
-                    break;
-                }
-                $entry = $this->_format_log(array($message), array($protocol_flags));
-                if ($this->realtime_log_wrap) {
-                    $temp = "<<< START >>>\r\n";
-                    $entry.= $temp;
-                    fseek($this->realtime_log_file, ftell($this->realtime_log_file) - strlen($temp));
-                }
-                $this->realtime_log_size+= strlen($entry);
-                if ($this->realtime_log_size > self::LOG_MAX_SIZE) {
-                    fseek($this->realtime_log_file, 0);
-                    $this->realtime_log_size = strlen($entry);
-                    $this->realtime_log_wrap = true;
-                }
-                fputs($this->realtime_log_file, $entry);
-        }
-    }
-}
diff --git a/wiki/vendor/phpseclib/phpseclib/phpseclib/Net/SSH2.php b/wiki/vendor/phpseclib/phpseclib/phpseclib/Net/SSH2.php
deleted file mode 100644
index cdb7cb3..0000000
--- a/wiki/vendor/phpseclib/phpseclib/phpseclib/Net/SSH2.php
+++ /dev/null
@@ -1,4619 +0,0 @@
-<?php
-
-/**
- * Pure-PHP implementation of SSHv2.
- *
- * PHP version 5
- *
- * Here are some examples of how to use this library:
- * <code>
- * <?php
- *    include 'vendor/autoload.php';
- *
- *    $ssh = new \phpseclib\Net\SSH2('www.domain.tld');
- *    if (!$ssh->login('username', 'password')) {
- *        exit('Login Failed');
- *    }
- *
- *    echo $ssh->exec('pwd');
- *    echo $ssh->exec('ls -la');
- * ?>
- * </code>
- *
- * <code>
- * <?php
- *    include 'vendor/autoload.php';
- *
- *    $key = new \phpseclib\Crypt\RSA();
- *    //$key->setPassword('whatever');
- *    $key->loadKey(file_get_contents('privatekey'));
- *
- *    $ssh = new \phpseclib\Net\SSH2('www.domain.tld');
- *    if (!$ssh->login('username', $key)) {
- *        exit('Login Failed');
- *    }
- *
- *    echo $ssh->read('username@username:~$');
- *    $ssh->write("ls -la\n");
- *    echo $ssh->read('username@username:~$');
- * ?>
- * </code>
- *
- * @category  Net
- * @package   SSH2
- * @author    Jim Wigginton <terrafrost@php.net>
- * @copyright 2007 Jim Wigginton
- * @license   http://www.opensource.org/licenses/mit-license.html  MIT License
- * @link      http://phpseclib.sourceforge.net
- */
-
-namespace phpseclib\Net;
-
-use phpseclib\Crypt\Base;
-use phpseclib\Crypt\Blowfish;
-use phpseclib\Crypt\Hash;
-use phpseclib\Crypt\Random;
-use phpseclib\Crypt\RC4;
-use phpseclib\Crypt\Rijndael;
-use phpseclib\Crypt\RSA;
-use phpseclib\Crypt\TripleDES;
-use phpseclib\Crypt\Twofish;
-use phpseclib\Math\BigInteger; // Used to do Diffie-Hellman key exchange and DSA/RSA signature verification.
-use phpseclib\System\SSH\Agent;
-
-/**
- * Pure-PHP implementation of SSHv2.
- *
- * @package SSH2
- * @author  Jim Wigginton <terrafrost@php.net>
- * @access  public
- */
-class SSH2
-{
-    /**#@+
-     * Execution Bitmap Masks
-     *
-     * @see \phpseclib\Net\SSH2::bitmap
-     * @access private
-     */
-    const MASK_CONSTRUCTOR   = 0x00000001;
-    const MASK_CONNECTED     = 0x00000002;
-    const MASK_LOGIN_REQ     = 0x00000004;
-    const MASK_LOGIN         = 0x00000008;
-    const MASK_SHELL         = 0x00000010;
-    const MASK_WINDOW_ADJUST = 0x00000020;
-    /**#@-*/
-
-    /**#@+
-     * Channel constants
-     *
-     * RFC4254 refers not to client and server channels but rather to sender and recipient channels.  we don't refer
-     * to them in that way because RFC4254 toggles the meaning. the client sends a SSH_MSG_CHANNEL_OPEN message with
-     * a sender channel and the server sends a SSH_MSG_CHANNEL_OPEN_CONFIRMATION in response, with a sender and a
-     * recepient channel.  at first glance, you might conclude that SSH_MSG_CHANNEL_OPEN_CONFIRMATION's sender channel
-     * would be the same thing as SSH_MSG_CHANNEL_OPEN's sender channel, but it's not, per this snipet:
-     *     The 'recipient channel' is the channel number given in the original
-     *     open request, and 'sender channel' is the channel number allocated by
-     *     the other side.
-     *
-     * @see \phpseclib\Net\SSH2::_send_channel_packet()
-     * @see \phpseclib\Net\SSH2::_get_channel_packet()
-     * @access private
-    */
-    const CHANNEL_EXEC          = 1; // PuTTy uses 0x100
-    const CHANNEL_SHELL         = 2;
-    const CHANNEL_SUBSYSTEM     = 3;
-    const CHANNEL_AGENT_FORWARD = 4;
-    /**#@-*/
-
-    /**#@+
-     * @access public
-     * @see \phpseclib\Net\SSH2::getLog()
-    */
-    /**
-     * Returns the message numbers
-     */
-    const LOG_SIMPLE = 1;
-    /**
-     * Returns the message content
-     */
-    const LOG_COMPLEX = 2;
-    /**
-     * Outputs the content real-time
-     */
-    const LOG_REALTIME = 3;
-    /**
-     * Dumps the content real-time to a file
-     */
-    const LOG_REALTIME_FILE = 4;
-    /**
-     * Make sure that the log never gets larger than this
-     */
-    const LOG_MAX_SIZE = 1048576; // 1024 * 1024
-    /**#@-*/
-
-    /**#@+
-     * @access public
-     * @see \phpseclib\Net\SSH2::read()
-    */
-    /**
-     * Returns when a string matching $expect exactly is found
-     */
-    const READ_SIMPLE = 1;
-    /**
-     * Returns when a string matching the regular expression $expect is found
-     */
-    const READ_REGEX = 2;
-    /**
-     * Returns when a string matching the regular expression $expect is found
-     */
-    const READ_NEXT = 3;
-    /**#@-*/
-
-    /**
-     * The SSH identifier
-     *
-     * @var string
-     * @access private
-     */
-    var $identifier;
-
-    /**
-     * The Socket Object
-     *
-     * @var object
-     * @access private
-     */
-    var $fsock;
-
-    /**
-     * Execution Bitmap
-     *
-     * The bits that are set represent functions that have been called already.  This is used to determine
-     * if a requisite function has been successfully executed.  If not, an error should be thrown.
-     *
-     * @var int
-     * @access private
-     */
-    var $bitmap = 0;
-
-    /**
-     * Error information
-     *
-     * @see self::getErrors()
-     * @see self::getLastError()
-     * @var string
-     * @access private
-     */
-    var $errors = array();
-
-    /**
-     * Server Identifier
-     *
-     * @see self::getServerIdentification()
-     * @var array|false
-     * @access private
-     */
-    var $server_identifier = false;
-
-    /**
-     * Key Exchange Algorithms
-     *
-     * @see self::getKexAlgorithims()
-     * @var array|false
-     * @access private
-     */
-    var $kex_algorithms = false;
-
-    /**
-     * Minimum Diffie-Hellman Group Bit Size in RFC 4419 Key Exchange Methods
-     *
-     * @see self::_key_exchange()
-     * @var int
-     * @access private
-     */
-    var $kex_dh_group_size_min = 1536;
-
-    /**
-     * Preferred Diffie-Hellman Group Bit Size in RFC 4419 Key Exchange Methods
-     *
-     * @see self::_key_exchange()
-     * @var int
-     * @access private
-     */
-    var $kex_dh_group_size_preferred = 2048;
-
-    /**
-     * Maximum Diffie-Hellman Group Bit Size in RFC 4419 Key Exchange Methods
-     *
-     * @see self::_key_exchange()
-     * @var int
-     * @access private
-     */
-    var $kex_dh_group_size_max = 4096;
-
-    /**
-     * Server Host Key Algorithms
-     *
-     * @see self::getServerHostKeyAlgorithms()
-     * @var array|false
-     * @access private
-     */
-    var $server_host_key_algorithms = false;
-
-    /**
-     * Encryption Algorithms: Client to Server
-     *
-     * @see self::getEncryptionAlgorithmsClient2Server()
-     * @var array|false
-     * @access private
-     */
-    var $encryption_algorithms_client_to_server = false;
-
-    /**
-     * Encryption Algorithms: Server to Client
-     *
-     * @see self::getEncryptionAlgorithmsServer2Client()
-     * @var array|false
-     * @access private
-     */
-    var $encryption_algorithms_server_to_client = false;
-
-    /**
-     * MAC Algorithms: Client to Server
-     *
-     * @see self::getMACAlgorithmsClient2Server()
-     * @var array|false
-     * @access private
-     */
-    var $mac_algorithms_client_to_server = false;
-
-    /**
-     * MAC Algorithms: Server to Client
-     *
-     * @see self::getMACAlgorithmsServer2Client()
-     * @var array|false
-     * @access private
-     */
-    var $mac_algorithms_server_to_client = false;
-
-    /**
-     * Compression Algorithms: Client to Server
-     *
-     * @see self::getCompressionAlgorithmsClient2Server()
-     * @var array|false
-     * @access private
-     */
-    var $compression_algorithms_client_to_server = false;
-
-    /**
-     * Compression Algorithms: Server to Client
-     *
-     * @see self::getCompressionAlgorithmsServer2Client()
-     * @var array|false
-     * @access private
-     */
-    var $compression_algorithms_server_to_client = false;
-
-    /**
-     * Languages: Server to Client
-     *
-     * @see self::getLanguagesServer2Client()
-     * @var array|false
-     * @access private
-     */
-    var $languages_server_to_client = false;
-
-    /**
-     * Languages: Client to Server
-     *
-     * @see self::getLanguagesClient2Server()
-     * @var array|false
-     * @access private
-     */
-    var $languages_client_to_server = false;
-
-    /**
-     * Block Size for Server to Client Encryption
-     *
-     * "Note that the length of the concatenation of 'packet_length',
-     *  'padding_length', 'payload', and 'random padding' MUST be a multiple
-     *  of the cipher block size or 8, whichever is larger.  This constraint
-     *  MUST be enforced, even when using stream ciphers."
-     *
-     *  -- http://tools.ietf.org/html/rfc4253#section-6
-     *
-     * @see self::__construct()
-     * @see self::_send_binary_packet()
-     * @var int
-     * @access private
-     */
-    var $encrypt_block_size = 8;
-
-    /**
-     * Block Size for Client to Server Encryption
-     *
-     * @see self::__construct()
-     * @see self::_get_binary_packet()
-     * @var int
-     * @access private
-     */
-    var $decrypt_block_size = 8;
-
-    /**
-     * Server to Client Encryption Object
-     *
-     * @see self::_get_binary_packet()
-     * @var object
-     * @access private
-     */
-    var $decrypt = false;
-
-    /**
-     * Client to Server Encryption Object
-     *
-     * @see self::_send_binary_packet()
-     * @var object
-     * @access private
-     */
-    var $encrypt = false;
-
-    /**
-     * Client to Server HMAC Object
-     *
-     * @see self::_send_binary_packet()
-     * @var object
-     * @access private
-     */
-    var $hmac_create = false;
-
-    /**
-     * Server to Client HMAC Object
-     *
-     * @see self::_get_binary_packet()
-     * @var object
-     * @access private
-     */
-    var $hmac_check = false;
-
-    /**
-     * Size of server to client HMAC
-     *
-     * We need to know how big the HMAC will be for the server to client direction so that we know how many bytes to read.
-     * For the client to server side, the HMAC object will make the HMAC as long as it needs to be.  All we need to do is
-     * append it.
-     *
-     * @see self::_get_binary_packet()
-     * @var int
-     * @access private
-     */
-    var $hmac_size = false;
-
-    /**
-     * Server Public Host Key
-     *
-     * @see self::getServerPublicHostKey()
-     * @var string
-     * @access private
-     */
-    var $server_public_host_key;
-
-    /**
-     * Session identifier
-     *
-     * "The exchange hash H from the first key exchange is additionally
-     *  used as the session identifier, which is a unique identifier for
-     *  this connection."
-     *
-     *  -- http://tools.ietf.org/html/rfc4253#section-7.2
-     *
-     * @see self::_key_exchange()
-     * @var string
-     * @access private
-     */
-    var $session_id = false;
-
-    /**
-     * Exchange hash
-     *
-     * The current exchange hash
-     *
-     * @see self::_key_exchange()
-     * @var string
-     * @access private
-     */
-    var $exchange_hash = false;
-
-    /**
-     * Message Numbers
-     *
-     * @see self::__construct()
-     * @var array
-     * @access private
-     */
-    var $message_numbers = array();
-
-    /**
-     * Disconnection Message 'reason codes' defined in RFC4253
-     *
-     * @see self::__construct()
-     * @var array
-     * @access private
-     */
-    var $disconnect_reasons = array();
-
-    /**
-     * SSH_MSG_CHANNEL_OPEN_FAILURE 'reason codes', defined in RFC4254
-     *
-     * @see self::__construct()
-     * @var array
-     * @access private
-     */
-    var $channel_open_failure_reasons = array();
-
-    /**
-     * Terminal Modes
-     *
-     * @link http://tools.ietf.org/html/rfc4254#section-8
-     * @see self::__construct()
-     * @var array
-     * @access private
-     */
-    var $terminal_modes = array();
-
-    /**
-     * SSH_MSG_CHANNEL_EXTENDED_DATA's data_type_codes
-     *
-     * @link http://tools.ietf.org/html/rfc4254#section-5.2
-     * @see self::__construct()
-     * @var array
-     * @access private
-     */
-    var $channel_extended_data_type_codes = array();
-
-    /**
-     * Send Sequence Number
-     *
-     * See 'Section 6.4.  Data Integrity' of rfc4253 for more info.
-     *
-     * @see self::_send_binary_packet()
-     * @var int
-     * @access private
-     */
-    var $send_seq_no = 0;
-
-    /**
-     * Get Sequence Number
-     *
-     * See 'Section 6.4.  Data Integrity' of rfc4253 for more info.
-     *
-     * @see self::_get_binary_packet()
-     * @var int
-     * @access private
-     */
-    var $get_seq_no = 0;
-
-    /**
-     * Server Channels
-     *
-     * Maps client channels to server channels
-     *
-     * @see self::_get_channel_packet()
-     * @see self::exec()
-     * @var array
-     * @access private
-     */
-    var $server_channels = array();
-
-    /**
-     * Channel Buffers
-     *
-     * If a client requests a packet from one channel but receives two packets from another those packets should
-     * be placed in a buffer
-     *
-     * @see self::_get_channel_packet()
-     * @see self::exec()
-     * @var array
-     * @access private
-     */
-    var $channel_buffers = array();
-
-    /**
-     * Channel Status
-     *
-     * Contains the type of the last sent message
-     *
-     * @see self::_get_channel_packet()
-     * @var array
-     * @access private
-     */
-    var $channel_status = array();
-
-    /**
-     * Packet Size
-     *
-     * Maximum packet size indexed by channel
-     *
-     * @see self::_send_channel_packet()
-     * @var array
-     * @access private
-     */
-    var $packet_size_client_to_server = array();
-
-    /**
-     * Message Number Log
-     *
-     * @see self::getLog()
-     * @var array
-     * @access private
-     */
-    var $message_number_log = array();
-
-    /**
-     * Message Log
-     *
-     * @see self::getLog()
-     * @var array
-     * @access private
-     */
-    var $message_log = array();
-
-    /**
-     * The Window Size
-     *
-     * Bytes the other party can send before it must wait for the window to be adjusted (0x7FFFFFFF = 2GB)
-     *
-     * @var int
-     * @see self::_send_channel_packet()
-     * @see self::exec()
-     * @access private
-     */
-    var $window_size = 0x7FFFFFFF;
-
-    /**
-     * Window size, server to client
-     *
-     * Window size indexed by channel
-     *
-     * @see self::_send_channel_packet()
-     * @var array
-     * @access private
-     */
-    var $window_size_server_to_client = array();
-
-    /**
-     * Window size, client to server
-     *
-     * Window size indexed by channel
-     *
-     * @see self::_get_channel_packet()
-     * @var array
-     * @access private
-     */
-    var $window_size_client_to_server = array();
-
-    /**
-     * Server signature
-     *
-     * Verified against $this->session_id
-     *
-     * @see self::getServerPublicHostKey()
-     * @var string
-     * @access private
-     */
-    var $signature = '';
-
-    /**
-     * Server signature format
-     *
-     * ssh-rsa or ssh-dss.
-     *
-     * @see self::getServerPublicHostKey()
-     * @var string
-     * @access private
-     */
-    var $signature_format = '';
-
-    /**
-     * Interactive Buffer
-     *
-     * @see self::read()
-     * @var array
-     * @access private
-     */
-    var $interactiveBuffer = '';
-
-    /**
-     * Current log size
-     *
-     * Should never exceed self::LOG_MAX_SIZE
-     *
-     * @see self::_send_binary_packet()
-     * @see self::_get_binary_packet()
-     * @var int
-     * @access private
-     */
-    var $log_size;
-
-    /**
-     * Timeout
-     *
-     * @see self::setTimeout()
-     * @access private
-     */
-    var $timeout;
-
-    /**
-     * Current Timeout
-     *
-     * @see self::_get_channel_packet()
-     * @access private
-     */
-    var $curTimeout;
-
-    /**
-     * Real-time log file pointer
-     *
-     * @see self::_append_log()
-     * @var resource
-     * @access private
-     */
-    var $realtime_log_file;
-
-    /**
-     * Real-time log file size
-     *
-     * @see self::_append_log()
-     * @var int
-     * @access private
-     */
-    var $realtime_log_size;
-
-    /**
-     * Has the signature been validated?
-     *
-     * @see self::getServerPublicHostKey()
-     * @var bool
-     * @access private
-     */
-    var $signature_validated = false;
-
-    /**
-     * Real-time log file wrap boolean
-     *
-     * @see self::_append_log()
-     * @access private
-     */
-    var $realtime_log_wrap;
-
-    /**
-     * Flag to suppress stderr from output
-     *
-     * @see self::enableQuietMode()
-     * @access private
-     */
-    var $quiet_mode = false;
-
-    /**
-     * Time of first network activity
-     *
-     * @var int
-     * @access private
-     */
-    var $last_packet;
-
-    /**
-     * Exit status returned from ssh if any
-     *
-     * @var int
-     * @access private
-     */
-    var $exit_status;
-
-    /**
-     * Flag to request a PTY when using exec()
-     *
-     * @var bool
-     * @see self::enablePTY()
-     * @access private
-     */
-    var $request_pty = false;
-
-    /**
-     * Flag set while exec() is running when using enablePTY()
-     *
-     * @var bool
-     * @access private
-     */
-    var $in_request_pty_exec = false;
-
-    /**
-     * Flag set after startSubsystem() is called
-     *
-     * @var bool
-     * @access private
-     */
-    var $in_subsystem;
-
-    /**
-     * Contents of stdError
-     *
-     * @var string
-     * @access private
-     */
-    var $stdErrorLog;
-
-    /**
-     * The Last Interactive Response
-     *
-     * @see self::_keyboard_interactive_process()
-     * @var string
-     * @access private
-     */
-    var $last_interactive_response = '';
-
-    /**
-     * Keyboard Interactive Request / Responses
-     *
-     * @see self::_keyboard_interactive_process()
-     * @var array
-     * @access private
-     */
-    var $keyboard_requests_responses = array();
-
-    /**
-     * Banner Message
-     *
-     * Quoting from the RFC, "in some jurisdictions, sending a warning message before
-     * authentication may be relevant for getting legal protection."
-     *
-     * @see self::_filter()
-     * @see self::getBannerMessage()
-     * @var string
-     * @access private
-     */
-    var $banner_message = '';
-
-    /**
-     * Did read() timeout or return normally?
-     *
-     * @see self::isTimeout()
-     * @var bool
-     * @access private
-     */
-    var $is_timeout = false;
-
-    /**
-     * Log Boundary
-     *
-     * @see self::_format_log()
-     * @var string
-     * @access private
-     */
-    var $log_boundary = ':';
-
-    /**
-     * Log Long Width
-     *
-     * @see self::_format_log()
-     * @var int
-     * @access private
-     */
-    var $log_long_width = 65;
-
-    /**
-     * Log Short Width
-     *
-     * @see self::_format_log()
-     * @var int
-     * @access private
-     */
-    var $log_short_width = 16;
-
-    /**
-     * Hostname
-     *
-     * @see self::__construct()
-     * @see self::_connect()
-     * @var string
-     * @access private
-     */
-    var $host;
-
-    /**
-     * Port Number
-     *
-     * @see self::__construct()
-     * @see self::_connect()
-     * @var int
-     * @access private
-     */
-    var $port;
-
-    /**
-     * Number of columns for terminal window size
-     *
-     * @see self::getWindowColumns()
-     * @see self::setWindowColumns()
-     * @see self::setWindowSize()
-     * @var int
-     * @access private
-     */
-    var $windowColumns = 80;
-
-    /**
-     * Number of columns for terminal window size
-     *
-     * @see self::getWindowRows()
-     * @see self::setWindowRows()
-     * @see self::setWindowSize()
-     * @var int
-     * @access private
-     */
-    var $windowRows = 24;
-
-    /**
-     * Crypto Engine
-     *
-     * @see self::setCryptoEngine()
-     * @see self::_key_exchange()
-     * @var int
-     * @access private
-     */
-    var $crypto_engine = false;
-
-    /**
-     * A System_SSH_Agent for use in the SSH2 Agent Forwarding scenario
-     *
-     * @var System_SSH_Agent
-     * @access private
-     */
-    var $agent;
-
-    /**
-     * Send the identification string first?
-     *
-     * @var bool
-     * @access private
-     */
-    var $send_id_string_first = true;
-
-    /**
-     * Send the key exchange initiation packet first?
-     *
-     * @var bool
-     * @access private
-     */
-    var $send_kex_first = true;
-
-    /**
-     * Some versions of OpenSSH incorrectly calculate the key size
-     *
-     * @var bool
-     * @access private
-     */
-    var $bad_key_size_fix = false;
-
-    /**
-     * The selected decryption algorithm
-     *
-     * @var string
-     * @access private
-     */
-    var $decrypt_algorithm = '';
-
-    /**
-     * Should we try to re-connect to re-establish keys?
-     *
-     * @var bool
-     * @access private
-     */
-    var $retry_connect = false;
-
-    /**
-     * Binary Packet Buffer
-     *
-     * @var string|false
-     * @access private
-     */
-    var $binary_packet_buffer = false;
-
-    /**
-     * Default Constructor.
-     *
-     * $host can either be a string, representing the host, or a stream resource.
-     *
-     * @param mixed $host
-     * @param int $port
-     * @param int $timeout
-     * @see self::login()
-     * @return \phpseclib\Net\SSH2
-     * @access public
-     */
-    function __construct($host, $port = 22, $timeout = 10)
-    {
-        $this->message_numbers = array(
-            1 => 'NET_SSH2_MSG_DISCONNECT',
-            2 => 'NET_SSH2_MSG_IGNORE',
-            3 => 'NET_SSH2_MSG_UNIMPLEMENTED',
-            4 => 'NET_SSH2_MSG_DEBUG',
-            5 => 'NET_SSH2_MSG_SERVICE_REQUEST',
-            6 => 'NET_SSH2_MSG_SERVICE_ACCEPT',
-            20 => 'NET_SSH2_MSG_KEXINIT',
-            21 => 'NET_SSH2_MSG_NEWKEYS',
-            30 => 'NET_SSH2_MSG_KEXDH_INIT',
-            31 => 'NET_SSH2_MSG_KEXDH_REPLY',
-            50 => 'NET_SSH2_MSG_USERAUTH_REQUEST',
-            51 => 'NET_SSH2_MSG_USERAUTH_FAILURE',
-            52 => 'NET_SSH2_MSG_USERAUTH_SUCCESS',
-            53 => 'NET_SSH2_MSG_USERAUTH_BANNER',
-
-            80 => 'NET_SSH2_MSG_GLOBAL_REQUEST',
-            81 => 'NET_SSH2_MSG_REQUEST_SUCCESS',
-            82 => 'NET_SSH2_MSG_REQUEST_FAILURE',
-            90 => 'NET_SSH2_MSG_CHANNEL_OPEN',
-            91 => 'NET_SSH2_MSG_CHANNEL_OPEN_CONFIRMATION',
-            92 => 'NET_SSH2_MSG_CHANNEL_OPEN_FAILURE',
-            93 => 'NET_SSH2_MSG_CHANNEL_WINDOW_ADJUST',
-            94 => 'NET_SSH2_MSG_CHANNEL_DATA',
-            95 => 'NET_SSH2_MSG_CHANNEL_EXTENDED_DATA',
-            96 => 'NET_SSH2_MSG_CHANNEL_EOF',
-            97 => 'NET_SSH2_MSG_CHANNEL_CLOSE',
-            98 => 'NET_SSH2_MSG_CHANNEL_REQUEST',
-            99 => 'NET_SSH2_MSG_CHANNEL_SUCCESS',
-            100 => 'NET_SSH2_MSG_CHANNEL_FAILURE'
-        );
-        $this->disconnect_reasons = array(
-            1 => 'NET_SSH2_DISCONNECT_HOST_NOT_ALLOWED_TO_CONNECT',
-            2 => 'NET_SSH2_DISCONNECT_PROTOCOL_ERROR',
-            3 => 'NET_SSH2_DISCONNECT_KEY_EXCHANGE_FAILED',
-            4 => 'NET_SSH2_DISCONNECT_RESERVED',
-            5 => 'NET_SSH2_DISCONNECT_MAC_ERROR',
-            6 => 'NET_SSH2_DISCONNECT_COMPRESSION_ERROR',
-            7 => 'NET_SSH2_DISCONNECT_SERVICE_NOT_AVAILABLE',
-            8 => 'NET_SSH2_DISCONNECT_PROTOCOL_VERSION_NOT_SUPPORTED',
-            9 => 'NET_SSH2_DISCONNECT_HOST_KEY_NOT_VERIFIABLE',
-            10 => 'NET_SSH2_DISCONNECT_CONNECTION_LOST',
-            11 => 'NET_SSH2_DISCONNECT_BY_APPLICATION',
-            12 => 'NET_SSH2_DISCONNECT_TOO_MANY_CONNECTIONS',
-            13 => 'NET_SSH2_DISCONNECT_AUTH_CANCELLED_BY_USER',
-            14 => 'NET_SSH2_DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE',
-            15 => 'NET_SSH2_DISCONNECT_ILLEGAL_USER_NAME'
-        );
-        $this->channel_open_failure_reasons = array(
-            1 => 'NET_SSH2_OPEN_ADMINISTRATIVELY_PROHIBITED'
-        );
-        $this->terminal_modes = array(
-            0 => 'NET_SSH2_TTY_OP_END'
-        );
-        $this->channel_extended_data_type_codes = array(
-            1 => 'NET_SSH2_EXTENDED_DATA_STDERR'
-        );
-
-        $this->_define_array(
-            $this->message_numbers,
-            $this->disconnect_reasons,
-            $this->channel_open_failure_reasons,
-            $this->terminal_modes,
-            $this->channel_extended_data_type_codes,
-            array(60 => 'NET_SSH2_MSG_USERAUTH_PASSWD_CHANGEREQ'),
-            array(60 => 'NET_SSH2_MSG_USERAUTH_PK_OK'),
-            array(60 => 'NET_SSH2_MSG_USERAUTH_INFO_REQUEST',
-                  61 => 'NET_SSH2_MSG_USERAUTH_INFO_RESPONSE'),
-            // RFC 4419 - diffie-hellman-group-exchange-sha{1,256}
-            array(30 => 'NET_SSH2_MSG_KEXDH_GEX_REQUEST_OLD',
-                  31 => 'NET_SSH2_MSG_KEXDH_GEX_GROUP',
-                  32 => 'NET_SSH2_MSG_KEXDH_GEX_INIT',
-                  33 => 'NET_SSH2_MSG_KEXDH_GEX_REPLY',
-                  34 => 'NET_SSH2_MSG_KEXDH_GEX_REQUEST'),
-            // RFC 5656 - Elliptic Curves (for curve25519-sha256@libssh.org)
-            array(30 => 'NET_SSH2_MSG_KEX_ECDH_INIT',
-                  31 => 'NET_SSH2_MSG_KEX_ECDH_REPLY')
-        );
-
-        if (is_resource($host)) {
-            $this->fsock = $host;
-            return;
-        }
-
-        if (is_string($host)) {
-            $this->host = $host;
-            $this->port = $port;
-            $this->timeout = $timeout;
-        }
-    }
-
-    /**
-     * Set Crypto Engine Mode
-     *
-     * Possible $engine values:
-     * CRYPT_MODE_INTERNAL, CRYPT_MODE_MCRYPT
-     *
-     * @param int $engine
-     * @access public
-     */
-    function setCryptoEngine($engine)
-    {
-        $this->crypto_engine = $engine;
-    }
-
-    /**
-     * Send Identification String First
-     *
-     * https://tools.ietf.org/html/rfc4253#section-4.2 says "when the connection has been established,
-     * both sides MUST send an identification string". It does not say which side sends it first. In
-     * theory it shouldn't matter but it is a fact of life that some SSH servers are simply buggy
-     *
-     * @access public
-     */
-    function sendIdentificationStringFirst()
-    {
-        $this->send_id_string_first = true;
-    }
-
-    /**
-     * Send Identification String Last
-     *
-     * https://tools.ietf.org/html/rfc4253#section-4.2 says "when the connection has been established,
-     * both sides MUST send an identification string". It does not say which side sends it first. In
-     * theory it shouldn't matter but it is a fact of life that some SSH servers are simply buggy
-     *
-     * @access public
-     */
-    function sendIdentificationStringLast()
-    {
-        $this->send_id_string_first = false;
-    }
-
-    /**
-     * Send SSH_MSG_KEXINIT First
-     *
-     * https://tools.ietf.org/html/rfc4253#section-7.1 says "key exchange begins by each sending
-     * sending the [SSH_MSG_KEXINIT] packet". It does not say which side sends it first. In theory
-     * it shouldn't matter but it is a fact of life that some SSH servers are simply buggy
-     *
-     * @access public
-     */
-    function sendKEXINITFirst()
-    {
-        $this->send_kex_first = true;
-    }
-
-    /**
-     * Send SSH_MSG_KEXINIT Last
-     *
-     * https://tools.ietf.org/html/rfc4253#section-7.1 says "key exchange begins by each sending
-     * sending the [SSH_MSG_KEXINIT] packet". It does not say which side sends it first. In theory
-     * it shouldn't matter but it is a fact of life that some SSH servers are simply buggy
-     *
-     * @access public
-     */
-    function sendKEXINITLast()
-    {
-        $this->send_kex_first = false;
-    }
-
-    /**
-     * Connect to an SSHv2 server
-     *
-     * @return bool
-     * @access private
-     */
-    function _connect()
-    {
-        if ($this->bitmap & self::MASK_CONSTRUCTOR) {
-            return false;
-        }
-
-        $this->bitmap |= self::MASK_CONSTRUCTOR;
-
-        $this->curTimeout = $this->timeout;
-
-        $this->last_packet = microtime(true);
-
-        if (!is_resource($this->fsock)) {
-            $start = microtime(true);
-            // with stream_select a timeout of 0 means that no timeout takes place;
-            // with fsockopen a timeout of 0 means that you instantly timeout
-            // to resolve this incompatibility a timeout of 100,000 will be used for fsockopen if timeout is 0
-            $this->fsock = @fsockopen($this->host, $this->port, $errno, $errstr, $this->curTimeout == 0 ? 100000 : $this->curTimeout);
-            if (!$this->fsock) {
-                $host = $this->host . ':' . $this->port;
-                user_error(rtrim("Cannot connect to $host. Error $errno. $errstr"));
-                return false;
-            }
-            $elapsed = microtime(true) - $start;
-
-            $this->curTimeout-= $elapsed;
-
-            if ($this->curTimeout <= 0) {
-                $this->is_timeout = true;
-                return false;
-            }
-        }
-
-        $this->identifier = $this->_generate_identifier();
-
-        if ($this->send_id_string_first) {
-            fputs($this->fsock, $this->identifier . "\r\n");
-        }
-
-        /* According to the SSH2 specs,
-
-          "The server MAY send other lines of data before sending the version
-           string.  Each line SHOULD be terminated by a Carriage Return and Line
-           Feed.  Such lines MUST NOT begin with "SSH-", and SHOULD be encoded
-           in ISO-10646 UTF-8 [RFC3629] (language is not specified).  Clients
-           MUST be able to process such lines." */
-        $data = '';
-        while (!feof($this->fsock) && !preg_match('#(.*)^(SSH-(\d\.\d+).*)#ms', $data, $matches)) {
-            $line = '';
-            while (true) {
-                if ($this->curTimeout) {
-                    if ($this->curTimeout < 0) {
-                        $this->is_timeout = true;
-                        return false;
-                    }
-                    $read = array($this->fsock);
-                    $write = $except = null;
-                    $start = microtime(true);
-                    $sec = floor($this->curTimeout);
-                    $usec = 1000000 * ($this->curTimeout - $sec);
-                    // on windows this returns a "Warning: Invalid CRT parameters detected" error
-                    // the !count() is done as a workaround for <https://bugs.php.net/42682>
-                    if (!@stream_select($read, $write, $except, $sec, $usec) && !count($read)) {
-                        $this->is_timeout = true;
-                        return false;
-                    }
-                    $elapsed = microtime(true) - $start;
-                    $this->curTimeout-= $elapsed;
-                }
-
-                $temp = stream_get_line($this->fsock, 255, "\n");
-                if (strlen($temp) == 255) {
-                    continue;
-                }
-
-                $line.= "$temp\n";
-
-                // quoting RFC4253, "Implementers who wish to maintain
-                // compatibility with older, undocumented versions of this protocol may
-                // want to process the identification string without expecting the
-                // presence of the carriage return character for reasons described in
-                // Section 5 of this document."
-
-                //if (substr($line, -2) == "\r\n") {
-                //    break;
-                //}
-
-                break;
-            }
-
-            $data.= $line;
-        }
-
-        if (feof($this->fsock)) {
-            user_error('Connection closed by server');
-            return false;
-        }
-
-        $extra = $matches[1];
-
-        if (defined('NET_SSH2_LOGGING')) {
-            $this->_append_log('<-', $matches[0]);
-            $this->_append_log('->', $this->identifier . "\r\n");
-        }
-
-        $this->server_identifier = trim($temp, "\r\n");
-        if (strlen($extra)) {
-            $this->errors[] = utf8_decode($data);
-        }
-
-        if (version_compare($matches[3], '1.99', '<')) {
-            user_error("Cannot connect to SSH $matches[3] servers");
-            return false;
-        }
-
-        if (!$this->send_id_string_first) {
-            fputs($this->fsock, $this->identifier . "\r\n");
-        }
-
-        if (!$this->send_kex_first) {
-            $response = $this->_get_binary_packet();
-            if ($response === false) {
-                user_error('Connection closed by server');
-                return false;
-            }
-
-            if (!strlen($response) || ord($response[0]) != NET_SSH2_MSG_KEXINIT) {
-                user_error('Expected SSH_MSG_KEXINIT');
-                return false;
-            }
-
-            if (!$this->_key_exchange($response)) {
-                return false;
-            }
-        }
-
-        if ($this->send_kex_first && !$this->_key_exchange()) {
-            return false;
-        }
-
-        $this->bitmap|= self::MASK_CONNECTED;
-
-        return true;
-    }
-
-    /**
-     * Generates the SSH identifier
-     *
-     * You should overwrite this method in your own class if you want to use another identifier
-     *
-     * @access protected
-     * @return string
-     */
-    function _generate_identifier()
-    {
-        $identifier = 'SSH-2.0-phpseclib_2.0';
-
-        $ext = array();
-        if (function_exists('\\Sodium\\library_version_major')) {
-            $ext[] = 'libsodium';
-        }
-
-        if (extension_loaded('openssl')) {
-            $ext[] = 'openssl';
-        } elseif (extension_loaded('mcrypt')) {
-            $ext[] = 'mcrypt';
-        }
-
-        if (extension_loaded('gmp')) {
-            $ext[] = 'gmp';
-        } elseif (extension_loaded('bcmath')) {
-            $ext[] = 'bcmath';
-        }
-
-        if (!empty($ext)) {
-            $identifier .= ' (' . implode(', ', $ext) . ')';
-        }
-
-        return $identifier;
-    }
-
-    /**
-     * Key Exchange
-     *
-     * @param string $kexinit_payload_server optional
-     * @access private
-     */
-    function _key_exchange($kexinit_payload_server = false)
-    {
-        $kex_algorithms = array(
-            // Elliptic Curve Diffie-Hellman Key Agreement (ECDH) using
-            // Curve25519. See doc/curve25519-sha256@libssh.org.txt in the
-            // libssh repository for more information.
-            'curve25519-sha256@libssh.org',
-
-            // Diffie-Hellman Key Agreement (DH) using integer modulo prime
-            // groups.
-            'diffie-hellman-group1-sha1', // REQUIRED
-            'diffie-hellman-group14-sha1', // REQUIRED
-            'diffie-hellman-group-exchange-sha1', // RFC 4419
-            'diffie-hellman-group-exchange-sha256', // RFC 4419
-        );
-        if (!function_exists('\\Sodium\\library_version_major')) {
-            $kex_algorithms = array_diff(
-                $kex_algorithms,
-                array('curve25519-sha256@libssh.org')
-            );
-        }
-
-        $server_host_key_algorithms = array(
-            'ssh-rsa', // RECOMMENDED  sign   Raw RSA Key
-            'ssh-dss'  // REQUIRED     sign   Raw DSS Key
-        );
-
-        $encryption_algorithms = array(
-            // from <http://tools.ietf.org/html/rfc4345#section-4>:
-            'arcfour256',
-            'arcfour128',
-
-            //'arcfour',      // OPTIONAL          the ARCFOUR stream cipher with a 128-bit key
-
-            // CTR modes from <http://tools.ietf.org/html/rfc4344#section-4>:
-            'aes128-ctr',     // RECOMMENDED       AES (Rijndael) in SDCTR mode, with 128-bit key
-            'aes192-ctr',     // RECOMMENDED       AES with 192-bit key
-            'aes256-ctr',     // RECOMMENDED       AES with 256-bit key
-
-            'twofish128-ctr', // OPTIONAL          Twofish in SDCTR mode, with 128-bit key
-            'twofish192-ctr', // OPTIONAL          Twofish with 192-bit key
-            'twofish256-ctr', // OPTIONAL          Twofish with 256-bit key
-
-            'aes128-cbc',     // RECOMMENDED       AES with a 128-bit key
-            'aes192-cbc',     // OPTIONAL          AES with a 192-bit key
-            'aes256-cbc',     // OPTIONAL          AES in CBC mode, with a 256-bit key
-
-            'twofish128-cbc', // OPTIONAL          Twofish with a 128-bit key
-            'twofish192-cbc', // OPTIONAL          Twofish with a 192-bit key
-            'twofish256-cbc',
-            'twofish-cbc',    // OPTIONAL          alias for "twofish256-cbc"
-                              //                   (this is being retained for historical reasons)
-
-            'blowfish-ctr',   // OPTIONAL          Blowfish in SDCTR mode
-
-            'blowfish-cbc',   // OPTIONAL          Blowfish in CBC mode
-
-            '3des-ctr',       // RECOMMENDED       Three-key 3DES in SDCTR mode
-
-            '3des-cbc',       // REQUIRED          three-key 3DES in CBC mode
-                //'none'         // OPTIONAL          no encryption; NOT RECOMMENDED
-        );
-
-        if (extension_loaded('openssl') && !extension_loaded('mcrypt')) {
-            // OpenSSL does not support arcfour256 in any capacity and arcfour128 / arcfour support is limited to
-            // instances that do not use continuous buffers
-            $encryption_algorithms = array_diff(
-                $encryption_algorithms,
-                array('arcfour256', 'arcfour128', 'arcfour')
-            );
-        }
-
-        if (class_exists('\phpseclib\Crypt\RC4') === false) {
-            $encryption_algorithms = array_diff(
-                $encryption_algorithms,
-                array('arcfour256', 'arcfour128', 'arcfour')
-            );
-        }
-        if (class_exists('\phpseclib\Crypt\Rijndael') === false) {
-            $encryption_algorithms = array_diff(
-                $encryption_algorithms,
-                array('aes128-ctr', 'aes192-ctr', 'aes256-ctr', 'aes128-cbc', 'aes192-cbc', 'aes256-cbc')
-            );
-        }
-        if (class_exists('\phpseclib\Crypt\Twofish') === false) {
-            $encryption_algorithms = array_diff(
-                $encryption_algorithms,
-                array('twofish128-ctr', 'twofish192-ctr', 'twofish256-ctr', 'twofish128-cbc', 'twofish192-cbc', 'twofish256-cbc', 'twofish-cbc')
-            );
-        }
-        if (class_exists('\phpseclib\Crypt\Blowfish') === false) {
-            $encryption_algorithms = array_diff(
-                $encryption_algorithms,
-                array('blowfish-ctr', 'blowfish-cbc')
-            );
-        }
-        if (class_exists('\phpseclib\Crypt\TripleDES') === false) {
-            $encryption_algorithms = array_diff(
-                $encryption_algorithms,
-                array('3des-ctr', '3des-cbc')
-            );
-        }
-        $encryption_algorithms = array_values($encryption_algorithms);
-
-        $mac_algorithms = array(
-            // from <http://www.ietf.org/rfc/rfc6668.txt>:
-            'hmac-sha2-256',// RECOMMENDED     HMAC-SHA256 (digest length = key length = 32)
-
-            'hmac-sha1-96', // RECOMMENDED     first 96 bits of HMAC-SHA1 (digest length = 12, key length = 20)
-            'hmac-sha1',    // REQUIRED        HMAC-SHA1 (digest length = key length = 20)
-            'hmac-md5-96',  // OPTIONAL        first 96 bits of HMAC-MD5 (digest length = 12, key length = 16)
-            'hmac-md5',     // OPTIONAL        HMAC-MD5 (digest length = key length = 16)
-            //'none'          // OPTIONAL        no MAC; NOT RECOMMENDED
-        );
-
-        $compression_algorithms = array(
-            'none'   // REQUIRED        no compression
-            //'zlib' // OPTIONAL        ZLIB (LZ77) compression
-        );
-
-        // some SSH servers have buggy implementations of some of the above algorithms
-        switch (true) {
-            case $this->server_identifier == 'SSH-2.0-SSHD':
-            case substr($this->server_identifier, 0, 13) == 'SSH-2.0-DLINK':
-                $mac_algorithms = array_values(array_diff(
-                    $mac_algorithms,
-                    array('hmac-sha1-96', 'hmac-md5-96')
-                ));
-        }
-
-        $str_kex_algorithms = implode(',', $kex_algorithms);
-        $str_server_host_key_algorithms = implode(',', $server_host_key_algorithms);
-        $encryption_algorithms_server_to_client = $encryption_algorithms_client_to_server = implode(',', $encryption_algorithms);
-        $mac_algorithms_server_to_client = $mac_algorithms_client_to_server = implode(',', $mac_algorithms);
-        $compression_algorithms_server_to_client = $compression_algorithms_client_to_server = implode(',', $compression_algorithms);
-
-        $client_cookie = Random::string(16);
-
-        $kexinit_payload_client = pack(
-            'Ca*Na*Na*Na*Na*Na*Na*Na*Na*Na*Na*CN',
-            NET_SSH2_MSG_KEXINIT,
-            $client_cookie,
-            strlen($str_kex_algorithms),
-            $str_kex_algorithms,
-            strlen($str_server_host_key_algorithms),
-            $str_server_host_key_algorithms,
-            strlen($encryption_algorithms_client_to_server),
-            $encryption_algorithms_client_to_server,
-            strlen($encryption_algorithms_server_to_client),
-            $encryption_algorithms_server_to_client,
-            strlen($mac_algorithms_client_to_server),
-            $mac_algorithms_client_to_server,
-            strlen($mac_algorithms_server_to_client),
-            $mac_algorithms_server_to_client,
-            strlen($compression_algorithms_client_to_server),
-            $compression_algorithms_client_to_server,
-            strlen($compression_algorithms_server_to_client),
-            $compression_algorithms_server_to_client,
-            0,
-            '',
-            0,
-            '',
-            0,
-            0
-        );
-
-        if ($this->send_kex_first) {
-            if (!$this->_send_binary_packet($kexinit_payload_client)) {
-                return false;
-            }
-
-            $kexinit_payload_server = $this->_get_binary_packet();
-            if ($kexinit_payload_server === false) {
-                user_error('Connection closed by server');
-                return false;
-            }
-
-            if (!strlen($kexinit_payload_server) || ord($kexinit_payload_server[0]) != NET_SSH2_MSG_KEXINIT) {
-                user_error('Expected SSH_MSG_KEXINIT');
-                return false;
-            }
-        }
-
-        $response = $kexinit_payload_server;
-        $this->_string_shift($response, 1); // skip past the message number (it should be SSH_MSG_KEXINIT)
-        $server_cookie = $this->_string_shift($response, 16);
-
-        if (strlen($response) < 4) {
-            return false;
-        }
-        $temp = unpack('Nlength', $this->_string_shift($response, 4));
-        $this->kex_algorithms = explode(',', $this->_string_shift($response, $temp['length']));
-
-        if (strlen($response) < 4) {
-            return false;
-        }
-        $temp = unpack('Nlength', $this->_string_shift($response, 4));
-        $this->server_host_key_algorithms = explode(',', $this->_string_shift($response, $temp['length']));
-
-        if (strlen($response) < 4) {
-            return false;
-        }
-        $temp = unpack('Nlength', $this->_string_shift($response, 4));
-        $this->encryption_algorithms_client_to_server = explode(',', $this->_string_shift($response, $temp['length']));
-
-        if (strlen($response) < 4) {
-            return false;
-        }
-        $temp = unpack('Nlength', $this->_string_shift($response, 4));
-        $this->encryption_algorithms_server_to_client = explode(',', $this->_string_shift($response, $temp['length']));
-
-        if (strlen($response) < 4) {
-            return false;
-        }
-        $temp = unpack('Nlength', $this->_string_shift($response, 4));
-        $this->mac_algorithms_client_to_server = explode(',', $this->_string_shift($response, $temp['length']));
-
-        if (strlen($response) < 4) {
-            return false;
-        }
-        $temp = unpack('Nlength', $this->_string_shift($response, 4));
-        $this->mac_algorithms_server_to_client = explode(',', $this->_string_shift($response, $temp['length']));
-
-        if (strlen($response) < 4) {
-            return false;
-        }
-        $temp = unpack('Nlength', $this->_string_shift($response, 4));
-        $this->compression_algorithms_client_to_server = explode(',', $this->_string_shift($response, $temp['length']));
-
-        if (strlen($response) < 4) {
-            return false;
-        }
-        $temp = unpack('Nlength', $this->_string_shift($response, 4));
-        $this->compression_algorithms_server_to_client = explode(',', $this->_string_shift($response, $temp['length']));
-
-        if (strlen($response) < 4) {
-            return false;
-        }
-        $temp = unpack('Nlength', $this->_string_shift($response, 4));
-        $this->languages_client_to_server = explode(',', $this->_string_shift($response, $temp['length']));
-
-        if (strlen($response) < 4) {
-            return false;
-        }
-        $temp = unpack('Nlength', $this->_string_shift($response, 4));
-        $this->languages_server_to_client = explode(',', $this->_string_shift($response, $temp['length']));
-
-        if (!strlen($response)) {
-            return false;
-        }
-        extract(unpack('Cfirst_kex_packet_follows', $this->_string_shift($response, 1)));
-        $first_kex_packet_follows = $first_kex_packet_follows != 0;
-
-        if (!$this->send_kex_first && !$this->_send_binary_packet($kexinit_payload_client)) {
-            return false;
-        }
-
-        // we need to decide upon the symmetric encryption algorithms before we do the diffie-hellman key exchange
-        // we don't initialize any crypto-objects, yet - we do that, later. for now, we need the lengths to make the
-        // diffie-hellman key exchange as fast as possible
-        $decrypt = $this->_array_intersect_first($encryption_algorithms, $this->encryption_algorithms_server_to_client);
-        $decryptKeyLength = $this->_encryption_algorithm_to_key_size($decrypt);
-        if ($decryptKeyLength === null) {
-            user_error('No compatible server to client encryption algorithms found');
-            return $this->_disconnect(NET_SSH2_DISCONNECT_KEY_EXCHANGE_FAILED);
-        }
-
-        $encrypt = $this->_array_intersect_first($encryption_algorithms, $this->encryption_algorithms_client_to_server);
-        $encryptKeyLength = $this->_encryption_algorithm_to_key_size($encrypt);
-        if ($encryptKeyLength === null) {
-            user_error('No compatible client to server encryption algorithms found');
-            return $this->_disconnect(NET_SSH2_DISCONNECT_KEY_EXCHANGE_FAILED);
-        }
-
-        // through diffie-hellman key exchange a symmetric key is obtained
-        $kex_algorithm = $this->_array_intersect_first($kex_algorithms, $this->kex_algorithms);
-        if ($kex_algorithm === false) {
-            user_error('No compatible key exchange algorithms found');
-            return $this->_disconnect(NET_SSH2_DISCONNECT_KEY_EXCHANGE_FAILED);
-        }
-
-        // Only relevant in diffie-hellman-group-exchange-sha{1,256}, otherwise empty.
-        $exchange_hash_rfc4419 = '';
-
-        if ($kex_algorithm === 'curve25519-sha256@libssh.org') {
-            $x = Random::string(32);
-            $eBytes = \Sodium\crypto_box_publickey_from_secretkey($x);
-            $clientKexInitMessage = NET_SSH2_MSG_KEX_ECDH_INIT;
-            $serverKexReplyMessage = NET_SSH2_MSG_KEX_ECDH_REPLY;
-            $kexHash = new Hash('sha256');
-        } else {
-            if (strpos($kex_algorithm, 'diffie-hellman-group-exchange') === 0) {
-                $dh_group_sizes_packed = pack(
-                    'NNN',
-                    $this->kex_dh_group_size_min,
-                    $this->kex_dh_group_size_preferred,
-                    $this->kex_dh_group_size_max
-                );
-                $packet = pack(
-                    'Ca*',
-                    NET_SSH2_MSG_KEXDH_GEX_REQUEST,
-                    $dh_group_sizes_packed
-                );
-                if (!$this->_send_binary_packet($packet)) {
-                    return false;
-                }
-
-                $response = $this->_get_binary_packet();
-                if ($response === false) {
-                    user_error('Connection closed by server');
-                    return false;
-                }
-                extract(unpack('Ctype', $this->_string_shift($response, 1)));
-                if ($type != NET_SSH2_MSG_KEXDH_GEX_GROUP) {
-                    user_error('Expected SSH_MSG_KEX_DH_GEX_GROUP');
-                    return false;
-                }
-
-                if (strlen($response) < 4) {
-                    return false;
-                }
-                extract(unpack('NprimeLength', $this->_string_shift($response, 4)));
-                $primeBytes = $this->_string_shift($response, $primeLength);
-                $prime = new BigInteger($primeBytes, -256);
-
-                if (strlen($response) < 4) {
-                    return false;
-                }
-                extract(unpack('NgLength', $this->_string_shift($response, 4)));
-                $gBytes = $this->_string_shift($response, $gLength);
-                $g = new BigInteger($gBytes, -256);
-
-                $exchange_hash_rfc4419 = pack(
-                    'a*Na*Na*',
-                    $dh_group_sizes_packed,
-                    $primeLength,
-                    $primeBytes,
-                    $gLength,
-                    $gBytes
-                );
-
-                $clientKexInitMessage = NET_SSH2_MSG_KEXDH_GEX_INIT;
-                $serverKexReplyMessage = NET_SSH2_MSG_KEXDH_GEX_REPLY;
-            } else {
-                switch ($kex_algorithm) {
-                    // see http://tools.ietf.org/html/rfc2409#section-6.2 and
-                    // http://tools.ietf.org/html/rfc2412, appendex E
-                    case 'diffie-hellman-group1-sha1':
-                        $prime = 'FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74' .
-                                '020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F1437' .
-                                '4FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7ED' .
-                                'EE386BFB5A899FA5AE9F24117C4B1FE649286651ECE65381FFFFFFFFFFFFFFFF';
-                        break;
-                    // see http://tools.ietf.org/html/rfc3526#section-3
-                    case 'diffie-hellman-group14-sha1':
-                        $prime = 'FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74' .
-                                '020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F1437' .
-                                '4FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7ED' .
-                                'EE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF05' .
-                                '98DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB' .
-                                '9ED529077096966D670C354E4ABC9804F1746C08CA18217C32905E462E36CE3B' .
-                                'E39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9DE2BCBF695581718' .
-                                '3995497CEA956AE515D2261898FA051015728E5A8AACAA68FFFFFFFFFFFFFFFF';
-                        break;
-                }
-                // For both diffie-hellman-group1-sha1 and diffie-hellman-group14-sha1
-                // the generator field element is 2 (decimal) and the hash function is sha1.
-                $g = new BigInteger(2);
-                $prime = new BigInteger($prime, 16);
-                $clientKexInitMessage = NET_SSH2_MSG_KEXDH_INIT;
-                $serverKexReplyMessage = NET_SSH2_MSG_KEXDH_REPLY;
-            }
-
-            switch ($kex_algorithm) {
-                case 'diffie-hellman-group-exchange-sha256':
-                    $kexHash = new Hash('sha256');
-                    break;
-                default:
-                    $kexHash = new Hash('sha1');
-            }
-
-            /* To increase the speed of the key exchange, both client and server may
-            reduce the size of their private exponents.  It should be at least
-            twice as long as the key material that is generated from the shared
-            secret.  For more details, see the paper by van Oorschot and Wiener
-            [VAN-OORSCHOT].
-
-            -- http://tools.ietf.org/html/rfc4419#section-6.2 */
-            $one = new BigInteger(1);
-            $keyLength = min($kexHash->getLength(), max($encryptKeyLength, $decryptKeyLength));
-            $max = $one->bitwise_leftShift(16 * $keyLength); // 2 * 8 * $keyLength
-            $max = $max->subtract($one);
-
-            $x = $one->random($one, $max);
-            $e = $g->modPow($x, $prime);
-
-            $eBytes = $e->toBytes(true);
-        }
-        $data = pack('CNa*', $clientKexInitMessage, strlen($eBytes), $eBytes);
-
-        if (!$this->_send_binary_packet($data)) {
-            user_error('Connection closed by server');
-            return false;
-        }
-
-        $response = $this->_get_binary_packet();
-        if ($response === false) {
-            user_error('Connection closed by server');
-            return false;
-        }
-        if (!strlen($response)) {
-            return false;
-        }
-        extract(unpack('Ctype', $this->_string_shift($response, 1)));
-
-        if ($type != $serverKexReplyMessage) {
-            user_error('Expected SSH_MSG_KEXDH_REPLY');
-            return false;
-        }
-
-        if (strlen($response) < 4) {
-            return false;
-        }
-        $temp = unpack('Nlength', $this->_string_shift($response, 4));
-        $this->server_public_host_key = $server_public_host_key = $this->_string_shift($response, $temp['length']);
-
-        if (strlen($server_public_host_key) < 4) {
-            return false;
-        }
-        $temp = unpack('Nlength', $this->_string_shift($server_public_host_key, 4));
-        $public_key_format = $this->_string_shift($server_public_host_key, $temp['length']);
-
-        if (strlen($response) < 4) {
-            return false;
-        }
-        $temp = unpack('Nlength', $this->_string_shift($response, 4));
-        $fBytes = $this->_string_shift($response, $temp['length']);
-
-        if (strlen($response) < 4) {
-            return false;
-        }
-        $temp = unpack('Nlength', $this->_string_shift($response, 4));
-        $this->signature = $this->_string_shift($response, $temp['length']);
-
-        if (strlen($this->signature) < 4) {
-            return false;
-        }
-        $temp = unpack('Nlength', $this->_string_shift($this->signature, 4));
-        $this->signature_format = $this->_string_shift($this->signature, $temp['length']);
-
-        if ($kex_algorithm === 'curve25519-sha256@libssh.org') {
-            if (strlen($fBytes) !== 32) {
-                user_error('Received curve25519 public key of invalid length.');
-                return false;
-            }
-            $key = new BigInteger(\Sodium\crypto_scalarmult($x, $fBytes), 256);
-            \Sodium\memzero($x);
-        } else {
-            $f = new BigInteger($fBytes, -256);
-            $key = $f->modPow($x, $prime);
-        }
-        $keyBytes = $key->toBytes(true);
-
-        $this->exchange_hash = pack(
-            'Na*Na*Na*Na*Na*a*Na*Na*Na*',
-            strlen($this->identifier),
-            $this->identifier,
-            strlen($this->server_identifier),
-            $this->server_identifier,
-            strlen($kexinit_payload_client),
-            $kexinit_payload_client,
-            strlen($kexinit_payload_server),
-            $kexinit_payload_server,
-            strlen($this->server_public_host_key),
-            $this->server_public_host_key,
-            $exchange_hash_rfc4419,
-            strlen($eBytes),
-            $eBytes,
-            strlen($fBytes),
-            $fBytes,
-            strlen($keyBytes),
-            $keyBytes
-        );
-
-        $this->exchange_hash = $kexHash->hash($this->exchange_hash);
-
-        if ($this->session_id === false) {
-            $this->session_id = $this->exchange_hash;
-        }
-
-        $server_host_key_algorithm = $this->_array_intersect_first($server_host_key_algorithms, $this->server_host_key_algorithms);
-        if ($server_host_key_algorithm === false) {
-            user_error('No compatible server host key algorithms found');
-            return $this->_disconnect(NET_SSH2_DISCONNECT_KEY_EXCHANGE_FAILED);
-        }
-
-        if ($public_key_format != $server_host_key_algorithm || $this->signature_format != $server_host_key_algorithm) {
-            user_error('Server Host Key Algorithm Mismatch');
-            return $this->_disconnect(NET_SSH2_DISCONNECT_KEY_EXCHANGE_FAILED);
-        }
-
-        $packet = pack(
-            'C',
-            NET_SSH2_MSG_NEWKEYS
-        );
-
-        if (!$this->_send_binary_packet($packet)) {
-            return false;
-        }
-
-        $response = $this->_get_binary_packet();
-
-        if ($response === false) {
-            user_error('Connection closed by server');
-            return false;
-        }
-
-        if (!strlen($response)) {
-            return false;
-        }
-        extract(unpack('Ctype', $this->_string_shift($response, 1)));
-
-        if ($type != NET_SSH2_MSG_NEWKEYS) {
-            user_error('Expected SSH_MSG_NEWKEYS');
-            return false;
-        }
-
-        $this->decrypt_algorithm = $decrypt;
-
-        $keyBytes = pack('Na*', strlen($keyBytes), $keyBytes);
-
-        $this->encrypt = $this->_encryption_algorithm_to_crypt_instance($encrypt);
-        if ($this->encrypt) {
-            if ($this->crypto_engine) {
-                $this->encrypt->setEngine($this->crypto_engine);
-            }
-            if ($this->encrypt->block_size) {
-                $this->encrypt_block_size = $this->encrypt->block_size;
-            }
-            $this->encrypt->enableContinuousBuffer();
-            $this->encrypt->disablePadding();
-
-            $iv = $kexHash->hash($keyBytes . $this->exchange_hash . 'A' . $this->session_id);
-            while ($this->encrypt_block_size > strlen($iv)) {
-                $iv.= $kexHash->hash($keyBytes . $this->exchange_hash . $iv);
-            }
-            $this->encrypt->setIV(substr($iv, 0, $this->encrypt_block_size));
-
-            $key = $kexHash->hash($keyBytes . $this->exchange_hash . 'C' . $this->session_id);
-            while ($encryptKeyLength > strlen($key)) {
-                $key.= $kexHash->hash($keyBytes . $this->exchange_hash . $key);
-            }
-            $this->encrypt->setKey(substr($key, 0, $encryptKeyLength));
-        }
-
-        $this->decrypt = $this->_encryption_algorithm_to_crypt_instance($decrypt);
-        if ($this->decrypt) {
-            if ($this->crypto_engine) {
-                $this->decrypt->setEngine($this->crypto_engine);
-            }
-            if ($this->decrypt->block_size) {
-                $this->decrypt_block_size = $this->decrypt->block_size;
-            }
-            $this->decrypt->enableContinuousBuffer();
-            $this->decrypt->disablePadding();
-
-            $iv = $kexHash->hash($keyBytes . $this->exchange_hash . 'B' . $this->session_id);
-            while ($this->decrypt_block_size > strlen($iv)) {
-                $iv.= $kexHash->hash($keyBytes . $this->exchange_hash . $iv);
-            }
-            $this->decrypt->setIV(substr($iv, 0, $this->decrypt_block_size));
-
-            $key = $kexHash->hash($keyBytes . $this->exchange_hash . 'D' . $this->session_id);
-            while ($decryptKeyLength > strlen($key)) {
-                $key.= $kexHash->hash($keyBytes . $this->exchange_hash . $key);
-            }
-            $this->decrypt->setKey(substr($key, 0, $decryptKeyLength));
-        }
-
-        /* The "arcfour128" algorithm is the RC4 cipher, as described in
-           [SCHNEIER], using a 128-bit key.  The first 1536 bytes of keystream
-           generated by the cipher MUST be discarded, and the first byte of the
-           first encrypted packet MUST be encrypted using the 1537th byte of
-           keystream.
-
-           -- http://tools.ietf.org/html/rfc4345#section-4 */
-        if ($encrypt == 'arcfour128' || $encrypt == 'arcfour256') {
-            $this->encrypt->encrypt(str_repeat("\0", 1536));
-        }
-        if ($decrypt == 'arcfour128' || $decrypt == 'arcfour256') {
-            $this->decrypt->decrypt(str_repeat("\0", 1536));
-        }
-
-        $mac_algorithm = $this->_array_intersect_first($mac_algorithms, $this->mac_algorithms_client_to_server);
-        if ($mac_algorithm === false) {
-            user_error('No compatible client to server message authentication algorithms found');
-            return $this->_disconnect(NET_SSH2_DISCONNECT_KEY_EXCHANGE_FAILED);
-        }
-
-        $createKeyLength = 0; // ie. $mac_algorithm == 'none'
-        switch ($mac_algorithm) {
-            case 'hmac-sha2-256':
-                $this->hmac_create = new Hash('sha256');
-                $createKeyLength = 32;
-                break;
-            case 'hmac-sha1':
-                $this->hmac_create = new Hash('sha1');
-                $createKeyLength = 20;
-                break;
-            case 'hmac-sha1-96':
-                $this->hmac_create = new Hash('sha1-96');
-                $createKeyLength = 20;
-                break;
-            case 'hmac-md5':
-                $this->hmac_create = new Hash('md5');
-                $createKeyLength = 16;
-                break;
-            case 'hmac-md5-96':
-                $this->hmac_create = new Hash('md5-96');
-                $createKeyLength = 16;
-        }
-
-        $mac_algorithm = $this->_array_intersect_first($mac_algorithms, $this->mac_algorithms_server_to_client);
-        if ($mac_algorithm === false) {
-            user_error('No compatible server to client message authentication algorithms found');
-            return $this->_disconnect(NET_SSH2_DISCONNECT_KEY_EXCHANGE_FAILED);
-        }
-
-        $checkKeyLength = 0;
-        $this->hmac_size = 0;
-        switch ($mac_algorithm) {
-            case 'hmac-sha2-256':
-                $this->hmac_check = new Hash('sha256');
-                $checkKeyLength = 32;
-                $this->hmac_size = 32;
-                break;
-            case 'hmac-sha1':
-                $this->hmac_check = new Hash('sha1');
-                $checkKeyLength = 20;
-                $this->hmac_size = 20;
-                break;
-            case 'hmac-sha1-96':
-                $this->hmac_check = new Hash('sha1-96');
-                $checkKeyLength = 20;
-                $this->hmac_size = 12;
-                break;
-            case 'hmac-md5':
-                $this->hmac_check = new Hash('md5');
-                $checkKeyLength = 16;
-                $this->hmac_size = 16;
-                break;
-            case 'hmac-md5-96':
-                $this->hmac_check = new Hash('md5-96');
-                $checkKeyLength = 16;
-                $this->hmac_size = 12;
-        }
-
-        $key = $kexHash->hash($keyBytes . $this->exchange_hash . 'E' . $this->session_id);
-        while ($createKeyLength > strlen($key)) {
-            $key.= $kexHash->hash($keyBytes . $this->exchange_hash . $key);
-        }
-        $this->hmac_create->setKey(substr($key, 0, $createKeyLength));
-
-        $key = $kexHash->hash($keyBytes . $this->exchange_hash . 'F' . $this->session_id);
-        while ($checkKeyLength > strlen($key)) {
-            $key.= $kexHash->hash($keyBytes . $this->exchange_hash . $key);
-        }
-        $this->hmac_check->setKey(substr($key, 0, $checkKeyLength));
-
-        $compression_algorithm = $this->_array_intersect_first($compression_algorithms, $this->compression_algorithms_server_to_client);
-        if ($compression_algorithm === false) {
-            user_error('No compatible server to client compression algorithms found');
-            return $this->_disconnect(NET_SSH2_DISCONNECT_KEY_EXCHANGE_FAILED);
-        }
-        $this->decompress = $compression_algorithm == 'zlib';
-
-        $compression_algorithm = $this->_array_intersect_first($compression_algorithms, $this->compression_algorithms_client_to_server);
-        if ($compression_algorithm === false) {
-            user_error('No compatible client to server compression algorithms found');
-            return $this->_disconnect(NET_SSH2_DISCONNECT_KEY_EXCHANGE_FAILED);
-        }
-        $this->compress = $compression_algorithm == 'zlib';
-
-        return true;
-    }
-
-    /**
-     * Maps an encryption algorithm name to the number of key bytes.
-     *
-     * @param string $algorithm Name of the encryption algorithm
-     * @return int|null Number of bytes as an integer or null for unknown
-     * @access private
-     */
-    function _encryption_algorithm_to_key_size($algorithm)
-    {
-        if ($this->bad_key_size_fix && $this->_bad_algorithm_candidate($algorithm)) {
-            return 16;
-        }
-
-        switch ($algorithm) {
-            case 'none':
-                return 0;
-            case 'aes128-cbc':
-            case 'aes128-ctr':
-            case 'arcfour':
-            case 'arcfour128':
-            case 'blowfish-cbc':
-            case 'blowfish-ctr':
-            case 'twofish128-cbc':
-            case 'twofish128-ctr':
-                return 16;
-            case '3des-cbc':
-            case '3des-ctr':
-            case 'aes192-cbc':
-            case 'aes192-ctr':
-            case 'twofish192-cbc':
-            case 'twofish192-ctr':
-                return 24;
-            case 'aes256-cbc':
-            case 'aes256-ctr':
-            case 'arcfour256':
-            case 'twofish-cbc':
-            case 'twofish256-cbc':
-            case 'twofish256-ctr':
-                return 32;
-        }
-        return null;
-    }
-
-    /**
-     * Maps an encryption algorithm name to an instance of a subclass of
-     * \phpseclib\Crypt\Base.
-     *
-     * @param string $algorithm Name of the encryption algorithm
-     * @return mixed Instance of \phpseclib\Crypt\Base or null for unknown
-     * @access private
-     */
-    function _encryption_algorithm_to_crypt_instance($algorithm)
-    {
-        switch ($algorithm) {
-            case '3des-cbc':
-                return new TripleDES();
-            case '3des-ctr':
-                return new TripleDES(Base::MODE_CTR);
-            case 'aes256-cbc':
-            case 'aes192-cbc':
-            case 'aes128-cbc':
-                return new Rijndael();
-            case 'aes256-ctr':
-            case 'aes192-ctr':
-            case 'aes128-ctr':
-                return new Rijndael(Base::MODE_CTR);
-            case 'blowfish-cbc':
-                return new Blowfish();
-            case 'blowfish-ctr':
-                return new Blowfish(Base::MODE_CTR);
-            case 'twofish128-cbc':
-            case 'twofish192-cbc':
-            case 'twofish256-cbc':
-            case 'twofish-cbc':
-                return new Twofish();
-            case 'twofish128-ctr':
-            case 'twofish192-ctr':
-            case 'twofish256-ctr':
-                return new Twofish(Base::MODE_CTR);
-            case 'arcfour':
-            case 'arcfour128':
-            case 'arcfour256':
-                return new RC4();
-        }
-        return null;
-    }
-
-    /*
-     * Tests whether or not proposed algorithm has a potential for issues
-     *
-     * @link https://www.chiark.greenend.org.uk/~sgtatham/putty/wishlist/ssh2-aesctr-openssh.html
-     * @link https://bugzilla.mindrot.org/show_bug.cgi?id=1291
-     * @param string $algorithm Name of the encryption algorithm
-     * @return bool
-     * @access private
-     */
-    function _bad_algorithm_candidate($algorithm)
-    {
-        switch ($algorithm) {
-            case 'arcfour256':
-            case 'aes192-ctr':
-            case 'aes256-ctr':
-                return true;
-        }
-
-        return false;
-    }
-
-    /**
-     * Login
-     *
-     * The $password parameter can be a plaintext password, a \phpseclib\Crypt\RSA object or an array
-     *
-     * @param string $username
-     * @param mixed $password
-     * @param mixed $...
-     * @return bool
-     * @see self::_login()
-     * @access public
-     */
-    function login($username)
-    {
-        $args = func_get_args();
-        return call_user_func_array(array(&$this, '_login'), $args);
-    }
-
-    /**
-     * Login Helper
-     *
-     * @param string $username
-     * @param mixed $password
-     * @param mixed $...
-     * @return bool
-     * @see self::_login_helper()
-     * @access private
-     */
-    function _login($username)
-    {
-        if (!($this->bitmap & self::MASK_CONSTRUCTOR)) {
-            if (!$this->_connect()) {
-                return false;
-            }
-        }
-
-        $args = array_slice(func_get_args(), 1);
-        if (empty($args)) {
-            return $this->_login_helper($username);
-        }
-
-        foreach ($args as $arg) {
-            if ($this->_login_helper($username, $arg)) {
-                return true;
-            }
-        }
-        return false;
-    }
-
-    /**
-     * Login Helper
-     *
-     * @param string $username
-     * @param string $password
-     * @return bool
-     * @access private
-     * @internal It might be worthwhile, at some point, to protect against {@link http://tools.ietf.org/html/rfc4251#section-9.3.9 traffic analysis}
-     *           by sending dummy SSH_MSG_IGNORE messages.
-     */
-    function _login_helper($username, $password = null)
-    {
-        if (!($this->bitmap & self::MASK_CONNECTED)) {
-            return false;
-        }
-
-        if (!($this->bitmap & self::MASK_LOGIN_REQ)) {
-            $packet = pack(
-                'CNa*',
-                NET_SSH2_MSG_SERVICE_REQUEST,
-                strlen('ssh-userauth'),
-                'ssh-userauth'
-            );
-
-            if (!$this->_send_binary_packet($packet)) {
-                return false;
-            }
-
-            $response = $this->_get_binary_packet();
-            if ($response === false) {
-                if ($this->retry_connect) {
-                    $this->retry_connect = false;
-                    if (!$this->_connect()) {
-                        return false;
-                    }
-                    return $this->_login_helper($username, $password);
-                }
-                user_error('Connection closed by server');
-                return false;
-            }
-
-            if (strlen($response) < 4) {
-                return false;
-            }
-            extract(unpack('Ctype', $this->_string_shift($response, 1)));
-
-            if ($type != NET_SSH2_MSG_SERVICE_ACCEPT) {
-                user_error('Expected SSH_MSG_SERVICE_ACCEPT');
-                return false;
-            }
-            $this->bitmap |= self::MASK_LOGIN_REQ;
-        }
-
-        if (strlen($this->last_interactive_response)) {
-            return !is_string($password) && !is_array($password) ? false : $this->_keyboard_interactive_process($password);
-        }
-
-        if ($password instanceof RSA) {
-            return $this->_privatekey_login($username, $password);
-        } elseif ($password instanceof Agent) {
-            return $this->_ssh_agent_login($username, $password);
-        }
-
-        if (is_array($password)) {
-            if ($this->_keyboard_interactive_login($username, $password)) {
-                $this->bitmap |= self::MASK_LOGIN;
-                return true;
-            }
-            return false;
-        }
-
-        if (!isset($password)) {
-            $packet = pack(
-                'CNa*Na*Na*',
-                NET_SSH2_MSG_USERAUTH_REQUEST,
-                strlen($username),
-                $username,
-                strlen('ssh-connection'),
-                'ssh-connection',
-                strlen('none'),
-                'none'
-            );
-
-            if (!$this->_send_binary_packet($packet)) {
-                return false;
-            }
-
-            $response = $this->_get_binary_packet();
-            if ($response === false) {
-                user_error('Connection closed by server');
-                return false;
-            }
-
-            if (!strlen($response)) {
-                return false;
-            }
-            extract(unpack('Ctype', $this->_string_shift($response, 1)));
-
-            switch ($type) {
-                case NET_SSH2_MSG_USERAUTH_SUCCESS:
-                    $this->bitmap |= self::MASK_LOGIN;
-                    return true;
-                //case NET_SSH2_MSG_USERAUTH_FAILURE:
-                default:
-                    return false;
-            }
-        }
-
-        $packet = pack(
-            'CNa*Na*Na*CNa*',
-            NET_SSH2_MSG_USERAUTH_REQUEST,
-            strlen($username),
-            $username,
-            strlen('ssh-connection'),
-            'ssh-connection',
-            strlen('password'),
-            'password',
-            0,
-            strlen($password),
-            $password
-        );
-
-        // remove the username and password from the logged packet
-        if (!defined('NET_SSH2_LOGGING')) {
-            $logged = null;
-        } else {
-            $logged = pack(
-                'CNa*Na*Na*CNa*',
-                NET_SSH2_MSG_USERAUTH_REQUEST,
-                strlen('username'),
-                'username',
-                strlen('ssh-connection'),
-                'ssh-connection',
-                strlen('password'),
-                'password',
-                0,
-                strlen('password'),
-                'password'
-            );
-        }
-
-        if (!$this->_send_binary_packet($packet, $logged)) {
-            return false;
-        }
-
-        $response = $this->_get_binary_packet();
-        if ($response === false) {
-            user_error('Connection closed by server');
-            return false;
-        }
-
-        if (!strlen($response)) {
-            return false;
-        }
-        extract(unpack('Ctype', $this->_string_shift($response, 1)));
-
-        switch ($type) {
-            case NET_SSH2_MSG_USERAUTH_PASSWD_CHANGEREQ: // in theory, the password can be changed
-                if (defined('NET_SSH2_LOGGING')) {
-                    $this->message_number_log[count($this->message_number_log) - 1] = 'NET_SSH2_MSG_USERAUTH_PASSWD_CHANGEREQ';
-                }
-                if (strlen($response) < 4) {
-                    return false;
-                }
-                extract(unpack('Nlength', $this->_string_shift($response, 4)));
-                $this->errors[] = 'SSH_MSG_USERAUTH_PASSWD_CHANGEREQ: ' . utf8_decode($this->_string_shift($response, $length));
-                return $this->_disconnect(NET_SSH2_DISCONNECT_AUTH_CANCELLED_BY_USER);
-            case NET_SSH2_MSG_USERAUTH_FAILURE:
-                // can we use keyboard-interactive authentication?  if not then either the login is bad or the server employees
-                // multi-factor authentication
-                if (strlen($response) < 4) {
-                    return false;
-                }
-                extract(unpack('Nlength', $this->_string_shift($response, 4)));
-                $auth_methods = explode(',', $this->_string_shift($response, $length));
-                if (!strlen($response)) {
-                    return false;
-                }
-                extract(unpack('Cpartial_success', $this->_string_shift($response, 1)));
-                $partial_success = $partial_success != 0;
-
-                if (!$partial_success && in_array('keyboard-interactive', $auth_methods)) {
-                    if ($this->_keyboard_interactive_login($username, $password)) {
-                        $this->bitmap |= self::MASK_LOGIN;
-                        return true;
-                    }
-                    return false;
-                }
-                return false;
-            case NET_SSH2_MSG_USERAUTH_SUCCESS:
-                $this->bitmap |= self::MASK_LOGIN;
-                return true;
-        }
-
-        return false;
-    }
-
-    /**
-     * Login via keyboard-interactive authentication
-     *
-     * See {@link http://tools.ietf.org/html/rfc4256 RFC4256} for details.  This is not a full-featured keyboard-interactive authenticator.
-     *
-     * @param string $username
-     * @param string $password
-     * @return bool
-     * @access private
-     */
-    function _keyboard_interactive_login($username, $password)
-    {
-        $packet = pack(
-            'CNa*Na*Na*Na*Na*',
-            NET_SSH2_MSG_USERAUTH_REQUEST,
-            strlen($username),
-            $username,
-            strlen('ssh-connection'),
-            'ssh-connection',
-            strlen('keyboard-interactive'),
-            'keyboard-interactive',
-            0,
-            '',
-            0,
-            ''
-        );
-
-        if (!$this->_send_binary_packet($packet)) {
-            return false;
-        }
-
-        return $this->_keyboard_interactive_process($password);
-    }
-
-    /**
-     * Handle the keyboard-interactive requests / responses.
-     *
-     * @param string $responses...
-     * @return bool
-     * @access private
-     */
-    function _keyboard_interactive_process()
-    {
-        $responses = func_get_args();
-
-        if (strlen($this->last_interactive_response)) {
-            $response = $this->last_interactive_response;
-        } else {
-            $orig = $response = $this->_get_binary_packet();
-            if ($response === false) {
-                user_error('Connection closed by server');
-                return false;
-            }
-        }
-
-        if (!strlen($response)) {
-            return false;
-        }
-        extract(unpack('Ctype', $this->_string_shift($response, 1)));
-
-        switch ($type) {
-            case NET_SSH2_MSG_USERAUTH_INFO_REQUEST:
-                if (strlen($response) < 4) {
-                    return false;
-                }
-                extract(unpack('Nlength', $this->_string_shift($response, 4)));
-                $this->_string_shift($response, $length); // name; may be empty
-                if (strlen($response) < 4) {
-                    return false;
-                }
-                extract(unpack('Nlength', $this->_string_shift($response, 4)));
-                $this->_string_shift($response, $length); // instruction; may be empty
-                if (strlen($response) < 4) {
-                    return false;
-                }
-                extract(unpack('Nlength', $this->_string_shift($response, 4)));
-                $this->_string_shift($response, $length); // language tag; may be empty
-                if (strlen($response) < 4) {
-                    return false;
-                }
-                extract(unpack('Nnum_prompts', $this->_string_shift($response, 4)));
-
-                for ($i = 0; $i < count($responses); $i++) {
-                    if (is_array($responses[$i])) {
-                        foreach ($responses[$i] as $key => $value) {
-                            $this->keyboard_requests_responses[$key] = $value;
-                        }
-                        unset($responses[$i]);
-                    }
-                }
-                $responses = array_values($responses);
-
-                if (isset($this->keyboard_requests_responses)) {
-                    for ($i = 0; $i < $num_prompts; $i++) {
-                        if (strlen($response) < 4) {
-                            return false;
-                        }
-                        extract(unpack('Nlength', $this->_string_shift($response, 4)));
-                        // prompt - ie. "Password: "; must not be empty
-                        $prompt = $this->_string_shift($response, $length);
-                        //$echo = $this->_string_shift($response) != chr(0);
-                        foreach ($this->keyboard_requests_responses as $key => $value) {
-                            if (substr($prompt, 0, strlen($key)) == $key) {
-                                $responses[] = $value;
-                                break;
-                            }
-                        }
-                    }
-                }
-
-                // see http://tools.ietf.org/html/rfc4256#section-3.2
-                if (strlen($this->last_interactive_response)) {
-                    $this->last_interactive_response = '';
-                } elseif (defined('NET_SSH2_LOGGING')) {
-                    $this->message_number_log[count($this->message_number_log) - 1] = str_replace(
-                        'UNKNOWN',
-                        'NET_SSH2_MSG_USERAUTH_INFO_REQUEST',
-                        $this->message_number_log[count($this->message_number_log) - 1]
-                    );
-                }
-
-                if (!count($responses) && $num_prompts) {
-                    $this->last_interactive_response = $orig;
-                    return false;
-                }
-
-                /*
-                   After obtaining the requested information from the user, the client
-                   MUST respond with an SSH_MSG_USERAUTH_INFO_RESPONSE message.
-                */
-                // see http://tools.ietf.org/html/rfc4256#section-3.4
-                $packet = $logged = pack('CN', NET_SSH2_MSG_USERAUTH_INFO_RESPONSE, count($responses));
-                for ($i = 0; $i < count($responses); $i++) {
-                    $packet.= pack('Na*', strlen($responses[$i]), $responses[$i]);
-                    $logged.= pack('Na*', strlen('dummy-answer'), 'dummy-answer');
-                }
-
-                if (!$this->_send_binary_packet($packet, $logged)) {
-                    return false;
-                }
-
-                if (defined('NET_SSH2_LOGGING') && NET_SSH2_LOGGING == self::LOG_COMPLEX) {
-                    $this->message_number_log[count($this->message_number_log) - 1] = str_replace(
-                        'UNKNOWN',
-                        'NET_SSH2_MSG_USERAUTH_INFO_RESPONSE',
-                        $this->message_number_log[count($this->message_number_log) - 1]
-                    );
-                }
-
-                /*
-                   After receiving the response, the server MUST send either an
-                   SSH_MSG_USERAUTH_SUCCESS, SSH_MSG_USERAUTH_FAILURE, or another
-                   SSH_MSG_USERAUTH_INFO_REQUEST message.
-                */
-                // maybe phpseclib should force close the connection after x request / responses?  unless something like that is done
-                // there could be an infinite loop of request / responses.
-                return $this->_keyboard_interactive_process();
-            case NET_SSH2_MSG_USERAUTH_SUCCESS:
-                return true;
-            case NET_SSH2_MSG_USERAUTH_FAILURE:
-                return false;
-        }
-
-        return false;
-    }
-
-    /**
-     * Login with an ssh-agent provided key
-     *
-     * @param string $username
-     * @param \phpseclib\System\SSH\Agent $agent
-     * @return bool
-     * @access private
-     */
-    function _ssh_agent_login($username, $agent)
-    {
-        $this->agent = $agent;
-        $keys = $agent->requestIdentities();
-        foreach ($keys as $key) {
-            if ($this->_privatekey_login($username, $key)) {
-                return true;
-            }
-        }
-
-        return false;
-    }
-
-    /**
-     * Login with an RSA private key
-     *
-     * @param string $username
-     * @param \phpseclib\Crypt\RSA $password
-     * @return bool
-     * @access private
-     * @internal It might be worthwhile, at some point, to protect against {@link http://tools.ietf.org/html/rfc4251#section-9.3.9 traffic analysis}
-     *           by sending dummy SSH_MSG_IGNORE messages.
-     */
-    function _privatekey_login($username, $privatekey)
-    {
-        // see http://tools.ietf.org/html/rfc4253#page-15
-        $publickey = $privatekey->getPublicKey(RSA::PUBLIC_FORMAT_RAW);
-        if ($publickey === false) {
-            return false;
-        }
-
-        $publickey = array(
-            'e' => $publickey['e']->toBytes(true),
-            'n' => $publickey['n']->toBytes(true)
-        );
-        $publickey = pack(
-            'Na*Na*Na*',
-            strlen('ssh-rsa'),
-            'ssh-rsa',
-            strlen($publickey['e']),
-            $publickey['e'],
-            strlen($publickey['n']),
-            $publickey['n']
-        );
-
-        $part1 = pack(
-            'CNa*Na*Na*',
-            NET_SSH2_MSG_USERAUTH_REQUEST,
-            strlen($username),
-            $username,
-            strlen('ssh-connection'),
-            'ssh-connection',
-            strlen('publickey'),
-            'publickey'
-        );
-        $part2 = pack('Na*Na*', strlen('ssh-rsa'), 'ssh-rsa', strlen($publickey), $publickey);
-
-        $packet = $part1 . chr(0) . $part2;
-        if (!$this->_send_binary_packet($packet)) {
-            return false;
-        }
-
-        $response = $this->_get_binary_packet();
-        if ($response === false) {
-            user_error('Connection closed by server');
-            return false;
-        }
-
-        if (!strlen($response)) {
-            return false;
-        }
-        extract(unpack('Ctype', $this->_string_shift($response, 1)));
-
-        switch ($type) {
-            case NET_SSH2_MSG_USERAUTH_FAILURE:
-                if (strlen($response) < 4) {
-                    return false;
-                }
-                extract(unpack('Nlength', $this->_string_shift($response, 4)));
-                $this->errors[] = 'SSH_MSG_USERAUTH_FAILURE: ' . $this->_string_shift($response, $length);
-                return false;
-            case NET_SSH2_MSG_USERAUTH_PK_OK:
-                // we'll just take it on faith that the public key blob and the public key algorithm name are as
-                // they should be
-                if (defined('NET_SSH2_LOGGING') && NET_SSH2_LOGGING == self::LOG_COMPLEX) {
-                    $this->message_number_log[count($this->message_number_log) - 1] = str_replace(
-                        'UNKNOWN',
-                        'NET_SSH2_MSG_USERAUTH_PK_OK',
-                        $this->message_number_log[count($this->message_number_log) - 1]
-                    );
-                }
-        }
-
-        $packet = $part1 . chr(1) . $part2;
-        $privatekey->setSignatureMode(RSA::SIGNATURE_PKCS1);
-        $signature = $privatekey->sign(pack('Na*a*', strlen($this->session_id), $this->session_id, $packet));
-        $signature = pack('Na*Na*', strlen('ssh-rsa'), 'ssh-rsa', strlen($signature), $signature);
-        $packet.= pack('Na*', strlen($signature), $signature);
-
-        if (!$this->_send_binary_packet($packet)) {
-            return false;
-        }
-
-        $response = $this->_get_binary_packet();
-        if ($response === false) {
-            user_error('Connection closed by server');
-            return false;
-        }
-
-        if (!strlen($response)) {
-            return false;
-        }
-        extract(unpack('Ctype', $this->_string_shift($response, 1)));
-
-        switch ($type) {
-            case NET_SSH2_MSG_USERAUTH_FAILURE:
-                // either the login is bad or the server employs multi-factor authentication
-                return false;
-            case NET_SSH2_MSG_USERAUTH_SUCCESS:
-                $this->bitmap |= self::MASK_LOGIN;
-                return true;
-        }
-
-        return false;
-    }
-
-    /**
-     * Set Timeout
-     *
-     * $ssh->exec('ping 127.0.0.1'); on a Linux host will never return and will run indefinitely.  setTimeout() makes it so it'll timeout.
-     * Setting $timeout to false or 0 will mean there is no timeout.
-     *
-     * @param mixed $timeout
-     * @access public
-     */
-    function setTimeout($timeout)
-    {
-        $this->timeout = $this->curTimeout = $timeout;
-    }
-
-    /**
-     * Get the output from stdError
-     *
-     * @access public
-     */
-    function getStdError()
-    {
-        return $this->stdErrorLog;
-    }
-
-    /**
-     * Execute Command
-     *
-     * If $callback is set to false then \phpseclib\Net\SSH2::_get_channel_packet(self::CHANNEL_EXEC) will need to be called manually.
-     * In all likelihood, this is not a feature you want to be taking advantage of.
-     *
-     * @param string $command
-     * @param Callback $callback
-     * @return string
-     * @access public
-     */
-    function exec($command, $callback = null)
-    {
-        $this->curTimeout = $this->timeout;
-        $this->is_timeout = false;
-        $this->stdErrorLog = '';
-
-        if (!$this->isAuthenticated()) {
-            return false;
-        }
-
-        if ($this->in_request_pty_exec) {
-            user_error('If you want to run multiple exec()\'s you will need to disable (and re-enable if appropriate) a PTY for each one.');
-            return false;
-        }
-
-        // RFC4254 defines the (client) window size as "bytes the other party can send before it must wait for the window to
-        // be adjusted".  0x7FFFFFFF is, at 2GB, the max size.  technically, it should probably be decremented, but,
-        // honestly, if you're transferring more than 2GB, you probably shouldn't be using phpseclib, anyway.
-        // see http://tools.ietf.org/html/rfc4254#section-5.2 for more info
-        $this->window_size_server_to_client[self::CHANNEL_EXEC] = $this->window_size;
-        // 0x8000 is the maximum max packet size, per http://tools.ietf.org/html/rfc4253#section-6.1, although since PuTTy
-        // uses 0x4000, that's what will be used here, as well.
-        $packet_size = 0x4000;
-
-        $packet = pack(
-            'CNa*N3',
-            NET_SSH2_MSG_CHANNEL_OPEN,
-            strlen('session'),
-            'session',
-            self::CHANNEL_EXEC,
-            $this->window_size_server_to_client[self::CHANNEL_EXEC],
-            $packet_size
-        );
-
-        if (!$this->_send_binary_packet($packet)) {
-            return false;
-        }
-
-        $this->channel_status[self::CHANNEL_EXEC] = NET_SSH2_MSG_CHANNEL_OPEN;
-
-        $response = $this->_get_channel_packet(self::CHANNEL_EXEC);
-        if ($response === false) {
-            return false;
-        }
-
-        if ($this->request_pty === true) {
-            $terminal_modes = pack('C', NET_SSH2_TTY_OP_END);
-            $packet = pack(
-                'CNNa*CNa*N5a*',
-                NET_SSH2_MSG_CHANNEL_REQUEST,
-                $this->server_channels[self::CHANNEL_EXEC],
-                strlen('pty-req'),
-                'pty-req',
-                1,
-                strlen('vt100'),
-                'vt100',
-                $this->windowColumns,
-                $this->windowRows,
-                0,
-                0,
-                strlen($terminal_modes),
-                $terminal_modes
-            );
-
-            if (!$this->_send_binary_packet($packet)) {
-                return false;
-            }
-
-            $response = $this->_get_binary_packet();
-            if ($response === false) {
-                user_error('Connection closed by server');
-                return false;
-            }
-
-            if (!strlen($response)) {
-                return false;
-            }
-            list(, $type) = unpack('C', $this->_string_shift($response, 1));
-
-            switch ($type) {
-                case NET_SSH2_MSG_CHANNEL_SUCCESS:
-                    break;
-                case NET_SSH2_MSG_CHANNEL_FAILURE:
-                default:
-                    user_error('Unable to request pseudo-terminal');
-                    return $this->_disconnect(NET_SSH2_DISCONNECT_BY_APPLICATION);
-            }
-            $this->in_request_pty_exec = true;
-        }
-
-        // sending a pty-req SSH_MSG_CHANNEL_REQUEST message is unnecessary and, in fact, in most cases, slows things
-        // down.  the one place where it might be desirable is if you're doing something like \phpseclib\Net\SSH2::exec('ping localhost &').
-        // with a pty-req SSH_MSG_CHANNEL_REQUEST, exec() will return immediately and the ping process will then
-        // then immediately terminate.  without such a request exec() will loop indefinitely.  the ping process won't end but
-        // neither will your script.
-
-        // although, in theory, the size of SSH_MSG_CHANNEL_REQUEST could exceed the maximum packet size established by
-        // SSH_MSG_CHANNEL_OPEN_CONFIRMATION, RFC4254#section-5.1 states that the "maximum packet size" refers to the
-        // "maximum size of an individual data packet". ie. SSH_MSG_CHANNEL_DATA.  RFC4254#section-5.2 corroborates.
-        $packet = pack(
-            'CNNa*CNa*',
-            NET_SSH2_MSG_CHANNEL_REQUEST,
-            $this->server_channels[self::CHANNEL_EXEC],
-            strlen('exec'),
-            'exec',
-            1,
-            strlen($command),
-            $command
-        );
-        if (!$this->_send_binary_packet($packet)) {
-            return false;
-        }
-
-        $this->channel_status[self::CHANNEL_EXEC] = NET_SSH2_MSG_CHANNEL_REQUEST;
-
-        $response = $this->_get_channel_packet(self::CHANNEL_EXEC);
-        if ($response === false) {
-            return false;
-        }
-
-        $this->channel_status[self::CHANNEL_EXEC] = NET_SSH2_MSG_CHANNEL_DATA;
-
-        if ($callback === false || $this->in_request_pty_exec) {
-            return true;
-        }
-
-        $output = '';
-        while (true) {
-            $temp = $this->_get_channel_packet(self::CHANNEL_EXEC);
-            switch (true) {
-                case $temp === true:
-                    return is_callable($callback) ? true : $output;
-                case $temp === false:
-                    return false;
-                default:
-                    if (is_callable($callback)) {
-                        if (call_user_func($callback, $temp) === true) {
-                            $this->_close_channel(self::CHANNEL_EXEC);
-                            return true;
-                        }
-                    } else {
-                        $output.= $temp;
-                    }
-            }
-        }
-    }
-
-    /**
-     * Creates an interactive shell
-     *
-     * @see self::read()
-     * @see self::write()
-     * @return bool
-     * @access private
-     */
-    function _initShell()
-    {
-        if ($this->in_request_pty_exec === true) {
-            return true;
-        }
-
-        $this->window_size_server_to_client[self::CHANNEL_SHELL] = $this->window_size;
-        $packet_size = 0x4000;
-
-        $packet = pack(
-            'CNa*N3',
-            NET_SSH2_MSG_CHANNEL_OPEN,
-            strlen('session'),
-            'session',
-            self::CHANNEL_SHELL,
-            $this->window_size_server_to_client[self::CHANNEL_SHELL],
-            $packet_size
-        );
-
-        if (!$this->_send_binary_packet($packet)) {
-            return false;
-        }
-
-        $this->channel_status[self::CHANNEL_SHELL] = NET_SSH2_MSG_CHANNEL_OPEN;
-
-        $response = $this->_get_channel_packet(self::CHANNEL_SHELL);
-        if ($response === false) {
-            return false;
-        }
-
-        $terminal_modes = pack('C', NET_SSH2_TTY_OP_END);
-        $packet = pack(
-            'CNNa*CNa*N5a*',
-            NET_SSH2_MSG_CHANNEL_REQUEST,
-            $this->server_channels[self::CHANNEL_SHELL],
-            strlen('pty-req'),
-            'pty-req',
-            1,
-            strlen('vt100'),
-            'vt100',
-            $this->windowColumns,
-            $this->windowRows,
-            0,
-            0,
-            strlen($terminal_modes),
-            $terminal_modes
-        );
-
-        if (!$this->_send_binary_packet($packet)) {
-            return false;
-        }
-
-        $response = $this->_get_binary_packet();
-        if ($response === false) {
-            user_error('Connection closed by server');
-            return false;
-        }
-
-        if (!strlen($response)) {
-            return false;
-        }
-        list(, $type) = unpack('C', $this->_string_shift($response, 1));
-
-        switch ($type) {
-            case NET_SSH2_MSG_CHANNEL_SUCCESS:
-            // if a pty can't be opened maybe commands can still be executed
-            case NET_SSH2_MSG_CHANNEL_FAILURE:
-                break;
-            default:
-                user_error('Unable to request pseudo-terminal');
-                return $this->_disconnect(NET_SSH2_DISCONNECT_BY_APPLICATION);
-        }
-
-        $packet = pack(
-            'CNNa*C',
-            NET_SSH2_MSG_CHANNEL_REQUEST,
-            $this->server_channels[self::CHANNEL_SHELL],
-            strlen('shell'),
-            'shell',
-            1
-        );
-        if (!$this->_send_binary_packet($packet)) {
-            return false;
-        }
-
-        $this->channel_status[self::CHANNEL_SHELL] = NET_SSH2_MSG_CHANNEL_REQUEST;
-
-        $response = $this->_get_channel_packet(self::CHANNEL_SHELL);
-        if ($response === false) {
-            return false;
-        }
-
-        $this->channel_status[self::CHANNEL_SHELL] = NET_SSH2_MSG_CHANNEL_DATA;
-
-        $this->bitmap |= self::MASK_SHELL;
-
-        return true;
-    }
-
-    /**
-     * Return the channel to be used with read() / write()
-     *
-     * @see self::read()
-     * @see self::write()
-     * @return int
-     * @access public
-     */
-    function _get_interactive_channel()
-    {
-        switch (true) {
-            case $this->in_subsystem:
-                return self::CHANNEL_SUBSYSTEM;
-            case $this->in_request_pty_exec:
-                return self::CHANNEL_EXEC;
-            default:
-                return self::CHANNEL_SHELL;
-        }
-    }
-
-    /**
-     * Return an available open channel
-     *
-     * @return int
-     * @access public
-     */
-    function _get_open_channel()
-    {
-        $channel = self::CHANNEL_EXEC;
-        do {
-            if (isset($this->channel_status[$channel]) && $this->channel_status[$channel] == NET_SSH2_MSG_CHANNEL_OPEN) {
-                return $channel;
-            }
-        } while ($channel++ < self::CHANNEL_SUBSYSTEM);
-
-        return false;
-    }
-
-    /**
-     * Returns the output of an interactive shell
-     *
-     * Returns when there's a match for $expect, which can take the form of a string literal or,
-     * if $mode == self::READ_REGEX, a regular expression.
-     *
-     * @see self::write()
-     * @param string $expect
-     * @param int $mode
-     * @return string
-     * @access public
-     */
-    function read($expect = '', $mode = self::READ_SIMPLE)
-    {
-        $this->curTimeout = $this->timeout;
-        $this->is_timeout = false;
-
-        if (!$this->isAuthenticated()) {
-            user_error('Operation disallowed prior to login()');
-            return false;
-        }
-
-        if (!($this->bitmap & self::MASK_SHELL) && !$this->_initShell()) {
-            user_error('Unable to initiate an interactive shell session');
-            return false;
-        }
-
-        $channel = $this->_get_interactive_channel();
-
-        if ($mode == self::READ_NEXT) {
-            return $this->_get_channel_packet($channel);
-        }
-
-        $match = $expect;
-        while (true) {
-            if ($mode == self::READ_REGEX) {
-                preg_match($expect, substr($this->interactiveBuffer, -1024), $matches);
-                $match = isset($matches[0]) ? $matches[0] : '';
-            }
-            $pos = strlen($match) ? strpos($this->interactiveBuffer, $match) : false;
-            if ($pos !== false) {
-                return $this->_string_shift($this->interactiveBuffer, $pos + strlen($match));
-            }
-            $response = $this->_get_channel_packet($channel);
-            if (is_bool($response)) {
-                $this->in_request_pty_exec = false;
-                return $response ? $this->_string_shift($this->interactiveBuffer, strlen($this->interactiveBuffer)) : false;
-            }
-
-            $this->interactiveBuffer.= $response;
-        }
-    }
-
-    /**
-     * Inputs a command into an interactive shell.
-     *
-     * @see self::read()
-     * @param string $cmd
-     * @return bool
-     * @access public
-     */
-    function write($cmd)
-    {
-        if (!$this->isAuthenticated()) {
-            user_error('Operation disallowed prior to login()');
-            return false;
-        }
-
-        if (!($this->bitmap & self::MASK_SHELL) && !$this->_initShell()) {
-            user_error('Unable to initiate an interactive shell session');
-            return false;
-        }
-
-        return $this->_send_channel_packet($this->_get_interactive_channel(), $cmd);
-    }
-
-    /**
-     * Start a subsystem.
-     *
-     * Right now only one subsystem at a time is supported. To support multiple subsystem's stopSubsystem() could accept
-     * a string that contained the name of the subsystem, but at that point, only one subsystem of each type could be opened.
-     * To support multiple subsystem's of the same name maybe it'd be best if startSubsystem() generated a new channel id and
-     * returns that and then that that was passed into stopSubsystem() but that'll be saved for a future date and implemented
-     * if there's sufficient demand for such a feature.
-     *
-     * @see self::stopSubsystem()
-     * @param string $subsystem
-     * @return bool
-     * @access public
-     */
-    function startSubsystem($subsystem)
-    {
-        $this->window_size_server_to_client[self::CHANNEL_SUBSYSTEM] = $this->window_size;
-
-        $packet = pack(
-            'CNa*N3',
-            NET_SSH2_MSG_CHANNEL_OPEN,
-            strlen('session'),
-            'session',
-            self::CHANNEL_SUBSYSTEM,
-            $this->window_size,
-            0x4000
-        );
-
-        if (!$this->_send_binary_packet($packet)) {
-            return false;
-        }
-
-        $this->channel_status[self::CHANNEL_SUBSYSTEM] = NET_SSH2_MSG_CHANNEL_OPEN;
-
-        $response = $this->_get_channel_packet(self::CHANNEL_SUBSYSTEM);
-        if ($response === false) {
-            return false;
-        }
-
-        $packet = pack(
-            'CNNa*CNa*',
-            NET_SSH2_MSG_CHANNEL_REQUEST,
-            $this->server_channels[self::CHANNEL_SUBSYSTEM],
-            strlen('subsystem'),
-            'subsystem',
-            1,
-            strlen($subsystem),
-            $subsystem
-        );
-        if (!$this->_send_binary_packet($packet)) {
-            return false;
-        }
-
-        $this->channel_status[self::CHANNEL_SUBSYSTEM] = NET_SSH2_MSG_CHANNEL_REQUEST;
-
-        $response = $this->_get_channel_packet(self::CHANNEL_SUBSYSTEM);
-
-        if ($response === false) {
-            return false;
-        }
-
-        $this->channel_status[self::CHANNEL_SUBSYSTEM] = NET_SSH2_MSG_CHANNEL_DATA;
-
-        $this->bitmap |= self::MASK_SHELL;
-        $this->in_subsystem = true;
-
-        return true;
-    }
-
-    /**
-     * Stops a subsystem.
-     *
-     * @see self::startSubsystem()
-     * @return bool
-     * @access public
-     */
-    function stopSubsystem()
-    {
-        $this->in_subsystem = false;
-        $this->_close_channel(self::CHANNEL_SUBSYSTEM);
-        return true;
-    }
-
-    /**
-     * Closes a channel
-     *
-     * If read() timed out you might want to just close the channel and have it auto-restart on the next read() call
-     *
-     * @access public
-     */
-    function reset()
-    {
-        $this->_close_channel($this->_get_interactive_channel());
-    }
-
-    /**
-     * Is timeout?
-     *
-     * Did exec() or read() return because they timed out or because they encountered the end?
-     *
-     * @access public
-     */
-    function isTimeout()
-    {
-        return $this->is_timeout;
-    }
-
-    /**
-     * Disconnect
-     *
-     * @access public
-     */
-    function disconnect()
-    {
-        $this->_disconnect(NET_SSH2_DISCONNECT_BY_APPLICATION);
-        if (isset($this->realtime_log_file) && is_resource($this->realtime_log_file)) {
-            fclose($this->realtime_log_file);
-        }
-    }
-
-    /**
-     * Destructor.
-     *
-     * Will be called, automatically, if you're supporting just PHP5.  If you're supporting PHP4, you'll need to call
-     * disconnect().
-     *
-     * @access public
-     */
-    function __destruct()
-    {
-        $this->disconnect();
-    }
-
-    /**
-     * Is the connection still active?
-     *
-     * @return bool
-     * @access public
-     */
-    function isConnected()
-    {
-        return (bool) ($this->bitmap & self::MASK_CONNECTED);
-    }
-
-    /**
-     * Have you successfully been logged in?
-     *
-     * @return bool
-     * @access public
-     */
-    function isAuthenticated()
-    {
-        return (bool) ($this->bitmap & self::MASK_LOGIN);
-    }
-
-    /**
-     * Resets a connection for re-use
-     *
-     * @param int $reason
-     * @access private
-     */
-    function _reset_connection($reason)
-    {
-        $this->_disconnect($reason);
-        $this->decrypt = $this->encrypt = false;
-        $this->decrypt_block_size = $this->encrypt_block_size = 8;
-        $this->hmac_check = $this->hmac_create = false;
-        $this->hmac_size = false;
-        $this->session_id = false;
-        $this->retry_connect = true;
-        $this->get_seq_no = $this->send_seq_no = 0;
-    }
-
-    /**
-     * Gets Binary Packets
-     *
-     * See '6. Binary Packet Protocol' of rfc4253 for more info.
-     *
-     * @see self::_send_binary_packet()
-     * @return string
-     * @access private
-     */
-    function _get_binary_packet($skip_channel_filter = false)
-    {
-        if (!is_resource($this->fsock) || feof($this->fsock)) {
-            user_error('Connection closed prematurely');
-            $this->bitmap = 0;
-            return false;
-        }
-
-        $start = microtime(true);
-        $raw = stream_get_contents($this->fsock, $this->decrypt_block_size);
-
-        if (!strlen($raw)) {
-            return '';
-        }
-
-        if ($this->decrypt !== false) {
-            $raw = $this->decrypt->decrypt($raw);
-        }
-        if ($raw === false) {
-            user_error('Unable to decrypt content');
-            return false;
-        }
-
-        if (strlen($raw) < 5) {
-            return false;
-        }
-        extract(unpack('Npacket_length/Cpadding_length', $this->_string_shift($raw, 5)));
-
-        $remaining_length = $packet_length + 4 - $this->decrypt_block_size;
-
-        // quoting <http://tools.ietf.org/html/rfc4253#section-6.1>,
-        // "implementations SHOULD check that the packet length is reasonable"
-        // PuTTY uses 0x9000 as the actual max packet size and so to shall we
-        if ($remaining_length < -$this->decrypt_block_size || $remaining_length > 0x9000 || $remaining_length % $this->decrypt_block_size != 0) {
-            if (!$this->bad_key_size_fix && $this->_bad_algorithm_candidate($this->decrypt_algorithm) && !($this->bitmap & SSH2::MASK_LOGIN)) {
-                $this->bad_key_size_fix = true;
-                $this->_reset_connection(NET_SSH2_DISCONNECT_KEY_EXCHANGE_FAILED);
-                return false;
-            }
-            user_error('Invalid size');
-            return false;
-        }
-
-        $buffer = '';
-        while ($remaining_length > 0) {
-            $temp = stream_get_contents($this->fsock, $remaining_length);
-            if ($temp === false || feof($this->fsock)) {
-                user_error('Error reading from socket');
-                $this->bitmap = 0;
-                return false;
-            }
-            $buffer.= $temp;
-            $remaining_length-= strlen($temp);
-        }
-
-        $stop = microtime(true);
-        if (strlen($buffer)) {
-            $raw.= $this->decrypt !== false ? $this->decrypt->decrypt($buffer) : $buffer;
-        }
-
-        $payload = $this->_string_shift($raw, $packet_length - $padding_length - 1);
-        $padding = $this->_string_shift($raw, $padding_length); // should leave $raw empty
-
-        if ($this->hmac_check !== false) {
-            $hmac = stream_get_contents($this->fsock, $this->hmac_size);
-            if ($hmac === false || strlen($hmac) != $this->hmac_size) {
-                user_error('Error reading socket');
-                $this->bitmap = 0;
-                return false;
-            } elseif ($hmac != $this->hmac_check->hash(pack('NNCa*', $this->get_seq_no, $packet_length, $padding_length, $payload . $padding))) {
-                user_error('Invalid HMAC');
-                return false;
-            }
-        }
-
-        //if ($this->decompress) {
-        //    $payload = gzinflate(substr($payload, 2));
-        //}
-
-        $this->get_seq_no++;
-
-        if (defined('NET_SSH2_LOGGING')) {
-            $current = microtime(true);
-            $message_number = isset($this->message_numbers[ord($payload[0])]) ? $this->message_numbers[ord($payload[0])] : 'UNKNOWN (' . ord($payload[0]) . ')';
-            $message_number = '<- ' . $message_number .
-                              ' (since last: ' . round($current - $this->last_packet, 4) . ', network: ' . round($stop - $start, 4) . 's)';
-            $this->_append_log($message_number, $payload);
-            $this->last_packet = $current;
-        }
-
-        return $this->_filter($payload, $skip_channel_filter);
-    }
-
-    /**
-     * Filter Binary Packets
-     *
-     * Because some binary packets need to be ignored...
-     *
-     * @see self::_get_binary_packet()
-     * @return string
-     * @access private
-     */
-    function _filter($payload, $skip_channel_filter)
-    {
-        switch (ord($payload[0])) {
-            case NET_SSH2_MSG_DISCONNECT:
-                $this->_string_shift($payload, 1);
-                if (strlen($payload) < 8) {
-                    return false;
-                }
-                extract(unpack('Nreason_code/Nlength', $this->_string_shift($payload, 8)));
-                $this->errors[] = 'SSH_MSG_DISCONNECT: ' . $this->disconnect_reasons[$reason_code] . "\r\n" . utf8_decode($this->_string_shift($payload, $length));
-                $this->bitmap = 0;
-                return false;
-            case NET_SSH2_MSG_IGNORE:
-                $payload = $this->_get_binary_packet($skip_channel_filter);
-                break;
-            case NET_SSH2_MSG_DEBUG:
-                $this->_string_shift($payload, 2);
-                if (strlen($payload) < 4) {
-                    return false;
-                }
-                extract(unpack('Nlength', $this->_string_shift($payload, 4)));
-                $this->errors[] = 'SSH_MSG_DEBUG: ' . utf8_decode($this->_string_shift($payload, $length));
-                $payload = $this->_get_binary_packet($skip_channel_filter);
-                break;
-            case NET_SSH2_MSG_UNIMPLEMENTED:
-                return false;
-            case NET_SSH2_MSG_KEXINIT:
-                if ($this->session_id !== false) {
-                    $this->send_kex_first = false;
-                    if (!$this->_key_exchange($payload)) {
-                        $this->bitmap = 0;
-                        return false;
-                    }
-                    $payload = $this->_get_binary_packet($skip_channel_filter);
-                }
-        }
-
-        // see http://tools.ietf.org/html/rfc4252#section-5.4; only called when the encryption has been activated and when we haven't already logged in
-        if (($this->bitmap & self::MASK_CONNECTED) && !$this->isAuthenticated() && ord($payload[0]) == NET_SSH2_MSG_USERAUTH_BANNER) {
-            $this->_string_shift($payload, 1);
-            if (strlen($payload) < 4) {
-                return false;
-            }
-            extract(unpack('Nlength', $this->_string_shift($payload, 4)));
-            $this->banner_message = utf8_decode($this->_string_shift($payload, $length));
-            $payload = $this->_get_binary_packet();
-        }
-
-        // only called when we've already logged in
-        if (($this->bitmap & self::MASK_CONNECTED) && $this->isAuthenticated()) {
-            switch (ord($payload[0])) {
-                case NET_SSH2_MSG_CHANNEL_DATA:
-                case NET_SSH2_MSG_CHANNEL_EXTENDED_DATA:
-                case NET_SSH2_MSG_CHANNEL_REQUEST:
-                case NET_SSH2_MSG_CHANNEL_CLOSE:
-                case NET_SSH2_MSG_CHANNEL_EOF:
-                    if (!$skip_channel_filter && !empty($this->server_channels)) {
-                        $this->binary_packet_buffer = $payload;
-                        $this->_get_channel_packet(true);
-                        $payload = $this->_get_binary_packet();
-                    }
-                    break;
-                case NET_SSH2_MSG_GLOBAL_REQUEST: // see http://tools.ietf.org/html/rfc4254#section-4
-                    if (strlen($payload) < 4) {
-                        return false;
-                    }
-                    extract(unpack('Nlength', $this->_string_shift($payload, 4)));
-                    $this->errors[] = 'SSH_MSG_GLOBAL_REQUEST: ' . $this->_string_shift($payload, $length);
-
-                    if (!$this->_send_binary_packet(pack('C', NET_SSH2_MSG_REQUEST_FAILURE))) {
-                        return $this->_disconnect(NET_SSH2_DISCONNECT_BY_APPLICATION);
-                    }
-
-                    $payload = $this->_get_binary_packet($skip_channel_filter);
-                    break;
-                case NET_SSH2_MSG_CHANNEL_OPEN: // see http://tools.ietf.org/html/rfc4254#section-5.1
-                    $this->_string_shift($payload, 1);
-                    if (strlen($payload) < 4) {
-                        return false;
-                    }
-                    extract(unpack('Nlength', $this->_string_shift($payload, 4)));
-                    $data = $this->_string_shift($payload, $length);
-                    if (strlen($payload) < 4) {
-                        return false;
-                    }
-                    extract(unpack('Nserver_channel', $this->_string_shift($payload, 4)));
-                    switch ($data) {
-                        case 'auth-agent':
-                        case 'auth-agent@openssh.com':
-                            if (isset($this->agent)) {
-                                $new_channel = self::CHANNEL_AGENT_FORWARD;
-
-                                if (strlen($payload) < 8) {
-                                    return false;
-                                }
-                                extract(unpack('Nremote_window_size', $this->_string_shift($payload, 4)));
-                                extract(unpack('Nremote_maximum_packet_size', $this->_string_shift($payload, 4)));
-
-                                $this->packet_size_client_to_server[$new_channel] = $remote_window_size;
-                                $this->window_size_server_to_client[$new_channel] = $remote_maximum_packet_size;
-                                $this->window_size_client_to_server[$new_channel] = $this->window_size;
-
-                                $packet_size = 0x4000;
-
-                                $packet = pack(
-                                    'CN4',
-                                    NET_SSH2_MSG_CHANNEL_OPEN_CONFIRMATION,
-                                    $server_channel,
-                                    $new_channel,
-                                    $packet_size,
-                                    $packet_size
-                                );
-
-                                $this->server_channels[$new_channel] = $server_channel;
-                                $this->channel_status[$new_channel] = NET_SSH2_MSG_CHANNEL_OPEN_CONFIRMATION;
-                                if (!$this->_send_binary_packet($packet)) {
-                                    return false;
-                                }
-                            }
-                            break;
-                        default:
-                            $packet = pack(
-                                'CN3a*Na*',
-                                NET_SSH2_MSG_REQUEST_FAILURE,
-                                $server_channel,
-                                NET_SSH2_OPEN_ADMINISTRATIVELY_PROHIBITED,
-                                0,
-                                '',
-                                0,
-                                ''
-                            );
-
-                            if (!$this->_send_binary_packet($packet)) {
-                                return $this->_disconnect(NET_SSH2_DISCONNECT_BY_APPLICATION);
-                            }
-                    }
-                    $payload = $this->_get_binary_packet($skip_channel_filter);
-                    break;
-                case NET_SSH2_MSG_CHANNEL_WINDOW_ADJUST:
-                    $this->_string_shift($payload, 1);
-                    if (strlen($payload) < 8) {
-                        return false;
-                    }
-                    extract(unpack('Nchannel', $this->_string_shift($payload, 4)));
-                    extract(unpack('Nwindow_size', $this->_string_shift($payload, 4)));
-                    $this->window_size_client_to_server[$channel]+= $window_size;
-
-                    $payload = ($this->bitmap & self::MASK_WINDOW_ADJUST) ? true : $this->_get_binary_packet($skip_channel_filter);
-            }
-        }
-
-        return $payload;
-    }
-
-    /**
-     * Enable Quiet Mode
-     *
-     * Suppress stderr from output
-     *
-     * @access public
-     */
-    function enableQuietMode()
-    {
-        $this->quiet_mode = true;
-    }
-
-    /**
-     * Disable Quiet Mode
-     *
-     * Show stderr in output
-     *
-     * @access public
-     */
-    function disableQuietMode()
-    {
-        $this->quiet_mode = false;
-    }
-
-    /**
-     * Returns whether Quiet Mode is enabled or not
-     *
-     * @see self::enableQuietMode()
-     * @see self::disableQuietMode()
-     * @access public
-     * @return bool
-     */
-    function isQuietModeEnabled()
-    {
-        return $this->quiet_mode;
-    }
-
-    /**
-     * Enable request-pty when using exec()
-     *
-     * @access public
-     */
-    function enablePTY()
-    {
-        $this->request_pty = true;
-    }
-
-    /**
-     * Disable request-pty when using exec()
-     *
-     * @access public
-     */
-    function disablePTY()
-    {
-        if ($this->in_request_pty_exec) {
-            $this->_close_channel(self::CHANNEL_EXEC);
-            $this->in_request_pty_exec = false;
-        }
-        $this->request_pty = false;
-    }
-
-    /**
-     * Returns whether request-pty is enabled or not
-     *
-     * @see self::enablePTY()
-     * @see self::disablePTY()
-     * @access public
-     * @return bool
-     */
-    function isPTYEnabled()
-    {
-        return $this->request_pty;
-    }
-
-    /**
-     * Gets channel data
-     *
-     * Returns the data as a string if it's available and false if not.
-     *
-     * @param $client_channel
-     * @return mixed
-     * @access private
-     */
-    function _get_channel_packet($client_channel, $skip_extended = false)
-    {
-        if (!empty($this->channel_buffers[$client_channel])) {
-            return array_shift($this->channel_buffers[$client_channel]);
-        }
-
-        while (true) {
-            if ($this->binary_packet_buffer !== false) {
-                $response = $this->binary_packet_buffer;
-                $this->binary_packet_buffer = false;
-            } else {
-                if ($this->curTimeout) {
-                    if ($this->curTimeout < 0) {
-                        $this->is_timeout = true;
-                        return true;
-                    }
-
-                    $read = array($this->fsock);
-                    $write = $except = null;
-
-                    $start = microtime(true);
-                    $sec = floor($this->curTimeout);
-                    $usec = 1000000 * ($this->curTimeout - $sec);
-                    // on windows this returns a "Warning: Invalid CRT parameters detected" error
-                    if (!@stream_select($read, $write, $except, $sec, $usec) && !count($read)) {
-                        $this->is_timeout = true;
-                        return true;
-                    }
-                    $elapsed = microtime(true) - $start;
-                    $this->curTimeout-= $elapsed;
-                }
-
-                $response = $this->_get_binary_packet(true);
-                if ($response === false) {
-                    user_error('Connection closed by server');
-                    return false;
-                }
-            }
-
-            if ($client_channel == -1 && $response === true) {
-                return true;
-            }
-            if (!strlen($response)) {
-                return '';
-            }
-
-            if (!strlen($response)) {
-                return false;
-            }
-            extract(unpack('Ctype', $this->_string_shift($response, 1)));
-
-            if (strlen($response) < 4) {
-                return false;
-            }
-            if ($type == NET_SSH2_MSG_CHANNEL_OPEN) {
-                extract(unpack('Nlength', $this->_string_shift($response, 4)));
-            } else {
-                extract(unpack('Nchannel', $this->_string_shift($response, 4)));
-            }
-
-            // will not be setup yet on incoming channel open request
-            if (isset($channel) && isset($this->channel_status[$channel]) && isset($this->window_size_server_to_client[$channel])) {
-                $this->window_size_server_to_client[$channel]-= strlen($response);
-
-                // resize the window, if appropriate
-                if ($this->window_size_server_to_client[$channel] < 0) {
-                    $packet = pack('CNN', NET_SSH2_MSG_CHANNEL_WINDOW_ADJUST, $this->server_channels[$channel], $this->window_size);
-                    if (!$this->_send_binary_packet($packet)) {
-                        return false;
-                    }
-                    $this->window_size_server_to_client[$channel]+= $this->window_size;
-                }
-
-                switch ($type) {
-                    case NET_SSH2_MSG_CHANNEL_EXTENDED_DATA:
-                        /*
-                        if ($client_channel == NET_SSH2_CHANNEL_EXEC) {
-                            $this->_send_channel_packet($client_channel, chr(0));
-                        }
-                        */
-                        // currently, there's only one possible value for $data_type_code: NET_SSH2_EXTENDED_DATA_STDERR
-                        if (strlen($response) < 8) {
-                            return false;
-                        }
-                        extract(unpack('Ndata_type_code/Nlength', $this->_string_shift($response, 8)));
-                        $data = $this->_string_shift($response, $length);
-                        $this->stdErrorLog.= $data;
-                        if ($skip_extended || $this->quiet_mode) {
-                            continue 2;
-                        }
-                        if ($client_channel == $channel && $this->channel_status[$channel] == NET_SSH2_MSG_CHANNEL_DATA) {
-                            return $data;
-                        }
-                        if (!isset($this->channel_buffers[$channel])) {
-                            $this->channel_buffers[$channel] = array();
-                        }
-                        $this->channel_buffers[$channel][] = $data;
-
-                        continue 2;
-                    case NET_SSH2_MSG_CHANNEL_REQUEST:
-                        if ($this->channel_status[$channel] == NET_SSH2_MSG_CHANNEL_CLOSE) {
-                            continue 2;
-                        }
-                        if (strlen($response) < 4) {
-                            return false;
-                        }
-                        extract(unpack('Nlength', $this->_string_shift($response, 4)));
-                        $value = $this->_string_shift($response, $length);
-                        switch ($value) {
-                            case 'exit-signal':
-                                $this->_string_shift($response, 1);
-                                if (strlen($response) < 4) {
-                                    return false;
-                                }
-                                extract(unpack('Nlength', $this->_string_shift($response, 4)));
-                                $this->errors[] = 'SSH_MSG_CHANNEL_REQUEST (exit-signal): ' . $this->_string_shift($response, $length);
-                                $this->_string_shift($response, 1);
-                                if (strlen($response) < 4) {
-                                    return false;
-                                }
-                                extract(unpack('Nlength', $this->_string_shift($response, 4)));
-                                if ($length) {
-                                    $this->errors[count($this->errors)].= "\r\n" . $this->_string_shift($response, $length);
-                                }
-
-                                $this->_send_binary_packet(pack('CN', NET_SSH2_MSG_CHANNEL_EOF, $this->server_channels[$client_channel]));
-                                $this->_send_binary_packet(pack('CN', NET_SSH2_MSG_CHANNEL_CLOSE, $this->server_channels[$channel]));
-
-                                $this->channel_status[$channel] = NET_SSH2_MSG_CHANNEL_EOF;
-
-                                continue 3;
-                            case 'exit-status':
-                                if (strlen($response) < 5) {
-                                    return false;
-                                }
-                                extract(unpack('Cfalse/Nexit_status', $this->_string_shift($response, 5)));
-                                $this->exit_status = $exit_status;
-
-                                // "The client MAY ignore these messages."
-                                // -- http://tools.ietf.org/html/rfc4254#section-6.10
-
-                                continue 3;
-                            default:
-                                // "Some systems may not implement signals, in which case they SHOULD ignore this message."
-                                //  -- http://tools.ietf.org/html/rfc4254#section-6.9
-                                continue 3;
-                        }
-                }
-
-                switch ($this->channel_status[$channel]) {
-                    case NET_SSH2_MSG_CHANNEL_OPEN:
-                        switch ($type) {
-                            case NET_SSH2_MSG_CHANNEL_OPEN_CONFIRMATION:
-                                if (strlen($response) < 4) {
-                                    return false;
-                                }
-                                extract(unpack('Nserver_channel', $this->_string_shift($response, 4)));
-                                $this->server_channels[$channel] = $server_channel;
-                                if (strlen($response) < 4) {
-                                    return false;
-                                }
-                                extract(unpack('Nwindow_size', $this->_string_shift($response, 4)));
-                                if ($window_size < 0) {
-                                    $window_size&= 0x7FFFFFFF;
-                                    $window_size+= 0x80000000;
-                                }
-                                $this->window_size_client_to_server[$channel] = $window_size;
-                                if (strlen($response) < 4) {
-                                     return false;
-                                }
-                                $temp = unpack('Npacket_size_client_to_server', $this->_string_shift($response, 4));
-                                $this->packet_size_client_to_server[$channel] = $temp['packet_size_client_to_server'];
-                                $result = $client_channel == $channel ? true : $this->_get_channel_packet($client_channel, $skip_extended);
-                                $this->_on_channel_open();
-                                return $result;
-                            //case NET_SSH2_MSG_CHANNEL_OPEN_FAILURE:
-                            default:
-                                user_error('Unable to open channel');
-                                return $this->_disconnect(NET_SSH2_DISCONNECT_BY_APPLICATION);
-                        }
-                        break;
-                    case NET_SSH2_MSG_CHANNEL_REQUEST:
-                        switch ($type) {
-                            case NET_SSH2_MSG_CHANNEL_SUCCESS:
-                                return true;
-                            case NET_SSH2_MSG_CHANNEL_FAILURE:
-                                return false;
-                            default:
-                                user_error('Unable to fulfill channel request');
-                                return $this->_disconnect(NET_SSH2_DISCONNECT_BY_APPLICATION);
-                        }
-                    case NET_SSH2_MSG_CHANNEL_CLOSE:
-                        return $type == NET_SSH2_MSG_CHANNEL_CLOSE ? true : $this->_get_channel_packet($client_channel, $skip_extended);
-                }
-            }
-
-            // ie. $this->channel_status[$channel] == NET_SSH2_MSG_CHANNEL_DATA
-
-            switch ($type) {
-                case NET_SSH2_MSG_CHANNEL_DATA:
-                    /*
-                    if ($channel == self::CHANNEL_EXEC) {
-                        // SCP requires null packets, such as this, be sent.  further, in the case of the ssh.com SSH server
-                        // this actually seems to make things twice as fast.  more to the point, the message right after
-                        // SSH_MSG_CHANNEL_DATA (usually SSH_MSG_IGNORE) won't block for as long as it would have otherwise.
-                        // in OpenSSH it slows things down but only by a couple thousandths of a second.
-                        $this->_send_channel_packet($channel, chr(0));
-                    }
-                    */
-                    if (strlen($response) < 4) {
-                        return false;
-                    }
-                    extract(unpack('Nlength', $this->_string_shift($response, 4)));
-                    $data = $this->_string_shift($response, $length);
-
-                    if ($channel == self::CHANNEL_AGENT_FORWARD) {
-                        $agent_response = $this->agent->_forward_data($data);
-                        if (!is_bool($agent_response)) {
-                            $this->_send_channel_packet($channel, $agent_response);
-                        }
-                        break;
-                    }
-
-                    if ($client_channel == $channel) {
-                        return $data;
-                    }
-                    if (!isset($this->channel_buffers[$channel])) {
-                        $this->channel_buffers[$channel] = array();
-                    }
-                    $this->channel_buffers[$channel][] = $data;
-                    break;
-                case NET_SSH2_MSG_CHANNEL_CLOSE:
-                    $this->curTimeout = 0;
-
-                    if ($this->bitmap & self::MASK_SHELL) {
-                        $this->bitmap&= ~self::MASK_SHELL;
-                    }
-                    if ($this->channel_status[$channel] != NET_SSH2_MSG_CHANNEL_EOF) {
-                        $this->_send_binary_packet(pack('CN', NET_SSH2_MSG_CHANNEL_CLOSE, $this->server_channels[$channel]));
-                    }
-
-                    $this->channel_status[$channel] = NET_SSH2_MSG_CHANNEL_CLOSE;
-                    if ($client_channel == $channel) {
-                        return true;
-                    }
-                case NET_SSH2_MSG_CHANNEL_EOF:
-                    break;
-                default:
-                    user_error('Error reading channel data');
-                    return $this->_disconnect(NET_SSH2_DISCONNECT_BY_APPLICATION);
-            }
-        }
-    }
-
-    /**
-     * Sends Binary Packets
-     *
-     * See '6. Binary Packet Protocol' of rfc4253 for more info.
-     *
-     * @param string $data
-     * @param string $logged
-     * @see self::_get_binary_packet()
-     * @return bool
-     * @access private
-     */
-    function _send_binary_packet($data, $logged = null)
-    {
-        if (!is_resource($this->fsock) || feof($this->fsock)) {
-            user_error('Connection closed prematurely');
-            $this->bitmap = 0;
-            return false;
-        }
-
-        //if ($this->compress) {
-        //    // the -4 removes the checksum:
-        //    // http://php.net/function.gzcompress#57710
-        //    $data = substr(gzcompress($data), 0, -4);
-        //}
-
-        // 4 (packet length) + 1 (padding length) + 4 (minimal padding amount) == 9
-        $packet_length = strlen($data) + 9;
-        // round up to the nearest $this->encrypt_block_size
-        $packet_length+= (($this->encrypt_block_size - 1) * $packet_length) % $this->encrypt_block_size;
-        // subtracting strlen($data) is obvious - subtracting 5 is necessary because of packet_length and padding_length
-        $padding_length = $packet_length - strlen($data) - 5;
-        $padding = Random::string($padding_length);
-
-        // we subtract 4 from packet_length because the packet_length field isn't supposed to include itself
-        $packet = pack('NCa*', $packet_length - 4, $padding_length, $data . $padding);
-
-        $hmac = $this->hmac_create !== false ? $this->hmac_create->hash(pack('Na*', $this->send_seq_no, $packet)) : '';
-        $this->send_seq_no++;
-
-        if ($this->encrypt !== false) {
-            $packet = $this->encrypt->encrypt($packet);
-        }
-
-        $packet.= $hmac;
-
-        $start = microtime(true);
-        $result = strlen($packet) == fputs($this->fsock, $packet);
-        $stop = microtime(true);
-
-        if (defined('NET_SSH2_LOGGING')) {
-            $current = microtime(true);
-            $message_number = isset($this->message_numbers[ord($data[0])]) ? $this->message_numbers[ord($data[0])] : 'UNKNOWN (' . ord($data[0]) . ')';
-            $message_number = '-> ' . $message_number .
-                              ' (since last: ' . round($current - $this->last_packet, 4) . ', network: ' . round($stop - $start, 4) . 's)';
-            $this->_append_log($message_number, isset($logged) ? $logged : $data);
-            $this->last_packet = $current;
-        }
-
-        return $result;
-    }
-
-    /**
-     * Logs data packets
-     *
-     * Makes sure that only the last 1MB worth of packets will be logged
-     *
-     * @param string $data
-     * @access private
-     */
-    function _append_log($message_number, $message)
-    {
-        // remove the byte identifying the message type from all but the first two messages (ie. the identification strings)
-        if (strlen($message_number) > 2) {
-            $this->_string_shift($message);
-        }
-
-        switch (NET_SSH2_LOGGING) {
-            // useful for benchmarks
-            case self::LOG_SIMPLE:
-                $this->message_number_log[] = $message_number;
-                break;
-            // the most useful log for SSH2
-            case self::LOG_COMPLEX:
-                $this->message_number_log[] = $message_number;
-                $this->log_size+= strlen($message);
-                $this->message_log[] = $message;
-                while ($this->log_size > self::LOG_MAX_SIZE) {
-                    $this->log_size-= strlen(array_shift($this->message_log));
-                    array_shift($this->message_number_log);
-                }
-                break;
-            // dump the output out realtime; packets may be interspersed with non packets,
-            // passwords won't be filtered out and select other packets may not be correctly
-            // identified
-            case self::LOG_REALTIME:
-                switch (PHP_SAPI) {
-                    case 'cli':
-                        $start = $stop = "\r\n";
-                        break;
-                    default:
-                        $start = '<pre>';
-                        $stop = '</pre>';
-                }
-                echo $start . $this->_format_log(array($message), array($message_number)) . $stop;
-                @flush();
-                @ob_flush();
-                break;
-            // basically the same thing as self::LOG_REALTIME with the caveat that self::LOG_REALTIME_FILE
-            // needs to be defined and that the resultant log file will be capped out at self::LOG_MAX_SIZE.
-            // the earliest part of the log file is denoted by the first <<< START >>> and is not going to necessarily
-            // at the beginning of the file
-            case self::LOG_REALTIME_FILE:
-                if (!isset($this->realtime_log_file)) {
-                    // PHP doesn't seem to like using constants in fopen()
-                    $filename = self::LOG_REALTIME_FILENAME;
-                    $fp = fopen($filename, 'w');
-                    $this->realtime_log_file = $fp;
-                }
-                if (!is_resource($this->realtime_log_file)) {
-                    break;
-                }
-                $entry = $this->_format_log(array($message), array($message_number));
-                if ($this->realtime_log_wrap) {
-                    $temp = "<<< START >>>\r\n";
-                    $entry.= $temp;
-                    fseek($this->realtime_log_file, ftell($this->realtime_log_file) - strlen($temp));
-                }
-                $this->realtime_log_size+= strlen($entry);
-                if ($this->realtime_log_size > self::LOG_MAX_SIZE) {
-                    fseek($this->realtime_log_file, 0);
-                    $this->realtime_log_size = strlen($entry);
-                    $this->realtime_log_wrap = true;
-                }
-                fputs($this->realtime_log_file, $entry);
-        }
-    }
-
-    /**
-     * Sends channel data
-     *
-     * Spans multiple SSH_MSG_CHANNEL_DATAs if appropriate
-     *
-     * @param int $client_channel
-     * @param string $data
-     * @return bool
-     * @access private
-     */
-    function _send_channel_packet($client_channel, $data)
-    {
-        while (strlen($data)) {
-            if (!$this->window_size_client_to_server[$client_channel]) {
-                $this->bitmap^= self::MASK_WINDOW_ADJUST;
-                // using an invalid channel will let the buffers be built up for the valid channels
-                $this->_get_channel_packet(-1);
-                $this->bitmap^= self::MASK_WINDOW_ADJUST;
-            }
-
-            /* The maximum amount of data allowed is determined by the maximum
-               packet size for the channel, and the current window size, whichever
-               is smaller.
-                 -- http://tools.ietf.org/html/rfc4254#section-5.2 */
-            $max_size = min(
-                $this->packet_size_client_to_server[$client_channel],
-                $this->window_size_client_to_server[$client_channel]
-            );
-
-            $temp = $this->_string_shift($data, $max_size);
-            $packet = pack(
-                'CN2a*',
-                NET_SSH2_MSG_CHANNEL_DATA,
-                $this->server_channels[$client_channel],
-                strlen($temp),
-                $temp
-            );
-            $this->window_size_client_to_server[$client_channel]-= strlen($temp);
-            if (!$this->_send_binary_packet($packet)) {
-                return false;
-            }
-        }
-
-        return true;
-    }
-
-    /**
-     * Closes and flushes a channel
-     *
-     * \phpseclib\Net\SSH2 doesn't properly close most channels.  For exec() channels are normally closed by the server
-     * and for SFTP channels are presumably closed when the client disconnects.  This functions is intended
-     * for SCP more than anything.
-     *
-     * @param int $client_channel
-     * @param bool $want_reply
-     * @return bool
-     * @access private
-     */
-    function _close_channel($client_channel, $want_reply = false)
-    {
-        // see http://tools.ietf.org/html/rfc4254#section-5.3
-
-        $this->_send_binary_packet(pack('CN', NET_SSH2_MSG_CHANNEL_EOF, $this->server_channels[$client_channel]));
-
-        if (!$want_reply) {
-            $this->_send_binary_packet(pack('CN', NET_SSH2_MSG_CHANNEL_CLOSE, $this->server_channels[$client_channel]));
-        }
-
-        $this->channel_status[$client_channel] = NET_SSH2_MSG_CHANNEL_CLOSE;
-
-        $this->curTimeout = 0;
-
-        while (!is_bool($this->_get_channel_packet($client_channel))) {
-        }
-
-        if ($want_reply) {
-            $this->_send_binary_packet(pack('CN', NET_SSH2_MSG_CHANNEL_CLOSE, $this->server_channels[$client_channel]));
-        }
-
-        if ($this->bitmap & self::MASK_SHELL) {
-            $this->bitmap&= ~self::MASK_SHELL;
-        }
-    }
-
-    /**
-     * Disconnect
-     *
-     * @param int $reason
-     * @return bool
-     * @access private
-     */
-    function _disconnect($reason)
-    {
-        if ($this->bitmap & self::MASK_CONNECTED) {
-            $data = pack('CNNa*Na*', NET_SSH2_MSG_DISCONNECT, $reason, 0, '', 0, '');
-            $this->_send_binary_packet($data);
-            $this->bitmap = 0;
-            fclose($this->fsock);
-            return false;
-        }
-    }
-
-    /**
-     * String Shift
-     *
-     * Inspired by array_shift
-     *
-     * @param string $string
-     * @param int $index
-     * @return string
-     * @access private
-     */
-    function _string_shift(&$string, $index = 1)
-    {
-        $substr = substr($string, 0, $index);
-        $string = substr($string, $index);
-        return $substr;
-    }
-
-    /**
-     * Define Array
-     *
-     * Takes any number of arrays whose indices are integers and whose values are strings and defines a bunch of
-     * named constants from it, using the value as the name of the constant and the index as the value of the constant.
-     * If any of the constants that would be defined already exists, none of the constants will be defined.
-     *
-     * @param array $array
-     * @access private
-     */
-    function _define_array()
-    {
-        $args = func_get_args();
-        foreach ($args as $arg) {
-            foreach ($arg as $key => $value) {
-                if (!defined($value)) {
-                    define($value, $key);
-                } else {
-                    break 2;
-                }
-            }
-        }
-    }
-
-    /**
-     * Returns a log of the packets that have been sent and received.
-     *
-     * Returns a string if NET_SSH2_LOGGING == self::LOG_COMPLEX, an array if NET_SSH2_LOGGING == self::LOG_SIMPLE and false if !defined('NET_SSH2_LOGGING')
-     *
-     * @access public
-     * @return array|false|string
-     */
-    function getLog()
-    {
-        if (!defined('NET_SSH2_LOGGING')) {
-            return false;
-        }
-
-        switch (NET_SSH2_LOGGING) {
-            case self::LOG_SIMPLE:
-                return $this->message_number_log;
-            case self::LOG_COMPLEX:
-                $log = $this->_format_log($this->message_log, $this->message_number_log);
-                return PHP_SAPI == 'cli' ? $log : '<pre>' . $log . '</pre>';
-            default:
-                return false;
-        }
-    }
-
-    /**
-     * Formats a log for printing
-     *
-     * @param array $message_log
-     * @param array $message_number_log
-     * @access private
-     * @return string
-     */
-    function _format_log($message_log, $message_number_log)
-    {
-        $output = '';
-        for ($i = 0; $i < count($message_log); $i++) {
-            $output.= $message_number_log[$i] . "\r\n";
-            $current_log = $message_log[$i];
-            $j = 0;
-            do {
-                if (strlen($current_log)) {
-                    $output.= str_pad(dechex($j), 7, '0', STR_PAD_LEFT) . '0  ';
-                }
-                $fragment = $this->_string_shift($current_log, $this->log_short_width);
-                $hex = substr(preg_replace_callback('#.#s', array($this, '_format_log_helper'), $fragment), strlen($this->log_boundary));
-                // replace non ASCII printable characters with dots
-                // http://en.wikipedia.org/wiki/ASCII#ASCII_printable_characters
-                // also replace < with a . since < messes up the output on web browsers
-                $raw = preg_replace('#[^\x20-\x7E]|<#', '.', $fragment);
-                $output.= str_pad($hex, $this->log_long_width - $this->log_short_width, ' ') . $raw . "\r\n";
-                $j++;
-            } while (strlen($current_log));
-            $output.= "\r\n";
-        }
-
-        return $output;
-    }
-
-    /**
-     * Helper function for _format_log
-     *
-     * For use with preg_replace_callback()
-     *
-     * @param array $matches
-     * @access private
-     * @return string
-     */
-    function _format_log_helper($matches)
-    {
-        return $this->log_boundary . str_pad(dechex(ord($matches[0])), 2, '0', STR_PAD_LEFT);
-    }
-
-    /**
-     * Helper function for agent->_on_channel_open()
-     *
-     * Used when channels are created to inform agent
-     * of said channel opening. Must be called after
-     * channel open confirmation received
-     *
-     * @access private
-     */
-    function _on_channel_open()
-    {
-        if (isset($this->agent)) {
-            $this->agent->_on_channel_open($this);
-        }
-    }
-
-    /**
-     * Returns the first value of the intersection of two arrays or false if
-     * the intersection is empty. The order is defined by the first parameter.
-     *
-     * @param array $array1
-     * @param array $array2
-     * @return mixed False if intersection is empty, else intersected value.
-     * @access private
-     */
-    function _array_intersect_first($array1, $array2)
-    {
-        foreach ($array1 as $value) {
-            if (in_array($value, $array2)) {
-                return $value;
-            }
-        }
-        return false;
-    }
-
-    /**
-     * Returns all errors
-     *
-     * @return string[]
-     * @access public
-     */
-    function getErrors()
-    {
-        return $this->errors;
-    }
-
-    /**
-     * Returns the last error
-     *
-     * @return string
-     * @access public
-     */
-    function getLastError()
-    {
-        $count = count($this->errors);
-
-        if ($count > 0) {
-            return $this->errors[$count - 1];
-        }
-    }
-
-    /**
-     * Return the server identification.
-     *
-     * @return string
-     * @access public
-     */
-    function getServerIdentification()
-    {
-        $this->_connect();
-
-        return $this->server_identifier;
-    }
-
-    /**
-     * Return a list of the key exchange algorithms the server supports.
-     *
-     * @return array
-     * @access public
-     */
-    function getKexAlgorithms()
-    {
-        $this->_connect();
-
-        return $this->kex_algorithms;
-    }
-
-    /**
-     * Return a list of the host key (public key) algorithms the server supports.
-     *
-     * @return array
-     * @access public
-     */
-    function getServerHostKeyAlgorithms()
-    {
-        $this->_connect();
-
-        return $this->server_host_key_algorithms;
-    }
-
-    /**
-     * Return a list of the (symmetric key) encryption algorithms the server supports, when receiving stuff from the client.
-     *
-     * @return array
-     * @access public
-     */
-    function getEncryptionAlgorithmsClient2Server()
-    {
-        $this->_connect();
-
-        return $this->encryption_algorithms_client_to_server;
-    }
-
-    /**
-     * Return a list of the (symmetric key) encryption algorithms the server supports, when sending stuff to the client.
-     *
-     * @return array
-     * @access public
-     */
-    function getEncryptionAlgorithmsServer2Client()
-    {
-        $this->_connect();
-
-        return $this->encryption_algorithms_server_to_client;
-    }
-
-    /**
-     * Return a list of the MAC algorithms the server supports, when receiving stuff from the client.
-     *
-     * @return array
-     * @access public
-     */
-    function getMACAlgorithmsClient2Server()
-    {
-        $this->_connect();
-
-        return $this->mac_algorithms_client_to_server;
-    }
-
-    /**
-     * Return a list of the MAC algorithms the server supports, when sending stuff to the client.
-     *
-     * @return array
-     * @access public
-     */
-    function getMACAlgorithmsServer2Client()
-    {
-        $this->_connect();
-
-        return $this->mac_algorithms_server_to_client;
-    }
-
-    /**
-     * Return a list of the compression algorithms the server supports, when receiving stuff from the client.
-     *
-     * @return array
-     * @access public
-     */
-    function getCompressionAlgorithmsClient2Server()
-    {
-        $this->_connect();
-
-        return $this->compression_algorithms_client_to_server;
-    }
-
-    /**
-     * Return a list of the compression algorithms the server supports, when sending stuff to the client.
-     *
-     * @return array
-     * @access public
-     */
-    function getCompressionAlgorithmsServer2Client()
-    {
-        $this->_connect();
-
-        return $this->compression_algorithms_server_to_client;
-    }
-
-    /**
-     * Return a list of the languages the server supports, when sending stuff to the client.
-     *
-     * @return array
-     * @access public
-     */
-    function getLanguagesServer2Client()
-    {
-        $this->_connect();
-
-        return $this->languages_server_to_client;
-    }
-
-    /**
-     * Return a list of the languages the server supports, when receiving stuff from the client.
-     *
-     * @return array
-     * @access public
-     */
-    function getLanguagesClient2Server()
-    {
-        $this->_connect();
-
-        return $this->languages_client_to_server;
-    }
-
-    /**
-     * Returns the banner message.
-     *
-     * Quoting from the RFC, "in some jurisdictions, sending a warning message before
-     * authentication may be relevant for getting legal protection."
-     *
-     * @return string
-     * @access public
-     */
-    function getBannerMessage()
-    {
-        return $this->banner_message;
-    }
-
-    /**
-     * Returns the server public host key.
-     *
-     * Caching this the first time you connect to a server and checking the result on subsequent connections
-     * is recommended.  Returns false if the server signature is not signed correctly with the public host key.
-     *
-     * @return mixed
-     * @access public
-     */
-    function getServerPublicHostKey()
-    {
-        if (!($this->bitmap & self::MASK_CONSTRUCTOR)) {
-            if (!$this->_connect()) {
-                return false;
-            }
-        }
-
-        $signature = $this->signature;
-        $server_public_host_key = $this->server_public_host_key;
-
-        if (strlen($server_public_host_key) < 4) {
-            return false;
-        }
-        extract(unpack('Nlength', $this->_string_shift($server_public_host_key, 4)));
-        $this->_string_shift($server_public_host_key, $length);
-
-        if ($this->signature_validated) {
-            return $this->bitmap ?
-                $this->signature_format . ' ' . base64_encode($this->server_public_host_key) :
-                false;
-        }
-
-        $this->signature_validated = true;
-
-        switch ($this->signature_format) {
-            case 'ssh-dss':
-                $zero = new BigInteger();
-
-                if (strlen($server_public_host_key) < 4) {
-                    return false;
-                }
-                $temp = unpack('Nlength', $this->_string_shift($server_public_host_key, 4));
-                $p = new BigInteger($this->_string_shift($server_public_host_key, $temp['length']), -256);
-
-                if (strlen($server_public_host_key) < 4) {
-                    return false;
-                }
-                $temp = unpack('Nlength', $this->_string_shift($server_public_host_key, 4));
-                $q = new BigInteger($this->_string_shift($server_public_host_key, $temp['length']), -256);
-
-                if (strlen($server_public_host_key) < 4) {
-                    return false;
-                }
-                $temp = unpack('Nlength', $this->_string_shift($server_public_host_key, 4));
-                $g = new BigInteger($this->_string_shift($server_public_host_key, $temp['length']), -256);
-
-                if (strlen($server_public_host_key) < 4) {
-                    return false;
-                }
-                $temp = unpack('Nlength', $this->_string_shift($server_public_host_key, 4));
-                $y = new BigInteger($this->_string_shift($server_public_host_key, $temp['length']), -256);
-
-                /* The value for 'dss_signature_blob' is encoded as a string containing
-                   r, followed by s (which are 160-bit integers, without lengths or
-                   padding, unsigned, and in network byte order). */
-                $temp = unpack('Nlength', $this->_string_shift($signature, 4));
-                if ($temp['length'] != 40) {
-                    user_error('Invalid signature');
-                    return $this->_disconnect(NET_SSH2_DISCONNECT_KEY_EXCHANGE_FAILED);
-                }
-
-                $r = new BigInteger($this->_string_shift($signature, 20), 256);
-                $s = new BigInteger($this->_string_shift($signature, 20), 256);
-
-                switch (true) {
-                    case $r->equals($zero):
-                    case $r->compare($q) >= 0:
-                    case $s->equals($zero):
-                    case $s->compare($q) >= 0:
-                        user_error('Invalid signature');
-                        return $this->_disconnect(NET_SSH2_DISCONNECT_KEY_EXCHANGE_FAILED);
-                }
-
-                $w = $s->modInverse($q);
-
-                $u1 = $w->multiply(new BigInteger(sha1($this->exchange_hash), 16));
-                list(, $u1) = $u1->divide($q);
-
-                $u2 = $w->multiply($r);
-                list(, $u2) = $u2->divide($q);
-
-                $g = $g->modPow($u1, $p);
-                $y = $y->modPow($u2, $p);
-
-                $v = $g->multiply($y);
-                list(, $v) = $v->divide($p);
-                list(, $v) = $v->divide($q);
-
-                if (!$v->equals($r)) {
-                    user_error('Bad server signature');
-                    return $this->_disconnect(NET_SSH2_DISCONNECT_HOST_KEY_NOT_VERIFIABLE);
-                }
-
-                break;
-            case 'ssh-rsa':
-                if (strlen($server_public_host_key) < 4) {
-                    return false;
-                }
-                $temp = unpack('Nlength', $this->_string_shift($server_public_host_key, 4));
-                $e = new BigInteger($this->_string_shift($server_public_host_key, $temp['length']), -256);
-
-                if (strlen($server_public_host_key) < 4) {
-                    return false;
-                }
-                $temp = unpack('Nlength', $this->_string_shift($server_public_host_key, 4));
-                $rawN = $this->_string_shift($server_public_host_key, $temp['length']);
-                $n = new BigInteger($rawN, -256);
-                $nLength = strlen(ltrim($rawN, "\0"));
-
-                /*
-                if (strlen($signature) < 4) {
-                    return false;
-                }
-                $temp = unpack('Nlength', $this->_string_shift($signature, 4));
-                $signature = $this->_string_shift($signature, $temp['length']);
-
-                $rsa = new RSA();
-                $rsa->setSignatureMode(RSA::SIGNATURE_PKCS1);
-                $rsa->loadKey(array('e' => $e, 'n' => $n), RSA::PUBLIC_FORMAT_RAW);
-                if (!$rsa->verify($this->exchange_hash, $signature)) {
-                    user_error('Bad server signature');
-                    return $this->_disconnect(NET_SSH2_DISCONNECT_HOST_KEY_NOT_VERIFIABLE);
-                }
-                */
-
-                if (strlen($signature) < 4) {
-                    return false;
-                }
-                $temp = unpack('Nlength', $this->_string_shift($signature, 4));
-                $s = new BigInteger($this->_string_shift($signature, $temp['length']), 256);
-
-                // validate an RSA signature per "8.2 RSASSA-PKCS1-v1_5", "5.2.2 RSAVP1", and "9.1 EMSA-PSS" in the
-                // following URL:
-                // ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-1/pkcs-1v2-1.pdf
-
-                // also, see SSHRSA.c (rsa2_verifysig) in PuTTy's source.
-
-                if ($s->compare(new BigInteger()) < 0 || $s->compare($n->subtract(new BigInteger(1))) > 0) {
-                    user_error('Invalid signature');
-                    return $this->_disconnect(NET_SSH2_DISCONNECT_KEY_EXCHANGE_FAILED);
-                }
-
-                $s = $s->modPow($e, $n);
-                $s = $s->toBytes();
-
-                $h = pack('N4H*', 0x00302130, 0x0906052B, 0x0E03021A, 0x05000414, sha1($this->exchange_hash));
-                $h = chr(0x01) . str_repeat(chr(0xFF), $nLength - 2 - strlen($h)) . $h;
-
-                if ($s != $h) {
-                    user_error('Bad server signature');
-                    return $this->_disconnect(NET_SSH2_DISCONNECT_HOST_KEY_NOT_VERIFIABLE);
-                }
-                break;
-            default:
-                user_error('Unsupported signature format');
-                return $this->_disconnect(NET_SSH2_DISCONNECT_HOST_KEY_NOT_VERIFIABLE);
-        }
-
-        return $this->signature_format . ' ' . base64_encode($this->server_public_host_key);
-    }
-
-    /**
-     * Returns the exit status of an SSH command or false.
-     *
-     * @return false|int
-     * @access public
-     */
-    function getExitStatus()
-    {
-        if (is_null($this->exit_status)) {
-            return false;
-        }
-        return $this->exit_status;
-    }
-
-    /**
-     * Returns the number of columns for the terminal window size.
-     *
-     * @return int
-     * @access public
-     */
-    function getWindowColumns()
-    {
-        return $this->windowColumns;
-    }
-
-    /**
-     * Returns the number of rows for the terminal window size.
-     *
-     * @return int
-     * @access public
-     */
-    function getWindowRows()
-    {
-        return $this->windowRows;
-    }
-
-    /**
-     * Sets the number of columns for the terminal window size.
-     *
-     * @param int $value
-     * @access public
-     */
-    function setWindowColumns($value)
-    {
-        $this->windowColumns = $value;
-    }
-
-    /**
-     * Sets the number of rows for the terminal window size.
-     *
-     * @param int $value
-     * @access public
-     */
-    function setWindowRows($value)
-    {
-        $this->windowRows = $value;
-    }
-
-    /**
-     * Sets the number of columns and rows for the terminal window size.
-     *
-     * @param int $columns
-     * @param int $rows
-     * @access public
-     */
-    function setWindowSize($columns = 80, $rows = 24)
-    {
-        $this->windowColumns = $columns;
-        $this->windowRows = $rows;
-    }
-}
diff --git a/wiki/vendor/phpseclib/phpseclib/phpseclib/System/SSH/Agent.php b/wiki/vendor/phpseclib/phpseclib/phpseclib/System/SSH/Agent.php
deleted file mode 100644
index a4ff054..0000000
--- a/wiki/vendor/phpseclib/phpseclib/phpseclib/System/SSH/Agent.php
+++ /dev/null
@@ -1,308 +0,0 @@
-<?php
-
-/**
- * Pure-PHP ssh-agent client.
- *
- * PHP version 5
- *
- * Here are some examples of how to use this library:
- * <code>
- * <?php
- *    include 'vendor/autoload.php';
- *
- *    $agent = new \phpseclib\System\SSH\Agent();
- *
- *    $ssh = new \phpseclib\Net\SSH2('www.domain.tld');
- *    if (!$ssh->login('username', $agent)) {
- *        exit('Login Failed');
- *    }
- *
- *    echo $ssh->exec('pwd');
- *    echo $ssh->exec('ls -la');
- * ?>
- * </code>
- *
- * @category  System
- * @package   SSH\Agent
- * @author    Jim Wigginton <terrafrost@php.net>
- * @copyright 2014 Jim Wigginton
- * @license   http://www.opensource.org/licenses/mit-license.html  MIT License
- * @link      http://phpseclib.sourceforge.net
- * @internal  See http://api.libssh.org/rfc/PROTOCOL.agent
- */
-
-namespace phpseclib\System\SSH;
-
-use phpseclib\Crypt\RSA;
-use phpseclib\System\SSH\Agent\Identity;
-
-/**
- * Pure-PHP ssh-agent client identity factory
- *
- * requestIdentities() method pumps out \phpseclib\System\SSH\Agent\Identity objects
- *
- * @package SSH\Agent
- * @author  Jim Wigginton <terrafrost@php.net>
- * @access  internal
- */
-class Agent
-{
-    /**#@+
-     * Message numbers
-     *
-     * @access private
-     */
-    // to request SSH1 keys you have to use SSH_AGENTC_REQUEST_RSA_IDENTITIES (1)
-    const SSH_AGENTC_REQUEST_IDENTITIES = 11;
-    // this is the SSH2 response; the SSH1 response is SSH_AGENT_RSA_IDENTITIES_ANSWER (2).
-    const SSH_AGENT_IDENTITIES_ANSWER = 12;
-    // the SSH1 request is SSH_AGENTC_RSA_CHALLENGE (3)
-    const SSH_AGENTC_SIGN_REQUEST = 13;
-    // the SSH1 response is SSH_AGENT_RSA_RESPONSE (4)
-    const SSH_AGENT_SIGN_RESPONSE = 14;
-    /**#@-*/
-
-    /**@+
-     * Agent forwarding status
-     *
-     * @access private
-     */
-    // no forwarding requested and not active
-    const FORWARD_NONE = 0;
-    // request agent forwarding when opportune
-    const FORWARD_REQUEST = 1;
-    // forwarding has been request and is active
-    const FORWARD_ACTIVE = 2;
-    /**#@-*/
-
-    /**
-     * Unused
-     */
-    const SSH_AGENT_FAILURE = 5;
-
-    /**
-     * Socket Resource
-     *
-     * @var resource
-     * @access private
-     */
-    var $fsock;
-
-    /**
-     * Agent forwarding status
-     *
-     * @access private
-     */
-    var $forward_status = self::FORWARD_NONE;
-
-    /**
-     * Buffer for accumulating forwarded authentication
-     * agent data arriving on SSH data channel destined
-     * for agent unix socket
-     *
-     * @access private
-     */
-    var $socket_buffer = '';
-
-    /**
-     * Tracking the number of bytes we are expecting
-     * to arrive for the agent socket on the SSH data
-     * channel
-     */
-    var $expected_bytes = 0;
-
-    /**
-     * Default Constructor
-     *
-     * @return \phpseclib\System\SSH\Agent
-     * @access public
-     */
-    function __construct()
-    {
-        switch (true) {
-            case isset($_SERVER['SSH_AUTH_SOCK']):
-                $address = $_SERVER['SSH_AUTH_SOCK'];
-                break;
-            case isset($_ENV['SSH_AUTH_SOCK']):
-                $address = $_ENV['SSH_AUTH_SOCK'];
-                break;
-            default:
-                user_error('SSH_AUTH_SOCK not found');
-                return false;
-        }
-
-        $this->fsock = fsockopen('unix://' . $address, 0, $errno, $errstr);
-        if (!$this->fsock) {
-            user_error("Unable to connect to ssh-agent (Error $errno: $errstr)");
-        }
-    }
-
-    /**
-     * Request Identities
-     *
-     * See "2.5.2 Requesting a list of protocol 2 keys"
-     * Returns an array containing zero or more \phpseclib\System\SSH\Agent\Identity objects
-     *
-     * @return array
-     * @access public
-     */
-    function requestIdentities()
-    {
-        if (!$this->fsock) {
-            return array();
-        }
-
-        $packet = pack('NC', 1, self::SSH_AGENTC_REQUEST_IDENTITIES);
-        if (strlen($packet) != fputs($this->fsock, $packet)) {
-            user_error('Connection closed while requesting identities');
-        }
-
-        $length = current(unpack('N', fread($this->fsock, 4)));
-        $type = ord(fread($this->fsock, 1));
-        if ($type != self::SSH_AGENT_IDENTITIES_ANSWER) {
-            user_error('Unable to request identities');
-        }
-
-        $identities = array();
-        $keyCount = current(unpack('N', fread($this->fsock, 4)));
-        for ($i = 0; $i < $keyCount; $i++) {
-            $length = current(unpack('N', fread($this->fsock, 4)));
-            $key_blob = fread($this->fsock, $length);
-            $key_str = 'ssh-rsa ' . base64_encode($key_blob);
-            $length = current(unpack('N', fread($this->fsock, 4)));
-            if ($length) {
-                $key_str.= ' ' . fread($this->fsock, $length);
-            }
-            $length = current(unpack('N', substr($key_blob, 0, 4)));
-            $key_type = substr($key_blob, 4, $length);
-            switch ($key_type) {
-                case 'ssh-rsa':
-                    $key = new RSA();
-                    $key->loadKey($key_str);
-                    break;
-                case 'ssh-dss':
-                    // not currently supported
-                    break;
-            }
-            // resources are passed by reference by default
-            if (isset($key)) {
-                $identity = new Identity($this->fsock);
-                $identity->setPublicKey($key);
-                $identity->setPublicKeyBlob($key_blob);
-                $identities[] = $identity;
-                unset($key);
-            }
-        }
-
-        return $identities;
-    }
-
-    /**
-     * Signal that agent forwarding should
-     * be requested when a channel is opened
-     *
-     * @param Net_SSH2 $ssh
-     * @return bool
-     * @access public
-     */
-    function startSSHForwarding($ssh)
-    {
-        if ($this->forward_status == self::FORWARD_NONE) {
-            $this->forward_status = self::FORWARD_REQUEST;
-        }
-    }
-
-    /**
-     * Request agent forwarding of remote server
-     *
-     * @param Net_SSH2 $ssh
-     * @return bool
-     * @access private
-     */
-    function _request_forwarding($ssh)
-    {
-        $request_channel = $ssh->_get_open_channel();
-        if ($request_channel === false) {
-            return false;
-        }
-
-        $packet = pack(
-            'CNNa*C',
-            NET_SSH2_MSG_CHANNEL_REQUEST,
-            $ssh->server_channels[$request_channel],
-            strlen('auth-agent-req@openssh.com'),
-            'auth-agent-req@openssh.com',
-            1
-        );
-
-        $ssh->channel_status[$request_channel] = NET_SSH2_MSG_CHANNEL_REQUEST;
-
-        if (!$ssh->_send_binary_packet($packet)) {
-            return false;
-        }
-
-        $response = $ssh->_get_channel_packet($request_channel);
-        if ($response === false) {
-            return false;
-        }
-
-        $ssh->channel_status[$request_channel] = NET_SSH2_MSG_CHANNEL_OPEN;
-        $this->forward_status = self::FORWARD_ACTIVE;
-
-        return true;
-    }
-
-    /**
-     * On successful channel open
-     *
-     * This method is called upon successful channel
-     * open to give the SSH Agent an opportunity
-     * to take further action. i.e. request agent forwarding
-     *
-     * @param Net_SSH2 $ssh
-     * @access private
-     */
-    function _on_channel_open($ssh)
-    {
-        if ($this->forward_status == self::FORWARD_REQUEST) {
-            $this->_request_forwarding($ssh);
-        }
-    }
-
-    /**
-     * Forward data to SSH Agent and return data reply
-     *
-     * @param string $data
-     * @return data from SSH Agent
-     * @access private
-     */
-    function _forward_data($data)
-    {
-        if ($this->expected_bytes > 0) {
-            $this->socket_buffer.= $data;
-            $this->expected_bytes -= strlen($data);
-        } else {
-            $agent_data_bytes = current(unpack('N', $data));
-            $current_data_bytes = strlen($data);
-            $this->socket_buffer = $data;
-            if ($current_data_bytes != $agent_data_bytes + 4) {
-                $this->expected_bytes = ($agent_data_bytes + 4) - $current_data_bytes;
-                return false;
-            }
-        }
-
-        if (strlen($this->socket_buffer) != fwrite($this->fsock, $this->socket_buffer)) {
-            user_error('Connection closed attempting to forward data to SSH agent');
-        }
-
-        $this->socket_buffer = '';
-        $this->expected_bytes = 0;
-
-        $agent_reply_bytes = current(unpack('N', fread($this->fsock, 4)));
-
-        $agent_reply_data = fread($this->fsock, $agent_reply_bytes);
-        $agent_reply_data = current(unpack('a*', $agent_reply_data));
-
-        return pack('Na*', $agent_reply_bytes, $agent_reply_data);
-    }
-}
diff --git a/wiki/vendor/phpseclib/phpseclib/phpseclib/System/SSH/Agent/Identity.php b/wiki/vendor/phpseclib/phpseclib/phpseclib/System/SSH/Agent/Identity.php
deleted file mode 100644
index b8cc6cd..0000000
--- a/wiki/vendor/phpseclib/phpseclib/phpseclib/System/SSH/Agent/Identity.php
+++ /dev/null
@@ -1,158 +0,0 @@
-<?php
-/**
- * Pure-PHP ssh-agent client.
- *
- * PHP version 5
- *
- * @category  System
- * @package   SSH\Agent
- * @author    Jim Wigginton <terrafrost@php.net>
- * @copyright 2009 Jim Wigginton
- * @license   http://www.opensource.org/licenses/mit-license.html  MIT License
- * @link      http://phpseclib.sourceforge.net
- * @internal  See http://api.libssh.org/rfc/PROTOCOL.agent
- */
-
-namespace phpseclib\System\SSH\Agent;
-
-use phpseclib\System\SSH\Agent;
-
-/**
- * Pure-PHP ssh-agent client identity object
- *
- * Instantiation should only be performed by \phpseclib\System\SSH\Agent class.
- * This could be thought of as implementing an interface that phpseclib\Crypt\RSA
- * implements. ie. maybe a Net_SSH_Auth_PublicKey interface or something.
- * The methods in this interface would be getPublicKey and sign since those are the
- * methods phpseclib looks for to perform public key authentication.
- *
- * @package SSH\Agent
- * @author  Jim Wigginton <terrafrost@php.net>
- * @access  internal
- */
-class Identity
-{
-    /**
-     * Key Object
-     *
-     * @var \phpseclib\Crypt\RSA
-     * @access private
-     * @see self::getPublicKey()
-     */
-    var $key;
-
-    /**
-     * Key Blob
-     *
-     * @var string
-     * @access private
-     * @see self::sign()
-     */
-    var $key_blob;
-
-    /**
-     * Socket Resource
-     *
-     * @var resource
-     * @access private
-     * @see self::sign()
-     */
-    var $fsock;
-
-    /**
-     * Default Constructor.
-     *
-     * @param resource $fsock
-     * @return \phpseclib\System\SSH\Agent\Identity
-     * @access private
-     */
-    function __construct($fsock)
-    {
-        $this->fsock = $fsock;
-    }
-
-    /**
-     * Set Public Key
-     *
-     * Called by \phpseclib\System\SSH\Agent::requestIdentities()
-     *
-     * @param \phpseclib\Crypt\RSA $key
-     * @access private
-     */
-    function setPublicKey($key)
-    {
-        $this->key = $key;
-        $this->key->setPublicKey();
-    }
-
-    /**
-     * Set Public Key
-     *
-     * Called by \phpseclib\System\SSH\Agent::requestIdentities(). The key blob could be extracted from $this->key
-     * but this saves a small amount of computation.
-     *
-     * @param string $key_blob
-     * @access private
-     */
-    function setPublicKeyBlob($key_blob)
-    {
-        $this->key_blob = $key_blob;
-    }
-
-    /**
-     * Get Public Key
-     *
-     * Wrapper for $this->key->getPublicKey()
-     *
-     * @param int $format optional
-     * @return mixed
-     * @access public
-     */
-    function getPublicKey($format = null)
-    {
-        return !isset($format) ? $this->key->getPublicKey() : $this->key->getPublicKey($format);
-    }
-
-    /**
-     * Set Signature Mode
-     *
-     * Doesn't do anything as ssh-agent doesn't let you pick and choose the signature mode. ie.
-     * ssh-agent's only supported mode is \phpseclib\Crypt\RSA::SIGNATURE_PKCS1
-     *
-     * @param int $mode
-     * @access public
-     */
-    function setSignatureMode($mode)
-    {
-    }
-
-    /**
-     * Create a signature
-     *
-     * See "2.6.2 Protocol 2 private key signature request"
-     *
-     * @param string $message
-     * @return string
-     * @access public
-     */
-    function sign($message)
-    {
-        // the last parameter (currently 0) is for flags and ssh-agent only defines one flag (for ssh-dss): SSH_AGENT_OLD_SIGNATURE
-        $packet = pack('CNa*Na*N', Agent::SSH_AGENTC_SIGN_REQUEST, strlen($this->key_blob), $this->key_blob, strlen($message), $message, 0);
-        $packet = pack('Na*', strlen($packet), $packet);
-        if (strlen($packet) != fputs($this->fsock, $packet)) {
-            user_error('Connection closed during signing');
-        }
-
-        $length = current(unpack('N', fread($this->fsock, 4)));
-        $type = ord(fread($this->fsock, 1));
-        if ($type != Agent::SSH_AGENT_SIGN_RESPONSE) {
-            user_error('Unable to retrieve signature');
-        }
-
-        $signature_blob = fread($this->fsock, $length - 1);
-        // the only other signature format defined - ssh-dss - is the same length as ssh-rsa
-        // the + 12 is for the other various SSH added length fields
-        return substr($signature_blob, strlen('ssh-rsa') + 12);
-    }
-}
diff --git a/wiki/vendor/phpseclib/phpseclib/phpseclib/bootstrap.php b/wiki/vendor/phpseclib/phpseclib/phpseclib/bootstrap.php
deleted file mode 100644
index 0da0999..0000000
--- a/wiki/vendor/phpseclib/phpseclib/phpseclib/bootstrap.php
+++ /dev/null
@@ -1,16 +0,0 @@
-<?php
-/**
- * Bootstrapping File for phpseclib
- *
- * @license http://www.opensource.org/licenses/mit-license.html MIT License
- */
-
-if (extension_loaded('mbstring')) {
-    // 2 - MB_OVERLOAD_STRING
-    if (ini_get('mbstring.func_overload') & 2) {
-        throw new \UnexpectedValueException(
-            'Overloading of string functions using mbstring.func_overload ' .
-            'is not supported by phpseclib.'
-        );
-    }
-}
diff --git a/wiki/vendor/phpseclib/phpseclib/phpseclib/openssl.cnf b/wiki/vendor/phpseclib/phpseclib/phpseclib/openssl.cnf
deleted file mode 100644
index 2b8b52f..0000000
--- a/wiki/vendor/phpseclib/phpseclib/phpseclib/openssl.cnf
+++ /dev/null
@@ -1,6 +0,0 @@
-# minimalist openssl.cnf file for use with phpseclib
-
-HOME			= .
-RANDFILE		= $ENV::HOME/.rnd
-
-[ v3_ca ]
diff --git a/wiki/vendor/simplepie/simplepie/LICENSE.txt b/wiki/vendor/simplepie/simplepie/LICENSE.txt
deleted file mode 100644
index a822a4b..0000000
--- a/wiki/vendor/simplepie/simplepie/LICENSE.txt
+++ /dev/null
@@ -1,26 +0,0 @@
-Copyright (c) 2004-2007, Ryan Parman and Geoffrey Sneddon.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without modification, are 
-permitted provided that the following conditions are met:
-
-	* Redistributions of source code must retain the above copyright notice, this list of 
-	  conditions and the following disclaimer.
-
-	* Redistributions in binary form must reproduce the above copyright notice, this list 
-	  of conditions and the following disclaimer in the documentation and/or other materials 
-	  provided with the distribution.
-
-	* Neither the name of the SimplePie Team nor the names of its contributors may be used 
-	  to endorse or promote products derived from this software without specific prior 
-	  written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS 
-OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY 
-AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS 
-AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 
-SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 
-OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
-POSSIBILITY OF SUCH DAMAGE.
\ No newline at end of file
diff --git a/wiki/vendor/simplepie/simplepie/README.markdown b/wiki/vendor/simplepie/simplepie/README.markdown
deleted file mode 100644
index c346204..0000000
--- a/wiki/vendor/simplepie/simplepie/README.markdown
+++ /dev/null
@@ -1,113 +0,0 @@
-SimplePie
-=========
-
-SimplePie is a very fast and easy-to-use class, written in PHP, that puts the
-'simple' back into 'really simple syndication'.  Flexible enough to suit
-beginners and veterans alike, SimplePie is focused on [speed, ease of use,
-compatibility and standards compliance][what_is].
-
-[what_is]: http://simplepie.org/wiki/faq/what_is_simplepie
-
-
-Requirements
-------------
-* PHP 5.3.0+ (5.3.6+ recommended since SimplePie 1.4.2)
-	* Support for PHP 5.2 stopped in branch `one-dot-three`
-	* Support for PHP 4 stopped in branch `one-dot-two`
-* libxml2 (certain 2.7.x releases are too buggy for words, and will crash)
-* One of iconv, mbstring or intl extensions
-* cURL or fsockopen()
-* PCRE support
-
-
-What comes in the package?
---------------------------
-1. `library/` - SimplePie classes for use with the autoloader
-2. `autoloader.php` - The SimplePie Autoloader if you want to use the separate
-   file version.
-3. `README.markdown` - This document.
-4. `LICENSE.txt` - A copy of the BSD license.
-5. `compatibility_test/` - The SimplePie compatibility test that checks your
-   server for required settings.
-6. `demo/` - A basic feed reader demo that shows off some of SimplePie's more
-   noticeable features.
-7. `idn/` - A third-party library that SimplePie can optionally use to
-   understand Internationalized Domain Names (IDNs).
-8. `build/` - Scripts related to generating pieces of SimplePie
-9. `test/` - SimplePie's unit test suite.
-
-### Where's `simplepie.inc`?
-Since SimplePie 1.3, we've split the classes into separate files to make it easier
-to maintain and use.
-
-If you'd like a single monolithic file, you can run `php build/compile.php` to
-generate `SimplePie.compiled.php`.
-
-To start the demo
------------------
-1. Upload this package to your webserver.
-2. Make sure that the cache folder inside of the demo folder is server-writable.
-3. Navigate your browser to the demo folder.
-
-
-Need support?
--------------
-For further setup and install documentation, function references, etc., visit
-[the wiki][wiki]. If you're using the latest version off GitHub, you can also
-check out the [API documentation][].
-
-If you can't find an answer to your question in the documentation, head on over
-to one of our [support channels][]. For bug reports and feature requests, visit
-the [issue tracker][].
-
-[API documentation]: http://dev.simplepie.org/api/
-[wiki]: http://simplepie.org/wiki/
-[support channels]: http://simplepie.org/support/
-[issue tracker]: http://github.com/simplepie/simplepie/issues
-
-
-Project status
---------------
-SimplePie is currently maintained by Malcolm Blaney.
-
-As an open source project, SimplePie is maintained on a somewhat sporadic basis.
-This means that feature requests may not be fulfilled straight away, as time has
-to be prioritized.
-
-If you'd like to contribute to SimplePie, the best way to get started is to fork
-the project on GitHub and send pull requests for patches. When doing so, please
-be aware of our [coding standards][].
-
-[coding standards]: http://simplepie.org/wiki/misc/coding_standards
-
-
-Authors and contributors
-------------------------
-### Current
-* [Malcolm Blaney][] (Maintainer, support)
-
-### Alumni
-* [Ryan McCue][] (developer, support)
-* [Ryan Parman][] (Creator, developer, evangelism, support)
-* [Geoffrey Sneddon][] (Lead developer)
-* [Michael Shipley][] (Submitter of patches, support)
-* [Steve Minutillo][] (Submitter of patches)
-
-[Malcolm Blaney]: https://unicyclic.com/mal
-[Ryan McCue]: http://ryanmccue.info
-[Ryan Parman]: http://ryanparman.com
-[Geoffrey Sneddon]: http://gsnedders.com
-[Michael Shipley]: http://michaelpshipley.com
-[Steve Minutillo]: http://minutillo.com/steve/
-
-
-### Contributors
-For a complete list of contributors:
-
-1. Pull down the latest SimplePie code
-2. In the `simplepie` directory, run `git shortlog -ns`
-
-
-License
--------
-[New BSD license](http://www.opensource.org/licenses/BSD-3-Clause)
diff --git a/wiki/vendor/simplepie/simplepie/autoloader.php b/wiki/vendor/simplepie/simplepie/autoloader.php
deleted file mode 100644
index fd7690d..0000000
--- a/wiki/vendor/simplepie/simplepie/autoloader.php
+++ /dev/null
@@ -1,85 +0,0 @@
-<?php
-/**
- * SimplePie
- *
- * A PHP-Based RSS and Atom Feed Framework.
- * Takes the hard work out of managing a complete RSS/Atom solution.
- *
- * Copyright (c) 2004-2016, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification, are
- * permitted provided that the following conditions are met:
- *
- * 	* Redistributions of source code must retain the above copyright notice, this list of
- * 	  conditions and the following disclaimer.
- *
- * 	* Redistributions in binary form must reproduce the above copyright notice, this list
- * 	  of conditions and the following disclaimer in the documentation and/or other materials
- * 	  provided with the distribution.
- *
- * 	* Neither the name of the SimplePie Team nor the names of its contributors may be used
- * 	  to endorse or promote products derived from this software without specific prior
- * 	  written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
- * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS
- * AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @package SimplePie
- * @copyright 2004-2016 Ryan Parman, Geoffrey Sneddon, Ryan McCue
- * @author Ryan Parman
- * @author Geoffrey Sneddon
- * @author Ryan McCue
- * @link http://simplepie.org/ SimplePie
- * @license http://www.opensource.org/licenses/bsd-license.php BSD License
- */
-
-
-// autoloader
-spl_autoload_register(array(new SimplePie_Autoloader(), 'autoload'));
-
-if (!class_exists('SimplePie'))
-{
-	trigger_error('Autoloader not registered properly', E_USER_ERROR);
-}
-
-/**
- * Autoloader class
- *
- * @package SimplePie
- * @subpackage API
- */
-class SimplePie_Autoloader
-{
-	/**
-	 * Constructor
-	 */
-	public function __construct()
-	{
-		$this->path = dirname(__FILE__) . DIRECTORY_SEPARATOR . 'library';
-	}
-
-	/**
-	 * Autoloader
-	 *
-	 * @param string $class The name of the class to attempt to load.
-	 */
-	public function autoload($class)
-	{
-		// Only load the class if it starts with "SimplePie"
-		if (strpos($class, 'SimplePie') !== 0)
-		{
-			return;
-		}
-
-		$filename = $this->path . DIRECTORY_SEPARATOR . str_replace('_', DIRECTORY_SEPARATOR, $class) . '.php';
-		include $filename;
-	}
-}
\ No newline at end of file
diff --git a/wiki/vendor/simplepie/simplepie/idn/LICENCE b/wiki/vendor/simplepie/simplepie/idn/LICENCE
deleted file mode 100644
index 25a1d22..0000000
--- a/wiki/vendor/simplepie/simplepie/idn/LICENCE
+++ /dev/null
@@ -1,502 +0,0 @@
-                  GNU LESSER GENERAL PUBLIC LICENSE
-                       Version 2.1, February 1999
-
- Copyright (C) 1991, 1999 Free Software Foundation, Inc.
-     59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-[This is the first released version of the Lesser GPL.  It also counts
- as the successor of the GNU Library Public License, version 2, hence
- the version number 2.1.]
-
-                            Preamble
-
-  The licenses for most software are designed to take away your
-freedom to share and change it.  By contrast, the GNU General Public
-Licenses are intended to guarantee your freedom to share and change
-free software--to make sure the software is free for all its users.
-
-  This license, the Lesser General Public License, applies to some
-specially designated software packages--typically libraries--of the
-Free Software Foundation and other authors who decide to use it.  You
-can use it too, but we suggest you first think carefully about whether
-this license or the ordinary General Public License is the better
-strategy to use in any particular case, based on the explanations below.
-
-  When we speak of free software, we are referring to freedom of use,
-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 and use pieces of
-it in new free programs; and that you are informed that you can do
-these things.
-
-  To protect your rights, we need to make restrictions that forbid
-distributors to deny you these rights or to ask you to surrender these
-rights.  These restrictions translate to certain responsibilities for
-you if you distribute copies of the library or if you modify it.
-
-  For example, if you distribute copies of the library, whether gratis
-or for a fee, you must give the recipients all the rights that we gave
-you.  You must make sure that they, too, receive or can get the source
-code.  If you link other code with the library, you must provide
-complete object files to the recipients, so that they can relink them
-with the library after making changes to the library and recompiling
-it.  And you must show them these terms so they know their rights.
-
-  We protect your rights with a two-step method: (1) we copyright the
-library, and (2) we offer you this license, which gives you legal
-permission to copy, distribute and/or modify the library.
-
-  To protect each distributor, we want to make it very clear that
-there is no warranty for the free library.  Also, if the library is
-modified by someone else and passed on, the recipients should know
-that what they have is not the original version, so that the original
-author's reputation will not be affected by problems that might be
-introduced by others.
-
-  Finally, software patents pose a constant threat to the existence of
-any free program.  We wish to make sure that a company cannot
-effectively restrict the users of a free program by obtaining a
-restrictive license from a patent holder.  Therefore, we insist that
-any patent license obtained for a version of the library must be
-consistent with the full freedom of use specified in this license.
-
-  Most GNU software, including some libraries, is covered by the
-ordinary GNU General Public License.  This license, the GNU Lesser
-General Public License, applies to certain designated libraries, and
-is quite different from the ordinary General Public License.  We use
-this license for certain libraries in order to permit linking those
-libraries into non-free programs.
-
-  When a program is linked with a library, whether statically or using
-a shared library, the combination of the two is legally speaking a
-combined work, a derivative of the original library.  The ordinary
-General Public License therefore permits such linking only if the
-entire combination fits its criteria of freedom.  The Lesser General
-Public License permits more lax criteria for linking other code with
-the library.
-
-  We call this license the "Lesser" General Public License because it
-does Less to protect the user's freedom than the ordinary General
-Public License.  It also provides other free software developers Less
-of an advantage over competing non-free programs.  These disadvantages
-are the reason we use the ordinary General Public License for many
-libraries.  However, the Lesser license provides advantages in certain
-special circumstances.
-
-  For example, on rare occasions, there may be a special need to
-encourage the widest possible use of a certain library, so that it becomes
-a de-facto standard.  To achieve this, non-free programs must be
-allowed to use the library.  A more frequent case is that a free
-library does the same job as widely used non-free libraries.  In this
-case, there is little to gain by limiting the free library to free
-software only, so we use the Lesser General Public License.
-
-  In other cases, permission to use a particular library in non-free
-programs enables a greater number of people to use a large body of
-free software.  For example, permission to use the GNU C Library in
-non-free programs enables many more people to use the whole GNU
-operating system, as well as its variant, the GNU/Linux operating
-system.
-
-  Although the Lesser General Public License is Less protective of the
-users' freedom, it does ensure that the user of a program that is
-linked with the Library has the freedom and the wherewithal to run
-that program using a modified version of the Library.
-
-  The precise terms and conditions for copying, distribution and
-modification follow.  Pay close attention to the difference between a
-"work based on the library" and a "work that uses the library".  The
-former contains code derived from the library, whereas the latter must
-be combined with the library in order to run.
-
-                  GNU LESSER GENERAL PUBLIC LICENSE
-   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
-  0. This License Agreement applies to any software library or other
-program which contains a notice placed by the copyright holder or
-other authorized party saying it may be distributed under the terms of
-this Lesser General Public License (also called "this License").
-Each licensee is addressed as "you".
-
-  A "library" means a collection of software functions and/or data
-prepared so as to be conveniently linked with application programs
-(which use some of those functions and data) to form executables.
-
-  The "Library", below, refers to any such software library or work
-which has been distributed under these terms.  A "work based on the
-Library" means either the Library or any derivative work under
-copyright law: that is to say, a work containing the Library or a
-portion of it, either verbatim or with modifications and/or translated
-straightforwardly into another language.  (Hereinafter, translation is
-included without limitation in the term "modification".)
-
-  "Source code" for a work means the preferred form of the work for
-making modifications to it.  For a library, 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 library.
-
-  Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope.  The act of
-running a program using the Library is not restricted, and output from
-such a program is covered only if its contents constitute a work based
-on the Library (independent of the use of the Library in a tool for
-writing it).  Whether that is true depends on what the Library does
-and what the program that uses the Library does.
-
-  1. You may copy and distribute verbatim copies of the Library's
-complete 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 distribute a copy of this License along with the
-Library.
-
-  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 Library or any portion
-of it, thus forming a work based on the Library, 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) The modified work must itself be a software library.
-
-    b) You must cause the files modified to carry prominent notices
-    stating that you changed the files and the date of any change.
-
-    c) You must cause the whole of the work to be licensed at no
-    charge to all third parties under the terms of this License.
-
-    d) If a facility in the modified Library refers to a function or a
-    table of data to be supplied by an application program that uses
-    the facility, other than as an argument passed when the facility
-    is invoked, then you must make a good faith effort to ensure that,
-    in the event an application does not supply such function or
-    table, the facility still operates, and performs whatever part of
-    its purpose remains meaningful.
-
-    (For example, a function in a library to compute square roots has
-    a purpose that is entirely well-defined independent of the
-    application.  Therefore, Subsection 2d requires that any
-    application-supplied function or table used by this function must
-    be optional: if the application does not supply it, the square
-    root function must still compute square roots.)
-
-These requirements apply to the modified work as a whole.  If
-identifiable sections of that work are not derived from the Library,
-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 Library, 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 Library.
-
-In addition, mere aggregation of another work not based on the Library
-with the Library (or with a work based on the Library) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
-  3. You may opt to apply the terms of the ordinary GNU General Public
-License instead of this License to a given copy of the Library.  To do
-this, you must alter all the notices that refer to this License, so
-that they refer to the ordinary GNU General Public License, version 2,
-instead of to this License.  (If a newer version than version 2 of the
-ordinary GNU General Public License has appeared, then you can specify
-that version instead if you wish.)  Do not make any other change in
-these notices.
-
-  Once this change is made in a given copy, it is irreversible for
-that copy, so the ordinary GNU General Public License applies to all
-subsequent copies and derivative works made from that copy.
-
-  This option is useful when you wish to copy part of the code of
-the Library into a program that is not a library.
-
-  4. You may copy and distribute the Library (or a portion or
-derivative of it, under Section 2) in object code or executable form
-under the terms of Sections 1 and 2 above provided that you 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.
-
-  If distribution of 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 satisfies the requirement to
-distribute the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
-  5. A program that contains no derivative of any portion of the
-Library, but is designed to work with the Library by being compiled or
-linked with it, is called a "work that uses the Library".  Such a
-work, in isolation, is not a derivative work of the Library, and
-therefore falls outside the scope of this License.
-
-  However, linking a "work that uses the Library" with the Library
-creates an executable that is a derivative of the Library (because it
-contains portions of the Library), rather than a "work that uses the
-library".  The executable is therefore covered by this License.
-Section 6 states terms for distribution of such executables.
-
-  When a "work that uses the Library" uses material from a header file
-that is part of the Library, the object code for the work may be a
-derivative work of the Library even though the source code is not.
-Whether this is true is especially significant if the work can be
-linked without the Library, or if the work is itself a library.  The
-threshold for this to be true is not precisely defined by law.
-
-  If such an object file uses only numerical parameters, data
-structure layouts and accessors, and small macros and small inline
-functions (ten lines or less in length), then the use of the object
-file is unrestricted, regardless of whether it is legally a derivative
-work.  (Executables containing this object code plus portions of the
-Library will still fall under Section 6.)
-
-  Otherwise, if the work is a derivative of the Library, you may
-distribute the object code for the work under the terms of Section 6.
-Any executables containing that work also fall under Section 6,
-whether or not they are linked directly with the Library itself.
-
-  6. As an exception to the Sections above, you may also combine or
-link a "work that uses the Library" with the Library to produce a
-work containing portions of the Library, and distribute that work
-under terms of your choice, provided that the terms permit
-modification of the work for the customer's own use and reverse
-engineering for debugging such modifications.
-
-  You must give prominent notice with each copy of the work that the
-Library is used in it and that the Library and its use are covered by
-this License.  You must supply a copy of this License.  If the work
-during execution displays copyright notices, you must include the
-copyright notice for the Library among them, as well as a reference
-directing the user to the copy of this License.  Also, you must do one
-of these things:
-
-    a) Accompany the work with the complete corresponding
-    machine-readable source code for the Library including whatever
-    changes were used in the work (which must be distributed under
-    Sections 1 and 2 above); and, if the work is an executable linked
-    with the Library, with the complete machine-readable "work that
-    uses the Library", as object code and/or source code, so that the
-    user can modify the Library and then relink to produce a modified
-    executable containing the modified Library.  (It is understood
-    that the user who changes the contents of definitions files in the
-    Library will not necessarily be able to recompile the application
-    to use the modified definitions.)
-
-    b) Use a suitable shared library mechanism for linking with the
-    Library.  A suitable mechanism is one that (1) uses at run time a
-    copy of the library already present on the user's computer system,
-    rather than copying library functions into the executable, and (2)
-    will operate properly with a modified version of the library, if
-    the user installs one, as long as the modified version is
-    interface-compatible with the version that the work was made with.
-
-    c) Accompany the work with a written offer, valid for at
-    least three years, to give the same user the materials
-    specified in Subsection 6a, above, for a charge no more
-    than the cost of performing this distribution.
-
-    d) If distribution of the work is made by offering access to copy
-    from a designated place, offer equivalent access to copy the above
-    specified materials from the same place.
-
-    e) Verify that the user has already received a copy of these
-    materials or that you have already sent this user a copy.
-
-  For an executable, the required form of the "work that uses the
-Library" must include any data and utility programs needed for
-reproducing the executable from it.  However, as a special exception,
-the materials to be 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.
-
-  It may happen that this requirement contradicts the license
-restrictions of other proprietary libraries that do not normally
-accompany the operating system.  Such a contradiction means you cannot
-use both them and the Library together in an executable that you
-distribute.
-
-  7. You may place library facilities that are a work based on the
-Library side-by-side in a single library together with other library
-facilities not covered by this License, and distribute such a combined
-library, provided that the separate distribution of the work based on
-the Library and of the other library facilities is otherwise
-permitted, and provided that you do these two things:
-
-    a) Accompany the combined library with a copy of the same work
-    based on the Library, uncombined with any other library
-    facilities.  This must be distributed under the terms of the
-    Sections above.
-
-    b) Give prominent notice with the combined library of the fact
-    that part of it is a work based on the Library, and explaining
-    where to find the accompanying uncombined form of the same work.
-
-  8. You may not copy, modify, sublicense, link with, or distribute
-the Library except as expressly provided under this License.  Any
-attempt otherwise to copy, modify, sublicense, link with, or
-distribute the Library 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.
-
-  9. 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 Library or its derivative works.  These actions are
-prohibited by law if you do not accept this License.  Therefore, by
-modifying or distributing the Library (or any work based on the
-Library), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Library or works based on it.
-
-  10. Each time you redistribute the Library (or any work based on the
-Library), the recipient automatically receives a license from the
-original licensor to copy, distribute, link with or modify the Library
-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 with
-this License.
-
-  11. 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 Library at all.  For example, if a patent
-license would not permit royalty-free redistribution of the Library 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 Library.
-
-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.
-
-  12. If the distribution and/or use of the Library is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Library 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.
-
-  13. The Free Software Foundation may publish revised and/or new
-versions of the Lesser 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 Library
-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 Library does not specify a
-license version number, you may choose any version ever published by
-the Free Software Foundation.
-
-  14. If you wish to incorporate parts of the Library into other free
-programs whose distribution conditions are incompatible with these,
-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
-
-  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
-WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
-EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
-OTHER PARTIES PROVIDE THE LIBRARY "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
-LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
-THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
-  16. 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 LIBRARY 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
-LIBRARY (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 LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), 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 Libraries
-
-  If you develop a new library, and you want it to be of the greatest
-possible use to the public, we recommend making it free software that
-everyone can redistribute and change.  You can do so by permitting
-redistribution under these terms (or, alternatively, under the terms of the
-ordinary General Public License).
-
-  To apply these terms, attach the following notices to the library.  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 library's name and a brief idea of what it does.>
-    Copyright (C) <year>  <name of author>
-
-    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
-
-Also add information on how to contact you by electronic and paper mail.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the library, if
-necessary.  Here is a sample; alter the names:
-
-  Yoyodyne, Inc., hereby disclaims all copyright interest in the
-  library `Frob' (a library for tweaking knobs) written by James Random Hacker.
-
-  <signature of Ty Coon>, 1 April 1990
-  Ty Coon, President of Vice
-
-That's all there is to it!
diff --git a/wiki/vendor/simplepie/simplepie/idn/ReadMe.txt b/wiki/vendor/simplepie/simplepie/idn/ReadMe.txt
deleted file mode 100644
index 7ca8c7e..0000000
--- a/wiki/vendor/simplepie/simplepie/idn/ReadMe.txt
+++ /dev/null
@@ -1,123 +0,0 @@
-*******************************************************************************
-*                                                                             *
-*                    IDNA Convert (idna_convert.class.php)                    *
-*                                                                             *
-* http://idnaconv.phlymail.de                     mailto:phlymail@phlylabs.de *
-*******************************************************************************
-* (c) 2004-2007 phlyLabs, Berlin                                              *
-* This file is encoded in UTF-8                                               *
-*******************************************************************************
-
-Introduction
-------------
-
-The class idna_convert allows to convert internationalized domain names
-(see RFC 3490, 3491, 3492 and 3454 for detials) as they can be used with various
-registries worldwide to be translated between their original (localized) form
-and their encoded form as it will be used in the DNS (Domain Name System).
-
-The class provides two public methods, encode() and decode(), which do exactly
-what you would expect them to do. You are allowed to use complete domain names,
-simple strings and complete email addresses as well. That means, that you might
-use any of the following notations:
-
-- www.nörgler.com
-- xn--nrgler-wxa
-- xn--brse-5qa.xn--knrz-1ra.info
-
-Errors, incorrectly encoded or invalid strings will lead to either a FALSE
-response (when in strict mode) or to only partially converted strings.
-You can query the occured error by calling the method get_last_error().
-
-Unicode strings are expected to be either UTF-8 strings, UCS-4 strings or UCS-4
-arrays. The default format is UTF-8. For setting different encodings, you can
-call the method setParams() - please see the inline documentation for details.
-ACE strings (the Punycode form) are always 7bit ASCII strings.
-
-ATTENTION: We no longer supply the PHP5 version of the class. It is not
-necessary for achieving a successfull conversion, since the supplied PHP code is
-compatible with both PHP4 and PHP5. We expect to see no compatibility issues
-with the upcoming PHP6, too.
-
-
-Files
------
-
-idna_convert.class.php         - The actual class
-idna_convert.create.npdata.php - Useful for (re)creating the NPData file
-npdata.ser                     - Serialized data for NamePrep
-example.php                    - An example web page for converting
-ReadMe.txt                     - This file
-LICENCE                        - The LGPL licence file
-
-The class is contained in idna_convert.class.php.
-MAKE SURE to copy the npdata.ser file into the same folder as the class file
-itself!
-
-
-Examples
---------
-
-1. Say we wish to encode the domain name nörgler.com:
-
-// Include the class
-include_once('idna_convert.class.php');
-// Instantiate it *
-$IDN = new idna_convert();
-// The input string, if input is not UTF-8 or UCS-4, it must be converted before
-$input = utf8_encode('nörgler.com');
-// Encode it to its punycode presentation
-$output = $IDN->encode($input);
-// Output, what we got now
-echo $output; // This will read: xn--nrgler-wxa.com
-
-
-2. We received an email from a punycoded domain and are willing to learn, how
-   the domain name reads originally
-
-// Include the class
-include_once('idna_convert.class.php');
-// Instantiate it (depending on the version you are using) with
-$IDN = new idna_convert();
-// The input string
-$input = 'andre@xn--brse-5qa.xn--knrz-1ra.info';
-// Encode it to its punycode presentation
-$output = $IDN->decode($input);
-// Output, what we got now, if output should be in a format different to UTF-8
-// or UCS-4, you will have to convert it before outputting it
-echo utf8_decode($output); // This will read: andre@börse.knörz.info
-
-
-3. The input is read from a UCS-4 coded file and encoded line by line. By
-   appending the optional second parameter we tell enode() about the input
-   format to be used
-
-// Include the class
-include_once('idna_convert.class.php');
-// Instantiate it
-$IDN = new dinca_convert();
-// Iterate through the input file line by line
-foreach (file('ucs4-domains.txt') as $line) {
-    echo $IDN->encode(trim($line), 'ucs4_string');
-    echo "\n";
-}
-
-
-NPData
-------
-
-Should you need to recreate the npdata.ser file, which holds all necessary translation
-tables in a serialized format, you can run the file idna_convert.create.npdata.php, which
-creates the file for you and stores it in the same folder, where it is placed.
-Should you need to do changes to the tables you can do so, but beware of the consequences.
-
-
-Contact us
-----------
-
-In case of errors, bugs, questions, wishes, please don't hesitate to contact us
-under the email address above.
-
-The team of phlyLabs
-http://phlylabs.de
-mailto:phlymail@phlylabs.de
\ No newline at end of file
diff --git a/wiki/vendor/simplepie/simplepie/idn/idna_convert.class.php b/wiki/vendor/simplepie/simplepie/idn/idna_convert.class.php
deleted file mode 100644
index eb9d5f5..0000000
--- a/wiki/vendor/simplepie/simplepie/idn/idna_convert.class.php
+++ /dev/null
@@ -1,969 +0,0 @@
-<?php
-// {{{ license
-
-/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4 foldmethod=marker: */
-//
-// +----------------------------------------------------------------------+
-// | 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.                                                                 |
-// +----------------------------------------------------------------------+
-//
-
-// }}}
-
-/**
- * Encode/decode Internationalized Domain Names.
- *
- * The class allows to convert internationalized domain names
- * (see RFC 3490 for details) as they can be used with various registries worldwide
- * to be translated between their original (localized) form and their encoded form
- * as it will be used in the DNS (Domain Name System).
- *
- * The class provides two public methods, encode() and decode(), which do exactly
- * what you would expect them to do. You are allowed to use complete domain names,
- * simple strings and complete email addresses as well. That means, that you might
- * use any of the following notations:
- *
- * - www.nörgler.com
- * - xn--nrgler-wxa
- * - xn--brse-5qa.xn--knrz-1ra.info
- *
- * Unicode input might be given as either UTF-8 string, UCS-4 string or UCS-4
- * array. Unicode output is available in the same formats.
- * You can select your preferred format via {@link set_paramter()}.
- *
- * ACE input and output is always expected to be ASCII.
- *
- * @author  Matthias Sommerfeld <mso@phlylabs.de>
- * @copyright 2004-2007 phlyLabs Berlin, http://phlylabs.de
- * @version 0.5.1
- *
- */
-class idna_convert
-{
-    /**
-     * Holds all relevant mapping tables, loaded from a seperate file on construct
-     * See RFC3454 for details
-     *
-     * @var array
-     * @access private
-     */
-    var $NP = array();
-
-    // Internal settings, do not mess with them
-    var $_punycode_prefix = 'xn--';
-    var $_invalid_ucs =     0x80000000;
-    var $_max_ucs =         0x10FFFF;
-    var $_base =            36;
-    var $_tmin =            1;
-    var $_tmax =            26;
-    var $_skew =            38;
-    var $_damp =            700;
-    var $_initial_bias =    72;
-    var $_initial_n =       0x80;
-    var $_sbase =           0xAC00;
-    var $_lbase =           0x1100;
-    var $_vbase =           0x1161;
-    var $_tbase =           0x11A7;
-    var $_lcount =          19;
-    var $_vcount =          21;
-    var $_tcount =          28;
-    var $_ncount =          588;   // _vcount * _tcount
-    var $_scount =          11172; // _lcount * _tcount * _vcount
-    var $_error =           false;
-
-    // See {@link set_paramter()} for details of how to change the following
-    // settings from within your script / application
-    var $_api_encoding   =  'utf8'; // Default input charset is UTF-8
-    var $_allow_overlong =  false;  // Overlong UTF-8 encodings are forbidden
-    var $_strict_mode    =  false;  // Behave strict or not
-
-    // The constructor
-    function __construct($options = false)
-    {
-        $this->slast = $this->_sbase + $this->_lcount * $this->_vcount * $this->_tcount;
-        if (function_exists('file_get_contents')) {
-            $this->NP = unserialize(file_get_contents(dirname(__FILE__).'/npdata.ser'));
-        } else {
-            $this->NP = unserialize(join('', file(dirname(__FILE__).'/npdata.ser')));
-        }
-        // If parameters are given, pass these to the respective method
-        if (is_array($options)) {
-            return $this->set_parameter($options);
-        }
-        return true;
-    }
-
-    /**
-     * Sets a new option value. Available options and values:
-     * [encoding - Use either UTF-8, UCS4 as array or UCS4 as string as input ('utf8' for UTF-8,
-     *         'ucs4_string' and 'ucs4_array' respectively for UCS4); The output is always UTF-8]
-     * [overlong - Unicode does not allow unnecessarily long encodings of chars,
-     *             to allow this, set this parameter to true, else to false;
-     *             default is false.]
-     * [strict - true: strict mode, good for registration purposes - Causes errors
-     *           on failures; false: loose mode, ideal for "wildlife" applications
-     *           by silently ignoring errors and returning the original input instead
-     *
-     * @param    mixed     Parameter to set (string: single parameter; array of Parameter => Value pairs)
-     * @param    string    Value to use (if parameter 1 is a string)
-     * @return   boolean   true on success, false otherwise
-     * @access   public
-     */
-    function set_parameter($option, $value = false)
-    {
-        if (!is_array($option)) {
-            $option = array($option => $value);
-        }
-        foreach ($option as $k => $v) {
-            switch ($k) {
-            case 'encoding':
-                switch ($v) {
-                case 'utf8':
-                case 'ucs4_string':
-                case 'ucs4_array':
-                    $this->_api_encoding = $v;
-                    break;
-                default:
-                    $this->_error('Set Parameter: Unknown parameter '.$v.' for option '.$k);
-                    return false;
-                }
-                break;
-            case 'overlong':
-                $this->_allow_overlong = ($v) ? true : false;
-                break;
-            case 'strict':
-                $this->_strict_mode = ($v) ? true : false;
-                break;
-            default:
-                $this->_error('Set Parameter: Unknown option '.$k);
-                return false;
-            }
-        }
-        return true;
-    }
-
-    /**
-     * Decode a given ACE domain name
-     * @param    string   Domain name (ACE string)
-     * [@param    string   Desired output encoding, see {@link set_parameter}]
-     * @return   string   Decoded Domain name (UTF-8 or UCS-4)
-     * @access   public
-     */
-    function decode($input, $one_time_encoding = false)
-    {
-        // Optionally set
-        if ($one_time_encoding) {
-            switch ($one_time_encoding) {
-            case 'utf8':
-            case 'ucs4_string':
-            case 'ucs4_array':
-                break;
-            default:
-                $this->_error('Unknown encoding '.$one_time_encoding);
-                return false;
-            }
-        }
-        // Make sure to drop any newline characters around
-        $input = trim($input);
-
-        // Negotiate input and try to determine, whether it is a plain string,
-        // an email address or something like a complete URL
-        if (strpos($input, '@')) { // Maybe it is an email address
-            // No no in strict mode
-            if ($this->_strict_mode) {
-                $this->_error('Only simple domain name parts can be handled in strict mode');
-                return false;
-            }
-            list ($email_pref, $input) = explode('@', $input, 2);
-            $arr = explode('.', $input);
-            foreach ($arr as $k => $v) {
-                if (preg_match('!^'.preg_quote($this->_punycode_prefix, '!').'!', $v)) {
-                    $conv = $this->_decode($v);
-                    if ($conv) $arr[$k] = $conv;
-                }
-            }
-            $input = join('.', $arr);
-            $arr = explode('.', $email_pref);
-            foreach ($arr as $k => $v) {
-                if (preg_match('!^'.preg_quote($this->_punycode_prefix, '!').'!', $v)) {
-                    $conv = $this->_decode($v);
-                    if ($conv) $arr[$k] = $conv;
-                }
-            }
-            $email_pref = join('.', $arr);
-            $return = $email_pref . '@' . $input;
-        } elseif (preg_match('![:\./]!', $input)) { // Or a complete domain name (with or without paths / parameters)
-            // No no in strict mode
-            if ($this->_strict_mode) {
-                $this->_error('Only simple domain name parts can be handled in strict mode');
-                return false;
-            }
-            $parsed = parse_url($input);
-            if (isset($parsed['host'])) {
-                $arr = explode('.', $parsed['host']);
-                foreach ($arr as $k => $v) {
-                    $conv = $this->_decode($v);
-                    if ($conv) $arr[$k] = $conv;
-                }
-                $parsed['host'] = join('.', $arr);
-                $return =
-                        (empty($parsed['scheme']) ? '' : $parsed['scheme'].(strtolower($parsed['scheme']) == 'mailto' ? ':' : '://'))
-                        .(empty($parsed['user']) ? '' : $parsed['user'].(empty($parsed['pass']) ? '' : ':'.$parsed['pass']).'@')
-                        .$parsed['host']
-                        .(empty($parsed['port']) ? '' : ':'.$parsed['port'])
-                        .(empty($parsed['path']) ? '' : $parsed['path'])
-                        .(empty($parsed['query']) ? '' : '?'.$parsed['query'])
-                        .(empty($parsed['fragment']) ? '' : '#'.$parsed['fragment']);
-            } else { // parse_url seems to have failed, try without it
-                $arr = explode('.', $input);
-                foreach ($arr as $k => $v) {
-                    $conv = $this->_decode($v);
-                    $arr[$k] = ($conv) ? $conv : $v;
-                }
-                $return = join('.', $arr);
-            }
-        } else { // Otherwise we consider it being a pure domain name string
-            $return = $this->_decode($input);
-            if (!$return) $return = $input;
-        }
-        // The output is UTF-8 by default, other output formats need conversion here
-        // If one time encoding is given, use this, else the objects property
-        switch (($one_time_encoding) ? $one_time_encoding : $this->_api_encoding) {
-        case 'utf8':
-            return $return;
-            break;
-        case 'ucs4_string':
-           return $this->_ucs4_to_ucs4_string($this->_utf8_to_ucs4($return));
-           break;
-        case 'ucs4_array':
-            return $this->_utf8_to_ucs4($return);
-            break;
-        default:
-            $this->_error('Unsupported output format');
-            return false;
-        }
-    }
-
-    /**
-     * Encode a given UTF-8 domain name
-     * @param    string   Domain name (UTF-8 or UCS-4)
-     * [@param    string   Desired input encoding, see {@link set_parameter}]
-     * @return   string   Encoded Domain name (ACE string)
-     * @access   public
-     */
-    function encode($decoded, $one_time_encoding = false)
-    {
-        // Forcing conversion of input to UCS4 array
-        // If one time encoding is given, use this, else the objects property
-        switch ($one_time_encoding ? $one_time_encoding : $this->_api_encoding) {
-        case 'utf8':
-            $decoded = $this->_utf8_to_ucs4($decoded);
-            break;
-        case 'ucs4_string':
-           $decoded = $this->_ucs4_string_to_ucs4($decoded);
-        case 'ucs4_array':
-           break;
-        default:
-            $this->_error('Unsupported input format: '.($one_time_encoding ? $one_time_encoding : $this->_api_encoding));
-            return false;
-        }
-
-        // No input, no output, what else did you expect?
-        if (empty($decoded)) return '';
-
-        // Anchors for iteration
-        $last_begin = 0;
-        // Output string
-        $output = '';
-        foreach ($decoded as $k => $v) {
-            // Make sure to use just the plain dot
-            switch($v) {
-            case 0x3002:
-            case 0xFF0E:
-            case 0xFF61:
-                $decoded[$k] = 0x2E;
-                // Right, no break here, the above are converted to dots anyway
-            // Stumbling across an anchoring character
-            case 0x2E:
-            case 0x2F:
-            case 0x3A:
-            case 0x3F:
-            case 0x40:
-                // Neither email addresses nor URLs allowed in strict mode
-                if ($this->_strict_mode) {
-                   $this->_error('Neither email addresses nor URLs are allowed in strict mode.');
-                   return false;
-                } else {
-                    // Skip first char
-                    if ($k) {
-                        $encoded = '';
-                        $encoded = $this->_encode(array_slice($decoded, $last_begin, (($k)-$last_begin)));
-                        if ($encoded) {
-                            $output .= $encoded;
-                        } else {
-                            $output .= $this->_ucs4_to_utf8(array_slice($decoded, $last_begin, (($k)-$last_begin)));
-                        }
-                        $output .= chr($decoded[$k]);
-                    }
-                    $last_begin = $k + 1;
-                }
-            }
-        }
-        // Catch the rest of the string
-        if ($last_begin) {
-            $inp_len = sizeof($decoded);
-            $encoded = '';
-            $encoded = $this->_encode(array_slice($decoded, $last_begin, (($inp_len)-$last_begin)));
-            if ($encoded) {
-                $output .= $encoded;
-            } else {
-                $output .= $this->_ucs4_to_utf8(array_slice($decoded, $last_begin, (($inp_len)-$last_begin)));
-            }
-            return $output;
-        } else {
-            if ($output = $this->_encode($decoded)) {
-                return $output;
-            } else {
-                return $this->_ucs4_to_utf8($decoded);
-            }
-        }
-    }
-
-    /**
-     * Use this method to get the last error ocurred
-     * @param    void
-     * @return   string   The last error, that occured
-     * @access   public
-     */
-    function get_last_error()
-    {
-        return $this->_error;
-    }
-
-    /**
-     * The actual decoding algorithm
-     * @access   private
-     */
-    function _decode($encoded)
-    {
-        // We do need to find the Punycode prefix
-        if (!preg_match('!^'.preg_quote($this->_punycode_prefix, '!').'!', $encoded)) {
-            $this->_error('This is not a punycode string');
-            return false;
-        }
-        $encode_test = preg_replace('!^'.preg_quote($this->_punycode_prefix, '!').'!', '', $encoded);
-        // If nothing left after removing the prefix, it is hopeless
-        if (!$encode_test) {
-            $this->_error('The given encoded string was empty');
-            return false;
-        }
-        // Find last occurence of the delimiter
-        $delim_pos = strrpos($encoded, '-');
-        if ($delim_pos > strlen($this->_punycode_prefix)) {
-            for ($k = strlen($this->_punycode_prefix); $k < $delim_pos; ++$k) {
-                $decoded[] = ord($encoded{$k});
-            }
-        } else {
-            $decoded = array();
-        }
-        $deco_len = count($decoded);
-        $enco_len = strlen($encoded);
-
-        // Wandering through the strings; init
-        $is_first = true;
-        $bias     = $this->_initial_bias;
-        $idx      = 0;
-        $char     = $this->_initial_n;
-
-        for ($enco_idx = ($delim_pos) ? ($delim_pos + 1) : 0; $enco_idx < $enco_len; ++$deco_len) {
-            for ($old_idx = $idx, $w = 1, $k = $this->_base; 1 ; $k += $this->_base) {
-                $digit = $this->_decode_digit($encoded{$enco_idx++});
-                $idx += $digit * $w;
-                $t = ($k <= $bias) ? $this->_tmin :
-                        (($k >= $bias + $this->_tmax) ? $this->_tmax : ($k - $bias));
-                if ($digit < $t) break;
-                $w = (int) ($w * ($this->_base - $t));
-            }
-            $bias = $this->_adapt($idx - $old_idx, $deco_len + 1, $is_first);
-            $is_first = false;
-            $char += (int) ($idx / ($deco_len + 1));
-            $idx %= ($deco_len + 1);
-            if ($deco_len > 0) {
-                // Make room for the decoded char
-                for ($i = $deco_len; $i > $idx; $i--) {
-                    $decoded[$i] = $decoded[($i - 1)];
-                }
-            }
-            $decoded[$idx++] = $char;
-        }
-        return $this->_ucs4_to_utf8($decoded);
-    }
-
-    /**
-     * The actual encoding algorithm
-     * @access   private
-     */
-    function _encode($decoded)
-    {
-        // We cannot encode a domain name containing the Punycode prefix
-        $extract = strlen($this->_punycode_prefix);
-        $check_pref = $this->_utf8_to_ucs4($this->_punycode_prefix);
-        $check_deco = array_slice($decoded, 0, $extract);
-
-        if ($check_pref == $check_deco) {
-            $this->_error('This is already a punycode string');
-            return false;
-        }
-        // We will not try to encode strings consisting of basic code points only
-        $encodable = false;
-        foreach ($decoded as $k => $v) {
-            if ($v > 0x7a) {
-                $encodable = true;
-                break;
-            }
-        }
-        if (!$encodable) {
-            $this->_error('The given string does not contain encodable chars');
-            return false;
-        }
-
-        // Do NAMEPREP
-        $decoded = $this->_nameprep($decoded);
-        if (!$decoded || !is_array($decoded)) return false; // NAMEPREP failed
-
-        $deco_len  = count($decoded);
-        if (!$deco_len) return false; // Empty array
-
-        $codecount = 0; // How many chars have been consumed
-
-        $encoded = '';
-        // Copy all basic code points to output
-        for ($i = 0; $i < $deco_len; ++$i) {
-            $test = $decoded[$i];
-            // Will match [-0-9a-zA-Z]
-            if ((0x2F < $test && $test < 0x40) || (0x40 < $test && $test < 0x5B)
-                    || (0x60 < $test && $test <= 0x7B) || (0x2D == $test)) {
-                $encoded .= chr($decoded[$i]);
-                $codecount++;
-            }
-        }
-        if ($codecount == $deco_len) return $encoded; // All codepoints were basic ones
-
-        // Start with the prefix; copy it to output
-        $encoded = $this->_punycode_prefix.$encoded;
-
-        // If we have basic code points in output, add an hyphen to the end
-        if ($codecount) $encoded .= '-';
-
-        // Now find and encode all non-basic code points
-        $is_first  = true;
-        $cur_code  = $this->_initial_n;
-        $bias      = $this->_initial_bias;
-        $delta     = 0;
-        while ($codecount < $deco_len) {
-            // Find the smallest code point >= the current code point and
-            // remember the last ouccrence of it in the input
-            for ($i = 0, $next_code = $this->_max_ucs; $i < $deco_len; $i++) {
-                if ($decoded[$i] >= $cur_code && $decoded[$i] <= $next_code) {
-                    $next_code = $decoded[$i];
-                }
-            }
-
-            $delta += ($next_code - $cur_code) * ($codecount + 1);
-            $cur_code = $next_code;
-
-            // Scan input again and encode all characters whose code point is $cur_code
-            for ($i = 0; $i < $deco_len; $i++) {
-                if ($decoded[$i] < $cur_code) {
-                    $delta++;
-                } elseif ($decoded[$i] == $cur_code) {
-                    for ($q = $delta, $k = $this->_base; 1; $k += $this->_base) {
-                        $t = ($k <= $bias) ? $this->_tmin :
-                                (($k >= $bias + $this->_tmax) ? $this->_tmax : $k - $bias);
-                        if ($q < $t) break;
-                        $encoded .= $this->_encode_digit(intval($t + (($q - $t) % ($this->_base - $t)))); //v0.4.5 Changed from ceil() to intval()
-                        $q = (int) (($q - $t) / ($this->_base - $t));
-                    }
-                    $encoded .= $this->_encode_digit($q);
-                    $bias = $this->_adapt($delta, $codecount+1, $is_first);
-                    $codecount++;
-                    $delta = 0;
-                    $is_first = false;
-                }
-            }
-            $delta++;
-            $cur_code++;
-        }
-        return $encoded;
-    }
-
-    /**
-     * Adapt the bias according to the current code point and position
-     * @access   private
-     */
-    function _adapt($delta, $npoints, $is_first)
-    {
-        $delta = intval($is_first ? ($delta / $this->_damp) : ($delta / 2));
-        $delta += intval($delta / $npoints);
-        for ($k = 0; $delta > (($this->_base - $this->_tmin) * $this->_tmax) / 2; $k += $this->_base) {
-            $delta = intval($delta / ($this->_base - $this->_tmin));
-        }
-        return intval($k + ($this->_base - $this->_tmin + 1) * $delta / ($delta + $this->_skew));
-    }
-
-    /**
-     * Encoding a certain digit
-     * @access   private
-     */
-    function _encode_digit($d)
-    {
-        return chr($d + 22 + 75 * ($d < 26));
-    }
-
-    /**
-     * Decode a certain digit
-     * @access   private
-     */
-    function _decode_digit($cp)
-    {
-        $cp = ord($cp);
-        return ($cp - 48 < 10) ? $cp - 22 : (($cp - 65 < 26) ? $cp - 65 : (($cp - 97 < 26) ? $cp - 97 : $this->_base));
-    }
-
-    /**
-     * Internal error handling method
-     * @access   private
-     */
-    function _error($error = '')
-    {
-        $this->_error = $error;
-    }
-
-    /**
-     * Do Nameprep according to RFC3491 and RFC3454
-     * @param    array    Unicode Characters
-     * @return   string   Unicode Characters, Nameprep'd
-     * @access   private
-     */
-    function _nameprep($input)
-    {
-        $output = array();
-        $error = false;
-        //
-        // Mapping
-        // Walking through the input array, performing the required steps on each of
-        // the input chars and putting the result into the output array
-        // While mapping required chars we apply the cannonical ordering
-        foreach ($input as $v) {
-            // Map to nothing == skip that code point
-            if (in_array($v, $this->NP['map_nothing'])) continue;
-
-            // Try to find prohibited input
-            if (in_array($v, $this->NP['prohibit']) || in_array($v, $this->NP['general_prohibited'])) {
-                $this->_error('NAMEPREP: Prohibited input U+'.sprintf('%08X', $v));
-                return false;
-            }
-            foreach ($this->NP['prohibit_ranges'] as $range) {
-                if ($range[0] <= $v && $v <= $range[1]) {
-                    $this->_error('NAMEPREP: Prohibited input U+'.sprintf('%08X', $v));
-                    return false;
-                }
-            }
-            //
-            // Hangul syllable decomposition
-            if (0xAC00 <= $v && $v <= 0xD7AF) {
-                foreach ($this->_hangul_decompose($v) as $out) {
-                    $output[] = (int) $out;
-                }
-            // There's a decomposition mapping for that code point
-            } elseif (isset($this->NP['replacemaps'][$v])) {
-                foreach ($this->_apply_cannonical_ordering($this->NP['replacemaps'][$v]) as $out) {
-                    $output[] = (int) $out;
-                }
-            } else {
-                $output[] = (int) $v;
-            }
-        }
-        // Before applying any Combining, try to rearrange any Hangul syllables
-        $output = $this->_hangul_compose($output);
-        //
-        // Combine code points
-        //
-        $last_class   = 0;
-        $last_starter = 0;
-        $out_len      = count($output);
-        for ($i = 0; $i < $out_len; ++$i) {
-            $class = $this->_get_combining_class($output[$i]);
-            if ((!$last_class || $last_class > $class) && $class) {
-                // Try to match
-                $seq_len = $i - $last_starter;
-                $out = $this->_combine(array_slice($output, $last_starter, $seq_len));
-                // On match: Replace the last starter with the composed character and remove
-                // the now redundant non-starter(s)
-                if ($out) {
-                    $output[$last_starter] = $out;
-                    if (count($out) != $seq_len) {
-                        for ($j = $i+1; $j < $out_len; ++$j) {
-                            $output[$j-1] = $output[$j];
-                        }
-                        unset($output[$out_len]);
-                    }
-                    // Rewind the for loop by one, since there can be more possible compositions
-                    $i--;
-                    $out_len--;
-                    $last_class = ($i == $last_starter) ? 0 : $this->_get_combining_class($output[$i-1]);
-                    continue;
-                }
-            }
-            // The current class is 0
-            if (!$class) $last_starter = $i;
-            $last_class = $class;
-        }
-        return $output;
-    }
-
-    /**
-     * Decomposes a Hangul syllable
-     * (see http://www.unicode.org/unicode/reports/tr15/#Hangul
-     * @param    integer  32bit UCS4 code point
-     * @return   array    Either Hangul Syllable decomposed or original 32bit value as one value array
-     * @access   private
-     */
-    function _hangul_decompose($char)
-    {
-        $sindex = (int) $char - $this->_sbase;
-        if ($sindex < 0 || $sindex >= $this->_scount) {
-            return array($char);
-        }
-        $result = array();
-        $result[] = (int) $this->_lbase + $sindex / $this->_ncount;
-        $result[] = (int) $this->_vbase + ($sindex % $this->_ncount) / $this->_tcount;
-        $T = intval($this->_tbase + $sindex % $this->_tcount);
-        if ($T != $this->_tbase) $result[] = $T;
-        return $result;
-    }
-    /**
-     * Ccomposes a Hangul syllable
-     * (see http://www.unicode.org/unicode/reports/tr15/#Hangul
-     * @param    array    Decomposed UCS4 sequence
-     * @return   array    UCS4 sequence with syllables composed
-     * @access   private
-     */
-    function _hangul_compose($input)
-    {
-        $inp_len = count($input);
-        if (!$inp_len) return array();
-        $result = array();
-        $last = (int) $input[0];
-        $result[] = $last; // copy first char from input to output
-
-        for ($i = 1; $i < $inp_len; ++$i) {
-            $char = (int) $input[$i];
-            $sindex = $last - $this->_sbase;
-            $lindex = $last - $this->_lbase;
-            $vindex = $char - $this->_vbase;
-            $tindex = $char - $this->_tbase;
-            // Find out, whether two current characters are LV and T
-            if (0 <= $sindex && $sindex < $this->_scount && ($sindex % $this->_tcount == 0)
-                    && 0 <= $tindex && $tindex <= $this->_tcount) {
-                // create syllable of form LVT
-                $last += $tindex;
-                $result[(count($result) - 1)] = $last; // reset last
-                continue; // discard char
-            }
-            // Find out, whether two current characters form L and V
-            if (0 <= $lindex && $lindex < $this->_lcount && 0 <= $vindex && $vindex < $this->_vcount) {
-                // create syllable of form LV
-                $last = (int) $this->_sbase + ($lindex * $this->_vcount + $vindex) * $this->_tcount;
-                $result[(count($result) - 1)] = $last; // reset last
-                continue; // discard char
-            }
-            // if neither case was true, just add the character
-            $last = $char;
-            $result[] = $char;
-        }
-        return $result;
-    }
-
-    /**
-     * Returns the combining class of a certain wide char
-     * @param    integer    Wide char to check (32bit integer)
-     * @return   integer    Combining class if found, else 0
-     * @access   private
-     */
-    function _get_combining_class($char)
-    {
-        return isset($this->NP['norm_combcls'][$char]) ? $this->NP['norm_combcls'][$char] : 0;
-    }
-
-    /**
-     * Apllies the cannonical ordering of a decomposed UCS4 sequence
-     * @param    array      Decomposed UCS4 sequence
-     * @return   array      Ordered USC4 sequence
-     * @access   private
-     */
-    function _apply_cannonical_ordering($input)
-    {
-        $swap = true;
-        $size = count($input);
-        while ($swap) {
-            $swap = false;
-            $last = $this->_get_combining_class(intval($input[0]));
-            for ($i = 0; $i < $size-1; ++$i) {
-                $next = $this->_get_combining_class(intval($input[$i+1]));
-                if ($next != 0 && $last > $next) {
-                    // Move item leftward until it fits
-                    for ($j = $i + 1; $j > 0; --$j) {
-                        if ($this->_get_combining_class(intval($input[$j-1])) <= $next) break;
-                        $t = intval($input[$j]);
-                        $input[$j] = intval($input[$j-1]);
-                        $input[$j-1] = $t;
-                        $swap = true;
-                    }
-                    // Reentering the loop looking at the old character again
-                    $next = $last;
-                }
-                $last = $next;
-            }
-        }
-        return $input;
-    }
-
-    /**
-     * Do composition of a sequence of starter and non-starter
-     * @param    array      UCS4 Decomposed sequence
-     * @return   array      Ordered USC4 sequence
-     * @access   private
-     */
-    function _combine($input)
-    {
-        $inp_len = count($input);
-        foreach ($this->NP['replacemaps'] as $np_src => $np_target) {
-            if ($np_target[0] != $input[0]) continue;
-            if (count($np_target) != $inp_len) continue;
-            $hit = false;
-            foreach ($input as $k2 => $v2) {
-                if ($v2 == $np_target[$k2]) {
-                    $hit = true;
-                } else {
-                    $hit = false;
-                    break;
-                }
-            }
-            if ($hit) return $np_src;
-        }
-        return false;
-    }
-
-    /**
-     * This converts an UTF-8 encoded string to its UCS-4 representation
-     * By talking about UCS-4 "strings" we mean arrays of 32bit integers representing
-     * each of the "chars". This is due to PHP not being able to handle strings with
-     * bit depth different from 8. This apllies to the reverse method _ucs4_to_utf8(), too.
-     * The following UTF-8 encodings are supported:
-     * bytes bits  representation
-     * 1        7  0xxxxxxx
-     * 2       11  110xxxxx 10xxxxxx
-     * 3       16  1110xxxx 10xxxxxx 10xxxxxx
-     * 4       21  11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
-     * 5       26  111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
-     * 6       31  1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
-     * Each x represents a bit that can be used to store character data.
-     * The five and six byte sequences are part of Annex D of ISO/IEC 10646-1:2000
-     * @access   private
-     */
-    function _utf8_to_ucs4($input)
-    {
-        $output = array();
-        $out_len = 0;
-        $inp_len = strlen($input);
-        $mode = 'next';
-        $test = 'none';
-        for ($k = 0; $k < $inp_len; ++$k) {
-            $v = ord($input{$k}); // Extract byte from input string
-
-            if ($v < 128) { // We found an ASCII char - put into stirng as is
-                $output[$out_len] = $v;
-                ++$out_len;
-                if ('add' == $mode) {
-                    $this->_error('Conversion from UTF-8 to UCS-4 failed: malformed input at byte '.$k);
-                    return false;
-                }
-                continue;
-            }
-            if ('next' == $mode) { // Try to find the next start byte; determine the width of the Unicode char
-                $start_byte = $v;
-                $mode = 'add';
-                $test = 'range';
-                if ($v >> 5 == 6) { // &110xxxxx 10xxxxx
-                    $next_byte = 0; // Tells, how many times subsequent bitmasks must rotate 6bits to the left
-                    $v = ($v - 192) << 6;
-                } elseif ($v >> 4 == 14) { // &1110xxxx 10xxxxxx 10xxxxxx
-                    $next_byte = 1;
-                    $v = ($v - 224) << 12;
-                } elseif ($v >> 3 == 30) { // &11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
-                    $next_byte = 2;
-                    $v = ($v - 240) << 18;
-                } elseif ($v >> 2 == 62) { // &111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
-                    $next_byte = 3;
-                    $v = ($v - 248) << 24;
-                } elseif ($v >> 1 == 126) { // &1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
-                    $next_byte = 4;
-                    $v = ($v - 252) << 30;
-                } else {
-                    $this->_error('This might be UTF-8, but I don\'t understand it at byte '.$k);
-                    return false;
-                }
-                if ('add' == $mode) {
-                    $output[$out_len] = (int) $v;
-                    ++$out_len;
-                    continue;
-                }
-            }
-            if ('add' == $mode) {
-                if (!$this->_allow_overlong && $test == 'range') {
-                    $test = 'none';
-                    if (($v < 0xA0 && $start_byte == 0xE0) || ($v < 0x90 && $start_byte == 0xF0) || ($v > 0x8F && $start_byte == 0xF4)) {
-                        $this->_error('Bogus UTF-8 character detected (out of legal range) at byte '.$k);
-                        return false;
-                    }
-                }
-                if ($v >> 6 == 2) { // Bit mask must be 10xxxxxx
-                    $v = ($v - 128) << ($next_byte * 6);
-                    $output[($out_len - 1)] += $v;
-                    --$next_byte;
-                } else {
-                    $this->_error('Conversion from UTF-8 to UCS-4 failed: malformed input at byte '.$k);
-                    return false;
-                }
-                if ($next_byte < 0) {
-                    $mode = 'next';
-                }
-            }
-        } // for
-        return $output;
-    }
-
-    /**
-     * Convert UCS-4 string into UTF-8 string
-     * See _utf8_to_ucs4() for details
-     * @access   private
-     */
-    function _ucs4_to_utf8($input)
-    {
-        $output = '';
-        $k = 0;
-        foreach ($input as $v) {
-            ++$k;
-            // $v = ord($v);
-            if ($v < 128) { // 7bit are transferred literally
-                $output .= chr($v);
-            } elseif ($v < (1 << 11)) { // 2 bytes
-                $output .= chr(192 + ($v >> 6)) . chr(128 + ($v & 63));
-            } elseif ($v < (1 << 16)) { // 3 bytes
-                $output .= chr(224 + ($v >> 12)) . chr(128 + (($v >> 6) & 63)) . chr(128 + ($v & 63));
-            } elseif ($v < (1 << 21)) { // 4 bytes
-                $output .= chr(240 + ($v >> 18)) . chr(128 + (($v >> 12) & 63))
-                         . chr(128 + (($v >> 6) & 63)) . chr(128 + ($v & 63));
-            } elseif ($v < (1 << 26)) { // 5 bytes
-                $output .= chr(248 + ($v >> 24)) . chr(128 + (($v >> 18) & 63))
-                         . chr(128 + (($v >> 12) & 63)) . chr(128 + (($v >> 6) & 63))
-                         . chr(128 + ($v & 63));
-            } elseif ($v < (1 << 31)) { // 6 bytes
-                $output .= chr(252 + ($v >> 30)) . chr(128 + (($v >> 24) & 63))
-                         . chr(128 + (($v >> 18) & 63)) . chr(128 + (($v >> 12) & 63))
-                         . chr(128 + (($v >> 6) & 63)) . chr(128 + ($v & 63));
-            } else {
-                $this->_error('Conversion from UCS-4 to UTF-8 failed: malformed input at byte '.$k);
-                return false;
-            }
-        }
-        return $output;
-    }
-
-    /**
-      * Convert UCS-4 array into UCS-4 string
-      *
-      * @access   private
-      */
-    function _ucs4_to_ucs4_string($input)
-    {
-        $output = '';
-        // Take array values and split output to 4 bytes per value
-        // The bit mask is 255, which reads &11111111
-        foreach ($input as $v) {
-            $output .= chr(($v >> 24) & 255).chr(($v >> 16) & 255).chr(($v >> 8) & 255).chr($v & 255);
-        }
-        return $output;
-    }
-
-    /**
-      * Convert UCS-4 strin into UCS-4 garray
-      *
-      * @access   private
-      */
-    function _ucs4_string_to_ucs4($input)
-    {
-        $output = array();
-        $inp_len = strlen($input);
-        // Input length must be dividable by 4
-        if ($inp_len % 4) {
-            $this->_error('Input UCS4 string is broken');
-            return false;
-        }
-        // Empty input - return empty output
-        if (!$inp_len) return $output;
-        for ($i = 0, $out_len = -1; $i < $inp_len; ++$i) {
-            // Increment output position every 4 input bytes
-            if (!($i % 4)) {
-                $out_len++;
-                $output[$out_len] = 0;
-            }
-            $output[$out_len] += ord($input{$i}) << (8 * (3 - ($i % 4) ) );
-        }
-        return $output;
-    }
-}
-
-/**
-* Adapter class for aligning the API of idna_convert with that of Net_IDNA
-* @author  Matthias Sommerfeld <mso@phlylabs.de>
-*/
-class Net_IDNA_php4 extends idna_convert
-{
-    /**
-     * Sets a new option value. Available options and values:
-     * [encoding - Use either UTF-8, UCS4 as array or UCS4 as string as input ('utf8' for UTF-8,
-     *         'ucs4_string' and 'ucs4_array' respectively for UCS4); The output is always UTF-8]
-     * [overlong - Unicode does not allow unnecessarily long encodings of chars,
-     *             to allow this, set this parameter to true, else to false;
-     *             default is false.]
-     * [strict - true: strict mode, good for registration purposes - Causes errors
-     *           on failures; false: loose mode, ideal for "wildlife" applications
-     *           by silently ignoring errors and returning the original input instead
-     *
-     * @param    mixed     Parameter to set (string: single parameter; array of Parameter => Value pairs)
-     * @param    string    Value to use (if parameter 1 is a string)
-     * @return   boolean   true on success, false otherwise
-     * @access   public
-     */
-    function setParams($option, $param = false)
-    {
-        return $this->IC->set_parameters($option, $param);
-    }
-}
-
-?>
diff --git a/wiki/vendor/simplepie/simplepie/idn/npdata.ser b/wiki/vendor/simplepie/simplepie/idn/npdata.ser
deleted file mode 100644
index d7ce6d0..0000000
--- a/wiki/vendor/simplepie/simplepie/idn/npdata.ser
+++ /dev/null
@@ -1 +0,0 @@
-a:6:{s:11:"map_nothing";a:27:{i:0;i:173;i:1;i:847;i:2;i:6150;i:3;i:6155;i:4;i:6156;i:5;i:6157;i:6;i:8203;i:7;i:8204;i:8;i:8205;i:9;i:8288;i:10;i:65024;i:11;i:65025;i:12;i:65026;i:13;i:65027;i:14;i:65028;i:15;i:65029;i:16;i:65030;i:17;i:65031;i:18;i:65032;i:19;i:65033;i:20;i:65034;i:21;i:65035;i:22;i:65036;i:23;i:65037;i:24;i:65038;i:25;i:65039;i:26;i:65279;}s:18:"general_prohibited";a:64:{i:0;i:0;i:1;i:1;i:2;i:2;i:3;i:3;i:4;i:4;i:5;i:5;i:6;i:6;i:7;i:7;i:8;i:8;i:9;i:9;i:10;i:10;i:11;i:11;i:12;i:12;i:13;i:13;i:14;i:14;i:15;i:15;i:16;i:16;i:17;i:17;i:18;i:18;i:19;i:19;i:20;i:20;i:21;i:21;i:22;i:22;i:23;i:23;i:24;i:24;i:25;i:25;i:26;i:26;i:27;i:27;i:28;i:28;i:29;i:29;i:30;i:30;i:31;i:31;i:32;i:32;i:33;i:33;i:34;i:34;i:35;i:35;i:36;i:36;i:37;i:37;i:38;i:38;i:39;i:39;i:40;i:40;i:41;i:41;i:42;i:42;i:43;i:43;i:44;i:44;i:45;i:47;i:46;i:59;i:47;i:60;i:48;i:61;i:49;i:62;i:50;i:63;i:51;i:64;i:52;i:91;i:53;i:92;i:54;i:93;i:55;i:94;i:56;i:95;i:57;i:96;i:58;i:123;i:59;i:124;i:60;i:125;i:61;i:126;i:62;i:127;i:63;i:12290;}s:8:"prohibit";a:84:{i:0;i:160;i:1;i:5760;i:2;i:8192;i:3;i:8193;i:4;i:8194;i:5;i:8195;i:6;i:8196;i:7;i:8197;i:8;i:8198;i:9;i:8199;i:10;i:8200;i:11;i:8201;i:12;i:8202;i:13;i:8203;i:14;i:8239;i:15;i:8287;i:16;i:12288;i:17;i:1757;i:18;i:1807;i:19;i:6158;i:20;i:8204;i:21;i:8205;i:22;i:8232;i:23;i:8233;i:24;i:65279;i:25;i:65529;i:26;i:65530;i:27;i:65531;i:28;i:65532;i:29;i:65534;i:30;i:65535;i:31;i:131070;i:32;i:131071;i:33;i:196606;i:34;i:196607;i:35;i:262142;i:36;i:262143;i:37;i:327678;i:38;i:327679;i:39;i:393214;i:40;i:393215;i:41;i:458750;i:42;i:458751;i:43;i:524286;i:44;i:524287;i:45;i:589822;i:46;i:589823;i:47;i:655358;i:48;i:655359;i:49;i:720894;i:50;i:720895;i:51;i:786430;i:52;i:786431;i:53;i:851966;i:54;i:851967;i:55;i:917502;i:56;i:917503;i:57;i:983038;i:58;i:983039;i:59;i:1048574;i:60;i:1048575;i:61;i:1114110;i:62;i:1114111;i:63;i:65529;i:64;i:65530;i:65;i:65531;i:66;i:65532;i:67;i:65533;i:68;i:832;i:69;i:833;i:70;i:8206;i:71;i:8207;i:72;i:8234;i:73;i:8235;i:74;i:8236;i:75;i:8237;i:76;i:8238;i:77;i:8298;i:78;i:8299;i:79;i:8300;i:80;i:8301;i:81;i:8302;i:82;i:8303;i:83;i:917505;}s:15:"prohibit_ranges";a:10:{i:0;a:2:{i:0;i:128;i:1;i:159;}i:1;a:2:{i:0;i:8288;i:1;i:8303;}i:2;a:2:{i:0;i:119155;i:1;i:119162;}i:3;a:2:{i:0;i:57344;i:1;i:63743;}i:4;a:2:{i:0;i:983040;i:1;i:1048573;}i:5;a:2:{i:0;i:1048576;i:1;i:1114109;}i:6;a:2:{i:0;i:64976;i:1;i:65007;}i:7;a:2:{i:0;i:55296;i:1;i:57343;}i:8;a:2:{i:0;i:12272;i:1;i:12283;}i:9;a:2:{i:0;i:917536;i:1;i:917631;}}s:11:"replacemaps";a:1401:{i:65;a:1:{i:0;i:97;}i:66;a:1:{i:0;i:98;}i:67;a:1:{i:0;i:99;}i:68;a:1:{i:0;i:100;}i:69;a:1:{i:0;i:101;}i:70;a:1:{i:0;i:102;}i:71;a:1:{i:0;i:103;}i:72;a:1:{i:0;i:104;}i:73;a:1:{i:0;i:105;}i:74;a:1:{i:0;i:106;}i:75;a:1:{i:0;i:107;}i:76;a:1:{i:0;i:108;}i:77;a:1:{i:0;i:109;}i:78;a:1:{i:0;i:110;}i:79;a:1:{i:0;i:111;}i:80;a:1:{i:0;i:112;}i:81;a:1:{i:0;i:113;}i:82;a:1:{i:0;i:114;}i:83;a:1:{i:0;i:115;}i:84;a:1:{i:0;i:116;}i:85;a:1:{i:0;i:117;}i:86;a:1:{i:0;i:118;}i:87;a:1:{i:0;i:119;}i:88;a:1:{i:0;i:120;}i:89;a:1:{i:0;i:121;}i:90;a:1:{i:0;i:122;}i:181;a:1:{i:0;i:956;}i:192;a:1:{i:0;i:224;}i:193;a:1:{i:0;i:225;}i:194;a:1:{i:0;i:226;}i:195;a:1:{i:0;i:227;}i:196;a:1:{i:0;i:228;}i:197;a:1:{i:0;i:229;}i:198;a:1:{i:0;i:230;}i:199;a:1:{i:0;i:231;}i:200;a:1:{i:0;i:232;}i:201;a:1:{i:0;i:233;}i:202;a:1:{i:0;i:234;}i:203;a:1:{i:0;i:235;}i:204;a:1:{i:0;i:236;}i:205;a:1:{i:0;i:237;}i:206;a:1:{i:0;i:238;}i:207;a:1:{i:0;i:239;}i:208;a:1:{i:0;i:240;}i:209;a:1:{i:0;i:241;}i:210;a:1:{i:0;i:242;}i:211;a:1:{i:0;i:243;}i:212;a:1:{i:0;i:244;}i:213;a:1:{i:0;i:245;}i:214;a:1:{i:0;i:246;}i:216;a:1:{i:0;i:248;}i:217;a:1:{i:0;i:249;}i:218;a:1:{i:0;i:250;}i:219;a:1:{i:0;i:251;}i:220;a:1:{i:0;i:252;}i:221;a:1:{i:0;i:253;}i:222;a:1:{i:0;i:254;}i:223;a:2:{i:0;i:115;i:1;i:115;}i:256;a:1:{i:0;i:257;}i:258;a:1:{i:0;i:259;}i:260;a:1:{i:0;i:261;}i:262;a:1:{i:0;i:263;}i:264;a:1:{i:0;i:265;}i:266;a:1:{i:0;i:267;}i:268;a:1:{i:0;i:269;}i:270;a:1:{i:0;i:271;}i:272;a:1:{i:0;i:273;}i:274;a:1:{i:0;i:275;}i:276;a:1:{i:0;i:277;}i:278;a:1:{i:0;i:279;}i:280;a:1:{i:0;i:281;}i:282;a:1:{i:0;i:283;}i:284;a:1:{i:0;i:285;}i:286;a:1:{i:0;i:287;}i:288;a:1:{i:0;i:289;}i:290;a:1:{i:0;i:291;}i:292;a:1:{i:0;i:293;}i:294;a:1:{i:0;i:295;}i:296;a:1:{i:0;i:297;}i:298;a:1:{i:0;i:299;}i:300;a:1:{i:0;i:301;}i:302;a:1:{i:0;i:303;}i:304;a:2:{i:0;i:105;i:1;i:775;}i:306;a:1:{i:0;i:307;}i:308;a:1:{i:0;i:309;}i:310;a:1:{i:0;i:311;}i:313;a:1:{i:0;i:314;}i:315;a:1:{i:0;i:316;}i:317;a:1:{i:0;i:318;}i:319;a:1:{i:0;i:320;}i:321;a:1:{i:0;i:322;}i:323;a:1:{i:0;i:324;}i:325;a:1:{i:0;i:326;}i:327;a:1:{i:0;i:328;}i:329;a:2:{i:0;i:700;i:1;i:110;}i:330;a:1:{i:0;i:331;}i:332;a:1:{i:0;i:333;}i:334;a:1:{i:0;i:335;}i:336;a:1:{i:0;i:337;}i:338;a:1:{i:0;i:339;}i:340;a:1:{i:0;i:341;}i:342;a:1:{i:0;i:343;}i:344;a:1:{i:0;i:345;}i:346;a:1:{i:0;i:347;}i:348;a:1:{i:0;i:349;}i:350;a:1:{i:0;i:351;}i:352;a:1:{i:0;i:353;}i:354;a:1:{i:0;i:355;}i:356;a:1:{i:0;i:357;}i:358;a:1:{i:0;i:359;}i:360;a:1:{i:0;i:361;}i:362;a:1:{i:0;i:363;}i:364;a:1:{i:0;i:365;}i:366;a:1:{i:0;i:367;}i:368;a:1:{i:0;i:369;}i:370;a:1:{i:0;i:371;}i:372;a:1:{i:0;i:373;}i:374;a:1:{i:0;i:375;}i:376;a:1:{i:0;i:255;}i:377;a:1:{i:0;i:378;}i:379;a:1:{i:0;i:380;}i:381;a:1:{i:0;i:382;}i:383;a:1:{i:0;i:115;}i:385;a:1:{i:0;i:595;}i:386;a:1:{i:0;i:387;}i:388;a:1:{i:0;i:389;}i:390;a:1:{i:0;i:596;}i:391;a:1:{i:0;i:392;}i:393;a:1:{i:0;i:598;}i:394;a:1:{i:0;i:599;}i:395;a:1:{i:0;i:396;}i:398;a:1:{i:0;i:477;}i:399;a:1:{i:0;i:601;}i:400;a:1:{i:0;i:603;}i:401;a:1:{i:0;i:402;}i:403;a:1:{i:0;i:608;}i:404;a:1:{i:0;i:611;}i:406;a:1:{i:0;i:617;}i:407;a:1:{i:0;i:616;}i:408;a:1:{i:0;i:409;}i:412;a:1:{i:0;i:623;}i:413;a:1:{i:0;i:626;}i:415;a:1:{i:0;i:629;}i:416;a:1:{i:0;i:417;}i:418;a:1:{i:0;i:419;}i:420;a:1:{i:0;i:421;}i:422;a:1:{i:0;i:640;}i:423;a:1:{i:0;i:424;}i:425;a:1:{i:0;i:643;}i:428;a:1:{i:0;i:429;}i:430;a:1:{i:0;i:648;}i:431;a:1:{i:0;i:432;}i:433;a:1:{i:0;i:650;}i:434;a:1:{i:0;i:651;}i:435;a:1:{i:0;i:436;}i:437;a:1:{i:0;i:438;}i:439;a:1:{i:0;i:658;}i:440;a:1:{i:0;i:441;}i:444;a:1:{i:0;i:445;}i:452;a:1:{i:0;i:454;}i:453;a:1:{i:0;i:454;}i:455;a:1:{i:0;i:457;}i:456;a:1:{i:0;i:457;}i:458;a:1:{i:0;i:460;}i:459;a:1:{i:0;i:460;}i:461;a:1:{i:0;i:462;}i:463;a:1:{i:0;i:464;}i:465;a:1:{i:0;i:466;}i:467;a:1:{i:0;i:468;}i:469;a:1:{i:0;i:470;}i:471;a:1:{i:0;i:472;}i:473;a:1:{i:0;i:474;}i:475;a:1:{i:0;i:476;}i:478;a:1:{i:0;i:479;}i:480;a:1:{i:0;i:481;}i:482;a:1:{i:0;i:483;}i:484;a:1:{i:0;i:485;}i:486;a:1:{i:0;i:487;}i:488;a:1:{i:0;i:489;}i:490;a:1:{i:0;i:491;}i:492;a:1:{i:0;i:493;}i:494;a:1:{i:0;i:495;}i:496;a:2:{i:0;i:106;i:1;i:780;}i:497;a:1:{i:0;i:499;}i:498;a:1:{i:0;i:499;}i:500;a:1:{i:0;i:501;}i:502;a:1:{i:0;i:405;}i:503;a:1:{i:0;i:447;}i:504;a:1:{i:0;i:505;}i:506;a:1:{i:0;i:507;}i:508;a:1:{i:0;i:509;}i:510;a:1:{i:0;i:511;}i:512;a:1:{i:0;i:513;}i:514;a:1:{i:0;i:515;}i:516;a:1:{i:0;i:517;}i:518;a:1:{i:0;i:519;}i:520;a:1:{i:0;i:521;}i:522;a:1:{i:0;i:523;}i:524;a:1:{i:0;i:525;}i:526;a:1:{i:0;i:527;}i:528;a:1:{i:0;i:529;}i:530;a:1:{i:0;i:531;}i:532;a:1:{i:0;i:533;}i:534;a:1:{i:0;i:535;}i:536;a:1:{i:0;i:537;}i:538;a:1:{i:0;i:539;}i:540;a:1:{i:0;i:541;}i:542;a:1:{i:0;i:543;}i:544;a:1:{i:0;i:414;}i:546;a:1:{i:0;i:547;}i:548;a:1:{i:0;i:549;}i:550;a:1:{i:0;i:551;}i:552;a:1:{i:0;i:553;}i:554;a:1:{i:0;i:555;}i:556;a:1:{i:0;i:557;}i:558;a:1:{i:0;i:559;}i:560;a:1:{i:0;i:561;}i:562;a:1:{i:0;i:563;}i:837;a:1:{i:0;i:953;}i:890;a:2:{i:0;i:32;i:1;i:953;}i:902;a:1:{i:0;i:940;}i:904;a:1:{i:0;i:941;}i:905;a:1:{i:0;i:942;}i:906;a:1:{i:0;i:943;}i:908;a:1:{i:0;i:972;}i:910;a:1:{i:0;i:973;}i:911;a:1:{i:0;i:974;}i:912;a:3:{i:0;i:953;i:1;i:776;i:2;i:769;}i:913;a:1:{i:0;i:945;}i:914;a:1:{i:0;i:946;}i:915;a:1:{i:0;i:947;}i:916;a:1:{i:0;i:948;}i:917;a:1:{i:0;i:949;}i:918;a:1:{i:0;i:950;}i:919;a:1:{i:0;i:951;}i:920;a:1:{i:0;i:952;}i:921;a:1:{i:0;i:953;}i:922;a:1:{i:0;i:954;}i:923;a:1:{i:0;i:955;}i:924;a:1:{i:0;i:956;}i:925;a:1:{i:0;i:957;}i:926;a:1:{i:0;i:958;}i:927;a:1:{i:0;i:959;}i:928;a:1:{i:0;i:960;}i:929;a:1:{i:0;i:961;}i:931;a:1:{i:0;i:963;}i:932;a:1:{i:0;i:964;}i:933;a:1:{i:0;i:965;}i:934;a:1:{i:0;i:966;}i:935;a:1:{i:0;i:967;}i:936;a:1:{i:0;i:968;}i:937;a:1:{i:0;i:969;}i:938;a:1:{i:0;i:970;}i:939;a:1:{i:0;i:971;}i:944;a:3:{i:0;i:965;i:1;i:776;i:2;i:769;}i:962;a:1:{i:0;i:963;}i:976;a:1:{i:0;i:946;}i:977;a:1:{i:0;i:952;}i:978;a:1:{i:0;i:965;}i:979;a:1:{i:0;i:973;}i:980;a:1:{i:0;i:971;}i:981;a:1:{i:0;i:966;}i:982;a:1:{i:0;i:960;}i:984;a:1:{i:0;i:985;}i:986;a:1:{i:0;i:987;}i:988;a:1:{i:0;i:989;}i:990;a:1:{i:0;i:991;}i:992;a:1:{i:0;i:993;}i:994;a:1:{i:0;i:995;}i:996;a:1:{i:0;i:997;}i:998;a:1:{i:0;i:999;}i:1000;a:1:{i:0;i:1001;}i:1002;a:1:{i:0;i:1003;}i:1004;a:1:{i:0;i:1005;}i:1006;a:1:{i:0;i:1007;}i:1008;a:1:{i:0;i:954;}i:1009;a:1:{i:0;i:961;}i:1010;a:1:{i:0;i:963;}i:1012;a:1:{i:0;i:952;}i:1013;a:1:{i:0;i:949;}i:1024;a:1:{i:0;i:1104;}i:1025;a:1:{i:0;i:1105;}i:1026;a:1:{i:0;i:1106;}i:1027;a:1:{i:0;i:1107;}i:1028;a:1:{i:0;i:1108;}i:1029;a:1:{i:0;i:1109;}i:1030;a:1:{i:0;i:1110;}i:1031;a:1:{i:0;i:1111;}i:1032;a:1:{i:0;i:1112;}i:1033;a:1:{i:0;i:1113;}i:1034;a:1:{i:0;i:1114;}i:1035;a:1:{i:0;i:1115;}i:1036;a:1:{i:0;i:1116;}i:1037;a:1:{i:0;i:1117;}i:1038;a:1:{i:0;i:1118;}i:1039;a:1:{i:0;i:1119;}i:1040;a:1:{i:0;i:1072;}i:1041;a:1:{i:0;i:1073;}i:1042;a:1:{i:0;i:1074;}i:1043;a:1:{i:0;i:1075;}i:1044;a:1:{i:0;i:1076;}i:1045;a:1:{i:0;i:1077;}i:1046;a:1:{i:0;i:1078;}i:1047;a:1:{i:0;i:1079;}i:1048;a:1:{i:0;i:1080;}i:1049;a:1:{i:0;i:1081;}i:1050;a:1:{i:0;i:1082;}i:1051;a:1:{i:0;i:1083;}i:1052;a:1:{i:0;i:1084;}i:1053;a:1:{i:0;i:1085;}i:1054;a:1:{i:0;i:1086;}i:1055;a:1:{i:0;i:1087;}i:1056;a:1:{i:0;i:1088;}i:1057;a:1:{i:0;i:1089;}i:1058;a:1:{i:0;i:1090;}i:1059;a:1:{i:0;i:1091;}i:1060;a:1:{i:0;i:1092;}i:1061;a:1:{i:0;i:1093;}i:1062;a:1:{i:0;i:1094;}i:1063;a:1:{i:0;i:1095;}i:1064;a:1:{i:0;i:1096;}i:1065;a:1:{i:0;i:1097;}i:1066;a:1:{i:0;i:1098;}i:1067;a:1:{i:0;i:1099;}i:1068;a:1:{i:0;i:1100;}i:1069;a:1:{i:0;i:1101;}i:1070;a:1:{i:0;i:1102;}i:1071;a:1:{i:0;i:1103;}i:1120;a:1:{i:0;i:1121;}i:1122;a:1:{i:0;i:1123;}i:1124;a:1:{i:0;i:1125;}i:1126;a:1:{i:0;i:1127;}i:1128;a:1:{i:0;i:1129;}i:1130;a:1:{i:0;i:1131;}i:1132;a:1:{i:0;i:1133;}i:1134;a:1:{i:0;i:1135;}i:1136;a:1:{i:0;i:1137;}i:1138;a:1:{i:0;i:1139;}i:1140;a:1:{i:0;i:1141;}i:1142;a:1:{i:0;i:1143;}i:1144;a:1:{i:0;i:1145;}i:1146;a:1:{i:0;i:1147;}i:1148;a:1:{i:0;i:1149;}i:1150;a:1:{i:0;i:1151;}i:1152;a:1:{i:0;i:1153;}i:1162;a:1:{i:0;i:1163;}i:1164;a:1:{i:0;i:1165;}i:1166;a:1:{i:0;i:1167;}i:1168;a:1:{i:0;i:1169;}i:1170;a:1:{i:0;i:1171;}i:1172;a:1:{i:0;i:1173;}i:1174;a:1:{i:0;i:1175;}i:1176;a:1:{i:0;i:1177;}i:1178;a:1:{i:0;i:1179;}i:1180;a:1:{i:0;i:1181;}i:1182;a:1:{i:0;i:1183;}i:1184;a:1:{i:0;i:1185;}i:1186;a:1:{i:0;i:1187;}i:1188;a:1:{i:0;i:1189;}i:1190;a:1:{i:0;i:1191;}i:1192;a:1:{i:0;i:1193;}i:1194;a:1:{i:0;i:1195;}i:1196;a:1:{i:0;i:1197;}i:1198;a:1:{i:0;i:1199;}i:1200;a:1:{i:0;i:1201;}i:1202;a:1:{i:0;i:1203;}i:1204;a:1:{i:0;i:1205;}i:1206;a:1:{i:0;i:1207;}i:1208;a:1:{i:0;i:1209;}i:1210;a:1:{i:0;i:1211;}i:1212;a:1:{i:0;i:1213;}i:1214;a:1:{i:0;i:1215;}i:1217;a:1:{i:0;i:1218;}i:1219;a:1:{i:0;i:1220;}i:1221;a:1:{i:0;i:1222;}i:1223;a:1:{i:0;i:1224;}i:1225;a:1:{i:0;i:1226;}i:1227;a:1:{i:0;i:1228;}i:1229;a:1:{i:0;i:1230;}i:1232;a:1:{i:0;i:1233;}i:1234;a:1:{i:0;i:1235;}i:1236;a:1:{i:0;i:1237;}i:1238;a:1:{i:0;i:1239;}i:1240;a:1:{i:0;i:1241;}i:1242;a:1:{i:0;i:1243;}i:1244;a:1:{i:0;i:1245;}i:1246;a:1:{i:0;i:1247;}i:1248;a:1:{i:0;i:1249;}i:1250;a:1:{i:0;i:1251;}i:1252;a:1:{i:0;i:1253;}i:1254;a:1:{i:0;i:1255;}i:1256;a:1:{i:0;i:1257;}i:1258;a:1:{i:0;i:1259;}i:1260;a:1:{i:0;i:1261;}i:1262;a:1:{i:0;i:1263;}i:1264;a:1:{i:0;i:1265;}i:1266;a:1:{i:0;i:1267;}i:1268;a:1:{i:0;i:1269;}i:1272;a:1:{i:0;i:1273;}i:1280;a:1:{i:0;i:1281;}i:1282;a:1:{i:0;i:1283;}i:1284;a:1:{i:0;i:1285;}i:1286;a:1:{i:0;i:1287;}i:1288;a:1:{i:0;i:1289;}i:1290;a:1:{i:0;i:1291;}i:1292;a:1:{i:0;i:1293;}i:1294;a:1:{i:0;i:1295;}i:1329;a:1:{i:0;i:1377;}i:1330;a:1:{i:0;i:1378;}i:1331;a:1:{i:0;i:1379;}i:1332;a:1:{i:0;i:1380;}i:1333;a:1:{i:0;i:1381;}i:1334;a:1:{i:0;i:1382;}i:1335;a:1:{i:0;i:1383;}i:1336;a:1:{i:0;i:1384;}i:1337;a:1:{i:0;i:1385;}i:1338;a:1:{i:0;i:1386;}i:1339;a:1:{i:0;i:1387;}i:1340;a:1:{i:0;i:1388;}i:1341;a:1:{i:0;i:1389;}i:1342;a:1:{i:0;i:1390;}i:1343;a:1:{i:0;i:1391;}i:1344;a:1:{i:0;i:1392;}i:1345;a:1:{i:0;i:1393;}i:1346;a:1:{i:0;i:1394;}i:1347;a:1:{i:0;i:1395;}i:1348;a:1:{i:0;i:1396;}i:1349;a:1:{i:0;i:1397;}i:1350;a:1:{i:0;i:1398;}i:1351;a:1:{i:0;i:1399;}i:1352;a:1:{i:0;i:1400;}i:1353;a:1:{i:0;i:1401;}i:1354;a:1:{i:0;i:1402;}i:1355;a:1:{i:0;i:1403;}i:1356;a:1:{i:0;i:1404;}i:1357;a:1:{i:0;i:1405;}i:1358;a:1:{i:0;i:1406;}i:1359;a:1:{i:0;i:1407;}i:1360;a:1:{i:0;i:1408;}i:1361;a:1:{i:0;i:1409;}i:1362;a:1:{i:0;i:1410;}i:1363;a:1:{i:0;i:1411;}i:1364;a:1:{i:0;i:1412;}i:1365;a:1:{i:0;i:1413;}i:1366;a:1:{i:0;i:1414;}i:1415;a:2:{i:0;i:1381;i:1;i:1410;}i:7680;a:1:{i:0;i:7681;}i:7682;a:1:{i:0;i:7683;}i:7684;a:1:{i:0;i:7685;}i:7686;a:1:{i:0;i:7687;}i:7688;a:1:{i:0;i:7689;}i:7690;a:1:{i:0;i:7691;}i:7692;a:1:{i:0;i:7693;}i:7694;a:1:{i:0;i:7695;}i:7696;a:1:{i:0;i:7697;}i:7698;a:1:{i:0;i:7699;}i:7700;a:1:{i:0;i:7701;}i:7702;a:1:{i:0;i:7703;}i:7704;a:1:{i:0;i:7705;}i:7706;a:1:{i:0;i:7707;}i:7708;a:1:{i:0;i:7709;}i:7710;a:1:{i:0;i:7711;}i:7712;a:1:{i:0;i:7713;}i:7714;a:1:{i:0;i:7715;}i:7716;a:1:{i:0;i:7717;}i:7718;a:1:{i:0;i:7719;}i:7720;a:1:{i:0;i:7721;}i:7722;a:1:{i:0;i:7723;}i:7724;a:1:{i:0;i:7725;}i:7726;a:1:{i:0;i:7727;}i:7728;a:1:{i:0;i:7729;}i:7730;a:1:{i:0;i:7731;}i:7732;a:1:{i:0;i:7733;}i:7734;a:1:{i:0;i:7735;}i:7736;a:1:{i:0;i:7737;}i:7738;a:1:{i:0;i:7739;}i:7740;a:1:{i:0;i:7741;}i:7742;a:1:{i:0;i:7743;}i:7744;a:1:{i:0;i:7745;}i:7746;a:1:{i:0;i:7747;}i:7748;a:1:{i:0;i:7749;}i:7750;a:1:{i:0;i:7751;}i:7752;a:1:{i:0;i:7753;}i:7754;a:1:{i:0;i:7755;}i:7756;a:1:{i:0;i:7757;}i:7758;a:1:{i:0;i:7759;}i:7760;a:1:{i:0;i:7761;}i:7762;a:1:{i:0;i:7763;}i:7764;a:1:{i:0;i:7765;}i:7766;a:1:{i:0;i:7767;}i:7768;a:1:{i:0;i:7769;}i:7770;a:1:{i:0;i:7771;}i:7772;a:1:{i:0;i:7773;}i:7774;a:1:{i:0;i:7775;}i:7776;a:1:{i:0;i:7777;}i:7778;a:1:{i:0;i:7779;}i:7780;a:1:{i:0;i:7781;}i:7782;a:1:{i:0;i:7783;}i:7784;a:1:{i:0;i:7785;}i:7786;a:1:{i:0;i:7787;}i:7788;a:1:{i:0;i:7789;}i:7790;a:1:{i:0;i:7791;}i:7792;a:1:{i:0;i:7793;}i:7794;a:1:{i:0;i:7795;}i:7796;a:1:{i:0;i:7797;}i:7798;a:1:{i:0;i:7799;}i:7800;a:1:{i:0;i:7801;}i:7802;a:1:{i:0;i:7803;}i:7804;a:1:{i:0;i:7805;}i:7806;a:1:{i:0;i:7807;}i:7808;a:1:{i:0;i:7809;}i:7810;a:1:{i:0;i:7811;}i:7812;a:1:{i:0;i:7813;}i:7814;a:1:{i:0;i:7815;}i:7816;a:1:{i:0;i:7817;}i:7818;a:1:{i:0;i:7819;}i:7820;a:1:{i:0;i:7821;}i:7822;a:1:{i:0;i:7823;}i:7824;a:1:{i:0;i:7825;}i:7826;a:1:{i:0;i:7827;}i:7828;a:1:{i:0;i:7829;}i:7830;a:2:{i:0;i:104;i:1;i:817;}i:7831;a:2:{i:0;i:116;i:1;i:776;}i:7832;a:2:{i:0;i:119;i:1;i:778;}i:7833;a:2:{i:0;i:121;i:1;i:778;}i:7834;a:2:{i:0;i:97;i:1;i:702;}i:7835;a:1:{i:0;i:7777;}i:7840;a:1:{i:0;i:7841;}i:7842;a:1:{i:0;i:7843;}i:7844;a:1:{i:0;i:7845;}i:7846;a:1:{i:0;i:7847;}i:7848;a:1:{i:0;i:7849;}i:7850;a:1:{i:0;i:7851;}i:7852;a:1:{i:0;i:7853;}i:7854;a:1:{i:0;i:7855;}i:7856;a:1:{i:0;i:7857;}i:7858;a:1:{i:0;i:7859;}i:7860;a:1:{i:0;i:7861;}i:7862;a:1:{i:0;i:7863;}i:7864;a:1:{i:0;i:7865;}i:7866;a:1:{i:0;i:7867;}i:7868;a:1:{i:0;i:7869;}i:7870;a:1:{i:0;i:7871;}i:7872;a:1:{i:0;i:7873;}i:7874;a:1:{i:0;i:7875;}i:7876;a:1:{i:0;i:7877;}i:7878;a:1:{i:0;i:7879;}i:7880;a:1:{i:0;i:7881;}i:7882;a:1:{i:0;i:7883;}i:7884;a:1:{i:0;i:7885;}i:7886;a:1:{i:0;i:7887;}i:7888;a:1:{i:0;i:7889;}i:7890;a:1:{i:0;i:7891;}i:7892;a:1:{i:0;i:7893;}i:7894;a:1:{i:0;i:7895;}i:7896;a:1:{i:0;i:7897;}i:7898;a:1:{i:0;i:7899;}i:7900;a:1:{i:0;i:7901;}i:7902;a:1:{i:0;i:7903;}i:7904;a:1:{i:0;i:7905;}i:7906;a:1:{i:0;i:7907;}i:7908;a:1:{i:0;i:7909;}i:7910;a:1:{i:0;i:7911;}i:7912;a:1:{i:0;i:7913;}i:7914;a:1:{i:0;i:7915;}i:7916;a:1:{i:0;i:7917;}i:7918;a:1:{i:0;i:7919;}i:7920;a:1:{i:0;i:7921;}i:7922;a:1:{i:0;i:7923;}i:7924;a:1:{i:0;i:7925;}i:7926;a:1:{i:0;i:7927;}i:7928;a:1:{i:0;i:7929;}i:7944;a:1:{i:0;i:7936;}i:7945;a:1:{i:0;i:7937;}i:7946;a:1:{i:0;i:7938;}i:7947;a:1:{i:0;i:7939;}i:7948;a:1:{i:0;i:7940;}i:7949;a:1:{i:0;i:7941;}i:7950;a:1:{i:0;i:7942;}i:7951;a:1:{i:0;i:7943;}i:7960;a:1:{i:0;i:7952;}i:7961;a:1:{i:0;i:7953;}i:7962;a:1:{i:0;i:7954;}i:7963;a:1:{i:0;i:7955;}i:7964;a:1:{i:0;i:7956;}i:7965;a:1:{i:0;i:7957;}i:7976;a:1:{i:0;i:7968;}i:7977;a:1:{i:0;i:7969;}i:7978;a:1:{i:0;i:7970;}i:7979;a:1:{i:0;i:7971;}i:7980;a:1:{i:0;i:7972;}i:7981;a:1:{i:0;i:7973;}i:7982;a:1:{i:0;i:7974;}i:7983;a:1:{i:0;i:7975;}i:7992;a:1:{i:0;i:7984;}i:7993;a:1:{i:0;i:7985;}i:7994;a:1:{i:0;i:7986;}i:7995;a:1:{i:0;i:7987;}i:7996;a:1:{i:0;i:7988;}i:7997;a:1:{i:0;i:7989;}i:7998;a:1:{i:0;i:7990;}i:7999;a:1:{i:0;i:7991;}i:8008;a:1:{i:0;i:8000;}i:8009;a:1:{i:0;i:8001;}i:8010;a:1:{i:0;i:8002;}i:8011;a:1:{i:0;i:8003;}i:8012;a:1:{i:0;i:8004;}i:8013;a:1:{i:0;i:8005;}i:8016;a:2:{i:0;i:965;i:1;i:787;}i:8018;a:3:{i:0;i:965;i:1;i:787;i:2;i:768;}i:8020;a:3:{i:0;i:965;i:1;i:787;i:2;i:769;}i:8022;a:3:{i:0;i:965;i:1;i:787;i:2;i:834;}i:8025;a:1:{i:0;i:8017;}i:8027;a:1:{i:0;i:8019;}i:8029;a:1:{i:0;i:8021;}i:8031;a:1:{i:0;i:8023;}i:8040;a:1:{i:0;i:8032;}i:8041;a:1:{i:0;i:8033;}i:8042;a:1:{i:0;i:8034;}i:8043;a:1:{i:0;i:8035;}i:8044;a:1:{i:0;i:8036;}i:8045;a:1:{i:0;i:8037;}i:8046;a:1:{i:0;i:8038;}i:8047;a:1:{i:0;i:8039;}i:8064;a:2:{i:0;i:7936;i:1;i:953;}i:8065;a:2:{i:0;i:7937;i:1;i:953;}i:8066;a:2:{i:0;i:7938;i:1;i:953;}i:8067;a:2:{i:0;i:7939;i:1;i:953;}i:8068;a:2:{i:0;i:7940;i:1;i:953;}i:8069;a:2:{i:0;i:7941;i:1;i:953;}i:8070;a:2:{i:0;i:7942;i:1;i:953;}i:8071;a:2:{i:0;i:7943;i:1;i:953;}i:8072;a:2:{i:0;i:7936;i:1;i:953;}i:8073;a:2:{i:0;i:7937;i:1;i:953;}i:8074;a:2:{i:0;i:7938;i:1;i:953;}i:8075;a:2:{i:0;i:7939;i:1;i:953;}i:8076;a:2:{i:0;i:7940;i:1;i:953;}i:8077;a:2:{i:0;i:7941;i:1;i:953;}i:8078;a:2:{i:0;i:7942;i:1;i:953;}i:8079;a:2:{i:0;i:7943;i:1;i:953;}i:8080;a:2:{i:0;i:7968;i:1;i:953;}i:8081;a:2:{i:0;i:7969;i:1;i:953;}i:8082;a:2:{i:0;i:7970;i:1;i:953;}i:8083;a:2:{i:0;i:7971;i:1;i:953;}i:8084;a:2:{i:0;i:7972;i:1;i:953;}i:8085;a:2:{i:0;i:7973;i:1;i:953;}i:8086;a:2:{i:0;i:7974;i:1;i:953;}i:8087;a:2:{i:0;i:7975;i:1;i:953;}i:8088;a:2:{i:0;i:7968;i:1;i:953;}i:8089;a:2:{i:0;i:7969;i:1;i:953;}i:8090;a:2:{i:0;i:7970;i:1;i:953;}i:8091;a:2:{i:0;i:7971;i:1;i:953;}i:8092;a:2:{i:0;i:7972;i:1;i:953;}i:8093;a:2:{i:0;i:7973;i:1;i:953;}i:8094;a:2:{i:0;i:7974;i:1;i:953;}i:8095;a:2:{i:0;i:7975;i:1;i:953;}i:8096;a:2:{i:0;i:8032;i:1;i:953;}i:8097;a:2:{i:0;i:8033;i:1;i:953;}i:8098;a:2:{i:0;i:8034;i:1;i:953;}i:8099;a:2:{i:0;i:8035;i:1;i:953;}i:8100;a:2:{i:0;i:8036;i:1;i:953;}i:8101;a:2:{i:0;i:8037;i:1;i:953;}i:8102;a:2:{i:0;i:8038;i:1;i:953;}i:8103;a:2:{i:0;i:8039;i:1;i:953;}i:8104;a:2:{i:0;i:8032;i:1;i:953;}i:8105;a:2:{i:0;i:8033;i:1;i:953;}i:8106;a:2:{i:0;i:8034;i:1;i:953;}i:8107;a:2:{i:0;i:8035;i:1;i:953;}i:8108;a:2:{i:0;i:8036;i:1;i:953;}i:8109;a:2:{i:0;i:8037;i:1;i:953;}i:8110;a:2:{i:0;i:8038;i:1;i:953;}i:8111;a:2:{i:0;i:8039;i:1;i:953;}i:8114;a:2:{i:0;i:8048;i:1;i:953;}i:8115;a:2:{i:0;i:945;i:1;i:953;}i:8116;a:2:{i:0;i:940;i:1;i:953;}i:8118;a:2:{i:0;i:945;i:1;i:834;}i:8119;a:3:{i:0;i:945;i:1;i:834;i:2;i:953;}i:8120;a:1:{i:0;i:8112;}i:8121;a:1:{i:0;i:8113;}i:8122;a:1:{i:0;i:8048;}i:8123;a:1:{i:0;i:8049;}i:8124;a:2:{i:0;i:945;i:1;i:953;}i:8126;a:1:{i:0;i:953;}i:8130;a:2:{i:0;i:8052;i:1;i:953;}i:8131;a:2:{i:0;i:951;i:1;i:953;}i:8132;a:2:{i:0;i:942;i:1;i:953;}i:8134;a:2:{i:0;i:951;i:1;i:834;}i:8135;a:3:{i:0;i:951;i:1;i:834;i:2;i:953;}i:8136;a:1:{i:0;i:8050;}i:8137;a:1:{i:0;i:8051;}i:8138;a:1:{i:0;i:8052;}i:8139;a:1:{i:0;i:8053;}i:8140;a:2:{i:0;i:951;i:1;i:953;}i:8146;a:3:{i:0;i:953;i:1;i:776;i:2;i:768;}i:8147;a:3:{i:0;i:953;i:1;i:776;i:2;i:769;}i:8150;a:2:{i:0;i:953;i:1;i:834;}i:8151;a:3:{i:0;i:953;i:1;i:776;i:2;i:834;}i:8152;a:1:{i:0;i:8144;}i:8153;a:1:{i:0;i:8145;}i:8154;a:1:{i:0;i:8054;}i:8155;a:1:{i:0;i:8055;}i:8162;a:3:{i:0;i:965;i:1;i:776;i:2;i:768;}i:8163;a:3:{i:0;i:965;i:1;i:776;i:2;i:769;}i:8164;a:2:{i:0;i:961;i:1;i:787;}i:8166;a:2:{i:0;i:965;i:1;i:834;}i:8167;a:3:{i:0;i:965;i:1;i:776;i:2;i:834;}i:8168;a:1:{i:0;i:8160;}i:8169;a:1:{i:0;i:8161;}i:8170;a:1:{i:0;i:8058;}i:8171;a:1:{i:0;i:8059;}i:8172;a:1:{i:0;i:8165;}i:8178;a:2:{i:0;i:8060;i:1;i:953;}i:8179;a:2:{i:0;i:969;i:1;i:953;}i:8180;a:2:{i:0;i:974;i:1;i:953;}i:8182;a:2:{i:0;i:969;i:1;i:834;}i:8183;a:3:{i:0;i:969;i:1;i:834;i:2;i:953;}i:8184;a:1:{i:0;i:8056;}i:8185;a:1:{i:0;i:8057;}i:8186;a:1:{i:0;i:8060;}i:8187;a:1:{i:0;i:8061;}i:8188;a:2:{i:0;i:969;i:1;i:953;}i:8360;a:2:{i:0;i:114;i:1;i:115;}i:8450;a:1:{i:0;i:99;}i:8451;a:2:{i:0;i:176;i:1;i:99;}i:8455;a:1:{i:0;i:603;}i:8457;a:2:{i:0;i:176;i:1;i:102;}i:8459;a:1:{i:0;i:104;}i:8460;a:1:{i:0;i:104;}i:8461;a:1:{i:0;i:104;}i:8464;a:1:{i:0;i:105;}i:8465;a:1:{i:0;i:105;}i:8466;a:1:{i:0;i:108;}i:8469;a:1:{i:0;i:110;}i:8470;a:2:{i:0;i:110;i:1;i:111;}i:8473;a:1:{i:0;i:112;}i:8474;a:1:{i:0;i:113;}i:8475;a:1:{i:0;i:114;}i:8476;a:1:{i:0;i:114;}i:8477;a:1:{i:0;i:114;}i:8480;a:2:{i:0;i:115;i:1;i:109;}i:8481;a:3:{i:0;i:116;i:1;i:101;i:2;i:108;}i:8482;a:2:{i:0;i:116;i:1;i:109;}i:8484;a:1:{i:0;i:122;}i:8486;a:1:{i:0;i:969;}i:8488;a:1:{i:0;i:122;}i:8490;a:1:{i:0;i:107;}i:8491;a:1:{i:0;i:229;}i:8492;a:1:{i:0;i:98;}i:8493;a:1:{i:0;i:99;}i:8496;a:1:{i:0;i:101;}i:8497;a:1:{i:0;i:102;}i:8499;a:1:{i:0;i:109;}i:8510;a:1:{i:0;i:947;}i:8511;a:1:{i:0;i:960;}i:8517;a:1:{i:0;i:100;}i:8544;a:1:{i:0;i:8560;}i:8545;a:1:{i:0;i:8561;}i:8546;a:1:{i:0;i:8562;}i:8547;a:1:{i:0;i:8563;}i:8548;a:1:{i:0;i:8564;}i:8549;a:1:{i:0;i:8565;}i:8550;a:1:{i:0;i:8566;}i:8551;a:1:{i:0;i:8567;}i:8552;a:1:{i:0;i:8568;}i:8553;a:1:{i:0;i:8569;}i:8554;a:1:{i:0;i:8570;}i:8555;a:1:{i:0;i:8571;}i:8556;a:1:{i:0;i:8572;}i:8557;a:1:{i:0;i:8573;}i:8558;a:1:{i:0;i:8574;}i:8559;a:1:{i:0;i:8575;}i:9398;a:1:{i:0;i:9424;}i:9399;a:1:{i:0;i:9425;}i:9400;a:1:{i:0;i:9426;}i:9401;a:1:{i:0;i:9427;}i:9402;a:1:{i:0;i:9428;}i:9403;a:1:{i:0;i:9429;}i:9404;a:1:{i:0;i:9430;}i:9405;a:1:{i:0;i:9431;}i:9406;a:1:{i:0;i:9432;}i:9407;a:1:{i:0;i:9433;}i:9408;a:1:{i:0;i:9434;}i:9409;a:1:{i:0;i:9435;}i:9410;a:1:{i:0;i:9436;}i:9411;a:1:{i:0;i:9437;}i:9412;a:1:{i:0;i:9438;}i:9413;a:1:{i:0;i:9439;}i:9414;a:1:{i:0;i:9440;}i:9415;a:1:{i:0;i:9441;}i:9416;a:1:{i:0;i:9442;}i:9417;a:1:{i:0;i:9443;}i:9418;a:1:{i:0;i:9444;}i:9419;a:1:{i:0;i:9445;}i:9420;a:1:{i:0;i:9446;}i:9421;a:1:{i:0;i:9447;}i:9422;a:1:{i:0;i:9448;}i:9423;a:1:{i:0;i:9449;}i:13169;a:3:{i:0;i:104;i:1;i:112;i:2;i:97;}i:13171;a:2:{i:0;i:97;i:1;i:117;}i:13173;a:2:{i:0;i:111;i:1;i:118;}i:13184;a:2:{i:0;i:112;i:1;i:97;}i:13185;a:2:{i:0;i:110;i:1;i:97;}i:13186;a:2:{i:0;i:956;i:1;i:97;}i:13187;a:2:{i:0;i:109;i:1;i:97;}i:13188;a:2:{i:0;i:107;i:1;i:97;}i:13189;a:2:{i:0;i:107;i:1;i:98;}i:13190;a:2:{i:0;i:109;i:1;i:98;}i:13191;a:2:{i:0;i:103;i:1;i:98;}i:13194;a:2:{i:0;i:112;i:1;i:102;}i:13195;a:2:{i:0;i:110;i:1;i:102;}i:13196;a:2:{i:0;i:956;i:1;i:102;}i:13200;a:2:{i:0;i:104;i:1;i:122;}i:13201;a:3:{i:0;i:107;i:1;i:104;i:2;i:122;}i:13202;a:3:{i:0;i:109;i:1;i:104;i:2;i:122;}i:13203;a:3:{i:0;i:103;i:1;i:104;i:2;i:122;}i:13204;a:3:{i:0;i:116;i:1;i:104;i:2;i:122;}i:13225;a:2:{i:0;i:112;i:1;i:97;}i:13226;a:3:{i:0;i:107;i:1;i:112;i:2;i:97;}i:13227;a:3:{i:0;i:109;i:1;i:112;i:2;i:97;}i:13228;a:3:{i:0;i:103;i:1;i:112;i:2;i:97;}i:13236;a:2:{i:0;i:112;i:1;i:118;}i:13237;a:2:{i:0;i:110;i:1;i:118;}i:13238;a:2:{i:0;i:956;i:1;i:118;}i:13239;a:2:{i:0;i:109;i:1;i:118;}i:13240;a:2:{i:0;i:107;i:1;i:118;}i:13241;a:2:{i:0;i:109;i:1;i:118;}i:13242;a:2:{i:0;i:112;i:1;i:119;}i:13243;a:2:{i:0;i:110;i:1;i:119;}i:13244;a:2:{i:0;i:956;i:1;i:119;}i:13245;a:2:{i:0;i:109;i:1;i:119;}i:13246;a:2:{i:0;i:107;i:1;i:119;}i:13247;a:2:{i:0;i:109;i:1;i:119;}i:13248;a:2:{i:0;i:107;i:1;i:969;}i:13249;a:2:{i:0;i:109;i:1;i:969;}i:13251;a:2:{i:0;i:98;i:1;i:113;}i:13254;a:4:{i:0;i:99;i:1;i:8725;i:2;i:107;i:3;i:103;}i:13255;a:3:{i:0;i:99;i:1;i:111;i:2;i:46;}i:13256;a:2:{i:0;i:100;i:1;i:98;}i:13257;a:2:{i:0;i:103;i:1;i:121;}i:13259;a:2:{i:0;i:104;i:1;i:112;}i:13261;a:2:{i:0;i:107;i:1;i:107;}i:13262;a:2:{i:0;i:107;i:1;i:109;}i:13271;a:2:{i:0;i:112;i:1;i:104;}i:13273;a:3:{i:0;i:112;i:1;i:112;i:2;i:109;}i:13274;a:2:{i:0;i:112;i:1;i:114;}i:13276;a:2:{i:0;i:115;i:1;i:118;}i:13277;a:2:{i:0;i:119;i:1;i:98;}i:64256;a:2:{i:0;i:102;i:1;i:102;}i:64257;a:2:{i:0;i:102;i:1;i:105;}i:64258;a:2:{i:0;i:102;i:1;i:108;}i:64259;a:3:{i:0;i:102;i:1;i:102;i:2;i:105;}i:64260;a:3:{i:0;i:102;i:1;i:102;i:2;i:108;}i:64261;a:2:{i:0;i:115;i:1;i:116;}i:64262;a:2:{i:0;i:115;i:1;i:116;}i:64275;a:2:{i:0;i:1396;i:1;i:1398;}i:64276;a:2:{i:0;i:1396;i:1;i:1381;}i:64277;a:2:{i:0;i:1396;i:1;i:1387;}i:64278;a:2:{i:0;i:1406;i:1;i:1398;}i:64279;a:2:{i:0;i:1396;i:1;i:1389;}i:65313;a:1:{i:0;i:65345;}i:65314;a:1:{i:0;i:65346;}i:65315;a:1:{i:0;i:65347;}i:65316;a:1:{i:0;i:65348;}i:65317;a:1:{i:0;i:65349;}i:65318;a:1:{i:0;i:65350;}i:65319;a:1:{i:0;i:65351;}i:65320;a:1:{i:0;i:65352;}i:65321;a:1:{i:0;i:65353;}i:65322;a:1:{i:0;i:65354;}i:65323;a:1:{i:0;i:65355;}i:65324;a:1:{i:0;i:65356;}i:65325;a:1:{i:0;i:65357;}i:65326;a:1:{i:0;i:65358;}i:65327;a:1:{i:0;i:65359;}i:65328;a:1:{i:0;i:65360;}i:65329;a:1:{i:0;i:65361;}i:65330;a:1:{i:0;i:65362;}i:65331;a:1:{i:0;i:65363;}i:65332;a:1:{i:0;i:65364;}i:65333;a:1:{i:0;i:65365;}i:65334;a:1:{i:0;i:65366;}i:65335;a:1:{i:0;i:65367;}i:65336;a:1:{i:0;i:65368;}i:65337;a:1:{i:0;i:65369;}i:65338;a:1:{i:0;i:65370;}i:66560;a:1:{i:0;i:66600;}i:66561;a:1:{i:0;i:66601;}i:66562;a:1:{i:0;i:66602;}i:66563;a:1:{i:0;i:66603;}i:66564;a:1:{i:0;i:66604;}i:66565;a:1:{i:0;i:66605;}i:66566;a:1:{i:0;i:66606;}i:66567;a:1:{i:0;i:66607;}i:66568;a:1:{i:0;i:66608;}i:66569;a:1:{i:0;i:66609;}i:66570;a:1:{i:0;i:66610;}i:66571;a:1:{i:0;i:66611;}i:66572;a:1:{i:0;i:66612;}i:66573;a:1:{i:0;i:66613;}i:66574;a:1:{i:0;i:66614;}i:66575;a:1:{i:0;i:66615;}i:66576;a:1:{i:0;i:66616;}i:66577;a:1:{i:0;i:66617;}i:66578;a:1:{i:0;i:66618;}i:66579;a:1:{i:0;i:66619;}i:66580;a:1:{i:0;i:66620;}i:66581;a:1:{i:0;i:66621;}i:66582;a:1:{i:0;i:66622;}i:66583;a:1:{i:0;i:66623;}i:66584;a:1:{i:0;i:66624;}i:66585;a:1:{i:0;i:66625;}i:66586;a:1:{i:0;i:66626;}i:66587;a:1:{i:0;i:66627;}i:66588;a:1:{i:0;i:66628;}i:66589;a:1:{i:0;i:66629;}i:66590;a:1:{i:0;i:66630;}i:66591;a:1:{i:0;i:66631;}i:66592;a:1:{i:0;i:66632;}i:66593;a:1:{i:0;i:66633;}i:66594;a:1:{i:0;i:66634;}i:66595;a:1:{i:0;i:66635;}i:66596;a:1:{i:0;i:66636;}i:66597;a:1:{i:0;i:66637;}i:119808;a:1:{i:0;i:97;}i:119809;a:1:{i:0;i:98;}i:119810;a:1:{i:0;i:99;}i:119811;a:1:{i:0;i:100;}i:119812;a:1:{i:0;i:101;}i:119813;a:1:{i:0;i:102;}i:119814;a:1:{i:0;i:103;}i:119815;a:1:{i:0;i:104;}i:119816;a:1:{i:0;i:105;}i:119817;a:1:{i:0;i:106;}i:119818;a:1:{i:0;i:107;}i:119819;a:1:{i:0;i:108;}i:119820;a:1:{i:0;i:109;}i:119821;a:1:{i:0;i:110;}i:119822;a:1:{i:0;i:111;}i:119823;a:1:{i:0;i:112;}i:119824;a:1:{i:0;i:113;}i:119825;a:1:{i:0;i:114;}i:119826;a:1:{i:0;i:115;}i:119827;a:1:{i:0;i:116;}i:119828;a:1:{i:0;i:117;}i:119829;a:1:{i:0;i:118;}i:119830;a:1:{i:0;i:119;}i:119831;a:1:{i:0;i:120;}i:119832;a:1:{i:0;i:121;}i:119833;a:1:{i:0;i:122;}i:119860;a:1:{i:0;i:97;}i:119861;a:1:{i:0;i:98;}i:119862;a:1:{i:0;i:99;}i:119863;a:1:{i:0;i:100;}i:119864;a:1:{i:0;i:101;}i:119865;a:1:{i:0;i:102;}i:119866;a:1:{i:0;i:103;}i:119867;a:1:{i:0;i:104;}i:119868;a:1:{i:0;i:105;}i:119869;a:1:{i:0;i:106;}i:119870;a:1:{i:0;i:107;}i:119871;a:1:{i:0;i:108;}i:119872;a:1:{i:0;i:109;}i:119873;a:1:{i:0;i:110;}i:119874;a:1:{i:0;i:111;}i:119875;a:1:{i:0;i:112;}i:119876;a:1:{i:0;i:113;}i:119877;a:1:{i:0;i:114;}i:119878;a:1:{i:0;i:115;}i:119879;a:1:{i:0;i:116;}i:119880;a:1:{i:0;i:117;}i:119881;a:1:{i:0;i:118;}i:119882;a:1:{i:0;i:119;}i:119883;a:1:{i:0;i:120;}i:119884;a:1:{i:0;i:121;}i:119885;a:1:{i:0;i:122;}i:119912;a:1:{i:0;i:97;}i:119913;a:1:{i:0;i:98;}i:119914;a:1:{i:0;i:99;}i:119915;a:1:{i:0;i:100;}i:119916;a:1:{i:0;i:101;}i:119917;a:1:{i:0;i:102;}i:119918;a:1:{i:0;i:103;}i:119919;a:1:{i:0;i:104;}i:119920;a:1:{i:0;i:105;}i:119921;a:1:{i:0;i:106;}i:119922;a:1:{i:0;i:107;}i:119923;a:1:{i:0;i:108;}i:119924;a:1:{i:0;i:109;}i:119925;a:1:{i:0;i:110;}i:119926;a:1:{i:0;i:111;}i:119927;a:1:{i:0;i:112;}i:119928;a:1:{i:0;i:113;}i:119929;a:1:{i:0;i:114;}i:119930;a:1:{i:0;i:115;}i:119931;a:1:{i:0;i:116;}i:119932;a:1:{i:0;i:117;}i:119933;a:1:{i:0;i:118;}i:119934;a:1:{i:0;i:119;}i:119935;a:1:{i:0;i:120;}i:119936;a:1:{i:0;i:121;}i:119937;a:1:{i:0;i:122;}i:119964;a:1:{i:0;i:97;}i:119966;a:1:{i:0;i:99;}i:119967;a:1:{i:0;i:100;}i:119970;a:1:{i:0;i:103;}i:119973;a:1:{i:0;i:106;}i:119974;a:1:{i:0;i:107;}i:119977;a:1:{i:0;i:110;}i:119978;a:1:{i:0;i:111;}i:119979;a:1:{i:0;i:112;}i:119980;a:1:{i:0;i:113;}i:119982;a:1:{i:0;i:115;}i:119983;a:1:{i:0;i:116;}i:119984;a:1:{i:0;i:117;}i:119985;a:1:{i:0;i:118;}i:119986;a:1:{i:0;i:119;}i:119987;a:1:{i:0;i:120;}i:119988;a:1:{i:0;i:121;}i:119989;a:1:{i:0;i:122;}i:120016;a:1:{i:0;i:97;}i:120017;a:1:{i:0;i:98;}i:120018;a:1:{i:0;i:99;}i:120019;a:1:{i:0;i:100;}i:120020;a:1:{i:0;i:101;}i:120021;a:1:{i:0;i:102;}i:120022;a:1:{i:0;i:103;}i:120023;a:1:{i:0;i:104;}i:120024;a:1:{i:0;i:105;}i:120025;a:1:{i:0;i:106;}i:120026;a:1:{i:0;i:107;}i:120027;a:1:{i:0;i:108;}i:120028;a:1:{i:0;i:109;}i:120029;a:1:{i:0;i:110;}i:120030;a:1:{i:0;i:111;}i:120031;a:1:{i:0;i:112;}i:120032;a:1:{i:0;i:113;}i:120033;a:1:{i:0;i:114;}i:120034;a:1:{i:0;i:115;}i:120035;a:1:{i:0;i:116;}i:120036;a:1:{i:0;i:117;}i:120037;a:1:{i:0;i:118;}i:120038;a:1:{i:0;i:119;}i:120039;a:1:{i:0;i:120;}i:120040;a:1:{i:0;i:121;}i:120041;a:1:{i:0;i:122;}i:120068;a:1:{i:0;i:97;}i:120069;a:1:{i:0;i:98;}i:120071;a:1:{i:0;i:100;}i:120072;a:1:{i:0;i:101;}i:120073;a:1:{i:0;i:102;}i:120074;a:1:{i:0;i:103;}i:120077;a:1:{i:0;i:106;}i:120078;a:1:{i:0;i:107;}i:120079;a:1:{i:0;i:108;}i:120080;a:1:{i:0;i:109;}i:120081;a:1:{i:0;i:110;}i:120082;a:1:{i:0;i:111;}i:120083;a:1:{i:0;i:112;}i:120084;a:1:{i:0;i:113;}i:120086;a:1:{i:0;i:115;}i:120087;a:1:{i:0;i:116;}i:120088;a:1:{i:0;i:117;}i:120089;a:1:{i:0;i:118;}i:120090;a:1:{i:0;i:119;}i:120091;a:1:{i:0;i:120;}i:120092;a:1:{i:0;i:121;}i:120120;a:1:{i:0;i:97;}i:120121;a:1:{i:0;i:98;}i:120123;a:1:{i:0;i:100;}i:120124;a:1:{i:0;i:101;}i:120125;a:1:{i:0;i:102;}i:120126;a:1:{i:0;i:103;}i:120128;a:1:{i:0;i:105;}i:120129;a:1:{i:0;i:106;}i:120130;a:1:{i:0;i:107;}i:120131;a:1:{i:0;i:108;}i:120132;a:1:{i:0;i:109;}i:120134;a:1:{i:0;i:111;}i:120138;a:1:{i:0;i:115;}i:120139;a:1:{i:0;i:116;}i:120140;a:1:{i:0;i:117;}i:120141;a:1:{i:0;i:118;}i:120142;a:1:{i:0;i:119;}i:120143;a:1:{i:0;i:120;}i:120144;a:1:{i:0;i:121;}i:120172;a:1:{i:0;i:97;}i:120173;a:1:{i:0;i:98;}i:120174;a:1:{i:0;i:99;}i:120175;a:1:{i:0;i:100;}i:120176;a:1:{i:0;i:101;}i:120177;a:1:{i:0;i:102;}i:120178;a:1:{i:0;i:103;}i:120179;a:1:{i:0;i:104;}i:120180;a:1:{i:0;i:105;}i:120181;a:1:{i:0;i:106;}i:120182;a:1:{i:0;i:107;}i:120183;a:1:{i:0;i:108;}i:120184;a:1:{i:0;i:109;}i:120185;a:1:{i:0;i:110;}i:120186;a:1:{i:0;i:111;}i:120187;a:1:{i:0;i:112;}i:120188;a:1:{i:0;i:113;}i:120189;a:1:{i:0;i:114;}i:120190;a:1:{i:0;i:115;}i:120191;a:1:{i:0;i:116;}i:120192;a:1:{i:0;i:117;}i:120193;a:1:{i:0;i:118;}i:120194;a:1:{i:0;i:119;}i:120195;a:1:{i:0;i:120;}i:120196;a:1:{i:0;i:121;}i:120197;a:1:{i:0;i:122;}i:120224;a:1:{i:0;i:97;}i:120225;a:1:{i:0;i:98;}i:120226;a:1:{i:0;i:99;}i:120227;a:1:{i:0;i:100;}i:120228;a:1:{i:0;i:101;}i:120229;a:1:{i:0;i:102;}i:120230;a:1:{i:0;i:103;}i:120231;a:1:{i:0;i:104;}i:120232;a:1:{i:0;i:105;}i:120233;a:1:{i:0;i:106;}i:120234;a:1:{i:0;i:107;}i:120235;a:1:{i:0;i:108;}i:120236;a:1:{i:0;i:109;}i:120237;a:1:{i:0;i:110;}i:120238;a:1:{i:0;i:111;}i:120239;a:1:{i:0;i:112;}i:120240;a:1:{i:0;i:113;}i:120241;a:1:{i:0;i:114;}i:120242;a:1:{i:0;i:115;}i:120243;a:1:{i:0;i:116;}i:120244;a:1:{i:0;i:117;}i:120245;a:1:{i:0;i:118;}i:120246;a:1:{i:0;i:119;}i:120247;a:1:{i:0;i:120;}i:120248;a:1:{i:0;i:121;}i:120249;a:1:{i:0;i:122;}i:120276;a:1:{i:0;i:97;}i:120277;a:1:{i:0;i:98;}i:120278;a:1:{i:0;i:99;}i:120279;a:1:{i:0;i:100;}i:120280;a:1:{i:0;i:101;}i:120281;a:1:{i:0;i:102;}i:120282;a:1:{i:0;i:103;}i:120283;a:1:{i:0;i:104;}i:120284;a:1:{i:0;i:105;}i:120285;a:1:{i:0;i:106;}i:120286;a:1:{i:0;i:107;}i:120287;a:1:{i:0;i:108;}i:120288;a:1:{i:0;i:109;}i:120289;a:1:{i:0;i:110;}i:120290;a:1:{i:0;i:111;}i:120291;a:1:{i:0;i:112;}i:120292;a:1:{i:0;i:113;}i:120293;a:1:{i:0;i:114;}i:120294;a:1:{i:0;i:115;}i:120295;a:1:{i:0;i:116;}i:120296;a:1:{i:0;i:117;}i:120297;a:1:{i:0;i:118;}i:120298;a:1:{i:0;i:119;}i:120299;a:1:{i:0;i:120;}i:120300;a:1:{i:0;i:121;}i:120301;a:1:{i:0;i:122;}i:120328;a:1:{i:0;i:97;}i:120329;a:1:{i:0;i:98;}i:120330;a:1:{i:0;i:99;}i:120331;a:1:{i:0;i:100;}i:120332;a:1:{i:0;i:101;}i:120333;a:1:{i:0;i:102;}i:120334;a:1:{i:0;i:103;}i:120335;a:1:{i:0;i:104;}i:120336;a:1:{i:0;i:105;}i:120337;a:1:{i:0;i:106;}i:120338;a:1:{i:0;i:107;}i:120339;a:1:{i:0;i:108;}i:120340;a:1:{i:0;i:109;}i:120341;a:1:{i:0;i:110;}i:120342;a:1:{i:0;i:111;}i:120343;a:1:{i:0;i:112;}i:120344;a:1:{i:0;i:113;}i:120345;a:1:{i:0;i:114;}i:120346;a:1:{i:0;i:115;}i:120347;a:1:{i:0;i:116;}i:120348;a:1:{i:0;i:117;}i:120349;a:1:{i:0;i:118;}i:120350;a:1:{i:0;i:119;}i:120351;a:1:{i:0;i:120;}i:120352;a:1:{i:0;i:121;}i:120353;a:1:{i:0;i:122;}i:120380;a:1:{i:0;i:97;}i:120381;a:1:{i:0;i:98;}i:120382;a:1:{i:0;i:99;}i:120383;a:1:{i:0;i:100;}i:120384;a:1:{i:0;i:101;}i:120385;a:1:{i:0;i:102;}i:120386;a:1:{i:0;i:103;}i:120387;a:1:{i:0;i:104;}i:120388;a:1:{i:0;i:105;}i:120389;a:1:{i:0;i:106;}i:120390;a:1:{i:0;i:107;}i:120391;a:1:{i:0;i:108;}i:120392;a:1:{i:0;i:109;}i:120393;a:1:{i:0;i:110;}i:120394;a:1:{i:0;i:111;}i:120395;a:1:{i:0;i:112;}i:120396;a:1:{i:0;i:113;}i:120397;a:1:{i:0;i:114;}i:120398;a:1:{i:0;i:115;}i:120399;a:1:{i:0;i:116;}i:120400;a:1:{i:0;i:117;}i:120401;a:1:{i:0;i:118;}i:120402;a:1:{i:0;i:119;}i:120403;a:1:{i:0;i:120;}i:120404;a:1:{i:0;i:121;}i:120405;a:1:{i:0;i:122;}i:120432;a:1:{i:0;i:97;}i:120433;a:1:{i:0;i:98;}i:120434;a:1:{i:0;i:99;}i:120435;a:1:{i:0;i:100;}i:120436;a:1:{i:0;i:101;}i:120437;a:1:{i:0;i:102;}i:120438;a:1:{i:0;i:103;}i:120439;a:1:{i:0;i:104;}i:120440;a:1:{i:0;i:105;}i:120441;a:1:{i:0;i:106;}i:120442;a:1:{i:0;i:107;}i:120443;a:1:{i:0;i:108;}i:120444;a:1:{i:0;i:109;}i:120445;a:1:{i:0;i:110;}i:120446;a:1:{i:0;i:111;}i:120447;a:1:{i:0;i:112;}i:120448;a:1:{i:0;i:113;}i:120449;a:1:{i:0;i:114;}i:120450;a:1:{i:0;i:115;}i:120451;a:1:{i:0;i:116;}i:120452;a:1:{i:0;i:117;}i:120453;a:1:{i:0;i:118;}i:120454;a:1:{i:0;i:119;}i:120455;a:1:{i:0;i:120;}i:120456;a:1:{i:0;i:121;}i:120457;a:1:{i:0;i:122;}i:120488;a:1:{i:0;i:945;}i:120489;a:1:{i:0;i:946;}i:120490;a:1:{i:0;i:947;}i:120491;a:1:{i:0;i:948;}i:120492;a:1:{i:0;i:949;}i:120493;a:1:{i:0;i:950;}i:120494;a:1:{i:0;i:951;}i:120495;a:1:{i:0;i:952;}i:120496;a:1:{i:0;i:953;}i:120497;a:1:{i:0;i:954;}i:120498;a:1:{i:0;i:955;}i:120499;a:1:{i:0;i:956;}i:120500;a:1:{i:0;i:957;}i:120501;a:1:{i:0;i:958;}i:120502;a:1:{i:0;i:959;}i:120503;a:1:{i:0;i:960;}i:120504;a:1:{i:0;i:961;}i:120505;a:1:{i:0;i:952;}i:120506;a:1:{i:0;i:963;}i:120507;a:1:{i:0;i:964;}i:120508;a:1:{i:0;i:965;}i:120509;a:1:{i:0;i:966;}i:120510;a:1:{i:0;i:967;}i:120511;a:1:{i:0;i:968;}i:120512;a:1:{i:0;i:969;}i:120531;a:1:{i:0;i:963;}i:120546;a:1:{i:0;i:945;}i:120547;a:1:{i:0;i:946;}i:120548;a:1:{i:0;i:947;}i:120549;a:1:{i:0;i:948;}i:120550;a:1:{i:0;i:949;}i:120551;a:1:{i:0;i:950;}i:120552;a:1:{i:0;i:951;}i:120553;a:1:{i:0;i:952;}i:120554;a:1:{i:0;i:953;}i:120555;a:1:{i:0;i:954;}i:120556;a:1:{i:0;i:955;}i:120557;a:1:{i:0;i:956;}i:120558;a:1:{i:0;i:957;}i:120559;a:1:{i:0;i:958;}i:120560;a:1:{i:0;i:959;}i:120561;a:1:{i:0;i:960;}i:120562;a:1:{i:0;i:961;}i:120563;a:1:{i:0;i:952;}i:120564;a:1:{i:0;i:963;}i:120565;a:1:{i:0;i:964;}i:120566;a:1:{i:0;i:965;}i:120567;a:1:{i:0;i:966;}i:120568;a:1:{i:0;i:967;}i:120569;a:1:{i:0;i:968;}i:120570;a:1:{i:0;i:969;}i:120589;a:1:{i:0;i:963;}i:120604;a:1:{i:0;i:945;}i:120605;a:1:{i:0;i:946;}i:120606;a:1:{i:0;i:947;}i:120607;a:1:{i:0;i:948;}i:120608;a:1:{i:0;i:949;}i:120609;a:1:{i:0;i:950;}i:120610;a:1:{i:0;i:951;}i:120611;a:1:{i:0;i:952;}i:120612;a:1:{i:0;i:953;}i:120613;a:1:{i:0;i:954;}i:120614;a:1:{i:0;i:955;}i:120615;a:1:{i:0;i:956;}i:120616;a:1:{i:0;i:957;}i:120617;a:1:{i:0;i:958;}i:120618;a:1:{i:0;i:959;}i:120619;a:1:{i:0;i:960;}i:120620;a:1:{i:0;i:961;}i:120621;a:1:{i:0;i:952;}i:120622;a:1:{i:0;i:963;}i:120623;a:1:{i:0;i:964;}i:120624;a:1:{i:0;i:965;}i:120625;a:1:{i:0;i:966;}i:120626;a:1:{i:0;i:967;}i:120627;a:1:{i:0;i:968;}i:120628;a:1:{i:0;i:969;}i:120647;a:1:{i:0;i:963;}i:120662;a:1:{i:0;i:945;}i:120663;a:1:{i:0;i:946;}i:120664;a:1:{i:0;i:947;}i:120665;a:1:{i:0;i:948;}i:120666;a:1:{i:0;i:949;}i:120667;a:1:{i:0;i:950;}i:120668;a:1:{i:0;i:951;}i:120669;a:1:{i:0;i:952;}i:120670;a:1:{i:0;i:953;}i:120671;a:1:{i:0;i:954;}i:120672;a:1:{i:0;i:955;}i:120673;a:1:{i:0;i:956;}i:120674;a:1:{i:0;i:957;}i:120675;a:1:{i:0;i:958;}i:120676;a:1:{i:0;i:959;}i:120677;a:1:{i:0;i:960;}i:120678;a:1:{i:0;i:961;}i:120679;a:1:{i:0;i:952;}i:120680;a:1:{i:0;i:963;}i:120681;a:1:{i:0;i:964;}i:120682;a:1:{i:0;i:965;}i:120683;a:1:{i:0;i:966;}i:120684;a:1:{i:0;i:967;}i:120685;a:1:{i:0;i:968;}i:120686;a:1:{i:0;i:969;}i:120705;a:1:{i:0;i:963;}i:120720;a:1:{i:0;i:945;}i:120721;a:1:{i:0;i:946;}i:120722;a:1:{i:0;i:947;}i:120723;a:1:{i:0;i:948;}i:120724;a:1:{i:0;i:949;}i:120725;a:1:{i:0;i:950;}i:120726;a:1:{i:0;i:951;}i:120727;a:1:{i:0;i:952;}i:120728;a:1:{i:0;i:953;}i:120729;a:1:{i:0;i:954;}i:120730;a:1:{i:0;i:955;}i:120731;a:1:{i:0;i:956;}i:120732;a:1:{i:0;i:957;}i:120733;a:1:{i:0;i:958;}i:120734;a:1:{i:0;i:959;}i:120735;a:1:{i:0;i:960;}i:120736;a:1:{i:0;i:961;}i:120737;a:1:{i:0;i:952;}i:120738;a:1:{i:0;i:963;}i:120739;a:1:{i:0;i:964;}i:120740;a:1:{i:0;i:965;}i:120741;a:1:{i:0;i:966;}i:120742;a:1:{i:0;i:967;}i:120743;a:1:{i:0;i:968;}i:120744;a:1:{i:0;i:969;}i:120763;a:1:{i:0;i:963;}i:1017;a:1:{i:0;i:963;}i:7468;a:1:{i:0;i:97;}i:7469;a:1:{i:0;i:230;}i:7470;a:1:{i:0;i:98;}i:7472;a:1:{i:0;i:100;}i:7473;a:1:{i:0;i:101;}i:7474;a:1:{i:0;i:477;}i:7475;a:1:{i:0;i:103;}i:7476;a:1:{i:0;i:104;}i:7477;a:1:{i:0;i:105;}i:7478;a:1:{i:0;i:106;}i:7479;a:1:{i:0;i:107;}i:7480;a:1:{i:0;i:108;}i:7481;a:1:{i:0;i:109;}i:7482;a:1:{i:0;i:110;}i:7484;a:1:{i:0;i:111;}i:7485;a:1:{i:0;i:547;}i:7486;a:1:{i:0;i:112;}i:7487;a:1:{i:0;i:114;}i:7488;a:1:{i:0;i:116;}i:7489;a:1:{i:0;i:117;}i:7490;a:1:{i:0;i:119;}i:8507;a:3:{i:0;i:102;i:1;i:97;i:2;i:120;}i:12880;a:3:{i:0;i:112;i:1;i:116;i:2;i:101;}i:13004;a:2:{i:0;i:104;i:1;i:103;}i:13006;a:2:{i:0;i:101;i:1;i:118;}i:13007;a:3:{i:0;i:108;i:1;i:116;i:2;i:100;}i:13178;a:2:{i:0;i:105;i:1;i:117;}i:13278;a:3:{i:0;i:118;i:1;i:8725;i:2;i:109;}i:13279;a:3:{i:0;i:97;i:1;i:8725;i:2;i:109;}}s:12:"norm_combcls";a:341:{i:820;i:1;i:821;i:1;i:822;i:1;i:823;i:1;i:824;i:1;i:2364;i:7;i:2492;i:7;i:2620;i:7;i:2748;i:7;i:2876;i:7;i:3260;i:7;i:4151;i:7;i:12441;i:8;i:12442;i:8;i:2381;i:9;i:2509;i:9;i:2637;i:9;i:2765;i:9;i:2893;i:9;i:3021;i:9;i:3149;i:9;i:3277;i:9;i:3405;i:9;i:3530;i:9;i:3642;i:9;i:3972;i:9;i:4153;i:9;i:5908;i:9;i:5940;i:9;i:6098;i:9;i:1456;i:10;i:1457;i:11;i:1458;i:12;i:1459;i:13;i:1460;i:14;i:1461;i:15;i:1462;i:16;i:1463;i:17;i:1464;i:18;i:1465;i:19;i:1467;i:20;i:1468;i:21;i:1469;i:22;i:1471;i:23;i:1473;i:24;i:1474;i:25;i:64286;i:26;i:1611;i:27;i:1612;i:28;i:1613;i:29;i:1614;i:30;i:1615;i:31;i:1616;i:32;i:1617;i:33;i:1618;i:34;i:1648;i:35;i:1809;i:36;i:3157;i:84;i:3158;i:91;i:3640;i:103;i:3641;i:103;i:3656;i:107;i:3657;i:107;i:3658;i:107;i:3659;i:107;i:3768;i:118;i:3769;i:118;i:3784;i:122;i:3785;i:122;i:3786;i:122;i:3787;i:122;i:3953;i:129;i:3954;i:130;i:3962;i:130;i:3963;i:130;i:3964;i:130;i:3965;i:130;i:3968;i:130;i:3956;i:132;i:801;i:202;i:802;i:202;i:807;i:202;i:808;i:202;i:795;i:216;i:3897;i:216;i:119141;i:216;i:119142;i:216;i:119150;i:216;i:119151;i:216;i:119152;i:216;i:119153;i:216;i:119154;i:216;i:12330;i:218;i:790;i:220;i:791;i:220;i:792;i:220;i:793;i:220;i:796;i:220;i:797;i:220;i:798;i:220;i:799;i:220;i:800;i:220;i:803;i:220;i:804;i:220;i:805;i:220;i:806;i:220;i:809;i:220;i:810;i:220;i:811;i:220;i:812;i:220;i:813;i:220;i:814;i:220;i:815;i:220;i:816;i:220;i:817;i:220;i:818;i:220;i:819;i:220;i:825;i:220;i:826;i:220;i:827;i:220;i:828;i:220;i:839;i:220;i:840;i:220;i:841;i:220;i:845;i:220;i:846;i:220;i:851;i:220;i:852;i:220;i:853;i:220;i:854;i:220;i:1425;i:220;i:1430;i:220;i:1435;i:220;i:1443;i:220;i:1444;i:220;i:1445;i:220;i:1446;i:220;i:1447;i:220;i:1450;i:220;i:1621;i:220;i:1622;i:220;i:1763;i:220;i:1770;i:220;i:1773;i:220;i:1841;i:220;i:1844;i:220;i:1847;i:220;i:1848;i:220;i:1849;i:220;i:1851;i:220;i:1852;i:220;i:1854;i:220;i:1858;i:220;i:1860;i:220;i:1862;i:220;i:1864;i:220;i:2386;i:220;i:3864;i:220;i:3865;i:220;i:3893;i:220;i:3895;i:220;i:4038;i:220;i:6459;i:220;i:8424;i:220;i:119163;i:220;i:119164;i:220;i:119165;i:220;i:119166;i:220;i:119167;i:220;i:119168;i:220;i:119169;i:220;i:119170;i:220;i:119178;i:220;i:119179;i:220;i:1434;i:222;i:1453;i:222;i:6441;i:222;i:12333;i:222;i:12334;i:224;i:12335;i:224;i:119149;i:226;i:1454;i:228;i:6313;i:228;i:12331;i:228;i:768;i:230;i:769;i:230;i:770;i:230;i:771;i:230;i:772;i:230;i:773;i:230;i:774;i:230;i:775;i:230;i:776;i:230;i:777;i:230;i:778;i:230;i:779;i:230;i:780;i:230;i:781;i:230;i:782;i:230;i:783;i:230;i:784;i:230;i:785;i:230;i:786;i:230;i:787;i:230;i:788;i:230;i:829;i:230;i:830;i:230;i:831;i:230;i:832;i:230;i:833;i:230;i:834;i:230;i:835;i:230;i:836;i:230;i:838;i:230;i:842;i:230;i:843;i:230;i:844;i:230;i:848;i:230;i:849;i:230;i:850;i:230;i:855;i:230;i:867;i:230;i:868;i:230;i:869;i:230;i:870;i:230;i:871;i:230;i:872;i:230;i:873;i:230;i:874;i:230;i:875;i:230;i:876;i:230;i:877;i:230;i:878;i:230;i:879;i:230;i:1155;i:230;i:1156;i:230;i:1157;i:230;i:1158;i:230;i:1426;i:230;i:1427;i:230;i:1428;i:230;i:1429;i:230;i:1431;i:230;i:1432;i:230;i:1433;i:230;i:1436;i:230;i:1437;i:230;i:1438;i:230;i:1439;i:230;i:1440;i:230;i:1441;i:230;i:1448;i:230;i:1449;i:230;i:1451;i:230;i:1452;i:230;i:1455;i:230;i:1476;i:230;i:1552;i:230;i:1553;i:230;i:1554;i:230;i:1555;i:230;i:1556;i:230;i:1557;i:230;i:1619;i:230;i:1620;i:230;i:1623;i:230;i:1624;i:230;i:1750;i:230;i:1751;i:230;i:1752;i:230;i:1753;i:230;i:1754;i:230;i:1755;i:230;i:1756;i:230;i:1759;i:230;i:1760;i:230;i:1761;i:230;i:1762;i:230;i:1764;i:230;i:1767;i:230;i:1768;i:230;i:1771;i:230;i:1772;i:230;i:1840;i:230;i:1842;i:230;i:1843;i:230;i:1845;i:230;i:1846;i:230;i:1850;i:230;i:1853;i:230;i:1855;i:230;i:1856;i:230;i:1857;i:230;i:1859;i:230;i:1861;i:230;i:1863;i:230;i:1865;i:230;i:1866;i:230;i:2385;i:230;i:2387;i:230;i:2388;i:230;i:3970;i:230;i:3971;i:230;i:3974;i:230;i:3975;i:230;i:5901;i:230;i:6458;i:230;i:8400;i:230;i:8401;i:230;i:8404;i:230;i:8405;i:230;i:8406;i:230;i:8407;i:230;i:8411;i:230;i:8412;i:230;i:8417;i:230;i:8423;i:230;i:8425;i:230;i:65056;i:230;i:65057;i:230;i:65058;i:230;i:65059;i:230;i:119173;i:230;i:119174;i:230;i:119175;i:230;i:119177;i:230;i:119176;i:230;i:119210;i:230;i:119211;i:230;i:119212;i:230;i:119213;i:230;i:789;i:232;i:794;i:232;i:12332;i:232;i:863;i:233;i:866;i:233;i:861;i:234;i:862;i:234;i:864;i:234;i:865;i:234;i:837;i:240;}}
\ No newline at end of file
diff --git a/wiki/vendor/simplepie/simplepie/library/SimplePie.php b/wiki/vendor/simplepie/simplepie/library/SimplePie.php
deleted file mode 100755
index 34b6ca0..0000000
--- a/wiki/vendor/simplepie/simplepie/library/SimplePie.php
+++ /dev/null
@@ -1,3293 +0,0 @@
-<?php
-/**
- * SimplePie
- *
- * A PHP-Based RSS and Atom Feed Framework.
- * Takes the hard work out of managing a complete RSS/Atom solution.
- *
- * Copyright (c) 2004-2017, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification, are
- * permitted provided that the following conditions are met:
- *
- * 	* Redistributions of source code must retain the above copyright notice, this list of
- * 	  conditions and the following disclaimer.
- *
- * 	* Redistributions in binary form must reproduce the above copyright notice, this list
- * 	  of conditions and the following disclaimer in the documentation and/or other materials
- * 	  provided with the distribution.
- *
- * 	* Neither the name of the SimplePie Team nor the names of its contributors may be used
- * 	  to endorse or promote products derived from this software without specific prior
- * 	  written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
- * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS
- * AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @package SimplePie
- * @version 1.5.1
- * @copyright 2004-2017 Ryan Parman, Geoffrey Sneddon, Ryan McCue
- * @author Ryan Parman
- * @author Geoffrey Sneddon
- * @author Ryan McCue
- * @link http://simplepie.org/ SimplePie
- * @license http://www.opensource.org/licenses/bsd-license.php BSD License
- */
-
-/**
- * SimplePie Name
- */
-define('SIMPLEPIE_NAME', 'SimplePie');
-
-/**
- * SimplePie Version
- */
-define('SIMPLEPIE_VERSION', '1.5.1');
-
-/**
- * SimplePie Build
- * @todo Hardcode for release (there's no need to have to call SimplePie_Misc::get_build() only every load of simplepie.inc)
- */
-define('SIMPLEPIE_BUILD', gmdate('YmdHis', SimplePie_Misc::get_build()));
-
-/**
- * SimplePie Website URL
- */
-define('SIMPLEPIE_URL', 'http://simplepie.org');
-
-/**
- * SimplePie Useragent
- * @see SimplePie::set_useragent()
- */
-define('SIMPLEPIE_USERAGENT', SIMPLEPIE_NAME . '/' . SIMPLEPIE_VERSION . ' (Feed Parser; ' . SIMPLEPIE_URL . '; Allow like Gecko) Build/' . SIMPLEPIE_BUILD);
-
-/**
- * SimplePie Linkback
- */
-define('SIMPLEPIE_LINKBACK', '<a href="' . SIMPLEPIE_URL . '" title="' . SIMPLEPIE_NAME . ' ' . SIMPLEPIE_VERSION . '">' . SIMPLEPIE_NAME . '</a>');
-
-/**
- * No Autodiscovery
- * @see SimplePie::set_autodiscovery_level()
- */
-define('SIMPLEPIE_LOCATOR_NONE', 0);
-
-/**
- * Feed Link Element Autodiscovery
- * @see SimplePie::set_autodiscovery_level()
- */
-define('SIMPLEPIE_LOCATOR_AUTODISCOVERY', 1);
-
-/**
- * Local Feed Extension Autodiscovery
- * @see SimplePie::set_autodiscovery_level()
- */
-define('SIMPLEPIE_LOCATOR_LOCAL_EXTENSION', 2);
-
-/**
- * Local Feed Body Autodiscovery
- * @see SimplePie::set_autodiscovery_level()
- */
-define('SIMPLEPIE_LOCATOR_LOCAL_BODY', 4);
-
-/**
- * Remote Feed Extension Autodiscovery
- * @see SimplePie::set_autodiscovery_level()
- */
-define('SIMPLEPIE_LOCATOR_REMOTE_EXTENSION', 8);
-
-/**
- * Remote Feed Body Autodiscovery
- * @see SimplePie::set_autodiscovery_level()
- */
-define('SIMPLEPIE_LOCATOR_REMOTE_BODY', 16);
-
-/**
- * All Feed Autodiscovery
- * @see SimplePie::set_autodiscovery_level()
- */
-define('SIMPLEPIE_LOCATOR_ALL', 31);
-
-/**
- * No known feed type
- */
-define('SIMPLEPIE_TYPE_NONE', 0);
-
-/**
- * RSS 0.90
- */
-define('SIMPLEPIE_TYPE_RSS_090', 1);
-
-/**
- * RSS 0.91 (Netscape)
- */
-define('SIMPLEPIE_TYPE_RSS_091_NETSCAPE', 2);
-
-/**
- * RSS 0.91 (Userland)
- */
-define('SIMPLEPIE_TYPE_RSS_091_USERLAND', 4);
-
-/**
- * RSS 0.91 (both Netscape and Userland)
- */
-define('SIMPLEPIE_TYPE_RSS_091', 6);
-
-/**
- * RSS 0.92
- */
-define('SIMPLEPIE_TYPE_RSS_092', 8);
-
-/**
- * RSS 0.93
- */
-define('SIMPLEPIE_TYPE_RSS_093', 16);
-
-/**
- * RSS 0.94
- */
-define('SIMPLEPIE_TYPE_RSS_094', 32);
-
-/**
- * RSS 1.0
- */
-define('SIMPLEPIE_TYPE_RSS_10', 64);
-
-/**
- * RSS 2.0
- */
-define('SIMPLEPIE_TYPE_RSS_20', 128);
-
-/**
- * RDF-based RSS
- */
-define('SIMPLEPIE_TYPE_RSS_RDF', 65);
-
-/**
- * Non-RDF-based RSS (truly intended as syndication format)
- */
-define('SIMPLEPIE_TYPE_RSS_SYNDICATION', 190);
-
-/**
- * All RSS
- */
-define('SIMPLEPIE_TYPE_RSS_ALL', 255);
-
-/**
- * Atom 0.3
- */
-define('SIMPLEPIE_TYPE_ATOM_03', 256);
-
-/**
- * Atom 1.0
- */
-define('SIMPLEPIE_TYPE_ATOM_10', 512);
-
-/**
- * All Atom
- */
-define('SIMPLEPIE_TYPE_ATOM_ALL', 768);
-
-/**
- * All feed types
- */
-define('SIMPLEPIE_TYPE_ALL', 1023);
-
-/**
- * No construct
- */
-define('SIMPLEPIE_CONSTRUCT_NONE', 0);
-
-/**
- * Text construct
- */
-define('SIMPLEPIE_CONSTRUCT_TEXT', 1);
-
-/**
- * HTML construct
- */
-define('SIMPLEPIE_CONSTRUCT_HTML', 2);
-
-/**
- * XHTML construct
- */
-define('SIMPLEPIE_CONSTRUCT_XHTML', 4);
-
-/**
- * base64-encoded construct
- */
-define('SIMPLEPIE_CONSTRUCT_BASE64', 8);
-
-/**
- * IRI construct
- */
-define('SIMPLEPIE_CONSTRUCT_IRI', 16);
-
-/**
- * A construct that might be HTML
- */
-define('SIMPLEPIE_CONSTRUCT_MAYBE_HTML', 32);
-
-/**
- * All constructs
- */
-define('SIMPLEPIE_CONSTRUCT_ALL', 63);
-
-/**
- * Don't change case
- */
-define('SIMPLEPIE_SAME_CASE', 1);
-
-/**
- * Change to lowercase
- */
-define('SIMPLEPIE_LOWERCASE', 2);
-
-/**
- * Change to uppercase
- */
-define('SIMPLEPIE_UPPERCASE', 4);
-
-/**
- * PCRE for HTML attributes
- */
-define('SIMPLEPIE_PCRE_HTML_ATTRIBUTE', '((?:[\x09\x0A\x0B\x0C\x0D\x20]+[^\x09\x0A\x0B\x0C\x0D\x20\x2F\x3E][^\x09\x0A\x0B\x0C\x0D\x20\x2F\x3D\x3E]*(?:[\x09\x0A\x0B\x0C\x0D\x20]*=[\x09\x0A\x0B\x0C\x0D\x20]*(?:"(?:[^"]*)"|\'(?:[^\']*)\'|(?:[^\x09\x0A\x0B\x0C\x0D\x20\x22\x27\x3E][^\x09\x0A\x0B\x0C\x0D\x20\x3E]*)?))?)*)[\x09\x0A\x0B\x0C\x0D\x20]*');
-
-/**
- * PCRE for XML attributes
- */
-define('SIMPLEPIE_PCRE_XML_ATTRIBUTE', '((?:\s+(?:(?:[^\s:]+:)?[^\s:]+)\s*=\s*(?:"(?:[^"]*)"|\'(?:[^\']*)\'))*)\s*');
-
-/**
- * XML Namespace
- */
-define('SIMPLEPIE_NAMESPACE_XML', 'http://www.w3.org/XML/1998/namespace');
-
-/**
- * Atom 1.0 Namespace
- */
-define('SIMPLEPIE_NAMESPACE_ATOM_10', 'http://www.w3.org/2005/Atom');
-
-/**
- * Atom 0.3 Namespace
- */
-define('SIMPLEPIE_NAMESPACE_ATOM_03', 'http://purl.org/atom/ns#');
-
-/**
- * RDF Namespace
- */
-define('SIMPLEPIE_NAMESPACE_RDF', 'http://www.w3.org/1999/02/22-rdf-syntax-ns#');
-
-/**
- * RSS 0.90 Namespace
- */
-define('SIMPLEPIE_NAMESPACE_RSS_090', 'http://my.netscape.com/rdf/simple/0.9/');
-
-/**
- * RSS 1.0 Namespace
- */
-define('SIMPLEPIE_NAMESPACE_RSS_10', 'http://purl.org/rss/1.0/');
-
-/**
- * RSS 1.0 Content Module Namespace
- */
-define('SIMPLEPIE_NAMESPACE_RSS_10_MODULES_CONTENT', 'http://purl.org/rss/1.0/modules/content/');
-
-/**
- * RSS 2.0 Namespace
- * (Stupid, I know, but I'm certain it will confuse people less with support.)
- */
-define('SIMPLEPIE_NAMESPACE_RSS_20', '');
-
-/**
- * DC 1.0 Namespace
- */
-define('SIMPLEPIE_NAMESPACE_DC_10', 'http://purl.org/dc/elements/1.0/');
-
-/**
- * DC 1.1 Namespace
- */
-define('SIMPLEPIE_NAMESPACE_DC_11', 'http://purl.org/dc/elements/1.1/');
-
-/**
- * W3C Basic Geo (WGS84 lat/long) Vocabulary Namespace
- */
-define('SIMPLEPIE_NAMESPACE_W3C_BASIC_GEO', 'http://www.w3.org/2003/01/geo/wgs84_pos#');
-
-/**
- * GeoRSS Namespace
- */
-define('SIMPLEPIE_NAMESPACE_GEORSS', 'http://www.georss.org/georss');
-
-/**
- * Media RSS Namespace
- */
-define('SIMPLEPIE_NAMESPACE_MEDIARSS', 'http://search.yahoo.com/mrss/');
-
-/**
- * Wrong Media RSS Namespace. Caused by a long-standing typo in the spec.
- */
-define('SIMPLEPIE_NAMESPACE_MEDIARSS_WRONG', 'http://search.yahoo.com/mrss');
-
-/**
- * Wrong Media RSS Namespace #2. New namespace introduced in Media RSS 1.5.
- */
-define('SIMPLEPIE_NAMESPACE_MEDIARSS_WRONG2', 'http://video.search.yahoo.com/mrss');
-
-/**
- * Wrong Media RSS Namespace #3. A possible typo of the Media RSS 1.5 namespace.
- */
-define('SIMPLEPIE_NAMESPACE_MEDIARSS_WRONG3', 'http://video.search.yahoo.com/mrss/');
-
-/**
- * Wrong Media RSS Namespace #4. New spec location after the RSS Advisory Board takes it over, but not a valid namespace.
- */
-define('SIMPLEPIE_NAMESPACE_MEDIARSS_WRONG4', 'http://www.rssboard.org/media-rss');
-
-/**
- * Wrong Media RSS Namespace #5. A possible typo of the RSS Advisory Board URL.
- */
-define('SIMPLEPIE_NAMESPACE_MEDIARSS_WRONG5', 'http://www.rssboard.org/media-rss/');
-
-/**
- * iTunes RSS Namespace
- */
-define('SIMPLEPIE_NAMESPACE_ITUNES', 'http://www.itunes.com/dtds/podcast-1.0.dtd');
-
-/**
- * XHTML Namespace
- */
-define('SIMPLEPIE_NAMESPACE_XHTML', 'http://www.w3.org/1999/xhtml');
-
-/**
- * IANA Link Relations Registry
- */
-define('SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY', 'http://www.iana.org/assignments/relation/');
-
-/**
- * No file source
- */
-define('SIMPLEPIE_FILE_SOURCE_NONE', 0);
-
-/**
- * Remote file source
- */
-define('SIMPLEPIE_FILE_SOURCE_REMOTE', 1);
-
-/**
- * Local file source
- */
-define('SIMPLEPIE_FILE_SOURCE_LOCAL', 2);
-
-/**
- * fsockopen() file source
- */
-define('SIMPLEPIE_FILE_SOURCE_FSOCKOPEN', 4);
-
-/**
- * cURL file source
- */
-define('SIMPLEPIE_FILE_SOURCE_CURL', 8);
-
-/**
- * file_get_contents() file source
- */
-define('SIMPLEPIE_FILE_SOURCE_FILE_GET_CONTENTS', 16);
-
-
-
-/**
- * SimplePie
- *
- * @package SimplePie
- * @subpackage API
- */
-class SimplePie
-{
-	/**
-	 * @var array Raw data
-	 * @access private
-	 */
-	public $data = array();
-
-	/**
-	 * @var mixed Error string
-	 * @access private
-	 */
-	public $error;
-
-	/**
-	 * @var object Instance of SimplePie_Sanitize (or other class)
-	 * @see SimplePie::set_sanitize_class()
-	 * @access private
-	 */
-	public $sanitize;
-
-	/**
-	 * @var string SimplePie Useragent
-	 * @see SimplePie::set_useragent()
-	 * @access private
-	 */
-	public $useragent = SIMPLEPIE_USERAGENT;
-
-	/**
-	 * @var string Feed URL
-	 * @see SimplePie::set_feed_url()
-	 * @access private
-	 */
-	public $feed_url;
-
-	/**
-	 * @var string Original feed URL, or new feed URL iff HTTP 301 Moved Permanently
-	 * @see SimplePie::subscribe_url()
-	 * @access private
-	 */
-	public $permanent_url = null;
-
-	/**
-	 * @var object Instance of SimplePie_File to use as a feed
-	 * @see SimplePie::set_file()
-	 * @access private
-	 */
-	public $file;
-
-	/**
-	 * @var string Raw feed data
-	 * @see SimplePie::set_raw_data()
-	 * @access private
-	 */
-	public $raw_data;
-
-	/**
-	 * @var int Timeout for fetching remote files
-	 * @see SimplePie::set_timeout()
-	 * @access private
-	 */
-	public $timeout = 10;
-
-	/**
-	 * @var array Custom curl options
-	 * @see SimplePie::set_curl_options()
-	 * @access private
-	 */
-	public $curl_options = array();
-
-	/**
-	 * @var bool Forces fsockopen() to be used for remote files instead
-	 * of cURL, even if a new enough version is installed
-	 * @see SimplePie::force_fsockopen()
-	 * @access private
-	 */
-	public $force_fsockopen = false;
-
-	/**
-	 * @var bool Force the given data/URL to be treated as a feed no matter what
-	 * it appears like
-	 * @see SimplePie::force_feed()
-	 * @access private
-	 */
-	public $force_feed = false;
-
-	/**
-	 * @var bool Enable/Disable Caching
-	 * @see SimplePie::enable_cache()
-	 * @access private
-	 */
-	public $cache = true;
-
-	/**
-	 * @var bool Force SimplePie to fallback to expired cache, if enabled,
-	 * when feed is unavailable.
-	 * @see SimplePie::force_cache_fallback()
-	 * @access private
-	 */
-	public $force_cache_fallback = false;
-
-	/**
-	 * @var int Cache duration (in seconds)
-	 * @see SimplePie::set_cache_duration()
-	 * @access private
-	 */
-	public $cache_duration = 3600;
-
-	/**
-	 * @var int Auto-discovery cache duration (in seconds)
-	 * @see SimplePie::set_autodiscovery_cache_duration()
-	 * @access private
-	 */
-	public $autodiscovery_cache_duration = 604800; // 7 Days.
-
-	/**
-	 * @var string Cache location (relative to executing script)
-	 * @see SimplePie::set_cache_location()
-	 * @access private
-	 */
-	public $cache_location = './cache';
-
-	/**
-	 * @var string Function that creates the cache filename
-	 * @see SimplePie::set_cache_name_function()
-	 * @access private
-	 */
-	public $cache_name_function = 'md5';
-
-	/**
-	 * @var bool Reorder feed by date descending
-	 * @see SimplePie::enable_order_by_date()
-	 * @access private
-	 */
-	public $order_by_date = true;
-
-	/**
-	 * @var mixed Force input encoding to be set to the follow value
-	 * (false, or anything type-cast to false, disables this feature)
-	 * @see SimplePie::set_input_encoding()
-	 * @access private
-	 */
-	public $input_encoding = false;
-
-	/**
-	 * @var int Feed Autodiscovery Level
-	 * @see SimplePie::set_autodiscovery_level()
-	 * @access private
-	 */
-	public $autodiscovery = SIMPLEPIE_LOCATOR_ALL;
-
-	/**
-	 * Class registry object
-	 *
-	 * @var SimplePie_Registry
-	 */
-	public $registry;
-
-	/**
-	 * @var int Maximum number of feeds to check with autodiscovery
-	 * @see SimplePie::set_max_checked_feeds()
-	 * @access private
-	 */
-	public $max_checked_feeds = 10;
-
-	/**
-	 * @var array All the feeds found during the autodiscovery process
-	 * @see SimplePie::get_all_discovered_feeds()
-	 * @access private
-	 */
-	public $all_discovered_feeds = array();
-
-	/**
-	 * @var string Web-accessible path to the handler_image.php file.
-	 * @see SimplePie::set_image_handler()
-	 * @access private
-	 */
-	public $image_handler = '';
-
-	/**
-	 * @var array Stores the URLs when multiple feeds are being initialized.
-	 * @see SimplePie::set_feed_url()
-	 * @access private
-	 */
-	public $multifeed_url = array();
-
-	/**
-	 * @var array Stores SimplePie objects when multiple feeds initialized.
-	 * @access private
-	 */
-	public $multifeed_objects = array();
-
-	/**
-	 * @var array Stores the get_object_vars() array for use with multifeeds.
-	 * @see SimplePie::set_feed_url()
-	 * @access private
-	 */
-	public $config_settings = null;
-
-	/**
-	 * @var integer Stores the number of items to return per-feed with multifeeds.
-	 * @see SimplePie::set_item_limit()
-	 * @access private
-	 */
-	public $item_limit = 0;
-
-	/**
-	 * @var bool Stores if last-modified and/or etag headers were sent with the
-	 * request when checking a feed.
-	 */
-	public $check_modified = false;
-
-	/**
-	 * @var array Stores the default attributes to be stripped by strip_attributes().
-	 * @see SimplePie::strip_attributes()
-	 * @access private
-	 */
-	public $strip_attributes = array('bgsound', 'class', 'expr', 'id', 'style', 'onclick', 'onerror', 'onfinish', 'onmouseover', 'onmouseout', 'onfocus', 'onblur', 'lowsrc', 'dynsrc');
-
-	/**
-	 * @var array Stores the default attributes to add to different tags by add_attributes().
-	 * @see SimplePie::add_attributes()
-	 * @access private
-	 */
-	public $add_attributes = array('audio' => array('preload' => 'none'), 'iframe' => array('sandbox' => 'allow-scripts allow-same-origin'), 'video' => array('preload' => 'none'));
-
-	/**
-	 * @var array Stores the default tags to be stripped by strip_htmltags().
-	 * @see SimplePie::strip_htmltags()
-	 * @access private
-	 */
-	public $strip_htmltags = array('base', 'blink', 'body', 'doctype', 'embed', 'font', 'form', 'frame', 'frameset', 'html', 'iframe', 'input', 'marquee', 'meta', 'noscript', 'object', 'param', 'script', 'style');
-
-	/**
-	 * @var bool Should we throw exceptions, or use the old-style error property?
-	 * @access private
-	 */
-	public $enable_exceptions = false;
-	
-	/**
-	 * The SimplePie class contains feed level data and options
-	 *
-	 * To use SimplePie, create the SimplePie object with no parameters. You can
-	 * then set configuration options using the provided methods. After setting
-	 * them, you must initialise the feed using $feed->init(). At that point the
-	 * object's methods and properties will be available to you.
-	 *
-	 * Previously, it was possible to pass in the feed URL along with cache
-	 * options directly into the constructor. This has been removed as of 1.3 as
-	 * it caused a lot of confusion.
-	 *
-	 * @since 1.0 Preview Release
-	 */
-	public function __construct()
-	{
-		if (version_compare(PHP_VERSION, '5.3', '<'))
-		{
-			trigger_error('Please upgrade to PHP 5.3 or newer.');
-			die();
-		}
-
-		// Other objects, instances created here so we can set options on them
-		$this->sanitize = new SimplePie_Sanitize();
-		$this->registry = new SimplePie_Registry();
-
-		if (func_num_args() > 0)
-		{
-			$level = defined('E_USER_DEPRECATED') ? E_USER_DEPRECATED : E_USER_WARNING;
-			trigger_error('Passing parameters to the constructor is no longer supported. Please use set_feed_url(), set_cache_location(), and set_cache_duration() directly.', $level);
-
-			$args = func_get_args();
-			switch (count($args)) {
-				case 3:
-					$this->set_cache_duration($args[2]);
-				case 2:
-					$this->set_cache_location($args[1]);
-				case 1:
-					$this->set_feed_url($args[0]);
-					$this->init();
-			}
-		}
-	}
-
-	/**
-	 * Used for converting object to a string
-	 */
-	public function __toString()
-	{
-		return md5(serialize($this->data));
-	}
-
-	/**
-	 * Remove items that link back to this before destroying this object
-	 */
-	public function __destruct()
-	{
-		if ((version_compare(PHP_VERSION, '5.3', '<') || !gc_enabled()) && !ini_get('zend.ze1_compatibility_mode'))
-		{
-			if (!empty($this->data['items']))
-			{
-				foreach ($this->data['items'] as $item)
-				{
-					$item->__destruct();
-				}
-				unset($item, $this->data['items']);
-			}
-			if (!empty($this->data['ordered_items']))
-			{
-				foreach ($this->data['ordered_items'] as $item)
-				{
-					$item->__destruct();
-				}
-				unset($item, $this->data['ordered_items']);
-			}
-		}
-	}
-
-	/**
-	 * Force the given data/URL to be treated as a feed
-	 *
-	 * This tells SimplePie to ignore the content-type provided by the server.
-	 * Be careful when using this option, as it will also disable autodiscovery.
-	 *
-	 * @since 1.1
-	 * @param bool $enable Force the given data/URL to be treated as a feed
-	 */
-	public function force_feed($enable = false)
-	{
-		$this->force_feed = (bool) $enable;
-	}
-
-	/**
-	 * Set the URL of the feed you want to parse
-	 *
-	 * This allows you to enter the URL of the feed you want to parse, or the
-	 * website you want to try to use auto-discovery on. This takes priority
-	 * over any set raw data.
-	 *
-	 * You can set multiple feeds to mash together by passing an array instead
-	 * of a string for the $url. Remember that with each additional feed comes
-	 * additional processing and resources.
-	 *
-	 * @since 1.0 Preview Release
-	 * @see set_raw_data()
-	 * @param string|array $url This is the URL (or array of URLs) that you want to parse.
-	 */
-	public function set_feed_url($url)
-	{
-		$this->multifeed_url = array();
-		if (is_array($url))
-		{
-			foreach ($url as $value)
-			{
-				$this->multifeed_url[] = $this->registry->call('Misc', 'fix_protocol', array($value, 1));
-			}
-		}
-		else
-		{
-			$this->feed_url = $this->registry->call('Misc', 'fix_protocol', array($url, 1));
-			$this->permanent_url = $this->feed_url;
-		}
-	}
-
-	/**
-	 * Set an instance of {@see SimplePie_File} to use as a feed
-	 *
-	 * @param SimplePie_File &$file
-	 * @return bool True on success, false on failure
-	 */
-	public function set_file(&$file)
-	{
-		if ($file instanceof SimplePie_File)
-		{
-			$this->feed_url = $file->url;
-			$this->permanent_url = $this->feed_url;
-			$this->file =& $file;
-			return true;
-		}
-		return false;
-	}
-
-	/**
-	 * Set the raw XML data to parse
-	 *
-	 * Allows you to use a string of RSS/Atom data instead of a remote feed.
-	 *
-	 * If you have a feed available as a string in PHP, you can tell SimplePie
-	 * to parse that data string instead of a remote feed. Any set feed URL
-	 * takes precedence.
-	 *
-	 * @since 1.0 Beta 3
-	 * @param string $data RSS or Atom data as a string.
-	 * @see set_feed_url()
-	 */
-	public function set_raw_data($data)
-	{
-		$this->raw_data = $data;
-	}
-
-	/**
-	 * Set the default timeout for fetching remote feeds
-	 *
-	 * This allows you to change the maximum time the feed's server to respond
-	 * and send the feed back.
-	 *
-	 * @since 1.0 Beta 3
-	 * @param int $timeout The maximum number of seconds to spend waiting to retrieve a feed.
-	 */
-	public function set_timeout($timeout = 10)
-	{
-		$this->timeout = (int) $timeout;
-	}
-
-	/**
-	 * Set custom curl options
-	 *
-	 * This allows you to change default curl options
-	 *
-	 * @since 1.0 Beta 3
-	 * @param array $curl_options Curl options to add to default settings
-	 */
-	public function set_curl_options(array $curl_options = array())
-	{
-		$this->curl_options = $curl_options;
-	}
-
-	/**
-	 * Force SimplePie to use fsockopen() instead of cURL
-	 *
-	 * @since 1.0 Beta 3
-	 * @param bool $enable Force fsockopen() to be used
-	 */
-	public function force_fsockopen($enable = false)
-	{
-		$this->force_fsockopen = (bool) $enable;
-	}
-
-	/**
-	 * Enable/disable caching in SimplePie.
-	 *
-	 * This option allows you to disable caching all-together in SimplePie.
-	 * However, disabling the cache can lead to longer load times.
-	 *
-	 * @since 1.0 Preview Release
-	 * @param bool $enable Enable caching
-	 */
-	public function enable_cache($enable = true)
-	{
-		$this->cache = (bool) $enable;
-	}
-
-	/**
-	 * SimplePie to continue to fall back to expired cache, if enabled, when
-	 * feed is unavailable.
-	 *
-	 * This tells SimplePie to ignore any file errors and fall back to cache
-	 * instead. This only works if caching is enabled and cached content
-	 * still exists.
-
-	 * @param bool $enable Force use of cache on fail.
-	 */
-	public function force_cache_fallback($enable = false)
-	{
-		$this->force_cache_fallback= (bool) $enable;
-	}
-
-	/**
-	 * Set the length of time (in seconds) that the contents of a feed will be
-	 * cached
-	 *
-	 * @param int $seconds The feed content cache duration
-	 */
-	public function set_cache_duration($seconds = 3600)
-	{
-		$this->cache_duration = (int) $seconds;
-	}
-
-	/**
-	 * Set the length of time (in seconds) that the autodiscovered feed URL will
-	 * be cached
-	 *
-	 * @param int $seconds The autodiscovered feed URL cache duration.
-	 */
-	public function set_autodiscovery_cache_duration($seconds = 604800)
-	{
-		$this->autodiscovery_cache_duration = (int) $seconds;
-	}
-
-	/**
-	 * Set the file system location where the cached files should be stored
-	 *
-	 * @param string $location The file system location.
-	 */
-	public function set_cache_location($location = './cache')
-	{
-		$this->cache_location = (string) $location;
-	}
-
-	/**
-	 * Set whether feed items should be sorted into reverse chronological order
-	 *
-	 * @param bool $enable Sort as reverse chronological order.
-	 */
-	public function enable_order_by_date($enable = true)
-	{
-		$this->order_by_date = (bool) $enable;
-	}
-
-	/**
-	 * Set the character encoding used to parse the feed
-	 *
-	 * This overrides the encoding reported by the feed, however it will fall
-	 * back to the normal encoding detection if the override fails
-	 *
-	 * @param string $encoding Character encoding
-	 */
-	public function set_input_encoding($encoding = false)
-	{
-		if ($encoding)
-		{
-			$this->input_encoding = (string) $encoding;
-		}
-		else
-		{
-			$this->input_encoding = false;
-		}
-	}
-
-	/**
-	 * Set how much feed autodiscovery to do
-	 *
-	 * @see SIMPLEPIE_LOCATOR_NONE
-	 * @see SIMPLEPIE_LOCATOR_AUTODISCOVERY
-	 * @see SIMPLEPIE_LOCATOR_LOCAL_EXTENSION
-	 * @see SIMPLEPIE_LOCATOR_LOCAL_BODY
-	 * @see SIMPLEPIE_LOCATOR_REMOTE_EXTENSION
-	 * @see SIMPLEPIE_LOCATOR_REMOTE_BODY
-	 * @see SIMPLEPIE_LOCATOR_ALL
-	 * @param int $level Feed Autodiscovery Level (level can be a combination of the above constants, see bitwise OR operator)
-	 */
-	public function set_autodiscovery_level($level = SIMPLEPIE_LOCATOR_ALL)
-	{
-		$this->autodiscovery = (int) $level;
-	}
-
-	/**
-	 * Get the class registry
-	 *
-	 * Use this to override SimplePie's default classes
-	 * @see SimplePie_Registry
-	 * @return SimplePie_Registry
-	 */
-	public function &get_registry()
-	{
-		return $this->registry;
-	}
-
-	/**#@+
-	 * Useful when you are overloading or extending SimplePie's default classes.
-	 *
-	 * @deprecated Use {@see get_registry()} instead
-	 * @link http://php.net/manual/en/language.oop5.basic.php#language.oop5.basic.extends PHP5 extends documentation
-	 * @param string $class Name of custom class
-	 * @return boolean True on success, false otherwise
-	 */
-	/**
-	 * Set which class SimplePie uses for caching
-	 */
-	public function set_cache_class($class = 'SimplePie_Cache')
-	{
-		return $this->registry->register('Cache', $class, true);
-	}
-
-	/**
-	 * Set which class SimplePie uses for auto-discovery
-	 */
-	public function set_locator_class($class = 'SimplePie_Locator')
-	{
-		return $this->registry->register('Locator', $class, true);
-	}
-
-	/**
-	 * Set which class SimplePie uses for XML parsing
-	 */
-	public function set_parser_class($class = 'SimplePie_Parser')
-	{
-		return $this->registry->register('Parser', $class, true);
-	}
-
-	/**
-	 * Set which class SimplePie uses for remote file fetching
-	 */
-	public function set_file_class($class = 'SimplePie_File')
-	{
-		return $this->registry->register('File', $class, true);
-	}
-
-	/**
-	 * Set which class SimplePie uses for data sanitization
-	 */
-	public function set_sanitize_class($class = 'SimplePie_Sanitize')
-	{
-		return $this->registry->register('Sanitize', $class, true);
-	}
-
-	/**
-	 * Set which class SimplePie uses for handling feed items
-	 */
-	public function set_item_class($class = 'SimplePie_Item')
-	{
-		return $this->registry->register('Item', $class, true);
-	}
-
-	/**
-	 * Set which class SimplePie uses for handling author data
-	 */
-	public function set_author_class($class = 'SimplePie_Author')
-	{
-		return $this->registry->register('Author', $class, true);
-	}
-
-	/**
-	 * Set which class SimplePie uses for handling category data
-	 */
-	public function set_category_class($class = 'SimplePie_Category')
-	{
-		return $this->registry->register('Category', $class, true);
-	}
-
-	/**
-	 * Set which class SimplePie uses for feed enclosures
-	 */
-	public function set_enclosure_class($class = 'SimplePie_Enclosure')
-	{
-		return $this->registry->register('Enclosure', $class, true);
-	}
-
-	/**
-	 * Set which class SimplePie uses for `<media:text>` captions
-	 */
-	public function set_caption_class($class = 'SimplePie_Caption')
-	{
-		return $this->registry->register('Caption', $class, true);
-	}
-
-	/**
-	 * Set which class SimplePie uses for `<media:copyright>`
-	 */
-	public function set_copyright_class($class = 'SimplePie_Copyright')
-	{
-		return $this->registry->register('Copyright', $class, true);
-	}
-
-	/**
-	 * Set which class SimplePie uses for `<media:credit>`
-	 */
-	public function set_credit_class($class = 'SimplePie_Credit')
-	{
-		return $this->registry->register('Credit', $class, true);
-	}
-
-	/**
-	 * Set which class SimplePie uses for `<media:rating>`
-	 */
-	public function set_rating_class($class = 'SimplePie_Rating')
-	{
-		return $this->registry->register('Rating', $class, true);
-	}
-
-	/**
-	 * Set which class SimplePie uses for `<media:restriction>`
-	 */
-	public function set_restriction_class($class = 'SimplePie_Restriction')
-	{
-		return $this->registry->register('Restriction', $class, true);
-	}
-
-	/**
-	 * Set which class SimplePie uses for content-type sniffing
-	 */
-	public function set_content_type_sniffer_class($class = 'SimplePie_Content_Type_Sniffer')
-	{
-		return $this->registry->register('Content_Type_Sniffer', $class, true);
-	}
-
-	/**
-	 * Set which class SimplePie uses item sources
-	 */
-	public function set_source_class($class = 'SimplePie_Source')
-	{
-		return $this->registry->register('Source', $class, true);
-	}
-	/**#@-*/
-
-	/**
-	 * Set the user agent string
-	 *
-	 * @param string $ua New user agent string.
-	 */
-	public function set_useragent($ua = SIMPLEPIE_USERAGENT)
-	{
-		$this->useragent = (string) $ua;
-	}
-
-	/**
-	 * Set callback function to create cache filename with
-	 *
-	 * @param mixed $function Callback function
-	 */
-	public function set_cache_name_function($function = 'md5')
-	{
-		if (is_callable($function))
-		{
-			$this->cache_name_function = $function;
-		}
-	}
-
-	/**
-	 * Set options to make SP as fast as possible
-	 *
-	 * Forgoes a substantial amount of data sanitization in favor of speed. This
-	 * turns SimplePie into a dumb parser of feeds.
-	 *
-	 * @param bool $set Whether to set them or not
-	 */
-	public function set_stupidly_fast($set = false)
-	{
-		if ($set)
-		{
-			$this->enable_order_by_date(false);
-			$this->remove_div(false);
-			$this->strip_comments(false);
-			$this->strip_htmltags(false);
-			$this->strip_attributes(false);
-			$this->add_attributes(false);
-			$this->set_image_handler(false);
-		}
-	}
-
-	/**
-	 * Set maximum number of feeds to check with autodiscovery
-	 *
-	 * @param int $max Maximum number of feeds to check
-	 */
-	public function set_max_checked_feeds($max = 10)
-	{
-		$this->max_checked_feeds = (int) $max;
-	}
-
-	public function remove_div($enable = true)
-	{
-		$this->sanitize->remove_div($enable);
-	}
-
-	public function strip_htmltags($tags = '', $encode = null)
-	{
-		if ($tags === '')
-		{
-			$tags = $this->strip_htmltags;
-		}
-		$this->sanitize->strip_htmltags($tags);
-		if ($encode !== null)
-		{
-			$this->sanitize->encode_instead_of_strip($tags);
-		}
-	}
-
-	public function encode_instead_of_strip($enable = true)
-	{
-		$this->sanitize->encode_instead_of_strip($enable);
-	}
-
-	public function strip_attributes($attribs = '')
-	{
-		if ($attribs === '')
-		{
-			$attribs = $this->strip_attributes;
-		}
-		$this->sanitize->strip_attributes($attribs);
-	}
-
-	public function add_attributes($attribs = '')
-	{
-		if ($attribs === '')
-		{
-			$attribs = $this->add_attributes;
-		}
-		$this->sanitize->add_attributes($attribs);
-	}
-
-	/**
-	 * Set the output encoding
-	 *
-	 * Allows you to override SimplePie's output to match that of your webpage.
-	 * This is useful for times when your webpages are not being served as
-	 * UTF-8. This setting will be obeyed by {@see handle_content_type()}, and
-	 * is similar to {@see set_input_encoding()}.
-	 *
-	 * It should be noted, however, that not all character encodings can support
-	 * all characters. If your page is being served as ISO-8859-1 and you try
-	 * to display a Japanese feed, you'll likely see garbled characters.
-	 * Because of this, it is highly recommended to ensure that your webpages
-	 * are served as UTF-8.
-	 *
-	 * The number of supported character encodings depends on whether your web
-	 * host supports {@link http://php.net/mbstring mbstring},
-	 * {@link http://php.net/iconv iconv}, or both. See
-	 * {@link http://simplepie.org/wiki/faq/Supported_Character_Encodings} for
-	 * more information.
-	 *
-	 * @param string $encoding
-	 */
-	public function set_output_encoding($encoding = 'UTF-8')
-	{
-		$this->sanitize->set_output_encoding($encoding);
-	}
-
-	public function strip_comments($strip = false)
-	{
-		$this->sanitize->strip_comments($strip);
-	}
-
-	/**
-	 * Set element/attribute key/value pairs of HTML attributes
-	 * containing URLs that need to be resolved relative to the feed
-	 *
-	 * Defaults to |a|@href, |area|@href, |blockquote|@cite, |del|@cite,
-	 * |form|@action, |img|@longdesc, |img|@src, |input|@src, |ins|@cite,
-	 * |q|@cite
-	 *
-	 * @since 1.0
-	 * @param array|null $element_attribute Element/attribute key/value pairs, null for default
-	 */
-	public function set_url_replacements($element_attribute = null)
-	{
-		$this->sanitize->set_url_replacements($element_attribute);
-	}
-
-	/**
-	 * Set the handler to enable the display of cached images.
-	 *
-	 * @param str $page Web-accessible path to the handler_image.php file.
-	 * @param str $qs The query string that the value should be passed to.
-	 */
-	public function set_image_handler($page = false, $qs = 'i')
-	{
-		if ($page !== false)
-		{
-			$this->sanitize->set_image_handler($page . '?' . $qs . '=');
-		}
-		else
-		{
-			$this->image_handler = '';
-		}
-	}
-
-	/**
-	 * Set the limit for items returned per-feed with multifeeds
-	 *
-	 * @param integer $limit The maximum number of items to return.
-	 */
-	public function set_item_limit($limit = 0)
-	{
-		$this->item_limit = (int) $limit;
-	}
-
-	/**
-	 * Enable throwing exceptions
-	 *
-	 * @param boolean $enable Should we throw exceptions, or use the old-style error property?
-	 */
-	public function enable_exceptions($enable = true)
-	{
-		$this->enable_exceptions = $enable;
-	}
-
-	/**
-	 * Initialize the feed object
-	 *
-	 * This is what makes everything happen. Period. This is where all of the
-	 * configuration options get processed, feeds are fetched, cached, and
-	 * parsed, and all of that other good stuff.
-	 *
-	 * @return boolean True if successful, false otherwise
-	 */
-	public function init()
-	{
-		// Check absolute bare minimum requirements.
-		if (!extension_loaded('xml') || !extension_loaded('pcre'))
-		{
-			$this->error = 'XML or PCRE extensions not loaded!';
-			return false;
-		}
-		// Then check the xml extension is sane (i.e., libxml 2.7.x issue on PHP < 5.2.9 and libxml 2.7.0 to 2.7.2 on any version) if we don't have xmlreader.
-		elseif (!extension_loaded('xmlreader'))
-		{
-			static $xml_is_sane = null;
-			if ($xml_is_sane === null)
-			{
-				$parser_check = xml_parser_create();
-				xml_parse_into_struct($parser_check, '<foo>&amp;</foo>', $values);
-				xml_parser_free($parser_check);
-				$xml_is_sane = isset($values[0]['value']);
-			}
-			if (!$xml_is_sane)
-			{
-				return false;
-			}
-		}
-
-		// The default sanitize class gets set in the constructor, check if it has
-		// changed.
-		if ($this->registry->get_class('Sanitize') !== 'SimplePie_Sanitize') {
-			$this->sanitize = $this->registry->create('Sanitize');
-		}
-		if (method_exists($this->sanitize, 'set_registry'))
-		{
-			$this->sanitize->set_registry($this->registry);
-		}
-
-		// Pass whatever was set with config options over to the sanitizer.
-		// Pass the classes in for legacy support; new classes should use the registry instead
-		$this->sanitize->pass_cache_data($this->cache, $this->cache_location, $this->cache_name_function, $this->registry->get_class('Cache'));
-		$this->sanitize->pass_file_data($this->registry->get_class('File'), $this->timeout, $this->useragent, $this->force_fsockopen, $this->curl_options);
-
-		if (!empty($this->multifeed_url))
-		{
-			$i = 0;
-			$success = 0;
-			$this->multifeed_objects = array();
-			$this->error = array();
-			foreach ($this->multifeed_url as $url)
-			{
-				$this->multifeed_objects[$i] = clone $this;
-				$this->multifeed_objects[$i]->set_feed_url($url);
-				$single_success = $this->multifeed_objects[$i]->init();
-				$success |= $single_success;
-				if (!$single_success)
-				{
-					$this->error[$i] = $this->multifeed_objects[$i]->error();
-				}
-				$i++;
-			}
-			return (bool) $success;
-		}
-		elseif ($this->feed_url === null && $this->raw_data === null)
-		{
-			return false;
-		}
-
-		$this->error = null;
-		$this->data = array();
-		$this->check_modified = false;
-		$this->multifeed_objects = array();
-		$cache = false;
-
-		if ($this->feed_url !== null)
-		{
-			$parsed_feed_url = $this->registry->call('Misc', 'parse_url', array($this->feed_url));
-
-			// Decide whether to enable caching
-			if ($this->cache && $parsed_feed_url['scheme'] !== '')
-			{
-				$cache = $this->registry->call('Cache', 'get_handler', array($this->cache_location, call_user_func($this->cache_name_function, $this->feed_url), 'spc'));
-			}
-
-			// Fetch the data via SimplePie_File into $this->raw_data
-			if (($fetched = $this->fetch_data($cache)) === true)
-			{
-				return true;
-			}
-			elseif ($fetched === false) {
-				return false;
-			}
-
-			list($headers, $sniffed) = $fetched;
-		}
-		
-		// Empty response check
-		if(empty($this->raw_data)){
-			$this->error = "A feed could not be found at `$this->feed_url`. Empty body.";
-			$this->registry->call('Misc', 'error', array($this->error, E_USER_NOTICE, __FILE__, __LINE__));
-			return false;
-		}
-
-		// Set up array of possible encodings
-		$encodings = array();
-
-		// First check to see if input has been overridden.
-		if ($this->input_encoding !== false)
-		{
-			$encodings[] = strtoupper($this->input_encoding);
-		}
-
-		$application_types = array('application/xml', 'application/xml-dtd', 'application/xml-external-parsed-entity');
-		$text_types = array('text/xml', 'text/xml-external-parsed-entity');
-
-		// RFC 3023 (only applies to sniffed content)
-		if (isset($sniffed))
-		{
-			if (in_array($sniffed, $application_types) || substr($sniffed, 0, 12) === 'application/' && substr($sniffed, -4) === '+xml')
-			{
-				if (isset($headers['content-type']) && preg_match('/;\x20?charset=([^;]*)/i', $headers['content-type'], $charset))
-				{
-					$encodings[] = strtoupper($charset[1]);
-				}
-				$encodings = array_merge($encodings, $this->registry->call('Misc', 'xml_encoding', array($this->raw_data, &$this->registry)));
-				$encodings[] = 'UTF-8';
-			}
-			elseif (in_array($sniffed, $text_types) || substr($sniffed, 0, 5) === 'text/' && substr($sniffed, -4) === '+xml')
-			{
-				if (isset($headers['content-type']) && preg_match('/;\x20?charset=([^;]*)/i', $headers['content-type'], $charset))
-				{
-					$encodings[] = strtoupper($charset[1]);
-				}
-				$encodings[] = 'US-ASCII';
-			}
-			// Text MIME-type default
-			elseif (substr($sniffed, 0, 5) === 'text/')
-			{
-				$encodings[] = 'UTF-8';
-			}
-		}
-
-		// Fallback to XML 1.0 Appendix F.1/UTF-8/ISO-8859-1
-		$encodings = array_merge($encodings, $this->registry->call('Misc', 'xml_encoding', array($this->raw_data, &$this->registry)));
-		$encodings[] = 'UTF-8';
-		$encodings[] = 'ISO-8859-1';
-
-		// There's no point in trying an encoding twice
-		$encodings = array_unique($encodings);
-
-		// Loop through each possible encoding, till we return something, or run out of possibilities
-		foreach ($encodings as $encoding)
-		{
-			// Change the encoding to UTF-8 (as we always use UTF-8 internally)
-			if ($utf8_data = $this->registry->call('Misc', 'change_encoding', array($this->raw_data, $encoding, 'UTF-8')))
-			{
-				// Create new parser
-				$parser = $this->registry->create('Parser');
-
-				// If it's parsed fine
-				if ($parser->parse($utf8_data, 'UTF-8', $this->permanent_url))
-				{
-					$this->data = $parser->get_data();
-					if (!($this->get_type() & ~SIMPLEPIE_TYPE_NONE))
-					{
-						$this->error = "A feed could not be found at `$this->feed_url`. This does not appear to be a valid RSS or Atom feed.";
-						$this->registry->call('Misc', 'error', array($this->error, E_USER_NOTICE, __FILE__, __LINE__));
-						return false;
-					}
-
-					if (isset($headers))
-					{
-						$this->data['headers'] = $headers;
-					}
-					$this->data['build'] = SIMPLEPIE_BUILD;
-
-					// Cache the file if caching is enabled
-					if ($cache && !$cache->save($this))
-					{
-						trigger_error("$this->cache_location is not writeable. Make sure you've set the correct relative or absolute path, and that the location is server-writable.", E_USER_WARNING);
-					}
-					return true;
-				}
-			}
-		}
-
-		if (isset($parser))
-		{
-			// We have an error, just set SimplePie_Misc::error to it and quit
-			$this->error = $this->feed_url;
-			$this->error .= sprintf(' is invalid XML, likely due to invalid characters. XML error: %s at line %d, column %d', $parser->get_error_string(), $parser->get_current_line(), $parser->get_current_column());
-		}
-		else
-		{
-			$this->error = 'The data could not be converted to UTF-8.';
-			if (!extension_loaded('mbstring') && !extension_loaded('iconv') && !class_exists('\UConverter')) {
-				$this->error .= ' You MUST have either the iconv, mbstring or intl (PHP 5.5+) extension installed and enabled.';
-			} else {
-				$missingExtensions = array();
-				if (!extension_loaded('iconv')) {
-					$missingExtensions[] = 'iconv';
-				}
-				if (!extension_loaded('mbstring')) {
-					$missingExtensions[] = 'mbstring';
-				}
-				if (!class_exists('\UConverter')) {
-					$missingExtensions[] = 'intl (PHP 5.5+)';
-				}
-				$this->error .= ' Try installing/enabling the ' . implode(' or ', $missingExtensions) . ' extension.';
-			}
-		}
-
-		$this->registry->call('Misc', 'error', array($this->error, E_USER_NOTICE, __FILE__, __LINE__));
-
-		return false;
-	}
-
-	/**
-	 * Fetch the data via SimplePie_File
-	 *
-	 * If the data is already cached, attempt to fetch it from there instead
-	 * @param SimplePie_Cache|false $cache Cache handler, or false to not load from the cache
-	 * @return array|true Returns true if the data was loaded from the cache, or an array of HTTP headers and sniffed type
-	 */
-	protected function fetch_data(&$cache)
-	{
-		// If it's enabled, use the cache
-		if ($cache)
-		{
-			// Load the Cache
-			$this->data = $cache->load();
-			if (!empty($this->data))
-			{
-				// If the cache is for an outdated build of SimplePie
-				if (!isset($this->data['build']) || $this->data['build'] !== SIMPLEPIE_BUILD)
-				{
-					$cache->unlink();
-					$this->data = array();
-				}
-				// If we've hit a collision just rerun it with caching disabled
-				elseif (isset($this->data['url']) && $this->data['url'] !== $this->feed_url)
-				{
-					$cache = false;
-					$this->data = array();
-				}
-				// If we've got a non feed_url stored (if the page isn't actually a feed, or is a redirect) use that URL.
-				elseif (isset($this->data['feed_url']))
-				{
-					// If the autodiscovery cache is still valid use it.
-					if ($cache->mtime() + $this->autodiscovery_cache_duration > time())
-					{
-						// Do not need to do feed autodiscovery yet.
-						if ($this->data['feed_url'] !== $this->data['url'])
-						{
-							$this->set_feed_url($this->data['feed_url']);
-							return $this->init();
-						}
-
-						$cache->unlink();
-						$this->data = array();
-					}
-				}
-				// Check if the cache has been updated
-				elseif ($cache->mtime() + $this->cache_duration < time())
-				{
-					// Want to know if we tried to send last-modified and/or etag headers
-					// when requesting this file. (Note that it's up to the file to
-					// support this, but we don't always send the headers either.)
-					$this->check_modified = true;
-					if (isset($this->data['headers']['last-modified']) || isset($this->data['headers']['etag']))
-					{
-						$headers = array(
-							'Accept' => 'application/atom+xml, application/rss+xml, application/rdf+xml;q=0.9, application/xml;q=0.8, text/xml;q=0.8, text/html;q=0.7, unknown/unknown;q=0.1, application/unknown;q=0.1, */*;q=0.1',
-						);
-						if (isset($this->data['headers']['last-modified']))
-						{
-							$headers['if-modified-since'] = $this->data['headers']['last-modified'];
-						}
-						if (isset($this->data['headers']['etag']))
-						{
-							$headers['if-none-match'] = $this->data['headers']['etag'];
-						}
-
-						$file = $this->registry->create('File', array($this->feed_url, $this->timeout/10, 5, $headers, $this->useragent, $this->force_fsockopen, $this->curl_options));
-
-						if ($file->success)
-						{
-							if ($file->status_code === 304)
-							{
-								// Set raw_data to false here too, to signify that the cache
-								// is still valid.
-								$this->raw_data = false;
-								$cache->touch();
-								return true;
-							}
-						}
-						else
-						{
-							$this->check_modified = false;
-							if($this->force_cache_fallback)
-							{
-								$cache->touch();
-								return true;
-							}
-
-							unset($file);
-						}
-					}
-				}
-				// If the cache is still valid, just return true
-				else
-				{
-					$this->raw_data = false;
-					return true;
-				}
-			}
-			// If the cache is empty, delete it
-			else
-			{
-				$cache->unlink();
-				$this->data = array();
-			}
-		}
-		// If we don't already have the file (it'll only exist if we've opened it to check if the cache has been modified), open it.
-		if (!isset($file))
-		{
-			if ($this->file instanceof SimplePie_File && $this->file->url === $this->feed_url)
-			{
-				$file =& $this->file;
-			}
-			else
-			{
-				$headers = array(
-					'Accept' => 'application/atom+xml, application/rss+xml, application/rdf+xml;q=0.9, application/xml;q=0.8, text/xml;q=0.8, text/html;q=0.7, unknown/unknown;q=0.1, application/unknown;q=0.1, */*;q=0.1',
-				);
-				$file = $this->registry->create('File', array($this->feed_url, $this->timeout, 5, $headers, $this->useragent, $this->force_fsockopen, $this->curl_options));
-			}
-		}
-		// If the file connection has an error, set SimplePie::error to that and quit
-		if (!$file->success && !($file->method & SIMPLEPIE_FILE_SOURCE_REMOTE === 0 || ($file->status_code === 200 || $file->status_code > 206 && $file->status_code < 300)))
-		{
-			$this->error = $file->error;
-			return !empty($this->data);
-		}
-
-		if (!$this->force_feed)
-		{
-			// Check if the supplied URL is a feed, if it isn't, look for it.
-			$locate = $this->registry->create('Locator', array(&$file, $this->timeout, $this->useragent, $this->max_checked_feeds));
-
-			if (!$locate->is_feed($file))
-			{
-				$copyStatusCode = $file->status_code;
-				$copyContentType = $file->headers['content-type'];
-				try
-				{
-					$microformats = false;
-					if (class_exists('DOMXpath') && function_exists('Mf2\parse')) {
-						$doc = new DOMDocument();
-						@$doc->loadHTML($file->body);
-						$xpath = new DOMXpath($doc);
-						// Check for both h-feed and h-entry, as both a feed with no entries
-						// and a list of entries without an h-feed wrapper are both valid.
-						$query = '//*[contains(concat(" ", @class, " "), " h-feed ") or '.
-							'contains(concat(" ", @class, " "), " h-entry ")]';
-						$result = $xpath->query($query);
-						$microformats = $result->length !== 0;
-					}
-					// Now also do feed discovery, but if microformats were found don't
-					// overwrite the current value of file.
-					$discovered = $locate->find($this->autodiscovery,
-					                            $this->all_discovered_feeds);
-					if ($microformats)
-					{
-						if ($hub = $locate->get_rel_link('hub'))
-						{
-							$self = $locate->get_rel_link('self');
-							$this->store_links($file, $hub, $self);
-						}
-						// Push the current file onto all_discovered feeds so the user can
-						// be shown this as one of the options.
-						if (isset($this->all_discovered_feeds)) {
-							$this->all_discovered_feeds[] = $file;
-						}
-					}
-					else
-					{
-						if ($discovered)
-						{
-							$file = $discovered;
-						}
-						else
-						{
-							// We need to unset this so that if SimplePie::set_file() has
-							// been called that object is untouched
-							unset($file);
-							$this->error = "A feed could not be found at `$this->feed_url`; the status code is `$copyStatusCode` and content-type is `$copyContentType`";
-							$this->registry->call('Misc', 'error', array($this->error, E_USER_NOTICE, __FILE__, __LINE__));
-							return false;
-						}
-					}
-				}
-				catch (SimplePie_Exception $e)
-				{
-					// We need to unset this so that if SimplePie::set_file() has been called that object is untouched
-					unset($file);
-					// This is usually because DOMDocument doesn't exist
-					$this->error = $e->getMessage();
-					$this->registry->call('Misc', 'error', array($this->error, E_USER_NOTICE, $e->getFile(), $e->getLine()));
-					return false;
-				}
-				if ($cache)
-				{
-					$this->data = array('url' => $this->feed_url, 'feed_url' => $file->url, 'build' => SIMPLEPIE_BUILD);
-					if (!$cache->save($this))
-					{
-						trigger_error("$this->cache_location is not writeable. Make sure you've set the correct relative or absolute path, and that the location is server-writable.", E_USER_WARNING);
-					}
-					$cache = $this->registry->call('Cache', 'get_handler', array($this->cache_location, call_user_func($this->cache_name_function, $file->url), 'spc'));
-				}
-				$this->feed_url = $file->url;
-			}
-			$locate = null;
-		}
-
-		$this->raw_data = $file->body;
-		$this->permanent_url = $file->permanent_url;
-		$headers = $file->headers;
-		$sniffer = $this->registry->create('Content_Type_Sniffer', array(&$file));
-		$sniffed = $sniffer->get_type();
-
-		return array($headers, $sniffed);
-	}
-
-	/**
-	 * Get the error message for the occured error
-	 *
-	 * @return string|array Error message, or array of messages for multifeeds
-	 */
-	public function error()
-	{
-		return $this->error;
-	}
-
-	/**
-	 * Get the raw XML
-	 *
-	 * This is the same as the old `$feed->enable_xml_dump(true)`, but returns
-	 * the data instead of printing it.
-	 *
-	 * @return string|boolean Raw XML data, false if the cache is used
-	 */
-	public function get_raw_data()
-	{
-		return $this->raw_data;
-	}
-
-	/**
-	 * Get the character encoding used for output
-	 *
-	 * @since Preview Release
-	 * @return string
-	 */
-	public function get_encoding()
-	{
-		return $this->sanitize->output_encoding;
-	}
-
-	/**
-	 * Send the content-type header with correct encoding
-	 *
-	 * This method ensures that the SimplePie-enabled page is being served with
-	 * the correct {@link http://www.iana.org/assignments/media-types/ mime-type}
-	 * and character encoding HTTP headers (character encoding determined by the
-	 * {@see set_output_encoding} config option).
-	 *
-	 * This won't work properly if any content or whitespace has already been
-	 * sent to the browser, because it relies on PHP's
-	 * {@link http://php.net/header header()} function, and these are the
-	 * circumstances under which the function works.
-	 *
-	 * Because it's setting these settings for the entire page (as is the nature
-	 * of HTTP headers), this should only be used once per page (again, at the
-	 * top).
-	 *
-	 * @param string $mime MIME type to serve the page as
-	 */
-	public function handle_content_type($mime = 'text/html')
-	{
-		if (!headers_sent())
-		{
-			$header = "Content-type: $mime;";
-			if ($this->get_encoding())
-			{
-				$header .= ' charset=' . $this->get_encoding();
-			}
-			else
-			{
-				$header .= ' charset=UTF-8';
-			}
-			header($header);
-		}
-	}
-
-	/**
-	 * Get the type of the feed
-	 *
-	 * This returns a SIMPLEPIE_TYPE_* constant, which can be tested against
-	 * using {@link http://php.net/language.operators.bitwise bitwise operators}
-	 *
-	 * @since 0.8 (usage changed to using constants in 1.0)
-	 * @see SIMPLEPIE_TYPE_NONE Unknown.
-	 * @see SIMPLEPIE_TYPE_RSS_090 RSS 0.90.
-	 * @see SIMPLEPIE_TYPE_RSS_091_NETSCAPE RSS 0.91 (Netscape).
-	 * @see SIMPLEPIE_TYPE_RSS_091_USERLAND RSS 0.91 (Userland).
-	 * @see SIMPLEPIE_TYPE_RSS_091 RSS 0.91.
-	 * @see SIMPLEPIE_TYPE_RSS_092 RSS 0.92.
-	 * @see SIMPLEPIE_TYPE_RSS_093 RSS 0.93.
-	 * @see SIMPLEPIE_TYPE_RSS_094 RSS 0.94.
-	 * @see SIMPLEPIE_TYPE_RSS_10 RSS 1.0.
-	 * @see SIMPLEPIE_TYPE_RSS_20 RSS 2.0.x.
-	 * @see SIMPLEPIE_TYPE_RSS_RDF RDF-based RSS.
-	 * @see SIMPLEPIE_TYPE_RSS_SYNDICATION Non-RDF-based RSS (truly intended as syndication format).
-	 * @see SIMPLEPIE_TYPE_RSS_ALL Any version of RSS.
-	 * @see SIMPLEPIE_TYPE_ATOM_03 Atom 0.3.
-	 * @see SIMPLEPIE_TYPE_ATOM_10 Atom 1.0.
-	 * @see SIMPLEPIE_TYPE_ATOM_ALL Any version of Atom.
-	 * @see SIMPLEPIE_TYPE_ALL Any known/supported feed type.
-	 * @return int SIMPLEPIE_TYPE_* constant
-	 */
-	public function get_type()
-	{
-		if (!isset($this->data['type']))
-		{
-			$this->data['type'] = SIMPLEPIE_TYPE_ALL;
-			if (isset($this->data['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['feed']))
-			{
-				$this->data['type'] &= SIMPLEPIE_TYPE_ATOM_10;
-			}
-			elseif (isset($this->data['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['feed']))
-			{
-				$this->data['type'] &= SIMPLEPIE_TYPE_ATOM_03;
-			}
-			elseif (isset($this->data['child'][SIMPLEPIE_NAMESPACE_RDF]['RDF']))
-			{
-				if (isset($this->data['child'][SIMPLEPIE_NAMESPACE_RDF]['RDF'][0]['child'][SIMPLEPIE_NAMESPACE_RSS_10]['channel'])
-				|| isset($this->data['child'][SIMPLEPIE_NAMESPACE_RDF]['RDF'][0]['child'][SIMPLEPIE_NAMESPACE_RSS_10]['image'])
-				|| isset($this->data['child'][SIMPLEPIE_NAMESPACE_RDF]['RDF'][0]['child'][SIMPLEPIE_NAMESPACE_RSS_10]['item'])
-				|| isset($this->data['child'][SIMPLEPIE_NAMESPACE_RDF]['RDF'][0]['child'][SIMPLEPIE_NAMESPACE_RSS_10]['textinput']))
-				{
-					$this->data['type'] &= SIMPLEPIE_TYPE_RSS_10;
-				}
-				if (isset($this->data['child'][SIMPLEPIE_NAMESPACE_RDF]['RDF'][0]['child'][SIMPLEPIE_NAMESPACE_RSS_090]['channel'])
-				|| isset($this->data['child'][SIMPLEPIE_NAMESPACE_RDF]['RDF'][0]['child'][SIMPLEPIE_NAMESPACE_RSS_090]['image'])
-				|| isset($this->data['child'][SIMPLEPIE_NAMESPACE_RDF]['RDF'][0]['child'][SIMPLEPIE_NAMESPACE_RSS_090]['item'])
-				|| isset($this->data['child'][SIMPLEPIE_NAMESPACE_RDF]['RDF'][0]['child'][SIMPLEPIE_NAMESPACE_RSS_090]['textinput']))
-				{
-					$this->data['type'] &= SIMPLEPIE_TYPE_RSS_090;
-				}
-			}
-			elseif (isset($this->data['child'][SIMPLEPIE_NAMESPACE_RSS_20]['rss']))
-			{
-				$this->data['type'] &= SIMPLEPIE_TYPE_RSS_ALL;
-				if (isset($this->data['child'][SIMPLEPIE_NAMESPACE_RSS_20]['rss'][0]['attribs']['']['version']))
-				{
-					switch (trim($this->data['child'][SIMPLEPIE_NAMESPACE_RSS_20]['rss'][0]['attribs']['']['version']))
-					{
-						case '0.91':
-							$this->data['type'] &= SIMPLEPIE_TYPE_RSS_091;
-							if (isset($this->data['child'][SIMPLEPIE_NAMESPACE_RSS_20]['rss'][0]['child'][SIMPLEPIE_NAMESPACE_RSS_20]['skiphours']['hour'][0]['data']))
-							{
-								switch (trim($this->data['child'][SIMPLEPIE_NAMESPACE_RSS_20]['rss'][0]['child'][SIMPLEPIE_NAMESPACE_RSS_20]['skiphours']['hour'][0]['data']))
-								{
-									case '0':
-										$this->data['type'] &= SIMPLEPIE_TYPE_RSS_091_NETSCAPE;
-										break;
-
-									case '24':
-										$this->data['type'] &= SIMPLEPIE_TYPE_RSS_091_USERLAND;
-										break;
-								}
-							}
-							break;
-
-						case '0.92':
-							$this->data['type'] &= SIMPLEPIE_TYPE_RSS_092;
-							break;
-
-						case '0.93':
-							$this->data['type'] &= SIMPLEPIE_TYPE_RSS_093;
-							break;
-
-						case '0.94':
-							$this->data['type'] &= SIMPLEPIE_TYPE_RSS_094;
-							break;
-
-						case '2.0':
-							$this->data['type'] &= SIMPLEPIE_TYPE_RSS_20;
-							break;
-					}
-				}
-			}
-			else
-			{
-				$this->data['type'] = SIMPLEPIE_TYPE_NONE;
-			}
-		}
-		return $this->data['type'];
-	}
-
-	/**
-	 * Get the URL for the feed
-	 * 
-	 * When the 'permanent' mode is enabled, returns the original feed URL,
-	 * except in the case of an `HTTP 301 Moved Permanently` status response,
-	 * in which case the location of the first redirection is returned.
-	 *
-	 * When the 'permanent' mode is disabled (default),
-	 * may or may not be different from the URL passed to {@see set_feed_url()},
-	 * depending on whether auto-discovery was used.
-	 *
-	 * @since Preview Release (previously called `get_feed_url()` since SimplePie 0.8.)
-	 * @todo Support <itunes:new-feed-url>
-	 * @todo Also, |atom:link|@rel=self
-	 * @param bool $permanent Permanent mode to return only the original URL or the first redirection
-	 * iff it is a 301 redirection
-	 * @return string|null
-	 */
-	public function subscribe_url($permanent = false)
-	{
-		if ($permanent)
-		{
-			if ($this->permanent_url !== null)
-			{
-				// sanitize encodes ampersands which are required when used in a url.
-				return str_replace('&amp;', '&',
-				                   $this->sanitize($this->permanent_url,
-				                                   SIMPLEPIE_CONSTRUCT_IRI));
-			}
-		}
-		else
-		{
-			if ($this->feed_url !== null)
-			{
-				return str_replace('&amp;', '&',
-				                   $this->sanitize($this->feed_url,
-				                                   SIMPLEPIE_CONSTRUCT_IRI));
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Get data for an feed-level element
-	 *
-	 * This method allows you to get access to ANY element/attribute that is a
-	 * sub-element of the opening feed tag.
-	 *
-	 * The return value is an indexed array of elements matching the given
-	 * namespace and tag name. Each element has `attribs`, `data` and `child`
-	 * subkeys. For `attribs` and `child`, these contain namespace subkeys.
-	 * `attribs` then has one level of associative name => value data (where
-	 * `value` is a string) after the namespace. `child` has tag-indexed keys
-	 * after the namespace, each member of which is an indexed array matching
-	 * this same format.
-	 *
-	 * For example:
-	 * <pre>
-	 * // This is probably a bad example because we already support
-	 * // <media:content> natively, but it shows you how to parse through
-	 * // the nodes.
-	 * $group = $item->get_item_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'group');
-	 * $content = $group[0]['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['content'];
-	 * $file = $content[0]['attribs']['']['url'];
-	 * echo $file;
-	 * </pre>
-	 *
-	 * @since 1.0
-	 * @see http://simplepie.org/wiki/faq/supported_xml_namespaces
-	 * @param string $namespace The URL of the XML namespace of the elements you're trying to access
-	 * @param string $tag Tag name
-	 * @return array
-	 */
-	public function get_feed_tags($namespace, $tag)
-	{
-		$type = $this->get_type();
-		if ($type & SIMPLEPIE_TYPE_ATOM_10)
-		{
-			if (isset($this->data['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['feed'][0]['child'][$namespace][$tag]))
-			{
-				return $this->data['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['feed'][0]['child'][$namespace][$tag];
-			}
-		}
-		if ($type & SIMPLEPIE_TYPE_ATOM_03)
-		{
-			if (isset($this->data['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['feed'][0]['child'][$namespace][$tag]))
-			{
-				return $this->data['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['feed'][0]['child'][$namespace][$tag];
-			}
-		}
-		if ($type & SIMPLEPIE_TYPE_RSS_RDF)
-		{
-			if (isset($this->data['child'][SIMPLEPIE_NAMESPACE_RDF]['RDF'][0]['child'][$namespace][$tag]))
-			{
-				return $this->data['child'][SIMPLEPIE_NAMESPACE_RDF]['RDF'][0]['child'][$namespace][$tag];
-			}
-		}
-		if ($type & SIMPLEPIE_TYPE_RSS_SYNDICATION)
-		{
-			if (isset($this->data['child'][SIMPLEPIE_NAMESPACE_RSS_20]['rss'][0]['child'][$namespace][$tag]))
-			{
-				return $this->data['child'][SIMPLEPIE_NAMESPACE_RSS_20]['rss'][0]['child'][$namespace][$tag];
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Get data for an channel-level element
-	 *
-	 * This method allows you to get access to ANY element/attribute in the
-	 * channel/header section of the feed.
-	 *
-	 * See {@see SimplePie::get_feed_tags()} for a description of the return value
-	 *
-	 * @since 1.0
-	 * @see http://simplepie.org/wiki/faq/supported_xml_namespaces
-	 * @param string $namespace The URL of the XML namespace of the elements you're trying to access
-	 * @param string $tag Tag name
-	 * @return array
-	 */
-	public function get_channel_tags($namespace, $tag)
-	{
-		$type = $this->get_type();
-		if ($type & SIMPLEPIE_TYPE_ATOM_ALL)
-		{
-			if ($return = $this->get_feed_tags($namespace, $tag))
-			{
-				return $return;
-			}
-		}
-		if ($type & SIMPLEPIE_TYPE_RSS_10)
-		{
-			if ($channel = $this->get_feed_tags(SIMPLEPIE_NAMESPACE_RSS_10, 'channel'))
-			{
-				if (isset($channel[0]['child'][$namespace][$tag]))
-				{
-					return $channel[0]['child'][$namespace][$tag];
-				}
-			}
-		}
-		if ($type & SIMPLEPIE_TYPE_RSS_090)
-		{
-			if ($channel = $this->get_feed_tags(SIMPLEPIE_NAMESPACE_RSS_090, 'channel'))
-			{
-				if (isset($channel[0]['child'][$namespace][$tag]))
-				{
-					return $channel[0]['child'][$namespace][$tag];
-				}
-			}
-		}
-		if ($type & SIMPLEPIE_TYPE_RSS_SYNDICATION)
-		{
-			if ($channel = $this->get_feed_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'channel'))
-			{
-				if (isset($channel[0]['child'][$namespace][$tag]))
-				{
-					return $channel[0]['child'][$namespace][$tag];
-				}
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Get data for an channel-level element
-	 *
-	 * This method allows you to get access to ANY element/attribute in the
-	 * image/logo section of the feed.
-	 *
-	 * See {@see SimplePie::get_feed_tags()} for a description of the return value
-	 *
-	 * @since 1.0
-	 * @see http://simplepie.org/wiki/faq/supported_xml_namespaces
-	 * @param string $namespace The URL of the XML namespace of the elements you're trying to access
-	 * @param string $tag Tag name
-	 * @return array
-	 */
-	public function get_image_tags($namespace, $tag)
-	{
-		$type = $this->get_type();
-		if ($type & SIMPLEPIE_TYPE_RSS_10)
-		{
-			if ($image = $this->get_feed_tags(SIMPLEPIE_NAMESPACE_RSS_10, 'image'))
-			{
-				if (isset($image[0]['child'][$namespace][$tag]))
-				{
-					return $image[0]['child'][$namespace][$tag];
-				}
-			}
-		}
-		if ($type & SIMPLEPIE_TYPE_RSS_090)
-		{
-			if ($image = $this->get_feed_tags(SIMPLEPIE_NAMESPACE_RSS_090, 'image'))
-			{
-				if (isset($image[0]['child'][$namespace][$tag]))
-				{
-					return $image[0]['child'][$namespace][$tag];
-				}
-			}
-		}
-		if ($type & SIMPLEPIE_TYPE_RSS_SYNDICATION)
-		{
-			if ($image = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'image'))
-			{
-				if (isset($image[0]['child'][$namespace][$tag]))
-				{
-					return $image[0]['child'][$namespace][$tag];
-				}
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Get the base URL value from the feed
-	 *
-	 * Uses `<xml:base>` if available, otherwise uses the first link in the
-	 * feed, or failing that, the URL of the feed itself.
-	 *
-	 * @see get_link
-	 * @see subscribe_url
-	 *
-	 * @param array $element
-	 * @return string
-	 */
-	public function get_base($element = array())
-	{
-		if (!($this->get_type() & SIMPLEPIE_TYPE_RSS_SYNDICATION) && !empty($element['xml_base_explicit']) && isset($element['xml_base']))
-		{
-			return $element['xml_base'];
-		}
-		elseif ($this->get_link() !== null)
-		{
-			return $this->get_link();
-		}
-		else
-		{
-			return $this->subscribe_url();
-		}
-	}
-
-	/**
-	 * Sanitize feed data
-	 *
-	 * @access private
-	 * @see SimplePie_Sanitize::sanitize()
-	 * @param string $data Data to sanitize
-	 * @param int $type One of the SIMPLEPIE_CONSTRUCT_* constants
-	 * @param string $base Base URL to resolve URLs against
-	 * @return string Sanitized data
-	 */
-	public function sanitize($data, $type, $base = '')
-	{
-		try
-		{
-			return $this->sanitize->sanitize($data, $type, $base);
-		}
-		catch (SimplePie_Exception $e)
-		{
-			if (!$this->enable_exceptions)
-			{
-				$this->error = $e->getMessage();
-				$this->registry->call('Misc', 'error', array($this->error, E_USER_WARNING, $e->getFile(), $e->getLine()));
-				return '';
-			}
-
-			throw $e;
-		}
-	}
-
-	/**
-	 * Get the title of the feed
-	 *
-	 * Uses `<atom:title>`, `<title>` or `<dc:title>`
-	 *
-	 * @since 1.0 (previously called `get_feed_title` since 0.8)
-	 * @return string|null
-	 */
-	public function get_title()
-	{
-		if ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'title'))
-		{
-			return $this->sanitize($return[0]['data'], $this->registry->call('Misc', 'atom_10_construct_type', array($return[0]['attribs'])), $this->get_base($return[0]));
-		}
-		elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'title'))
-		{
-			return $this->sanitize($return[0]['data'], $this->registry->call('Misc', 'atom_03_construct_type', array($return[0]['attribs'])), $this->get_base($return[0]));
-		}
-		elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_RSS_10, 'title'))
-		{
-			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_MAYBE_HTML, $this->get_base($return[0]));
-		}
-		elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_RSS_090, 'title'))
-		{
-			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_MAYBE_HTML, $this->get_base($return[0]));
-		}
-		elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'title'))
-		{
-			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_MAYBE_HTML, $this->get_base($return[0]));
-		}
-		elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_DC_11, 'title'))
-		{
-			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-		}
-		elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_DC_10, 'title'))
-		{
-			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	/**
-	 * Get a category for the feed
-	 *
-	 * @since Unknown
-	 * @param int $key The category that you want to return. Remember that arrays begin with 0, not 1
-	 * @return SimplePie_Category|null
-	 */
-	public function get_category($key = 0)
-	{
-		$categories = $this->get_categories();
-		if (isset($categories[$key]))
-		{
-			return $categories[$key];
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	/**
-	 * Get all categories for the feed
-	 *
-	 * Uses `<atom:category>`, `<category>` or `<dc:subject>`
-	 *
-	 * @since Unknown
-	 * @return array|null List of {@see SimplePie_Category} objects
-	 */
-	public function get_categories()
-	{
-		$categories = array();
-
-		foreach ((array) $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'category') as $category)
-		{
-			$term = null;
-			$scheme = null;
-			$label = null;
-			if (isset($category['attribs']['']['term']))
-			{
-				$term = $this->sanitize($category['attribs']['']['term'], SIMPLEPIE_CONSTRUCT_TEXT);
-			}
-			if (isset($category['attribs']['']['scheme']))
-			{
-				$scheme = $this->sanitize($category['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT);
-			}
-			if (isset($category['attribs']['']['label']))
-			{
-				$label = $this->sanitize($category['attribs']['']['label'], SIMPLEPIE_CONSTRUCT_TEXT);
-			}
-			$categories[] = $this->registry->create('Category', array($term, $scheme, $label));
-		}
-		foreach ((array) $this->get_channel_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'category') as $category)
-		{
-			// This is really the label, but keep this as the term also for BC.
-			// Label will also work on retrieving because that falls back to term.
-			$term = $this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-			if (isset($category['attribs']['']['domain']))
-			{
-				$scheme = $this->sanitize($category['attribs']['']['domain'], SIMPLEPIE_CONSTRUCT_TEXT);
-			}
-			else
-			{
-				$scheme = null;
-			}
-			$categories[] = $this->registry->create('Category', array($term, $scheme, null));
-		}
-		foreach ((array) $this->get_channel_tags(SIMPLEPIE_NAMESPACE_DC_11, 'subject') as $category)
-		{
-			$categories[] = $this->registry->create('Category', array($this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null));
-		}
-		foreach ((array) $this->get_channel_tags(SIMPLEPIE_NAMESPACE_DC_10, 'subject') as $category)
-		{
-			$categories[] = $this->registry->create('Category', array($this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null));
-		}
-
-		if (!empty($categories))
-		{
-			return array_unique($categories);
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	/**
-	 * Get an author for the feed
-	 *
-	 * @since 1.1
-	 * @param int $key The author that you want to return. Remember that arrays begin with 0, not 1
-	 * @return SimplePie_Author|null
-	 */
-	public function get_author($key = 0)
-	{
-		$authors = $this->get_authors();
-		if (isset($authors[$key]))
-		{
-			return $authors[$key];
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	/**
-	 * Get all authors for the feed
-	 *
-	 * Uses `<atom:author>`, `<author>`, `<dc:creator>` or `<itunes:author>`
-	 *
-	 * @since 1.1
-	 * @return array|null List of {@see SimplePie_Author} objects
-	 */
-	public function get_authors()
-	{
-		$authors = array();
-		foreach ((array) $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'author') as $author)
-		{
-			$name = null;
-			$uri = null;
-			$email = null;
-			if (isset($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['name'][0]['data']))
-			{
-				$name = $this->sanitize($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['name'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-			}
-			if (isset($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0]['data']))
-			{
-				$uri = $this->sanitize($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0]));
-			}
-			if (isset($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['email'][0]['data']))
-			{
-				$email = $this->sanitize($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['email'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-			}
-			if ($name !== null || $email !== null || $uri !== null)
-			{
-				$authors[] = $this->registry->create('Author', array($name, $uri, $email));
-			}
-		}
-		if ($author = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'author'))
-		{
-			$name = null;
-			$url = null;
-			$email = null;
-			if (isset($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['name'][0]['data']))
-			{
-				$name = $this->sanitize($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['name'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-			}
-			if (isset($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['url'][0]['data']))
-			{
-				$url = $this->sanitize($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['url'][0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['url'][0]));
-			}
-			if (isset($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['email'][0]['data']))
-			{
-				$email = $this->sanitize($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['email'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-			}
-			if ($name !== null || $email !== null || $url !== null)
-			{
-				$authors[] = $this->registry->create('Author', array($name, $url, $email));
-			}
-		}
-		foreach ((array) $this->get_channel_tags(SIMPLEPIE_NAMESPACE_DC_11, 'creator') as $author)
-		{
-			$authors[] = $this->registry->create('Author', array($this->sanitize($author['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null));
-		}
-		foreach ((array) $this->get_channel_tags(SIMPLEPIE_NAMESPACE_DC_10, 'creator') as $author)
-		{
-			$authors[] = $this->registry->create('Author', array($this->sanitize($author['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null));
-		}
-		foreach ((array) $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'author') as $author)
-		{
-			$authors[] = $this->registry->create('Author', array($this->sanitize($author['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null));
-		}
-
-		if (!empty($authors))
-		{
-			return array_unique($authors);
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	/**
-	 * Get a contributor for the feed
-	 *
-	 * @since 1.1
-	 * @param int $key The contrbutor that you want to return. Remember that arrays begin with 0, not 1
-	 * @return SimplePie_Author|null
-	 */
-	public function get_contributor($key = 0)
-	{
-		$contributors = $this->get_contributors();
-		if (isset($contributors[$key]))
-		{
-			return $contributors[$key];
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	/**
-	 * Get all contributors for the feed
-	 *
-	 * Uses `<atom:contributor>`
-	 *
-	 * @since 1.1
-	 * @return array|null List of {@see SimplePie_Author} objects
-	 */
-	public function get_contributors()
-	{
-		$contributors = array();
-		foreach ((array) $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'contributor') as $contributor)
-		{
-			$name = null;
-			$uri = null;
-			$email = null;
-			if (isset($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['name'][0]['data']))
-			{
-				$name = $this->sanitize($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['name'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-			}
-			if (isset($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0]['data']))
-			{
-				$uri = $this->sanitize($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0]));
-			}
-			if (isset($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['email'][0]['data']))
-			{
-				$email = $this->sanitize($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['email'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-			}
-			if ($name !== null || $email !== null || $uri !== null)
-			{
-				$contributors[] = $this->registry->create('Author', array($name, $uri, $email));
-			}
-		}
-		foreach ((array) $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'contributor') as $contributor)
-		{
-			$name = null;
-			$url = null;
-			$email = null;
-			if (isset($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['name'][0]['data']))
-			{
-				$name = $this->sanitize($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['name'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-			}
-			if (isset($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['url'][0]['data']))
-			{
-				$url = $this->sanitize($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['url'][0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['url'][0]));
-			}
-			if (isset($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['email'][0]['data']))
-			{
-				$email = $this->sanitize($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['email'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-			}
-			if ($name !== null || $email !== null || $url !== null)
-			{
-				$contributors[] = $this->registry->create('Author', array($name, $url, $email));
-			}
-		}
-
-		if (!empty($contributors))
-		{
-			return array_unique($contributors);
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	/**
-	 * Get a single link for the feed
-	 *
-	 * @since 1.0 (previously called `get_feed_link` since Preview Release, `get_feed_permalink()` since 0.8)
-	 * @param int $key The link that you want to return. Remember that arrays begin with 0, not 1
-	 * @param string $rel The relationship of the link to return
-	 * @return string|null Link URL
-	 */
-	public function get_link($key = 0, $rel = 'alternate')
-	{
-		$links = $this->get_links($rel);
-		if (isset($links[$key]))
-		{
-			return $links[$key];
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	/**
-	 * Get the permalink for the item
-	 *
-	 * Returns the first link available with a relationship of "alternate".
-	 * Identical to {@see get_link()} with key 0
-	 *
-	 * @see get_link
-	 * @since 1.0 (previously called `get_feed_link` since Preview Release, `get_feed_permalink()` since 0.8)
-	 * @internal Added for parity between the parent-level and the item/entry-level.
-	 * @return string|null Link URL
-	 */
-	public function get_permalink()
-	{
-		return $this->get_link(0);
-	}
-
-	/**
-	 * Get all links for the feed
-	 *
-	 * Uses `<atom:link>` or `<link>`
-	 *
-	 * @since Beta 2
-	 * @param string $rel The relationship of links to return
-	 * @return array|null Links found for the feed (strings)
-	 */
-	public function get_links($rel = 'alternate')
-	{
-		if (!isset($this->data['links']))
-		{
-			$this->data['links'] = array();
-			if ($links = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'link'))
-			{
-				foreach ($links as $link)
-				{
-					if (isset($link['attribs']['']['href']))
-					{
-						$link_rel = (isset($link['attribs']['']['rel'])) ? $link['attribs']['']['rel'] : 'alternate';
-						$this->data['links'][$link_rel][] = $this->sanitize($link['attribs']['']['href'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($link));
-					}
-				}
-			}
-			if ($links = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'link'))
-			{
-				foreach ($links as $link)
-				{
-					if (isset($link['attribs']['']['href']))
-					{
-						$link_rel = (isset($link['attribs']['']['rel'])) ? $link['attribs']['']['rel'] : 'alternate';
-						$this->data['links'][$link_rel][] = $this->sanitize($link['attribs']['']['href'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($link));
-
-					}
-				}
-			}
-			if ($links = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_RSS_10, 'link'))
-			{
-				$this->data['links']['alternate'][] = $this->sanitize($links[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($links[0]));
-			}
-			if ($links = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_RSS_090, 'link'))
-			{
-				$this->data['links']['alternate'][] = $this->sanitize($links[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($links[0]));
-			}
-			if ($links = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'link'))
-			{
-				$this->data['links']['alternate'][] = $this->sanitize($links[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($links[0]));
-			}
-
-			$keys = array_keys($this->data['links']);
-			foreach ($keys as $key)
-			{
-				if ($this->registry->call('Misc', 'is_isegment_nz_nc', array($key)))
-				{
-					if (isset($this->data['links'][SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY . $key]))
-					{
-						$this->data['links'][SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY . $key] = array_merge($this->data['links'][$key], $this->data['links'][SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY . $key]);
-						$this->data['links'][$key] =& $this->data['links'][SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY . $key];
-					}
-					else
-					{
-						$this->data['links'][SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY . $key] =& $this->data['links'][$key];
-					}
-				}
-				elseif (substr($key, 0, 41) === SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY)
-				{
-					$this->data['links'][substr($key, 41)] =& $this->data['links'][$key];
-				}
-				$this->data['links'][$key] = array_unique($this->data['links'][$key]);
-			}
-		}
-
-		if (isset($this->data['headers']['link']) &&
-		    preg_match('/<([^>]+)>; rel='.preg_quote($rel).'/',
-		               $this->data['headers']['link'], $match))
-		{
-			return array($match[1]);
-		}
-		else if (isset($this->data['links'][$rel]))
-		{
-			return $this->data['links'][$rel];
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	public function get_all_discovered_feeds()
-	{
-		return $this->all_discovered_feeds;
-	}
-
-	/**
-	 * Get the content for the item
-	 *
-	 * Uses `<atom:subtitle>`, `<atom:tagline>`, `<description>`,
-	 * `<dc:description>`, `<itunes:summary>` or `<itunes:subtitle>`
-	 *
-	 * @since 1.0 (previously called `get_feed_description()` since 0.8)
-	 * @return string|null
-	 */
-	public function get_description()
-	{
-		if ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'subtitle'))
-		{
-			return $this->sanitize($return[0]['data'], $this->registry->call('Misc', 'atom_10_construct_type', array($return[0]['attribs'])), $this->get_base($return[0]));
-		}
-		elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'tagline'))
-		{
-			return $this->sanitize($return[0]['data'], $this->registry->call('Misc', 'atom_03_construct_type', array($return[0]['attribs'])), $this->get_base($return[0]));
-		}
-		elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_RSS_10, 'description'))
-		{
-			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_MAYBE_HTML, $this->get_base($return[0]));
-		}
-		elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_RSS_090, 'description'))
-		{
-			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_MAYBE_HTML, $this->get_base($return[0]));
-		}
-		elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'description'))
-		{
-			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_HTML, $this->get_base($return[0]));
-		}
-		elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_DC_11, 'description'))
-		{
-			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-		}
-		elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_DC_10, 'description'))
-		{
-			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-		}
-		elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'summary'))
-		{
-			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_HTML, $this->get_base($return[0]));
-		}
-		elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'subtitle'))
-		{
-			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_HTML, $this->get_base($return[0]));
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	/**
-	 * Get the copyright info for the feed
-	 *
-	 * Uses `<atom:rights>`, `<atom:copyright>` or `<dc:rights>`
-	 *
-	 * @since 1.0 (previously called `get_feed_copyright()` since 0.8)
-	 * @return string|null
-	 */
-	public function get_copyright()
-	{
-		if ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'rights'))
-		{
-			return $this->sanitize($return[0]['data'], $this->registry->call('Misc', 'atom_10_construct_type', array($return[0]['attribs'])), $this->get_base($return[0]));
-		}
-		elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'copyright'))
-		{
-			return $this->sanitize($return[0]['data'], $this->registry->call('Misc', 'atom_03_construct_type', array($return[0]['attribs'])), $this->get_base($return[0]));
-		}
-		elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'copyright'))
-		{
-			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-		}
-		elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_DC_11, 'rights'))
-		{
-			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-		}
-		elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_DC_10, 'rights'))
-		{
-			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	/**
-	 * Get the language for the feed
-	 *
-	 * Uses `<language>`, `<dc:language>`, or @xml_lang
-	 *
-	 * @since 1.0 (previously called `get_feed_language()` since 0.8)
-	 * @return string|null
-	 */
-	public function get_language()
-	{
-		if ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'language'))
-		{
-			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-		}
-		elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_DC_11, 'language'))
-		{
-			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-		}
-		elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_DC_10, 'language'))
-		{
-			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-		}
-		elseif (isset($this->data['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['feed'][0]['xml_lang']))
-		{
-			return $this->sanitize($this->data['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['feed'][0]['xml_lang'], SIMPLEPIE_CONSTRUCT_TEXT);
-		}
-		elseif (isset($this->data['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['feed'][0]['xml_lang']))
-		{
-			return $this->sanitize($this->data['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['feed'][0]['xml_lang'], SIMPLEPIE_CONSTRUCT_TEXT);
-		}
-		elseif (isset($this->data['child'][SIMPLEPIE_NAMESPACE_RDF]['RDF'][0]['xml_lang']))
-		{
-			return $this->sanitize($this->data['child'][SIMPLEPIE_NAMESPACE_RDF]['RDF'][0]['xml_lang'], SIMPLEPIE_CONSTRUCT_TEXT);
-		}
-		elseif (isset($this->data['headers']['content-language']))
-		{
-			return $this->sanitize($this->data['headers']['content-language'], SIMPLEPIE_CONSTRUCT_TEXT);
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	/**
-	 * Get the latitude coordinates for the item
-	 *
-	 * Compatible with the W3C WGS84 Basic Geo and GeoRSS specifications
-	 *
-	 * Uses `<geo:lat>` or `<georss:point>`
-	 *
-	 * @since 1.0
-	 * @link http://www.w3.org/2003/01/geo/ W3C WGS84 Basic Geo
-	 * @link http://www.georss.org/ GeoRSS
-	 * @return string|null
-	 */
-	public function get_latitude()
-	{
-
-		if ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_W3C_BASIC_GEO, 'lat'))
-		{
-			return (float) $return[0]['data'];
-		}
-		elseif (($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_GEORSS, 'point')) && preg_match('/^((?:-)?[0-9]+(?:\.[0-9]+)) ((?:-)?[0-9]+(?:\.[0-9]+))$/', trim($return[0]['data']), $match))
-		{
-			return (float) $match[1];
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	/**
-	 * Get the longitude coordinates for the feed
-	 *
-	 * Compatible with the W3C WGS84 Basic Geo and GeoRSS specifications
-	 *
-	 * Uses `<geo:long>`, `<geo:lon>` or `<georss:point>`
-	 *
-	 * @since 1.0
-	 * @link http://www.w3.org/2003/01/geo/ W3C WGS84 Basic Geo
-	 * @link http://www.georss.org/ GeoRSS
-	 * @return string|null
-	 */
-	public function get_longitude()
-	{
-		if ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_W3C_BASIC_GEO, 'long'))
-		{
-			return (float) $return[0]['data'];
-		}
-		elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_W3C_BASIC_GEO, 'lon'))
-		{
-			return (float) $return[0]['data'];
-		}
-		elseif (($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_GEORSS, 'point')) && preg_match('/^((?:-)?[0-9]+(?:\.[0-9]+)) ((?:-)?[0-9]+(?:\.[0-9]+))$/', trim($return[0]['data']), $match))
-		{
-			return (float) $match[2];
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	/**
-	 * Get the feed logo's title
-	 *
-	 * RSS 0.9.0, 1.0 and 2.0 feeds are allowed to have a "feed logo" title.
-	 *
-	 * Uses `<image><title>` or `<image><dc:title>`
-	 *
-	 * @return string|null
-	 */
-	public function get_image_title()
-	{
-		if ($return = $this->get_image_tags(SIMPLEPIE_NAMESPACE_RSS_10, 'title'))
-		{
-			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-		}
-		elseif ($return = $this->get_image_tags(SIMPLEPIE_NAMESPACE_RSS_090, 'title'))
-		{
-			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-		}
-		elseif ($return = $this->get_image_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'title'))
-		{
-			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-		}
-		elseif ($return = $this->get_image_tags(SIMPLEPIE_NAMESPACE_DC_11, 'title'))
-		{
-			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-		}
-		elseif ($return = $this->get_image_tags(SIMPLEPIE_NAMESPACE_DC_10, 'title'))
-		{
-			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	/**
-	 * Get the feed logo's URL
-	 *
-	 * RSS 0.9.0, 2.0, Atom 1.0, and feeds with iTunes RSS tags are allowed to
-	 * have a "feed logo" URL. This points directly to the image itself.
-	 *
-	 * Uses `<itunes:image>`, `<atom:logo>`, `<atom:icon>`,
-	 * `<image><title>` or `<image><dc:title>`
-	 *
-	 * @return string|null
-	 */
-	public function get_image_url()
-	{
-		if ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'image'))
-		{
-			return $this->sanitize($return[0]['attribs']['']['href'], SIMPLEPIE_CONSTRUCT_IRI);
-		}
-		elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'logo'))
-		{
-			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($return[0]));
-		}
-		elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'icon'))
-		{
-			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($return[0]));
-		}
-		elseif ($return = $this->get_image_tags(SIMPLEPIE_NAMESPACE_RSS_10, 'url'))
-		{
-			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($return[0]));
-		}
-		elseif ($return = $this->get_image_tags(SIMPLEPIE_NAMESPACE_RSS_090, 'url'))
-		{
-			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($return[0]));
-		}
-		elseif ($return = $this->get_image_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'url'))
-		{
-			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($return[0]));
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-
-	/**
-	 * Get the feed logo's link
-	 *
-	 * RSS 0.9.0, 1.0 and 2.0 feeds are allowed to have a "feed logo" link. This
-	 * points to a human-readable page that the image should link to.
-	 *
-	 * Uses `<itunes:image>`, `<atom:logo>`, `<atom:icon>`,
-	 * `<image><title>` or `<image><dc:title>`
-	 *
-	 * @return string|null
-	 */
-	public function get_image_link()
-	{
-		if ($return = $this->get_image_tags(SIMPLEPIE_NAMESPACE_RSS_10, 'link'))
-		{
-			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($return[0]));
-		}
-		elseif ($return = $this->get_image_tags(SIMPLEPIE_NAMESPACE_RSS_090, 'link'))
-		{
-			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($return[0]));
-		}
-		elseif ($return = $this->get_image_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'link'))
-		{
-			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($return[0]));
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	/**
-	 * Get the feed logo's link
-	 *
-	 * RSS 2.0 feeds are allowed to have a "feed logo" width.
-	 *
-	 * Uses `<image><width>` or defaults to 88.0 if no width is specified and
-	 * the feed is an RSS 2.0 feed.
-	 *
-	 * @return int|float|null
-	 */
-	public function get_image_width()
-	{
-		if ($return = $this->get_image_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'width'))
-		{
-			return round($return[0]['data']);
-		}
-		elseif ($this->get_type() & SIMPLEPIE_TYPE_RSS_SYNDICATION && $this->get_image_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'url'))
-		{
-			return 88.0;
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	/**
-	 * Get the feed logo's height
-	 *
-	 * RSS 2.0 feeds are allowed to have a "feed logo" height.
-	 *
-	 * Uses `<image><height>` or defaults to 31.0 if no height is specified and
-	 * the feed is an RSS 2.0 feed.
-	 *
-	 * @return int|float|null
-	 */
-	public function get_image_height()
-	{
-		if ($return = $this->get_image_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'height'))
-		{
-			return round($return[0]['data']);
-		}
-		elseif ($this->get_type() & SIMPLEPIE_TYPE_RSS_SYNDICATION && $this->get_image_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'url'))
-		{
-			return 31.0;
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	/**
-	 * Get the number of items in the feed
-	 *
-	 * This is well-suited for {@link http://php.net/for for()} loops with
-	 * {@see get_item()}
-	 *
-	 * @param int $max Maximum value to return. 0 for no limit
-	 * @return int Number of items in the feed
-	 */
-	public function get_item_quantity($max = 0)
-	{
-		$max = (int) $max;
-		$qty = count($this->get_items());
-		if ($max === 0)
-		{
-			return $qty;
-		}
-		else
-		{
-			return ($qty > $max) ? $max : $qty;
-		}
-	}
-
-	/**
-	 * Get a single item from the feed
-	 *
-	 * This is better suited for {@link http://php.net/for for()} loops, whereas
-	 * {@see get_items()} is better suited for
-	 * {@link http://php.net/foreach foreach()} loops.
-	 *
-	 * @see get_item_quantity()
-	 * @since Beta 2
-	 * @param int $key The item that you want to return. Remember that arrays begin with 0, not 1
-	 * @return SimplePie_Item|null
-	 */
-	public function get_item($key = 0)
-	{
-		$items = $this->get_items();
-		if (isset($items[$key]))
-		{
-			return $items[$key];
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	/**
-	 * Get all items from the feed
-	 *
-	 * This is better suited for {@link http://php.net/for for()} loops, whereas
-	 * {@see get_items()} is better suited for
-	 * {@link http://php.net/foreach foreach()} loops.
-	 *
-	 * @see get_item_quantity
-	 * @since Beta 2
-	 * @param int $start Index to start at
-	 * @param int $end Number of items to return. 0 for all items after `$start`
-	 * @return SimplePie_Item[]|null List of {@see SimplePie_Item} objects
-	 */
-	public function get_items($start = 0, $end = 0)
-	{
-		if (!isset($this->data['items']))
-		{
-			if (!empty($this->multifeed_objects))
-			{
-				$this->data['items'] = SimplePie::merge_items($this->multifeed_objects, $start, $end, $this->item_limit);
-				if (empty($this->data['items']))
-				{
-					return array();
-				}
-				return $this->data['items'];
-			}
-			$this->data['items'] = array();
-			if ($items = $this->get_feed_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'entry'))
-			{
-				$keys = array_keys($items);
-				foreach ($keys as $key)
-				{
-					$this->data['items'][] = $this->registry->create('Item', array($this, $items[$key]));
-				}
-			}
-			if ($items = $this->get_feed_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'entry'))
-			{
-				$keys = array_keys($items);
-				foreach ($keys as $key)
-				{
-					$this->data['items'][] = $this->registry->create('Item', array($this, $items[$key]));
-				}
-			}
-			if ($items = $this->get_feed_tags(SIMPLEPIE_NAMESPACE_RSS_10, 'item'))
-			{
-				$keys = array_keys($items);
-				foreach ($keys as $key)
-				{
-					$this->data['items'][] = $this->registry->create('Item', array($this, $items[$key]));
-				}
-			}
-			if ($items = $this->get_feed_tags(SIMPLEPIE_NAMESPACE_RSS_090, 'item'))
-			{
-				$keys = array_keys($items);
-				foreach ($keys as $key)
-				{
-					$this->data['items'][] = $this->registry->create('Item', array($this, $items[$key]));
-				}
-			}
-			if ($items = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'item'))
-			{
-				$keys = array_keys($items);
-				foreach ($keys as $key)
-				{
-					$this->data['items'][] = $this->registry->create('Item', array($this, $items[$key]));
-				}
-			}
-		}
-
-		if (empty($this->data['items']))
-		{
-			return array();
-		}
-
-		if ($this->order_by_date)
-		{
-			if (!isset($this->data['ordered_items']))
-			{
-				$this->data['ordered_items'] = $this->data['items'];
-				usort($this->data['ordered_items'], array(get_class($this), 'sort_items'));
-		 	}
-			$items = $this->data['ordered_items'];
-		}
-		else
-		{
-			$items = $this->data['items'];
-		}
-		// Slice the data as desired
-		if ($end === 0)
-		{
-			return array_slice($items, $start);
-		}
-		else
-		{
-			return array_slice($items, $start, $end);
-		}
-	}
-
-	/**
-	 * Set the favicon handler
-	 *
-	 * @deprecated Use your own favicon handling instead
-	 */
-	public function set_favicon_handler($page = false, $qs = 'i')
-	{
-		$level = defined('E_USER_DEPRECATED') ? E_USER_DEPRECATED : E_USER_WARNING;
-		trigger_error('Favicon handling has been removed, please use your own handling', $level);
-		return false;
-	}
-
-	/**
-	 * Get the favicon for the current feed
-	 *
-	 * @deprecated Use your own favicon handling instead
-	 */
-	public function get_favicon()
-	{
-		$level = defined('E_USER_DEPRECATED') ? E_USER_DEPRECATED : E_USER_WARNING;
-		trigger_error('Favicon handling has been removed, please use your own handling', $level);
-
-		if (($url = $this->get_link()) !== null)
-		{
-			return 'https://www.google.com/s2/favicons?domain=' . urlencode($url);
-		}
-
-		return false;
-	}
-
-	/**
-	 * Magic method handler
-	 *
-	 * @param string $method Method name
-	 * @param array $args Arguments to the method
-	 * @return mixed
-	 */
-	public function __call($method, $args)
-	{
-		if (strpos($method, 'subscribe_') === 0)
-		{
-			$level = defined('E_USER_DEPRECATED') ? E_USER_DEPRECATED : E_USER_WARNING;
-			trigger_error('subscribe_*() has been deprecated, implement the callback yourself', $level);
-			return '';
-		}
-		if ($method === 'enable_xml_dump')
-		{
-			$level = defined('E_USER_DEPRECATED') ? E_USER_DEPRECATED : E_USER_WARNING;
-			trigger_error('enable_xml_dump() has been deprecated, use get_raw_data() instead', $level);
-			return false;
-		}
-
-		$class = get_class($this);
-		$trace = debug_backtrace();
-		$file = $trace[0]['file'];
-		$line = $trace[0]['line'];
-		trigger_error("Call to undefined method $class::$method() in $file on line $line", E_USER_ERROR);
-	}
-
-	/**
-	 * Sorting callback for items
-	 *
-	 * @access private
-	 * @param SimplePie $a
-	 * @param SimplePie $b
-	 * @return boolean
-	 */
-	public static function sort_items($a, $b)
-	{
-		$a_date = $a->get_date('U');
-		$b_date = $b->get_date('U');
-		if ($a_date && $b_date) {
-			return $a_date > $b_date ? -1 : 1;
-		}
-		// Sort items without dates to the top.
-		if ($a_date) {
-			return 1;
-		}
-		if ($b_date) {
-			return -1;
-		}
-		return 0;
-	}
-
-	/**
-	 * Merge items from several feeds into one
-	 *
-	 * If you're merging multiple feeds together, they need to all have dates
-	 * for the items or else SimplePie will refuse to sort them.
-	 *
-	 * @link http://simplepie.org/wiki/tutorial/sort_multiple_feeds_by_time_and_date#if_feeds_require_separate_per-feed_settings
-	 * @param array $urls List of SimplePie feed objects to merge
-	 * @param int $start Starting item
-	 * @param int $end Number of items to return
-	 * @param int $limit Maximum number of items per feed
-	 * @return array
-	 */
-	public static function merge_items($urls, $start = 0, $end = 0, $limit = 0)
-	{
-		if (is_array($urls) && sizeof($urls) > 0)
-		{
-			$items = array();
-			foreach ($urls as $arg)
-			{
-				if ($arg instanceof SimplePie)
-				{
-					$items = array_merge($items, $arg->get_items(0, $limit));
-				}
-				else
-				{
-					trigger_error('Arguments must be SimplePie objects', E_USER_WARNING);
-				}
-			}
-
-			usort($items, array(get_class($urls[0]), 'sort_items'));
-
-			if ($end === 0)
-			{
-				return array_slice($items, $start);
-			}
-			else
-			{
-				return array_slice($items, $start, $end);
-			}
-		}
-		else
-		{
-			trigger_error('Cannot merge zero SimplePie objects', E_USER_WARNING);
-			return array();
-		}
-	}
-
-	/**
-	 * Store PubSubHubbub links as headers
-	 *
-	 * There is no way to find PuSH links in the body of a microformats feed,
-	 * so they are added to the headers when found, to be used later by get_links.
-	 * @param SimplePie_File $file
-	 * @param string $hub
-	 * @param string $self
-	 */
-	private function store_links(&$file, $hub, $self) {
-		if (isset($file->headers['link']['hub']) ||
-			  (isset($file->headers['link']) &&
-			   preg_match('/rel=hub/', $file->headers['link'])))
-		{
-			return;
-		}
-
-		if ($hub)
-		{
-			if (isset($file->headers['link']))
-			{
-				if ($file->headers['link'] !== '')
-				{
-					$file->headers['link'] = ', ';
-				}
-			}
-			else
-			{
-				$file->headers['link'] = '';
-			}
-			$file->headers['link'] .= '<'.$hub.'>; rel=hub';
-			if ($self)
-			{
-				$file->headers['link'] .= ', <'.$self.'>; rel=self';
-			}
-		}
-	}
-}
diff --git a/wiki/vendor/simplepie/simplepie/library/SimplePie/Author.php b/wiki/vendor/simplepie/simplepie/library/SimplePie/Author.php
deleted file mode 100644
index e6768ff..0000000
--- a/wiki/vendor/simplepie/simplepie/library/SimplePie/Author.php
+++ /dev/null
@@ -1,156 +0,0 @@
-<?php
-/**
- * SimplePie
- *
- * A PHP-Based RSS and Atom Feed Framework.
- * Takes the hard work out of managing a complete RSS/Atom solution.
- *
- * Copyright (c) 2004-2016, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification, are
- * permitted provided that the following conditions are met:
- *
- * 	* Redistributions of source code must retain the above copyright notice, this list of
- * 	  conditions and the following disclaimer.
- *
- * 	* Redistributions in binary form must reproduce the above copyright notice, this list
- * 	  of conditions and the following disclaimer in the documentation and/or other materials
- * 	  provided with the distribution.
- *
- * 	* Neither the name of the SimplePie Team nor the names of its contributors may be used
- * 	  to endorse or promote products derived from this software without specific prior
- * 	  written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
- * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS
- * AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @package SimplePie
- * @copyright 2004-2016 Ryan Parman, Geoffrey Sneddon, Ryan McCue
- * @author Ryan Parman
- * @author Geoffrey Sneddon
- * @author Ryan McCue
- * @link http://simplepie.org/ SimplePie
- * @license http://www.opensource.org/licenses/bsd-license.php BSD License
- */
-
-/**
- * Manages all author-related data
- *
- * Used by {@see SimplePie_Item::get_author()} and {@see SimplePie::get_authors()}
- *
- * This class can be overloaded with {@see SimplePie::set_author_class()}
- *
- * @package SimplePie
- * @subpackage API
- */
-class SimplePie_Author
-{
-	/**
-	 * Author's name
-	 *
-	 * @var string
-	 * @see get_name()
-	 */
-	var $name;
-
-	/**
-	 * Author's link
-	 *
-	 * @var string
-	 * @see get_link()
-	 */
-	var $link;
-
-	/**
-	 * Author's email address
-	 *
-	 * @var string
-	 * @see get_email()
-	 */
-	var $email;
-
-	/**
-	 * Constructor, used to input the data
-	 *
-	 * @param string $name
-	 * @param string $link
-	 * @param string $email
-	 */
-	public function __construct($name = null, $link = null, $email = null)
-	{
-		$this->name = $name;
-		$this->link = $link;
-		$this->email = $email;
-	}
-
-	/**
-	 * String-ified version
-	 *
-	 * @return string
-	 */
-	public function __toString()
-	{
-		// There is no $this->data here
-		return md5(serialize($this));
-	}
-
-	/**
-	 * Author's name
-	 *
-	 * @return string|null
-	 */
-	public function get_name()
-	{
-		if ($this->name !== null)
-		{
-			return $this->name;
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	/**
-	 * Author's link
-	 *
-	 * @return string|null
-	 */
-	public function get_link()
-	{
-		if ($this->link !== null)
-		{
-			return $this->link;
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	/**
-	 * Author's email address
-	 *
-	 * @return string|null
-	 */
-	public function get_email()
-	{
-		if ($this->email !== null)
-		{
-			return $this->email;
-		}
-		else
-		{
-			return null;
-		}
-	}
-}
-
diff --git a/wiki/vendor/simplepie/simplepie/library/SimplePie/Cache.php b/wiki/vendor/simplepie/simplepie/library/SimplePie/Cache.php
deleted file mode 100644
index d98cc65..0000000
--- a/wiki/vendor/simplepie/simplepie/library/SimplePie/Cache.php
+++ /dev/null
@@ -1,134 +0,0 @@
-<?php
-/**
- * SimplePie
- *
- * A PHP-Based RSS and Atom Feed Framework.
- * Takes the hard work out of managing a complete RSS/Atom solution.
- *
- * Copyright (c) 2004-2016, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification, are
- * permitted provided that the following conditions are met:
- *
- * 	* Redistributions of source code must retain the above copyright notice, this list of
- * 	  conditions and the following disclaimer.
- *
- * 	* Redistributions in binary form must reproduce the above copyright notice, this list
- * 	  of conditions and the following disclaimer in the documentation and/or other materials
- * 	  provided with the distribution.
- *
- * 	* Neither the name of the SimplePie Team nor the names of its contributors may be used
- * 	  to endorse or promote products derived from this software without specific prior
- * 	  written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
- * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS
- * AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @package SimplePie
- * @copyright 2004-2016 Ryan Parman, Geoffrey Sneddon, Ryan McCue
- * @author Ryan Parman
- * @author Geoffrey Sneddon
- * @author Ryan McCue
- * @link http://simplepie.org/ SimplePie
- * @license http://www.opensource.org/licenses/bsd-license.php BSD License
- */
-
-/**
- * Used to create cache objects
- *
- * This class can be overloaded with {@see SimplePie::set_cache_class()},
- * although the preferred way is to create your own handler
- * via {@see register()}
- *
- * @package SimplePie
- * @subpackage Caching
- */
-class SimplePie_Cache
-{
-	/**
-	 * Cache handler classes
-	 *
-	 * These receive 3 parameters to their constructor, as documented in
-	 * {@see register()}
-	 * @var array
-	 */
-	protected static $handlers = array(
-		'mysql'     => 'SimplePie_Cache_MySQL',
-		'memcache'  => 'SimplePie_Cache_Memcache',
-		'memcached' => 'SimplePie_Cache_Memcached',
-		'redis'     => 'SimplePie_Cache_Redis'
-	);
-
-	/**
-	 * Don't call the constructor. Please.
-	 */
-	private function __construct() { }
-
-	/**
-	 * Create a new SimplePie_Cache object
-	 *
-	 * @param string $location URL location (scheme is used to determine handler)
-	 * @param string $filename Unique identifier for cache object
-	 * @param string $extension 'spi' or 'spc'
-	 * @return SimplePie_Cache_Base Type of object depends on scheme of `$location`
-	 */
-	public static function get_handler($location, $filename, $extension)
-	{
-		$type = explode(':', $location, 2);
-		$type = $type[0];
-		if (!empty(self::$handlers[$type]))
-		{
-			$class = self::$handlers[$type];
-			return new $class($location, $filename, $extension);
-		}
-
-		return new SimplePie_Cache_File($location, $filename, $extension);
-	}
-
-	/**
-	 * Create a new SimplePie_Cache object
-	 *
-	 * @deprecated Use {@see get_handler} instead
-	 */
-	public function create($location, $filename, $extension)
-	{
-		trigger_error('Cache::create() has been replaced with Cache::get_handler(). Switch to the registry system to use this.', E_USER_DEPRECATED);
-		return self::get_handler($location, $filename, $extension);
-	}
-
-	/**
-	 * Register a handler
-	 *
-	 * @param string $type DSN type to register for
-	 * @param string $class Name of handler class. Must implement SimplePie_Cache_Base
-	 */
-	public static function register($type, $class)
-	{
-		self::$handlers[$type] = $class;
-	}
-
-	/**
-	 * Parse a URL into an array
-	 *
-	 * @param string $url
-	 * @return array
-	 */
-	public static function parse_URL($url)
-	{
-		$params = parse_url($url);
-		$params['extras'] = array();
-		if (isset($params['query']))
-		{
-			parse_str($params['query'], $params['extras']);
-		}
-		return $params;
-	}
-}
diff --git a/wiki/vendor/simplepie/simplepie/library/SimplePie/Cache/Base.php b/wiki/vendor/simplepie/simplepie/library/SimplePie/Cache/Base.php
deleted file mode 100644
index 333fb05..0000000
--- a/wiki/vendor/simplepie/simplepie/library/SimplePie/Cache/Base.php
+++ /dev/null
@@ -1,113 +0,0 @@
-<?php
-/**
- * SimplePie
- *
- * A PHP-Based RSS and Atom Feed Framework.
- * Takes the hard work out of managing a complete RSS/Atom solution.
- *
- * Copyright (c) 2004-2016, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification, are
- * permitted provided that the following conditions are met:
- *
- * 	* Redistributions of source code must retain the above copyright notice, this list of
- * 	  conditions and the following disclaimer.
- *
- * 	* Redistributions in binary form must reproduce the above copyright notice, this list
- * 	  of conditions and the following disclaimer in the documentation and/or other materials
- * 	  provided with the distribution.
- *
- * 	* Neither the name of the SimplePie Team nor the names of its contributors may be used
- * 	  to endorse or promote products derived from this software without specific prior
- * 	  written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
- * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS
- * AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @package SimplePie
- * @copyright 2004-2016 Ryan Parman, Geoffrey Sneddon, Ryan McCue
- * @author Ryan Parman
- * @author Geoffrey Sneddon
- * @author Ryan McCue
- * @link http://simplepie.org/ SimplePie
- * @license http://www.opensource.org/licenses/bsd-license.php BSD License
- */
-
-/**
- * Base for cache objects
- *
- * Classes to be used with {@see SimplePie_Cache::register()} are expected
- * to implement this interface.
- *
- * @package SimplePie
- * @subpackage Caching
- */
-interface SimplePie_Cache_Base
-{
-	/**
-	 * Feed cache type
-	 *
-	 * @var string
-	 */
-	const TYPE_FEED = 'spc';
-
-	/**
-	 * Image cache type
-	 *
-	 * @var string
-	 */
-	const TYPE_IMAGE = 'spi';
-
-	/**
-	 * Create a new cache object
-	 *
-	 * @param string $location Location string (from SimplePie::$cache_location)
-	 * @param string $name Unique ID for the cache
-	 * @param string $type Either TYPE_FEED for SimplePie data, or TYPE_IMAGE for image data
-	 */
-	public function __construct($location, $name, $type);
-
-	/**
-	 * Save data to the cache
-	 *
-	 * @param array|SimplePie $data Data to store in the cache. If passed a SimplePie object, only cache the $data property
-	 * @return bool Successfulness
-	 */
-	public function save($data);
-
-	/**
-	 * Retrieve the data saved to the cache
-	 *
-	 * @return array Data for SimplePie::$data
-	 */
-	public function load();
-
-	/**
-	 * Retrieve the last modified time for the cache
-	 *
-	 * @return int Timestamp
-	 */
-	public function mtime();
-
-	/**
-	 * Set the last modified time to the current time
-	 *
-	 * @return bool Success status
-	 */
-	public function touch();
-
-	/**
-	 * Remove the cache
-	 *
-	 * @return bool Success status
-	 */
-	public function unlink();
-}
diff --git a/wiki/vendor/simplepie/simplepie/library/SimplePie/Cache/DB.php b/wiki/vendor/simplepie/simplepie/library/SimplePie/Cache/DB.php
deleted file mode 100644
index 7e8f775..0000000
--- a/wiki/vendor/simplepie/simplepie/library/SimplePie/Cache/DB.php
+++ /dev/null
@@ -1,136 +0,0 @@
-<?php
-/**
- * SimplePie
- *
- * A PHP-Based RSS and Atom Feed Framework.
- * Takes the hard work out of managing a complete RSS/Atom solution.
- *
- * Copyright (c) 2004-2016, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification, are
- * permitted provided that the following conditions are met:
- *
- * 	* Redistributions of source code must retain the above copyright notice, this list of
- * 	  conditions and the following disclaimer.
- *
- * 	* Redistributions in binary form must reproduce the above copyright notice, this list
- * 	  of conditions and the following disclaimer in the documentation and/or other materials
- * 	  provided with the distribution.
- *
- * 	* Neither the name of the SimplePie Team nor the names of its contributors may be used
- * 	  to endorse or promote products derived from this software without specific prior
- * 	  written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
- * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS
- * AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @package SimplePie
- * @copyright 2004-2016 Ryan Parman, Geoffrey Sneddon, Ryan McCue
- * @author Ryan Parman
- * @author Geoffrey Sneddon
- * @author Ryan McCue
- * @link http://simplepie.org/ SimplePie
- * @license http://www.opensource.org/licenses/bsd-license.php BSD License
- */
-
-/**
- * Base class for database-based caches
- *
- * @package SimplePie
- * @subpackage Caching
- */
-abstract class SimplePie_Cache_DB implements SimplePie_Cache_Base
-{
-	/**
-	 * Helper for database conversion
-	 *
-	 * Converts a given {@see SimplePie} object into data to be stored
-	 *
-	 * @param SimplePie $data
-	 * @return array First item is the serialized data for storage, second item is the unique ID for this item
-	 */
-	protected static function prepare_simplepie_object_for_cache($data)
-	{
-		$items = $data->get_items();
-		$items_by_id = array();
-
-		if (!empty($items))
-		{
-			foreach ($items as $item)
-			{
-				$items_by_id[$item->get_id()] = $item;
-			}
-
-			if (count($items_by_id) !== count($items))
-			{
-				$items_by_id = array();
-				foreach ($items as $item)
-				{
-					$items_by_id[$item->get_id(true)] = $item;
-				}
-			}
-
-			if (isset($data->data['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['feed'][0]))
-			{
-				$channel =& $data->data['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['feed'][0];
-			}
-			elseif (isset($data->data['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['feed'][0]))
-			{
-				$channel =& $data->data['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['feed'][0];
-			}
-			elseif (isset($data->data['child'][SIMPLEPIE_NAMESPACE_RDF]['RDF'][0]))
-			{
-				$channel =& $data->data['child'][SIMPLEPIE_NAMESPACE_RDF]['RDF'][0];
-			}
-			elseif (isset($data->data['child'][SIMPLEPIE_NAMESPACE_RSS_20]['rss'][0]['child'][SIMPLEPIE_NAMESPACE_RSS_20]['channel'][0]))
-			{
-				$channel =& $data->data['child'][SIMPLEPIE_NAMESPACE_RSS_20]['rss'][0]['child'][SIMPLEPIE_NAMESPACE_RSS_20]['channel'][0];
-			}
-			else
-			{
-				$channel = null;
-			}
-
-			if ($channel !== null)
-			{
-				if (isset($channel['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['entry']))
-				{
-					unset($channel['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['entry']);
-				}
-				if (isset($channel['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['entry']))
-				{
-					unset($channel['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['entry']);
-				}
-				if (isset($channel['child'][SIMPLEPIE_NAMESPACE_RSS_10]['item']))
-				{
-					unset($channel['child'][SIMPLEPIE_NAMESPACE_RSS_10]['item']);
-				}
-				if (isset($channel['child'][SIMPLEPIE_NAMESPACE_RSS_090]['item']))
-				{
-					unset($channel['child'][SIMPLEPIE_NAMESPACE_RSS_090]['item']);
-				}
-				if (isset($channel['child'][SIMPLEPIE_NAMESPACE_RSS_20]['item']))
-				{
-					unset($channel['child'][SIMPLEPIE_NAMESPACE_RSS_20]['item']);
-				}
-			}
-			if (isset($data->data['items']))
-			{
-				unset($data->data['items']);
-			}
-			if (isset($data->data['ordered_items']))
-			{
-				unset($data->data['ordered_items']);
-			}
-		}
-		return array(serialize($data->data), $items_by_id);
-	}
-}
diff --git a/wiki/vendor/simplepie/simplepie/library/SimplePie/Cache/File.php b/wiki/vendor/simplepie/simplepie/library/SimplePie/Cache/File.php
deleted file mode 100644
index 6ba6c5f..0000000
--- a/wiki/vendor/simplepie/simplepie/library/SimplePie/Cache/File.php
+++ /dev/null
@@ -1,164 +0,0 @@
-<?php
-/**
- * SimplePie
- *
- * A PHP-Based RSS and Atom Feed Framework.
- * Takes the hard work out of managing a complete RSS/Atom solution.
- *
- * Copyright (c) 2004-2016, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification, are
- * permitted provided that the following conditions are met:
- *
- * 	* Redistributions of source code must retain the above copyright notice, this list of
- * 	  conditions and the following disclaimer.
- *
- * 	* Redistributions in binary form must reproduce the above copyright notice, this list
- * 	  of conditions and the following disclaimer in the documentation and/or other materials
- * 	  provided with the distribution.
- *
- * 	* Neither the name of the SimplePie Team nor the names of its contributors may be used
- * 	  to endorse or promote products derived from this software without specific prior
- * 	  written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
- * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS
- * AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @package SimplePie
- * @copyright 2004-2016 Ryan Parman, Geoffrey Sneddon, Ryan McCue
- * @author Ryan Parman
- * @author Geoffrey Sneddon
- * @author Ryan McCue
- * @link http://simplepie.org/ SimplePie
- * @license http://www.opensource.org/licenses/bsd-license.php BSD License
- */
-
-/**
- * Caches data to the filesystem
- *
- * @package SimplePie
- * @subpackage Caching
- */
-class SimplePie_Cache_File implements SimplePie_Cache_Base
-{
-	/**
-	 * Location string
-	 *
-	 * @see SimplePie::$cache_location
-	 * @var string
-	 */
-	protected $location;
-
-	/**
-	 * Filename
-	 *
-	 * @var string
-	 */
-	protected $filename;
-
-	/**
-	 * File extension
-	 *
-	 * @var string
-	 */
-	protected $extension;
-
-	/**
-	 * File path
-	 *
-	 * @var string
-	 */
-	protected $name;
-
-	/**
-	 * Create a new cache object
-	 *
-	 * @param string $location Location string (from SimplePie::$cache_location)
-	 * @param string $name Unique ID for the cache
-	 * @param string $type Either TYPE_FEED for SimplePie data, or TYPE_IMAGE for image data
-	 */
-	public function __construct($location, $name, $type)
-	{
-		$this->location = $location;
-		$this->filename = $name;
-		$this->extension = $type;
-		$this->name = "$this->location/$this->filename.$this->extension";
-	}
-
-	/**
-	 * Save data to the cache
-	 *
-	 * @param array|SimplePie $data Data to store in the cache. If passed a SimplePie object, only cache the $data property
-	 * @return bool Successfulness
-	 */
-	public function save($data)
-	{
-		if (file_exists($this->name) && is_writeable($this->name) || file_exists($this->location) && is_writeable($this->location))
-		{
-			if ($data instanceof SimplePie)
-			{
-				$data = $data->data;
-			}
-
-			$data = serialize($data);
-			return (bool) file_put_contents($this->name, $data);
-		}
-		return false;
-	}
-
-	/**
-	 * Retrieve the data saved to the cache
-	 *
-	 * @return array Data for SimplePie::$data
-	 */
-	public function load()
-	{
-		if (file_exists($this->name) && is_readable($this->name))
-		{
-			return unserialize(file_get_contents($this->name));
-		}
-		return false;
-	}
-
-	/**
-	 * Retrieve the last modified time for the cache
-	 *
-	 * @return int Timestamp
-	 */
-	public function mtime()
-	{
-		return @filemtime($this->name);
-	}
-
-	/**
-	 * Set the last modified time to the current time
-	 *
-	 * @return bool Success status
-	 */
-	public function touch()
-	{
-		return @touch($this->name);
-	}
-
-	/**
-	 * Remove the cache
-	 *
-	 * @return bool Success status
-	 */
-	public function unlink()
-	{
-		if (file_exists($this->name))
-		{
-			return unlink($this->name);
-		}
-		return false;
-	}
-}
diff --git a/wiki/vendor/simplepie/simplepie/library/SimplePie/Cache/Memcache.php b/wiki/vendor/simplepie/simplepie/library/SimplePie/Cache/Memcache.php
deleted file mode 100644
index 5190eef..0000000
--- a/wiki/vendor/simplepie/simplepie/library/SimplePie/Cache/Memcache.php
+++ /dev/null
@@ -1,180 +0,0 @@
-<?php
-/**
- * SimplePie
- *
- * A PHP-Based RSS and Atom Feed Framework.
- * Takes the hard work out of managing a complete RSS/Atom solution.
- *
- * Copyright (c) 2004-2016, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification, are
- * permitted provided that the following conditions are met:
- *
- * 	* Redistributions of source code must retain the above copyright notice, this list of
- * 	  conditions and the following disclaimer.
- *
- * 	* Redistributions in binary form must reproduce the above copyright notice, this list
- * 	  of conditions and the following disclaimer in the documentation and/or other materials
- * 	  provided with the distribution.
- *
- * 	* Neither the name of the SimplePie Team nor the names of its contributors may be used
- * 	  to endorse or promote products derived from this software without specific prior
- * 	  written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
- * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS
- * AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @package SimplePie
- * @copyright 2004-2016 Ryan Parman, Geoffrey Sneddon, Ryan McCue
- * @author Ryan Parman
- * @author Geoffrey Sneddon
- * @author Ryan McCue
- * @link http://simplepie.org/ SimplePie
- * @license http://www.opensource.org/licenses/bsd-license.php BSD License
- */
-
-/**
- * Caches data to memcache
- *
- * Registered for URLs with the "memcache" protocol
- *
- * For example, `memcache://localhost:11211/?timeout=3600&prefix=sp_` will
- * connect to memcache on `localhost` on port 11211. All tables will be
- * prefixed with `sp_` and data will expire after 3600 seconds
- *
- * @package SimplePie
- * @subpackage Caching
- * @uses Memcache
- */
-class SimplePie_Cache_Memcache implements SimplePie_Cache_Base
-{
-	/**
-	 * Memcache instance
-	 *
-	 * @var Memcache
-	 */
-	protected $cache;
-
-	/**
-	 * Options
-	 *
-	 * @var array
-	 */
-	protected $options;
-
-	/**
-	 * Cache name
-	 *
-	 * @var string
-	 */
-	protected $name;
-
-	/**
-	 * Create a new cache object
-	 *
-	 * @param string $location Location string (from SimplePie::$cache_location)
-	 * @param string $name Unique ID for the cache
-	 * @param string $type Either TYPE_FEED for SimplePie data, or TYPE_IMAGE for image data
-	 */
-	public function __construct($location, $name, $type)
-	{
-		$this->options = array(
-			'host' => '127.0.0.1',
-			'port' => 11211,
-			'extras' => array(
-				'timeout' => 3600, // one hour
-				'prefix' => 'simplepie_',
-			),
-		);
-		$this->options = SimplePie_Misc::array_merge_recursive($this->options, SimplePie_Cache::parse_URL($location));
-
-		$this->name = $this->options['extras']['prefix'] . md5("$name:$type");
-
-		$this->cache = new Memcache();
-		$this->cache->addServer($this->options['host'], (int) $this->options['port']);
-	}
-
-	/**
-	 * Save data to the cache
-	 *
-	 * @param array|SimplePie $data Data to store in the cache. If passed a SimplePie object, only cache the $data property
-	 * @return bool Successfulness
-	 */
-	public function save($data)
-	{
-		if ($data instanceof SimplePie)
-		{
-			$data = $data->data;
-		}
-		return $this->cache->set($this->name, serialize($data), MEMCACHE_COMPRESSED, (int) $this->options['extras']['timeout']);
-	}
-
-	/**
-	 * Retrieve the data saved to the cache
-	 *
-	 * @return array Data for SimplePie::$data
-	 */
-	public function load()
-	{
-		$data = $this->cache->get($this->name);
-
-		if ($data !== false)
-		{
-			return unserialize($data);
-		}
-		return false;
-	}
-
-	/**
-	 * Retrieve the last modified time for the cache
-	 *
-	 * @return int Timestamp
-	 */
-	public function mtime()
-	{
-		$data = $this->cache->get($this->name);
-
-		if ($data !== false)
-		{
-			// essentially ignore the mtime because Memcache expires on its own
-			return time();
-		}
-
-		return false;
-	}
-
-	/**
-	 * Set the last modified time to the current time
-	 *
-	 * @return bool Success status
-	 */
-	public function touch()
-	{
-		$data = $this->cache->get($this->name);
-
-		if ($data !== false)
-		{
-			return $this->cache->set($this->name, $data, MEMCACHE_COMPRESSED, (int) $this->options['extras']['timeout']);
-		}
-
-		return false;
-	}
-
-	/**
-	 * Remove the cache
-	 *
-	 * @return bool Success status
-	 */
-	public function unlink()
-	{
-		return $this->cache->delete($this->name, 0);
-	}
-}
diff --git a/wiki/vendor/simplepie/simplepie/library/SimplePie/Cache/Memcached.php b/wiki/vendor/simplepie/simplepie/library/SimplePie/Cache/Memcached.php
deleted file mode 100755
index 1f73b38..0000000
--- a/wiki/vendor/simplepie/simplepie/library/SimplePie/Cache/Memcached.php
+++ /dev/null
@@ -1,166 +0,0 @@
-<?php
-/**
- * SimplePie
- *
- * A PHP-Based RSS and Atom Feed Framework.
- * Takes the hard work out of managing a complete RSS/Atom solution.
- *
- * Copyright (c) 2004-2016, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification, are
- * permitted provided that the following conditions are met:
- *
- * 	* Redistributions of source code must retain the above copyright notice, this list of
- * 	  conditions and the following disclaimer.
- *
- * 	* Redistributions in binary form must reproduce the above copyright notice, this list
- * 	  of conditions and the following disclaimer in the documentation and/or other materials
- * 	  provided with the distribution.
- *
- * 	* Neither the name of the SimplePie Team nor the names of its contributors may be used
- * 	  to endorse or promote products derived from this software without specific prior
- * 	  written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
- * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS
- * AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @package SimplePie
- * @copyright 2004-2016 Ryan Parman, Geoffrey Sneddon, Ryan McCue
- * @author Ryan Parman
- * @author Geoffrey Sneddon
- * @author Ryan McCue
- * @link http://simplepie.org/ SimplePie
- * @license http://www.opensource.org/licenses/bsd-license.php BSD License
- */
-
-/**
- * Caches data to memcached
- *
- * Registered for URLs with the "memcached" protocol
- *
- * For example, `memcached://localhost:11211/?timeout=3600&prefix=sp_` will
- * connect to memcached on `localhost` on port 11211. All tables will be
- * prefixed with `sp_` and data will expire after 3600 seconds
- *
- * @package    SimplePie
- * @subpackage Caching
- * @author     Paul L. McNeely
- * @uses       Memcached
- */
-class SimplePie_Cache_Memcached implements SimplePie_Cache_Base
-{
-    /**
-     * Memcached instance
-     * @var Memcached
-     */
-    protected $cache;
-
-    /**
-     * Options
-     * @var array
-     */
-    protected $options;
-
-    /**
-     * Cache name
-     * @var string
-     */
-    protected $name;
-
-    /**
-     * Create a new cache object
-     * @param string $location Location string (from SimplePie::$cache_location)
-     * @param string $name     Unique ID for the cache
-     * @param string $type     Either TYPE_FEED for SimplePie data, or TYPE_IMAGE for image data
-     */
-    public function __construct($location, $name, $type) {
-        $this->options = array(
-            'host'   => '127.0.0.1',
-            'port'   => 11211,
-            'extras' => array(
-                'timeout' => 3600, // one hour
-                'prefix'  => 'simplepie_',
-            ),
-        );
-        $this->options = SimplePie_Misc::array_merge_recursive($this->options, SimplePie_Cache::parse_URL($location));
-
-        $this->name = $this->options['extras']['prefix'] . md5("$name:$type");
-
-        $this->cache = new Memcached();
-        $this->cache->addServer($this->options['host'], (int)$this->options['port']);
-    }
-
-    /**
-     * Save data to the cache
-     * @param array|SimplePie $data Data to store in the cache. If passed a SimplePie object, only cache the $data property
-     * @return bool Successfulness
-     */
-    public function save($data) {
-        if ($data instanceof SimplePie) {
-            $data = $data->data;
-        }
-
-        return $this->setData(serialize($data));
-    }
-
-    /**
-     * Retrieve the data saved to the cache
-     * @return array Data for SimplePie::$data
-     */
-    public function load() {
-        $data = $this->cache->get($this->name);
-
-        if ($data !== false) {
-            return unserialize($data);
-        }
-        return false;
-    }
-
-    /**
-     * Retrieve the last modified time for the cache
-     * @return int Timestamp
-     */
-    public function mtime() {
-        $data = $this->cache->get($this->name . '_mtime');
-        return (int) $data;
-    }
-
-    /**
-     * Set the last modified time to the current time
-     * @return bool Success status
-     */
-    public function touch() {
-        $data = $this->cache->get($this->name);
-        return $this->setData($data);
-    }
-
-    /**
-     * Remove the cache
-     * @return bool Success status
-     */
-    public function unlink() {
-        return $this->cache->delete($this->name, 0);
-    }
-
-    /**
-     * Set the last modified time and data to Memcached
-     * @return bool Success status
-     */
-    private function setData($data) {
-
-        if ($data !== false) {
-            $this->cache->set($this->name . '_mtime', time(), (int)$this->options['extras']['timeout']);
-            return $this->cache->set($this->name, $data, (int)$this->options['extras']['timeout']);
-        }
-
-        return false;
-    }
-}
diff --git a/wiki/vendor/simplepie/simplepie/library/SimplePie/Cache/MySQL.php b/wiki/vendor/simplepie/simplepie/library/SimplePie/Cache/MySQL.php
deleted file mode 100644
index 8686b6c..0000000
--- a/wiki/vendor/simplepie/simplepie/library/SimplePie/Cache/MySQL.php
+++ /dev/null
@@ -1,454 +0,0 @@
-<?php
-/**
- * SimplePie
- *
- * A PHP-Based RSS and Atom Feed Framework.
- * Takes the hard work out of managing a complete RSS/Atom solution.
- *
- * Copyright (c) 2004-2016, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification, are
- * permitted provided that the following conditions are met:
- *
- * 	* Redistributions of source code must retain the above copyright notice, this list of
- * 	  conditions and the following disclaimer.
- *
- * 	* Redistributions in binary form must reproduce the above copyright notice, this list
- * 	  of conditions and the following disclaimer in the documentation and/or other materials
- * 	  provided with the distribution.
- *
- * 	* Neither the name of the SimplePie Team nor the names of its contributors may be used
- * 	  to endorse or promote products derived from this software without specific prior
- * 	  written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
- * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS
- * AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @package SimplePie
- * @copyright 2004-2016 Ryan Parman, Geoffrey Sneddon, Ryan McCue
- * @author Ryan Parman
- * @author Geoffrey Sneddon
- * @author Ryan McCue
- * @link http://simplepie.org/ SimplePie
- * @license http://www.opensource.org/licenses/bsd-license.php BSD License
- */
-
-/**
- * Caches data to a MySQL database
- *
- * Registered for URLs with the "mysql" protocol
- *
- * For example, `mysql://root:password@localhost:3306/mydb?prefix=sp_` will
- * connect to the `mydb` database on `localhost` on port 3306, with the user
- * `root` and the password `password`. All tables will be prefixed with `sp_`
- *
- * @package SimplePie
- * @subpackage Caching
- */
-class SimplePie_Cache_MySQL extends SimplePie_Cache_DB
-{
-	/**
-	 * PDO instance
-	 *
-	 * @var PDO
-	 */
-	protected $mysql;
-
-	/**
-	 * Options
-	 *
-	 * @var array
-	 */
-	protected $options;
-
-	/**
-	 * Cache ID
-	 *
-	 * @var string
-	 */
-	protected $id;
-
-	/**
-	 * Create a new cache object
-	 *
-	 * @param string $location Location string (from SimplePie::$cache_location)
-	 * @param string $name Unique ID for the cache
-	 * @param string $type Either TYPE_FEED for SimplePie data, or TYPE_IMAGE for image data
-	 */
-	public function __construct($location, $name, $type)
-	{
-		$this->options = array(
-			'user' => null,
-			'pass' => null,
-			'host' => '127.0.0.1',
-			'port' => '3306',
-			'path' => '',
-			'extras' => array(
-				'prefix' => '',
-				'cache_purge_time' => 2592000
-			),
-		);
-		
-		$this->options = SimplePie_Misc::array_merge_recursive($this->options, SimplePie_Cache::parse_URL($location));
-
-		// Path is prefixed with a "/"
-		$this->options['dbname'] = substr($this->options['path'], 1);
-
-		try
-		{
-			$this->mysql = new PDO("mysql:dbname={$this->options['dbname']};host={$this->options['host']};port={$this->options['port']}", $this->options['user'], $this->options['pass'], array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'));
-		}
-		catch (PDOException $e)
-		{
-			$this->mysql = null;
-			return;
-		}
-
-		$this->id = $name . $type;
-
-		if (!$query = $this->mysql->query('SHOW TABLES'))
-		{
-			$this->mysql = null;
-			return;
-		}
-
-		$db = array();
-		while ($row = $query->fetchColumn())
-		{
-			$db[] = $row;
-		}
-
-		if (!in_array($this->options['extras']['prefix'] . 'cache_data', $db))
-		{
-			$query = $this->mysql->exec('CREATE TABLE `' . $this->options['extras']['prefix'] . 'cache_data` (`id` TEXT CHARACTER SET utf8 NOT NULL, `items` SMALLINT NOT NULL DEFAULT 0, `data` BLOB NOT NULL, `mtime` INT UNSIGNED NOT NULL, UNIQUE (`id`(125)))');
-			if ($query === false)
-			{
-				trigger_error("Can't create " . $this->options['extras']['prefix'] . "cache_data table, check permissions", E_USER_WARNING);
-				$this->mysql = null;
-				return;
-			}
-		}
-
-		if (!in_array($this->options['extras']['prefix'] . 'items', $db))
-		{
-			$query = $this->mysql->exec('CREATE TABLE `' . $this->options['extras']['prefix'] . 'items` (`feed_id` TEXT CHARACTER SET utf8 NOT NULL, `id` TEXT CHARACTER SET utf8 NOT NULL, `data` MEDIUMBLOB NOT NULL, `posted` INT UNSIGNED NOT NULL, INDEX `feed_id` (`feed_id`(125)))');
-			if ($query === false)
-			{
-				trigger_error("Can't create " . $this->options['extras']['prefix'] . "items table, check permissions", E_USER_WARNING);
-				$this->mysql = null;
-				return;
-			}
-		}
-	}
-
-	/**
-	 * Save data to the cache
-	 *
-	 * @param array|SimplePie $data Data to store in the cache. If passed a SimplePie object, only cache the $data property
-	 * @return bool Successfulness
-	 */
-	public function save($data)
-	{
-		if ($this->mysql === null)
-		{
-			return false;
-		}
-
-		$query = $this->mysql->prepare('DELETE i, cd FROM `' . $this->options['extras']['prefix'] . 'cache_data` cd, ' .
-			'`' . $this->options['extras']['prefix'] . 'items` i ' .
-			'WHERE cd.id = i.feed_id ' .
-			'AND cd.mtime < (unix_timestamp() - :purge_time)');
-		$query->bindValue(':purge_time', $this->options['extras']['cache_purge_time']);
-
-		if (!$query->execute())
-		{
-			return false;
-		}
-
-		if ($data instanceof SimplePie)
-		{
-			$data = clone $data;
-
-			$prepared = self::prepare_simplepie_object_for_cache($data);
-
-			$query = $this->mysql->prepare('SELECT COUNT(*) FROM `' . $this->options['extras']['prefix'] . 'cache_data` WHERE `id` = :feed');
-			$query->bindValue(':feed', $this->id);
-			if ($query->execute())
-			{
-				if ($query->fetchColumn() > 0)
-				{
-					$items = count($prepared[1]);
-					if ($items)
-					{
-						$sql = 'UPDATE `' . $this->options['extras']['prefix'] . 'cache_data` SET `items` = :items, `data` = :data, `mtime` = :time WHERE `id` = :feed';
-						$query = $this->mysql->prepare($sql);
-						$query->bindValue(':items', $items);
-					}
-					else
-					{
-						$sql = 'UPDATE `' . $this->options['extras']['prefix'] . 'cache_data` SET `data` = :data, `mtime` = :time WHERE `id` = :feed';
-						$query = $this->mysql->prepare($sql);
-					}
-
-					$query->bindValue(':data', $prepared[0]);
-					$query->bindValue(':time', time());
-					$query->bindValue(':feed', $this->id);
-					if (!$query->execute())
-					{
-						return false;
-					}
-				}
-				else
-				{
-					$query = $this->mysql->prepare('INSERT INTO `' . $this->options['extras']['prefix'] . 'cache_data` (`id`, `items`, `data`, `mtime`) VALUES(:feed, :count, :data, :time)');
-					$query->bindValue(':feed', $this->id);
-					$query->bindValue(':count', count($prepared[1]));
-					$query->bindValue(':data', $prepared[0]);
-					$query->bindValue(':time', time());
-					if (!$query->execute())
-					{
-						return false;
-					}
-				}
-
-				$ids = array_keys($prepared[1]);
-				if (!empty($ids))
-				{
-					foreach ($ids as $id)
-					{
-						$database_ids[] = $this->mysql->quote($id);
-					}
-
-					$query = $this->mysql->prepare('SELECT `id` FROM `' . $this->options['extras']['prefix'] . 'items` WHERE `id` = ' . implode(' OR `id` = ', $database_ids) . ' AND `feed_id` = :feed');
-					$query->bindValue(':feed', $this->id);
-
-					if ($query->execute())
-					{
-						$existing_ids = array();
-						while ($row = $query->fetchColumn())
-						{
-							$existing_ids[] = $row;
-						}
-
-						$new_ids = array_diff($ids, $existing_ids);
-
-						foreach ($new_ids as $new_id)
-						{
-							if (!($date = $prepared[1][$new_id]->get_date('U')))
-							{
-								$date = time();
-							}
-
-							$query = $this->mysql->prepare('INSERT INTO `' . $this->options['extras']['prefix'] . 'items` (`feed_id`, `id`, `data`, `posted`) VALUES(:feed, :id, :data, :date)');
-							$query->bindValue(':feed', $this->id);
-							$query->bindValue(':id', $new_id);
-							$query->bindValue(':data', serialize($prepared[1][$new_id]->data));
-							$query->bindValue(':date', $date);
-							if (!$query->execute())
-							{
-								return false;
-							}
-						}
-						return true;
-					}
-				}
-				else
-				{
-					return true;
-				}
-			}
-		}
-		else
-		{
-			$query = $this->mysql->prepare('SELECT `id` FROM `' . $this->options['extras']['prefix'] . 'cache_data` WHERE `id` = :feed');
-			$query->bindValue(':feed', $this->id);
-			if ($query->execute())
-			{
-				if ($query->rowCount() > 0)
-				{
-					$query = $this->mysql->prepare('UPDATE `' . $this->options['extras']['prefix'] . 'cache_data` SET `items` = 0, `data` = :data, `mtime` = :time WHERE `id` = :feed');
-					$query->bindValue(':data', serialize($data));
-					$query->bindValue(':time', time());
-					$query->bindValue(':feed', $this->id);
-					if ($this->execute())
-					{
-						return true;
-					}
-				}
-				else
-				{
-					$query = $this->mysql->prepare('INSERT INTO `' . $this->options['extras']['prefix'] . 'cache_data` (`id`, `items`, `data`, `mtime`) VALUES(:id, 0, :data, :time)');
-					$query->bindValue(':id', $this->id);
-					$query->bindValue(':data', serialize($data));
-					$query->bindValue(':time', time());
-					if ($query->execute())
-					{
-						return true;
-					}
-				}
-			}
-		}
-		return false;
-	}
-
-	/**
-	 * Retrieve the data saved to the cache
-	 *
-	 * @return array Data for SimplePie::$data
-	 */
-	public function load()
-	{
-		if ($this->mysql === null)
-		{
-			return false;
-		}
-
-		$query = $this->mysql->prepare('SELECT `items`, `data` FROM `' . $this->options['extras']['prefix'] . 'cache_data` WHERE `id` = :id');
-		$query->bindValue(':id', $this->id);
-		if ($query->execute() && ($row = $query->fetch()))
-		{
-			$data = unserialize($row[1]);
-
-			if (isset($this->options['items'][0]))
-			{
-				$items = (int) $this->options['items'][0];
-			}
-			else
-			{
-				$items = (int) $row[0];
-			}
-
-			if ($items !== 0)
-			{
-				if (isset($data['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['feed'][0]))
-				{
-					$feed =& $data['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['feed'][0];
-				}
-				elseif (isset($data['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['feed'][0]))
-				{
-					$feed =& $data['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['feed'][0];
-				}
-				elseif (isset($data['child'][SIMPLEPIE_NAMESPACE_RDF]['RDF'][0]))
-				{
-					$feed =& $data['child'][SIMPLEPIE_NAMESPACE_RDF]['RDF'][0];
-				}
-				elseif (isset($data['child'][SIMPLEPIE_NAMESPACE_RSS_20]['rss'][0]))
-				{
-					$feed =& $data['child'][SIMPLEPIE_NAMESPACE_RSS_20]['rss'][0];
-				}
-				else
-				{
-					$feed = null;
-				}
-
-				if ($feed !== null)
-				{
-					$sql = 'SELECT `data` FROM `' . $this->options['extras']['prefix'] . 'items` WHERE `feed_id` = :feed ORDER BY `posted` DESC';
-					if ($items > 0)
-					{
-						$sql .= ' LIMIT ' . $items;
-					}
-
-					$query = $this->mysql->prepare($sql);
-					$query->bindValue(':feed', $this->id);
-					if ($query->execute())
-					{
-						while ($row = $query->fetchColumn())
-						{
-							$feed['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['entry'][] = unserialize($row);
-						}
-					}
-					else
-					{
-						return false;
-					}
-				}
-			}
-			return $data;
-		}
-		return false;
-	}
-
-	/**
-	 * Retrieve the last modified time for the cache
-	 *
-	 * @return int Timestamp
-	 */
-	public function mtime()
-	{
-		if ($this->mysql === null)
-		{
-			return false;
-		}
-
-		$query = $this->mysql->prepare('SELECT `mtime` FROM `' . $this->options['extras']['prefix'] . 'cache_data` WHERE `id` = :id');
-		$query->bindValue(':id', $this->id);
-		if ($query->execute() && ($time = $query->fetchColumn()))
-		{
-			return $time;
-		}
-		else
-		{
-			return false;
-		}
-	}
-
-	/**
-	 * Set the last modified time to the current time
-	 *
-	 * @return bool Success status
-	 */
-	public function touch()
-	{
-		if ($this->mysql === null)
-		{
-			return false;
-		}
-
-		$query = $this->mysql->prepare('UPDATE `' . $this->options['extras']['prefix'] . 'cache_data` SET `mtime` = :time WHERE `id` = :id');
-		$query->bindValue(':time', time());
-		$query->bindValue(':id', $this->id);
-		if ($query->execute() && $query->rowCount() > 0)
-		{
-			return true;
-		}
-		else
-		{
-			return false;
-		}
-	}
-
-	/**
-	 * Remove the cache
-	 *
-	 * @return bool Success status
-	 */
-	public function unlink()
-	{
-		if ($this->mysql === null)
-		{
-			return false;
-		}
-
-		$query = $this->mysql->prepare('DELETE FROM `' . $this->options['extras']['prefix'] . 'cache_data` WHERE `id` = :id');
-		$query->bindValue(':id', $this->id);
-		$query2 = $this->mysql->prepare('DELETE FROM `' . $this->options['extras']['prefix'] . 'items` WHERE `feed_id` = :id');
-		$query2->bindValue(':id', $this->id);
-		if ($query->execute() && $query2->execute())
-		{
-			return true;
-		}
-		else
-		{
-			return false;
-		}
-	}
-}
diff --git a/wiki/vendor/simplepie/simplepie/library/SimplePie/Cache/Redis.php b/wiki/vendor/simplepie/simplepie/library/SimplePie/Cache/Redis.php
deleted file mode 100644
index 04d72c7..0000000
--- a/wiki/vendor/simplepie/simplepie/library/SimplePie/Cache/Redis.php
+++ /dev/null
@@ -1,166 +0,0 @@
-<?php
-
-/**
- * SimplePie Redis Cache Extension
- *
- * @package SimplePie
- * @author Jan Kozak <galvani78@gmail.com>
- * @link http://galvani.cz/
- * @license http://www.opensource.org/licenses/bsd-license.php BSD License
- * @version 0.2.9
- */
-
-
-/**
- * Caches data to redis
- *
- * Registered for URLs with the "redis" protocol
- *
- * For example, `redis://localhost:6379/?timeout=3600&prefix=sp_&dbIndex=0` will
- * connect to redis on `localhost` on port 6379. All tables will be
- * prefixed with `simple_primary-` and data will expire after 3600 seconds
- *
- * @package SimplePie
- * @subpackage Caching
- * @uses Redis
- */
-class SimplePie_Cache_Redis implements SimplePie_Cache_Base {
-    /**
-     * Redis instance
-     *
-     * @var \Redis
-     */
-    protected $cache;
-
-    /**
-     * Options
-     *
-     * @var array
-     */
-    protected $options;
-
-    /**
-     * Cache name
-     *
-     * @var string
-     */
-    protected $name;
-
-    /**
-     * Cache Data
-     *
-     * @var type
-     */
-    protected $data;
-
-    /**
-     * Create a new cache object
-     *
-     * @param string $location Location string (from SimplePie::$cache_location)
-     * @param string $name Unique ID for the cache
-     * @param string $type Either TYPE_FEED for SimplePie data, or TYPE_IMAGE for image data
-     */
-    public function __construct($location, $name, $options = null) {
-        //$this->cache = \flow\simple\cache\Redis::getRedisClientInstance();
-        $parsed = SimplePie_Cache::parse_URL($location);
-        $redis = new Redis();
-        $redis->connect($parsed['host'], $parsed['port']);
-        $this->cache = $redis;
-
-        if (!is_null($options) && is_array($options)) {
-            $this->options = $options;
-        } else {
-            $this->options = array (
-                'prefix' => 'rss:simple_primary:',
-                'expire' => 0,
-            );
-        }
-
-        $this->name = $this->options['prefix'] . $name;
-    }
-
-    /**
-     * @param \Redis $cache
-     */
-    public function setRedisClient(\Redis $cache) {
-        $this->cache = $cache;
-    }
-
-    /**
-     * Save data to the cache
-     *
-     * @param array|SimplePie $data Data to store in the cache. If passed a SimplePie object, only cache the $data property
-     * @return bool Successfulness
-     */
-    public function save($data) {
-        if ($data instanceof SimplePie) {
-            $data = $data->data;
-        }
-        $response = $this->cache->set($this->name, serialize($data));
-        if ($this->options['expire']) {
-            $this->cache->expire($this->name, $this->options['expire']);
-        }
-
-        return $response;
-    }
-
-    /**
-     * Retrieve the data saved to the cache
-     *
-     * @return array Data for SimplePie::$data
-     */
-    public function load() {
-        $data = $this->cache->get($this->name);
-
-        if ($data !== false) {
-            return unserialize($data);
-        }
-        return false;
-    }
-
-    /**
-     * Retrieve the last modified time for the cache
-     *
-     * @return int Timestamp
-     */
-    public function mtime() {
-
-        $data = $this->cache->get($this->name);
-
-        if ($data !== false) {
-            return time();
-        }
-
-        return false;
-    }
-
-    /**
-     * Set the last modified time to the current time
-     *
-     * @return bool Success status
-     */
-    public function touch() {
-
-        $data = $this->cache->get($this->name);
-
-        if ($data !== false) {
-            $return = $this->cache->set($this->name, $data);
-            if ($this->options['expire']) {
-                return $this->cache->expire($this->name, $this->ttl);
-            }
-            return $return;
-        }
-
-        return false;
-    }
-
-    /**
-     * Remove the cache
-     *
-     * @return bool Success status
-     */
-    public function unlink() {
-        return $this->cache->set($this->name, null);
-    }
-
-}
diff --git a/wiki/vendor/simplepie/simplepie/library/SimplePie/Caption.php b/wiki/vendor/simplepie/simplepie/library/SimplePie/Caption.php
deleted file mode 100644
index abf07de..0000000
--- a/wiki/vendor/simplepie/simplepie/library/SimplePie/Caption.php
+++ /dev/null
@@ -1,209 +0,0 @@
-<?php
-/**
- * SimplePie
- *
- * A PHP-Based RSS and Atom Feed Framework.
- * Takes the hard work out of managing a complete RSS/Atom solution.
- *
- * Copyright (c) 2004-2016, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification, are
- * permitted provided that the following conditions are met:
- *
- * 	* Redistributions of source code must retain the above copyright notice, this list of
- * 	  conditions and the following disclaimer.
- *
- * 	* Redistributions in binary form must reproduce the above copyright notice, this list
- * 	  of conditions and the following disclaimer in the documentation and/or other materials
- * 	  provided with the distribution.
- *
- * 	* Neither the name of the SimplePie Team nor the names of its contributors may be used
- * 	  to endorse or promote products derived from this software without specific prior
- * 	  written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
- * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS
- * AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @package SimplePie
- * @copyright 2004-2016 Ryan Parman, Geoffrey Sneddon, Ryan McCue
- * @author Ryan Parman
- * @author Geoffrey Sneddon
- * @author Ryan McCue
- * @link http://simplepie.org/ SimplePie
- * @license http://www.opensource.org/licenses/bsd-license.php BSD License
- */
-
-
-/**
- * Handles `<media:text>` captions as defined in Media RSS.
- *
- * Used by {@see SimplePie_Enclosure::get_caption()} and {@see SimplePie_Enclosure::get_captions()}
- *
- * This class can be overloaded with {@see SimplePie::set_caption_class()}
- *
- * @package SimplePie
- * @subpackage API
- */
-class SimplePie_Caption
-{
-	/**
-	 * Content type
-	 *
-	 * @var string
-	 * @see get_type()
-	 */
-	var $type;
-
-	/**
-	 * Language
-	 *
-	 * @var string
-	 * @see get_language()
-	 */
-	var $lang;
-
-	/**
-	 * Start time
-	 *
-	 * @var string
-	 * @see get_starttime()
-	 */
-	var $startTime;
-
-	/**
-	 * End time
-	 *
-	 * @var string
-	 * @see get_endtime()
-	 */
-	var $endTime;
-
-	/**
-	 * Caption text
-	 *
-	 * @var string
-	 * @see get_text()
-	 */
-	var $text;
-
-	/**
-	 * Constructor, used to input the data
-	 *
-	 * For documentation on all the parameters, see the corresponding
-	 * properties and their accessors
-	 */
-	public function __construct($type = null, $lang = null, $startTime = null, $endTime = null, $text = null)
-	{
-		$this->type = $type;
-		$this->lang = $lang;
-		$this->startTime = $startTime;
-		$this->endTime = $endTime;
-		$this->text = $text;
-	}
-
-	/**
-	 * String-ified version
-	 *
-	 * @return string
-	 */
-	public function __toString()
-	{
-		// There is no $this->data here
-		return md5(serialize($this));
-	}
-
-	/**
-	 * Get the end time
-	 *
-	 * @return string|null Time in the format 'hh:mm:ss.SSS'
-	 */
-	public function get_endtime()
-	{
-		if ($this->endTime !== null)
-		{
-			return $this->endTime;
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	/**
-	 * Get the language
-	 *
-	 * @link http://tools.ietf.org/html/rfc3066
-	 * @return string|null Language code as per RFC 3066
-	 */
-	public function get_language()
-	{
-		if ($this->lang !== null)
-		{
-			return $this->lang;
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	/**
-	 * Get the start time
-	 *
-	 * @return string|null Time in the format 'hh:mm:ss.SSS'
-	 */
-	public function get_starttime()
-	{
-		if ($this->startTime !== null)
-		{
-			return $this->startTime;
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	/**
-	 * Get the text of the caption
-	 *
-	 * @return string|null
-	 */
-	public function get_text()
-	{
-		if ($this->text !== null)
-		{
-			return $this->text;
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	/**
-	 * Get the content type (not MIME type)
-	 *
-	 * @return string|null Either 'text' or 'html'
-	 */
-	public function get_type()
-	{
-		if ($this->type !== null)
-		{
-			return $this->type;
-		}
-		else
-		{
-			return null;
-		}
-	}
-}
-
diff --git a/wiki/vendor/simplepie/simplepie/library/SimplePie/Category.php b/wiki/vendor/simplepie/simplepie/library/SimplePie/Category.php
deleted file mode 100644
index df0f13f..0000000
--- a/wiki/vendor/simplepie/simplepie/library/SimplePie/Category.php
+++ /dev/null
@@ -1,163 +0,0 @@
-<?php
-/**
- * SimplePie
- *
- * A PHP-Based RSS and Atom Feed Framework.
- * Takes the hard work out of managing a complete RSS/Atom solution.
- *
- * Copyright (c) 2004-2016, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification, are
- * permitted provided that the following conditions are met:
- *
- * 	* Redistributions of source code must retain the above copyright notice, this list of
- * 	  conditions and the following disclaimer.
- *
- * 	* Redistributions in binary form must reproduce the above copyright notice, this list
- * 	  of conditions and the following disclaimer in the documentation and/or other materials
- * 	  provided with the distribution.
- *
- * 	* Neither the name of the SimplePie Team nor the names of its contributors may be used
- * 	  to endorse or promote products derived from this software without specific prior
- * 	  written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
- * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS
- * AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @package SimplePie
- * @copyright 2004-2016 Ryan Parman, Geoffrey Sneddon, Ryan McCue
- * @author Ryan Parman
- * @author Geoffrey Sneddon
- * @author Ryan McCue
- * @link http://simplepie.org/ SimplePie
- * @license http://www.opensource.org/licenses/bsd-license.php BSD License
- */
-
-/**
- * Manages all category-related data
- *
- * Used by {@see SimplePie_Item::get_category()} and {@see SimplePie_Item::get_categories()}
- *
- * This class can be overloaded with {@see SimplePie::set_category_class()}
- *
- * @package SimplePie
- * @subpackage API
- */
-class SimplePie_Category
-{
-	/**
-	 * Category identifier
-	 *
-	 * @var string|null
-	 * @see get_term
-	 */
-	var $term;
-
-	/**
-	 * Categorization scheme identifier
-	 *
-	 * @var string|null
-	 * @see get_scheme()
-	 */
-	var $scheme;
-
-	/**
-	 * Human readable label
-	 *
-	 * @var string|null
-	 * @see get_label()
-	 */
-	var $label;
-
-	/**
-	 * Category type
-	 * 
-	 * category for <category>
-	 * subject for <dc:subject>
-	 *
-	 * @var string|null
-	 * @see get_type()
-	 */
-	var $type;
-
-	/**
-	 * Constructor, used to input the data
-	 *
-	 * @param string|null $term
-	 * @param string|null $scheme
-	 * @param string|null $label
-	 * @param string|null $type
-	 */
-	public function __construct($term = null, $scheme = null, $label = null, $type = null)
-	{
-		$this->term = $term;
-		$this->scheme = $scheme;
-		$this->label = $label;
-		$this->type = $type;
-	}
-
-	/**
-	 * String-ified version
-	 *
-	 * @return string
-	 */
-	public function __toString()
-	{
-		// There is no $this->data here
-		return md5(serialize($this));
-	}
-
-	/**
-	 * Get the category identifier
-	 *
-	 * @return string|null
-	 */
-	public function get_term()
-	{
-		return $this->term;
-	}
-
-	/**
-	 * Get the categorization scheme identifier
-	 *
-	 * @return string|null
-	 */
-	public function get_scheme()
-	{
-		return $this->scheme;
-	}
-
-	/**
-	 * Get the human readable label
-	 *
-	 * @param bool $strict
-	 * @return string|null
-	 */
-	public function get_label($strict = false)
-	{
-		if ($this->label === null && $strict !== true)
-		{
-			return $this->get_term();
-		}
-		return $this->label;
-	}
-
-	/**
-	 * Get the category type
-	 *
-	 * @return string|null
-	 */
-	public function get_type()
-	{
-		return $this->type;
-	}
-}
-
diff --git a/wiki/vendor/simplepie/simplepie/library/SimplePie/Content/Type/Sniffer.php b/wiki/vendor/simplepie/simplepie/library/SimplePie/Content/Type/Sniffer.php
deleted file mode 100644
index ff35de6..0000000
--- a/wiki/vendor/simplepie/simplepie/library/SimplePie/Content/Type/Sniffer.php
+++ /dev/null
@@ -1,331 +0,0 @@
-<?php
-/**
- * SimplePie
- *
- * A PHP-Based RSS and Atom Feed Framework.
- * Takes the hard work out of managing a complete RSS/Atom solution.
- *
- * Copyright (c) 2004-2016, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification, are
- * permitted provided that the following conditions are met:
- *
- * 	* Redistributions of source code must retain the above copyright notice, this list of
- * 	  conditions and the following disclaimer.
- *
- * 	* Redistributions in binary form must reproduce the above copyright notice, this list
- * 	  of conditions and the following disclaimer in the documentation and/or other materials
- * 	  provided with the distribution.
- *
- * 	* Neither the name of the SimplePie Team nor the names of its contributors may be used
- * 	  to endorse or promote products derived from this software without specific prior
- * 	  written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
- * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS
- * AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @package SimplePie
- * @copyright 2004-2016 Ryan Parman, Geoffrey Sneddon, Ryan McCue
- * @author Ryan Parman
- * @author Geoffrey Sneddon
- * @author Ryan McCue
- * @link http://simplepie.org/ SimplePie
- * @license http://www.opensource.org/licenses/bsd-license.php BSD License
- */
-
-
-/**
- * Content-type sniffing
- *
- * Based on the rules in http://tools.ietf.org/html/draft-abarth-mime-sniff-06
- *
- * This is used since we can't always trust Content-Type headers, and is based
- * upon the HTML5 parsing rules.
- *
- *
- * This class can be overloaded with {@see SimplePie::set_content_type_sniffer_class()}
- *
- * @package SimplePie
- * @subpackage HTTP
- */
-class SimplePie_Content_Type_Sniffer
-{
-	/**
-	 * File object
-	 *
-	 * @var SimplePie_File
-	 */
-	var $file;
-
-	/**
-	 * Create an instance of the class with the input file
-	 *
-	 * @param SimplePie_Content_Type_Sniffer $file Input file
-	 */
-	public function __construct($file)
-	{
-		$this->file = $file;
-	}
-
-	/**
-	 * Get the Content-Type of the specified file
-	 *
-	 * @return string Actual Content-Type
-	 */
-	public function get_type()
-	{
-		if (isset($this->file->headers['content-type']))
-		{
-			if (!isset($this->file->headers['content-encoding'])
-				&& ($this->file->headers['content-type'] === 'text/plain'
-					|| $this->file->headers['content-type'] === 'text/plain; charset=ISO-8859-1'
-					|| $this->file->headers['content-type'] === 'text/plain; charset=iso-8859-1'
-					|| $this->file->headers['content-type'] === 'text/plain; charset=UTF-8'))
-			{
-				return $this->text_or_binary();
-			}
-
-			if (($pos = strpos($this->file->headers['content-type'], ';')) !== false)
-			{
-				$official = substr($this->file->headers['content-type'], 0, $pos);
-			}
-			else
-			{
-				$official = $this->file->headers['content-type'];
-			}
-			$official = trim(strtolower($official));
-
-			if ($official === 'unknown/unknown'
-				|| $official === 'application/unknown')
-			{
-				return $this->unknown();
-			}
-			elseif (substr($official, -4) === '+xml'
-				|| $official === 'text/xml'
-				|| $official === 'application/xml')
-			{
-				return $official;
-			}
-			elseif (substr($official, 0, 6) === 'image/')
-			{
-				if ($return = $this->image())
-				{
-					return $return;
-				}
-				else
-				{
-					return $official;
-				}
-			}
-			elseif ($official === 'text/html')
-			{
-				return $this->feed_or_html();
-			}
-			else
-			{
-				return $official;
-			}
-		}
-		else
-		{
-			return $this->unknown();
-		}
-	}
-
-	/**
-	 * Sniff text or binary
-	 *
-	 * @return string Actual Content-Type
-	 */
-	public function text_or_binary()
-	{
-		if (substr($this->file->body, 0, 2) === "\xFE\xFF"
-			|| substr($this->file->body, 0, 2) === "\xFF\xFE"
-			|| substr($this->file->body, 0, 4) === "\x00\x00\xFE\xFF"
-			|| substr($this->file->body, 0, 3) === "\xEF\xBB\xBF")
-		{
-			return 'text/plain';
-		}
-		elseif (preg_match('/[\x00-\x08\x0E-\x1A\x1C-\x1F]/', $this->file->body))
-		{
-			return 'application/octect-stream';
-		}
-		else
-		{
-			return 'text/plain';
-		}
-	}
-
-	/**
-	 * Sniff unknown
-	 *
-	 * @return string Actual Content-Type
-	 */
-	public function unknown()
-	{
-		$ws = strspn($this->file->body, "\x09\x0A\x0B\x0C\x0D\x20");
-		if (strtolower(substr($this->file->body, $ws, 14)) === '<!doctype html'
-			|| strtolower(substr($this->file->body, $ws, 5)) === '<html'
-			|| strtolower(substr($this->file->body, $ws, 7)) === '<script')
-		{
-			return 'text/html';
-		}
-		elseif (substr($this->file->body, 0, 5) === '%PDF-')
-		{
-			return 'application/pdf';
-		}
-		elseif (substr($this->file->body, 0, 11) === '%!PS-Adobe-')
-		{
-			return 'application/postscript';
-		}
-		elseif (substr($this->file->body, 0, 6) === 'GIF87a'
-			|| substr($this->file->body, 0, 6) === 'GIF89a')
-		{
-			return 'image/gif';
-		}
-		elseif (substr($this->file->body, 0, 8) === "\x89\x50\x4E\x47\x0D\x0A\x1A\x0A")
-		{
-			return 'image/png';
-		}
-		elseif (substr($this->file->body, 0, 3) === "\xFF\xD8\xFF")
-		{
-			return 'image/jpeg';
-		}
-		elseif (substr($this->file->body, 0, 2) === "\x42\x4D")
-		{
-			return 'image/bmp';
-		}
-		elseif (substr($this->file->body, 0, 4) === "\x00\x00\x01\x00")
-		{
-			return 'image/vnd.microsoft.icon';
-		}
-		else
-		{
-			return $this->text_or_binary();
-		}
-	}
-
-	/**
-	 * Sniff images
-	 *
-	 * @return string Actual Content-Type
-	 */
-	public function image()
-	{
-		if (substr($this->file->body, 0, 6) === 'GIF87a'
-			|| substr($this->file->body, 0, 6) === 'GIF89a')
-		{
-			return 'image/gif';
-		}
-		elseif (substr($this->file->body, 0, 8) === "\x89\x50\x4E\x47\x0D\x0A\x1A\x0A")
-		{
-			return 'image/png';
-		}
-		elseif (substr($this->file->body, 0, 3) === "\xFF\xD8\xFF")
-		{
-			return 'image/jpeg';
-		}
-		elseif (substr($this->file->body, 0, 2) === "\x42\x4D")
-		{
-			return 'image/bmp';
-		}
-		elseif (substr($this->file->body, 0, 4) === "\x00\x00\x01\x00")
-		{
-			return 'image/vnd.microsoft.icon';
-		}
-		else
-		{
-			return false;
-		}
-	}
-
-	/**
-	 * Sniff HTML
-	 *
-	 * @return string Actual Content-Type
-	 */
-	public function feed_or_html()
-	{
-		$len = strlen($this->file->body);
-		$pos = strspn($this->file->body, "\x09\x0A\x0D\x20\xEF\xBB\xBF");
-
-		while ($pos < $len)
-		{
-			switch ($this->file->body[$pos])
-			{
-				case "\x09":
-				case "\x0A":
-				case "\x0D":
-				case "\x20":
-					$pos += strspn($this->file->body, "\x09\x0A\x0D\x20", $pos);
-					continue 2;
-
-				case '<':
-					$pos++;
-					break;
-
-				default:
-					return 'text/html';
-			}
-
-			if (substr($this->file->body, $pos, 3) === '!--')
-			{
-				$pos += 3;
-				if ($pos < $len && ($pos = strpos($this->file->body, '-->', $pos)) !== false)
-				{
-					$pos += 3;
-				}
-				else
-				{
-					return 'text/html';
-				}
-			}
-			elseif (substr($this->file->body, $pos, 1) === '!')
-			{
-				if ($pos < $len && ($pos = strpos($this->file->body, '>', $pos)) !== false)
-				{
-					$pos++;
-				}
-				else
-				{
-					return 'text/html';
-				}
-			}
-			elseif (substr($this->file->body, $pos, 1) === '?')
-			{
-				if ($pos < $len && ($pos = strpos($this->file->body, '?>', $pos)) !== false)
-				{
-					$pos += 2;
-				}
-				else
-				{
-					return 'text/html';
-				}
-			}
-			elseif (substr($this->file->body, $pos, 3) === 'rss'
-				|| substr($this->file->body, $pos, 7) === 'rdf:RDF')
-			{
-				return 'application/rss+xml';
-			}
-			elseif (substr($this->file->body, $pos, 4) === 'feed')
-			{
-				return 'application/atom+xml';
-			}
-			else
-			{
-				return 'text/html';
-			}
-		}
-
-		return 'text/html';
-	}
-}
-
diff --git a/wiki/vendor/simplepie/simplepie/library/SimplePie/Copyright.php b/wiki/vendor/simplepie/simplepie/library/SimplePie/Copyright.php
deleted file mode 100644
index 3f3d07d..0000000
--- a/wiki/vendor/simplepie/simplepie/library/SimplePie/Copyright.php
+++ /dev/null
@@ -1,129 +0,0 @@
-<?php
-/**
- * SimplePie
- *
- * A PHP-Based RSS and Atom Feed Framework.
- * Takes the hard work out of managing a complete RSS/Atom solution.
- *
- * Copyright (c) 2004-2016, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification, are
- * permitted provided that the following conditions are met:
- *
- * 	* Redistributions of source code must retain the above copyright notice, this list of
- * 	  conditions and the following disclaimer.
- *
- * 	* Redistributions in binary form must reproduce the above copyright notice, this list
- * 	  of conditions and the following disclaimer in the documentation and/or other materials
- * 	  provided with the distribution.
- *
- * 	* Neither the name of the SimplePie Team nor the names of its contributors may be used
- * 	  to endorse or promote products derived from this software without specific prior
- * 	  written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
- * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS
- * AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @package SimplePie
- * @copyright 2004-2016 Ryan Parman, Geoffrey Sneddon, Ryan McCue
- * @author Ryan Parman
- * @author Geoffrey Sneddon
- * @author Ryan McCue
- * @link http://simplepie.org/ SimplePie
- * @license http://www.opensource.org/licenses/bsd-license.php BSD License
- */
-
-/**
- * Manages `<media:copyright>` copyright tags as defined in Media RSS
- *
- * Used by {@see SimplePie_Enclosure::get_copyright()}
- *
- * This class can be overloaded with {@see SimplePie::set_copyright_class()}
- *
- * @package SimplePie
- * @subpackage API
- */
-class SimplePie_Copyright
-{
-	/**
-	 * Copyright URL
-	 *
-	 * @var string
-	 * @see get_url()
-	 */
-	var $url;
-
-	/**
-	 * Attribution
-	 *
-	 * @var string
-	 * @see get_attribution()
-	 */
-	var $label;
-
-	/**
-	 * Constructor, used to input the data
-	 *
-	 * For documentation on all the parameters, see the corresponding
-	 * properties and their accessors
-	 */
-	public function __construct($url = null, $label = null)
-	{
-		$this->url = $url;
-		$this->label = $label;
-	}
-
-	/**
-	 * String-ified version
-	 *
-	 * @return string
-	 */
-	public function __toString()
-	{
-		// There is no $this->data here
-		return md5(serialize($this));
-	}
-
-	/**
-	 * Get the copyright URL
-	 *
-	 * @return string|null URL to copyright information
-	 */
-	public function get_url()
-	{
-		if ($this->url !== null)
-		{
-			return $this->url;
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	/**
-	 * Get the attribution text
-	 *
-	 * @return string|null
-	 */
-	public function get_attribution()
-	{
-		if ($this->label !== null)
-		{
-			return $this->label;
-		}
-		else
-		{
-			return null;
-		}
-	}
-}
-
diff --git a/wiki/vendor/simplepie/simplepie/library/SimplePie/Core.php b/wiki/vendor/simplepie/simplepie/library/SimplePie/Core.php
deleted file mode 100644
index c856ba3..0000000
--- a/wiki/vendor/simplepie/simplepie/library/SimplePie/Core.php
+++ /dev/null
@@ -1,56 +0,0 @@
-<?php
-/**
- * SimplePie
- *
- * A PHP-Based RSS and Atom Feed Framework.
- * Takes the hard work out of managing a complete RSS/Atom solution.
- *
- * Copyright (c) 2004-2016, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification, are
- * permitted provided that the following conditions are met:
- *
- * 	* Redistributions of source code must retain the above copyright notice, this list of
- * 	  conditions and the following disclaimer.
- *
- * 	* Redistributions in binary form must reproduce the above copyright notice, this list
- * 	  of conditions and the following disclaimer in the documentation and/or other materials
- * 	  provided with the distribution.
- *
- * 	* Neither the name of the SimplePie Team nor the names of its contributors may be used
- * 	  to endorse or promote products derived from this software without specific prior
- * 	  written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
- * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS
- * AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @package SimplePie
- * @copyright 2004-2016 Ryan Parman, Geoffrey Sneddon, Ryan McCue
- * @author Ryan Parman
- * @author Geoffrey Sneddon
- * @author Ryan McCue
- * @link http://simplepie.org/ SimplePie
- * @license http://www.opensource.org/licenses/bsd-license.php BSD License
- */
-
-/**
- * SimplePie class.
- *
- * Class for backward compatibility.
- *
- * @deprecated Use {@see SimplePie} directly
- * @package SimplePie
- * @subpackage API
- */
-class SimplePie_Core extends SimplePie
-{
-
-}
\ No newline at end of file
diff --git a/wiki/vendor/simplepie/simplepie/library/SimplePie/Credit.php b/wiki/vendor/simplepie/simplepie/library/SimplePie/Credit.php
deleted file mode 100644
index 9bad9ef..0000000
--- a/wiki/vendor/simplepie/simplepie/library/SimplePie/Credit.php
+++ /dev/null
@@ -1,155 +0,0 @@
-<?php
-/**
- * SimplePie
- *
- * A PHP-Based RSS and Atom Feed Framework.
- * Takes the hard work out of managing a complete RSS/Atom solution.
- *
- * Copyright (c) 2004-2016, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification, are
- * permitted provided that the following conditions are met:
- *
- * 	* Redistributions of source code must retain the above copyright notice, this list of
- * 	  conditions and the following disclaimer.
- *
- * 	* Redistributions in binary form must reproduce the above copyright notice, this list
- * 	  of conditions and the following disclaimer in the documentation and/or other materials
- * 	  provided with the distribution.
- *
- * 	* Neither the name of the SimplePie Team nor the names of its contributors may be used
- * 	  to endorse or promote products derived from this software without specific prior
- * 	  written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
- * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS
- * AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @package SimplePie
- * @copyright 2004-2016 Ryan Parman, Geoffrey Sneddon, Ryan McCue
- * @author Ryan Parman
- * @author Geoffrey Sneddon
- * @author Ryan McCue
- * @link http://simplepie.org/ SimplePie
- * @license http://www.opensource.org/licenses/bsd-license.php BSD License
- */
-
-/**
- * Handles `<media:credit>` as defined in Media RSS
- *
- * Used by {@see SimplePie_Enclosure::get_credit()} and {@see SimplePie_Enclosure::get_credits()}
- *
- * This class can be overloaded with {@see SimplePie::set_credit_class()}
- *
- * @package SimplePie
- * @subpackage API
- */
-class SimplePie_Credit
-{
-	/**
-	 * Credited role
-	 *
-	 * @var string
-	 * @see get_role()
-	 */
-	var $role;
-
-	/**
-	 * Organizational scheme
-	 *
-	 * @var string
-	 * @see get_scheme()
-	 */
-	var $scheme;
-
-	/**
-	 * Credited name
-	 *
-	 * @var string
-	 * @see get_name()
-	 */
-	var $name;
-
-	/**
-	 * Constructor, used to input the data
-	 *
-	 * For documentation on all the parameters, see the corresponding
-	 * properties and their accessors
-	 */
-	public function __construct($role = null, $scheme = null, $name = null)
-	{
-		$this->role = $role;
-		$this->scheme = $scheme;
-		$this->name = $name;
-	}
-
-	/**
-	 * String-ified version
-	 *
-	 * @return string
-	 */
-	public function __toString()
-	{
-		// There is no $this->data here
-		return md5(serialize($this));
-	}
-
-	/**
-	 * Get the role of the person receiving credit
-	 *
-	 * @return string|null
-	 */
-	public function get_role()
-	{
-		if ($this->role !== null)
-		{
-			return $this->role;
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	/**
-	 * Get the organizational scheme
-	 *
-	 * @return string|null
-	 */
-	public function get_scheme()
-	{
-		if ($this->scheme !== null)
-		{
-			return $this->scheme;
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	/**
-	 * Get the credited person/entity's name
-	 *
-	 * @return string|null
-	 */
-	public function get_name()
-	{
-		if ($this->name !== null)
-		{
-			return $this->name;
-		}
-		else
-		{
-			return null;
-		}
-	}
-}
-
diff --git a/wiki/vendor/simplepie/simplepie/library/SimplePie/Decode/HTML/Entities.php b/wiki/vendor/simplepie/simplepie/library/SimplePie/Decode/HTML/Entities.php
deleted file mode 100644
index de3f2cb..0000000
--- a/wiki/vendor/simplepie/simplepie/library/SimplePie/Decode/HTML/Entities.php
+++ /dev/null
@@ -1,615 +0,0 @@
-<?php
-/**
- * SimplePie
- *
- * A PHP-Based RSS and Atom Feed Framework.
- * Takes the hard work out of managing a complete RSS/Atom solution.
- *
- * Copyright (c) 2004-2016, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification, are
- * permitted provided that the following conditions are met:
- *
- * 	* Redistributions of source code must retain the above copyright notice, this list of
- * 	  conditions and the following disclaimer.
- *
- * 	* Redistributions in binary form must reproduce the above copyright notice, this list
- * 	  of conditions and the following disclaimer in the documentation and/or other materials
- * 	  provided with the distribution.
- *
- * 	* Neither the name of the SimplePie Team nor the names of its contributors may be used
- * 	  to endorse or promote products derived from this software without specific prior
- * 	  written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
- * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS
- * AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @package SimplePie
- * @copyright 2004-2016 Ryan Parman, Geoffrey Sneddon, Ryan McCue
- * @author Ryan Parman
- * @author Geoffrey Sneddon
- * @author Ryan McCue
- * @link http://simplepie.org/ SimplePie
- * @license http://www.opensource.org/licenses/bsd-license.php BSD License
- */
-
-
-/**
- * Decode HTML Entities
- *
- * This implements HTML5 as of revision 967 (2007-06-28)
- *
- * @deprecated Use DOMDocument instead!
- * @package SimplePie
- */
-class SimplePie_Decode_HTML_Entities
-{
-	/**
-	 * Data to be parsed
-	 *
-	 * @access private
-	 * @var string
-	 */
-	var $data = '';
-
-	/**
-	 * Currently consumed bytes
-	 *
-	 * @access private
-	 * @var string
-	 */
-	var $consumed = '';
-
-	/**
-	 * Position of the current byte being parsed
-	 *
-	 * @access private
-	 * @var int
-	 */
-	var $position = 0;
-
-	/**
-	 * Create an instance of the class with the input data
-	 *
-	 * @access public
-	 * @param string $data Input data
-	 */
-	public function __construct($data)
-	{
-		$this->data = $data;
-	}
-
-	/**
-	 * Parse the input data
-	 *
-	 * @access public
-	 * @return string Output data
-	 */
-	public function parse()
-	{
-		while (($this->position = strpos($this->data, '&', $this->position)) !== false)
-		{
-			$this->consume();
-			$this->entity();
-			$this->consumed = '';
-		}
-		return $this->data;
-	}
-
-	/**
-	 * Consume the next byte
-	 *
-	 * @access private
-	 * @return mixed The next byte, or false, if there is no more data
-	 */
-	public function consume()
-	{
-		if (isset($this->data[$this->position]))
-		{
-			$this->consumed .= $this->data[$this->position];
-			return $this->data[$this->position++];
-		}
-		else
-		{
-			return false;
-		}
-	}
-
-	/**
-	 * Consume a range of characters
-	 *
-	 * @access private
-	 * @param string $chars Characters to consume
-	 * @return mixed A series of characters that match the range, or false
-	 */
-	public function consume_range($chars)
-	{
-		if ($len = strspn($this->data, $chars, $this->position))
-		{
-			$data = substr($this->data, $this->position, $len);
-			$this->consumed .= $data;
-			$this->position += $len;
-			return $data;
-		}
-		else
-		{
-			return false;
-		}
-	}
-
-	/**
-	 * Unconsume one byte
-	 *
-	 * @access private
-	 */
-	public function unconsume()
-	{
-		$this->consumed = substr($this->consumed, 0, -1);
-		$this->position--;
-	}
-
-	/**
-	 * Decode an entity
-	 *
-	 * @access private
-	 */
-	public function entity()
-	{
-		switch ($this->consume())
-		{
-			case "\x09":
-			case "\x0A":
-			case "\x0B":
-			case "\x0C":
-			case "\x20":
-			case "\x3C":
-			case "\x26":
-			case false:
-				break;
-
-			case "\x23":
-				switch ($this->consume())
-				{
-					case "\x78":
-					case "\x58":
-						$range = '0123456789ABCDEFabcdef';
-						$hex = true;
-						break;
-
-					default:
-						$range = '0123456789';
-						$hex = false;
-						$this->unconsume();
-						break;
-				}
-
-				if ($codepoint = $this->consume_range($range))
-				{
-					static $windows_1252_specials = array(0x0D => "\x0A", 0x80 => "\xE2\x82\xAC", 0x81 => "\xEF\xBF\xBD", 0x82 => "\xE2\x80\x9A", 0x83 => "\xC6\x92", 0x84 => "\xE2\x80\x9E", 0x85 => "\xE2\x80\xA6", 0x86 => "\xE2\x80\xA0", 0x87 => "\xE2\x80\xA1", 0x88 => "\xCB\x86", 0x89 => "\xE2\x80\xB0", 0x8A => "\xC5\xA0", 0x8B => "\xE2\x80\xB9", 0x8C => "\xC5\x92", 0x8D => "\xEF\xBF\xBD", 0x8E => "\xC5\xBD", 0x8F => "\xEF\xBF\xBD", 0x90 => "\xEF\xBF\xBD", 0x91 => "\xE2\x80\x98", 0x92 => "\xE2\x80\x99", 0x93 => "\xE2\x80\x9C", 0x94 => "\xE2\x80\x9D", 0x95 => "\xE2\x80\xA2", 0x96 => "\xE2\x80\x93", 0x97 => "\xE2\x80\x94", 0x98 => "\xCB\x9C", 0x99 => "\xE2\x84\xA2", 0x9A => "\xC5\xA1", 0x9B => "\xE2\x80\xBA", 0x9C => "\xC5\x93", 0x9D => "\xEF\xBF\xBD", 0x9E => "\xC5\xBE", 0x9F => "\xC5\xB8");
-
-					if ($hex)
-					{
-						$codepoint = hexdec($codepoint);
-					}
-					else
-					{
-						$codepoint = intval($codepoint);
-					}
-
-					if (isset($windows_1252_specials[$codepoint]))
-					{
-						$replacement = $windows_1252_specials[$codepoint];
-					}
-					else
-					{
-						$replacement = SimplePie_Misc::codepoint_to_utf8($codepoint);
-					}
-
-					if (!in_array($this->consume(), array(';', false), true))
-					{
-						$this->unconsume();
-					}
-
-					$consumed_length = strlen($this->consumed);
-					$this->data = substr_replace($this->data, $replacement, $this->position - $consumed_length, $consumed_length);
-					$this->position += strlen($replacement) - $consumed_length;
-				}
-				break;
-
-			default:
-				static $entities = array(
-					'Aacute' => "\xC3\x81",
-					'aacute' => "\xC3\xA1",
-					'Aacute;' => "\xC3\x81",
-					'aacute;' => "\xC3\xA1",
-					'Acirc' => "\xC3\x82",
-					'acirc' => "\xC3\xA2",
-					'Acirc;' => "\xC3\x82",
-					'acirc;' => "\xC3\xA2",
-					'acute' => "\xC2\xB4",
-					'acute;' => "\xC2\xB4",
-					'AElig' => "\xC3\x86",
-					'aelig' => "\xC3\xA6",
-					'AElig;' => "\xC3\x86",
-					'aelig;' => "\xC3\xA6",
-					'Agrave' => "\xC3\x80",
-					'agrave' => "\xC3\xA0",
-					'Agrave;' => "\xC3\x80",
-					'agrave;' => "\xC3\xA0",
-					'alefsym;' => "\xE2\x84\xB5",
-					'Alpha;' => "\xCE\x91",
-					'alpha;' => "\xCE\xB1",
-					'AMP' => "\x26",
-					'amp' => "\x26",
-					'AMP;' => "\x26",
-					'amp;' => "\x26",
-					'and;' => "\xE2\x88\xA7",
-					'ang;' => "\xE2\x88\xA0",
-					'apos;' => "\x27",
-					'Aring' => "\xC3\x85",
-					'aring' => "\xC3\xA5",
-					'Aring;' => "\xC3\x85",
-					'aring;' => "\xC3\xA5",
-					'asymp;' => "\xE2\x89\x88",
-					'Atilde' => "\xC3\x83",
-					'atilde' => "\xC3\xA3",
-					'Atilde;' => "\xC3\x83",
-					'atilde;' => "\xC3\xA3",
-					'Auml' => "\xC3\x84",
-					'auml' => "\xC3\xA4",
-					'Auml;' => "\xC3\x84",
-					'auml;' => "\xC3\xA4",
-					'bdquo;' => "\xE2\x80\x9E",
-					'Beta;' => "\xCE\x92",
-					'beta;' => "\xCE\xB2",
-					'brvbar' => "\xC2\xA6",
-					'brvbar;' => "\xC2\xA6",
-					'bull;' => "\xE2\x80\xA2",
-					'cap;' => "\xE2\x88\xA9",
-					'Ccedil' => "\xC3\x87",
-					'ccedil' => "\xC3\xA7",
-					'Ccedil;' => "\xC3\x87",
-					'ccedil;' => "\xC3\xA7",
-					'cedil' => "\xC2\xB8",
-					'cedil;' => "\xC2\xB8",
-					'cent' => "\xC2\xA2",
-					'cent;' => "\xC2\xA2",
-					'Chi;' => "\xCE\xA7",
-					'chi;' => "\xCF\x87",
-					'circ;' => "\xCB\x86",
-					'clubs;' => "\xE2\x99\xA3",
-					'cong;' => "\xE2\x89\x85",
-					'COPY' => "\xC2\xA9",
-					'copy' => "\xC2\xA9",
-					'COPY;' => "\xC2\xA9",
-					'copy;' => "\xC2\xA9",
-					'crarr;' => "\xE2\x86\xB5",
-					'cup;' => "\xE2\x88\xAA",
-					'curren' => "\xC2\xA4",
-					'curren;' => "\xC2\xA4",
-					'Dagger;' => "\xE2\x80\xA1",
-					'dagger;' => "\xE2\x80\xA0",
-					'dArr;' => "\xE2\x87\x93",
-					'darr;' => "\xE2\x86\x93",
-					'deg' => "\xC2\xB0",
-					'deg;' => "\xC2\xB0",
-					'Delta;' => "\xCE\x94",
-					'delta;' => "\xCE\xB4",
-					'diams;' => "\xE2\x99\xA6",
-					'divide' => "\xC3\xB7",
-					'divide;' => "\xC3\xB7",
-					'Eacute' => "\xC3\x89",
-					'eacute' => "\xC3\xA9",
-					'Eacute;' => "\xC3\x89",
-					'eacute;' => "\xC3\xA9",
-					'Ecirc' => "\xC3\x8A",
-					'ecirc' => "\xC3\xAA",
-					'Ecirc;' => "\xC3\x8A",
-					'ecirc;' => "\xC3\xAA",
-					'Egrave' => "\xC3\x88",
-					'egrave' => "\xC3\xA8",
-					'Egrave;' => "\xC3\x88",
-					'egrave;' => "\xC3\xA8",
-					'empty;' => "\xE2\x88\x85",
-					'emsp;' => "\xE2\x80\x83",
-					'ensp;' => "\xE2\x80\x82",
-					'Epsilon;' => "\xCE\x95",
-					'epsilon;' => "\xCE\xB5",
-					'equiv;' => "\xE2\x89\xA1",
-					'Eta;' => "\xCE\x97",
-					'eta;' => "\xCE\xB7",
-					'ETH' => "\xC3\x90",
-					'eth' => "\xC3\xB0",
-					'ETH;' => "\xC3\x90",
-					'eth;' => "\xC3\xB0",
-					'Euml' => "\xC3\x8B",
-					'euml' => "\xC3\xAB",
-					'Euml;' => "\xC3\x8B",
-					'euml;' => "\xC3\xAB",
-					'euro;' => "\xE2\x82\xAC",
-					'exist;' => "\xE2\x88\x83",
-					'fnof;' => "\xC6\x92",
-					'forall;' => "\xE2\x88\x80",
-					'frac12' => "\xC2\xBD",
-					'frac12;' => "\xC2\xBD",
-					'frac14' => "\xC2\xBC",
-					'frac14;' => "\xC2\xBC",
-					'frac34' => "\xC2\xBE",
-					'frac34;' => "\xC2\xBE",
-					'frasl;' => "\xE2\x81\x84",
-					'Gamma;' => "\xCE\x93",
-					'gamma;' => "\xCE\xB3",
-					'ge;' => "\xE2\x89\xA5",
-					'GT' => "\x3E",
-					'gt' => "\x3E",
-					'GT;' => "\x3E",
-					'gt;' => "\x3E",
-					'hArr;' => "\xE2\x87\x94",
-					'harr;' => "\xE2\x86\x94",
-					'hearts;' => "\xE2\x99\xA5",
-					'hellip;' => "\xE2\x80\xA6",
-					'Iacute' => "\xC3\x8D",
-					'iacute' => "\xC3\xAD",
-					'Iacute;' => "\xC3\x8D",
-					'iacute;' => "\xC3\xAD",
-					'Icirc' => "\xC3\x8E",
-					'icirc' => "\xC3\xAE",
-					'Icirc;' => "\xC3\x8E",
-					'icirc;' => "\xC3\xAE",
-					'iexcl' => "\xC2\xA1",
-					'iexcl;' => "\xC2\xA1",
-					'Igrave' => "\xC3\x8C",
-					'igrave' => "\xC3\xAC",
-					'Igrave;' => "\xC3\x8C",
-					'igrave;' => "\xC3\xAC",
-					'image;' => "\xE2\x84\x91",
-					'infin;' => "\xE2\x88\x9E",
-					'int;' => "\xE2\x88\xAB",
-					'Iota;' => "\xCE\x99",
-					'iota;' => "\xCE\xB9",
-					'iquest' => "\xC2\xBF",
-					'iquest;' => "\xC2\xBF",
-					'isin;' => "\xE2\x88\x88",
-					'Iuml' => "\xC3\x8F",
-					'iuml' => "\xC3\xAF",
-					'Iuml;' => "\xC3\x8F",
-					'iuml;' => "\xC3\xAF",
-					'Kappa;' => "\xCE\x9A",
-					'kappa;' => "\xCE\xBA",
-					'Lambda;' => "\xCE\x9B",
-					'lambda;' => "\xCE\xBB",
-					'lang;' => "\xE3\x80\x88",
-					'laquo' => "\xC2\xAB",
-					'laquo;' => "\xC2\xAB",
-					'lArr;' => "\xE2\x87\x90",
-					'larr;' => "\xE2\x86\x90",
-					'lceil;' => "\xE2\x8C\x88",
-					'ldquo;' => "\xE2\x80\x9C",
-					'le;' => "\xE2\x89\xA4",
-					'lfloor;' => "\xE2\x8C\x8A",
-					'lowast;' => "\xE2\x88\x97",
-					'loz;' => "\xE2\x97\x8A",
-					'lrm;' => "\xE2\x80\x8E",
-					'lsaquo;' => "\xE2\x80\xB9",
-					'lsquo;' => "\xE2\x80\x98",
-					'LT' => "\x3C",
-					'lt' => "\x3C",
-					'LT;' => "\x3C",
-					'lt;' => "\x3C",
-					'macr' => "\xC2\xAF",
-					'macr;' => "\xC2\xAF",
-					'mdash;' => "\xE2\x80\x94",
-					'micro' => "\xC2\xB5",
-					'micro;' => "\xC2\xB5",
-					'middot' => "\xC2\xB7",
-					'middot;' => "\xC2\xB7",
-					'minus;' => "\xE2\x88\x92",
-					'Mu;' => "\xCE\x9C",
-					'mu;' => "\xCE\xBC",
-					'nabla;' => "\xE2\x88\x87",
-					'nbsp' => "\xC2\xA0",
-					'nbsp;' => "\xC2\xA0",
-					'ndash;' => "\xE2\x80\x93",
-					'ne;' => "\xE2\x89\xA0",
-					'ni;' => "\xE2\x88\x8B",
-					'not' => "\xC2\xAC",
-					'not;' => "\xC2\xAC",
-					'notin;' => "\xE2\x88\x89",
-					'nsub;' => "\xE2\x8A\x84",
-					'Ntilde' => "\xC3\x91",
-					'ntilde' => "\xC3\xB1",
-					'Ntilde;' => "\xC3\x91",
-					'ntilde;' => "\xC3\xB1",
-					'Nu;' => "\xCE\x9D",
-					'nu;' => "\xCE\xBD",
-					'Oacute' => "\xC3\x93",
-					'oacute' => "\xC3\xB3",
-					'Oacute;' => "\xC3\x93",
-					'oacute;' => "\xC3\xB3",
-					'Ocirc' => "\xC3\x94",
-					'ocirc' => "\xC3\xB4",
-					'Ocirc;' => "\xC3\x94",
-					'ocirc;' => "\xC3\xB4",
-					'OElig;' => "\xC5\x92",
-					'oelig;' => "\xC5\x93",
-					'Ograve' => "\xC3\x92",
-					'ograve' => "\xC3\xB2",
-					'Ograve;' => "\xC3\x92",
-					'ograve;' => "\xC3\xB2",
-					'oline;' => "\xE2\x80\xBE",
-					'Omega;' => "\xCE\xA9",
-					'omega;' => "\xCF\x89",
-					'Omicron;' => "\xCE\x9F",
-					'omicron;' => "\xCE\xBF",
-					'oplus;' => "\xE2\x8A\x95",
-					'or;' => "\xE2\x88\xA8",
-					'ordf' => "\xC2\xAA",
-					'ordf;' => "\xC2\xAA",
-					'ordm' => "\xC2\xBA",
-					'ordm;' => "\xC2\xBA",
-					'Oslash' => "\xC3\x98",
-					'oslash' => "\xC3\xB8",
-					'Oslash;' => "\xC3\x98",
-					'oslash;' => "\xC3\xB8",
-					'Otilde' => "\xC3\x95",
-					'otilde' => "\xC3\xB5",
-					'Otilde;' => "\xC3\x95",
-					'otilde;' => "\xC3\xB5",
-					'otimes;' => "\xE2\x8A\x97",
-					'Ouml' => "\xC3\x96",
-					'ouml' => "\xC3\xB6",
-					'Ouml;' => "\xC3\x96",
-					'ouml;' => "\xC3\xB6",
-					'para' => "\xC2\xB6",
-					'para;' => "\xC2\xB6",
-					'part;' => "\xE2\x88\x82",
-					'permil;' => "\xE2\x80\xB0",
-					'perp;' => "\xE2\x8A\xA5",
-					'Phi;' => "\xCE\xA6",
-					'phi;' => "\xCF\x86",
-					'Pi;' => "\xCE\xA0",
-					'pi;' => "\xCF\x80",
-					'piv;' => "\xCF\x96",
-					'plusmn' => "\xC2\xB1",
-					'plusmn;' => "\xC2\xB1",
-					'pound' => "\xC2\xA3",
-					'pound;' => "\xC2\xA3",
-					'Prime;' => "\xE2\x80\xB3",
-					'prime;' => "\xE2\x80\xB2",
-					'prod;' => "\xE2\x88\x8F",
-					'prop;' => "\xE2\x88\x9D",
-					'Psi;' => "\xCE\xA8",
-					'psi;' => "\xCF\x88",
-					'QUOT' => "\x22",
-					'quot' => "\x22",
-					'QUOT;' => "\x22",
-					'quot;' => "\x22",
-					'radic;' => "\xE2\x88\x9A",
-					'rang;' => "\xE3\x80\x89",
-					'raquo' => "\xC2\xBB",
-					'raquo;' => "\xC2\xBB",
-					'rArr;' => "\xE2\x87\x92",
-					'rarr;' => "\xE2\x86\x92",
-					'rceil;' => "\xE2\x8C\x89",
-					'rdquo;' => "\xE2\x80\x9D",
-					'real;' => "\xE2\x84\x9C",
-					'REG' => "\xC2\xAE",
-					'reg' => "\xC2\xAE",
-					'REG;' => "\xC2\xAE",
-					'reg;' => "\xC2\xAE",
-					'rfloor;' => "\xE2\x8C\x8B",
-					'Rho;' => "\xCE\xA1",
-					'rho;' => "\xCF\x81",
-					'rlm;' => "\xE2\x80\x8F",
-					'rsaquo;' => "\xE2\x80\xBA",
-					'rsquo;' => "\xE2\x80\x99",
-					'sbquo;' => "\xE2\x80\x9A",
-					'Scaron;' => "\xC5\xA0",
-					'scaron;' => "\xC5\xA1",
-					'sdot;' => "\xE2\x8B\x85",
-					'sect' => "\xC2\xA7",
-					'sect;' => "\xC2\xA7",
-					'shy' => "\xC2\xAD",
-					'shy;' => "\xC2\xAD",
-					'Sigma;' => "\xCE\xA3",
-					'sigma;' => "\xCF\x83",
-					'sigmaf;' => "\xCF\x82",
-					'sim;' => "\xE2\x88\xBC",
-					'spades;' => "\xE2\x99\xA0",
-					'sub;' => "\xE2\x8A\x82",
-					'sube;' => "\xE2\x8A\x86",
-					'sum;' => "\xE2\x88\x91",
-					'sup;' => "\xE2\x8A\x83",
-					'sup1' => "\xC2\xB9",
-					'sup1;' => "\xC2\xB9",
-					'sup2' => "\xC2\xB2",
-					'sup2;' => "\xC2\xB2",
-					'sup3' => "\xC2\xB3",
-					'sup3;' => "\xC2\xB3",
-					'supe;' => "\xE2\x8A\x87",
-					'szlig' => "\xC3\x9F",
-					'szlig;' => "\xC3\x9F",
-					'Tau;' => "\xCE\xA4",
-					'tau;' => "\xCF\x84",
-					'there4;' => "\xE2\x88\xB4",
-					'Theta;' => "\xCE\x98",
-					'theta;' => "\xCE\xB8",
-					'thetasym;' => "\xCF\x91",
-					'thinsp;' => "\xE2\x80\x89",
-					'THORN' => "\xC3\x9E",
-					'thorn' => "\xC3\xBE",
-					'THORN;' => "\xC3\x9E",
-					'thorn;' => "\xC3\xBE",
-					'tilde;' => "\xCB\x9C",
-					'times' => "\xC3\x97",
-					'times;' => "\xC3\x97",
-					'TRADE;' => "\xE2\x84\xA2",
-					'trade;' => "\xE2\x84\xA2",
-					'Uacute' => "\xC3\x9A",
-					'uacute' => "\xC3\xBA",
-					'Uacute;' => "\xC3\x9A",
-					'uacute;' => "\xC3\xBA",
-					'uArr;' => "\xE2\x87\x91",
-					'uarr;' => "\xE2\x86\x91",
-					'Ucirc' => "\xC3\x9B",
-					'ucirc' => "\xC3\xBB",
-					'Ucirc;' => "\xC3\x9B",
-					'ucirc;' => "\xC3\xBB",
-					'Ugrave' => "\xC3\x99",
-					'ugrave' => "\xC3\xB9",
-					'Ugrave;' => "\xC3\x99",
-					'ugrave;' => "\xC3\xB9",
-					'uml' => "\xC2\xA8",
-					'uml;' => "\xC2\xA8",
-					'upsih;' => "\xCF\x92",
-					'Upsilon;' => "\xCE\xA5",
-					'upsilon;' => "\xCF\x85",
-					'Uuml' => "\xC3\x9C",
-					'uuml' => "\xC3\xBC",
-					'Uuml;' => "\xC3\x9C",
-					'uuml;' => "\xC3\xBC",
-					'weierp;' => "\xE2\x84\x98",
-					'Xi;' => "\xCE\x9E",
-					'xi;' => "\xCE\xBE",
-					'Yacute' => "\xC3\x9D",
-					'yacute' => "\xC3\xBD",
-					'Yacute;' => "\xC3\x9D",
-					'yacute;' => "\xC3\xBD",
-					'yen' => "\xC2\xA5",
-					'yen;' => "\xC2\xA5",
-					'yuml' => "\xC3\xBF",
-					'Yuml;' => "\xC5\xB8",
-					'yuml;' => "\xC3\xBF",
-					'Zeta;' => "\xCE\x96",
-					'zeta;' => "\xCE\xB6",
-					'zwj;' => "\xE2\x80\x8D",
-					'zwnj;' => "\xE2\x80\x8C"
-				);
-
-				for ($i = 0, $match = null; $i < 9 && $this->consume() !== false; $i++)
-				{
-					$consumed = substr($this->consumed, 1);
-					if (isset($entities[$consumed]))
-					{
-						$match = $consumed;
-					}
-				}
-
-				if ($match !== null)
-				{
- 					$this->data = substr_replace($this->data, $entities[$match], $this->position - strlen($consumed) - 1, strlen($match) + 1);
-					$this->position += strlen($entities[$match]) - strlen($consumed) - 1;
-				}
-				break;
-		}
-	}
-}
-
diff --git a/wiki/vendor/simplepie/simplepie/library/SimplePie/Enclosure.php b/wiki/vendor/simplepie/simplepie/library/SimplePie/Enclosure.php
deleted file mode 100644
index 15060e1..0000000
--- a/wiki/vendor/simplepie/simplepie/library/SimplePie/Enclosure.php
+++ /dev/null
@@ -1,1379 +0,0 @@
-<?php
-/**
- * SimplePie
- *
- * A PHP-Based RSS and Atom Feed Framework.
- * Takes the hard work out of managing a complete RSS/Atom solution.
- *
- * Copyright (c) 2004-2016, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification, are
- * permitted provided that the following conditions are met:
- *
- * 	* Redistributions of source code must retain the above copyright notice, this list of
- * 	  conditions and the following disclaimer.
- *
- * 	* Redistributions in binary form must reproduce the above copyright notice, this list
- * 	  of conditions and the following disclaimer in the documentation and/or other materials
- * 	  provided with the distribution.
- *
- * 	* Neither the name of the SimplePie Team nor the names of its contributors may be used
- * 	  to endorse or promote products derived from this software without specific prior
- * 	  written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
- * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS
- * AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @package SimplePie
- * @copyright 2004-2016 Ryan Parman, Geoffrey Sneddon, Ryan McCue
- * @author Ryan Parman
- * @author Geoffrey Sneddon
- * @author Ryan McCue
- * @link http://simplepie.org/ SimplePie
- * @license http://www.opensource.org/licenses/bsd-license.php BSD License
- */
-
-/**
- * Handles everything related to enclosures (including Media RSS and iTunes RSS)
- *
- * Used by {@see SimplePie_Item::get_enclosure()} and {@see SimplePie_Item::get_enclosures()}
- *
- * This class can be overloaded with {@see SimplePie::set_enclosure_class()}
- *
- * @package SimplePie
- * @subpackage API
- */
-class SimplePie_Enclosure
-{
-	/**
-	 * @var string
-	 * @see get_bitrate()
-	 */
-	var $bitrate;
-
-	/**
-	 * @var array
-	 * @see get_captions()
-	 */
-	var $captions;
-
-	/**
-	 * @var array
-	 * @see get_categories()
-	 */
-	var $categories;
-
-	/**
-	 * @var int
-	 * @see get_channels()
-	 */
-	var $channels;
-
-	/**
-	 * @var SimplePie_Copyright
-	 * @see get_copyright()
-	 */
-	var $copyright;
-
-	/**
-	 * @var array
-	 * @see get_credits()
-	 */
-	var $credits;
-
-	/**
-	 * @var string
-	 * @see get_description()
-	 */
-	var $description;
-
-	/**
-	 * @var int
-	 * @see get_duration()
-	 */
-	var $duration;
-
-	/**
-	 * @var string
-	 * @see get_expression()
-	 */
-	var $expression;
-
-	/**
-	 * @var string
-	 * @see get_framerate()
-	 */
-	var $framerate;
-
-	/**
-	 * @var string
-	 * @see get_handler()
-	 */
-	var $handler;
-
-	/**
-	 * @var array
-	 * @see get_hashes()
-	 */
-	var $hashes;
-
-	/**
-	 * @var string
-	 * @see get_height()
-	 */
-	var $height;
-
-	/**
-	 * @deprecated
-	 * @var null
-	 */
-	var $javascript;
-
-	/**
-	 * @var array
-	 * @see get_keywords()
-	 */
-	var $keywords;
-
-	/**
-	 * @var string
-	 * @see get_language()
-	 */
-	var $lang;
-
-	/**
-	 * @var string
-	 * @see get_length()
-	 */
-	var $length;
-
-	/**
-	 * @var string
-	 * @see get_link()
-	 */
-	var $link;
-
-	/**
-	 * @var string
-	 * @see get_medium()
-	 */
-	var $medium;
-
-	/**
-	 * @var string
-	 * @see get_player()
-	 */
-	var $player;
-
-	/**
-	 * @var array
-	 * @see get_ratings()
-	 */
-	var $ratings;
-
-	/**
-	 * @var array
-	 * @see get_restrictions()
-	 */
-	var $restrictions;
-
-	/**
-	 * @var string
-	 * @see get_sampling_rate()
-	 */
-	var $samplingrate;
-
-	/**
-	 * @var array
-	 * @see get_thumbnails()
-	 */
-	var $thumbnails;
-
-	/**
-	 * @var string
-	 * @see get_title()
-	 */
-	var $title;
-
-	/**
-	 * @var string
-	 * @see get_type()
-	 */
-	var $type;
-
-	/**
-	 * @var string
-	 * @see get_width()
-	 */
-	var $width;
-
-	/**
-	 * Constructor, used to input the data
-	 *
-	 * For documentation on all the parameters, see the corresponding
-	 * properties and their accessors
-	 *
-	 * @uses idna_convert If available, this will convert an IDN
-	 */
-	public function __construct($link = null, $type = null, $length = null, $javascript = null, $bitrate = null, $captions = null, $categories = null, $channels = null, $copyright = null, $credits = null, $description = null, $duration = null, $expression = null, $framerate = null, $hashes = null, $height = null, $keywords = null, $lang = null, $medium = null, $player = null, $ratings = null, $restrictions = null, $samplingrate = null, $thumbnails = null, $title = null, $width = null)
-	{
-		$this->bitrate = $bitrate;
-		$this->captions = $captions;
-		$this->categories = $categories;
-		$this->channels = $channels;
-		$this->copyright = $copyright;
-		$this->credits = $credits;
-		$this->description = $description;
-		$this->duration = $duration;
-		$this->expression = $expression;
-		$this->framerate = $framerate;
-		$this->hashes = $hashes;
-		$this->height = $height;
-		$this->keywords = $keywords;
-		$this->lang = $lang;
-		$this->length = $length;
-		$this->link = $link;
-		$this->medium = $medium;
-		$this->player = $player;
-		$this->ratings = $ratings;
-		$this->restrictions = $restrictions;
-		$this->samplingrate = $samplingrate;
-		$this->thumbnails = $thumbnails;
-		$this->title = $title;
-		$this->type = $type;
-		$this->width = $width;
-
-		if (class_exists('idna_convert'))
-		{
-			$idn = new idna_convert();
-			$parsed = SimplePie_Misc::parse_url($link);
-			$this->link = SimplePie_Misc::compress_parse_url($parsed['scheme'], $idn->encode($parsed['authority']), $parsed['path'], $parsed['query'], $parsed['fragment']);
-		}
-		$this->handler = $this->get_handler(); // Needs to load last
-	}
-
-	/**
-	 * String-ified version
-	 *
-	 * @return string
-	 */
-	public function __toString()
-	{
-		// There is no $this->data here
-		return md5(serialize($this));
-	}
-
-	/**
-	 * Get the bitrate
-	 *
-	 * @return string|null
-	 */
-	public function get_bitrate()
-	{
-		if ($this->bitrate !== null)
-		{
-			return $this->bitrate;
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	/**
-	 * Get a single caption
-	 *
-	 * @param int $key
-	 * @return SimplePie_Caption|null
-	 */
-	public function get_caption($key = 0)
-	{
-		$captions = $this->get_captions();
-		if (isset($captions[$key]))
-		{
-			return $captions[$key];
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	/**
-	 * Get all captions
-	 *
-	 * @return array|null Array of {@see SimplePie_Caption} objects
-	 */
-	public function get_captions()
-	{
-		if ($this->captions !== null)
-		{
-			return $this->captions;
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	/**
-	 * Get a single category
-	 *
-	 * @param int $key
-	 * @return SimplePie_Category|null
-	 */
-	public function get_category($key = 0)
-	{
-		$categories = $this->get_categories();
-		if (isset($categories[$key]))
-		{
-			return $categories[$key];
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	/**
-	 * Get all categories
-	 *
-	 * @return array|null Array of {@see SimplePie_Category} objects
-	 */
-	public function get_categories()
-	{
-		if ($this->categories !== null)
-		{
-			return $this->categories;
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	/**
-	 * Get the number of audio channels
-	 *
-	 * @return int|null
-	 */
-	public function get_channels()
-	{
-		if ($this->channels !== null)
-		{
-			return $this->channels;
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	/**
-	 * Get the copyright information
-	 *
-	 * @return SimplePie_Copyright|null
-	 */
-	public function get_copyright()
-	{
-		if ($this->copyright !== null)
-		{
-			return $this->copyright;
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	/**
-	 * Get a single credit
-	 *
-	 * @param int $key
-	 * @return SimplePie_Credit|null
-	 */
-	public function get_credit($key = 0)
-	{
-		$credits = $this->get_credits();
-		if (isset($credits[$key]))
-		{
-			return $credits[$key];
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	/**
-	 * Get all credits
-	 *
-	 * @return array|null Array of {@see SimplePie_Credit} objects
-	 */
-	public function get_credits()
-	{
-		if ($this->credits !== null)
-		{
-			return $this->credits;
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	/**
-	 * Get the description of the enclosure
-	 *
-	 * @return string|null
-	 */
-	public function get_description()
-	{
-		if ($this->description !== null)
-		{
-			return $this->description;
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	/**
-	 * Get the duration of the enclosure
-	 *
-	 * @param bool $convert Convert seconds into hh:mm:ss
-	 * @return string|int|null 'hh:mm:ss' string if `$convert` was specified, otherwise integer (or null if none found)
-	 */
-	public function get_duration($convert = false)
-	{
-		if ($this->duration !== null)
-		{
-			if ($convert)
-			{
-				$time = SimplePie_Misc::time_hms($this->duration);
-				return $time;
-			}
-			else
-			{
-				return $this->duration;
-			}
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	/**
-	 * Get the expression
-	 *
-	 * @return string Probably one of 'sample', 'full', 'nonstop', 'clip'. Defaults to 'full'
-	 */
-	public function get_expression()
-	{
-		if ($this->expression !== null)
-		{
-			return $this->expression;
-		}
-		else
-		{
-			return 'full';
-		}
-	}
-
-	/**
-	 * Get the file extension
-	 *
-	 * @return string|null
-	 */
-	public function get_extension()
-	{
-		if ($this->link !== null)
-		{
-			$url = SimplePie_Misc::parse_url($this->link);
-			if ($url['path'] !== '')
-			{
-				return pathinfo($url['path'], PATHINFO_EXTENSION);
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Get the framerate (in frames-per-second)
-	 *
-	 * @return string|null
-	 */
-	public function get_framerate()
-	{
-		if ($this->framerate !== null)
-		{
-			return $this->framerate;
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	/**
-	 * Get the preferred handler
-	 *
-	 * @return string|null One of 'flash', 'fmedia', 'quicktime', 'wmedia', 'mp3'
-	 */
-	public function get_handler()
-	{
-		return $this->get_real_type(true);
-	}
-
-	/**
-	 * Get a single hash
-	 *
-	 * @link http://www.rssboard.org/media-rss#media-hash
-	 * @param int $key
-	 * @return string|null Hash as per `media:hash`, prefixed with "$algo:"
-	 */
-	public function get_hash($key = 0)
-	{
-		$hashes = $this->get_hashes();
-		if (isset($hashes[$key]))
-		{
-			return $hashes[$key];
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	/**
-	 * Get all credits
-	 *
-	 * @return array|null Array of strings, see {@see get_hash()}
-	 */
-	public function get_hashes()
-	{
-		if ($this->hashes !== null)
-		{
-			return $this->hashes;
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	/**
-	 * Get the height
-	 *
-	 * @return string|null
-	 */
-	public function get_height()
-	{
-		if ($this->height !== null)
-		{
-			return $this->height;
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	/**
-	 * Get the language
-	 *
-	 * @link http://tools.ietf.org/html/rfc3066
-	 * @return string|null Language code as per RFC 3066
-	 */
-	public function get_language()
-	{
-		if ($this->lang !== null)
-		{
-			return $this->lang;
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	/**
-	 * Get a single keyword
-	 *
-	 * @param int $key
-	 * @return string|null
-	 */
-	public function get_keyword($key = 0)
-	{
-		$keywords = $this->get_keywords();
-		if (isset($keywords[$key]))
-		{
-			return $keywords[$key];
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	/**
-	 * Get all keywords
-	 *
-	 * @return array|null Array of strings
-	 */
-	public function get_keywords()
-	{
-		if ($this->keywords !== null)
-		{
-			return $this->keywords;
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	/**
-	 * Get length
-	 *
-	 * @return float Length in bytes
-	 */
-	public function get_length()
-	{
-		if ($this->length !== null)
-		{
-			return $this->length;
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	/**
-	 * Get the URL
-	 *
-	 * @return string|null
-	 */
-	public function get_link()
-	{
-		if ($this->link !== null)
-		{
-			return urldecode($this->link);
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	/**
-	 * Get the medium
-	 *
-	 * @link http://www.rssboard.org/media-rss#media-content
-	 * @return string|null Should be one of 'image', 'audio', 'video', 'document', 'executable'
-	 */
-	public function get_medium()
-	{
-		if ($this->medium !== null)
-		{
-			return $this->medium;
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	/**
-	 * Get the player URL
-	 *
-	 * Typically the same as {@see get_permalink()}
-	 * @return string|null Player URL
-	 */
-	public function get_player()
-	{
-		if ($this->player !== null)
-		{
-			return $this->player;
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	/**
-	 * Get a single rating
-	 *
-	 * @param int $key
-	 * @return SimplePie_Rating|null
-	 */
-	public function get_rating($key = 0)
-	{
-		$ratings = $this->get_ratings();
-		if (isset($ratings[$key]))
-		{
-			return $ratings[$key];
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	/**
-	 * Get all ratings
-	 *
-	 * @return array|null Array of {@see SimplePie_Rating} objects
-	 */
-	public function get_ratings()
-	{
-		if ($this->ratings !== null)
-		{
-			return $this->ratings;
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	/**
-	 * Get a single restriction
-	 *
-	 * @param int $key
-	 * @return SimplePie_Restriction|null
-	 */
-	public function get_restriction($key = 0)
-	{
-		$restrictions = $this->get_restrictions();
-		if (isset($restrictions[$key]))
-		{
-			return $restrictions[$key];
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	/**
-	 * Get all restrictions
-	 *
-	 * @return array|null Array of {@see SimplePie_Restriction} objects
-	 */
-	public function get_restrictions()
-	{
-		if ($this->restrictions !== null)
-		{
-			return $this->restrictions;
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	/**
-	 * Get the sampling rate (in kHz)
-	 *
-	 * @return string|null
-	 */
-	public function get_sampling_rate()
-	{
-		if ($this->samplingrate !== null)
-		{
-			return $this->samplingrate;
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	/**
-	 * Get the file size (in MiB)
-	 *
-	 * @return float|null File size in mebibytes (1048 bytes)
-	 */
-	public function get_size()
-	{
-		$length = $this->get_length();
-		if ($length !== null)
-		{
-			return round($length/1048576, 2);
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	/**
-	 * Get a single thumbnail
-	 *
-	 * @param int $key
-	 * @return string|null Thumbnail URL
-	 */
-	public function get_thumbnail($key = 0)
-	{
-		$thumbnails = $this->get_thumbnails();
-		if (isset($thumbnails[$key]))
-		{
-			return $thumbnails[$key];
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	/**
-	 * Get all thumbnails
-	 *
-	 * @return array|null Array of thumbnail URLs
-	 */
-	public function get_thumbnails()
-	{
-		if ($this->thumbnails !== null)
-		{
-			return $this->thumbnails;
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	/**
-	 * Get the title
-	 *
-	 * @return string|null
-	 */
-	public function get_title()
-	{
-		if ($this->title !== null)
-		{
-			return $this->title;
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	/**
-	 * Get mimetype of the enclosure
-	 *
-	 * @see get_real_type()
-	 * @return string|null MIME type
-	 */
-	public function get_type()
-	{
-		if ($this->type !== null)
-		{
-			return $this->type;
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	/**
-	 * Get the width
-	 *
-	 * @return string|null
-	 */
-	public function get_width()
-	{
-		if ($this->width !== null)
-		{
-			return $this->width;
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	/**
-	 * Embed the enclosure using `<embed>`
-	 *
-	 * @deprecated Use the second parameter to {@see embed} instead
-	 *
-	 * @param array|string $options See first paramter to {@see embed}
-	 * @return string HTML string to output
-	 */
-	public function native_embed($options='')
-	{
-		return $this->embed($options, true);
-	}
-
-	/**
-	 * Embed the enclosure using Javascript
-	 *
-	 * `$options` is an array or comma-separated key:value string, with the
-	 * following properties:
-	 *
-	 * - `alt` (string): Alternate content for when an end-user does not have
-	 *    the appropriate handler installed or when a file type is
-	 *    unsupported. Can be any text or HTML. Defaults to blank.
-	 * - `altclass` (string): If a file type is unsupported, the end-user will
-	 *    see the alt text (above) linked directly to the content. That link
-	 *    will have this value as its class name. Defaults to blank.
-	 * - `audio` (string): This is an image that should be used as a
-	 *    placeholder for audio files before they're loaded (QuickTime-only).
-	 *    Can be any relative or absolute URL. Defaults to blank.
-	 * - `bgcolor` (string): The background color for the media, if not
-	 *    already transparent. Defaults to `#ffffff`.
-	 * - `height` (integer): The height of the embedded media. Accepts any
-	 *    numeric pixel value (such as `360`) or `auto`. Defaults to `auto`,
-	 *    and it is recommended that you use this default.
-	 * - `loop` (boolean): Do you want the media to loop when it's done?
-	 *    Defaults to `false`.
-	 * - `mediaplayer` (string): The location of the included
-	 *    `mediaplayer.swf` file. This allows for the playback of Flash Video
-	 *    (`.flv`) files, and is the default handler for non-Odeo MP3's.
-	 *    Defaults to blank.
-	 * - `video` (string): This is an image that should be used as a
-	 *    placeholder for video files before they're loaded (QuickTime-only).
-	 *    Can be any relative or absolute URL. Defaults to blank.
-	 * - `width` (integer): The width of the embedded media. Accepts any
-	 *    numeric pixel value (such as `480`) or `auto`. Defaults to `auto`,
-	 *    and it is recommended that you use this default.
-	 * - `widescreen` (boolean): Is the enclosure widescreen or standard?
-	 *    This applies only to video enclosures, and will automatically resize
-	 *    the content appropriately.  Defaults to `false`, implying 4:3 mode.
-	 *
-	 * Note: Non-widescreen (4:3) mode with `width` and `height` set to `auto`
-	 * will default to 480x360 video resolution.  Widescreen (16:9) mode with
-	 * `width` and `height` set to `auto` will default to 480x270 video resolution.
-	 *
-	 * @todo If the dimensions for media:content are defined, use them when width/height are set to 'auto'.
-	 * @param array|string $options Comma-separated key:value list, or array
-	 * @param bool $native Use `<embed>`
-	 * @return string HTML string to output
-	 */
-	public function embed($options = '', $native = false)
-	{
-		// Set up defaults
-		$audio = '';
-		$video = '';
-		$alt = '';
-		$altclass = '';
-		$loop = 'false';
-		$width = 'auto';
-		$height = 'auto';
-		$bgcolor = '#ffffff';
-		$mediaplayer = '';
-		$widescreen = false;
-		$handler = $this->get_handler();
-		$type = $this->get_real_type();
-
-		// Process options and reassign values as necessary
-		if (is_array($options))
-		{
-			extract($options);
-		}
-		else
-		{
-			$options = explode(',', $options);
-			foreach($options as $option)
-			{
-				$opt = explode(':', $option, 2);
-				if (isset($opt[0], $opt[1]))
-				{
-					$opt[0] = trim($opt[0]);
-					$opt[1] = trim($opt[1]);
-					switch ($opt[0])
-					{
-						case 'audio':
-							$audio = $opt[1];
-							break;
-
-						case 'video':
-							$video = $opt[1];
-							break;
-
-						case 'alt':
-							$alt = $opt[1];
-							break;
-
-						case 'altclass':
-							$altclass = $opt[1];
-							break;
-
-						case 'loop':
-							$loop = $opt[1];
-							break;
-
-						case 'width':
-							$width = $opt[1];
-							break;
-
-						case 'height':
-							$height = $opt[1];
-							break;
-
-						case 'bgcolor':
-							$bgcolor = $opt[1];
-							break;
-
-						case 'mediaplayer':
-							$mediaplayer = $opt[1];
-							break;
-
-						case 'widescreen':
-							$widescreen = $opt[1];
-							break;
-					}
-				}
-			}
-		}
-
-		$mime = explode('/', $type, 2);
-		$mime = $mime[0];
-
-		// Process values for 'auto'
-		if ($width === 'auto')
-		{
-			if ($mime === 'video')
-			{
-				if ($height === 'auto')
-				{
-					$width = 480;
-				}
-				elseif ($widescreen)
-				{
-					$width = round((intval($height)/9)*16);
-				}
-				else
-				{
-					$width = round((intval($height)/3)*4);
-				}
-			}
-			else
-			{
-				$width = '100%';
-			}
-		}
-
-		if ($height === 'auto')
-		{
-			if ($mime === 'audio')
-			{
-				$height = 0;
-			}
-			elseif ($mime === 'video')
-			{
-				if ($width === 'auto')
-				{
-					if ($widescreen)
-					{
-						$height = 270;
-					}
-					else
-					{
-						$height = 360;
-					}
-				}
-				elseif ($widescreen)
-				{
-					$height = round((intval($width)/16)*9);
-				}
-				else
-				{
-					$height = round((intval($width)/4)*3);
-				}
-			}
-			else
-			{
-				$height = 376;
-			}
-		}
-		elseif ($mime === 'audio')
-		{
-			$height = 0;
-		}
-
-		// Set proper placeholder value
-		if ($mime === 'audio')
-		{
-			$placeholder = $audio;
-		}
-		elseif ($mime === 'video')
-		{
-			$placeholder = $video;
-		}
-
-		$embed = '';
-
-		// Flash
-		if ($handler === 'flash')
-		{
-			if ($native)
-			{
-				$embed .= "<embed src=\"" . $this->get_link() . "\" pluginspage=\"http://adobe.com/go/getflashplayer\" type=\"$type\" quality=\"high\" width=\"$width\" height=\"$height\" bgcolor=\"$bgcolor\" loop=\"$loop\"></embed>";
-			}
-			else
-			{
-				$embed .= "<script type='text/javascript'>embed_flash('$bgcolor', '$width', '$height', '" . $this->get_link() . "', '$loop', '$type');</script>";
-			}
-		}
-
-		// Flash Media Player file types.
-		// Preferred handler for MP3 file types.
-		elseif ($handler === 'fmedia' || ($handler === 'mp3' && $mediaplayer !== ''))
-		{
-			$height += 20;
-			if ($native)
-			{
-				$embed .= "<embed src=\"$mediaplayer\" pluginspage=\"http://adobe.com/go/getflashplayer\" type=\"application/x-shockwave-flash\" quality=\"high\" width=\"$width\" height=\"$height\" wmode=\"transparent\" flashvars=\"file=" . rawurlencode($this->get_link().'?file_extension=.'.$this->get_extension()) . "&autostart=false&repeat=$loop&showdigits=true&showfsbutton=false\"></embed>";
-			}
-			else
-			{
-				$embed .= "<script type='text/javascript'>embed_flv('$width', '$height', '" . rawurlencode($this->get_link().'?file_extension=.'.$this->get_extension()) . "', '$placeholder', '$loop', '$mediaplayer');</script>";
-			}
-		}
-
-		// QuickTime 7 file types.  Need to test with QuickTime 6.
-		// Only handle MP3's if the Flash Media Player is not present.
-		elseif ($handler === 'quicktime' || ($handler === 'mp3' && $mediaplayer === ''))
-		{
-			$height += 16;
-			if ($native)
-			{
-				if ($placeholder !== '')
-				{
-					$embed .= "<embed type=\"$type\" style=\"cursor:hand; cursor:pointer;\" href=\"" . $this->get_link() . "\" src=\"$placeholder\" width=\"$width\" height=\"$height\" autoplay=\"false\" target=\"myself\" controller=\"false\" loop=\"$loop\" scale=\"aspect\" bgcolor=\"$bgcolor\" pluginspage=\"http://apple.com/quicktime/download/\"></embed>";
-				}
-				else
-				{
-					$embed .= "<embed type=\"$type\" style=\"cursor:hand; cursor:pointer;\" src=\"" . $this->get_link() . "\" width=\"$width\" height=\"$height\" autoplay=\"false\" target=\"myself\" controller=\"true\" loop=\"$loop\" scale=\"aspect\" bgcolor=\"$bgcolor\" pluginspage=\"http://apple.com/quicktime/download/\"></embed>";
-				}
-			}
-			else
-			{
-				$embed .= "<script type='text/javascript'>embed_quicktime('$type', '$bgcolor', '$width', '$height', '" . $this->get_link() . "', '$placeholder', '$loop');</script>";
-			}
-		}
-
-		// Windows Media
-		elseif ($handler === 'wmedia')
-		{
-			$height += 45;
-			if ($native)
-			{
-				$embed .= "<embed type=\"application/x-mplayer2\" src=\"" . $this->get_link() . "\" autosize=\"1\" width=\"$width\" height=\"$height\" showcontrols=\"1\" showstatusbar=\"0\" showdisplay=\"0\" autostart=\"0\"></embed>";
-			}
-			else
-			{
-				$embed .= "<script type='text/javascript'>embed_wmedia('$width', '$height', '" . $this->get_link() . "');</script>";
-			}
-		}
-
-		// Everything else
-		else $embed .= '<a href="' . $this->get_link() . '" class="' . $altclass . '">' . $alt . '</a>';
-
-		return $embed;
-	}
-
-	/**
-	 * Get the real media type
-	 *
-	 * Often, feeds lie to us, necessitating a bit of deeper inspection. This
-	 * converts types to their canonical representations based on the file
-	 * extension
-	 *
-	 * @see get_type()
-	 * @param bool $find_handler Internal use only, use {@see get_handler()} instead
-	 * @return string MIME type
-	 */
-	public function get_real_type($find_handler = false)
-	{
-		// Mime-types by handler.
-		$types_flash = array('application/x-shockwave-flash', 'application/futuresplash'); // Flash
-		$types_fmedia = array('video/flv', 'video/x-flv','flv-application/octet-stream'); // Flash Media Player
-		$types_quicktime = array('audio/3gpp', 'audio/3gpp2', 'audio/aac', 'audio/x-aac', 'audio/aiff', 'audio/x-aiff', 'audio/mid', 'audio/midi', 'audio/x-midi', 'audio/mp4', 'audio/m4a', 'audio/x-m4a', 'audio/wav', 'audio/x-wav', 'video/3gpp', 'video/3gpp2', 'video/m4v', 'video/x-m4v', 'video/mp4', 'video/mpeg', 'video/x-mpeg', 'video/quicktime', 'video/sd-video'); // QuickTime
-		$types_wmedia = array('application/asx', 'application/x-mplayer2', 'audio/x-ms-wma', 'audio/x-ms-wax', 'video/x-ms-asf-plugin', 'video/x-ms-asf', 'video/x-ms-wm', 'video/x-ms-wmv', 'video/x-ms-wvx'); // Windows Media
-		$types_mp3 = array('audio/mp3', 'audio/x-mp3', 'audio/mpeg', 'audio/x-mpeg'); // MP3
-
-		if ($this->get_type() !== null)
-		{
-			$type = strtolower($this->type);
-		}
-		else
-		{
-			$type = null;
-		}
-
-		// If we encounter an unsupported mime-type, check the file extension and guess intelligently.
-		if (!in_array($type, array_merge($types_flash, $types_fmedia, $types_quicktime, $types_wmedia, $types_mp3)))
-		{
-			switch (strtolower($this->get_extension()))
-			{
-				// Audio mime-types
-				case 'aac':
-				case 'adts':
-					$type = 'audio/acc';
-					break;
-
-				case 'aif':
-				case 'aifc':
-				case 'aiff':
-				case 'cdda':
-					$type = 'audio/aiff';
-					break;
-
-				case 'bwf':
-					$type = 'audio/wav';
-					break;
-
-				case 'kar':
-				case 'mid':
-				case 'midi':
-				case 'smf':
-					$type = 'audio/midi';
-					break;
-
-				case 'm4a':
-					$type = 'audio/x-m4a';
-					break;
-
-				case 'mp3':
-				case 'swa':
-					$type = 'audio/mp3';
-					break;
-
-				case 'wav':
-					$type = 'audio/wav';
-					break;
-
-				case 'wax':
-					$type = 'audio/x-ms-wax';
-					break;
-
-				case 'wma':
-					$type = 'audio/x-ms-wma';
-					break;
-
-				// Video mime-types
-				case '3gp':
-				case '3gpp':
-					$type = 'video/3gpp';
-					break;
-
-				case '3g2':
-				case '3gp2':
-					$type = 'video/3gpp2';
-					break;
-
-				case 'asf':
-					$type = 'video/x-ms-asf';
-					break;
-
-				case 'flv':
-					$type = 'video/x-flv';
-					break;
-
-				case 'm1a':
-				case 'm1s':
-				case 'm1v':
-				case 'm15':
-				case 'm75':
-				case 'mp2':
-				case 'mpa':
-				case 'mpeg':
-				case 'mpg':
-				case 'mpm':
-				case 'mpv':
-					$type = 'video/mpeg';
-					break;
-
-				case 'm4v':
-					$type = 'video/x-m4v';
-					break;
-
-				case 'mov':
-				case 'qt':
-					$type = 'video/quicktime';
-					break;
-
-				case 'mp4':
-				case 'mpg4':
-					$type = 'video/mp4';
-					break;
-
-				case 'sdv':
-					$type = 'video/sd-video';
-					break;
-
-				case 'wm':
-					$type = 'video/x-ms-wm';
-					break;
-
-				case 'wmv':
-					$type = 'video/x-ms-wmv';
-					break;
-
-				case 'wvx':
-					$type = 'video/x-ms-wvx';
-					break;
-
-				// Flash mime-types
-				case 'spl':
-					$type = 'application/futuresplash';
-					break;
-
-				case 'swf':
-					$type = 'application/x-shockwave-flash';
-					break;
-			}
-		}
-
-		if ($find_handler)
-		{
-			if (in_array($type, $types_flash))
-			{
-				return 'flash';
-			}
-			elseif (in_array($type, $types_fmedia))
-			{
-				return 'fmedia';
-			}
-			elseif (in_array($type, $types_quicktime))
-			{
-				return 'quicktime';
-			}
-			elseif (in_array($type, $types_wmedia))
-			{
-				return 'wmedia';
-			}
-			elseif (in_array($type, $types_mp3))
-			{
-				return 'mp3';
-			}
-			else
-			{
-				return null;
-			}
-		}
-		else
-		{
-			return $type;
-		}
-	}
-}
-
diff --git a/wiki/vendor/simplepie/simplepie/library/SimplePie/Exception.php b/wiki/vendor/simplepie/simplepie/library/SimplePie/Exception.php
deleted file mode 100644
index 53c015e..0000000
--- a/wiki/vendor/simplepie/simplepie/library/SimplePie/Exception.php
+++ /dev/null
@@ -1,51 +0,0 @@
-<?php
-/**
- * SimplePie
- *
- * A PHP-Based RSS and Atom Feed Framework.
- * Takes the hard work out of managing a complete RSS/Atom solution.
- *
- * Copyright (c) 2004-2016, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification, are
- * permitted provided that the following conditions are met:
- *
- * 	* Redistributions of source code must retain the above copyright notice, this list of
- * 	  conditions and the following disclaimer.
- *
- * 	* Redistributions in binary form must reproduce the above copyright notice, this list
- * 	  of conditions and the following disclaimer in the documentation and/or other materials
- * 	  provided with the distribution.
- *
- * 	* Neither the name of the SimplePie Team nor the names of its contributors may be used
- * 	  to endorse or promote products derived from this software without specific prior
- * 	  written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
- * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS
- * AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @package SimplePie
- * @copyright 2004-2016 Ryan Parman, Geoffrey Sneddon, Ryan McCue
- * @author Ryan Parman
- * @author Geoffrey Sneddon
- * @author Ryan McCue
- * @link http://simplepie.org/ SimplePie
- * @license http://www.opensource.org/licenses/bsd-license.php BSD License
- */
-
-/**
- * General SimplePie exception class
- *
- * @package SimplePie
- */
-class SimplePie_Exception extends Exception
-{
-}
\ No newline at end of file
diff --git a/wiki/vendor/simplepie/simplepie/library/SimplePie/File.php b/wiki/vendor/simplepie/simplepie/library/SimplePie/File.php
deleted file mode 100644
index 2bb0a3b..0000000
--- a/wiki/vendor/simplepie/simplepie/library/SimplePie/File.php
+++ /dev/null
@@ -1,305 +0,0 @@
-<?php
-/**
- * SimplePie
- *
- * A PHP-Based RSS and Atom Feed Framework.
- * Takes the hard work out of managing a complete RSS/Atom solution.
- *
- * Copyright (c) 2004-2016, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification, are
- * permitted provided that the following conditions are met:
- *
- * 	* Redistributions of source code must retain the above copyright notice, this list of
- * 	  conditions and the following disclaimer.
- *
- * 	* Redistributions in binary form must reproduce the above copyright notice, this list
- * 	  of conditions and the following disclaimer in the documentation and/or other materials
- * 	  provided with the distribution.
- *
- * 	* Neither the name of the SimplePie Team nor the names of its contributors may be used
- * 	  to endorse or promote products derived from this software without specific prior
- * 	  written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
- * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS
- * AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @package SimplePie
- * @copyright 2004-2016 Ryan Parman, Geoffrey Sneddon, Ryan McCue
- * @author Ryan Parman
- * @author Geoffrey Sneddon
- * @author Ryan McCue
- * @link http://simplepie.org/ SimplePie
- * @license http://www.opensource.org/licenses/bsd-license.php BSD License
- */
-
-/**
- * Used for fetching remote files and reading local files
- *
- * Supports HTTP 1.0 via cURL or fsockopen, with spotty HTTP 1.1 support
- *
- * This class can be overloaded with {@see SimplePie::set_file_class()}
- *
- * @package SimplePie
- * @subpackage HTTP
- * @todo Move to properly supporting RFC2616 (HTTP/1.1)
- */
-class SimplePie_File
-{
-	var $url;
-	var $useragent;
-	var $success = true;
-	var $headers = array();
-	var $body;
-	var $status_code;
-	var $redirects = 0;
-	var $error;
-	var $method = SIMPLEPIE_FILE_SOURCE_NONE;
-	var $permanent_url;
-
-	public function __construct($url, $timeout = 10, $redirects = 5, $headers = null, $useragent = null, $force_fsockopen = false, $curl_options = array())
-	{
-		if (class_exists('idna_convert'))
-		{
-			$idn = new idna_convert();
-			$parsed = SimplePie_Misc::parse_url($url);
-			$url = SimplePie_Misc::compress_parse_url($parsed['scheme'], $idn->encode($parsed['authority']), $parsed['path'], $parsed['query'], $parsed['fragment']);
-		}
-		$this->url = $url;
-		$this->permanent_url = $url;
-		$this->useragent = $useragent;
-		if (preg_match('/^http(s)?:\/\//i', $url))
-		{
-			if ($useragent === null)
-			{
-				$useragent = ini_get('user_agent');
-				$this->useragent = $useragent;
-			}
-			if (!is_array($headers))
-			{
-				$headers = array();
-			}
-			if (!$force_fsockopen && function_exists('curl_exec'))
-			{
-				$this->method = SIMPLEPIE_FILE_SOURCE_REMOTE | SIMPLEPIE_FILE_SOURCE_CURL;
-				$fp = curl_init();
-				$headers2 = array();
-				foreach ($headers as $key => $value)
-				{
-					$headers2[] = "$key: $value";
-				}
-				if (version_compare(SimplePie_Misc::get_curl_version(), '7.10.5', '>='))
-				{
-					curl_setopt($fp, CURLOPT_ENCODING, '');
-				}
-				curl_setopt($fp, CURLOPT_URL, $url);
-				curl_setopt($fp, CURLOPT_HEADER, 1);
-				curl_setopt($fp, CURLOPT_RETURNTRANSFER, 1);
-				curl_setopt($fp, CURLOPT_FAILONERROR, 1);
-				curl_setopt($fp, CURLOPT_TIMEOUT, $timeout);
-				curl_setopt($fp, CURLOPT_CONNECTTIMEOUT, $timeout);
-				curl_setopt($fp, CURLOPT_REFERER, $url);
-				curl_setopt($fp, CURLOPT_USERAGENT, $useragent);
-				curl_setopt($fp, CURLOPT_HTTPHEADER, $headers2);
-				if (!ini_get('open_basedir') && !ini_get('safe_mode') && version_compare(SimplePie_Misc::get_curl_version(), '7.15.2', '>='))
-				{
-					curl_setopt($fp, CURLOPT_FOLLOWLOCATION, 1);
-					curl_setopt($fp, CURLOPT_MAXREDIRS, $redirects);
-				}
-				foreach ($curl_options as $curl_param => $curl_value) {
-					curl_setopt($fp, $curl_param, $curl_value);
-				}
-
-				$this->headers = curl_exec($fp);
-				if (curl_errno($fp) === 23 || curl_errno($fp) === 61)
-				{
-					curl_setopt($fp, CURLOPT_ENCODING, 'none');
-					$this->headers = curl_exec($fp);
-				}
-				if (curl_errno($fp))
-				{
-					$this->error = 'cURL error ' . curl_errno($fp) . ': ' . curl_error($fp);
-					$this->success = false;
-				}
-				else
-				{
-					// Use the updated url provided by curl_getinfo after any redirects.
-					if ($info = curl_getinfo($fp)) {
-						$this->url = $info['url'];
-					}
-					curl_close($fp);
-					$this->headers = SimplePie_HTTP_Parser::prepareHeaders($this->headers, $info['redirect_count'] + 1);
-					$parser = new SimplePie_HTTP_Parser($this->headers);
-					if ($parser->parse())
-					{
-						$this->headers = $parser->headers;
-						$this->body = trim($parser->body);
-						$this->status_code = $parser->status_code;
-						if ((in_array($this->status_code, array(300, 301, 302, 303, 307)) || $this->status_code > 307 && $this->status_code < 400) && isset($this->headers['location']) && $this->redirects < $redirects)
-						{
-							$this->redirects++;
-							$location = SimplePie_Misc::absolutize_url($this->headers['location'], $url);
-							$previousStatusCode = $this->status_code;
-							$this->__construct($location, $timeout, $redirects, $headers, $useragent, $force_fsockopen);
-							$this->permanent_url = ($previousStatusCode == 301) ? $location : $url;
-							return;
-						}
-					}
-				}
-			}
-			else
-			{
-				$this->method = SIMPLEPIE_FILE_SOURCE_REMOTE | SIMPLEPIE_FILE_SOURCE_FSOCKOPEN;
-				$url_parts = parse_url($url);
-				$socket_host = $url_parts['host'];
-				if (isset($url_parts['scheme']) && strtolower($url_parts['scheme']) === 'https')
-				{
-					$socket_host = "ssl://$url_parts[host]";
-					$url_parts['port'] = 443;
-				}
-				if (!isset($url_parts['port']))
-				{
-					$url_parts['port'] = 80;
-				}
-				$fp = @fsockopen($socket_host, $url_parts['port'], $errno, $errstr, $timeout);
-				if (!$fp)
-				{
-					$this->error = 'fsockopen error: ' . $errstr;
-					$this->success = false;
-				}
-				else
-				{
-					stream_set_timeout($fp, $timeout);
-					if (isset($url_parts['path']))
-					{
-						if (isset($url_parts['query']))
-						{
-							$get = "$url_parts[path]?$url_parts[query]";
-						}
-						else
-						{
-							$get = $url_parts['path'];
-						}
-					}
-					else
-					{
-						$get = '/';
-					}
-					$out = "GET $get HTTP/1.1\r\n";
-					$out .= "Host: $url_parts[host]\r\n";
-					$out .= "User-Agent: $useragent\r\n";
-					if (extension_loaded('zlib'))
-					{
-						$out .= "Accept-Encoding: x-gzip,gzip,deflate\r\n";
-					}
-
-					if (isset($url_parts['user']) && isset($url_parts['pass']))
-					{
-						$out .= "Authorization: Basic " . base64_encode("$url_parts[user]:$url_parts[pass]") . "\r\n";
-					}
-					foreach ($headers as $key => $value)
-					{
-						$out .= "$key: $value\r\n";
-					}
-					$out .= "Connection: Close\r\n\r\n";
-					fwrite($fp, $out);
-
-					$info = stream_get_meta_data($fp);
-
-					$this->headers = '';
-					while (!$info['eof'] && !$info['timed_out'])
-					{
-						$this->headers .= fread($fp, 1160);
-						$info = stream_get_meta_data($fp);
-					}
-					if (!$info['timed_out'])
-					{
-						$parser = new SimplePie_HTTP_Parser($this->headers);
-						if ($parser->parse())
-						{
-							$this->headers = $parser->headers;
-							$this->body = $parser->body;
-							$this->status_code = $parser->status_code;
-							if ((in_array($this->status_code, array(300, 301, 302, 303, 307)) || $this->status_code > 307 && $this->status_code < 400) && isset($this->headers['location']) && $this->redirects < $redirects)
-							{
-								$this->redirects++;
-								$location = SimplePie_Misc::absolutize_url($this->headers['location'], $url);
-								$previousStatusCode = $this->status_code;
-								$this->__construct($location, $timeout, $redirects, $headers, $useragent, $force_fsockopen);
-								$this->permanent_url = ($previousStatusCode == 301) ? $location : $url;
-								return;
-							}
-							if (isset($this->headers['content-encoding']))
-							{
-								// Hey, we act dumb elsewhere, so let's do that here too
-								switch (strtolower(trim($this->headers['content-encoding'], "\x09\x0A\x0D\x20")))
-								{
-									case 'gzip':
-									case 'x-gzip':
-										$decoder = new SimplePie_gzdecode($this->body);
-										if (!$decoder->parse())
-										{
-											$this->error = 'Unable to decode HTTP "gzip" stream';
-											$this->success = false;
-										}
-										else
-										{
-											$this->body = trim($decoder->data);
-										}
-										break;
-
-									case 'deflate':
-										if (($decompressed = gzinflate($this->body)) !== false)
-										{
-											$this->body = $decompressed;
-										}
-										else if (($decompressed = gzuncompress($this->body)) !== false)
-										{
-											$this->body = $decompressed;
-										}
-										else if (function_exists('gzdecode') && ($decompressed = gzdecode($this->body)) !== false)
-										{
-											$this->body = $decompressed;
-										}
-										else
-										{
-											$this->error = 'Unable to decode HTTP "deflate" stream';
-											$this->success = false;
-										}
-										break;
-
-									default:
-										$this->error = 'Unknown content coding';
-										$this->success = false;
-								}
-							}
-						}
-					}
-					else
-					{
-						$this->error = 'fsocket timed out';
-						$this->success = false;
-					}
-					fclose($fp);
-				}
-			}
-		}
-		else
-		{
-			$this->method = SIMPLEPIE_FILE_SOURCE_LOCAL | SIMPLEPIE_FILE_SOURCE_FILE_GET_CONTENTS;
-			if (empty($url) || !($this->body = trim(file_get_contents($url))))
-			{
-				$this->error = 'file_get_contents could not read the file';
-				$this->success = false;
-			}
-		}
-	}
-}
diff --git a/wiki/vendor/simplepie/simplepie/library/SimplePie/HTTP/Parser.php b/wiki/vendor/simplepie/simplepie/library/SimplePie/HTTP/Parser.php
deleted file mode 100644
index e982c20..0000000
--- a/wiki/vendor/simplepie/simplepie/library/SimplePie/HTTP/Parser.php
+++ /dev/null
@@ -1,520 +0,0 @@
-<?php
-/**
- * SimplePie
- *
- * A PHP-Based RSS and Atom Feed Framework.
- * Takes the hard work out of managing a complete RSS/Atom solution.
- *
- * Copyright (c) 2004-2016, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification, are
- * permitted provided that the following conditions are met:
- *
- * 	* Redistributions of source code must retain the above copyright notice, this list of
- * 	  conditions and the following disclaimer.
- *
- * 	* Redistributions in binary form must reproduce the above copyright notice, this list
- * 	  of conditions and the following disclaimer in the documentation and/or other materials
- * 	  provided with the distribution.
- *
- * 	* Neither the name of the SimplePie Team nor the names of its contributors may be used
- * 	  to endorse or promote products derived from this software without specific prior
- * 	  written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
- * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS
- * AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @package SimplePie
- * @copyright 2004-2016 Ryan Parman, Geoffrey Sneddon, Ryan McCue
- * @author Ryan Parman
- * @author Geoffrey Sneddon
- * @author Ryan McCue
- * @link http://simplepie.org/ SimplePie
- * @license http://www.opensource.org/licenses/bsd-license.php BSD License
- */
-
-
-/**
- * HTTP Response Parser
- *
- * @package SimplePie
- * @subpackage HTTP
- */
-class SimplePie_HTTP_Parser
-{
-	/**
-	 * HTTP Version
-	 *
-	 * @var float
-	 */
-	public $http_version = 0.0;
-
-	/**
-	 * Status code
-	 *
-	 * @var int
-	 */
-	public $status_code = 0;
-
-	/**
-	 * Reason phrase
-	 *
-	 * @var string
-	 */
-	public $reason = '';
-
-	/**
-	 * Key/value pairs of the headers
-	 *
-	 * @var array
-	 */
-	public $headers = array();
-
-	/**
-	 * Body of the response
-	 *
-	 * @var string
-	 */
-	public $body = '';
-
-	/**
-	 * Current state of the state machine
-	 *
-	 * @var string
-	 */
-	protected $state = 'http_version';
-
-	/**
-	 * Input data
-	 *
-	 * @var string
-	 */
-	protected $data = '';
-
-	/**
-	 * Input data length (to avoid calling strlen() everytime this is needed)
-	 *
-	 * @var int
-	 */
-	protected $data_length = 0;
-
-	/**
-	 * Current position of the pointer
-	 *
-	 * @var int
-	 */
-	protected $position = 0;
-
-	/**
-	 * Name of the hedaer currently being parsed
-	 *
-	 * @var string
-	 */
-	protected $name = '';
-
-	/**
-	 * Value of the hedaer currently being parsed
-	 *
-	 * @var string
-	 */
-	protected $value = '';
-
-	/**
-	 * Create an instance of the class with the input data
-	 *
-	 * @param string $data Input data
-	 */
-	public function __construct($data)
-	{
-		$this->data = $data;
-		$this->data_length = strlen($this->data);
-	}
-
-	/**
-	 * Parse the input data
-	 *
-	 * @return bool true on success, false on failure
-	 */
-	public function parse()
-	{
-		while ($this->state && $this->state !== 'emit' && $this->has_data())
-		{
-			$state = $this->state;
-			$this->$state();
-		}
-		$this->data = '';
-		if ($this->state === 'emit' || $this->state === 'body')
-		{
-			return true;
-		}
-		else
-		{
-			$this->http_version = '';
-			$this->status_code = '';
-			$this->reason = '';
-			$this->headers = array();
-			$this->body = '';
-			return false;
-		}
-	}
-
-	/**
-	 * Check whether there is data beyond the pointer
-	 *
-	 * @return bool true if there is further data, false if not
-	 */
-	protected function has_data()
-	{
-		return (bool) ($this->position < $this->data_length);
-	}
-
-	/**
-	 * See if the next character is LWS
-	 *
-	 * @return bool true if the next character is LWS, false if not
-	 */
-	protected function is_linear_whitespace()
-	{
-		return (bool) ($this->data[$this->position] === "\x09"
-			|| $this->data[$this->position] === "\x20"
-			|| ($this->data[$this->position] === "\x0A"
-				&& isset($this->data[$this->position + 1])
-				&& ($this->data[$this->position + 1] === "\x09" || $this->data[$this->position + 1] === "\x20")));
-	}
-
-	/**
-	 * Parse the HTTP version
-	 */
-	protected function http_version()
-	{
-		if (strpos($this->data, "\x0A") !== false && strtoupper(substr($this->data, 0, 5)) === 'HTTP/')
-		{
-			$len = strspn($this->data, '0123456789.', 5);
-			$this->http_version = substr($this->data, 5, $len);
-			$this->position += 5 + $len;
-			if (substr_count($this->http_version, '.') <= 1)
-			{
-				$this->http_version = (float) $this->http_version;
-				$this->position += strspn($this->data, "\x09\x20", $this->position);
-				$this->state = 'status';
-			}
-			else
-			{
-				$this->state = false;
-			}
-		}
-		else
-		{
-			$this->state = false;
-		}
-	}
-
-	/**
-	 * Parse the status code
-	 */
-	protected function status()
-	{
-		if ($len = strspn($this->data, '0123456789', $this->position))
-		{
-			$this->status_code = (int) substr($this->data, $this->position, $len);
-			$this->position += $len;
-			$this->state = 'reason';
-		}
-		else
-		{
-			$this->state = false;
-		}
-	}
-
-	/**
-	 * Parse the reason phrase
-	 */
-	protected function reason()
-	{
-		$len = strcspn($this->data, "\x0A", $this->position);
-		$this->reason = trim(substr($this->data, $this->position, $len), "\x09\x0D\x20");
-		$this->position += $len + 1;
-		$this->state = 'new_line';
-	}
-
-	/**
-	 * Deal with a new line, shifting data around as needed
-	 */
-	protected function new_line()
-	{
-		$this->value = trim($this->value, "\x0D\x20");
-		if ($this->name !== '' && $this->value !== '')
-		{
-			$this->name = strtolower($this->name);
-			// We should only use the last Content-Type header. c.f. issue #1
-			if (isset($this->headers[$this->name]) && $this->name !== 'content-type')
-			{
-				$this->headers[$this->name] .= ', ' . $this->value;
-			}
-			else
-			{
-				$this->headers[$this->name] = $this->value;
-			}
-		}
-		$this->name = '';
-		$this->value = '';
-		if (substr($this->data[$this->position], 0, 2) === "\x0D\x0A")
-		{
-			$this->position += 2;
-			$this->state = 'body';
-		}
-		elseif ($this->data[$this->position] === "\x0A")
-		{
-			$this->position++;
-			$this->state = 'body';
-		}
-		else
-		{
-			$this->state = 'name';
-		}
-	}
-
-	/**
-	 * Parse a header name
-	 */
-	protected function name()
-	{
-		$len = strcspn($this->data, "\x0A:", $this->position);
-		if (isset($this->data[$this->position + $len]))
-		{
-			if ($this->data[$this->position + $len] === "\x0A")
-			{
-				$this->position += $len;
-				$this->state = 'new_line';
-			}
-			else
-			{
-				$this->name = substr($this->data, $this->position, $len);
-				$this->position += $len + 1;
-				$this->state = 'value';
-			}
-		}
-		else
-		{
-			$this->state = false;
-		}
-	}
-
-	/**
-	 * Parse LWS, replacing consecutive LWS characters with a single space
-	 */
-	protected function linear_whitespace()
-	{
-		do
-		{
-			if (substr($this->data, $this->position, 2) === "\x0D\x0A")
-			{
-				$this->position += 2;
-			}
-			elseif ($this->data[$this->position] === "\x0A")
-			{
-				$this->position++;
-			}
-			$this->position += strspn($this->data, "\x09\x20", $this->position);
-		} while ($this->has_data() && $this->is_linear_whitespace());
-		$this->value .= "\x20";
-	}
-
-	/**
-	 * See what state to move to while within non-quoted header values
-	 */
-	protected function value()
-	{
-		if ($this->is_linear_whitespace())
-		{
-			$this->linear_whitespace();
-		}
-		else
-		{
-			switch ($this->data[$this->position])
-			{
-				case '"':
-					// Workaround for ETags: we have to include the quotes as
-					// part of the tag.
-					if (strtolower($this->name) === 'etag')
-					{
-						$this->value .= '"';
-						$this->position++;
-						$this->state = 'value_char';
-						break;
-					}
-					$this->position++;
-					$this->state = 'quote';
-					break;
-
-				case "\x0A":
-					$this->position++;
-					$this->state = 'new_line';
-					break;
-
-				default:
-					$this->state = 'value_char';
-					break;
-			}
-		}
-	}
-
-	/**
-	 * Parse a header value while outside quotes
-	 */
-	protected function value_char()
-	{
-		$len = strcspn($this->data, "\x09\x20\x0A\"", $this->position);
-		$this->value .= substr($this->data, $this->position, $len);
-		$this->position += $len;
-		$this->state = 'value';
-	}
-
-	/**
-	 * See what state to move to while within quoted header values
-	 */
-	protected function quote()
-	{
-		if ($this->is_linear_whitespace())
-		{
-			$this->linear_whitespace();
-		}
-		else
-		{
-			switch ($this->data[$this->position])
-			{
-				case '"':
-					$this->position++;
-					$this->state = 'value';
-					break;
-
-				case "\x0A":
-					$this->position++;
-					$this->state = 'new_line';
-					break;
-
-				case '\\':
-					$this->position++;
-					$this->state = 'quote_escaped';
-					break;
-
-				default:
-					$this->state = 'quote_char';
-					break;
-			}
-		}
-	}
-
-	/**
-	 * Parse a header value while within quotes
-	 */
-	protected function quote_char()
-	{
-		$len = strcspn($this->data, "\x09\x20\x0A\"\\", $this->position);
-		$this->value .= substr($this->data, $this->position, $len);
-		$this->position += $len;
-		$this->state = 'value';
-	}
-
-	/**
-	 * Parse an escaped character within quotes
-	 */
-	protected function quote_escaped()
-	{
-		$this->value .= $this->data[$this->position];
-		$this->position++;
-		$this->state = 'quote';
-	}
-
-	/**
-	 * Parse the body
-	 */
-	protected function body()
-	{
-		$this->body = substr($this->data, $this->position);
-		if (!empty($this->headers['transfer-encoding']))
-		{
-			unset($this->headers['transfer-encoding']);
-			$this->state = 'chunked';
-		}
-		else
-		{
-			$this->state = 'emit';
-		}
-	}
-
-	/**
-	 * Parsed a "Transfer-Encoding: chunked" body
-	 */
-	protected function chunked()
-	{
-		if (!preg_match('/^([0-9a-f]+)[^\r\n]*\r\n/i', trim($this->body)))
-		{
-			$this->state = 'emit';
-			return;
-		}
-
-		$decoded = '';
-		$encoded = $this->body;
-
-		while (true)
-		{
-			$is_chunked = (bool) preg_match( '/^([0-9a-f]+)[^\r\n]*\r\n/i', $encoded, $matches );
-			if (!$is_chunked)
-			{
-				// Looks like it's not chunked after all
-				$this->state = 'emit';
-				return;
-			}
-
-			$length = hexdec(trim($matches[1]));
-			if ($length === 0)
-			{
-				// Ignore trailer headers
-				$this->state = 'emit';
-				$this->body = $decoded;
-				return;
-			}
-
-			$chunk_length = strlen($matches[0]);
-			$decoded .= $part = substr($encoded, $chunk_length, $length);
-			$encoded = substr($encoded, $chunk_length + $length + 2);
-
-			if (trim($encoded) === '0' || empty($encoded))
-			{
-				$this->state = 'emit';
-				$this->body = $decoded;
-				return;
-			}
-		}
-	}
-
-	/**
-	 * Prepare headers (take care of proxies headers)
-	 *
-	 * @param string  $headers Raw headers
-	 * @param integer $count   Redirection count. Default to 1.
-	 *
-	 * @return string
-	 */
-	static public function prepareHeaders($headers, $count = 1)
-	{
-		$data = explode("\r\n\r\n", $headers, $count);
-		$data = array_pop($data);
-		if (false !== stripos($data, "HTTP/1.0 200 Connection established\r\n\r\n")) {
-			$data = str_ireplace("HTTP/1.0 200 Connection established\r\n\r\n", '', $data);
-		}
-		if (false !== stripos($data, "HTTP/1.1 200 Connection established\r\n\r\n")) {
-			$data = str_ireplace("HTTP/1.1 200 Connection established\r\n\r\n", '', $data);
-		}
-		return $data;
-	}
-}
diff --git a/wiki/vendor/simplepie/simplepie/library/SimplePie/IRI.php b/wiki/vendor/simplepie/simplepie/library/SimplePie/IRI.php
deleted file mode 100644
index 2b3fbaf..0000000
--- a/wiki/vendor/simplepie/simplepie/library/SimplePie/IRI.php
+++ /dev/null
@@ -1,1257 +0,0 @@
-<?php
-/**
- * SimplePie
- *
- * A PHP-Based RSS and Atom Feed Framework.
- * Takes the hard work out of managing a complete RSS/Atom solution.
- *
- * Copyright (c) 2004-2016, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification, are
- * permitted provided that the following conditions are met:
- *
- * 	* Redistributions of source code must retain the above copyright notice, this list of
- * 	  conditions and the following disclaimer.
- *
- * 	* Redistributions in binary form must reproduce the above copyright notice, this list
- * 	  of conditions and the following disclaimer in the documentation and/or other materials
- * 	  provided with the distribution.
- *
- * 	* Neither the name of the SimplePie Team nor the names of its contributors may be used
- * 	  to endorse or promote products derived from this software without specific prior
- * 	  written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
- * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS
- * AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @package SimplePie
- * @copyright 2004-2016 Ryan Parman, Geoffrey Sneddon, Ryan McCue
- * @author Ryan Parman
- * @author Geoffrey Sneddon
- * @author Ryan McCue
- * @link http://simplepie.org/ SimplePie
- * @license http://www.opensource.org/licenses/bsd-license.php BSD License
- */
-
-/**
- * IRI parser/serialiser/normaliser
- *
- * @package SimplePie
- * @subpackage HTTP
- * @author Geoffrey Sneddon
- * @author Steve Minutillo
- * @author Ryan McCue
- * @copyright 2007-2012 Geoffrey Sneddon, Steve Minutillo, Ryan McCue
- * @license http://www.opensource.org/licenses/bsd-license.php
- */
-class SimplePie_IRI
-{
-	/**
-	 * Scheme
-	 *
-	 * @var string
-	 */
-	protected $scheme = null;
-
-	/**
-	 * User Information
-	 *
-	 * @var string
-	 */
-	protected $iuserinfo = null;
-
-	/**
-	 * ihost
-	 *
-	 * @var string
-	 */
-	protected $ihost = null;
-
-	/**
-	 * Port
-	 *
-	 * @var string
-	 */
-	protected $port = null;
-
-	/**
-	 * ipath
-	 *
-	 * @var string
-	 */
-	protected $ipath = '';
-
-	/**
-	 * iquery
-	 *
-	 * @var string
-	 */
-	protected $iquery = null;
-
-	/**
-	 * ifragment
-	 *
-	 * @var string
-	 */
-	protected $ifragment = null;
-
-	/**
-	 * Normalization database
-	 *
-	 * Each key is the scheme, each value is an array with each key as the IRI
-	 * part and value as the default value for that part.
-	 */
-	protected $normalization = array(
-		'acap' => array(
-			'port' => 674
-		),
-		'dict' => array(
-			'port' => 2628
-		),
-		'file' => array(
-			'ihost' => 'localhost'
-		),
-		'http' => array(
-			'port' => 80,
-			'ipath' => '/'
-		),
-		'https' => array(
-			'port' => 443,
-			'ipath' => '/'
-		),
-	);
-
-	/**
-	 * Return the entire IRI when you try and read the object as a string
-	 *
-	 * @return string
-	 */
-	public function __toString()
-	{
-		return $this->get_iri();
-	}
-
-	/**
-	 * Overload __set() to provide access via properties
-	 *
-	 * @param string $name Property name
-	 * @param mixed $value Property value
-	 */
-	public function __set($name, $value)
-	{
-		if (method_exists($this, 'set_' . $name))
-		{
-			call_user_func(array($this, 'set_' . $name), $value);
-		}
-		elseif (
-			   $name === 'iauthority'
-			|| $name === 'iuserinfo'
-			|| $name === 'ihost'
-			|| $name === 'ipath'
-			|| $name === 'iquery'
-			|| $name === 'ifragment'
-		)
-		{
-			call_user_func(array($this, 'set_' . substr($name, 1)), $value);
-		}
-	}
-
-	/**
-	 * Overload __get() to provide access via properties
-	 *
-	 * @param string $name Property name
-	 * @return mixed
-	 */
-	public function __get($name)
-	{
-		// isset() returns false for null, we don't want to do that
-		// Also why we use array_key_exists below instead of isset()
-		$props = get_object_vars($this);
-
-		if (
-			$name === 'iri' ||
-			$name === 'uri' ||
-			$name === 'iauthority' ||
-			$name === 'authority'
-		)
-		{
-			$return = $this->{"get_$name"}();
-		}
-		elseif (array_key_exists($name, $props))
-		{
-			$return = $this->$name;
-		}
-		// host -> ihost
-		elseif (($prop = 'i' . $name) && array_key_exists($prop, $props))
-		{
-			$name = $prop;
-			$return = $this->$prop;
-		}
-		// ischeme -> scheme
-		elseif (($prop = substr($name, 1)) && array_key_exists($prop, $props))
-		{
-			$name = $prop;
-			$return = $this->$prop;
-		}
-		else
-		{
-			trigger_error('Undefined property: ' . get_class($this) . '::' . $name, E_USER_NOTICE);
-			$return = null;
-		}
-
-		if ($return === null && isset($this->normalization[$this->scheme][$name]))
-		{
-			return $this->normalization[$this->scheme][$name];
-		}
-		else
-		{
-			return $return;
-		}
-	}
-
-	/**
-	 * Overload __isset() to provide access via properties
-	 *
-	 * @param string $name Property name
-	 * @return bool
-	 */
-	public function __isset($name)
-	{
-		if (method_exists($this, 'get_' . $name) || isset($this->$name))
-		{
-			return true;
-		}
-		else
-		{
-			return false;
-		}
-	}
-
-	/**
-	 * Overload __unset() to provide access via properties
-	 *
-	 * @param string $name Property name
-	 */
-	public function __unset($name)
-	{
-		if (method_exists($this, 'set_' . $name))
-		{
-			call_user_func(array($this, 'set_' . $name), '');
-		}
-	}
-
-	/**
-	 * Create a new IRI object, from a specified string
-	 *
-	 * @param string $iri
-	 */
-	public function __construct($iri = null)
-	{
-		$this->set_iri($iri);
-	}
-
-	/**
-	 * Clean up
-	 */
-	public function __destruct() {
-	    $this->set_iri(null, true);
-	    $this->set_path(null, true);
-	    $this->set_authority(null, true);
-	}
-
-	/**
-	 * Create a new IRI object by resolving a relative IRI
-	 *
-	 * Returns false if $base is not absolute, otherwise an IRI.
-	 *
-	 * @param IRI|string $base (Absolute) Base IRI
-	 * @param IRI|string $relative Relative IRI
-	 * @return IRI|false
-	 */
-	public static function absolutize($base, $relative)
-	{
-		if (!($relative instanceof SimplePie_IRI))
-		{
-			$relative = new SimplePie_IRI($relative);
-		}
-		if (!$relative->is_valid())
-		{
-			return false;
-		}
-		elseif ($relative->scheme !== null)
-		{
-			return clone $relative;
-		}
-		else
-		{
-			if (!($base instanceof SimplePie_IRI))
-			{
-				$base = new SimplePie_IRI($base);
-			}
-			if ($base->scheme !== null && $base->is_valid())
-			{
-				if ($relative->get_iri() !== '')
-				{
-					if ($relative->iuserinfo !== null || $relative->ihost !== null || $relative->port !== null)
-					{
-						$target = clone $relative;
-						$target->scheme = $base->scheme;
-					}
-					else
-					{
-						$target = new SimplePie_IRI;
-						$target->scheme = $base->scheme;
-						$target->iuserinfo = $base->iuserinfo;
-						$target->ihost = $base->ihost;
-						$target->port = $base->port;
-						if ($relative->ipath !== '')
-						{
-							if ($relative->ipath[0] === '/')
-							{
-								$target->ipath = $relative->ipath;
-							}
-							elseif (($base->iuserinfo !== null || $base->ihost !== null || $base->port !== null) && $base->ipath === '')
-							{
-								$target->ipath = '/' . $relative->ipath;
-							}
-							elseif (($last_segment = strrpos($base->ipath, '/')) !== false)
-							{
-								$target->ipath = substr($base->ipath, 0, $last_segment + 1) . $relative->ipath;
-							}
-							else
-							{
-								$target->ipath = $relative->ipath;
-							}
-							$target->ipath = $target->remove_dot_segments($target->ipath);
-							$target->iquery = $relative->iquery;
-						}
-						else
-						{
-							$target->ipath = $base->ipath;
-							if ($relative->iquery !== null)
-							{
-								$target->iquery = $relative->iquery;
-							}
-							elseif ($base->iquery !== null)
-							{
-								$target->iquery = $base->iquery;
-							}
-						}
-						$target->ifragment = $relative->ifragment;
-					}
-				}
-				else
-				{
-					$target = clone $base;
-					$target->ifragment = null;
-				}
-				$target->scheme_normalization();
-				return $target;
-			}
-			else
-			{
-				return false;
-			}
-		}
-	}
-
-	/**
-	 * Parse an IRI into scheme/authority/path/query/fragment segments
-	 *
-	 * @param string $iri
-	 * @return array
-	 */
-	protected function parse_iri($iri)
-	{
-		$iri = trim($iri, "\x20\x09\x0A\x0C\x0D");
-		if (preg_match('/^((?P<scheme>[^:\/?#]+):)?(\/\/(?P<authority>[^\/?#]*))?(?P<path>[^?#]*)(\?(?P<query>[^#]*))?(#(?P<fragment>.*))?$/', $iri, $match))
-		{
-			if ($match[1] === '')
-			{
-				$match['scheme'] = null;
-			}
-			if (!isset($match[3]) || $match[3] === '')
-			{
-				$match['authority'] = null;
-			}
-			if (!isset($match[5]))
-			{
-				$match['path'] = '';
-			}
-			if (!isset($match[6]) || $match[6] === '')
-			{
-				$match['query'] = null;
-			}
-			if (!isset($match[8]) || $match[8] === '')
-			{
-				$match['fragment'] = null;
-			}
-			return $match;
-		}
-		else
-		{
-			// This can occur when a paragraph is accidentally parsed as a URI
-			return false;
-		}
-	}
-
-	/**
-	 * Remove dot segments from a path
-	 *
-	 * @param string $input
-	 * @return string
-	 */
-	protected function remove_dot_segments($input)
-	{
-		$output = '';
-		while (strpos($input, './') !== false || strpos($input, '/.') !== false || $input === '.' || $input === '..')
-		{
-			// A: If the input buffer begins with a prefix of "../" or "./", then remove that prefix from the input buffer; otherwise,
-			if (strpos($input, '../') === 0)
-			{
-				$input = substr($input, 3);
-			}
-			elseif (strpos($input, './') === 0)
-			{
-				$input = substr($input, 2);
-			}
-			// B: if the input buffer begins with a prefix of "/./" or "/.", where "." is a complete path segment, then replace that prefix with "/" in the input buffer; otherwise,
-			elseif (strpos($input, '/./') === 0)
-			{
-				$input = substr($input, 2);
-			}
-			elseif ($input === '/.')
-			{
-				$input = '/';
-			}
-			// C: if the input buffer begins with a prefix of "/../" or "/..", where ".." is a complete path segment, then replace that prefix with "/" in the input buffer and remove the last segment and its preceding "/" (if any) from the output buffer; otherwise,
-			elseif (strpos($input, '/../') === 0)
-			{
-				$input = substr($input, 3);
-				$output = substr_replace($output, '', strrpos($output, '/'));
-			}
-			elseif ($input === '/..')
-			{
-				$input = '/';
-				$output = substr_replace($output, '', strrpos($output, '/'));
-			}
-			// D: if the input buffer consists only of "." or "..", then remove that from the input buffer; otherwise,
-			elseif ($input === '.' || $input === '..')
-			{
-				$input = '';
-			}
-			// E: move the first path segment in the input buffer to the end of the output buffer, including the initial "/" character (if any) and any subsequent characters up to, but not including, the next "/" character or the end of the input buffer
-			elseif (($pos = strpos($input, '/', 1)) !== false)
-			{
-				$output .= substr($input, 0, $pos);
-				$input = substr_replace($input, '', 0, $pos);
-			}
-			else
-			{
-				$output .= $input;
-				$input = '';
-			}
-		}
-		return $output . $input;
-	}
-
-	/**
-	 * Replace invalid character with percent encoding
-	 *
-	 * @param string $string Input string
-	 * @param string $extra_chars Valid characters not in iunreserved or
-	 *                            iprivate (this is ASCII-only)
-	 * @param bool $iprivate Allow iprivate
-	 * @return string
-	 */
-	protected function replace_invalid_with_pct_encoding($string, $extra_chars, $iprivate = false)
-	{
-		// Normalize as many pct-encoded sections as possible
-		$string = preg_replace_callback('/(?:%[A-Fa-f0-9]{2})+/', array($this, 'remove_iunreserved_percent_encoded'), $string);
-
-		// Replace invalid percent characters
-		$string = preg_replace('/%(?![A-Fa-f0-9]{2})/', '%25', $string);
-
-		// Add unreserved and % to $extra_chars (the latter is safe because all
-		// pct-encoded sections are now valid).
-		$extra_chars .= 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~%';
-
-		// Now replace any bytes that aren't allowed with their pct-encoded versions
-		$position = 0;
-		$strlen = strlen($string);
-		while (($position += strspn($string, $extra_chars, $position)) < $strlen)
-		{
-			$value = ord($string[$position]);
-
-			// Start position
-			$start = $position;
-
-			// By default we are valid
-			$valid = true;
-
-			// No one byte sequences are valid due to the while.
-			// Two byte sequence:
-			if (($value & 0xE0) === 0xC0)
-			{
-				$character = ($value & 0x1F) << 6;
-				$length = 2;
-				$remaining = 1;
-			}
-			// Three byte sequence:
-			elseif (($value & 0xF0) === 0xE0)
-			{
-				$character = ($value & 0x0F) << 12;
-				$length = 3;
-				$remaining = 2;
-			}
-			// Four byte sequence:
-			elseif (($value & 0xF8) === 0xF0)
-			{
-				$character = ($value & 0x07) << 18;
-				$length = 4;
-				$remaining = 3;
-			}
-			// Invalid byte:
-			else
-			{
-				$valid = false;
-				$length = 1;
-				$remaining = 0;
-			}
-
-			if ($remaining)
-			{
-				if ($position + $length <= $strlen)
-				{
-					for ($position++; $remaining; $position++)
-					{
-						$value = ord($string[$position]);
-
-						// Check that the byte is valid, then add it to the character:
-						if (($value & 0xC0) === 0x80)
-						{
-							$character |= ($value & 0x3F) << (--$remaining * 6);
-						}
-						// If it is invalid, count the sequence as invalid and reprocess the current byte:
-						else
-						{
-							$valid = false;
-							$position--;
-							break;
-						}
-					}
-				}
-				else
-				{
-					$position = $strlen - 1;
-					$valid = false;
-				}
-			}
-
-			// Percent encode anything invalid or not in ucschar
-			if (
-				// Invalid sequences
-				!$valid
-				// Non-shortest form sequences are invalid
-				|| $length > 1 && $character <= 0x7F
-				|| $length > 2 && $character <= 0x7FF
-				|| $length > 3 && $character <= 0xFFFF
-				// Outside of range of ucschar codepoints
-				// Noncharacters
-				|| ($character & 0xFFFE) === 0xFFFE
-				|| $character >= 0xFDD0 && $character <= 0xFDEF
-				|| (
-					// Everything else not in ucschar
-					   $character > 0xD7FF && $character < 0xF900
-					|| $character < 0xA0
-					|| $character > 0xEFFFD
-				)
-				&& (
-					// Everything not in iprivate, if it applies
-					   !$iprivate
-					|| $character < 0xE000
-					|| $character > 0x10FFFD
-				)
-			)
-			{
-				// If we were a character, pretend we weren't, but rather an error.
-				if ($valid)
-					$position--;
-
-				for ($j = $start; $j <= $position; $j++)
-				{
-					$string = substr_replace($string, sprintf('%%%02X', ord($string[$j])), $j, 1);
-					$j += 2;
-					$position += 2;
-					$strlen += 2;
-				}
-			}
-		}
-
-		return $string;
-	}
-
-	/**
-	 * Callback function for preg_replace_callback.
-	 *
-	 * Removes sequences of percent encoded bytes that represent UTF-8
-	 * encoded characters in iunreserved
-	 *
-	 * @param array $match PCRE match
-	 * @return string Replacement
-	 */
-	protected function remove_iunreserved_percent_encoded($match)
-	{
-		// As we just have valid percent encoded sequences we can just explode
-		// and ignore the first member of the returned array (an empty string).
-		$bytes = explode('%', $match[0]);
-
-		// Initialize the new string (this is what will be returned) and that
-		// there are no bytes remaining in the current sequence (unsurprising
-		// at the first byte!).
-		$string = '';
-		$remaining = 0;
-
-		// Loop over each and every byte, and set $value to its value
-		for ($i = 1, $len = count($bytes); $i < $len; $i++)
-		{
-			$value = hexdec($bytes[$i]);
-
-			// If we're the first byte of sequence:
-			if (!$remaining)
-			{
-				// Start position
-				$start = $i;
-
-				// By default we are valid
-				$valid = true;
-
-				// One byte sequence:
-				if ($value <= 0x7F)
-				{
-					$character = $value;
-					$length = 1;
-				}
-				// Two byte sequence:
-				elseif (($value & 0xE0) === 0xC0)
-				{
-					$character = ($value & 0x1F) << 6;
-					$length = 2;
-					$remaining = 1;
-				}
-				// Three byte sequence:
-				elseif (($value & 0xF0) === 0xE0)
-				{
-					$character = ($value & 0x0F) << 12;
-					$length = 3;
-					$remaining = 2;
-				}
-				// Four byte sequence:
-				elseif (($value & 0xF8) === 0xF0)
-				{
-					$character = ($value & 0x07) << 18;
-					$length = 4;
-					$remaining = 3;
-				}
-				// Invalid byte:
-				else
-				{
-					$valid = false;
-					$remaining = 0;
-				}
-			}
-			// Continuation byte:
-			else
-			{
-				// Check that the byte is valid, then add it to the character:
-				if (($value & 0xC0) === 0x80)
-				{
-					$remaining--;
-					$character |= ($value & 0x3F) << ($remaining * 6);
-				}
-				// If it is invalid, count the sequence as invalid and reprocess the current byte as the start of a sequence:
-				else
-				{
-					$valid = false;
-					$remaining = 0;
-					$i--;
-				}
-			}
-
-			// If we've reached the end of the current byte sequence, append it to Unicode::$data
-			if (!$remaining)
-			{
-				// Percent encode anything invalid or not in iunreserved
-				if (
-					// Invalid sequences
-					!$valid
-					// Non-shortest form sequences are invalid
-					|| $length > 1 && $character <= 0x7F
-					|| $length > 2 && $character <= 0x7FF
-					|| $length > 3 && $character <= 0xFFFF
-					// Outside of range of iunreserved codepoints
-					|| $character < 0x2D
-					|| $character > 0xEFFFD
-					// Noncharacters
-					|| ($character & 0xFFFE) === 0xFFFE
-					|| $character >= 0xFDD0 && $character <= 0xFDEF
-					// Everything else not in iunreserved (this is all BMP)
-					|| $character === 0x2F
-					|| $character > 0x39 && $character < 0x41
-					|| $character > 0x5A && $character < 0x61
-					|| $character > 0x7A && $character < 0x7E
-					|| $character > 0x7E && $character < 0xA0
-					|| $character > 0xD7FF && $character < 0xF900
-				)
-				{
-					for ($j = $start; $j <= $i; $j++)
-					{
-						$string .= '%' . strtoupper($bytes[$j]);
-					}
-				}
-				else
-				{
-					for ($j = $start; $j <= $i; $j++)
-					{
-						$string .= chr(hexdec($bytes[$j]));
-					}
-				}
-			}
-		}
-
-		// If we have any bytes left over they are invalid (i.e., we are
-		// mid-way through a multi-byte sequence)
-		if ($remaining)
-		{
-			for ($j = $start; $j < $len; $j++)
-			{
-				$string .= '%' . strtoupper($bytes[$j]);
-			}
-		}
-
-		return $string;
-	}
-
-	protected function scheme_normalization()
-	{
-		if (isset($this->normalization[$this->scheme]['iuserinfo']) && $this->iuserinfo === $this->normalization[$this->scheme]['iuserinfo'])
-		{
-			$this->iuserinfo = null;
-		}
-		if (isset($this->normalization[$this->scheme]['ihost']) && $this->ihost === $this->normalization[$this->scheme]['ihost'])
-		{
-			$this->ihost = null;
-		}
-		if (isset($this->normalization[$this->scheme]['port']) && $this->port === $this->normalization[$this->scheme]['port'])
-		{
-			$this->port = null;
-		}
-		if (isset($this->normalization[$this->scheme]['ipath']) && $this->ipath === $this->normalization[$this->scheme]['ipath'])
-		{
-			$this->ipath = '';
-		}
-		if (isset($this->normalization[$this->scheme]['iquery']) && $this->iquery === $this->normalization[$this->scheme]['iquery'])
-		{
-			$this->iquery = null;
-		}
-		if (isset($this->normalization[$this->scheme]['ifragment']) && $this->ifragment === $this->normalization[$this->scheme]['ifragment'])
-		{
-			$this->ifragment = null;
-		}
-	}
-
-	/**
-	 * Check if the object represents a valid IRI. This needs to be done on each
-	 * call as some things change depending on another part of the IRI.
-	 *
-	 * @return bool
-	 */
-	public function is_valid()
-	{
-		if ($this->ipath === '') return true;
-
-		$isauthority = $this->iuserinfo !== null || $this->ihost !== null ||
-			$this->port !== null;
-		if ($isauthority && $this->ipath[0] === '/') return true;
-
-		if (!$isauthority && (substr($this->ipath, 0, 2) === '//')) return false;
-
-		// Relative urls cannot have a colon in the first path segment (and the
-		// slashes themselves are not included so skip the first character).
-		if (!$this->scheme && !$isauthority &&
-		    strpos($this->ipath, ':') !== false &&
-		    strpos($this->ipath, '/', 1) !== false &&
-		    strpos($this->ipath, ':') < strpos($this->ipath, '/', 1)) return false;
-
-		return true;
-	}
-
-	/**
-	 * Set the entire IRI. Returns true on success, false on failure (if there
-	 * are any invalid characters).
-	 *
-	 * @param string $iri
-	 * @return bool
-	 */
-	public function set_iri($iri, $clear_cache = false)
-	{
-		static $cache;
-		if ($clear_cache) 
-		{
-			$cache = null;
-			return;
-		}
-		if (!$cache)
-		{
-			$cache = array();
-		}
-
-		if ($iri === null)
-		{
-			return true;
-		}
-		elseif (isset($cache[$iri]))
-		{
-			list($this->scheme,
-				 $this->iuserinfo,
-				 $this->ihost,
-				 $this->port,
-				 $this->ipath,
-				 $this->iquery,
-				 $this->ifragment,
-				 $return) = $cache[$iri];
-			return $return;
-		}
-		else
-		{
-			$parsed = $this->parse_iri((string) $iri);
-			if (!$parsed)
-			{
-				return false;
-			}
-
-			$return = $this->set_scheme($parsed['scheme'])
-				&& $this->set_authority($parsed['authority'])
-				&& $this->set_path($parsed['path'])
-				&& $this->set_query($parsed['query'])
-				&& $this->set_fragment($parsed['fragment']);
-
-			$cache[$iri] = array($this->scheme,
-								 $this->iuserinfo,
-								 $this->ihost,
-								 $this->port,
-								 $this->ipath,
-								 $this->iquery,
-								 $this->ifragment,
-								 $return);
-			return $return;
-		}
-	}
-
-	/**
-	 * Set the scheme. Returns true on success, false on failure (if there are
-	 * any invalid characters).
-	 *
-	 * @param string $scheme
-	 * @return bool
-	 */
-	public function set_scheme($scheme)
-	{
-		if ($scheme === null)
-		{
-			$this->scheme = null;
-		}
-		elseif (!preg_match('/^[A-Za-z][0-9A-Za-z+\-.]*$/', $scheme))
-		{
-			$this->scheme = null;
-			return false;
-		}
-		else
-		{
-			$this->scheme = strtolower($scheme);
-		}
-		return true;
-	}
-
-	/**
-	 * Set the authority. Returns true on success, false on failure (if there are
-	 * any invalid characters).
-	 *
-	 * @param string $authority
-	 * @return bool
-	 */
-	public function set_authority($authority, $clear_cache = false)
-	{
-		static $cache;
-		if ($clear_cache)
-		{
-			$cache = null;
-			return;
-		}
-		if (!$cache)
-			$cache = array();
-
-		if ($authority === null)
-		{
-			$this->iuserinfo = null;
-			$this->ihost = null;
-			$this->port = null;
-			return true;
-		}
-		elseif (isset($cache[$authority]))
-		{
-			list($this->iuserinfo,
-				 $this->ihost,
-				 $this->port,
-				 $return) = $cache[$authority];
-
-			return $return;
-		}
-		else
-		{
-			$remaining = $authority;
-			if (($iuserinfo_end = strrpos($remaining, '@')) !== false)
-			{
-				$iuserinfo = substr($remaining, 0, $iuserinfo_end);
-				$remaining = substr($remaining, $iuserinfo_end + 1);
-			}
-			else
-			{
-				$iuserinfo = null;
-			}
-			if (($port_start = strpos($remaining, ':', strpos($remaining, ']'))) !== false)
-			{
-				if (($port = substr($remaining, $port_start + 1)) === false)
-				{
-					$port = null;
-				}
-				$remaining = substr($remaining, 0, $port_start);
-			}
-			else
-			{
-				$port = null;
-			}
-
-			$return = $this->set_userinfo($iuserinfo) &&
-					  $this->set_host($remaining) &&
-					  $this->set_port($port);
-
-			$cache[$authority] = array($this->iuserinfo,
-									   $this->ihost,
-									   $this->port,
-									   $return);
-
-			return $return;
-		}
-	}
-
-	/**
-	 * Set the iuserinfo.
-	 *
-	 * @param string $iuserinfo
-	 * @return bool
-	 */
-	public function set_userinfo($iuserinfo)
-	{
-		if ($iuserinfo === null)
-		{
-			$this->iuserinfo = null;
-		}
-		else
-		{
-			$this->iuserinfo = $this->replace_invalid_with_pct_encoding($iuserinfo, '!$&\'()*+,;=:');
-			$this->scheme_normalization();
-		}
-
-		return true;
-	}
-
-	/**
-	 * Set the ihost. Returns true on success, false on failure (if there are
-	 * any invalid characters).
-	 *
-	 * @param string $ihost
-	 * @return bool
-	 */
-	public function set_host($ihost)
-	{
-		if ($ihost === null)
-		{
-			$this->ihost = null;
-			return true;
-		}
-		elseif (substr($ihost, 0, 1) === '[' && substr($ihost, -1) === ']')
-		{
-			if (SimplePie_Net_IPv6::check_ipv6(substr($ihost, 1, -1)))
-			{
-				$this->ihost = '[' . SimplePie_Net_IPv6::compress(substr($ihost, 1, -1)) . ']';
-			}
-			else
-			{
-				$this->ihost = null;
-				return false;
-			}
-		}
-		else
-		{
-			$ihost = $this->replace_invalid_with_pct_encoding($ihost, '!$&\'()*+,;=');
-
-			// Lowercase, but ignore pct-encoded sections (as they should
-			// remain uppercase). This must be done after the previous step
-			// as that can add unescaped characters.
-			$position = 0;
-			$strlen = strlen($ihost);
-			while (($position += strcspn($ihost, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ%', $position)) < $strlen)
-			{
-				if ($ihost[$position] === '%')
-				{
-					$position += 3;
-				}
-				else
-				{
-					$ihost[$position] = strtolower($ihost[$position]);
-					$position++;
-				}
-			}
-
-			$this->ihost = $ihost;
-		}
-
-		$this->scheme_normalization();
-
-		return true;
-	}
-
-	/**
-	 * Set the port. Returns true on success, false on failure (if there are
-	 * any invalid characters).
-	 *
-	 * @param string $port
-	 * @return bool
-	 */
-	public function set_port($port)
-	{
-		if ($port === null)
-		{
-			$this->port = null;
-			return true;
-		}
-		elseif (strspn($port, '0123456789') === strlen($port))
-		{
-			$this->port = (int) $port;
-			$this->scheme_normalization();
-			return true;
-		}
-		else
-		{
-			$this->port = null;
-			return false;
-		}
-	}
-
-	/**
-	 * Set the ipath.
-	 *
-	 * @param string $ipath
-	 * @return bool
-	 */
-	public function set_path($ipath, $clear_cache = false)
-	{
-		static $cache;
-		if ($clear_cache) 
-		{
-			$cache = null;
-			return;
-		}
-		if (!$cache)
-		{
-			$cache = array();
-		}
-
-		$ipath = (string) $ipath;
-
-		if (isset($cache[$ipath]))
-		{
-			$this->ipath = $cache[$ipath][(int) ($this->scheme !== null)];
-		}
-		else
-		{
-			$valid = $this->replace_invalid_with_pct_encoding($ipath, '!$&\'()*+,;=@:/');
-			$removed = $this->remove_dot_segments($valid);
-
-			$cache[$ipath] = array($valid, $removed);
-			$this->ipath =  ($this->scheme !== null) ? $removed : $valid;
-		}
-
-		$this->scheme_normalization();
-		return true;
-	}
-
-	/**
-	 * Set the iquery.
-	 *
-	 * @param string $iquery
-	 * @return bool
-	 */
-	public function set_query($iquery)
-	{
-		if ($iquery === null)
-		{
-			$this->iquery = null;
-		}
-		else
-		{
-			$this->iquery = $this->replace_invalid_with_pct_encoding($iquery, '!$&\'()*+,;=:@/?', true);
-			$this->scheme_normalization();
-		}
-		return true;
-	}
-
-	/**
-	 * Set the ifragment.
-	 *
-	 * @param string $ifragment
-	 * @return bool
-	 */
-	public function set_fragment($ifragment)
-	{
-		if ($ifragment === null)
-		{
-			$this->ifragment = null;
-		}
-		else
-		{
-			$this->ifragment = $this->replace_invalid_with_pct_encoding($ifragment, '!$&\'()*+,;=:@/?');
-			$this->scheme_normalization();
-		}
-		return true;
-	}
-
-	/**
-	 * Convert an IRI to a URI (or parts thereof)
-	 *
-	 * @return string
-	 */
-	public function to_uri($string)
-	{
-		static $non_ascii;
-		if (!$non_ascii)
-		{
-			$non_ascii = implode('', range("\x80", "\xFF"));
-		}
-
-		$position = 0;
-		$strlen = strlen($string);
-		while (($position += strcspn($string, $non_ascii, $position)) < $strlen)
-		{
-			$string = substr_replace($string, sprintf('%%%02X', ord($string[$position])), $position, 1);
-			$position += 3;
-			$strlen += 2;
-		}
-
-		return $string;
-	}
-
-	/**
-	 * Get the complete IRI
-	 *
-	 * @return string
-	 */
-	public function get_iri()
-	{
-		if (!$this->is_valid())
-		{
-			return false;
-		}
-
-		$iri = '';
-		if ($this->scheme !== null)
-		{
-			$iri .= $this->scheme . ':';
-		}
-		if (($iauthority = $this->get_iauthority()) !== null)
-		{
-			$iri .= '//' . $iauthority;
-		}
-		if ($this->ipath !== '')
-		{
-			$iri .= $this->ipath;
-		}
-		elseif (!empty($this->normalization[$this->scheme]['ipath']) && $iauthority !== null && $iauthority !== '')
-		{
-			$iri .= $this->normalization[$this->scheme]['ipath'];
-		}
-		if ($this->iquery !== null)
-		{
-			$iri .= '?' . $this->iquery;
-		}
-		if ($this->ifragment !== null)
-		{
-			$iri .= '#' . $this->ifragment;
-		}
-
-		return $iri;
-	}
-
-	/**
-	 * Get the complete URI
-	 *
-	 * @return string
-	 */
-	public function get_uri()
-	{
-		return $this->to_uri($this->get_iri());
-	}
-
-	/**
-	 * Get the complete iauthority
-	 *
-	 * @return string
-	 */
-	protected function get_iauthority()
-	{
-		if ($this->iuserinfo !== null || $this->ihost !== null || $this->port !== null)
-		{
-			$iauthority = '';
-			if ($this->iuserinfo !== null)
-			{
-				$iauthority .= $this->iuserinfo . '@';
-			}
-			if ($this->ihost !== null)
-			{
-				$iauthority .= $this->ihost;
-			}
-			if ($this->port !== null)
-			{
-				$iauthority .= ':' . $this->port;
-			}
-			return $iauthority;
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	/**
-	 * Get the complete authority
-	 *
-	 * @return string
-	 */
-	protected function get_authority()
-	{
-		$iauthority = $this->get_iauthority();
-		if (is_string($iauthority))
-			return $this->to_uri($iauthority);
-		else
-			return $iauthority;
-	}
-}
diff --git a/wiki/vendor/simplepie/simplepie/library/SimplePie/Item.php b/wiki/vendor/simplepie/simplepie/library/SimplePie/Item.php
deleted file mode 100644
index 2083e7a..0000000
--- a/wiki/vendor/simplepie/simplepie/library/SimplePie/Item.php
+++ /dev/null
@@ -1,3009 +0,0 @@
-<?php
-/**
- * SimplePie
- *
- * A PHP-Based RSS and Atom Feed Framework.
- * Takes the hard work out of managing a complete RSS/Atom solution.
- *
- * Copyright (c) 2004-2016, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification, are
- * permitted provided that the following conditions are met:
- *
- * 	* Redistributions of source code must retain the above copyright notice, this list of
- * 	  conditions and the following disclaimer.
- *
- * 	* Redistributions in binary form must reproduce the above copyright notice, this list
- * 	  of conditions and the following disclaimer in the documentation and/or other materials
- * 	  provided with the distribution.
- *
- * 	* Neither the name of the SimplePie Team nor the names of its contributors may be used
- * 	  to endorse or promote products derived from this software without specific prior
- * 	  written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
- * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS
- * AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @package SimplePie
- * @copyright 2004-2016 Ryan Parman, Geoffrey Sneddon, Ryan McCue
- * @author Ryan Parman
- * @author Geoffrey Sneddon
- * @author Ryan McCue
- * @link http://simplepie.org/ SimplePie
- * @license http://www.opensource.org/licenses/bsd-license.php BSD License
- */
-
-
-/**
- * Manages all item-related data
- *
- * Used by {@see SimplePie::get_item()} and {@see SimplePie::get_items()}
- *
- * This class can be overloaded with {@see SimplePie::set_item_class()}
- *
- * @package SimplePie
- * @subpackage API
- */
-class SimplePie_Item
-{
-	/**
-	 * Parent feed
-	 *
-	 * @access private
-	 * @var SimplePie
-	 */
-	var $feed;
-
-	/**
-	 * Raw data
-	 *
-	 * @access private
-	 * @var array
-	 */
-	var $data = array();
-
-	/**
-	 * Registry object
-	 *
-	 * @see set_registry
-	 * @var SimplePie_Registry
-	 */
-	protected $registry;
-
-	/**
-	 * Create a new item object
-	 *
-	 * This is usually used by {@see SimplePie::get_items} and
-	 * {@see SimplePie::get_item}. Avoid creating this manually.
-	 *
-	 * @param SimplePie $feed Parent feed
-	 * @param array $data Raw data
-	 */
-	public function __construct($feed, $data)
-	{
-		$this->feed = $feed;
-		$this->data = $data;
-	}
-
-	/**
-	 * Set the registry handler
-	 *
-	 * This is usually used by {@see SimplePie_Registry::create}
-	 *
-	 * @since 1.3
-	 * @param SimplePie_Registry $registry
-	 */
-	public function set_registry(SimplePie_Registry $registry)
-	{
-		$this->registry = $registry;
-	}
-
-	/**
-	 * Get a string representation of the item
-	 *
-	 * @return string
-	 */
-	public function __toString()
-	{
-		return md5(serialize($this->data));
-	}
-
-	/**
-	 * Remove items that link back to this before destroying this object
-	 */
-	public function __destruct()
-	{
-		if ((version_compare(PHP_VERSION, '5.3', '<') || !gc_enabled()) && !ini_get('zend.ze1_compatibility_mode'))
-		{
-			unset($this->feed);
-		}
-	}
-
-	/**
-	 * Get data for an item-level element
-	 *
-	 * This method allows you to get access to ANY element/attribute that is a
-	 * sub-element of the item/entry tag.
-	 *
-	 * See {@see SimplePie::get_feed_tags()} for a description of the return value
-	 *
-	 * @since 1.0
-	 * @see http://simplepie.org/wiki/faq/supported_xml_namespaces
-	 * @param string $namespace The URL of the XML namespace of the elements you're trying to access
-	 * @param string $tag Tag name
-	 * @return array
-	 */
-	public function get_item_tags($namespace, $tag)
-	{
-		if (isset($this->data['child'][$namespace][$tag]))
-		{
-			return $this->data['child'][$namespace][$tag];
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	/**
-	 * Get the base URL value from the parent feed
-	 *
-	 * Uses `<xml:base>`
-	 *
-	 * @param array $element
-	 * @return string
-	 */
-	public function get_base($element = array())
-	{
-		return $this->feed->get_base($element);
-	}
-
-	/**
-	 * Sanitize feed data
-	 *
-	 * @access private
-	 * @see SimplePie::sanitize()
-	 * @param string $data Data to sanitize
-	 * @param int $type One of the SIMPLEPIE_CONSTRUCT_* constants
-	 * @param string $base Base URL to resolve URLs against
-	 * @return string Sanitized data
-	 */
-	public function sanitize($data, $type, $base = '')
-	{
-		return $this->feed->sanitize($data, $type, $base);
-	}
-
-	/**
-	 * Get the parent feed
-	 *
-	 * Note: this may not work as you think for multifeeds!
-	 *
-	 * @link http://simplepie.org/faq/typical_multifeed_gotchas#missing_data_from_feed
-	 * @since 1.0
-	 * @return SimplePie
-	 */
-	public function get_feed()
-	{
-		return $this->feed;
-	}
-
-	/**
-	 * Get the unique identifier for the item
-	 *
-	 * This is usually used when writing code to check for new items in a feed.
-	 *
-	 * Uses `<atom:id>`, `<guid>`, `<dc:identifier>` or the `about` attribute
-	 * for RDF. If none of these are supplied (or `$hash` is true), creates an
-	 * MD5 hash based on the permalink, title and content.
-	 *
-	 * @since Beta 2
-	 * @param boolean $hash Should we force using a hash instead of the supplied ID?
-	 * @param string|false $fn User-supplied function to generate an hash
-	 * @return string|null
-	 */
-	public function get_id($hash = false, $fn = 'md5')
-	{
-		if (!$hash)
-		{
-			if ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'id'))
-			{
-				return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-			}
-			elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'id'))
-			{
-				return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-			}
-			elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'guid'))
-			{
-				return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-			}
-			elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_11, 'identifier'))
-			{
-				return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-			}
-			elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_10, 'identifier'))
-			{
-				return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-			}
-			elseif (isset($this->data['attribs'][SIMPLEPIE_NAMESPACE_RDF]['about']))
-			{
-				return $this->sanitize($this->data['attribs'][SIMPLEPIE_NAMESPACE_RDF]['about'], SIMPLEPIE_CONSTRUCT_TEXT);
-			}
-		}
-		if ($fn === false)
-		{
-			return null;
-		}
-		elseif (!is_callable($fn))
-		{
-			trigger_error('User-supplied function $fn must be callable', E_USER_WARNING);
-			$fn = 'md5';
-		}
-		return call_user_func($fn,
-		       $this->get_permalink().$this->get_title().$this->get_content());
-	}
-
-	/**
-	 * Get the title of the item
-	 *
-	 * Uses `<atom:title>`, `<title>` or `<dc:title>`
-	 *
-	 * @since Beta 2 (previously called `get_item_title` since 0.8)
-	 * @return string|null
-	 */
-	public function get_title()
-	{
-		if (!isset($this->data['title']))
-		{
-			if ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'title'))
-			{
-				$this->data['title'] = $this->sanitize($return[0]['data'], $this->registry->call('Misc', 'atom_10_construct_type', array($return[0]['attribs'])), $this->get_base($return[0]));
-			}
-			elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'title'))
-			{
-				$this->data['title'] = $this->sanitize($return[0]['data'], $this->registry->call('Misc', 'atom_03_construct_type', array($return[0]['attribs'])), $this->get_base($return[0]));
-			}
-			elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_10, 'title'))
-			{
-				$this->data['title'] = $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_MAYBE_HTML, $this->get_base($return[0]));
-			}
-			elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_090, 'title'))
-			{
-				$this->data['title'] = $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_MAYBE_HTML, $this->get_base($return[0]));
-			}
-			elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'title'))
-			{
-				$this->data['title'] = $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_MAYBE_HTML, $this->get_base($return[0]));
-			}
-			elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_11, 'title'))
-			{
-				$this->data['title'] = $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-			}
-			elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_10, 'title'))
-			{
-				$this->data['title'] = $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-			}
-			else
-			{
-				$this->data['title'] = null;
-			}
-		}
-		return $this->data['title'];
-	}
-
-	/**
-	 * Get the content for the item
-	 *
-	 * Prefers summaries over full content , but will return full content if a
-	 * summary does not exist.
-	 *
-	 * To prefer full content instead, use {@see get_content}
-	 *
-	 * Uses `<atom:summary>`, `<description>`, `<dc:description>` or
-	 * `<itunes:subtitle>`
-	 *
-	 * @since 0.8
-	 * @param boolean $description_only Should we avoid falling back to the content?
-	 * @return string|null
-	 */
-	public function get_description($description_only = false)
-	{
-		if (($tags = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'summary')) &&
-		    ($return = $this->sanitize($tags[0]['data'], $this->registry->call('Misc', 'atom_10_construct_type', array($tags[0]['attribs'])), $this->get_base($tags[0]))))
-		{
-			return $return;
-		}
-		elseif (($tags = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'summary')) &&
-		        ($return = $this->sanitize($tags[0]['data'], $this->registry->call('Misc', 'atom_03_construct_type', array($tags[0]['attribs'])), $this->get_base($tags[0]))))
-		{
-			return $return;
-		}
-		elseif (($tags = $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_10, 'description')) &&
-		        ($return = $this->sanitize($tags[0]['data'], SIMPLEPIE_CONSTRUCT_MAYBE_HTML, $this->get_base($tags[0]))))
-		{
-			return $return;
-		}
-		elseif (($tags = $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'description')) &&
-		        ($return = $this->sanitize($tags[0]['data'], SIMPLEPIE_CONSTRUCT_HTML, $this->get_base($tags[0]))))
-		{
-			return $return;
-		}
-		elseif (($tags = $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_11, 'description')) &&
-		        ($return = $this->sanitize($tags[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT)))
-		{
-			return $return;
-		}
-		elseif (($tags = $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_10, 'description')) &&
-		        ($return = $this->sanitize($tags[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT)))
-		{
-			return $return;
-		}
-		elseif (($tags = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'summary')) &&
-		        ($return = $this->sanitize($tags[0]['data'], SIMPLEPIE_CONSTRUCT_HTML, $this->get_base($tags[0]))))
-		{
-			return $return;
-		}
-		elseif (($tags = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'subtitle')) &&
-		        ($return = $this->sanitize($tags[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT)))
-		{
-			return $return;
-		}
-		elseif (($tags = $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_090, 'description')) &&
-		        ($return = $this->sanitize($tags[0]['data'], SIMPLEPIE_CONSTRUCT_HTML)))
-		{
-			return $return;
-		}
-
-		elseif (!$description_only)
-		{
-			return $this->get_content(true);
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	/**
-	 * Get the content for the item
-	 *
-	 * Prefers full content over summaries, but will return a summary if full
-	 * content does not exist.
-	 *
-	 * To prefer summaries instead, use {@see get_description}
-	 *
-	 * Uses `<atom:content>` or `<content:encoded>` (RSS 1.0 Content Module)
-	 *
-	 * @since 1.0
-	 * @param boolean $content_only Should we avoid falling back to the description?
-	 * @return string|null
-	 */
-	public function get_content($content_only = false)
-	{
-		if (($tags = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'content')) &&
-		    ($return = $this->sanitize($tags[0]['data'], $this->registry->call('Misc', 'atom_10_content_construct_type', array($tags[0]['attribs'])), $this->get_base($tags[0]))))
-		{
-			return $return;
-		}
-		elseif (($tags = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'content')) &&
-		        ($return = $this->sanitize($tags[0]['data'], $this->registry->call('Misc', 'atom_03_construct_type', array($tags[0]['attribs'])), $this->get_base($tags[0]))))
-		{
-			return $return;
-		}
-		elseif (($tags = $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_10_MODULES_CONTENT, 'encoded')) &&
-		        ($return = $this->sanitize($tags[0]['data'], SIMPLEPIE_CONSTRUCT_HTML, $this->get_base($tags[0]))))
-		{
-			return $return;
-		}
-		elseif (!$content_only)
-		{
-			return $this->get_description(true);
-		}
-		else
-		{
-			return null;
-		}
-	}
-	
-	/**
-	 * Get the media:thumbnail of the item
-	 *
-	 * Uses `<media:thumbnail>`
-	 *
-	 * 
-	 * @return array|null
-	 */
-	public function get_thumbnail()
-	{
-		if (!isset($this->data['thumbnail']))
-		{
-			if ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'thumbnail'))
-			{
-				$this->data['thumbnail'] = $return[0]['attribs'][''];
-			}
-			else
-			{
-				$this->data['thumbnail'] = null;
-			}
-		}
-		return $this->data['thumbnail'];
-	}	
-
-	/**
-	 * Get a category for the item
-	 *
-	 * @since Beta 3 (previously called `get_categories()` since Beta 2)
-	 * @param int $key The category that you want to return.  Remember that arrays begin with 0, not 1
-	 * @return SimplePie_Category|null
-	 */
-	public function get_category($key = 0)
-	{
-		$categories = $this->get_categories();
-		if (isset($categories[$key]))
-		{
-			return $categories[$key];
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	/**
-	 * Get all categories for the item
-	 *
-	 * Uses `<atom:category>`, `<category>` or `<dc:subject>`
-	 *
-	 * @since Beta 3
-	 * @return SimplePie_Category[]|null List of {@see SimplePie_Category} objects
-	 */
-	public function get_categories()
-	{
-		$categories = array();
-
-		$type = 'category';
-		foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, $type) as $category)
-		{
-			$term = null;
-			$scheme = null;
-			$label = null;
-			if (isset($category['attribs']['']['term']))
-			{
-				$term = $this->sanitize($category['attribs']['']['term'], SIMPLEPIE_CONSTRUCT_TEXT);
-			}
-			if (isset($category['attribs']['']['scheme']))
-			{
-				$scheme = $this->sanitize($category['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT);
-			}
-			if (isset($category['attribs']['']['label']))
-			{
-				$label = $this->sanitize($category['attribs']['']['label'], SIMPLEPIE_CONSTRUCT_TEXT);
-			}
-			$categories[] = $this->registry->create('Category', array($term, $scheme, $label, $type));
-		}
-		foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_20, $type) as $category)
-		{
-			// This is really the label, but keep this as the term also for BC.
-			// Label will also work on retrieving because that falls back to term.
-			$term = $this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-			if (isset($category['attribs']['']['domain']))
-			{
-				$scheme = $this->sanitize($category['attribs']['']['domain'], SIMPLEPIE_CONSTRUCT_TEXT);
-			}
-			else
-			{
-				$scheme = null;
-			}
-			$categories[] = $this->registry->create('Category', array($term, $scheme, null, $type));
-		}
-
-		$type = 'subject';
-		foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_11, $type) as $category)
-		{
-			$categories[] = $this->registry->create('Category', array($this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null, $type));
-		}
-		foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_10, $type) as $category)
-		{
-			$categories[] = $this->registry->create('Category', array($this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null, $type));
-		}
-
-		if (!empty($categories))
-		{
-			return array_unique($categories);
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	/**
-	 * Get an author for the item
-	 *
-	 * @since Beta 2
-	 * @param int $key The author that you want to return.  Remember that arrays begin with 0, not 1
-	 * @return SimplePie_Author|null
-	 */
-	public function get_author($key = 0)
-	{
-		$authors = $this->get_authors();
-		if (isset($authors[$key]))
-		{
-			return $authors[$key];
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	/**
-	 * Get a contributor for the item
-	 *
-	 * @since 1.1
-	 * @param int $key The contrbutor that you want to return.  Remember that arrays begin with 0, not 1
-	 * @return SimplePie_Author|null
-	 */
-	public function get_contributor($key = 0)
-	{
-		$contributors = $this->get_contributors();
-		if (isset($contributors[$key]))
-		{
-			return $contributors[$key];
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	/**
-	 * Get all contributors for the item
-	 *
-	 * Uses `<atom:contributor>`
-	 *
-	 * @since 1.1
-	 * @return array|null List of {@see SimplePie_Author} objects
-	 */
-	public function get_contributors()
-	{
-		$contributors = array();
-		foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'contributor') as $contributor)
-		{
-			$name = null;
-			$uri = null;
-			$email = null;
-			if (isset($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['name'][0]['data']))
-			{
-				$name = $this->sanitize($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['name'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-			}
-			if (isset($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0]['data']))
-			{
-				$uri = $this->sanitize($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0]));
-			}
-			if (isset($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['email'][0]['data']))
-			{
-				$email = $this->sanitize($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['email'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-			}
-			if ($name !== null || $email !== null || $uri !== null)
-			{
-				$contributors[] = $this->registry->create('Author', array($name, $uri, $email));
-			}
-		}
-		foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'contributor') as $contributor)
-		{
-			$name = null;
-			$url = null;
-			$email = null;
-			if (isset($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['name'][0]['data']))
-			{
-				$name = $this->sanitize($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['name'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-			}
-			if (isset($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['url'][0]['data']))
-			{
-				$url = $this->sanitize($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['url'][0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['url'][0]));
-			}
-			if (isset($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['email'][0]['data']))
-			{
-				$email = $this->sanitize($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['email'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-			}
-			if ($name !== null || $email !== null || $url !== null)
-			{
-				$contributors[] = $this->registry->create('Author', array($name, $url, $email));
-			}
-		}
-
-		if (!empty($contributors))
-		{
-			return array_unique($contributors);
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	/**
-	 * Get all authors for the item
-	 *
-	 * Uses `<atom:author>`, `<author>`, `<dc:creator>` or `<itunes:author>`
-	 *
-	 * @since Beta 2
-	 * @return array|null List of {@see SimplePie_Author} objects
-	 */
-	public function get_authors()
-	{
-		$authors = array();
-		foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'author') as $author)
-		{
-			$name = null;
-			$uri = null;
-			$email = null;
-			if (isset($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['name'][0]['data']))
-			{
-				$name = $this->sanitize($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['name'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-			}
-			if (isset($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0]['data']))
-			{
-				$uri = $this->sanitize($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0]));
-			}
-			if (isset($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['email'][0]['data']))
-			{
-				$email = $this->sanitize($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['email'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-			}
-			if ($name !== null || $email !== null || $uri !== null)
-			{
-				$authors[] = $this->registry->create('Author', array($name, $uri, $email));
-			}
-		}
-		if ($author = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'author'))
-		{
-			$name = null;
-			$url = null;
-			$email = null;
-			if (isset($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['name'][0]['data']))
-			{
-				$name = $this->sanitize($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['name'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-			}
-			if (isset($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['url'][0]['data']))
-			{
-				$url = $this->sanitize($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['url'][0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['url'][0]));
-			}
-			if (isset($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['email'][0]['data']))
-			{
-				$email = $this->sanitize($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['email'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-			}
-			if ($name !== null || $email !== null || $url !== null)
-			{
-				$authors[] = $this->registry->create('Author', array($name, $url, $email));
-			}
-		}
-		if ($author = $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'author'))
-		{
-			$authors[] = $this->registry->create('Author', array(null, null, $this->sanitize($author[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT)));
-		}
-		foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_11, 'creator') as $author)
-		{
-			$authors[] = $this->registry->create('Author', array($this->sanitize($author['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null));
-		}
-		foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_10, 'creator') as $author)
-		{
-			$authors[] = $this->registry->create('Author', array($this->sanitize($author['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null));
-		}
-		foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'author') as $author)
-		{
-			$authors[] = $this->registry->create('Author', array($this->sanitize($author['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null));
-		}
-
-		if (!empty($authors))
-		{
-			return array_unique($authors);
-		}
-		elseif (($source = $this->get_source()) && ($authors = $source->get_authors()))
-		{
-			return $authors;
-		}
-		elseif ($authors = $this->feed->get_authors())
-		{
-			return $authors;
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	/**
-	 * Get the copyright info for the item
-	 *
-	 * Uses `<atom:rights>` or `<dc:rights>`
-	 *
-	 * @since 1.1
-	 * @return string
-	 */
-	public function get_copyright()
-	{
-		if ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'rights'))
-		{
-			return $this->sanitize($return[0]['data'], $this->registry->call('Misc', 'atom_10_construct_type', array($return[0]['attribs'])), $this->get_base($return[0]));
-		}
-		elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_11, 'rights'))
-		{
-			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-		}
-		elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_10, 'rights'))
-		{
-			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	/**
-	 * Get the posting date/time for the item
-	 *
-	 * Uses `<atom:published>`, `<atom:updated>`, `<atom:issued>`,
-	 * `<atom:modified>`, `<pubDate>` or `<dc:date>`
-	 *
-	 * Note: obeys PHP's timezone setting. To get a UTC date/time, use
-	 * {@see get_gmdate}
-	 *
-	 * @since Beta 2 (previously called `get_item_date` since 0.8)
-	 *
-	 * @param string $date_format Supports any PHP date format from {@see http://php.net/date} (empty for the raw data)
-	 * @return int|string|null
-	 */
-	public function get_date($date_format = 'j F Y, g:i a')
-	{
-		if (!isset($this->data['date']))
-		{
-			if ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'published'))
-			{
-				$this->data['date']['raw'] = $return[0]['data'];
-			}
-			elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'pubDate'))
-			{
-				$this->data['date']['raw'] = $return[0]['data'];
-			}
-			elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_11, 'date'))
-			{
-				$this->data['date']['raw'] = $return[0]['data'];
-			}
-			elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_10, 'date'))
-			{
-				$this->data['date']['raw'] = $return[0]['data'];
-			}
-			elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'updated'))
-			{
-				$this->data['date']['raw'] = $return[0]['data'];
-			}
-			elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'issued'))
-			{
-				$this->data['date']['raw'] = $return[0]['data'];
-			}
-			elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'created'))
-			{
-				$this->data['date']['raw'] = $return[0]['data'];
-			}
-			elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'modified'))
-			{
-				$this->data['date']['raw'] = $return[0]['data'];
-			}
-
-			if (!empty($this->data['date']['raw']))
-			{
-				$parser = $this->registry->call('Parse_Date', 'get');
-				$this->data['date']['parsed'] = $parser->parse($this->data['date']['raw']);
-			}
-			else
-			{
-				$this->data['date'] = null;
-			}
-		}
-		if ($this->data['date'])
-		{
-			$date_format = (string) $date_format;
-			switch ($date_format)
-			{
-				case '':
-					return $this->sanitize($this->data['date']['raw'], SIMPLEPIE_CONSTRUCT_TEXT);
-
-				case 'U':
-					return $this->data['date']['parsed'];
-
-				default:
-					return date($date_format, $this->data['date']['parsed']);
-			}
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	/**
-	 * Get the update date/time for the item
-	 *
-	 * Uses `<atom:updated>`
-	 *
-	 * Note: obeys PHP's timezone setting. To get a UTC date/time, use
-	 * {@see get_gmdate}
-	 *
-	 * @param string $date_format Supports any PHP date format from {@see http://php.net/date} (empty for the raw data)
-	 * @return int|string|null
-	 */
-	public function get_updated_date($date_format = 'j F Y, g:i a')
-	{
-		if (!isset($this->data['updated']))
-		{
-			if ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'updated'))
-			{
-				$this->data['updated']['raw'] = $return[0]['data'];
-			}
-
-			if (!empty($this->data['updated']['raw']))
-			{
-				$parser = $this->registry->call('Parse_Date', 'get');
-				$this->data['updated']['parsed'] = $parser->parse($this->data['updated']['raw']);
-			}
-			else
-			{
-				$this->data['updated'] = null;
-			}
-		}
-		if ($this->data['updated'])
-		{
-			$date_format = (string) $date_format;
-			switch ($date_format)
-			{
-				case '':
-					return $this->sanitize($this->data['updated']['raw'], SIMPLEPIE_CONSTRUCT_TEXT);
-
-				case 'U':
-					return $this->data['updated']['parsed'];
-
-				default:
-					return date($date_format, $this->data['updated']['parsed']);
-			}
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	/**
-	 * Get the localized posting date/time for the item
-	 *
-	 * Returns the date formatted in the localized language. To display in
-	 * languages other than the server's default, you need to change the locale
-	 * with {@link http://php.net/setlocale setlocale()}. The available
-	 * localizations depend on which ones are installed on your web server.
-	 *
-	 * @since 1.0
-	 *
-	 * @param string $date_format Supports any PHP date format from {@see http://php.net/strftime} (empty for the raw data)
-	 * @return int|string|null
-	 */
-	public function get_local_date($date_format = '%c')
-	{
-		if (!$date_format)
-		{
-			return $this->sanitize($this->get_date(''), SIMPLEPIE_CONSTRUCT_TEXT);
-		}
-		elseif (($date = $this->get_date('U')) !== null && $date !== false)
-		{
-			return strftime($date_format, $date);
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	/**
-	 * Get the posting date/time for the item (UTC time)
-	 *
-	 * @see get_date
-	 * @param string $date_format Supports any PHP date format from {@see http://php.net/date}
-	 * @return int|string|null
-	 */
-	public function get_gmdate($date_format = 'j F Y, g:i a')
-	{
-		$date = $this->get_date('U');
-		if ($date === null)
-		{
-			return null;
-		}
-
-		return gmdate($date_format, $date);
-	}
-
-	/**
-	 * Get the update date/time for the item (UTC time)
-	 *
-	 * @see get_updated_date
-	 * @param string $date_format Supports any PHP date format from {@see http://php.net/date}
-	 * @return int|string|null
-	 */
-	public function get_updated_gmdate($date_format = 'j F Y, g:i a')
-	{
-		$date = $this->get_updated_date('U');
-		if ($date === null)
-		{
-			return null;
-		}
-
-		return gmdate($date_format, $date);
-	}
-
-	/**
-	 * Get the permalink for the item
-	 *
-	 * Returns the first link available with a relationship of "alternate".
-	 * Identical to {@see get_link()} with key 0
-	 *
-	 * @see get_link
-	 * @since 0.8
-	 * @return string|null Permalink URL
-	 */
-	public function get_permalink()
-	{
-		$link = $this->get_link();
-		$enclosure = $this->get_enclosure(0);
-		if ($link !== null)
-		{
-			return $link;
-		}
-		elseif ($enclosure !== null)
-		{
-			return $enclosure->get_link();
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	/**
-	 * Get a single link for the item
-	 *
-	 * @since Beta 3
-	 * @param int $key The link that you want to return.  Remember that arrays begin with 0, not 1
-	 * @param string $rel The relationship of the link to return
-	 * @return string|null Link URL
-	 */
-	public function get_link($key = 0, $rel = 'alternate')
-	{
-		$links = $this->get_links($rel);
-		if ($links[$key] !== null)
-		{
-			return $links[$key];
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	/**
-	 * Get all links for the item
-	 *
-	 * Uses `<atom:link>`, `<link>` or `<guid>`
-	 *
-	 * @since Beta 2
-	 * @param string $rel The relationship of links to return
-	 * @return array|null Links found for the item (strings)
-	 */
-	public function get_links($rel = 'alternate')
-	{
-		if (!isset($this->data['links']))
-		{
-			$this->data['links'] = array();
-			foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'link') as $link)
-			{
-				if (isset($link['attribs']['']['href']))
-				{
-					$link_rel = (isset($link['attribs']['']['rel'])) ? $link['attribs']['']['rel'] : 'alternate';
-					$this->data['links'][$link_rel][] = $this->sanitize($link['attribs']['']['href'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($link));
-
-				}
-			}
-			foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'link') as $link)
-			{
-				if (isset($link['attribs']['']['href']))
-				{
-					$link_rel = (isset($link['attribs']['']['rel'])) ? $link['attribs']['']['rel'] : 'alternate';
-					$this->data['links'][$link_rel][] = $this->sanitize($link['attribs']['']['href'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($link));
-				}
-			}
-			if ($links = $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_10, 'link'))
-			{
-				$this->data['links']['alternate'][] = $this->sanitize($links[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($links[0]));
-			}
-			if ($links = $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_090, 'link'))
-			{
-				$this->data['links']['alternate'][] = $this->sanitize($links[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($links[0]));
-			}
-			if ($links = $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'link'))
-			{
-				$this->data['links']['alternate'][] = $this->sanitize($links[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($links[0]));
-			}
-			if ($links = $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'guid'))
-			{
-				if (!isset($links[0]['attribs']['']['isPermaLink']) || strtolower(trim($links[0]['attribs']['']['isPermaLink'])) === 'true')
-				{
-					$this->data['links']['alternate'][] = $this->sanitize($links[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($links[0]));
-				}
-			}
-
-			$keys = array_keys($this->data['links']);
-			foreach ($keys as $key)
-			{
-				if ($this->registry->call('Misc', 'is_isegment_nz_nc', array($key)))
-				{
-					if (isset($this->data['links'][SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY . $key]))
-					{
-						$this->data['links'][SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY . $key] = array_merge($this->data['links'][$key], $this->data['links'][SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY . $key]);
-						$this->data['links'][$key] =& $this->data['links'][SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY . $key];
-					}
-					else
-					{
-						$this->data['links'][SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY . $key] =& $this->data['links'][$key];
-					}
-				}
-				elseif (substr($key, 0, 41) === SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY)
-				{
-					$this->data['links'][substr($key, 41)] =& $this->data['links'][$key];
-				}
-				$this->data['links'][$key] = array_unique($this->data['links'][$key]);
-			}
-		}
-		if (isset($this->data['links'][$rel]))
-		{
-			return $this->data['links'][$rel];
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	/**
-	 * Get an enclosure from the item
-	 *
-	 * Supports the <enclosure> RSS tag, as well as Media RSS and iTunes RSS.
-	 *
-	 * @since Beta 2
-	 * @todo Add ability to prefer one type of content over another (in a media group).
-	 * @param int $key The enclosure that you want to return.  Remember that arrays begin with 0, not 1
-	 * @return SimplePie_Enclosure|null
-	 */
-	public function get_enclosure($key = 0, $prefer = null)
-	{
-		$enclosures = $this->get_enclosures();
-		if (isset($enclosures[$key]))
-		{
-			return $enclosures[$key];
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	/**
-	 * Get all available enclosures (podcasts, etc.)
-	 *
-	 * Supports the <enclosure> RSS tag, as well as Media RSS and iTunes RSS.
-	 *
-	 * At this point, we're pretty much assuming that all enclosures for an item
-	 * are the same content.  Anything else is too complicated to
-	 * properly support.
-	 *
-	 * @since Beta 2
-	 * @todo Add support for end-user defined sorting of enclosures by type/handler (so we can prefer the faster-loading FLV over MP4).
-	 * @todo If an element exists at a level, but its value is empty, we should fall back to the value from the parent (if it exists).
-	 * @return SimplePie_Enclosure[]|null List of SimplePie_Enclosure items
-	 */
-	public function get_enclosures()
-	{
-		if (!isset($this->data['enclosures']))
-		{
-			$this->data['enclosures'] = array();
-
-			// Elements
-			$captions_parent = null;
-			$categories_parent = null;
-			$copyrights_parent = null;
-			$credits_parent = null;
-			$description_parent = null;
-			$duration_parent = null;
-			$hashes_parent = null;
-			$keywords_parent = null;
-			$player_parent = null;
-			$ratings_parent = null;
-			$restrictions_parent = null;
-			$thumbnails_parent = null;
-			$title_parent = null;
-
-			// Let's do the channel and item-level ones first, and just re-use them if we need to.
-			$parent = $this->get_feed();
-
-			// CAPTIONS
-			if ($captions = $this->get_item_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'text'))
-			{
-				foreach ($captions as $caption)
-				{
-					$caption_type = null;
-					$caption_lang = null;
-					$caption_startTime = null;
-					$caption_endTime = null;
-					$caption_text = null;
-					if (isset($caption['attribs']['']['type']))
-					{
-						$caption_type = $this->sanitize($caption['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT);
-					}
-					if (isset($caption['attribs']['']['lang']))
-					{
-						$caption_lang = $this->sanitize($caption['attribs']['']['lang'], SIMPLEPIE_CONSTRUCT_TEXT);
-					}
-					if (isset($caption['attribs']['']['start']))
-					{
-						$caption_startTime = $this->sanitize($caption['attribs']['']['start'], SIMPLEPIE_CONSTRUCT_TEXT);
-					}
-					if (isset($caption['attribs']['']['end']))
-					{
-						$caption_endTime = $this->sanitize($caption['attribs']['']['end'], SIMPLEPIE_CONSTRUCT_TEXT);
-					}
-					if (isset($caption['data']))
-					{
-						$caption_text = $this->sanitize($caption['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-					}
-					$captions_parent[] = $this->registry->create('Caption', array($caption_type, $caption_lang, $caption_startTime, $caption_endTime, $caption_text));
-				}
-			}
-			elseif ($captions = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'text'))
-			{
-				foreach ($captions as $caption)
-				{
-					$caption_type = null;
-					$caption_lang = null;
-					$caption_startTime = null;
-					$caption_endTime = null;
-					$caption_text = null;
-					if (isset($caption['attribs']['']['type']))
-					{
-						$caption_type = $this->sanitize($caption['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT);
-					}
-					if (isset($caption['attribs']['']['lang']))
-					{
-						$caption_lang = $this->sanitize($caption['attribs']['']['lang'], SIMPLEPIE_CONSTRUCT_TEXT);
-					}
-					if (isset($caption['attribs']['']['start']))
-					{
-						$caption_startTime = $this->sanitize($caption['attribs']['']['start'], SIMPLEPIE_CONSTRUCT_TEXT);
-					}
-					if (isset($caption['attribs']['']['end']))
-					{
-						$caption_endTime = $this->sanitize($caption['attribs']['']['end'], SIMPLEPIE_CONSTRUCT_TEXT);
-					}
-					if (isset($caption['data']))
-					{
-						$caption_text = $this->sanitize($caption['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-					}
-					$captions_parent[] = $this->registry->create('Caption', array($caption_type, $caption_lang, $caption_startTime, $caption_endTime, $caption_text));
-				}
-			}
-			if (is_array($captions_parent))
-			{
-				$captions_parent = array_values(array_unique($captions_parent));
-			}
-
-			// CATEGORIES
-			foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'category') as $category)
-			{
-				$term = null;
-				$scheme = null;
-				$label = null;
-				if (isset($category['data']))
-				{
-					$term = $this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-				}
-				if (isset($category['attribs']['']['scheme']))
-				{
-					$scheme = $this->sanitize($category['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT);
-				}
-				else
-				{
-					$scheme = 'http://search.yahoo.com/mrss/category_schema';
-				}
-				if (isset($category['attribs']['']['label']))
-				{
-					$label = $this->sanitize($category['attribs']['']['label'], SIMPLEPIE_CONSTRUCT_TEXT);
-				}
-				$categories_parent[] = $this->registry->create('Category', array($term, $scheme, $label));
-			}
-			foreach ((array) $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'category') as $category)
-			{
-				$term = null;
-				$scheme = null;
-				$label = null;
-				if (isset($category['data']))
-				{
-					$term = $this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-				}
-				if (isset($category['attribs']['']['scheme']))
-				{
-					$scheme = $this->sanitize($category['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT);
-				}
-				else
-				{
-					$scheme = 'http://search.yahoo.com/mrss/category_schema';
-				}
-				if (isset($category['attribs']['']['label']))
-				{
-					$label = $this->sanitize($category['attribs']['']['label'], SIMPLEPIE_CONSTRUCT_TEXT);
-				}
-				$categories_parent[] = $this->registry->create('Category', array($term, $scheme, $label));
-			}
-			foreach ((array) $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'category') as $category)
-			{
-				$term = null;
-				$scheme = 'http://www.itunes.com/dtds/podcast-1.0.dtd';
-				$label = null;
-				if (isset($category['attribs']['']['text']))
-				{
-					$label = $this->sanitize($category['attribs']['']['text'], SIMPLEPIE_CONSTRUCT_TEXT);
-				}
-				$categories_parent[] = $this->registry->create('Category', array($term, $scheme, $label));
-
-				if (isset($category['child'][SIMPLEPIE_NAMESPACE_ITUNES]['category']))
-				{
-					foreach ((array) $category['child'][SIMPLEPIE_NAMESPACE_ITUNES]['category'] as $subcategory)
-					{
-						if (isset($subcategory['attribs']['']['text']))
-						{
-							$label = $this->sanitize($subcategory['attribs']['']['text'], SIMPLEPIE_CONSTRUCT_TEXT);
-						}
-						$categories_parent[] = $this->registry->create('Category', array($term, $scheme, $label));
-					}
-				}
-			}
-			if (is_array($categories_parent))
-			{
-				$categories_parent = array_values(array_unique($categories_parent));
-			}
-
-			// COPYRIGHT
-			if ($copyright = $this->get_item_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'copyright'))
-			{
-				$copyright_url = null;
-				$copyright_label = null;
-				if (isset($copyright[0]['attribs']['']['url']))
-				{
-					$copyright_url = $this->sanitize($copyright[0]['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_TEXT);
-				}
-				if (isset($copyright[0]['data']))
-				{
-					$copyright_label = $this->sanitize($copyright[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-				}
-				$copyrights_parent = $this->registry->create('Copyright', array($copyright_url, $copyright_label));
-			}
-			elseif ($copyright = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'copyright'))
-			{
-				$copyright_url = null;
-				$copyright_label = null;
-				if (isset($copyright[0]['attribs']['']['url']))
-				{
-					$copyright_url = $this->sanitize($copyright[0]['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_TEXT);
-				}
-				if (isset($copyright[0]['data']))
-				{
-					$copyright_label = $this->sanitize($copyright[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-				}
-				$copyrights_parent = $this->registry->create('Copyright', array($copyright_url, $copyright_label));
-			}
-
-			// CREDITS
-			if ($credits = $this->get_item_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'credit'))
-			{
-				foreach ($credits as $credit)
-				{
-					$credit_role = null;
-					$credit_scheme = null;
-					$credit_name = null;
-					if (isset($credit['attribs']['']['role']))
-					{
-						$credit_role = $this->sanitize($credit['attribs']['']['role'], SIMPLEPIE_CONSTRUCT_TEXT);
-					}
-					if (isset($credit['attribs']['']['scheme']))
-					{
-						$credit_scheme = $this->sanitize($credit['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT);
-					}
-					else
-					{
-						$credit_scheme = 'urn:ebu';
-					}
-					if (isset($credit['data']))
-					{
-						$credit_name = $this->sanitize($credit['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-					}
-					$credits_parent[] = $this->registry->create('Credit', array($credit_role, $credit_scheme, $credit_name));
-				}
-			}
-			elseif ($credits = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'credit'))
-			{
-				foreach ($credits as $credit)
-				{
-					$credit_role = null;
-					$credit_scheme = null;
-					$credit_name = null;
-					if (isset($credit['attribs']['']['role']))
-					{
-						$credit_role = $this->sanitize($credit['attribs']['']['role'], SIMPLEPIE_CONSTRUCT_TEXT);
-					}
-					if (isset($credit['attribs']['']['scheme']))
-					{
-						$credit_scheme = $this->sanitize($credit['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT);
-					}
-					else
-					{
-						$credit_scheme = 'urn:ebu';
-					}
-					if (isset($credit['data']))
-					{
-						$credit_name = $this->sanitize($credit['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-					}
-					$credits_parent[] = $this->registry->create('Credit', array($credit_role, $credit_scheme, $credit_name));
-				}
-			}
-			if (is_array($credits_parent))
-			{
-				$credits_parent = array_values(array_unique($credits_parent));
-			}
-
-			// DESCRIPTION
-			if ($description_parent = $this->get_item_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'description'))
-			{
-				if (isset($description_parent[0]['data']))
-				{
-					$description_parent = $this->sanitize($description_parent[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-				}
-			}
-			elseif ($description_parent = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'description'))
-			{
-				if (isset($description_parent[0]['data']))
-				{
-					$description_parent = $this->sanitize($description_parent[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-				}
-			}
-
-			// DURATION
-			if ($duration_parent = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'duration'))
-			{
-				$seconds = null;
-				$minutes = null;
-				$hours = null;
-				if (isset($duration_parent[0]['data']))
-				{
-					$temp = explode(':', $this->sanitize($duration_parent[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT));
-					if (sizeof($temp) > 0)
-					{
-						$seconds = (int) array_pop($temp);
-					}
-					if (sizeof($temp) > 0)
-					{
-						$minutes = (int) array_pop($temp);
-						$seconds += $minutes * 60;
-					}
-					if (sizeof($temp) > 0)
-					{
-						$hours = (int) array_pop($temp);
-						$seconds += $hours * 3600;
-					}
-					unset($temp);
-					$duration_parent = $seconds;
-				}
-			}
-
-			// HASHES
-			if ($hashes_iterator = $this->get_item_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'hash'))
-			{
-				foreach ($hashes_iterator as $hash)
-				{
-					$value = null;
-					$algo = null;
-					if (isset($hash['data']))
-					{
-						$value = $this->sanitize($hash['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-					}
-					if (isset($hash['attribs']['']['algo']))
-					{
-						$algo = $this->sanitize($hash['attribs']['']['algo'], SIMPLEPIE_CONSTRUCT_TEXT);
-					}
-					else
-					{
-						$algo = 'md5';
-					}
-					$hashes_parent[] = $algo.':'.$value;
-				}
-			}
-			elseif ($hashes_iterator = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'hash'))
-			{
-				foreach ($hashes_iterator as $hash)
-				{
-					$value = null;
-					$algo = null;
-					if (isset($hash['data']))
-					{
-						$value = $this->sanitize($hash['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-					}
-					if (isset($hash['attribs']['']['algo']))
-					{
-						$algo = $this->sanitize($hash['attribs']['']['algo'], SIMPLEPIE_CONSTRUCT_TEXT);
-					}
-					else
-					{
-						$algo = 'md5';
-					}
-					$hashes_parent[] = $algo.':'.$value;
-				}
-			}
-			if (is_array($hashes_parent))
-			{
-				$hashes_parent = array_values(array_unique($hashes_parent));
-			}
-
-			// KEYWORDS
-			if ($keywords = $this->get_item_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'keywords'))
-			{
-				if (isset($keywords[0]['data']))
-				{
-					$temp = explode(',', $this->sanitize($keywords[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT));
-					foreach ($temp as $word)
-					{
-						$keywords_parent[] = trim($word);
-					}
-				}
-				unset($temp);
-			}
-			elseif ($keywords = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'keywords'))
-			{
-				if (isset($keywords[0]['data']))
-				{
-					$temp = explode(',', $this->sanitize($keywords[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT));
-					foreach ($temp as $word)
-					{
-						$keywords_parent[] = trim($word);
-					}
-				}
-				unset($temp);
-			}
-			elseif ($keywords = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'keywords'))
-			{
-				if (isset($keywords[0]['data']))
-				{
-					$temp = explode(',', $this->sanitize($keywords[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT));
-					foreach ($temp as $word)
-					{
-						$keywords_parent[] = trim($word);
-					}
-				}
-				unset($temp);
-			}
-			elseif ($keywords = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'keywords'))
-			{
-				if (isset($keywords[0]['data']))
-				{
-					$temp = explode(',', $this->sanitize($keywords[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT));
-					foreach ($temp as $word)
-					{
-						$keywords_parent[] = trim($word);
-					}
-				}
-				unset($temp);
-			}
-			if (is_array($keywords_parent))
-			{
-				$keywords_parent = array_values(array_unique($keywords_parent));
-			}
-
-			// PLAYER
-			if ($player_parent = $this->get_item_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'player'))
-			{
-				if (isset($player_parent[0]['attribs']['']['url']))
-				{
-					$player_parent = $this->sanitize($player_parent[0]['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_IRI);
-				}
-			}
-			elseif ($player_parent = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'player'))
-			{
-				if (isset($player_parent[0]['attribs']['']['url']))
-				{
-					$player_parent = $this->sanitize($player_parent[0]['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_IRI);
-				}
-			}
-
-			// RATINGS
-			if ($ratings = $this->get_item_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'rating'))
-			{
-				foreach ($ratings as $rating)
-				{
-					$rating_scheme = null;
-					$rating_value = null;
-					if (isset($rating['attribs']['']['scheme']))
-					{
-						$rating_scheme = $this->sanitize($rating['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT);
-					}
-					else
-					{
-						$rating_scheme = 'urn:simple';
-					}
-					if (isset($rating['data']))
-					{
-						$rating_value = $this->sanitize($rating['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-					}
-					$ratings_parent[] = $this->registry->create('Rating', array($rating_scheme, $rating_value));
-				}
-			}
-			elseif ($ratings = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'explicit'))
-			{
-				foreach ($ratings as $rating)
-				{
-					$rating_scheme = 'urn:itunes';
-					$rating_value = null;
-					if (isset($rating['data']))
-					{
-						$rating_value = $this->sanitize($rating['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-					}
-					$ratings_parent[] = $this->registry->create('Rating', array($rating_scheme, $rating_value));
-				}
-			}
-			elseif ($ratings = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'rating'))
-			{
-				foreach ($ratings as $rating)
-				{
-					$rating_scheme = null;
-					$rating_value = null;
-					if (isset($rating['attribs']['']['scheme']))
-					{
-						$rating_scheme = $this->sanitize($rating['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT);
-					}
-					else
-					{
-						$rating_scheme = 'urn:simple';
-					}
-					if (isset($rating['data']))
-					{
-						$rating_value = $this->sanitize($rating['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-					}
-					$ratings_parent[] = $this->registry->create('Rating', array($rating_scheme, $rating_value));
-				}
-			}
-			elseif ($ratings = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'explicit'))
-			{
-				foreach ($ratings as $rating)
-				{
-					$rating_scheme = 'urn:itunes';
-					$rating_value = null;
-					if (isset($rating['data']))
-					{
-						$rating_value = $this->sanitize($rating['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-					}
-					$ratings_parent[] = $this->registry->create('Rating', array($rating_scheme, $rating_value));
-				}
-			}
-			if (is_array($ratings_parent))
-			{
-				$ratings_parent = array_values(array_unique($ratings_parent));
-			}
-
-			// RESTRICTIONS
-			if ($restrictions = $this->get_item_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'restriction'))
-			{
-				foreach ($restrictions as $restriction)
-				{
-					$restriction_relationship = null;
-					$restriction_type = null;
-					$restriction_value = null;
-					if (isset($restriction['attribs']['']['relationship']))
-					{
-						$restriction_relationship = $this->sanitize($restriction['attribs']['']['relationship'], SIMPLEPIE_CONSTRUCT_TEXT);
-					}
-					if (isset($restriction['attribs']['']['type']))
-					{
-						$restriction_type = $this->sanitize($restriction['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT);
-					}
-					if (isset($restriction['data']))
-					{
-						$restriction_value = $this->sanitize($restriction['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-					}
-					$restrictions_parent[] = $this->registry->create('Restriction', array($restriction_relationship, $restriction_type, $restriction_value));
-				}
-			}
-			elseif ($restrictions = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'block'))
-			{
-				foreach ($restrictions as $restriction)
-				{
-					$restriction_relationship = 'allow';
-					$restriction_type = null;
-					$restriction_value = 'itunes';
-					if (isset($restriction['data']) && strtolower($restriction['data']) === 'yes')
-					{
-						$restriction_relationship = 'deny';
-					}
-					$restrictions_parent[] = $this->registry->create('Restriction', array($restriction_relationship, $restriction_type, $restriction_value));
-				}
-			}
-			elseif ($restrictions = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'restriction'))
-			{
-				foreach ($restrictions as $restriction)
-				{
-					$restriction_relationship = null;
-					$restriction_type = null;
-					$restriction_value = null;
-					if (isset($restriction['attribs']['']['relationship']))
-					{
-						$restriction_relationship = $this->sanitize($restriction['attribs']['']['relationship'], SIMPLEPIE_CONSTRUCT_TEXT);
-					}
-					if (isset($restriction['attribs']['']['type']))
-					{
-						$restriction_type = $this->sanitize($restriction['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT);
-					}
-					if (isset($restriction['data']))
-					{
-						$restriction_value = $this->sanitize($restriction['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-					}
-					$restrictions_parent[] = $this->registry->create('Restriction', array($restriction_relationship, $restriction_type, $restriction_value));
-				}
-			}
-			elseif ($restrictions = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'block'))
-			{
-				foreach ($restrictions as $restriction)
-				{
-					$restriction_relationship = 'allow';
-					$restriction_type = null;
-					$restriction_value = 'itunes';
-					if (isset($restriction['data']) && strtolower($restriction['data']) === 'yes')
-					{
-						$restriction_relationship = 'deny';
-					}
-					$restrictions_parent[] = $this->registry->create('Restriction', array($restriction_relationship, $restriction_type, $restriction_value));
-				}
-			}
-			if (is_array($restrictions_parent))
-			{
-				$restrictions_parent = array_values(array_unique($restrictions_parent));
-			}
-			else
-			{
-				$restrictions_parent = array(new SimplePie_Restriction('allow', null, 'default'));
-			}
-
-			// THUMBNAILS
-			if ($thumbnails = $this->get_item_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'thumbnail'))
-			{
-				foreach ($thumbnails as $thumbnail)
-				{
-					if (isset($thumbnail['attribs']['']['url']))
-					{
-						$thumbnails_parent[] = $this->sanitize($thumbnail['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_IRI);
-					}
-				}
-			}
-			elseif ($thumbnails = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'thumbnail'))
-			{
-				foreach ($thumbnails as $thumbnail)
-				{
-					if (isset($thumbnail['attribs']['']['url']))
-					{
-						$thumbnails_parent[] = $this->sanitize($thumbnail['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_IRI);
-					}
-				}
-			}
-
-			// TITLES
-			if ($title_parent = $this->get_item_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'title'))
-			{
-				if (isset($title_parent[0]['data']))
-				{
-					$title_parent = $this->sanitize($title_parent[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-				}
-			}
-			elseif ($title_parent = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'title'))
-			{
-				if (isset($title_parent[0]['data']))
-				{
-					$title_parent = $this->sanitize($title_parent[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-				}
-			}
-
-			// Clear the memory
-			unset($parent);
-
-			// Attributes
-			$bitrate = null;
-			$channels = null;
-			$duration = null;
-			$expression = null;
-			$framerate = null;
-			$height = null;
-			$javascript = null;
-			$lang = null;
-			$length = null;
-			$medium = null;
-			$samplingrate = null;
-			$type = null;
-			$url = null;
-			$width = null;
-
-			// Elements
-			$captions = null;
-			$categories = null;
-			$copyrights = null;
-			$credits = null;
-			$description = null;
-			$hashes = null;
-			$keywords = null;
-			$player = null;
-			$ratings = null;
-			$restrictions = null;
-			$thumbnails = null;
-			$title = null;
-
-			// If we have media:group tags, loop through them.
-			foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'group') as $group)
-			{
-				if(isset($group['child']) && isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['content']))
-				{
-					// If we have media:content tags, loop through them.
-					foreach ((array) $group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['content'] as $content)
-					{
-						if (isset($content['attribs']['']['url']))
-						{
-							// Attributes
-							$bitrate = null;
-							$channels = null;
-							$duration = null;
-							$expression = null;
-							$framerate = null;
-							$height = null;
-							$javascript = null;
-							$lang = null;
-							$length = null;
-							$medium = null;
-							$samplingrate = null;
-							$type = null;
-							$url = null;
-							$width = null;
-
-							// Elements
-							$captions = null;
-							$categories = null;
-							$copyrights = null;
-							$credits = null;
-							$description = null;
-							$hashes = null;
-							$keywords = null;
-							$player = null;
-							$ratings = null;
-							$restrictions = null;
-							$thumbnails = null;
-							$title = null;
-
-							// Start checking the attributes of media:content
-							if (isset($content['attribs']['']['bitrate']))
-							{
-								$bitrate = $this->sanitize($content['attribs']['']['bitrate'], SIMPLEPIE_CONSTRUCT_TEXT);
-							}
-							if (isset($content['attribs']['']['channels']))
-							{
-								$channels = $this->sanitize($content['attribs']['']['channels'], SIMPLEPIE_CONSTRUCT_TEXT);
-							}
-							if (isset($content['attribs']['']['duration']))
-							{
-								$duration = $this->sanitize($content['attribs']['']['duration'], SIMPLEPIE_CONSTRUCT_TEXT);
-							}
-							else
-							{
-								$duration = $duration_parent;
-							}
-							if (isset($content['attribs']['']['expression']))
-							{
-								$expression = $this->sanitize($content['attribs']['']['expression'], SIMPLEPIE_CONSTRUCT_TEXT);
-							}
-							if (isset($content['attribs']['']['framerate']))
-							{
-								$framerate = $this->sanitize($content['attribs']['']['framerate'], SIMPLEPIE_CONSTRUCT_TEXT);
-							}
-							if (isset($content['attribs']['']['height']))
-							{
-								$height = $this->sanitize($content['attribs']['']['height'], SIMPLEPIE_CONSTRUCT_TEXT);
-							}
-							if (isset($content['attribs']['']['lang']))
-							{
-								$lang = $this->sanitize($content['attribs']['']['lang'], SIMPLEPIE_CONSTRUCT_TEXT);
-							}
-							if (isset($content['attribs']['']['fileSize']))
-							{
-								$length = ceil($content['attribs']['']['fileSize']);
-							}
-							if (isset($content['attribs']['']['medium']))
-							{
-								$medium = $this->sanitize($content['attribs']['']['medium'], SIMPLEPIE_CONSTRUCT_TEXT);
-							}
-							if (isset($content['attribs']['']['samplingrate']))
-							{
-								$samplingrate = $this->sanitize($content['attribs']['']['samplingrate'], SIMPLEPIE_CONSTRUCT_TEXT);
-							}
-							if (isset($content['attribs']['']['type']))
-							{
-								$type = $this->sanitize($content['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT);
-							}
-							if (isset($content['attribs']['']['width']))
-							{
-								$width = $this->sanitize($content['attribs']['']['width'], SIMPLEPIE_CONSTRUCT_TEXT);
-							}
-							$url = $this->sanitize($content['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_IRI);
-
-							// Checking the other optional media: elements. Priority: media:content, media:group, item, channel
-
-							// CAPTIONS
-							if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['text']))
-							{
-								foreach ($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['text'] as $caption)
-								{
-									$caption_type = null;
-									$caption_lang = null;
-									$caption_startTime = null;
-									$caption_endTime = null;
-									$caption_text = null;
-									if (isset($caption['attribs']['']['type']))
-									{
-										$caption_type = $this->sanitize($caption['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT);
-									}
-									if (isset($caption['attribs']['']['lang']))
-									{
-										$caption_lang = $this->sanitize($caption['attribs']['']['lang'], SIMPLEPIE_CONSTRUCT_TEXT);
-									}
-									if (isset($caption['attribs']['']['start']))
-									{
-										$caption_startTime = $this->sanitize($caption['attribs']['']['start'], SIMPLEPIE_CONSTRUCT_TEXT);
-									}
-									if (isset($caption['attribs']['']['end']))
-									{
-										$caption_endTime = $this->sanitize($caption['attribs']['']['end'], SIMPLEPIE_CONSTRUCT_TEXT);
-									}
-									if (isset($caption['data']))
-									{
-										$caption_text = $this->sanitize($caption['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-									}
-									$captions[] = $this->registry->create('Caption', array($caption_type, $caption_lang, $caption_startTime, $caption_endTime, $caption_text));
-								}
-								if (is_array($captions))
-								{
-									$captions = array_values(array_unique($captions));
-								}
-							}
-							elseif (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['text']))
-							{
-								foreach ($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['text'] as $caption)
-								{
-									$caption_type = null;
-									$caption_lang = null;
-									$caption_startTime = null;
-									$caption_endTime = null;
-									$caption_text = null;
-									if (isset($caption['attribs']['']['type']))
-									{
-										$caption_type = $this->sanitize($caption['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT);
-									}
-									if (isset($caption['attribs']['']['lang']))
-									{
-										$caption_lang = $this->sanitize($caption['attribs']['']['lang'], SIMPLEPIE_CONSTRUCT_TEXT);
-									}
-									if (isset($caption['attribs']['']['start']))
-									{
-										$caption_startTime = $this->sanitize($caption['attribs']['']['start'], SIMPLEPIE_CONSTRUCT_TEXT);
-									}
-									if (isset($caption['attribs']['']['end']))
-									{
-										$caption_endTime = $this->sanitize($caption['attribs']['']['end'], SIMPLEPIE_CONSTRUCT_TEXT);
-									}
-									if (isset($caption['data']))
-									{
-										$caption_text = $this->sanitize($caption['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-									}
-									$captions[] = $this->registry->create('Caption', array($caption_type, $caption_lang, $caption_startTime, $caption_endTime, $caption_text));
-								}
-								if (is_array($captions))
-								{
-									$captions = array_values(array_unique($captions));
-								}
-							}
-							else
-							{
-								$captions = $captions_parent;
-							}
-
-							// CATEGORIES
-							if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['category']))
-							{
-								foreach ((array) $content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['category'] as $category)
-								{
-									$term = null;
-									$scheme = null;
-									$label = null;
-									if (isset($category['data']))
-									{
-										$term = $this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-									}
-									if (isset($category['attribs']['']['scheme']))
-									{
-										$scheme = $this->sanitize($category['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT);
-									}
-									else
-									{
-										$scheme = 'http://search.yahoo.com/mrss/category_schema';
-									}
-									if (isset($category['attribs']['']['label']))
-									{
-										$label = $this->sanitize($category['attribs']['']['label'], SIMPLEPIE_CONSTRUCT_TEXT);
-									}
-									$categories[] = $this->registry->create('Category', array($term, $scheme, $label));
-								}
-							}
-							if (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['category']))
-							{
-								foreach ((array) $group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['category'] as $category)
-								{
-									$term = null;
-									$scheme = null;
-									$label = null;
-									if (isset($category['data']))
-									{
-										$term = $this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-									}
-									if (isset($category['attribs']['']['scheme']))
-									{
-										$scheme = $this->sanitize($category['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT);
-									}
-									else
-									{
-										$scheme = 'http://search.yahoo.com/mrss/category_schema';
-									}
-									if (isset($category['attribs']['']['label']))
-									{
-										$label = $this->sanitize($category['attribs']['']['label'], SIMPLEPIE_CONSTRUCT_TEXT);
-									}
-									$categories[] = $this->registry->create('Category', array($term, $scheme, $label));
-								}
-							}
-							if (is_array($categories) && is_array($categories_parent))
-							{
-								$categories = array_values(array_unique(array_merge($categories, $categories_parent)));
-							}
-							elseif (is_array($categories))
-							{
-								$categories = array_values(array_unique($categories));
-							}
-							elseif (is_array($categories_parent))
-							{
-								$categories = array_values(array_unique($categories_parent));
-							}
-
-							// COPYRIGHTS
-							if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright']))
-							{
-								$copyright_url = null;
-								$copyright_label = null;
-								if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright'][0]['attribs']['']['url']))
-								{
-									$copyright_url = $this->sanitize($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright'][0]['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_TEXT);
-								}
-								if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright'][0]['data']))
-								{
-									$copyright_label = $this->sanitize($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-								}
-								$copyrights = $this->registry->create('Copyright', array($copyright_url, $copyright_label));
-							}
-							elseif (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright']))
-							{
-								$copyright_url = null;
-								$copyright_label = null;
-								if (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright'][0]['attribs']['']['url']))
-								{
-									$copyright_url = $this->sanitize($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright'][0]['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_TEXT);
-								}
-								if (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright'][0]['data']))
-								{
-									$copyright_label = $this->sanitize($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-								}
-								$copyrights = $this->registry->create('Copyright', array($copyright_url, $copyright_label));
-							}
-							else
-							{
-								$copyrights = $copyrights_parent;
-							}
-
-							// CREDITS
-							if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['credit']))
-							{
-								foreach ($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['credit'] as $credit)
-								{
-									$credit_role = null;
-									$credit_scheme = null;
-									$credit_name = null;
-									if (isset($credit['attribs']['']['role']))
-									{
-										$credit_role = $this->sanitize($credit['attribs']['']['role'], SIMPLEPIE_CONSTRUCT_TEXT);
-									}
-									if (isset($credit['attribs']['']['scheme']))
-									{
-										$credit_scheme = $this->sanitize($credit['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT);
-									}
-									else
-									{
-										$credit_scheme = 'urn:ebu';
-									}
-									if (isset($credit['data']))
-									{
-										$credit_name = $this->sanitize($credit['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-									}
-									$credits[] = $this->registry->create('Credit', array($credit_role, $credit_scheme, $credit_name));
-								}
-								if (is_array($credits))
-								{
-									$credits = array_values(array_unique($credits));
-								}
-							}
-							elseif (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['credit']))
-							{
-								foreach ($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['credit'] as $credit)
-								{
-									$credit_role = null;
-									$credit_scheme = null;
-									$credit_name = null;
-									if (isset($credit['attribs']['']['role']))
-									{
-										$credit_role = $this->sanitize($credit['attribs']['']['role'], SIMPLEPIE_CONSTRUCT_TEXT);
-									}
-									if (isset($credit['attribs']['']['scheme']))
-									{
-										$credit_scheme = $this->sanitize($credit['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT);
-									}
-									else
-									{
-										$credit_scheme = 'urn:ebu';
-									}
-									if (isset($credit['data']))
-									{
-										$credit_name = $this->sanitize($credit['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-									}
-									$credits[] = $this->registry->create('Credit', array($credit_role, $credit_scheme, $credit_name));
-								}
-								if (is_array($credits))
-								{
-									$credits = array_values(array_unique($credits));
-								}
-							}
-							else
-							{
-								$credits = $credits_parent;
-							}
-
-							// DESCRIPTION
-							if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['description']))
-							{
-								$description = $this->sanitize($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['description'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-							}
-							elseif (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['description']))
-							{
-								$description = $this->sanitize($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['description'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-							}
-							else
-							{
-								$description = $description_parent;
-							}
-
-							// HASHES
-							if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['hash']))
-							{
-								foreach ($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['hash'] as $hash)
-								{
-									$value = null;
-									$algo = null;
-									if (isset($hash['data']))
-									{
-										$value = $this->sanitize($hash['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-									}
-									if (isset($hash['attribs']['']['algo']))
-									{
-										$algo = $this->sanitize($hash['attribs']['']['algo'], SIMPLEPIE_CONSTRUCT_TEXT);
-									}
-									else
-									{
-										$algo = 'md5';
-									}
-									$hashes[] = $algo.':'.$value;
-								}
-								if (is_array($hashes))
-								{
-									$hashes = array_values(array_unique($hashes));
-								}
-							}
-							elseif (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['hash']))
-							{
-								foreach ($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['hash'] as $hash)
-								{
-									$value = null;
-									$algo = null;
-									if (isset($hash['data']))
-									{
-										$value = $this->sanitize($hash['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-									}
-									if (isset($hash['attribs']['']['algo']))
-									{
-										$algo = $this->sanitize($hash['attribs']['']['algo'], SIMPLEPIE_CONSTRUCT_TEXT);
-									}
-									else
-									{
-										$algo = 'md5';
-									}
-									$hashes[] = $algo.':'.$value;
-								}
-								if (is_array($hashes))
-								{
-									$hashes = array_values(array_unique($hashes));
-								}
-							}
-							else
-							{
-								$hashes = $hashes_parent;
-							}
-
-							// KEYWORDS
-							if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['keywords']))
-							{
-								if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['keywords'][0]['data']))
-								{
-									$temp = explode(',', $this->sanitize($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['keywords'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT));
-									foreach ($temp as $word)
-									{
-										$keywords[] = trim($word);
-									}
-									unset($temp);
-								}
-								if (is_array($keywords))
-								{
-									$keywords = array_values(array_unique($keywords));
-								}
-							}
-							elseif (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['keywords']))
-							{
-								if (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['keywords'][0]['data']))
-								{
-									$temp = explode(',', $this->sanitize($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['keywords'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT));
-									foreach ($temp as $word)
-									{
-										$keywords[] = trim($word);
-									}
-									unset($temp);
-								}
-								if (is_array($keywords))
-								{
-									$keywords = array_values(array_unique($keywords));
-								}
-							}
-							else
-							{
-								$keywords = $keywords_parent;
-							}
-
-							// PLAYER
-							if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['player']))
-							{
-								$player = $this->sanitize($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['player'][0]['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_IRI);
-							}
-							elseif (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['player']))
-							{
-								$player = $this->sanitize($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['player'][0]['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_IRI);
-							}
-							else
-							{
-								$player = $player_parent;
-							}
-
-							// RATINGS
-							if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['rating']))
-							{
-								foreach ($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['rating'] as $rating)
-								{
-									$rating_scheme = null;
-									$rating_value = null;
-									if (isset($rating['attribs']['']['scheme']))
-									{
-										$rating_scheme = $this->sanitize($rating['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT);
-									}
-									else
-									{
-										$rating_scheme = 'urn:simple';
-									}
-									if (isset($rating['data']))
-									{
-										$rating_value = $this->sanitize($rating['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-									}
-									$ratings[] = $this->registry->create('Rating', array($rating_scheme, $rating_value));
-								}
-								if (is_array($ratings))
-								{
-									$ratings = array_values(array_unique($ratings));
-								}
-							}
-							elseif (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['rating']))
-							{
-								foreach ($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['rating'] as $rating)
-								{
-									$rating_scheme = null;
-									$rating_value = null;
-									if (isset($rating['attribs']['']['scheme']))
-									{
-										$rating_scheme = $this->sanitize($rating['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT);
-									}
-									else
-									{
-										$rating_scheme = 'urn:simple';
-									}
-									if (isset($rating['data']))
-									{
-										$rating_value = $this->sanitize($rating['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-									}
-									$ratings[] = $this->registry->create('Rating', array($rating_scheme, $rating_value));
-								}
-								if (is_array($ratings))
-								{
-									$ratings = array_values(array_unique($ratings));
-								}
-							}
-							else
-							{
-								$ratings = $ratings_parent;
-							}
-
-							// RESTRICTIONS
-							if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['restriction']))
-							{
-								foreach ($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['restriction'] as $restriction)
-								{
-									$restriction_relationship = null;
-									$restriction_type = null;
-									$restriction_value = null;
-									if (isset($restriction['attribs']['']['relationship']))
-									{
-										$restriction_relationship = $this->sanitize($restriction['attribs']['']['relationship'], SIMPLEPIE_CONSTRUCT_TEXT);
-									}
-									if (isset($restriction['attribs']['']['type']))
-									{
-										$restriction_type = $this->sanitize($restriction['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT);
-									}
-									if (isset($restriction['data']))
-									{
-										$restriction_value = $this->sanitize($restriction['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-									}
-									$restrictions[] = $this->registry->create('Restriction', array($restriction_relationship, $restriction_type, $restriction_value));
-								}
-								if (is_array($restrictions))
-								{
-									$restrictions = array_values(array_unique($restrictions));
-								}
-							}
-							elseif (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['restriction']))
-							{
-								foreach ($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['restriction'] as $restriction)
-								{
-									$restriction_relationship = null;
-									$restriction_type = null;
-									$restriction_value = null;
-									if (isset($restriction['attribs']['']['relationship']))
-									{
-										$restriction_relationship = $this->sanitize($restriction['attribs']['']['relationship'], SIMPLEPIE_CONSTRUCT_TEXT);
-									}
-									if (isset($restriction['attribs']['']['type']))
-									{
-										$restriction_type = $this->sanitize($restriction['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT);
-									}
-									if (isset($restriction['data']))
-									{
-										$restriction_value = $this->sanitize($restriction['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-									}
-									$restrictions[] = $this->registry->create('Restriction', array($restriction_relationship, $restriction_type, $restriction_value));
-								}
-								if (is_array($restrictions))
-								{
-									$restrictions = array_values(array_unique($restrictions));
-								}
-							}
-							else
-							{
-								$restrictions = $restrictions_parent;
-							}
-
-							// THUMBNAILS
-							if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['thumbnail']))
-							{
-								foreach ($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['thumbnail'] as $thumbnail)
-								{
-									$thumbnails[] = $this->sanitize($thumbnail['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_IRI);
-								}
-								if (is_array($thumbnails))
-								{
-									$thumbnails = array_values(array_unique($thumbnails));
-								}
-							}
-							elseif (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['thumbnail']))
-							{
-								foreach ($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['thumbnail'] as $thumbnail)
-								{
-									$thumbnails[] = $this->sanitize($thumbnail['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_IRI);
-								}
-								if (is_array($thumbnails))
-								{
-									$thumbnails = array_values(array_unique($thumbnails));
-								}
-							}
-							else
-							{
-								$thumbnails = $thumbnails_parent;
-							}
-
-							// TITLES
-							if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['title']))
-							{
-								$title = $this->sanitize($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['title'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-							}
-							elseif (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['title']))
-							{
-								$title = $this->sanitize($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['title'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-							}
-							else
-							{
-								$title = $title_parent;
-							}
-
-							$this->data['enclosures'][] = $this->registry->create('Enclosure', array($url, $type, $length, null, $bitrate, $captions, $categories, $channels, $copyrights, $credits, $description, $duration, $expression, $framerate, $hashes, $height, $keywords, $lang, $medium, $player, $ratings, $restrictions, $samplingrate, $thumbnails, $title, $width));
-						}
-					}
-				}
-			}
-
-			// If we have standalone media:content tags, loop through them.
-			if (isset($this->data['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['content']))
-			{
-				foreach ((array) $this->data['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['content'] as $content)
-				{
-					if (isset($content['attribs']['']['url']) || isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['player']))
-					{
-						// Attributes
-						$bitrate = null;
-						$channels = null;
-						$duration = null;
-						$expression = null;
-						$framerate = null;
-						$height = null;
-						$javascript = null;
-						$lang = null;
-						$length = null;
-						$medium = null;
-						$samplingrate = null;
-						$type = null;
-						$url = null;
-						$width = null;
-
-						// Elements
-						$captions = null;
-						$categories = null;
-						$copyrights = null;
-						$credits = null;
-						$description = null;
-						$hashes = null;
-						$keywords = null;
-						$player = null;
-						$ratings = null;
-						$restrictions = null;
-						$thumbnails = null;
-						$title = null;
-
-						// Start checking the attributes of media:content
-						if (isset($content['attribs']['']['bitrate']))
-						{
-							$bitrate = $this->sanitize($content['attribs']['']['bitrate'], SIMPLEPIE_CONSTRUCT_TEXT);
-						}
-						if (isset($content['attribs']['']['channels']))
-						{
-							$channels = $this->sanitize($content['attribs']['']['channels'], SIMPLEPIE_CONSTRUCT_TEXT);
-						}
-						if (isset($content['attribs']['']['duration']))
-						{
-							$duration = $this->sanitize($content['attribs']['']['duration'], SIMPLEPIE_CONSTRUCT_TEXT);
-						}
-						else
-						{
-							$duration = $duration_parent;
-						}
-						if (isset($content['attribs']['']['expression']))
-						{
-							$expression = $this->sanitize($content['attribs']['']['expression'], SIMPLEPIE_CONSTRUCT_TEXT);
-						}
-						if (isset($content['attribs']['']['framerate']))
-						{
-							$framerate = $this->sanitize($content['attribs']['']['framerate'], SIMPLEPIE_CONSTRUCT_TEXT);
-						}
-						if (isset($content['attribs']['']['height']))
-						{
-							$height = $this->sanitize($content['attribs']['']['height'], SIMPLEPIE_CONSTRUCT_TEXT);
-						}
-						if (isset($content['attribs']['']['lang']))
-						{
-							$lang = $this->sanitize($content['attribs']['']['lang'], SIMPLEPIE_CONSTRUCT_TEXT);
-						}
-						if (isset($content['attribs']['']['fileSize']))
-						{
-							$length = ceil($content['attribs']['']['fileSize']);
-						}
-						if (isset($content['attribs']['']['medium']))
-						{
-							$medium = $this->sanitize($content['attribs']['']['medium'], SIMPLEPIE_CONSTRUCT_TEXT);
-						}
-						if (isset($content['attribs']['']['samplingrate']))
-						{
-							$samplingrate = $this->sanitize($content['attribs']['']['samplingrate'], SIMPLEPIE_CONSTRUCT_TEXT);
-						}
-						if (isset($content['attribs']['']['type']))
-						{
-							$type = $this->sanitize($content['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT);
-						}
-						if (isset($content['attribs']['']['width']))
-						{
-							$width = $this->sanitize($content['attribs']['']['width'], SIMPLEPIE_CONSTRUCT_TEXT);
-						}
-						if (isset($content['attribs']['']['url']))
-						{
-							$url = $this->sanitize($content['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_IRI);
-						}
-						// Checking the other optional media: elements. Priority: media:content, media:group, item, channel
-
-						// CAPTIONS
-						if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['text']))
-						{
-							foreach ($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['text'] as $caption)
-							{
-								$caption_type = null;
-								$caption_lang = null;
-								$caption_startTime = null;
-								$caption_endTime = null;
-								$caption_text = null;
-								if (isset($caption['attribs']['']['type']))
-								{
-									$caption_type = $this->sanitize($caption['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT);
-								}
-								if (isset($caption['attribs']['']['lang']))
-								{
-									$caption_lang = $this->sanitize($caption['attribs']['']['lang'], SIMPLEPIE_CONSTRUCT_TEXT);
-								}
-								if (isset($caption['attribs']['']['start']))
-								{
-									$caption_startTime = $this->sanitize($caption['attribs']['']['start'], SIMPLEPIE_CONSTRUCT_TEXT);
-								}
-								if (isset($caption['attribs']['']['end']))
-								{
-									$caption_endTime = $this->sanitize($caption['attribs']['']['end'], SIMPLEPIE_CONSTRUCT_TEXT);
-								}
-								if (isset($caption['data']))
-								{
-									$caption_text = $this->sanitize($caption['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-								}
-								$captions[] = $this->registry->create('Caption', array($caption_type, $caption_lang, $caption_startTime, $caption_endTime, $caption_text));
-							}
-							if (is_array($captions))
-							{
-								$captions = array_values(array_unique($captions));
-							}
-						}
-						else
-						{
-							$captions = $captions_parent;
-						}
-
-						// CATEGORIES
-						if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['category']))
-						{
-							foreach ((array) $content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['category'] as $category)
-							{
-								$term = null;
-								$scheme = null;
-								$label = null;
-								if (isset($category['data']))
-								{
-									$term = $this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-								}
-								if (isset($category['attribs']['']['scheme']))
-								{
-									$scheme = $this->sanitize($category['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT);
-								}
-								else
-								{
-									$scheme = 'http://search.yahoo.com/mrss/category_schema';
-								}
-								if (isset($category['attribs']['']['label']))
-								{
-									$label = $this->sanitize($category['attribs']['']['label'], SIMPLEPIE_CONSTRUCT_TEXT);
-								}
-								$categories[] = $this->registry->create('Category', array($term, $scheme, $label));
-							}
-						}
-						if (is_array($categories) && is_array($categories_parent))
-						{
-							$categories = array_values(array_unique(array_merge($categories, $categories_parent)));
-						}
-						elseif (is_array($categories))
-						{
-							$categories = array_values(array_unique($categories));
-						}
-						elseif (is_array($categories_parent))
-						{
-							$categories = array_values(array_unique($categories_parent));
-						}
-						else
-						{
-							$categories = null;
-						}
-
-						// COPYRIGHTS
-						if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright']))
-						{
-							$copyright_url = null;
-							$copyright_label = null;
-							if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright'][0]['attribs']['']['url']))
-							{
-								$copyright_url = $this->sanitize($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright'][0]['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_TEXT);
-							}
-							if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright'][0]['data']))
-							{
-								$copyright_label = $this->sanitize($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-							}
-							$copyrights = $this->registry->create('Copyright', array($copyright_url, $copyright_label));
-						}
-						else
-						{
-							$copyrights = $copyrights_parent;
-						}
-
-						// CREDITS
-						if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['credit']))
-						{
-							foreach ($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['credit'] as $credit)
-							{
-								$credit_role = null;
-								$credit_scheme = null;
-								$credit_name = null;
-								if (isset($credit['attribs']['']['role']))
-								{
-									$credit_role = $this->sanitize($credit['attribs']['']['role'], SIMPLEPIE_CONSTRUCT_TEXT);
-								}
-								if (isset($credit['attribs']['']['scheme']))
-								{
-									$credit_scheme = $this->sanitize($credit['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT);
-								}
-								else
-								{
-									$credit_scheme = 'urn:ebu';
-								}
-								if (isset($credit['data']))
-								{
-									$credit_name = $this->sanitize($credit['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-								}
-								$credits[] = $this->registry->create('Credit', array($credit_role, $credit_scheme, $credit_name));
-							}
-							if (is_array($credits))
-							{
-								$credits = array_values(array_unique($credits));
-							}
-						}
-						else
-						{
-							$credits = $credits_parent;
-						}
-
-						// DESCRIPTION
-						if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['description']))
-						{
-							$description = $this->sanitize($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['description'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-						}
-						else
-						{
-							$description = $description_parent;
-						}
-
-						// HASHES
-						if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['hash']))
-						{
-							foreach ($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['hash'] as $hash)
-							{
-								$value = null;
-								$algo = null;
-								if (isset($hash['data']))
-								{
-									$value = $this->sanitize($hash['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-								}
-								if (isset($hash['attribs']['']['algo']))
-								{
-									$algo = $this->sanitize($hash['attribs']['']['algo'], SIMPLEPIE_CONSTRUCT_TEXT);
-								}
-								else
-								{
-									$algo = 'md5';
-								}
-								$hashes[] = $algo.':'.$value;
-							}
-							if (is_array($hashes))
-							{
-								$hashes = array_values(array_unique($hashes));
-							}
-						}
-						else
-						{
-							$hashes = $hashes_parent;
-						}
-
-						// KEYWORDS
-						if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['keywords']))
-						{
-							if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['keywords'][0]['data']))
-							{
-								$temp = explode(',', $this->sanitize($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['keywords'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT));
-								foreach ($temp as $word)
-								{
-									$keywords[] = trim($word);
-								}
-								unset($temp);
-							}
-							if (is_array($keywords))
-							{
-								$keywords = array_values(array_unique($keywords));
-							}
-						}
-						else
-						{
-							$keywords = $keywords_parent;
-						}
-
-						// PLAYER
-						if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['player']))
-						{
-							if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['player'][0]['attribs']['']['url'])) {
-								$player = $this->sanitize($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['player'][0]['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_IRI);
-							}
-						}
-						else
-						{
-							$player = $player_parent;
-						}
-
-						// RATINGS
-						if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['rating']))
-						{
-							foreach ($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['rating'] as $rating)
-							{
-								$rating_scheme = null;
-								$rating_value = null;
-								if (isset($rating['attribs']['']['scheme']))
-								{
-									$rating_scheme = $this->sanitize($rating['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT);
-								}
-								else
-								{
-									$rating_scheme = 'urn:simple';
-								}
-								if (isset($rating['data']))
-								{
-									$rating_value = $this->sanitize($rating['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-								}
-								$ratings[] = $this->registry->create('Rating', array($rating_scheme, $rating_value));
-							}
-							if (is_array($ratings))
-							{
-								$ratings = array_values(array_unique($ratings));
-							}
-						}
-						else
-						{
-							$ratings = $ratings_parent;
-						}
-
-						// RESTRICTIONS
-						if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['restriction']))
-						{
-							foreach ($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['restriction'] as $restriction)
-							{
-								$restriction_relationship = null;
-								$restriction_type = null;
-								$restriction_value = null;
-								if (isset($restriction['attribs']['']['relationship']))
-								{
-									$restriction_relationship = $this->sanitize($restriction['attribs']['']['relationship'], SIMPLEPIE_CONSTRUCT_TEXT);
-								}
-								if (isset($restriction['attribs']['']['type']))
-								{
-									$restriction_type = $this->sanitize($restriction['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT);
-								}
-								if (isset($restriction['data']))
-								{
-									$restriction_value = $this->sanitize($restriction['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-								}
-								$restrictions[] = $this->registry->create('Restriction', array($restriction_relationship, $restriction_type, $restriction_value));
-							}
-							if (is_array($restrictions))
-							{
-								$restrictions = array_values(array_unique($restrictions));
-							}
-						}
-						else
-						{
-							$restrictions = $restrictions_parent;
-						}
-
-						// THUMBNAILS
-						if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['thumbnail']))
-						{
-							foreach ($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['thumbnail'] as $thumbnail)
-							{
-								if (isset($thumbnail['attribs']['']['url'])) {
-									$thumbnails[] = $this->sanitize($thumbnail['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_IRI);
-								}
-							}
-							if (is_array($thumbnails))
-							{
-								$thumbnails = array_values(array_unique($thumbnails));
-							}
-						}
-						else
-						{
-							$thumbnails = $thumbnails_parent;
-						}
-
-						// TITLES
-						if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['title']))
-						{
-							$title = $this->sanitize($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['title'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-						}
-						else
-						{
-							$title = $title_parent;
-						}
-
-						$this->data['enclosures'][] = $this->registry->create('Enclosure', array($url, $type, $length, null, $bitrate, $captions, $categories, $channels, $copyrights, $credits, $description, $duration, $expression, $framerate, $hashes, $height, $keywords, $lang, $medium, $player, $ratings, $restrictions, $samplingrate, $thumbnails, $title, $width));
-					}
-				}
-			}
-
-			foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'link') as $link)
-			{
-				if (isset($link['attribs']['']['href']) && !empty($link['attribs']['']['rel']) && $link['attribs']['']['rel'] === 'enclosure')
-				{
-					// Attributes
-					$bitrate = null;
-					$channels = null;
-					$duration = null;
-					$expression = null;
-					$framerate = null;
-					$height = null;
-					$javascript = null;
-					$lang = null;
-					$length = null;
-					$medium = null;
-					$samplingrate = null;
-					$type = null;
-					$url = null;
-					$width = null;
-
-					$url = $this->sanitize($link['attribs']['']['href'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($link));
-					if (isset($link['attribs']['']['type']))
-					{
-						$type = $this->sanitize($link['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT);
-					}
-					if (isset($link['attribs']['']['length']))
-					{
-						$length = ceil($link['attribs']['']['length']);
-					}
-					if (isset($link['attribs']['']['title']))
-					{
-						$title = $this->sanitize($link['attribs']['']['title'], SIMPLEPIE_CONSTRUCT_TEXT);
-					}
-					else
-					{
-						$title = $title_parent;
-					}
-
-					// Since we don't have group or content for these, we'll just pass the '*_parent' variables directly to the constructor
-					$this->data['enclosures'][] = $this->registry->create('Enclosure', array($url, $type, $length, null, $bitrate, $captions_parent, $categories_parent, $channels, $copyrights_parent, $credits_parent, $description_parent, $duration_parent, $expression, $framerate, $hashes_parent, $height, $keywords_parent, $lang, $medium, $player_parent, $ratings_parent, $restrictions_parent, $samplingrate, $thumbnails_parent, $title, $width));
-				}
-			}
-
-			foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'link') as $link)
-			{
-				if (isset($link['attribs']['']['href']) && !empty($link['attribs']['']['rel']) && $link['attribs']['']['rel'] === 'enclosure')
-				{
-					// Attributes
-					$bitrate = null;
-					$channels = null;
-					$duration = null;
-					$expression = null;
-					$framerate = null;
-					$height = null;
-					$javascript = null;
-					$lang = null;
-					$length = null;
-					$medium = null;
-					$samplingrate = null;
-					$type = null;
-					$url = null;
-					$width = null;
-
-					$url = $this->sanitize($link['attribs']['']['href'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($link));
-					if (isset($link['attribs']['']['type']))
-					{
-						$type = $this->sanitize($link['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT);
-					}
-					if (isset($link['attribs']['']['length']))
-					{
-						$length = ceil($link['attribs']['']['length']);
-					}
-
-					// Since we don't have group or content for these, we'll just pass the '*_parent' variables directly to the constructor
-					$this->data['enclosures'][] = $this->registry->create('Enclosure', array($url, $type, $length, null, $bitrate, $captions_parent, $categories_parent, $channels, $copyrights_parent, $credits_parent, $description_parent, $duration_parent, $expression, $framerate, $hashes_parent, $height, $keywords_parent, $lang, $medium, $player_parent, $ratings_parent, $restrictions_parent, $samplingrate, $thumbnails_parent, $title_parent, $width));
-				}
-			}
-
-			if ($enclosure = $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'enclosure'))
-			{
-				if (isset($enclosure[0]['attribs']['']['url']))
-				{
-					// Attributes
-					$bitrate = null;
-					$channels = null;
-					$duration = null;
-					$expression = null;
-					$framerate = null;
-					$height = null;
-					$javascript = null;
-					$lang = null;
-					$length = null;
-					$medium = null;
-					$samplingrate = null;
-					$type = null;
-					$url = null;
-					$width = null;
-
-					$url = $this->sanitize($enclosure[0]['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($enclosure[0]));
-					if (isset($enclosure[0]['attribs']['']['type']))
-					{
-						$type = $this->sanitize($enclosure[0]['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT);
-					}
-					if (isset($enclosure[0]['attribs']['']['length']))
-					{
-						$length = ceil($enclosure[0]['attribs']['']['length']);
-					}
-
-					// Since we don't have group or content for these, we'll just pass the '*_parent' variables directly to the constructor
-					$this->data['enclosures'][] = $this->registry->create('Enclosure', array($url, $type, $length, null, $bitrate, $captions_parent, $categories_parent, $channels, $copyrights_parent, $credits_parent, $description_parent, $duration_parent, $expression, $framerate, $hashes_parent, $height, $keywords_parent, $lang, $medium, $player_parent, $ratings_parent, $restrictions_parent, $samplingrate, $thumbnails_parent, $title_parent, $width));
-				}
-			}
-
-			if (sizeof($this->data['enclosures']) === 0 && ($url || $type || $length || $bitrate || $captions_parent || $categories_parent || $channels || $copyrights_parent || $credits_parent || $description_parent || $duration_parent || $expression || $framerate || $hashes_parent || $height || $keywords_parent || $lang || $medium || $player_parent || $ratings_parent || $restrictions_parent || $samplingrate || $thumbnails_parent || $title_parent || $width))
-			{
-				// Since we don't have group or content for these, we'll just pass the '*_parent' variables directly to the constructor
-				$this->data['enclosures'][] = $this->registry->create('Enclosure', array($url, $type, $length, null, $bitrate, $captions_parent, $categories_parent, $channels, $copyrights_parent, $credits_parent, $description_parent, $duration_parent, $expression, $framerate, $hashes_parent, $height, $keywords_parent, $lang, $medium, $player_parent, $ratings_parent, $restrictions_parent, $samplingrate, $thumbnails_parent, $title_parent, $width));
-			}
-
-			$this->data['enclosures'] = array_values(array_unique($this->data['enclosures']));
-		}
-		if (!empty($this->data['enclosures']))
-		{
-			return $this->data['enclosures'];
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	/**
-	 * Get the latitude coordinates for the item
-	 *
-	 * Compatible with the W3C WGS84 Basic Geo and GeoRSS specifications
-	 *
-	 * Uses `<geo:lat>` or `<georss:point>`
-	 *
-	 * @since 1.0
-	 * @link http://www.w3.org/2003/01/geo/ W3C WGS84 Basic Geo
-	 * @link http://www.georss.org/ GeoRSS
-	 * @return string|null
-	 */
-	public function get_latitude()
-	{
-		if ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_W3C_BASIC_GEO, 'lat'))
-		{
-			return (float) $return[0]['data'];
-		}
-		elseif (($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_GEORSS, 'point')) && preg_match('/^((?:-)?[0-9]+(?:\.[0-9]+)) ((?:-)?[0-9]+(?:\.[0-9]+))$/', trim($return[0]['data']), $match))
-		{
-			return (float) $match[1];
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	/**
-	 * Get the longitude coordinates for the item
-	 *
-	 * Compatible with the W3C WGS84 Basic Geo and GeoRSS specifications
-	 *
-	 * Uses `<geo:long>`, `<geo:lon>` or `<georss:point>`
-	 *
-	 * @since 1.0
-	 * @link http://www.w3.org/2003/01/geo/ W3C WGS84 Basic Geo
-	 * @link http://www.georss.org/ GeoRSS
-	 * @return string|null
-	 */
-	public function get_longitude()
-	{
-		if ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_W3C_BASIC_GEO, 'long'))
-		{
-			return (float) $return[0]['data'];
-		}
-		elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_W3C_BASIC_GEO, 'lon'))
-		{
-			return (float) $return[0]['data'];
-		}
-		elseif (($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_GEORSS, 'point')) && preg_match('/^((?:-)?[0-9]+(?:\.[0-9]+)) ((?:-)?[0-9]+(?:\.[0-9]+))$/', trim($return[0]['data']), $match))
-		{
-			return (float) $match[2];
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	/**
-	 * Get the `<atom:source>` for the item
-	 *
-	 * @since 1.1
-	 * @return SimplePie_Source|null
-	 */
-	public function get_source()
-	{
-		if ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'source'))
-		{
-			return $this->registry->create('Source', array($this, $return[0]));
-		}
-		else
-		{
-			return null;
-		}
-	}
-}
-
diff --git a/wiki/vendor/simplepie/simplepie/library/SimplePie/Locator.php b/wiki/vendor/simplepie/simplepie/library/SimplePie/Locator.php
deleted file mode 100644
index bc314c2..0000000
--- a/wiki/vendor/simplepie/simplepie/library/SimplePie/Locator.php
+++ /dev/null
@@ -1,429 +0,0 @@
-<?php
-/**
- * SimplePie
- *
- * A PHP-Based RSS and Atom Feed Framework.
- * Takes the hard work out of managing a complete RSS/Atom solution.
- *
- * Copyright (c) 2004-2016, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification, are
- * permitted provided that the following conditions are met:
- *
- * 	* Redistributions of source code must retain the above copyright notice, this list of
- * 	  conditions and the following disclaimer.
- *
- * 	* Redistributions in binary form must reproduce the above copyright notice, this list
- * 	  of conditions and the following disclaimer in the documentation and/or other materials
- * 	  provided with the distribution.
- *
- * 	* Neither the name of the SimplePie Team nor the names of its contributors may be used
- * 	  to endorse or promote products derived from this software without specific prior
- * 	  written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
- * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS
- * AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @package SimplePie
- * @copyright 2004-2016 Ryan Parman, Geoffrey Sneddon, Ryan McCue
- * @author Ryan Parman
- * @author Geoffrey Sneddon
- * @author Ryan McCue
- * @link http://simplepie.org/ SimplePie
- * @license http://www.opensource.org/licenses/bsd-license.php BSD License
- */
-
-/**
- * Used for feed auto-discovery
- *
- *
- * This class can be overloaded with {@see SimplePie::set_locator_class()}
- *
- * @package SimplePie
- */
-class SimplePie_Locator
-{
-	var $useragent;
-	var $timeout;
-	var $file;
-	var $local = array();
-	var $elsewhere = array();
-	var $cached_entities = array();
-	var $http_base;
-	var $base;
-	var $base_location = 0;
-	var $checked_feeds = 0;
-	var $max_checked_feeds = 10;
-	protected $registry;
-
-	public function __construct(SimplePie_File $file, $timeout = 10, $useragent = null, $max_checked_feeds = 10)
-	{
-		$this->file = $file;
-		$this->useragent = $useragent;
-		$this->timeout = $timeout;
-		$this->max_checked_feeds = $max_checked_feeds;
-
-		if (class_exists('DOMDocument'))
-		{
-			$this->dom = new DOMDocument();
-
-			set_error_handler(array('SimplePie_Misc', 'silence_errors'));
-			$this->dom->loadHTML($this->file->body);
-			restore_error_handler();
-		}
-		else
-		{
-			$this->dom = null;
-		}
-	}
-
-	public function set_registry(SimplePie_Registry $registry)
-	{
-		$this->registry = $registry;
-	}
-
-	public function find($type = SIMPLEPIE_LOCATOR_ALL, &$working)
-	{
-		if ($this->is_feed($this->file))
-		{
-			return $this->file;
-		}
-
-		if ($this->file->method & SIMPLEPIE_FILE_SOURCE_REMOTE)
-		{
-			$sniffer = $this->registry->create('Content_Type_Sniffer', array($this->file));
-			if ($sniffer->get_type() !== 'text/html')
-			{
-				return null;
-			}
-		}
-
-		if ($type & ~SIMPLEPIE_LOCATOR_NONE)
-		{
-			$this->get_base();
-		}
-
-		if ($type & SIMPLEPIE_LOCATOR_AUTODISCOVERY && $working = $this->autodiscovery())
-		{
-			return $working[0];
-		}
-
-		if ($type & (SIMPLEPIE_LOCATOR_LOCAL_EXTENSION | SIMPLEPIE_LOCATOR_LOCAL_BODY | SIMPLEPIE_LOCATOR_REMOTE_EXTENSION | SIMPLEPIE_LOCATOR_REMOTE_BODY) && $this->get_links())
-		{
-			if ($type & SIMPLEPIE_LOCATOR_LOCAL_EXTENSION && $working = $this->extension($this->local))
-			{
-				return $working[0];
-			}
-
-			if ($type & SIMPLEPIE_LOCATOR_LOCAL_BODY && $working = $this->body($this->local))
-			{
-				return $working[0];
-			}
-
-			if ($type & SIMPLEPIE_LOCATOR_REMOTE_EXTENSION && $working = $this->extension($this->elsewhere))
-			{
-				return $working[0];
-			}
-
-			if ($type & SIMPLEPIE_LOCATOR_REMOTE_BODY && $working = $this->body($this->elsewhere))
-			{
-				return $working[0];
-			}
-		}
-		return null;
-	}
-
-	public function is_feed($file, $check_html = false)
-	{
-		if ($file->method & SIMPLEPIE_FILE_SOURCE_REMOTE)
-		{
-			$sniffer = $this->registry->create('Content_Type_Sniffer', array($file));
-			$sniffed = $sniffer->get_type();
-			$mime_types = array('application/rss+xml', 'application/rdf+xml',
-			                    'text/rdf', 'application/atom+xml', 'text/xml',
-			                    'application/xml', 'application/x-rss+xml');
-			if ($check_html)
-			{
-				$mime_types[] = 'text/html';
-			}
-			if (in_array($sniffed, $mime_types))
-			{
-				return true;
-			}
-			else
-			{
-				return false;
-			}
-		}
-		elseif ($file->method & SIMPLEPIE_FILE_SOURCE_LOCAL)
-		{
-			return true;
-		}
-		else
-		{
-			return false;
-		}
-	}
-
-	public function get_base()
-	{
-		if ($this->dom === null)
-		{
-			throw new SimplePie_Exception('DOMDocument not found, unable to use locator');
-		}
-		$this->http_base = $this->file->url;
-		$this->base = $this->http_base;
-		$elements = $this->dom->getElementsByTagName('base');
-		foreach ($elements as $element)
-		{
-			if ($element->hasAttribute('href'))
-			{
-				$base = $this->registry->call('Misc', 'absolutize_url', array(trim($element->getAttribute('href')), $this->http_base));
-				if ($base === false)
-				{
-					continue;
-				}
-				$this->base = $base;
-				$this->base_location = method_exists($element, 'getLineNo') ? $element->getLineNo() : 0;
-				break;
-			}
-		}
-	}
-
-	public function autodiscovery()
-	{
-		$done = array();
-		$feeds = array();
-		$feeds = array_merge($feeds, $this->search_elements_by_tag('link', $done, $feeds));
-		$feeds = array_merge($feeds, $this->search_elements_by_tag('a', $done, $feeds));
-		$feeds = array_merge($feeds, $this->search_elements_by_tag('area', $done, $feeds));
-
-		if (!empty($feeds))
-		{
-			return array_values($feeds);
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	protected function search_elements_by_tag($name, &$done, $feeds)
-	{
-		if ($this->dom === null)
-		{
-			throw new SimplePie_Exception('DOMDocument not found, unable to use locator');
-		}
-
-		$links = $this->dom->getElementsByTagName($name);
-		foreach ($links as $link)
-		{
-			if ($this->checked_feeds === $this->max_checked_feeds)
-			{
-				break;
-			}
-			if ($link->hasAttribute('href') && $link->hasAttribute('rel'))
-			{
-				$rel = array_unique($this->registry->call('Misc', 'space_separated_tokens', array(strtolower($link->getAttribute('rel')))));
-				$line = method_exists($link, 'getLineNo') ? $link->getLineNo() : 1;
-
-				if ($this->base_location < $line)
-				{
-					$href = $this->registry->call('Misc', 'absolutize_url', array(trim($link->getAttribute('href')), $this->base));
-				}
-				else
-				{
-					$href = $this->registry->call('Misc', 'absolutize_url', array(trim($link->getAttribute('href')), $this->http_base));
-				}
-				if ($href === false)
-				{
-					continue;
-				}
-
-				if (!in_array($href, $done) && in_array('feed', $rel) || (in_array('alternate', $rel) && !in_array('stylesheet', $rel) && $link->hasAttribute('type') && in_array(strtolower($this->registry->call('Misc', 'parse_mime', array($link->getAttribute('type')))), array('text/html', 'application/rss+xml', 'application/atom+xml'))) && !isset($feeds[$href]))
-				{
-					$this->checked_feeds++;
-					$headers = array(
-						'Accept' => 'application/atom+xml, application/rss+xml, application/rdf+xml;q=0.9, application/xml;q=0.8, text/xml;q=0.8, text/html;q=0.7, unknown/unknown;q=0.1, application/unknown;q=0.1, */*;q=0.1',
-					);
-					$feed = $this->registry->create('File', array($href, $this->timeout, 5, $headers, $this->useragent));
-					if ($feed->success && ($feed->method & SIMPLEPIE_FILE_SOURCE_REMOTE === 0 || ($feed->status_code === 200 || $feed->status_code > 206 && $feed->status_code < 300)) && $this->is_feed($feed, true))
-					{
-						$feeds[$href] = $feed;
-					}
-				}
-				$done[] = $href;
-			}
-		}
-
-		return $feeds;
-	}
-
-	public function get_links()
-	{
-		if ($this->dom === null)
-		{
-			throw new SimplePie_Exception('DOMDocument not found, unable to use locator');
-		}
-
-		$links = $this->dom->getElementsByTagName('a');
-		foreach ($links as $link)
-		{
-			if ($link->hasAttribute('href'))
-			{
-				$href = trim($link->getAttribute('href'));
-				$parsed = $this->registry->call('Misc', 'parse_url', array($href));
-				if ($parsed['scheme'] === '' || preg_match('/^(https?|feed)?$/i', $parsed['scheme']))
-				{
-					if (method_exists($link, 'getLineNo') && $this->base_location < $link->getLineNo())
-					{
-						$href = $this->registry->call('Misc', 'absolutize_url', array(trim($link->getAttribute('href')), $this->base));
-					}
-					else
-					{
-						$href = $this->registry->call('Misc', 'absolutize_url', array(trim($link->getAttribute('href')), $this->http_base));
-					}
-					if ($href === false)
-					{
-						continue;
-					}
-
-					$current = $this->registry->call('Misc', 'parse_url', array($this->file->url));
-
-					if ($parsed['authority'] === '' || $parsed['authority'] === $current['authority'])
-					{
-						$this->local[] = $href;
-					}
-					else
-					{
-						$this->elsewhere[] = $href;
-					}
-				}
-			}
-		}
-		$this->local = array_unique($this->local);
-		$this->elsewhere = array_unique($this->elsewhere);
-		if (!empty($this->local) || !empty($this->elsewhere))
-		{
-			return true;
-		}
-		return null;
-	}
-
-	public function get_rel_link($rel)
-	{
-		if ($this->dom === null)
-		{
-			throw new SimplePie_Exception('DOMDocument not found, unable to use '.
-			                              'locator');
-		}
-		if (!class_exists('DOMXpath'))
-		{
-			throw new SimplePie_Exception('DOMXpath not found, unable to use '.
-			                              'get_rel_link');
-		}
-
-		$xpath = new DOMXpath($this->dom);
-		$query = '//a[@rel and @href] | //link[@rel and @href]';
-		foreach ($xpath->query($query) as $link)
-		{
-			$href = trim($link->getAttribute('href'));
-			$parsed = $this->registry->call('Misc', 'parse_url', array($href));
-			if ($parsed['scheme'] === '' ||
-			    preg_match('/^https?$/i', $parsed['scheme']))
-			{
-				if (method_exists($link, 'getLineNo') &&
-				    $this->base_location < $link->getLineNo())
-				{
-					$href =
-						$this->registry->call('Misc', 'absolutize_url',
-						                      array(trim($link->getAttribute('href')),
-						                            $this->base));
-				}
-				else
-				{
-					$href =
-						$this->registry->call('Misc', 'absolutize_url',
-						                      array(trim($link->getAttribute('href')),
-						                            $this->http_base));
-				}
-				if ($href === false)
-				{
-					return null;
-				}
-				$rel_values = explode(' ', strtolower($link->getAttribute('rel')));
-				if (in_array($rel, $rel_values))
-				{
-					return $href;
-				}
-			}
-		}
-		return null;
-	}
-
-	public function extension(&$array)
-	{
-		foreach ($array as $key => $value)
-		{
-			if ($this->checked_feeds === $this->max_checked_feeds)
-			{
-				break;
-			}
-			if (in_array(strtolower(strrchr($value, '.')), array('.rss', '.rdf', '.atom', '.xml')))
-			{
-				$this->checked_feeds++;
-
-				$headers = array(
-					'Accept' => 'application/atom+xml, application/rss+xml, application/rdf+xml;q=0.9, application/xml;q=0.8, text/xml;q=0.8, text/html;q=0.7, unknown/unknown;q=0.1, application/unknown;q=0.1, */*;q=0.1',
-				);
-				$feed = $this->registry->create('File', array($value, $this->timeout, 5, $headers, $this->useragent));
-				if ($feed->success && ($feed->method & SIMPLEPIE_FILE_SOURCE_REMOTE === 0 || ($feed->status_code === 200 || $feed->status_code > 206 && $feed->status_code < 300)) && $this->is_feed($feed))
-				{
-					return array($feed);
-				}
-				else
-				{
-					unset($array[$key]);
-				}
-			}
-		}
-		return null;
-	}
-
-	public function body(&$array)
-	{
-		foreach ($array as $key => $value)
-		{
-			if ($this->checked_feeds === $this->max_checked_feeds)
-			{
-				break;
-			}
-			if (preg_match('/(rss|rdf|atom|xml)/i', $value))
-			{
-				$this->checked_feeds++;
-				$headers = array(
-					'Accept' => 'application/atom+xml, application/rss+xml, application/rdf+xml;q=0.9, application/xml;q=0.8, text/xml;q=0.8, text/html;q=0.7, unknown/unknown;q=0.1, application/unknown;q=0.1, */*;q=0.1',
-				);
-				$feed = $this->registry->create('File', array($value, $this->timeout, 5, null, $this->useragent));
-				if ($feed->success && ($feed->method & SIMPLEPIE_FILE_SOURCE_REMOTE === 0 || ($feed->status_code === 200 || $feed->status_code > 206 && $feed->status_code < 300)) && $this->is_feed($feed))
-				{
-					return array($feed);
-				}
-				else
-				{
-					unset($array[$key]);
-				}
-			}
-		}
-		return null;
-	}
-}
-
diff --git a/wiki/vendor/simplepie/simplepie/library/SimplePie/Misc.php b/wiki/vendor/simplepie/simplepie/library/SimplePie/Misc.php
deleted file mode 100644
index 2e3107e..0000000
--- a/wiki/vendor/simplepie/simplepie/library/SimplePie/Misc.php
+++ /dev/null
@@ -1,2279 +0,0 @@
-<?php
-/**
- * SimplePie
- *
- * A PHP-Based RSS and Atom Feed Framework.
- * Takes the hard work out of managing a complete RSS/Atom solution.
- *
- * Copyright (c) 2004-2016, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification, are
- * permitted provided that the following conditions are met:
- *
- * 	* Redistributions of source code must retain the above copyright notice, this list of
- * 	  conditions and the following disclaimer.
- *
- * 	* Redistributions in binary form must reproduce the above copyright notice, this list
- * 	  of conditions and the following disclaimer in the documentation and/or other materials
- * 	  provided with the distribution.
- *
- * 	* Neither the name of the SimplePie Team nor the names of its contributors may be used
- * 	  to endorse or promote products derived from this software without specific prior
- * 	  written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
- * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS
- * AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @package SimplePie
- * @copyright 2004-2016 Ryan Parman, Geoffrey Sneddon, Ryan McCue
- * @author Ryan Parman
- * @author Geoffrey Sneddon
- * @author Ryan McCue
- * @link http://simplepie.org/ SimplePie
- * @license http://www.opensource.org/licenses/bsd-license.php BSD License
- */
-
-/**
- * Miscellanous utilities
- *
- * @package SimplePie
- */
-class SimplePie_Misc
-{
-	public static function time_hms($seconds)
-	{
-		$time = '';
-
-		$hours = floor($seconds / 3600);
-		$remainder = $seconds % 3600;
-		if ($hours > 0)
-		{
-			$time .= $hours.':';
-		}
-
-		$minutes = floor($remainder / 60);
-		$seconds = $remainder % 60;
-		if ($minutes < 10 && $hours > 0)
-		{
-			$minutes = '0' . $minutes;
-		}
-		if ($seconds < 10)
-		{
-			$seconds = '0' . $seconds;
-		}
-
-		$time .= $minutes.':';
-		$time .= $seconds;
-
-		return $time;
-	}
-
-	public static function absolutize_url($relative, $base)
-	{
-		$iri = SimplePie_IRI::absolutize(new SimplePie_IRI($base), $relative);
-		if ($iri === false)
-		{
-			return false;
-		}
-		return $iri->get_uri();
-	}
-
-	/**
-	 * Get a HTML/XML element from a HTML string
-	 *
-	 * @deprecated Use DOMDocument instead (parsing HTML with regex is bad!)
-	 * @param string $realname Element name (including namespace prefix if applicable)
-	 * @param string $string HTML document
-	 * @return array
-	 */
-	public static function get_element($realname, $string)
-	{
-		$return = array();
-		$name = preg_quote($realname, '/');
-		if (preg_match_all("/<($name)" . SIMPLEPIE_PCRE_HTML_ATTRIBUTE . "(>(.*)<\/$name>|(\/)?>)/siU", $string, $matches, PREG_SET_ORDER | PREG_OFFSET_CAPTURE))
-		{
-			for ($i = 0, $total_matches = count($matches); $i < $total_matches; $i++)
-			{
-				$return[$i]['tag'] = $realname;
-				$return[$i]['full'] = $matches[$i][0][0];
-				$return[$i]['offset'] = $matches[$i][0][1];
-				if (strlen($matches[$i][3][0]) <= 2)
-				{
-					$return[$i]['self_closing'] = true;
-				}
-				else
-				{
-					$return[$i]['self_closing'] = false;
-					$return[$i]['content'] = $matches[$i][4][0];
-				}
-				$return[$i]['attribs'] = array();
-				if (isset($matches[$i][2][0]) && preg_match_all('/[\x09\x0A\x0B\x0C\x0D\x20]+([^\x09\x0A\x0B\x0C\x0D\x20\x2F\x3E][^\x09\x0A\x0B\x0C\x0D\x20\x2F\x3D\x3E]*)(?:[\x09\x0A\x0B\x0C\x0D\x20]*=[\x09\x0A\x0B\x0C\x0D\x20]*(?:"([^"]*)"|\'([^\']*)\'|([^\x09\x0A\x0B\x0C\x0D\x20\x22\x27\x3E][^\x09\x0A\x0B\x0C\x0D\x20\x3E]*)?))?/', ' ' . $matches[$i][2][0] . ' ', $attribs, PREG_SET_ORDER))
-				{
-					for ($j = 0, $total_attribs = count($attribs); $j < $total_attribs; $j++)
-					{
-						if (count($attribs[$j]) === 2)
-						{
-							$attribs[$j][2] = $attribs[$j][1];
-						}
-						$return[$i]['attribs'][strtolower($attribs[$j][1])]['data'] = SimplePie_Misc::entities_decode(end($attribs[$j]));
-					}
-				}
-			}
-		}
-		return $return;
-	}
-
-	public static function element_implode($element)
-	{
-		$full = "<$element[tag]";
-		foreach ($element['attribs'] as $key => $value)
-		{
-			$key = strtolower($key);
-			$full .= " $key=\"" . htmlspecialchars($value['data'], ENT_COMPAT, 'UTF-8') . '"';
-		}
-		if ($element['self_closing'])
-		{
-			$full .= ' />';
-		}
-		else
-		{
-			$full .= ">$element[content]</$element[tag]>";
-		}
-		return $full;
-	}
-
-	public static function error($message, $level, $file, $line)
-	{
-		if ((ini_get('error_reporting') & $level) > 0)
-		{
-			switch ($level)
-			{
-				case E_USER_ERROR:
-					$note = 'PHP Error';
-					break;
-				case E_USER_WARNING:
-					$note = 'PHP Warning';
-					break;
-				case E_USER_NOTICE:
-					$note = 'PHP Notice';
-					break;
-				default:
-					$note = 'Unknown Error';
-					break;
-			}
-
-			$log_error = true;
-			if (!function_exists('error_log'))
-			{
-				$log_error = false;
-			}
-
-			$log_file = @ini_get('error_log');
-			if (!empty($log_file) && ('syslog' !== $log_file) && !@is_writable($log_file))
-			{
-				$log_error = false;
-			}
-
-			if ($log_error)
-			{
-				@error_log("$note: $message in $file on line $line", 0);
-			}
-		}
-
-		return $message;
-	}
-
-	public static function fix_protocol($url, $http = 1)
-	{
-		$url = SimplePie_Misc::normalize_url($url);
-		$parsed = SimplePie_Misc::parse_url($url);
-		if ($parsed['scheme'] !== '' && $parsed['scheme'] !== 'http' && $parsed['scheme'] !== 'https')
-		{
-			return SimplePie_Misc::fix_protocol(SimplePie_Misc::compress_parse_url('http', $parsed['authority'], $parsed['path'], $parsed['query'], $parsed['fragment']), $http);
-		}
-
-		if ($parsed['scheme'] === '' && $parsed['authority'] === '' && !file_exists($url))
-		{
-			return SimplePie_Misc::fix_protocol(SimplePie_Misc::compress_parse_url('http', $parsed['path'], '', $parsed['query'], $parsed['fragment']), $http);
-		}
-
-		if ($http === 2 && $parsed['scheme'] !== '')
-		{
-			return "feed:$url";
-		}
-		elseif ($http === 3 && strtolower($parsed['scheme']) === 'http')
-		{
-			return substr_replace($url, 'podcast', 0, 4);
-		}
-		elseif ($http === 4 && strtolower($parsed['scheme']) === 'http')
-		{
-			return substr_replace($url, 'itpc', 0, 4);
-		}
-		else
-		{
-			return $url;
-		}
-	}
-
-	public static function array_merge_recursive($array1, $array2)
-	{
-		foreach ($array2 as $key => $value)
-		{
-			if (is_array($value))
-			{
-				$array1[$key] = SimplePie_Misc::array_merge_recursive($array1[$key], $value);
-			}
-			else
-			{
-				$array1[$key] = $value;
-			}            
-		}
-		
-		return $array1;
-	}
-
-	public static function parse_url($url)
-	{
-		$iri = new SimplePie_IRI($url);
-		return array(
-			'scheme' => (string) $iri->scheme,
-			'authority' => (string) $iri->authority,
-			'path' => (string) $iri->path,
-			'query' => (string) $iri->query,
-			'fragment' => (string) $iri->fragment
-		);
-	}
-
-	public static function compress_parse_url($scheme = '', $authority = '', $path = '', $query = '', $fragment = '')
-	{
-		$iri = new SimplePie_IRI('');
-		$iri->scheme = $scheme;
-		$iri->authority = $authority;
-		$iri->path = $path;
-		$iri->query = $query;
-		$iri->fragment = $fragment;
-		return $iri->get_uri();
-	}
-
-	public static function normalize_url($url)
-	{
-		$iri = new SimplePie_IRI($url);
-		return $iri->get_uri();
-	}
-
-	public static function percent_encoding_normalization($match)
-	{
-		$integer = hexdec($match[1]);
-		if ($integer >= 0x41 && $integer <= 0x5A || $integer >= 0x61 && $integer <= 0x7A || $integer >= 0x30 && $integer <= 0x39 || $integer === 0x2D || $integer === 0x2E || $integer === 0x5F || $integer === 0x7E)
-		{
-			return chr($integer);
-		}
-		else
-		{
-			return strtoupper($match[0]);
-		}
-	}
-
-	/**
-	 * Converts a Windows-1252 encoded string to a UTF-8 encoded string
-	 *
-	 * @static
-	 * @param string $string Windows-1252 encoded string
-	 * @return string UTF-8 encoded string
-	 */
-	public static function windows_1252_to_utf8($string)
-	{
-		static $convert_table = array("\x80" => "\xE2\x82\xAC", "\x81" => "\xEF\xBF\xBD", "\x82" => "\xE2\x80\x9A", "\x83" => "\xC6\x92", "\x84" => "\xE2\x80\x9E", "\x85" => "\xE2\x80\xA6", "\x86" => "\xE2\x80\xA0", "\x87" => "\xE2\x80\xA1", "\x88" => "\xCB\x86", "\x89" => "\xE2\x80\xB0", "\x8A" => "\xC5\xA0", "\x8B" => "\xE2\x80\xB9", "\x8C" => "\xC5\x92", "\x8D" => "\xEF\xBF\xBD", "\x8E" => "\xC5\xBD", "\x8F" => "\xEF\xBF\xBD", "\x90" => "\xEF\xBF\xBD", "\x91" => "\xE2\x80\x98", "\x92" => "\xE2\x80\x99", "\x93" => "\xE2\x80\x9C", "\x94" => "\xE2\x80\x9D", "\x95" => "\xE2\x80\xA2", "\x96" => "\xE2\x80\x93", "\x97" => "\xE2\x80\x94", "\x98" => "\xCB\x9C", "\x99" => "\xE2\x84\xA2", "\x9A" => "\xC5\xA1", "\x9B" => "\xE2\x80\xBA", "\x9C" => "\xC5\x93", "\x9D" => "\xEF\xBF\xBD", "\x9E" => "\xC5\xBE", "\x9F" => "\xC5\xB8", "\xA0" => "\xC2\xA0", "\xA1" => "\xC2\xA1", "\xA2" => "\xC2\xA2", "\xA3" => "\xC2\xA3", "\xA4" => "\xC2\xA4", "\xA5" => "\xC2\xA5", "\xA6" => "\xC2\xA6", "\xA7" => "\xC2\xA7", "\xA8" => "\xC2\xA8", "\xA9" => "\xC2\xA9", "\xAA" => "\xC2\xAA", "\xAB" => "\xC2\xAB", "\xAC" => "\xC2\xAC", "\xAD" => "\xC2\xAD", "\xAE" => "\xC2\xAE", "\xAF" => "\xC2\xAF", "\xB0" => "\xC2\xB0", "\xB1" => "\xC2\xB1", "\xB2" => "\xC2\xB2", "\xB3" => "\xC2\xB3", "\xB4" => "\xC2\xB4", "\xB5" => "\xC2\xB5", "\xB6" => "\xC2\xB6", "\xB7" => "\xC2\xB7", "\xB8" => "\xC2\xB8", "\xB9" => "\xC2\xB9", "\xBA" => "\xC2\xBA", "\xBB" => "\xC2\xBB", "\xBC" => "\xC2\xBC", "\xBD" => "\xC2\xBD", "\xBE" => "\xC2\xBE", "\xBF" => "\xC2\xBF", "\xC0" => "\xC3\x80", "\xC1" => "\xC3\x81", "\xC2" => "\xC3\x82", "\xC3" => "\xC3\x83", "\xC4" => "\xC3\x84", "\xC5" => "\xC3\x85", "\xC6" => "\xC3\x86", "\xC7" => "\xC3\x87", "\xC8" => "\xC3\x88", "\xC9" => "\xC3\x89", "\xCA" => "\xC3\x8A", "\xCB" => "\xC3\x8B", "\xCC" => "\xC3\x8C", "\xCD" => "\xC3\x8D", "\xCE" => "\xC3\x8E", "\xCF" => "\xC3\x8F", "\xD0" => "\xC3\x90", "\xD1" => "\xC3\x91", "\xD2" => "\xC3\x92", "\xD3" => "\xC3\x93", "\xD4" => "\xC3\x94", "\xD5" => "\xC3\x95", "\xD6" => "\xC3\x96", "\xD7" => "\xC3\x97", "\xD8" => "\xC3\x98", "\xD9" => "\xC3\x99", "\xDA" => "\xC3\x9A", "\xDB" => "\xC3\x9B", "\xDC" => "\xC3\x9C", "\xDD" => "\xC3\x9D", "\xDE" => "\xC3\x9E", "\xDF" => "\xC3\x9F", "\xE0" => "\xC3\xA0", "\xE1" => "\xC3\xA1", "\xE2" => "\xC3\xA2", "\xE3" => "\xC3\xA3", "\xE4" => "\xC3\xA4", "\xE5" => "\xC3\xA5", "\xE6" => "\xC3\xA6", "\xE7" => "\xC3\xA7", "\xE8" => "\xC3\xA8", "\xE9" => "\xC3\xA9", "\xEA" => "\xC3\xAA", "\xEB" => "\xC3\xAB", "\xEC" => "\xC3\xAC", "\xED" => "\xC3\xAD", "\xEE" => "\xC3\xAE", "\xEF" => "\xC3\xAF", "\xF0" => "\xC3\xB0", "\xF1" => "\xC3\xB1", "\xF2" => "\xC3\xB2", "\xF3" => "\xC3\xB3", "\xF4" => "\xC3\xB4", "\xF5" => "\xC3\xB5", "\xF6" => "\xC3\xB6", "\xF7" => "\xC3\xB7", "\xF8" => "\xC3\xB8", "\xF9" => "\xC3\xB9", "\xFA" => "\xC3\xBA", "\xFB" => "\xC3\xBB", "\xFC" => "\xC3\xBC", "\xFD" => "\xC3\xBD", "\xFE" => "\xC3\xBE", "\xFF" => "\xC3\xBF");
-
-		return strtr($string, $convert_table);
-	}
-
-	/**
-	 * Change a string from one encoding to another
-	 *
-	 * @param string $data Raw data in $input encoding
-	 * @param string $input Encoding of $data
-	 * @param string $output Encoding you want
-	 * @return string|boolean False if we can't convert it
-	 */
-	public static function change_encoding($data, $input, $output)
-	{
-		$input = SimplePie_Misc::encoding($input);
-		$output = SimplePie_Misc::encoding($output);
-
-		// We fail to fail on non US-ASCII bytes
-		if ($input === 'US-ASCII')
-		{
-			static $non_ascii_octects = '';
-			if (!$non_ascii_octects)
-			{
-				for ($i = 0x80; $i <= 0xFF; $i++)
-				{
-					$non_ascii_octects .= chr($i);
-				}
-			}
-			$data = substr($data, 0, strcspn($data, $non_ascii_octects));
-		}
-
-		// This is first, as behaviour of this is completely predictable
-		if ($input === 'windows-1252' && $output === 'UTF-8')
-		{
-			return SimplePie_Misc::windows_1252_to_utf8($data);
-		}
-		// This is second, as behaviour of this varies only with PHP version (the middle part of this expression checks the encoding is supported).
-		elseif (function_exists('mb_convert_encoding') && ($return = SimplePie_Misc::change_encoding_mbstring($data, $input, $output)))
-		{
-			return $return;
- 		}
-		// This is third, as behaviour of this varies with OS userland and PHP version
-		elseif (function_exists('iconv') && ($return = SimplePie_Misc::change_encoding_iconv($data, $input, $output)))
-		{
-			return $return;
-		}
-		// This is last, as behaviour of this varies with OS userland and PHP version
-		elseif (class_exists('\UConverter') && ($return = SimplePie_Misc::change_encoding_uconverter($data, $input, $output)))
-		{
-			return $return;
-		}
-		// If we can't do anything, just fail
-		else
-		{
-			return false;
-		}
-	}
-
-	protected static function change_encoding_mbstring($data, $input, $output)
-	{
-		if ($input === 'windows-949')
-		{
-			$input = 'EUC-KR';
-		}
-		if ($output === 'windows-949')
-		{
-			$output = 'EUC-KR';
-		}
-		if ($input === 'Windows-31J')
-		{
-			$input = 'SJIS';
-		}
-		if ($output === 'Windows-31J')
-		{
-			$output = 'SJIS';
-		}
-
-		// Check that the encoding is supported
-		if (@mb_convert_encoding("\x80", 'UTF-16BE', $input) === "\x00\x80")
-		{
-			return false;
-		}
-		if (!in_array($input, mb_list_encodings()))
-		{
-			return false;
-		}
-
-		// Let's do some conversion
-		if ($return = @mb_convert_encoding($data, $output, $input))
-		{
-			return $return;
-		}
-
-		return false;
-	}
-
-	protected static function change_encoding_iconv($data, $input, $output)
-	{
-		return @iconv($input, $output, $data);
-	}
-
-	/**
-	 * @param string $data
-	 * @param string $input
-	 * @param string $output
-	 * @return string|false
-	 */
-	protected static function change_encoding_uconverter($data, $input, $output)
-	{
-		return @\UConverter::transcode($data, $output, $input);
-	}
-
-	/**
-	 * Normalize an encoding name
-	 *
-	 * This is automatically generated by create.php
-	 *
-	 * To generate it, run `php create.php` on the command line, and copy the
-	 * output to replace this function.
-	 *
-	 * @param string $charset Character set to standardise
-	 * @return string Standardised name
-	 */
-	public static function encoding($charset)
-	{
-		// Normalization from UTS #22
-		switch (strtolower(preg_replace('/(?:[^a-zA-Z0-9]+|([^0-9])0+)/', '\1', $charset)))
-		{
-			case 'adobestandardencoding':
-			case 'csadobestandardencoding':
-				return 'Adobe-Standard-Encoding';
-
-			case 'adobesymbolencoding':
-			case 'cshppsmath':
-				return 'Adobe-Symbol-Encoding';
-
-			case 'ami1251':
-			case 'amiga1251':
-				return 'Amiga-1251';
-
-			case 'ansix31101983':
-			case 'csat5001983':
-			case 'csiso99naplps':
-			case 'isoir99':
-			case 'naplps':
-				return 'ANSI_X3.110-1983';
-
-			case 'arabic7':
-			case 'asmo449':
-			case 'csiso89asmo449':
-			case 'iso9036':
-			case 'isoir89':
-				return 'ASMO_449';
-
-			case 'big5':
-			case 'csbig5':
-				return 'Big5';
-
-			case 'big5hkscs':
-				return 'Big5-HKSCS';
-
-			case 'bocu1':
-			case 'csbocu1':
-				return 'BOCU-1';
-
-			case 'brf':
-			case 'csbrf':
-				return 'BRF';
-
-			case 'bs4730':
-			case 'csiso4unitedkingdom':
-			case 'gb':
-			case 'iso646gb':
-			case 'isoir4':
-			case 'uk':
-				return 'BS_4730';
-
-			case 'bsviewdata':
-			case 'csiso47bsviewdata':
-			case 'isoir47':
-				return 'BS_viewdata';
-
-			case 'cesu8':
-			case 'cscesu8':
-				return 'CESU-8';
-
-			case 'ca':
-			case 'csa71':
-			case 'csaz243419851':
-			case 'csiso121canadian1':
-			case 'iso646ca':
-			case 'isoir121':
-				return 'CSA_Z243.4-1985-1';
-
-			case 'csa72':
-			case 'csaz243419852':
-			case 'csiso122canadian2':
-			case 'iso646ca2':
-			case 'isoir122':
-				return 'CSA_Z243.4-1985-2';
-
-			case 'csaz24341985gr':
-			case 'csiso123csaz24341985gr':
-			case 'isoir123':
-				return 'CSA_Z243.4-1985-gr';
-
-			case 'csiso139csn369103':
-			case 'csn369103':
-			case 'isoir139':
-				return 'CSN_369103';
-
-			case 'csdecmcs':
-			case 'dec':
-			case 'decmcs':
-				return 'DEC-MCS';
-
-			case 'csiso21german':
-			case 'de':
-			case 'din66003':
-			case 'iso646de':
-			case 'isoir21':
-				return 'DIN_66003';
-
-			case 'csdkus':
-			case 'dkus':
-				return 'dk-us';
-
-			case 'csiso646danish':
-			case 'dk':
-			case 'ds2089':
-			case 'iso646dk':
-				return 'DS_2089';
-
-			case 'csibmebcdicatde':
-			case 'ebcdicatde':
-				return 'EBCDIC-AT-DE';
-
-			case 'csebcdicatdea':
-			case 'ebcdicatdea':
-				return 'EBCDIC-AT-DE-A';
-
-			case 'csebcdiccafr':
-			case 'ebcdiccafr':
-				return 'EBCDIC-CA-FR';
-
-			case 'csebcdicdkno':
-			case 'ebcdicdkno':
-				return 'EBCDIC-DK-NO';
-
-			case 'csebcdicdknoa':
-			case 'ebcdicdknoa':
-				return 'EBCDIC-DK-NO-A';
-
-			case 'csebcdices':
-			case 'ebcdices':
-				return 'EBCDIC-ES';
-
-			case 'csebcdicesa':
-			case 'ebcdicesa':
-				return 'EBCDIC-ES-A';
-
-			case 'csebcdicess':
-			case 'ebcdicess':
-				return 'EBCDIC-ES-S';
-
-			case 'csebcdicfise':
-			case 'ebcdicfise':
-				return 'EBCDIC-FI-SE';
-
-			case 'csebcdicfisea':
-			case 'ebcdicfisea':
-				return 'EBCDIC-FI-SE-A';
-
-			case 'csebcdicfr':
-			case 'ebcdicfr':
-				return 'EBCDIC-FR';
-
-			case 'csebcdicit':
-			case 'ebcdicit':
-				return 'EBCDIC-IT';
-
-			case 'csebcdicpt':
-			case 'ebcdicpt':
-				return 'EBCDIC-PT';
-
-			case 'csebcdicuk':
-			case 'ebcdicuk':
-				return 'EBCDIC-UK';
-
-			case 'csebcdicus':
-			case 'ebcdicus':
-				return 'EBCDIC-US';
-
-			case 'csiso111ecmacyrillic':
-			case 'ecmacyrillic':
-			case 'isoir111':
-			case 'koi8e':
-				return 'ECMA-cyrillic';
-
-			case 'csiso17spanish':
-			case 'es':
-			case 'iso646es':
-			case 'isoir17':
-				return 'ES';
-
-			case 'csiso85spanish2':
-			case 'es2':
-			case 'iso646es2':
-			case 'isoir85':
-				return 'ES2';
-
-			case 'cseucpkdfmtjapanese':
-			case 'eucjp':
-			case 'extendedunixcodepackedformatforjapanese':
-				return 'EUC-JP';
-
-			case 'cseucfixwidjapanese':
-			case 'extendedunixcodefixedwidthforjapanese':
-				return 'Extended_UNIX_Code_Fixed_Width_for_Japanese';
-
-			case 'gb18030':
-				return 'GB18030';
-
-			case 'chinese':
-			case 'cp936':
-			case 'csgb2312':
-			case 'csiso58gb231280':
-			case 'gb2312':
-			case 'gb231280':
-			case 'gbk':
-			case 'isoir58':
-			case 'ms936':
-			case 'windows936':
-				return 'GBK';
-
-			case 'cn':
-			case 'csiso57gb1988':
-			case 'gb198880':
-			case 'iso646cn':
-			case 'isoir57':
-				return 'GB_1988-80';
-
-			case 'csiso153gost1976874':
-			case 'gost1976874':
-			case 'isoir153':
-			case 'stsev35888':
-				return 'GOST_19768-74';
-
-			case 'csiso150':
-			case 'csiso150greekccitt':
-			case 'greekccitt':
-			case 'isoir150':
-				return 'greek-ccitt';
-
-			case 'csiso88greek7':
-			case 'greek7':
-			case 'isoir88':
-				return 'greek7';
-
-			case 'csiso18greek7old':
-			case 'greek7old':
-			case 'isoir18':
-				return 'greek7-old';
-
-			case 'cshpdesktop':
-			case 'hpdesktop':
-				return 'HP-DeskTop';
-
-			case 'cshplegal':
-			case 'hplegal':
-				return 'HP-Legal';
-
-			case 'cshpmath8':
-			case 'hpmath8':
-				return 'HP-Math8';
-
-			case 'cshppifont':
-			case 'hppifont':
-				return 'HP-Pi-font';
-
-			case 'cshproman8':
-			case 'hproman8':
-			case 'r8':
-			case 'roman8':
-				return 'hp-roman8';
-
-			case 'hzgb2312':
-				return 'HZ-GB-2312';
-
-			case 'csibmsymbols':
-			case 'ibmsymbols':
-				return 'IBM-Symbols';
-
-			case 'csibmthai':
-			case 'ibmthai':
-				return 'IBM-Thai';
-
-			case 'cp37':
-			case 'csibm37':
-			case 'ebcdiccpca':
-			case 'ebcdiccpnl':
-			case 'ebcdiccpus':
-			case 'ebcdiccpwt':
-			case 'ibm37':
-				return 'IBM037';
-
-			case 'cp38':
-			case 'csibm38':
-			case 'ebcdicint':
-			case 'ibm38':
-				return 'IBM038';
-
-			case 'cp273':
-			case 'csibm273':
-			case 'ibm273':
-				return 'IBM273';
-
-			case 'cp274':
-			case 'csibm274':
-			case 'ebcdicbe':
-			case 'ibm274':
-				return 'IBM274';
-
-			case 'cp275':
-			case 'csibm275':
-			case 'ebcdicbr':
-			case 'ibm275':
-				return 'IBM275';
-
-			case 'csibm277':
-			case 'ebcdiccpdk':
-			case 'ebcdiccpno':
-			case 'ibm277':
-				return 'IBM277';
-
-			case 'cp278':
-			case 'csibm278':
-			case 'ebcdiccpfi':
-			case 'ebcdiccpse':
-			case 'ibm278':
-				return 'IBM278';
-
-			case 'cp280':
-			case 'csibm280':
-			case 'ebcdiccpit':
-			case 'ibm280':
-				return 'IBM280';
-
-			case 'cp281':
-			case 'csibm281':
-			case 'ebcdicjpe':
-			case 'ibm281':
-				return 'IBM281';
-
-			case 'cp284':
-			case 'csibm284':
-			case 'ebcdiccpes':
-			case 'ibm284':
-				return 'IBM284';
-
-			case 'cp285':
-			case 'csibm285':
-			case 'ebcdiccpgb':
-			case 'ibm285':
-				return 'IBM285';
-
-			case 'cp290':
-			case 'csibm290':
-			case 'ebcdicjpkana':
-			case 'ibm290':
-				return 'IBM290';
-
-			case 'cp297':
-			case 'csibm297':
-			case 'ebcdiccpfr':
-			case 'ibm297':
-				return 'IBM297';
-
-			case 'cp420':
-			case 'csibm420':
-			case 'ebcdiccpar1':
-			case 'ibm420':
-				return 'IBM420';
-
-			case 'cp423':
-			case 'csibm423':
-			case 'ebcdiccpgr':
-			case 'ibm423':
-				return 'IBM423';
-
-			case 'cp424':
-			case 'csibm424':
-			case 'ebcdiccphe':
-			case 'ibm424':
-				return 'IBM424';
-
-			case '437':
-			case 'cp437':
-			case 'cspc8codepage437':
-			case 'ibm437':
-				return 'IBM437';
-
-			case 'cp500':
-			case 'csibm500':
-			case 'ebcdiccpbe':
-			case 'ebcdiccpch':
-			case 'ibm500':
-				return 'IBM500';
-
-			case 'cp775':
-			case 'cspc775baltic':
-			case 'ibm775':
-				return 'IBM775';
-
-			case '850':
-			case 'cp850':
-			case 'cspc850multilingual':
-			case 'ibm850':
-				return 'IBM850';
-
-			case '851':
-			case 'cp851':
-			case 'csibm851':
-			case 'ibm851':
-				return 'IBM851';
-
-			case '852':
-			case 'cp852':
-			case 'cspcp852':
-			case 'ibm852':
-				return 'IBM852';
-
-			case '855':
-			case 'cp855':
-			case 'csibm855':
-			case 'ibm855':
-				return 'IBM855';
-
-			case '857':
-			case 'cp857':
-			case 'csibm857':
-			case 'ibm857':
-				return 'IBM857';
-
-			case 'ccsid858':
-			case 'cp858':
-			case 'ibm858':
-			case 'pcmultilingual850euro':
-				return 'IBM00858';
-
-			case '860':
-			case 'cp860':
-			case 'csibm860':
-			case 'ibm860':
-				return 'IBM860';
-
-			case '861':
-			case 'cp861':
-			case 'cpis':
-			case 'csibm861':
-			case 'ibm861':
-				return 'IBM861';
-
-			case '862':
-			case 'cp862':
-			case 'cspc862latinhebrew':
-			case 'ibm862':
-				return 'IBM862';
-
-			case '863':
-			case 'cp863':
-			case 'csibm863':
-			case 'ibm863':
-				return 'IBM863';
-
-			case 'cp864':
-			case 'csibm864':
-			case 'ibm864':
-				return 'IBM864';
-
-			case '865':
-			case 'cp865':
-			case 'csibm865':
-			case 'ibm865':
-				return 'IBM865';
-
-			case '866':
-			case 'cp866':
-			case 'csibm866':
-			case 'ibm866':
-				return 'IBM866';
-
-			case 'cp868':
-			case 'cpar':
-			case 'csibm868':
-			case 'ibm868':
-				return 'IBM868';
-
-			case '869':
-			case 'cp869':
-			case 'cpgr':
-			case 'csibm869':
-			case 'ibm869':
-				return 'IBM869';
-
-			case 'cp870':
-			case 'csibm870':
-			case 'ebcdiccproece':
-			case 'ebcdiccpyu':
-			case 'ibm870':
-				return 'IBM870';
-
-			case 'cp871':
-			case 'csibm871':
-			case 'ebcdiccpis':
-			case 'ibm871':
-				return 'IBM871';
-
-			case 'cp880':
-			case 'csibm880':
-			case 'ebcdiccyrillic':
-			case 'ibm880':
-				return 'IBM880';
-
-			case 'cp891':
-			case 'csibm891':
-			case 'ibm891':
-				return 'IBM891';
-
-			case 'cp903':
-			case 'csibm903':
-			case 'ibm903':
-				return 'IBM903';
-
-			case '904':
-			case 'cp904':
-			case 'csibbm904':
-			case 'ibm904':
-				return 'IBM904';
-
-			case 'cp905':
-			case 'csibm905':
-			case 'ebcdiccptr':
-			case 'ibm905':
-				return 'IBM905';
-
-			case 'cp918':
-			case 'csibm918':
-			case 'ebcdiccpar2':
-			case 'ibm918':
-				return 'IBM918';
-
-			case 'ccsid924':
-			case 'cp924':
-			case 'ebcdiclatin9euro':
-			case 'ibm924':
-				return 'IBM00924';
-
-			case 'cp1026':
-			case 'csibm1026':
-			case 'ibm1026':
-				return 'IBM1026';
-
-			case 'ibm1047':
-				return 'IBM1047';
-
-			case 'ccsid1140':
-			case 'cp1140':
-			case 'ebcdicus37euro':
-			case 'ibm1140':
-				return 'IBM01140';
-
-			case 'ccsid1141':
-			case 'cp1141':
-			case 'ebcdicde273euro':
-			case 'ibm1141':
-				return 'IBM01141';
-
-			case 'ccsid1142':
-			case 'cp1142':
-			case 'ebcdicdk277euro':
-			case 'ebcdicno277euro':
-			case 'ibm1142':
-				return 'IBM01142';
-
-			case 'ccsid1143':
-			case 'cp1143':
-			case 'ebcdicfi278euro':
-			case 'ebcdicse278euro':
-			case 'ibm1143':
-				return 'IBM01143';
-
-			case 'ccsid1144':
-			case 'cp1144':
-			case 'ebcdicit280euro':
-			case 'ibm1144':
-				return 'IBM01144';
-
-			case 'ccsid1145':
-			case 'cp1145':
-			case 'ebcdices284euro':
-			case 'ibm1145':
-				return 'IBM01145';
-
-			case 'ccsid1146':
-			case 'cp1146':
-			case 'ebcdicgb285euro':
-			case 'ibm1146':
-				return 'IBM01146';
-
-			case 'ccsid1147':
-			case 'cp1147':
-			case 'ebcdicfr297euro':
-			case 'ibm1147':
-				return 'IBM01147';
-
-			case 'ccsid1148':
-			case 'cp1148':
-			case 'ebcdicinternational500euro':
-			case 'ibm1148':
-				return 'IBM01148';
-
-			case 'ccsid1149':
-			case 'cp1149':
-			case 'ebcdicis871euro':
-			case 'ibm1149':
-				return 'IBM01149';
-
-			case 'csiso143iecp271':
-			case 'iecp271':
-			case 'isoir143':
-				return 'IEC_P27-1';
-
-			case 'csiso49inis':
-			case 'inis':
-			case 'isoir49':
-				return 'INIS';
-
-			case 'csiso50inis8':
-			case 'inis8':
-			case 'isoir50':
-				return 'INIS-8';
-
-			case 'csiso51iniscyrillic':
-			case 'iniscyrillic':
-			case 'isoir51':
-				return 'INIS-cyrillic';
-
-			case 'csinvariant':
-			case 'invariant':
-				return 'INVARIANT';
-
-			case 'iso2022cn':
-				return 'ISO-2022-CN';
-
-			case 'iso2022cnext':
-				return 'ISO-2022-CN-EXT';
-
-			case 'csiso2022jp':
-			case 'iso2022jp':
-				return 'ISO-2022-JP';
-
-			case 'csiso2022jp2':
-			case 'iso2022jp2':
-				return 'ISO-2022-JP-2';
-
-			case 'csiso2022kr':
-			case 'iso2022kr':
-				return 'ISO-2022-KR';
-
-			case 'cswindows30latin1':
-			case 'iso88591windows30latin1':
-				return 'ISO-8859-1-Windows-3.0-Latin-1';
-
-			case 'cswindows31latin1':
-			case 'iso88591windows31latin1':
-				return 'ISO-8859-1-Windows-3.1-Latin-1';
-
-			case 'csisolatin2':
-			case 'iso88592':
-			case 'iso885921987':
-			case 'isoir101':
-			case 'l2':
-			case 'latin2':
-				return 'ISO-8859-2';
-
-			case 'cswindows31latin2':
-			case 'iso88592windowslatin2':
-				return 'ISO-8859-2-Windows-Latin-2';
-
-			case 'csisolatin3':
-			case 'iso88593':
-			case 'iso885931988':
-			case 'isoir109':
-			case 'l3':
-			case 'latin3':
-				return 'ISO-8859-3';
-
-			case 'csisolatin4':
-			case 'iso88594':
-			case 'iso885941988':
-			case 'isoir110':
-			case 'l4':
-			case 'latin4':
-				return 'ISO-8859-4';
-
-			case 'csisolatincyrillic':
-			case 'cyrillic':
-			case 'iso88595':
-			case 'iso885951988':
-			case 'isoir144':
-				return 'ISO-8859-5';
-
-			case 'arabic':
-			case 'asmo708':
-			case 'csisolatinarabic':
-			case 'ecma114':
-			case 'iso88596':
-			case 'iso885961987':
-			case 'isoir127':
-				return 'ISO-8859-6';
-
-			case 'csiso88596e':
-			case 'iso88596e':
-				return 'ISO-8859-6-E';
-
-			case 'csiso88596i':
-			case 'iso88596i':
-				return 'ISO-8859-6-I';
-
-			case 'csisolatingreek':
-			case 'ecma118':
-			case 'elot928':
-			case 'greek':
-			case 'greek8':
-			case 'iso88597':
-			case 'iso885971987':
-			case 'isoir126':
-				return 'ISO-8859-7';
-
-			case 'csisolatinhebrew':
-			case 'hebrew':
-			case 'iso88598':
-			case 'iso885981988':
-			case 'isoir138':
-				return 'ISO-8859-8';
-
-			case 'csiso88598e':
-			case 'iso88598e':
-				return 'ISO-8859-8-E';
-
-			case 'csiso88598i':
-			case 'iso88598i':
-				return 'ISO-8859-8-I';
-
-			case 'cswindows31latin5':
-			case 'iso88599windowslatin5':
-				return 'ISO-8859-9-Windows-Latin-5';
-
-			case 'csisolatin6':
-			case 'iso885910':
-			case 'iso8859101992':
-			case 'isoir157':
-			case 'l6':
-			case 'latin6':
-				return 'ISO-8859-10';
-
-			case 'iso885913':
-				return 'ISO-8859-13';
-
-			case 'iso885914':
-			case 'iso8859141998':
-			case 'isoceltic':
-			case 'isoir199':
-			case 'l8':
-			case 'latin8':
-				return 'ISO-8859-14';
-
-			case 'iso885915':
-			case 'latin9':
-				return 'ISO-8859-15';
-
-			case 'iso885916':
-			case 'iso8859162001':
-			case 'isoir226':
-			case 'l10':
-			case 'latin10':
-				return 'ISO-8859-16';
-
-			case 'iso10646j1':
-				return 'ISO-10646-J-1';
-
-			case 'csunicode':
-			case 'iso10646ucs2':
-				return 'ISO-10646-UCS-2';
-
-			case 'csucs4':
-			case 'iso10646ucs4':
-				return 'ISO-10646-UCS-4';
-
-			case 'csunicodeascii':
-			case 'iso10646ucsbasic':
-				return 'ISO-10646-UCS-Basic';
-
-			case 'csunicodelatin1':
-			case 'iso10646':
-			case 'iso10646unicodelatin1':
-				return 'ISO-10646-Unicode-Latin1';
-
-			case 'csiso10646utf1':
-			case 'iso10646utf1':
-				return 'ISO-10646-UTF-1';
-
-			case 'csiso115481':
-			case 'iso115481':
-			case 'isotr115481':
-				return 'ISO-11548-1';
-
-			case 'csiso90':
-			case 'isoir90':
-				return 'iso-ir-90';
-
-			case 'csunicodeibm1261':
-			case 'isounicodeibm1261':
-				return 'ISO-Unicode-IBM-1261';
-
-			case 'csunicodeibm1264':
-			case 'isounicodeibm1264':
-				return 'ISO-Unicode-IBM-1264';
-
-			case 'csunicodeibm1265':
-			case 'isounicodeibm1265':
-				return 'ISO-Unicode-IBM-1265';
-
-			case 'csunicodeibm1268':
-			case 'isounicodeibm1268':
-				return 'ISO-Unicode-IBM-1268';
-
-			case 'csunicodeibm1276':
-			case 'isounicodeibm1276':
-				return 'ISO-Unicode-IBM-1276';
-
-			case 'csiso646basic1983':
-			case 'iso646basic1983':
-			case 'ref':
-				return 'ISO_646.basic:1983';
-
-			case 'csiso2intlrefversion':
-			case 'irv':
-			case 'iso646irv1983':
-			case 'isoir2':
-				return 'ISO_646.irv:1983';
-
-			case 'csiso2033':
-			case 'e13b':
-			case 'iso20331983':
-			case 'isoir98':
-				return 'ISO_2033-1983';
-
-			case 'csiso5427cyrillic':
-			case 'iso5427':
-			case 'isoir37':
-				return 'ISO_5427';
-
-			case 'iso5427cyrillic1981':
-			case 'iso54271981':
-			case 'isoir54':
-				return 'ISO_5427:1981';
-
-			case 'csiso5428greek':
-			case 'iso54281980':
-			case 'isoir55':
-				return 'ISO_5428:1980';
-
-			case 'csiso6937add':
-			case 'iso6937225':
-			case 'isoir152':
-				return 'ISO_6937-2-25';
-
-			case 'csisotextcomm':
-			case 'iso69372add':
-			case 'isoir142':
-				return 'ISO_6937-2-add';
-
-			case 'csiso8859supp':
-			case 'iso8859supp':
-			case 'isoir154':
-			case 'latin125':
-				return 'ISO_8859-supp';
-
-			case 'csiso10367box':
-			case 'iso10367box':
-			case 'isoir155':
-				return 'ISO_10367-box';
-
-			case 'csiso15italian':
-			case 'iso646it':
-			case 'isoir15':
-			case 'it':
-				return 'IT';
-
-			case 'csiso13jisc6220jp':
-			case 'isoir13':
-			case 'jisc62201969':
-			case 'jisc62201969jp':
-			case 'katakana':
-			case 'x2017':
-				return 'JIS_C6220-1969-jp';
-
-			case 'csiso14jisc6220ro':
-			case 'iso646jp':
-			case 'isoir14':
-			case 'jisc62201969ro':
-			case 'jp':
-				return 'JIS_C6220-1969-ro';
-
-			case 'csiso42jisc62261978':
-			case 'isoir42':
-			case 'jisc62261978':
-				return 'JIS_C6226-1978';
-
-			case 'csiso87jisx208':
-			case 'isoir87':
-			case 'jisc62261983':
-			case 'jisx2081983':
-			case 'x208':
-				return 'JIS_C6226-1983';
-
-			case 'csiso91jisc62291984a':
-			case 'isoir91':
-			case 'jisc62291984a':
-			case 'jpocra':
-				return 'JIS_C6229-1984-a';
-
-			case 'csiso92jisc62991984b':
-			case 'iso646jpocrb':
-			case 'isoir92':
-			case 'jisc62291984b':
-			case 'jpocrb':
-				return 'JIS_C6229-1984-b';
-
-			case 'csiso93jis62291984badd':
-			case 'isoir93':
-			case 'jisc62291984badd':
-			case 'jpocrbadd':
-				return 'JIS_C6229-1984-b-add';
-
-			case 'csiso94jis62291984hand':
-			case 'isoir94':
-			case 'jisc62291984hand':
-			case 'jpocrhand':
-				return 'JIS_C6229-1984-hand';
-
-			case 'csiso95jis62291984handadd':
-			case 'isoir95':
-			case 'jisc62291984handadd':
-			case 'jpocrhandadd':
-				return 'JIS_C6229-1984-hand-add';
-
-			case 'csiso96jisc62291984kana':
-			case 'isoir96':
-			case 'jisc62291984kana':
-				return 'JIS_C6229-1984-kana';
-
-			case 'csjisencoding':
-			case 'jisencoding':
-				return 'JIS_Encoding';
-
-			case 'cshalfwidthkatakana':
-			case 'jisx201':
-			case 'x201':
-				return 'JIS_X0201';
-
-			case 'csiso159jisx2121990':
-			case 'isoir159':
-			case 'jisx2121990':
-			case 'x212':
-				return 'JIS_X0212-1990';
-
-			case 'csiso141jusib1002':
-			case 'iso646yu':
-			case 'isoir141':
-			case 'js':
-			case 'jusib1002':
-			case 'yu':
-				return 'JUS_I.B1.002';
-
-			case 'csiso147macedonian':
-			case 'isoir147':
-			case 'jusib1003mac':
-			case 'macedonian':
-				return 'JUS_I.B1.003-mac';
-
-			case 'csiso146serbian':
-			case 'isoir146':
-			case 'jusib1003serb':
-			case 'serbian':
-				return 'JUS_I.B1.003-serb';
-
-			case 'koi7switched':
-				return 'KOI7-switched';
-
-			case 'cskoi8r':
-			case 'koi8r':
-				return 'KOI8-R';
-
-			case 'koi8u':
-				return 'KOI8-U';
-
-			case 'csksc5636':
-			case 'iso646kr':
-			case 'ksc5636':
-				return 'KSC5636';
-
-			case 'cskz1048':
-			case 'kz1048':
-			case 'rk1048':
-			case 'strk10482002':
-				return 'KZ-1048';
-
-			case 'csiso19latingreek':
-			case 'isoir19':
-			case 'latingreek':
-				return 'latin-greek';
-
-			case 'csiso27latingreek1':
-			case 'isoir27':
-			case 'latingreek1':
-				return 'Latin-greek-1';
-
-			case 'csiso158lap':
-			case 'isoir158':
-			case 'lap':
-			case 'latinlap':
-				return 'latin-lap';
-
-			case 'csmacintosh':
-			case 'mac':
-			case 'macintosh':
-				return 'macintosh';
-
-			case 'csmicrosoftpublishing':
-			case 'microsoftpublishing':
-				return 'Microsoft-Publishing';
-
-			case 'csmnem':
-			case 'mnem':
-				return 'MNEM';
-
-			case 'csmnemonic':
-			case 'mnemonic':
-				return 'MNEMONIC';
-
-			case 'csiso86hungarian':
-			case 'hu':
-			case 'iso646hu':
-			case 'isoir86':
-			case 'msz77953':
-				return 'MSZ_7795.3';
-
-			case 'csnatsdano':
-			case 'isoir91':
-			case 'natsdano':
-				return 'NATS-DANO';
-
-			case 'csnatsdanoadd':
-			case 'isoir92':
-			case 'natsdanoadd':
-				return 'NATS-DANO-ADD';
-
-			case 'csnatssefi':
-			case 'isoir81':
-			case 'natssefi':
-				return 'NATS-SEFI';
-
-			case 'csnatssefiadd':
-			case 'isoir82':
-			case 'natssefiadd':
-				return 'NATS-SEFI-ADD';
-
-			case 'csiso151cuba':
-			case 'cuba':
-			case 'iso646cu':
-			case 'isoir151':
-			case 'ncnc1081':
-				return 'NC_NC00-10:81';
-
-			case 'csiso69french':
-			case 'fr':
-			case 'iso646fr':
-			case 'isoir69':
-			case 'nfz62010':
-				return 'NF_Z_62-010';
-
-			case 'csiso25french':
-			case 'iso646fr1':
-			case 'isoir25':
-			case 'nfz620101973':
-				return 'NF_Z_62-010_(1973)';
-
-			case 'csiso60danishnorwegian':
-			case 'csiso60norwegian1':
-			case 'iso646no':
-			case 'isoir60':
-			case 'no':
-			case 'ns45511':
-				return 'NS_4551-1';
-
-			case 'csiso61norwegian2':
-			case 'iso646no2':
-			case 'isoir61':
-			case 'no2':
-			case 'ns45512':
-				return 'NS_4551-2';
-
-			case 'osdebcdicdf3irv':
-				return 'OSD_EBCDIC_DF03_IRV';
-
-			case 'osdebcdicdf41':
-				return 'OSD_EBCDIC_DF04_1';
-
-			case 'osdebcdicdf415':
-				return 'OSD_EBCDIC_DF04_15';
-
-			case 'cspc8danishnorwegian':
-			case 'pc8danishnorwegian':
-				return 'PC8-Danish-Norwegian';
-
-			case 'cspc8turkish':
-			case 'pc8turkish':
-				return 'PC8-Turkish';
-
-			case 'csiso16portuguese':
-			case 'iso646pt':
-			case 'isoir16':
-			case 'pt':
-				return 'PT';
-
-			case 'csiso84portuguese2':
-			case 'iso646pt2':
-			case 'isoir84':
-			case 'pt2':
-				return 'PT2';
-
-			case 'cp154':
-			case 'csptcp154':
-			case 'cyrillicasian':
-			case 'pt154':
-			case 'ptcp154':
-				return 'PTCP154';
-
-			case 'scsu':
-				return 'SCSU';
-
-			case 'csiso10swedish':
-			case 'fi':
-			case 'iso646fi':
-			case 'iso646se':
-			case 'isoir10':
-			case 'se':
-			case 'sen850200b':
-				return 'SEN_850200_B';
-
-			case 'csiso11swedishfornames':
-			case 'iso646se2':
-			case 'isoir11':
-			case 'se2':
-			case 'sen850200c':
-				return 'SEN_850200_C';
-
-			case 'csiso102t617bit':
-			case 'isoir102':
-			case 't617bit':
-				return 'T.61-7bit';
-
-			case 'csiso103t618bit':
-			case 'isoir103':
-			case 't61':
-			case 't618bit':
-				return 'T.61-8bit';
-
-			case 'csiso128t101g2':
-			case 'isoir128':
-			case 't101g2':
-				return 'T.101-G2';
-
-			case 'cstscii':
-			case 'tscii':
-				return 'TSCII';
-
-			case 'csunicode11':
-			case 'unicode11':
-				return 'UNICODE-1-1';
-
-			case 'csunicode11utf7':
-			case 'unicode11utf7':
-				return 'UNICODE-1-1-UTF-7';
-
-			case 'csunknown8bit':
-			case 'unknown8bit':
-				return 'UNKNOWN-8BIT';
-
-			case 'ansix341968':
-			case 'ansix341986':
-			case 'ascii':
-			case 'cp367':
-			case 'csascii':
-			case 'ibm367':
-			case 'iso646irv1991':
-			case 'iso646us':
-			case 'isoir6':
-			case 'us':
-			case 'usascii':
-				return 'US-ASCII';
-
-			case 'csusdk':
-			case 'usdk':
-				return 'us-dk';
-
-			case 'utf7':
-				return 'UTF-7';
-
-			case 'utf8':
-				return 'UTF-8';
-
-			case 'utf16':
-				return 'UTF-16';
-
-			case 'utf16be':
-				return 'UTF-16BE';
-
-			case 'utf16le':
-				return 'UTF-16LE';
-
-			case 'utf32':
-				return 'UTF-32';
-
-			case 'utf32be':
-				return 'UTF-32BE';
-
-			case 'utf32le':
-				return 'UTF-32LE';
-
-			case 'csventurainternational':
-			case 'venturainternational':
-				return 'Ventura-International';
-
-			case 'csventuramath':
-			case 'venturamath':
-				return 'Ventura-Math';
-
-			case 'csventuraus':
-			case 'venturaus':
-				return 'Ventura-US';
-
-			case 'csiso70videotexsupp1':
-			case 'isoir70':
-			case 'videotexsuppl':
-				return 'videotex-suppl';
-
-			case 'csviqr':
-			case 'viqr':
-				return 'VIQR';
-
-			case 'csviscii':
-			case 'viscii':
-				return 'VISCII';
-
-			case 'csshiftjis':
-			case 'cswindows31j':
-			case 'mskanji':
-			case 'shiftjis':
-			case 'windows31j':
-				return 'Windows-31J';
-
-			case 'iso885911':
-			case 'tis620':
-				return 'windows-874';
-
-			case 'cseuckr':
-			case 'csksc56011987':
-			case 'euckr':
-			case 'isoir149':
-			case 'korean':
-			case 'ksc5601':
-			case 'ksc56011987':
-			case 'ksc56011989':
-			case 'windows949':
-				return 'windows-949';
-
-			case 'windows1250':
-				return 'windows-1250';
-
-			case 'windows1251':
-				return 'windows-1251';
-
-			case 'cp819':
-			case 'csisolatin1':
-			case 'ibm819':
-			case 'iso88591':
-			case 'iso885911987':
-			case 'isoir100':
-			case 'l1':
-			case 'latin1':
-			case 'windows1252':
-				return 'windows-1252';
-
-			case 'windows1253':
-				return 'windows-1253';
-
-			case 'csisolatin5':
-			case 'iso88599':
-			case 'iso885991989':
-			case 'isoir148':
-			case 'l5':
-			case 'latin5':
-			case 'windows1254':
-				return 'windows-1254';
-
-			case 'windows1255':
-				return 'windows-1255';
-
-			case 'windows1256':
-				return 'windows-1256';
-
-			case 'windows1257':
-				return 'windows-1257';
-
-			case 'windows1258':
-				return 'windows-1258';
-
-			default:
-				return $charset;
-		}
-	}
-
-	public static function get_curl_version()
-	{
-		if (is_array($curl = curl_version()))
-		{
-			$curl = $curl['version'];
-		}
-		elseif (substr($curl, 0, 5) === 'curl/')
-		{
-			$curl = substr($curl, 5, strcspn($curl, "\x09\x0A\x0B\x0C\x0D", 5));
-		}
-		elseif (substr($curl, 0, 8) === 'libcurl/')
-		{
-			$curl = substr($curl, 8, strcspn($curl, "\x09\x0A\x0B\x0C\x0D", 8));
-		}
-		else
-		{
-			$curl = 0;
-		}
-		return $curl;
-	}
-
-	/**
-	 * Strip HTML comments
-	 *
-	 * @param string $data Data to strip comments from
-	 * @return string Comment stripped string
-	 */
-	public static function strip_comments($data)
-	{
-		$output = '';
-		while (($start = strpos($data, '<!--')) !== false)
-		{
-			$output .= substr($data, 0, $start);
-			if (($end = strpos($data, '-->', $start)) !== false)
-			{
-				$data = substr_replace($data, '', 0, $end + 3);
-			}
-			else
-			{
-				$data = '';
-			}
-		}
-		return $output . $data;
-	}
-
-	public static function parse_date($dt)
-	{
-		$parser = SimplePie_Parse_Date::get();
-		return $parser->parse($dt);
-	}
-
-	/**
-	 * Decode HTML entities
-	 *
-	 * @deprecated Use DOMDocument instead
-	 * @param string $data Input data
-	 * @return string Output data
-	 */
-	public static function entities_decode($data)
-	{
-		$decoder = new SimplePie_Decode_HTML_Entities($data);
-		return $decoder->parse();
-	}
-
-	/**
-	 * Remove RFC822 comments
-	 *
-	 * @param string $data Data to strip comments from
-	 * @return string Comment stripped string
-	 */
-	public static function uncomment_rfc822($string)
-	{
-		$string = (string) $string;
-		$position = 0;
-		$length = strlen($string);
-		$depth = 0;
-
-		$output = '';
-
-		while ($position < $length && ($pos = strpos($string, '(', $position)) !== false)
-		{
-			$output .= substr($string, $position, $pos - $position);
-			$position = $pos + 1;
-			if ($string[$pos - 1] !== '\\')
-			{
-				$depth++;
-				while ($depth && $position < $length)
-				{
-					$position += strcspn($string, '()', $position);
-					if ($string[$position - 1] === '\\')
-					{
-						$position++;
-						continue;
-					}
-					elseif (isset($string[$position]))
-					{
-						switch ($string[$position])
-						{
-							case '(':
-								$depth++;
-								break;
-
-							case ')':
-								$depth--;
-								break;
-						}
-						$position++;
-					}
-					else
-					{
-						break;
-					}
-				}
-			}
-			else
-			{
-				$output .= '(';
-			}
-		}
-		$output .= substr($string, $position);
-
-		return $output;
-	}
-
-	public static function parse_mime($mime)
-	{
-		if (($pos = strpos($mime, ';')) === false)
-		{
-			return trim($mime);
-		}
-		else
-		{
-			return trim(substr($mime, 0, $pos));
-		}
-	}
-
-	public static function atom_03_construct_type($attribs)
-	{
-		if (isset($attribs['']['mode']) && strtolower(trim($attribs['']['mode']) === 'base64'))
-		{
-			$mode = SIMPLEPIE_CONSTRUCT_BASE64;
-		}
-		else
-		{
-			$mode = SIMPLEPIE_CONSTRUCT_NONE;
-		}
-		if (isset($attribs['']['type']))
-		{
-			switch (strtolower(trim($attribs['']['type'])))
-			{
-				case 'text':
-				case 'text/plain':
-					return SIMPLEPIE_CONSTRUCT_TEXT | $mode;
-
-				case 'html':
-				case 'text/html':
-					return SIMPLEPIE_CONSTRUCT_HTML | $mode;
-
-				case 'xhtml':
-				case 'application/xhtml+xml':
-					return SIMPLEPIE_CONSTRUCT_XHTML | $mode;
-
-				default:
-					return SIMPLEPIE_CONSTRUCT_NONE | $mode;
-			}
-		}
-		else
-		{
-			return SIMPLEPIE_CONSTRUCT_TEXT | $mode;
-		}
-	}
-
-	public static function atom_10_construct_type($attribs)
-	{
-		if (isset($attribs['']['type']))
-		{
-			switch (strtolower(trim($attribs['']['type'])))
-			{
-				case 'text':
-					return SIMPLEPIE_CONSTRUCT_TEXT;
-
-				case 'html':
-					return SIMPLEPIE_CONSTRUCT_HTML;
-
-				case 'xhtml':
-					return SIMPLEPIE_CONSTRUCT_XHTML;
-
-				default:
-					return SIMPLEPIE_CONSTRUCT_NONE;
-			}
-		}
-		return SIMPLEPIE_CONSTRUCT_TEXT;
-	}
-
-	public static function atom_10_content_construct_type($attribs)
-	{
-		if (isset($attribs['']['type']))
-		{
-			$type = strtolower(trim($attribs['']['type']));
-			switch ($type)
-			{
-				case 'text':
-					return SIMPLEPIE_CONSTRUCT_TEXT;
-
-				case 'html':
-					return SIMPLEPIE_CONSTRUCT_HTML;
-
-				case 'xhtml':
-					return SIMPLEPIE_CONSTRUCT_XHTML;
-			}
-			if (in_array(substr($type, -4), array('+xml', '/xml')) || substr($type, 0, 5) === 'text/')
-			{
-				return SIMPLEPIE_CONSTRUCT_NONE;
-			}
-			else
-			{
-				return SIMPLEPIE_CONSTRUCT_BASE64;
-			}
-		}
-		else
-		{
-			return SIMPLEPIE_CONSTRUCT_TEXT;
-		}
-	}
-
-	public static function is_isegment_nz_nc($string)
-	{
-		return (bool) preg_match('/^([A-Za-z0-9\-._~\x{A0}-\x{D7FF}\x{F900}-\x{FDCF}\x{FDF0}-\x{FFEF}\x{10000}-\x{1FFFD}\x{20000}-\x{2FFFD}\x{30000}-\x{3FFFD}\x{40000}-\x{4FFFD}\x{50000}-\x{5FFFD}\x{60000}-\x{6FFFD}\x{70000}-\x{7FFFD}\x{80000}-\x{8FFFD}\x{90000}-\x{9FFFD}\x{A0000}-\x{AFFFD}\x{B0000}-\x{BFFFD}\x{C0000}-\x{CFFFD}\x{D0000}-\x{DFFFD}\x{E1000}-\x{EFFFD}!$&\'()*+,;=@]|(%[0-9ABCDEF]{2}))+$/u', $string);
-	}
-
-	public static function space_separated_tokens($string)
-	{
-		$space_characters = "\x20\x09\x0A\x0B\x0C\x0D";
-		$string_length = strlen($string);
-
-		$position = strspn($string, $space_characters);
-		$tokens = array();
-
-		while ($position < $string_length)
-		{
-			$len = strcspn($string, $space_characters, $position);
-			$tokens[] = substr($string, $position, $len);
-			$position += $len;
-			$position += strspn($string, $space_characters, $position);
-		}
-
-		return $tokens;
-	}
-
-	/**
-	 * Converts a unicode codepoint to a UTF-8 character
-	 *
-	 * @static
-	 * @param int $codepoint Unicode codepoint
-	 * @return string UTF-8 character
-	 */
-	public static function codepoint_to_utf8($codepoint)
-	{
-		$codepoint = (int) $codepoint;
-		if ($codepoint < 0)
-		{
-			return false;
-		}
-		else if ($codepoint <= 0x7f)
-		{
-			return chr($codepoint);
-		}
-		else if ($codepoint <= 0x7ff)
-		{
-			return chr(0xc0 | ($codepoint >> 6)) . chr(0x80 | ($codepoint & 0x3f));
-		}
-		else if ($codepoint <= 0xffff)
-		{
-			return chr(0xe0 | ($codepoint >> 12)) . chr(0x80 | (($codepoint >> 6) & 0x3f)) . chr(0x80 | ($codepoint & 0x3f));
-		}
-		else if ($codepoint <= 0x10ffff)
-		{
-			return chr(0xf0 | ($codepoint >> 18)) . chr(0x80 | (($codepoint >> 12) & 0x3f)) . chr(0x80 | (($codepoint >> 6) & 0x3f)) . chr(0x80 | ($codepoint & 0x3f));
-		}
-		else
-		{
-			// U+FFFD REPLACEMENT CHARACTER
-			return "\xEF\xBF\xBD";
-		}
-	}
-
-	/**
-	 * Similar to parse_str()
-	 *
-	 * Returns an associative array of name/value pairs, where the value is an
-	 * array of values that have used the same name
-	 *
-	 * @static
-	 * @param string $str The input string.
-	 * @return array
-	 */
-	public static function parse_str($str)
-	{
-		$return = array();
-		$str = explode('&', $str);
-
-		foreach ($str as $section)
-		{
-			if (strpos($section, '=') !== false)
-			{
-				list($name, $value) = explode('=', $section, 2);
-				$return[urldecode($name)][] = urldecode($value);
-			}
-			else
-			{
-				$return[urldecode($section)][] = null;
-			}
-		}
-
-		return $return;
-	}
-
-	/**
-	 * Detect XML encoding, as per XML 1.0 Appendix F.1
-	 *
-	 * @todo Add support for EBCDIC
-	 * @param string $data XML data
-	 * @param SimplePie_Registry $registry Class registry
-	 * @return array Possible encodings
-	 */
-	public static function xml_encoding($data, $registry)
-	{
-		// UTF-32 Big Endian BOM
-		if (substr($data, 0, 4) === "\x00\x00\xFE\xFF")
-		{
-			$encoding[] = 'UTF-32BE';
-		}
-		// UTF-32 Little Endian BOM
-		elseif (substr($data, 0, 4) === "\xFF\xFE\x00\x00")
-		{
-			$encoding[] = 'UTF-32LE';
-		}
-		// UTF-16 Big Endian BOM
-		elseif (substr($data, 0, 2) === "\xFE\xFF")
-		{
-			$encoding[] = 'UTF-16BE';
-		}
-		// UTF-16 Little Endian BOM
-		elseif (substr($data, 0, 2) === "\xFF\xFE")
-		{
-			$encoding[] = 'UTF-16LE';
-		}
-		// UTF-8 BOM
-		elseif (substr($data, 0, 3) === "\xEF\xBB\xBF")
-		{
-			$encoding[] = 'UTF-8';
-		}
-		// UTF-32 Big Endian Without BOM
-		elseif (substr($data, 0, 20) === "\x00\x00\x00\x3C\x00\x00\x00\x3F\x00\x00\x00\x78\x00\x00\x00\x6D\x00\x00\x00\x6C")
-		{
-			if ($pos = strpos($data, "\x00\x00\x00\x3F\x00\x00\x00\x3E"))
-			{
-				$parser = $registry->create('XML_Declaration_Parser', array(SimplePie_Misc::change_encoding(substr($data, 20, $pos - 20), 'UTF-32BE', 'UTF-8')));
-				if ($parser->parse())
-				{
-					$encoding[] = $parser->encoding;
-				}
-			}
-			$encoding[] = 'UTF-32BE';
-		}
-		// UTF-32 Little Endian Without BOM
-		elseif (substr($data, 0, 20) === "\x3C\x00\x00\x00\x3F\x00\x00\x00\x78\x00\x00\x00\x6D\x00\x00\x00\x6C\x00\x00\x00")
-		{
-			if ($pos = strpos($data, "\x3F\x00\x00\x00\x3E\x00\x00\x00"))
-			{
-				$parser = $registry->create('XML_Declaration_Parser', array(SimplePie_Misc::change_encoding(substr($data, 20, $pos - 20), 'UTF-32LE', 'UTF-8')));
-				if ($parser->parse())
-				{
-					$encoding[] = $parser->encoding;
-				}
-			}
-			$encoding[] = 'UTF-32LE';
-		}
-		// UTF-16 Big Endian Without BOM
-		elseif (substr($data, 0, 10) === "\x00\x3C\x00\x3F\x00\x78\x00\x6D\x00\x6C")
-		{
-			if ($pos = strpos($data, "\x00\x3F\x00\x3E"))
-			{
-				$parser = $registry->create('XML_Declaration_Parser', array(SimplePie_Misc::change_encoding(substr($data, 20, $pos - 10), 'UTF-16BE', 'UTF-8')));
-				if ($parser->parse())
-				{
-					$encoding[] = $parser->encoding;
-				}
-			}
-			$encoding[] = 'UTF-16BE';
-		}
-		// UTF-16 Little Endian Without BOM
-		elseif (substr($data, 0, 10) === "\x3C\x00\x3F\x00\x78\x00\x6D\x00\x6C\x00")
-		{
-			if ($pos = strpos($data, "\x3F\x00\x3E\x00"))
-			{
-				$parser = $registry->create('XML_Declaration_Parser', array(SimplePie_Misc::change_encoding(substr($data, 20, $pos - 10), 'UTF-16LE', 'UTF-8')));
-				if ($parser->parse())
-				{
-					$encoding[] = $parser->encoding;
-				}
-			}
-			$encoding[] = 'UTF-16LE';
-		}
-		// US-ASCII (or superset)
-		elseif (substr($data, 0, 5) === "\x3C\x3F\x78\x6D\x6C")
-		{
-			if ($pos = strpos($data, "\x3F\x3E"))
-			{
-				$parser = $registry->create('XML_Declaration_Parser', array(substr($data, 5, $pos - 5)));
-				if ($parser->parse())
-				{
-					$encoding[] = $parser->encoding;
-				}
-			}
-			$encoding[] = 'UTF-8';
-		}
-		// Fallback to UTF-8
-		else
-		{
-			$encoding[] = 'UTF-8';
-		}
-		return $encoding;
-	}
-
-	public static function output_javascript()
-	{
-		if (function_exists('ob_gzhandler'))
-		{
-			ob_start('ob_gzhandler');
-		}
-		header('Content-type: text/javascript; charset: UTF-8');
-		header('Cache-Control: must-revalidate');
-		header('Expires: ' . gmdate('D, d M Y H:i:s', time() + 604800) . ' GMT'); // 7 days
-		?>
-function embed_quicktime(type, bgcolor, width, height, link, placeholder, loop) {
-	if (placeholder != '') {
-		document.writeln('<embed type="'+type+'" style="cursor:hand; cursor:pointer;" href="'+link+'" src="'+placeholder+'" width="'+width+'" height="'+height+'" autoplay="false" target="myself" controller="false" loop="'+loop+'" scale="aspect" bgcolor="'+bgcolor+'" pluginspage="http://www.apple.com/quicktime/download/"></embed>');
-	}
-	else {
-		document.writeln('<embed type="'+type+'" style="cursor:hand; cursor:pointer;" src="'+link+'" width="'+width+'" height="'+height+'" autoplay="false" target="myself" controller="true" loop="'+loop+'" scale="aspect" bgcolor="'+bgcolor+'" pluginspage="http://www.apple.com/quicktime/download/"></embed>');
-	}
-}
-
-function embed_flash(bgcolor, width, height, link, loop, type) {
-	document.writeln('<embed src="'+link+'" pluginspage="http://www.macromedia.com/go/getflashplayer" type="'+type+'" quality="high" width="'+width+'" height="'+height+'" bgcolor="'+bgcolor+'" loop="'+loop+'"></embed>');
-}
-
-function embed_flv(width, height, link, placeholder, loop, player) {
-	document.writeln('<embed src="'+player+'" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" quality="high" width="'+width+'" height="'+height+'" wmode="transparent" flashvars="file='+link+'&autostart=false&repeat='+loop+'&showdigits=true&showfsbutton=false"></embed>');
-}
-
-function embed_wmedia(width, height, link) {
-	document.writeln('<embed type="application/x-mplayer2" src="'+link+'" autosize="1" width="'+width+'" height="'+height+'" showcontrols="1" showstatusbar="0" showdisplay="0" autostart="0"></embed>');
-}
-		<?php
-	}
-
-	/**
-	 * Get the SimplePie build timestamp
-	 *
-	 * Uses the git index if it exists, otherwise uses the modification time
-	 * of the newest file.
-	 */
-	public static function get_build()
-	{
-		$root = dirname(dirname(__FILE__));
-		if (file_exists($root . '/.git/index'))
-		{
-			return filemtime($root . '/.git/index');
-		}
-		elseif (file_exists($root . '/SimplePie'))
-		{
-			$time = 0;
-			foreach (glob($root . '/SimplePie/*.php') as $file)
-			{
-				if (($mtime = filemtime($file)) > $time)
-				{
-					$time = $mtime;
-				}
-			}
-			return $time;
-		}
-		elseif (file_exists(dirname(__FILE__) . '/Core.php'))
-		{
-			return filemtime(dirname(__FILE__) . '/Core.php');
-		}
-		else
-		{
-			return filemtime(__FILE__);
-		}
-	}
-
-	/**
-	 * Format debugging information
-	 */
-	public static function debug(&$sp)
-	{
-		$info = 'SimplePie ' . SIMPLEPIE_VERSION . ' Build ' . SIMPLEPIE_BUILD . "\n";
-		$info .= 'PHP ' . PHP_VERSION . "\n";
-		if ($sp->error() !== null)
-		{
-			$info .= 'Error occurred: ' . $sp->error() . "\n";
-		}
-		else
-		{
-			$info .= "No error found.\n";
-		}
-		$info .= "Extensions:\n";
-		$extensions = array('pcre', 'curl', 'zlib', 'mbstring', 'iconv', 'xmlreader', 'xml');
-		foreach ($extensions as $ext)
-		{
-			if (extension_loaded($ext))
-			{
-				$info .= "    $ext loaded\n";
-				switch ($ext)
-				{
-					case 'pcre':
-						$info .= '      Version ' . PCRE_VERSION . "\n";
-						break;
-					case 'curl':
-						$version = curl_version();
-						$info .= '      Version ' . $version['version'] . "\n";
-						break;
-					case 'mbstring':
-						$info .= '      Overloading: ' . mb_get_info('func_overload') . "\n";
-						break;
-					case 'iconv':
-						$info .= '      Version ' . ICONV_VERSION . "\n";
-						break;
-					case 'xml':
-						$info .= '      Version ' . LIBXML_DOTTED_VERSION . "\n";
-						break;
-				}
-			}
-			else
-			{
-				$info .= "    $ext not loaded\n";
-			}
-		}
-		return $info;
-	}
-
-	public static function silence_errors($num, $str)
-	{
-		// No-op
-	}
-}
-
diff --git a/wiki/vendor/simplepie/simplepie/library/SimplePie/Net/IPv6.php b/wiki/vendor/simplepie/simplepie/library/SimplePie/Net/IPv6.php
deleted file mode 100644
index 47658af..0000000
--- a/wiki/vendor/simplepie/simplepie/library/SimplePie/Net/IPv6.php
+++ /dev/null
@@ -1,275 +0,0 @@
-<?php
-/**
- * SimplePie
- *
- * A PHP-Based RSS and Atom Feed Framework.
- * Takes the hard work out of managing a complete RSS/Atom solution.
- *
- * Copyright (c) 2004-2016, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification, are
- * permitted provided that the following conditions are met:
- *
- * 	* Redistributions of source code must retain the above copyright notice, this list of
- * 	  conditions and the following disclaimer.
- *
- * 	* Redistributions in binary form must reproduce the above copyright notice, this list
- * 	  of conditions and the following disclaimer in the documentation and/or other materials
- * 	  provided with the distribution.
- *
- * 	* Neither the name of the SimplePie Team nor the names of its contributors may be used
- * 	  to endorse or promote products derived from this software without specific prior
- * 	  written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
- * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS
- * AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @package SimplePie
- * @copyright 2004-2016 Ryan Parman, Geoffrey Sneddon, Ryan McCue
- * @author Ryan Parman
- * @author Geoffrey Sneddon
- * @author Ryan McCue
- * @link http://simplepie.org/ SimplePie
- * @license http://www.opensource.org/licenses/bsd-license.php BSD License
- */
-
-
-/**
- * Class to validate and to work with IPv6 addresses.
- *
- * @package SimplePie
- * @subpackage HTTP
- * @copyright 2003-2005 The PHP Group
- * @license http://www.opensource.org/licenses/bsd-license.php
- * @link http://pear.php.net/package/Net_IPv6
- * @author Alexander Merz <alexander.merz@web.de>
- * @author elfrink at introweb dot nl
- * @author Josh Peck <jmp at joshpeck dot org>
- * @author Geoffrey Sneddon <geoffers@gmail.com>
- */
-class SimplePie_Net_IPv6
-{
-	/**
-	 * Uncompresses an IPv6 address
-	 *
-	 * RFC 4291 allows you to compress concecutive zero pieces in an address to
-	 * '::'. This method expects a valid IPv6 address and expands the '::' to
-	 * the required number of zero pieces.
-	 *
-	 * Example:  FF01::101   ->  FF01:0:0:0:0:0:0:101
-	 *           ::1         ->  0:0:0:0:0:0:0:1
-	 *
-	 * @author Alexander Merz <alexander.merz@web.de>
-	 * @author elfrink at introweb dot nl
-	 * @author Josh Peck <jmp at joshpeck dot org>
-	 * @copyright 2003-2005 The PHP Group
-	 * @license http://www.opensource.org/licenses/bsd-license.php
-	 * @param string $ip An IPv6 address
-	 * @return string The uncompressed IPv6 address
-	 */
-	public static function uncompress($ip)
-	{
-		$c1 = -1;
-		$c2 = -1;
-		if (substr_count($ip, '::') === 1)
-		{
-			list($ip1, $ip2) = explode('::', $ip);
-			if ($ip1 === '')
-			{
-				$c1 = -1;
-			}
-			else
-			{
-				$c1 = substr_count($ip1, ':');
-			}
-			if ($ip2 === '')
-			{
-				$c2 = -1;
-			}
-			else
-			{
-				$c2 = substr_count($ip2, ':');
-			}
-			if (strpos($ip2, '.') !== false)
-			{
-				$c2++;
-			}
-			// ::
-			if ($c1 === -1 && $c2 === -1)
-			{
-				$ip = '0:0:0:0:0:0:0:0';
-			}
-			// ::xxx
-			else if ($c1 === -1)
-			{
-				$fill = str_repeat('0:', 7 - $c2);
-				$ip = str_replace('::', $fill, $ip);
-			}
-			// xxx::
-			else if ($c2 === -1)
-			{
-				$fill = str_repeat(':0', 7 - $c1);
-				$ip = str_replace('::', $fill, $ip);
-			}
-			// xxx::xxx
-			else
-			{
-				$fill = ':' . str_repeat('0:', 6 - $c2 - $c1);
-				$ip = str_replace('::', $fill, $ip);
-			}
-		}
-		return $ip;
-	}
-
-	/**
-	 * Compresses an IPv6 address
-	 *
-	 * RFC 4291 allows you to compress concecutive zero pieces in an address to
-	 * '::'. This method expects a valid IPv6 address and compresses consecutive
-	 * zero pieces to '::'.
-	 *
-	 * Example:  FF01:0:0:0:0:0:0:101   ->  FF01::101
-	 *           0:0:0:0:0:0:0:1        ->  ::1
-	 *
-	 * @see uncompress()
-	 * @param string $ip An IPv6 address
-	 * @return string The compressed IPv6 address
-	 */
-	public static function compress($ip)
-	{
-		// Prepare the IP to be compressed
-		$ip = self::uncompress($ip);
-		$ip_parts = self::split_v6_v4($ip);
-
-		// Replace all leading zeros
-		$ip_parts[0] = preg_replace('/(^|:)0+([0-9])/', '\1\2', $ip_parts[0]);
-
-		// Find bunches of zeros
-		if (preg_match_all('/(?:^|:)(?:0(?::|$))+/', $ip_parts[0], $matches, PREG_OFFSET_CAPTURE))
-		{
-			$max = 0;
-			$pos = null;
-			foreach ($matches[0] as $match)
-			{
-				if (strlen($match[0]) > $max)
-				{
-					$max = strlen($match[0]);
-					$pos = $match[1];
-				}
-			}
-
-			$ip_parts[0] = substr_replace($ip_parts[0], '::', $pos, $max);
-		}
-
-		if ($ip_parts[1] !== '')
-		{
-			return implode(':', $ip_parts);
-		}
-		else
-		{
-			return $ip_parts[0];
-		}
-	}
-
-	/**
-	 * Splits an IPv6 address into the IPv6 and IPv4 representation parts
-	 *
-	 * RFC 4291 allows you to represent the last two parts of an IPv6 address
-	 * using the standard IPv4 representation
-	 *
-	 * Example:  0:0:0:0:0:0:13.1.68.3
-	 *           0:0:0:0:0:FFFF:129.144.52.38
-	 *
-	 * @param string $ip An IPv6 address
-	 * @return array [0] contains the IPv6 represented part, and [1] the IPv4 represented part
-	 */
-	private static function split_v6_v4($ip)
-	{
-		if (strpos($ip, '.') !== false)
-		{
-			$pos = strrpos($ip, ':');
-			$ipv6_part = substr($ip, 0, $pos);
-			$ipv4_part = substr($ip, $pos + 1);
-			return array($ipv6_part, $ipv4_part);
-		}
-		else
-		{
-			return array($ip, '');
-		}
-	}
-
-	/**
-	 * Checks an IPv6 address
-	 *
-	 * Checks if the given IP is a valid IPv6 address
-	 *
-	 * @param string $ip An IPv6 address
-	 * @return bool true if $ip is a valid IPv6 address
-	 */
-	public static function check_ipv6($ip)
-	{
-		$ip = self::uncompress($ip);
-		list($ipv6, $ipv4) = self::split_v6_v4($ip);
-		$ipv6 = explode(':', $ipv6);
-		$ipv4 = explode('.', $ipv4);
-		if (count($ipv6) === 8 && count($ipv4) === 1 || count($ipv6) === 6 && count($ipv4) === 4)
-		{
-			foreach ($ipv6 as $ipv6_part)
-			{
-				// The section can't be empty
-				if ($ipv6_part === '')
-					return false;
-
-				// Nor can it be over four characters
-				if (strlen($ipv6_part) > 4)
-					return false;
-
-				// Remove leading zeros (this is safe because of the above)
-				$ipv6_part = ltrim($ipv6_part, '0');
-				if ($ipv6_part === '')
-					$ipv6_part = '0';
-
-				// Check the value is valid
-				$value = hexdec($ipv6_part);
-				if (dechex($value) !== strtolower($ipv6_part) || $value < 0 || $value > 0xFFFF)
-					return false;
-			}
-			if (count($ipv4) === 4)
-			{
-				foreach ($ipv4 as $ipv4_part)
-				{
-					$value = (int) $ipv4_part;
-					if ((string) $value !== $ipv4_part || $value < 0 || $value > 0xFF)
-						return false;
-				}
-			}
-			return true;
-		}
-		else
-		{
-			return false;
-		}
-	}
-
-	/**
-	 * Checks if the given IP is a valid IPv6 address
-	 *
-	 * @codeCoverageIgnore
-	 * @deprecated Use {@see SimplePie_Net_IPv6::check_ipv6()} instead
-	 * @see check_ipv6
-	 * @param string $ip An IPv6 address
-	 * @return bool true if $ip is a valid IPv6 address
-	 */
-	public static function checkIPv6($ip)
-	{
-		return self::check_ipv6($ip);
-	}
-}
diff --git a/wiki/vendor/simplepie/simplepie/library/SimplePie/Parse/Date.php b/wiki/vendor/simplepie/simplepie/library/SimplePie/Parse/Date.php
deleted file mode 100644
index 1f21566..0000000
--- a/wiki/vendor/simplepie/simplepie/library/SimplePie/Parse/Date.php
+++ /dev/null
@@ -1,983 +0,0 @@
-<?php
-/**
- * SimplePie
- *
- * A PHP-Based RSS and Atom Feed Framework.
- * Takes the hard work out of managing a complete RSS/Atom solution.
- *
- * Copyright (c) 2004-2016, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification, are
- * permitted provided that the following conditions are met:
- *
- * 	* Redistributions of source code must retain the above copyright notice, this list of
- * 	  conditions and the following disclaimer.
- *
- * 	* Redistributions in binary form must reproduce the above copyright notice, this list
- * 	  of conditions and the following disclaimer in the documentation and/or other materials
- * 	  provided with the distribution.
- *
- * 	* Neither the name of the SimplePie Team nor the names of its contributors may be used
- * 	  to endorse or promote products derived from this software without specific prior
- * 	  written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
- * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS
- * AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @package SimplePie
- * @copyright 2004-2016 Ryan Parman, Geoffrey Sneddon, Ryan McCue
- * @author Ryan Parman
- * @author Geoffrey Sneddon
- * @author Ryan McCue
- * @link http://simplepie.org/ SimplePie
- * @license http://www.opensource.org/licenses/bsd-license.php BSD License
- */
-
-
-/**
- * Date Parser
- *
- * @package SimplePie
- * @subpackage Parsing
- */
-class SimplePie_Parse_Date
-{
-	/**
-	 * Input data
-	 *
-	 * @access protected
-	 * @var string
-	 */
-	var $date;
-
-	/**
-	 * List of days, calendar day name => ordinal day number in the week
-	 *
-	 * @access protected
-	 * @var array
-	 */
-	var $day = array(
-		// English
-		'mon' => 1,
-		'monday' => 1,
-		'tue' => 2,
-		'tuesday' => 2,
-		'wed' => 3,
-		'wednesday' => 3,
-		'thu' => 4,
-		'thursday' => 4,
-		'fri' => 5,
-		'friday' => 5,
-		'sat' => 6,
-		'saturday' => 6,
-		'sun' => 7,
-		'sunday' => 7,
-		// Dutch
-		'maandag' => 1,
-		'dinsdag' => 2,
-		'woensdag' => 3,
-		'donderdag' => 4,
-		'vrijdag' => 5,
-		'zaterdag' => 6,
-		'zondag' => 7,
-		// French
-		'lundi' => 1,
-		'mardi' => 2,
-		'mercredi' => 3,
-		'jeudi' => 4,
-		'vendredi' => 5,
-		'samedi' => 6,
-		'dimanche' => 7,
-		// German
-		'montag' => 1,
-		'dienstag' => 2,
-		'mittwoch' => 3,
-		'donnerstag' => 4,
-		'freitag' => 5,
-		'samstag' => 6,
-		'sonnabend' => 6,
-		'sonntag' => 7,
-		// Italian
-		'lunedì' => 1,
-		'martedì' => 2,
-		'mercoledì' => 3,
-		'giovedì' => 4,
-		'venerdì' => 5,
-		'sabato' => 6,
-		'domenica' => 7,
-		// Spanish
-		'lunes' => 1,
-		'martes' => 2,
-		'miércoles' => 3,
-		'jueves' => 4,
-		'viernes' => 5,
-		'sábado' => 6,
-		'domingo' => 7,
-		// Finnish
-		'maanantai' => 1,
-		'tiistai' => 2,
-		'keskiviikko' => 3,
-		'torstai' => 4,
-		'perjantai' => 5,
-		'lauantai' => 6,
-		'sunnuntai' => 7,
-		// Hungarian
-		'hétfő' => 1,
-		'kedd' => 2,
-		'szerda' => 3,
-		'csütörtok' => 4,
-		'péntek' => 5,
-		'szombat' => 6,
-		'vasárnap' => 7,
-		// Greek
-		'Δευ' => 1,
-		'ΤÏι' => 2,
-		'Τετ' => 3,
-		'Πεμ' => 4,
-		'ΠαÏ' => 5,
-		'Σαβ' => 6,
-		'ΚυÏ' => 7,
-	);
-
-	/**
-	 * List of months, calendar month name => calendar month number
-	 *
-	 * @access protected
-	 * @var array
-	 */
-	var $month = array(
-		// English
-		'jan' => 1,
-		'january' => 1,
-		'feb' => 2,
-		'february' => 2,
-		'mar' => 3,
-		'march' => 3,
-		'apr' => 4,
-		'april' => 4,
-		'may' => 5,
-		// No long form of May
-		'jun' => 6,
-		'june' => 6,
-		'jul' => 7,
-		'july' => 7,
-		'aug' => 8,
-		'august' => 8,
-		'sep' => 9,
-		'september' => 9,
-		'oct' => 10,
-		'october' => 10,
-		'nov' => 11,
-		'november' => 11,
-		'dec' => 12,
-		'december' => 12,
-		// Dutch
-		'januari' => 1,
-		'februari' => 2,
-		'maart' => 3,
-		'april' => 4,
-		'mei' => 5,
-		'juni' => 6,
-		'juli' => 7,
-		'augustus' => 8,
-		'september' => 9,
-		'oktober' => 10,
-		'november' => 11,
-		'december' => 12,
-		// French
-		'janvier' => 1,
-		'février' => 2,
-		'mars' => 3,
-		'avril' => 4,
-		'mai' => 5,
-		'juin' => 6,
-		'juillet' => 7,
-		'août' => 8,
-		'septembre' => 9,
-		'octobre' => 10,
-		'novembre' => 11,
-		'décembre' => 12,
-		// German
-		'januar' => 1,
-		'februar' => 2,
-		'märz' => 3,
-		'april' => 4,
-		'mai' => 5,
-		'juni' => 6,
-		'juli' => 7,
-		'august' => 8,
-		'september' => 9,
-		'oktober' => 10,
-		'november' => 11,
-		'dezember' => 12,
-		// Italian
-		'gennaio' => 1,
-		'febbraio' => 2,
-		'marzo' => 3,
-		'aprile' => 4,
-		'maggio' => 5,
-		'giugno' => 6,
-		'luglio' => 7,
-		'agosto' => 8,
-		'settembre' => 9,
-		'ottobre' => 10,
-		'novembre' => 11,
-		'dicembre' => 12,
-		// Spanish
-		'enero' => 1,
-		'febrero' => 2,
-		'marzo' => 3,
-		'abril' => 4,
-		'mayo' => 5,
-		'junio' => 6,
-		'julio' => 7,
-		'agosto' => 8,
-		'septiembre' => 9,
-		'setiembre' => 9,
-		'octubre' => 10,
-		'noviembre' => 11,
-		'diciembre' => 12,
-		// Finnish
-		'tammikuu' => 1,
-		'helmikuu' => 2,
-		'maaliskuu' => 3,
-		'huhtikuu' => 4,
-		'toukokuu' => 5,
-		'kesäkuu' => 6,
-		'heinäkuu' => 7,
-		'elokuu' => 8,
-		'suuskuu' => 9,
-		'lokakuu' => 10,
-		'marras' => 11,
-		'joulukuu' => 12,
-		// Hungarian
-		'január' => 1,
-		'február' => 2,
-		'március' => 3,
-		'április' => 4,
-		'május' => 5,
-		'június' => 6,
-		'július' => 7,
-		'augusztus' => 8,
-		'szeptember' => 9,
-		'október' => 10,
-		'november' => 11,
-		'december' => 12,
-		// Greek
-		'Ιαν' => 1,
-		'Φεβ' => 2,
-		'Μάώ' => 3,
-		'Μαώ' => 3,
-		'ΑπÏ' => 4,
-		'Μάι' => 5,
-		'Μαϊ' => 5,
-		'Μαι' => 5,
-		'ΙοÏν' => 6,
-		'Ιον' => 6,
-		'ΙοÏλ' => 7,
-		'Ιολ' => 7,
-		'ΑÏγ' => 8,
-		'Αυγ' => 8,
-		'Σεπ' => 9,
-		'Οκτ' => 10,
-		'Îοέ' => 11,
-		'Δεκ' => 12,
-	);
-
-	/**
-	 * List of timezones, abbreviation => offset from UTC
-	 *
-	 * @access protected
-	 * @var array
-	 */
-	var $timezone = array(
-		'ACDT' => 37800,
-		'ACIT' => 28800,
-		'ACST' => 34200,
-		'ACT' => -18000,
-		'ACWDT' => 35100,
-		'ACWST' => 31500,
-		'AEDT' => 39600,
-		'AEST' => 36000,
-		'AFT' => 16200,
-		'AKDT' => -28800,
-		'AKST' => -32400,
-		'AMDT' => 18000,
-		'AMT' => -14400,
-		'ANAST' => 46800,
-		'ANAT' => 43200,
-		'ART' => -10800,
-		'AZOST' => -3600,
-		'AZST' => 18000,
-		'AZT' => 14400,
-		'BIOT' => 21600,
-		'BIT' => -43200,
-		'BOT' => -14400,
-		'BRST' => -7200,
-		'BRT' => -10800,
-		'BST' => 3600,
-		'BTT' => 21600,
-		'CAST' => 18000,
-		'CAT' => 7200,
-		'CCT' => 23400,
-		'CDT' => -18000,
-		'CEDT' => 7200,
-		'CEST' => 7200,
-		'CET' => 3600,
-		'CGST' => -7200,
-		'CGT' => -10800,
-		'CHADT' => 49500,
-		'CHAST' => 45900,
-		'CIST' => -28800,
-		'CKT' => -36000,
-		'CLDT' => -10800,
-		'CLST' => -14400,
-		'COT' => -18000,
-		'CST' => -21600,
-		'CVT' => -3600,
-		'CXT' => 25200,
-		'DAVT' => 25200,
-		'DTAT' => 36000,
-		'EADT' => -18000,
-		'EAST' => -21600,
-		'EAT' => 10800,
-		'ECT' => -18000,
-		'EDT' => -14400,
-		'EEST' => 10800,
-		'EET' => 7200,
-		'EGT' => -3600,
-		'EKST' => 21600,
-		'EST' => -18000,
-		'FJT' => 43200,
-		'FKDT' => -10800,
-		'FKST' => -14400,
-		'FNT' => -7200,
-		'GALT' => -21600,
-		'GEDT' => 14400,
-		'GEST' => 10800,
-		'GFT' => -10800,
-		'GILT' => 43200,
-		'GIT' => -32400,
-		'GST' => 14400,
-		'GST' => -7200,
-		'GYT' => -14400,
-		'HAA' => -10800,
-		'HAC' => -18000,
-		'HADT' => -32400,
-		'HAE' => -14400,
-		'HAP' => -25200,
-		'HAR' => -21600,
-		'HAST' => -36000,
-		'HAT' => -9000,
-		'HAY' => -28800,
-		'HKST' => 28800,
-		'HMT' => 18000,
-		'HNA' => -14400,
-		'HNC' => -21600,
-		'HNE' => -18000,
-		'HNP' => -28800,
-		'HNR' => -25200,
-		'HNT' => -12600,
-		'HNY' => -32400,
-		'IRDT' => 16200,
-		'IRKST' => 32400,
-		'IRKT' => 28800,
-		'IRST' => 12600,
-		'JFDT' => -10800,
-		'JFST' => -14400,
-		'JST' => 32400,
-		'KGST' => 21600,
-		'KGT' => 18000,
-		'KOST' => 39600,
-		'KOVST' => 28800,
-		'KOVT' => 25200,
-		'KRAST' => 28800,
-		'KRAT' => 25200,
-		'KST' => 32400,
-		'LHDT' => 39600,
-		'LHST' => 37800,
-		'LINT' => 50400,
-		'LKT' => 21600,
-		'MAGST' => 43200,
-		'MAGT' => 39600,
-		'MAWT' => 21600,
-		'MDT' => -21600,
-		'MESZ' => 7200,
-		'MEZ' => 3600,
-		'MHT' => 43200,
-		'MIT' => -34200,
-		'MNST' => 32400,
-		'MSDT' => 14400,
-		'MSST' => 10800,
-		'MST' => -25200,
-		'MUT' => 14400,
-		'MVT' => 18000,
-		'MYT' => 28800,
-		'NCT' => 39600,
-		'NDT' => -9000,
-		'NFT' => 41400,
-		'NMIT' => 36000,
-		'NOVST' => 25200,
-		'NOVT' => 21600,
-		'NPT' => 20700,
-		'NRT' => 43200,
-		'NST' => -12600,
-		'NUT' => -39600,
-		'NZDT' => 46800,
-		'NZST' => 43200,
-		'OMSST' => 25200,
-		'OMST' => 21600,
-		'PDT' => -25200,
-		'PET' => -18000,
-		'PETST' => 46800,
-		'PETT' => 43200,
-		'PGT' => 36000,
-		'PHOT' => 46800,
-		'PHT' => 28800,
-		'PKT' => 18000,
-		'PMDT' => -7200,
-		'PMST' => -10800,
-		'PONT' => 39600,
-		'PST' => -28800,
-		'PWT' => 32400,
-		'PYST' => -10800,
-		'PYT' => -14400,
-		'RET' => 14400,
-		'ROTT' => -10800,
-		'SAMST' => 18000,
-		'SAMT' => 14400,
-		'SAST' => 7200,
-		'SBT' => 39600,
-		'SCDT' => 46800,
-		'SCST' => 43200,
-		'SCT' => 14400,
-		'SEST' => 3600,
-		'SGT' => 28800,
-		'SIT' => 28800,
-		'SRT' => -10800,
-		'SST' => -39600,
-		'SYST' => 10800,
-		'SYT' => 7200,
-		'TFT' => 18000,
-		'THAT' => -36000,
-		'TJT' => 18000,
-		'TKT' => -36000,
-		'TMT' => 18000,
-		'TOT' => 46800,
-		'TPT' => 32400,
-		'TRUT' => 36000,
-		'TVT' => 43200,
-		'TWT' => 28800,
-		'UYST' => -7200,
-		'UYT' => -10800,
-		'UZT' => 18000,
-		'VET' => -14400,
-		'VLAST' => 39600,
-		'VLAT' => 36000,
-		'VOST' => 21600,
-		'VUT' => 39600,
-		'WAST' => 7200,
-		'WAT' => 3600,
-		'WDT' => 32400,
-		'WEST' => 3600,
-		'WFT' => 43200,
-		'WIB' => 25200,
-		'WIT' => 32400,
-		'WITA' => 28800,
-		'WKST' => 18000,
-		'WST' => 28800,
-		'YAKST' => 36000,
-		'YAKT' => 32400,
-		'YAPT' => 36000,
-		'YEKST' => 21600,
-		'YEKT' => 18000,
-	);
-
-	/**
-	 * Cached PCRE for SimplePie_Parse_Date::$day
-	 *
-	 * @access protected
-	 * @var string
-	 */
-	var $day_pcre;
-
-	/**
-	 * Cached PCRE for SimplePie_Parse_Date::$month
-	 *
-	 * @access protected
-	 * @var string
-	 */
-	var $month_pcre;
-
-	/**
-	 * Array of user-added callback methods
-	 *
-	 * @access private
-	 * @var array
-	 */
-	var $built_in = array();
-
-	/**
-	 * Array of user-added callback methods
-	 *
-	 * @access private
-	 * @var array
-	 */
-	var $user = array();
-
-	/**
-	 * Create new SimplePie_Parse_Date object, and set self::day_pcre,
-	 * self::month_pcre, and self::built_in
-	 *
-	 * @access private
-	 */
-	public function __construct()
-	{
-		$this->day_pcre = '(' . implode(array_keys($this->day), '|') . ')';
-		$this->month_pcre = '(' . implode(array_keys($this->month), '|') . ')';
-
-		static $cache;
-		if (!isset($cache[get_class($this)]))
-		{
-			$all_methods = get_class_methods($this);
-
-			foreach ($all_methods as $method)
-			{
-				if (strtolower(substr($method, 0, 5)) === 'date_')
-				{
-					$cache[get_class($this)][] = $method;
-				}
-			}
-		}
-
-		foreach ($cache[get_class($this)] as $method)
-		{
-			$this->built_in[] = $method;
-		}
-	}
-
-	/**
-	 * Get the object
-	 *
-	 * @access public
-	 */
-	public static function get()
-	{
-		static $object;
-		if (!$object)
-		{
-			$object = new SimplePie_Parse_Date;
-		}
-		return $object;
-	}
-
-	/**
-	 * Parse a date
-	 *
-	 * @final
-	 * @access public
-	 * @param string $date Date to parse
-	 * @return int Timestamp corresponding to date string, or false on failure
-	 */
-	public function parse($date)
-	{
-		foreach ($this->user as $method)
-		{
-			if (($returned = call_user_func($method, $date)) !== false)
-			{
-				return $returned;
-			}
-		}
-
-		foreach ($this->built_in as $method)
-		{
-			if (($returned = call_user_func(array($this, $method), $date)) !== false)
-			{
-				return $returned;
-			}
-		}
-
-		return false;
-	}
-
-	/**
-	 * Add a callback method to parse a date
-	 *
-	 * @final
-	 * @access public
-	 * @param callback $callback
-	 */
-	public function add_callback($callback)
-	{
-		if (is_callable($callback))
-		{
-			$this->user[] = $callback;
-		}
-		else
-		{
-			trigger_error('User-supplied function must be a valid callback', E_USER_WARNING);
-		}
-	}
-
-	/**
-	 * Parse a superset of W3C-DTF (allows hyphens and colons to be omitted, as
-	 * well as allowing any of upper or lower case "T", horizontal tabs, or
-	 * spaces to be used as the time separator (including more than one))
-	 *
-	 * @access protected
-	 * @return int Timestamp
-	 */
-	public function date_w3cdtf($date)
-	{
-		static $pcre;
-		if (!$pcre)
-		{
-			$year = '([0-9]{4})';
-			$month = $day = $hour = $minute = $second = '([0-9]{2})';
-			$decimal = '([0-9]*)';
-			$zone = '(?:(Z)|([+\-])([0-9]{1,2}):?([0-9]{1,2}))';
-			$pcre = '/^' . $year . '(?:-?' . $month . '(?:-?' . $day . '(?:[Tt\x09\x20]+' . $hour . '(?::?' . $minute . '(?::?' . $second . '(?:.' . $decimal . ')?)?)?' . $zone . ')?)?)?$/';
-		}
-		if (preg_match($pcre, $date, $match))
-		{
-			/*
-			Capturing subpatterns:
-			1: Year
-			2: Month
-			3: Day
-			4: Hour
-			5: Minute
-			6: Second
-			7: Decimal fraction of a second
-			8: Zulu
-			9: Timezone ±
-			10: Timezone hours
-			11: Timezone minutes
-			*/
-
-			// Fill in empty matches
-			for ($i = count($match); $i <= 3; $i++)
-			{
-				$match[$i] = '1';
-			}
-
-			for ($i = count($match); $i <= 7; $i++)
-			{
-				$match[$i] = '0';
-			}
-
-			// Numeric timezone
-			if (isset($match[9]) && $match[9] !== '')
-			{
-				$timezone = $match[10] * 3600;
-				$timezone += $match[11] * 60;
-				if ($match[9] === '-')
-				{
-					$timezone = 0 - $timezone;
-				}
-			}
-			else
-			{
-				$timezone = 0;
-			}
-
-			// Convert the number of seconds to an integer, taking decimals into account
-			$second = round((int)$match[6] + (int)$match[7] / pow(10, strlen($match[7])));
-
-			return gmmktime($match[4], $match[5], $second, $match[2], $match[3], $match[1]) - $timezone;
-		}
-		else
-		{
-			return false;
-		}
-	}
-
-	/**
-	 * Remove RFC822 comments
-	 *
-	 * @access protected
-	 * @param string $data Data to strip comments from
-	 * @return string Comment stripped string
-	 */
-	public function remove_rfc2822_comments($string)
-	{
-		$string = (string) $string;
-		$position = 0;
-		$length = strlen($string);
-		$depth = 0;
-
-		$output = '';
-
-		while ($position < $length && ($pos = strpos($string, '(', $position)) !== false)
-		{
-			$output .= substr($string, $position, $pos - $position);
-			$position = $pos + 1;
-			if ($pos === 0 || $string[$pos - 1] !== '\\')
-			{
-				$depth++;
-				while ($depth && $position < $length)
-				{
-					$position += strcspn($string, '()', $position);
-					if ($string[$position - 1] === '\\')
-					{
-						$position++;
-						continue;
-					}
-					elseif (isset($string[$position]))
-					{
-						switch ($string[$position])
-						{
-							case '(':
-								$depth++;
-								break;
-
-							case ')':
-								$depth--;
-								break;
-						}
-						$position++;
-					}
-					else
-					{
-						break;
-					}
-				}
-			}
-			else
-			{
-				$output .= '(';
-			}
-		}
-		$output .= substr($string, $position);
-
-		return $output;
-	}
-
-	/**
-	 * Parse RFC2822's date format
-	 *
-	 * @access protected
-	 * @return int Timestamp
-	 */
-	public function date_rfc2822($date)
-	{
-		static $pcre;
-		if (!$pcre)
-		{
-			$wsp = '[\x09\x20]';
-			$fws = '(?:' . $wsp . '+|' . $wsp . '*(?:\x0D\x0A' . $wsp . '+)+)';
-			$optional_fws = $fws . '?';
-			$day_name = $this->day_pcre;
-			$month = $this->month_pcre;
-			$day = '([0-9]{1,2})';
-			$hour = $minute = $second = '([0-9]{2})';
-			$year = '([0-9]{2,4})';
-			$num_zone = '([+\-])([0-9]{2})([0-9]{2})';
-			$character_zone = '([A-Z]{1,5})';
-			$zone = '(?:' . $num_zone . '|' . $character_zone . ')';
-			$pcre = '/(?:' . $optional_fws . $day_name . $optional_fws . ',)?' . $optional_fws . $day . $fws . $month . $fws . $year . $fws . $hour . $optional_fws . ':' . $optional_fws . $minute . '(?:' . $optional_fws . ':' . $optional_fws . $second . ')?' . $fws . $zone . '/i';
-		}
-		if (preg_match($pcre, $this->remove_rfc2822_comments($date), $match))
-		{
-			/*
-			Capturing subpatterns:
-			1: Day name
-			2: Day
-			3: Month
-			4: Year
-			5: Hour
-			6: Minute
-			7: Second
-			8: Timezone ±
-			9: Timezone hours
-			10: Timezone minutes
-			11: Alphabetic timezone
-			*/
-
-			// Find the month number
-			$month = $this->month[strtolower($match[3])];
-
-			// Numeric timezone
-			if ($match[8] !== '')
-			{
-				$timezone = $match[9] * 3600;
-				$timezone += $match[10] * 60;
-				if ($match[8] === '-')
-				{
-					$timezone = 0 - $timezone;
-				}
-			}
-			// Character timezone
-			elseif (isset($this->timezone[strtoupper($match[11])]))
-			{
-				$timezone = $this->timezone[strtoupper($match[11])];
-			}
-			// Assume everything else to be -0000
-			else
-			{
-				$timezone = 0;
-			}
-
-			// Deal with 2/3 digit years
-			if ($match[4] < 50)
-			{
-				$match[4] += 2000;
-			}
-			elseif ($match[4] < 1000)
-			{
-				$match[4] += 1900;
-			}
-
-			// Second is optional, if it is empty set it to zero
-			if ($match[7] !== '')
-			{
-				$second = $match[7];
-			}
-			else
-			{
-				$second = 0;
-			}
-
-			return gmmktime($match[5], $match[6], $second, $month, $match[2], $match[4]) - $timezone;
-		}
-		else
-		{
-			return false;
-		}
-	}
-
-	/**
-	 * Parse RFC850's date format
-	 *
-	 * @access protected
-	 * @return int Timestamp
-	 */
-	public function date_rfc850($date)
-	{
-		static $pcre;
-		if (!$pcre)
-		{
-			$space = '[\x09\x20]+';
-			$day_name = $this->day_pcre;
-			$month = $this->month_pcre;
-			$day = '([0-9]{1,2})';
-			$year = $hour = $minute = $second = '([0-9]{2})';
-			$zone = '([A-Z]{1,5})';
-			$pcre = '/^' . $day_name . ',' . $space . $day . '-' . $month . '-' . $year . $space . $hour . ':' . $minute . ':' . $second . $space . $zone . '$/i';
-		}
-		if (preg_match($pcre, $date, $match))
-		{
-			/*
-			Capturing subpatterns:
-			1: Day name
-			2: Day
-			3: Month
-			4: Year
-			5: Hour
-			6: Minute
-			7: Second
-			8: Timezone
-			*/
-
-			// Month
-			$month = $this->month[strtolower($match[3])];
-
-			// Character timezone
-			if (isset($this->timezone[strtoupper($match[8])]))
-			{
-				$timezone = $this->timezone[strtoupper($match[8])];
-			}
-			// Assume everything else to be -0000
-			else
-			{
-				$timezone = 0;
-			}
-
-			// Deal with 2 digit year
-			if ($match[4] < 50)
-			{
-				$match[4] += 2000;
-			}
-			else
-			{
-				$match[4] += 1900;
-			}
-
-			return gmmktime($match[5], $match[6], $match[7], $month, $match[2], $match[4]) - $timezone;
-		}
-		else
-		{
-			return false;
-		}
-	}
-
-	/**
-	 * Parse C99's asctime()'s date format
-	 *
-	 * @access protected
-	 * @return int Timestamp
-	 */
-	public function date_asctime($date)
-	{
-		static $pcre;
-		if (!$pcre)
-		{
-			$space = '[\x09\x20]+';
-			$wday_name = $this->day_pcre;
-			$mon_name = $this->month_pcre;
-			$day = '([0-9]{1,2})';
-			$hour = $sec = $min = '([0-9]{2})';
-			$year = '([0-9]{4})';
-			$terminator = '\x0A?\x00?';
-			$pcre = '/^' . $wday_name . $space . $mon_name . $space . $day . $space . $hour . ':' . $min . ':' . $sec . $space . $year . $terminator . '$/i';
-		}
-		if (preg_match($pcre, $date, $match))
-		{
-			/*
-			Capturing subpatterns:
-			1: Day name
-			2: Month
-			3: Day
-			4: Hour
-			5: Minute
-			6: Second
-			7: Year
-			*/
-
-			$month = $this->month[strtolower($match[2])];
-			return gmmktime($match[4], $match[5], $match[6], $month, $match[3], $match[7]);
-		}
-		else
-		{
-			return false;
-		}
-	}
-
-	/**
-	 * Parse dates using strtotime()
-	 *
-	 * @access protected
-	 * @return int Timestamp
-	 */
-	public function date_strtotime($date)
-	{
-		$strtotime = strtotime($date);
-		if ($strtotime === -1 || $strtotime === false)
-		{
-			return false;
-		}
-		else
-		{
-			return $strtotime;
-		}
-	}
-}
-
diff --git a/wiki/vendor/simplepie/simplepie/library/SimplePie/Parser.php b/wiki/vendor/simplepie/simplepie/library/SimplePie/Parser.php
deleted file mode 100644
index df12340..0000000
--- a/wiki/vendor/simplepie/simplepie/library/SimplePie/Parser.php
+++ /dev/null
@@ -1,665 +0,0 @@
-<?php
-/**
- * SimplePie
- *
- * A PHP-Based RSS and Atom Feed Framework.
- * Takes the hard work out of managing a complete RSS/Atom solution.
- *
- * Copyright (c) 2004-2016, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification, are
- * permitted provided that the following conditions are met:
- *
- * 	* Redistributions of source code must retain the above copyright notice, this list of
- * 	  conditions and the following disclaimer.
- *
- * 	* Redistributions in binary form must reproduce the above copyright notice, this list
- * 	  of conditions and the following disclaimer in the documentation and/or other materials
- * 	  provided with the distribution.
- *
- * 	* Neither the name of the SimplePie Team nor the names of its contributors may be used
- * 	  to endorse or promote products derived from this software without specific prior
- * 	  written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
- * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS
- * AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @package SimplePie
- * @copyright 2004-2016 Ryan Parman, Geoffrey Sneddon, Ryan McCue
- * @author Ryan Parman
- * @author Geoffrey Sneddon
- * @author Ryan McCue
- * @link http://simplepie.org/ SimplePie
- * @license http://www.opensource.org/licenses/bsd-license.php BSD License
- */
-
-/**
- * Parses XML into something sane
- *
- *
- * This class can be overloaded with {@see SimplePie::set_parser_class()}
- *
- * @package SimplePie
- * @subpackage Parsing
- */
-class SimplePie_Parser
-{
-	var $error_code;
-	var $error_string;
-	var $current_line;
-	var $current_column;
-	var $current_byte;
-	var $separator = ' ';
-	var $namespace = array('');
-	var $element = array('');
-	var $xml_base = array('');
-	var $xml_base_explicit = array(false);
-	var $xml_lang = array('');
-	var $data = array();
-	var $datas = array(array());
-	var $current_xhtml_construct = -1;
-	var $encoding;
-	protected $registry;
-
-	public function set_registry(SimplePie_Registry $registry)
-	{
-		$this->registry = $registry;
-	}
-
-	public function parse(&$data, $encoding, $url = '')
-	{
-		if (class_exists('DOMXpath') && function_exists('Mf2\parse')) {
-			$doc = new DOMDocument();
-			@$doc->loadHTML($data);
-			$xpath = new DOMXpath($doc);
-			// Check for both h-feed and h-entry, as both a feed with no entries
-			// and a list of entries without an h-feed wrapper are both valid.
-			$query = '//*[contains(concat(" ", @class, " "), " h-feed ") or '.
-				'contains(concat(" ", @class, " "), " h-entry ")]';
-			$result = $xpath->query($query);
-			if ($result->length !== 0) {
-				return $this->parse_microformats($data, $url);
-			}
-		}
-
-		// Use UTF-8 if we get passed US-ASCII, as every US-ASCII character is a UTF-8 character
-		if (strtoupper($encoding) === 'US-ASCII')
-		{
-			$this->encoding = 'UTF-8';
-		}
-		else
-		{
-			$this->encoding = $encoding;
-		}
-
-		// Strip BOM:
-		// UTF-32 Big Endian BOM
-		if (substr($data, 0, 4) === "\x00\x00\xFE\xFF")
-		{
-			$data = substr($data, 4);
-		}
-		// UTF-32 Little Endian BOM
-		elseif (substr($data, 0, 4) === "\xFF\xFE\x00\x00")
-		{
-			$data = substr($data, 4);
-		}
-		// UTF-16 Big Endian BOM
-		elseif (substr($data, 0, 2) === "\xFE\xFF")
-		{
-			$data = substr($data, 2);
-		}
-		// UTF-16 Little Endian BOM
-		elseif (substr($data, 0, 2) === "\xFF\xFE")
-		{
-			$data = substr($data, 2);
-		}
-		// UTF-8 BOM
-		elseif (substr($data, 0, 3) === "\xEF\xBB\xBF")
-		{
-			$data = substr($data, 3);
-		}
-
-		if (substr($data, 0, 5) === '<?xml' && strspn(substr($data, 5, 1), "\x09\x0A\x0D\x20") && ($pos = strpos($data, '?>')) !== false)
-		{
-			$declaration = $this->registry->create('XML_Declaration_Parser', array(substr($data, 5, $pos - 5)));
-			if ($declaration->parse())
-			{
-				$data = substr($data, $pos + 2);
-				$data = '<?xml version="' . $declaration->version . '" encoding="' . $encoding . '" standalone="' . (($declaration->standalone) ? 'yes' : 'no') . '"?>' ."\n". $this->declare_html_entities() . $data;
-			}
-			else
-			{
-				$this->error_string = 'SimplePie bug! Please report this!';
-				return false;
-			}
-		}
-
-		$return = true;
-
-		static $xml_is_sane = null;
-		if ($xml_is_sane === null)
-		{
-			$parser_check = xml_parser_create();
-			xml_parse_into_struct($parser_check, '<foo>&amp;</foo>', $values);
-			xml_parser_free($parser_check);
-			$xml_is_sane = isset($values[0]['value']);
-		}
-
-		// Create the parser
-		if ($xml_is_sane)
-		{
-			$xml = xml_parser_create_ns($this->encoding, $this->separator);
-			xml_parser_set_option($xml, XML_OPTION_SKIP_WHITE, 1);
-			xml_parser_set_option($xml, XML_OPTION_CASE_FOLDING, 0);
-			xml_set_object($xml, $this);
-			xml_set_character_data_handler($xml, 'cdata');
-			xml_set_element_handler($xml, 'tag_open', 'tag_close');
-
-			// Parse!
-			if (!xml_parse($xml, $data, true))
-			{
-				$this->error_code = xml_get_error_code($xml);
-				$this->error_string = xml_error_string($this->error_code);
-				$return = false;
-			}
-			$this->current_line = xml_get_current_line_number($xml);
-			$this->current_column = xml_get_current_column_number($xml);
-			$this->current_byte = xml_get_current_byte_index($xml);
-			xml_parser_free($xml);
-			return $return;
-		}
-		else
-		{
-			libxml_clear_errors();
-			$xml = new XMLReader();
-			$xml->xml($data);
-			while (@$xml->read())
-			{
-				switch ($xml->nodeType)
-				{
-
-					case constant('XMLReader::END_ELEMENT'):
-						if ($xml->namespaceURI !== '')
-						{
-							$tagName = $xml->namespaceURI . $this->separator . $xml->localName;
-						}
-						else
-						{
-							$tagName = $xml->localName;
-						}
-						$this->tag_close(null, $tagName);
-						break;
-					case constant('XMLReader::ELEMENT'):
-						$empty = $xml->isEmptyElement;
-						if ($xml->namespaceURI !== '')
-						{
-							$tagName = $xml->namespaceURI . $this->separator . $xml->localName;
-						}
-						else
-						{
-							$tagName = $xml->localName;
-						}
-						$attributes = array();
-						while ($xml->moveToNextAttribute())
-						{
-							if ($xml->namespaceURI !== '')
-							{
-								$attrName = $xml->namespaceURI . $this->separator . $xml->localName;
-							}
-							else
-							{
-								$attrName = $xml->localName;
-							}
-							$attributes[$attrName] = $xml->value;
-						}
-						$this->tag_open(null, $tagName, $attributes);
-						if ($empty)
-						{
-							$this->tag_close(null, $tagName);
-						}
-						break;
-					case constant('XMLReader::TEXT'):
-
-					case constant('XMLReader::CDATA'):
-						$this->cdata(null, $xml->value);
-						break;
-				}
-			}
-			if ($error = libxml_get_last_error())
-			{
-				$this->error_code = $error->code;
-				$this->error_string = $error->message;
-				$this->current_line = $error->line;
-				$this->current_column = $error->column;
-				return false;
-			}
-			else
-			{
-				return true;
-			}
-		}
-	}
-
-	public function get_error_code()
-	{
-		return $this->error_code;
-	}
-
-	public function get_error_string()
-	{
-		return $this->error_string;
-	}
-
-	public function get_current_line()
-	{
-		return $this->current_line;
-	}
-
-	public function get_current_column()
-	{
-		return $this->current_column;
-	}
-
-	public function get_current_byte()
-	{
-		return $this->current_byte;
-	}
-
-	public function get_data()
-	{
-		return $this->data;
-	}
-
-	public function tag_open($parser, $tag, $attributes)
-	{
-		list($this->namespace[], $this->element[]) = $this->split_ns($tag);
-
-		$attribs = array();
-		foreach ($attributes as $name => $value)
-		{
-			list($attrib_namespace, $attribute) = $this->split_ns($name);
-			$attribs[$attrib_namespace][$attribute] = $value;
-		}
-
-		if (isset($attribs[SIMPLEPIE_NAMESPACE_XML]['base']))
-		{
-			$base = $this->registry->call('Misc', 'absolutize_url', array($attribs[SIMPLEPIE_NAMESPACE_XML]['base'], end($this->xml_base)));
-			if ($base !== false)
-			{
-				$this->xml_base[] = $base;
-				$this->xml_base_explicit[] = true;
-			}
-		}
-		else
-		{
-			$this->xml_base[] = end($this->xml_base);
-			$this->xml_base_explicit[] = end($this->xml_base_explicit);
-		}
-
-		if (isset($attribs[SIMPLEPIE_NAMESPACE_XML]['lang']))
-		{
-			$this->xml_lang[] = $attribs[SIMPLEPIE_NAMESPACE_XML]['lang'];
-		}
-		else
-		{
-			$this->xml_lang[] = end($this->xml_lang);
-		}
-
-		if ($this->current_xhtml_construct >= 0)
-		{
-			$this->current_xhtml_construct++;
-			if (end($this->namespace) === SIMPLEPIE_NAMESPACE_XHTML)
-			{
-				$this->data['data'] .= '<' . end($this->element);
-				if (isset($attribs['']))
-				{
-					foreach ($attribs[''] as $name => $value)
-					{
-						$this->data['data'] .= ' ' . $name . '="' . htmlspecialchars($value, ENT_COMPAT, $this->encoding) . '"';
-					}
-				}
-				$this->data['data'] .= '>';
-			}
-		}
-		else
-		{
-			$this->datas[] =& $this->data;
-			$this->data =& $this->data['child'][end($this->namespace)][end($this->element)][];
-			$this->data = array('data' => '', 'attribs' => $attribs, 'xml_base' => end($this->xml_base), 'xml_base_explicit' => end($this->xml_base_explicit), 'xml_lang' => end($this->xml_lang));
-			if ((end($this->namespace) === SIMPLEPIE_NAMESPACE_ATOM_03 && in_array(end($this->element), array('title', 'tagline', 'copyright', 'info', 'summary', 'content')) && isset($attribs['']['mode']) && $attribs['']['mode'] === 'xml')
-			|| (end($this->namespace) === SIMPLEPIE_NAMESPACE_ATOM_10 && in_array(end($this->element), array('rights', 'subtitle', 'summary', 'info', 'title', 'content')) && isset($attribs['']['type']) && $attribs['']['type'] === 'xhtml')
-			|| (end($this->namespace) === SIMPLEPIE_NAMESPACE_RSS_20 && in_array(end($this->element), array('title')))
-			|| (end($this->namespace) === SIMPLEPIE_NAMESPACE_RSS_090 && in_array(end($this->element), array('title')))
-			|| (end($this->namespace) === SIMPLEPIE_NAMESPACE_RSS_10 && in_array(end($this->element), array('title'))))
-			{
-				$this->current_xhtml_construct = 0;
-			}
-		}
-	}
-
-	public function cdata($parser, $cdata)
-	{
-		if ($this->current_xhtml_construct >= 0)
-		{
-			$this->data['data'] .= htmlspecialchars($cdata, ENT_QUOTES, $this->encoding);
-		}
-		else
-		{
-			$this->data['data'] .= $cdata;
-		}
-	}
-
-	public function tag_close($parser, $tag)
-	{
-		if ($this->current_xhtml_construct >= 0)
-		{
-			$this->current_xhtml_construct--;
-			if (end($this->namespace) === SIMPLEPIE_NAMESPACE_XHTML && !in_array(end($this->element), array('area', 'base', 'basefont', 'br', 'col', 'frame', 'hr', 'img', 'input', 'isindex', 'link', 'meta', 'param')))
-			{
-				$this->data['data'] .= '</' . end($this->element) . '>';
-			}
-		}
-		if ($this->current_xhtml_construct === -1)
-		{
-			$this->data =& $this->datas[count($this->datas) - 1];
-			array_pop($this->datas);
-		}
-
-		array_pop($this->element);
-		array_pop($this->namespace);
-		array_pop($this->xml_base);
-		array_pop($this->xml_base_explicit);
-		array_pop($this->xml_lang);
-	}
-
-	public function split_ns($string)
-	{
-		static $cache = array();
-		if (!isset($cache[$string]))
-		{
-			if ($pos = strpos($string, $this->separator))
-			{
-				static $separator_length;
-				if (!$separator_length)
-				{
-					$separator_length = strlen($this->separator);
-				}
-				$namespace = substr($string, 0, $pos);
-				$local_name = substr($string, $pos + $separator_length);
-				if (strtolower($namespace) === SIMPLEPIE_NAMESPACE_ITUNES)
-				{
-					$namespace = SIMPLEPIE_NAMESPACE_ITUNES;
-				}
-
-				// Normalize the Media RSS namespaces
-				if ($namespace === SIMPLEPIE_NAMESPACE_MEDIARSS_WRONG ||
-					$namespace === SIMPLEPIE_NAMESPACE_MEDIARSS_WRONG2 ||
-					$namespace === SIMPLEPIE_NAMESPACE_MEDIARSS_WRONG3 ||
-					$namespace === SIMPLEPIE_NAMESPACE_MEDIARSS_WRONG4 ||
-					$namespace === SIMPLEPIE_NAMESPACE_MEDIARSS_WRONG5 )
-				{
-					$namespace = SIMPLEPIE_NAMESPACE_MEDIARSS;
-				}
-				$cache[$string] = array($namespace, $local_name);
-			}
-			else
-			{
-				$cache[$string] = array('', $string);
-			}
-		}
-		return $cache[$string];
-	}
-
-	private function parse_hcard($data, $category = false) {
-		$name = '';
-		$link = '';
-		// Check if h-card is set and pass that information on in the link.
-		if (isset($data['type']) && in_array('h-card', $data['type'])) {
-			if (isset($data['properties']['name'][0])) {
-				$name = $data['properties']['name'][0];
-			}
-			if (isset($data['properties']['url'][0])) {
-				$link = $data['properties']['url'][0];
-				if ($name === '') {
-					$name = $link;
-				}
-				else {
-					// can't have commas in categories.
-					$name = str_replace(',', '', $name);
-				}
-				$person_tag = $category ? '<span class="person-tag"></span>' : '';
-				return '<a class="h-card" href="'.$link.'">'.$person_tag.$name.'</a>';
-			}
-		}
-		return isset($data['value']) ? $data['value'] : '';
-	}
-
-	private function parse_microformats(&$data, $url) {
-		$feed_title = '';
-		$feed_author = NULL;
-		$author_cache = array();
-		$items = array();
-		$entries = array();
-		$mf = Mf2\parse($data, $url);
-		// First look for an h-feed.
-		$h_feed = array();
-		foreach ($mf['items'] as $mf_item) {
-			if (in_array('h-feed', $mf_item['type'])) {
-				$h_feed = $mf_item;
-				break;
-			}
-			// Also look for h-feed or h-entry in the children of each top level item.
-			if (!isset($mf_item['children'][0]['type'])) continue;
-			if (in_array('h-feed', $mf_item['children'][0]['type'])) {
-				$h_feed = $mf_item['children'][0];
-				// In this case the parent of the h-feed may be an h-card, so use it as
-				// the feed_author.
-				if (in_array('h-card', $mf_item['type'])) $feed_author = $mf_item;
-				break;
-			}
-			else if (in_array('h-entry', $mf_item['children'][0]['type'])) {
-				$entries = $mf_item['children'];
-				// In this case the parent of the h-entry list may be an h-card, so use
-				// it as the feed_author.
-				if (in_array('h-card', $mf_item['type'])) $feed_author = $mf_item;
-				break;
-			}
-		}
-		if (isset($h_feed['children'])) {
-			$entries = $h_feed['children'];
-			// Also set the feed title and store author from the h-feed if available.
-			if (isset($mf['items'][0]['properties']['name'][0])) {
-				$feed_title = $mf['items'][0]['properties']['name'][0];
-			}
-			if (isset($mf['items'][0]['properties']['author'][0])) {
-				$feed_author = $mf['items'][0]['properties']['author'][0];
-			}
-		}
-		else if (count($entries) === 0) {
-			$entries = $mf['items'];
-		}
-		for ($i = 0; $i < count($entries); $i++) {
-			$entry = $entries[$i];
-			if (in_array('h-entry', $entry['type'])) {
-				$item = array();
-				$title = '';
-				$description = '';
-				if (isset($entry['properties']['url'][0])) {
-					$link = $entry['properties']['url'][0];
-					if (isset($link['value'])) $link = $link['value'];
-					$item['link'] = array(array('data' => $link));
-				}
-				if (isset($entry['properties']['uid'][0])) {
-					$guid = $entry['properties']['uid'][0];
-					if (isset($guid['value'])) $guid = $guid['value'];
-					$item['guid'] = array(array('data' => $guid));
-				}
-				if (isset($entry['properties']['name'][0])) {
-					$title = $entry['properties']['name'][0];
-					if (isset($title['value'])) $title = $title['value'];
-					$item['title'] = array(array('data' => $title));
-				}
-				if (isset($entry['properties']['author'][0]) || isset($feed_author)) {
-					// author is a special case, it can be plain text or an h-card array.
-					// If it's plain text it can also be a url that should be followed to
-					// get the actual h-card.
-					$author = isset($entry['properties']['author'][0]) ?
-						$entry['properties']['author'][0] : $feed_author;
-					if (!is_string($author)) {
-						$author = $this->parse_hcard($author);
-					}
-					else if (strpos($author, 'http') === 0) {
-						if (isset($author_cache[$author])) {
-							$author = $author_cache[$author];
-						}
-						else {
-							$mf = Mf2\fetch($author);
-							foreach ($mf['items'] as $hcard) {
-								// Only interested in an h-card by itself in this case.
-								if (!in_array('h-card', $hcard['type'])) {
-									continue;
-								}
-								// It must have a url property matching what we fetched.
-								if (!isset($hcard['properties']['url']) ||
-										!(in_array($author, $hcard['properties']['url']))) {
-									continue;
-								}
-								// Save parse_hcard the trouble of finding the correct url.
-								$hcard['properties']['url'][0] = $author;
-								// Cache this h-card for the next h-entry to check.
-								$author_cache[$author] = $this->parse_hcard($hcard);
-								$author = $author_cache[$author];
-								break;
-							}
-						}
-					}
-					$item['author'] = array(array('data' => $author));
-				}
-				if (isset($entry['properties']['photo'][0])) {
-					// If a photo is also in content, don't need to add it again here.
-					$content = '';
-					if (isset($entry['properties']['content'][0]['html'])) {
-						$content = $entry['properties']['content'][0]['html'];
-					}
-					$photo_list = array();
-					for ($j = 0; $j < count($entry['properties']['photo']); $j++) {
-						$photo = $entry['properties']['photo'][$j];
-						if (!empty($photo) && strpos($content, $photo) === false) {
-							$photo_list[] = $photo;
-						}
-					}
-					// When there's more than one photo show the first and use a lightbox.
-					// Need a permanent, unique name for the image set, but don't have
-					// anything unique except for the content itself, so use that.
-					$count = count($photo_list);
-					if ($count > 1) {
-						$image_set_id = preg_replace('/[[:^alnum:]]/', '', $photo_list[0]);
-						$description = '<p>';
-						for ($j = 0; $j < $count; $j++) {
-							$hidden = $j === 0 ? '' : 'class="hidden" ';
-							$description .= '<a href="'.$photo_list[$j].'" '.$hidden.
-								'data-lightbox="image-set-'.$image_set_id.'">'.
-								'<img src="'.$photo_list[$j].'"></a>';
-						}
-						$description .= '<br><b>'.$count.' photos</b></p>';
-					}
-					else if ($count == 1) {
-						$description = '<p><img src="'.$photo_list[0].'"></p>';
-					}
-				}
-				if (isset($entry['properties']['content'][0]['html'])) {
-					// e-content['value'] is the same as p-name when they are on the same
-					// element. Use this to replace title with a strip_tags version so
-					// that alt text from images is not included in the title.
-					if ($entry['properties']['content'][0]['value'] === $title) {
-						$title = strip_tags($entry['properties']['content'][0]['html']);
-						$item['title'] = array(array('data' => $title));
-					}
-					$description .= $entry['properties']['content'][0]['html'];
-					if (isset($entry['properties']['in-reply-to'][0])) {
-						$in_reply_to = '';
-						if (is_string($entry['properties']['in-reply-to'][0])) {
-							$in_reply_to = $entry['properties']['in-reply-to'][0];
-						}
-						else if (isset($entry['properties']['in-reply-to'][0]['value'])) {
-							$in_reply_to = $entry['properties']['in-reply-to'][0]['value'];
-						}
-						if ($in_reply_to !== '') {
-							$description .= '<p><span class="in-reply-to"></span> '.
-								'<a href="'.$in_reply_to.'">'.$in_reply_to.'</a><p>';
-						}
-					}
-					$item['description'] = array(array('data' => $description));
-				}
-				if (isset($entry['properties']['category'])) {
-					$category_csv = '';
-					// Categories can also contain h-cards.
-					foreach ($entry['properties']['category'] as $category) {
-						if ($category_csv !== '') $category_csv .= ', ';
-						if (is_string($category)) {
-							// Can't have commas in categories.
-							$category_csv .= str_replace(',', '', $category);
-						}
-						else {
-							$category_csv .= $this->parse_hcard($category, true);
-						}
-					}
-					$item['category'] = array(array('data' => $category_csv));
-				}
-				if (isset($entry['properties']['published'][0])) {
-					$timestamp = strtotime($entry['properties']['published'][0]);
-					$pub_date = date('F j Y g:ia', $timestamp).' GMT';
-					$item['pubDate'] = array(array('data' => $pub_date));
-				}
-				// The title and description are set to the empty string to represent
-				// a deleted item (which also makes it an invalid rss item).
-				if (isset($entry['properties']['deleted'][0])) {
-					$item['title'] = array(array('data' => ''));
-					$item['description'] = array(array('data' => ''));
-				}
-				$items[] = array('child' => array('' => $item));
-			}
-		}
-		// Mimic RSS data format when storing microformats.
-		$link = array(array('data' => $url));
-		$image = '';
-		if (!is_string($feed_author) &&
-				isset($feed_author['properties']['photo'][0])) {
-			$image = array(array('child' => array('' => array('url' =>
-				array(array('data' => $feed_author['properties']['photo'][0]))))));
-		}
-		// Use the name given for the h-feed, or get the title from the html.
-		if ($feed_title !== '') {
-			$feed_title = array(array('data' => htmlspecialchars($feed_title)));
-		}
-		else if ($position = strpos($data, '<title>')) {
-			$start = $position < 200 ? 0 : $position - 200;
-			$check = substr($data, $start, 400);
-			$matches = array();
-			if (preg_match('/<title>(.+)<\/title>/', $check, $matches)) {
-				$feed_title = array(array('data' => htmlspecialchars($matches[1])));
-			}
-		}
-		$channel = array('channel' => array(array('child' => array('' =>
-			array('link' => $link, 'image' => $image, 'title' => $feed_title,
-			      'item' => $items)))));
-		$rss = array(array('attribs' => array('' => array('version' => '2.0')),
-		                   'child' => array('' => $channel)));
-		$this->data = array('child' => array('' => array('rss' => $rss)));
-		return true;
-	}
-
-	private function declare_html_entities() {
-		// This is required because the RSS specification says that entity-encoded
-		// html is allowed, but the xml specification says they must be declared.
-		return '<!DOCTYPE html [ <!ENTITY nbsp "&#x00A0;"> <!ENTITY iexcl "&#x00A1;"> <!ENTITY cent "&#x00A2;"> <!ENTITY pound "&#x00A3;"> <!ENTITY curren "&#x00A4;"> <!ENTITY yen "&#x00A5;"> <!ENTITY brvbar "&#x00A6;"> <!ENTITY sect "&#x00A7;"> <!ENTITY uml "&#x00A8;"> <!ENTITY copy "&#x00A9;"> <!ENTITY ordf "&#x00AA;"> <!ENTITY laquo "&#x00AB;"> <!ENTITY not "&#x00AC;"> <!ENTITY shy "&#x00AD;"> <!ENTITY reg "&#x00AE;"> <!ENTITY macr "&#x00AF;"> <!ENTITY deg "&#x00B0;"> <!ENTITY plusmn "&#x00B1;"> <!ENTITY sup2 "&#x00B2;"> <!ENTITY sup3 "&#x00B3;"> <!ENTITY acute "&#x00B4;"> <!ENTITY micro "&#x00B5;"> <!ENTITY para "&#x00B6;"> <!ENTITY middot "&#x00B7;"> <!ENTITY cedil "&#x00B8;"> <!ENTITY sup1 "&#x00B9;"> <!ENTITY ordm "&#x00BA;"> <!ENTITY raquo "&#x00BB;"> <!ENTITY frac14 "&#x00BC;"> <!ENTITY frac12 "&#x00BD;"> <!ENTITY frac34 "&#x00BE;"> <!ENTITY iquest "&#x00BF;"> <!ENTITY Agrave "&#x00C0;"> <!ENTITY Aacute "&#x00C1;"> <!ENTITY Acirc "&#x00C2;"> <!ENTITY Atilde "&#x00C3;"> <!ENTITY Auml "&#x00C4;"> <!ENTITY Aring "&#x00C5;"> <!ENTITY AElig "&#x00C6;"> <!ENTITY Ccedil "&#x00C7;"> <!ENTITY Egrave "&#x00C8;"> <!ENTITY Eacute "&#x00C9;"> <!ENTITY Ecirc "&#x00CA;"> <!ENTITY Euml "&#x00CB;"> <!ENTITY Igrave "&#x00CC;"> <!ENTITY Iacute "&#x00CD;"> <!ENTITY Icirc "&#x00CE;"> <!ENTITY Iuml "&#x00CF;"> <!ENTITY ETH "&#x00D0;"> <!ENTITY Ntilde "&#x00D1;"> <!ENTITY Ograve "&#x00D2;"> <!ENTITY Oacute "&#x00D3;"> <!ENTITY Ocirc "&#x00D4;"> <!ENTITY Otilde "&#x00D5;"> <!ENTITY Ouml "&#x00D6;"> <!ENTITY times "&#x00D7;"> <!ENTITY Oslash "&#x00D8;"> <!ENTITY Ugrave "&#x00D9;"> <!ENTITY Uacute "&#x00DA;"> <!ENTITY Ucirc "&#x00DB;"> <!ENTITY Uuml "&#x00DC;"> <!ENTITY Yacute "&#x00DD;"> <!ENTITY THORN "&#x00DE;"> <!ENTITY szlig "&#x00DF;"> <!ENTITY agrave "&#x00E0;"> <!ENTITY aacute "&#x00E1;"> <!ENTITY acirc "&#x00E2;"> <!ENTITY atilde "&#x00E3;"> <!ENTITY auml "&#x00E4;"> <!ENTITY aring "&#x00E5;"> <!ENTITY aelig "&#x00E6;"> <!ENTITY ccedil "&#x00E7;"> <!ENTITY egrave "&#x00E8;"> <!ENTITY eacute "&#x00E9;"> <!ENTITY ecirc "&#x00EA;"> <!ENTITY euml "&#x00EB;"> <!ENTITY igrave "&#x00EC;"> <!ENTITY iacute "&#x00ED;"> <!ENTITY icirc "&#x00EE;"> <!ENTITY iuml "&#x00EF;"> <!ENTITY eth "&#x00F0;"> <!ENTITY ntilde "&#x00F1;"> <!ENTITY ograve "&#x00F2;"> <!ENTITY oacute "&#x00F3;"> <!ENTITY ocirc "&#x00F4;"> <!ENTITY otilde "&#x00F5;"> <!ENTITY ouml "&#x00F6;"> <!ENTITY divide "&#x00F7;"> <!ENTITY oslash "&#x00F8;"> <!ENTITY ugrave "&#x00F9;"> <!ENTITY uacute "&#x00FA;"> <!ENTITY ucirc "&#x00FB;"> <!ENTITY uuml "&#x00FC;"> <!ENTITY yacute "&#x00FD;"> <!ENTITY thorn "&#x00FE;"> <!ENTITY yuml "&#x00FF;"> <!ENTITY OElig "&#x0152;"> <!ENTITY oelig "&#x0153;"> <!ENTITY Scaron "&#x0160;"> <!ENTITY scaron "&#x0161;"> <!ENTITY Yuml "&#x0178;"> <!ENTITY fnof "&#x0192;"> <!ENTITY circ "&#x02C6;"> <!ENTITY tilde "&#x02DC;"> <!ENTITY Alpha "&#x0391;"> <!ENTITY Beta "&#x0392;"> <!ENTITY Gamma "&#x0393;"> <!ENTITY Epsilon "&#x0395;"> <!ENTITY Zeta "&#x0396;"> <!ENTITY Eta "&#x0397;"> <!ENTITY Theta "&#x0398;"> <!ENTITY Iota "&#x0399;"> <!ENTITY Kappa "&#x039A;"> <!ENTITY Lambda "&#x039B;"> <!ENTITY Mu "&#x039C;"> <!ENTITY Nu "&#x039D;"> <!ENTITY Xi "&#x039E;"> <!ENTITY Omicron "&#x039F;"> <!ENTITY Pi "&#x03A0;"> <!ENTITY Rho "&#x03A1;"> <!ENTITY Sigma "&#x03A3;"> <!ENTITY Tau "&#x03A4;"> <!ENTITY Upsilon "&#x03A5;"> <!ENTITY Phi "&#x03A6;"> <!ENTITY Chi "&#x03A7;"> <!ENTITY Psi "&#x03A8;"> <!ENTITY Omega "&#x03A9;"> <!ENTITY alpha "&#x03B1;"> <!ENTITY beta "&#x03B2;"> <!ENTITY gamma "&#x03B3;"> <!ENTITY delta "&#x03B4;"> <!ENTITY epsilon "&#x03B5;"> <!ENTITY zeta "&#x03B6;"> <!ENTITY eta "&#x03B7;"> <!ENTITY theta "&#x03B8;"> <!ENTITY iota "&#x03B9;"> <!ENTITY kappa "&#x03BA;"> <!ENTITY lambda "&#x03BB;"> <!ENTITY mu "&#x03BC;"> <!ENTITY nu "&#x03BD;"> <!ENTITY xi "&#x03BE;"> <!ENTITY omicron "&#x03BF;"> <!ENTITY pi "&#x03C0;"> <!ENTITY rho "&#x03C1;"> <!ENTITY sigmaf "&#x03C2;"> <!ENTITY sigma "&#x03C3;"> <!ENTITY tau "&#x03C4;"> <!ENTITY upsilon "&#x03C5;"> <!ENTITY phi "&#x03C6;"> <!ENTITY chi "&#x03C7;"> <!ENTITY psi "&#x03C8;"> <!ENTITY omega "&#x03C9;"> <!ENTITY thetasym "&#x03D1;"> <!ENTITY upsih "&#x03D2;"> <!ENTITY piv "&#x03D6;"> <!ENTITY ensp "&#x2002;"> <!ENTITY emsp "&#x2003;"> <!ENTITY thinsp "&#x2009;"> <!ENTITY zwnj "&#x200C;"> <!ENTITY zwj "&#x200D;"> <!ENTITY lrm "&#x200E;"> <!ENTITY rlm "&#x200F;"> <!ENTITY ndash "&#x2013;"> <!ENTITY mdash "&#x2014;"> <!ENTITY lsquo "&#x2018;"> <!ENTITY rsquo "&#x2019;"> <!ENTITY sbquo "&#x201A;"> <!ENTITY ldquo "&#x201C;"> <!ENTITY rdquo "&#x201D;"> <!ENTITY bdquo "&#x201E;"> <!ENTITY dagger "&#x2020;"> <!ENTITY Dagger "&#x2021;"> <!ENTITY bull "&#x2022;"> <!ENTITY hellip "&#x2026;"> <!ENTITY permil "&#x2030;"> <!ENTITY prime "&#x2032;"> <!ENTITY Prime "&#x2033;"> <!ENTITY lsaquo "&#x2039;"> <!ENTITY rsaquo "&#x203A;"> <!ENTITY oline "&#x203E;"> <!ENTITY frasl "&#x2044;"> <!ENTITY euro "&#x20AC;"> <!ENTITY image "&#x2111;"> <!ENTITY weierp "&#x2118;"> <!ENTITY real "&#x211C;"> <!ENTITY trade "&#x2122;"> <!ENTITY alefsym "&#x2135;"> <!ENTITY larr "&#x2190;"> <!ENTITY uarr "&#x2191;"> <!ENTITY rarr "&#x2192;"> <!ENTITY darr "&#x2193;"> <!ENTITY harr "&#x2194;"> <!ENTITY crarr "&#x21B5;"> <!ENTITY lArr "&#x21D0;"> <!ENTITY uArr "&#x21D1;"> <!ENTITY rArr "&#x21D2;"> <!ENTITY dArr "&#x21D3;"> <!ENTITY hArr "&#x21D4;"> <!ENTITY forall "&#x2200;"> <!ENTITY part "&#x2202;"> <!ENTITY exist "&#x2203;"> <!ENTITY empty "&#x2205;"> <!ENTITY nabla "&#x2207;"> <!ENTITY isin "&#x2208;"> <!ENTITY notin "&#x2209;"> <!ENTITY ni "&#x220B;"> <!ENTITY prod "&#x220F;"> <!ENTITY sum "&#x2211;"> <!ENTITY minus "&#x2212;"> <!ENTITY lowast "&#x2217;"> <!ENTITY radic "&#x221A;"> <!ENTITY prop "&#x221D;"> <!ENTITY infin "&#x221E;"> <!ENTITY ang "&#x2220;"> <!ENTITY and "&#x2227;"> <!ENTITY or "&#x2228;"> <!ENTITY cap "&#x2229;"> <!ENTITY cup "&#x222A;"> <!ENTITY int "&#x222B;"> <!ENTITY there4 "&#x2234;"> <!ENTITY sim "&#x223C;"> <!ENTITY cong "&#x2245;"> <!ENTITY asymp "&#x2248;"> <!ENTITY ne "&#x2260;"> <!ENTITY equiv "&#x2261;"> <!ENTITY le "&#x2264;"> <!ENTITY ge "&#x2265;"> <!ENTITY sub "&#x2282;"> <!ENTITY sup "&#x2283;"> <!ENTITY nsub "&#x2284;"> <!ENTITY sube "&#x2286;"> <!ENTITY supe "&#x2287;"> <!ENTITY oplus "&#x2295;"> <!ENTITY otimes "&#x2297;"> <!ENTITY perp "&#x22A5;"> <!ENTITY sdot "&#x22C5;"> <!ENTITY lceil "&#x2308;"> <!ENTITY rceil "&#x2309;"> <!ENTITY lfloor "&#x230A;"> <!ENTITY rfloor "&#x230B;"> <!ENTITY lang "&#x2329;"> <!ENTITY rang "&#x232A;"> <!ENTITY loz "&#x25CA;"> <!ENTITY spades "&#x2660;"> <!ENTITY clubs "&#x2663;"> <!ENTITY hearts "&#x2665;"> <!ENTITY diams "&#x2666;"> ]>';
-	}
-}
\ No newline at end of file
diff --git a/wiki/vendor/simplepie/simplepie/library/SimplePie/Rating.php b/wiki/vendor/simplepie/simplepie/library/SimplePie/Rating.php
deleted file mode 100644
index eaf5708..0000000
--- a/wiki/vendor/simplepie/simplepie/library/SimplePie/Rating.php
+++ /dev/null
@@ -1,128 +0,0 @@
-<?php
-/**
- * SimplePie
- *
- * A PHP-Based RSS and Atom Feed Framework.
- * Takes the hard work out of managing a complete RSS/Atom solution.
- *
- * Copyright (c) 2004-2016, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification, are
- * permitted provided that the following conditions are met:
- *
- * 	* Redistributions of source code must retain the above copyright notice, this list of
- * 	  conditions and the following disclaimer.
- *
- * 	* Redistributions in binary form must reproduce the above copyright notice, this list
- * 	  of conditions and the following disclaimer in the documentation and/or other materials
- * 	  provided with the distribution.
- *
- * 	* Neither the name of the SimplePie Team nor the names of its contributors may be used
- * 	  to endorse or promote products derived from this software without specific prior
- * 	  written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
- * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS
- * AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @package SimplePie
- * @copyright 2004-2016 Ryan Parman, Geoffrey Sneddon, Ryan McCue
- * @author Ryan Parman
- * @author Geoffrey Sneddon
- * @author Ryan McCue
- * @link http://simplepie.org/ SimplePie
- * @license http://www.opensource.org/licenses/bsd-license.php BSD License
- */
-
-/**
- * Handles `<media:rating>` or `<itunes:explicit>` tags as defined in Media RSS and iTunes RSS respectively
- *
- * Used by {@see SimplePie_Enclosure::get_rating()} and {@see SimplePie_Enclosure::get_ratings()}
- *
- * This class can be overloaded with {@see SimplePie::set_rating_class()}
- *
- * @package SimplePie
- * @subpackage API
- */
-class SimplePie_Rating
-{
-	/**
-	 * Rating scheme
-	 *
-	 * @var string
-	 * @see get_scheme()
-	 */
-	var $scheme;
-
-	/**
-	 * Rating value
-	 *
-	 * @var string
-	 * @see get_value()
-	 */
-	var $value;
-
-	/**
-	 * Constructor, used to input the data
-	 *
-	 * For documentation on all the parameters, see the corresponding
-	 * properties and their accessors
-	 */
-	public function __construct($scheme = null, $value = null)
-	{
-		$this->scheme = $scheme;
-		$this->value = $value;
-	}
-
-	/**
-	 * String-ified version
-	 *
-	 * @return string
-	 */
-	public function __toString()
-	{
-		// There is no $this->data here
-		return md5(serialize($this));
-	}
-
-	/**
-	 * Get the organizational scheme for the rating
-	 *
-	 * @return string|null
-	 */
-	public function get_scheme()
-	{
-		if ($this->scheme !== null)
-		{
-			return $this->scheme;
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	/**
-	 * Get the value of the rating
-	 *
-	 * @return string|null
-	 */
-	public function get_value()
-	{
-		if ($this->value !== null)
-		{
-			return $this->value;
-		}
-		else
-		{
-			return null;
-		}
-	}
-}
diff --git a/wiki/vendor/simplepie/simplepie/library/SimplePie/Registry.php b/wiki/vendor/simplepie/simplepie/library/SimplePie/Registry.php
deleted file mode 100755
index e0909bb..0000000
--- a/wiki/vendor/simplepie/simplepie/library/SimplePie/Registry.php
+++ /dev/null
@@ -1,224 +0,0 @@
-<?php
-/**
- * SimplePie
- *
- * A PHP-Based RSS and Atom Feed Framework.
- * Takes the hard work out of managing a complete RSS/Atom solution.
- *
- * Copyright (c) 2004-2016, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification, are
- * permitted provided that the following conditions are met:
- *
- * 	* Redistributions of source code must retain the above copyright notice, this list of
- * 	  conditions and the following disclaimer.
- *
- * 	* Redistributions in binary form must reproduce the above copyright notice, this list
- * 	  of conditions and the following disclaimer in the documentation and/or other materials
- * 	  provided with the distribution.
- *
- * 	* Neither the name of the SimplePie Team nor the names of its contributors may be used
- * 	  to endorse or promote products derived from this software without specific prior
- * 	  written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
- * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS
- * AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @package SimplePie
- * @copyright 2004-2016 Ryan Parman, Geoffrey Sneddon, Ryan McCue
- * @author Ryan Parman
- * @author Geoffrey Sneddon
- * @author Ryan McCue
- * @link http://simplepie.org/ SimplePie
- * @license http://www.opensource.org/licenses/bsd-license.php BSD License
- */
-
-/**
- * Handles creating objects and calling methods
- *
- * Access this via {@see SimplePie::get_registry()}
- *
- * @package SimplePie
- */
-class SimplePie_Registry
-{
-	/**
-	 * Default class mapping
-	 *
-	 * Overriding classes *must* subclass these.
-	 *
-	 * @var array
-	 */
-	protected $default = array(
-		'Cache' => 'SimplePie_Cache',
-		'Locator' => 'SimplePie_Locator',
-		'Parser' => 'SimplePie_Parser',
-		'File' => 'SimplePie_File',
-		'Sanitize' => 'SimplePie_Sanitize',
-		'Item' => 'SimplePie_Item',
-		'Author' => 'SimplePie_Author',
-		'Category' => 'SimplePie_Category',
-		'Enclosure' => 'SimplePie_Enclosure',
-		'Caption' => 'SimplePie_Caption',
-		'Copyright' => 'SimplePie_Copyright',
-		'Credit' => 'SimplePie_Credit',
-		'Rating' => 'SimplePie_Rating',
-		'Restriction' => 'SimplePie_Restriction',
-		'Content_Type_Sniffer' => 'SimplePie_Content_Type_Sniffer',
-		'Source' => 'SimplePie_Source',
-		'Misc' => 'SimplePie_Misc',
-		'XML_Declaration_Parser' => 'SimplePie_XML_Declaration_Parser',
-		'Parse_Date' => 'SimplePie_Parse_Date',
-	);
-
-	/**
-	 * Class mapping
-	 *
-	 * @see register()
-	 * @var array
-	 */
-	protected $classes = array();
-
-	/**
-	 * Legacy classes
-	 *
-	 * @see register()
-	 * @var array
-	 */
-	protected $legacy = array();
-
-	/**
-	 * Constructor
-	 *
-	 * No-op
-	 */
-	public function __construct() { }
-
-	/**
-	 * Register a class
-	 *
-	 * @param string $type See {@see $default} for names
-	 * @param string $class Class name, must subclass the corresponding default
-	 * @param bool $legacy Whether to enable legacy support for this class
-	 * @return bool Successfulness
-	 */
-	public function register($type, $class, $legacy = false)
-	{
-		if (!@is_subclass_of($class, $this->default[$type]))
-		{
-			return false;
-		}
-
-		$this->classes[$type] = $class;
-
-		if ($legacy)
-		{
-			$this->legacy[] = $class;
-		}
-
-		return true;
-	}
-
-	/**
-	 * Get the class registered for a type
-	 *
-	 * Where possible, use {@see create()} or {@see call()} instead
-	 *
-	 * @param string $type
-	 * @return string|null
-	 */
-	public function get_class($type)
-	{
-		if (!empty($this->classes[$type]))
-		{
-			return $this->classes[$type];
-		}
-		if (!empty($this->default[$type]))
-		{
-			return $this->default[$type];
-		}
-
-		return null;
-	}
-
-	/**
-	 * Create a new instance of a given type
-	 *
-	 * @param string $type
-	 * @param array $parameters Parameters to pass to the constructor
-	 * @return object Instance of class
-	 */
-	public function &create($type, $parameters = array())
-	{
-		$class = $this->get_class($type);
-
-		if (in_array($class, $this->legacy))
-		{
-			switch ($type)
-			{
-				case 'locator':
-					// Legacy: file, timeout, useragent, file_class, max_checked_feeds, content_type_sniffer_class
-					// Specified: file, timeout, useragent, max_checked_feeds
-					$replacement = array($this->get_class('file'), $parameters[3], $this->get_class('content_type_sniffer'));
-					array_splice($parameters, 3, 1, $replacement);
-					break;
-			}
-		}
-
-		if (!method_exists($class, '__construct'))
-		{
-			$instance = new $class;
-		}
-		else
-		{
-			$reflector = new ReflectionClass($class);
-			$instance = $reflector->newInstanceArgs($parameters);
-		}
-
-		if (method_exists($instance, 'set_registry'))
-		{
-			$instance->set_registry($this);
-		}
-		return $instance;
-	}
-
-	/**
-	 * Call a static method for a type
-	 *
-	 * @param string $type
-	 * @param string $method
-	 * @param array $parameters
-	 * @return mixed
-	 */
-	public function &call($type, $method, $parameters = array())
-	{
-		$class = $this->get_class($type);
-
-		if (in_array($class, $this->legacy))
-		{
-			switch ($type)
-			{
-				case 'Cache':
-					// For backwards compatibility with old non-static
-					// Cache::create() methods
-					if ($method === 'get_handler')
-					{
-						$result = @call_user_func_array(array($class, 'create'), $parameters);
-						return $result;
-					}
-					break;
-			}
-		}
-
-		$result = call_user_func_array(array($class, $method), $parameters);
-		return $result;
-	}
-}
diff --git a/wiki/vendor/simplepie/simplepie/library/SimplePie/Restriction.php b/wiki/vendor/simplepie/simplepie/library/SimplePie/Restriction.php
deleted file mode 100644
index 001a5cd..0000000
--- a/wiki/vendor/simplepie/simplepie/library/SimplePie/Restriction.php
+++ /dev/null
@@ -1,154 +0,0 @@
-<?php
-/**
- * SimplePie
- *
- * A PHP-Based RSS and Atom Feed Framework.
- * Takes the hard work out of managing a complete RSS/Atom solution.
- *
- * Copyright (c) 2004-2016, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification, are
- * permitted provided that the following conditions are met:
- *
- * 	* Redistributions of source code must retain the above copyright notice, this list of
- * 	  conditions and the following disclaimer.
- *
- * 	* Redistributions in binary form must reproduce the above copyright notice, this list
- * 	  of conditions and the following disclaimer in the documentation and/or other materials
- * 	  provided with the distribution.
- *
- * 	* Neither the name of the SimplePie Team nor the names of its contributors may be used
- * 	  to endorse or promote products derived from this software without specific prior
- * 	  written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
- * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS
- * AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @package SimplePie
- * @copyright 2004-2016 Ryan Parman, Geoffrey Sneddon, Ryan McCue
- * @author Ryan Parman
- * @author Geoffrey Sneddon
- * @author Ryan McCue
- * @link http://simplepie.org/ SimplePie
- * @license http://www.opensource.org/licenses/bsd-license.php BSD License
- */
-
-/**
- * Handles `<media:restriction>` as defined in Media RSS
- *
- * Used by {@see SimplePie_Enclosure::get_restriction()} and {@see SimplePie_Enclosure::get_restrictions()}
- *
- * This class can be overloaded with {@see SimplePie::set_restriction_class()}
- *
- * @package SimplePie
- * @subpackage API
- */
-class SimplePie_Restriction
-{
-	/**
-	 * Relationship ('allow'/'deny')
-	 *
-	 * @var string
-	 * @see get_relationship()
-	 */
-	var $relationship;
-
-	/**
-	 * Type of restriction
-	 *
-	 * @var string
-	 * @see get_type()
-	 */
-	var $type;
-
-	/**
-	 * Restricted values
-	 *
-	 * @var string
-	 * @see get_value()
-	 */
-	var $value;
-
-	/**
-	 * Constructor, used to input the data
-	 *
-	 * For documentation on all the parameters, see the corresponding
-	 * properties and their accessors
-	 */
-	public function __construct($relationship = null, $type = null, $value = null)
-	{
-		$this->relationship = $relationship;
-		$this->type = $type;
-		$this->value = $value;
-	}
-
-	/**
-	 * String-ified version
-	 *
-	 * @return string
-	 */
-	public function __toString()
-	{
-		// There is no $this->data here
-		return md5(serialize($this));
-	}
-
-	/**
-	 * Get the relationship
-	 *
-	 * @return string|null Either 'allow' or 'deny'
-	 */
-	public function get_relationship()
-	{
-		if ($this->relationship !== null)
-		{
-			return $this->relationship;
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	/**
-	 * Get the type
-	 *
-	 * @return string|null
-	 */
-	public function get_type()
-	{
-		if ($this->type !== null)
-		{
-			return $this->type;
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	/**
-	 * Get the list of restricted things
-	 *
-	 * @return string|null
-	 */
-	public function get_value()
-	{
-		if ($this->value !== null)
-		{
-			return $this->value;
-		}
-		else
-		{
-			return null;
-		}
-	}
-}
diff --git a/wiki/vendor/simplepie/simplepie/library/SimplePie/Sanitize.php b/wiki/vendor/simplepie/simplepie/library/SimplePie/Sanitize.php
deleted file mode 100644
index 5a11721..0000000
--- a/wiki/vendor/simplepie/simplepie/library/SimplePie/Sanitize.php
+++ /dev/null
@@ -1,591 +0,0 @@
-<?php
-/**
- * SimplePie
- *
- * A PHP-Based RSS and Atom Feed Framework.
- * Takes the hard work out of managing a complete RSS/Atom solution.
- *
- * Copyright (c) 2004-2016, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification, are
- * permitted provided that the following conditions are met:
- *
- * 	* Redistributions of source code must retain the above copyright notice, this list of
- * 	  conditions and the following disclaimer.
- *
- * 	* Redistributions in binary form must reproduce the above copyright notice, this list
- * 	  of conditions and the following disclaimer in the documentation and/or other materials
- * 	  provided with the distribution.
- *
- * 	* Neither the name of the SimplePie Team nor the names of its contributors may be used
- * 	  to endorse or promote products derived from this software without specific prior
- * 	  written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
- * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS
- * AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @package SimplePie
- * @copyright 2004-2016 Ryan Parman, Geoffrey Sneddon, Ryan McCue
- * @author Ryan Parman
- * @author Geoffrey Sneddon
- * @author Ryan McCue
- * @link http://simplepie.org/ SimplePie
- * @license http://www.opensource.org/licenses/bsd-license.php BSD License
- */
-
-/**
- * Used for data cleanup and post-processing
- *
- *
- * This class can be overloaded with {@see SimplePie::set_sanitize_class()}
- *
- * @package SimplePie
- * @todo Move to using an actual HTML parser (this will allow tags to be properly stripped, and to switch between HTML and XHTML), this will also make it easier to shorten a string while preserving HTML tags
- */
-class SimplePie_Sanitize
-{
-	// Private vars
-	var $base;
-
-	// Options
-	var $remove_div = true;
-	var $image_handler = '';
-	var $strip_htmltags = array('base', 'blink', 'body', 'doctype', 'embed', 'font', 'form', 'frame', 'frameset', 'html', 'iframe', 'input', 'marquee', 'meta', 'noscript', 'object', 'param', 'script', 'style');
-	var $encode_instead_of_strip = false;
-	var $strip_attributes = array('bgsound', 'expr', 'id', 'style', 'onclick', 'onerror', 'onfinish', 'onmouseover', 'onmouseout', 'onfocus', 'onblur', 'lowsrc', 'dynsrc');
-	var $add_attributes = array('audio' => array('preload' => 'none'), 'iframe' => array('sandbox' => 'allow-scripts allow-same-origin'), 'video' => array('preload' => 'none'));
-	var $strip_comments = false;
-	var $output_encoding = 'UTF-8';
-	var $enable_cache = true;
-	var $cache_location = './cache';
-	var $cache_name_function = 'md5';
-	var $timeout = 10;
-	var $useragent = '';
-	var $force_fsockopen = false;
-	var $replace_url_attributes = null;
-
-	public function __construct()
-	{
-		// Set defaults
-		$this->set_url_replacements(null);
-	}
-
-	public function remove_div($enable = true)
-	{
-		$this->remove_div = (bool) $enable;
-	}
-
-	public function set_image_handler($page = false)
-	{
-		if ($page)
-		{
-			$this->image_handler = (string) $page;
-		}
-		else
-		{
-			$this->image_handler = false;
-		}
-	}
-
-	public function set_registry(SimplePie_Registry $registry)
-	{
-		$this->registry = $registry;
-	}
-
-	public function pass_cache_data($enable_cache = true, $cache_location = './cache', $cache_name_function = 'md5', $cache_class = 'SimplePie_Cache')
-	{
-		if (isset($enable_cache))
-		{
-			$this->enable_cache = (bool) $enable_cache;
-		}
-
-		if ($cache_location)
-		{
-			$this->cache_location = (string) $cache_location;
-		}
-
-		if ($cache_name_function)
-		{
-			$this->cache_name_function = (string) $cache_name_function;
-		}
-	}
-
-	public function pass_file_data($file_class = 'SimplePie_File', $timeout = 10, $useragent = '', $force_fsockopen = false)
-	{
-		if ($timeout)
-		{
-			$this->timeout = (string) $timeout;
-		}
-
-		if ($useragent)
-		{
-			$this->useragent = (string) $useragent;
-		}
-
-		if ($force_fsockopen)
-		{
-			$this->force_fsockopen = (string) $force_fsockopen;
-		}
-	}
-
-	public function strip_htmltags($tags = array('base', 'blink', 'body', 'doctype', 'embed', 'font', 'form', 'frame', 'frameset', 'html', 'iframe', 'input', 'marquee', 'meta', 'noscript', 'object', 'param', 'script', 'style'))
-	{
-		if ($tags)
-		{
-			if (is_array($tags))
-			{
-				$this->strip_htmltags = $tags;
-			}
-			else
-			{
-				$this->strip_htmltags = explode(',', $tags);
-			}
-		}
-		else
-		{
-			$this->strip_htmltags = false;
-		}
-	}
-
-	public function encode_instead_of_strip($encode = false)
-	{
-		$this->encode_instead_of_strip = (bool) $encode;
-	}
-
-	public function strip_attributes($attribs = array('bgsound', 'expr', 'id', 'style', 'onclick', 'onerror', 'onfinish', 'onmouseover', 'onmouseout', 'onfocus', 'onblur', 'lowsrc', 'dynsrc'))
-	{
-		if ($attribs)
-		{
-			if (is_array($attribs))
-			{
-				$this->strip_attributes = $attribs;
-			}
-			else
-			{
-				$this->strip_attributes = explode(',', $attribs);
-			}
-		}
-		else
-		{
-			$this->strip_attributes = false;
-		}
-	}
-
-	public function add_attributes($attribs = array('audio' => array('preload' => 'none'), 'iframe' => array('sandbox' => 'allow-scripts allow-same-origin'), 'video' => array('preload' => 'none')))
-	{
-		if ($attribs)
-		{
-			if (is_array($attribs))
-			{
-				$this->add_attributes = $attribs;
-			}
-			else
-			{
-				$this->add_attributes = explode(',', $attribs);
-			}
-		}
-		else
-		{
-			$this->add_attributes = false;
-		}
-	}
-
-	public function strip_comments($strip = false)
-	{
-		$this->strip_comments = (bool) $strip;
-	}
-
-	public function set_output_encoding($encoding = 'UTF-8')
-	{
-		$this->output_encoding = (string) $encoding;
-	}
-
-	/**
-	 * Set element/attribute key/value pairs of HTML attributes
-	 * containing URLs that need to be resolved relative to the feed
-	 *
-	 * Defaults to |a|@href, |area|@href, |blockquote|@cite, |del|@cite,
-	 * |form|@action, |img|@longdesc, |img|@src, |input|@src, |ins|@cite,
-	 * |q|@cite
-	 *
-	 * @since 1.0
-	 * @param array|null $element_attribute Element/attribute key/value pairs, null for default
-	 */
-	public function set_url_replacements($element_attribute = null)
-	{
-		if ($element_attribute === null)
-		{
-			$element_attribute = array(
-				'a' => 'href',
-				'area' => 'href',
-				'blockquote' => 'cite',
-				'del' => 'cite',
-				'form' => 'action',
-				'img' => array(
-					'longdesc',
-					'src'
-				),
-				'input' => 'src',
-				'ins' => 'cite',
-				'q' => 'cite'
-			);
-		}
-		$this->replace_url_attributes = (array) $element_attribute;
-	}
-
-	public function sanitize($data, $type, $base = '')
-	{
-		$data = trim($data);
-		if ($data !== '' || $type & SIMPLEPIE_CONSTRUCT_IRI)
-		{
-			if ($type & SIMPLEPIE_CONSTRUCT_MAYBE_HTML)
-			{
-				if (preg_match('/(&(#(x[0-9a-fA-F]+|[0-9]+)|[a-zA-Z0-9]+)|<\/[A-Za-z][^\x09\x0A\x0B\x0C\x0D\x20\x2F\x3E]*' . SIMPLEPIE_PCRE_HTML_ATTRIBUTE . '>)/', $data))
-				{
-					$type |= SIMPLEPIE_CONSTRUCT_HTML;
-				}
-				else
-				{
-					$type |= SIMPLEPIE_CONSTRUCT_TEXT;
-				}
-			}
-
-			if ($type & SIMPLEPIE_CONSTRUCT_BASE64)
-			{
-				$data = base64_decode($data);
-			}
-
-			if ($type & (SIMPLEPIE_CONSTRUCT_HTML | SIMPLEPIE_CONSTRUCT_XHTML))
-			{
-
-				if (!class_exists('DOMDocument'))
-				{
-					throw new SimplePie_Exception('DOMDocument not found, unable to use sanitizer');
-				}
-				$document = new DOMDocument();
-				$document->encoding = 'UTF-8';
-
-				$data = $this->preprocess($data, $type);
-
-				set_error_handler(array('SimplePie_Misc', 'silence_errors'));
-				$document->loadHTML($data);
-				restore_error_handler();
-
-				$xpath = new DOMXPath($document);
-
-				// Strip comments
-				if ($this->strip_comments)
-				{
-					$comments = $xpath->query('//comment()');
-
-					foreach ($comments as $comment)
-					{
-						$comment->parentNode->removeChild($comment);
-					}
-				}
-
-				// Strip out HTML tags and attributes that might cause various security problems.
-				// Based on recommendations by Mark Pilgrim at:
-				// http://diveintomark.org/archives/2003/06/12/how_to_consume_rss_safely
-				if ($this->strip_htmltags)
-				{
-					foreach ($this->strip_htmltags as $tag)
-					{
-						$this->strip_tag($tag, $document, $xpath, $type);
-					}
-				}
-
-				if ($this->strip_attributes)
-				{
-					foreach ($this->strip_attributes as $attrib)
-					{
-						$this->strip_attr($attrib, $xpath);
-					}
-				}
-
-				if ($this->add_attributes)
-				{
-					foreach ($this->add_attributes as $tag => $valuePairs)
-					{
-						$this->add_attr($tag, $valuePairs, $document);
-					}
-				}
-
-				// Replace relative URLs
-				$this->base = $base;
-				foreach ($this->replace_url_attributes as $element => $attributes)
-				{
-					$this->replace_urls($document, $element, $attributes);
-				}
-
-				// If image handling (caching, etc.) is enabled, cache and rewrite all the image tags.
-				if (isset($this->image_handler) && ((string) $this->image_handler) !== '' && $this->enable_cache)
-				{
-					$images = $document->getElementsByTagName('img');
-					foreach ($images as $img)
-					{
-						if ($img->hasAttribute('src'))
-						{
-							$image_url = call_user_func($this->cache_name_function, $img->getAttribute('src'));
-							$cache = $this->registry->call('Cache', 'get_handler', array($this->cache_location, $image_url, 'spi'));
-
-							if ($cache->load())
-							{
-								$img->setAttribute('src', $this->image_handler . $image_url);
-							}
-							else
-							{
-								$file = $this->registry->create('File', array($img->getAttribute('src'), $this->timeout, 5, array('X-FORWARDED-FOR' => $_SERVER['REMOTE_ADDR']), $this->useragent, $this->force_fsockopen));
-								$headers = $file->headers;
-
-								if ($file->success && ($file->method & SIMPLEPIE_FILE_SOURCE_REMOTE === 0 || ($file->status_code === 200 || $file->status_code > 206 && $file->status_code < 300)))
-								{
-									if ($cache->save(array('headers' => $file->headers, 'body' => $file->body)))
-									{
-										$img->setAttribute('src', $this->image_handler . $image_url);
-									}
-									else
-									{
-										trigger_error("$this->cache_location is not writeable. Make sure you've set the correct relative or absolute path, and that the location is server-writable.", E_USER_WARNING);
-									}
-								}
-							}
-						}
-					}
-				}
-
-				// Get content node
-				$div = $document->getElementsByTagName('body')->item(0)->firstChild;
-				// Finally, convert to a HTML string
-				if (version_compare(PHP_VERSION, '5.3.6', '>='))
-				{
-					$data = trim($document->saveHTML($div));
-				}
-				else
-				{
-					$data = trim($document->saveXML($div));
-				}
-
-				if ($this->remove_div)
-				{
-					$data = preg_replace('/^<div' . SIMPLEPIE_PCRE_XML_ATTRIBUTE . '>/', '', $data);
-					$data = preg_replace('/<\/div>$/', '', $data);
-				}
-				else
-				{
-					$data = preg_replace('/^<div' . SIMPLEPIE_PCRE_XML_ATTRIBUTE . '>/', '<div>', $data);
-				}
-			}
-
-			if ($type & SIMPLEPIE_CONSTRUCT_IRI)
-			{
-				$absolute = $this->registry->call('Misc', 'absolutize_url', array($data, $base));
-				if ($absolute !== false)
-				{
-					$data = $absolute;
-				}
-			}
-
-			if ($type & (SIMPLEPIE_CONSTRUCT_TEXT | SIMPLEPIE_CONSTRUCT_IRI))
-			{
-				$data = htmlspecialchars($data, ENT_COMPAT, 'UTF-8');
-			}
-
-			if ($this->output_encoding !== 'UTF-8')
-			{
-				$data = $this->registry->call('Misc', 'change_encoding', array($data, 'UTF-8', $this->output_encoding));
-			}
-		}
-		return $data;
-	}
-
-	protected function preprocess($html, $type)
-	{
-		$ret = '';
-		$html = preg_replace('%</?(?:html|body)[^>]*?'.'>%is', '', $html);
-		if ($type & ~SIMPLEPIE_CONSTRUCT_XHTML)
-		{
-			// Atom XHTML constructs are wrapped with a div by default
-			// Note: No protection if $html contains a stray </div>!
-			$html = '<div>' . $html . '</div>';
-			$ret .= '<!DOCTYPE html>';
-			$content_type = 'text/html';
-		}
-		else
-		{
-			$ret .= '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">';
-			$content_type = 'application/xhtml+xml';
-		}
-
-		$ret .= '<html><head>';
-		$ret .= '<meta http-equiv="Content-Type" content="' . $content_type . '; charset=utf-8" />';
-		$ret .= '</head><body>' . $html . '</body></html>';
-		return $ret;
-	}
-
-	public function replace_urls($document, $tag, $attributes)
-	{
-		if (!is_array($attributes))
-		{
-			$attributes = array($attributes);
-		}
-
-		if (!is_array($this->strip_htmltags) || !in_array($tag, $this->strip_htmltags))
-		{
-			$elements = $document->getElementsByTagName($tag);
-			foreach ($elements as $element)
-			{
-				foreach ($attributes as $attribute)
-				{
-					if ($element->hasAttribute($attribute))
-					{
-						$value = $this->registry->call('Misc', 'absolutize_url', array($element->getAttribute($attribute), $this->base));
-						if ($value !== false)
-						{
-							$element->setAttribute($attribute, $value);
-						}
-					}
-				}
-			}
-		}
-	}
-
-	public function do_strip_htmltags($match)
-	{
-		if ($this->encode_instead_of_strip)
-		{
-			if (isset($match[4]) && !in_array(strtolower($match[1]), array('script', 'style')))
-			{
-				$match[1] = htmlspecialchars($match[1], ENT_COMPAT, 'UTF-8');
-				$match[2] = htmlspecialchars($match[2], ENT_COMPAT, 'UTF-8');
-				return "&lt;$match[1]$match[2]&gt;$match[3]&lt;/$match[1]&gt;";
-			}
-			else
-			{
-				return htmlspecialchars($match[0], ENT_COMPAT, 'UTF-8');
-			}
-		}
-		elseif (isset($match[4]) && !in_array(strtolower($match[1]), array('script', 'style')))
-		{
-			return $match[4];
-		}
-		else
-		{
-			return '';
-		}
-	}
-
-	protected function strip_tag($tag, $document, $xpath, $type)
-	{
-		$elements = $xpath->query('body//' . $tag);
-		if ($this->encode_instead_of_strip)
-		{
-			foreach ($elements as $element)
-			{
-				$fragment = $document->createDocumentFragment();
-
-				// For elements which aren't script or style, include the tag itself
-				if (!in_array($tag, array('script', 'style')))
-				{
-					$text = '<' . $tag;
-					if ($element->hasAttributes())
-					{
-						$attrs = array();
-						foreach ($element->attributes as $name => $attr)
-						{
-							$value = $attr->value;
-
-							// In XHTML, empty values should never exist, so we repeat the value
-							if (empty($value) && ($type & SIMPLEPIE_CONSTRUCT_XHTML))
-							{
-								$value = $name;
-							}
-							// For HTML, empty is fine
-							elseif (empty($value) && ($type & SIMPLEPIE_CONSTRUCT_HTML))
-							{
-								$attrs[] = $name;
-								continue;
-							}
-
-							// Standard attribute text
-							$attrs[] = $name . '="' . $attr->value . '"';
-						}
-						$text .= ' ' . implode(' ', $attrs);
-					}
-					$text .= '>';
-					$fragment->appendChild(new DOMText($text));
-				}
-
-				$number = $element->childNodes->length;
-				for ($i = $number; $i > 0; $i--)
-				{
-					$child = $element->childNodes->item(0);
-					$fragment->appendChild($child);
-				}
-
-				if (!in_array($tag, array('script', 'style')))
-				{
-					$fragment->appendChild(new DOMText('</' . $tag . '>'));
-				}
-
-				$element->parentNode->replaceChild($fragment, $element);
-			}
-
-			return;
-		}
-		elseif (in_array($tag, array('script', 'style')))
-		{
-			foreach ($elements as $element)
-			{
-				$element->parentNode->removeChild($element);
-			}
-
-			return;
-		}
-		else
-		{
-			foreach ($elements as $element)
-			{
-				$fragment = $document->createDocumentFragment();
-				$number = $element->childNodes->length;
-				for ($i = $number; $i > 0; $i--)
-				{
-					$child = $element->childNodes->item(0);
-					$fragment->appendChild($child);
-				}
-
-				$element->parentNode->replaceChild($fragment, $element);
-			}
-		}
-	}
-
-	protected function strip_attr($attrib, $xpath)
-	{
-		$elements = $xpath->query('//*[@' . $attrib . ']');
-
-		foreach ($elements as $element)
-		{
-			$element->removeAttribute($attrib);
-		}
-	}
-
-	protected function add_attr($tag, $valuePairs, $document)
-	{
-		$elements = $document->getElementsByTagName($tag);
-		foreach ($elements as $element)
-		{
-			foreach ($valuePairs as $attrib => $value)
-			{
-				$element->setAttribute($attrib, $value);
-			}
-		}
-	}
-}
diff --git a/wiki/vendor/simplepie/simplepie/library/SimplePie/Source.php b/wiki/vendor/simplepie/simplepie/library/SimplePie/Source.php
deleted file mode 100644
index 1a66a39..0000000
--- a/wiki/vendor/simplepie/simplepie/library/SimplePie/Source.php
+++ /dev/null
@@ -1,610 +0,0 @@
-<?php
-/**
- * SimplePie
- *
- * A PHP-Based RSS and Atom Feed Framework.
- * Takes the hard work out of managing a complete RSS/Atom solution.
- *
- * Copyright (c) 2004-2016, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification, are
- * permitted provided that the following conditions are met:
- *
- * 	* Redistributions of source code must retain the above copyright notice, this list of
- * 	  conditions and the following disclaimer.
- *
- * 	* Redistributions in binary form must reproduce the above copyright notice, this list
- * 	  of conditions and the following disclaimer in the documentation and/or other materials
- * 	  provided with the distribution.
- *
- * 	* Neither the name of the SimplePie Team nor the names of its contributors may be used
- * 	  to endorse or promote products derived from this software without specific prior
- * 	  written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
- * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS
- * AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @package SimplePie
- * @copyright 2004-2016 Ryan Parman, Geoffrey Sneddon, Ryan McCue
- * @author Ryan Parman
- * @author Geoffrey Sneddon
- * @author Ryan McCue
- * @link http://simplepie.org/ SimplePie
- * @license http://www.opensource.org/licenses/bsd-license.php BSD License
- */
-
-/**
- * Handles `<atom:source>`
- *
- * Used by {@see SimplePie_Item::get_source()}
- *
- * This class can be overloaded with {@see SimplePie::set_source_class()}
- *
- * @package SimplePie
- * @subpackage API
- */
-class SimplePie_Source
-{
-	var $item;
-	var $data = array();
-	protected $registry;
-
-	public function __construct($item, $data)
-	{
-		$this->item = $item;
-		$this->data = $data;
-	}
-
-	public function set_registry(SimplePie_Registry $registry)
-	{
-		$this->registry = $registry;
-	}
-
-	public function __toString()
-	{
-		return md5(serialize($this->data));
-	}
-
-	public function get_source_tags($namespace, $tag)
-	{
-		if (isset($this->data['child'][$namespace][$tag]))
-		{
-			return $this->data['child'][$namespace][$tag];
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	public function get_base($element = array())
-	{
-		return $this->item->get_base($element);
-	}
-
-	public function sanitize($data, $type, $base = '')
-	{
-		return $this->item->sanitize($data, $type, $base);
-	}
-
-	public function get_item()
-	{
-		return $this->item;
-	}
-
-	public function get_title()
-	{
-		if ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'title'))
-		{
-			return $this->sanitize($return[0]['data'], $this->registry->call('Misc', 'atom_10_construct_type', array($return[0]['attribs'])), $this->get_base($return[0]));
-		}
-		elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'title'))
-		{
-			return $this->sanitize($return[0]['data'], $this->registry->call('Misc', 'atom_03_construct_type', array($return[0]['attribs'])), $this->get_base($return[0]));
-		}
-		elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_RSS_10, 'title'))
-		{
-			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_MAYBE_HTML, $this->get_base($return[0]));
-		}
-		elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_RSS_090, 'title'))
-		{
-			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_MAYBE_HTML, $this->get_base($return[0]));
-		}
-		elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'title'))
-		{
-			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_MAYBE_HTML, $this->get_base($return[0]));
-		}
-		elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_DC_11, 'title'))
-		{
-			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-		}
-		elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_DC_10, 'title'))
-		{
-			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	public function get_category($key = 0)
-	{
-		$categories = $this->get_categories();
-		if (isset($categories[$key]))
-		{
-			return $categories[$key];
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	public function get_categories()
-	{
-		$categories = array();
-
-		foreach ((array) $this->get_source_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'category') as $category)
-		{
-			$term = null;
-			$scheme = null;
-			$label = null;
-			if (isset($category['attribs']['']['term']))
-			{
-				$term = $this->sanitize($category['attribs']['']['term'], SIMPLEPIE_CONSTRUCT_TEXT);
-			}
-			if (isset($category['attribs']['']['scheme']))
-			{
-				$scheme = $this->sanitize($category['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT);
-			}
-			if (isset($category['attribs']['']['label']))
-			{
-				$label = $this->sanitize($category['attribs']['']['label'], SIMPLEPIE_CONSTRUCT_TEXT);
-			}
-			$categories[] = $this->registry->create('Category', array($term, $scheme, $label));
-		}
-		foreach ((array) $this->get_source_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'category') as $category)
-		{
-			// This is really the label, but keep this as the term also for BC.
-			// Label will also work on retrieving because that falls back to term.
-			$term = $this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-			if (isset($category['attribs']['']['domain']))
-			{
-				$scheme = $this->sanitize($category['attribs']['']['domain'], SIMPLEPIE_CONSTRUCT_TEXT);
-			}
-			else
-			{
-				$scheme = null;
-			}
-			$categories[] = $this->registry->create('Category', array($term, $scheme, null));
-		}
-		foreach ((array) $this->get_source_tags(SIMPLEPIE_NAMESPACE_DC_11, 'subject') as $category)
-		{
-			$categories[] = $this->registry->create('Category', array($this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null));
-		}
-		foreach ((array) $this->get_source_tags(SIMPLEPIE_NAMESPACE_DC_10, 'subject') as $category)
-		{
-			$categories[] = $this->registry->create('Category', array($this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null));
-		}
-
-		if (!empty($categories))
-		{
-			return array_unique($categories);
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	public function get_author($key = 0)
-	{
-		$authors = $this->get_authors();
-		if (isset($authors[$key]))
-		{
-			return $authors[$key];
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	public function get_authors()
-	{
-		$authors = array();
-		foreach ((array) $this->get_source_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'author') as $author)
-		{
-			$name = null;
-			$uri = null;
-			$email = null;
-			if (isset($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['name'][0]['data']))
-			{
-				$name = $this->sanitize($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['name'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-			}
-			if (isset($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0]['data']))
-			{
-				$uri = $this->sanitize($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0]));
-			}
-			if (isset($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['email'][0]['data']))
-			{
-				$email = $this->sanitize($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['email'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-			}
-			if ($name !== null || $email !== null || $uri !== null)
-			{
-				$authors[] = $this->registry->create('Author', array($name, $uri, $email));
-			}
-		}
-		if ($author = $this->get_source_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'author'))
-		{
-			$name = null;
-			$url = null;
-			$email = null;
-			if (isset($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['name'][0]['data']))
-			{
-				$name = $this->sanitize($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['name'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-			}
-			if (isset($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['url'][0]['data']))
-			{
-				$url = $this->sanitize($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['url'][0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['url'][0]));
-			}
-			if (isset($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['email'][0]['data']))
-			{
-				$email = $this->sanitize($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['email'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-			}
-			if ($name !== null || $email !== null || $url !== null)
-			{
-				$authors[] = $this->registry->create('Author', array($name, $url, $email));
-			}
-		}
-		foreach ((array) $this->get_source_tags(SIMPLEPIE_NAMESPACE_DC_11, 'creator') as $author)
-		{
-			$authors[] = $this->registry->create('Author', array($this->sanitize($author['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null));
-		}
-		foreach ((array) $this->get_source_tags(SIMPLEPIE_NAMESPACE_DC_10, 'creator') as $author)
-		{
-			$authors[] = $this->registry->create('Author', array($this->sanitize($author['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null));
-		}
-		foreach ((array) $this->get_source_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'author') as $author)
-		{
-			$authors[] = $this->registry->create('Author', array($this->sanitize($author['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null));
-		}
-
-		if (!empty($authors))
-		{
-			return array_unique($authors);
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	public function get_contributor($key = 0)
-	{
-		$contributors = $this->get_contributors();
-		if (isset($contributors[$key]))
-		{
-			return $contributors[$key];
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	public function get_contributors()
-	{
-		$contributors = array();
-		foreach ((array) $this->get_source_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'contributor') as $contributor)
-		{
-			$name = null;
-			$uri = null;
-			$email = null;
-			if (isset($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['name'][0]['data']))
-			{
-				$name = $this->sanitize($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['name'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-			}
-			if (isset($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0]['data']))
-			{
-				$uri = $this->sanitize($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0]));
-			}
-			if (isset($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['email'][0]['data']))
-			{
-				$email = $this->sanitize($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['email'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-			}
-			if ($name !== null || $email !== null || $uri !== null)
-			{
-				$contributors[] = $this->registry->create('Author', array($name, $uri, $email));
-			}
-		}
-		foreach ((array) $this->get_source_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'contributor') as $contributor)
-		{
-			$name = null;
-			$url = null;
-			$email = null;
-			if (isset($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['name'][0]['data']))
-			{
-				$name = $this->sanitize($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['name'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-			}
-			if (isset($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['url'][0]['data']))
-			{
-				$url = $this->sanitize($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['url'][0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['url'][0]));
-			}
-			if (isset($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['email'][0]['data']))
-			{
-				$email = $this->sanitize($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['email'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-			}
-			if ($name !== null || $email !== null || $url !== null)
-			{
-				$contributors[] = $this->registry->create('Author', array($name, $url, $email));
-			}
-		}
-
-		if (!empty($contributors))
-		{
-			return array_unique($contributors);
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	public function get_link($key = 0, $rel = 'alternate')
-	{
-		$links = $this->get_links($rel);
-		if (isset($links[$key]))
-		{
-			return $links[$key];
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	/**
-	 * Added for parity between the parent-level and the item/entry-level.
-	 */
-	public function get_permalink()
-	{
-		return $this->get_link(0);
-	}
-
-	public function get_links($rel = 'alternate')
-	{
-		if (!isset($this->data['links']))
-		{
-			$this->data['links'] = array();
-			if ($links = $this->get_source_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'link'))
-			{
-				foreach ($links as $link)
-				{
-					if (isset($link['attribs']['']['href']))
-					{
-						$link_rel = (isset($link['attribs']['']['rel'])) ? $link['attribs']['']['rel'] : 'alternate';
-						$this->data['links'][$link_rel][] = $this->sanitize($link['attribs']['']['href'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($link));
-					}
-				}
-			}
-			if ($links = $this->get_source_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'link'))
-			{
-				foreach ($links as $link)
-				{
-					if (isset($link['attribs']['']['href']))
-					{
-						$link_rel = (isset($link['attribs']['']['rel'])) ? $link['attribs']['']['rel'] : 'alternate';
-						$this->data['links'][$link_rel][] = $this->sanitize($link['attribs']['']['href'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($link));
-
-					}
-				}
-			}
-			if ($links = $this->get_source_tags(SIMPLEPIE_NAMESPACE_RSS_10, 'link'))
-			{
-				$this->data['links']['alternate'][] = $this->sanitize($links[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($links[0]));
-			}
-			if ($links = $this->get_source_tags(SIMPLEPIE_NAMESPACE_RSS_090, 'link'))
-			{
-				$this->data['links']['alternate'][] = $this->sanitize($links[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($links[0]));
-			}
-			if ($links = $this->get_source_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'link'))
-			{
-				$this->data['links']['alternate'][] = $this->sanitize($links[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($links[0]));
-			}
-
-			$keys = array_keys($this->data['links']);
-			foreach ($keys as $key)
-			{
-				if ($this->registry->call('Misc', 'is_isegment_nz_nc', array($key)))
-				{
-					if (isset($this->data['links'][SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY . $key]))
-					{
-						$this->data['links'][SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY . $key] = array_merge($this->data['links'][$key], $this->data['links'][SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY . $key]);
-						$this->data['links'][$key] =& $this->data['links'][SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY . $key];
-					}
-					else
-					{
-						$this->data['links'][SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY . $key] =& $this->data['links'][$key];
-					}
-				}
-				elseif (substr($key, 0, 41) === SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY)
-				{
-					$this->data['links'][substr($key, 41)] =& $this->data['links'][$key];
-				}
-				$this->data['links'][$key] = array_unique($this->data['links'][$key]);
-			}
-		}
-
-		if (isset($this->data['links'][$rel]))
-		{
-			return $this->data['links'][$rel];
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	public function get_description()
-	{
-		if ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'subtitle'))
-		{
-			return $this->sanitize($return[0]['data'], $this->registry->call('Misc', 'atom_10_construct_type', array($return[0]['attribs'])), $this->get_base($return[0]));
-		}
-		elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'tagline'))
-		{
-			return $this->sanitize($return[0]['data'], $this->registry->call('Misc', 'atom_03_construct_type', array($return[0]['attribs'])), $this->get_base($return[0]));
-		}
-		elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_RSS_10, 'description'))
-		{
-			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_MAYBE_HTML, $this->get_base($return[0]));
-		}
-		elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_RSS_090, 'description'))
-		{
-			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_MAYBE_HTML, $this->get_base($return[0]));
-		}
-		elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'description'))
-		{
-			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_MAYBE_HTML, $this->get_base($return[0]));
-		}
-		elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_DC_11, 'description'))
-		{
-			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-		}
-		elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_DC_10, 'description'))
-		{
-			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-		}
-		elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'summary'))
-		{
-			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_HTML, $this->get_base($return[0]));
-		}
-		elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'subtitle'))
-		{
-			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_HTML, $this->get_base($return[0]));
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	public function get_copyright()
-	{
-		if ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'rights'))
-		{
-			return $this->sanitize($return[0]['data'], $this->registry->call('Misc', 'atom_10_construct_type', array($return[0]['attribs'])), $this->get_base($return[0]));
-		}
-		elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'copyright'))
-		{
-			return $this->sanitize($return[0]['data'], $this->registry->call('Misc', 'atom_03_construct_type', array($return[0]['attribs'])), $this->get_base($return[0]));
-		}
-		elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'copyright'))
-		{
-			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-		}
-		elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_DC_11, 'rights'))
-		{
-			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-		}
-		elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_DC_10, 'rights'))
-		{
-			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	public function get_language()
-	{
-		if ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'language'))
-		{
-			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-		}
-		elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_DC_11, 'language'))
-		{
-			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-		}
-		elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_DC_10, 'language'))
-		{
-			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-		}
-		elseif (isset($this->data['xml_lang']))
-		{
-			return $this->sanitize($this->data['xml_lang'], SIMPLEPIE_CONSTRUCT_TEXT);
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	public function get_latitude()
-	{
-		if ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_W3C_BASIC_GEO, 'lat'))
-		{
-			return (float) $return[0]['data'];
-		}
-		elseif (($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_GEORSS, 'point')) && preg_match('/^((?:-)?[0-9]+(?:\.[0-9]+)) ((?:-)?[0-9]+(?:\.[0-9]+))$/', trim($return[0]['data']), $match))
-		{
-			return (float) $match[1];
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	public function get_longitude()
-	{
-		if ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_W3C_BASIC_GEO, 'long'))
-		{
-			return (float) $return[0]['data'];
-		}
-		elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_W3C_BASIC_GEO, 'lon'))
-		{
-			return (float) $return[0]['data'];
-		}
-		elseif (($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_GEORSS, 'point')) && preg_match('/^((?:-)?[0-9]+(?:\.[0-9]+)) ((?:-)?[0-9]+(?:\.[0-9]+))$/', trim($return[0]['data']), $match))
-		{
-			return (float) $match[2];
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	public function get_image_url()
-	{
-		if ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'image'))
-		{
-			return $this->sanitize($return[0]['attribs']['']['href'], SIMPLEPIE_CONSTRUCT_IRI);
-		}
-		elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'logo'))
-		{
-			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($return[0]));
-		}
-		elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'icon'))
-		{
-			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($return[0]));
-		}
-		else
-		{
-			return null;
-		}
-	}
-}
-
diff --git a/wiki/vendor/simplepie/simplepie/library/SimplePie/XML/Declaration/Parser.php b/wiki/vendor/simplepie/simplepie/library/SimplePie/XML/Declaration/Parser.php
deleted file mode 100644
index 99e7516..0000000
--- a/wiki/vendor/simplepie/simplepie/library/SimplePie/XML/Declaration/Parser.php
+++ /dev/null
@@ -1,361 +0,0 @@
-<?php
-/**
- * SimplePie
- *
- * A PHP-Based RSS and Atom Feed Framework.
- * Takes the hard work out of managing a complete RSS/Atom solution.
- *
- * Copyright (c) 2004-2016, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification, are
- * permitted provided that the following conditions are met:
- *
- * 	* Redistributions of source code must retain the above copyright notice, this list of
- * 	  conditions and the following disclaimer.
- *
- * 	* Redistributions in binary form must reproduce the above copyright notice, this list
- * 	  of conditions and the following disclaimer in the documentation and/or other materials
- * 	  provided with the distribution.
- *
- * 	* Neither the name of the SimplePie Team nor the names of its contributors may be used
- * 	  to endorse or promote products derived from this software without specific prior
- * 	  written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
- * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS
- * AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @package SimplePie
- * @copyright 2004-2016 Ryan Parman, Geoffrey Sneddon, Ryan McCue
- * @author Ryan Parman
- * @author Geoffrey Sneddon
- * @author Ryan McCue
- * @link http://simplepie.org/ SimplePie
- * @license http://www.opensource.org/licenses/bsd-license.php BSD License
- */
-
-
-/**
- * Parses the XML Declaration
- *
- * @package SimplePie
- * @subpackage Parsing
- */
-class SimplePie_XML_Declaration_Parser
-{
-	/**
-	 * XML Version
-	 *
-	 * @access public
-	 * @var string
-	 */
-	var $version = '1.0';
-
-	/**
-	 * Encoding
-	 *
-	 * @access public
-	 * @var string
-	 */
-	var $encoding = 'UTF-8';
-
-	/**
-	 * Standalone
-	 *
-	 * @access public
-	 * @var bool
-	 */
-	var $standalone = false;
-
-	/**
-	 * Current state of the state machine
-	 *
-	 * @access private
-	 * @var string
-	 */
-	var $state = 'before_version_name';
-
-	/**
-	 * Input data
-	 *
-	 * @access private
-	 * @var string
-	 */
-	var $data = '';
-
-	/**
-	 * Input data length (to avoid calling strlen() everytime this is needed)
-	 *
-	 * @access private
-	 * @var int
-	 */
-	var $data_length = 0;
-
-	/**
-	 * Current position of the pointer
-	 *
-	 * @var int
-	 * @access private
-	 */
-	var $position = 0;
-
-	/**
-	 * Create an instance of the class with the input data
-	 *
-	 * @access public
-	 * @param string $data Input data
-	 */
-	public function __construct($data)
-	{
-		$this->data = $data;
-		$this->data_length = strlen($this->data);
-	}
-
-	/**
-	 * Parse the input data
-	 *
-	 * @access public
-	 * @return bool true on success, false on failure
-	 */
-	public function parse()
-	{
-		while ($this->state && $this->state !== 'emit' && $this->has_data())
-		{
-			$state = $this->state;
-			$this->$state();
-		}
-		$this->data = '';
-		if ($this->state === 'emit')
-		{
-			return true;
-		}
-		else
-		{
-			$this->version = '';
-			$this->encoding = '';
-			$this->standalone = '';
-			return false;
-		}
-	}
-
-	/**
-	 * Check whether there is data beyond the pointer
-	 *
-	 * @access private
-	 * @return bool true if there is further data, false if not
-	 */
-	public function has_data()
-	{
-		return (bool) ($this->position < $this->data_length);
-	}
-
-	/**
-	 * Advance past any whitespace
-	 *
-	 * @return int Number of whitespace characters passed
-	 */
-	public function skip_whitespace()
-	{
-		$whitespace = strspn($this->data, "\x09\x0A\x0D\x20", $this->position);
-		$this->position += $whitespace;
-		return $whitespace;
-	}
-
-	/**
-	 * Read value
-	 */
-	public function get_value()
-	{
-		$quote = substr($this->data, $this->position, 1);
-		if ($quote === '"' || $quote === "'")
-		{
-			$this->position++;
-			$len = strcspn($this->data, $quote, $this->position);
-			if ($this->has_data())
-			{
-				$value = substr($this->data, $this->position, $len);
-				$this->position += $len + 1;
-				return $value;
-			}
-		}
-		return false;
-	}
-
-	public function before_version_name()
-	{
-		if ($this->skip_whitespace())
-		{
-			$this->state = 'version_name';
-		}
-		else
-		{
-			$this->state = false;
-		}
-	}
-
-	public function version_name()
-	{
-		if (substr($this->data, $this->position, 7) === 'version')
-		{
-			$this->position += 7;
-			$this->skip_whitespace();
-			$this->state = 'version_equals';
-		}
-		else
-		{
-			$this->state = false;
-		}
-	}
-
-	public function version_equals()
-	{
-		if (substr($this->data, $this->position, 1) === '=')
-		{
-			$this->position++;
-			$this->skip_whitespace();
-			$this->state = 'version_value';
-		}
-		else
-		{
-			$this->state = false;
-		}
-	}
-
-	public function version_value()
-	{
-		if ($this->version = $this->get_value())
-		{
-			$this->skip_whitespace();
-			if ($this->has_data())
-			{
-				$this->state = 'encoding_name';
-			}
-			else
-			{
-				$this->state = 'emit';
-			}
-		}
-		else
-		{
-			$this->state = false;
-		}
-	}
-
-	public function encoding_name()
-	{
-		if (substr($this->data, $this->position, 8) === 'encoding')
-		{
-			$this->position += 8;
-			$this->skip_whitespace();
-			$this->state = 'encoding_equals';
-		}
-		else
-		{
-			$this->state = 'standalone_name';
-		}
-	}
-
-	public function encoding_equals()
-	{
-		if (substr($this->data, $this->position, 1) === '=')
-		{
-			$this->position++;
-			$this->skip_whitespace();
-			$this->state = 'encoding_value';
-		}
-		else
-		{
-			$this->state = false;
-		}
-	}
-
-	public function encoding_value()
-	{
-		if ($this->encoding = $this->get_value())
-		{
-			$this->skip_whitespace();
-			if ($this->has_data())
-			{
-				$this->state = 'standalone_name';
-			}
-			else
-			{
-				$this->state = 'emit';
-			}
-		}
-		else
-		{
-			$this->state = false;
-		}
-	}
-
-	public function standalone_name()
-	{
-		if (substr($this->data, $this->position, 10) === 'standalone')
-		{
-			$this->position += 10;
-			$this->skip_whitespace();
-			$this->state = 'standalone_equals';
-		}
-		else
-		{
-			$this->state = false;
-		}
-	}
-
-	public function standalone_equals()
-	{
-		if (substr($this->data, $this->position, 1) === '=')
-		{
-			$this->position++;
-			$this->skip_whitespace();
-			$this->state = 'standalone_value';
-		}
-		else
-		{
-			$this->state = false;
-		}
-	}
-
-	public function standalone_value()
-	{
-		if ($standalone = $this->get_value())
-		{
-			switch ($standalone)
-			{
-				case 'yes':
-					$this->standalone = true;
-					break;
-
-				case 'no':
-					$this->standalone = false;
-					break;
-
-				default:
-					$this->state = false;
-					return;
-			}
-
-			$this->skip_whitespace();
-			if ($this->has_data())
-			{
-				$this->state = false;
-			}
-			else
-			{
-				$this->state = 'emit';
-			}
-		}
-		else
-		{
-			$this->state = false;
-		}
-	}
-}
diff --git a/wiki/vendor/simplepie/simplepie/library/SimplePie/gzdecode.php b/wiki/vendor/simplepie/simplepie/library/SimplePie/gzdecode.php
deleted file mode 100644
index 0e8bc8f..0000000
--- a/wiki/vendor/simplepie/simplepie/library/SimplePie/gzdecode.php
+++ /dev/null
@@ -1,370 +0,0 @@
-<?php
-/**
- * SimplePie
- *
- * A PHP-Based RSS and Atom Feed Framework.
- * Takes the hard work out of managing a complete RSS/Atom solution.
- *
- * Copyright (c) 2004-2016, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification, are
- * permitted provided that the following conditions are met:
- *
- * 	* Redistributions of source code must retain the above copyright notice, this list of
- * 	  conditions and the following disclaimer.
- *
- * 	* Redistributions in binary form must reproduce the above copyright notice, this list
- * 	  of conditions and the following disclaimer in the documentation and/or other materials
- * 	  provided with the distribution.
- *
- * 	* Neither the name of the SimplePie Team nor the names of its contributors may be used
- * 	  to endorse or promote products derived from this software without specific prior
- * 	  written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
- * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS
- * AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * @package SimplePie
- * @copyright 2004-2016 Ryan Parman, Geoffrey Sneddon, Ryan McCue
- * @author Ryan Parman
- * @author Geoffrey Sneddon
- * @author Ryan McCue
- * @link http://simplepie.org/ SimplePie
- * @license http://www.opensource.org/licenses/bsd-license.php BSD License
- */
-
-
-/**
- * Decode 'gzip' encoded HTTP data
- *
- * @package SimplePie
- * @subpackage HTTP
- * @link http://www.gzip.org/format.txt
- */
-class SimplePie_gzdecode
-{
-	/**
-	 * Compressed data
-	 *
-	 * @access private
-	 * @var string
-	 * @see gzdecode::$data
-	 */
-	var $compressed_data;
-
-	/**
-	 * Size of compressed data
-	 *
-	 * @access private
-	 * @var int
-	 */
-	var $compressed_size;
-
-	/**
-	 * Minimum size of a valid gzip string
-	 *
-	 * @access private
-	 * @var int
-	 */
-	var $min_compressed_size = 18;
-
-	/**
-	 * Current position of pointer
-	 *
-	 * @access private
-	 * @var int
-	 */
-	var $position = 0;
-
-	/**
-	 * Flags (FLG)
-	 *
-	 * @access private
-	 * @var int
-	 */
-	var $flags;
-
-	/**
-	 * Uncompressed data
-	 *
-	 * @access public
-	 * @see gzdecode::$compressed_data
-	 * @var string
-	 */
-	var $data;
-
-	/**
-	 * Modified time
-	 *
-	 * @access public
-	 * @var int
-	 */
-	var $MTIME;
-
-	/**
-	 * Extra Flags
-	 *
-	 * @access public
-	 * @var int
-	 */
-	var $XFL;
-
-	/**
-	 * Operating System
-	 *
-	 * @access public
-	 * @var int
-	 */
-	var $OS;
-
-	/**
-	 * Subfield ID 1
-	 *
-	 * @access public
-	 * @see gzdecode::$extra_field
-	 * @see gzdecode::$SI2
-	 * @var string
-	 */
-	var $SI1;
-
-	/**
-	 * Subfield ID 2
-	 *
-	 * @access public
-	 * @see gzdecode::$extra_field
-	 * @see gzdecode::$SI1
-	 * @var string
-	 */
-	var $SI2;
-
-	/**
-	 * Extra field content
-	 *
-	 * @access public
-	 * @see gzdecode::$SI1
-	 * @see gzdecode::$SI2
-	 * @var string
-	 */
-	var $extra_field;
-
-	/**
-	 * Original filename
-	 *
-	 * @access public
-	 * @var string
-	 */
-	var $filename;
-
-	/**
-	 * Human readable comment
-	 *
-	 * @access public
-	 * @var string
-	 */
-	var $comment;
-
-	/**
-	 * Don't allow anything to be set
-	 *
-	 * @param string $name
-	 * @param mixed $value
-	 */
-	public function __set($name, $value)
-	{
-		trigger_error("Cannot write property $name", E_USER_ERROR);
-	}
-
-	/**
-	 * Set the compressed string and related properties
-	 *
-	 * @param string $data
-	 */
-	public function __construct($data)
-	{
-		$this->compressed_data = $data;
-		$this->compressed_size = strlen($data);
-	}
-
-	/**
-	 * Decode the GZIP stream
-	 *
-	 * @return bool Successfulness
-	 */
-	public function parse()
-	{
-		if ($this->compressed_size >= $this->min_compressed_size)
-		{
-			// Check ID1, ID2, and CM
-			if (substr($this->compressed_data, 0, 3) !== "\x1F\x8B\x08")
-			{
-				return false;
-			}
-
-			// Get the FLG (FLaGs)
-			$this->flags = ord($this->compressed_data[3]);
-
-			// FLG bits above (1 << 4) are reserved
-			if ($this->flags > 0x1F)
-			{
-				return false;
-			}
-
-			// Advance the pointer after the above
-			$this->position += 4;
-
-			// MTIME
-			$mtime = substr($this->compressed_data, $this->position, 4);
-			// Reverse the string if we're on a big-endian arch because l is the only signed long and is machine endianness
-			if (current(unpack('S', "\x00\x01")) === 1)
-			{
-				$mtime = strrev($mtime);
-			}
-			$this->MTIME = current(unpack('l', $mtime));
-			$this->position += 4;
-
-			// Get the XFL (eXtra FLags)
-			$this->XFL = ord($this->compressed_data[$this->position++]);
-
-			// Get the OS (Operating System)
-			$this->OS = ord($this->compressed_data[$this->position++]);
-
-			// Parse the FEXTRA
-			if ($this->flags & 4)
-			{
-				// Read subfield IDs
-				$this->SI1 = $this->compressed_data[$this->position++];
-				$this->SI2 = $this->compressed_data[$this->position++];
-
-				// SI2 set to zero is reserved for future use
-				if ($this->SI2 === "\x00")
-				{
-					return false;
-				}
-
-				// Get the length of the extra field
-				$len = current(unpack('v', substr($this->compressed_data, $this->position, 2)));
-				$this->position += 2;
-
-				// Check the length of the string is still valid
-				$this->min_compressed_size += $len + 4;
-				if ($this->compressed_size >= $this->min_compressed_size)
-				{
-					// Set the extra field to the given data
-					$this->extra_field = substr($this->compressed_data, $this->position, $len);
-					$this->position += $len;
-				}
-				else
-				{
-					return false;
-				}
-			}
-
-			// Parse the FNAME
-			if ($this->flags & 8)
-			{
-				// Get the length of the filename
-				$len = strcspn($this->compressed_data, "\x00", $this->position);
-
-				// Check the length of the string is still valid
-				$this->min_compressed_size += $len + 1;
-				if ($this->compressed_size >= $this->min_compressed_size)
-				{
-					// Set the original filename to the given string
-					$this->filename = substr($this->compressed_data, $this->position, $len);
-					$this->position += $len + 1;
-				}
-				else
-				{
-					return false;
-				}
-			}
-
-			// Parse the FCOMMENT
-			if ($this->flags & 16)
-			{
-				// Get the length of the comment
-				$len = strcspn($this->compressed_data, "\x00", $this->position);
-
-				// Check the length of the string is still valid
-				$this->min_compressed_size += $len + 1;
-				if ($this->compressed_size >= $this->min_compressed_size)
-				{
-					// Set the original comment to the given string
-					$this->comment = substr($this->compressed_data, $this->position, $len);
-					$this->position += $len + 1;
-				}
-				else
-				{
-					return false;
-				}
-			}
-
-			// Parse the FHCRC
-			if ($this->flags & 2)
-			{
-				// Check the length of the string is still valid
-				$this->min_compressed_size += $len + 2;
-				if ($this->compressed_size >= $this->min_compressed_size)
-				{
-					// Read the CRC
-					$crc = current(unpack('v', substr($this->compressed_data, $this->position, 2)));
-
-					// Check the CRC matches
-					if ((crc32(substr($this->compressed_data, 0, $this->position)) & 0xFFFF) === $crc)
-					{
-						$this->position += 2;
-					}
-					else
-					{
-						return false;
-					}
-				}
-				else
-				{
-					return false;
-				}
-			}
-
-			// Decompress the actual data
-			if (($this->data = gzinflate(substr($this->compressed_data, $this->position, -8))) === false)
-			{
-				return false;
-			}
-			else
-			{
-				$this->position = $this->compressed_size - 8;
-			}
-
-			// Check CRC of data
-			$crc = current(unpack('V', substr($this->compressed_data, $this->position, 4)));
-			$this->position += 4;
-			/*if (extension_loaded('hash') && sprintf('%u', current(unpack('V', hash('crc32b', $this->data)))) !== sprintf('%u', $crc))
-			{
-				return false;
-			}*/
-
-			// Check ISIZE of data
-			$isize = current(unpack('V', substr($this->compressed_data, $this->position, 4)));
-			$this->position += 4;
-			if (sprintf('%u', strlen($this->data) & 0xFFFFFFFF) !== sprintf('%u', $isize))
-			{
-				return false;
-			}
-
-			// Wow, against all odds, we've actually got a valid gzip string
-			return true;
-		}
-		else
-		{
-			return false;
-		}
-	}
-}
diff --git a/wiki/vendor/splitbrain/php-archive/LICENSE b/wiki/vendor/splitbrain/php-archive/LICENSE
deleted file mode 100644
index 66d08e4..0000000
--- a/wiki/vendor/splitbrain/php-archive/LICENSE
+++ /dev/null
@@ -1,19 +0,0 @@
-Copyright (c) 2015 Andreas Gohr <gohr@cosmocode.de>
-
-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.
\ No newline at end of file
diff --git a/wiki/vendor/splitbrain/php-archive/README.md b/wiki/vendor/splitbrain/php-archive/README.md
deleted file mode 100644
index f18764b..0000000
--- a/wiki/vendor/splitbrain/php-archive/README.md
+++ /dev/null
@@ -1,70 +0,0 @@
-PHPArchive - Pure PHP ZIP and TAR handling
-==========================================
-
-This library allows to handle new ZIP and TAR archives without the need for any special PHP extensions (gz and bzip are
-needed for compression). It can create new files or extract existing ones.
-
-To keep things simple, the modification (adding or removing files) of existing archives is not supported.
-
-[![Build Status](https://travis-ci.org/splitbrain/php-archive.svg)](https://travis-ci.org/splitbrain/php-archive)
-
-Install
--------
-
-Use composer:
-
-```php composer.phar require splitbrain/php-archive```
-
-Usage
------
-
-The usage for the Zip and Tar classes are basically the same. Here are some
-examples for working with TARs to get you started.
-
-Check the [API docs](https://splitbrain.github.io/php-archive/) for more
-info.
-
-
-```php
-require_once 'vendor/autoload.php';
-use splitbrain\PHPArchive\Tar;
-
-// To list the contents of an existing TAR archive, open() it and use
-// contents() on it:
-$tar = new Tar();
-$tar->open('myfile.tgz');
-$toc = $tar->contents();
-print_r($toc); // array of FileInfo objects
-
-// To extract the contents of an existing TAR archive, open() it and use
-// extract() on it:
-$tar = new Tar();
-$tar->open('myfile.tgz');
-$tar->extract('/tmp');
-
-// To create a new TAR archive directly on the filesystem (low memory
-// requirements), create() it:
-$tar = new Tar();
-$tar->create('myfile.tgz');
-$tar->addFile(...);
-$tar->addData(...);
-...
-$tar->close();
-
-// To create a TAR archive directly in memory, create() it, add*()
-// files and then either save() or getArchive() it:
-$tar = new Tar();
-$tar->setCompression(9, Archive::COMPRESS_BZIP);
-$tar->create();
-$tar->addFile(...);
-$tar->addData(...);
-...
-$tar->save('myfile.tbz'); // compresses and saves it
-echo $tar->getArchive(); // compresses and returns it
-```
-
-Differences between Tar and Zip: Tars are compressed as a whole, while Zips compress each file individually. Therefore
-you can call ```setCompression``` before each ```addFile()``` and ```addData()``` function call.
-
-The FileInfo class can be used to specify additional info like ownership or permissions when adding a file to
-an archive. 
diff --git a/wiki/vendor/splitbrain/php-archive/phpunit.xml b/wiki/vendor/splitbrain/php-archive/phpunit.xml
deleted file mode 100644
index c5e1ad3..0000000
--- a/wiki/vendor/splitbrain/php-archive/phpunit.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<phpunit backupGlobals="false"
-         backupStaticAttributes="false"
-         bootstrap="vendor/autoload.php"
-         colors="true"
-         convertErrorsToExceptions="true"
-         convertNoticesToExceptions="true"
-         convertWarningsToExceptions="true"
-         processIsolation="false"
-         stopOnFailure="false"
-         syntaxCheck="false">
-    <testsuites>
-        <testsuite name="Test Suite">
-            <directory suffix=".php">./tests/</directory>
-        </testsuite>
-    </testsuites>
-    <filter>
-        <whitelist processUncoveredFilesFromWhitelist="false">
-            <directory suffix=".php">src</directory>
-        </whitelist>
-    </filter>
-</phpunit>
diff --git a/wiki/vendor/splitbrain/php-archive/src/Archive.php b/wiki/vendor/splitbrain/php-archive/src/Archive.php
deleted file mode 100644
index d672cc6..0000000
--- a/wiki/vendor/splitbrain/php-archive/src/Archive.php
+++ /dev/null
@@ -1,132 +0,0 @@
-<?php
-
-namespace splitbrain\PHPArchive;
-
-abstract class Archive
-{
-
-    const COMPRESS_AUTO = -1;
-    const COMPRESS_NONE = 0;
-    const COMPRESS_GZIP = 1;
-    const COMPRESS_BZIP = 2;
-
-    /**
-     * Set the compression level and type
-     *
-     * @param int $level Compression level (0 to 9)
-     * @param int $type  Type of compression to use (use COMPRESS_* constants)
-     * @return mixed
-     */
-    abstract public function setCompression($level = 9, $type = Archive::COMPRESS_AUTO);
-
-    /**
-     * Open an existing archive file for reading
-     *
-     * @param string $file
-     * @throws ArchiveIOException
-     */
-    abstract public function open($file);
-
-    /**
-     * Read the contents of an archive
-     *
-     * This function lists the files stored in the archive, and returns an indexed array of FileInfo objects
-     *
-     * The archive is closed afer reading the contents, because rewinding is not possible in bzip2 streams.
-     * Reopen the file with open() again if you want to do additional operations
-     *
-     * @return FileInfo[]
-     */
-    abstract public function contents();
-
-    /**
-     * Extract an existing archive
-     *
-     * The $strip parameter allows you to strip a certain number of path components from the filenames
-     * found in the archive file, similar to the --strip-components feature of GNU tar. This is triggered when
-     * an integer is passed as $strip.
-     * Alternatively a fixed string prefix may be passed in $strip. If the filename matches this prefix,
-     * the prefix will be stripped. It is recommended to give prefixes with a trailing slash.
-     *
-     * By default this will extract all files found in the archive. You can restrict the output using the $include
-     * and $exclude parameter. Both expect a full regular expression (including delimiters and modifiers). If
-     * $include is set, only files that match this expression will be extracted. Files that match the $exclude
-     * expression will never be extracted. Both parameters can be used in combination. Expressions are matched against
-     * stripped filenames as described above.
-     *
-     * The archive is closed afterwards. Reopen the file with open() again if you want to do additional operations
-     *
-     * @param string     $outdir  the target directory for extracting
-     * @param int|string $strip   either the number of path components or a fixed prefix to strip
-     * @param string     $exclude a regular expression of files to exclude
-     * @param string     $include a regular expression of files to include
-     * @throws ArchiveIOException
-     * @return array
-     */
-    abstract public function extract($outdir, $strip = '', $exclude = '', $include = '');
-
-    /**
-     * Create a new archive file
-     *
-     * If $file is empty, the archive file will be created in memory
-     *
-     * @param string $file
-     */
-    abstract public function create($file = '');
-
-    /**
-     * 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
-     * @throws ArchiveIOException
-     */
-    abstract public function addFile($file, $fileinfo = '');
-
-    /**
-     * Add a file to the current 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
-     * @throws ArchiveIOException
-     */
-    abstract public function addData($fileinfo, $data);
-
-    /**
-     * Close the archive, close all file handles
-     *
-     * After a call to this function no more data can be added to the archive, for
-     * read access no reading is allowed anymore
-     */
-    abstract public function close();
-
-    /**
-     * Returns the created in-memory archive data
-     *
-     * This implicitly calls close() on the Archive
-     */
-    abstract public function getArchive();
-
-    /**
-     * Save the created in-memory archive data
-     *
-     * Note: It is more memory effective to specify the filename in the create() function and
-     * let the library work on the new file directly.
-     *
-     * @param string $file
-     */
-    abstract public function save($file);
-
-}
-
-class ArchiveIOException extends \Exception
-{
-}
-
-class ArchiveIllegalCompressionException extends \Exception
-{
-}
-
-class ArchiveCorruptedException extends \Exception
-{
-}
diff --git a/wiki/vendor/splitbrain/php-archive/src/FileInfo.php b/wiki/vendor/splitbrain/php-archive/src/FileInfo.php
deleted file mode 100644
index 99f60c0..0000000
--- a/wiki/vendor/splitbrain/php-archive/src/FileInfo.php
+++ /dev/null
@@ -1,344 +0,0 @@
-<?php
-
-namespace splitbrain\PHPArchive;
-
-/**
- * Class FileInfo
- *
- * stores meta data about a file in an Archive
- *
- * @author  Andreas Gohr <andi@splitbrain.org>
- * @package splitbrain\PHPArchive
- * @license MIT
- */
-class FileInfo
-{
-
-    protected $isdir = false;
-    protected $path = '';
-    protected $size = 0;
-    protected $csize = 0;
-    protected $mtime = 0;
-    protected $mode = 0664;
-    protected $owner = '';
-    protected $group = '';
-    protected $uid = 0;
-    protected $gid = 0;
-    protected $comment = '';
-
-    /**
-     * initialize dynamic defaults
-     *
-     * @param string $path The path of the file, can also be set later through setPath()
-     */
-    public function __construct($path = '')
-    {
-        $this->mtime = time();
-        $this->setPath($path);
-    }
-
-    /**
-     * Factory to build FileInfo from existing file or directory
-     *
-     * @param string $path path to a file on the local file system
-     * @param string $as   optional path to use inside the archive
-     * @throws FileInfoException
-     * @return FileInfo
-     */
-    public static function fromPath($path, $as = '')
-    {
-        clearstatcache(false, $path);
-
-        if (!file_exists($path)) {
-            throw new FileInfoException("$path does not exist");
-        }
-
-        $stat = stat($path);
-        $file = new FileInfo();
-
-        $file->setPath($path);
-        $file->setIsdir(is_dir($path));
-        $file->setMode(fileperms($path));
-        $file->setOwner(fileowner($path));
-        $file->setGroup(filegroup($path));
-        $file->setSize(filesize($path));
-        $file->setUid($stat['uid']);
-        $file->setGid($stat['gid']);
-        $file->setMtime($stat['mtime']);
-
-        if ($as) {
-            $file->setPath($as);
-        }
-
-        return $file;
-    }
-
-    /**
-     * @return int the filesize. always 0 for directories
-     */
-    public function getSize()
-    {
-        if($this->isdir) return 0;
-        return $this->size;
-    }
-
-    /**
-     * @param int $size
-     */
-    public function setSize($size)
-    {
-        $this->size = $size;
-    }
-
-    /**
-     * @return int
-     */
-    public function getCompressedSize()
-    {
-        return $this->csize;
-    }
-
-    /**
-     * @param int $csize
-     */
-    public function setCompressedSize($csize)
-    {
-        $this->csize = $csize;
-    }
-
-    /**
-     * @return int
-     */
-    public function getMtime()
-    {
-        return $this->mtime;
-    }
-
-    /**
-     * @param int $mtime
-     */
-    public function setMtime($mtime)
-    {
-        $this->mtime = $mtime;
-    }
-
-    /**
-     * @return int
-     */
-    public function getGid()
-    {
-        return $this->gid;
-    }
-
-    /**
-     * @param int $gid
-     */
-    public function setGid($gid)
-    {
-        $this->gid = $gid;
-    }
-
-    /**
-     * @return int
-     */
-    public function getUid()
-    {
-        return $this->uid;
-    }
-
-    /**
-     * @param int $uid
-     */
-    public function setUid($uid)
-    {
-        $this->uid = $uid;
-    }
-
-    /**
-     * @return string
-     */
-    public function getComment()
-    {
-        return $this->comment;
-    }
-
-    /**
-     * @param string $comment
-     */
-    public function setComment($comment)
-    {
-        $this->comment = $comment;
-    }
-
-    /**
-     * @return string
-     */
-    public function getGroup()
-    {
-        return $this->group;
-    }
-
-    /**
-     * @param string $group
-     */
-    public function setGroup($group)
-    {
-        $this->group = $group;
-    }
-
-    /**
-     * @return boolean
-     */
-    public function getIsdir()
-    {
-        return $this->isdir;
-    }
-
-    /**
-     * @param boolean $isdir
-     */
-    public function setIsdir($isdir)
-    {
-        // default mode for directories
-        if ($isdir && $this->mode === 0664) {
-            $this->mode = 0775;
-        }
-        $this->isdir = $isdir;
-    }
-
-    /**
-     * @return int
-     */
-    public function getMode()
-    {
-        return $this->mode;
-    }
-
-    /**
-     * @param int $mode
-     */
-    public function setMode($mode)
-    {
-        $this->mode = $mode;
-    }
-
-    /**
-     * @return string
-     */
-    public function getOwner()
-    {
-        return $this->owner;
-    }
-
-    /**
-     * @param string $owner
-     */
-    public function setOwner($owner)
-    {
-        $this->owner = $owner;
-    }
-
-    /**
-     * @return string
-     */
-    public function getPath()
-    {
-        return $this->path;
-    }
-
-    /**
-     * @param string $path
-     */
-    public function setPath($path)
-    {
-        $this->path = $this->cleanPath($path);
-    }
-
-    /**
-     * Cleans up a path and removes relative parts, also strips leading slashes
-     *
-     * @param string $path
-     * @return string
-     */
-    protected function cleanPath($path)
-    {
-        $path    = str_replace('\\', '/', $path);
-        $path    = explode('/', $path);
-        $newpath = array();
-        foreach ($path as $p) {
-            if ($p === '' || $p === '.') {
-                continue;
-            }
-            if ($p === '..') {
-                array_pop($newpath);
-                continue;
-            }
-            array_push($newpath, $p);
-        }
-        return trim(implode('/', $newpath), '/');
-    }
-
-    /**
-     * Strip given prefix or number of path segments from the filename
-     *
-     * The $strip parameter allows you to strip a certain number of path components from the filenames
-     * found in the tar file, similar to the --strip-components feature of GNU tar. This is triggered when
-     * an integer is passed as $strip.
-     * Alternatively a fixed string prefix may be passed in $strip. If the filename matches this prefix,
-     * the prefix will be stripped. It is recommended to give prefixes with a trailing slash.
-     *
-     * @param  int|string $strip
-     * @return FileInfo
-     */
-    public function strip($strip)
-    {
-        $filename = $this->getPath();
-        $striplen = strlen($strip);
-        if (is_int($strip)) {
-            // if $strip is an integer we strip this many path components
-            $parts = explode('/', $filename);
-            if (!$this->getIsdir()) {
-                $base = array_pop($parts); // keep filename itself
-            } else {
-                $base = '';
-            }
-            $filename = join('/', array_slice($parts, $strip));
-            if ($base) {
-                $filename .= "/$base";
-            }
-        } else {
-            // if strip is a string, we strip a prefix here
-            if (substr($filename, 0, $striplen) == $strip) {
-                $filename = substr($filename, $striplen);
-            }
-        }
-
-        $this->setPath($filename);
-    }
-
-    /**
-     * Does the file match the given include and exclude expressions?
-     *
-     * Exclude rules take precedence over include rules
-     *
-     * @param string $include Regular expression of files to include
-     * @param string $exclude Regular expression of files to exclude
-     * @return bool
-     */
-    public function match($include = '', $exclude = '')
-    {
-        $extract = true;
-        if ($include && !preg_match($include, $this->getPath())) {
-            $extract = false;
-        }
-        if ($exclude && preg_match($exclude, $this->getPath())) {
-            $extract = false;
-        }
-
-        return $extract;
-    }
-}
-
-class FileInfoException extends \Exception
-{
-}
\ No newline at end of file
diff --git a/wiki/vendor/splitbrain/php-archive/src/Tar.php b/wiki/vendor/splitbrain/php-archive/src/Tar.php
deleted file mode 100644
index 5f01f39..0000000
--- a/wiki/vendor/splitbrain/php-archive/src/Tar.php
+++ /dev/null
@@ -1,667 +0,0 @@
-<?php
-
-namespace splitbrain\PHPArchive;
-
-/**
- * Class Tar
- *
- * Creates or extracts Tar archives. Supports gz and bzip compression
- *
- * Long pathnames (>100 chars) are supported in POSIX ustar and GNU longlink formats.
- *
- * @author  Andreas Gohr <andi@splitbrain.org>
- * @package splitbrain\PHPArchive
- * @license MIT
- */
-class Tar extends Archive
-{
-
-    protected $file = '';
-    protected $comptype = Archive::COMPRESS_AUTO;
-    protected $complevel = 9;
-    protected $fh;
-    protected $memory = '';
-    protected $closed = true;
-    protected $writeaccess = false;
-
-    /**
-     * Sets the compression to use
-     *
-     * @param int $level Compression level (0 to 9)
-     * @param int $type  Type of compression to use (use COMPRESS_* constants)
-     * @return mixed
-     */
-    public function setCompression($level = 9, $type = Archive::COMPRESS_AUTO)
-    {
-        $this->compressioncheck($type);
-        $this->comptype  = $type;
-        $this->complevel = $level;
-        if($level == 0) $this->comptype = Archive::COMPRESS_NONE;
-        if($type == Archive::COMPRESS_NONE) $this->complevel = 0;
-    }
-
-    /**
-     * Open an existing TAR file for reading
-     *
-     * @param string $file
-     * @throws ArchiveIOException
-     */
-    public function open($file)
-    {
-        $this->file = $file;
-
-        // update compression to mach file
-        if ($this->comptype == Tar::COMPRESS_AUTO) {
-            $this->setCompression($this->complevel, $this->filetype($file));
-        }
-
-        // open file handles
-        if ($this->comptype === Archive::COMPRESS_GZIP) {
-            $this->fh = @gzopen($this->file, 'rb');
-        } elseif ($this->comptype === Archive::COMPRESS_BZIP) {
-            $this->fh = @bzopen($this->file, 'r');
-        } else {
-            $this->fh = @fopen($this->file, 'rb');
-        }
-
-        if (!$this->fh) {
-            throw new ArchiveIOException('Could not open file for reading: '.$this->file);
-        }
-        $this->closed = false;
-    }
-
-    /**
-     * Read the contents of a TAR archive
-     *
-     * This function lists the files stored in the archive
-     *
-     * The archive is closed afer reading the contents, because rewinding is not possible in bzip2 streams.
-     * Reopen the file with open() again if you want to do additional operations
-     *
-     * @throws ArchiveIOException
-     * @returns FileInfo[]
-     */
-    public function contents()
-    {
-        if ($this->closed || !$this->file) {
-            throw new ArchiveIOException('Can not read from a closed archive');
-        }
-
-        $result = array();
-        while ($read = $this->readbytes(512)) {
-            $header = $this->parseHeader($read);
-            if (!is_array($header)) {
-                continue;
-            }
-
-            $this->skipbytes(ceil($header['size'] / 512) * 512);
-            $result[] = $this->header2fileinfo($header);
-        }
-
-        $this->close();
-        return $result;
-    }
-
-    /**
-     * Extract an existing TAR archive
-     *
-     * The $strip parameter allows you to strip a certain number of path components from the filenames
-     * found in the tar file, similar to the --strip-components feature of GNU tar. This is triggered when
-     * an integer is passed as $strip.
-     * Alternatively a fixed string prefix may be passed in $strip. If the filename matches this prefix,
-     * the prefix will be stripped. It is recommended to give prefixes with a trailing slash.
-     *
-     * By default this will extract all files found in the archive. You can restrict the output using the $include
-     * and $exclude parameter. Both expect a full regular expression (including delimiters and modifiers). If
-     * $include is set only files that match this expression will be extracted. Files that match the $exclude
-     * expression will never be extracted. Both parameters can be used in combination. Expressions are matched against
-     * stripped filenames as described above.
-     *
-     * The archive is closed afer reading the contents, because rewinding is not possible in bzip2 streams.
-     * Reopen the file with open() again if you want to do additional operations
-     *
-     * @param string     $outdir  the target directory for extracting
-     * @param int|string $strip   either the number of path components or a fixed prefix to strip
-     * @param string     $exclude a regular expression of files to exclude
-     * @param string     $include a regular expression of files to include
-     * @throws ArchiveIOException
-     * @return FileInfo[]
-     */
-    public function extract($outdir, $strip = '', $exclude = '', $include = '')
-    {
-        if ($this->closed || !$this->file) {
-            throw new ArchiveIOException('Can not read from a closed archive');
-        }
-
-        $outdir = rtrim($outdir, '/');
-        @mkdir($outdir, 0777, true);
-        if (!is_dir($outdir)) {
-            throw new ArchiveIOException("Could not create directory '$outdir'");
-        }
-
-        $extracted = array();
-        while ($dat = $this->readbytes(512)) {
-            // read the file header
-            $header = $this->parseHeader($dat);
-            if (!is_array($header)) {
-                continue;
-            }
-            $fileinfo = $this->header2fileinfo($header);
-
-            // apply strip rules
-            $fileinfo->strip($strip);
-
-            // skip unwanted files
-            if (!strlen($fileinfo->getPath()) || !$fileinfo->match($include, $exclude)) {
-                $this->skipbytes(ceil($header['size'] / 512) * 512);
-                continue;
-            }
-
-            // create output directory
-            $output    = $outdir.'/'.$fileinfo->getPath();
-            $directory = ($fileinfo->getIsdir()) ? $output : dirname($output);
-            @mkdir($directory, 0777, true);
-
-            // extract data
-            if (!$fileinfo->getIsdir()) {
-                $fp = @fopen($output, "wb");
-                if (!$fp) {
-                    throw new ArchiveIOException('Could not open file for writing: '.$output);
-                }
-
-                $size = floor($header['size'] / 512);
-                for ($i = 0; $i < $size; $i++) {
-                    fwrite($fp, $this->readbytes(512), 512);
-                }
-                if (($header['size'] % 512) != 0) {
-                    fwrite($fp, $this->readbytes(512), $header['size'] % 512);
-                }
-
-                fclose($fp);
-                touch($output, $fileinfo->getMtime());
-                chmod($output, $fileinfo->getMode());
-            } else {
-                $this->skipbytes(ceil($header['size'] / 512) * 512); // the size is usually 0 for directories
-            }
-
-            $extracted[] = $fileinfo;
-        }
-
-        $this->close();
-        return $extracted;
-    }
-
-    /**
-     * Create a new TAR file
-     *
-     * If $file is empty, the tar file will be created in memory
-     *
-     * @param string $file
-     * @throws ArchiveIOException
-     */
-    public function create($file = '')
-    {
-        $this->file   = $file;
-        $this->memory = '';
-        $this->fh     = 0;
-
-        if ($this->file) {
-            // determine compression
-            if ($this->comptype == Archive::COMPRESS_AUTO) {
-                $this->setCompression($this->complevel, $this->filetype($file));
-            }
-
-            if ($this->comptype === Archive::COMPRESS_GZIP) {
-                $this->fh = @gzopen($this->file, 'wb'.$this->complevel);
-            } elseif ($this->comptype === Archive::COMPRESS_BZIP) {
-                $this->fh = @bzopen($this->file, 'w');
-            } else {
-                $this->fh = @fopen($this->file, 'wb');
-            }
-
-            if (!$this->fh) {
-                throw new ArchiveIOException('Could not open file for writing: '.$this->file);
-            }
-        }
-        $this->writeaccess = true;
-        $this->closed      = false;
-    }
-
-    /**
-     * 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|FileInfo $fileinfo either the name to us in archive (string) or a FileInfo oject with all meta data, empty to take from original
-     * @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 = '')
-    {
-        if (is_string($fileinfo)) {
-            $fileinfo = FileInfo::fromPath($file, $fileinfo);
-        }
-
-        if ($this->closed) {
-            throw new ArchiveIOException('Archive has been closed, files can no longer be added');
-        }
-
-        $fp = @fopen($file, 'rb');
-        if (!$fp) {
-            throw new ArchiveIOException('Could not open file for reading: '.$file);
-        }
-
-        // create file header
-        $this->writeFileHeader($fileinfo);
-
-        // write data
-        $read = 0;
-        while (!feof($fp)) {
-            $data = fread($fp, 512);
-            $read += strlen($data);
-            if ($data === false) {
-                break;
-            }
-            if ($data === '') {
-                break;
-            }
-            $packed = pack("a512", $data);
-            $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());
-        }
-    }
-
-    /**
-     * Add a file to the current TAR 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
-     * @throws ArchiveIOException
-     */
-    public function addData($fileinfo, $data)
-    {
-        if (is_string($fileinfo)) {
-            $fileinfo = new FileInfo($fileinfo);
-        }
-
-        if ($this->closed) {
-            throw new ArchiveIOException('Archive has been closed, files can no longer be added');
-        }
-
-        $len = strlen($data);
-        $fileinfo->setSize($len);
-        $this->writeFileHeader($fileinfo);
-
-        for ($s = 0; $s < $len; $s += 512) {
-            $this->writebytes(pack("a512", substr($data, $s, 512)));
-        }
-    }
-
-    /**
-     * Add the closing footer to the archive if in write mode, close all file handles
-     *
-     * After a call to this function no more data can be added to the archive, for
-     * read access no reading is allowed anymore
-     *
-     * "Physically, an archive consists of a series of file entries terminated by an end-of-archive entry, which
-     * consists of two 512 blocks of zero bytes"
-     *
-     * @link http://www.gnu.org/software/tar/manual/html_chapter/tar_8.html#SEC134
-     */
-    public function close()
-    {
-        if ($this->closed) {
-            return;
-        } // we did this already
-
-        // write footer
-        if ($this->writeaccess) {
-            $this->writebytes(pack("a512", ""));
-            $this->writebytes(pack("a512", ""));
-        }
-
-        // close file handles
-        if ($this->file) {
-            if ($this->comptype === Archive::COMPRESS_GZIP) {
-                gzclose($this->fh);
-            } elseif ($this->comptype === Archive::COMPRESS_BZIP) {
-                bzclose($this->fh);
-            } else {
-                fclose($this->fh);
-            }
-
-            $this->file = '';
-            $this->fh   = 0;
-        }
-
-        $this->writeaccess = false;
-        $this->closed      = true;
-    }
-
-    /**
-     * Returns the created in-memory archive data
-     *
-     * This implicitly calls close() on the Archive
-     */
-    public function getArchive()
-    {
-        $this->close();
-
-        if ($this->comptype === Archive::COMPRESS_AUTO) {
-            $this->comptype = Archive::COMPRESS_NONE;
-        }
-
-        if ($this->comptype === Archive::COMPRESS_GZIP) {
-            return gzencode($this->memory, $this->complevel);
-        }
-        if ($this->comptype === Archive::COMPRESS_BZIP) {
-            return bzcompress($this->memory);
-        }
-        return $this->memory;
-    }
-
-    /**
-     * Save the created in-memory archive data
-     *
-     * Note: It more memory effective to specify the filename in the create() function and
-     * let the library work on the new file directly.
-     *
-     * @param string $file
-     * @throws ArchiveIOException
-     */
-    public function save($file)
-    {
-        if ($this->comptype === Archive::COMPRESS_AUTO) {
-            $this->setCompression($this->complevel, $this->filetype($file));
-        }
-
-        if (!@file_put_contents($file, $this->getArchive())) {
-            throw new ArchiveIOException('Could not write to file: '.$file);
-        }
-    }
-
-    /**
-     * Read from the open file pointer
-     *
-     * @param int $length bytes to read
-     * @return string
-     */
-    protected function readbytes($length)
-    {
-        if ($this->comptype === Archive::COMPRESS_GZIP) {
-            return @gzread($this->fh, $length);
-        } elseif ($this->comptype === Archive::COMPRESS_BZIP) {
-            return @bzread($this->fh, $length);
-        } else {
-            return @fread($this->fh, $length);
-        }
-    }
-
-    /**
-     * Write to the open filepointer or memory
-     *
-     * @param string $data
-     * @throws ArchiveIOException
-     * @return int number of bytes written
-     */
-    protected function writebytes($data)
-    {
-        if (!$this->file) {
-            $this->memory .= $data;
-            $written = strlen($data);
-        } elseif ($this->comptype === Archive::COMPRESS_GZIP) {
-            $written = @gzwrite($this->fh, $data);
-        } elseif ($this->comptype === Archive::COMPRESS_BZIP) {
-            $written = @bzwrite($this->fh, $data);
-        } else {
-            $written = @fwrite($this->fh, $data);
-        }
-        if ($written === false) {
-            throw new ArchiveIOException('Failed to write to archive stream');
-        }
-        return $written;
-    }
-
-    /**
-     * Skip forward in the open file pointer
-     *
-     * This is basically a wrapper around seek() (and a workaround for bzip2)
-     *
-     * @param int $bytes seek to this position
-     */
-    protected function skipbytes($bytes)
-    {
-        if ($this->comptype === Archive::COMPRESS_GZIP) {
-            @gzseek($this->fh, $bytes, SEEK_CUR);
-        } elseif ($this->comptype === Archive::COMPRESS_BZIP) {
-            // there is no seek in bzip2, we simply read on
-            // bzread allows to read a max of 8kb at once
-            while($bytes) {
-                $toread = min(8192, $bytes);
-                @bzread($this->fh, $toread);
-                $bytes -= $toread;
-            }
-        } else {
-            @fseek($this->fh, $bytes, SEEK_CUR);
-        }
-    }
-
-    /**
-     * Write the given file metat data as header
-     *
-     * @param FileInfo $fileinfo
-     */
-    protected function writeFileHeader(FileInfo $fileinfo)
-    {
-        $this->writeRawFileHeader(
-            $fileinfo->getPath(),
-            $fileinfo->getUid(),
-            $fileinfo->getGid(),
-            $fileinfo->getMode(),
-            $fileinfo->getSize(),
-            $fileinfo->getMtime(),
-            $fileinfo->getIsdir() ? '5' : '0'
-        );
-    }
-
-    /**
-     * Write a file header to the stream
-     *
-     * @param string $name
-     * @param int    $uid
-     * @param int    $gid
-     * @param int    $perm
-     * @param int    $size
-     * @param int    $mtime
-     * @param string $typeflag Set to '5' for directories
-     */
-    protected function writeRawFileHeader($name, $uid, $gid, $perm, $size, $mtime, $typeflag = '')
-    {
-        // handle filename length restrictions
-        $prefix  = '';
-        $namelen = strlen($name);
-        if ($namelen > 100) {
-            $file = basename($name);
-            $dir  = dirname($name);
-            if (strlen($file) > 100 || strlen($dir) > 155) {
-                // we're still too large, let's use GNU longlink
-                $this->writeRawFileHeader('././@LongLink', 0, 0, 0, $namelen, 0, 'L');
-                for ($s = 0; $s < $namelen; $s += 512) {
-                    $this->writebytes(pack("a512", substr($name, $s, 512)));
-                }
-                $name = substr($name, 0, 100); // cut off name
-            } else {
-                // we're fine when splitting, use POSIX ustar
-                $prefix = $dir;
-                $name   = $file;
-            }
-        }
-
-        // values are needed in octal
-        $uid   = sprintf("%6s ", decoct($uid));
-        $gid   = sprintf("%6s ", decoct($gid));
-        $perm  = sprintf("%6s ", decoct($perm));
-        $size  = sprintf("%11s ", decoct($size));
-        $mtime = sprintf("%11s", decoct($mtime));
-
-        $data_first = pack("a100a8a8a8a12A12", $name, $perm, $uid, $gid, $size, $mtime);
-        $data_last  = pack("a1a100a6a2a32a32a8a8a155a12", $typeflag, '', 'ustar', '', '', '', '', '', $prefix, "");
-
-        for ($i = 0, $chks = 0; $i < 148; $i++) {
-            $chks += ord($data_first[$i]);
-        }
-
-        for ($i = 156, $chks += 256, $j = 0; $i < 512; $i++, $j++) {
-            $chks += ord($data_last[$j]);
-        }
-
-        $this->writebytes($data_first);
-
-        $chks = pack("a8", sprintf("%6s ", decoct($chks)));
-        $this->writebytes($chks.$data_last);
-    }
-
-    /**
-     * Decode the given tar file header
-     *
-     * @param string $block a 512 byte block containing the header data
-     * @return array|false returns false when this was a null block
-     * @throws ArchiveCorruptedException
-     */
-    protected function parseHeader($block)
-    {
-        if (!$block || strlen($block) != 512) {
-            throw new ArchiveCorruptedException('Unexpected length of header');
-        }
-
-        // null byte blocks are ignored
-        if(trim($block) === '') return false;
-
-        for ($i = 0, $chks = 0; $i < 148; $i++) {
-            $chks += ord($block[$i]);
-        }
-
-        for ($i = 156, $chks += 256; $i < 512; $i++) {
-            $chks += ord($block[$i]);
-        }
-
-        $header = @unpack(
-            "a100filename/a8perm/a8uid/a8gid/a12size/a12mtime/a8checksum/a1typeflag/a100link/a6magic/a2version/a32uname/a32gname/a8devmajor/a8devminor/a155prefix",
-            $block
-        );
-        if (!$header) {
-            throw new ArchiveCorruptedException('Failed to parse header');
-        }
-
-        $return['checksum'] = OctDec(trim($header['checksum']));
-        if ($return['checksum'] != $chks) {
-            throw new ArchiveCorruptedException('Header does not match it\'s checksum');
-        }
-
-        $return['filename'] = trim($header['filename']);
-        $return['perm']     = OctDec(trim($header['perm']));
-        $return['uid']      = OctDec(trim($header['uid']));
-        $return['gid']      = OctDec(trim($header['gid']));
-        $return['size']     = OctDec(trim($header['size']));
-        $return['mtime']    = OctDec(trim($header['mtime']));
-        $return['typeflag'] = $header['typeflag'];
-        $return['link']     = trim($header['link']);
-        $return['uname']    = trim($header['uname']);
-        $return['gname']    = trim($header['gname']);
-
-        // Handle ustar Posix compliant path prefixes
-        if (trim($header['prefix'])) {
-            $return['filename'] = trim($header['prefix']).'/'.$return['filename'];
-        }
-
-        // Handle Long-Link entries from GNU Tar
-        if ($return['typeflag'] == 'L') {
-            // following data block(s) is the filename
-            $filename = trim($this->readbytes(ceil($return['size'] / 512) * 512));
-            // next block is the real header
-            $block  = $this->readbytes(512);
-            $return = $this->parseHeader($block);
-            // overwrite the filename
-            $return['filename'] = $filename;
-        }
-
-        return $return;
-    }
-
-    /**
-     * Creates a FileInfo object from the given parsed header
-     *
-     * @param $header
-     * @return FileInfo
-     */
-    protected function header2fileinfo($header)
-    {
-        $fileinfo = new FileInfo();
-        $fileinfo->setPath($header['filename']);
-        $fileinfo->setMode($header['perm']);
-        $fileinfo->setUid($header['uid']);
-        $fileinfo->setGid($header['gid']);
-        $fileinfo->setSize($header['size']);
-        $fileinfo->setMtime($header['mtime']);
-        $fileinfo->setOwner($header['uname']);
-        $fileinfo->setGroup($header['gname']);
-        $fileinfo->setIsdir((bool) $header['typeflag']);
-
-        return $fileinfo;
-    }
-
-    /**
-     * Checks if the given compression type is available and throws an exception if not
-     *
-     * @param $comptype
-     * @throws ArchiveIllegalCompressionException
-     */
-    protected function compressioncheck($comptype)
-    {
-        if ($comptype === Archive::COMPRESS_GZIP && !function_exists('gzopen')) {
-            throw new ArchiveIllegalCompressionException('No gzip support available');
-        }
-
-        if ($comptype === Archive::COMPRESS_BZIP && !function_exists('bzopen')) {
-            throw new ArchiveIllegalCompressionException('No bzip2 support available');
-        }
-    }
-
-    /**
-     * Guesses the wanted compression from the given file
-     *
-     * Uses magic bytes for existing files, the file extension otherwise
-     *
-     * You don't need to call this yourself. It's used when you pass Archive::COMPRESS_AUTO somewhere
-     *
-     * @param string $file
-     * @return int
-     */
-    public function filetype($file)
-    {
-        // for existing files, try to read the magic bytes
-        if(file_exists($file) && is_readable($file) && filesize($file) > 5) {
-            $fh = @fopen($file, 'rb');
-            if(!$fh) return false;
-            $magic = fread($fh, 5);
-            fclose($fh);
-
-            if(strpos($magic, "\x42\x5a") === 0) return Archive::COMPRESS_BZIP;
-            if(strpos($magic, "\x1f\x8b") === 0) return Archive::COMPRESS_GZIP;
-        }
-
-        // otherwise rely on file name
-        $file = strtolower($file);
-        if (substr($file, -3) == '.gz' || substr($file, -4) == '.tgz') {
-            return Archive::COMPRESS_GZIP;
-        } elseif (substr($file, -4) == '.bz2' || substr($file, -4) == '.tbz') {
-            return Archive::COMPRESS_BZIP;
-        }
-
-        return Archive::COMPRESS_NONE;
-    }
-}
diff --git a/wiki/vendor/splitbrain/php-archive/src/Zip.php b/wiki/vendor/splitbrain/php-archive/src/Zip.php
deleted file mode 100644
index e84516b..0000000
--- a/wiki/vendor/splitbrain/php-archive/src/Zip.php
+++ /dev/null
@@ -1,879 +0,0 @@
-<?php
-
-namespace splitbrain\PHPArchive;
-
-/**
- * Class Zip
- *
- * Creates or extracts Zip archives
- *
- * for specs see http://www.pkware.com/appnote
- *
- * @author  Andreas Gohr <andi@splitbrain.org>
- * @package splitbrain\PHPArchive
- * @license MIT
- */
-class Zip extends Archive
-{
-
-    protected $file = '';
-    protected $fh;
-    protected $memory = '';
-    protected $closed = true;
-    protected $writeaccess = false;
-    protected $ctrl_dir;
-    protected $complevel = 9;
-
-    /**
-     * Set the compression level.
-     *
-     * Compression Type is ignored for ZIP
-     *
-     * You can call this function before adding each file to set differen compression levels
-     * for each file.
-     *
-     * @param int $level Compression level (0 to 9)
-     * @param int $type  Type of compression to use ignored for ZIP
-     * @return mixed
-     */
-    public function setCompression($level = 9, $type = Archive::COMPRESS_AUTO)
-    {
-        $this->complevel = $level;
-    }
-
-    /**
-     * Open an existing ZIP file for reading
-     *
-     * @param string $file
-     * @throws ArchiveIOException
-     */
-    public function open($file)
-    {
-        $this->file = $file;
-        $this->fh   = @fopen($this->file, 'rb');
-        if (!$this->fh) {
-            throw new ArchiveIOException('Could not open file for reading: '.$this->file);
-        }
-        $this->closed = false;
-    }
-
-    /**
-     * Read the contents of a ZIP archive
-     *
-     * This function lists the files stored in the archive, and returns an indexed array of FileInfo objects
-     *
-     * The archive is closed afer reading the contents, for API compatibility with TAR files
-     * Reopen the file with open() again if you want to do additional operations
-     *
-     * @throws ArchiveIOException
-     * @return FileInfo[]
-     */
-    public function contents()
-    {
-        if ($this->closed || !$this->file) {
-            throw new ArchiveIOException('Can not read from a closed archive');
-        }
-
-        $result = array();
-
-        $centd = $this->readCentralDir();
-
-        @rewind($this->fh);
-        @fseek($this->fh, $centd['offset']);
-
-        for ($i = 0; $i < $centd['entries']; $i++) {
-            $result[] = $this->header2fileinfo($this->readCentralFileHeader());
-        }
-
-        $this->close();
-        return $result;
-    }
-
-    /**
-     * Extract an existing ZIP archive
-     *
-     * The $strip parameter allows you to strip a certain number of path components from the filenames
-     * found in the tar file, similar to the --strip-components feature of GNU tar. This is triggered when
-     * an integer is passed as $strip.
-     * Alternatively a fixed string prefix may be passed in $strip. If the filename matches this prefix,
-     * the prefix will be stripped. It is recommended to give prefixes with a trailing slash.
-     *
-     * By default this will extract all files found in the archive. You can restrict the output using the $include
-     * and $exclude parameter. Both expect a full regular expression (including delimiters and modifiers). If
-     * $include is set only files that match this expression will be extracted. Files that match the $exclude
-     * expression will never be extracted. Both parameters can be used in combination. Expressions are matched against
-     * stripped filenames as described above.
-     *
-     * @param string     $outdir  the target directory for extracting
-     * @param int|string $strip   either the number of path components or a fixed prefix to strip
-     * @param string     $exclude a regular expression of files to exclude
-     * @param string     $include a regular expression of files to include
-     * @throws ArchiveIOException
-     * @return FileInfo[]
-     */
-    public function extract($outdir, $strip = '', $exclude = '', $include = '')
-    {
-        if ($this->closed || !$this->file) {
-            throw new ArchiveIOException('Can not read from a closed archive');
-        }
-
-        $outdir = rtrim($outdir, '/');
-        @mkdir($outdir, 0777, true);
-
-        $extracted = array();
-
-        $cdir      = $this->readCentralDir();
-        $pos_entry = $cdir['offset']; // begin of the central file directory
-
-        for ($i = 0; $i < $cdir['entries']; $i++) {
-            // read file header
-            @fseek($this->fh, $pos_entry);
-            $header          = $this->readCentralFileHeader();
-            $header['index'] = $i;
-            $pos_entry       = ftell($this->fh); // position of the next file in central file directory
-            fseek($this->fh, $header['offset']); // seek to beginning of file header
-            $header   = $this->readFileHeader($header);
-            $fileinfo = $this->header2fileinfo($header);
-
-            // apply strip rules
-            $fileinfo->strip($strip);
-
-            // skip unwanted files
-            if (!strlen($fileinfo->getPath()) || !$fileinfo->match($include, $exclude)) {
-                continue;
-            }
-
-            $extracted[] = $fileinfo;
-
-            // create output directory
-            $output    = $outdir.'/'.$fileinfo->getPath();
-            $directory = ($header['folder']) ? $output : dirname($output);
-            @mkdir($directory, 0777, true);
-
-            // nothing more to do for directories
-            if ($fileinfo->getIsdir()) {
-                continue;
-            }
-
-            // compressed files are written to temporary .gz file first
-            if ($header['compression'] == 0) {
-                $extractto = $output;
-            } else {
-                $extractto = $output.'.gz';
-            }
-
-            // open file for writing
-            $fp = @fopen($extractto, "wb");
-            if (!$fp) {
-                throw new ArchiveIOException('Could not open file for writing: '.$extractto);
-            }
-
-            // prepend compression header
-            if ($header['compression'] != 0) {
-                $binary_data = pack(
-                    'va1a1Va1a1',
-                    0x8b1f,
-                    chr($header['compression']),
-                    chr(0x00),
-                    time(),
-                    chr(0x00),
-                    chr(3)
-                );
-                fwrite($fp, $binary_data, 10);
-            }
-
-            // read the file and store it on disk
-            $size = $header['compressed_size'];
-            while ($size != 0) {
-                $read_size   = ($size < 2048 ? $size : 2048);
-                $buffer      = fread($this->fh, $read_size);
-                $binary_data = pack('a'.$read_size, $buffer);
-                fwrite($fp, $binary_data, $read_size);
-                $size -= $read_size;
-            }
-
-            // finalize compressed file
-            if ($header['compression'] != 0) {
-                $binary_data = pack('VV', $header['crc'], $header['size']);
-                fwrite($fp, $binary_data, 8);
-            }
-
-            // close file
-            fclose($fp);
-
-            // unpack compressed file
-            if ($header['compression'] != 0) {
-                $gzp = @gzopen($extractto, 'rb');
-                if (!$gzp) {
-                    @unlink($extractto);
-                    throw new ArchiveIOException('Failed file extracting. gzip support missing?');
-                }
-                $fp = @fopen($output, 'wb');
-                if (!$fp) {
-                    throw new ArchiveIOException('Could not open file for writing: '.$extractto);
-                }
-
-                $size = $header['size'];
-                while ($size != 0) {
-                    $read_size   = ($size < 2048 ? $size : 2048);
-                    $buffer      = gzread($gzp, $read_size);
-                    $binary_data = pack('a'.$read_size, $buffer);
-                    @fwrite($fp, $binary_data, $read_size);
-                    $size -= $read_size;
-                }
-                fclose($fp);
-                gzclose($gzp);
-                unlink($extractto); // remove temporary gz file
-            }
-
-            touch($output, $fileinfo->getMtime());
-            //FIXME what about permissions?
-        }
-
-        $this->close();
-        return $extracted;
-    }
-
-    /**
-     * Create a new ZIP file
-     *
-     * If $file is empty, the zip file will be created in memory
-     *
-     * @param string $file
-     * @throws ArchiveIOException
-     */
-    public function create($file = '')
-    {
-        $this->file   = $file;
-        $this->memory = '';
-        $this->fh     = 0;
-
-        if ($this->file) {
-            $this->fh = @fopen($this->file, 'wb');
-
-            if (!$this->fh) {
-                throw new ArchiveIOException('Could not open file for writing: '.$this->file);
-            }
-        }
-        $this->writeaccess = true;
-        $this->closed      = false;
-        $this->ctrl_dir    = array();
-    }
-
-    /**
-     * Add a file to the current ZIP 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
-     * @throws ArchiveIOException
-     */
-
-    /**
-     * 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 use in archive (string) or a FileInfo oject with all meta data, empty to take from original
-     * @throws ArchiveIOException
-     */
-    public function addFile($file, $fileinfo = '')
-    {
-        if (is_string($fileinfo)) {
-            $fileinfo = FileInfo::fromPath($file, $fileinfo);
-        }
-
-        if ($this->closed) {
-            throw new ArchiveIOException('Archive has been closed, files can no longer be added');
-        }
-
-        $data = @file_get_contents($file);
-        if ($data === false) {
-            throw new ArchiveIOException('Could not open file for reading: '.$file);
-        }
-
-        // FIXME could we stream writing compressed data? gzwrite on a fopen handle?
-        $this->addData($fileinfo, $data);
-    }
-
-    /**
-     * 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
-     * @throws ArchiveIOException
-     */
-    public function addData($fileinfo, $data)
-    {
-        if (is_string($fileinfo)) {
-            $fileinfo = new FileInfo($fileinfo);
-        }
-
-        if ($this->closed) {
-            throw new ArchiveIOException('Archive has been closed, files can no longer be added');
-        }
-
-        // prepare info and compress data
-        $size     = strlen($data);
-        $crc      = crc32($data);
-        if ($this->complevel) {
-            $data = gzcompress($data, $this->complevel);
-            $data = substr($data, 2, -4); // strip compression headers
-        }
-        $csize  = strlen($data);
-        $offset = $this->dataOffset();
-        $name   = $fileinfo->getPath();
-        $time   = $fileinfo->getMtime();
-
-        // write local file header
-        $this->writebytes($this->makeLocalFileHeader(
-            $time,
-            $crc,
-            $size,
-            $csize,
-            $name,
-            (bool) $this->complevel
-        ));
-
-        // we store no encryption header
-
-        // write data
-        $this->writebytes($data);
-
-        // we store no data descriptor
-
-        // add info to central file directory
-        $this->ctrl_dir[] = $this->makeCentralFileRecord(
-            $offset,
-            $time,
-            $crc,
-            $size,
-            $csize,
-            $name,
-            (bool) $this->complevel
-        );
-    }
-
-    /**
-     * Add the closing footer to the archive if in write mode, close all file handles
-     *
-     * After a call to this function no more data can be added to the archive, for
-     * read access no reading is allowed anymore
-     */
-    public function close()
-    {
-        if ($this->closed) {
-            return;
-        } // we did this already
-
-        if ($this->writeaccess) {
-            // write central directory
-            $offset = $this->dataOffset();
-            $ctrldir = join('', $this->ctrl_dir);
-            $this->writebytes($ctrldir);
-
-            // write end of central directory record
-            $this->writebytes("\x50\x4b\x05\x06"); // end of central dir signature
-            $this->writebytes(pack('v', 0)); // number of this disk
-            $this->writebytes(pack('v', 0)); // number of the disk with the start of the central directory
-            $this->writebytes(pack('v',
-                count($this->ctrl_dir))); // total number of entries in the central directory on this disk
-            $this->writebytes(pack('v', count($this->ctrl_dir))); // total number of entries in the central directory
-            $this->writebytes(pack('V', strlen($ctrldir))); // size of the central directory
-            $this->writebytes(pack('V',
-                $offset)); // offset of start of central directory with respect to the starting disk number
-            $this->writebytes(pack('v', 0)); // .ZIP file comment length
-
-            $this->ctrl_dir = array();
-        }
-
-        // close file handles
-        if ($this->file) {
-            fclose($this->fh);
-            $this->file = '';
-            $this->fh   = 0;
-        }
-
-        $this->writeaccess = false;
-        $this->closed      = true;
-    }
-
-    /**
-     * Returns the created in-memory archive data
-     *
-     * This implicitly calls close() on the Archive
-     */
-    public function getArchive()
-    {
-        $this->close();
-
-        return $this->memory;
-    }
-
-    /**
-     * Save the created in-memory archive data
-     *
-     * Note: It's more memory effective to specify the filename in the create() function and
-     * let the library work on the new file directly.
-     *
-     * @param     $file
-     * @throws ArchiveIOException
-     */
-    public function save($file)
-    {
-        if (!@file_put_contents($file, $this->getArchive())) {
-            throw new ArchiveIOException('Could not write to file: '.$file);
-        }
-    }
-
-    /**
-     * Read the central directory
-     *
-     * This key-value list contains general information about the ZIP file
-     *
-     * @return array
-     */
-    protected function readCentralDir()
-    {
-        $size = filesize($this->file);
-        if ($size < 277) {
-            $maximum_size = $size;
-        } else {
-            $maximum_size = 277;
-        }
-
-        @fseek($this->fh, $size - $maximum_size);
-        $pos   = ftell($this->fh);
-        $bytes = 0x00000000;
-
-        while ($pos < $size) {
-            $byte  = @fread($this->fh, 1);
-            $bytes = (($bytes << 8) & 0xFFFFFFFF) | ord($byte);
-            if ($bytes == 0x504b0506) {
-                break;
-            }
-            $pos++;
-        }
-
-        $data = unpack(
-            'vdisk/vdisk_start/vdisk_entries/ventries/Vsize/Voffset/vcomment_size',
-            fread($this->fh, 18)
-        );
-
-        if ($data['comment_size'] != 0) {
-            $centd['comment'] = fread($this->fh, $data['comment_size']);
-        } else {
-            $centd['comment'] = '';
-        }
-        $centd['entries']      = $data['entries'];
-        $centd['disk_entries'] = $data['disk_entries'];
-        $centd['offset']       = $data['offset'];
-        $centd['disk_start']   = $data['disk_start'];
-        $centd['size']         = $data['size'];
-        $centd['disk']         = $data['disk'];
-        return $centd;
-    }
-
-    /**
-     * Read the next central file header
-     *
-     * Assumes the current file pointer is pointing at the right position
-     *
-     * @return array
-     */
-    protected function readCentralFileHeader()
-    {
-        $binary_data = fread($this->fh, 46);
-        $header      = unpack(
-            'vchkid/vid/vversion/vversion_extracted/vflag/vcompression/vmtime/vmdate/Vcrc/Vcompressed_size/Vsize/vfilename_len/vextra_len/vcomment_len/vdisk/vinternal/Vexternal/Voffset',
-            $binary_data
-        );
-
-        if ($header['filename_len'] != 0) {
-            $header['filename'] = fread($this->fh, $header['filename_len']);
-        } else {
-            $header['filename'] = '';
-        }
-
-        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) {
-            $header['comment'] = fread($this->fh, $header['comment_len']);
-        } else {
-            $header['comment'] = '';
-        }
-
-        $header['mtime']           = $this->makeUnixTime($header['mdate'], $header['mtime']);
-        $header['stored_filename'] = $header['filename'];
-        $header['status']          = 'ok';
-        if (substr($header['filename'], -1) == '/') {
-            $header['external'] = 0x41FF0010;
-        }
-        $header['folder'] = ($header['external'] == 0x41FF0010 || $header['external'] == 16) ? 1 : 0;
-
-        return $header;
-    }
-
-    /**
-     * Reads the local file header
-     *
-     * This header precedes each individual file inside the zip file. Assumes the current file pointer is pointing at
-     * the right position already. Enhances the given central header with the data found at the local header.
-     *
-     * @param array $header the central file header read previously (see above)
-     * @return array
-     */
-    protected function readFileHeader($header)
-    {
-        $binary_data = fread($this->fh, 30);
-        $data        = unpack(
-            'vchk/vid/vversion/vflag/vcompression/vmtime/vmdate/Vcrc/Vcompressed_size/Vsize/vfilename_len/vextra_len',
-            $binary_data
-        );
-
-        $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'];
-        foreach (array(
-                     'size',
-                     'compressed_size',
-                     'crc'
-                 ) as $hd) { // On ODT files, these headers are 0. Keep the previous value.
-            if ($data[$hd] != 0) {
-                $header[$hd] = $data[$hd];
-            }
-        }
-        $header['flag']  = $data['flag'];
-        $header['mtime'] = $this->makeUnixTime($data['mdate'], $data['mtime']);
-
-        $header['stored_filename'] = $header['filename'];
-        $header['status']          = "ok";
-        $header['folder']          = ($header['external'] == 0x41FF0010 || $header['external'] == 16) ? 1 : 0;
-        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
-     *
-     * @param $header
-     * @return FileInfo
-     */
-    protected function header2fileinfo($header)
-    {
-        $fileinfo = new FileInfo();
-        $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.
-     *
-     * On some systems iconv is available, but the codepage is not. We also check for that.
-     *
-     * @param $string
-     * @return string
-     */
-    protected function cpToUtf8($string)
-    {
-        if (function_exists('iconv') && @iconv_strlen('', 'CP437') !== false) {
-            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
-     *
-     * @param string $data
-     * @throws ArchiveIOException
-     * @return int number of bytes written
-     */
-    protected function writebytes($data)
-    {
-        if (!$this->file) {
-            $this->memory .= $data;
-            $written = strlen($data);
-        } else {
-            $written = @fwrite($this->fh, $data);
-        }
-        if ($written === false) {
-            throw new ArchiveIOException('Failed to write to archive stream');
-        }
-        return $written;
-    }
-
-    /**
-     * Current data pointer position
-     *
-     * @fixme might need a -1
-     * @return int
-     */
-    protected function dataOffset()
-    {
-        if ($this->file) {
-            return ftell($this->fh);
-        } else {
-            return strlen($this->memory);
-        }
-    }
-
-    /**
-     * Create a DOS timestamp from a UNIX timestamp
-     *
-     * DOS timestamps start at 1980-01-01, earlier UNIX stamps will be set to this date
-     *
-     * @param $time
-     * @return int
-     */
-    protected function makeDosTime($time)
-    {
-        $timearray = getdate($time);
-        if ($timearray['year'] < 1980) {
-            $timearray['year']    = 1980;
-            $timearray['mon']     = 1;
-            $timearray['mday']    = 1;
-            $timearray['hours']   = 0;
-            $timearray['minutes'] = 0;
-            $timearray['seconds'] = 0;
-        }
-        return (($timearray['year'] - 1980) << 25) |
-        ($timearray['mon'] << 21) |
-        ($timearray['mday'] << 16) |
-        ($timearray['hours'] << 11) |
-        ($timearray['minutes'] << 5) |
-        ($timearray['seconds'] >> 1);
-    }
-
-    /**
-     * Create a UNIX timestamp from a DOS timestamp
-     *
-     * @param $mdate
-     * @param $mtime
-     * @return int
-     */
-    protected function makeUnixTime($mdate = null, $mtime = null)
-    {
-        if ($mdate && $mtime) {
-            $year = (($mdate & 0xFE00) >> 9) + 1980;
-            $month = ($mdate & 0x01E0) >> 5;
-            $day = $mdate & 0x001F;
-
-            $hour = ($mtime & 0xF800) >> 11;
-            $minute = ($mtime & 0x07E0) >> 5;
-            $seconde = ($mtime & 0x001F) << 1;
-
-            $mtime = mktime($hour, $minute, $seconde, $month, $day, $year);
-        } else {
-            $mtime = time();
-        }
-
-        return $mtime;
-    }
-
-    /**
-     * Returns a local file header for the given data
-     *
-     * @param int $offset location of the local header
-     * @param int $ts unix timestamp
-     * @param int $crc CRC32 checksum of the uncompressed data
-     * @param int $len length of the uncompressed data
-     * @param int $clen length of the compressed data
-     * @param string $name file name
-     * @param boolean|null $comp if compression is used, if null it's determined from $len != $clen
-     * @return string
-     */
-    protected function makeCentralFileRecord($offset, $ts, $crc, $len, $clen, $name, $comp = null)
-    {
-        if(is_null($comp)) $comp = $len != $clen;
-        $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
-        $header .= pack('v', 0); // general purpose flag - no flags set
-        $header .= pack('v', $comp); // compression method - deflate|none
-        $header .= pack(
-            'H*',
-            $dtime[6] . $dtime[7] .
-            $dtime[4] . $dtime[5] .
-            $dtime[2] . $dtime[3] .
-            $dtime[0] . $dtime[1]
-        ); //  last mod file time and date
-        $header .= pack('V', $crc); // crc-32
-        $header .= pack('V', $clen); // compressed size
-        $header .= pack('V', $len); // uncompressed size
-        $header .= pack('v', strlen($name)); // file name 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;
-    }
-
-    /**
-     * Returns a local file header for the given data
-     *
-     * @param int $ts unix timestamp
-     * @param int $crc CRC32 checksum of the uncompressed data
-     * @param int $len length of the uncompressed data
-     * @param int $clen length of the compressed data
-     * @param string $name file name
-     * @param boolean|null $comp if compression is used, if null it's determined from $len != $clen
-     * @return string
-     */
-    protected function makeLocalFileHeader($ts, $crc, $len, $clen, $name, $comp = null)
-    {
-        if(is_null($comp)) $comp = $len != $clen;
-        $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
-        $header .= pack('v', $comp); // compression method - deflate|none
-        $header .= pack(
-            'H*',
-            $dtime[6] . $dtime[7] .
-            $dtime[4] . $dtime[5] .
-            $dtime[2] . $dtime[3] .
-            $dtime[0] . $dtime[1]
-        ); //  last mod file time and date
-        $header .= pack('V', $crc); // crc-32
-        $header .= pack('V', $clen); // compressed size
-        $header .= pack('V', $len); // uncompressed size
-        $header .= pack('v', strlen($name)); // file name length
-        $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);
-    }
-}
diff --git a/wiki/vendor/splitbrain/php-cli/LICENSE b/wiki/vendor/splitbrain/php-cli/LICENSE
deleted file mode 100644
index 4a8abc3..0000000
--- a/wiki/vendor/splitbrain/php-cli/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2016 Andreas Gohr
-
-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.
diff --git a/wiki/vendor/splitbrain/php-cli/README.md b/wiki/vendor/splitbrain/php-cli/README.md
deleted file mode 100644
index 7cc52ed..0000000
--- a/wiki/vendor/splitbrain/php-cli/README.md
+++ /dev/null
@@ -1,158 +0,0 @@
-# PHP-CLI
-
-PHP-CLI is a simple library that helps with creating nice looking command line scripts.
-
-It takes care of
-
-- **option parsing**
-- **help page generation**
-- **automatic width adjustment**
-- **colored output**
-- **optional PSR3 compatibility**
-
-It is lightweight and has **no 3rd party dependencies**.
-
-[![Build Status](https://travis-ci.org/splitbrain/php-cli.svg)](https://travis-ci.org/splitbrain/php-cli)
-
-## Installation
-
-Use composer:
-
-```php composer.phar require splitbrain/php-cli```
-
-## Usage and Examples
-
-Minimal example:
-
-```php
-#!/usr/bin/php
-<?php
-require __DIR__ . '/../vendor/autoload.php';
-use splitbrain\phpcli\CLI;
-use splitbrain\phpcli\Options;
-
-class Minimal extends CLI
-{
-    // register options and arguments
-    protected function setup(Options $options)
-    {
-        $options->setHelp('A very minimal example that does nothing but print a version');
-        $options->registerOption('version', 'print version', 'v');
-    }
-
-    // implement your code
-    protected function main(Options $options)
-    {
-        if ($options->getOpt('version')) {
-            $this->info('1.0.0');
-        } else {
-            echo $options->help();
-        }
-    }
-}
-// execute it
-$cli = new Minimal();
-$cli->run();
-```
-
-![Screenshot](screenshot.png)
-
-
-The basic usage is simple:
-
-- create a class and ``extend splitbrain\phpcli\CLI``
-- implement the ```setup($options)``` method and register options, arguments, commands and set help texts
-    - ``$options->setHelp()`` adds a general description
-    - ``$options->registerOption()`` adds an option
-    - ``$options->registerArgument()`` adds an argument
-    - ``$options->registerCommand()`` adds a sub command
-- implement the ```main($options)``` method and do your business logic there
-    - ``$options->getOpts`` lets you access set options
-    - ``$options->getArgs()`` returns the remaining arguments after removing the options
-    - ``$options->getCmd()`` returns the sub command the user used
-- instantiate your class and call ```run()``` on it
-
-More examples can be found in the examples directory. Please refer to the [API docs](https://splitbrain.github.io/php-cli/)
-for further info.
-
-## Exceptions
-
-By default the CLI class registers an exception handler and will print the exception's message to the end user and
-exit the programm with a non-zero exit code. You can disable this behaviour and catch all exceptions yourself by
-passing false to the constructor.
-
-You can use the provided ``splitbrain\phpcli\Exception`` to signal any problems within your main code yourself. The
-exceptions's code will be used as the exit code then.
-
-Stacktraces will be printed on log level `debug`. 
-
-## Colored output
-
-Colored output is handled through the ``Colors`` class. It tries to detect if a color terminal is available and only
-then uses terminal colors. You can always suppress colored output by passing ``--no-colors`` to your scripts.
-Disabling colors will also disable the emoticon prefixes.
-
-Simple colored log messages can be printed by you using the convinence methods ``success()`` (green), ``info()`` (cyan),
-``error()`` (red) or ``fatal()`` (red). The latter will also exit the programm with a non-zero exit code.
-
-For more complex coloring you can access the color class through ``$this->colors`` in your script. The ``wrap()`` method
-is probably what you want to use.
-
-The table formatter allows coloring full columns. To use that mechanism pass an array of colors as third parameter to
-its ``format()`` method. Please note that you can not pass colored texts in the second parameters (text length calculation
-and wrapping will fail, breaking your texts).
-
-## Table Formatter
-
-The ``TableFormatter`` class allows you to align texts in multiple columns. It tries to figure out the available
-terminal width on its own. It can be overwritten by setting a ``COLUMNS`` environment variable.
-
-The formatter is used through the ``format()`` method which expects at least two arrays: The first defines the column
-widths, the second contains the texts to fill into the columns. Between each column a border is printed (a single space
-by default).
-
-See the ``example/table.php`` for sample usage.
-
-Columns width can be given in three forms:
-
-- fixed width in characters by providing an integer (eg. ``15``)
-- precentages by provifing an integer and a percent sign (eg. ``25%``)
-- a single fluid "rest" column marked with an asterisk (eg. ``*``)
-
-When mixing fixed and percentage widths, percentages refer to the remaining space after all fixed columns have been
-assigned.
-
-Space for borders is automatically calculated. It is recommended to always have some relative (percentage) or a fluid
-column to adjust for different terminal widths.
-
-The table formatter is used for the automatic help screen accessible when calling your script with ``-h`` or ``--help``.
-
-## PSR-3 Logging
-
-The CLI class is a fully PSR-3 compatible logger (printing colored log data to STDOUT and STDERR). This is useful when
-you call backend code from your CLI that expects a Logger instance to produce any sensible status output while running.
- 
-To use this ability simply inherit from `splitbrain\phpcli\PSR3CLI` instead of `splitbrain\phpcli\CLI`, then pass `$this`
-as the logger instance. Be sure you have the suggested `psr/log` composer package installed.
-
-![Screenshot](screenshot2.png)
-
-You can adjust the verbosity of your CLI tool using the `--loglevel` parameter. Supported loglevels are the PSR-3
-loglevels and our own `success` level:
-
-* debug
-* info
-* notice      
-* success
-* warning
-* error
-* critical
-* alert
-* emergency
-
-Convenience methods for all log levels are available. Placeholder interpolation as described in PSR-3 is available, too.
-Messages from `warning` level onwards are printed to `STDERR` all below are printed to `STDOUT`. 
-
-The default log level of your script can be set by overwriting the `$logdefault` member.
-
-See `example/logging.php` for an example.
\ No newline at end of file
diff --git a/wiki/vendor/splitbrain/php-cli/src/CLI.php b/wiki/vendor/splitbrain/php-cli/src/CLI.php
deleted file mode 100644
index 569ec67..0000000
--- a/wiki/vendor/splitbrain/php-cli/src/CLI.php
+++ /dev/null
@@ -1,318 +0,0 @@
-<?php
-
-namespace splitbrain\phpcli;
-
-/**
- * Class CLI
- *
- * Your commandline script should inherit from this class and implement the abstract methods.
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- * @license MIT
- */
-abstract class CLI
-{
-    /** @var string the executed script itself */
-    protected $bin;
-    /** @var  Options the option parser */
-    protected $options;
-    /** @var  Colors */
-    public $colors;
-
-    /** @var array PSR-3 compatible loglevels and their prefix, color, output channel */
-    protected $loglevel = array(
-        'debug' => array('', Colors::C_LIGHTGRAY, STDOUT),
-        'info' => array('ℹ ', Colors::C_CYAN, STDOUT),
-        'notice' => array('☛ ', Colors::C_CYAN, STDOUT),
-        'success' => array('✓ ', Colors::C_GREEN, STDOUT),
-        'warning' => array('âš  ', Colors::C_BROWN, STDERR),
-        'error' => array('✗ ', Colors::C_RED, STDERR),
-        'critical' => array('☠ ', Colors::C_LIGHTRED, STDERR),
-        'alert' => array('✖ ', Colors::C_LIGHTRED, STDERR),
-        'emergency' => array('✘ ', Colors::C_LIGHTRED, STDERR),
-    );
-
-    protected $logdefault = 'info';
-
-    /**
-     * constructor
-     *
-     * Initialize the arguments, set up helper classes and set up the CLI environment
-     *
-     * @param bool $autocatch should exceptions be catched and handled automatically?
-     */
-    public function __construct($autocatch = true)
-    {
-        if ($autocatch) {
-            set_exception_handler(array($this, 'fatal'));
-        }
-
-        $this->colors = new Colors();
-        $this->options = new Options($this->colors);
-    }
-
-    /**
-     * Register options and arguments on the given $options object
-     *
-     * @param Options $options
-     * @return void
-     *
-     * @throws Exception
-     */
-    abstract protected function setup(Options $options);
-
-    /**
-     * Your main program
-     *
-     * Arguments and options have been parsed when this is run
-     *
-     * @param Options $options
-     * @return void
-     *
-     * @throws Exception
-     */
-    abstract protected function main(Options $options);
-
-    /**
-     * Execute the CLI program
-     *
-     * Executes the setup() routine, adds default options, initiate the options parsing and argument checking
-     * and finally executes main()
-     *
-     * @throws Exception
-     */
-    public function run()
-    {
-        if ('cli' != php_sapi_name()) {
-            throw new Exception('This has to be run from the command line');
-        }
-
-        // setup
-        $this->setup($this->options);
-        $this->options->registerOption(
-            'help',
-            'Display this help screen and exit immeadiately.',
-            'h'
-        );
-        $this->options->registerOption(
-            'no-colors',
-            'Do not use any colors in output. Useful when piping output to other tools or files.'
-        );
-        $this->options->registerOption(
-            'loglevel',
-            'Minimum level of messages to display. Default is ' . $this->colors->wrap($this->logdefault, Colors::C_CYAN) . '. ' .
-            'Valid levels are: debug, info, notice, success, warning, error, critical, alert, emergency.',
-            null,
-            'level'
-        );
-
-        // parse
-        $this->options->parseOptions();
-
-        // handle defaults
-        if ($this->options->getOpt('no-colors')) {
-            $this->colors->disable();
-        }
-        if ($this->options->getOpt('help')) {
-            echo $this->options->help();
-            exit(0);
-        }
-        $level = $this->options->getOpt('loglevel', $this->logdefault);
-        if (!isset($this->loglevel[$level])) $this->fatal('Unknown log level');
-        foreach (array_keys($this->loglevel) as $l) {
-            if ($l == $level) break;
-            unset($this->loglevel[$l]);
-        }
-
-        // check arguments
-        $this->options->checkArguments();
-
-        // execute
-        $this->main($this->options);
-
-        exit(0);
-    }
-
-    // region logging
-
-    /**
-     * Exits the program on a fatal error
-     *
-     * @param \Exception|string $error either an exception or an error message
-     * @param array $context
-     */
-    public function fatal($error, array $context = array())
-    {
-        $code = 0;
-        if (is_object($error) && is_a($error, 'Exception')) {
-            /** @var Exception $error */
-            $this->debug(get_class($error) . ' caught in ' . $error->getFile() . ':' . $error->getLine());
-            $this->debug($error->getTraceAsString());
-            $code = $error->getCode();
-            $error = $error->getMessage();
-
-        }
-        if (!$code) {
-            $code = Exception::E_ANY;
-        }
-
-        $this->critical($error, $context);
-        exit($code);
-    }
-
-    /**
-     * System is unusable.
-     *
-     * @param string $message
-     * @param array $context
-     *
-     * @return void
-     */
-    public function emergency($message, array $context = array())
-    {
-        $this->log('emergency', $message, $context);
-    }
-
-    /**
-     * Action must be taken immediately.
-     *
-     * Example: Entire website down, database unavailable, etc. This should
-     * trigger the SMS alerts and wake you up.
-     *
-     * @param string $message
-     * @param array $context
-     */
-    public function alert($message, array $context = array())
-    {
-        $this->log('alert', $message, $context);
-    }
-
-    /**
-     * Critical conditions.
-     *
-     * Example: Application component unavailable, unexpected exception.
-     *
-     * @param string $message
-     * @param array $context
-     */
-    public function critical($message, array $context = array())
-    {
-        $this->log('critical', $message, $context);
-    }
-
-    /**
-     * Runtime errors that do not require immediate action but should typically
-     * be logged and monitored.
-     *
-     * @param string $message
-     * @param array $context
-     */
-    public function error($message, array $context = array())
-    {
-        $this->log('error', $message, $context);
-    }
-
-    /**
-     * Exceptional occurrences that are not errors.
-     *
-     * Example: Use of deprecated APIs, poor use of an API, undesirable things
-     * that are not necessarily wrong.
-     *
-     * @param string $message
-     * @param array $context
-     */
-    public function warning($message, array $context = array())
-    {
-        $this->log('warning', $message, $context);
-    }
-
-    /**
-     * Normal, positive outcome
-     *
-     * @param string $string
-     * @param array $context
-     */
-    public function success($string, array $context = array())
-    {
-        $this->log('success', $string, $context);
-    }
-
-    /**
-     * Normal but significant events.
-     *
-     * @param string $message
-     * @param array $context
-     */
-    public function notice($message, array $context = array())
-    {
-        $this->log('notice', $message, $context);
-    }
-
-    /**
-     * Interesting events.
-     *
-     * Example: User logs in, SQL logs.
-     *
-     * @param string $message
-     * @param array $context
-     */
-    public function info($message, array $context = array())
-    {
-        $this->log('info', $message, $context);
-    }
-
-    /**
-     * Detailed debug information.
-     *
-     * @param string $message
-     * @param array $context
-     */
-    public function debug($message, array $context = array())
-    {
-        $this->log('debug', $message, $context);
-    }
-
-    /**
-     * @param string $level
-     * @param string $message
-     * @param array $context
-     */
-    public function log($level, $message, array $context = array())
-    {
-        // is this log level wanted?
-        if (!isset($this->loglevel[$level])) return;
-
-        /** @var string $prefix */
-        /** @var string $color */
-        /** @var resource $channel */
-        list($prefix, $color, $channel) = $this->loglevel[$level];
-        if(!$this->colors->isEnabled()) $prefix = '';
-
-        $message = $this->interpolate($message, $context);
-        $this->colors->ptln($prefix . $message, $color, $channel);
-    }
-
-    /**
-     * Interpolates context values into the message placeholders.
-     *
-     * @param $message
-     * @param array $context
-     * @return string
-     */
-    function interpolate($message, array $context = array())
-    {
-        // build a replacement array with braces around the context keys
-        $replace = array();
-        foreach ($context as $key => $val) {
-            // check that the value can be casted to string
-            if (!is_array($val) && (!is_object($val) || method_exists($val, '__toString'))) {
-                $replace['{' . $key . '}'] = $val;
-            }
-        }
-
-        // interpolate replacement values into the message and return
-        return strtr($message, $replace);
-    }
-
-    // endregion
-}
diff --git a/wiki/vendor/splitbrain/php-cli/src/Colors.php b/wiki/vendor/splitbrain/php-cli/src/Colors.php
deleted file mode 100644
index ae25256..0000000
--- a/wiki/vendor/splitbrain/php-cli/src/Colors.php
+++ /dev/null
@@ -1,170 +0,0 @@
-<?php
-
-namespace splitbrain\phpcli;
-
-/**
- * Class Colors
- *
- * Handles color output on (Linux) terminals
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- * @license MIT
- */
-class Colors
-{
-    // these constants make IDE autocompletion easier, but color names can also be passed as strings
-    const C_RESET = 'reset';
-    const C_BLACK = 'black';
-    const C_DARKGRAY = 'darkgray';
-    const C_BLUE = 'blue';
-    const C_LIGHTBLUE = 'lightblue';
-    const C_GREEN = 'green';
-    const C_LIGHTGREEN = 'lightgreen';
-    const C_CYAN = 'cyan';
-    const C_LIGHTCYAN = 'lightcyan';
-    const C_RED = 'red';
-    const C_LIGHTRED = 'lightred';
-    const C_PURPLE = 'purple';
-    const C_LIGHTPURPLE = 'lightpurple';
-    const C_BROWN = 'brown';
-    const C_YELLOW = 'yellow';
-    const C_LIGHTGRAY = 'lightgray';
-    const C_WHITE = 'white';
-
-    /** @var array known color names */
-    protected $colors = array(
-        self::C_RESET => "\33[0m",
-        self::C_BLACK => "\33[0;30m",
-        self::C_DARKGRAY => "\33[1;30m",
-        self::C_BLUE => "\33[0;34m",
-        self::C_LIGHTBLUE => "\33[1;34m",
-        self::C_GREEN => "\33[0;32m",
-        self::C_LIGHTGREEN => "\33[1;32m",
-        self::C_CYAN => "\33[0;36m",
-        self::C_LIGHTCYAN => "\33[1;36m",
-        self::C_RED => "\33[0;31m",
-        self::C_LIGHTRED => "\33[1;31m",
-        self::C_PURPLE => "\33[0;35m",
-        self::C_LIGHTPURPLE => "\33[1;35m",
-        self::C_BROWN => "\33[0;33m",
-        self::C_YELLOW => "\33[1;33m",
-        self::C_LIGHTGRAY => "\33[0;37m",
-        self::C_WHITE => "\33[1;37m",
-    );
-
-    /** @var bool should colors be used? */
-    protected $enabled = true;
-
-    /**
-     * Constructor
-     *
-     * Tries to disable colors for non-terminals
-     */
-    public function __construct()
-    {
-        if (function_exists('posix_isatty') && !posix_isatty(STDOUT)) {
-            $this->enabled = false;
-            return;
-        }
-        if (!getenv('TERM')) {
-            $this->enabled = false;
-            return;
-        }
-    }
-
-    /**
-     * enable color output
-     */
-    public function enable()
-    {
-        $this->enabled = true;
-    }
-
-    /**
-     * disable color output
-     */
-    public function disable()
-    {
-        $this->enabled = false;
-    }
-
-    /**
-     * @return bool is color support enabled?
-     */
-    public function isEnabled()
-    {
-        return $this->enabled;
-    }
-
-    /**
-     * Convenience function to print a line in a given color
-     *
-     * @param string   $line    the line to print, a new line is added automatically
-     * @param string   $color   one of the available color names
-     * @param resource $channel file descriptor to write to
-     *
-     * @throws Exception
-     */
-    public function ptln($line, $color, $channel = STDOUT)
-    {
-        $this->set($color);
-        fwrite($channel, rtrim($line) . "\n");
-        $this->reset();
-    }
-
-    /**
-     * Returns the given text wrapped in the appropriate color and reset code
-     *
-     * @param string $text string to wrap
-     * @param string $color one of the available color names
-     * @return string the wrapped string
-     * @throws Exception
-     */
-    public function wrap($text, $color)
-    {
-        return $this->getColorCode($color) . $text . $this->getColorCode('reset');
-    }
-
-    /**
-     * Gets the appropriate terminal code for the given color
-     *
-     * @param string $color one of the available color names
-     * @return string color code
-     * @throws Exception
-     */
-    public function getColorCode($color)
-    {
-        if (!$this->enabled) {
-            return '';
-        }
-        if (!isset($this->colors[$color])) {
-            throw new Exception("No such color $color");
-        }
-
-        return $this->colors[$color];
-    }
-
-    /**
-     * Set the given color for consecutive output
-     *
-     * @param string $color one of the supported color names
-     * @param resource $channel file descriptor to write to
-     * @throws Exception
-     */
-    public function set($color, $channel = STDOUT)
-    {
-        fwrite($channel, $this->getColorCode($color));
-    }
-
-    /**
-     * reset the terminal color
-     *
-     * @param resource $channel file descriptor to write to
-     *
-     * @throws Exception
-     */
-    public function reset($channel = STDOUT)
-    {
-        $this->set('reset', $channel);
-    }
-}
diff --git a/wiki/vendor/splitbrain/php-cli/src/Exception.php b/wiki/vendor/splitbrain/php-cli/src/Exception.php
deleted file mode 100644
index b2aa981..0000000
--- a/wiki/vendor/splitbrain/php-cli/src/Exception.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-
-namespace splitbrain\phpcli;
-
-/**
- * Class Exception
- *
- * The code is used as exit code for the CLI tool. This should probably be extended. Many cases just fall back to the
- * E_ANY code.
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- * @license MIT
- */
-class Exception extends \Exception
-{
-    const E_ANY = -1; // no error code specified
-    const E_UNKNOWN_OPT = 1; //Unrecognized option
-    const E_OPT_ARG_REQUIRED = 2; //Option requires argument
-    const E_OPT_ARG_DENIED = 3; //Option not allowed argument
-    const E_OPT_ABIGUOUS = 4; //Option abiguous
-    const E_ARG_READ = 5; //Could not read argv
-
-    /**
-     * @param string $message The Exception message to throw.
-     * @param int $code The Exception code
-     * @param \Exception $previous The previous exception used for the exception chaining.
-     */
-    public function __construct($message = "", $code = 0, \Exception $previous = null)
-    {
-        if (!$code) {
-            $code = self::E_ANY;
-        }
-        parent::__construct($message, $code, $previous);
-    }
-}
diff --git a/wiki/vendor/splitbrain/php-cli/src/Options.php b/wiki/vendor/splitbrain/php-cli/src/Options.php
deleted file mode 100644
index 4d8b44d..0000000
--- a/wiki/vendor/splitbrain/php-cli/src/Options.php
+++ /dev/null
@@ -1,470 +0,0 @@
-<?php
-
-namespace splitbrain\phpcli;
-
-/**
- * Class Options
- *
- * Parses command line options passed to the CLI script. Allows CLI scripts to easily register all accepted options and
- * commands and even generates a help text from this setup.
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- * @license MIT
- */
-class Options
-{
-    /** @var  array keeps the list of options to parse */
-    protected $setup;
-
-    /** @var  array store parsed options */
-    protected $options = array();
-
-    /** @var string current parsed command if any */
-    protected $command = '';
-
-    /** @var  array passed non-option arguments */
-    protected $args = array();
-
-    /** @var  string the executed script */
-    protected $bin;
-
-    /** @var  Colors for colored help output */
-    protected $colors;
-
-    /**
-     * Constructor
-     *
-     * @param Colors $colors optional configured color object
-     * @throws Exception when arguments can't be read
-     */
-    public function __construct(Colors $colors = null)
-    {
-        if (!is_null($colors)) {
-            $this->colors = $colors;
-        } else {
-            $this->colors = new Colors();
-        }
-
-        $this->setup = array(
-            '' => array(
-                'opts' => array(),
-                'args' => array(),
-                'help' => ''
-            )
-        ); // default command
-
-        $this->args = $this->readPHPArgv();
-        $this->bin = basename(array_shift($this->args));
-
-        $this->options = array();
-    }
-
-    /**
-     * Sets the help text for the tool itself
-     *
-     * @param string $help
-     */
-    public function setHelp($help)
-    {
-        $this->setup['']['help'] = $help;
-    }
-
-    /**
-     * Register the names of arguments for help generation and number checking
-     *
-     * This has to be called in the order arguments are expected
-     *
-     * @param string $arg argument name (just for help)
-     * @param string $help help text
-     * @param bool $required is this a required argument
-     * @param string $command if theses apply to a sub command only
-     * @throws Exception
-     */
-    public function registerArgument($arg, $help, $required = true, $command = '')
-    {
-        if (!isset($this->setup[$command])) {
-            throw new Exception("Command $command not registered");
-        }
-
-        $this->setup[$command]['args'][] = array(
-            'name' => $arg,
-            'help' => $help,
-            'required' => $required
-        );
-    }
-
-    /**
-     * This registers a sub command
-     *
-     * Sub commands have their own options and use their own function (not main()).
-     *
-     * @param string $command
-     * @param string $help
-     * @throws Exception
-     */
-    public function registerCommand($command, $help)
-    {
-        if (isset($this->setup[$command])) {
-            throw new Exception("Command $command already registered");
-        }
-
-        $this->setup[$command] = array(
-            'opts' => array(),
-            'args' => array(),
-            'help' => $help
-        );
-
-    }
-
-    /**
-     * Register an option for option parsing and help generation
-     *
-     * @param string $long multi character option (specified with --)
-     * @param string $help help text for this option
-     * @param string|null $short one character option (specified with -)
-     * @param bool|string $needsarg does this option require an argument? give it a name here
-     * @param string $command what command does this option apply to
-     * @throws Exception
-     */
-    public function registerOption($long, $help, $short = null, $needsarg = false, $command = '')
-    {
-        if (!isset($this->setup[$command])) {
-            throw new Exception("Command $command not registered");
-        }
-
-        $this->setup[$command]['opts'][$long] = array(
-            'needsarg' => $needsarg,
-            'help' => $help,
-            'short' => $short
-        );
-
-        if ($short) {
-            if (strlen($short) > 1) {
-                throw new Exception("Short options should be exactly one ASCII character");
-            }
-
-            $this->setup[$command]['short'][$short] = $long;
-        }
-    }
-
-    /**
-     * Checks the actual number of arguments against the required number
-     *
-     * Throws an exception if arguments are missing.
-     *
-     * This is run from CLI automatically and usually does not need to be called directly
-     *
-     * @throws Exception
-     */
-    public function checkArguments()
-    {
-        $argc = count($this->args);
-
-        $req = 0;
-        foreach ($this->setup[$this->command]['args'] as $arg) {
-            if (!$arg['required']) {
-                break;
-            } // last required arguments seen
-            $req++;
-        }
-
-        if ($req > $argc) {
-            throw new Exception("Not enough arguments", Exception::E_OPT_ARG_REQUIRED);
-        }
-    }
-
-    /**
-     * Parses the given arguments for known options and command
-     *
-     * The given $args array should NOT contain the executed file as first item anymore! The $args
-     * array is stripped from any options and possible command. All found otions can be accessed via the
-     * getOpt() function
-     *
-     * Note that command options will overwrite any global options with the same name
-     *
-     * This is run from CLI automatically and usually does not need to be called directly
-     *
-     * @throws Exception
-     */
-    public function parseOptions()
-    {
-        $non_opts = array();
-
-        $argc = count($this->args);
-        for ($i = 0; $i < $argc; $i++) {
-            $arg = $this->args[$i];
-
-            // The special element '--' means explicit end of options. Treat the rest of the arguments as non-options
-            // and end the loop.
-            if ($arg == '--') {
-                $non_opts = array_merge($non_opts, array_slice($this->args, $i + 1));
-                break;
-            }
-
-            // '-' is stdin - a normal argument
-            if ($arg == '-') {
-                $non_opts = array_merge($non_opts, array_slice($this->args, $i));
-                break;
-            }
-
-            // first non-option
-            if ($arg{0} != '-') {
-                $non_opts = array_merge($non_opts, array_slice($this->args, $i));
-                break;
-            }
-
-            // long option
-            if (strlen($arg) > 1 && $arg{1} == '-') {
-                $arg = explode('=', substr($arg, 2), 2);
-                $opt = array_shift($arg);
-                $val = array_shift($arg);
-
-                if (!isset($this->setup[$this->command]['opts'][$opt])) {
-                    throw new Exception("No such option '$opt'", Exception::E_UNKNOWN_OPT);
-                }
-
-                // argument required?
-                if ($this->setup[$this->command]['opts'][$opt]['needsarg']) {
-                    if (is_null($val) && $i + 1 < $argc && !preg_match('/^--?[\w]/', $this->args[$i + 1])) {
-                        $val = $this->args[++$i];
-                    }
-                    if (is_null($val)) {
-                        throw new Exception("Option $opt requires an argument",
-                            Exception::E_OPT_ARG_REQUIRED);
-                    }
-                    $this->options[$opt] = $val;
-                } else {
-                    $this->options[$opt] = true;
-                }
-
-                continue;
-            }
-
-            // short option
-            $opt = substr($arg, 1);
-            if (!isset($this->setup[$this->command]['short'][$opt])) {
-                throw new Exception("No such option $arg", Exception::E_UNKNOWN_OPT);
-            } else {
-                $opt = $this->setup[$this->command]['short'][$opt]; // store it under long name
-            }
-
-            // argument required?
-            if ($this->setup[$this->command]['opts'][$opt]['needsarg']) {
-                $val = null;
-                if ($i + 1 < $argc && !preg_match('/^--?[\w]/', $this->args[$i + 1])) {
-                    $val = $this->args[++$i];
-                }
-                if (is_null($val)) {
-                    throw new Exception("Option $arg requires an argument",
-                        Exception::E_OPT_ARG_REQUIRED);
-                }
-                $this->options[$opt] = $val;
-            } else {
-                $this->options[$opt] = true;
-            }
-        }
-
-        // parsing is now done, update args array
-        $this->args = $non_opts;
-
-        // if not done yet, check if first argument is a command and reexecute argument parsing if it is
-        if (!$this->command && $this->args && isset($this->setup[$this->args[0]])) {
-            // it is a command!
-            $this->command = array_shift($this->args);
-            $this->parseOptions(); // second pass
-        }
-    }
-
-    /**
-     * Get the value of the given option
-     *
-     * Please note that all options are accessed by their long option names regardless of how they were
-     * specified on commandline.
-     *
-     * Can only be used after parseOptions() has been run
-     *
-     * @param mixed $option
-     * @param bool|string $default what to return if the option was not set
-     * @return bool|string|string[]
-     */
-    public function getOpt($option = null, $default = false)
-    {
-        if ($option === null) {
-            return $this->options;
-        }
-
-        if (isset($this->options[$option])) {
-            return $this->options[$option];
-        }
-        return $default;
-    }
-
-    /**
-     * Return the found command if any
-     *
-     * @return string
-     */
-    public function getCmd()
-    {
-        return $this->command;
-    }
-
-    /**
-     * Get all the arguments passed to the script
-     *
-     * This will not contain any recognized options or the script name itself
-     *
-     * @return array
-     */
-    public function getArgs()
-    {
-        return $this->args;
-    }
-
-    /**
-     * Builds a help screen from the available options. You may want to call it from -h or on error
-     *
-     * @return string
-     *
-     * @throws Exception
-     */
-    public function help()
-    {
-        $tf = new TableFormatter($this->colors);
-        $text = '';
-
-        $hascommands = (count($this->setup) > 1);
-        foreach ($this->setup as $command => $config) {
-            $hasopts = (bool)$this->setup[$command]['opts'];
-            $hasargs = (bool)$this->setup[$command]['args'];
-
-            // usage or command syntax line
-            if (!$command) {
-                $text .= $this->colors->wrap('USAGE:', Colors::C_BROWN);
-                $text .= "\n";
-                $text .= '   ' . $this->bin;
-                $mv = 2;
-            } else {
-                $text .= "\n";
-                $text .= $this->colors->wrap('   ' . $command, Colors::C_PURPLE);
-                $mv = 4;
-            }
-
-            if ($hasopts) {
-                $text .= ' ' . $this->colors->wrap('<OPTIONS>', Colors::C_GREEN);
-            }
-
-            if (!$command && $hascommands) {
-                $text .= ' ' . $this->colors->wrap('<COMMAND> ...', Colors::C_PURPLE);
-            }
-
-            foreach ($this->setup[$command]['args'] as $arg) {
-                $out = $this->colors->wrap('<' . $arg['name'] . '>', Colors::C_CYAN);
-
-                if (!$arg['required']) {
-                    $out = '[' . $out . ']';
-                }
-                $text .= ' ' . $out;
-            }
-            $text .= "\n";
-
-            // usage or command intro
-            if ($this->setup[$command]['help']) {
-                $text .= "\n";
-                $text .= $tf->format(
-                    array($mv, '*'),
-                    array('', $this->setup[$command]['help'] . "\n")
-                );
-            }
-
-            // option description
-            if ($hasopts) {
-                if (!$command) {
-                    $text .= "\n";
-                    $text .= $this->colors->wrap('OPTIONS:', Colors::C_BROWN);
-                }
-                $text .= "\n";
-                foreach ($this->setup[$command]['opts'] as $long => $opt) {
-
-                    $name = '';
-                    if ($opt['short']) {
-                        $name .= '-' . $opt['short'];
-                        if ($opt['needsarg']) {
-                            $name .= ' <' . $opt['needsarg'] . '>';
-                        }
-                        $name .= ', ';
-                    }
-                    $name .= "--$long";
-                    if ($opt['needsarg']) {
-                        $name .= ' <' . $opt['needsarg'] . '>';
-                    }
-
-                    $text .= $tf->format(
-                        array($mv, '30%', '*'),
-                        array('', $name, $opt['help']),
-                        array('', 'green', '')
-                    );
-                    $text .= "\n";
-                }
-            }
-
-            // argument description
-            if ($hasargs) {
-                if (!$command) {
-                    $text .= "\n";
-                    $text .= $this->colors->wrap('ARGUMENTS:', Colors::C_BROWN);
-                }
-                $text .= "\n";
-                foreach ($this->setup[$command]['args'] as $arg) {
-                    $name = '<' . $arg['name'] . '>';
-
-                    $text .= $tf->format(
-                        array($mv, '30%', '*'),
-                        array('', $name, $arg['help']),
-                        array('', 'cyan', '')
-                    );
-                }
-            }
-
-            // head line and intro for following command documentation
-            if (!$command && $hascommands) {
-                $text .= "\n";
-                $text .= $this->colors->wrap('COMMANDS:', Colors::C_BROWN);
-                $text .= "\n";
-                $text .= $tf->format(
-                    array($mv, '*'),
-                    array('', 'This tool accepts a command as first parameter as outlined below:')
-                );
-                $text .= "\n";
-            }
-        }
-
-        return $text;
-    }
-
-    /**
-     * Safely read the $argv PHP array across different PHP configurations.
-     * Will take care on register_globals and register_argc_argv ini directives
-     *
-     * @throws Exception
-     * @return array the $argv PHP array or PEAR error if not registered
-     */
-    private function readPHPArgv()
-    {
-        global $argv;
-        if (!is_array($argv)) {
-            if (!@is_array($_SERVER['argv'])) {
-                if (!@is_array($GLOBALS['HTTP_SERVER_VARS']['argv'])) {
-                    throw new Exception(
-                        "Could not read cmd args (register_argc_argv=Off?)",
-                        Exception::E_ARG_READ
-                    );
-                }
-                return $GLOBALS['HTTP_SERVER_VARS']['argv'];
-            }
-            return $_SERVER['argv'];
-        }
-        return $argv;
-    }
-}
-
diff --git a/wiki/vendor/splitbrain/php-cli/src/PSR3CLI.php b/wiki/vendor/splitbrain/php-cli/src/PSR3CLI.php
deleted file mode 100644
index ef744f3..0000000
--- a/wiki/vendor/splitbrain/php-cli/src/PSR3CLI.php
+++ /dev/null
@@ -1,13 +0,0 @@
-<?php
-
-namespace splitbrain\phpcli;
-
-use Psr\Log\LoggerInterface;
-
-/**
- * Class PSR3CLI
- *
- * The same as CLI, but implements the PSR-3 logger interface
- */
-abstract class PSR3CLI extends CLI implements LoggerInterface {
-}
\ No newline at end of file
diff --git a/wiki/vendor/splitbrain/php-cli/src/TableFormatter.php b/wiki/vendor/splitbrain/php-cli/src/TableFormatter.php
deleted file mode 100644
index 73fd6b3..0000000
--- a/wiki/vendor/splitbrain/php-cli/src/TableFormatter.php
+++ /dev/null
@@ -1,307 +0,0 @@
-<?php
-
-namespace splitbrain\phpcli;
-
-/**
- * Class TableFormatter
- *
- * Output text in multiple columns
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- * @license MIT
- */
-class TableFormatter
-{
-    /** @var string border between columns */
-    protected $border = ' ';
-
-    /** @var int the terminal width */
-    protected $max = 74;
-
-    /** @var Colors for coloring output */
-    protected $colors;
-
-    /**
-     * TableFormatter constructor.
-     *
-     * @param Colors|null $colors
-     */
-    public function __construct(Colors $colors = null)
-    {
-        // try to get terminal width
-        $width = 0;
-        if (isset($_SERVER['COLUMNS'])) {
-            // from environment
-            $width = (int)$_SERVER['COLUMNS'];
-        }
-        if (!$width) {
-            // via tput command
-            $width = @exec('tput cols');
-        }
-        if ($width) {
-            $this->max = $width - 1;
-        }
-
-        if ($colors) {
-            $this->colors = $colors;
-        } else {
-            $this->colors = new Colors();
-        }
-    }
-
-    /**
-     * The currently set border (defaults to ' ')
-     *
-     * @return string
-     */
-    public function getBorder()
-    {
-        return $this->border;
-    }
-
-    /**
-     * Set the border. The border is set between each column. Its width is
-     * added to the column widths.
-     *
-     * @param string $border
-     */
-    public function setBorder($border)
-    {
-        $this->border = $border;
-    }
-
-    /**
-     * Width of the terminal in characters
-     *
-     * initially autodetected
-     *
-     * @return int
-     */
-    public function getMaxWidth()
-    {
-        return $this->max;
-    }
-
-    /**
-     * Set the width of the terminal to assume (in characters)
-     *
-     * @param int $max
-     */
-    public function setMaxWidth($max)
-    {
-        $this->max = $max;
-    }
-
-    /**
-     * Takes an array with dynamic column width and calculates the correct width
-     *
-     * Column width can be given as fixed char widths, percentages and a single * width can be given
-     * for taking the remaining available space. When mixing percentages and fixed widths, percentages
-     * refer to the remaining space after allocating the fixed width
-     *
-     * @param array $columns
-     * @return int[]
-     * @throws Exception
-     */
-    protected function calculateColLengths($columns)
-    {
-        $idx = 0;
-        $border = $this->strlen($this->border);
-        $fixed = (count($columns) - 1) * $border; // borders are used already
-        $fluid = -1;
-
-        // first pass for format check and fixed columns
-        foreach ($columns as $idx => $col) {
-            // handle fixed columns
-            if ((string)intval($col) === (string)$col) {
-                $fixed += $col;
-                continue;
-            }
-            // check if other colums are using proper units
-            if (substr($col, -1) == '%') {
-                continue;
-            }
-            if ($col == '*') {
-                // only one fluid
-                if ($fluid < 0) {
-                    $fluid = $idx;
-                    continue;
-                } else {
-                    throw new Exception('Only one fluid column allowed!');
-                }
-            }
-            throw new Exception("unknown column format $col");
-        }
-
-        $alloc = $fixed;
-        $remain = $this->max - $alloc;
-
-        // second pass to handle percentages
-        foreach ($columns as $idx => $col) {
-            if (substr($col, -1) != '%') {
-                continue;
-            }
-            $perc = floatval($col);
-
-            $real = (int)floor(($perc * $remain) / 100);
-
-            $columns[$idx] = $real;
-            $alloc += $real;
-        }
-
-        $remain = $this->max - $alloc;
-        if ($remain < 0) {
-            throw new Exception("Wanted column widths exceed available space");
-        }
-
-        // assign remaining space
-        if ($fluid < 0) {
-            $columns[$idx] += ($remain); // add to last column
-        } else {
-            $columns[$fluid] = $remain;
-        }
-
-        return $columns;
-    }
-
-    /**
-     * Displays text in multiple word wrapped columns
-     *
-     * @param int[] $columns list of column widths (in characters, percent or '*')
-     * @param string[] $texts list of texts for each column
-     * @param array $colors A list of color names to use for each column. use empty string for default
-     * @return string
-     * @throws Exception
-     */
-    public function format($columns, $texts, $colors = array())
-    {
-        $columns = $this->calculateColLengths($columns);
-
-        $wrapped = array();
-        $maxlen = 0;
-
-        foreach ($columns as $col => $width) {
-            $wrapped[$col] = explode("\n", $this->wordwrap($texts[$col], $width, "\n", true));
-            $len = count($wrapped[$col]);
-            if ($len > $maxlen) {
-                $maxlen = $len;
-            }
-
-        }
-
-        $last = count($columns) - 1;
-        $out = '';
-        for ($i = 0; $i < $maxlen; $i++) {
-            foreach ($columns as $col => $width) {
-                if (isset($wrapped[$col][$i])) {
-                    $val = $wrapped[$col][$i];
-                } else {
-                    $val = '';
-                }
-                $chunk = $this->pad($val, $width);
-                if (isset($colors[$col]) && $colors[$col]) {
-                    $chunk = $this->colors->wrap($chunk, $colors[$col]);
-                }
-                $out .= $chunk;
-
-                // border
-                if ($col != $last) {
-                    $out .= $this->border;
-                }
-            }
-            $out .= "\n";
-        }
-        return $out;
-
-    }
-
-    /**
-     * Pad the given string to the correct length
-     *
-     * @param string $string
-     * @param int $len
-     * @return string
-     */
-    protected function pad($string, $len)
-    {
-        $strlen = $this->strlen($string);
-        if ($strlen > $len) return $string;
-
-        $pad = $len - $strlen;
-        return $string . str_pad('', $pad, ' ');
-    }
-
-    /**
-     * Measures char length in UTF-8 when possible
-     *
-     * @param $string
-     * @return int
-     */
-    protected function strlen($string)
-    {
-        // don't count color codes
-        $string = preg_replace("/\33\\[\\d+(;\\d+)?m/", '', $string);
-
-        if (function_exists('mb_strlen')) {
-            return mb_strlen($string, 'utf-8');
-        }
-
-        return strlen($string);
-    }
-
-    /**
-     * @param string $string
-     * @param int $start
-     * @param int|null $length
-     * @return string
-     */
-    protected function substr($string, $start = 0, $length = null)
-    {
-        if (function_exists('mb_substr')) {
-            return mb_substr($string, $start, $length);
-        } else {
-            return substr($string, $start, $length);
-        }
-    }
-
-    /**
-     * @param string $str
-     * @param int $width
-     * @param string $break
-     * @param bool $cut
-     * @return string
-     * @link http://stackoverflow.com/a/4988494
-     */
-    protected function wordwrap($str, $width = 75, $break = "\n", $cut = false)
-    {
-        $lines = explode($break, $str);
-        foreach ($lines as &$line) {
-            $line = rtrim($line);
-            if ($this->strlen($line) <= $width) {
-                continue;
-            }
-            $words = explode(' ', $line);
-            $line = '';
-            $actual = '';
-            foreach ($words as $word) {
-                if ($this->strlen($actual . $word) <= $width) {
-                    $actual .= $word . ' ';
-                } else {
-                    if ($actual != '') {
-                        $line .= rtrim($actual) . $break;
-                    }
-                    $actual = $word;
-                    if ($cut) {
-                        while ($this->strlen($actual) > $width) {
-                            $line .= $this->substr($actual, 0, $width) . $break;
-                            $actual = $this->substr($actual, $width);
-                        }
-                    }
-                    $actual .= ' ';
-                }
-            }
-            $line .= trim($actual);
-        }
-        return implode($break, $lines);
-    }
-}
\ No newline at end of file